context-modules-20240428/0000755000175000017500000000000014613513621014071 5ustar hillehillecontext-modules-20240428/fonts/0000755000175000017500000000000014613513621015222 5ustar hillehillecontext-modules-20240428/fonts/opentype/0000755000175000017500000000000014613513620017064 5ustar hillehillecontext-modules-20240428/fonts/opentype/public/0000755000175000017500000000000014613513620020342 5ustar hillehillecontext-modules-20240428/fonts/opentype/public/context-companion-fonts/0000755000175000017500000000000014613513620025136 5ustar hillehille././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootcontext-modules-20240428/fonts/opentype/public/context-companion-fonts/TeXGyreBonumMath-Companion.otfcontext-modules-20240428/fonts/opentype/public/context-companion-fonts/TeXGyreBonumMath-Companion.ot0000644000175000017500000001335414566474430032607 0ustar hillehille{"payload":{"allShortcutsEnabled":true,"fileTree":{"fonts/data/cms/companion":{"items":[{"name":"LatinModernMath-Companion.otf","path":"fonts/data/cms/companion/LatinModernMath-Companion.otf","contentType":"file"},{"name":"RalphSmithsFormalScript-Companion.otf","path":"fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","contentType":"file"},{"name":"TeXGyreBonumMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","contentType":"file"},{"name":"TeXGyrePagellaMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","contentType":"file"},{"name":"TeXGyreTermesMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","contentType":"file"},{"name":"XITSMath-Companion.otf","path":"fonts/data/cms/companion/XITSMath-Companion.otf","contentType":"file"}],"totalCount":6},"fonts/data/cms":{"items":[{"name":"companion","path":"fonts/data/cms/companion","contentType":"directory"}],"totalCount":1},"fonts/data":{"items":[{"name":"cms","path":"fonts/data/cms","contentType":"directory"},{"name":"demo","path":"fonts/data/demo","contentType":"directory"},{"name":"fonticons","path":"fonts/data/fonticons","contentType":"directory"},{"name":"gust","path":"fonts/data/gust","contentType":"directory"},{"name":"hoekwater","path":"fonts/data/hoekwater","contentType":"directory"},{"name":"ibm","path":"fonts/data/ibm","contentType":"directory"},{"name":"public","path":"fonts/data/public","contentType":"directory"},{"name":"sil","path":"fonts/data/sil","contentType":"directory"},{"name":"stix","path":"fonts/data/stix","contentType":"directory"}],"totalCount":9},"fonts":{"items":[{"name":"data","path":"fonts/data","contentType":"directory"}],"totalCount":1},"":{"items":[{"name":"fonts","path":"fonts","contentType":"directory"}],"totalCount":1}},"fileTreeProcessingTime":5.246284999999999,"foldersToFetch":[],"repo":{"id":536594004,"defaultBranch":"main","name":"context-distribution-fonts","ownerLogin":"contextgarden","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-09-14T06:36:06.000-07:00","ownerAvatar":"https://avatars.githubusercontent.com/u/4325174?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1663164432.308628","canEdit":true,"refType":"branch","currentOid":"3fcd0daec48d432a069383b6d55e61973a9701ae"},"path":"fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","currentUser":{"id":362855,"login":"kberry","userEmail":"karl@freefriends.org"},"blob":{"rawLines":null,"stylingDirectives":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/contextgarden/context-distribution-fonts/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":false},"displayName":"TeXGyreBonumMath-Companion.otf","displayUrl":"https://github.com/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf?raw=true","headerInfo":{"blobSize":"5.76 KB","deleteTooltip":"Fork this repository and delete the file","editTooltip":"Fork this repository and edit the file","deleteInfo":{"deleteTooltip":"Fork this repository and delete the file"},"editInfo":{"editTooltip":"Fork this repository and edit the file"},"ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"gitLfsPath":null,"onBranch":true,"shortPath":"e207a28","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fcontextgarden%2Fcontext-distribution-fonts%2Fblob%2Fmain%2Ffonts%2Fdata%2Fcms%2Fcompanion%2FTeXGyreBonumMath-Companion.otf","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":null,"truncatedSloc":null},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":null,"languageID":null,"large":false,"loggedIn":true,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/contextgarden/context-distribution-fonts/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/contextgarden/context-distribution-fonts/raw/main/fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","renderImageOrRaw":true,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"contextgarden","repoName":"context-distribution-fonts","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":false,"workflowRedirectUrl":null,"symbols":null},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/contextgarden/context-distribution-fonts/branches":{"post":"2JC9lmZFkJOfKgKQ9FSA5vxMWXpwMMPejT9qzZNHRRv-c1QiZYrsfS65qe9tozLVoVFsDgGd8-bQzswlxZ0y4g"},"/repos/preferences":{"post":"YZLnFUtUgIKQ5s606pEADtkBIHykrs45rVBXr1hJ0rHGrrYUjzqO2_Q0D24HXvHWtGkY0ZkT7EXeTVUQIlpFtw"}}},"title":"context-distribution-fonts/fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf at main · contextgarden/context-distribution-fonts"}././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootcontext-modules-20240428/fonts/opentype/public/context-companion-fonts/TeXGyrePagellaMath-Companion.otfcontext-modules-20240428/fonts/opentype/public/context-companion-fonts/TeXGyrePagellaMath-Companion.0000644000175000017500000001337314566474430032532 0ustar hillehille{"payload":{"allShortcutsEnabled":true,"fileTree":{"fonts/data/cms/companion":{"items":[{"name":"LatinModernMath-Companion.otf","path":"fonts/data/cms/companion/LatinModernMath-Companion.otf","contentType":"file"},{"name":"RalphSmithsFormalScript-Companion.otf","path":"fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","contentType":"file"},{"name":"TeXGyreBonumMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","contentType":"file"},{"name":"TeXGyrePagellaMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","contentType":"file"},{"name":"TeXGyreTermesMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","contentType":"file"},{"name":"XITSMath-Companion.otf","path":"fonts/data/cms/companion/XITSMath-Companion.otf","contentType":"file"}],"totalCount":6},"fonts/data/cms":{"items":[{"name":"companion","path":"fonts/data/cms/companion","contentType":"directory"}],"totalCount":1},"fonts/data":{"items":[{"name":"cms","path":"fonts/data/cms","contentType":"directory"},{"name":"demo","path":"fonts/data/demo","contentType":"directory"},{"name":"fonticons","path":"fonts/data/fonticons","contentType":"directory"},{"name":"gust","path":"fonts/data/gust","contentType":"directory"},{"name":"hoekwater","path":"fonts/data/hoekwater","contentType":"directory"},{"name":"ibm","path":"fonts/data/ibm","contentType":"directory"},{"name":"public","path":"fonts/data/public","contentType":"directory"},{"name":"sil","path":"fonts/data/sil","contentType":"directory"},{"name":"stix","path":"fonts/data/stix","contentType":"directory"}],"totalCount":9},"fonts":{"items":[{"name":"data","path":"fonts/data","contentType":"directory"}],"totalCount":1},"":{"items":[{"name":"fonts","path":"fonts","contentType":"directory"}],"totalCount":1}},"fileTreeProcessingTime":5.3893200000000006,"foldersToFetch":[],"repo":{"id":536594004,"defaultBranch":"main","name":"context-distribution-fonts","ownerLogin":"contextgarden","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-09-14T06:36:06.000-07:00","ownerAvatar":"https://avatars.githubusercontent.com/u/4325174?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1663164432.308628","canEdit":true,"refType":"branch","currentOid":"3fcd0daec48d432a069383b6d55e61973a9701ae"},"path":"fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","currentUser":{"id":362855,"login":"kberry","userEmail":"karl@freefriends.org"},"blob":{"rawLines":null,"stylingDirectives":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/contextgarden/context-distribution-fonts/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":false},"displayName":"TeXGyrePagellaMath-Companion.otf","displayUrl":"https://github.com/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf?raw=true","headerInfo":{"blobSize":"3.28 KB","deleteTooltip":"Fork this repository and delete the file","editTooltip":"Fork this repository and edit the file","deleteInfo":{"deleteTooltip":"Fork this repository and delete the file"},"editInfo":{"editTooltip":"Fork this repository and edit the file"},"ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"gitLfsPath":null,"onBranch":true,"shortPath":"0d98101","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fcontextgarden%2Fcontext-distribution-fonts%2Fblob%2Fmain%2Ffonts%2Fdata%2Fcms%2Fcompanion%2FTeXGyrePagellaMath-Companion.otf","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":null,"truncatedSloc":null},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":null,"languageID":null,"large":false,"loggedIn":true,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/contextgarden/context-distribution-fonts/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/contextgarden/context-distribution-fonts/raw/main/fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","renderImageOrRaw":true,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"contextgarden","repoName":"context-distribution-fonts","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":false,"workflowRedirectUrl":null,"symbols":null},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/contextgarden/context-distribution-fonts/branches":{"post":"_yt2nsOauHzHkd7u3Ec1Klg3wrcBYu_uUECokIDWGTvZyJ8qwFXEknYCdZFFsIcZBSr3w3DP39YNsQ541gxuwg"},"/repos/preferences":{"post":"nZFQ7IYhg66oD9TBhMjcxGEAhNdD1RH6Lu09IKTRpik6rQHtQk-N98zdFRtpBy0cDGi8en5oM4Zd8D-f3sIxLw"}}},"title":"context-distribution-fonts/fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf at main · contextgarden/context-distribution-fonts"}././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootcontext-modules-20240428/fonts/opentype/public/context-companion-fonts/TeXGyreTermesMath-Companion.otfcontext-modules-20240428/fonts/opentype/public/context-companion-fonts/TeXGyreTermesMath-Companion.o0000644000175000017500000001335214566474430032600 0ustar hillehille{"payload":{"allShortcutsEnabled":true,"fileTree":{"fonts/data/cms/companion":{"items":[{"name":"LatinModernMath-Companion.otf","path":"fonts/data/cms/companion/LatinModernMath-Companion.otf","contentType":"file"},{"name":"RalphSmithsFormalScript-Companion.otf","path":"fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","contentType":"file"},{"name":"TeXGyreBonumMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","contentType":"file"},{"name":"TeXGyrePagellaMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","contentType":"file"},{"name":"TeXGyreTermesMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","contentType":"file"},{"name":"XITSMath-Companion.otf","path":"fonts/data/cms/companion/XITSMath-Companion.otf","contentType":"file"}],"totalCount":6},"fonts/data/cms":{"items":[{"name":"companion","path":"fonts/data/cms/companion","contentType":"directory"}],"totalCount":1},"fonts/data":{"items":[{"name":"cms","path":"fonts/data/cms","contentType":"directory"},{"name":"demo","path":"fonts/data/demo","contentType":"directory"},{"name":"fonticons","path":"fonts/data/fonticons","contentType":"directory"},{"name":"gust","path":"fonts/data/gust","contentType":"directory"},{"name":"hoekwater","path":"fonts/data/hoekwater","contentType":"directory"},{"name":"ibm","path":"fonts/data/ibm","contentType":"directory"},{"name":"public","path":"fonts/data/public","contentType":"directory"},{"name":"sil","path":"fonts/data/sil","contentType":"directory"},{"name":"stix","path":"fonts/data/stix","contentType":"directory"}],"totalCount":9},"fonts":{"items":[{"name":"data","path":"fonts/data","contentType":"directory"}],"totalCount":1},"":{"items":[{"name":"fonts","path":"fonts","contentType":"directory"}],"totalCount":1}},"fileTreeProcessingTime":4.781192,"foldersToFetch":[],"repo":{"id":536594004,"defaultBranch":"main","name":"context-distribution-fonts","ownerLogin":"contextgarden","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-09-14T06:36:06.000-07:00","ownerAvatar":"https://avatars.githubusercontent.com/u/4325174?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1663164432.308628","canEdit":true,"refType":"branch","currentOid":"3fcd0daec48d432a069383b6d55e61973a9701ae"},"path":"fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","currentUser":{"id":362855,"login":"kberry","userEmail":"karl@freefriends.org"},"blob":{"rawLines":null,"stylingDirectives":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/contextgarden/context-distribution-fonts/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":false},"displayName":"TeXGyreTermesMath-Companion.otf","displayUrl":"https://github.com/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf?raw=true","headerInfo":{"blobSize":"3.08 KB","deleteTooltip":"Fork this repository and delete the file","editTooltip":"Fork this repository and edit the file","deleteInfo":{"deleteTooltip":"Fork this repository and delete the file"},"editInfo":{"editTooltip":"Fork this repository and edit the file"},"ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"gitLfsPath":null,"onBranch":true,"shortPath":"6329a9b","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fcontextgarden%2Fcontext-distribution-fonts%2Fblob%2Fmain%2Ffonts%2Fdata%2Fcms%2Fcompanion%2FTeXGyreTermesMath-Companion.otf","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":null,"truncatedSloc":null},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":null,"languageID":null,"large":false,"loggedIn":true,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/contextgarden/context-distribution-fonts/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/contextgarden/context-distribution-fonts/raw/main/fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","renderImageOrRaw":true,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"contextgarden","repoName":"context-distribution-fonts","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":false,"workflowRedirectUrl":null,"symbols":null},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/contextgarden/context-distribution-fonts/branches":{"post":"5N1YfPlt1OVI64TOvxZD0lDipt_5jFRVV-RTfFYA-KnCPrHI-qKoC_l4L7Em4fHhDf-Tq4ghZG0KFfWUANqPUA"},"/repos/preferences":{"post":"bPNgca1SB-oPIVtIdznd7O6LY_hrKnWPQKNje82ZNEPLzzFwaTwJs2vzmpKa9iw0g-NbVVaXV_MzvmHEt4qjRQ"}}},"title":"context-distribution-fonts/fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf at main · contextgarden/context-distribution-fonts"}././@LongLink0000644000000000000000000000015500000000000011604 Lustar rootrootcontext-modules-20240428/fonts/opentype/public/context-companion-fonts/RalphSmithsFormalScript-Companion.otfcontext-modules-20240428/fonts/opentype/public/context-companion-fonts/RalphSmithsFormalScript-Compa0000644000175000017500000001342314566474430032721 0ustar hillehille{"payload":{"allShortcutsEnabled":true,"fileTree":{"fonts/data/cms/companion":{"items":[{"name":"LatinModernMath-Companion.otf","path":"fonts/data/cms/companion/LatinModernMath-Companion.otf","contentType":"file"},{"name":"RalphSmithsFormalScript-Companion.otf","path":"fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","contentType":"file"},{"name":"TeXGyreBonumMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","contentType":"file"},{"name":"TeXGyrePagellaMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","contentType":"file"},{"name":"TeXGyreTermesMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","contentType":"file"},{"name":"XITSMath-Companion.otf","path":"fonts/data/cms/companion/XITSMath-Companion.otf","contentType":"file"}],"totalCount":6},"fonts/data/cms":{"items":[{"name":"companion","path":"fonts/data/cms/companion","contentType":"directory"}],"totalCount":1},"fonts/data":{"items":[{"name":"cms","path":"fonts/data/cms","contentType":"directory"},{"name":"demo","path":"fonts/data/demo","contentType":"directory"},{"name":"fonticons","path":"fonts/data/fonticons","contentType":"directory"},{"name":"gust","path":"fonts/data/gust","contentType":"directory"},{"name":"hoekwater","path":"fonts/data/hoekwater","contentType":"directory"},{"name":"ibm","path":"fonts/data/ibm","contentType":"directory"},{"name":"public","path":"fonts/data/public","contentType":"directory"},{"name":"sil","path":"fonts/data/sil","contentType":"directory"},{"name":"stix","path":"fonts/data/stix","contentType":"directory"}],"totalCount":9},"fonts":{"items":[{"name":"data","path":"fonts/data","contentType":"directory"}],"totalCount":1},"":{"items":[{"name":"fonts","path":"fonts","contentType":"directory"}],"totalCount":1}},"fileTreeProcessingTime":5.215461,"foldersToFetch":[],"repo":{"id":536594004,"defaultBranch":"main","name":"context-distribution-fonts","ownerLogin":"contextgarden","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-09-14T06:36:06.000-07:00","ownerAvatar":"https://avatars.githubusercontent.com/u/4325174?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1663164432.308628","canEdit":true,"refType":"branch","currentOid":"3fcd0daec48d432a069383b6d55e61973a9701ae"},"path":"fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","currentUser":{"id":362855,"login":"kberry","userEmail":"karl@freefriends.org"},"blob":{"rawLines":null,"stylingDirectives":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/contextgarden/context-distribution-fonts/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":false},"displayName":"RalphSmithsFormalScript-Companion.otf","displayUrl":"https://github.com/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf?raw=true","headerInfo":{"blobSize":"113 KB","deleteTooltip":"Fork this repository and delete the file","editTooltip":"Fork this repository and edit the file","deleteInfo":{"deleteTooltip":"Fork this repository and delete the file"},"editInfo":{"editTooltip":"Fork this repository and edit the file"},"ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"gitLfsPath":null,"onBranch":true,"shortPath":"e280601","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fcontextgarden%2Fcontext-distribution-fonts%2Fblob%2Fmain%2Ffonts%2Fdata%2Fcms%2Fcompanion%2FRalphSmithsFormalScript-Companion.otf","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":null,"truncatedSloc":null},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":null,"languageID":null,"large":false,"loggedIn":true,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/contextgarden/context-distribution-fonts/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/contextgarden/context-distribution-fonts/raw/main/fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","renderImageOrRaw":true,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"contextgarden","repoName":"context-distribution-fonts","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":false,"workflowRedirectUrl":null,"symbols":null},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/contextgarden/context-distribution-fonts/branches":{"post":"HVB1akUumWpctKaTG9OLImdnwS52GzVQscV8w_uX3607s5zeRuHlhO0nDeyCJDkROnr0Wge2BWjsNNorrU2oVA"},"/repos/preferences":{"post":"HG5RJ8j9y-cDqEuqXT2QFOm3yp9ZwjzEFfKdRrFAOJi7UgAmDJPFvmd6inCw8mHMhN_yMmR_Hrhm75_5y1Ovng"}}},"title":"context-distribution-fonts/fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf at main · contextgarden/context-distribution-fonts"}context-modules-20240428/fonts/opentype/public/context-companion-fonts/XITSMath-Companion.otf0000644000175000017500000001325314566474430031212 0ustar hillehille{"payload":{"allShortcutsEnabled":true,"fileTree":{"fonts/data/cms/companion":{"items":[{"name":"LatinModernMath-Companion.otf","path":"fonts/data/cms/companion/LatinModernMath-Companion.otf","contentType":"file"},{"name":"RalphSmithsFormalScript-Companion.otf","path":"fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","contentType":"file"},{"name":"TeXGyreBonumMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","contentType":"file"},{"name":"TeXGyrePagellaMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","contentType":"file"},{"name":"TeXGyreTermesMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","contentType":"file"},{"name":"XITSMath-Companion.otf","path":"fonts/data/cms/companion/XITSMath-Companion.otf","contentType":"file"}],"totalCount":6},"fonts/data/cms":{"items":[{"name":"companion","path":"fonts/data/cms/companion","contentType":"directory"}],"totalCount":1},"fonts/data":{"items":[{"name":"cms","path":"fonts/data/cms","contentType":"directory"},{"name":"demo","path":"fonts/data/demo","contentType":"directory"},{"name":"fonticons","path":"fonts/data/fonticons","contentType":"directory"},{"name":"gust","path":"fonts/data/gust","contentType":"directory"},{"name":"hoekwater","path":"fonts/data/hoekwater","contentType":"directory"},{"name":"ibm","path":"fonts/data/ibm","contentType":"directory"},{"name":"public","path":"fonts/data/public","contentType":"directory"},{"name":"sil","path":"fonts/data/sil","contentType":"directory"},{"name":"stix","path":"fonts/data/stix","contentType":"directory"}],"totalCount":9},"fonts":{"items":[{"name":"data","path":"fonts/data","contentType":"directory"}],"totalCount":1},"":{"items":[{"name":"fonts","path":"fonts","contentType":"directory"}],"totalCount":1}},"fileTreeProcessingTime":6.602687,"foldersToFetch":[],"repo":{"id":536594004,"defaultBranch":"main","name":"context-distribution-fonts","ownerLogin":"contextgarden","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-09-14T06:36:06.000-07:00","ownerAvatar":"https://avatars.githubusercontent.com/u/4325174?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1663164432.308628","canEdit":true,"refType":"branch","currentOid":"3fcd0daec48d432a069383b6d55e61973a9701ae"},"path":"fonts/data/cms/companion/XITSMath-Companion.otf","currentUser":{"id":362855,"login":"kberry","userEmail":"karl@freefriends.org"},"blob":{"rawLines":null,"stylingDirectives":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/contextgarden/context-distribution-fonts/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":false},"displayName":"XITSMath-Companion.otf","displayUrl":"https://github.com/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/XITSMath-Companion.otf?raw=true","headerInfo":{"blobSize":"41.8 KB","deleteTooltip":"Fork this repository and delete the file","editTooltip":"Fork this repository and edit the file","deleteInfo":{"deleteTooltip":"Fork this repository and delete the file"},"editInfo":{"editTooltip":"Fork this repository and edit the file"},"ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"gitLfsPath":null,"onBranch":true,"shortPath":"fd55f78","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fcontextgarden%2Fcontext-distribution-fonts%2Fblob%2Fmain%2Ffonts%2Fdata%2Fcms%2Fcompanion%2FXITSMath-Companion.otf","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":null,"truncatedSloc":null},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":null,"languageID":null,"large":false,"loggedIn":true,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/XITSMath-Companion.otf","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/contextgarden/context-distribution-fonts/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/contextgarden/context-distribution-fonts/raw/main/fonts/data/cms/companion/XITSMath-Companion.otf","renderImageOrRaw":true,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"contextgarden","repoName":"context-distribution-fonts","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":false,"workflowRedirectUrl":null,"symbols":null},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/contextgarden/context-distribution-fonts/branches":{"post":"k5waBznJ63qvhmAUMG3caf67WgsfTxaw_qMAjWFaO4W1f_OzOgaXlB4Vy2upmm5ao6Zvf27iJoijUqZlN4BMfA"},"/repos/preferences":{"post":"6R_HXDlgXvQQelCTCBdHBVqAcVtj0JGAbGuKSlfukg9OI5Zd_Q5QrXSokUnl2LbdN-hJ9l5ts_wfdoj1Lf0FCQ"}}},"title":"context-distribution-fonts/fonts/data/cms/companion/XITSMath-Companion.otf at main · contextgarden/context-distribution-fonts"}context-modules-20240428/fonts/opentype/public/context-companion-fonts/LatinModernMath-Companion.otf0000644000175000017500000001333314566474430032636 0ustar hillehille{"payload":{"allShortcutsEnabled":true,"fileTree":{"fonts/data/cms/companion":{"items":[{"name":"LatinModernMath-Companion.otf","path":"fonts/data/cms/companion/LatinModernMath-Companion.otf","contentType":"file"},{"name":"RalphSmithsFormalScript-Companion.otf","path":"fonts/data/cms/companion/RalphSmithsFormalScript-Companion.otf","contentType":"file"},{"name":"TeXGyreBonumMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreBonumMath-Companion.otf","contentType":"file"},{"name":"TeXGyrePagellaMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyrePagellaMath-Companion.otf","contentType":"file"},{"name":"TeXGyreTermesMath-Companion.otf","path":"fonts/data/cms/companion/TeXGyreTermesMath-Companion.otf","contentType":"file"},{"name":"XITSMath-Companion.otf","path":"fonts/data/cms/companion/XITSMath-Companion.otf","contentType":"file"}],"totalCount":6},"fonts/data/cms":{"items":[{"name":"companion","path":"fonts/data/cms/companion","contentType":"directory"}],"totalCount":1},"fonts/data":{"items":[{"name":"cms","path":"fonts/data/cms","contentType":"directory"},{"name":"demo","path":"fonts/data/demo","contentType":"directory"},{"name":"fonticons","path":"fonts/data/fonticons","contentType":"directory"},{"name":"gust","path":"fonts/data/gust","contentType":"directory"},{"name":"hoekwater","path":"fonts/data/hoekwater","contentType":"directory"},{"name":"ibm","path":"fonts/data/ibm","contentType":"directory"},{"name":"public","path":"fonts/data/public","contentType":"directory"},{"name":"sil","path":"fonts/data/sil","contentType":"directory"},{"name":"stix","path":"fonts/data/stix","contentType":"directory"}],"totalCount":9},"fonts":{"items":[{"name":"data","path":"fonts/data","contentType":"directory"}],"totalCount":1},"":{"items":[{"name":"fonts","path":"fonts","contentType":"directory"}],"totalCount":1}},"fileTreeProcessingTime":22.898686,"foldersToFetch":[],"repo":{"id":536594004,"defaultBranch":"main","name":"context-distribution-fonts","ownerLogin":"contextgarden","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-09-14T06:36:06.000-07:00","ownerAvatar":"https://avatars.githubusercontent.com/u/4325174?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1663164432.308628","canEdit":true,"refType":"branch","currentOid":"3fcd0daec48d432a069383b6d55e61973a9701ae"},"path":"fonts/data/cms/companion/LatinModernMath-Companion.otf","currentUser":{"id":362855,"login":"kberry","userEmail":"karl@freefriends.org"},"blob":{"rawLines":null,"stylingDirectives":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/contextgarden/context-distribution-fonts/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":false},"displayName":"LatinModernMath-Companion.otf","displayUrl":"https://github.com/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/LatinModernMath-Companion.otf?raw=true","headerInfo":{"blobSize":"38 KB","deleteTooltip":"Fork this repository and delete the file","editTooltip":"Fork this repository and edit the file","deleteInfo":{"deleteTooltip":"Fork this repository and delete the file"},"editInfo":{"editTooltip":"Fork this repository and edit the file"},"ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"gitLfsPath":null,"onBranch":true,"shortPath":"a442936","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fcontextgarden%2Fcontext-distribution-fonts%2Fblob%2Fmain%2Ffonts%2Fdata%2Fcms%2Fcompanion%2FLatinModernMath-Companion.otf","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":null,"truncatedSloc":null},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":null,"languageID":null,"large":false,"loggedIn":true,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/contextgarden/context-distribution-fonts/blob/main/fonts/data/cms/companion/LatinModernMath-Companion.otf","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/contextgarden/context-distribution-fonts/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/contextgarden/context-distribution-fonts/raw/main/fonts/data/cms/companion/LatinModernMath-Companion.otf","renderImageOrRaw":true,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"contextgarden","repoName":"context-distribution-fonts","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":false,"workflowRedirectUrl":null,"symbols":null},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/contextgarden/context-distribution-fonts/branches":{"post":"msA9-Q6yVHXuHzXH1_SplEXyotr_qvCY4QYHhPNjm2W8I9RNDX0om1-MnrhOAxunGO-Xro4HwKC896FspbnsnA"},"/repos/preferences":{"post":"D5ryR9W5YL2TmIoeWHuy-RTqGhKW38P1e9VP4zYbGjeopqNGEddu5PdKS8S1tEMheYIiv6ti4YkIyE1cTAiNMQ"}}},"title":"context-distribution-fonts/fonts/data/cms/companion/LatinModernMath-Companion.otf at main · contextgarden/context-distribution-fonts"}context-modules-20240428/fonts/type1/0000755000175000017500000000000014613513621016264 5ustar hillehillecontext-modules-20240428/fonts/type1/jmn/0000755000175000017500000000000014613513621017050 5ustar hillehillecontext-modules-20240428/fonts/type1/jmn/hans/0000755000175000017500000000000014613513621020001 5ustar hillehillecontext-modules-20240428/fonts/type1/jmn/hans/hans.pfm0000644000175000017500000000135411017311475021437 0ustar hillehilleDesign by Janusz M. Nowacki, 2004. ,,8H o? 4p  (@((,(PostScriptHansHans-RegularJNSteamMDllllrrrrrrrfrrllllffffrrrrWWWWoooo''''lflflflflflflf`Zlflf;;LLllllllllffffffff````yyyylflflflfcontext-modules-20240428/fonts/type1/jmn/hans/hans-sh.pfm0000644000175000017500000000136211017311475022046 0ustar hillehilleDesign by Janusz M. Nowacki, 2004. ,,vo? 4{  (@(((PostScriptHans-SHHans-SH-RegularJNSteamMDllllrrrrrrrfrrllllffffrrrrWWWWoooo''''lflflflflflflf`Zlflf;;LLllllllllffffffff````yyyylflflflfcontext-modules-20240428/fonts/type1/jmn/hans/hans-sh.pfb0000644000175000017500000006073211571377075022056 0ustar hillehillet %!PS-AdobeFont-1.0: Hans-sh-Regular 1.0 %%CreationDate: 19.08.2004 % Generated by MetaType1 (a MetaPost-based engine) % Design by Janusz M. Nowacki, 2004. % ADL: 750 250 0 %%EndComments FontDirectory/Hans-sh-Regular known{/Hans-sh-Regular findfont dup/UniqueID known{dup /UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 17 dict begin /FontInfo 9 dict dup begin /version(1.0)readonly def /Notice(Design by Janusz M. Nowacki, 2004.)readonly def /FullName(Hans-sh-Regular)readonly def /FamilyName(Hans-sh)readonly def /Weight(Normal)readonly def /isFixedPitch false def /ItalicAngle 0 def /UnderlinePosition -200 def /UnderlineThickness 40 def end readonly def /FontName /Hans-sh-Regular def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32/space put dup 64/at put dup 65/A put dup 66/B put dup 67/C put dup 68/D put dup 69/E put dup 70/F put dup 71/G put dup 72/H put dup 73/I put dup 74/J put dup 75/K put dup 76/L put dup 77/M put dup 78/N put dup 79/O put dup 80/P put dup 81/Q put dup 82/R put dup 83/S put dup 84/T put dup 85/U put dup 86/V put dup 87/W put dup 88/X put dup 89/Y put dup 90/Z put dup 97/a put dup 98/b put dup 99/c put dup 100/d put dup 101/e put dup 102/f put dup 103/g put dup 104/h put dup 105/i put dup 106/j put dup 107/k put dup 108/l put dup 128/AA put dup 129/AAA put dup 130/BB put dup 131/BBB put dup 132/CC put dup 133/CCC put dup 134/DD put dup 135/DDD put dup 136/EE put dup 137/EEE put dup 138/FF put dup 139/FFF put dup 140/GG put dup 141/GGG put dup 142/HH put dup 143/HHH put dup 144/II put dup 145/III put dup 146/JJ put dup 147/JJJ put dup 148/KK put dup 149/KKK put dup 150/LL put dup 151/LLL put dup 152/MM put dup 153/MMM put dup 154/NN put dup 155/NNN put dup 156/OO put dup 157/OOO put dup 158/PP put dup 159/PPP put dup 160/QQ put dup 161/QQQ put dup 162/RR put dup 163/RRR put dup 164/SS put dup 165/SSS put dup 166/TT put dup 167/TTT put dup 168/UU put dup 169/UUU put dup 170/VV put dup 171/VVV put dup 172/WW put dup 173/WWW put dup 174/XX put dup 175/XXX put dup 176/YY put dup 177/YYY put dup 178/ZZ put dup 179/ZZZ put dup 180/aa put dup 181/aaa put dup 182/bb put dup 183/bbb put dup 184/cc put dup 185/ccc put dup 186/dd put dup 187/ddd put dup 188/ee put dup 189/eee put dup 190/ff put dup 191/fff put dup 192/gg put dup 193/ggg put dup 194/hh put dup 195/hhh put dup 196/ii put dup 197/iii put dup 198/jj put dup 199/jjj put dup 200/kk put dup 201/kkk put dup 202/ll put dup 203/lll put dup 204/A.alt put dup 205/B.alt put dup 206/C.alt put dup 207/D.alt put dup 208/E.alt put dup 209/F.alt put dup 210/G.alt put dup 211/H.alt put dup 212/I.alt put dup 213/J.alt put dup 214/K.alt put dup 215/L.alt put readonly def /PaintType 0 def /FontType 1 def /StrokeWidth 0 def /FontMatrix[0.001 0 0 0.001 0 0]readonly def %/UniqueID 0 def /FontBBox{0 -469 1420 939}readonly def currentdict end currentfile eexec 2Toc;j~EЪ%9.>XJٚмD"e?&oLH:]~nX%l޹dQ@a~M~EA˟V.UM؀")JY4қ UC92"\ܡw1rlxнtaA*`Jp[KD^- |63Tv;K>ԥBa @䠽f y7.-}oKh'%r菅+e܆&џ] \6lRC`TNM7񢮏3b6!Z{| Їʈ/hQD$|p_fj D=)q{ՙ<ȣ^D V̜ʙ44v~9@o3"8 ́3:R: H*O#Dj( :bAѵ*L.1|KNQR&0 'Ksz;C^Q"POq^'Jg֭s[7[-5 s c)^Ԃ,/yrYZ;\ૻ䗪i<~7?Š|^E}xrP ^iMD#$0DZa<#jֻ@>F(3;sn!e G+)mw⽛:O =/Q/AL C $GCn |t Uc5bV8?zNkzT%([@\5 7Dj_Si*1>".xDmWY:A֨H K{\ S&>*2Z{ .~:WN<$_3hs`'i/1=Eu43,I 솖)McnW WA3AO]oe '@Oa(IVuY15Tv]+ k{kdMeAN> a7,o)ߓ¤`Mp{H$M@\\$6?% 53DE>k5Ha|$ME8@c.~kRj@sY|k~ϵ]WW1ibERcCW29,?I`YH7,&OKrT)%ck "^w}3Y>l(?A? +K cOh#`]c5GPKH1 ݝ5ͅn$C}VlD?@}n]zuoj$E6h=ӹ5-! Uj m;$I\^7ex]TT0Vr+FXxcBOf B d/.;s.E3K&'0zֵije-9)K{jДs艮,mB70nZ/د$W1"ogϚ?'Yu9UV0qeCd /=#RvᆔH6q.&#[f7 ^cKD7Hꮦu\{1aI72Z(bk(ԅ|2B:0x-nVͨ@t$Z=*=$ `-[{r]I(&U>(ZG׆gJgSY6i'uؐZcWx_3TKvW@(/ N3VKe j`Nly3iv?, LrFDgUGk<.vUYX"nqjoc=Bpk Ta7oH1SY'5&x$nlɱ&lM]f9#ՃJ]첞 PBO %Rԝ_~'۱ERr@%oyF"sK^pA1"g.h\] K?:>+% Ky1UyQ]NmyE6)KbfYlŋA*h"]"R(Tx'I¶c' Bxs߁Q1Pk_p}w \( ̽;9 9y;=< QD&Kk KeU{!IoE%d*O9PYm 'hųv:nh |4ͅs i5 (l[AZ1;lQ4NԢ!~W^=)t H^{]ͺ4it M۷=B;{5_rnM, =wOI8j@2&hn\?%}ck뻎X Ez>xB0JE6$qͤ^N870L끱 z%I-S&emd=aV#0X`^-ߺ,ypN"AղW} YqwiJڎ#&]BZ]Wϡ%d@*' <u(`D_Lweh'gDoWX@ eZ4&زdyUˑ#b[G@$ٚHo*sT2?p _+ʀR4pb/RŅ'/ٲ۳*J$uꀫ-YgSxl^Ǎԧ?&[vY&)bVe`X6X D^Z#|S%?6aՇ6n8mx(ơ !lc"g۔Z4"?%H.|߬0&\30J>R!3z);] }{ZMHd!ʿ/6oɃZHO$NTE;M KQM:(AU~X8RO@g.GbБ8nEy0T[g4$O@l1"=VqTxذ(CW# `cnMcùbhLG vi S~ 5ݱ01>EBό 1#]$ʹȗmCZ?:ۭg B:{F&UdM))J$#α%ET{6(4ZƏ]a~[ʘ<1[2\*Cj|Fu G"ZAR1~WIQ|/c "jj;|nx}5#hˣ(W-V͝w:&[,eL&ҧt_"!͍z%ÐFسw.puhۉXV|Hcà.cCAJnq"Ek :IxX4P?mxxi h8ۘ" q abn?NX@P#+nQzTaωo@hZUEzkަ2) ܁np$ω"B;{5 m ) geHd~snCA>`O5R\84wUEJU\^+4,!RнCz,R  f2eB̻`Cփ`ܘv2Ϳ4Ư=%{MˡV($jk}XZs5c8B nu$q~[ą䨌;. ld|ž9-N7Й "CzjiC8] ]=k"U0`!@)C?q5 YQqU~=4kn 쌍]9Zr.z9 }*cSJ4=F^<|euMi53SFbs FEB{heP /m ]A,sg7fF4qCJOp}lP6RpBN6G-`0%=(##YaʬBx;\Aqa5zhjz<zSK8 5DS)>lV-߄L<ǖq`!_1%MJ GS/+H2@72hgT h\ac:<'ky:j3JR;'/Tf+Vgp .j];S~(g삂lF~[JτazRJ"?w=ʝfO3{v; a烟>tԜ0d}ݪ4E~P,I<+j)yPޝfX)_/8b< jOV_,eh 6ǰi8Zqt$y`/Z8ҁKYz-Ldze$^[NSCW[_8v tJ/ڨeĪjDzI0>,Mo&X*+4>XJvWN;%CQҼzنX1篷A" ?7z,t Li@R^ey1̵s v[oQydn7b^c)n2^,4wc=C̥dk+δl\@~У=ۍJ&uڛ "me W{!gbzbPEx<4jer mG*AjB?vPȚnu {3I iN Ò~YV#S (}pI@q"Nm0 aU jVGx[LFӈƜr)4,p ^km: X4A;"ny] 3C+' ŽhrhA(:R\ٱ`"(VlBr L8#>0 < g{S.$H=8gD|!F a\%{ЇdUj.4 Im]>''[hbE녽1?QKhB%!& 4EZK.!\-}ɭFFnn*, N ҞU04uS>+p7k9#Ƚ^r=$߮k&Χt./L#Nzuw#۸ъ$]tTmryJB(Don9Q`dm_c4)(|Z|u֡&w[ذI[XGUˠv.v+{yF05صNvi/_ ICbͧa[= |#4| zS`'?1@HҖ:}pp3[KBwU yTlS sLO-82;}8hws_K&z:~!ӌ:.P2+ IP`x3^ {ZZi3L͕i81d粽 Ux lZ T2UusK)|jhT}('f!nVl+PR,)cމt+j'4̩I k+l Fxn9vC+1峱|rΝtx)T+HtTy!C1/F6ڧ=P'fH؊2~T2 $ȜV?ya=%/P6_Uw6εkNU[F:|n%V퀢 {^l!m+|7D.n'Tx%.Pn?{ⶽriEĮmdr_xzI.ݵq}C`;N] I:.,A<(ƽ@I\.qY<"jMqyվwx$V5%S}afycB&Xۜ vlfUs1gJIq~Eݰ <8 X= K] T!L 䟮ti'cϪ(zR~d?Hճߔ{Z_$~^O Xy@ZrO)Ups5&@^=z yc]Xxf#ɓ7>IEڂ@(tfPi?dث:uםt nUq8 )3]ƒ~:xADEG>|OxQI_~g<x=1^""XIK ˓c/[S;ϋTd{sxo]IBvjȨRO`IwrC,Yx A~muɠWXt9^]ãy5#>7K#W]wջYv zfsNbpg:d܁oQ) AJyMt{ l7mWo6j_:KyU C FQF)TD:AssJz獀 "IDҿ\T+Y2 bSc69 }[W&M rmBZC|B~eU,lZԵ4iDmE(H"&ud7=bsE׬uB֋=l wDL` Z,AFIoxQ6<'T dэXHy? (7Z2>= vԠ y_@zNh1腈G*|F@4(0UTJhͪc'P@(>#?S?u%gGmީhoR \Vә I9:ɟiðN-Sq ^'#U>Y\menUsS7No@h3yBl.K#6@YqܱYPL$K>0u]keA$sF/qk5 T}|A̭tu*s~uůƤoMJl?&vw&7{b~4%Bbt9o<;:[2JpjoΜ+h-GB&şYD9>VGB8cX]򨈟t1s(VVrFN4&tQjXJV0GεĽ1pz&eq/ݲah | ߕC7:EXXE\:~ϰ*}1\'=qYAxBT :{"r<3(KHjb\ܮqK_+O- p$]Ժ#`Y`ծ@#GlV᫿dh' iY @éL["bPkwr4D&Bep3 J@ۃlθy%J.VVJ &YPw7n>.[QR- ZӲC̄s7v3@XOU^WduJ5K6Яsl#Lei<_Їx=x[uQWZcOEmA;(6Xf#Ww~a甉T\ˉoP;$gjɪKr@|blw ^?:jN^|?3+j"_Rd%[rUX4{F8í1m*:@Å4^["?h~4V IlAuR6> SjF8ARIHѤSU*/l0 i]bBrE={r0aLJdn!|9{{qteT`#(=X*)CgweL̰kw7sJbϏC5TemXy> }sf$htMX@a?|y.#3= KaEB BJ\7Gg?;kcٍ7-ڜdGyz9BUivSؾd6bg[pE;[,S ^f}!Bh0T-,83f :sܖ&򹩔8i9A0tcd*?9rWZاxﵔ\S r%~[7>/$6`ж]d`49$0@sU[Åeh4> >L8;Ubz ~}"$8? RGeI[8`qG2V,T_qfWDAXU[ucۏ,F}7XKHGa"Dwwcڌ#ThidB gx*sjC  BsKiK6xyZ`pO|f: Vچ*Ruopoqim<8` +>8p}DIY +0.;X6=-x'%R;z[{|1{9aw;jG:"ĝjـoB e1Gf͡ ܔfN ȹ *}R1yU]}ZOTchW;K 8 %UM/ B{D;:S,y?ġڭ %{ONA#0~} DGL OQ|Sc5#( Nu)q IZ'+JPráTuVŎssfeDKT1~u-{T›meޯY ,y,ஆc~9vjю퍪) ?,Nŷ=Rg N}:'eIO+[3%Q82}!齔[HhGN\׆;>K,üGTw~{!:$_z&%x.brp{l7d*r.{>ugyؚKāR1-&xB=ZL(F3SXUWR&[Q' Z H?blRR 'L ps05k6=ƎdS[Pu0(ľFi]fIaFSe,8B$%M']"K1kƴlk嬼鿝Y4 Ӊ_?B݅@33VdIJ/y^IZ# Ϡu[zS~5f~OTeٳ xV)xs udWc~AXeB<.ET!~HS>]&)!DZ \;Cߖi[ZTLB![K:͢ ȀK7%<.U[+*lx;lGLMoeg@<4Z%ؿFng6-!vB14c/k^A hGCf6wШǓ Ws޼qFΡDL)ՁJy8ޞm@1/ Ay^KYI{[ ΃(J6y(ݞ-Q`VI]ODj*bDoCH" zY'tj}MsXlXpISJ: +k{XB«<gU+fw)r/!W)U7"rgWRC/~+>8=+(YO׽Kxv*uLK; ퟬaEא]uL\W&;F`9M ~ |oS<ЭUwý#7>È8ۏrߜ~ЍY $Edb(oW T(ک`9,;X+GT ~(ڗ0UB"0 @(u˗)>/XXj?~p$#z&[E.yui`Jvq̵̻evFڑJ8j,J|kq*^j@27%JED*bfKmA<MxR~^FMJޢ^11~U2Z]?Uݠ[P_3"&~@Iں^A }<䍜{45j9CNKAq=0r 4opV_PXK &qaK^)Ĩ L^Yu|˴6)hžRl{I+_RF*[/ & {`IԑqLόw$mt1pzфUN((bi><˕ P.9NfXN |z/Pw_@Qb?a@.( uvJA9p)B n#Q VPvEjjҺp ՂRP'+b |ջrp Etx3X=c"^oZ9g!=XG?2s5GcӐ?=uxEKxjAо46򝤕o-#wԦ?I&iȂdY7ӭ`*" v#><x&pZ '@Y-9{`9mnUo%h1Y)Ui,=ٜHL';,h4YfOCWNH .j+Mw\xDvKX]?7OǘYaGM]O( ȣ_㕑W3--G D ;Wji:!fqplU]~8J-"-% v-i n"wm>[|Xǧw'Y5$l/3Rz.XKjsA9A~rI>N_83ۈ,l` UK`XyZol>̉jza^>h7- V=䞽՟&q {:ܫ`ԗO.W@8k&A)ex w)lYj(5ol ́Ƞ _+MP1R~tsrR%0O"5;.j1t_Ym,SE<'A*:bPT=k=&!ʖ 5C?Gְe~""u*Fpdٯ=%9R"&ףL"Iū_9HUh e5Pi^oQuֿj!kBzx{U$_҂42 #{T'7 >:[X/{#_SIE4a!ܲo3w T~ϊ փ]>/y"XBƣb_|ğ(e `t3>:cE\83koꢝOpnFX {^} '(3#3m3pUD,?/Sѷ~'Yfm"'F%;-3 Sh1J[uoֳoɽoVʔtGk5jQjGFruhYNZWqNP'v )pĩH'{'@ X+<7;AZOڿ]|&yhK^km<"7ȔhL3 5z[46𪧓ᚫ:O}+ƪߝUݙ8GTr}1bَT7Oہ%{}Rxi1ظ\uX+S!(#/ڬeR;|ݷS@vm YIv-Mx9Ne%(8(7~cmnTn=͹vC!1sJ$=1\c[ [oH$fl%_´er{x%FΜ2Eqtuih=Fū,};4^8W;0\>aődf MtȳyL_(xTp[_Mr g2KU[Kc0(;9HI( y[[e qYx^蛖2 V>6lec]+Mu3Ht̓EOD_ͯ#0 km9m87P `[BkVQ[+#.]m m*5;{+{Z@Vٻk9,zi,/<^v^EX  jA|bvښjfjY;+mדY14\>$')A"{jfu GbvB:A|_djIH4-U=y$ wS9Hn d\T$}Wyfj٤nX'Mگ- k$m 2ɭPŠh8c$&vZK%奔!RWM23nҐYtf1GFu*]wߓO+y&ѻ  c,P6+};fFe}'_ܤgSk߃aq䮞 ^^Xs9r0G3iC̍ =tWb4R%N+p`̣^PnAHVո3ܛRcNH.yܔg g K5/ 8W'OuGeFQ(n_ȏ}0-}8-$@_E%<0Xz-t }~r0))@e!L{54d]7:Fyܬ&lxaIع.[n 6\GyJ&5lN0zXG;!ӝ#:Gp!uq oCW͋z< @cOlEmW}( VSHX Kz+ h`?kbz`Ebq@t09Ύ6!$^gc) {؋KoI^msZ)w ⮽#htH{fSʻO C`n.imLe(e@;T\#jCBpY3f_1eV4a?+JhNJ4q}1< , O7PLxa ٴ`pUnߕ C`ت)V[vy:SJQǹGdXnNXZ%30 %c N d¤xM$R憌O85p b91lp^ʼn|X@SKi]{M .}Z'SB⻩|HV+JecQY$a*OE:͔O"^X%Zv;>DM&Wr 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if context-modules-20240428/fonts/type1/jmn/hans/hans.pfb0000644000175000017500000004144311571377075021444 0ustar hillehilleb %!PS-AdobeFont-1.0: Hans-Regular 1.0 %%CreationDate: 18.08.2004 % Generated by MetaType1 (a MetaPost-based engine) % Design by Janusz M. Nowacki, 2004. % ADL: 750 250 0 %%EndComments FontDirectory/Hans-Regular known{/Hans-Regular findfont dup/UniqueID known{dup /UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 17 dict begin /FontInfo 9 dict dup begin /version(1.0)readonly def /Notice(Design by Janusz M. Nowacki, 2004.)readonly def /FullName(Hans-Regular)readonly def /FamilyName(Hans)readonly def /Weight(Normal)readonly def /isFixedPitch false def /ItalicAngle 0 def /UnderlinePosition -200 def /UnderlineThickness 40 def end readonly def /FontName /Hans-Regular def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32/space put dup 64/at put dup 65/A put dup 66/B put dup 67/C put dup 68/D put dup 69/E put dup 70/F put dup 71/G put dup 72/H put dup 73/I put dup 74/J put dup 75/K put dup 76/L put dup 77/M put dup 78/N put dup 79/O put dup 80/P put dup 81/Q put dup 82/R put dup 83/S put dup 84/T put dup 85/U put dup 86/V put dup 87/W put dup 88/X put dup 89/Y put dup 90/Z put dup 97/a put dup 98/b put dup 99/c put dup 100/d put dup 101/e put dup 102/f put dup 103/g put dup 104/h put dup 105/i put dup 106/j put dup 107/k put dup 108/l put dup 128/AA put dup 129/AAA put dup 130/BB put dup 131/BBB put dup 132/CC put dup 133/CCC put dup 134/DD put dup 135/DDD put dup 136/EE put dup 137/EEE put dup 138/FF put dup 139/FFF put dup 140/GG put dup 141/GGG put dup 142/HH put dup 143/HHH put dup 144/II put dup 145/III put dup 146/JJ put dup 147/JJJ put dup 148/KK put dup 149/KKK put dup 150/LL put dup 151/LLL put dup 152/MM put dup 153/MMM put dup 154/NN put dup 155/NNN put dup 156/OO put dup 157/OOO put dup 158/PP put dup 159/PPP put dup 160/QQ put dup 161/QQQ put dup 162/RR put dup 163/RRR put dup 164/SS put dup 165/SSS put dup 166/TT put dup 167/TTT put dup 168/UU put dup 169/UUU put dup 170/VV put dup 171/VVV put dup 172/WW put dup 173/WWW put dup 174/XX put dup 175/XXX put dup 176/YY put dup 177/YYY put dup 178/ZZ put dup 179/ZZZ put dup 180/aa put dup 181/aaa put dup 182/bb put dup 183/bbb put dup 184/cc put dup 185/ccc put dup 186/dd put dup 187/ddd put dup 188/ee put dup 189/eee put dup 190/ff put dup 191/fff put dup 192/gg put dup 193/ggg put dup 194/hh put dup 195/hhh put dup 196/ii put dup 197/iii put dup 198/jj put dup 199/jjj put dup 200/kk put dup 201/kkk put dup 202/ll put dup 203/lll put dup 204/A.alt put dup 205/B.alt put dup 206/C.alt put dup 207/D.alt put dup 208/E.alt put dup 209/F.alt put dup 210/G.alt put dup 211/H.alt put dup 212/I.alt put dup 213/J.alt put dup 214/K.alt put dup 215/L.alt put readonly def /PaintType 0 def /FontType 1 def /StrokeWidth 0 def /FontMatrix[0.001 0 0 0.001 0 0]readonly def %/UniqueID 0 def /FontBBox{0 -406 1352 906}readonly def currentdict end currentfile eexec 5oc;j~EЪ%9.>XJٚмD"e?&oLH:]~nX%l޹dQ@a~M~EA˟V.UM؀")JY4қ UC92"\ܡw1rlxнtaA*`Jp[KD^- |63Tv;K>ԥBa @䠽f y7.-}oKh'%r菅+e܆&џ] \6lRC`TNM7񢮏3b6!Z{| Їʈ/hQD$|p_fj D=)q{ՙ<ȣ^D V̜ʙ44v~9@o3"8 ́3:R: H*O#Dj( :bAѵ*L.1|KNQR&0 'Ksz;C^Q"POq^'Jg֭s[7[-5 s c)^Ԃ,/yrYZ;\ૻ䗪i<~7?Š|^E}xrP ^iMD#$0DZa<#jֻ@>F(3;sn!e G+)mw⽛:O =5^OAsnCoՖJ;WsC\;E D@(gv=n\UY9bh>1cٛEfnW W֢o{=<.5I8M|b]"ICKZ9YgmI;m'YIfX 2}~O@qqWIRuԒ[ (ROm|) #L%- q7Cgds+ApX:]t/ȴm Qұ3GIp4RBl \9>D/b`}wb2㜀 gIA{JIKΊ,}m5 (*6hY,Uآ(#YJ4rONvj!:81Ѓ&]r'\ʬ 7ѯ<_ڬ앢j-M.2tc_ye GpQ0|۬\:*o]DAZێ 77yu6L@ܤ=By$h%G0| ͳZE!GBN=w!GD*N5_$ U [Hl07%7S"D{%9@^<5W֤mƉ㝀20́$SŜ1O[wm5!Dc7hDvuM2ڮe>/xjDm͚;_i>O˶W] J7MwfIT?]2=lvqTsPGy{KÙur]55$P`$2ޠ]Uu%= +8B!-7l8L{SK0:\aν*6R4|q :5deCeYbW٧hϊ!č< × -X 'k'rpoBD-tXs\^q*=9 i:ݶJ!ֵFX#2jxeD/WX%PiO(04R(>J*TI_)q("zdJDAd34&~JrJHQr,Z .1Bk4F4'g;ܳRM(Q:Nw~`ˌDA\O~7f%l=Ahٸ!ts 0^{9 AaGarϝWiһdҨjMl0z#:7k||䉀3\:jQ54f~%zaMWG&g1#OM{'8cퟱ+')*ٵ^GL1P5qS"1 y.3!U ^eA\;:Վ ^c}2k>2o-( HvnV&Uz5N"'x€8HЬ˔]v4.sZEX վCaf]{ze p71W ꧲eTd79AhNTnj7*cʕvB}c-Clxy")]?G͉1E1E4ۨ^V+2*0/)鎛}J/e"PЖ@1A jARQNu.##t*u,Ύ@L)30+ʺ.8;/b) ڋݮڑEjcaLޞԶ6Oi {ݡO\,I%9XWkHcRĚmaêH"J<*SF2̀^Owv$EW~t)/:Wo:h@zė* %:=V%4\]ҝp!j"f@0Aף3_~T9Q |_J;TKG C+Gt4'yyj#'"~Qjp Mv1Fl6 Ng->f 3To똌'4c \]{ՊYH:ẍ́p{d!TJ~Qp=J9)<#QYd:;DB\T(c`x6z(EN XV0FNRÚD[N±(ӹ®z[FVvQk6H4Sh4 @8ry'oW8=Ə:Ϯ6~<ws$k$ĝK>IO4Pby̱NN MATп!0'`#‡xS3jj.+;(dIab>9R\?FATB M ` ?V؃#fyȹd#h < <zvy\l(C_sm#\F'IHMZ hQ'$+A{d*"ae,E؋e{(umq 4{85({v;o}D_2\W/Ծm`\t#['oXGL!ҺG|;ݍt+@"c K_XvJ|"lo EѾl[66R5rAhSF|jmaq-2-yGvygDVOo> bF#,`gB1I`ST+pjjv ߩ.DB2/W/)?dR!R9_< )QP\Eѫ—wD[֌&-5X+(Ք%EU#SI_{ l.];@o0ǯހ}HD1|Qtu0Lk~ZK#d4sumب`͡:t>gx`4ps wkoY&gM[u M")1Bespдz'"x`D:($䮒u*9" Qr8Mփ{Y,x\ LQU+"O|݀\MͿ -̄srWe[kn"n`Z X^MxVY(8RoyJwm%.Ojcc"śZ8͹_ƸsT3Q{4<Λ=M uv.T}{0i$94kRx0\ <_X'y=6ֺ}!Yj#ny%հA^2%wkC)ozU[ |_Esn:UDExa^bs/l_9uxg΁YXee5"E&s #1&*:EFJ% X7 aqWLr8 Y+dzHyÅ\,²$}\G|=_t1:@pp!>1U‘ f L׌J&J%Lt Gy$88:Ŗ$Sƿ+Vpo5Qv;Rߵ$Ż֘Wa*dǭZү9?P;Yn p/u:TzԵ c/f9IS@ԜĀ0XPGm&`Cj ]d~K_ʘ7#u4]7xv<KQHܣef8auCm) D"hv|ѡP^Vn8?=?s 0Hw= 5Je};)8Wq4Uvv U0{yq0Dh'I1*BV/,iYQ`Fܰ&afx@2 nTX5oq:jmץb&8ww=0#LOIC^7A (@1+ I!]BW?o4^|S_;qhH "oJh $zw0ׁJ]C4 2X_le.ݩ~>}Y"h<ֳ轐tꔳqR𾓮=Cp3wvJ]B2X-#۔q̉O/LjXĬ+ݬ;bEhY2Vxi4B*BNa@*쯒wDdCqm1K:rT'VɲoDU*Bʋ,7ڂ!)!1tڏG1J%>4zc%|?BZ4m{ކf_Ĵ8X|0 پy¡0B'_@B2)kT%i),q ䷺W"B-;ėºI\!Ę=GQ]ˌ2vZJ{ u7yVˀ̈?~> /c^ xи{$)7PlhoeVFYӛ uf0m|x{ )ZTChliD\Fz-}[I# FgHd0X}q7A']Vu1ۦ~ًGe։9)Qjn⯛0 9.Dπs=;xxD#ܐ4?օ"@ǵ8/&7(@_ HMv5'ḀG黅PzѩQ3IR$N5VoHtR" [*rQ jfW;?]ĹpX Sx3(?EѺc2YѶ+M aY'Lmv.+4h` xNJ>, [U2U%$p8ze 4}̭tt?VV̟fn51.GAh[w>4Q 1uadBbf"=j'7LCpVe"-(b_e%EPd\m>:rp'w Yz $dɋ n{Mɱcn`ֻ̭9 .4zOY X[Zqt~kHq,g11gV Te[yx5$Wrz6iT[T},%vم 2*(+K$,ǍvV}}. ުie֊dOgրs8۰١&"SI׫!xQփڌ( Ze}듻|[CeEȚWO)1{[*{ߙRɜjZ]CAt]Kf!)V`^OfSg&d!REҊ+bdܨO4髼F(8H-VQr5aD'gJ~'L 4];")rsZA&I9E/ :JϙPHnt'USʸ  _E٩S +O q/MmX ǯwB$w8D\"Q0zы'=euؙ"u ?[XcN'|i`s1/ШVXEK$\\[÷6(-$6Z-15s^VbChºo%JR(>En6`&_)zD 8Cٯ% ,7&Eέ5M(mv'᪹7&M^P)0׳Ί۪2%QZCTh|@L4u$Mn,#"n*"A`13:UbT?`|QPJ!ø2ؐfnoͻTԿ2 eŗLEwpΎo*HmaVm h;JNOb;J 3S3JjTסt;eYeԛ_A,Ҭ ?5^ӡ2`:~qf?2&Vo*E#kRAMHJza$v3#Xa*k1|ZT(I8&ۃԮ^3^y HI`z=k4, I ; Շ3)JlZ#f8j MkZHhja=dv}d~fvFvm\Q{YA.2k/G_wNw^2*Rs>6ʠW3VQiΔVRYko}\U_??S!xpm( @OCIJ߈Y&F˾:d 6lioeyiK* !7Pt~}nG i1wP8~ A !_m~]%5 b1џH3D^i.\k$+ek_?o)فu=Nuj-x%qOX`aiU-M-Q Kyf[q] sq2ɚ^bțBKˬxרfa;5_vF7B!>c# ._2s]E]po'n{Kƙi 䉌modJ ,bp[ؤ!x^?Qif{-; 43!)N2(.b!K/@i|)],%>=Ʀ 3 *>W9xڇ 5357(?M>3wRR1VYtNfkߍá,D,sQt3J]27֍vJ䡆e$R9h(E$֑̙zӂ6aBNkZ@z؝.< nۧ}>`NV>>/\o\7湏Tm_:]R{e B#BZW8;/з5䇶1tAMo9*Rŀk8Gє B@ BB BD BF SH SJ SL SNSPSRSTSVBBBBBBB BSSSSSSSSAAAAA AA#A B%w B'w B)w B+w B-w B/w B1wA3v B5w B7w d9 d; e= e? A C E G I K M O QSUWBBBBSSSSAAAAS^ G ^ Q n ;e  ^ QQ~`&;AE7KEC J E ?} S  mI~?}QC9XQ?}OmI~A@̀AB@̀BC@΀CD@πDE@ЀEF@рFG@ҀGH@ӀHI@ԀIJ@ՀJK@րKL@׀LMMNNOOPPQQRRSSTTUUVVWWXXYYZZaabbccddeeffggh€hÀiĀiŀjƀjǀkȀkɀlʀlSƨƨcontext-modules-20240428/doc/0000755000175000017500000000000014613513620014635 5ustar hillehillecontext-modules-20240428/doc/context/0000755000175000017500000000000014613513620016321 5ustar hillehillecontext-modules-20240428/doc/context/third/0000755000175000017500000000000014613513621017434 5ustar hillehillecontext-modules-20240428/doc/context/third/simpleslides/0000755000175000017500000000000014613513621022131 5ustar hillehillecontext-modules-20240428/doc/context/third/simpleslides/example.tex0000644000175000017500000000047111641726551024316 0ustar hillehille\usemodule[simpleslides] [style=BigNumber] \setupTitle [ title={Title of the presentation}, author={Name of authors}, date={Date of presentation}, ] \starttext \placeTitle \SlideTitle {The first slide} Write whatever you want. \SlideTitle {The second slide} Continue writing. \stoptext context-modules-20240428/doc/context/third/simpleslides/styles/0000755000175000017500000000000014613513621023454 5ustar hillehillecontext-modules-20240428/doc/context/third/simpleslides/styles/HorizontalStripes-red.pdf0000644000175000017500000055222611221776611030440 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 270 /Filter /FlateDecode >> stream x^N0 y _Zqj'6/ /zvZ+5E!&Hgnm??0Ma !Iڧ@@U22Ėæ%\dfbdY%6.[hTcS** fsrE<Ш1r}Xg89"jQy8\㟓*c1f)u-|lޛe]dJ ϱ;-&r'1 -Jss/gh% endstream endobj 6 0 obj << /Length 300 /Filter /FlateDecode >> stream x^RMK1WM+8I6APAQfbViiѳ};}yo01_hűl'X;@|~bλ\LLl toyz4'=r}"^ <eVf$nH^K^`9jDDmXQjjKn!ϒ)"=mB |@D& .b0;URgz<qT->pPn:DUp$[rewlˣNK=݃Iu endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 133 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUegn ԥgd#ҁ\t w.C=0P2Tr\.CC=cc KP$AtB;VA$ i\ @G)sbz$5/ 4 endstream endobj 12 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 13 0 R /Length 295 /Filter /FlateDecode >> stream x^Ar EBn5H@W]7hI'ΤgJRN1a>F#gn}7?Пގ]7ྜྷGMzyWcp5H騂ɗ\Ē,)kuPbEYsCC%EK뮨R蜩feh8ShTk.ռK}Nfļ[{}cHYoҶ3բ*&"EkIF%́`,AX!I4s/w}spG endstream endobj 16 0 obj << /Length 456 /Filter /FlateDecode >> stream x^Tn1 WXB,iS>:iIu?T]/9+JəLΐ:._2l.YNƅ;1kGv%\no۾c@L[y9l6|&լY|.\RD\M5jp\9j?UW[9as6G}۷6JO.L+HZM>l|{IO`c 7FF'8,ѧLA*7R9M\Ϳ( 07le 8@2>֓tnv/rηPatZScl2ď+^Ye>F[WӈfyxB%&ȠQ tk`AOBn6p6r0p?5݀LP?fdZ83 endstream endobj 19 0 obj << /Length 296 /Filter /FlateDecode >> stream x^eQMK0WE3MDD]ԃTzsݵV~LǛ!40U;E1"k:6RK&}?Ne!ylñ,vD uO3DI:VP%i*; ]_H/9d" ։$fvt0]EES%Fʎ~Ao?Sx[5:KR}H{ endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 20 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 21 0 R >>/ExtGState << /R7 22 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 23 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 26 0 obj << /Length 1421 /Filter /FlateDecode >> stream x^ݛ]o6+x3`jðöb![}i%4KZ)KmA,_DhoVZ(y> Aܞ0esݒ7oFIBIח(Lf .BkVa%bq~\)قWpot*L׷g:C~}sbSʽLE]?~|6:3uu pZWCW˟.Mׂ"76(M\°%块/t$7F\=I+|‰oI Y9?J~I+w_~$Gn>N>Ëo\|}}sD5\>S6.Əx-5$6>x(e&gIJX4t=uU.cMvz+ O :m0$+΋E\۲30E}PI%‚Z#Hntz p,~X9E@uK˘[孂n}:]ijNCY{%uOX$ώ9a'.y2NkCN<Vy>)GUg 䀔([ۣ]י>赂1y{Ƨb`rW>^ )nNɅOLjqƧOḇOI.|rx9LsCy2i3TeP1TGV^1A6C/['GGԆ"&\4^EGMb%cTpCzfQ>EdQ{;SʂF?P*_,#ckX[(~w>2$#i+fP iߟ+LAXQ1 iTeS"\*9rGg )X0W#sjSQ)Tm65]s ƲEP&kN_0Ny),Rا;78U{p 4VX ('ZQ4:6$cqWNj1s2)αrn95̓8ńuvXsO)'dzq_eߙS,X"/p*Sޓ'[3jgi>=26%cΜrs\8>7wN@0N9 6boS>؆}gNuSbg1f.#sjK;sP4WÍq̧&\sjq /~iy^W٧T H%Yqc>Usʨ 51[gT+Q.:&\q*bb5($לa*[VAjSBՄ>o"vYuUl;7?ck+?0̄4>S6NY[0,"딅J8ۿy}yq뫮 endstream endobj 30 0 obj << /Length 2445 /Filter /FlateDecode >> stream x^\[5}ϯ$*W@B@¾QWVloϗfxIdfs]AwWW`39KD՝o.iJHVvy/kK*{mpzunrgp~9}gΈh򪼼,/[6ޔOU_oqC >*/3~&"Y`yجiGf|Eˍtʽ8<.;u9k>vC~=+= 211(3U>'DLo/sE+SpW>{ h2>ɓƣHAY^c`2!&klE+njfx8\=. 7P,p5̏'3Oՙ)M_53ጔq`NxNa*;$y6-ʼnD6b'O:9$ )YM{npdsO4/m{ӧ%ctf}"0є)O(KX `&.SQC]84}:ۻ46S7ʬOQrS'y7 p|FO=t )kQ`Z:)I<كӞuj[MS8W:w!aOu\sI+JJđ~_ЩJGaO1~}r:)0q·^:5QDOݔNu\TFj9Zn:%K@)N{wq{UPRo2TYͧج;w})E$6Sp\*)7]x>6.T}~Mޛbuό]O B:i$YL|ҭҧq*ķc g,3VuJlPEh[V{ ݭ+\r" pN%1ȢXͬlTu k&k;œ |ž w`eAScp3+Tthh w`DI{Ug*NSEԈ\)C^_ĶnfG΄d+_ztL"p3+T]2~{BӨG_j Z*&h# XDTw,3"Y=B%W"{BQ3:=U_YqyaEk(fv8:2^bVH/Ƌ2 :g'EeC+3{0Kj'1 3K.KȽʕ6ㄷ3Ê`xf ^ldVdp6X f#sx;3ɡ?R60ށA/*Ӗo3ÊBBA !22ZofFڠm.Y6hcqۙlKfvjM=lJ=v\̐qh`xf5%l" LgVۢtt9f`V݉耒3ÊϢ !a{(og9![.`z<ºBog 4I{0}hɌvf`.̐YP8` f`Л3ƛ[CKfރoɑcx;3-cDߌw`Fb)+\x;RKaC3"`"D؛uɌvfXHIfwaL !F1z^"Fxf l kfvosԧ/= endstream endobj 35 0 obj << /Length 3245 /Filter /FlateDecode >> stream x^Ms+pqUT11DR)9ʼn-Wh?π,d%iTՠWwjÅIuv޽~Nj4 \ūam`옽ixz{l˃z |ky,/zqa˗ں+y[|D~P^9Nޞ~Iyn^c&MWi-\^ӻ.\D|zg8뵚.N2ON7;ݎz11*3?w(L1TޘǿUFOv_ife}2\iywCl7WpjҰ0'ciA,FOhy/;>1~=PyZ=mPõm8N4z|u.k/Q0Ea4>yxF ql !r1)kӸQ{N}̚vD4% j3c0`#V*WPLg6#)E߃7;3paGm:$1MZ(< |}RAYt$逤q}t(S&=iΦOK]S2D]g>ȢOOIhl Iar }pj.<6}8ק=c|ǦO(><<z(EƸ>I0K sYS֑O{(~Ga$4`{lKPeex8F02 GƸҨO4JgFikƘC& Jy4)&?9T*oTh5>F Z.^Y(4J=y΢R0gys%SπI:eطQ94^TЩ 戀RSY{y 9A)Z`0Wg֩Se~7o8W: İ֩4b8MJ{;؄ˍN ~/ ; <=XTCǻCmfv\k E͗=̵N=}'R*N}6GMDl;YdaKǑЩ0b*ֻ֟&f3g֩2 Hw֩9N}NmStp>MktJ:U`NyR8xGEg֩#&Yʟƹ)܅T7ʵN=}'ɤ$XUxʉPGJSi4s~l>K.ŻŧJqt*GZ-1b׍rSOi:%)KTN*)NoұdY͇8;w^>Q|eKŁ%ϧ…X3 mfab[FL|[N1kcqF~ޑo|neftU,5alO&DW˹(8iRc b{qW2qQŖ=XQ͊0^͊l߷w`e胲+WnҪMJ6) )DX4Ǿ~x5>r-טw`K퓊Yx5+2(0m=XQ4pK bfeyJ2 %x|/u U%lHj҃]Ŝgx=/\j]Qx%IXe%z^̺:4/;(k3*Աdt=˝ܯ ;[%TV_o5BpvXvUщoֵYWs[Wr,6ڴkk]^mfܬu4Yf]]+dͺ6`]1IVa7~%f]vu.RղŻx׌D1 M6ڬuE Yf]g.D)dlͺn]tVumk),E̸;ٗ1ͺ6b]%2m6kwDUT$j3ͼo^Q6sykJ6ږ_6^S?M'Ód??ocW; {#_P=/ZR2S㙶U|ɶLz@IZSI#T2;2EckmleNt8>KG6zU$۞SMgIܧ_Lw>&L,t2`#()k> @|w*c`B 'hB|tKwV VRrP݁ ݪ`QAX\B5dV.>l \׻O? W7or |&.. endstream endobj 38 0 obj << /Length 1078 /Filter /FlateDecode >> stream x^[Mo7 ϯ@ d(ǢEvoGMuпߧwESgolhH񍤕=ib\=1m$; OU?~8]M%%d[Tfau%zδ>IP`vi{?}&uQYx_^ߴ›z*M-ǚkͅ=/.XՖrP5oޣ޳i2>uO]4?q;'_{;iq ?~";LݱjZT==~ՠ᝖dԫI hw-U|{ϴxTٯh/P8fĒ(H,9K1EÉ脻W'n=۵ڹDii_n@,p#Ήb]w358+@IkݱK\0 ǐ]g@XwWcf\mfT,±0cƮٛk_wW75е>A灮х]Ll@Xwae.%t t] KgKcf33cѣ ?~Z}>;apVG525]gXwUf0m5Ʈ.p6Ԁ׀bsyk̍gAUNc$; x^~Nk \4.y^/.J> stream x^XKo7 ϯХ@ $HFSӽ5}NcIgS`Ռ8$?Hzw;>ؽBD'|?~O)$w緧Y؉E/9R3n~:ϓ^^wuh~z~?>n'Rvo57$)Q8,Ř&ugWUjRAo+ &rz)n|ĹF 2u="|'d_݃wyuNj[ժBtxgw0p{QmM?JfaHRVLkaT~1==ۋXM gVBE1fCLnKzJƢfD$itb[@}:LJ4u/"Q(pvyZȘc{4R7s&kQ 覨'곈ÚyÅBQ7s&P I񶩭{4ZBh "5Pbu;LRzLE,A gOPϙCĦދ($*n-Pr&q5K#5Pbu ˖7"UzQ(!l#;]p^j@zzd@cEXWRQu/HQIuFj>d-ꚤ-o@<e3Y:xmg^R\JD6#5PĹnL֢9(\nKԣEvH4/x8' Mq( 5PmQ :ԉ;HPQT)s^Hakjԣ=5Pb5t7D(= ʲq"Q7s&Pg䣨;םb013EǗ@}Z9FEx( G$6:m /̩#uC=g5;slzBdž\V )JpM!eta&j>d-ꔐoysմQYxȌ6\R"JJ$nL֡Ǝ–ѬͧZcC)" )  endstream endobj 46 0 obj << /Length 630 /Filter /FlateDecode >> stream x^mTKo1WH;?9"PQnJٶin&_b$k",<DzD`٧QÓ0hZF/\ XlH wu盢Xt.# |o/{YHw\_5媜۹UѮT]SjƩ6& T}hqӻޕM},Ƥ^5fOOXuAIџT]C嘤_TGUZ^;쁋[XlQUnQ|ð@ή'a4bΒHN|˾ CI_ aPfbb9JMZw:t"~aB&2 pTQb#;)@U ]!`鬑^tYg1y !kd9[3"eIMz1b"T QrKzmԾGA{%o]"9b:)؞:&:ea0Sp`r*mDڧ}aM6`Wm}$h#Wz&O]:p0-[ypD+YϷ+{f^swo@NorHoo?< endstream endobj 50 0 obj << /Length 394 /Filter /FlateDecode >> stream x^mRN0 }W 8MR0honluW_tzԗ tZa}@l, "UB]2:mKWݔu0ZBzW]tW:&+=1O 'âl-Hfw2"" ⑄d  dH R`켕TfOLwt XIYՖ٨dC!q7CLCewDFS=drZ;jfGx t+M#:WpF blBhWԳY*t2BhOMô0k -ױQt };R`]eP6ŨkqBTdiٙa'\rK2XҸYV˪yoR&F9 endstream endobj 47 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 54 0 obj << /Length 511 /Filter /FlateDecode >> stream x^UMo1 ϯ Vb'Z͍-K-M$$3;HzXoNl-PFEj=ќo^Y7}\?7G]YH/!:=A$a5Hm@{F]dL84Rd A_!gpN&L%ߒ&șYy4J ]Uz19#^:}7ШU endstream endobj 57 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 64 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 67 0 obj << /Subtype /CIDFontType0C /Length 3882 /Filter /FlateDecode >> stream x^uX Tan NqĄը*"O20lE0n.Y5*8nADEo k49OOTuխݺwZ@=c/|D$X.IOPyOF,<'ezd!?E}f$7G7&%%?%A')I4t@ħtb&1,#'l(RJJK˲LRĦllf}ke.V2yefjB,")R&-*3hB$SDF$F˔ѲYzj*UR'~n% Ke*U 2JH'EFdiQ2Ϡ@2)M:*)5Jfi)FEbҒY[X)U1xNuIֺuK}-}\}ܭ֦ɢ*YdTZD\bᆵR&" sl// KŠ&l[ŽE|E8 "XL o—XJD'"$"#b D(d"PDN}/[V}[/zzzτ[ +&trOMRV?Ԏe'c.{x}IF5O40>b<4"15 aq䡽!ZƑ(H׸٠=-BYZ)OK${ݓm< uzZ۽e;Xx/rgzZ*J\/U+~ÇAˈWq0sOSp.[KwsaKne~8ww{SKڤ,_+drbuZ]0 vs/m涛Hfmh0InO,XcHOԝ0Ӕ>̺a:Q{/7|櫏@{4;-f¼ >g^]vvlRn)C&ȄMrc Jܩ'7-v`Owv0W.Ufs[ݶv@TY){_sKI˟^lg@2jxG|,h,xGq$}a?Z iQW 6=ЀC`VclAu)I,(`_'z:Bޤ+ζ1C"}6'qsw L9kMuڪ$0 HXٗ٥^0gNl>ŵBlMFNr/C,N`ߤ-c&'2uaA {5leta*8-/]Yn.))(aBh E( S!^k`,f޼*}5gHzyP몒|%EV@?ٹ'q s]zΝKEW2s*o9vgYkLiCCpxIO%pvqWe}<{KHΣ͍=`#ݱ.q9˸0}CulFiS&聚+ 4iE!WYqTԏ~æflXN΢P٨G݇p>N~T@]SpS~:0{@t9)yVj/澅)_T%7pA^ D ZBPLDn/V5g?(ΫQ*>\e-ˮG>}@v¥!;9H?Qa}J7D}ڻk:c>iDA#^s:ayH>1H HΊdvM=/xT3hwk-_.9E]s~".F3#q,iy?*pdZVYVm5s<+g$ klWҘ)\BU'"N K:DɯCՑ,j*ս;í<]<{obz]n9#q.O!Pe8+\=8x҉{6BHw`^܎_(RwigTj'2G:"Њ=2}ss$Z2QBuia;u`5w/ 5`c9bAC2dgG,>tzp`!pgҖB_H_:*`"ult\pX*> hao?xk3d4XJ`\C1\r}d˝(_z$,ƶ+<7maAN#8]\A3#CL& -`  Xb N} -o <ńceFd{yT M̛oainΑdՅF:x黾37he!.?pEbsOy[Yl%BEl]c7Fmq,BFVM8;^%涜RGyu%Yl'Drߢ>?XQ(Ll'm GHֵ) 9 Lt6#H#t^Z~Cr[iZOjb6nd-~鄞R+vkĮļॠwx?3"3m-Sl<2J̝(l%R_Z1yǒwݎ endstream endobj 69 0 obj << /Length 453 /Filter /FlateDecode >> stream x^Sj0+@zp-; 816m^iIJC~G8aax7oތٷ#gз绺fM+ ANVT0y^nJ$ZG ߤ5>lg]U>sm|nj8?D2 #_`z% 9j(,;*-u#`{aĤQN4*[\]R[ob\ Fj3X?{Y$QwZ7R.Yt/jΰh%]- 3*yU7zt1hY% CkP|M18SN(qIH$qȕcPiD'wdVeG3;K1JrCJbͱ]͈zt_vJtmgOn,z+X endstream endobj 73 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204433-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 48 /First 363 /Length 1476 /Filter /FlateDecode >> stream x^X]o6}ׯ{k18Ic׭ `AYWce<4~JrulI<<<&VF{UK901ہid\R!!th0 v!3x \>xbPTGHҞc}x3,²}p, mA#rϻ=;^-/no,uN(T}><]fcʂ&IFg:Īa80q pC` ^M"TϮkpW{ak{K5OT3%EN`]ˉEw|M"d VH˗Pf"I]ދo󌧅Rz:BA:m+;I3;~h_I1KFڛ8+GrO/kI&3{c߃|@a\/HQz(L܁x+ooa@*7S6SޚI q;m?>ͮKCp>,@pN"=W/c>1{0v]yP{YhL(C'WxTldɨkY0(?{0 :kf@fQ=EכC͓qhc;I9yvd|;lJ.V5V=M8F*a(=`%H#sl*H QYEޏH5Z\be򪒹[~tb錣! r3Hi_j:- endstream endobj 74 0 obj << /Type /XRef /Index [0 74] /Size 74 /W [1 3 1] /Root 72 0 R /Info 73 0 R /ID [<7FE646ACFF5D916C0F44A66009D02754> <7FE646ACFF5D916C0F44A66009D02754>] /Length 226 /Filter /FlateDecode >> stream x^=/Cqs~ꡞUE" n^D*b^ػxF# J ΦH̙2ܕ3'b_xDYCHTFH? QcDm\L)1Iw~(ibb8L͉1Oe{释X$N~UQKcou̸t0|5stkSl1 뇯dG endstream endobj startxref 185017 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Framed-square.pdf0000644000175000017500000055754611221776611026673 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 337 /Filter /FlateDecode >> stream x^N0 y _Zc'1/x(ci7c;JM%q ܱHit ۧmm>SƮ;$ʘ%w_?N1ujә5lZM̆(jBzMK"^FC $Dh6!5=s2 gs߶;3wnSAswR8+Lѭa̽+?.D*X+ 8?nLC> stream x^mPJ1|W=n6ˁ ZTfBR!VoDїewf2[@OCÉ@0uѲw|$̰fv fidm _wssHzB>BziP Lh " d{a;a{//v͔U^@ota"SZ3e_h=Gw6bj uŖYZ}&N?ר*/Ϛwl96\ӝd]mO+]sEmgb{7u endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 133 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUeg`%Mt8" r2+ r*dAt5\z&#@9HvH3Ҹ Rp Hj^ 4 endstream endobj 14 0 obj << /Length 834 /Filter /FlateDecode >> stream x^Ko0 C=3~qAB"$C{ʶn/16'Ĩ2{,_F {~c}uf1*_./Z==\ _]8u|c>wVsYҁ DȫMGVGkmz[h*¸ZvW3[{ܘgٳ:F05!i<vS"<1Y\L6&4jIVrg{6m `HzkG%Ȅeq90ZF;7MCHb }"2H)qmC8jIǐ9_HʌH#eBiM9Hx;7ŖL}%mɳe>ݒ(eKw,o$"bZB=! )eȟ ̿u' endstream endobj 17 0 obj << /Length 643 /Filter /FlateDecode >> stream x^Ko1+A"\!PĢ(;6mi3Il73l<αs͙[6\tOӫ5,11ҡCdݫO[g>Bh4I 5 cQkRa\|b ,RrtԪJnL+E&䙠cfL8/}{}5*!*E&ya,*(AuE[G+&L3A I(9AG+!*E&yq,*(Q74SцԂ&L3AaZG+!*E&yi,*(s;v %Q.rMTg9G"X ``h%DU ycY> bN"SDD\Ԧ䆨@/3fVNWݼ˒WQ3Ґn4Gdžu:f$.7Nz\+cGy?g<$S/㉤I)N_uk;;p9<7SkZ endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 18 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 19 0 R >>/ExtGState << /R7 20 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 21 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 24 0 obj << /Length 1766 /Filter /FlateDecode >> stream x^ݛMo6,C(Zh4@n}kڢq'!/%HjvrV{YjpHd}UYuW)Wkr>ViRHXSon}v/__)h4857ߟUQٿ:+Ӓuo*WJyי~u¸ڽo*مc`"l^xO2`D06&5&0Nю51B #*#ER#[䉆ӶT e#[JR bkkdraQjd¢ya,QZ;ABI%>A'ˈ$el':FHRY\a wʈfrnQyS+FCxeDgAXuɅE-6C7^åi#Jy7PHs1HI vW. RDZ*]+XVu\+>H)' ck'zOL˺O[ZωR0K6:ۜa|ދS$͸暭g. E>SY{{xR:r]E ?rjG96cuMm]9|F ݀SISXQ.\1SI߁S؜ľw8Y:8.{3S5S(2A*Գ~6sN-8僰Abk)Bg(((89*K H0ugtlF|8r d1*E3̩ i>.lO osŷ|V:*S>DyCSI̩NQ\U#[Esj8Xl>gbp<:#Sy?NvV'}NHG|*{pʡhӳqsW$<f9uO\9|TQS|Pr UL遺s-qۀ)F>$׃b(mߍx'텽w{swʎZ- V,kkd{}&[g p endstream endobj 28 0 obj << /Length 2836 /Filter /FlateDecode >> stream x^\ˎ#+j X4y/AA#wq^1‹|$%Ub[Z}Z]a/Ko=|13l)*?=?l^JkKC&o? ×_}=.?K?;~1;4/6ƪ`5E=)Y?I'W19cj1 ZFp]6Fl^3XidL5H@3a,j"'=6~?&e 䫁{; \l،f%6upQrxvB.GT\pf4gS&v!HՌp5" x@ ʜ +ITTrDEN zlF~F9 L)3jI9zF \l،f6%Tg*Yt=VrDEN zlF~F&&TuQ=\ x@n[j=2.ZgEVDmOo \|jد {V]n,v>n[٩<9clR hvڼ= ߼2C~g~y#mWw(j_0lsy_- z7Bj",hng|s?=?eCϓ#ty`Cc'{#XL3v7FyΏ{)?kL:>3:jYGhd6XE:}FY?_סOt'C88Z* p| ʂ 5`)^F*uqj(?AXۍhTFt*?Bnyr3̄w(/{`Ejce[D*cp#A TKS^=t aZF_S~{NObR>iNR?#{FBASXz<dAG/f">z_I]X(<}ȫmEO# ~os}g#WZ NYF_Ss#>^+utn bE8:ÞFԩ|NRHS,x Ym)Щ,g.gHg$tʩ,? ~֗On?>Ze`B;bp;=E83F `? ge?%ߢm\$%u+i# >EDE9ݳqJJ (cWS|j 3UG(pNxb3r,*~X `A HMdWb`[ARImpVI &I}?ëY8;X +;bWb5^`WBihP]+;v]6JլP :aJ" e D8sWBl5֬ʡh԰Fua\ Eg$vX児+ {%zVI!Y*pVPDZ#jVuiރ.SѭZa2 b4e+Zr%z^ g3lfD ngx=/ 6ˠ/EG( 0Cd6Z[f3ޅY:Af܄g[в3L%2yr6`F8iS3|=3fEo93CAj2`B5308aOE-_gj|=3z8p]%$Z0#> stream x^K#1#2/$qf'Τmm?R!X*QOY<,Wbx5p¨7OFi|0jH?Lhxջov߼GZN=x{4}\臝47B1(5:qÛcRP D+HkE w÷;1G={πم1%fl>fMnwy1/G&q`*gσFldhdӆD Oqjܤ`4'猛׃_ 9脱:3:y牕r\hn2Tz :ly0YdO{F7,FDn 1*颏TRiJ "G mdt9b~b aޕS'sg3SE1ngn{0fwSǙpG=ٛlKǘ{I;.ߊS;.i*XSK!U8,],Lg>M{3}Rc)ӤgT3f;r>=z7>)Va߯OqOU0YF w'zPSOAi O7ib,݃ӧn>Y?0B?I*6V BEVTPl 5W=4Cmkq(Lǣ[uc\h|F9;ZmqQIk`E/V)ijn8;U)/c:q*R6-eG9FUӾͅL=Wncs-<C8*4T/)=MT'I:upH.a.V֩r Tzg>B80ReN=zʥN=~!DĨ}SSxT83U>{Դ"I΂Cu:v}8:EB 6(:9_S!. xRz4N:E%q*:A/SSͨ\Tp56 u޳xپ8͹8DWO6G|U:j]T)#DQ6:uj҄{Wy:uB:n 8:=ՍrSu:E!P?3C|RGj{*W'iSe}yD‡ҩn r>>= Fԩ*b* ?o_uPQ'K=qF)"[{J 1pC~ <$e.\}~OާLiZ =JS&>Vx*/Wq;ƒyhM N8;8 }:G5 /%N&hJf`FW8۴j̦wnjM` /'̞9$u qaG`جf <^K wė3K-9y2ރ5gLpv_/g!)ǔxTiŒH(L/Yk&|9 GCۉY;0K'f,"7,=r=Uq̐QQY7p!?ҸuTƗ3c9evƻ0c'Xy%)4K86 FܺT V`UΒij+ /x`]7|(Z%Rr;&;> stream x^[M6WR{0rcvEַMS7dlv}pWBG^dY=>f(qƙ+u"|:CfN/~%×0g lꇧz7\ݿigg~3,c`.'z/8D8;lcJLD9+F_$eamvoz<'Ks6gvE:Elm: leF8>;F 蒢i(g!/ ;STf|ѼhAbzEqmR6X3RFNg]R4^fsUpǨ9G,)ZA !ٌH)$^`H9ItIѲWT[G1R rUf!JsZz`%*ђ{E%{\|yfRpǨ9"j!ɾVM2>Xzr[d#K9d}6 7[7׺_ ~m?^zHzW7_\y~}y>ۗӏc~$\vI9XU,d^F+PdQxG&t0ETb絹-{d]}QЙ`4&1ϣD(!0Nޣ zNL(Wl fUt/;\υRxv3>F606Pߎ"ah홄N:C_-?r@ĒLe 6Z n*"h )-;C_1 1?+3l endstream endobj 40 0 obj << /Length 1566 /Filter /FlateDecode >> stream x^YK7 ϯХ@s"D (#MMuC~?ɻ3s4M$̵qy :CW yu|"QYěTT2O_Oo߽21~l=L˳hGyu{SiJDJƯ²t{35owᅥ!DQw9t1`s`䦋qLZ%󜉺 )fFL6.i.%3I)Y!X1b3>qddE|Yi)E@=e'HFFY_RF9^2yQ6.Ȋ@u)E@ ء(V]}1"0Х9&YwVk3ڈ&#+K-B*:ߗ$6KHϨL6Ȋ@2 [G1R >[)>1"$PmA: K!Z *g4([3KۧnFE4YB}4^C m U?z+ttAct))B\2 lN淯_ ?ǫcf·<>Ǫ3}]y9}~A,ӧ?G^G_=}S6>JX>gL`U6?S UQ1+JCzsh On\THUw"'Ĩ|V@zc~AŬ\0b#-cMĠIծF&념Q.bX5-Ԯk.k=jc ~';+Q8D~5K=ЍvE=75 Phn](WpsM}ҮF >\H.s]T ~"ۨz^Ԛе\!Y"IծFfR<\.u-pW(WiZDƱQE]fU3\&FWvfco(FهZl!)sݺ(MX=3f@}ҮFFQ\B]$L4rF L%[1 `6P/ً:⅚r]$[jAPPS Fه:`Js>.bH vUhChZQT[`'jŧ2"[k@ه:G&xXk]QύE=nGk FhWwb):`#Zz KFN8h}wx"[NLҀ=*j\3C]QύE owS"]0HY`Blaq_8 u)k=j,ًZ#;#Q.Z IMX1?SωfTIه LJCݸ@8Ԝpi6j2 hWs#˨ϓV2? 1Ӝ 1lV"n`I\'Ra/g6cdsms` g J)rzm z1p,mZ e endstream endobj 44 0 obj << /Length 984 /Filter /FlateDecode >> stream x^Wn7W :fwcDH p7;q-[ڲ@wvMiyvT~p~u b ϏDTG&58fK~+j{Ɔ_UJݛh{?}rp 8k%ߒ@cG-acUAՕF444 Zr薘yJS<=K،vz3eD˖ ( y %QQN8<8*j`9_HtKѲ(5QQ!8(jQrhRTAi>aQQϙCi#[F&B[EQipAj59_Fm) X|E% <}Qa9_HtKѶ(@9S&n>ԒxT r(ҳJ4eOFMUGF?4-m@ЏwMХ#:/E]$,nwo ˬE.zyK]wA/_!\|xzoϻE7l9]c?,O|Rctk^(/M~nnN~fz{dwʬf}O$'1,.vHwkkh $Ɣxq3 ϊRP@ڠ Zkr͓Aשxm ϰ%@)Jo5\Դ\)7G7Ijbri!9B:Urj(l j"* 5&,TB'7ʫe"s&=*ȄC9 X*:IjQ3`Wa 928k``AϏQ N/v*1HF8e%5f穫e஫jRKfmoyЇѩ?ɳ 8Z=g endstream endobj 46 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 47 0 R /Length 342 /Filter /FlateDecode >> stream x^N0 y _ZNb'6/x(c^ol;JM%q3b8 ',wOzlX7#,gIܥ o~|&cfX؊V\MQ.3إ̆hfCZ@R.5Rf/+ t:I<0ѐmbAt"} YMm_I5+$0MF i?T~Z~`c2 VhVT[G(C~l~ cbbԮj1fnE$dfՐjch~26x {/|i:b2]b~%}t endstream endobj 50 0 obj << /Length 722 /Filter /FlateDecode >> stream x^[o0+Dxf|H[ m,Ō6d'ٌ(jFMH]ݻ=qXTr!!oT6g7 {u~ݱa#/JqAVe7^5B>^ JVM<+j[9Lwݨ<籇禘Ydfuhkg0)2F?+6H LUd%7y!T~B]@߀{~5*!*&320 LpMyBMkdF^:h贵\(jm䆨@T"2(QҎ&O]{&5Qe2#/J4R"Slht4Sh%7DdF^A :` V'iE*y!TiHЀ:LMkdF^ ,էAP5hME҈l]]%7DdF=(W˱hp (^?(6r'ǡKiIPK_M{5\uX > o}G> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 54 0 obj << /Length 885 /Filter /FlateDecode >> stream x^WMo1A5#V*ʍ4m){xŊJx7ޙ7GPbi~*.xzAgR7wzJ@<bpr8_Ӌ-5l{5~`[N'4;MґYHK@o !qSXhMw%.;ciqf9[/L1 6njl6:m+TA늤6RJp%Z62O$bj礶Ɓ" h-GWxQR4LPKTP(NjE dT'm)zEIԊi@Je##4h(bOKkAPpɨ02O$Rb@%P+V+F)[6RqȲ|g'Z)˙0Ē"5x9JNC}O11?y-w)t⓿SB-rev> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 64 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 67 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 69 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 73 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:43)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204338-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 48 /First 363 /Length 1463 /Filter /FlateDecode >> stream x^X]o6}ׯ{k18I?4KutجͱZ#ҡ$&I!qha  2A*CF9? 1! =`M } uV-FZ;<Ii9F9E܋^ΫWU˻ES2fz;[d|d Zpfin)x= Јw8$.0KC\p~-`l^r3sn%[ٹ@wD]QMõxFbdsz_ѧ(QαZ*ri61^~g<-:eo ֻYnw02-=:x}1x@݁'yLџnllCq(p3_6q/]'3x$YrؚQ6qm9#m$S}<ɴ1=:;zStyƴ2EN-TpV=8ʯ@:4$ܮ`7j$O/eTzu?"mj tP무{CIׂ_ ,Īث6[Z:z }&pV ?sb$C}[C*ቆbAAh]|ᖈbBhr+|ÇigkyoӳA2+:-d\Tڹh)>.>sr7hdƦO%@P9qLQ{6j 鸃޼HAS/G!c?ZEz~k_1tq]Vpq:cxL˻$< \cA1r${6KaHc+q[wsI䪰{EX wfx1Cfe~;ή-y>9gb5|jox=E*F ߞyvjӄp4Z U3Sռz8 !pK`TlPpnMSa5& 5s_w bCcQs6HlL`.>xI@_0Jqڠ^ߊn_Ŕ|kLX0#?xi_=Z Ǖϒ9y37sY79;(znl-s#|S`WA}e 0qܓt>Aeգ@8rG}GۻjvKmYm|ZGFuBTl# lYNp?J \`8?Gu endstream endobj 74 0 obj << /Type /XRef /Index [0 74] /Size 74 /W [1 3 1] /Root 72 0 R /Info 73 0 R /ID [ ] /Length 227 /Filter /FlateDecode >> stream x^н.qsKKz)R$.ԡtw! F31Db2w,<~0"PB _BsWɕ3! U_Y!2Oμ#rgqDmRun"-o%1-b8Ü%NζX鏷XUs7H^uI2q~.V ۺh0k~׆dM׶h1;_{@2>_/? endstream endobj startxref 187784 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Embossed.pdf0000644000175000017500000056420211221776611025723 0ustar hillehille%PDF-1.5 % 3 0 obj << /Length 681 /Filter /FlateDecode >> stream x^U[oS1 ~ϯ "5!!1ĥ76>vzk'MmO$c\jAI-I*-9]b"<+q%Ѝ,$o3ŹE-N@J mhr|ڤ>js)|r&MU:8Z@D4{Wc-)ny(&Z5y"}/X$UvHWbs^I\\-x]RfyvJ΁I.5h]?R.h*]3O]hۼJh 赭3)G@c ]廨ui@h!xch@딭|Sq< d*aO*fc= HLːPϘ}zDPv:!GG,Y b޹a1cqbZw^o1 k FAW#>fQ!zhC&Ή k>7oGbT}+ڂ:uڰڪ>v:[Mk$$> stream x^3T0BC# =c38˥[P^X`dUegd%Mt8" r243_.C,N(243601j "sڱ "iPH2P:J+#y)\I4 endstream endobj 13 0 obj << /Length 830 /Filter /FlateDecode >> stream x^VKO1Rs^V>VhB~gfQEmiv=kQb*x_iJJYѢW/ILg0t-x]ʯhџ~n~ٿ+ ͻMҩ: ' IZQgJQN o!,[+ZϿUZ(S%"Dd7!뜗>AR Jcwޭg12 ;*erN$׷kS﷢CL!esѲxRh ʹIDx]-,(oxhm@6ҿT:xchk$4._.LCTy;4h yMvYA4~/q |$qBh !'$H\/i}Kd:pFh#u.{z3fAxXh.Gc@q 2{fy= lGQ.s{i{҆aiiIiᓒT^|DJJǒR:୘VEͽ9j N/L)$=y>)gJZgfN`kOKAѱ/e@/\{F{GdxF*(LT${H>+ H9"[ds΂^Hʺjp;mU;Nx+Z;MS`&hϱgbv0V亰`\ۓFJeqŵg%'J #oUٝ3LN f=R]@ - endstream endobj 16 0 obj << /Length 640 /Filter /FlateDecode >> stream x^VMOA ϯRsdjժR%RPH8kO  =Ho7c9,Fmrq^Û+8:_| ?Q̸͖{nB WH'̮.w;:S\Sr:հ֓.Rа[lRp-}Φd :xk&Ba`oĵ;uʬkat,99$gL\:Al={F,ht.Ps1&Y4}b5W˙lv*<ş ~=SR~&,Z@b]&BY o0ZJ?^䁰'p [p4Ɣʭq]y+ u1p ;NlCn61nDr4v2ӣj?S5SO/uVڴ]j>v{\sWz2:4U'$>bcs+)tF :Z{5s{X~ tuMW[nZy3>6"@܈1s3g}d a5Q&{,i;?>/ExtGState << /R7 19 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 20 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 23 0 obj << /Length 1744 /Filter /FlateDecode >> stream x^n7)xSF#3<E=  ԭMIj\\,w!9TB(KC(@)24y󅘿}/.}\œg/_7%#JWZPϫ=l7d9\wZ "Ko]ΛJJ&J]tNTRƣBPZjL(ΛJ^W%m_VZʪ޼l %]ܖ}!/ʬ.rT,.trS/+d;6D2ZK:we7MgվgezOWliyu&=;e[l0k+{eexxc/yC4)4)S} >L~dl gIp_yϒAFL-\CA*T<>Ti}iKӞg]T9\JŊBRYj :CZlzdzSq^N>wUN\eknyHڔ랤Ka_F}0e9)t_Dq? & HGgq+qMvMVXnkr?(ǏV'*Wn5 |CEU(X/ B>Ңm?v=#d[,D̦vuW\=O[ZU~]f9256s-xUaPˈ`x:i@ÐTėM':  UDWe[Mי>1xљO:mzo|j`>M^Y'v UމOAK k|*0|EbTķSPG~tRc0 O\dĜk\i*'b LQwJ>0ƀݍZ C5p7΅QK5a?@~4+FM_-_gT(bGt!USb(S.=ab1gl`lVR~3z*cRӏHS !(t\sj:)dqXA]T@g 2is$,rɈEbCG{ԚXʩZMSnQ7tGWuލS *8Df~S|0簔d1qR=B6Gm><S=y8uVRzR46enM^zo:)!ƫ֊$J>13S2VԄ|0<)$P#9SOs)GM&wOrͩ<j oT)db̀v9U;p#H=4N8P`#qj4+N9!EN߰\rWMSy'Nur*;ISw%Zh[U%r hq-``ʹS 1DE;:^ڽS-X-SCcV|ŭoH_ׄ5i_- endstream endobj 27 0 obj << /Length 2806 /Filter /FlateDecode >> stream x^[+@FcEѢEHu&m8&s>ײF\J/?~ m$W1p0jGzË_;<{7Gtc?nn\s1DihwfF?z 4q4EU*.Qc¨2W/~W.?Â-X_mو/g+O$̺E^W7U ,o;H9FkO~/4Eώ{-;/`WN<-n֎F-UjOS|?LUo㙍(w:(B MS{I.T4gM΢2S?=9\[5Ob9_SJ#BrJIn0"51z4W C;]ۿf#roo9|RG^N7O(je]"kH/Nz-?zR :!:ӔZgZ[gZGd\P4kupC!"\.G7~CCe$rgZ9thX88X--?\0daSg0R> n鐬i(w _AmLeA aĎޕCy>h.ߴZ|rCu=Uvk?-k|WY2 jü wP'h}D yMe6[ i#E"Kń:tB-&ҧIuS٣)o}ReGx6 }|'SУޅF2Af3֋i)OA>j>MWO>͌:k?ݕ>u?1/qOO$}퓉\e@xb?̆][PwsRag7p׍s֨GKOُƸШ˧|F97ڷ%%4H*e# !pہ_/,>eDmY(=Q9C#=1-SO$R0?(k[{36Ɣ:&-0j;?v3e2wG "DBK|ΧF*FªNeNI47 2ۜ$=:5oqc$pl} ɳTC(:uWn dQY.rS4 ɔNeN) +*u$9G( *jǣʾooQ -jg qc|:u@YS9MY.r|'q1l)VT$!x"!"A֩SK&ܳD)}f:L0S8:e~_]S(:uO)OQ>U::F2~Ny4PSN( Nu\#/9p]T7ʥN]>tʩ:oO?Eѥu 'dܖwn(# tJ`B QHG]'N>@އbo%eWauTQP?0o2nZBx=a㔌bTK %9= ZЕVr'"X&J ZI$EzSad-pN"u*c yon) `E0;DëYiMЄCOGF% jVĥk&U;8cW)J[( J'Xex5+rLرaאOhX-jV%qyWʚѨ5 fEAf]|#0X1ڶ U=5Ԭ+|-j^ex5+lG6pTx^D1|f" 9ya^hR[8yd7 EP : W;nLF:4 v5M<`Ra,2CZFꑈ1]<` i,_ό 4Ʈxf[je|=3V`ue3f{뙅442ރa 0zfSHH}.(m3~f/9a=1Rј8$qEk}xf~0zfS#1ud3@T鬪2(1% .wacxl33u{0󜣂޷11S2ރeÇ _̑&.|Yƌ`h5~2RlUƻ0* {׮g8g|=3l *j)Rk,&iFcgS4IB3ރ@HYAnZ૙Qi6d kp{06 u,qOjn,]|!}ak` ɢue3j4񼴉9_όWy `f|:plgg`FB 1xfxBjf_ [jc,džY{0xƆY3dtdgŒuA_όYYcp2ރ~`Źhzf{PNLa+8ca30ӟق`s) +q_͌B&fO]]I0ZڎF3^2kOt endstream endobj 32 0 obj << /Length 3614 /Filter /FlateDecode >> stream x^]+xF#z?rShk@:]$:3kY8mz%rμ3s#]w{EDZ¨ᇖw~?ܼH>ß Go/K+NNuBlƗ/7cLTA>cی{o]!cW&F\WS %jL^jS\*'gj#V1Oݏo ѻᙪȓ=y=wQEz<ً[?Ý[J?m#e:v=LSh}z+L6M~eL0 -`momTQvz[%1ޘBzC2h)D}^ z2l2ʟmU*٩HQu~L!#압sw_#_7tV06ët!K:70e6_ӏ+=.hÍ|z;//O7Ossۜ޴coV7ii˵iiڧ _@:S'<@hS^;# E0\ Kz0tZj~~۱~pGjs:A}32vsv&J7rw/od_JOKѺљ[&7"On>4%j0U9jun9>|[.TLDߢĭB\j49I87X--7.Rnm eJ}Ah%QX!Q>>4,梺mÁBM{W|rp_iÙtVuZC=p\ **a362 |WY2 "jS;̼ 7P'h}D yd^{WoN*\wv:'@ MҧAuӔ'Sގ<Î4v#tҧ5z*}p}ra0QS?^}Z;}:ZΞ?i7éOO(g}qb&ϸЧ˧|>IDm2* ł5zPگbgn/>(5^3Y-~ f |is=j}QoQR \NK3?Y,^#8tgB|x0we{O,ہzV#tOs*%ZO T\|N)>QNRB,hLɌSn=R V!*sNQ)ۯ>B#.oR.y:Ex]J2B$) 6e&n)G~ #F޷=NU>U>ff3΅Ny GOԩ|N Z2@ak':U'Qq<ש@*=x|Nя'yO-SG:.sGƦܻ}O|gbx^QP-tgH`" Є~NqR TSp:uD͈6jƹ)zOM>|R.y:El4ʧxNeNyE8%ҩSI})Lv Mq.tGvɧҩfK|g$ryw(Y/US‰&=wŝC d0tOxy\8+#yC&YkH `|rwNS2eR6.)QH׈Μ`O=h)Zg1dIONu!6 8ыD)gW0³YFϋp Vzw@lVZG 4!'7`##AW!lVKԯTnJ 6b$ʦW"| 7`EVR`*óYeَ `T0b5³Yy 瓶pVF*LYex6+b 2竰 7`!X嵭Fx>{k]eXҷMUgbU&I._ؐy1:,iz.o¤2<IU2ހWt}J6ҡ ^`U}z:!"8adj3xf)"!U~3#?0dWf3[CU3|fgmHf¦:d3 p*foie|>!EO*6xf:=TzTF3cY?CH3>E2(G`>GqY3c# -Lũm̘iC`xf<<GF|>3CjN^WL\3Oƌge:mH,3L|(HX|f0vۗ5f{m̘k(Eaj2ބ@z<3cAF-IjUe{BԤ35|f<%i ib`&IRV[lfd © 8-Q{`]1|fTC ͭe 32ƚi;|>3"XC2ނN9x^gƈފY[03>`3鬶$F|fc=m3{3xS)g\lcf`FyƊY3cAe>v *foŒuAόYYcpN1-VMd~0ƌgFW2ނ`eE6+f_>F3N!GնElf$P*՚0c'PF{١"godwҵ։T ~Jo%eb0H(E!x9 M].63S҂ͽ4,7\E--8i)*=(; 4Ό އ7T”vҔyg4NMn`+UW6fM$Tpx`~WN]4*bfTSPMWfQ8ҼˬPZ< jVZ5w[6n&v)LkcATNj[n&!Wղ2X+^-ke5i%eVZ-ki lH3^Y:.4j6؜O_W/Mg?I9tUEE/a{T^-kE-˒IZ–WZ-kQM!yreeñ? 3% UVZT6*ujšŷG=.j֢E[O򺻳jšEaS-j֢E6A2VZMkir֧մVZִA5gVZM,ӒC21;zԛ%&{5Q|+R{SVR;S@k;# rC&dB͗<aWaj̐XO:)͖o$]QD-WO'>Ê5ƳRcL);Po(vgb:} OJ"IgW\EYRtx#ɆˬdHLT (@ǧUg-Ɋ-=3O7u7vo{W4?l:M6 endstream endobj 35 0 obj << /Length 1433 /Filter /FlateDecode >> stream x^[K5=cvqA  {#!$dc瞙Hѻg\c]ܵ և 4pt}u7O?zuq^\~7}"O61x_0ћi._vS4$FيאSFS>k2-:jRr0T)!+T9mnQOFXl +r efBw9I.4M>Y gޞpVYx~bܧߣ/2[ΚDיlӮIW^"3 -W5bFr}K!RE o>Ĝc6S/}U9ﯦ{?E ~ ?@QWvqmӋ 2_͋|v6oj+a"" 3`mB(])/6lfF 6|^hǥ{vt٣&bKr&>4oqt&;L,2; 0l1Ctgc9̸;'-H J(8 K.QIȦ 4̨qZ"D>*k z"0@Q`[ռS6g!P!jp{M۩#SFE!`[Wfmm;5^c4kc(@GNMZɵ^a^maM4Unx<"qXceeֱT(UfxXJPߩ nHD- e礈xe Z۲Іe Zײ&wD#_^lxQXZòfYMòekYxq.YP;>pn|'}8ݡu1 AEC>XȈfYK䌴YVŬ$HIe Z-)- *fK5Gy0M+io~~Ud2Jj Ou,ӹB&//H_(W9ٳꃐl L#9U>H V*B.H-œ'R_٬V؀*$093l겠MS)i"%#n'=G&}AiimԈ%aZS;O(M]FC~[XGlR@v|Ȏ"=A#*PWubU\S5-@P"V  jȎ_Ց\Q{%,*VvNȠ@\A endstream endobj 39 0 obj << /Length 1563 /Filter /FlateDecode >> stream x^YKs5ϯЅ*|n^\(R@*TQ`HIaZ!-It=\g 9\/ݍ~ C+7@Wlx}y7sȅzJ,+/b m-dS%v1t$Ŋ%Fӭ2XRHRb.NZ[xa\kݾ/.Xϔ';]ΝcsБWO3ݒ0b>|߽gkwlI)$TӮhy{#YO4Ql}1&޽ﲋ8H5(EsɹRWM_Z?Us*w^޺ýp];'$aOv/!<SOntx;'_/^s( LIL2G輊<9]݈4U6?ieq{60|Վ޴]m:6|՞oo pkTm 'aSQm"8DB)O梚4/GҴ՘`{G%~:}·{7!IMBnj5`!͠n=ӽ;2߾1~ȗ /QfiMp$GAJg@M#뗑$<ap[ӟۋpH'pHԹ#S&+E6EDxb \B"jfQWS&P#(I{b)ƀwuY瘬EE7ED ѧ# %#b'NL֡fR9Vv݋["\0i)1];.Hzzd-jaZ?mևI,.x58> stream x^WKo7 ϯХ@}XY$b/EA ӽ5iLM\o!#: cl34$E#m\p& ԇ?ܼq۫[yq|^o޾'|if_Zoڟ .el'Rth)\%-<.EQ !PXn Bh3|c.&ޑpgyz^Oas)/τgyr쳲vA`/]z}5ڳ%ϯהH}C/>mRR pI xb^ ,$BJ>%eI*\ywݿc }V*vn7}^pC]6j_UsWV~\Oc.[ng_b<'SǍB[v, ّzTi|+0%Ł!Fu1Gn3wX!Ez"֍<%|lv(~X=_pō8ro86|But z ,[XƀӮ.>ޒ=tfhUH4#MMPoqh:]߰>lfJflᒽj(kcv T3".*/Np9ZcN+q$5c1 ];-+a2Ce]Fbq,&\r|! iWNrŇcX*9(WMȆ Hq"AD : wTϢT=A(eS$@ǁqmRZ[R)z $}k{\GR֮pÏg<v-anΘ".C? "A{l[f@["nV00y2W#`Cf5a7; ggL~?"Bt endstream endobj 47 0 obj << /Length 734 /Filter /FlateDecode >> stream x^U[O[1 ~ϯˤUZC2mELn}l@I}l&)-$^i%;}l_j?) i5IcGy8ГzgW7zz}xuv>P^룓\-:"ҚLz\O@.LA)}$v%`SLBI&XBn.uErMZq=Q]NikkVu]^?QgTe3RS*ndՅhbbQ_zD]]nz ?OqJL \ѷ] p)GSR R麑m}kgo\h}ŖAP*8cbn!gF0Dh俱˹@v`m-4q$UyO+j# h,TPO~$-&`0Yf="],XXnXbq,oxo1 2bv EzͣAXBTJ/ Yj%Q[}(?gݑߪo|7-['mfOy K7lqޅFc dgI ٝ~lԃԕX4aݟݿ08xʔC" 4DS/9wHWq & =3ҜZpogU77vd=ac8kۅcXVF/k$ἧF>9F&B> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 51 0 obj << /Length 882 /Filter /FlateDecode >> stream x^VKo1Aq A h6mӔ&}P<3]ɦPj+Mݙ}JL/V R) cϚbvCL/Nc88Le|դ]ΏџxNF$&&ETKA瓋7n*IZQgjQNbT*UW%.E*[Uu?nNqa(鹧-vήd9/}@ ŝ;[l>QIKyh-s$qs?4O|d  [4+W^ 4kt.qHTm8d#K71&V*xߊʰU]ʳQA Hː@I~Z -iܙϏvQ^#`!2Gd.'Ṅ&pa#:jW2=]͂Яh)ClBlJz|P>bt4;e7)_||~Ywgkh~XPKIWYޡeP5S7UQz|ؿ :+6,h6#s@'@#|Z0D [)5i/%.A0J-5c&='F ZDk7(?ss:'>S>$ & ?Ɔ¬k\@Z"?jXWue`:esl0]ԗ)VQ;UN^69"4*PN ?Ow 2Z0N!S l_qxd_@)~W> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 61 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 64 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 66 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 69 0 obj << /Subtype /CIDFontType0C /Length 2264 /Filter /FlateDecode >> stream x^uV TT>0 :TFl!^3f<| (/|00fbAĮadJ@%Hz܋`"I2ueeaP'Zw3=[3 blF c E5n1Gt< */fI5$0^!?)L)GF٧qyPg?HyjM8k&Ȃf3H&V3nuV{kM g*k2D-xtatll)SBkX"DI"dpUVP)d&p8%QSi*Ze-dJ׊'&$$0q y.z #m)nr,NR`kqڦ x81܄Q&J]NG̶=vbqZlS仪N\NR,,R*.]Uhj~EhP~UN&^U H%s%ԬHFB>ll6g旾w= ,>p#bW2h>ߦrUJ;y%}G Dlw+ݑ5w!Dp Y  Lz[ǧ.͛c>zbgWooyP/S>~uw$yK'Tj0V aV~3`*C.| F0Iޕ)퍎BA{GTn):co˒B1dW!T@y' ꅍgyþ߃4԰a r9[%oр1Fȫ&ٻĻĜK;SM@lc49sJ:/Ns˓m_-I`bc$ko1P L_aw!Oc𷘬ba` 3ˆ0e^vA-ۗC>AgҌkV}gf.=z>+o\=Կ*h6oNpQ`?@Zk"];pEC?ͭNNuX749Q\^Y)O>ε4o{yNj/4 w'm+u4g RP2`LCJqT{ (Cb|$>ށ pZpV% =!$DjCkィ \Ӑe+ =\ƒy%EYmʙ#NR?Jךdͳ*s~iiL̺ |?>rizn~ u?~0T+{a/>+rLi2'Gl߽~A&GӦJZy6YX`{U T׸$&^Ƙi#킰=wBꖩ8 K674mllڸM9 7lҌּ endstream endobj 71 0 obj << /Length 436 /Filter /FlateDecode >> stream x^Rn0+$zH㐤E*PڬmUmh$bGNrCZT$4y3oތ= A_ 鬄`h2@ Pmf*e{\c``C(no#Xl| 4U l0ɱ_^ئ4zƣk!&Za4<η/'S΢ WlOdnMߴPzo|7,6W,| l||iI$m>[ e\ѧ:rղ/մk1D4 ` }6GDke PnOH"N)i8  %Bļ=?t:v$ID(%tGhQJ4G43]Ѱȣ)1ĜƄEd烻ԳﲳM7oYZj8?ԮC/k} endstream endobj 75 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:43)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204335-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 6 0 obj << /Type /ObjStm /N 50 /First 379 /Length 1627 /Filter /FlateDecode >> stream x^X[o6}ׯ֢p$"% A_$Mtجͱ2ICʎJ6][7򻐇'EEĔO1F IQH, -XHJ ͧ )7G]=O0;9qtJ` 8aOLƙ$`?|&,xDSS43!q/%B#pB;0)z!IQ"$@050FH ]%FL.9ćM 1"@>!iW %@3)sx[Me2֎Φ {}lu /(MZW=Qpشں,T D|}H[r/l%%4XxPXFTrE_P5 (H29A.9{qOn Z C>9d̃ث- j79岅OGJw~S !PC)1":׾"`;G|1o"T0ڱj*) vt%~(n켗L 5.'3$Wm[V 7|K+D),F '(X/%) s㞔$6c(+Gy/]y _ 5:.7{olN䞌1-ǎJ mw<G \aK V55~vɍ0'f~ק,xp`wW`N3+rEAЎk ytn~/{ۉ13)d=sS}5GN@pIb 8Rz\|8 XzM$P&jTPEQڱ][4yL9TRn\Pp )U'01x0p0V8K/oA{WYD\̈́́3+~OfdzVђ9rsv4a%E'7fmnz~,:׏e?Dzx PnC!2Ԋ֕ 7~.P3pl5`Jxvg(U+-[o^\<+l2M(^Q|)nԑ ^/r(ǀ'^,8howSΉl]ŲX {rtAS T`^b$ -bQu6@%Cqն +ݣ@6fc%Z6;u^F@,] endstream endobj 76 0 obj << /Type /XRef /Index [0 76] /Size 76 /W [1 3 1] /Root 74 0 R /Info 75 0 R /ID [<101F7CD2457B112EF8B408859E402D69> <101F7CD2457B112EF8B408859E402D69>] /Length 232 /Filter /FlateDecode >> stream x^;/qsVԥ.mZU-udz%^$C71  }~~P@Zb!RWHc"gF$b(}6*DYb_6!rbJL/?̈ib'}+91K b8yt.(1.|[KNYaܟ{U Yct^b;׆d [צWS6  endstream endobj startxref 190111 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Split.pdf0000644000175000017500000056460111221776611025260 0ustar hillehille%PDF-1.5 % 3 0 obj << /Length 820 /Filter /FlateDecode >> stream x^VN1}߯VUZTUV@Pc= IP{}lgΜ)H(j%P+D;`6/ 7tzq4RD)ܓ']|?,mb&Wy[1E*6i0 4.: d*(bFy"LvÙ_ -..X((;`̯?iɜ_RhzZm"sVT1?Zg Af-̘heigJɵԯ& pIaQ*zxQD7NJX]ߎ8ahn@{)u)3Ei~@SjCסSJ4TRj%Y)Z4 #vv؉^Urʇq (w0>KEHQ )q _+K͡2ߩ91h?K3JIj.Ssc|Q3;wԲxFFb6^bv94ވaᩄ`;=VUzn$؀inF9ԴO}C(\d2e hעyôMd$Tu_nYsc0aYX#=t#K8M&9X"8X lU*՞oUΨؼRY9bWyY5R st9ї)ɜ9[*HPVR-cD+/vHeNK]Ktf}KʉhE"镑t'* *atxQ~WRJGw?nF*_ endstream endobj 8 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 9 0 R /Length 136 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUegd%͍ \H0ȝ@ | :\8#P *$Ah*=C!@(w@Lp4 endstream endobj 13 0 obj << /Length 1000 /Filter /FlateDecode >> stream x^WYo@ ~ϯ E0KEEYznJZSvWŪǝ% qJ:S)}YI N!]9Y#8 endstream endobj 16 0 obj << /Length 825 /Filter /FlateDecode >> stream x^V[OT1~?b^b2mO h5& d7{s@ v:70 Ej3 y^u`_EsH' qO/doTBcЭx ;o f޺`ۂuM*  Aj2ն[S0{k*B 2ZʯS8i3K M_Z%D2q圪ʏf§ Af-L++txKѵ [Guѳ"ZԴeN|w' gA{) )͙VE)jASjCP֧  ZI=+^ZkFʀ~ĝ" P\UdݸVP`|EHQ )q?^';2ll4<܋_I;."r؜m5wߨ^ɝV l^bV2ތ{q#!<̻z'<[-гUʎC,}=/#ĦLE&saޘe>/ExtGState << /R7 19 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 20 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 23 0 obj << /Length 1939 /Filter /FlateDecode >> stream x^ݛm4S FP{Gi{mRzNj}{miI_tem+i#9ǙQ0F-b9-ί}jWof3=kc91re :?!_cVxm蹷.PeJ.:LjTJ \Kedy~ib"%O+2үU, \A`WɘCTKj "ɵejA?[J]K7&#G uӳYVZSV6ݑwɔj]3H#^) ㌕ԷQ9eC 4#PRh3) ZAD#cyK`۳RI8Hy )ΖA&}͵χ&Itxuﯳn'ֱniɈ8 FX6u,{Rm~VöSqrw@7ƭjT8"X'_o~]Fvٳs#a9oП)QXv&둁ˆ  B6qդg)^~G薙pN8LEjb;9o@YDYd8N&v fhJU6].DdV S#S Et]:RDYݍ]J嚮⡆ y;]:捹)#H4V a-+ E* BIͱbQOՎ/'DnIW{Z5?ushyT2c9_ XXJ'jjbOKɾA*&v"h}j h ߤp6)P|wܧ(S'NZjkAߍA$2qL&DqR#Ǖ V 6L)`9QY;0tGR&ե?Yf@b#y#-V/n#Ha]!ʕػVzoU'5**56"aWyM7"av8ЃS@' OU!!kpa>>[]bRief|kH)&I9n=VrO 4y N| k~T# )DVEOU=8>ru\"a 4ƄOWy'>I0}r/"+þO*ނPlNӚ6{G@e?7͡jZ;ΕQ") ?9hFM_^56ŀQU>Ĝ klHzioL)Vs4L:,yI6ǖj#4lo+vx=SjEe,mJ\)%i V<ᶩU&:w{?(E}N2˻XTNUƜry UJHrt>?\``.̩)Z3 N6!sܯrj:)-5\RU>6F~>U[p)#+l6{@-Vj7΄S`U0}L95}wTFwHU|G+*ߘS(@*T@BVRMdhG\T(rTtZ̩ʨ*uWh:NiTTH=h*SNM_8ءA*Sh]G}*߁SNcSf4N*hhh:ӊ)͕)+?TLM^8ի$+axRuN}N!?XC#?v-mWS J@YyN[ cV|.U(@K zcV~q, ֤_? endstream endobj 26 0 obj << /Length 3002 /Filter /FlateDecode >> stream x^]k[_/E6K(-@][k&$]'v?F|֎VWH Hqxg!KwJU*fD~_g}Z_Ͽ|Nɬ= t '}۝YM_ۜW1DϘQFO]*T, 9QJIEokԹ$QgqV}Uh V__6C{)i~}FԘ=wT}֭Q7 nzqSn[馻OzJtk#&hƇMeewYO.n;r־Mڤ:n7D%51]ziNu]ptW#}3+:JlR{SIe7), \-2ϲF$щm W$?itN+'^܊P5|o'W˟zkBoՓxs|ÛgԶ-񸻖UxS|Ɵ?VN? sa~3'&O]1V>̱dI>qm6z> Q<5nS5P+ 0rCd2Aї NGr 7ۤ띌XCY&^|A !:DTbq|Izb7;%Sp _yRYԇz45b1S]@ʍ膯P9.=wqx~X<˻=X

hg_19t4-񶵟=aZ.y6lW^fp^DCK'9}kOtナ"5S]}߃Sϡe ɞHv>TdF( Sx3'[B,jPQ_ )J4&ؿ O*q~`Kh9[flFsL aYC"3!x>f:?$9!8h=#z_U~g&h={#(]#WKRlޏSy~zŒ0shĉdJC<1|}RAE$b`4] 'gӧEu>6SP}xWEL>"59pvBϸҧ˧|>%--B?[}bx>!׈J0hS*Y"BҧO>-=;}F᎐V= }Ƹҧ˧|>ic0| r@UJIƌlql{(2:Kc+nC4*4ԻxʕL=GQA(ONUr]$USSa=(-/X|@0W'֩=ʘ8TFgsS4I<\s>N[arOJGTl1QSC!qZFa;Q>NuzQ0ΕNEIsT \s>N&U&vtʨy@c`B(P}f rTNQ~"TلlP.sq\`NS=eTO]:jO9L깄)|N!5#OUlER6N1~N:)$$NSU(eOS{zxjJE**GϤnZ.q:07s}:w::,}Y!uf:BECJq+4ST~}(7%S(jj**?bERu^N!>ȡU `˹Jp+)K9eIAk|Z vT=yc&~j(@ o}L|-x,,XBeQu+1.TDkPХ zܪBjRӶB8i-\6^fVyd0<텐QHπfVX_-VZ~B $eT+64H( "`eK'nY1*N3j0X Xaٌ-+7 H0GC;V `E `NQYED4+V `q$ve*ah&%V `CӊF [Nx+NѰbxH2*Y1V^FXEܺaGFyTtO *,v^b  q72`yLz+cedt x%ȒaW–5͉dGog8QCa- z5mu 6\ Ca"ES]_̰9Ց#aC2cP'Bvf3>X䤺9RDN̠{faFk:ktog$6PXj>#9i׽^ 钵G0CuF'`\FuK+>YF&*`ogfnp v)G0C$l2c|;3~8R =AI.nhnFG0ØVcN۝c +806i]Cɋ. \)`YG0CLiia|;3ASa`[fSv3c|;3Zl)2c|3Dvꮟ1r@;ma-QnɂvRgѝFxG0\8>ͮZogLe `B8p KD)l3G0Xՠ1+ۙ!'k2{fal&FQFd_|;Lۛ*ۏ,#a4_1cPan*n_s*s2( endstream endobj 31 0 obj << /Length 3813 /Filter /FlateDecode >> stream x^]oW&hF|mh k$UǁEg$g8ՒHDs9{ډ aKAw^~첓<} (DCsy}sA+UW 1Vxml.ڐCJ{]t+PšB5&Zz/cwy(*Gf8/u1cD`?Jt`gPqUF?_Gͣ:tҩo;a0|0>v)gSXMֳɰx.Fp>j=&vcR@W߫Ny[;ÝVX_NqkgL::J7B()T{auʈ 9 HdP(+_]蹉wݓo *$3=/U_ߧKmҏ/?F/&'^$هyOޮ~y|t8}h;mdd#Yo?:if 8&87@zo6L Pb~r0 J*?n8`a=g; 0 0<ø CP>5⟳ xzSd07xE߼:i<<> Juښ{&7O(s =nUb {Y#L43owv!bW~28cz3 =5}p:oLg?5f1ZDV^˜i?l?q7d?_g1ߜޒ_by3e~yl\'{*^ {ä8̇ y:ηz%?D<Njҏܸh ~h &<43)I.}w盓? >o§2.VJR.BZ\?#+`]бP9bͩ> I\̀bxI8XCwaL9>鹵g緵FGNoت.U{d **a36"7=VʒdXb+V<8e:)]H,)÷'rx;uӈtq'ܷӧQuf}8:v2؈d?a_R?t ނͭ:(2Bm?[ԸRF^Z"lwm'7ש-"Sk׌sSްkN.˾fKөFwH?:'|W{?YH t3H@ĨN|D)rQu6֩2Ss' z&/sw9SfzmSB4d(EUTO֩9OTOIJ5ʷO/B&+L;׌rSy:v(m{}:-thp+:4(z12tjLЩS8SW&Nl5HҩENeqsg}٬xUu^K?ЊXsa}tJ`B Q)H %_geߒuz/̂tvx]rGz'ݢN?]O(ԃbKm| ]`_4)Pf$j欠t!6 8Iهcl{1Y)Bxϋ9&-XDzdWjJk"dPq ^͊DWypV/(^jVdFr[X`bHiUWrJ՜ Vn*uI%$@jVTRh#[pV'JլV6lJ,f+ O% ejVpVXpV>kլŠx9 g/4ʒR]-(z^R_:= x76YXa,挵Dҗ+ xE*Q{7%5^3ހ=jR_+͎_̸f8TW,MQ ]aR>`:2ނKaF-ʉĶ:1e3V c%o<eP'IU92OLLQ]7aj5]:뙱iocLmjmjfz`ނ.pf߀RQ-.q' H$æ*KHw3SLM`x fxc%g*<1R&3y:73UxQb˰T[0 `O_ό'ņno,rkG|f7j܌`Ɯ-ZQkc3cg fQ3xfPX뙥jf}XJt_vjfTp6wiUGƛ0K "խ,:0Xǫf6-ǴQe|=3{PQ$Lx ff_όT+u 8/e3<_21sJuƛ0" Z)HF|ftR`fLMx[0KJS_EWgf}`CU(c7Q"'諾2ނA]+H3#&"ك57aF4.THe3\-t>oi~m,0J>gD#ނ&ql~W}f:ѓײ{#6qyӳ~:xH{fGS6)q)(ᮓ::&횮%Frn-E ~07~eCOYC[#ߋ)YOXTg5:̰5nh9XyO'KmTRL3̃py(`z#aW5)n>ʟXg.\%!<1eV<ׁF+@^hp,Π`lˋl -DdAub0gһewnY2X#@ݮYG--k#"I-,nYe`ݲ6,f@.>er(eg}6t6T[֦%SLMk7MRڊGϋ“L2yOgv$x옑I eUdb4h Kм%1YhO=(϶$78%ǧb&,R9ql'O-M>u !*Ho{PH25eXg@] MRP>ۋĞ:l&VyHM>_N7Ѡ6$`dJTŲˬdB(CZS(/Yqen6evzݳK.7/>c endstream endobj 34 0 obj << /Length 1612 /Filter /FlateDecode >> stream x^[[o5~_Eˌ/ "@Qhi%y=kINݳ3NQ?L[Ɛ;of;}o.7_l_x5ƔMʟͽalQvGԫ}NM sԑCeIH-eM>:4쥔(iocYm&4!z iSq&Ok2oT1^F;~Fgyr*V!g{rOβ:vήYFV7iSbV{HF{p%z罄堰z;D/YEٻ9]g`iMajP `/$};L48k|T@ 3G&L)w<aUvfgt{JǠNS!zEHl=@*Sٿ.GwwMV̈ d3 Wy܏㻷ª1}pjlwAGp + ϗw\{H[rimT:6bVfFa9CP4P\T*d{Af#~mp:ۘAQWOG/y?_[5)ϤctbhzB$Yı*r,q)&SLM%K *.51'DM&:Zn\j_k-]W{xþc Ss*ufG&Gec.?:|m~~gOc؁Tslq 22+bc 3&8ۯr;qkշᨊ'}qq(k=5jd R9 D&cbG 1z"Av 0l갈& ;`lR ?E 憸Y=4Z:z21⣮Q{ˬ/! l&!vNSȔ,`[{`e{ hup3u*ZcޱT([ Vds$umd.̚g`: 5Y;[<`P65lmpYn8 o&6 A. o8l6y3`—+p ׍XEOq0k0k]f᝹/Vk0k0kmfqJcm8g>+Y1b$#qeBP7:F] Ւɏ jQuHPwL; H׺"Ed#5 4J0>2C$7]aԷgk%-fh qU*aO9dB_1gɰ]cB endstream endobj 38 0 obj << /Length 1740 /Filter /FlateDecode >> stream x^Y[o5~_E!!*.P ohI۴UN/Cgo9V4R3;;o<7u~ \Uö|8Rg{{/}LB`t2&?^>!"?O o~/RҖ(.Eh!hgCG%N]H!j!*F#TPRgCwu{*ViݺφPl{m~526ycnbXWejŭu]K˟VS!%MWyْم`qֹ,*MV]&NY1;+aiEhp`O ''}71)d1`DxL IƤe{7i|yp;F; y?% q5n:ݩ?{_#r?;ragLOΔ*_^w2;7mm,ݷ,mwdakT]>;-afO<_ޱg&.=1g!e훏~S@<]EuACCOL K<z=XHuSᴅq\F y%!Phs7^CcpD{qN{8_.B֢6Ȧ{M`mt> "r5z.d-tsʝTI 80:)"$V.B֡F>DsnW{A>:cDmG@$d-jx[U <‫L{hLDqs!kQc0r bdw$8/HWn^5a^* kt[ѢɎ {pv YGtr щYQ,=ZT Y:h^iN%t kg)u,2»}[ωwﻡ6E65?y?IWpx/ȹR}@?sXZtatn`*s9ed6$1ͣC endstream endobj 42 0 obj << /Length 1146 /Filter /FlateDecode >> stream x^W[o5~8/>#$"Jo2mTi.U==;FJ*zf>ǟ͆/ʢ5V=i-߼zs1M?/.յ2S'DIGC[o?FR4ٵ%hW&J)&%P.I Q9DٔlI.hWqGBGjz}Iתqf~idO-UBdCym=z`ig=Z}ާM##e h#OCֳË-ɱs`GOp" ?wMS}yҶ>`ɏӁ/Fz=8ư5.*'BM6e "oJ{q凕:ٲ.EZE! w19]Vwyjwy~tk_woyY8ku~Z:OWVxgmǽǬ5n^Gу1agW/kF d>Ǘւ.3uJj<I1&0Qp ![SF@ wbTÍ)$pb th=Z&. uw}̢Ř 0ùcx+>%vD&Grx_ȥR_gǂ?9o G[p;veitoāֹYlI= @>hrja#Y׍!QT5OYWB1㣬㡛NV7L]!:TdEqD=MԨؤ8TI plPrL邛Aݗ * w!aEc U&ǻDY'z$e ,GZ,dZ)RJ3^BB6Ԥ2qū%6dh..YnX %䎱pT]u: r刽 m"1&%e j>384j 4ؕ3al'5UH<280^%n[xU.Zʿy, endstream endobj 46 0 obj << /Length 807 /Filter /FlateDecode >> stream x^VNA}ﯨbLKĨ웨 ,7ߪeI uLA{*@+ra҉GН_rx:?L\%R# ;cYM ~$!9C&j!`T:1 |7u5R C6_+럈#8⥤/l4 . eWzsUSGעO~v8ɲ[Q:]vJj\0k5 VgFX5ֶt˘yL4wZR^N`5\p^m E/hN+e1T;*}0N%]/ )s/ e^W^;m4$Mlc!!Zp;d̶32;u,O>EČ,dzs2a_p 74ø1dyhŗ"0u6ZP{k`_se&Kmc6B[92MWɋ[J&g)7 )+Rƾqp‚CX[| Im+ endstream endobj 43 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 50 0 obj << /Length 1065 /Filter /FlateDecode >> stream x^W[7 ~_T!KJJy+ˁ3{+Zx&gά "V'qgCkpjz뾻?pxx Z otIʼ"o{kw*%mڤ( >&s)|r*5>yLQU28åFaT*c19I UN2ft%ۗ1h ̹rs4|3+YeYP^ʦU!ڐ`b UkX-E, 9&7a3w:H~i4tAcjXoۼi_|L4J*Psk+Lv S쎴BρW~Yu( Lb<2 )L+pª?o?+N]Z Mw3 w>_f7aGa"X뷰zHQ(jщFSlAdN oR*oE>%(*(FM'{%+ ІÁGn ѻ*Ac1/G̫5gEdRl H\+7z@6̊Eg&[eMR4\U./2k4;.!UigŠ)V]e/NDڈ$V3VBS"0 "BGyzT4;:R Sx}(pު䰓L{OzN@ZI% Q^$m 6vY9CәX]VjAǿnʈS3EbI ʆ$m}-VZ[!=j P oL2M`_(2>.mNTO}d]6`N-ET:Q`yoc9G^j 5?-9%l~$z@)W ~bώkE<7/#/s3rX3 ۖҳ\o)p1R۞ȅe'A endstream endobj 53 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 60 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 63 0 obj << /Subtype /CIDFontType0C /Length 2697 /Filter /FlateDecode >> stream x^mV \G%l6*F%.jVw'"H `bPO@7V VEEnP7j}[lf~;;;3c}BM s RE'ե%DtN&g0yΊ֨蘍u$t?qJbztza qhI0Q}4mFd3,O^5p..wSF[7.㢓4R\(qCI\66:a>MӆsiڔTNOKNƥrF}NxhѩZ ѦpX-?=l7YdiR܈rC!MЧ 2  :wꍘd׏DʣHF)vH)Za oV,fЛO㉜kKVmزh-o>' 6]+Yx?ZD|ܦ^9s)^U@Ϛ1.c?Y>˄ħ=QeMKOWv׵ޕ{Q%3iШ "_M/~&`*~qňᡈBr)VM_b;AUT,Kcͤ<`(+9AC3S R|p>lR!?Ÿ„Ȩm">;SoprKE3?;J槻!l9fqnFDH:86dldy5i4>+ݙ^S/2FOB "Y(4C|o7޳jpj{ͦf&Wt}mli^$ԑ NlO2M Sʴ-7כ_9pKB~kgeqح'kya􎣹rLn!-@{N:}=3w4248~g+d5;V4١_0G.ݘη6DS:'@8YTWDC1rA."B c0ۊ #NY[?(cf(yryy!cVeKt鳗1R͝1.܍6?5+Gu,G01F6}XXVvrJԥF:;cv3{ڢ97E3ӏd]+;EG l|;}:, r,$.MԘpqSY̤=~R^WzH%vcVK K)bڡJYv~TwMA@EBb ;S%__zz.j#{|TQ b{SYC"g3_ 10`%PJg 7,]vѿ nu kJHXBU5^Ƈڧ+ th(!EnH40  i3ꁺn5 5t~ NtFrm3?B *lc߼m$ r J5Ojpl0 EÄm̠DxQ+KW֕uJۅF# NY7d{&IJ},-J%Uzz,b&yRo@JL?pY~8HNFBt>kkDŽr̲s ̶[ Il(b'׾C#Ѳ/їKl4&d#"SyЫuGkY3%sM)tfIJ|x-,JQ@V5<rZ">b=e͇2M5ġ"?!dwd#s]O;lc*?WK6i2"-$]):z]} R=PXIu[_4G .mp ]",\;5Aa{Q|oaӢTXiw׫ZdvPF6ӓt \$e(ibJIiA[mͶj5)sy_ڜjWkvN[:E86bN1C# L? #$Sgd@~!z1)$;~U[Hq#"8Qu_n.F-y1.đ_'d݄ds/iF/:H&nzUDͬ g啵!Ts4؄FO,bzꊬpӴL\f/rv'tCvȌf, ױ fّ ,*2$z6MO]ذﲐJ3J^N^A!~/eL^Y&v^{ .yuk=mv0}׶]bF9-٦ɦkK-yyyy6nvcAA~^^~|av[S endstream endobj 65 0 obj << /Length 455 /Filter /FlateDecode >> stream x^}SMk0Wh36C$԰ ^iĒC}G867zHzG'!B/^֛LV @O{7WгiQJ%;$#6 R}Rl6?{.Rժ{pNC ?"̉I,k% :/qT\ֵLH_dsCSK} /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204424-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 6 0 obj << /Type /ObjStm /N 46 /First 346 /Length 1502 /Filter /FlateDecode >> stream x^XnF}Wܾ%(dr6.@KcrhQʢKRE=wHYeJɃ4Y6gI "H$$)/ aHE!4F|""?@ ))@ #i " ȋI ! R{2$!EaRPᡔPiGa| ‡rh>i20҃n "DI0"@%0DE:%8?"êE ^@C%4*MZ:(V ؙǣY?ɧ+?G2.5z#v?3^ qA@IӋv>fEYLȗBe-zߤFHNicAz7˓y} f\gWχ/yiG0s_n/'$?Hag$_1z+|= rP3d A@FnSrfMGdɓwPt^@}ZB:LnQ}= ~W<ﯨSץ|Lyz1ɦbF` iyz㸝Hge4J ,;e"ԄV~ft=nCn+ qxW BŇ 泴(;0ivF$g_Fpy{;On8%o 1_͸R90 7jR000q`,>ˋ +ߗ 7@u3vA]%ȹ~i_=Z\c t=~Ёͧa^eoF/w`0>9M0oV ; <1BF0435440C0D45B3EB9AA407C6145C5>] /Length 219 /Filter /FlateDecode >> stream x^ϭN`sQ DP"0fplr6/4ш6Ƽg`387S~;M/E}<&^Ad"A$?i1GΔ DeۢKȉ':}?U<b8kVH\%Eβی1}YeLG^5x}po}qxq6C#q*Z ?OgC endstream endobj startxref 190379 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/SideSquares.pdf0000644000175000017500000056107111221776611026413 0ustar hillehille%PDF-1.5 % 3 0 obj << /Length 635 /Filter /FlateDecode >> stream x^ŖOo1 RCH$@*ʍ 6M |$Yϒiuޮ~J~,5zHyZoodJuL^Ri_ b M %b ib#!/UlM)1PđàMpSFqf-f@?0쟬[h)ɺF9Z+F VO-LJ酢絠-!$7ΛYzJ*]Q .8,饚R ^Y:-;Ƨ!(,жOIIx&njGy6noJiD鬁R.c yJ<2C_e@ 1V O2L_$m53<)YxHGY|F~>.+:w;3z(gZ]}Tf7%zySk2WfGE(Hő,{ksY[ޯ\XÏڻzqgO;<`&oȳ8 9g` /.T,t^6 Mx=Ւ !vA(6=}CLNfP/ endstream endobj 10 0 obj << /Length 822 /Filter /FlateDecode >> stream x^WKo0WD5~? !^BB@7Zvn_ƞd7P=سR(*TzX-uLu\69)MOs'>+|use,@mNҫQFOkj! jTJ*zQ璴:FE۰x1PX(([`׶ms). =(bHu,s&$q絘7Gg 6e`,mPRg ƒYbK$b Β3M9gii9 \m0l-c o=g d %7`93emu37]HG"ݪJK")mű ;rH'u !:֙|&HvqMk8Nj6fD#Lfn(W)BஂI@هbNGm!e;>-c& endstream endobj 14 0 obj << /Length 646 /Filter /FlateDecode >> stream x^WMo1Wꎿ=HrVM[e4&Y&]q<?aKmpVvV۟ۻ+u{PO 5e,_wOP)?}ifн()P@I)5JƓ.R PˡrDڙ ADoSDQ[ ^o-ܨN3֫k hhEc͂ mҔX}\XePo:,]Dm(d,CStT4`Y\cH%O&{Qhi=}'g| 1Kyy[wAdz:E ɲFr7UF#ٔir1Ky2LWe^`Hny %8uIf>Ċͺơς9i8=GY@yF}}qj8;9{O|{d-g,~>/ExtGState << /R7 17 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 18 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 21 0 obj << /Length 1763 /Filter /FlateDecode >> stream x^[M6WRAc(Z {kڢ$d=QđزkɦfHqpąPJU JHeX^'.z\o>T*%ST;Zȿ3כ?J$M&R}۔t* Rb+j% 5h*Fq(I8bhgbew0f׺[ U__(q;s|3̎e_LAeei .qVRĀZ f%y%ur.|o_z*xO&TJb}+7 n%GK LIy`kk= I&!ރk3ݧ|v\䷥?}?+J+J~]ħt) bxZi h"+ rJX[H=> cNKt/XI  6+ SH!*2q5A5Q4j6h6Ȥzj$B~HN6g`hpߴ3͘irη0zL;j'rhg‚ `͉G<H6ډ2RxL:So$Q*)N"B#'q=QO#gu2$e~j[Voɤ㧆:~z|p~{ ٻ}l^f1<4:"S''hlN2~*;1dsd=6~O# Qd3~ˣI[+Mt9 >Cic%lM>E1|jXUrD<8I \۳] |.,AU[O2yO!G!zSNxٔwGY( 5O9#ci(V,Po]g?bc8TL'\Ʈ}f>̜(E;6AO1| |iߚ| {/HV}E <;T@ هfSyOLxiv܋O5"DlyDt>8O \&u?wOY#vyW}SS[&}*<>| Z|kj(iqSU,E5]Sx* 8]<5GrgbGx5'')9(L|wp0ZdT<պd>)yԑ\Mq0}G׃Sv|M;-pxHw Ndi8>< 5HV; endstream endobj 25 0 obj << /Length 2805 /Filter /FlateDecode >> stream x^\n#+z X=~ y p<,1FdE~>6*J2biHB6fSYjx5W5uTʙ۷^_ ZqW޼ۨ1'E%C.ޟ]GIvmNW1DϘq>dT<:r@ .JԹ4ZF|ŸŠo[11]76=ң{hnf }K8n: ix1zF\C 2vA:{M1`{iqbbJq)r| 9J6KL꘳ X^ƺ3~WnFaYѷ^SH.br|Qnf]*Fi)kQ+72OwN2hR0m1ƻQ[4׷W>/ӏ[z^I/7'O/L=~n:џ3-~^_/|K\?ɰݠ–<oz//񿸁6M 9+ilҰ: c 4ژ+vt-9&f?y/D n|_np`(N뻇hBqӳŦC9&e[}l5I7k=3xmp8fedm|Q$/[˓tiqezVnbЏ``Yf)Il dX? {d LS)ĉ;E㠯ا! B!OvO*  Ώ1C,ӌ=X'#"vMf=[飣SWΞժOk:L3tF`FUp} d%(+SHX͉U/}#8zjԍ2SaczԍЧ|>iF< JJ+D 5saWMܱsƣTEROv*JQ8V>/ߍ |NeDpP\tS);\04{GZqL7茑# /[}[$ƣt:C},tF(i:u)qā {J=t*UHJ3N)322Vpq~#ЩnK=RΟa:ESt:eL#2ą=%G4_eNGשu{SOu:eT Hu,t8STjaO N!*FO)=)>ߺC! |xE*1`CTaI>sdڡ Ww_/;gSΌJ{^4K:·Tr}J2)u:T#Sp|oZkl2C+NV=NPSOeOu,t*ž WS:u)ĐG4w%Gd5;dO9TV%S?^UXtQ)KٟNu, ޫQ.ʦΞa:eUa}WvxJHeQԞ;l5V㜲Ұ.D U?QuįY tCk%_tk \t 3hG`JH0 \:s )xH;pm@i?'U7B7N~gg+ wǾͬŖnVE"+ )*2ͬ<ΖڠC`pVTP>08+Y =X$ -33 OFR[d+$R(fVH3"z`[9W w`ֽ ,_fVTrTI;xѣ@Ī:yi?:Ga[x!ڋXa=p;/ij;B" g%/y!;$,x^w)*.fЋZb/씓E 3 vāBmҌwaF%3vSv9g`LaLx;3vbQ2{06gʔ_ffQB n.lux;3ǠDxfOxN#d;p\L6 'ogD>sŌ.h WΥ?1<qb nt#0#UDtۯxfozsۙ'gfDeт`i?X0 d: ^gw`3&^gogSqurv7L~ݦrpH΂73*㤳f=S=:F/x;3sѼ=aO6nOE@3qD MT #8w0}k]K\4`PۍZK]w/z].̦bTE4PWO#=cLvf8Pesc )kf+ $7Fp`ٍ;vfhĩ8bxfx>t牬ɂKf;'U: endstream endobj 30 0 obj << /Length 3610 /Filter /FlateDecode >> stream x^Ms$+B M7cc,`X~gFZER;RwUYYjx5ᓝ:*/ë_A}w?Ԙ?Go;?tΣq$;bmU 8FOUvyt6 5\*%Qhu:׻n^B!.0f)w÷iΘ==C2-7qS峔FNQ~*pJKIO~~:d~꥟ >6ԍrO!`ƀ(S7ƕ~zOڹ$/U4Vb+qH*vI;ȜJޗcۍsR(P*C`Q3|"gI&qSrYI+SJzsNddzǼ"es堖cs^\XOPxԓ\)Iy\멧,=%;.ZCxaOUx=&$ ~o=S̜ .@4WS'8Wz*b@qSOyzJR3ShT;)s8iDxaOU 2ceߧ/۞z_~_7EOqu\g,=em V+TSD$6)S{)Ϟn8p>w߽R@Vs #r~gg>3S'quιSΌJ{9}\멧<=NILz=T*>vﭧ\)(Ǖ,e/N(e﫧ޗ=Սs"T>7SOr>1b$HYbO9R*?\O9Pt#S:Rn)}(/Ҧwe/lĊy^^ː:N*B]HYDRpU8ߡUw)&.EnjK^rCST;@HM]>Eavi=ET\`,aL[8ۉ{} ރ9;S~W33VTxfHc6sV̴5M{0L-gF{6L96m ރTg*^J]MqEf|=3"nFj֬=ѰNƓQ^I7 ރ.kٽxV~&LdtVN'(F F6  9ʍ<OSDmHy$a?Рh@qMU8eDC"<]LOvNj895xsv常NA2sZ̋zGUTVjwLv~R7EC'/ZiIT 7jWF [=k*u^&A^|Up5eXZzn ExMȑE3b7*&_g2%)hMͪy 6M6Lb5iMWdmf\/'剙Mm ;ظ?CS_$hLOMm|Q«iM:W$(X7䫋|&_:^rk{i#fצ:/&l$+lW"'i&`0 ml X t^-&`0ޚf7m>d>#Sl56do_ -ULS;cH˟:q(zIHZ[^-aH'vmr_S.uwM1[*đbjWzW]+fw CLdsBFrnIXwP˯ ?Q@?VW[]ZE\-|v8,?}0ܼex7}P|<|׻ endstream endobj 33 0 obj << /Length 1438 /Filter /FlateDecode >> stream x^\n6+x)PLh4@Qit81c}.z\v>G5cgn338ZƏf;|cw7>gKv'D? t|)Pcݡd]K)JaA E( *gb(s 5+^ ($Ljmo0 WuH-WHʟe# F_POI[ VUb08Aӄ6yRQUCjU*8 endstream endobj 37 0 obj << /Length 1585 /Filter /FlateDecode >> stream x^ZKoF W̥@sdǠmEַMvΡ^kPBP Rɏ3×6 ܓ!>D;rW>^9wqxn8$"!~ujyJM|qi8C% 5$ch3tc&IFH3vݫ o)ku]ϷJ7v\MMV#qk*)GDqidXV`Abg|l9Wڳr<0VɗZ Sݳ2I-V.'JK=їXTZ(8Ɨ/)E;KIH>ٗp9[+a"IҞ d#Z9I>ʛ=+)ШJ۷r<0V'[)cW攬%j lՐ̎ن_˾q8nl%YT_`Ȓ/}s} ;Ǭ|r$ϝcV>ٗ_ ~F}|;MDܩvE=F5o;yӪ>>}/CwJ;FI>\\ WқWׯI/zCfzyzyy΋isyk~ỳ/ܙ\5~a*? `|*7ƿ~37..V}l@~s׏>]GwiGMd05g(T|E8 ,TT!>s*Z<80*E} j3twh|$6E=h]$KlhYN:Qn>$dS"IqCV*"Q| K.58\`B֢nUn#,Gؾo!B"Z/}3 Y| ;ܪuD z\G#wG=ƭ w8aHS cIXH˖OIaCB֡R &vpRԈ k򌄅B֢1su*5s! fc:zMX3}9u}f$ڨ%`EZ-s)1eQυEEJIUh1Zp{\ͭv ԇCQ;F ꆈuq|mFğ;깐˖;$d-jF)Q F.+j"1B֡S[kg@ulSk ԇE]r $U 1RZlTڍO\:8^lF#wu:Ju 5CB֢Q ˖G0sҺ#hع.h3&z.0j_?=0Ӝ1īߝ:0ȨWct!(!'2b6`'iLiS{#O¡W,(C*ee\ƾC'ՁzTb( endstream endobj 41 0 obj << /Length 980 /Filter /FlateDecode >> stream x^Xn7+x D|uA#q&lAk.{]$+3;řfh?s q 1fou_݃}䉿~}r1H|GHwÏK"P繊mJli*lrMYB*zB[a֒ə nx@qယy'οufk.5O5U̧௏o*nxl9Ivm5OC[â+YrGfްCR-XG D]%CV+S[1@ xİ,-RKtjhI9s¼=~ 1 Ky11XzaYȫY@KJ! .K'ð4W0*KΖdME`Zp!X^ ]Rã &綛 x^]#@/??%|)Ϲ;!ßs!+^IϹWkV?>Γ;%5wUW4'oQ|t}gUݸzI Rb~Vka>iֿ%\/z%3Y//g7z<+镖^~Í\o+n;%оOsݵK }G=ǿ#֞Dލ>sW{qX|_NРQ@Sn80(1w&ޠmH- /SalSFm^,~boF V-v5 ݊q)FEsPR3 Wjđs)g8k" fG-BE`=L,„ͻy_QۈV2!a)Ph[5h 0|5h2Gk&7rIhVqk(` l5aM7,8NGǛӑӱeƔ |~riv?4 endstream endobj 45 0 obj << /Length 733 /Filter /FlateDecode >> stream x^Wn0+x)̐\Ǣ@QiIGݥcqe[A@O4ÑZVW8 ?BJ_.oVAYrz$ ?n?C4>/PwmN96,b69&a %PH'Rl CPb4 ]%zTcBZ_UcՏl6NƅΧcpsNpHtJ(@P 1f?P97R0MȩCGr?>!ODiOȓho\s`g軓OC4엾ҝY^aOmwsFB}JAH) JS]q%i_q] mlrp'[Y A8v踭OæO?STkSѷ r-!LΛ*j:R.ኯ(=?.'6*\d#e endstream endobj 42 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 49 0 obj << /Length 873 /Filter /FlateDecode >> stream x^XMo0W @@{k mvK-7<&|>'oLAwj%RJ7 d_+RtW8l*6hh zڤ(\\ 28\,زbIZb GҨTˊpCZڿ.EE>C|m^qn8ӱ)*Q\Wm:%kљ*M L Ur.)p0z/ z*xot|W\8J%nL <FKmAzk;Sp`*l_jcoWdFQ930VŸ́^JB! p0yʘ$F*g0Hq-L!d6|"6w}8 ؾη,A ϑ2Roh]|f[g]ll_f.ųUCEc.}+{Ӛo{SEmTB(NV%rZXP%؈E}].P#owxح(/6vحDn_7E5GiBBfHeRPātn1d%ٞ׳<{hh=vi )H˦WE&u5W`eVx*;ۏ ƫI >̀O>h0qyܔgY,H9? YgԄyR@r!ϋ GmaN=Y?]T1ŘY,'Ʋ/m endstream endobj 52 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 59 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 63 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 65 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 67 0 obj << /Length1 804 /Length2 1007 /Length3 0 /Length 1569 /Filter /FlateDecode >> stream x^RiXkpLjdz44-2-`RH(L}՗ٚ&3SFjQN4f 1ut,JdMCR!J:\Ώ\ߟ}zF@D0C$D d"Xl:LD2GsQD$0 =<(  `x*H Q(5s7 )$82@p$"91"6t ?JDY;YDBsa`L!j89CsPs_1ap2x(' !2*]ɇi"e r @P^D`!4̷.Nւ`0E(G!V:^;L 2-z"(:b]t&.ѕ}o5vMk \c P}z]{&WgU=Uw[#49,ʌ V'wg|rK1:ã"l|_QϦixiɑ;_ﴪp9XM'1klaOK3Ħf?N 6Q`_z ۮƂ6r*a< e]&-BJL,ղE6hRYHpcmӛgV[{/z Yĉ?azw3|Yi[[?_Tڅ/Y%#+?|Hs!|"2tv`c2,jB2omSqgy>S_H 7yV&RWd}$9`7״Mu\ɰ});&zJg{vIZ{Oó){G[>xWKSdXqqX¥-4Sp#N[9f\Wmgm\W-?k8EaDy/}`'WM{XOpFΦS=N6k8=Zfk&iON :t=zI[wg_^^\x*3zQ@Js~([ʱ ^{hI7ٞmjN/m8>=AU`ޱ"+uK*,S; -瑹}DSBVKZՃK4=;~0[Yf2)䭰I*^mk0*orN3+K3imNhO=_/O_Cd͢rwtՋ1+ӻ-&ٵ?+nDҒ؛#D-ύZLc2!" PM`^/~4F՛,&ª) ][xiÎc-{NO;Ɛ5Ao Pr\,Ru\\vL4~3'p@d>;ĉbNN7^Q endstream endobj 71 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204436-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 5 0 obj << /Type /ObjStm /N 48 /First 362 /Length 1556 /Filter /FlateDecode >> stream x^Xr63͙D t<َcv:="E:\RVNy px$) )$ TʀGZII<#G/%C \ BU^KJr`Bx 2Ɂ< )H'|Ki8!)c.B &uV*r{v<\ {.\Z O @( ixp;PPIh6Ľg|x6F.. bc̡[(a /І:<CE46J),e_,Ca=]3ft}ԕ C),1pсY:<$ .~Cxc_ɰgr}C`1hg\ɍ=fw|@H,R\=5QbFIѹ8$˳a?Ե떚(i; s3Dn2|W N`fҾlWq>ME J(-Oa {Ikvk`펄| 7 "0~=%0g&{/V]?&}4'=M2Sa.t1X3n"+j ؼ󟯾"`K B/ʉIy Fa`Bӟ8 L. bD[Z]-ҀZNՀ\HϷ)  _-KܿA+T|^)tr@ R ukbT(atя ? 0*Z`EymJ푤%/~O;WGg^4ͤN/3T$g}tP5Põ Ȇ,&z86B2-<ȲOh1JM:5 5Kxba…e:͋[~(,tdqX;fTY83] i uh^w}I{7(`aN+֥8GQrk ӑI9Ex؛=x K.^͑8&xf/,^m#υQ];NpΑK=Q]-oFWbmvP]@9K/Z-0q.^fxj[rϧh'PR|UQJ8d npzV4UUZ-#N9ܖmъ i1'9aDQkf8k!Y?7 endstream endobj 72 0 obj << /Type /XRef /Index [0 72] /Size 72 /W [1 3 1] /Root 70 0 R /Info 71 0 R /ID [ ] /Length 222 /Filter /FlateDecode >> stream x^%.CqVK֭ce!ag!ށXy>d%i"l1c|~(Q@ -iHD1pm&o%Q#DۨHꚋq1F&DUL(n|q'q1'f} uAdɸ˽-Eû"VO߮kWXko[mF# y_ endstream endobj startxref 188512 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/BottomSquares.pdf0000644000175000017500000055715111221776611026777 0ustar hillehille%PDF-1.5 % 3 0 obj << /Length 724 /Filter /FlateDecode >> stream x^Vn1 W䂠H5Il'1BB A"@QPanR_I3NAO;w+4z.r3 s?ưMbKMbU}%EX endstream endobj 7 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 8 0 R /Length 133 /Filter /FlateDecode >> stream x^mOA @ s5$bm?ੇC6d2ÄD!$cS2 "ϾnJ$WUh:H,b:{ cy\@$Uv.rnUnW_rc&GE?g4 endstream endobj 12 0 obj << /Length 876 /Filter /FlateDecode >> stream x^VMo1ڞ$TZ(7Zm_bd*6j1kCPuD$4mVND%^bУ"Z ]/wc//qN{}ʡ6A0^wSY h(hcQ\d ]v:H5V#bNwz*n2U~Y $ X eXA26A9K1BLnVxaꚭw ˸d,'.xk9`@[0b [IFr6Snе+HFr-Br'GKMJ2ON;B/XnN%'Ɂ7-Ag4 &nVxASQᵍ{ bSWX$#𘜓;&tҿ7ݻ7;_YwpҴּIͮ16.Whʾ@VSڶ?՞K ex(ÂιsXe8/͖fUe`u!V6Si %UInAgtCLx[º > kYoइ/>pFm-oاƟv0[9XOƷi~@'8igm?.pm1ssYKRK1ɺuSx^rY*s٫y}I7br}O-e#9? endstream endobj 15 0 obj << /Length 676 /Filter /FlateDecode >> stream x^Vn1 }W>Mb; H<Kpeⴝjwdd8$3-@i0=ۛ? ݺ¡=i?I.u|w;_l]D*NQ*p(pX µckgHYrMJUk(%(~L4]% 3j͘pkwOuͿ;JQPVW#9A7E}Kj.7qnT" dD 6jx]Rԍqj3w͢]o9YM9%5,c5gTG:dH`KT  Rt)xI}s iLb^J1q !)sڀ10dWCReL2Gd5$ r1YHAc <$ rHݩ=1YuIdx(;d[dߺU@PcuLwxI}0eФh) 53$,Tpq $&UV3wsmrYU3kC~uڎa fOAK*~_m!"N[sӚhͺjN|_}tV6?V@Izΐu5i>BVE )pakYf(zй,C,sTj2? endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 16 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 17 0 R >>/ExtGState << /R7 18 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 19 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 22 0 obj << /Length 1814 /Filter /FlateDecode >> stream x^ݛߏ5 '=HC( zm.xכd=\f=i$Mb{3Y%nOG%(>-byk/_߼|jLNoh!'xgb$DѴ=6)Jh.O.aIZbTZ!$ٸ jSYoƵmuVik륤种%tr!R%qUR1Jч$nY ۽#I$Uj$ZiiM0ZxX:m4 .,%zo`7oɼ[yp&GI>扺3OFh B;̉D?R$)Z[.W#*y#VY+I9M$# >iWO"yid'ﴮ(#QypuRSc3H!jU1!Nrz`,1,&WFvCcqu"p':+ bryp{dTVFU'4C:gĤ5d &uy<ޑ_x$dLeH}^_5?E4֚S:7 hHVXq7 cLp>?uy WW^hc^,uճǫn#݌6xiK՛$5{(ނpR>6]-Kjiʾ}̯ۍ/IZ#ʧٛDHh#}|ŌO7y4bmͧ"O'(Lȇ)z-OO>i2 W )*8:8HI`p%c"p`3]wydJmԡͅRe$9if:Gqxӧ'lȁ>SHk#OIIiAb:a̩-pNMy$>(4sNqjڟO\*a:z*Z@@~edXԧΩ8#O=V7͌SI4/4¾L朚ͣ8 T*B*cB)Qq_1}0!ɕ9LjxT(EuBWB=jg){tdLmYS37JpF{ޓfo8FN+!S3S0 cT3gfj̑!7 z,_j2FM9!/5SyhGQ](U)8 /UʷxڧS㔝S+sPg85͌S֣\ٛ95q{ :UtV]Wl5PaQjһ:ŠkIOƄ;ZpEO *{VlٸVl[G\ ӄj=Mx ~ endstream endobj 26 0 obj << /Length 2868 /Filter /FlateDecode >> stream x^ݜKo# Az? $‰vq^=3Yx?Zd׃CbQ3%U}OݺuINo6W9*zatstۏzݻ)r꛷~|HߞBN7־/w6hOW0' vPe' 4 ԨQJͦ«mnv33o6V aVd=wn㔐x*B Jч4V-|->x%Ide%֦KƧcEY#׆Q}x-UpmIFhiGIK-t XTM )rG̝2J+2 [9{9z P;' 6V \[5r>t9_5IȺUa ˟nu.כ4sIo0ɼNVta/Y3>__nۿJ_/߫2|?#? Univc<333F1x 7_𿺃&a_pMzB)պt>(~*aVн' _*?Qee5X@L;0!2fjB茜4s)LW<RhSH!Js, . I,Jl銁emLVZMQ`멼In&b7u)37]''.YiQ{n&\A;p8]>}i:WE23ٳh8qRWe˨ى`FT'V-}^iv:쾘/& ȿ_LΥO-eX}xW>iJƈK!}xƕ>]>D#&lʶTٙ`ϤN x}^DOWi0E<-,,iJ.I Em6@U¿nWZP~BmwsҺYO]:8ʎը\4 oJ c\iS>MB4ޙf >@p C@ZU #P'RiK{56p<q3n*GcU9bw/ J^tJkƋGө S^3Nh­?*jk)ҧ݆h:G9S3OĹ)Z.i:jl|kO邏Щ>a! N:Ӂezf>uv(sFx=Ta+Jpĉ \s>I!PJ}_)I~sWG=\Yg%IEEFZ"F%`C{}I3cN!)ᔫ)h_ {O4"NUi5#4 թ`l4Gk#fӑgfK3TO"T0ΕJ1GMNXÖF|Nh{OQ(U:Jj"޵ ~N4o}zn:e=1T:5sSĞ/):uOөt>~RgUDg;tU]BSD(cŸ ".ڳ1B A̅"{_^2+iA.3GvK&-r4^ DFޭ#QώЬE_ЕVQ%6Ȉp1H2GOȩ:R޽ȋ<OiX;}^͊3@2ix+BN5Cx5+d]LW"'/MVcx+#i r&x,jV͓(XZQkx5ђv <IZcUլ"9FF=Wdu43-jV(W¡\J+z^$ySb파gRĂ`F:Ɠv# ܀'ͩ >Vg$Q ~f;O >5tPur Y lĬn#<Ik|=3*(p{#O+++M]~6Rkgr~cY̨7MPȮ^QNm3]|>ɱG; B U0rZf<![eV30Kԗ#Щ>vf68 h|=3APƯ >Y$4%yQ(Ƹﵳ|LYfcg)PqCQs!/J.zfsZiϬ#)z:'G_l.> j >Y=9'_όF-`F ុg`pFnSlG0cMƂg[6xuo >~&z-zf5Ľ#CxĦk|=33v#\"l6|=`7~6|AKgS"S.3#фHjwcVTb#6_ ?Xde 6-fOZİkf}%[*Jך& endstream endobj 31 0 obj << /Length 3672 /Filter /FlateDecode >> stream x^[oW̋1G}1H"@[8 -K6D[pw$VH-6φtGVRa$れZ%GeXS4^1 'Kk`>Mי>!xOsӬg>}~v}>V.բOx!xH.qOO$q;ij}p}r,EgbOx} n uMzӎ1Ncӧn>9YQS7ƅ>]>IjBk* E@]K2 [IM@X cgzLKP&2vF}em7Y(>5^7ƅF]>4,Vy24Bc?Z`;#pSD I;x >GHZ+~N3evTUUDh428SJ)^ܪNxr!10TƏ)ģ6uA_u\Y(u_|q.tp^ԩ|N9OWS*=t*KHGS-H fd=UIH!Pu_w)Ij{){ ܍0?hI~E Y}:꼿,Sم8V܅S.nأ}ړ\]<4<NQQxt8rjH3T R"R& wH}*_BQ*Q.e9SޑkT'JeNṒIxu*'TqܧǦSNRN:SJq.t*ܓ2_xf\MmcgFmcW[c;0Si-VDdEumֵYWs[W|ͺ6:u%zͺo]h>7[rf~f(Tެk3]i bx'cd!ŷCQ]3U)k{2n[q%efͺ:X oֵ]2ZX4nwjجuQLʶbߦ/wHꍢشu9bd}lkmxvJÊmѸW¼&1n$y,]Ϳ-(WWE/,ʆ% ʕ#y(!_׵)+Ϸncs>o:/?}7t` endstream endobj 34 0 obj << /Length 1475 /Filter /FlateDecode >> stream x^[Mo7 ϯХ@s,%X5(iMv>C~wE{SxRDq4dpW.p GB$677'wu7G՛w%Bzqoqj+YXZ| YsX5mR>VUgPRBNbʙ,5 UqEMk[{6ٯ/>QM9;>Ԩ͒ ɠ] .T5qЄcX&a$' I2nޯNL cUmz} vHL>\jv02cI0 Y |ma>&nq,B0xh :)I1~ht!{թ C4qΥv!{CIQ=pt)yö]#dO';r?~{ ߯g|T0 [ Te<&|y~ i ]3ͷEnvx#.k;|x]L#&K n+hWѣp /O S &UyGH6$jM9|_ޒ 4"㥁w%ױ7,8ЖA"Fʩ`\R@?FtDA qf:% raj+)r2V}M[pZ\nPH2hpVjHúgcyBa@JR3RYa\W#kQf-#0_kacnn/wf}C >ٻYtk;o&։svXddW[+R$]]gڀ785u v)B@I]]gi85u vܑ;VqzpSe3Nv]걙b+\1<5} |WƇ4ɮd ؅=bߥ/"Q0՟]Td} ܢ#q !CK N4"խ$齦:zE@RMNطT#N5^[K}zl!c1eJqrw#|FV˶xA\鲨bJ0QcĎP2 섐 5 >{FG> stream x^Yˎ6 +),GAAE5}d`&ɢC5cѱ}s]35/MuHz@W} ioj$fÇ*^o0#̽n/BpsѴ'>,]&5,J鲫H)V9ՔF# 0UVcqL9S͸t$5&j|99|y@C NJcט0#1RS\ca]ޜI F_S<ca6#^ucȎS`L¼%#n ér(\(9c9ZKF<ۍlN/ \d*#~ éѥh,숽Rba'ja,#~ p26wԮt.II\LH٧#ff Fmųu#nAyDKuF#ndC|ncMXeF]<3ȆHLAA*'j8L֯1!ӕ#ۿqd]k>+|o/GM<F(!`@r? HE9LUyWOPmڻ b_wzid/jIqE\-UQV׌Ct­zvkFjunFVFq,% @1j/!1 ^ !{]kxTբ5#Pu$j:!*T/Yh7K#{Qgj&"M鈝UAA6s8bM }3ه:Dm\`R]M2eK%jh7K#{Q@f;]0J_bá|u6G6Pه<,Qp3A$4]uBbꥑLOXԓ a,-4Eq*kB|BCk7K#P7 4B) m&"`Hk.25#{Q#q,T)RD9-]AݮP/ETG\0*,,Z%||*քtVt_O@fd=KwϗBt7A灲CA@ 1%^> stream x^W[o\5~ y#"*Rm(ۦ|Þjw%g\>Ft1z!F!䗃ۻO;ϻ돟CK>!?WtqpZ`m\eUVC%4J()T8[ޠ QƒĢ5B/h3ˠ 56/V_1NןN9$jb \YrL5VsiH8_qh[T5L1:dGOTd8úVZ#d>ٜ&T)2G# $OzTsX5pLs8q(QCe`فO6iȜ,Hb9X!;戦6KR9XzdsZ A~siE`x;L s;o\S *ҤAK3vx:io f*X0Oz0&DR`)Zdf[FgΫ#WO:)==Oݦ~t+wSE" SF`m*HSG:?}{>,}\DVqއ$ڟoMeջ>|_oθzx]%SyS8zW_]\| g _0i'0iDٶDU՟iT&lmmepcGb8 ن-k>kg[eE-*2OmaAGf% Ç Fh sByιYp=R=1.\F 4[ȕ!j("\w2C1BZdQ߻?+.="v7"^.!ãTti:Y{AI'`^X+:) #ܻ_HГP?" wz*=J@B5w70↷ > stream x^V]OT1}苉<0hT1}X`YUnn233uve7^9 .]>z~cOV78v:~gxfġ`KF.]N9v,rұQ')Y*%*>gviT6+] $ M|KsaMkuP9lcJRյ\B2Klf^09N4(1AuαV'L,^RRBYfRNHf0B.qRpBY~ICN2o+'ApчU!Ȏ}[`W[aR~h:.,y; rY,뼊dZG$76:,y; v)͢H><6Ktx^Ns[x_)U̳QΥ3:+Ibus쎑H Gf8:uu^E2`Ö|vs:m+;yMįbטּTWQ !Zu~>RJ8e6J?&<+cUD&l)SJJ}(Jz6i'o+%2A,C9J|aY."6.kYń] 7}ʡG M_?c~Tjxl&꣝OӂBb'Bt=M&mm oSt›ܲNNҤ_s endstream endobj 43 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 50 0 obj << /Length 929 /Filter /FlateDecode >> stream x^VMs7 %ifL2iߵl-> ]Ifz\Qt8sRHfrlG/d^*)XG)s_, hl5若`Wpbd.n#!NfS_, dQ܇b)3F2/Q\Zy}Bdąu,Py|s<V%Vh|uu0QBS7X+R$3p#TTOҧ"z<ߟ?x4ap>yrl wdV9_ p M>[6HI lNGH8ZHSe71|\} |x$^rlID6ɗImvwB W[ X_ߏZz"\w]?P׉ZMӑ/ʏ62\=ʛy=PM(ԕ%@Φ((׵CK(S?~SwXj٪?A a6#Qw }m Qac*V0ſjsjV7KQ;njx۽]@bXy'm&#PvUbmk|kՌR;h5j endstream endobj 53 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 60 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 63 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 65 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 69 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204452-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 5 0 obj << /Type /ObjStm /N 46 /First 347 /Length 1439 /Filter /FlateDecode >> stream x^X]o6}ׯ{k18I?Kut0جͱRIs%9vbqWCBK"!%y$(($% A"Ix$#M'ɐ) #Єd"Ȅʑ#IzERS5I $KO/}pS0pM(7N C جQ I>0%T""?B {҇=$$u4&"-J) IatL"DN 8S:sHQ9,BAW4>fNbB$q,:n7]vQ0e69 P8$_hᅎ@GJ؁ zU,Gh>!|q/t2'~)hKq2,ܕΟ3i spqi{f;fs]6rb3z_ɧ4/Iil\$䃿AACck)7-Og%;*$q~`=Um.4']l~x,~]JOi2HŘG>ʦ!EH#A]7o")XЩVVf3+lDҬ҇o[׳aȅ׺'Py<ɯvJG-P''? &{c'? <3ȕ;,{+dn!+5C7EybNŌq;qn9*i cʥĮ? Z±0q5R},>,0fI^dPB]dSq/VYpyw7<OA^#c{"9Q -1ckppk)֏tlaQMV`Ӕjp<|,hBM>Z|F]>4ޑ 1G9kdL`.>xмt@R8V|Z&5>?hUaW2%s͂c +;( n$̎gۓ5;~8p9=y379xɍYn|QhBy>9ZjqǪ"__T=MNl.˦ *`K4UJ aѕMeXVeBU;p:,geT9m㮀đ= endstream endobj 70 0 obj << /Type /XRef /Index [0 70] /Size 70 /W [1 3 1] /Root 68 0 R /Info 69 0 R /ID [<66D863F156731CA3E80BAFBB98C328DE> <66D863F156731CA3E80BAFBB98C328DE>] /Length 218 /Filter /FlateDecode >> stream x^;NBaPP/M–,l-];p& ;BBee*Df'~$u?zeD+$ʋpΉQ.{A╊y~yq= endstream endobj startxref 187540 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Shaded-green.pdf0000644000175000017500000055557011221776611026460 0ustar hillehille%PDF-1.5 % 26 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 27 0 R /Length 182 /Filter /FlateDecode >> stream x^e=0 ݧx k_s$** RBɐ0M6G_2V;m==tWPbkgaO;g"dN 6$BJً.JPڬr)8ޯ3qJ,()Wֈ?nT 0acRt7hU endstream endobj 29 0 obj << /Length 368 /Filter /FlateDecode >> stream x^JA ƤR[@FP Ў+5N ڇN// 5 +î(O"]w1/0uwX8Y$m'xZ D2f!beI2Oe1(X9'ɦ3.)C&.b&)#g?;|,?ڇɘ#G17pٙrA |2 %":Yg-,ܰѲ7 ]&*x&vD*D7P%9 L**\>*d5.=E&$jPi8PvgH]VS^=io endstream endobj 32 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 33 0 R /Length 119 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUeg``ݹ @ ۗP! ΅3r -L ,9HvH3Ҹ@!ӹy)\/ endstream endobj 47 0 obj << /Length 506 /Filter /FlateDecode >> stream x^Tn1 WXŠ6^Nu?Td6#dr(zwλ]3*mwtK4qP (Q"A4DqA .nqRDK')xM Tp.C"1),8bJͰ/cJPmy1NVd)6 , Am-o7#զFv1v1 uYO$5!I{v endstream endobj 60 0 obj << /Length 339 /Filter /FlateDecode >> stream x^SN0+Df!V)7 J[n' ".c;7M`ź0 %:ύ*fXP wJ1dҲ6-WL X`a{̬%J1.SV ٟW&L%`$-SK20vB~t{0)sCU=biu(aEtId0Tf{faeai¸Mm =lF?SKZ endstream endobj 34 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 61 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 62 0 R >>/ExtGState << /R7 63 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 64 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 77 0 obj << /Length 1464 /Filter /FlateDecode >> stream x^Mo6+x)PY(Zh4@n}kڢq7A8!/+Z{IX v$J+ 4ZlaEoY=wW+m.m]Y-NR.Q'N|4+(I'cx_1AR_8hiX1*Lii`~hVԞW}P*񸣫,i2Kw2B^V߆F@MuCQ]}Ӓ)Xbr&jت/1_&on}73ʁUW*ؕ^Sn8&%NGH{P>m6蔼` gQwɛ;5 㥮QYC%=_޶Ώ1vx5|ސzG U̦}'&Ah[ʚ5dCӁNypS-OIqMcn<YDC^V#fy*KF!?Uq; ^=v>q ;Pn@ŸI0qSAB ;+GL0ױV3@ r5#1_Vfq@)wO b4(#$0!hۧ *-PIVϹ>O8sHA9 9ОV39< q.L0v9}%V bmf1G9#Ayxm6 *%db$9< &qI[ߟ3p"#[egp=0c s4aK'˘3GЕ=0v%fBb)TV$݉5:ź< q~-pN}!Ĉ[Mss'ǂqSҎܟs1[ۙMsd >w49gD{i7nspY BUds>sΰfJrqs G>#x6 sX#<)s`ʒފO-EtWw.Ç^{p1xLϑ.i`*I^D3iHXm mߛuI,S-Ukî޽Z { endstream endobj 91 0 obj << /Length 2540 /Filter /FlateDecode >> stream x^\M$ Wo˲%aan_,˲B+&6fTp)=LPia*_YVn&*lXlXa6g|1 VQlnInt(iY¹!6R0*9MqJ&5~:* OWώƘÛS~g~x!/)3o䅛7q!_巼 zZ6&g).3Y~a=(/տ-s2tӫa?oúc~~/h~s|arz򫆃J;'‚O~8| _/Z?`q}ƸߞGEo'h+v TFc lhf$Bca>?Z=t.$23Ö5*-N38Ggc57 &\Eޛ,߿c]|YO+jO,>1e"N -;"oݙ"ɱN&Zn<&*ZțM{bo'mC%uZ&}paV[JUvcoTi[cBZo)"47[ *_8JN}u3.Էa(m&H8Dn]p ;k)%kx"TKq%1>Ӈ@4.aa ;OvcBg4.bw*Cq82}p0V9F;,c".Y𠝡ְ󷻧W=1nl *GHRaam?ePmp1;$,#W\9 Ul[H#|Cq XGkuA?1R[ؠ9 9>ePlpY;sp|%Vl t1j|h.~h)H,;<群J)b=rSL ^xA;⋊&-Qָw3zYWYEfo[=8B QmkgZhr+nC w2]Uj՝Wp>*Vw? A5+2I4-JnVBUWu }Y!ϕݬ5jV`y̚ YE1C0jV`[AOmsrY]t7JB@z=WwЋ}*B WVX~^谷\|˨džpEsRKMv\ӂUpšr<|/UD6g6hcIgLc8 ?p!fpsaz!#Q#rY+x?3 DM#az (s9:#|3 ͌uie>6&#E@ϙPCju0e0 yOB_Hl6#9dڠY~f٬`t1[f0?_xTn3C  \Xb.bDQL~fַp|34cډ wW<-9\u&f3pnx?c8n#8 >)^~f : a0aG0=Ţ|5'rYe>Y (ϙbR^j8#a/Ћ,x?3yjhm[ >Y Y~fy&[-f0 YF[&F#9eނ3((&%V|<}~#"&-̰"29|@1pU~fyb} >YD jۖyڵYĬ҈js»Y^ mSM;i|3]e2(fe Sk||^K;<Ӱ#aD ٻ235f`QL|k3rKfN}7_ c endstream endobj 106 0 obj << /Length 3361 /Filter /FlateDecode >> stream x^ێ)xc B>|$b d.Ne#Ȗ~|Z{f8,f أvHVwUazóǝ_9JGa6N ?k!S) ڊlG3Q$qy5!ʹbIJsnj.S&VxN2k閟 r įbOh/4G_ VhrsVyw<7ݺ/)/\Hc̦`DrRූaVFSËo:ɕ1fo/)cߗ7_߾~/?+o{x'xO/GL: hqP+S~cP~+?$gϾyx}Û׃jopRpE_7z[g;5rwNa:D9r{A,0} 7ܲ'ĉCYn=_G}A^h004a#92Ӟ)$$6Z0) IcmvzōvAe_Ր7<}>b|$.~ЀӃ1rLa+#N:7uf|Oũ$ʱNȠMKr+pvRyV~^io!l$Amt Z؅F>/oK Ũj7DJ*u]*~<o "%y'\pʒ |< ". ~緫^׀=Ow7~lJ E"M] N7eZ\w`FZJ%G /IQ)Q>ӻp\°㸋@q8.;\Ḃw8ePl:. ?圈JMv 85so-էgf;*8!RSp2.P'֎dT-y{'GCes?ҠZo2N+A?Z[&y Ȯ]*$]pء}\fP4 lOxK^V6\}Ȧ) P+ELG_ѥ*p>"7%$^(zz ]U'q<#zZWYu"Ԗo[=3dۅ*ВLjhœVgT}WPjWKeXLeWmTbiaGR9"ZJUR$ M*j QյW }YI%^xTAT Iș5 ^-UOkc)U{HRbm){xT)ѠK|s Al{UR} zϾx*\t"L KBt-/*xb.:6rx\, lPYr\}َkZfx\ qšrg ]?܄^e㸍`pV'dң)n%xa0=$cM!vRD^kjXR*dy$\޳ xbr:cXE/jP낯0OV6ߚ!JmH ^g!YBe^|dkyeIHV.EfFf6ֈWKf{-$(;Hfbd`[N+zX-f`H. ~cS {|dLAHVa)6{W%L獒vF̖%6!gdTg/nM3ak9;ploq qVuv_E._I1VrP&C!і`0}nH >g22( M,y#^r$Q;˅&Ӫ塰iY?\ฌ.7#Fw/Y5\*R9"YuT(BaJ '޲I/\m4|i(r1AE`V*zWUEQ۰U["ڧzf("awx:ᰢͺ6<yࠫͺ6:uQicŮ7VB]yeV~ͺzXW meVƳs^h)۬kE26Vn6:;wZ׭mֵqd)ݸk㮳seʒkLmkIs3̟P 7ڸEΘD8s<7ڬE0dL3ݬk]y[Xzu<#H6ڶ$E}s[EGymu~bBi5n K4]gn3g)c+j}z ZzrWYzZ/U`o # |Pi+*ϏĴ ʵ`@*RiZvE*zWUEQ["٧aYk|뛗޼WëOGS endstream endobj 119 0 obj << /Length 1127 /Filter /FlateDecode >> stream x^[Ko7@}3O>z, Piuk4U'8׵- FW7Dٙ7|)\ OFJTA5쮧?\sj( ҾIt9R*XY,[Ex˷JHUӘXsϮV,G<9Q,rDr_\vXHаOf\pVvNC c1LlPX;Yn@Q:k"%yQՙxޒ׬,Wފ,ooZMK>䏙ݒ=_Is{vrJ åby>Iӽ"Բg-lVp}s.o޼ 减`GkӋ-l{7Lh (YgbMɢ9Qp}@/PkL(HѳTZJ%Kr¡*KqUɁ lA;zWO=q76]Y ?pԸl^ t`JA:bԑ RЬ*Xw Yʰ"Б_0(# :nZՑv\f8oNޮ՞nz~@p?Yx;hofY]jkMNhC@@jXi+9%̦VGa]W)ׁjxWc1eFߵzѰcV?u׌)b3#)Ѕb<5е>rTb45u tU8Z]83^GW8OJ4֌cx5cYtN.")8F A}Uƪq^Z2)}a8 Z}-<{ދ8{| O2-ug(qbu#<5;zAD8B<9'ܸQ22q|BP{8pRD`31LDƆq_E$D#P2!_CBZ͂}h{c {䈢{QƵ@bjB}CXG\`7A=SQP"8**M`#âGu; tݴX#/vvp Bd].= XW/|\|{s endstream endobj 24 0 obj << /Type /ObjStm /N 100 /First 815 /Length 1783 /Filter /FlateDecode >> stream x^mo6S̽kHHyh5`utYk8IxźQQ*H93!h#h'Q[:+Vo_$h-h[Q7eEȍ$([ka$ʵAR6Ѥ>#*98Ѫ%g`J:cDqA,:N(V%ֈA Р8ACL3ᵥl8XP&Ma+298@l/.Yrsd8$Ć|-E4dUdBSH씑֑T5I6NOxu0`a2babddD +SNPC\P$y$P" q'^W8(dodc; J"E}95 }Tbur=mGGn?^|rؗŶ5% R=JΎY.F%COŀS`R8YDeR@HL I9IELE#g ~7, ;^c0HܥؾP}!nv J)>4*Ԃ25 m9E|ģ_$HRmDTZ հP9.>~Vf% endstream endobj 133 0 obj << /Length 1256 /Filter /FlateDecode >> stream x^Ko6fWA[ޚ>Rױcxg}r-q`V' CƑ>w؝Kjݨ}=o?uyCpm%91:j Tfwvb/D:7L} L&/WcYΙO͎K03 I>Cy6;[S!^8GN@~oVWP_qvx+);vDS\˟g?zyOn_wg{KvovC%L_ t1[ ώ}2àϱy91y-y}Õ߸o>|:QCEjw}Pw{Y t#V5+&(Lܾy,X5_2 qlk"xef/1&V8JwrJ}w^Ry"ݒz4|2A $ILe"3=T:jԷnMDI9Wj#l/P ⱍRV*YG-^Z2[ɓ`$%c<5Ҡ>d-5r2ϳSlZ5zJQ`9m׭0+v.,<5 4ÖHS%k#qgVJ {-R[R( SJQrxkeV$kB&69.R6ԃtO=U)I7Mdel\;(x*0\|Ć4O)YK]?\8Dի.U<ԜJN3zdu@5l׍ EMPYWj)ق3\r9$ :&l9҈Cy^p-rRA*YG"Ѱe\7&0a׸`XQ*YK|hA6\XS Pt\Jmd<^)%%v٬1 Rpd8R΋$hIS%kѠB:۔z0 pOP}Yʴ>F)%먳!vkݘ`?a^p&]JS%kCT7L(6$*zŒ"4O)YG]kjASnnL`):`\h,K)w#SO澇nl)'IL@!^޶ǂ Ep^Ƒa-fmQ?MuiݿP endstream endobj 148 0 obj << /Length 675 /Filter /FlateDecode >> stream x^UKo1 WD'GT !TioJ/u {NmGj$/A;G:'X}a?qD(0DsRC5&*qv߬hw QrI.j %e9w ZFfL8AAy5MDc:_V)$-z)>KWCI_6M 5"jR ,EtL4ѥ\g&LESKgUo)9j D}Rz uʭeǸJd^{ IC.D4X, hECP_N`̚~7@\*H&4yTQeײ-׮;|ȞL\sMm8]]q@ endstream endobj 162 0 obj << /Length 446 /Filter /FlateDecode >> stream x^SMO1ﯘ Rstc{Kio!!u)e1~o<K 8+֑aww"z2x&3Aa\16Iy-`;J3 GK.1FT9td/2P 0q2,;# m6ڇOG V ±1fgp[3KT̢3!Yv>PrL0.cGn^`ܯ nZ'{rmO?%zJC'S~0@SNG.]"2M _Dl4pkaeᗅnoi=dG.xr?>dg+Y#q\@҆t qNGWM/hڧX2Ew ׶.l3WdJ  endstream endobj 149 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 177 0 obj << /Length 562 /Filter /FlateDecode >> stream x^UMo@ W PwlA@!퍶 [ZxM&4@g7^[k5ϛ 4Gfs6'-McJa#!)\BJ6Nś'Vʐ0s!GÒp\9b[&2l\p@Sdy1L00!v,?i+mm<vg!%J𱬟!{ɬ7~^9R2&pɬ[U1ߊܛSdEl= )X$ba]b@{H'K{hBL.Ar\..Њ'<-VLq-#ff]y~,z(/5LMCL2!63tSZwxաow;,}Uls [3\dūSRk:۷rrSf+x'Yto:w^x9_y@AcD($ynQH5;/JκMɅc@I96-zc,8+D/<)6q @3c>M7M;O j1 endstream endobj 180 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 187 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 190 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 192 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 196 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204443-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 134 0 obj << /Type /ObjStm /N 71 /First 622 /Length 1902 /Filter /FlateDecode >> stream x^Zmo9b>r:uw*%Ѓ"=@!MJl/I%!iH ZyxYa$!ҠCHdBkVw֍9}Ƙ\*> ǓX|8|oofEOW|Q{pgx~ioͨWT֟ iɴ P^ /uD%cph4E$JC p }_bORGz8-`|h"w֦o]lGV]4!ڏ"ڶ A:@hBvl <c?% u#T 0܅\zrZ! P~ @dȅ(.\̐'-+p5d!GINyd>myW5Fsz=#`"փNNa;۴`:5Nwl];堬ЗeDxo||WY+xK3x`  (/<~iQ[g" ] /Length 475 /Filter /FlateDecode >> stream x^NSa~тx(E rQʩ(#=81؉H[1 )x%|9ncCa Sx˰a`խw7Z6`^k؂7{a<7)V+ DW")QIPSVʙqT:E"H@$  +-QĠV oKK6D цhC]n(Q!P]484[,OObQO?嘧ŘBEOrm"4OsَЄc endstream endobj startxref 186525 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Shaded-blue.pdf0000644000175000017500000055576611221776611026316 0ustar hillehille%PDF-1.5 % 26 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 27 0 R /Length 182 /Filter /FlateDecode >> stream x^e=0 ݧx k_s$** RBɐ0M6G_2V;m==tWPbkgaO;g"dN 6$BJً.JPڬr)8ޯ3qJ,()Wֈ?nT 0acRt7hU endstream endobj 29 0 obj << /Length 380 /Filter /FlateDecode >> stream x^JP }tcrrnA/(90:PoEMO?_ҔN˕ae;Ew eCIEGI_?icVfeU$iXYVT"3LAue64Ēe=ȣc8$HϣyIi"fɘh'@]v1Ř@P()\oΉ̤33y'^M,i-"¤> dvӞ~!~TLeI pBZvg.Ro}E%Y6?<*u_QI|+5(pp8PvkO^VS9E+{6 endstream endobj 32 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 33 0 R /Length 119 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUeg``ݹ @ ۗP! ΅3r -L ,9HvH3Ҹ@!ӹy)\/ endstream endobj 47 0 obj << /Length 518 /Filter /FlateDecode >> stream x^Tn1 WXŠ6 ^:]ibnftL.%R|yk~CwA80y|lr'k?ADɎ z RpYw;t;Mj`9I" #S?P'r*8!G΁,RY|sq^Ye6. ?xߪ VTmu^5G5׶pR7jtk|lw=WwͫhB(39CC?hR$BLBr*b|JzP2+roφqۗohԹ~场..17s!#$F1P~0+jң7碘'Ommi1R$im/y뭵88 975pToǍc 3ӿ-g= Ԉ+N( ׎X endstream endobj 60 0 obj << /Length 350 /Filter /FlateDecode >> stream x^SN@ +|A=+B !(7 J[.%)mPq~g30p] ʧ!G**e1* CMznl1&}1[ZPO`O 1 .-`<9moZHr1MES6ѽ>FtB=F#iJ%iyWcI22X 4o\ϒ-_h0>cNCi3 + K O~86౼-.f<ffЋpeZ؁ x]~S JrzzֶV0Wo11LfE~n4Y- endstream endobj 34 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 61 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 62 0 R >>/ExtGState << /R7 63 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 64 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 77 0 obj << /Length 1472 /Filter /FlateDecode >> stream x^KD)DDUկB$CDaaoyc9onfm[vTμ4y! -g+D<3= 1Lp &fhQŃ92|KqqesSb+y]^ιmE9ޕr.ǹp]~֕<&}O-Wˮm&|9 ޺ڣm7d]-r+T.&Sۄ/hf[\n\Ǽ_y7x6yӀhCX˅Gxk{!#̇݃UdUcp;{ бӄE#6>Ew/zo]Nh9 hd`&EA`CHJQώG:*75KL-&FI޶9w5|Qj5AF4g&Aj=e+Xy)/Yu%!ztCd@h fMHBb7[o^o1ؠL7O[N6#D\v|.ŷ[b|)"=I-@ŷI0o$b/@8ň<$\o@  JHO;EGGܞקpw/A8c'ʍcj> 1.ct*z#!K&B8HS+hw@% &Gq7zz쁸aȔ%Lu5#L^a# *̭PYc̔s} E ]ns}4b300ߐ]nVG9ps$hn5TtA0rs`^

!Za_Z7g endstream endobj 91 0 obj << /Length 2552 /Filter /FlateDecode >> stream x^\ێ}WK1] H @[eY̓9=Luj-{[Y6=<5=g.zz3¿zQĘ/MZt;=Sye(ɦ|p~*)Wtz&JZ3*F&(h௬N He6tE99$#] {h7ˤw[σXm mLX5XJNSn~Z䴲OVGevOZ3?U~x_濿}q~pz=8K2V~]?/z7~"ef>/e~)׿V&9;~2ݾ~>}qZjc~>_-f4G|ӷarzAUAcA'>rr _/Z?`q}ƸoϿB@I^_茆\*tL 6Y`TO!abɬ@1 eͮ NXMM& W&rE/1+ gXAG2+b6Xd t ²RF'ƝyYΫ+bw&JrS:7|;&}Ӟ ]lxI )8Df=\o؟=Rnշݘ'8Ĥi}& ?\o > j}xy\ДZޮo1~׷(};[n>=o>xĦOR߆Yз*}#wZ |%¥lN wP _.G׷p:LfѸ4T2ۍ ۟ ӸݩB >@Ȑ"luX圊jH  Ãv[ΟvO{#T?dg+"@T~^ˠ*cvHnF ֹs9^7:':罷&F hꄃ~dg$[zsAsI8sء}^ˠԹ: Hgv/K^979dcyBG:ט m<|m K0"l5vcRgtΐS6zn?Wtq[]9W= lB<3xٍ<'u;#N:ך +2{AaE '>ePXgt~-&asĭ: ~έura;Y'ϙGֹ{&isa6(t!cnEݘԹ*)&qk9dV|Ym~jGb'^<eCrDK*۝ 9i9:>֊p՗}* ^.jÍNߏ=X|h~h9H,{<群J9b=rSL ^xA;⋊&-Qָw3z]WYEfo[=8B bmkgZhr+nC w2]Uj՝Wp>*Vw? A5+2I4-JnVBUWu }Y!ϕݬ5jV`y̚ YE1C0jV`[AOmsrY]t7JB@z=WwЋ}*"&h(( ao%^1Q /yN *椚x%4蛈ayY5x$^-(lҷ mHǒnϘ#p)l6$x?3$2nC!b&&E>!#Q#rY+x?3DM#a8z (s9:C|3 ͌uie>6&#E@ϙPCju0e0 yOB_HlSJLP2Mm,x?3lV0-C/1ą{E+l:|3] 7 Y1l  nzJx?0#bQN3 [9,,`^L~fA1)/QLNg̰KEmj<5Q ,Q؆,x?<}@έ|3DW]~fѭEODS#^j ʲboy|Gk+>Y FX~fs >Y| }[*x?3L<~,m< Z,FR6,bVixf59,aI6)̌&l4>ᮏ2L|3olcjg5>`>/iX̰R"\]YL 3G0èf[& %E endstream endobj 106 0 obj << /Length 3370 /Filter /FlateDecode >> stream x^ێsc F>|$b d]8Ɩ-D!gErʂ?TMU] 7;ɿbÍ 6Jh=ܽ=+9ݳ]zp>uqF+C41}8O1Je^ ,kcBcz6Ƈڏ*ȓ?|YVHyt h&H8' e0G /Qrc0ӴҍӬ%q;NƢh {^seW#腕Vpzo6/-ҫ//?WaqOyF\0z3idy^X>^Jw_YŨ5MשφW/}9?anzL'nAZNhz|Kj'H~(ctVw{:E!_E贶sOQ~ћr˘__Fev0&u>M(] RZZ@>6B\f7\ht]&J;]ixwf;,h:tqgg]E!UTgKѣTQAd#NgQJP[;nIұjUM8㼃qx2mg"WB.6<qq~5SoWTďBj4P,~0hcSj~p9ⷃǾ cyG((n(TpIm]dMpށ"n1Fj wP%_6JFp;L旅q;F] >2ށ㤖dױ S hcpF@mҳQl@rsF)۸{Y Iچ2~:G-}qs >>uctPV+GZMU<-UÇZw7W_UBs,s~wb* >X5 "%ɂRS~q#l6:9ߧ21}Eתܔ4{> jgtW|QѤeo{ʊ/aʐmgfLiPzVڙ^-xz>\*RJ.j4U+o;H.>}^-5,’Z wJQӴ^ AU]յpˊ2jkRy-j2A*ȓ3k&2Z@-RF-U{HRm)xT1ҠK|s2AdkR}"' \t"L~ł~%(}-re\!Q{2^.6 I\ WA_^/1R8aM9x0W)lҷ^2ڠIJ^L2uMȌ䏲-wddةɰIEzyI"Zc{HFL庂j7%cҵC1ݔ/zRCĴ\aЌ ~boaAoWKg e{HdQdJ}2^4(TQfd~d(bŤt!{^6V_/fm5=$KCېZe|dir[.a@ L,z,ѭ!Ԅ3C2K_,-z>hmRb{Hm7a4i_/{6hY{HDѵ_/rA/Y{H(лmW_/ZNFR6edYi5Ւ^ I6)i!:i|_/>eLxeolcjM~ု5Kv2C2,%fJg|dAЎH1ٰdl(<=i29>vf$N>%=Ѫ ϖi4=JZGr($R |ύYAZS9c%߶Kv^;Jng8}2x/7IwKuTF3ĥgpC284".qC"ރdp+`J7dQi& z(a>8ö&ܻ|)Ҍ q ;%*tPwΚ-Z\ʋVoqh6ݏC݌Q ( [~h]l mֵYW8 ]mֵYŭJ,vY׶2N(rQJC(rumúҏ6Mo+2^("DcLf]uu.ZY׶2^~ed8omܵqŹ+~nm.]%N]w](SL$N?e9-4%.W0Z@)ެk㮋s9cܬk[1tͺ:XWvo8Se"ikےb^fmm˳!Nhl浙͋ =-׸^+|/9U?Ӽ?=/Ow2}':T3H,4R>Tx"Rv+؂6G/j0#3N݅}A!*Il2'U3_Z-֞& ^L' idlڞAڎz4yyoUj)h\:jyz Zy|7IzZς`t l9(4,ߏĴ `@ץR)ZvE nUYQPBq-.oP?}6zvxq? ;5 endstream endobj 119 0 obj << /Length 1140 /Filter /FlateDecode >> stream x^[Ko7@}3O>z, Pnuk4U'8XKZΒܙ7|~p(<>N VRհN~rt9D%Z_&ѹ K2tZbevW ZjDz*>ƚ~rb1%>ωJ̗֝kl9RmcɑUR,_=ؓ 4ɟK9E~Rc10kกEcuo G=gEF%frmDslϋM{~=?$ӫ]> ).~__zVT1i7p^2W-|9)ju %*low ]]{(B`O;n⽠~B7@D?\-xK͉푼HBJ`2e FϖS L*EKP(.=lc/ELV%r.Tmc^I? g/l?w2v(TT# a>,8ʀLӬ+`70[%Q]p3ij_RJ8R^߮zg>cW endstream endobj 24 0 obj << /Type /ObjStm /N 100 /First 815 /Length 1776 /Filter /FlateDecode >> stream x^n7]saub^c$-₤N%ɓ 59<eլm}2~ݎdKUw=$H9n/C2VƢe.fg96ktޙe2)3R%2)E6T0Enʳ쭨i;/Z&' Q?^vCetHK'ƨ21UઌiUi|?n-9*2֒3׿ltflUajW~`*+J}6;f+ZohE{MDz;րSv5\ӥkg+f~olڛJo%H]51-W8]jײ]S[qeJm|lw}6jKítnRߜٖBQ}&0w2zPU8M=g3sֻ\gm@M7$XbX:%eM&3ͤ5i&ެf3)_&K?S}^rɀW^ x7^](;/c͒HfÃ;P kgR0#L ְf̤LgdRÌ[D.'l~;:y&WBʪ8ßTӸ΍8.>+wp?ዽ_^>H}?gIxvA>8gNyc[ Ύ'B/p7@ˇ ' j.w_ol9<OvtP'8ϤLFgRPL 0pIAr]s7U+ 'p9@>Z5|84ˋ0nSF&78\fRKLʄo&ez7:_ѨW$n8aoFG_ {nn|Y==/qbH\t _#g0L I9/2) GQ"))h!dW!d#k)?_-<[*h#P0O@ CsubM-(Q\*Xq9SDj.G> stream x^Mo6f_=m( {K$u;7qC~_j+p83kGEc'\WF]g?}yquv\Xf_X̥6+FBsԧPtkyl>F9QT TW S>>q`=R¥X@OIy6rPC kE'8z|'N WgQ_qvx~z敔Q޽5R/\U7r[/_oލ_?3}{&penЄKq.fٱ(]}1 j%/ƀ'%;To]?pwϫzo("j.F|VLP,}X1j.u!cqlk"xef/1&V8JurJ]w㞯R9nI=>p $HM[zd5{ BHQ&礜+xW"UAԧ$)Ӧԣ Y| ephP+SO/A-m׭ICB0 1v}ZiPRj9mׂ狉SlZ5zJQ`%vqݚHb"QSJch{꩒ԑBHqSm):&fԖj5Ju)j{nM̊qMF1EjݦzJR"%ԣ uO%&f=)%k ǖk=HzꂇSɩz SOB-1*J8%[p+[V }םT:|Z?-Cb_plKRN>7HS%q@D=&0\ 9آrTB:JS%k-Ȇkk=Y AǥvO%j AiPR= P"npJ(G+HMfˑtO=U-,M|G5ܗ%L_CiTZiPR:{m֍ L8 p6%GiUHtO=U:DEqSbJr78Y,y Hu4[&P጖~h7=Tij{hzhNkLeZjm}l}7>2N舴2\?4vg4 k1k Hfmql\LWL endstream endobj 148 0 obj << /Length 688 /Filter /FlateDecode >> stream x^Un1+DS+GD !47!4Y2dC2"⶟]jS K0E70,ûVۯxL HbsaKpb&a#mb%XT~X3or9QAln\ib*+k|EXM2W%-bzq3Zr26qxdQl빨Ub0_Dŗ;3UٗGٟLCڗz<_H,w?u{M$K\U _ʻCON-E7?{;8]ݜ+SGh{aw8 <}6w~\o iuBcI"Uӄ CR*\PDYί]avXj]E>R <1h)bh*%ۨUjkDJ ):cЪ5co,9Օ4QEVczz|zظrBi1l)"&*-)06`*EE,kj3~ ٲ5WZ;=ش@aVOyvEp+YoW)0<8cӭζw|ԣWf" endstream endobj 162 0 obj << /Length 458 /Filter /FlateDecode >> stream x^SKoA ǞGCpAA mmHSgnS?ggpiHWS 3]KW3k,ȡp$H1qB^ 7a Wlx5,1R'Neis=:HuT0ir,'ObxZuOIMcYD'" Q3ZH5N; #SL#$z)H3GC*n80wA6Zl\bi]^@|]Wplwyo,ROiYYN\/f.l|7smlWn,esҙ&—v5s}t!=8/bS9=ƢX=w\_1zLΛ?J endstream endobj 149 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 177 0 obj << /Length 577 /Filter /FlateDecode >> stream x^UKoA ﯘPwy\ $(7Z(RZUoy<&$\lvt=m7_QX7'kt7ͫ<@ucs!h1GG)K.'Hb&wɭY2dyΌ!9O͐#P½͒@8r.1/n.f8)@7LdoBmhN6W?!&FYG7[tj1a6m>͏B zLn"HɉO -S"yȲdurD^rGuM uӃL2I[hBL>b`^`E[EuA{&^~ fq̖X+ߏE\(˥~c" t5)bƺk +j7ЗǪ*waߐоf^smj|WB'CO2AݟxEg> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 187 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 190 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 192 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 196 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204440-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 134 0 obj << /Type /ObjStm /N 71 /First 622 /Length 1902 /Filter /FlateDecode >> stream x^Zmo9b>r:uw*%Ѓ"=@!MJl/I%!iH ZyxYa$!ҠCHdBkVw֍9}Ƙ\*> ǓX|8|oofEOW|Q{pgx~ioͨWT֟ iɴ P^ /uD%cph4E$JC p }_bORGz8-`|h"w֦o]lGV]4!ڏ"ڶ A:@hBvl <c?% u#T 0܅\zrZ! P~ @dȅ(.\̐'-+p5d!GINyd>myW5Fsz=#`"փNNa;۴`:5Nwl];堬ЗeDxo||WY+xK3x`  (/<~iQ[g" <58952303605B5A93278722EB058752E8>] /Length 479 /Filter /FlateDecode >> stream x^9OQs.Ƞ" " XP&6~舝`eb <\frϜg%lI&n8E)8 X qjLWsxY&7Qw`̭l!^u)pB=d yht+4% -pZ !:˭w\p.B-#v =p za 0&>mC0(mdL=x0 3f1<,"<uUK +Va lKx D<X(L&]DM"$ECOĆy:,U D"H@$ PTs*7-"5y]]*!m6Djuَ (B.!///////]No\E{<} =㐧{1F<㨧1ц(B>_(e7 endstream endobj startxref 186647 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/FramedTitle.pdf0000644000175000017500000055511311221776611026363 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 178 /Filter /FlateDecode >> stream x^e=0 w kd7L BiԪ%RFM'e1RM2Wc}!#v/ #D/r ϒ_1Il)[VCMA|XEىq6HhSZD[M+[q,AMS\RJPVҵ?CX<+~]ֶ Q endstream endobj 6 0 obj << /Length 367 /Filter /FlateDecode >> stream x^mRJ@++8=ODQVP\eaE]Hޙ^3J aּ7V]!6WVV?ﻼpFo3=q >!(1,S:tKohjgЏȱK~Q{}R{W{ӪїK ӿ<@.ĶqȦ̎۔x@ Vj >/>^%'݅> stream x^3T0BC# =c38˥[P^X`dUegjԥg'ҁ\t w.C":_.C,N(243601R$Ah*=C!@(w@Lp4 endstream endobj 14 0 obj << /Length 773 /Filter /FlateDecode >> stream x^UKo@ WD< BQ%enmq'[f$ }rKɰ#~ae]z_#V5:ra,./ 5:[oؚhm9F=RRLT G@g02YbBCQB`4кJvz1Fʑǐ ́DÂRBmi%JoyJJ@J![QZgDUy|Hl"Zbt3CI 3.6#4NlfG*8iJI*eG@Nqi5j5*/F )ؤ[z&Y5 SKRυV4l{[O i&JjFtQlMH4]62zД(_)4չS3q5]K]UeF=C4Amnhc_n endstream endobj 17 0 obj << /Length 586 /Filter /FlateDecode >> stream x^UKo@Wk_JRr!AhVqʿg֩(ɻo-cE6#99QŇC!*C3wa] ?6."kyQQ9S~컨b\H>(u%Lr"r5\5;R(8!Qi S ɉ?4C  Ѭ(cѬLsiVV:m?$Gq24lƧuBz8S jvq˶c%)8eO4EɥU5D&-5xa hl ^ѥY;Y/i'Zwzg'OnDΐNjuN?*=< \–F˅MR ەM6=R-EcKU _{5H|S] ~u7(gVUG]cjs%3IcUY޶ l y[м'@'`\|U/fR- endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 18 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 19 0 R >>/ExtGState << /R7 20 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 21 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 24 0 obj << /Length 1709 /Filter /FlateDecode >> stream x^ݛK61_EE۠rvoM[47dw{O)`m,'(#zz\"䨭VYkf1*YMR՛.޾;W[՛wѱ|ɂ9zcN}^pS `XZX&I8)>,~_4]e.-ymS.)iItIڢ_]b[Gti0JgPqQFI)H҈]Łݻ`u u !ȈDZZ=mB&==FX*[PۓyEq8&.č47+B=c.gg%&}%֓kOɖkHj2.Ц pWYA%>('FG/I:Y=\W\nn_}Kr\]]wDʵu_wmQC [Zⶥu)T/j.o׏g*pV'g ;{ !LwQbBKVg+aߝ,E?O86ʁy)Ji"7Yu>h# bct26m k)򁲃PZ~m,!9ܯz{YFM0-`~m%KN< No:[_ u]Nl/t@zHt`ֈA-3fa2R)ca濚@H)8aeg3Hص:|g0al>M3oZLfu)Nϰ4v v֎\Z2$q#dXt8>{[e ^d; 3T n$)x>_dB$g>md.V8Y{SóOΧlϧ٫'9$>_Q|BP"ǧ"O[pǧ"ޝO$DׇƧT|h,9z(>Mrᓇñ$^ʣDS J> _U;j^u ȑ6.!xzlɩPad:F!7x 1dW̺CR߉#V>!y!Uɷ\)Hjfj[{l0)D)}&=SHzoK\(EHb(+5{+LΣ8'_ckSpjpȷorO!)FgϬ6 )P,O=sjr.y +N9v4ל8X: M-Fͩ"S($,R>*8 JCl>;*)CE}\q S<7+o'Su)k\S|N1s8Uɷ攃?{Aj\?T@1Ybk獯fxϜ,ͣS~:WO2 +N|k:M6Jz-)8XHS\[s0)gNPt8% l(%(LSy ȧT&ɵ}NNŨᐡ8%qj2O=T7u(>"T96J$ !"[xXx(0|GoǬ5 X}u[oAǡ/[j` endstream endobj 28 0 obj << /Length 2766 /Filter /FlateDecode >> stream x^ݜ[+%@_ $B AɾŹYeZ[R!_9*\{Msw3s=J 1<߼H~A[Fmvn7/(QCe:w_W߼z'"]f|#g_8F1abAQzn7ZQEe¸oԜLqJ-ݨ^קq;iN95u9%S e01SN](LRo7~J`SciӔh>pIX;bFY!U!Fғ.3C5`}<̜,7 ^>5Ob7ӯ ۬;Pz2 8Px< c䫾Vx8g`3,XF3|,p6Z+,FM\"j>eqnvx'I+ufN_!}]Ap:hͷNh7ӴT_~cg[czgzymg*LoO|ȗR|!˿3Uv9ÿo}gT(t9ZJF^ox+-Dm|駛֫z1 b &K)C-˔9/bZGaZz:w\h9ARQ^``@Ǽ V Q I&l*颏>]Ú 2zk}<Yrze`nLkȲXL_Sg2Sg~-P zc:0癰MWO|áWOy6Ы,F#Y4/) iG y R&9(TpI'V  FӤg>}vv}kq>]=O֊9S>Ip|P)PS;c)@p+} _}iO{&yOO(g}rX۝<ڻg\OO$}zUDJ *P7|':Pg""Өrkq%sÅxuO(/ڈbd;h~;VTR6Ex/Ga?za !*%,@T}~f:L XzY$mǔzʅL='F2_!k*:e1|RZ5:uM'$ck|:`.άS-ekH ȳMʞSVB=2~N-yRh6\=ϬS/Оƹ)`#\FT7ʥN]?t*ì92CR4)֩S!d\Nn:,`O=׍s1UL@/"Rr'TSY%u~:ݝ~-:EĉLŸ0 qHYzCl=bgz>t2T  T32Y&'i?^ORIlbJk=gtU\(rI N6ٞ(Uf; "[+XլڐpVcլ4uҐjF"f+eIi ^͊pܾU;iW]G"^͊6A;VN;" Aa[*Y˧ذZj$*ëY̔ ^U{rc0"njW6JvpV.[Cjy]Y.^RH`x^>]I9d*^^ϋE1HGW;𢄙[IG+yF1l-jigN)j^ &zn Ȍwi_ό RČwa!bB,@|Ɍ`&5sc;;Q"͘e3NJƌby3C!A1ze{0_ό{0&v2U ]T{0CLϜZ3n4Vi3|r[l37Le O2q=f4g1dV3ރYj]h(ƌgDS7ns3>zh,yOW5xfL~\Zf_,h@4waG{قg0Zճ1=Q1),㫙m ?۱ f35i@U3zfxΩ6 N]S630\ pϺ{0EblJAU3#*`, m B )gY,;:g t51*":=xz6c(Ni ̨cH ma𝕰61=A- ٘RPl+:O6]2ޅYV0[(@,DR |=ᶝ2ޅYG 3gdv{j"W endstream endobj 33 0 obj << /Length 3569 /Filter /FlateDecode >> stream x^]oW@F|hk4@Q8]Ӧ q.>Zr#ٕ;$0FVһCw̜s~>h~A&{_ϗQ)ga|w_ozAO~iYQ)9A˗o4=v0cN)&?z09AGݨ5Wkh3IV:iimS5iu69u:Š)MnMrVTW%8rN4Y\^r#W7٤{~:kϟ:.1jE߭f2Rw  *KO9X 3^ugGs 3gS{brfp"̂jm &,s@r܄~ґks~Hfm3dGS,w}:g};c? ީ1݂dnm)/WhM:]Nd~(ǚ83Yon^ Ϲly,rrb;f^|h_K7Z9*ǽTMwy|ta mU[>RR}-/?˿dt7g?Xz>D"֠G &odH<$ABLsgFfXRtnFq-({ˀh}Ù~te=Xhi(fyyp0LQ|%och!"iv79ޔF57u,4~]г^Ű.V͕ +˝ VafMW-?-Y( ݃Gt{S%\dd,z9 )H( b8:]`%O>M@GIA鈽f?@pa :>MzgקcOŢOޫ;|>1ȺJ AC4{O>17s1X?4}OGNfw>>u\)gd2I~+S>I#SƁ "VdY=C9uLɅzHSlǻiԇv\4ѠMd׍qQiŲgډ#Azp"UwV)/ mVG#fk4c!gg Q'gVYJ=zE469+)W28S8,*5VQC`OEBͲ gL3g֩>:;j=nt4rq6:BV-xf$ȱ*LSKuL,?eϬS7(?@J\&P0BQus>M2!ƻT{uk'k* :҈CFC)M){Sj׍s1W\BDk7ʵN59SUPCO:Z28q3~q.!BwF%^.唕fFv=KI}s_h3 yAzgݚ&AOD2H]s$ːs&sF7:XՁ$ #AOʩɵ-6b;p "_gWYݡ#Xs-vd7iGI1XOH Yx3+V4THY++6fuYqh)pV,0 mmΊ]>w`E7SJ- UL MU_0&Dw׬x3%7:U; ̊ T=lVUxE9 ɬxx;/Ť^fro5+^΋ 7t;hK;=x%tʐ;Z,>v[@/.#ۗ![-vfllJU ޅhȲv 5g) _=i }V;;Y#M3#RqX"o^]̨TX[c3ca:!Ԏh]1M 2|eJ]T%(cNmg`%' 3:l;`>9ۙ1m*xf ރYi Ymv3sT X;wa&s &^ŘvfX6Ŕ\;Qj{0JEb5|;3Huu&+vf1RbUxf ށ&Kt3͔Xi]l%P^eۙ J鵵53O"n#iS>+ffMAH<6yF/*OպM{Bg)9"\\GX$^|,f Jծ]2fߦ0r.ָT[-Ka>Y DQPVOu 4._xIv(1˲9TA^reVnXBi^o?M_nWC)ԎQ]Hu3ֵ[W>Z]fU޵kshuu#c 9s׮]wQ-ֵ]=.)q;,+`wڵvTywA1JuCXwW~׮]+]GݺX!$]VzxnfG]:h%=߭k{xMz !(NоtLhpʩuuv"L6n^y߼$ݼva^Jݼv:ټBC3#*y9?v fR'{cO<هTufY,&Ua^(1R LL逩&Ҫ$J?!ey\Ρ! 5 +MH)WW _VZZu.ηvcX??nzW_}wI:|ׇJ endstream endobj 36 0 obj << /Length 1374 /Filter /FlateDecode >> stream x^[Ko7@}3>{, PnuK$U;8ǕwI)Yh3Ï3\ KC|20dج$Yuf^ebnFȉ)';7wn>n ?3HT?] 67 GrT!5Ad'䂹F`{MR9XeQYrb`l|?` CP `Iғ*N2Qx+>$qZY L.OxdgF&^gpgh&?s:K:,0q<3h41A_ YO2f1\< ӏfѤ9Q X߱2p:Ę@FC SZzdb2 4yI:T#x%BHY&gD] jqd%iKY]q3q3h u,b}rEx`9媸+6j6CCVM4\<0I `_`*-CS{b\WLlrlõ=Akm46Õk @,?8MG8qAWQ1rGbBw]=2Ke##{d:zl utUunY߅-B"lMuW_՟]!cYvwgGFoZ6;:Gv;dGW_w-9ww$N=KGW_՟bU/=2vuߕ,rRGW]]HRRP;cg\1#.9qvtut-.dy ,HܽWZ~ *٩ڃc^rVĠFk"EJr)+1|+ˏly,Xc}E()9ƈrbc>̃c)vBSFR~l,c.XJͼ:E}ĕC1dhUk[ 6+ܱo`G +9v5jϊ5j׶mH )lĨ4CEuR)f j(eԎZARh 4Djծ fDhު`O. .#!B endstream endobj 40 0 obj << /Length 1508 /Filter /FlateDecode >> stream x^YKo6WR9}v>]{(~zs4o!T;~>P}=KΖw}"hԓ q70y.ʙLA~j=4өJ^ɾJ*CTM@%tTe_ue> K05d-Ȃz<16Fg g3=XF.5$OڽL)^Q d?Ϊ3EY2w]z?^ܒԂD5ZcAm}5e l$|\1…eQ>/)ܳqJ9sE=PED%#IR/PϕC@uo"z&P\š5yKE( KJ֢6 %DI(#t"jV=Z"V깒u)^I8ۡM$wTO*QJS{A뤁zIZ (Ζ'- @n#2qGH깒u1ʆ{#EԕUBM,otC=WI,LGVA\ P|5TĐt@d-b]<,;z"eBūOF&b깒u{;ԽAa(X9:#5zIZfB8:[LdIG+ kw\A 깒u!l7Qo$1R{g깒H*FRF ȶNumYl9( KJ֢F;p\M`»": b=<G EtC=WuFVl3 k32qAPDNcH`{zd-JA^^3)"pFZѹgB]Ie8 W|n#~AK1Q4zp@C)Eb\[AcG!?C> rlcAfq4kg? endstream endobj 44 0 obj << /Length 935 /Filter /FlateDecode >> stream x^VMo7 WR >,#(X41(-it81c >zFu|)vf(_"ߛ/}cH!~w_],ŷImoOw/Bhvq;~XI_'Pfd#{$5JaL\8nR fʙUr%9>2݇q,|_Ia1#c&g "KAYCdXבH#,Ҙq@%IE,>]Τ2Ő#}9I`'-)$uH$Z>i_(F-i,JL'-1D%u!~@.N*nzDHu*Z5ZxHhp',f,)*9ָȺdp?Jm{@TI "想CeE?5o>V' lWL.-]?n@TQ)@ 8BD`H޿yXkvmlކU{ۖ޴kLdkro6pTC50%;Nj ǰ:mZ)%dy##5hYo{y[cV>tB"bDUD4vnb$ky+ \~2JYMY߹ 镆xǿs@B*r, n) [,/8Ƞ?:@B ~r2dDDC F}GU[k>c9-fP+"`_{ pn">*҃^a b0> stream x^TnAWk Aǻ1ٝ鮮ٚ"Xiа I&4Qycx9@˖g?b}q/f\yeHTpxpI*?xbjO#9am6B ]($1(#'& ^S\×Ow*Kb`Q1`N30*9ə%9 B&п/ &Q12F$;*ɌFѕbLqTH hҲ DRFis oi:> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 52 0 obj << /Length 820 /Filter /FlateDecode >> stream x^VKo@WA̾9"h"@h4J(3;ڎDE-2vvg5Uv &Em,ŋ1꤮kToV 4%3U~Wۋى"xϦk f"teN1%v+)QQc@ZUWPSQWWէ =ށA R f Fl#LpffY[CnL41\whRf )qk g(kWYd۵nX\V%m(!K֑v*CySNasu-ed% U.˜js-䜯)PTBnLRZ}~ϔ>,.ZnP:nfһ(⋈{q:o?ev;2I;F"L+6~~_緛Mc#!4`0/1E'yCDV35.]GCIlHn=λ͡bazٖgݷݦ4Tp"F\U_TR/K]Z[,(&eşpLޖ &ؕQL)G Lؗ~a<<7X ?B8hGO2z*Cy0]0%Y=F[l7ҿ*3 endstream endobj 55 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 62 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 65 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 67 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 71 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204449-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 47 /First 355 /Length 1442 /Filter /FlateDecode >> stream x^Xko6_qPEJ~i'`b6$yHΕn+Gyyy/yxxH\{%I<%3IQ$ YD& V)(Q/#I#"#ŞF2)t.)M0[>ta7It'}у ?דz Pn@(ѕ)Ұ*r41h\(5B| ROIG(HRcCPi8$_:]H|&ĸ0!LP!1?sx舷wQ 1Y:ق$.;]8oޔW3xlN9{lhsVYpfGIJ^a[LCVu+9Nto=}tjd9s%1֣fٽxA ch7y<ѧxےmej]*=li1l ]Qvl_ a귈б )v ۽Q0t25/H63Wk)pU!YJ,Z~__pz1+m6*06}EP"~(X ' Bk"8$K"C`CCXx872u%ڱI3Gy| U|ҽ:9|z֋t79rw!+V)qХq!0AHųw6.@@TE4f@R8WT l K[S[g)q!}X-v2`F~xj^if| v\1_מX.w|;7֏E/΍#W'Ɉr22+J*/uAdo\ڕ*].W\zBr駜% ] /Length 224 /Filter /FlateDecode >> stream x^%;NQ#(C "> ظz\sRibi0.XlEgh̹!"H8w AWmE$ ;ˊ4t͈q1ATMQ;v]'Z]oEQb0#u[̉YۼX 5_*b8teQc_x[uÏkqjUZouxqd:uĎe?W w endstream endobj startxref 186480 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Framed-stripe.pdf0000644000175000017500000055306211221776611026666 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 337 /Filter /FlateDecode >> stream x^N0 y _Zc'1/x(ci7c;JM%q ܱHit ۧmm>SƮ;$ʘ%w_?N1ujә5lZM̆(jBzMK"^FC $Dh6!5=s2 gs߶;3wnSAswR8+Lѭa̽+?.D*X+ 8?nLC> stream x^mPJ1|W=n6ˁ ZTfBR!VoDїewf2[@OCÉ@0uѲw|$̰fv fidm _wssHzB>BziP Lh " d{a;a{//v͔U^@ota"SZ3e_h=Gw6bj uŖYZ}&N?ר*/Ϛwl96\ӝd]mO+]sEmgb{7u endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 133 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUeg`%Mt8" r2+ r*dAt5\z&#@9HvH3Ҹ Rp Hj^ 4 endstream endobj 16 0 obj << /Length 568 /Filter /FlateDecode >> stream x^SKo0 W2`9DDɒw0t0XaiM4$:dhfH~ XKĤ 0VVx> BYɗJŞM2 e(yZbƾV Ʌ,P1)-$♵Jgml~ ⸃d3# vگiC9rTHՄ5&,YNIZt2,&*_Qc%ᴂf= n7Qﳒ( $(AQCڜJО,c2_gۯ!$|)G?1"{!CXv"!C4mp[u{"T9Gê8)3 Fj@cyyM+݆њ aDǦ@xǐ,[֑mx0D=) !g!TvGR;ԉ%i71G 2 =&I ԛei ϴp]g rpVEG|$)1I g$=?Kr:Ke|C25[- "(;dg endstream endobj 21 0 obj << /Length 376 /Filter /FlateDecode >> stream x^uRN1 +|Ad& JF"tQ [F<[CB[-@r͖x0CY}ev4Ԉ >lbT pT`4R"h$!J@I&>zP4*O+H_h=r J8g#OV&X3vX].a\=T5>ODkxR?˖_!t1 鷊vTov{d3QySbVĨ-+Dzwe:y4h>)S*oQ2V^ qF;a^ $eJ(Ja/$Zّy=M{L c8 endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 22 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 23 0 R >>/ExtGState << /R7 24 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 25 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 30 0 obj << /Length 1483 /Filter /FlateDecode >> stream x^ݛoo6S̀am X{nCfI8M}("e;-X弰,?'%.OJ[ -&$fYLgo3-~y_)!XC۩ߋoopbHo%E/fDΘ|]9[󙯫+Nx~tjgϡڳEʠy΄(E8dlUaMSiUbٸNM+l.nT_>u|ϧ *p{hORi2ogo_p2azq>ާ41B}}qK&:2kgկ:wEk#K: o$9[*xnnٷ+9 n:Q;.;~sݮL۩V/S⎶vipxW^0Z2?ЁS6@'V.mj x-_p*l|jl3| YP}s>u1F/yTQe|^|D;9BO<w.y{>%C 4ObOI|^` >_r/>iBp`M\TaP+",r]Bej"|IU]Ne{Ny`YCSd޼"a_Ls)ec n;S܋S"R^[_ܾ ]N@4Sz(N­̧B~=$3B ݈?Io/>Rjw'nA1bA@1 o83ݚ>g endstream endobj 36 0 obj << /Length 2539 /Filter /FlateDecode >> stream x^\[o#}ׯK,s}E mm !%q7{ 3ב4c|$g+zlnCm N:k_IͳkFX_W~~P/+}v::(Oڰ 9 GɳuTkY: UO͏?>F]}Po=8\^p)+9V[&MK3W :N]};X_S^ggw2F{ |&= .1[.q3=Mzp\k'_Ʌvmy\(kNsʫ_-_/Gϓ]~%Bf2e" sḼ+ȄGe%m^ plAmDky_e,Ytb!Y>4`ǢZ͗8䷜h9Ƒ͵)).^Q쓷 q6Dugl;F3A$rLK4oe3-/•qw8@"..`T&Y91]e.`B`ɿ2eCWG.m.ƞϣ)y&\XM!7+PG4gO(p-?D'smU''fY&ieȰvNO-OOOO-c֧|GmI߭Ogϸҧ|>z!FhI S28&p>]ҧ1O(>Чa+}:G1r/P>@2WxXZ<N5HE <S+RJyD!(XZɩ4wT4"Ӗ}'VۺEΞQ\|<u+z)6AgfdZ:40w:%:TVjN8|T07'֩?@FgsS:MScSu9SywN >BQA!ׄItjrFRG'שr{S \TNeCBgO֩|NC6Hqu:%bTC$, uʣ齠M#WTDV3sl;ߗCR'֩~~JΛs3Hc:w)kQkcuG3V[:)m>(=NP>@˸ƹ) @(F֩|N ڡM|NŢT:%:Qa:5QW$ܗN \T:㱄bF֩|N55U/uۋoVPe@XJwԝ;o .܎=E%7 Vxi^8@޻c&~A"RC)f n,s@-Y!+"A>sGNFW3c<eG0lX q{}Ѷ# 3CYBL1|3uTmư^P͂`o/dǡg56gG0Kl(Ԃgp :י#a&pqD#.0 Thl1CR'w5Y"we&f$Qg|bYg`V xv>f3CKGB`]RBHa3߀u@G 66MC] >B2;O]E&|=34!jGZ۲ fi'mLC|=3Q1G0C:sU_Ji`Xt='`GULM >Y*!,zf5pCe[~NjfԖfRX],{MѤD5~ [Z?t endstream endobj 43 0 obj << /Length 3340 /Filter /FlateDecode >> stream x^[o+xF#z·\mZ'rѴ>r9@~v9YٖG+w$_Ǘ3߉ыIK'+zٟ0hegb¨>2ճw/_]R~Wo267B[9]eLp~SJ {e\h__/w2h7nSpx΄mЄEWp t.>o}_O7?uid`4o}G|7gy0tΐ+=D+di\jRpu?8O/?δ#x9 I_N'ӏwqsG*z󯻿ڦ*c͠^V`.} mo9Q:Z׏E8n|M(i<"7(Hʠgq!%RS~g҂e#'yqh CtN{W?` 9 {ۙlfbA߁U=)%A x򔏒 #ŏ() I KQ yI8mqAy<:'bv>l~>pk}:yg>)?(קg\S>J{#) qmSOA Ʊav鬕>KwOJxgЧf }:}G"@x_Ya)7W Av+ײQbiwkf :}i[9DɌ7({`TZ,^"#Xga~Tǧ:pxe)q~;Os*%,?*>:yʅL=GnJZx NY*1*uʍ'Oh+`N]/T0+TMAZg>B :(ՇS'Oԩ|N"F+x £BeS%zĂ}[uSk׌sSBOOrS8 qpQt* tJ $toST{W,uN/SfT.*mͪ je:qG0!|NiMn֩oSF"=Ne:5Iir0ɫzϼze:|\f ":uK:}|HR)g):::שS,kw>Lv3>EیsSn"یrS(T~Oo>Ne })}$~E Kc)-TpTy.23fbH%!Vx(o'xw1P,=+.`;\Y%eWSkh6kpN\E/fE[Jg<\#U= &7`řx4&U~=lU2܀v4JPf9/Ŭ8:HSe5e+Ȼ*ËY9+!s p V7eu{(pVQՅ3 bVT% Cg$ 7` !UTc"UVU@ZŬ$uNVokRmOr^LATd fx/][^KlӚ6e3HW"IWXf/)8y_`XW#}d7a:TLrfij*fo>ϧ_,S+x f%9/gF`R^1x f% cR|A&X0{|fapOH xvx fn(^Y[c3S܍r[0>2:y—3ӌ!5Ioժ{Ȍ/gFZ&՘e 3l-&|934R4F7ނ=r5f|93,6R[0 .ɢE혚5Gq}e3Z0QåE4~=s I;cV&ԉU{_,Prb, ړ ӿʡ"7.,-v=h5a3C:eh 8-ѵ.G*rfs͝oŒ՟3O5#k/gYFcu3ނ68Q6wg|93iKPoHt^SjCxU̬֘N}/S9|2%u&̨3$M.Vv—3c!+:<(S;Z3Y*"\3ނ)B{V_OV"ނYHTkj̘k(t5#o,dDp}?|ԦbRA/yW` 2wD}=>tڴK..i w}@c#<1%: 6|璏e`:*-O*KSCW3fh2 O RRkJ"Ȇ{0/:rŁF:89D`Mڕ$ 0q{€RFeCL$U4CT%`bb545~>xU[c0;rіl >ł,(5=,B lu}l%e9OSpYN7Zɲk&nit_C˃ Y֦Yγxj?Yv7\nCIRz4kӬu5T)ϨnY騟IEc#HÈ*Ly?#u,u(1 !$) Zɴ ?vxO{)睆4H%?5dϧrvj?x$ue ڋTZ1qV)v3)<ڳiT 0o5'V58Ne@ jF:eO*iǕN"f#{,@?j9!CVo10O}_{߿z ۟;54 endstream endobj 48 0 obj << /Length 1150 /Filter /FlateDecode >> stream x^[Mo7 WR>,R%5 h,CԵcxgOHF6`ì#PxFC9:3 FAc{vӏYP\|G__8w)8Ɏ"['^KI-:mOێqj|k K]||pT9mg!juĘ!K1='ӑ{y: ֈ,5}EwhI__+=\9s~ wYg#Ϛ}i|3x[L@8M,zT/l3p_/o؇=viwzX/D^: tDd/ͮ :y;6͎yz1(Ш1g endstream endobj 54 0 obj << /Length 1292 /Filter /FlateDecode >> stream x^XMo7 ϯХ@},z  n釻uclS`|ҤHt8s>|ΐ9b9x~~a6p̷oIE2Gspy~k(~c~l΋3J6!l/%˻~{r!]czi 5g?]~tpgFϼIm 4#\ز'6bl{-TX[:@iܿ\9^{P:̓:g_6gBƳ{HP ]6cbٛ_~Q[}yruFLJ*~\C\ߞxN~ۼ_\m\OpҼ wقK#‰5r[@Bojlo-2S2TqĔ%һ+ 7Ղ-ϩȪ FVID+%PU:zdj>NtEԽ }R_[XCjfA,Ebd\1l3lHYQ#;?C N+Y (׌D#)hhbKH']Q,E]^3$&"sad"?:F SJg^LD=qA(Ks(p/]Q,C"\Nkuo"Yq%*Ý(G.GqRzJRZ\/1ɆåX E)7zd`HkuoBK\ҸEpg3"aޤ+걒qHg+Z z.W ^ yϡGT4PO)Y*f"[eNQx!AϡX2r.zbE:iuY\Dt@=d)j$Ÿ́X68 ˣ$5, zdL׽ 9 f|QW_+걒Gf\'LLN"QF{<딨)%Pg"{"uƬ GGFC6tE=Vu Eų # YHd jnT$vYFlZ"R3< aΈ,Ф+걒eQ!aBkf6ClqsЂwX4j1C>3"&)!PUF1ZJe PO1u94~ƘwW4k=F8?:Q endstream endobj 60 0 obj << /Length 704 /Filter /FlateDecode >> stream x^uTnSA WxD1O@R.m*iӴ/줽3UB3wLcs@8vtG pX>D`X;w:>Cl'`~bs9Uj; B$,fX ^0O9sHlF_./70<82 栵c J/R9*^$bƢ0ؿ\|: 5PĮQdmQaZU묲#lػϯǭObi Je8BlŘf+LٖGق-g$vycv'tnk[l5׮#.[?OLipe-*Us[=*_h&p2|V~Ӿ&JjLS8Կ1n:09 tX9kH!K]7bėS) \LJCY\KQw y Cu:ա#m:^YQ jk͂U3% YY"n8W@N5(KJX5%VJ>:T":RVc%x,6jPP7kޒ9TfU`X%6_9`; d8nu`:8i&hFu$W*ͿF]rڽZۑ [Q 9*1ȩ@e[^;}z }:]y[d0},1 ?Im8q endstream endobj 62 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 63 0 R /Length 342 /Filter /FlateDecode >> stream x^N0 y _ZNb'6/x(c^ol;JM%q3b8 ',wOzlX7#,gIܥ o~|&cfX؊V\MQ.3إ̆hfCZ@R.5Rf/+ t:I<0ѐmbAt"} YMm_I5+$0MF i?T~Z~`c2 VhVT[G(C~l~ cbbԮj1fnE$dfՐjch~26x {/|i:b2]b~%}t endstream endobj 68 0 obj << /Length 462 /Filter /FlateDecode >> stream x^uSK0W3~rD< *"q춛-m&tqvc<&E|OBS)IBm'f:w|LSR)iNyݵ ܯ7>!'l#QX-:aIWrk7tޣq0{ ^|f_WC{7iǫh@e=gB҄"IBMVUN5孭3[Qk>DqW͊ڗj3{f7o-rWzˎ1JM!8. ?J&8 &a2 IO(*I9NW:e\ 0 Vo3&1hNFJ JKƧ1R_Nzh:z6Mf9Qv<ٱc}eӗ&3˻ 8e`=B/'?HFe- YuQduAdɤ3H&K0܎% eu^ endstream endobj 61 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 75 0 obj << /Length 617 /Filter /FlateDecode >> stream x^UMo0 W2l9DHIwmvkXdInR+P`@+L>򑴄H8~g?%("Tv kRHƒTfvp3-޳E%: F d8Vz_sVnmʾ a[d4§Vf(g+ "#e=ޜp 9LN'.(U? u8mz}"d8Ő]xh_cQ߽I"wBhuiXlѺICŸhlf _財/ZvMh(kv+ b -:JHӳX?|1AIJgk-OF;cJqI+Pw$+w@=~#* O|qx-+4˘U3Ɇni8ҭYJکZ.TF endstream endobj 78 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 85 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 88 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 90 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 94 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:43)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204342-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 69 /First 533 /Length 1837 /Filter /FlateDecode >> stream x^Qo6)C"Q)i( $NfmΖ FT[K9V&C;QN$aD U26V@Q:Ta*(L@el@D%|שJ FTd0a+>(*L&LQ ?I?4U5H3@DafU!1 ڣa0a<_bZj"?ÔAd4O, ʈhl,0%Q>AI< ` Q<TI[hHTar^ )$ $B%bPD)4̇0)*|2P2^="*ٌʊLm]; ""E{{ohrIC"]}ثթӪZzUӧMdzUerRz󺘖jPL Ylt7izb4.ê'Oe>rb~ҪQrCWxW/4~w6ԣrX*G1E_(𶋓ҿkw&tc|vqYzP51.kUdj8U}&kNJt"ޤ  q8 UfHÃSQ{EnܯG.Hva.{hAQG{ӗm9jtj5cwU / Vp㷦s蝲*ο٨3V|iﱬ+:/TysԸ_ l(_Iб~WGm$KJ!;{#<$Y{n/)z͝?bΞ$U>z|<-\Rn$^oh-Ok7%j̬>w7 vR.]ȱ`)پ7g *Kœ7p7Qm\ݶc5ڵ| *9$?yD|1пYY~\C#9cQtV?`ݠRs/6 [MVtQ\a0.7p1s3Ns"-B 4}Y8:I"Mg-y¶O_~Bsc!myR>ZSF5MIMCiH~})-o"{)HzP8_*"~={qq/Lusf ] /Length 262 /Filter /FlateDecode >> stream x^.a~R5> stream x^un0  "֩0lVCvڥiҤJLb)Me~S T"Q+>A;_d0FopSE-~9/P0£tw> stream x^3T0BC# =c38˥[P^X`dUeg`%-t8" r2+ r*dAt5\z&#@9HvH3Ҹ Rp Hj^ 4 endstream endobj 20 0 obj << /Length 652 /Filter /FlateDecode >> stream x^TMo1Wxl? ҢJ-D@ 4_m&i%>ڛ&$zl{ L ERV ,O0ޮgw{Fm/;\oUTR1 endstream endobj 13 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 29 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 30 0 R >>/ExtGState << /R7 31 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 32 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 39 0 obj << /Length 1579 /Filter /FlateDecode >> stream x^ݛmo6S̀y6`V@e 6iڴ$-Я?eIe'=˳s(yxRPIE8*TpIϫx{ݹߊWo]Wխ8OwcEOOS|3+{)Z֊#4wfZ뺣?M:|H<>|.i{.wӎK;HF-ɥa꡿dC}K''It15Ctq1ݥebPzIX,16: 4*΄7xuM+tiBn!i͊lJXjeb[Y=Jbz@Rfb߬UEok!.&! 쬘aVb +vlWTwen9gtz- mC;kGo-aGyvMzqD-VȀ;wdax:i<?A\OY#vF&54]iWO|V|J{|dOlś)ZiXxƧX|j4F4jM'$\j·4.4}%#Z=*UG )']PʚeD xHH2ɝCq)v430Z@0¼T.0u:oǩ{lu G| Nǩ,)@ +IA>yhќ/[IdT_ea٨\pJǔ}4F4[qhք 3c`KIa攫Oh9l%vJNHTR~8G1m B #6FshqS=mO+M)Ʈ+kÈFStrBA-s)Fr4˜(A8z}a uV`)]GEYS+*crh禮s)(R}*q NH`q*  689ں(*0,w̩ʩ}S\p*:D ʥFSuފS&9!> LeҌFHt/Le2~P.Jh"0`3MˣS\TM{@FS,q*} ;.a{T!_CXT"Ss)RAf{N tފ@PUX3®,ei*T1+r j~Mzy_OU! endstream endobj 47 0 obj << /Length 2635 /Filter /FlateDecode >> stream x^\]o}_5{Y-P  @Cӏqlc?\%+Vݙ9CQQo,^«6zq|Azͻo^[Won6WooՋ/q6˟$uY9.6>G}>).Gw_k:Q%6FqAkkc|Q V:nu18t5F;{Ѩ7^fuJ+խk\M+.iLcr{`aC:9LVtby3Me+n<-y9<ߜŒU I_f4)\V5篿.d͟?=o/d}pc|/^]u0.յٔt4êI7z=2t(/ˏ兼(M~/o/|ז|7~[\f:̚Ȇr4WbVސ[Ҫ?Znxa`g)1ַ6WtҧQLJOFZ>e%{dO;k,I 8iJNAd=gĔj eM!Z*?єm {\.R,*8 \|N>^RV:HMSSCWYm^'Ng/x S?;{`j):yΕNq.GsS "!Ll_TЩ73'MH [‘"Ls>T47:5{4ΕNE#ԇ֩|N#$dK|H:E5#K W=tjQFvfsœ)=X~0΢S+Aq}(W:8S\or2k:a!A))r`$.ہwSVLH}V#iX HQS\Í`T\R):u)!&]S)T':$mltJuj1.T\YG(:8:?Nݠ;:X0ΕN%T'lE0ʵN>t#$&8Mt e^L ~r!~ 4%nN(k/X:5sU5e# \M>tJʾλ:٢x:Uu c2K1.NYd&42뎎G+>40T~O7)Zd{.p U=enW_OH٣aXQsF; Dˑ"*>cM֢u#5~<*ɢCuf!/o#: `El'ɀp7+X%hhV`4:Q5fs7 6IKx+ĞC +Y͍Xx+STkV *&PEA"+VwJo"|``:Lb%p7+k >d0\kyYt4#ҁ%^#-ЩH]5/B i]b,`2ۚ#x !F q^|/X(boXBЖQv^ZG0CGm Hd4؊3>nˡ- ;($t^41 化53  L`Y<s43c׵uC9#Ebf30IQjܺ$ff@Bl?̌$G0 ekf3nQh35(Ce(o`]~f@{$4f`ɯ \w3cCp7f`+ʅd37=,fsJ;fvx?3¾&qK#ᙂMLtggR,fb/NaEy(M" 3CY^yaeCEO`43eG44g` Fͮ .X=*0CBzgІق3Sϸ} 306Z όqRS;G0l  f VTIբ)[~f1- !|3XQع- 3xD}>|3XQ:Ҫ El-xͬݵ{]k'  endstream endobj 56 0 obj << /Length 3429 /Filter /FlateDecode >> stream x^[oW1G}1H"Ā8qZdD׳=MJ^.1$ϒ3}zjTuWJRHdxAJ/FWυR_xx8QO? e3hZFqQ *xq) 0Q\{7[w߽RJ|x%6f!9%q0*QpR!'"o6ׂqhs{MAK 4+#z+c\+FLu`00r>$M&x*0i}d lg׭i_VX吜S>g?g-Y!y2g.ѿ}˳OSG7‹?"1NQ:}exc8R:}Ƹҧӧ|>y$gH@UxR>J\*X/tRyyíTCUnJq$Qdp>N9糥W*xz['*:T-B*b_u?I5:=ej)1L?l59W:eR^}<\s>J4NF8?ө S03E%):'96`:.,Ju e{NsST/sS8NH]NNie~dy@vANF|+{淵]}8j#Iq_7ʕN=GN)ʹNUxb0)o٠T)G:[|zO>q?EZ6^ܧ6 }lQS\e" V~k:}NHR%T{وE*:yQ&g\)IgeBCun+'$zET7ʵN>tf'$D&athjl`{2U5И ^:lǨuҩn)Ğ'}(iS8*iMb:٤x:Uu Q:2į|%Iq.蔒 3R%iw|e.^8*C&~5ޚqz i!zBNb9V=N4)I=T\5hHGAE};pRsie^J/MJklQŬlX8PiXŬpw=kiT?gSdvƪYuJ-#5sV y&+՜/fRn ܁CL> 8cUŬbR\fXy\Giń3V^J08IG+ S IՔ(Lr^ fV:X? ށWt9͜W2,s^kΩl^pkir*x^5{haP _ o/dc25=dH_Όv3_qwaFՍɷI|d˙D>Ry aj_}/_hEPƏShƏ6G ^kc^3WWZ=8owh>TE>;<e_]=¼߯žhA_Iv||LTd>W_W:GXSq"j^ []X =U(Xcͺɽ"3)x я˗* Y|}3R e J/s_ csE_E e!ii%J" ABʟMhs5y1-IO=U,G)0dӄHê[IϟBֿKm:*M~]$zz[pƳ>SbVjʟ~Ws jG5Gt~%UkR5NVLz T IlUp5a0CuWPIO7_w^>J~%^i?C'~O endstream endobj 63 0 obj << /Length 1248 /Filter /FlateDecode >> stream x^[Mo6WR>̐CǢAf&u7#@~kCm@Z WK>:si9GgpyOBf}3|cnڐ|gx;ϟ/nqrK3j.%y$K榱Fs\!G搌Y)#,Q<3_7"Cuqmh wy{N̰66v5-ap;*ܛݽ#F>(kaCAcv}U?ho,ie`<x'b2D6@CdN6φeuѬn߾E]ի?P  /!At!d!ƣdKq]ޒr~_ y._WK]9|*wZ<^_qS+>2uz=}*Yp >ĂyЎ޸=L5ӌ+ϧ~ٶ—D-Nt ARL]Z 8[5E$!6&J Ԉ$$2'Λ5YuDCDwI\8Ga6g2X/ߜ{Uc`ӊ+0׌GylUqFK7Mժa=4f-2Ҥ2"`6E_PZ5ZpSX"Ac\@۸mbClmM׺&zؘ7S@m?9 Ft~ծ;// &=MV%-vhGs:: }~ڽlV15篞_s__ Se ~߫j>E_Z&{km&,_X#,k}k~e[d1puX`=-:Sw`dBEN""ivFlj<cОe!e\W 'O O@'/2l5bsC;̃L֓FQg,h Y~)8u at 9v3#deHE_+ؤx^ Ka <m=֚UcTw926'$LN9`7+տjZjz؍Q@c(B176nf4Zpj0搲_0 endstream endobj 71 0 obj << /Length 1400 /Filter /FlateDecode >> stream x^YKo7 ϯХ@},%5 h,CӇ:kǏ}63;/0("ign3 9&doóy|X23_|GsO깣J3;m.f5cfӅm C2rjޙ{s횂y^7_)bć>Y)C,Q|i@6]btj[m 9:hٮ״Yn5=]֢ks;Wx4wYM=|y֨ #D[j}\=hY]4;۷E~_~X7<|, T/AvslCtxM{~.:^_g/D.ry(O\\ߓן*io>2c k݀GC)5[yp?Ų N q{ב\\Sݯg_t'27ì5htu)٦Yf6"HCo uhcp4aD~J OKC&nm^P)9,m,"Gj* PWC&PCknEܐH "OƹáPsɒ{&3guHWSLf뽰,׭@L > ]aX⡧1&sQg ^3NldYGe5EVp uE=d2X.Ȓq݈@0#G_P 8N{8@FE]d\ًP-3{[Zl{J<+!y=xɸnD";`'5NP7@=d.Z,(m":%#A9Zj> stream x^UMo1Wx<H 8Y~*)mgIB"yϻ7ofC#:чx!aW'7<ɯ_kW^k+7M$P`iP!Jp5e7}kywpA&/R3HxBHGw,\4q-fr/Ozty=?cw~+pN^Q"SʄQ iTJ{8mvpHD# R~Wm~>Vo _p}y_2jVJ>F&5EԊJkЕ%f/~Muz4ոNýӌkGn6_E8GϙܺtL{b,KxNLRs3(b>34Ģϕv nxwMaBnfxݯaAJs!1nDj֢|,يt0O5jqC=R}"D,jk- xz ;`WNc*z KAK,-KQʶ̀]u!TLA)VϢLS"=Ƨ܉+eT,N؞x0Z6š& ;L,xsvz3_6QВ L[$ endstream endobj 87 0 obj << /Length 562 /Filter /FlateDecode >> stream x^uTێ0}WK}ڮҪECi ˲\V;@idϜG0("BtQjnYfm_] =pG`O,*Q^ U+\f&8 ƃ/(N55 6ߗ`As=W=W1g8 $n kV :-BNl4nbpv$EMk VDZhWR֢C)0ԃƺ P렜%[g65ƢO4Kh~t=X >D@FrL鸴4~nuِl)qyCu@nhhȽ$P/X`K ҒJϕhH0M tP_]Ex6fQ=ijyPVM\;@F-~bJ$.V1asJ.-cT'}jb-'~ñfIzǑ78\Xe2=#'/|.iTISs}e[ѓ/7 endstream endobj 80 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 96 0 obj << /Length 704 /Filter /FlateDecode >> stream x^VKoA A%:#V**āڦmM4<'3ZāDp\P2ε0.gP.`\Ngc\LfbU`rY/`Px$~%PfZǜxP˼ .?O) [b#8hΉaB yE2󛣑[4ـ58,Lv iΑ6jSmwTXjj}c a<#u riZ:ʲbT<1[j#c0&&K˸2cr8\^88oG?,h> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 106 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 109 0 obj << /Subtype /CIDFontType0C /Length 1363 /Filter /FlateDecode >> stream x^uT LSW!\gzޣN<|0`Db)Hi/P2J ٔ"y 7 Qd/3ݲ,Y?99?1>q|"y݆$E"!EmK<ŲX?b)qy>Di'(/a^5śopJK>#Zya86ao FiM\mz[a4(pE\hgl 800dR z6jA$HTi`2ڐLY@lyVbStz+(0Yr[2Zg2`1`mj Ě6k V:&&K, ;Ye{DJG(Sb]6e-cS VaGV,;l)& Ă`,[t! g< -RdGx(<BNފ[!?)NN#+B\x :pjUoqŦ~dXr:*j o\3mSѥeҽeCŸBTa"}w_'ጇJ{H'Ε6c3a$gÃ1.HU(r F Jto2^ur\pe7S^|&kDA MLum՛jfGkT=tN@?UZO™?޴i'\ց"zBQEB{b B[фx} Կi\꩞/ߌVGna]B*̬ GgN>zq6EFdmo*}5UtE\ҵ翾uGPAxcvئ 3;C!ޝhuZGmI.IK#:w"GKdd)3ؐ&]n.n#~D2"BnCx:]h9}ol'}c}>kfΒ]SP7;]_ 7qUh]9psHt8*.UE5C_kl endstream endobj 111 0 obj << /Length 361 /Filter /FlateDecode >> stream x^R]k0}ϯ{(+ZjruM$~IZ[+D{9GGO{*Co>pFuڥ5֊uvȑfGX-W:p,YqPXys`|/o{z|z]&y',2gіFȀ@%L)fUl†(r!65NpTeIߴX2W$ 7D޹9j! ?h0IW%Z?@IHi۞bnv50S:eSY M 4pcWV೥S:> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 116 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 120 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:43)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204351-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 2 0 obj << /Type /ObjStm /N 95 /First 757 /Length 2224 /Filter /FlateDecode >> stream x^aS9We f4hR[&frabgӒcC.R 3Hݒ^uKV2*UI)(JZ+J\uNUfrʓTL4m\O c7Nim$ʴJ&uJ*wK}rR/3eZᛲ<ϸTNcxP3lIF$J4tH_2%R>&P}i*3CƓGe^3+LS@@ J] B AF3@HQA(sMhȕc$2hRm2 1jd\ tjX`Ԩ4mm D*.ihcq(b:JؠT)}-u{3{uWeoԿPQ3f \~+)/lC .6~=l] տ{to[}4fzpMMd"7s1ƥָDzq\ =TJ.A:u^>7vl2]4uEL#UH9iVfةF'9wѠ!-4tӾ]ׯVO;—ɰjήΪcuָWb| 'ך;GbzZ%=sî<53T N ooxdP<';vE_7LQS իݓCGazܦM~R\XW;?'qVSHb[Q]WiY_qiy|vԪˡm?'ye olTɑϾo4a;g\?y{Akdgdðo.FS|^8># fUN?cgӗ>9VS]t*ꔜ(\8ëmԟeT_8Z_3U8/X"#O%)[yQG~E`b/4Z"x%}{}"/ \D(8ل)!@"O.|vD d~UHKB,S vUPA N *7.{I@| *8!54ĭ/{tM~_P:jqnՕ },' I(CQ[Or7R ;jT { ; r ;L9ZY*OU\o  }^{k5K8PLIkӃNNtiXvR҂U@ɬn~v(L_:j rk'<<e9?pBF6MJ.Fo)g$ΜIN <6BE2B99633F53F2EFEBBC853604D34A8>] /Length 309 /Filter /FlateDecode >> stream x^93Cqs-[--vID,oJ|2J1JyN)ȟq3ySp9"T\\OҮ<@>@d-فb(R(j(W YWP⽲w5P uP>lB4B4ZT7ֵBCK%8eqB *Kaa! #*Qu0 IoQIY< 3Y9XܒX%XAng,^Uuw)Iuv`]Ù uOQ 涺GvaO}uv R_i) endstream endobj startxref 187731 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/BigNumber-red.pdf0000644000175000017500000056213311221776611026605 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 238 /Filter /FlateDecode >> stream x^uAN1 E>7l8 ̊E{ʴSr wK"%0 L-" 8?q<_vCa;b/vZyO@n'¾TC*Zfgmc+c(( %ɤZ}VRUsr[QU{|@?Ԗb,BzSUg"l>z[ IbF]jol __r endstream endobj 6 0 obj << /Length 250 /Filter /FlateDecode >> stream x^mPJ1|W웞иMr  7*b_L^f33 SQ",Ll ffuz ꡬMei.S::%xrMv+mynX0W0VHudoL4{@km93]+:g b\d4$u/QED^%ok̢6ѕtD:8{?lI`nQbN Dr endstream endobj 12 0 obj << /Length 614 /Filter /FlateDecode >> stream x^UnAW }ႄB"!pd28T=M'^jW=#aUp0VUrQZ7)h2\^Ay<~>sLB|'$ԕ^cLyVeY=gU_1xT h 1GKDTᇢ N&2]h4N'b^9oJq:^f}{Y#J+IQE9"NAAFt7i]z$Z#:Nn'%LZbQeGF*Vz?#슿WHN"ƲB6%}IEC}(ci~mŋO4<аaďigKڏiaҤi\98jsUРH۸S"ZlQQ"m = _T3׾_H|_2/ w\qؒ5d5dOt*ιkb>H^h=1.[KSi^exܬF/B l;Xldxad0iׂݙa~xϼM\LdZ.sG~ endstream endobj 17 0 obj << /Length 437 /Filter /FlateDecode >> stream x^TMoA ϯ31BTB@E%VT* m}[7 }$ Xn߯_׋Ս%޸ }є sVJzbFaf-#j9bj)˾r~THN:Zf1-NԯK YD|2eNN99̃~1 =ا =~`K%.+!*#zf6ҝӼ+iwg`vX{8~Ze "Dc2Q8z4(J/23X7ߌU&ogɉأ䨦{AJMQ/'SA\GuY.guYׯ$*aVuv'QM?6pSXͧĹO endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 18 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 19 0 R >>/ExtGState << /R7 20 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 21 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 24 0 obj << /Length 1546 /Filter /FlateDecode >> stream x^oEW fggB !R xhZBmC}{n;|TjLw~nfg֨+e͂j \-XYwƈU)ZG]ח^z'YpJ:xiuFN̜beEIl1{9+X'"_yCjW]V)k#B0c#"np Dq-b׼7-^@fc ɪ0Q!CP^H]ԯ?wsœgyк{|ÍpC`Ug޳cD1Ɏ̳݉Ko kw V3m]Q_-1'&x?~?.˟ο996\R{Yu.h))k Ս"d=)7\=lUe+j&<÷Xmc{9BT,cgu8|(^ܱf\;j!QpMaZs_}%C+#Hcf#Zv-2Z) [aCFrP ΅D܂qq1& e{BN38^$I/Os̙)e,YM61W=gdOQȑ<[:y/tF];;m#yoA o" ~j`u bKl9>2v$@м48&ƹHPsn~zh5:z}X4+ 8UsKe؇sNXP^l9U\+?}MA5Girn2 궹i0seA/ok;¨U^kpgs.iK>H̻Бd"vd}ãf:|<{B,;X23vV;=,h+ endstream endobj 28 0 obj << /Length 2614 /Filter /FlateDecode >> stream x^[oWKYyAIY N!z7֮HJ^L02訧{N<,W>߽i~IOW&{xcfw7zejVʙ\W߯_NW߼z7~918tjyhͩ԰nv*[e7]>SFECQ%>AMNF,߿}\|ߕטYwSL=n[E9& foKgbˋh+?pox0\n0TT& mTݥi{o#Jx-滯iWkzaxǦ;)mJų+o-/ߗ_߿}fUR['\C7ogrcݤہ)11l3ձ(:0H2n:y֛96ΡwO{f[ bw!bL'osl(NW+֩!FxPKAtǬ"w:3cZGA͔|N?[Ww. YI(S3SM6짾jʼN &,q y6(]=,,s֣;Y?C0h%oo*h܄gV+㊾vp}G3ܺ|Amك[kNַ1ժoLCZ#b,P,g:L7;/lM-ӵ4 ǭoW`|SO=@-_x0 Tvy&8Kߴru*|i:@b'_V :wXfOIbqoI>am۳6Wd?ml :go{u *@sdĴ<MH9C'_[9O[,Hgczi T+EW[ kYEhy > y!澽SF9%v^ToulK\i1+%h|<-^Z9Q-$vfՒ(0,ef陭vfQ øe&f/5ȭ+vf(Qqڼi 7 Q)D >u:ڒ-RV|;3M#49g2E'cyj+vfTXk >Y`7%۵ۙQ=2<60ÇDV|;3?Q|$|d9Sˑ1|;|в7 >^QL̢48e&feHWۙ%)8{f`fn>s+|338p| >^Ru1.ogiY&$EZLL9P/o4?3|T&If)Lo,sΌhBƮŒ3/}o$'ogFKyÊc&fX"kogFl4r3K;Rs%P|;R "mSvf{YVLm,>Z`ά֕ڭ7 >Yb6;oZGjOE`w#qus$oΌX))(:f`fY;۩hsΌh)mx#S~3B1#"fV̈> stream x^n)&@>|$b E86D[/z;ݤl.g[!Vc~ovNYCB6^M7;9UNʻp'n>gby?AGӽXꨠWFECQ%SA`hoQϟ  zFO&)le@nE9&f^Lc>Ow|"_)OxP|.d=1ҌѽWNexg=ّ잙_3/1_=9{=E;+2g+k1]1;fv{򅶮|RW{eˏ˿G&7ggrC֛I1΋)p;HZB[L7=,WGƸ=X=K4, ##w^ 7F˵ov.9鬾=7z39$LQǏO*ւ*gC#GC9&e6@ڃY/xtd(r)Pe+=dž+B$ x3U`+;kM4Z!/ <rQ938ݤ :XQyqp?nVz8B98j] j<<#R-Uw<'y69q<)Aġ>CufUTj}X:x#KB"ax. bs9q8~6m&ٓW8f}ڇ<ש i90ޟ?a*xu(#9n&9 h>8͞nj0y78bdyD 'N 6*['9uU1=$;*Hwa99a:]|\Z9Hky|dfIKۏ>DB2O6RDQk|d%P (jɌ,)&>LQ箣-٪]~L2MYM|dܵ|dQⵒ >BoJܷ3KFtth"><%"4i1,zhah|$bɒ#LCX>B2U*N2K5M:lkI;"Y$/zD3Hfn>s+|dVa8ptj!^Ru1._/ݲLH V2GHfJz~ACP}>=#$cMIdj~cYkzɈO~"}3/5{KFKyÎFGH)!6 ,zɈFzͱLZ Z_/Yi3HOo;|dkYvJm!Y$FA>Z`_/YY+[5 >B5;oZՒ"f @d]mQ+%E'$T jh)m󶸝#$qv j:GHf%#ɢm;1fRG?[,Ѓ|> "ﲓo|d t4n%|d44٭w%;}{-=1~E, ŒA[!N'2RNM/I vcC!MB%rŸ h\*!,sQ%)T&`]c4 JUKK%;g_vEi)k[y/9kEH$m}y$Pzf_zFûq[&g_m"BNT'yrf_[|h=M@Uif_}/q_$~7kξ>9^tAf`[bF/.YZm6xKq3%tcF09m66T $]jۗ];8rC43 "iҋl=I2%e*5NN:vO3ަI)(/6ST< 9hZ%'}:Orup*^7U]$-;'K[Upj*TSON_jG+qLYSZfdVj +Jrimg*&?/C#iQ44ɳ3$"> stream x^[Ko7@}͙cchp+ IS5ub؉~\Y"!^41`;;%1 t;[z,'"ns=pMY!Dv Ԛ|o뛷6盋wvZ}ɑJrsR̾HA|5)GCjk;|~9a~G5LL٫n7M %_ʞk!v}gs޲'43Xhp;exghrz̜Yo^m6 )OE|: Md9l{>^v|տlׯukү^ooLJrV׿/OXΩ:f#|A׺uj&]`O^ݤ&@EndG;M;ΔjLr'tD|ETEׄO(TB̩ڍLRӌ nG! CPPN.j/shم)'RĜ<Ǡ(σV"QPLX1J0L]Uk&Eu4s2)VƠ3-`i"A2UfĽAzA퐈fz~/v-0%hŐbw׶< ji~m_QQӭ~YZ_⹰eZ_eZ_'%4XX*Vl|%'l^+ _K$/Rmge4m㣽/~X AX@.J`, `KBfiՔYO)NBR,9ɠ16ⵄ -OV) z[\ufw tn,g]8}[n2DWʉ튝?ZveLV.v% G` ;p`Ð!ݵp8$C֛ endstream endobj 40 0 obj << /Length 1342 /Filter /FlateDecode >> stream x^͙n6z n 3ehHk 4Mv"ߏ-ё Z>ґG393?gF)NA%fu7ΩWóoD}qx9m^T/:}s}hbQAXl0j>+{|?7%.{-O/W mN13HY9$D` oYĔ. ĐKkO{ڇv?x2mO;}+s*VC"AFEmKuz~5`//oN;eڈ{/} 7C,]JN-j}$WszBf'.<#,yٙxr>,WSכ]"VoGdg qQ?&38?}{~r~qdsty@}.EY uDx7IGښs%sMREH NoƪO%I=L̫Msx@k?zgYxd4Z`xk4T uRCa쒒\=߰ +D1`(cK,nJפ׽E؊:WQC 3JzIV)z2)yPP)Ȉ[$G#75cZZ'O1Z) (rcJژ|=vl @o/;| endstream endobj 44 0 obj << /Length 768 /Filter /FlateDecode >> stream x^VOT1D[:N;hT"1M<"@v]~}˾Xb<) }_M7z{`VzKvq |a$by Syawv>YJ쏳54Ly-Kvi$&h/zRtї]ZÛlq Z\М ֿ ,J;M[~UY(圽J-)$2v項>SęPj.NϑMZH\V*P2~yy gdм>!,/L*8du:-rSiMfhGg]D (?'vE<)1~v\XjV&Ρ6qLzi{"M}|Եj/pq9KvQK! Zke­6-~KZn\,W״ C}O4S^YJwO0@EAFKdP 73J(RUEM= &2AZ;:tnή EAOy4DpxW1I "A8_2%BPNsHujv$kSr u#4Y9Ziq n&S̝DN64:afًQ)Dd̈́Y5,Z=Q-d1(Z:pfZ: lKw.YAc -̅=.ZxڴoN endstream endobj 46 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 47 0 R /Length 238 /Filter /FlateDecode >> stream x^uAN1 E>7lx  2-r wHId|[!X-pakH_6nGAdo4I |_Z u(%yZB5]X4ʅ5p\sFG*%jbOEaR k;_vW :s`o͇z_feH!KL̸xNjCj30D|C}r?_s endstream endobj 50 0 obj << /Length 548 /Filter /FlateDecode >> stream x^TKoA Hd:3*Ҧ%MɆ$EcO;KI/J-,im= Dyk]gna.%\,km0Ѥ>%hɈ4Pj #{X =J,c/F'g͛9񿗋w CJ~ɅmMdDR?t)[Iur%69?°q!QGi,Mҥai餺Ӄ9z{,8Cߓw+W$se_xl0ge349p0@4d`J5QfGee\l4RSqb⫊^]j2uFygLUtC0mo%dV~w4S@H*c9)p/Ηdjfo}K endstream endobj 45 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 54 0 obj << /Length 674 /Filter /FlateDecode >> stream x^VKo1ﯘ rDJE"qi&d> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 64 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 68 0 obj << /Subtype /CIDFontType0C /Length 1397 /Filter /FlateDecode >> stream x^uTkLWaeupTX..,Jy,ug;<MA@Ѩ*PJhSmh|D&*9c/?z0iz9ι~94M4rmEŪJ"+朂KT=R֦b%i yI2i7Vdc*|!T^KyEy=vsj>Y'TQVU4ET0R1T}I?;zE^tuxs^5-j^裎o 4P+mc Lpֶw7ҭ{򥾺 'cU J𗊃}G?Q NLI T<` (Uve8+!0c tyXn9>{zΟWMZE#r %8T?IhHxSJAJHq (H8,Ћ$z@2y4= {q`: D뭛ll7,L+J'8uAwt1F%<Dz$~ˤa;iz ;]~`8Q;kd< O /9C= Dpɭ.[n8{+r&*c8^pLդa^Vйq"@! i¯PNjt`'=4τDX{p;鉁k! Ky ػ2=0BpȳTg!p2 FFGpla \QQ]ߵ4/+I@ { ='1 Gx-1u8z/XኳdZw!:qS&P|iφ.]Mg՞7}QŐ!F(vK!밂 ;Iۦnuh߱cW~RWǞ;vwT̈́_F0"o endstream endobj 70 0 obj << /Length 360 /Filter /FlateDecode >> stream x^RAo0W|;] !8&fَ~&В",3#!`zO\بN3׬&VB9mKioc)ڙ!ǒǑ7ig!o{LO%qZ5FܣvI%cQýA}nkX)ų䑪lȆ4 !NK{*Ӗ}bB hս=#~9j!0gҐҮK0mz:doAE-&:5ql,LqlꌡI`j!;s%_Tyq/#Ct8]#?7 endstream endobj 73 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 75 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 77 0 obj << /Length1 804 /Length2 1007 /Length3 0 /Length 1569 /Filter /FlateDecode >> stream x^RiXkpLjdz44-2-`RH(L}՗ٚ&3SFjQN4f 1ut,JdMCR!J:\Ώ\ߟ}zF@D0C$D d"Xl:LD2GsQD$0 =<(  `x*H Q(5s7 )$82@p$"91"6t ?JDY;YDBsa`L!j89CsPs_1ap2x(' !2*]ɇi"e r @P^D`!4̷.Nւ`0E(G!V:^;L 2-z"(:b]t&.ѕ}o5vMk \c P}z]{&WgU=Uw[#49,ʌ V'wg|rK1:ã"l|_QϦixiɑ;_ﴪp9XM'1klaOK3Ħf?N 6Q`_z ۮƂ6r*a< e]&-BJL,ղE6hRYHpcmӛgV[{/z Yĉ?azw3|Yi[[?_Tڅ/Y%#+?|Hs!|"2tv`c2,jB2omSqgy>S_H 7yV&RWd}$9`7״Mu\ɰ});&zJg{vIZ{Oó){G[>xWKSdXqqX¥-4Sp#N[9f\Wmgm\W-?k8EaDy/}`'WM{XOpFΦS=N6k8=Zfk&iON :t=zI[wg_^^\x*3zQ@Js~([ʱ ^{hI7ٞmjN/m8>=AU`ޱ"+uK*,S; -瑹}DSBVKZՃK4=;~0[Yf2)䭰I*^mk0*orN3+K3imNhO=_/O_Cd͢rwtՋ1+ӻ-&ٵ?+nDҒ؛#D-ύZLc2!" PM`^/~4F՛,&ª) ][xiÎc-{NO;Ɛ5Ao Pr\,Ru\\vL4~3'p@d>;ĉbNN7^Q endstream endobj 81 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204420-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 54 /First 412 /Length 1732 /Filter /FlateDecode >> stream x^YSF-N'u& a+F$wo%BԤmtݻv]\rHrIP uH8$]<|$|ҮG" њT+ɗ(>S"-&7 A"%:1$![${% yF(KbNB#>)IpvYV< (94{ZX j>XB<).?hӵ]1p+EJ&y439QLAᘋN4f 0uJule/ϖhC,a!|? f_p_t{5WY0eےv>6;NQJ{)&Y U|yL2{ !tabr$1cj]ߟw0v7b%9_ ju>લK|DewHléF} ͝]݀l h8,# +ҥ !jfIzq>,*ԓӜ:,_sp[nz ZF@06Sķ=o-ͫ[#[mx=pp?vfF`yǒ}+$Rל*"Q7 $f* #ڶCXfdv[ ]߅)p|qM`};RP`t2F!_'5>R9{dcIjށ{'ݷn8ɄS;_q8%/6 :^SIjK Yod& xt# A<ɲp([MͣK$gY\#F+޻"+Noɝnd b8Yv3̢"UY8 $fԇC{R]MfhpL-]= $_q>XAb!O>'l8,OM{ޛ[~;3sbRs["׏ 9A M!c)$LW:*`l6UFnp+JwѶDMޮc. @"SG hrߖ^!4jd<|> .(w>ƅY; >K^G+ju.^  SҀgw BkA!D]_s2l=hhCPFE" 4k"rek.) \-}s=m6>.~Y2.v'ë)sOVZ"8J-_R*V*́WV^m6Q',;\H%j*.1 j%G~J6"I)ľP+ Oţlf_)TQ`J9.p}sF+NFl﹑QrIY, endstream endobj 82 0 obj << /Type /XRef /Index [0 82] /Size 82 /W [1 3 1] /Root 80 0 R /Info 81 0 R /ID [ ] /Length 241 /Filter /FlateDecode >> stream x^ѹJCЙLwM4&s7*b + ~vJ"Aiik)hf<Hh9 G5E]DB$Ye):D}Ȋh' ޺D'Qv=xy/‡A1@V]Ű"11J5@8.ZH4MIQbּM2Ƶ¸o:MFup4/"~m:bxvZgiCTs~" endstream endobj startxref 189039 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Boxed.pdf0000644000175000017500000061134611221776611025225 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 350 /Filter /FlateDecode >> stream x^TN0W셫%-JR>NI$R(T0۲6=]qlVn;z#)׺"%%ůyXnzR) m&v6) 'b.'+&aO3:Qg6gBP6AE$BA`<6Bg/)tjoXWdp*hJ'B8./t5@7(9' :hAcA=G)z}Q/ʴ'UYSA.ۘpCy"HAdRb/Ц?'?:c^ Gti,*ot{O} endstream endobj 6 0 obj << /Length 258 /Filter /FlateDecode >> stream x^mPJ1|W=n6@E-TP*yJbpV[;їInwf2[@OC@0uɲwCaӛMOp7K6쎎ssh"pl Ƀd[p)Zj1@qB[^`-^N^`EE؛2 ]تHHmѧߙY؁+= . gKjQ]6xO85FU}yykcBĥFtlO qb{7v endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 135 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUegj ԥg`&M ҁ t w.C":_.C,N(243601R$Ah*=C!@(w@Lp4 endstream endobj 14 0 obj << /Length 2176 /Filter /FlateDecode >> stream x^Yێ]5 }?_$ǹ EH(X̉W)03Ǔm{-;wp.gp5EC_|{%kY!ƇXz݋G_?]|cÃ{Ə^ԓ{+F_] _!kSWo5fex(r.*Uĕ5RӐ>[!VMxel(IQ *6+k˛b7ҡHl7R5J)^`p>wDw/MWh$i\1g:fakޜxx&KCAu}_+cs W ?7 13"v-X$}\\# XCmmzb$|݂0A6BI /{1YxYkГ_ӉkWdYBa#k rvR}T@l!Bp*VT9D#AF c)t݇TR`>:<#23 !w:9(t[Ӛ2J7Y !JLSM+alEtlԱxZ,i56 1ְ%nDlE+ ?UG[(:UJmRP3)+%TfqU'4kka Zf3A|IM^bO[{6vh :&V,`bXсbԡxYֺP,0Z:ǃOPIA :$6@KB!0 b-i1Ee)!GIV.[KRcYNImiu/&C=-1DuHL!6YgbQkWdYBa#k ["s(uX[@mjbڨnMp AVmh%iMmt0FG,E'[havv-dQrG`n""cB9i4 D6=9:{r]ޢ ^o39:_]w;ykty"- 0`?7"A[n̘HGoi endstream endobj 17 0 obj << /Length 1971 /Filter /FlateDecode >> stream x^[o5W|7HB !q i+'myݮ$^̼c9p<ݥ/)׷~ oNO0?RC8nwܼ틗GL]+~~S_թGN1XFg[Fj}ͻ>*]%tzJ-#k/iק]kqR -6b-Oۈ#c-cΌ ]o#wf ߿{BKB)-M5ۊ^0Qlw3 hwFByƽ nĸ ŕAVl|zeHFLʌ+ݦyiZ4>8Δ@'0ayL ՀKŷґy?{_R0Q95F2vqBt9lOG®} JذxR^S`B|͉,.1 .̖`[X2$ KǮKSL5m%KY[:sSQXY!Tbcب&SMΗ ]JO`eh*?K0|+i@U V,YU)' [.n#CCdK %6dl"%X6,_22+ xkJ\8|=!A(RԼR)-Q( ȢWHUbշt.RwMQQpZRfձ8C"uF\="FHdnmQ1Xf51.孉,qEGcWfu֥)&ޚ%@E0#fCcJf ҊȚ,DZ6Y, %'֔]N1ӹݣl|^p:oJ3M(YRl&y+"[\`CcWfu֥)&ޚ%>Nbq(:j^$P|ڶ꽱AmMgUD!H=p&fE[hpr3lF<{tFvޑ\LJ t0g[bTt,)YE `μ-.rH,YE@3oE["SB 1$1:,~K+<2\.Do؆6).2v:#%''|f=]o.6X;aq ͊Cqs{=ri\1#c-2!p⭉,qEG%c-2y`&uaq11[1r_-Εs~7YV6Y4@jK #[ rJTKk⮎f=<8):H K3KmV<؄3oEdKplXtʬκT<0[V),깭A AG iM(=ǖmsm;y/H[.pKOz8/VFev0nGi/tJWe|n45 :bˬ&x‰&e8Hɗ]Y xkK\8yCga7Nr=%ዣs|xQn/G▝'=~(yf5_o߯~џW~Z85ڨ\w܂7=g= iqY˧{=85?o,3L endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 18 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 19 0 R >>/ExtGState << /R7 20 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 21 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 24 0 obj << /Length 3162 /Filter /FlateDecode >> stream x^ݜodG8/HD'} ""aa $D8!>O}mOYDw]>_WUYYǝO"5q}+ݫ1:2~<,o뇯\ꯗϿ|w,֚)}~M=Eזא{c+Z_[[/cKkr宴VK_BYc5Vjƒ UdvI'jO϶|͟= >٦[}5ۛ5d|&uyAvXfl_) 7-}Y= Wlܬyۛ&7ɓ'ebk% bXлG"^ěW=*eWs#̛='aLc 'އ5\=0ۄ;{ ]{u<7x*YKl+ f.aoZ(D7m-b!A|鳛gu- 1b+v;Z)&\Lʾ`]g; x_ Qy*r_]*)N "+P伺 Ӛ2-"QXBb[UaL3m%f|0A%ϚgeU¤EL؊]p0CǏci?oߪ/%V_HśQC@tf6Dq,lf_\{:[~+89&NP}e'a_Kjόn9,-[m6PPAebsja 4mZ.@A%g7[& ,b\:(=:D^#b{IPAMjI#6lQR ! r O*.wdA:ɏd`:@!I:4ՙCTH9Z"1 tD,.U%8Vlv t_Y]u¤EL؊]pp?t"; OQ8ZU :d$9 rb4h t:8ƠHzS tzZ[$73x{\+yĀ-!BŶ4gJ.@#2xV(1Vbkv;=BK`Dt0n:"[+uB?y2T)IBǔWJ8Oi#gRDQ}Ӫ͑MnM 6@fY,`vP#ϊmU F4gJ.`KP舿ͳIhk!`Ϋ_~grP- vOr+߿dn_|Q k5<7e& ,3LBmߍ/?/ߏ/_.ǿAhގ~O~3=xj{'?:ԄDlBʸfI6~`Bhp)_]|ƨu['%[wI~d`{<42Dd\-m/U.G>h[5>qٍA?. ǻ|{MMfpCx4ETe\!r]Ch=hFN,~Ef{@,%nУ/.kp'~љp wVkzZ'got2vI89]F&2H*L|"2]Lr*{<-^gmgU (WWQW#珥s0Z,~WQ~Y)Nf2 j){nU&~> stream x^ݝKo$} #Q# Hb@N嵽+ ؒZzb_=YbXqӫM\}w&?]:k?cnv.IE/dzW/|9_L|˯ieq6FMSK)9,kjkB[bSnse r]b^^:ܦ}~eky8eaqW'zdkiڢ1h ﭽt_xugyF;ٷe;葍g`Fwϳ_1*VW2O4-1^l]~yժ%h-ARRs~O|$塉b}[l1lÜRЀ2UkFڃAp[#deA`P/󬎬iU0@%fz5҃U'x2cc>CPBm N`j弔:)ȎSgWjNKK:KLY:AK):-y9hCOT[[-UaUZQXش0= Vlx:1c>Gֶڥ0@%fz"7҃Qux4ջuՂ*0=*V Jc JŤ %'qc5LQ\31EY~R)jK:řQL)B\YR7͕"7a QN*U0Q*VHF(T:^>.*1[uo"~I?Dⰸ8,IWkaTo'89g1bZ Y.4Ӓ6:mרHUs3*osuy-QEĂzYuJЪfU# 82c`UnjfdU##1Sޠ:gŨ)" cuUu0lܰ8DVj~pS qBi)i˫ӊd5'*wFMnNth1c1e@:Y3ڪF=5BV^Ft v) =Pުl $(yXvqF}8#3NY!3eCS2~h iicl5*ֆ',UZi2o$V((lX[5 !+/:xgVLoU]zpf]hU'&L!6mŧe >N@7/8([7_l_|΁ͱIç"Av~L]O[|V|#_&_^%^?3/ǤGRCO׽^Ew !rQSO=(Or !1teZ)RH7_C,7 6K~bF{:} xj@x7u?oԛ|Ӻ>s?}7%Go kP&FUfd*\@ 7bͥ ]=К^#]uYاL4|~%U柝jڸi#;[^X"Wy峖lՇ8{)O:cY.m3.+w.5+6hZC g۴ Loa\@lDaNؽ ,[0|pFPV[_xj ]U*ʅ ͒%6"X?V%eam*9gV)wA ڳUׇ٪i?Яzw8jĹ.i?c.%6"X?VIؒȓ8V?Z2 Ց5Z+Zv'ku`~zsa-) Wn{mWjy}.H{ugN/9orWK`ph `E1lH&9r$X$JH\ \m7?źZh.Z,ICXGf}K`mLe~"Y`)vp,6,ŏYr"MA!|Ņ3`X 4r8.?o GQm=ͺZh ;fNR2o_kk.lV` ~*:r f)6G T3RogfmXݗڬw3R eE_?f͊9IZV JPrk,͊gLRRVdp +*ݬI,XQd)1͊|^)z J+͍Jj&q>\)I-\f-RfV^sB:~^\&JP^T~^>v)?މ2G^ HɣB(/ŏEYJj,U~nN?<(q όZ_%F0#`P)Y ό $(º9FfgV8Ġd 2SfԿmˬQG߲,26 W IVnzOq~3.VϘG1TMSZ?U-Sx 8bRLk`d\:rg&夨M\)IĶGmT Q5"T[$ŒrVBy;8XܠD.W|?3Jז$qxd̈EC)FmT|?3iVfLjRtR֜'`F}r IA~3 KWfR‡lQ;;=.YU&J1#qE5T>fL֒|ڄTZ?ѹ\˿(}R|d#QQn=~fJG0"Tw} ̤h&qnId(xFl3*'` Bv냬oCɇGPVq4h#%%!TbMg|?3D$KnFŏ`Ƈ,ɿ~f[jt>#`rTSf(?gb\R31PV-@ŏ`FRQ2ӥv/e. endstream endobj 33 0 obj << /Length 5098 /Filter /FlateDecode >> stream x^o$qbwO1Hr }oq(|Opwz;f1@v} 79||w41_{?_,ѹ<_ww?Dn7+x~L-E7 !v[ikijCu !8šq<<2؆CZ].meWRRZh%S.T#O8ydgk~|-@|ҍ>MQق^N-Ȏ-z+,+}J{/ z2z!2egv[EsN?fGARx#^FӥjP2'Ӕ&Z*8bم'އ1\=4[[ ]}5-~Gfhs̔-VYei?S d3M4ye:o$NQ"? (.#Qbm(C{)N{k t :xg.Zz3U\x4up.I`c'&LBlvێOyĔ Z8E{A)2a.Ͳ`7P6i3~X4N:"td}V\Fhc!62LLoU/󬎬iU@5fz*7aFeX1B5[Xki١D )y4c$LJSH`Y#acHݛNe=Z j=5JV\:utV-t=Pުn ssjÎaly~{ķu+<6<3Dx/-s9x8yϘa?!=y/2C CNYfcdb oĖkc!/h6JkjZvčG'4=\jI'X̍pAW3Kϊ}Բx|'|?{#1%FP?6S*rv <ӯrv;jr[.-6&PVIXNE+#Z" #;V* kuJ[HήQJ $'<^}v^C'mM~ʜVr qf$^I*,pI2g[,rIwd3D3!tGȃIEځD9afjj{źj$QX]Omo1Ye6\Y*f 4Y>$Ng۬2ǪH iS(k۬G%6k җml#p-6&`f9InNnHu6ȷYFHm?fHABF۬jLv66*6^I`;f,9m7Yr]lWDŽ*"d%XɹmOϒY%͸rNMj׶YPnYL@W+ڬ"%OW~oaHtu2f6kÊ\ xm$_l \n|=~vmzM~"p]H.K[,"\tӱT%9s$EkFu>I|1*.qZթx TR.Sf}zr_ss/ P1d" UNT T8ʔ>}QŨ؍E PIQ/FE@&n`Qx Tdpn+*#7g"Nj"{+þ/FE>9Z[voJ@zT*H(UF;]x Tr$"s>bT"n) aocZ)ZU|9..@Z9IMνP(8AXKŗ"aK1 O pI(SǥqR⨒aK[Dj,U}ėN S\;xk'ą-Q7El@lgʯ*Z{ !,MQQRh="8R7cʷ@VIj"x}ӫrd3Zʷ@F,ڕ /٨ˑ-=k|dR#땚(2SHLvl$G8\|rd_BT7@&E1 d/GNKi}RL'8)Y!Sռ]B*ZvI-*ѹ\_'}*RؼGȷ@FF/GF[N⮑| dT.$ȤH&qnIt-Q|]gU8ɯ+?7A&j=6#'89ɷ@F.[P5##zNIz6| d&SQ/G&ۊTW[S$/QOeTQ\k'&8:ZNˑaETȈM\dAT٩o?/R<7)*h4^'8!Aeޤ>,ԔBc>9,o`wRDX5=R԰OyH!yuyW&/p8įbd> _yKf}#mKv,R/vNjW)i:Ke> stream x^M\G+ /IDE$w@CĒ^yx剢Oݞz߮۞_~x淇B|G?~|1ݹhۋ7߼o~5;_mStm ~7}ҰS[u{rlq+}o1֐PZ}^Jku-=F_Jch!{,yo!PEƷ-}l^[՞m=[{}MKkӚbi7=O=oȞzyҰ{jQb=w·&CrzRz>6tLK֬` 1t]xGjn<= R3A9dcaO1Wͦzp ܵChqQŻP8\^b0m]%EL0D(t&6{ՠ 5ob1A|iYuh`uBX#bs1B8*(qw9p{▂@)LU:侻TS>A OaDVF(Dw*ywpT OkDh!M}KJW4X3mdK`>XcYPX40D[VŃS'x4Pb%KQtq z&LV)uBAqt /#=NLq;wL}u9&Im2t)/8b_^p̈[mc6Pcbsj` \pS[Y2::/m;=N 1 natA^#b{IC+ԒF"c>0IL_@f2G&tȁl֪|^uZ),uBXHeҶӳDam r>tA^#bs1BJF9-u "cq*M^vOPN}CDRFTȿT},%Ӂ%B֫a,%t0,1iYuh`u73FoBO'Lm!v-pi\1OOZ\\QC6qդ8EV/a͂RdɄ}6s*iPS$KFn.BØ. uXz50DN5.@#YPX40D[\ŃOPA;4`(uDl.Fz[rZ*um.1C)5/ 3IZѤ4ɶڋbu9eTj24HZ+s$sRzSTjɤ:"TX\l i+ ]BB󗶝^' hk؊]xqdwqPGœ:C6󛀑 =9 eSpWX$aKR; 9 fFr{o%I(k#W 6a a(yPBҫ!(p,vJ񗶝^' hk]xR/֟Y;r4RjH2=wJ@l䷏l uUwlXa=H#Օ寿"mx<{;>|Lk<ا__ߏB;~ͳ=~~\|R0Vr=*cgʋ,}X45`Ci(%5 k4 x>xEj}ȳF=0`;I,60DϦPXF_KQfxB<1z!l¯[ڙ2`ܱG 66X3!+y#,8|hgJe*0Ҟ g*@ "`evМpx ۤ̚WgmoS<3c%dǺU^D’x@ӓDl~^ E̴UpͰT௓ Am+ Of=Ycf_5frBYwb"3:u2kNYL6gz?1N1kl1dVoOGus6> stream x^K\+&@5ߏ,$B <-YlYZ㵆un0f4bUCHm~{S?\ ۋw߽}ǟݘǗ۟QTzm!7* {-1U^ i.c y yطSi{.[{ 4d=t%-dvbȰScnKn{8}fn>lS;zyCAOf+Q>җcp{DoOMƷgd䌤h1׹ Ұ5o.pzp:XCBR EgT=&eWs~|X !+ǽ c'O{zh6'{ ]:vUk{ j#%A _RKBob7Xy %KȪ։b!&%|: ;B[©PYFul0׻gRY JwJr')( 讱B:9.A Ӛ2;X>Rb*` pfl~ , u,^2"+Z CL5lůKNq;w}OsL:cұ}8{I-u {{mF*uLl!X75/@#ұ3uX`uC JuKb#0갴B-i$+ $d,K~lBȆjʧGK#e1CVHF2O;詐XDb "XBlZ `ά/`KȪ։b!&%\NdqTxR':rDVkj9#nrNAliz#%%DtxZSQplEio¬qo#:BI?g["TXBlZ `ά/@#2Dִ j f E|:s.Cv(b B-G@di뚧"Me"d& kS)|V>=bHE #6,Z)#Yɛܞ<,LiR~qdPGJM pfl~ , u,^:vFVN 1ְ.`%ϣ޽ YtᄒJ|ձEL}nYb.iRL~LTwcZl%ثT ՝ʿ&YۨQ" ? /*L,7Y@j bcgdUDak [Gܜ :uTv` a(sPB-Ģ 8@KȪ։b!&%­?3]#1J#/?ɈMɇ;v sJ񎺌*\zG~`iWWoo~-_Ə_OR—ǫ1>>>ds?>'3{_|ߧŔllVʸ,q4v5GOwFvkDv.½Q{N_<Ӡ` XRQ1GEnO^ޣ:F9I0>9E?-Dp5 _`Rr^a/,ǨjCpkR1ϕ5Enˤ/wZ sr:&s|4mKJn:7ΤzWm x&tfU;M }x}V{͕+k95H 𚊐h 4ѣ>>Wr#t~^&$(qO]{St4^_Rrt IMA]VUCcӑчJn:rÝ=SiuƮ|㱅z8xs%z3'$qSP yOTX_:חHR=>)!7F7JNYz#a>>Wrפ~N!] +͟#O3<x}Iɭ^WQ\k%'U$sR҅Ree5{>>Wr f=Sxźܟ9˰m[lÚ[sR`P}O3xKJnNzmS2ϜuP !%Rq}x}6Y: )F#?Hy:[Oc=]K*ϕ5:,wĚe8{#:&2ĕaۼfPk̺ zk35чJn62Wy=n^yw k+dQhVG+X\nmt`^чJ.{xď{Q8t7+@Q>1kB;\>_Q67vQq4ӓ;B~\/ n endstream endobj 44 0 obj << /Length 2321 /Filter /FlateDecode >> stream x^] W@}aE,-P).itlbd@Q< cfKQ$ܣ K=^sI_//C(ɭג߹7osn.qhsGK̒p)T@J-1]~O]~SuF]/mCmӥs=F׺i^lqU?R _Vnobu~6;q\m蘕yscPC xHjĤz/c3Xyc%^/.ϜB6L"70|IiA -E 64JKBhbp4XE %KȪ֍a!&=|:⠎-T{ej , &-RtӇJP>A OaDUFa(D*ԩՇL:jAT2X1Rb*`pfl~ ,u,^"+Z CL5lů{<4uR-wһd'AOcVNbkV8|"b9ec =R}ӬRRgF9}sب#B-Ģ et(u$^vGVn 1 3aLSA^#bœg+$[+VV"{>)Lr<@f˲W&tj|^u8ZJ\%ѬLR)ccy/x:D/bJNPGb*`pfl~ ,u,^vGVn 1ְlZ:7ur!G@fk9P3RL"ȃnRD e3i/cU0FYW4-},~I swf?B%Ftɸg"TXBlZ ά/@#2Dִ j f ]|:5r.CNQ C## s{QN 2)RZR=Zʧ%x:Q4=cáfp%9``SIőKBY+!6F%tԱxYպQ8,0ZVǃPMی:"#D``U}{>-җSd|:N`eT2Rg &N$S֣Rb*`pfl~ ,u,^vGVn 1ְN\6qo?.4ܜs,T_J}b~B# J[2 )DMK~ [42;h4-NkH}^4S:Qe$^JYs2StoJNR#RGJKMa%tԱxYպQ8,0ZVǃOS[`Bo,!lN>f 44Ǟ,$˚ R KRIjԶfJUSoD+y4F]}Q%NH :"VC,PZY2:H :/]#Z7 Xk_xpR;?Ln[Y~X7%w /\,2Ry<}֙1{=<~5?uKuec_^k}f}f^}Sg_>~9o_o??S90K_9Xk}aC|n`wV55Z zumr>=ڗIKdvo(y64"}Z%Xsx@3!\̬DEX2W\YTefޯK &K lϓ~:[&ݺͭQsG(.r(yIUs1Κ%|ns({ؙp _p&c)*/cR-L aSY0T}vߚyoDhA^DLZ5'J[MjOZjAvۚ(%Afb^Ed^׽sDlqa& }*\Ip7 86{e5 endstream endobj 48 0 obj << /Length 2071 /Filter /FlateDecode >> stream x^[]Eϯ/H!E/<i@F@0LW;UQE}j^.w?]~#Ocw)KJ勯]]˼>cHa.q7/_a|yݫh?Kqi呓G .{ZMyG:\Orb%Rk͗:X]JpR)qX|l"ʐzЕ6rMcp=Ԕ mVzJi7do{I@O 5 owFBy  n ŕATx{m2^+q\1+ [޷%0Ơ0<&B ՀIŷҁy?`{_R7A95Fv$r*-@%OPSQQ }'C:8(gA-(Bk4D_"TXBlZ `ά/`KZdEY`uN mFyH!hB!XԉV=#z+ȑ շt݉-gӪ=<-)OZ=nyWsOc{^b3#n>lRbj` \ZY2:H :/]"Z Xk_x Wب0Q3CjVlV$#Hc2)KϞMP"PkMt{aka,F< z,E﨓l|^t ߈+Eϴ*F(B%ĦU0 6Z:X 6Xt튬j](lbba+~]ǩH}ug (>m[@"zolPuiu rNEN7NKK2>;(,E3uu_d!u2RBJKMal%t(u$^&ȚVAA-ZʃOP`HI"60 ~9EEM7BQ>^RHŐ 6lZɛˁ  u(_lY(0D(ԑb*`eY+ _BF]U CL5lůk<uHVG !ucΕ{DM42)[=֗d|:`eTg*Rw0WzscI$֣Rb*`pfl~ ,u,^vEV.6 1ְaf_}AL´>Ε-dyuꫂIM[ߜ8ĽɉF !~6@4+Bc4I~W|\xm<)?|=uS-1k>}xR7^SE</Ey9| YbF]34|7k͏羄ԯn.Tq endstream endobj 45 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 52 0 obj << /Length 2231 /Filter /FlateDecode >> stream x^ݙKoW&иߏ,$ 6mQR@IQ˟Cޮ@u{jꜪq6+jOgF7_bt볇gmV\wOoɦ<{J}GO=o5z o}%jާ4V{ 8yϝpd=#$+g$E㌹>1+ [קW1(.PċxFcRv57`؞ÂMPYA>=XX;y}SC)>ycpZ!ި]SHW !/ b"._"x[i5(E͛eL(i$^vFVN 1ְ. ~P+T:"#SFuY 'z-De)LU:侻TS>A OaDVFa(Dw 伻H9jA5e*X>Rb*` pfl~ , u,^"+Z CL5lůK<8ul%VʻT A g N Jɵ9(šXA/ƣNlq;;>: Z:JKju/8xrxfD}ﭶuD1Xbܴ@KȪ։b!&%NHrT) uT<[@vq"ZeZCHS# 6*v7Z]ZmN5uz PG):SN ǽK~ϖ"TXBlZ `ά/@#2Dִ j f E:W5#7l ȤlqJ[_z&E3+b=Q:9Akug(mL":&V,X3kdK`1Xcҵ3uX`uc5BoB'tl!k3WD w9N0fnX YPvFt[):C8H%BVC,PZY2:H :/Ykb!&%)S"zr 4K5`-%ӗq.H.wԱ=GZz9nqZz=.sL.*!9{vséi\^?!4o:f(Zϲ;Շ*#,`˃a{cwς @PM?VrvXx%^TRHy6_Ã@Jc<˙G%:j9q< xciG{ȕVq0ѿ7@Ցg1Koޜ%%wFr?b endstream endobj 55 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 62 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 65 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 67 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 71 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:43)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204348-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 47 /First 355 /Length 1442 /Filter /FlateDecode >> stream x^Xko6_qPEJ~i'`b6$yHΕn+Gyyy/yxxH\{%I<%3IQ$ YD& V)(Q/#I#"#ŞF2)t.)M0[>ta7It'}у ?דz Pn@(ѕ)Ұ*r41h\(5B| ROIG(HRcCPi8$_:]H|&ĸ0!LP!1?sx舷wQ 1Y:ق$.;]8oޔW3xlN9{lhsVYpfGIJ^a[LCVu+9Nto=}tjd9s%1֣fٽxA ch7y<ѧxےmej]*=li1l ]Qvl_ a귈б )v ۽Q0t25/H63Wk)pU!YJ,Z~__pz1+m6*06}EP"~(X ' Bk"8$K"C`CCXx872u%ڱI3Gy| U|ҽ:9|z֋t79rw!+V)qХq!0AHųw6.@@TE4f@R8WT l K[S[g)q!}X-v2`F~xj^if| v\1_מX.w|;7֏E/΍#W'Ɉr22+J*/uAdo\ڕ*].W\zBr駜% <6EA556B0D16198F5BB598264C15E0F68>] /Length 222 /Filter /FlateDecode >> stream x^п.asO[ZJjZh0`s] h&`q61DZ,n/L@S+8!n=z͈{uEYQsDݷ1Ot}(2[IŒg-?T2qyQ#|[kN A͋sClMǽoba|y5bڢ=qv^=1GLdBek endstream endobj startxref 200973 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Sunrise.pdf0000644000175000017500000055317711221776611025623 0ustar hillehille%PDF-1.5 % 6 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 7 0 R /Length 462 /Filter /FlateDecode >> stream x^n0 z ^vUINseI8H?&MI_0/`$,YuGX+^_v-`a @@ϗ1P1IM6W%]4%UmцTsZ)3,^iOEP!nNw\N ͚CpɿiφՈ&H ӈ\9[/KJ54Z$ØԳ8?!Ec$ЩݬTȬrHc5zF>cNsR@;@9դJsXam1Jip΋1HMRɑKi=Rb4/Jk0ERx7Jkgem.aqI&Dey6U `Mj<U$SvJsǩ3Oy])p%U endstream endobj 10 0 obj << /Length 306 /Filter /FlateDecode >> stream x^RMK1WM+m$ Z({RTX;nd2{rԞ^˖qW 9=nCŗ)@֖s |$P7p8GkFYg+ek9I/VX[XҊ&A"}-e7z.v*Z:֖KD{QY}ȉeL=mmlp/ endstream endobj 13 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 14 0 R /Length 132 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUegn ԥg`#ҁ\t w.C":_.C,N(243601R$Ah*=C!@(w@Lp"4 endstream endobj 18 0 obj << /Length 453 /Filter /FlateDecode >> stream x^TN0 +d$&qIVH{/AF >-b>u8sRUTΐd9x,bU[TMq"OƳQ2}ƤY!h99Ӭ9w*fN{? 7)3cW̝\yQC?܅Yq1sٜUGMgB|`͵KgKT"#-_0$pjϨiHtLoou+* h]bH7Rn北S4.rQ> ".WJfI4@hL fljΥ\.G#F @3\)!UȘ|*s&R_I4 bCV0#YN70}0CNzB6pe;XZ荶ϧm߷l zD<6% endstream endobj 21 0 obj << /Length 300 /Filter /FlateDecode >> stream x^eQMO0 WD5q& 8LE1cH_"ζٖ_^@Xr5[Ç:n֪RK?uId <Qmi8R j)"^d93J`#xK2y궎B)FС0"hYãvok{3SbDMdNI"Yn&zষa<tx=OPYcxc yN}UCĨ98 xH;n nllU~Z endstream endobj 15 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 22 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 23 0 R >>/ExtGState << /R7 24 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 25 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 28 0 obj << /Length 1416 /Filter /FlateDecode >> stream x^ݛMo6ш ASߚ~$N:{K$R+=XFW$qJ\ %Ww$jRbQ Rۦ=.}^}{B$Xhq7j[ICJN/oRJ}uRko6mާisOO84ti˽IE}?O~?Q}IѧאB)up HNg?UnҦٻ+=Kk:3tIoN|XVjZE^V}[U.*$ !vQN( b>tmx@*/ٚPh }Ai&M(IZiX(Հia 9N.":7W w1FaEu.V]| >ࡷPlYhNi#컞PkI+6:6#:1ɣaҀ2ք!y:F2*y >)G[gHjӀ([ۣՙ>q]%|?m;P1z|zOy >_(>/=S6O'I1Oټ=BxÍS8i2əONI>>&S\iG4 b\ nW\T6oAÃ{-fr"YǍ/v2͙Q ax).5 >G&;DQO(er¾1 (2M@ECg|"FunBGtǔZ5gJ7zS\`4S X F)8eD[#9To)Ğ|LkLXrR0Oa\Sk""'9\vt.ߞ$qr$1rE} NEta)-8պ@l8G;Ԋdc6OLs)DNBK.95ͣ8DB*p zIjDU¾12U,o)?1>X!"k{r>1$ors\V#|coroq  } N!Cp~5>پ1<)msjMr7Ls)dSA$M&5 Ne ,`:)iHl)86 gtLƩV2Mr&\fLQw3Rfy9ESnprÏ0H.7{= )"Hik"LkN!tωFeo{V,&ƯUYc}cq +F"l5nV$i endstream endobj 32 0 obj << /Length 2447 /Filter /FlateDecode >> stream x^\]}ׯ5ѼAE#)m8kJ2l^PXdm$T'oOS~YR@ib6A8xRf=[i}LjƘSޮ/#| }|GS 5> <@<RZ>lxG i{riO;ƉNQ}p%a0ڏOwOt'27O |B%+,ʂ ^+gg\0ƅF]>4*X8xʥN]>th"-u3TTS:U.1J7r} ~A!J{2EkOS{oι2 >}2w)PN%|NBpOZ'eW.3yfQtsbڣS8:C.;aK|U9[SЩ)EE ~Niv.HyFg10Q|haˊ)]O=Us>JʢcG]ᅤZ;@:T/uE"e{:E:ژ"r^ ƅo{_3-2- U;"Y[ jA"ePsA; B+ʣlF).SZ(NXE>JbY<- <j-'4լVDhHH`E}ݬНU-`eˏ.R3flv̂YX9`eQIe+Y%GfXbAi BsC9i &=Z3CbCȓC$<H̠(fȌK=f3.ӆ#9t53)P#46f/ ,vK;kfaG};[;<üK M ~fH3{V| Hh1hW|^1 1|3蓆B̌Cb -3G0 hOFt3faC6&haa'ZH >ڂuLuH~f!B.)G0Kf"mpjO,oWJc`0c tx?3hF5b6 >YR}:gWvAg0|3D%uрrB#g>YSf|[^9c'>Y>e0ؙ 󠉋Q[FYTtW|hApVf+ W#G0Æ0f3Ȳȭ#qCyNb_zp,M#;:];f3CT DͶEpacegw3C9ld |)Fsz;?3 8aCaVtgat=䲶!mzD~a&fjQ#x?qD9 endstream endobj 37 0 obj << /Length 3243 /Filter /FlateDecode >> stream x^Ms+pqUTBc**NRrxGJP~, ex1+Nt/vv^^o.wx-{7o^~w}B?v^;#E1u|/kzL/zZ&!o|>ʟWawy3<ŷ?\*t%ҟKSTTLiӉ޽Nf$3ُÙ71lsu.F[)3~Nۿv {%T! N61ޥ 1Mi4l'њnr!Wͫ\v?]yDϩquS6#߷;{cw/;J[x-NN=Mz)C\<} 1ozetׂ]nGl B+0.DFovtVHg{.`Ns wRswoGәLb/8/=[ie'Nُ׽TQy#)$&Pƚ0 7P'QQB2|}Ng< }fu&O*z%xOM4=Vӧ9c,t>1RxE>{ƅ>?)^)eScR} jO>4I#ӧ>GONqH??z(}jƸЧ|>I]wW *Zܮf3 Cuor+{\.^DUuF=[یs֨z1.4)Q82!$JfFSr&R~g}pFHCLVx݇%즌VֹU21zzg9TL=BtJ Fx ' vu*w)7Ğ|씴,32Oy\SGED8:em+.{ ʥN?tɞ=: *바=t){Wc:UQf=q.tȩ:|qtK:' )[T7)VUͧ :eoSYYrVZ QT.*Mǚ |V0-u=S9+|ԇ\;Χ!Wҩ)2Hu|Je:5Iiz|dQtNQͧq.tʒO|J{a(:uO),Y);OeN" LTJ-ҥTO)F`g( 4өe5\fLavO{g)Sg$T_J?`Nn)u aҒ>fB"HiG:%E0!ְ χ…X2TYhUQ2QX1z*'PyA2d*r}9 'XŁ &#ΦWz=*8SEcdgnEDr/Fx1+;Cxb["ߨH!ۜ/f ADpVR^Dz,ߒ4kYY`bMX,f9nʐIf>V^*O@7`5LU n_[\NbVF\ց3܀Ō`6xJxYƗ3sd)Oi,-Q{TU _,Pb0`Qc4V^̢dޮSjYƛ0I:);`&w?r2324vql[0K * x—37ԊT8`> &$R̙e|93mYf:T6( !)_̧~-:4pwLNM R*ՌoL PhUmZ˙ژ&b9Sb—3.肄g[1x fԟ)󤁌/f)?+R2'3ힴ:-/gz* *hC"gwn_̐⩊? OxfhV+fOJ+`FC&t/gXeAժՈ7a𝄡/|8_3vMt[0::l=f_ΌIpo cퟥ_̌dsorvx f)8ƌVR+fބ=Yԯ3'|93JzHimsfojO[4Y߬e3ɢjjX)1+]}ۦ ;A>V!Q~tS18vɺ'ݤ6 tE^~i\(8u#cz00M-`@R< ߏigKO/wD˝Qi{k* 0W.J,9Z/` fi@1+gK̞.x=q̀-vliM.vy աXkP| 8_b0N|>m]}7YQj{l]`rͺm]9&7ڬk}b9 ,mOɸvbm5L}2 ݴkӮխː2ެkw]ldnڵiE*27ڴk}b)?Sf]uo] =nֵYE9#{r-" "AbeUn[gܬuQŚ2ΛϸJjJ7ڴv$]eӮMV׮kyQ(kSՋB~Oym¼HO7"GTI''\uw/v<$g)oHKۡ)"wrh"Q?w*RNN5EfHkdۧFtJ?dKDm^mOjJly5e[K9bhyVl~Owj$gg@+%Y+v?7«LU >א*'r||5zh\\|tu 1[vQ\$~ZkbfPYqŰgf6yWͫ\vw?vo endstream endobj 40 0 obj << /Length 1077 /Filter /FlateDecode >> stream x^[n[7߯M&>,MQnkMT9D I6;F8CG[rt|ZwGB+l^`Fq =>/~|F#Q!5.I?Sższ_+3kzy)MosmҟڻzX/^ݞo.4ﹿx~W%HK5eEuG~ wo1{ge%rkh5).ނf~=jGOݧ D8O$=P0Ԫ8ql%xZ;fo>\o(}G^Bc[a _/6䜢Qes!pqjHdi0D\,>&Ҍ,W xDA kRl(R5⏒LCF¦f9Byn+xM|@(1 N.\F[NA-X h*sR@Ql0lAlCp ,PW871JI6u2CC f=! G&I]26cizD_G%Dj/iЕb<56hRww4 753]4ĉ33V ksV?g'wyNJ&&N.,ZD02n~]7W$" :sd#GJ75G3cg:2+~库\dpx8^m9(N,Ty Mp)D)wAA`3C4phfb}Hb}ou8%X9h?R@<@+I6Xj{p;6{@m=rG\RH/ԃ!O߯(:Vlo+NV tpnA!\CquH‘ c{vϾ c>߾[CeS endstream endobj 44 0 obj << /Length 1207 /Filter /FlateDecode >> stream x^n7 X)J MQNkzI8lȝss!Ibp.@8GGt; ߑp:IN7g"&ї"9Kqg;C?y=ytcl/s^7e~Ϗ[t3psQOM%sx'.R0G 8XJ=܎WW#DxqF棽iO3#1Qh#U}j$zZE0L.EoV#,>xU_P_UN'O >$1˫sg߸>]\B]Zz>^ݓxxP YX? WLRu9s0feh&ބXpK129l+0ҽY1$ShRO&༜*u5QN\ J=J7깒uԄ`[D%/&i4)YK"ySDB._*J%KIt+YG͞,7MdOV%[ѲHDziPS:SVM'٧,[TL>ǀ\:Cb|_R&y%}"5NAOZj1+iK+&آTj$4т> stream x^mTnSA WxDc,PB(; ܶi%<7ɝ f}α,=9a.Ջ05ÇwS#7Ľ_X (@aqmٶ99)<ke˟\UG^3V_漭v!v^uy1]sۙfk}\u,QmT`=ڈ| 鴚Ɍ.G$uY5xgYtFu8ѮdF (f\!Gө:a9!rsxWս#4hu?qNj4ھYm\NcP%o@n)6z>f9lqLSQ:Q/ gˠOj]Ww:T CުMKcVH(QC&;{abX') bJ%`2:u!\ĞY 㳴bLZ<\} endstream endobj 50 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 51 0 R /Length 380 /Filter /FlateDecode >> stream x^Mn0 :6H]eޠuI MDSy>h5Ԗ~pUt endstream endobj 54 0 obj << /Length 387 /Filter /FlateDecode >> stream x^mRN@ WDLEUʍRfJ'_<aQw"u nЧZ{p'M"&H>U\h^:'K@'nGx*<*,hчˆ$Fo A!"Fr`kɠVpp)-8kYp$@ )s-izw k]mF/l7̾1t6_tr[u"Q|d6|*ĸ!uoB1Qk)7JJ? 7`U͇s;^|on[ƪMo=F}]<6G2yr9mS-'خ_}}2’6 8<; endstream endobj 49 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 59 0 obj << /Length 515 /Filter /FlateDecode >> stream x^UMO0WVVZEUn]Ta Ɵ=$J=p8{fޛ [z0>AZlj-k1oՇ&nBBEѺdQ29մ̏l͊dV'aC*NQΠ#g&)B:. iu~&M&^N6,U}IF> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 69 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 72 0 obj << /Subtype /CIDFontType0C /Length 3882 /Filter /FlateDecode >> stream x^uX Tan NqĄը*"O20lE0n.Y5*8nADEo k49OOTuխݺwZ@=c/|D$X.IOPyOF,<'ezd!?E}f$7G7&%%?%A')I4t@ħtb&1,#'l(RJJK˲LRĦllf}ke.V2yefjB,")R&-*3hB$SDF$F˔ѲYzj*UR'~n% Ke*U 2JH'EFdiQ2Ϡ@2)M:*)5Jfi)FEbҒY[X)U1xNuIֺuK}-}\}ܭ֦ɢ*YdTZD\bᆵR&" sl// KŠ&l[ŽE|E8 "XL o—XJD'"$"#b D(d"PDN}/[V}[/zzzτ[ +&trOMRV?Ԏe'c.{x}IF5O40>b<4"15 aq䡽!ZƑ(H׸٠=-BYZ)OK${ݓm< uzZ۽e;Xx/rgzZ*J\/U+~ÇAˈWq0sOSp.[KwsaKne~8ww{SKڤ,_+drbuZ]0 vs/m涛Hfmh0InO,XcHOԝ0Ӕ>̺a:Q{/7|櫏@{4;-f¼ >g^]vvlRn)C&ȄMrc Jܩ'7-v`Owv0W.Ufs[ݶv@TY){_sKI˟^lg@2jxG|,h,xGq$}a?Z iQW 6=ЀC`VclAu)I,(`_'z:Bޤ+ζ1C"}6'qsw L9kMuڪ$0 HXٗ٥^0gNl>ŵBlMFNr/C,N`ߤ-c&'2uaA {5leta*8-/]Yn.))(aBh E( S!^k`,f޼*}5gHzyP몒|%EV@?ٹ'q s]zΝKEW2s*o9vgYkLiCCpxIO%pvqWe}<{KHΣ͍=`#ݱ.q9˸0}CulFiS&聚+ 4iE!WYqTԏ~æflXN΢P٨G݇p>N~T@]SpS~:0{@t9)yVj/澅)_T%7pA^ D ZBPLDn/V5g?(ΫQ*>\e-ˮG>}@v¥!;9H?Qa}J7D}ڻk:c>iDA#^s:ayH>1H HΊdvM=/xT3hwk-_.9E]s~".F3#q,iy?*pdZVYVm5s<+g$ klWҘ)\BU'"N K:DɯCՑ,j*ս;í<]<{obz]n9#q.O!Pe8+\=8x҉{6BHw`^܎_(RwigTj'2G:"Њ=2}ss$Z2QBuia;u`5w/ 5`c9bAC2dgG,>tzp`!pgҖB_H_:*`"ult\pX*> hao?xk3d4XJ`\C1\r}d˝(_z$,ƶ+<7maAN#8]\A3#CL& -`  Xb N} -o <ńceFd{yT M̛oainΑdՅF:x黾37he!.?pEbsOy[Yl%BEl]c7Fmq,BFVM8;^%涜RGyu%Yl'Drߢ>?XQ(Ll'm GHֵ) 9 Lt6#H#t^Z~Cr[iZOjb6nd-~鄞R+vkĮļॠwx?3"3m-Sl<2J̝(l%R_Z1yǒwݎ endstream endobj 74 0 obj << /Length 453 /Filter /FlateDecode >> stream x^Sj0+@zp-; 816m^iIJC~G8aax7oތٷ#gз绺fM+ ANVT0y^nJ$ZG ߤ5>lg]U>sm|nj8?D2 #_`z% 9j(,;*-u#`{aĤQN4*[\]R[ob\ Fj3X?{Y$QwZ7R.Yt/jΰh%]- 3*yU7zt1hY% CkP|M18SN(qIH$qȕcPiD'wdVeG3;K1JrCJbͱ]͈zt_vJtmgOn,z+X endstream endobj 78 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204414-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 2 0 obj << /Type /ObjStm /N 53 /First 403 /Length 1668 /Filter /FlateDecode >> stream x^X[o6~ׯ8{k1%/qn8m:~PlX$Ϳw$9M[ $D<~xGO\'En( oBRH]«! |W:z>x! ᣕ$\J|ǣ4D @< iy< CG;J@Hz9҅@8 Y Q ,Lq@(A K9Ta&υ ʇ*Z<8=K4P^C`h5*ICPIC?PR@ IJjbB*!סb6dv07IxFxlHvSW9 /?+H;^dj;&i $㑹:mѣpMtp/ G: }(CpA'_s3 OgX>̑戆jNWo##bOy:,2MF}ӀNV.Z틛e-k` *fOgD8X >w"년ЦB؆Ծx|?6`} .8CGi7|{p[}}"/~AS[/+d; F!51.ҫMU71нp Y萐7$xE!EGrCc 4@=^dSc,z<=\ B2K2~;^GL8G4d$˱"80ȃH!9J"hf"hētWye45gDGgIT`w)OGHWF毘͋Wt,d6J85ǐG-e ,UGRA}|XՐ.%F=6{]Apk j/Gup n(a,^P(i*z{_ជӰ͡ܗԨzK 9t=P}-e% 0󘋝elq/ ^4Ax5/N/rUTݫ* \,ޞҎp['6s&P!Pl0< endstream endobj 79 0 obj << /Type /XRef /Index [0 79] /Size 79 /W [1 3 1] /Root 77 0 R /Info 78 0 R /ID [<768CFD545595EAAA7BE1AE5B732D9A4F> <768CFD545595EAAA7BE1AE5B732D9A4F>] /Length 235 /Filter /FlateDecode >> stream x^ѻ2a7%8'YPh4 1&\B"0J4[~@LE  Ӱɍ!r ƈj[Ie1AԻ&ŔDÜ%N\EEX Y %,jE[]4ĪXat}kދ:iSl1ی׎ӎe]1N-q${p endstream endobj startxref 185497 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Swoosh.pdf0000644000175000017500000057664011334644111025447 0ustar hillehille%PDF-1.6 % 9 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 402 /Filter /FlateDecode >> stream x^Kr1 >6l]R* `Pө\T# ?FGjtW5bQE]w뗗ǧ{p|z.?Ft;ί৻­Gٷb)Yf7kɨֆ;3QyZ١L5;M&3UE<'mS^S)Φ?G>)ЪU)/Xt-i0$ J"d$]Wn$U{ b:ޔHvBxW<xj#Sp9R[e  BW-jEG9x3 i:֍45a,bC2a"̍Q*QB<en*z^M"Qu}S[[Y endstream endobj 14 0 obj << /Length 243 /Filter /FlateDecode >> stream x^UPj0 +ʒPrȾJO);fGH3#1]@="z]ݏC/A(9^8S 8T0G/9Yؗޟ2gfVAFX'ԍ9{R0|8*rE2|L/>d4_̍r b++ǹT&[ Ԡ1 9nes*c]iq'w^V endstream endobj 17 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 18 0 R /Length 137 /Filter /FlateDecode >> stream x^mOA@ sڴ솬~".?qCH!:3idE͝@QvuEc(.x6h2r!9{E*,KJYkE"Uv.x9guߑ۸ɝۮj\S9Y endstream endobj 22 0 obj << /Length 1244 /Filter /FlateDecode >> stream x^Xn7 ߯ЦKT:]nb8]{8/iI ; D _ ^~z9pkdɼ<0÷g)}x~Eݺ"d#K o ~{"wu'N&| gsn aTr/:(J,7s,%FXnl'mU\JRpqPȍ O9k *5&%3 ̱UMN0(> ksJl Ld ĥɂZvJjF ME#ʊ@CE5V"F}*a0QB,- . .ZPtc`uzLUx9>_ȯAYi(hTҚfU!a`dF̑VIHMU deFe-F :UVAbU a׷nHl|rn rg Y1㑿 ha*$dr~rB0al 4$ŋգyvG5xzJΎy5{Ps3 n}daL~շ. (쥒2ʛ`AFj+h_b-h訨4k\ؚ4i(ۃE\_3!> *Xo-%stMD0E[-R*̮uAn&I;4-maGՂG< /A{v~~g's+%{ދ7b%,ۼ(hx\*r峁Q8Ws>>Br1 m"@o} Hr )y/ɬo :&;3uGtUt{ NB"CxtV89[#xvV qӝW9(`#%Uͨ銩#P!:w׷"軵2w%p0>I =w]H fJOóՃ⿓2d=PqyL>v$d Z[%̄&q||ǒKV B>ۤK}M9e]o[Z|]; endstream endobj 25 0 obj << /Length 1040 /Filter /FlateDecode >> stream x^WM7 ϯХUH"X |zH[CMvSi6=iuNمmPz$) /& _y1M.cRIEJz;=zD;uT(qC~;| o޼OdQwzs$(nZ_rQ2Y )l!Nь f5HK3y˄ش|qM茝(17 ;$ E[M-س!:ّR ArIH^(:Gƻ7+ywrZ _%c0b<_{xʕ`78LDQ25(-n *Ȋ԰vͰӋawؚ d]Y6SjHoy]=Z BDEDJ<عIsF;)VeBQQ[*-PAW.<(DZ꫌PUSJ PZ<5JA1V#:s`Ԭ9 r@ !X:¤5ug;(tCĺ]cl!U_eC"}ϯ6%܆\X1iQ:\aEWZ3PRUNwxH,#F4 \b/л͍2$H&n7ư>]m0o-; wufmxɓ6/gUh zo?opWakTA;#8}OG ./WX3}q>_y1/űdo{TCxٚ9Pu~NZ|:"#(Os2$|[li]=#| endstream endobj 19 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/Users/tas/context/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 26 0 R /BBox [0 0 275 200] /Resources << /ProcSet [/PDF]/ColorSpace << /R9 27 0 R >>/ExtGState << /R7 28 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 29 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 32 0 obj << /Length 2187 /Filter /FlateDecode >> stream x^Ms5+thE* E8Q $T I8y4_nބj%ͫVJ|QRljwOO u֊7GOo5t76WR)gN)K͛_޼__\'ddPos?Ik#czl|iU.ˠV 2FjE"O>(wƘlQ{%mV9ha3O$KR{ʜ3aSp4mQlM(kg1nl YѴV*2 IƷʕi2t=&':1<%队whV2De]+5ڀZg0[:f[ީ7FN1wk)Dj}ڡfA9HѣiPT PZ$dN|e LZizi-RV4kq(s0.'q ^AX˧T^;q-Ÿ38!`AfQac:ka8a j0f j],d`;`YEbl`=Egf6`|.mh9m+8j<UG};L00t;h܄I.AC&a/)CU8s8Hc%MigWֺ`Q{1XqUX"-TiL&D+^GUzA$rɠl 3aTqWA` u͊jv*\xj.+6IJJԨ`IS2='XK0c%ټKF軔"w'c".들 ↤mH.jvyE֖" zIr׷lW7/`g'WS[%SV5c5B5i'#*ɘ O d//Icch()k[y:p{>0& Q(G$>0vΓUOrl*kƓU|8OFv٣O'J<9`¡jT2fםOIÓQ<94lq|LlsD) [$g[wr gC%e*Ncˇ JCgq|ɑmWKMy)FaN|od%8E _ 8M8k # >3oIF%>b#JҨ+'|4|yŗFqeb_6589 ,cX1Mbd^F:\r:0&lEqIYZ< XLGVHwΙUgRE\z*?3PM-৘*'KÙpT`iZyǙtgΙUgJn K*ߛ3aR.ǾBY~^f@nK<2ƨ n9sJ<"1Ȱ4)ڏ32* YrgZ!I=sά9rb$N[BDTp-S})ԤJ˙gq 9V1f*?3> stream x^Mܶ+xqi|RbWXTbKNi9dؕ4;\I%yKm/F^ jF=7L3v`k=|5n\J9픲\ ~篯~9?Ͽ'yQߎ4 WytZyǠvc:fUC#'sw148˧^W*='c|K*?X;u؀>T3F#fiRhZ 8`V~T4{+/[h7:aFGf5CEkWVFl^4zYJ]SտJi_-Hn&o[`TUIa?9M`ݘu=^S6㊀I}+Z듢'0M'=f5@QCtyn iȧThg:6yp`\whB3Zje llQ?ڧ>~Y;*}P|?fG3fo[Ԡ۳]*DYFk?f>3;v͗>[@ΐkAʋ)3eFdtiFEEvLwL&if4R̀hxKtLn b3JnMfUkc(-X[km/LרG7#m-Bbv-. S7j[b0hm Rk'ut9>_?9ԡA-N o}P[Q[G# pz-QsLtm2*=Tgq-^Qt&J` «!\f1po3*d D":$Qg+z5x8ǺEXfJ'/(g$,#x+#  n7J)rN,#m*lJU,YD-HVS1ˋyz&˧umRzɗ1%(lOVLYSH/K}+>|<=YS{+[LqW|Vd&|]ˋYziQf>eKG[N%b`jOKX}j4_qwZ7xnipObJ1d)]/̋0yH*1f.E6a_zA3ӐM-1**4*eJ3# s{Y̋0yYƑ/Rw~4ӐskH]n ~f%uHR:ٴI D2z%,ct̞ ~5J<#0fI^3ޓuf>f;a4Ӓؘ66I2>[d$%si9@h>t v_ͼa tfJ3mY<&?nV5"rfjrc( f ~fr8 {x*~,u&'g9)@4U6`4:V$Y[}f7AL҇35$JS9s3p|9 x-~ݼL\ic"Dtp8/4Nvbu$`dO htY=hSɉA2=f h~]'JDC}Q-nV&9fz{d;hMYfnw1MԳXqh2 fE-Ktl0ؼ+w> n+4q%pVL+ @wr زRVr(M$hwbCϗzp1%;R7Kn)nVTdc++ONw`EGU[fgƁ-s[6ŒqI0P@RD;{0Ï/1mό,xYl ރ"MтgFnٖ=zI3z7Lk|}#~f| pnޙ]#f lg@Vh՗Ķ7 ~P#@X8JYMzw&~fb,eKj ރ>l[fg٩H)~ 3SX%a5V9K$ endstream endobj 41 0 obj << /Length 4071 /Filter /FlateDecode >> stream x^Mܶ+xqi|RTqUvtKm)#<ICbݡSRFΒfE7ݫNt/?QFodx(.'髟two^_n;)?ӫ_~ӯrkƿ @F%eHaLp*XKE[x~x>}gAh>EDw{V:d#& lunzr"Rޣ⪒)G >ahrQ,EpNDY3o{ o4W 7FKC 㳦+E&vHXBUR xXYOusa_ɦwbi&{:afl\1,ZujᙈmWSʣ=$tĬێV WJ)??GQހ&[7,odFNn4#LIhYa(aRDU$;GУ` rWщ=# j5ӱ1kmwb zK&aeie:xK[x*)LcOm4jdPA23w'!ͳ` N3 ?ɿ]/xyK*.U9T ̣U:xfB.`(f _)ڮ}P;WeNŹ3ާY=3ȠbTK ÅU ,BmIJ\峝7pɬ_ݾ|aH}u;^ 5Qx ^K@LU!EHKJohBKlTpȷ\ 1DZ 7lcvð/^\<ӽ9dS ^u _/=|rMٟ~o?YK\crt"6"ˁ#ēG}~q1㿄_ PO_Nv_'/o?_V~jId5t &hx7xՃOYgߦ~`ͳ9<8Z`y }njDh&)us&W)-~=7?qw#DG'o^?C/׏j1~ĦOXT~z -Z˲/od~1cTo:7@Ix&.|[M6c_[Rw¯hbq9gӊ+WQyb])Fc!*rəX}*2 RuZ\"9FcϬB笖b5e-)_qsJC~j35codSuH^rfLRB9E16IObGm9VPC3?Z iu 7rRi̫Pe9rGggRAFq gfΤ|,9 ==4_Q+T?Al2RACџ2L+LkPEYTI/f NaəSI!o=SNBnF!0jݼyYG"D*89ש@ekQPzo) U>t:WJ91PF9U`7俘R 7(^Y4yTZ**IaZRy Ss7R ?,$^-z6ʔ2@**mLiWKE6̞Ra mXHRQu[/p7^D%zɨwgCZ 맛hz%DG*4҉I< _/0F:Ued4yM -$F|d6vdo!ִoYJTUedK<6--\Njɔ ;4(3B2`C>UK2^2 ElYI&*dܪT5%S,2.-$ÏO0um_/-YYJ t;M zQj[HF%(޳O)L,M$+qx!d3^2J+mk o!sJ*'t_rcKFH#EYƛHF+F貒lK0 K-%xT-h9\'e|8ȶ#Dz*=_-lC8*[HFeF2 2%TW_0M$clKFg!ߨ3B2<_+ @2<5 Xno"n^Z뗩tzɸuS_ҥdo!>|}q \I&#̩ g?%Eߨ3B2V_<3dgr~#B2J)A\>,8s:bEgdrIe|dB77#]R*fdSO_/tBq@ ,3YM )RDp:B:9 'uEeyYG8R'=t "}sipXr~,ws8QXM54L~aZq/zZWeV y@|`b8UY 涚aWeWȠ8S"ce=3سRTi1koY[Z\5?G[>,iSXǂ(LH,tJ)v:1elcYe5%9lt>5NXǰ$`6 )egmgDo;g휵)g>29e햵eq Z:oݲ6,JY(c=606$I-k笍9 _5ZFa:}Tφll"FeYH$,융YY.nY;gmYt i;g휵)g`蜳[nY[-v-kS3RJ9=mݲ.,,(Io_u_ =wS9Qӝb(>1דw =ކ>Z>@sE6yxRIZIT0hel ʆfVEQ>J{X~w!⪒tt6Sr)=+fsf5Ǔ\@f|.=)zH._V B9ɹ/ yR6ҩ5Y*IuR4V)4Pz-b+[<,iSXfw{Go^rKgOxC endstream endobj 44 0 obj << /Length 1830 /Filter /FlateDecode >> stream x^Ko6h7"$M=-&N8㐯]E`>1mDg5cԕ2dǫ/>O|Q6k;^8ӣע;qF-U]}ӻ%Gכ(S:\/ •a?+3XLRh-N]Cv:%ItXG}*T^;XSFbJ WֆZ1(tA8)^ku2)!nTc=R3+0`c1ږ1mJmh!ī6b{')n򜵇Uh1:&|Qݒ:bFDF8(1)i,;WϿ _7i >L!;(l9R6bs%m&++@3sЂYF_FEY-0:x JDO8/Z OܭKF\D)%ݛpWU7*>ΧTz 7H"Val[WG#FF$8hqiF+5s:: |jQgņȒ eC@ɞ H|n 3YcR3.`|N]bDsk#9[R e91 hiؓKk[r5eI]^?//AoevjwJȾv<$\5s'1dr#D9? OSc5TNrw|O'>yl3c&{''aTs5vӫ~E{YUv_Ni]$5ESk{.rJbztu|H/ѿ3X TH[?2s@zCǁJLIvM9oT%yޒ֜,I"yE&"aM$ٸ\9X 숇lH#ИUwF%hĵl5 ŠmM#3}QMu]a?N!"+, XbX%SVGnrFm:p+q+-<T180y0u1Yl}EP Zl@NB8Z6K865<Y d d,E|!Yw d d팬;dvEut: yIg𼀰7YY{#Z85/g~@ YY;#+;/1 d o7WZ|;lְY,J]d d팬)oO>k,P()3gجaddV6:̿5=Ukb֧6N~ se|iࠫWhX>tyi]ۋSÇ\nڦZO9Jۺ:b^KC]6) v 2~U2KqZ Tb_N與I#7v6l8ֱ)-<zbѨ=1 endstream endobj 48 0 obj << /Length 1972 /Filter /FlateDecode >> stream x^ɒ5p%؁#8s#8Fx_/K꩞rP>1jMVfTnjg^gLzsOOojxyv=|ͣ'wHs`\J~ѼۻW6?-"!|"Zye)fŻ䊑fˡEsrܰ8^SjRjF"OgM)9kٛx !UZ\h[M>,%zhCŕ¾ \=8EF <Xj5XE*՜]cmفeKNTm)+9V"їlNjAl..J3aqߗ\M+;>ϦW_Sh?G ̺5՟θٛ)lK⍛&lkp^ 6rrPb-{lSR#sՖ~[Z#Sj!&lH9 !(aͯwonAUA7ܚh^ԣeZ! ˶>I6IpȟGa_f&찍IR4T&L,MV8wxƲCˮ}g#XGbnr^QHigr!+&s>%ҤX Isw$P=ɟܭ%Y#U5ڈ}$:5P=QrjQAEl\CBR@_-uJ# %jdΕJq'hVO3h"Y(B5,@_svkpb`k}v9Y iV钖eyKj11PCzK掋G"-GKy^ʵΕ\Zn{ {xEV xb^-\]_!b^=Z:;6dn_"_)&wF<2q\Qa X,D=EWc9~o7SBo ǽ47 \f{+T/O;ZkIP/F\rֆYE}2ݿI>C d>r㧉zGGl-EM&>>o~`8#v(q@B  >hODEI~~3L z4%RudҴ+."ZOW.%EԔNA}6ԞSl=Lhn XlQ3p35]QwDjQ'v4Ʉ;=ZH=^3ن?#ļ#QsZ44KKlE-]vEE Of0/eV̚vEEhC(2p!Mj3CSϨL0$wGԣİ*}RuBA}Vԙa\GF/GɖD Zj MZgk&PGY+rpp:j"jѡz9&[Q35liO ) ٸPHzd+J${VbЄ~לy7jzFf 5XH&;zQlh&j=EH sLf_D9(575N.kƆ1@=^3نQ1zQiڜg:Ym%[#5M9&[Qk%O'. MnكOsCGgk&[QqZ ``"a8~hs-f N=^3ن@$e\Q-rKcʅ@ sLI\\|\1sb`_D4+zFf 5~(~E˜ꐪRM= <ֲBgk&Qyl3s"AIO#7\2ˤ$ӰL F+77`MsA:լؚ醬 u7nR endstream endobj 52 0 obj << /Length 1387 /Filter /FlateDecode >> stream x^XK5cr.#C"`o &(8UNfg@Qpʮf]הg eN ۟-|_NrQ)r -?.tp2 ߤw޽zKܿM~B4A_^;DhϥRO:r&K@v4xX;=ժnŒ\ JVehHT2WjR툸iK8+; jԀnji  iVdmFӽfRW;͓HkMjґpЯ*):(NEG &b4&ԩQ!XӪ)[^!<u f4=ΤٛJ8iۧY]Rk[ 851g,QrY(*٤5O` yvuŕ)ѤI lT:KҚV#_D?o(}0a4V^βz7Yv\L֚ӽP5̻儡d4BU]>d v9V72ʸ`2Ӽ?ShXb9@Ou;.{g?@ӬYXf ho4%@l@m*\EQ i 3Rtb` ,ЃZ:56jѦZf7^xOQe1M(1f$1`Tr~!v1`"z5&vGD`[@sFgcTlQ5 $*{O"X6q:a2TTR7]Cdu@GvUACo*^d t@-[<i AO}[ojicDzcW޲ endstream endobj 54 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 55 0 R /Length 405 /Filter /FlateDecode >> stream x^TKr1 ڰUkY\ UbAr2PoR!,>zC2qw٭vK6.=G Tem`} /w p~Co&c6:S.gmb)Cy@ᯘg`xO&-Ѵg0RT%7\gԬ)ۄO&taGl;6zY+67gs:ֶa0;6:nbЪ>T0JD T LKѥHPH˾ZMȚFC8*s%!`b‘]CcRJãʮPOaAfY0 r*gǞRO#KzRBB$xo')&3v3-x> stream x^WKoEϯ Gw|HB""q qAC>_LYاx5ޚ] ׁˉb ˣHϟ^N(rX^ح))$M;\ͻmh÷b9!Ur~?'-j"L=KI@6Y kZ+LRZb WEir ҰbLkLF9[ZGNY ZO^Xm($)gZ[Z%R͙h6N;sU%LQ̅D[TU_U@_޽݄ܢI<ʶ@#+W~[TՌOH˰#}PN3G-V`y6rs'6reCa sZVaݲ{٘12Qi^M6gkW?1m@} 4*V0f}/uPl]-=/| H 5 T+Z]iz,tuGBx`,kcȊ&E^ $kMs"}z'o;ӳK81h8ٕQg*8<V?7 UkqrJEKtNw`g9W;-ﴺ?_W4 endstream endobj 53 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 59 0 obj << /Type /Metadata /Subtype /XML /Length 2335 >> stream application/pdf generic-talk-15min-45min generic-talk-15min-45min 2010.02.09 16:42 www.pragma-ade.com 2010.02.08 19:42 generic-talk-15min-45min.2010-02-09T16:42:51+01:00 This is LuaTeX, Version beta-0.50.0-2009122423 (Web2C 2009) kpathsea version 5.0.0 2010-02-09T16:42:51+01:00 ConTeXt - 2010.02.08 19:42 2010-02-09T16:42:51+01:00 2010-02-09T16:42:51+01:00 LuaTeX-0.50.0 False uuid:627a1b94-45e3-aaa0-ce05-a42b0c7e0cc1 uuid:309bf1bf-4502-a06a-f6d2-761bfcf7ee21 endstream endobj 62 0 obj << /Length 1251 /Filter /FlateDecode >> stream x^XKo7 ϯХG+$RRQ=nbqzyI›Cjȏor8r/+ u_z1B18wó?WR;vw.77C(Dd͟ ="P?#1VK+i@>gΕ:ДpʸZI>\bq)r w=w!Hqg!Uq1ZuCIН gv2iJ=VѦVTTZ`,vdkK)E6K $h%bS#7rgƵ3jCq@9iռ}0[/)?_DWǬy@CìsR>5BlGU<nORL犨Ƨ̙Or/Qjՠ}BE.$C4 ?w\0ʕ b5"3*$62 ){N*4;P N&#Y1+eRA8* dFFq,?5˵=eN]@Q} (o]m\#wEALHűHVv֭ u`mHTFȒk5RcLV|%wzq%ŠѵFcJq} %+Z*f5 #q -%,4:b?4rgƵlCBCyvFJ-]Wk|يps&3.(bKVC0lIʬ ON2n\ %ɩF-q kGqV em K[ Rwtz]0z9p2~ݽp<\޼@g#(>= 9`I%DQ* 8O cԧ z[qQ`ͪA0n)2aquU^,˘`'m`KN p!dg,Pdh CkR'g{m.zjse'"Necچ']ƀ]ңՍjPZ~:ၺIW<tTS@3k!x(9,V^yg&w o\x0iۅSE@JV03?wztlKHx WKk=RSg-x/ΘZ^mtY Գڻ=eZeѲoƚO-_0bSe_$, endstream endobj 65 0 obj << /Subtype /CIDFontType0C /Length 1740 /Filter /FlateDecode >> stream x^uU PS~Ҹ}{k!VY ( kbb$A@D"AQ"*?BeYY\e(VDSlF3eٺN׭mg9;}ayw{{99ߙc"Zr*9a]Bbj޸>,$Y3x.[aVb9ڋ DR/~ԻW*G*b᭾yp) _?(]QIWc/ jm_/QّMSYxhXh̠/0aa~79ZĨ\:>N AY=f uy4G1t1|[\h|+N+֠1F&.2TqSXVo49!!4mdd*T(L!_'1*tn2*=^$V4E'n~5lu 5շ64HkGsa*z,k?|2h=aj-吊yflplǨ}G"w~m'툰Vx s r(3nu%\| Co2S!$*';褰~s1jHMo2d *KPМߌ+m.f|_pJlȼ >n:?GU 77#^]?i=}@.vw||4D `4-^7q<ߚyZX'o;?q8K5O}[@ǝ+WͨB?7bRK`S3h@R5w(|\|:0Md腀<ͅp}r}m|z ω.q/8<9nOȿpЛ١jmE3TM$fpeF3֧hx4]{b͠zPy$; 2l9,#?`gmze\m)Y⇈3sf8xR "g|Dbr{!Orr񙘬M/ɕ1{] G>t׮3.$C:gG"}G:1\PmCCAb%aD#yO99!܉K8 ]#j/=7vvNy[+t "t㍹C &vluƵI}< endstream endobj 67 0 obj << /Length 437 /Filter /FlateDecode >> stream x^Ak0C=8iC04I.u.9$+%lwXZ`<я"zPvt,4ssYhceWi_,_Mft{S`P}-ZQ_W?~OsQ&Q??D[t{m76<ؼk5 Ѩ Qx< wF>d•mO᛬0*87-T9X\ MΡkN)> \12Uݞ fwcP*hR+C)_nJO]Ъ(^PK獒5 q&+)іhh:!!s^yh+zhC.n"?PB'D2^nwٮv ~.;0a7|٨mW;{ʷ/Q[z endstream endobj 70 0 obj << /Subtype /CIDFontType0C /Length 1395 /Filter /FlateDecode >> stream x^mTkPWMQ1Vk A ,! M6VlBSZU@)X*d"hQPT֩s={3E<<E(2KSgk-1aYjԚGJ6ɈpGXeIggy C1/ N{lDnD`(m8(x BPd.¢BQuBJi])N2UT zϭc22U[TfHmLjnr,JbTLPB-lVXȜ2Hn6SFJkt\GI"9TNi"Baa$i(+bi^f2Ë9K%}/LJJIN6,6IEk F?,M7Wk'QAґ,DPH)RT98E|4z -TNm~lm03!dKJ⤮>;[Rq(/r:ʐ)2>F$UyxMϥow-[;DYRs'k;sq(w n]g'l!XE> )@ZI 0%2t>S `9_W8[ 7 I\ﰱ ad q8aK?x~Xl9.zh| Ȳ l+OW,*-oszmSa&ja(軻ןƀ&"$1IuOJ;흇]\gsv 5.?}Ϫtu0yL ~|sNW 9Jvb9mɄE _loTOpM@o>tDŽ;Y܆^C?,*٥jH#–:0 SZ=?>uSc ?Y*0r xm3q؛𱞱[k5=zG w > stream x^}Mk0@zp-mB0$i6a٫#X2}ȿHS(hf^ͼ.0stV`~-j6<U7D6sY#rlaΞ3;Jδ8uI+<*F/n~nfSa#=y@"p[2z=6ZMkX|~Rii/vu͒H% 5QO8?7-V. [, UڳVU-RJ ];YĒɟBGj?U?-I$]a$6u!lA[zRZ~Pu(C:%5$ $DSiY&t(0 h!28*e8+7;}Mu(MFGo'r endstream endobj 75 0 obj << /Subtype /CIDFontType0C /Length 3948 /Filter /FlateDecode >> stream x^uX XW&(3qk-UAUB a'H lRP,W Z(Z~`=sLrNΜ|adDx< >_8(")zItlzb7X#d8X'MsS'BYѰ#9,d x(80N. (GXӉ777vAJ`cg*9K&u$u""Te4")J*.2qmJ$UDE$HU1hu4VJONF*TRNH'EEiqRARoURtQ|dtRjZ*Mƥ%;ڦڨԱ1MmHT[C?k`E^A^6ikҤ1*4*:-">1?qRH$A k†%lbH8s&2XLr"XBr" DMqD<@(Db5L4""rx-aOVň xf<^;(QQ?FB#OI2 ʡ?g3n6_D5llAem&V&kMi0π&;Wý-P^Fw2''ႠAԘ)أuœj_cS.=W Ӯm+ "t|S߳Zu~(B_: ЌmH1S~[X*,k45LVRt~.rU{0{g}!kUNkiacyDR. R`5#ZxQVq7o@ºZ 9Q W3Bsn GYS(lu ś&e&_?1WOWlXknIwUscyG7dʪ\]X,6.NT*Α29Kig#9nwӛE>kk JO'K;'mmSgśo˗,^^uF<)/Ld`\CcE]k Ǧf>,,;:hyN`4qMAaa&rcw2#y0 @v7QH k /<5Zn~)nݢ8o ]D튡\"1_O44!F9Y$&3M1^~ r\++R\STѺochkOY-9 ՂHKݿPm'0Y=ЂS "HK+1zZdtvJ ӆٽugZK $DTa$6!\ro^)|K&0_\(T4SZ1Z*6RX_Ќs7)ᓮl^s/ܫ'eqĹH5߬ffg{ŔVI MIJI F"$q]XuG[D13߬\ߵ}6{:ɽCrwɪ}4,rT gDbBU_RO W Nإ"M}"RmHhd3h ORO╉ %m]z^x*t|۟e0p3S؈C3aʐycH vmXN[!ʔ lAp7^BQ$.L J#44Ybga Tqu|n\@BYn|#{2gd:=Q (VEC>`5A&!1LOWU&]0>ԝ}!GOzlCXf>73BߧNӠh fc1@coRcl Ͷ# -;o X6q>Yq `,$zN+23u j.0G*kjѯI+ قM$v6^8υWbAa<4AQ(-́0!q-F!XWL `"HEwTݏd1H>}ƢfQh Fo`o&<+BCM 6ϹXqz";fH(\~h\ ^Yf`pzZ y+lQ `Fm Z~Zx7Ā0;sl]Pݠ_>~NrJ<ɬ߭)'0z|[i>ŀ#ү8cVfq?,::H 3~57]] 1k(nO~ !Ķ:bՇ7\6xrBby"8x;/? 8_ua]kΣҼqU `_;}i&ۙ ~  ~Q Q-wwaƋcNn+bjUb+f v!oj4Y&8<=^1Ԧu$.l砺,fxר9^;l/wiK'x{e',RPFY9(}#y(0t?Zp.8~ 0rF7f>xF>)m*+494GNϰ~}"^`T_/'gç' MaAs⃁5JfLa*-gg |.@$޵$7gy z;$dîE <;\CunW4CGzK=OOHFѐH  >;̪eã⵭dFr9z"܂ZD_>DT@{Wn3®:W鳟9W{dбj{Wsj)yH)-}j??ݜMؿ_a~]j|?>[/48ͯFws~,iK-:Z.x5=ǎ|_p(7 \g2e_\W*ktOW\g/Y"`y;vƮl=Y^%H w9ȵ!r>z7AQ}뢺D׻> stream x^n@ $r`cIEMBíj ھ;;HUQ|N}yKړꝚ39zewg+QALԛZ_l]w+o9Kb~?}~M4MtN++MXFݐQ"LSVz Jl;lkE J]7{Pe:gGeKy77P6Hw`k 2>'Dx*> stream x^Yms _~:gw\d<.n)}FU$v)Jk^2Ib`R STbI2&?$Z(R!%qIJ+}V2`>$d$5XuqSہ(I)#RZGABbx @>_Bl %!&JBYP;F!A@B;KI!v WB&`>!,ъJFZ;Cfh:LPB(PA#*C$?{FlL1^[n6"xWgJvଘeo 4gWchy7W$_Py/yh=8}ו8vp|9| C5|0ppІ"o [yorMpΜ0eIe3+qH__쨶9<P|hnhy[vTMߋPYn 2 ǭo&!! "ZN,~xSM N-Gz m$trɖDN 1S6`qc  ث:_V֟YüE )B'©Bv#T N%9N?h\ T\j;oۣ">$>kۍgqPMC m"&lr,$xE32T#1 4a!̘oYr=I:VF"C KNX4'{73!8XNM(11./o_~[%/&13l$U O0׼W M8&ƾ oݭ(zLo7 )Ha{p(!=rEgWUۋñf~sHeA{:|cmɆ8gJbڎ`,"GUWSV$ɓ}l܉]e3\:WOkU_/y (bǏ;2Ov62a1}Ɵhz|o| F|!_BD+]}w"{U:K4 ~~Inp۰Ӈ|R TH$i? hFNzքcɐ"kO8΍YIy --qzc|M~+!ar1|(sy_ӷjo[E z|nF, z?ҜKZɃ _t]6WkJwpƇڰZ=G[s-S$<*ou9x7Gi endstream endobj 83 0 obj << /Type /XRef /Index [0 84] /Size 84 /W [1 3 1] /Root 81 0 R /Info 82 0 R /ID [<0C55808EDCAA0A39C934A4E70C54BFE1> <0C55808EDCAA0A39C934A4E70C54BFE1>] /Length 247 /Filter /FlateDecode >> stream x^%лJqᙳkM_%w1 `!XX ־bk%XۉMJ}lqg|9lTz),T?מBKgSlɝ3!7DJ_΢Ū3/ b?x7$JDԹ&bh1&F#&8qxl)1Iz7-f q=תsE9ߧjb\uFl0^۞ m߹?ݺ`|d|w> stream x^u[O1+*o "QrY! ݆/ Y;$IsfgF)r ,IAU%s"3a7ߣN[ŀ k]ܷ̫bFrKЍ2gvz߃?|=F~ ԫ2f}kZZ xM2꧴]crRQE4-ݻ3I.IWTOrT/zN27n2W@D&HV!y2'Q~ʈI>_k>kG[r^PaG鎶2c,upbolz endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 12 0 R /Length 131 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUegaԥg'ҁ\t w.C":_.C,N(243601R$Ah*=C!@(w@Lph4 endstream endobj 20 0 obj << /Length 652 /Filter /FlateDecode >> stream x^TMo1Wxl? ҢJ-D@ 4_m&i%>ڛ&$zl{ L ERV ,O0ޮgw{gͦ`45ŠIN'$JlnEGt QI(elthi%#x[&X N_MQ+< &:2qnuj!,n:PuzƔ=cgh?Z,w{ǵؓksW^jDu#fqk綾rSs3"ɝ9r>/gFy9a0kZ(G(r endstream endobj 28 0 obj << /Length 462 /Filter /FlateDecode >> stream x^Tj1}WK~}Ji v!I /~GZjtFҙhA@ 8J΍A64-73?-ZauYt+0H\qgMҙUf#(A-'KhZ\W_ LF@XPp1ރQpPw@ƷdKO]ܰϋ*{xHtOB>/ExtGState << /R7 31 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 32 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 39 0 obj << /Length 1581 /Filter /FlateDecode >> stream x^ݛmo6S̀y6`V@e 6iڴ$-Я?eIe'=˳}zǟ'% %TJ Jo>w/o.ߝ xuuu[݊^~tqw-?VH~`ՁUB굤}⪲Ko]A*Wk}U!ɳ^|9-0&HMSDD>wz\UkuƄEc,]lwO,\nh!.so*heWA=ݗ5ZepY"c6JӉ2ݲhr֘eϪ_Ih- $͘D^S^ş_.':{Z|vV4[gVf/.S6Gi%(tt׺ʹuCH6y}໼.~ݝWǽJ̻i'R7kvu d2W _$~L}D\|UĸҬimpa}a2~&0sA kq3 nF% A:㴇Y3753N V+1c΋YleX(I}P}3T >82bZSEhlYhQ;r}k 3<9ń;A6[!Hpޑpq#<8@x>)G0lBS#{tx8zVxO ugiYci*:>iWO|V|J{|dOlś)ZiXxƧX|j4F4lM'$\j·4.4}%#Z=*UG )']PʚeD xHH2ɝCq)v430Z@0¼T.0u:oǩ<ֺd#EY> KXTEj YB_RZ  BhN쭤wc22alu.8c>|KNM_8pB4kBn~S| Ny1磻Ps'\9,%vJNHTR~8G1- B #FshqS=mO+M)ƪ+kÈFStrBA-s)Fr 4˜(A8z}a uV`)]GEYS+*crh禮s)(R}*q NH`q*  89ں(*0,w̩ʩ}S\p*:D ʥFSuފS&9!> LeҌj^.9eP]DFaf,N5*:jGFӹ"'#֌́rY65}T.v>\:wB)p_}ۣE3PbS̀> stream x^\]o}_5{Y-P  @Cӏqlc?ٝJVVKQVݙ9$QQo,^«6zq|Azͻo^[Won6WooՋ/q6˟$uY9.6>G}>).Gw_k:Q%6FqAkkc|Q F:nu18t5F!ϯ1^f5tr\_jZ?Z}1pߥ0iN_nx,9 c}X2ǀEU߈/4}`ݯyYnr[<ߜŒU I_V)\V5篿.d͟?o/d}p6x_`\k)h8*& ru{eBP^ޕ˿ yQ>^x_n^-;#o}?`:ofMdC{0Ǖn2x _/ӏ2л2np]xϴ˭4/ݚizQ*Z ?V:9x_Q]ղpNr b#'R SnCM>y6jK64Fcz1&KqYhm9z ǗIȤ̦H; ׋*BM{-#_}E߁'>ͳ)y%lԤLv7ܓdtsdVO(ɀB cW$ub(D0I; S.L.}c.]>XNv'&֦|>mGӞ1|C[Q} Iä8iJNQd=gĔj eM!Z*?єm {<2'O߻H5]8XʱYT S7p7r%SOq:UPVzeHYG#M7N ~Ny8A^e"{[h-DrL8guL~X49W:ŹD'>͵N>t`0El~S>B"̜(6!)f` S G"22%εw_RmZn;hPv(8W:SZNq:Ul-ʞ"Y֌|d. *t^wЩDaQ=6޳=Lq"d] je7rSOQ:&'֩ Sf4k`(@ LB@==x=+heĈݟg5UݳN]~_8uΕN9 N֩|N6|N:!hcSSq:B1#=5ʈSeO \TBu^(F֩|Nb')|N1")S#3(S{n?N \UM٠3rQ˦Nq:%eMaGlQO:ݱyT_o%CCqqMIp2?A?+ GUߑuzķYݲ`OT.L|-j<IiR=fnj>gN)?T|h-ZG1Yǣ,ʹ:TlFY6́V_ z w%_a%VI]ZnV0wbiT*B9]N܈5+G<%.JfݬbQ[x+t!" b%p7ѩZ&'Vq̈́+Vw&joPJxa)H<EG3"Y<"iy ڈ]|/5.p?/ Lr[|/5!ha^~^P + ؛f!Vx?e5V2_3& m2arhGg% C  9_B|n @+.j'eY#m֥Z`}Bg9%yL~fdB)#as:$MumfPf} ئYb;dgO+q1I`C4뚙̰[L` 7 "fJ&?XW{Yb8 ͆akB%"pĭY#r!YjgxMmO< >܄=όI,fx`S8:YaB7> > SmXQ~f )|3XQ734x?́h[Y𴴎Bkm O3g`+uӆuP+;/l}|t Ol9S6uDGyVf .aD욙ЎEأ)|3$Dv;6h5 NNv k],&x?3ƅ[KO 2soa&x?3D$g9|3XQ%U¦oyTзNG`EaN6g!N`E1]ϙ̐ޜxX7s&fH&6a5vZZv'Ҷ endstream endobj 56 0 obj << /Length 3432 /Filter /FlateDecode >> stream x^]o+xF#z?rY5 hEӦ,ǖ3jQ`e"1.^=.=#\Ns3]i6.MVn23[v!?$y]nt(J3_u&CH &kT(]dr},FgBَopkN43! 8z CknA`ԠgqƋ!*fk[#hT j v? `A߀Uaj,Ǥʫ`/r9OQSwb8e:iNdP*)7'r7CjeBҧ=Y>P^uOKNO'Ol'p t }:}GSє!yOnO'yRvO>E; =ӧVgLttWwk3Y\pq>5c\S>Jd<ՑER BIf)Q~x *ʴqςEl*uWm3Yԃ@~y(28Sylu GJfN5(Ne`E^*(d?K~6h+U.{|:USVc~js.tJǴh~ԩ|N)dq~SB,JՋu esNsS T/sS8JNH]NeN)~dLy@Al|F|+{淵7Q`fN)v]$܏BtJ''ĊR N3l,u*%->A\bo#o~ޟ" tQiVn/Ene e(ܩs.t0 [F?uʥN>t '$`t*-tlDNe`rS^NW(?oYPfP+B& {.ՌrS(2 JxҊjY^Le:eG 4&%{aN)1j?lt"kJ!gl~_3es>NrwtN6+ާNUKBw7 %$1A>8"d= ϿL GeߐUz$;V Ƒ8/U=dnQP'(ͫh)I.eЕVqHOꡪ-E(F2TX * nIΥ!g3fx5+žT4{ ܀""آ&լӢXe0PǩY]լpwki?ngb`v*ëYuJ-#5KVn y :)Ւ fR3܀uCγ `լR\j/ X9\Ga<ń V^J ?XAG-o S IU(z^ fV:X]>2ހWYW2$K^ok)M^Ks+r[x ^59QiaP Q_o o/mEesԤU2-dHl__όz3_q›0F$>z2P"b<'3Jc nk̔)):)-BJq宂_LZ8,S2ނDe$y,)pu2ނX,y4_LӾе<>XPYd3x fF:Hƌg˨BLF|]2zfoR7aHzfA@[64+fo \/;2p3:, RULe|=3=-x:;MxfĹSq_LA]:-L ѾARj+__g3#2:T_reqĭ`%0t ޤY:hH;4e^@԰`y竀-[\Vq޽skZ숆ɎRݫ;6Im!k}m¾ȎČ~;Zck6 af_}/_hEPŏshŏ6G kc^2W7ڞ-8owhTE=<Ke_M=´oľhA_Iv|l|Td=7j_WZKXq"j '\kXn5=M(Xmɽ*;)x яߗ/O:g& ^xI:^0׬JC$CK0E@Фj XcZ> 0"-zXط!P2ɪ xE #5,?Km>*M~m rj[pƳzS`bʟ?J9p*K5Gw|~%yǪugVLz  Ilp1a˰Cq>SIO/w߽z}KUOC~O endstream endobj 63 0 obj << /Length 1248 /Filter /FlateDecode >> stream x^[Mo6WR>̐CǢAf&uv W5zu H4>>(љs@:u2s}`Oo/>n w7pg~=l*?.PAdkK9ǜr1hsjwsc^߾ 1?s gOV(Fʈ(K3/Wy.P]56~h9cyO7Y`W#mm jϙ[D/̇=R<:`ǞsM8 Lu{(h̎*{F FXcGGfoi2#9٬>E6|e?77sd8Wg_`xnDhBh%Fy@>IHdN7[;ԉ l9撸p"Øm`e,)D_{Uc`ӊ+0׌GelUaFM7MѪa;4f-2Ҥ2#`6E_P5ZpS-X"Ac@۸m*bCSmmMײ'v0onjS9 Ft~զ5:E]rbkĜ$ίίua'v/U 95WXAh@W:PkߏqZ FZeP篞V_fMk92;VW,cָqc jV::VN!aV'X'#R=Uz`AGP 33^q N+k/K*(F~B,xj2Ɠ0=V H Y&RvY~ ޱr`t!sV#78H xl=iTej}f!LGS^@zpc0B_X$Z"ӨJ KМel&`uԨʟXP3;@f~> T " 2kYkS@ Pa5D3۸maCSimMעRd 70 endstream endobj 71 0 obj << /Length 1398 /Filter /FlateDecode >> stream x^YKo7@}͙!dA[6>\ױbHTvXIhf̍q#<:繾m?+C;ǻ{0\~|xg:*?)k0%y$KfۜFslAsHFN\67;sg_߿]S0Ok+Ul93'+#eh%7ȦY6|[mt9Vhٮ״9n5=]֢ksϮ`Z^w:p ~CAcv}p7zZ~hS%fٽ135_i2Ň'sY}6-f5}Xիiӽz?a \%("ѱrm.}Eǫ셈Tq[_o.I|Տ3NU:{3e&-zS~gûEo[|d3.7)ݫ~?Ewz$s3:[)Kj}P!m !>1)Az{]mED; [%S"8Xd ԛ>:d râ{&KAS ǘr6׺e:> stream x^UMo1Wx<"qPRZ)YOh ]?߼ p@GB{˛;8_\|;;yn-ޝua{tӔJJ X x\sz Q;c/Gٛ(pwGd"5c'${Dq ^x:;Aײ)k6WQ=͸R6[uL\Å{+GInv:jFRTIXm;/,[cc{g׵5FD_sF.0<<:9_9U#>==ֳCrܑ.vVa!]}/DH& @ҺRquoFyR6?H՛6\/˽X}Vm6YܨYLjܤȣZQi-tŵt]GHZ+4;hzfUɭK}T)f/bT$꼍gPĢ},g0h$YE)g+g32h6„&zXä PRCs-.c**ԬE]'3XX׭+f5sU1ѓa`ju{/"E*YZpjiقI-u7-YT&DYZɗĕm? 0CREIDzO-W5XX9%'+`u l5aM8Y=h0Vgl%xj> endstream endobj 87 0 obj << /Length 562 /Filter /FlateDecode >> stream x^uT]R1}ﯘR:FݸFQDeY`^Ŀm/pdnL pÐ\-C!* fwp?_je[|>?w5 cK=Fy)D@FrL鸴4~nuِl)qyC9: 744h^Hu wU,0Da\L iIJ‡tj$rWt\P_.]Ext6fQ=ijyPVM\D[TU0RI] 1b2qB]ZƨtO^Z+'}CSL3$rEi.2Slɓ>T4c$={~疱0x7 endstream endobj 80 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 96 0 obj << /Length 707 /Filter /FlateDecode >> stream x^VKoA A%:cg#V**PāڦmIݙ}D@@"y7썄1H8,BJF̗0^_,'( .E*V0x\0/08&gES{#JzgZBYaΖzлˬ /?ONZK- %F0"g e:Y\*39E#EpTcQJ,Lv iΑ6jRM!dpS[  ڕDƃ\-"3a18@6bax9LVPNR:S%Qv' ~; ׋G1zB & 2҂]c|1.SsGrX5 "u`W&,EХ PIRi٪}1GQs`NP/jxw8Әd^E1mϣ1K("t/RMUe6pz7؆[|uu3n]OFuͮRŝ$P8MOk>*u>4nEFO4 N5WXcһC^BILخ( ǣ͔ 'D)yJٲAdʴ7XاlreklRs"Z endstream endobj 99 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 106 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 109 0 obj << /Subtype /CIDFontType0C /Length 1363 /Filter /FlateDecode >> stream x^uT LSW!\gzޣN<|0`Db)Hi/P2J ٔ"y 7 Qd/3ݲ,Y?99?1>q|"y݆$E"!EmK<ŲX?b)qy>Di'(/a^5śopJK>#Zya86ao FiM\mz[a4(pE\hgl 800dR z6jA$HTi`2ڐLY@lyVbStz+(0Yr[2Zg2`1`mj Ě6k V:&&K, ;Ye{DJG(Sb]6e-cS VaGV,;l)& Ă`,[t! g< -RdGx(<BNފ[!?)NN#+B\x :pjUoqŦ~dXr:*j o\3mSѥeҽeCŸBTa"}w_'ጇJ{H'Ε6c3a$gÃ1.HU(r F Jto2^ur\pe7S^|&kDA MLum՛jfGkT=tN@?UZO™?޴i'\ց"zBQEB{b B[фx} Կi\꩞/ߌVGna]B*̬ GgN>zq6EFdmo*}5UtE\ҵ翾uGPAxcvئ 3;C!ޝhuZGmI.IK#:w"GKdd)3ؐ&]n.n#~D2"BnCx:]h9}ol'}c}>kfΒ]SP7;]_ 7qUh]9psHt8*.UE5C_kl endstream endobj 111 0 obj << /Length 361 /Filter /FlateDecode >> stream x^R]k0}ϯ{(+ZjruM$~IZ[+D{9GGO{*Co>pFuڥ5֊uvȑfGX-W:p,YqPXys`|/o{z|z]&y',2gіFȀ@%L)fUl†(r!65NpTeIߴX2W$ 7D޹9j! ?h0IW%Z?@IHi۞bnv50S:eSY M 4pcWV೥S:> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 116 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 120 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:43)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204358-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 2 0 obj << /Type /ObjStm /N 95 /First 757 /Length 2226 /Filter /FlateDecode >> stream x^oSHS̽FF[ ^xZ;cqs|Ȏ!ppK#i{f駵 Q.UDYeFQZQWGʺPX%&Uڪ4NNUf$S:|6RQDD(mbBpԷ$E 4QN)󄫋1:G UM5FDiС4MX N/c Q"S*j$\`,zY+&EEglՍs e)+Dg,#f*6(T!*M J%L$A /:Gt#R)^h40qp%% =UlURߥJDe!R/M%qbHx(̫Cttpe g_Q 3Dh:!ȈB WwFe9EIMS'fjFոiD7'Ű:ѴPsY}7봖ެc{MjL 0Nt5 >L#WEX9ir:c̓p\NQF㇍ɮ9w٠-4|Ӿ=ׯVO;—춋 ΋u$b|+g7 V;GbzZEz]yj }gn(3^AT/ڱxNݱw슾o޴[ԫ#OQf\F?ajGE..qW,ثݟ0LB)DվKZob{}j'j\4ߜ M>򒂝A3~ȾL:yMt>Fprz|s  7~F׏>|^s3٭0[Ǻmag>Nxf=%OǾGTW 9'ʠ-;Ku>|0._8Z_YT8X"#O5)[yQ՟}M`j/4 <@>˗@@"mB7QJK ` {8B!0a!}/ 2Oغ7@(!~-\Uyo$\)@Tp8#xʯH¸`:+AA*8i}!%X٥rdT5^*B\/ ]9cp_MkVyk׋BWg4qYKea˰·Ox^wYyT{xBy ;C%Of"yBWӺ۔)؉4.̥*\yTB*˃dBXNw7$S D&AVǚr9Z.ݢ뗣|_G?;?o踝::y?k ú7ȯ*LV R "Gu{<*%Ȃmѿ0!UȔRLA="#Iq;SCZN0-U'D P*8!?Yɇ풝Pzv^6l!Y*:ؕfl 4  xGOc`g -qx2]+p)'^1w͠e`! `H>l.fɶPn:^OeVOհc "tϐCRy"r r1XANeprjj9p$晐i79Gg;Ӱ $Ĥ}qu@ɬNm7b?};( xf/XIz@u]JT OIgC`Cv7>_~ǥq}lxF̉䴑3ws*m+.ԻLZrR;!/8]ŻL_X{0V ؆kNVy:zb}a(+i]";AƋyNP⑓FpؗjȆY.$ʅU*)Q3mX5κHYR endstream endobj 121 0 obj << /Type /XRef /Index [0 121] /Size 121 /W [1 3 1] /Root 119 0 R /Info 120 0 R /ID [ ] /Length 311 /Filter /FlateDecode >> stream x^%7NCA{`L&0&dM9*Z*@KDB,hY5%_oysq"N}q < *=8Pq~^_R r rU> stream x^Un1 S8?BB !@@hm:+c\nd.x4Oۥ[o:cNyd?vyr5Yxn/Wk/ud:{v_>d6P Žb%|%u,J5Q&3kv@"%Hv2Cx h#~CCh x?K{aT3;'Iz6 j[x .#fe .!bb4EP,6Bp1׬SqD2RqP"jA %.N&s 0\ q nGvƬdSk{vإL!%)z {M1og Qι :u4 :ȵ m:H`8u8!nwrR`>CW}iCp>&]ө19ܾ&:n - (..+9(r ~}r;1S16[엘>dv%fupȽQ|膥:98P*H9v+dW'^P-ʤLvope+Uuʷ)^-`a{OX}of*<(a,?* endstream endobj 7 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 8 0 R /Length 131 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUegjԥg'ҁ\t w.C":_.C,N(243601R$Ah*=C!@(w@Lp4 endstream endobj 12 0 obj << /Length 859 /Filter /FlateDecode >> stream x^VKs0 W =X\a e:-Pv/}$ev-{/Ŗ}TFw@Q4jcn~WR<]ێ-O 'kw~-u&(椽!u!TkPpY; 9ՠLdu.i!kNkƯ-O,9`_ݹ:D3֏OV'@NY4|VVĀĚW&*̠="zBbrQ9y0۠%9 GR`C^hĘZl"hY 0Z<6Ѱ#cl7C2%֕]V)ədU&I:2P}Cِ ֓"A)w^nV84A6qoXmφyZ;s3{:[oѪOkʵ/Z}NNfkCޖsss7 Q9Pՠ*F5.rc$cbP_R}!َM٥ pUc.6f~;oObvڰ@&tĺNreQ1> stream x^VKo1 WDM8Nb@B@E%`Sھ8I:[$~@R&|~o3pPRlBo~ݏ yrvqn=UCjܜY;1IQ9\c,µcPLe4ZCaє',&76?0m36ڵrp_׭yF_%1yZY`3Q&ڤCP=+',5H}b jهTSYC@x,LBEYBFtrQf/KFqRe$Gp#eITu]1#5k앷g @kY kS$A8X52]A͝Z8uCφe}ymq ~>9R?Okknu;N~-2Ny,7bn,sժ*:ĐCrm!!*AZ0 ؋`UKncNvG&o 3M MMm͜L7+w^E6V6PxKNTr5|yU˽}mmږnԏ_^MnȽ[!KjCΰƷv#B'A#3~=R;`+N$=2g, endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 16 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 17 0 R >>/ExtGState << /R7 18 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 19 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 22 0 obj << /Length 1784 /Filter /FlateDecode >> stream x^[ێE}$"NWuwu7B ! @Ĺ <9=ݍll+dϥO_NUW88#|:O\˓//?^yū77_qR,7ԗlKbbI6E)17l)BK1 e*ghzJwi WR; zڀvmw/3ya3L`s,fxg;!/d>J9$mz֑:Fwzɂ!9YJ׳+|*-FcT!x"nV3u+(]\ uc\fŢmR{QqGJdbjvW5jZ[ո+VWφ Zu9k|<>ϵZ=6<y(WM1X'p'+e NU\Yű9$1_#0 X&)e:hjr&& * $F ̐Eq ~W?Տ1o?[~}setN]|h=,/ݏ YDg Ur ,Ƨ3߁3קMƄ=ێtg>qŽݥ &#t>>){'D/6ۤ[6ק\[cӧTdjLi2M9C&c)OG!P@)|BU5<BV9B!=lَmg.Q#A5ꮶqn3aP'XiSO4hB96{ lwVx !y(¬!o$96zR[UNsS)B Ly3༗NClYN)| !ZHN5|gBf'd r//\o~XfX(GNM#JPD’9a:uөH({>n:*8N5:1י*mGשe|vj4gS Wvs(k:}pN5|Bܼ0 N)|gF%P} ٟB+,>#%:5"ǝuJN𡒋QM$yN>t'$<+| B]L@{c߇PY:)@)`ڢSqV:Pr-; j2ZN~:ĊDAPgS>N%Q-5Oq)\kTLVDZduշJ9(oL> stream x^K# A,ߏ H Y8]<ܶcbXRYTVcI JUu}P9|QʁW!QÛ7=|իmn12||/F$M:W0' vPe' ՜*FQk0*Mu B_aFXu_7 _og"_~xQi젵o`^038PgU!0XuJBj'1iP|tF #|TMsUT%{pwbɸ|d}ʊdt Z4 ,~S`ʨrVn8)?r㉒9V;A;yzU;7P5Zת+VixG<[yxI;ms_;mVO 5-{g3s3dJ%0(& q> bV}ބ!1(%%r9hdrq^ 8vsv?YwܧJpuTÕyL]4= g̐yEǏ/o|/t~Wxr]ϔC^|涟$*"ہGգ4Z1 rH p!)kbb|(7liY/j+_JWwsWGNg=`~c#j7N9L=akb j4p^?$*E8x8S'|yR'V$!7I81I&Ǟ&I@;>3O]˱#)og}F֧g\S>IAcbOOsSEݲЧ?_x.MifwхS7E\-\0OWtO'G0fm@Uxԛ쮭,?C9 o]Y\O] 8##634)Qsǥi54 W[2 U*TTvv> hǏ-^Y(=VsQ)2Ik7s%S7$߲-U=ti.uGAoQ9,]8-"a.ϬSJ>fu9SN WNs]:E~0BSN@TH`uLX{Cqt*z5İǘOF֩|Nߖթw)9'@9UG-YsxmBr~>mO)IgϺ#JOYZ/S9W>r4os>I!Z=U=taX*ujΓ2F]qqR:u@S8W:eIԴ1]=ՍrS4 ^x&Ce[HE0Uu' UT)Q~C,Qq1QI׌4 g"]igBԅB1˨TE%uȅFx5+ cfEU2\|x"&+ .CLjVTMiVx)n50YaP`fj;ÓJD6ʂUW$xKVrV2t լeΒhw`R/-jVQ$zU;"g7JWR,T뎭%zxc |^cYwc9+ yAB1IjŘxS+:AdHy1S([*x^lC)x=/fLu#2'{ꒂIXr97[X0#YiQVjRoxfAwì1v3ʌgq3>.3RȦVqV̰0֬fsɬ૙il*lYwaF4c^._ό٘c4e`{0sxN3k~z8Qf̳Xk-1fKa 4 ރ8LV_ [#XmSXƂwaxے1:96:f3J 55뙱ƣJ) ,P V_όgHg ށ`YSg* Œ!6Hk r- ̲t3649M*%dQ};=1[Z h{c3Np83D~9 Yި:*0X. K6 Lzf#ӆ$ ރ=!HOЪI(aDwL{0c#W(Y,o}Hoz#l܊i;뙱5'TTwanYyqf\ugRpɬ=>Y3K5q޷+S.̼`-N _͌6`ΎeUxfxYKbFkڬQ Xƴq»0;*lSMGfvE/]l o= endstream endobj 31 0 obj << /Length 3644 /Filter /FlateDecode >> stream x^[$S RP$(HQٷM (]egvQJswOsk9AU|RZ=~3j8>n<~ͷ>~8t\b!W.A$M:W0' v3O.jZ[\. z{nTLwZjYL~,dbnZ^hus7> 7X`'l ))Jqb$Jw>M< 1 nY/%Wi5DYfEwޏS 'ٙ]sr/ ;=Y{$ 7F($[aq'E**E%!r*pNF ySA?q(rs(9$؃ۄ~)07O֙7֏6OKƊ#Seat+t/Oш uO<榊e )* 駛^82~F'#OW)_vXXܡU4[\ dneA44ԎxbsPN8iCcm7EG|?63tSLGye4:tDqJrwBjoɞzA:w~k;q>VK]=碥˄Z>i3|߲丹zi.T"e-ep:F\nPvz=q %B |k=u/SN Y+.x=E~0B z|6E%zj>j(y=@8WzLoa1>~ۍrezu*x=<HLT?ZO<~oI#Ļhz* 2iqvsU|zc=R&z_;*GR& :w/SX`-qڞz,cS$aWdK%f=KYgޅL _ό9. ރs„gF:9mH=QUb(qt:m;=Ƹo,J 7҈mr{0C4Hg a*Xjwa޲.yq9ggRiadVbeOì%8[ߕ)xf^mfF?#d9gރ^њ9+zf(1y.r+uNmb}2+_|?禵&ҹQ: =ŦH/dqۛDqhqm/kX5ps4= 4e61_DCtލc2\%]`P]{ݻiZUjn0u uNGRc; T5Mӡ*Bnj%rG{ODp /.)Qy84?? .Oj5 )[M{av022D,COd ]΋fj->1"wek-'FB h&eke+ɍ#llI<|)ll".[9," pl+[8#elS"Ɇ"s8f=1t*]o{\@*C)5bݿ)Pvm-~NslNUJno沕}npƊ $5z72OI25׮.\!-Jɦ_o_w?9л>i4H9d=JOĜ_-RCs1-AM \ra#-rt|d,FM)7ZNɐMk : L x`ɸ/pg c|Uƥ(o>V{1)(»Wfdo9&%~"V)D_Kc Tw 9=wCuEO9XIϖoaaWk 'POsZOB=zʪV^/ $ o~^}0xkg. endstream endobj 34 0 obj << /Length 1417 /Filter /FlateDecode >> stream x^[Ko7 ϯХ@},RԫǢmEvoMĉMпߏZ{Dۢ(&7%<82>,ܥ B8A"aowW7?,,^vWz^jͳ4qPc>KԊ/)Tm*Is*Uh"G*/mn2UVyJ3r=son3+zg?=?[Re_)(Yǘ#!S(.6)Ƙ@MJKеN}`}5c b-DKK,㭙 ;⑱ґV RJZ qb 2sP ){ b5 CΨhe%YM0ΰ ff҆fލVA~yݭ]?~'XXOXyV/ND7|Lm6>S|LTt> a]Z peTKNN<`A Ww)1:8B ˿h=T;,_t wѲr]%Q]U{Q}i.0xKgpxKW޿:dܽҧz:_q9u|v z<{ ! t+}0R<o>./,6),,'InO]ZMB$D, Xzf:ҠV0{qC!V+fAP ?$0"-A%R<#a0h8D Y2BKJPsM@3tҞ%dU~1d]@p VqF(K-KK002U/iI"h{!fvʌfڇfQt} )|vśU o9䉭C'ؚmc"<#֚HN·#i[[ltW5󭉭ͱ%>烙oMlmIoMl}lO2,3msyfL[G3&Θ*Vؚ[K>&&VC'\s5oˣ %~Aqŭ"UbYe3l6EE\\\(m+ Ohk@zZOP5zF(j,EIAVA%t\CwD}DF@-yed4eMtq@?BB :\I D}u5I?1-Kh 4"fT٣~e lB.\mV4qkg=KC1CV@9k`0Ay?TPCʊz|U¡Ռ~ ,{t^0DЯ2aWNNL4?iB#6 ,] endstream endobj 38 0 obj << /Length 1596 /Filter /FlateDecode >> stream x^Ko6ha8|ǠmEַt8 )>>}EYWsdu.@LK)?ˡ^|ZЈm|?nO^~67MW~;{:}w6 Ȅ.U 6L]}лAxåoOL {\DboQ]:t%4eʆȔ['[#[Ũ OqnՎ*%bZTm=LXQa)ـw侘𑥐 >|~Ig"DU.#kLoXPl$q7K!P{?#QQKqwZ^)GnPuLtL{z讂ꊧBeW P/lCM(6==|T*%h,0s7M~qmݷ*-k^ӈ#UanB.P;ܽrUJL5GkkP ꥐm9l,P*"LIu-Rvޯ1K)Ji)![Q'u$=Qw-9rN.pL4R^ ن@wD=\yܵp-<FH(q7O ي:luWh-;$3etaQ3J's7K!PF6LҎGDd=FYaڥhiz)d+jORH_\sU008L:RN sձ螨L""mHJG jοUꥐm=fz=(d39Cu飞R;ܠ>%d+j֎a($"z"ի{f!P/lCMzT8fV:Лycfz)d+:Q$9x0`vVr8Cp&澙b:)d+jquX'Y ׊5L_;}1ꥐmԩ~Nf"b֩3{-h)!QK{7]`$2I%_8'KݚNAb>/eMiSYU9%ǖ2 3p#y endstream endobj 42 0 obj << /Length 980 /Filter /FlateDecode >> stream x^WMo]E _1$dl%**!Tx; \ڴQ_& >;~DN<9I:d!\S5y܄º_ p}5p&bkx`^BGΝLTzj:15V-]š{Rz) Sќ[zXÝ_?n s~} 3+??Yql$Ir`Α5awEթPA:E9f-אcVJ#j#EVpjVZv #,3=.Ʈbex0a ^J55%ﲁY:#g*e¤K˩qVD8Dc+tu ytQyOL35ai՝w՝|5V>CY;X{?E/>~ݦճ3Lߧz~> stream x^VMo1 WDuc;PPao-vn[4K?$\d^g'٥uvߠXgłsjhѼͽ]ޝ\^ +{zZ[s.PԎ? z\?h _(sCd.Jb aP<P] ܣg`L L[w:taB&\ Sc&r #;C#Dv]\3A)d=z(# 1G9 0yي&N%R ˮB"Y*٫@%Bu[(` b.m!t8@1BZ8v^J4PNW6zݡ5ݹw^m 6sy1w]2e-|u6Gs_ʶ9v*VRUbufDy=Cv:@3E$CyiNzכ )g-$h m=0,#d_2~$9߆z캥-7>9S'yvWtRJzaep9ŅZ$ %b/R39ٕJS;5gj|Ws9aKUjK|X%kӏ^fw.$m T|A'uLiSEmQ}#Ux]r36-9rԷ ZZ1 endstream endobj 43 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 50 0 obj << /Length 898 /Filter /FlateDecode >> stream x^VKOAϯQ4]]huo ,@$fgwfDK=ڨ2jZU<ԼmZ\,lj5|$oHeϟK@ںls}|:}*ؼPpY; 9UDdu.i!ySiʮ  _0?o.y#1xV^ РS: >%Ugb@O&*̠="zBbrQ9y0⵷AK$QcHR)j4cc "5:o,%W`'ؑ0OVٛ6AْŻ ,7uH$T4M @S!s"(cUmRx mZ6JZ{jWkՅ܎c>[c=ڃjV7LySuAV@Ȩef&"> Q\R46t6Q΀6>fC=JGus{51ٍfg7tIyqAhh4WVV}zv@s-/7\ ۲I[^gͫ^$Dj44ل(apiͪENXy9;d(F > stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 60 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 63 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 65 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 69 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:43)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204345-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 5 0 obj << /Type /ObjStm /N 46 /First 347 /Length 1439 /Filter /FlateDecode >> stream x^X]o6}ׯ{k18I?Kut0جͱRIs%9vbqWCBK"!%y$(($% A"Ix$#M'ɐ) #Єd"Ȅʑ#IzERS5I $KO/}pS0pM(7N C جQ I>0%T""?B {҇=$$u4&"-J) IatL"DN 8S:sHQ9,BAW4>fNbB$q,:n7]vQ0e69 P8$_hᅎ@GJ؁ zU,Gh>!|q/t2'~)hKq2,ܕΟ3i spqi{f;fs]6rb3z_ɧ4/Iil\$䃿AACck)7-Og%;*$q~`=Um.4']l~x,~]JOi2HŘG>ʦ!EH#A]7o")XЩVVf3+lDҬ҇o[׳aȅ׺'Py<ɯvJG-P''? &{c'? <3ȕ;,{+dn!+5C7EybNŌq;qn9*i cʥĮ? Z±0q5R},>,0fI^dPB]dSq/VYpyw7<OA^#c{"9Q -1ckppk)֏tlaQMV`Ӕjp<|,hBM>Z|F]>4ޑ 1G9kdL`.>xмt@R8V|Z&5>?hUaW2%s͂c +;( n$̎gۓ5;~8p9=y379xɍYn|QhBy>9ZjqǪ"__T=MNl.˦ *`K4UJ aѕMeXVeBU;p:,geT9m㮀đ= endstream endobj 70 0 obj << /Type /XRef /Index [0 70] /Size 70 /W [1 3 1] /Root 68 0 R /Info 69 0 R /ID [<932610AE675D0DBF06C06BA7C0864456> <932610AE675D0DBF06C06BA7C0864456>] /Length 216 /Filter /FlateDecode >> stream x^%;NQ# D-}X܁K 6X!V t̜\N?NgD H2b/,.X"j#oy׶X(JbME6:yq=[byQ&_P;]uWE/'c0GS0>^][GCqJ]WNB-)iF endstream endobj startxref 187133 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/HorizontalStripes-blue.pdf0000644000175000017500000055223411221776611030614 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 271 /Filter /FlateDecode >> stream x^n0 y _vN7:V(bVVj/BM;~ O0~a86>v~BD@@]22Ėæ%\dfbdY%6.[hTcS** fsrEШ1z}W8;"VSSIT1Kcwќn옄,"M|=h1QԔ8IPV%^ |>Cg% endstream endobj 6 0 obj << /Length 299 /Filter /FlateDecode >> stream x^RMK1WM+8I6APAQfbViiѳ};}yo01_hűl'X;a߹y7.$[Fyp>hYUX!D:d8Z0RnȳdHq=FۆЂ>_.P9QILDԙꆞ=OFUAj&Ԇ?f*Qzq0H>2\ٝr5R4vtGv3?H endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 136 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUegd%͍ \H0ȝ@ | :\8#P *$Ah*=C!@(w@Lp4 endstream endobj 12 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 13 0 R /Length 296 /Filter /FlateDecode >> stream x^Mn b6ݎ`Ȫ:(M/xe#a<F#gn}7'Пޏ}>~GMz7</O1:R$etTK.ifI 5:g("Ǭ9JuWT )tT32YRhTkv.ռ<&Oo N0o)*cT) 6#%jk}cHYn<>mgբ*&" p0gF%́`,AXC\䳊i}G endstream endobj 16 0 obj << /Length 456 /Filter /FlateDecode >> stream x^Tn1 WX",iS>:iIu?T]/9+Jəl,]t%KFq!B]w~'tv8~+r]to̎ɉrdr*s l~G߬Y]ݟ`jḚ?s^\WsHޯr P86M.oM 6Q9 !jӟ]$:V5=|b%'?AFDK₉Q=77=d>d bV=IY_6qY7N2ȳ]$TXO6ʦ:йۙ9Bim̥d-S9L a_F{\ou5kH'Tb` : r| LgS{b &ƣ<̄",mDg/;lM7 Yx3 endstream endobj 19 0 obj << /Length 296 /Filter /FlateDecode >> stream x^eQMK0WE3mDD]ԃTzsZ+t?3*fo\@B5|HMpUBm`r>4suYb2wHTa0phˬKCϒcz! ԓ|.31E,kuᰀ 9Mx،Y;]ۑRvAxTMa)vƕf{ endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 20 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 21 0 R >>/ExtGState << /R7 22 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 23 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 26 0 obj << /Length 1421 /Filter /FlateDecode >> stream x^ݛ]o6+x3`jðöb![}i%4KZ)KmA,_DhoVZ(y> Aܞ0esݒ7oFI-V\_I,U_uU7y-*# D,.O+8[0s>*M:WL\xHׯU_yNlJȲ+oFGvn2XnYJj3ݥC>Z])?|+9[R6E~{٨֑'I>QzO8 !;K7:[/i/h-ҧө'by~xq͕oPht{ʦ݅5O߳dV$cXkw??ecvԎAo)]A' deyk[vF5i$YXXk}i=ҍNe1g辎=zis/Uҍ]2mUͩtޡ{(^3kd 1'dcc%Bimué'Ԋ<`S1'( #ek{:'V>&2:>uW LʧK^t|ba<͉;i)$7y* &`S1ϧI 7}U9i2ɅO# p;{t("O?_ >;r*j*+=Fx%Rڛc ڐSd~\1d ƫ(bWa vHl0'`>,jR}gJY0(2BJedl kVYC%GԖd$ w5J! vsڙSn 4>C6ǖ. h)pF,mpا;CTt̩ncJ,eydNmIqgNj>5Spqѱ=dkN_ N/-vR"܋*$ >ņ}NF8cTj%;JSd+NElöZE7Sa^mJM.}'!x,~m&p_zy {ކ) _^w rePZd[w"b5^5q+ endstream endobj 30 0 obj << /Length 2445 /Filter /FlateDecode >> stream x^\[5}ϯ$*W@B@¾QWVloϗfxIdfs]AwWW`39KD՝o.iJ+;\D<ƚ^4^x14_||_k٭3"*//o1yyMo7{Wr|?g HV9j6uY|?Axr#r/=w|*SKs5\ъT)-}4\{x՟Ӌg/p:pk.a|-GBfD?Jʨd]L4:QȨ#=\2:?pB)/Wert_{B)̟e}h)xp8xL1Ǥqx 1㩙Fd~b#Dxt1d8WϡC 1K9\{ *czSf:uu2fJoq`-FͭG)L8#elqdsy8SNy'p^kMKqb:)M,k,u#HJVީ\>}Өg>Ki2>=Y+L4e9Af}:~;S6R*xb>09 }b`EMn?M41}hԍ2Sr`O7WSI ,;(T+5j+lt⩽Kg~X>^7άQ9(u}>^7ƕF?4*Y u@xFh4ʐU1B*|kXL-Ri wFDp5{ D-;{V nRGϙU a2c\ pI,9:':U=t*xwSHI[TcO1AS@ ,z:%);]\~ qt*X-vć֩缛NER{eNI,tkYdXxf LMAf:%(#NT2JiΑ|9au9Sd]R*NY}ADlU:ˬT eBKЩR0﷧b4:[^>gPH3'uJRFE:3딅OC)c\ pM:xsZ!XƷ֩N`ggڠl:uST7ΕNa]ȁaS(:uw),ʣqW=t*'P ]^%T)ěL,UV)6ΝGEJɯ0gJM ;U_X23cӂBZF#2I)ti Dl,yBAY6hU]ToÖ՞jBwʩ.d`j91܁A}(j/p3+E%+{Bɚǎ07B5_e;X٠|ДX1;ZDX*Q^dnf"E5b+WmYE3!/1ʗ',2 fhװ4Q nfe4H-=Ux! HVbx|/u U-HPԌNdkVv^Xs6+nU7Ƌb oe B"*we4b=eAۙy ň1ރ#a2 IKhxfh G?!l og%RcxfK)x;3mB f`[6Kƛ` ZIKfރAw/KoEhX'3~ F̰/;m3ޅe|$ ogFQY ƌ;If3&lld 3R#rr8̰"#61ރYc"1ogc32V{0وds1 ~er菔w`f5zvʴḛ"#>P{0}!*ƛ6h B+ 3D nvf(YZxxf/R)Wx;3dhZ71ރCM og(]=mw":d,̰"#n(b!{0}H؞'b;ۙaENȖn0c 3XmۙEt&M@`ZA2cY*{A99c 3dc//$x;33k=>&bc+ffhVВY`br1 ~oQ7ClX 1άR c3؇H+f]2cV!R](`w9fQLx;39/1ރC&ۡ?'= endstream endobj 35 0 obj << /Length 3244 /Filter /FlateDecode >> stream x^Ms+pqUT11DR)9ʼn-Wh?π,d%iTՠWwjÅIuv޽~Nfv߿x>W: oQosypZY=/R-/_/.x{yR[W%o~W~+o_wߗ?߽0i:͋|yW_c* }ksz7pE|=+OLgV_iyfcyQ:&7T,:t@R>jehϩO4Omgӧ%cd)_da.3dѧO$}z46i|$p} 09ą> |}J85F>]Ӟ1>cӧnEQV?="wc\OOImSP@UxʹJ)j'=j#00=%xvj(2\knEr]TXuc\iӧ|F%P3F A5c!H]TY<vN*G7*ou4n D-z/ϬRG Utjvm`SA >&"XUu ϬdǥHKTS1j OY}NH3o3TK;TxE >}ҿ)W: 8Sl5:%xb}sʪIC0Y<)K<죋3eSOu\B?Z>tdRG^*ND(ɣ?%uʩ49?uS{ASS8W:I#ݘGF֩4NJ*I'pr{P]R7XC;GRd(>2̥ЉSI},Vϙ6l-CKs&׭R\]OԘ8#?H7>23NT [Ze']zZUNu"\rMN4)1dɽ8Y8ڨbJ(_YfNsfE6_r;2aA܌Yy7FGiUS&pV_%ov^͊MH\Ic_m Ud9[kL;I, fk6_(d8RRWҊ2TOUx^ ׺U6Tx^$5SbΊ3s.(Y[$,t2^x=/fhߌxe$^ϋ2D2kWK+b=Xg+lFLX\yPش1V;Œp9}PX#[͘ ރ~` pt_όr 3tLɐ4M|53HJeV=*r}.us{0$v_ό٘t,xf$hX>g{|=3Gc ͘ ރkN\L̰lK×Z]K콶35>_ό ^wL^k|=3fdO34V{0md3Sq?ϙ뙱Lȶ@̌f_2ӖogƌL|i `H/#૙Y)/HޅeMd;f{|=32K۩j ރY@Rhf2_όG3{0?T6M0̘ږ ރYijSg_όM3CK{& 3rb]zƻgݨMI{0?4̢e&zfr8s&xf,ZQ8X&#f`uUL(P- FLΪv_όY?8I,!KZ뙕\ ΰ;{0?d[ҊuL̘GZfwaFRA;f(zf7 в@kˡpڽ|sI%q rÀ0[Ƒ'6 g)alCQS\i6i&;G(FRF"xJ܎'8+r0 [L_.rxd3 &3rUC *Pn宂j?M|R6)S 7p2 $5j'WkعplyExRX2TNW˝Z Axas};H[VŊJc*M7ڬʹ+9Hum5MZ絮R/^63n tݬk.2f]uu.G$yW~ dM:hawbj][kFS&um"utجk[ulQYf]g.:F@kͺ5׌ mf֌֌ۘf]uu.6ߵ]gE** f^7/(MymscQk5Kzm/Io/mr&Ǔ'G@I^7W1ūA틽/n(L䞗B-rm)L۪d{&@= g) z~*VIeJ䎿1Q2PSBO:#=ߪlmO$/&R;USC?}&WP:^rX] ^>K;ZA1A 0! e{O}!~V;+Z +C K)9@^nU ,.zaf6e'}w9φoz?%n. endstream endobj 38 0 obj << /Length 1078 /Filter /FlateDecode >> stream x^[Mo7 ϯ@ d(ǢEvoGMuпߧwESgolhH񍤕=ib\=1m$; OU?~8]M ='{<~9}Ee&QWLcۜ fgAۗj_U5yM+o}һ|빹V<\HsjI⊉^m).G E1Zav]/==+n~iM&s\gA#Y9jY屷;N9<'BÄK,E?W i@Fjo>\(G_ߢ9ZUh^NϷLgAvouc6ON, nĒSd:stYwQ/0ҫ)! )ƙ1gx.!H)CHGMbq\.p7thhPX[J:`2^ǂ.4:aԉC&ɨ**hKTE$C>hڊ7X|HvqA`ЧNZuֳ]NT9e8w @{:(8е|7]rH tkӐ8uta1J],uqE9ffF" の1va Nƪ~uWpE ]]+${Z]f tu]R@@Еpq4f13?3f=sw3akkut\^S)]cuuW%8if]cZ})XI`C x x/v>ǘxT9:F1z?z Nʀ9zE>RpྫT}'/ $>.1њO~aF03([+۾ H`#(9i@]-;%`Gn Na!Z(8@b0<ߴTJ3^پՍ#tlT.KB~pKJ/ *djV BG8Bz[kj:vm} \>߾`Wi endstream endobj 42 0 obj << /Length 1205 /Filter /FlateDecode >> stream x^XKo7 ϯХ@ $HJchHIqC~?` a'R]p×\Dlj;ߋv/X@ޤKrkdw~>sKi//pU:|n4r[0='Ͽ?.Mo77elPRIunoUj|8mJx Qh£5;\9 2u==%FWd_;p{qyק UjwG~ |{ژ?Gf,a8,=})`c:zdj\mj^DXH 3j>d-\w|K[3'g6U]@᳧nL֡O&ӆދ( ܚq䜌"jҔJ#5PbFKe˛K*=(^zq8y5rx=uC=guREXW⨺XCݣ1Y&)e˛+I<> stream x^mTKo1WH;?9"PQnJٶin&_b$k",<DzD`٧QÓ0hv_ܼ11)N|SepD68!%"~/P?S\KW\u;v*uYkz^8w6_/{91rw8>Nrze٘,)p +.C>)JྖlG6ZgмkTSTH_@+kg=p1{z ~9;{X>?ʭ09o[C(7uٕ$<[ 16TYɩÜrt7t(k!8LV[CQ9G ^WNď> stream x^mRMO0 W q&)GL ncEnM8ũ?bg/i!Q5`ި|&h 6m~7VgeЅAJBDv幇é1憡axfXV֊a˂ze$TRd92h$(%Ht衼V2[b#j LXm[xdC!ۡNL&ĸTxYCyYs@> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 54 0 obj << /Length 511 /Filter /FlateDecode >> stream x^UMo1 ϯ Vb'Z͍-K-M$$3;HzXoNl- 7?[y }Mj|hPi>-}\?7G]ȅ FB9BL > ^wruFZgsk&DɩUkEz|9a3VVi&}ytiDM`gZg/fEVQLRׇ" YwiŹ{yۉU)yqJ!ZV,WdߩUd-l(#BZ} 0F> 2 cAj<ڣbNFNp =mJ#Efd$p^-iZ9Vr?+8R)@RT/ƽ> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 64 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 67 0 obj << /Subtype /CIDFontType0C /Length 3882 /Filter /FlateDecode >> stream x^uX Tan NqĄը*"O20lE0n.Y5*8nADEo k49OOTuխݺwZ@=c/|D$X.IOPyOF,<'ezd!?E}f$7G7&%%?%A')I4t@ħtb&1,#'l(RJJK˲LRĦllf}ke.V2yefjB,")R&-*3hB$SDF$F˔ѲYzj*UR'~n% Ke*U 2JH'EFdiQ2Ϡ@2)M:*)5Jfi)FEbҒY[X)U1xNuIֺuK}-}\}ܭ֦ɢ*YdTZD\bᆵR&" sl// KŠ&l[ŽE|E8 "XL o—XJD'"$"#b D(d"PDN}/[V}[/zzzτ[ +&trOMRV?Ԏe'c.{x}IF5O40>b<4"15 aq䡽!ZƑ(H׸٠=-BYZ)OK${ݓm< uzZ۽e;Xx/rgzZ*J\/U+~ÇAˈWq0sOSp.[KwsaKne~8ww{SKڤ,_+drbuZ]0 vs/m涛Hfmh0InO,XcHOԝ0Ӕ>̺a:Q{/7|櫏@{4;-f¼ >g^]vvlRn)C&ȄMrc Jܩ'7-v`Owv0W.Ufs[ݶv@TY){_sKI˟^lg@2jxG|,h,xGq$}a?Z iQW 6=ЀC`VclAu)I,(`_'z:Bޤ+ζ1C"}6'qsw L9kMuڪ$0 HXٗ٥^0gNl>ŵBlMFNr/C,N`ߤ-c&'2uaA {5leta*8-/]Yn.))(aBh E( S!^k`,f޼*}5gHzyP몒|%EV@?ٹ'q s]zΝKEW2s*o9vgYkLiCCpxIO%pvqWe}<{KHΣ͍=`#ݱ.q9˸0}CulFiS&聚+ 4iE!WYqTԏ~æflXN΢P٨G݇p>N~T@]SpS~:0{@t9)yVj/澅)_T%7pA^ D ZBPLDn/V5g?(ΫQ*>\e-ˮG>}@v¥!;9H?Qa}J7D}ڻk:c>iDA#^s:ayH>1H HΊdvM=/xT3hwk-_.9E]s~".F3#q,iy?*pdZVYVm5s<+g$ klWҘ)\BU'"N K:DɯCՑ,j*ս;í<]<{obz]n9#q.O!Pe8+\=8x҉{6BHw`^܎_(RwigTj'2G:"Њ=2}ss$Z2QBuia;u`5w/ 5`c9bAC2dgG,>tzp`!pgҖB_H_:*`"ult\pX*> hao?xk3d4XJ`\C1\r}d˝(_z$,ƶ+<7maAN#8]\A3#CL& -`  Xb N} -o <ńceFd{yT M̛oainΑdՅF:x黾37he!.?pEbsOy[Yl%BEl]c7Fmq,BFVM8;^%涜RGyu%Yl'Drߢ>?XQ(Ll'm GHֵ) 9 Lt6#H#t^Z~Cr[iZOjb6nd-~鄞R+vkĮļॠwx?3"3m-Sl<2J̝(l%R_Z1yǒwݎ endstream endobj 69 0 obj << /Length 453 /Filter /FlateDecode >> stream x^Sj0+@zp-; 816m^iIJC~G8aax7oތٷ#gз绺fM+ ANVT0y^nJ$ZG ߤ5>lg]U>sm|nj8?D2 #_`z% 9j(,;*-u#`{aĤQN4*[\]R[ob\ Fj3X?{Y$QwZ7R.Yt/jΰh%]- 3*yU7zt1hY% CkP|M18SN(qIH$qȕcPiD'wdVeG3;K1JrCJbͱ]͈zt_vJtmgOn,z+X endstream endobj 73 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204427-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 48 /First 363 /Length 1476 /Filter /FlateDecode >> stream x^X]o6}ׯ{k18Ic׭ `AYWce<4~JrulI<<<&VF{UK901ہid\R!!th0 v!3x \>xbPTGHҞc}x3,²}p, mA#rϻ=;^-/no,uN(T}><]fcʂ&IFg:Īa80q pC` ^M"TϮkpW{ak{K5OT3%EN`]ˉEw|M"d VH˗Pf"I]ދo󌧅Rz:BA:m+;I3;~h_I1KFڛ8+GrO/kI&3{c߃|@a\/HQz(L܁x+ooa@*7S6SޚI q;m?>ͮKCp>,@pN"=W/c>1{0v]yP{YhL(C'WxTldɨkY0(?{0 :kf@fQ=EכC͓qhc;I9yvd|;lJ.V5V=M8F*a(=`%H#sl*H QYEޏH5Z\be򪒹[~tb錣! r3Hi_j:- endstream endobj 74 0 obj << /Type /XRef /Index [0 74] /Size 74 /W [1 3 1] /Root 72 0 R /Info 73 0 R /ID [<35A2AD72BD563FB24A25AF16BD3EDE68> <35A2AD72BD563FB24A25AF16BD3EDE68>] /Length 229 /Filter /FlateDecode >> stream x^%л2QI%q\5h'0<@ڌ(CaLj'ifi9K0ޮ< Ohɹ3! e3#b^z7!rDڙ@Tμi~;DQLwJbF̉Yu1O9ĒX$:mŊ('Gu#T*q\bq.۞xxd<^x;s}q(ڌ? endstream endobj startxref 185020 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/RainbowStripe.pdf0000644000175000017500000055212011221776611026746 0ustar hillehille%PDF-1.5 % 22 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 23 0 R /Length 463 /Filter /FlateDecode >> stream x^n0Etp>]hEש dÉ鲡`{!sH^LL$Yttx|x]nӓ|8:nGi&{vjk(ʴ_47+P%3e2ER[&ӀEKX(L[x}]׽3|x}ݽh8>B$Ce 5k.|8)ZhƘ |`?%[95袲t|8N-UYY}|-;$^sPC1g~5VXVJD;>;8sJFVoS]{NN0Kܷ 9N->앎֪Do'ńb1ňOJQJYq0T|ʕdh +F!0fP <jWjB^x(:p endstream endobj 26 0 obj << /Length 248 /Filter /FlateDecode >> stream x^mOK1sdQBnRX*ي^޾ l|Oau1Bp3s\#cz#F;0=/ D|)"+v" b^}l 3kȳ~сtyG`3901]k+46\v.jWkY+\p6<ԍ_Q5Do^ṃuO@> stream x^3T0BC# =c38˥[P^X`dUeg``ݹ ۗP! "\z&$AtB;VA9\ i\`wԼ.:/ endstream endobj 34 0 obj << /Length 551 /Filter /FlateDecode >> stream x^TMo0W==csABJ*ƖR'ݖ/tmgRkxKXRq`@qmW)8U)L )PQ+ap_Zn"+># FkJ:tж.bGmLXG"2; P G ʼ]xIyXae$ȌQa#D>BN[¼byFi^mN-(iV&WQ+f{(UaBx M^b |"3ShhOgy-o3ZܐYtZ'pvߟs\T-uRCرuʉJ )@[ rGhO20@Xq9D*t xC=sb~!LLZu ?ҒBtq\K>Vi*[aùR8 ZL|U6Yz&첓3> stream x^TMO0 W qf B !`bI!AٺMt_ cjӋc@ j ]@E*70q 'l^@vordb9Cu -)̬|tY:8묅;c,ƀ-lg`u 2%5G7[8X@&rc 2%ĤAB"Tɫ9>)7-?mu፴cf0@>e-}+ʒ"Ph<>.z}"+1k1+1/bTEφ=#u7r"Y|5h")$su'}(f P.)ظ$cO endstream endobj 31 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 38 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 39 0 R >>/ExtGState << /R7 40 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 41 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 44 0 obj << /Length 1459 /Filter /FlateDecode >> stream x^MoF{)PfgsAַ-'qD.EqjK("=\-ffF])nfQ朴ulkb>λfFX卥 G]}ݥ_}Dǹɧif_{=!{V$:9vjƢ-諶[L:Y'.e1:)dY}-J=o'xk[,Y#e1:(w,_ؖy]([f O Qp7E?/ ̑Do(7KE)vpp~7gskm]ǟ6SW}YWڽM]x>h' E:VF @a+>BXHdDXgTXrvvzIl8y }kYxN·oc]po9Qb|>HpeOtHRw f5ஶ\Va$JL2qla!G!ѼxFKT7TōFk9bvC-&w\{ +C.o_=Ǭ7jbLx]0͜AM\ L8#_R1@$k^@ IżL N96[۝68X"NdRIOͤ\4mI?27!ͤi˭4q$=sy&oI}&LJL锘4I\8kIǙc-L DNIcɭ4qD6⇇gJ}* rM4"ݕKljW\$ALjPܟB6܊K;K d&pT#pL&SpBZ#ÈU2G-C<т%ӆ^$cw%Ӵ2Qkԃ܍i4uX%$r{>SeMٜĀVMž3BKXbt`@lЋ +Ɗ#bJ1Goͦ Ʀw>`"([}6lj# iEtth6*l:ND7MqBBlAl Xu90*lbtp i-^wf{)bɜ֖cx#a}'ûts˪˦ G|҂ 1BI7I4u؄(kBϦbMbޭ%¹wfSWdF2ӓʄòiC/JNoKp&> stream x^\˒5+zC)[U*x b ,yzMcY{X9nwXWKÓAnozak酵;\_aZiP,C=O|eG| )pFG%x> a*o4uьf`/f`vu#I*@),"5~E)[T>oQ9{80L2[ -VVÆ36VB9&m 8VPLvqbWq.=0!XpOpc}kW}Iyo| `S&l.ǀZ?X˜K(|4iWגX'ii/&+•6!q!jzM)[kӅ>NSuxmBs661~ m"8mP ;NM/jDtWڄ'm<Z.Qd +A%P ه$R~6N#L%sZ[&~SN@w'(FŜVv[d/0kALGMVt鄏&DQ^5kmb6z'ic{#8YMڴn7"\iڠ|2[kӅ>JRELW= Q# j0~{mr:+7gӹN4"\iBZ_om/6]8㴉[W~M-G]lr +ڄw;?y|8Mk=-N.k%]޲Ra'?PUe>>\C ytJ-h#U]Z`<+7$:y&ƛM A\X=A<(WݚvfB =^3ރ|B˗굂0~f(lXrri\.`(͢K0[vfX̕m̠OvogB [` z!-x;3EAxfx;@wxfpxLuۙaR:F6xf~#6pVYۙ᎜IXJof9б %H ^34IE{0++G+~og*pDT/&3p贼Sۙلrxf% J́1 wdlH `P7:V(x;3ܑƮ]">wak,M~ۙE]鷺-=?1y63K+.06JrkkDqۙAtVr-U{0@;>PB%Z1*3npeۂ3,]1ށw og66/ 0#ʥ0C <Y܄5]!˅>vf.RM{1ރCǚfK53[,.-  endstream endobj 53 0 obj << /Length 3316 /Filter /FlateDecode >> stream x^[sWUQń~c**J-N)LY|.0F"iW(`z{Ddv'_tPF7ZwW7=Fu?-!t7owy?ϯ_>gNߤ^Ai%>en*r7!؃'JAh\W eA.H|L,h NX7Sw!~ i>=`_<~${KfI}Bf휒^˜{k.oGҗߏ.xs&Ss:$S_򯇟_=RawyOӬ7oToys{&wY D/HdhSBB!z4܊ŻQ5JfPun'֪*MF_4x?A)ov2.:=a2O^`@}{-v#6tGVRD/-Z@앁s1 `R.9͍+,v<+/L6tOE\ZŐqȾf~ K:ƉaNXם9ߣd3?m%HnHZ# ڈhpR9ku@c>jD4 D VԤA¦GkkҜn}OM:o&i2^D5%Li:2=]+;,{2KBtބ20.~\Λo!MN(mR`ܙ6x m"f3;RZsm $JA^p~ <-զ;|զV)C&㼐_(yt意&oXu)-Ǩ6eڴpK{eb1":6U|Y6}BqQSZ- MZGM *oMNDB/{kT,+RL?7y/YqzXbL'}*|k[Ժto|@ gmRtRRt;k6;㴉(J5kS[hg׬՛*2~om4~gߤզ;|u;-BjŢ(ejŷԦ3'|6I!V1]&b7 R= j.U6kZub1iM#_}j1]+…6XG*b_eh[- Mz7}$;\d>+ʹ6Q }2w뿍叝$~XPDYg-6 S@w$xkB}GJ%#_k裴͇M^K\ ]HT <z\GLA2U*%F'IWU'1‹Y)ONb;_cbOKOËYiNYn%^JX ^Rz֎n #nŬ!#Djen0(2Jz62}:ϕ,I W3V^*лgUi}[]Ŭ9ૉU x%S0fVWEJQqɈ2jOr^<+^o+g{G3ORx^;ԁTxU$>yKSI<7%EJX= |93k1 %DZ+gX[0-$-rf<VR/3ބY";.i[|93sMcp-=>A/gUQP[1x fzS?e3SBqo }2/_Ό=c6CrX[0'^>P$+0cCKS(o kdiꮊل/gF3W,-Ove|93{RV逌7aQ5 _̲:T)ܒo PK^Ȍ/g, z3ނn#͋)fJQ'|93\.dSoL7[/f|93y^jbfAŞw5xfFKP탤g_Ό W%3ނY&skrfR3P o NOjt kD?x f)j2Od1茷`(Xv+ G|93QkW7a5fv—3]Iu댷`c'rfvsEg 3F5sRe^X"m5 3.whNt93XDePuW= |9Hzd3C*rtڡ33h@MoŒ\g'}0˙7Tx fliNƏ/=]:VرÎLl)%v-Jyrl'k,\p5?X9Gp>Nw#LAC k<_4=t> stream x^[M5=GP`n0$Y1fw!%G\~~v?w]N&>8r.^@ӓy?=[k;V wsW7Wow+wʄvy9|Ўk?D!ꋲ2i(" 9<=ieEjrCnEY|PE[죖˗~l]ۼ؈l?o$/v"Ez6]<__ps{v9x^SG>,GBT$i A&mQœ-I>Q &c!lvt8SQ_ jNzҐJr (qHvS($ ::$r\!w\hMJsͬ) = Z)%cjGnRF{cOn1 ?׽"mPY"`0BՒ ;h9 59k apr0wS`phcCnr?/BѴ γDU1t-5wuU]lZ ]xtP2ڐh'#D ΀)RCqܥ^X^یV.3ẻ ]+1MmOF':'T¼qqЕ֐ ]6_WeZ],(h.waU|h33zN1g{2΂.aqwFhcF^g /Je0x^YR2SuN{S%{ٜË9mնv??]Nc~xt>$ܖ5Ą BsJ <2+c V@%j#̸y+ gT 2{w}%ƶzi0M,_>r8-f}Wl0,@lFE,4)cC#^ό߰*צ_be Qdµ^+ƊCn=סBlwh^`8+>ښ endstream endobj 60 0 obj << /Length 1272 /Filter /FlateDecode >> stream x^XKoF W̥@}03$1hk4@Q[G&ıfꕴV ԃYon[>uO]J& O/=ۏ^̓A\P"_?yؾqݿUW;R[J!$ A旵Dz)6]eYaJn$9,(P&>ay UoxVV e%ÉՍNaP?<k |9o?ɓ_|(DvM@ZDs" ^}1S}\o>c~nf ÷O},=\{}:y B,-?9o!fM?Đ(pDZ ~FI|x{`Mب%>Ԥ8cXxxcD_''hvl(Xpd[9oN-)H9%wݍ{bK.nz0%%HĘ"E-zN:L$1ozl"U7F> stream x^Un1WD647!4$Q&KT$m2nT{= ) ? iCi p4c ǰz8w4Lr;`i/ʾÁ"@z7,j)E:ٝh -+rdT u]wx,%eۑײԞ֚G;|?S/Z_ڔTHQ%A sLA5P-QJX÷6_}} ܜ}9b+?ӉrˏI]W{X';{ߗ<%EV}Yѿs~dE I3I43 w_>`X= ?z(j 8PK{- c dl=c '\HzY4NP"[PA+8t:CXLQVV#cn(QpZ8 _(, ȖNfTL5jO5Bň҄#cRCf\=fXQdQ^+-Tmy`I\zoa[`ز0`~TsR`&+cOVq%64_,XzEEliQJ]:pZ:a˅d][daܼ>zΘ% ڐ:  x endstream endobj 68 0 obj << /Length 454 /Filter /FlateDecode >> stream x^SMo1Wbf<]#**!TioHI Җ/fjeEkNܭ#=!yfXOwV#J;{Xߝ7P~ WNr8*FS'|GmItX2k-JG6O,Y:8lGL&x&huڐĘXlGŌC> ?| \gk|K=GEEͳ#bA_ '5Y}AVMXs S&9[ŬD1FC{3u>s')p?M1Fb˅l%xg73[W̮,eRiYߛyHz92։Yԑsmk9BNrRS4ʌ%S_ pg}Z[P}7ߑr+ endstream endobj 65 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 73 0 obj << /Length 596 /Filter /FlateDecode >> stream x^UKo1ﯘ RJiMB?̤ko*qC켿)h8VN uh/¸WYVJk5 7_g1~ 7w,f?rTF.|G;#f:$0IE~wH'euѨh]r:eeKnaw8d9^]L,Z(Y[J8BB1VlJƓFgYA82FhJ^ i)F#X+g 8qAxddɅnQ z33X k @ .n 0k}B4}\ãc z$úoZ+HL;+fgBZݛnHTވk*Ip=!--MgRa&"7cgE(^6T槽DŽ{Gk?{FiG&68~^pxg#X2oٔ&u fi,þ7ؗw@oeU%0_;/ٴl}ft endstream endobj 76 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 83 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 86 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 88 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 92 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204407-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 2 0 obj << /Type /ObjStm /N 68 /First 523 /Length 1985 /Filter /FlateDecode >> stream x^YSF~_}K)dLL(!0t<~jr'V- p-vvy(I )#KZZRH IxPkGHTM$d`Ѣ*D/0 ^W^K(-U(G*j3IB%v U*]EJj&-cЃh)4x&RiCy@. ICQ f4hg'cPc * <2" P,D(ȱ"0WPM$~r0E2Dc7`!ZAT7&C$BY Jż;,RC(g=P%XBSz9H, mFAȷ04=`;|s`I/gB48I Fo'i<98߻ =.cO/[Ϻoټzn7\?~oc b˭ḧg'$d3H߳:DU/munG F[VXQ_IɺDgIzMܽ.Mfq, {/UL}L>@+uz !2o<6 ,:rl|8l}a[:RPk зY3) ޖNjj`%xpɈ܋yiB\0^qV?Gܓ5Nв[))LM#kZ-G?":HWstPqV5RkvL㫯*rO=BR$C$Ӆ'*  $Pv\+=`j(QirbqǓn4 oj2{ؤ3F3E<Ѡ9K0Gp .ht!3A(Lȝ(&trGHQY|=vObX`/kG3EU|{~:H8-Kݏfq~6,TF"C{EtQckUU>:R ֗5_r<ÈݻfhG؍xwU 4)~@v{e}YZN擈m!uǎ G w)5Zf^ fwKf &_ȧhƹc<))/`4/I?sT/zxsYDH k WB7xaڢb, [V~9SbeV,=3a1=˷e|qaŎ9L%;".};VF̍{ʼ6F>7)5yv|ɍܺדreB 7d&{< <\BE ? ?w9܋(v6pŨN: TH"p2b#$0? \ V_#^ endstream endobj 93 0 obj << /Type /XRef /Index [0 93] /Size 93 /W [1 3 1] /Root 91 0 R /Info 92 0 R /ID [ ] /Length 263 /Filter /FlateDecode >> stream x^%JasڤٜCe66'i)z p*hA>@-Zm~=->5@ta+""*bO1(D\$İHqcT1"q5|D8qVLǔH"u]Vdtȋ/{7'EA,EHT=%Q"jޕŲA ŭ/V Q&Ŧؠ=$|#h/iO?>=*ާqH\z<5}:g"_u? N endstream endobj startxref 184910 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Shaded-bluered.pdf0000644000175000017500000055570111641726551027002 0ustar hillehille%PDF-1.5 % 26 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 27 0 R /Length 182 /Filter /FlateDecode >> stream x^e=0 ݧx k_s$** RBɐ0M6G_2V;m==tWPbkgaO;g"dN 6$BJً.JPڬr)8ޯ3qJ,()Wֈ?nT 0acRt7hU endstream endobj 29 0 obj << /Length 374 /Filter /FlateDecode >> stream x^]KP +r (~ESӍ u̵ڋzyrc:[ y뼣#P/F D( <NFCaV5LYl{ٛh,"NCySb2z'Oo>SxJ8 [vYJ '#Kʼl:/Ťtvb$m鯙̺G]:smNLxwZN endstream endobj 32 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 33 0 R /Length 119 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUeg``ݹ @ ۗP! ΅3r -L ,9HvH3Ҹ@!ӹy)\/ endstream endobj 47 0 obj << /Length 512 /Filter /FlateDecode >> stream x^TrA W"ZRo:QEpH(C2&-Mf&ʹ{zjnwo;tT.Fy wԸ4<D(@ 縀 uwe&+=/I6_r*8!G,RYDsq^yab6. > stream x^SN@ +|A=+B !(7 J[.% mPqb{g30p] ʧ!G**e1* C&RM >-F'0͗ScdtKi k[>o~DѢԩhZ;vD'.$Lc4қYbo w}Y`]o>/ExtGState << /R7 63 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 64 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 77 0 obj << /Length 1469 /Filter /FlateDecode >> stream x^Mo6+x)PYE @ַ-qԉR֎Hzw!VF"7&Y]ެpCU.dUw𗺺ړDeN$W8i!TgRopr$Z}XG/rq6ѰjmS锜1!,[m{H6PmGࣛ,iاsfz }"x5f`-PRo`9EI [uq~1櫳537!?.wg65ʉuWؕrrg_X}ƈ[QiMaQ>UʧrwZb_TK{\h =&48{Ftjϸ;XdԧͅYQoZkwWb7F%oV $0Ms;}T&Er+ɳ 5!m[|fR(xbd㖎aBQώ=G]{Fc B%P{o[SxPsQ#V1W<1 b)kdƦƋ'$8MRn<0H'P[1 d^V`c'zk f%Zc,|kxؽo}@ʱ|[oVtdy=η(PmyL \o<߂^[1[:aqّm=߶ 㷧ݳIP0Kb@z|Mo˓`߈="7]>sl"RpqǎƸ(P1nyLc\T1 #&MбV:g6A,& Rk3|[6L{LTA!] >-70@ &qZesp. Gp5`΅f-HY!ߐLjV9Z?`̹{ :v4 *$]0 iA͹i0s`ng<~kstDЊIxGpnY 0Idtԃ48瑌 I0[9u j-OIs`Yv>"Z\3\+`WϦAb=rpKgdnqL\rVI7{xsEoYp9)}a>>ŀ%{sdKL7,%lz&IFv Ěl6w,~o%իOA{WT! zz endstream endobj 91 0 obj << /Length 2547 /Filter /FlateDecode >> stream x^\ێ}WK񶻪FA.?(ٷ8[eY[,Z=+;ď^(ǚ2V:[,3 ~a6gRÛ`EI9Zz,6LG^6&jª5Vn^F%)N?srZY't}3_i3?N+6\ ~~Uq$Ќw|oq ,QQO??(j8~T,?A@"?EG,νOww_~>(bHe4P҂rw,SH`l8hs!AUqIr?VS~ӼiU \xʂV'ھg p<Lreq0_@hyypEIuJ61&u5yGPBޠo{;  0v6A8۬ ׷Pʭ\I@m7(m&HߒV&}N) ]bP. 'oWd{{ D@Ȑ"lu?[圊jH  gÃv[wOz#T?}`c "@T~^ˠ"cvHgF ֹs9^7:':罷&F {9Q5JMOIna`+e٘Q>%Uh8_҄`^h L _T4i9ƽ˺ʊ/4[$x)oR@j[;ݬЊFG+_qV U`],3QIY !#Q#rY+x?3 DM#az (s9:c|3 ͌uie>6&#E@ϙPCju0e0 yOB_HlcJLP2Mm,x?3lV0-C/1ą;E+l:|3] 7 Y1l  nzJx?0#bQN [9,,`^L~fA1)/QLNg̰KEmj<5Q ,Q؆,x?Y FX~fs >Y| }[*x?3<~,m< Z,FR6,bVi@f59,aI6)̌&l4>ᮏ2L|3olcj g5>`>/iX̰R"\]YL 3G0èf[& %wʦu endstream endobj 106 0 obj << /Length 3365 /Filter /FlateDecode >> stream x^[)F_X5(iSw:7 %rv,c!Hd_sx9W ';ſrPÍXmOn.I =~WjT "&LIi;j^ ?r1$nj.S&Vx>z:mY7n~vRU\J$~`KU}JF{9Y$P)R`V+;N<`ɧ\*Ka 3,7Ig?\õB"Hgo{)m~c+c?俟[_?W凟ÿÕǿR9F<'Ivzn$XyUAgd EU=6cQקKHN^9ЍMϑ2.<7̴2<,0SAL'{3M9Q>&GըYՊp֗}<¬%ca!b,JFSL$KJJ?sVÉz8} Qz29F|dal CH m˼.zh2]$*m_-UZHB^LwHEd`[N+zX-f`HF}cS |dLAql$+xɰ6+SYFI;z#Y{Hdf˒ɷ6!gdT'M ak9;lo~ yPD_E._BvrФX+9(&C!і`ʷ;ܘd*745gDYmI2ow'ӪrS|,ʈb| nHwp\FWVG#~{nwLf:*d0A%Lgo k˽+g=0_\LP)U }Uplu2,NhVasݽfjlEy}"O'VYf]y|\ƺ"7tYf].*m f]8E+oֵYW?nz[E.c6ڬujĸͺ+#s9~h㮍.]skumuy"Lhߍ68wQ,Hqs\[&hLr]"V0Z@)ެk㮋s9cܬk[1tͺ:XWWvͶ*pҫE2k It1/r36nkً/ S6ńSӖk^+^j~y|^retfg*;HɅPm_ᑊpJٝ$G?#m ^4aF\` bwS 4' \mh~Mgn&x1.*Ǒ&j{i{y.Gй:*?ܢhydiVE ۗ(G@ӠGT0?nJ+'+J)_BHi١W]VVG.KVouyd6eWw /{v /~!ie endstream endobj 119 0 obj << /Length 1135 /Filter /FlateDecode >> stream x^[Ko7@}3O>z, Pnuk4U'8XKZΒܙ7|~p(<>N VRհpQmMsA,jenb!%l6XT6k}5G)lbJ|RSH7';/n<\=b!BW}iŞl GOTOX̟yaI5q@5߮ՉKX|sΊBJַᷯ_i?/V%W˛z~nIW]|h?vͯw7Rv^~1}>$RqX cҴ7p^2W-n|9)ju %*݇뻷6!~QF?;Aro{&DZn,e G"Q *Fʔ=[N%0ƫ-AY$*QXh)P7y% 7AQ ԥB 姣Rae.9R{ VDJ 6 epvf)X֕*Xw  YБ0#:fՉgvvpB_i]Ϧ}mþp{q/@@C tgt6894KKft]] c <΀0Z]y]\1_lT%ȔummGâQX-t.;gLXmρ.,のѕKsR@@ž125еԚ`cc31NLDƂ8âCF  J&5$juBbIGZLS!]5apsZoz'aBE5Ȏ 84ͺ|[UB>< 7N<+#*w`8_>>q_j endstream endobj 24 0 obj << /Type /ObjStm /N 100 /First 815 /Length 1778 /Filter /FlateDecode >> stream x^n7]saub^c$-₤N%ɓ 59<eլm}2~ݎdKUw=$H9n/C2VƢe.fg96ktޙe2)3R%2)E6T0Enʳ쭨i;/Z&' Q?^vCetHK'ƨ21UઌiUi|?n-9*2֒3׿ltflUajW~`*+J}6;f+ZohE{MDz;րSv5\ӥkg+f~olڛJo%H]51-W8]jײ]S[qeJm|lw}6jKítnRߜٖBQ}&0w2zPU8M=g3sֻ\gm@M7$XbX:%eM&3ͤ5i&ެf3)_&K?S}^rɀW^ x7^](;/c͒HfÃ;P kgR0#L ְf̤LgdRÌ[D.'l~;:y&WBʪ8ßTӸ΍8.>+wp?ዽ_^>H}?gIxvA>8gNyc[ Ύ'B/p7@ˇ ' j.w_ol9<OvtP'8ϤLFgRPL 0pIAr]s7U+ 'p9@>Z5|84ˋ0nSF&78\fRKLʄo&ez7:_ѨW$n8aoFG_ {nn|Y==/qbbsb@)0w|)GQ,"2) GN&䈿ȤFB XТ`]v^wGx`X!|Vl[ƶo@E> stream x^Ko6fWA۠ޒ>Rױcx>Om-qjV' Cڑ{}ɱ;DQu{v~.*D^Cwn|.V*sʽj.0)2ƚd^=,gg9gNTİKX#Xx&x^;xnu%g{?h^Ie(ݛOrY/j^n^>2ͻ[V~< ߞI-={}B2aR\jH}vpW_ ?ΚmM,%"p\ XZNN)nS*-G'@T)>s+SOfA~;Ds9JJ=Hԙ$eڔz4!Ka.[+j{꩒u%-5dy .&PfE҈&db"5*mJ=HS%kktSDAVƅ Gl茌?Jc˵MCH]YuAͩT=cJQTYÖqݘPuVO-x8Õ-gY`N*YKCApL`–!/8%GB)'u{꩒u8  [ucFZq[ klQ9*~{꩒ȇdõ5L,BŠRj' 4O)YG~(f L8%#r^&AH*YK٦ԃ P#}Pͯu4*4O)YG=[&  8 4*V*YK߸)`B%V9P,<|iA}J:]S rۭuc(HゆpF`i^Ja4z45=4|{jOo&2-z6 6Wx۾ Z[h'tDNQ k3G5~$YF86qA.ƫuަ endstream endobj 148 0 obj << /Length 683 /Filter /FlateDecode >> stream x^UKo1 WDvPPZ(eh}l=N+Z.Kޑ~≠?nÒݭ;t#ۯx`T3pRC5a{'+qlVgpʚRz/sIF.b0%.s,r#r ',^^T3\Qkh1UHJ_R!mդ~;W=kT`~Ek ``/ ؛϶+;=i֖v=vV{Ԑg QJ$iȴIȮo?n5G1̾+X=buzwq9@}?7Σzd#bah z8m="sÂK5Ć CWGP=h g5E`p- Yί+(emc}^H9M)GcI#`]&ԚkfB;Z4T}VbPLYVI %Z,)IPշrYt"r ɴ0& M|,`up)W4յQ*>/YS0H5_uJdDӡEJ\VvZ"lЕ+{i2 O4εt+/ސR endstream endobj 162 0 obj << /Length 455 /Filter /FlateDecode >> stream x^SMs1 Ѕr*Y@;pai4 i$/م;4ғ'5\TJ0u ;e[ ~Vʂ m? ǔ}6ICmhՔ1L9? KcQc9qH֛FquEL$'Ӕ#'2MC ϫ}ʃґ~Td8cuŪjVU4c )bM/"v樘EEՍgL]MuS0ƅPrL0-W`nVV3ϞC2*2 A6:~q@SFUījKDi9}24LE\\٘n涿[ۮK3_I6/`,ԋc_Fa#}!W)) אpkʮC0}TH endstream endobj 149 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 177 0 obj << /Length 571 /Filter /FlateDecode >> stream x^UMo@ W PwlA@F --ZV8M&i,.4g՚kc{k #J\5MS>@f[ǷpG1GCRv8AFr&o2Of%jՔ![Sa <C@ g%!$ʩrfɸ0l`ra:BYeP#P%$]OB-&\rdM2YͻǧW|+soN݂-Ζ/g]Q% jo#d. 2`8s*\+`e0> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 187 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 190 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 192 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 196 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204446-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 134 0 obj << /Type /ObjStm /N 71 /First 622 /Length 1902 /Filter /FlateDecode >> stream x^Zmo9b>r:uw*%Ѓ"=@!MJl/I%!iH ZyxYa$!ҠCHdBkVw֍9}Ƙ\*> ǓX|8|oofEOW|Q{pgx~ioͨWT֟ iɴ P^ /uD%cph4E$JC p }_bORGz8-`|h"w֦o]lGV]4!ڏ"ڶ A:@hBvl <c?% u#T 0܅\zrZ! P~ @dȅ(.\̐'-+p5d!GINyd>myW5Fsz=#`"փNNa;۴`:5Nwl];堬ЗeDxo||WY+xK3x`  (/<~iQ[g" <2A2C5CBC6CF03EFC7609509D02E9EA69>] /Length 476 /Filter /FlateDecode >> stream x^%NSa~*,glX6+88pоɓ]o%l B+PWƠ+pq&f+LMebJqm.5 Sn5xŭ]L'$A;Ӑ3NȻ~C7\p .CnÀ[ݯ8tA-5^܄[p 0[J<](B 5` af[m<,@"<`> stream x^un1s Hxo@JEJW₂Z4II_'iҽ8;g> 3p*((QNnf9_Llы7U|"?pj݋aA*5R>Fhu/KhV9zF% =-mъRh[ DcɟU= hA+/k?p'v.MML nhNS|jK P3GNAD4;_tYC,WͰ}DkEg>0"?FL' (8$]a]HnLd+.?ryǼ_>u $%xÁ'ץs]m?7 Rx endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 12 0 R /Length 132 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUeg`ԥg&At(Y0ȝ, Re er[X"s9Xfpe(q(Լ.t4 endstream endobj 20 0 obj << /Length 653 /Filter /FlateDecode >> stream x^TMo1W? ҢJ-D@ M;'ٵ7MDiY{l{cPp!4ER5 W[ot~ߏ k]7 mN'\QGL1XYa0*z:F#DUXi{ >VzV3KMu 0vFIH`ci!_$\@t \z*]9>Xqlni38V!2tFWjk#zGJG|PIK,!Q%wsm4h-cUi 66AFg#/Ssv@\?mqCe(/.$pJiMDk3O @M߇ W<] Ƽ"9Ki 247p ݳfRG@d@I\ْDͭ gCm$+J^խfo|pkذ`҇7)9jfjSK&NNJN/m$biݣz1v!qqZ9-6we׋\i{U\ ـ.{ιﹳܔeN2w&[$3t6G,(0|1 0N+:?[ endstream endobj 28 0 obj << /Length 464 /Filter /FlateDecode >> stream x^Tj1}WK~]4Pچu$q]Ǘ@3c0==shLA@ (J΋Awt5LW3>R,aux-w׳/MҙUBRH ZR"Sx݊kjk`=~CFi0LD(8ރ hEiqVd>2$HE= )Wk=g(K> >9R[JڃӼhm2t˲MI+϶Ɨ1Q&Gh:m*@[EK9mQ/`2/H< S' kDEIsXpxø?@|j7NHѳH,kMB&T"`CB"a :F~ l@UJ?n% endstream endobj 13 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 29 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 30 0 R >>/ExtGState << /R7 31 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 32 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 39 0 obj << /Length 1583 /Filter /FlateDecode >> stream x^ݛmo6S̀y6`V@e 6iڴ$-Я?eIe'=˳s(yxRPIE8*TpIϫx{ݹߊWo]Wխ8OwcEO*b\FLmwi6X5}a2~&0 sA kq3 A]ʄ qڇ[aaH@Z$`3ZVVυ7@@[#Z˻I,;+fUXŃ0jo!&7][N@cBڑ[K#{^,d^Q髼2Yy,NO'So'初ơI&$>5M?GϊAƝNx|Z|ʳO0&q髼Rpއdx>y8e>e|Vi6. ZGS9 ai4 >M_DVGdJ@Eʥ썲fQ|F51R%# ǁyrl`J+ML)LV!P?0o4 Lq*[k]‘,S%kgq*s"P5 BR,!/f)z{^!Zl4' Vһ1W0}X6j:1eG>%Vb8!5!7ĩB><RRبk9Zb@/)}/I~\ܟlsjoo:Fz$SOsɩU()8Ť~dLE꼐o&∍`QZG;TOeSF9sZ*0T.8u:o)"j~8U#9 eNe`NY` \boC=F?:+EȔ.#Mâw̩E94sS׹@hW})>uKNM_8'$R8cp {rm]NWdPG;Ԋ Ծt.8PhB{R\rj:o) |NiFx$K|sN?(T%4ASʦڇũt.Ɉ=cs }\MM_8˾{ox=/s !o,*Whd)ԃùX 3=Pxco [Uo*Yaxaڲ4]ow5EKx&/R! endstream endobj 47 0 obj << /Length 2638 /Filter /FlateDecode >> stream x^\]o\}_5~E mP7#qہXv?j^JVVKQݕ ܙ z|cj^1lՋͯo޽~Bߪo_zvsRg槟^^|O}kYD& m1gu9CIpŭ׾CUg_uV^MF94mFL+ĭ`uݪ1CBk=:ϫ۬NZZuKW]'m\wk&•}4 1]~彪9.r|ֹ1`Rv@ݯyZnwry=1x9%{:iS9(j &K_]<?z?<Ǜ_42x_l]B;3v6rX5ɠٖ+/??<4}+_[vGޔ mrΚu̚ȆLa+ex _/ӏㅁe,$i23OԂe4TFL ?V:9x_Q*j-7Z.yqIVFnt"S,CM>y6jK64Fcx1&Kq,6 d҉W[\fS3ReE/`&N&oe|R\cO}GSLI"]/';.iqdVO ɀB cW$ub(D0I{ S.L.}awN]>Tgy~fxo}:yE`[t+}:}Sq(TyOЧ#D~O_׎=2}ڎҧcPOZQ} Iä|4qOO }Ȟ3bJ@U&n-Q~xhʶ=.R eVrlqPk pQd p>L{L )+r))G!ȫ,[նxx H=NirFT.g>mO=7aו W8a+z).F7@+:lZ[<{&qt! ~۞B2dbDU=Nݠ-}p+rF/OrS0m5:%Bv梍N N-+PGG֩W˞ƹҩD ޣHF֩|Nb'I|N1")S#3x؍ҩe7yKql{HQӦNa:%iMblQOݪ:ݱyd,%CCqqCIp2?Auǣ%V @'bo-v{. p U=enV_OH٣`XQ&sF; F˕"2>cM֢u#5~< *"Cvfa_FT4{ 3<ׂfdY/ACӰxQɈҮY-p7+IZ*B9]NQ܈5+G<%.JfݬbQ(V>C&ݬRD"rXEX ʚAG+$ WZ~^͈t 4~d >WyK%p?/Tj#RWvK`{Z cmK`ׄLyyA8⬈v} >A$~7D~f!hH;kj/#!dwcm Hd9g|3TXCć3vx?3(QHhbx\f(wXs$f.Jq8) zN|3*%kf3#$&ZO x9f όq\aF 匏`I9m[V%x?3ƭ{I`j DH$YFaSh\L|3P'`uL~f8- e&| lu%0|3L~MBDu7+|3XQ.$K͘8g00U1ߴu0[_  gZ> stream x^]o+xF#z?rY5 hEӦH$G.g8Rj&ZzwE;<|y9gE֋E'y=Fhٟ^v_WWoO{)}׿]O7nU3Xez=}Eguц^ G7WߝK8_Vtz>Z)zc 22"o)}T3'"]>ĭ`qr4j31>5SEqp9~ .g[SxoVƋ:p{p0|FZ_iLaV[`@L0O91?U*UZBdã%0Dgb.ٿ^}էme7vO;@4r>8ᾉژ<1<;Zc^~ڤo~Oɿ޽J/oL<׻]lF=(%]j8{=3[v)?$y\nnQf4t qs`JULa,wB8lt+D'D!/;>'z$KvjџA O/>BdZM"AFoR BTCP'R}+o`?ַ|d  )%TQyE6Q7GS>H2pJNZ̼ 7P'͉ *9Bk<' e7}ڪi)Lν!~^qOO }J1>$3/) d O)wקh}dtJnmF9 .5Чf }:~LG:T T7P()\Z%QAE9Y7ܻHU[*m9zV?0Bt*=.YzHɌ)ҩS@հKV')z{^-xeJ{Yjj [:z΅NVO2:u),t['̌AjINq#)D ε /RgAS\7g1U?\s>LE`SoSJAbt^wЩmn,g~_{;6O=T׌s)Ů҂5\|NXIT)t Ne|oŇ?KsmSd[.*J}r`ӰQOݠq;v΅N&Ba{Nԩ|NDl4NeNh\ҩSnSƕ4dGO{֩YWʟjƹЩ@zQK5\s>HLrB| ȯ2@x)SN?I `QiS[f[G(jƹȚnG׌r6uө]%v~>MS\%CfN Θ NI2N_⅃2X=e']Yh2nQT'ޫh)I.eܡ Dӑ<CUUZAdTT;'I:잙ϘŬST5I^ O>-U[ uU9 ^ wױ6JKX{v.ng2Y2R1gRYMbV> ,zo1 XY7<3V^*x*V2܀uSL8cŬ{Ҟ0d\U/%`f#+ xJJyex9/*YKR;ظT47-9_ ^ ҞIVTX˙97HMYU{)3ނK˖[h) 7swxfTH]GO-JCoXe|13%lJ Nhx fR\r e—3'6T`>QY)I3rf \)`F3Kc6MeƗ3Ӵ!tfj(wx f>uuYUƗ3x fF:H2ƌ/g˨BLF|3rfoR7aHj/g4eCb0AŊ|#㋙i7o /ʸ UuTƗ3cyӢoŒ87`*5#n˙):XZg3)tuЙ5[|937(VJm댷`f@_&Q*˙YΡ,.\ǵ؅Ku[0i)6,iε1˙B@e3(e _Ό$f/u^;g 3|S1̌7Tg`F,BBOYƗ38ɲGR&ٴMrf<)f*fo ~rl5OrfKd3<v7X1rfHXيY[0ËJ[V ~eM6y:o /֝V2#"b黎M[0Ë)_/gF9yXW,M-blo2F}=u-0 c;YR ^1i+pMǣ[κ$0c oA!JHɳO龚4'&]7C8 l#O-"$LӎsMaQ+fΖ0.r*!U|%Y{BؙZy8 إ4U tT|pl y)> ޤY:hH;4e^@԰`i竀-[\Vqڝ5-vDCdGMJ͌S}j_}m վVja_dGibFj_-1WbkվZ/4"_)4^Ml|# OlW1u/I}yտ_WKB4_â|\ ԃu~կ&a \Wjb_4$q}>6x>F*I^~5/+\ I8DpȀd.5pH,ރ`m,}6z^ l<YEG8W̤T /i7RK{TQiD@BzH{u uwTMkL˧FTœ@O |?J&4Y4b Aӷ|g)0t{MGɯ SZA  7xVwJ2XLYgW>tPe&莙ίRp9:X.UR`̊ !CO¶$).&8lqfc(.Z9gj<)eEy?~}uͻ~C endstream endobj 63 0 obj << /Length 1251 /Filter /FlateDecode >> stream x^[Mo6WR>,͙!dE[=4Mn;G>j"UCm@#i4yq7\gNlsǝ\ߘsqv{qcH3_|;s7f0PyPv5L %sHX9lCƠ9$#ɫAwsc_߾$1?s gOV(Fʰ(K3F<5d;TYM𱍹l=\DI瘟tjs֣P3gYGA\k`KT:qCqxjq'b2D6@CdN6φeuѬ߾E[?NqUv׼C98~j/Muyټ%e^*gRޗelލGů ޸L5ӌ+'Ӝ—D-NtARL\Z 8[5E$!6&J Ԉ$$2'Λ YuDCDwI\0G!6g2X/wNuIɪsmE>׌W +*CAw aiZ6~ XK'A|I+#M*d)P6,XT$ֻ0nFܸQbfC&m.͛)m[îm":jECrbk74z#Ɖ9I__ N?^6yrW_K䯀ـe2?ߏ bz5r"/LD-=@6n}_/>e ؿ |M`w G::Y w-2 8;g` )}ge2X/}F#I# RT2Ɠ0=\$, ) -X:9dHP>DܳՈBw'*#-_ Z<x hSp*`hPsfBKH_)0FVRX> stream x^YKo7 ϯХ@},%5 h,CӇ:kǏ}63;/0H"ign3 9&doóy|X23_|GsO깣J3;m.f5cfӅm C2rjޙ{s횂y^7_)bć>Y)C,Q|i@6]btj[mۘ˵|^4blk,ٮrkѵй](<ݻ5S_F5 `z6x/y%*ª|FWz|z߆Uw#1"C MfpdN6φeuѬo߾9}au:toUg_0z stccdWUuBDr-rTie=y_\ߞqqo,[X aOoAo[1KAS ǘ:r6Ǻe:\QGFN @mTd̞cG% $ÀwLNB!7ĵ 86`c - endstream endobj 79 0 obj << /Length 791 /Filter /FlateDecode >> stream x^Un$5+D\v戀V KhF3dsO]C&0#WP a!8_iں/hD7ۏqx#~zwOӓJ[sTjYj -⹵m\nŗ-Wes2Bz-zT́R^n`Tg.-/ٸ$hZ6u&xؗ~/.6G L\_g+BU |LciҠC8Ᏻs9}xǒX1ЇO}}7Y>6,lcdRKYGbTT^PKVo j_Difuw Z"GYܺuTjXkR)u<792W ɠQ&}nI'gv3e5m5-Z' B/s+I` Y|Zيcfn"b^Z|ŋ)BZiz G`EJ9 3{Lǰ\)`i'_+8 !ƼؼY$8 KOUrH*W|PFX֤ሃI%<ovhuf? (9T>2}ԯ endstream endobj 87 0 obj << /Length 563 /Filter /FlateDecode >> stream x^uT]R1}ﯘR:FݸFQDeY`"w.霞9` nRT@Q*eu~I%^Al;^Jlz_ &;#'Qh3QU#ĔBJ.O./(V+ݭ1n3CFi0W$bH$lA@& 6(#i,C-Iv8D´n2=Ѯpn*:GVW֋ZP:OOok67*iirXGcvϽ5DjDCaN^* W|=Yrx5׍}*mꑏG'2T7 zYqA tnK*>W>S~($OrActtk0*ҹY_IS/6hj|Htm4Vuac[p׹rX!1Wgp\`ewŌ8\+Xxz'jg̕L<<SuP9> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 96 0 obj << /Length 707 /Filter /FlateDecode >> stream x^VKoA A%:#V**āڦmM4<'3ZāDnp\P2ε0.gP.`\Ngc\LfbU`rY/`Px$~O53K̴N1  9c铗yy08]~JSZŜ Fp3%9ÄpA6L]'2/^e7G#h8k\2ޯ,Lv iΑ6jSmwTXjj}c a<#|A9^-L,[,FE3麥Q18m!X0FXab+@:&-w0*3%IvbƓDNQ(EaLjn@x1QLkq&>r(T9Yp JC%TW!&aYPV(8 gmU>Ę(.(0^~'Bj&W=^~P)E9Q1xb2^D%#Q={cڗqd&v_Xd.z؆Mf[|uwu3n]OFuMR{I =r |!RQ;^m[: < g:WhDŽr oUUPMbf%v5,hZ7 S6Sn')eO)z dˊ(`i[cʕqg "N endstream endobj 99 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 106 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 109 0 obj << /Subtype /CIDFontType0C /Length 1363 /Filter /FlateDecode >> stream x^uT LSW!\gzޣN<|0`Db)Hi/P2J ٔ"y 7 Qd/3ݲ,Y?99?1>q|"y݆$E"!EmK<ŲX?b)qy>Di'(/a^5śopJK>#Zya86ao FiM\mz[a4(pE\hgl 800dR z6jA$HTi`2ڐLY@lyVbStz+(0Yr[2Zg2`1`mj Ě6k V:&&K, ;Ye{DJG(Sb]6e-cS VaGV,;l)& Ă`,[t! g< -RdGx(<BNފ[!?)NN#+B\x :pjUoqŦ~dXr:*j o\3mSѥeҽeCŸBTa"}w_'ጇJ{H'Ε6c3a$gÃ1.HU(r F Jto2^ur\pe7S^|&kDA MLum՛jfGkT=tN@?UZO™?޴i'\ց"zBQEB{b B[фx} Կi\꩞/ߌVGna]B*̬ GgN>zq6EFdmo*}5UtE\ҵ翾uGPAxcvئ 3;C!ޝhuZGmI.IK#:w"GKdd)3ؐ&]n.n#~D2"BnCx:]h9}ol'}c}>kfΒ]SP7;]_ 7qUh]9psHt8*.UE5C_kl endstream endobj 111 0 obj << /Length 361 /Filter /FlateDecode >> stream x^R]k0}ϯ{(+ZjruM$~IZ[+D{9GGO{*Co>pFuڥ5֊uvȑfGX-W:p,YqPXys`|/o{z|z]&y',2gіFȀ@%L)fUl†(r!65NpTeIߴX2W$ 7D޹9j! ?h0IW%Z?@IHi۞bnv50S:eSY M 4pcWV೥S:> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 116 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 120 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:43)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204355-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 2 0 obj << /Type /ObjStm /N 95 /First 757 /Length 2226 /Filter /FlateDecode >> stream x^oSHS̽FF[ ^xZ;cqs|Ȏ!ppK#i{f駵 Q.UDYeFQZQWGʺPX%&Uڪ4NNUf$S:|6RQDD(mbBpԷ$E 4QN)󄫋1:G UM5FDiС4MX N/c Q"S*j$\`,zY+&EEglՍs e)+Dg,#f*6(T!*M J%L$A /:Gt#R)^h40qp%% =UlURߥJDe!R/M%qbHx(̫Cttpe g_Q 3Dh:!ȈB7ޤdL*]Ӱ4?zi~U4!]Y1.n1<EeX?~ؘJs т@C*k'J0Czad#|n8QoOI!+ƷR}Vq/oesao-_Tg ؕw68y;č O{Ǯk)MH;=Rdo&5mvTwł9 $Bڌ^;_V9*gy2Ei']#/)_~ǥq}lxF̉䴑3ws*m+.ԻLZrR;!/8]ŻL_X{0V ؆kNVy:zb}a(+i]";AƋyNP⑓FpؗjȆY.$ʅU*)Q3mX5κHYR <22AEAB4323241448336B2496B55268BB>] /Length 311 /Filter /FlateDecode >> stream x^7NCA{ɘ&'M6dDEK"(-= BTX_srDDu_i"{G*.h5Kş ~ȁ\ȇ<_&)(B@AP%kvP*k+ *Ju&PP *kfhVhvp] a>U;~A0 D#Qq)TYįa0 0;,, qu6^UuV=YڀMuWVԽYJŽא]uoߖҰ꾺[Kp>'s)y* endstream endobj startxref 187766 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/ThickStripes.pdf0000644000175000017500000055617311221776611026606 0ustar hillehille%PDF-1.5 % 3 0 obj << /Length 471 /Filter /FlateDecode >> stream x^S]O1|ؗ'BB J ZҊr@BJT&9$CEsx504PP  ?0}xps7oet6wX2eX5欭6TՔ&G稣٧UâQ!@ڒ*%=sIƈzTkFWV*T\kz{%k%~a3_xʪFǠ)$ uӎho O1j'?tg'_:'DV3[/zuZr՗2.S%=tuN7K5YwU^p0ьg+$W'=2&D$I00$R)3%P5HUqp4IJ-j^y9q9Du/R%|կu),1ꎷ<~s^Equ˞u/k$ endstream endobj 7 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 74.7007 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 8 0 R /Length 128 /Filter /FlateDecode >> stream x^eN;0 }Zv 01p(%-j *C}lY! ؇Vl+P72C w+DO"(TX‰JSeStoIH=$ZyX7+ endstream endobj 12 0 obj << /Length 860 /Filter /FlateDecode >> stream x^VMO1 WRI^*UJUKB[:/$ab'_r)G-qTZ;K0+U'u\];Uֺ'z({O~Bo}Z'09+M@h5䤼!f9C:e $Ztչh,/f)N> stream x^UnT1 +A B !hv<$}Ν6LG,Pg$Op@GBe|~ޜ_L/ŕu2~I]gfzJJ\<,c-dq/+MΠO1לJ Ѣ)Q+Lx3eNqBG^?s8uK4^aZ0w/m} I%g ^܅ԟ-">1rI`GEr32&GXnȚQ8\z)E(ѢL|җ4U,)ivcI3 $BɣD (5lPs{HFf6}io}1,b17vb}Vҥ !Z|%H>o$U h.'A-ND"L>Gl=gjOsU'P2$j"h&jM>/ExtGState << /R7 18 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 19 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 22 0 obj << /Length 1788 /Filter /FlateDecode >> stream x^[[4~ϯ Gl{|C$XbwiOnIݕҜIb'\<12QC86mHjUZ={ͻcct6dl)qBA ES)蝔2'(Fjވބ\KH!Z褢N&Ƶ޼V/v0_F[_#d;WS%Ʊh)r^ wmY !=~!.F͞|b%F]cL.LF_;(Al3Ehl1QH-k Iyl`IYo, abŔUĚ)&m"섬OwwQ(jlMmXefWE+R窛ms*q-QԾ國vQl[!#`I[F-D=[i]V[(IZkS{hUAؕ3q bkl`- ;MyGN]l4 V]o?%JeTLzBS0773\{]9|(g9oooljoϻ#OqYeo;_6x4Qprd\ R?oA̒˞T6uX[C{,-K`ɡ%'!L=lԧjL/,߄ JE50ci4$ygjg?D5CkK!qllH(},[u.=eg:ix)tUgZkκrY' zm\+ך0slA׍3/X!oRgRL^ 1P1ZX8b'=(.AOU?@64,O+N O6GkVG>FCu(e.ˇ|?pXTSzBX*ޟ2<~¹l*~Z!F@2::O!ipσ&C,!OT<%OPdHxSQx5j%pfA>:I sR l'\Y KB~adM]xc=zUx !7)!sq&Z>BBK$͗Z% _ä92Om@<5Uw2̂"ke |,y1S &QoĹ xʒl ԹS b5BAę}tt@y?uo2̕,v]3ɞdO]x'nPOS?4}p# )0+Q+);^܇0b-BG آK,x1S4C ˲|OղAar:s] y;=g8cp.6xLB`Pz*ĽIV |F5^>ZRU |[VZ?d5CE endstream endobj 26 0 obj << /Length 2862 /Filter /FlateDecode >> stream x^ݜ[o#+%@f~ 1'fyC|S-Y8lE PCrfNORד>i^묔3Ϧww|{=_NԜ*^r'gIv9mU s'w] 9B JIEokԹ4[:[WU%6GXl+V]]׻ov˘1^j6?F(ك.Uu7~=š ;Ӝm'7UWt?uj_F;=xH*zfeN>!t3yY+Ը٦hBcL0z2jv<ϻsnfnj0ir)%3i7hӳ:f[arz\QB-wy[(k8m}j\dQoLk2rrD 9w=ݩ^}Wn風;P; ԛ9)yS5?ot 3Es eM8Y@ۨQPϬS(d,.irqfȬJ̵mu]F. t_Ko^!-בizUYJ' ɩ8~s3!zue]+/?k߽2iC犯||O?/YW{oV?0ȊqzцI1[|7zOp@Ffoz /+Z/ك(g铝v8,0is7.;O~ω*¥ 6V۝áR1.ʁiUӕ¦F- dr1)km) y\ כ򜋤_1r*Ț'.X.ɇ089{ۏ\#{3Y`^8x Wa){ٌ]Á4^>z%B 3+q2ϥN,>d2*Xɓ' Xt>XRѧ= ,:Ax>}ګκ~tv}j{>]] <@"Fק?[\j>k?=:SH3&5fЧa+}|'.GDN[ wDU#4ji$J\9yE*T0΢Rٳ@Yy(W28Se=޳'RZ:E6h*Lt&:5RU^ B$tk q3TO,nqѨ\%}᷹֩|N4F*|Ns2 I1~֩ğ8)H]Ft6(WAsufCS'\Tt$F/6:uOөbdtoTs#2Ζ\6y?BNa5aF$>}v(|=T~0΢S]WcU2dwJ^t#ī%uGYMSSt1+Y}ۃS5Y"eH3)J9Nݡ~_tΕN9zW):uO)LZvN >BYl..٥=%:JْqEdgfO3Dhթqt*}qak|'+FHL8]”tʒϭ۔)Sd2#~ZSRS{nڏ?N \eMQ{3vdo:m9S%v>~VSUxS莎rƘ"Nip2SV:(@8RpR#yLJk|;-(ע 5TtZBx=dOL1!Cek Yd~3[aF =fhx1[P@-bXmCĽ%)>ḬܝۙiK6UK'*-%-33 B)G0 瘻MS-vfc|tO Qb͢Ό9޽4`F 5kogO4[]K >6s&vf4QX30E~XW{|;dq=30cH)~|337n&ۻ>Yi6=3ogFx<ҽa*=oۙ:d{_ >k UtfogFCw|3ZїNx}og9zX +J`n=ogh.D_mR;i(vf!ф q >Vie&vf%1zB|xҨc⛙5<+|3dFf[fogF9 GR%fld:6{|;3V}ʟKC63Bp礗fXmۙY.\ҏe&fX8oc&vfD$my9|G0Ê*[v ~+'B=|3(:wR1|;GD#a]YXE{&vflЛźgaƶj lZW endstream endobj 31 0 obj << /Length 3613 /Filter /FlateDecode >> stream x^]oWMehH껦M]%qX\hw:kҕ _j|5yT#R?oƛ7޾|ף֟??jJ?rGW.~] :ɸlo14yCCIB˓!0VR)m:&cyUxծ ]‚Vw[]w_ߍs_j2?>F-ق_wjՔB֏?{}b,*lla52{Tqr^ƪEwSғ۞lZX Lч)duoBl&;zG&GU1y|t٭&g1dF&vtzRQl+LZ_/Vroyv=,lrGSm8,m}_^=է5oi\QZ!z}:K+Nw 鬨ABT"|ռxxt\Goݩv^i'֑o~!+H]֠"ó?'&W:/-kռbLz|q3w_"+_Ykg𥶮J^R~/o߾*)?͗ؤ>o?φ?Xܬ,Izтϣbt|gYy _nǟ d3XUdWMa~,glA]٠|z?<6UzwOܨ2"\JSp2'7yt0Led&DIny0Xu1Ǥ&RV1k̗YF!)U2m5b& C=oD&NSxr2n`h=&=q8,ݜM|]ES+MSD2SA{y%N{J0(d2*X ~=O*h\1|ƥO2dr4 rtPe]f)_-d]O|E?{FqmqI12'v+})}5骗>%9~PԍSH&5fЧn+S>bydt-PAQn-Qui&jŋ6yE*68J1ԓ0_уv\|?*#!SLQʔ҂SSڍ:S^g8*v 8k ~g֩y=Jl.GZ?{M_T)VcN&6.):fW2/upJ_\]XPvT]\Tt0:9OUſQ9΍th;Y#s9@\:uNYf1lߧ/S e϶>Ծg)é*rۍrSOt#īu{YZ?[<abGWʾ۞"$\)ܾ0! Q sS^r?vʵN=~)Ϯ){T"9?[X)["p ){aC͹:n+J'>?z7ʵN=~)W7Sw)K.^L :,BsPC tt@ͻJqH5Ȝr׍rSsNIwp{ݬ\Ő.)t$bT n˵a)1.VMfJE>$/+=yLJsj|;-"_Uu\B|=aɞbbyMh`U7ZDKqW-h-ZbD'88fvD4Gx3+R:Ӟ {-6[5' Gx3+,4$Yt1]HsmGx3+݀/mj+|!vJͬ:uZñf%pVSE֬x3&\a=[+_S%1zJͬR$X'pVQH2ንYi2i"ޣv;b*$p5) SI5^+y71U1ct33uPɶ{i+xf)OT5|;37<=QYLk0|;3ϵDŽkܥ``f=#og()DmR;piQ(eaC*.n{0Ê2^;* aI^f&xfT#˧aQ5"yVxfaKI]3|;3\и=*0@$ST=ۙL5M\ k,&vfk]K 9 6 ԰mv̰Q-aM߂og񩐷z +ҝ6,#=a]YXEc&vfPź30X5YEYĆقev|x_B@lMuA9xL STX*ܲcVTu$0UGd f_ 6e{I"x˶qVN %j3cB*u jq,*Ös)K&^ ,W(eԹ GU$_U{ Vf+XQ롂nԬfVU)pJ $EWzzKk(;K7  *@P [j Q*~>>n?;_%Ҽϯ/Juϯ}~ݚF]->g~q¶k_18~ݾ#Ol9 >̯L0M'}`Divl7:`{K{W> VF:rl;)X.q퇯a$U!)7Ky+Z|zɨtK"|" =$=OJ $݄do) aГBd",?N KT=Eh: HX~R~/ Fj[smsrP&oVͽNU7DSs0.5l+JAj y? +:=C ۪**0P Zj|hy7}=j͏_U endstream endobj 34 0 obj << /Length 1467 /Filter /FlateDecode >> stream x^[Mo7 ϯХ@s,(X (iM|8>7^d3ΌDQOVܵ B8!zro_~|vHq~~_ChgT^j'T.{aPc"kROA!KU\SbkHU4X*U[LkFn2ҮQ ]jZ27 |ی䝩E/9$g7F_91Fv954#sԆRhtZ/zRj<%wKI" եsJ W5JR#(R839>b4F@QR ;TXEAIo'ơh{v˸oulkֶm2lխzʦCQbmmn1t-NCzv~7FioChw,.cPRاZS_L>'&͎+7S)eJ4N &1F}̊NJg pȣtsꞞ#B!tq!}{\Pyw5`Atz/n];BDVv~1nk/u{d\hw?Çv}n^=Ⲷs跫'W߫[2FڻOj<ڍq <}0Dn=mn/W??`hrBt-$ACf F0r S@Ps\:!J\  s n˳&9WI+ ]4'#PDH̀dDk^+l>V}U<&Gg6ň1VI`&klV2c"rmfb8̰a/#65՚8 U i@4_k<}> w ۷? ČAW _`ۦ59&\%& 6C [HEtrX'|= raE`G5,VFC!/XWH2Qdp*Tj@hC.X EAs>+Y g=2i|$Td5Vzo*:ȿвC F =BdkEP*c|G^jgChV~dW =2}Q!ʜ} < Ӯ C' w !HZFl k5p4ѵp8&?ArHn endstream endobj 38 0 obj << /Length 1598 /Filter /FlateDecode >> stream x^YK6 WR9D+=m(skH&L=vҬ=ĻC$?")3ƙ 9C7xsgo_߼{7ߙ\8|Ε'Dʟ>8PΖ}$UE喜6hCG%C0!*%Uz HN[GꨣgFjmuvMwP}9@Fg>&Z8\q)5Б3k^v+sK+ih`'iUY=JVQD X2g8p1{Q[IC2-Lت񏻠{D7]L)!o) OEY:Zo͊&YtОwh즱ÜmWC|5zuΧ=fEجh{wV̭㌀%|>Q݇A&'9 Ms$6lNH A=[ϤMIQ^MxA![&(9\Sp^Δ7-%侀tC 5n1!fum)U`%.ZdvG0)}䩈TrP.7o:G/pn{1찛,Z~6d#Z!wA+xOG2^$dg)ھ/ڥݤxy)cipI9M ˁd5YMYK9 !ό^ c21JTZ%0Vc䬛n*"QŎe5D箨B֡eoֽ 4d A8,V:7P Y:6ET g:_QC;PN箨B֡FG:-uP#SBvCDv> stream x^V]o5} yc36@B辵PҦr4ǛdgnX!zgU29bL9WZ\r _}{s~|{cr9"?C5_11A#֯yԲ6ФMF-TYHt(ATY{֞NsЍ≄ umO> `?4s壩cМH|m͎/vK2t99ᬚj+³iɇQ{s[ <n`F&Ih$:j$= kPSEf?fҴVDwTcL{KMEc-)k3ؽ}i,Lm[w{6mLh96L[jMfcam789=?pZQ2jo:7mHȭJ䜘u Z&_"@O}VŒH%R5QD)DXi68-mvsR^tt؁C .~yNTkgǚ5(p/~r9qv+>W|'z~_~}F}=OV#KILj906 ֔c} /3h%Oily.w[J]pZRX=IK6 g-C5e43Urk`i 4P[x ָ4kkqdxʈ(ԩuUFR*\uȞƸ݈ EGieFn|QE\C6?:62E:5 d'o2TOӐ$&ujx p.+Xzw)[́f%L7,te+*> stream x^U[oS1 ~ϯ {Xع $ƀmm]I8*Z'Klv|l 'AE`>W0=z7h bUoO1Q>zɸR,BvKSLAPM!uXϱJb*gLGl٥ m^)nXc\3Z2&sZO>j168/-wŀm$f6| 8d}p!{FӅɕ V?/r{ RK0*6! (y9Qd"9 ^>UU {n ^V)Lu\*<`BIeӣQQmǥюhzVwt[,ԢPc·~;b}owQШUK6zF2,RFF ,H倧Q*KKjumI#] ĖiԜ#Q cUGuF;1E.n{'\,KZyO{ MN9RmnIԥl|6G_GE>SB~6ٲNg|eƄhD`_b@,i-I96V9A` >y'{*ΫgW[UrQnӖ׌XzM}}!s6R(cG*[Dz$gʧEvG 実U1FK endstream endobj 43 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 50 0 obj << /Length 857 /Filter /FlateDecode >> stream x^VMS1Wb)BΧGKJK- ,2?o'ˤ{gGzIr.(٢VG'ť.Z&ʡ9m^u&.ې:IsTч:e $Z4ֹh 6+yk:k=NSQsb􃌸)+?7Rp"jB0%S_0u;v1Q [9YeV|0=Ĩ7>9Mkɥ/39V>;Ӣ!tbhqQ7 eu*kVj*/EPz3Dwְ4pQ4}@4x7гrY}c#庻z٪JoLu/u)XWrf~.>E3ueaW endstream endobj 53 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 60 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 63 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 65 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 69 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204404-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 5 0 obj << /Type /ObjStm /N 46 /First 347 /Length 1439 /Filter /FlateDecode >> stream x^X]o6}ׯ{k18I?Kut0جͱRIs%9vbqWCBK"!%y$(($% A"Ix$#M'ɐ) #Єd"Ȅʑ#IzERS5I $KO/}pS0pM(7N C جQ I>0%T""?B {҇=$$u4&"-J) IatL"DN 8S:sHQ9,BAW4>fNbB$q,:n7]vQ0e69 P8$_hᅎ@GJ؁ zU,Gh>!|q/t2'~)hKq2,ܕΟ3i spqi{f;fs]6rb3z_ɧ4/Iil\$䃿AACck)7-Og%;*$q~`=Um.4']l~x,~]JOi2HŘG>ʦ!EH#A]7o")XЩVVf3+lDҬ҇o[׳aȅ׺'Py<ɯvJG-P''? &{c'? <3ȕ;,{+dn!+5C7EybNŌq;qn9*i cʥĮ? Z±0q5R},>,0fI^dPB]dSq/VYpyw7<OA^#c{"9Q -1ckppk)֏tlaQMV`Ӕjp<|,hBM>Z|F]>4ޑ 1G9kdL`.>xмt@R8V|Z&5>?hUaW2%s͂c +;( n$̎gۓ5;~8p9=y379xɍYn|QhBy>9ZjqǪ"__T=MNl.˦ *`K4UJ aѕMeXVeBU;p:,geT9m㮀đ= endstream endobj 70 0 obj << /Type /XRef /Index [0 70] /Size 70 /W [1 3 1] /Root 68 0 R /Info 69 0 R /ID [<02F11532E4B12C38553497D5B39FB521> <02F11532E4B12C38553497D5B39FB521>] /Length 216 /Filter /FlateDecode >> stream x^%ϱ.asO[JES \Ab h4UX9]~9^ Ghu{^AׂHY99 F߷HgleD;EEUF.jĠۆMb4ub:wĮh0|M˅3cxm<`?x(cǫ+Nc #eN0 endstream endobj startxref 187048 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/SideToc.pdf0000644000175000017500000056641411334644111025515 0ustar hillehille%PDF-1.5 % 5 0 obj << /Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\#|@  endstream endobj 2 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /Font << /F87 9 0 R>> /ProcSet [ /PDF /Text ] >> /Length 427 /Filter /FlateDecode >> stream x^uRn1 +|q#v%$`hE;U)/dfgT=;F8b!#5ɽ_??<FglY=Pc]_n]UOQpcjY)ˆf% ]>rҔCRYGc,CAat[w:txaE;ttpVnٞlzpM%MNDtQ{iϫ>2DW5;~pooJbp_a9%;L#M5ڪ6~4_ÇF$T|wʌSvç>$b9#ń,sްQ|STҦqꪲjq"l.DxOgtUkLgO*~^+K[W*~̔ endstream endobj 11 0 obj << /Length 551 /Filter /FlateDecode >> stream x^[@+z/Ɍ\v.. h'tVifXAK:oop{ Zm.[Q8NYY{&Ӽ_H2R=&;9]Uft,̻Qw;n?#n؞RjWzW4'G2?EiF*zZٝ({=ܡ0> stream x^uW TGfnD 8HkQф1"f!*@^ % !.C DTdbFQDD1j4=5b=wϹuTwUWUUI$IVD,U|hqXLJČ_0QxR "M2@W&R7Q6luՇVS 3$d$b 10ȱgX8Ml|p\|NvwvuOU%&3?6srEj&+]ǤMU5)&A\M'j5ӝItyF6>9>&=>NA5):"x\/OR=]\tmKn<()pIHӢ`g:"g…p'>%fsK!Bb1$B0"XND1D,@$*"XKi:"Gi:1sb L! n򙙓'(\dc|yjJCo8Ԃo8j(QZ-X~n ਍e&D Ydh+EF5F DSpP%AEyw6[9;u6BF^| .^1')b~qQZɕS:Ǟ9ڇfЌH3.Oϋ%2 kUIJߺtr~9쓞;g3jB{@#iHM4'ޕQ70pƋ2DH>\3{7)w't-P@Ww7 _B37 _#4E4V%qQ9a[laROk./X?Kw(X/kQLSu- \Lz/_0+A? 2+, -5W֌[p:N߃ Tҝ|6nMK]hҵ-i:myg$7s5?RGbydctủԪӹ93+ ]mVq{6 cUdހBwI o`Im/RZn+ݕ^}Ցmo[j_:1v[[-ro krG46~ω;negݐE Ecdצm7p}/zMK+*J8x֗Qߡ1zu¹AQfaq찢UOX9HWa̹G@EWIwRi\5s!DOB}̒[=TTh7:b<5 s\b݇b4Fፑ;0`V b3 `eCOPz;,i-<`?{Ǵ_ʁۻ[q+qƼ2Z Kě2Ó=7e[̀J XǴ[Q~;MvQ!]э4h^rG5q9IE~a϶62Ohf9>ӯ[`zم Et} Oxc_~zFOϗ^:G 6jPJ@/Eʼ$bv P"GIx+[mï%xb͞Q /O BHHjA̡Uݘ !?y4,R&Qi_sʵ|ʯm(eʦN _j)JiLnna.) /[%#3hzEb/٭rwپU}B HLpoHOf/v-y{LVmy ƻy `lL1k5_YkSmFkiNb5Jo50DMN%*.)1qDr endstream endobj 18 0 obj << /Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\c|@  endstream endobj 15 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /Font << /F87 9 0 R >> /XObject << /Fm1 19 0 R >>/ProcSet [ /PDF /Text ] >> /Length 791 /Filter /FlateDecode >> stream x^UMo1 ϯc8'B(VBP,BҖ/ag2OZ`̼;~/^ `lmEZB-|{5,u=PbCK1TߦM)0c$B,!fP(b<#(qm Q!L lU] %.2tT1UK~;2 vc\2!K~xCs-DȤp":PFFh?0BzKMě!F}??CZ{שtTQӊ)i_l2mTqUN}e1JfUXΓqPAXo^|O耈*fq|Mrݟzddm1nFq?_5jjvɖx윚\6,E"sM%O,wd>[&$"Yc,R&׊fS.,&=yJ O) : Fth0se*$H[Ո}& 0AWʔ% PN̝Iqtg|e`b I?\mN~]h E˜ Rr@Sb4[5RR,lM+"*Bg'[cwf,9:+!OP6j\>z[^(!J9T*r|l7ՅF"|k2w<އn7wZXW$eBee*=TdJ6c7qk69iZ*p endstream endobj 19 0 obj << /Type /XObject /Subtype /Form /BBox [ -1 -1 69.0312 69.0312] /FormType 1 /Matrix [ 1 0 0 1 0 0] /Resources 20 0 R /Length 135 /Filter /FlateDecode >> stream x^3PHW0Pp2҆@ NRU-(VH/J,LV0RHJM*530ꆒf@vp w.C(H/B gr[XB)ADH cDҞwm RRK9A endstream endobj 31 0 obj << /Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\|@  endstream endobj 28 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 4 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /Font << /F87 9 0 R >> /XObject << /Im1 32 0 R >>/ProcSet [ /PDF /Text ] >> /Length 624 /Filter /FlateDecode >> stream x^Un0+c.Ϣ0P'q=Эu']R F+@4"1 l2Èdg@z߰9|{y|ZAx כgo+ΦF²I!T欭6QTgSNڛ?b>G}>(rL$Q&3&pQ@[ &:AGe ٘1Po%np.+r"W&)rF:Dd;91&.˳9'znYEF9 ۉ+<: 'f 5rH.`٨c6vNh4׈/Fr,}78r(A@;V G7#c?k jo3EޭT4hwE[V^1pap[JQXzΓ?V6O)| endstream endobj 32 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/Users/tas/context/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 33 0 R /BBox [ 0 0 275 200] /Resources << /ProcSet [/PDF] /ColorSpace << /R9 34 0 R >> /ExtGState << /R7 35 0 R >> >> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 36 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 40 0 obj << /Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\S|@  endstream endobj 37 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 5 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /Font << /F87 9 0 R /F159 41 0 R>> /XObject << /Im1 32 0 R >>/ProcSet [ /PDF /Text ] >> /Length 1751 /Filter /FlateDecode >> stream x^ݛKo7)xQ g.qb CZߊZ7qRi8+ juX.3q5V1;Qx8n,;uu>ިOxٴ*꧆_upPΚ]d+Gۜ71D_e>G}>UM#v62JDoԹ-HY4jB.%c'-RqQ&MA;Fd0,Q{ J|L"EL9;_|˅7l.bh^A9XޟAObm fVNφ3n h'&7z Qj2',8E3pBt 1N$m[4]\aT+0e#ݸ-^8xfsoo PZFBOp9JHU =8Ss4 vS[6 NqF<`ʩlDx &ʩ(9l6 rj Jĩ 1O9U3p*8,`$SU?"+q*\?9뜱cb0XJwDz3"*HH|'|4/pcj}jCi`WZ-@J+B83X3_P \-BxE#m1ߖX%s v2kyڵWe*͐B1ºMǏ֔F+OO7LO>WcSYQxU{O8Q`w6?>֔F +N ΧUƆn>Zj Z+k2 :|^1xB $y| `;Ҡ (z@> P}L"d9n>ce;66F+_k#c;Kj+^ևʗjѐ2U+_ ɥK/p̫zT Fos=66F+N_ͨ4pL%~Zև Ef-,<9xE5^U"9|FjFPɑOWJK^-Ax5Ot|kucOyUmV֏0 Rla{{*ɬEk"wP,{Chx'Cjxn> stream x^}Mk0@zp-mB0$i6a٫#X2}ȿHS(hf^ͼ.0stV`~-j6<U7D6sY#rlaΞ3;Jδ8uI+<*F/n~nfSa#=y@"p[2z=6ZMkX|~Rii/vu͒H% 5QO8?7-V. [, UڳVU-RJ ];YĒɟBGj?U?-I$]a$6u!lA[zRZ~Pu(C:%5$ $DSiY&t(0 h!28*e8+7;}Mu(MFGo'r endstream endobj 46 0 obj << /Subtype /CIDFontType0C /Length 1395 /Filter /FlateDecode >> stream x^mTkPWMQ1Vk A ,! M6VlBSZU@)X*d"hQPT֩s={3E<<E(2KSgk-1aYjԚGJ6ɈpGXeIggy C1/ N{lDnD`(m8(x BPd.¢BQuBJi])N2UT zϭc22U[TfHmLjnr,JbTLPB-lVXȜ2Hn6SFJkt\GI"9TNi"Baa$i(+bi^f2Ë9K%}/LJJIN6,6IEk F?,M7Wk'QAґ,DPH)RT98E|4z -TNm~lm03!dKJ⤮>;[Rq(/r:ʐ)2>F$UyxMϥow-[;DYRs'k;sq(w n]g'l!XE> )@ZI 0%2t>S `9_W8[ 7 I\ﰱ ad q8aK?x~Xl9.zh| Ȳ l+OW,*-oszmSa&ja(軻ןƀ&"$1IuOJ;흇]\gsv 5.?}Ϫtu0yL ~|sNW 9Jvb9mɄE _loTOpM@o>tDŽ;Y܆^C?,*٥jH#–:0 SZ=?>uSc ?Y*0r xm3q؛𱞱[k5=zG w > stream x^+T03PAUe@}\3|@  endstream endobj 47 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 6 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /Font << /F87 9 0 R /F159 41 0 R >> /XObject << /Im1 32 0 R >>/ProcSet [ /PDF /Text ] >> /Length 2807 /Filter /FlateDecode >> stream x^ݜKo+z%~˖B1wA1#DR14DTUֽ%w?U= apwpw/ Ry_;|Xci2 =߇A8*UӥoF+6c6[mݡ@.:7T!ouF-q;W+ t +Z\mŊ:weh?=_zK)F)?ZvC/yU?NvT:1Z>>nqx_Qz.oD6IcsߎPom+֣hb)\bWobƣv$EfV(C/o_~P%dnNj5iv0G9Zō֚w;~(^?F+_ZP +]?\9+c:J~7,a΍~a#Kst2 O[.tW449e8~XsAI홾4X*7hG5||*zdiY <B-,Tդ.ݥ( &W 7:7O?3,n4N\prZ0uNj=~販kSx[8-'FVE=hOoi}$?]`=,}_h7њ!#y2Ƈ&,2G)&)o)V? dJ2Zi@/JXBg_ RbhKXcV4? } nT6X-5jF:E0f]B3z#FH hy1*= J`unak/pFGt=ɚ238u +?Gp9Ie4Q=gcѽҥqaq-E*TJQa,B2bQ L vS3G֙NpjS]̓TM7g +Iu_WوI__(Dkd;ɒy*k##ۙQyo,G=."XV:0[+0cCي`ɞ1x'{Ʒ3s20.62ރ6֣Yue|;㌑ڵ2ރ6$Sf";8)ԏ/xfwΙMff 5rn ޅπL%MɌogjNr0WVA2Yl7 `Ȫ1*ƌ_lU^ۙEgsATƷ3# P̈j}&d|;38xbeԢ3ރ[Sre|;3Oe X :=+u&0vfiF"D=3ޅY*iw:u*+0#Zmڶa=aXfތof6m*2hxf$ȦMe|;3IAvd36HU&=2 im 3$0[̴> stream x^+T03PAUe@}\s|@  endstream endobj 51 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 7 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /ExtGState << /Tr0 25 0 R /Tr1 26 0 R /Tr2 27 0 R >>/Font << /F87 9 0 R /F159 41 0 R >> /XObject << /Im1 32 0 R >>/ProcSet [ /PDF /Text ] >> /Length 3612 /Filter /FlateDecode >> stream x^K+j~?BvAXH$/"3gIty됼 jxqPQ)g/V޽ux?|;ho~ay.3}}qb7otΣq$;jkU 8FO=Tvyt6 5\*%Qhu:n^B&j] !1Gﳲa5=}^a?%U?T61{ޏ>5go1huCzo'b/QL0nGnKT&WX%yXj>j(InN*4}=|`,t^(j5iaL8ڬWUx7|n ǟ_*eQAr+>5z ?yI\3c4s5Z5/!EsKKt|4Y',Ms҄M~jLv8Y[lw49bi<6֏Z+=24Qx oI7wJ]02 ӫ`!)e)=vigFoldd^ͳ|'X^&o麗݀L;NiHQO*a9 n;ۃcT)ᷢ֘QgyyTs΃o~ύ*pt&54=}݉h|V 7fi<7FEa!sa1QcIc>f84|kkp{ 4Zq. yzkW[XHF8nWO:pcGm9;GD HK?Э"΍&Z A"L:X70 ځN}d(:5 i&r:&>T͢S&*'.:u ҩ*ut*8<I֩?^++4gS˯N:uq$=p=T:ՑtѩG)Nu\Y:Y|BU*1ȬVT~Rvy.m>T5J>TjۑuѪlGvtu\i5>ObU򊳞揓UhʘbPYVUuJՈ+*j6\ *2sU idjuZi9ڇ`}^4-Ϊ We֋+]U|S1sX{A?͏Q;m!zs'D+['"]5>OTT`*xb=kUW \(A`׫4[Փ*srDgǡXWVe"7g]cHo%ifqwʼn+ix;/B!]b$mL"ۙzGG]e&ta`Zf ރOp&z5!O ,$<0+xfZY32N2+xf,B K5og01fB`>k)̠Fm»0В݌LNvfQ, ރp$ R΢5jf,ULcW)3=E= iۙ9v F' ރ}dr  k6MRkf 3DίU_lvfdz ރ5gmۙkIKkfȾ}SkY_Gp1m͌`ƜB1YE*,C 奾mSL',},-xfvrnƬۙQdŒtl ̨'|;fD)߮AL3K0W b ރ>RY:Ό<X؂`F,1%7Y3DP&3|IY3 6ekk,xf::uJ 0[j-xfp<֝ނof6HêJ5 OJfXPRg d$\;&)p4[Z@V1@ r*).}P_\zj5 &ԃVB~s-VD |"){u\n]s[\ƺ2ze]GUޭbvl>ֵk,.;30ݺva]ɻ3_gƋ͌kjHŮݺvA`ֵ[W" Rwݺ.n]xpܭkE#u{%DX#MGw9o'fuصv ߵk׮kTQe?O/Fs+n]zґA"ծ]x1$ݺ:X[n]g[D>r>}?߽8,GE˓ $- ʑ>E<YI* ^ޘ)dQRK=IģΛ"IRIn 7H{Q")a&ҾV[NC /0锎wHrU2 ]=-*wVڛʙX^ оt! &ٓ5Std엶rVrJS+fT=P/U_VjB=dU{-7u_w|O?ߒ|gct endstream endobj 58 0 obj << /Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\ |@  endstream endobj 55 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 8 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /ExtGState << /Tr0 25 0 R /Tr1 26 0 R /Tr2 27 0 R >>/Font << /F87 9 0 R >> /XObject << /Im1 32 0 R >>/ProcSet [ /PDF /Text ] >> /Length 1400 /Filter /FlateDecode >> stream x^[n6 +t1HITMzH;vnl7ɡGئ;ign 0-Qdp.!쏄CH<"{Qvw4?| c3f }X?t8PkSǮƻc>"%/Xnŗ,-|DAMJMHPsfp#AgW-̨mƌ\ןaI!7hϹ(|8s$Fϫ k-g!v1<:Ə5?<1ZA(:Qn-~VDzFj /z=I>PϱwB{/4wnfqUjYWN٥P|l6oB᫋#Y6L@tFo_>kF,WYtR7ZW1*L%tM@ & DVs-Nk<Y =ͺ[\ PRpE4vwpA+O:>: NL([Y61{@*4EǥTƯxV'2F{4>0hRđEcP75F}],Vs5 cz ZƖ_ca3 :a'_r3\nݿOraDŽ|)\88 ^0 *:sZ\rAti[c_q}%Hͣ+HYIe F_ AŰ,*Xk .0E`F t] a;fig֠I _IR1iq&IgТnE_^4kZ5fX`f5^vi^`Y nQpqTY;y5NӰ_qҠuZEtvuv]"iE#"#X&::N1q ]=2>2:Z/}zd;xLņfgWg%S̝]=2>2%O#O#DgY% owDgYj?yd̈,gtuߕ$Һ3~U\ldSߑ K| uvij*2s:y.A!B&(P.אC :4f/xE: TĆ⅊K@fWPDG:o̴GAC )MBAC+ h=4PPi/!in:χTJLUMK?@O(3^WS9 ̀hܛ*|QniU bϲ]//|mi_hȳeEUcdF^cedɰγ?(qBՇ8 Ye endstream endobj 63 0 obj << /Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\K|@  endstream endobj 60 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 9 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /ExtGState << /Tr0 25 0 R /Tr1 26 0 R /Tr2 27 0 R >>/Font << /F87 9 0 R >> /XObject << /Im1 32 0 R >>/ProcSet [ /PDF /Text ] >> /Length 1538 /Filter /FlateDecode >> stream x^YMoEϯ t> H888I ;$΁ϫޝ^fvcޚzկݹ^Jۋ}r_>p(}~}{yz4r {~߇aZ=k"TZ| 9xZ5Sv;tիVJ 9JZPTY;3 jgmZ޻w]?{Ŗ!b}5Hr}>=xntq>ԭKƘ]gwyu7]-y~x"# ]cbپ߄_?~vq.uq}_/0ۏ!S;9$B@CW7 +Pq7g1 `쥒yp?}B*x쉈`EBo^l%7*yDwGiӧ'Sg\7o^<$xtbdKytQs)^3ܦul9|0 b[)~rt q5WvoAC϶`" '\t 5C1y:DOQc4mO6\,#~~=❴$IE K&=_l]TԒSnTF>r'UZ}vI5/+,<܋?}JꐳRtƥiv䓗ӛGrw_f%+*[sCH=tKhTi־Âބz+#IȪrl"!,KjKD+꓉ afOQ* IlCM^PL;MDˢ)y9f W'PϕlEs(YwE}2)2x;4P/)نAED11xEL BHH>nJ{>H亖FBf깒mA-|uo"{EƔ}{+{PIlE "ZvE}2}$p$V1QZEMSM \VԵ=+ڀD+8ךB]F;i^R z4)hvބht PZlj;zd+jݵ7C+5(W-gٮCYv5F!B&i^R 5zL&vzG &5 n EX`nJ1ʮZD+';6`ĕm(ftC=W 5ڞYgTɹ`9TL* AlE0Sص7KCMГbXcV={zdjTꮽYgB"ٮ_,ᚡ7@d+jkv0Mᤶ> stream x^+T03PAUe@}\C|@   endstream endobj 64 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /ExtGState << /Tr0 25 0 R /Tr1 26 0 R /Tr2 27 0 R >>/Font << /F87 9 0 R >> /XObject << /Im1 32 0 R >>/ProcSet [ /PDF /Text ] >> /Length 950 /Filter /FlateDecode >> stream x^VnF+撣FӏyHH-!fdفֱR]M#$ rYTW&͐W] ))O0sc*ix\hi23]o'2PkXn?ǁ"qimsVcr[qp(Eb2Lj(T+Y/.7`Ç'g!qA11gKR<,|a/gtXr-Bܾٸ<ˏm~D"jssz߂ߧ_Oj*K9q^۝NrOdzG&tqBԆ^V +Q [M=ƚ(S* rKޤ3 hvy/'t 6+_~ĎN+ц^UT:SlMwB kNSNɏt),_Ųx~=6;ߍO0!n AjmUpN{oJSŔe$Q{W#Y&8-9V^]'_w[ko|c&4s3cB[)eȫ-> stream x^+T03PAUe@}\CC|@   endstream endobj 68 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 11 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /ExtGState << /Tr0 25 0 R /Tr1 26 0 R /Tr2 27 0 R >>/Font << /F87 9 0 R >> /XObject << /Im2 72 0 R >>/ProcSet [ /PDF /Text /ImageB ] >> /Length 730 /Filter /FlateDecode >> stream x^UMo1c]{ƟU-@P_()mog(Dϼyu8s>ixsO\67ʬǯ7KCvy}{7>w?xQ:ڧ\g&fGt;boΉhLx>ԟn8J[j4c ~FqNj=;Z!cjBSj؆YƳ!㾛ŕִT2Ɣ- |~FKhJLKcs.Ɉ{Ěpw:C(hKz+[}iۻsH4(ljB+Xe% zJld/.f1y{]DT7fILGrt% ?I 7Mf0 ߟ"U7ZdSFl*gx[bKgb endstream endobj 72 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter /FlateDecode /DecodeParms << /Colors 1 /Columns 472 /BitsPerComponent 8 /Predictor 10 >> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 76 0 obj << /Length 40 /Filter /FlateDecode >> stream x^+T03PAUe@}\C#|@   endstream endobj 73 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./generic-talk-15min-45min.pdf) /PTEX.PageNumber 12 /PTEX.InfoDict 8 0 R /BBox [0 0 597.7584 448.3188] /Resources << /ExtGState << /Tr0 25 0 R /Tr1 26 0 R /Tr2 27 0 R >>/Font << /F87 9 0 R /F173 77 0 R>> /XObject << /Fm1 19 0 R >>/ProcSet [ /PDF /Text ] >> /Length 844 /Filter /FlateDecode >> stream x^VMo0W±O*QVBKPKqbTZJ$7ocԅ2t0әpg1Ζlj{S](K/׳-5:OQR߇v.嬭6q)U朴71Du!m.J.k!ELGK)Fj3tպx6 -UkoKuԆt1pP] =bOGys:{Ȫrh:-zM-sB޼'#E_֓qv}tkM'c]}$g7ߠZoէWqC;zsdѪ>ߍI I]Ym!ER֑NǚIR8)11I1pC`K z(鈜5}-KFlD%,3m/JAJvCF)5Hw`^4"K91iA1x٪3ևer.",6-աDJRg<\mI%F(DYjC60hyj'_g 5'+C6ΥQ^EH.Qw&yZg5{kNL?sF3 j6axe.w>23]is㖳n~g endstream endobj 79 0 obj << /Length 437 /Filter /FlateDecode >> stream x^Ak0C=8iC04I.u.9$+%lwXZ`<я"zPvt,4ssYhceWi_,_Mft{S`P}-ZQ_W?~OsQ&Q??D[t{m76<ؼk5 Ѩ Qx< wF>d•mO᛬0*87-T9X\ MΡkN)> \12Uݞ fwcP*hR+C)_nJO]Ъ(^PK獒5 q&+)іhh:!!s^yh+zhC.n"?PB'D2^nwٮv ~.;0a7|٨mW;{ʷ/Q[z endstream endobj 82 0 obj << /Subtype /CIDFontType0C /Length 1740 /Filter /FlateDecode >> stream x^uU PS~Ҹ}{k!VY ( kbb$A@D"AQ"*?BeYY\e(VDSlF3eٺN׭mg9;}ayw{{99ߙc"Zr*9a]Bbj޸>,$Y3x.[aVb9ڋ DR/~ԻW*G*b᭾yp) _?(]QIWc/ jm_/QّMSYxhXh̠/0aa~79ZĨ\:>N AY=f uy4G1t1|[\h|+N+֠1F&.2TqSXVo49!!4mdd*T(L!_'1*tn2*=^$V4E'n~5lu 5շ64HkGsa*z,k?|2h=aj-吊yflplǨ}G"w~m'툰Vx s r(3nu%\| Co2S!$*';褰~s1jHMo2d *KPМߌ+m.f|_pJlȼ >n:?GU 77#^]?i=}@.vw||4D `4-^7q<ߚyZX'o;?q8K5O}[@ǝ+WͨB?7bRK`S3h@R5w(|\|:0Md腀<ͅp}r}m|z ω.q/8<9nOȿpЛ١jmE3TM$fpeF3֧hx4]{b͠zPy$; 2l9,#?`gmze\m)Y⇈3sf8xR "g|Dbr{!Orr񙘬M/ɕ1{] G>t׮3.$C:gG"}G:1\PmCCAb%aD#yO99!܉K8 ]#j/=7vvNy[+t "t㍹C &vluƵI}< endstream endobj 6 0 obj << /Type /ObjStm /N 51 /First 396 /Length 2037 /Filter /FlateDecode >> stream x^Xr6}WlL+^<ȷMk,Nꁖ`,߳ uvXpX,v`WBA$$Ћ4("4&IF$CaRdEC<ֆb#Hae(Rۈ8&22P~ Q@$-2I@#}" aRM0N(P:$:j Vg5 5ӄ 1Bl_CMLL -0R5"lE4#E(Ag(6 Y+2ؙd$kH$Ejy{wSK~'نOJ;)gdpI y13܇8,ϿҥI"/2`u2 0*0۷nN[Pt2h>Nhg; gt N28qpr jqac͋lނpcnVۓuN:5bƉc;NYinci#{nьtE4b{+`4jK7F7%!KF ℿQ4O \/.z,cGȨň"nq/oFD@%< ^j$}XsG%_K~IQV+q\q[cn;d qB)xYŎ %ЭP)2q:-aB전AWn]ptm jsxLM8ӽItҲ_?wK׈N*Y 8U?9 &jx)" ~-,lI>HI.v?)6C6Ot"kpX3bͷ,ѽ՛W1{z^&U3 ("F0 6k< ;>#D xU_=֮s oySxh:x/i8ڻz{ P?:kLIDmԕk>׻pr׾[0W$ ;e|%Ύ4E۝()$V@I2"118Wi<2:+$qEx qA<޲xa/,rJ}7"f&:k09ZfP.hT\l[8mZTnuVK4IU7s9pY ] /Length 266 /Filter /FlateDecode >> stream x^йNa"*he(:K2,lmLl 16^~P<$3l GR)YX~Rk#$ KL!wj$m=z+&ILi2Cf..CPH ɢW)/4#dhR/ΙY5x6Ⱥ2\&CmmWmn~ 9?u 5ٷuy@F͘# i# endstream endobj startxref 191239 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/Rounded.pdf0000644000175000017500000057006411221776611025565 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 413 /Filter /FlateDecode >> stream x^mR0 ~ mHeK}X7hS$ nHfٖ0P PZo}Z7X^q.o!t%GaB) O1~}XWXv7T}v$ͱI!hdZTcTnS#V5s(a{LkCo]h,sCb0qPz}~3=) endstream endobj 6 0 obj << /Length 258 /Filter /FlateDecode >> stream x^mQMK1W>QBU KXL^Ģdf&@OC@0aoűX'szvfabG6f2㞀ņC|Ͳ{qgy{K</@**^ٶ]% l}|dp pow r[ 5ŞY^>Zz6p5œ Wc_Y5דFsCw:oWw_ endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 135 /Filter /FlateDecode >> stream x^m 0 y$mɃ{9g7iǜf /|!VϹOCZkS{yLwbõ-zaAo6$J_# n"q\?`" H#УaL4 endstream endobj 14 0 obj << /Length 869 /Filter /FlateDecode >> stream x^Un9W :f$s dA BuvoK=狀RdĀ93E]UM9sis `E@f^„7ݰn}"?n0^Vj}=AWZlrsjX5-Xm \Mz*z4bL,)ŝڝ6a]^_ WbPs[HFy2L&\}uC'[{G& $aZ .Cv&)$HdX[!C`p."P.%*&#@PF2R/{x*ޏv%V/,k!2R*@UmlmѶwC!ClkX_Hih8l&;__B֣ٷ=N0VIF8LxZJ> Eok]lu&r fV0]ao/鸓ݙ%ԾA(!IC 8)-\V8L~eO)Dy^gG~L{.uZ|_C1J4F[oZjjɋ_?ywsMJ G/z_4Wۙ_o2.|p1qxBlNԘR8nCTSJ]Lm#,x[di?Sʟ1fa2蠱U% [Re܀дRiUY:PmrT-ڌwSݤtnlr2<0 g g endstream endobj 18 0 obj << /Length 662 /Filter /FlateDecode >> stream x^}UIo1$z=6B !QCX$]M9y4ۤDm]8>M;} v-wWs^_gW7jTխ~ vCwXN\+XCvB-P5u,U%Mұ4+E5g7[5ɈXHXOi>5EӶӥ;gS* [i{#)xj3wLr կjD.2i R*ى* %cZg'%f=3$ @cr5s+"KN#(8̈́"@baR48^G+Vs7odYYJ\-5H!Lz7>vJٹe\˻9'l龾Yx0{>CO wZZ歧 1oT!~v)*Y\($8J8u#(5s}!UaW{&x:dW`#^QƝ>fg7h,E{T3R>8M߷VYqk+}LKӷC,|P9qV][o۲2 8d3 ^VHxJ9N endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 19 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 20 0 R >>/ExtGState << /R7 21 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 22 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 25 0 obj << /Length 1814 /Filter /FlateDecode >> stream x^n7)РÙ!9dQ@ i}״Ea'{]iITRGr8tqa 9݇9=_|ac^^S__~X8+gwB9G_/(g>sђ Nj YCEc%c4qi'+Jٜ.5W[\xe^,:͠!Asl"k9r[m̜]_Tgj%%b6##_Y Eau4jtbdcF zb86 # K yX.QRʔ]ոZNAS}5Ń6K)u%X%{rn~ ?N.~<>^<·Uk.p g=<Ũ>CFGs`)*цXeK"ib2.Yz5U3'FTvp+8]Ù{}Ⳬ_l=ކϊX:ߐh]D)1O Q"%6vF+j~so)QlޗͻlNo7/p^s_{Z9kNtvjhޛ$XEMŗ/ ;|+;b ~9';h١w@V3fmF 4˺:s)ʑ:Gfⷆ;5 (+uEF Si(Z)3KYm#t1Y&Ξ\62Q4޾dv%< ~ 3< I(hZ_!4#mxs-n{E>}tcKę1<T(鳍k[1'ZZ7AkjtݪA7sA -.GSE1l;1# rVva'e C'3uSAtOCTCvϝuMj:3}8 7Z0c VLU$S+y?jNOej`0TE0ufT"#ZȿO@U%R VT]Cp59x:Ǘr("I㴑>N3022%\ Jz?Ekcߙlcn.a:V Ɲjf0^8 y[3E7߿:*Yɩ +:w48Pֹ t[SiQp} J¤`FlG0cDIAL_Vw38r7kD}{ak1y@Ck:3b+٢5LhS9TFl=غ2GG:K6eLL'Pea`'C30fEo%pO,VQ%I nيTوt"Nf%θSՈH5v+~ژr&l7-}~,j؊iAz4Ҫhp3 ,[lŲd6wS)Wվ3[k#*uUn[ d]c>`'ަ~tiW30bQI`(mL)؊iA1Gl* z+t8&cJ,z9fN'P+鳑:/ck]4Z(%QE^K&[;jzL}}dGv;qe+4Sv|6._ kOUZR[{HZ1mg^5k1e> stream x^[oWK1G}A oqnmYiKʃtO/,wضKZ.^fNu^jFG~Y=m~6ܽ~fȿ76j^ɧ||F~?mF<MwۜFb`>1}*ͦBˣ!0TRRu.VǨpV}U|oj3V!ͷ7fK>a1iyŘ-y%}C6Ymj261&c؏Y`c4x0m4{c+ 3cGOkDޛ@cف+m^![.㒎|eLQƷhEkYމAu 6Jk܏]7ծ#M=כHza6oMθQcǨ!ןo~p}yŋ}Ynjtx[-o \g? wc XoΣ:8ԠC4&M-^ޫҨqU[+*Hr*tA6Ջ+Լ9I| TtD"IjO?|<^}NU/N>.Yj;&ؓ z)~2fӁ`ʮd)TDhRsU@94hX+GI{(4hgE3%2mf+дcKV3U$:e ,pV: V^͊r8&E[+)1hXzVE+L,ô;PR5KV^͊ҠIj ރWdgIERie4yV6ŗ+!G[ՌY~^dj f;" S(6e)¥2u*x^RZM{QmHi*V wॕcҧv|G4vxfSAb{|=@2.f e0+zfDp2gVZ̬ VD{03&g ڤ?vRy`Ɯś6+zfXM 3vG\z#,wzfP Y{0cy܎gTIkm军99S~f_ό:t ޅYfIf3Y *G!x xf; P7{0?=`U*76igfV޹T endstream endobj 34 0 obj << /Length 3714 /Filter /FlateDecode >> stream x^M+b F-~$1b d'eZ[yg欜顭Ŵξ3U,$UE5N^G~X=>^<|﾿x7/qfKɿ\>?:GIvmU 8FOUvyt6 5\*%Qhu:n^=WΏŒVwN}7|tJWyVق7O5jV"_ hc26;1J6FM aɌ1H=o 8=J ~F仙' 46)ub{k 2.t)ctH|?Z\kpVgYވBu 6Jo܏bnPuCO~ҟ^5A1R^|+]nxƍZ?;Fv_ 4_/>Żs>(y fFMՂؖo<}p3fL!juƚ}-/?˿˕>o&%!V2D P4^{~3>ƽb|owzOةXQ~~Bc!85U偛QH:v:ƞ, LsГQ?ܨldЊ*FQLFoI' [5ܘ*ƾ8`U{/!FE(5in73<ːFZ2DXf,)ǖWs xCCR&S'mƎdͦaVL2_~N[hF [^;Vu3˅+J5 &~d 욙uL؃8# 2U~SN=.9&`}$ea=RI&ثҍ&uop"Y=pZ:r-[Ws":e55n]9n4_V5eV7"|N"͎p3K x@oy{HENs3Z*+DJRIEo+UWK0f%hwʒK4e#XRyI,*Q\$ԤpbtWK`- A*G {(4hjJgjb,*pBVėRj%)p`;H%Ï d/}V!㔘4RzRWXPxwJCIe,*jA) &=L;Aj4rMܥMex~;ȕ#jƬ_@.H5X3" S(6RuKe /5UrI-52,V^/c X6r\Z9-}j _/RHf!5( ]zu] C26s"YKϳ<&xɊ"Y}.Z?8VYTXJVQ~E)edvjB|dx)HjƲ "ɱ(J6%ýIQas=$  ^2_TL[͌Չƽw"YKFlFjxɘK%e?+zɜԴdߺ EB[H6%@h҉X1PJdd$QfRi"Dl3z1ҙLv8xɤ@rL _/Yj2дY;H&%5nh ~XIAɥ5vw,XnfFz2,u?+x!i> +-jɬ RVD{Hf.Mr ڠ_@vRz9=J7mV%bl|7mV.;)fyKƾ i$+xXϝG|dT8 73C2*Le|d\]$ˬ<(~"ٌ,s[,#C24g_/ P7ʱdr>Tnl*d:잽x?Ԟʕ%paR;ߐ$s4=qJen"aZ[ *I6}N.Ϧ\6prylI%-bkMzl:A \HlTx*>ygnQ? >:7%ݫ }UE z+DQ}\U`$Y-Q0?2 O1Ki  T bڪꪥ OPzںq`)R cAc!$O-I,c6ˢ\Ʋ<']8kśe]ȲXn8ΫF(Y,˳qY!Roͳ.;ģͲ6˺e#U6n,N[8S.1 FͲ.lY8qm4,▅;mͳ.;]AѶ6w6օYpPNgmuYΊkVemuiˢ ဴ/uHr'gxͲ.lYQ%7FˎTV3lϺ?KNύ6κ,gqĔQMY-’ W&}zo_gc%):@hd[)Ih|K )( L'oCyqB\}T9$2y~ĹT;8E>' R, UOvIQ l(iUɄOl-nU?xO*{3 /EL/%ύdӁNj0"?ȥ&p+Ϫ#E> stream x^[Mo7 ϯХ@},R)X (iMvC~Hoz(("Y2 ܳ [Bⶋv7]ܽya(~~{r_s]M~Awh8]s\b]k9hX5Kͥce@)UT7J ㈦T|$Un ׀"h+6t{4A_B;SovSMfR"F%cMg_9пr,.alqW y1HbPda ŵ F䎕} 9Sq*GNBH! yįF|Uqt[wD+?J*J%Rqn`pOj+}Tȑ%ߙ5$;^ =v/}ϗϿ/h|ޕ̠E k$epC ㋻^}%:ę#HS&au#(si׆ TM^)  tΞ/@%:>{q$i+^Q:zlJ E DG#Gj毓(L?+{㥝vI?{m7d?[w_Dj=Ra,iyHS>sB|p'zd hp5>=hƟ5<5eߑ #A,3e0=)8# WM#BqX+gca8.&o-:V>& ![1*`z%1Yt`f%Z}(\R8୔GaOi|\5] eC +ՈČV᫬d #B0aAUewvJ 6H;O8lE} `Hv'~Y3نY gɬxjOfmƬ,xjsVķ|ȓYY[3+\k̚ږY R>W[3K_Aj81iY3 ioncfiNfm,Ujp'x-oYY[3KJBfddֶ̲-ɒ&&fR 8sfÚxE ,(p~RcK{1kƬMcf,ZZZheyHG S@5+J¨]a2bJ*pAo'#1u4! dG$X"$K-F)DFH/ e?Ez_h]P3V #J(SQ6(Qsc)]6Qk߯z*NbA/ ,-]VR+*>+HR RWm pkFqajgX̿% endstream endobj 41 0 obj << /Length 1578 /Filter /FlateDecode >> stream x^KoG))h9$(HQD[ȃ8`@6`s׽63;D$fwkj_.uz6 WjcmNY]ݽݥջdt >>Qψ{/7/6qu0)i$B,!w4P],1jITvu9 ^$mx9z35a/C:Kw՘_sKc| y=uKSJFK ' 8;*N$EqQbo$x oqSh0x AJQ"ϒ L90үG`x:@-zr]Gr[ *)d'Ɣ C"=ϤyHӓ(sVojʵij^ĠIōۗ=}1n/kl =bk"e } 6P ΏfVD%kouV9)ZDHt:&ksx5Y p1 :dW$N'ze 2B5{j-_ cT,s OŐx1V6nKue豋mOΫ8?z~Itw 5NZ6p!b׈U|O§oFVnAxӍ?5V!9]B>6~65lzrq'%MԗRnBDj1BTχZ:jx&W#FSyM28?rKBj>J)B t@w%S $*~F*hwenB-.{R]*Ls~6(%%Lt"yZt@~vG2; q t)%w=t.'讁G3bJ`Ymx jba?УǸ ٻ8gσNLq7s![AhG]0<X4.{tй蹐m,60zi0SʙFfN/>ݹ$d+hP& k9QdÖ]i*ejuz.dh$ӣi "uOې ; #4=Aw mQ Y Xa|N;- %![AA8 k`ZصD8l¼iqnB&h w QCbֲ" mh@υl]'4Aw ;X9CaF YYXpΉ,Pʱo mlșȸ6_8'[eRVţ2deXR endstream endobj 45 0 obj << /Length 998 /Filter /FlateDecode >> stream x^VMo7 ϯХ@},R)X (\-id81?}zG\{SԀ5'H=>UHBSS*<v|v@"prkGG~qX/z\:ϙsOX "o fs/؉9QȪ_9Pa[BnU"BQj))LIPP`!i*;w%J-D|Y\) 4Uxq|3o|uWޅ{k B?%Z)>r4jBi1sJ?lس棥H<.Hjf^a-gl^-?m%_Mn.3db†#7 mt(L-9d* k`mD|M-Z4SY)8&d/З@V!fOoN_(.OT_64D98:[1%FAd)QYpŌj-a,[:;Ϣ# o({67e _ms7,Ӱs)T24r)טjF zbz xW x}U,eGǯЩ)u/x'^#XrpzKDehuʱ7.ՕϬh)Tǒ~1QT$5lԐ 9Q ! R`4rП0˴bӭS-a(rCOŴ!%P*ݨ"e*s*]"_PǷ چ  g" \GH826 m1ZC8rČS H)e s^mr$a8UJgC14_*.0H ]}e4֒L蜇[g@;ƺɫ;u0 i)lO8.H6rɏA$~Z endstream endobj 49 0 obj << /Length 652 /Filter /FlateDecode >> stream x^}T]O[1 }ϯˤIqڇ4Mm@Iތv'8vc;fCTRl !Lapv}3orvpK|۪.>nU6sjjWTʞsYFl:SJ-:4+z4%Xa:C0mŵ]Õk)_gQҽI?Oc;d.XêV;7Y"dpc Ĭs$l k D%ֽ/r "f%dgFXXzC4nѧ3 pjO1)bduQp=~wcƻ.%`e8N}S\HPlFP= 'Qz;qTLlaU"yFew2/OM69t'#wÑ? lŽhJ:'z@ndd$=j>3C$u`-^R۪<»_ŸWyZdҎFƧf+Y&3 4BJݳtSϱ(+q=5qOD&.Lܘazfkb1 (|ĝ隳?(ii ܚٓ@LxZPh96M .r?>n jW" endstream endobj 46 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 53 0 obj << /Length 913 /Filter /FlateDecode >> stream x^Un7WbU}4l2ckˌ6?W5&3y$k{96>VgZÓY_9pyr4Oχ\'L%3o~N/j*.FS 5SaˡC)T|)e*{4b=L,[wqu- y.É9f趐~-Ŝ/v%cru>ͅ} G[ّ9}1Q* mN.D6E)0E-EFي\vq6,{aC e._xWUx7ڥWt=}J J9R*OUݨ\oڠk7M+=^  %[} ő6U(eco3y5hM7g}z8bYZ%n6 lB` )DcY̶Lt bGl@d ڂEwxx;խ;1>j)o ~F#QwKLBf!ڠ#[/10QBdZ^{,_GZţ[UXĵf*u|H^!SKJ`$A-?%,55+ߦb^"H$lzM>LEB[=.n(A{ѻ>GmsZ87%z6פֿ]P/jUEG`!DpK?ƾg[4[V7T`|UKhy?([01C2,IO2x>SI #aſTLgߛ!afGpNM\*m*x˹mI@7T* k=kXnmon&M/ ~ endstream endobj 56 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 63 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 66 0 obj << /Subtype /CIDFontType0C /Length 3094 /Filter /FlateDecode >> stream x^W TSW־1I[u$﹭QG[ڗQVbE4@Hx%'`GHrBQ/Wg;6v9ұ8au vY+7ɹsDL !n7mu-\)Ȏ̈́q p$Q!7-ωފ݃%É1jL=^}=Kb3B<!## ٚLlZ/]xSk4E\J.Yhu9:MgkL\VfSMIK?ӨLJ^jrTEk):Vt'\khY[(Pul֠VhYJmzZϾP…,S(X^_trޠLh93C{ o~)u׬{iۺ$}hl^[K??Vk Kf" v{9IdD$TD.GjBCń{J."t1M-;Lə24uԡb|Omv#(53X}-7^Jp`"[tdEa m=d@Bz/R5LE2xvG9.$Hfq(EztJn*UU4W7BQMAttZ*@Vj4NGσh C^l^CKz-nݲ}Nf#k|~,4( QSc+ Up;0, Fߠ‘"tc߶}yהBҒF} O"m4<{:Y,`;`N1@ۍ#)&_\!_մf2i;O4ϱ?CDqj4_S~xm:2orU N*yxOC8UK头}RO)=:f čgs gi넽to'oh輈}G\A2߷5ـܡWGYN{!2x6"}򹊝ClӥmfId#޼o8}zrEO=it:f7ہ :2}]t?Ah Y #q?(❝AܢP4s!1J; ̱a}/MG+QP- \;wi60*"fj]bkpu_sI<j_T E_"v1~{nG~骊(Ҷlɧ/bQ:L::GIlRZp}'G-/?%2=fs()>\{dD@w:]>FU9_V*T?KkƊnKRɦ !y|WJ2RfhMgd$06M]=N5:֗;* Гa-K!^ոx(ʁ6Y71n/e;j5k "(4I*aS9k(k9"]^Fzxװ>BmñFM=^sT{u.O|[S0 X@<ĠXR*tHR^q3B~*2k9;Oҡ>k'"3Q ?y[}4%%eP_Ds1*z7]KtDxc\"V{Jy$ >,j;(YN$4Kve&XμL@z,/k'F}qk5ggUKػA2q?zMg1h#Mۨd[Na^(ЛḵsQsԟ^=>4h|5>dLę2+`OkyٻaG(|0^W>? FOh9Up G7o>ËLt7/j@|J5HgFQɟ8(E|'i`\L}zcѣcLVHcSYSoO\ i Gk"j4f廊 ,xk]:p,DKQݲۚ/3]K[UN(j^A)><^GaċOM?Bnvjۙ69Rd:/QKnE!(B\/M sB{&l}y@E\ p,o VFֵjt6ʋO̾]xCx{)$8~҂#6!WȭJn1k<|i$jIHj)hH$6 ?ʼnD`d'ASvR8Y^ Jr4 ]uEP_̻ * p.;mWV{׻@律V=> stream x^}RQ0~ﯘ{܇nmw"+urkMF/`K2օCP|7_2Y+O& p ׻ &C@(jOy=LTR pD=x ò8箪UW2{C%g ~V _c6Z7n.@4tJprz =9X\suzlJur ܼޗ F L jh+:1<gk}{#lU&}5o-Uj bʵ9Z]0XY˭>O-d4GJɔ3J(tP2(ZQPrx8%lơ5 i4ѧ?(Nц2#䜐sB vlw`u_Tx n]3_/q endstream endobj 71 0 obj << /Subtype /CIDFontType0C /Length 3592 /Filter /FlateDecode >> stream x^uW TY֮"TH쪸hj*A!,AaV *..jDܠ:.t-E{ΜT*yU~7I$IZfܐ4G،HqW!|xRP#E(S輥39*a=A0^a([¿0cK$aM|E%&99QGEE'ǧg;9:LԤdkcN& ;2rY&+-1^P))4Yx6^aIV"bEhEFZ6MdSŧ)4DF'EGEG)2h0P&9]1'~YtrZVHVĥLOψhcc=iIoJ7>gj;; .}E"FUDEG'7h#|#c!&aO81p%f%OXLKDIeDCqD<@$ˉdBCZ"H c"1ј SdžW\M$KS y{L!mF{҇fT>A_Z2jPEEEڲ Ũyt& !`v0EC 4^5/qvf(;󟫲zaHO~{^5k9_Ԇպ :ywnޱm+z!NoUep6$opvn|ŵ}-`U)Nj>ctfc7;R_/;kqܭD꧛=sH2 Sm%CV6䒉ͺ{[wwgfofϕuºY$tWY#Od1Ê~>h6 bĺ[` pJuKVdH䲈OTt?ժ.^D̴>di\w[mڱzGnSU /J!?9zm$^cM߃\DžwOoXɝG?rF^?@ ly7 he([ wy//לgA`& 8kD) :J>4f2z)G_{ XS`fDH.Ȯ6X̓R:eѫR9PÞ[u9\#{V,4$}?;\m2B_b=XF҃S#YthR$\]^gO971u9,'!OnT_<_N,^4ߥ#W|{pQ m`LQxG𪕄Wᙴe`3%%%, 4\ѐ`x'5U].z}]zJ"S~ɜV9[9"_oBsAWݻrA0%Wڥ. ^_gu.I$h^!Gn#77o$3\I)̛, C2?CpbMye&qZ^Sx;zn//\[N.J| შJJ$~TRAA ݁"K 0:fl:d[Y!]M[g&^'<F>k)G,LBQ {h#`"ehh lNA?h0+0z(K,q>]ӣ: q JX1d"{^Qtx'4&cA@TTcb8R3(F44 P > r@U#6N!OWq裲`: C|4?ph$HLLʼnmyg#I[.gݾۇ{:z%rVe^^vd}@Hzfi#"^+Cp\rRE K d#m,~Cfx3J04{Yே׷ncM>W2¹+ I>^}FzrHfh™ӇΕW7fc`eݘG5SA¤p!kk{WU h"OV 0i]̩M\锭n3|6ݮ77pXjHh񌲍uyfg5ΗVM ,r}'4]:݉jbi{,m"xrDLMMdcr]F6!AoL`W:ʫ`et4H< *7T͸{njzF{/޺ Idi(Qz(./v͆/ ǵ5(!ڛFxl\6\Nje]̲IW* ҟ*W~fϮ_P3|v"DB -l/)ɑ rAl]V K\"t /YVJ!#t n /H7+ߙσ֮4P:RA᷿K[Ԇ2V:]Y^lX˯fnܸ(T{!lO)C-uA QT-ۊc<,H24@ endstream endobj 73 0 obj << /Length 442 /Filter /FlateDecode >> stream x^R]0|P右i;'^rġ#mRA,~ȿj4`YF#;|TlϜoG#/ΛV@V0``\Z O8\jq%LSzҟ#v6?/w~WC<^js+}Pd(0W^sE^p; Ý;Z^1pC Feյ)KT?+~򂝑`>8S]wq/ϙJcFۺ؜Jj> sv/jΰh%]- C9[n=̱x9*:+eMcRJ= 9:jeEBѳ /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204401-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 51 /First 387 /Length 1652 /Filter /FlateDecode >> stream x^XnF}WL2 K"RhQʢKQE=+mȽ3g'4) %Hx II$$ҚDDZBHCQ+ u@H䇘$$10 }Cs *a|GH)R `I0N=D`ʏW& wl}O8qz:˓Y>'sE6LM&q-F}UGYC Ϥfܿ0Ĵt~Nn3&s ҹ3-wǖ_^-_{|ble`ѹM8cWStd7G,wcwphN=Z TW<=Lo,I:k04~ƍv=C;)fY2m\Wo~ˆ$bzU-Cv846&äcl`۹jxnOnHw,owzsG@\'ȁs+{j_J8`^6.Vyb 0vzS Y8 t?;b/@dfk8:JлU{U=&{! &mAV*ePVvW/ 18]lBz=E ZB1Hdf>א}__"K,Kri0@zkir,O9. /ݟ?l.Jv:{ܜcheߚ_0)$ZAWCV5_$9>^&7 mt2PG;n7O>S$Q{i9&P[1tqWR0lLnkrḵxشRQ 8szo f=cQo5x|v[7|0caj;bfOy1;Jo(N6J2*j|.Ǻ'_׃#Dů_9Q-1cppHܔ_[OG^ںOMY{w5Ӿ.,D%h(]h\׆ɋr k~5..zT0/NbqEvdת];5 #dXBn1j9LA%E&T<#pxg9s>dawHqZQ G^asP 2}@AEm -u.{ BJۏOT͖fs9U~&/];;O+nFVQ,:Okr.m>#^ڱwv._m zF-ILqɈeHTms.Ҟ. x97OR},gE/κtQ<G=xL5Ul3~ W+ endstream endobj 78 0 obj << /Type /XRef /Index [0 78] /Size 78 /W [1 3 1] /Root 76 0 R /Info 77 0 R /ID [<4541A7616255AF7F7B16A616BB111BE2> <4541A7616255AF7F7B16A616BB111BE2>] /Length 234 /Filter /FlateDecode >> stream x^;2as޿D׸ Tid - AaFA*ڤ(R̤38yޯ@$`B+8 ggBdRbH%m1"oC"-o"Cne1.ƈr׷SbaFLǗC1'fZݷy D y'N$V\f<]x5F\g6&b|y]F0Z^*on@ endstream endobj startxref 192079 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/BigNumber-blue.pdf0000644000175000017500000056213411221776611026763 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 239 /Filter /FlateDecode >> stream x^uKn1M~`L/0.t*%CՖl,vD1K-}gx?c7Np ,j]ݿ| Re D Q5e[$UxcrƢ䪵RFR(Gp9t9%e֙X{Bk ζ^8JXoD \jMGsZMh'owj^ Br endstream endobj 6 0 obj << /Length 247 /Filter /FlateDecode >> stream x^mPMKC1W>n6K@YPT1%^& n՗"Ml  3lZdzTxL0!Hoe a0XbHf+D++|4l_aEl浲 a"PAnd`+"sZ"ב 31Eqrt!; &gsH\pѐ-Dy1DWLt.뻗SuRr endstream endobj 12 0 obj << /Length 618 /Filter /FlateDecode >> stream x^UKoA 2 *- U$@I4͋ۛL^5xm7F ZU tujy0uuqU+\TM )E.o^~<~G9&^UVj!cr>A vY/1&<+[ae2rʞϪoIK\* h 1GKDTrEi!MdhNrް:`nCVZN"Ɛ4PFDH: $ѹTt-q ֹ!/:*0!h]JrREfJE9hu);C۝:b;TqB6%IEC}(cёWʏ_hyeAˈ_2>rOdsylj狫AyM1Ųآr M = ?W+׾_Hj2/ w\qؒ5dmɞUs\mC& z)wD|s8-L%*y٣%sB./ĭ#B l}L,"^Y16Mv`wm03)2|.2 endstream endobj 17 0 obj << /Length 438 /Filter /FlateDecode >> stream x^TKo1 W6Il#**qj$P$Xj]}G>zHq<m\9@)_w}7n~t >P'߰~[\@z/xR@DsQf_bлg"RWcs,ɧ%0Q+ r@Q%j}"X$3ܛU8S9fB2eFʨ%sZ0 [x=;iXQ6tv^i츉ٳ\ţrϿ/&ݩ{=μRwD9^{jyAcW4zbFShFQaO)$V*xZ:kQrB KRS?{JMQ/'SA\밮Maю_epVbfD}I]aQM}84vRHu:}Z߹Ud endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 18 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 19 0 R >>/ExtGState << /R7 20 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 21 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 24 0 obj << /Length 1549 /Filter /FlateDecode >> stream x^ݛ]oD+t̙/@B(Tvf-yDZ=$mgTjNl3J\ %Ww]  amƈeuÒwJPjX+p_Wo߾ǁ*[ҹʲCa)XFiqS!{>MɅFF]}' jJ*PwHS&x=oϟnzqKt6i•|ojlJ]NI\.oL~|Q}\z'4|ΦS>]]^i*GH4mnLkd.6כUc^j(XłFgWg zr}^nˇGz:L}}u+/pn*5Yv\K1 c(E!_[lepah1ӻ$fkZƴ,-x" >Uf m=NDݱ9Њ5 B+nA$Hc5 wiŢ#&}AM7\$ EodZ,v"UmAAF @_gg[K}ȉ~RnyN\r7Fr;An%BUT4Oh[1Tݑ:s,{I90'Z9=:uG ~Vz̡AT͞O}Ŭv%/:>t |AЈ7w^V<&A^Oټ?".(B<->-SӱVh3bI܄FS\iJ6{;P}B2 ),\¾^ԂQ[ j (m؟ԵݙSNJFӜ9cf7So& h)Wȃ-ٽ>-*>;sʢ[| PĂ'}Gz#jT nM>}`NmH=o5BB2zuqj=%yGF+5q*TFqOgΜ $*M&=5SQkw,j4|Jbȣ&5j !T48쵴dRDd*FA(J4Q?T+MSi.%4 N&,ae߽rA'+*;^iggs*|#:}* x: DENaksPъϟU{ө:eዮw G<02U\0'"|%<^\M4 endstream endobj 28 0 obj << /Length 2600 /Filter /FlateDecode >> stream x^ݜIo+ BRK$@Ĉ!fQd|ȟSU4qy9=oW[Zzz5ͻỞter޺M/o6pc}y1L+7gK~6ݼ)rW67)LWAXl&sf i;Y^C\7lq}~O~0 ,tG><.S01Bv9wO2/~OJoy>9;]Qٍ *eWT$3]LP2~u''^-s&򸒶Ug0R2Ou07}=O}jemr;.N^'eCq2~슅[_//_^ʟ]?=o/ח_%W wHR&kUcŽ "[(*,kb2 e"f?Ws~,m %d{.;AIyAV V%{4He{׾칧wf[Y\a;d 98fjƶ#5vشJ@LI!bA*ˠ U C;eUbt Bo/w̗WP{1<τ+-6r{|X˧|dZj9ͫj;E[WrAlbB>hl%Z>:u/vgѧgO-c֧|5듫ۆttO1f6|x>+Vǯ'OepKFӞ1caEbR ,6atO'uIɷPFcsu$&F}<]:\:Ǫc98Ja@DMjtxbN >BQ6IN ~Nxk'SLۂ>IgΆq?N=cu9/teeÄmᨋԩ|NYOWN-:bkhuJuj%2OJ5m\?NnvyS)c&X)/u9S42<:|NYCF=tjٜU!;ޭbE6<)w\c}8NỲR>SQ^|NQsMSJGTjʡ7DxXx$S(~ڜ:E@$m·>.{:uOөhRKSЩL"1{bY֩t"PB 5s-ʔz,{jN ΟG}N]>tH CM^t 2dJwPJ4i8/Ϗҩx~:5jxEy0˲|NIw}-*;Mi猷:U(Ox=Y"s3h5]ΣVN@'FS&~5? Mdzʼ ?^Nh4es:J J>JjqJ5S!6^%^8-1YyYUYu Rf|=L8%/L̬';3f4ں7G03X D>qڐY2|3[$˱ 4F݇Iq=>{JR^3#&C30`B3F? Qt,`dmẌ&bgiי#[z._*g9݇2ӏCa[kQv̸_,q-N1 @V|-jg#eRԂf=:Ժ#dM(zfJ)=ǣ >ctGS1֊ R,8Qq;G0vgFVc+{G0D8kyHT'1f`X#֝E`! mCewuFygKtFG0L} d֟Xȟ endstream endobj 33 0 obj << /Length 3422 /Filter /FlateDecode >> stream x^[oW̋1G}1H"@8qڑm$?Twɝm$ƀy9Z̙9]]]U4դ f=`ty{+=ݳcjVʙ||˷/^})3}ӅCƫj]6 ~U:٩T^Gy.G'lR >ﯵ'?Sq7QcTɦSA`h[qOfn?/vzyVn?\BֳјzH5i98d\xLz8P`y'9J+ûEq4`yox1Mȃ^̑p |W^N~Éc_\rY}{Ofr0LQߤO*f*gC.l?j6:cRhҨ=2*;Q5X3STWw>:`/CWG.Xݝ{3U)/pagmq{||8ۇO$p y5EqF8Tˑ/!T'O*h܄;*>np}•2 ๝Ezg]ZNZ;XO0ʢO!1S>I9F:P>@sbBr*uXioS-泋TGG*8J@QĽ'˼a+zOөL PZYiGӳ>uJ[nfY/٨8k|'g֩#v[z+ilQrSI:ef6|huGT ?)oSȎJ &>7ZAsuf)'2sSlM֩4bS)q}Q}~:,LJ'!w6uYt(0ʕN=')V31O0YUb?.{u:I`В5@ O'Hx#θg]YO^stcz]ޡoqstd,zy:_֩4J6OjtJ:HXOh}F[:} 5OQԑ2nO},jJb5ݏtakzO)r gj  >@^^ےѦL ~wr֑J& kFԑr:5s5lW:5r69S%v~8UU{ڹNQ#*tIrICF Z%RV:(6r>Zgb ;~שz/c]f_"Uw<⷗ MzƜ#ҿNcתM<T'5ƦK8811Gx5+9T4ʐPiP 19r@*͆ng0^ʓBAB*ghJVf,^͊UhX <rUd.2 +ºUx5+ycYREwx5+Bd{K징v(9Nw祉s@ hy > yU~Ex=/*IԞ%^e4 $ӖӂॵS4'3Eb!w2_&!]El3`x[[|3O6OP⨵y >Y "w5 Q)D3 >u:ڒ-/zfTXk >Y`4%ۍQ2,60ÇĀF)5_ό $!M䈏`Hbm YI>N#oUu_,j$@9| $~+H^D303 7 _*Amޛ#i<_T"6dBRT2̔c)~ ACP}>=#1$2{5|=3b*30\FrBzfĽ7(:k|3GM a`3#6>g`l2tj Yi30ç7Ơ_,r,ʽ#Eb@Fʬo]-jQJ gjW3+EJ+6SA c]42mQ̈zΊc&f:6WL̈6 > FVG|=3*S1l7Z3#Rm;1f`fX#[3 `a>Y]Vs_όȖ-3G0Mgnٱ5ݓogZn"H,aw*Ez*ew=*NT"[,>оy-m<6$48Q"'߾WĤ.tGD?ܸH~MXKrw93k(N%!G-嗊,\*˳(r`Gf X݇]cᨥlӥ\Œu5\H$J}hـ_܃ Vj ^l&iтQY}Ѯl2l<:}]?;/}4ou>bIghZO7lKݦmjI Iҥ|-?}9 ~tGwG{(|AV$-Tz^T8)TL יi>B2w77%^fJZ߿+!ZDD/^IXnNūަsdiXB.QWJRO> stream x^[Mo6WR>,͙ǰǢEv6MNq=r^fp(RΦp ܆Kd"vWW0=_BdBWΝ߾~n爿q9o&՗$I>))싈T̗r1T .G/ٻWU4<*MQv(RQjA>:upYO}7=nmbB^Tv,ơ"]s-W_JrynO(xg>)QfHW qhAKFFne#x_&#@z">X] Ksծ}yAa?o/Ib;?^gگCcv/NXΩ:f#v_w}G<:yIMx;#E2Ϧ-G:SN`>N$誑xE5H7J("#s8v!S4pk5X}B` egV8e%q7vTꁙ$=x%>8a >a>Ļ>L 6U!i0)ep*!gY"`iE"Уe{2K+KCnCjCC04n޺_^ ljw{R>9/Ak4|Uyk?t=-0z6>.C)G\XXd2|_AqV<~ _++Ę _+ |揫FU@ck|eUhkO`ټV{ {$9k R TdkxW6>*P> stream x^͙n7 VDehHk 4Mv"O=#gL1!/6Lu2 »Qm[9jxo?/G1V7'U+uu}n\zwoo6Xq1:9J/e^{SIrh}~9RW6ms֟$R!-<P}ʚ$Lv.C.1J4[θtx3DǹFCKa_ 5F.) [*@L$! Gq:{ \6Ԣ}5iuo"k$:8U}ŒҠ^RusʻLl Uc^įF8' O깒m$*~MF z^(,# EN/ %%[QCLM.$Kɸ's :zdjǕB2;7QtI67_{mgJ,0J7s%[Q甁+w1G:!WQ@]9|lCMם 6\(փ,Zt(>@tC=Wup{M8Zm0jqN' %%PS8Cݙ`fk\bQs0 깒$j]Q&Upd%V#hKA'IzI6ԑRzO_w&p !ҌXrP5jw-2Fzd+)5G/5fR+j 4lCP,ysu&p5&,E8IͧtC=Wu"hcD@>p^sETc" k#vtҠ^R ufp;L(&jK4RV:1BtC=Wu9ͮGNY5f8X|h qG2IzI6=٬3cP˘jGinJn='H MMȔq3E:KZuD2AdG{|yIF o9nk eZZ'!O1Z) (rcK&ǝpk:ltl< endstream endobj 44 0 obj << /Length 770 /Filter /FlateDecode >> stream x^VMO1W̥R9x5HUERB%@¡X;TR3 ct4jC%-%ӻs49\T-oh>7l~y +NKʅ&\|r4)f+!aFWZ^ÛJ؜Ur*C$3D=TNgqt `H%gN9 h`Zn堑}Ov 3bUx#-p+[_ioq}zhOOQ'^w8IɅmOg󲕩_@&l6xY9_g׿W؊z $ǺUOņUZV7Ae1XǓxUm^M줮M}ܵa~ugب6G "7}RF ]Mn$h]JM꣎f4{LOei8M{' \"t(jRbv3ӡG9%!UWQsB,!]\:naDFgCؐ'paJU])oO  4UMBh]f&I]-w6X3W܁_4HfVm^K1UmNEB|:03 @Ki M fƍ5c!E\p+S[(83vi؊KZpK|w0kwXC sA磸Ёw6"ǒ endstream endobj 46 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 47 0 R /Length 239 /Filter /FlateDecode >> stream x^uN0 ~ _Fq$/xj1_+U H%X!6  ,Ym n: bhaZ?O}{t/#P qmm\5XrIWj %8JRp9R%"`**6pwo2tut}=~@Dk v$9f2%&f\> stream x^To1 ~/HTYyD$Nu蕶Cz1n/셓9/V7W 6)tDXvͬi 1yVz ^j=%W! ƻ""R7C N9M,lQ`)bsnLd]LGM=@eu&u”b%zK' Y+~ Kp`O+GW-mK*ȕ߸-͉%Mh9W4b=k޴h&+(g[~8#0`D$ QǧtknFnDÁzZ4g2*ݙz{UƴOˤXG"Yel 2yNcIr?cΨ)>y2g)0yu#܏goė '-3 0A-0z Voʂ‚dJAĕ"nn%,enMl݃prU|߉s%"Sud~4J.k>94r$']~ր[/e1L endstream endobj 45 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 54 0 obj << /Length 678 /Filter /FlateDecode >> stream x^VKo1ﯘ 7GT(U$6mӄlXЛ"%JoˠEg+V(&;A0.d03ƄBE|D_Q[V ^O/!/afEԿwtqNCu wpWyf8{ /tnF"ŧu+F4 ({R'" *BDH/F>q6-r``iy`{hޜ! "!kȽ^l^ )^CզNr Nʠq`nC#.MuEZfӴf4w˔iIirh>F =M_a7m0[:oYxm\=]aCQ\MV!{+i l>E endstream endobj 57 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 64 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 68 0 obj << /Subtype /CIDFontType0C /Length 1397 /Filter /FlateDecode >> stream x^uTkLWaeupTX..,Jy,ug;<MA@Ѩ*PJhSmh|D&*9c/?z0iz9ι~94M4rmEŪJ"+朂KT=R֦b%i yI2i7Vdc*|!T^KyEy=vsj>Y'TQVU4ET0R1T}I?;zE^tuxs^5-j^裎o 4P+mc Lpֶw7ҭ{򥾺 'cU J𗊃}G?Q NLI T<` (Uve8+!0c tyXn9>{zΟWMZE#r %8T?IhHxSJAJHq (H8,Ћ$z@2y4= {q`: D뭛ll7,L+J'8uAwt1F%<Dz$~ˤa;iz ;]~`8Q;kd< O /9C= Dpɭ.[n8{+r&*c8^pLդa^Vйq"@! i¯PNjt`'=4τDX{p;鉁k! Ky ػ2=0BpȳTg!p2 FFGpla \QQ]ߵ4/+I@ { ='1 Gx-1u8z/XኳdZw!:qS&P|iφ.]Mg՞7}QŐ!F(vK!밂 ;Iۦnuh߱cW~RWǞ;vwT̈́_F0"o endstream endobj 70 0 obj << /Length 360 /Filter /FlateDecode >> stream x^RAo0W|;] !8&fَ~&В",3#!`zO\بN3׬&VB9mKioc)ڙ!ǒǑ7ig!o{LO%qZ5FܣvI%cQýA}nkX)ų䑪lȆ4 !NK{*Ӗ}bB hս=#~9j!0gҐҮK0mz:doAE-&:5ql,LqlꌡI`j!;s%_Tyq/#Ct8]#?7 endstream endobj 73 0 obj << /Subtype /CIDFontType0C /Length 2976 /Filter /FlateDecode >> stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 75 0 obj << /Length 454 /Filter /FlateDecode >> stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 77 0 obj << /Length1 804 /Length2 1007 /Length3 0 /Length 1569 /Filter /FlateDecode >> stream x^RiXkpLjdz44-2-`RH(L}՗ٚ&3SFjQN4f 1ut,JdMCR!J:\Ώ\ߟ}zF@D0C$D d"Xl:LD2GsQD$0 =<(  `x*H Q(5s7 )$82@p$"91"6t ?JDY;YDBsa`L!j89CsPs_1ap2x(' !2*]ɇi"e r @P^D`!4̷.Nւ`0E(G!V:^;L 2-z"(:b]t&.ѕ}o5vMk \c P}z]{&WgU=Uw[#49,ʌ V'wg|rK1:ã"l|_QϦixiɑ;_ﴪp9XM'1klaOK3Ħf?N 6Q`_z ۮƂ6r*a< e]&-BJL,ղE6hRYHpcmӛgV[{/z Yĉ?azw3|Yi[[?_Tڅ/Y%#+?|Hs!|"2tv`c2,jB2omSqgy>S_H 7yV&RWd}$9`7״Mu\ɰ});&zJg{vIZ{Oó){G[>xWKSdXqqX¥-4Sp#N[9f\Wmgm\W-?k8EaDy/}`'WM{XOpFΦS=N6k8=Zfk&iON :t=zI[wg_^^\x*3zQ@Js~([ʱ ^{hI7ٞmjN/m8>=AU`ޱ"+uK*,S; -瑹}DSBVKZՃK4=;~0[Yf2)䭰I*^mk0*orN3+K3imNhO=_/O_Cd͢rwtՋ1+ӻ-&ٵ?+nDҒ؛#D-ύZLc2!" PM`^/~4F՛,&ª) ][xiÎc-{NO;Ɛ5Ao Pr\,Ru\\vL4~3'p@d>;ĉbNN7^Q endstream endobj 81 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204417-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 54 /First 412 /Length 1732 /Filter /FlateDecode >> stream x^YSF-N'u& a+F$wo%BԤmtݻv]\rHrIP uH8$]<|$|ҮG" њT+ɗ(>S"-&7 A"%:1$![${% yF(KbNB#>)IpvYV< (94{ZX j>XB<).?hӵ]1p+EJ&y439QLAᘋN4f 0uJule/ϖhC,a!|? f_p_t{5WY0eےv>6;NQJ{)&Y U|yL2{ !tabr$1cj]ߟw0v7b%9_ ju>લK|DewHléF} ͝]݀l h8,# +ҥ !jfIzq>,*ԓӜ:,_sp[nz ZF@06Sķ=o-ͫ[#[mx=pp?vfF`yǒ}+$Rל*"Q7 $f* #ڶCXfdv[ ]߅)p|qM`};RP`t2F!_'5>R9{dcIjށ{'ݷn8ɄS;_q8%/6 :^SIjK Yod& xt# A<ɲp([MͣK$gY\#F+޻"+Noɝnd b8Yv3̢"UY8 $fԇC{R]MfhpL-]= $_q>XAb!O>'l8,OM{ޛ[~;3sbRs["׏ 9A M!c)$LW:*`l6UFnp+JwѶDMޮc. @"SG hrߖ^!4jd<|> .(w>ƅY; >K^G+ju.^  SҀgw BkA!D]_s2l=hhCPFE" 4k"rek.) \-}s=m6>.~Y2.v'ë)sOVZ"8J-_R*V*́WV^m6Q',;\H%j*.1 j%G~J6"I)ľP+ Oţlf_)TQ`J9.p}sF+NFl﹑QrIY, endstream endobj 82 0 obj << /Type /XRef /Index [0 82] /Size 82 /W [1 3 1] /Root 80 0 R /Info 81 0 R /ID [<18628021F1D1A44C04D39CF2173CF31C> <18628021F1D1A44C04D39CF2173CF31C>] /Length 244 /Filter /FlateDecode >> stream x^%;/DQZu\FAW*N!(D%XԢ#*:_Am~S{Er`|5B뺨6c\WĖy"]kA[޺EQt]HDCbK\Ű(uo#bLMǍÒOb\TWobJL2o͈i͕k¸tssE$'ުfթ&V߮k_ {]6Ŏe|\cq#a endstream endobj startxref 189037 %%EOF context-modules-20240428/doc/context/third/simpleslides/styles/HorizontalStripes-green.pdf0000644000175000017500000055225111221776611030764 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 272 /Filter /FlateDecode >> stream x^n > stream x^RMK1WM+8I6APAQfbViiѳ3{2 G+e7W= h[w9r11A)ppнќlˑgx]/\c%Z!y-{r[@OaCFOZ/58bW]^o-c˕/WY[/j8-uOl@wdwʵI endstream endobj 9 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 69.0312 69.0312] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 135 /Filter /FlateDecode >> stream x^3T0BC# =c38˥[P^X`dUegdԥgn "At(Y0ȝ@ | :\8#PhT6I!ЎUI{BQ \IK`4 endstream endobj 12 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 13 0 R /Length 297 /Filter /FlateDecode >> stream x^An Eb6ݎ`Ȫ:(M/8F20>F#gn}7'Пޏ}>~GMz7</໮_m0:R$m娂ɗ\̒,)kuPbEYsCC%EK멨R蜩fehxШ֘u{˝3yyLRSG {0m1Zs*#jk}cHYҶ3lejQ`B "GIBzR0 !>䳊i}ç2G endstream endobj 16 0 obj << /Length 457 /Filter /FlateDecode >> stream x^TMo0 W*" :l}݊ rE/(Q${-ݑĴtɈw2.DhNG֬Gr%Dm:U6>@D/LY[k?Tf{p ?Ks57쫹q54fW_m@eql<]m.lrBԦ?ջH>t2j i{4 K` KkOuznTo{R}Ĭ{96(LmnDQeg(H&lMus[3}s 3>ƙK$[rr+þ4GBhjPL?O 7t83p.Y#50Ϡ A^78MGy SE8X_wؚ~7 Y3 endstream endobj 19 0 obj << /Length 296 /Filter /FlateDecode >> stream x^eQMK0WE3MDD]ԃTzsݵV~L7x<j(Fxp0âS'7FU %G0ͿT]ֱ a=N=6[ iGPwts}ׯ :6zsŸ^z;W2-hK'%ڤ!YnXz#k ?U[K1ZE|B!aN$1붣Y*j.*0Rv |.۪iq\_Z{ endstream endobj 11 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/opt/experimental/tex/texmf-context/tex/context/sample/cow.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 20 0 R /BBox [0 0 275 200] /Resources << /ProcSet [ /PDF ] /ColorSpace << /R9 21 0 R >>/ExtGState << /R7 22 0 R >>>> /Length 4321 /Filter /FlateDecode >> stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 23 0 obj << /Filter /FlateDecode /FunctionType 4 /Domain [ 0 1] /Range [ 0 1 0 1 0 1 0 1] /Length 29 >> stream xN)-P0P-QHHP53k endstream endobj 26 0 obj << /Length 1422 /Filter /FlateDecode >> stream x^ݛ]o6+x3`jðöb![}i%4KZ)KmA,_DhoVZ(y> Aܞ0esݒ7oFI-r}K&MBVQUd0D\_?}ltO7{:\_3rr!]W}9)^"ˮg]>ketڙ:`Ue+ tvkAzlwv oulaؒKI~eZG՞$`G>ķ,蜟n%w/JPEHNb7W~.^CuJi.y)FttG<AX[U2ѳSbY_*NR&US; Xw6XVFa"m9䢏>(֤}dacH7:=_` S8Ig?Ɯ":ḙVAJ7>[w˴UW5IzFjxͬv',XgǜipSs<JաbNR+IOż3 r@JѮLtZA|<ԽFS_10+f/y^7'§KħHRsH䩘'sibOż?&5޸cbS˧V1Ƨ$>9&9ӡ> stream x^\[5}ϯ$*W@B@¾QWVloϗfxI49Y{p1=&Ehx|% _\[ie"oOwW_`c`IeMYmVQ/_>o(/[yy_^>?exMd]O9Yyyr>~=n"U6*y|}`gyP޽/2_nSenq1ݩ#oYo>_iph Uz0*8>%5DхCӧO>Mac>u+M)r7ƕtw'CA3K sJ-~d1| <\E q^QKGΞUj2۪sfB s؟0W2uw)D ANUx R::SBj?G8?ˀ޳NINW};ksC+ i]:au9ST5"(eSF. b:5@VSxٻN H?nS7ƹ)@s$_N{k:~;d) ԩ S~h[}N2+,qP`t'yW >gQNc:e9P)W:uwөwgN1Ceuj"=(:Y6(ۼNݔ=ՍsSpr T7ʵN?t DyUx $})|h~S`JtqMT7ΕNe٘Qu9S\ԩtwWE -,u &K|ͺswRDk#>7̥bRqӅcN)VL ȡLu'*}B|{=*K0FޮPo}23h`U[eݺr Z%'p wdPbc,ڋ5FEQGɊоf ͬPW{pV6(4e1V 7NE*сpVJYuY4HQDʕ9ElfVyL-}L;I$2 7B5,g+4zT8bY6ҀuKtOUx^2C-/ߋi]BzU**k/5YŚg\bm;Jh'*/yaՍb+CcY>І,d*x6rOYvf+=B1b`*ň@3Cv0ޅipۙAaGŘ1ރ@Fii3 tA[Ђ=Dff(BVҒY`{PwlAE ̣¾cx;3Newab s{qۙQT:21c3v0 $9 Ԉܫ\a3Nx;3H f``EFۙaE g`6"\>g3_#e#Y2mYx;3ȈO!D*`b/#eff ?/ e&H9f'dm41ރY@KAcg  f`PS.tۙaE.-JGcxfe۝(Y:x;3Ȉ,X`牲؎vfX ֪# +tvf)I,d3؇hog^PFx  3 a`xfJ0c;dV=i9f3êۢ9Fxf[+~h3+6q;* !JYog9{dxf(4@b̡%b mt`vh쟰kf6O}_-= endstream endobj 35 0 obj << /Length 3246 /Filter /FlateDecode >> stream x^Ms+pqUT11DR)9ʼn-Wh?π,d.xA v?4A&zv;5Ab\ūam`옽ixz{l˃z |ky,/zqa˗ںWw{Uy}ys:= ܼǛםLpe<&[?^ӻ.\D|zg8뵚.N2ON7;ݎz11*gPc1y툿P(S>po]\éK:Z~=卿pNɸʻ1ho?p;èst^{D?), [œ4ZlE>``cIYMEڃpZc-#wէ'Ob' un >=}'S֣IC,';S8&.IS©6^>u,ezO'mØ N/;(TeUjLYGV 4*:i4Jc@B**Xtt=7"(eSb.7:%=tj2:6ڃb=ϮS eSٍsSs6_0:9SVnK:eX5źSxf%=.G \BJ~~ܟQlXZκsDyϜYZ$ YS,:eX9-Nҩg4 ,|f){;SVM:5IY\yf]ݞY(|gz(JprqS(:9SL'8bW=t*'BI}l)SN&\/SDz(ƹҩLiK7ͺ6]݉ҫewm񮳯bL寛lֵYWa`ͺn]ԉRFf]uݺ7֌_3R.XVq[3vX3/ocΛumź(Kdl~w"H6f^y߼(4m͍F֔.m-Ͽl$wqO~&~z-?\ vr/F0!{^ }d3m>mhF - X%?e*wd;EckmleNt8>KG6zU$۞SMgIܧ_Lw>&L,t2`#^rX] ^>K;ZA1A 0! e{O}!~V;+Z +C K)9@^nU ,.zaf6e'}w9φoz?%. endstream endobj 38 0 obj << /Length 1079 /Filter /FlateDecode >> stream x^[Mo7 ϯ@ d(ǢEvoGMuпߧwESgolhH񍤕=ib\=1m$; OU?~8]M y=ߢ2 +s?hmN|LKo5䯋d Viwoj]M>\+o.$ﹿx}wqBτK}x䮗x7&Mdꂠ|g٬?ۉHKWa%W ע D ^Mjop@wwoќwP*4_/{ij~E71'p7FbY)2N9,QĈŻ(ՉNB`y@Tܘ3{R`<b\![$Us죦D8E.^:4F܋sX,E%jaU/kncHeunġtdZ%pq`F4m,O>$|Gn0A'M:qٮ '*tNL2vc;=|qNOZY]9X5OZ]iHcf:O.ƺ븢3j3b@0vl]cU+"] =t t.bb3ƺ .s)ag}k J8X8[3ן3Mp9~{ٙ05е:p.:ú4i3Ʈ1v>v$և;c^cn<rw'Iek^cN=sZ\qZ|q)V YpU*۾s@hͧJ_M0#F QLm_\S$|U0a4eBK_fpW0ortDhh 1AonR [/lt~:6*%`P{?%fr]sJ25!#!v= wSNks‰ z};6˾ SoM`Wi endstream endobj 42 0 obj << /Length 1206 /Filter /FlateDecode >> stream x^XKo7 ϯХ@ $HJchpIqC~?)` a'R.\p\Dlj;ߋp6.,zbbr,RvޤKrkdw~.sKi//p]:|j4r[y?=#Ͽ?.Mo77elPRIunըoUj|0mJx Qh£5;\9 2u=}%FWd_݃wyuNj[ UjwOa |{ژ?Gf,a8,=})`c:zdj\mj^DXH 3j>d-\w|K[3'g6U]@᳧nL֡O&ӆދ( ܚq䜌"jҔJ#5PbFKe˛K*=(^~q8y5rx=uC=guREXW⨺XCݣ1Y&)e˛+I<> stream x^mTMo1WH;䈀 BEQ(eۦmڋ~3y @87φ@pɊcoD`٧QÓ0hFхas~,6{;MQ,:`>Ϸ,CYNEsY.I\^5㪜۹UT5\3jƩ6& }hq-w+hYIMZb_'?b?? {yv$K19l#W ZwMcb*<ҮMh%{UF.no`\oa^/ |oGVF{nP Mv~8mFC-*,aK9`:fe&{TlQo:աڽ6a-ln%Fax8½^ס 6$,5ҋ^0,&O!d,gcf`B iI/`T_LBR^UWȷ4HŁ}T%#B>04%ց JLQӁ)`1Nª- e0.!+qE3Q|*ЁiV.jׄ# ]z][faxep=M8!}1< endstream endobj 50 0 obj << /Length 399 /Filter /FlateDecode >> stream x^mRMo0 WR`jU$eIޱl;)|[ڭhNtr3e{tcj0 T,{S \v7;3189!7csb$69vIRu秩s@'[`GvSd،*fV;hJIFgN .>%x*g_kkIC$QDy$JD0l)&܄I.ۿ_off'-wETm SY76u~WZ% ۢ7>~८w+6:Z(aٜX.dߙY\IzGtpm[jtY/o9p endstream endobj 47 0 obj << /Type /XObject /Subtype /Image /Width 472 /Height 591 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 154752 /Filter/FlateDecode /DecodeParms<> >> stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 54 0 obj << /Length 511 /Filter /FlateDecode >> stream x^UKo0W Vbj\խlEDxzlVPPS.(ÿ́pagC4#MoÌR'vdA"F?y&|٥f0 Ư9%m_^UXSZ&\pwRfl z[ahuh %YuhŹ̻y_١c NPũQ:9;tXԟC0dݩ6d+u?(#B^}`!Dr,I:q  OdI@Na])W!18 5޲MQ !oJgOTJPe)]e^35Cg/ pU endstream endobj 57 0 obj << /Subtype /CIDFontType0C /Length 1741 /Filter /FlateDecode >> stream x^uU PSW~!,$ χ˟P[Y TOAÀ򀐘`@DATJ]kY2,.g1klf(tmwf{3sνw/&&eMږ%b#2UY9KaC VFv#BKB6̷Fm žT~+ķ߀aN:ň7yC͘& fE```OXW2 zUʘȘ_'0JHm K6JAZ%IER錉pFK)bl:*7zUgu"21z5?h%UUzXBS$FkRU@SeihEEˋ#}qT!{/")#=;"uOBbzVbH1zJI*!ǡw:?"`8c+ĔX J#c*!G~cވb:lTMPs# ?۷׃gp)evMc(jR0B!|ݽRte>po} _-܋yŎqϚ桥EdCE, Dgo4IM-r 64*O\A /?u=mZ/i@t> %ύhSWv&E֖:7c oQR6=jx"[}RØA/[sU,zgYD@׸l L{/tly餱E hAX ·4l%w瑬[1%[%^ev> stream x^Rj0+@zp- yGJJI!ߕPjΎfG]D FWް6͞zs#u(QvzֈϲyUsIL}+C NkLJ> stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 64 0 obj << /Length 361 /Filter /FlateDecode >> stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 67 0 obj << /Subtype /CIDFontType0C /Length 3882 /Filter /FlateDecode >> stream x^uX Tan NqĄը*"O20lE0n.Y5*8nADEo k49OOTuխݺwZ@=c/|D$X.IOPyOF,<'ezd!?E}f$7G7&%%?%A')I4t@ħtb&1,#'l(RJJK˲LRĦllf}ke.V2yefjB,")R&-*3hB$SDF$F˔ѲYzj*UR'~n% Ke*U 2JH'EFdiQ2Ϡ@2)M:*)5Jfi)FEbҒY[X)U1xNuIֺuK}-}\}ܭ֦ɢ*YdTZD\bᆵR&" sl// KŠ&l[ŽE|E8 "XL o—XJD'"$"#b D(d"PDN}/[V}[/zzzτ[ +&trOMRV?Ԏe'c.{x}IF5O40>b<4"15 aq䡽!ZƑ(H׸٠=-BYZ)OK${ݓm< uzZ۽e;Xx/rgzZ*J\/U+~ÇAˈWq0sOSp.[KwsaKne~8ww{SKڤ,_+drbuZ]0 vs/m涛Hfmh0InO,XcHOԝ0Ӕ>̺a:Q{/7|櫏@{4;-f¼ >g^]vvlRn)C&ȄMrc Jܩ'7-v`Owv0W.Ufs[ݶv@TY){_sKI˟^lg@2jxG|,h,xGq$}a?Z iQW 6=ЀC`VclAu)I,(`_'z:Bޤ+ζ1C"}6'qsw L9kMuڪ$0 HXٗ٥^0gNl>ŵBlMFNr/C,N`ߤ-c&'2uaA {5leta*8-/]Yn.))(aBh E( S!^k`,f޼*}5gHzyP몒|%EV@?ٹ'q s]zΝKEW2s*o9vgYkLiCCpxIO%pvqWe}<{KHΣ͍=`#ݱ.q9˸0}CulFiS&聚+ 4iE!WYqTԏ~æflXN΢P٨G݇p>N~T@]SpS~:0{@t9)yVj/澅)_T%7pA^ D ZBPLDn/V5g?(ΫQ*>\e-ˮG>}@v¥!;9H?Qa}J7D}ڻk:c>iDA#^s:ayH>1H HΊdvM=/xT3hwk-_.9E]s~".F3#q,iy?*pdZVYVm5s<+g$ klWҘ)\BU'"N K:DɯCՑ,j*ս;í<]<{obz]n9#q.O!Pe8+\=8x҉{6BHw`^܎_(RwigTj'2G:"Њ=2}ss$Z2QBuia;u`5w/ 5`c9bAC2dgG,>tzp`!pgҖB_H_:*`"ult\pX*> hao?xk3d4XJ`\C1\r}d˝(_z$,ƶ+<7maAN#8]\A3#CL& -`  Xb N} -o <ńceFd{yT M̛oainΑdՅF:x黾37he!.?pEbsOy[Yl%BEl]c7Fmq,BFVM8;^%涜RGyu%Yl'Drߢ>?XQ(Ll'm GHֵ) 9 Lt6#H#t^Z~Cr[iZOjb6nd-~鄞R+vkĮļॠwx?3"3m-Sl<2J̝(l%R_Z1yǒwݎ endstream endobj 69 0 obj << /Length 453 /Filter /FlateDecode >> stream x^Sj0+@zp-; 816m^iIJC~G8aax7oތٷ#gз绺fM+ ANVT0y^nJ$ZG ߤ5>lg]U>sm|nj8?D2 #_`z% 9j(,;*-u#`{aĤQN4*[\]R[ob\ Fj3X?{Y$QwZ7R.Yt/jΰh%]- 3*yU7zt1hY% CkP|M18SN(qIH$qȕcPiD'wdVeG3;K1JrCJbͱ]͈zt_vJtmgOn,z+X endstream endobj 73 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.28 13:18)/ConTeXt.Time (2009.03.30 20:44)/ConTeXt.Jobname (simpleslides-example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.28 13:18) /ID (simpleslides-example.20090330) /Keywords /CreationDate (D:20090330204430-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 48 /First 363 /Length 1476 /Filter /FlateDecode >> stream x^X]o6}ׯ{k18Ic׭ `AYWce<4~JrulI<<<&VF{UK901ہid\R!!th0 v!3x \>xbPTGHҞc}x3,²}p, mA#rϻ=;^-/no,uN(T}><]fcʂ&IFg:Īa80q pC` ^M"TϮkpW{ak{K5OT3%EN`]ˉEw|M"d VH˗Pf"I]ދo󌧅Rz:BA:m+;I3;~h_I1KFڛ8+GrO/kI&3{c߃|@a\/HQz(L܁x+ooa@*7S6SޚI q;m?>ͮKCp>,@pN"=W/c>1{0v]yP{YhL(C'WxTldɨkY0(?{0 :kf@fQ=EכC͓qhc;I9yvd|;lJ.V5V=M8F*a(=`%H#sl*H QYEޏH5Z\be򪒹[~tb錣! r3Hi_j:- endstream endobj 74 0 obj << /Type /XRef /Index [0 74] /Size 74 /W [1 3 1] /Root 72 0 R /Info 73 0 R /ID [<6B5F276C1390CE56A6DDF53068D906DB> <6B5F276C1390CE56A6DDF53068D906DB>] /Length 227 /Filter /FlateDecode >> stream x^%=/asQU/mջ[E&EdAcSfa+/;7(#KO!Hӹ!ZDrLR"r ¹w(^;b@Իa1sUQ"&Fֽb:Ĥ w3b8˟{C&f9' % included as part of the beamer package in LaTeX % % In principle, this file can be redistributed and/or modified under % the terms of the GNU Public License, version 2. % % However, this file is supposed to be a template to be modified % for your own needs. For this reason, if you use this file as a % template and not specifically distribute it as part of a another % package/program, the author grants the extra permission to freely % copy and modify this file as you see fit and even to delete this % copyright notice. \usemodule [simpleslides] [%%%%%%%%%%%%%%%%%%%%% % Choose a style %%%%%%%%%%%%%%%%%%%%%% style=BigNumber, % color=blue|red % style=BottomSquares, % style=Boxed, % style=Ellipse, % style=Embossed, % style=Framed, % alternative=square|stripe % style=FramedTitle, % style=HorizontalStripes, % color=blue|green|red % style=NarrowStripes, % color=blue|green|red % style=RainbowStripe, % style=Rounded, % style=Shaded, % color=blue|green|bluered % style=SideSquares, % style=Split, % style=Sunrise, % style=Swoosh, % style=ThickStripes, %%%%%%%%%%%%%%%%%%%%%%% % Choose a font %%%%%%%%%%%%%%%%%%%%%%% font=Bookman, % font=Chancery, % font=Gothic, % font=Helevetica, % font=LatinModern, % font=LatinModernSans, % font=Palatino, % font=Schoolbook, % font=Times, %%%%%%%%%%%%%%%%%%%%%%%%% % Choose a font size %%%%%%%%%%%%%%%%%%%%%%%%% size=17pt, % Default is 17pt %%%%%%%%%%%%%%%%%%%%%%%%% % Choose a color. % Only a few styles support color %%%%%%%%%%%%%%%%%%%%%%%%% color=blue, % supported by: % BigNumber, HorizontalStripes, NarrowStripes, Shaded % color=red, % supported by: % BigNumber, HorizontalStripes, NarrowStripes % color=green, % supported by: % HorizontalStripes, NarrowStripes, Shaded %%%%%%%%%%%%%%%%%%%%%%%%% % Choose a alternative. % Only one style support alternative %%%%%%%%%%%%%%%%%%%%%%%%% alternative=square, % supported by: % Framed % alternative=stripe, % supported by: % Framed ] \setupTitle [title={Presentation Title}, author={F.~Author, S.~Another}, date={Date / Occasion}] % In order to use sample images distributed with ConTeXt \setupexternalfigures[location={local,global,default}] \starttext \placeTitle % Since this a solution template for a generic talk, very little can % be said about how it should be structured. However, the talk length % of between 15min and 45min and the theme suggest that you stick to % the following rules: % - Exactly two or three sections (other than the summary). % - At *most* three subsections per section. % - Talk about 30s to 2min per slide. So there should be between about % 15 and 30 slides, all told. \SlideTitle{Make Titles Informative} % - A title should summarize the slide in an understandable fashion % for anyone how does not follow everything on the slide itself. \startitemize \item Use bullets points when appropriate. \item Use pictures when possible \item Do not put too much information on one slide \stopitemize % You can include full slide pictures. There are some helper commands to % decorate the picture. % To include a full slide picute. \IncludePicture [horizontal] [cow] % Name of the image {A Dutch Cow} % Title of the slide % We can decorate the picture using circles, arrows, and focus. In order to % determine where to draw the decorations, it is helpful to draw a grid. \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, grid=yes] {A Dutch Cow with a grid} % Title of the slide % Sometimes you need a finer grip to fine tune the exact position \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, grid=yes, steps=5, % Each grid block is broken into these many parts. subgrid=yes] {A Dutch Cow with a fine grid} % Title of the slide % Now lets try to draw a circle around the cow's head \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, grid=yes, subgrid=yes, alternative=circle, color=orange, x=1.4, y=8.2, xscale=1.5, yscale=couple, % To ensure that we get a circle and not an ellipse shadow=bottomleft] {The head of a dutch cow} % Title of the slide % Now that we have found the correct location to place the circle, we can remove % the helper grid. \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, grid=no, subgrid=no, alternative=circle, color=orange, x=1.4, y=8.2, xscale=1.5, yscale=couple, % To ensure that we get a circle shadow=bottomleft] {The head of a dutch cow} % Title of the slide % We can also draw arrows. \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, grid=no, subgrid=no, alternative=arrow, color=orange, x=0.4, y=6.8, direction=-90, length=3cm, shadow=topright] % The shadow direction gets rotated with the arrow {The mouth of a dutch cow} % Title of the slide % We can also highlight specific parts of the picture \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, grid=no, subgrid=no, alternative=focus, color=orange, x=1.4, y=8.2, xscale=1.5, yscale=couple, % To ensure that we get a circle opacity=0.5] {The head of a dutch cow} % Title of the slide % You can also include a picture with some text along side it. \IncludePicture [vertical] [mill] % Name of the image {The windmills are an example of a green energy source.} % Slide title \SlideTitle{Summary} \startitemize \item The {\em first main message} of your talk in one or two lines. \item The {\em second main message} of your talk in one or two lines. \item Perhaps a {\em third message}, but not more than that. \stopitemize \stoptext context-modules-20240428/doc/context/third/simpleslides/solutions/style-template.tex0000644000175000017500000001122011221776611027661 0ustar hillehille% This file is a template to create your own style for use with the % simpleslides module. Modify the "dummy"-settings in it, save it under a % name simpleslides-s-YOURNAME.tex, and use it by choosing style=YOURNAME % in the \tex{usemodule} command. % Provide the name of your style here; replace "template" with your unique % name for your style. \startmodule[simpleslides-s-template] \unprotect % Here, you set the layout for your style. You will probably have to fiddle % with the values until everything is exactly the way you want. \setuplayout [width=fit, height=middle, margin=0cm, height=fit, margindistance=0cm, header=0cm, footer=0cm, topspace=1cm, bottomspace=2cm, backspace=1.5cm, location=singlesided] % Some presentations need a different layout for "horizontal" and "vertical" % slides. If, e.g., you want a larger header for you horizontal slides (in % order to accomodate the titles of your slides), you would set this up like % so: \setuplayout [simpleslides:layout:horizontal][header=1.4cm] \setuplayout [simpleslides:layout:vertical] [header=0cm] \setuplayout [simpleslides:layout:title] [header=0cm] % The following command defines the position of the slidetitle layer; the % values x= and y= determine the distance from the top left edge. \setuplayer[simpleslides:layer:slidetitle] [x=15mm] % Sometimes, your vertical arrangement is set up in a way that your picture % frames should not take up the full textheight and less than half of the % textwidth. You can set these values here; they will be used internally. \define\NormalHeight {\textheight} \define\NormalWidth {.5\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.5\textwidth} % Now comes an important part: defining your color scheme. You will need at % least two colors: a backgroundcolor and a contrastcolor. The % simpleslides:itemize:color is used to typeset numbers and symbols of % itemizations; in many styles, the contrastcolor is used. \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:contrastcolor] [s=.3] \definecolor [simpleslides:variantcolor] [s=.1] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] % Now comes the part which is of greatest importance to the visual appearance % of your presentation: defining the background of your slides. One % possibility is using \METAPOST\ to calculate it, using the colors you have % just defined. If you want to set up such a background, have a look at chapter % 6 of the Metafun manual, where many nifty tricks are explained. One thing % that is especially useful is the StartPage ... StopPage environment % (explained in chapter 6.4), which gives you access to many variables % pertaining to page dimensions. Since there are three different types of % slides (for the title page, for "horizontal" and for "vertical" slides), it % may make sense to define three different backgrounds, but that is entirely up % to you. \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; draw Page withcolor \MPcolor{simpleslides:contrastcolor} ; StopPage ; \stopuseMPgraphic % The actual setup of our backgrounds is done here: we define overlays for % different types of slides. You can now make use of the MPgraphics that you % just defined, but you could also put external images as the background to % your slides. By default, the following backgrounds are used: % % title page: simpleslides:background:title % % horizontal: simpleslides:background:horizontal and simpleslides:background:ornament % % vertical: simpleslides:background:vertical and simpleslides:background:ornament \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:ornament}] % The setupTitle and setupSlideTitle define the look of your titles; lots of % setup commands are available to determine what they should look like. \setupTitle [\c!headcolor={simpleslides:contrastcolor}] \setupSlideTitle [\c!color={simpleslides:contrastcolor}, \c!alternative=layer, \c!align=\v!center, \c!width=\textwidth, \c!height=3cm, \c!after=] % You're almost done! At long last, we define a symbol for the first level of % itemizations and make sure that itemizations use the right color. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color={simpleslides:itemize:color}] \protect \stopmodule % And this should be enough! \endinput context-modules-20240428/doc/context/third/simpleslides/solutions/speaker_introduction-2min.tex0000644000175000017500000000442511221776611032017 0ustar hillehille% This file is a solution template for: % - Introducing another speaker. % - Talk length is about 2min. % - Style is informal. % This is adapted from the example by Till Tantau % included as part of the beamer package in LaTeX % % In principle, this file can be redistributed and/or modified under % the terms of the GNU Public License, version 2. % % However, this file is supposed to be a template to be modified % for your own needs. For this reason, if you use this file as a % template and not specifically distribute it as part of a another % package/program, the author grants the extra permission to freely % copy and modify this file as you see fit and even to delete this % copyright notice. \usemodule [simpleslides] [style=Boxed, font=Bookman] \starttext \SlideTitle {Speaker's Name} \startitemize \item Current affiliation of Speaker's Name % Examples: \startitemize \item Professor of mathematics, University of Wherever. \item Junior partner at company X. \item Speaker for organization/project X. \stopitemize \stopitemize \SlideTitle {Speaker's Name} \startitemize \item Experience and achievements % Optional. Use this if it is appropriate to slightly flatter the % speaker, for example if the speaker has been invited. % Using subitems, list things that make the speaker look % interesting and competent. % Examples: \startitemize \item Academic degree, but only if appropriate \item Current and/or previous positions, possibly with dates \item Publications (possibly just number of publications) \item Awards, prizes \stopitemize \stopitemize \SlideTitle {Speaker's Name} \startitemize \item Concerning today's talk % Optional. Use this to point out specific experiences/knowledge % of the speaker that are important for the talk and that do not % follow from the above. % Examples: \startitemize \item Expert who has worked in the field/project for X month/years. \item Will present his/her/group's/company's research on the subject. \item Will summarize project report or current project status. \stopitemize \stopitemize \stoptext context-modules-20240428/doc/context/third/simpleslides/example.pdf0000644000175000017500000001735111641726551024274 0ustar hillehille%PDF-1.5 % 1 0 obj << /Type /XObject /Subtype /Form /BBox [-1 -1 655.4429 506.0054] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 2 0 R /Length 239 /Filter /FlateDecode >> stream x^uKn1M~`L/0.t*%CՖl,vD1K-}gx?c7Np ,j]ݿ| Re D Q5e[$UxcrƢ䪵RFR(Gp9t9%e֙X{Bk ζ^8JXoD \jMGsZMh'owj^ Br endstream endobj 6 0 obj << /Length 231 /Filter /FlateDecode >> stream x^PN1[rE}| 4At y hh^x@p>'L 5/Up ex4Q-Aywu[6DV(=<̉Kmef^Wx>NZ 7bQa3V5NtUXnw9aȼhFSK9!uqho(1yo̘HȞJ>l>C%粄/H|( endstream endobj 11 0 obj << /Length 460 /Filter /FlateDecode >> stream x^TMo1 ϯ=l;VV#q"۲jg@Iw&Z!ni<8{ca .}0%6%w899nf-A8L!}~:jMkXބ -o9ʽZZ 6ºd_7@b11xɥ 0/2O>i1-;pyYB@\}F+pPESH s zY $"t=\cwٜuϳ3Kԍ}/#(?4`Ab$)o,1d'm탱 ^3ns;_UDثqR }R"ϓhVdd6lJ/MƤɓs=ZҲFG}QՄ8r뛣kKDsl_*>|H pD1z^b endstream endobj 15 0 obj << /Length 443 /Filter /FlateDecode >> stream x^TMo0 WR=D%"{aZ005qdnjY-E3pa٧*$%6n| |w.,Jh!{Ьlkg>t׷R],FI+%$

q_ٙu4NljֹA֎}*%!%fjS/fLhkt]𱘙^˛NoU*%䡜lwny0melf.ܙډ9>2$끬3y'\<1澌OϹǮvغbvy, endstream endobj 17 0 obj << /Subtype /CIDFontType0C /Length 779 /Filter /FlateDecode >> stream x^uSILAfQEG@#0,.a@@ťgf3MYqV1p0=@I56ITc%UMMCݝm0:?f*^d!5XDeڌ0Yƾ8e>->s!EQY5L92bl ZEF)7~O/>AɺhPRiU't:x?&0H &e('JT IbR:Ѐ$X׺y %!$Jb*-|~Z.=HCM*ՑA?R_f^pˉe Įm@d5H*2ɚȚţV>T,@+AO"T(2DPbĖ z5B\UzSZ%G&*zeV!:Q! ]OxzoSԸ7Fh^R)yB:žCM>/! %g(28k#oOѴŜ!4Ab|͸b+.gܺsYuvIM:>L>zőj``H endstream endobj 19 0 obj << /Length 360 /Filter /FlateDecode >> stream x^RM0W=ڃ5"]a-j4&lYAL1^[)Qfm>L&[ź eGGYQ+b MMhgHVvGߤ5^|P90=/ǏgowԪ֪Ϣ-q 7肺J`1;7!iBr=NpaޱʴeiߴX%P$ ?iu|ψW>3iHiW%ZC@I6= ]%ܠퟖ86C7LqlꌡIhj"U^) bXN5vH^L߀qZa&ų{۵3b, endstream endobj 22 0 obj << /Subtype /CIDFontType0C /Length 2339 /Filter /FlateDecode >> stream x^uV TW!!UbbH}W-)Q1 !HhMWA!RAԣ֊rj]"h*4.ڢGž={=}~cb12*%99"˒@Z]a^=Sg0y΃*}hDtF" AW}߈)׾~L _ky4wutlcJl 6D|q1ek5ZUoJ)Y˵r溟!\?Zk0[ z.˨T2.T,Y&#L9\6+hNg6[fsɹz Wl28mi,Z Whh͜5WŭLJbMF+TVkh9??h\՚`-̺a% $K/vyB+c2s5Kg3LYyPfcX<[e`75X4:̀nj 03fJDB|\I{NkGGhU4**FDa#~!HYGJG)f5PH%_iQߊ0G OغAa}4JF4@ih%!uږ^V KK"ܗC a gPݨ |Dv-z QcHV>dgSг^Br4?\%6Vb[ e`(o|eP4@?v &ySE s5;aF/H7-"R >mrd'~N_`O)B"xTּwrhlPDE?DxF7onb(f]iv=9#o}kDL7׳ukQ91ۮ).6,bdRfxO-ky䛫v[n>rrK3}f[?>N;"g2LkپԣCC63wF0COw9;d=Xa%3Oh? _8|N}..K60>d]N('<64`WAg))z"Xwث8_@QS!|88$( tタ%~A'Wkw<մ2(c2ul_H8x*OMJ܈w Aⶕ2'~ANp+]r^j\& [ tΖZYh*b/ߡ1_|~&hiw)F'^Z%ka;Jv/ @FMj=rID${4|?-Wjy8iBeItWo5΁e H-\"W`I.A6YekiyxS rRreQҖ $LnW!{ߏT,J5_]Jv{v~rydHz3+c@Ž0Q.H,dBv׬g;iTs͓Yi2VzL7Gx*w OJ> stream x^Rj0}Wd|j]HaVtc-c5MJ>Iؘ ܜ{ݽ{C{!ȶUCF} m;oF:z\n\S/``NZQΡ%|GY>/mQ6b;SefKٝ` C:0jNJd$BaT\{kD*$.xQvPbAC\@9;cF#f)9CIS*ҘѮ6\v) P7̵8J,0)%~Ǿkҧk36ݸ#Vc拏?|1hW%Cdƿ*cٓ'G]oQ|A,,(3#o+y,޹n~kм7Sv_oC эrm|5? endstream endobj 27 0 obj << /Producer (LuaTeX-0.36.0) /Trapped /False/ConTeXt.Version (2009.03.27 23:51)/ConTeXt.Time (2009.03.27 21:04)/ConTeXt.Jobname (example)/ConTeXt.Url (www.pragma-ade.com)/Title /Subject /Author /Creator /ModDate (ConTeXt - 2009.03.27 23:51) /ID (example.20090327) /Keywords /CreationDate (D:20090327210445-04'00') /PTEX.Fullbanner (This is LuaTeX, Version snapshot-0.36.0 (Web2C 7.5.7) kpathsea version 3.5.7dev) >> endobj 3 0 obj << /Type /ObjStm /N 17 /First 116 /Length 772 /Filter /FlateDecode >> stream x^o0Wc&t*EyH2A ~_[>0 |?w".IX@Ǎ]N[$na(jpZ,]?5mqŬbNMfӹ~Z0K',kQyMEؖ׃ Ƙa^+Vhɤ?E͂eHaVBp1%U7tY*8}fyۏNYl۠#Z/!tE>9_5Fg(6eD6ۣwsݔsLkj:/ b]3&@ endstream endobj 28 0 obj << /Type /XRef /Index [0 28] /Size 28 /W [1 2 1] /Root 26 0 R /Info 27 0 R /ID [<331AD380DDE1CAFDD3C281FEFCD68310> <331AD380DDE1CAFDD3C281FEFCD68310>] /Length 88 /Filter /FlateDecode >> stream x^Ȼ 0a;!+ B2 Q3 + vsyS!yiwf0t~)M`Ⱥ#VLLvn9>jo2\O  endstream endobj startxref 7576 %%EOF context-modules-20240428/doc/context/third/simpleslides/simpleslides.pdf0000644000175000017500001503522411716324602025335 0ustar hillehille%PDF-1.6 % 27 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 1162.1964 1408.8071] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 28 0 R /Length 199 /Filter /FlateDecode >> stream x^M 0F9l\v$?/ .h-bKՅ7UD 4̗@Z X 2VH+pȤ-ԽX@?ޡSWZ¡iA\4!lskAhޭ4YL!HXjc+-Y:%K(_'Aٞщ W*8ڑ7ӄa=KXU{zs/ٓ[> stream x^[ˮW& -0,ůr,gϩwlLY$8uvw8w~s]’N;?4eS^g;|z_]޾X˂kX'o?s&|ÏOmL7%ˋwC/O~kZ\X1SveN.X5P+ICFNPAPP^\PL=}|)5yz§6k.CS0\ȥbX܊WL ,SM||?}+c f5O_]\i|_lZhOOVeely_0Tus8>w.c+3:ÿWz/h+hea*)9IɤH<7ZSZ'Ed)Ohf=u(`T2#zBhq9=ψ_٧xh"Znޤ˶BZgi\*LE3w1"[ZؚN,Zg/ X!bœ]}K%]VB:\r[=^ao~|JNF4$q ό ĎBuze?=u. JX^XklW $V(PУ` F&]uԀ$pW_j·n}%o>AHAe.nzz[ȿ׼N~;z.TC7E?jw0.#zPPFӰtɡ數RilS|KW7fiO֑RZ9fSѣZ*M 俩TGUgxW*:vC@iA红Њ (Uݍj(J'LDAxTP5+ rqkjy-0{zNQBz;m!E˒(a=p H"jeQvWxWvc7N95耬|D5[#AMlQjɵ@C0r{uK30=8$,'y 6V WSaE$XﱖįK\Y`zX[I6vca8~ j]Ap h4V\3D-QGu\Y>fK~0nqD(ʆs:M!q4g+iܐVYOZⴢ<Ӫʖ}&+ h,ŭ D_@EpqbZS+*kP 3e172UK>: %dU%7m|ŷRSZ0tɽt ~C]ïԵjsΜ_yWt&Oݑ/l&)̵Ɂ$9=};uxK _uD:]G@ B'ZqGJSiw8<`PucRb{"-;VxI&dj4\SikKt#Kŏ9Ȯp*с4Ev Y.H*JuҌTq$ )f2EYeu>-R;θRBO60mSJ;,i>T,~iv8?zdF;ۭVh O$i_OgvOY ul> iI4wԌطu`jo[S}'jP F<,u7Dcrm>9wcI@L\#?]zJ>l)[>禁vZV+d22^Kduq1fQ-,K$<\UBˑz$vnR 3ף!F>oHi)fWvH%Z}kRA+Y#F8QX|\8eapCk[R;=Aen_qkk2j# hzӀ;]rrcj#6oG88I6#pX:F5]Xcl/Z!1A׻-?cz3vW5!` :,("@J@ #ߡ]A0\ Jo K),8#e;'1kbg%l0k?ն&!|AJc= e @FYc:6:7vxy\r a5ה\^ƚ7mi DF |[/q/6X\i[Wɓd+Mk8 Ƣ0>$~3] RV]Guxexeq2G4VUu8mӕF~-I ˻X"NWBzG5> stream x^[ɎW)Vefm1) 7(,ߋY'ӝKddċ-k>5]]g|{ovX7=w?--<4vC{{N8黹w|o?Ǧw~Kٵ4p}]ߵk9yw߷P27`k4yCܥ[2hҧ2vMvei~Y]s7=枺6u]Y{s>klْyNacXaƒM_vJ)g69aswL&̀q@Ü4.cMOsXXJ#'>|_3gwoƒNǹGܻ ܛ\V)54A lQuוnX75Z)0>y2)yGZ{˧o{?ܗ'_W8 ]A}2/0(2~ = ̤H=*x2&v}Jiu[ U'i䚯N .p` @A 1*mڋl) L< TfQz-b3בEfLGeㄥHt!^]Y^+Qo#B]U 8$kC=Q93y mn TQ=C v6SeZeM$۴-=uFfhȥXXHnOKbmG kG:=:aEO}Jwv m<=L>/MwhG8l^ϩ_WNic?Ə> oeAIvMRG`0a-f'%@ЬmZ?$ܠBW{MT. nh=b,S{ȈSƙ"n8>8v*$wX5sIHI[QVMЅ)"?fxEwfڨP;MPR%cYΖA,R$R[_ٷv |pT!}_)nLRwycj3յd[~^p˂ʅ}`,61v9~QwGD9-&ONBtz=G1%A)+>5Q5΀2F}tqM!_;p tVZ<0#hͅY%ߝ~j* Uh'#؃E5]hnIk1Tzw{L't}czLU©ZA':ʵyd5;qx-~8I&BehdYf1}#a vk)Pjhjh竆1WLm4?!ț \` zյD~]eS{-RkPk-#:*8/Pⲯ~@Zts͋{d阽Bnӊ3HpECADJ<C4pݚ vSYW}Le\flBί:d[Rk1j-GG-c@ (#٨TKlwzEnli^rQͲ.iHgx]+C; !u~"NRR >3=4~!'I̳nF-cM3鰏GR4&6 \T 4,_w㮸2L_GU+(n p*9pY?ʶ~f wyܭ j Q-`yS'A$H[Tcm\3 )6I8,M6!yB*Oge!~lҷ{JlG( ;Y{ `?,HX3"VD8a|4 |ɔDYh [3Vv y1nOώPYP5xa'1V|NA5{mbIiA pq+WLmeUH/2/<l)6s+ԅ~T6e<u̵ )>l$`bG{nbk92" WX1YZ!̹;bWcqWBwV3ou,IC{qfEsI"]T{ĕֳgdܸR_D/{M"I:kMF4*zUVd u*4}AFDOη1Lg wO>> Q%sRCM>N)hD@P_;1X~3_[䄎:Ű]edKwK\꩕(Ozy@8{U"x ]3m]Hk\> (wc$'*tt/~:rzIrb:Fn fUIjqNeNѹV_fc%~YJAYgIF{1IZqf6?Yڤt>z1~Z,k+u@HA倎" 䥽i,muj*mF[iLƝ9:woθ^ȓ~Z&UxqWe![Xz6Rph֤J&-k{55"#`M=e#e`0  }2fX6t\S*^G|]U'b`k^!&Z WVjl {j%9o>Q&وKf!f"8ǿuY ,_#?]Gf)i>xzs#tjqpO2P ~a8=fpe)ChT'^/9/E1WYgq'8*L|0ͫ'.0!ץV;e%PV4~V -ؙz]kЈ_t[k~:?i+2|NuҭM-[JM.I₲UF{*.Y\kH_bE]C  A*6C|NTT^۫+Iޙk|*jة-D)^),\W*e}@r 䬼Z{)Jͼp#2!̀iԆ"Vb\ýݔR] Ry"su a ).cAY{m\9*Y;@jMvr݁Hh> stream x^[KϯK ȑd@@u3|Hֶ X?_ٙڇXlϲb_a0×'#;Ա&] cH%&;16X5exx ?O}M3i}'kF Ü:ݙі-GkCvx<@Tbc<. 6UzaKɞޭc:#ń-\0 *bJ 3`1r:>`0l3f5~Ӛ nYpa~MpY(Y;<=awtn3/`WrOv0sb&hg!G( dr@:+ҙZ]q4xݑHCr|5JHxIcSsP!@2xM#A])cr%( `*Hpl(#d60 - vKBhA`ԭX; U2T:a`i-'O?s<Rh!u;_B#ΉfpT¶7S 4h\N0'MATȼJ>1&K2|(0A1up&bjK>*`M)x$?G8͘ƂP34TXX)\eRNup,U ̓lf3X!s~L $9\ P5>gDTvyB##!/O03+F;87x<\Fg! (FniEF4ILEӚ-<UB,[ -І2`Hy"ApkkQG9f#V-eSg`X2$)uZ$[6l9btʴ!3 ;@xaVi9A;}OrsWG4]"^ R *H]RR'UlDNvE6ExYB4EYsҾ g.Y8Mh6mzm]ͲUۏzҠ툙4?VlgBُ-QU5rwuAHʔ d$b=pG_b2Y }KԶ̒:'˾CMlT)4H>?sPĻdߨ.<&)V //]$hX18ɜ1 W8@o!xRLq,ӎuWe$>0@ px-@\,.8P˚|-,?"۴:I:YDD#yȈɣ]$ Ж62|kk)4r>9Hjpgnq5L܄k xC^BcU#ƉC%*9R2b9YS O[Hv%l +T`4Q>tk& N OY~U&:hi}Ƈclj(P.6B g DgWS^A9vTv ;YNI,P}dZ$+rm_vz>0CEhB4od)kaeko@~{N-/ [xI.7mx]@%5 Jͺ7AXYn8OuD =u9o֭ [O$Vi=4c$+: ވNnsC' uN%VfЧ'd0qn TGZ2+6zR+%GP}/;&%`rJy ت8)T>C5 "Hfj3|!ѢjpZB,dzEM&z02B_ bǘ0(уOF2w7xDPmRbMCF5d}SW0ؾ*|4y.p56>ԧH=IT$$#;ˌ̀, ҙ:n˼T`|jmDw231Saf9Dg1A3nQeе#sK=3 3OX4mNW_wc 7ePF>24dg 6 f]7*Jjb0bxcj=E 3"堳%?=%ܻ"ݡӲPٖ+Ρf AG5˶uJdnwQC5k8P@EEx=u\ڡ63Qiѷ5@705>Ce$S7_N4!GWa=z.DsWeF;t!˛ܶY#2QC^k~9՜~Yn K[1u\RO"?Gl}ݧR ,~ -Cck(0}%*PǜUXc?DiWyZ8PՅ:@:C$e&uDyg:~Cqo@MqVΜ؜?jlF5~GD\*X)tXК< 2! tDZ G`ዿ8'}⃛#]Ӏ.1= 4E[mWnK|DS U~{w(Yyax % )":_Q_&ѧOÑ OWOeȼ*]І(6{i)s맠zS/$?8\{VПa~E+f^턎N &Kbgo-],1޸U fR >BwΩ Y.T޾V,v_<3A-#nM9j^t Pq̜'VfNz)y\S窎o^EkRq aşt*Hѓ#S(8*3#mM'7$d-|7 j2l6\u6WJH&Jc f 5\\?~<t*sj(-_*kWo!kقE F$ܞDx ($@U pԲ{ ZQ;36~x"sPA~)Q}jf$ٝi~xhW:*]@s|\\4ۛF.1?`C`+T+~+]>;p*.FlOq'x+8Gz\{#۶}{lyxݶ=Fۮ{Z랗g\,p rѥ 0't7s endstream endobj 74 0 obj << /Length 2898 /Filter /FlateDecode >> stream x^[ID篈2B%uCzn9 4T >{8vVM6{#:[x❐ӓ,oOHS[qP]od}tI:GRpNzgSxX(O }.>7ߞ7rII,'Ak& AEO%*"(ii"27@oqsur-Xg)B-W(l7E|3 щ?/)] (֨gH|E/H?z3\<+%S2*)@>A{l ٵw^8-9U;R.Tl_{mOYY)+*ťyf*[q=kҕ +V2ꂳ 5֥5ǔ15/ Z220Y#{{Y" Vk*$%vhHKBQnjwXrMuR+e)XɭNDPZlv '`G!.F:PA52RrAdQ<:A0,Wa%F9!R|K7g}.+__0ŤМ lB# T"8NIEU]b?8Cߟ |(MwQ* dJ\^ٵ0Ȱ a>9Pm:gWYU%[j#QWg+R|!}[O!APCKcmNnϐ^jM됸1,kZ RSĽ"EFD7(p}Nk*}{0\lp&I2V2Z =/ YNB75M)MYSW\i-$^/,%.mqj??as(? 2'@x.^Fwʹ4/KZx]V;W}d[H8k@&)NQ ,Vs/ŝ֚y/Ksc(Ƭ쌭8)-\-2j̅3FUSLSOaKkɳ|rQFgЦꋺkj&ԃk,j9 ;F2h[ ijiAkDp`~^Rz4Ȝ6aL'59`l'0䇤c5l-cfY]YaEk5VONH+nu@у&)'-qt2HC #k8+5+nQ] ! # A4>02򹊣 *>J+# 8V" #K k;LunH><+~(>WH C8]t<{ ,:]a1zT[ nNgfJ^qrtdu9ekŇԢBV} P 261Q?diq,7:SH>*.vIܧ%rPݎNf(1Fʏ*ۛs/G@Hgq@0JguSlTUڞ6 Q_yOМ|77ieĂFl0 $mʭY ߝt> \Xݘ ld(a{_ȃm&aW$K^,J׊:[Ì՛YhKr^]Qz&}ͭҮHC:7`eD>y&!@-'u1фdST 4^:(9iL0v"ώ"cpB7B#k#p( Veh'綊WRS? @Ѐjz1?_6<<% j9jfXKZh3 y@~>q6"k!8{cm2SI%8BȀ=Ww3 l\r5@“C}"=5KB۪yb9q[aͧMPKS1v9ul]f_/_cw%ɼmԪB#~s5Kle}&@Ӊ5 ̶,eێL_x䖏ΎKxjڳXW^xu'?+}nHz=^1* tw57*5ʡ>ٚ8e4 (xto^E $I&\D RPE>l0w7Ox ᵕAМh06J~m#4y) 0Io-;E[bpjܟ'X&XB> endstream endobj 85 0 obj << /Length 2122 /Filter /FlateDecode >> stream x^YMEW'DnD$!@BC>z㱉HH$tuu}zUc+cӝGwԩf8ܷ8<'ɦ k|N7;]㔼w&[7&vy67)ۗs7eK>5–bLgJΓ+M3>-#(941$!,PHQ:zBH `w]B 'd [F1RHk?9kJpiw+8;a.a|pS߭NWn-ewk[Ηy7qO>\וT`V{_齕꽕뼗zM Wz/iviJc"K 3ʹc^T2 yiɒ5@1iDFzuR x_},h{~ aK+Ҏ`RzD!f-V[g=LfeG&#J ĕN0}WD-jo%nNa'2ʴNVT*k0iZA2A>:2j sB̴/_ׯ"QGΘ=MD* (.2Mb(y5r5FQ6!&)!GCpl9f%..M|x,s# ~ư#JE!aƖ8`3зs̃" cemM[dڛk Tҵ^8Gr ^3]⍱Phm>Pr?x(l"kEᾼFL*[~J?fǶUϵNqm(7bP2@qQi]߻1E,T"'mDP; /B Pۂ6?<9ޜO3İ%9J`vw*:#^NݗHbءnNRe.Wr'XR@)> stream x^PN1[rE}| 4At y hh^x@p>'L 5/Up ex4Q-Aywu[6DV(=<̉Kmef^Wx>NZ 7bQa3V5NtUXnw9aȼhFSK9!uqho(1yo̘HȞJ>l>C%粄/H|( endstream endobj 92 0 obj <>stream x^uKn1M~`L/0.t*%CՖl,vD1K-}gx?c7Np ,j]ݿ| Re D Q5e[$UxcrƢ䪵RFR(Gp9t9%e֙X{Bk ζ^8JXoD \jMGsZMh'owj^ Br endstream endobj 94 0 obj <>stream x^Rj0}Wd|j]HaVtc-c5MJ>Iؘ ܜ{ݽ{C{!ȶUCF} m;oF:z\n\S/``NZQΡ%|GY>/mQ6b;SefKٝ` C:0jNJd$BaT\{kD*$.xQvPbAC\@9;cF#f)9CIS*ҘѮ6\v) P7̵8J,0)%~Ǿkҧk36ݸ#Vc拏?|1hW%Cdƿ*cٓ'G]oQ|A,,(3#o+y,޹n~kм7Sv_oC эrm|5? endstream endobj 98 0 obj <>stream x^uV TW!!UbbH}W-)Q1 !HhMWA!RAԣ֊rj]"h*4.ڢGž={=}~cb12*%99"˒@Z]a^=Sg0y΃*}hDtF" AW}߈)׾~L _ky4wutlcJl 6D|q1ek5ZUoJ)Y˵r溟!\?Zk0[ z.˨T2.T,Y&#L9\6+hNg6[fsɹz Wl28mi,Z Whh͜5WŭLJbMF+TVkh9??h\՚`-̺a% $K/vyB+c2s5Kg3LYyPfcX<[e`75X4:̀nj 03fJDB|\I{NkGGhU4**FDa#~!HYGJG)f5PH%_iQߊ0G OغAa}4JF4@ih%!uږ^V KK"ܗC a gPݨ |Dv-z QcHV>dgSг^Br4?\%6Vb[ e`(o|eP4@?v &ySE s5;aF/H7-"R >mrd'~N_`O)B"xTּwrhlPDE?DxF7onb(f]iv=9#o}kDL7׳ukQ91ۮ).6,bdRfxO-ky䛫v[n>rrK3}f[?>N;"g2LkپԣCC63wF0COw9;d=Xa%3Oh? _8|N}..K60>d]N('<64`WAg))z"Xwث8_@QS!|88$( tタ%~A'Wkw<մ2(c2ul_H8x*OMJ܈w Aⶕ2'~ANp+]r^j\& [ tΖZYh*b/ߡ1_|~&hiw)F'^Z%ka;Jv/ @FMj=rID${4|?-Wjy8iBeItWo5΁e H-\"W`I.A6YekiyxS rRreQҖ $LnW!{ߏT,J5_]Jv{v~rydHz3+c@Ž0Q.H,dBv׬g;iTs͓Yi2VzL7Gx*w OJ> stream x^TMo1 ϯ=l;VV#q"۲jg@Iw&Z!ni<8{ca .}0%6%w899nf-A8L!}~:jMkXބ -o9ʽZZ 6ºd_7@b11xɥ 0/2O>i1-;pyYB@\}F+pPESH s zY $"t=\cwٜuϳ3Kԍ}/#(?4`Ab$)o,1d'm탱 ^3ns;_UDثqR }R"ϓhVdd6lJ/MƤɓs=ZҲFG}QՄ8r뛣kKDsl_*>|H pD1z^b endstream endobj 102 0 obj <>stream x^RM0W=ڃ5"]a-j4&lYAL1^[)Qfm>L&[ź eGGYQ+b MMhgHVvGߤ5^|P90=/ǏgowԪ֪Ϣ-q 7肺J`1;7!iBr=NpaޱʴeiߴX%P$ ?iu|ψW>3iHiW%ZC@I6= ]%ܠퟖ86C7LqlꌡIhj"U^) bXN5vH^L߀qZa&ų{۵3b, endstream endobj 105 0 obj <>stream x^uSILAfQEG@#0,.a@@ťgf3MYqV1p0=@I56ITc%UMMCݝm0:?f*^d!5XDeڌ0Yƾ8e>->s!EQY5L92bl ZEF)7~O/>AɺhPRiU't:x?&0H &e('JT IbR:Ѐ$X׺y %!$Jb*-|~Z.=HCM*ՑA?R_f^pˉe Įm@d5H*2ɚȚţV>T,@+AO"T(2DPbĖ z5B\UzSZ%G&*zeV!:Q! ]OxzoSԸ7Fh^R)yB:žCM>/! %g(28k#oOѴŜ!4Ab|͸b+.gܺsYuvIM:>L>zőj``H endstream endobj 71 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (example.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 89 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 106 0 R/Length 443 /Filter /FlateDecode >> stream x^TMo0 WR=D%"{aZ005qdnjY-E3pa٧*$%6n| |w.,Jh!{Ьlkg>t׷R],FI+%$

q_ٙu4NljֹA֎}*%!%fjS/fLhkt]𱘙^˛NoU*%䡜lwny0melf.ܙډ9>2$끬3y'\<1澌OϹǮvغbvy, endstream endobj 109 0 obj << /Length 2391 /Filter /FlateDecode >> stream x^ZK5ϯ\~!!,! ᐿWnٝ&<#e\l+eSl>|jU9P`uxo2k+lN}slͦCYYnzVYH}On^INk)ԗ f{DNm&XN;U)kLcR`Otdboxe$;9 ;M::8cZYl}!Ȳh4v$s} &]& iD&2F,y"0]6WxBh,h]V.pQ0$VW)R~g2Kn %|E_}}]Ʈ(>4*D~frQ,$jFŷHPDe)D2! :'1L,lq΢ᤳ`.p{U&'bsXKt"C}aܲ(°DA6XL<(wY9d؝EYTRRJV";+jQt~ݕ~KjX[EC937/᭞; ;ⓦH 0E)(f謊!hKG%H5Pd%zu3sjK慛)XZ¼>r4:QY ֹb *e՟U#nM5 'ӳ %b~6fې=8l.vb@sbAܩ8Ю)墶!δ6A0%^6\] XHCVkrYSx00Dk&&A`A(X1ʃ%|SWLD %:av>a9̻QzR_'~zza^弇yYx? GVa=!f'pnWycٟDm!h,U]vS4f)sy8GaAΛ&dK]2;d}ZEE7`GЪL12,Xd&͋o L"~N-qݨ_Ϡ{@SD|lMGG 7`0ҡLI䵄_" Pe-: |U!I'Ѯ p|ŎՓ {i:w%UE K2Tl-,Do EgEB c&r`YCm\B%gP=y7T7n?QAKbہCqQҰwaF,2Ǎ7D|b_QdAB<,z0h4*|őI3D[o! 3@ BD>\"DI $y BW[w5+OГ6xC ʀ0L['kU[m뛲e>%UKF~jȷ-ŎQ%a/N`qCѰcI*jӢUfJ+z yl5p_YªZ @h\F"s|c Dܕ D޵|Gڗy? S_Am]IN3ϧ > stream x^TKo1 W6Il#**qj$P$Xj]}G>zHq<m\9@)_w}7n~t >P'߰~[\@z/xR@DsQf_bлg"RWcs,ɧ%0Q+ r@Q%j}"X$3ܛU8S9fB2eFʨ%sZ0 [x=;iXQ6tv^i츉ٳ\ţrϿ/&ݩ{=μRwD9^{jyAcW4zbFShFQaO)$V*xZ:kQrB KRS?{JMQ/'SA\밮Maю_epVbfD}I]aQM}84vRHu:}Z߹Ud endstream endobj 117 0 obj <>stream x^uKn1M~`L/0.t*%CՖl,vD1K-}gx?c7Np ,j]ݿ| Re D Q5e[$UxcrƢ䪵RFR(Gp9t9%e֙X{Bk ζ^8JXoD \jMGsZMh'owj^ Br endstream endobj 118 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 120 0 obj <>stream x^RAo0W|;] !8&fَ~&В",3#!`zO\بN3׬&VB9mKioc)ڙ!ǒǑ7ig!o{LO%qZ5FܣvI%cQýA}nkX)ų䑪lȆ4 !NK{*Ӗ}bB hս=#~9j!0gҐҮK0mz:doAE-&:5ql,LqlꌡI`j!;s%_Tyq/#Ct8]#?7 endstream endobj 122 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 132 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 133 0 obj <>stream x^uTkLWaeupTX..,Jy,ug;<MA@Ѩ*PJhSmh|D&*9c/?z0iz9ι~94M4rmEŪJ"+朂KT=R֦b%i yI2i7Vdc*|!T^KyEy=vsj>Y'TQVU4ET0R1T}I?;zE^tuxs^5-j^裎o 4P+mc Lpֶw7ҭ{򥾺 'cU J𗊃}G?Q NLI T<` (Uve8+!0c tyXn9>{zΟWMZE#r %8T?IhHxSJAJHq (H8,Ћ$z@2y4= {q`: D뭛ll7,L+J'8uAwt1F%<Dz$~ˤa;iz ;]~`8Q;kd< O /9C= Dpɭ.[n8{+r&*c8^pLդa^Vйq"@! i¯PNjt`'=4τDX{p;鉁k! Ky ػ2=0BpȳTg!p2 FFGpla \QQ]ߵ4/+I@ { ='1 Gx-1u8z/XኳdZw!:qS&P|iφ.]Mg՞7}QŐ!F(vK!밂 ;Iۦnuh߱cW~RWǞ;vwT̈́_F0"o endstream endobj 134 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 82 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BigNumber-blue.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 113 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 138 0 R/Length 550 /Filter /FlateDecode >> stream x^To1 ~/HTYyD$Nu蕶Cz1n/셓9/V7W 6)tDXvͬi 1yVz ^j=%W! ƻ""R7C N9M,lQ`)bsnLd]LGM=@eu&u”b%zK' Y+~ Kp`O+GW-mK*ȕ߸-͉%Mh9W4b=k޴h&+(g[~8#0`D$ QǧtknFnDÁzZ4g2*ݙz{UƴOˤXG"Yel 2yNcIr?cΨ)>y2g)0yu#܏goė '-3 0A-0z Voʂ‚dJAĕ"nn%,enMl݃prU|߉s%"Sud~4J.k>94r$']~ր[/e1L endstream endobj 139 0 obj <>stream x^uN0 ~ _Fq$/xj1_+U H%X!6  ,Ym n: bhaZ?O}{t/#P qmm\5XrIWj %8JRp9R%"`**6pwo2tut}=~@Dk v$9f2%&f\> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 144 0 obj << /Length 925 /Filter /FlateDecode >> stream x^VK7Kc\ˎ"$HX$6!}r{f{f!琑f\WH芩VRQڿ&yojLi?O1=O ITc>|ۏ~x~^ݾ}?ݭ:c]>q W|7qRT2NVtX[Jɝ^HcA6P5'!EH7BJ- %) R*Q,plTj>X!#5KaGPJbPn*hW\@`%!5ՒB6+1X7z} &ߏ 7L/:Q6ʿ(__HWˌyH%1\5ͺ.춹^ ngv]Z]ḈWʡ3tJ 04F& M*;xKG}q /qV˽L[z ӕ2=v)nGp=n ,+]#'нV'$ƭZAIdICnHQ6?9m BF#5G=]*V3uR|^VXs42:z?<<$14 D((",;TśUՁk~u`b,&*TFQ7;XvA1lTcy!(6Kb t{ Ai)Jo b f bŘѭ6E`U2֑{[ƿ>| P϶>(9hΑ8M -JXqơ endstream endobj 152 0 obj << /Length 1496 /Filter /FlateDecode >> stream x^XɎ7 W%ǑP[ eƈ-!qƱC~?1r=hWz$)d۟OnTMM>tod(8bl$7O?}g{v+ʓsBY~ʙLՏ)*G>YK#k)~*P)x ~bt}&?y1 #yDDYU*8vX4+XdŸ)gpە ,v,wo^1ƥZ7Bo9`pcB{ i/Cgvu 5(l( AA zM .l׿هkyC1׭k gG<z_"|xk/{у:*[!>Ј!K޴f/D*nQ8٪ [&hGWV=B<֣9fs/md o^IZk6|g% !ȱ<.YZmhZLdn3})[ w?BXh1 |I|'l|ʹUpKD!wg-!-jA=ofyE@$p60lFv}IϜH`` ܞPq9KksyB,5"- \suRB^*emΙU&uvsλaL߳؍1o]o3Q˕R7^$v.بVCT꾘ՁjctLPpd)%)M rņ $3 5vdϞ{: 牼7 G'q(o OOӋ7N|ڈGDz&!_MWfϜ)@|&cmo9F,k캢XKf=QtY]oT.3.> stream x^mPMKC1W>n6K@YPT1%^& n՗"Ml  3lZdzTxL0!Hoe a0XbHf+D++|4l_aEl浲 a"PAnd`+"sZ"ב 31Eqrt!; &gsH\pѐ-Dy1DWLt.뻗SuRr endstream endobj 149 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BigNumber-blue.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 113 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 158 0 R/Length 618 /Filter /FlateDecode >> stream x^UKoA 2 *- U$@I4͋ۛL^5xm7F ZU tujy0uuqU+\TM )E.o^~<~G9&^UVj!cr>A vY/1&<+[ae2rʞϪoIK\* h 1GKDTrEi!MdhNrް:`nCVZN"Ɛ4PFDH: $ѹTt-q ֹ!/:*0!h]JrREfJE9hu);C۝:b;TqB6%IEC}(cёWʏ_hyeAˈ_2>rOdsylj狫AyM1Ųآr M = ?W+׾_Hj2/ w\qؒ5dmɞUs\mC& z)wD|s8-L%*y٣%sB./ĭ#B l}L,"^Y16Mv`wm03)2|.2 endstream endobj 16 0 obj << /Type /ObjStm /N 100 /First 816 /Length 2986 /Filter /FlateDecode >> stream x^͚ks۶W|3=&^@ғDO'vv|`$VHt_H[EV$q[`X&UZLEV\2reb"Scʤ*HEE嗫8TUZjژWecLeq\ E U$J\%0c4Q B4SILbqmnQ&n<$]ϑKHY"%*& EQ#RӘdaFgtgQscd:"!]ӹQ4Gyh"u'jGAiLy4ҿMY* Z18/"U0䤈Ua:54ߨ,p /љ*r{6ΧAmJ-2iLM=B_<扦 0%I{%C#@F3Xpl&+ЍjrM>rg0 e*Qot&5Oim UA3TY&b !+!2+,c"c&FU`+%׏Hf3>Q[y=R?6'I:slg1Yݒ[eYլ7T(z>} `8 r|1 #v.gQi.fV'*<|W{N˼"nUUX! zǪ]ٝNgW$ Uܠ{ኋt72 Gy8<0L]΋Oj!cuQ_% 4n3Y< 0 [C.w}#1 Xō/SWFb 'SWFb(`:[1Nhb,hX'S7Fv؊qB;xHp+ M1iV)/dEf܈B;lV,jK*tRn*&ңQ=ǏT,I y:ځ`]mg_Fl8WUY4IC[i:M VGg_A;ܻӟ%?ڋ {9>)kFKm2n((F&N8~|E.oY>iGt['?ht*~|6Z*orZΗgֻC#缬ϖUj!a#(h1l'Jh BuZsP%ij-ͬBu/|:̆ Qey/+ݽ_<*K_WrU-tXNk)D$fo#HcDz_IizsRZd/Fs1=Bq/{ţ/˺L?@NGzEmgd z4GsD"Zb}0hB/{/(K{>>c\8A}1rZ>kWx4؝#F4u+J3'Pp1aϾqVHzΞF9Nv0b1qR"%+[ X-"a Kr-Yv,s{&Zis(_i"F'{]. Jx?Po_xeQ=l<\R$}}BRZ}md4EBa\+㖮[) +'Z &ľ48XYYbXY_~iZ(1؜ d[|Oǚ"^؅l1!:pAT 6"ēژ!GLï{3 R؀9t Gk@-(SvLމ2],{'Y2#hX-7CU >tFIa*T!{z9Sp{`V&G1ۘߘe3ʉ1~_@^z47iõ_ Z>ovdcЭ^w +ܤtjFͅnㄿ<\?;,pL2Kenzxwa=xݎKx'ԥw_{z5lmlA@ae@-dJ ã+ NS SENԠ|I +$%{FGױnM u&fp6y%sK2[L1H}tqhʅ ^VVury-WGԐ\a.ĮU֟9F#wS,+XM`5*V)3SVCa&}i} jrۍݛr-㬃Sa薚5pqR`jn(=Sl݌_Rʇ֋y": endstream endobj 163 0 obj <>stream x^RiXkpLjdz44-2-`RH(L}՗ٚ&3SFjQN4f 1ut,JdMCR!J:\Ώ\ߟ}zF@D0C$D d"Xl:LD2GsQD$0 =<(  `x*H Q(5s7 )$82@p$"91"6t ?JDY;YDBsa`L!j89CsPs_1ap2x(' !2*]ɇi"e r @P^D`!4̷.Nւ`0E(G!V:^;L 2-z"(:b]t&.ѕ}o5vMk \c P}z]{&WgU=Uw[#49,ʌ V'wg|rK1:ã"l|_QϦixiɑ;_ﴪp9XM'1klaOK3Ħf?N 6Q`_z ۮƂ6r*a< e]&-BJL,ղE6hRYHpcmӛgV[{/z Yĉ?azw3|Yi[[?_Tڅ/Y%#+?|Hs!|"2tv`c2,jB2omSqgy>S_H 7yV&RWd}$9`7״Mu\ɰ});&zJg{vIZ{Oó){G[>xWKSdXqqX¥-4Sp#N[9f\Wmgm\W-?k8EaDy/}`'WM{XOpFΦS=N6k8=Zfk&iON :t=zI[wg_^^\x*3zQ@Js~([ʱ ^{hI7ٞmjN/m8>=AU`ޱ"+uK*,S; -瑹}DSBVKZՃK4=;~0[Yf2)䭰I*^mk0*orN3+K3imNhO=_/O_Cd͢rwtՋ1+ӻ-&ٵ?+nDҒ؛#D-ύZLc2!" PM`^/~4F՛,&ª) ][xiÎc-{NO;Ɛ5Ao Pr\,Ru\\vL4~3'p@d>;ĉbNN7^Q endstream endobj 170 0 obj << /Length 678 /Filter /FlateDecode >> stream x^UKOU1_1t}s\]m{$۞v7zoW͇) l_*$!;aǣj%@t%K)KPW}  [{9,:bnClWi] Q &V`9qT'ƤP纋mk*tI&#fڮIfʍ/E& 9!iHGK4ffͮJv-NdU/^WnY\66ZHaGB=EECy]qAlCMyeCˎt.թt4,{'a&"iaŽ%1hD\ 9ĭyeccy-ң`kh0ؙbf|Әq˔ ?;+AT/}k"m'4&Z}/*B6=CU[ԖLP֥Q<Ókc9O{mr9wEO.πK|~qy{ a47/> UXKE Q2J)$ϭxIU3P(NT}+)-[ouch,{]p]jlֆ.X_,)={*i!,rܳe~r~e] endstream endobj 164 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BottomSquares.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 172 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 173 0 R/Length 724 /Filter /FlateDecode >> stream x^Vn1 W䂠H5Il'1BB A"@QPanR_I3NAO;w+4z.r3 s?ưMbKMbU}%EX endstream endobj 176 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 179 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 165 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BottomSquares.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 172 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 180 0 R/Length 876 /Filter /FlateDecode >> stream x^VMo1ڞ$TZ(7Zm_bd*6j1kCPuD$4mVND%^bУ"Z ]/wc//qN{}ʡ6A0^wSY h(hcQ\d ]v:H5V#bNwz*n2U~Y $ X eXA26A9K1BLnVxaꚭw ˸d,'.xk9`@[0b [IFr6Snе+HFr-Br'GKMJ2ON;B/XnN%'Ɂ7-Ag4 &nVxASQᵍ{ bSWX$#𘜓;&tҿ7ݻ7;_YwpҴּIͮ16.Whʾ@VSڶ?՞K ex(ÂιsXe8/͖fUe`u!V6Si %UInAgtCLx[º > kYoइ/>pFm-oاƟv0[9XOƷi~@'8igm?.pm1ssYKRK1ɺuSx^rY*s٫y}I7br}O-e#9? endstream endobj 181 0 obj <>stream x^mOA @ s5$bm?ੇC6d2ÄD!$cS2 "ϾnJ$WUh:H,b:{ cy\@$Uv.rnUnW_rc&GE?g4 endstream endobj 166 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BottomSquares.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 172 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 187 0 R/Length 676 /Filter /FlateDecode >> stream x^Vn1 }W>Mb; H<Kpeⴝjwdd8$3-@i0=ۛ? ݺ¡=i?I.u|w;_l]D*NQ*p(pX µckgHYrMJUk(%(~L4]% 3j͘pkwOuͿ;JQPVW#9A7E}Kj.7qnT" dD 6jx]Rԍqj3w͢]o9YM9%5,c5gTG:dH`KT  Rt)xI}s iLb^J1q !)sڀ10dWCReL2Gd5$ r1YHAc <$ rHݩ=1YuIdx(;d[dߺU@PcuLwxI}0eФh) 53$,Tpq $&UV3wsmrYU3kC~uڎa fOAK*~_m!"N[sӚhͺjN|_}tV6?V@Izΐu5i>BVE )pakYf(zй,C,sTj2? endstream endobj 188 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 192 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 167 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BottomSquares.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 172 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 193 0 R/Length 763 /Filter /FlateDecode >> stream x^V]OT1}苉<0hT1}X`YUnn233uve7^9 .]>z~cOV78v:~gxfġ`KF.]N9v,rұQ')Y*%*>gviT6+] $ M|KsaMkuP9lcJRյ\B2Klf^09N4(1AuαV'L,^RRBYfRNHf0B.qRpBY~ICN2o+'ApчU!Ȏ}[`W[aR~h:.,y; rY,뼊dZG$76:,y; v)͢H><6Ktx^Ns[x_)U̳QΥ3:+Ibus쎑H Gf8:uu^E2`Ö|vs:m+;yMįbטּTWQ !Zu~>RJ8e6J?&<+cUD&l)SJJ}(Jz6i'o+%2A,C9J|aY."6.kYń] 7}ʡG M_?c~Tjxl&꣝OӂBb'Bt=M&mm oSt›ܲNNҤ_s endstream endobj 194 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 201 0 obj << /Length 736 /Filter /FlateDecode >> stream x^UnS1+ay]gBJ}D%X@)H)-,}8*̙9cg.3{K2Ŗ裘GCw/M!ZΑ`vuq=IIlrc>8<ցsR׹H>CybfD"vRuGsۮfm!P p`wSz'Ha_ԳU$V (5U! k)x~NGT+N!I#9GD'5Se֪21ۄuVzjJ>עQA]面eե!e'p/bCq9[/nB6I71g&gGjzM}Y3z_{goB]ȉ i7܇G–%A!ApՁ+̳~@Ѵ^Q"?ĕrR)n~jhө *H`zwC|^1|Ĝ+h1f<؉4uH|S:WzJ>WA UUO@km VD}Rkp ۑldFY_3_]<3WWȍIh)ApSkP'b6 ,ڌ;38}.tU15}S!C%"Npx7'lI)@·AH;mg :%Fvogx)|+6bOǝs81e8g_}X%h endstream endobj 195 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Boxed.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 203 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 204 0 R/Length 258 /Filter /FlateDecode >> stream x^mPJ1|W=n6@E-TP*yJbpV[;їInwf2[@OC@0uɲwCaӛMOp7K6쎎ssh"pl Ƀd[p)Zj1@qB[^`-^N^`EE؛2 ]تHHmѧߙY؁+= . gKjQ]6xO85FU}yykcBĥFtlO qb{7v endstream endobj 206 0 obj <>stream x^TN0W셫%-JR>NI$R(T0۲6=]qlVn;z#)׺"%%ůyXnzR) m&v6) 'b.'+&aO3:Qg6gBP6AE$BA`<6Bg/)tjoXWdp*hJ'B8./t5@7(9' :hAcA=G)z}Q/ʴ'UYSA.ۘpCy"HAdRb/Ц?'?:c^ Gti,*ot{O} endstream endobj 208 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 213 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 196 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Boxed.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 203 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 217 0 R/Length 2176 /Filter /FlateDecode >> stream x^Yێ]5 }?_$ǹ EH(X̉W)03Ǔm{-;wp.gp5EC_|{%kY!ƇXz݋G_?]|cÃ{Ə^ԓ{+F_] _!kSWo5fex(r.*Uĕ5RӐ>[!VMxel(IQ *6+k˛b7ҡHl7R5J)^`p>wDw/MWh$i\1g:fakޜxx&KCAu}_+cs W ?7 13"v-X$}\\# XCmmzb$|݂0A6BI /{1YxYkГ_ӉkWdYBa#k rvR}T@l!Bp*VT9D#AF c)t݇TR`>:<#23 !w:9(t[Ӛ2J7Y !JLSM+alEtlԱxZ,i56 1ְ%nDlE+ ?UG[(:UJmRP3)+%TfqU'4kka Zf3A|IM^bO[{6vh :&V,`bXсbԡxYֺP,0Z:ǃOPIA :$6@KB!0 b-i1Ee)!GIV.[KRcYNImiu/&C=-1DuHL!6YgbQkWdYBa#k ["s(uX[@mjbڨnMp AVmh%iMmt0FG,E'[havv-dQrG`n""cB9i4 D6=9:{r]ޢ ^o39:_]w;ykty"- 0`?7"A[n̘HGoi endstream endobj 218 0 obj <>stream x^3T0BC# =c38˥[P^X`dUegj ԥg`&M ҁ t w.C":_.C,N(243601R$Ah*=C!@(w@Lp4 endstream endobj 197 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Boxed.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 203 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 220 0 R/Length 1971 /Filter /FlateDecode >> stream x^[o5W|7HB !q i+'myݮ$^̼c9p<ݥ/)׷~ oNO0?RC8nwܼ틗GL]+~~S_թGN1XFg[Fj}ͻ>*]%tzJ-#k/iק]kqR -6b-Oۈ#c-cΌ ]o#wf ߿{BKB)-M5ۊ^0Qlw3 hwFByƽ nĸ ŕAVl|zeHFLʌ+ݦyiZ4>8Δ@'0ayL ՀKŷґy?{_R0Q95F2vqBt9lOG®} JذxR^S`B|͉,.1 .̖`[X2$ KǮKSL5m%KY[:sSQXY!Tbcب&SMΗ ]JO`eh*?K0|+i@U V,YU)' [.n#CCdK %6dl"%X6,_22+ xkJ\8|=!A(RԼR)-Q( ȢWHUbշt.RwMQQpZRfձ8C"uF\="FHdnmQ1Xf51.孉,qEGcWfu֥)&ޚ%@E0#fCcJf ҊȚ,DZ6Y, %'֔]N1ӹݣl|^p:oJ3M(YRl&y+"[\`CcWfu֥)&ޚ%>Nbq(:j^$P|ڶ꽱AmMgUD!H=p&fE[hpr3lF<{tFvޑ\LJ t0g[bTt,)YE `μ-.rH,YE@3oE["SB 1$1:,~K+<2\.Do؆6).2v:#%''|f=]o.6X;aq ͊Cqs{=ri\1#c-2!p⭉,qEG%c-2y`&uaq11[1r_-Εs~7YV6Y4@jK #[ rJTKk⮎f=<8):H K3KmV<؄3oEdKplXtʬκT<0[V),깭A AG iM(=ǖmsm;y/H[.pKOz8/VFev0nGi/tJWe|n45 :bˬ&x‰&e8Hɗ]Y xkK\8yCga7Nr=%ዣs|xQn/G▝'=~(yf5_o߯~џW~Z85ڨ\w܂7=g= iqY˧{=85?o,3L endstream endobj 221 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 225 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 198 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Boxed.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 203 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 226 0 R/Length 2071 /Filter /FlateDecode >> stream x^[]Eϯ/H!E/<i@F@0LW;UQE}j^.w?]~#Ocw)KJ勯]]˼>cHa.q7/_a|yݫh?Kqi呓G .{ZMyG:\Orb%Rk͗:X]JpR)qX|l"ʐzЕ6rMcp=Ԕ mVzJi7do{I@O 5 owFBy  n ŕATx{m2^+q\1+ [޷%0Ơ0<&B ՀIŷҁy?`{_R7A95Fv$r*-@%OPSQQ }'C:8(gA-(Bk4D_"TXBlZ `ά/`KZdEY`uN mFyH!hB!XԉV=#z+ȑ շt݉-gӪ=<-)OZ=nyWsOc{^b3#n>lRbj` \ZY2:H :/]"Z Xk_x Wب0Q3CjVlV$#Hc2)KϞMP"PkMt{aka,F< z,E﨓l|^t ߈+Eϴ*F(B%ĦU0 6Z:X 6Xt튬j](lbba+~]ǩH}ug (>m[@"zolPuiu rNEN7NKK2>;(,E3uu_d!u2RBJKMal%t(u$^&ȚVAA-ZʃOP`HI"60 ~9EEM7BQ>^RHŐ 6lZɛˁ  u(_lY(0D(ԑb*`eY+ _BF]U CL5lůk<uHVG !ucΕ{DM42)[=֗d|:`eTg*Rw0WzscI$֣Rb*`pfl~ ,u,^vEV.6 1ְaf_}AL´>Ε-dyuꫂIM[ߜ8ĽɉF !~6@4+Bc4I~W|\xm<)?|=uS-1k>}xR7^SE</Ey9| YbF]34|7k͏羄ԯn.Tq endstream endobj 227 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 234 0 obj << /Length 752 /Filter /FlateDecode >> stream x^VMo0c\=D?QCUR--q$톪 N܍cyޛq2μZp:ؐ)$l?¸__Rٺd;s9bmSCdK|x#V\mfhGŀb zAMAҺ BEDd)=#:u>k&=T& a|\hQw6,u["eG>O1+3=Hw瞱s'Ph%'~ToGR^ƪBtOL4):zܡ3gz5B76r#j1ԝ(vaٓحLf2g:(@zGY;&& ߄]p&*dy?/JH o7 5BiIQ(M-@oRZ:[t+r,`~!>¯(>ڊ#AWe2s>PZj;)B0VQ4 zL6n9q2ӓRQO/Lnal E{fvw/˫ΈEQN$H9$>%e>WAz X (u~_ c,ӤFD-Nvx{D[D"|7# og;JSʞ|Tq3&{o&l\|XB endstream endobj 228 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Ellipse.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 236 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 237 0 R/Length 624 /Filter /FlateDecode >> stream x^Un1 S8?BB !@@hm:+c\nd.x4Oۥ[o:cNyd?vyr5Yxn/Wk/ud:{v_>d6P Žb%|%u,J5Q&3kv@"%Hv2Cx h#~CCh x?K{aT3;'Iz6 j[x .#fe .!bb4EP,6Bp1׬SqD2RqP"jA %.N&s 0\ q nGvƬdSk{vإL!%)z {M1og Qι :u4 :ȵ m:H`8u8!nwrR`>CW}iCp>&]ө19ܾ&:n - (..+9(r ~}r;1S16[엘>dv%fupȽQ|膥:98P*H9v+dW'^P-ʤLvope+Uuʷ)^-`a{OX}of*<(a,?* endstream endobj 240 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 243 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 229 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Ellipse.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 236 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 244 0 R/Length 859 /Filter /FlateDecode >> stream x^VKs0 W =X\a e:-Pv/}$ev-{/Ŗ}TFw@Q4jcn~WR<]ێ-O 'kw~-u&(椽!u!TkPpY; 9ՠLdu.i!kNkƯ-O,9`_ݹ:D3֏OV'@NY4|VVĀĚW&*̠="zBbrQ9y0۠%9 GR`C^hĘZl"hY 0Z<6Ѱ#cl7C2%֕]V)ədU&I:2P}Cِ ֓"A)w^nV84A6qoXmφyZ;s3{:[oѪOkʵ/Z}NNfkCޖsss7 Q9Pՠ*F5.rc$cbP_R}!َM٥ pUc.6f~;oObvڰ@&tĺNreQ1>stream x^3T0BC# =c38˥[P^X`dUegjԥg'ҁ\t w.C":_.C,N(243601R$Ah*=C!@(w@Lp4 endstream endobj 230 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Ellipse.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 236 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 251 0 R/Length 650 /Filter /FlateDecode >> stream x^VKo1 WDM8Nb@B@E%`Sھ8I:[$~@R&|~o3pPRlBo~ݏ yrvqn=UCjܜY;1IQ9\c,µcPLe4ZCaє',&76?0m36ڵrp_׭yF_%1yZY`3Q&ڤCP=+',5H}b jهTSYC@x,LBEYBFtrQf/KFqRe$Gp#eITu]1#5k앷g @kY kS$A8X52]A͝Z8uCφe}ymq ~>9R?Okknu;N~-2Ny,7bn,sժ*:ĐCrm!!*AZ0 ؋`UKncNvG&o 3M MMm͜L7+w^E6V6PxKNTr5|yU˽}mmږnԏ_^MnȽ[!KjCΰƷv#B'A#3~=R;`+N$=2g, endstream endobj 252 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 256 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 231 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Ellipse.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 236 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 257 0 R/Length 717 /Filter /FlateDecode >> stream x^VMo1 WDuc;PPao-vn[4K?$\d^g'٥uvߠXgłsjhѼͽ]ޝ\^ +{zZ[s.PԎ? z\?h _(sCd.Jb aP<P] ܣg`L L[w:taB&\ Sc&r #;C#Dv]\3A)d=z(# 1G9 0yي&N%R ˮB"Y*٫@%Bu[(` b.m!t8@1BZ8v^J4PNW6zݡ5ݹw^m 6sy1w]2e-|u6Gs_ʶ9v*VRUbufDy=Cv:@3E$CyiNzכ )g-$h m=0,#d_2~$9߆z캥-7>9S'yvWtRJzaep9ŅZ$ %b/R39ٕJS;5gj|Ws9aKUjK|X%kӏ^fw.$m T|A'uLiSEmQ}#Ux]r36-9rԷ ZZ1 endstream endobj 258 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 265 0 obj << /Length 1358 /Filter /FlateDecode >> stream x^XMo6W2~( $4@i|+zhIMFW^ ;詍 YEg޼1μ\?\iezk&ַL֥(jo~9ٯW/i]͐`Us3Ͽ}|ӧ$*8N;crɈ-Rrf?IIx[}KAWbH 4q&&oIH>#x6#>YƂٰ{!9TքQkhJ2c)Ȉ]}꜂%#X4/fFЈYBkZ p(\\0wBq=3ohb{ Fw{~% v=4 g[J`:7`-.E%s1=Ja/ij TBv!Wq*x{/iy7||uR_H5iH+ Ti.CG) st&բ/r׃2q(Cճ:#ma}ic}[QꞑlA-]|A7wx݄~sG G<_ɱ;0(:S /*j f"-_ {P熼R~wVlV *JQ~!fkh[ i?Eѻ <{TbbR6UdaTOHQ? 9fklwhᇘ ъce/<UΚM=GC3OͶE/Ţj E5&n;fz:9$M$x,Ъ͌yb rڷd|b,G3֨5GV u6ު*w}H#ϗ\#θhkA٫w`"zKg[i >VEjWxX̹ 3yKEvX(;׀rVe{Os}uоݰ(wnw4b[+ZA,Qf(#6&;cM Z^95hcնC27|bleƕ̙*C1uxb%j9=7HchC?b,e>7!Gʐ2Κ9/EZAqp{ 4-|o/O8%WK 31}vGnK&JI1nǏ;yWҵ9:fnX8kA-r-"<_c' endstream endobj 259 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Embossed.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 267 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 268 0 R/Length 681 /Filter /FlateDecode >> stream x^U[oS1 ~ϯ "5!!1ĥ76>vzk'MmO$c\jAI-I*-9]b"<+q%Ѝ,$o3ŹE-N@J mhr|ڤ>js)|r&MU:8Z@D4{Wc-)ny(&Z5y"}/X$UvHWbs^I\\-x]RfyvJ΁I.5h]?R.h*]3O]hۼJh 赭3)G@c ]廨ui@h!xch@딭|Sq< d*aO*fc= HLːPϘ}zDPv:!GG,Y b޹a1cqbZw^o1 k FAW#>fQ!zhC&Ή k>7oGbT}+ڂ:uڰڪ>v:[Mk$$>stream x^Rn0+$zH㐤E*PڬmUmh$bGNrCZT$4y3oތ= A_ 鬄`h2@ Pmf*e{\c``C(no#Xl| 4U l0ɱ_^ئ4zƣk!&Za4<η/'S΢ WlOdnMߴPzo|7,6W,| l||iI$m>[ e\ѧ:rղ/մk1D4 ` }6GDke PnOH"N)i8  %Bļ=?t:v$ID(%tGhQJ4G43]Ѱȣ)1ĜƄEd烻ԳﲳM7oYZj8?ԮC/k} endstream endobj 274 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 279 0 obj <>stream x^uV TT>0 :TFl!^3f<| (/|00fbAĮadJ@%Hz܋`"I2ueeaP'Zw3=[3 blF c E5n1Gt< */fI5$0^!?)L)GF٧qyPg?HyjM8k&Ȃf3H&V3nuV{kM g*k2D-xtatll)SBkX"DI"dpUVP)d&p8%QSi*Ze-dJ׊'&$$0q y.z #m)nr,NR`kqڦ x81܄Q&J]NG̶=vbqZlS仪N\NR,,R*.]Uhj~EhP~UN&^U H%s%ԬHFB>ll6g旾w= ,>p#bW2h>ߦrUJ;y%}G Dlw+ݑ5w!Dp Y  Lz[ǧ.͛c>zbgWooyP/S>~uw$yK'Tj0V aV~3`*C.| F0Iޕ)퍎BA{GTn):co˒B1dW!T@y' ꅍgyþ߃4԰a r9[%oр1Fȫ&ٻĻĜK;SM@lc49sJ:/Ns˓m_-I`bc$ko1P L_aw!Oc𷘬ba` 3ˆ0e^vA-ۗC>AgҌkV}gf.=z>+o\=Կ*h6oNpQ`?@Zk"];pEC?ͭNNuX749Q\^Y)O>ε4o{yNj/4 w'm+u4g RP2`LCJqT{ (Cb|$>ށ pZpV% =!$DjCkィ \Ӑe+ =\ƒy%EYmʙ#NR?Jךdͳ*s~iiL̺ |?>rizn~ u?~0T+{a/>+rLi2'Gl߽~A&GӦJZy6YX`{U T׸$&^Ƙi#킰=wBꖩ8 K674mllڸM9 7lҌּ endstream endobj 280 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 260 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Embossed.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 267 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 281 0 R/Length 830 /Filter /FlateDecode >> stream x^VKO1Rs^V>VhB~gfQEmiv=kQb*x_iJJYѢW/ILg0t-x]ʯhџ~n~ٿ+ ͻMҩ: ' IZQgJQN o!,[+ZϿUZ(S%"Dd7!뜗>AR Jcwޭg12 ;*erN$׷kS﷢CL!esѲxRh ʹIDx]-,(oxhm@6ҿT:xchk$4._.LCTy;4h yMvYA4~/q |$qBh !'$H\/i}Kd:pFh#u.{z3fAxXh.Gc@q 2{fy= lGQ.s{i{҆aiiIiᓒT^|DJJǒR:୘VEͽ9j N/L)$=y>)gJZgfN`kOKAѱ/e@/\{F{GdxF*(LT${H>+ H9"[ds΂^Hʺjp;mU;Nx+Z;MS`&hϱgbv0V亰`\ۓFJeqŵg%'J #oUٝ3LN f=R]@ - endstream endobj 282 0 obj <>stream x^3T0BC# =c38˥[P^X`dUegd%Mt8" r243_.C,N(243601j "sڱ "iPH2P:J+#y)\I4 endstream endobj 261 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Embossed.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 267 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 288 0 R/Length 640 /Filter /FlateDecode >> stream x^VMOA ϯRsdjժR%RPH8kO  =Ho7c9,Fmrq^Û+8:_| ?Q̸͖{nB WH'̮.w;:S\Sr:հ֓.Rа[lRp-}Φd :xk&Ba`oĵ;uʬkat,99$gL\:Al={F,ht.Ps1&Y4}b5W˙lv*<ş ~=SR~&,Z@b]&BY o0ZJ?^䁰'p [p4Ɣʭq]y+ u1p ;NlCn61nDr4v2ӣj?S5SO/uVڴ]j>v{\sWz2:4U'$>bcs+)tF :Z{5s{X~ tuMW[nZy3>6"@܈1s3g}d a5Q&{,i;?> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 293 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 262 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Embossed.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 267 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 294 0 R/Length 734 /Filter /FlateDecode >> stream x^U[O[1 ~ϯˤUZC2mELn}l@I}l&)-$^i%;}l_j?) i5IcGy8ГzgW7zz}xuv>P^룓\-:"ҚLz\O@.LA)}$v%`SLBI&XBn.uErMZq=Q]NikkVu]^?QgTe3RS*ndՅhbbQ_zD]]nz ?OqJL \ѷ] p)GSR R麑m}kgo\h}ŖAP*8cbn!gF0Dh俱˹@v`m-4q$UyO+j# h,TPO~$-&`0Yf="],XXnXbq,oxo1 2bv EzͣAXBTJ/ Yj%Q[}(?gݑߪo|7-['mfOy K7lqޅFc dgI ٝ~lԃԕX4aݟݿ08xʔC" 4DS/9wHWq & =3ҜZpogU77vd=ac8kۅcXVF/k$ἧF>9F&B> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 302 0 obj << /Length 1215 /Filter /FlateDecode >> stream x^WKDϯ GwQBhlv7"E %HpU{fAcO]W6Arg{voU%Hxo+VR Y@VWX^agRy79d\1&cq3q%O st# ?g]}ۘe@kg86H&Cs".P 2yAfv) TC`Y`P0'z|+ Z&I1/B"i/Yk zۥ.m\6Tg@Lٜ&[1"fpvʠci'ۙ'h2Gwcˁ) n2FLNHܞc=HeIp36/Q6GA[lo؎xa4'Co^{w]m]i{U[_g`F'oJYwXƕ+wl&߽#9T{OXp+):bUxGJ&gVfÏ?W endstream endobj 296 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Framed-square.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 305 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 306 0 R/Length 256 /Filter /FlateDecode >> stream x^mPJ1|W=n6ˁ ZTfBR!VoDїewf2[@OCÉ@0uѲw|$̰fv fidm _wssHzB>BziP Lh " d{a;a{//v͔U^@ota"SZ3e_h=Gw6bj uŖYZ}&N?ר*/Ϛwl96\ӝd]mO+]sEmgb{7u endstream endobj 308 0 obj <>stream x^N0 y _Zc'1/x(ci7c;JM%q ܱHit ۧmm>SƮ;$ʘ%w_?N1ujә5lZM̆(jBzMK"^FC $Dh6!5=s2 gs߶;3wnSAswR8+Lѭa̽+?.D*X+ 8?nLC>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 160 0 obj << /Type /ObjStm /N 100 /First 914 /Length 2794 /Filter /FlateDecode >> stream x^[S)[8SCId,2NY L.ѩlHĭ㋵2CKAAH[D4,{|I)P/B47VGkv찖#KF2aщMU)SlĈe˅eC^ȼ2~Ȓ1NzgM92 id9~)G$cR/r٘Mvap]q̂uq̭Ik4Wɨ9;WhlK ~ʖ OEt4(Jkb8Z; ٤팎^?.=e֗Y ˎ*()VWվJr qZsZNݣδe9zQ/םQ6ZlYN>RK?gY?*0n}8n&,A>VI`kwtP.ˑԓ'6zQd(f"(W!1HZn{u߼]Gª6}6jYN 6lζA[ZlQyK,ei;;a9u>\hmnwRh4llIn[(d:Pbp qi" ڔHY;/ҋl7.jj}NOzr}ԏob%~Ԯia{l4]yL ^?)?'"Kn{N>\?g6E詥O>5O쨟-gez2C1Osԡ,/KY7 OxF!C/CK]qltOZ+LA5 Nk[C pK˰ticjz_?_zyZr*'LokYFbZ<ZEekzzeo4}qf''"Cݡ_)KV O`TIz57f4ZX NQe9+Pk^9+ݼc򞞴fJtGϧՕ~ ^~ QRbLFwKJ}>I߹1%3g']e '~$'$T|9իC" {BQ%.)* ~lk칧L/\8B2no8L-$Y/=ܳ(7)yONA۞jga_wwC^ML%&/#8q# cEB}j|l2[y%L##kH$?ʑl)%?f>di}, s.$X|ɼ:{*!&TK;@KTW'r, W endstream endobj 315 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 297 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Framed-square.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 305 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 320 0 R/Length 834 /Filter /FlateDecode >> stream x^Ko0 C=3~qAB"$C{ʶn/16'Ĩ2{,_F {~c}uf1*_./Z==\ _]8u|c>wVsYҁ DȫMGVGkmz[h*¸ZvW3[{ܘgٳ:F05!i<vS"<1Y\L6&4jIVrg{6m `HzkG%Ȅeq90ZF;7MCHb }"2H)qmC8jIǐ9_HʌH#eBiM9Hx;7ŖL}%mɳe>ݒ(eKw,o$"bZB=! )eȟ ̿u' endstream endobj 321 0 obj <>stream x^3T0BC# =c38˥[P^X`dUeg`%Mt8" r2+ r*dAt5\z&#@9HvH3Ҹ Rp Hj^ 4 endstream endobj 298 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Framed-square.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 305 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 323 0 R/Length 643 /Filter /FlateDecode >> stream x^Ko1+A"\!PĢ(;6mi3Il73l<αs͙[6\tOӫ5,11ҡCdݫO[g>Bh4I 5 cQkRa\|b ,RrtԪJnL+E&䙠cfL8/}{}5*!*E&ya,*(AuE[G+&L3A I(9AG+!*E&yq,*(Q74SцԂ&L3AaZG+!*E&yi,*(s;v %Q.rMTg9G"X ``h%DU ycY> bN"SDD\Ԧ䆨@/3fVNWݼ˒WQ3Ґn4Gdžu:f$.7Nz\+cGy?g<$S/㉤I)N_uk;;p9<7SkZ endstream endobj 324 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 328 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 299 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Framed-square.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 305 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 329 0 R/Length 722 /Filter /FlateDecode >> stream x^[o0+Dxf|H[ m,Ō6d'ٌ(jFMH]ݻ=qXTr!!oT6g7 {u~ݱa#/JqAVe7^5B>^ JVM<+j[9Lwݨ<籇禘Ydfuhkg0)2F?+6H LUd%7y!T~B]@߀{~5*!*&320 LpMyBMkdF^:h贵\(jm䆨@T"2(QҎ&O]{&5Qe2#/J4R"Slht4Sh%7DdF^A :` V'iE*y!TiHЀ:LMkdF^ ,էAP5hME҈l]]%7DdF=(W˱hp (^?(6r'ǡKiIPK_M{5\uX > o}G>stream x^N0 y _ZNb'6/x(c^ol;JM%q3b8 ',wOzlX7#,gIܥ o~|&cfX؊V\MQ.3إ̆hfCZ@R.5Rf/+ t:I<0ѐmbAt"} YMm_I5+$0MF i?T~Z~`c2 VhVT[G(C~l~ cbbԮj1fnE$dfՐjch~26x {/|i:b2]b~%}t endstream endobj 331 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 339 0 obj << /Length 603 /Filter /FlateDecode >> stream x^MOA+q2fH7AE߷fzvEx2wzw܅v?\uKrI#|s%ϵŇVkU#IَrVC)k1-hѢפ8Ɠ7]A(>[=?w=] v.8DjP;2MCbLA͉F/Uc *Ŧ|&^ ޭ)>z.:.oY/}JߖHŋf dJL` ePdʁ3 I@:@ 0d"͂8-fλ|%'7 #|%>—ɉD Ù໣ y69S".*Y^&׷ Qn gܣvGfcuO")_Z_/wq}9BM]ơkNQpz9^(60V).L4 -͌VUsUck:61䢯9G~*c4yXIy)8$TTi5y7 /k endstream endobj 333 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Framed-stripe.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 341 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 342 0 R/Length 256 /Filter /FlateDecode >> stream x^mPJ1|W=n6ˁ ZTfBR!VoDїewf2[@OCÉ@0uѲw|$̰fv fidm _wssHzB>BziP Lh " d{a;a{//v͔U^@ota"SZ3e_h=Gw6bj uŖYZ}&N?ר*/Ϛwl96\ӝd]mO+]sEmgb{7u endstream endobj 344 0 obj <>stream x^N0 y _Zc'1/x(ci7c;JM%q ܱHit ۧmm>SƮ;$ʘ%w_?N1ujә5lZM̆(jBzMK"^FC $Dh6!5=s2 gs߶;3wnSAswR8+Lѭa̽+?.D*X+ 8?nLC>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 352 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 334 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Framed-stripe.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 341 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 376 0 R/Length 568 /Filter /FlateDecode >> stream x^SKo0 W2`9DDɒw0t0XaiM4$:dhfH~ XKĤ 0VVx> BYɗJŞM2 e(yZbƾV Ʌ,P1)-$♵Jgml~ ⸃d3# vگiC9rTHՄ5&,YNIZt2,&*_Qc%ᴂf= n7Qﳒ( $(AQCڜJО,c2_gۯ!$|)G?1"{!CXv"!C4mp[u{"T9Gê8)3 Fj@cyyM+݆њ aDǦ@xǐ,[֑mx0D=) !g!TvGR;ԉ%i71G 2 =&I ԛei ϴp]g rpVEG|$)1I g$=?Kr:Ke|C25[- "(;dg endstream endobj 377 0 obj <>stream x^3T0BC# =c38˥[P^X`dUeg`%Mt8" r2+ r*dAt5\z&#@9HvH3Ҹ Rp Hj^ 4 endstream endobj 335 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Framed-stripe.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 341 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 379 0 R/Length 376 /Filter /FlateDecode >> stream x^uRN1 +|Ad& JF"tQ [F<[CB[-@r͖x0CY}ev4Ԉ >lbT pT`4R"h$!J@I&>zP4*O+H_h=r J8g#OV&X3vX].a\=T5>ODkxR?˖_!t1 鷊vTov{d3QySbVĨ-+Dzwe:y4h>)S*oQ2V^ qF;a^ $eJ(Ja/$Zّy=M{L c8 endstream endobj 380 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 384 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 336 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Framed-stripe.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 341 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 385 0 R/Length 462 /Filter /FlateDecode >> stream x^uSK0W3~rD< *"q춛-m&tqvc<&E|OBS)IBm'f:w|LSR)iNyݵ ܯ7>!'l#QX-:aIWrk7tޣq0{ ^|f_WC{7iǫh@e=gB҄"IBMVUN5孭3[Qk>DqW͊ڗj3{f7o-rWzˎ1JM!8. ?J&8 &a2 IO(*I9NW:e\ 0 Vo3&1hNFJ JKƧ1R_Nzh:z6Mf9Qv<ٱc}eӗ&3˻ 8e`=B/'?HFe- YuQduAdɤ3H&K0܎% eu^ endstream endobj 386 0 obj <>stream x^N0 y _ZNb'6/x(c^ol;JM%q3b8 ',wOzlX7#,gIܥ o~|&cfX؊V\MQ.3إ̆hfCZ@R.5Rf/+ t:I<0ѐmbAt"} YMm_I5+$0MF i?T~Z~`c2 VhVT[G(C~l~ cbbԮj1fnE$dfՐjch~26x {/|i:b2]b~%}t endstream endobj 387 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 395 0 obj << /Length 821 /Filter /FlateDecode >> stream x^Un1WqBh%B"!B҆>;$( N"ggv̹qʵL%(fB֗&d낐l͛'Α` "!%⼌Mޤ$6{/΅ ?N2Fr1X[꽠4dSxjÖ$' (kMSVm.H@ Yn ,};+N%! Q*F"ܝU4Z׈DzԕRqPZ\99Ŭ"{4_=OW;٬E⭄om8'R%l۵%Xa(1:sIPDҏTфbtځ}tJ6$)QGG[;z!Zgj\e3ڳִVD{R4 d#s4-\v9ũyv~q6RIZNi"7,1oBB҅˶dI[zH(h iSQG;N si@t:}/ f_>1N `>cwxC`Wl9:h6/f9 b endstream endobj 389 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/FramedTitle.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 397 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 398 0 R/Length 367 /Filter /FlateDecode >> stream x^mRJ@++8=ODQVP\eaE]Hޙ^3J aּ7V]!6WVV?ﻼpFo3=q >!(1,S:tKohjgЏȱK~Q{}R{W{ӪїK ӿ<@.ĶqȦ̎۔x@ Vj >/>^%'݅>stream x^e=0 w kd7L BiԪ%RFM'e1RM2Wc}!#v/ #D/r ϒ_1Il)[VCMA|XEىq6HhSZD[M+[q,AMS\RJPVҵ?CX<+~]ֶ Q endstream endobj 402 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 407 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 390 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/FramedTitle.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 397 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 411 0 R/Length 773 /Filter /FlateDecode >> stream x^UKo@ WD< BQ%enmq'[f$ }rKɰ#~ae]z_#V5:ra,./ 5:[oؚhm9F=RRLT G@g02YbBCQB`4кJvz1Fʑǐ ́DÂRBmi%JoyJJ@J![QZgDUy|Hl"Zbt3CI 3.6#4NlfG*8iJI*eG@Nqi5j5*/F )ؤ[z&Y5 SKRυV4l{[O i&JjFtQlMH4]62zД(_)4չS3q5]K]UeF=C4Amnhc_n endstream endobj 412 0 obj <>stream x^3T0BC# =c38˥[P^X`dUegjԥg'ҁ\t w.C":_.C,N(243601R$Ah*=C!@(w@Lp4 endstream endobj 391 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/FramedTitle.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 397 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 414 0 R/Length 586 /Filter /FlateDecode >> stream x^UKo@Wk_JRr!AhVqʿg֩(ɻo-cE6#99QŇC!*C3wa] ?6."kyQQ9S~컨b\H>(u%Lr"r5\5;R(8!Qi S ɉ?4C  Ѭ(cѬLsiVV:m?$Gq24lƧuBz8S jvq˶c%)8eO4EɥU5D&-5xa hl ^ѥY;Y/i'Zwzg'OnDΐNjuN?*=< \–F˅MR ەM6=R-EcKU _{5H|S] ~u7(gVUG]cjs%3IcUY޶ l y[м'@'`\|U/fR- endstream endobj 415 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 419 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 392 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/FramedTitle.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 397 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 420 0 R/Length 559 /Filter /FlateDecode >> stream x^TnAWk Aǻ1ٝ鮮ٚ"Xiа I&4Qycx9@˖g?b}q/f\yeHTpxpI*?xbjO#9am6B ]($1(#'& ^S\×Ow*Kb`Q1`N30*9ə%9 B&п/ &Q12F$;*ɌFѕbLqTH hҲ DRFis oi:> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 428 0 obj << /Length 925 /Filter /FlateDecode >> stream x^VM7ϯ%6reHrl4!?v038!vvۮz޳q=_~ج]S͟h< )|u_,竖@9fE ZH#l-4¢3疋,^9#tXדĊL[+Ze O~xU: d֖!ѲOƢST9^ y%^0%`r߮hCG[ca)BhXb$Jzҭ* uz|jƛqMq=3fmzlݸ;rD/}vѪוɔ2M[6]{)KhIKDM `H6G<~DiX}. sv^ t8U sb#dY{"bPβIJ'AKc86[[;bq'- no]2 e_q. (v'R0̖fCkLI[#"N ipx璓K8 K~mc9Gsp4X|or4 1\K֟pCxA~C[?VP6 endstream endobj 422 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/HorizontalStripes-green.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 430 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 431 0 R/Length 300 /Filter /FlateDecode >> stream x^RMK1WM+8I6APAQfbViiѳ3{2 G+e7W= h[w9r11A)ppнќlˑgx]/\c%Z!y-{r[@OaCFOZ/58bW]^o-c˕/WY[/j8-uOl@wdwʵI endstream endobj 433 0 obj <>stream x^n >stream x^Sj0+@zp-; 816m^iIJC~G8aax7oތٷ#gз绺fM+ ANVT0y^nJ$ZG ߤ5>lg]U>sm|nj8?D2 #_`z% 9j(,;*-u#`{aĤQN4*[\]R[ob\ Fj3X?{Y$QwZ7R.Yt/jΰh%]- 3*yU7zt1hY% CkP|M18SN(qIH$qȕcPiD'wdVeG3;K1JrCJbͱ]͈zt_vJtmgOn,z+X endstream endobj 440 0 obj <>stream x^uX Tan NqĄը*"O20lE0n.Y5*8nADEo k49OOTuխݺwZ@=c/|D$X.IOPyOF,<'ezd!?E}f$7G7&%%?%A')I4t@ħtb&1,#'l(RJJK˲LRĦllf}ke.V2yefjB,")R&-*3hB$SDF$F˔ѲYzj*UR'~n% Ke*U 2JH'EFdiQ2Ϡ@2)M:*)5Jfi)FEbҒY[X)U1xNuIֺuK}-}\}ܭ֦ɢ*YdTZD\bᆵR&" sl// KŠ&l[ŽE|E8 "XL o—XJD'"$"#b D(d"PDN}/[V}[/zzzτ[ +&trOMRV?Ԏe'c.{x}IF5O40>b<4"15 aq䡽!ZƑ(H׸٠=-BYZ)OK${ݓm< uzZ۽e;Xx/rgzZ*J\/U+~ÇAˈWq0sOSp.[KwsaKne~8ww{SKڤ,_+drbuZ]0 vs/m涛Hfmh0InO,XcHOԝ0Ӕ>̺a:Q{/7|櫏@{4;-f¼ >g^]vvlRn)C&ȄMrc Jܩ'7-v`Owv0W.Ufs[ݶv@TY){_sKI˟^lg@2jxG|,h,xGq$}a?Z iQW 6=ЀC`VclAu)I,(`_'z:Bޤ+ζ1C"}6'qsw L9kMuڪ$0 HXٗ٥^0gNl>ŵBlMFNr/C,N`ߤ-c&'2uaA {5leta*8-/]Yn.))(aBh E( S!^k`,f޼*}5gHzyP몒|%EV@?ٹ'q s]zΝKEW2s*o9vgYkLiCCpxIO%pvqWe}<{KHΣ͍=`#ݱ.q9˸0}CulFiS&聚+ 4iE!WYqTԏ~æflXN΢P٨G݇p>N~T@]SpS~:0{@t9)yVj/澅)_T%7pA^ D ZBPLDn/V5g?(ΫQ*>\e-ˮG>}@v¥!;9H?Qa}J7D}ڻk:c>iDA#^s:ayH>1H HΊdvM=/xT3hwk-_.9E]s~".F3#q,iy?*pdZVYVm5s<+g$ klWҘ)\BU'"N K:DɯCՑ,j*ս;í<]<{obz]n9#q.O!Pe8+\=8x҉{6BHw`^܎_(RwigTj'2G:"Њ=2}ss$Z2QBuia;u`5w/ 5`c9bAC2dgG,>tzp`!pgҖB_H_:*`"ult\pX*> hao?xk3d4XJ`\C1\r}d˝(_z$,ƶ+<7maAN#8]\A3#CL& -`  Xb N} -o <ńceFd{yT M̛oainΑdՅF:x黾37he!.?pEbsOy[Yl%BEl]c7Fmq,BFVM8;^%涜RGyu%Yl'Drߢ>?XQ(Ll'm GHֵ) 9 Lt6#H#t^Z~Cr[iZOjb6nd-~鄞R+vkĮļॠwx?3"3m-Sl<2J̝(l%R_Z1yǒwݎ endstream endobj 423 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/HorizontalStripes-green.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 430 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 444 0 R/Length 457 /Filter /FlateDecode >> stream x^TMo0 W*" :l}݊ rE/(Q${-ݑĴtɈw2.DhNG֬Gr%Dm:U6>@D/LY[k?Tf{p ?Ks57쫹q54fW_m@eql<]m.lrBԦ?ջH>t2j i{4 K` KkOuznTo{R}Ĭ{96(LmnDQeg(H&lMus[3}s 3>ƙK$[rr+þ4GBhjPL?O 7t83p.Y#50Ϡ A^78MGy SE8X_wؚ~7 Y3 endstream endobj 445 0 obj <>stream x^An Eb6ݎ`Ȫ:(M/8F20>F#gn}7'Пޏ}>~GMz7</໮_m0:R$m娂ɗ\̒,)kuPbEYsCC%EK멨R蜩fehxШ֘u{˝3yyLRSG {0m1Zs*#jk}cHYҶ3lejQ`B "GIBzR0 !>䳊i}ç2G endstream endobj 446 0 obj <>stream x^3T0BC# =c38˥[P^X`dUegdԥgn "At(Y0ȝ@ | :\8#PhT6I!ЎUI{BQ \IK`4 endstream endobj 424 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/HorizontalStripes-green.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 430 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 449 0 R/Length 296 /Filter /FlateDecode >> stream x^eQMK0WE3MDD]ԃTzsݵV~L7x<j(Fxp0âS'7FU %G0ͿT]ֱ a=N=6[ iGPwts}ׯ :6zsŸ^z;W2-hK'%ڤ!YnXz#k ?U[K1ZE|B!aN$1붣Y*j.*0Rv |.۪iq\_Z{ endstream endobj 450 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 454 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 425 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/HorizontalStripes-green.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 430 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 455 0 R/Length 399 /Filter /FlateDecode >> stream x^mRMo0 WR`jU$eIޱl;)|[ڭhNtr3e{tcj0 T,{S \v7;3189!7csb$69vIRu秩s@'[`GvSd،*fV;hJIFgN .>%x*g_kkIC$QDy$JD0l)&܄I.ۿ_off'-wETm SY76u~WZ% ۢ7>~८w+6:Z(aٜX.dߙY\IzGtpm[jtY/o9p endstream endobj 456 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 316 0 obj << /Type /ObjStm /N 100 /First 899 /Length 2603 /Filter /FlateDecode >> stream x^[s9+Oj7%*d@ [!$ޱ.wݶqd0ӺIGG. OMU2VoT|R#墐o"L0 Ul#e'* =Qi8  S0*H (Xǒ18X-c@ZR:5bf SBN@Ktt+Y& GZK߈_""IS)lD̑UhؼEMKAHW\D{2gYْSYSA3i!k d1t N Svʱ˖I7TɄEP$ $JlyCMj9)oR,4̜&*Jpf(M@Z,'bqʞtiI)ppe'ضl`TiA(H%!5 1Jz=B187p^8 %1L9(J[*@qiY޴-<-sP-T tYk'|,0i+ܨ8iY8d1 QK D Y8192qB>E$%<M+UH`T/\u~*uˬ[^VggKn΋b:ʆ~Wφ[^L!׍+ƥ=6ĥF潪k$]F?9uRtw:Ge"J R]nS6ƀE/y1+g`RGPrgr2jcqj K8(+wi>}uF !sbt$:ì{g70;xҞ^,/p!Z#ؗCW,߾!:ĠXu ZEZjQuQl: Bn̖x.N}؅~ԃa֦/I!1K|3Y rv^V!`r*qgŴKS-ymԉإCڠ$ir*a0"|U v,&k#L̹(# ~o6uDm-|9&%_˧3Rmi[6A"Q Ft35K.ލ3 Fa>l3Im t6>~؞LQv{1:J)Qsu.B|?V4v\'u/*m[/fŭ\w 얎@'ʵvrbcC˲ҀV?P e3Â.'725&4wo[`eR6k~g_n몖O >RO|gC\F:Ť,[*9]WR+S.}Uut+ _,(tooxl< bMgٸ+ӝx9m^ ]؟!+-5>k,в)Si~Gٽh ڃY9w"q/|*h6Ncbv[T%YʣQnK"$51³&+ 5z. X iwʽzl_%=א'0ZUD&N"H oAM|9;35F)3\o *GY rԚdLzVƍ-F`, д;bn5xGZ$̒ɠb7l?8 A)<"2ӷGH_3>YG~vH.'!Z/Nܛ b51?ޭu9*G]fwL筛/ _Iy(}XJj ^Z٥ U7R3xU]I)]CI<){)G~.<_V[$;M,a'rq?O<)&K t|>.;!k ă볫<|c endstream endobj 463 0 obj << /Length 781 /Filter /FlateDecode >> stream x^VMoA ﯘ ǝ=/"TTP"yvg6ih+N6/q8sܹq-Np2"[B &6)Mp;9Ƈ1;#4!F1c<zհ[2Av(jPgR៨Iè`p7T]> stream x^un1s Hxo@JEJW₂Z4II_'iҽ8;g> 3p*((QNnf9_Llы7U|"?pj݋aA*5R>Fhu/KhV9zF% =-mъRh[ DcɟU= hA+/k?p'v.MML nhNS|jK P3GNAD4;_tYC,WͰ}DkEg>0"?FL' (8$]a]HnLd+.?ryǼ_>u $%xÁ'ץs]m?7 Rx endstream endobj 493 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 518 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 458 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/NarrowStripes-green.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 466 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 519 0 R/Length 653 /Filter /FlateDecode >> stream x^TMo1W? ҢJ-D@ M;'ٵ7MDiY{l{cPp!4ER5 W[ot~ߏ k]7 mN'\QGL1XYa0*z:F#DUXi{ >VzV3KMu 0vFIH`ci!_$\@t \z*]9>Xqlni38V!2tFWjk#zGJG|PIK,!Q%wsm4h-cUi 66AFg#/Ssv@\?mqCe(/.$pJiMDk3O @M߇ W<] Ƽ"9Ki 247p ݳfRG@d@I\ْDͭ gCm$+J^խfo|pkذ`҇7)9jfjSK&NNJN/m$biݣz1v!qqZ9-6we׋\i{U\ ـ.{ιﹳܔeN2w&[$3t6G,(0|1 0N+:?[ endstream endobj 521 0 obj <>stream x^3T0BC# =c38˥[P^X`dUeg`ԥg&At(Y0ȝ, Re er[X"s9Xfpe(q(Լ.t4 endstream endobj 523 0 obj <>stream x^R]k0}ϯ{(+ZjruM$~IZ[+D{9GGO{*Co>pFuڥ5֊uvȑfGX-W:p,YqPXys`|/o{z|z]&y',2gіFȀ@%L)fUl†(r!65NpTeIߴX2W$ 7D޹9j! ?h0IW%Z?@IHi۞bnv50S:eSY M 4pcWV೥S:>stream x^uT LSW!\gzޣN<|0`Db)Hi/P2J ٔ"y 7 Qd/3ݲ,Y?99?1>q|"y݆$E"!EmK<ŲX?b)qy>Di'(/a^5śopJK>#Zya86ao FiM\mz[a4(pE\hgl 800dR z6jA$HTi`2ڐLY@lyVbStz+(0Yr[2Zg2`1`mj Ě6k V:&&K, ;Ye{DJG(Sb]6e-cS VaGV,;l)& Ă`,[t! g< -RdGx(<BNފ[!?)NN#+B\x :pjUoqŦ~dXr:*j o\3mSѥeҽeCŸBTa"}w_'ጇJ{H'Ε6c3a$gÃ1.HU(r F Jto2^ur\pe7S^|&kDA MLum՛jfGkT=tN@?UZO™?޴i'\ց"zBQEB{b B[фx} Կi\꩞/ߌVGna]B*̬ GgN>zq6EFdmo*}5UtE\ҵ翾uGPAxcvئ 3;C!ޝhuZGmI.IK#:w"GKdd)3ؐ&]n.n#~D2"BnCx:]h9}ol'}c}>kfΒ]SP7;]_ 7qUh]9psHt8*.UE5C_kl endstream endobj 459 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/NarrowStripes-green.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 466 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 532 0 R/Length 464 /Filter /FlateDecode >> stream x^Tj1}WK~]4Pچu$q]Ǘ@3c0==shLA@ (J΋Awt5LW3>R,aux-w׳/MҙUBRH ZR"Sx݊kjk`=~CFi0LD(8ރ hEiqVd>2$HE= )Wk=g(K> >9R[JڃӼhm2t˲MI+϶Ɨ1Q&Gh:m*@[EK9mQ/`2/H< S' kDEIsXpxø?@|j7NHѳH,kMB&T"`CB"a :F~ l@UJ?n% endstream endobj 533 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 537 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 460 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/NarrowStripes-green.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 466 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 538 0 R/Length 563 /Filter /FlateDecode >> stream x^uT]R1}ﯘR:FݸFQDeY`"w.霞9` nRT@Q*eu~I%^Al;^Jlz_ &;#'Qh3QU#ĔBJ.O./(V+ݭ1n3CFi0W$bH$lA@& 6(#i,C-Iv8D´n2=Ѯpn*:GVW֋ZP:OOok67*iirXGcvϽ5DjDCaN^* W|=Yrx5׍}*mꑏG'2T7 zYqA tnK*>W>S~($OrActtk0*ҹY_IS/6hj|Htm4Vuac[p׹rX!1Wgp\`ewŌ8\+Xxz'jg̕L<<SuP9> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 546 0 obj << /Length 849 /Filter /FlateDecode >> stream x^VMo0c\gB@‴7J)Eufb;i8!Zex7o>.]pO7'Gq`|,]|HBnw@dz;#%%i7GJl8 *CH):GQ;cԁL>yEG0U [p?\[S8ԕpZ )NPpܑ@,WTBdzTmT ZNnB%R[ghf^ןt6aT=w*S>ŲϼJFBF#3mkŠK{2 =X*[=bi|ߔU"j|Yi,Z:beМF۸>YռEqmYי8G׬Z.-'TGnVYz fT,o,]^ُ̣TTᢱ{˯o>:wW׀o//.{*yC]oAF"fT7?nз 2IX7b))6 FK;!'|9o|h /om||ӧGŏqc/ǭ|ovO@~w endstream endobj 540 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/RainbowStripe.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 548 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 549 0 R/Length 248 /Filter /FlateDecode >> stream x^mOK1sdQBnRX*ي^޾ l|Oau1Bp3s\#cz#F;0=/ D|)"+v" b^}l 3kȳ~сtyG`3901]k+46\v.jWkY+\p6<ԍ_Q5Do^ṃuO@>stream x^n0Etp>]hEש dÉ鲡`{!sH^LL$Yttx|x]nӓ|8:nGi&{vjk(ʴ_47+P%3e2ER[&ӀEKX(L[x}]׽3|x}ݽh8>B$Ce 5k.|8)ZhƘ |`?%[95袲t|8N-UYY}|-;$^sPC1g~5VXVJD;>;8sJFVoS]{NN0Kܷ 9N->앎֪Do'ńb1ňOJQJYq0T|ʕdh +F!0fP <jWjB^x(:p endstream endobj 564 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 579 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 465 0 obj << /Type /ObjStm /N 100 /First 914 /Length 2759 /Filter /FlateDecode >> stream x^ZYS9~_}Tplfo`z.|Ru5mN/wcp)RR2+V2δL$OǼxzhg„ ӎ3EA0a 8Ʉu ńK H05qI tI-)a(ϴLZ&/tLxd©I1ŕDA3Y;J)ͩ1e11p|&K𜠃Ek;hfM+1%ZpZ6Nb q`7 WTfؠuPEb ẁi@'(`f``XbSx-05n#0rb12x\cVj0a6``':HlBJv ˢ79I+;;( iIe0 (-hNؚ< B}j8k j$%p<ep׳)~Gl˗/,Oz:ȢtL Q^egg8{94@xOej; \.O I9Ìj+*64MvlơCH$ǵ?&AԎ~{VenZ` gNc{FDKbQo_`pݗ5=2f_8|/Gt2!:V|Ӣ.i(;[E&r^?giq1R.E JL{`89/(6A~q$ vwkqR 7]a##MDFCS%IVj%Wi2hZĚJӶUX#\ 1FOm3Iyrtd:8k` 61^ ,ppwu Yn&u#ɚHyҙ)B^Nfҟwŷ_;f:ƻG}wN悯d痣4l&tR7"n!܈JN?4>f&r/#"jk.| P"\0FS +n(2 j{ 5s;܄5Z9׉pN>ԕ0dٕbٕdٕ>e;*!'?M_ݲy+Vvګqe^ݕF_ūZ6<6-{W>W^io<ֲvV=b&8ӓK^*y͋l39W|ȿ>?,'|w9ҧکNp|erxU @"G{&2ZӯfyOyߞmr?viMmk*ˠ{ ;tחel}]YWpwI`4. Ns~͆ TU:u" s0h]M=e"T!cpXY"|j:$@D͠J1Bsh%~@QTcms 0S%VT*# !pHԄ"f[R#iQ'~ XPd!|wMWcr2ZOʘ-*fy蟻uR$`o9fi;77ͼ=BO~Gdm Ȁ0h|'S7o\⵺10(馿I7ͺ M & _)9Tf؝Ü`Js]NOE[ws8&鱳-FvhB߲>uz WWwHWU jRnlﲷyQ~1I!!qW!+ˁ )I@@fκVxl=8[0m}8uYQk b_t@^ ti& mHX3RY!;!Ͱ: i7g8%-'q{ GZ*?1y 0$d5 Aͽp ( 8ku7V ʨ~FQwUS:^ ;Uj (0$FMwDT*i)FBQS$@l>ZዖK92- ؔ@SQ);IY@PJ_lCKy=|dWXJj=&L_eAPZ[&Hot'bbA.[@2\˄iW'aA2 ,,XУFM(\F$Qԓ1 R)MTJk~ 2ٰЊӰٰp pЊӰذ XxTNR'r=.R4u~p 3(_#1y rAS9}efAp{C`^ ~yKkq[zg禬lI_lOթ!>U硆Tzs3)M endstream endobj 541 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/RainbowStripe.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 548 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 584 0 R/Length 551 /Filter /FlateDecode >> stream x^TMo0W==csABJ*ƖR'ݖ/tmgRkxKXRq`@qmW)8U)L )PQ+ap_Zn"+># FkJ:tж.bGmLXG"2; P G ʼ]xIyXae$ȌQa#D>BN[¼byFi^mN-(iV&WQ+f{(UaBx M^b |"3ShhOgy-o3ZܐYtZ'pvߟs\T-uRCرuʉJ )@[ rGhO20@Xq9D*t xC=sb~!LLZu ?ҒBtq\K>Vi*[aùR8 ZL|U6Yz&첓3>stream x^3T0BC# =c38˥[P^X`dUeg``ݹ ۗP! "\z&$AtB;VA9\ i\`wԼ.:/ endstream endobj 542 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/RainbowStripe.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 548 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 587 0 R/Length 359 /Filter /FlateDecode >> stream x^TMO0 W qf B !`bI!AٺMt_ cjӋc@ j ]@E*70q 'l^@vordb9Cu -)̬|tY:8묅;c,ƀ-lg`u 2%5G7[8X@&rc 2%ĤAB"Tɫ9>)7-?mu፴cf0@>e-}+ʒ"Ph<>.z}"+1k1+1/bTEφ=#u7r"Y|5h")$su'}(f P.)ظ$cO endstream endobj 588 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 592 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 543 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/RainbowStripe.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 548 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 593 0 R/Length 454 /Filter /FlateDecode >> stream x^SMo1Wbf<]#**!TioHI Җ/fjeEkNܭ#=!yfXOwV#J;{Xߝ7P~ WNr8*FS'|GmItX2k-JG6O,Y:8lGL&x&huڐĘXlGŌC> ?| \gk|K=GEEͳ#bA_ '5Y}AVMXs S&9[ŬD1FC{3u>s')p?M1Fb˅l%xg73[W̮,eRiYߛyHz92։Yԑsmk9BNrRS4ʌ%S_ pg}Z[P}7ߑr+ endstream endobj 594 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 601 0 obj << /Length 751 /Filter /FlateDecode >> stream x^VMo1 ȅq|!XD%8@)KpdfK[ *(g?l3n+2'Cw+Y_k0Xzk޾phn} llBforf]-D(g 9!Xc??!8UL؉X啄n;j ̓-@UW[wpvovrCb֎ ^xo!?õ/1&]v)awr2֜#D2_YgOk/=1|Wm%Dǭ!OQ'W4\ endstream endobj 595 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Rounded.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 604 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 605 0 R/Length 258 /Filter /FlateDecode >> stream x^mQMK1W>QBU KXL^Ģdf&@OC@0aoűX'szvfabG6f2㞀ņC|Ͳ{qgy{K</@**^ٶ]% l}|dp pow r[ 5ŞY^>Zz6p5œ Wc_Y5דFsCw:oWw_ endstream endobj 607 0 obj <>stream x^mR0 ~ mHeK}X7hS$ nHfٖ0P PZo}Z7X^q.o!t%GaB) O1~}XWXv7T}v$ͱI!hdZTcTnS#V5s(a{LkCo]h,sCb0qPz}~3=) endstream endobj 609 0 obj <>stream x^R]0|P右i;'^rġ#mRA,~ȿj4`YF#;|TlϜoG#/ΛV@V0``\Z O8\jq%LSzҟ#v6?/w~WC<^js+}Pd(0W^sE^p; Ý;Z^1pC Feյ)KT?+~򂝑`>8S]wq/ϙJcFۺ؜Jj> sv/jΰh%]- C9[n=̱x9*:+eMcRJ= 9:jeEBѳ>stream x^uW TY֮"TH쪸hj*A!,AaV *..jDܠ:.t-E{ΜT*yU~7I$IZfܐ4G،HqW!|xRP#E(S輥39*a=A0^a([¿0cK$aM|E%&99QGEE'ǧg;9:LԤdkcN& ;2rY&+-1^P))4Yx6^aIV"bEhEFZ6MdSŧ)4DF'EGEG)2h0P&9]1'~YtrZVHVĥLOψhcc=iIoJ7>gj;; .}E"FUDEG'7h#|#c!&aO81p%f%OXLKDIeDCqD<@$ˉdBCZ"H c"1ј SdžW\M$KS y{L!mF{҇fT>A_Z2jPEEEڲ Ũyt& !`v0EC 4^5/qvf(;󟫲zaHO~{^5k9_Ԇպ :ywnޱm+z!NoUep6$opvn|ŵ}-`U)Nj>ctfc7;R_/;kqܭD꧛=sH2 Sm%CV6䒉ͺ{[wwgfofϕuºY$tWY#Od1Ê~>h6 bĺ[` pJuKVdH䲈OTt?ժ.^D̴>di\w[mڱzGnSU /J!?9zm$^cM߃\DžwOoXɝG?rF^?@ ly7 he([ wy//לgA`& 8kD) :J>4f2z)G_{ XS`fDH.Ȯ6X̓R:eѫR9PÞ[u9\#{V,4$}?;\m2B_b=XF҃S#YthR$\]^gO971u9,'!OnT_<_N,^4ߥ#W|{pQ m`LQxG𪕄Wᙴe`3%%%, 4\ѐ`x'5U].z}]zJ"S~ɜV9[9"_oBsAWݻrA0%Wڥ. ^_gu.I$h^!Gn#77o$3\I)̛, C2?CpbMye&qZ^Sx;zn//\[N.J| შJJ$~TRAA ݁"K 0:fl:d[Y!]M[g&^'<F>k)G,LBQ {h#`"ehh lNA?h0+0z(K,q>]ӣ: q JX1d"{^Qtx'4&cA@TTcb8R3(F44 P > r@U#6N!OWq裲`: C|4?ph$HLLʼnmyg#I[.gݾۇ{:z%rVe^^vd}@Hzfi#"^+Cp\rRE K d#m,~Cfx3J04{Yே׷ncM>W2¹+ I>^}FzrHfh™ӇΕW7fc`eݘG5SA¤p!kk{WU h"OV 0i]̩M\锭n3|6ݮ77pXjHh񌲍uyfg5ΗVM ,r}'4]:݉jbi{,m"xrDLMMdcr]F6!AoL`W:ʫ`et4H< *7T͸{njzF{/޺ Idi(Qz(./v͆/ ǵ5(!ڛFxl\6\Nje]̲IW* ҟ*W~fϮ_P3|v"DB -l/)ɑ rAl]V K\"t /YVJ!#t n /H7+ߙσ֮4P:RA᷿K[Ԇ2V:]Y^lX˯fnܸ(T{!lO)C-uA QT-ۊc<,H24@ endstream endobj 596 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Rounded.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 604 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 618 0 R/Length 869 /Filter /FlateDecode >> stream x^Un9W :f$s dA BuvoK=狀RdĀ93E]UM9sis `E@f^„7ݰn}"?n0^Vj}=AWZlrsjX5-Xm \Mz*z4bL,)ŝڝ6a]^_ WbPs[HFy2L&\}uC'[{G& $aZ .Cv&)$HdX[!C`p."P.%*&#@PF2R/{x*ޏv%V/,k!2R*@UmlmѶwC!ClkX_Hih8l&;__B֣ٷ=N0VIF8LxZJ> Eok]lu&r fV0]ao/鸓ݙ%ԾA(!IC 8)-\V8L~eO)Dy^gG~L{.uZ|_C1J4F[oZjjɋ_?ywsMJ G/z_4Wۙ_o2.|p1qxBlNԘR8nCTSJ]Lm#,x[di?Sʟ1fa2蠱U% [Re܀дRiUY:PmrT-ڌwSݤtnlr2<0 g g endstream endobj 620 0 obj <>stream x^m 0 y$mɃ{9g7iǜf /|!VϹOCZkS{yLwbõ-zaAo6$J_# n"q\?`" H#УaL4 endstream endobj 622 0 obj <>stream x^}RQ0~ﯘ{܇nmw"+urkMF/`K2օCP|7_2Y+O& p ׻ &C@(jOy=LTR pD=x ò8箪UW2{C%g ~V _c6Z7n.@4tJprz =9X\suzlJur ܼޗ F L jh+:1<gk}{#lU&}5o-Uj bʵ9Z]0XY˭>O-d4GJɔ3J(tP2(ZQPrx8%lơ5 i4ѧ?(Nц2#䜐sB vlw`u_Tx n]3_/q endstream endobj 626 0 obj <>stream x^W TSW־1I[u$﹭QG[ڗQVbE4@Hx%'`GHrBQ/Wg;6v9ұ8au vY+7ɹsDL !n7mu-\)Ȏ̈́q p$Q!7-ωފ݃%É1jL=^}=Kb3B<!## ٚLlZ/]xSk4E\J.Yhu9:MgkL\VfSMIK?ӨLJ^jrTEk):Vt'\khY[(Pul֠VhYJmzZϾP…,S(X^_trޠLh93C{ o~)u׬{iۺ$}hl^[K??Vk Kf" v{9IdD$TD.GjBCń{J."t1M-;Lə24uԡb|Omv#(53X}-7^Jp`"[tdEa m=d@Bz/R5LE2xvG9.$Hfq(EztJn*UU4W7BQMAttZ*@Vj4NGσh C^l^CKz-nݲ}Nf#k|~,4( QSc+ Up;0, Fߠ‘"tc߶}yהBҒF} O"m4<{:Y,`;`N1@ۍ#)&_\!_մf2i;O4ϱ?CDqj4_S~xm:2orU N*yxOC8UK头}RO)=:f čgs gi넽to'oh輈}G\A2߷5ـܡWGYN{!2x6"}򹊝ClӥmfId#޼o8}zrEO=it:f7ہ :2}]t?Ah Y #q?(❝AܢP4s!1J; ̱a}/MG+QP- \;wi60*"fj]bkpu_sI<j_T E_"v1~{nG~骊(Ҷlɧ/bQ:L::GIlRZp}'G-/?%2=fs()>\{dD@w:]>FU9_V*T?KkƊnKRɦ !y|WJ2RfhMgd$06M]=N5:֗;* Гa-K!^ոx(ʁ6Y71n/e;j5k "(4I*aS9k(k9"]^Fzxװ>BmñFM=^sT{u.O|[S0 X@<ĠXR*tHR^q3B~*2k9;Oҡ>k'"3Q ?y[}4%%eP_Ds1*z7]KtDxc\"V{Jy$ >,j;(YN$4Kve&XμL@z,/k'F}qk5ggUKػA2q?zMg1h#Mۨd[Na^(ЛḵsQsԟ^=>4h|5>dLę2+`OkyٻaG(|0^W>? FOh9Up G7o>ËLt7/j@|J5HgFQɟ8(E|'i`\L}zcѣcLVHcSYSoO\ i Gk"j4f廊 ,xk]:p,DKQݲۚ/3]K[UN(j^A)><^GaċOM?Bnvjۙ69Rd:/QKnE!(B\/M sB{&l}y@E\ p,o VFֵjt6ʋO̾]xCx{)$8~҂#6!WȭJn1k<|i$jIHj)hH$6 ?ʼnD`d'ASvR8Y^ Jr4 ]uEP_̻ * p.;mWV{׻@律V=> stream x^}UIo1$z=6B !QCX$]M9y4ۤDm]8>M;} v-wWs^_gW7jTխ~ vCwXN\+XCvB-P5u,U%Mұ4+E5g7[5ɈXHXOi>5EӶӥ;gS* [i{#)xj3wLr կjD.2i R*ى* %cZg'%f=3$ @cr5s+"KN#(8̈́"@baR48^G+Vs7odYYJ\-5H!Lz7>vJٹe\˻9'l龾Yx0{>CO wZZ歧 1oT!~v)*Y\($8J8u#(5s}!UaW{&x:dW`#^QƝ>fg7h,E{T3R>8M߷VYqk+}LKӷC,|P9qV][o۲2 8d3 ^VHxJ9N endstream endobj 628 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 632 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 598 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Rounded.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 604 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 633 0 R/Length 652 /Filter /FlateDecode >> stream x^}T]O[1 }ϯˤIqڇ4Mm@Iތv'8vc;fCTRl !Lapv}3orvpK|۪.>nU6sjjWTʞsYFl:SJ-:4+z4%Xa:C0mŵ]Õk)_gQҽI?Oc;d.XêV;7Y"dpc Ĭs$l k D%ֽ/r "f%dgFXXzC4nѧ3 pjO1)bduQp=~wcƻ.%`e8N}S\HPlFP= 'Qz;qTLlaU"yFew2/OM69t'#wÑ? lŽhJ:'z@ndd$=j>3C$u`-^R۪<»_ŸWyZdҎFƧf+Y&3 4BJݳtSϱ(+q=5qOD&.Lܘazfkb1 (|ĝ隳?(ii ܚٓ@LxZPh96M .r?>n jW" endstream endobj 634 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 641 0 obj << /Length 975 /Filter /FlateDecode >> stream x^VɎ7 WcɒHmAЀg3b } rg!GjّԨ$Q{6μڸ>6/0C6J&"{ۛ_~pGC'us8kZ:MK^4!׫/k.Ba+ m@Wl}؊l$`@#$$xM-QWJSP1db39n >s ~g  3MM `,kwn8 d}y6ԑ'̣HSB [$ӽ)_E(L }mbk.ɣɢ=PPi,ރ{ כp62 ·*P"T#yGmaaX.:Tmp ?ht!2ZMoa黕kHIV98߀bĘ#<.:ujRM5mg| -ubf~51x6S z01VTcG5_5on/?G endstream endobj 635 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Shaded-blue.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 643 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 644 0 R/Length 380 /Filter /FlateDecode >> stream x^JP }tcrrnA/(90:PoEMO?_ҔN˕ae;Ew eCIEGI_?icVfeU$iXYVT"3LAue64Ēe=ȣc8$HϣyIi"fɘh'@]v1Ř@P()\oΉ̤33y'^M,i-"¤> dvӞ~!~TLeI pBZvg.Ro}E%Y6?<*u_QI|+5(pp8PvkO^VS9E+{6 endstream endobj 647 0 obj <>stream x^e=0 ݧx k_s$** RBɐ0M6G_2V;m==tWPbkgaO;g"dN 6$BJً.JPڬr)8ޯ3qJ,()Wֈ?nT 0acRt7hU endstream endobj 650 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 656 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 636 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Shaded-blue.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 643 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 660 0 R/Length 518 /Filter /FlateDecode >> stream x^Tn1 WXŠ6 ^:]ibnftL.%R|yk~CwA80y|lr'k?ADɎ z RpYw;t;Mj`9I" #S?P'r*8!G΁,RY|sq^Ye6. ?xߪ VTmu^5G5׶pR7jtk|lw=WwͫhB(39CC?hR$BLBr*b|JzP2+roφqۗohԹ~场..17s!#$F1P~0+jң7碘'Ommi1R$im/y뭵88 975pToǍc 3ӿ-g= Ԉ+N( ׎X endstream endobj 661 0 obj <>stream x^3T0BC# =c38˥[P^X`dUeg``ݹ @ ۗP! ΅3r -L ,9HvH3Ҹ@!ӹy)\/ endstream endobj 637 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Shaded-blue.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 643 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 663 0 R/Length 350 /Filter /FlateDecode >> stream x^SN@ +|A=+B !(7 J[.%)mPq~g30p] ʧ!G**e1* CMznl1&}1[ZPO`O 1 .-`<9moZHr1MES6ѽ>FtB=F#iJ%iyWcI22X 4o\ϒ-_h0>cNCi3 + K O~86౼-.f<ffЋpeZ؁ x]~S JrzzֶV0Wo11LfE~n4Y- endstream endobj 664 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 668 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 638 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Shaded-blue.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 643 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 669 0 R/Length 458 /Filter /FlateDecode >> stream x^SKoA ǞGCpAA mmHSgnS?ggpiHWS 3]KW3k,ȡp$H1qB^ 7a Wlx5,1R'Neis=:HuT0ir,'ObxZuOIMcYD'" Q3ZH5N; #SL#$z)H3GC*n80wA6Zl\bi]^@|]Wplwyo,ROiYYN\/f.l|7smlWn,esҙ&—v5s}t!=8/bS9=ƢX=w\_1zLΛ?J endstream endobj 670 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 677 0 obj << /Length 873 /Filter /FlateDecode >> stream x^VMo0c\=cV"*q7J)Eϼ J77o&q8zv!SlI>~6$NB֗LLf3^9GQ.^ߞll¸ܛəmvŷm!9LJreFY.g ,c0Ly(,#e& ̼:}>Js##cSQpN/hxrurjۣ+U~ੴ*gr)* E .X bK1ZU5DzHc,FDz95!Y!,j.д|v JIGd1RIR}2\K9 @ [8NwT*)7NDѺ*ũM'eφ`a:&j"UZ +Qkj%9brK…2NY vohFm+KD7YLTmei7gՍq)j0ѷ938+2dN^Z~dK|rD̰p%6I/0k UhM5}!V E8 m5M˃Wh{CZKSӵV T`}{y3dE^A+ʣRQ}rpzm_8dʂ5e]n5̚A3OEޟm<8'NfԛMm !ΖPfw\|p̄|<pce)9orH,_"X|'H FE}Gh#9{)v_{!1g,ol_*awJ9hKQgɝ~,Y@6ѣ|+\uC?%s*j6WL"J0O_0 endstream endobj 671 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/SideSquares.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 679 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 680 0 R/Length 635 /Filter /FlateDecode >> stream x^ŖOo1 RCH$@*ʍ 6M |$Yϒiuޮ~J~,5zHyZoodJuL^Ri_ b M %b ib#!/UlM)1PđàMpSFqf-f@?0쟬[h)ɺF9Z+F VO-LJ酢絠-!$7ΛYzJ*]Q .8,饚R ^Y:-;Ƨ!(,жOIIx&njGy6noJiD鬁R.c yJ<2C_e@ 1V O2L_$m53<)YxHGY|F~>.+:w;3z(gZ]}Tf7%zySk2WfGE(Hő,{ksY[ޯ\XÏڻzqgO;<`&oȳ8 9g` /.T,t^6 Mx=Ւ !vA(6=}CLNfP/ endstream endobj 683 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 686 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 672 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/SideSquares.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 679 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 687 0 R/Length 822 /Filter /FlateDecode >> stream x^WKo0WD5~? !^BB@7Zvn_ƞd7P=سR(*TzX-uLu\69)MOs'>+|use,@mNҫQFOkj! jTJ*zQ璴:FE۰x1PX(([`׶ms). =(bHu,s&$q絘7Gg 6e`,mPRg ƒYbK$b Β3M9gii9 \m0l-c o=g d %7`93emu37]HG"ݪJK")mű ;rH'u !:֙|&HvqMk8Nj6fD#Lfn(W)BஂI@هbNGm!e;>-c& endstream endobj 691 0 obj <>stream x^RiXkpLjdz44-2-`RH(L}՗ٚ&3SFjQN4f 1ut,JdMCR!J:\Ώ\ߟ}zF@D0C$D d"Xl:LD2GsQD$0 =<(  `x*H Q(5s7 )$82@p$"91"6t ?JDY;YDBsa`L!j89CsPs_1ap2x(' !2*]ɇi"e r @P^D`!4̷.Nւ`0E(G!V:^;L 2-z"(:b]t&.ѕ}o5vMk \c P}z]{&WgU=Uw[#49,ʌ V'wg|rK1:ã"l|_QϦixiɑ;_ﴪp9XM'1klaOK3Ħf?N 6Q`_z ۮƂ6r*a< e]&-BJL,ղE6hRYHpcmӛgV[{/z Yĉ?azw3|Yi[[?_Tڅ/Y%#+?|Hs!|"2tv`c2,jB2omSqgy>S_H 7yV&RWd}$9`7״Mu\ɰ});&zJg{vIZ{Oó){G[>xWKSdXqqX¥-4Sp#N[9f\Wmgm\W-?k8EaDy/}`'WM{XOpFΦS=N6k8=Zfk&iON :t=zI[wg_^^\x*3zQ@Js~([ʱ ^{hI7ٞmjN/m8>=AU`ޱ"+uK*,S; -瑹}DSBVKZՃK4=;~0[Yf2)䭰I*^mk0*orN3+K3imNhO=_/O_Cd͢rwtՋ1+ӻ-&ٵ?+nDҒ؛#D-ύZLc2!" PM`^/~4F՛,&ª) ][xiÎc-{NO;Ɛ5Ao Pr\,Ru\\vL4~3'p@d>;ĉbNN7^Q endstream endobj 673 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/SideSquares.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 679 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 692 0 R/Length 646 /Filter /FlateDecode >> stream x^WMo1Wꎿ=HrVM[e4&Y&]q<?aKmpVvV۟ۻ+u{PO 5e,_wOP)?}ifн()P@I)5JƓ.R PˡrDڙ ADoSDQ[ ^o-ܨN3֫k hhEc͂ mҔX}\XePo:,]Dm(d,CStT4`Y\cH%O&{Qhi=}'g| 1Kyy[wAdz:E ɲFr7UF#ٔir1Ky2LWe^`Hny %8uIf>Ċͺơς9i8=GY@yF}}qj8;9{O|{d-g,~> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 697 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 674 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/SideSquares.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 679 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 698 0 R/Length 733 /Filter /FlateDecode >> stream x^Wn0+x)̐\Ǣ@QiIGݥcqe[A@O4ÑZVW8 ?BJ_.oVAYrz$ ?n?C4>/PwmN96,b69&a %PH'Rl CPb4 ]%zTcBZ_UcՏl6NƅΧcpsNpHtJ(@P 1f?P97R0MȩCGr?>!ODiOȓho\s`g軓OC4엾ҝY^aOmwsFB}JAH) JS]q%i_q] mlrp'[Y A8v踭OæO?STkSѷ r-!LΛ*j:R.ኯ(=?.'6*\d#e endstream endobj 700 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 710 0 obj << /Length 958 /Filter /FlateDecode >> stream x^VM9 ȅc8vjiH{ q`ef8yv%Uh@Vj<;~vw{ ~s\-,n#|l]>$!?CvG[JuDWZ8 q\5ol $ǒfQM`) RJ]ȼ[ eWԃM;cHxHئxKqO(r6Y/襨P;KY2FtѨOPWz|ħZh%pfHavعx+Bg?_c͜Dgdv726?M^oP{}^Xc^3jL]3TY8ݾx5x[!U?ݏG({'9%LўU|:Jsf#/d0&\+]ݪhl`'hhXħKT=a J6;]6xdܓ6):Kb`$$݄r>S#]FžI0p>lXcXDl9 ;R$ijKMTF6lgm{\cԢݹ6 X~!/F}LF ?1J Tܷ]1b(Gh2j%N:c̜7=w]~o׻ Ѩ>⩕LCmr#^8 6zP}\hiXǮNBPQ|Dy9;~},8"mlXO'll3܅R%l`0e6gz˻o7 endstream endobj 704 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/SideToc.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 712 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 713 0 R/Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\#|@  endstream endobj 714 0 obj <> /ProcSet [/PDF/Text] >> /Length 427 /Filter /FlateDecode >>stream x^uRn1 +|q#v%$`hE;U)/dfgT=;F8b!#5ɽ_??<FglY=Pc]_n]UOQpcjY)ˆf% ]>rҔCRYGc,CAat[w:txaE;ttpVnٞlzpM%MNDtQ{iϫ>2DW5;~pooJbp_a9%;L#M5ڪ6~4_ÇF$T|wʌSvç>$b9#ń,sްQ|STҦqꪲjq"l.DxOgtUkLgO*~^+K[W*~̔ endstream endobj 718 0 obj <>stream x^[@+z/Ɍ\v.. h'tVifXAK:oop{ Zm.[Q8NYY{&Ӽ_H2R=&;9]Uft,̻Qw;n?#n؞RjWzW4'G2?EiF*zZٝ({=ܡ0>stream x^uW TGfnD 8HkQф1"f!*@^ % !.C DTdbFQDD1j4=5b=wϹuTwUWUUI$IVD,U|hqXLJČ_0QxR "M2@W&R7Q6luՇVS 3$d$b 10ȱgX8Ml|p\|NvwvuOU%&3?6srEj&+]ǤMU5)&A\M'j5ӝItyF6>9>&=>NA5):"x\/OR=]\tmKn<()pIHӢ`g:"g…p'>%fsK!Bb1$B0"XND1D,@$*"XKi:"Gi:1sb L! n򙙓'(\dc|yjJCo8Ԃo8j(QZ-X~n ਍e&D Ydh+EF5F DSpP%AEyw6[9;u6BF^| .^1')b~qQZɕS:Ǟ9ڇfЌH3.Oϋ%2 kUIJߺtr~9쓞;g3jB{@#iHM4'ޕQ70pƋ2DH>\3{7)w't-P@Ww7 _B37 _#4E4V%qQ9a[laROk./X?Kw(X/kQLSu- \Lz/_0+A? 2+, -5W֌[p:N߃ Tҝ|6nMK]hҵ-i:myg$7s5?RGbydctủԪӹ93+ ]mVq{6 cUdހBwI o`Im/RZn+ݕ^}Ցmo[j_:1v[[-ro krG46~ω;negݐE Ecdצm7p}/zMK+*J8x֗Qߡ1zu¹AQfaq찢UOX9HWa̹G@EWIwRi\5s!DOB}̒[=TTh7:b<5 s\b݇b4Fፑ;0`V b3 `eCOPz;,i-<`?{Ǵ_ʁۻ[q+qƼ2Z Kě2Ó=7e[̀J XǴ[Q~;MvQ!]э4h^rG5q9IE~a϶62Ohf9>ӯ[`zم Et} Oxc_~zFOϗ^:G 6jPJ@/Eʼ$bv P"GIx+[mï%xb͞Q /O BHHjA̡Uݘ !?y4,R&Qi_sʵ|ʯm(eʦN _j)JiLnna.) /[%#3hzEb/٭rwپU}B HLpoHOf/v-y{LVmy ƻy `lL1k5_YkSmFkiNb5Jo50DMN%*.)1qDr endstream endobj 705 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/SideToc.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 712 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 722 0 R/Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\c|@  endstream endobj 723 0 obj <> /XObject <> /ProcSet [/PDF/Text] >> /Length 791 /Filter /FlateDecode >>stream x^UMo1 ϯc8'B(VBP,BҖ/ag2OZ`̼;~/^ `lmEZB-|{5,u=PbCK1TߦM)0c$B,!fP(b<#(qm Q!L lU] %.2tT1UK~;2 vc\2!K~xCs-DȤp":PFFh?0BzKMě!F}??CZ{שtTQӊ)i_l2mTqUN}e1JfUXΓqPAXo^|O耈*fq|Mrݟzddm1nFq?_5jjvɖx윚\6,E"sM%O,wd>[&$"Yc,R&׊fS.,&=yJ O) : Fth0se*$H[Ո}& 0AWʔ% PN̝Iqtg|e`b I?\mN~]h E˜ Rr@Sb4[5RR,lM+"*Bg'[cwf,9:+!OP6j\>z[^(!J9T*r|l7ՅF"|k2w<އn7wZXW$eBee*=TdJ6c7qk69iZ*p endstream endobj 724 0 obj <>stream x^3PHW0Pp2҆@ NRU-(VH/J,LV0RHJM*530ꆒf@vp w.C(H/B gr[XB)ADH cDҞwm RRK9A endstream endobj 706 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/SideToc.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 712 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 733 0 R/Length 39 /Filter /FlateDecode >> stream x^+T03PAUe@}\|@  endstream endobj 583 0 obj << /Type /ObjStm /N 100 /First 903 /Length 3411 /Filter /FlateDecode >> stream x^[w6)OuOW@ s|qcqwS?0ck+KZno/X9MI, q QbVQ$TF˯SNUUQJUԨ(RP*6m*IWK2qlH8e0!(&rF8JQA@c $e(j9HSJ , (K|D$TiH(K*8IZ-H\+뒴SpV+҇4OCK88j:@C Uah## #8-·1wJ#+C\3ugyDi%G #XsLy"+ X C{:h,s 8!7q@Z&hSϘ8e) }SV0'$&DkaI"VƱI:8J|IR-4#8 u$H t]4ТT*rR3U4N Y4 K"Le:fIemXI2Q2: Q &VcH5z5 Z@kۊ)7ebZM _iqH2z "z"bgNZ=7Udz"+V)Q[%Uxz [?M݄;-ή`t ji{8Y`RH_O+ȣ#!jLǽP/'mqYwgfn}RzcÇx$#\6ȓm/ÓIN| yV ƣDiz|\,ۘ+eg.ƎÖŵ̅zVdp8i9.qC`h$ 3 +VN i|Zׅ<)YN UYH]I{3gw|@6m~74>9kv8|Fϯ3_)KTFdv=.*R\䯂}wN۷IV\LQ @Y8s"p8L*ܵҥ_gPG?G}vˠx~¡rOB'==>F3ۧ0Y/Q!g_1L 7T !GRRs.g)V5.I<{7+А=wb+qϧ|*ߩ'Nx#jC %SYͧsJLf^ ˺{kGm+Z(B8+L/|Yf'-WZݣ"z+R flڄa5`cbW+ 8Ě/S}%.bR!V%vYlg+Dc.T/U(V'd6Fڊ+&UqlB GUy,v:#L( )sY SLml_SʍGcW%y5{@y=g۰~8k 3D>29;=~;W&{a&;5aWKFpF>c5a:kug01n]!=:Ft{nADI*%(pKe oaK9^kD^*;!* BEU ޭf3JD5#q]Ca$B2q&xwan>_;Jc;hrJ{w5> Gv8b-UNč=T$`0آ$Wo0pP FZRCD7yPe8emǓk48l8{vԓؙ;˜iI0L:D5Gbz3k}M.ibDk[`'AƽffcM6IJ/6S>#d$HMY)nf)bgm<@1ʲ@cz301Zлnam."Msȭ!~$ތ +kM7˹ =nTU =k@E vMX㕐:``;6yEz313k~e=ÅfV+c;&4\v Č@wf̯2deX\|w na},JN0F(&ؤ!P< ( geA]@68&ڡ|@רYV`.|{0NJ Spd;&WekII]rz|a5Xniw4+/muz.)x'H۫KF<wg*/2^"CmX!75^21/vOuW=AgqQPg#q|HamNf"?hz\b]%J0]Z@`Wr^> /XObject <> /ProcSet [/PDF/Text] >> /Length 624 /Filter /FlateDecode >>stream x^Un0+c.Ϣ0P'q=Эu']R F+@4"1 l2Èdg@z߰9|{y|ZAx כgo+ΦF²I!T欭6QTgSNڛ?b>G}>(rL$Q&3&pQ@[ &:AGe ٘1Po%np.+r"W&)rF:Dd;91&.˳9'znYEF9 ۉ+<: 'f 5rH.`٨c6vNh4׈/Fr,}78r(A@;V G7#c?k jo3EޭT4hwE[V^1pap[JQXzΓ?V6O)| endstream endobj 735 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 740 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 707 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/SideToc.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 712 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 741 0 R/Length 40 /Filter /FlateDecode >> stream x^+T03PAUe@}\CC|@   endstream endobj 742 0 obj <> /Font <> /XObject <> /ProcSet [/PDF/Text/ImageB] >> /Length 730 /Filter /FlateDecode >>stream x^UMo1c]{ƟU-@P_()mog(Dϼyu8s>ixsO\67ʬǯ7KCvy}{7>w?xQ:ڧ\g&fGt;boΉhLx>ԟn8J[j4c ~FqNj=;Z!cjBSj؆YƳ!㾛ŕִT2Ɣ- |~FKhJLKcs.Ɉ{Ěpw:C(hKz+[}iۻsH4(ljB+Xe% zJld/.f1y{]DT7fILGrt% ?I 7Mf0 ߟ"U7ZdSFl*gx[bKgb endstream endobj 743 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 750 0 obj << /Length 913 /Filter /FlateDecode >> stream x^VnS1+ac_Ej"*@QJR^ ~3smߤIXngΜۙ+̳k֋s2Cw+Y_k0Xzc^=r"zllB^əmve!9s|1>qpsb}cߐ-Nlb&RKM{BC#.xXx`KZ *run}dN{G:&}=h Ym-r=B̋H ̥ $H5&$dDŽLDcA1%v;j]VP#2>|02=yDS,~ fRC(V#xDi!~>\6|s!wJ9euGpU3`E3c%C-ʸ UD^@9> stream x^VN1}߯VUZTUV@Pc= IP{}lgΜ)H(j%P+D;`6/ 7tzq4RD)ܓ']|?,mb&Wy[1E*6i0 4.: d*(bFy"LvÙ_ -..X((;`̯?iɜ_RhzZm"sVT1?Zg Af-̘heigJɵԯ& pIaQ*zxQD7NJX]ߎ8ahn@{)u)3Ei~@SjCסSJ4TRj%Y)Z4 #vv؉^Urʇq (w0>KEHQ )q _+K͡2ߩ91h?K3JIj.Ssc|Q3;wԲxFFb6^bv94ވaᩄ`;=VUzn$؀inF9ԴO}C(\d2e hעyôMd$Tu_nYsc0aYX#=t#K8M&9X"8X lU*՞oUΨؼRY9bWyY5R st9ї)ɜ9[*HPVR-cD+/vHeNK]Ktf}KʉhE"镑t'* *atxQ~WRJGw?nF*_ endstream endobj 757 0 obj <>stream x^}SMk0Wh36C$԰ ^iĒC}G867zHzG'!B/^֛LV @O{7WгiQJ%;$#6 R}Rl6?{.Rժ{pNC ?"̉I,k% :/qT\ֵLH_dsCSK}>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 764 0 obj <>stream x^mV \G%l6*F%.jVw'"H `bPO@7V VEEnP7j}[lf~;;;3c}BM s RE'ե%DtN&g0yΊ֨蘍u$t?qJbztza qhI0Q}4mFd3,O^5p..wSF[7.㢓4R\(qCI\66:a>MӆsiڔTNOKNƥrF}NxhѩZ ѦpX-?=l7YdiR܈rC!MЧ 2  :wꍘd׏DʣHF)vH)Za oV,fЛO㉜kKVmزh-o>' 6]+Yx?ZD|ܦ^9s)^U@Ϛ1.c?Y>˄ħ=QeMKOWv׵ޕ{Q%3iШ "_M/~&`*~qňᡈBr)VM_b;AUT,Kcͤ<`(+9AC3S R|p>lR!?Ÿ„Ȩm">;SoprKE3?;J槻!l9fqnFDH:86dldy5i4>+ݙ^S/2FOB "Y(4C|o7޳jpj{ͦf&Wt}mli^$ԑ NlO2M Sʴ-7כ_9pKB~kgeqح'kya􎣹rLn!-@{N:}=3w4248~g+d5;V4١_0G.ݘη6DS:'@8YTWDC1rA."B c0ۊ #NY[?(cf(yryy!cVeKt鳗1R͝1.܍6?5+Gu,G01F6}XXVvrJԥF:;cv3{ڢ97E3ӏd]+;EG l|;}:, r,$.MԘpqSY̤=~R^WzH%vcVK K)bڡJYv~TwMA@EBb ;S%__zz.j#{|TQ b{SYC"g3_ 10`%PJg 7,]vѿ nu kJHXBU5^Ƈڧ+ th(!EnH40  i3ꁺn5 5t~ NtFrm3?B *lc߼m$ r J5Ojpl0 EÄm̠DxQ+KW֕uJۅF# NY7d{&IJ},-J%Uzz,b&yRo@JL?pY~8HNFBt>kkDŽr̲s ̶[ Il(b'׾C#Ѳ/їKl4&d#"SyЫuGkY3%sM)tfIJ|x-,JQ@V5<rZ">b=e͇2M5ġ"?!dwd#s]O;lc*?WK6i2"-$]):z]} R=PXIu[_4G .mp ]",\;5Aa{Q|oaӢTXiw׫ZdvPF6ӓt \$e(ibJIiA[mͶj5)sy_ڜjWkvN[:E86bN1C# L? #$Sgd@~!z1)$;~U[Hq#"8Qu_n.F-y1.đ_'d݄ds/iF/:H&nzUDͬ g啵!Ts4؄FO,bzꊬpӴL\f/rv'tCvȌf, ױ fّ ,*2$z6MO]ذﲐJ3J^N^A!~/eL^Y&v^{ .yuk=mv0}׶]bF9-٦ɦkK-yyyy6nvcAA~^^~|av[S endstream endobj 765 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 745 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Split.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 752 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 766 0 R/Length 1000 /Filter /FlateDecode >> stream x^WYo@ ~ϯ E0KEEYznJZSvWŪǝ% qJ:S)}YI N!]9Y#8 endstream endobj 767 0 obj <>stream x^3T0BC# =c38˥[P^X`dUegd%͍ \H0ȝ@ | :\8#P *$Ah*=C!@(w@Lp4 endstream endobj 746 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Split.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 752 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 773 0 R/Length 825 /Filter /FlateDecode >> stream x^V[OT1~?b^b2mO h5& d7{s@ v:70 Ej3 y^u`_EsH' qO/doTBcЭx ;o f޺`ۂuM*  Aj2ն[S0{k*B 2ZʯS8i3K M_Z%D2q圪ʏf§ Af-L++txKѵ [Guѳ"ZԴeN|w' gA{) )͙VE)jASjCP֧  ZI=+^ZkFʀ~ĝ" P\UdݸVP`|EHQ )q?^';2ll4<܋_I;."r؜m5wߨ^ɝV l^bV2ތ{q#!<̻z'<[-гUʎC,}=/#ĦLE&saޘe> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 778 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 747 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Split.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 752 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 779 0 R/Length 807 /Filter /FlateDecode >> stream x^VNA}ﯨbLKĨ웨 ,7ߪeI uLA{*@+ra҉GН_rx:?L\%R# ;cYM ~$!9C&j!`T:1 |7u5R C6_+럈#8⥤/l4 . eWzsUSGעO~v8ɲ[Q:]vJj\0k5 VgFX5ֶt˘yL4wZR^N`5\p^m E/hN+e1T;*}0N%]/ )s/ e^W^;m4$Mlc!!Zp;d̶32;u,O>EČ,dzs2a_p 74ø1dyhŗ"0u6ZP{k`_se&Kmc6B[92MWɋ[J&g)7 )+Rƾqp‚CX[| Im+ endstream endobj 780 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 787 0 obj << /Length 701 /Filter /FlateDecode >> stream x^UMo1 ϯȅv|!XD%8@)H[Z8;ZjAwнW\}HQ}! 0}|HA:ՕA 8Mޥ$iGĐ!}B},  >?']t8,F *HPXYVX:ΗQFRgiO8 ةYH<c[[n=u1li(NGUf6 "c2Rq"2˄aٞm3M|뛬1 )ЈbiT )B6VQLuSњ.$Jtۖ \7q1u[D#.Wn}]|q|\\^]k>MwǭKUAMx65(BE1 gH>-,(,Y[z9`N%vwnBN.@I)h&߹o.۩.~֊~Z7~s:?zX byQ9+Dl\\$ endstream endobj 781 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Sunrise.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 789 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 790 0 R/Length 306 /Filter /FlateDecode >> stream x^RMK1WM+m$ Z({RTX;nd2{rԞ^˖qW 9=nCŗ)@֖s |$P7p8GkFYg+ek9I/VX[XҊ&A"}-e7z.v*Z:֖KD{QY}ȉeL=mmlp/ endstream endobj 793 0 obj <>stream x^n0 z ^vUINseI8H?&MI_0/`$,YuGX+^_v-`a @@ϗ1P1IM6W%]4%UmцTsZ)3,^iOEP!nNw\N ͚CpɿiφՈ&H ӈ\9[/KJ54Z$ØԳ8?!Ec$ЩݬTȬrHc5zF>cNsR@;@9դJsXam1Jip΋1HMRɑKi=Rb4/Jk0ERx7Jkgem.aqI&Dey6U `Mj<U$SvJsǩ3Oy])p%U endstream endobj 797 0 obj <>stream x^Sj0+@zp-; 816m^iIJC~G8aax7oތٷ#gз绺fM+ ANVT0y^nJ$ZG ߤ5>lg]U>sm|nj8?D2 #_`z% 9j(,;*-u#`{aĤQN4*[\]R[ob\ Fj3X?{Y$QwZ7R.Yt/jΰh%]- 3*yU7zt1hY% CkP|M18SN(qIH$qȕcPiD'wdVeG3;K1JrCJbͱ]͈zt_vJtmgOn,z+X endstream endobj 804 0 obj <>stream x^uX Tan NqĄը*"O20lE0n.Y5*8nADEo k49OOTuխݺwZ@=c/|D$X.IOPyOF,<'ezd!?E}f$7G7&%%?%A')I4t@ħtb&1,#'l(RJJK˲LRĦllf}ke.V2yefjB,")R&-*3hB$SDF$F˔ѲYzj*UR'~n% Ke*U 2JH'EFdiQ2Ϡ@2)M:*)5Jfi)FEbҒY[X)U1xNuIֺuK}-}\}ܭ֦ɢ*YdTZD\bᆵR&" sl// KŠ&l[ŽE|E8 "XL o—XJD'"$"#b D(d"PDN}/[V}[/zzzτ[ +&trOMRV?Ԏe'c.{x}IF5O40>b<4"15 aq䡽!ZƑ(H׸٠=-BYZ)OK${ݓm< uzZ۽e;Xx/rgzZ*J\/U+~ÇAˈWq0sOSp.[KwsaKne~8ww{SKڤ,_+drbuZ]0 vs/m涛Hfmh0InO,XcHOԝ0Ӕ>̺a:Q{/7|櫏@{4;-f¼ >g^]vvlRn)C&ȄMrc Jܩ'7-v`Owv0W.Ufs[ݶv@TY){_sKI˟^lg@2jxG|,h,xGq$}a?Z iQW 6=ЀC`VclAu)I,(`_'z:Bޤ+ζ1C"}6'qsw L9kMuڪ$0 HXٗ٥^0gNl>ŵBlMFNr/C,N`ߤ-c&'2uaA {5leta*8-/]Yn.))(aBh E( S!^k`,f޼*}5gHzyP몒|%EV@?ٹ'q s]zΝKEW2s*o9vgYkLiCCpxIO%pvqWe}<{KHΣ͍=`#ݱ.q9˸0}CulFiS&聚+ 4iE!WYqTԏ~æflXN΢P٨G݇p>N~T@]SpS~:0{@t9)yVj/澅)_T%7pA^ D ZBPLDn/V5g?(ΫQ*>\e-ˮG>}@v¥!;9H?Qa}J7D}ڻk:c>iDA#^s:ayH>1H HΊdvM=/xT3hwk-_.9E]s~".F3#q,iy?*pdZVYVm5s<+g$ klWҘ)\BU'"N K:DɯCՑ,j*ս;í<]<{obz]n9#q.O!Pe8+\=8x҉{6BHw`^܎_(RwigTj'2G:"Њ=2}ss$Z2QBuia;u`5w/ 5`c9bAC2dgG,>tzp`!pgҖB_H_:*`"ult\pX*> hao?xk3d4XJ`\C1\r}d˝(_z$,ƶ+<7maAN#8]\A3#CL& -`  Xb N} -o <ńceFd{yT M̛oainΑdՅF:x黾37he!.?pEbsOy[Yl%BEl]c7Fmq,BFVM8;^%涜RGyu%Yl'Drߢ>?XQ(Ll'm GHֵ) 9 Lt6#H#t^Z~Cr[iZOjb6nd-~鄞R+vkĮļॠwx?3"3m-Sl<2J̝(l%R_Z1yǒwݎ endstream endobj 782 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Sunrise.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 789 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 808 0 R/Length 453 /Filter /FlateDecode >> stream x^TN0 +d$&qIVH{/AF >-b>u8sRUTΐd9x,bU[TMq"OƳQ2}ƤY!h99Ӭ9w*fN{? 7)3cW̝\yQC?܅Yq1sٜUGMgB|`͵KgKT"#-_0$pjϨiHtLoou+* h]bH7Rn北S4.rQ> ".WJfI4@hL fljΥ\.G#F @3\)!UȘ|*s&R_I4 bCV0#YN70}0CNzB6pe;XZ荶ϧm߷l zD<6% endstream endobj 809 0 obj <>stream x^3T0BC# =c38˥[P^X`dUegn ԥg`#ҁ\t w.C":_.C,N(243601R$Ah*=C!@(w@Lp"4 endstream endobj 783 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Sunrise.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 789 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 811 0 R/Length 300 /Filter /FlateDecode >> stream x^eQMO0 WD5q& 8LE1cH_"ζٖ_^@Xr5[Ç:n֪RK?uId <Qmi8R j)"^d93J`#xK2y궎B)FС0"hYãvok{3SbDMdNI"Yn&zষa<tx=OPYcxc yN}UCĨ98 xH;n nllU~Z endstream endobj 812 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 816 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 784 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Sunrise.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 789 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 817 0 R/Length 387 /Filter /FlateDecode >> stream x^mRN@ WDLEUʍRfJ'_<aQw"u nЧZ{p'M"&H>U\h^:'K@'nGx*<*,hчˆ$Fo A!"Fr`kɠVpp)-8kYp$@ )s-izw k]mF/l7̾1t6_tr[u"Q|d6|*ĸ!uoB1Qk)7JJ? 7`U͇s;^|on[ƪMo=F}]<6G2yr9mS-'خ_}}2’6 8<; endstream endobj 818 0 obj <>stream x^Mn0 :6H]eޠuI MDSy>h5Ԗ~pUt endstream endobj 819 0 obj <> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 827 0 obj << /Length 750 /Filter /FlateDecode >> stream x^VnS1+ay]gB(}QE ()_I! bʍ㱏Ϝy\g^-\<\/Vd-G1O`w Y_ Bf1o_8G#/߭Oq2"[B λg7)M~s%o% Oai8``3/`H̖JՐHRzt@e5ZCcUcP_~TEP*oX?Ēk]%T<R|@_(}DL6Qz!Mq޳y(7kT뽣ձVqYҸoUh-iJh3zY?غ}Eшwp=3WsU5RIJ5ta6(h3-$тx+ oRaɒ> stream x^UPj0 +ʒPrȾJO);fGH3#1]@="z]ݏC/A(9^8S 8T0G/9Yؗޟ2gfVAFX'ԍ9{R0|8*rE2|L/>d4_̍r b++ǹT&[ Ԡ1 9nes*c]iq'w^V endstream endobj 833 0 obj <>stream x^Kr1 >6l]R* `Pө\T# ?FGjtW5bQE]w뗗ǧ{p|z.?Ft;ί৻­Gٷb)Yf7kɨֆ;3QyZ١L5;M&3UE<'mS^S)Φ?G>)ЪU)/Xt-i0$ J"d$]Wn$U{ b:ޔHvBxW<xj#Sp9R[e  BW-jEG9x3 i:֍45a,bC2a"̍Q*QB<en*z^M"Qu}S[[Y endstream endobj 835 0 obj <>stream x^n@ $r`cIEMBíj ھ;;HUQ|N}yKړꝚ39zewg+QALԛZ_l]w+o9Kb~?}~M4MtN++MXFݐQ"LSVz Jl;lkE J]7{Pe:gGeKy77P6Hw`k 2>'Dx*>stream x^uX XW&(3qk-UAUB a'H lRP,W Z(Z~`=sLrNΜ|adDx< >_8(")zItlzb7X#d8X'MsS'BYѰ#9,d x(80N. (GXӉ777vAJ`cg*9K&u$u""Te4")J*.2qmJ$UDE$HU1hu4VJONF*TRNH'EEiqRARoURtQ|dtRjZ*Mƥ%;ڦڨԱ1MmHT[C?k`E^A^6ikҤ1*4*:-">1?qRH$A k†%lbH8s&2XLr"XBr" DMqD<@(Db5L4""rx-aOVň xf<^;(QQ?FB#OI2 ʡ?g3n6_D5llAem&V&kMi0π&;Wý-P^Fw2''ႠAԘ)أuœj_cS.=W Ӯm+ "t|S߳Zu~(B_: ЌmH1S~[X*,k45LVRt~.rU{0{g}!kUNkiacyDR. R`5#ZxQVq7o@ºZ 9Q W3Bsn GYS(lu ś&e&_?1WOWlXknIwUscyG7dʪ\]X,6.NT*Α29Kig#9nwӛE>kk JO'K;'mmSgśo˗,^^uF<)/Ld`\CcE]k Ǧf>,,;:hyN`4qMAaa&rcw2#y0 @v7QH k /<5Zn~)nݢ8o ]D튡\"1_O44!F9Y$&3M1^~ r\++R\STѺochkOY-9 ՂHKݿPm'0Y=ЂS "HK+1zZdtvJ ӆٽugZK $DTa$6!\ro^)|K&0_\(T4SZ1Z*6RX_Ќs7)ᓮl^s/ܫ'eqĹH5߬ffg{ŔVI MIJI F"$q]XuG[D13߬\ߵ}6{:ɽCrwɪ}4,rT gDbBU_RO W Nإ"M}"RmHhd3h ORO╉ %m]z^x*t|۟e0p3S؈C3aʐycH vmXN[!ʔ lAp7^BQ$.L J#44Ybga Tqu|n\@BYn|#{2gd:=Q (VEC>`5A&!1LOWU&]0>ԝ}!GOzlCXf>73BߧNӠh fc1@coRcl Ͷ# -;o X6q>Yq `,$zN+23u j.0G*kjѯI+ قM$v6^8υWbAa<4AQ(-́0!q-F!XWL `"HEwTݏd1H>}ƢfQh Fo`o&<+BCM 6ϹXqz";fH(\~h\ ^Yf`pzZ y+lQ `Fm Z~Zx7Ā0;sl]Pݠ_>~NrJ<ɬ߭)'0z|[i>ŀ#ү8cVfq?,::H 3~57]] 1k(nO~ !Ķ:bՇ7\6xrBby"8x;/? 8_ua]kΣҼqU `_;}i&ۙ ~  ~Q Q-wwaƋcNn+bjUb+f v!oj4Y&8<=^1Ԧu$.l砺,fxר9^;l/wiK'x{e',RPFY9(}#y(0t?Zp.8~ 0rF7f>xF>)m*+494GNϰ~}"^`T_/'gç' MaAs⃁5JfLa*-gg |.@$޵$7gy z;$dîE <;\CunW4CGzK=OOHFѐH  >;̪eã⵭dFr9z"܂ZD_>DT@{Wn3®:W鳟9W{dбj{Wsj)yH)-}j??ݜMؿ_a~]j|?>[/48ͯFws~,iK-:Z.x5=ǎ|_p(7 \g2e_\W*ktOW\g/Y"`y;vƮl=Y^%H w9ȵ!r>z7AQ}뢺D׻> stream x^Xn7 ߯ЦKT:]nb8]{8/iI ; D _ ^~z9pkdɼ<0÷g)}x~Eݺ"d#K o ~{"wu'N&| gsn aTr/:(J,7s,%FXnl'mU\JRpqPȍ O9k *5&%3 ̱UMN0(> ksJl Ld ĥɂZvJjF ME#ʊ@CE5V"F}*a0QB,- . .ZPtc`uzLUx9>_ȯAYi(hTҚfU!a`dF̑VIHMU deFe-F :UVAbU a׷nHl|rn rg Y1㑿 ha*$dr~rB0al 4$ŋգyvG5xzJΎy5{Ps3 n}daL~շ. (쥒2ʛ`AFj+h_b-h訨4k\ؚ4i(ۃE\_3!> *Xo-%stMD0E[-R*̮uAn&I;4-maGՂG< /A{v~~g's+%{ދ7b%,ۼ(hx\*r峁Q8Ws>>Br1 m"@o} Hr )y/ɬo :&;3uGtUt{ NB"CxtV89[#xvV qӝW9(`#%Uͨ銩#P!:w׷"軵2w%p0>I =w]H fJOóՃ⿓2d=PqyL>v$d Z[%̄&q||ǒKV B>ۤK}M9e]o[Z|]; endstream endobj 848 0 obj <>stream x^mOA@ sڴ솬~".?qCH!:3idE͝@QvuEc(.x6h2r!9{E*,KJYkE"Uv.x9guߑ۸ɝۮj\S9Y endstream endobj 823 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Swoosh.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 830 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 850 0 R/Length 1040 /Filter /FlateDecode >> stream x^WM7 ϯХUH"X |zH[CMvSi6=iuNمmPz$) /& _y1M.cRIEJz;=zD;uT(qC~;| o޼OdQwzs$(nZ_rQ2Y )l!Nь f5HK3y˄ش|qM茝(17 ;$ E[M-س!:ّR ArIH^(:Gƻ7+ywrZ _%c0b<_{xʕ`78LDQ25(-n *Ȋ԰vͰӋawؚ d]Y6SjHoy]=Z BDEDJ<عIsF;)VeBQQ[*-PAW.<(DZ꫌PUSJ PZ<5JA1V#:s`Ԭ9 r@ !X:¤5ug;(tCĺ]cl!U_eC"}ϯ6%܆\X1iQ:\aEWZ3PRUNwxH,#F4 \b/л͍2$H&n7ư>]m0o-; wufmxɓ6/gUh zo?opWakTA;#8}OG ./WX3}q>_y1/űdo{TCxٚ9Pu~NZ|:"#(Os2$|[li]=#| endstream endobj 851 0 obj <> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 855 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 824 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/Swoosh.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 830 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 856 0 R/Length 1151 /Filter /FlateDecode >> stream x^WKoEϯ Gw|HB""q qAC>_LYاx5ޚ] ׁˉb ˣHϟ^N(rX^ح))$M;\ͻmh÷b9!Ur~?'-j"L=KI@6Y kZ+LRZb WEir ҰbLkLF9[ZGNY ZO^Xm($)gZ[Z%R͙h6N;sU%LQ̅D[TU_U@_޽݄ܢI<ʶ@#+W~[TՌOH˰#}PN3G-V`y6rs'6reCa sZVaݲ{٘12Qi^M6gkW?1m@} 4*V0f}/uPl]-=/| H 5 T+Z]iz,tuGBx`,kcȊ&E^ $kMs"}z'o;ӳK81h8ٕQg*8<V?7 UkqrJEKtNw`g9W;-ﴺ?_W4 endstream endobj 857 0 obj <>stream x^TKr1 ڰUkY\ UbAr2PoR!,>zC2qw٭vK6.=G Tem`} /w p~Co&c6:S.gmb)Cy@ᯘg`xO&-Ѵg0RT%7\gԬ)ۄO&taGl;6zY+67gs:ֶa0;6:nbЪ>T0JD T LKѥHPH˾ZMȚFC8*s%!`b‘]CcRJãʮPOaAfY0 r*gǞRO#KzRBB$xo')&3v3-x> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 866 0 obj << /Length 823 /Filter /FlateDecode >> stream x^VMo1Wq]ό?DQC(%)6*]͛86μz]f'K0Ŗћ',`2![<Ƽ}enuP&4)y\F9q#8wx>0kk{p-ss@9S%ɵw2SSgI|hg.vK5%B´1V|]е5cb%A6a"?=WP0!kbb:-n39J7$JzlS'4-$|smP*6VJj.K}$$/";6Jq tV*ͨZd ) g*ܲ![к6޿CWhQ}>;-;I%o|)ކ 6!x'/z3'7)K#3oBǐ9 aaO|bh ymTqFͽqT|@wRQ(CBj VC\xεR(,?r+Gx_D>X0IlO b=)> ygnyUjl5foʼԥSv=jGx'T/7%>Od#Q4-TvY{P~n>\on&Y()Bq{{ HdÎo|gx!ӄX94SsQ'9 tIے pY11?W{|q1S?؃b#:L|Y5{'&qu endstream endobj 860 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/ThickStripes.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 868 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 869 0 R/Length 471 /Filter /FlateDecode >> stream x^S]O1|ؗ'BB J ZҊr@BJT&9$CEsx504PP  ?0}xps7oet6wX2eX5欭6TՔ&G稣٧UâQ!@ڒ*%=sIƈzTkFWV*T\kz{%k%~a3_xʪFǠ)$ uӎho O1j'?tg'_:'DV3[/zuZr՗2.S%=tuN7K5YwU^p0ьg+$W'=2&D$I00$R)3%P5HUqp4IJ-j^y9q9Du/R%|կu),1ꎷ<~s^Equ˞u/k$ endstream endobj 872 0 obj <>stream x^Sj0+@zp-; 8bhRݽ:$+e#ۇ4q eFo޼ɓo勵#g5UM&F 5~ AݜFгi^ $Z #ߤ>ljky-+݅pϭ^gPݑaN'N5zG9&6ZMm': JKs;X^1DE.'j\-./]uXP]o. Frh3X?{Y$Qwj`S!T{ _Z`5B2, ][ 0>%-%1%cpɵC)1y%Y2d2'%&y %H0~&ڡ:خ8ֹfNݮf` ^{֕iV{v'`  endstream endobj 875 0 obj <>stream x^uW T%.ژ*11fZ-O,` @Tȟ(`UiUhZDT*TԊZm_t7A{y=3ν{;w$ $Usb"^3w~RF[Ԝ$[8N|*DyR(:oQߣ^ yGp҉IA*b1QlΔ3,K4oBLfCjE FS^ $e4a4!ʔG )CH֧%!F'dBٔ=efLft}R^'df"̏Maa>#[/xxB^/Y,i&sg tRC#|^TǜȐa,+,B,$Cz~ɼ<)db v,u "%$4l"Ghx"XBM$ID2)D*FeXNd&""D6a! $C';"L'x7FȵN3 L$JN; :Ӕt$A?c_btIwV |85<й 0Oo(nahuƟƕ}~~ 2lHy E{EVȡ ֿk]oUWQy2Lmnes!E #O$vW%k4P髐HA}%RSJJ0! 7RBn3EN'/K[.Qq!KV%xR7$vdK/τ HAU^GnP#O0 !QXD p710gpy(Nb&DOBJ5pf0{+g͉D Cbk̘s >*%[z^s{EWl^ڭmpiL`LqON:]ҴV.ީ]J˭b\+<ǂ~t‰~k]e5RI%{wйL˵Ө=i;l.*Ĥd|#}g8,'& $1EH`A $N&SF6uh;'((kpfIAf<5jKDM݄IՉ{_.* ٰ׶5PgaM덞@ ']h'1m/ƴ ۏ@(71J/d1r6mWh^&ϓ0.PKƱ~5|eu@k(!)10tsu!!}C=)b8&z :{ίHa& suOnc \ż&| F6^cvhv`X[%{tgo*RY$\kuT v쮇yҬ@VʎS__<ڃsE|#GvFq)[~ :<tQs¶wݴ'CɭbVHkuי :|q\CR]Y|FU^U3?M_e_ڮfZut%Swl+WyxNCQ ݷF+'+M"%뺆cx;| NXߥk8a]wiM̷+!Fo]yPjP bimK)jܫO>wTzn[iY-Jx endstream endobj 861 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/ThickStripes.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 868 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 876 0 R/Length 860 /Filter /FlateDecode >> stream x^VMO1 WRI^*UJUKB[:/$ab'_r)G-qTZ;K0+U'u\];Uֺ'z({O~Bo}Z'09+M@h5䤼!f9C:e $Ztչh,/f)N>stream x^eN;0 }Zv 01p(%-j *C}lY! ؇Vl+P72C w+DO"(TX‰JSeStoIH=$ZyX7+ endstream endobj 862 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/ThickStripes.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 868 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 883 0 R/Length 660 /Filter /FlateDecode >> stream x^UnT1 +A B !hv<$}Ν6LG,Pg$Op@GBe|~ޜ_L/ŕu2~I]gfzJJ\<,c-dq/+MΠO1לJ Ѣ)Q+Lx3eNqBG^?s8uK4^aZ0w/m} I%g ^܅ԟ-">1rI`GEr32&GXnȚQ8\z)E(ѢL|җ4U,)ivcI3 $BɣD (5lPs{HFf6}io}1,b17vb}Vҥ !Z|%H>o$U h.'A-ND"L>Gl=gjOsU'P2$j"h&jM> /ExtGState <> >> /Length 4321 /Filter /FlateDecode >>stream xɎ4Inq!~ #4u0 3FfU: A 4]厫翿y]__.'F\q_qkڹ۟oZ:cDܘ-_GۼZ;w/ .~h>1ƀ>]۸~ʑh׈qƚuڽ5[t־<+8wm{Eo9-5r,F>)ޣ]G&1?^Č+M]UKkUkY2UfJ=WM5%6C !| {)=]tʔ`h꧲K[Lђcu=_ci ,nEjnH5RYA6׀ z.|֬VnIz͢٫scV.醻/!TS ^Zm6/s&p䦂Kz}t# 2[{!>hzK(1غ&ZwY2ezJ5\á,^Կ5ZfyoݶJ}I+ž BrnX6}E(Qpc Fc״soo`Bޖ'6L:RxFCh'n# +*VշDJ@ Mp$mKc{Y ?Dctw.昞߰Ax~MCQW]$6 jShi -VPItRdjKrKN e>(vW}r)=+l%2H?J=C26!Vq/p 0:IEkN"-ؐí+[ t X#k(<\Ҍg5%p2h`B ّnXv ^ fJ^ЋtKW.4t[h@=НEU#sX.ć6e}g8/x"U$c;RB(w̺7֫a R  :K9Xѓ6!=bd 6k$ s.K +Eْׅ/9ݜAO+QN ੁ"B X<~)+5^ =945 Xk54٫ 8 f'i^ವLCT.`cdE3b2T}ǿۑT}w\2eF6uW6+IP gݠȺ%q;YxUfxK[7鉈9X@ƶ,GfHZ0q9]b9W4\p,4qS<: R=9kXCƱ ~UBPl]G؄q߮-Ʈ߼0Lu6$EZ[e *RwOǒi~;dX)GiXHDHӎr\Dh16Oҁ$g 9" 98 gaZd֤Gx"HbL*v!)tAJ wHNM.P6=PQ|&SJ#N%d+2lI~K"m N&)oQGu*Ķ`ne~y&^hDXoD%ER7%WL,>h'i*2 .Wy֯E|rXI;x.EXe6bNEsw3wN%092ߪVnG<}Et잁%ȗZ:xL;-%yd@J8 L{my&JٓA2:;4a!/|jřo[#]V\UWz *=:ӳ:)edw|ө=m"1TRNOIڄJKJ2:CEF=KNpRMA^IJ~ReGM']6 dzgYYnJUhLi@dUs*[d/5h[(yV,f jۏ*W8{W*^6Җ WNm vcZ ߒOkX:nnyD⇧TM=]pA+@~tn\S`څے V1a"I ~y0IFˉ+oԴԲXXii}O_ ўJ 5[L^@EAM0DhSHnZo "o#do-^` ݱ'[QݧG=N-!2'W"hTf OtAH //5Jzy}(0~;x!SOPLpc@P K6OLkas߿t"W`vsmN5vns'4!!]֚OF|ɬ H[ 97Ux btgQnC|6HʜN~l"O#ԓOVeP:C%mxwڥ(8 endstream endobj 888 0 obj <>stream xN)-P0P-QHHP53k endstream endobj 863 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/ThickStripes.pdf) /PTEX.PageNumber 10 /PTEX.InfoDict 868 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 889 0 R/Length 749 /Filter /FlateDecode >> stream x^U[oS1 ~ϯ {Xع $ƀmm]I8*Z'Klv|l 'AE`>W0=z7h bUoO1Q>zɸR,BvKSLAPM!uXϱJb*gLGl٥ m^)nXc\3Z2&sZO>j168/-wŀm$f6| 8d}p!{FӅɕ V?/r{ RK0*6! (y9Qd"9 ^>UU {n ^V)Lu\*<`BIeӣQQmǥюhzVwt[,ԢPc·~;b}owQШUK6zF2,RFF ,H倧Q*KKjumI#] ĖiԜ#Q cUGuF;1E.n{'\,KZyO{ MN9RmnIԥl|6G_GE>SB~6ٲNg|eƄhD`_b@,i-I96V9A` >y'{*ΫgW[UrQnӖ׌XzM}}!s6R(cG*[Dz$gʧEvG 実U1FK endstream endobj 739 0 obj << /Type /ObjStm /N 100 /First 909 /Length 3247 /Filter /FlateDecode >> stream x^Ys7)OQ*KJJekc*SaD%nx9ofx({YLhP&J4L 3~2UidTS~Dڪ.T*DC4#@78V&v52IR`L*M40j2\G k$L ̘YyPA#M5ާQ 9 (JCbF$*d4E'^1ݓH6c)$Q#4 lOLiSỲY@eB,V %*d_Uqze۰Z8PV'@6(*1:S2Me|@6 ٓ/k4f_!|ذ5D*IMqҘq SK/j,`;<$H-lC"YaCEmGa?=h,2b#H'41[ĺIL'@L TfF")$ XƉ|YHlײ,dxƉE,2Ad,ss!c XYY-B`4l"%YD >ɒ%͙a2d(BI)l$2) !) HӃRQϮC%Hn @-dH ldlMǽn1U{gԓuIl+oE^ǣ,ѣ@D&fg48snj~8A~9`[:7~)&>Gnqx9:BV|aRNɒgn( d@?:[jSMwhԛTgHe]hG2_7 E9U8jfB,-!ǿbEhTW8; Q?qΑzڕ,^ϋ,,3Yo݂*4:-z`^6qџa/`Ѵ?t ni?ڪ ';6 PqfE ůM YIу`K1!+jyZ:lq$MX٪y <~EK 5fNlf>vݻd_ f+Zp.?-޾: 9etU] hޣk΍42My-'j>e2"YI j)8EbhV~Ch?,-+~-˓0ʖO~EpՄ·qr-i+V5k( ;:?u|3\棑L?U-+Q>]Jo{P}׳"WTʋ^SQi83Ai:F ٨hQNjdҝ[9~<{zO|VY/ϟv~xvGSX1^>*݌+GiըϰuNT `':{!N߬-)ͻrxr$Kr?PAn-N>Ǘ"Cv>bx2z;g^o|)gŴWL{5LCQXZ`#z+n-_Un^7~e/J 7=j\&#ǰy_DtO,><-W^NKש>)A? X ˳EՄAe&PAۓ s%q炻^M)r^RL) eTF=-('=%iI +aH-܂d/}*0〡b ᬊ2KFFe!aM(Q:(8QsEX3*5 &]̀D M gBMz߀g kƠobiÓ 3Nuρ5XE4Ggbɫɜ7`G4ljD~#~ E8xv9,!T):ԩMhp-Χ \UKHzpt7FT|>騷|-kՎD9),uOeSSZb@+WbpXvy6GOv/8l%G<싃 ##&p(1ppk}k۾~­d}ᄥn8aP3N%S:w7+%]k1 觓εwSʣ8UHdfzp74xϸw+R8"_`9>7œocg D-1C8K[{L:q#`Ҵ6@8oOn Nɫ;'ٴkfx+I|ݟl% WXÚGa9u(V}ܑ k:bx(wⴲhZv!YZ!IK1$b ~CqGDG$RGPm,.x "(uj*`Mܣ7M<쏚|o JYg&M*Ă\I·$>$' O]:>uԱ6ɃGď%mW 蠩s#)g޼ j=82EE)jJ$%A#3[NF$acq7}Jϯ^ M%,呸{BeM3I.I%@iRQP};4n 6پwVIq΋޿'ŽO`Թ%ԺȈs;sɹ幾Wr: X<*_ 0_V%Y LcŻ/ݖ,Y$@PF,3IK|3qnO7ܗ"{wwK{ghw|Y{h#b<6v;owCtUf:H> >>stream xDn D K@Eߎ }J/ 1sQǡ`Z!"wBLz_{\{͑'B~VJYp/ / J}5U̵PQ3d\$%'}xH @#9jm~ qW=d9 6&)<36f2"0Jl۶ }ғc"6YKuYV @60 A$Z%bT+Y/PO2/^F /kW+;%a)lyg \~R@F&B& ]F| (~jl٠ vI;p2Z< >_H"pI0!lq*M` ג H2ޜ3Ơ/k+Bhj r[4;<Qʯ_(A ֤.A4PLw6<52̹\1Puy0/!|fRx^*akz˭E+6XUAF[AĬl, ˹B@Q*IzӞMld&LzAn:p21X5 Xl6-VM7M}` V _w 0ngVŒ(t[,Os(K駈VZQ'aJg`հ1 )`ϯB(ӂ#wU/|S'-7{,"mm`7ùU#x醪`%e P>HP6q[ϭv9$FcB0\vK &ŋ\mԆ` `-6,;ة]vy}H][KXȾ21|dl$@x"d&VdŊ*aO=[7 GKwnkm2K(Ҡw63Ik+Tyb[9)F-ǴcsEWF)yƊ\wx;s>-Z!e Cή0쨶ۨoIc^|9?},zu l[a`!㜿T Fd_AUV l~Qx+TAj>m_4`y!!~6m %T#叁|}WΩ3؁r]`XRe\* 7BB+jI͋n8`P9dXeķ]X" ^Y;{#[JlqckSߌeRE9?0aE+0 ÛcKZm"M$({*c&[YaQ؎3, RJw4COHe-ڶaGF5|ki=.X̀d&}Bd=D|C CҦ8哀lNVc% dS٪cPum)X&aF90 = AݩIWvg+EV:=xӬ p6`C*7z/= \ t ]{L&bQC8xk !%d`ei~m?m,V@! Q);X/:;?Ugmb|` wA phV[!}{iJx3w{BtKt۝R Q.S{&ːjlxEdc(B.YeV?X֐ ,) |Jif$R8fw & KKO6$@FK.,hlx?ΖwAJ/)]IHVFi`z\&:3ea$iJ3Oؠ{~%X$ K4ݦ~0 V)쒁F1]W}dWQ+#f v¤2iN{t>5`l?|zȞf`=~\e:dvK`=?/LJuC-IvŃd{yщmF9{[-n| GHA%+#6OֽJV[KU|BV g:FVkM[MLk{?XZoqHd޽`$W6|gm\DAt+ 0ۭ.u/ ig'^l`Y_ğP,fK5=muXU!eÓS֋WiC)Lo7 dR9{7MK\YdnT 4+H' ,?t_h|}ƉǸ^wZVa-aPmzL1m&HW+6ݰHXlv ^I/qb<+r滨zbo֞+ Zf!M77m[lvKxCbF{cDtJAⲪ9w(]F*!LP`ӹQxP;# YVr\ 0C?{"{PPYWtbu΂LQE3 dz xxI&C=j3ؠ,Kht;F1PX.=%W" p!1qQ49w ޅ'#S[4reXO@4X\h*?5^_Z.~O$S4RLj[9 vawO҂F7mfl刄8<9JkCׁ=!bTFJ:%U,m* F"v:`m-C_܂`Wg0@?֟bh+ `\f_5#! g !`)f {Z؆6 >]Y\IlC AfmGEQd~ͪ+d}V4+,)whO` Qj_?/شKW=CU>h~J?hQ7I<'~sZH},aM@,`Ms؟| 0 CkODA*]4[&YS{:A 5E\JUpN4b`;PY`Ѷm?!:v5nL }n Ah)\o#Bkt\-h Z1~'" ZHSdHjOf+a4`i:0 2 qV{ ]RܜSHܓyO+"Y+r]ogb `#X0mw. | Vl+ `-o Xyk 3j|L:<aa2 V bמfEvEDĿu6NGo"4 G @vt=b0ۇ|ɨu+ y{hX `a`O<_ٰCmmg?+ A,[A뽋Jd`oSE! 3N* ;H4ر!wp mo{ڹ^bǽ:a> QkkX/rZy~Y4H*13ea#{A΅{q`mF90 =h"Qau u+(\%PѲEK/ 6'0`aĒr` *؃>t`iޘׯX62%[v&F.J>L`E:l0C#XhrX]A1պ @@ԿZ-JE=aVtz"=G[67o`؈C-9 G_~8MsKiGCTjMUOPkhab&}ITvVPb;ѽLM4 VXi% U,kB3U]qb .in2@Xfͣ[Kf2RaE (؃WEomYZАjҩ~߼lbQуTWΏaʖ|@i[kÓl{fbyc:Nj4ks|"HCf',/3%$xMX~olFTI] >7#OߍOmIW@ˆ̍y;d}{j)MxXّe,/tlč:/ф >XWYQx#v *9 , X V a3&0Vka۪TH}cDZXi;F_3$ ZcizC9 5-p- X%yTTV7u*01YβS 30k8[CIhWxoPN߄ Wv\Mx)-/`N˖'9B$R䎷ʈp~mE+ 1l_>!CIblnBץSⱺx,B{MZgKյӇ}Vg<*$tbviv85n5 hATthvl+/FdZej25OLRC Ri)^" s{pzI1VT㳒 @O"IEPn\aWĄhƋ/] }sa7#ZSUy: 6TS8T g0lB}C֗7xQ![ƨ! s܉`C<X6 isق<)Eߣ3Vq-r ǹAER%EC]Cv4,LH8OCM~u`F,:Or2zuzպ{nғzLVğ52[v>Za /D=lj䃏|mwػm53hCʔHYΝZRf4")D0_ȋHD 멉 Vt9)sZkQyk x "m,vuy=X;UxB?l+ @4šIorp`Mo%j& Xt-H.<}3.Ɍ#X U<4Zٽ |d%HTtq`i θd`^ọN~ug')g P0~3Ӻz>&mRjd:vKܦeܕG.+`3+,vOQڔlN6Yrb4j6DQW٥gxmbƋ^ 3jk|N_`IFVc`ЂJ18+aw8Oq2Wxqt9J@n6G(}WcUs/reg5({!+ٚƍHZSE~/SGnJ5t_`Y*]JT #D!3aóC)Ǩv\#)Jeؤ$ɂ@ӵb돒 əZu+sSv)4a'ԦfS:2P3%V_/3wvvw:6jZkضf6<E@_q*0'u~>ZA$qyz-U6i_sU+fj'VYLŵ7ƻiBEFhT3:)>Z 9c]ه$o}N"qC%ull'i ˢ؛I3a"Q~PlnQش7^rl)A]:(רX^l%9Fn~`[Ll]= ,XI#f7ll|8E_,.vn`M+-@y 'wᙻUWa{FF~ra7H,e>S:;ulYѠژ6͆WJ)sبFx21RtQ{5xRNmQHygo%A;--*Ej"Cn|0f- H![#οS;`œ= `{SqϤ= n;̢#w[6`/]!#Iu?Cld or aP!Xm`iI:yL: .Uy'n^ ɏ>MKHX 3 V.U-;_H.+EIdU y2X#\%%g / }I9Q Ƿ6M[n,*lg.vئcV_ywiP ,SU5FRI  l ,~,\ܪXߛt @e<;˅-1샸#N|}8Azv4F l[7No;[],R;o뵡eu]mJDFg^ 8 Zd IVTSAZC 5EluEC-wti.ώJUN F!VZXkL9dMZP\OPqNnYa:FJ%qT E-{` va&6LŢe}G/uiU  эL!H6h a/0^ ,.WOKōNtrܺC8k -tWa¶W/dM ÅS4eZ> raWN &XF1Pr[3J;6M4?KQqbT-e'3[Y2:KT3@Z$7Ғ]]9ћo%&`+{Md^#*'|Q[6=u2x<:x>kyĔ0H/]-"0OaQ$o6@u ;[U`*/IGM.q#| 0qvQgʡ4؟gK 4*˕);a÷|3} zl]{6LKZ~ { @/H>9饐/nc]A#h;a%%{sdx5 iN`=Qԁ7c+3Zqf &GfX[=D@lSEn3E~bw);7T ϡM[ C( 7u+0`׭mfYPPCm{_8+XP"xȲ[O]I@5ʯgC+vF_c`i[ʉ|3׍v?˺=kFLCJ1E9Q5^<_"{ @фn;C9TyYѳ߹!-;j/N[,]yob+tI̴F )7(XlK%\?C9z/GVUs w:(faSn? չ@@OWWe?e}_2L5PYgѢ4e&YdH{\);=^1E׉k;4Κy \9s&po(s@`vU9&By :1i[ 7pÅbMC2[66h3fzЗnp։z@ֵ0Ont15]X[:( A.4Z Bv5z]@&uLqdʮ~ro#B#֡FdcєY0@iGZP`ׅF`~ZpʀXW5`}hIyv̓UQa )$ /s+(>#[g лO%~z_ci  F VK^< 67'ua),RViR[w|J9?/fHaoHowDy7s? qri‡,jp`2(@'Mcsh nfkW>OpLy-thhgc}jl>,rJZsQidfw2V[b.GBHf3Rݸf7C`}R{` 3b&=O%`6n4ʕ >cl`dC}AW.XٷVw6 ff~l@e+EFQEUbV̘;Xuezԧ2gzb EOl<{ DQ )XĂ=ֈ5zthY 63Nu"]"С.1#m:yn\L/D]nv S+Qb%bC#2 _[`C Gl-# 0XHQ Gl1v^;@4j^٩ӦODȁO]l ?y< -bA3IeN4nkF,4I–q jQh!G,t_B|h.fQ" r61%>QbK 3\G!_Vۦ6 +971U3t7Gsݢ cD`o3rW0b#*G17~!󡳠\ʛS4i8uWCլ EXA,j"t` >`"^˟*v9 @oGR{R^43[wfCeag\f`uY2LV#'졉@ߴ5jJ)i Qyk{F,lmuYץH1X"b5d5xNGf!MUH(@#D#AXn|bZCwt]{1"Z[`^Am~Ͳ VBiO:gꊅ+k ̮ k;oX>ڙE:x" MF,RQ )rlg'l|HgĂ7)Bl rw6i qY!L4v""Z<5bYtFX`xzl뛵vײ/|Զ95w[˹.#;-8#~<$!KPF'h&GXtXaEՆa1"43bl+"bA@h,b{N`BFG,2_XHˈ`wrT#&`2s]ogmM{SޫK?qsK{ڇxĂAF.`uΈ.c.ePHv E,$Wc#f 187ԹlB.1"!`@ v""А";9d2V~B$\Xlݗ Z{!z` Îk4" "!{D~t8uCzw_UV-=<ط=˦uYZn rDĶC3k@Z> |\.ǻ #ЅO``p]< J"-!? Ne=-ĀRbiA&N;f4Չ5.$Ȃ,E,d$id>^`OEԶ1)P:Y}Kl]~pBkv?cGJr.;_^>~O, "!!2ba'OC=;f-8=?_R t~x%EAm?jk(WdZG$b"v4 7* b,a` "wdOHCGL" K7] @E{GE,хpF,|8sѺ+nYkV+ȩX3'G: t;y>؅Q2H 8U߉z!1#2oVu8Xsv}"#b{-05;#^"v"$b"bU~YszC b`I5̱ o4aF,d0 6Kb uz[zijpKg-?󒪒œ\a]!xH^D =B#~P{b6>|:DRw9`tFrjXXaX`;r%2H. p[1)$^fMܕ-baZX5I ˮ0@#- ˷Wն8o好=+ή<19,),}ќoWND@cŐf̢{)a*4bags*@#vG9'AEۛ:j/wہsnh̢z5cD,l-t2q垎:c냽 WY//'ww'/ F, $\stZiS4NuА Z-CjwPϲwb?h儩#$!Y=X$n5#Dl? 4}!^{/4Z&Lin_g9 MKMOmvG;oܵu@[76 ]|"pxn!"b'^P 1|";@$| &u ,)l'""bg#o)!9|hlw'gN;6 {N`(v6 Nm -lnh(XziOZilja {.#p](;.<݃\_XXN S: y7b CQ+aXh0uB(E,PΙ0uEmB,Ç91XMXXH@MI`AhyDMѶ`¾+V6\us[Re`ӱKa !ohm{P,|*F"GltW [?k Ev==3q%DY"ȣ1Q %QEuL@0-ЈZ`PKV`GSw/Xpų;m^V1K6p:Wr"v,k'h F,$z@ iBߡ؅oGAnw6ډ;ba "b; u"v"JB  - vɰZ$9l2drFX)=Swu.X3u+g-ۿ9ضS,=NgS `Ur5 \!y>"L\&z!G, n`X8ġήbkc4H`Vi?j N~lң:ӃȆL, %h#" 9bAK z*[hdh'bi %q xG,f1:f=F³.$cC/y<: XI"␈3abO5N휻UO\|n{G]goے{6 GvcXzXXI4 'n۱x7u,#Hbߖ=r\@E-L8"rPtXx jTh'L_vp#b&8gekM߹vڢ:szUR.^'~BZm?rs~4z"v^AwtO0j^yپ>h.Xi04BǁAMT +;>m7#a4؀dtSCPH#`}{eaEV9mx@(|{ WuS#d*oĎ%k.?qŵuum]dιŗ: VMyx 9z9 mJ W<iro9|  /I `a3pÖ<l.LFHY jˈ( Y`-ؿfUOfƍgWOX|xE]T;/Y[bcpFl'U#5b{ ^ ˱߃# ng5s*Jh,^A)x+lFz~j/f!G,ژ6cΖU]-9k7\]7qYo>.^TiX:dn?OHUwl ZZ( @dE,4Έ՛1 AeLCS!EPDxnhF"dG0N^mqS{&afsӊ#z',h4`V>lHuBG{q^f߅<ݘ Į.9yxT|ܷYPQ^F釭ރ^Rn4lT' @ H3@C*@&zz,Хi9v֬sΝε+&@6EH .B{'Li‚wNk5 SXq0r˥kd )Bg@crx⁌! ['Վ%#1t!;0 Glh "X`Ăb ?gY*GHxKЏ} 蜼nr`Ͻamun=aHmAىg~(5b!w!G,dEbհ|#/QFCT"1Ģd d.oWVea""b{ae RNE$ӡ tam~El>5Ԉҵx͜ ]-vϯjܵ3Np2M(kFAj"gĂwwFl/,b;*K"rb@[ "bwYy,gfNĈ^o,K\Nvql` X hN$6b{k"v´f͞>}b=:k^ҷpٮis?ضx#a 4ba=# OĢO( Y-bPF,@aɱC=D,FG3b'cv&8"v4yvDDrpQ{[Z8aڄz>kY-fX?U1"Q/XE@DĂ'\K)Xhs 3b; F,@aF,sw?J}Hx4DNFL푪Y D̈Ej'F,h}emm0|dEn_3ңi=x3! RD,>D .,.5C{ Q#OXq2JĢ DXŒXx!/DE,4f9ڧgP#43 :/+;1ɝ]kOjljlolZ{`vn[۾XI\J/3SE,ǘ*. ɅS@9LerC6`D,0%0 =52V| LEM,h",4b'XX 1}ڬΖ%Wut56߶`MݥogPSa9yʊ'pĂX`=!xV[D, XX`y`ZN M3{r.0Fd1;6&NG1|b& P C#vafuOW?lw+{M]iHu,$bnE)q@a;b{  k򂗹#Ov\b b$47YQ&D`$08;b+Ei #|ήE}fv9g4_Y(٠-nGX-ʉfF,d3b ('&A.q]=+qz``Dlf@" D,@X#:4 .qF(8o9Mk5sιSgn'ku9 Д 6 -Y~}ҙA˱`D40CqU$h#b1bX;V<1O8#sJGNrXji[L۾vfLeF@Jɿw&O,កT#"|1zP:njXرFx"A׋QNH<]t"2*Fb4`; twG,\D-fNK'Bw\!'Ϝطf<>e-&%[ݺKEdpN6a2heb(F𞟾>{¬,d|(t% ;W)b[cѝp1j N^W,} >߀fHWOYA{6(8VM0mƹ}SL}xęZ&Y3ucRXNJ/4̝ btCg(sh6W:c'1bD =y3;l 8b3b 14J[bh'SmFl?zPԈ߳p ;j8}Y/뜽>Tѷ4[fNTFDd4XuT"Ac PwB9 fQ DŽAXf@!G,bwBX 6U#C/bi},0k皾zn]l.(߹Y-8̈G-(fQcY '1:[ E6^ 0&uhv U @H %}88 &CՈEh>y3{Z9mΖڲ+D)4\nSK;AJOD" ^; u!3ؼv?zw6XH4bI) @ >5$bѽ;1MI= -tk0#w2۩[<&vN]4g 7c}Sg\d-F` nX[BbQm!'zh1Y &NC $xxa ,FZ9( G{ƌXl]%E,ʈ8!G#}9wΖe'Oֱ;&oԒ=]a2 1D2ƟCoP#v"pE 5/ЙxD";Т Nwˑ@"ul{1TC(21Iv$bApΉ{o^,o5asrd7O:}2:?ճavd)as<`O=|IbldC'8O8A9w·@MGLߴekN]eVme j陸VB/6[L89Rb¬ͧ*TLEEm=" #"i Z"MC֏ PߋaԆP&#G V1&Џu/ 4R[hE1]jؼعlXfɋihy w~?9tT/PE,5 gς'ET&#j u`5Ibf0ĩ :p1@ԉX Չ-!?8#vrg•sϙ5y{;:7.3m*~*+h03bkp< Є~c#sn #b19 G,@aX;F#bkpF,@iD,(fD,$N&,Y9s:yĮ[L0qP97Y[6ƌؙ(PbۖI x#z$l` X @A"r’6'2 >̈Of䮉fo_3yӖ^l/Y!ehkZ¾&LEtQcaHi^G, E H{^$wQ#b3b1xD,E*pD,YE|Κp򾎾9;WL5{WN|sCL9o2zDD(|{R΄*aF,|8) Q XX <*2X;HQYzNj iֈŋȾ kãK@X""bhA0Gɽ/<}̶u͜7q&.۵LE4,S5u›JfةЈp+4w6Xs.F‚8)2" X[hb;oL`3{\9sVg5 MXuB?X˚L879baG7)b!1 ڂkB4S;1wÂs}lo$b)1k 6&@"-4ϰOrL-Z?ZGԸՒ.X6w9{^7wn5L[A )T;LM)4g0Zǘ ըj 9Cbs/h5&4tA)p2JEaнETش\ΈEAcx6va SgO|aܭ2nY2y]+T īZ?a9g.aB VИoo#%]$"i> g"_ 00 7`:ȻH;П1 ̈ * :c 7aD,m'p3y咉͙yݜifN]}q;kys-ٳΙ9UV Vp.4_X{IB ԁk}٥>q\\$ }PAҴOl<x v2]͹pL(bG[-~ {jҽ(;bL\7I#M{@\Lx<z!guv5!aC8ʲ lӠm>S[<}Yg/Y -`5)UJY1k"ČXLhѢPw\P5 i) %pj*`Kac1/x BNLtV_gPNEj'@KcpĂ?~4bH?%p Sb*X .7mٜi Ϟp`1as2]Pmś.3;y E0xbpԂc5Cr k p{Z9k}Jc ! ȿzz`إqɓ1"+'q`,4a"ֈenyӡ+h9 gZl!0NbӶa7mlNгg/X8w.FXBYwP<TaD,z,K b=bqvCpϞh`dy v¬YЕ#HM"'b'ZBSĩi:,ba1 sًϚ3}e kVΞ;}?&)5 i.FED,3"h—PXZFw,baȠ`4{:5y z,b:i YM2>TRr,1r: MX\r'N_x,`.X xسʁAAeo/ZhEѵPs ,@j:l1 4( W{DD,@1L6fdPwҧggAU R Ch%)ba+n,H\< QZ.ӦO8u˷5ssW.8s6e 0a%W#6z nK8X`X?!1;l5b;4-WBQ`"cN5s!49cP ,0o,N@Dv\a˗h&QAƂq^pbE ._8w鳖Z8o`Y0;/YBr(Xj%8b`(WˠKV:JP`on "KR.l-Mx.M1(~m_l 8jL "f "xN#!i\-bۙ"^1#.޼f f\dᢅs\`mT?s ] +@y*ƈంL =>q*/yFĂ'N[x$>ba# CE˗-Ex N6A#vִi 9*oz :e-"Ătrv̜`ˁj+,Zzq\@iy>^YHl66̄.wp+t4=d FY| mdBGєH #bPE,xN!#̈-bG0S]}]V-_l1ąE,|Yb>}b&tF M-nE({"s+$(Azlbg,6p"ZqY;6Dl4%p$V(͜6w ӁfB9,l+6O'7]²+Fz` nTP (25< Di L@|$qAF1C㋐YgbD,T ^2{A'3g/X0s]~!/jnz._4kɊ ׮CDHf1 ׼a:1F.Y/_1 'gX] xXG,@aˆ!1tgZlXQCH:u8Ei{9_?ɛNuG)#VZ@fV| E~/RIj=,JVݔ7ZM[L֙]اY=ӱUECѫlo9, ˜ >'\cl(#[ D"KfB_İbhS9pgׄ,AԉJ:yNQ}T&58#v"x,i,6 \̞h6e+M`cgŊY3Rc H7eЮ &] l;wmע(!jЖ|ȄE ^ϊ-M = !\2i. fxĮ4Ea# :4E,={6F 9z Yw[&Fκ1"⨣H_.Rs,ɸ#v2 jYHVS.^, VZ;{ /;m93W_alpW,ƈu{ Z F"v hĈj F«^䡨4bA &Tl #x 5/'i#XΞX78^gM'_ dЮOD"ƭ-[4{ܕK@k.X<tsgO[uj1[[V̱V-MpV-[eUH˖/C'C4Q-b'O+bA Pȱ5azD,ֈ]LCs^=ɨ;'C1/z(^d 3Ǔ-X841aiWoc*vH߶m̈]r9h״KDJPi jXR3bgFmE.aɐ!=pi<Z1;b!yq9ϱEt-i HlfAG`'0HDhL>igO\p"xW/f P*? zNbv#b a1xue+`cz|@c4: t+/=U<x2ZW?fϝ9w+͟5wjϴ 'N뚾d960;[.:9^E(R7o޲eu+\6a릮Y LXL0߬ ]X+!- ,FxمўGlH_X2Dy"P{H8baH0#Һ^<]ς9 ZϜ2ұ3!3;g9L6wKtL?kUf Ά c26&/ysUWAFz({%bHع"yAΈ %]#p+Lf-R:>6440wd$#T1D3;gfcuY L bdnoO{ߜ/6`0Sb8f態@h[j8sX {x*𘅂5H]5*pE,F{  1~B_:Hxы>@:ȍDnDiAZ AA(z12(5sϝ0ủ9a̞kfi3YZK1|ˢE.rnfڵZY떭n[ 2eɉX|䈅.R@1,[mX's-._XKuA) ֱ=;WYxte.6}O;m܉lhi!5,_RȮG֭m\;{[笇RּGFtc ZKwGa , ,BE 5 a hgĮ6 5HeU( 72 `4.3, Ƣ=xN U[̚>wjߴ &UO]sC6ljy[V] rGz`Į߼n lDJjpG,EkEqW,+".VN.Eg1|Y-\Ժ5 2U[U18;`Ϛ6~*E=s.4m3/;g.h|S>}O9LlV;z=]nWwO_rh\Xo^OdĮuhAvE+-^j2"v1Rbh3ֹ f+W(h ɶhv=jbYJ쵐M(X(ހxhK$ޓ(zhY-m.\~5&Kx(FĩVdl  <4ڸqFbD*E_!eЈE1 qv:TH3aU^[3s:Ԭ -_ԕ:sK6j~g\vŲേ 9"nG,ňص^ WmW,[#b$D,z h=s%i!DE, X^wE*"b"2%psQguزȊYeP3AG_b…s.,AG-^D&F_?EퟶbekXhh f9`JZ%\h5V,̱8#ekDh#)baSИ]g"{9=faI>buA!b}Ё= 6)fϚ`9X|K@G-\P`Wg._j X /E*LdĮ߼~sEׯXcx3`YMlBFYpB9ȈEs)GʨQó-bX`9h5h,z٠է - KV.p͒%k.egxJ+]e| KdxvVx߳Vcmݹmcۦ&;n޼f%"ba!Qaf>Bٻɷk@zX"Q""]`ǐ:)/W/,]%`% @,5piϙ|͢96\[Wz+섹+]h ؖi׭E잙vƭ[ut94b^h–A!sEWϷ%"y!dE:)Ӆ˗-\y*2م,_u{<t#g%Cnx,(A_n̅O Xh%(޼m50[mCӜgؿjfva{XdHK=bؠ.Fa1 0v x«X;y4^"vْ%<0b߼d 4J,;k[2&zzyAU˖,_]vED[6]y/svleX5b;G23@tw/q\E|"=^S> tR.[pU˗Xlh9eL ł?4K`+@"v9(bɱsx 9!-NY`ٺ YUkh^a6#+8# HXxP%b1f`Oh]T5})5+ݜŋWFD@K@[>-[sxuof-[ :cp9 J׽[u筸g=0XK"r-tlDV< @]1 oJ uʼ}H]%++ց>1r٢Wmcgt +V.[|BБ dG,}j[m<97akw\y;QF+,j,bI`EW_c}/to0/.kK/\xŖL^J2?Z EC},[tވl߶e9Źim^fU[_pĂkF, 9*v\ F,@1Dp%ljAV Y+(a ]/Y|1/M+,[p _VowM^4}|+ňU;b7oٶ}뚹Y%u3w6wrO"ʝ ؅`1 Ds8`q""|$x|gD"dxa!:̾>oYZ 6#VY@+/{Ե"0|i ۶nYvN 9,1f=[7n\hİK( @f?d1l*,BU@X#"E:A]ɎXHJX}N8b7C#v⬦e),YÀrC@Cv]Wbv:[]kbXO[w"3}y틶l tתE7B#QX@Xs @G,@1@t/P Uk~_hYũwX6'b13 ZĮ @p ctugh0yjI'U5@6ʋ;n%-a?;pG,H^rƭ,P۱|ρ[[dF` EY{e9b<9XX΁T.yn#,}%eKvY/y׬B ˊ.-w޲4vOM]up؍kVܸm-f6Yrz,E1x"E@H 8P Q¼;f G,I8b"Tʀ \ZRXbE4 z©e hSh%˖+,^^.Ե[Vpz4qݪ5lY>q={/_EHĮψa  +IXbXf˚͐u`D,zc FE8bn-ƚɉصЅkAͦ93M|݊.2rFj(Ys+8n۹k'޻m-Ƶ ߅D,|w(f̻kL-iv+Tjy,HX"#bVP@ k-WZ>Q +SzLO`F,H9DE,JDcMJ5f=)nݼww^r#Mںj>0bOM[u r,֕-Xsqj-(Xdfz,X|M0bF,.XfŒEs.\|(6ot@icm6cȌu݂~C~^v3{dNI ozh{;yY)%}3l/#v6E<*iі={͠]xF"BR#蜈E  E%[N[9ifݹk=;wڿm;Pܼnmٲmמ-ո#ڵ:RևD.("y a/,_ )lm]:Gfw~eꕽw|ͳ{{K£yDۖZvk7/u5kA#(y v oœ[j{l޳ T?W,^{ň`B; 6nE -MH(͙;kJPsoYWX k7[T:6K] XL~,Y8,X> =&<38%:7)<.$3icN^~k_ yց'^E1  ʅ}M]uZ nuˁlGb숝Yo@ GݳT{^ [wΝkWX,ʷnClۢW"2Ȫ>;GA,&p2KrL5Դ5L,ݼbr2KkK ¼L"ۗ~_.޺{rp<\ yȘ2@6`wY_ZV_g,^Ywxx9ȱPmɂs?=}ls@׌,m ܾe)mfв;wmmMDml7[ւWbϞ%h_mŌH3q ؆fdezz&e$Oxlԭk!55h3h[PbnoCMe^̠I5]X*b(muԍ+织ݵfYg͙XV` 4jKc4D,<ȉXD HԮ\5u푵 I % lL,ⲊQ!!fΉq?vֽo۲- 7[7X>JMC[k-\> 薐İu; o޿u&z܁fO3w|`hvPD!nG/ .aú=4 kJÜm  C=89Xy$ 4L=3ݦ^?={߳@DX.9X\:xdU0b.\T`td F,|􏌈E^Zw @ @mak,/8_u/͓[l9sU6iRfZkF춭m{6AmGN.(suVJ9Ƭ0=9qaN.N>v>5-c347SrKr{^f{wÊK,)k_f3Uk@H!U "K~ĮAḁ"  ˸wGMO5ﳛ'/9sEF@ջ!`x=,mA4Dc.06nݽqБ06.:q!7%\W.&V8QIN_\L}^ξ۶smH[uMA"Z^_`=$<sv4@!bX8xo_?,ʻ?(?O?x?/)Y:NSТ[>/[ ۝;wkm87.5˝b~O{UBtns$bj+M~ƺp+9Pf`d֊nQ׻jηAc`pupXܳ;pw kfʕ\{r=L(T4ӕUVPa̚ϖ|45u[!?ooسz9[#Ag bbP9q۞c&~) aɖrXZVNAI%q3$ڀH0潃RLd9$WҿAwٻ>鴃P "*=TB/Ӄˆk]l ^>}ץ o_OS[AEC_QQIQCZ@J#,<#)h//\pԉ3.^nvhԂcݾu a'%bl߹m˞\ [aCT~]J;~+' ᵫߙ_]C۫S-L:Nluu[v|+d(fW"v"n/>Ј !ŭ,l߯WNi7eR41חeg%wte=6.SR L_^ٶxٜ3{llHm; X_޵}-[A=ޭvm捈EO (@.֟oh6ۺ[jHijYڬ9=oxQ;_p/3|u /` oΝbnyƱ +1ԘXx[ҕb)xADZg# Xb xFn9bum]>km[V,\t[z duEĕ9ߴSf^kɢ5fhk`dC'ޅV2{wEV͙?};ٸyϮ{oݽ@]%g[ b[oݹ:%("\2.EA]_./rW'yZ   OYԒUꎣF,xo+#r+v.( b1\L%qkĢ 6f]v0.[7_0=*:$8'l⎾ a!Vz,=a钉s%WL$D~_JdCΞ0m9sٲ{'(Sl:Z y{*$Ln^qm@/Y\A, < q ]nȾ|8<ȁkWNt%b%+OnjXؾy-[)XGXzօu#b5}W_]~]V-^e:~ս?qo>y|b媍}^~*b, L j/Z e=Rrˣ1&>|tu}v,)P޳g;AKH+m;odԋ__^${v}~_~Zsgඞ;O,08o4V^mYmVt@V JbnP 0"vE ݹyٴW,Y 4f~5vyڹO>yZ!?;9d[rrz{&6M?wpfGr0 ~f`Ґ6 EK!D/iϞS^wA d,jN\y8îAci0bЈխ xm7]4k׬\6o\oos72we/s@f]û7nF ;g8f[۷nED. x bK.\me'zD ,eym;l^6f`c͢k֭[xJ`w`QgvJȠُ>pБsW]rGovOlNUU0 3ՒճusRsS:?GQa;rj(/;?pleO\y疍;޹&%` ż@XeVR`3i;NnjؗЅ@_>jSl[rww^Ç 0yƭxsݶ۷ݲb:`<6b10%bl޽s֯Y|EŠN֕Wn6\@~۶]p%"+@s[llڵ{>x[ȑW߼/ז|x@SL[Rqb{ƄkEM8@:2*yǤ45wM>+9zS/#|] !y٭avk݇lu.Ђ]@ڲb]$En4@Ո >} `OuKjXx3yfZPa֝v[ƕ6+Kl/IܶA`8tX0<wXb#Gp*hy:8*Z9{ikgZx#OW;P]UK=ٸ uM]4m 5Lq*ߛ-֣+g&ֵuynldVƍhk4rN.-+.NL) r Mof_?,G|q~{pĞSwKXsvd^nΝoS1{7nۺe0bo,D,z 0#vŋW,5uْe˗,\ݲf=;w_qvPwy tn 6v[:DkkA w,4^$wC^&q9C%+ogw--3] E=]Lk?Hhg̖}U Ά&9A [ʴ{rJg2BMZx]]o]sT'r> Jt\yڿu疾0wm lح>% {ȉUh>j6`~̝p @X {*`\_fF`awf`|tНV:/ +6'^Ayl"oa`eh%sy\qZ̵d복!n z9<30k*i C S_M_pԖ꼤`oOO3oR9 (#AסfΜ:uꬵ;3w΃Mo߽yr`E:l%b(k -݋"s"frV`a EY&r.?m-YbZu=[2Ylέ){wmev*`1vƝA. v :ķ8!?zȁ 4eTmlmmuM 5r,taHz_Tη,,,i`g``dYbg".Z sD?8ǛzfO;kB[KsuRBKA_2|y/ֽGw`Mzʩ-fZVڱؑim{,[5B2X(8`^P"ImCL@CƝC°69t cXzn۸rD+}E`xk֭\xժΚ| k={nܵumV$*n'< ,Vu=CC_E-]mbj Ʃ"$%glhkmkkn,vo{7ǤyYr12+k+q}e g`P.ͨ5L*Liΰut IɊ KOQtKn(+)cKDϓG{z;m޼neK>}m^mwoȋXH Xֈ[~!,@G,-+W] i6 ,0bеˀ-;A{G,+: XػؾڮpCemp]4<1 ߾>X`) &kcic,`b&6U1Ll l V^.8}x8ͺeė@&(GoKC@ccWnpn<TM6l,.%η߲nbC۽}= 7wD/J`r"x lcrĮ Dy h+]yڭnYhm[֮6v\L7Y8g%Z~9g; @g;{:@=pc.Zٗabl"+mދ{ >\lqHk;x+ih%m$X+Jki32=``ִT heTFH{v_~JVRYKJnj߿yinӬV,۶umj];VEU}kka 2f @gP[[,XXI_n][/YtϚ w7ڹ}5+@˫V. .Zf㺝[N1ݻ 4LA`y;w~Ϛ¬@.Rq 8WT27v7wP0 -X ilge{?EAV0˖ekNqǛ޾ږ+- ń=7읽e݂/[nvp;X AD(z[dxhq Z"t2 @H Һb[6[x-{.[yFс[6۲dZЉH"׀6_pJRjX؝x?ٹ{Cvoz7O>sN_#(,iy&L66vF&% e2 򪚛j߁m~-kB4w^yڶS q1|\~f-ߜ`&'(XP7{텥,z] k\6w 3vAnpEʨX`5@b" Mm" u+׀%\d\ub˖,^(v-EZm׮\bp޶qfff՜l*o۽wl߳vm{?|#7{fl;vBWyo_m׿cQ8%, 4ͬ-mt$D)s(mp̩-)m}1Qb\\དྷ⺶ +yD`[53\B#Ův= KRBCN,߳m]{ݼg܅ZlK.ڽk59bCx {AC5{vnP?up ߳y;׮CX=b#nee_-;{΢V.YrЪ5A1yԐoX AW6߹n`4[С].{w9kYcR2Px>9tң/\03=)OO=:f抃װOoW14SQQ553$?=1ZOl;3? #; 8?Xzذ۲xɫ6-4q1,~m^W N?w ڻfY3=4՞m;k#s϶]A ؃:t`Y"UcD,@G,x. ,ZdŊe.X [>m8dЊek7O޵_: چٹe;'5Iޝؾɫ=u][j}ELMݒ{<7R VfsoSA&A1^&ECcl=lLՔYؽeTZv6vA)YY%55E5 e}Gc]P06j9lm])Q9r"rj;_2sCW̙=T,|δ5]txKvݺvݮ{W_uĊ]x=hi0=*C=YIXHU,? ̈ :.n^|EΟ3{ŠWXD;A56` :\Tn{@{ ߭]^p֝6А͇okNzxɢͧmv+GvudC)mE;{H&120p +3Pzwxs112V1phNR/".kkboW FvNd;7 \YY7EEˬ ٳrѲA Y>=z|ϲA{Yxcm߿~ɚ-Z,mݽm}Ё>LRB>[D,t]1@aF,hF7[@!Py=Xn ΟYx%0/Yv-iA#4!hTY-ٹ&94a$w#>y+[_:x  bb&^K^N.NFfN^..&^%21 ++,,l58OWVOP9zcq1Isaa`7~a/bV,_be:g]7 +o=w]7ڶn^94vׁ>{$bC <#4y@j+\p讱 -_bkH -z@%NмAi`3yU<;910at!`G3gsi ǬR/6SG4UT<=r k3sޚ3N)m`jg[safaYUUC/- mE>ȡe89dm|2CL=xMЉv=ee@`մqϺ\3ymk߻k墵v=ܿmFvmٿg5[,XS^P p"%bpE*^1|bhu AWlӻy is@iYo yqfV7޹n%ӢAC~6N[ l_X^>wݛ.Y{v^r7o<.e&' !+jZېj%̠rF~ sV6-U ҫz{f͝\WV]]^3+D, 㯭$ g,ɨض];m%y/;g5s>wږ[u]+{hw\wkmڲnkmټj:`psFEآD,t{>Z#@vlnߴ`ZwFЪu+t4}`yNlT:x8=YX-\j~bۖl?fڿyђٸr:g١CNyW|58XJWX;1Tj}f9}قEKfM>{rGs߄@4GtMlkh*,olnZehWY4-LCBV3_}{͟`(boY9k+fbyߜ7/^e6?fɺہa`޽{˺UlټkuВU. D-5b+(`E2vbXt#A.ݻ :Y4 X5E޾y;W^l~'-K]>{[m\<|s=rw]ϋbNe-S[3,3q`r0lVR^]RXSRZސZ:,71&0CCMAL#:6!/?+0SY+KSsÛ̝? z1g̅;aؿyڽ{WL}w^>w%r30sxڵ{ݸw?v-+~ct^" Wp#FukaG" ۂ.x/\|:`yh#ǀe+hP{#xX|ͻ8* x+V-`9<ؽ~ɺ=Xٳ<|POfGxGbY40i=Ս5ee ͹kohzSScmUcSiAiaVR\zaanISvTVh)f{nqqzT`T?K gΚ>zp[\0m3'={{pލܵ|].[ ̣+ܽfc7n;rd]]u@GA"@EZ17b@z 0#F,ڠdž/tK._7s[77[yVZzwdYӗo߲lv•k/Tg'<ԅ禕 n>8*j[[1P<{,,<tȮ𚪦Қڂ‚ܒFP*Ih'/D &4vt5e81qq2Hdpdi  (Y[n?koܿXߵ|ֲ{^kkvmv?l_jk:en`n;~l϶ǏfMb" 9:/ e[w{G+nܳ+ZjZ,#aĊ6=mɴ5{k׬[;uJ|se L솖,l\x-m UU5M-=MqY/ 7+#=%)# MEMYJ7::]T\]3!#-A]{‰+Z ^8w LY03gmٻXݶd=]svm^p˖۹qي׮|`5];tZ݊^ï(E,@1`X18euAZn}x+F fFAeF9t{ݙc{Y`=W_ KZ:雿bk[ޡ/J Yu5XAGxzH_ڔR]PZP 򺦆ꆞuQ˜ⲪҒ¼27e 5iݔ2ܲ@075`7VeL_1t޹r0ۮ:{۞Koݳq5{/fזE6ڸ|[Vزue[.[yukv޽n>vV#?E]_u7< @ _/I^BL1խb|Z׹.FpjumY~sՅEM ?^1 ={7.L&oYxVdBGO @r$EyU4DmL*kn)+)nl*/io/O K5cË K K SR[S宬)V m=m )+,-/ihjoKq3W;b%'Vl-ٻpm,۶svXf5sۻuB`]dnݽ}Z`_uB`"ؾfCmؽG>H ;<`u,@1`p/Ù1CȠȁF @bA X8]Kz]j:`w頃\|&uˀ5g:@CX]h~0 8s$\_RUXSZP\XZVP>2J ܵ*ZZUY {9#Y9sCm?tgmߵׁY+9|ċ_l 4d5dj/,lnoiinkhnmjf`hN|B2rSSrJ & cжdr`O}bH>;a, n뜾h fnߵns{Ys68`ں+,YqE]bn޽f᚝;׮ٶs-{lmaܵU"W@tD@&,B\$ DEpopܼeuwm[[ڶ e3:tbcO[NL{ys߾'˔L5d4$$O-loilnjji܆斶Ęb,8%#8/-)9nRƲ%iӻ򂲦꒒ڶ aްeA?ݻE]osz=ܖuN^znƽ,hKtڶ{Wv Ki)ijkhjJ:ڻځEq50ꚪKKʪk3CA ֖$Bee5-]iЕb:jJkkj:Yvݽo]2<'#<-ίzcCnٽq2`/o-hk9+wo[4-۳lU˖oݽ tZRaU@^ukx]DD6*0L=*fcGVxEo캵y`oo<8xܑ{5m۹eurJZƆRT<25)IR\*)-/jhnoD섾*肶 5U͵szALRr݄SW w)9{gso>gbPܯٶx]k,Ye'䯭& /6e/ZEB )u3}牳+֜ܲp潻wܿȺ'>wh#m;فSPMNJTIYYSKAIT`յe꒺8`ۄ:P? }}F54446ul fT6 ϭ]} O5c[]޲n% ݺpWغk㊕[[صGY8v., @lc0b ܩ4~s׶sC:@Un?kNЖ=Vp2*jJJ*%een3̺ƎƎrH--))/o, 4YuFf^uUIyCS]csMLX_g~\H|ijkjgDwd%Vu xJ_zmg^Xb[/\8b;׮ڲk낝׭[yF`NZxYMAZ^"rq]@0b!zmgZbhNe \'(()+(khkjZ9_XTW5M͠&# ZQX^XZX[([9;ëjjkzgvtN74u1UT1@ɦΞ;ߐvΜ#&qE ^9n@S9gmٲv `3aݖݠ1ݸ_cvQX <K&b?-%ܵrȄ]}]f #UYESCC[WOAzڎ`V95 dp-[WҘ4wKrFnYA1O7P3QZm#-שׁnjnVS;s᜺YP\#WZ@32˯g^9=)d K6-|ĎNl[quVl^jݨ -Z )":}Tc&',5X`npĂ {6ғMBM ZZxW27]^kյ 0b˫,6* t҂*`fZc#{Rjˀl[;+w΃Ϳ1xaG  adдdUr -I/De5A[~e?+g}i)`}}<`+(|s>)ro /(`'hX}=vY/D-Řw; X#bOb abxcj r ֵyׁ*gf/ߺ}ׅsbjUWW*Zzz-s 5u5#elYumY^AYVXhgn)h?Y[TSºzrYRtMqX]njj*.ؕU6}a`s.Uj7^6~Wn` ^RS՟#1?*"PR:1193?5f611q`b[6g,_sX: [+aqy)v4] @0b!jYv=oH׀mx.?)`j"VCCF7xj_m-T]]̨ť%eeIy QSڽ K{U4Ŭ'44WuV-5ť&647ܳq5@Sf/rYt\}NN5ɲL y;?><=ڡ؜SCQMX$zk0o+ 9vBOЛ @DD,u,ř/h 3ak7޲n-+ٲkݟȤbk`ghm`"+RX[]U]ʓŅ8,).-/,ˏt/̌Jm]fbe3k3BOQ\R_^P^VU;kMhuhVY?g칠E+]gѶ?=ջO|kMM^qڞ_N}谉S L9xzvFKeq=rĮ_: YYvi!@1lۅKȂG,FCO<(J!CQvݿk yڜ-{[WeM@[J[ILڪ=gvs#0+VTTT3kiY^XP\V4DKzGWCRE==Y來>1R\ JZ'ֶOߺ{uOݺyo[j݊9 n>$+>x{l{vN=t볓_ٺ a.x2)&ٽe-r^uDNJh]@:b!]VVu&'LUv.^fۮ104411164ӳSPTh2ղ ,hjnkkj@[X^ d$%S]B ;:g9*&uf^FlgM[aIU#hirOÄ7_:լ{֮[p[-^ j/Y;'xsONLsсU7?3dgU0j#=V[u`@"` @8bAK#19{`oO_qk= ̺*2 emBsKꀅq m\jW׀KJRҽA9zz@bs_o_^\{MfJ1ș?|ۀƆܲ7n߼{nh>i۶nܲd-׭_h[ b<>m[sgJPoo?oYwESv~ʜ_ؼr:̜@ؕcau,,w6 #baDD,N#g6%%WB;`1PX ֲ*)}eb-*Ќ,(>˪Jk tRIh7PюIgz`NKiqIMsKsCsB΄kwo2y2gڜ6n\ tVܾ~Li-[qU,_x+}.\ኞm|֮?ۻ|庭x2*zb?z%4"vw?'ˣz'(o[¹&5aM`F+0^G֬%޹555e5UUIڪZmyfbVg 0>Ը'Nm3Vӌkʋ)\ {k[Z&$NX۷53A-ߕ3ܶ~Ak0Aw%Z4t/7l\nڕ,_=k-d] [:hzzuywc/o D,<.0&vF,R@V6!#k#lתC+…ŀŰ ƭ[rל(}E &`[SVRVUSWW]][[][UZ]Wڐ\PeQXxMmc ̹k/%VaO,q [߳g^sڕsvo^xsdO̜u[ڵu㺵/^k>8tյ_-ӗX?g9H4*&a= E'b ZGv0o͠rs࿝ߨ$kXcP560vvN9POEӽؚJO,iʌ 4I_bA߄ƞp-McM撸eyH@ML={O윻wо]l߸fk֬۲yU]rU3I Z{}e+׬\qEn\ۻ.E~ l3{d˒u[֮ŒX0~g;@ ߀]-۷ Ȯ`pڟƠk`jjlX5C谨ܺik'Xk&7t4ՀqCua^Yc]iiIBrL^s ~KM=U=Z*~ uI=!t/ڧ;v1gמ un[fVݺeU[VN^ Zhᢵ;׭ lXmh:jrN`|hC>\ l_ve6l(DY% an/FG8bwbD\ F `ڶu[@;oKxĔܬuL- <âK.ZnfKAcPeel^VRFNhp  ,Zbګ32Agg{vK9L\7o}ܶŠ%j. ]3|.9+Vn-V9%F~͊5Pm]fK{ݵ~ 06" jK:֮BvWQlC Plټ q^%eTMlmLBJ'LkrTP0 /khh(/,),((,,JJH+(,)HN Y-Iʺڊ]5YU++MDgU[ :8eqm+g-\Y/ڸn2xݝAnٲGKBFւ"q-蠻%+֬Zj<:<K@7E,r 0 ̢$bbc[&$u-ͬ,ueUlc zu5jfbXfdVW54V$Fl^қnd[Q XL‚*W0cz!6,_ sWG-^j -KJ["v-dTs]f rם ѣ_Bc=b݆v6t&bo]~w{/ 6uKΫ?8PCXqV~frzVNN~~T\LxdBZJr`(oNL(7WӕKloM8fmh~MimOgcVٳ:{M-Y|w_` MMήnEDk)F:jx |0Ñ9&5 <  < 8}бdMH#lV[`BBngFh-F,x=bh0G,\hĮ۶t䝝V) =JsFN-KkšΞήv /Kc59R` ؂HJɫ**,/p/ Lʲ46ՌKNkZ2!#9FC9o V {7C#v媍7/3{xܺ[@wDiY :tFHBQ#v# @ WH6q{t1@glevaJ]PC-$0p#/&9m®'u%'X+*/4'8/#:ѡ{uvzO{zLJ݊в,,LӤlbOAvw7- *߸j[>wvGKoܺ} n3J9—`͹rҴ5 ;+!K@\Rs㖭6<[KΫkhѣFA˸ɓ{;[[UT桧kRPZW_RZP`,y%iښhs%}S5􄔚[&ԕ7d([wt#6=<Զ,-+L\x7^"},ZDZ{bہM[32*)|gnyzUiuUsYOKkAMGU A+:փjڈ#vz[i3iGy7!';ж3\^ ab81av5O/SSVq -+W~JQ̜PSUܖnfS_][WUZRXXW\sEALC3=7=dFgZf͟ YS,\yۮ]Kf/Zy:"_XhuFT+WА-ƚքp*j؆Tjw nkhoFlmmU]sYsZMCuyMCr@RC]NFhAjnzJJ~qiyrx0)bQSбxe.D6ԓuNWu'$ttv5(R67K.il(LNJI/./tuMU`1h^Füަ=wT : k:AW]0}󮍰]yv\- mݵJ@b#&]uH~,da"HF] vA9w0D,z#۶f9~`?eM 54B׃UYP[9-JE: uqnn^^I(bksJ4s&7́^:VKš$'1+4wv"PIuUvnۼ RxD,LČXp")C 5+aRKDP f]ұ,Aacmm}PjiZM^OO hhjX58L[T&X6:TONm+Hk) r@Nۯ]"EEaUF']6c7C2UkׁO3X  o"^}ph]hlooN )nVֶuwWujWFgfee6烲Zs]oBZ A=-u;dh'wF,0az XKhr{جzRUPĂGU.|bv -8bW !["ЮH]OnP4641156q ໣$1:s>qZN`xasKcsgsyMGK]xa]uiqInRBFzz^^fnYc[USMJR87fU|?nl%eejmT`|Fk]j]hA!6c!"[!rA`k V긢Y̤ &@TX6sּVf60ӪhXdtttuu4VG-sx1;!0=Y[IM&0?#%=%= 82 ;rwCSNqaVJ6A8K}S@}Cuh[3 'v| FdG:h3%щU"cw(#v*c (@ v®cFS'D,<$]Ƣg2XK[WSI2 c;;j2CF_MNϫno*.kk 7QVQȬ*-)(LK(,/-,mmrk/j r'\FlbxsyIq~Y[s¢m۷_yE}sA-pbнOcvb+!X VHАu53jOzzZZ* }]]-UMщWUն56tk**f禥d3oYCcUcsI[ #Ks 2`G5 ./.(>5[6ߺ}ܶFփiSayXbm`@+Y"5P@qHErJR[W#nM؍OqjN1RTQP PY=[TR\\^稧mV^،Ҫꖲڮ ]̴ܼ]ЈZRZeO_FNpH̅u, 1kZ>cձ P0` )#= @Fgݘ u L4Դ4]M̱5kKp3xܲڦPCe- ڂ*`\T\;DWldhUq^zJ}2 AKL%쟸fvAÉ79DF1"" .n˖u@E1({V]ڈ7&6,@Q21"=9v"}6}}`sX5Հ@%g„҆DQ{&֕66+gM%݀`)/%.)njAߗe]jB k=Aeпl.P[|JЉяň-2 ݶXOVr8u,dj؈2`P~~b#=v!ҡ?<Q2:1~YrXS7/omi-ijhj.i L݋To2`*wNo+-(.Vu-yvrɾY%ei5vvF͌z'Ξ9aƝlEha )oߵ9^qbX5)  P!,ҝn/f0PSԃ% ---M eƚ5յ)% UeeY!JrjvɹJkk5|Agw(͇B"A8r'Ο3kuW5lzĐf[8#znYΩu"#okN 'baὍ2Gi! (k ̮JVOQIKKM2VV4lTUUX[]X3yQZ@tUs]UCsmNsHVs[MI~qucSSS]˄:_q9\,²UlV6N[daSc6έwvZq# 1ߒg߸Q"6#+i@TDXBD,rR;b(1 hxہUut!l*kk+*Eu5TU74#,-<2&#*/LCN%07WIFA3a6;2l>轿=YUe .[Q7ֵ':}喍EFTkXH䂗'᫡X'NXq@[Bbts hijiJ*&f*Ju5555 %i9 Jӳrꪫ =MUUݒ k꺚UA3ےCsCKj[6  -\U~ni8/-ڲs+ γסf4BL 2@:I[{H3[%HD$" D,,X1#p 1 nyzN]M- -]PjkihydF*jyd6[C ڲesjeesm[J155uLUҕ$U xWhLaYb h,mLBa{iO>5 ܆7ba'CjGxK I!vM  'eLЈ |,c,ݡJ" m.fִ6506666Pяn؜ᠦ,dPUV خ ?=)_Q\SRh"bZV^X3[CTQ$U $ܬ`A!)m]ȅ5k&h8ݚk7o߉'B\ӹ0XHBJ_%").ó)"bA gPöhHmQ$D(W10v<]zhcaR[@<קǯbf ̣&zЈS1vl ,crlKf ssڊK 3ӳA\_hbaccM ƦZYŅЛ)g;=+ϯm*r2s |#0xēQsO? jwܽ 6 > ህ[ x(fAIصv۝!«ocZ M Lt5 MUê&tut1/@O_OMY&%?0+#l u)*$*)RX.sBd\_۠;zWUuͮˬ]QtR5oB ! ]G,1ǍW@OƦ&f*6m::&"6DCESO.&4'8''/#O&gE65i %WW[ihGր̇FPĽ10z~2]}[Bc'""#Xp bݐG,<  mdE `#'=3<ې0",hXu~XC͢&&ZjWtT<eAlM1ՒalB+k{5Y-řiy)Q C>llJ˭UTsLkVӖ*Ix4b54̩6o \.k'+X "%<oGϓS\ ](4 X" ;bAT@FHݵvqfZ(540041P61ӕv,<87͍t֖Sʩ.)/- W[USi\)'ZW[b:k$ZҐW>5LL<<5c D,8=K~3MBТ 06|FeK:*;{1$m3ֳm[6zQyU] - k Y]ںu a4LPjCx1csq(u:L D,raVxB~(:v;n~Lc^%+sC=zjzVzj%=z[-a` pmhOTPSRֵ+)-(H* ,s`VMnnJOyRsoVhx "byE&93^j.m[AcW""#c4 =1Ε < AD,z- /!6h""Xٽqͮ'˕̍AS:ZZ~5&5749ʊ -꺆ƆL;}%)ieM겒̚]3yDkK6FJ+( ⢾3o n Y9MuI 6u^ ϖ6;` <QX0SňXt'n]v[BĤM@kt-5bZ݄]M,X]RR[XVRj&!.kUX9UM59Y@ۣl rVRP͟[h-POxV呞Uےhj|o^E%(A` ܘ$z}#7oܼsڭG.(Y*ijFḾX}.P/X֕d%'eWgjiIK8DgeEN_طLQFSY8ezc^Ny&qM"x&rWYMSJ`q]{ȊXpC }^ (XĶ h$"bk6nۼ2ږ~)elj_SVtTWdf$&dAY~FbdZMOmZbz^aVbF/<;}%j[Q )L=aEW=E椄$[^2;ꀭḚ3%#2#|qBب@QTbfTbTp lvȨk7=9N\ԃ5(`ͫ.kjM-UUUUYYY_\ ttqFwV̖‚I];}2=dU4C3 C3k6SnϩN/5`d ZP^)X`6bPЗ/nlہKdFގ29myAZj234310`- K`PRPĴ􌜜,`1Y\cm +",!+m\fR v4ΊI m=Z+䜜>$&%kJl@#l[3"bB'1ftJ"j{GH0#X'OMw3u451\;ߐښƦƺZ`ĖX`%[VRʮ8 a@Wd3gbZRddJiS]r_TbtzJ__s@IZEJZT=49=, 6%TVJt %zbNLrVVISGą[ܵ@N‹C=M bXv?MDk.cF("pF#GVyX{jjZjڹxG[{%45;e%%9)6X"6#3ttZRR20ҋ˫m Ք |’3cKgjfdQPTOHN9;ͭzI遵*!ޗY3{;7cdZE,t<q ) d™iqG, }pޞ[[RuL#"M Jz=:7+ #1!=?/3ppbEu4bD0zR[m튵[֯Zet;|K}m5ЌܬںyU UY9uyYjA`TFs2c`vz2<` ,ss"]̔d²7v{,CKnW - V'GEf&ŤVuN_mcq FYu#lNfCb/b!x0 "v?5ɉ-V88/671JOE% 100&47sY57#=0'+/Y9ڬ̬h_+5 A)mҜG4˓C.4b21x@;m.KIJ,).j뛻eAX1 ɯGxG$C>aD(>}ck#3kBr'Lv6PѶ  I,ihjhAךҪB` \`YXU lQdnvhs232S EJ Ңsz Rt~Ns`;l@A YX,bʫ;ڻg5(+F F @#9Z{cE,$fѸ~ l޲qmGETGjyzXx$47 a`ҪB` ̠99yI8//$?=99Ą$ک 釕7TVWgD73K\+G?2ꃻ%܌;VȽ(v(XbɴŘ>(nl۸v۲<:BbC-r L<2KK r[Wʶe-IOHr b kKܔ$`X#X&d$Dde'k 'ۅOMv) U ֺAl0b0\>YW^]V^Իp~hK j2҃Ak+X|5j m>!%b 1Fحm߽}QFGiRFaIUysmWrU{G[s[]SS b*//ô|мNFBJauUI>voZZ0ҳr䜼s9^Q̒܄0OgfЩ!sb"Cmcn<Qe)yIiQeú6("+bO5Etރxc{ix"؇4nYyUY%zRJV9 v&f=m M U *+)vxA_gfd%& l;2r Ӂ.H8714<8ZMJ<X&xg[{*k7G6YU;BKr<2EZ44+ɉX` :bL;baEU[^P0.4LQ;+4L\(ݥQXʱ%yY^ONnAA0b3 AcSFqJTRV~AAaYnFFbLz!0z9#9Ie= r4#b ;k A,PMCcUUnRRAMYqq^VV~IYYI~~Aq~V0 xsi.OJBtdxxtRzpdZuygmA rDvutf s'Ii+Gyx7x{^, `ĐƲD4G, b8H`!(pQ#4T\>W"ڊB?uωC c223KJ RµuCS#3[@g81C 2sJ %nn4悮v]h褤HIIIL/ /Sq./OwNI,_ab8=4b#C@ipxaTRFrrz~Usu{6"6>0 @ 8x6AtY8tBXxzEABqS["3K2Sb:&:gh[$wuVKV`֔fՕ%.JJAoa SXWX\e`b`'69?CF7W4))*k h⣚L؊fR. xCb&0bJ'.yJ O$-Xbf'N ̱""v^$D,FG{[<&B?ЀΦP`"?09oԮ榚Ʈ{Z[+k[:JR}ژА@_O/P?Ȱ`/7owgg[[Sjb lfj|~Y!f"5))M, j o˟ 7Է4[\ؿdہH-#h EMXnp!?bȱcXL܎` -f7-?eBCUt]WK_\ttJ ?#$Y`1&=ocm}eM`+,*#.),,",/"! -+'"! ZY zUGNumzGBq{rRZ&&faf1M9N;QJPG` h*6+ /9y ߵE"=[v +J|;ixvvUE{zkȈ0KKP2eXeC^Q^>_v^..~~&,lH/30:yx98./P;,?4/aNmMW|֨ի/Y]ޑxSn^{tK{g&44u\h }P:ܣh/İwzsG[]-.̕'XH9J޾}tNd۶;>v`uXxHpBtxa{~dǜz 2>N6.>>.FvN>v^&.;w`cgf6` U50i_vics=^>etCگqYݎ>X7{Zm=6=˾&pǨb7bD, `D,Rbزp쒘޶#XZŴX koQ4wj0' ;0rcHIlXdadbfdb "f//:`>VbbҲ2Rv ^2"ZkgJ-3yG珟:tړ|6.=BK[k[z; 3eVS,U"} Vnܽ 3on8U%;H'R}FnFm@wmuΉiVa}Y^ Pl3 #93R2rr K@'oٳl>Uk8Gz49 5J϶*ùFr[M&҇̌bRƞ^Ƣl mw6lcD,z$a0f_ Wą wTzGtoWɂ-߶}07 C7rP7bakڵȹKO;qkn=xʼnjA^f$oLhtbJzzfel߳Ξpҳw^<~b h\O'=gUKL*ԖJbzQo`(DܷkW\-A}xZMJ@.hU_K٤ \>~.̨oc`fcȴus\{]'.=zw~ƴ褼꺉SΟfc7o=x8wzC xpڕ Gm<9I34ٓRSfggek.O36`~ }+f 2湟6jg{mJԶ/of`f`avپqu,K8 :@ eI5)v\[6k:|>~J 4'N|뷯\v~c{rbZ~7E$2γWΞ<{'f>wE}2*cj&rrj {tTVVlYsH,'0;x:VTCWߪ÷ 5eWU}9 * r5"4- nEf뀽EDi>3 挔Q-GڿСǏrpN=;u /ؾ|h`0-@pǞw;<0TYT[Yˮy1` ݤ +w*W3QSRP3 3dUFXqUYIaaUMA\h\n~xǸSA@O@@_@XBNQCQ˶o k&^`ɺg{|=ow?ھf4˩@ևG/.5;l{xX=5Ӗm;vcέn\=gϞ7arĹ\e[W]b[֭Z~;w/7sl-rوp ӫ{ןtr֝/Z5-/jڵ0ߵ擛j )xC{[d%K-[|=[``P͏3srՔ77FW{]GqZϙpk~?j0ӟ,;n x} wGJ$ d +99ܯܱotKJ%yU틗vO]?{ݢ9gNS/^h6ڵ[vm'yUVYkVjb"g @ .iM 3f={բ:V,KpāCGHXoI(Ak:yҶc+N.]{Ђڶq 0BWbHXx2w&faaaY 5e~`uCNohV^aymsGOg{߲N]=< wJ+\U!Žx.sI W̙QfଔPGghG5i д^W!Rg7OZ| &Ϛ=s5ׯ]El۶-׭>kƵk׬śXRӔ>m;K; :z<~ GAʖ{9pܥmkLHIꟻg…xm u f6/[s{Kx!rw=o_y4 Gv[o&v̞Yh^,%*%<&*TXET8{\_LV#;sִqˋ;l\>*@MT-9{3NΫk陽b'<4͇ٶlEfϚ=wPb][Q׬] #Idއk /Z^RݾdUv== }88f={cW,Yԟ<κKwo߾|܉=zhk7|~cW_:8^nus3}yqsmZٻ S B=m 5_nmh`].5}G3mC]%Mm)-}iN6N..^^>.J Ľe -;;x]Bq[Qf,[~͕(9n_l.X,vnYs5V\E_@ f7/:vnV!\fť=:ra9.Oe=ܵym[FfZ\u]ycw8O>ݹ[7n;}ji7=;-''<C110),IIIHIK ɛ43g$w,ټfeU{&̚p`?oŋmmRPMg_rGqpjA3K ۪Z+Uh{w!44!!qNKzN"Zݳ23V D`i|lDԢ]=LsS';nf_AT]U^Y=yACӢ;O]u]}CGN=wǗn}.u(2->ng[y]mT20q]_}[ׯXmˊ%6WN9.L Ok.ͱӪIKg{^ȃKݖG;}e3kUNz΂/߶hi&vtL:u'N?oß[s-[bZĎ Q@ j6iQ)}f%FL~ugYqbg=S{X-dxw.<87-=~˫kc/cCWmY liΞ>$Ge5ΊO׳rw pӒrS3,,/iJ;]@x{LNnMτ{@hWWcCypĮܦ1Hn6]Q셵yfuwϜ`0/\b%9bUPW_GorHe+}+6'76U5wL>k.,ޯۃٵ ,9mEtco۲mf5($ zbp[4+Ϋpļ䤤i<|ɳL.\(w@.ػs]1sm,zՙ9^a =?gKlY.]{K.]8ɛ&DDD{:'9ȹsF-CYYEE9Yii ‚\M jQ0a(u-qх5) V=1Ζ^V.U=5emuUYqJ W[8nslj ҁ ˎzz| ,4X|ԮڒήKVMl&~ (wɶ5+o\:PWkp @ 9:WNK +\qSg/_ސҾ4a{@Puŝs'[mnٞVֶޭu%'GG{o_e\vjx*b b{ صDڈVUWRػ`jGO_sMUqf`9\^LJ֠M hcf\TڒP7OL+L t Ns204ԓӳ63Ut3ʩ9} }WoU]Xf74Z'_` ]O/=2wќ}=uUcr?4w]%j>aɪY|%0(֬߈3>WaԱ5@1XzTjN ./ܫ`kGvznWg:;gz!X7U=ڮ,8<+&i N]vJly U͵=3ןtjsۂbȚY/lx^mv{g`g43}G1 YYi))Y%m9s:z&nj)I&)iD|]\m5 )xy)(i6ݜf +#%%,"&( .?}3pj*zgXuI5J]Ҫp/®޾?nt'wΝqb`޻ {]'5+/YL+VY#P@1hYy&G$zds[7_:~: dܽgo;r|eu헮Z6 Y`fמ=,>'OM]=s]{@Pb=X,\…W/? [yxவ'tԖfdez\]j00r G,(0]nkyacMViiissxeN{Oow覀CB;8w:!oݴ̚n5ځ蔜׾nc'/) ح/>JwZVhJm$-!.-|"L\* ƺҼU%F##҉0Fعؙ ac0`dbcaa9`yAQ u9!#0e@gv`Ҫi -^xŲYˏ\6 )3gӧMaZupxrGm޺gvGqJW@d\G6߮j(:71T6~Nv^1YaƐc`afdddbf`g0@afcc*acg`gffececP2d7,' 3zY (UUTw -/kn] جz5u@똖/_Z5q+w]>;?wm_r2pATXȈZpBJU+$:.8R?eѕOdFyeL[ 6e j;/h9xmmZyϞ/>ĩS:|굍{eςӃ+] "mm`., !'Cr!#ddHF.iAqfHbb;(R88Xgc T!ȰK@TTVMN\_EH/<'!*=:X]@Xt/Lv6FvhŠ`YQءٞ.1VH.o[e `i%`DZޕ+CCMVtނj$/\]ëS˃ :r;/|r!O߶n.`[{6YuޒZv5 )$gg_;vNa`[iruW~:wŃg,6f`b琳U&p/`A }A9~haЩ='`aUc&f&^`i)Jl%5M 5041T6)+-niʳѳv6ՔL@dD j-Ze ~6Gc'rdRUpfvґ JJĮ[-Wr+!9nѕk⹟~?lqqf[`Ǣjꖉ?;ಉŻvڳ}۞{o-i(Nov8<\d {.J<lVO]9=߻de H36Ҷ.J``gMQ]^Y 9EEE`EFAIEEYYYS47 l&&ښں^~Iyv\l| VVj Jr *ZjJrr"ә5L|3rb r"mEx9Dx! 6$ -}sڦ.Xĉc@0/Ym.:y,ZbO߿\X@ [ \lZMVL| ξ!'z؁={!w> ?,`o۸yoV[KrCc2֝CZV~KD!$oQ $)&G^)e%e`BS؞aabbuqqNHJII  ՗3 u N.NI5W64TPơ/8y t]xʩ]SWl?'tCD.LF ;w _|=.9+ ts KO[13)2j!;ƨG{woݸ|O`{gֶW7E&U_~uه{?b ,` SX YfaapDN \[8 چfr\`Q3w LH OHJLO t25uҕ366110s0PVQRֳuv5Ԑ֐cf`0w s }l+!ڟWBQME K p H,.M 33V`\\2cA= lZvk7^8-O"VI.KTG,f#'AtKGYaiIWbxR]CRxƬtg:ڳk޽=vUI+߻{]ܿn;lũ?rfڬ?Z$gI@s+?N`Ka' =LL-P/ uN5445ٙ5 MM M5dԤ99OACTL@CK2z)Ihaf Js, 3 ;/0r夕]BJګR@v&| f 2 K .>FN`O/o{6b~͙pb8E,0A+֬ݳm>wĮkJ`ɊȌwf9;wO߽[׾С={vm۾{ν޾7oBK8X0/Y{k7ؼ>^Oy |<`633';' 0R:1˜EJQFVI%(#''y!jRJr:YYQE@ 2R|U63'3d 3df]L=<<|C̥b,M̌ Ԥ%x9YvfNX$cÛ '}u=Ko߽s3HE#^w_e]GN;nbM1@1̚ZT1wAcrR^_NbpiG?pd#'#ݿء//vɃعg۶O=^\{|+r< O>oI 51v`Cv\XX #/n&qr]E |q"P#5D@A,v^^N`Tr0C5p z$l,;SVf r`Z%LT==<<=llm,L ԴtU110N9KCC+c >5ЭǷ8uk`чiec7{iqrq [\n_%S'4g'yǏ8wĉAt~mcW=N;iG~pO^lVP>s̿ A0O`h 23r\A q0-L|B݌"̌PX) 1s9##"f!jXPxZƯx̑ra ݶ `B7ؤT LL u4lmm]=\L5s8;';(,T [ޱN0{5l]o]95cC*bHI uvIgUK:kY1ЕN?{_8{ȁN~na+8yΜf8 O /`J2"X '`eb5/3dcbcfbr10@\eD^`j223O@.".`bB+_Q4#q{ HCΰr`+YDTJ@1&Oͮ,1ز02PC@P]{۷[e'9^&$ >>>yyAr*= Ii`EB$),E%@MCPb ˱I(;&hc@. dqM&Ѐ|-8ׂPPY X`Q]Ta c]Щ* jœšfQ5PXLFJTXT\\@BYSSKW!,*VMA\h 3hȊc=#K(ݝuD0{GO߀`77?Ĭ:bmzpQyZVFbVc{ l'* k:rPW aͮK7rvUWT*ȏTeԖ[cCR$MX h( *(",*#!-#!ci!-+,fXo0,Be%%'JbNXXǂaa̢3cA'رD,#B0͢ X&DLЈQI2bR⢂ ^FzRX# gRRy gg1bbWЗfT䐖`J,Ҟ&Sq~\|#4f+oٺmz2]̝&#RM!8\T7,cZmg.\vn4쬭V2SJ\XTXXBLBVZZCCVIV&KU +d8Tn(n)*) Ȁ\'!9K[. 9P"&~P$ 4A;z %"Z\\||~Yd:D+/Ypʭ&;9:z$V7N<4= cÍ5T4R z mMSV:pgz{[rm a^~~AQ) ^>NvN~`DHq- qy;?RQ4 .p*ZfP PfD W0%o I`a`A#YT ؉A:xъ(ˤb*yWP9XJ> EA&pr`VT^+:hXJU|Rr#9]`^JAPXNZ6zb2#Ydii[nٲu+ˆXp1 Yrɂe_۟Q8k'v4Gx9w^gCtuWش`Y[tU_ ' 0.?/d\|VSw>zf 0sr | k13ódDZƥ` `STلe,D +ɰ#@QC q&5sEFpK r)/ &(%'R$0N0 xl [Q$ 1+)13)ˁb lj\ "6  bP63tQwcO8~٪U b[ܻjVKuG@oKkjbH)Uw26s M 07wͱsW<;R@2)39POX\JOO@TZF X< YNP瓅C!*/.%R@#|C W ,pcWyOT 6]PVXNWVbЈ 7 IXJ*Zd`+`gƚ!zCho4WE"X6e~P lC1r++궋˨hdX884LEa{mkWݸY˗ٶk휖 s33SS+[i=MĐfZ{GBxVmNxuǏ.p Nf`Rv12a5%$$ddŸ8`m!JiKX1@L2\ `cgbF @zr \¼l ]vwUD,D\fwPĂFR \n@;ee5@S!N`3]48f *E9EEdD@rlv#zrh(33:l$:xB< X gbvN^Ek:j&/mߺk0;xM-Yvi).֑15]&t8CaZ+W465gťT6-<ڱsgX3Z*1r  dgbU nXn .epocl|LX0Bs-(Ĵ5ظ * 50!%ggUv4<$uKu)("ce䒒ab '&+l,+r$}2C0*RV UFe*f;//W$am&!b˫]b纵[Xd2`i-km=8=7-}9Օf-@1dtF[FNX7,70aƅssMU(" ''"&&R^^N.~aa^^>NaA1A _闱[8aA,,L3jE hCjc&x>䎁MX[M}+P~dbMs6 >Np}l^$(s0h4O4;$H`c Se`fgaMϵ9} v%vv&P . JP F3ٹT eAv`ANA]I-ܳsnݽqmk#vْ%WYbmIL+?or[KIhH]hRFICM@1ؤU/HHʊNj6ss'>[%+o++ ,F,IrjNx W g "ן*dG2!4&[iϴ.0bXNN65Wv6.lGi e, 9,l2IDAؿFv0] KaS_ ^m})P tc!5>|*Z2"F3;d< (%, $(̤mټf:l5xƍGL.n*iȈ qԶvqK.9- UTZTСv|xaƖ0MAY-=]=ĄwNf`&t)?$bE )A )&C/n]{B J5v~oyur(bփGja ;';( XzP p  ~. 3(bA|lRlfb",ťLA! &Zc@-4pØ Z 6%}EaQ)`8x@ (@q2ANKAk*#UTܷsŖY~ bk֮\`ɚm{W{ۺFt4uLl+/K ߰s]Șڞ#?pֵ-"nC) vAhB-c vEQ~YӪWwG{O*c ڀhA;2A.v`ĂͥA3l9 &JaA^6&N)% 6.>^f$8+q i~6 e^>=}HiK%P^ ^܃6<4(h5 ?CnwTofCHLZ[֮\X.^jdCeC[gھI2s13 Ș@;@C19KwCo;txBgw=[Gېܔť6q>!X`؈XX8 ސ8.2$:, ]Լ2sĕ5$4cr&ڶeƹ9v i 5Iq&ޑz\04P ˖Y3tݶeK:t.0bK #nR-fЫY^Ys=`_\ Ð QJYDW KTP4+("̱n((juhNعaⓐ699AM|A`FXZFOP$-,`jgsFsbvn h (5?31Bo{R؀]Xv~ģ0?#h/0b49mA/($U}s^w3o:ppKݼ˂q`n]}UK&NR[[̧IiMs.Zx`f)k[6]_W!$4mrG qƶɥ5!M3A$XrqWA`pb`#S8rSݳ}5g?`:T p+H c[Ehw0&qM55؁%3#ht\1;,G,6?y,|A[x|젔/" Zk. r i<#Q@JBWX]TJJ\ Kgf2Ki0͈ JZNJXBXzky 4d ]6q6.Fi.,,?m-15MAF^ C9vpTkm ONI ybPxZe݂@Pog[gO[(i;ګ avCބaYeM i ͉Vց1Y&5R$LX]AxrB"X VS$x N{]&mPe@cN6YU ,H ʴ5C$0/˱, L| ׀a1>P9+" a.v~C+Y`UҠ, 6`ڑ8ńEA3Ubb"bR,lnQښf|&^Ӗ**(i+r0y`Rw6.^lCk~` ffQfddEx8 L85Md84y܋םعb_rF`]rf]j[VG9[[j֡e%M]2&!-DKNZ\B fcl5uB]nqyArWg\VBLZztK^km9^Pzvڅ-OХ@&0i;vLn?}%7&fg;[:dcbace f@amkEs))Cmi>`3boMt`ϧa%' *.Q6. %).00\✠xlr!tK2W lr,l%^3ۘHEXyvƠb$4&x%AAZ^u^LL60' ,'#i^.m)>M7`s7nE)ͧݸ~+o\b{V:[wMf~{SSNL8lbˊ KhC+}ݢҳ223<[rrrkc4oؗdM.^`gd^t6~Q~q9>f`"iA 9A'xXRJ |eҠ],\ws1 .]ڶ`-W^x h vm-j-Y9wm)~vj 2ƲjP:gw33Gϰ̐ȉ=IɁ1U-IRjjؗmas~`AO.>Pe  V+_<9yx^Е[{puOҲW^=vkmYHa+X[l9d,8[y.n栯-,g$X@j13/#;bWT`."O@BAFu% pZ̠Yމ2E%c,g1cۚ1~cq "XTj#`c]CK<^\;aӶiO }r`ɶ|+AB]|+Wm{9=Q.vV&V.~1JjVĐ^X^᜖c28 $#+WW tL3% SWtI:(`0+'=pp7^~3PoOu6fF @#_ZKVX\QNဍqPxK@[a^v>9Y1QЮ` "~`T+JC_@O_D\ج,!P~y=?aAcؠ~Z`녏Q"lų?xǎv(S7wrƴ[DDdlgg3MTbE-4by]ddA L6h8 IlU i'ϟ=~ȑ'@@<~I7F_\:~у NZ-E__9p0fO)X^(&);k]Q.>>pĂ; fЈ000e_XOXE_EOL\PL4$ ,T45UdEdAJ+:،ApaGiKSr^Se\VZ|pXSe Aw:J] b+eRhZ2#32'͙\'Qz˓g]:uxϮmw1r⋇|zx5l;Q3nϭK]ܱXI>U Vn?p24Z_MCQ\ARONFTdcd0qvHj Q }ߴL(車HEeĄiGnɷSS47xـ! .#!@ wy_).;q;uCwޯX1_P}<BPA;̅SR_I Y,3xR)VDӐTj驈 󉈋Hkaa`+XYyxxE$'kb}]ӛ3jڦ-\ƖnZ~|feuG_R09Rg9Pʊ3(\?AlfǢG嬘S5aiu&2  ,sܤ?rp-׭Yr{g00|#.u7.lݹq髮n7\y[ׯZ5͚k7o۶:si*bҚ&z&ZJjں&h_$ '=A24 d ::S,R˲eĴo3 g($ek,8@s^|!#RkOxX!#@_Pw﹃゚.2rv>vТ 6P߆A\Q-@FFOV4%Z젊|8qeG9f>q-k+}-QQQPI,-+ H Kى6-XljyJdBy]nbV t iiг`s>xݚ3$;?9G`)Hv,9%:0gR v)qaa&qvЭ׮66J۸,ґO=zsaMێԭ;ߺu\ gO]>nrcSG~/2Tг3Qg`S*ȊK3 [-D3%o 7oPgvĔoMj,00Qǒ&6e>Quv"8-Q~61];1`̂Б#kד?ueEs?}q.(@3Xŝ0;(becRTƣ)/*&:GJQ/f1+/[SP̠4k崚i5i3hw5u}ʹ/5};W֢ɞsñHF.wG3Ȕ̟:kZb⚦Oo̦Ps!`&\yuk7:xMA-x%*r{f5\ԴHe[l߼eçv.Y{܅[?rCg߳nVWmlmc!#oj-'.i)gƠ@ yʖ!Lr~y-JMx"mu9%@ Lz3y33A/d.aaQ`hS{apĽrxO]Pk٠;.y}o!`I\\T@DQX[A\ Z&)-(̦h ejm)!(%-&*lJ(LX6.>yĬ_ -Y]%,Nc0[?{ڢeb^ջE3Yq7m̌11TQzPQEN ؅Q3WUT ՓusKusqQqe2HȲQ* aj~fV~Q,ȱq̙8?XMWcRy s ]98d..`MP]ࣻ>rO\xp7ބoOX(7e-ig';&vP03''h83;h]@TCLIXAKP\SFBLDZAZXXZ\YSSJ!`n^-_LֶĴ*k̐ކY+zyO^>{};= P>0a6]>G'0(ִ'4L_nY1ghXII239̼ygʭ۶lٶy]./b`{q09inuko^rDN]<)+ZSIIFVP@_JBKKLCF\Z32**$RQOFK$864;8 #]B b,]4ҋ s'{4'E|? `/TS2Sgc l1u6N`WPEp@7ΰ>ygk̙\{{kӔڿ=dd`Rk_0pu[ 22[H,LRb2 "bF8'hҕXA[C<-5UeLq(qÞ-3CCӲD ;'Ԥg4Yl Wlf͌->'m+h)uDھK&_l" ^r'hhՊ-'1ܴܶ5ZnZ`wcZRMIbX 4G~ܙə9af!2Z* b6n֡yɡՅ)yq.Ġo01DC׿1?0qXv>.>~^^FN]׮fXh9x|OD7y+%V?́3 1E "58b9v[PNYN;@A*gQWUM]Mh_%2=#RQZAQ20oq5z2BQ[lʠ8a9u0<̞}|_l2k 8sۚ\Ef+3uꬩy"|좌"}nZq7urC622Hwܿ;:o|Gof:t9nƭW\Qn6ʺb⢜l*V*v9zɝS'wIJIkR96n9Z|J eشXJ\@MKv.m`cS36m58AKO8A#{iN6v8 PWO?)}[oNi5\zyxR!  L8Z9^iS-1G a6б:X0+hiH؅57&/?qĚHK%)iNYC-Y7͙|VYbrBttRFn Ƭ't̚!eۄɽ _Z 4kHYɞEv㜅wΟ0bUzaDNW3'p 7nݾrؖ&uPӌ\=Qh]5{DNM"/~HU\]^bLryzn> Jrgp[hN#@1h0ʓ֤\\fg9jZG'EFk22 3ۜJƊ|,||,A]N~a~`WT ؛Ub/dv2tDKCĠa(ZXai;3 a+GE^Љ$Jt*&wtFh=%HhMR/ŧT^\Ub&>kU0qcG׶qqq1 *K JZcDrW3at;NN-7ʵՎP 5ϜrԎeJʓU:g[~"mO.ݻm-vv;S''ln񒫺vfֺ#{lߵuio .cUV`wLvJ̩M*OIW1. g5e0)+ quw1bug0Sd75 +_iQii~>~vꔨY&''[*W7pp9E$DA+xE4D8ؘ[SWr|/=]9~Kn_YnT3f1;6̺[f)d]NEFX30 3Y+X000ֶKY9ZrpؕO]P)ZRVf쏉Y;{GgU%X k%-vj.i;4?8PA91gT8aB_^?74FiIKZshX LEJۢiӗUY3/PK)䢼_)o\rޭ+\ZȖrùhE N:51kΊ;~.6 2v梼fƶ~My.aivzV^@ϋ[Ƥ;Hȹ[Gee%{H3r8K0k{zx,{\FY]ZI~G_K]yNJ1*`fk+[ńxEdE8U4ĀҼL\L5\ 9vh={;{kw=ytEƬĨjAO/m~iHeԈ"?/3&/F.%m8w&qYВ|B>De6ܴ<_=9N>1M/  KeXZbjy΄VL7wDAٮ|M4t t4M54g ؾwւނˀ g\k'rz`h{.,g[R͚UIVY{2kY17$$) 93$/!+6T}}p`TW^WG:<>+3".MUQWc`hZ\mU6Jsd:9YgO.!TO;!\:.-#8= q6*UU1Jled*5e`6Sx%$D@ǒ΍-WdbHivcrgozusuU%zٹiP`wOG%`#?FXOi ppr2knm`SP23 aU63STP񚰬47/>aA&eRCWYWbuKW{S]uyFFN^^n~i]K r؄u}-~љ% =M]=q@sN6wF9eӫYheזH0Ln)r&Zs;J ۚ'3X9?a'=k^}ņArf+7-pMK󲝻j[-Yn^)&zڊbb2ږ&ڶvƆƦ6n~!am LV@J4%N6*#?14,-?@%KKZ@K Tl܆ގY3m<+5O\ps KLcH[ $յu>uu>W} m?S랴Įs&/~do Sc[.EY) Y }c=C`7䔌hOk7GLAC}`d2649V#-E[9@SPVEQT< 3Gg})i-K+] Ȕ`_3;/_дƶL@{4A#Bb, Zjb"RN\CN.v,6r ugfi+Y9x[ 00z{r2pٹm9=͸@{F9Ą%8lDWlhVj(.ge#RSZ^ZSZYұhUkUd4"{;k򲲲lWNh\=sM6;u(]V8cR-e˧6O] ]2c`dZOSY쮜Ύ-Gm^]L W-ח]bs&Oe7/o6m֫Ζjn`*-fl"eel%)!m_\\6!@_6F@TQNSDD2ʖO6, MM̍ã|mmŔ44-#RjT|,xCmEr"/dcff,RTNM;QX[C.23 ӘA#4EAP\Ԅءa-wdo ԀEWtN$c5=&oin̂M]m]]ՅUeY };&tC’Ғ*k`Į5}f]F)u9$il6s7g5KN^fz.lNYߪۛ&nVdP*^s~WnnWc۶l;`O0Sη۝U{*sûW,XSm. 1~na޾щ IF_XJJGT.eFWhbysUqNV0 2frycpm-@1蛨ri;eVg{{+ K[DY OTd`pHO/4Sr̙8Z_K4D Jz9{{Gz[@RAPO}`+((,l 0SUlk"*mc韾f[NLKӜktxeez:jjKJˊssr[kr ;f(k Ĥ*ce;u4Icpbri}f}\C,,)&\?mќ/So]S?Խvk  v߾:;-#;4`SA=%#=1&CKZMW%4XYP9RO3N]3.pg aW)iy9+܀QipE'`ebee`ci( lenn+!++O OcaP3Wba`ffdd``0spKM/-)n޳<}%See:r K rk탂$tA1$?AApZSmKYg' GԢ{Μ!N߲qg/mHLJ̬n*KKI rg46gYllUded ҵelDؔ}5$s #k# mASB#vuaUYN^SiwfsM~T^fZq.(d ;ZF(blj+"l q9z{ښYG{;X::ڹXY;Z*sGHUX@H30#8r /cA 1Yu6;I뚇ֵdV7VյY{@BJSJ.qܚ D3b2|>eۛz[A wMۼ|e 92aܪi|Cj3k;>OA-iζKBs{]8dKwZʻ::ڛk',kʛSwQR\!g_.KZ6KZ~ܹu'ۚI(ɉh()'f:'&:z'&զxZ* {;\Lzv޹!5.Ǝrjz*L &l \X |;91Ϭ0[̼c(wqj?FN@Yb@1MMiPCE@\FZ( im%vЮAFF6^^c`fєU6s rwppvfZOOKOS^G_皁Ts ;3!)+mh(sV~rq''5MQVPT(gn"%,_^VPWS_\]SUVS2mъţ2muEBwgm̟4qnc}}Nx"/a 'On7p䊫wM:w"ȮĒeZ1)fy%NTշ%`A]'צ0+ iT7+tYM>|l/-k'beac<%14)1%-/Y_P2YKNEMA?%< 1,$!:#J[PK<]O b<,m}mJ2r4#=5LeeK2 Ddmt88EDŕ5ĀKfA q6fNЊ*~>k=z2|2ޞ6@`eneb ,A1 hWVSKESCCOKW\CQX_[WTKF*F-,LjB` X֖jK47TW7\0gBqG gZM]ۢqL2}}5]]b!͓gΟ3uĝ3\9u{;t=w„xM-Ϭ]gN0UUw5e=E/pDŬetKn~5ҺU}uIoZ{ZSI_FarnnJzyyN~B/𤘸P+]%vFA)~Y03ĔĬ$@7gKC+;&57+a&4c/G?&);=7DPQZfN(+Vmb`ovV6=ZfP64N@! >joC-7:  /vg4" 1CHDA;7;A<76;>=745CF<46>D=;"!0 $44*.//.+#>/).31.-+/4! 9H.4PA136CT5!m{tnpqpmhbh9+SD $Mm}zspoqsoqwts{3|~[9 *Aavjsoi}z+-jg"(sUH`|}T0V|wTc~uamgݢ3 ډ$AP#v>9֨uIA\glq\bso^Ybgo~sZT^W;$IS0>=* & *$+@[mjWPh}zjThpS55C>* 4& 00>Q;5NfNA\ugMMWP>I؋333N5 SQT 1Pl!Ʀ 3;/xw?hw[-dD88Etmjblbclllnh ʻ|bbY;Ll*J*jJ&bfzzzZZ7pu}MQyqiU& zL\ae]UyNMAfNqcl=B-5D%ĕr̮oloϐlno~q5C=E%e9iecK]9mk=e-=5-s.qp)^faQ&6Av^ڹ] M5q鹹mQ2IܔDxsKk 󀝝ڮRu憹 oTX7mbs(@Զz&,ٳjr/mӦ\1mak't͞;}lGSK-؝[::cn)85=w֬HwE.eO֙/9)u V=|ÅY ^6GgXdR{hbKh u\~e\NwXfFcYh4@1$vxy鋫y9Xzq jkj)6k1;bҢ\"¼cZX%@ _>)5Ѝ\6Vv6ֶ.bwu35TbgfbbH+hij*)iij*{ihZ1E0 s $U^[^ZXXPPX\Z:kngYeZuGsI~aiAFFfniS*/Me9.JҼr  &X?{b'p¶if^V̝s\%Kjj0kT;i=z YgY9vL--͝mNnu CӇ[$y&y*ֲ0&ZgtNn\H40{fY:kki+󱉩hh;){Z&U8z8(%{dzJEG 0(*21(CHiWHT~xI"Ss:OT@!10Z5Y,xfMI\NOEQXN X:888y:멀sq{8|\-l□!^*2JR&V XUS7<7+??/+Α˺yrg[mwT^M]_2}a˂Y> H>6UdPkj:sVn\|6qFK&;nAGiLD: \`4p Je6hw5=mv,J\93]C"A_M]gͬΞ:KZ…Պ.+YggUܮd²_>ٕTVX\^אܒ\f-n`icWR\6394+]YY@E\?@C@YYCXVM__C,,Q#8-4:+#= ]\@SbR"2 v.nj||R2QBPX\_@D 4cg`R42bcClLQkchgme$.9@'BSfuuv~]o7?5oK eA 춉!Ş 62b "jsU_4/oiimCYCo_[^sJKuiU~I]$fiyJfauOifF ,txs^,hg_li`fho:_Ŵ48,+@timA!r(G& 6w4䇚IsjvMܓȯX[X[^]`*#'*+% lPTT4ؾmBIRVEWl]6wB碽ۦ_|ɡ5&5Mr\&7wԵ'=P{q6apAYir'i.|473A o?9.@ c1Yme=wC>Yww N}/GS(OǐDwg@}++]E9%a.QQqhgpwS@t_sϔpCMkcq}7Nc5.bHs6Ud,k-XU.'fle!kn)|73Hu6rЪCZ8-,^>^~`*a`cjngbh`e kx >p^f԰*&&3FIXk(112 hEE;N_C+++;G[SCsg_s=e aaQYC -MaaA.vpcK@t *(f9 ]l$dl]<<̕U,lY F4 Kq^l`qvFF6aCkeҔ𨔜̜Һ¤PgEP!ϩ%'0*7#3=%9:ߜW;=YEO6:8,q=S'L6ˌ]MF9iƾfn\V;at}Fަ5))F Ξ,2mfa=M{8YIZ?:!.,+48,# '#!%%.?1[RDS@ :ߍO"*YF!$'*8MCACDO[KO@QMCT]E):. SL}5B"eL $\9yW@\~pƅniqOU]F&M+c+K;kScS+KS+@k9WqN, j ~*/tpc4;/c }]_\84#1kDMGrqqNmn~annVNA~f~ya>HœkrӒR232:=:40MXP^6mɋvY1gℹCL,g .]'vOi99cq%ֺΖz:}[XFITJL1LWCXALA/R1:R34=77#3:8/340KO\VPAͶ]۷$?4*3*?%ңefGrUX@, @ Ya6J2RbJ֡aRQb&f>pM{Vc9AHԔ&,Uj(kfglknge%pOP\NMMEQS[CT3&x. "NIt= #KNYʅ eչ ᡡQ)I1 ^LV¢323c22\,%Y;:7%)19.&9)1ܜAlzf=)ۦ委t55ܶ}܉lS*^dfv.ٳns1g)Ypٳ\ .2ir YMM?)Ţa.gnflzچdEۊ[ZIJ^qIQ =Ueiu9QqQR~[Ze@KIIC[f@@t>aH8h#DN.v` |W.@o`iAeЕ6\̠Þê r>^ (gkn lkL59Q.LZ*J*K b҂ݵx%\==r젛x-ME]rõ}EUyyI.e1Mlh*ȭΈNH- 4 ,o.ɯk(/,)ͫcرlAWqԾ[̟6,3h[6si'-ܺb9uW90ߺd3'Lll\2{EUabƅ-uۊo[+T5dFg'g%e%eduTGG8F{ٹ{:kj: 2(piKK8zwzg::{X(J0=@1Tٚ1K 3A@;#-' :-Yjl+E9@yN@d9S6*8kg93b`n&_TTLBFX*k*qa3L  vP M y85JR  <&]X]++f$OAŤ7>9H0GC_1gcې;;ksSSSYAݸtq]vAM% Q>l&)'!flf,RZ&§ ,#&, 9]oN4 ȱ!E,htwV3‚`vp*]UX)pQ,$ 4KPu  eаP t'3fqCNZwddS[kJkrks3 kKz:Z:gijhjm+jonhm8ĺҪ*|ĉ';3U;3gbTՔuΝLsNmo3ѧM?c~KSo_Su5{zKMc]3o?:JZ1,&13*9+9'*)!Xd:+k +Z 6^neMQ~V 9^&r)m!R.rZ & ,6 ",K@ b;}q1CO%6&AYAiY>^NF;_b-2@/@Bm)_MAS*NNEyWPKO@r XnE``E%mxBWZg]|̾&` m]}}}'tϞƦ 3gNhklik6g9s1׭2m%/\1w]]OhFľ5r J;zں.kin9 {󲺌En|vM%.?96+!7*um"}Lu5\, E ,5D  ,bKB::CMB݂sCӣe|$(%'%L\e` L) Y9Efv wwmPtq0s rr6_x] |99 5X甂FxWjnr(22Rf[֙ac"h\^׾eѴζr`Y[;a޾ ]>gִYstvN8u殩fM:yA8BϮ'Ll咅N9kƅs/[>m+,Xrź9stVu箉L?wri[-Jkۃ 6In&.* iv²VJ6VVv&Q &QIiQIs &6Y'XEX)$q82X;$r K@Cy1pf c SOG=iqq~> S ^f6>1Av^>Qa..G9XXSvU(vUCo$U- 0RQ, .5u5da^L)Qq!vj,յ9щ=õ$7'3=='giOjlM`u@ [yT`D/gў~h=0-X8g5Kf/\fL?,Z|;g5L4S{[ZJzzk\'Uw@JJwhgbdTTTBBZMUnqC~MXC[wtY_tIyKFc7%P9^3}fQvf>v𕗜FФ$N5;8)QKJQLFOTPBW@\_ aaP2@.iEX&E ( /9a)Y xQ,- eUdDAd`!lR35$e$:d% fjoh()mE1Jmh6\`:c„ '6iN<_/XȬ5qYz&Ϝ خ S'ӦN]8ۓIa &O>wڪݻVLnNpppprq736ws Hm̋ nn/KI 13=gAsÊ66!9!M] 7OjVVU]\X[Ro癓 mi&) f ro0!-;8sqKDȀ;i2VЍ堒9 zWQ61})~`ota&'hOWAE| l9|S*# Kp9AuTtTմ@=aQaе"Ʊ40Ǫi*I#+=#=&4& 2#T;*1!&:Pt 3]qmuZbafp/>{|_;Β}ѩ]]Ӏ7pδ/9ܴӧ^|S{fn= ;ϝ;mY V2-u] 3ҳ2 ]̝=J&zSMb!-%fXY:aVGy~nb_KxSy`0`f`-cd<ݱ1A**9!1 d 3q a ˫UYxewA&yZ@@@%(  E]2rrJjjJR"Ȍ Nѓ2IN43eg(nH OJ9ڻu;-\|\`㨷kW̟lSgΝ3s&L>s%͚?u{2{s/?aU;Mh8w܉m39m,Zy9=]gMlov:j3Ӓ 'Ο5'1j (Yz65%g%dŸ+ 2'Z)3K(2N@'<& G|l lMy@%`dd M '#3h*/h';0#C(|`+ h @l|60)I sr.|eq~^A>~ q)P3"$bEbSbZuH\FJ\\R #_mMmZhLhpO M뚺l݊;[>qd`j'ܵdfO{g__Oss'j٩3g͞x՚=m]g/޸?QcmL` .ܸuńΩ /6䳛׮Y~Q`v.̜=rl-eG,ĕl" ,̠5!]4~(-* :^JZ 4(#ؠΪKOJIK6Ѳ OJJv4ae()-KJIHҒ.\S,k3{bO凮?r=}=mm/͜9k{VNlh>k(e8sɓ.XjnO{ gLvlukV-޿`՜z{Ο?kꂹ}9sZ;?ѥ}ɓWE+ {9Xyk*nfd`'bpdC٠&EZ& L ;B1jNfN^`* !#+&%''(",(" DPB EA9XC khK+PTTti60bAgPagfacfdXPiqt(;;3($ l*JIHKH#V 2@I%9qaP*g&%+(sM8S] v`1'?7)l7+'t5\rպzx~yKMǴ󁝑ڲmgO0y…sif]ywvK56w";q9:'\8g f_p-.nVSΝ;ut`GҚ1{zue3Xx ] x@ȗB P`Uop9p_9d*x.*=`fcfW \L|>88?03EUع9D@ 0`Xf\b*j|"*ںZZF1% X$$Y%Y1С ZYIe)q9anI .*R@1{e%Քm9s쾺3g^u9q鋗-_<{02g_n⹳gN9s洉}l9t*ZҟAcٝs@GL7sИsZs`󲹓g-_h0&k0ybWGGg{͓g9Nܲ|VOMz% tNslt;;/0AKO"p -3P5h)^]cN^H;o>>Q^~Q`QXIIIrʨ(H 00bT$sr>0 ,Kn>8H` K KPT\FLOV@XQOOP_XWKSKMVLTO|1 %.D̠]ڔUn똔蝞"+ ,YK3J ʧN7g͛7<{Ŭ ]]lh,P4,\`杛Wsd`?gbOׄ>{n}r3]3;s*j[0oYg/_hិ c &>dY ۚ[:g_>}Q{U vkN5E> c])1`k~XIJs@s";#h4$.-``IV+  ;h?>A`F UTU3F @1h0  s# 4v?E2P;T20!׬+"!keb ˫dgjo`hl & HPX r,(bEA_ĬGc@@]f.^6‰z{zzg.^b7nܺn܉NX3gM Ko۸|9O^jͫ-Zs#'9ԏ={bGK{6N?u+S:e5 &;Z_oƐε[/Z' ʔ tk-J,Za$SN>hj 3I˱3qp8&7`&('%kAJ"" -Ya)PJHˁ 4e uE$d$yUEe!˜WSK4:KXJ Xs#6k6`?|V&*Hwe!5(bťd5 XduA*jʊJJrR G ƌ@E1Uu C233CjB 9 ƺҚȒM[g%Xf%S&Ν3ڬY/Y`т\]4w:0VA͝3.Y ,go޲~˖6M^7}3>z[CKe@%w/_prm^6gΜ?lkOJgu{0 K뻹<}NGAaZ8/3 3#(;/.%,&&+ŀe,V.~>i N`6 1~1qA`GM@Je -&(+&m+ p})h>@131Yh33q)(0s۸@C blfpd {xH-9 EE1>A)Naq^)E}^АƩ~T IYZ9:IK14g"$"lmIWR6rABJr|,|2jjr^M\ t 0bXrfb4ddWWJBNFf5Y6N6`vc<`%0dXgHMZv,ljJR*ZުRX"VMI |DRgAd`xLbrBTtKm`ؔ†ΒCgM_4{ʝk6:{mΝ9k‚%sN\j̞?yif+٩ӺzY0XuN>wΓnF@P'/j[qQ>kxV7``PVS03[ a%#"#" X-=i=c%)E[K%Y`_ G@p4l&,%! :$v-if}lJ+! TTԀE0^ye 4NxBc5E;"Cb#c<2<٘2j ڋ\`Eۏs'v[|͟=w=l:459`i%g.?t|hfm_?{yxamٺga jfl@ 6~M ڦVf6j.J JQ?~_94:&:LAATPEIMYWYBAAWDT X K(I s,(be倵8 (4b5ՔeE5 t%d5 e D4K^!ckfiXL҆M9bf614bف<0EUD8A ,vimm`9( !,!&l XH2vF5!!.24,***.<0.'1ИI?$.+y W-Zȉ9{-Ki.\xْS$8@E䉳̙9u%Z?m[v.\zչxŬ3xŤeeeL54z cKE~amwoG?/o?gkG_?/`o-f=yᓫn?|qi9Q.֖&Zr"ʠ `kW\QYWDcedŤ5d4 U $4Ԁ%8,@kB>%5Dt`baf 0ٹD3?#h< Xhb&O! (%,n8DEU, X `q&, [ؕ lEEGE&;3fgD׭Z7m֢sl=wc{׭ZH+Ae-mMv*(v 5%q`m !k ~vfPĊ rs,bՀE KHH  L r4dv}r32S:֯8y߶y-7qϚ>kkϝ3إ9u|P:0Yw˓+MhղE+f\Uighl^ gl%gd$'$Ņy;8Xz;;{zzxy{E᷿6P5@Puf^>Cie]`+-&.,)'vvF& ^PRd``]!*-". ;mЈUQFDԼ\P 16dgSjH/+-d`uͱK6ڶkqgN6os+[.9s4s%vdg-x9&O_v񬞦ϰ`SE~о3N~A`\JYX yFF%$%$$Ąxy'D{{ƄS5P}ӓ8*?AboD>9}achKSCJLVҚf*frJZYJDTWV"rRnnRR V+(՘ pW3ëІ!'h`؃01W€V b|JSy؀E6h : Vdd1)&. +6lJ KNM  N chIH/)(s˲l9rvY M:wY@M`` 44w:: ֱe gN]{M_p{pB\8*KȨА_gk`/ϐȘ8`(8܆۳2ϟ(/ 끹t;[G:i*S@1px;D ۷.QF!OKh\\{&+3;'z ) QA>N~ie9NXfO2@Ga2R\l|bb r2~GbTlrVbTXhX8$""$WRXѵfUW߶}nO頕-Ӏm6 /0f9x8N?}9 Wnٲum+Ss  6@%hAp@PVtΚၾ^4 G! <XDƄDF]WZY:˫ tu 5d9xx%YNEQ@_E9i9`ū!!$#%( K:h(YXi8xhXoZ wi6FS +GL1!-߀L>9nuN )QaEef ba:TԽݓbƓ/h<Ii QN 0'%yj+  |͋/_qUWmݸdњufOۆ_XB\ XɼJqJbӓaj!^P[~`޻fu>i;TbSO:4>a"t,,_bg_[cbj+X ޞޞ^/~  fȨH`c @ ډcC56Bb_s+5-S~ADx|5!uy~%F:(hHiHIk{26ʦVJV^κ* bch`&g +[lR]QVVNES[SEاF(bU4=.MSq aA~еY pZO5dEkW !.7$!F_/qBUIFRnc]W.ZĞ]6/YeO`tܜ93[OhƠ6&ϙ3ւs,=yKw`Y vL̷݁~~^޾nV6v6vnhgGذ0`XIo?$f^|D 2 _$/Fϛ&v'YŕW;\` ,yUZFPOYBJAE@DYMWZ d"69 43O3؀zg/3m 3GEr_E8 ?Qlnnemme z@-kyD;zgB"J͵I Q[WyOqim]q~i=M)qiM=-%YM>%s+35%cwg- -/bPԖUψ v/6ab0,̰6.Cc&1''ƈ҇AI 351&̜c "/˫ד."Ó-uExtWOEo_̱K@ij悮Ze:Աfω'L ZCl']rn߬@e&.^ M`54< aa!n.X{sl@XxHwPfD,/kp q71oa&=[Md 9ŴTĄ%4dlm,TmԄ!W;22-7**'ˊoBú /fU,:eluP,Ð1 2ѐNU bf3f}Afʂ0Ȇf%&d$&DطHHINԐegֱ*+VT/^6k%]Ι?kњ[W,Yp ,?}\`i ]ɠiupL^|9Ϛ1qղD0PEFF[DaQQ~XL[Vnv.nAHPctWX 4?`Ad[%.!zjrZRbr2ʚRZVvzfvv~&2Zg암a#%ؕ&rp(XZ(K0dJZPs"t'WA ` D ->,9i#V@PDTJJTKWe$&'@#6..&LSCAgڔE˦صoKl´e+]8dЖg&Louige9'Lx9KV-Y0gbU+UL"B@,ݚШPow0P @uoho`_ 0~FWxtdodAHD#Oĩ;Y!'#X%YAAqME i S+] C[`K*4DN mUC#\br;s O >0}q>̰});- VjHa.b](] Z#ֿ8%!1%-110нJbf'e/X>}9{m]svQۺMh5 X+Q` v9&ΚhK֮Xx7h%$EFFAP`Fl_X .O_HW@w.@Wg_qD(zEXbs{)'$#(h*Iɨh)YYI[{xCHedbAUofUI&/S{gP`s:Π-h]4T3! R ^ nI9%+"ثcdT-I @Gk-9iM>]9sVYvs]sĹ ODۛ&~`IJD'"ZTlz)kjhjʨŵW5^skM80m zJKʪ&̚=k&b0gs,^b՚ŻhDFF'=ݽm\(p'62̲nF?`"{qa~& S0 ;->|1['<89%e$eeD44$d5%4= 7XK!*]V6 Dعg~U@S2HȩX[VFidAQrq>-`b n}|Nd Vf1pKbvaY)A.6^PȘ`hP3500&.:ZEVYEOOV34+7:$1pJ"VJZQY]XPZVFN3VI3 BbBm Ңu-SRL l'(V_CTt(? (/fOb`֮3[ĂԳpv6.a8.(-&YҸP`X` EI]cci~Aګwg6m]M \[R1-=zw{;ݸn+׬Xn}~o$ X`ʜ Oh Y`֮~n@^hWȄDFsL"Re}ms{1Լ̻ Dd%".!rkHں)yEkh:CTz]HN~FsZc]vLJ[p +Ȃg3K R1 5p|J|8%be3;cd׮ZeaJ, cA ,}] eUԤ sKs30?{&vttU65544"wҒƪ'/;s͟p+f)G>!V@HQ y8 FŤ@k5|kb_{5 J*(Jy*yD{kxCtre`fnJ[TmKFm{iȰN6PdؠS13nw6F&&DFaqqqse,ֱxP;Y113A@im`&kY:4+:y'Ν ڦ:--M65u;'LxvKC;7ϟZb]atwXX8_ _xpGl ,C5H?o`O&/} ǴКin"*,'&,&-X)E e)q K;k)Yh?-Esgbvr`5y~vϻ-='vXes3]3C-Y)5cYFP,nagbegCD,W?4`C23qpW`K i$fp2p-da“96.22}ʐ`?O;c5}=}-9ƪ褩ǎOϫ0Ωۛ;zZ'L7q"0{'N ϙ޷h֍͙9sΒs5 ͢Š52@QO_hQ .4,lEG[*&/N]WLPV\ɄE,hU20Ndl]$uJE*94 YnEݶgf_/̠ ̰VJZb RrPAA@ WH 8E%gr h 0(#O/20$46 t޾6ZzZjriQmmiZ⫗5͙5}朩}=Mg3 44qً5}-ٸu˶-V\e|pHD#Խ h<x AD,h=%АЀ0+F"cks9%xbb` <> Y2 v>36..&:_6Ш(BKd&6l V]< ^+!*,%  ?/PPMQKOJ,`Uw,6kzOMUyyCc]mT҉rΜm,`TfuZ\r~P3P:!sƮ&tM>{̙l/hWZeϡ]\ՄVV`Et70 k`d,#CB"IwЈ}?u.MU`*WJDQTLcA+!&&*!+!g`c/a謭@ ;'tO*_sq]xʞ[u&{F%$G'Dz:xX;:9:ژj*IHK(+hKɀN`x@=K]v)= gp7C3XeFGxr Ra3'䦗v[yɓjZZ;:;z' Ξ9i}g͝5wY L`歛m]e;^ZXx1 RaD(b=A<ݼ2u{؂@j# txrh!X[k mKcY?g=-7bOKBk "}v[ՓlŃdBss"C#b2 ssscTbZ\@XU{s`Hd  zzy9;:9{n lj1bgcA.6a%sH6'`0:.742RSVTST"8sjKg7wU4U5577uM:mr_9su̝? tBP('Ϟ:qu{>}ukn9t(O\#!%:1: d-x#6$wT~aJd :k4<˟?,8.GXi  }[K=}G/+_gC]7bptpv LRS^pem05[[I hjk[ٹx8{;^NHtWXuc?G ^l*]’€pO[p6Mv^)-+oRb`$9E9[j*iwNmkީ'Դ͜QSRZT1q69mڪɽM Om&Ngu˖-_bĔȨ`HĂr-ss6A ! [=#h^xKܪ} GM#@1Ԗؼu7ϙ8)3 e/>ΟqIKbQDĊ˩):+)ijȘh:C[`/8ƅ]yz'l=uѣ{B |/71&;$9=!DOOSMM tWSsT۲Ei12FA'2I8&£%xFE{jZZ{ Xv.;s5[wn]_X7*iɺnݹgݲܽ}i 5}yh+oYh\ ZKzG,0fC܀;Xa&px/ht*$pd]M| ̮GXq Y%q1-GC%-C]9)S`ĺowsy߽xٱ۟\[Ӳ:O~?veVxٙ;(I9ڸ%wTY):x;ۺXɲHK2"b6l ZDMm#|<~q599-8k -UiY <Ք , M<<͡򂪶”P?/O/[o?/wwOssݍrKr<]"nP\hc Xpmڶ}o^fY)zJYUqUGGmu[yT`p|oA`tH) Xz!"z sXXFf~M#, ٳwݨ9lRH+&!.$+cn"-o)ocbe@ %ёa~ ə19{/?&%%DAC[[KAZ[S\% <1gb[b'&GYHJHi*6Zv&rr.n.191IIa~1)ޡ!f&'0\ظHΉ-U!1)I91~ζ6. v-Ѿ*) ]-i9Y+ ʪk:jKJc5 T􌵤%dU]ctA[ ^̪^E7 c ̧..('-b({v5~"RJ+sIHIY9j[ 3r2 3JSBmu1KdkccP_sKGg-Kg;+kĚifزq-KҫY``*k&'. aegibjfcihbbnn%'&f`吔ho,#]\,u ,,liCm|S2"ݬ==윽#3ڧyפkyX[fVnC!+g~Qq&&˴(xĂYPz{l;zCOcC@g?}({x<.@E\XPTRJ2RRVZ2&6&Đ_[UXvm]ٻ;f(I)ښc/:!؃>k;׮\uϞf%4y++hI jZYii)ʪ(ȩhj(HIE'5*xDxzD%k[[{B;-02+*-99;*# T[Ygnz6v^V1 -& :qfgcfdNMN% /5bulU 7YŠ}!~3#Mӻ P}+0K "X1a ea+3pjhZkCRuIGBymi^f\ZnGUVγ%] E-R¸P;wK]37Oo[`301CWF#Lu 3 ɭkI st5v76q510wtvK()kHpRQPUTҳdb4  lX84Cn ֊~7xʱqkWN]j fNS[RhimlblobiibnmbfX(gdnc/lˈgGzk)kJ+(ki*J(K(Nȶtq0UQ2sܜ.H<%89''JWL tO DEeQ=CS`#$&FEL037#,=&)=-99D_-1&8)<,)b-b` Y^Y >BtP0bW/¦^Gp̒Q@ZJBJ "63V066 +CCK+=YaYӷl_9kzkz8kbWci^Vo`tBKr\xYzu.0j(yMUUVUP3560VRPsյwR3srv560qHL 2LHO e` 6 HXPPDOL+AO\?/0:!83ٿ0 XzJFE;ʼn :fŊ @yŰbT#hZ 8,_ x| 6B^_^ˎ̂rҐƭ0*ȉ HJjH8Xk0J:l{V]?8-0FӡazcAz\TmyFoW_{ALRmbYf$#& *%(+"ghl(,e,&lkekmhacfk,XLL}c"ݭ8XX8yA3 qǀN,>s6W3p1 H NLtqL f.Zja8p#b!h@g7`LC#:XPAZ O,bYlΞKx~jq׃E@NZT\24665s2 i &Lyo߲fNOquK`IWiZ^xg_ngmzY}5Ɂ.憆V h`n/aY,,:^FYVTTZQALJ:FQQC[_[VX\!X_IJLAOBXT X/8& u!v^W ?&Uv^^NN^^&fP+ayٙYM eCE %A k?ܒD\/P_kh730)VXoP6MK b/*?ڏ5 "X2'8˱1c9# hlbb*VXߑE C=KC iSGk =byoX1sfoKMh-~u]st}c<b2J3Ccʪcͬ]4C<BM5%,DdT uAyhʪz,z66Z&ζ*zvζ6 IS;#}}-mݼ _q6F6v>QQ^..^>.Fv6~.N.>.^Aa~Й,"2b\JfѵnՓ ݼ݂=<m݀XqlXm\!0Ǻ[604b,$ X* ЮDGŸ`m˻C00bEYVbҊ"2jZ&2 .n֚z,x endstream endobj 895 0 obj << /Length 3831 /Filter /FlateDecode >> stream x^\KϯK 4 ź>8-;9"fsvgzf ݝfb>W8 ~4+6Q&F;yTۿ(=~=|ջv :Z? _~=|*q`_9qP`ggdq Q|ƪVM:y3iZ3zl[=[3Xq :"s0Uz+y l\yLX{3F@dC.0Ĵ\PSarq.`&~~q 1ſ`6YH~$P9Y+ Zу暵@cPzp ^̤{ ?/Ѻ8==A1ڇ$^S.ʕ4O'$ &0A Y @$?ВXʕIմz 2}W6j턂p43szңf!;O?PHU>UtM"#?ۮP7d[ ۃ}]Q ѐƝw!uqwIȒNv;K9'h3pI;I!.l@Cr|҅oy( ;)a"\ՠ"J 'thrpBI7}:Ь"L<ċf\! 8:Li"\<)X *;edfL =-¶ab3\i-Dsv5i~fB̏$Qz|MZNLNc}`4Oը^k@ 9E[-)Xs+:" 䱧KΛEQ)V&*4ãn'bi@M33[![-)f=Zluجd&ϯ*\"9#`nF`C_:t͎;P,qȒL[aUD!E@,Ċ1y"f=x!L$0$#*:-`J8_iݞh "dc6zza.xn~ rwqAg2!p|%DZ`ֹf d.YS.Y䎸3#^(Mקy_(KdXgcSFv]~8fq&OB3-uC} iZF$Vsh94[8y`#*F YMl9Iobw;Z=zpdtxns NxK 8%𢸾arLr9Ӟr8vqAEl|eJy0웟 l?ԆmByN.C}Y\!..a+# ǔob#.95o$Qoz3>GhW2|2ؕ=\X(p3-V*F$ߚcZ?O }9hal$0"pXH %6 [d43j%|'d>Xg:oNL%4XxUF[%Cr(֭C$9Q^Lj(?r-RLuK16Rj+,}ړt!Hlj8.ѓk@19MGQx$!Q丳LuV")U:”âu'8G9o';ŎJ/O/W.LU㘚\U)$[$8PAbe,X%eIgz6Ԗ hw3n,=2H쵠@3n#M! +h5z\$;t|ST])e>u6SҕUJO O=|ؕ%W)%{mӦ,afK=7#RdRVf߯!wOwX6Io >4//6)y\{Щ6ܰO}+$N ?Y 2v6~̽#F-?oo7YZJ'E*TOB '.o_rO,ri8T]JSɱHZ --4R]>eEᩇV bn,7Xdȭ+DʓBRϵ%zPz=82R`RkWѻC/X>zQ/`.7oX;Jھhk5o@ɡ2 6IJEx%D`sߑ` l&Q41\=ErW^#]-X-`Io ݜ~lY7V4A6Ѿ*d *?iy: endstream endobj 903 0 obj << /Length 2284 /Filter /FlateDecode >> stream x^ZIo\Eϯ }ARؑ"q8ɆC>_U/o3i2tUWݭ{īWgZd N\7YK>IW7_^.vhe2Ih;qoo?|N/~mdtW;GnҚ1`i!&ZR1{E9e`(W8s!ww L!(h<TZ+yG/sVZA Boah\B$c ޕQgS!t t5dS)-4,בּΊ-3\>wCє ?BV]^ &!RM0듅o6?z5RQh-ڦiRE#bD@lz> +dBPs|R^9>/|Oz\3ޱe4)qvR lRnxHbY@R>t)7wH!o[#Uˈi ]#pE1_" MT^*r~d1R6)eIm+ݏf`i)cfc}N7'T'~ )rHD_ li<<,\ɑݔpaëEVl^d`JBqȌQ$C+=_,wkhw(YQY)pI2ठYRRp>/鮥7IkПm̋6&G E$D Td6_=HO'}YO F7 &I{E}H/VO1r '$tHv^eOոa? [S4:(_@;,eW *WEؤGE {A*O5}k7R,!kLYXYXlTN:E3`TH՘{0"A-[݌O]@[ZJ { LY="A)\ AUYm;,P@OI쿔xځHj k,l9[PiIa+W{. ^\!J9My흎TijqƎ:Ş;8X6‹K[sAN0B3> V/mE2Z VJf8bBHCJe_lg4逆s9 Ga& }MQƜ|30wxnaq>v,{H -̑;IsΓw+.T/c-[åwpeUm`rEu`Mά6J&Kδ֌489aDV]-5tnaʆY}` .;,rv7$"BْFl0S(лr0YC}0 e*(:hAqeLp|ۚʘ'Ybr1 Jmdb׆4dڇ7pdb<xvG#+DG&Ɔm)O)XV|f^YFS(j}BMr{ǷmδYm 2hXX%؟*C4A{ڪ 5gJMid$t6`1۱ O%Đ4.,I<4Pn^OndxoS9+6KEY^Rl}!6hw3AUbB@krxX玓? i\l#{gYVWF>UWKK^_/l{chnh's7[ٿ|5̨4 Aa0[Y#lN bp/ڽ9Pb-6.{"hmq~m@gq.nvx2qEl.؂$=ڃM4 .f}~ф}? ,> stream x^[I ϯKӮ} ,0c y 9XKW/=˗DF3d&5}~RӷO)9ষO7Y&g;4+i/Jiϫ߼U=4=_ˏ?~X)z!ߟ <>i?hTI{='ccиf 9b˸gqjrZygo@݉ףƚɥ4qCL1N0r:*`@v6΅P Qc5sޙe!6`] pe{\4d3F${9l2IMz ͸f I(Cm lѱ@V0A!sF˳8Ak $ W#~4Y>9`X315* a/bYs9Ze96ؓw`M) M5.PN| [L" X Cw~@ _Clit001BW/+xK>k|Ul]*ԯ7e"~sE ~$f}w~F8^eH ^)!β 뫀ޛ;j0_!,{a\ zv8z{靚 v쎡c傻 DD2/:cw VفU3"/Cz0r ivԪ2Nr<2bZƳer*J¯gN*wgyf7uk3!W{WbՋh$yeQ,\Ҵ9b#,xt;ٹ ݹhxZ+bx= iXXn\<-w.zWiP=fMζpme ~B*]b\s*g+w>NZd'!L){D$;`V,#$hώǖ8Smh/? Yf'՘Ũ(Z8ƁG ib0tXw98@ 3$&H٦eD\gE[Kp  yvn A =eVbׁ?#JP藰rBwbYaIӬw {%.ڭu2W ҁ2z4Y5eYYFfmuEծe_xκ5d`LWi&`9k5mAWZV5јDn8*75 J(æHgE)k!۪T3нmUh8HC ;j~k}HI2RUc|۪t+V-NH)0zeJ;:sЬ WC)C'U=\-msV~ؾnO;[rB\)1mE㵸wՉm!4H= G (d4GhXY1(TV:(=_zmЕcM}Qt'.P6N4#sw9hи&[m$LzZk .;z3K];Vݓ,+o;e+/_טm 2VfzƇs+/"d 뎺f [^*BCT bM\RF=R&iU Yyb-VVF?VZ5nBiDH=I[UGF cB[FH(GҪ|!QbĴ v(i_ֶjnY q=\X3 qQŘT=PU2;cN@}Ed5V]˚n J\5xCx;,ŀWuK;rr~zkVjs[nڻn+ݱީnV~3Wڗ=GPjӔ)vaS +OZ•p?Kq%#BC1_ha*V4 _҅,[5 qTȽqa?-/X2feG36?kDJ cAQ +P7ʌb* /e6%TLXr͔,%k|Za?uB"X1(u3Tr l+$Ơ 7 ۑ#xqaj?2t 7L%djR#PQdbkݺGB]!K1g6Wh@/͘'joZ-t~GgcbA +9>U0lj_+OmT:OiaHI(+.%@Bndt`\J2pBlB2)Lozd6:F3 f)v cRXE~R3dۮh}O~O)VF1Q!ʷ9d@_(}IOKME9GqpGsLjG770B mxxDaԈQ=pOq@8 fU5g1#})*cy̎X x!e7]NK?ݾR޴/6&FGvŃ𘈒ߥl`_ endstream endobj 922 0 obj << /Length 2841 /Filter /FlateDecode >> stream x^ZKϯKC Hր!mAֱ~nI.ww|I,`4\Y]]]Z}RZ}}֨2hWw?*5LBtFݫoޟݝO>بOOן~|~/1_4Sf*MĀƫ z6~).G+ ݐ?~R?.Id$7Yʅm՗?Rc?}ssxAu]*q*Я'kn5,Skoauzy"y-,5/,TnY!*9RkhءEc`Jmz|΀vxn%n ,zp }_`TH  Bj_-ucfZe ,y?w;.=TemˆS5>;s0ݡs`} N{t׳ph ZkΓI a&b_ާs!kz,ޜ-`6}f0y(_%a(~;yl\}aGH %f\K}s]hOMv1#~0 yb7H#R͘2vd7V#"€j;k2]z:ЃG ҇~EW5D.=DFң5  {~қ[IzM bɱxWg.*“p|,43/>3W81U!l0 ].8YK%;Y)Á9rj`FKǦAJcVrSlJ刪MU%#,򸫲UkN6b o{M*>Æ5P^Dzeqq֊a!\6j+ .[.T;u=a\lJ;Y}iEʢ^:;njOղbEKVmvMEp=([t6/p 5o?k:,_fl4Sf?3 `;XaE `Y[i?ZQˮHFP{5 \}teF;Vx^Eg (ZIFf.TM䇘<Ճd܎T̔7tpqf׋*.o1:F)Zcw1*c`F^PnUM+=}ĤF,օC@+L|4~@cAMcj1ݫ{7Ɗ<؛0a-8gyւTKl\`L2&q@rM d88sEl2hjv9@4=h m &RIrߟF\?@:9+äcD̓mBQ?-4 [ endstream endobj 927 0 obj << /Length 2131 /Filter /FlateDecode >> stream x^ZIDcWjwB&!@4a;ye3=p@ mFO'=}v/n͔U6m6즐Lw7hm".ۻ/m*d=OQ?& Bo3ƒg_Ο|meU;:mU4LQQe#ʻԵwNkf\ W}z~tf}MYESAϯ?;'oQE|v}OVemf;5P3._&c2/s/['=u}uC.>B.5;:a)H[IbBx}Z{!kGpyr*m6Ze !bnrӠ`?]TXIW%㕱 nH ު[{և&¯.!f D\VT Sj:f՜#D Ѧn_=;)jq^% [Z޼bMɹ5o4tjifd땘lcמ)4Y̳>V^>?'q0f ,U 9F*b6h+'M=BklJbT bjmԁ@<?M[]hKPMb7ȅH.j-v\NoIlT*DrN^*_#",0wIDSr%MEц:/rr-ċ)H5rz=݂c䧍`$Z3uTZvez+"Q6]0tYġ7z< l $Ʉ\9^ 4WZ>e6OL:_]?78`1may,cNQN%Ͻ/ bP s6;ߞKf0U[d_I\b0] T6xbqHLW{ >^{I%Ex*դ`YQ/w*PXSzW*ߩ[M,%BV)WXðig @׈WD|.=!Xi~]19Wt܉{F7-kM F=@PO5gm̡=uӔ^Z6\Ams4򾡩!CJh?|XGhH=732dM4{֢9>ĨL.Z6 >Ix )Z+?U̢.MʠRwOQ3l=#&?ةq!!7" iA d쬒 iBJ݄eC*H9B`x r'8cHpl~NSi Ji)cM]VC>-ʪpv,oGi"Yǭr7 V#BB5X'XͶfVXWU{\kϚFX4nc̓/BcNf: Fͳt1;ۘ k V|p^Lj;F>cCBQ`QISØd}㬬 C׍!Ηl.<=P0;G=$G^2DKg/Vhc+p-0}}˴v OQx~lEcXc-xlfyzB|Lgp< &N4Ďs!8U^~]t9Ut.N<& t_?7?L>}<}7oqNpPhf oiIEt"8G8nֶSBlSc Ba[LŽn)bz9o-ND\.o;*s~_^3N /TC7!@$L!c.vvI#Oik|u?cY endstream endobj 916 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BigNumber-blue.pdf) /PTEX.PageNumber 7 /PTEX.InfoDict 113 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 933 0 R/Length 1218 /Filter /FlateDecode >> stream x^[Mo6WR>,͙ǰǢEv6MNq=r^fp(RΦp ܆Kd"vWW0=_BdBWΝ߾~n爿q9o&՗$I>))싈T̗r1T .G/ٻWU4<*MQv(RQjA>:upYO}7=nmbB^Tv,ơ"]s-W_JrynO(xg>)QfHW qhAKFFne#x_&#@z">X] Ksծ}yAa?o/Ib;?^gگCcv/NXΩ:f#v_w}G<:yIMx;#E2Ϧ-G:SN`>N$誑xE5H7J("#s8v!S4pk5X}B` egV8e%q7vTꁙ$=x%>8a >a>Ļ>L 6U!i0)ep*!gY"`iE"Уe{2K+KCnCjCC04n޺_^ ljw{R>9/Ak4|Uyk?t=-0z6>.C)G\XXd2|_AqV<~ _++Ę _+ |揫FU@ck|eUhkO`ټV{ {$9k R TdkxW6>*P> stream x^͙n7 VDehHk 4Mv"O=#gL1!/6Lu2 »Qm[9jxo?/G1V7'U+uu}n\zwoo6Xq1:9J/e^{SIrh}~9RW6ms֟$R!-<P}ʚ$Lv.C.1J4[θtx3DǹFCKa_ 5F.) [*@L$! Gq:{ \6Ԣ}5iuo"k$:8U}ŒҠ^RusʻLl Uc^įF8' O깒m$*~MF z^(,# EN/ %%[QCLM.$Kɸ's :zdjǕB2;7QtI67_{mgJ,0J7s%[Q甁+w1G:!WQ@]9|lCMם 6\(փ,Zt(>@tC=Wup{M8Zm0jqN' %%PS8Cݙ`fk\bQs0 깒$j]Q&Upd%V#hKA'IzI6ԑRzO_w&p !ҌXrP5jw-2Fzd+)5G/5fR+j 4lCP,ysu&p5&,E8IͧtC=Wu"hcD@>p^sETc" k#vtҠ^R ufp;L(&jK4RV:1BtC=Wu9ͮGNY5f8X|h qG2IzI6=٬3cP˘jGinJn='H MMȔq3E:KZuD2AdG{|yIF o9nk eZZ'!O1Z) (rcK&ǝpk:ltl< endstream endobj 918 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BigNumber-blue.pdf) /PTEX.PageNumber 9 /PTEX.InfoDict 113 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 935 0 R/Length 770 /Filter /FlateDecode >> stream x^VMO1W̥R9x5HUERB%@¡X;TR3 ct4jC%-%ӻs49\T-oh>7l~y +NKʅ&\|r4)f+!aFWZ^ÛJ؜Ur*C$3D=TNgqt `H%gN9 h`Zn堑}Ov 3bUx#-p+[_ioq}zhOOQ'^w8IɅmOg󲕩_@&l6xY9_g׿W؊z $ǺUOņUZV7Ae1XǓxUm^M줮M}ܵa~ugب6G "7}RF ]Mn$h]JM꣎f4{LOei8M{' \"t(jRbv3ӡG9%!UWQsB,!]\:naDFgCؐ'paJU])oO  4UMBh]f&I]-w6X3W܁_4HfVm^K1UmNEB|:03 @Ki M fƍ5c!E\p+S[(83vi؊KZpK|w0kwXC sA磸Ёw6"ǒ endstream endobj 940 0 obj << /Length 2966 /Filter /FlateDecode >> stream x^ZɎW) {n6-Q20(~/"3kꙞ&aI*32"2Œi9wvsM.Xf|mM/za6>ɚ28nzӇ_ˏ?B?X%G2!9Y33Dys;9XsN69P\\NMޘF\Z\f ƕj# SKSvNyg_ QfBH(:g@y1̩RHxR4U&,Z4ޚu#GJpٌ!Y$W̜7ϦjtjDw_EoOfg7EC?cs6T\؁ã#-b+<Oou\ :yž؝7nNz`l~`K<njX^^y #*L֨u C=Uw\ڙ4X dA0,se& ADd[lc ؛;[Լy|31/*#v*2#nf# hGz,!n$;Dnu4s4.uU9T4WZcD(ԍ.ԹTOt6\CEx}(.!1d7B뿡S/ w2ce"yf$#XIk G:ϰD+a0}}s4#ϱ{g&"O)tKN"e `0HJF6/쥋ԨhafI$tS{Zޯ6\6Vw{;͍]v BopBi#X->1F!`"O\T5ʔloQqy-(t˷`AP"4vuw< &޵ġ \1i{84%9agIJg$c RB!H6#)tM:d3.x# h$1KVd 7932rk>MZ)=aS OV7]M):0mh+FRrE*I,x:@c/ }VUCfޥ%mʘ KNt^ Bb"GHx}*oCMAcbQ15#z6hB\ȴ=:v{'}Kuѧbk\cK|Bj>3Ȧ uPk92[3 m6o_->ps#R(q^Ia>o$qT8'opӣ~kc$~.t{P.zn҂~<4oF~/Vr,[ǙfvFYʄ~U0PS$nӋ'w~('#6]2շ稴cN/uή藨h%? +(hopF0F[CӁ2jljef~!rN I K"|vUwdR2rD;}&W[m]4+wtuZ)whiN[}YiY C&f}+e%+8}dwC["e u,bב _'%sy5} (Ku;-b^4+*1;Ø[HD>#=tmJ#v :'{%L|Ud!8lF΂4g+NJ2~6t.Ks$RI@ X T} gnaD>d,A3(5 ZOUnyWFOvӛ<ˮ8ܛ"jAjh.кoqGdau$ܞgE}:XGQum.d0wP>ΩH p ҙM7.ij?D3K VKmhmcvG~{Ξ/nM QYHb欶bXDxWowe_yBgrIpḥ8P޼ŀ &)=uy7qBo lI(ʖ,IgBSi32nqOe)/ Ȼt~tӓ^mq[FwTU& [,=.9::~3\\ni1Tu=X'˽`ԉ'dTݎќ_8fUh5q_88Akk| w}qeVAJ&J`\+17tm1znLd .( ~CX|W 7| A> stream x^ݛ]oD+t̙/@B(Tvf-yDZ=$mgTjNl3J\ %Ww]  amƈeuÒwJPjX+p_Wo߾ǁ*[ҹʲCa)XFiqS!{>MɅFF]}' jJ*PwHS&x=oϟnzqKt6i•|ojlJ]NI\.oL~|Q}\z'4|ΦS>]]^i*GH4mnLkd.6כUc^j(XłFgWg zr}^nˇGz:L}}u+/pn*5Yv\K1 c(E!_[lepah1ӻ$fkZƴ,-x" >Uf m=NDݱ9Њ5 B+nA$Hc5 wiŢ#&}AM7\$ EodZ,v"UmAAF @_gg[K}ȉ~RnyN\r7Fr;An%BUT4Oh[1Tݑ:s,{I90'Z9=:uG ~Vz̡AT͞O}Ŭv%/:>t |AЈ7w^V<&A^Oټ?".(B<->-SӱVh3bI܄FS\iJ6{;P}B2 ),\¾^ԂQ[ j (m؟ԵݙSNJFӜ9cf7So& h)Wȃ-ٽ>-*>;sʢ[| PĂ'}Gz#jT nM>}`NmH=o5BB2zuqj=%yGF+5q*TFqOgΜ $*M&=5SQkw,j4|Jbȣ&5j !T48쵴dRDd*FA(J4Q?T+MSi.%4 N&,ae߽rA'+*;^iggs*|#:}* x: DENaksPъϟU{ө:eዮw G<02U\0'"|%<^\M4 endstream endobj 949 0 obj <>stream x^}R]o0}ﯸ{0^f XGlB{aM%khh9<boUlLስj5C/& ֊%fȑzX hIь 8h9ǠB!콽YxG"'8FD] %0SJƫ*m2!uM&S5וcɒndb/Fw{Q E۪*J8fFKJvq3MGYwʩ[#1ec]% u"s$ S `1W@P_++n)=_Ա9f;їA`&х[ӕ,]7 H endstream endobj 952 0 obj <>stream x^mTkPW%Q1V$<AGA@,bUG;U6G} Z*U:>ux\~4s9̇"IyilM)6"Y ;%gCi gq%P`C9tO{N,WBgB<7q!do?ǟ:pu0w|?@P$ AYPMt!Refym$*r^2]֨וȘn/#JH4IMTJHL+]zr&]FR%C1I9T>i1QF3Җr, S7tF@iLi)#i.RN4}UfȈ4QYb6IfNBubWIj$ugD)g/f6ZʬLONh ‘H"AH$D#1ր^0B < XgoTm;,\#XRL x*@)@0$Rʓ% tycD-0HKş޶.Zƀ葛1}I +OV,˷/osZ}-ZhjXuvn81XCDbrMU'NmG:ƆG/al3t69qX),ץH[,lf#mnj•9)߇9}Gw56Ͽe]Mf۶'q endstream endobj 937 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (styles/BigNumber-blue.pdf) /PTEX.PageNumber 5 /PTEX.InfoDict 113 0 R /BBox [0 0 597.75842285 448.31878662] /Resources 953 0 R/Length 2600 /Filter /FlateDecode >> stream x^ݜIo+ BRK$@Ĉ!fQd|ȟSU4qy9=oW[Zzz5ͻỞter޺M/o6pc}y1L+7gK~6ݼ)rW67)LWAXl&sf i;Y^C\7lq}~O~0 ,tG><.S01Bv9wO2/~OJoy>9;]Qٍ *eWT$3]LP2~u''^-s&򸒶Ug0R2Ou07}=O}jemr;.N^'eCq2~슅[_//_^ʟ]?=o/ח_%W wHR&kUcŽ "[(*,kb2 e"f?Ws~,m %d{.;AIyAV V%{4He{׾칧wf[Y\a;d 98fjƶ#5vشJ@LI!bA*ˠ U C;eUbt Bo/w̗WP{1<τ+-6r{|X˧|dZj9ͫj;E[WrAlbB>hl%Z>:u/vgѧgO-c֧|5듫ۆttO1f6|x>+Vǯ'OepKFӞ1caEbR ,6atO'uIɷPFcsu$&F}<]:\:Ǫc98Ja@DMjtxbN >BQ6IN ~Nxk'SLۂ>IgΆq?N=cu9/teeÄmᨋԩ|NYOWN-:bkhuJuj%2OJ5m\?NnvyS)c&X)/u9S42<:|NYCF=tjٜU!;ޭbE6<)w\c}8NỲR>SQ^|NQsMSJGTjʡ7DxXx$S(~ڜ:E@$m·>.{:uOөhRKSЩL"1{bY֩t"PB 5s-ʔz,{jN ΟG}N]>tH CM^t 2dJwPJ4i8/Ϗҩx~:5jxEy0˲|NIw}-*;Mi猷:U(Ox=Y"s3h5]ΣVN@'FS&~5? Mdzʼ ?^Nh4es:J J>JjqJ5S!6^%^8-1YyYUYu Rf|=L8%/L̬';3f4ں7G03X D>qڐY2|3[$˱ 4F݇Iq=>{JR^3#&C30`B3F? Qt,`dmẌ&bgiי#[z._*g9݇2ӏCa[kQv̸_,q-N1 @V|-jg#eRԂf=:Ժ#dM(zfJ)=ǣ >ctGS1֊ R,8Qq;G0vgFVc+{G0D8kyHT'1f`X#֝E`! mCewuFygKtFG0L} d֟Xȟ endstream endobj 956 0 obj << /Length 3552 /Filter /FlateDecode >> stream x^[IIׯ NǾ d#a7lHa>["232k6HȖ]ˋxfa2'_?xg:R?Y7U;Zlb_`Myߜ޾?siL>~7}0EϧO}a3i53jSvŕ'|ປM`u֔pϩ0l`Zb>z;芏v %͔֚rmr ZlC*;{,ZL69`== &$|}6 X@Ts K 52 O6;i\]Q[(g r-@58H nK֜ jRC*lj=*OȎkӬ i%qlyO5Uo@{Hy^YֲJڳ՜#lDʶcgFYEoxcKJ?h4'M }g0dpa{5``s5I)I [7Yk؟P&KlO<#Ƃi-&6N/ڶPS|,֪yAyyJ`-o-IU6eCUbH uh[ -T- -١xMB/)5ٕ"†ƪV-$lI(&Gp&ZrFI>Ww(bͨDT"F#MFw Hˑ7[,Q9諲yuL-0Z#ڳ Ls*0Dl/w`GD g-{݂4"ei.ZPq{hRׅRZuLjgAn*vg&Zc֨^ai>62ևG-iR}VQpS"V R&6;h,i:!S,?(4BYC-{PGƍpœ[w{^bA)yF=6=ٰz A 4+6[D H/d ;8ҚzYd/ti2kgWt%Qr6q_JG1p}uED )A*yU& 5)66C\J`-5=2˳# 3<(1%:R\}8f@ۑRLwL Z9|\܂l1 PJalɣ W\WcIdԲ3&ΘZ惌40|9!L{pHo"&1v,OCp+!ls)}8iN@HؚT-So7V_G_ =j;y;y$+k3x|i0BY}k/H.i4wmHżÔ$<DF بGnyR= 8cBϲ^5tl.:2;XoF1N0)#sEyEFtpXsvkޤ]aF($g"nYVy:3s42BS?V鈎naYj20bIOS>l'st#.:v\5}@(JGz2bV73j<ɓaEa Mi2"?-yp:Nbm/}W:}#ϥGyNާ)8dr~ZӄjYqkgEosz?2uYV2{g,'V E!;'ga0ƌ1VWFlzo;:148 Y ʎGb&9` \Covrle Cc_F; Bw3 endstream endobj 962 0 obj << /Length 3462 /Filter /FlateDecode >> stream x^[I_KA @9(!QlX?_mu,H͐ڷ.o}[?P1<.'?4|'|>o޼5-:x7 >=a0}c7N5F?ݘRT?Z|O>+_Jئ#pmc%MW[>TVuc)~xH'[Bc4Evcp\\mC A}XÔ0ڦ6B kLx-Ē!Vπƀ>a7?6' ] OX _sÏKfqAW_[Ha+smьQqMZPkSI͌+VK| UK+.A a ze•e9K.V§+[MvOECѓ/˷ߴMGN(ű6WBn:;W(C1]~9CgwZA +{xMEu%IӘ]xVa2a`r+jeMBX w8X%RK31M9)`#Mr%,r j`ut!(=j4^^̃ؠ1D<\AWɧpO-_\fԸ|>wm }]zT,y7uNm'KI¬*xV@̿fE=$L`k}^H.xO!A_fUVU#?lVA2G&d!o'.塬c!j . ҽS$$#Hl@Jt3gaŃ74C 6RhNaHA)r<;,9]~+}6^A؁<#3<7P"5K˄X]#DƤ3ES8*6A$QGa9F$i/=Ckbn~ R6vm,Ӥ:CHPWۑggH MDۮvkV%i1Ix͑V4)K (sXS!jз2='VN^ᗻ PG 0HsmQujD &R2X8V[L_T]DPa*OHZ(;sA[TҚg"9Ϳ4qgcˁPCn~r^J.ԙS$M9P* [*|bV~,˖/Z'$Xg0,e!+;m{ 9NRןU 9o9eqըƪ[相rpe冲'> ]JcyR szv?^`ø16':zzc]zreX|;Y]S- ͷ<;EJ ~`LE.NP(Y-qK SW2Z۪s4*3_d Iwl `1A!ѣGu6 IX@BZ0/Hbs BK%@ 6bgŴC(PBc͘GtĹ2/xDg]S3d\+cUg/(q7F@apҀX}IrCό0 8à:,,NJBNE32 &"i{[d$bRՐ{Sc8%ڪE'e9aZ")!ݸEn&0UCLǕ7Kk-kXp2a|!jeNMW&YkJCKҺ@{6m֜vv͖ф:":0Ǒv0[~Y{dJVKyr/:i ,I°I>Nr.-gf gK4 Vr4,v";JeUҶ5wUМU)RMJSkTlk{!,A] !2_ ~ cEnE!/NjLvSa b(֗1VpA,yFB9*4te-l?*ٖ#~(f7sE'ng N唑SƣKO|j@lճPfl_-% ]blmthGt$Z:-z&aNm.SQ#'CTZDoj4F9|sqpF³-#)!풢_iq3%dxVZi0Rqo쾉 Ew(:0C)f݌a!m`5ࡀ}&h 2mLgI#ͱ?+٭E1E]ø7t8 G<0 |5(v,k T A,wCy~XZft&Y+ܸUNVCz뭯FbL4硎etoX8tn).+ħB#QC.̳y#1(!Gq":LZiA%(fpK LvZ4(,'{hg@%8IJZG,?|p P#ضH.0Oqɠox8 .{I.{ӥY@u͎׺`Xh/L9+1&k)EF_mDA_0vyL<}pDLET/(sNsnw}D۵M{||;H؆8F+a:k@2=ul|G@=6 o݂C;лf⡴91О8{N]yJ MC'vQ[H%4öǩa[L{ۻa[҆mt-Ca[YcY{p$.^WkJa e_{鑣:t;pa"aC#5`ɚeپ<|tI4AaUPvו@_rSf#Ok KX<6"ݓ'ԁ~ X=9g+ڨ:NDc'.xZCR߲(뢉TΊf]ś'dL/jORAY*y>Qʧ>q^a~:PR q7'?; g^n^pbR^ℶtCq]޿kyB'oKs>@'L9?<&LԆmal&CWtiS ,T{.;FNGw>~j-;ށۗ 77s ?pji_ٱQ"3K_ ؽB/=LV endstream endobj 968 0 obj << /Length 2904 /Filter /FlateDecode >> stream x^ZɎW)ZYeH#@f`%Ed@skɌ=^Dd>aۇ˫8,2 OKӲc%)83÷w{1 1ÇO? ~Ï:qw7*07rZ n2|ǐ+1L<ƖZW:e(/f>ոԩK)X44ĺ)8NSCbc yn@ϖ9@4DkƩrD*x:.SalETZkVn"k<7~r)mƚDn8 ^ PHyƅ_I!ՅĨ_ww]kƥ@󭵱Le1-] VJj F|ŭoNZͺ֥xb~ٕL6B*D-c|}7h;JTJ^D߉ Z6nDl_D+ɍw# ^\Sy2]w,$K|'o^!n?KDw(Iĵ(Q#Hv}u_΂-BBټ|m11y ֯pe1,!b-&Y)A8:-rCә4nwSY^QK(e{YZ 4k@ęg 0M8<Y odN*BM}Twաq+QVH},v ?S%1OȷF]en@ =! 62bu8w^KK\ď{V!| O.)у2y,y*1OUAp.׸PUQ9Q2P}j+ 0rT1t71(3^ 38 Oe<͕7ǰ$d0L])&g34DSJN%> HCr3+EzD=lF %H2Y $_{/d}-&\1gJ><:HӇWNJ pqnj Jּ;} |6!4MD aʩ<`- KP`?&Lce(G~hm.6Բla(2WߛgKk l!ekuQ][npHȰ1Q礳/Ӟ< >f2+BFNbz+&^P`k0K&p[iXR6+}R,)1ɳں͟lv56v>Ϙʀ 07":6Ft;:B8ifI=H1q_lMȮop'qE"e)^ŸN_nbZ2t`4 G\-sqgd'N`U7U{IiAW8a:5>=!x/ u*-0Xw޿YM)s}ˬeiHXOs|^\%hοOq?8nh)}ʣ6N{,hburO3~Naģ/R9P4!zPL->=L%0z`v í&Qr~^;TYX󇓔 >zkBWs<a8f|< S::ki"eL endstream endobj 972 0 obj << /Type /Metadata /Subtype /XML /Length 1758 >> stream application/pdfsimpleslidessimpleslides2011.09.30 17:01www.pragma-ade.com2011.09.27 20:05simpleslides.2011-09-30T17:01:21+02:00This is LuaTeX, Version beta-0.70.1-2011051923 (rev 4277) (TeX Live 2011) kpathsea version 6.0.12011-09-30T17:01:21+02:00ConTeXt - 2011.09.27 20:052011-09-30T17:01:21+02:002011-09-30T17:01:21+02:00LuaTeX-0.70.1Falseuuid:0cebc915-46ce-9481-22ef-0074df9bec6euuid:dd4d4699-45b5-8714-f9f4-a13c098b3d23 endstream endobj 974 0 obj << /Length 13 /Filter /FlateDecode >> stream x^c` endstream endobj 975 0 obj << /Length 8486 /Filter /FlateDecode >> stream x^{}\Te`AǎH& C Jmeuv֊LweVl^{wOz~0TϽwfs9}{@$l59~#oqc@bn@،5SqΖS!dy+;qNXO~ 4>ъټ ^Ohm 3r$a6W=!:BvNaa%vb_갷;uL].G,f~ Nx Dq t#4 _#&@_vm;Y=OO|HOT G ƀ؀-JF%n?[c3+k[~-<->-)͔vm#mmںMi/f3=ƭ~!ƗߚLibSitiii鏦㦯LgM$!].IsRittt7͉f9<ټ(K%Β`g,S,WY{,;,oX[|eX)VuuuuZj-VYk˭Vi`]oź믬Nf@쌒 W'_LI,{8[OVrVׯ_]I;Np>, w7&};{OPЀG;=]ne~#jO}; RO=@j 1--͖65!GCi/lhj\ll5hxj1^_ߘlLMU 4m0`zc_L_K $@+͖QG+#4p|j@D Ġ,iL,KouP` &[SfZ %juFkuՍ` 51+ 'jswX[w@[Ҁ3o/_?]'7+y\,ewYOʟ>sj-<5J?Wr\ѹs:l,̧RONE }#߇}66z}=>}3}}|VgR|ɾ$_/|z_/ҧi|sCg ЛCo =?gC  r(~=cy=M!Akއ۽^m6xޕe:boڻ[-.xxs>{{O>O-''<.:1|( #쨈u+x>2Օ e+a:<z@,A<$@"$A28( `h XaB&LIpLL,Ȇp94 J WB!A1̃p ,2( *XPX u Pv3 (<Nx _3+¯y / >xk2 NDX ;Vka fm] 6hW m/I/Fh\6ZvX fs\ffƢj<0/diM&z5f[wp'axp=·NoW+g ۍAoe{ M.a,\ ǐZn _k8z%ۇr .cV2 #$WY~&|0vW:l-ph^G9"~щİ4&^k>{W m&]/XfV](kЯizzNޯ=B=[_o^WxWb،Vawݼ汫: ~Wf( *_n"nc_*WcŊ3ۋv=>4xla^ڴ'R:E]ɠ@՞^iZ*{Xz!=tmARiEE8V?FlESpVy@hwbL¸H8hsab%/@#/ÑGNO1Ǥc̭wti&!gBcI,ϷTݒ:k_TQ4gRjiS$!SgO{ 33Sǵ.pq.\8xW+M[_ahZ2_;s7-'1!^5비i93ffϺm|]UO"h߻.V{'>x/^6Q!]Yh9;`U~F4D##6>>8N4n!>M5ObfE#jB`">EhED(1cq(9΋Ū%l6lszC4$Di/8So8=r:&؉%nf>{ "~]n!ް!K3fYi,>aZ`GXrsu\g3 [G/\QЕd.\ } ; w,nm*Lgp`3Q9QbddDVy./.]ئArtzb'B"g _OE5]"d 03Lsp?מv#k! \ %?]&Ñ|GZq)1YLHLHb (16R ׅG:]1ݒn-骼/.$ϾzAQoh!6Ǐeưa6l4 C7ekVdM_EnNp#YDQ jPE,| ؘ+22)Ly+~_;!ٸ[̅m]}͚oq=k"o:1.ݼaǚ-պW,ּe(W<GqЙω) $G(iG)ȶ &$ŋ l $q"D%%KING3 -0I|L8!Á@<}vF2 %H%_IK3)]1ۑ*_ףT4vgGSsG_x8-q{]kR~n>_}Ltlph/p7as†[t8.?P>&~8ei':ji+̝T J֨UX \=W G,Uv Fրaa[qw^6kZ`x~+w9y%Pnn̓k $s?EHahctOQ&zB Om 1'<蹚@Tnu-`@[dBk5`'a`2 ZM/܅^ ;q  -q_; 9x hxsh\z$ U΀TUQV3VGG߅J+ڡHd#*FĥVR*ѨPi/Eɠs Qf7uڀѥ !,NB4PB&dej!Z}WBF#ȷUMQmk4$8k,}oj ݷ+Pqmսʑ~ |v%v9r0oDTJ)R| RnN>Эΐǒj^!t,ضM]`@{TetV4bdW4ԼHVui.WRPR^lR\kUyZjY)IXUأE(OEiK]+E2RaT`k[+-΄Jlr-;T7X5!"]cse6 -*8:*#ʱWh ptcQ//ɖ?  \T[E D_!g$EgLUn-N 崞8!a$'Ah3u1,ILRr,FD:cka@*LItI?f" \B2 CQHWYHhCLVv~DV@TPS㢀}=BVHA? ء m$OJIH?WŘרR 5+31T?՝Y uT)㎜U󣚳B5X#<UC"սIZj>uoi[]5U4k դ{nV9Sq] 4Q@FWj& "LiB(m:kR+-iD7\+VytO5[*v*z#qF|՚Y=5 bպ)kG.P5@jSN1 x:O9R:d>\&Ꙕ%ǩY:]h1/%!n~tw f'2$yMv{j|NWjw3PrrKhI]<.ci\moЊaU mDbi^eETS9vIAuTZ#UUW..-*.,5طؤ%+J8N'TI J+lRҪZ*-*+-ƱҊ²EE%\\WQY+"JeiTi1'WGsKJklҼ 9HUյ EU5VV̫F,*.-_kE8hj ؈JdZRd!C*^LkIsKkkj i.IdB[-A Y),+(-IE%N M -()(.(I5UŅ@9V"8eQTXYQSp Tbd*)W  eIiMM*.!̫DrIx\$U%إցhu@Eeҹh]kksQ j>4t\uLi?g))NprbW/ ۴ƁQM}EljɔRK{n{"Uó0^pY 0"B0!vv9pOӃDwcrHňaLw9ܝkmY^==yr#(iBeE?V4[W/[^vs~\vb8\ڙ O2;>ه2`;;*#{K#ٿ{2{Wfг2{Gfo2{Sfog~~\vx@f_Aj^`_f/6^`/y<%5`5ge=3Jf\͞/?Ow~v ŲdIL`O w$lG]#=4=G#2{!ұ2{Pf,He'd'{=Gw.7G2Sfdv̶⓭2=mYZ n}Ml}fmui۴At|tv6 &݈e^f57߿YȬ[f^0uŲ;c'Yeֶ:ElkbW)l9uUf-Hpsk)D̚X#k` (f'eVrXoV^.\V l̖c>vm:[+ųy\Z1ljeVS#Ȭ:-Y*eV3Wa2+[\^\ kֳR=?JdV$Basły,)b\v|Az c`Wl̮Y^n7rgMskجlflw}lrdv̦,{rgYMl[̆[<.٤x6Qf1se,]" 2"33>1_$3,-U'TKƏǧq,ESe,D1)%,AfOd,eegQ¢d)1t2 G(2 KdZ!Q+3yL OeD.q\ӦmE endstream endobj 977 0 obj << /Length 397 /Filter /FlateDecode >> stream x^Rk0~_q{6:NJa21+ך\]M}_Z1dᄏMpu@Ka4CoLrj2 #o6ZKhϢy$E1HSűaMQց?}=8RI']Gm(O8$ܕ'G]%'RJ *LevoM(.Xy9e<H[,J}vtGh0*OhJ8nd/&*}#os`z7Jy8yP'$0yBCzƆNOj 58VG]F6g@쾚*n'";x][r^o endstream endobj 980 0 obj << /Length 20 /Filter /FlateDecode >> stream x^c````c`b] endstream endobj 981 0 obj << /Length 9904 /Filter /FlateDecode >> stream x^{y|T;C&d#3C@%!H$$1 0d&dqeiZQD`jZE*(즾Vw& Km?m_exr=g3 qSR[lt _̯l5cS0\`,טOMÊc [w#cQkN06t(O@g+<ѿosc/Xsyt;49ݻ>Ygгnonq7Нg,1&&HLF?K&fjC~Uu:.s9Z21Tƾ`̬bSB!1hvO3ǧ-~b, KCkP%| Y>" !U!:C;{GtK||%WHrKR^)TzN:"^^?I4E&)4tmZnZeZmzyyʼyX,&22ϲreݲr-_X$%ELV)KYܫlVQWTRrk5jZGY󭳭wژMEڒlmm-V`9mnۓvmO[v7SXʔY)5)ݩS7;2cആ_9\BC!U % 0hT<" -Z|_< -n-U- -_JK:EZ'mJ/פ7wZ-7Li1i%6U;M<\j52?n~+ (KiX,-Y~kr^ae2IR)u_حbiͅ˭mMg춉bmeݶNb{}]d21ezRB,&U U,BߐC^ :z!|HPGC? =z(;к-eЍPi$T* M M M ePlogן?Wyss9Ɲ:y.ܐs.  t (9pw#2<,@S!P j+PXX( Ld2_vzpד]wҵ뮮VuZUUUucWYWi׸1]C~|ξwgygO]z6_}'G>9Ov{fa~zǏ}p1ȍB{}kZ/j/c٣6d8B<G70_@:E&9fF=JhgA"p/<TZaVN~ yѶ>i@xyhk SM͉&s F ON- ؍h=3"h_ɍ>fPCh[.pKFN5?EZz8#@D[gD_E}U7zv?gX#QHDݙHף hM b6юfТ0a A6>46]-t`j|Ϡͣ5A<̠)C.s-h!vB̏G'Ћ 73t#1C -#3&VYЇXeʂei)A(Zа@Khh -A >@,K;[ bϲ?-gr[/:,قQıq(𯃎PIAXע&ܺߎ,EA)_E=u]yD|S tQI t R@nY+@X:5VgONi{ -䳦BF(\- uЩ ǠELSzEh2j@5h[.lv|U DT6N1>[%Б dC?!vЍv6 tzK;x&#vm< Z};ÿGgOhz`sv؀@7 1`0S { ϟ"g`oI)58`O>EME~% |TQ8aވ[Gn ȥ#a Ofh`@^٨CiX7 ҐӐ tKG>#0cyroK`@Be#t?178B;>NF NaύNe:K~? ݏJt8'aQ8=EbYg KdFl !l(3!Z6;T6`#46 6e,c&Il2MaS46\6|`3,V ٵl6+bsX1+a:VYds<6-`׳؍l!-bbak=~=f=Sؓ ɞbϰg~vdϱ{ZGw'[vfV!b;[O_,am[kkx~k`7٣0U&&Buwnf?BnMwVJ*vQ@Y&}Suwu Nֳmb- Ymf?b?f;ٟfT\)of+[vV00l};:Zم~[(F>i;0Dǀ' 0ϻ ~v76&R5@]{zG_N3د?`{wY;$!yb ॎ-U?_DwuFPG}6.b^-̇`t5㓪~U4Dqeo7#Ta/7/ ~i@$.N EvZ]_Ao?lvLv^ [ϊS9%. ,M ]9W^Y`v٣W:Yig `(T:_"/蔇v>RzyftJ竎0V|aPsc,Rg,1lMVK;]Wp>_FP6na>~ R,3JXAo:* Z<|9xȭ{Ǿ9$aʨ Su?κ[Z::~#lƔ>tݖ"fcLi vb?E^\|O ]BJAߌWop[\f_Qؗ|  ATРw )kbfBaYAtz]kKfo>58}~֚,d]Slyc\Ǟx.HU)*_Ͼ&ǎ=zT߶~?Q~Si@nRSƏ=!+s[#q8vݦqS Eɇ0y˾Ƿl*gMv˫{irJdU9Iד5rgR`{S3yM%%M]imwLr֯~YApحQ RRLA\5{tA3Aj Z=N5j7s…)C v.by8I4cdz})).\fN-+6rNYq = :i<QO^ Jij,89=5|x1޺c'ﭻ8=:ub]cqe-bfST4n|*PJ3҇$񨒛c0wLjJtt %\ǏQIn3Js*ҋ{?e<'ńFaQv:Ѳ&X ƿ~\*>q !K':bJ|h0maq[:xT6Tҭ2ۊvx2 HqS€H*tL|2 >cJmoQྙ?[{魿;[[iRSEP^GmE5ќ4Q~@$^"'C&)֭~T␬oy*I(WX8-~lO r%7Nm-7̮6":qN#ۻ_8̾wPV^,7&3ɏyBw5Vb$?N`T鉔xIFl2=R:N߿;e:$I Ն?H=MbNq"vڵh|ۇeiwp_`}qnD*};} |?X?|ˠDGrp?&?l~<Lmm)􍱄$z((}R} mᾌ ulp!q~4,օ1)p?&WD s&DX Q =Wsi~?N~vF/ nR0?\U4-SXƚeL<ߍw-QN`Qg*~XsS}{VILSoz}5T)G_j ߚ_DSmS}kNF}ރ,uӱ֋vC^ҁ׍5oŖ-UjoK;ɍ3{q_aK$7\%Z;Y Jy2 ?DE\_-Cnr F1$YFxkkwpQoRޡ\U%kԴ̣ycOqEX)j)Ԩ3 A#8*D'.E1S@5޵ [NR[//ֺԖdb}M>-7V!U,ī;Tί1CA7ďXb(F1Vn\dStԪChD[l V\[JU>Pp;"鳨{7Ȧ݈sZOFz$lZj@n"J9eKP5/[ \MdbղArmr)!CqHbDg='sf+KG%zYI ->5;V3yŪzȼȺK}Iz82 ղUj}KwcOUڻNN w%fvzFQ۳zNqkkDnⴚTZzW.NjAOSݢNS &SiM2֕h"ڥ_p Nt!>5iS-D+/;k2 "?Մ>أjIʎ$q"jfj*rF6Y]v5wZAuUL29鮴Ts%oۈtM7zJѩhb `om{R@ t-_]nqㆸwҔe}b*ΦJ3nJďk`OS T᪙fk݊v鬪66c:M;}M>(ئ6\Vy{Fw'~= yNJ F࿻x]Un˃KmϒV[ijhu'mf=aB4_&eWiAP'MitR޾ڴ^4҈fEq{2Bg VJx%d֖&F0U|4׺]M pI| r..shw*N 0UT4)Z'ZB75hQW4 x .Q\A.ONCf⑾upg*4lEEPghE|S<Υ) eHFxV(K\ZhqT-F)l 7έ mq[w FkScfDX[abףu~DlnF94 ̗_+Nn궀j_/w)M0=**sgY"[5ʩz5@ 0T;kZM;VĴ*)$-|n& ̒ dfż2RX-w+r<Ҕy% fW,PJf* مic~i\))S :0VXWT_XA>/A^eF~]&/-KyI/͙.^h#n|g%C4ȎA#7ZsshsH|4Z6ObS1S|JtOOO O'&>!Ǐ3|\V<ȳ2 rV"%gxfQ|L@yL>HO3R 'itK2i(1GH#H1|<"cT4A2' a~rn2{?nϑl}U([rŒ +r\%[:$s$Cȃ `4  : $QNDو#%&~Oz<M X  crA蜉܀9v} r#'p)ڹur&ĹT4p  Q??3bFwW endstream endobj 983 0 obj << /Length 423 /Filter /FlateDecode >> stream x^Rn0+A%[nk?@Q&W. (/5"@ v8;r~quhvO;kjdQoP'D|+t]l )̝%{#< AqtcmouKԢ S sTRpS u'\BrO)Vjܜ Gz>IRkl`tB֊Vw~Gglӛ.-P6A]^\nѵֳUIi8vmPWde9v JifNi<͝|\ ]<%f0hf?=hfA,7IG_O{X]<'Cge]d6K>dxVU;I endstream endobj 986 0 obj << /Length 20 /Filter /FlateDecode >> stream x^c`g`p```X| endstream endobj 987 0 obj << /Length 9424 /Filter /FlateDecode >> stream x^{ xS׵>g#$y H6c! 2OfjBl˶%@RB<J&NK$$-I4$-i:$-MlqK^._޿Αk{$/u{kcql US_Pyѩ1&Ld,17|Od4tv3C[[ffV1Θq7vwR]痶Fzb[G`-V\ִO/Xx~ýKЋ\+cwblBcM]ݞۗ73A&dEhZ!ku.dQc(1YmKy30%֥R aaۇЄHdd75%2Գ2/5|%w_oGUGZ'HJKKKOw/LoN[DK%ŒnY-s,WX< M,[YZX[b=b [b+UVVٮ ~i3I[HIUK<2љͲd/nb{>4%DfbfĒY Kei,eq,gֆaG*8DwI,M1T 4v +dEl:+fl&f6c󙋕r-bY-aUV˖:V2`+*-vffW5 9öfv=c{^}=ΞdcS4dϲ#{WثX7kfmeأCek]7w19x#]-bOصuw !;؀Fc7!U׫]۬ۨ^4a TEۥXol]uWvv=v.PUٝ %^֋MlYQagQDa[PqOq ;apVÆs!pZuM_|^@=*+i"4 7 7L/28c 'Vo.ks$#f !O5` !AlhGqN@֏q߿ນRSk1l`x9VvJDN52j-FHʡ^s+$w Xg염XhdqlrK a+kfe u-H'K\Xb*]KW*?]ewޥb+v0_y!])W yaPr=Լ%+"Tה^J02L9"k Z}=ta ;"Qb\LGGLK6YvEb|n}| ;/lxi+NtVN,qAE3$&ƚ>|%`h ]~ޟI9AO=-sMY-7%v٦(5&SkdVg.3=.ȒRNG! s,A~!U7ON@YӒϊlRS$#;\d /Sb z{z.fWc}x;ޛN=a4IX'3m]U8-υN *]Y:δUM6cĘxWe!gYANM2<:0 8=蜑B6dA. H0 ?]zag &??y:_]g0o xL!ոr=NyyOz).)!אKdt$6ItNB!Ӊ' !׉S'NFLCim颰299tH.~et >=aӯS OqU<.&`z8~{aߞPJdf bt -“#G߁NBLu4cuaJ!!!áC#Hcja"Ԕ4~FNlbvo_Q#L7wfH7B/Lq/>ûo <_p"X ¤mYCh]l|T D!wo2c1mKν<.=55Ho-V&$؜y©Pj##GLoئLsM03%ZHFbT JDc f֢X ͊ ҋQ8T5C>^[ěݻm]{ _k]ß>!o˃o/C}EBPuQ*̕$Iy'-Ǚ%j@Y0Rxz䣑iX[zA鲰:y%R#rfip=g|w-|!7,p~^fbR%|Z̆dANcM{(>fXtXLIS\qB83RqLC' Cj݀՘edϬɼ*ssL̇Qu`(/iRz]me;YxQmOտ\JUW|XRֈ^3$%?jH'3=niI,f M33C'QH#(wjD ӒAcÒ؆+Ve ,2Yf3W9~pI^b5= *;w#|`度kuj)gxsCO tUWТK]\8翘 "|}콴ӟ&|;=_^?a'w%| X;7~]KvN#?TCg>r|r#2,|}on|}OV7QJN D} 3ݙkLaXk$,\>eǮQc&16YtO,vD;RF6nbq=̤m^%h2L4*.2(sGp -\FGpS?EpU&DX6[S<"e(nf%IpygkcS'a{iؑ*XwBq vvugi+x0i.}h_7=D_NvO#zOxgӗmeRSR8mZد,n#OlWJە:W<~Ow9XY^ޣ4;[=~QJWOcIiu`p^Rn/@vF #ǎWQUʧګ.[{}Ja~!Ɗ4Rz1yZTVhu¶X1fg^x1c}hIlF>]ư@kvAA3<ۓt7yZ|ݭN/#A4FzalRSQ$5=GlHV(k|aqD^bl7[TKHZՆkh<ԪrؤB5E}J׸iF6z}3j]d?>P D* UV'*ef@x_zjԣ&V#.E6kQ?+[Ǝ#(5OQ?74kh+htCmG?6Iݯz|4!jϭVM~N6\V4j&)UWQ\sըi,ZUFk[+6m{4"ZCI;MY|Гil# F#4U υDu$;.Qbʉ4Vu-S]ͱYL-LfޚD,5}'Uk:.pu?p6*T7Plismj4y׋1#σ7=q҈zwb4DkՎ_D.i\Rj]S5sz;6g@kY(ZAhGkm~9w4aV5yu~֎j͋-gm1GkX=V`?X>=:U7mVZ|ViݢiL Қ_]Oki.E4jbf[!C)CH>&mVgK=5F}|ٟք~uObjaZORu$HRmfNhYEwںVǎ=]ԵwG 8:Ϥ3ѳg$ǣ4z}}787G0ѭhϞ~hOgLjrB!%nt)xZOwׯxwۃnwgӜtCy q/Oqw+]8#_cǽVpi‘2 y\Bwhu{:0C5#ĚkM=΀;@xq<(z_Kr䪒u{<*f/=*9pFLymFQ8>EI<ãjn#n)9z{!jDXp at*6_DžZz;Af)Ƶl܎$|^2؀GF_G@;W8]*3RtOV8[z:Jr1@ F(~kx)u7t&킻rU՛=~okjn76`j@O#?q͚cG$"aTQ_BϚ1BdLM4E<;@ٯ8Ζ >PlNe$g=&?>ʌy65 )nlG "e5}P~yc"Yl<* iu2[u9ʭ{ 04s";}g7kUV(Zx{io!+ k +JʕzfyEYy(ǵ#OYQѰfYu% JI*eIEuYR^S*j++qrYYE"eU4(U P(ǸJUy]bP.YPQYѰ*OYXPM4hR[RPQN]VW[S_e []Q\ʫʡԮX!p3Oi+)+*[G@:E)AC)_NTV* *K/YgQuMhYuYICEM, VTT)e%U%H(Qg4`Qyuy]IeR_[^ZAXQW^ i%pJk˗. 􋲀Cz@WC]PSDDYQQ_UԓG@\'F`Or^uD^ݻ0:ЋFGXV^R  "74ykhrkQ-Z䄜ԊBQ'WGd:int@]QK%V~{=~i>/&SZ}ȼwFznǰHanoDq`nLpQ w{]|0L-~N숨Ʀr!ix{`QϿ-PWʑV֣.;ߡyy (ں "5}5t$] ̓/!zvh?:2_C1_H?2RlC#K|LyʟO?/?={|fy!̟"=*?$&M,cS4{Gɔ G2<"=pjKk^ K=qtww;w5˷.o+ߖw.iǭ~kQ.o/o |K= m@_m67ƃ|Cܿ YoňuMϗ<`_o|rWygwx[y[yKjsoq׭MxAkBi|ul:į0U+-|(cyC}ܰgL6M^kLrmASΫ&"^\Req^/2ʋ"#_X//,eqrycti %OϐwSb("慹ra_Ӭ`b\0ۍrO3Sw<3<4%O6ȓ-<7纤I9fyn{9f㒲 < $vyb.wq]1v#oW\ OmgqFxrylS<%'vI S 1x"%N &Er_Xb]yɲ 'sRlKx,siąD'qD`b\". 4p0Gl? endstream endobj 989 0 obj << /Length 403 /Filter /FlateDecode >> stream x^Rn0+H`<(Bj>8{I]86!FEBh3czoip+VsV^oiDS_%ʮZb EL/ho$vIwS@i,+4)Zwf/ת" oA[)g 8tpnÊU ˕l,T>"& ʉCUcܰԗ,|;蟙8iS{tgq s^!t9%> G>4/yDHLٜB1j~Tm=h?WWuId:፧&Ck&ݶhڢEn<=[ꦤͼ~F4R0r|bnot)ʿ⻟С o endstream endobj 992 0 obj << /Length 21 /Filter /FlateDecode >> stream x^chh`hf}^l endstream endobj 993 0 obj << /Length 10847 /Filter /FlateDecode >> stream x^{ xSU9{i$HrЖBiK@+K -PF[J&mmSRd,nUqqAAqFqqFe 88 {ZqOܳvνE!V#59yk=g^c}ׇoR4. K_U[z븂%tx\E( Sn;ƻC !.pwk`y(>:mtt}a:X.V<.g,}9Eh!;ُW7{(4ɿS!h*³ 5!%:RT &Ve=B'"0D[!V~  [GK5Ϥ2)a2o0b13a~;JA:mvrB#Sbqga(=Ts{'Cm=}{Z:F]ڭj>}JSAc~#cTF18xe\n\a\o|)ޔfmmj4u6M=GL^04tg`ެ7%rMu͟j>olB0F(bVn~a𒅱h-ՒneYl Yk5o[Suuclm16-fۦ؊mr[ֶVos=}G!hV 5,cq)iA2%FrMLnMfw^5k̂y*oc>a-8NH$4.maّ6,&Z Dkm}h3,)mIa4IlE٠jM[l6m]m}p[w|FTF&h4;?}(WًٸfKw]qi說.2T/Cz=JЋBχ 4'#áC '1PW  &&n,/S r 88g <:}ށm[6 }`@`;6 o_8z o\8|Ѕ\xK_م=}3?>s{l9̪3Y~̢338ßaΠ<:W`t|5;=P-w  (",`]pVpbp|0?8BkP#jSpv\ԊVG7wA.ߍ*@oBw;u"߃n>mAw.ԍ{ޏ~~Ag3mVf iA1^m9bs|#I-b y"&Wal,HDц$6 =l9C*1`D!C }- GҔ4۩6xjt¾KPKꋡf> ? JO(ǥ_i>-ܥVxU8ú'(A=~v ?{ln|%6kqORo||&D 5=i 2ǢyѩI#Q)qKqKUQKsҴ1Ԥ46Y>qG~qVwb g 9С]R_nc fMV^`7>\ 'bY_Ԃ*l\楯\<'O((SοzTVVT T]-ҁub] TAƯ' ;K`JQAVx499)9l\Ѯe2䰞E J]yEmbe>kt~0 |lckW D(a^Qs6c^Ք9cr}qxLmu.#u!ȸd,y:ϴNp`:G%fJڊ0>cFwߐ]=h=]w0kQ@s &#rV:uj'z[X|#|‘ 4 `Wad IlUA"$d?$[$]?J/ud-$9(v)lqZ(>v;] YA z{GDmA͉|sfۦX_(dHHRʠ6CBf:L0G 7b9\q\s0>FoTѯ1NN; udTkǍFmSXڅ&|mvzZxǞ`Me I­kVX뗎348|w4PbHRcTn/fSj xCJz$1,#] D 6+Rݲxq[-{|_~zuWOΌu.0^+n laЕƮz2۞u$zsTέD|)(4O$dt٧r@P!P&i7m 8O޾{ Fi) Ff'= cB I'h&>& ,20yM&5n#鏉Ł_H~D<\"?nqGD\  xNpnkе52kN،ѱnEN4Lo@QZCԝH$ .TRa]Ah?]<Hfh: b?*aѥ1vr̈́#!8<Buk bOsŭ P9ƣq)H7uk*@YaPIG'BMw.fx>p9̗xG\oZSkȪS\i ggi`QjeTg9*m2cL[ʋ Bf&먬KQ4\G 3u`\91BlE޺·.ugnѲQw7~Q8Y?ꪪY7xny?V~ h4ҮR+a3j?K4!BKH%H{RِOs-|N0Ÿ)lil}Sʹhfw[ԨXdIArևTK'@- |)SQ'G/IKk;E|v5֊g$ŨX{Ry>-Mےu 3,0erSkO];{ai0sҚcRIr*OXxA!(jr9Ĝa9SyrjzfjةqS&LէIXYñCc {_ˈ?In+.n'_,~G< +k|b^ʁ1l}`Z9ԅRǣ\;YBwnڦƌM %?\Hyq"M6GAwː9,Әi4g #,3u8RZ` #tENy~~7ڝ|:-Kfog/9;9L# Oo{Y &Nƥڸk11$N!(oC8I@bļWkJE4!EaO)sTg_>5Eq8䓐 4t#%g >}'N+\@w]-3w\ڹ8|n}{* XcV1|k BT* Yc4jy%b((_5˻Ȟݗ2+aWP]YeՌpB f*ƢbK܀{\܋wwy_ 0b, kbP(G1BI8B1 hm4 Ei4hJ4\7G٦FGUvw_dX-zXY53T )'!Gsc>M5`!HVbZU| ͘Rs L:K(E:4IyA.G}`2HY LF+L~ cYcO/2eʖO߳=f_ħ_=vO6Wa?`x1b}r %MEkm1kSciÒSlcQYyDJLAu"c+Nyœ&I a^ tܳV֭Slm}껞yǞبɏ;rQ˧]:[32+хG~[}\sAvAV6Gwgמ!r0k?PZ n9[\x/ʻ Z`-/)O3]p*Amv{}Y?  Ÿ2+ޅ]Enp 4.aQی{hrVi0'g킻+p/G2m0?ZEpߣ~/KW.X5 3pODžyf4^@if Ц0z`뽀!=.F4f yc.a'\,1[(ji,P|\lukc^~;ښ]~s 6(8O NJc9F0G_(A4nB4o |+TW ̓Qf/|~M΃FX0:j2)ǔ#IBDEoX"j"$\T\7sm,ʳa~}v|d\A@0' j\֑v]M^_+3P1a_k詑RkX N@X٫B8U0 ZTÍMo8P=avB@m:-xA*PΪ$ -AYBm#QydkAM aW PpDCR4jf@ ̢Za =ΖiÞK :tHσVb4]KsH{a2rl?jPZ@ZAw4b:I|A!qP&Csթd!Ce)p- ʡ(tJ-d(0jC!mS z0_z d؞TeQV3+nNI*UIm#ʉW/%0Q@3Ԏ)4JF4D92ˉqzgmXʀA -<%pm$ɖ¥V& ʠĆƀ(WԷeM8ҐˎȬ& Vw0~kmS$ 7#9?D$sHEb2hvo*9ɔJkDvjWbڋ:nbMЮ+@ KQ 衰鶴B +][ R%B6]eKqʛ CԞ }C/_."SZ XBQ Lx,Q)R2Tr"IFZ1(*h\y5<)*Jm y)(5!S4]zr4>rY+QA1QLz]+Ij\:[)2ZA(tEqtPϻF T_P'M @@hT cTTegrmHP ZPN"Ю#¢z*ԀK3KTuzX2L#seRTH3dxWs!{٠>d P 7٠)DJsjʮ/?J D^E|Ւl8"zψUHoď""~(vȰ"E*O*'B9P9kr/F+p^q=zJ֟I :ji:oWΏr w9k7R}U7Z::]i'mR)Y\18lIwOv2W:OkBTӪ#I֓4:R(,"_fOhYEvrHJk.jVM;Ơu 38zIP/ #.jvff QiZ=N z(wf0$|[*x>V\V_:n>G[|<,a8O^%a),6l X ]|hlt:!pj󃀭H)8~oహp(=M8A!J oS4d͔(y. 'ݞKYpᤔtznoGi9z?0JZ]Qߝ5Gř ~lf*Ԕ8 2aI:kijhBLsz7Kw4,q5h,0IPյ0h.sI7$.A7j^01vS 6h 6 BD+":(V䡆h A:ex4[I;]~O3d?nh$ u4?]՘dss p0Z!m-] S)\%IyLIuq؝Kfs0a#Uh,3 .& @XH:xhos4 xa _)?vYC,)t9*Hfp<[RUC58؇aqB+br +Z -jiD*fTV 53jo*.Jky%łYM* 0vP9C(X .(JWUBiyUYi VL/[\Z1S**kZZ[)- *-u3rѴҲYŒ s-kK-+VWU֔b[QZ1hzeՂҙj`Q-tf E%Eճ(r M*P2.UTV&L+.)*stfVTSͭ(.-+Eh'L/+*-ʋfRv"H0; fTTe 5U%KiXZ]2 {5%sB̋*oD~KVV@¤TZS%UP̨r>aq.ȓ*"L/:`]bqIQ#v.XWFW;?rxB?!9OALf8'5'GrޣH/_> DB6ïs F|i/ &H4p;Z< ⥣#ye@$vw<&Ҥs[8r@\MOB7<\-]ـGL^I瑟 N<\!w"YիN*CV:ɏj "n#]Id9t,wN,Il'[I;$$zkIkKzf[> stream x^SM0W$@` Ri?hh*bGNrמ!HȚ7oߌ'o(7huoSxJ=HC]WEVUݝ%o8I*Aq߳}_rj~N}WugXˬZL[i`=k%s]V[/Ăc\^1Y!&j;3W\\:jodM;/x1LNlMK+9ĸLѪy=5l+m.GLH6SxK; ROp9gxLik&Nʂ x$!9@`d>J]Pm4ڐD+"krR(;9y%fB̄TfVnbnno$zc˹W nUwp0\ endstream endobj 998 0 obj << /Length 22 /Filter /FlateDecode >> stream x^cd< endstream endobj 999 0 obj << /Length 17678 /Filter /FlateDecode >> stream x^ |U?zoݪ5 t$$!Ⱦu0D6e YH,D@ DAd7DDEEDdBeП$&g>}?/vϹPB,"xGIN]ִbW[S1G y+ovr`%$"!BJa;0}–pg*! E#d`>w/낈 n_TRyO̧>#3r_/A%ӧd ŶR[R0܅."$6|VAy)\D!P}HH]uکR(clbFQn;Q F& 3(--rBJ٩|ڴ?  ֬ S4`N{~z?ӫw!Z҄ apL8!|(|,|-\lv4ּ7?Psuk\\\\Ԝu+o]9r7컲ʞ+~+;ze?|E=租/8! Ipohh8u 6FÖ 5uv~g.Ǚp™Ϝ;S̙#g60#_`N}c-ZgZ*tod#XeKu}zbpppp6~<  ;9@2hϣub?9I: Z x p 0|KB>(FlBp[݀`lh1ohoq V By:pA8|a~jwѮ<>hg>%r>f"c1hl~ 3qUqL 3h!#'{OKhkra hCu`_8кt` ɽβp;Kv* };Zx)hAD,7ĮhA-t :Ѿ-Ar B o< A s=-/&?!ŀG.mL9Ђr􇣅9#BN,kuB 6?-A"e8Bfh!_lElA gtS,E ڠ"rg;gו#>ی bg1 WIB:Ā7"x^܁>掁_}F l;YƼ#v#"g `,d8qbu>otڃ:>Ј6]z'F<݈{xF@<y`|#x6@ z遭p0B7=oi1-6jDA|@=`} $zo1 >!z: 0r\Lg(ڟ /Ȩk . F8H &!$pA"I&H B n8al$5 U$$҅Vҍt'=HOҋ&}H_ҏ'PK#d D2`2 %dNF$"m$!9v2#2A$d2L%#YFVd y,@ęF'KI AzWɫS{&Qs\K5qRMUARC"Q쀬%qOaPJf3j*F& qQKiR!jƙINu'(+ i1q [1x@"dq|dw/R#aH@Tr9)CHCjB:W}q*F.`i7l ń,) 4bF?,t8k2_MFBCX7^FKtz,b_*#B^7 [!.t'&B_ !dId%}{x oTe;=`ex1Z]jq:'=^M3͘:;nj 1];2KqϜ]+R?wgȼH )!2 EuH>.ŏ.;bq"4Usj/d+ .{{;'b\H=<ƭlա2x5:ޘ(,uPl@ )^ Om{T I~+ȥ޺zBi[6aI4;{n]ñ'N {˿.*(ބGMxC]#oS'0w7JeCk*ᥦ}4[5x|۹_P˄mv&W7juI+xٓ>\j^iP'V*[yjuu &,$ow2+|G"ԓ+(wp0vDH;݁k'M܀43٠xe ߚeǎ֯_&/ϩ~vkmWR1CkyG>#A|vEXa, HCDr(ʁ6{SwLzރ ,Mph,ꁷ&|vǚI1M?M]V7|,[):c 1QuJꐺ,XgdNnvɅ|gϚA_` "tM%!q~.74.{jW:h֝{s}m߳nS~('Rl߼iG\3ȿy=WdUg7?/" X-օŹ$>m`Ww7Moh=~ABѲ5.]Q_^\QUՖ#͝hu>zc9;8ujl|M{y4 hjOx2 {Һ^պˌ&5>"$*+ 2p@n /,^\d.~M_ԯ3 ~Q6i,̟A͗2uZڢX1A٢fYhHZ* .-65 )z'*q8z D{I~@AL !~Pڍs^bٍ߈Mzuy E"-t8mc7&T4~#X_ҹ YBv$/ A$܍raX6{s:y:u)!O'hr\dT$C,R\TTdzL$rd qW׺0DIb":R<<}wjZtU|~ .P5Z3M=PPU;/2Hr&O^RcE{8y|F맭Ȟg| S#96=_ (oc4 bD@$F333B ut;ܺB$%-/!iշߩ}Ao3O00J'y̨d#2jDfM]!'Ij \,E6+ة+3OIft]jP=Fd l ZN̯HWQ&b"ΠX(Z_dNuґһ^֟~|d0oKyV55#+Bڊ'CNn:~W.ЯH䍊|cZwLl]TptS8j*%@!+=#=.#7ߡ~hG6#G?٭cGZKi)]ױ~^f'CxK7T3-'u2 4XiO "M:{|aӑ:N257m-t(8GJVת=ʗ+oBB:zd:3L] ]X`}}pnV74w泾~MM77 6f}`a=XYBAC5:/Ί!EXT]匎tZIT )>/~K#9[8zҘ/m۔G5gt#i-L$wL=튥CyjDm^r z.&,Rtnj.o=:)HSǷgq͟ BN(rqq\qfMJbbD4&+ܚoX^gf7H맾M{5Էƅ۶Z+|ibƺ[eP04©|鴖ST8YRoi1Ljn6i[O̲,&e+$Fϗ Y?hdd4i 7FiGohꎲZwcO-ЀaT\DOSS;o:I M`>U|c"%vT r:G{QAp] •T38_8cpf|a(z ]*a!ay0͔H.48́/J'*xX:U[le֭_Wm¢ͤQj[m4S.:p9]F4?}B懂I'oc!vWvJoY吝#;zQ> BTN;.x(EqfêB°Ye|Lk[ch}mwo[kLӷo;gMEЧw>aE^ZwA(^&lbf 5 !Œh4qL+#t$0#VEd$}G3Q[|.|L uD:yay0Q[[(E`d[ Y7t5Љx6N+!a63LN7Y\lM?XhͶ_9́V8_4q}Bq7ŁFp 1ƙ@%hKU! ^9s,Kň$[=b91XT=<\7qFE=N DK@;Rea4bB!1M]`o)*; ]Mӱ![LM|>V}N/#67]4/`OI6qqz].֏/RpE+ e'֟V!57\3Zȍ5ScA2nR:s .&dQՒU}nm^tc:߾E>^ r?R^#JFȮCuPJ@LuA"hi3A(HTԍ*8^p:7&ŕĦ7M&&M"6EnM9$nz;PCiJ/q{{f>ݳϫL>xG+Ww[򧼹yߡvuwBBvv*i}IFEXM:T.p$(hHUǀT5jE)ИBJ^P/rj/}Xl~xݻ?G_~.ܓ=IOx1%J8>${+ȃa^mAV"Bܿ?[x0! {"OAx5^ܻԉ7z1 A@ɮE"!Qնj:~8 q|#2FU mj;lI_݂jKW\t9;% 1h8_~t <Ң3| >xUr.*W7#aB;)L&>܎(z˗t_A]Mg4`I;FsŇ/}.L(N^yh0Rm1| &kvj5i5y&2 ,@K#o4~ 5Vf7[j, FiWuMϫiJfjv[Ü?P1gC Vgt 3U;ê,xá["$9((v( 5;Mz#O8t~yVOh#n]eYpKGl3mG'>Vr̬M-:''O~U.zWR綠i񠨦_ƿDo w o}k @dmQ3žd qƨ4'!F+w]Ä]u_y<<(%|&œ]z89$ D6Bein6 07:P; ~߸A -i*%wԵ{8) yU2; @ݣ7F]j#GlCA`EFۄGPVL7W /}^~ƣpg&¬BعnX ?Y9?̷CoGz G 63n*L b8Vj"e#2DeXqo ODpTAhyI,aBa&*u7 *ak4F‡DHr!؁%H }XT{zLya+b\v4WkhI]Z8~z[uEMeڊrH|zJ4 Q%\\g^ K&{SЍN~'Tyښ;ܷ;=CJzP Yz0!VDz;F_vm9ĝA7,}Sj@_Hio_,6Y0ׇXucv5y\1fl|w'n{LJma[Ԇ[yBZlMd 9[]z` H!ýf9}pzv4rTC 6871P`Fcϲ %MPyTm?OWvyp{RjLQ2be"[Cwg5a$, !DgZla jw:#!CE }u=&+߽olZOu5jjM͸տ=:2zjpwZpEYіP*$(Wh?;5xR[+zeNSJI:UaV:ѯ;􎱫}U^[6\o׬Y5u?}Z=2%);2#To;u;yqEK_mOfk<Ϲ={t߰,! xzo_ZI\Unī$)xoD[Jv>>0֝{6ۄag9Ƽy7,. |2Lhvp2^_P^ MbIEҗҗ V׆`C1Bj\kEf |}%bo&)IhUm\38ӌG |.4 ga\2];SA`R|i) j>򹳊U*:*))]isʊY%Jfi^6sϪP * f.O2*+wl^-^P*PKi3RLp#c4<9#G)7̘ edY)cwῸd esc fU*Ij;H܈F62o]~ JJph:T >IφpmYd<[z\Iא쪤Yye$6uįM\&ML\=z5lP\-53޻?|7ýtL>)cVjXZ"gJp>~ 4?¯^5˯ZN{/F_Oymku/DoϏv~yR [m0Kg+6\Q>?G|fUϓ9Z<)|;3\7R5BKJ!/|iuk\\O3}bWuQ헣g:7j]+Es4~f\Wj>T:5SR]EһpF~N[=r/cG un9>b2-ʠm.ʁ?z?\k}rh{۶.)o5z&?i}ֶ,m\M…GH~NkjEǟym88V1ޕW[5v Vky0ݗ=qj43}(NDŽ9{3OS[)h0Nc1qg8\oss~h lǟkpޗjyO[4뚩[9ք7}j+95n$p_+LFt08uKMjy8Z{+[\"~v9>zϣߗvtwZ籋stZԩ3mJ!\;[eg\mW8[e,3lug przoBp٤a| #pu=]㗩Q89?G\?S目 \i8zN H6?ڍ3r2|/}}].,Mr }-U8Yg?>\Q8&|&|o#\ǸtS/}鷼,MZۑɽ#csfsVʿF>Zoڶ L])}},*@&iU7\u̪|ɜʢJ SR웈Q-S*@(''Q))Ш֪EmHs&R* P%@GMSs0,x }&STVG\ fbBp)eJEմ *3bΰfsN+]Q5+AiY%\*bǔ\5W9׀J|W+eЋYJIV*b"G(%s%eŅ\rgVB|Jqwrg4 *O7K< Rk@33,wfnćb̹J .*Iw*83l&R+ S6+Bq_wn>̴X rD.+&S Qrabf|n#ʢJ(/(.m4<_*!܊!S$[Q6[&:.\қ*|6#y3rõKˮbEMW3 9RC3r1KP2(G1Hq;Q3t9 NʙeMPgf JT2Ə3Fd="32}Pf%eQFd9K}CefȌC1rZz̜ ̜,>` Nxle٣G0lVfl̒12D`FO24'`g6(cdZD(h$Kd6b3&';#m$?sgH֨Gg Jg|'p)GeLTLOO~ʘ3y|lq&xN`/F8*kLmcO iar89*2d$*iٙcDg\x;Ʌ×ˈv,~2F`@(IυveܓWP[5WO'ؤCJa> {ei!Np O_>"t?^{|tw&sLyhUVR{31~eL\s@F峊1Yŕp&JnyP>*(G*]0sn&Kq_G*{ӅJeƞ|IoZF>e<Ζcߍu5yNb{ʋʓ}>?ڰGXDCw$CEokxZ o׾c~ S~Hiq4,poh㙴a@F Z_ΑgACT 5QeRo دW_UA jvuxrte/dz,%~VORG-/S! B>^e*kfTV?Uٙ}o#ﮱo#7k}/TZ٧g*tE4}}ܛ#}wnfTN>Nc*{_'Wٻ*;Uʎiv alIU7&IH|c_$WlO-]&]hv]ca*{5g ^RE6=&=ʶس[ҳ{3 ӝ_UYeOlHiS>]ɞ'l$l}[XNe%:_Wj'ժQ֣أĵIk'^qQ~x{(Հ5il5]VYX5vT糕`8Pr-SK*[`QHl=l} *o[dlSVYUU dU)~.VZYA"UxY*[e*++#ղҒRVҁTٌTvʊSY56}+TYU7)lKӜ,WeSU6Ee'Z66)wƩlnnOe9*lݶV٨}* eFHźARf! Ul g5xˈ`cP60! bw ^ILO ,}@Ii,m7=-1n[&i M|~X_z+%z{ʺ gDIg]tUY*NLUYRX2z,&%c!nOhwH,[+v/ƪyK(:Tҥ >yT *U:K ҙ3'fv,Fev*T#Y"Up>vYh] B, \2(w3;f;]]*@wd2λ.}FfC J*31T&chYeR-kxjWD;Q3FwhsIc] endstream endobj 1001 0 obj << /Length 441 /Filter /FlateDecode >> stream x^}RMk0WhZHSB0$q>i9KVK,>d75yFF('gFսlvUC&\սc]y nP{Br0pN~3OuJ;tAvWXFQ>NZ-hCMl- !h8uJ! zIS!y7k 6PgMK~a9~"0R]Cd}\dpFa潪6B`UvA;(zEțZ@TL.@r_F@꯾tӷHg,o2y0ݒx0NGȃ$nI=3y-؃+=8ﳞ\;0|AF8]7J]/X݋ם烄뱩.,|?F7uo[K endstream endobj 1004 0 obj << /Length 13 /Filter /FlateDecode >> stream x^c`;`y endstream endobj 1005 0 obj << /Subtype /CIDFontType0C /Length 610 /Filter /FlateDecode >> stream x^SkA֔Ʊ-ZQ5i-X"-"،lf=ADG=x̓^/-;6XI/eo7obގ0DɌW1I,M&Omwf'Bmc;ȠNrZ5dFHG!47hb9;K9=ÑHܞ+:l6YD" #hEIHg!n2Q7 ]zςQ@ff8 lQn]Nr =|e2AyA ?SIKup2<i/aQS2ޫ͙ >8Ԣ)ܥ~s㗥9Qe$3;P"I"珫*̭|Ƣ9i(u, g$ J4#$J{iXjlj~徟U?U5q߯[6S>mt}M^ޭen9eu?h rF&TC=?cdI},Ja\y97\$zM\TkeB?UJV[#u-$ endstream endobj 1007 0 obj << /Length 361 /Filter /FlateDecode >> stream x^uRj0+@zpPh>AlJztu"%#ˇ}WJ ^xf.ޥ9b2tV`4_  Ft5jA(m;5"Gyȴrδt{ߠCT,YtȊ|]sĽd'h@@@*'0q`>Ieޓd>3QS%_[u+æSl,ZVͿ#.p "I`S!UX6䏸Aa$M)ЖlJy ])C-:V78Ǥ߈siImA: O4LTU@y}_w YKB!4~WܘƳM?ib_ endstream endobj 1010 0 obj << /Length 20 /Filter /FlateDecode >> stream x^cF|%_ endstream endobj 1011 0 obj << /Length 17759 /Filter /FlateDecode >> stream x^ `E\3sd&\$I!B ! 9 I6'x(l""* ޺h*{& Ⱥ/7U]uuB(!FF'N?5p T4r{L!+!5ꅏg&$D/9o0kB"qsZ3"$w}lVIaW{$}Y8x:!#:k^]o^>p`tQBn^^)kM>Jy1WYURpqB!TOZG$B>:kmR*c1Y8Im3M 9*D%j[tiжm[`Lp!o$c~\4MA3RB8)]8Ƴ l2jٕl%mfIaR M.VJJod쑣enq$ĤLsy̢kcy1|_/7woooooM{|45I-Vެޡ>~gˊwMCǿJLK螐PpE’Hؑz§ Ǻ&t-붡ۮ$1ɒ46i\R^ҤKHz(iI'%$I>CѥGz3gBJEʂ)KzHHMV7n\Eu}֏_C/lh}Vk[M!-=ȔYuN5~W o%D$tI3]w%4kAnhdKJLC &= ~u$N~ 2mAz %=v'驦2]+- u#rCէ՟_?>~Y}3dJÚcχLÛG65lϛ[4Z62˴Ӷgk{ᶝmmk[׶ֶ[nn[vSۍm׶]6m\ضm%ڢۼm6{Ml#i[ s3}/a5Eֿ~u'Ng{zӣO}}ls:'~vg_4{Q3g{6D{&ޕ+{.zx{{})85V^57! 퀿!|r6F{`Z. ~3xc29W0/ \X pn @4ڛ]^!}[\" -@Ġ-uyIף WG0AlF ڤgoEl߃<ע<4y'&^s0<e wh z61>Bb`X^l ;m3c:cc,&ЃEb/3zbfG "!#ΌuQ,t!:i/ >_&o4`r3 -A> +()>>Ǜ@}A}wjMkJ:gǹ*Wa Qa*l2UaV0Go?2wEZG 9s—8u0Z+ }+nV(.+dXcV+8C6{$C^IB !$m!d MX'CNd46ꄞ%_ Lhdo'W2D HM8PO = K'GoGȧUȡb~rCԤ'0 }I)wb '` b''=U>t7.S*|W/B/\\`uu -xWv]z;W=|]=dB#`/z 6Tٻ`ЫzB̭_9>s_spAp4C~"wiGy@3|[3lڅߌ6k|!_f3lt^F |9mf|D3|P3p 4.9!Pfe3P CapGDC> 4QCg zw pM(pPĹ6C|j~B:雰g =r> , ` -a*ڑ:DcYX7ykX/ } 4"IJa6/a .0{%r'؞uBGJDdԾĂE;q$.JˆxIH4@Ǔҕ$n$t'0"7I#t҇%H2OAd0B.@9q( 2 '#H&IF$!cI6GrxK."yd'$r1LKT2L'H!ב Fr;YK!-d+# ~FCdI&#dy,'E6*mdY<5UZr'uSR+);q#i:H9bǵQC**+OkMj$[mf "w nrBNX/%l W$h)CKA^H)v;'~\.^K/kgx-(n@1\FK$g@a ,/w]8V,x(!nd @ IGut29B\,'z.\ЏǁZ,)d=>*>FNj[#BOϒO8Nlm"57 mKI#Z T+K٫b'| Pa>6 X|"҅8IhO>]]&,֓r-!fd^LNrސ7W\7wLfٴ@s$JOSBLcP1] J@V yiㅳr Y#&{ , .$ Zޠn#nº$K"(IQ;Ĭ&/LrGiRwܝcmmhiNNh)&&|Wc{#ppd̀_~eq k߬j,use ΒAkkRi+|"v{>x<{oU;%|o'[{v s8Lo ?__!)q Cuک>}6(q+>S#GNODĈ@ b+֛4$<.hT «',Cvφk YvF4/>ĩĥeϞxl\;~DQH#CIm6Ni ];EXB=l(V9Bb$BVPxcѻ1]tq.I+kKrHh*naŁ?}F2%1z#b$IL" "yHHazhE:Ӟ?q?`F.;0?>A=MNǗ&x&g8¥xя 1FNS9˹ir]H-gj/y늫+&_֎hɰ+G-MGo"7}*I'lQo5lۙA^ tg|njMvS7t|-IɁi4zb\|$W,lO蜁5{vmo=2sݽr+Ҫ}ƭdIOxb"M?`vQiSOG2Rէ\tu5; 4Ύ]cD¬e,Ԧ(,0C6b9zxH#! cq>&.v Ghw׶v5uR_?r )fuvsk{i]xe{q::Ol36(f"%79m'[LI.=EWWx7M7W:;nk_}sJ;y^:=r WD:*/U"+~_wvnemâ"}]u.֓oq77^R)Ɯ৴οO=F#i-͜ՁUWϧw;_khqdp)R`ɘ( [W¹tI21J&%ucH&M8wXҺWAHj=O:N([,9([v"o%;{cצEx,65*G%*:EtC,M(x+8c0ٮqv׷X`ܚs+V(9Fݸb]p}ouh%3f\2H0viO>ے{,a7M.1 e&tN9Z?nN6|WT`{m;Ld%nfg/j#܆W[=IEuQBo8HEö*\E0gHvtbZYa..:'. х.Ȩ.=L$$onl["B0cp0G nі XHr%7GR6wߺcХ˵ɴ;mJn%zr.=Yl#qkmX6H~#8w%'l=/w|%cw*p-ݵHkנ4]~KRͥ-՜G6爸}$d,vapՌG:Xk!B^e _kkGaa ldpBNl +•=՞ОXƍ-˵ghT2PwRP"H9uyK}r /HB8[ |܍ K*݉ˆN~w*C?wqCƩ⦫!++*nRo[;A''58Bnī.|v(l y)ވClX?fG9u#08܍}v2m؂XtʓjdrH…Ջ-uh߽^goӦ߸~ȌV8} W?+}y+]p)4N܃O9]&WLEu5k?xN'? ^w?~χ\ʃ~'z: ~o&!ZK^]G :Ã.Σ.UΨ>^֙utv̮׵z-U }MY5EA:n_nĤ8 b>,mѷ#6d[%#=v2B N ; Ct;fh 'Xu0NN!)-O7/,}ci<5 [̺))#ƴh? K-Uc)QyL7{nE3E3Cn6Vm4 9xH cKL1z-)EM>lCh:,ߵ땷d#rH&V@IqFJq!$۝wˆȍ10 K C%X7q=0y0EopÀQѣG Ctx?kuX_վWkw<+;Xt鞩;6V,r3M4cZQ]K;}oe57n]f+{R(N#(+A;CiXFͽ[ڞes햤WB<:'a{PmZE?󢰭uR]w{yTB҃Zߑݭ͘]; "p4EDH1RX6]lTfJK|qȴ]+^/hVKkL(G1ItL@(|izat]fhjk`-G-ӻ75ܿė?{6rv#E+RZ&XAv .~1큝'2r'"*"BS%bwwCmf2FccGZ*{{m{arbM,fF\_޳o 9WuYi¡4l?*M_.IMyC:MKѻȽNKӯgՒ{oAzͱ[ %kE*݃a?!CfmL"X`PG>V%;]S W,=8ؑClU ~#a|K qr\) A(n`t%npcګ޵KG{K$ h#2,Md|y->IwbjX5 qىdg[>٢|wfq7<6ỸE{eG^9U2 ݶ7mѽ+H#7Ibp7Lqg~D~>B%#و @y=]^]wU8R4/LJe­&agu@8 c5^Xؙk]X؍t=Y؟@1/7 t $t #fJLDN})y}Na  6~!}1qeq/;^ yK8& lwmjl9MbL<ɻ^:!vjo{đ໅2$Ɲ^"nY2s+ CdWx@ ܇<3"L2 |5MfIV1ڍ%{[Zǘ/l0{ 56C͟FsN YcIjXԺ4 {lrYȐom%o`ўj9򪅟k|iwbAwq~HyUϥՇ}?GvGG6~D q i{K{<=?æȑdE MFkp\?O=ؠOJ.b?>Jdi/.i<2!wva?ϣ1W7O"qiq?ς7I4ۄ'|b2ZJ&>#7?휯|,Zkɻ&]A?brAcs󬁿Dx;MR$irhk<[0]c04_ufIJrJ^:Z llmSW:JB!+\#BI(Ǟkҥ,x/>`+2?ş*)xˁ QDpOV"Bq/X@L'}+$-з'bc}5q;`"cs/Ď2'Ejpg;'M~4Vw!އǬ%<U.e`\ycUJpM bYϚc8r< 6=M"qT9E*.{%ΙJp +0{ \XU6sVڽ(YMIPVVS]SUR8/E*/JU3UYj^IuITGΟ7|:p?pDIcZX>Z-*QsˊyeL'bl 0 IdX\i.V%tW\\RxoRIUuYEO blT8΅I>8WOzi/( j x D<[zŻSqm*A= אY55z.4צVWVVT,I-/#;aT)tqj7sqW_GYH0BP;KKxR9XI)\rttcQ`2PB֙k?vF />Up=A EB] "spgΖS7Rd\ yJ{> .u 3f3n\w6̷"w%sZD Ycq>q=4F6p7oHO롉_P痡oЧ.׳ǎGڞÿ}&x_N!ǹݮq ]21sJ8G MIp9v(38Y&e11Kux׆z<'GE8l*.y!CY >\+8&SFq)za'!lj Z^.(x^XEO'CÓp>tndL5sVgFYcG694VLs&`Ot#K:%#fu:n*KF.z;#{4Db=?7r@kZZ֠JipbN<>3 ʌhX[Uxq~#rIѳg3}*_3v2WпmIU&nM~n3U&^@i!_5 ~_Nֵ# Q]Ԏxl|+>kT|N;~~jcݯQ՚37Dѫ2|H}7յoSW3JV,HNU.Tu܅ղyU5%jiU<5djl Ρﺫ5vuFQ:fB@}'o;ѭ\V5U% g2TܒyejuVIU 6ά*,)e7Mj)jMZXPĮ;\P1BY3$ȧy8P3 caIy5$$>EeO)(WR^SX)-ꄊҚ`| VUEqmQ>LqOͨ)8(g\͎Esk9& jfUye LPkA(''EՊMzVJ9R+e@5@YSs0,x uD fAg\PZ[U |8BHQkg.)G8}sӜ2ΰA gT/)0v+AyE 5GTt 0SgΝ[D9׀P':+ʡU ܹVkVbT3iWFˋJ˸έꡃA 5ȷVڹU gWqIuL_q[E\C 0,Y3!L3p\ģc4W>wZIJӥ;՜\.A(_qTTW."#Bf ˌX2<_QOƯ+VV¼ g̅W\FlWv kY}Iy; 6Wwb8pAOIaպظ UHn&/)S8~vX^pU'| U  {KrFg#Ə̿8#/S͚损5"s1SԋG⌼)jFulVΈ5srn^ <5k\nvV&e Ϟ8"+g: Wec2'e 3eegOIQFf`L fyY'fg䩹rO#0lNV<̒9.D`seq0E9.#olƃG R2es72<;#k\:"c\(NNp~AN;~̜̼uBn,2k0'p# 3!8S(cr8*gMLQ3&pt<Ǐ5`"Ʌˈv,~u#231 $ .u$hWE%qQwD`MN=kӻK,=ޭ#U#"zVso_QTpg d'FS b2\}~|e\\p@ ?aeU.YPUVg"DV]Ƀm}ٿ)y yP|׳9*Ewr%JJG>̕?+)[+JJGKJJ0+3=WssJJRǛH$~t ,KJ|gtu㯝2)nLʯ2)I,eRN_2)L%eR3&3gzQvt$Nv0FvtΎ _Ύ#<+;:3#a(_w;1R(?W~"QϙV&,_/(hP vsx9*^J;s/O?a{AٜeX]Z9w`$$a) 6KM ^=$&|JWb ƱxD ZӆEcxFeoޗᘕ*x0qaԢ_iMx+]wJaTwQ? v!4Ҝ"h9ϻ(%QtNcj vJc*ؗO4(҉t֠/y5v}Ď1ا>Hc6ޏ>(fG6JwImb$([z:r#NvMtXeoZٟqƟDv?`knnWCP ~%f/^|ae ?%J/Lg/?%5\1;xS:gg4<5H:Ğz0Zzjd?=%=="s'ڤ'B^{=4G{4==ۭ]H85hv4ql;K֍ݯ4V:Aa[5vtƶ86Ml#MOv6Acw.kDit/ZhZݙ56V6v;>5vpd$5Jc7iF [q}Bc'4vƮIgWaWilƖE RcK4XcMl̯hl~jXM4nbUK4VY"U&6mbs46[ceUdf+MgJ%+VX_,HE66Cap K*vƦkQ.iƦ^-M%tI4MbMg$MX~,fyEJyM"|qQ$)69.i|$qq,{[c\X7ƸXnbFQ62؈iD`2aM,cf$2ɯ:!B`]ˆb6Hc| cEIYn_w@إnwxMf}bV'1)0+eԫxAg1Q̒5Ò]RR,릲X5 5%XR| aq~Qu3bcYLH)&u D.g&FYTX)j ĤcY]̋ټM̃cD.fa.1>4,f!B's,l Ҭ^f]&*#^~Ѣ1LÿdI X1rK_CoqN*b}[ endstream endobj 1013 0 obj << /Length 440 /Filter /FlateDecode >> stream x^}Rn@ WxH&!)E*jsT0cYh"UFFg~{ p VF}{A(h;WyWE^(Yp8nx qu`Ï`~9Rm'Dy'KIiVs(+]Z^p 09`f>^[\ryn; ulpkmgξ;n@#Ʒ[ov bYRӨ6*?ĺ R.ۦh*uDD,1T[|FYpd98V'sd4&猜| 'qN3%΄8Jx Δ8SBN3]O~dkT$&8Uzv{c 8¯3itk8tgm_P^ endstream endobj 1016 0 obj << /Length 29 /Filter /FlateDecode >> stream x^O?a@x0yAzR endstream endobj 1017 0 obj << /Length 19616 /Filter /FlateDecode >> stream x^ |7|ΜoI6lvvs#H r ",r)l}I* TP)m@Ѣ(Zk/^FԶG&쒠۾~|93;s93!b!#3 jp(5V4߸K fb_hYyȏ؁s[7^q]VVp,!?RnNw3IߗFFz5)kqV,쏳?Yy '|9W:}[Lv#8BH2@R2hk]cВ\eJwٯbX'.7{g+k]_rсrN#iii5iҞH{9ݴδI09('K\\|*r$ Q$y\'\塐ZZCPJYQ=a! pR8=<"<, ·74;ғ޴$Y#dgժc砥$szђ(KN/t?}XsG߽{oxcݏv{cu7u{N%Ӻv=_;vtۺ-ݦTcYKOO<]t:rCN=z:崣뫮 ]t:D][Z޵kYWkҮ%]]]ѮE]] t5kdЮ!]]~]Szԋ;uӧl?8I8<6I˟T}?G(` `SF(Qu(_§4ơj^}R胀>QjQ^FQҊkߡ/+Q!J;(܌r6^\㍨k˦kEx5|/¯PWhEx5f|L0/oQ6pwQDM| QEԏosԼOPX\z0jW ,֡ԣ(FExC<6%{~S1З-cz> ~ k("pD=%:p" &E5d&`D x"CCIB{>JrԈ[^z4 D/e^F6 W܆2@#!I cMA!{iS^ipOTO<62H+ H ;QN݄(^U Y t*gp241F^@=W+/PHOE!A^gPAW  dSЗ QWscA/~h$r5B{BhoA [wI(hGpUh# !wN*.2 2ϋ2*׊vA>#oIA1Eׁ&!#/:,dE R цΆ^tS(t!ŋ<l6h!/|3( :%%C À3 oFCzv،+vߎ!z-y5ha0lr\\!WYhCз0lEInoAY6hm z0̿Cc>yC^ҡU' 5<4Co:dPL/=,ˋ?}VIx1g_^ ],A,,ȜtYl# $+6x ̋0eGbCa /#v8g-( [b@ms1f. 4v:6 b Nj ~<ʋ pVL!>%#_A>L' FȄOAntзF@MݨA ,b62a6bvλ(ߜKtQ? O;fjaf F̘Z؉8x$dB$# ON2,M2%`GU !WdNFB2\CFkh23ɱdO&"2L"I1ST2餔\Of" dK;d,$zBn'rl'cd7CO~@~D~L'O~tIr45;Bn#PnҭյV )?mk4JVV6VI6{r7ʐdyChn"Kva k5,550y ߡ5ԑ%.OUE{w0uP g;q x/Cua9X)ZNQdkE5pm= >u{VE$XH<#su[:FϢyCgrVMCeq6R'㓭~&i8*Ǘ.|G^x%j@:E.#yr:k YņЇtVJpn)`(S:Id%C,\?GРܯAJ;+ݥsTinԯe:O/?;tjфxEpn _~M.6Z ]ĂR 5H xU7仝!gfzMoKu9pRI!>a#.;0[*]6`2.lj7O\<8:]<)<<8f?fooycs(w;ڦۧNawгv֏.Π#h%WRzt,wyӇҤKJN0aU͈KI߿ŋ) 5V/b[nMGLN&^eaa>pWI¦|?{t5V)kǕZFnAkԾS#=%%6SODj\N=ǫ-_й/P7F%[١|OA~S>/"F @$aF{Uy;NMClTݍs^2l#e<0OhO DDMn$R pQB 5rq$ǛOLp_?IF9F{92qDY}?cOp$ 3uBfq H;*iBYp~;WyChu./U;V /qEuZʓ1dwN0q:ȐW_C|"-3i-U:'(vDctRlQUxV p!eU:iӉTh 1"*w gPEO!M0y㯹s#F4ϘgzMqQ 9C!/M;p'E/zB{\>1Kg?2-xJZ*T.wz$bI:.sq&h,;{r #扦扖^ M^ Ch:߫ڔ_%[Bmwj* +o$FzbWw>S Jvk;ݭhR4hi%Ѭ(ӌI:D\@@sA/q8 rO^ ge;0<]J;7~ï)/>jj6{Ou,,ؿ6Kr?Ow~ =[ lھ}m۟DG)}vI_b酣x7~+o O؝Y\Iow}iiuUۇx+xn K#rF)g\_I`a¤ȵҙĥܙ KqAVy &UDU0?2=D[;C⭗/ TޑbHWQg0!3Yk٣j3-.)" "TN2s@%Gq}GUea!XfGC6|0 _<*a瞝ܹz]wZ}gޣ/ϣ?~/{G]zذ}IɓzR;ơ;0q\R K "/G2)jg0cr]dt.KS'pix@Ӹ A!ȂbP X cc=c)!C;GCU a!?Tig]9|iQLi;V!hՁ{-ފAo?̙! <;6ٳ5W:uutrXfXsVيHv>f:bIn3r49-C"V[[W8=L0mAPw!xH Ca{z|#w'laKIi7d+@FDRM9ګcLc~uI;D sz8#z/QI7B+ѩt>5)˔G]J+haȌ~sf޸ŤJs39 vIB|g (JD)j!p^rxpեU$*CQ,GǑK 6yHi,dt 88`0g !1OCL7bM? i%5,4m SɍIvUL:6#ai0u-gr:@dx/cӡrkulRQIX9.p,ӖGϨU#¤Lыr*_(_:K*a5o2<1bJ# 9,C ajYpQ%|kl]giqPUap|غ:uDNp b +ɏF=u:# n8H~jTHv/,1WL')raD*O$w Nu^u"5A9,` rYL: cỲiB)f:Nԃ իҵl˫+/NxUZ̫RW0k> E)d|$Db[U?dw> %tt%g SMՄ;E$s35ܿc/xcX +xt4Op㝗8(u8bH=<&cD6 fՙ<.{L!5jNfn]0oLծT&kw0kbʏʋ"zŰ?[?/\ Ih\FZ]qӆc7z_yRyJTϻ08shvdvFaӂB@vX,if}t-lZoU]>@6[BC+؉!ǫ0@M@xg zZAK6\7P)|JGPnȀļ)̧99'a,44 FG#CŦbub`\*55ϵ̵Ε sZlB UUUU֕UUЪv  ÝIOЫ3=|NlȱG<\8i}Ckƾ𣣿4PyM7o5v6er>a/4:`'"FbJ+̯n:[S'8ԂQ' P 8P~:s$9Y<)᮸?RՉ>ʮϾ9l [ML.MV]l#E3$'ṍA Z(Zް0P0ҟt~A꾺]lAƱTe z|V}4h`f͊6&cbcvX̢PCi63tۍL9-JF<|f1 ڲݥt(u9:]Ө}RҫJxVdl~ߖ)3lcQ桶扶9weFs&sg 3FYo5 0O!tb!1-b&,Pj6|e"a('Y&X'tp/΁-oZcsk{gDiTqTm6.6-6W[Q[Q -lfh3.3[Z++=abB<#H[^eneV! Nht}ѯq~u@|B;q>c]Q!c?"! TSz)~!y5n{Un{QSs Om0Ci$_,5ūNҍz>E]Ib?ǛOrM5߿E`06%TQO\Dg{L[wm6;6[GjlUޕ]=5 F׋fa}G|4ŜbYS^יMR|~., r왎LgFJ?/t~uQHI$V+Nc9W:̤3lLllL|| ޹QR I./jB@ g'+O*ODrykB;~ayeu&ZLĽֹʵʽƳ[ߖBA}\z.WIar L%v->N?Fu㠰ҟ1h6+A _Sn쓑#/Rd*,D0$jd?D UW邻8nfF^ 6w)!TYnֵ\7]xmU`Ŋ} >5{ ۑ^FҶh;[Bm再Ty[:l$ MޙN5?6l&8.kY@3h:'V`o-[6mN]jZՅU{hW?[b1OF~fFVjd_7 Y~f;/r:=癘/ˈ;ϣM޿m1{!x^|q鮮?οܜoz$':@V ˭Wi.o xK|JFؒ6#]ř/ 9IP%8C /h6޽e dݞt t*!j?|)v :z-* o;1<(m$o&6Z^li~5;T//rrj:rvɁH`mAޠooxH Tmh8b\^EܪN/ξxGV>ܚ?SNQߧ›-wׁ_v"Zy3w< ŖȒHG\vl7,qX=6"V> s!XY2ǗW1s_F%4-RrPs=SaLYv51 1>2NCU$Μ(DGG?8)eJɒ-/c3o;T2FI=Ց!dC9[݆Gb{ir?{6 -i8sqFA`9c$ 1NuP|kص $D޽VC.~V{|N5=#YFٞ,g'6ٞzec\Ď'x&${VtKKR]6FMZw\=םm)u$WGҾ]̩95yQ]SkAWs/Ms/6:y=f {v+΅nߥ Mx ȋ9ȞP.DK#IjYs-ِ7g>195Г : cR''`7Vkcc>95]cT[ۢŎ gTSWWV++\޻wy6x76nos>I.}v~D]?^o-'?nH>ญe %{̒}0ۘ3ZK8W6@cucM ggf_7:Д Ű>| #1 bt_qJ*||E4D\GTdXx 2[A|fd`ޝ{$rvgGe{u+ _ 02ǃ~$n v'|;GːmɵKjݧX&V^FxY݃1˼#ɑ珐#oI${1/,xUSv~W'Lc[^ Pݿ`O|M2INx%d꽆,}!/em攝)nLf^󢬡x챧 IGB]EqIat۸䘋Y *#`BٶlhVfI,]n~iV!R/# &v*VJ[ͱ̹̿,uY 4J;D>3Qiܨ+5|د6&\)$ hl%u0 /!F'!u;: 4Hoe7W!؁`S&IPm1CxXja\lV}Ͼ s}zZ/Xo7;`L͖ iꘌ\F ^j+e=^'kT>:|<'m @a(Y]9(ܼaW#z 7l0k nΞp$40෈yОNwO,ۗݜcwjۣ^Uo+rW%E>4qŒ2Au@++; 5]J֚jvr~\-dM*}?<2xX\C7XxZ;WoƃoS-^ I:H,Ϥ|]ėH$׈ԺZ|;Om)nFY}kƏy7}:;6dx[y*s{G> Q}@(G> Q}@(G> Q}@:1(G> Q}@(G> Q}@K:[ ~V\C~~QEc%A:DYlߖ&H>ˁ>ɯp9e㛦6}`a1Y,o[a;o?@{9u7]#\.}@(G> Q}@ }@(G> Q@*6^>lǛ/G4@4K7{?} xmx[Gxކ"m3 x\~ xID?hDOGQ6^Fxomm56?^Ztпf2RȌ,amm#5kmI>vLx#d%YJj ^[FZoExoL v|2J\!qohQRAj&\?fHբEqO,*\i"ЪCIXq+bJm޿^TZ\'ƭPtk^vqMQ\?D\)mmi]h̕ 643U-hKth`ӄh]6yQMEh\4*6m XcEmҙ*gFhi\,]eQ[0nLHhX7אѥ-&`pz @p^9b!gKUǚ@Vb F$`Ƽe``C̉,18(!5#@em[bmKEcKG7E^$؞oM.J\8*w/r?#R\8M"2D3#c">*mڸbr9T2p)d^y4l gh,VGM73규hФߊt492kkhpñXD*|UF\_(ɥ4KJª1V5=k"Q W7q^gTi ]tC~cM*ZШMR#!M.F ܕpp~_QY 6wxӥ=.c ~^zjdgEi}ƩIui^)u=-WVmjzyeDK $ݢ::\H@s|Lpci!J :β8+cLu=<P w~i\]Xo>mS_)k5 qշ F*1WZ ~>:9Es}Pi6N[Wn_<㞐F6zb ۶qlj ʱ k:}76c#aS|ɕ}.F&u$IoҪk6qOoK8kif9};Nx p.-D2TNOD^ҦY_3\4ߤi[* [ok{YxQlѼ~mw習z?]ܟsO?:ݷpm F՞xӷ]6]ӺFB=hJ?ݳ1Rz T}3b}]k{&uڔ6|NJ`2rx3qNF<7JX}Xi7]F&Yj_Z3=gx|XM%[Dc7typv*j>6-A<#LPۓpn\|OSa -Q!rXǟK.)!҈[+?; u)ғcϡЖ8L.E*'4ƣ.ILıW2ʜ3Qg58M8y>cjppϾÜK3oĥ%t&~jc$r&y%*zУuJ},rzr:ijY"55+WzcOT;fN w$&{zfqcok$hZL&-F*5NbAis[OEU_&f-|6c+{-j_aϚ3{iL{))=*tL\`~[~'l{-ҏ=l .`?V%=Ǫأlңl +q f;Hv(=&=ɶ6=">։ll[D?mnUadnJٽi$bcXٖÔD{Livfn';"nBkH#Fu#u2;;#!ݱ)ݑ8}<-w0mUVeUUI!Ma7I756z]Zf}+Ll2YZ~-k'-Y[?֊ZX–*lIUZf+k5qTGz` z u9"*fY'.Δ/`#bu&VUyY*VpTٍ [Laװy ;Q }R*6î/`R6JFƱfv]+mlr$7bEI*Jaƻ l84ƍ5Kll(5E8gc i4v(t64FEkLldKpJ.6Ɇ[0# UC6$ qRh ,oWKfyi&i ^'2VI܁)w $z8b9󥜱?ϲQe+,k$˴&K XFKʘq[Gİd)A$'3`A' L,-"Y?;K`|?ה|$ 0y=[> stream x^uRMk0Wh+!/:^iKF; l#潧y#~Fx}ߡӃefC joFz>O]ɹAsn{{>濲?q(ԕXC_`G1*$>jV<LT76RwOiZI3l,E? ƊkCJXzs^j$Pg>m/`[K.BWKLrպ~3pmc(]BKR) _K(OɩNՍE:RZDŽ< 3FigE@njCZt90&p1R$|Q&#Mf-K. {8khA;*{ן"cFAU٩ >L[uԀ endstream endobj 891 0 obj << /Type /ObjStm /N 100 /First 902 /Length 3251 /Filter /FlateDecode >> stream x^os6Se;S@M3v'nKnsPbUϖ\[I iR,v뙛L$b,JUYddVi6X|,.UByɷSyiH 3UشSK)_||kSm)8FgJیjky%^\I^yj` jrA5 $67 hdaRKczmiÔicyd 2o&- BCoJeJ{5e#ãddƲi۳\Yh"Yê,SBٌSYiVv-t3j^f( ,ig={9fى#\V"gxvKv!7g XX[ÀEJ1=mü8r ;dm^;jd*^Q d mءqz:/TSF.3RėrFV,,ryODkx^Xy XS 4Q#`L@/IّP fREPE2)"E/ 0K:E4i)EХ,N6)ohl,h$۫@@.Iދ+5("UU<;}LxA-rʪƎ + e}ѧٱ%Wd_h8L駣L TW<sF'⿯٭F,q%x&͒<6l8TU碸$)em`}\0| VW:?_b ݖ%hKOl9Ѝ+e $v>,%d!IL,s 3 )ּj>[$lTHXf.㪨38PXe[IVV*|?n'Ħy1%i: [HȀ]X= BlN.ʴ=4=O΁xem7ݯ/ã^ Qͧl8Ia)Yϓ1ÎOp gNKcyj6H@/ E .}jDvY]ۭXȦ"@],s}=_-n]vMz]'Êݵyؼg3۽ $I6z-#KmzWܖx}gs(Ш 嬪NjjeN̩Q'P#Z jT&OOqdր:esu4c$ [M)lo!Np9 47umCs]0 !l.P ê ڄ`k_ d(⥑7ю_|a_ߗgGw$+n -; LjC{gpyQqTDH.d/etUAbذ/WJ!6d6$@'Z.QBF_'H@%–bHRi)QQ TNK]U.>+S%¶m=0EVW%:لdW֣%Xb+@o7Թ?zCnجm: 崵WGFk7VтUs^}1ëԅG6+wa^7c\QD'M ߒ|Ra )|VeQ?FՋFF $۰bD:N1zK>KQ\ŎOJ WBF#~F*!'%#_|ȽqDh8V*s5'2h\đ//T1Va+ĖJc?yJvD֯pÓ^钿)YCޡv]D #e]b b5xtd/X# 薠%deޒMu~|FF+hW\e\`|]%蘛㽾-ٍ]&^7>%6:x!mc d mqb*~.pr~U endstream endobj 1022 0 obj << /Type /ObjStm /N 9 /First 81 /Length 934 /Filter /FlateDecode >> stream x^Uo6~_,Q$xڥAѹC!ͤdːOrD&y<RVHau&2I54B&FTyI\d*hV`Vwlhi clog/ҏ3 ? ZO`]C/ vQ9Vi,yg$.%V]2[%? >!hdkiX@ hP5z2Ke_kY&# CrCfņ鱡X5ʆ`({XY`y DQE'F="<7c"Ʃ0\ E,2*/@Fzwl Q;4W\|F,=HO Vic8-_{?Koc=DQZqll,#k" XFFOJ -4h!epC*É8$HՐB*@I߯ГƑ\Kas P' ÷< <ܮBsk ]0ty -Zޫu״O 5?}IYRp7uz-һH?D=]{"UMn]#///ɹsOGtBYfd%&J$}y>3ToIt `u6heVˬTo|]g[@||Rsq/4=3 Ä|W h+۾FRڥ V/+صwb~{qPd)R&R @MT QK T0W@FJ֠-^'ߠv}I^N}ïbcd 3ҟwݻī_Y@މJ- endstream endobj 1029 0 obj << /Type /XRef /Index [0 1030] /Size 1030 /W [1 3 1] /Root 1027 0 R /Info 1028 0 R /ID [<81920107146F9F700F4677F05C2ABF47> <81920107146F9F700F4677F05C2ABF47>] /Length 3134 /Filter /FlateDecode >> stream x^%]U}> $&3&L2 |e ZPׂԵρ|ٵȮ6~g+}a+A Oh]aV/FY)$^/N[cmѐDׄGۗn\$HFK [)JygEh{}M㿠\w%=g]^ V[)kynJZIy޺B^}mj2 Z$zuo>)o5zнL&A`#BG[-@"pA>CaHB="@<#0:AG`z#0h0W)s^J@&ѽV[]Zrz4[[?<9F6k!$W#埾Id5I#|XuA"uHv]\NY8}JR")vH]l`.Qv(H]la🟰Qvq%* )vq 5ŵ| [>:pzƺŀͿg%rȠux?g]]܄Zɴuq"w.^^Fۈ<ȴuq+?r͑gcEB"vqF[Ya).)^X6u"iwq?FEyayc䥏Zy#W~]wpppppqFBȨwZ,t%)]aиl y,[U,0z;A~|Ӏ+ z{8-+B~٠D*mv\arKrw"9E(ѸlPAv]y}L~ L>jdDD}@sn;{ lON}m/}bD}">wQ͉UhGYA}A'f!>-FsZdK gsD#ļP4.;48'n0|">j>lHOchf4K$>eϧ 4GydD}Z[h?h:Oyrzܒĸiwi#F4ߣ|B+'4|Gf4[k#h v=6؈OVhuvR݈OZkijO{кE Oӧh'~ksC->QuIvoFI%ODԧh=uOms0/Ef&W\rV8ΊY7+gEl;&/]?I$ endstream endobj startxref 3419472 %%EOF context-modules-20240428/doc/context/third/simpleslides/VERSION0000644000175000017500000000001314427245440023177 0ustar hillehille2023.05.10 context-modules-20240428/doc/context/third/simpleslides/simpleslides.tex0000644000175000017500000011453611716324602025362 0ustar hillehille\setupcolors [state=start] \setupinteraction[state=start,style=normal] %% Layout : <<< \setuplayout[ width=middle, height=middle, %location=middle, topspace=0.5in, bottomspace=.75in, bottomdistance=.25in, bottom=.25in, backspace=1.0in, cutspace=1.0in, leftmargin=0.55in, rightmargin=0.55in, leftmargindistance=0.1in, rightmargindistance=0.1in, header=0.25in, footer=0.5in, headerdistace=0.25in, footerdistance=0.25in, marking=on, % grid=yes, ] \setuppagenumbering [location=footer] %% >>> %% Typescripts : <<< \setupbodyfontenvironment[default][em=italic] \setupbodyfont[dejavu,10pt] %% >>> %% Logos: <<< \logo [TEX] {Tex} \logo [LATEX] {Latex} \logo [CONTEXT] {Context} \logo [PDFTEX] {pdftex} \logo [LUATEX] {Luatex} \logo [XETEX] {Xetex} \logo [MKII] {MkII} \logo [MKIV] {MkIV} \setupsorting[logo][style=normal] %% >>> \definetype[typeTEX][option=tex, style=type] \definetype[command][color=darkred, style=type] \definetype[options][color=darkblue, style=type] \definetyping[TEX][option=tex, before=\startEXAMPLE,after=\stopEXAMPLE] \definetyping[SIMPLETEX][option=tex] \setupindenting[medium,yes] \setupwhitespace[medium] \setuphead[title][alternative=middle, textstyle=\ss\bf] \setuphead[section,subsubject,subsection] [numberstyle=\ss\bf,textstyle=\ss\bf] \setuplistalternative[a] [distance=0pt,width=1em,stretch=10em, command=\hskip0.5em\ldots\hskip0.5em\relax] \setuplist [section] [margin=10em, alternative=a] \useURL[practex][http://www.tug.org/pracjourn/2006-2/schmitz/] \setupitemize[1][autointro] \setupitemize[indenting=no] %% Frames and Backgrounds : <<< \definetextbackground [EXAMPLE] [ mp=background:random, location=paragraph, rulethickness=1pt, framecolor=darkred, width=broad, height=fit, leftoffset=1em, rightoffset=1em, before={\testpage[3]\blank[2*big]}, after={\blank}, ] \startuseMPgraphic{background:random} path p; for i = 1 upto nofmultipars : p = (multipars[i] topenlarged 8pt bottomenlarged 4pt) randomized 4pt ; fill p withcolor lightgray ; draw p withcolor \MPvar{linecolor} withpen pencircle scaled \MPvar{linewidth}; endfor; \stopuseMPgraphic \defineframedtext [EXAMPLEframe] [rulethickness=1pt, framecolor=darkred, height=6.55cm, width=broad, background=color, backgroundcolor=gray, ] \defineoverlay[randomframe] [\useMPgraphic{background:random:frame}] \startuseMPgraphic{background:random:frame} path p; p = (OverlayBox topenlarged 10pt bottomenlarged 10pt) randomized 4pt ; fill p withcolor lightgray ; draw p withcolor \MPvar{linecolor} withpen pencircle scaled \MPvar{linewidth}; endfor; \stopuseMPgraphic \setupexternalfigures[location={local,global,default}] %% >>> %% Interface <<< \definecolor [colorprettyone] [r=.6,g=.0,b=.0] % red \definecolor [colorprettytwo] [r=.0,g=.6,b=.0] % green \definecolor [colorprettythree] [r=.0,g=.0,b=.6] % blue \definecolor[colorprettyfour][orange] \usemodule[int-load] \loadsetups[cont-en.xml] \loadsetups[t-simpleslides.xml] \definetextbackground [setuptext] [ mp=background:random, location=paragraph, rulethickness=1pt, framecolor=darkgreen, width=broad, leftoffset=1em, rightoffset=1em, align=right, before={\testpage[3]\blank[2*big]}, after={\blank\testpage[2]}, ] %% There gotta be a better way to configure this! \unprotected\def\showSETUPrecord {\getvalue{\e!start setuptext} \tttf \nohyphens \veryraggedright \startXMLmapping [one] \doglobal\newcounter\currentSETUPargument \global\let\maximumSETUPargument\currentSETUPargument \bgroup \doif{\XMLpar{cd:command}{generated}{}}{yes}{\ttsl}% \doifelseXMLop{type}{environment} {\tex{\e!start}}{\startcolor[colorprettytwo]\tex{}}\ignorespaces \XMLflush{cd:sequence}\stopcolor\ignorespaces \egroup \doifelseXMLempty{cd:arguments} {} {\bgroup \setbox0=\hbox{\XMLflush{cd:arguments}}% \global\let\maximumSETUPargument\currentSETUPargument \doglobal\newcounter\currentSETUPargument \ignorespaces\XMLflush{cd:arguments}% \doif{\XMLpar{cd:command}{type}{}}{environment} {\hskip.5em\unknown\hskip.5em \doif{\XMLpar{cd:command}{generated}{}}{yes}{\ttsl}% \tex{\e!stop}\ignorespaces\XMLflush{cd:sequence}}% \endgraf \egroup %\bgroup % \tx % \doif{\XMLpar{cd:command}{interactive}{}}{yes} {\quad INTERACTIVE}% % \doif{\XMLpar{cd:command}{interactive}{}}{exclusive}{\quad INTERACTIVE ONLY}% %\egroup \startXMLmapping [two] \bgroup \doglobal\newcounter\currentSETUPargument \blank[\v!line] %\switchtobodyfont[small] % kan sneller \ignorespaces\XMLflush{cd:arguments}\endgraf %\endgraf \egroup \stopXMLmapping}% \stopXMLmapping \getvalue{\e!stop setuptext}} \def\showSETUPnumber {\doglobal\increment\currentSETUPargument \hbox to 2em {\startcolor[blue] \ifcase\maximumSETUPargument\relax \or*\else\currentSETUPargument \fi\stopcolor \hss}} \def\showSETUPassignment {\showSETUP {{\colorprettythree[}.\lower.5ex\hbox{=}.{\colorprettythree]}} {{\colorprettythree[}..,.\lower.5ex\hbox{=}.,..{\colorprettythree]}}} \def\showSETUPkeyword {\showSETUP {\colorprettythree{[}...{\colorprettythree]}} {\colorprettythree{[}...,...{\colorprettythree]}}} \def\showSETUPargument {\showSETUP {{\colorprettyone\leftargument}..{\colorprettyone\rightargument}} {{\colorprettyone\leftargument}..,...,..{\colorprettyone\rightargument}}} \def\showSETUPdisplaymath {\showSETUP {\$\$...\$\$} {\$\$...\$\$}} \def\showSETUPindex {\showSETUP {{\colorprettyone\leftargument}...{\colorprettyone\rightargument}} {{\colorprettyone\leftargument}..+...+..{\colorprettyone\rightargument}}} \def\showSETUPmath {\showSETUP {\$...\$} {\$...\$}} \def\showSETUPnothing {\showSETUP {...} {}} \def\showSETUPfile {\showSETUP {~...~} {}} \def\showSETUPposition {\showSETUP {(...)} {(...,...)}} \def\showSETUPreference {\showSETUP {[...]} {[...,...]}} \def\showSETUPcsname {\showSETUP {{\c!setup!command!{}}} {}} \def\showSETUPdestination {\showSETUP {[{\colorprettyone\leftargument}..[ref]{\colorprettyone\rightargument}]} {[..,{\colorprettyone\leftargument}..[ref,..]{\colorprettyone\rightargument},..]}} \def\showSETUPtriplet {\showSETUP {[x:y:z=]} {[x:y:z=,..]}} \def\showSETUPword {\showSETUP {{\colorprettyone\leftargument}...{\colorprettyone\rightargument}} {{\colorprettyone\leftargument}.. ... ..{\colorprettyone\rightargument}}} \def\showSETUPcontent {\showSETUP {{\colorprettyone\leftargument}...{\colorprettyone\rightargument}} {{\colorprettyone\leftargument}.. ... ..{\colorprettyone\rightargument}}} %% >>> \def\ShowStyle#1% {\blank[big] \midaligned{\startcombination[2*2] {\externalfigure[styles/#1][page=1,width=0.55\textwidth]} {Title Page} {\externalfigure[styles/#1][page=2,width=0.55\textwidth]} {Normal Slide} {\externalfigure[styles/#1][page=3,width=0.55\textwidth]} {Horizontal Picture} {\externalfigure[styles/#1][page=10,width=0.55\textwidth]} {Vertical Picture} \stopcombination}} \starttext \title{Simple Slides \\ A \CONTEXT\ presentation module} \startEXAMPLE \placelist[section] \stopEXAMPLE \section{Introduction} This module provides an easy|-|to|-|use interface for creating simple slides/presentations in \CONTEXT. The salient features of this module are: \startitemize \item The module is meant for presentations which will be shown on a digital projector. They have no interactive elements (such as buttons or hyperlinks) and no navigational tools (such as table of contents). \item The module comes with several predefined styles; these styles are sober in appearance and meant for academic presentations. It also provides some macros to help in presenting slides with both pictures and text. \item Most styles allow for some degree of user|-|reconfigurability. Designing a new style is also easy. \stopitemize This module provides a simple structure that will be suitable for beginning or intermediate users of \CONTEXT, or someone who does not want to spend too much time playing around with different configuration options for \CONTEXT. As such it focusses on different users than Hans's presentation modules that provide more and fancier features. This module also offers much less features than the \LATEX\ \filename{beamer} package. Its main strength is its ease of use; you should be able to write your first presentation after spending five minutes with this manual. \section{A bit of history} The idea of a module suitable for simple presentations took shape when Thomas started using \CONTEXT\ for preparing his course presentations. \CONTEXT\ comes with a bunch of modules for presentations (the files \filename{s-pre-??.tex} in \filename{$TEXMF/tex/context/base}) which are written by Hans Hagen. Hans usually creates a new presentation style whenever he gives a talk about \CONTEXT. As such, his presentation styles highlight the fancy and bleeding edge features of \CONTEXT, and are not the most suitable starting point for academic presentations. \CONTEXT\ does make creating your own presentation style relatively easy. So Thomas wrote some presentation related macros (see the Prac\TEX\ article {\tt\from[practex]}). With time, he extended these macros into a collection of styles providing different visual effects, and later collected all of them in the \filename{taspresent} module. He gave a talk about the \filename{taspresent} module at the second \CONTEXT\ user meeting at Bohinj, and in the ensuing discussions, Aditya and Thomas decided to modularize and \quotation{\CONTEXT{ize}} some of the internals of the module, giving rise to the current module. Most of the code in the current release has been contributed by Aditya. \section{Installation} The module is installed in the usual way: simply unzip the archive \filename{t-simpleslides-.zip} into one of your \filename{$TEXMF} trees, and from a terminal run \command{mktexlsr} (for \MKII) and \command{mtxrun --generate} (for \MKIV). To verify that everything was installed correctly, run \command{kpsewhich t-simpleslides.tex} from a terminal (for \MKII) and \command{mtxrun --locate t-simpleslides.tex} (for \MKIV); these commands should return the complete path of the files that you just installed. \subsubject{A note about \TEX|-|engines} We have extensively tested this module with \PDFTEX\ and \LUATEX\ (that is, with \MKII\ and \MKIV). In spite of our best efforts, we have not been able to get this module to work reliably with \XETEX. If you are a \XETEX\ guru, and know how to fix some of the errors with \XETEX, we will appreciate the help. \section{Quick start} First you must tell \CONTEXT\ that you want to use this module. To do this simply write: \startTEX \usemodule[simpleslides] \stopTEX The module sets the paper size and font sizes to values that are suitable for presentations. Everything else is left like a default \CONTEXT\ document. The module comes with the following styles that change the visual appearance of the presentation. \startitemize[columns, three] \item \options{BigNumber} \item \options{BottomSquares} \item \options{Boxed} \item \options{Ellipse} \item \options{Embossed} \item \options{Framed} \item \options{FramedTitle} \item \options{HorizontalStripes} \item \options{NarrowStripes} \item \options{PlainCounter} \item \options{RainbowStripe} \item \options{Rounded} \item \options{Shaded} \item \options{SideSquares} \item \options{SideToc} \item \options{Split} \item \options{Sunrise} \item \options{Swoosh} \item \options{ThickStripes} \stopitemize To use a style, say \options{BigNumber}, pass the \options{style=BigNumber} option to the \filename{simpleslides} module: \startTEX \usemodule[simpleslides] [style=BigNumber] \stopTEX Some of the styles have a few variants that can be chosen using \options{color} and \options{alternative} keys. These are explained in \in {Section}[sec:styles]. By default, the Latin Modern Sans font is used. The module makes it easy to use other fonts that come with a typical \TEX\ distribution. The following fonts are provided: \startitemize[columns, three] \item \options{LatinModern} \item \options{LatinModernSans} \item \options{Bookman} \item \options{Chancery} \item \options{Gothic} \item \options{Helvetica} \item \options{Palatino} \item \options{Schoolbook} \item \options{Times} \stopitemize To choose a font, say \options{Helvetica}, pass \options{font=Helvetica} option to the \filename{simpleslides} module as follows. \startTEX \usemodule[simpleslides] [style=BigNumber, font=Helvetica] \stopTEX The default font size is 17pt. Font size can be changed using the \options{size} key. More details about the fonts, including information on how to use your own fonts is given in \in{Section}[sec:fonts]. The complete setup for using this module is \setup{simpleslides} \subsubject{Structure of a presentation} The \filename{simpleslides} module has a very simple model of a presentation. A presentation consists of a title followed by a series of slides; the module provides macros to help create a presentation title page and slides. A minimal presentation is shown below. The result is shown in \in {Figure}[fig:example]. \startEXAMPLE \typefile[option=tex]{example.tex} \stopEXAMPLE \placefigure [top,bottom] [fig:example] {A minimal presentation} \startcombination[2*2] \startEXAMPLEframe[width=0.55\textwidth] \startSIMPLETEX \usemodule[simpleslides] [style=BigNumber] \setupTitle[...] \starttext \SlideTitle{...} ... \SlideTitle{...} ... \stoptext \stopSIMPLETEX \stopEXAMPLEframe {A minimal example} {\externalfigure[example][page=1,width=0.55\textwidth]}{Title page} {\externalfigure[example][page=2,width=0.55\textwidth]}{First slide} {\externalfigure[example][page=3,width=0.55\textwidth]}{Second slide} \stopcombination \subsubject{Presentation title page} A presentation title page displays the title of the presentation, the names of the authors, and the date. %% TODO: Also add institution and detail. These can be specified using \typeTEX{\setupTitle} as follows: \startTEX \setupTitle [ title={Title of the presentation}, author={Name of authors}, date={Date of presentation}, ] \stopTEX The macro \typeTEX{\placeTitle} places the title page in the presentation. It is possible to change the look of \typeTEX{\placeTitle} using some additional arguments to \typeTEX{\setupTitle}. These are explained in \in {Section}[sec:setuptitle]. \subsubject{Presentation slide} The \filename{simpleslides} module provides a \typeTEX{\SlideTitle} macro, which starts a new slide (basically a new page), and typesets its argument as the title of the slide. It also takes care of increasing the page counters and progress bars, and setting up the background. The content of the slides follows after this command. A slide is a normal \CONTEXT\ page, so you can use any command or environment that you want. Each presentation style sets up a style for itemizations, and provides useful macros for placing pictures. These macros will be explained later. \section{Placing pictures} If you want to place pictures in your slides, you can always use \CONTEXT's \typeTEX{\externalfigure} macro. This module also provides a macro, \typeTEX{\IncludePicture}, for preconfigured picture layouts. Two layouts are provided: \startitemize \item \options{horizontal}: the picture is placed under the title of the slide, so that it fits in the available space. \item \options{vertical}: the slide is divided into two columns; the picture is placed on the left column and text is placed on the right column. \stopitemize These layouts are shown in \in{Figure}[fig:pictures]. \placefigure [top,bottom] [fig:pictures] {Example of \options{horizontal} and \options{vertical} options for \typeTEX{IncludePicture} macro} %FIXME: Change caption to \IncludePicture .. \startcombination[2*2] \startEXAMPLEframe[width=0.55\textwidth] \startSIMPLETEX \usemodule[simpleslides] [...] \starttext ... \IncludePicture [horizontal] [cow] {A Dutch Cow} ... \stoptext \stopSIMPLETEX \stopEXAMPLEframe {A horizontal picture} {\externalfigure[styles/BigNumber-blue] [page=3,width=0.55\textwidth]}{A horizontal picture} \startEXAMPLEframe[width=0.55\textwidth] \startSIMPLETEX \usemodule[simpleslides] [...] \starttext ... \IncludePicture [vertical] [mill] {The windmills are an example of a green energy source} ... \stoptext \stopSIMPLETEX \stopEXAMPLEframe {A vertical picture} {\externalfigure[styles/BigNumber-blue] [page=10,width=0.55\textwidth]}{A vertical picture} \stopcombination A horizontal picture is placed as follows: \startTEX \IncludePicture [horizontal] [filename] % Name of the file that contains the picture {Title of the slide} \stopTEX while a vertical picture is placed as follows: \startTEX \IncludePicture [vertical] [filename] % Name of the file that contains the picture {Text that is placed on the right of the picture} \stopTEX It is possible to change the height and width of the pictures, or highlight them with circles and arrows. These details can be found in \in {Section}[sec:pictures] \page \section[sec:styles]{Changing presentation styles} The \options{style} key to \typeTEX{\setupmodule[simpleslides]} determines the look of the presentation. Some of the styles come with variants, that can be chosen using \options{color} and \options{alternative} keys. The available styles are shown below along with the details of their variants. \subsubject{BigNumber: with \options{color=blue} (also accepts \options{color=red})} This is a style with subdued and quiet colors; its characteristic feature is the page number on the lower right border of the text area. This detail was inspired by the {\em split} style (\filename{s-pre-14}) by Hans. \ShowStyle {BigNumber-blue} \page \subsubject{BottomSquares} This minimalistic style is inspired by a presentation Taco gave at EuroTeX 2006. \ShowStyle {BottomSquares} \page \subsubject{Boxed} This style is inspired by the screen version of the Metafun manual. Watch the small gray circles at the bottom! \ShowStyle {Boxed} \page \subsubject{Ellipse} This style is inspired by {\em funny} style (\filename{s-pre-03}) by Hans. The light red stripe marks the progress. \ShowStyle {Ellipse} \page \subsubject{Embossed} Spread the word, don't be shy! Show your pride in using \CONTEXT. The color theme will probably look familiar; we copied it from the \filename{enattab} manual. \ShowStyle {Embossed} If you are shy, or narcissistic, you can change the emblem by \startTEX \setuplabeltext [simpleslidesemblem={I made this presentation}] \stopTEX \page \subsubject{Framed: with \options{alternative=square}} This style was inspired by the {\em green} style (\filename{s-pre-02}) by Hans. It has a thick blue frame around the entire slide area and a thinner frame around the text area. The style has two options for alternative: \options{alternative=stripe} will display a shaded blue area which will grow with each slide; \options{alternative=square} displays a row of blue squares at the bottom which also measure the presentation's progress. \ShowStyle {Framed-square} \page \subsubject{Framed: with \options{alternative=stripe}} \ShowStyle {Framed-stripe} \page \subsubject{FramedTitle} This is a style with loud titles. Its characteristic feature is the {\em scratch counter} at the bottom, which is derived from Section~7.2 of the Metafun manual. \ShowStyle {FramedTitle} \page \subsubject{HorizontalStripes: with \options{color=green} (also accepts \options{color=blue} and \options{color=red})} A sober style with an emphasis on horizontal lines, inspired by the {\em Szeged} theme in \LATEX's \filename{beamer} package. \ShowStyle {HorizontalStripes-green} \page \subsubject{NarrowStripes: with \options{color=green} (also accepts \options{color=blue} and \options{color=red})} A very simple and sober style, with shaded narrow stripes. \ShowStyle {NarrowStripes-green} \page \subsubject{RainbowStripe} A colorful style for daring presenters. The black line which marks the progress is reminiscent of absorption lines in star spectra, so this style may be apt for astrophysical presentations? \ShowStyle {RainbowStripe} \page \subsubject{Rounded} This style has cool colors and lots of white space; it is probably best suited for presentations with relatively little text. \ShowStyle {Rounded} \page \subsubject{Shaded: with \options{color=blue} (also accepts \options{color=green} and \options{color=bluered})} The only ornament to this style is the dark shaded background. It uses \CONTEXT's \type{interactionbar} mechanism to show the progress of the presentation. It provides much space for text. \ShowStyle {Shaded-blue} \page \subsubject{SideSquares} This style is inspired by the colors and corporate look of Thomas's university. It is very sober and offers much space for text and images. There is a rough progress meter built into the blue quadrangles. \ShowStyle {SideSquares} \page \subsubject{SideToc} This Style has a list of Topics in its left margin; the current topic is automatically highlighted. To set a topic and add it to this table simple type \typeTEX{\Topic[TopicName]} in your source file where the new topic begins. \ShowStyle {SideToc} \page \subsubject{Split} This style is inspired by the {\em Copenhagen} theme of the \LATEX's \filename{beamer} package. The narrow blue and black stripes at the top and the bottom of the slides display the date and slide number (top) and the title and author of the presentation. \ShowStyle {Split} \page \subsubject{Sunrise} This style is inspired by the {\em husky} theme of the \LATEX's \filename{powerdot} package. \ShowStyle {Sunrise} \page \subsubject{Swoosh} Take a break from the right angles and straight lines. Use swooshy curves. This style also has a fancy page counter at the bottom. \ShowStyle {Swoosh} \page \subsubject{ThickStripes} This theme is inspired by the {\em Berkeley} style of the \LATEX's \filename{beamer} package. It has a stop watch at the bottom, which keeps track of the number of slides. \ShowStyle {ThickStripes} \page \section[sec:fonts]{Changing presentation fonts} The \options{font} and the \options{size} keys to \typeTEX{\setupmodule[simpleslides]} determine the font and font size for the main text of the presentation. The default font is Latin Modern Sans at 17pt. \startitemize \item The \options{font} key can take the following values. \starttabulate[|l|p|] \NC \options{LatinModern} \NC typesets in Latin Modern Serif \NC \NR \NC \options{LatinModernSans} \NC typesets in Latin Modern Sans \NC \NR \NC \options{Bookman} \NC typesets in \TEX Gyre Bonum (a Bookman clone) \NC \NR \NC \options{Chancery} \NC typesets in \TEX Gyre Chorus \footnote{Please be aware that Chorus is a calligraphic font. It has no italic or bold.} (a Zapf Chancery clone) \NC \NR \NC \options{Gothic} \NC typesets in \TEX Gyre Adventor (a Gothic clone) \NC \NR \NC \options{Helvetica} \NC typesets in \TEX Gyre Heros (a Helvetica clone) \NC \NR \NC \options{Palatino} \NC typesets in \TEX Gyre Pagella (a Palatino clone) \NC \NR \NC \options{Schoolbook} \NC typesets in \TEX Gyre Schola (a Schoolbook clone) \NC \NR \NC \options{Times} \NC typesets in \TEX Gyre Termes (a Times clone) \NC \NR \stoptabulate \item The \options{size} key can be any valid \TEX\ dimension. \stopitemize \subsubject{Choosing your own font} If you want to set up your own font, pick any value for the \options{font} key (or leave it empty). Use the \options{size} key to choose the font size. Then {\em after} loading the module, choose any font using the normal \CONTEXT\ commands. Make sure to set the bodyfont at size \typeTEX{\NormalSize}. So, if you have your own typescript for a font, your setup will look like this: \startTEX \usemodule[simpleslides][...] .... \usetypescriptfile[type-myfont] % The typescript for your font \usetypescript[Mytypescript] % As set in your typescript file \setupbodyfont[Myfont,\NormalSize] % Note the \NormalSize here \stopTEX Internally, the font size is stored in the macro \typeTEX{\NormalSize}. The main text is set at size \typeTEX{\NormalSize}; the main title is set at \typeTEX{\TitleSize} while the author and date on the title page, and the slide title are set at \typeTEX{\SlideTitleSize}. \typeTEX{\NormalSize}, \typeTEX{\TitleSize}, and \typeTEX{\SlideTitleSize} are defined in terms of the dimensions \typeTEX{\simpleslidesNormalSize}, \typeTEX{\simpleslidesTitleSize}, and \typeTEX{\simpleslidesSlideTitleSize}. \typeTEX{\simpleslidesNormalSize} is equal to the \options{size} option. The module uses some heuristics to select a reasonable value of \typeTEX{\simpleslidesTitleSize} and \typeTEX{\simpleslidesSlideTitleSize}. If you do not like the size of the title page and slide titles, you can change their value to whatever you like. \section[sec:setuptitle]{Changing the title page} It is possible to change the look of \typeTEX{\placeTitle} using \typeTEX{\setupTitle}. This feature is intended for authors creating a new style, but may also be useful for someone who likes to tweak the presentation style. You should normally only set the \options{title}, \options{authors}, and \options{date} keys. If \options{date} is not set, then the module will default to \typeTEX{\currentdate}. \setup{setupTitle} \section{Changing the slide titles} It is possible to change the look of \typeTEX{\SlideTitle} using \typeTEX{\setupSlideTitle}. Like \typeTEX{\setupTitle}, this feature is intended for authors creating a new style. You can use this command to make a minor change in an existing style, if you want. \setup{setupSlideTitle} \section[sec:pictures]{Special macro for including pictures} As explained earlier, the \typeTEX{\IncludePicture} macro facilitates the placement of pictures. It takes four arguments (one of which is optional, and as such wasn't mentioned in the previous description). \setup{IncludePicture} As explained earlier, the first argument determines whether the picture will be placed in horizontal or vertical layout; for examples, see \in {Figure}[fig:pictures]. The second argument is the filename of the picture that you want to include. The third argument is an optional argument useful for highlighting the picture. The fourth argument (in braces) is the text accompanying the picture. For horizontal pictures, this text is placed as a \typeTEX{\SlideTitle}; for vertical pictures this text is placed opposite to the picture, centered horizontally and vertically. The third argument is the most complex. It specifies picture dimensions and highlights. If you want all pictures to share a common value (like \options{color} or \options{shadow}), specify them using \typeTEX{\setupPicture}. \setup{setupPicture} \null\blank Below is a brief explanation of what the different parameters do: \startitemize[packed] \item \options{width} and \options{height} \par Unsurprisingly, these set the width and height of the picture. Normally, the module will automatically scale your pictures to fill the available space, so you only need to set one of these values if you want to override this mechanism. \item \options{highlight} \par This key determines the highlighting of the picture. If you set \options{highlight=yes}, then you can use one of the three available highlights: \options{circle}, \options{arrow}, and \options{focus}. These highlights are shown in \in{Figure}[fig:highlight]. The specific highlight is chosen using the \options{alternative} key. The location of the highlight is specified using the \options{x} and \options{y} keys. The scaling and rotation of the highlights is set using \options{xscale}, \options{yscale}, \options{length} and \options{direction}. \item \options{alternative} \par When \options{highlight=yes}, three different highlights are available: \options{circle}, \options{arrow}, and \options{focus}. \stopitemize \placefigure [top,bottom] [fig:highlight] {Different highlight options available} \startcombination[2*2] {\externalfigure[styles/BigNumber-blue][page=3,width=0.55\textwidth]} {Picture with \options{highlight=no} (default)} {\externalfigure[styles/BigNumber-blue][page=7,width=0.55\textwidth]} {Picture with \options{highlight=yes} and \options{alternative=circle}} {\externalfigure[styles/BigNumber-blue][page=8,width=0.55\textwidth]} {Picture with \options{highlight=yes} and \options{alternative=arrow}} {\externalfigure[styles/BigNumber-blue][page=9,width=0.55\textwidth]} {Picture with \options{highlight=yes} and \options{alternative=focus}} \stopcombination \subsubject{Units for dimensions} All dimensions are specified relative to the width and height of the image, so you do not have to change the location of your highlights if you change the presentation style. The dimensions \options{x} and \options{y} should be a number between 0 and 10. The \options{x} is scaled by 1/10 times the width of the image; the \options{y} value is scaled by 1/10 times the height of the image. The easiest way to understand this is to look at a scaled grid superimposed on the picture, as in \in{Figure}[fig:grid]. The grid is configured as follows: \startitemize[packed] \item \options{grid} and \options{subgrid} \par These options determine whether or not to show the grid and sub-grid. The \options{grid} divides the height and width of the picture into 10 sections; this is helpful for determining the exact position where you want to place circles and arrows. The \options{subgrid} divides the grid into a finer grid. Each cell is divided into \options{steps} times \options{steps} cells. \item \options{gridcolor} \par This option determines the color in which the grid is drawn. It can be any \CONTEXT\ color identifier. The default value is green. \item \options{steps} \par The number of subdivisions for the \options{subgrid}. The default value is 5. \stopitemize \placefigure [top,bottom] [fig:grid] {Grids for help in determining the location of highlight} \startcombination[2] {\externalfigure[styles/BigNumber-blue][page=4,width=0.55\textwidth]} {Picture with \options{highlight=yes} and \options{grid=yes}} {\externalfigure[styles/BigNumber-blue][page=5,width=0.55\textwidth]} {Picture with \options{highlight=yes}, \options{grid=yes} and \options{subgrid=yes}} \stopcombination \subsubject{Highlighting by a circle} Now lets see how different highlight alternatives are specified. Suppose we want to place the picture of a cow and highlight its head. To help determine the center of the circle, we can first superimpose a fine grid on the picture, and read the value for the center. From \in{Figure}[fig:grid], \options{x=1.4} and \options{y=8.2} seems like a good value. Next we need to decide on the radius of the circle. The radius can either be specified in terms of the \quotation{x units} (1/10th of the picture width) or \quotation{y units} (1/10th of the picture height). Lets try a radius of 1.5 \quotation{x units}. This can be specified as \options{xscale=1.5}. If we wanted something in terms of \quotation{y units}, we could have used \options{yscale}. If both \options{xscale} and \options{yscale} are specified, we will get an ellipse. Thus, to draw the circle highlight shown in \in{Figure}[fig:highlight], we wrote \startTEX \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, alternative=circle, x=1.4, y=8.2, xscale=1.5, shadow=bottomleft] {The head of a dutch cow} \stopTEX If \options{direction} key is specified, the circle (or the ellipse) will be rotated by that amount (in degrees) in the counter clockwise direction. The color in which the circle is drawn is specified using \options{color} key. The thickness of the line is determined by \options{rulethickness} key. By default, \options{color=orange} and \options{rulethickness} is 1/100th of the picture width. In summary, the different keys related to \options{alternative=circle} are: \startitemize[packed] \item \options{highlight=yes} and \options{alternative=circle} \par These are needed to specify a circle highlight. \item \options{x} and \options{y} \par The center of the circle in terms of scaled units. Their values should be between 0 and 10. \item \options{xscale} and \options{yscale} \par The radius of the circle if only one option is specified. The major and minor radii of the ellipse if both options are specified. \item \options{direction} \par The amount by which the circle is rotated. This only makes sense if we are actually drawing an ellipse. \item \options{rulethickness} \par The line width of the circle. \item \options{color} \par The color of the circle. \stopitemize \subsubject{Highlighting by an arrow} Suppose we want to include a picture of a cow and point out its mouth using an arrow. An arrow is specified by three things, the location of its tip, given by \options{x} and \options{y} keys; the length of the arrow, given by \options{length} key; and the direction of the tail, given by \options{direction} key. Thus, to draw the arrow highlight shown in \in {Figure}[fig:highlight], we wrote \startTEX \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, alternative=arrow, x=0.4, y=6.8, direction=-90, length=3cm, shadow=bottomleft] {The mouth of a dutch cow} \stopTEX The different keys related to \options{alternative=arrow} are: \startitemize[packed] \item \options{highlight=yes} and \options{alternative=arrow} \par These are needed to specify a arrow highlight. \item \options{x} and \options{y} \par The tip of the arrow in terms of scaled units. Their values should be between 0 and 10. \item \options{length} \par The length of the arrow. This is a dimension. \item \options{direction} \par The amount by which the arrow is rotated. \item \options{rulethickness} \par The line width of the arrow. (Actually the line width of the arrow is twice the given value. This is so that both arrows and circles look good with the same value of rulethickness.) \item \options{color} \par The color of the arrow. \stopitemize \subsubject{Highlighting by focus} Suppose we want place the picture of a cow, focus its head, and dull out rest of the picture. The area to be focused is a circle (or an ellipse) and it can be specified using \options{x} and \options{y} to indicate the center, \options{xscale} and \options{yscale} to indicate the radius, and \options{direction} to indicate the rotation. The keys \options{rulethickness} and \options{color} do not have any effect. The area other than the focussed area is washed out with a transparent color. The degree to which it is washed out is determined by \options{opacity} (default value 0.5), and the color of the unfocussed area is determined by \options{shadowcolor} (default value black). Thus, to draw the focus highlight shown in \in{Figure}[fig:highlight], we wrote \startTEX \IncludePicture [horizontal] [cow] % Name of the image [highlight=yes, alternative=focus, x=1.4, y=8.2, xscale=1.5] {The head of a dutch cow} \stopTEX The different keys related to \options{alternative=focus} are: \startitemize[packed] \item \options{highlight=yes} and \options{alternative=focus} \par These are needed to specify a focus highlight. \item \options{x} and \options{y} \par The center of the circle in terms of scaled units. Their values should be between 0 and 10. \item \options{xscale} and \options{yscale} \par The radius of the circle if only one options is specified. The major and minor radii of the ellipse if both options are specified. \item \options{direction} \par The amount by which the circle is rotated. This only makes sense if we are actually drawing an ellipse. \item \options{opacity} \par The opacity of the unfocussed area. \options{opacity=0} is transparent, while \options{opacity=1} is completely opaque. \item \options{shadowcolor} \par The color of the unfocused area. \stopitemize \subsubject{Adding shadows} When a circle or arrow highlight is used, adding a shadow to the highlight makes them stand out more. The key related to shadows is: \startitemize[packed] \item \options{shadow} \par This key determines whether shadows are placed or not. By default, shadows are disabled. If not set to \options{no}, this key determines where the shadow is placed: at \options{topleft}, \options{topright}, \options{bottomleft}, or \options{bottomright}. Setting this key to \options{yes} puts the shadow at \options{bottomright}. \stopitemize \subsubject{Adding a specific page} To select a specific page from a multi-page pdf file, you can use \options{page=} option. \subsubject{Using your own style} The module makes it easy to write your own style or to tweak one of the provided styles beyond the configuration options provided by the module. Simply copy the style which is closest in appearance to what you want to obtain. Give it a filename \filename{s-myownstyle.tex}, \filename{myownstyle} being any name you like. Put this file into a directory where \CONTEXT\ will find it, either the directory where you will process your presentation or somewhere in your personal \filename{$TEXMF} tree. Then, let the module know that you want to use your own style: \startTEX \usemodule[simpleslides] [style=myownstyle] \stopTEX The module will read your file and apply your settings. \stoptext % vim: foldmethod=marker foldmarker=<<<,>>> context-modules-20240428/doc/context/third/letter/0000755000175000017500000000000014613513620020732 5ustar hillehillecontext-modules-20240428/doc/context/third/letter/README0000644000175000017500000000110413612355230021605 0ustar hillehilleModulename : Correspondence (t-letter and t-memo) Author : Wolfgang Schuster License : GNU General Public License Description =========== The correspondence package for ConTeXt consists of a module to write letters and memos. Both modules work with MkII and MkIV but the letter and memo modules for MkIV requires a installation from 15 December 2011 or newer while the MkII version of both modules work also with older installations. Usage ===== Letters ------- \usemodule[letter] \startletter ... \stopletter Memos ----- \usemodule[memo] \startmemo ... \stopmemo context-modules-20240428/doc/context/third/letter/VERSION0000644000175000017500000000001314133105703021770 0ustar hillehille2021.10.16 context-modules-20240428/doc/context/third/transliterator/0000755000175000017500000000000014613513621022511 5ustar hillehillecontext-modules-20240428/doc/context/third/transliterator/transliterator.tex0000644000175000017500000011321714147266523026325 0ustar hillehille\setuppapersize [A5] [A5] \definecolor [gutenred] [x=bf221f] % rubrication from digitized_Göttingen Gutenberg bible \setupinteraction [ state=start, color=gutenred, % rubricate, don’t viridificate contrastcolor=gutenred, ] \setupcombinedlist[content][interaction=text,focus=standard] \setupindenting[yes,next,medium] %\showgrid \setuphead[chapter][ align=middle, number=no, style={\rm\tfa\setcharacterkerning[capitals]\WORD}, before={\blank[5*line]}, after={\blank[2*line,force]} ] \setuphead[section][ align=middle, number=no, style={\rm\setcharacterkerning[capitals]\WORD}, before={\blank[line,force]}, after={\blank[line]} ] \setuphead[subsection][ align=middle, number=no, style={\tf\sc\word}, before={\blank[line,force]}, after={\blank[line]} ] \setuplist[chapter][ alternative=c, interaction=text, style={\word\sc}, ] \setuplist[section,subsection][ alternative=a, style=\tfx\italic, interaction=text, margin=2em, numberstyle=, textstyle=, numberstyle=\tfx, ] \setuplist[subsection][ margin=4em, ] \setuplistalternative \definecharacterkerning [capitals] [factor=.05] \definefontfeature [default][default][ protrusion=quality, expansion=quality, %mode=node, script=latn, onum=yes, %dlig=yes, liga=yes, ] \definefontfeature [smallcaps] [default] [smcp=yes] \def\sc{\addff{smallcaps}\setcharacterkerning[capitals]} \setupbodyfontenvironment [default] [em=italic] \starttypescript [serif] [bukyvede] \setups [font:fallback:serif] \definefontsynonym [Serif] [name:Bukyvede] [features=default] \definefontsynonym [SerifItalic] [name:Bukyvede-Italic] [features=default] \stoptypescript \usetypescript [bukyvede] \definetypeface [hlaholice] [rm] [serif] [bukyvede] [default] [encoding=ec] \definetypeface [cyrilice] [rm] [serif] [bukyvede] [default] [encoding=ec] \definetypeface [lmstd] [rm] [serif] [latin-modern] [default] [encoding=texnansi] \usetypescriptfile[type-cmu] \usetypescript[computer-modern-unicode] \setupbodyfont[computer-modern-unicode,9pt] \usetypescript [serif] [hz] [highquality] \setupalign [hanging,hz] \usemodule[bib] \usemodule[bibl-tra] \usemodule[transliterator] %\setupcite[authoryear][compress=no] \setuppublications[% alternative=apa,% refcommand=authoryear,% sorttype=bbl,% numbering=yes,% autohang=yes% ]% \setuppublicationlist[% artauthor=\invertedauthor% ] % == REFERENCES =============================================================== \startpublication[ k=aks, t=book, a={{Birnbaum/Schaeken}}, y=1999, n=4, u=http://www.schaeken.nl/lu/research/online/publications/akslstud/index.htm, s={Studien}, ] \author[]{Henrik}[H.]{}{Birnbaum} \author[]{Jos}[J.]{}{Schaeken} \pubyear{1999} \title{Altkirchenslavische Studien} \volume{2} \city{München} \stoppublication \startpublication[ k=bornemann, t=book, a={{Bornemann/Risch}}, y=1978, n=2, s={Grammatik}, ] \author[]{Eduard}[]{}{Bornemann} \author[]{Ernst}[]{}{Risch} \pubyear{1978} \title{Griechische Grammatik} \city{Frankfurt am Main} \edition{2.} \stoppublication \startpublication[ k=bh, t=book, a={{Bringhurst}}, y=2008, n=4, s={Bringhurst}, ] \author[]{Robert}[R]{}{Bringhurst} \pubyear{2008} \title{The Elements of Typographic Style} \edition{3.2} \city{Point Roberts WA, Vancouver} \stoppublication \startpublication[ k=dintb, t=book, a={{DIN}}, y=2001, n=5, s={DIN}, ] \editor[]{}[]{}{DIN Deutsches Institut für Normung e.~V.} \pubyear{2001} \title{Bibliotheks und Dokumentationswesen} \city{Berlin/Wien/Zürich} \stoppublication \startpublication[ k=duden, t=book, a={{Drosdowski/Müller/Scholze-Stubenrecht/Wermke}}, y=1952, n=1, s={DUDEN}, ] \editor[]{Günther}[]{}{Drosdowski} \editor[]{Wolfgang}[]{}{Müller} \editor[]{Werner}[]{}{Schulze-Stubenrecht} \editor[]{Matthias}[]{}{Wermke} \pubyear{1991} \title{DUDEN Rechtschreibung der deutschen Sprache} \city{Mannheim et al} \edition{20.} \stoppublication \startpublication[ k=kirschbaum, t=book, a={{Kirschbaum}}, y=2001, n=3, s={Grammatik}, ] \author[]{Ernst Georg}[]{}{Kirschbaum} \pubyear{2001} \title{Grammatik der russischen Sprache} \city{Berlin} \stoppublication \startpublication[ k=iso, t=inbook, a={{ISO}}, y=1995, n=6, s={ISO~9}, ] \editor[]{}[]{}{{{\sc iso} International Organization for Standardization}} \pubyear{1995} \title{Information and documentation -- Transliteration of Cyrillic characters into Latin characters -- Slavic and non-Slavic languages} \edition{2.} \crossref{dintb} \pages{230--245} \stoppublication %============================================================================== \setupframed[ frame=off, align=normal, location=top, ] \defineframed[displayouter][ location=top, align={normal,verytolerant}, frame=off, style=\tfx, ] \defineframed[displayinner][displayouter][ offset=1ex, width=.47\textwidth, ] \definenumber[excnt] \setnumber[excnt][1] % This should rather be done using key-value args but I'm too lazy now. % 1: mode; 2: hyphenate original; 3: hyphenate transliteration; % 4: font for original; 5: caption; 6: original text. \def\trlex#1#2#3#4#5#6{% \setuplocalinterlinespace[line=8pt]% \startplacefigure [ location=force, title={\type{[mode=#1,hyphenate=#3]}\hskip 1em{\italic #5}} ]% \displayouter{% \displayinner{% \setupbodyfont[#4]% \tfx %\setuptolerance[verytolerant, stretch] \setuptolerance[verytolerant] \unskip\language[#2]#6\par }% \displayinner{% \tfx \transliterate[mode=#1,hyphenate=#3]{#6\par}% } } \stopplacefigure \incrementnumber[excnt]% } \defineframedtext[CenteredText][width=fit,frame=off,align=middle] \usemodule[int-load] \loadsetups[t-transliterator.xml] \setupwhitespace[medium] \language[en] \starttext \setuppagenumbering[state=stop] \blank[3cm,force] %\showframe \startstandardmakeup[location=middle] \setuplayout[width=middle] \raggedcenter \vfill {\setupbodyfont[19pt] {\em The} \blank [2*big] {\tfc\sc transliterator} \blank [2*big] {\em for \CONTEXT} \blank [9*big] {\tfa\sc manual} } \vfill \stopstandardmakeup \startstandardmakeup \vfill \framed [frame=off,topframe=on] {% \tfxx\ss\setupinterlinespace[small]% \startlines The {\em Transliterator} module and mini-manual, by Philipp Gesang, Radebeul. Mail any patches or suggestions to {\tt philipp -dot- gesang -at- alumni -dot- uni-heidelberg -dot- de} \useurl[me][https://phi-gamma.net] \from[me]% \stoplines } \stopstandardmakeup \setuppagenumbering[% location=middle, state=start, style=\tfc ] \setuppagenumber[number=1] \completecontent \chapter{Usage and Functionality} \section{Overview} The Transliterator provides two commands: \type{\setuptransliterator} preferably goes into the preamble and allows for global configuration. The Transliterator is invoked locally by \type{\transliterate} which does the actual transliteration of text passages. \setup{setuptransliterator} \setup{transliterate} \section{Loading and Configuring the Module} In order to use the Transliterator in a document we put the following somewhere before \type{\starttext}. \starttyping \usemodule[transliterator] \stoptyping Although it has some defaults already set at this point they will most likely not correspond to what is needed in the document. To override the presets we use the command \type{\setuptransliterator[#1]}. It takes a comma separated list of two key-value pairs: \type{mode} and \type{hyphenate}. Through {\em mode} we specify the transliteration method. By the time of this writing this can be one of the following set: \startplacetable[location=top,title=Transliteration modes.] \tfx \starttabulate[|l|p|] \HL \NC mode \NC description \NC\NR \HL \NC \type{all} \NC {\sc iso}~9 complete \NC\NR \NC \type{bg_de} \NC Bulgarian, German „scientific“ transliteration\NC\NR \NC \type{gr} \NC transliteration for Greek \NC\NR \NC \type{gr_n} \NC transliteration for Greek obeying nasalizations \NC\NR \NC \type{iso9_ocs} \NC == \type{all} plus non-{\sc iso} additions for Old (Church) Slavonic \NC\NR \NC \type{ocs} \NC “scientific” transliteration for Old (Church) Slavonic\NC\NR \NC \type{ocs_cz} \NC Czech transcription for Old (Church) Slavonic\NC\NR \NC \type{ocs_gla} \NC “scientific” transliteration for Old (Church) Slavonic / Glagolitic alphabet\NC\NR \NC \type{ru} \NC {\sc iso}~9 Russian \NC\NR \NC \type{ru_cz} \NC Czech transcription for Russian\NC\NR \NC \type{ru_old} \NC {\sc iso}~9 Russian plus pre-1918 chars (the default)\NC\NR \NC \type{ru_transcript_de} \NC German transcription for Russian \NC\NR \NC \type{ru_transcript_en} \NC English transcription for Russian \NC\NR \NC \type{sr_tocy} \NC Serbian, Latin to Cyrillic \NC\NR \NC \type{sr_tolt} \NC Serbian, Cyrillic to Latin \NC\NR \HL \stoptabulate \stopplacetable {\em Nota bene}: The description at this point only serves as a placeholder as the transliteration modes are discussed in detail later in this document. Through the \type{hyphenate} argument it is possible to adjust the language that is used for hyphenation. Specifying \type{\setuptransliterator[hyphenate=nl]} will let every transliterated part of the document be processed according to dutch rules, leaving the overall \type{\language[#1]} configuration unchanged for the rest of the content. Another argument, \type{deficient_font} can be used in combination with the modes \type{all}, \type{ru_old} and \type{iso9_ocs}. It lets you circumvent the deficiency that some fonts show concerning the characters that {\sc iso}~9 assigns to cyrillic “ь” and “ъ”. Set it to {\em true} to enable it. The actual transliteration is done using the macro \type{\transliterate[#1]} \type{{#2}}. The second argument takes the raw string in the original language that we want to process, while the first, optional argument accepts local adjustments for \type{mode} and \type{hyphenate}. Thus, we would typeset one of Epicuros' sayings like this: {\setuptolerance[verytolerant] \starttyping \transliterate[mode=gr]{κακὸν ἀνάγκη, ἀλλ' οὐδεμία ἀνάγκη ζῆν μετὰ ἀνάγκης} \stoptyping \noindentation which yields \quotation{\transliterate[mode=gr]{κακὸν ἀνάγκη, ἀλλ' οὐδεμία ἀνάγκη ζῆν μετὰ ἀνάγκης}} in the {\sc pdf} output. } Alternatively there is an environment, \type{\starttransliterate[#1]}, as well, that takes the same arguments. There are two special switches for the {\em Serbian} patterns, \type{hinting} and \type{sr_exceptions}, allowing for a little more fine-tuning. If activated, hinting provides the special character “\type{*}” as a means to indicate positions, where the sequences “lj” and “nj” are to be treated as separate consonants. E.~g. \type{\transliterate[mode=sr_tocy]{in*jekcija}} is correctly transliterated as \transliterate[mode=sr_tocy]{in*jekcija}, and not \transliterate[mode=sr_tocy,sr_exceptions=no]{injekcija}. Likewise, further exceptions that are internally represented as a lookup table can be toggled off or on by the \type{sr_exceptions} switch. This pertains to words like “nadživeti” (result: \transliterate[mode=sr_tocy]{nadživeti}) but may lead to accidental false positives in cases that the module author didn’t foresee. By default both hinting and lexical exceptions are set to \type{yes}. For orientation purposes the Transliterator comes with two macros that allow for closer inspection of the internal tables. \type{\showOneTranslitTab{#1}} outputs, obviously, a single table; their identifiers can be found in the \type{trans_} \type{tables_*.lua} files in the transliterator directory. The lazy alternative is \type{\showTranslitTabs} which prints all registered tables in a row nicely formatted as indexable sections. (Be warned, this may take some time.) \chapter{Introduction} \hfil\framed[width=\hsize,align=left]{% \inframed[bottomframe=on]{\it What's all this, then?} \blank[medium] {\sc Graham Chapman} } \blank[2*big] \noindentation At the first glance, {\em transliteration} -- the accurate representation of letters from one alphabet in another -- seems obsolete after the advent of Unicode which made its way even into \TeX\ lately. Why not just go on and write down everything in the original script? But still there are lots of situations where transliteration is desirable, e.~g. some scholarly habits might prescribe it in the main text with citations in footnotes left in the original alphabet; or transliteration might alleviate comparison within one language that happens to be written in different scripts; finally, including text in a foreign script might be impossible if there is no appropriate font which fits the main text. However, it is still most convenient for the writer to keep the untransliterated original in the document source as this allows for reusing it in another context where different transliterations rules might apply. The Transliterator module is meant to provide both: have the original in the source and a transliteration only in the final document. Another way of handling foreign languages is {\em transcription}. It aims at producing some representation that does not rely on symbolisms alien to the language and thus to be at least \quotation{pronouncable} without further know\-ledge. As transcription methods are language specific and highly idiosyncratic they complicate the restoration of the original phrase because information may be lost. The Transliterator provides means of transcription as well but in most cases you should refrain from using them (\type{[mode=ru_transcript_en]}, \type{[mode=ru_transcript_de]}). For Cyrillic scripts the best quality is achieved using the standardized transliteration according to {\sc iso~9}.\footnote{\cite[authoryear][iso].} This method not only covers all contemporary languages that are written in a variety of Cyrillic but provides a bijective mapping on latin characters as well. Consequently, you can unambiguously revert the transliteration into its original form which was impossible with previous versions of {\sc iso}~9 because they contained several exceptions depending on the original language. Although fifteen years old it has not yet made its way into scholarly publications at large so it might not immediately look familiar.\footnote{ A hasty glance at the latest issues of around 20~journals in a local library revealed that 2~of them actually are using {\sc iso}~9, these are {\em Przegląd wschodni} as of Nr. X, 3 (2008) and {\em Kwartalnik historyczny} as of CXVI, 3 (2009); the latter even contains a table on p.~218 showing a subset of the {\sc iso}~9 transliteration rules. } The diacritics are not identical to the \quotation{scientific} transliteration used in Slavic studies but as long as your editor does not enforce its traditional method you should always prefer {\sc iso}~9 (\type{[mode=ru]}, \type{[mode=ru_old]}, \type{[mode=all]}). But {\sc iso}~9, too, has its shortcomings. It has no definitions for historical forms of the cyrillic script like pre-XVIII-century Russian and Old (Church) Slavonic while those are covered by the scholarly transliterations. To amend the situation the Transliterator provides an extension to {\sc iso}~9 for Old Slavonic containing the glyphs \startluacode local translit = thirddata.translit environment.loadluafile("trans_tables_scntfc") local cnt, len = 0, 0 for i,j in pairs(translit.ocs_add_low) do len = len + 1 end for k,v in pairs(translit.ocs_add_low) do cnt = cnt + 1 context.bgroup() context.setupbodyfont({"cyrilice"}) context(k) context.egroup() if cnt < len -1 then context(", ") elseif cnt < len then context("\\ and ") end end \stopluacode \ taken from the scientific transliteration (\type{[mode=iso9_ocs]}). If you prefer more coherency you might want to use pure \quotation{scientific} transliteration (\type{[mode=ocs]}). This method is complemented by \type{[mode=ocs_gla]}, the only option the Transliterator offers for the Glagolitic alphabet; they can be used consistently along each other as they were taken from the same book.\footnote{\cite[authoryear][aks] p.~77 \cite[url][aks].} As far as I know there is no standardized transliteration for Greek so I had to resort to the one that is used in scholarly literature. Its main drawback is that it has no representation for diacritics apart from (rough) breathing, but it respects specific rules for diphthongs and vowels in initial positions (\type{[mode=gr]}). There is one alternative mode for those who prefer their {\em γ} phonetically resolved to /{\em n}/ before velars ({\em γ}, {\em κ}, {\em χ} and {\em ξ}; \type{[mode=gr_n]}). Concerning the hyphenation within transliterated passages the default is set to to \type{[hyphenate=cs]} (Czech) which produces reasonable results when using \type{all}, \type{iso9_ocs} or \type{ru_cz}. For stuff like the English and German transcription use their respective native hyphenation.\footnote{% You'll have to specify this through \type{\setuptransliterator} or locally because the default hyphenation is {\em not} the same as your documents'. } However, as there is no hyphenation pattern I know of that closely resembles the transliteration of Greek you might have to resort to putting \type{\discretionary} hyphens when line breaking does not satisfy. The Transliterator as a whole is nothing more than a bunch of dictionaries containing substitution rules for tokens that may occur in the text. These tokens may be single characters or strings of more than one character. As there is no simple way to impose order onto those dictionaries the rules for one transliteration method are, if needed, distributed over more than one table which will be applied successively to ensure that multi-character rules are processed first. \setupfloats[spacebefore=small,spaceafter=small] \startplacetable[location=left,title={ Processing time for corpus {\language[cs]Evgenij Onegin} according to GNU time(1) and the \CONTEXT\ stats. }] \starttabulate[|l|cg(.)|cg(.)|] \HL%····················································% \NC mode \NC time(1) in $s$ \NC \CONTEXT \NC \NR \NC \NC 8.98 \NC 8.82 \NC \NR \NC \type{all} \NC 8.37 \NC 8.25 \NC \NR \NC \type{ru_cz} \NC 8.61 \NC 8.48 \NC \NR \NC \type{ru_transcript_en} \NC 9.26 \NC 9.10 \NC \NR \NC \type{ru_transcript_de} \NC 14.83 \NC 14.71 \NC \NR \HL%····················································% \stoptabulate \stopplacetable \setuptolerance[tolerant] Following suggestions from the mailing list, the Transliterator uses {\em LPeg} when substituting. This means a huge speed improvement for most substitution modes when compared to the older mechanism that used \type{string.gsub} iteratively. In ordinary use when transliterating single words or short phrases the Transliterator should have little impact on document processing time at large, with the exception of the German transcription mode, perhaps.\footnote{ The problem lies within the rule set for the German transcription which dictates different instructions depending on the environment of a character; these may conflict, i.~e. it is impossible to substitute a character stream in a single run as some rules may apply only to the result of previous rule. Let me know if there's a way to tell LPeg to backtrack to the last character of a match and not to continue on the next. } Transliterating (and typesetting in MKIV) \transliterate{Александр Пушкин}'s verse novel \transliterate{Евгений Онегин}, a corpus of about 27000 words, in \type{[mode=all]} shows little to no delay at all. In fact, typesetting cyrillic letters with russian hyphenation seems slow things down so much that transliteration may be faster and uses slightly less memory.\footnote{% On an IBM T43: \tt 2.6.32-ARCH \#1 SMP PREEMPT Tue Feb 9 14:46:08 UTC 2010 i686 Intel(R) Pentium(R) M processor 1.60GHz GenuineIntel GNU/Linux. } \chapter[ex]{Examples} \section{Cyrillic scripts} \subsection{{\sc iso}~9 and derivatives} Several transliteration rules are either strictly {\sc iso}~9 compliant (\type{ru}, \type{ru_old}, \type{all}) or contain {\sc iso}~9 as a subset (\type{iso9_ocs}).\footnote{% Unfortunately \CONTEXT\ still lacks language files for some of them so please excuse the inadequate hyphenation in these cases.% } \trlex{ru}{ru}{cs}{computer-modern-unicode}{% Transliteration rules for the contemporary russian alphabet.% }{% В~ворота гостиницы губернского города NN въехала довольно красивая рессорная небольшая бричка, в~какой ездят холостяки: отставные подполковники, штабс-капитаны, помещики, имеющие около сотни душ крестьян, — словом, все те, которых называют господами средней руки. В~бричке сидел господин, не красавец, но и~не дурной наружности, ни слишком толст, ни слишком тонок; нельзя сказать, чтобы стар, однако ж~и~не так чтобы слишком молод. } \trlex{ru_old}{ru}{cs}{computer-modern-unicode}{% With aditional characters for pre-1981 Russian orthography (100~per cent {\sc iso}~9).% }{% А~сведется віра, убьютъ сотцкого в~селѣ, ино тебѣ взяти полтіна, а~не сотцкого, ино четырѣ гривны, а~намъ віръ не таити в~Новѣгородѣ; а~о~убіствѣ віръ нѣтъ. А~что волости, честны король, новгородцкіе, ино тебѣ не держати своими мужи, а~держати мужми новогородцкими. А~что пошлина в~Торжку и~на Волоцѣ, тівунъ свои держати на своеи чясті, а~Новугороду на своеи чясти посадника держаті. А~се волости новогородцкіе: Волокъ со всѣми волостми, Торжокъ, Бѣжіці, Городець Палець, Шіпинъ, Мелеця, Егна, Заволочье, Тиръ, Пермь, Печера, Югра, Вологда с~волостмі. } \trlex{all}{ru}{cs}{computer-modern-unicode}{% The complete cyrillic mapping from {\sc iso}~9; transliterating Belarusian.% }{% Беларуская мова, мова беларусаў, уваходзіць у~сям’ю індаеўрапейскіх моў, яе славянскай групы і~ўсходнеславянскіх моваў падгрупы, на якой размаўляюць у~Беларусі і~па ўсім свеце, галоўным чынам у~Расіі, Украіне, Польшчы. Б.~м. падзяляе шмат граматычных і~лексічных уласцівасцяў з~іншымі ўсходнеславянскімі мовамі (гл. таксама: Іншыя назвы беларускай мовы і~Узаемныя ўплывы усходнеславянскіх моваў). } \trlex{all}{uk}{cs}{computer-modern-unicode}{% The complete cyrillic mapping from {\sc iso}~9; transliterating Ukrainian.% }{% Украї́нська мова (застарілі назви -- руська мова, проста мова […]) -- слов'янська мова, державна в~Україні та одна з~трьох «офіційних мов на рівних засадах» у~не\-ви\-зна\-ній Придністровській Молдавській Республіці. За різними оцінками загалом у~світі українською мовою говорить від 41~млн. до 45~млн. осіб, вона входить до третього десятка найпоширеніших мов світу. } \trlex{all}{ru}{cs}{computer-modern-unicode}{% The complete cyrillic mapping from {\sc iso}~9; transliterating Serbian.% }{% Српски језик је један од словенских језика из породице индоевропских језика. Први писани споменици у~српској редакцији старословенског језика потичу из XI и~XII века. Српски језик је стандардни језик у~службеној употреби у~Србији, Босни и~Херцеговини и~Црној Гори, а~у~употреби је и~у другим земљама гдје живе Срби, међу осталима и~у~Хрватској. } \trlex{iso9_ocs}{ru}{cs}{cyrilice}{% Transliteration rules according to {\sc iso}~9 with additions for Old (Church) Slavonic.% }{% Что сѧ дѣѥтѣ по вѣремьнемь~: то ѿидето по вѣрьмьнемь~: приказано бѹдѣте добрымъ людѣмъ~: а любо грамотою ѹтвѣрдѧть~: како то бѹдѣте всемъ вѣдомъ~: или кто посль живыи ѡстанѣть сѧ~: того лѣт͠ коли алъбрахтъ~: влд͠ка ризкии ѹмьрлъ~: ѹздѹмалъ кнѧзѣ смольнескыи~: мьстиславъ~: двд͠въ сн͠ъ~: прислалъ въ ригѹ своѥго лѹчьшего попа~: ѥрьмея~: и съ нимь ѹмьна мѹжа пантелья~: исвоѥго горда смольнеска~: та два была послъмь ѹ ризѣ~: из ригы ѥхали на гочкыи берьго~: тамо твердити миръ~: } \subsection{“Scientific” transliteration} These transliterations are widely used among scholars, mainly linguists and, to a lesser extent, historians. They comprise large character sets in order to represent the original text adequately and facilitate comparison of texts of the same language written in different scripts; they are not, however, as easily reversible as {\sc iso}~9. \trlex{ocs}{ru}{cs}{cyrilice}{% Transliteration for Old Slavonic used in Slavic studies, taken from the excellent book of \cite [authoryear][aks].\footnote{% This one and both of the following Czech transliterations, although elegantly dealing with hard and weak signs by taking characters from the Cyrillic alphabet, are not unquestioned from a typographical point of view: \quotation{If contrasting faces are used for phonetic transcriptions and main text, each entire phonetic word or passage, not just the individual phonetic characters, should be set in the chosen phonetic face. Patchwork typography, in which the letters of a single word come from different faces and fonts, is a sign of typographic failure. […] Such mixtures are almost sure to fail unless all the fonts involved have been designed as a single family.} (\cite [authoryear][bh]) From this follows that it is advisably to reconsider your font whether it indeed provides the needed glyphs from Russian as well. }% }{% Се начнемъ повѣсть сию. По потопѣ . первиє снве Ноєви . раздѣлиша землю . Симъ . Хамъ . Афетъ . и~ꙗсѧ въстокъ . Симови Персида . Ватрь . тоже и~до Индикиꙗ в~долготу и~в~ширину [и до Нирокоуриа] ꙗкоже рещи ѿ въстока и~до полуденьꙗ . и~Суриꙗ . и~Индиа по Єфратъ рѣку . Вавилонъ . Кордуна . Асурѧне . Мисопотамира . Аравиꙗ . старѣишаꙗ . Єлмаисъ . Инди . Равиꙗ . на всѧ Д. } \trlex{ru_cz}{ru}{cs}{computer-modern-unicode}{% Czech phonetic transcription for contemporary Russian.% }{% Прошло семь лет после 12-го года. Взволнованное историческое море Европы улеглось в свои берега. Оно казалось затихшим; но таинственные силы, двигающие человечество (таинственные потому, что законы, определяющие их движение, неизвестны нам), продолжали свое действие. Несмотря на то, что поверхность исторического моря казалась неподвижною, так же непрерывно, как движение времени, двигалось человечество. Слагались, разлагались различные группы людских сцеплений; подготовлялись причины образования и~разложения государств, перемещений народов.% } \trlex{ocs_cz}{ru}{cs}{cyrilice}{% Czech phonetic transcription for Old Slavonic (superset of the corresponding Russian transcription). }{% Убьеть мужь мужа, то мьстить брату брата, или сынови отца, любо отцю сына, или братучаду, любо сестрину сынови; аще не будеть кто мьстіѧ, то 40 гривенъ ꙁа голову; аще будеть русинъ, любо гридинъ, любо купчина, любо іѧбетник, любо мечникъ, аще иꙁъгои будеть, любо словенинъ, то 40 гривенъ положити ꙁа нь. } \subsection{Serbian} The tables for converting Serbian text between Cyrillic and Latin alphabets are \type{sr_tolt} and \type{sr_tocy}. \trlex{sr_tolt}{sr}{hr}{computer-modern-unicode}{% Transliteration ћирилица \rightarrow\ латиница.% }{% Српски језик је један од словенских језика из породице индоевропских језика. Први писани споменици у српској редакцији старословенског језика потичу из XI и XII века. Српски језик је стандардни језик у службеној употреби у Србији, Босни и Херцеговини и Црној Гори, а у употреби је и у другим земљама где живе Срби, међу осталима и у Хрватској.% } \trlex{sr_tocy}{hr}{sr}{computer-modern-unicode}{% Transliteration latinica \rightarrow\ ćirilica.% }{% Srpski jezik je jedan od slovenskih jezika iz porodice indoevropskih jezika. Prvi pisani spomenici u srpskoj redakciji staroslovenskog jezika potiču iz XI i XII veka. Srpski jezik je standardni jezik u službenoj upotrebi u Srbiji, Bosni i Hercegovini i Crnoj Gori, a u upotrebi je i u drugim zemljama gde žive Srbi, među ostalima i u Hrvatskoj.% } \subsection{Bulgarian} \trlex{bg_de}{bg}{cs}{computer-modern-unicode}{% German scientific transliteration for Bulgarian (based on old {\sc iso}~9 standard).% }{% Българският език е индоевропейски език от групата на южнославянските езици. Той е официалният език на Република България и един от 23-те официални езика на Европейския съюз. } \subsection{Legacy national transcriptions} At the moment there are tables for “old school” transcription into three languages: English (via \type{ru_transcript_en}), German (\type{ru_transcript_de}) and Czech (\type{ocs_cz}). At least the German one is almost unreadable if used with strings longer than two words. As we have the bijective {\sc iso}~9 mapping at hand there should be no reason at all to use any of them. \trlex{ru_transcript_en}{ru}{en}{computer-modern-unicode}{% English transcription for contemporary Russian.% }{% Прошло семь лет после 12-го года. Взволнованное историческое море Европы улеглось в свои берега. Оно казалось затихшим; но таинственные силы, двигающие человечество (таинственные потому, что законы, определяющие их движение, неизвестны нам), продолжали свое действие. Несмотря на то, что поверхность исторического моря казалась неподвижною, так же непрерывно, как движение времени, двигалось человечество. Слагались, разлагались различные группы людских сцеплений; подготовлялись причины образования и~разложения государств, перемещений народов.% } \trlex{ru_transcript_de}{ru}{deo}{computer-modern-unicode}{% German transcription for contemporary Russian.\footnote{% Following \cite[authoryear][duden] p.~82; all the canonical rules are implemented save one: {\em -его} and {\em -ого} should resolve to {\em -ewo} and {\em -owo} respectively iff genitive endings. As this is a grammatical rather than graphetical criterion writing a substitution algorithm would amount to do natural language parsing. To make things worse this rule is phonetically confused as it would not take care of other contexts where {\em г} in those patterns is articulated as /{\em v}/ like for instance in {\em сегодня} (which is a historical genitive, though …). So even if this could be implemented it would not be advisable to use such a rule.% }% }{% Прошло семь лет после 12-го года. Взволнованное историческое море Европы улеглось в свои берега. Оно казалось затихшим; но таинственные силы, двигающие человечество (таинственные потому, что законы, определяющие их движение, неизвестны нам), продолжали свое действие. Несмотря на то, что поверхность исторического моря казалась неподвижною, так же непрерывно, как движение времени, двигалось человечество. Слагались, разлагались различные группы людских сцеплений; подготовлялись причины образования и~разложения государств, перемещений народов.% } \section{Glagolitic} \trlex{ocs_gla}{ru}{cs}{hlaholice}{% “Scientific” transliteration for Old Slavonic written in the Glagolitic alphabet as used in \cite[authoryear][aks].% }{% [ⰲⰾ] ⰰⰴⱏⰻⰽⱁ ⱍⰽ҃ⱏ ⱄⰻ ⱈⱁⱋⰵⱅⱏ ⱃⰰⰸ[ⱁⱃⰻⱅ] ⰻ ⰸⰰⰽⱁⱀⱏ ⰿⰰⱀⰰⱄⱅⱏⰻⱃⱏⱄⰽⰻ: [ⰻⰶⰵ] ⱅⱏⰻ ⱆⱄⱅⰰⰲⰻ჻ Ⱃⰵⱍⰵ ⰶⰵ ⰻⰳⱆⰿ[ⱏ] [ⱀⱏ] ⰽⰰⰽⱁ ⱈⱁⱋⰵⱅⱏ ⱃⰰⰸⱁⱃⰻⱅⰻ ⰸⰰⰽ[ⱁⱀⱏ] [.] [ⰰ] ⰵⱄⱅⱏ· ⱍⱃⱏⰲⰻ⁖ ⰻ [ⰿ] [..........] [..] ⰿⱏ ⱀⰵ ⰿⱁⰶⰵⰿⱏ ⱄⰵⰳⱁ ⱅⱃⱏⱂⱑⱅ[ⰻ] [ⰴⰰ] ⰾⱆⰱⱁ ⱄⰵⰳⱁ ⰻⰿⱑⰻ ⱄⱏⰴⱑ჻ ⰰ ⰿⱏⰻ ⱁ [ⱅⰻ]ⰴⰵⰿⱏ: ⰾⱆⰱⱁ ⱄⰵⰳⱁ ⱂⱆⱄⱅⰻ: ⰴⰰ ⱁⱅ [ⰻⰴ]ⰵⱅⱏ ⰻⰶⰵ ⰵⱄⱅⱏ ⱂⱃⰻⱎⱏⰾⱏ: ⱄ[ⰵ] } \section{Greek} The Transliterator offers two modes for handling Greek: \type{gr} and \type{gr_n}. They differ only on one aspect. \type{gr} transliterates the canonical Greek alphabet as well as the special glyphs Digamma, Quoppa and Sampi. \type{gr_n} behaves exactly the same way except that nasalization is observed such that \type{γ+[γ|κ]} yields \type{n+[g|k]}. \trlex{gr}{agr}{de}{computer-modern-unicode}{% Transliteration for Greek -- standard. }{% οἴνῳ δὲ κάρτα προσκέαται, καί σφι οὐκ ἐμέσαι ἔξεστι, οὐκὶ οὐρῆσαι ἀντίον ἄλλου. ταῦτα μέν νυν οὕτω φυλάσσεται, μεθυσκόμενοι δὲ ἐώθασι βουλεύεσθαι τὰ σπουδαιέστατα τῶν πρηγμάτων: τὸ δ᾽ ἂν ἅδῃ σφι βουλευομένοισι, τοῦτο τῇ ὑστεραίῃ νήφουσι προτιθεῖ ὁ στέγαρχος, ἐν τοῦ ἂν ἐόντες βουλεύωνται, καὶ ἢν μὲν ἅδῃ καὶ νήφουσι, χρέωνται αὐτῷ, ἢν δὲμὴ ἅδῃ, μετιεῖσι. τὰ δ᾽ ἂν νήφοντες προβουλεύσωνται, μεθυσκόμενοι ἐπιδιαγινώσκουσι. }% \trlex{gr_n}{agr}{de}{computer-modern-unicode}{% Transliteration for Greek -- alternative respecting nasalization. }{% ταῦτα καὶ νεωτέρῳ καὶ πρεσβυτέρῳ ὅτῳ ἂν ἐντυγχάνω ποιήσω, καὶ ξένῳ καὶ ἀστῷ, μᾶλλον δὲ τοῖς ἀστοῖς, ὅσῳ μου ἐγγυτέρω ἐστὲ γένει. }% \chapter{References} %\cite[authoryear][iso] \nocite[duden] \nocite[bornemann] \nocite[kirschbaum] \nocite[iso] \nocite[aks] \nocite[dintb] \placepublications [criterium=all] \stoptext % vim:ft=context context-modules-20240428/doc/context/third/transliterator/transliterator.pdf0000644000175000017500000054376014147266523026310 0ustar hillehille%PDF-1.7 % 3 0 obj << /Filter /FlateDecode /Length 251 >> stream x^u=n0 wJhи@goEv27H;zG# exID $sLA a6 XȂ"NBk1T6.j:x4 .G.dwÇHٻo`.i}f93 O#Icm[͓dE՚DDҫeAerxʉX6qMLݖK Iq+ {Lcls;|-tYPq endstream endobj 11 0 obj << /Filter /FlateDecode /Length 499 >> stream x^}Tn0 +PH-ȩA{KZŕ~&93OG~~]On.V9X NG*Kȥ?E!JM#O˃tT J>*0ר$jq;}FBsӛnXKMيJBE`|x$ۊ&NxG ԨgCw@?±_h+VC]%Ly5m8xjjvtN8 1@lM :6 `MRc暀em#1{ՓɎ?%_J9\1ۦE:nPaybh vۋem[J:kcMIge[ε,dѷ_e endstream endobj 36 0 obj << /Filter /FlateDecode /Length 1049 >> stream x^Xˎ9 +J(Q@&cDžo\S.-mLc<ӭwQd|7μl\txIm<8/lCo1ϟNr~=g:$'3S!RL]:O\hђvg} lglH%Ic%ۜtv~>O%.Ni_y<_McPkn nu1x^x/,3dD)1wU6'8_ŻF=c6ɖ$ʱ#g~#nsAq.^eBrrʭ@%iy[YVCE~pچ0 ,uJE:{XFT+Uz5ٵB>gҳyt\G :+.:I<}9`}hQڈpA_]aYW !8 8d8]._qPTzڗK*Ge'ccOJ!YxWw y[澮9[EKoCTh/{zrYJ#.Yw/lLHrF5 Et]KTQ5lMN:@I&By)Q%R8*q0jct 5q rLm]W]aɀMSlJѠ=;qˏDk5۱ u9iU|$%!s,6jnΗ4䬣,SАUD]Glbˌc볚uQg%[!uv_4*TG>hu0 8"Ju2k_Nr*D8|2L( F~#[R6MGePl&aL78L9/k.JIl߉!L,M`DP/Z߱1g_W4F8Q1˓}H@{g3 endstream endobj 54 0 obj << /Filter /FlateDecode /Length 4859 >> stream x^}>Ek+,@ )`=A$H֐yUuEpZ f'ϸH<?_?|K[\7V7He9UX|eZEw:5_C¯]m5-Ry!훏Xg>cŨ}#_6o@޷;aHE醔*z⸜:-20 gvx%RbG-=)u+(%n⭴ŽjY&ZŴ)]D"@f] v=Xf%`r%J_wBVc5M ͧMW!69 %FD qAB-"d5^I:'NY*>FL 15NL,L7 ;D4`Q^S/y5w)mil:Π㙣hф?W "L#u ⰎطSgAd%"z:OEº݉5VVĸn (` L_.L.Kq'$=l>S>Gΐ{ xE{6=AV p< `2<RM8DF^K_"\vgHh}%NNZJ &qwm![Hv'dp&IX MZ|W@>] -&2z7SFV6f%\fzJHdF>Ե$?=ܚߺFJDH_"XHYy*Q8<.X8'M} DK\]MnsGGV}Ӊc抅VF/Ag8p1`aG&e"'zX(bOfGKClO? 2@$ڄ0@8-hLIO"0㯿~/Ϗ} x8wV}%vAӺ wpK?qMݮ&ÖԭIo3"g>Idd>r@3&}Rd[KUncn06O[45lR7 g#DkeZr"(['S{<ܯ}am ?aW&E!k"B~އ`q6aHla6Q+g Jo۶gbeA%@T'NmZфp츇*J0G>-W/EAڅ״ !xD}Vn7yikA1%c @A@xwjܷ6$`eqF'V>X׍ sso9$}bh{2/=K %c l:O IffU[:*@.h[PFPIBh)8(!dв%To+l j]at` w~Jֆ/ "iH֠$ wC(~I8Ic )E cL2VY)!Rmj [E (1!$APKSfQ7A޸h  5h9}/7Ό.w>?wjt,@u4 Xק%/]IV'jq>w8:8zfYVNf"y! WQ8!ǭ`NR1.'VF\s+{a2C; C|Y1A a'vZm`/: 9X2wkVhкvm#PFEa;(azU:V8/hTpP)d"ozw'F,)RВ > ]A,$zzikRB@j#CV*| Ɩ  i!IA"xJnth3Wz'Sp*V#RxÏ!: zkMZўD2*-K<-MOZFaVookP}HAY>:*qMBbΆszϫzX~~E՞Kz"'Or.&ޒayE=DS>* rLyDLo1kyF3XRٺ_h&́6,b97?TT%/SoyF3=-/T3ZkIkSZ[WOE|l.aFG3;I** ZW&jlS{#}m`m+ kم9z{@s68b]{ 0@f^v겣hzsh4o

> stream x^ˎ8ru,RDj`v{7ƽʯ/Q85tgx _oۿ~X_~-vy?~G8ݎǶ/oӒ_}v>m[a{?富7>~[࿿|<2ۿm-<ּq)}`e,i1?-˖>˶ ~N_I+y?~팏rhw44by-[M>?=qou=m"cZ8u]OJp!R%{%vap#:f9GF/V"C% !cJnpnE!O0>Yi )T.l߾ʓ_lxpU惬iu I Fk_Ymtqꉪ`#ƣlFՈ"BETsF/ .\˹,QN)Y(cc}\UL_媗ya[!kh4q֠Wqeӆu]{EDnGM dsI ҫvMC>IJ=$f~πx[Br#Ud@TL pEqu>fTU,!7RD :h0\#u }/mgCc<>Y <[)uȰ'Mf,c [pVTy|^59E~PlҌۼM0P"c$%$/7nm;8o˂Œ^d ^y[Zc7b8a=WDl` 1p@dl=osdhs 'o5;Aw臌㸛8͡j7Ba]y7lܨrވqVKP6m̛2W7>[T╋+SW} !֔ٲ1_U'A 8ʓM­y|_XQCAJ"Л _a;)CHxeWQptG h8ϚȪYsji{2oRɱjaAXj`A֔ں=ZPBk-\/<@4 .0_P{RP 7PC$j[lU444hA(zwo$m3b= *j!YdGkʯ^ 1{eֵdJoµ~D0K c PaN4HYC--$SQ /"zt,8ͯLJ qM"V օܴW&$npiBnd0׶.I \>fxg@z0ˈ!oul,+(vWp%[}>;F NaYyWÊOgHѫJVq8~"^[ÈVt%^Pz=y4NWJ˧4#H Ͱ 3[nȜq#,:.fq+>xyWny D`ZjqWgrc-{,kI.y$P ꩴQ4:I-\cԺcݶ5_RZ2Mjm@c]I'1̆vz(8 0\_eYPhjwLXA`'6bO=ǁ8Zj(LRֳjFukH{*.5t'ި׈_C<籊h8 /?tVWplYfP>Uu ,\?QS#5 eQ멮zV8}f“_K Y4}B.yכd±I{BY!iH>f[ R? ى<{Rv4{ԗ G=QJ`Bբx 0۾HăwbySI fb'qOJ$N6 H2pxva& poleK'(x8f a{$G$͒] t^}gQ(%Fd>ҙV2 RTZ "ms spWѵ)-(N'1c&_#SzLUJHoS 挴;5C8f Wp\"g&{Ur3'>a8ۥKeJ5ԨJOOW2qvaЈMO:z{)u-=0V;Үss{PkwޓCTHߊkwU^uL꧷- rTrmw~ x 1?][n}`M ھVs0K/ rje3us}ִ݂9-DQ2970RJS}vIA`` WE rݹlfS"w{"+;=z:n̤C>,4"ɽfty.2;4{JG7nE5RK.`q5Bf=ffieokv>%rxɿrph 31:J+"69[WuǬఃB;GĂ8BҜBiW%g] T"jn0jsZtsEa6U 8*r,%w_Y/IjK\:C7OPRD—mT%'Zm!#FӺB|wrw -PMJŴJkMRV> stream x^[Ɏ +&Pk$>fjWG0W|h[/W&$|o_חzl!i!_>fkyNN)ELC]2{iظs;rX-h5ek\֮wOs97ib!j Roؠs%_6_ pߤ՚GIUct_{W9Nu|*ȁsG`F|&~N9b~J7 !r05*xԘ>Ox.gij*0e0FkKFrQn0Sm~)|"kw57@(^O=YYŒ>5K"3ln,;c ٖKW4"T说}a40 @T߶: .zZ[?\lŎ'~a]uz5oAN\A(D W%` ]C bSbɕ<x:;.@ aZMgՅ$T[ 8$@> <s@<`Z^(25P`xq^="H!?^@L|aj-4)`\Otjkkbiz^\r}|?YpRL+Uu#1TG {18"` ] m1>7#٩*ぶ3L3j>%=-oh|9 ݆'}  "V2<` /A2Gz6v 1מV Vh|B뢧69'Jש#jAf\5{<;4c4\$~>8-G\@%=w({u:&.V1W[_td%-?!Fv4e KЭ]eZ%OYHh Ö{`肜)a3"F`BT.$X'ƄVQϔHg:])C!CKãGNϯ$|z];2cWf&mIWy3cv7n8M L$B]Z<(1F!2Ca8T̔εãKfIse(sUFCZ^ʲ(5!X( O|L?Hug&\ಋ{I`W9(=BXgͰs\Sa* w ntS(EfTj0/[yVvcq%ቨLaR<SJy('ݝGs < RO`8 Fv)B@G%z}3"Bxm*, `<ȶK㚌SPB=EnЌ#@M'6Rdؔ4,dMg:lefGRF 9qijz@coFza&nB3*I:ȼm'4p{0Y0B W66(1?0ٺ!}E#{o7>b]z;L-aFl/q{)eCQ;P6%V5O"|8KbJ oVn~g_hx%E) y);ny1?2^^'o=+dU/G>\<y~ƂTG&#$\[ z-X&2~bykzj&۵WH.L[ 7tM,BHŵ0Ō.XbQ"UAxS6έ пZЫ(v L}`3TKD q"ZPU`hk@8W-?{7Gut8jT}+fP@q]U٠/gjaFZl^n0!hڱFVǖ"%}%x#)5X=biË>X݀*˜$XPѧxG{BLR>[_(`A ub0J|6oDo>w,>f7D}#AeFYo-8K;E㱍$( 5ևrfqEyv7c7 'oȯ0j਀N44SwvSg)6TJ+:E04%4l[ 5HM$Jmfc?@NV`۵HȻ`ʅϭ76>Pl?:]:_w J[J%TSGz|I{sdVto$86ց.1*xopi1FYtbgs)!^+&2FxʻWXXR=]Ch< k޽w̐-0&\l1ZD9A0lOmlɸ5O6=պnEk@+pz^݃LSD* z%5ZaKXe#wT_sp-`R F3.saj5$7F8'A('()I duL.M!@GK>f. &XM(+[At9ߗz@5nw~Vˣ^JXu"@,;Sϋ`@ (J:iuU7@ljp]9i0x#MI0K27e\}AL}ϲ}C%q1ǣd8ZifF+ܴ̙hiՍ?y4u8tӹ7>d]F]CaI> stream x^Ɏ&Ǒ+)RnMIt^>N 0&2#cp77>Q}Kۯ_~K=|i?~ǗG\n|uCvW8_Y~~yzo^OGG#?lV͏?|WUCo??|m~V3_:~_kvνkUWm|0W;O.#ک?MU|/uTg~ zNUo6_{]50ojjo}_YO 1㿿˶ykfUj/nezQC, ǿ0F׶߅~}&`~,_&hB_8vGǚYQBɼ!g]~ھЯ 㫮ʊ Lի5ULߐ5"emͫԗy%e2Ujz.~Ls"!GF;n:.;u_߆."if!bًtyia3Oi&BR! -вfKQk6z?֯cLRwlMq|5c-3E(ӲG> fUS5MںݮUIێkږu4iHtFկa(t/c6wo_u;=5}fF4CyJ32/Npw#Grg&>'1L8G|ӗmtuB"3 /IK7 漾 mY4mW3uX¢|vґHڮaWũN1CNعZN͊}3Nc.b~/vڲ,QN- bH}ۗsomm߭Ӭ8ctg=qg-` ]y-hfb =+eD_́m>{:I4GjŔ 3eT;[BRy5q5e+JeFkglg`+ aV]4尳X} "Zq]0v]ǶjN뱺uб9`[%y`2mI.nv૟f76#=>@Zx@`γbUb O頴ѧ<$Y򎷜k gX6lm3s>WC>-ʝ蒱UۗcqL4u7}M9+ջSyāw8A;G9plzz0KO:u& %ƫir7%DIM+ t{I1Tu+kXuePy+ 9=(fH]ZZ-#R_FkЙ"8lXg酲A/f8H͉3int8k*`nl]Q(7<@H9` kѶbguq2 cȞ[9#Ywr{Ә]]7m}K+д% hL~uL`lkCg3NIFz84 gi) ]j7ijkDBJxMIC5]"8NJAܶbYij]28 CK(NLw@A,>5<,{%msvSyט@[+~N9¢`<a]O1aW @dKsNqqi>GL4=53g9@.#s:mxm{sv2xl^.M@F2zx {Mوǁ=Ƴ(xFLN' eƾF.-# 7OZI;U[]K:u<áiI˻΂9m1LV(dʧ+|y |5āp#>\h8% g&+vmV! ?0}^x oM_h16P\T-^j.V`nb mxq{a>WLy t-&HB-YR^cyCruKA #^ 8hpAܐuy{vDǤ܈Z6ܽ}*CqqRe'ufc,HwQWP%B> glk! 1M`{Gvn]‰S3#EAa9/Q(s  MYD1y_™ 0blc ]ȀOي*ADlj| .ǯJ.b΃*2PH`qwf(H 0]gۮ͍cxكQgOП }Jd庤1ܾ 7bY?h@)cI(}] 7x̀Dݿ6s_)MԄ=}TWrkAb-7 onp3 +r_2[^6ꂳߟuuH,ș{ҰBfNcoGN?"۲|GX&Y(;'8N)]hm] [/*^'Z ] bCֶGU*F^)Q̥=~ybз.Xw2յgҺƴt?jK[k+vFWt9ċwL61=8O9tYЧ=D!>*c?Ѽjlަ+j Q(3!K~P>ErQ(0{8xf[Rol[lFNpRgAC(ïx侩徹 vm'ƁMS.!U하йQ񻎦c_a/d-lr_wGx0En5͛Λ*? 7x BA|*74)_12 { Nbp$:(i- L;U&O1NH8^tp[P_s\+c˹k<))(>>dW &CP{&ɞ>dL|BE\C {D măP@>-1R쭒{J 0eN>lkD۾Ղj a[1Q=ᓄhBn q?Fffl07a!UV8`N*xbXG6!t5e,z>duH&0IJ@:YZ'4|X<81[(ˮ Ry `dBy&VؒA=7iGlzR)t.þ[(2u}@5O/m KrYʺ@i̳AlnGNnq=: eS\!sJU& B\txڬ|DG204kE7<~oSZ xEՋ{1&,B+NCHB+?1KC[X%Uf+oX$8c屆,9ļ"ܴr+@ lcHdn/P01s o;r'8poIP s?9ZShJ/ eIvi@ dΏ 3$)$˫22mٖZމgG  [$ay7T'?>p [)@:txd\cIiDd#*LK\ԟFC J}Q6^FHՠ!dÁDlłx2=i+ffGI#6 e F:~RC LOPI)qI2c2ďUGfu@%Q LiJb@:HM$Yr\{IT)WZ]{Iia,YJ%Y` G `+l+R(9u`G@c"0[(nu 要g1TSL tʼnlt5G*/7i_Hd{Ha/.H_B7s([_^,b;xȁEI;JΤ`0,{pt=4mh}&"DQAՔvmD%wˇp4DC8.{3 t6bءR/{Eޛ҄;8#X&]9tb;U>}4X.k-u D1wc0p|״p~caUg-o%ⴴ<9peB4tzH(Vs&UsB\b<UU (a  LMNp<o6 ϧ<5µ0աx wF! v! iq-[KmLfe s#RV爂&?mUtғ(@ Iٍ/I7UT.Hr=+7@%c@6䈱u뒽bQޓ>kܩ<[vic_7ՉKfzu vDRh_[vtDI㧱O֋`$m;3aaXp]%ZT *6 WVa zR>y",ܟO0 70/iBs6Aw\z8"ՁNpLI GGY)2-*=:.^]p7Z$ӝq{6kb:*'P)U|^> x{ҼP9/EU5ǐAʝ+jJx  a{:UI;m"2 ` b&6?l?xC-,U78ՅX΁Soӱ@aQciT\&ݱY@דS5HukYbkY.CZtv<.V#4IRPbrҘ>;c< 樽2 ky ƧçAS)KfWdc e!=Dv*,+JҎ jٕtc* ՌP',%g{ b iӱHa*AҾtQ!8$vwREpV͖2Js\$x+YÅ.?5t')xckPngwa Bv DN8~L?ko1a o}@輳r_$}D#6^D訍daGh^gzJ{ӓ뎦 z kqB,_݈B|O~&Cǝ1{KV#kgtmSITL8!E%Ktc8xOw)@~J3{\ީ;w͍#p\I`>g` 2Q\*o|)~{&Rr{]8)lT7~a1%Q5tQeL16 zgp {K߫%6jr8t3& 12f6KCoKuVo#ي"n |lx_\L{7Utn~Cڳ 7: {9EAk59أ٘e.~vPy``TaW=܏ԐS|PGq>x`m(#0,0,>9t7r"YY|W!`m˶:m2@p}*^%a@{ ˽`}.~.qb:˚p/i0܃C:}fFd)dJhTQRX{u UzxɬCKR\Go?--EVvkf]}]9 }OAbtiS"_O%Kp(Z$lH;%kp_EdE!Pa~ Iy !+G%8P6#eSᐑ5\)doHe %'J7Hl*E 6rFhWsTB5EI w?~b2M+l-vї>hhl^(gPh#TG͞xFˠqŖ3MnYkЂiB zZ7dZ6ʅZ7P``_' *~WޫqÂ(ΫN)Q7v*ח:0TiFZ h*%={BGLZ\C[uHb 2 Qxh1>[Аt)cWVk] yʽf3NZ}0օ>5NuFsZfڼ6wy֔ Oa:fPL] ޴X@(sg+Ʋ\=:|P+tbSS}9R *Ae<.q>ڤrZD4lJA[zޯ%}$H#zQ8THlEoL*Q#TDZ ((Dfqa)bq-ֿ1RHV[^e9d?ٜVe 7yҀ|PN7czH> 8`M:[ V(~ SUŚ{E-<[SpLN'O. #]{ 6$KPuT 4`Δ'6z4A< maН8G)}\DV;A` ͱI_" <7'S/ϋʶxDZg[U6KΗ =Rd2HO<ڙLY)7-E S٪dʻ0M'?:D߶Z>) ]Z @)k=m_!޶B}N4MVaxGIaL'7 < @{XV(E!Bw~V=pX́M;XYbOQ:xvòpa.q֢`&9cJ^'سd#&*9Kk7$$fyb\Cu*\C¾GycRqOfEe. =؅O%`k]Y4%녉_Pg28o4InPV$6,w~~al$ŊrCVSJD6 :p1էfàl.uwкa SM55y] MăjE9g#0\Qa3b\@KIױW9Y U(D-XP)FF;R}1eHi,ADED?]r/Hۋ%`lKA&yTl{ #؊u,Ƅ+i mUjBR;[^"Zk"!Wb%vjv*nT%W| )N9\;a[PQC|] \ژqJJ<:vV?TLfGS%nU5 aMZ:.]RLPZ, BI,m_[]FJ6]))SiKݦ=4GuID1VWBp-:xEd[ ;fF0:*-_ ?SG}Pa䂨H)4_R?Vi\h}ǹ6̊+%yF+ %t^M8Z1)%.)2$OӇWATO G5^ endstream endobj 74 0 obj << /Filter /FlateDecode /Length 11739 >> stream x^Ɏ%I]f4ȡޱFHtoX su2{*[dy W>cOCϟǸ}cyyd?x?iZ?4m<ʻ\w^^ֳkyx?18g5|x2o400,'!1n~<6!s| f-3Db[#ol9#1lH0fOi~<獍;(Ōm]!7Cu?9ù+PMѸCX7f}dQ$rq_8\+E>9*6h{|Ά{鱭8لH7k"rIdZgppاc7u:#sa[?uL8urGlmv3·vY?R*- t.+48RABpl>iGcFd1igqF |[CVB g4}'4_SU jxU8Xռ6:Y?5̑V9?,NׂÎɉuV&1.ΊiDB(w{<ߏ p'ذJap1Dؤ2D2-c?ܱZt= +n}I{G&>,L#Hhi(_"TewĪm{oDք+uZXMrrg (Y(t[Ff6\}s&fkh5}{*ج@sn.8L+=lcc^0Հ2;LRܺh~0(gE\QˀDgGW ,>|xv놔ZeٝQ z+F ől8XY۱Ȇ3{e{;0l}?l&$54zRl'kIm˶: fpg&rcX{CxʨI,l<s2ބM)w49 Jf5'ϼ3[e x={o(gTXN̮o$>: !f$tbP{=U xv,H+`̤Mz<Ɏx0dEÒw/xOǁkm@00Em2\;C~r}%׌ 4g0 ui0;VCL&,''H$Q35rڌ+Sޙ"EHTب!`)@mO UWXwy|GloXOH84avp|7pCq>4\2qOX^YNzr;f9 K9]3\ATJX=˂r3dzf~2_жdQ2 ⪄y1 =%27?jT8mYөa|Kr9$Npǫ^_ytk h6TdqO"V"1ŽUg?udMPǗ飻V; W7%5>  Ȯ{J^n~\ `!7%J(GV栰 > YQ~Jw%L';9lhh>G (VىY%L{}n;4ǠXN&lNwe"~OI!i&"$HGI1Sٸ;J?AuxzbX}7$΄rכj\Rf5_6Ss&>iJxU 5up.HiyWC?6x^%< $%~}Dxb"\{ijdv4{@ ?< l⑸m}$TZ*'z$/lD:s8B1^2@V y7S "Q,H:c'Q`R PؘdvtD+&Qę24#ܬѩ@dH] 7{k֩%)7>җP`x6xe RNYo 5kp@4d\M}hR ش\Ub9Li={⫠o$GU&pGO\%\ңEu4ɞ,dh*}%` kֿsMiym#9,Ռp-XDgv9VHءߋCKb}ɵ,-E-}')_Ԩ:Z7T]`pd}m(R#N5l]@+ **8e_?KވbG<3©L9DBfPB ^gM5 H:[(<#AϏW@/ʳ)bSBRhEFٽp)`IXU )7'(O*8kvipY?|j4WN t)e/rJjC>5B!}$VTQF濼% 1 S#dB狞,jREmMMXVAWJ럍ǐq9gk"UM(oU 9ڈ_=6doE|NB%U& siПJˏ(>]xTrO=ޤ>IO-<|U%J.1hϧR-i QIVL7h"Q& R\Otk?t*iJO?Hrw4ΨT# TkS P~ߋjګi: Hސ!/WJl+ 8D *^q ؟{8D@וÇCDOa浼% @P$qdX#Cw8fiJet4 ճ5SGZ6[V&"ҞǼpl9jB2ן 𞲠>maj0cAfaMw14z e#Wu󊟉0Z=AMDGʳk $"B t^HFsE)﬇NxWi.78]n"N> `"K ❚)ᔆ1._k[&DEϘ:0Y@0L gfmL%c7Ȗz8p^4g?έ=/:T#3"kvlW)Ɨ-J=L0'#,0"&CoM.L$jMuQάip(#<%wiȗ*ދëq/mRu;]5kr0hL=qWR[ CDϊcJ$ckrP@z/նS„ϫSfXlDd{iOTɮUб>13 7+8b0pdhu¦!I/8p  LA0qD,בը9S,*!̵zG3!̈4S udxڠjdLӹl ?QHsB~BpK8Bl(`aQ(U=KpG qD-9\ NKsS>(4H^NP K` A(hD{@FD>H#n65kO{U"'<j !M!+wOU=oQ˴XDG#j:"J-^iC%;kMۯB #2Aղ#7hͧm.Fh2YRsuIj 8˞ACꫴFB7sPZdŻVg*f3Hde^Z7\$jJ`A QZ{{|Tjɵ?yVişAiI,oL惺upŎ٠6)j6P0IuO`(8W:SFy]L#j#Q֩ ,Э*g. b$:&QS z5N5UHxt| s;(e9nu{ӵ),RZh7w2qwJRx\^Z# IRJ.\F@ܢ8}jU%BjVTV'J$/vx56T^ND%JcKDi DΖL5÷d?&ockJid~. Hu|Qk 3!8RSJ`-ҧ0ܴ& ,(~/s ii*ߍNj+Av5˙0DrP1%A.lu_znɄAUߔDf ԺO՝ 4LR+K~QY<ɟ c /튯ɜ]bO#LstyIOD=QX@{SZ'Lt] q4K-]J ?& qEʻ2jP-.]zbd;ژ8#C$ePa;޺5m(!\6A$Y+]xl6_ˆ]Z GC2cK$|D"z=JI05f,PJ,WpYG N|Uc!iP5cO I+_Uɓȭ#BKB!15_N0`Z_)ǞJY咞xݐVBp4 rD@/Gdʕ8Fx64d7I)\?$@6m @\$i4XףWrqF;KPddcPĹ+l*eqJ$Q%Ii9 %#~\&!,~i(]B"q1PVUL[|RX7h$)\{s~N,wZ=Kȣ kYN$I-Xr@_s"̡x.y32W mh9r_7Nr GBqR37YĚ&Mr+P@XvMe.Ric일trÊtCyVU7IWDkXwS 7FMa˛ LQ~^TJxg2/&FyaD dх s+LBe0ʵS87pi-"+pC|(‹eQPX |> DqR7ťD8O♠'2r}]hpMW+ӳfj3n9?[.2׍4ApI**mV R/ToLB&s1xf@WcuFwq0-:f2LE?s2 CUac,8`"Yo)Ȕpk弦+\83sͷ2u4b <'ư6W56,5]cdso6JJ)TLLHzX˵<N xʁ.2 \:$=nq=f-)O"G#-ETJ-{r1Yr2 XP1۵䦾?Ny!$K!+a1Oj`  ǃwmec8,vTgM5 ]mKa;+f)~/S.Zu${>hh)cfqb'Jl'a嘙AKy/h6RDXTN{3gw o46jUƝ[=smȀ6흶S/|Ld R} Rrf$ spC"2UtMuݙ&vn2vuksV1 r"1ݾ9OeMt 'dm``j5u, wI#z &) ]{kvULvU]S'3DuP_z3:1V/z` 3*ɔGx_F}'Wp1>FIan^'>l2=Q!p8_$#Ln!4/b$<,U ➎=T`b>m:(@-ED ǡsK7Qn&jZdO`..'*!Wۗ&XH1;C2U*o*(Kq 8bf9^+p`iB*,An]. % KiLR/1uYrDØ}cEGƧmƒIm،ؙ㆐M_3"ѕJK;ኔf7 xFi ttp 0LjJ \y=ZgT Bӿg@IJ~ԏF@WGCF;_U}/y= #:!8 IFe+t|Ő*Z&λ"鹼ݼ+eعٸbMd>o5`WE]$r6p鵤ps|LPnRu!UXBĭ'J51J i4|&\afl!`T֢=Lrtd>a9pY9-#l^jQs-@'ﴫw E)_e> U_gp'ݞ'?̷ʵ2!S8V=ǩ㧧Z*|+sz"@Lb/5YE$`#+Ģ:rXP7INr.H.cM^d#w%'[)n@k B_KaDv2ZWp 422^]?_ )Na|,纓5vebW)+T ot)1&Dx LƄ ,Q"7_-(!ft ^hDD=EmWI򽗓ntLwBy=Lػ M)]/>! R r*qju*] nݤ2V|/b#r=U32^K*m3O~_^~VW$U"][w|g?Twn#+-Ύ|I74/䨈ʚ%7Qu(^72| *^G-V_f(֎g1%t%Q6EVKł.Q[Ջ%ROrPY k%uSmG:*fYܼQ~E *dO? isz/e;mf@H'B|өbARi+[=3O`F&_Dwp`;NSC}>)~=?'% ]/5~<)_xo::^Z\`]Y-##m.^C^?x992PFk^f&]BÛKĽI!w&<61)*rurzR*V@P%;iMJH5^K?KBKQujBIoEsgK}fTZ2-sWUE䦎.d=`$ʧ~NNvE&H崟gS*(AAֲWqf9Ӣ4gΈL]LE?DnùWu4u`{햢MLL.>J/L 2R$_gn`6eڨ?DɼދfM~=>Y$;4?{泴9 T2fjg^P%s llm;V=Y|9U '^CSL_, endstream endobj 90 0 obj << /Filter /FlateDecode /Length 6762 >> stream x^ˎ%mʈ+ 40#dkao~%$YDz=U?ɘ?cӗ߾״}uZrlo%1dH\s_}ZX?~_~?O۟tn[7psv9sY ߞ۔rGx^Wimע^y^A|zK &/nuك{JG0R|NDzE^o_˒~u?6I?yLGYl/4ܗ`/L~;OJ۴saG8]nLe>K'>/'uڏunsvU]f@ݷ#:~W;:g1Fڲ-|.Y.yʜ)( u{Azޙ>%eXϷ1y:#hG{Z"xA%#z,a3}ZLoLiFD :a2[еy?}` dζ1ev |nwu 8fZ;x,j4O,,BV0T:z+(bRPjKD)+ ^7j1k4,_J"ݟu(P{]wRZ,k'2?25$6^E<6?L1=h۟L '?kٮ+F7 vffCѪ ؏]}.%[Dv<-@{բ? q?qǎ#VQsR"Ǿc9քO?%*I-DpN<)#V]&v J~zCP5-r*0o3 rֱ&rf*vC or0b+mHCS`Gש)m}^\Ѽ25l͞-3/PySuT_sWw=v799U(+ǶlC&N |LNw1`·!2r,8LMQ%,>~z1<5>>`G82 ][$ 8blߣ6qVc $%.JnЃ5J-,\@hB̃bRcmb.RovWvN Egnٸe]ꎱ/ZhkY\ 2E5=BI%QfEoz/SnxnFL}N J25̽ܧ^NvΜ`t*-bg=jjw^b1φ= ؋mVݩ{ܧ*`#4UT<]D?~ngQXvN"N."#=} *ō))O`^`fG@G:+1 L9.PpH0pY,v KBȽ#U[-ſTh9;~uCCW8vvЬqDP^/$n}_|K|/)evʤ>QO_6<@bwsIGAm\CKEbp9yK1# ~)Ux"tTdA=M6[—tl`*$ NrH$pM(%!߳ w![FLe;׫(9_|^ 75^#ndR>^DM ǝ$8 " )t.dkԟBpBdMߠ!> ˉ ITz\jK]^pn@2\v(:*$I޺ӍB2GXѷĪ(p5lW*k9r/ ֩Uٶb,̚w 9F%  ^ޟ@_y`-VU^eVľ@EO@r&|LR/O;ƬoKX_Ou6jWQ9(Vbq J4)Gu-@[M~pEq~6{SʕC%yzPm6O_:A)xlѵ`Kq*>D{F `%/cƙDu~(0uUݵlSt xd]OEBʓ$yE>nT&q98X3+>"’PN˞*0%Pze}D}xUdqI~_)4  V ) BG\%g'ª_Neݮ筵L>N ?eqa3)q硯հv㭋:"Um! DRB #RlN֐JEHWވ`Ը<ߊY::oPN#hƩW>Zﳿ'_\Ϛt+%G;YHp h2 'c){?:QOSv#4Ux`VzkۗMA w{ : 3w n,BA]K-E$3ReVuutCM}Wqv+?xq_(8Tm^ WܗQ4= GQj-"K8>~E*`lmӻ=Ec LlOr`6vdUc˨K$c=KcJ}[MD,B&Ţ;q;'+ l4DƣU<{' zx`ZP_s5F+YK#"tac| pzx1w@KGJ#UB.{p 6hJ?oOWrNoT?^|igа:#F{Djڍe2oRgPtnr307֚hZ֪߂\-֗q;xۏp))`Ug2~*b]A7̬ת>w۪FC\$/Bj]ב tA`Zyk[Uqj{67 pЯWN_V6F{{LW <=I1= ǔxb)#--XKʜ tM~(~ĄTD3 ##g ]WUSn,Z(Ys,Ө(J:wՂ5]ßm&^ Ǝ11#7U;ek5( 4M2Q03o K) M}¨`zvZ38Sb".75j :|Y <&Ziu!6sq;(H7'wN=Dp2!RU@a*%bW[z \*/T BV-u٨`H^^vN%g[è׎䪼_L筛jd4%E@%jNצ[w:HU#ܬp=sH'E?\=l)) 6|Lr)ցޫz]j)|Ts^#ssb5zZ[Z$xZVaؔW4/"{ޟVt4&eWR,jqFDCfO&^!8~xBѴ,2z\ F9}!G]˯ٛ5'0d&9FOKW#YkW{U=aIߌSi]=QW߾V0xjsոlh]<~VONl؊Vl7sgz5S8.ҡ=?a F2^Vkȼ5ryR7@șp6gǡk/^ITaUoc%7?Е}gbn￳nh)^yWP* HFWtu0T +0^c"=aeXA> stream x^[ˎݸ+XCQ 趻.w$"sΩ*z\n]*I?O}ǸXcaOxZa?m}{_4rxqYy(یz7p1~s\ǣ1|Vi[oþ,ӺvaYe}5ֺs q1>% + $\"-a60 ֳQ6)2MAKfj|<<'xhs^|hwA-peHIAљ25- !I'!P`ڐ9V姙DUۀ[qxؑ{dB?P2"\R H!))~ m++ʴ'de$x# )2a%YL˃󔆄D W\]F&lei+PgAd 12i^>/38¿/dK12]B6ZTw\Hyxc.Vo >5G؀3)Rk\)#eK$2D-)_ b3IgwCMD"{;ZaUyՊdmnB:䵃]K>k$@.r\UDڤU *$z -{;8O%CZ{I*py Eh5x D*ՔSZS älD)s $HCB&J ɥZm$ljT 5d,45^LP~^^TG}l WH3,d6%fqtG=(DFB #?)/% c)( $=,W@أpृQ=Pkځ\8O}uGQFɊ]N{A==Je RaQ)qE0Lt?GKS$S:g!C7Q隞iRL'6_d[rEl-qگ}b Թ"|Q>CFk;;2NϩDQ[j 쩘#"bTI(:duo98b:Ȯ}V(_[3Bڗ.LB!*O^g.O*u$fUl|bum]zg wi7G6\s4yA#R ry(Öw\ji= ӂ1bԀl0nUf+ r~Y5h2x` ”_ڦP ]J9+y)1Ģ0!&YzB -;#jQ"F%Q [+bEn9I##6^{Inj!0AQD*S1Rը$$%2R|w\R⛯%'fu>} D$#_6/lS/jb"{jd!Ĵ7@zv.Eihr&B2tAL9*0VW5u@۪;*ebװKe(\~}X W=XJ0Lc .f!?(7rS3*yv3d4 ʌr S 0˨$}T+͋=/:4 ω>fLԫ Q#zzC2٧35U;[=X*@OMWj]0C2Y̦;f(NYsNb߮E3JV7HRvs85Jy!c︳++bypՔ|o{?k@TSmczpK} z>QdZ~k䒴mW7|e'R>"@ϬNgf q}oUAe<b8졑`g+ټ_hٱN\u%؜O>%'sm Y I8ˎ m"Ur}>Pb ^M/VLj-ʴ}D5 $WswѲW崵SS#m;f TeM9v:`5Mn 5h34oai{W3]pԪ%GYp"{ iBムCs8Z{'q%쥶IК Ee5ߜ^vl̬Jn4^kט|Dq qѮeEhDy-%a8t$;JjbΧl 0j婨t)0\0NloYu-tudžnlQ@}P'Oe}o4h8X2wD'O3(8 ;q#&hN3Α@c ]A7ڛbD֠޹`5֍yw\9|WxbgtBH'p+L1%D r qixa:ƓFs),c$J毧]O0B\;nDE޲H9Xʔ 4ncG_s7ƫ2qdaMn"0' I:qUSG%z(ՁiޚtX`gۛ9̿v'wI3Z:uZqVr&R5`;OPKmZ!0ObSCݚ\RgcxZ;~^Sq&~ȅ;u|f"8'&R?K)ʸMÊy~ w>L| @:0zu{[r%ѥ!{k4V$hXXużW+:y2w^hޖهh :ɝ &%%UqwՑ5Nj${pmRGLO/5W]sy1*IWUS'v8YDfDTڮaDm{n;z~Lt +Wj6cm2.%LqU'։ lF?dmwE+ȋ ~f'W0J?LѧJǕ[}cԫ?<35Jf=އ .C\,z}r5VwfO<;vZ6^Mkh:uu/V1ƦH텿gwcBA5uD {>G1͏MޗZfz阮W̃8x08nvꨏ%kY/! i9L[|*ct2,~'>:b(~RGM}㶰g,~rэ Dq@}h1վEBZЊAӀWR6/u 6NX,*7nb?W;i}h78\_| :_r[Yp _Ky /p*1;bBce sR'"i$DM)K|#={$״?}\Wt1ISXu>5K8E~^J/F{V% FǴI_ı8'wiTb[S'M{RrQa Ngt;q36|źLFϺg~"D[iFUC/;V[f endstream endobj 106 0 obj << /Filter /FlateDecode /Length 4400 >> stream x^[ˎWY$]mosΩ*ҕۋJ|ԛUۗ}<Xַl bmy~ſK^/oKuZk>r—M_7~/Ɨhmb;N5S廸4&yX ;0fW&v0O"w,Wdq\&b͙.@hl_ߵt߸(!6Ͼp톽u=аG ^|Sן'/_q/Hn_:'V`_E@EA :Pa%aEk-Aike˥cePR6bz`ǷO&u9¼ ٴ,Ҍ!_% a)r2HLFi[*Snv.`v4}ѼBANI+T1ě37(Lj Xw,eضF̊M4$IOIޅ d)-,/&=-e}b#e Ԫf3~$MQKքؚR(h@09_pDYr6Ip#3*ޤŗ0Oi~w>9+4Rfz-eA77Do4h -m;[m?l28TϵDHNuÏ(Ila܉4kgem'1 :B<`^Pw%)}8^6S/t5ŷTI'Ԟ:À, ]LI0R,B<CRѧP=¾S"g ~c沤\jeoCt{ 58$oZX^Jl62๪:|4@Tu{"|< lawlˣzjv{H=Y&_O,D@)2ӱ/?4ňŨ%LK`K/-5$ʍ*þku*[\<*畋ڣJqozu|95[6A'_'D|J0pc۝:1%4a8oL ވ┊vS$:n|mŎ`fR&; AbsvABT"h&Mfa>a[|OY43̗Io(2\xb& Vw#RQi gfqaz8x؉,k"8RDkVO9|YY 0 #e3Yԅ ~!q4ŵ֧Ch3[?D6v0KY̅A02#u%SK1y@{Y}ؕ+8uA%)<jH<_PRL?B ePgcu" oTmeXWCChxJ!W쏃E(Θrsh]v(eӶ-e,m5![&|DtʼQL"`u8Oҧ e}T.ݗ5Zy^(R)&c0xEK]lcm͉ l0X8n$3j$BuBB<+W'68#^Rzv4\:RY=3KaegcRtUr$ҷ6l8F:-N?']H{z9vZ449#Rxn0-WT 'c04f8y2G60T-Bl G9qYpTj) !³]AAץkYʐ)7@cP^dڑNRki-̬ĉ[EL(Q8x(To)8 /<Ke9XBMmOu |ˎ+!@&(%H ]GzQhw&M> ljk@;Ѯ}zbl.8mOd tEcWV[QmKkNrR&*v53j@ P-w 2$QORp[ OVF_eȎBzW$lkV[̨Rv+l2hW\jwԳr׈tv'SFW^X֔N/ W3#~7/5puǻ-mVj*lAjK#҄+vŚF}wf'EI!lRdiC[R@Am]5m^x* 0HǍFkk{G;%ABXѤqS*1fa,EH`po ehKtbqwZRqyEֱpI3U~>"!glS 6xT-9R^d!C Ư JJC?Fu5QA|FDQtUѨR9rsT endstream endobj 109 0 obj << /Filter /FlateDecode /Length 6941 >> stream x^\Ɏ$qW0D]x47' Es.}lqt&CugFbo۟_yz-~2oUS9m2mo?Mo_?c9׳Ϗ >,ϞOǎe[O4}Ƿ]6vֻ:M;M7}XuZ{;rWoG4}A=̠e?-?~?"l;H0GQ$w37pb׷;q 6W,xR $ΧAQ\""Z0oS'R~@eF*۳C0&z`ۑT,%]uPI?%I#gX2cb;Dv+pbs>Ifl.R|͏s=n=II}jOFlqTHZ BB(0C@H[JTI$LT!a?^ -5yH`f LLFqs**1J)-∋5G#t>ڌw\Wf‘A8Hl @*˹}nhe# e%Aߵy+I D\ҢRh!LԜ5LN`S ߖ8k3D( SP1ѸOoY1NRFNx :cK nv^ӏ7N|]h> B4g{IJB# F4wO ėyTR=(2&|ic$ ttjnoÉJ/>eݦL딗"$9[t)L˧QWؖ}FWoqӷ hmm)߈b7c 6s@m NP)%/f7H'S9 ycrӷt E[}kCxPzx#pd/ p6#ӇaBf6úӊwBםQn/ 4\br|}'¸i#Vw{ɲ:aLXuҞ,g$pcrYAI ߔΖ#zx" H- K"}pƓ9_)Ϩ@Z%X/?jG@:ǚpvlWCX ƈ)Rw^bKiHXW` s0cl3đhhO jX7 } Q\vpXLVQ'&ܨt%v}lt, nShv8!e̓I Ԍi}l'pz4|>01> H`hez'ͥ< "WM; 6\8k8njK)~gǒyr O3ҏiUYRb_`qFP?{GJcu q|v޸یZ{xd-(K'Y\ v,` [WYY8< tscz\t]\ Ņv1,SճIةjqs~=s4J&O; Ohr,!eʝ( ju D%8 <lƨa

22@ ǚ¸7v6A9Αr`4KF~F!]`E?#2acZ^D.uz@C= S6TP57nR0r=\!` :1/: ^ٮ!g9OʢH1}7o }ri'bmDU;Olx[M8,CM?-`(OXn3K9מ^d 2 /i5CˎhiěljGīP!HhC4<TH'Q#Ӧ疌ɶms:HVƸ_+F` 52&10CB4e=cKz_#<QjIYWtzz\IU#8 @ʦzƻ&)MQȈ()241CmyGPn(T!: >$~,tpF#qk?:X]W@Uf\xF ql̡X~i%tШ{}j ZcEnZ4c=."7ŒpR1eQ;( {i'wAg0:ymQE*<ތ}T걬(S^o`"n|7rC::9PN(*:iӊX * ˴#  /HZgh,i(Neq 1\ Ps|bfuBYQ /~Q^(iqfS0H&g@֑4^ =Ш^ޙG+{`YqiFGT+k%Բa#F< ǘf`Wl܀PJ?oNSَ{TMw5ȪAټį{Rt.Kp H{V>/CE3:X+:=:"T+;m_C#6+0߻ܯ@0՛mfhraeݻTu?źU7!OE3x_pH΢ׯj|2>%"9O*{O.U3VC#[zVqHE*}GӇ\ȐHk=Һ Dc ,,,)>CF#>Pax3/VHU}_L"ZO㢽G,UNӠWo.\abJ"/iwSMO{Tb,IEJ[`G3@5(YPMz'GRL3,.,E}֙jk x TOHXDtD=}BuJ}[z/ӹّ`{: I[YD"ׄrY/j͌Z?pϤXXݠ;L(nXfOJyq]Գ =,FPϫD0wDk42RB_I?SSS5qC?6p.fyZD3GW.HlHA> IK#D/ KW9SPۊbmh4@Qo@4{Q|+vgρ0sjUVa656DK&euuv; TuTR dcRТud6c'pʫfu(+T#Ay6oSRAsN˫lR8 ݦg]Ux/L Kyvɘ 7UUG$}qXS?k/(Braw~e$s~]_ cIr7n6^ׯ5xSa>fӈ-J=Kل^ SH29Z_Xp5/5()55 !nl_U< \_d?c=?bg`$~ p.ީ7Y+䟗J!g$BoJi<ٍ` ` ? pB#Tl׆K~};SCUb`D8qs!Y&QW:nwuRy3L׿ Xu 5_o˿|P!|(n! b(r'\N 讕"^ZfUfiSÊqe'[2[z-YUp*n[}(:Qp!'+ol!ϣ1I1Fgk5LGx FD,~?LV#T{[?-S6Ufv[" q^MАŜ4#z4vx'9$9ts+ԫQ\C|lFEwV[% sc\.~o]ܓ=%Y y\lE3M'm4t(a*n%sm|v\p ~ $7,,$)}kv b?1aPfi(]# ơs#YYeg[RӐ+efࢊLS#d6Q[WB##N.n7RlEG)r4{TG2tpx:/~a"Kǟ+EeV;4vs!["_-*l#+()a J'.6Of m'M\,"?<-ҳ), "yNdjg|\n~8*S?7Cikj-P+%!u κ,r(Uhŭ/6"d}ォzRKfpz^*{~!Eɦ`Аy2~@ 9Jr3y"#z]륃X7<Қ+x8|f#]ti*w+Sk\"dQPhH 82C Dd'?yC6ɥ&VNd{jGwvh$O 脄@9,nm|ЫB[vgk"Vv*~YsvBevbhP8cffS'I;Pį-Vm_wDΊ_VYd ߙ[*Sn63]B o ί;CiN9'\ܔatk`ngB' 77hVuH$)Q0zerQ3sJFO> stream x^[nWZ-R30l?lUsNUD$5O,/|_~gZ_2Ǵ˯0d|I/Øcya׿^o3^6{m罝a=u~6)i]F섿?_Oy[y\bq%*U E'7ߊQ͂ wH\GX*2lkNH4Md,mϓ6h^{nOBZ&>gIA#qם 58m۰y9q" "t6pg.56j"`Yё')"Շ9G~>qk= BMZSTB,8ߗCBZW|O<׋Yv.G2q8t"tN$zD( 5:HOCb17 ,^֠@h8R05T|xDAaCWMLþm.SBdޥИSX4zb`0n˜NZZv5! ڱһKhpN09"t] jtQG'13` d:E_rP~ VMpiɁTPs.8 , -v YbLˀ=i䄑(A2|L#8lu_,SKsZa%ڽi^ͻɀֈ?& t1i9E'G0_ >"gank"χsc𖎤H]oLr&6*k u+YqJ FqLŒA `oFnCF o'@l:kZ#!՗^\s I M{X/gsfָAs g{)Ƣ,ӱ.Gq_^Ȳdǹ1\5Q|p+ZHH"V_8ϡP)blDh2/ hƗ2D7F=xV@bk  tcHX"(rSY{*gZFDIrz>EJLk0 L d?[#| 4#f?Q3uPZ?&c8qי9EΓko;+F0"Nj)CRЙYX_ܥ) JK;3V.'nx,<ǧܲKa(6d@1ŋaq`nը@GXS ]׬6_E&E5GE4aܬ לt1]EkP~ Zl֨Mqr<Atw =Ix*Ձ8Wӊuhp;/9/p+,fF-kg/9 J@$j':`8ם( mT~1g@5T..밌Img}~k .mz\iJNT ۿ>&Z>?6o;vPIBLwo߼22D0fswu߰y}\Ѯͯ_}i/j?z4Q&36Ko=P pf+7Hmއ*\l*$җl{Eql wHP. GߨWQ|!Q@IO*O5üQmVOڕZ2(`Dlı᧟-N ׄs?Q?ʔ܎uDu TAHɷB=xrBdT- a}+ʵX$ 4Gbq`X"/+T$F< ^/K|n/ss0WJ:V+쭂U/Nx0nG97 ރtO̰7R+$kUd>11F|+ u86R^\J(WٴO꼈 U8֐\D?8](QZaT_T ƃ#,&#H~(?WzuV ?tuQkSʳ?#wmLBLǎ L<5 h$_'{nr+wM0~ ⯾B9\q9 'q͇L+t~\ Z )s7Eȥ[9 &Qɳ-' U.D\I .v9l+(iMO=@2#0Y5xI ~q#X_$QlPGU5L_e[D6^\i!'IQl1-/Y={?y|emF&DAg}.X3NG)uAx5[G jtbBF1];QU%^yN2\Uy#S۷M 0tyH G?>I:Y]q?MߥuIߙf֜Iߔ3r}%|3{Q o)<Px!\@vyI>\T? m:r$xlYgzp Ɗ>ZeM BlE ΰn-E8ۺu5Jj|h dﻵ˗eu&;'"!Ҟ-6dA}!v?F:{ó0 vk{QA0ZsQ;FO:NZ~;|Bi7!0koq씷 T!m r;zӘ;c󐷉tRw]оQ1 :Dwb\r,7MU[4=݁2*NtCu/>}.Mu3qY /ۂJHœс}udg#oHÒ&B iI <6^/@ wN.cw#iѸC^uX(?qK;d~|&5-{O^;{Zƾ]&L;XL}yueC9(BX{N0s g i0nO|-`k*|hP_}P^t5#v"r݈ Zr}Ҏ 9sxCf@禥0ihcz#"g3] =#d)+Q# td:Ic0uȟ_dzpN?Nxeꂶ7Bd`}W*7q 0v`_Q.&Yj{.[-N[>yŗU)W $dK=q>nͷݛ BT1fө]fj\(Tb`/%WbӄPkMkv?  q߫J;> ٺ\2h6W(!9MomE+b7hnˀx!ZR;oTy]p#Z-(vGkRTȏ7&/d]hPu1V~I~1^aڐ?+qa>xlOݘ_jM^4vJx@r#F*6ntg "iÆB ,}u CGF":na}uC31/UDŽpZoM$z3nyv^3KX&\ݏ0jWK8vG1d*h^A2Wv2!rʕe []ߔgsO#J0h eTc^'oeW* QXP\΂;sa 2OJߴYڱ,(@:Z5UiPSsP=ٌT8m`L`tfQ*W݊h)|,ka5:wK,,h$ZD[ckzW5К CҩN@9c?j_7LM>)(֦j_h`HTVz)2Ot \ԛ;)*7}E/Qh%$q<2|6y|'OE}W;< vڪ_rITaTT21#б)*U⬻&$ʃ_5{&LN O(#iQFdZ刯F4,e7g2LB4Mr(ϗR`E5!i f*KL8s@m ٯ ,(Gld7Bgc??+1IU:G:v<߆0 ~Fd*Ҏ9l ;~Mj,a4*ˬ U=@+F",'BNCVqT:<>?z +g˖ߜ}S{s9+Ũ9!_Qv\s9^NYq}ye93岞^X5nJF3@}wVst :-m@t"dN00dgV endstream endobj 122 0 obj << /Filter /FlateDecode /Length 3748 >> stream x^ZɎWF\E2s _:B)Efu>*%q=^?o#-jϗ!#-gT{HD<`+dKgeU-`Y?[.ͩXH=*>#[)`2iɡf!hLF/zcuvD}Xo)UJkDX"hgY+|*\#]NI>Y7 I{:>%+YRSzJ+# GB0#/:R-8&mu;n? ~O}[+^HXFB]1hADO(U^6a+cC2\`V+9lc'lLD{8QrlqJN puaEϵ3) -[9jP+ͅpMgC|iΝPɥaKr>UO!l2haRh$܏YRd%8\ˢ2~W.$=k͖" PoAj"rKEk\;ML D;̴ iЋÂjL=05|dA]sV4¡!;3Fq2,b!<ݛ g=J|f+ 8A6XK[B8^{D00Ta^~a`@,GʟxX0Aj'O6r|4p\t;^;w7rɵwg)Cޅ W|ipLQ6~a55Sc"9X 5"8rľ_V$ 1Y< Mrw>i8٣Lͦ~7T endstream endobj 124 0 obj << /Filter /FlateDecode /Length 3890 >> stream x^[$+X̳`gw=I(HhH~_^U5{fLWȌt-~~HÏy>v,C-VT֭29vןҺ4̏}EӶԵ9Ovmv{CYf|[R]oIu+T,O6~X +\EGy{ط~;2s<>Z>g2!.ɵO\"kI,Kj9ͅ4mlslA}zx!"񴛘HZebQsܲLVט,gI"Z1Ym)6+%uS4}^ikަUC YT,KJ}|m汞ϒwhߊ 䩼IIH74H K >+S0VlY& s|7pvJaJ=\2чWգ봮yq!P!1¢,?Q2  JDK j#;Zzo [O[sAB5d/ԒMq7.og#v|=b)ӃaN0PC?}˴܋3\Dz/ άW'F ȥn€hf)eؘ2(e6Lo6IP-ܫf;nqGҠw hl# jh+ JtO9lhlM(1:'AI"DS; l5T; h?@w C,)՜#\Q lʗq[Ԩ- d~t1p|w\&"-Ss5{X~mv) TK6-ЯLgyQ3{1ǂoźD-&;IF|lp1F{-Ϡg.]d_WSB Q5T4eIz`[!Kg:xgRHOL:Ol; 9 nX$Si˖8Æ-˙[`^;dI zlUD?JIeu/ )*op4ge7;6km"3O +LtL0r>|&"njBP m t5aH7FraRn.'FԽF#T㎲Aۖž jiݡ~쀸vg\ =IW;H$TtJI4lZ](t6m@|ԣ EbL  @E/S`K[`w'>H}[?rA-*up2Ej඘e pR.zD C9js@ǂR`YPF]Kq]J4W*& A v-Ue(4۴hfW*󈞴/6-ƶgB 8a)^J9IF\8!`c>`&oLXq>8spf3gK>Pz@FCs,b `4kv8yup_A}ptNK(.t; bn {Q=*hB32w4 9LgrwްCω:vwښ:z8@GBL- ܱf_ӨB4|Ú7P^ ey'thD&Wh(9(p -"T?Fw瓣z'g0]'C;?3@Ӕ(Tq<ٯÉ2Az3jEewĝW;xsoͳ\C&WuK)-TP]|.9!\J}x'he ,*Wo?ҒtW>0`\"|p~l㫂 ~ZbZ4Ֆ]g9O{"*Yc6i309 d< ^DS^4.Dm$ӦXi(?o+XYȊ9窞Tr\UZ%$RF*fUR~Z2zoY6~ ]T= HRn?gYYco)3/Z[ճ̨4){!!*>xsEYuZ#n}Eڔ״MHoY+Q5e5U" F ]W9E:;3o>u\S :?Mx]aZOu0o u ;aG)]*S](%]PŹK$M;$z_NlEYP >'-Bj>-6Su YO˥&f.ߥFHwK~;Kyo7Yo4r] k7):cڊ\!cH=I;4!Soow@P_JͲIi{IMP7^MRD puwi}B-k7ָpŌzY#JvUEi,tb¾+Ed>=}OoǶ 6 Cπ1WxŤJJ{bB/XypCANT kg32iQG!,JCD:/3P7 k;'\_ȵ_HI-iH;PKۡG q/lx-: S]̌u2}wN`Zܛ Ψ25xUM4p~MH kk5m MUmHO@%ٯo5gh;{A-=F+25ˆ1lWs"Qڝ%?JՐ_$u_E~xi)uPz=充ijVՈ'gG- .ڵ> stream x^\rKe-d %GoKWVԃfOgQ z?~_eY|l~ϴtKg)ño_mۖiv,ۑXm)×cϷJ;QHođ(iwɥ>Hac[=+lqβ}]*$G1_!O+SBOOH9b:0w3N1=Av<,oHT~u,m)ذ<-"}X<d@'msڸ IxVGmHR\3`ÂvBu$_ydύ ^k:osh?K%,[  壡\^ؠ $3D ZZg~UR4DWSb" 1{DȟG%ICܾS;(&BR3m{8Im=t_tp]{uc((P8"9A~I'ԅ56GU|FP H25TJ?rdG%m˾R-c#Au S/!|Vm$ *8a O|.xFЕӎGIQ$JNlF$gb0lqWS ŕG-d86)DJinSlM}?Wie=nMt%Z~T#с ^&!_=Iض糫1^{n>`4:瀢 *mSj2Lԧ'XDE.BJYP&C= 8Iv`x/EL+&`/F)z._AD>7lf|;|KQSGi+F͌oiD̐l^2ʮe_q%]jy (aT%+JP5ϕө\u5%l!ǖMIp3Eܿ>{S)ϛ DiǛ;BQ(~ljOʱ~Oz#&y>S6.7::r z;rT t*9Ni[82 X<@V_(#@ K9U$s7 cdt0W'QE4$zʰ8 IW`.qWHܩFd`x:EMTv1IXIq!|`07/緀h|p9ߔ4of%ҳ%=8̄To8&`u ;r aoP>P(_ZrTGh/HQF՚#-뾯#`ij .+@@.0^W"0\.fY3 :U<ӟ.4/wA(R<x+opWuԴ=B#m{W |{Uh?qV&TA&4r85(a;$e犰@/ #Mbs'7׸[)7LLx#o@bTl~`j ChAi}hY4e*0n~@l~Ln ; 3sWތ%%yL0\Vb.9=?ܑ=A)&1],;S5&/5!0EsN.OdAvY'9QQ!q 1}wʁ"=+ٙN RASr6|>q@pa_M;wO6˞(g(YVen,Aqbc:7\<8p<+G$N~^rNBI {@1)e?9 % ܇=hNݔv]M(b}mQ8q$la^vK V% 2W9CQ`д@ј66Pf^tMࢦomS^EH\˼.iSsTa5<儋qM7qeF4wr+&|7T q+SRgDnO`ʺw6$t a1[j68n2.="3HS%ɩʤRŶJ 1rCբԲj,w Uhܽ.S-4y;ȺbeX?U(xӖa*г2,E?1NS6DTsE58MW.XlT,PD{M%5}(82۲r/{p9sbGζo&-=U?qͮ=۵[ϧ7AwbE՜p}(v=>8G׽mFJZ6i|,)],l 2.譹 ujyLih: R6$(nƋK`a4ѫr;7=4x>#鬝hpQxcNG>@ V#cUƱ0ҖZlC"#,&kp \09c`V6vqi.zreg`$%.(qZPtdLj HnwZp#)0dQ+Ύ!A9`Uyb]ʨIbdL۹*}L] D+`;5B BMb#shH !ގ6 f#Y QyMް:7zT-Ū=ӧ8"/,D0FHD_<%fu+h:- %+lYZO[7hн6gl\oI8>|vݬ%ս^L8*JӠZ'FT8[F(,Vo+BHR/5"ϻ{Ĵ*=?lY;GRbQC6֨,N"Y,|Jb{?^t oPB8kiN(46;g:²-/inPNO;]#}՗5=xu)k5<]+HzuKz6⭋J{x=+*1bpfIvvT:zqR3XK)o&vOۺ]V6$ Hkǖ`QCl˓5/8][SfmCg75)sTfmF꾰0oK>%qok8'SnYF{ # JM.^GΛԙ$؜( ⍱|^[SP;g9Puf؛JZ\m{5a ^!<1[mK%p跫)I;uW.3>0h՝~" NFem)suC09u0\uuj}еDWq Rk}蚒~'j ھĮ ya5bD<)17tUN9OUUv(U̳"T4MXh_y2e0<@^r9|jJf䄁-Cݯ#pm2oNzQmaݫ(յV-mEG69eWfS-S#Df$s[vOu'iP /оW_oYm- V2k$kͪ9D$"?Vȍ8U[I~=~%"kmJ&F{vݳ bV$m?iuJ"?{QEcD}5a,oz{mvEՋ`CE17ʢRgAwZAM.{8pեܱwLq`akIcך2k&rpYv6Kk#{H/fyܱS؁Zy5ϽosøŭZHTiU䔬|XmsRh[C)Xg6*cR]Eki;^B{4\2ufT@E%Q̹/!dʪOw7  q;ڞ;:恍]> [ɋރuE8c̰t |s^<1.&J lTAYTkD1i!ǽm J#ڠzw1rBiRQ@(ʔj{dM=0|F9OnkbornHam=}t0:ZQO9gy^E>Crba*SLRԙ=2h{0`^ZPpp2v﹧a7o6߾q3mg1C럦4+6N>sFԅh\{4~$|*3fb@aC!;S2D ,VᲗT*XdAjR*{yVId,<ޅ endstream endobj 7 0 obj << /Type /ObjStm /N 100 /First 804 /Filter /FlateDecode /Length 2441 >> stream x^՚Ko}Li, dP  {Z++2)H|j&mxni53U]]2*[*ʅQe ߲JƩVWΪr^l/\TD**WU^y{UU>k|֢xz[T@O NٔYkR! ٲ"xք \fEq/!>\dNjh*;Az]Ǐs\?>c\aeNnBFlβ9K9{Ǻy?7Wbh7IkU⼉S.]V#&Vy^݁DH{xA}$A5bȍݪ?@yI^OJAM +pcНʙQ]GwÑq!xaESf+, $O=%SMY(OϏ5rbHVJt.j(=ݢ+JmXQa\l yj=P#9 898{vaRWШAʙraj$^Etq(+8B c9XR)'[.1T!ꀘ>;CΤrHdܐt6& NA?19>~w\o5` L)(Jg\ "1گ͚m^g*6K%ϥ]N$+"ً%g )YeL(\bq\`}tTV5w b!iuL4joKWpl论LyjK9x_:fi-M,&aQF,5Kfiz|;B^H;]~%iLG#?l{7H]ҏ-Zxj5MDLCM#vs >q ldj2F &Xo70Q> HUj:A T.lw`{p1u (RCZ& 픨3T. DSz.j=^/M#o>}WŇR/ogb~u=[-oo7Wj0x}X?,/>Ǘ0F@MӱxZ5iUx@ ƒ4$4; @fzVN - 8 /4 xYj}m'"!J KLd˓ҢR[8ј8h{#ʰy6:lO^b56<_e©'gԺaS=8籠@`AÀ%n`F2hnI5 dҠMQJ3Wby )i֎%ux'Mz6ݓn &t1AHTgpR^% .2N6ff",G˩ 4r?fjWw%AiiɁ6g~F?R_JNG ck {ݷOr=2fƜ`=٢ӄ:_0EC.Mb,#3fT'W 4C,alfU8椌ј>ϣ^Q:2);j(|:vG&E,Q) E'ܮېK$5][lٲ؎e޻pL endstream endobj 137 0 obj << /Filter /FlateDecode /Length 1597 >> stream x^XɎ6WFN x0'@s rMNk-3sAMs饺('O}--?yLq_VږTT\L˟\ OCLZڒB.9_΅b_yΜc:liV ΝMIۺ qk5Od1r\zq.cc >/ι9~iٟy8W#{ކTK 7@;4ǜ%f\19p$̦YBp,;3<̼S=8Br a6>g% ̎&`N2*` +<ΙLA_[xF Xb8"ٸ3 w7zrZt+ ۥF$XjBDX&W=Y+ TW +Vd <Tez>':ehDLjn{ Č~֐RFX 77=H%JLkhА)A`y3AkU"[7AE)*RZ[..d |uFRؤF+c0Z@}$5)5)Hd΀ȞL ، X*bdwLmL_V02mVy8jk9ݐ/[OruԈgJ P+ש^[ G([Fb(xx)8S1$ڄL0yuRFcƵӺ+Xpn;r%2E49)p+UU(,-[&|iETn'-C/ sD>o[6Tՠu12̓vzI$0Պ(|-E;$c 4IٳfU&fOKMrFdUD |ZZ{BRsPzu{vչVwG\r6%sirJ/HQ ֡aJ[C |+OCYPeW0@~%]&Vai[MV#m# i:Lڊq#=BzuG\ZB3;$9h 9죽u#noG앯f҅!{Q󓗸ƸJqѻo+;~#ݵIhVס @@Lɪmn^Ds.#+=/Ԭ[q|//'qHAȻ/%]h1pzaK/2 endstream endobj 139 0 obj << /Subtype /XML /Type /Metadata /Length 2068 >> stream application/pdftransliteratortransliterator | 2021-11-21T21:06:53+01:00transliterator2021-11-21 21:06www.pragma-ade.comcontextgarden.net2019.01.07 16:10tug.org1.0969805.3linux-642021-11-21T21:06:53+01:00LuaTeX 1.09 6980 + ConTeXt MkIV 2019.01.07 16:102021-11-21T21:06:53+01:002021-11-21T21:06:53+01:00LuaTeX-1.09Falseuuid:8526ae4c-4faf-bbbd-ac2c-43dcbeab045buuid:686ef0a2-4cf0-b9ec-c3cb-b3f4785f47ba endstream endobj 144 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 780 >> stream x^}RKQqWtmf}iT}`anb{wwrљ;nV7WiR!M}@5| Hft)Ǩs~sHB'H4U^tA,W;U3m.R٣`ڨe7SN5Z^~І Y UCy!,]>u;}Z]HP)I"x7L%N{4EæHZK jkāJZ @4:bnrIŗBSoSvե%ʴ6笏PI1|TdZIcD Lg3bP08 t<3~ p80L endstream endobj 145 0 obj << /Filter /FlateDecode /Length 385 >> stream x^R]k0}ϯ{kf'MSX[IIn` Bs9iyIhtZlQԬˌh+n(Qvfֈ5:, ko%vAS@o]z| HzQw6q?<)'@QFO`x9ƒ3Sy O JK{ & pSCuit 1Qa%J^*Am]$[B3%u;P#z ;dS0ӓ2GN3:⣰3NnFlvS\2$$0oˀ;|x_Dk- ^u Txu?V endstream endobj 149 0 obj << /Filter /FlateDecode /Length 27922 >> stream x^w|\Ź?|uJ[ޫV]jd[A70$I$!@K#I &!\~Ϝs$y?$=:;g晧~9q\w9'rë+fj=|evӞ L]8>qm:p+)49khV$!ܳo[ߖA~>[6Jo͚3o۾Cw}ֆ'9.'MsύG8į<۞Cbn\{l";|wq\//pMM~?'iVNqS_?mJ8N6 Nx\qr{6mõrjms8TUOOE*B#q P=(Qhsr uRd.[mvx}@0DcʪD2Uohljnɴwtvu [=fɩOlp3i޸u,{%x~߲hm[vAvj.]}Yai>!b/s1uTVHw8*q\&Wju])z nvo$c33mo}G_*{igϲYz֣YbϚų8խO*u]ezW Ϛu7gqx=]u8/}g,Z8p̙38sٙg_jc/w}inK~O/?K^Jx%{ngO>ij{dݗ}esj'lvq:n;. oqqf-i=)}WA~A\zKAANry橓٫OrǠ 3'a"\'Y|bq&\'Dؤwu׻]6P'J n;>>:e]nj@;*j?Or d*p:6:!F&G'O\i=9eu]]'12yV,=>L}DՓ'Z'믗y'.z$w\w^h/Ԣ:_>u[uSxvnl`dzꞂ`9rTrZ%|w+D'm[>_\r'}(65X{E>?֟B'@1|AN IB!](.h)r](ž(*FfHWפh §^F}Q)l,24y*MP_^V5ڪ7 9}C$F^/NK>SiЛoW}seJ}VY$x=!;jASzzGd9J0$Wr ,W̕󙓜*AS?(4ȴ(ס܍4a|r* fԀ5`F QfԠ̨3j`3wE*QpES *i pkѭzCیvT\r~}(Cy %oM,J8I60Lx=WPZѢbF P *(/• i+azo!SAH$(ҩ%iQqIN $ҫ0eyǧ@wKOF{4ҧz^|GXp̏d D~*3.7.n4eb^/r =ʓLƤCŲ>*Cr9idvKMFqdS.g8˶vGˢҬ\a_=`/= Jk!IC1XbHC1P i(s ҝ$A ЏXu*QC3(<<ʫ(o0&EłFLITЛeB,.[Rg䱙7C99AR~N0;NE9p_"aBkA(=F5SЦFcs8v}'vdz=:[ht:{v8c9Hg~aZ:j(n׸5.p \׸]藋1oQDaӠbB 0LEQݵz=H ~t]zu4t݌Y^.muꕸ?zDP B=%ӨY'_kDQ7og|vމz\AG˿P)0'FOi<LJ Ku>9{=Z lN*]3ISpYe nP =}^#ӲiOmJ+..6_֛Mx;=U}&k-\dEyǷtEgzj OCl\ -20 q>u/ETP7u!~';=z\WWdד':1GZ+LAz| 6ށz\" Ť8t(M:A7bZd֘ehDZ ##CVޚk[]_fI,R0+cRyV'ˤQCǨc1jKQ2)p.lx%.-u"ΒgX~+j) Jk _R%0FB>(-VqY4&7PS)Գ5AO'*rԅZՓ>z{nؖ$>u9u E}崒'V1bc-Xce׍IwK^_\b*`*`*`*`*S< &$֩voXI~\Yd"j:;Үuvuvuvuvuvήuvuvuv~ꇊ+bPaaaa5k >^5ò6C?6+>^3|fǃ$'C aW+:WetWr軧Ncx乫uj>>Wx]^׃u=x]|:+> 7Y%7V7VƊX+~c"0fMz;]M?RqyG䙗\bb%>s{`DSn8^PlՠQ){F;)2޶z᛽v -ٓϯ _px_[0[5G̾)3>O}c,pgֽ(w/)_i1vxOq+2:f NqXTBPG9i\!6mzT!lny@2Y|\b$y .%TT?Q+R j5 EJlqnɴ̸^J+^C592cs|1 +k/6mTSQ!.I5pep^.*Y/u~~GN׬.Nt;% _SԠ.r_qY𴙻"#ePLY 5TN!CǸ;,g9@\Ϲ4at _Hw)8#Y L!g =;焱/^xd̘ʓJ/,_Ocw[*;lz!i*

/җGD*U>"|DTJD'/J+ETD+A>/b_2 DBtKѩ)?YrRhIͨBQUX`(~*[~6<OoU;TC:.He>_0> s_>4גMV|0Rϭ w%tD?1-=e%'c7 3v aJpE~MV@FvCJCj.-I%| F #zc=#˾8e4Ke7jClsBβ tTP]S&ҳp0&(<_dT;jbSf=]–i sܪofz䌪K4>>l-_1VCc,èAo碞 M(J#8yA4,Pd4H*L 40S5S5S5. OOOOՠxO%$ #&-V1'ֈ|?'_fpoNSkOml^\};iNpyF1,+<%@a3!.-rZ(P@p;`I]wAH/!;$<: )\!buN~ݿnj<{bκUkzSXGkw|GٷGM]0 (ʒ&!'?:" y+<*M%5FXBCyr;e'W\jDFưI&SF0ilC'P b;-TLjuPm8[?]ع{ T+rr@oOD'ڪ󮘚MQgꢑ c";2!0ٳOG}de>'D@> h#`{?;4H.% gc.Q`` `. O(0 7c5'˪k"~#ק $*DZ&<;rs.yīhQLlrUCG[kG:Zw\=~'W+ +P컄𔓂:@(D(** }dR h%ԒCy]5o<|嶄׹}fC|"% o$\[5;wcMj.ۻBؾy~#ZRiG pDZHNsy(5YB%"z]W(5Jv'/glGʵ(QgȖvg39r-pΓ6%s\=q~np{v,'IOMKW_=R`;vZZ|@o;G>g&}EFN# NbEf0ffP jAm3mfRt/͐(7ƃx2\Γ 8@*@`I;uy#,-=Y\bbFVyļUb*#Z #hy])QO(Y_~y$+lNU/j*7m~0±PEo$Իc!>p<^!D+ՙtUUѨvU%.OMh9zTwpK땳+(R, />?ӋX\OddITXJz/0~"Ig: f XxsZ2$4 `L5MS.S;ŠBA(ҊZA;ҚmEX[-mhHliboQ(VsΖSmT?.?0gǪµGra9d3w;`ceEt]qugkEEnicG3PillªAq2U '~3&+K"t[)t8KF#4YxKJ>"-.%G:f_[bG6O#]sr:HM?n >҉?QvUs[{@[9Ѵ|Mt! {EWL ci@Edh|Ƒ1(K 3Y[ _)%fBUsT7;r׍^Ñ]z6_vu&Z_3|w ^ `j+3?KMkPewr|\|7>.$yXϓSj~%.Fwd?f5:>1ߗ^xC2\Y Ygs~ʃV>kO<*(r ckNH+ɲ&\an&`&`&`&`&&̺ n&&'jP4*],x/f fa)8%rrrrVRJ%ma;W'>ݝG+m\w/;O<;vOhW߾ *`[C*eKIk,1&FJSlE[.6&˳K0N0Zh]BA۱.!ϬϞi8 x^h;u{A8ׇ|MxeiONaa ~0:1[@+ he,VZY@+iA,E鴀VJQز:~wt+@i B8 YҭPd+:߾]-]5r@{`;&59 D݃ٱKon~/܏NòA!䄜Q-jʊ@"Jg/F%`TF%`TKY9 Pވܟsp:P#F@9 P#RmP3I@d Wa$!%Tၙ3]BWeE^icBX(&ǃCזUϜō@>$cґųJ)k@ 5i,P."0_; ́jD#M'Wļ*MVWlv`$jUNC/v_ֻ>mLXKleƂq>-pϿ4mmȾw!4P.WYmǎkfymYUdN[M,W믹t cڵª_F:a :{4δ ?Mk􏖫bY d̉\e%C 9[%A2}L$)dXF/+s" ,&\ 1%|  ˇZW,!iyqOܲq_SCjgƏUM֪۬TmY0gKﵝQc.>tq.! o; DZdXh}ijt8EdZc k})=zǜ/~)gJ^U~}/N~2|D '|~)Hs\粑HxLHc"i)B?>4FQN / kS\ :IhN4'gy$BP5_ޤdvOMgpIy+V+<&HZ*CCɡ)CSM"VM"84ECSDPphR^ "Y][ZBl@e܊*$}fkkTFs?~ R¶U/f:F|68F{=߾}|61{SgWf&,q{{Px=(wIPE)GR[&E+ Ae[),,+=y@3ٱo]:om GׯЇV3 ]aܻQLywux1萔V,٩H%(}V\s–(x$l&:>pl!cС.3M\;uAOv{yHgec:xuk#äʚ4  m3cvIV pj8(8(8P8P8P8 B4?Li#@#@#@#@#@++!ģ1f)fVTw怷X9^1Xㅌ{!^ȸ2NR""%Hc* 1 L}OJP/C8޵3OM|I+ kXxsՏ˿}XEg_n\͗J{(J\%epa`.,,L.%ܭmQ rhBG+ ݨ,jy?&XْӉBɎVRZ(]t-&D bBBjtբ[Z(]-ۨS '.4&VLin2,@b4Z=Ӛ&;z`fv2s/ޙuyӵBY(TaKsUC[[z~kg]Ⱥʞ8t?]qɼӬǞ?gk^< "J'fljqbv $0KZTd R YGR C&T+P 2˭L0W-}| '(EBQ{x)/V R,UD%i#{j`8wv 62ԽH`~hh_ޚT_W#Q{p.Zu;9|PxyӼwQQ U[ .W4\_Ε2E\ xVO44l<"fQTD?OpfvK;%bs1\#3Lr1PЌC U/hA8fǢȼMa͐ء gR ?AmmmmHoCt!ƌ1.c?c?%&ib`410M4c`5萲/THV@B疶BEtQ_'xTU MeJc6pVWd9oNY.u  8QPݶ+-ҎΪdW]â#[D].ߡ[KSH /i Fs>'W7&ʳJ6g[:,Ŋ<$y2&Qͼg`T AorR Og)]Z2 MSɳ}ĭ6oEF}訪֭)ɵl`hGw3N4kgw,nk{;;c}]rs/.X䶝gugo`ǿ| _rU歒]HDG@#$:;*ZȞJt̏TZ7VO0Y%+bMA>F1eJ{ s%{N% p \% p \% p E.\t6;/?z/94*G">$qU(iPPoEjw?{jr|cB^:ykx󳯆_w=;;tem7b'wRt+Ųydg$4:u :)kTubX*ցu]pR:9AC=W]j =2 hse**p,X6{Wwϭ yle nv_x֎Hec}usGMMD>UF|*V$<:ih~%+"Xڂ$y,--dX(#jײ4%Da*l KKK,ڝ_ TDM/sn]ܒ pOa+\ZC.|#'1ݽH.gIRXCed *dFĿ|?6dgvu8 yUF<ٱSc ijO7XΝwFd7)n曯 3BsCTYغlEZ.Yj)ް Wͫ/gEv)Z-4Wنfg¥ 2z#c"eVmmvgDfڞ{&ҜNxm4swFF#w5l}ECl^{Te 5{f;GBEUb5:WoxPhЕkt&!ɦ: H8(F>m< 2}^cB%/% 윢J-˝[RmtG;=d@;0, d-e|2ϙ2pq+oKeҜnqr]+ͤ3^|CUujEti^ kŲ&Viz'50]ՊMڙ ~T#DA>+]OF@ Ƙ[OY.QbK\x4%h.Gs aH^ ~3foffyA }yxr@v PjE>5|jASD>5|jX@>Ս?'8ږR뿊հVNM$?>;Oxl+5Ҿ{v.w a :E`GkRڵrmwێVE-2)JK-xKx}p,G*sUcC#ERlO/jܔ7 ć\ֵNݥ;-;f-:nCh+ѵcDGpm Y>tq5ɟ)O߰漺L`~sH?UwZjvks7%C*Ga"Q\ZIjBܜV;5e^KG#6xk:ut&@[,g^QoU_cҧa64c l .c8 &ԛ(@H#P[4 rj:)%D e)fƚȾѤq0%3!l!Ky3<:[J^f}Y.ya8,c}孙:CUnͤ30 ϗ%CG=;~\+>vIcc]/yj 36_4s& ٫N#UsSeGQc">jЀJ?Ejt ]!HWjjj=l!!D-!x sEK $jBDF!jQ(QRGKUQRG,uJۊ@NPE6ʏQ~&|h MmSچIy3RInZdא _#)am$ %i{4mv)N.8S N.)߅^.reg([25JV/\!gnE^WXgxԵmBG=.vϪ{;&{{Qoz5"x6* wgYb=Š}xNBHԐvXmK%]lWlWlWl"!$%%)!%JB1 C(עYqh_( ̹3H/s%}/c$aTPV8u&!DI/=_fz*Ս `/w˻뮫g[s J|% 5v}W% R3Vza_jJաft~*>_Ɖo &#t*¡l}}宦6lK* Wp;ϞB"V8$a@wi4]$UIPY*:1|R޺yve̥xVNG$j*ޠ?o؃UngOy}^OϡPaG<ԻVbٙ iQYnCۡv%I:v *cZZLUwIωrJ ۍig,P @9z`=}>z`=}Y>C AS=6/?sJYpDaK|| '(U9-T%ZJ7;-=K8Y>V+!A郱)Ngdٟ}9e_~E*ԵWYI#ŝf ufwMڃp)#\K{*԰+Fb26*P^fDה3$.9!u̬FLHPAXBU4[hJlK[`IK+R]q6J a)2n< YF]ʲbdQ' z=_:gfsybtvxwݦ( (N>~b{ ,/b({ NM-YKGgɇT~KK+OȱA~O'5[aEJ x'-O汱]gdD'QdG.z;;;;ApT ?'/Aj&IK,`%&J,K_<Ȑ│n1kbFnwܒ '{y60`B̘eJOeckYqR;t9DI9gh_yDH8Ɔj%^}z +^Zr@(ϣ6G ~[ೖy)"J(^ / ( S{ 6LJk,"_yαl]t$))8VufJ;XA41 $B͠ˠsBaTC~3ݖ.g AAB 6 6 6 6 6/ʏQ~& ~Ata]Jхj[/EbՊ-K6i@^޷B%[ }S2kvjJǚT䐂FH!!$RHrH)I)@8r/a@fڞN;.dԆrd+u.=;cyimNČXˈIZpU?ͽ͛|트"+yuu״`cK y)$oHt)Gp2 xb?[>c`axyWQVVrQJg0sˬ>4ۧ4@A i}>4ۇfl9jЇf,]g? ! CȆ!dÊc< fq_OxM%IA @u+I@E4z`z`z`z`z`z`z`z`z`zЃ6{$0.qs@Qw @.@bQ//n-Xk隵MOŒTiPm]09-l(+]=U)Pmپ7tw(1ym81auε>AXȯjh=qoYZVACοӷofb C!XUozqi@@mBG@U2QcUbD58F QcH7SīǨ1jpV8F6OQ"!GkˊebpY1Ty1x1x1x1xCC+Zh\BJT)*EShMR4UJTT)*ESJSh 01v H u*$:AN$:AN$:uD Q'=zVпUk:zk+*.>ʓ($Y2hV,H^m7qtRL>Z>t;*PE9r? 6X|X|X|X HTPBHRɟkU mBp[!Vn+۪n+۪n+ (hrt5Y{u ^ 9CR%U9wZ:pi=S-I |أأmYoDOGx! Vky%V4ڊF&@B)t,zT0:MFxkRznY\)&kzO*^]n(B$#1uue应2џ벫?Ɔ&3bUs6''pc^^msk$Қ ng906s X ܈2>NӻgMҚS9Pw;EiQ^Ey[ٷ H6 ׁu`}X_AuP:pT] %#iTVxz<N""I⃄#&!+ )ϕItc؁n0JO{xQz+h0999999`4 @9D́s94+-IS7EtEkPG"[LdWd.0rFg *4(# 䖖d&C`<&<ΥWЫ^HL+> aOCا!i4}> aV}> aV}#dOr,H BW5.˸zg~GJn]=}5S'unԕ:֯'&bjbϳO]TÍՁ/x^aR߰f93lNКHG--{+(-tիTm]? ֵē^_u+ΞևhMCM^煼.S_^Kdr4pnrlP<wr:Q>BiQ^Ey[яXPL?2mB`Z!0Vm+r mJ@qҨt1I$z5H$z5^MW$z5^MW$z5H$z5^M2I*s[tAr1L-)LItǕq8y<vWV1GF@ ߡx)Ћxӣd 2/R2U^/EczdxO[V)B̒aɢ- wd%a<Ӈss yGhdPcBٿ D_Q؆7ݖ4;FS$5 <ȡz5i%o,M8j^B]E-OO<*(2.Ds1lvsA,&!zªC1z}ٳۘPgFȳdTMeTMeTMeTMeTF3h*L_M| GN2cy. C C`!0|L>2 C 0ad7c;c;)C_ICXPS Nk֜^`\^ZF] B B B B B B B B B *mmmPQn`A{/`sj>g^*^Q%H ^LbV[7&ZՒ_В1?62!^s#?E5 9md/jHl{?1yֵݻqrA77醙-p7Z}$VTcv<݅݇/9^|jNJ5<܏8hG6n _#VF,F2u ^l nkX"QoeTtI G+L\`<s\`<s\`<ՑXPb)<0UhjZVUl@Q]p:ܵwux:C"5OFi#|>m6O>mD hQFi9.o^yB~Ӟ m DWӫ֭ݟ'іXe Uw4t]\i?:.UNᚅ4{l>o2 > !pv7 _m,vFlaH /*&}cAؠol76 ƦcR`ͥh.h.h.h.h.4Fsi4f͑կ{ILO'љ!lDRy1?RTb/lHf^W[Y+۲)ȿ-3Z]c<_K+xMݗ^>zԂ5;#8h"nIfM|;)@IAl4F|/O>^ {A|Y+ϣ*`7$f"Ap)tЊgoH'I3TWH w꿌kO*hQ1m8!tFb'n Xht.%x^\0/û/˅c)n]y880ZKٳ͙І@FҷӘ+7]+CogCШ t^9/b1B:9N@'xE#z) Ɉ1XinQ9r-qQ# `D|TPB,MZMaVl: S*mє7-zH_P)qtcyZ PR|?x))DDC߆m6 C߆oзa0 W :DUr<)€0! xbU=I:#dQkjw"CqӈgFQA4aMP0& 2kC[PPAĩ ́xJ{?[)۰t:l}|ӂ`jmvVP;nEj ޏH> jgYAdC9qHd#Zeb{P-[{=x6H fHic+ AAAAAp ^\/TUr] *\/dA;\'HDB+!g>/D9,vZ8VI9|{ļGM꿱VW37!iSb2z!icm7wE⊾꽭^zwkϢ 'Tk:gs4 ]9?beK8<*jUQ`WtP_Ѫ)slTWSRk__R\ɜݭ`0; URĸ1uQhPL{wwaRf6;r2nK*KWgϳY"p,gLXyS41;Ht#} VH* uurRHoAz=\FmKUpaTnS2 w{\"rŝ4})p#ݸwNb&7ic9>Oc?${}!{!{R=xC @2HEVh!g6#ڸFio1`5L`i Dzsό23\W@ǷԴR[lYkZoɾƙ]ZaYNtN/mn7]~P5wZct1lI]_H(Mgj݆ŚUF^wS\גvGY֊*Wa32>qYciiAKH7AltiOuJ5+icM)lyҗ{3KU6س̜.MI=jy6V{v'ztܛ39)a3f8_&y 3fM"d 1Ã)S L1<PETѣPETѣPEG崀E,gg ߔg7U^T݋{Qu/EսWU^^Tݻ`sl\=oE}VtD+,Ld%ȒdY,@| K>,@| K>,n qj߬r Us[4`eC2E&:Y)_ad2 GNJV w{K6wW⮰L5 ce抶:8g.+ȅUSr <}XlYj[&>r|g*R++ :b}swo++,Whd%# Y}ba0h&k8aHRɕg#r/9\&LǨqYMCD'; t:xǚH{d^3\qd32$?{oZ#('c@_"N K}IKu=qmGVi~f/2-5 yTS}4&ѪHwi&sH& jnjtܫ68HnV[hf%$!8&A(IP$ BIl6*\S`N& HiR&eɄ V%uMyߴI)sk#r0'ilޯ ;_::y~:e7lqHd#i[a~ Qiisy@ P>Wn;l|'=.Dѯ_k3gֈ?VubFoYFlfr+ν~G=˅O:b#Pa0dKO4-JG2oz+87C' rYm4:day*t ].yAK^%/t U]*t u?3ba+8|ז39K,yNNL\Qj6%g'WmkQOem쌵o Ԧ6eW_ԵdYпKEg-%-䚇$J]W{.ɚrx>>`w]9m\x=-xy?ze]E+ SS8S]qho4ȍ;uU ;T~wq /'1j(3C⊼k}K ?]ݛU$}5a, 1l_ 223hagq`쏭reXe1ʄD(S" ܀x/ Ďqa9U\"Ѧ6 |-G(~]斒k"SfNdS(uhr0EEjݭW00U=t&U1,ɇY7=׶gbJ})kvM<rmg>՞=t Tg^̇ss{8iV҂ AgO#̪ ]߃kP PY\pq5|}9TLyp,^jUWŸv܏? mSO—KLh9lhq7{٣]GRGG< { >z Èn~QuТT 7.&~H(+ W{ T UK~_V%ށДBB1aBo#3 .& ƃʶ ח44|˅ m\4LNe"'k>(΄7HN|?iOҞdƒG]:ZZ8̺cDz$z9}9/ [\> vc{ptƒ&3 J3n~lP~:9X? e*T`_(fia(4.9 7}[m{B+;m+HvL^ŰBh$I:J$pH!q9 K@i9 ; *fT,yq*V *(eVi Z!Yt,dr:N(RAN Ej ÿ>N 3tP+ON4J҄X҆t9@Bx6A3[+w'o6U~/lśM9I־ -drǂRY{^Fpx TK3r說oa;sVw a3+\IPDG~-o\G7#pFyoL .,j!90w^PZsp뎩i6Y q)_{oT)\1DkϧK/6?DBN0ς:Wѫ_Wp?ih8py@ G|a]{X;0ذ`4;Q}r1̟`ZΓ1o"$#$=\B4jKc^\*`y]> stream x^uaoF+">pxBkhԻ%:WboR`J$RFBμ{˷=ͭԛnw$yAUxu!}?ǿ߯HqS>/l3#ݡ3s$ŪkaFA\M<(pdS@]soh>7x:hoCmv9_Baba$)_`&VVw׏ y}x=#dE`shmBh.o1 ]a=ap&ok_^3Ւ)IRPZA5VJ*e 4TAKCRM” 9YR E%T(e̡"Zق5,ʖoB]j=gѲ i$[NZheP M!KqTeYE,2JStB'Fz: B/}8rqFGGGGGGGG^չŸl=sVƑQ#eS(Fe+]/ߊ}2JxBu:st|N(Qތzk4MiMR+?3Z+Xi Ro_\O[. i=+ɔ4mYVoKs{yUE&>.=z1׏:_?m endstream endobj 154 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2646 >> stream x^mViTTG~-twQ_+Ǎh\@\@ H@# "ņ, "H kqqJƄ0s&63Z׼:mW0D"6nX5{f_M6t.,jp,83I ?ʢ8:v}d'I #i3O_Lfe?ojcs]:o."V Q'"B4 -]*4JڤS"b]UpjwXBh:JڥԊoШ|%҄iuSIOeMO>puF]fM&"F qgV1jf-2[#C"! %RFb1(͋12#Q6mBlmn5K~>Y0GFU㴢޹! "Ue7^ObzzFJz23ғb[ N +.:%4 5m9).F+ѱn5W5ֶa-h];L8q ?z,<60m<痌+9ޕŊn=f~ZrNBQnٱ苙AdAxUyITyBmmyũA!O) %*7`2 :E'}/18mIֻǂnA)vԉoV`,c.`ΝzR*h(a0hd? X^sAM{:MՁ=A<{:l5`gb)9{B e$"\d4;3D/Wm [X Eg2fCWv7?ITB\%?'|VVBD`c\}<cTޢK~=&4ƢM& QT][Crp,,AJ0R?\2:,UX&$"gѦ#8d ?I/p ?[K>xtt26*2|>~<6'LJAE?o m&ʡn6U7* ꊀ.u琸,閸 }x(@!8XS]~U5IVNݐae6c:1oŭ#wGvv Wzu(q3-z]`hR-`@NE5_z}{|ИoGsޕb{[q endstream endobj 155 0 obj << /Filter /FlateDecode /Length 449 >> stream x^}n0<{(FRJCd^=d-8EBmFj䉒OhU[xZٽpC]Xg:{4ɹdǞÐu?B^S>do.OZT:rZݝ莰_1q_[䂄OR*yj;X H0T zaD`ݙC8Թ\N\^#d|APMs ^55zsIׂݩb:5!)R[iJH+Nj_aI>K-#DtZĎ⩣ih"M"R4GJVHHkQ* Ĩ8dPk$[w`&fgT~ 1sYs $6讑;^{NB5UuWtK,m7?A endstream endobj 159 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 723 >> stream x^}RKLAc[aA7(ۡ> 1(P0*B閶@ *-NyS<l4zGか/&lݒ$^s_o@²%'3K*6nvrsK+'N H4+B:XS T~_gxZ!w)mL}OAAYHVz˷31rykgwru֍ uv΍.PYoCvUrQ=ou: 7sdqΡ,mYZ9dlr";gj[F,h+? ZLgun $XpP(c P i*|+D` "0e `ByC#d'Z,!kX%y_Q'wI*$D$yhzAT/Ϯ^k15f1<^d,q$MI7yֹ/>]r4-l2~ AoQ{}wjgI&;\bD*<8= 5*uw뒏QHTPBsPN$FCw6XAuaf_mb je}pqLcID+VGxD+iZXjtvv=ґ,,M=qI]C2.HwbP4N SkdkC jOt/*S< endstream endobj 160 0 obj << /Filter /FlateDecode /Length 387 >> stream x^Rj0}W=P_D Z:[M.`.MnRB'ܓ{mnf09LRU}@Р]U >!R<銞::q[ : |& h hh47䃞^֒74~4 ooyY/J endstream endobj 164 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3485 >> stream x^}WyxSוXeX3 M H &$Pa1 ƻmYիdmɶE7 oYZ;Lh,IB]M|vy}{{~w1H$zgo٬JR9Iy+Q3;. l`)ZaO =a 0A<6>WWO,dhEf^*')1*^*3Q:?jLE^TJ9)6*Y-7;DE|ҚĤyVȄ3$f*3aJf5ͼ013o0k:f=&lbla2ۙwBQPF5NXe>M}<_%7$d_( %~MG-08~xфh v'9(⼨|@v>Fp<9f pD^@ʣ4ҹ]F}0vTNmɽrɔ.*+ti"XvP_W^k$md\4XZuEN<锸骁VhѹrLo`wws/" 쩘6:ݑj r]Ef`E\T3B'}Bvn;7],^Q+"'3ngԮ])Il<ͶBE+˪\Ȃbӛ?,[#p̹M}҇e/hS]Ig%'<t^kc # % $yOS_dAr XoUIǯ=n[ʦBV҃8~g_пOO42(r*{3:XQ[eݟчF0uVC1y>B1FC5 m9=3gq͑AqyI +΂uF74ARrqi];6@./:-+rbetU)J3 p?EI_zl7ή~G{uXjhL2܆jey[X f_m\ֶ 8sV;ot ]"?޽A&;Eظ}|[Cdvuvccf$XjhsqUΌSG >yz(-IS`J[H* /ddg*mӊi#=?}ѩ=OA˾,Zb>>èhot2NpÄ>82x3Myfvr>rBFRDHN]7KbP{CUg/vZׯA/Fߟ5e&92e,NF\{ҏ,"k+ȯe:nрLSaGe_I9}[O|gVp/tD]ԩ=Rl&ǚ5C[!<[WNy` XvHz7ä۳8&:F3SXcX%=es(Ӥ ?/ }O*!' ]D&'#QdiXfղ߻ur9zu۪~S O%nYLۆVN. ̗-'U9}v2;2VrY,\?qEKһC2=d u{`R׈L4–A ݥB5iW3[ va~I[dQ3u$^2Z@9+}7)[25-ମk%9> kNCgG׼6 ӯ08{ %Jϑi( 5CU~3Ճ\R(ɪU8w} 2VB,W5nĐ);5%bm W؂Qx"\P9~Žx*Ui;ُhw)3Rot+˴R)e$ Mk'"H K%jwؒї>C}|kF:$s _$q3#;JV)> stream x^_0)1M;#"hUa0\݂%,~ɩ3 knNιx_S])؂eW޼*.g2+&}[mFVŚZW).^ttwь.qeokMmْ gI҉oD w$۔QJFlAH nѶ;A4,ڎ sצ`<^lZ{dKs.j}9GBt`qLbҼZ:*3D0]TzWݙ#cn?k]br.;^hBRO -S J *1TǑ=%PQPI( @) AO N:A3|OdH!A'RtB!C *I2dȠ!C 2(dȐAg >3Tnҿ;Yq̏>7APW.e`6 endstream endobj 169 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8127 >> stream x^z TS 1'GETq U[ZZ:TpQA!aL@S<+N8PQZZֶV;'@{kݷktv}xT>{cU/?}`/7K;Sb[0b}9 sa},? #M+SwLߢ~]?ǡ,S/Wo6qw\B]ͶQzJMcr`+/*jgg)/:S))4W 0?MFr]lz}*>lCmh䯎?M"jqMt‡ @y1P:CJzznź_`BA ]z^Vҙ$/f}H-e 1 jE F "D $V&KH )v] yHrM+ U<G"PDM`-ԀRO0d*B8'4GsQpxnmR(t#dA"-R}~>o4cTƐ@: ZQb @ÑniPJ!d9d44p{U c<y 0C4K!I:#Vi;{=+SF-<(թu!Q-}fn&1iPà RʵWA%p]`@SieAZ)U(A86n7l%ώMTgh3A+M>LQs!i &Ι,ԗT@h],p1V*<O*qb',n -h -q j_|̻m׫JRǑ)2-ѱIɑ*f#/J 验^Y,t*2V7|Ȼ:@`ߞ:Qd^l>WY:=y.HLhUSAR*85;mA,6x < 9>?אZ> Xv,"4ӭc;nG~ V'3r:#eE+7HR#8v5Y O24Z ̇.X"L&\ Amd3lʳֈ CuZq}} " t˙o7|2e =sʸSIA%zUnBfމ5>|Map^.HHT@n3 J6u@]cuєg@4wO9|Kj}||ܚ׎qE~ercYevrjM7lOp[:I$)K2'h,Ycd.8'dzzf %7#l}׭f~5Jǔ;k%vuGԝ>Bu,_.*MPn! z}Civ>wCgE8k؁[룶47!?.]ŰVJHf_XP8kx&cQ[/8{̝t|n uILu<h+qe/67{: F=~m&↻Ǜs;~0{Ol*JðX"K~waEK=fp36[3:$:|;6_}7xv6@`Y߁b#X0x rقG '"g@Si H.@C$nBJ̷L0 <@f\#TK@ jTJf3YoS-M{_W,@:x VgQ\zx-gu+3LzUS@I Ok$i0d&i[j)UTʡ{AW4JxKIFB]PbUeǦ+S 3x(H8(C _:M9RTC >BDWQUn =E·-Ump)_CCMǓ}%ڷ~Gл~YQ)Q]>UJNuįrqN͞Y|όY0q {ܮvgwaMG7քKE؈0!`'D﯇")Ǟbۑza6Ye/ٗ@?W\)%o./,u"{[47#?:}ؚQ&MoZ3HCedAl,5Ži]nlA~3(GM-+@GJÃq#gщ m߇۰?!o~ ́ yOf*HLc#8oc)hBDmDZӈӹOPC ߅?6.ZnǢ67ڠ,hbJ CA5CxPaOTFsZx&Q'*Nd%V9 } Go>qxI B[Dc+7oڶjr^AzjQ4Hb0j/bcGcswU({퇓pQ?sO Q{cxsZ6|3ÒKK< 5$3J)w A)mWgEQM@S`aV>Ft {Ae+L}_ H/1n-(O邊j>ϏC9S0HEDvY~:B0p۵J4rie$HǏ"MMRݠ()/G)tyfZﰫz+bY]ϣvz>OJiH""lڄ sNGà3PXnls6;pd+{|+V窋ˡWMm9C~k{AC 1NHLk` #@Z!-;U}0 7U'TEUiZ&#D LA$f86i2s|+,ClG_^}0D!a;] ZcYnӁ0mcc4N.;v[֭޾}=9;kHX٥CSiHH/-u9C Kwwr}u~q6FD0h=ܶ|gg"䐗ETVYY\\YVY3YEѩ^BBzP pн?0[m@lGX鯏M}9^欋'Gtd^!>^!6EM%%Ђа@ۼIt:4MU}'u5IG^֑P4r+,t<onSҋ=l ړ=*ڜCTcQ{X=_هIdCz].͡Ž'8Ly_O^w/םu׻֩F@.^ SWK(K"pM" l ZՍ@v]2 &Q?<'QY2E^n'ϙ;S Kh-{ ^WJmlݲV/=NyՂ<ĩNOH-?v_ bc~1 4r2;Kz#nJ/64~f$Y]OZ}îm>4j)L{CӤz85?7RCQ)Q5jji;f!t&xäߢ7%ލugdGȑQ&>=b{%Xeַ:8{`ӄGq| g(;^Fd 0};@ n[mhNow;G*{Mf1lb K7+vlPɟSAo-"P͵AZh0T]֐Zh oZ>iL+TZ})B:rKH cNĺqaɊ]K2X4> K oܵǖߠx (A9 &Gl3bsAyIW-: ~vW2v@V=ޭ4 œ1Ԓ15jY˰ e Mn&vfwT|+٣TWU`R1 b3su"b(ցt1˘%6  $0I)` O?ڔr"Wp \I(տxK^wj%! aN46ɡ+oZ+/H@ Ne–Z)(a4!ijroT_!̠ \Ol0xviQĮjrk" Ug}~^kJ`^.6%>#Kkdک$"st46׋QUj- "dmFU9:=1VUVɑ_~&'Yu{)n*KkQ&".)yBKv>=4OŸVDoNre|"6W]]ڀ΍툇?AA$,7!33GrYNQ xEi&[l_-w.|ɰ~y~+[9TR]ieG9*Av>f(x}IML{I'&-Co]#Sœ|$w]7pNvw#l䡙Zxz"փNnkOO9ȼiQMfC'O474"Դ Iqc+bT(SUY^EmWmuhU?i|_4k~z3lgMUVG<+cwT@QR0z6d fp?Ej>,1%k-Zgjj%FALA(̄cQ2X/5y\Z vWIe9hن٧'lՐ ?E,w=o-:$ˊ³3QQPbd4l$+$|/Q(^k7aN{dc$Maa-ekDݸۤ?M]=2c_FF(b=Dc6sKaظUU暋bht6f%ye&=o̊jZXC) $YE59nsaWq X+'=Kk.d4Ξ L{xQLMAYM(?PJnXI$qY};ՅC>T([\M8qێBEֱ|Y>Gp$5]xϲWV!A͐6e7uKKp7ͥu6l )`ۥtؽ%c}F4Kjd;]&Q2>~0Pյ/ !` ƚY % L~s>DC$RJIz!!5Pt]!F A팯qtEC}Н%ORH3IH;iGWG"/2˅bAqZca2_^oH[M1eQtN4)wr+2iFb>3P=hj2Yɹ(}I_/9FO +E Drz3N֕Rv~\`Ig6ixj8`АPD$`w슐GGqZN- F<-<T mvmm#vŕo"7 ˵unSÙ/I_>y5IVnM; Ry+I1tS%\%x>טKa"ho$ ;',Re؃,+Q aJ𴕼OɳjnPyDx۶[ĴCSkS=p߇S%a~!k)0`b\\s[Î-6>h '1liwe(Tko'DGʥb?/U?_EHc-INOg+uD[\(%' #΄3`5"s Gvy^du0FI8 l;T ݰq0lW&i H1}HjXgkXМ4ܸ[&9tZZG/:oAdn endstream endobj 170 0 obj << /Filter /FlateDecode /Length 790 >> stream x^Qk@+f 5[DHԀvkw6݀&!F9G[XB?3=2e6T f_mpu5os+/Okl9_U#u;ߋ2%~~q?ׅ rj]7xvn BKVlC P5n0u9k!릪,HAUYYs˫ӡweiD JuǮt]UogAeض;C0NU6x{XzwRVS_$"F/uuuDtS5gyom\\'Gůub( ƤtGR)#)#I3҂4'(5dB&E$C$6LYRLJH#;vC"4̩9=ty1ɒ8/<Att%:ODD'KKD/Ĝ^,SIifs^F"B@sEEEDDb:YDDD܁>G)@ld3OQb#Qb#Qb#F YvHCv v v v쐠3NSp*:Ej!NdHS6R`2NdS4rj BN2Kv΂&cΌ2&fe,Y7ry( I<E>-?|&q.נ߯ur ߨUmo/{c endstream endobj 174 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1073 >> stream x^}LSW+o{0#ևq1ƑCۈg 0)&8% (Qmh"FM$[8Y\XN{>{.rDQTPrFp\r)CQ0Wrt{%:w=S WEb]-ԆB]N _8{[$^ ,C,K_U]ս3KhAGP,C(%(F;ⅼdwM$UMYDzpYFsXlw)";̻\7`D#V|L<>l%}ƨˇGZ-Æg(|Ex'`uS xKjIjx `vq8w{Òx]{Sy,ZX9 p[:K] t]| ހBܛ@_,\΀|8[uΜ 3!}&o֘bWcoTҊ! `e.þj|ُr&{ئ]cbqXګ,V4 }@OBHug>= djÛA }䷂R1y%`~m*?B֤K\N`KH5FQ9NWsyڃL*S=Fκ.esYW_5f䰭s1Q[w\ƣ Ƈ8 āXLm$L*d],ԝLuYflc7p^tP:>Q֜I-zWG_`;V5z1O?<҃Of=0 &a*9kG`m0 ]v0iܦT #@$]3]⡠(5Ɂ6R=')e~"qVyeQyVN2R-P Ysa[X1^$Ћ4p퓈? sO|{c|I؆󡥷EARKP+^k<p[Zj  endstream endobj 175 0 obj << /Filter /FlateDecode /Length 417 >> stream x^j0z3@p- \6NK#gE~8a5˃^_;Ѫ2NOw=@N;>6$s:Xk4۶ae-EKKF h/DEܴXe4l>Mk^V҂;:)/Np [Q!ηLRT{tS$FbSmdOa'e?qeH3ºF)5|:IMF@O^-m=M8"hyhh(L^WrwtPt֒"z׵]O@ endstream endobj 179 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2129 >> stream x^mViTTG~{]*BPn܎Gq]TT "(*m`\Fh (ȄDe4:8EN09?unU}߽N#|A:/`~hL|c\dDKիpRTwNWUގ4.V;qWӃS6!vZsI m꼠81l̰SbcLƸc!,0)&<Θdfk2DF"bc9C';;zcÌƘȄ$in7ō&sS4n:7|8?n67s\-8f?r6.wNva.4;^p|-qX"fIqRf$NʪjQųu鿮~AVZ(ҭhBj;η@;0 D-hty2s# gEEN 0Ws+iB Ex2F>X[A{v_4SOTG ?t5!ܼ3D'p>lo]9XbSO"Ү /]ҮC<~8LTcNX݇j,.m-1Ko@(;L%YeWg,SJ_Xn~ӅQt^[ɠnUwPMPx ?ph06H.߃;7jR-wc? ~zr\PP:R*xP.~u|Ȃr.ff7!:ڄ8ʥue(KoQ.Xn{xM ’$sXtLa##C1!K"5tJx;jmojt>ӓ(i)cLr]֤jVҕV6T!:k!As4'.lnyJ D$nMπ#DKb[-_l1^z`石bQがMGLHN88jˌTKdJ5&cY^kdڭ:pVt jjHjV..2d@Goػq_ τX8hN)tg5olhiV*bo*Z:1$ji/Lu X8Sx LӍ F&AUPu W\u)_Y}S ^cԾfW 'cؗTOJ[vZ/kɮ-~˱G ry$F M_ qج )w,?N%]} $Cwt]=K_yRLo taMG':>kkAJEv]ç|}$HDth][N(/isZ$sj&{[vrS8c}y4,_UEP`î; 7 Whwޒ[ǓN#u₃+bA L /K>lZ~j֒D0—Ia^@> stream x^}o@+$rp$YJP}h@1i{5ށZ6É"!Y7;m E5{RQ\LEgzѲ.g+"5Tؚ*Eu?8hP}c?%=b?}_^+_cwuDŝvFQJVZ-My;@Z+s[$gՙck9ׇƛEŮ7W 6Fq};^\D֋^ E>gZIv.j_ S$'O`jumY)9y՗D9 a2q- )EhZ֠QN49BGee %/ DϠ' | Epu| yGvmZn?  endstream endobj 184 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 22433 >> stream x^ܽ|TU?>ayO(&)M&]z'g2ɔ3-ɤIϤjhR( QĆwΛ$d޻s'A'' -=sFI-t >`:']]kg /&6D N/< _ nW× '.2x'm> n]2ooH_.-8B_o.^~]uqۈO:>6+ح-.uqlc9az|6 O :8 ӔS#I]ڌ}3̙5lVۆ]f_sczޫn?,\p;k ^ty%.5/.Yi+Wv\UVKV_Ys`iY?7pymܱ)fsG⽈j^>=VvAsG4@sк0.lwx3"#GF~,ѡ7cV/W-(@RyC;Q9uu?G))a?U ݤRRFJiy׃]@T߆"gZa7(1w(}Hlڑl& 2q H#40FQR. ao%R2"Kڥ!\r;D4<7d@?4 g}t;L.1 ,%3~5\%$HE`5+U*ԬҬ6]D~39Br)dbNp=R?jzq·\2d0,Ez &H]%KcH-oN ۝>eeee>>>!=kVkcHiۄ+I־&U2lB''Ó($ Z’s,'=1HL0%@<(TjJLXҵ/p:DK2ui85K5?ǁt,Y>.Mf@jzS"F%%¤DlIL6:\ŤEnJ0$QoR$CxMQSUH$ *rya0n@<oV,sEҍ9y;A4g84"gL sL8U3@\..˯ڇf$"jz\Ο,W:Ut.o3Ԁ i+tYPT,>Eo`w~:@W bjg` l-k gBt^DtmR$DFRۢQt,YE¤=HDy'pJl.Dv3[ɽWś7#0>vy/BC+ɜRRL1{4 >y2QRT)#SiHőg-A2l.}*$_$ԕ 9dDFH*]\?+#)Y|zV zyh5z0jGJ$s^gBٿ%I2{#SVxk7&Xn#J?4Y"ENˏ*gB.SW mm%0,rB{ t0Jf~dYM~hgitJsw3$ʧdj9ї>#Æn)&칋WA0"ۯ{F_OpW ))h7dt]U.{+a@S-ZVB@U Va5 H?m\ۦev&ǷWdҮ]ܼg,~az<LҲ:XץY 2珂ȧVO5w!jgua ]"a,h[< LpwxWUOJ!5FWS&{rsY~by;w /WT|OtJHS eM^M_-s1R'f'I.4H#@%ސ zrm @_idDK;D37p@FZt0Ȫ@@ :2\ .[_j7O藪{&DY,ug%Sx՟lqōhNjt)񘆰1 lvjs)"7Hrӛ5"qYIAC6OX4!%7~;.ԣ4\nQxdMF)P+)CnC^ϐQ/x6a.Ҷ0Yv%,qho~M<̷S ;[4oڭ+i"tOXΟB 9' 7D5(J 3k! fsKD%eKooWۧGsQiU,B "U![vx5Sѭ$U"kEU t+.h FiJ9Kt E"1!s4k6ODܔֻX\]UmjoQt* Z:ׅ,g; tCKČդɀ,¯Eǎ*xjB}VX 5$ͧ3n2v8?:X_g`B6EEƒ3suMЁSY:=ћ`u$Y*49 .QL/6SR:>lD?)p}(% F8j?0JHh8˭69NKÅȈ${ o 8Ν[swHɵd.`e|,;oR0sd%P,k SW΋(SO%TҗT7"mxC,LѼְ͎mBF&6斯ރUnM i%PHIH)Lr"FO(A3}|yH|CŲ1ved8 HB{EW))Yקf|7v@[ztPڹ>YIIۦE< kYTު-rB܊*ܫ"^RTAII Z83Cad' e8tF 1Nhiq^vr t;,_l2uZRRE6KD̝UE,I|HT'5H ^"sSx*Tn}TvE'ZѲ-0hmNbc<{kA}뾽DK8/%~Rҽ!;07%ސo\:ɖkyPn85,djoݡesBH\-n }y̙>@?$Չ?uSa ^-nwJa+삭hB ,m)2޽3B&d*c1eeֺW.2|qW2g,8r@/i^9YToaɝy8?AuޥKԳ/7BlP ;η^ _pj#k jj9!NNcT[ 5uY]u`SXXcu+ c7Jws#6WVrcΰsKv#{D|a&/#9u~]{)+2 J§А6G;-@Ciwx|\^Xcr!#o3?=xxfZO.AY`ޔ7F|'yD+[^Ny.M7ٛҢ|_+_&)Z,0V7CmFm$h^OZT֗t~ݟqJ|cI)\N|:Eqڟ od0fq LLS^yox?-:b$J;WA9lmB/wE6,Cm.1CC0gL htLg$`罞&|1my.E1']3؃D/~٘I!DxJR[7Afx $8"4qI㿡4zEE:!u5Lk}gpO$v*/ode O@^dluBY~EXJ6I~)w_ >}vKhGJsKv a[p0X&xe5~;1]bvmE.O+KSg(ےɷh" 9aeoh{tքpJvf&Ț=[8Izr) d$m, cC>;e+գCz[)[`Bx'a3PZimID3nE1돏BvK;ˮt&O冡9ڕ1ћV;q i,lSKvv~|p&UKzP"J6$C:,{ EmxA 2D&V)BVh2mO*DtGV\9{jKC-+{ M%."s1_ѐw{Z+2[gtPXǖ^STcSQTMaSKo$B:C"|tKcD ِM1Ra4?%-HS-TanuANi 6}1m!ރt e>d%#"ʏ Vue!KX,߲VSQz;ņ~GlD$c|'’ldIf'QBL&UL;Sga #fJB[T(w:5$|+\LC %!x9LՆa}n-jV4?+R}<~I!yv'ۚ?4!_S j6PDj!1!NI&/Q ͎УɾMEU"jUz$/"8'5Ҝp:~AGkLnqtxEѵ gNM6H9,k >b%jJϩRv#Y?٠I';qfcDk.T`v=ͰuϏ\x8?0_)UI;h"%h/2ģTF] knl{/5+;fu2zxRŇE[|l;`/Kl9<=B0d*GU p@>ʓ2Clk}>yCj^9'<"gɗӛIfrW&g g]sIi|^*U)\dr>FdFtVr{Af|mڑTguF`e2]GpR#0+0mW!x6͑cYVjv(N9 :5* g}FR85=Cc[x/D^mtxUgm 'LM,'XX,ZZb $B E*rR$}쟙s~z/͘~.6 !2X-govAUa=R@4|` Sl☭ѭ҂X7e}V~&܁b/~O}1#Ξ$ e$' dE^9Y!d ed=I3E[y/pz/Y?V `6$s/&&dA:2V,(Y ު%Ee*hvx >BUUݶ*rݒP"Y,B`5ad2 n$c MQ#9_΢oy[aٯW'(4f&6?k~Q'I+H귑WqN)o&/4$^E†)8(SgTel64##]6EDeEgb%˜mI/iphV"2*~kD]꘥k4c-m% ɷ>, &&`ZT١[R8Nh4<#*˄"yN( ؋5`Ud`РOa%6[-'#E"3nN_S'@{.vE&oux,|㽹PX#f-.T`|0'pns̫#.6M͹*9-Xӧöޫ0Nɫ=pF$0*XiȰ"\+SiTHoɡur(@$'$*즥dvﲩB[In5#c[t3 ճzFrggM~8~2h*Y@sB,2%{"1HfY?ùzO(&^mqPS/O*&'[_ߟ:a2?X:< ?5ľ .$iqX N ѩdsJbBlEoI-( LaS i}"YIShpr*yaSivzrR91^0RA6lEe+<55OyWj\ꛦ3/I\B?|yR˓h\줺:8I7W{>훆1}Zf{pޔ$%/Wf)ei7WN |%_g'qB=;~}ێ8 <Bm*pɲ~ޤ(&.I3ɻR,bbgIQDv/ua%Ò!\T޶;=鞥P3yLZasKfL&r81sls *{c' ٌBTm؇ +YO$Yznm)K(pb7BBHraNsǙ|D&BX Ζgq`4&֫|xVccbcL ThN@JZv.yt.>uJ ^,~oܚG%Ĺ&=mvK ʋJv\lD*Ǝ5 ̒>JW . yRvAW50 NwəؾSAij~WVjT8T+ge]ϡ ԟa%ݙv +]iLE ]&rY9(H%jyf9l`֍As*O^8IL#]ȺQCTjJq)1hq&p+w.xmP B!ZKi}2ʥX~1$H"]+z޲hGB<\Od#RFlm8rӪS/m65z\g8wp[s+7 fN2!8,}y<4vi tԘp`CB#",eUPl5 +`(,ީd7W#sI^bVT86g:Зt O;̝E;Nҧ m\0TڥǤ†GocHyRuuI"Irb&I,*=`K@ !QL`_:*3Em3峒W 8C:ij()'X v0{deҞ#6+erL'=+ŪYoZ\;@^p/IL JaO B^:jwXJ,mw#/{N0YI{4}txŤTo2u7\;cf-4 p@:R9&PO1,%W| [Rš[+e"fSkKvȑӎd'or)Fͦ Jӛt8X+?Ot"n%?J f>ۍݬc?K"K":I a2,tރmbtʉd."F ǰiW*Oh-6 evtlfh^fbj [bW>;ŝg;x~brR$8j5q>ÜīFDi^c.S" \7sNJ6"HhkĤ.J!vepE!G"6JgMuS^Iw ԙl/r4cڹ-bܾ~ ka~uu18/Q,"&UoFwXL\z6عbnc 80y 8^ԩyG5gm4Ȉ4Yw JeB  #y4g^اۋbV&Pk1%'lffdbnCS/񯟝1I^k?6ۆUZ_ʏ|  PByH&݃e.G3G"Z$D~9^˙12M.l5*a,'}f$׌Ia.f&ʨ^&rfk"ҙGCh\$N0 0;D\ 9ZfqF8}T iW =j#+p11tDpI찑6M Rr,K>%ܽp=bYCv% '^r%gH?2=v*8;S{MSvW$,ZT^ۮe ☉|T85f!e+(Tq mvNc`-kx5YQD^?#hS !,N\" A4 buhXlmlUbRTIծŗtDJfVr[X02TA ֹ΋+1et/ۨ@H!K*~_!6ȱ}{Y8^ _}/;ӋD" c%X+Kt[jf$fy:/vV 6 X} s #o=Z<2`Dj``ߒSdVܫ_7H}uZHJ\v?+el)5 6% udo<=&qJK,KsA)i~OX޹PGnj&o(䕰 A\;,IUp,N~.JLĿFm.:H4o YJ".')Ӣ7lAZl$T }iSzMd`EL-V!|Ry1m22Wv]jo/#jbeɰMJLCg#?X'6K`eToOT#Kz}JmNG9ӌ`P`NbC'K5m*fdd4U IjG6V>w4GTY,2vktm^p|B_K2I{߀h7{mZdPTDF!obPD$}X-BPR$w62k"# c bEj_*a>5Zf )g9p3aGYRGj{lj\c8CeHڒnzbvWA9B <;NE&듒O"rJR[ YG|TGõ֜J-W25őJ!H|qz'L^i{Z ØX WԽ/I֚HO9.>x"KzBB>#+ b+y ^ReHʓj"&bQ X+LK B#dAsAѳi7ژlmn%UE[Zb!x>, oǻk&/t䠴1_\2e\%:!,. >r'g$о]zCJ+)[ [[*f&'Zێ\Hëzi﷨`\Ϸk4xChQzQ- UoGz&z^% Ih<](7Y&05ttoεZ}-&Uj䆊Y/7rv6,݆iox$}<^p/ē5jkT?ƕ5!o]Å _8Twqӎ\kRG\.Vޚ<ɣ2_`u&{fJLVs?OND!st.\W-ըP}JM/s)IK~EG{ !W_Lcx+p+>(J[xooCHqώT+ I%+6?W?qp<0?? i{v_;/+BnkؑpGscO:NP˚5\_hm%oOL<% aNs[ ^bŢpX8eYв6_GH?޴M%:մdiQXE~ƹzi2!W6 _S& M6O@==B|Q/Q͋|3ؼC'w&9.O)S*h8vI93A6@ I´Z]hC~^H޴gM}?9hA-X0]ԟVea<_҇:94O# v7IW+ ($И|zgG"i p$E+P%o >$;A$/wሔRCyH*yAߟ-ҒD QP'qίJvf84X[f0;% yw24¬%_X  !Yt4=G!]K&9P~ f4o!ekRq?ox`O!*xn(̾U02$貓-H%/IW28 &B'A}㸏;sMA]ɛd&LC- }Ц]?]bQ[p/O/z,pEd!45GI2K)Ŧ3 zؼx} *#dέ!Xʑ?]gƐ"I&9^&g"z\FL&e>*ynByJ 4* ECbo!#i&獞 6n=olt |_J\!C"o?./M"%#'=.풟OF[z<އ~JNY?`=taLjl K%A6Y:}/f^8@ss&>K`s[Yu- Kb&}Ğc &{+&16IgKuxSllʝ@[)1xkBGi`mX)$G=h6" $spn#{}Ed6 v{,/{]?[BǤOq)]mmV#i³;ٯs"3 H>  <(kDp¯#(NEOܽn;. dUJoxq1߮! % {y^DSͅMAd?yVi3my3^P1MVvQQ] ˪T@36cmƨĽn l*kԭbQ(x,@A56%11VLfzLwloM.3C잤LNq#n.}bQN)q?,ǵגAC!%%ҏlbX ߣпw8=;Q]Yݭbo=~L]qK)_}-媎q_ "BeY>Ѕ'& K n%tJ[MOװ${궹Vo5.40]HQ JbyrtLn%dOUHy]K4DfAFn߻|}L%f:l!M&4Bݐ+j#_\`j*Sk+5)9!. lYbj >,:Qח`"}M_{ʡcUs7'x$ockʋЌJq8>ʴ7Z%76U綄E[^/dUҍQفvTw)pY1".Dl: mOes}KR^u\HEl>zMDXEָX(:͝ӈ8iEl#TtS4MH#9)) gg7W˥vsI']W~۷KW 7E=~XFG!AdLF]I`1?%M4ԬӛR*lE^SS4Cʒ*̒B4ܴ3=2+!z(;ڽIVtnj?+B417%..{`7swu֕)"pnMDܜ׊p"m>v'a^_=H jUu豐=b{>i7Xcs]bddpiI3['-85NJ͍X{63 Aل ԛȎp>"".,0OWHϑuMgpp%aN۾x)$ q.> OdѳկRo̰X\Baz%czxhZhOǜ 7g OM6#9~Ubru9c ~ 3h]kx:RC|4'%1ר'h( ]@/,z7]%ucۜջ,FcUDx."DO]ʎ|,D#rt [&UqpۅxzԷ5h=Η"Bo\OMbj1DLQ&Mt+6L@/TI/%rw" (Hyvj& 趑>IyӑJ.H0X SX<-xz= ua-]KbznIܵo@&*VF {`cF  >")ѳ޽%˩DNsbUsw>TRTbWS/P(!B䤝kl u Gl~`3kl4WHnq%RPE=4Cn޵}+>f'aH#v&:⌥eX .iD#hVTǖr!ykrgX./rAij7^TT@j֠w%Y!B1^reXTl͏ 4d!rxF0|г{" }mZ+^l'g(I&MîɈ)NWqAza+aG.:ﵙ0ݪ!򼰼Mt\dX6=SsGBYf9|ahoM}{#{En@AI [Z(xuC[p@<]R^T*V3ooE Q<s^.>%W2Dcj0NF'ؿ'LWMBjPGHëW4;uCe9iv[H+4n?t;/eqA gGp7;MXsP&O:Bjx"OCGv$h919UŦ1l X^d86SpW8w&VcӲe. /%u4ڕ9ent&5r JOtj]86]y >N;i4pAyB VG6}6H<;/W]ȵĢ%&JLu^jB_P§*{r32k4%.H&rYCȪ3T=%η̖zf{~Jg.@tTdwboZ`ƙ$"ӞS#aa9aa+ۖ^ZGrOhۓi#!ޔJڔ:(\g,!f`m߼ߑQnrIyyx$'K%Ž^fc^?>(ed#0ڈHh1-$ɶbIxxzzNp?5ye_wD_^zZ V~pˡbfzzu%E^^ZʚK+ 5 endstream endobj 185 0 obj << /Filter /FlateDecode /Length 1636 >> stream x^}kHWh CK Xr Yt 9nB5ѝ;}f}8jx?I~r~va3l>|z_./ww|[| ϣ^ ?㐲NO_j?jw;mwX)W<şa}t.v~W=LNG鳬ns'6Hm}'׿~cuz_a#IW#ԈCNϫp盻:-\ntuo|u?TU3$]7z8~ 2`z^}\dm|[oLӗgoi:ZB=t-taJ%)ԙbP1g0gb`Ĝ5ssֵIP@5@P͠:fP hpƉ'j5(!&d E2Ą@QHv E_E_E_E_E_E_E_EcBcBcBaB,/4#NYn"NYn"NYn"NYn"NYn"NYn"NYn"NYn"NYn"NYn"NYn"4FMfAȃ,/tFd }܄>YnB,7O'M&rd }܄> +@^/1:e>ْg ]a F.'4Yu\1iv-drQ-gJ8{KkO ru" ͜T{0%2ح̙N^-Eukl׵LsָS{V_xdz$g:4«GrcC2Mv7idWV^FA{.y#y2P@yP/PMPGuPG͠^F"P&(^F"ez=ѣ* FOT艚Le{ ;7jD| 8NDڤ&"kV(h"2F4Lф*MDL)6Rl"2%ՄZ%DdebuBzz:LFGuDX]1ᒒc"%7: e罡7!2~?DFCd}}tG7}tG7}tAm&"n"2&"n"裛9&b>!(9Q#ĜX8cN,1'N ',?-l  l}K3TdZ"{H+_ޭižnCҊ"c16ySH"FoUFMZX}[czVd[PmW%AiLȡxM!LޘÔu B%"kfO&oS)"j7G"oe]zjQVKGf#EG*$H%#8T=RI告#M). S\A׃Lq2^2edx=z)  S@+@WLylظ161616161611YA/ Y=/\4}V~:twrg{￾?A/? endstream endobj 189 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 10127 >> stream x^{wxe$ Q3m#U "Ҥ^>gzLgB &Jq;vwE;~ߙ]}v}w)sw~wN8Æq]ז:eq gE%'z??Fr~Aak_KLxCNИ;o scX^92jc`ae VƟr8_M RuBYnhP##Gs[M?<{Wv9Yw/u{}}?p% )qtv>0qg-=A3qď'=;SDSc͘>|q6=R~+ћw gw3yG:.@oH=i w/-Ѽ0ńQ+BR5^ Ld±=58 #DA6n^FJt, x'*x w~2>~#=on>,%UҁTA7 :h~:+>0$$]2r,MؚT%W@l*zq 1b1~[>D zB'y"'B`ћ N lD/*PZ+R -Beն467VoKHILᇕQOiT[6{Y'1Ff0-H2؁5Q+UrPIWVYߓI;s~N^q,UWhj;oV,uRߜ=XNdSwM M,޷RPŠӪE˜iɐ2(2O'3 /鴧if{IL^Fy~MWQTONLM]Yߐt9I, u;V\Q$ƒPT(NP&Pp@8 `KLH'&|3ѹ%y|1s׏@ KD#K^z v_Gr}ۡOb'ÿ:YuVw}x}{Iħ'C %'A Zv2|X=KZ,`^qzgh2KO[ ,ʽ~1/PAX4_89 2hyt&A$kiJPF@Z8' kcHO?|)$6U.[uQo*e5ý7 I@&af6YVXMh6 ®f/kWBNdd $<)O@4g;o_^~7+tS-%9` Y-wG}Ao-ZGa?"i`bܦt:Y2ߺ>-ߜ!sZ.H Z%v "q 2IgF %Fh9ye? p[]Sҵ"MND!"scrZ |*\&(E,WFB}9D@$?~7 :Xn=ӻʼnG`1:.X =;̦6ɐIi \'xb(*56qZyZZIJݷ9v83IȯcԾ1hPP*IZ+'2v@Z .9.S~<,yؚ,3V:})1hlV!2nK1Պt>8e׀͑A v v ʊ lv [Nmb,ExJ4lRN[Фin3y\2 Vo"2*?}ŦwSYɂgLV)<]gu.#P]6nf;Ft* ADkb!C_oVH T'CCtE^)Kg`x^-:BK :!6h61zhhA\?KOlNowbB - RB8+#F&`mP !},mVEND$%#a,cyT֔?s/wi鿸U'Ka6MP'+iTO_2%um 1fԇ4tڜ~y1Oopjm+O Bߠֳ֔ydʐ)hw>Y|ئSYNl0T$-a##7_hPi8:nx5-dl|Й [/Lx|֬Pe3:"22Ę1qVJ~)F/A,q!07^GW-UV #ʴ@Fnad[eR5.pJHPZ Uo r#lz1;b\dtV(@cl12c&|b)8BsR:s`. !$<ˣOSGO)IFHLj83I7f4X +Z^#?L'A6H0.SHb|WVC|{ޜC3Y2@{ e)(c)[L.Cocu`&՘s& Ju-JHJ20wtzZг6]nP !V?x EdrvIi(ҫ1U"f f1k~!ռgCYP9xjZU DUau`T !3zA`9[0e@AI-I.ȗ +AT6rb}$t`?l/R)t^&Q+ @džIi 9M4o{sN{*wv;׵l6vXMN #%6:<\V(ֳI crPY` :U BGҩM<ejutY Qթo0F?64b9Jb "t\p2y02t/ABNBx?vQNc'NCU )4}v iJja玖q+QԅsXyA04n4aY9LM<2Croq!rXX&%hdۦ-][$sO|nS$OO ΃pR㨵UWwax\[]kukr {}K'|Xct+ͮDGeT 56!?'=7M} b_&ae&*=I^b dj%I@P ~8d5'\[½ZodӦ:!ZDڜ}mhsoܻ} /![&o&&**kތ\Nϭ[drWVw GJ(j+Y=[_6% 6G%,_Xᐁ)͗r>;eCgVwa_QW\S}FjT")?4z׀ѩUPLѡ,x_>WHNכeg˻}P V&O]΢V 0\Pj;ɓ(F=g3)T`HWƯ\0#`б:%*X:Uձ2$CEG1- {Q:rǗ܁h'WO^{W\­?T8Qs-p&_-k %-ԨU=xL? xMqpyuʢQ>Ͳ%636I-O*Fb).unOGDOY͇+Y{{ȷҟ2sao;\TJ+Dp>n;Jn?cp НBkc)Wt1#B vdys YD*QX+`Kx @̵{1vy0|u "^4]mX >y8u?XXrwIc`drO.:OL2|Dyi) d{rӶJ,YnwOo3V:Q9Dy1AX"7wT8z{\bw9?7u+>xIS5!P6Ք^O#pvu4xL~7W1Ic W'EoP؁eW;؉beSA]NE.J8;LezƢBoހKVھF  v{y\Ui r>Ђ"s{b[*7sZhp6:Nvԓ)]g*|M-pܳ W Z8c+i>\ߊCdjxkܻQm(dU U!)J:2Z@r?ktO/PF&$ n8ť|qvkgd1V<ν6YE\CYCS͇KEo,zn AaHynTeYg> FK.烈77`9.ώƪ]'Rm=E hGjjT$df8=vjXgކT]D ti>NTI+k_-& {sYN9d9\V*Bc0s|djcY|jC77Z{LJo_{"?_iG Mnbcxß|^Wur.keЙ[Jo[*]B>޶A.$~5؆ʒ"gfS o Zcs;BbjdISԠX)NJΌ: J5@G▖SIndX?wygUd|OT1w~Q h4ݹeo\$;^U%>[Ϝ* őzռqkWh%z*@#o]&}r7;''@׌}1.m(Wc[Qv Zvy8U@9%= }p?Yt/Y6X*LŠJ=l\[U/>H[Wnԩ1-،5yu@7 QLZ>ދ})oe#SjojdKVmPhpy˶{ฆEa RHy BKj;mdUq*Q+vh]D- xdjdۦ1c2޽)< {X|.I2Wt 9p]?ּpU,:k݊{^ie>|Ѩ$JW,%o@H ʟ J-ԩ` -r;77p*%+U%rl "l.rO/6J(dE)Rw[Fc<&KpN,8 +۶F}$o:d~Wsev! xK1W ڿo(569 -BOOCE2?:C"΄x|Ԭ $C~;rm9 )6;Ĥ5jk ח GY}3&݁i'k|QSfE" )ԮřCqThtYVRF#шHfjj0WkP6L΋]̇(x*oZ קnSS"WigTuU b9~B,W )kD{vfYSculj)h@d(q{TEpKK#-δj1m 87ўW -,k z:0>-ũ,Z%[^MS(: :ؽ)$eV[@6Z&N,>c]pgdLi[vpQoHѐGxQi(1-J5N۷(φ5-=*w;Y{]6޳'^ap%ZkS|ZMEgs6rrVU@TQTz^x[D  { &pROVnp-VaQ1!> 0y {iH7|4QSác>7^!'(fp",]8J{!sr y$sCߢ7H7OjTap4ɚrؖŅ &a;!1&A$ۣ#~}U&*_{]iI>;u;һ) }$z:Է\8}/ e!2tW%2U|hz.}NXѯg`wwUbl&ﳝ*wlɖ\ ??$v>A\iƂYWV=3 aw@y\X#w*( y 2h]m8L~c~YZY=Y?5ZhD̓Ը;\;L3XeA ?*C6]is " $\\z),RT,s ++k|ٝt$O'VpxB)+*֕ ܡnpݠjzFGl}b/j(2dgoN C~7']$ 45?9BQ#}#5mvhlfmŇ endstream endobj 190 0 obj << /Filter /FlateDecode /Length 765 >> stream x^}Oo0C@qb;B*rWn$HP>τ"[R<.=/eZomj]\̚u}N=ME]uWyQCO4U}W6x˿xΥϥo`ѭ6U1Сkm)).PoUSߩZk-el}4}ٺ˶CQ*b+9EnX _dqߵGhOm)uDٲ> stream x^msG),J8@ 8_QŖ|| UVd)9(lOLO?Mw;(,47\8J8cOQWQQQH{'QS04O$9qJTiƀ*xT*J7Һbb{ɘd&yࢊ:j"㒎24a2b^AZIEFo4"Ҥ 2*rZp!<~78 O[nNj8/Ƴvft3Y}49tx{>sx..sވP..N[3HjR08m|stt=L-L(zW0~= rxq#Š!O鰽,&1++x\ܜlx]6Yч /GgO-?W?O djŧpLxNW$Kg+g/VKxg O7tg6M?EONGxQaG :o/+E,xIZHT4gԃZεn|ݧKwwFs׸;ۖSw^^/LM%⛫'~^nY!:>9./$4Ȥ~EV0Cs[C,g^4R.cKc,vg_={sq|Ű-cͶ= kٸ}FV;rmcu Wml 3^3sR> a7nw0?bHM9>9Ǘߊt.LGvr rOƟknXe"8S%ek9 a7LϠ/.~WyB][e % 7nKYcB H ,Kx;ɺi# 4&Pt(ww<ɳ!Gʻ1VhLq֭E}ӗMIJ|`lɷZu޶lRyE2:E}sݼ?J\ϥsoN{evm'Yx\intV݉loDY;6s0h|EkBnY`%$oCQNVv/+Ԯ}fF(eMϫ29P!9XV}+n$ئmvT}ov#tr5Zm=j*k@ (@@x6S$_,V5L%Iw(DH)Tztf7~|o9p|ן-j_`H% pt~J"xl9cuo[&+Hΰ3Ȩ/$:];YbY<䧐ٴ2&vvuw!c+aY72~cȂ`w߿y$ M,%tM|uW]fƳĽ + &DԑdZ-m |uUhLPva.;{Y!r 9 wPWф <*2RLI˶D Ag=?a"3w\& qƚ|R'N=?;gOyKbTԤH[3Pƥ5p6e,{qiEBQ*ѹ1 IboYjU5XdKͅ/`wk,!H4*!5=^;# f>FM[||Y'vv}ͭ¨s,L 0D p{sYR!jO[1b4\{WgBzr4#YfUJRt_RX!3R&kvKfZ$=E>Ynj3{Zֻ9o_|;P2t˩@Nbjz.Xqc̝k׆z xڰuNrB6]6x\v- \ UvRD 3 HP͂U=J*,v@@]ki n%'eJ#|;$vPG FZ(a&G%ѝCi wO_hjvXup5o7uDqjđw)o{5930IcaSB$b9- sEs[.Ie|=Me)֬Tt 5<(,a4*2 -SGյp8I 1fTС噥P%׽ fk(g;%IО* >VҎxw+2lr7wrÅzLo㿑u 6ݕ 1'.L3$ߦQp[7jJ6)T^Հ7kE!ʛo(ed[*b2a1n idOuUX<.q)}$Ԅm4NMB+[RX=w@="N}*7ڼSeT|φbs/P7V핈[H8?JTKiWսɘh% tl]{2Up6%| !u젃Pd:Z)󟳋!yn$i&{IGi<מ^Ftxq5 sn`bW *&2jy2>Θ&ƿ,q??g1!8d )rF_wbW{՗/׃gɘ> o挧(0est>0_L_ʭ:*3*?6 <5B3003E5488BE73C9A1B5926D766C8F4> ] /Filter /FlateDecode /Length 515 >> stream x^%o Q3W;UK]Um]jq޵ުhTqHXHXH$VD,XH M$e?OΜg̙g&fdVl佰4jTVc¨ VC k|8p9XWX4Udžbh%Pˠ C3Za!v&ϊ@e2bN萕_6gdÿczKLݲ>yFa a+lv.=0,{07{a #c80Q[KOfcpNI 8ge>a\]1`Wxy@'=QM\VK*iA(+R^+M͙T)EP4=D@sxz|퍀8Fif0 ݍ9fD"9E4Ԕ>G@Y?۔4gAw@,$N}GI,6:tKJɂg"NsxY.c endstream endobj startxref 181478 %%EOF context-modules-20240428/doc/context/third/transliterator/VERSION0000644000175000017500000000000714147266523023566 0ustar hillehille2021-2 context-modules-20240428/doc/context/third/collating-marks/0000755000175000017500000000000014613513620022522 5ustar hillehillecontext-modules-20240428/doc/context/third/collating-marks/LICENSE0000644000175000017500000000001514422277152023530 0ustar hillehillePublic Domaincontext-modules-20240428/doc/context/third/collating-marks/t-collatingmarks-module-doc.tex0000644000175000017500000000021014422277152030543 0ustar hillehilleThe documentation of this module can be created from the source-file by running: mtxrun --script modules --process t-collatingmarks.texcontext-modules-20240428/doc/context/third/collating-marks/t-collatingmarks-module-doc.pdf0000644000175000017500000042200614422277152030527 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 51350 >> stream xڔۮ:UQ܈ 4`'۰6TݾI 1RȂ؍^=YPdf2sg?o'_+m+lGg?ΟJ?)(vZκJĝ;^}xn?֟5B?{T:O%w/幥sãqF7m7Ql;L?Lɜ%ȤI/y+%hD\T]Oޙ,⪳moz/o{oZZUg['=;W XD-ms9jݷ^Wܪk(]rɠq/>oXc;ʏ~Ϣ+?Ta;/޿+L?ֶW/?{moK7/vp=Ȣl,z[;[g9OlXEmϹzj?q="v"k:-V?SaY(٪;H0{?J'gS TS4ן=7|JO{\ ~tS|%8cJ=;O:ۖ^O;[8wDG6+-qYVv|Rx?Ηɽ7soU0N9qtA ?ِV=S{8y6`eND"h v&US ۞XhC4ZI_o p+qoiRՑHX5Mɉi35JHPz7'M5ᣯ0<$oW| n-z,"v"x۱ǓΪ$w/[&:w:\[vk$RU /q:)`UY4_Qrj`ro7{* #wlrg cv~eT֌jhgs*k3elro @9}cVp_aIx$`9Y%R̟=}(*WOt&jÿ)ŮQ~_ʱ`wQ-4%2v*_xh ͆46. -ZtU_y>q`P̪3+& C-<9kHe}""`Yul?85yv-8D\eV8sǻ{g3§ӽ;EgZp;gKy9ĹkMz+-x-x),ٶ>:Jĝ̷>Sʈ`l'7| K!wVdaCl&cۮ&v(PcXjwW%*,MbVqUʬ:lb gz * 疊P^}99Cwߘy9ʬ:-Tes6:<[}jw2qV'a;,I~Vc>_3ȗ[At"t>E<=^962gj7Dvd,#:w:2aG܎}dY}͡r1lwNUg[?ܹ[FU".2vVԵ~"L {k";p AqYV7 +}{yD?̄_9Y/xzb f 닄_wd\;/?̄ 'zo#wKbK[bE'N爔2VRe"M8 G3YD\uVXK0ā&^u":qስ[Yp 1M\ԉYt7;e{olTJ:[eQn{>=[ *,Y%"'bVL *w2_~o0Kp|8f |lpRne> a [ۦNĝΗIeq?EQ:?`,<2V5cĂgL3fE waUY4Ʋ|667Ɗ, 2VEc(綗G)CE&g,RJ{{Gr@6bQ}ة|1bP ޠnny/ͮپAd*_>>쒱=f|#Oqa0fkAr.a-H"`UY4f,:elro|XUU|SD<ɽ1g9-AUe>HlRod`" өT 8(G)o-ڮ/z)`UOşT%@ 6,1Pa#,r[PԝD\ui'NG<Ͷ43[B_#w9%U%"j,~M&qx[zL?Mq`}{z;WMTqNU'h x RnC4'#ۉ,vں4E" K81VUD6VN+cWtyT"2*`BJ~' ҃#1bH^Jk?z!EOaz]Ӑعbߗ/`YH8Qן+쿊7qY4pFl\v<sJw}TȬ y&xB:?k9kVe\],j+ˆ' o;O{Xf+,n5-[m;UKn؈NĝΧM Bhj0042.vTt"t>-;VdEex Vo juqY,s_&w iMҦLʢ(pýxZUgŌ6Ƃ+UΪ7|FL.[Vd6|O|)F$%c:U"2 Q'7#k L <n!gщ bbz""Oە_[%<~sԉz~Ъ{o01qYfK8 ;C,QJEfC ;jځ .ŶZq*v`Q_І?ĊtZb KQޑRme`Jcv&8L@J, I^uD|ڍṖsms>D6rq+ QΪ5H=L6YգD,z;.ۺ&{1T^OUgz߄{oȯU'NwgW;@ _[X~)?rnXة|*ˀ-*Tu?O_S_$[BD;O70gSO3#o/XkH 5 vvKĚ̬xiyy*܍!_okb{ibaH*x>-4ƥlR#~};OUW:r}@ིA| Բ%E'NS+-%ݳnq[o_y&E'⪳ _ l7+ P{oX-=ǙMt"::2ז6FqY+o%6bow:aZ rƎZDנB/iqHUSޑ9xR/6_bK9oևG'NӢz"_~zxdgT+lֽ+Gx}$اNUg՛]/mrK'ZqYƥuPx̴^":P0]vyfIu":qN}H?Ab[6y!+xq)+V+gb P&,r$,m}T;oYQr4 x j/ˆD\uV2|/o{o1SoWUoM.6`x[SS'⪳ '*6E巅Jke'u?~7`9uBa ^J9d7Eo* NO}oG&v: ڸ "VE[mt2> u,ƿ<$ͩq6„ :cP V~_#lcD\u>|Fw\XEt􆅚S}r.c㲞D\uVe^*wgɌ9=qY)}{kΪ7>|y{ÓzsD\ub3Y9ύQo/&r?"۰9e*]C:lS/lZ:WoH"9uޒ%qkS~9QFxNUgC =ב{oVSyzRwS=LyΪ7cc{okqՉ'p 7hZ~W_ *xmޯLʧG&GσU(/}^l1/nqGt"t>--bKurzQMŗayK9h|%:Nĝ΢7T;VC=<{łqYƁ,/o{ol:WUoZR/qYǙ}{/Wh`_:sVlp_QU*bة|Y4ݒ]\:XȕcKRr.b)`dMYpbIy&/φ0h0eT֌e} 6Bb`rolJoXUBZmg͙5;,+,ęM{ vug?3J<Wޝى T~'3q6f?MȢ-uN6ٚjl:YVE[8 xt0^};[|~'HUdіҝأ?tVg *hXwB,<[[>Ǥщ{ؚ.l'_N'/sK?':w:V3o:cO/)x_sh!:w:w a)=?`q^+H{NUg[^Hޛps`f%rY3E~y{˙Lu":21)yxfrLʪH춗ɽso,XU<^ )YR4lj N+֎qsET"2H8OU+$mU~)E`Ƽщva՜ra7]ٹ~90$:WUo!ymrﭰ(pU'⪳ q]mr)ǭ;ՉzCZu$|BUerlɽ3Ͷ D\u%ʎc?6mwC<=&?nd[)HUo6C|?[6c‰#qgImʧ9BO2f+#샻aϩnT$=hWܻ5Nd* IS{czhß߯ɽ-'cpXUm>T/&[%gf}jc/;<Ņ=>!Nq)1=-p&Rxۍ3lo5U"2\Rm)~Sۨr/avk;OIwVmE<.1`<~ˡRΝ} `E'NSkuq[YIENUq荽,ZŮ:ެ~8Չzp8z{c^6T'⪳f[0Ƒlx^":a ~;|,;dEUg7'lv_!"v"?@C 3N=?8pVXNŗfs{sD| daf;,,Tج.]fėb5y7qYuf)D&vΰ;ksRT%*;l/xO,Lfx9ʬ:ɟM0su8ZKQʬ:ceAJ#£ΚMݚE%N&[vQ9s]*]y{i| > (6i. 7;q#\t"t;a.=Ա@gK)[Mʪ-A{ݰ՘AbtL;EglƸV;&9۷^oMUf~v v mT JUfYVΙh*W8RvcK vLCl'9%4* ,qUt>`K6G qk۪Kq:1N%S%*-tYF}+¶yd9HOrNz)=ɣz*MEai*w&vx5F#`Ysk8"X^}{Wl>٨"EWv/r` 19ޫȢʒV^U㷾3ķ[x%ƃǘ×` ,b ?_E@oSXòUnמTek߯'UշȚVחI{Q Z`ՈVډcwn+{ g^w;h8eT>]?9ilg-I%8#P̧7uC[ak\>|>GI;+6ǾD\uVq$we^G!⪳ ѣz{{cӲ5Cu":ްqE$n;/WUo'DY&xI[!^c#G7쬭oaؔxomKܬjQ:oylSkGwE R~)v kڿ2v*lySc"n>DEcSj3%X]aFNHMȢ%mMlJ1 Ģ)v*mQEXEmURpbg ^ "Vr攼@ /~{fI@T}k}TNĝΧ66BrEڭʶPHc~)?8 [LfD|j6j2q*f]76q~9ΎlLooϔ ,"6ý1G:XU/663Q~l9SY3vy}{[<5 i|ܓbo;ttco(_y122j+Jģ̂$~$n:DHڃ/beة|a5r@>Ƒń_w?>עqm[ةޛp )DD Fg i_4^qDEs->u":؎rm<w޸<;{zCJAڃ3 Qo"U[='|3po[eT'>ѤrJnGnc<_&1Vq-?,Xƛ~llŇ_t?G'NӲ6^Y>( n+RY8aO['⪳ Pd$ y\ щzB垼uK9Y,|c ~UNS[g+m3vyW~9zQCd* elrokf h J:G{cceʢ 1zɽ[ԘXUT>˱KLd|9&rDْqQvmyE2! ,eK1rЊ*Wo4Jyu;sK1.׽[;' ,Qo2v  XEmq/]z&v8y+LȢ#mMl?qO"pyALȖFH<_ߐD|qzddXr6v ԉqƒR6}-}5?fq_AN~sqY,uK/o{o&LJU[?`d>;CfgL|)Nvs_E%*h=Po /W2 )^>mT'⪳ꭲuo{c/W1 ~9l܀tj P/⼣IIqNJYz X;OgWq8`<3ʖ*Hܭ<DV%e3-`']l9-hp>ܲ-×bv;Jw_[$*h^K.ןXma{[տIحA'HUdo:vn--w[xc~)?v4~2v*ߚC bg@a?_"f)`'9$,`l1Xwc7o^~9[]XU*BVl <cwG&h22675fv' wC{i[r"*ᯐ`1cMf~EQ6 #=u"tENk^Y4ƴ-V/\Z?G'N^fk?;ao鲍H~9^Zy;GHt":xaUkp=D\uVrp@[Ǟkq-:WUo8uDmr +b #6eTs݆/8eUU^B 5"*+:V$^JV0{ D~kƧ@UӞ_Mv/ a$vq{xlK`cn+??_3c}jͤjfjc7U5G8x7fs4:rDUc,5 vN>HUjՐZ|al{T| 9`qo[g*w2_{jhmtǏ߮$/{H&=։-$NqGÛP~2VEclDG263 3=2v*k|?1FXUn47֗ɽ1NnbPjOHsE:eT `̤.a//8K!-ԉzc/o{ox{,z&ycoz):WUo;gTl^&+wvTu": /6V7?qՉGlp4:X/߉6AC"gMcѣqml`MSjˆgsrB}.]t"tML๽x={4K8D'⪳`DlOczx|>,XUV`RlrVcL:w:ّiý7/xΪ78嗵{g߃rğPVQݓT;GTK x-`iS_yG+=i| φED|n6&[-qۏ;pK1mȌ3SXĚ)`ܜhMĒlA4s+vzGwG@Ea8RٿI%>ƳĚ|yyjYɽT%Uڼ(X0 z rbkbqU֣Frp(Me^s`+_yAvq'ƛ)vbޙeGQ/g!qJUf~7Mq## *i`99cYU%* ?Tulbż|KU"2tv?,5'2yhU_9-S&N\#pkH5/i#Ei|ҋAnmRV|)Cz4*`[cK{y: Sokإå4zcæ7uK2TCv2qo@K,7Dxػl=0Q"R&̞7g=q'XY?;o6_=s*X;oOְpmb1ͩRVFE5".*8?ň6VȘ̪$_oC/d#rW;FEer1]#}Muh{*WUgHp;6:cَzk"d6/ywcxdyifxol3rX+0FR?*S#ayLt* ȧK %Pc*D\DVMae>8qF"."8Tkcթs5BTozNDUc pRu]}mE#⪲ &@cׁPH0xҼA!W [Әͺ&}cC։/-we~4*e9\x~ϣ+[_K8Lʗύsv2vH{AXLb"`Y(F Bblcaj ,%Idi-v`f.ݿ-v"kؗwK_+mXEºhVDm+ى glmm K9/GNĝΧhlwpdc7W!.Y׆ ;~)/%;O5YZq;pBqt*g}AN+ʢoc{cqNʢ1,ɽ1=y.2VEc %_&?4>^oMU%L_&8.k0qYV8B|ؠ߷*NUg7r'R3qN[۷|l.R[4u"t>,QG / u|LUeXa=[DgmXU5;:m <c%+ ٚw`UY4+쎧CH5S&Ne,MpaPӽeJL0Td;,nM֞Kya'rmn;o opFi9y+^|#9 D>}v{ohH 1XUA'/wPFaD\uVLڃ3a]TD\dVaywf3^&XUٰe!⪳ +̹[_&8޼"\_":qȜ-wߨݦTj/tr[Q0OwUuSXsU=m'xm:'7UxAHPrkW9@d;Ɩ^BCa@j|s*쥁 r*$^ 9pcGroOO+'[Z#?>24vI 874?4*扛HDM'릹™7U5Ovڿ9bۍhYJvv/poÈZ!I ,caj#R&ư q6e*W;M8TFN@F%Y|5"*uw^ā;cGm, L|)f01JU5}϶: 0zVӑ6~9ƌ+NUgnƵ00ƚlBUe,)&xwCUgbD,6v {»CU',I5{y,{B_>S%NSg}`ٷtb tZ /弦SsNĝΧjXg<yVEcx4&֦3pgZ[CةkWPo &@G];g*Dۘ\x92͂/Ŭ$;}̧1}+AY*>b=Tq6%wO`G|;kI𥘷ǐŝqY4 t%;TNUgz6<<{&lT щzc%^w>^&*;N#3_":O$lF:mgC$īKy߸R1I]t"tؽ3kfQ]l$p|/Pg7qjhS&N}36NbyZ5Kb#X »})`YtʼnR=|ɽ/s%E&h ߝj^&:E&h sポެ8"k,)voKe}lD&?g4^E!=rGm6*9SqD|-hK\3V_q5_YQs{Grl~9yѝMUcg7| E{YVSfBI&{C3@mD\uVYp T,xoWϿhAdw*.㹁HKyc%2v*Rl-2xۅzك`7QLʧؓ0!/+n ,_2/ٌk%>E&',;g˫9JR{(,9tGa;']Ƙ5}񿱊,ڲ6?ԙBG1O$,bqXЭpШ2=f%:JJĝ̷lQ^8ėb7CKS%*'+TEe":S_iMw#mщz;\=u[c0^xyz;ګNc/UcA~ɝ5N6 ~"tMCaSffr6,!:w:٥qł5b<ٓL|?LNĝη;VR ;vFlH0 H L6~D,z㼼&ޘCu\Ϊ7,8ɽ7K~{zbm\W{oL#:qm1FgfUd BI^J9cs?#Ԉ|+.Nlm̡7+v#Ŕėb%e/Q)>U"2A`\ٴYO̲~_|)Fy್D"^?Fy;[x i_?*h$F354GXEm%Swkbg+K?15aD\eN7+) |/Womd7ųV&9{a/"Rܱα[Q̷lS؂֞f&졶+lcPʪo]8x|.^5"*8O}M*QqUY-9"ygOפmjCJX5gO>7|`;2lӂ%k/凍;G Go4m:5*S jlw,zx/3wxZG&h0ypN767ƙ8T5m1)/?u`a9"`UY4ԉq{cʸ/2V0` x81FWck?R90 A_+bHMNĝΧi6X#gU|)T^/T| !|؍}F c:a̖S_L \4&:NΪ7<Yt.)(!Ng[e{6>zyFΪ7jIy{gq@u":*gwq A=L!G:WpѰ)3=Kwl3&/vyiQ2u"t>-'?1]Ke"@R+?_JUӇXw5s*Ƿ}1[4 { vxg3pPt":pc񁪇{o&ʪ396&On /8j`{=щ6yé];F fFtwwXD\uVU6øMq5D!⪳TxM}2gX/WUo'W#[ݗzyeCĝ΢mN}!s{9FXzOcɖ08~"'rkhXU>Fm*D|!`vC;~9=#FqTDկcB|xF[V|)҄q S%* *`ƒ3>4qYu [;9ÑIdIOUʬ:CsL &vi?_"2ᾟsVfrqH?m,e~0Q q ۭMܬS%9~9ΛIqI UGg^YȲ'6V~9TS'⪳-&xFΪ7[ݱT'⪳RMu؞VN~Jt86/up $RxgV|{R&ksņp 2֬Tb,?d/q rS3;֙}ocSXS2N[#./`ǑmBXsX=KO%`ý|UdU-{m ʢ17!U½}A*lj[ly4Mq$~)݌S&N+ϿdhKp'}sR^7sG&Ns9;67rMl}}㈂V:[~D\uV!Ju=;cǺD\dVYi9؃1?(SX4^'v8rZ_`Y !xokbg ϼw|XEE َ-SE7'mM|)F;9l-;9U"27gZ^,P^<c31:w:>?Ll>Rޑ0FG'Ng4HSDý7B{kD\uV슂T~y{C2m=RΪ71xy{qbU'j8mju^ƶׄYӉK9~xD[HQ:oʋGaȟvʎ||(KyCpNĝη )$B4,"W;H%*\CD~u":8޶W{op0R-:WUoɽ~CUgSsE`lr̢oqou>N`t>KL`xaR)a)`e`M L}T<[B*}*RGה S p~+>&ygɫ/9ze:2VEc]Mq0w;,:!5039_+2v*k2~f{.%>J6 ,XU^KvQ{cLVpa,x': cٲ`;O}HClӫ .s7;u"t> 2Nq|J`Y`6 rㆸD\uV1BRRC%_":ffo;oA fuD,zGgy0@!ތ1 Zt":S;y6!)}\,?9 $9qD4~ԉڵ߇3A9* 0(Rmȟ)|~ނsdO sh 5u"t!dp7}&{ArMΪ0V]CzoWUoѳY-/Ɯ(SNV8A!22>rMyNqYykD~o=U%"j ȓɽ[iiD]U'⪳ꍋ!N6XkF2ӗw&7FXSDNĝηZ6<|-۔|/ŗ Gxy4*dV!U&rKfW~9m eVΪ Y=<{CX^CUg[M@/kFY "j1byi{k{=dmnVu":x(J'y:Wp+? 8uLbq|<{˂/żsőD%*}clۂaJ6.kc6S'N~C?،{k:HrR~)iw!:w:J*t<ɽ77}8ΪT[w0V<6Ot":<<2ar @"zsc۹ER*L |ZʋlN ۑF,8Y{/Ŝ%swRW$*iY'ІawJuhS~98ڙUd*'elroYPFjAUeXJmýʙiܚʢ1my\v|,AU%n̨gGH> p`X\a|O$u'HEoX˥n]c։ /'#'To"w_3L,98XK8l6LJy5vib7k7U5O抌J6_|bsY_ok:gMibuϹWDbͲdͲ*?| 3Ԑ|_:w:"]lWzfĺ*ݬ"tK9'vQAO;O'&fu"!~Ú(ߠqQu":wCɽ}mTΪ7cMY#2ԉYƢc<1x?𿽇{o1ܭߧNUg[^c~XxwVmBmw-"XJyG ]nYYO7uߢ]^lh eN _nC'NSd2dQn7yi ao/Ǒ%0OOu":޸ķ~araD\uVaGqmr G/|rSu":޺5ars%qYƊQ[.;o%zB:am957Dn<ݥG|)ɏ_)`TXmSF[kvC}7li|*I]l{ Y,rf֥:ʴLUei~WoO;c wΙpT֌u6.EXdoL79Cd*.wc 507VX?)0"`U& ?6I֜/g ʲ͚n;oCbq,% J+)n쑧hwS['N@Q8lcѷ2:H7>i_7vOmE'⪳BOɽ $:WUo#܈$g+;Eo\nvyxRoXU_ή8#ON+mx咝~)߭,;֣qɁyݚ U1ˎ,_LBlS&N[!"Ql v/DZA`T'⪳ 瘳o}/o{oHәyz+xlJɽ7'OUgge 1QUs{?W0(M&d+F9irKɎLʷXՊ |mŀzq_ټ<;}XE) ư,īŒe9oK188/0"`Yq}~:7S$*h T~B'v 6XMUbT.oik{7^_`OъOڗXsە_!N]A SPR\8r?qv[2K95S}l=zt"tVw@z"Q:|_񥸞XvqYuoņ hC9-L!4ΉD\eVn{uK}U#⢲jSTX2Dzxw2q3ˑf0Dk`]&^/+Z{1t"t+SiqRFs [T%)O{ Vnl,}5xa#stVΪwc]{oX)(cHD\uVq V^&:7 H󵗇Ϊ7Fe_&X+qYv07s!{TX+CBdt~oE3K9?=sD'NS%r"{2FϬZ>9' r[1щtRԡ@h7˱niJx*ƈȟPM5ރꬆ&p8v2VEc8\{/x7n.S&hٽMKcƴ9v*o}Omckc3xK Ȝ_w4=*SM_ 9t6pR^]7:w:>@,~SF5K=k݋e9!Kl_ g;9CWGQʬ:CwG;iab ag| Uʬ:C+q"&Vg ؉,y71#!ל/˽2pUY=;oXi|x/H%ڊtL{ѭd s9H|^4vN#yKygRg~dT>^[6o.: jccyAq8M~9.76LUe?+e{LUecԀ9w_~of2v*kƘI}MmeEXD]g~};bK#qΞ'2V}8ScLm%ц_?"bpl\1 " I0o{ħxu@רg\㬂/HKTm$"VE[쳃Xmٚ٪c`Y8x?ԙ􁣎>"`XYЫ5ع:R"`~ror'88lG GGfR~X6T4՚!ƒ7{66˶S<_/쿳!gU=S&N'gc٘ZǪz%!fR6"`X4uXGԤj^Wj,bɛӿS)NEG(j̭vkPav'USif j,£D'US7'ª9n甊|y/块h mNĝΧyf,-v9~)&'7rrXZWt"t>Llf9 G>e;O:;psr 42tMX-rR%lщzkllsɽu> م|`kӐ]Jr#6VQ :n/g;ge-1S'Ng[IGF=L[Ugn;ў&1bNUg P^&*uTN<0y*g4g, DrDD_TNۼ\) @\KNeN/Ge9. S6XݡDfᄛݚVɞeURd*xfɽ3< w!⪳ar$/vCĝ΢~;z{Ͽq[Ug&ar xvB:a= 'X<. F_/#cu*S$*e`G@įl$lv2 Rp!S&NSw>*g|9,:",Vʢ1vfcelrg0ě2v*kؾ4.Eɽ1Se#LUeS8Pmlrog[oAUeGL;c mUR"`U Gk။mI9yr{&W,7u"t>m)mdn[K-jK9w21u[D'N: K~qsة|Z5x*֖_2Y' fK9qN}XS&NӲ6Lb$|ڷ͚T_|)N35W%* {cU_ Nh kboyI3ljO["hC'USwK(Vˆn#jFBc $(7D+~t;O)@D_JU'_{ԉVky9l&QcjV~95)iXUVaaebo/g;g80|9gNĝ΢/Xz{pΪ76/o{o&g߿D\u-b`xJMr @fa:w:s2s6м5+`O$yؚN [:w:Z'vilHe92D6Vm&FocWD'⪳MmX[#`%Չzy{߷ɽ7 L܅|GQdqD'N[/جI;k;yJ6A87h{}NUg՛].wsppd<":x ߽M!{@S#0D'vif{e6n]?uyaTD'N~|Ҙװr2gvRΑ҈NĝΧqrh0QY8XD\uVUqR{oL !⪳#J^&ޘkBjT'⪳ &J=LqT&ܽ;32-e*P[##fcs'uP6RLʧȼTmR0G1#oY>*WZ7{i|ꨋ /q8uߎK9T:5[l폐Mۚ%Eʊ ܰ'ox+HDr+Rnye;Oq2أOalU~9^yLqYx:Djm|T'⪳}{gR;,;bs>ω1L5Ȅe*3[Yj[Rґ_K`m|DD>U4<ϞƂ#50 7$̔_k,y2v*ߪfcY>iKl/̐VS~9R*SXsug>]Syɝ , Ncq] v^ƴ7U5W8`vX\\UT5\Q@>p搜y\V=Ude[W_wVd4|LʧC,X dO ]>ωĎ;>RZ;oALODoa2p\GubVݗ:dJUflVQjY\@Ę"2Θ>ܰ+qmTE"x ,'V_nL("v"ξ;Zvn(oG"dD|JY[iy+vrVb|ԉ z39k'~أ]nVߢqYfnɝ7֖#"S'NgM=l׬&8-ьBu":ع쎗ɽR$JQNdG'gfDTDjL0$zG'N۳r< Xmܓ33ѲK9oL{QD|[_捁Ev3v|(wlWOUO'l/W;_SۏNĝ΢7v,H&ްe:WUo;S[;mrs`CUl6l{W2$RC+V6^Q:]-[$x^ [" R^ɰ -;n<:w:nǏ5C~f-/圻rnHO;}D|~r\%l.RZXX!_~N/噩ۢqx癍yR9  측ReVD&NŠAJ6D^ɣ!;m;g?Y솠uu΢7F2ݽ7[N{T'⪳ꍽK-}[fWmgSΪNֹoo{o5sVoD\uVUl7ij"ý7Vc[x:Wx^+n rP/@Zk[$*څ][UgqZ(I/Ͼ[o* `;dn=:XR.[6c #`X>H?ع†- ,Bt0.y6w."VE[_]Ug[ [cqsD\uc7I ct`Q'i/L2]-;%*w2:{yw Nysb@"]D;O9G|&OZ%oMIb:޳5*~NѴ/Sة|:bomY ##Jĕԉ`(lv+f-66+##*WUg\/9lb猙 '{#*WUg ՙ5=Qwq' r9znr3&OȢ/~%a]r?P=6EGlh9_ꉽe/'hmb8Qr!ĿkwwG"> 9I )nÆ/9mщz @6-{qYƋļ_&phlz%,0Ip211Aq-:N$,vu1T_k[SoXӏenΔ9@,jCZ]=ԙ:()h}S*6Iuac=T>KaQ-llm59IBc&Fx᷏ƣqU^,~lH;Z^B+۸,VESHcq]f/?B$j<>)`X4Zg?O΂+a`X4,dk4__ǖ-8q LWl i1|ۧ$WKyۙ ۘ`4u"t]fmt(\- rM-C_#;ZYL;O,&yK8߲}^RwA5tl):WUoLv^}y{lARΪƦXchʪ:WUo}U=Lul!⪳荵~~6uAoߌXUUO9XGL8~HC1 MUS N>fc]gM~9 |Nn>=,wCF/zf+KTH)>2VEcX|3w{j;Ɗ5WD&hZX;؂;S&h{[zÙmZ*a^2&eS3sgr-k[ȅG'Nӏ0,vaE:}TgKm"`)8<vrܶ镂/OWHE,"X, A1 Ua1+ՉzCBhp#sU'⪳G>;{gژZ*Uc5<2׭&XfV(WNGxL)[nO T0p-R~pr4 5Lʧ>OyyŁNR޸ï~-`mex.3YQ~4'dSr_i5*h]|ѹ!3zƢ'nXNojb犁&OVE[ D^M??럑*#iuѤ"b!/Kyaݏ>щs9fMk=~,_ Y\ ։nIvBh Nehcz8nwyUƪ/~$}ɽ/nY6CUg[-ɽ7dqYv;(]t1tu"t9#V\9~(֚/lˍ±o;sqc716mTB?{^qu.ޅn[wTi;/3Ñ/d_̪R9,l?^1r};^".2ƐllroLD\uVu)T&x^*aK4}& #ˆȮ}`,=)7"zpţq')ɒ[R;ЍnvKdKicfE")]l\`bz6{& ۵aFG&NeN22ý1rʢMN~j`ro}AUe#'P{cꔏkXUqFoI> ߘ\_`^`$Hl K0'dFTbk9=V_<"e=i&P!i!;OEG #e@y'$Hjh؅_u6oGlKaQn\<"Bp7EU%D99q)r6U~?*SiW߿- y0mm4;_^FsKT.o,>wG>`W"BQXTE=annPf=A#3zJ U`s&vX^N,(MX"trsa(f͎`ةR^w{ԉބKJ6;:~)gÿ0Nĝ8Tt.^GUG8!vۡRn6 E&Ne4`C({g6N;D'⪳Kvk[f+~qYVx؏mr g,=D\uy畹hWǍ8ffK9'D;P7u_~<$&6aѮ-ƾ DHa=gYW8F"Dd*Ƙ *Aɽ17E&h]$,VFlXU֌6h(;cO%9VEcHx^&xT@>q荃2pZxw}m̪1Qxr66f~":S1p I]0/,?߱|D|zs,ews_ʱ3D|[}& '@`S$p͐/Ǚ}ttWΪ7"GOΪ~ɵbCĞ*UcP &8f_RN\2}\cMdrǷ@ATmH%tԳZ7 I.Խ7Uo ޙc񝷘VYhu)/ǭoY#`UY4|+AUeј=^&ƸXUq'+ Xx'~̢2V'x2Ay䑰g=|_yuf)`Gm~B<51~`I [BpRnâyLʗwk{3.w2maV#oi ,B#ء[_rqUd*ƪ]Oc5{cAUe~({Xf%"`UY49œ%~&w4rlUv N% gFB0<F8_qAԉ:3ΑX7m#1ŨK9"?)an֩q?:Ǔm"Լ3ccED'⪳ 2v ;olxbMBaщYV8klVa,b {OlDE,"dc{c)T&a,~pFf>Չ{z^GkL=Ǡ:Kvr<Lʧ"v9~^a ײd_ʱUMb6q)jKG]-s'3'aq荷+eM;i۞Ku":2[p O*N)ՉzŦHd:0"y_/>=QTkg޸53NUg[3ڃtNEfXcog{kO#5rq  N&<6^c}ñϾug}瞒KygG>ǃjD|"eeNb6/o:~) 5?ԉx\SNL6+/Ɩ>/Չzf"=fe~ýϚb*`UYt_t8!&ȓرLUez&ΰm׬:Wp_l/qi\CgK8^Jya|?oMƧM?!l1>*yK)0h|+pQݤ:q@:@ kK)o#:dS" G^IcsNVE[#Yc%y2vXEm5f#~["яI#Ů<;\Վ9q_wn:۶a&T%~?'R6Kh3,؞^Bv e Go  -!yfV`XU;Zɽ1ި.')`UY4fy~:yVEc6wlroKXUaOB[}!۸*2VpY}gyW}s)R~)g/ƒeS'NَewnmR9#{\RQة|1~h[Pk8W7]4rS&,#w^&p8/WUo8gDSyy{kX{!⪳Hl%Ǵ90{JLΪ74W5?]8G~'qYƑ-'~mrE%o|qYV=:lz{c3K/WUoL#Lz?ɽ7Z>;&5u":55NE8ӭɩMԓ+_O\vD'NMλd;odnO awrD%1fщt}3嬽YcL+ׄT~97g.cܛÛE%Ne Nf:D'K7'w_̪3V "Zw6:écJĝ̢ꋜ}w;g1};rqYuSS-<95[@Udּ6noW,EGB~KuAЭ$_,N!"v"j*38Ewlj9Y6n_Ro/N STĄ/AGw8t˵C*Y_{乍1"`UYufm4`+qf+ ,BgґswiXEma㛳>Ɖ-^;1$S$*hmMlYS<_VU$LFڭDv\f| *RgGٍq)[ͤn738 FVxr6ݶ SVL՘E< H=/A^qY<:}\pԴo>NUg"/߷ɽ7Zj;!LUeՙ I9G5DNCĝ΢7] vP^":5Λ=t/9lbX >R֎6z_Nt uz]X; _ MƗOdLӑ=l;7b~9\JnC ,Ӷ!cɔ2 =š!侎r4T8?5*F' p@ؘ?!hגG M4[8/=zV6,]{Y8f{ȌJ̉_hp{$qana%d|GG~9H6vVΪ7i9Jx{ ϪqYvr]cxy<#ѧJt"t!}@h`&ެ0E\uVe+<};;Ƽnщ˃o*Ow/vS/0Lchq'-b8c|y(߉OI/V^٭W4"*ID\tT|)?#XElUKgΖ`UOw  ,v7VTl"xcY&vcO+* ԾKv2Nr [3} {t"t>p":lK!M8C6:NĝηG#oxxZꣁbT6PBM|9RO+S%"jgdA3lro ;>HHq){߭u<콃5~82"qYc-{#2êqY]xmrҢqYvr-mr:"C7WS'Ng[f(3C[㦕D\uYO,W| FN>D%NӪ۬`œgX~bafTMNĝηOY#shW~9_G&hjGz63{-+2VEc=sd767ƦULؼʢ1>elro}h*XU᛽m}|l5΁RU '`s8w feS|)D<*``5w(0vS񥸟3:q|Ndmoy8F}g8rK1"bmi=/*WUg!~X}X9CT|9ʬ:<;M윱ohK^"2ΰ Q;_ٵ숎[ǽ7Y%A`=Y8E`y@dOhxD]֓<:FYE4RÕƭ>f/z2vꅍ=-4+)(''˾ž, 7|7M$4.vn%?tHgƁ ˫RP/Š7;rpZz1(q`ò&,)_5 F8, /Q1aܸFGc XYѽ2)+acVEa9'!lV iV߮ I,?hlsDncOi7WEBc=*98ar? nr/OQC`NUQww(&|p:b' ɢ*\q븄r[]GŖ+lq`eYVw:Oa°C 5iXYքUܬ5j{iۤp9 tvVse \Zl~uJL7<!D=Y7Ƅ7ؐhSq!0"4lX^>S[6zDr_| ~[1 Ix<\yqjd n2S, .<:uK~hՆ1Ix<\yVhmR  , <~+sZd 2X⇈#sr 6ʣ_xҘ!BCܰq8o/pj10:sb*9CipZb nk܋ÕgU[GxhVSDʳGK6M5Lhc <nx1ڰ:k*FY,yos٘n۞FUD@k{Չ. ϻ1_9(ɱӮ;#0f2<nx^S]dF8CyYZd§ُ",.4M5 OJQpVUa3vFvlۆ1dpYvp@5CMU&hXbXcΣO؈bIS˵kādQ`[9,|pYUEQ֭x\wք(BqAVw=4@vAR'p~yÿ'sQapR[i1|^D[emvą$U^ [ {pȆs ~*L=FU7cF-#j[N͈?qÕgUB{Ha 6兇Ua,bP6q+96WÕgUS|?ĭ[D<4xj!=o[mHAGx+vjnTqhþ-׎@?{ 0iذZӾ;:[Fo) ?x E/H ϫu"SpvG:ה@RSFPGxҬ*cv*Q`-w=c,4hVل2쭰n=J ߵP6aU׏|Wy|xDu+D牟wjp͚<nxޅ3NPX"CGXsГ=#S ϫ$?`8?B3+h&ij]ÕgQ'帏:Ap>{E(+Ϫ@'v6q )ćWUmHf&vVSLߝ)+S8ɴ6lǻQSϻxQ2y*=M)hR]Bʱ( A=܌%VFQ%,4\sx&lm!WUex `M(c&6f+mDTq,>q>Q|Ε# ,,_ݖwr7ctٿ(i82Y _U|CļGx,87~<Al#>/<θiw! y8jObWF> 9'r9!,Ɓ ˫M}t[3VU,P!)(9aGÕeU{5T0QՃo&{AH85QIGÿ]8<\YVuAdgE-3<\IEu ֍J,a<).,}r-͕exHESzP*<nx!1Fb$@HO98c_-~j`(V{ʻr`ZT"ؗ8z}X<nxUqBa nq\Oi,8@|(UɶG?4xj"U>ĭ64Vs` \\  ׊wqGāQJLGYџԵ*q!8 ۶ocq8ayN=U+N+Jb̚1*ipqXm*+Ϫ3L8Uĭ6 GÕgUCO!x0qlWqxj+]opVgH4"I/>0sȵ {un ~*)\c7w{,^@tkpk.…Oőd5M ;/h" c6"? tS~xjfVĭ6ChIx<\yV1[[m'n5<Ϗ+Ϫ6:MTyְs1Õw*E62NKVؖ8#M81:&wZ6[ 9]o>3&㿯u2ݟ<f$2/epyךeqʄUg9>F| VEYXڴcc5a#+38CXIec` Y;.$$rrOȪtfkyXIU5ݶ+.p7td-d3Sxā݂:rw̱ x8,}N[OC~ 7+ͻM֘C,>؄`#]OΥb$$*+TB'ld1=+ɢ,|[ō[VFX\\yVa}򸔂[mOÕgUM\Ӷ |\8w jF>Ocڣ5|k0gpngޘD=e|3֚;^?g r#)<nx޹ECeRo[=RTb= EmȥqVaV[ mԒ(+Ϫ-xhƖ==pYVyEt  ڸ~al1Õ]Bs!ecF×3L4 | Ө^2w?͙0FnlxҼdr }%Q<:;CSab9+~8,b@K{Vք‰XT8FbQ'w Qx9+ɢ,-FV>ādQVCԵt< Y%ypqH7(M <vSNTla'4y<}@cЂ\ eJUx!ZCI7 WAXFH'V׫ː<=OSߜJʲ +4^&n <\yVqu7Sĭ6n'xjkw0q-mq<,jK]{[ 0q-f]ZOpqTٞDscTW&3葵I+39zͩ9WTHXEdSOU3q ܓ ^.,nhU.r22=bx s`%YŹxEꚰх>JÕfUYytL 6ʰ*t{*pYUSnu&l1T}*߇ p]q3 Xk;S(~*e2Mjpn7<ﺱVGV/ 8I*@ AS`|@~q7$q`C7b7^7ң5n}ɦXv4xcE ʳq6 7nk7+o5j(#wWox ohj)ߎ>4ڇmUEQXa2oJbWM_±_T8Q6AܿsJ( <6 HإhJS7b6/h/UOkW1URsxyø޼ }4GnrTT6~I)kƁ ˫kU.o;cfuWT,TC Ϣ6w[)JU%ǧ2Ua$a7lqg;bP* ͪbx(/pC+˪2u2?M*VCFRGD,cU=k>fN6,}GOX 4|GVdBʲ M7/Ǚ7jT!-;p,jtǹQֹ`w`XDs&lTGr`%QYO6E9<_w5H6jƯXƽjl' ~[? h|C`}˿Ǐ-;}6x@퓥o|J8> s> *~-cX-xs{߭w# $_l)]yo/MG wO4~o)W^C!cXx$#󻋟`IVwR"`[o(w '7{q/?ogs~?ѣp(,7Dyo/n jBWm'aq]GO}mB{{q>w#_dXa91կ qC3W0FTYro/,5LOu ï~fy΄9Ϯ;όb yLr3 aMɯϟgbs<ˡc8*/,$i ]_H?}Kygǜ{~7~_?_O'.eS endstream endobj 9 0 obj << /Filter /FlateDecode /Length 279 >> stream xڕn0 > stream xڭTn0 )D%`(ɀ߆].{Cvu>~ ot\|.)Ŭ;?b!0a!PCFjlMԲc\oO+> stream xڕn0 I#+Hz%BڶatvmL hx0Fһmp('{W(GˌNŗJ endstream endobj 18 0 obj << /Filter /FlateDecode /Length 789 >> stream xڕW͎ SbHf2J=ϭ=ǀd2VH 6?ϤLVavΆ(Q =H]k ql\x?Yƕ5duOl/]gi?"{ F#LN+@a Vޏ8ʀnC +D}`BCi"BfPۍ{ʭu^CnvS*9UQ8_B``Bx.7 G#DFyYo1ef-}狷ND %-7RIzz$O#ĿNG rF}jYgMB/JP=Uimj[ֵ+Nz+G*? Ğsf2 YKw4IE@ƷVZ̩dYS'_OmOB'?+n!R#uw!Y~=s bmҠ{ee ,[l_6~_ V'IHà;b׎44I{ :~;7<.@> endstream endobj 20 0 obj << /Filter /FlateDecode /Length 280 >> stream xڕn0 zh Ri*>l@$0.iPm]\-?;&:+n5Lgx?+ex~`~"L endstream endobj 22 0 obj << /Filter /FlateDecode /Length 1431 >> stream xڝYn6 )QEj@ϹZH^f%E=3o@O?h&&Yл)"X0;`~L~l~\~Ϗ|Zm]%  gUW^NCLz"e=UrɇSKF! ${%B MM U /$vPWWʱ_޾n#r nH`mxgZjXVh}߁;~ Ȋo%21]3oy⭮sVD|8EEz&<[=6^a:!^t:" 2{&NR@em2RQ— )kN[-a*j?x2`':c'$ùUGjOZC=tf9r'Kz˞7~+ ⶙O\˯"I/w]T} 5- \yX!ߒJgܛEq=0Ϟ ^2Chak֬׻](XGuȾx{p+$(0Lo,؀$GsF/` _wziuB%fm81YWJRb}\صP FьeFbIC$H-  hO_.Y8J}zg&7a".MQϲ./V.Z$gqi|Ƹ GM>[~TDȣՋH֭?;? endstream endobj 24 0 obj << /Filter /FlateDecode /Length 279 >> stream xڕn0 > stream x\͎# SFEl;@܂\\Pe*?ݒ Ϻ\((*}qo??{t`h0Bp*u_=5c˵@X1?q,pSr.B/?{Y#3?H+OPF[8xЂKw_eNԍTYߟ2@q&g;bLц&'}e#2ű?5@ziGH o?+D0ڄ[īuIL XD:gTp.inm@P&B%WZd pLiMܓ S}U(]:sP^י?]TL ;,r^8|0K|ǣ.\~{a˕y-Da'%^ /zߟݕmu0bҩ%WZWxl#ׅe$/1t) Z]xEo{}ǵn< wN^l &Ƅq\J"9aAzLjqA%^9 $i S ?q8ly0`{^{J@pѯB'aWx C{i+4wVרyB(hVMk1*FEi  6hP.d4] t+ͅ'!@t!%I8?6e+zE_|uoYv\>5zhbԸ`UN <A$K5Q.8$eڰb $iΫŲ9^dg_قmcO-nV7 B ;n[U$TDApm35*D-C"dk3vk'x(T 4~;#THށJ$^Mn1檻j DorCR,(^؂+RL~\W>7)hx4N9" (ʙdnEp7"gsSQ*l7Gx]>lS}UƦKT6,A wKQ(q)S;LQӽ;> yںӈEm)OlH3fN*XC wHjS!f!RB4VJ:ʘqFLrA-$1M[0Em63;WlfT(6}{6`d>)RHR6@&Pf9G -^"nkD,`0GT l4ɩ\rϗ} HnnB`1ɕv2g)7w (ng(DL|q܄QF-N|nV\x2l3NN% EYbڶ|]_h6|g`ap0@oIogc`Ъ86b@` J3D8T^Ѧ"i6h^1Iq_zwITzޏrfQsC6dw>4O@sOtfw#|Dfu0mdV3(RINb2&@VdDw5M*爩 5.JZr.Sɾ%JLb^Ĕ$c.ؼ-5T險*`ƠD2&M{j_L!\!-ruzyluDlڐԻoshzߧcG:RdwǟP(AK@ Q+Fi`v,@vਢ(ꌋ_A7UPb ˺6Lj[FT ҷȅRvNq/c-Nn}5%oغ'q# Dem}i{Yvg4ClbS?M&Nkkt&>n,詆/*\m5yzRh2%+G%.Vʕ庯{Bv/oj?cEna^ӿn'xpFН} ;y]TzqaPǵȴ4ȕ:M(L S֌~%t޾Pg> stream xڕKjAyL2}t=n6dUl1p6B"E뤊7(FWdZ7R2bbϙ>|ߟٲ[!X` MP|shT iJE LR~XL5,6݂]ѸT!;jI;n82e2dӕjdQ1Ͽi[ endstream endobj 29 0 obj << /Filter /FlateDecode /Length 2671 >> stream x\K6W"`w,䰛$&$%R"jYvXW"%9}` Fi?YcV0}qN?ݤ=?{ï߯ U-޵Mvrzq'E0߶+y-UZRJƏŏ<~B|]yHҽJMR/~J \P~r5.WVPt ^x=/u (` w P ςKw2p٦3pNsV@gvf"bF]D yݣ^EFk29@*Ens߯ʧ:%$q˱aB. :t|pY/Йx5 m Zdp Z;4v/kIsc>(yIދ{9*rj(%\f1]ã炈*}|iƬ`HwIFE),f)iI.CYns2^'1y GMΟXjU&12 eu'c1_1DUb8IJNd[1-q0 C Jqy JXq/u&r$b șhRڎL- Oi?JբQ)]xxN@p%*g?.}LeJqĠVuj;`FcüeM&RHrCset m͚:k~WrwHw$cUNݯygf*a(g\-?$rO13;d9r%Ě8h"ʁWW!>Z.AQHBđ b #h 8 Kc]!OJ)ΎG++[C1!ڞpOb!R Iq[I90s6& ӓ2G׀!c`.+X:f+1=lcԆ)E-`h~U9v`FX_/JmAc߮JFYi' 7:B8S gޱ\Q5zT(m h) W,rJ m\)̣4[T`Px_j4:q*zUhLrִUȖzpϞ GtaPU1/Џ-a82 DՇVR$*H-[>!LE=Kx#4.k 3PȆh \&Nh/lYF/aYi/uz< [F\mN no|Y9-5/a @-r`#=6[焌J6`qM[U`Rcmzښojy-4d; ]weg=<_M"kׁ.{:0Pnz˻]^ܹ\)T>rmۖ۴\HÖzronݰ\SY /dx\s2K(|e[}2oXT>@`݄]{={02K-^CW~mO>n]JpmwX˭ u`MDWQXw S:v:^/ioq%4o0=}20 ѩp %``qN["2G/J%.Bix6 1;Hc tYgdNQYMe{aW ۰YjGg a||Pw'Mlھ3Oha -Z-v!ꄖ"/% Z iAp9m/mqq24}?p=طu Gkz`zJ/Rm]xf jގ13yTߐUjqT.:vooٜyFzFʊTv/ѣ}UF.tT&^H;َgxs@z Di?bXVytƵ=0#t"B :ۣ",ޕ2)JF48i@#z>NKxc4Z獒;C;>1µڍ<,FstGx>/JDj̚ g_#LޯژiѤ gb6m}RAD4XaNsu i |)]5?Kg%((4[4}e;pmաml0|*Zev'W*Ъ;DNM_U7@Wj5 "Pvz V7_{H U9oūoTyW+?=D-fN7|sWXDZfn*_uyz˻U/>rwXf% \ endstream endobj 32 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1360 >> stream xڝXKo7 W̥UDQ0}8@ZVЦп_8;&&)>>>w4P zzc O_CqOw_=o2°0>F4rbv*MX_*k\Pi&8;D=a眉ICm>cuүïb6<;?6M[E_3S<++\?|26":G|#/GrŦ M⥅֗''Y*!tcdN|r4q&NZ&3o X@d"EqY~CEu!qn(zN0)AvE0 ݉m5.mo*rBh9H[@W>:1XCsk'`d_Fo`CcQPR8uw ˟z9PCdr[,bbϸEr5L^hl{r]px| N aQ 1+c/BW<+%(iD(%ܳH8'zK5BdʀY`Dd\-v ;kKYF`` ޼D9QZ>뮺pE=rn&fS <61#ܜR5l`yPQPP̿_AEiȨr:~ ZD O͋* QZhz(yQy4^ԈyP9=ZeMV<S}4$s2)pN/3Q5pƨxU)#kZx%a%할QM\IqQ7↶He>&7T4m_) ?|.\b_hG5lw`_^n%eNr:=ՌS m>zimv4_,!EGT׻ \kY2&O1hĪs6R4tR1x`Wimu 57v]\Qsþ.7#ٚRwӖ-䘕n@ѯyL*\^EC-;Uܨ4FR*lg-!*gUOJd3/ҊW1> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 311 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒun8&aw@qP˪T}y^\rVC?ܾvFruu9@[Nk^4:ld1$5" ,xĤ cR2bw2-'7M~pg]f*Ѧ˼i>~]:QE{D }?W.qO>bydd!!䘓,>aL1B>ھ{5se?'7:ԑQRǧvcfo' ۜN:nٳ \ endstream endobj 34 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 902 >> stream xڕVnT= Sd/'ı8PHH,@C,,x}ɴaPΉ/vq8l3`<[$:Fȼ[g2?~Iwo|[~d3RH,聋ߏZGvhcN.aT!4>9b*3?oҼzvBg$frzr 8s$(3pY\Ýy9Wo0"8/o$38"Crx!6_e=(}5_RQu*F?0rY1S)(9l ɛ;J,9Б +,b}Wk.CUN׾yzX&Ֆ(7%x "Fft@<Bv >Hl 1A[Sؔ {z>c C,Bx)Uݥlkmn;nk LY[iHz Վ_bzK> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i7ciK%@۪4sZ% WXV'WAU.|]]z ˯jzjS}V歫6ؗ7B+tEX[N!g#C ɨn `)gɠe&mq95^ÝvD.cv!JJD9TIwϕK| w<|IRrIE@yi?~!xHmߝ?WȨX)S;1ϓR6'4[~ endstream endobj 36 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1356 >> stream xڝXK6 QDQX yl=[C IeRI8;)4P zzc O_CqOw_9o2°0>F4rbv*MXl B5.YO^uo4_nqsDtCi>cqG{k1ݝ-")XQtSwŔʉ>|r]wnjk6RmѤc)d/zXi<ˮpEsn&fS <61#R%n{E X# qSQtJr6#(9 Խ>Ѳ-PEexUrP-RZAVU! WO*\2Tq ]V^]4+;.rFЖۄ M2w0FU-c+EaTS+]k PZ~򨚍Е$SWIS0X2Fqx:!G/uUCeU丠hoz1wVmS{}̢S jE< =?nX:-p5jJ^Q 1-8B8ک׵% },oF 5%7-/W 3[1+k"T__18Zry 5\f=s+J:?մl؟%GbV5*mͼH+^=ĠeQ43G|y zMc~MR^37T2UStb3wͧfi5ܧ(OX޴fDq\r0j;'5hUÄR+WޑUfҗJCxSaB> %VQDY&Qo/c߫ endstream endobj 37 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^,WmQ=Ė׮Pp⴮.ҡ~iam9݋F 1&$xFD2x!%}aLJFN/L%t7OPߟ QRU'aL5͆d\#EHcN**γL3<!}jˊԛO2o4)^u#:cvcfo' ۜN:nٳ  endstream endobj 38 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1044 >> stream xڕWK7 WңR^E 9ylRt$=(fuGR`ڀ6!b ؼbc~WLJ/_7߇!L7[D!8Lxs!U=!GT*K}cu8qVЄWg8=VlRBL87/A0OsBrNt<>/h_o#9mFd+0$D/y^K).w;}lMāw:fG Pt)Dj18˜>O'EGd< }k89+C1b{H:֠6JGHt唆o%\.PJLϷo 4c]>|UZܨ.咙V`cAfh=˼^trh3ҭuaThyTvgʁV9j?q7^ܢ $3#8u Bj»R\NYڳ|wݏé'1};y۷&h Q\`RIn)>V_<\ ]ȶv\5.{ k8giYuՉ]XOR/R-6ݪr%mvs%5Ĕ۵u^yTߋrL:i'lZAv+Yd]lOƛapXz޵+Qb1{>(mp )5I/X)x4]ji?/nutRόJGJsG1GWX> endstream endobj 39 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 312 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^+xYz-]ѡwi]]=BV,r9bL.IF7xd6C4H9K-<1iØ؝LMm_5YJ2o?;fNT^5QSx{|L%>XY>YdH)9"> stream xڕKj1D:EotSjM\ "c&׷㟐''Лey23%Kl)MBjK{73Kv-@Xi&$dӎ&łϑtR$ eN^5y Je UIkMNYES,o̐P\Y!A.UWݎ5OPנ̟wl;{Ŭ endstream endobj 41 0 obj << /Filter /FlateDecode /Length 410 >> stream xڵ9O0 7f{ $ t3X-IޛSrh?rI R!Yy0+n9PJYLLZ\^t&"'fv>)hC 2uZZ+=۪ԡWWZ@5+9$Y h|7xdBulӫy9{0[a4ULP|1F2DI@<urXDheSwm^[%)y~}୬̝l#ΩkvҔ:NxvqԠo;[QX Yjp ʽi'JZL'ѪP&AD:Lu0;}&?Z'J5T'*j $j5Vwy? endstream endobj 43 0 obj << /Filter /FlateDecode /Length 412 >> stream xڵN@ <4g<Q @@J(_ZxLJ3=l嵡PДp!IɀSդ4pܜ.$`ZզצD?Z6D$#$f2K$P嬚6-ؕ^$U8+mFR c8-bRaWz2=ܽ]?\ҝpys4R&7"`cꌠ KplsUP_IZT 5I~B5tJKs5{Yz+k7 gD{;n儬{Uj' džñ#B$*a;/D&*zV`jtvzhx+D΁̔> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1360 >> stream xڝXKo7 W̥UDQ0}8@ZVЦп_8;&&)>>>w4P zzc O_?><}t]&) ;ct@/wh f9لAa>% _fۍѿC4cvΙ1Q<W3:V/j:Ȇ-r f oE]"b Q! 닟P|}k G EIS܁8, @1)bl,bbϸEr5L^h2'w_W͇ഠNo8ߙ;"t[J J5'%}f 'p70 RMkE"g-٧2s,0=t˩ݤvBNf&ύKYF`` ޼D9QZ>뮺pE=rn&fS <61#ܜR5l`yPQPP̿_AEiȨr:~ ZD O͋* QZhz(yQy4^ԈyP9=ZeMV<S}4$s2)pN/3Q5pƨxU)#kZx%a%할QM\IqQ7↶He>&7T4m_) ?|.\b_hG5lw`_^n%eNr:=ՌS m>zimv4_,!EGT׻ \kY2&O1hĪs6R4tR1x`Wimu 57v]\Qsþ.7#ٚRwӖ-䘕n@ѯyL*\^EC-;Uܨ4FR*lg-!*gUOJd3/ҊW1> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^+xYz-]ѡwi]]=BV,r9bL.IF7xd6C4H9K-<1iØ؝LMm_5YJ2o?;fNT^5jd\#EHcN**γL3<!}jˊԛO2o4)^u#:cvcfo' ۜN:nٳ  endstream endobj 47 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 903 >> stream xڕVnT= Sd/'ı8PHH,@C,,x}ɴaPΉ/vq8l3`<[$:Fȼ[g2?~߼xp$B f `)F\B>rCsr 릪E SVy۔ճh=#a4km8CՓ`'Fx9<_]FSdGdH/櫬x<$*^ʳ>OH1"+Hx6% $s@%:dE%YjcaH*{=^ˤo$?u@0 `Է=< CN $&v#)A}yh)9!-lY…x:*r]s1т_@/Gpz-y8^p`bsDDiu@[V lNa`s^(~d) ɻ1|&E׊7(`fn3겎NnQYG=^a*MCrDvİXV*%,{U>-ZNvv4WE&4Mj7"hcmt~נ{o)^8$Ռ=Bø)gWNi:`tRwtS -⇛[a{U;2N>wG]yh%l endstream endobj 48 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^+xYz-]ѡwi]]=BV,r9bL.IF7xd6C4H9K-<1iØ؝LMm_5YJ2o?;fNT^5YG!1ٟ+H>bydd!!䘓,>aL1B>xHm߽MWȨX)_6'4[~~# endstream endobj 49 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1360 >> stream xڝXKo7 W̥UDQ0}8@ZVЦп_8;&&)>>>w4P zzc O_?|xKMFRv耦_@.RCs K%[|`K֓j=>ᗷ'h83b8 9<޽ygt_~yZ<ݝ-XQlSwŕʍ5>٢r]nkNRI9bT_ 'qBy\y@,sh12Gh'>9sYt8S'-7x݅d,xoq 2Ȣ8ʉL?:PmE7PtB %I (eN\Oh}Hu u!n[W DAߊYE^C?#J4z #:`;`(!@29Eøqyg{nQOJn|d@rVvܓb{ƫ\hpZP't7BpE'4k"OJqMFY $Nn`V׊N!D΀[O2@9 l^nR;~?C%Ό,#00Ylo^Y"(-uW]9LPQwFDݑHIF n R6\9qc8'FvYzcTe}䪔J`l-O@쒰JШ&$qC[vpcʛ t}tU㶌QIQ՟BOqzOwtI4@Yͣ6;//CWL_A'9N`Aj)i놌66 T;/ ՐアE]Y.[E4bËy zVtf[s@:L<0+ƺw^];u\ss(湂a_˛lMM;DKUirV ׂ<&GK.˪gnT`u#B)SGdzږ?H̪'@قCmuiūW[T9Rfh0oAYԪr__*zS~ H-^[X[)XOӁrCL/mhMkfw',ߴ/$IisiԢUJ]X"!r;U_DgTտ,+ iM o ia(9"jߜeaai? endstream endobj 50 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i7ciK%@۪4sZ% WXV'WAU.|]]z ˯jnu\mHly +z f֖ӽhtcr1H2j[D$7!AY2hIƨdd\N&wM~p]f*Ѧˬi>|]:QE;di{>$sE,,,B'sRPqg)A#RwFﱽO$FU:23V sdaԱa =߭? endstream endobj 51 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 903 >> stream xڕVnT= Sd/'ı8PHH,@C,,x}ɴaPΉ/vq8l3`<[$:Fȼ[g2?~oÑlF )5=pqB 1m%v!&p'GL][emSWNHz5ѬbXVOng$eN7y3:۫7|u}NYK7l!9 ؏>ܯz)> 9Lj u)ڔsBH6$Y^HVUd>5Z!٪dk_{=,jKCHCl#C: DRD{ !;y|$6H\ycOe /u D Cex)Uݥlkmn;nk LY[iHz Վ_$gl endstream endobj 52 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^+xYz-]ѡwi]]=BV,r9bL.IF7xd6C4H9K-<1iØ؝LMm_5YJ2o?;fNT^5YG q\Gr#' !%ǜTTgfyCj=7dhRPGFuJ!O<>O:99 9tܲgu+ endstream endobj 53 0 obj << /Filter /FlateDecode /Length 424 >> stream xڵN0<4ό=c(P Q C/r-x}& !jeU\s7n|O3K!F3ȐaTtIh<Ʈ lj^)A^BBŘӬ>wd4KL#=?xzۻ ίnfe a2K=Qfײnږd{UquD hCfr1J륽PRrCYsN#s aN4Of<;8jvGbX 7AT׃dXU]ԗ3\@%T%!VXsNB꽒;}֙\_w6PՓʾ&ej`nKExQvpA B endstream endobj 55 0 obj << /Filter /FlateDecode /Length 414 >> stream xڵ1O@ |[:Ƶ}WURlJ(C~»ʐ?;(a\\IJbrb9l_6dVKHy+v!p_w$[g,EDR_8Ca,s2e*(j#=;x7U9OFlP+IuOXTyZUΛ|yqXߥg3a C_(f ZݱZVw m܈5WmxҀ5p/26uhl~D$mam&Gdp󰛑5ydj;T,6t#C&AU`U#s5Pꛢttv :7m2LUgy05}ia>Fډz:ƽuÕ[0@n endstream endobj 57 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1359 >> stream xڝXK7 ﯘKVDQ0  @-VЦ6$ )q<;~vAOa@o,~xç/?=]&) ;ct@h f9لAa>% _gѿC4cvΙ1Q^=W3:V/jauo- Oo.OMws׌ih,(6Tx)ϛwlQήgOu5')LjNѤc1*d/i<]sUZ%0' 5$4+;.jNЖ,DŽ(C2OyNjܖ1"0S)N Ε5(+^yRFz~^)P+$ǩC,H#Z8> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^OW\G[n_zCӺ{ BYt/r62Ę\ Zo lhr Zy> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 903 >> stream xڕVnT= Sd/'ı8PHH,@C,,x}ɴaPΉ/vq8l3`<[$:Fȼ[g2?~o}mc8H!.?Vh!fڡ9uS"䈩kmJ IF06BL!M0D̀^fq]<wSp{#)kRF2#2$bUs[<ۇQY/Yէ$nc C,B> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^W\G[n_zCӺ{ BYt/r62Ę\ Zo lhr ZyO:99 9tܲgu- endstream endobj 61 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1359 >> stream xڝXKo7 W̥UDQ0}8@ZVЦп_8;&&)>>>w4P zzc O_?><}t]&) ;ct@/wh f9لAa>% _fۍѿC4cvΙ1Q<W3:V/j:Ȇ-r f oE]"b Q! 닟P|}k G CIS܁8, @1)blqټ3n}=@`\'%S7W2` 9 ;Wv1=Ua.48-G!wL"t[J J5'%}f 'p70 RMkE"g-'  6LDOe/rj7PS١sgFk,7,@suϺ.\Q|[T(.Y~1hYALMdΐA/e*b̀b *2MCF[*m&}؍$dxj^TYPF @ɋʣF΃ʭyB,kDXr!7Isbxadh 7FUKJY{. +ijJ⎋ڽ7eG* 719ȐLݧ݆D.f>}G{MB!?Q;I-Z1J+B_!SO${FUYk򽲐,޴Fs,Y&1o.~:6 endstream endobj 62 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^,WmQ=Ė׮Pp⴮.~iam9݋F 1&$xFD2x!%}aLJFN/L%t7OPߟ QRU'a ϕK|$w<|ɐRrIE@y0a!{<^c{YzI&ūudTgrsdac@I-{Vw[YI endstream endobj 63 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1049 >> stream xڕWIo\7 ϯХQE[9YuRO'^q'?ҳ3ƙW ;!@Ȇ$h?n~11?{C×Ðm&ћ-b}CVaHU{ ͦJ%*Y +xh23}+F""ZC*Nwހ3$MT,G'?/;szs{?"8oHf`BrMt絔}8}'-Dx-;gP-2# eNvͧ"8$2"q ,hz( r>C!.4B jP<(Q6[Ņ3Ü&Rʦr"ihn_bƢw͙e Kuc(.咙r1g 7Z!s C;y=$.HL3^<!IHcˆrtΔ"d$瓿s@'뒫 g WtLYz6uܯ:Aj֚.EdbC4Xþ&Xx6@ru7_*R.[c͖1:Z76Sfn7PeYWkTCn%GLhwhC j(p+q-`Kr<38.PȰ)&[ (%%M u I=kGո~tp-mߚ RJ}\ZZU~p-t!<;[櫕Y&SxVnX'\؅t+.yn9V3,o+9]Ly];^yJ(GsqR;ɦ4IhR;ݟE5d{Z44]u< msbzȚM> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 312 >> stream xڕSN0 +|`lj 4i7ciK%@۪4sZ% WXV'WAU.|]]z ˯j7X6gx$ؼuuu=@{Nk^4:ld1$^-" ,p cT2bw2.'&k.3he4>CpBw.DI T"j4=r"GO!BJ983 S^V|yQ}+||j9fy0]0pq˞V0 endstream endobj 65 0 obj << /Filter /FlateDecode /Length 429 >> stream xڵ?o@{m(wQ D]t!؎\N:]̾ÀRj (B.6/QUu &Z}'e|4"Yb"b&NX> stream xڵn1 pL;vBJ*ͭRgfg7ZJ9$c JBKTT)U$|՝o bcLfUc'zf[$K 3X(B@iVF8OU&|_)- 7Ă9!*f*IQN Hj:.wM|$y90-9lz/$͆ÍN/[`5jUx @]od!fj)wYKgGǿ#XiV<1av 1Ŧ'8]\zm`9I?! $"(/n+QA?-?Ǫ| TmgkױX\|R;+'SB endstream endobj 69 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1359 >> stream xڝXK7 W̥G+U  @-VЦ66HC~5Rxz$R$?>g<_(G=Q e~LJ珟6_7}Ha1?1~٠]J&gzj BX7q1x'uk< #ҷz9ti1 `0 б4~謅3gO/ï;knszj]_SaSwŔ l>9Ͷ;gN55#)LjFѤ.Ci,W eEKe[8Fmg;^ljxO2$q>-D&YW #@{QT_G-?WȆ"L} 2t#3F`>[bdCE\s+ DAߊYUD^];#J$z $nh:`9`(!@29EQq\a.2[3Z,WIݩ ߍ9H.#mcUaN48.N't'By8|I%0kWU9iwB qw)ྖt !r<}bI`IZN&<M39,&b{J0gG),Չt/01 E^{ mcq )U-9*#JP˻TEgULoAq(޻g3qWiAKkm'/*ƫj:*:Ss"]$%Co 9ra8'J gJvV Y1>SՓclMO@ir X {uѨ:;qC[f2ncoʚ4ɴ68FU-cèO(=*k PZ}Q endstream endobj 70 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^+xYz-]ѡwi]]=BV,r9bL.IF7xd6C4H9K-<1iØ؝LMm_5YJ2o?;fNT^5Y q\Gr#' !%ǜTTgfyCj=7dhRPGFuJ!O<>O:99 9tܲguN  endstream endobj 71 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 903 >> stream xڕVnT1 WdrB'PyHH,@C,x,}1 ҹ#9s3ƙ+ b`&0,Ǜs󷹾}뷏ۏկlS4kR -PmDͧjEYO1"s{t͋$=zƀd!U4 F*7spw^.#ґdGTH滬xܧO&wk^>NHD R7>M9K.&dca:e +"%YbcqH*{=^ˤo$?uCla8 DRD{ ď1;y$6H\@GN`S H>#ِ!+lYEz8*xr]s6d{H@/L2гVZxʧ"-ƀDo:`PX}'B9c6+ЏvcBn9t_'6Osn3겎NnQY#[GKF2Uՙrn;viማNND{ S/TH)&Y((X`2(a xm\;1c;mE JQZhRMnN.K/Υ̓}︥Rk0**MCrD=vİX~z+^ri}ܽdxB-'WrQyyvks]rL6in6E4cmt~נwLS4$AI=LZR aNL_9uuwEKg#NB(nnovV`HRI:ܑ/g}tΗ_R/ls endstream endobj 72 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i7ciK%@۪4sZ% WXV'WAU.|]]z ˯jou\mHly +z f֖ӽhtcr1H2j[D$7!AY2hIƨdd\N&wM~p]f*Ѧˬi>|]:QE;4i q\rw#' !%ǜTTggyݩ{l/+So>ɼѨxվꌕB>>3{> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1362 >> stream xڝXK7 ﯘKVDQ0  @-VЦ66HC~5Rxz$R$?>g<1zч S4TФSOA5.n _ᗷvD8Bq8gA.?=y "gt,:k٢Z<~=usהiX,(:Th)]1±ç?O},StH1"|4)B2D$fZ(˕eBYRYĿn@y8}Q&>PB q[ q]nuh|@̇tKl yp99h9H[@W~:1hC׫Bb'`d[Do@B8ts ˿z9PCdr\8.2[3Zlq] ԅFD $gbmEh#lsqq:_>wsNBW,UoY"iN{+UOS3{N+&WOe/r*7P'6hRԨĘ aA5AۓW 9;JgUN|{T(NYn1hYATMd*A=/W$OSkcP9\TdT1Rm{JNB^u/9Z꾨,JEJܫꔧOͅKwM^<S5$ȅe(+-,))Zg*d*ǨpNUOF*5=q%`%E"w mʸM(k$ӶTUᶌQ' ?Ogwt67@iq󠚍Е$SWIS0X2Fqx!G/uUf&*rXhozg1uVmS{}̢S jY< =?\t&[c@*|R1xdW'R\!jlytgsJZ1 :XލfkJnR!Z9ӆK1)k"T__18ZRy 5g=S+;J:?Դl؟%GbV5٥J6"hh+#;ECm)F-+:|MRn[[*ℱ2UJK .Oס6\3S}h endstream endobj 74 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^@+xYz-]ѡwi]]=BV,r9bL.IF7xd6C4H9K-<1iØ؝LMm_5YJ2o?;fNT^5Yd\#EHcN**γL3<!}jˊԛO2o4)^u#:cvcfo' ۜN:nٳ  endstream endobj 75 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 903 >> stream xڕVIoT1 ϯȅ Ti hnkʁ8y.à*/vs8b3`-y`Lh>ެ_}4Xf!b 8Z1r#bͧj%YcWVn:}MdS4kDp9d{X= 9|`>3j4,:pc>wv0"Y/q^HfpqDJlz)P}Z?4jr68T8@rXA})gńl11wd,eYQeIsXpبEJv^+2D*O4dx0ȟA"Oo{=iA⇐<ދ$.HLGN `SEaq1Z!+,B,B|8*tr]s6"$ #:OQz6ܪ^K `XTD Ro+p q$S1 NϕBGs`![kQ$ƿT4n6 Uuvurl=ҽuaQ*S5Z):ʡc3Q`7#q)hcI;upBMhO5BA6 ǚq IW{h"L -tڶA3+EiI5Q;/*;mm{-` T+?k4 YbG[З KU%h9쾒%۵_\+`Ms$v)>Fgq{ 3=-fjor^Cⵚ]ɒ'|a\scS(kXwA'q7]t> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^@+xYz-]ѡwi]]=BV,r9bL.IF7xd6C4H9K-<1iØ؝LMm_5YJ2o?;fNT^5Y !1ٟ+H>bydd!!䘓,>aL1B>xHm߽MWȨX)_6'4[~~̺ endstream endobj 77 0 obj << /Filter /FlateDecode /Length 416 >> stream xڵ=O@{mRdfvfw6R$R $w"Bt|};Fg}W(($ɀs)s$|ZKMjQ[K8J6 I3'7h0&y[͵q[1okeIe7b"fP$D+e J798BD@lOauun~_;?"_ŸӳX)C%n`R2.@A+d+UlrZDZR'Lp{oJZHRXU8{ߎB8-ɽ쌧m: ;~k Qu }VRBqhRl~ᑫOf8e4 j,Sc%LNO)Ζ}R!z=ƽe3ڍ6e@ endstream endobj 79 0 obj << /Filter /FlateDecode /Length 429 >> stream xڵn0 w?RIPt-&i&/m%p YRD`RR\%*ժ{es;hAƘ̪ .N0.ͶH2fPN29hʱkR2G:689xc`dWn+P|njIPdGXMJ6yVo?˻~q췀P 愨dJsjuԲak >]yw)eq^LKy< ~ᡤpS;X~.~ Y6B^qSZ?¯™GN:?xc5 cMptWP> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1364 >> stream xڝXK6ХG3ba@boEmnS`$=fȑ:AES`wB082" w? ϟݗvћ>0L/~C1HM).w5!`ݰ֭r6ŽH!G1;L @3ݛ0*|&@_-7cphse!c"3-²|Y{,yCxgu|(Rf o X@d"E1Y~EEu!s#l(rȄ{Kd7P4Ѝ~1,!&A6TąxY< B4$+?^D@a}m0tM`pAb:qIX ́b$S;-,.^h Yu1ԓ +s0UM{r]pxxXmF@O셸Kl+!(aX+4!8q Xjp_K:9l>$XbzV.{sImzͪ32L+؞D(%eWY9sn&fS IwFD$j 5GpT yH!T((߯AyfȨb:~ ZD OJ ^hz(~QY4^TyP)O= y͒V<S5$fs2 pNϔ3Qpƨz:'#Kؚx%`%Qu\ q7↶He&5iTüUᶌQ' ?|ΰTl^oj6R;/CWL@'1N`Ar) im>z)r\,"D{T;Íj [^2&O1hĪg}6,~`BRĀTbpoN 1֭(B8Ou+::b+u1֔ܤ>C?sXyV 3cRֺEBe18ZSy 5g=SJ:?Դl؟%GbV5٥J"mhh+#;EC,m)5ZVuu7[@Jmz R V':T_ZOH!P!p|mV暅 ˛6MjO|9рQ9A&'u` GDmWDϨ2+ ia(9"jo20z};^? endstream endobj 82 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 314 >> stream xڕSN0 +|`lj 4i7ciK%@۪4sZ% WXV'WAU.|]]z ˯j!bTb V!:"-{萳!bdz OHo`C0Ddв6QɈɸL RNTMY| 1%%PuvjФ|H%>XY>YO)9"<ϴ~?S̃G> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 902 >> stream xڕVnT1 WdrB;PyHH,@C,x,}1 ҹ#9s3ƙ+ "1G0H}ꉹ\߾GC||p$B f `8Z}j6O:V>]YE̛Hz5Ѭ!Cӫ` FF*1x'n9\]F#%k .^wY/OFMfg}T cDVmYr1!$(&Ӂ,/ e +,b}k.CUN׾yrX&Ֆ(W%x#"Fft@<Bvx/>Hl 1!9%M 73, N;FK?ҿzȖ%\'^Uk&!Z/;(=nU%G NlQ|*"`1<q_Vo+p q$S1 NϕB)#ùH9XH-q5(ƿTܾE4SuUuvurl=ҽuaQ*S5Z)<ʡc3Q`7#q)hcoI;uB4Rўj›ImP5)〒VR{hz`߉Zm+fWBjrHwt9^JU~aw.u1Z<[,&ShVi#I#짷R/a-ݫJ'ir}%Kk9h^w}.09nnWAvn踽=ݙ37N9/ !!fyWDgDh?7H<Ür eM.$ϾGPh?]'b#ڑ,< t#_8,G/ɿalt endstream endobj 84 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4i Ro1v4%ܒuu8&aw@qP˪T}y^@W\G[n_zCӺ{ BYt/r62Ę\ Zo lhr ZyɼѤxաꌕBy},LulsrHs8ew+7c endstream endobj 85 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F1 1 0 R /F2 7 0 R /F3 8 0 R /F5 17 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 1367 >> stream xڝXK6ХG3ba@boEmnS`$=fȑ:AES`wB082" w? ϟ`ݗvћ>0L/~C1HM).w5!`ݰ֭r6ŽH!G1;L @3ݛ0*|&@_-7cphse!c"3-²|Y{,yCxgu|(Rf o X@d"E1Y~EEu!s#l(rȄ{Kd7P4Ѝ~1,!&A6TąxY< B4$+?^D@a}m0tM`pAb$tCL1⒰;Se(1T v KwUm/[l]ltW׿W]!9eiOK@;s.buw^ AXoYqKܪTcZ)`K Ş` YhU'w4~jTb<3fb{JdZT~]ewaM"7`&y mcqVR%5o`"yP X#:"-hjnނlFPr2<5.*-{i{e[ EexUrPR:AV]O2~8u)#kDK7TҊ`f0[Sr auX6\BIY ǤhM7԰sLJlnD(xRbY(pg*BգL *XFNPGkX4jY9ױޔO)53|skK%X0spSi=!B݇u:&rZ]kw',/܄6BTEFmjJ+B!] ;=ʬv24%/jx#LH&@$o2 endstream endobj 86 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Resources << /Font << /F2 7 0 R >> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 313 >> stream xڕSN0 +|`lj 4ic7ciK%@۪4sZ% WXV'WAU.|]]z ˯jnu\mHly +z f֖ӽhtcr1H2j[D$7!AY2hIƨdd\N &M~p]f*Ѧˬi>|]:QE;4i q\rw#' !%ǜTTggyݩ{l/+So>ɼѨxվꌕB>>3{> >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 2121 >> stream x[͎ S "O9} r͞rBK%Y DnxKśMJ_׺H(l#mq-acL4<І>9yӷTJzQ[@4S +llEK _+H20uw fF~Ȉ1\F'6mvJ0IOɓrPUU\TIqQ,Ws 42mojkU,bQsͬilԲ [D]q>:ث1Kh?-!ǯDr8kѐp_gb?l™&PmXsgaMK%䷤ 盔MiḧC6Ѳ%F<X*D;RLk@ћGϏqߋg^®]%e2""c&+O6p)b@L41δH"kO@\K(Ul9L/xS"v"TN1 tiqQ`DKngF2&}NJ%kx>﷼8:ƑSΞARkٲ7UY|?UkEl?j8K6Rœłm#qd96aз3caסը)N{7)Ԕ#hi}=#iGa&I,$LX3E i-)=$ƉG;h |ܠ3􌳼׳0!悇7? *.+Kp|­I-[j$וbS,t6 ɕvm54,ne:MIc7/J7yK. n>Ђ}A|ly9S|pғ-d0{j}|}o[?wKORm>JdρW\H=N޳TpH^!K(8Ψل:7ӫ{%E '.K(^}kOZFIS t ܶ;VwR6OK Н Gβ)=MAP1A? +I6v&ǁYq !F1*GsI(#ך>FיzIZq9` oNL{f&^gΙ=;GxkvYv+>{[F.Sm^_x$gixO_BP`%][1ͽK/M4K~>TGl%TeB& bsyap,u 6*H.qMgg^Y`cTmab8!*K5k[a=9z?-UMOFw^tYtVnTh@Synh;nLw/ki,K;g:Xk!_ 1ىy lݐ!eﱂ3kl;ʭyQd[.[X8>^6{rtǏ5hGSܓ?)4>;ŜPМkAc &E3l_rwU`ƴk~媧giV> stream endstream endobj 89 0 obj << /Filter /FlateDecode /Length 117 >> stream xڥ9 @ E9.0!}ΐ߿ @0TIT 3ec&ggLL-52IKݠ(chyt_f q_(o8 endstream endobj 91 0 obj << /Filter /FlateDecode /Length 129 >> stream xڝ9B1 D"x#z@п_PP!Fo,CBja{9]z~M $gv@G$IWYm!J!jsJ3 r1MʵOWSxJ}8 endstream endobj 93 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Subtype /Form /Type /XObject /Length 0 >> stream endstream endobj 94 0 obj << /BBox [ 0 0 476.220444695 651.9684788 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Subtype /Form /Type /XObject /Length 0 >> stream endstream endobj 95 0 obj << /Length 45 >> stream q 1 0 0 1 391.181112 464.881891 cm /Fm43 Do Q endstream endobj 97 0 obj << /Length 45 >> stream q 1 0 0 1 -28.346444 464.881891 cm /Fm44 Do Q endstream endobj 99 0 obj << /Subtype /XML /Type /Metadata /Length 1809 >> stream application/pdfmtx-context-modulemtx-context-module | 2023-04-15T20:51:11+02:00mtx-context-module2023-04-15T20:51:11+02:00github.com/contextgarden/contextcontextgarden.net2023.04.01 09:52tug.org2.10202303275.4osx-64LuaMetaTeX 2.10 20230327 + ConTeXt LMTX 2023.04.01 09:52LuaMetaTeX-2.10Falseuuid:d7db32c4-4b5d-8f67-d3cf-d29dbc78f0bauuid:401e77d2-4683-8a44-35e5-e6c68570d405 endstream endobj 103 0 obj << /Filter /FlateDecode /Length 2012 >> stream x]V PT羷:BD&TD$n@ B"D;&ⴒH-T aL):؄&t0@)jWdthALjwEI`?{w~ h3Gvf =|psT'+ 2˅!/z97D8;<]q"dqG7x#d>&e?RK[קfנfp^/A]= ؓv_3~gd]@H6CƄBJuk[hT@ >FRfD߄+3~B4k,6qqx8ƿ a: D $Y2ɒk5<^jah ¢IM/釣bXAd65sa 7͖P_RYJn<6z= ]^R?ޗGqCnڐ*}$2:6jCl"sM~ƿ^@tܭl%oX=Z$"KXskB>u*/lvTt&`2OF p*U -h9y+!uK/|ͺmOF,Y3߳;+ϯd^}"9~/V+&^>X]eWIWG=Sj l,Bi^cC` j/.od/T\͖r> BChH*IFI%j{6c9[MCCWM 5O/-#L=u)o+)zz"%RY/mہQ"Eϕ( >$,H>@#,7LyNLRvcrj>κzW9B?04[̈́J\+B0y1!`ŽS !F\TOOr(x%waz_AeZ?&,:E,6ջ@%ۥ6S`gX^dʏϧgE{ӊv+#}z+ڵmuA`qug;y,{}skrX6`yb|`ME1]̜7h%u29uRkr/K!FBxyѫb=m;m'iDڮQSTiIwa=*t+&(Eۘb:WjTۓj#PZX+4Cr#ѦT%aBD6oefZa#$'sga!)/Eb/)Bv_w`kŽ"4__^_hA gmhctڈqk"v endstream endobj 104 0 obj << /Filter /FlateDecode /Length 1616 >> stream xڝWr6)vK2CSݡ%TTN#DB`Вj= !R:i͘wv-+>sKͭQz#_Ͼ$ys~}X)iy ru'N n1pn@w \PJvWΡ81ׅzgKٙ[smXBA!!}~%Vv5nc:Xa& *υ3W}u'z$ Xop[X^mgqSV$!嚫g^Gذf50A4vJPʚY?sQ7MdczM~ 4Jn_Ig#\}o0q )Q5SA.QW6G(ኣb+Σ:#5{h1 P\Il8PXP- 5lHVZ=`KJTWh +Ř{-[%ˮXv[g >fl`3 Z8C$P"lQk__P*:/L9m)ƅndaթ rXJ-ㅡ>$9TȦ䇾 rX=c4`tJYiOaԒ! ,rvl.Rt̾+ך X *4V,=|@PV>t_L!b*XWvI*IG_Z+ƪ N儈j%V)Cp;;{#ۇQz6l%n"@N0?؇EeSgiZO8y{K9LY#h>*2E_x|yB ayBWisCWF00gCsRx( >dh1NQn%1;'Y.&1&Ё#̺HcE>iI:GO 0ՁRG3,VW+xk]sю~~j!%`k;<;5mɾ4>q7oId+tk=*4ZG)B5}yP UUJ&:\Uۊ۪.= +-TWeghVRuf/q<v8:Uݹkg.вSG5n[Y ]nڡ砄pkt8VL:t{b=sjgBǓnSJ|߃S_ZTN}uxp /Nާ"T|<R+ /TI^(^ŵ]jVcB]T[o endstream endobj 105 0 obj << /Filter /FlateDecode /Length 506 >> stream xڅM0C*B **퇖h[F$ 62p_1Ifw"ak~yI {tw.b-[>f`8dޖ('Ddb0Q4c-ND~j9ۢJ:0{[Չw֦N OqMhN:S-h/wGW{CUR<s]W x/LzBpe0`"o. //ABnLAڗ5L^nԹ34ɳ qkYV Mے>e%^ K(;w\]Kyi,9U_u}X[Eo_T h9%͈f-ќbтbђ(&'UV7'P̮XH%QDіhK툹#ͨ3FVi-?rȟGޙY'Of1oS~ o]n/w&C̯~Gsڿ6] endstream endobj 109 0 obj << /Filter /FlateDecode /Length 3984 >> stream xڅX \gڟgfC50bf&2kW{+Q`egybLEwx9_B8DmZa轻 ̺߷[uO;13?~3 eIOogW߱7j' mMF2 ԛVTmo v D>,cR ][͈޼n"6l8"#p A]B!5h8G';(  Y~'2C: o. alDFt1 3üc8@Q2tYğaFQo*Qz/Rako"ml⃘;6k3=SgxcLo@>IG|D՞OcъJIsŹzs[1(}]ɧ@ poy:Zl&dfg'ZtObdU^e=Fe1&,,X3>OjVlXwjَ䧖AżqK? T+kVvc-1XH2 &x&2XTK|֧GWi$m1٩M%]]$Ply \Ú`)08vumֈy\Dy`<=h!-Ǟ0+/m^wqM"l\8pg9&v|zf_z )瞠cvRzƔ ж4x'3_3}zƆ#/fzpMAޛV9]-Y݇2<@oY#+H7٤Vg7•50F,) =6رa#8m&Joՙ X3ZNj.v}|-LuԷ. <f%%uߗ:jņO\u@I~-;D~0bJ A!$r*`v8MϏ6U=opFn$Ȗ%PB(-l\oaɪ6swi6^i$-mG.^Fw42$r6ӦK5q"݋h1$_7U25G76l:\RҒU CfrrtGn9<|SOHE斦6bt&-/4{g_8,yY/r54fTY7[~1 8X?1wBixO`Z-@fgi$oxC#9-E\NIChujYW%չGj/@,|Whx]7P ̕=s F+6o6B_'{|Ĝ}ow܎ qii\&=PTp\*Y:X}׮;v'óH\逊-l6o 6DHkz1JKhӍQc{}*mՁ͉ <&-Z5UFzzFfzz棧O=z}h$_6D'Wax'L( I"l b& LMƆqBEMš sc#نj. 7>:zfOn}OM'.yyWTG}D(sSt$xGtL{U98:C(%q)t̶pCybA-]+H>Fq#0KQMk&`ݙD G&ykFgG/Gր/̫Ӥ{^y_E!! 40ՍeVnd;-HmU}<J>a}pe۱‚r٤%1;;19%EtJ&'䷰H> QUEEUPhYZF4;jZ"]@O s@bg}^  {ծ_&όqqXN z~B(?HV=3٭*Y"6,TWNpq:CUuBa蝅F;+RL@kzZO 4gt8F(ݭԲ(ӲĬ,4Z֕ZLZȽlN hV°HwG&&1ИLo3Se[ !$L3O>(BN'1t }\)޿3[Ș+Aբ+S}sS7aku kiA5檆$* \ܸ>%(Tp'܁|*UjJf;箭[]u]-CX$0&/_y +X9/'Mċ40T`ti;l&OIO9 B)űbkcv#u'JJR> MzL!jqc0n7*М<,7v}2L.߆ (^1;'CHdA\&22މA9CyA8E1o=W!au͹5 G قE-{~|C攐p"sKI)B7bXX•r ԝK(k*IK:Q0kQq'@.Wk/ȩHlWUd\e:upgRs hII9aH)5m4> stream xڝWr6)vK2Pݡ%TTN#DBj`Вj= !)R4SfL~ OOEsǟ@7އggo'ųOI^|z*ޖOw]0Uw7+_3-=CAUĉۍ1m}H~+xaWΡ81ׅzgKٙsmXBA!! ;z{Ey;濱d0|7fl` Z8C$P"lQk_?͡T9Ru_&rR 5KJêS V[ C+}+,IrM)}=丅}X=c4`tJYiO0tj]Ԑ9;S6X j? fCCAO|f{¯e)V UKSȫJź4վhR eh8ї+3 wrBDMqV {YzL͡E8JUjxԺ fgzfɱ<RֶblYqGl ӈț󸠹S5#kղζD1h`,ekt {uf RՊH=D0'9dI!L#3X8f!9D&GO L>q2!uFYbG'8NyxϭfQ:z.G&qACXia t1"#l'D@|1rr\!Oq4 ӟ}b8GS"D ޓrNpYFd):|F1zLaЕnЕ4g>Yxe'#$9$Jé"qh[I=FbjI (w0 y t 2'.4?RgagDaΑ.5G'%/q|)Geui;Q8Eh|! mx~` 7ظ}zβ'O?NEG/n<[MC0 m;ZsO Q %PMi7@l@ Wb厪K%u'x>@YEe"Ts݆0ׇj`mKtog׵NUZ T̓V< M;tsPn͚NJWKnO̠gNLxmJ{v+Vjojd |r""T|ywԦPL>ӹ>3+f>cPoG endstream endobj 111 0 obj << /Filter /FlateDecode /Length 637 >> stream x}݊@} A/*538;mLZ7v$?>vTta >]U_UR/4NOyZf7n/ҨhSi>_{F;]|XZD2ֵ4ӧ<,.[o.4&5iswIqٔ=Sg1>u'yUy孾uęTR>8V]lTqvЗ9RXk^d ,YbNXu]SD6-{:7ܪ(:BszǶDWSWMB0kEJQhŕ1j5C|j @M$ g3ΤeX*5#@v||B/x@/7D|=@c#C-$C>9#/| Z/$1|: |,1GK !; f|b >B/>-GIjaz#| >F||_/sYoz2:Wm{n}Zor? endstream endobj 115 0 obj << /Filter /FlateDecode /Length 2510 >> stream xeV TSg[ZZUlm rj;EEG-*zETjDFIR% ѱ82(X7%(x{!2207yY|G'`E%Mk\:GZOw!-_Y+FȐgɫ7l dZ~7}1 ,gxKL4l_Km5CȰa]_'j6d2q'D J'Z70 jhHvv," QJB,@4!z #7؅LClB~@{P٨(>Qd/!,q#S+JGzv.wz8=g \UN4'70y7ߕ 帾 'q#!*?hBC5\%--jTJMS",a K,.δ, Zҹ8ЀjJ-Bl-]bleoP64 U"⾓ ; qm/dg̜`8fWm|-Z0#]"ϣu}\ ~Y Ն;QWF"ooen𠏻O@lh쪷7z>6Ơ]?*Q(ԯ̿T[קZoYjN;yK#OEDCt\梟nd4:Rzüd2H\L$MܸtyhVϐ8G;YLlL-$4~|C0M )/p&[ T9lTuܹ,^v=X&.h&Q4%%ZQ!ʼn90^8a:'S^˙{cl'8JLeRzlN՝wxbN[TVTBJK*,,*(i*JBV6 DJB7>veƚVeڷ+^`;:݌Fo9=.R(;偁1t>#.U|#_@^t=Ījbc>q_B=2*==ɜvḒfdaԷZ[vzSƟnqb '$7E"m*l*+@01+Up:gB%n5#:$0;sbvH7fL*]]|柗ULinT`JU.=:/r,zmC18iRk5b-RE0QR#,f1.}_w_g >PיGh7ԭx5=N6t#>yi,ћb^BXPs`|Pq`,)׀U;hz#M7;/A {[ւ\եx tl`+mm}Mt;hl#ޥ"M %t1-t1@ y 2,1Z=w&"V ^ĵ賣q9YٝJDx(@GS:_cWiWmEtjh:WpO݃Xo=}?8?ҍkӾi(OU d0t JV#bhYejiss;:&A\--@IqBDu;J(p$69/:-~1>'׷ gH'K~w'w텅08Pd+ۀTar*fE@' >Oܣ?N,8Pd N&ݠ,c ׁ ~9,FEx$?$ŢҩSd6w.5Rcfnn܌=GiOO)*s̯rKږupSWWՒS237 P dl~# &S:L!D ;Rm4Fͫ^po3DNOһEa1 xpngXf: ]缚~3neƿÇ{a0=0G&<M"|lK8?4La&v%!YǪHsLtd=IRyYAd ?۷^IdD;HgS,E&\0 D"? endstream endobj 116 0 obj << /Filter /FlateDecode /Length 1945 >> stream xXrۺS7 C8mg}JKIt)n.! WEJ$;s<1 Ϸg|uSi%NzjO n`F+ɉ1uv''z+rO`3DUCP) SLޱ'TjTSzW~.lE%S@%^A A.J+{G V)v:n5\x*)?LJb[RRHv6B1Zhw!;4G. 84[DkҦ:Z)mX4B*@5/,fķ (UMꘐpc*qTjvW@ Ԋ35]BօRHdؠ5[Pt䷠t݂9_pShXzFiԙq58ʙXJBiF𨇞Ilh[CxU~̉ GyP&f_`XsLZޮ{wLlpgƮ_ ;XmpLNc`C;Z6d)+aEZdANL;=Tb~oW(LWm3D0{47]b`؇ T\BXP!i xI .:C3|ypU (3#h: ef$N \ע`|5pz8q4R4Vՙ™16 g8J?{dS2Hhp5J.Y6hvMG z '!$:H=TJq#i I1(Fyvp4 59Ɠ0Hx g!2ăa0 M8#ֆO1 4LpcJb1c wOg?p: ߁EfßbN'M4 =hfvdg<p47uxՁRF8 1@dMjmj5w;mggX6nfXβN;9vՍ'Q;zsdk+3J$ 5W,E{恢:C-EV g%-PM`4ZrTYKqmpU>e?ZO)~NJҜe B.tLwTAυ&H} 2SeÃH˃9#ұ#x ;"<'b=h!$>ć|b!w}B;Y@|˫ꪑũ~hd5}#f׫ܡQc-i`F2]WvׅU. vN}AK^ltnL['_tR8үzųo},XIoO~STSqth-nu)ܓt7W¹n5uwOvݘo endstream endobj 117 0 obj << /Filter /FlateDecode /Length 526 >> stream xu]0g/4 "VYFMtش텰?~.o[M'>eU4:gRH\z#Vt+k,Ze8Uzn;)S7[;ˋǛ/}MTg s;'B{},XTF)um3% Hdi}e¿47Z wH4ӸViԙ:ec6ey;i6s<^ am\^kTDd~<3.-CpÜBȪLRuO MW:J<RDl( a4k)hi&cP (-a[& r^`s Z@K[b>* >8}A_>/$EA_ 'M 8fƠ^8.8@C/qZ7-Iwg=,o{ݴ{)yea#Ll };,K5 endstream endobj 121 0 obj << /Filter /FlateDecode /Length 3370 >> stream xuX X\P⥈ xeILŐJADElS%H/K0hߨbFHɥEc؝C7 4m|;y{w162mqWj410'U$,ϒI4>O2ru ^YBoIVVR06Ǵ5;=1}=?ZK̖ |! Cu\goX6^[01z7Q3QaY )0?ɋߒ{8b{t2Id?I&ND_|njIIZM$ CcdU0 u1I$6v|"HĐ&X vĨ7J̙#wvN/_wˏly#ޏ'KzShid)?-:>uPFֲg}7_>XoڳXz61:kZBWAKgL\]igqCc}}céS h88A\0 b!OaS :b BN,"QneŬ7YOfâF*nm5bsM"+btUIhTimRA5 ]^q]>oÔstŢ[V-س&F_婅of"|u٠V] RDDיIp  "AE)|NwO'؅# 'VV QS JQoUP(ВkO"~_!`p(^^`3DPS9 fďa< 5 ekC5;BTk(lwȄ 6:iT%Xuy s-nwnxiyǨQZWX.s.ר״G]&|[ OO*ԶGy+՚cmuW*, c6Ί3,d͇sS !=E=:{ '\zw)t8H "k<|P݈;.E&hT~w+0Ә +mzɋ4HcOH&O-^#!l ;:<0LH3[ ^9qXKwqHx `FZ҇Px3=eЫ/_ˠ nxPe)8 V!է ip ]V-Ja+W6bfw1:%.l_@[J( hB8h=%~memӯ$mR+6MopNXRT2^<:V#^F/'3Mj5ҳM_vsg@|xI}zWy+gfXSMI+grNk.tnKpI[B!euon,(\e sm[k2xRmntCBa:K #~3tZvKQfNz*XS. J;Sثfʚ3;rv6dB}گcvac]EC4f 6u77׊E;2Lˊ`'bC `1kDcFFB!]f5Kh9,dtgMR 3G\Vtټ8C󰋈zZ~1e  S`"F>EE >l:xؼ&yK2iH"/:6KA.{7^<1& gڛ0t}6)CBӛ{8sTwD #¤>!QB…\܏`*uCC(5o\(!4wv:K¿rObS/x=Icuř&<wؕ{ ˪͢ }|V|+njvCemM6W*&S$6|+TdMM|廭ȕTzJDu㿷%M)/'~Oߨ^^*NvyTn\Lx4VǐE|_ȓdIùe˓26R CMKw>%]:NUPֶ0KHE7r&&[|gI9ŠM,e Y"Q ZџtsEo/\>ʋB$,jY -Z{[+V|%17<;#Cq=b>NMt\9GF7od:FZۥ5XO T<'|W2M[U$F$}ɣl|{0R-hױgZxVu9e'Ã.-^ s CXy^^\bB/ljGKޜ R~FH6#;5O ]=f^s"ꆲdY؏zMWHXw"HV,?96<#f(6wv.j>͙(.7vdWXHOtXZJzK$$I endstream endobj 122 0 obj << /Filter /FlateDecode /Length 1634 >> stream xڝWr8)2!SD٬(-I'#DB&$@Kʫai^aAHOKU&]ˊEs˯@߈ogߒPz? >nvu[s`WWzK~ϴuq%Vp/\)JFlLI֏VS^`08) zw? y²@`+yWK`U-JohkXcxJ5H`ZL!*ȥAEF+W4>S$`6B o<-`h#Xt5rE !Zl1[DVɲ+):&ÙY*$&[a6Hɫ>i'w|Wo6|9 4<@ Da[ qYV4:ՠAnK Zϼ0Ǹ’$ ٔ7Aџ9 'p,FLW)+o7 Zr5E օZ*][bh(IٞkYBceei=CG*kn,uo7BY 4|>`zp\NH J]Rau/KI9Ǻ[J ޱ=}gÆٙYr&B0ijGb|gk-[V>#Eb6iDy\ܩK{gո5`gQT4A_5:uf RՊH=F0'9dI9L#3XO8f9O9D&O LOq2!" )ij4p-NFӧq<=%,4[UG͢t}L*Ch?p.`Ed}"1N>γ<Rtb<'p+4깡+i|!NFH̹s )iI:GO 0@)vpx% mx~` ?4ظ}zβ;O?NE[/n܍[MC0 m;Z}O Q %PMi7aCl@ Wb嶪K%u;x>@YEe"Ts݆07j`mKt;gǵNUwZ T̓V|C#lv9(8ܚ5)ܞAϜڙ۔R% W\D'ۿ[xq>-:)oF Zw}ܗpp ԦPZW/. OCwڅ67LŋB endstream endobj 123 0 obj << /Filter /FlateDecode /Length 576 >> stream x}͎0< b;$! *0 @ιJFB|7}l7'})SI{z9kSoVZu}y5Wd&Lzj'13oެ^%_V'j'DfA߶ϗ.,7?o_,gXd ;̨sc jNkT>!M&liS(6|/h6Eq#tJ>\C$g}]iR"/vRr8JWE21[՟>Om D!=WʧC PK( Z5 FB^Vj5Po 1V"V"Z}dΠo|!)Q |QE|Xň98L/')> /|`"'E/tB|1A '"_Du.`TG|6,nv';g,mhO;!׻]_{twS?] endstream endobj 127 0 obj << /Filter /FlateDecode /Length 3858 >> stream xڍX XSW羗@Jhk@]i!R܊ֿXҎNR|A@TVPie [\(7TZ3XVqZ#@.sK87ɻ徳rC$ %>GO#%^_ڂ48q:\4p~9<}?7Ik ZE%pYnI_3Η ]g_%-'gߵ%Lr>7N~2@|RHP͗7)/BJ DB!/HU(H#@gTZ"!Ej@)&B^@/ C*Cz@H0$}R2RR3!=z!%"Y~D^F2!]D^PV\[xx -@+!* mR#]"sy=6 ?TFI[Я.֫PAz+EB4zJn^ҩ!{Ӥibo&aM=$| m* GoAAQg3_;HofX!AsgK=jsڿ$JN`}%E#NԨhR;Ŝ8rRh`?"oEɓG,IBKmo*d!woݨ hG)"Us.Y]j3̕Ջ.!ս iYo(> ##'=tD`NR(7QrDDD?pqqAw}=9+7o^/L(kW_a}|/Yʃ|%۝') M/y65/7;MMw<b0.8Y6bYrr~CaF萂J:++m:ִ;h?Wm\l^n$Ef8:Dj=?ĹׯݮsBͽI?]s71ގmi &vz _<(qoXZfE#`4/?r0AU.+ (T{ShZsS~(y܈3hˇy9hdb\4;g }s'fd*;ryNF!MsAqMꅩ9UfWl,ë@7Z#:2=QzҊp~IJ rxס7VJ2ۙd%bxa*cxHP"UqfSlnjgmYӕb/!^\=-h2{.[{VC/my9BFad2YFՑ˒"+ s!o"YFI1xxድBP@f n* 2d!:@^՘K8*ںV]IP.9LA;ѥYf9|8{V2CoEkUš>nW믇7.추0ZdZ^ܝW*#c[ܒE|QFεrŕYl";%f@Μ !|Q}i0V-gɘ>0FH<@jE$!OCQB|h O+<` jI#Y|zպ7}*=?]4Yrov2IWHX692I:&%`}Sͧ@4p0~{S9X8jvʡMr~Mund᠝9P[u0434FNAix}wG+s)#k%V!{-*R\Hvn `qJ7NЕƒNBw$L{[pu5j'[,6Vp^tdƆ"r.MQ/ښ|/3s cm>FYbdm$v  Wr^l,- Ja Y\-hUTHax]eWS'QIsGV5L:].|:c,O''JvOo9hN wX'w*FAe;GO<<}.Ҁ0HTMlf{Z>'9119ހO"ކ0x febeƸ9Re%OˢVR\zQx*XQ;QɓZ 2(\ id5;=XZQ'.,((=Փf`t-}: `$AK`f%8Ma@՝NSTW_すL>ʳY}};EsZaA9OZZefSpB\MX,,lƗ:^q\UNJ~r)6-l+ #;6:TO9ȮOgOثaZU1J$I\HT.U{W\%ND\ZpeM[lb-l1Vd=bf.;FJ++۱z+|Ls/+oiuT]W3-<88|ژ1`̴iH bAП K({6=FݣOȾX@=_g@Tɪؾۜkc O r؎ vD]$26:>bblãJ`2:`]nϠJ.XfFy vDk$g Ǟ]9:#ٔ1l, d-! +F9+G9ݎ6K7Xj4 13M"pF'5G8sc8[H7gy${w %D0''CEL}L'<GIS 8CP!<_;28pJj3ecb!BǏFj]kel:|e:l9e&kL`W^xEn8! svMWa;(H9&d1dW%?d޺}w{au--_|&-[fVmsKJhln-i*&?(AΩƫ MЋ}ӧˢIA揷"@౷k؟}*fI3[旮G [aer3uI]V1Ci.tKyv, m凬ѣ>3YygU[Q:i^y2޼ae?*"\&#ċIb^G0U.ޫ$>%anIl{3&&W4H\~ QyCHsU_+sQdƟA2SC9$E@v _Eٱ$/^^_Q J yڐ3S{&$&{-7i˿?v endstream endobj 128 0 obj << /Filter /FlateDecode /Length 1628 >> stream xڝWr8)2!SD٬(-I'#DB$@Kʫai^aAHdOKU&?~ܵx|-_~şg~֎F<|S<ŷcx;m ]]5zwR.5>#1T:OxcpT?~^]Cwz{93P5B6@l);sy-W#zPPzH;]wEy;?d\է}J >ۉd!۽덹M޿= !nª4\s`<*6Ys Lq ݲfqO}٘^9f۷ ;`pRF z#? y²@(V'K`U-JohkXcxJ!yTCj}0XS rihhJfaՇ:jQ]gCEֲ aXɶ^W!D\-{k=QU naJIJ3pc+ɓ0tɫ>i':>ܲ;>JcPZira[ qYT4:ՠAnK Zϼ0Ǹ’$BlJA<`3cӠUJ{~!%wQC7O`](ow|f{¯e)V UKeއ)Jźn}ѤD ѤqG_Z+ƪ.@"T{goX҃`Rn-±xO`+U;GQz6l%n"@$8:wXbei07qAs /kJw>WeVˊ:ۦŠ rsb#֙)Z"VCyC6_48E:1xa_aJa+'c-(`B<[Ld4}=ܡ^2aAUuPq,JG8$œ h04La.YcMdh! _!Q)E4G0'H9+gR<(,E>(F8ywR QRMx8Qv2Bb)p%QN}(cFJb1Shdq&0!5Bg~t 'ѕ/qqF.L9KD %_"mGpSȍX]ѮୡvݏG;J۪}ۯGg,{\t$nӨ%ޛ4J?$ ж;4jp^ :U0QQuɀ\nϼ(> stream xuM0 X; !A.hA^Clh*p|k睐,3Nc/d~TcOUMq3)//q6WjveU͆&N/T]:gAoWoUƎM8d~{\`Re?VZF:U &]L˒cG13~W3"~luO9l&&[+0bm)M{̆=}SecϩTNf`U7lۓ =/q} b.UU$*}gfΜӵ|8(u<r`Sݹ{xK$@o P|5(Q)8hrAK a?B DU[: ~.8sȅ_G 0rɏ/;ca.XHyHp 9ysm899Q3Gs8r< p8zT~>UÏ8&apg|!l="~U9CQ` xiKOX`<4ӿucw?uWK4D{}37^ ;jK~ endstream endobj 3 0 obj << /First 418 /N 52 /Type /ObjStm /Filter /FlateDecode /Length 2278 >> stream xZYo~ƣPEb3N+vQfmA; ٪ZN!ggr &G*R)bB2A}@[& jQv id4<Wɤ Ϥ Cwi JdPD ҡ:CLy kʹ&nJ0m/ւD)2" $@if 2#=0@T̸ 3"c<Viȗuޡ3s c)0wHQsWx a0=X=蠢Ax@ןs=f{:'l('+8 e0miZI=n8cN&!𶁣<Y^J?-+~uY~\L~snwi~MfŤh>tofe>>\p2`'|R˛_YC> ;x/.sԜϯGE{]cRW!7^4"c?@Abc];ⓨ_&H31~ 3jHm0;e;a- R8rZT!U<)Ѱr29ˬd(- Au`-d$>}f0ZNڐR9)P)4)B{ȯOce. ۝00h%-Gva\qXmį;7ĮB]EU _(/W ASMPMp:aDOz+d䣉 *`ߎ=pZ@7T!tI=wEuݧ7K r@ ["=[<pUtȹaVq`wC0B8a zG>'ibyZH0_miV5NĶ!ɝܢHZ &б0AU'I(vXD+G=:a( U'b/ U}V5W[Beo%.~?}w[sp6XFmD;JFk%Ȓ-)*A7B4|q ?t\\Ä{YQ;>=='\C, EWڠrAWΗg,li(FiQ~6OUxqZ @O~{Zcvt8E}e߱4JzlT훂fSMkymSۦnbOK#W8In w}-uc%cs3a酽gmHje՞Gb)=qFDd_KEfbq2ٙ=-c6a[ = ),̰/c~'r;5ܾfjʝ"ӈیץ@Z&mv*c X8GL"m8CXSBlqSXVx!b):gbdVeo#»uGv1U]LT=,!99+J_rKqs}lizDC endstream endobj 136 0 obj << /ID [ ] /Info 135 0 R /Root 134 0 R /Size 137 /Type /XRef /W [ 1 3 1 ] /Filter /FlateDecode /Length 433 >> stream x%+aes9cs1q šѤrAXFgRn%# Ie!d\6 !w><"| Dܶ%Ay_[(J$Xak>ƬJd3^ [M!kR {sR! ',^Ôtns}y<$D(^!156g+IbC|c$5_#U$&[,}rX#AR[%;TƑ\j,eui,H# ~ZJ:I#=6 g14xHZI @/Ȉ Md1Z LnSEʕCwiK%\y{bY޷D>;֥Q,i1J8ףI$Ak=JxkCU>*'%['YV endstream endobj startxref 139624 %%EOFcontext-modules-20240428/doc/context/third/collating-marks/VERSION0000644000175000017500000000001314422556562023576 0ustar hillehille2023.04.26 context-modules-20240428/doc/context/third/collating-marks/README.md0000644000175000017500000000121014422277152024000 0ustar hillehille# Module: Collating Marks ## Editorial Author = W. Egger Version = 2023.04.15 License = Public Domain ## Introduction Collating marks are small black rules placed on the spine of printed sections. On each section the mark is moved by the length of the black rule. When the book is assembled on the spine appears a stair like pattern. Continuity of this pattern insures that the book is ordered in the correct sequence of sections. ## Description The module is used in connection with arranging pages for folding to form sections. Depending on the arranging scheme used the module must be set up accordingly in the set of MetaPost variables.context-modules-20240428/doc/context/third/vim/0000755000175000017500000000000014613513621020227 5ustar hillehillecontext-modules-20240428/doc/context/third/vim/vim.txt0000644000175000017500000010137214156205526021573 0ustar hillehilleThe vim module ============== This module highlights code snippets using vim as a syntax highlighter. Such a task may appear pointless at first glance. After all, ConTeXt provides excellent syntax highlighting features for TeX, Metapost, XML, and a few other languages. And in MkIV, you can specify the grammar to parse a language, and get syntax highlighting for a new language. But writing such grammars is difficult. More importantly, why reinvent the wheel? Most editors, and many other syntax highlighting programs, already syntax highlight many programming languages. Why not just leverage these external programs to generate syntax highlighting? This module does exactly that. Table of Contents ================= * [Compatibility](#compatibility) * [Installation](#installation) * [Usage](#usage) * [Start and stop lines](#start-and-stop-lines) * [Changing tab skip](#changing-tab-skip) * [Avoid clutter](#avoid-clutter) * [Before and after](#before-and-after) * [Changing the color scheme](#changing-the-color-scheme) * [Line numbering](#line-numbering) * [Number of the first line](#number-of-the-first-line) * [Standard options for line numbering](#standard-options-for-line-numbering) * [Spaces](#spaces) * [Removing leading spaces](#removing-leading-spaces) * [Adding left margin](#adding-left-margin) * [Wrapping lines](#wrapping-lines) * [Highlighting lines](#highlighting-lines) * [Using TeX code in Comments](#using-tex-code-in-comments) * [Tuning color schemes](#tuning-color-schemes) * [Messages and Tracing](#messages-and-tracing) * [Yes, on, whatever](#yes-on-whatever) * [Name (and location) of the VIM executable](#name-and-location-of-the-vim-executable) * [Defining a new colorscheme](#defining-a-new-colorscheme) * [Modifying an existing color scheme](#modifying-an-existing-color-scheme) * [XML export](#xml-export) * [A bit of a history](#a-bit-of-a-history) Compatibility ------------ This module works with both MkII and MkIV. To get colors with MkII, use \setupcolors[state=start] If avoid `--` and `---` to turn into `–` and `—` in MkII, use \usetypescript [modern] [texnansi] \setupbodyfont [modern] Both colors and no ligatures work out of the box in MkIV. Installation ------------ This module depends on the `t-filter` module. If you are using ConTeXt standalone, you can install the module using first-setup.sh --modules="t-filter,t-vim" Depending on your TeX distribution, you may already have the module. To verify, check if luatools t-vim.tex returns a meaningful path. If not, you have to manually install the module. Download the latest version of the `filter` and `vim` modules from [http://github.com/adityam/filter/downloads](http://github.com/adityam/filter/downloads) and unzip them either `$TEXMFHOME` or `$TEXMFLOCAL`. Run mtxrun --generate and mktexlsr to refresh the TeX file database (for MkIV and MkII, respectively). If everything went well luatools t-vim will return the path where you stored the file. Unfortunately, that is not enough. For the module to work, TeX must be able to call an external program. This feature is a potential security risk and is disabled by default on most TeX distributions. To enable this feature in MkII, you must set shell_escape=t in your `texmf.cnf` file. See this page [http://wiki.contextgarden.net/Write18](http://wiki.contextgarden.net/Write18) on the ConTeXt wiki for detailed instructions. Usage ----- Include the module \usemodule[vim] Suppose you want to syntax highlight Ruby. In particular, you want \startRUBY # Wow, my first ruby program print("Hello World") \stopRUBY to be printed with Ruby syntax highlighting. To get that, define \definevimtyping [RUBY] [syntax=ruby] Yes, its that easy. To get syntax highlighting for a particular language, all you need to know what is its `filetype` in vim. If you don't know that, start vim and type `:help syntax.txt` and go through the list of supported languages to find the name of the language that you are interested in. (Oh, and in case you don't know how to quit vim, type `:qa!`.) Vim supports syntax highlighting for more than 500 programming languages; the `t-vim` module enables you to use any of them with just one `\definevimtyping`. The command \definevimtyping [RUBY] [syntax=ruby] defines three things: 1. An environment \startRUBY ... \stopRUBY The contents of this environment are processed by a vim script (`2context.vim`) and the result is read back in ConTeXt. 2. A macro \inlineRUBY{...} The contents of this macro are processed by a vim script (`2context.vim`) and the result is read back in ConTeXt. 3. A macro \typeRUBYfile{...} The argument of this macro must a file name or a url (urls work in MkIV only). That file is processed by `2context.vim` and the result is read back in ConTeXt. For controling how frequently a remote file is downloaded when processing a url, see the _Processing remote files_ section of the `t-filter` manual. 4. A macro \processRUBYbuffer[...] The argument to the macro is the name of a buffer, which is written to an external file, processesd by `2context.vim` and the result is read back in ConTeXt. In all the four cases, the `t-filter` module takes care of writing to external file, processing by `2context.vim`, and reading the contents back to ConTeXt. The `t-vim` module simply defines the macros that are used by `2context.vim`. Start and stop lines -------------------- The `\start` ... `\stop` environment and the `\typefile` macro take an optional argument that is used to set options. For example, to typeset lines 15 through 25 of a ruby file `rails_install.rb`, use: \typeRUBYfile[start=15,stop=25]{rails_install.rb} To exclude 10 lines from the end, set `stop=-10`. Changing tab skip ----------------- By default, a literal tab (`0x09` or `^I`) character has a width of 8 spaces. For most cases, this is too excessive. To reduce the shift of a tab, use the `tab` key. For example: \definevimtyping [...] [... tab=4, ...] changes the tab width to four spaces. Avoid clutter ------------- Running an external file through vim is slow. So, `t-vim` reprocesses a snippet or a file only if its contents have changed. To check if the contents have changed, it writes each snippet to a different file and stores the md5 sum of that snippet. As a result, the working directory gets cluttered with lot of temporary files. To avoid this clutter, write the temporary files to a different directory using the `directory` key. For example, \definevimtyping[...] [directory=output/] ensures that all the temporary files are written to the `output` directory. See the section on _Output Directory_ in the documentation of `t-filter` module for more details. Before and after --------------- Like most ConTeXt environments, `\definevimtyping` also accepts the `before` and `after` options. These can be used, for example, to enclose the output in a frame, etc. Changing the color scheme ------------------------- This module provides two colorschemes - `pscolor` based on `ps_color` colorscheme for vim by Shi Zhu Pan. - `blackandwhite` based on `print_bw` colorscheme for vim by Mike Williams. A particular color scheme may be chosen using the options: \definevimtyping [...] [... alternative=pscolor, ...] The default color scheme is `pscolor`. See below for instructions on how to define a new colorscheme. Line numbering --------------- **Note**: Currently only works in MkIV. In principle, it should also work in MkII, but for some reasons it does not. To enable line numbering for a particular snippet, use: \start[numbering=yes] ... \stop To enable line numbering for all code snippets, use: \definevimtyping [...] [... numbering=yes, ...] If you want a particular snippet not to have line numbering, use \start[numbering=no] ... \stop By default, numbering starts from one, all lines are numbered, numbering is reset at each snippet, and numbers are displayed on the left. All these defaults can be changed. Number of the first line ------------------------ By default, the numbering starts from one (that is, the first line is numbered `1`). If you want the first line to be numbered something else, say `15`, you need to set \start[numberstart=15] If you want the numbering to continue from where the previous snippet ended, use \start[numbercontinue=yes] By default, consecutive lines are numbered. If you want alternate lines to be numbered, use \start[numbertstep=2] If you want every fifth line to be numbered, use \start[numbertstep=5] Standard options for line numbering ----------------------------------- **Note**: Linenumbering options can only be set using `\definevimtyping[...][...]` or `\setupvimtyping[...][...]`. They do not work when used with `\start`. All the line numbers on a given page have the same properties. So, if you change these properties in the middle of the page, it will effect all the listings on that page, _even those defined earlier!_ - To change the color or style of the numbers, use the `numbercolor=...` and `numberstyle=...` options. By default `numbercolor` is not set, while `numberstyle` is set to `\ttx`. - To change the alignment of numbers, use the `numberalign=...` option. Default value is `flushright`. - To change the width of the box in which the numbers are typeset, use `numberwidth=...` option. Default value is `2em`. - By default, the numbers are placed on the left of the text area. To change the distance between the numbers and the text area, use `numberdistance=...` option. Default value is `0.5em`. - To change the conversion of numbers, use `numberconversion=...` option. Default value is `numbers`. - Use `numberleft=...` and `numberright=...` options to typeset something on the left and right of the number. By default, these options are not set. - `numbercommand=...` is used to set a command for typesetting the number. - `numberlocation=...` is used to set the location of the numbers. Default value is `left`. Change this to `right` if you want the numbers on the right. Spaces ------ By default, the space is invisible. If you want to make the space visible, set \definevimtyping [...] [... space=on, ...] The default value is `space=off`. Removing leading spaces ----------------------- If you are listing a code snippet inside another environment, it is common to indent the TeX code. For example: \definevimtyping[C][syntax=C] \definevimtyping[ruby][syntax=ruby] \startitemize \item A hello world example in C \startC #include int main() { printf("Hello World") } \stopC \item A hello world example in ruby \startruby puts "Hello World" \stopruby \stopitemize By default, the leading whitespace is stripped so that the output is the same as \startitemize \item A hello world example in C \startC #include int main() { printf("Hello World") } \stopC \item A hello world example in ruby \startruby puts "Hello World" \stopruby \stopitemize If you want to disable this, set \definevimtyping [...] [... strip=no, ...] The default value of `strip` is ψ`yes`. Adding left margin ------------------ By default, a `` environment resets the left skip to `0pt`, so each line is aligned to the left edge. Use the `margin` key to change the left skip of each line: \definevimtyping [...] [... margin=, ...] where `` is a valid TeX dimension. Note that this does not change the location of the line numbers. So, if you are using line numbers along with margin, also change the `numberdistance`. For example, \definevimtyping [...] [... margin=4em, numberdistance=-3.5em, ...] will place the numbers `4em - 3.5em = 0.5em` to the left of the code. Wrapping lines --------------- By default, long lines are not wrapped. If your source code has long lines, there are two alternatives. First, you can allow the lines to break at spaces by setting \definevimtyping [...] [... lines=split, ...] The default value is `lines=fixed`. Second, you can allow lines to break between _compound_ words, such as `long/path`, `long-path`, `long+path`, etc by setting \definevimtyping [...] [... option={packed,hyphenated}, ...] The default value of `option` is `packed`. [**Note:** This option is not yet working in LMTX.] Note that with both these alternatives do not hyphenate a word, merely break lines at spaces or at the boundary of compound words. If you really need to hyphenate words, use \definevimtyping [...] [... option={packed,hyphenated}, align=hyphenated, ...] Note that you have to add **both** `option=hyphenated` and `align=hyphenated`. The default value of align is `nothypenated`. [**Note:** This option is not yet working in LMTX.] Highlighting lines ------------------ Sometimes you want to draw attention to a particular line (or set of lines). One way to do so it to highlight the lines by a background color. This can be done using: \start[highlight={}] ... \stop where `` is a comma separated list. For example, if you want to highlight lines 1 and 5, you may use: \start[highlight={1,5}] ... \stop This will highlight lines 1 and 5 with gray background color. To change the highlight color use \definevimtyping [...] [... highlightcolor=, ...] where `` is any valid ConTeXt color. When you pass a comma list to `highlight`, the `2context.vim` script wraps **each** of those line around `\HGL{....}` macro. The `\HGL` is, in turn, set to the value of `highlightcommand` key. So, if you want to change the way highlighting works, change the `highlightcommand`: \definevimtyping [...] [... highlightcommand=, ...] where `` is any valid ConTeXt command. The default value is `highlightcommand` is `\syntaxhighlightline`; in MkIV, `\syntaxhighlightline` is defined as a bar; in MkII, `\syntaxhighlightline` is defined as a text background. The bar mechanism is more efficient but both mechanisms behave differently. The text background starts from the left edge of the line, while the bar starts from the first non-blank character. Using TeX code in Comments -------------------------- Sometimes one wants to use TeX command in code. There are two different methods to do so. The first method is primarily aimed towards writing math in comments. To enable this, use \definevimtyping [...] [... escape=comment, ] For backward compatibility, this feature can also be enabled using `escape=on`. When `escape=comment` is enabled, the `2context.vim` script passes the `Comment` syntax region (as identified by `vim`) verbatim to TeX. So, we may use TeX commands inside the comment region and they will be interpreted by TeX. For example \definevimtyping[C][syntax=c, escape=comment] \startC /* The following function computes the roots of \m{ax^2+bx+c=0} * using the determinant \m{\Delta=\frac{-b\pm\sqrt{b^2-2ac}}{2a}} */ double root (double a, double b, double c) {....} \stopC **Note** that only `\ { }` have their usual meaning inside the `Comment` region when `escape=comment` is set. Thus, to enter a math expression, use `\m{...}` instead of `$...$`. Moreover, spaces are active inside the math mode, so, as in the above example, avoid spaces in the math expressions. The second method is to imitate the behavior of `\starttyping` environment, where one can write arbitrary TeX commands in code inside `/BTEX ... /ETEX` delimiters. To enable this, use \definevimtyping [...] [... escape=command, ] When `escape=command` is enabled, the `2context.vim` script defines a new syntax region using syntax region ... start="/BTEX" end="/ETEX" transparent oneline containedin=ALL contains=NONE and passes content of this region verbatim to TeX. So, any TeX commands used inside this region are interpreted by TeX. For example, \definevimtyping[C][syntax=c, escape=command] \startC /* Here is a comment describing a complicated function */ /BTEX\startframedtext[width=\textwidth,corner=round]/ETEX double complicated (...) { .... } /BTEX\stopframedtext/ETEX \stopC **Note** that as in the case for `escape=comment`, only `\ { }` have their usual meaning inside `/BTEX ... /ETEX`. Moreover, spaces are active characters. So, using a space between `\startframedtext` and `[` or between after the comma in the options to `\startframedtext` will result in an error. Clearly, `/BTEX ... /ETEX` is not a valid syntax in any language, so if these tags are used outside of a comment region (as is the case in the above example), the code will not compile. So, if the code also needs to run, then these annotations have to be restricted to the comment region of the code or the output typeset by ConTeXt has to be manually tested for correctness prior to the release of your document. Although, in practice, the use of both escape mechanisms is restricted to comments, the two mechanism have subtle differences. When using `escape=comment`, the `2context.vim` script simply passes the content of the comment region to TeX. This content is still typeset inside a `\SYN[Comment]{...}` group. While when using `escape=command`, the `2context.vim` script identifies the content of `/BTEX .. /ETEX` and passes it to TeX _without wrapping it insider any `\SYN[..]{...}` group_. This has an advantage when we want to use commands that cannot be used inside a group (e.g., `\inmargin`). For example, if we want to define a `\callout` macro that displays a note in the margin which we can refer to later, we can use: \define[1]\callout{\inmargin{\rm #1}} \definevimtyping[C][syntax=c, escape=command] \startC /* Here is a comment describing a complicated function */ double complicated (...) { ... // /BTEX\callout{Fancy trick!}/ETEX } \stopC Finally, note that the value of `escape` set using `\definevimtyping` is not used to `\inlinetyping`. If for some reason, you do need the escape mechanism for inline code, use \inlinetyping[escape=command]{...} Tuning color schemes -------------------- Some vim syntax files have optional features that are turned on or off using variables. To enable these optional features, you need to first create a `vimrc` file and then use it. To create a `vimrc` file, use \startvimrc[name=...] ... \stopvimrc The `name=...` is necessary. To enable the settings in this `vimrc` file, use: \definevimtyping [...] [... vimrc=..., ...] The value of `vimrc` key needs to be the same as the value of the `name` key in `\startvimrc`. You may set the `vimrc` file for a particular code snippet by \start[vimrc=....] .. \stop To disable loading of `vimrc` file, use \definevimtyping [...] [... vimrc=, ...] The default is not to use any `vimrc` file. A `vimrc` file gets loaded before syntax highlighting is enabled. If you want to override the default syntax highlighting scheme, add the appropriate `syn ...` commands to a `vimrc` file, and source that using \definevimtyping [...] [... extras=, ...] For example, suppose you are using a C++ library that defines `uDouble` as a keyword, so you want to highlight it in your code. Use \startvimrc[name=cpp_extras] syn keyword Type uDouble \stopvimrc \definevimtyping [cpp] [ syntax=cpp, extras=cpp_extras, ] Messages and Tracing -------------------- The vim module uses the filter module in the background. The filter module outputs some diagnostic information on the console output to indicate what is happening. For example, for each code snippet, you will see messages like t-filter > command : vim -u NONE -e -s -C -n -c "set tabstop=4" -c "syntax on" -c "set syntax=scala" -c "let contextstartline=1" -c "let contextstopline=0" -c "source kpse:2context.vim" -c "qa" scala-temp-SCALA-0.tmp scala-temp-SCALA-0.vimout If, for some reason, the output file is not generated, or not found, a message similar to t-filter > file matlab-temp-MATLAB-0.vimout cannot be found t-filter > current filter : MATLAB t-filter > base file : matlab-temp-MATLAB-0 t-filter > input file : matlab-temp-MATLAB-0.tmp t-filter > output file : matlab-temp-MATLAB-0.vimout is displayed in the console. At the same time, the string [[output file missing]] is displayed in the PDF output. This data, along with the filter command, is useful for debugging what whet wrong. Yes, on, whatever ----------------- ConTeXt has two ways of indicating binary options: - `option=yes` and `option=no` - `option=on` and `option=off` The core commands freely switch between the two. In some cases, `option=yes` has a different meaning than `option=on`. To avoid confusion, I have made these synonyms. Thus, whenever the documentation says `option=yes`, you may use `option=on`. And vice-versa. One less thing to worry about! Name (and location) of the VIM executable ----------------------------------------- By default, the `t-vim` module calls the program `vim` to do syntax highlighting. If the `vim` program is not in the `$PATH`, the `vimcommand` option may be used to specify the compete path of `vim`: \setupvimtyping[vimcommand=/path/to/vim] This option may also be used to call [Neovim] instead of `vim` to do syntax highlighting, by either using \setupvimtyping[vimcommand=nvim] or, if `nvim` is not in the `$PATH`, using \setupvimtyping[vimcommand=/path/to/nvim] [Neovim]: https://neovim.io/ As of 2020.04.29, `nvim` is about 10% faster than `vim`. Defining a new colorscheme -------------------------- Vim recommends the following names for syntax highlighting groups (information copied from `:help group-name`): > ``` > *Comment any comment > > *Constant any constant > String a string constant: "this is a string" > Character a character constant: 'c', '\n' > Number a number constant: 234, 0xff > Boolean a boolean constant: TRUE, false > Float a floating point constant: 2.3e10 > > *Identifier any variable name > Function function name (also: methods for classes) > > *Statement any statement > Conditional if, then, else, endif, switch, etc. > Repeat for, do, while, etc. > Label case, default, etc. > Operator "sizeof", "+", "*", etc. > Keyword any other keyword > Exception try, catch, throw > > *PreProc generic Preprocessor > Include preprocessor #include > Define preprocessor #define > Macro same as Define > PreCondit preprocessor #if, #else, #endif, etc. > > *Type int, long, char, etc. > StorageClass static, register, volatile, etc. > Structure struct, union, enum, etc. > Typedef A typedef > > *Special any special symbol > SpecialChar special character in a constant > Tag you can use CTRL-] on this > Delimiter character that needs attention > SpecialComment special things inside a comment > Debug debugging statements > > *Underlined text that stands out, HTML links > > *Ignore left blank, hidden |hl-Ignore| > > *Error any erroneous construct > > *Todo anything that needs extra attention; mostly the > keywords TODO FIXME and XXX >``` > > The names marked with * are the preferred groups; the others are minor groups. > For the preferred groups, the "syntax.vim" file contains default highlighting. > The minor groups are linked to the preferred groups, so they get the same > highlighting. You can override these defaults by using ":highlight" commands > after sourcing the "syntax.vim" file. The syntax highlighting files for almost all languages define other highlight groups most of which get mapped to these basic groups. To define a new colorscheme, we need to define color mappings for each of these groups. The basic syntax for defining a new color scheme is: ``` \startcolorscheme[name-of-scheme] ... \stopcolorscheme ``` where the `name-of-scheme` is whatever name you want to call your colorscheme. This name has to be used as the value for `alternative` key in `\definevimtyping` or `setupvimtyping`. The bare-minimum setup needed to define a new colorscheme is as follows: ``` \startcolorscheme[name-of-scheme] % Vim Preferred groups \definesyntaxgroup [Constant] [...] \definesyntaxgroup [Identifier] [...] \definesyntaxgroup [Statement] [...] \definesyntaxgroup [PreProc] [...] \definesyntaxgroup [Type] [...] \definesyntaxgroup [Special] [...] \definesyntaxgroup [Comment] [...] \definesyntaxgroup [Ignore] [...] \definesyntaxgroup [Todo] [...] \definesyntaxgroup [Error] [...] \definesyntaxgroup [Underlined] [...] \definesyntaxgroup [Todo] [...] \setups{vim-minor-groups} \stopcolorscheme ``` The detailed syntax of `\definesyntaxgroup` will be explained in a bit. The `\setups{vim-minor-groups}` line at the end maps the minor color groups to the preferred color groups, as per the default mappings in vim. Suppose you want to override the default mappings for `Number` and `Function`, then you define those mappings after `\setups{vim-minor-groups}`. ``` \startcolorscheme[name-of-scheme] % Vim Preferred groups \definesyntaxgroup [Constant] [...] .... \setups{vim-minor-groups} \definesyntaxgroup [Number] [...] \definesyntaxgroup [Function] [...] \stopcolorscheme ``` A full setup for defining a new color scheme will be add `\definesyntaxgroup` for all the basic vim syntax highlighting groups listed from the vim help above. If you define the mappings for *all* groups, then you can omit the `\setups{vim-minor-groups}` line above. The `\definesyntaxgroup` command has the following syntax: ``` \definesyntaxgroup [name-of-group] [ color=..., style=..., command=..., ] ``` where `color` is the name of any predefined color in ConTeXt, `style` can be any predefined [style alternative][style] (such as `bold`, `italic`, etc.) or an explicit style formatting command (such as `\bf`, `\it`, etc.), and `command` can be any ConTeXt macro which takes one argument. [style]: https://wiki.contextgarden.net/Style_Alternatives For example, if you want to highlight `Todo` with a frame, use can use: ``` \definesyntaxgroup [Todo] [command=\inframed] ``` _A convinience interface for `color`:_ A colorscheme uses a lot of colors and defining all of them just for the purpose of defining a new colorscheme can be cumbersome. So, the `\definesyntaxgroup` macro provides a shorthand: ``` \definesyntaxgroup [...] [ color={r=..., g=..., b=...}, ] ``` where `r`, `g`, `b`, values are the red, green, and blue values (between 0 and 1) of the color, or ``` \definesyntaxgroup [...] [ color={h=...}, ] ``` where the `h` value is the hex value of the color. Modifying an existing color scheme ---------------------------------- It is possible to modify an existing color scheme by simply redefining some of the syntax highlighting groups. For example, if we want to update `pscolor` so that `Identifier` group is typeset in red color and `Function` is typeset in bold red, we can use: ``` \startcolorscheme[pscolor] \definesyntaxgroup [Identifier] [color=red] \definesyntaxgroup [Function] [color=red, style=bold] \stopcolorscheme ``` XML Export ---------- The vim module provides a basic support for XML export. If the user-document contains \setupbackend[export=yes] or other valid options to `export` such as `export=xml`, then the vim typing environments are exported as well. For example, \definevimtyping[PYTHON][syntax=python] \startPYTHON # Python program listing def foobar print("Hello World") \stopPYTHON is exported as # Python program listing def foobar print("Hello World") The name of the exported envionment is `vimtyping`. Inline environments such as \definevimtyping[PYTHON][syntax=python] \inlinePYTHON{print("Hello World")} is exported as print("Hello World") The name of the exported envionment is `inlinevimtyping`. In both the display and inline environments, the name of the programming language (value of the `syntax` key) is not exported since it is not needed to display the parse output. Instead the name of the colorscheme (value of the `alternative` key) is exported as the parameter `detail` of `vimtyping`. Each line is exported as a `verbatimline`. Each syntaxgroup is exported as ``. The value of `defail` equals to the name of the syntax highlighting group _prepended with `vim`_. The name is prepended with `vim` to avoid name clashes with other elements in the exported XML. Strictly speaking this is not necessary, but it does make it easier to write CSS selectors. The module comes with a CSS file with default mappings for the two colorschemes that are provided with the module (`pscolor` and `blackandwhite`). This is meant as a simple solution which gives approximately the same output as the PDF file. To use this CSS file, add \setupexport[cssfile=\vimtypingcssfile] If you already have other values for `cssfile`, then use: \setupexport[cssfile={...,...,\vimtypingcssfile}] Note that the macro `\vimtypingcssfile` is defined in the vim module, so the above line has to come after the `vim` module has been loaded. If you make changes to the default colorschemes, define colorschemes of your own, or want to tweak the visual appearance of the output, you need to tweak the default CSS file to suit your needs. It is suggested that you copy the default css file and tweak it. You can find the location of the default CSS file using luatools vimtyping-default.css Copy it under a different name and tweak it as desired. A bit of a history ------------------ Mojca Miklavec germinated the idea of using vim to get syntax highlighting. Below is her message to the ConTeXt mailing list (circa Sep 2005): > I am thinking of piping the code to vim, letting vim process it, and return > something like `highlight[Conditional]{if} \highlight[Delimiter]{(} > \highlight[Identifier]{!}`. > > One could modify the `2html.vim` file. Vim can already transform the highlighted > code to HTML, so ConTeXt should not be so difficult. Vim already has over 400 > syntax file definitions, probably equivalent to some hundred thousand lines of > syntax definition in ConTexT. Well, I don't know (yet) how to do it, but if > someone on the last has more experience with vim, please feel free to > contribute. A few months later (circa Dec 2005), Nikolai Webull provided such a modification of `2html.vim` and called it `2context.vim`. That file was the foundation of `t-vim` module. About two years later (circa June 2008), Mojca and I (Aditya Mahajan) pickup up on this idea and released `t-vim`. Over the next few years, nothing much changed in the module, except a few minor bug fixes. Around June 2010, I decided to completely rewrite the module from scratch. The new version of `t-vim` relies on `t-filter` for all the bookkeeping. As a result, the module is smaller and more robust. context-modules-20240428/doc/context/third/vim/VERSION0000644000175000017500000000001314204014405021261 0ustar hillehille2022.02.17 context-modules-20240428/doc/context/third/cyrillicnumbers/0000755000175000017500000000000014613513620022641 5ustar hillehillecontext-modules-20240428/doc/context/third/cyrillicnumbers/COPYING0000644000175000017500000000242312132362214023670 0ustar hillehilleCopyright 2012--2013 Philipp Gesang. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. context-modules-20240428/doc/context/third/cyrillicnumbers/cyrillicnumbers.pdf0000644000175000017500000053507712132362214026556 0ustar hillehille%PDF-1.6 % 17 0 obj <> stream xڝN@<žJ!CJ!dYym`AD8קxOۑK.0E@J%0 00X[E4cΗ՗[6=7G_Yܰ_C/ؙASgkdcJZ.TZT@UӇoe+}enKW|܊tx}_BG }?37w&kB߉޷29Θ=%-]vx]=-]`;NI<&C$t å endstream endobj 23 0 obj <> stream xڍN0 y\vIl^`x(1_mlCUScCzƵ?k`(846{Z۷vx|ovwp_nHIT%|ú_<ّ?%%!,%fA Icws54M ƒ1k FC%ShTjVJ3XBbdGL&<#XgV, !zA;w'3VِJ3Ssi1PXPwgg "WٯLUƨhgw3;`</O^ 5[U!^.vJun?}t~( endstream endobj 25 0 obj <> stream xڝKA }ڰ-m@Bb7 q ۍ EQ_˿q7?_3b|8=~o}|z>}~܇\G]܍MZs=ʐ_2SY aq9١BM`4I(SxDbZ V*`Z!U]0bA!WD4 ܡEsXA vKMc Eq*q**S#; Xp!rBA ;@pHWLgy6lFZX cM! i]EQuQ\7;(*gTŲTW‹RU/sHC+ #Rzc}LfAH,J ko Tmpf 3f[j櫞oiѳ2f2[Y&FSݲKEeÚH2Io}a6' î)lY{kNaESbGZ{g2ܲI QlrR/@꼩-/ȖGvXKv#_Utbr~ qbXS;!kn^KvLw {-CBi+ԣ\74>ǎשYhWƘ|mbhN.Boyl8APS$ܠr:{<"l7> stream xڝˊW H .,=sViCui8`a~;P)i{ns/_ϝ?><~}&@;O+q .yu}_zxp4Ys[ڹ'T kFNr;ZdkR0UʧRU.]ݲaWB*W>4 W]5e(BQu=:7:B3Q8k!s77DFYu0ZsByΩdCzW"hσдeC<#L\a tvC!P  0CJj ot{˺067 (p2 k6oh bR+L6U,qEt@f& 0gcEN1V'V]о9cJ5/d0qudW%$RF waΨy=Qj3a8Yb0@b}:KFDK6ތTz[R06 |K@HX-}TTIA=> stream xڍMN1 97F8X `(Ӣ*TZ4%86FDˀ(t]X,`w|Xoz;xY }5(ANNwx#w5QZrWQ,R KHJ 4PЈKbD \PArW3ѸonYT2Geg 6(Ie7tn%jLs&燲?5 V~mgQ~=\2FG|3`}s7eB}hV0'+Ta oS>6{ _Q endstream endobj 31 0 obj <> stream xmn1 ٰؼ xmZ)荮&vϱQ4ZwZs#Ita/x?lϏwgq异 wV }FB5uT$JUܠ󰞓حN6giZ슚p 0rNU TNmv<9`*))<'w20v} dܡrC^@9]7h7? È Y07Gn9 yLTv{ * tm;N%J?*'T8e j.y(':4 s "-_2\0~&IF;t֔@\Z>h0CImfyܶo/f<|=~6 endstream endobj 33 0 obj <> stream xڅKn1 @>7l#L TBbޠ:P ƚ*l?;&CD#Mfr%낫2Zxb:n0%OI9,}76OI8jP "(âI8j u&yq` pʞO; endstream endobj 35 0 obj <> stream xڕێI )ۖe{_ i/7X; `_w RHE|Sᷫ az_~N]Pv>=n^_><|}m<7luyÿryWRΤ)K|642YӶ\5D"F+ԦU ϛe/BQ! !A 5-%ڙpwE>Wy{T`T9<20S Ertrg1 (B6,Uk 2B]pX;~8GDT#is6xB'BUi=p4EmzdӴX cd? -tn]"dZ6` ޵CtHaԏW]yx+8$n@ퟘu al`x}YtLM;G&$5hjӰQm (4wG czAPɍ+,anRP#*KL:mDGF#pX\ǁv1x@ЗsGwLPe`!HKG$b}GFfvkK6K|禅c x;ONZKRʂD3/Pg7 ͔ )&pSc!TZþR bb%.8|Y tew\5dʹ>ɘ%p13Jb2;@1 F+dBܬ{x`|t{x+k,wo!Tb@-BϳBp /d(#cU{& !)ZQcڔ݃מqv:; endstream endobj 37 0 obj <> stream xmMn1 s m+@]7h'@IM&`}%Iv9662mM;n/O{OyJ<9:_O~9ɗL3S$;:X; vPumN:*\ f JOм\uV `+($;em-s!iAm,Ȳb}W%ջ2/KtJ`T0Kj{>xQ=b_/= endstream endobj 39 0 obj <> stream xڅKn0NM<93@Y7hIaiz Cq)Epa4?Q$AP>]9-/Oʏg \d)~=-G޹GL:Q{H6[P`%(B f7HڊDRo#:*֩I@ > stream xڍ[n[G ߵoK7@jꤰ4?ПZ1`>3$' D?|LJPs~N>O=ǧ/_O Vuyp`_T=Ƥ,iBF&;t>m !aC:*TZcrPJ߀Xg1ա8dz9sA3e2bF:e,\QhX5v%*EZ! \ Xb@P jWtiG!1rҡE-dB= u' j 4Ӎ1UIoPAi8\;?C8 |Jѕm(7vISm)O+hڵ&Oq[ ujpyU;9.ܕ/vB+ujtIBq9[ZUR:`Z1ыb|@ȚE] Dt>5l1Lв鍂/\8'`E'A)@5z/"P\黊t>%*f=0&C}xo@ćr΅J³vhvo8u˘A xUP􎏔RG0&ݬM&]Ve"(\* jsؖV4MM v_΄ z !׏k18qF!;g# ?-;;͞5WջC.j̇+tzaxTLWU*[W&z^Pp;ͅpCP&/nOJG ԮN+u]69_W_w_y%S endstream endobj 43 0 obj <> stream xڅn0 ໟB^J^76](%Dh%т i_oc`",Eܤߴ{{~YqYzݫkw"G~l* =+ )T 8,SR28 jo:SOFdh $eC"G  c3ڦrv(J)d1RZԌLc)[5cÄ@J53jc+X ,s6PGb@ͼ82d05SI5 q>W:V¢Wk5M6Z'U9L{~a(}n Otc+> stream xڝMF :6"?Y87H:8HwF+DΧA?I9c^wΗOǧ_Pr庮=wD}gP/4؍ΗcrG!28I#JLmJj4!С₿ .] #Ðy&XR B3Qb 'rԚd3PITULFX1(;҈\Kl~2` 1HZ4wv0Yp34PeN iGY6]$$mXH.nJ}UdFuLcd+_:pio#/ݒ (22c閵:VF%үH6˩0a7LQ4.$F(WoOA7Xh)jhlbmY)I% w\Y#,'08P{;l:#㊼r>P0M|=jinr B_5RFMl_j.x!;bKc.q"s2 -X0^҇t?NyB OC'F첞Xiڠ۱fz+U5ߡ.@']o9'ۼ xkݻ㗿žl endstream endobj 47 0 obj <> stream xuMnA }dIHH,0Ipgdh4sND<6Cv==mww8~}yx< y].{]_~~O8 ϥCh`OGy!N:Ʌ‚LPK#XǞ$sl R('"͖^AHޅ-PIU4BQ#服f̅ >s&:mMDׁۚ xͱT媈S,+ƲbtȼYZ┃qtf.A]%AmTbBm.Œ`/$Rʾkgm+AB/ u4VZYlld⌶:s^WaI&mvj%"N]Y+'nӻB(i,u7j3ڴoX~*w8  ]sE5Lh˭D<_Yc%Lnj,a 5B1`#E$0@xU5.=@LVS` ?iLt=oG_h#X endstream endobj 49 0 obj <> stream xڝn%E my$$p20o$BQ_l%ttVfxWfVp+X*usYK.&.8(Xʽ6 vrk[WdQQso鑮)rP2V(7 Ipwٺ$[ ofOϦ - +|^%\Hކ 7F~ҹb-زj Zr#c-3|f@+r(z^1;rD.HkUYUu$-oS{1FfOf8, xh}PF-rKJo씱-QJx/!bd 77{җdBk~ͤg;RU+f!Hv>ǞOTQUX_70ĴKBݎb+6kԲaF6euFan;~;=(Q endstream endobj 51 0 obj <> stream xuTKnA )fÒvX `Ip_ȂԸvC;FN>5}}ۻwӟ~or~߂_a1 waVXHGq]NBYtV"TQ99C` oq mo6 anTYE *J'Y!FX4$2j$,tnrg1|خSaNN| P> stream xmKj1} m~C 3v`cR 2-[_T ؠ~(:v~ho/{C~<^^?09cbcY:5!+Ht"be]}[0jQm?Hs_2z$a)D~zc0DF3jA fͺ B@9^@:MA!Vh߲.Ґ;tY-B A/E$`RIO[.lXTK| FwLXBj}O+:(`YG%v C,u,r+-՘:AN0{c ^azuА X !K6+ ̣Ih*n޽ǠQR e:@YF/WY Wh߸Gt@bZ$7VDf> stream xڍn\7 )VH*/@4I0j񍣅1fQHR'h8wn?n]~y<޽kk?˥qo?=|v{zrC{}g~o6фq+$idCcNñw *SuuN:uaLJ cb~:Ԑ1ԆLjB6B#'ˡ8KשdM;9}fHKfNT,E؆i.bi :ywFNpn` &Ds!SvrDA\vCbRT*:bH&f ᆆoP \${_ .:rZixU Ce@.dFwTYFi՞3fɍ{@FFԒ%6^\ᨚQ )s1 A2XCS٧E !ɀo]E @'1h rN2WenƍaaXҘP0X@vlY#UQ Č ],6%ٱ'^͙ *9oيXyD(niGw<Mڲg0t(JdeW ܼՋbOr凒 R6Wd*Z-/Bl_6*92ߡ+w zEyAcTR1vOS*0q2DZ3YCĈ\cI!,eJuQs RSjMpsءyz|nܟ=H}?~+ endstream endobj 57 0 obj <> stream xڍN0 mC/ /R[XPU%j;="BX{lôvl`8}A~9Pm?OW3\k1׸?p ͳfF1'0 1iZG[])bAUBnP06D(` -9Q3&YB0JiL`zL*"7E7݈_R*D2j&)KΙ&PƐ`5O&Sd?'{Σzi͗925jߋPҫ):O} endstream endobj 59 0 obj <> stream xڝˮE ɶk DBboC8 J_+疮(:3ߴo7Dt<|!y {{t{_<8~{[PֽZk}p\/xחMOIcPǧ,l;tmQ(De7;g$IԮO2T MlRtA;/ZtiT\!f%ս/BS }dcyHn,6Uݠ*sL+`[ԕF °+-}Jg"xHuD}-G Y^+zһT. MFH0GbEMU]A۱B{Ir$-~z gMNWI"KؑqhSv:,w;z+[BzLR66jv6L[z%t0V?D-^KosU{ΏZ D)TfTpݢa^AI\eH"f"L d9[7pp 8nHi("&k:E"tΞy@uzR JβF6BC+_R-ZX:ߤ4\z;%&plag+9G%,_Bx5b;!J޽Y endstream endobj 61 0 obj <> stream x}Kn0NMļș ȢA$N ;HJCʂa?I|AtH\Nica",U.4ݥg:|yy6 -TYktnxGjBi)aMtAr]DK:HՊJ#fדV{jGcSjJˋ"r#IG󄘵iǦ.7S5E7䥲5t0% I(4nm\ݱcoE5}֒U ߳0FX6my'cCc,7 ,8Z?W:_&fmȁxy0Io :t ضT!)Y.~{:/꣘+QI H@5vIΌ/ԯq6 endstream endobj 67 0 obj <> stream xڵXMoF W,3x]==E}#yj#,c>>> %"4}t{?}X?$WCHl1ZIvffG* f[2%R0M[-'ANᮌ̯`r7e$CHⶩLє`ޕ̘,I fTْq/uSTbm3ui(\TV8cMVƀ[8L5q)(sWӚj[Ya˔ʦ<,y%X̚JOCex8OG*PEؤ"j [ߐa]\ƧSQӵ l(Ъ&e^av}but_oBPZ9Em} L8zbfѮvاRx_ީ0rm} 7DhY=S*F7#%ŕd{T>JF%Y43 0K!BjEN)H$ R<"Ԟ!AO%X+>%̹+ /JH5 iTmN !t[)׶f)W*< 'Ck1R< swMRXs=2p(H7LTH0=ܱtڑ#p\ [3=(! :΍˦PnR&!8ĢӞBQBƧЩy X2OVi3gyuiFlQB:ݷ)/C7m0cKbFнvd WH׽"ـ>8d`Mt91@jHU)tn`?0`vBkDz"2LcVl:#~ dGa.I؜ #]ζ]: 7Ͱǫێs8*o'܈5; +-&gIwacMGeGY:n|/>a5v>'į}TGxD~CF|ηe.y\mp]/x*&ht<-\.U8dWkIˤѾw3Rs*8Xr~> stream xmKj1E M<S}@ ,!yql;-<0hiJ4h< Ϗ{Ajnouw7^~~| ӯϵ#A?#O?a`\B dA{:PeC`u˃7r쥆<52U # <AeY;W)w=@Rf&|BK}*q6+|,(Fؔia6c]EX.v_<^Q ,WB^Nʹat 5kSYȍm0Vl'KtI8Nv,HY1|HV v\|u8S!X :z%QEmdKCmWQ(lgbJsdr-B$jP){y ͊[`{wLt+HӑB^'t;]2v}}9q_b endstream endobj 79 0 obj <> stream xmKn[1 Eod*Kh_S'2A-e}<8>8(&z<<9>O2청ET_\{ ,du;$S} ϴ:>N\vCUĹ|"$ `;HASV9]BfʪHUUpPPJt[m^5XB٣ﬧIJI,w/ 2e=e7PFd!& kR05$`Ejmй{d|}ݽqOo?n#. endstream endobj 82 0 obj <> stream xڅj1B\h>@}v:)vHJŘ]f!z}Lp3fRYr]N!?%S<^ҟVU[oVw>%, rT|!CE3)Q.Nb À*k}%Ve]U )Ѷ1r*ZM̬uWhI^ xlHL2`#C DҞWv.ֻmJhD(uZ"ZcG¶7stCkw秸F+iIwiZݦ4FsCGTp\UvZtiGں7}uX: 8W CkUc>Q\ VذzXɎO($s|Ďj[lѫ^ˑmv.=LK endstream endobj 86 0 obj <> stream xڅn!;O%W4 )> stream xmKjA }x[ ,rf"Հq1 QRI*0.q@pPLy;rO} l߿T_\k6 Duq@%I,C0I!vd Qt(:Z#w!Y},J,UU\t L+44i΃`Rs2X v)!ш\B7&,CaSkiX(CD˨BA5SJY&< H>:}$RFi(vLlIޡ ֊4tͮ;XY:yZ]|\KҚ҃tuY*e HPN#ߡ.Z& )D c/~w@@Y4s&QRIgVNeuPd\hX֕@F{ rTabܡsw\^ endstream endobj 97 0 obj <> stream xXKk$7ϯ?zK=r dO&daw5R섐]VKU$D>u?N]ڝY!Y΁;vOab*9 ik;~_ !_3KYǏ((y%կ"*tZ2zpze .iŌԈT=$:Nc]1l_dbHԒ_ҩ'dNPtNMSV&c<' k5IX@Qq#siʃetW&)FFB oEZpgq܁r'kwdk㜩F$ #J Ezh꼓WjT7x Y)[I\(4 )i4Lo`Btd?a^j5RFSEwQHG 9K"v%)C9#Tͭl]ZZp9<./`|\=-"}),mn].,݃(G{)m T׀$EnX $׊EѽOUoE,1q)ZbJZʛ6N T Jֿ ƥRwDW62Zڟlz4~9fkv3"2Gc)t*CΚ9?n{{B%x\~d>އ̏Zڼ^' /ĵKp eP endstream endobj 117 0 obj <> stream xڭ=M;nwS) 0 LO-o=%^\CJ*)CQEK7W/_?|}zDt_79iqo~ˏ_݂|g?W-%cy_ `W dq!_peݩR Z*dDby7pN>}O1O? t>>X 9O9-x}(e2V `I5~+qLOqť%{gsu-#KYDP"cm Lj1@¨F= %4N 8`|(1- iWSXb o>ؾ ⑊IDc$*:!j`I=eDUyJ)Ȫ4`UhUuxta7˻dXRcZBp{^3XՆ{gȻtEx=2@oHFg"Gi`5+ FXN 裉:jԬK媬*/GMStz!$y@KƤ! q@nvv\!(H]k$ٔy]c؜H-(li; +Ԁjq(!>V}^9b3R fEhX^xm%$ʗZ6&z> }D`Z6]^(t5c@ˮAl_rM~C |0 i9pha’2۠+f%,caI*,,-_Noa{!0--#4T'9YX3S?R? wCNf gaqg<mMJ"jl(l^(`CSE }C{'J]ߡ&N`QrFWĪ;{qC/G|¸qv n f_mB6j"Z.6jj9.4(>4NJ%0HbJui}&)Һhaxm@\ߘXm|o9\Fq}&7Z#GwI"KTP(7*I~D3z>{&LIS{e]|8q4z"41djܼO؎x~O x_V(lͼ5\->7-H%_[|7iF|R[aQ!mxwL~uJPZ)2 [2#5r\+Gĉ,p JlŽ.ŕu鼀pcT4TL'x%iXl3g\Ĉ~?!9e1 1N"r2dsk}JJAjZ%ջm\Q1`WȲطg]` v. uy!WjI|o((%xxxE*< 8̰M;gDpb Yj'’䲱hN¾͚tHv}lq1(M*3QSxvJo7usٶufh"FQ( MJMSBH<|rVʁ9۠S/. /f ELB̎/CX (Ħ6Cfʣ'cCV?ǰ.+V̘8(SKUkE5VT\vcTW˟AT̀8FV6&!vFl$PDq9,T:)I"Z$ h`T=!_I1^VـgCΈ )|/d0X&Y Q+v!Pxfu i]AL&Ԅ!ќo~p-s7)1{u'%2[i k0fZ~vd&G~=Udd]X*6hddY$@Fp<~52J|b)ISX173Qz9 T -QB MIq6iFX^+Į?ʦ$Gs1D*!\c#T%rE9qӜ %7ER٩T,RsKi9gCVB"Rч3Ͻ&y;1_~%JR0aSlԪӊG\ ZɱWI|2EVASQZfUkq2^k2]av-H"mVG,&\!`+~k!..e΍6%IY/ilQi%Yx0w|z.`oqɏ"w5i+m4e#Xj:jI@E RZ5oAA !rKRc1 F;V ޱ YbYH# & KeyүA&8✾&t uNKP -4Q%Ý١d|#iP )KL9ΐ؄<@n*$jfI,a̙x]#IC 4Yo7IKЗ-rK$_phWOvt{P!ds1%N*ҖU. $Wˊ4vB]]2^<\r]e^aa'.+h ̅TtlNARQapűg,ָVbް@-Q)`Y(Lj}Ut @$]]4-yfwRê^p1^(y;E*b04C"0)n@J܈RǶp-֭ݗIU}?a;)hm (xYUҬpu> R9 v~iۏ.Z2Δ 2,! ZD݂GMYPL iC/Fyh"y!iUGe<DT8ul5jS,)W5 -j51)3v&dP?3$ɘs~.Vv(c,CaiRawм-D^ I0C ̮X}gūUcZz"uyhnfT(s.-~}^ h`%7-U~f_J[299p'C%Vـy{BPžK=$BH(֖ s HV%c6#+d'T5W,]`g'y Εŀfuf}Ek(&v& Fʃ0E˱qL. ņc5pa 6%E2.g3X4wRg6 JG i(pЯZ\i"(еU8+knZMdp,u`^zX(fg.PϞ4DjPjH)j{(-o!t Ma90\|T եX钼r9=J^y5QF5ؾ1*>9ê/K_jMy =#qpbC` {QBO;#֊ 2,{! ${'h,Ӷ{㸠z%j뺬hH ÇaG(EJHV{BI՟viGP䱘A NՔ Ԟd_=e'e(MX8VJ?18祡A|pH )."D9`Ŋ*<@7P!Vc3#-WdL kv.vߏɢ&,"$*'M{ؙ%81oڸ^=Ue(#IFKfcy2XG4xloK,m+%} 4E4I@9=w_2GUd/r|0k= ^_;ݟҸұ2cрQ5] A`~u] endstream endobj 129 0 obj <> stream xmKnA }d[]~r$$)QKN0SMv&|os| eꬑ羇 ]+rsTkrH fC_ghcMYՔG3BtATP/Lo`n){A{G-.z>V77 endstream endobj 133 0 obj <> stream xڝ]n&nS"8@v zd Y/Ou}Xo")877 --~כs-ER]IoŠ}:~AsK׿?$׿߼_ZJ>WLVy]XRĚys2l]|~ɵ]/!% ~ ^"GjgUW]uPDN~X\ s.v.’21SҺUє6%y$aq)Ѝe~'>yr-o sQmYOҒ3H14uli QW]%,jN~IuCʋR*=E_tʆM -,f8O3 -..X^D:e {ӊ_2E=3ӱJqDIf LGYV{ܢn5[L( .ĿvTBKMFSԲT #ǰ".*FRH/'9e (R9,!qsY\eqsXv{6d;$,>`c{=U5/1#6[׮$aC\/~v^RU).I+J%U;#f0jv*4zNڒc.v/~> j ,*쫐o6CdJ U妶F̔eꌅTUKqbUvRKHZ`(zQMYG,"KnŞ@U@fb$.1d2AjIaaUJ`Ul4[,byAf*VWLRTm`w,<FYLLE5O/|]UjP,ƥHKdI<0gȪ/d ]Xa'ܩvvg5A&9*JJv]6l F:!8KPˆڮˍ<|HǸjGLcb3蓐Z%Zd-Z0vLE"Vj{XaտWUˋEcFgQѲ}/iG8*L88 OWYx C6N=9?tCsڱ =)+FHKu\NŀZ @fv_FAS/]o_D8 D|Ԩu.bT[ǩDDKAJPiuSF=ۑCn'^@Rq96|DYçFsRV̥dFLԫK~@=ډRE#ΫQ&uD}US~tg\i>Tg%zJ)5)Xv"1|R`:31I3[=8/P ~FɈ H=t,1QK;zŦ+͢R9<7'nA;nzV'R7JJu5ptz@:CTUS=4 =g Z2ng4t՝9"ÛA3!h\|X&eݜ*Ey,`a[5fH'('VrzBcj*PS9s՗Y_SyYyXÚ -YXpip/v cZ1h^M =n趃pR 8tKT$*uuhFj[{U-g5\?p ;_DIܑA&nw; 2 %&3Q9 ʌV)"t}E`˸Ck5!Շa9!ٰ>|v5C&+kw+#?1"tߛ2sB2ZVo Y`K`:@Tlڡ3Z%_;>{Y׵K\{C@3i&6Y{f~;r2ص7>ٵogB}hV&-~JνSt!J%;gI%~ܘ %@uJ>L|0M@iڪjp_4ՊU7पUNHp[UQΞ.8!辄yO (o{Q#~ ?ll7%ODOB0vMF(\DfǢ%;9qu`[C=z:u/fG\{ 5P-'_ ~A5|c"0*E; "}|of?C|>3uѿԸggnUߓm׹ի(N}3wsݮ2SUٹߚ78ɽJ6crrj#ͭ9Z[99{/R޿&*>=\a#զg*VJ CPlbRg@&#C\7&!ڢ5n)a"@OvqvyHʈv-͆U^,,GF%"3xR[*= `K%!%- ZHUۢfJIGN)sypL B2\XċE,=4۫Uܝw\ h?@pq@Q(͑S86RxO}PĻBZ \Rn7)y"6Z~f=S. a$Ͱ5*(vɵH]jJpU*4BV{gޟ%+dY77CEʶHs[1"%"Y ػ += E>0lC͙LJrr BvgdXdgj]V"C1hS@m /\EMz臐Nu ş?u^J!rpH\}2=),Tc*uZj>.E :n}۵TŚ݆" Inh%VJ0$Oѩ_G=cqf.w8;y%6VFn')qW\#_f7ԐSqXQky T'3vRinV^p*IC_k=pu.L[m![+˽y"r)R#V7RКB)ݪ2)%4rؗ*]Q>&'5ۏɅJ^;Z_e( "B{=|ˎJq*"-ݨ>AO qc. =H7!/su:R%<M<̹nCc_B.V$-xYJ@]}Š&x(dիMiB=!˅4; =u>ba b\e~✫qxy<+{XO_*῞5q%&+%PV#ostUFi/0 {ݍKy T|59w|Un:UX$Ń'ϹjN+/kt"%CL{2(&rKAY^cEʁ>vKcơ 2tyF/X (@)iq\J ƙKﴯ=F.羷@#oqLʨٽ4KdC/4 {>؃G%F;t`i>MR1z#xOºDja 5 IZ%Y m1pZ+tdP9 yeXZGJD0cQO~CYqK\}ZZJ~b:AC'в.tf?-; zefX5yIvZ0ʛr]0$D?~ŐU_!4 =:$YBFd^ HF18յJH)eCQFH[\ {)Tfe2k7 %uDǍ~'qVС^POʈ^Hj|;Etk]3CV̠+$K|Uq5l)эij[/>p>r)Im=DtoeUAm]cE2p-QlYDb-^?0dq36.ə"-ڤ{?6~$Ifׯ#Ņ1M [IPnؒldXgh   TӛVfczI2A>za'AgMEV~_LGN b}n "‹Z?Y|_Xz Wtg/+,Z OV)^rɈjk tR@Q`fd@@;b)kqD̖↼^8a q< Ezgs*X>##MSΣJX)R`^OL7ڌ.Mz:RSi6h&f0"/7IL׷U؋>P0XFRz{6A',A%* k[}^A;;:KGB y®\ Jls 2w{N]1+־ؕnR k|Tכz]6nЃ!+[7 OVs&?|=ᯕxS6ɋw?hU}&mk@_- i ,lş@UltIdD*ugvxgE(yxDq2Z+Il[{*/1J.@1OZ*Cayϐz5i=!ٶY?v _G _B IbPZr0[ ai +vVnۥ+wۑ#CW94 :ڵwśؔ؟~z'=JC?T;#_޸ [/BjA~!~ƞpd{G5p܈grn:_CP.YGsQA =9f5+SH,س|^ HHxّuJbZÓ'sTVL 3lǞΎHϷRzr37?3\}pAݔCb*tT]Qb j3T+΄$nHefV5Gl1+ö[㐬*?aoqz=xcpBOV'ܢx[xE0枔">ae1HXkKe5/ JO];h(-Am!Wa>.<4ٵK?m,THrgtOKa|.f)e?~@$08Rk#e3ƵHʱT-x@>kK+ųq6? AC6sa9j{ ͝ǩ%ځќɽGba{J!aU›*!GER!XB<% >}8z|B;Bh2\Z`fezt#/JDӱ'uXܲ%7FSQ ȥ !'1ʡIO(Hڗ,>T 2$Q. Eqz^}-]rw VrF)3.0jKQ&7 ŠԾߍ38uHG»Y3MГtH!kxr-.2[IFQP)'\r%-Zs[G=}y²=N{f9ö#|F+gkC=pqa endstream endobj 140 0 obj <> stream xڵˎ$>_ї,zw  c;~HIRZ'17)R,ƘS^?0뇇n.y|b/0^>||dо/^?>Oǟ@/=ꅓ ~<κ%9t_>>`%!h}o`16D /5.4Ͱ6|o/-}DGKvpy'`j}0 D^]6j60㥯v3P6Mrwzޯ\;o {EbyKpm[êe|[Znˬe)u%]bO1,0ŧV JPx$(bO'J@z<"Ըub @lB^w޽Gc1Kg;Do="c\ 9$S/*g'Ҿվk},k׺ؗw^ Vl9zO7)$bF!=xq-&E$(HKD^+ }^9!LHo/=5a]ǰ_@yHLLhZ 4-C$S+ef9SL,@3d?:C0Ӵ.,!:%Au1A(LQJiS1~ARZN! /P`m١֝~&aALN,fgn.pWqr)ISvCgRdؗF: ՀnÖf0gI1jh]S,=0[yQoui?thZWѷ9~"Hx3b*7`٧iR`-w>f`2]۷C[ 0s`d͞‰!Q^ S2W,—lE.]6oܷ ^3w}m8s5TF*aWn .&LHcfHԕm > b9 .6b߅-l'"Z(c_w Cu~q:=5VNZ1G) uR7IzDz@˜D_3 HyW8D#㏖z_qA0Jn)yAu-.wSׄokǜ8S Fn }1&R|K?A Цv%PNNߓ[u+f ݙAw { =Mʋ_[3sce[gWkcoVc:15 F}+c]Y[5V_˜Tzۋp&/p׋s0x殓{1-f,/-ve9'q}hQ|J OH 7AۆPl5jk'ҕ%ZjsRQk|jܨяjLzC5(Wv$Wl"Gd5m2˳AjWAJ&Ae%7C=v|>..`tԲ k OQ$P9M/,ʢ c2m܄ʱ OlOWUliQ q. a RI@&QO2/皴:}6KT:'7ؽHY AtF=%ȽPE*Nnc>&E%^*ONԃ_=wggB&(`ۤhDKEF(jvR`!F->ʞ^uK%(#T!8Ñ(VN)gArAhd٫.J*bu'ȒPG;ԇوǭ~[!H;_YoXkG,V~ yXbctmT5Zuma;1{{e;G韺u+rb q/A5Ы^:as{q|zf.0=;a#gKMʏP5]pCk R- g2{~OE$c^>7{@'BRGU mME CK%; -B%{΂G+߿呌ɎB,oQ #d+!ۤNoÍǵPh2s_ooA}Iw=.qrÂxB<o$'Č@I[rnD; RH>5l;rKb'\ 1-ȳAőRw0Jkͺ _\r&-NZ}~> V)$Sp *)+=^#uħ'0 r D8RCR~y.9KM VDXO U%AjMI>'5s>p5k/I2LRfi뿙aX{0W87$8\$y{wFTn'<)x"%N ]0?3W$E3ښ5\/e~ەq XP_A:[R̊0@\~)gd5 9z7/s_}=9ٝ#|\i}#%!Pe@c !]Դ40$d3H@nL%,fjP?FT/j{ VybF\SZr p;g\ǟAA35KnxkYi'ԏi}Viaf?C鞶nqk϶lG=ts]swsJr`ʄ3MiEE}uZ@mx?22.p"hiPvuɲT gPo=8y>{) z*Oɦ4OjQyh;(%HcQ endstream endobj 152 0 obj <> stream xڵ=ˎ$az/ TUv``ޝîc/<>+"*fFeE*HlƘw7S~~O~ w777락3߾'cl4&܍q_sh g?c|OKk~??0_Oe4me|^4~Zw %kc!n) Lw(_n?cџ?O.[A=T6c3^ vc2ނ;ޫ Mi$iCRF9Yě_bDN0|6P|w hTH!ki6ȟ$w1ͼMls$.l6Zx`=nΙp $'i*9/4$9/V7$-*'4:Yxn XM[YaUn6O NK4TvKǸSZId7K$V)OTo=KUOl$3Уrx- 9>cw%&E ѻh32y' ʖZ7̈ϥM*RP^TH бCEVGOR, &?|wFﺢ<+Uq7f{Kk?֟wBD;?Mhlmm=%{_QaSHd̯7#pYÌ$A\*`b'cAbbq*f|~#%WYK!p]O8C &twg$|$kX!$4vb5=#.! ̩!XC4"J+7U16׊( I%hNYv%2 R8 vQMtl4RX߼qʤiY9A=˜d7*KB$(%"_Vζ bx&,N9I*⬜h:!C_K@ #2>3d2@cڒ0hLЦ_Hz4E0_ur qBkĚ̸c&Mȶϊt59@vr,15geAKKIWMQf/":zDheJ'LbͧjJ6ˡ8l ^G]  >4 1)Ӑ@H*PN^ݜCI=ҳ&Mu8~r:P w9%4O u(*"ѫr'˱,/T5 YdfۋD׶lXe1o̞͕5$= *Xb dwy]kIR x2ܵ/Ğ!nc('c8q.6),!// "!#B 壮B" 3L"m&չ}Оqqm!h:dǙwB^f1E:@NGfL:e9b.a4аBW|R+Qtft\!|?T`2#MWae=ωt4#\,JY(J:* Bțqd;iitE'*ts/iGB Gt+he=1χ,#rAic*UUϹ ZӎM>v Pe]uNcx:'Ie%pV9= LC}̲n37VӺH*Tváƭ&y8`ꡅ:OaT͢Ƭ9:{'czJ] b QyMh\ ט| 3/jj- Fd$Ipi vrI{9 US@xVONB8^N n8 ->APttQAP_Ukj8[UKHUNY^UZvD` .̘u3рU*'XW ɚ .ZK&zxzN^}YVPz# I:" !b (N TfJQ,6Y Ϲ%А>ө ̠p$%<.((XOk֡Q97Nd简 vEd@C_N⇬G[wLc8G#gs )q6v$\G]_] )ISyyjRKؼנ? 72UdsS|A$Ɂ̾.y `-=L!@!\0I\V9'%IKALmt$oFGxBФykNNK[K9ngxkDNt u$W]ds8AS3gbs3#J=`ZFIzWG1[H68MjlS}CN-Tk׉id({,ѡUǞmi1-6Lᚿ]"ػ; l݃;Px͘uVG>JN㆞IM>oF-9u.#q(m)ʳD$Gm: ;:"WέLݾ}d" /0W:d tWijQ2}YǛRisx{伕R<áޛ2YKu 9߶£D/l|FT7z2'Zm8$W"Vw kp9c()5@ ] jH!p^Ci9㒕,m =d PXUgKo1 %dh,7Zj+,/)DRL|$#SNBw:&zTT;?Txu[٪u5t9T -㰾Xv*[W%jK26ev+AU[GWaۍbE%/`iY\.KiJ#0Yc$$I*uO~ D$s,]^-\aCW'l@]*T(CQ-32g]Dυ-.Nw.!e?fFoyъrHbEdS!#XfD)[JZdd.۽.KRT >(rWNH ].2Hd mKFI9wH}œ?|婁cJ?l4e򕔤Xl[b!p- mhCP&ہ۵_`o ]}G xh7, %}N1_ Jqk$@CI.5r,uPtDfHN<-PVa-C$j#9k]*(>K'cPXXΙgqc{\}ydԟL":NuO`cn\vrA_$?د7y9xf]{r(c+B)OF_Dnahl4:ݮ0gnt'`@pR7%gpJ"B$ )M²+ ͎e}oZ$i$ ,7}cAW~CP Ԇ}u|$wtRF~0m0Y^:候1d#>P4ӹd`&dCc˚z&D'Lv^`V`z<~Gor&n ƏkB _g2Nb;=N) 1۾^`=mU1_er *r>ݶcv|#Hv+VŇpd;jNfQ๘~/rJK]yaj~g0Mc"1ٙqNǸ²ϰYXƱ$qMKx161o?q RtU?V~oc`WCm{KОU ȏub-}rǸR+En#imBhc}21ƭ}>a}bm?N|wbLku+>tJJޝ+J)Կ~٥拷R?j?.E0Lbi€b!>Mm˷㞙ߗw4dMuinX87njeCg8K!_屢gK/#ٔЯ6;hi^mlk `l KԮ-C?dD endstream endobj 22 0 obj <> stream xYnE)Ht['2B%A,+Z;ĻkΒGH!aF|53N옱$toOWWwUu}U5E#œxa/ㄱxU$ƃ$a. '0pZ80sV80,W%^ OJ`uV"`DJA R? N!N@"ƃ OhX>ZSPQDVA.e]Tz')x.B> |#OOʉd(yL5ac ) e!i;}9N[u佨 tb&أ!T00`€B vL8vgyPc A+:Zk5RW, k "(0*> b-oXAHC]Y0 u+G֌$=lĩwuG`@,xl,NMMFI0TX'@Ԅ=y,,iHMrlM d OXA0B\`Xs>QA>Fm2T ;w?-h6i.=(r~T.^gً},<gx- fk8ţx򖓱96cmo{بmհOL.gGjoxTODŃO;Ot[pyl~\>=.a3 &I5۝ǣ|6:McGE>m&.>Ng%P1cDnjDC g'êxL{b2Ub_+'='-$cKA'nN;$ΒbʜouҰ{\˶yÞqqǚOu/??nBf.0.06pQB-" 8֒Z2¶t<lK -)v@u:ZW> 6NQծndzGV}=ך5R]k)Mכ/l.y.ysg.:tǑٛ@iunMnmn]n}nCncn@?ܺIjy/-V@b+Uu.-Ge4z H묈;!:3pUP^ AZ+"iOr Z_()$]Cy @_jؾ[W]&z`JT*¤{y%$@]$d0CM#<6&JP{0n>7pᗀZ.)ڭ_~hhh`3X saa-"0YnVnt5Yp}qUgGhdv8^W%p d h;[$QH2 ;:ÍpDq7 Fjd\иݴh,"e^.I`TǞJ7hv&j0T%0#T]½5>^0n0 ?̊0`e 5/n|&.S7rj sZg>Y9/DZ. FFVfVFdPf7 dk*nG"5I !'珡$Ps: 1s29P4.$jx:;!#28O犑qsYK?ft]iXiKҹtc6奆'!{wu3ݳ4 endstream endobj 172 0 obj <> stream xڕN1 ylF^ ENX/ZF;aoN>XTǹ]]{?|t|iێPEƲ2KHGZZ:ZIH#sA -W`Dky̬:"bZ}*t!wDij 0d"J犒 Ā? XNJg-sD,gvFN q@FV쳞bgu3Ƃm1ݍª# EzK#שoU<}* rfF]d8=&nKvmLb-Zyi~R0֞Oߪ]߮k{_Gu.ҫ endstream endobj 174 0 obj <> stream xuKnA }ް-m@Bb7!L(Kfh44h?ﴞ6wwv}׿iWx8?luúﺜ-;gh'ybEb>ZE#Nۡ$FaGU.>4Y)as7*-[7H*.7UK&\B 4YӢM%mfhE%RTt0\Gsx.9158#<zeJ4%;yuA;O̕,AFtz>KXCwȡ}'{TEW^ɦ꣬}]VhPL4tܨpM9d5a'f,(4Q ыh&l6#T=7l&Bsy&N1DW4B+Fïkhk5;#JZhK*> stream xmKnA }d[X `$ v5ʂ)F]U0`\{A1YLޟn<׷oa|>Tֹ~[}of *,yy*5BUء˱ݗH|.G}+Đ,2AH PaH6D &}, ~"OVS0} (6('1)T!+ Q8Ӽ; V@;TT9# )a1P Z7tO$W^eg\ThbBe]!꠲XVXHFt"옲E:Z:eYiK zg k3GMYљxX.WV ]Ǡ3VѥmIJkrvCE~nҼYp0rMm٪'iKh4li7V)(RԳGnt]*\4#d{~SR~f)$N겥lZ' ̋7cVPYY߇ڭaP>3'|.[x?o/? endstream endobj 178 0 obj <> stream xڕM7 u m-R.  3vc8?ҞNOZ FW#R"ID47Z|y3?;>Pi㟣=77>[7>rb{xA==Rݡ˱]|\HJ$')YL70!kCeVçu.q,s'/,W8cG&[ yT4q-YOf&if`U /w Z֑BÎ 5ݒtѻ}BQ߲W'o%AbUzD^u` oQ@lT'PjK$sBǖ^-bFHgsK?W:0 Ĺ'^b95PX@@-kiAr32>3]ș\JR"0wlFziQM9;v9O E)ns,l& TbY͜ն0}/&)G[=-[jkB떂q.Ɣ DX|\x4zlfuڲGSkLPtni卽s I޲ M&&QV0pT> w m5DfTc[8qDhT br_;d)~cgs7+-!0-{u?7w:|{د[}s?K[N|Gqe1z/|ʔ70 R6JIPF;9˜׍BeN3 ^r׻_0 endstream endobj 180 0 obj <> stream xڝKn\G Eooi޽;{>}OSO|{79t<:"K sߡ۱W"yڡaC砩Y|~" ;[ 3b.$LPNOiQ"-johT],'DErICGWigTiRW70Ud<>Oa*jlqQgjQ+[JS W몫jIB"+J:%ZE%R쎮|m)PǛ:&,j`.-Zͮ[nhfX4UeoU[0;4[:鼔5<>SdEc~.|P,x?i0 CkUVD0$vS5Eۛ"zkk9Zfe6 gCٮu?ϿϦ5* X;x:UJɎsD_Ҏ5P0,;ށ<\F`Ǯn VY`m[×? ډ endstream endobj 182 0 obj <> stream xmnT1 )6oHH, `("*%3":hto;}lD΍A?n]mtݵ?><,on~uy=[u8i!M1=v'Q4rNv߈1(?8pKb MKdq1}q!m"]hin٢ W]6NX"Ei,15YN+.>+ fr S6>TClWXǖ4Kl'֕lM!eɮv~Oq>r1Lud%+>Gc|\|3@"+iuC[`ev#Wì1XCj)K-O`n,E)*.ThBWЏU4ЬLڲ1zȴJt^m =P!CAf)MyF\:b> i%Ј:4dAΩ%"Q6|p_vc endstream endobj 184 0 obj <> stream xڍN0 y _vlq^  /U[PTۿc#"B8苀-&Qn //պuٯ3FoYKq=zGd%KԪ+ -ȱ uԅ4iifĬd_\|E5!Eun⏧m.)B6 ]Vqw)U1Wؠ'%̭tn[TɎ |*fω&%AqNb7G~W$-6,hBUtm:ci.̪9ѩ~9!xT-Hxӳ9ڄO-|]֡ endstream endobj 186 0 obj <> stream xڅn0 ໟB^ [֥eg-g$JP nޱ@PTpo9~y|:Oy3l*zɵ<e?{/>O\ qmhܼ;0N*+pV9E9P\ENF?|8)M(dȾ yJl.0aڠO䃦3bt X[5%FJ mUsndMshv^:dx6Wq|`󣖙۾}AѨ(Ns֜smwtޱDanJŖAG#W0 LNZG֡Fҷ*@Z[,wsfzN};Nxd endstream endobj 188 0 obj <> stream xڥˎD~ o DBbo?a4?s{P'w. a~owڰ矷ݻ_|t5~;nn~~O8Oq]%*?s28h8\۶|.D|R!a+tv,%1 K:I 1CU<^ v3Ļ򡄵B4`}2wO7`xzJ]/NfXۦά2S ?bW:^/&x^`33m4z4F*2cKnȜmÄ#̱[_a"_c[;_ |h\mFTi; Aݐ AX[laHLJc" T Ӗ+T.V&N+TKM`AX>U9N(L? .HH`*rDfBvFPvA[,WV U^P#bKj hc8 E=W0ԭ(j I!TECu\2.*IбǷFϙhg=ՠyfBFJ8^rbdpW9[{4θYʫ~C46ڢ+hT4}t4(XoPܦJ8ZL5V}Nf{ endstream endobj 190 0 obj <> stream xڅn л—^~Ҥ?XvJ,iTQDx;Ɛ!"쑦q t7g0hW> stream xunSA )fò#{|HH, HJyߓ :Q/ߨQ;7Zm.{z8>|hOI~l?nǟcYXLo }~>nXz(E{RꞓKϫtl wۡNuXg&aBxC9(fcI5!@XsLcPy!i\j> M Yq3RirDG(b,d:(]YVl_y@H &hI\(.8}%)nh<|%ӝҴ0iU¯] QhGj 4m8/4)UҨż k(JR(v\IR}Q-VCl$z sV['.64D=:5L̺X`L3q,jUx 6^ėޱSm6r^Z#NJMjX x:گuoE+ endstream endobj 194 0 obj <> stream xuMn0 >6YV?^@.n:Iiz"``g=~$ڥ~l_l4:?mwwo~yxܛfMEbK;o_K;S.ʹt1th=n};]LRєm" uȊF K}ASzq%l#QRL x*3ZLQE).7ѾQ!Ի0F:qѼ3a%(O62Ln@L:' `"U`v#0yV.NYsTHbV&l +sbp\];3^յ8`R ƪ7w3a[bmUL RTfc-aWoHV#y.)͞wy;f^gR>nTQ>u5'h>aFڊ,Ŵh ]o~]ԯgٺ$ endstream endobj 196 0 obj <> stream xuKnA }d[..nC)Q,F]UQ <7d1>O/xy3ޞOCx~~~o׾~?[5{W?5 @b.$5纋N9eGlzԘ. 6Ky,$N.QșMo N^Ajyʔ@!:i{#ɖL` 1 aFMNO6F2y͆0c_u΍87Sp*\mu"r]q![Q`yu$ƕAX֪}R}B^Kӧrb Ř`퐥uLZ*ZT'3wi6r|Vqu'BhT:dm TfI"=(ѥ9콛CѷkhyG])vcu;J./,Pne2 zYxDvqW Ji22xZ 80Eu*(i{tw9|!cҞQ)h~V.bDJ1_4~^_>?J# endstream endobj 198 0 obj <> stream xunSA )fvؼ x%-RR_xvA&~Cڹtn]x|S3~ܝ?ʰ ._~z.b:= QENJ'TنzءJ3  9Z ;3"zHJ!^AiLڡj U}"92 ܴ=+*p@騒Mt:g2D!TB1| i֧Dz+ ġBuID8+jȊ (/h4QTYAiȃg'r#'Ky#%bc6ƼD_Q :Ufؖ!:K\9׬Ue,TLMj_Q1' 6CMGWċ4ܲK '*],V>忼wmC)\ka#J`eYjl gmE.gJ*Ǡ BΓIp-$+nt BH`[!,UQuyRv:ۯڽ{y$U endstream endobj 200 0 obj <> stream xunT1 E+aٱ ʴHJ뼶j4q|DԮ遼޼s#|S_/LJo>}4s +=: u{/w1QGy:]>85|]mi l&3vS  3b6fRԲ-,%ɜ;TRrJ%%<|QhQRC3#ìP`t8rF$f,X M;+”*f6Ve6n>D1όbaxzC;$BuD/;w;Uԇ!dEAFbɈls&,4p )l3%-j ZٙrN+9qS$ʄ_vmCƬ']۰7ژ!"ayIe5<▓DC\CĦ|+['wKT> stream xuKn1 s m (E{MqSda|#Q;7Z7̍&O]^돗S3~ޟ򰼹}zn;tsM fFN2sJCvsh".7 " tϙ$nL>q$> ձ)kz M?BXޔRBejZGqD%fڬ'!8`LH6M3rwEU"kiq< XB']F$G3IeLC9ܖ6E1XP*ɄDG ցjxt(K{0MbnX]"j2U.6[q'6rQɆ9`HJc9y-o1f+jEC $͖m|ЩTsV#: gzbAesERt8buj"xkQ]&L SngH`n6 &.h@۔L){XgeOԾL뺤:T..AUrWՙk"8.le)ƅ'}>kL= sz@v+ĴL&:Mݧ~ߎmQA endstream endobj 206 0 obj <> stream xڭ؍> ]|^Ooom! 8uTo4[JDg# wV>ˏ|6ky }疾#_+ )[/d"VRӚƊ +LЕ,K]9 7 )'b M0$'*^Z|k.8]Gsrv\bZtf1AvI { URu?U'%J?~>}m{n\Hzֶlv`ugd0)l٥nNM$BPҢ]W*AZ^06|G cI'r,9ugn۰$Y?x+aɭył61d&`6M̸?ڎpL]S^c0 V8t*{µ=O<?8(8=bx<(cuJa-ٝ.@h9˂qXgI`ZMvU;!j 4rC\rZ,JD X-d4H[ E"Aj)$0ˏdUWg $4X轇7[-`)ܨ~,1~b}H[C+&ϨdlQ{%#FŒ8 ŜC=KV -Z#<ػFxRp*krr^hC-de]ĤHY.HJE-EA-gG04G eP .1cP/<0g㎑IřtMGS -LkdmJ]>;A)HZ&f/([2Hx%|aYWsy8Qvhp.nÔl{_S&\\s ӝuO C=u#lnmic:8VBxWrbKb :+{]Ɖzb+d/EV`xgFXB96 Iӄ/GlߏKğg˥%i.1u[ J-,^K)CEC@#^@ҵZ u;۫R S#^`wMbL#wbjE.v5N4-5ydVxRmW3I"am , ;$8`"KԲhZ$1r|EvElzc◽)/o@uUrTS7HkIy\oLsր8_$!%q$As8&HTY`E-qvxiؒݻLOdvd1|sz ~W|:vY:%B˔Cp涛k+'bHx8$kt̃F! ]@*1#>Bj;ҡ~Enk۽9Ue䀮I6*1< xi+M]۾HȹY v1Zzxĭ'"0J.1 4$$5c6ɍj5[";LZ'1ԃA—/ZR|ZO$:+yX/hql,QLmԓ/nܪq%lQD{Ɗ!9,y>:Nо'uN%aoa=a_[r}QhS[JB 1_<hLs F}V;'F?n{~kCa bQd،u٘&2 @tNSkz1$=AZGX; qmnhmHJBENE \a`"hI".VDox++tw=VXuqt2< anHK $˛=h@0ۓRJ*Mcv8Zrhwhd\/FHv`1YN5)G!PK$܎SX[R\;Z4uK6mVe"aׁm;N nO 81AhuMնu{X=c3{ѷBúmŷ$lsX7M>A/ZSŌJQa`vشl}vc#xm;4-bV=Ne--)"gE\4 bCDGp%+n0ڨM'V[U뮍NCݭla3jGp`=[dR$Y-aUͬ%pvGJWVSոx)9O*jjZ4|+908dp5UdXqm;3`H%T ZKupQIժ=^Fj[&yDs ڢMKϮc?/!@α=QN_CK"uNy;8BG5~7#zޗqbWO\`<%O~-xCOʭKkso4tv4b|J7W VňX\H,M1|:Hz3Q6 fU{¦yg" k+hY:4=Li'ZBQ 03 aK6A`QQp'H .FB \U˻ՏY+K{K ڿ#'G +{@}ux޳qt›j;_)[;X ^UM,)dӲPMv:;%0x|SMO ?K`&HdZtEbH-t_sҙe&z77WhWcؒH:'A=,Hv8L;JC,CE9 wmL+iUSl+B#^)5-C/w'#`<![ȚH =fY%t:t2'"0gW6 tL7)V8F};g ?dM #~[w _phnj3Ȗ!ӮP.쎏MtWpgE;?SN4MM0EGy,ÚU .>9ŵZ)g8͚rgLnO. n2{J+cGLu듥 E"Ou_;NhE<m\h*hkȭjBC}C-őN&=SĆ;Vd {AGK"+שnsP:@j?Wj:ԺU/0EYԋ%LH"Y8tvhM$VwLti) bE1M hf!>F-rl*Ih7;yE֟Q}0FZPZq$1&G9-L\b kȽbb!uSH|!V%j%H3R? 3:k\s iUSrC؊U ku#k>SKBln,!qD_FW!; ?q,!Ț5VΥOo's3hV5/<}c~aBYSϜbvGhiHiDu07:v2KxaZ_>ɩKnZJbX9ןч>eoϓ0_]SNyQ/]Lj R!}ur`۬ӆjXoLJbZɟk_zhKSXXYeIrJr^ ݐc Sk%(U}s|,Z+F)&O7BGuғ8HXuH;gyLz/Ctdh%D W및]溵!|}b endstream endobj 209 0 obj <> stream xڥˮE ɶ廫x$$< ! :' ]d2S,"tMjtBLJS-߿~zzXp݇.n럱El)9UxA=F;tl3h0]/vt8dXvzIZ8 .ĞڶONa4a;TK< 'Ϝ.=f!%SO!B± @=i̼6 ÜilIgW:!`@= R QܙO?'\F'9Jހm;uP ^1bCuq Ǻ5ftBX BNFaֱ'dčjDZ if0bG a#sb{>@t%LҐjhEyL #>+j%' v ,nš]2knNKQSkNSyV\2=K j4rriC{\0f`E-qm ~4E GU_"AaA cVf 2x%fdh/@P+ o j.)VG= LFjD:m '|$a #VbK%{D25~*I]i7XA*n!Fv0Ts$pt&1GK}Jh~˿ endstream endobj 215 0 obj <> stream xmInTA ɶyHH,88(&y=xwx9V]uNJƑX} M ~AlaD> stream xڕMn1 :7 ^ @,zqv6Bɀ f|C>= H'7"Co_^~Ooo Vyh;nh Z`[HէqSjPL*Ju` M9o8W0 mw]DK=Ӕ#a@nj ڙ,0-Nj:VqEe)-1eT^tؔ]fL5ٌqil;21.> Kv=On8Q$J1dS>(&uÁ )v4e5]eNjCV%;\'Ŷpw2f6v» [;YչmbVc}|{js+J endstream endobj 220 0 obj <> stream xڵ]M&mϯ苏]D}  {vuC~G-ޮl0EQ/*79瞾ro>|o!<ӷyO&IQr(St%=}?:'Ź\ ~o=8:?Jjщ×o?Q??WzO_?oN:vS 47|ܦRK>HS)䔐\x!10/m&?qc~j `YpS >0~Cn~+畏Fō3q'qyPVR-KNM Kˉ.ey/$ڈbEa$Ptl',JbP%L7=G\/_3٭Ҹ/qJYS<?3o?a:O/Hq9)K~iĉA:?`Ƥ}\<%]>w&T}#`L\\k_nOĭIGl|Y'nM:N1{E"W_3GiϷ}|o1Y̱'c\nU5vTUoSn|~sl:Yg!jW;J6 7dBnJxC89;κ'{ LyleV}JçgIة/3b-_?[?+-0۬.DYy2ԶJ@kZ`SX>[[֗_1_miP!I$A._F+ ٠ݤ",G "GP^Wh r،XmMS!B䫱fQ,\{/ :ŚAq5$E4+Ehz ID 4ڔͰ{j-;")ObCvua"01IBF6ES n=H\ LGB%7Zu<]fSC|v4hxkh (If{yB 2,  i޴ƨ*T~jl>.1ϲ.%f\=Ubawv28W[||M4{Qo:7^fip(GEwQgJ "jߍںF8Ud`Ujk)VήjO: rjλG^Q1ZS I8cGԒĎ >))7bxDZJ.Q=LTش#ڮ™SkBX3 cDj8+}R9WYҴ &9Gјn60v\zjCb+\5h+9¼)0#G4"1z2sJ^6 ]ӠFrg-3Z3E4hc\úW&+,ZB-zmgbe?8M7aQcm{ eX|իhl"h8c”WzK p.te5 0 $|G,F/)|GNI=l} 8!V5L%0`)Y[&τBl j)7ojmmALg{3Fk"^51jlgsk} F+_3xJwb6pirgay x-x>.xy0 f.4z!\ɥޙ Mm.Y36:Y"\] omt6ր dLsz0)7c0XћMPޜI~_*me{pqyCeCZw,вGhaCu`?S|/&7 Ɨu"t}J%"a~32>j8H!1 j2@wS7BU,5\FfOH\ {m'ߖux +# zj }Kv>S3fi,Q P*3G,=kGgQ sU LE5GN1(#"cET{0OafdDði6]#5K` 5hZUP|E/D VHzE`(j\7IY1&հ< nc9\-DHz SnGy{үԠ? VQ/J^H)Mԋ᪵Hƅ^HZY (`x'{:!+!C~90|5*!QTcJϊ4ءO, 7zS)e=99MK'(YΜ Yݓ2I2jIb?;#5B9ooS^M:BUD IoYu;aB`:z ׀=Hɫ Roez6ѡ XDdVn >-i'FV;" Jb%w`[ˍ\lgI &*=+#\ks`LXjAW/+4z "ZAL_O[Z{C 74bm9jU#G49lg#f(HᏍbG ߴzm4";ުA[cxCYoeь0e9& VzZ{Q+hгV%X̚+Ac)AúX1^lgNS%^(ިg4k- R5e׭ؔbCE>UƦ;ԄsܡV%7èo{=oM׷рCoSjHe -HqjXXiÔQhMցF/ڔa &9֛~<-#QEτ3hg(KW!{ 7OcHYϥ=1k9BU_] 6,T&+6Ox={\r]UB)I%/:Z~xQOشu!f6x$=U} tT7 Zo;v.31dJs8'G}NyԧW  cf2rf#l<0weY:[[@'x[kԗ`}K_;Q:ԻB?~ "$rۦ.[rkF%9MHrd%4 3+#3MOqD0Ny9j\Y9˸'7B񆓭{W.!OW מQx_7Hgs FʜhX T";}gEnΎ 7esdݱ B-֓!E#.j^Y''X8`6cg6Ѣ^Ee+x?NP$ YH4?4Jfgl!+z@".tffN7^5ޗ4)=_)3*=9\k@Z$pj׍( ۧs>p9Is{I?VñN.O n <I5mIn_~٦|s^&5]ԃwho`vԈ-᪃'p9%CMa(㔊UCm71?bPG*ɼ 3E=adU[bHNGo3>DsE3UX>g/v>%1qXg89sh~ݾ\TYrpc'.y4@͢2:16RaRxERmw妷EA^:5[hd}Noԋy.DV"o ׋SLxנ3lR5N 4V.P% oђTElc(XZV멇GAi?mJGUA ?6^v. Ј1R#Y r qMCgBD{q[-Aޙ oT.U`SwoA 4I+z+:7~LvXK^ XSO>rc xd+$î~a䱙] \:=g.J#S,!5l>tX~(Hkxk}=a=4Tu+? X11ݡ:y׬LsC•bRqЫMS \qA[6/T E; Ú͂p,0V^Ϣ!V&|Ghw`)TaF^9rVce1~ҍAM t8.UzUwKӝD\6qy}%S랪8D4Oϫa7 xcE+5[w cB`oI칤?A'09և35zj>=`R`ۿ)fXqmj.@&H{47.H7B4=i8­cUf7~L^;bW5ѷ;R;bTtmQC*K# 79Hӳ2V={i5^gGV.#(Uhsje=^ n6[`֐c5I! +; *%U yBuvTp)%w=.ϵ^.KߪSXMĨ7l(>Q6 QߓFޔpq[4oWU=)֙x_6H]Na.yŔݰ5pI:|"&ϻ y3H}}Vx0N8UL~I,^tf'{uf]1X]Lk3;';KΠboϮB F;fNhJ'X7V1koC+7 D4|~MhZJ !r Õoȵ/N :]M~9ٷj; e*_W <oe jY嵅 w..IWy>ht$j_u| ҡ^Z˸s5" am3P_=Tێz[PFZ5ݜD ӟ> 8o\%(T|ZCdcjof;cU?YKyp_ g%?ql+|GKXr;#\\\&\_aNpa}Y q\X|u6IoyMz^=M~Gw/ W {-\î_ߤ\A{x3\L"_ endstream endobj 232 0 obj <> stream xڵMN1 9E6FXpJUK8S(4%'*uoVbr}lQw痥*\ՇPʚam F|_5̢GWHa!um 6#b uf!X i u:՜u6k`ÜÔN 6u` Lx"0Hx/Ğ~^,rix񘡵3`BL!^x)>[_=uqd8MgbV'u)|fe{x,& endstream endobj 236 0 obj <> stream xڥ[K$ ϯ苏#Kbm9l ı@>TU35 SȏGebgK1%RO?]]|0<_"%m O_.{g>}g-#ެ+|'kgӟ>=^/|s/?%?]_~{PUf̐\GL $#̜9r}S4P$>~_~qdďk1qqcxu gDNq Mhɠ[߼aY@~ߟR^l($ ؐ4C+^{jbD<>Vsh6PmfM6Oo[F $6uV$$M&2Q$fZi}b5p}M 7}scg_("}OW%߈2tX{D{LY=wΒ |/>g #n|['?h,q#j&C8$,T4ZP ͬ3@)!R{)A€ \1!'Ak`Iq2LaͿ}9w^F>^FBtXXF;:ɳ&t 6+bA\.y0sCCMs[]YoRl% AHSo˻) 2$i@~uܹsX:}^#̰%%u c #y1N\)P;?DBB%ҵaϕH Z%=X yd UBuHDdgt!TmVaVbv#aCM;}d8,MZ,yKف1d+*l xj@UDLnf)"8j.MTBdAY5`a9kU?BXG|m$mE/<BuCu$ǻb5u3C<-O|xu~AȃkbrX\]SkmMNt.x ($D;de5&(5fϫ(r8|,ʞ{4%ߋwe`Ku,I@ԘCqԱbE{E1A@W#2D!+GA .R\H,YHhdw? JF9ˎB} ?6V9$>A|9T7Áa2Q.Znc۵ʖH* r I/~ްOekͶͺ->n}[I!T( ;<6"2]"$}ONMr*T rE,O}RnysuA^/9YdUI]Gg%YE䔺2őwhJ%ØyL.D;EU|{&Uh?+ߨ u=ږNxL]Yо.1D4T;ڡLgѶ=qݬ~+'ԝhۣvЖB4lО-{3`Ȑܹjhء]m}= u=D2l1Ij`;v%7}BlH5IRg"1nClt$w;v$ig u=ɧZ~rܰvP`ΑVϳ}W;*t<v)a5)lLgY^vwd3.hkmh$3ÕkAEa[̑rvYھkn gsuh*"RRMbRžL wh~[3mÂnxh!mR4ц9 Ҳ6m.j慩H')4J֓۩4I^Q("{_ $Z {3<, yr*׸y9;r%b֮FgGǺd OGr⨹^9$/0uvczsHkjݧ$ޠVzn+`(7ё֯r N2yw1 ;LglݞU%"BFвg9gN?~4SyU MrV=|QN%)n^_ H6вVdM>_&Ha-ڑc5O]$tW/?f'INQM:K+uS;P(!R{mX,{3k &W`A\H):v[]/ulٞ׮WQ6Fh"-856 'U>)=W,vw-5m37 endstream endobj 242 0 obj <> stream xڕKn1>7Z~p$$0 R/QvCѨ__0_:Wء~)xh77{|twt7=am-}eZw G:eG JaiEfL$⩴CG0tB;4"Ŋ3f](X}eCLO5Rpq4-RvԲ>PޯKCSl2dlh\ftްRu1ԵW"Ml2L+T'l:Ae.$ 7-;~isYزg$0;)VEz~Ek Ȫ^Rj`ᪧ 5?ۙɕh5PmUxH9a7$_ͬAY 2ajXu=oɇsh$ endstream endobj 244 0 obj <> stream xmKnA @}d[XphBD _dJQWmq7x࠘,&oϿݯP0=</G[Y˺.?I8RAHSici"B;tB2RIqBʼ3E=@}iCaJ MVZJ`nЁ( #y Ȇ`%Ty QD*9ºIxC U># ]4C괤RVy1& U=-鉶 EdeCYv–]~U5.mY u/B';E* ~+SRn. ,;;t[9^}ZKܡWOKjêi+BWsYTu")jbQv> stream xڭ\K$ ϯ苏SH= do߁ױC~>TOfvjKԸ9wgމ.uR|/%ācK<˗Oqv.ݜ x+>sя;# zrW>xAR/_|_sÏ__b~>cn4!=FW`5dr X' s~s#VNx>cnppn^ ze)aD-7tE?sk̇kG&I>N|\ɲW~1Txb݁AkhWF|{=9lY`XXi6X@ Xv%AFKiLϏ m?QĚX/'!';0Y/K6EF@5PWvQAf )h&r CZdtxnϔ݁!MlV-)'NqHfu"VG_R) ¢Wh+]Z ['LPvdPTh1ҹKF°Đ*D„! 6s5Hc(#>=.|Yh(^<X7AԳv=:^-s.؄hb UNb,Cu)A%|i{﷑} n6̚BQx՗Ϟȿb#-,dmj9:]"fhW'A,;)HM{B j\P!sup50 ;Gzj55wn(vAMGA V#y)gkKLGi@lI| cut]WyO$uN/s'şNO3>FLVnY9ޖ ,pZ^YNdd=dVL{qFquyh%un_&WB]uĹ3jBäj#-Ι\z^eY~|AϑOȽJu`P(ébS9*!"OB"Na9BmXg:kKrzlHQb3hu=E'g(hgI4X ȀM3}c%Y׬"b mHsƬ TIʥv@DRjx(Ë#r7h;lĢWdAqg dϞ]RiCv1M>tc79yzOސ\6f_Vb"hi19`g@-k/g3UY=ENzq;/ϠeW`#\ |ԯs509AHHm{, qmuzZTN5[%5:BZ0C-NMMhܑF3O`F 'EwX=l?JimZѱp4xTFX3Δ/rr%HL/sn F=YCO#1:%.E A[P ԟG!EiCAϰ%3У?Vn- ݣ R$vcIۣ4We}_ҸW4 #Ȇ{U)C,A_~MkQ s6xcM~H@sn@w:F =-^N9Q3$r)d>h78JccX+l c'1<{LvkS\mڰrzĚ;P#IOgD`԰<ä&g=.xt$M\Q'm{KHpA|i6 eht3z!hƯ:,x;QvuoԬ9vZ]Bc%haib@=©`ij8q ;*ZQ{S\W>ڕ3*VKfCܚz*jަWiY5MyED~a_;$!y+$Z=|. :ڙds;#ۿ(gY~~D Gig ;Ηz~U<[&e@+]~t-*J-ī~Nij IRHoD=ـ%YݗW|`2.y$`k(ֱq}{v`G$a1r3~>&[HhubwpH Od&]I 5 (ij|x)=uȀ5)W %0.78=WϹ}qC. iFJz7 K֫|g@roD,V + pK_Y}`q=:ap'jX~KZ`MS2w.Yk7ajh1`bN]9$r֟ R_>fR@q4{%X)VucSs >hЛURD+DK޵ O!5nH/euaHz-jA4XAt 3Dౚ (rAQ/WX(]x|W>ԡ#nnEv]IIL,!i}}F}RYojY؎>);u$t|aʑ1Y.GI]GҮy [,LƊ'1 VI}錚t0{CFXY.DTP~b{\.RY2M7h iJhZpsop=M)Ȇư,oPoEJa^uuUtKPU$J4^fy DjJ¹@LL}O̧` hn+5ZΏY-}'鮒}z޸&ij"9m 'i.apflU`q:b[ΊNd褬_)# U\,i-]5SvOBckFv۴Pyui Z2"%o'd"y;^j[oU崍P'&P[˯9hdmm"]~ݨQdȑ"(!I+ !v2a[y]ڣ磩1$؏Sg = \ &˖"wzc}wy{c/xVZ7o}[hE:0=KWd}jwݮ;eӂwM4_Oʖl ~ǧPWL> stream xmKnA }dIG.nC%QkP2QOWe/qxꇃbOOxz3ί^NCv|;?<C{]_rsUϧL&<%$0Ӗ¤4AoDɼCckg1P&fe@JqtjRyNQصX0ݴ$H(l y2^\.Cp5j`^(سme VMs{՝WH2O˂gPC(Yn Ղ5cuƎ+nETXjWF'\tey"PW*U㈎k%Յ'Ī,f# *%-tJGJ,k {-j0ĥLվ;\ BZP!L; &* Cu͕K*;vΙ~|n_v# endstream endobj 260 0 obj <> stream xڝAnSA 9lXd{ !@(iQSr~UIYѪ3;Q;5׏zύMև];?iowǦ}9=~*BzWtjoWXS3=md֍1< :vjA!&c$Gc۔HC}AfՂp(ĠD:%Y!jÊw iX7>W(]#S-fBS`Yv HL^ylG Wȕ`](HdCj>7 MP)yf(vʲBe.p;B|p*WL}#4{D]0's}H*e6|;8P wt97ʚ\D)"-inɩ'GѡflX,Q+R'(sҵOCݳn}B(u/0ҖHYNً>Qj`|" Bóf ErhpHR/݅ H[턮&QJb|s,o4 Y泏'6 W'D|tTzʛc OܘجؓE&X!,;jjnذAV21tXpd<`#Uw e?@ȱnJ5oPWXInUv߿ a.Ï_ endstream endobj 264 0 obj <> stream xڵZIC- Afir[CȲɱRKY3%ǂ0*Xmv8߿2O$^?M4YI2yFmp^[{+#'Z Gk|kQG^~ Ȼϗロ>_~\~燏zr)UWU*:e gEBɩ7c:}/hdl?t@Ew#%>vzݖv WJV 땪^;fmZMh^FS# k{i|}bqz'\'|^}Û;1hghTD[ *u^PDw}>=lxc>bؐDZYqOFӝ@9?ul|R.Lr|TM,բvNGfYUbo<ǀCЪ@#Fb3b}DW% 1N@sG.$GW{C:_˖^=Aual$s )^$s͵Z?ts҈Tn\9֜b=aFXhO#IDHX|PcBvi #!В'V:E$sAY$0Q?QLg}&({aIF =cI% 4 ˁgqg(Qm/cqtuh#=13Fdg>T 1 4=وg㩰@`i d,5;XHK"J!Wf1oa Xy6̖Idt⠵h= +{I)`; ]B/7H{BFBJ'FbѬc!,{xzF4MH(/'ďj{aXw P8gu}LH~dRax)E,=q'40Iq]v\|^HApp>w8d;h™[RtS0^z#PG%=fRcl:ce՚VӺ>wCWn4wRiUc0"*?\#~g%ՃU0pa4$9!"1#%)^`y$ɾ1 ,p\8>;+ݝ*e >)޷-OPϚ-+@7(tΨuǣkPU]Mi;RЛkZ-9|Hqu%Dm:#}=+5 8APsi= /y~ rr~>B(VJc2F::7.Xr3J+9 yV** ϑy4nb0h$%=C DדtfۆTu_(wrF 8,h< :#Y]m?n;Ъ 7Tő H^A G4^F3/<}ˍs.H=Q:]iŒtўs=v؀g4 Rzא&752T.L}rSFP&2 ƁîY܋|֝$BVw72lKGZ57RdFX__a][b"̧ȯqc1R9lܛn!=ZsͿǵ$tp[NF oL8H·G;Σ?[Иǽ-z6)Ƥ,nJK9XBJ(Hu3T_S=Cv3ft#v&g.nMEp<(;TQaZ_<޽ OA3 YN6ܷ?!Ei"L1]E |ӓp2 =)A==F endstream endobj 274 0 obj <> stream xڽZˎ++z 0 ,bǾvq ~[N0hL,T!%k_9?$ [}۟c˿vj}0.x7l0|~߆Ͽ~vO7}/AզDU-쯐х`b ~rMv.%Z?9LX{,e|1Rf8q8&rd^.krϣ>-4ܨvY-Izn$\5$~)֩(i.pǪM`*ʅbU2Ys륚GTy8SqZV}X1yT0$|Yda)QpxCI:Q-2 ][W]]rP#Ϛ*i6jFrƤ8ԠѪ^Y^ 熀8>V/1Z+Xd4O2BhP3jZ ۉ>N&ܫva6w#JLcи.B*:eŴ'A uzQ쉉QC*XOڴq(dBҗe/VFׁSn4lj뇎܈VPʙvUR[yxr bo*HeI|ݡ*GvUE~@wNM0>g7%;9Osyb?-֪m[հ-` ҁ[޼tfAWs&B=2kbKڥr2GmE~=!ؼh3v"r%Vv$l7wωcygɐw=:i<Ә~_g1 endstream endobj 281 0 obj <> stream x\K$ׯȋ#z:& avf؋i{ؿ KdtG ,ՕII%*䜻psyTp9'o\n}q>T_Ko!7CϜn?xK?駧T,Me_=~ao0=q0(Rɾ>BǧumO鯷}o-Ӻeϻ7w+^ҋa-96t9~%#~i Xs!ixG >̟ۈ Od3M ?xQ-/.ޞB7Ooo @moO5F~>8Ս{nTcd8YD%D52e|%K.x^@#13D[}QD{_ø"볏NH˧|J(yHC:ߞpmrvb,E1ÓW4;4|q&]j4#%ս5 h=Ȏi / fJ1eRrri)M%Fc+2A%( 2o!)0Rklv%G=?ՉXF GBGLcEE{M5OX~x  +%R <7O\|1BQKS'X9u3BI5Mt7?AjkniLĥ2e lˤI^AC&Ede| `~'e~VټM4sH7gO);=aBr֢44f 8mO5$!$K,/si&?U{ SvW+MjbB0ޓYg#PARcUhq58T` ք࿲N+Ħ8%dlΗLYn _Pi/Sd V"Ckgao> BE\yd#*z!KPW#'OyYB{s_T6SRAWA8"NIԥ#z.ɚti{t5GYV?U(4H/`@^P47ÿG"Ut  ",3E> 6{x;&cJ3TXE-!P+yGk)q. K:4P 5sL$uRK|@ B2J*\А* 4X XlF oO5 SsChST طc=#!`Yjr0i_p)C:쬃eH"=Zy6 +IA Ho: pak#A Y43N]l߉J#Ʌ.0Y[ԤI R"9(9UŒD\uU(ˆa-j9$c_ ''rtV{HH6e#M~3b2ﴒYi?l /$e-*XV1 W}|!+1;f1l '^2KƆGĖv X"x+u,q3wgIZgR!ύIFƈR, sx*AF`rՌ 9jfNSiAjNgx?ebMNVPhw-vܰVyt7g20~$LJbԬc j8)#%ֶf'8PĶ%R*tbXd?+j/.h?e7NOĿh҇-;nLJH+ :bgC'Ѕǒ$vBf=%NXʠoO > "D Vfq9]}0t[E n.排c؈O)ֻXSzxabP7JVeO>!93^EqERƥ  g*})׼sӤeLO6SxϵͻV;.c* je0 b.QHi$UFs2흁Fa@ VEe=AbJ-`IYIeΞB]596b?;U5ycw%C'!/$Ms?m00:Rr %n.-yn)k#L]5` hRz"NFR9%P&:-B6Q!dPۧn_+R#h9&c9~9+K{$TSerZ񈟸a$7 Z Z҈sz7K?!_яeWԵ-Qв#\lvCF[0+u2!35U]+S&?6lkǀ}r!IF,+c$pĸb`I3F4fs!4B'\,.AΏgs $d ts{ӂnԛ_JFCZFO6VvRlM m,$D^ >hrd0ġO_TR3]a# Ѓգz8,eIa]k7&N}H^0V?sGё4&J(Meh,ꔤɵ 8NKQy\2h-A0Q5A%uϬ6d^@԰\5nBٟ%M.U *@?f^4NK0^7_A&`3klx8p]Ϩ̮HڀHS2w.k7ΟJFƒK8A8hy MW9p'#|@Wv6q+?T 5(BJ/D&lIQqO]z63aKl&$ K{RTZkCe*58uT٩$YMmUF$cS4*?ꘝ"Siڇ^2* VC ?"p+pHKHWB1OiV;GHS z|sDj~>`¨%/&bdC69`J_t-Z$b9JlE'ph5V*]W٘x d[BVZ TdžbEjy_N?49}/4y'l?ܘkm3u^O$-=|l9ky+HBansr#R8TjsurY(9oAWxXZl\ *ZWDI>G3l|ʔj7+S6'NEdK(8iwrV(6C`Gfzr#75{"OKt2h߳"˵Y6ڬ,Xhnɂ}[k-^PsKXX[H,IkoRk/X|E{ăKFtL[i5Ig{(WEU `- 5v-RƄq#HL;˒|rw-My6yc, ]- 97Yߧ`Ke0PM(᲍K\fA4Av@6$5qVaXנ}u;5*1hɺ!g%>ؼ|(TE=7f0۠;HxL`aq97D|ofė&9d Nķ$_#r:7ސXRwp˃kD8dZy wWfN![ѨkS#MA*g)E4~H )nK(8זo] R#(q7[=M֋svk]Z;A43.O+zsV<]rD>%ڒ5v{:+q:˂ Ԝ??)_אw'|k[(2O߫iߩ? &K_ks>қvF6]nY}b`&Š>^yA6\ A FnR'-0o˓( /0-PiXKb滉+-sDM:p]zv\:UJ{2j9hk?UpY =YygeB@;kSN{ Z3lEe|#L5\-uidbͯ)ˇ+? FӖ6gQ>#W'pS嫼9oǷ!vN ޚCF1>cZw4WPUXKԜӷ䧽oGXwI.[V)4j5/s~ergǖ͵jdߺDzn:) zwM)hie ڴ߫M#'wVg<^pߵ Dedm} endstream endobj 171 0 obj <> stream xYn)9͟⟱-E!+&FmiL^y7WQf,k=#@АMVŏU_;AhQFaC5$ Ƴ,J+\sߵp -ts 3$VG-BDhETz4dP&=$-bx%KN$ y)d!/%(-teEJƈ k1+N\ h($H6g4 Ӂ h*D#aqPϔPA1a1_c01m1mc/`!LԬcZXSk C@2ea+QXZ 0]CyXP13 a[B2/ $4 ݑ %2lg`0mr*>@)oS$)zI(|^ '^m<,h^<4XGLօ@@0xL`n!u_-y)ś\3l?.w*~4ű 4f(Na%ΒѮ .xG!s.|W7VJjջr %{'QFNZ`;F 6IVݪ*4s<)~߰dr$룘s42F^GI8@K/x0YX^ Z\!VK,SerZ eVr4x3p *a}b6gTMy+.FG6"jƨzkwPl t@146#moTS>0hX&k4 0Iőj^j=(8;NasY X'߉j(+h΋-g_;yd2E78:yeTr=~SZuNZM'̃m= x:@g̜gx}%5oД)ο%ˆ8+)b%鰛ʀ :q ~"h&6`WV fAfW1,u2; '߶ПG{ɋt4]^𴥜Uu;V씗?M0Tb5)~,r/'_\Uv[9L(.ƣaGgT V 9X ǣCV: o_Ͽ"eB].ˋ`Zދd6@'P- yvl h薍 $cq" @wߋ\\f9. Ufus⺚j@dL{0z՚3'tĶb)G|Ɍ^"'MdGmfJd拧LQd}dzog\f endstream endobj 304 0 obj <> stream xڥ\Mnϯ$R`sdwAV[orhlxv'xUu)")-~/~hN,b?_ÿ&ÿN|/HI?5 4)\??R[ >'I_O%^?kjq9Ү]5-!6y-*1GNHZ0-v~MU*>_Y?1&+YOIO..Yc_,_Θ=dֶ޺YO ek(;k+[{/!aǐ}DӥJnD2N TGYd6G(kn`0q(| X(f7i**RcW[y"*6=Ҷ1*1-*^[Hb[zl^ζ)Vk폶W^z<Ʃk]N6dx/3"pkK4%%%dƍc.\RVWHjY^{u}n攖dRPJXp֟I%gBKXB 1-A*g :i;c4 yEMB/~pm ɂ8_*r+8j;i?\g!9wXXzVwE-c;eKsYr$ӞrL+揻vu:p*7Wzڒj'+e]B+L~Zr*]c3Xa= 7fb.5iI쒖~ mThj`#U]zp,(K'wxrD HY R>j wdb;j0ܻ4" S+T=;+b|y"Z"Dy/ϗz6{j@֭G«E'"A|]sF9&JXy~ ԺoBC 4sby ?G#ّCفβ47buriq+J(ud7悠/+DC t 6XOKb )4]e U-c%Rz@ ~z(!K^L;D `')Gj0"9}N qzv~+nx:+(#3֖R LIn#ьߒ+fiK]I]IY "1c K-%!OK谞xݤ|UwGa q{ᨺ3c5Anjme=h#9YX_e#Up yiQh>Q? b;M(D!? ~80ԹsF\(s _vYN_eIՃ["_%Fss991cf'-TO3­m=%-5YSwވ x r7@*~nII*X1h 7RJ΋yXmQnztR[=%gsǖo^hwăNK+=;t3ýuGRp3R`-~}XcMNM :>r- kȈT} Y"*I-f s1C_cn;$GJP9z]~̑YNfqzj+w/5)-R,nƵ iL 3sMѕ3D\lfw# U JԾLSz$KˈfJ Y!$xlHzkuCLH_%&7ʚ6_ JaϚ)qĿ&~Խoޥ4 Uj^%i^5Q(CӒ\RƐ=vз].!# mc|+RwNlDre^}KOWۆ/R4.hlt;wԡy^N#~ㅂ]ѵKTr5*^|jTO_$n5*/ 鉤-K`h 3g]RN~2N|DJHsO=_EDGCq0tsC5T﯑[HK@N+li7GT0f/d jq 4xbS kR%d~Ş%O]fo=$73xJKaF<6We{mscv[M~`pJ.7xnOެhŇ7{jt^3xos]"uM~zuo-7'͋GkiOހ&HU.9'bfSPiC8E7Ru6'lo).BHFPi-YJ$ywl rbW@vJ}Ҍˈ}SW$F1y|؅1-(b?TWwG ԓKYDvGz3{OvO'+|8Qq5&esSy=kSض[&dȽ/}2& ,t'Z]&@]m6!gq{5)5{;IONP+]`r{Eqkm&lo23yrsPkXO=2=4w۩0g0 \Hpɞw^cV?U!˓YvpssbcM,xJȫE ֡lcw-ZGͦ|;iؿ! 8[+|8qd N> stream xڅVɎ0 +QIڀ@z+[S4(2 ;=Rӟ '?M>Xiqw? c?e0e 4~OM3n18m>"9oY͞w?o!GcHK=KH ~X |tε]Ѕ&m5IHsj;<*6DFC J%B'&3Q|jj\xM>Ibc /}[_<3#ó؃}o(̂6G$Rr@O2N)%ٓքh%*!Zvb(ɒ.NB׵Mt?Vf.Y41\Sn_4zuE"NGrp? g€+Xث+[\}U8+{ Tz9oЙCx/$,$֢Z+CܭDA* ;NT1Z{yL0)Q/`itd m*q}LOV;ayRk9Yd${CIC yz/u2j,i#R:QšDْ> stream application/pdfPhilipp GesangYet Another Number ConverterCyrillic Numbers Modulecyrillicnumbers2013.03.28 01:48www.pragma-ade.com2013.03.27 13:27cyrillicnumbers.2013-03-28T01:48:47+01:00This is LuaTeX, Version beta-0.75.0-2013031401 (TeX Live 2013/dev)(rev 4589) (TeX Live 2013/dev) kpathsea version 6.1.1dev2013-03-28T01:48:47+01:00ConTeXt - 2013.03.27 13:272013-03-28T01:48:47+01:002013-03-28T01:48:47+01:00ConTeXt LuaTeX cyrillic numeralsLuaTeX-0.75.0Falseuuid:e0f19185-4857-8de6-c53d-c4ac180129dfuuid:365360f9-44ef-b3e6-3429-01ae3f5caa11 endstream endobj 316 0 obj <> stream xc`, L)L , ** endstream endobj 317 0 obj <> stream xZ p[Ud;#۲-;֗eykv8Rcزز[!j]@BB pBNY f = t@[Bkj*;}@@-֢tPRO_L(3A |)+=?ٱ:_ukϽn_&Hڋ%^(}֟z^ⲱ> {c0+~Y}0HC}Kae {lÔR m9#c"K@cKU|XE@'/ AD%6rT.{Q4B(^XIIMӦg,,C1'7/d.Xm"U%eK-oh\rՏ^zM[{ǚεN׺vml6G7m?i " n UJn9gncpg);C1 &Q1s3{ !^MǼO5|[w5; b`Zt ~SS-8?}}} zQKG<|2ʗW;ݐ}V8eɰ}Ux) }τ_ >~&dc[ӛ.\{ jϦ}Lۙ35g$4g`ꋩ?N~7509OݷջOjcY)c43"!fpL&iuI*|$/9to(-|TVh3 1fq169 .~_77^o5O|wY hwOTgXUvXb팻&&F%`rZ8'']z=0bst˅ZO˗*̡d+Ή pGjx8CO‹ ,TK&V՘ANA~oـ]dfc9pkV$"-$RO ;5XcC@QhTTEȁ5Es6c~QX? !?QxOllඨb-+]&?rTC@a^#X"iGd]hqPŃ6FzIօN 2eS`)UKE)NI=7ǐ|a&#Hd`$20h7^EzsH1]5(IE#G,xpnCnAzHhC&)ٌ ӈDoٍ$>xӤhUUTZB\F(bmPyyܱbU+%߻lgMΛPAmN dڮ-wt뒋ZP7wliێ;ʧ۵s,tjHd1a~zXI9x"'ADqNbT|`ޔ&R$}Je\S:ǭ۠<b)3OD jbvK8"d#AFUYnwOIE'?NynWMbOѭ%:XRZp̓)P|0Oi_pX a9C-q1'hU%6C_Q_8tup9T0f\XjǜT!:6 HPaTWE,&`a"$h hFAP ,HHsҕ.s?)w <?9zׄv_;A/"99|>ɜS?×8t:%))QOA|KA|KA|Ke]Ntnv.L3d^eW3VXrZy\J[@ 6w$fм Y%I\LdwjIib%BARq= rrҜ|)Wvu\[c c/:{:V+D/di'JL1=?(3. ==&{QVq#gF20m.Zd"~S0\5W%҇΅ܳ\wNuc̀^z}nܖjҍb>݅< ` +.D#&왣v$Zbl8p<&FsA7LzZqӒORƷȱ"3gGq q q q qojǽՎ{V{toc$8jǽ>o3"DZC1̉;YlMryqwh;5ݰWt*J.VN__zVnXզ3?ړk02{ t Beߨ3u $5/9("XLb[ K[~9F+WD<B4qޕ[Z*c _¦llնv-5Iegb9v5QYlgʐVSpƴڸRn{_ ̆\CMU`6CBuou51} 1(MHJAёVR]-HrRD BiAҠM "J5PD( "JE( Nj0?{D,(0U [ GtV~ I>,{EY?\U3^򭐏z cˈA|G6$@`-Xmđڐxn,+bxQyWUҘZ[XOމ w< כleZO>÷7 A07ņ{=g2UAa+mX TQe>]!v@xf++Q~ad /qYZaǣou?Z#>^W n#U6_ }} h -~,\ؚoƗpm!_oVlC^aߑY"n:/v EvK73_+7G- \~y0""̮Yb ",#z7j Q<jDGŚ[DiM]PSs'~\‡T\y+|f> stream x}RMk0Wm NmCJKF 8%[{&7mshvG;kQRd2)#lb[40-Zr%٩8xtQQ>oh차2I:N%׋|OQJJB5x!M5IR3_؜x;tJY, ~{%樅us[fGߒ"'.SfkyD kd%p/Wn[gy6oi,}Qб UkGKx jʿ١5ő endstream endobj 322 0 obj <> stream xc`  endstream endobj 323 0 obj <> stream xcd`aa`dd w v ,H-/,I-O,,M)p!CGy L?0ʽ\v200:Ho_ HߗwhwK/r|/8lQY3vOi9wO{mK k+9@q%CG  ڠ`*cHhôNS;lf]1~7{>$\\ endstream endobj 325 0 obj <> stream xڍRj0}W=P*{):YbkܺM4eD0қs͹'31p,m:BF-*Lw7a0utǦ\m4>1A*si g#3׮tiPgw]L)Xg-:sB5ZN嗿rfE~@ endstream endobj 328 0 obj <> stream xc`TP endstream endobj 329 0 obj <> stream x}QkAItؓi,Q6"XC &i0h&;.Yg,5"nRDD(=x&B/bȖE>b11N?ؾ_5aS4aHiӵ4'%)?4!_˱3O_$39BBg;d9xFR$vEt20J ZAk8 x?nhAL:ܴk7nv1լ$:4lfLpD!lyu Ze٥V}abjl54vT\Cӱ6"jvlAuE5NupY  pQU:e$ !ڷEMvJ#p:p%[eU*r,^^:iqk,Pv48{8~ILNqtN^/1p0RZ]̞=x?Xt܇ ||Z{u"Z 9G]27y޻^ܨ=|$C endstream endobj 331 0 obj <> stream xڍRMk@ﯘ=$J/"+ );6Q(m !{/=l`&0-65tYԬכkV Q6F-l)i?;Ϡ',C#x|7୰R-@=[,SaȑwҞ/<~ZM FQDJr^Cؙ9H%U?@HnsX2ul:6ƚ0`ڐ(J.y['t bI[B2u=Ν;#_M]p4*M)(邮х?\JtqМ89Q\`MtQ|28ykV} endstream endobj 334 0 obj <> stream x ?p endstream endobj 335 0 obj <> stream xUSkLUe޶ ݍAmbRۚh"QiԵ-t]^].0g2Z_4Z?jl5a}$F1iG;pOnn9swMeeQ4M J,ݹ%\`<$"x$dAJ]E]̶9iqqLg'(Eqot_0\Pcucpm;-'Vq"+ 5W4v\o_Mo&>_}єrQrSZB0ES&ÎBǸ̒K\K,9h^rޭjlCc^3oD7B®^s8+O XQF#Ao4v␀dogMM%Dcdܪ*+e[y@ࠨْ8)pHw3׿q[Z+r S A"}߻ BqcGV/ N ?H3S=WO̒ W~JV՛KluhyȪGCs ,|Z1:#J\َfv+M3=;(}Ϝ/tX HPU3p`VfrzlC!ȐDVz_HmɮԇmHކrѨ{]4 ?\ p0P ~dj^Vg-NG-#1}=f4^7skW|BhP<6>^gfuC?rҝkX1FRos 9By|"u̓{hű\25<Ż̺>flȬ_,ߠ, endstream endobj 337 0 obj <> stream xmR]o0}ﯸ{0dMB&f+DZREhν\i;̜'&wS6XVQtyEFXҶDѬ[/SIae'7MN= u38S`'^R=}M} w˛\kE UͥX?> stream xc`9a2eO^ endstream endobj 341 0 obj <> stream x՗{TSWZD%fY='mmCk*_RE𐗆C 9$/yj:pU3L8v8q6]kNqk﮳Yg.776xmm2ylԒ?sq0␺:Sod{o .^3Yq_?a"cm!)KLMXw4'co]v |5`wv{G{OeDD3RdBC:Ji 8WݘTG @ \:8ǐI.PS6߯,$f20B)򐒍iS޽ C:ȱFKz6.MHAPJ*RY=L5Tu%_H xveh?9>l sa-!PXfhN$C(0{c2AMxojco\Bw/2hg)5Twv=#?5FaG r- M-յM,;w뚻GFFF;6}ʷCs`n$]L/^ }Ի<몡 qG!~rM1*DoNz@xHDґ@@4|5td.b<sDA+x_xk G(-5d\jc!ۡٗEl-(IL+l3\we Q!7%'h.VJD>)uf}cҫI߬8ҙ @իAB{35:Et zkmz: PFQ&R}ڠku}_gѓmXw볫oђYzH,jP@^!y9/ʍcHDW=,y&+ׁ 2K;$3NkDγ Pϣ-dZ~)+5J\knD"A4)fT@B{R'N&gSFC9 #2R3x^k;(sRc2r]Z ep <{DBbt>%BX,Il=X7B-!`yaկ8>;!O3I!zxxpAf[qn> stream x}RN0+CrqTE/ȁR5qMMؑр**Ύl kِhX_6ma+"_RtKv99=0g]??KP;p8ԭP;J)$_ڞ%JH/&`-h\?MHv8ֹ ܙfs|K7͍yUQMsB(2XaͦB{𜛮؟Ñ7Ƕ)RL42'~P 8:'G-?8td_ISꋩ+S_L]1n ?R[v%s/8JԣGS{IVeNݞ^OڤՅgcQrf/ע5 endstream endobj 346 0 obj <> stream xc`&Y& endstream endobj 347 0 obj <> stream x}R[l QnwӺ֋=[HjYZUݱcͪTeK]]+4 :9{Vɱ.=&j^nͳ8j|ih ;ᐶ} 9UC}V`mp's63=}`J>AԳvIma)( 1k+'3ߙ ^yo!ڋ"_o{& jM_@?5iMvA55:ɷ{-Kxuޅ׏..pL1d;/UfzyѸ&E.;p"cívGEH#ّʍ:֖JlKlnT.}*ՖN[loAQ endstream endobj 349 0 obj <> stream xڍRMk@ﯘ=Ĭږ"h@@Ez.ݰRl yf޼Ma^a4rXai*+0ϲZ##JMFq:Ir"Z* wQho+L?Vm9gFճSf#N$Inі!s~7앖v~T]Pxtzoh1MVC K>@U8% Ho$TUG87\ "h3}@6Hx)] C-ykHuT1g0~>zGӧ=z/5I"h4uGQYK }o\iGa w8Gh1e߳ endstream endobj 352 0 obj <> stream xc0 1[ endstream endobj 353 0 obj <> stream x}V PSW~!$yj?1֟V@p &`B@ (F "TGuۺ꺲U:QgwEg:;ӽws9{syy{c,K1<|RRuHA-OTKu5E`E^lj7v}gS91`3zM3vC ^ cX+JCddZ\cP:R!-fuT \ˌ ||"bWF2ԏ\'ݡfU?2ƠˑwUT#lPJ5o\N\!U2V3T63C?ϏU(dV"NKra̒\)&\F/'}}I\N* %T?.?=|WEXO ن7~RZ]T1M&cBl &Ŧbacg:oإl&$LM γƳz^=I4sGUq(2jvA>2͞P&FC5b$yJ,x9bU $tE7n*JK! Bw&V-<;%WN>ך{ _\+7?:=di|hQ8R`#Wcp8:!blOTKM:kRTyMmT˞Bv7@ţ:zg(qD>6P[^WX2! bhpМ(kn3)(s0_. XmYl$Niaqe;| Ѭ6srt42Q,[7f6Bu܏ NxvpTp#hyĥNә{J6LLWZt VM@rMVϣ}ViIAqΌ&^;qE `>lJD9T<-0 k%Q#8%b]vz~ -k/S|%-,sE8лÓBw/%"4.1񐔛^cGG~Y* .dTno.(+< r  PZVn;XR*m(T/K)<O/Yk:lmqVJ#C$$ajF (J]wO Q lb5l͊[yȆ&v~MB^ Jor$G?z.W.n  6BVl ZvasG/$rtXhhf1ǻnކ9hD, RГ9y7rWOgJ6943\?nLIDH|J?*Zh! P䉱  Bsס:S6$Ԫ#@ {nf1+[!})f &`SC.bSߣjLeN(p[S= Ÿa@\xLKœ:[oUŐ_\jط.7} MP).-F:ck"07Z8XUٴ86Qт pN<`Oa6GSr0;?wUY 2PDٯ˜ ؊+Jݩǵz%|0 }%`ū7:m#YO%7=k>S&5oqno=܉wum(-.mYQ,sv}Fk4vByMg3,=m_^a+/*/J+V endstream endobj 355 0 obj <> stream xڍj0E".\} ݂i>J4IddyHS(9W3s:X ;A[6 *B(lwOF5ZUY)i ?Gg(ǽT_ ~jJ=Lou߶tmAIJ yR J{Ü/"$>?DwmjlND*-?DŽӲKy՘8?Xg^{)*]4KʫtV3LN_'.Zˡ?ӵ?{cA~f7TxVN_;QI endstream endobj 358 0 obj <> stream xc``Lb endstream endobj 359 0 obj <> stream xmSmLSg+^`7]Z8cfDJQ~Lf^\vBک)HAqC]gCDk0ſd`̲No<QegVo,_UbQ nݺ;ZK ,DKLQB}፠G)K3aX qa9BQ60L),X,VXf`nۻH~J^ݒh"K^E6zT-;k&+Ttk謑M-2tYw2{6{.%dж¨WwJ{% è֪ rąJA Y4Oe\4*f<=үg@q'Mjh3qw$ԼuY,f_G5Ȃd=Ekj+}ǫzCt$N/ބ!~A \7z[[3pBJ89zB`#o x.lStnt)jþ0Ccn:ӊ]| ,+kkE"Џmg"D/x6gҶPe_#0OcfIO'b.FZNb߾PrR9S pX} –| endstream endobj 361 0 obj <> stream x}Qk0+}UN0^krmR* B>`! 0=ֺ1{V^oyS[DS)|S_&DI; 8QhvcRwl7fEhd$6+$"Wt _H"MhjF(hM.]{5 [vsi}ɹf䶝//)'W^jerf3$\ wF!ucMU@sΔ6+B{"HGåB|t˵8L(h5=sJ۪Spnc_7gW,j1qyݚ1ԑv[\n endstream endobj 364 0 obj <> stream x%5or endstream endobj 365 0 obj <> stream xYiXS׺!fgV7ڣPu<`B @ L@)LaB@ BZUZk],z]a}Ns}CB6ko}û];jJ K֮?gjuR'/ *d9acep/hc$E/S`u #׿8asK*cx3n;e TOe ?yNj;~jo )2j^ȈI^dR?uخmr?@rgy!Q~^=s~!~"zDUEz:'CqP45BQ IIK S#G5zzHIMQ3j5Z@->QQ)oj C-Q˩*j5ZKSft i@ ppp8=ZD-r!"AH#.CӄT"D'З02p@ AYrziC V~S<qgE ,uRkLO y`Mqg"clt?0V CWDKe-+i@5locU} έLf]oF6 9\4+iĂ0̐S~ ҔU^W%E8 .WAkH% 8-O?ZtՒ'Df) JJU &!xJA9:ebʇGyAԵ#z6;3)%ŁErC3:n<ݹ֎ vɣh ;h$|0W<[ۣiOt6)%b5DsŐ[S07`ۼ >Ζe$23M$"+M;olG<|4gi'~C_C։]u.w{E :Ftɠf"UfkSgop/!ؗf6v+N3͝x|v6)m,C>1dsD &-W8g؅GYD5 40.{jLHs8- g68w:P00.͆dWQys"kƝiytW[d]9-̍`{ro™9FΝ%K?\j&7sq+@'ֲiJy>ǚ~5uk$,oOE.i8m>v8k! "BFffJui\- .^dx( 8,7%n}|;"euPzHA:e@zʙܻkbhq?9DLeO..htx zF[rt%|OQ$F< ^ Y{Ldx0Ļ5 \0e0{MQ %Pf0{HѠu|YlQΤNa#Jk!}fg{S?K;ve}|˪0p0B <*^΂ qY Y 'Z|Z[X F-"E#V(b*q(ۅ%VVZ N᷑ޚ/x;#'@F.MTFԱ/b$j/b\ݱf6k,GKvjɃrbip?Hʑ 9-錕fs3n*23%w/ޅ|Ɍxg;U]yu_He~C@wjr[8rh:6, Q]Lu_?5#d7,kO?B'J!Nvh5}gإΫ;H,?rH%]]Ej"5~oKfG(~olz0՝ UwiHoV՞_ 1sgX|X4^xZ>rõk?p'6P-o%?]K rD6iI0#9eZb9_y@}$ )[-g88Ie=$Bc 3p4|UV]tt+&;uꂫv`f8@Š7߿roVqQY+>3xݺާC?[$sfڞi y7)%h9yَ":W]ܹLD6vy,D|ïfK($s1*T3c~Ǐ'-HFe]%J`*̵__YGM{&G,~7sK-CeבE?3XJn/TW0~atUU3g/XegwPuQxIY`bш?TuAFV~M S13Sxv짓q|vXJ+,m f-oqk_wGܽp޽mhn6]6s*~Q!-%b4O3m+Bz7X"& 3 RHt& ._N&F[*3LVX6sE^mn  [31{vl`̀OAn1IQ ]xf/,Fy0(Ω/*ʁt"L:WW9JיSlѣ?+n]ǭvL7=_jkk4O9IVg d8ٓ4YG>@AK.c#?G럨 m'+<&Lvo5 ǻek;$J=IB裛><# D #*`KjJ:_W/azvG෸^&Ex šKm:ڐb$_ƀ@1i 8 o- ΌP3C3A dߡ@nNf"ke[AxD4MZLlnU{t){ ew.db]XKS._Hg1 2(9H`f*%Ϝgޠ{(;oS$:-wmCG\F1G2ϡ-n|{Cϵt71&s HJ'G س!}g+!/_tc1%ʵNQFdz!89ŶƂrHgk3vEC4BzQF9ӆ:E2Wy,d (`SDRT̥(C68 w ("4ۜ{މE>rH?=44Hџ_pfu@}؄=y9h!1Ƣo4jmFk|!ᩒ endstream endobj 367 0 obj <> stream xڍS]@}ϯ>އ\741Tjm_cv LrRB ̜6\|%sQQVL@ {UM1}p)ϝAo N$gkmw5é;6t۳+5svO{9XVo &l28jl?9;xA$e#//.9_6-\6X9κi&VumWgC1,L}R\M|Nu{˭П18JAS%œ 8s[`_Q_v8s%҅'5!/!)WI  )L""IH"I99"r,%'rMdN8K"DD80q4(aMcBДPBh5&cBcLК2" '[CBb <)JlGE229%x&yR29:7cZ}x p^i7j_^{B endstream endobj 370 0 obj <> stream xc``(6~Oma LA ]CSe endstream endobj 371 0 obj <> stream xڽzt׶Ȳ4D 9#jz/6 7`[.dIʖ q $I( $\߷ $k:3ޞH$V]b͈Vx;joG|D DP @{2todY3"{$=w/(5rp=PvG!j(5z&yMGնz/ =~رGn W;vHT;Ta;)=G+V.R۔Â[<}A>aޡaJРwF+Wm SBw(cG2";T\fjpmށaQ0oo_xx1c#|G uQFw^zEs-_5otxT'(T?l4~<(4ß8?5H FQ18j<5zLMޣ>fP3Ylj.5O-R%RjLP+Ujj ZOm6Q)7ʝRGm* * ©*bX*R_b|+U/ovZi_i?i)/("&!#  +LlO$;_>R~}lX./jvw~㵸\{^ώ<ˡ׶^_}ة8>#)(]W߷eo{s蛓߬wFpVn.SQx`AAK}st,Oh2X-?Nw|g>nk ~A#Wߪ0>JYJaC^1:r:;]Wo5*Bamey"8E.ΊWcMAʩD-'wq8v_dh9gĺB*xHKpZ h,Yc#8,N<]2Qi6[$oúRaMĺ4& \í&ZO\6[ux6TU[]^ʌH1"H#9?{OZpTԅUVUU!rOkHXTRp3(. ) n**Cmvhz-ȿu h1V2]bw1? XI8Gfy> .}4w# V\1#Ӎ?18%gt[3V8-տIįZyYGyW))нz G|(0_>/iĴl pp\}!tg ubO)uϋi.F=+L6Z`d+!O*'CgЏv[4T>I?灢èՄ/- u\x XK˻&f%!$S4ih8mmM,&\ӚG7q3X|g5hp<2~SD9yDz{K8/^|o/+9>J*fNJ(:)*U.Ee'ks;Q] yB9"DpHL0{޿u?,LIѩ?)g ƛ-54r$.hAg ''n&Ay rnYEP1UYal~-f];}[ rrla[#YiyM<|r+7G0"eËU5uEUWGX!* ޗAJG]l&&I ZL66vf ~vyM߱0,'ăxD2V~E|D^<.gEb6ݒ (Z +,\P>⫏Tj!Z(IRiz < rk4 Ei-vvy)yN$b+~MV5n5-pVq(=/6-Ttp^j~B渚KV' zn/h??Wg$NC|hb]}9L6ڊ3Ykf5*fz="="T~Qeico>>CfKڗ>o,O}H䝆rhuǹ.N 2Q~$:NsRCR&l)180{`6ި Ml֤I0.h=K w{;[_LF̰Z#ˈFӫBؠRK~PlkfX/ZaZ/RA }5>Vٲ"SON] L1`MW3xɰRRVuxN }3O$&eWJCEH s&88or'cSy)yYc^¦h}}#؉ X& (sj8[a@Q ؕ{e{d;[Xpmw2!)cS;NM HMLjq^ʯ8&||f~;]9}ٻQ@OO|.雝f eeh2Ї>9۱Icui׼ e eYAxY(%ٖDlONRڕoH@Fiu|e8wָ\͖ecXN呰*i@}ȶ>KX @E"d9L*,j\i5N+XΊ D=}Փ wۺr\Xy5EɤB[U[=$[a׫`-3 gCWӳ}oKXa uCw4cKw Mj]C;)*|h=Rb}`uב^6X1Mof+I4D)y 2㜽,|F7}mJv BwV32O=27-=Y{bz]u&֍pz: #bUKl'>]}=S4O}G6-O+Bd&MȒHJ048ugw(alWT*,*+CW3 3x6]1+En0FO `~pn(6)MU!$CLS`ۭNi0dRƿdq ='W߀9%ݞ#&S0f3Mː˷G]M[D!^OO`w՝*.hryE& jޤ2ړ󰹣]d2%pƬQĩBLObY%ܑ-ݟ‰A$$Y%GpmnқY NKGcI0(mޘִrQA:Y@`Ni|&/ +jI}s$R%ŵ"R1C"[4 H ǥQ5=\VG"\[}]wl ٥bQlG&m=)ҍ8pBYN q4"dX~,k;rR,I-%J]C LmX|e̡o*7om*j\̍$OKM tQ5m%WIB"Vb5К$I ,6яjhmF/f!X ݝ\7T#X%wEvUv(/Dр1NHtJHxAnvI$DĮKwvz+pm5OEqd\xSx&Æ,XUcXS:i,kח0q~Dd6&W CΌ"WQtX| cV qI}лEU.imgǾ=mhkfjq`~X8i0v/ n/^l.Gc9|EB1k溩|x\廇.cj,gĿ~q6~ 4U*0>ӧצ>&&X?_ha!|[HnTJRmT-(ܒUgdVd͌W"NQ:'"Gє5;a6~9ylfgN*&>k(TUXltu8~'0b)$kA0*lT9s1QBx_LUf&lɗ\X.2`kfH9;}'p+Ե$/=ת :93t͒"lMT^0βG4<\pp|8`Ѳ̄2~hWw5c&Kz_zL?hˊ5JxfLkXQ$y-<.(QL;1הm' 2v G7cGYSpE3:V;԰͵ߑtha\#YՕu3bgBtFTi7mkQ\“iw.cԎ&#{7UP*D+'ieZ>TlcTs !3&.S.օqD,*6:iS(ށł1T" ^BχnV?\H+O"]~ Uѐ #fUժfBW4iBۑ)X$s~&H_%5[pHG_7?(>YQ^r@<\BE_< ؇30+ZzsP'د&!:yvsT\3}یwֶ&Qw:b\Bڊ7>`6]A%S,S%gG٘j5ad#mw@~gUr 2Vh#x]B> stream xڅ]o0+JŎcV ֏m ( ~OZiZ5$|>>>\}yMef'g7箰>ouSO-m9wku]ojꌷuqP6﫺H-{#*[\M4\Cw FǮ]Ug"ܶG1-{!?Y6ؖn.Z\4ۼ]^l4we 6gٺk=\)g:<½$=b.jt1H;| ΉXJiP,A1(IX-&AS.AkMA% ~ I5Qk h%)3 RFDg J8t"CBZnAZ4L4%ػKֈH'#D`cZA{5NL4T"hS݂ZAAO(:M ]!2"hȠSCBhh1DȮ0D8MEQnDf$"eCʈJCU"s7Pmڠ ?lQ]af B=Ӱ#kobp~bnab+KaY3aBHK9R4j&CI] . DQBHI'i㇛ô8waidU6 W1syz̢?YM endstream endobj 376 0 obj <> stream x`0VQf/ endstream endobj 377 0 obj <> stream x| x[Օ}iŶ$˒',Y,Kx_p8qY8;iC),({R@[!”)P(t2f(X߽1!,YoX9zw׳s} !zr~Ig{րπu۬/UME Q6w !»FlT'!ˢiBr^61z9! k1e#KWvCDAGʷdt``i՟3UCx<& _1;a7±N?JZs F9/bڋb[x}%@0.DbDE2S=wںƦ֋,l_t%Ku._ѵg5k{>mkbb7n_ǐѭH; ]p4^fRIJ+>mrKr/TR\['V1 q%k_z|A1ƊbKw{>~| :E*RLO)1_bX:W׵0"1gU{.=MN;i_/N?4ߞק23kjٳ<#g_e/6;Ee͋ONOo9_Oӧ}ꑧ^}XoR5?&Z2!d+㪡(ddl?-DwOs ~,p'W."DO'HsB_o ,2|[> B[ eݾxxb8ԿϮx0x'.'^9^A{zmG9܃6-lf-)RFB{i͎=Gl9PGR͌ÅFjx89|Xy8|qO#p|BL'hw=:8(y0Ξfwv`2`rs@դCc { )&RK7-xBQE$[;SH=f9 <_PyP& nX=#mH =2!gr)!gfJ0"X(2QG)Fmg#j\t1(:) Wdy|/d<{=u3j"/Q3}SryL\8w[f=kgDԬP7V˃U8V:&P ECnA&Қ 4:Rp'Vީu6;SJRdyBc(1L`mȵ4ZeNFXc.'W]yFo9Q"^3Lܲj^_dʍ*cGP M 9J%+<ޥtzT!1Yh j2'GU+TBWAq:ɟJ=Z<0T@o6js]6r9%BIRr1cR_`/*-q.ST%}c6po?I5wɭ0tN~@=~OV=~:p0~RV%BeA#|e|3s*ΪU%+lR-Ɋ*u M~bS 5Ƌ?MHlp񃞶E7>lb;[[ۆ&(?Dž/a+,TbXR1,T K*$ԑW`uꌴhKx☤'4RVL- D5~B\%ʑ~-nmኅBa\2̔28,YՕ3x0޿h(,᫻ ކ[+[ƃOMRBkm,ݼ\fPRqA4Qd:mrnmmmyq5JKu:^uij$uAldLY8 dL: dL#+dLL^@+{7H=q `A0kCV6+W)bI >:Jq7uwd^Tw֏>%%4&|bSݷW9c*2&O[-,_9hf^`0W]:UWC{:UWUW8e@t٫B,m[~>u}BG\5+zd9w~\J0< L(!oF Y%}FpR4:8A'O0Ly}>tЇA:C}l}e;C}L8/yYK"ħ>/BP9rM"^JVkXi 6+%&Ҙ346c+W) V[^^AIIIT,K3rhv:TX`k.OTJKybQg2t&]Aa(6"+v#Le:1nJrs*x:oܹja4OVֵhS|oӡlҩj.|\ꃷ~mJF˟9Уjenl````dWZ VZ*ږ#]D[rCnq-]DXDlg |^y!S3TU6ymw@i"9݊ bߓKPYł%yMW-\ñX+R[##'EozGKEO#%U÷{;8EZop6,eosavц -CnHGB&w] hOڄ5q/o+>k6{ly>wǶ<+=/^-eR.z 7I/yY {N0ĄnIS Jkkkk"&&&&&z ו̟{6ep t䋼i/t BE^"/| _" xዼY_>!0 "\*酂,yZ*rM=R- Peb%4ɣٺ '$\{f(KSՉrG_3\h4kܢU\Gm򋖖֕Z~obJg)]t7^T++K})W36zyܥKaۘ[TU) bs~6 Hy>1.,,ZԲ]k-Z3sY9P^7o~[[pL],gɻ3WGIvxbe"IXIK) mޓ}ݿk{חv髻?KqUǟs~dc~MяEɽٱўf-L Y=bPQ(l^#^^9V=,USV@p,[WrI+6MCˍ`ef\+rm=O+/ٳ\_=U dwz3~u%MJolZk_j9VAQ3iwYl<] ̂dL0ssʥÙXj|j[rS_uђ}ٽ3a#qpzcԆY`0C[_<9oزb8e]֨k&vF Wnx7U b5s )(-ć4.FnEй"\t:Wչ"^t;w,ms^3״67}<޸[?q=Բ;2lGˏmH:Z(! f7NҌ&&f#'6& #䙨&J L+Z3EXػ:sv}3p6 kUN,>=^D1ҹtgT >hLBx}*lbB H zGl3ǩˠBPTKbb.&.( ".H ~> 4i$J#8'Oue>j{&`E!Ko99~ohZ]]We^ڵϿ=ŗٓkO?]xt~2C ") Wv^+;xegyeC=+;xeȻA= y:(3d*-/ s̉ն"W\9m-Om{s61Pʍ,,Sm>)l}s/%xgfkD5^!͊Ǭx̊Ǭx̊Ǭx&! h4"mjhP^נҐ~-!mjhH! Eyrbdw3vYBP!$tGx!l*z EbLE_~dSc_*X3£HCX6ð9S9Zm1>UVAcK 4F@Zo T Uv7ˢ>JV6UsVA/wh8ĜmkRި7yBv9c8c&y{3gsE9JaW7 Yѻ-'é Kr3hHW˫t~RZڲ}Wt2yri@xY׉23o9g8 ;L_(<88888ʙv*I/P[Vk`5}( УoRW!r 1L!/8Hi7+YWeѨzHeYk43Y!Z̉a%awix^)||N_?'euZNoڞmvttꥫm{g#+Z87=D/7#&0X>M;>}?52qßZpӯLaQFJx= ZSvXe &l˛Sh9xft.Ý9b CG 唔hKξi|_wj>fy^Ծz2(AAN8H@'Ih%BkYBk-F V5,% 9\"%aC 9RXcl4*Ƀ08Hkbv<41eR(oQ*eκs*ǝV+{Mݕ^W沸Yeլjl*SoUU@TgU_~h Ljx΃|J x,වm(%A% 1 ".tm_m&Rax.*o%%dTb~uX`uΩl-=rbn{^gN~l[O[\M)<2>A8sYGS]W7E"]\9F U'o XƚxK|hlu̧߰gh5[ >վgeJ"TRBG>.`k^vז?@P"a/PFoo<)YGߌ_{`.GxI*JC$OW}$%`p \%`p \%%`p%`pwʇl'vb_E7R*\غ%* .)WJJ|ͧr{K9C|~?>QGG2<414:ˌ5 ՙÜ"˘\ŗ@rd%w $w $w $w $w ;Oø+IuzuzQuzQuzK:D:\Z'H2Oçaixtç9R9i@T`3lmD;D.i%-v\e#ْ65HK8KJAt&A]T1ĻO+RZP*z[%""õK/;$Uw*ysaހfނv>d_UenZlt}:`Umjhk2jyt&=e J-,qKt$J,Ra1ϲ"v9n,QS{=j-_T'(jxE霞Z\o-r c5#!C6Vݲ:X7w%%s}f-pk.zoC!5gܨ,%SU|(MIJ Om/0Rc PK 9Y YXvH]B5ܘS4wE'9go[Ybcr{0a3晴}y\Ꜣ9t;V.Nt_lGbOs ]EOm {-}l$A&Q,<8JZ[ `,NV_b+򯫮Hϵ: Ew\󝋞hN:SUU^IԴFԖs|ozNpg~RUD*6 }G_%Wi,S]M abqLQ{>dh^3P|ܰ`7u0䧄q̍ӵS7BgX>h&*5pFJh fF^&zI)t(*+䣣IX8)Q?)%}3kY0)\˷4>"a2Uj/&oL#[7I֬7|6TUom8gLaat|W3d||cm¸tmpgKғoXQEV 9r?)r ⺎ IDBDzܐ r (oj?:75Xd4Q"$,2 L"$,2 L"d"$($,2R:/D_)N]9v܇ $B}a0}> ~ PAc1 { =]pa9&mnOdN'g,B5%TS)r)ێ6qryavf^XrѰQ>(JU/ER.% 00KMتـ#c·mLiPZ'=8ɪtEuR4>Tl~Ra4E:nf_9ZJ([U T:*]}oAm.n1XKZzwsmu_!ku?Fj 4x8k9::D%WϫZ;7!1cA@0U4J覚`ࡳ=+tp+/v&χ9Uet +7+PTo "4أ >]YkvѲ{k=Bt wMz7O^dkΫQtŒroKrq= UD^sobqt fj Cbg(s$F>#v !g~S"_1v?oF׉oz3;GNl 5EaYNOA|zx?N6Z~R_O_#UPe<7Ad'%}bk$)B+ӯ(*Pjw51KtO)Ia ݃}'!Z԰NwՈ,5oeHya/l |hET'zU͝O4ܠ{)Ҝ?oӟɽPhx3LVmOO~e ~'Xy|^k;Aُ1_Zs8 )Ȯ@TYJ}n)";Rznd q1񊙵b@9e#?,)ɸe>'J-*п%j2!2%pf_e<;$\O b@$&Qd`&jEv y& -)qJX+e drD+c2$EgdR.jOEd\CUd\ ;2U!#.璨6&2]%&bf`&3dl "Cv"& D# <_Rh~׋lBlF&`l?k9 Okn e(e=qZPv軐3EdjJ܁g"⭬1qoN!mk cf"Yr"AVw҄L謢ZdQrZ)F*maTr|<Kc`O; tVt)JyNv7y5m;1ihs{ŕ##b 1 v߾c>8m֘02"ʼn7wnًM;G'VX#&sYٻc[D"K^bchqlGꇖ7TxK&7[7oƝ#'hCb ;0ƉQq}cQ<߶mWlRkppP> stream xmR]k@}W}5-A>~%7;IUV-;St9g8gvfye7ں_8IZ=Hc}`Ϻ[4\ݍJz wQ RHl67Ͳ7_˭zWv'] ˮXio۲V̿bdRWn7;J%d)3¯̕vPP;^M.oIKХ:7Msq'Ǣ6sie7\ b ZBtLkN(!{BB >! Y@(#D%)3R.ghѮe\ cGR*RS76 _q-zʜo5 endstream endobj 382 0 obj <> stream xc``0WLs†#HlDaT endstream endobj 383 0 obj <> stream xڕY XS׶>!$q8='UժmQquD-jdA0!dISdP*ZvTZkKm{ھ[kס{m$>^_rvD"ф[Wm_iں-NH=`さxarxp 7q@>1^7%(Jtd$Ǝm"YptpsL8Q"j5zISĈ)ҰaqQ.OPFED&+f{{ϙ_T,R 7JXXO#w)B#c((6oS$+^͑QIx^*cƒ)qaJErd-+B3f(I䄗fLNWFCI3PLǼ+7mnW_JNOVW*“bpr/^CK&MfP^$~j)ZERFjBmQj7BRTK%PJ*J /)#~V̊9sbObEr$əʡ@ &'`W+H%mJH?\B]tF&6iX){ݬnG8QsF9z1T2n{_f=r{Ydv b{69R}Q&S8qYbhC}NoKnl(FF-@=z}W.`)fu? C ի8%A|e8 >oݪEI|6_J# Mj,9́Dz]-sMOz޻!@ 8O=(hx1~Nj{3CIA IoؙQ[SYtƜ^ZiMkcʔR<"3ib Z_H[`Rj_Rxq`q \#ۤH2驧' hR G8g2Ld{y +; #UF=<,|YJ]ʭC|/عZc%6趍9s NuY!܃52')W_BXJFI\nJTA=Bദ+1Cvj3Tl;Sv8–*$t{QLDHc iVw4r6SZL$Jz0(x>·/2Z_FSsYo<쉴 trkK>( qD(nzpʇKZl0YVO3}lᦳ;;\pwpp|p B ^ϛ' *c%&~LDd: -Py$zތ>I(=('8[%jF,^K%kӓա%tj (dy9[n.++@(^2piKMo\Bl{/ҾA`oh~|ۿwY#'.-XHDŧ.PJQCf$pL\uJ(Zw÷ շׄoO7M? `f7 2;]$]Rzj%yz`͟&ޠCl@v&LB--d_JTR ]atZ2rHM#]`TJ &ƇbfTPဟ};J*5b ͬ8޹JXfJcBC=7-x^@4+9lY0vrU2\=gO濃2o&j⨜FaC7P*DF ) ã8 Fa0G0ͳȈB:bvz$K{/$oH:dD]O Hp]]rn烜Oyx Ei%/Ka ZJdxH9;M?q̤7iM\x<0pQ FMFcDcRnߑMx?v%>9TOO̔uqn]Z[tĚh!Ohġf!gDI;dfTp~6mEWs/mqr㮏Wf_#8\; =60Zv5c|} J #1\.Bu<^da˱7VJmr3g*iBk7 g`Mo'LVj3Zǜ9Yg0Je:xi~]9Tmt j?,? A캷+0"I7S¼l]BXկ.?}`8Ns/rݡTk4%¶LRԺ lv\J- 2xf)YQQY(`Vq\^UT¨|[NC$?{|Zt׶<3&J ciKZf)Wg_D7! ? UDaiR$xFS$6)T5,yKIB9P":)#DTy!z3ZOFHx 2ۄs>i^08 s&DdC5DR𳯩2G;>@vޖJ/XTS :53e'=\u3H:V3 >jߵ9ԻyK+c.RW/ <FkKl ZHX­!k T6!`L Z%r6P.~$!c$ =| P:In4Wf72Vƹ*[7)Eyg3ֽ'ԕfU^a) d,!AC[Y|r#)$"MrO80g_*2Wrxb PM36V"-4K>kҦ%t>φUCl.#1z%;ӱj]eR y$ s@Th% ac,qRuX3~ x Zs!gaC#{N_Id<ͨהZG:`8^lQ0_^P{6tuvD`O"[u%Mx HRXRP^.kA&Iă<,E, 3)>IJ3^tۻG+!ǰ%Mt kba/klHTk8}1" {ѹڃٌЬV_mj=͛`2dqpKv6gSi). j_-矞Aitlp;m̗='f`e'3/tsސ|zM8ٌY|1Mӷ?'N'Í2x${\O$L_XC[~Jǵ//, dX1|>y-E%Yݱ 3vz1c5cQ'K[jIU)ט޾}9dmh6@C<|U冠lks!o{&X\ .F2= 8~Wv$r[1|v{G/? kȄ=h6P!,<S`8 ?=D>b\K5ױS=Nۮ )3Ohkzҳ]ͽ5 Ъm|lRN㒡W#\UBGʜͩ+[g^ (ly_ Rx޷?}hs1B:p,i_C@եN4$x^/[}r-ޫ0;`PVEj|4{Z2_ߵ[/9B8Ir 3䌶P Sq]ңlbRdKA=\W?o}f`zu|Փ\`Ǚ}\ɟ\/ؤEm)|l}xk}xj?PaQ6eEQ0n⇥8KUʭ3 =j2 FC|V\Wo1LEE&ۈς endstream endobj 385 0 obj <> stream xڍ]0ًBi4jf"Lem˰̝մ+(~\o7v`Yss6ٷ\6{JoƮnlnrx?)vb $[gTp&X)A+qWC{tl:Iu4Υ:u_ gD[!~D{Jz2ij}Yئb:Ʊeg;'}IY%[93yl,TYu*y"[ضg"ԉcRW FVjܴ+qi {hhJѷy!\TvИ,7;B:aC/]kT->#5%$R;LrņCg HB^diPA$Ajr3 GUBYMK8_u )6 ԋ,8oA+q8A]sx]!\-OϸՄgj3ng1y,:Cd @Ȫ xͨkg:Juj@9RIqiuqAf0 endstream endobj 388 0 obj <> stream xc```PrRpԘ [ endstream endobj 389 0 obj <> stream xڅVkPWfn1h*Hhp(dtX#sg#QP$!^<"nT%Zk讫-OwjX[?n>ܯ}/MR4MMM{)s-2)`(>IQ_TEJhUQ_ը/M.M ]͌(ݣa0wwP45 T(4C- |}\3-ѰX,ļ QrZN^TT(iQ(yʡ9W_SR63KeIo4ɫSXQPhK "܍b}I/[JF\SgɆ<0O_bˑly͌heU*z%1E"ψ4?=)\fWrޜSXlzu%PT5zAS)T5ZHSYTU@S )!Pc #z3ܧͫ~ ;L"gosf)+Ji7cp7Z*Öj ;9JPd%൜ŊV W{ZqZEFo>m 6L udukۺ>BT,J\vGs888` 77 w5I 2owQ[;lG } A"?n~ l/",cr Oػ^W[=a'X-`ۭv:F?8u7W6:컅CER6ȏrp6!/k=1(xԸO_P'A06r,P灌'@)T GđI[bsńI„s î6M.^r endstream endobj 391 0 obj <> stream x}]0kl=-mYέM=HԋM2 K93y3Gwp)63hyWj!<|-b]([q8nVxGցX/;]*fJ_D\A l nDH ~`%r]5Ahp|J$ ?yeצŪP',li;w#HuMV @y++o\بl;q1Z`SM,lXgu<ZχWW(^BdI4%?D3 'D۵M{>3?}պvYGoo/ endstream endobj 394 0 obj <> stream xc``0L6|5a- `@# (fp endstream endobj 395 0 obj <> stream xZ xSUO 7t5H{"JYed }Uަ[ҴMҦٷ{޴n],Td8:FOGg{^}izon9巜(ĉiwmYu6o.\0oCIj>7=r.94=0C8#DD8B3i=3싙8z~Ff0_'@bL݌`̬ȁGQi2g&G2xi22 K%e,X/psJ8,Xdugu"gcjzOTfp6&r6'r^\^!'-3'5?)-sR~DΎn1Gq迂 NiaFSYsZ^a g7=83oS))/?4;'ȞEx~G66mXq ''ddr~ 5A?ӑx1E0cdbf$121362glf$323v00Ri(`|Q2D 1Cʰ1^9s>s1N XXID-J3aƄ 3'!,$|{3&|SDbǞ%M>0qʸo Ϋ(&u$5{Pۇ֟#y]Xw}S^(NSo^{Q}dN=B\l:ُmڝ 4u |@_ Q2Bɜ!WpB =DXT^ *FC:݉w7NTmz.s5%Xx ;}tp.ȑ_Zç?ڏ6> sOZ.^zy-gRq2 vJj5+G̃`:~S?cg3 Du-J96UרDl7F?dACk\8mo7\p2Kb->֪ac']L8 NȇK(©iKЂv9@'c^OljN6ىkW>2f^יML0_bvԥIHsԈܨ0QT7k$)Q1ʴL#ނd8| ~Ig )I{0AnG]]mE8.P6ޖʧ>OOhU&BJf3]xFSU  : dVTbc!bQ j[Q`t+q*ir5ek^JRJN=,0 w+NjVxiKMpM8~K"]*汘jXa;(8L |Ŷ=jѨTV-җc;gZn>N\9|k ҪZPG9Cguza7*q:Z^VqpŁe>?zd6s2 Y/-n%b%t P$ݡ"o9U dNUīІǺ%z aQ od ʌdMD4uzd7Ť,!䇨RQ͐8K} J>>3'HkH+r5l.*kdfeVUvgcJJA*@["r Y4TQX5nPSrb.E31gA# tbZZnjc. Bi0]pA۩|.re\<\,_#IQ᥋ ^tFy&`p#\.d T\z`W_̀3PwQ d{0n8܎4j#M>͌  mbèFZEu%B=&左`Dj5غO {)^Mx1=T`|uNo} Se}~\w ŠN v8r^)5AJ!խs*0Tq?w+&4VU6Dݙ~8qݎ99[p3z1 *\z_ǂUHp6k;;^5n>HM2.!'\]a ߇f=`E# SY" V'֡2'4PA0z% ^5mkP7ᴻbn@Oii)4L#Cm4n"HZ^ UL08"?@a}7ڿ%>xqh 'bj&.wGf6eRsu*̕V0͚bEFL<5f"41q+i +yyy¶`/{U@gyz~1 n#fOpܦԡѭ- iobZZH)\FQihYyDS_SC79b.Pј5DffQz-}d/;;lD Z1QH4/(!jpl\N }]x|spxAohkpl|HR&PY_>w$wш 4:+%5o 9.3~ Du[Q ГR\_4Jt1A@߃z*/ZԻI g'B#fPRn$|Q^ M-9"CH~sj"RZ%1ƛ+YN܀yHBE >&LH\#@ũNPQUgki5]EC_Yff-9ޣ=?1ʠdtU'1*iGX%E1;]^INl3P [qjEL_"f|6N&ԌW{-==dXIp G5޽[^L{`~UKޗ8ᶧ`٢ !Nqt0lZ RLĠ5HTᬨ8.쭏>60|{*BH;xSD[KUN85EbYv=RΠb:B-i2 Znf=G%"BTDtòYbБZ-+*6Պ:4VU-+p̺UYJ!b l}^c0l%ەYn~ٴ7} OeKw9 y2;^&.voNByf*mƸ0~ݘ>s^'!?i+Є,?bnA<#g8X#_uTQz '->x_J6 bGP|5aLPɁXc96Kkǡ4tfk5qFMi1ڇNs\GyB8"9;((&HyyE͇n!*zUsi- }z'wmR ~FZ4W`b1 BH#`e/=Ox&L9IN9 30\Ⱦ6ͅ~fK2Ã|%74{z7PӞ+V-~T9܉UvJ|^߀!<(Zԯ OaCvvWڍY"j=ͨ^`Zł&98Z!Vk4AqVJ#E6˩/"ުΣ%7ϢVO#PivP} L׆r aPD& l1n M/Cߋ`,SWnz|:<g鈯{ hOXA-FO97Yk>6)3CCt ^4n r\K>n.)*ƠQ!bX0۽Н oh'F")(ȵbZ: 'pjc)Dz N #gLqEYd&7ǒ;z9-{NU3qatMjk3z}wy-䦯EՋ .V?bvb7Ĩy3ݥyi/a{%G\FQ|}ֱjtʶQbD3 "]I湗(m.yd ;NdUcN3tp3j ٩Loç`Ö1A-X8,fYˬh!6U2!ک_^Q6f#Ɍj&eI|IuPr˺d!Aa4ToV֠aU:ƍZMn;Zcip}HL#RXm5FY`e{,=cbS*$cH&=yo>N-\up/_c&Dmޖj^)m ܳ_OMDvp(]0fx"3gd#SƩIYDj5F= yC"i(Gbb-@&b&k w . 5Z9j5rTE#EPk'F`b;S\7L[PRz-L-MDKD VSp8Z[i燏p4Ziikm2+SD![2Or^k#ζnV PU 4Դ;RJ{Yʖ,Tj Qu8e85F&lw[?(7+;БԬO?^X1RDTtWO6uPѫ2|lZKsǐ"lW6>> gG[ u#v1t}>,b<8jN@-f)nי9NuMƝ݁(4r5؜isvKʄOY< &d!n:;9P6/ Eֶ6&MOb k 1x>R9\YKl~1k41Ln .LVaIjlP%K ,P*W(d<8z> stream x}n0y .R8?m"Ah4HӖfD"No?M+U >L~lvlme\BK:ɪ).Të,j6]SzVpת8_J9vi)Oj1:lݟeԹsUܬWYw*QevUw9?<2mj3a%*;Ƹ~,]AkulͶպsfo])JGݳY?;IJy[^Z]j5\ofm%-{0\4ۼ]Nҙx~%T:ǪƯ7?yg6R瑗XZY#Ko)AD0-)@KteEA]ĨB ""Rxp̰#BԖ GDP0_y!BgH"(!ϐgL=D(Ffglmt#8,D1)ҍ'ҍRc.@lqR63?BftBBZ]:q{u07W^{ͪ|BMkVٷ}9Comfq endstream endobj 301 0 obj <> stream x[[S9~WmJQa Bdww&Hmvcp1IGGΥH/g[%A38&F-gOgdF@9/6K <N za## Ʉ2J%tx!5|LrIǤ)%`jjRX1AaJXeV c8J3eU "`LsIaMUԕi+`$ȊCprd$IB@ġ8CZ򀉭gVJմz*\$q9 )gS-3g:8s kڛ kӴB=}!@ I4֮` [a!>O"I6h;X$$!8F[VsN9,TCSIYB-/^;P8MAZ^ec`Pno)ɼ~B3n efi8!A;N)B P `cVQ:-fXj AHvٿ8%kK#Y9?V"?O5'?{QQ5NxPMFjO1V~诂8Febֹ HVez򏣽g?ُqZ;\Wm8tNEA!Pj1L (nT 򑠸smh4Y|I R<%B:~x|;;׃67Ř>6s1Be|}҈C™f+qF 2^۬.Mr pB,]q ^8oV#&3nLxp {E,%:*~~YP-#=EK%)(n"y{GAWAsF)yӭ"9kbEP )B*tCg.%h#:ie\JSԥ(( *8!1XAFJ#}'uS|[<}sӳ~1#ݭbÄn~ΩҜ_ubpܭ\c댻v|߭v>iPhNw NB )f噦{,xW:d8Ee^5Ɍ}F{b~SFDS |1a:1/!CWؘ[17)p d^EӽrR@p$Ԑ3PioxY2E٥l\Aq$KϺƳ˫j߷XT--.y:x>p>T=6AGIto%N]M(vQg1R\ iz%iћ `G&+EQdjN5",uT^C>?HȐT;l-"{̗R2#H5Ǘӽ/gm:Mo38ot~sdMt΅O;<ҹ܋>76a j>cx#t2LXtJ }yo8VTG<6󞂾4woNw_6,Ѡw|a0w(Zn )6󯴽[ jc꿣l}+"us*""3ѨT젨6*iuAEpTa9ШH7 BbV!1%TKscم8ODZ Cs pxsZk+H>BCz:>jB$y~Q72 6gy鷛bx=EV<␮-%F~|lz08'ӎdvc[o'əC3; ]/Length 1046 /Filter/FlateDecode>> stream x%Ilew/-N@{;:БP֢2 pSC"QbMLL.Иx\!B5JbB@j1&(-E޷'w魙a""H$d"H%҈t"$l–# uDI}P5u,,|[K#KeɒaKXUY*,, Vr]: Y-Y&Yr,V=-ˁ~#\dda-`O(!;o'⬘@[K#J2:'u$6UӚU5:n$jMfb M|qJ4MD3BmD;QOl':N&F`;^bHD?1@ =GԽ.b ؜>2wэl.[MCukh{)^b ϻ޽ă&yL L;D{D$p; p5~_]JX) ~k%B?$ ^DlD:! |Y]T,$Ӳ| eGdu2~L&4Y1Hm֑Q;;2 Sr eٕWk::;uvنǁ)hxX3 [ͣ5+ y]Nu:Cw}@\[ Y3ewג32&{/hƼ]9S:%N=N}71&U㺎:Δ+Y:;uvtSuթBzF c2E-kFDN]6 t Vف={RyY>Q.l_լ/+"ӚJwҌfY9Q,TUɪj/zf5 Zbp+%lol3,#Bw΄ߵe.k$,`]6#j~_D[^ ۶Zm%!:WYyng>u݈ ch7eD Wb#:5"$b#n endstream endobj startxref 177464 %%EOF context-modules-20240428/doc/context/third/cyrillicnumbers/cyrillicnumbers.tex0000644000175000017500000012254212132362214026572 0ustar hillehille% \enablemode[print] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Module loading % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usemodule[cyrillicnumbers] \definecyrnum[normaltextcyrnum][ command=\oldrussian, dots=no, titlo=no, ] \definecyrnum[rednum][ command={\switchtocolor[red]}, ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Colors % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \definecolor [primarycolor] [darkmagenta] \definecolor[secondarycolor] [magenta] \startmode[print] \definecolor [primarycolor] [gray12] \definecolor[secondarycolor] [gray22] \stopmode%%% print %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Letterspacing / emphases % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usemodule [letterspace] \defineletterspace [largecaps] \setupletterspace [largecaps] [ factor=.5, spaceskip=.4em, suppresskern=yes, ] \def\pompoustitle#1{% \setuplocalinterlinespace[line=33pt]% \color[primarycolor]{% \tfd\bold\WORD\largecaps{#1}% }% } \defineletterspace [mediumcaps] \setupletterspace [mediumcaps] [ factor=.25, spaceskip=.5em, suppresskern=yes, ] \definefontfeature[smallcaps][smcp=yes,mode=node,script=latn] \def\mediumtitle#1{% \setuplocalinterlinespace[line=33pt]% \color[primarycolor]{% \tfa\sc\mediumcaps{#1}% }% } \defineletterspace [smallcaps] \setupletterspace [smallcaps] [ factor=.05, spaceskip=.25em, suppresskern=yes, ] \defineletterspace [textemph] \setupletterspace [textemph] [ factor=.125, spaceskip=.33em, suppresskern=no, ] \defineletterspace [slightly] \setupletterspace [slightly] [ factor=.075, spaceskip=.33em, suppresskern=no, ] \let\te\textemph %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Font Setups % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \definefontfeature [default] [default] [ protrusion=quality, expansion=quality, mode=node, script=latn, onum=yes, dlig=yes, liga=yes, kern=yes, ] \definefontfeature [kerning] [kern=yes]% \starttypescript [serif] [bukyvede] % \setups [font:fallback:serif] \definefontsynonym [Serif] [name:Bukyvede] [features=default] \definefontsynonym [SerifItalic] [name:Bukyvede-Italic] [features=default] \stoptypescript \usetypescript [bukyvede] \definetypeface [vintagecyrillic] [rm] [serif] [bukyvede] [default] [encoding=ec] \usetypescriptfile [type-gfsbodoni.mkiv] \usetypescript [gfs-bodoni] \usetypescriptfile [type-imp-computer-modern-unicode.mkiv] \usetypescript [computer-modern-unicode] \def \russian#1{\begingroup\language[ru]\setupbodyfont[computer-modern-unicode]#1\endgroup} \def\oldrussian#1{\begingroup\language[ru]\setupbodyfont[vintagecyrillic]#1\endgroup} \def \greek#1{\begingroup\language[agr]\setupbodyfont[computer-modern-unicode]#1\endgroup} \usetypescript [modern] \starttypescript [mymodern] \definetypeface [mymodern] [rm] [serif] [modern] [default] \definetypeface [mymodern] [tt] [mono] [computer-modern-unicode] [default] \stoptypescript %% this will do as lm and cmu are acceptably similar \usetypescript [mymodern] \setupbodyfont [mymodern] \usetypescript [serif] [hz] [highquality] \setupalign [hanging,hz] \setupbodyfontenvironment [default] [em=italic] \def\quote#1{\bgroup\italic#1\egroup} \def\uprightslash{\bgroup\tf/\egroup} \def\uprightomiss{\bgroup\tf[\dots]\egroup} %%% The Wiki is great. Long live the Gardener! \definetextbackground[verbatim] [ background=color, backgroundcolor=gray92, backgroundoffset=0cm, frame=off, location=paragraph, offset=0.5cm, ] \setuptyping[ after={\stoptextbackground\blank[line]}, before={\blank[line]\noindentation\starttextbackground[verbatim]}, bodyfont=9pt, margin=1em, % style=\tfx\sans, ] %%% TODO: find out if this is documented already %%% http://archive.contextgarden.net/message/20060523.151528.b6da35e1.en.html %%% http://archive.contextgarden.net/message/20111221.083957.5c85d357.en.html \setconstant\kindofpagetextareas\plusone %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Presenting the Interface % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usemodule [int-load] \loadsetups [t-cyrillicnumbers.xml] \setupcolor [x11] \define\beautifyshowsetups{% \unexpanded\def\setupnumfont {\rm}% \unexpanded\def\setuptxtfont {\rm}% \unexpanded\def\setupintfont {\rm\sc\Word}% \unexpanded\def\setupvarfont {\rm\it}% \unexpanded\def\setupoptfont {\rm\it}% \unexpanded\def\setupalwcolor {primarycolor}% \unexpanded\def\setupoptcolor {primarycolor}% \defineframedtext [setuptext] [ frame=off, background=color, backgroundcolor=gray92, width=\hsize, height=fit, align=right, offset=0.75em, ]% } \let\Oldshowsetup\showsetup \define[1]\showsetup{% hurray for diversity \bgroup\beautifyshowsetups% \Oldshowsetup{#1}% \egroup% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Paper % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \definepapersize[LHS][ width=160mm, height=239mm, ] \setuppapersize[LHS][LHS] % \showframe \setuplayout [ width=122mm, %textheight=199mm, % ca. 47 rows * 12pt height=224mm, % text height should end up at ca. 47 rows * 12pt %height=fit, % topspace=14mm, header=12pt, headerdistance=4mm, top=00mm, % bottomspace=0mm, footer=23mm, bottom=0mm, footerdistance=0mm, % backspace=16mm, leftedge=0mm, leftedgedistance=0mm, leftmargin=16mm, leftmargindistance=1em, % rightmargin=15mm, rightmargindistance=5mm, rightedge=0mm, rightedgedistance=0mm, ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Interaction % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setupinteraction[% state=start, color=primarycolor, contrastcolor=primarycolor, %color=, %contrastcolor=, style=, focus=standard, title={Cyrillic Numbers Module}, subtitle={Yet Another Number Converter}, author={Philipp Gesang}, keyword={ConTeXt, LuaTeX, cyrillic numerals}, ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Headings % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \defineletterspace [LSchapter] \defineletterspace [LSsection] \defineletterspace [LSsubsection] \setupletterspace [LSchapter] [factor=.1, spaceskip=.33em,suppresskern=yes] \setupletterspace [LSsection] [factor=.15, spaceskip=.40em,suppresskern=yes] \setupletterspace [LSsubsection] [factor=.125,spaceskip=.33em] \def \fontchapter#1{\setupbodyfont[10pt]\bold\WORD\LSchapter{#1}} \def \fontsection#1{\setupbodyfont[10pt]\word\sc\LSsection{#1}} \def\fontsubsection#1{\setupbodyfont[10pt]\LSsubsection{#1}} \def \Chapterheadfontcmd{\fontchapter} \def \Sectionheadfontcmd{\fontsection} \def\Subsectionheadfontcmd{\fontsubsection} \def\empholdrussian#1{\russian{\italic#1}} \definecyrnum[cyrnumone][ command=\oldrussian, titlo=mp, titlomode=2, dots=no, ] \definecyrnum[cyrnumtwo][ command=\empholdrussian, titlo=mp, titlomode=7, dots=no, ] \defineconversion[cyrnumone][\cyrnumone] \defineconversion[cyrnumtwo][\cyrnumtwo] \definestructureconversionset[regularstructure] [numbers,cyrnumone,cyrnumtwo] [cyrnumone] \definestructureconversionset[regularstructure] [numbers,cyrnumone,cyrnumtwo] [cyrnumone] \setuphead [chapter] [ align=middle, footer=text, grid=yes, header=empty, number=yes, sectionconversionset=regularstructure, % numberconversion=cyrnumone, page=yes, style=, textcommand=\Chapterheadfontcmd, before={\startlinecorrection\blank[3*line,force]}, after={\stoplinecorrection\blank[line,force]}, ] \definetext [text] [footer] [pagenumber] \setuphead [section] [ align=middle, number=yes, page=no, style=, sectionconversionset=regularstructure, textcommand=\Sectionheadfontcmd, before={\blank[line]}, after={\blank[line]}, ] % \setuphead [subsection] [ % align=middle, % number=no, % page=no, % style=, % textcommand=\Subsectionheadfontcmd, % before={\blank[line]}, % after={\blank[line]}, % ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Header and Footers % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setupfooter[text][% handy for occasional pagenumbers in footnotes at chapters style=\tfx, ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Margins % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% loosely based on: http://archive.contextgarden.net/message/20110804.141422.6e52d0bc.en.html \define[1]\marginhintbox{% \toplinebox{\rotate{#1}}% % \toplinebox{\rotate{\framed{#1}}}% } \definemargindata[marginhint][% style={\tfx\tt}, location=outer, align=outer, margin=margin, command=\marginhintbox, stack=yes, ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ToC % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def \tocfontchapter#1{\tfx\WORD\LSchapter{#1}} %\def \tocfontsection#1{\word\sc\LSsection{#1}} \def \tocfontsection#1{\tfx\slightly{#1}} \def\tocfontsubsection#1{\LSsubsection{#1}} \setuplist [chapter] [ alternative=c, interaction=text, textcommand=\tocfontchapter, ] \setuplist [section] [ before={\blank[halfline]}, alternative=b, interaction=text, margin=2em, numberstyle=, textcommand=\tocfontsection, textstyle=, numberstyle=\tfx, ] % \setuplist [subsection] [ % %after=2.5em, % from the hack % alternative=d, % interaction=text, % margin=3em, % hanging % textcommand=\tocfontsubsection, % ] \setuplistalternative[c] [ %distance=0em, %width=0pt, stretch=.5em, command=\hskip.5em\phglistdots\hskip.5em\relax, ] \def\phglistdots{\gleaders\hbox to 1em{\hss.\hss}\hfill} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Captions % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setupcaptions[ location=bottom, headstyle=\tfx\italic, way=bytext, prefixsegments=none, style={\setupinterlinespace[9pt]\tfx}, ] \setupcaption [figure] [way=bytext] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bibliography % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bib: Setups % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setuppublications [ alternative=ssa, refcommand=authoryear, %sorttype=bbl, sort=author, numbering=yes, autohang=yes, ] \setuppublicationlist [ artauthor=\invertedauthor, ] \setupcite [authoryear] [compress=no] %%% Used in bibliography formatting. \definestartstop [bibindent] [ before={\startnarrower[left]% \setupindenting[-\leftskip,yes,first]% \clubpenalty-9000% \widowpenalty-9000}, after=\stopnarrower, ] \def\ctay#1{\cite[authoryear][#1]} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bib: Entries % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startpublication [ k=fonts, t=book, % bibtex go to hell a={Hagen/Hoekwater}, y=2011, n=1, s={Fonts}, ] \author[]{Hans}[]{}{Hagen} \author[]{Taco}[]{}{Hoekwater} \pubyear{2011} \title{Fonts in \CONTEXT} \city{Hasselt} \stoppublication \startpublication [ k=trunte, t=inproceedings, % bibtex go to hell a={Trunte}, y=2005, n=2, s={Altkirchenslavisch}, ] \author[]{Nikolaos H.}[]{}{Trunte} \pubyear{2005} \arttitle{Altkirchenslavisch} \title{\oldrussian{Словѣньскъи ѩꙁъікъ}. Ein praktisches Lehrbuch des Kirchenslavischen in 30 Lektionen. Zugleich eine Einführung in die slavische Philologie} \edition{3} \city{München} \stoppublication \startpublication [ k=zolobov, t=inproceedings, a={Žolobov}, y=2006, n=3, s={Čislitelʹnye}, ] \author[]{O. F.}[]{}{Žolobov} \pubyear{2006} \arttitle{Čislitelʹnye} \title{Istoričeskaâ grammatika drevnerusskogo âzyka} \pages{58--63} \editor[]{S.I.}[]{}{Iordanidi} \editor[]{V.B.}[]{}{Krysʹko} \stoppublication %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Misc % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \clubpenalty -7000 \widowpenalty -7000 \def\etc{{\italic\letterampersand}c} \setupindenting [yes,next,medium] % \sethyphenatedurlnormal{:=?&} \sethyphenatedurlbefore{?&abcdefghijklmnopqrstuvwxyz} % \sethyphenatedurlafter {:=} \startasciimode \useURL [petr] [http://www.paratype.ru/e-zine/issue04/peter1/peter1a.htm] [] [\hyphenatedurl{http://www.paratype.ru/e-zine/issue04/peter1/peter1a.htm}] \useURL [reform1917] [http://ru.wikipedia.org/wiki/Реформа_русской_орфографии_1918_года] [] [\hyphenatedurl{http://ru.wikipedia.org/wiki/Реформа_русской_орфографии_1918_года}] \useURL [wp_titlo] [http://commons.wikimedia.org/wiki/Category:Titlo?uselang=uk] [] [\hyphenatedurl{http://commons.wikimedia.org/wiki/Category:Titlo?uselang=uk}] \useURL [rubl’] [http://ru.wikipedia.org/wiki/Рубль#.D0.92_.D0.98.D0.BC.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.BE.D1.80.D1.81.D0.BA.D0.BE.D0.B9_.D0.A0.D0.BE.D1.81.D1.81.D0.B8.D0.B8] [] [\hyphenatedurl{http://ru.wikipedia.org/wiki/Рубль#.D0.92_.D0.98.D0.BC.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.BE.D1.80.D1.81.D0.BA.D0.BE.D0.B9_.D0.A0.D0.BE.D1.81.D1.81.D0.B8.D0.B8}] \useURL [pttypescript] [http://archive.contextgarden.net/message/20110105.204326.d0228ca7.en.html] \useURL [phg-mail] [mailto:megas.kapaneus@gmail.com] [] [\hyphenatedurl{megas.kapaneus@gmail.com}] \useURL [phg-bibu] [https://bitbucket.org/phg/] [] [] \useURL [cmu-home] [http://cm-unicode.sourceforge.net/] [] [\hyphenatedurl{http://cm-unicode.sourceforge.net/}] \useURL [cmu-debian] [http://packages.debian.org/wheezy/fonts-cmu] [] [\hyphenatedurl{http://packages.debian.org/wheezy/fonts-cmu}] \useURL [cmu-arch] [http://aur.archlinux.org/packages.php?ID=44029] [] [\hyphenatedurl{http://aur.archlinux.org/packages.php?ID=44029}] \useURL [cmu-tl] [http://tug.org/svn/texlive/trunk/Master/texmf-dist/fonts/opentype/public/cm-unicode/] [] [\hyphenatedurl{http://tug.org/svn/texlive/trunk/Master/texmf-dist/fonts/opentype/public/cm-unicode/}] \useURL [bukyvede] [http://kodeks.uni-bamberg.de/aksl/Schrift/BukyVede.htm] [] [\hyphenatedurl{http://kodeks.uni-bamberg.de/aksl/Schrift/BukyVede.htm}] \useURL [romancyr] [http://kodeks.uni-bamberg.de/aksl/Schrift/RomanCyrillicStd.htm] [] [\hyphenatedurl{http://kodeks.uni-bamberg.de/aksl/Schrift/RomanCyrillicStd.htm}] \stopasciimode \pdfcompresslevel9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Makeup for Front Matter % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \definemakeup [FM] [standard] \setupmakeup [FM] [ width=125mm, height=172.506mm, location=middle, ] \setupheadertexts [] [] [] [] \setuppagenumbering [state=stop,location=] \startbuffer[showcase1] local tab = { } tab[#tab+1] = [[\placetable[right,3*hang][numval]{Number values of the Cyrillic alphabet.}{\starttabulate[|r|]]..string.rep("l|", 9).."]" tab[#tab+1] = [[\NR\NC $n$]] for i=1, 9 do tab[#tab+1] = [[\NC $]]..i.."$" end tab[#tab+1] = [[\NC\NR\HL\NC $n · 10^0$]] for i=1, 9 do tab[#tab+1] = [[\NC\normaltextcyrnum{]]..i.."}" end tab[#tab+1] = [[\NC\NR\NC $n · 10^1$]] for i=10, 90, 10 do tab[#tab+1] = [[\NC\normaltextcyrnum{]]..i.."}" end tab[#tab+1] = [[\NC\NR\NC $n · 10^2$]] for i=100, 900, 100 do tab[#tab+1] = [[\NC\normaltextcyrnum{]]..i.."}" end tab[#tab+1] = [[\stoptabulate\blank[force,2*big]}]] context(table.concat(tab)) \stopbuffer \defineframed[showcaseframed][ frame=off, loffset=3pt, roffset=\framedparameter{loffset}, toffset=\framedparameter{loffset}, boffset=\framedparameter{loffset}, background=color, backgroundcolor=gray92, ] \startbuffer[titloshowcase]% % \placefigure[right,2*hang][mptitlodemo]{Titlo as a matter of taste.}{% % \placefigure[][mptitlodemo]{Titlo as a matter of taste.}{% \placefigure[top][mptitlodemo]{Titlo as a matter of taste.}{% \showcaseframed[ width=\hsize, roffset=\framedparameter{loffset}, toffset=6pt, ]{% \tfc% \dorecurse{9}{\normaltextcyrnum[titlo=mp,titlocolor=primarycolor,titlomode=\recurselevel]{42}% \ifnum\recurselevel=9\else\hfill\fi}% }% }% \stopbuffer \startbuffer[titlospanshowcase]% \placefigure[left][titlospandemo]{Different titlo spans.}{% \showcaseframed[width=.333\hsize,align=left]{% \type{titlospan}\hfill result\par \dorecurse{6}{% \recurselevel \hfill \normaltextcyrnum[titlo=mp,titlomode=1,titlocolor=primarycolor,titlospan=\recurselevel]{424242}% \ifnum\recurselevel<6\par\fi% } }% }% \stopbuffer \startbuffer[penwidthshowcase]% \start\setuptolerance[horizontal,tolerant,stretch]% % \placetable[left][penwidthdemo]{Comparison of different values for the parameter \type{penwidth}.}{% \placetable[middle][penwidthdemo]{Comparison of different values for the parameter \type{penwidth}.}{% \starttabulate[|r|r|l|r|r|l|]%% tabulate sucks hard, just try to use it with a macro that contains a numberconversion and you’ll know why \let\lp\letterpercent \startluacode local max = 10 local step = .2 local dimleft = .4 local f_row = [[\NC \lp d \NC \lp .3fpt \NC \cyrnum[penwidth=\lp dpt]{\lp d} \NC \lp d \NC \lp .3fpt \NC \cyrnum[penwidth=\lp dpt]{\lp d} \AR]] for i=1, max do dimleft = dimleft + step local dimright = dimleft + max * step context(string.format(f_row, i, dimleft, dimleft, i, i+4200, dimright, dimright, i+4200)) end \stopluacode \stoptabulate% }% \stop \stopbuffer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \starttext % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startfrontmatter \setuplayout [width=middle] \startFMmakeup \raggedcenter \vfill {\tfc\italic Typesetting}\par \vfill % {\tfd\WORD\largecaps{Cyrillic Numerals}}\par \pompoustitle{Cyrillic Numerals}\par \vfill {\tfc\italic with {\CONTEXT} MkIV}\par \vfill % {\tfa\sc \mediumcaps{A Module}}\par \mediumtitle{A Module}\par \vfill \stopFMmakeup \page % \def\cyrillicalphabet{% % А,Б,В,Г,Д,Е,Ж,Ѕ,ʐ,И,І,К,Л,М,Н,О,П,Р,С,Т,ОУ,Ф,% % Х,Ѡ,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Ѣ,Ю,Ι,Ѥ,Ѧ,Ѫ,Ѩ,Ѭ,Ѯ,Ѱ,Ѳ,Ѵ,% % } \def\showoldrussian#1{\begingroup\language[ru]\setupbodyfont[vintagecyrillic]\tfb#1\endgroup} \def\numbershowcase{% \bgroup \setupindenting[no] \definecyrnum[showcasecyrnum][ dots=yes, titlo=mp, titlomode=\the\thistitlomode, command=\showoldrussian, titlocolor=secondarycolor, ] \newdimen\skipincrement \skipincrement=0.047619047619048\hsize \newdimen\showskip \showskip=\zeropoint \newconditional\checker \setfalse\checker \newcount\thistitlomode \thistitlomode=1 \startlines \dorecurse{20}{% \getrandomcount\thistitlomode{1}{9}% \dontleavehmode\hbox to\showskip{}% \ifconditional\checker \setfalse\checker \colored[primarycolor]{\showcasecyrnum{\recurselevel}}% \else \settrue\checker \showcasecyrnum{\recurselevel}% \fi% \advance\showskip by \skipincrement \crlf% } \stoplines \egroup } \startstandardmakeup \numbershowcase \vfill\raggedright\tfx © 2011--2013 {\italic Philipp Gesang}, Radebeul\par The latest Version can be found at \from [phg-bibu].\par Mail bugs and fixes or complaints and suggestions to \from [phg-mail].\par \stopstandardmakeup \stopfrontmatter \startbodymatter \page [odd] \setuppagenumber [number=1] \setuppagenumbering [ state=start, alternative=doublesided, location={right,header}, ] \title{Content} \placelist[chapter,section][criterium=all] \def\headertextformat{\tfx\word\sc} \setupheadertexts [{\headertextformat\getmarking[chapter]}] [{\headertextformat\pagenumber}] [{\headertextformat\pagenumber}] [{\headertextformat\getmarking[chapter]}] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startchapter[title=Introduction] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% The \CONTEXT\ format comes with a collection of conversion routines for different number systems that are specified in the files \type{core-con.mkiv} and \type{core-con.lua}. \te{Cyrillic numerals}, however, are not part of this collection. The aim of the module at hand is to provide means of handling Cyrillic numbers and make them seamlessly integrate with the existing interface for number conversion. If you are familiar with Cyrillic numbers, you might choose to skip the rest of this section and instead continue in medias res with the description on the module’s usage in the section on \about[functionality]. \ctxluabuffer[showcase1] \start\setuptolerance[horizontal,verytolerant]%% stupid float \indentation The Cyrillic numeral system, like the alphabet it is based on, originated from the Greek numerals and thus continues many features of the latter.\footnote{% Thorough examinations of how Cyrillic numbers were used in praxi are hard to find. The best that the couple of bookshelfs dedicated to grammar in a local department of Slavonic languages has to offer appears to be \ctay{zolobov}. Another work, \ctay{trunte}, although it follows a less descriptive but rather instructional approach, deserves mentioning as well. } As with the Roman number system, there are no dedicated glyphs reserved for numerals, instead numbers are represented by strings of letters from the ordinary alphabet, organized in a peculiar way. Both systems also have the base (10) in common. However, unlike the Roman system Cyrillic numbers are \te{positional}, meaning that the numerical value of a digit depends on its location relative to the other digits. The first nine digits, in ascending order, are: \dorecurse{9}{\ifnum\recurselevel=9 and \fi% “\normaltextcyrnum{\recurselevel}”% \ifnum\recurselevel<9, \fi}. As you might have noticed, this series does not correspond to the first nine glyphs of the Cyrillic alphabet (\oldrussian{а б в г д е ж ѕ з}), but rather to the order of the original Greek letters from which they were derived (\greek{α β γ δ ε ϛ ζ η θ}, with the character \greek{ϛ} at position №~6 representing “stigma”). The inherited order of numerical values was kept, essentially trading backward compatibility for simplicity. The two other sets of letters that represent multiples of ten and hundred are listed in \in{Table}[numval]. The digits are written in descending order, beginning with the most significant one. The numbers from 11 to 19 follow a different rule for their order mimicks the spoken language, which means that the \te{less} significant digit \te{precedes} the more significant one (\dostepwiserecurse{11}{18}{1}{\normaltextcyrnum{\recurselevel}, }% \normaltextcyrnum{19}). There are no glyphs to represent zeros, so they are simply omitted. For example, in the Cyrillic system the number 42 is written as \normaltextcyrnum{42}; the lack of a distinct zero sign causes 402 to have \te{two} digits as well, but the character representing the digit 4 is chosen from the hundreds set: \normaltextcyrnum{402}.\par \stop % above 10^3 The rules so far do not allow for numbers above 999. To compensate for the lack of additional letters, greater numbers are represented by the same glyphs (their value being padded by 1000). There are two ways to avoid confusion: Each digit may be prefixed with a special character, the thousands sign \oldrussian{҂}. That way, 42 is still written \normaltextcyrnum{42}, but 42~000 becomes \normaltextcyrnum{42000}, and their sum \normaltextcyrnum{42042}. But if numbers become bigger, the high digits can take alternative ornate forms: \space\normaltextcyrnum[preferhundredk=yes]{100000} -- instead of \normaltextcyrnum{100000} -- for 100~000, and \space\normaltextcyrnum{1000000} for 1~000~000. % dots, titlo In an environment where punctuation was at best minimal and interword spacing a luxury, numbers of this kind tend to be confused with text. Therefore, a Cyrillic number can have additional markers. \te{Dots} are used as delimiters before and after a number: \normaltextcyrnum[dots=yes]{42}. Additionally, a number may be indicated by the \te{titlo}, which may span its whole length or just parts of it: \normaltextcyrnum[titlo=mp]{42}. The Cyrillic number module combines all the above mentioned aspects into one handy command generator, relying on Lua for the conversion routine and \METAPOST\ for the titlo placement. With all options in one place, it is trivial to create and maintain different conversion settings for different purposes. \stopchapter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startchapter[reference=functionality,title=Functionality] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startsection[title=Setup] The module is initialized as any other: \starttyping \usemodule[cyrillicnumbers] \stoptyping Once the module code is loaded, the \te{setup} command provides means to configure all the functionality it offers. \showsetup{setupcyrnum} Let’s walk through the options one by one.\marginhint{dots} As was hinted in the introduction a common practice is to delimit Cyrillic numbers with dots. Dot placement is enabled or disabled by setting the \type{dots} key to {\italic yes} or {\italic no} respectively. The \type{dotsymbol} key allows the user to supply a delimiter of Eir own choice; it defaults to the character “·” (unicode {\sc u+00b7}).\marginhint{dotsymbol} If a font doesn’t contain a glyph for this code point or for whatever reason another symbol is required, the solution will look like this: \type{\setupcyrnum[dots=yes,dotsymbol=\cdot]}. The result of this modification looks as follows: \normaltextcyrnum[dots=yes,dotsymbol=\cdot]{42}. As the dot can be an arbitrary symbol, it could be replaced by the asterisk: \normaltextcyrnum[dots=yes,dotsymbol=*]{42}, or -- even weirder -- the hash character (“Gartenzaun”): \normaltextcyrnum[dots=yes,dotsymbol=\#]{42}. In order to notate the sixth decimal digit (for multiples of one hundred million) there are two mutually excluding options\marginhint{preferhundredk}: either the hundred thousands sign or the thousands prefix may be employed. Thus, the setup key \type{preferhundredk} determines which one will be chosen. If set to {\italic yes}, then it’s going to be the houndred thousands sign, else the regular thousands sign: \normaltextcyrnum[preferhundredk=yes]{900000} $=$ \normaltextcyrnum[preferhundredk=no] {200000} $+$ \normaltextcyrnum[preferhundredk=no] {700000}. (As is obvious from this example, the visual quality of the houndred thousands sign, which is a separate glyph, depends on the font used.) Not every font contains proper glyphs for the entire Cyrillic unicode range, in fact every dedicated font for a single Cyrillic alphabet -- contemporary Russian, say -- might not contain all the characters needed to represent every Cyrillic numeral.\marginhint{command} This is the result of the historical development the respective scripts went through. This process usually lead to the elimination of several glyphs at different stages of the development. For example the Russian alphabet experienced one significant reduction of letters at the hand of emperor Peter~I\footnote{% For an overview cf. \from[petr] or just google \quotation{\russian{гражданский шрифт}}. } and another later in 1917 as a consequence of -- not only -- the revolution.\footnote{% Cf. \from[reform1917]. } Thus, chances are that in order to represent Cyrillic numbers, which rely on a superset of the modern Russian alphabet, another font needs to be chosen.\footnote{% Font fallbacks are another option if the substitutes match the main font typographically; see \ctay{fonts}, pp. 97--99. } The Cyrillic Numbers module provides a hook for this kind of customization: you may define your own font switching macro and assign it to the \type{command} key of the setup. Suppose you decide to typeset your numbers using the Paratype Serif font.\footnote{% A typescript can be found on the \CONTEXT\ mailing list: \from[pttypescript]. Keep in mind that ParaType Serif itself is not a particularly suitable number font as it does not contain all required glyphs. } \starttyping %%% 1. Load the module and the font. \usemodule [cyrillicnumbers] \usetypescriptfile [type-paratype.mkiv] %%% 2. Define the font and a command that switches to it. \definetypeface [numberfont] [rm] [serif] [paratype] [default] [] \unexpanded\define[1]\numbercommand{% \begingroup \language[ru]% \setupbodyfont[numberfont]% #1% \endgroup% } %%% 3. Hook the command into our converter. \setupcyrnum [dots=yes,command=\numbercommand] %%% 4. Use as needed. \starttext Normal text \cyrnum{42} \dots \stoptext %%% 5. ???? %%% 6. Profit!!!!! \stoptyping Naturally, the \type{command} may do anything that fits inside a one-argument macro, from coloring (\rednum[titlo=no]{42}) to case manipulation (\normaltextcyrnum[command=\WORD\oldrussian]{42}). The key \type{titlo} controls the placement and, if applicable, placement method of the \cyrnumdrawtitlo{\te{titlo}}.\marginhint{titlo} The two valid method identifiers are {\italic mp} and {\italic font}, everything else will be interpreted as {\italic no}, e.~g. the titlo will be omitted. The latter method, {\italic font}, takes the titlo glyph as supplied by the font file (code point U+483). The main drawback of this solution is that to my knowledge the font titla are designed to span a single character only. As the titlo belongs to the class of combining characters, in the stream of unicode glyphs it will be \te{appended} to the character above which it is placed. Thus, multi-digit Cyrillic numbers (i.~e. essentially any number with two or more non-zero digits) won’t be represented in an optimal way: \normaltextcyrnum[titlo=font]{42}. There is a further option, \type{titlolocation}, which controls the placement of a font specific titlo.\marginhint{titlolocation} The three possible values specify a position {\italic first}: \normaltextcyrnum[titlo=font, titlolocation=first]{4242}, {\italic middle}: \normaltextcyrnum[titlo=font,titlolocation=middle]{4242}, and {\italic final}: \normaltextcyrnum[titlo=font, titlolocation=final]{4242}. (For even character counts, the {\italic middle} argument will pick one place to the right of the exact middle.) \getbuffer[titloshowcase] \getbuffer[titlospanshowcase]\indentation An alternative to the font titlo is provided by the {\italic mp} variant which uses \METAPOST\ to actually \te{draw} a titlo above the string of digits. Not only does this titlo cover the entire numeral, it also comes in a variety of drawing routines. At the moment there are nine more or less different titla you may choose from as demonstrated in \in{figure}[mptitlodemo]. These can be enabled on via the \type{titlomode} key. (Observant users will have recognized mode 8 as the old Rubl’ sign: \normaltextcyrnum[titlo=mp,titlomode=8,penwidth=.21]{42}.\footnote{% Cf. \from[rubl’]. }) The range of digits to be covered by the titlo can be customized by passing the parameter \type{titlospan} an integer. The default value of 3 results in the titlo spanning at maximum the least significant three digits, because these will not be prefixed by a thousands sign.\marginhint{titlomode,titlospan} If the user wants the numeral to be covered as a whole, E can simply pass the value {\italic all}. Beware that the dimensions of the titlo are proportional to the width of the numeral. Therefore, sufficiently wide (in terms of non-zero digits) numbers will cause the titlo to shrink horizontally as seen in \in{figure}[titlospandemo]. E.~g. for the single digit number \normaltextcyrnum[titlo=mp,titlomode=5]{1} the titlo even exceeds the character it sits on, while it does not entirely cover the five digits plus two thousand signs of \normaltextcyrnum[titlo=mp,titlospan=all,titlomode=5]{54321}. When using the {\italic mp} titlo the color of this element can be chosen separately by passing a valid color identifier to the \type{titlocolor} key.\marginhint{titlocolor} The following example code demonstrates the colorization and drawing facilities. \starttyping \usemodule [cyrillicnumbers] \setupbodyfont [computer-modern-unicode] \setupcyrnum [ titlo=mp, titlocolor=blue, titlospan=all, titlomode=7, ] \starttext \startlines \cyrnum {42} \cyrnum [titlocolor=red,titlomode=9] {141213} \cyrnum [titlocolor=green,titlomode=2] {271828} \cyrnum [titlocolor=cyan,titlomode=4] {314159} \stoplines \stoptext \stoptyping \indentation The \METAPOST\ method also comes with a key \type{penwidth}\marginhint{penwidth}, which rather obviously determines the width of the pen that is used when drawing a titlo. Finding the optimal width can involve a lot of testing on the user’s side; as a rule, the greater the font size, the wider the pen should be. Refer to \in{table}[penwidthdemo] for a demonstration of different values for this parameter. \getbuffer[penwidthshowcase] \stopsection \startsection[title=Predefined Commands] Once the module is loaded, the commands \type{\cyrnum} and \type{\cyrnumdrawtitlo} will have been predefined. \showsetup{cyrnum} \type{\cyrnum} is the default Cyrillic number macro. It is fully functional, meaning that besides converting a nonnegative integer into a Cyrillic numeral, it takes a key-value set of options as an optional first argument. \starttyping \usemodule[cyrillicnumbers] \starttext \cyrnum{1} \cyrnum[titlo=mp,titlomode=4]{42} \cyrnum{15} \stoptext \stoptyping Any of the abovementioned settings can be specified in the first argument. As customary with \CONTEXT\ macros, these additional settings are local to one instance. Further calls to the macro won’t be affected, unless they are explicitly applied via \type{\setupcyrnum}, The use of \te{titla} is not restricted to indicating numerals. In addition it is often employed as a kind of emphasis in handwritten text where it is not easy to achieve visual distinction by font switching. Also, the titlo serves as a default marker for abbreviations as in \oldrussian{благодѣть} \rightarrow\space \oldrussian{\cyrnumdrawtitlo{блг}одѣть}. \showsetup{cyrnumdrawtitlo} This is where the macro \type{\cyrnumdrawtitlo} comes into play. For instance, designations of things considered “sacred” are highlighted by default in some texts. Because they appear very frequently, they were shortened as well, like \oldrussian{господь} \rightarrow\space\oldrussian{\cyrnumdrawtitlo{гь}}.\footnote{% Examples taken from \from[wp_titlo]. } \starttyping господь ->\cyrnumdrawtitlo{гь} благодѣть -> \cyrnumdrawtitlo{блг}одѣть \stoptyping \stopsection \startsection[title=Command Derivation] There is no need to reconfigure the \type{\cyrnum} macro whenever you intend to deviate from the presets. Instead, special purpose commands can be defined via \type{\definecyrnum}. \showsetup{definecyrnum} All the options that can be passed to \type{\definecyrnum} are also valid for derived macros; they inherit the setups of the macros they are derived from. A full example to play with is given in below listing: \starttyping \usemodule[cyrillicnumbers] \setupbodyfont[computer-modern-unicode] \definecyrnum[mynumone][titlo=no,dots=no] \definecyrnum[mynumtwo][mynumone] \setupcyrnum [mynumtwo][titlo=mp,titlomode=2,titlocolor=red] \definecyrnum[mynumthree][mynumtwo] \setupcyrnum [mynumthree][titlomode=4,dots=yes] \starttext \mynumone{42} \mynumtwo{42} \mynumthree{42} \stoptext \endinput \stoptyping \start \definecyrnum[mynumone][titlo=no,dots=no] \definecyrnum[mynumtwo][mynumone] \setupcyrnum [mynumtwo][titlo=mp,titlomode=2,titlocolor=red] \definecyrnum[mynumthree][mynumtwo] \setupcyrnum [mynumthree][titlomode=4,dots=yes] \noindentation Which results in: \mynumone{42} \mynumtwo{42} \mynumthree{42}. \stop \stopsection \stopchapter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startchapter[reference=usage,title=Usage and Precautions] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startsection[title=Counters] The macros created by \type{\definecyrnum} are generic conversion commands. As such, they can be hooked into any functionality that outputs integers of some sort: document structure elements, page numbers {\italic\letterampersand}c. In order to have \CONTEXT\ recognize your personal Cyrillic number macro as a converter you need the macro \type{\defineconversion}. \starttyping \usemodule [cyrillicnumbers] \setupbodyfont [computer-modern-unicode] %%% 1. Define a number converter. \definecyrnum [neatsections] [ dots=yes, titlo=mp, titlomode=7, ] %%% 2. Register the converter. \defineconversion [my_section_conversion] [\neatsections] %%% 3. Insert it into a structure set. \definestructureconversionset [my_section_set] [numbers,my_section_conversion] [my_section_conversion] %%% 4. Use the set in your chapter command. \definehead [mychapter] [chapter] \setuphead [mychapter] [ sectionconversionset=my_section_set, page=no, ] \starttext \dorecurse{10}{% \startmychapter[title=foo] \input knuth \stopmychapter } \stoptext \endinput \stoptyping \stopsection % \startsection[title=The Titlo] % \stopsection \startsection[title=Font Issues] Although not the entire Cyrillic alphabet is needed to represent the numerals, they involve certain characters which are uncommon in contemporary languages. Therefore they are usually omitted in Cyrillic fonts, which leads to the problem of finding an adequate font. A matching superset of Knuth’s typeface is {\italic Computer Modern Unicode} which is part of \TEX Live and packaged for many distributions.\footnote{% Home: \from[cmu-home]; \TEX Live: \from[cmu-tl]; Arch: \from[cmu-arch]; Debian: \from[cmu-debian]. } CMU is SIL-OpenFont licensed; it has been used in some of the above examples. There are alternatives offering glyph shapes that resemble the hand written script of Old Slavonic codices. One of them is the beautiful {\italic BukyVede} which has been used as the main Cyrillic font throughout the text. It was created by the Codex project of the Bamberg University\footnote{% Home: \from[bukyvede]. } but unfortunately the licensing terms are imprecise (non-free). Its authors offer another font matching the popular Times typeface under a yet more restrictive license.\footnote{% Home: \from[romancyr]. } \stopsection \stopchapter \stopbodymatter \startbackmatter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startchapter[title=License] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Copyright 2011--2013 \te{Philipp Gesang}. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: \startitemize[n] \item Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. \item Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. \stopitemize \begingroup \setuptolerance [horizontal,strict] \startalignment [right,nothyphenated] \noindentation\sc\startsmallcaps this software is provided by the copyright holder “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. \stopsmallcaps\endgraf \stopalignment \endgroup \stopchapter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startchapter[title=References] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startbibindent \placepublications[criterium=all] \stopbibindent \stopchapter \stopbackmatter \stoptext context-modules-20240428/doc/context/third/cyrillicnumbers/README.rst0000644000175000017500000000245012132362214024324 0ustar hillehilleCyrillic Numerals in ConTeXt ================================================================================ Module for typesetting Cyrillic numbers. Take your time to read the manual under ``./doc/context/third/cyrillicnumbers/cyrillicnumbers.tex``. To build the documentation a recent versions of ConTeXt will be needed. Installation ================================================================================ First, get a checkout from BitBucket_: :: hg clone http://bitbucket.org/phg/context-cyrillicnumbers In the next step, copy the files into the path of your ConTeXt distribution. Assuming it is installed in $HOME/context/, you would accomplish this like so: :: cd context-cyrillicnumbers cp -r doc/ tex/ ~/context/tex/texmf-modules/ Finally, rebuild the file name database: :: context --generate and the module is ready to use! License ================================================================================ All code and documentation is licensed under a modified BSD license, see the file COPYING in the repository root. Author ================================================================================ This module was written by Philipp Gesang, ``megas.kapaneus`` at ``gmail`` dot ``com`` (find me on BitBucket_). .. _BitBucket: http://bitbucket.org/phg context-modules-20240428/doc/context/third/cyrillicnumbers/VERSION0000644000175000017500000000000413255060277023711 0ustar hillehiller20 context-modules-20240428/doc/context/third/handlecsv/0000755000175000017500000000000014613513620021402 5ustar hillehillecontext-modules-20240428/doc/context/third/handlecsv/handlecsv.epub0000644000175000017500000305227113475311147024245 0ustar hillehillePK^Noa,mimetypeapplication/epub+zipPK^NPMETA-INF/container.xml] 0D~EثMBSAг1j0 M*=80oԇwCrLv-$˝zphVeBS0$Ie8"ulǀ\S4+!9cO}M~h8]ڣ؃9SOD &FdT(4w\!9k䏧ˇ PK^Nwvw-META-INF/com.apple.ibooks.display-options.xml] @~FJn~Φ)Կ.//q <(bHXn/SvqITXl>227m|s$3Gmwjs>봍PK^NfJ,zmEPUB/content.opfK89Yld$M6 ,DKFvSŦHɖrk,?zhVOiRekBxq%d_ qa3(Vk3&c8 )]}8yLS/dF$ky//`'Ok"J=ثYGٶLXq)3Ұd> d7c!|U fXi,ټ,!$s: bȬ!xIoSY\Rij[G| 3c<]tMV V7$РݫX&VfZcfѹFl_n sU `F"#_6QW%K|M[\?^T9I ܔ5IYdJ - AWk ̓sQi nHubcKҏf~4z4GczU@7E-93Xf?ޠt0V Rڴ; ZMyw/:~\뗖 Ѝް\>X9uvI3?1QDߠQx4<'P< ugC|(x^ /;ˁ` PpɣCO8ytɣ':yT*Rx4fwm$ڳ׷+|S`'X {tgpUj~Hs8}t Q*P,3ǫ/{%;f/>=b)6(ds2{'iѵd bذ]Z:Ќ{h&=4YͼfC|_c3g2ϫЕ{ʥG95S} ~]7ZVaPK^N/ޕ( EPUB/toc.ncxn8*BBfhGVKG3Zcw8;-hapdm'!qr<:ӫM'qʒ@gp\]~&xSs\ ^Y(ߞlUwr\~`cL "0KIɳ"_]&o5^b>L0D47p_3 ;(z@k2gy"Kzhd{VLi#)و%AD0Zh8MJ5D̜[$Q;?/ᙣub#VmBG^»xqosn38\ J7&HH엘NTN߀& -_RRTq/Xc6vنN-]Mb0gɓ|Q2ĵr]>h̖9 X$4MY䥞 )wKn )ڱGWž#Fa7DV,#Wg`!P&,sXڰzp+ Wz#m58B4&Y8xOfTYC o#EEN[+=+p |f!!zRBM 쁤2c-B ݰtY <)kMHwVL e,2Mhu9l}QfBJpƑcNʕV"4W nU]uʑEヘ Նv=({u?QdZ}߇7n } '{ D{#akFlLr$N4z~<&D3LF-ԡO>`S&jFI`K>ȥ&d+ qy2*>KdWJ9`t91Ʈ=ԅ<9mXi? wTWp <09GفC`\<ȇ@`-Ba%WNY^K~tgY y &MY78^{paϫβJݓ>8 Vj):mڐ,nC\ K1TT 'x=6#sUɪjN<XjF}0'`HXgNCb  ?::╨%VH(sB@FCmF2`/+ I7 GQ%MWԋ%a谪ǴHbm[\,Ic9_!f,J45z {Vd"Hk%k^6:xΠ_C. Y]]Zey9y QZԊG/Jc$Eep:E -r1'zX]7r/G](1+DۑV:U/-2FJh \ tt;2x]3n/J٘zSNCR=~Q-FU[4{ |%WLu'=ʝnn벗-]vH7H,4{[-^V&fbem%k]5I46^lA˨ͳj8Pi;/O[lF-,66 <[d4v^ >6G"uyN轲wI% AW)LRC;Hf(.mk+ n]n5wX@wv7 åp5 LnN_C_3;6NԿ3q}R!9_蒦v {| CzW]dc\rA 7|bSzZ/C;wk:Tk*uUc^|3蓝i>ffE4\k_c3cC(|T͓sCY0}6P{ڇ{PKnN*' EPUB/text/title_page.xhtmlUT \\ux }r0b H20BuRlu~x'Ck0;|ݕ~cĖ/+@ͪ;LF,~py&`x>Cs)2W_@@\_ vhwUn-[`XG9:P+Z9N{Ѕm}d˻NL:OFB |LߛrìL&YiڽY'~  yzC1ɒ\#6 %E832}L ~Y8z!P~DjUλ"3ڇiwy'ut Y=KѶ慛 n}' 2r纡th=69o֧Wu2eh&(SnO0hWBHN(T 7PK^NVEPUB/styles/stylesheet1.cssY_o6ϧPKe+ (ևa}Z-.QTRwQHJj7M[##u~w;oRg}4%e-RV>z(U\b8Z-m#ٯqR/x#asśoKf4;!vb ~|3Դ"$m U't^2w_kw}@)v]ys}11햅k$q6TW! ިWԌkyti~d5SoYxHƹr3A~ 4w( @7wfci NZ蔼ma B~~Z%X; 83_C-Q,i4:30 MYfCKuPYaQN}aXKz16/"F!Dm+FE-a+D8in gF"3\;hC q)CLO&i?ugr{1_?ʥ#MyhPRɡ6r㧋PKnN"}AEPUB/text/ch001.xhtmlUT \\ux }Rˎ0+.^q A!hH14#@i:vo`?, 'm# :sur5yeMhMi2]/Oi6HM9T9!oOr'޽,^]BŜf*):ZD-xq7=;aI,(;x<1z, I@VR[ChhXldPN)#ϠHiK773;bQch #my"ه6[}L{,N}H (VoRE|qt]HmX<F Jp$M<ŏa*•E~"fW5~TJD05BC ePTCȳC:FQY iZeҡ ֵ5`Ƈ0ۡQ4,K=:Έ]|?gZ-.ݣаom?g6PKnN]ƠEPUB/text/ch002.xhtmlUT \\ux }Q]o0}ﯸ=agА L!ăoM{e ^q}=}蜕/VM] baU}" Xj ջ y{%81/s緼^p>4 S8 n\.gƄE!)H ^#zIFx دnHr&z>hnuڡd[9+]}SG˯k](M^MgG#YHʡE$ʶ -\)NNjio8Q!Fnpqא}yrplKt ލ@ jv54*wXcb,g,3nXsO͠"t<ٞ~\,~PKnN ="cEPUB/text/ch003.xhtmlUT \\ux }R]n@~)})bەH@*A*@'6:i[s37 -mMo>o¬UȒwgcesԏBm"]aX}v?Z{R*y{sy΀yB8xI^MEuEX5G8*a*&Lkrͨh;VA[)G&kGPz d7W0$Eafb:$kizC4!&Kh _hľر~ L*C _60bumQ723%Ł Tb`0}+R0b<ߑg] @Pș<+Eؕ;e~B(>%&\9"V% .wN/Dљ<(A6̧W&rFrZ?̿{D1Qe+f]yOQ)/& "裋DMgq u':% D*FIv7&d ;M h RV Z]F'RSЄ;vn|]vPKnNu #EPUB/text/ch004.xhtmlUT \\ux Zv)̦ QN-[&sֱ}"%N`@N`)&dH7}n붏'w$xȃ;3~wE.:mʳxt8LL믆OL~w^o|}y.(z<./~-ƣq|3I-YtMtKc%}{Xv8wPU ]۵etMM|VݞNDP@{mHCk;BSsp[V8t}/g zGE n%\ˑdR`ɜ1L˲C90<.}*ȁi_v?;uWҞYƳ}ыvګ qWϠaKMOpX_.OY8Pױ& w|KcnA;v<ġ=yY}~sS]by4>sʅIj:f.S.{}PwKkMLub-J~SXhdurώV.E{eQ~Zߚ%JI#&7G_j}FmhXO1{m{x5dYUY(d_^U*2u={|{jT9m{!q$c=yb-K^ڲ9L8b&67<JA$U`4 ]Z>0M ӳPr\:L"98I>0X “I5+1a4;Is  n1Hp* Dr$ EWY&=H&в9F., АŽcv:[hUK03qS~2жanff0E'V{ t"R9S' 1H~s?+LHDWaĤwV=zm%q* R"@ֵ(0Ϊ-[ CM]̡*ۖdHiFVE >a\_\((}4`@J8E9B t7n<#([J uF`br=2ܬBBӈ*QIW.c."X#7)DB1 $Gl"f!P{V(NОvMrlL<Ѡ9@2|'8tQ6s&ESL'ֱUoLӟkBPbUJBn۽GE{J+/>f b䧙PM74>xGlqG #ЇJIf½U3 3,18nc\$% :CU3wM $嬆8Ն*sgͥ?*>孀s3i&序W;6:*C`Fs[D@|i5ZQ5&JUnuW։U! 'd $W"\J@TyPXʰ\Us4@ꍡ&p|%a*Aöv#ڞD8:d\QV;_DR=d:<`p;Weٴ4urUǯ!WOrN4$J.x( ;䴍Jp .+sqa  IPQLB{B"~_`(4QS ze4t*U#.ߠ-+Q(( Ȅ!d)o$VYcZ`a)|b8}_5W:%#D-5Tte޺'2!Wq1tA2;h*7߂rpKbԜ#7Lo6ÉpLl_=IS.&#sP_5zq%UK~mSf1W 䴹I;wuT2D&~fLՁ{&idLS@p&[&@Cnxcu224"Fdpd$Dڛ#PCi(c%PI\;W3Yc~Nh|n ևDE`jkkkqcwL9~-q@J3dy#,ZWo-:L%̚C#ut,JP pZ\h5ebfI 3o;eE/C*(EoP-!\S5G}XWcy>4* WGqqjEӜ3.1Uw&^NM@Ư[A׳{dzexp#lu 1jLX3_z̨n=E>>$ޡ0+DڑS~fkW4)?2( vk/y0i$y+zBY*KoU]ŃiNַ4w9_蘝]ǨfaMߡar0o.K&=MVK5`{!M4|XKLrAus@koo\ڰ90IW5'uqhȤl;s6:CԚڪ [_ک?0z' \4+by0C$زA`uk Du?fmP ;a;62؊H=;cqvKAZɓPKnNE (EPUB/text/ch005.xhtmlUT \\ux Zn):4$ %ꇛd?Xia hLvK^ H`$}?I!P2ũzb&? z[:t<{}txkG/Ͼ}DL<_}Pt;ّ1 '/:3gYo3v?AZP>`V crwвvѣeϔRO:&*ݳy:" t}Z'N'8_Sժ-rneu.3u\Ym2MT {S5|c֔Vzi~?< G M{ oɞxNt[kWr+t(5pl?/-m0 1n{*28xpWeCmcWT%thbfIjfbD5*6hTaX–)tua&XCh2EX.OXK"T.^ַWВށXsݙEKع:] SuSx>EؒNHSV Jw+uB-c{x"څmTIGuH#3(+[o2EcWwgjt}כ2tIjJ_+Ga9Ղ7Wem*[\쉙dWP@ym%ZTC9FIq!IuP$pěg %`QY Jr${2e %BDBq4*D|~s}XKnW\' xE<7\Sď+t=*Z]0jZr<ت<_ Kͣk kҧ4Y.UZZ?Kܴm$ۃ+$5-N9^R_nW?֬S]zr.VZ4 Ẓ˾YqV?7-s%&Hߩ oU)Jeؚo1{Uᢩ|= ȼ&RέoMyzZHr:ftÇKNQ"qlH  d3`q> EfN`&b4Kk\*W_qވt•r^BgT@d/VSs!#_0|=L s1qEQtxcijq! K99%Q4šbVDg~Aµ8K go e`?>pw(r`gGBh5Ě,l>ecvfl:C43 Jİ߇|bx(-cXYC({}hpi>OjE*r~bX2c+e 6^7FNe|NbT]

*KQ@8F d%tl]il O߅NӸ$lw#ĭszT!tbSRJ}_;'aΐ\6('3Ezɲ t c6QPd('iKJ.#psKB) m,AG2JH}( SjjDLrI t TdRKP{1҈'oZÌ]pirft\v k (Ǜ*$-r qJa_#m=E-Em5朕PJ _G*u)vH!wbB&>OA8AwT9SSBRiaEv{kQF}bk~H?UǬ<\k7#:5?W@_f6h:)e06W7 %U\[AԢ H%bx1v;^ iM3hgSAPIΧ%دޓ1;k0L,ɕiT92f1c؍2Z\Gw6գŭi@q!nOٓʥ8մ /\(8??C^oڊO>&Nߺ;zT8_'`uh_ߺ_,m& 4h6Esԝy8QxC: D[ݖNQl"W䝐Ԕ)yqJ3ճ޽^HST2ze <_foIЗzyhF\n75=1[{xY8X1p[B3ocEnR%c=|KtDAض]#%5w uZhbڥ鑤 _*wo_Iv{ ^lN, O*pʽ;TX`0eר3 t8z-f} dբM|p㶰:=cK)ύGqFFELO/&N2H"ttf0b\fVMq61|Xύ[ES[`mcu"cu֛Deҙ&$4A)촋+iu rC^ZN8lWXgz%ދP4Ow?ϕ 45Ve}iD$&QLF*TPG.jo OTvU1IB&] 6D,ՓH@b˹voSfJނLEe+Ch.e6XwK?*R S*7핹3Zfp |2iGع: RR#5u| %"nXk\w+x-89ɼ8s:.l+HFzFS(N2*OUOpbPe%ژҴ㼺T;M"RY2Ј=UPk tsv-"]D`XO{YGJ'?{(I5+E#޼-E z%܌#4|2cm:ſS1_&& J ?!>'/w{=?: l8+(u&qleK)> wN5Lb%Cؿu[Ӛ]h{+t2Aii7,:Mtl#Ru2i=0KjC♡+~>KXm"F{\ '5NNR{o/AJ i=̴K G Om+i^˽CU I_ǩi~nZ^'(%qGLOHկu_!uYXKuMS8+7J3(k`[ޤ*2LWkL^<:j.AJfEn> Y kmڿSvYg{%V0!0)F#qgvIgjz B;\ˎ%Wa<1 ?óބ9<9{$-!(I4ǨIqz~gs1fGjtI&xH"VLY ƻ ͿE, S86ǭe,I ̖bkv L0mxX%4z8սSxKH4}0`=Ɣ+;d樒>p/+/ea%ՂI>V)2&}L*G]w](Ctˢt\u}`6u>ZtLhH}\KnJTWl:Fy?רU! 5O>H0{З,#zTK?r;5IòiOV$O'!USϞQ;]^[#vA.=_mf+l%&;< w:MxV%O) X(m2S><2p8dD뤟QtV&BiY2z@\;eD A{UJci^t o9ye?kmbUǿXpIphMZm//n.E> IJqK;U<)DQLT܉ZJ*t9K'^;ty)(Iڥ,e~* mї7oV-\V:<Yj/WI2w72ʕݬA5OSV>|C#PdE2hn)Fx6RWH+[jABNTD.L2jeж"!L!88PW(lEfI w}kIБm]ZuC_mޡh4AK xӂ0NLY5#I |BknWGEybrԊxqbqnLȗM_y@7:1j%7zɬlf+ش"YHڱ# @iRQ*Y㷚W }ӍnhE"ڢAҰ%}gTdF׎6CgR&]o5ePbh9R=uJN|*ATj\fGtVP҄R  Ob#GBe[o!Ck/SgH&-*G+ҘRsHGiu"Aqecʺ!l]@~"1|թU< .z2U&r/)5[7P&oY3J3~GM%"tg,rbjLFU 1l5wvei=7lt=G ?c MҼ0.DG+?+)!ʍ:1C΃m|jckc>} ;&bO2t^;|13 çgX7{4<>̾S6';33&9 EWtp`ˇC\߁1듆ChwEp=S&'G*6"6U":̳tX>fތZp66K E#7OG3HQi<ᱯH1sf<5h|4oNΥ wx_,S v|Cxқʻ8fLMvDI09HXbQJL3ܺ O@қ*#%flK# |-ͥP -f҈N'XU"YҗˆS DCH3BrZ^KEI 57K[{PNaSY4Kbʜ].cY.8:@s]81䓟v.$+rǘ\x?p-?-ÉJ}WIB68-BQ7&L,i{ /e^`BhxzyH7-B %c14wv|`eO졞r/ILP#V#ڼ-dhrY˙ Mɒ |>CN,;S`&*a|NC>.w&I y2ߦ"譾DxuyɃ%/!G"u9/Qm $8V۸,5(ox;DB"=3!L,I߷ `M;}4Mht58%8Dr I$R2 ՝Q2>Ј1ߥ$eֆ@Wl"Z+&#j.|fJ"h$ %^*.I;~t$vI`!^or^;aE&53 +]GҰ׌+}jQ9/Bheg\1:}%d voKZTЫ\|G BYܯcj2` iy"soJܤNݻKg/ 8ڭwZ{-m^\WBo+>(Κ`9 @M2 mZm6L"| Ǩ,!Qrs~4m뜭-~[30!3X9aq@p@֨4-/Y'< @ 3 3l}٣5aϞ!St$X CJט1R^xe5] W,0_]:tpThC6uYKog?c3={R%7'PS$zrP<ҩ0 ʭ= /LS^D%[䍓:h:W^]*7Ov.9vеxrF趘eN ;ԥ7yY颛.!7I\f6&I %n)~+HϺl0ЅdpR`-^.qȐQ4!0Il{|U!K t!)AJ=ݢ85ٴ@4ye( +P8ܺN,CB⇘8U厔EzQd>W+,)1/@$Mt^A` wyQ!sH)^CJNrj ܘe1Bw&&UstP,OQ<jr?7T#je6Y l#k&8JA5̔vu}Hw+ m>Z;PIY?LHFZeDHb\h.U V3z.c u ADS9zx3o%u6;U[Ros":K.fbH љ|nuuj}@gܘU.Op 3-,,2sK\miLh%`3mp*i8鴂woB[PlcRCFUEf$\~C2`YisԥK=y*xJô[EJ8h)GEJdj!+<٩Ouƿ-F7W_]XuU7޲-hpc.8Oy<;Pi9!aÖZl!\prрp I MLY(x:j(Q)9!g)ly]HA׼Z"֛Tʍ=i%p}lyElxN9 8=._46/j#KEŐi w( ~I$cgDb9&:Ͻ9 ܵQyjOq-H$|&kObhL-2 n^T0t7qF\$T+,bMӌvZg->aBCꗡ j)M|w}7_ld`nA0^O~ʔ9YNN2f?{n[MnpI*$t 4N;o[;չnœ$UR3d,_*K^i?7 :~U;_N%]Γ/owSF{7-.Iw Uo,&)yۊrɪ&izNȰy2FG؉MBodQ 6)dXg0pSEj;:yWuU fK'fn(_x>:W3*wF#7PHDoG]r4GEGFkd9䦿 NfkЃ⦔o-L267&֔5Tm۲NյЌ? )|qp@jk+~5ϒ҅ܰk` jrƱ͋ 7ߜ^Wx/3>9pD}M+@"q: xQ<>(} V]ڌ]>`d ܻzw.U^NwzcΩX ب6P6"\,f@4i-wWmߨ0B`/Y }M]D+|)&dpƤu&Lwс":Gǚ?-.Avg3G]ZT>]qK Brno$*M'$OT%VpXl\Ǻm)|&3}vjԫ`Db;=9`Y6o}"$j;IǛu44oef9m< 'OlXk N?TV`-.pcvJ.v$pm0E* QxÃ٠qX*8KҐ&NIr_cA[>ݸ=/EPKnN03Ŕ K)EPUB/text/ch008.xhtmlUT \\ux Z͒۸S ܪx~4mo+ ! .Ju9@r#[y?IHp)'>uy} %ai("n{_͏f={xhts{C~w/?G<⭕ʦvn'CFr0R40+Z¬вF#Bf ST͕w-RR5e#v)vFkK 8o.fNPʽ)Mؕb)˩yC%lC+KPje,S/b"5/]s2!,LHn,Y lʈo&4_qYB(z7 8%2Kɻ.^m/-%բ,š[?4s@;`J>+ fKwaT."Y M$; Ġ<1.R-Ys/.a_[I Ilaho׌$B= oN2ᙾ"\hZC$US*Q2,X ͒HV(TM!Y U(7AAe1# Ȃ0 ' mPd@52̅vs nې|k 2l)W@ j5؇_^HeheCq7S 0=׮ki&ҍUv7[-f# hJ\;_MOђx-S"RٵL#XL uQlDA}VH$/>򏄬 r }bg0 V9w  ]`;ƶpܞAp8\6l_*<YF3|A?w*hiVCL*-$"*5.rsI~ҳ],Q'JiZvHay*3ow.<\𺜛&oWw)MyQA^h\g@WAwFAݮ`p]C/w;-y>{KJ+ 'pb 2fzu> bL?N@ãs#Gs}:EcH ] s{cg NzI4ڀpu9$K:o "c)Te#&N`|MAbpgFY<:b:a^31p@~ȶ[{圱cBcjMVrmD1ŏFbGS ,/qyC#-n\$ׅchrAw|u÷ׁ@_kmROV$K#5Ks}S[]ew"\o8$)6,I }g[ cC[iRdZ][ZvSw4W`κci;C">Q~==늞wE{D/Oo;":QA~| | N~h}<D;qwc릣#A_GDwez_G@@۱#A_GXBB/Ё#A_G@Oz/Gu:nkTz_PKnNy,VEPUB/text/ch009.xhtmlUT \\ux Y]r~)nU*٘mY&kTqvbLR%A)HyQ|tDҔ{]5Dth|LS| {ay,ϦoCpgO. 7g'ë 8<%p0 7yěS`\R͂?ר>By Gwxtt4,IC$cǒ/މ ˍ*Gbmvm>&*̴4)\`h-flX5R5 '2 7\"Sr.eANdn4& 7;tebvsFnHu!jLx. _ylnp$mWS>[zLr3R!ܜ)n K00+mXeJUB'2A < En-s|]ИI@;j&|V̨q(Kf,X1xii$ ǽ=G``L!ƫ /Xj.IE^fS4.7q CycPW0 Vmpz3fL报So0p:> bd4s'`6e aTDp"26m# }e‰Wޘab^8HiM$SjN$!75>'w9&]BIT)S0q¹? }]&AJdfd3~1TD7# N O+ojftEh9PP`rQjvaJq-k2qUJ": *J6UyuOFO*O!0'}1̎ bua1Mk4lǢ 2zK٠,W{<}*i[BREJiṫ%֋4 2bᅮ>ٓϏE2%3頴xZSH.[v~&^; k+i600!B)-,5 .Sh9UA ;d:(Sy"Q憋n`n(o@4`7>Tz 6bCN\|,\ zFE8u=0s'F F}V;e̥_NZ٨+[?p8 X3JKxh|*=,I T3`c|ݪ8 *;UJj ^yc_jfO'.K \)ff ʹ1 ҺfAzLu.ExE`̲@,nGwi%hc~7]!@moDv)^Tk\"n_WN=A_Ѷ,uQpA#kjGhKi}j]&YYOŦ{gJ?~R-Zvw ĵ/&RաV+p 7Z"V68> nx+i1ewOVDWqi_!z 7 ?ſ+׋gB۲n{ "4}S)A"^Ya& C95c_$q C0' ySJD&,\hV+q*m77^T:0`Dp, "J~µ6k3Q^}#\Adx*p ݥHv{*^>Sm*6Fo'prS?/oUlmCsvٔݞU {MA'&8X`Mp)jJC%5q_ՆgJ?bҮɟqϨJ_K XKsPV9 UeE|!R30'r,dgʽb'-;ɸ1J-wM[[rkδe!dˢݨ7v/CW$Q8\jd`I{GMقٔ4ˣ?PKnN> "EPUB/text/ch011.xhtmlUT \\ux Zr۸St'Z(9%m'fdjogr1Hp P^ڗ#'(rM<"9M\qKCz}s}3y0ݳW?yNfo:]=#?W$;x3/bЕ֨Q'qc̍\`hR)Mػf)˩yMsP,*s:hs9F}VvFTk#aC*SO8y*9I6m{[΂MohYY ,aՐӽ15et~VTvHd#G9YHφ,/w?]2U)[مʒ()x"<ƛ.uhK*Y땠@v%mm@i Cnjq9SXWRD"@~~Z?޴]߾u^aR[/|gO 6uOITx,!\@ \ a\OTL ʥx@mxt*lS4m= $l bKWm%6܃LiɁȀuPQMMow3EoH3Ry4mCoQՖr6V#.)w?=ap۱Iee_-_(%I˚,>ck-~2fJיd ybkM> O*e,eȔjP}zS]n\F %N֤Zl8NAj[OIDi &[Kmn {1&I&cu_݊|wMećbn?QP v̬:*Q4X{0  TCkMl0:i~nP+e>߳\t(զ3}AozDKY0ևl6qEO2[<mE(xXK gۊvKM oHo t%%{)]sLtf,b/$ NL#TA /F} TLGCFF3V B&E~8 Ll[ -"L-b¤!U+k5M\xwb]68#{A+P$E\lLth iM _1P,Y 1B ݮyc}Jةٓέ9dpMyR9m_c}0ϼ}:zm^)5W,zݛW?! 3%x`#~m;Է@ z.-c,ĹmlBDdPEЪ\TEFI ^+WCW,+<χ \C4/,ӈfQsPY\]*)2]UlzTeM"5-̎2:fOEsorZtWWYU#9zmt ]A=.M'\|'FR9~ّ9Bi8*I͇-mo8W0ŠSkZ'fZ@.T%5*I!q.dksM4MF,ӜcrAE8Ҧ%g+酃A/7zS#G&UP2iЂ!{l>$G9ޯ;!V[tUL}k-qVC<:|Vk]#.5^KwB>9<}FӭT+lqφ־_zh`ea߶홛=m^EMݮn.1O_4h6=ֻ^ {hw ?z\-E{A`IXog -O\:`JrlgT[-E9+k+ό]#w;ՙָׁ +Kb)\vIQ^3 3uD C&+֝n@l1ϕ&z!]ƣM4{}T|/Gb;pMن} ۞Gk-Y^p!LKN"w tĐ`c+_m3?9S:gԹ4A!.ۣ?]`7-f[/W%bhX`J}3CUwїILԜLDj2܃þ}\muE9vQ ܔ(yn<= Nԩ;ǐ[,+C.yZhNeԘv+VEE,?D&!"("U3sY(R-j[sM0)&[&O9Kp:refLUnc?c`b dcٳgv OL w\^^̈ n׹~`F8E ^haJ3|ޙu":EZ7Fg<WD*g<&wD?^L-T$#KgVee&K'|}d4Q ! s;s}l͕1Xe*$-D!é %xdx.ܬm0HT1ΪfZr$MB199 ʕVB$ ˒Frb.h,Rv0y*bə !2a_-//!ՠ˜V;+6 ƨ聃D Nt*wĀ\>t2X.8?*,/gfc/&7YHVZO).0?r->-é*bQxk$OomFVbz/2Z `D3/K aNWv=lJuא-n7IpV26sB>&o&QVmJU"kM2 oa$(p I2Qt6 yB6d6M0UI y~9 gp=Q0`^eʐ-&`|?;}zvbT6o 2[^zl|zNrc-zN]g/2HCGqգgz!A2[bv@=iC/Gx cM=v1dW}5) dLx|rܺV%[%z#Ȓd"&5 0Ɉp $d*X biz5"٭"Sf,]L`QsRQ`/G4 O212n挀!d\D((i!RFj Ii@XpH[2XIʧ熬_so-Z@5hYIRfx"`Ll?z!+iI=3Lpk/?OK7lyqMwk\; ɈG+S/bƛϱ.-gb rP !el3P1ٍ[/Ee/dmyMY% wGNUkT޷_)֍h(eϲVCpºD2jo(9L,wR"Xa P/T(46PB%S[Ձ4K5kp iLf`6sXG\&6ؤ+>E_̲qjfJ@bzf|sO.G|bUEA숂eM1v9r<ߺ°FSXT~PQ$ z׼+jJի·aٛ”ysxD_??,-*YY΂9d!"'gjGEJ6v:ڮ多d,Ϡvb*0R1TeR]N@}??brz =f9f9ԏ={p<8mHTƠBN[aVqY Y%Գ>{dIa5DJ(G6eg #r Le1% pn%6rcC̢8W qCya#KBԄVDRA:ڡJ$%e12y'ܐ};sj`Aͬ*8 4om^"}L 4@Pre„s+mI8{`I>v`KW%DTʿ!%ҩD;A"HA!# KmO()c|0 <e1]U `1vW3X xy1>}g+xh}k{Wvh7΅ǻ9F܆`LxW:V~@V@llMαX%g^-]}r~1 #c}}Sp#θN<ҟ1WdC{6/a{54k.5tH/8 h&>}lO?Smx+6 "+m_v}`>d, vJ\f. WLaA-%03PChlLH2-SpK%Pga)U! æk@&$:vFp*Fio":ޅG#PSJi:5o{RRaKV6fT$9FWd"NoK4hFXs0'G(CZ MVe"4Jܡw^J ;=oo#4VB:FKq+ Uj!fB:wP1-CktX G<ᄡ"XK[ӕ^L}% 2F0nk7C]6GFۦ)WAl+8p/;kO.L}Ñ%1xYYbPrFF* mwY &[%m ոj"lJZJXx惚ywiuXG$rs~U^jRv%[F@Cpe |.41Um$A<&)ALM1BdܴClrUh4šFmv風 6R٨6@Ƨظȉ]A]#Fx+<ٖ32*|;!?۸`R9:Y@6Z(0{`8!UoXAp[RY4PLYUG0~#/Qx.y# $ߠPom#ZDW-he(y$p}xcŮq`1< o-z_+}u^vZ"X訐9^x E1upyV&+Rl9A,%F4b7Ñ;cӔ.yIH*]; }CR5Uߧ2u4Ax4Hb֦Vڞ2/Xji{N%̂oA6W*3Crt9C hҝ9AX 6x G@*[9h Ɓj;tgx {K<;=Vso2>Un֝8}J ?nEeŭ"k lG+OP٤{H``SNn0w'6H(]2{jf9?ֱ*9\׭ : 6Ѹ'޼RŽTl%&y) {TtBE)6sAdk߭Ew)eS%Am9H6~vw﨤 ;eu۬ -ud`X?TuJt2;A>yNm a|\={U5`+_q۷U7}6`;s}ÿl& ʺgi=b8/a`btaKG3 VAp' H 7$|kw*gR`J;vS5bRsR.<7 *2lJGg!^˪?M8@`5Hd#Up*rG8:u: OVl{Go#yr<$%vp7ê;$qŸTC/X'ߗe ?eˏGԏZb;q麇oo}4]\vWdm'|K(V!!|N~5AaV]#nT> TD/v yFTWyP$<7ʅ ^iP-A i՟b+֎m-v4~>|A$l¤m &qfUާp[џ&?qr3?@?K)$9,+ƕikUۗ3k*"bUU3OQU5mVdt:FFͻfsy:8iupp?E\wɜurpPKnNɊ&EPUB/text/ch013.xhtmlUT \\ux }Rn@+=DXPXNS DEbOlͮNҪwgf~c`oMDpecDkqԳ,}w!1Y&"_5Q,'&jH}ԟEdEz9*f3''Xe:P$ z.ExK~ E;liͳ;7t0xGl7 -v\j[ 3g\[;Cɱ2LcA&~5" V(ZwND$bJqG+X' MbfF{^,цƏ u4+m9Ry-s*'R,;RrhyOYOaFdpկJWhV)/a ^-o`єB-63ű#S0ZKָyZ-ILpB|:PK^NcEPUB/fonts/Cousine-Bold.ttf`T?~-{ͦmB $,IY@hKIhA<!RmOT>)$'9w7MGؚsϝ3gg̜ {tkp(v}~>D½B+=fמ8[eu3$gHB֧FVW55BHiSt2~ǘ+s.مȅ?fYRx @  }n|%ބ-**̰ݱ}3'|0jd%ɱ٫Wlh8r]?! TWM2"ITO]mN۴o D<3HFAdF+b Y6o X~+[s(RsT1" K 襲LA5c{qm`#[m(ߓU:wm ]d=U"Nep"~>06_N7xZ>%hȒ 5A nEƒx;ۙ^2nW8C `&.)86I/쮄xYF^#t~7<~`0VXdZ\10375^6JFb :z^Rk0!5hiNu" lYY5%50>@Uw@͝AӀOn?_>ߏپ;tigtnHwӝvaGVq w} Od+)vw V?X+~RQj^ fT0z2`E'i ȉrr Y 1!AB:GuO :G6e*I2=?͓6My^0JɊ(RSLidsY THydgrNjjZ嶦&gy9'|SӬl%>Κ+ʏ~N^3z />|Lg}N[Y;Kpݦ|}[skY5cuxSF?_yvBy݁mN&L+3[Ƴ- 3M8#ޚ@Yhx0aB15Ħ'%Ě%imghr8!^Z>E20 Wz:g+0"Zl`'@J!%'`I|ln]\lct14Fa^ܱm[ٮË'N(Y G-JBmPT$xoI1I }@fGNbJ9-QNOL&4m+6 K"K*ü]N ;7 /<'=?%5M f.ٰXt=SkoMo|5Y'X{WA>G5seO(ݼxNߏe}9wwh9jX^]gu0uUyzqn!Rke aE92,(5A{@"1SbKMy5ػvu :`7~?؝'v|  5\B."e.]ˊDZ [_\ewwkOy_=`d$&h4[N0P_'z5ED\-ϕaFJ0Y%|K""ƕc[virZ^ZwqUzpNg>p[F a7ңx-!N٩ A+ZQw*|P P1Dd?/X ^^IY~ ~U\.|acFpAtu/FsoC˭4G8+~.&BWP(\)HXbsNܕ@~n1~#ob10V!v,0AA@Ql@A-!7`\=HS"q(p/ţAqC2 %$}4&Į]{MXO0LYRSIQS`i2|6&cM"!̯hs&$77.0{OrJn$| Gd /Zjb_z~p-Yx=^s_=[ WnxvsҏSkVυ9U6A'G HLU.OdUb[l,е:Fu]kz5Z *Vy.e.1oQ+)8iO-iEӚs*aQHHĩQV nq?~]7f_^IV#*U'~2n~ȇSn#mq W^).cV<an@ .<XY-RdYk6'+fs9 `6;7EqYfJTDPA[BI[6i>I>jX7GӆWV+FuR<۳n֪y', .jZN2)H(<_,#V6DpMUm!K %;[E[GztI@baF*ԏr|yo)@oB\ kXsD \h I#A bT%vJǥ$D,~VI;eQFnNZ{M/#WajGdM+B8 ەRJ,PoV]_B">Jn^\[}ol7Y'P序?:'D,TV8:x$r04X{B^ɎzòWUʂ8L#>Zf9A&z*[Ўv@vm)UB`D qImRs`s6Od ~.+0k%vՇ=W^`R.=tbٸ٥;L+7Ź¡6KwP/pWܮ&w[cDSL0z[v}J?G/ m;tDlYܸ҉i^6܁ T[o Ɨ[mFr,6nmb{ZW6[A7;2E#[:z|kӿ|c=&{ 7>㏬!ַw}֭Ѧ :yp辧~פ$36)t!#+GXLvs̅i2>A (K@ 5"5[\F%+ 8rHj-&P56z~И ٥a01>lӤONm{}b}_dꍰ=UL gjdB=S,?o'F{< v rE\lnI󆵮j!4\$$e 1^ς%/x ǍI.=E*{Ԃbz4bH*fHMNij[/>汯Ǥáw~&[o<!|80hA`Y0 Z&K9M 0Q~`T"*oƒ \WY1{n죗ud;ֈ~>vzT̗NjUԔ*Y",^ .I'gX0X/aTiKt˔#Jߪ(c =YWJFխ&\c/swE gE39(%I{qKKJpzȖGn5~WxgHeݓcP^c Xf,^s!\z,zlsUb/U=;jb%E E(q[ů7Mvd~Yh%95O$i}CGs/2Ka:Y59H FLʔOe0#2$6@>(/=zDe@8UحGbqnnNu~04Vk0bQmT яMnxOwp^ށ9}n4zndEA@&jٍR@TI Dxnu 6zj!oC z.8.J6eD׵3/ w\Vz%ZDeXJp@0XG|Ώ2*/aZÎQ2Xʁ[IQZ777QBL/pN !{w^\ǥv$\<..k3̲zf:jC(hBK.Lij(;sADa}顸,Y/2Ÿ5MyLvزՠeYWk݁T#jtx9zh0FTMX;N;𽉬+KXi%?P"t?5maR[8S|BMvTC@+wC3dWCd;5s赃ДMv>mtm +wc^h62۠TpM5DFIkE.Ib# 4qMm 1F p8f9ɟKO%ً%Nv%'ӭ$7i%* Q!u+z<#y#P]2k^.d D|jkh±L'2 =wk^9g_]Ma_9::dőwE'>єᕃ1+yjz;#%f= S8$ԠM9c-*$wc6N(\'_g^UW`4 \W !P`gbamRLp?6`ͩ=vі{ ˇ$IGVGtzRBqXMs1W]ycY[[_3 cVאWCeU E7L Jc9=^썉q FuÈK!:CdkIHUJ6Laӝǵ,g0er^T1#i)nvH݂Eվ }PB`NKX@`^р,H-).pܷ7$Of9vVp˰s |mw=\wT4  E|3פD !tekǩOb`2s@3iSiCu\it "s13rX9R GVI7$uyӵU}"z^5R#""#Y _][[X0SP "y@o1,) [$bQuDL={H0b@ǐt@=u9[ H):.yϥY!qXpNL &g7_aZ 3Bcؑx3;y߬o!_sA 0)+ܮ ?-+ "hs dD+FOE`NmäVXu `B TRK ];܆RӸ%Z=ل$d++V'e*`/ @A&Z;2y3!b& e$eQ9x]]޷W7 $?G&{[̈7Z'lxcg?x-;w^&|Nݤg$$TE{<,OwC0c`ƔTKlbtI9~ e%SjX *`*p{ iBաX!h%cNyAGYΝ6؎, L 5#1,9ߦs&ckl~[㼃#b'Իc$]DP\TEU 1՘E !crD 噪0d Alxv>M;72 G^D^.QнL ǠnpàMp!5k4ڄxm|V1lۅ`Q mh\a~mDnj``Q%._J%TwHl%|n ՁғÑE681@B;nsx) E?m.ke>fԨ>sޚ߹eR ?o<݁;l1yNmUЋ`}(Mqq`i"Č"M?Dm8±(Sspم9]f_>-8"08}u!}nO>5N#Hh ZΥu{6h 5n W8~Woqg 6Š,='Ր7Ěs*Ʋ גvaWY>V8TU6pvK,_~J^e`c=>&JlbW|>; c0$]M:ӧjb8mG|V]Z2 {l{fhRm ߐ=10DjcuKJxD766AcN =+a^^8/hGj 5^С)#/Pd+pAW@B N ɶHL]s1{6i|'q@m|aO[4^3B}wM=C͛R}(rF;zһ4gPFi}"L`/\=uB|Bt45RDT! 1v٨N[ap6ia1}kӵ3j˶t!Q ctHCE eQ/qE'2"pRxk1`bH4Iq=b/bcq=qsw*`N!S(> Nu%C]vҠ ږ' nEm[lj̇ ըqG鋇.82!-ޣtD.e}}+|{Yyn#GGԿ)LGۮX`V3 D -. <7j-1X0@"U2Ȳe5V(kd![mܽ԰l$7[1<&s]yeG?ƭbW!>*G}y[x~T<`l`)!\L 0ƞZRۦS SJZZ0I: R|z\8fG#AT;͓$!i"4-9W-%(uX9ǰ'= +~6:t..ŠV<~;sgtΗ _apD}i@wE{yvqmֵkBz{[~z ة3ϔ[Oğ/h|| 'O$Kˉ.q7=+:5 4FQN:O P"87:pfZu.IC掜eE{o~{i?:x`Cm?x=0}k!^.w*?=.u~_ܽtUJ=w3M%sSZkd}7~.g@1`\XZCOZf-Ӎ{ &.1sgNܱ}֬_ɜ̎b7Գ.s-V$YO% O4: d'ԿI緾2UwCoܐ豃/m=n3W Vw55PBv3PIF Nm r|khC"+xr:? j(T2ax%<ΡSe}oּN%CO;l6~ݢ[~{S峹ósgwβZ=ݯ{57Û1A$Jà(ЖZv%..ޛd;ֹe,X[T(uT9~IIW-u$9I* N*$dT󍎎rNW6a3OxWd<)~4+dh{&l_ܽb9څYű)OG׬pK]Ï&]eKp,܋Uyζ9웾#q".`+3U <Y\8.ڿ$`-XN[bn.2EElkڪJXO+2d;w%#@ fTt ]1xpHb*|٠ω?tEN"EMn[kȇWX~ ^Ke<2Ķ]t2V 60:7 ez \R4GZ! m P3I Y]]Z:NF@jOM& 2pЫ P^eWU0 3ӠBYHs6֤ Bn*%8*vcU[` ^."I6YkFctE0P<]q K,tQAO4Y9Qh ?M`;j.<~Sr?ƕde7_YW*GmV덱'xfOEM8oH%u:6ҒC9j2ShvƢ@i-܂^MNT=2R?ٵ'k<\ ۧKܷ`ڀŀpiH22M$Ź 8$.T&5_@]p%7!:uA y|GOgf;IOUOuG_}gWyrX}ޡ[粓iS^ܻO٩z]>)b'jRk`)bIuXPAR ,VM@FY ;6UQ5-m܂08]dx>E,u<|G{jxs1R͞N Z'\2^7n*źM/yF66$WaN`hZQF2NcCQm4@SynaYna Uڜ17̪zďEuJp"yg]~fqE˅g/<3O؊ٍ-쩏pۉ?w= EQ{$$&;Z;"ɖ5;Zvл d93uDOҎU9iBDŽIؤJj$i쯘VBY[Ȏ5i,3 Gu"2 妅Mcm C\cʽw-l2쵣XiwvhМKÎ]=oؼ6Ujߪ1%ȴ=醯U;gM}նT+лwX}>M?쵭*b{GC?*nLFJ0ە7HnzA*fcr1W1M&;Fa쁼լϩ]%*/;~wfcS9'<~&~ T,=ޱ@ePQYZ[,«hG߾Jdp*BՎb4-W-Գ B=SvE75vmSTLH~&exە:1Z$ Bi D]j3۵1wpr}W_6="BϻYzu NxuFq"[,zNS8f'4qY@^(uOh+K,nr7oΥ Pk5͑šcԫ1*6 HP0.Aڮgdv)ȅ]s](R [b{\~.Yޯ5SxWq^\KIpu&6xn@?GȖ&vIdǖk&hmv}@2 9pRAݼav*&+A޶>Hfmb2xfLom`d&=h"<Ԅ$ x]k"F0DhE:)45 tLmx8/ܼ.&Fܟ~!ȸGgݫ d~/ d׊[jDuө Hu:@%cLf`:ij[&>ÁV x 'Pgu0&?exl\V6#oPl֚F+x5Z c[aXlucŬ%E?9 o`~¨} o~e@ždzd ]-FkPQ=_ 4F٘*],&uBL, Hv .DNw;cQ[## j{i85'G0a:o {.ƣ`XhzKJ 1FLFlFF(Z*{G(2ŎD:t|Sjқr87wcH(%;ڰ-VԷ1J Lz,ֈ~bS3f< ]pDJ_y㿼0 8 4=)2ĶF(6֚2$h X:5 ֭M BrXh)P1LIsQ8iϏ1FGib7O\vDc$}ڷ{镤g?p-/m&&qbKˊ:#녩F/٧5$U@BKUOznDF"-9'v R:ȹERO';-S2Ã'Tٙ;.[ߗ.8{2g~DQhvAO.hu)@PAE KQg@jH ^^g]n}hSL9q;"a[-XP`+[-[q\XClhv7s7+vjּ! %,^b߬\3W +e#\V] t FE97Tj]^QB;WF"c9O;HM[p[S7ګA4 ,SQYHmb;YpRPps\ _)P鸞[Sy@qCQ Ó=_ f G<=+3Gc~-@ ( Ɛn?E{H]Iŗ7l'Qi͕~*UbO ]0Q~Z[ZMR;\쩈Y3=hup8@-LIi`))/E]FS:?Pܱzl!C J^]R}Jl>%)@qWݧł^?EQNJ7_=F*ֹ:<ڣoecݏSL2dRFfZZF˖{_Yg{ؿK{ ؿh}Wx-_p <5yX8nKFQ[#ơ=yvߗ{l\Pߛ#}/C%9eHˑwYzkńd6O|R0DA%g%(y09GIO4nxkq/X s#,J<ʛ6'Kh7rqsGgsYF.5Ψhƍ=wI%D@=M3WCݛ#}a؀3xkq# 휅ۭ{R.ʑ'] jH[z_*O1^y~$^b$™,'G.Kp…7+!ӫ:Z7a0+dxYW(~lDvzӄ@<O80 5QFP5&c^qYm44KuYWρ;&u5^x># P誨SvR{~X䞄y@:ߟ[HO(ЙPq[Qi5diSGfv,`A_ɯQDZc4PiPp8q {_9JStJhx!$yZJŬMfiKU9ZLA@ZJ+,ڏ3͢f]ATC.oO_ewiͳl̯~ʪK;dev옙/v-)R&V ILKS $jf=. Bhz W`eiMfdA`j=`:\l8yԝPNv(s<fpRQ[3Vk-UTpצ އz)Q:ՃM lpaѦgF7%?!MَO?A1( .b6m 1|įՒ4 {4 BDRrcDCZZh[*:yiϷR-<^ s=h{||P{mshK8,MfZJA4O(J$ڲl|H|\ >]P%p\(7kIG>a)|aQ5=jPCg ;X%~#~F{7}^}dU=}٩ѓY@ ~POv;}6o %H/PzQQ<hN+T Uޅ#eH=7z䑕SlԖ%']] +oy(?8 ݮWFGG _O:E[1KI' b*i=S0vc,c<kq.[֫OvVZq=c'[|l t70EWE򥂾":_dߝ~<фSrbܽw,:oA? &% 1utĬKЭQ=c@.+t.:[5SN(lz8C$Y^進k+VoHoږ̹shҴwn5$..0;xgR$"+x{(oٝ}l6$%ޔPVJBPvl zы+M^QT+Ns̖$w?'dgs<9}xZח nH0]ˈ|j!&b>Ljو|^'bsY$In<ɊGR9:g?n1: FOY/[6ycm;uܶx8tv{\t 93BZ(GlCV/|P ]VF.FTv!o;v$/F~JR0yAzJHpFNR(XtFH%Q#ek"CQ:`3zV(Dx3*#V34a34CjHE3I.v6mIPŎ^];+GWە;|=zH3ݚSOÂ8åb~g ğS|G ɒ 6{y+ 2L o,XQ;w4d9İbXp.SW&?wp^;~eQK}+Iǿut+U`;kjNl۳s @7K$pS k%eݧ.&~oѵgRIF?IWds.Z9%!vغVrghf4W'J$6Q^6 3:Y9َVڤ|ux0=ɖq 28@=uO0 L'KjKC{c'[R%PjZ*=Z>0H Dkw>h EN"߭WH>F\cV {m/)cCɴd纤O5vb' 'g r#w{CMo`L.EZUra&3'a(^L.7~)JEMciRG}ݍ[\q@>A9"W&`[VP İ R.l21O^K 5e#5ү&&hCOPoo֐Qޯis57%o i{ ӵL-=M ļ=s < X =hryqrB9W%#_艁 b46blc(9t@ N2S9aמy{C H'{R0 i7=OKM+:hM"Xq%,us,%ax844c1Jukp¥7f& ~5“>>SΉ>w@{x0==L;].6))b17LȆAFvAp(^p9x$향d[ 'P!.uC<5^/, M_pЉ^ͳm{tuuն&kDuKiA݋5x`H\g`cR f@ZPtED#yY? 4iK\?"B\[MTA^"Ceʙ#V0wy3 m?U:} ;- ^IF0% @GD\Tm  qnwekr✧^Qt8zOWѲt'M C˶8ay1%YTOꠈ䱅H9:\l7bVPM"e"uZ]=kgRǎS~q~]5}͏N.-4o&*R~Goa} x==|s'/~'I\*&t(5/F8ul5@J3aU DE~{l.?) qMqf74qvHll6&gRD/ar; ~ʋ4'a {#~{J6^)>#:܅H:i";~?:R2h878臶v黛{"p~S'!\2{H xg\ypy‹>=[۲ґ˖u0t }k|C'(ufu Ǖ SהL.>((+֮lQ78x Y}`<QٌMՂlu荠D>H̳8ܞLGY_txݺ}`^{tW0n1yH,&20D<(xmt!'ݨu*=\)&ilY $PRd Ӵ,Pw2ek UPRŔ0=¨6AdA%U)[\.;o,z imKMRE[49q6I^R %>ojyz=No< tٍ vYDD\$b<3&]( M ݊:\n|Њ}nQ3riaUnI8ф2 OO؅?[<'\CЁ87yLT )(H(THc8ǐ{iTv8@Lmp]ܽ'UM\v£p'?2>SOBbb _Q,pΕi)"0@&`DyL]# D'i7NY|C‡6nvڸ߸n$ƕ (K`zd摞Uuؙp8PP&^ ?6<eZ_Q芛3c& G?i}` H+$4UDq 6@|U(CQ Fz 6#ky96Nqխlە |_[ 3sSp~A]7P)}V~XAO zDs7Nkja۸PZH E>to(;R ͏ ֪e%]&hSN  >'l:N<4ha8CAFjѡEq: `%d Yt{3 #aACTFP Rh0y~+||~iL&D1XfL$$8a$e$ʤGĴy_i&8O+.QPRmtlye -41Ud6ъ*5M*5뿤bZ14kB3""2LDRU f8!F5L8UI1Fqsx:3}mee@"5 1^&}Y2" *x :.[&VEЋ:DzeKHڅ& jmCAlH.F\4֍bMR\b ZbBkO6d5Qk1zl ؠJlT@Pc][_?T%8[Ke  dChDB@DF@>o1sD<%EdxDR+/pX-U,[tH7͠SbXk6&V5H`-Cju%SqLJme*%#0-I1~*%"ŔMHI!*9d(>RT" )1%phkՈӯX%ݦΖe3DYB4f(2cQҌjT/oԓGLްMhE{A-հ$t IӚOMffg|ʈ=F=}ڰ68+Z/l/ I%9̴2M)FiҕZš&R5 \yG40M"n#4+Q0OZjTio<>KU&jEՎ1FBUPUC]=#>&VUaVF,R IJl4MZĠ.5MM)b BizPj `Ll'i}RkDYHBj5g -?e޲dy @(PoLVVS=H ]ԹyxvGUړx1>(ڈ5d6M4n$#-Ir5ꗬM031gNBA0+qD8Y *SDAwiq hȈlYY̬B^ޘWΒ22kG6'ZfTIT5zH "ձ eViz V>ZOxFOq"%Q1$TFAv7D[@d"Һe}+y\ fvhlf^`lZɵ֋EƦ"TYIuOƂ'Ml2:]SF T5-%{*`2h2EyUj$`6Ί[QtxyqImt"EfYg#5TqSb0#)3zm&ǿ0LN1$  .N Áb!plb=92n$q+q[Y !n0XNevun#K1ӶXV'5J8g'^u1}!m-hT)NAxIB6%^v1Y!wUm;1&Y+6'fhL5Z{}GLH~@ ˲5G,a)E8RO>QvI3ҌF[][NH-cՊjZD-ԥ҅1Yv=WhrF  0(+z` `f9`X pXߖ'Zrz Oj=|?MHx|U.X<޺w3f8\4dt4f_Ǐ7z7iJ)|?q"&)^nmR~ٵ&MT9bWL(9|pjԈ)^ Sֽk+vaSvYUVYAׯ^Fi#"~bsЫ`d¹h5sɛծG 峦O6YciY^CFV\~%7 @}I/UVwzJbo};z~%[{{ݟ|2ɟ?y_] R_C꫾Q*T]]T')jVklEk\cWUޫ.a&I|^ax l;N/ p >'Y98߁/w2oo 0{PauаRw'n\s\Xd?@W\TBf c/2,Sϟ7tc,XtB [_2wW.So[N{zZ| u6d͋u㿳w:?z}uп혻Aa?\ur7;ջ?)?3挿g=s6>Uw`#G`H_}ػ'?:Iy7sρ_wlۡ~{6cO[7oU?wߧ進#F}KvkFKtt܃o/5s%EY^2F8i 2G6ϭ .]v}*ne^{Sݏ !Ł4AtB/ OـCMX8M3 }oڏ+*/ϳ}Wy,ϩlSOl? (Ŭt 1ZkW24_'|>6z1I>blh/*EX/ 7 Ƃ[` ENk@-<O-`;xAxN4 |.PfH}0$OJ?w5RKc}&+fZł'[=oi> jeAztQݡW^=~kgx=_>Ė:h Yl=X#]{O-J}|M$25we ̿c){xsYugi䫋'NU**7^RoIs%w^^)b``o?yı]]_qr 5jKoޖjC=$N{|ܱ?4s% s#)i9y7y9xmG=ChV #pQU^a^tlVC>Mz''_WtElAf&?akGz>W/?&/ªWu;&Y,x5 L8ͯL2_5ً>3ҟ d?Ifg[++7&W>oaK 'b&?C{CJ0}U%Sު'$c۹aP:y! A*pyCbzq?-^2,R \ B0^Z*@ЊFatWM㿹cܳ>'Ρe;4lO6/ygfLͪ{U>3v,}CKv#YqXmOPv椷)Zޓz&եS]?>:^|PQ^fE 2KiL"?'?1.q0ġ̥%&kZ;*0R$6mM*6mR.=u/kVzRS[NM̓{b Xw{ݰ L\٬5OΥ7ժGO%ɓJpZ2rz/C1+bA+i y_ 5F KI*3 'tS`U3;3E%-;&ɁUjz՞ tƻ\ ,B!ly!E|#$xlO Y0 EY&`OGǔe8C,AINU ZZH?7S5|KxK/o =ɛU}ooikG̝e[=[zFT׆JE?{+- x-67 y;qfn:B#B+m&tfZ =%M*E 4$H+팍;,عqƷ1˖Ymyf;L{voE,kKIn38\ &^70 zh `Lނ!āQ'z,b %UJI0]Sqj\BW\=LG:.ٶru+5jVSc!)rYxm橌.Ș4k"0S'^ @o9|"zEnhLd?8'78ⴙ"(HH=4C"G0Es#X0^gsxL܎r'#C.۳"z>cKG*J#BCD|< Gfzl(<ёhCA* @Eq N8)F+h̝>mV\+VA0^(~67b? !y2~26) M-ӱ-3CR!SWŎAM;vɒU+VBöʪ;Kd,[fuM|SF{uwkƷN|0C9zhC˞O_a,/"]GHguxs3ELzF)feMFSY1=- :("0T5gv%q/m UJ/`!R"]Qq,q5ҹ gRDn?c:q2tSO{k׾\ޞC7*Tb:F6X@zL@!1(Dbje($ު/Er p1~ϓ+:W8%W^&tl Ҏ%o1RZ#R+M*.3bX!e䧞(+ʴʬ3( '<8c턎dp|)~a,blWMY?no@U^Un(G&~F~{UU}˭qP8I•ApPh:t`02- ' 5@=y"@>k :5*N4AnoKGtO;P*>? S9 Dq(-!uF!uN"F)DjZ2NsS1pnuX)NLzpznKʣU<$&KKo)FB2J &Sn@҆0>V11eoQA2JyTi99-)S>ނM(+ZGQ8Ca=k){ pJuug2ȿ:9:v2L!&˛*qꑾTގ% ip{і'9eAR6\m۔ZDC=*kʅӏ?gK4ݔ r[oC7T #z4`:8A] tg%b5GgܪkX'qĶwYh N 3rrzJ 'ܚr=߶|mkp^4+):N:OLw9%)w8"^'#1bHOK0;),2k,p`X\ƀZZc|7]wAl|ǝ磞L^S}͔ WAWlŻd^W(OG~)'Џ{A8*N;n@<2NQ61k0 73QD/N3M&<=5j♙Y4Y 5Y@E:"([JcqU1w&)8B SQʝpk%ٗdwm&.krFϑR*׍MK/E9 u& 4Q1'#g$ceD@o5r  I_ KB%5ulXqbj`Y:IkINW*_x~l<EU-yi$# nhU2$KKoIw_)5fXo"sU1Q 4r))U oRaK*!]c2 UAkb mتRӢջP4)X &T2E7c^.JfL{I,u},B$n07Vz8; #hR򝍿p>~( Vg1Hp/=!yv["x20z 8 OIzMrre˖}#w*+ԯekgˋw 0LQ$.GaU Y&YjM yqF4OoJ.TV&|>%ݑqʳ_x[MWy_W%}q3~PĄ `*IujuvT̎rtSS*@a,1qb ]c&#)ZuUq] GbK}q<3oɨ6([Lf3o\X_$g)F2L {lߖTV}g15tI6̈́۸\oõ ԽyĿҤIHv!X֜.񭡢.HM\qOL v,6??/R<{O>~7F4|>.0I}Dz MO~ݻ,EyVqcL2 YL3qt9N0AH >voDoy;b&&g Azl Iږ tdfly?(l7TYuq oڢ_CٞQ0yu_7,s6bpB vQ<3@I>5wDgOiY 6TW6bĐ@F"vEv'eYz;.^7;7%jqMgȇ13\gf8f݆fhNJ@jD:7Q}zܺ$óD Do'5)e.lv;^$ xhKʎ{#p{1PAbBamltnH8"N4O60D"tv!>epIkiWlV8 xq]v@Uq1[늄4tgZd2 @a\HfwX$z'8 +_#/y@,O$9Očoڛ兏8$6הkQT| ʡ ʎ M*5'n4YO85r:8 :TT:8J`kD>1W*R~)kk+_C/Co}1eN=ʋ1I_ypw6XKE$-ЂcV8 ˭kLjo8`1Fb,/%E x<T_:҇EKyD䰳< fLl@E5 Aj]JJ?CNXĉ6tgpP]</P9AZG,fEBlVIJ2(sP9pn‰f&i_|_+ =xXf&'"Vٯ3MA15̴^sDlIkOl!:@yzAtm: w͇4Df~^)Kr= ~i,Op"]0W&9B)صzaͲj}E*bGsxT? ֮QvR=xdwg`CfPrM: e/FJ.hs,u9pjO8d : nC tl6)#Z Npvq )_ۚS C9c;|FaxmRDX n\_\Fk87@l͇ъ@u욭Z|vͦvuv2^8՜BZnudD:.Cuq%54;a/vdl)?E׏y8B{"{V;l]o&93Yb8h&аV4CHsw*]0C~Z6eibM=;WYSYK~*qV "lTZhD9f.^f;/A*2uDCf78Qt2J"wt_4TM3nb/EO#XKc8ZHEb5@D5Ȯ% ,1Pk0Rn$ ٢H:N|?şR-,! ٭p2҇ J"G^ 5`l3. E.umgVz?~GQaCsrO;vniIًy揑[hQmD~ Up',"- CBLϛR@ِ~ӪNObYUގ$$ CƎĩ8nT-O\jdr.C[jXG|gp%)6e78&dԙSҁ+ݜ2SR"78"I4@@sM7'3mK}T\3ߤ3t#}VUy]y>ݥOus?ߩߨ[X?V.+L5YV#Kѥ(>{׮Ͷ&m5_|]Q(_fA; S7zoEUNX,mӟⶖEn(:EDhMAe<Ѥ,7C:$#PrdP?^E?+c۸>'ϔ B NSWNi܌_?J:Y(ɬ#tq@ 4 Q摒I hPDo3^;\@M|Ko"h '3Du$mmI$ϣb+uuH "~&\>zt8&99,( \:3Bn\pk3St־IxԥoIkTUU3<1l{~S!ϦQ#i.bD~KRLIV_1z-O#ܬBmqQO4Jm&S! : p];6E]۵,GR.luk[J$tʒmo8[TuX{ ]HGB.^DʯƶB|Ӈ\}`ʦ#Z.M/??vu:rǙeo~6j'ϗ%Cfk_AI {nX\gί&ApY/,lZ;@_&NWfJ$~q]_k&o]ޟ W fկsnV {<㑥!h \#v ::+6 7YȚ-u< "΍SC_YiRSϾFW:t>A<:X2FY]!ipY֌LZ# IbGmZqAY86.d[@a!ۈ8!_=!SJa*jȋ,(Z+iz3zc{yZWT?UyHU[_Kr:0&갑σy fwY`vstm2AwQ#ve/Qw I??~Љ瞇9 UD~ҍH%SPZKF_"\ҖOR M`6Kɘf3U&,IfN#xG|;yAn24Ќ۝#Q-T44!\(PZܩ|F^/U.C\:=wre@^G+\a!:S`$`N{\\æKDCDGn]iipdp #J\i06kE*ٱ-&DJfL$U֙!._;2ײ~ui%.:kSV?7-zOoKu [?C4¾6ǨY^z@#ʈ4Yz/[zAj0mN\>/<O/7;ނs49QT^+]?O{ǮG=+wt0agcV^S+Ex) ko9#(JS!X3vFx/Ýlo)f2h' ~ty)*_ZL@sg\0^~VjFjҖ<i].  8 !--fF^肜 VFmlfHF&$nK%;RĔj* Iye8pG'abDtB;{A4gڥY?'kĥi9Fu ѧy<6T}6NY2/~s&˝Hp(͒f8lYBVBgO;x?r{3]j㶚ߜ} 7|}7чlt?`֋Ut7iS3VDQoF774a{Cy̳Mnt>tC1\ aƀؾq+/{,ڬ{ofAd͂bAv@dC4r`6$f4QBvX[ՎCAҎ^ẢBwÜE<zf*|C٧l)gga*WԎF\ѣ! }CNP { K""aT0؉L]iBsotOfh uy];\)w)('2 f@);[h2|X+rfZI8{PnlAkٍMtXM Є}Wo%AQi=H-ңW] qeby\EJbzl`# PSvsF2RP"K1=Jc_\>\ߎt6zG'*+#ǫH$^(6o"[#zM<1=*B4$+;=S'wVe ?zNYC4ElT-"Wpn ]F9o:]nȫс6a #5XOj`idX3Ab:an,*#+#k_IIcrj [耷62-vdޣG{4Pu>ջ=*;n߽[%n6 R -R@@BB >> (6,X{C E (͊Bv̽}O l&3g̜99ÁB@v8EQ(x5Hir *bh^a l& nę xFիh5/ь?pf$ p څ7?ylW.\\,x Ra|?ݩ&KR _A 3~'cDBtFrCF#W r ?|>CVݗRŇ:AT gjmr{e[X2n/Sϛ1' Er>?i'>w߻~)`o'8tyΟ3xM[;s u{ S-p+ffD17S^ŒQXfkbv]dh| oK ,{Uדeo颙o:e=tҌU=8g|˰.ɶx{u=;\ѭ ߀V@VO!`\'*->w׼~e,`lW6o$9&THA" +)D#J!AEj5FX^Jo {r4l^ۉ=-֋^fx( 1k@'!,PH}Fep|a^N,ٰu2rrX_ZY[޳H !?y9ʞ2J&X&aD-jTUQQoy,b3V~>vUtt!KcM2> 9yG/Q`y&`IO(]=4e(X}._`ugY=v;>G4Dc܋8P&ثfgcDdp,QKDS\ULJI -yJ<_#\iL6zI_~?wF=t_޷S>=6޽i kneD]N'IV3l3f%t9E&![DefG0y;=u6Pz?& +`7k26O>bYV12Y UR& ᠘$ +kU#i_Ȯcuɋ-[u ʢbYhIHt3wuk+p{0 F&{mxFg%11۱~{06ֱRfIYor :Ze~oF.)&$Kc)(>bh=`z8"@eV} Gq%\LRjVt#I<5Lk(H'j 5&fy^$z$FnMTŤC'Q^ ܼx^ y!p7oaDwca!dNc(heke^xtn)+IBj%/ r4 ~F%VYӦ^;{#fNfmz5Mh+ {bwؼ73fSjG4h:m74QAO (RMrQ@Vb\I臖VT 7|Rr*#063n#Kv2viE{\{R/!ZQk{n ;o&[&6Y{zƣf TE Sbt:.3KQ^iZ{&4[F1\{QbNa&!adL*iv)P'Qv+YFGb adPLfA$SL&3ƵD\"]%,}Uu0bƵ0?-ç\aox]ܼ}J{`pb.a:=*xÛa`0tVX8)EQR$FoC 6$+~?p"q_W37hah)rjraE 'sNh/7޻Яw>\a$M8eeYEC/o$9t4Hw@NTNADf0Vf\ #;hu$8jXN\$frRV#!w8:L82 6Pkル4wywN]ʻx0 i!QqK<}yvCp2~E_-d@.V~&߯P|___6 e G>98Ҙtu,D``''jcؔp{]jF+hfS2^MɇfV.MSL@_tl25 VlX "2-B [{u<FyA j)I4Kb"}Hϋsz״0,T-.v>$@b{oCG).C8/ B:j.ĨP9X΂Ď#IHdXyw g-i $e1Ye Ѳl53&XDFoUO+m#$qH)Dv)jPY85) 9$08 렝8n니䏿ݰ#WßՓcsn9<ϠhV;>ٴI{L~dzDsm'cwXOVɲ:\ kHU^Z>yT L,Ps;68~"۶23'pݫH[ؙ۷?]경n#n\f'?XEߏz`d1X ]ٻ̻IVOzT*CBN <T#Rȧ"l7nZee˷,5{Nӊ+:|7gsj.6-qŖ#g]?rWmY5rUs j`{V.&Lqd`z:fH~l~RQ]^~9^faٱk |Å=Fhxi]O3Isf|x!$9$Al~|"/{/<or( ,M!7]\y|)1+Em u1E]6aCjwج"DMrEےDQ[yz27c؃\%Q^1&uq! a^5qUJE r8WwX}j?"⿗tu=ۗ-1vC~2[%3jFlGW)שh i.=NpI@arZxPLP}5n%K\>6jFؾz]ۮ%C3 f y*Ku)1ם#ҋb유U6 ٰvj:[xmǮ]W*)g۵ؽMo>e4d; W)> Ze5\4@Q̀AhT#cy[͜LV :qH/SB8ia yJApUE R,ڱCo!>-(~Z|O@iuYq|ƴ9TS9a Zg< >Rz{i˪& o |%̯v*"s 9=M_*kio_W ?{ \I*# UԀ 9@M; No"-07nK% 0L &%eQ2xO:Ut_n>8NM EG^zB:x8x?=Su!N0\q?2BJ\Űf6SRT2N!^Ӱx",K3AȨQߪ9Y|S4ӧ_`X;ᩯzӧgm։Ό ߍqs7&MpeA1$UjbZΞp3qVd51یV+q 0 &+qKڐrbP2eï&ƅTfsڪJy`<,b7˪rI:d=XXpF;,HWB qE^G߼lCS_[ ADpf!ΜvórP{]8! F eѠl62 fE٬ (J4ЖH$ivMO|go)s'Hf7kXv{jB {NG wc?pꔖw8lPBN#+|2+&-XDKfbqVD?St$>͞FxROvMa|?,G }O" 2p=SAcLp|Yv;%vje̎*ޚOIyWRʉ4Bhl,[ӻ(@?ouGq^yWkG} !@f\fp%EFaW8/b@.%Dfr^.땠ۛ]_Yq':ݞPeE0 y;~;{`[l'{g8hj+6s}p߅ĿA;`XV,+p0)K_B9ȕdz|)` jښ ݱVcEE/,5b Sv f;)zjWjA_.`Qgx`AB<]}Zpa$:flǜMT[Hɝf()h bȋo}`^䟥˘:fc? !~vN -;"~!a˷cOvڰ mX ot\ ^T8lwVZdo}-$Va{:7L2*ˠ'b%Rz'y-\T<.| Gby@GX hOR/(%n|뿐 f*3V d^\5||~7Ewɭt,!/TyT>ƍW[D$pAICw=;>2<ɱ~I{żx/6]xܐh觌Bs&YhmяgVM^=w%Yh陝hSҢwt7&'!k">I{hɔ+kJ;ݮ\V!AϜXKг)m1d?s/YϼD?~$6DSeH͕G>ߌ* ~:G}7g5Vv?>v^{y#ghzgeeOA_9Mp\S'!/n-N!e$HMOO/ѸXXBIJ?7~|~j-),dgh'3@;qziLv [gvViS8DstwU͇ӧ&<]%i1:w<V{fVkoeIIpanMrHa Aj |c)Mk5|>UIӨ Sz$N#򽴅TITo!ՓײTMSIJH~D?I:t?շHORW'^쇬 O*/>@ ԕK]lD6ᢕ%zXl?Kw/ڦpA OZIcG ?R \Oc&zKMr ϒ]N~~'S8>G)@q )TQq'7)jzP[j>uџMA-oO`5Ԣ4<ƪ-Zq> EYz;}jW>KiOr>ߣTȮs6t>/[ KNݲ[wP)X*ަiEed0՚ |Ii+ؿ[`G6 u]VCC2<ljFA$38(Q>tK)\QFA;VPGm-u0L Bmd"IJ`D)RZie2- W>Nu.ukL`0O^ffM&[ 1f}\!8 z&#ㆭ[2{,m,M҇n;hSdZDФW?Li8D4$ϊ@kЪUo^a;ɒk2b XdY-\bD%7udw/>p!ai?Vc̏ay5QGϻ̜&5Fh&һ0[%6).p8hgrF$RDg[> 蒴fh_mGҒý+ &M[_k!}\[d~3-ss-o0D^t+9 G|qJXe*.hRYYēXR2{HߒT=!uv2ĎvYA$  [̬v,dxv9\ae5OflRlv ,Z|PKVOBC&S[$ˇgg;\=)ou> CN1O{ VdO:k^1VY6*r<9Fc?VhKˎVu-c .«)8VZyy>ƹڤ8$kw n|an^O xXZ2ޑF9_Fb_QwvYȭrRK9J@/pҥr^% ZfK$M#qz} =4̣B*oT;/`Xhyh 1aM x7qf*^`2]W4[-Q@gGQ0&='q񎫦oZ%4C.6R!(MtC푄DT +];tI``zHl1n Tt*nRd^tdeQ:E :ˊH>&g^QL8BݱOx*9~ -ijֈ_, a_J_>ﳃ!eݎ#5<"u2+. Z]. .jږj @8u*nԤi&5O4qhl`?^- ?~ʢW&׌Ǔs.ZY&d _`ϪUn _ɔ[lXd'S.K[F0HLl32*ެz>fN}O5o5#Ə4}(Ozb(Б~3Mٳ白/G}FS =F(9xix+Y%+)W}NlƟ^^ΏG~)h1`(:2&‚BG69j9B`E1P*# סk k徏g.&[pQ6 ] \CB"BBB@'3Q0Ho vz =?7?5JS}BfПlR<6)ȑ8 ccM"$ )4$֔RG+5[UмArϟ} 8r6u܂>3'l}̈́#o{5h˟s @eFOC9(e"%መ@A+`x\r&5ũu}P^J8#LVu?Y9XSό|^:S t!c[1z7ʒ]e[΀Fd ]:F5"V+8@ͨ :/ϛ |3Գ2k.ML˧].nN@>CGCE%]57Z42y8j%󌲍W$m?Sv0Iq#fl.ب6QjPD?:&`RUbaDE68}@%H#ͣY/n1ƿv"_yYx-؂wؓPq;@=큓ՠ-Xр &2KK-4 m(~W|}MX%Ag<EI-ްԏ~n}6E5O,*+VoTˆfF8+ax&')V!5EhU3 -c+ly릭wވc"'=޸Icl3ͼz9?y挼[fx󉃝jhc{4kzZzzDC`;]T@pf9Yg-r*4ѻmwn>{oċƾ%asAԣ > ƠhIw!؄|loRR$QxzOc%K1dToZ\;4WId(95΁fUV -𩊥+,_U1bDSQ?i\Wv_ r~ <̔,:ZYgb1*Sݚ)g$~, !,VQjtŘcö~le,i%h~k{gl-k܋gG!m[nn/Y+,۬Fsp3qy!KffL`>'@jj<ê/^SQEAhOZ0t\`?W<ԩm*rGt>yǭ;7c{wW7٩ƷkΉ=ׅ0߰_2:lV1 9]#\?FFg2hN[WOkR >hZC꯿N͓P~ï&*ykA_r2hqnIm9I28t浠BOASW.ćЕ/+GOAa[ōh9^7vPlo3zh%"XhjzN'Îkj, I>pҔvUzB|d6>ݍ}\b/EO~@̋xHlФ-d@_гzI;8 g]2Nժ8*i%5[PNԴqoEϣ_}Kϣ 4Q6-V;Y$Eǂәdj,v ւMorQ,H~d>n|a" ԣSG}?CwYq~wFU{=_ޑ^ (OYLmz<|]LJ}&aSJ29-Yv8pÞe/< 9 ` '7\?6eAČ8-Zv5#FM摛'w7AA0YvGVyaѳ0B= >t_)z?xQ`ݽQ:*18;FV\K- L/oW6dq4º_X!-(\uB k>"k8M#︐UR dП/<@39cf t&EclRD5%je^ L%ހϪXNɨוW =mļL4N{zG{||_Z_^So#̢ù0j 6[$Et'UO[- eM{ Qv!Wqyܮi5[N~c[|u Ehq;@.{sB}kvFy.{Ds~"d2`ovpŮkTHwE>E-TL@SA|DF|t}( Hğ^d:wpn>kpRkUpM9yCɵnȒ3z%qyN/DvfTV.IJ q+/o$rKlR}<?=ãP+-93| c| f&^jIHb={ =FzѠ%- ..ARFrI}?2/-QǯJ#+A4oǚm?BmエX9_=L+ADm빈8 ,#|,CE2[PjT_VdV 5 E9@ujm.\U6^?ޣ笿mHԉ{["Cꉻ?m~^z&yv~e]E%i>iȵF+2|a.`crl9ˮU#,jɶGݖ2[eeUUEbrvrs߱sFf;痾<=xۉC'_plމou!g*TvYW;v3WkE6}DiY4>"'Ã/AazEm,yF2sa#&c['O2HW^YpS~q LxnopwiUU[Z[&æ5𑌮wOZPRR߰(1Qh+`B~Yֹ {Notl6`Un=bHL!H[nɨGjibG۱< U^۟/ >o]+7mؾة]ru[oYהިYGƔE3,Vg%d`H&e#}FC8ܾ'C|*l8z^oO\`S1`w\ y@ B F0~*l.`RbI6:D+2Uw(J KE{[{}Tee<vxG23Hk"tVag:%-qYCqiHsQwo<]=k0X4b2hgѢ#&?hxx1Yae'VB&iHuiȦuF)k ־K:GڵH|M:d<ߧe .--`;ɗ &5F̥'%ѮVP1K\>נC֢+O@[8sr~"Iݾ1A v`VXϳZ`F5I:&6xujnǒ=aT[ 98VA936"9(~z Eh Đ3Fh#f:HO%WAkPN/IL VV}M`@\"\?M{7v{kCv=灷zA ‡h?q^Y d ݌a88R{1-|'1A!\q! wmw-B>8wp/^2})+k& |GxY44Y+fDK!fv׿ҨB3r9!$f.'Uea;GX?tߢ{-]_>g܄@7>qY1m3~nLq4̤}4+`N>Ź$@*:1 !,4)!>$.pLre~o1 @7u_97|(Z  ѐ%3WϛZ9nPQVF|1MwS>DOy6$v2 ^+x򆉳o?"ữ>9O` 2P ;OmV>Ƀkm1k~ߐi-Ȼ[_yh\d 1}bͽ|{<6qطxuND3ySmU2eq:Xuj׿锩e`#Ԥr1Dg՝;x0n#j?ɃB``Aw=7ڱkygWAI=Š-@J2~A=.hEsc$q1 Օ&՞E\i|%/1}w_Lav~ 7n~WbS،5 U3+[Ygș8B52Cx\9"0-icɎ8IZ`i ](z9 }b4ߪM&QFp$ ;VIـW6L,d̻vskZVuV?j|=C?#O} . iX9 ׭b$AZj ||i۵!υB$5D[ܑ6D3|`Fۨh! A&1$ԻN*$PIT+̀?xOqޣGͳ=òEݺ؄}6xNk&Q5  Wv t OH+Ɨ"E:]Og@.g=4qc^y%(kBL\-5f$F&tzEZZ}5IjZ +(Xr-GrtzB}}޹?SHYL=!ڑ^34\q9Ddxt}[5ifvv8^/m'RXbX#|;|J|>ud1WE<,l29"3 XI/ʰ妡vjik$F\k {97jf1b3)_ؾLsŒ(1#/:q}k-o88џ#tyeoTBBEڇy ^ȁc&Ķ`0K> 'buT@ǯIr'p:]^FvzdH\v3רpܫ4%ꄪ"QI=SЪU/]̟_~yg׎^{鷇yYrJUԙaEI&w~IttD'k65ДZZP]X~~{WvƩ?:qܽwqݶ3_1Wݳcc?z)n{k9$$ձ4NsIzV:d޸Oe/TpèQZ"t\>%K(t^e*oqQZh Ц[o6t$<4҂*<{^.4Z @{|@10OS -҃qZp_CJ:2vƅidkW*@h64"usHZҨ3H%vTHɂ5z2  d23GP rJf0dx때U E.F ˯:y:#mn]x|BSõg~g:]> {MӶMs%{qЀʵp⪂{G۷zLuSG0c6)ŗ&NtR#avlr+K|Nq9 deD)i3[ZfxڿOHvJ((Ã:48rM(VNx.ql;A|7 .JoA,o=h&ؔxve\`I $~Ͽ`^^1e:w8D"nԖ--s9:ke]ؤ",@(hR!#aѦIpm `?zK'Kǥ"n(H#5h}TJ#j>a'V-Yg8 9oK/5~'ן|78'|1wjՌsg΀ @o :mfdf}fv!QtrU3&O.SROHGZ;O+4C7-9Mv̆QmK.Xz>!Ê%7r~nI^_5IW_6LO1{r/_}ʌi~ 4K3;D$mF1)rx C'tq]9{r&Iz W$;qTQK:-t>x~Җ^3kޝ\vBivsg)xrg)xrg)xrg)xrg)^3UK^B5egN63elQtrE*ɰ(n5ΐ+$%=8ğ/00ukPc5U 9mūME}'"^H]KpL&}ߎOp]4+2{Ee e eVK Xw%ձ a6,7]{9vHU|騛I“B?} ȢfE"E5,jY,Yd>Yd>Yd> Uq<9q"S:pޘ8(Vo>oM#iav-itaiR,KuJn8ϗ:ec"6)`w>y"/=Kx8"Rj\Pz*+ըK"8>xH~WСH%gmYނYFĚ^Y>hVbC<(WpEErh. FO;˲+jx]bof+fhK {^RA@PME3fKQ1I27v}AOX1T5J.as4};jB|j@r8.I$qOߡ8 Z^c@dF@<Ӥ ciK2\j~QZA'3vaS.*(^@NO8Ţp2Rӌި4*="oh6zT_LR5l"ЁԲ.-b~<}~]^Kfs17(lNKʿBrD"JάVK8^ 3ޗrɋGbּrئIL>+u +;C;xH %'ȿgF,5݇ڬZRh z]_pb gϮweG=~5=C|w=uZܮcv-V(7|`5;i/brpGKdZ'kVf:sĂt[fJՒ+C*SB*!..EPpфYOJ^ w)ƒTHZqaoʐRmSm<_%O?ry-i0s3[ GK[d,kwv\ K1~"uk_ѢzˆtvڒuwѬ$> ̙MtiwoCh`kOT*M8I%4Ma,ha4ut4Ng4Ebwyc|@5==p5r'Wm !D)Y/S(Ru..;')*$2USm@k4Jk} zsͦŕ-3y̥Ġѣ|38C Bj4TThN@J6D G)4Y!?txX~rqY79Ӳ&( H]#I Z Սfܒ]]ͫvz:Fy>X~hDP.B~HԴUWVU  G`,B W+enpݻ̔@;E2Y-Rp8 :X4 cVlV%Xh_BpQ FT B JҒ ̸ECGH0 J&t 8gr17:5Vg(XU*jzl64D(x?&: $$B~>e3g6ڼi5-m`̍lĉk=[ X LDjijzF] Si41>hhBsOwKi-]W\ U|<N,v-]TLJapql\u!v;a9g̨48{aS.['*ŰD$?K>ϱEw߾xSJFȄߝrQl|js ai <BPhRygBK-*)!{ho}LGfK/se t=M&gd. Ov';G-* *ɚ,sjD+V:E)M /odߏg6ItDtODK0%9JFrN9 8@NGCD$ƌ|S!ԁHG;< 4{;VIc#qӌۂgة}g3Jj>sӌ={{>'VDbc[䱃v;EA`4f*1=a,GW1"9#XɌ@@FO| _hEQ)?GoWT1uf3X,&]cH@:VarAgDCDlX! J|I9z؉V3!koXLz5I Tz?,OYfIȢPj Z X(-ŬT`"I0ꦶ"Dԟ u/.y1#{O>rɉyGn>v:S'ЗvyWuƅ'x)O+: e$6M%7l463+!18*0f<3812hx<QG<-1 btpwvJZ]ofrS˱'8hX ;՟ydҝ;8.74ԩsܮB=R5 3ډS&-U<,rDQiѡOKҙ,|}k"2B-a]S4s|[W>-m[ ;q /'s &㬝̧ae=/2lhdHf@,VP]1E*:ʹ'& 9 G3>lưCWNG} Y ވvzp,03砏G54al ^m:EU@町7Ɉ1i{6s,w{C$]J%~AشaIQAQIDr[k#V{kp#c!Nq6%XzOL6ƬՀ qQXćNL&$""'@g1T R4ZP0T+ 1”HTHJB;y(lv7Ll;aoIoFR1ftQhF ^K7 ڎspyg'?jspD /$*cQJbՄ4eMhUL®4e!M~ǃ%ɸ-yrs/;W[H>qpƃhO֋dbYJ٢_rUce3G"|FnX%f`Sby\u1 ||t`4&)QKj6fyoaVF.8NKf+$`J{d <c2`RyH4FVK !?o[ifS= {8'}jû}IW) T.ԡ-kmx[4+6Z:tiUOC&S|Ъq`:7'+{ <3QSq-^ ޱG#2WLFyxw܃oyy"O LgH$ DivVNQ,)M{#edhxE.JO6]rUN5pr=UN|&H:ڲXy<2VqL7X?,֪<}死p}"yV墎O.5*t()(!DkC`FeuAjLIS0q|b '.L D`fQp&/rwi'A -8 xV6:P-%  qHʦ0#QPQ1GQQ# :Aq`E<6v&!AE%2VnWN1\:r^M%`iyO30 -jqPαxJ1:ލbYhkCGnghe/x;=F! ,.\*Tn}H?!pGJŴ(Z1)'H~eJcPj2hU`:`VmTϪ2sƠl*IiFs9_X"Q~!=W i_9Vg zKI)Kh`б\ꀨuq VQ)$DbŊP=HCC$.sY9G~dٱ ?ub^Yi`cOYm=)ó`0lMQfz8`O҄`V+ 7>hHk&~{Uua{H\|]N6wݯ?lجVl2~GOSeѪvvZS&e5M@b^ VW9T3RGzH\ ܈~P)m=eo}ޓOOMII~t_=W:rCY[߯1c;tymePm,|?Ѓ~ &ҀiY[z>Z[s[g,5B ^>xUs;Wԫ+o{.rŤPl 8„&DMS*jM8!vq]䟪E\<#e6+`ە'\9A>&UV=Y@hc%2, [ LV?&zcL~vam= |99"|CSTL^q@V'.h]_;YE҆qƘwjۅB|5 ݾ5E'O8b; ];c:& %kab3uVΊXqO+Z4 $Tq)LhDN%{Dm6 it"t_TBP1iK7'o%)iqݡ&:܌힕i{M5hg\ [1|fY,عC[ 11\511)OIM)*VKSQ5RcI%+~0;U sV9"_ծEӝ=_?v r< ۇ]]ttOdY[JejNi@|Ru ^]k4@=(&(1dk/V"m-fV6=wN?Z#q=vuMR֩e6,y.ƹ.(֖]X.W ^ƲLu`ZA^޽)w :l#ߒRWPǎGSNw+Y.QpX$c&cuTѸ=ӈ/=XJwqK_Ifcr2Gٔu-_7\y 0GiGzMkZ*9K(oJ+rϩU"ӁMWńM4c=<[Uď1O>D (0Fh1W:喆׾팍+0-l?=^AX$+"+3KCsuZBshh.v6=nB@Mz~J7^zw(ʈ|A'}3ǩXMp8gœe=b#3 7إMt9|UQ"YfC @"i0٠ ۀbEF60 j᪲M\܃'_c8 VgFQhW&0"U$ /h!OX /N)hX)>c&zSЖ"Q _0r 4{=LÚ f SD^& tF.ɭsi\`%`i*$JGaN K~A+?!`tx!D;"pbc|K(1eÛ_!G`noHok8h)D1`Eora,Lқ{JBGL9Yڼ8cZc 5#rSͬi:ժ+u!bFL?iRYվLC0^ Et,VK\xZk>yJ=a=x"U䃷9|EiSK[jp:(5N_".G~]CM׭~Οjf}E+l]o~ј0$vz'cPF5I&w3ɧ3wx:0o?c*d;rŗX}(??I1|E]TZ˖ȥWcvg'26Ρoفr7Ֆ1un)LB! _iCU< hy!6ڵ3gt}qݯ>6cԜZyqAmŮ׏=m^V`e?zRx6c-!9U^DZWkٜXSZzAǵ_!ݗ8q&\$xrA#5ɓ"!1ߣK4 *C ՗ҡTݒ!;8T Qt.#}9q-45zL/~>jԤI-\Yܠno䎽>4gN˃giT;;'71<} 5 ugYY(^/OI9t"G&([LHȚ7/氪EE!WeFs?W3iHJ :RW?=߲}qy7-1bf߭G7sth91gpzίsdXO`cC=\KoDFkdfyh|g|PRjޠz7;.WOGDW4d>DEMJY#(\L )\lRXcSj_^Ƣ%/WãW"*De25E3Q t8+A4< .[Ÿ8̦t'[3;Vpw̎_ا5πCv* \v#Sk4z-&@rAAI^^}k@}$ss]QfjD}l3'n0 :B&xB/0 &8Ī |7C6:K: l(rit:Y8{qL'7ȉch'ǭQ)dm$NJ,{Yzd} V8]^y{d_SOSL=y 3aE_e`HMkt"SnUXfBIJϊ1=CAVgoO͈j$g1?)$l7;/-5;WepUTwNդl_XTWoԪ|_c'AS~U)YA&Q(Ń_ջxn{^5Ը5hc5m57beEr̾qnplE֏0Ǎ`JXg^cAWzOvkY̱th2D )̮*2mYҟ%(li#J% @l'b{NK=iWxa2983=Kh /aOr3N{,jz][=mzAo߾}Oa'Dj(b+] CpW61mbth/ Iddo 2 حB\~@0`h5in|n o\M֮+m~L\?Ho6zA Ure ~e p(h~z 6t[0wq*n͟o %u>KUa7r]*p 4kgk[$Hգqẩy/žw<ܿy1UC$uU Z)暏:?] HO+<_4!l;x z4Z`c.TULTQ9a733??3˷0W̬"$ۍJ\]ʌRk6J/ IXEg)<4uKx s{5nx3w CQdz֯mFDB%!yf>[}`6|{0n+^҈1)4`):9 'w%6y9{h]Yܳ%H\)#O<-*Mj?Bp|㆝Ἷ]w)V7m6HFi|<&Ð3;xbJ.1À'\z&<;db[Z^Aƣےe8:(OHFl6lwz;vuIB<# V} vX "{ýgaWJy`q/<[(Q qfh!Hֳ1 ?`Cq"2}@P`4n|,<.,~=Nz)u " &EE:%li]gIϸCiiμd6 6OϜ7׼%ٚun-~jdр?֔)gφ!&Çօd.H5  8O5%&ö!EÏ{QJQ} ? $^KOEr8 g\^=,a4oO%,0 fV+!k ]c떑R48hF +k^MIs[ 2~:@0j8E$6?hemeJNʹ^sm\enV/8\@F'5zI5C#bV^t7?53ѶS3FezTC+]$w+C..Yg}Zԟ vqC ` g_I?cdYӯ4೉Zw9Zַ$xaC'3o~߰G-3ey'ÿ:xJ]tߧ»6\qL$HI_k|7 J'#z|)^XWyf֕N !˙u{ fܮM2XO@X^V)ä\V.&dzuudW&׫s|^lpYݱZLRDC`oP8#-`ױXO) pU P+ ^Kf-6i|U'qI]˰Uf{*K$y:3583Lz孷3Ȫ\UT{J䡻qyp}0N:;u⪻fx uhClZN:p>$}_ 7a?9,U!abL obK 6hN -<;y ws\%NxBݬc>KVYCOȽ'G3n1]be2Ш&̧W0!Kya24#/.}NrLH߲e?jqs{ xO>-7`f 6} ٳL>`4\ L,;@NѼ s]hvMi۽{j3g3015Ǒ?+hDG1MWYd/)CLt]a} qtyQ ܶ H TqNeCsJvq%V#CȎ ͼzA.9g,/F I]OWtkLP̓ejQյ#;Y>dx#G5OL*+:d+OxRm:|g!O{Q? $ۅow|ZE@Q+|`"5r?Ώj)NR[N|U6$jmw#| K7J `{I\̊Q^tCп=R[( iJyx'jxƎ=7v,@_%PEJW]j3)zr yiP2|@מid'gx Gt\UN0&baoL7u`$ 할81("(Ĵsdҋ*Ko@ޣf>koN9E0_scZT]+!1.YCh'I/嫽EqӶݦ쉓 =Zذ}/q>=fo 5D8KϓفҲ=|9SgC2!W^8 GwJ䰜x"4afk~{y'Oϣs7оv<0 XT]׋z#ڵ [$&:3K9ȇZrUƠh6ZV hډN2cwxj[V.[+ʝ31СӚ~ ]Z%Mdwl;鑏Z3ݞW{"EOnO훷k֌^O _iӲg%eny˂|텅Lb`]qp#y4 mN?eS] Y.,jVcQTh݉{ܾ+'p NƛrgN iCd({3PLL>*܇_֮w<=O4}" {\, >E ޺=,EÈrz i,Š . &) _9 <"s3p`1$.h{rh2@HhՋꣀ.\?|$?{I"dEupňi/ ghXEH7RT4&ZNCmR,4Z"Sp Y NA& }? [Rcl {\ W~U*AFC^@;YփZ]:tcw&^'H w mQCZVL܍Xor,P2fbLBΡ7աw =KhMc-P|?ǘXlKZ`}E쪀.2`s:VH ([PJBjhVR!9bX fbvIcȯ WO3[[3 <N{g֌?wwr<gJu5]VTKfQdSiG9l::T8s̪$%eaSU5&Mu'$UrIgb)ǔgd4 d U" S#GꥴtiP^}qR-#ZͶWke>GOj;1;CxTݟa޸K?e]:'XW Fv)/z-|K:t9 tT3pYmQ@Q!8eYims:[ epa76c2.3ZitY&G xaUO'ZY)]u #RHD)tT/LߩC0$jf'Y s9Iv"THdPx(h(=\8'H:Eqa0[1CF_7b/n?~QkK:y˸{oN[9{Jl=d/]\(* ];A]7sd'&Z< 9UsZ'*qc*dʒ1G ZM`w!zVB iP1+.IO X:_Ҿ㊛gYڡkBr7qKā/fk+ȶg' _K`۴b=k0qBH~r>! ե guEH)3wéucOj[ݘfϖm8K ™9y&&t2IHq9Z3bəUdKAxWBKq,v%|C't2nBf]VwZxb|ͬ&Ye8]ʑ~GƗg[y&g…i)i|s(}\5;vM޼3p'"S-9ͮϝ/RNɤ}Â_/sN<f!ې^π*զe,6;(zD)HIM)EOE o`XAxwR2Oy܏떾]xג$!_L@FGB:C&}.OYقRIvD:4 &ƒBZ)H!߆:BYD }cudm\WT0j3rs5.!g@jɴ.TT]U;aӢj'[F߿ ͯi)DN'QP h ]oũ5[x}h i)P_@}{Ǎʺ}PcGk}?*v}}gF;uژ[W#=KJj={#BZ^.ZgmCFN (T*Anz(m6|x(<|Y # G[3[tZvf[0qUF.տ'HL@S!8]ʵURrn5J(h=I!L=a$YE Vq<޽MvfwmUf&~!|)3y򹝛<Х6P.]WKT~;$~RrR0uâ'7Ѓ<[:'"Z;A6CY !%+Wh]\1=$k4a*&́tPEC*dZo"JH2S"mY]FYos)wN|P3au4Itɿ ^y#f3ǮX<ٿMW -^zO33K3Jtqq"pYٙfggꀝcӪ8 ,ZpV)?:weݎ)۲KށYl ߸Du{nӠ$)KNQXC9X=gH(ww,3'b3h״p.#%35wCj A-|YXu=6h䥸炓~Ywuz^ܥ{-pAޕcݰ^[)[ YD%:ΩSD9ҋk爭E.dzn6`B+ηb'ۧyn2Hڠt֟SV(̄x?40>5'z:,e1"͓_QG㱁 u:NdS%hl)T*HgR-o" .po{ [+7u=/ƆZ`#3wƃyS$vm5}z~qp˶%ߒ^=@v=UW&?w5a-*Խ5ߏآP/`^aG+Z5[XPlhfJN J\in3j] _ _bN5ꌩW+p8:HQ@QKQ: HM!5¤PS>a6fX-;-0nī'P&?]:왴84G+EԮӬTr;RNx9PcRHՒ gT Qkx~-@?ØQ |G"沃vrU\N'O xҌ(aIaٽ4-QK$/9eOUw=o}g2א#! BHDD[.A@A<EcQVocE<t]\7D'_ޫ2EE]^8cwSk⭏_6tF!]s 9}rn=TxIX/lX\ & %$d|r`2h26A6j2h es|u2i-9O5D@V]]Cq¼+V}4C¹S1n煕g7!1?DnTyh6%  k-F@jIixoKф~AQu,IJΰ8!_O+~X~፯z~ 3ps$3b`p)-D/8}Y\|}_r {Lrr&P HH1uV0F5iF2PPebiNeS+A .9t3e'B/WBBL#4_7 =:Jx=ÒQҤ P6Ҩ)Es T]V5Yn#!%Y?=zȒGxQ2d>Ho-9} A%nCI3H챛l60Yp91 jg=eޙr|g/ {}yꠜP @ᕼO(Ad~G(q*yͤLזO^6RNr^ O9ɻݰzw ӁL ;n8=\bݶ^W% Bn)8"dRښS^%GynQ QCw)\,uZu]`bqXM2|}m;"8@`4nxL^ e*@C{Bqgx-M72Rn~iIm^SJ$MJ,;uÕbmBꔨ^W׆("R''omxO7}{TϜ9q% 1Twm{ݜŜpp[)dPȪ,Grn$]цMIёXֲy=Z5YO WO s._޼jzo?wmsނX.oQs kGSiHG.V-a&NHYQ)#iYQ]R#"-SP37wbђ*'T|sM77~Y@P&Ci4 tLK> W b&l1\>ϴ&~iɱ*ppUbbh237υ #SZbshK*D{ [Rܦ$5Uk8ًtgQZWbY%bW^rCZV3ܮWޘ`;ן~߼~]wݶakKzTva|3ܮOG փKYϿ^(VJ+.52Yd4<;HLQ4zG)pT\E颬wf&yGչNeW:^ݼV:rǒwqӲuEUU%UxӛRsD! r@ [?Ȭ[J<(Q:yy"h X7kg)lh`YdKM*Y 6E/1e<(k\$|w>-SSJ>" <]W;hp d=swQȒ^KQWǝp)VuI#"l$E_Gg41>;/݇T5*Fjᗶo>ͩOՍJp#EoE qV['pg_TU Q3wWUHs6ltAS^^ě.ղv5r$~FPƧȩ. _~ev\5J`u2#=o'~"_u e;>i9r5w*X9d*܄-iDœ(7!Aʹ@Imѣ~\{Od?`1 ejM&{KDk5e bku{:^J:(dw$y‰y[76eYiыh$F$V,oHWci 4ql@jh߆\%UcZK0TCjʆ6 -yJjk7 vPZ).eOmv7iuɆdIYYIE`]Mez1b^tcPbNE8j4+ã.rȂesv8 JD̎r"'Xx 4?\ԏ^A75.V4zS?g0-}ƕqUWo?6]1芺ǕtUmՕ'?hc=Op=g43W"}Eq+ᦱRNZz([bL&"G%yQb&픔7< #T)9QF_Y[8E1)N/ $kPFQlY V={O_X|c/ȀR_2c6%hӹ׃Miϛg][ٽQhأWWa/ިZc@nm126wFMB`/iU^J ͪhVOz3 E~p.:Jߎ/k v_uӲ:d[x;,L[6&Ւ2-epQ%z=' +an| 7pF>إw δ5 ġ^w[^ڿf)ԡ^~mOvyHFd$Zd>9e) X)-*.@:U*ȿ y5kݏțY.}cW?OtIr 984t.7u{I!i`׶v`kI(HPJGL(&9CnyBZ:ujq V F],6\+׎|}$)|-ɪU+/ҷno&CN߶5&ӿN]W:pʞ=ŢЈn$BDc2" t0ȇ p͡9GkTK ~CeG [j)qRZӾeQG~|v쳗3B84ޏy8)4]< x'P7Tɨ C%X{T\j 'l-nMiՒZh,?"U=!ԇ*bWšr$9rpfs™֜#N;x;A|δC3}π{ݪ;=߷4o5vIW]3}성woϞW=瑈y[>am#uуo& TF"C,dTU皹DsǸw.TNάH߂Xu8ڭe9*W͆D's4EkIgMfNCNII:cKJr"&.R )@C:EHۉsF&d  FRe4F3q@ߔ@y5:(vT12ƒ.^v#\aqS5zW۽}V>ldsc zF 7W.>Դ(~Ww}6!KS*p{<ΦZ=GgxU}eUD@*4w>~me=.2!zxrYKrSo}l^ZTM ?CiPF #SRguUے**PKQ>ښm=*-+ZȥÊ*q*p)\9mB2CU#G{˗M~ٕNm4n\EE;9ֶuw,s]30_NzⓓF[`?I'bD9JEER 򚠦W UZRFF;QO™pgO>3XT#{b.U(HVu5/Mwǎ)ӶfQQꅋW]X|mTP_nKGN*שuEdHF #&ï9m#e֞^/]YZ&yhf8^|*dxÍ<;a=n=;2vsk:=^J:p6,M`Qe:W.1%y~{o_{`;4lu!TZiВ hdhi \KEH:(9m:o M\ pvGL͢FY˰u;GMIo֛RmɁZos].)8[geAx7rt3Z>ρ O_}Gii j[SV+m7RsJp&;vGS Ggwxn{@ 7.+vBBFCBnlp}.cb48 .7=2k YׄJgJp.TW0HұݽjV,ǔN{nF<\mBpe(Y!屁@~s\0SR8mVC(wFdYKq9s&i$pFZ\](2J,F视}?veB6wP2z,gȞ¦kJ|D@U[Bz6Ù^Zҏ{虿<  |(e뵌EjNM)dפјaS Vo*0#Eq )}GX\q!4 ]H?81;6Sc5G-_QTB:.>޽&+/]N8.( .KV 99E.yDZRڐ4t芴<ATݙQOCC㱼wO #2hD^ B&G5?.jQ A^ou?'6m{1{SA6OE9 4ĽP`I(w7ٟ94^ uVz9';MƊoI)r d}>-0sy7!}4#՝""|d9ytU Ǡ* -8Uts߅73黖;WBd ~AX؃|Uo~q[!i Gv:v;N`pu|.B(δ5[Sw$߭ ^1-6[ \r\/T5Ƿ="KbRd9V۴6mrNP­)i矚8S2:3OPՑ^:sygH7 +W_5Wq'Fcc*$=ژFB&it {V,CseqjG4SiDoƼg^_ e^M?h[Ty傼 B4˥5ea]4Eu%5*m2˲CΗoAXzx9פsrd K|*%i;uC2Ot!YJO]&[&)]ǒ.M45&U ,@bpRMEce'(Obn`2DS V#tVQ3%e42f=bJᩴ21 TNxƣPG7ltc[XIs ҰF'9db* ӆUZ-гjTtP SRO I7Y%HQtj׀UAINgv:6VN[)F#SRKE0䴕;'_|R%z:l7ޘ{0c+:,k>8Ijǟ޻x;T?HzS(YiMC˨qů WDQtfS3=*"kO&^z!= A7I(0:(^ޭ\* I)C zW33(ȄԻpiF2z'↽)9 etMTfʪX? HP_T1?G>F >H _+VRDeoOʱB}T pߠd<=Ny]jK&'W8lyTǓ+ xC$"LL9UOEFݿ_4.|< AxI7^zuONH汴wkA4*Q)!P&G6gqqZ `9}JP:l5 \C$*;âJ|OQYb`W 0k!(u 4Eh/86[ A?oBa=?0sh'0F„ ~" ? k(^ 7/Л,$ƍǭ\L4Dj~KN=͠_l>H?#uy ~ aJ?n;@#~?th9܉b'SJ'Q'|FVL15g4/&Fg2OR1 ,! \ܐH؝=^#As씵%EQZFknIiy"́L=PyE5S > K@!yB8zԝ}nyρ ptL,p`{GBODQVc5ٴm)o3;(e+ȟ;C(˞=Zˆn TkճHn)ޫ~IɠU#66?r"z>ϙMʃQBxwKQmC-\5\rտ $L\nh 9h* Cf9̇SRa>,<ؚiuV&)<,R;Ⱥq`6U^wwša™q;;F0)S'NϻMOD"98fAQ01.Yz.99@Ǡrh.0)c9`S6KbZw&^";Ǹ ꩋx@o>[0osN)|ex,D7Zl8 ހRH ^ƕkʥ\)) [HՠL4P&";laG~QI͏ZrBx9=?o ~ z'7uYM) G,khJנ.UNR2*rmzyj*H^[[d y܌GybgJd`&ii7.JXPdp6) eLVЁ]Z,$O 5 |}€/ w@WXMFE@%6#?B$^D4{ I@Y7(#B1F7~G6Jך-[Z)44M.cHU mY+*)l6o! !r! ihz;݌ۢ%D}%oEUUb6Ęy%%ډa5G 1cHQ5و4R#BDM9n0 i-MwBc8&n1  n6lݚM6m,9 g:T] 6-\HUJÄJU%]u+'֯[kl#E!T eU#pȌq d˱Jy*dȖ3EdR2m5E27B@!"sdũ)]8j˅2UcC}bΣ 7_4mh뀇j?+sU L+1nZ"DT:Ԅׄ 5Q5Gfʘ2WƂ7q5W([>=o*9T3@Y_værT3!(y|:iHs=F`XZ ~qNSjB70^8T`Lp' aL$]MP ^H12*@B8_ 6A|8FSc:cĭo%z% JZ,]I?.\f#ZTIdJ zdAf͓vv9(J;2Zhh81FrS.ffH<H\s"|q# ߟ89FM*hNh+PTULmt'{ ^}QovqBީxy̻_v>ٲWUlf [3L2m5"2ՠ Ç x>Ka !Uoz ֐$V xsA1%I|YҍsWDH1X=E#h| VX2#u| nBj.5i第)$7&E5ч%u^~Uo>R$ژ"AzW Gr\"=fcmNz?ˇrZ~Ei$ws3#m_'(IxZCk/i2 - /7:`-]]5=OH #kJ+DPT~H1 XB&]n>nB< oA1q*3ϩ4Z$mBЫ6 SEkJ%^GɢXwIӍP;~EA}RD *yF|R0(Qk1":s (pQ*i/GwaJW'X(/k]"4>lTIB=hPj*@ƈ_0IR"SBhrsZU4U(pIe.,:Vxy sTXDX! SV!FJ*F`w2diE(Šh\6)Y,"J! 3&H'2V[F8na~ ǧsEO ?)j\D+@` 'dU1^8J훁P᣷` 'fR(v-)pP]"ܷvXؿMHk3F`+DEt<ٱbp}e}0+AH]XB pUㅃq->n!Њ PI#L@WE&*ʾQi# ɨ`Z4|WkWţxU Ve@82 Zг#E?;8A2_46AOҸN!l) ӽCI]^(¹rl`$F̘Mo3983MRZnt!vZ f~TC[rgay $[N@ H+, A Bu~q CD LQ0?s\£!vGsBIe|w sSco?j_υkq9q+|~1ǰ49ϯ"8dڧ&k-[ L<7QnaN(0 #d `Ǥwxs8~+q>GG~oa2Ȝ͂H@0齿[|͓%^kI0'O"ȳ/I4OI<ɂWIsed=WIsih Gy~BWlWt3mk6Kg!XeW43?k8Gؕ ԟ.b^ܭ.s#bw 1|/veMi^e!78L=qJg֮[CICuЖT,"WI!@!ҟ=p|*,K( a VH=yp{`8DY\^EGwf~?dzޟF..Z|D{898BH,AnQJٚ `&d[+ $ZiӚM6ם`b{l^$/,f.#*`e8leE&&~߾#X#_JQ3F'.j*~"=w4^ 5qtJ,[yҚ1[ڣ u'ؒna?3e jW{ՀIk qQCQV{QSQ7Y:pM{Y/A%.j4D{QA>jQ!>~o =v-S/"?s+b'v?ϡ:C"rL s:LZ*fDG>|xT!8&b !]6qCO2(RsIq.}QOF-`t@g4@B}NpsWX3t/A<ƃ37& i" 5sF֬3)-NK\z#|ϩ*69pq۾eA dtZ3nf*48}:1-uQZ)#VC5k:.%q*i_@?_[4f@ <\x D Rviܺm!(n  agy@$˅- !^,ƲQ)J~힨zgS&|,E]]OWg-Hcd_yh9!a=1r3x$8LęXWPǚ&a+>5 !cr˰Y:ΨV b bkcM3TTHUmoE$}ИK9)Bh :M;bWeTT-젤@F>S7yQKY #j8:=٣v!`r,nF_8eSK^56lDѭ-I6$$>~ a2A4* i!PAQķBCm\4 H]Cbq'oݔ׃p6 (o"4BE`\IUE$`6cHJ DR*ZleyFϲqY_^۸yM7\Q;0w_[%YlHtC]JrUMt iAf $ϲYn;9#9IJ[qXXbn,aQ!ʱ'KgXRp2ѥR!,fI b]KЂ[͂*|I^g$2Djx6<jsAx\P!)]xL@7gC_\`2ùP]SP.`;~Il˽,\ ufNc0YHIA0YFKC&|sĶ3'x)\#h8Wd%V\ FM+#WE!l&BdգGPtA[c78vs[JC!fJ++)$lAak.*yuPi$鋤>>W; a\M%\.O ]{O>p4uF'r81Өr\1[cXѹnkIl6 _g4s|jݴ;%e0r\æMIiB-) -=MU *~rmE)%Oj$4NQEM&D@,N9]ecAI[/.WM:rWDp9i){'{wv[-3>L J.X/7'K DU* Ĥdnڠbx'XX`[RyZ7eaLɗoIФ眒HsW|  qY{NG$.gކs 5 tzP"]tJ`].$|', Dk/*NqC&O^hM/a )Yh!t:>➜P(3EyiKy-vH 6q۟HGE ?' Kt|ʼnSH D+a?`ˆoi'r5rk~~s^j ʧM? +jl~GIC>"+"$ NgRR,k ~o|Dr`þ3!S9V,]zƘ٣d@);dXv%HeeB9I3_mO9j䔰RsϮ_SsoLչ{%zEW.%D9QE$v'0dNiAgϢi4VVŽe>m~q9ں MVUIT9$aTiQ.$Eg<&F8&O(S69X\YE8ŌWp%laTpXļpuMFD+wD^ا*0ҷ>;ξ%#WGVu%\jXk,C9@@Б$Yɣ`0G?yP(Ϳ ҷo40u#F NFhTU7ڀjF@CHgUDVHպrBE'wxa5r0 "Tl?O?O*Pt_4Ym12@zJv!T*ji02’$k1zXES*ȋRp*3YApSERy$<1qZ~ |Snߠ BM3JTP] /lRTcTZߔhRͅ 4J /\o\B(2 3UZE pl gH凋}X{(޷N}2Lf2&$d@z ) 7H" P.t}]ۊS2 }?{={9hݙ3BFI]`,u $ZzZ WgBAAıBwT6:}`@sw߈ oIb1MwLt=G?9rȎ+7kUc'etŧY9iѺ^F-"|id3ky<.puVq{;ޥ!g.#wTR̾axet|ET)<\2Zhy 9, fdA*ED<Vbwi 4n^2,N-ss)שrSL"bꬷZ_3 <SY/d!Bo '/  gy ?1[ø&r8>\E O&'FIF_n"6CH [Bu2폆qh*pe}'UΝvAi33uaTV֩ &lmΞ18?1ˢWL8EzY:1}K@ K/ BKZS[/3OP[0pHȱs~&8n1_͚zz|,/ 5^ls[juxeeCr}EB߾PyyiQYmtYeEc|~Go!ޑC/ /қ́BE* ^m-+d?",^neYe.@Y ROΣU299>O#dž.a?6{陣7E-~-\38p}^/k*|Cɱ`gΆqorAKZZU^2m .]Mooؘ9s79"܈;p+ rHjV"DEkYͨ)5P{6'_o͖[vf4SIn\գu ):YYRSYoa5-4،jȈ:1qH:q-yM<%;O`^Xу!ucd,m:vtr=SS?0{q`vnA+?_`{cd 7>϶]'?LWVה-l'uu{u#8=½?inӤd&Ynk(ӭpEC>/77ǫY1.Ɏ 1Iнڢ6;`rV0Ƭ"b%"={6ۆ%c kȓoxC\kV/-b1טl0#@<$Qgjo;V5`6bH/v3b9uNQidfsn]lb[-w [GMHV&*І(B4ZcJ Ke+qjPsVs^B϶\ẳOl62 .W,;fʞukߵk鬯3>`Z5;=#f:1WK ]ˀOh;IF]߄N'4Ɠs8Xc6F#"rgji[[QeJ-X}rўlIcTwnxό=>b% Ҙ=۷ս't׊-]۩`U0?ص Br/s} .CjQTen]LB_/-?ɷd8ݥiu4tlCDSjeRKf5VUtq7kjPyFjR5:2Mo[Lf\XxU~ {Y11cyvXŸY=voˑ߾jE9e/~ HWo⹇.JKOw dY9zl1EXOceE+ {\tB6@Rvb5uR.6\;XeAR0 ڳz޴ty;Ǔ`LDjX607pQ:-@.(].50өU+t !·mڪ,3ӊ`\әㅁ=z{/Wl<41cݻ7 4Ӑ> aؼuL]4R<:,3w FuCĨ  OC%6C J-#uC)/IUa,1pw̬]~?s:ל^Hߜ#QwN/f:un6t ~Pe Uuq5dq塻ن==F>rcQ34*]r9oDψ]މ|cW_ M?ia%ó/D0k) ,h5g]z&v֗Q詵Zj~ϗ<:6 S{H VxzXeTp+j{EL)Θ&7MVW?ed07$77mÔI}'Mn-+ͫmG#arՌo0˿i:^f>.PRD^*NB=t}PztOoǷC e.K*hqɳ!D^v6hJ YmzӔy5`'_ZȺ[ZtuDf5XQ9#T5ci].wg 0"Qo`!pnS9vX q\i5dwLZ__ dHeo3CMב t4v-ׁ4{yU,9/2=`%v& ANwOF296֤ =Vv-Ӕ;R{&LG0KqҕLt!\W 4T,0Be2ZjUQY{^=t2d׬ f;OHl*w qKc 1Ni70R!!J1~5ӞZ8~lI97gСf ̽;z+s8я֎fi}00ʼ1^lᄑ{Ͻ댸mUK(E`5{X!JXw,E%[l"hP d Yŷ̚9d!3g M 7oȬYC2"G$ 1&o%[8.Z`,)gvۤBUrzͧK ͱ C1Eu2;!ǛL`_%aT1 aFy }W3{FLji i jAD%b9̙LCDjhn9crx^ᵜc=[( J}0'?L|uyaiGųwWb9 ~qk|? w)CCR@,ǔS>_QmS)ubUf-i7`fbO)%JE;k,[4&I@HRF_cQsX}W۰pw.,}l]+ܵmeIPF|kok=zov|-h4Y!d{i7FF­=3Je."Qj ɛSPoQ#2'(fQ* 63ڱPkڱlpf>' Jݳ _v%VZo4h {?;]#h0SHIA XWZo&ȼ f y;`Mê lw!oﳻa*i [!g5* ᴩpY *`!KS]ނD[$PD>ݠ4WLGg2Z '5@H|oІAjT5票B*ʥZ2=3I8HCK;cR&jTNT}( = 3hEA0pLդ57I6XR߽O\͗gYF닕7.23Ο! XEs* 4 CyXQ\VgY#sEnjқ#9 _ < /yC"ȔUouwTz7pW(#MqUXRJkZdKAJKAԋc`T;wb־O=zk RՇEs٘(! .A0!,,J-m `;Om28 X4"{njVO?ֿ~={vIjv{%-ZՕsAɄ ֮VLnr$*N=僋A2fHKe`5Z+k`6SĀ0\gf&Ȼo8qk_Lډu;>̜g _IҲ1ǏOgdBIoi?aBi: LŒrsyC(*ܪ,;ۖ]qdd .Q"R_ܔT[D_>^H[rdIO,|='O^dt^Ss[CJ*`nߴ#6G-!&N:q.Y;wx0 aL%gxΑg}ZZ, Q*%,R2Gn\/[hOp2X^bVhjCRF8s+{We$ֱ5 /s38u/q9f%>r#mj`2%,'l]LΛiij昃Ցe7M{tquz|n+'16Hֱ&id3DQ>>X"AwEH/y==au`5 o|ʽ`;WӋcb;ϒ_XWgPkKc +gNgh l:SF)-h"4W Re31Mȃx %gҚ!% ;4œ?`ּd u g&Eou"B:-`-jV% b^uӝ"v~є_/_=yI˶M\=<]d)^=V/';E+JH hEƵ;mRtfkl+Mk֘5LzxAVV\ZNH!j1̄ud9#%f|ck1oG?~Gy 6>ȋj!M.&|YiZf45u;neUݵT-(yB< Jl8#ov֕LMznmٱy⽊1j-s7wUic2Z}4C9/ 5HYt N,I;ּ _R%Jc JGQ5 Y9flN\ -, +>;y3WA {p7`K^л_\ޞ+o3tӱKօW>ڷp x kXq"4meiCGkII&k/=ZT/Z;J3 \]D2BB7ۨR; kGl }o\doa (XpۇөcSE^ԧ9fSyVM-vnm2XxiB0[ 6zEa9š 9oc9p~]<3( ,PdRРUid̂bL|Ua4 OWRߤFH)X\ Kbѩa)Qy'<=p| 'X~f4k=:Uyt-L@^j:X :íE.]Nᴶ3cd:`3R( ` ),@+@BJ_YL1)c߆ymiVP%z,F̲ xj $Lmb$ ȉe0^<,}~N{:Q.B ZCtLٓJ' : " w|oɍpaCJaHR&Ѝo 7?{Lg;Qo< qnHoqmvt#+KLIi՟*(qQsxJpJ%t#N/ГDd2=sWM9^uf\?k5<,*~l7HGO~ sn ѾA293@c9Mz)[φ˗:Kny3 \QXd? 5X3[ymp =ja)U&уH%+А⑫>ad޶YM- |g4ȳ0ρrGKӯ a S*9*88!WZ*098u|y(yDG_Ya~a@?OO` DlU)E_ m*lѪilvxNnE9.AwݺbezY|Y!b ۾3a~F1dJX3{[ɯ\,s~}byLD RTjqB&SjVA.1<$K`MkLik"T»UaPy@Atf-ibirQ|D#0qPkUxWUdvlLfzDYeM.MS5#6β-$h)JMz_|,[:6V葧mf?H@G@#+Ϸ7n cG> |@A 6 p@GtLl`ȫ+l{Nuy1+1E,*-E%c-LR3/ʝ#&xs΅3bn>v p#8oZ5gav#MP8yƎ89Zq9B݌RaIGFkE1hLg!cmR[X\[,XRe`Fc 4%GB:.!JDZ Z cevbƹW0ogĹxeYEpɰ}-~EtM:nd8`ќ3lCibڝkWmIȱݻmmE>@.= N- ,f/eEJiEQBfi?h)=$w1zc =G^>u7;fê2ۆGLae8{@]Xg=6Jap'A<'r([)5ɨ]v*TWA⒘m8zYm=k7ގ㹣B}ϭ?~Hka٨q=^>qkv2',%.E #יܗRzlVX8L< ޵>ʍ`1Ϟ=Gl. Xm]Aڂ뤌z1W+; hqiW|: n oOF^#Q8҆D=RX_0}}بE!+M`YB˖ L} Xk0nx/E=ڦYᘜNt9igUv?dS7[݀]#id(`ǂ΀0EZ3JZ]ZWGa?P;Z\x\.Qs\c?+3PnvR{I`~[]r60~±g5lQ'+F%Kc' B^r,Vx ;^%C¡g_8p̥?ĎwW'd*@:cYPAXa&dqjNC<-Eѷ4`<;'QeLƽw8?8_ѵ+5-V̺s'i/h?mU*$ c+fcLK_͇}WщQcbC*^m3IvX:k p3G̎!dsuU @TwDZ[ -A痣η6] ]߼T>ǝN3K^Qk+;[K}׾~¶ #PQi0ah٬89[S|D&yĹ+[>lO((:a98d\9kv/8rd9Y1FLc ̨84&E4S1" TLHi? W Lո&S3q_~N ڋNq@xvaqF5'3JMpbFbwr\M 46e"RkWpg8ǵ5];{'G=~M9䯜:b"ݺ˖x W`RR}K#h'QnԜævkHMLRX={e z1=TY"{«M~uyk\=~iȯ#zt%1ŭ\aijbĦEv瘱MMxs\>9L>4Md13(އ} Bd#c/KP,RR^A⥚/VBkRfG[6S!/< /¾OS#!3ӂ,6+K㶟! AxYuSnY!7qA>;]~Β9w{һ7ix٣//ҷ =s,OfF0/w9wNZ4{!2{-'0C,0*'5`a9x"%J0҆ܝܕ+p|v(ז_6) _v7߬%+i-DV~-`}6&-DC¥^D92$+.ҹ/Gҍ#HA3˿T* R8$vhs)y3}t, 8PlbƎ}o6|}\e篨5?~?Oo_{N_ wyf/9I^&ؚESmﵣp!/O˘c Qb)-O. h5Mlւ3lM\_Z\kOd}rF#-%mE:>aT!YeR2'6GB*xP },"IQ6F[6t=OμV]dR@cv"%vJd;́a3yTXvY79BEٺtA(mV!RUV9P诋duܺȥ|I?b C_!؛R!H1ope5s5wdYwI{ɪhckVw?ԭ{Ϟ1oYXIk1 >%#A>$7.8~ܑ)fiR!6刭thסdYwu3oR{jE}55 9d`#8bFD,%i+畴RkԡPQJ"g&&]i9oȋ=`A(ٶwɇl4><+ҿ;jCE,7{Sϻ1x$bB*8Y5zѨӻUY "63ETxkw-+,7Z̴d~oqҎZ^\\663uQ%O;X/ed@'~?'1JQF?L#l2L#lZ*gnN8E?`r0D}uB͂b2P*OHk9 diOi~!^Ls{;;5Ox-s$5vhA7`Cz`z|qVE$*qM@WR1rB*VȈȲgrX~mMT8??%% c3o}7)d#3D߿B6} U\t]=ÈZa`2\!Ѩ@+]MKd=tk3f>e|@_!L2A78cr/#XzDEh 8H}a^I^cYdhҽfl2EEouEIqI&:cPRj.qykK+G] ij3ͱ"dg鉳&ȏ7бG=HFSeM?ܰrт>{tצCY;sA=ѱCmqPzW<=~ A/Ԁ "#h]6"'6F8-SN%x1ݢ K0jK{l}jgVeW8ft?G񓧍0,@Glau:;@FDDE- -]-̧xh< I۶-|CnVq:0U*&OU=$1E" !|H}D@rZ`ܿbe7F3Myzg5j9h*2:^($vwk(| ?372KȠqgKVϛfkX=%ϒ=2QW-;2Q^zծի :RZu5^'7 C**T ؑV1Y#/Y[^"el1D 'cRԏ_6-<{qi{~E;4("QCL?2<1H yv#8PR.iYW]ĢS:zVd30&LXŘFzʩT,n1٠7;~x ΍3?V=?yy/زkiщTۛm/މ~jcGf(o:la tzxPA.fC<_y~bw^9DssAȁ$ ]00d 4sJlj&4-&ps%77Eg<-3;_:[rVXd^:P8"xlUUvEL1$PF nE _+M1@A*]U]6O*cGR)5J*@ 5^01Ro&A4~V&O1`*^%B09OM=q-T|D Fj4{KdpX*!+ sy}Ԉ9j;wWc/hQ;44\d%ne Ŋ5yv +Sc꺈2=~!GxF58@13$f`Ȣ DsN4_ȉV~Y6'Ѫ=Z']ʼnH!WCiH)@Gďǒ D=&V|oMF9`X8} jǜӃ̂ףF\;hix&7#ײ6wo?uxS\^EnZfQZGC+PqLEc"u  E]{cz?37?uSTT[*䤨D*ʍK';PLwSA8UB Nokq,f^aWٰ𘱒\વ󲇍%oBKp,9g|>1zU9yqI2U鬞,o0dۍF_4Drt>n5.ܥsL\;E )) b-XHa媦^wDacO]5~,[g-`HF-j&NҘJ`YL^rG4B}D4 VtC\y-aH܀B2 "4xHx_$D߭RclqbPmV6-/W9]lR͖:6^e>2t:j0V%'k-'Ž]6wJCAh Ϛ1;8i=⧛O8z`Sc=ʝGMXCBiy4X$ֈ(zmE!yGq $טWujZ Ţ|A5å08 9: B7d()#uZOMUءcZ!z!enW_WO#ϯmǎ_´]jYt1u"??l=y'z=OӞMr{QdbYV[˵Ҳ<wv~כNӉBEy+)Dy:TVOd>ma:Z:5~8;}6XE ij8Γal2$USS^p1Elw-[݌VCۻqG5kN\>4cG5+fT43%gԿj,:C2`dPpR)Zˁ^d2ZT"ecHiQAfCwElOWHԔפs& MCce Z4KnzTlA~6Smw# itu3P2wZ:$]THjX߱|Xo0nJ`cɺ feCcӒ}CYXzI&i'Ǜ4cͯ\GfPvĕ+Wݜwg\x%.v>c.lH#+1b*^ͅS.ĖH󍇂+4dv WñoAїd87~B{%ֹ#9,[M  W9+K4.;Fm5*,;ǥi#Y1fڡ?UdWr*B^~AB=̠piܹZfx=nj=_T5=kk_S29k%)k1W֏zjns.]WϛG'R bp0|f`ΑV;[RNz,1:BEa]DA˻Rq>\ShxL!S=W-5̎~CV-AL&Wڱ,BŌӛaFt5DҝVd4.+"J go.Ҫyf9`&{kLA! [:`.Mח o^I4]PL 2QcUg`l˴Zuyiu+Fz.ajq}Dk+eCDhQ:%)Z:C/ 5lR]z  :ٞ2!ohءЛ/np?!΢k_3x% rlԙ1x磻Y"W(~ 1a~f)1<%]o9m amw:x9&\_ qv뽒 C 8}iIɅ [olqY_~:㑺c<   ՆJQY4^;TiHf̈́Z Ok+"IR){0N)k[RE>G{p4i1d"~| $ 9g Ұ]#r ZTNqb]3X-=AIeŒ@O>TX }|(ԙL䮁ZF]jA-ee(?=7##= 7!<߬+`;:qUqi![ L$- [P5IPKe6l#D ;)_to-q CGJ'ø29JS9jd8M2!bө SǪUB aɀN,{$I #z|<;ݖ uZIHp'"R$KѠpqfd &&io8eYm9tݳ#Nӂ:Q#N@BF)R]Ę3&*ܔSaRĔ U$l uKnݵ#>bcÔ-ThX"Uu,Kz'!qtNjJ٢njQbVJ2xacpأϺv,#W)H_RTݿGt 5_^1>wgz97{wxY}mF5Nӽ桭tp? + 2]6ӱr9kcnLA ET:,q,-S>ЭVx|ʞQؤ^dh٘N >k\swJaz|kg͘>哩?`}qa퍮!f؛8}r|n$~|{VVF6ݻ(Td(ʂ4KHΣb1ݳe[Z4Tϴ] aDŽOln 7|׶ 2́G34 ,HbєiqCWxK0U^^mh& XE&=,Wa1M 3S DDஏ:`JyLHB3sYC|*&?|T?~gwfӀ4$gUJhY .E4i"(6D@QQ`(R>xNgII \^?zV20˹63pUq7 `n͓5.+/M=9?Y_ŕ'}SF]G_ԻSsG괣i罻= @ۃ0.zmn#\\~ +ߝ30NP׬qeЙz@qHPs)>" jzNG,)pw~]iVzí/>W ' gnu}~DG9 Qg?j۽fݮG<:FTvn=60$`0.8hIփp+ hrz%7z\Fϒc7prH^~f0+Hޠ?!ĚZQm5(N]k*S֤:Ɗ5ϙÂ9*=4U&>%+h|^SN1WUa&\~vvR9)NÉqiyG3dDMOOm`W@GR.q$E-p&Ѐ{b5pgio$+ȝ=.$=P,͠Y&x涃o_8g݃u/۞CgOxԝs K=zU&; ; n!6'72M;|"E蔼r()܍nDw`6;١+vJ/:_MyEsRX&6xmh۽i9pK}Pdr?ob|@X\, 8OHnImNQ\R*c"6  a<"]԰*hg~㵽=s mꛝ[pϿҖ'^p6֖V$ΚѤI iZ~ ]1D<Be5:e%S $Ɨrqv.upԩekQ&3. ;ФU;^s;LD3q.7q:y@h*륥m&. ߰J/g2oX)u+6^`EA;]"rQ2L( :QfxHZ/8ۺ>z#?x/jц?:Qk+٬шM,( &3LMO $@@*'*O6: eQ! &::zG?^+iEA WO0X4-7\8p(M:%'M΀(x.Qyjϩ]+Nu:79ȍپTֱ:h((/-ˊv2ņR0hjQ6gcṣfMBC۱+/Ѵ1fo8U*(l:a2\E s]W e… EY0f* ,C]t=%_^& ]FUhO5t^Gaf 6s0G(zfMfoRwg z]5:rf#VVlTTNG!ap"&p.:)jGVn56 @,'\>[78^!2&t1xΌH{ @9DI pI;IN~^#T@X޹ࣘcEV煜|Sg@yНėպnrM?k4Qؠӂ H*Q=Iɿ(l$ K?W~`9{¢ ڳ'K,*Ir̰, E̤) UsLʡ)Vi|ė# AA}uxdO;, nZ)`}1~eK'k2PI4{ sp.ɪBQRKi.δ˫n+23OP˖Cwu~kcVlrǺv|fN}ZT/Gz< C,Gsz\E8xZYPX@eX X+K% 2=b̢st sM3TKI9[Eŝ$GkevB;ato&2VI4;6YҨmtvȏviV~>fJb& n5AmfӦf36[Yn֎M#P.=YFqLmO7f7\Z L ɏ]JYŒB.A7K5t'3x)f͏9<#x" <5 YF?P_NẘX뙱5,1:\1qiFQ11nd\Fm0;6ї-Ҳx*+/8#e~JKÜ:H,(c'3?|uo?5v' }ul4塶h`悹}udK;ۇ >S|Ƹ?lh.p8& fԙNgj4E{n?ų@$8Þ .VC)ĭ8'O/@Ph_ (vJX߅"<~WןPz=Ssȟ̞G#~_^ĺwv76;!oF7Vu8Sf`p{"-*IIK~@ :B8ee2-Z䌍`1q2GGݧNRzӪkQg# %pzQ(P:~𕧤%-ߍӲgIMH:ZfL=\ s};b};ByF>vb;|ٽ ĞBWTqk D$?sN&&9%弣68j&1sc8coʌ7籝L~IQqTȩ^e%*9# :.Qi/fGB:KբxAt|yGW7?J5/ӟ܃h,sB>UVv2fNƊ,fǍrXK\:\K'&? ;al?\,VNLK+֙5(XހA>+>p|w黰_+?AOs ̘;n7ԖDJͱ.'#=iL6SnظWE`C0&M`LfYc4Q5jjŔo2Ua$b|bb$'U؜R Va'_޶.M,23 N?uÞ wܹ:ϛW@@JrY߁cЙ즌L8u,XYJ<&i%JR$H Uu>"m1 4"7m?L%/HJ~)%g|Ov/}#? { ad)g Xf̈́# /,0fYYYFY~3ROC\inD)X 劭xQ DєC$pwqO e?m-g,3:}ꟻfv⣺RG 9-PKMNKwm${Zg+&&B: ۈb2}~l5iՌ(j"hZU/62}|>])hV"ᕽ|>̛㿜$, )b33DrHáxR]Ȣ.&yTRǨ-B. ,ޱdțo7[h\1>?J"U@Azы\+1j& kD5yV"J̕_iڑ5_|s!kh9NT7 )Fl;_Y3~_rYFoeQCs$[b3xޯ7TQ`<Վ])C,Rf7BR)\B*!~rT#ɟ?#YEFrǎgqͻz9/"&&hۨ|bN  v^\t9`iɍR^9{&K(?gN<.EӎHE?-ys$sF^/"eXhɲAظL'q`R\Ru *% 8/WQE7!U7:%6=t\L| +>i684,$ze1-@@Y#cceEb80 CV!Sz"`~< 6> MW^4ZRj7!,*/e7-Y¶="pT>' EW  ;.F ceEDD;'f`4ʥEj$J^bCh['=-t\Z#Ĺ\&w)o:yaѤ4Gx\v'nM|5N- cndD{:S b]Uq/V`B]#;0Tޅh㛦^.o10n}$_6m{[/NձBY`8VgYX&%;MlC96. 2Y&2U^VVPY )>i7OI s C/O܅~ϥ\Z)WEfP9F6``zMdj:H#Q M;NP2)ȼ1#'/\'_6Vyq z7趇8 rx?MQg=aQ{)q2כ)IppF]~7*ʹkWUЯi+)82o¦"pn]/ѡ(ߗO4nD.n;uD;TBǓa!鯊;6f@f5x$.1M(hجXqu mhҽo׏< j}p9~G}'hK ìOqn|%KS;DTè^vS.oq-%Ԟ9!^~>[陴q!//rE*1Q#)R>DЛ#?ϨpCk-~i#_Bjz#\@;}ި//^ T^`xF\m83g o$]ҿ 7f0F_cpt;*87n6mBg.7`ދjSO-þb@K[1Mf~3S^\\֢EE"@G6YS2<//>o)/$-JIia p NHiV+ʐQyJEP"Q.񐡬ChVM o]tíF,11ux/y#uթ) ǎ 4oj$CM7qTp3Xn ѣ thPA,yi|-Bn4ܠ8l&uV%a2+8!mqK"y ^Y$NB;~8z*G15h'3.VE5%d5[.h N962vb6;1T^u!%+'{CSO2kժU#W|"(!3C*"tRzNfdlNU6rך ͤli3ΆXZ|~…@r$wQI;lZ͒1 Cȸ/nT(8ov#k04$\c赨ĮRH*U#yJW0̷ $aiœ*ѱ^!YkqpAǻVXӁNw=Rmܨh][l;l.uKO?|;7|n&U&Q3Mx|4 t20!fHud ZÑ6lڸԿARRG'CiY" =ɾ9sMH$>g0:ӳop S9`iJ*0921K,6s-KTd ^6r`kzNap gle˜qy SRV5Jk@oR4UVSlR˘)//nG 4g; JeؖŒ) |G3\~n!巳[FiAZ"O+n <;iBI Zx;v#'.:2'O˶.O{pU yI@@Ic~٬k`A,IgИQ6K-˖% g08\x<سKN\ qR{,jXֈ1gpͨÄxg8!S:5eM#I֍Ad"dc16iE/H 270٤6.|8# Tņ/]9K{oZY^x(mpIԆp4?34mFQm؜bF:ХTE讕£[Vɍ(3zQeZGmC2q*5y+땏^7`K B[1'DИ`dYB[hZcZAԩSr׉o osqG'R3Fa\ňҪDԝpGW3}?<9s6ǹѶ[ξ~GE`bX)Z)'9VS7R̬H`_pe3F)5NXm A{BFsAx kAcW,B1˵)hz&-?J vba~"r{Wu:wⰉny,?zW޳ ߇TǩvT?N /"(>wLN=IBWP1+}4UmۭXQDN?<.Uej39>r]&uc0k|&Q'n~^r@_!`i )Y̎Yi`,%5-R,0A'( \Y W7#āՁAk7飍)'܂vid:=)&i54/7keXSS̍Aɣ'zxW}xUazF Ni2'X4X-L]~ӛ{"z6Ŷ5 ."D=4,Fϙ|>acNe@'n-u* Ӊ 0fi7gSgS[YSJ;lnJZẇ'9>;jx4H@{Sv?:* LCXbpĭw>JK hKRG}j[A c.heC}Dm-]Wa0r7xcL#BM()&_ZrATle!' Ȓ!م}++ *i45s^{o#=7'_3?'77g`9]L6morQ"1a18OK` өQ'> v_}vk|ٓ'S][~×+theMzw Ao,(b㾔y5Ͼ 5ꋟg$uLVD2,Fc-3Nb\*Фgh{,ҨC. Q4Q+҇[Ya(iUzؼlp889=nR ,HzJIQV*VM\a\u{ps7ҵS@qL~,{Jy_nAƏ;+ڄGf0.h} s 5hBtL`YjY;bEX}97?v=o\P^~9&Ny 3K-'ӯs9o|=7V*HJA+ G5ACIֲ&׻|N4'mi~@y9bv(uܹ׈e싁+* %]bY$}(r8ٮg2X?R^M7bK)з?YʡYU.>$ofCV,B$е Z_A6*Ť' ~VTBP"u-g-[+OYm[ prOmC?X4a4gE?!7e唅N$j~ֺXwB~+ШkP-~3Q]V.``@ i KEiщ67-7HX۪b=G=poa#:&*)d iȹS < f\yNά3Pp,ZxR9?AoP3;vPk kL1eu#65i!QТ*鴹x ZUE!憁K\=soTծkbMNUT6%0:ͤ,x.'~d֤OsFNy <p?K_ _o}򒺺:= _%~PbH}6jlfwm~N={2yILJu)'zGw&O=(Vڰ2ިS*VCSa'#g˽ՆW?1mB:h\;v 3- P#6/!P3L? "Lq \i܊jNn I_Y/]<]QuUuঊssʧEG/h۾m~nk*x<ՃKnצu~xY4gU '4ӇO<6o&ښtΧh]̲ر,%Q0(us6K|RD+UVC 6z/ :"JZz⯡󋦤r;Yz5Ln9"o;e\c΃pb_D]=˨F,W &eTmc87As?4:i*G55PjW:-_F$6'_S/U?L@< a9@}U^M?5|$RX|!5œrF%}71zX<]\ ~ }llv:7N m2 {hRcXxͰ%̬gV/Q: YKt'#攈,"+*‚g &a#ڡiE-29 F]oʕK~=3wK7:ㄇ([)gMu }%@+S2ymyQB=^`B$$)bE(( +.ěo"/. G.\@/;@?:&-o:x69>rzq(SR)Pئ BpS&\++6eNLYvF;=;lXmG^{Lʇ;2y@ *bxzp='jaZ!!ٞX/PhoG ~5k@,m9DGhdT40me0:D4[Yp0&w _HX] tOJ`/M|5V!+{rÄS^bLۘF5yjFZM0i+Ҋ2 iH71/:R#Wȿ#`HdLMbamو^OL:kǛM&j1)Ɩ2EH1%Z] I$_@CH/;e[gOLi3j(;_‰>k}3( Oˆ]сA28=lhuu]ݒs$wyRh֤/P'h2 J O/^QYUp$.ǧ7؊:VVu|҂s7OfyS'e/_6m=DewR$BI ]EK!` Cc~EA֠_ڤF[dWښ=x>,g0amA3"bvB08E)VߣY̵ XVJ ^XԪ*=]a@_AC;,XU;`͓x^HYe%C) x]G(CY)vb1'Ljf$AuRp=m]U+E6peE9(o(@β5.4EN|WtMhX6\7$Va7IR3]QEqEA'_m'd̏򏗷9{% ?:v2bAp:h.N]s'.t N_iKMYPhV4G~K\AP.h]U%i)@ٍ60zF\Nl4:3SG+Mjz6֛V׌ȿy~uH?<7ӦK칏2?g.=dv"ӝc.`XEVۀ0{Z (D)(*r uE ;u0i8o*@'[o>{/Ӻm 1 /kFl!,aq:LF# 2RKJ)  XnWLP8ȟozh]_]νrV~I<eFgFr_^>2y?<~Orp1̾lF0>S~4KDR4Jhl )J0ϳaE;Й~ZO8 ,myiQė#{̝Z{N޵zGïc_+ٯ `,tِ$yt#x|^$9TT7&b3*ґE)` p')Hչe,zc:]U |(~{W_X}=hK@QoVw I:%5đJaܷn<&˳v9( z+̫XmmwOI?N>X4> &xfﷄ2E6UtheLhmjږRP3UOS=ī5ĈT/QлO>]IgL!]DCnCsuHԡtzhd@}ļcEPm3CyI}6[~^Xg O)5޿t Ly-/xN U<+?fkNc0!=0e2`_ ݎD0oj|Z +fs1G8JLX& V D݂|={ɡrhصڐ1 >Bp~;C8+<.4_̒B":X 1T/@y >.  V^-@_@_ 8)ihd:^ h[z`[_HjSckfJI"a,tit3,e+<$z"ĹTa{P}H9-i[}l?|,<u b.ATz:Qo'AwGAH~ϏEgbHA[di{.ahB1{P̂%C:(aBMK$1&@I|S{RĪ g2POf|:2PUb2B%3@8栌I~*/@'2Vfhk ֌ Pn5ΪERߩ$%5I.$ Ig1'6F݈F~NNJA%N.U8c/%]ZI; p+`G PuR}@Qѷ ("~@1[@D@ 1K<{*-e@Q@c'lQ s8t1Js "ODw:CC :B!ά1E"tu$ԕ. 9$p;#p6HCMSxh=LxtKl|[6d-Q$ٳM ق.e[5@׆?drWsЇ=$Hx][%@@Y}$e<}t#("FBvl| ϮsFKQ(ldg;,+m╠hIII-&-p,8oA 1 (U8ITj6QѬ2%/K8/E˽^z 3xx^ҋx{^4 Ƌ0C賒}JKۚAg5Vay?ҏ~w,?G [{︪}|M`E=,{A (XATXP-QFMlQbK,56h1{f9B&%y콧YmsO܃ ΐy{v_y:A3<?ݷ ]ur=d xT=y`eW {x/=)|c?0l*e|Tc$J;U+\j6*{&gw c$&mֶ6Qjlll{v6vJE,c7ۘj6f5Cr5*XAӠ,ڋ,^kC^< D}/V͋z1!?zye^ݼcul(xn 4ǐuX\^hqy_nf=݌?f3Gٹl}rf-.;3fvSYrfcdtEaAd7rg&.\2.8 ߽ըW7;gX|`b?d-Ko7 %GJyJbE9bQ|lGVRz|5nV|VnZUʟBvLD'<@5ȓgfyD<̦"6y &DO9g OL^ADل6Xqn<[e npcn-0`\0Ԧqr+3l$r},ӷ2"XY7R>p/!ߠ<5+;4ڄ o2_ׯ,[n} JHdp KwR.Taz7r|}!;[_;Xse6_yH{ |tŋ0j~?CP\ $'4^"0E`D`"C |~!r1 Vm$V( uD9G#5ψ\rc<8wd|Ha#{1fD9 }B"+|LTcWgE] Q%;Q2`7dXg( *8^VϪ5U_U_5[ UC[uU\j&2e^p̃>XnwD!m(nPXOVxMcFFX{qiͶD/G2jXdQK`5 @DrwZVxƸ1Q dq`+o3IvndW:®;F(`1CO?#rglgd5󍀏G>F 1">}N4nnaI񰕏`?' '&B$7GɫN֜@)a d19TԎN[p= >qS~4c]~z0,gb,dlw ِ3r ? s}>#Z<<ĀD˰U}5ݫ1jo5'DNkw-z&/"9mĚ7MMkbfG2݊g۠o!|z'x Vcַ {.į]S >r]@|g7b|@=>^wwp@0>slgd~ @vpA}1t@VG0i>z= ;9 _;(lXQ{18}NoON N'W'q~8 Y.`?@."\D,q.Bo/b΋ϗ'.aC.aeĢːe+&v9l0Uă*s?¶Oc߻5߀n O͝Dnmsc #JEH:Ra;;1t6x}:zyx3w#y現 G痶l1 r'OΧD0339ϰ'? >Gc=o<cO}_!_ӼD߰}w`?yϿϽ~sXK9;7[dj9/Rc``)0xALـqČv8c8>peIJXYbYVh L| |G,rb9[1nso,! &g pXmb/`<*- O < yfbE "_g"c:{91+XkzxL8 kúmk[ @>yC~+`?`ܢ*x+: !( 4bȼX}bGG|s; 8'@"0S?/ +o.9%0w ]D}IUIQ!1JN ӒJRM)Q +JJRW!sc|ώkb[GJ,/OǺ+*bފV+`U`U*vbUWAաmjbXC4>Xo][wz5}} _&~l=7L, =645_69NbM&{WĚE ǜ{E"ּqZ`o?QM6bP֝,:X j3X[][Է@=l: XǼ@e`F`{qNMu\;SĖxO<|7v-#vnW;t}CݡsLz@==ӈoN{c=?[oę>X{c G Fd nBO}B ^DM@J:0nl1_b5C, b g A/ ZC!!wlj?5~3pذG`Hi4 11Xha>!6(@와vg"y\Iš@vS7BF'?c=΀#dOL,; :`#sùgS}>sQ7{koľ]/ ECF_[=-Kط 2*;aS!Jl%bʻVm"k ߵ9c (7a4f--XVu mmh;ra1xۉ;wB;!]ݻB[ߍX~={ A^{q1r/wm>Ć}>jlv?Y.#@? zv{} ?DC3rTvk8;9=0ty; } |G`GQĒgQp>w  r>yAǡq8pc^~IĠļS;q李ӈ)1e:Al=z{{{{,!eg!߳߫@.yĭ s q2l2ːe2|2bW{1 A #c ;rDR~D\`ױأ&}6p l6}w HBr{ȍc ϸy=B|1x{y ?-ڄ"ްP ]6I2naq5o [j`mM`3M]@y6}CY1!?Cs8> ! P `}|!>@Wx2jv-Ne x$l%dl W0g5ܢo{l&k5ڷzMkew4 G.!, hlOBgma+maom?m!s;ȹxj^a]o_y* "StbIĕwv@1FGctc!X@ bwđt[~0F\ ^::AO'd ct1Fgct'3lit/%11F}u8].XOe3vjW@uctn kuMt#^wп;;x1#tL#zz 6@LG|d29zB=_]l7FzC~zc]ac%}Pl/l/l/|/ >>% Z '` -\a?{Xa?cX[`D#g"~ } d8r1}`As6s FFX .CFC C001 ;4qv|pbԍ@HĘmU`cQm6 hu}4>z6oawc`cnbه?L@ ɰ$TT4̴lct)5qf ^g#F< }x`.x;s?+ `!|s0;{yQ?? 惿ؓ¯A|ZX 9-q | r |). e2+z,rvkYyWbUհXjj7o5o-dZ>6.@d7&;7 9|`#MK`w!͈[A|+dm ގ}|lo[kP⻰ݐn{b^ĢG~gb>ě`Ĺv!p`:<|q'O`8x:$l$vG))));x|~qAnuq~D{/1{Āh<=mqz3D4>r @1$@m`mmgg-k }H7jC'kDN*:IĢ_,Af6vu `KWg^$æ%6DOg3`/s[/ j& zc1_ȽO]rD.%BW y$C]Ch621%Lˁׁ 4`W @!I BC82 C>#o2ִȎn5l旐D '}֘\U@YK v+k@4PW.@0cA@0h4>G{z@0Q_/j/$Y t?03[c~k[ (-O_㙺 Lq@^H`:0X߯!zvs|@6Kc滅r1iއ N2cb&|~o@/EkjIeL!OKk%ZB+u64R;BY6grmN=o|Y!3S֭w(CG旺e71CeT6QD:bZϒI4A6l浚s0P;ʦ;I]+83z:T?} cV]3=X+uiYCie2*s uO:*mZo;lsmY:5s2]E)cX>gόv4}*[[\*~j+IŸ29Z8A~m<µ >?}G5e>mrK_h)ޜgESz%Nz|P_cb ]Pvdv5,0xt(zm~2=+ұא^E$_uת^$&GR&YDhY1dS1FՀVݙvU;N0;]:s^VNcq;Yϧcses+y+vu% p]ǛZVjwIB!XP`.5eS3 W{wis%ڸ!z{e%2)*9n@2ǡew_U:̥SƅNR4j;jJJGu>2}rv&T}P>S?WL.#Lռezq13泟{wuYz~yR퐎dzkg=f3 :TL.y]g!XKȰV..i>L}*}?z^6c>\sf+yU~q}Qű2GB52XF_h9eG~Sg1X*wHօsO\˾Y:}BfPI쥶4~fl-l: 4>zC yhYM*{PbKZ>>JwT|J-Md51ӏBа:Cm8ʦ;`^WL7:a @TN>\s |PgA5b$ ՞[A(-@U}j , Ģ4h(;ZҒQ f#[y;NSuK|9p]K[qKK3o=2i;xrw>F]);ˀ󰧵M*}aH(MVyo ><,׾O uT{RKmHGU.&|WrLa>ezNM+iO;8@'xB5 e1f(4j>*s{Z[aynU2=Ps7,yWTPyz1ֱ~yV2rԛ:ȣBn>orޔ?|a}>w*[}^p񧎵6=+z: Κ`20v1qϻe:sle]ey(NK?-,'f__*PʅeB،+Zkp~?zǙs:s`Gi:`59hXg; )S{>潆](\p?(M,r3~uvsT+"&#hq*jA%LZ|@KQ1s7i&?3*c@*ZJ}J$h*ZOV6i*mLU h5V@T 4i-*Z*QDARCgT4LT Ԑj6ڠASڔ@4QmnTߞJ&mI!Q~Z5FSc;Ԇ@oS{jځA;RRs8jɤ)~%hv(OԍZv7iߠˤ hjkN}M@@Q{5OAP,h" tul!oJC 0A@Gt_tIR/q~>0t<_L:@'REd44N`i4c 4wf0Oh<}J#@gtMhIhh,}ny4t>}` t!]zG_%i)M]FI_).i+L>#頫M Ͱ5 ZL@כtz64t QJnA<AA;i!.Zd?Li1/;ZϤi WMz=LI cҾ:IO3{,=glKh#&H{ml+4wUHA.n-O˾nM{Awo.M@w}:L!}DG@}=OMNطs d+o&΀N߃^Yt &zK@P;]o91=1= {2fL4cz1ӫ1ӫ1k1_:fL2cz]35cz=37cz}31=111}cbs1=scVfL/nfL/ifL/ߘߘߘߘo=O1qLWop7;;,i$=YY >fEK%*`vnܟWuy81| _""(*|D( 1Z$SR|-fGKI2!el';Qr\*o)yYWi7܌V^dL/"ϋag-l 6XZ[GY7YXYS/i67[>[Q-`cel{mx.]ƻwKg{(ʋZ]4_BEEK/V4hK7o^^||+;w$ߩ3}wߝ|O{ׯ__=X~]z%0rS_ו_|]u|vbfceX6dg'ُ{ (xU^G@mZc Yb"BĊb]|,fR\[^qXI].2V2VyO>/ 2܍B'Ia.z>P8[dtȳ"/d-`YìZc[?X>ey@jta[u_뢩ww[b;]. -u[4ԅ/tN3|zc%;]t ]B ^ׅ_W.^f۱vbۀ-6l,/3``*+{h9BR>Y 4>uT56}-+h< @MZ[9Jh4 ; a"qDҚa$%J0ʟ<4HVԑ{ܩRM͝ꖚ35GjԬYR]S-FH7(nf7nIDCnL1zCol꧶7=x}\z_SYZܕVZk>WC_qJW_ ZBW\G)RRSn߳Kr0ew.HY6%8nJPOw-hdq4Ǒsq0G*b1p_̫"I)&fPM j>雡`'ӳ5#e+;m&OͿ}BAwyyi+Wc<}ħ lcD i,E}C+d/OYm΂ 6},l0me#\p˵kkk׶\ۻvpuk@׎\{q@Ԡm訖-G7kڤqa BC׫Tv5WZrre˔(QϷOQokrȖ5Ő3 %ؐdkV:R{pd[- 3%bm~(21GuSZ79p&W[[HrI!ϖO.YKp W%|g%j3k5-V<:$;t@>f7LOv1PISSX>qE&ɹK'~V%9'8$_ڸŻyOɒ _$7I៟'__I]&ɬE B}lIIqc;}gϞ/⦈h ;cgrԘdz^zhyN澡qxxWM_U@6%ƈ$[HҔ`oO`T{'m3e:yn@dj:kE :n,}@SvT qO')w.[a|[aW%ݼQ<~r۪`5NOHp; etrP0.B֗ DX(G@~y}Ӳ)f-9od{%;XPc4N7Wyn@)&X5_5jNc|(J4$ƴэ#}7o]U3PIߐLD{:!&ڢACw<§^Md_W7*W<l$t 5YsfQ~wtGMOJa*+TN뇙, (EtnKVkS1a\2 b"oT;o0C=3 7y&Ƣ*"mM-x99F kCǤgO$ų \@ÞE$l7}0٠8]aKi]ӔAQ sScָe9އMj>MlHZo;ZFo׏ꣷ۰/OzQs{XV\uGt9[K3֓RZݡdl+!xe #c'('ģ6S{=Y}KSO=q<.0Mdzgmz&?RA0IrS?$ƚRkV%%+B#6 7AzZb5QS={UVb7RҬ"DT0Vcei9+n p< Sd8Nbe;o`PKiul݂PY= 2H<߲5OB:w0)%AQX\HtDI:@#X@AYr*swEw;,莭XKnn(dF Zע~%9X)s0X)Ȧ6R07k쪰[[w=Rvz_?Om{þme/*=Txw knkg!N1;;ofdc"`33FAXWYu=A; :`px W b^A M^S&v͍5OȠm<{Y|BWBU7V=Y%W_#,NcAE%p_a[!/(aX/_j[?clݜ&,q;2bI1 />oČgsKXc粄9\#fi X|( d:Tּc~3̧g{7js/fיf1Y3kѬdz,XS[g~Z:imu*W$pꢩm'jVeMr>uJ+gHupb Ăց@bDn.S`7Xt` | z -oMž Q+r ,0NYXcDAk,+-f!5|T -hmۦMh!k &dy7s YW-EBXA0Em,V(>{PBB򈆬ah6k0 4-tLP{`Ew9 J [ncܤ[[[tnv7:xM$mlؑSfh&%F*ԼMeR2Eic>6n\[RljoRcq^x}~80q ??ԟ{@ā 㑺Z\, 5SG,RC@ܓJ959l894sdq(#Q3GV.0wr\ﰃS8]e';ΦkؚgV ܦtT5JC4Ұq&bm ֫>.4H.7~5+,'LqnC+Es,`k:X[Cs4*{~ͧ.~]eMi ct>4fw"X+/򱬺˻7}]~N࿦/li}^Mgh:KWTC>}h Oi3K%<łY=;54>qrS&7\ўEg}IKM!Y`7'P>yٴicC8If@5y('8SCk%Ok Ԓ(zP7` 0'8\uGh٪;ڨDYR9*g >-{c$W4Μ!R P=ƜPSǸZ~mn̿Gh 8No_.SwCmo'}1N PC^#A@\mpKZ hɀF\,Qv;ܔ)' "OˆaV˛#_Lqh$"48PJTPU@PjS @}>B05zrkj<h6ԖQ{@)Qo!] (oja d 4=@#>>&$ ˝VLG47f;> Z[L_?2刍+᧫=:>|'nv"M{>OH}~~~|~x{ OAq:Po_?J{t/#8`̯z _3dݛn>[6cwFZfz<*,RUaUY5V&C V y`F1kšf,EDS,Ű6-kڳ#eqY֕ucY֓bY֗%~?@6 fCP6 g#H6fcX6}>dGl&wc6]H}f?'g_O2-g+Jf߰5l-[z!3@O'yӟ ?;.Ev]fWX ~duvn[ﰻ,c3{;?g/د%[+pL\m8,<+Ƴ<'w:-{/ qO "m>5?Ÿ/y ^w|gY|639g~ _>/+J5|-_Ǔg,|#7-|+Ʒ[n}|??C0?c8?OS4?ÿg9~_?̯~ȯm~C')ƟWW54nWPGp!*".rM\"#|"DAQHx /QXVɌ LOb[DeQETDuQCDmQG/EU_h,h!"EK%Z"ZĈ6h'ڋq,EUtESEW$~ @1H CP1L #H1JcX1N| >Gb(&"ILS4.fOħb%f9bL|.bB,bX"e+X.VbX-kZN$b(6b*bVnG߉}b8 C8;8+ΉA\eqEGqM\7O⦸%n;H}@,GX<O3\7CV $$BJiHt2*)ݤ%s<2'KY@ei6-JYLJ?Y\%e)/diYFʲ,/+Ȋ,Ȫ.kȚ- YW֓e e#X6Me3Be )[(J2Fme;^vedg){޲+d?_r$!r&r%G1r'?#9ANd$ȩrXN3'S9SΒ9W~&?|@~!E8|)ȥrJ~-r\%WoVr 7Mr"mr!;.[{wr/ȃ<,ȣ<.Oȓ<-YyN$/+2E^?k!7-y[ޑwe'gP>|*U|-ȷ2M 2 aH0,jd1ٌF#fF#oeXgg7J%R`68?5*JFeQըfT7j5ZFmd5`#)nD͍F҈2Zh#hc5FG#ֈ3:xftWF`3Dc1l 1Ìc1m1Gc1ɘl$S4cc1Ԙi2fsg*O'!)qqW|I|Y|E'*_oſſ7?ķķww{#cS_Q3s x\[ o*Q9&ѽ M!O$)77)SoSȧ}$GI|=,tٲ"&X!ϔgɳs\y*ϕ(ϓϓmB"GBOKdCNi9#rs%/y e[.rYȎʝrD^*/*_*L^.\^!_&_._!!)_)J^-_%_-Z^#_#_+F^+_'_/V^' o7ȿoo7ʿ7ɷȷ7˷F?[;Ny|M[{7^'C#NQyP~L~\~B%?)Oɻg{gK+>Uy|@~]~C<,M>(]>$)!%-#+ߓߗ??˟ȟʟɟ_*PUjP )R*ՈUcj\mP1j:VmVSORǫԉM[թw盛:M]!c~O=K:]z)*Vg3YlE=Wsjzޅqo4ԔV3Y5[3LWT%RuSRgr 2r u uKJWj*j>Z7Z:z:uzAzzQIEUYMVޮIݢޡw[ջmjzzzڧYWW;!au:>>>RTԧ3_=s ^%eu_}M=UVTRTPRVQUGGԏԏOOG/c\䲹`n('r2rpn$7ˍ66mۜq'ϝ;1I_X-bK`v ]̵w6WLsD^T;ᅬgۋ͋e#L7ۋb&fz:d'gҘvb>[y/XysӋ8'ɵֹlc0v1q^rr"K[N/Fϟn/,4h/"OwڶZpl%_M$ _ShX皝s\ch9iJk⭴fFw`i5]SfsK N[\.5[e\]Ұ˭ٹNrrk1ѦڝfG{Jsܙs֘m-v,vsj/4wt[;\b=ۚn/;.rcS:~&&YKd|,#9IC!H/H "0  8E/_~"E/_KS鋥'D.wwV3!ʙmoQӾd8іmOr1]J2Doӭfsk/8_;{\CcC+K|pz;54lXVc83]a4t;gm]4XjtKsMZs9m/͑H1y+4{flx\L/+ ke##5w7݅KFWꄝDzb ^ Wiԑ3fX=SG7C}3ʙ[Ϝj,@i4E yumQ׳}FȑJhU}N}.^]n63-g#G"فJETtkRѶ_ J_d[ ݤAg[Md ҥA^W>}ճ+該ROd֕^o깆VCL[]xAKv%^0j.7WZ+]&^dԋ][+k2[ˍ\scf9{M F;s'}ed{kg"l:XZ8z|D;Ij6օ$/օl阖;a# V O0 zNciaiL#nn-{nk༹W=ѕ Z箴FC4>Xf5kR88e3:?xvt]>T}e'\[x*`55P5hKmX>on[{my_4GjddYB !8ӷ}^{rш5ήvyÚF˫kf{żMcI-YG&s"uVV2O9Ŝ(ֹPۇ|u\}qcʮ m{Lguژm|{ig7TY:s噜mv٢wW ڜ6+i,HJFOXYž }9ahoGkbhoGiQ􄳶WU+zuܧ*1^M5^)X?Ӻl[-n[ZwUݶZj-ewm-ֲZmkj]SK{|jΎ&d;"xG#wD7"F߈|#*{ !D~"@| D>"@>GU#y?<ŸG$#V=b%#|Q󻮧^NR#bDXa1",Fň"BDX a!",D"BDX a!",BE!"DXa",BE!b-U!+H ,"K22-"kH#ӵ~£}c9}ںxwzrV"#dYDe$"kH#Dσ?~اcbS=G1(أ{cbQ=G1(أXx(أ{cbQ=G1(أ{cbQ=G1(أ{cbQ=?1'؟cbM71&؛{cobL} i{cObI='1$ƞؓ{cObI='1$ƞؓ{cObI='1$ƞؓ{cObI='1$.W ^2xe71&؛{cobM\N_M71&؛{cobM71&N$O? ~ +W_~ +W_~*UW[ n*UpV[n 5pk[n 5pkk5p <πg3p 8:8upsun:upsuy+VVZ2n, 2r{^佮"w1:Wj=Q?Y&vIas%aFӬ4=zOӬ4;@gNE4444#f'a!OB< y$,IXȎSȓlq51111i9 ! LƣxxxafXxxxiuxxxxxxxxxxxxxxxxxxxafXx'x'x'iu7x7x7x7xafOuGi>eXxWxWxWxWxWxICcʿx'6؅bWMĘ''':Lc?xyyy'<y( y'aJv)}0i_x7x7x7x7x7x7x7x7xajXxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx4I4I4I4I4I4I4581 oHߦdN/'+H|#MO vxyyy4?'''''':}'0a)ݩO-y1#y<_Xd'҅/M~Ipt>+~F]_Pk jA/b,"K2rYAVJS$RʧDV+'XxJ&wqz\&vR*[7?V֨|7:2&yúw7{s{|;ֽ=f޻ëooZtu`6阵xk3rl*j/0J/SIJ.NXe$3ow)y՝Nzw T HO IՊѝvVLc274g;ۛʕ2r//JۢtwKKUrkől^l7L5;CЌwśC5.m-5;{\ڞQ[1d$i0`$]X/tHb]j{Ҙi p`GސAw+Naw&‚ {81\Ί9[悰m9*&hž]7XbӲSC՚i:M5 WNMElY[++Ws:b^='ƾsUvZ3>qڑ=d+j(9ZFj'͘hi/r{'8DMz4ѥT#UF|rDv͇NZee+}{nppRAlo_>y)o5wcI3dr"c20O9T0ǃ "g d2;*dߐ} ߙ} = 3plOCAfhtn3.U7ȨkPwXV?GG~PCVm 2csV?!d~1t8xJpfkN-ۺں3 wyVf{WGrڬn4;v<&tf;mQAf%ڨm'lKl(<ࠗ}x{SϽ'M;;wI,-~_<\[臹6 rv:ۏua^>ˇ>zn l8h[ӷmK-GpuƮmv3K)䨺[}N}A}I~C~GV7{E9N n?&8ۦ'Vnَ$\mck&Ko߻tz=v|Ďc`)#7!#kхb7[6X)g2sg.Lӝ3gNw6\d7g|&sݙsݑY\嵙;6|&-+-H1הmqR_FۓyC˒2mUVwKW?{_7}?2N{Ny8s;=Ï؅f~Å%]9>~;|#^Ç7S}^ߔ$9UyjiþQ6~e&'Z:uoǣ|~uSL+8њ #XZ{O_:=\|p`f9۷7 N3y)̹~c[\z*;rί-_|b}X)xaG-^j{v|-k>ܳs4ww]=~_ { ?VSZW._a=F.Lt 7&dWԷ~_Wꕶ{yop<~I}j}l=6xZf~2|o¡;>a^}rOoܜ|sSִX|Ʒ?"Nup,wMsnqw7ߧ#@aqO=hshM }ؖue<-Qq85Z;{v_G~a> |[g><݇R ކTvmfyaZ栞=/u_[S lۧԬV62`ަ޵&>"Ϸ{פlvvDiMꭙ.Kfw^.8 ;?>fy6ݷmfr9mpߧd,83mtzd৙Mgd1";2r;~Ɩr#kJfʟ3寧ngv9Nصx3K5g^Ǚ){5g%N_s&U O]s'-ˈkrxy]dpk>>Νd9~~ɇo{w5H::;ʏ~;⬏ =>Ivۏu Ao}UGbҒفRY#6aҏթ3e.\8ף?>އ|x}xOدSiaoNm2+_uQu??>|q}}Of:-!I %׾ի}G+՜G/=^Ǔ0_f>Æ}-s \i_"v|įgD>;'߁=޷>..<?>.{MsO澉h==Vt1߽c >ӧ|!Y/AկlN_R ox&zOL?/g^ߟnmy7;zȇ'΁ޞ/Чd=Y|<0X{Rn[7[zY?/L?-ͤ'o}=\x{~ Szf#!QFT?u81v!fLK'Nyxq .bIFT#J߂,=vn"p.nj-?ꗈ^~_8>\`sIfpoWayNYF̪6nd2:yĤ1/ ajԶ P=uLVADH]@GI(9hDh,"w-ՆkUˀo~% dx|IB+B'efA;$˜F1|v3PcbOPf4@ NrrW.U_vҞpU4I"" ! TAQZɧsUOiO2/0 VD'shf6nwR%&F^!4M=:O_ FP6&"ro,& VX5SS)D>V7B47v(9 2hf  ')++ۚLFqksa!{OCNHn=ךs͟tdu'|h!_4zڍ}{p(%OM ps:=5!ȀE48Ȩti$\eQr!')1zUPɉ</N~-wj<|v("_' Pn3] `59Y4n`LpE#Atsn1`+;Z1r+ry0rHK9q*| )XDrO}+c͏ߑnug.pی_xO!ȟu78ǖav4MТܠ,.I 鑤"{g^F [lv/ 5X"#0v|( 僝Sq6eiFcsљ $ FVi %e693Z)\ЖwHH$*Uao;OY9nDc]=c]~V?RڢeW_^pK]wzd9gO;X=CL9bΓ)S'W͑ZbUˁQV%F )fp94ք fsysYQ:@NEpOb򤱂4(˘݁|n+#RiD_9RxvQs_Ҟy }tK{yI^9bsT)k8AHPZ jU\RU~YjV-Me0`,JL+Qc/3 Sr+oŊ{kj.Ų ,bwS@41FJ'R1hsLZO8Uo/ ˜ͺt޷M^/ ; f w3{ " GCfVְ8( \2 ex8Ƭ -,U FQy9H[xM:xFm`J=Q fUyGoJE>`x;rEpr7mUx6y5mHVIȏ:_+(t֗<!hElLL`C!1͖g0r ܵ)>Ncݏ,=d:o~Qx%nSGt(>KUE^M!_5GBP%{ZмE'IhA RQv*#!mCn։uNYW=\oVCŨUV1 0S\,k`g1 #';Pp6ߋ-:QblBD[w6+1mn3G<1kKH6I^>_6ؘ5%p<%O>$/ީI|g , tmx9˯˫ 4jE<{OpW * L~fzBDPuwd6IIe +뱢"#lvb1L<|mKX?KxfQPs8}52"'JFe&zCdJI ! 2*C'A*N(,oCN lǵù}Núj/ gNSgi(O51CQc%VE$2dY%Fj51$"EbGa '@3r-OX+hPPj$D%TR5S D) gzQP&= nhCqX<V}_ϟ'*N~"<L#OH6GzwR,l9xhn[w_ifNK?,`xL6I63R]%wqILF R0ryɫ٦ޖ_qBʌK;"{]4juzNG=3qZJ$!-*bMOƍJioeL@]/UO JH4;XH4dWB/idLQۊ^*՝XޛTס\xOmd4j@MZG-s B m%*y6@m6$VEH@K io\Qss;gVR~Qb 'Of{2&JJ4 Xi/%%ye;**DqTwRE~nAV RzӑLɌ].L o?qq6{>YeA+TvSϾf..J60`rm<smV}':F ; emwNbŶD0I^~AZCC;`Z jۊ2Vhg[@]ѹeN7kE7O߶w _/?}tRѫG:Vz)"No:@ĝD,"&,6[.ȕWd 4\:⦅t 1ۍʃ4j`F-suZeyޖJ X.-u3ب+H(ks@MDby1q3:! B{es[{$ֻ&Y9sw*}9|M[\XC+#\>]0 j"z+PI@nzvj p/V (F+o_%5ُ^( 6&;;55L[5 foz^ob,h1\uN( ~)DdrfTE ̢h\5HL~P b=.'ڃ_vuϷ/_i`ƾ/xsJL=ȣB`w/?؊3;)(#7HQ};8_% &/J޲a1"nTJJ/#tw\ZR%k+ /}vM~.jbKvR򸨮,"͓HT / [])Qb" PD 1,gڰa/g4zD<h*ҍMd3Sb^ تM0-&!,3NҤ M(&Ja1"w ~vDvge`Gýj^~!&?dʥ:6?v~<-~8P? d%./у, Y,:ZDA$A:bzT4f{baȭՉwػr]<7G\C l8 ۰ȟ˟x;ǷR劋r\@0E 1ztֲW+ 3v&,RsN09:Ղ=.Y͒䍟 CGV{1j +t`k,sMin6ŚҲ, S.@dr",Z2qVq KC9 do]XA2j;x5uHc^9)O4E1`Ay}M‡F$1{?:eg!9:[v3b;tzr蜒,$ B }]DGiMi-/< 5s^~M^#gyUJ8*^#jL P|NYGãAvd4Wv6BڔdFM6i0ql)Z'p[=.Vu6@nWX[>$nI^I3lվCOrl {is[1|!Gff)Vyo`P!cB r{_{b8n6O8KM5xp bk;q)$ۭo럿?lk^M`2@-Wx+}y`t9`L08+@ݤ`ug:@`O1r96/Yi~f BP _58]QA_M Sai>j-W`Q%WLEh|r .֊HqiF v= #̞h =TD#rX?ɌQ˫'Xa'k2@d^fbO̷,IE]I`G$T'=MHpYF+lX3: o5.T ۝LX?xo7c1o}ʉwgЙ _"e`'Wp`ѧ#fz 1RSwT='nvY x.^DG z-1  1?I0Ewk^Ź˝H.1w` mTٴ&bYztZ3#,SX|sEgtj{EK֔KMq ] RqƂV,/Чɓ+߼l"$JAXC#tz20KܖD}D Px7M^0N~|b'vyyFvZ%'옆<^5xL* h=>j2 BF֗K}y57}?D+n%d= 8U$,q »~;v~Xx/ByЊD\>vxL2yτ@Ky)Na %Y$t'PA^V"!w`ZNN~,6 ve((5copjۚu[0U4E1tS܄MW#b8`4Rb(A6 2qNAWDe$tKSNFg)#ai H\aPe*T~F,\b0#b`p+e0/`#O`h(GQ\;QxR!O!Ĕ|]RMђwй5|-MJ:8S!̌u,_gaۇv<7H:\@CzL̷?u]l,̂[Z_k-ȃ{ruSQ քp 72 j$Q _J>*T 6݀(U1F%χv|V>}zju sP~~C O:Plb?b_*@ V!tBvǑSFQK9SQp๱=i§&Du 9%X:F$Q>ۋ! %pJ բ>B@4IjL<>R@?Ջz~DpWJG,D!DR^Tq]z5kz9xmfi?2b?n5^|m`̓_b\Pvg`ĵF`ݞs*$'2=Ԗk.S^IS#/#9ϗ'RoDb0k+w&/RƪZUq{٩:㲅zlş.ʊ'fB2u^ӂI.h[pÎ3GW;oHX|ѣ/;axջ'&-j̥U{ um٥uJz}F=i|+R* pWmLN]2pK7'oխO8Υ3pP^\y^AsZؾnx壤+{M_xskl l~+pYC͓mF)\͠PJu`pZ/RQTcJ={Džt,+;;]݊(GR6['Im;zhyqa%6>ҵYJH'+zo[Yg_8s71%mӚu.k(OpEY(`iF ݚY-SSI͚d4A MSZ\]4K1Sp-Z)3C.[ K,"Gّr4"DXzZQ<&H3h\ɴj'׬'vPǫ?1?~u<XyvW9|?̡'q?]<,?n,_OL>AK;.#eKwq%\+8%2vd3M~oa-k=o(O蕐u%d[*uجKӭ׉',,Y,j| RˡLJ#d1'$\ K=T!OiugNSF﫦)Ebrk}gw>~߱=M`^ Iˠ-@ͱBF N@?=6nBbxNrIB4fCpcFQ"DII4(;Yx95oŽv+ z_mdDy<A2"$JYY.4/( 8{㇤.JGa0x+#Q Dy7Jan{,YO(b eAF1lI"ezL@7MpZ4ZѐQRiPee6_{BV0k$Z^BP L)Gp^q^ŔWn_hE++-j[RڲnwYOm[;}I,qFyF`~Y"ha^V&4D. iMHRR3Os\FJ*12Ĩmm(9Zъ![L6ٔ"b !oM %Wd|ws7 q"!:o>*ma,rvzvʇP(Jq'D,hJt+ҡ w+FeȞZz+Cjt70Ϗv]8ܒƼ ;8+=U`a*1 iV,[^LPϭe57ttdG˟{4rd ^gOҿ!hX?'m0e yB56;U/TÙ ۜH1޽#:ilk4WBC{rϜgf޵C=SؼƵl>Caqm:u#УyC _Ss߆?__]o?b3,¹gx4d`Yf)EyIRI)GCZlRUѴϚmyYWC<"x:\."dPmbS

(yO^%O^״/[Mv7$g `Ug4Ls{L$l.dW~cץ+H4l}2v4,:ߗp#&B~@"Rw|3؀ _Q(墑"/ҤXv0HXFpjcw2j4 Ѵ4$4- Fq_$%[1z$q)wI&mcf/_yimLXys.0fĪѕOʿ,rzƭF_R 74u%줒`=!Q~AtTEց H(*u@(F{4`Ӑm< |A|dnxPw}r$F`0RITN Z(sgC57W [Vz8y\,NQ07r1L 9ӚLn  $K,G!P/[|3N:XŇJrڶ<YA_-GקD֬ Z:RxQSbBY :좺ZәL!YPR2J8 U$;xFE4\FDrpި=uP&ۉ[x=,g6ҹö3s 9ݩn%ڴ 3`{IF;L@AUIp{/BZ:MO2'n_מ=gνiϘ2}yߺrna;DVQ`zW{~ ix_eHd;Hxs N>:Tc-f:lnnMy("~){YNZ-.NNߝܯH9~xT};pw+Q-;z)^R[0FZ#lʖ&JRpSMQY٪OY4g&&Zh9,dК?WGr$TbRQL 8#\Hޑʹ]$ 1N2%a0+r9Z&~VWD:N#uaa=(`"j޲rW; y˛#2RnSGt쭖wW&ζ2qB_ɕHׁA;auި$, L OR6`Oħ4#G \vG"WIЎ%3 )D+aj.S1+uZ|d}]{Pe͓;44D xH$(ۍV-t30YM7RߎeD/_{e8y]Kv.P$~ަS~/÷ rkNB^!“JpMR^-xxoā8$³MZE [$@)2 ZX2ӹiq O}ޭߝ½W%*<-E^U"o} 2e:w EQKgRQ m/(`~eC?/zX#o(R"Pt į3M|lS"K44Z[4{iS=+ٞ\r;nL/ Ɔc Đ ?˜X';3Uc7Z4i˴}yz8K./pxX_|o@;iϽ0g΀<ޓ'/zo d``t_bi^%IJ{&D4,|i2GUj}:2tK =[^NՎrHGFKc?Q"|דK%|%.AļxQӾn[ fE&(}o텆y+Ut-QOVҥ7<3GVIhahM4 ĦG̀`hx$AXiLX0at,dAt8X4R,7XHV:)д`9z3A™3ygDBS!a+-¨H5$"\_I*y9ܡ$8.娺++}IޅGMv)Hɥ$^* C\TN x:k|*Rd^d^hVɼ2&>*BT^)}V#fqWa9_c1*1 \&hIԤ,;lM%֬)6[5lK J,Ⲹ^oJ /Җ&R’QF+"%B}w^n]N0b~:A.nc{G0E3 4tykotkr&9v,ǵ=r2V JV^^݁ˇUBQAwԖZW1.&j ja)=T  h$ ܡIjDYd*u^pn^#zHRr&p}bVҙUc}B>`NPүK>y9KH҃۩<vy=Ξ-[.Ѻyz{ޕkkk険n̢9i O8rOY[9LBL >7@tE@lj Xw^?Ze9A>4CV+5Kf0wmzŐ`2\,7%J/ċL 5d'Glc P cC\K <(--H$oNKx}XVU%b~r ;tŚ#]]ÅUm_m+Mֶ1޸mPB0\%"JB"!>5\S/1H~ctnJ`oX 禧g%%aJ0]F XnO?S~WW6&7Umŭ1ݙrfhk;F\GR_z3iaAL9eڴ6/,n_8z3̘QwjyW ?LU>diæ-6l(}Ac Oߴe&ɘAVV >hF#>(fmYcфe`g-6 <Z!>W8KdsܫL\3Jo:{T'NgTp 8;kxpvK81("@qi  >{۽1/gty31oܰnܱ2õjX*40B> $+趿ܱ~JB=A(ٻJHSE^Wł4P 4EѮ,nt7Qgzv^P'' _˗;~a!ʫչ:we2 kBȴׄ+C~Ni)d ?p'fiֿg7١-_ݟDWmNf6ϴg,oJsC{n J ^)Cgdxn@ܨà:=՛:@+<Py+!yց} Dհ>d -Vd&Ҫ٤85ySB* &7ڕߗ=l,? p`fh\l] $?6k)O{)6;:YIC|N~O.j F3(+h 6VDqsahk@ tu;ab~}ctZ4Zz4XRދObqu 5/ܘN$lHa+%f-:&1bjI@{hXVxGIEY[mw8sgw=vOoJ$:mcWV&yA*ݶ[H܏c9\]^'\% ~,,,4mT tRmWW5p`OB7HĢw.gc G%I 0%1;HmL [8!HP^G<4kfG %L$V<%[4 7~5ԪG.]OƇ?~(gr{A؍^Bݙd03hY5%͐fff̌ F\],~B:d4jhnJCFϲ49in%+[.R3:j l؀r]]6k=noU;v[n&ݗL6kFߕ|K ~eӅοpx,r0 YDXL ,6Fk`S-@˪Tsa5@m1hD.î㝟><  :A'F F|ok4t[N`4CrڍG??`ra_OVBo>dSvޢ@鍑 $ >di.C[r f3- -D\XG$PzXZ>%hOJHׂZF"HO;Ae4)y6 gìGCa&3ւVA3@Ȋ1%| yo+1Xx')a}xXywqn\9A/G;A]$.,D&TL430|A">?+& SX5x&oI>22n%``*:ӌ&SIHJ6*䋐c7AkςgAܸ I]wYlТuÆ?<ڃ_'$0GNͫS|b>ɦ[LPkZ M(Z{gBBA ag@H,,A T WpWE.\Ed:_UuOO'A}%V}ԩS'5Bfe[-V˷Ё$+2X8f|a F.`0]_i5^r :AnoylM*'֯OϡJ˶K75z NeKԫww+p!dEq#7m.^J GbN=h' qL%:P7pFwJjRCQ {1r0*sðI@,QD(=)SJy0@8FD@ަ+A`ȈILe0'!2cf`kP!Ok(@zVApj+'d=w^Vz<6 _kfgϑ/&N v֐k ~Ξ#~WIU<ףH@'EU-m'P_OhJl!V3 #c8ϛ`G06V޲ۨ=y831E> 4tt/MEBC.T*jgB?L@ ʉmSUYippV2L$4y8w *7t}TE2CW 6]+a!715Iqx-)lSy+z+rB nmr9A;^y۲mۖEϾ^ccc= 076Ʀ4^@Eڧ"h׃EvsWJ ˇ)M(rPgEeH(4BzjҜџȘ̖Ua]lZWN_`JZҲ({r22s}B 삽u˝Sag$+ `lj-UM]Mn  !7F;7c/\Г2<> b3yy6Jk"6}MJm > [;vc9*\Wqd8a)Tvƶs&Fj1\:Nz%ebFRZEB7Ni *iRh\ C|hVƁ)k`;B>U_W$/ACY{'F$tύ~wG(O<.?D=O/79_?;% q^TT1mts8; tQ&;̹p^@Sh^h"[#yVh/(_p3vRXK[6ا`"m:mm6X;<>m0P'32)HS ή9Pr$"Խ o=Yiz?_@GK_ݹT mIZ}oiim#+C^$1MΙv\Y QYBG=уNi :tK7+[ٯysyGn/y|A> $$?2+R#tH +Ο;E:SC:]u}vo|)M5j1+~I8]&KJԴdÞT1E< E^;ly7NdC@hN΃*~jC;›̼I?_~* xgU[xs饷y 0.]OzApwd:&iL}^qހE4 r,K.F>h"#IX29-b@);Lv2~drcHFjt$m{#@2"=5gĴץt@v{Yyf$w6Ѓ8牻"/|[oo'qf{>ڇgߒƿJD0D$<6dﴐA m-- ۼM"K2+aԎC:ygw^2Y6CW KU|i |D!{3Ts~x [H'vDwHKC>f$fp[^q߹vܾiDZ}mQt"MMUI>#UQ׿WW2ƪ'ltEGOA#<εʐtяc'ݛ2 !_Fɯo͐TTƷ"Sُhi}E"6&gm3gDloHމnWc a0|ϞZ|K{&k"2nqB7,mp{Q侍" &]9 @<6Q8T쐊QޥÖpo8F08fv2m4Hm\@ĉ}`z(ڂ⒒Υ,,-kzlԳmb^Ǟ7^LR&l-qbÇf#DgK[ǭ[7NZ2@7δ9p=zmeo@M`Doyg:!*z-]}Q/.V9=nwÉNk|;dEٌ, L"1&8*! -QqOC 9a V9l1 {_*MlIM# wZp񟳎0LuTagv*)W 8]Z i8GlvXnϪ7&×?i@TpM&HִBSU/8.`^oZ+ȸ7bYqGڤ4дBۚQ ᦔqߟhݞlOt?$ ozleC,7a2VZ_!gKt`vCrDl1.31v\'Xx@i(Fl!JnᐰDBH;vk3gNN}*,BVI-ʍ{b~0;79ʍnѥ };gwLFtP%M7܈tHt˪5sg,fڅHXT<NJ"RO%㫚 D@Z؊NޠCDйv!iRS'ɝ`wœm"Mz1hhEUQO1!Y5gk҉0c#O@X'X 5z+Jk5UgAYsr=@(QS(܇b߆qG3OHpn&! Vt'Q'ڱ>֎InL+k 8z 㙔څLHD#'M$"kөdS>J6.%AT3 qc ¸JdP9x|M45YsެnS]g:a D^B4fUsLBv()F-R5LJ7oғPGFL^G#H (ڟD.J^k܆j2Kच0l1blћz*7mSj F}5|>;99VI!i&Mj%k.l!i`D&hsɭ`ܟ$($x9ZS*\D&-Q[2MD:|"ʼl{{0 VX*['J+m' jfYg#Ul*[(+fFKtX\m ( plFK$f1p,bBUX;ǭh[bCŊP r,R8FɩcVŹ-.oa;l8i{W-QBڞ{ Y-jS &/ 'Euv[~7 #fcT$ʡvii+6k{KHFMjzҾm f7Ýa&q7N%ʐw>ĝ!:Ҥu4y-JRf(iI:!87*i8RG!cv=WhrFJ A.!PA ` FѠ`* `X b=N~ [vBJUUՎFϞ-cLo_Yi _Ϗ?z&7u>J2'NQiwإyjO4rĈMT>zFH-e=J# Գ0>$ܱ}^nvFM`j/Q~:m4\v3Q?lȒLZֳ} ,f_FeC'ϝ5m4sf`]mdͪA.\c}3Uo(Agz7z^ ʃ_?)jnʏgNWUjJ~>sO7Ƿ?*?[G*ҟJZXw] !H xl)1"8 ^op|g+!&[A'DMQ~uxphSuvgS{w…ԁ%tUG?V?Qm'y:7!]l>^Y×#{IJcn3Jf>VGZZBDG~:t<:pMg9`vc G+uPN>/_?i}?TS{z{_:^>~zvc1oc//zںm~'v?%a#[w/[z^1b%WTO9g>?bIf+1__#oK Kz%F:v)ܓos%F2Z}:JɆf7{Ñki8)~w>p*/X{:s#|uLPO@3{Tȧl祦K,򢙅S>p'yfb65ݟ/n6'Lӿ/J1+!?ڢ\U b-jYƒb+[X~?w4z n$@_p+Ɓ`2nwnp/kA m`'g!p'xy%|~Wo !Za ?uJ1:ʿ^U{NX"꫉m^?i?~m_'NkC ~‡/~ml}W>u-`J'oގތ9b`q.zw_sp*q$zJXiq\c6BFOO->̿"W@)8 \HBJzVkb^9oz Ū!! !AwH6+%ekfB{ $V}4}unz_fg=&OuWSHcIV>6Ʈk8] C.p\%^}ΰ-t LG0P4fJ Ko,/L}JsJ륯ZGj)L+/] 1d*K Ewpùty%bN2jpClRoJӲzD}.e6ϝ]CXԡ}!64 _N4~ǽ mR m;r'sۣQ nB0Ҍq'OGrsw `Biq-x}HJ<vq@ڇ>@Z"Hl$PDRk,ےb_)ھ ޑmX;?^Ew~`xS+M_9n_%@?|`wVWt%ra)b p\ RfL$.;Aޙ3:'afry͟wf޼ܲQyF{ hvp.s+ 4h{}>kج7`PƑ:dGײƓ-q%^ர++M~I~Z/Cwu,;wg> 'C푼`ql/-h[>a I tnPMm|xTRa۸PGG%y c(LB۠}vh۾M}tu[ɚ_׮u͚_s[NN΁cI]PvWQY3u;o]L^{^"_4Ge@[;jճ4L٠TI{+{z;NS3ymh F>0f|ޟϧ{"5*3N^{ԓt*̽Xڵ1 X`'賴gϜC@HJh\=ϥ9@y*#,vW0X%:B0}:9g1 м,]&h6:XJQ9W-ey(thlF w.'ȋU#vv2{,ԼyO2Lo?{2yOѢOon#t9Е,L 3\Щ hM+Ҍ^ƌԳAV*Tԓ M4$iƃ8Jj|lcG ޵>=kf>m{PW6澥w?n>zd AފN?!ĉIV X8x؄3o(YGCL!ԇ0;; 5}pQ A%5iJZm]t0 +AHh c*n?Vp-b"4n7(ԑ卑Bg^5)=( IơYONF`y3y͎V0-ƁbHizvsfZ5C2/qka{hϚ}Ҟ=}(tU t:p$$&~џXmƤUI: MI А ɐKɾSQww 'nⳖHG VBUgyLB|ew0czEj֬ {jV1xxPX%{Lh(9gЂASv:tfc(HX1vJ.MJ'eatS*\y$>\7'`t"C4܊ބNndqE,>۞rح'$$o 6ݫB'|UI+k]oÏj/~0pwۇ-6E8? W^il$A4ܗZ{(L0뢯*R oJް3vD8CڜbKV|TB l%"]מ!WKkֵ(2{ )k 4ہ|<|KAP['% :y>&aB)-h$+ntV[Z׺u`=E1]`<㉲RVUyӰa j*G(P/wfݒ%[;wsQIH!+׮Y9Nzcnۻp;gϾ=5~ {nԻVe*V `JeDlKx ,&{2lqneAmF*ll6d6?xOHF8" %΁ΙNހ dJMXc&q^a9#=,vr7C^>s_he&ҭ{L.ƃ}SPybq&\W/^ (2 wqXˋxIF6{}#NL&PzHj:'HlaiU:P[u @'  xh[T+)6xRu`ΣhQe98`.u3ϖcG%iY|}ߧ$Nl>vwJ~ʭN ؎ h?ᖩb<笞M޽*Z^5Tgd]gsgج-u:g?g`*ʵ:Q>.TGa9ˑ$fAC %RJ2NLRnH[/-ᯠ>S:PN_2*yRU!ĄtOtk tЕ"@Zd>/Ĩ F kjP.2js1.)f#N#8z(%K$bBhLt4,BB2S|"ޔ5dKU듳yj Z;\ͣ?P?bcLs? $5K:U|iYt*ZjǢ]<ສw{F;88$`7LvﵖGE^ &1 Iܢ=?&'p>G7:'w8<9;wgc͌+u.[{Nz[8G^jMIIEPb"0$^4]5!S]+GiJ5kS9Ìm[h,]Lw2;~KЊxreeފ0,Sv#-n j9O5S~_#޹\ 8cUʪ)[-)Q)k(Zk2?SʀkU\q`q7+ Ci#czY&x{0B[Ri)V stNV1!+j n1I2Y{N d`ƙCqд i =݅  @"a$6L/ iC4Ա}4m3~Pzpym-/|Ru%Hy0">Q(()u ʥa 񥈢5A.Rbm eR~6H.RZ &N'c KML ĊHc)3$QVNڑ2ܣ#xGJAP@ ueݖn7ܻ#<T"}"՗D&ܔpeǶ4˕hͷ)H:,嘨xAobYěhAYnx`刏PaS,Wf"Bkyz[<NlZ]mTh Ж8$:$+Pkz(܂9Ԛ<ܨg_>:Xޤ)!gX5ݤ1t:IgOIɩ $xء"n{}X@CsXmRDR#^#g]D4 Hqx\~aOIv 2_MHj~'k!>  TfpP'Y!uz {ot!;5ʛgP!܋E [452ct1gVt? ?ŲpH-ѡ0g#]u bܪ;*=Zٗ( >A[zjz^:t qjpnuܰ?P[xDbÉD܏RZLE?{{L~qvvevXcƎC+#09VN̙4t(ƭYvebHY-a@ }&n߼y)fӗ:R1/id>iL3fN\U[61EkӦ 3JվĿvPc[ҥP'dLKߕ SeʴA-&HI7=_eb`2ye{b2q3ITFk8 0FtQ0Dwao> *R20J"6`G`Мqv|^m,8'4[m9T[iii٠l&[˕8't|3'bovēUJڝmp>6 sOSu$|*[9GBJ|nCwu 7z;Yٳ#$/= hESY{,^Tr˜}dH VYx[ƕ/qZCNKj*r}fΜp,bM槦z}yYہH^<&xSӳYES ԧNVJ'ۯ޷⏇uEé'-?>M]#ߑ^u۞lܰNH[;vODCwA;1jƽ:BNPOy0<4j#ڷym` (i`T42Tz3*}a^_طIJX}J̨übXLgS*"`65v))m#ڇJU ͠2e(ybI\a#˛c>: ;B(n0O"2 :%B?28X}i?R(`X Yb ( '0*b4Y&iC`TBA~K4= 8dtM;k gfJu'f ޱxEj,ȎQYm0үuVX5R:Z1NN*ukm6ˮsɤQah6[m6ͥ39V"V+C2ܡ{Nt:][rȓ+ytO0AJS*tꮘ Aiɓp #+.tEPi,BS;StQ{S22LQA" =Hc5Lf3qH T6&+7bf p 8 z:&bSWRpKw;JuEO}c5=7ݪUf@_0M80H&5fϐX1%8"zŭCбQzRmp :F莲MeWGWC!dryt}L޿ o8#ݖ,@-5&|hF`TRHpgI`nhE0kRt7.ɓқ~C زlNl֊й*\ mcۑA@2Ff)49 XtP0*[ #*^{Gz}FA;oV:NlIپE[IfMt8DDj3!Wb*'qAW&]*6(MAy.e[Ƒ(~cxs0|&:۷uk[1~?*a,u PSVS [y<njՏPj\jbd;Y޺!:!&hXӕG z`2&~F/M8IM/N0w% e/wn%YƀgmXߤ3Iq[ p-1 =xNN\IedPHjLjQyPC"$f~AwiB]Z I>|0<" *(! tںg8Hg6&k&ja&VZղTL};ڼ-%Xz`ާ'%'R$]9!F,U%/[Ilt%=Ե(mNų ن ul b (;;ʂmr[bCh6pV)Q'om#1-x:"`Bm~ f8K9\̴:tt_< "my_jUHnw0#5)9,RQ^0'd`eb}fV]3z)=MG_#: 9̹k˦>C88tӥkUpр`ĵS'Ɯ_aJ5 @>.RnO].L n@!kT7n'a͊G[֮ԯ j3N{wnT&xV 6(vc1(&Uª ّ΀LG8 ?+|K (ߍIkp. E*]KIDb d1L&]ZHΧ،y^enkMIގ)˪3&]|K G͜8eC4+x9`]>;Ynt>Ο`sA+粂Q gsIbi>e;iTv(zA%!(4K~J(XbyR z{e[@7g'JA&H(^x4 Eژ&P}5Sd{#S/y6O~t9cz4|Bs>[kr$mDdOV2vrX'D&fަB%$~Dbz쐇kOKU'`M;zui8>r聓ң\K{$$uFGs}|EڦQȊ=c8()TR@iߗni"N.nS5ۓXtA^8zY385}HX9b2;eI֭J]X1n, S2]lFakck f6C$>I~?ik' ;Ik{h:Vc"&NP6 s8(1˕&ʮkSq|{^ݿAoAܿupS47讑~iziOIS<'mZSz81iN4gf!CNy6"vlc;n.kt7Ӎe3PsE 't#8ۏw}~U੃ډY7f@*P3-y=6ixL6R |n bdEMcJ4,BqtDDc\t=oK]Pxg\ CIɍ+#2ܕ " s9Wq v\fKD 's$PՕEv7L^cّNefswLzN#H^{xl(59層Y/Ja?G'"8b,2yp=(MK0& $b>mmvE fQ#<$ȒEѯy^qÝv옍6@+wM_wiAZo 9`p8 R Œmkތ,'rڽdٞ/j_N+)uB=զ.Q%dF!t춾}WKZk݄>wOۖ:>z_"M:ZA ?uc[xsQ,뾕sr\պʸ_ M.pm/hjHMS2Ո+w7͐&Es[MЬ-[EǨ[Eב SkW62~?Uqc'' 54u?oa% jr.bKmsSYŜS/KDž3|G]efBU3޺sz~5K/gxtqˤ,M]w }pO01` bY0=؆,TD<d|yǣXy&1R{œ%E#5v%}fhҬnAz#@P 8t7,v^w=Iz^!fnޱqR$ΛCҡ/cMl tùy9F3ƄD[cL|\ewF-s*wN]޴4.pn 23s 5&{E*"t>֪ vb#Z$ij:#ɞ9 i]:y:W?w\*=+[j\8tWBr"!;Hvk8 |`qvbᓒ&"v0*"J2dFSpDr|JZMWmwJWc;w¾¼Q㧎"| 0FᆛeF!}mΨsp%Hf-MV#3fNܨ/t:^= { OhC7+n\%@yehuM ۼf{p=[- !٢؈X@ 5|.[Y,m8<' U?sEiD9] tndSnn')=A$vS@;vyǜ07HK}I XJxxTO4 E+ڭiVlSVDRYn'L0D#HuAw~\1;!ED !LLjXa<1玞9yUwX|pT.+]s=Օv4:^Y JnmNRDg"{-ToIř6d̜VB܊[ZOZ6Zy$|Ћ}$wy$܇EJ:RYMTvم<7,POX5C9P.OI3<ʻ}>Ȓ{?$ag­s;'O=ޮ}yPP ˖_6 MaV( 6YA4;.2̈́ɊDDBNRDqEnE3v#*  mޓcW:SZaU8.4$'@+m6JĻ!0EQr:=z!SyDp6wF0w~LҊwIrfvK !4> xſ\W/.`8nf-[.<5IS?4_ cbH27j݂6;yҬS3d63= 8GjvX X.DV44K;3JP*&K}dI§ƕ67\)YB1~IэX&E&9`S7Lx6DŜ\hrrBچ=zZm:i$D0q5P2OXB=Ԧn~2~y1zo_$w;au }:TMD1EЬN{CbdL}n04-b l-bM$. 7B|60($0:s| Ao}{z2%.JQO~4, TB.#. Ƅx8h]Kc?$#+<{;voŶ/D\ 7/)K,dx q`8F"#Σ80Y+":"Vq-֞*rpqrD`]~o^KuǠwD_y/nwO5&:3p 0bI-I"t ¢JTDtaA\"vD˚lS<ݜfQ XgBl'1 gB(EiCw{w؍̽[0c[tf3 7\Էsft电y+N Kqap!>m||O̽=xeLu|Ӳۻ?+:PzFz"I -Sz 9Ŭ#54l0=;gNPYIK"/4`TVB_~ Ӗ;|L9}h CIc=;Ž^)规y/n0& F3x,#EhKęIg7cQ:h6^$d7(P{>Y&fެ i4WU8-,ʰ ʰ4QnT"j$'fs3X˲'mk Ļaۮ[:FZ:q#lCns|E>kؠ~B= NgU9*(=ش۶~0 8`Il}C٬ &Ѫ7pVk5>2, ֨3VuvGS|+C$U$u|o{g TLو˿sE?QS"xmSEHOKY =Kj9ރO4M:aL(@BR$@ApED5HR;6 )!)\ K+1rSY8c;k@phzgruuL N:F6QcO,>p:+gbF`sؿiXs^li2jLnF)cK 'M%t.%TRQ'b3=QϘͦZScfث~0mRdzϜu"׻/WE6keVOX=lC={VپĮZƼqaɖ4P>MX3 kPL)9H 0u`W 6 {%6D"A}"|>\|A>5oJ9wdh\=MX\!Woj-5FڇS#䘇AteY ҕ9sr$bf~SwV Gߩzr8VlzN`V*Ziѭv &R1'jw$Zϕ 2,=Z=w[9^ʅW?YL:rҐbrO2AmU9(h .9"2ZYlqCwiXҷv5,LϺ밀U3xhCQ:D=DKD}Dy! ;:֎4d#ޘIؠJOtNgRǪ)HBy\' {hcaura_)g&`{cma;7PřxG'j '׆ e˯|~r_/kWWV&^.۬_^\,/zI!`{7-O5Ģ3(>P3zؿêޮŧ1U$TAQ8¦õ7zw+ XtQ Cv*VZ&^=[ȑWJuH_{6n6i`{k5pGvQ(p*L6.}A/uF`H.!Qd69DL-Й Sѹ:5 R4 s*2 VfyI=mbH8v8*jF w+zAc k|T1$v擋owV'-=c̔M>da#]0\bjG([@Hcsqqz+&II5v1TmxF;`Zvtjߎӧ.ݧD ,5rl"{a0]Tچ2=͞LBPL>M1%JEȏD*I& {jt0?4I l&V>Q "xUl9 "N|J;6-djhi)-ҔůlPVb1` 朿y}u@y5)/k0ΐȟwWN=cMnqc,mC  B]A1&/ % @xk=w`t؅h$4PRG5XɣbQAO.탃'?td;2S>.zD_Kk_;6Du6qzlKt:>ڠV9 Lk򾪔aVRCIL_-w |dDk|[v554/T5+!FSѕbo4kBVc23s.ߜUa& k &d{e o$y\KRp Oy4lmQqcٳwQo(@lwQr޷IO9ױI0 a9UM4t mhxN|XL>OLWM`h2yNJcc^dqr:pxH_iFDXS &ZE`1%wf>\{)q{7ya󆩛ŗLK`S֓';ԡ)ջ03KQ s.?K8Nm3TOHlf#Jy][ѯwn<~ @Ni4 ܙUMڀn'S08Ӫ¼{$LI}j'P_ c8 /\ ɷu=(ǞӪ$`)_UL߸zYՆŚgұΟԓţԑ`sV+c2I:(S'IWb 46)&nPf*nrn$/@9 ޔ?,,[4wrȩuo7zQ)TC18v f9=#?Eԭj[c.;ݤ?۠7؟/S4`;6yxZU̺$ӗTc ,%ꓕ:;y\St<=LTwܫHIpK] 1R`4r|6ǻ^hV`z:l8rrk9js ^ b:G90GZ@.cS IE|L uC5{//YYym[gSl-wuiH"e(b|)P ruӬNgñw4,[  kbܸUL8d6%yNI%XHdu_S9h1VokرwG~>iǍT9jB+ 0au3s#{}E}={8@Y7a@~S, 1(eA!?Ǎ8Vn= ziJ*w\2y*"1BjF#Q\#/=۰>;7HLn4i݊K^ػA L_o lZia3[gm2B=_v'LzIi4zr'XlW&(3T~:\HC^jhxϛq'/ h}+uxTQ'|)J,p)؏^uܡvisa8[9;pcgLtvg!;&2 urz,i19$_7HpT-M6YZ(mx$!x<>fGzJKRE{^YJCȈ"KE,*. wm,?QrJہfUέʺli-T֬E~ińu>/J3whS;ϾKiq iFtXFc*KhqLabkb k944q&4A VZ)㍣J估#%j8a߲:?|;l'agRSG'o e;h$3XI*,I.˰eAWa [5cN99bjT H[:r`~|xb-4e:wIh w-SU!8tzWa=KŔdԘ%"tϭ˧n2'^ n*.;UPi6P  9.LOتeh4#&0ZiBP~KQPgj0,=>4| ^X~B*^T~`k@"LU&@Z:ZB7xC 4@/_9B;ѮC2~ g(OhS92s,?4\_!+"%>lYdv1>>"fzIb9 ydȺ _gX l/\BKDm(>)9SFm$ Kc3"ur*Ws,g©st cʠYm VsexE>SD)Mz'i-ZF x$XCC=~S֛a *|^=g&>(l?Ԥ3x鲂HN .7@ӱ_b &99<7fj?CVȱ!c/Fjߋ-.tehE ;PJŝJhMc?i jL1"Y4e6T,2Ml{S>wX<㣘L2/fTQ%bl:GT3xWl,&"ḐzOU7nSϋ RFq>MWǀ>im,%,"ܾH 'Z<^E5=?KH G/.D鬙MQQUb3 yǏc讆I)9ݪ׍W}YKM|O)##*:Ոɚq(ONg>V?ꦽR@)u6vTvOYcԵz$=nܳ'a2H]!RN阨̀)yAn0dzҐ>etύ:$62Kn8d3&>dlېT}ې]6C@;1X)TaKB򄐆e:q{:Qp4x8vϦb+9RC{5[^Ѩj5΋ŰI@L kEטӫ~bDӔ9ِZ(K/U8q0_HwI-jt}n/jYjj?{AV@" 9`Y(ד!閜RɃtlZ [43>#3Sδ;Dx{\." KE/%ǥIp;;o\ީ5wO <"X(խ"nw%̵ f3t9,16̢hp+Eq^J c/0B!<6R;9R qߕGWފ!LWm10C9PB/Ѥk2,0xT¢/BtL;rYMk'D b\.ZY`DFi`zYf5 gc8,q$-zFIڢx6RJ3Q -#.+^TsbzT2uA~u.p[(HZ5 kŔ`u!wdzQI)/boEˮW)ߨGL+Q:y+*o-#DvR$' u5Jb`(v&@#jj`@X*`?QNVʑӄ!`/+#v&uÉ$}4 -Z3cJ*f˶]#k*Is*pҔ./_V?Hɤ%N6Z WI !~pr慈5hJF+'lhSr\N̠[OMf39~HXAD:lr&xNs;X唌P;-S0 ˣ_¶=L8"6Re3&=a+XV3G<8f7k-zPQZ;M*:T_!i$=~Dž;ʯDW% ci$R*f<i4tGE&=#NVuLzpR߀ʄ,0acar8eUT^#?_D' 5eIT_+CX/4G,V[A0QĎ‚33]5NzCb^ vBs+Ay`sXp^;ޛ_1<>&u $'5h%̬ՉKV\n3cM2fXsZl:IIMkBU" +(q$yKߡy%Jµo]a $;*R@ K#IEdav^ְ[0QY%u#H~E=j]HdmSbռQJz.Բ^|0MmJ4+"!EhTʩOSH IBBT3Y\[XjphwP@1dq6vVi":ؤ#eh >"T}TgYi;;˿\JmgG E3٭g6R˷ݛf96sl9k;5f0<.9 E {89OeM"a^F.gb(iCSR¡.a>sebY 5bHSfFJBizgo.=z=>Xmy97n s4nC * $/#kL\{Zu.H>>@ea{1yzk*39jxib;iӮ4[ ,:tWFs˺(ّ`zu~)|nnago;O]*UCC>,I/7 K%xZD!|4"Qm~٘&КogYcUPk@ڑ5+dv)?%.{Ӧ]wJ/fZxس[\Ļ5p'.P+8]lܬ 6ySN2zq#HT웅#_?R ?`oԇWsT>.H6hOPOG:25 :᭏^X4<@KDJhdVvW4D?N]ߛiY5&gHtxsa].&V$}W@$㸷 ֊֭rh g0gsrsKaR&zϜ^m0wHl֊Vܿr ]Lͷmuփex;Aqכld, o8_^xF`{|SRMXP䠝a2ӑbz˽auof4c|c펍ee?(5?xݡa(#<:[/`6kMJw 棭;;ixr+Ջ0ՃC-ґ]cͬ@k;Ӝi5,90c`AfW)%0Ž2.+ Njm2Nej_/O@y˶z|ԓ۠f֎7^~oD뇲c:8.+A4 ]yn MOrҤyR"6;Ih^ ;u1g,CF25pE][oUF.cԗuKn3mU}9s&ڣ 4p,քs2ݮ E36RY>j2GP= D{v{tA qԒK[<5 //;My.#iŇ @z&$pPcZd"XPf(GEdEhZt 6hV')ǺI$ݕ՗"%_CK`K`s'z=|@8xY6'cz$ bmVAl/PpcCu&uN&jTeuR\i,2Nl#(BA UB1iPX s1Q M".`s6y2O)1Eѭ&umZT48܊ F+*-Pb$`X,#YY$Bޠ7&zY8఼,% AZ :Qˇ.5s ×?ObufNrBtzn3_T#ɵs^X.3-ͣd|49͜:mB9ƀRqMe%ѓћ-ʗ31}4'i^׮3#$)M3j,4n4>A_fN7k`VrWFIr6ޡ1l\0GNi_Oo=yyw'O^x>$LkW0#HrOE0k6N`P, YA>b1VWkk1ք- d`Fл$ȔwD%db3yV?px?:'_Ѓy"}_k𮪅#䊙ڿumG>oysy/x?+Kof}ɨ 8y1 Ne"6U{Tʏʕ>S|pȊPe}]|}ov}`(OJo֮ƍC6SհA7eZ =:<{Cm24Œ>]x B:Áu"acaP2֒-f'X#W,k׶{Eoպ}V9ǰ1V_{ݦب2nH[jK߹ "1>kZoY^#0:$Maɫ mP!-l$A5H|cqK ʕCFڭMqAkaumt~YkC.=WofӿM:11 [x+PU@LITJRv ڙW_zM1~[Q[`P`{btXR/5!Z WP@=0(C @%~ZBI Q'֭R֦e61|dҶlNT䲺*~+hrF ̤ '?Sa&X Jxܝ-a^[ڼ+Iж{v#D5~Ao3\ ȟuz]uحG3>" UT\L$ X񱄧UC:`<.f/gGbŒ\޿v5$ʹ{;BΥq^F3L{j€1!׻ISTv&A+Hчærݣk.aOV}ᕝNI/{_wo/z0c%4.qok658[KjLm ;,y(9 Q>Ws,Ã̃P֢ט\8}!X?\.dsZm$AHOv!kMmd|<Z,]w'z*eꦽG\~MF} !<~+ >tk;wo~{*Fs $4ұo@6\acWڶFbQ@y *o _'!y/|#m?ZN~|W~8j*l15J΃G7-_ozy ;m/Q7uknmЃ XӺSLkM/C"gGiSs/xS9Y7$C2:Tq*"KR1Mfi,'E*qX4]Wͬ`G}9wڕ| MW߶[6m:w_ j*ׇvvf Y 7Yp?ۻo2q1 ,|qڄ|D>j6a AP8~[tۖ+wQ6$ɃuCw[ vxo%xA*: 7&;'biHi^g+ZIT6 Il_̥ߔ+`܎ξm#n6sx=p'l~›,gWkRb9SHDZA:j& V`s9|^Oe m.2KM%G>iNqR dBZ]FV  >xѳ;N[R[MZV ;WBy:Ҟ i>M԰Yt/jƢ[T:6rm> ਞs];$+;w"_^lSܲVXqD#| V_<zaT.]UYOSdgX,Sn2}aR-E4 ʫf]y9Ia!\>>0w/.:~ܤӥoQIeM5"MP\:[{XkrLS vi>1O%yI/;**sOe$o ׯ1Ϭ^]nzёѢ>$5B5Ks׿*0Jqp+?@ .!mJjDKd2?R%~))WR!_)`+ Ъж-˱Z !!R@* @w )$ C̾pď oڇDA8laE%|P&2P)a0YJ,%L Rdi PH"WeN0#rwh?r#s:> ~rS"GQG<c- Ee66%fXJՄǗ4"O|c4Ii>4:a%=Kc )xJy__(MW3P6,߄E'%OPjIۖAOʷؾxJV>_Km^ۡuefz7 sõ*í[`( sA ~*L'AO l;?DA7C(>Kʃx[ %M (,IJY,40skghh*w}>^Ψi赸r9 Ä́Q5e?z#ΙdfOxgo}A>4*'I|z'`e>JI@?G7xu:rKud`G;«A-2Ltր$nj&@FrőQ;5iI3/HݶR2/"j΅<<|uFIj[FY$ppxQ6ml6D6>K7. Xbe)0 t 6v<A6sP"ދ%&+Ɨdp*0Z| "&Ee==B2/u`wT^,iN%!#8ҳ)} ~bHg`$vJJT7a9S 7H ++0`oC)*Iw*t~Kw)wsI[':s2bhn;߭3g T#<IspF*9)Nԁ@*ldWYgIm8TWVPDD5P`S߭~|93I8[q1Cc.!Uc" V!(q1 ?4ti>(P CC-]!X-A:`$;S/͠0v[n69RF.44x4;;&9l p(Ys{ca }ȯzWJ8>zEnxt,~=>9ޥLW1//*IPy ~Xotl!͌,vpcY<ՔF0W y,ÎWq?å͞"`/^x;TQ-WvyW~U#g{ڕGU֖͉D o вt*ԜZmnÞM7i.uiag )ah0gG-ä髠ZMHx8W5J"Gr=,h(t )u㢐H,:fkW6zt4CqSqmfF*IhմC;C7_c롷~\ݏábp{ېegyf+ ki۟&W^[뚰XK S{;Y HG{l>\ڍ[;xxAܫ{y:N^^͙?jVv {ȅs\կgݶ%cƉџ{ 3^zr 9zZd85e4|WxEZVmQdTsXtRY FsTv)K |-o[2yѼ{W[>{-j~ՂnG,}P@'Az!'E;D [he8^.ls"?r\zT_&q`OcBUEiO.%*RgI'ˏ6֛<t}; ;KWRD ry F%ڰ(k #! ؓ&0~CI/x@+<$E pCaN7ݔ#=࣪sn[&L&F If2:PBФKW"E@)bABQ**uW];Br>;7f syN{yÍdN-vg{ٜ^76uՁ*\}ѩz7:U};d!kJcIb6 1VۨW Jf Jl z;GTV•tq.u}j'`E;[ZFZ嶈TQ܊Zj8`)TnP^lv'8z.(2U\Vv4ʰBaYTf[TR̩EDX>&l^cqm v-Lwzz0N"AnI&Jd324)Hra$& 갈5 _a'vn6CϮ=ċ[3 &Bl{;A0LjVgd>ߗ9!#uU3殑գv83f7(2hbmzd&=WfKֈ9MzB:C)&^GE$v8^䋤~-{-+n a#ԯ~†~mAT WT־VCj3z lP3A"E!RLٴ'-.~>Vqv+&CiTjOZވ9s9|>B>4xKµSZݬQ*U2P{ v29ݐ(NT*m}!Slzf"ؙь`vG Q [cMA' r,ɍGBM>~u8{Ԥ_:cy)A_i̮U0l㊄~Uob8^"V׍ŅwK4UD(xo|r#WL?#W2Rl#aVOu:'I"Yʰm},Apd7BRс,_8'ڳA% {OcSO/wh &0GQئmR0,-:ザjN2]25{t C'iLY:^ׄKM]jOO~i陻uihh5|oj_"o2PJPEȒ(*b<(ѐKvPz,YYR0)IՄ1ۈRF EOeddhR\LْO%?$2rS lTvEۻo+՛g_&,\ev:d[m`w|(ʘwF›ﮚpԡG@`cjf۫׽3: dWr6 avx=<3 F.Gqܲ62FR?v{# Yz`8?!bLD2%%]V}IPHajmܛO`W@eMqexeB&!AJKKwLt:#3jiutB;iR`i\X?ץgm(m:qf&:U&H P[ƤU(64h7`2[=H( J~KJ^BխNnقxEOz.l+JiJ7h5bZET!)GOxC+ zr}yoY^K}H{~5mQMʚk##H-p1$škaK?HT @UCTD%|ʰk zR*gqݒ%dBĝoS )n'rEf33q%5mpPSqse YQ?e #0B5t:Wr%&ҝB쪪0;L Uan$z{L%" 9R%9B>Ņ |všxB{#8pڪi-ͺ;`?j軀~J [ Va~amm . { _Vu,-^#B~F\b*Ev%RxF-NLÚ8'Wv:i=$Fkh[<ٵ\\)+e ]h~>?mcw|z5^*{U!<wY6ic H:^KIay*#jH3^6ls$fydVԦ46aGbG:DaYh SS*՘;,tR"{gRM?`Ҩ1?&{?N%'DCe8WUtH3 `cL&kM?>?>Sމ=jFKz7pBg|\9"(^"JT* 'hYo#q7\eX0,z3Lꑸ&9)pH/h~E$ y ?~(ܼ􍧄 #F^9G&Kc"6  9tl@#N%!(cV32R :EuXA,Lt4_U(^ein`2O!,ibJMeOo_??qQivjZpǔX7n l+<_96.ǁvE ;Pe1pVTR8X-f&Øn7?;gJ`%I)`3.:Uf*B@ dd* 7v:5KoIIuh3QOTt=1EHʭņ>] DWix]rAo k%x6o6u~PҰa^5@~>r[F;KE{輂t qijъvh`q6D2% D|Ɉ`''zIxFǶn9޽aKsrR X0z{>!;{yFtyjMڔNR`B3G`=Gyl HI2 *88*+'ϋAř<= O*f,f ߿tK4;+}ATԲCVN:E JլA)jëO__zukʷd=2Ůh艏ڵ{5bEC0|nzڡ b@&sFڇ&NEٔ:2gj#[Fej `#􉾾7 ^Wϰq V|Zi];BT7;qB2Rx0,%,\ cD'5xB;|Z)/͋~$7ЁD+ ZŢ3iMV؈wXkրŢ{b1lb&19@z?5;"sr#-&ցXslf C2VՓj5MMA [ʖ'A:`n3aKQJ5 o\)(AӼ.iJϟԀ^śNXvp\  ]|*4TέҪYDJ.}&ܮX]ۈVP&RdA \-*Gћ7/cEC·w_-mcƏ ܻ֌yדՓF]&٬~KaO_ȑ 4 cLȄRީMOO0Q<`%ڥ+lPʰ֩ɪIb6 H"6clßrjphA'q k9E`r9ErnjQ*@Le)0Fm7=hD f d@LX@fۢF7õ^* +|O 7y~@YէWMi޴t fiN%e\xk;EI&ެU(5R XI\R^{Ŗ= J@IU\(|iooRu`7*EPĢԐ]3IJ?I$º1֦a0R &ˊY,MLbL&1.ۑLa3:nDb\]DeV>K["Yw"Lߡp 9|x$8HňjuȐH].!4Pߪ1Vfy22bG JkY\>1QФ)}+x7(q;nճL@%>ݼu8jGhuwC0yP~Zεk8`~Zsp+]{:#CUȰDObmMiZxCuDuLؗ&6BR m9ǀnΪm~+Th3E7YwopV5=/:vt>[gk0+? 7咽' 1(e'P{T,#]W oggIjӦe:tt: +n_e8fz6n0OlDX5O\&#3n<Ća;X4tEt;iU=m7Ro8YNxV^~w- ̿0~W%lgQ(1m  ujޙgX@3ÊM4+CR 4*STfd6&;cJģ UOf͞AZ^&}=#Xڳ5Oz: L0QktS)EWq&Ky{rK2^:td Y=OĊn$WT41db<.%š1 RsD2fKRm.*^*™3N@T%+ƒkx?r66"hnQrđÇMv8%n0 2Z^,r慊u cwrrQ^^ ʞ󝻸p…KzJ{kj_izDxpԴwѫMUY٠3{^8=۷GFPFDegsl2Y,9a1Dپ=֩B)EЙEpkkƊ;bߪ}_]f.W0ޭʳnl^Y]5*TL0r>8}׾SvzZclw;,00(BTHͳhYsX!.V?揊u#~> Mnm; =nA=j**2L[(HHPk4ve 0&2*:hXMyK~DPd !_z j}O^o67lݹ%k,޷f76z UBoXsXx0fzR%%B0uj:Z+G*)}|qߌH$t}H҂V!yG8̩d`THS, e*a=h\xpa49 MD[C}vw ^0wqa?WX?c x/fW/"tcV2I$uT6ݥFIJٚz 1ѹ:%^ꉸq!Y~IElM&j.t;h*LL+2Z͚LxU>3@(]k^}{\:wvh߸<~Rat8L]f$,2E+u$G]4?NDCE#,LJ=KsX||S.vPZt9`Vnjm#* Z V#L"S"-GCĄ\--#|j_W _-eͣ~ ̞jozXUE2ڰ@߳PCSX!vJߺ^-Or8jsI=cwt߰7P㛰J9{ORRSmJpm}n{z`R>u@Ƒ[ עc$* ݰP`3J C&L:&6RhN8!5ɉe*Ա!& !-2 4$XXX[mҩ56ęLHC%QH?-n=Εٖ/ôqpP(>9.\3euYn^q붬Y2s\Vޖ(j nj%rf 9$'uO^7=0{euÔp]v2g;Ef͖u;4 e*Cx?^|ѐ3BFX 8=l^Aqpbyt/^gj g ?к_ni Zb]%5F& DžIpkИ6\{:(>9WŔCU&@g3 ?|I,ϳdWl3V?_L'cÈe6O$}ۇ3R~}c%sFl! S-RL)o!S*9XoFRIA9'Ð%a*oY9cIKiK*ddFnyRK0Ti:(|[L: W.J́AN"#جޛi [{|x2hDӤd(y04N0qZ:i)o@oOX^s=L;TpJas_ݑ Q)Y<{ӿmeyXn8t#"&HvȬBFKsniD/5eLjK&#M,]:}h=6!Y#)rTcwm,l&_ቔ\&4i4 ^eUj 6I+yI:!oeWPz蔵kпΣ/oC0R#NQYQ;ZK;M<}a؍n_5r zDI-$Tɰ`1@(Mp3a CAwt,[عhZ$PXh^g^1O8gЊt 0~- @E3p-j{qyR09d;ٚpxU6l=itw6,mS,NάvnO@ DE#ys w$v!1 I*=wp_tø3 'o۰hyuϠe5E3f\ -ϝ*PZ7cx]8gy VπF]C pA`d*`/ڞ8I$^z۵јy՘c݅sn`%HKx#dⰫh3΃1Nj-U{Ƕn[;.]Ҟy>DHÀE7pl"&J@; PD܌rBfJQTY&BϚ~GЪ{/DGM,sc :E,9lp``S ^po\ʼh9q‚AA~`&vLIj` 骎jrmVi57=}C_vpv1-Z"+A׹j"Rph!h+e)zBJѸ_Ac%nY{df=셫5' ?mz HJ1zQ"FI[acHkc4z+L#zxsl2ˉ f~f;'X)Lѹ+lZт$3M@wt6kX D[}H]E<ٵԚkB ; ' :#mi4Bw 1[.Fv_y4at$Tr^d1uR|o_W^~a߲%tZ-gZtU*aђ@GF>5dR:K1c۷, o?v9ww۳g{-2 h* `*ԔīN;)B?6Ye,ǩ8Qm-NkqhUa:iD spZ.QpAœV=6A2LКՠ1FMl?W 6j^dJvbrtjɊpc4pMhݟ=;X.;gH&=/K餺Ν !3B3Q]lSX4X-P`x2n>_$/-sp?6Z`5jQi+E {Л5 Z m/V\$58ʦqcZבɍ~܋[v7>~ǿ90#B 8Q`q~uJ8쨈WV8㖍a2 O"ebpGG0176S"0ZWC P,32H+&yjVU5M5ȶ:W:|j>i!|A4*ŖǚN)ٹfҤK&aN}TU9I, jqh4Xt`4X=Ĝ !+$z̸ z?N8}R&b= jAIlQdFνo]VWNLz$GY$}sѝ.*~,} &,mjZxyb?*$B6xT[NUrZNy:LbjK kkJ8 /~njB)buA{ѐj-h@í=& yr3nعYE->R]A~X{ro7U` JeYtgQ eDQס -hϛϿ:Sc\c9` cp#vϒJ$&jQK 8$, ;L;^5k}Xx"Lx2rQHڄĘfPpPu&!5lpSv|qG4rѢ$>1&mHo*ʬfQuylQ Xy,0/iT0xe΅3v3pOM..WrBjZGn'J TS]sH.)' `J&bO'[1Sok ŝ: QǓl/KOIHHMrmJW`K ҌoZ>!_3‡?0ϵ Vl–3xp}<ݻK</_Qf{pYCvySnG E/PI@8kߗ)4?O,ۼ'KEm>M_IEs 2?u}Ƨx@䎈>cpwQII=EEKiD@,.6t|:IY Q@IID8%A!L~de˷&al2Pqf֬a 0r1LrG CJG$g4k-0 k,ԎE⋩GHjG~W]{/ ~3p ;W۾eN]$ݰkI刏 i~i۶C=m l0[ |aU:g&-I8L ܔpv p&&IܷJcmu %bJzRari7(3w].MCԁ8{M>0e᳍WO^~۲z?P]Y)5۩|FOcO-(| |_^YHy0 zQKk4`tjQ&׆"@p|)qq13l|M8ຆ`Wa=;|>&aԝGf-Ml8>V16 voXݰ nfx>V?q^]X~R,TpeXW&ަVQ4#Tan#mO snQPZ;-#NsrNM b5 XmE}s|T"`IDV];;\綮mI)!K^fJid5SSs !y^?f aЋdYlinw 4m#f ֝ViN*ݮWtb6YӐ,Qmrbo0[6gd̘b|>Fz8'-SPqG+Nt8ypP5awe -)|?O<0,0qo&P2iu %# RT*FR&VMRXu!;3 a3 B8?녗VƳKS?bxox'Ŋ\nCL̂#T))1)3DebvN:MJړ:&a:V kauJ+"\X.ٶ B~?y뻤{㑮wsAg4?GuݺYG6\Gm}NLxúo񱆉LrPf7\]עP(ʼV;W3Yʰm+úBsR5?Fl1keOhr]K}|ަMWݶL8hp&`/yD8-tNՆ(f#ΤQ׈iK!!KI_1jRi7,p3 iL uO@tR2C 2:R*&K#Gc"SL/9ٳ8OCuj7k8 Ǭ;s(z^ða& F6IudbQՆ-N 3XBK9k#E6=[kw]۶?->gm?.#:`;JAyEs$`v,FLA')<.Lv;ZB7o/djA^HQqI\kI/oɬ^ZĎx##9P]'}?R)Ԏ=ŵ\kӋoSvw3|7Kvgy8%;2{~4CH=9Ր\͋rOh\5fgi#[DoXHN峯`.t!Jvk|ѷ_`Lnne mFll ]C Hu&kE68M-Lp\aЕq)xFmT 8^.,K\.\6蝵s/_a[Wn3m\7sCW/;'>y[W u[I?I~@-hY#4K03-v"6 cFxXD#G[_]4!(t#^.RkHF#o2N [Q ֯﾿zr'WHK)-STg> FG;4bW'(Q(#ѻqES .'6R=@!p|S(D0Le"&ɘi*%H(i Anِ` [^afG1|l-4=.Ts&禴(5&wl_5Y,5WÇ (sʭ[֭=bævEA<\:`ذ#:RH3<pW%+, ']itt lqd;q##M3Y-fcm6bb EFe3y-+'pLmBB\ "< VCm;̩Z>-mkLüUOJ㾆ˤ[33ř<|+8"I:8>/gI'0:&`4L[}!^i`"im^$/'ņL؎f: ˖W<ߖj۶Imc/9Aرu-̛-ܠP}Q,A6ftNVЄ `(^Fݚ 281M&`tڏ8Azs4xj#^|Lf14su:ϧAbɵ6uyQw6jim8yioSn1%MmK[˕~ARˁa꡿M}^g槷n} z#̟}.~Zu?ꖭl[:ul_ÕHQ6XGBrrD*`6!SHn1pA`AS\`YgfOS|f wm\oɾG;lˤ?aG2ʇmO^''sH{||5«v73Rii}~˕Swtߵ3L% b2AL*jӾ?+kw0OKA0&Vn.!y_DH9l(%AN7ŃA+R6eAZX3ԙO8I=e1_0,0O?i];n[ݧ)? 6JCOYs_/Fju>'Nk9ovY:e9 9Irω5sœ ")2QɗkG@VV k -Z&҆ȷ7>5CC34uBOV=8pې>[yQGLqr.Ƀsű_{chѼNuSF 4F {Ufs˱&?:_pla`<ёMg7seͰB߉IKwCX BY.>A=z5Ogc;H6h3}d>@A>}V,5ϒ95+cMV[@\c(().9f9Kx Ba vBd`#kTVVuaulw˚w@9>A(s@Ҁ]zݢk uHͫ#VXd-4UW#\bc+C?th߾/龥w~>uL_E4_HbͲOW iC购aJ8 8j=m릏ܼ~io=OpS=;^]`{c)aϮ.48Xs]W^8x݁LP=|RճgevQaXlR#BbF tDp7fn/7}ylGj{)엙>݄[TMp`Jy3}C%O^z|7便?cnXvߵ6 C666tTޣ!Wwv gF / \uw]q#/—?IJGDn<.^52xFuؑJnni&QS:}ϒ=͵>Pjj͖7ɅuR>OjY4 O5=e-3!}(L#k(X8g08PPw!1V?z= moNW*1ژZM0wEÇy gӵOzݦ0޿j8 5E:cNݮܦSU5#%SP! ހx= TaOD"ۈL/:ml^SU'"'Ye{[zwaWz^} n]wgkR! ڢT;ۗ. gw?P Jv(F+b82E7 {xkS7nAHF4is*. :oe3,?ZS|cYђz/F&HLVQܰ8Pp88Sn+8qm-{e?1@f+Vo)ÌfIG(yzCbڲ䘶2kcS 4R5ْL084UТ| HĎ|ѐMfD9 3b( V Edq]l$;M9U3! 4,>'G+|ZZK!ȩgs+7Ýo.yh%N_աCա#6..,fj.@;.3HZ"7E.+?4?kTSE1+u0yPD JJsшC-MqF/Rs;MFev-1ҹ{ׯ[NU*kjݐj*U-GxwoC^<rIxM.ǔ+PkbJJA_59.Z,+]mQhd|rW-WH+Pz"x9vV<\|VmeZf r~ݻ#yG**y~3ѳɺK;֕±PA8C*?#<XZ0;ZRť:f0B;[,WN KS\{z]6\CbnsиzmeXei\<[ ErǸϸb=ct=&U%>pzdR#*=Sot /̹v,a@ )TwLTz @?opWtn(?qOYC}ohR$OrЀc:VT4D7\l!C'wԫ'Ы^ L_s}l3QoTj@LJR3פ絶.E‘S6:gO2 'zQo>G*{fיk}ϟ0%5[jSÇP=6zNE݋;ϟ0vQwvt0GKzF%͛1 Gp~Np#B>}FB_n*6s}W.عO$:7Or1[cInnYx;m*;u=zvY^^YV/sN24x㴅cs|-~]$ݏҏmh*dT[-$HIJHv{qmr^?̺nӪM뻔If]fʩNlif?BZWcס19ENMHl&hVVhdCcXKf.+}91 k4 .ZY,: ֖ TV.8DϲkcXz~m8}q#A;m z|s_/V5.|9B Ι2W]kĢ~eCf?`8m{Ӫg ZH217wN2`Fô/ =}s6O@fp~s[NhcY^8ܨ7v mR6Qg09vQ өn=g_ycy<-qsmLی6~NRͺp3tuj#j5z<:3#灠7N'č}1z4ǙKj;Ue(G8rk3xM|}P=ӆ9Au'T}H:+ h5)8їZU03 eלCܹtĩR[aOw2gϬo]-6f]zh<y!Icce^U+0'vy#x<lt4ǍrYHDz6D;Pf~~ ;m'c?@W!3_4k;HlސZ/.rj0҈JWW1L ULAP\2-"@e7]>[aI~q0%7 T{ ?#6#9fv~uk+щE{IG;?e3aG9Klo9BH߮z5u[8=YTN&~~+lhт1S&"|+ o6 40Bt޽Ͽ[Bh|x *ik6vW6ʖfDn}5Xg ùVY}m]jNlT 1&˩"B (lVkn$#v=#aeE*u3!1YV'B~s(ƅ |yeͲ|v kmkn}q7͛뮙u˂.z7ovimÚg, >,G|c:_ah5ur7X_Z/ &1n6  :U{i,H2rȴ؆(OJ76u{tm[<'8ՀE}|t}x-׎=$uqɈ}s p.OQoi7t6pbkAgq)3p^/sfS,Dl@RpB qfm8Z)=^%agGڶ=pT:Uد|*?@wݾ}p4–0k,Бx[N!ZEA\`7,NF;E1+jnj^E=ͭJ'WKѻ&>o.:&ʙY`vߵv]-OW l:|yĐX`Fnw:h6X I5& =Hov$,R"_|bQKWt-ΈIXp̸zЎ3 "oMoC^0TPEWiAڪN+˂-LR~QX1nl3cXy9# HG|cg'ڨ#B'QR|gR_ܥ:b{h4QH&b5[3iiI9\6Uc{Wi!oj1V>?>JHC $B% `0$t`r",Z4s}d7!mYs EwDKhA]=r̃n5cޝ5 USM-"='֯^j mr}-8MJ< mW,@A̭8[pfH宄H4;HEvBnȗ4ۤKN MOIatj[×?#%Wҁ{>UZ@oxR~^ A0&Vԗ;txMG37Aѱ2{b8l.̅`nsuim=H0f! 8h:A0PL_%>D/+$f: [ÄS$ĵcO1Qszdz)i$RT<2@yӝ9[H73 .~HKR0{Pg{,79d 2n@sV#cDjC.JM9ڈPĝ;`ٓ*I!I<ֲą1XE+A]Y`Йѻuuh9+ڞ4d\PZ-SvKωu[/Z?\O:4JTlkr:Ң@7#s8q ahpFaX9QMjw(г4o54<Π:|U%u<Έ \=gId x6ɥeQ;4iU2_mY>qU}wH Oyt9|H9dDX @~$H4A.ݜ\\nΆfBf4ڂPs\`h_;=*Sb8?Ás-e!(lyx?lJxr#׸3aXyׂN&`ҷ3#F+?FQ!tirp8> &-`vn/[եG׷M;unAEPa| G\5l2IO]|ϣ㤽n?麕s0}tA>"}#64tY:(,]Έut(^H12Z`" C_@ ،dy"1:zc9\evKF g wlo%jJ.c>#òQr X_$޿$|fls8)$wUX|.|*tF>}>9=y xZWuuDxM!@k ü?=ܿ:Xt۟>rlL}.H__f5qC;so-!I+Q+ pȩ!>$)Zp c+R=bЅabGXmNx0ÿY'V)6\>@ 6Jo1o"-e ((zڊނCMNwQ8\%=\z6b2)+0cTUg]z7`G$EHaZXf9y@<^oq:iىtMOVT_ oaier/i\vպa>""B874Vf[op`xph;q̺xъOtn|k7 Vɇ"I ӧqM$W񜅣܎M{l_d?~[Ɍ"6+Yk9ͮgª<9(ssPj~z\"zhN\HcA "yyyCcE6 >X ١)0VYݡBwQlĎWصrbry`h}1q鐱BY6MtXdjt4NOIvj{d>Uο"M>}c!26Nһ= u.76@m>< [cA.P~8(E"bA/.KQ_ѡ,vi JsKDxK BՋ݈BcYt=c "}X@&= ZӤpιf{K W(j2W{csvZpv&cu:j)Fd[v%F 9D47 Ѭtv#5VWّ'E?kž0 - vܳyH]_0QXJb">&(o0\ǵISݩSSۤ(E .nP6JSB /#W{[秾'W+&;ə>e`8/ݔ p4%Q]ƭQ':;z"QSI+/;泆h>N`/I-Tz$M [{[?)?!^.pw(yp7ZBeܨgt33-\ݪO|"e?)XA~ũ=97* _(+ yw JTh;"z"C#zlt'ĝN;lv[sNNjp ǤGoދ'TΏ s>`_/]n-\ҍO^ݛPnEnwGrqլ C@A#шX}F[.3 05 n<[4!d6͠dPtd䠊vܜ6&˓ьI$@Z^Ԡ?Yn'eA:x?YlAf$~NvXŸ ~QBo]&YNmIg¡7W89DG|xMFv`ȺBdK W4-# ƦN@ n/ZYS0ȸ竸S#tC=W:6+= ?>y 7UT Uz`Ux nO{Ã-=AunѮׂ_s'DNǺ bMN;Yvy)CLė*1 8۽)2v,Z,Q{&/ ɭs*͜ tN?Ϥ|D kd;}I2k#?!JhDEyuFcHE٠#8!A)XOn}i *ڄ",j~KK'vgK]'Oe{_,[rӜߤʿzJz a飈c $,LQe t)1nل}#riRèQ&y{~ Cۆ鯩۶dΒ'PԖN1ҕkFw޴o5 az >~ɥ W?Nԙg8Xi&8}KYYء=V4 BQM7imT^&o@b?:&t{eӇnφц :dV1ss|YgFKnY?uޤQgvEݡ, \aT!#xe0|cl:5JJvT4 u28wEzSCNW,7?Wg!|Y:}ȶc6d5C,M ]^Fr]osHcdK ;SI9ϓIurq:OyQ9<)j(3دE&YFJ'NDzȠ7q K8n>+nmQAJl ܭw}#3f껰wnU=׮G,:;0b&Ľtiu"[xvz@툙QC+ nYiúno  ٵn=w{I{0W!=#ӰeݴQkEG!teC#6z9 6mV!rNmu+% L.Xg **:D5lT[F.~$"W`KsE1Du[+6^/mw`_]Hu ؛Ǹ8sv׭v(ݘ_qd غ~ݽ)'V?Kf;c66].񲜃 mVZL'X,"7l}%wRD{捈8@Q F!y\:ǂT4YEm6;(~B!BܥeKq̑# J"z^[8/eR$#D0`0 fh6.AѤ=8m!E@Mr㖗=7aᮖ͏>R(bR0uxS/DzRՐ~ .qmNXcvuuzPTJ#Tl焊.ܹk/64co`7Mr&{Ӆd xm:ũIU!5JrW^oj,12T7X<[9XSg=͋ W5 ȇSLw5P}c, UhCf[mj5՟"TO$mk`ҿ 'ݐN0Z eDkz4o!;9mM5KV˿Gh^Br"fP4PϛL>\h` ~R%J # H~Mtio:n=ҳ?+"d_h>`AuL `$A/_Yc\.pꂧ1_Lطtv [u-1Hr +iQJء$U0ː`JWi`{{&j+ob/&#a;QĨ[qu{yãCm| apSFcB Vͪ(6wz? n5 !W8&1a4.!;wSlnshجAwSl!#Ӑ-FMdiȖ"dL~4d+'HFv*4F![AUYBMjXM^[ W:+;DܖܛKгh|H/sfA,MQ<]{V.{P'(@ Y~ƍO#F}`ZM19%1˘ ^Dn ucx_!\|?%Ϥhc{' )ղ$ M)!*8İKSyȽ~OOZ F.~Leǚʦ3p٦]*ߑB:\+3@hė,V݄n&v\dbb QuV| a(ݎ a(Tz),VZٝ'lGQDzRfLt&Thg%@~ЬnhQNkڠԁUO-Z|v}-轃r彅*ܯ ^Yn7&9DZYR^ lнŌ#Ìnhl0W ZhĬq+C6611h%.d~6n-d6֐`^\Z@?mv3ĖTUU]kZ@߯C*'NˉZN eN8MZNNC&Qf^itԽ2h7&1-"{(^z8ZwVOj p' +q\j KLyY) |LuQ#taq^4 Wd*JM"jMc:"K6+3(IJZ9=P@ Hۺ*3Q[4œ.ʢ4FCj~mctxtZ4h4x U4HcrNL9V s=!"t'?vovg6lFL7[@Ji2k2hrRiŴbZj1-$5b 8%@4 |J$k++bSY1_Bĩ˅9", vDڍLh-EK%+-S3hY f"7˔|=:gMDn '{e 942*ޤςr㫄nX逌9agbD0פcGn/Y?@y9GH^$X(j0,ŚtՔj}+Dp"J# s5>i9O9#F*AZ@:/(Hn IC(<(42kCĚBxYҮH $9eZǓ8prIAd⤳ӀE^EdfTQb|(T/TdI _V1 1P̀+kش"SyDŊ4Z! z/. &߰ ߡ7pt k[r"Q! *Cif.Ju,NXψw<Ž/x6/?SJ@7v!ٿ%4$(.jp@]g;cgYqI4S)8-8,~gϹ},j_*׾3; Z$Lc1x8l<?%v2W!&**2)M&%jIXʂ79 o1Q^~@ɇ*MzMIw|sWIoɡ6M<&3>;jOy[[ִg.%:ey>?'?Ϣv'L-,@U]>BFRgLoU>Pղp>QWY +M:MHt&'aOԄ,p@u%%qǔ1#il{ G'h+e+t~|aK~zy!d!Ov h9% xp|,b% ~u2g&K?hrM+ M΂߲'^25&"5OnR&7ٝF/\I%ɸOiI /g.%k$|>W숬DYdC,:2< ^8%h*B̑.iI5% AR%|$E~]2{nKF)~x)-n+ aOC]^-r,c.'JsH2-"4$I}<yfK;;қf{fɷ}~. L/hz M/hzMKEpSɁ~~hziHFs_M/'!"~,l?S5|or'韷:IIW?O7b\Ʈ6r{˙v,p<}@@Ġnψ&S= gس0|yXWC3> 6v@\0l ڗʨVql=_#[QVT5u'픕KԠϓ*[eIΔgL:c2 e$$Mr2aϴ$IX?=6eπwIsm`'NҡeݍfYK\RK.wd|,s]I._.e.*sJBd 4QXV8_.(lɍHt/wh qԊ*$De 8UQ}NdLdm2!Ч.mTճ ) 8H;qD2$p2e6{[`>TD{fFg&OknTB3l L8ۻhx}Z_l#up&ZVҲgT< Du0dFEG7uFP~\͋WY&"ɩE%\]b`ܸ?zZfv7ĬNQ5/tq*|wOf*J^ Q8F UWchV2bH$X$Ҽ~] 9D=Tnle lv{׮N&Y]30>XUUfu͚jq*m*m E 7R0O?:Tԏ޽o)a,czLc,'幡*4/6@dG ~/ْ'T04|}ѵCE*#Sh+ɉ'A~"#-T[ _D`be\O v; (bP3e ǐX  a/48eթb15s֫_Jse!Kr>/%RHRxٗVt֬_:k~,NGf>x@ a7ы.ZMp$ cЪ.! k{K }x I?]n%#jtcmWW!PYyY5,Q)N Fl "V!v;ڞf&K*oVFd^)5I2{Rd+s]=j—ߖIQNBQU2ɴLI%eLBBo!ԡIPAPq)(bp׶UײZ]y}of2>q&Swι{ n:a#ˑ7&ҏ -XMG'/n)5Ea1bGb!'yI bUzTңRq!=ACkHϫCy,'\9}H[G*=*&:_HO SbFz} 1"`wZ 'QWj78PdƧ);zM.qG/CuP`E {P(~Zv-,xj۪kɒobry|gMyY[P<$Ktl_(>̮]æxf󇦜R# ~G͒U, ΖLttrkZpjԭiyb!𣲪 C^=)958FPi:#"_יܧr=xSTZF57B1k^WJmMEXŖV|`.?ռN_8~q=tߟݭXn( ߾U,BV҃^WT'v$yB@ 5Mpz s!no{+A  GJ P~8Ȏ&q\ZQNl˗/JDi>(sGnryuS4<Đɰ%>dy|@\#QRr& ß+j^/5ZOףvr|:\Juq~&Gu=ĕX~AF{gotDT2U .%J\V$~hL2th5ܔ6\z2+r't SoW࿩cыQ[0sbVvV/MK?KY4 7N$ CZzÇ\89pIҋGyw= & LZ# ]ҝ]_[Y/;/"vN\ü,ρڡFchzTΒ5˵P,rtf)%E&w!:ʌZ`-J()W]-/aߺmNRJwҘa*̤ :/?M\ȸkٲAVk]Çcǂ-w5id%Su}'FR;{oXjsm{`G> xDh6h8!n1XC e aVRy=l۝Urp%6'5cl5_ڬc.d3?AB!ޢt{KV n!C;D.A$X 05k#b ? (Z#3[g B9MiR:sfNBU}f&ֻ-u&r㵾i:1ςl:Usmn% 4hBVN-fD90]R{ۥ/,R)=3cTTꃱkbӞfМ^cXZm4WmcZ5rd<3%M:VcWYYowYِd9;<L"g4}\TCn&ޣC#;<ݻA! ,(:EkľU_ZS#08#c@ [Sk FK LF}F=XOT[{ |>SIkkXڰQil'ĪIۮP8/2~KAAwi1ي 4Q*bځQ2K\b@ZQ F mg'RIܓrW& Vddl^*w*s7wK%=rmG<J JmڔХ;dd%KrKd{zgZ#fK.m۾ضk&ޝFr_ 68$͖9AonF z,k9XT3,E^k$B8Pb:ͦMv˕g-7b1.VbZѨ P.*"#lΆG.#|_m +'5 Qi7Oڅ;FFSw}x _$-2Ih;G2#֠?Ơ; -NnҤAӪ.l4w¹=t}([yymsN\FfF7s8ln,G~yq)eS_;_Zm;/6mjg/2m~~S匛_5Ed‹SD&\DLKk7h-U+\: 7>#)*FTdWR;090&=Q^UY)_螺mONC$R)[p:xOWc*&#~D_ޮ*ʇX [ԁihKTM#WraL4MV ̲_KO^߃.+/>IK$Cs`gE)E(~Ap 𲅫GKO} w E.,J ZL6ڜF)8ZZbVo)+5ΆFhy3 eu9۔mB6/3 QЊp4 ڡ#ҎӎDuNRǞjm[];>/2qVEN{k@P.wg"d8&[iYI5DӢ7DU6+EĽ6`cYݴ6mZFbQ ]dkvƹsS];Yv~KVϑKL/=wpRٟ)w%1q{h\OgICkAh"dVZ,3ϳ;dVzH:I3Zl6VEuj ѺprjR+Zf+ 5Z'wej|g8 *#2`^ hդS{aNo걤{ hTkIAUޡ扩C hy˿Z:.84 7?n/ՍqyGB~☑u3uglͼG\:kzMF4M),73 H3ijm8{/&A^eK3Cu0$6.W0TMEY`@(2L6ǚ]0 vF=jJ+'DžtŜ:oq*fԸT a{Զ{CE$=q",ڹGj6yY hq u[ǣ9i#LLV٤d*Jr۔L뚞nWivg,%Ciw̉V. fg$k[M:߀{=&:շӱmﯧϱuܪm/|D0 /XT~LRM+K臝0^ZdvCli/N;zx v"L6HQ&?n BX&`<.)1%]pڳ+GJ_H7/c)(UDB0ѣ'P҂+u:,L7IӘ ~QHdQ#;چ?vInE0~ f"m%B*5C"?EŲjV(d^xƍxa]JJUo) ʫq ؃)Ysu7$ wfWJpJ'ߦCX/.lR2Vw0] Pp?Ji}(׃|6ܵ"L>2\4|3&ुaj 39^] D!h#T#FV!-VWJD$p) Rwޙ4>8݀iWܹݨ$#t $Nl .ƕn~]Fr?@bJ eדU"#?8?gN2tHiibطqFY) j-x>ʭ"@R&wъ vY&snofz[(?v ϖ:?5 $TtjU @4T V ̂ҪJK E𧡫r瑱V Y%fի^5p459[klXq* Nxukm4?os=!:Z|JԬN Q-eO4lVpVq3wSLVAQ2wPh7 >^T E 1h„AkU!(K4i:@h$W Fl,+­2v=ƗG^|{ˤFcXeJ<=@:5p 4]Uy[ >[!kڐ x D !"Z,BdD5)bYJ,YnFSrRQ6g}hc5lÆEϒvĉqGmwT{@G!Urn>8ޢMϪ-.Y֞D̛crŐm'}& =3ObKړ7 hW3X\.j6"L)fv2vl %o! f+ek)X kx(3HykOJσk|&Śh0 T<&4i-ēni=d>`'npv*aaLWgf{gxt.d\Ă5!xt|]'ɫ2'n0}TYғ75[𻶻W=͝[zL$i:GuZNMFN?p.CӉSdL(Q:sIUZEޑI*9yO6pp#&T(:60E&J⛹H!fcҗ廍cٰ'4~c&o)Lkpc=nt ݳ  `t-!/)+䎍@|Ո؂ ΟoN7{zL(Y7\6Hk3&^C#ZWj)Ԧ)mǩTf4Y0K7'k_VCxew 뗗l=”z96{sx-z  F yF'PsSf 5yD cx0˱de[;ضײ݈<mYURv8G-śFyE4KJ[v z|OH1z"=c\5y)kҗN15ׯ[t|x# zڿA(5~F邀XM焈qy.m3jxV6PrM*y%7. SdVS2EE>j\]ᢍ&|.ɴs5m{9_j|zZlb]n+7ɸ`u f^@:A7 AMgCXm3PcAShL]x2%@/yA/^C87LRNc" T;^3eWf+ҚD_hM46NC .zl:T|7%=eMyMa۞ٶ1H'4n[ [Qo11svViNpрƨTQQo6', Ρ.f7ǧ5H/dW+N]פJnsn 9j,fj57vBtq8uZc$=xlrDi S3i$սWpSd^ ]nvnq>jH0,+pJىޚDK7z ;`T"HYT#[E5Q *U[ay',b70 0OL_~5N+ѕ8㣋N?FOxA׉'ӫvː\0˗YG}^W ZGaԉ-8ۃ., f6oK-v`㎏2Eei(Clv=~ˬ ]y(,0|*j`T $`N^hg}-3|ԻNB7YxbY:d5g>mɖ RwO9xIitsڭ~^.,%̳{։,Vi՛N7lz*4$G4[0A]e+^Wh\R:tI?|8oZy1k>J7kxՕh^B 96fufؖ0zy xh3^Vz'# -h1\]hc"qۢIK4-sܠ}G}87Cm޺}F~iݎ5˭T!is\# YLPu,y*(Nrf"ʉPyPH&k輪aEF߫ O{mGu,V=gm#EH͜Pyf#uy`ޭ]6 ?}o0<4&}{ G] LEOd9z@fV'Y*mm$'9JYaEVQ b(Kb+qBy`TE!-M ԰]X !Ax#D[u][ǜ 59z/;~N_n\9|ꮓ̲؊riϢS$Y p]ʘf+@8QKpց6OnX!"^w )+L+t SRݽ+ӱp_}܊bWzTK# %#f49(XMVs1=6-}%!GxۍWJx_E|rK&<(=;ю?4QtrRY`فlV i0GEVlejXݬ٪᳨8U'J)6dRmnُGUӎiECk`( ?H5W6[zb.&#_3`I]ݬA@ii4)<4-8 M*CsSvD_"{p?y#ݲ+I.#<@iWqy?I :)0s|f:@OL("jZ u2\<%#!6EyS~dc~OڇX4|\}n}6߂hɴ,)m4`V,'aB8t%`bLIki^8(݉it/Ǎ?b]V4|Q iͬ-%wiğPx @{ō.h4Uvm7 V҃+lBj;1:;Q呈 $HrRlg$ʍ~ [y 6 (ҠVǫzaeU^*J"AɗF?s<6pe q嵠@/[x+MmL"x+&co4SRAeޒe'6wfӧ?A>|-I?ר_ e3~yGa19 '$X&>'d5pϳR~Vg `Q<YV%y䮜);[1;q=ꗏ1g¬YwfO-9@zE|vasضpu-wf3x:#Zjde5j4B` Oeq|GI!Z@iFN6Wm<$-#o|VZH' %qHU;:`X,/&"5--DJ\Y[$K-}Ԉw'LƳoK13AA&OZs4yḴs 3I~"Q 0XS%w﷝9I:G2a7 *"Q7pZV6;ΫV5=$BfٷW,]='7޿{MwrG֛MF6'ZiN3ىʥVi#/b>-kĸ d$k(RdGm FAm\߭9dɺ q3~Pfv t)>bOELUvR>DEFy@`0qOqe,YVi9- ̭$+q$+)rBA,Rz k3v|}~,lhȵ:…ql"k h{ӯmUwK窫>}#վ#CBB∏y~f0byE\CVIRKnqkt <' LzRnt*e?G/nݝj'?$ѭqtiz$~z:'h̛Y 0i\Tȏ{jU)Q ADv3'h0j.-%" G‚ :@6ĆA3XDzxiQFs@fB͝'Td{vl0u Q;[̨Tyàv^_۩rҫQ :hn/8&iȋ ΔZ^c2a ޲,{sb+*rLO%K_Q&Xu) &9<5|ٻO}} ]3+W/۔ QCJU1>]t4R߯CNoX4}P.}dL@>;Ǒ!q4̤Ғ) ω`ǦVe((G Rm9+}?hF3 .&Df  SY5]-L@ILq7@d]7YBͺ a]/n:kpkSXBZ)܈٬VAOh.-nT 6FC qN88~="7yzyL_$9y ;G0<]I -eVXe]hh_-~ԢuӨ]0+54z..kqk;/297=%j~x1r6n>Ⱦw#6ϖIl=Fb7Tl@jJB 2Y`^mMDfNNKl)Cd ᘜ }1]vϜ_[avX=6jWI25tNӑzf"N&QL)thJh2 .<2H1|+ŷP88 a+Ӿ,0}$ &GK;Zqe6/cu=K<9m :"iKkLZVgͥWٱkG K-Ȇ:zx9@. Қ[Է fc8ɶu:xxVu"O1u()k`V6@4T3z9Wp_]2O] ϝP#~ bv.Od:1}9GW]ߠU'E px2 iTvg7DmNpѕ}Zr1FV9A}DcG(VursTJ63-S<C3I*[hx5HR%`U+qnO:k\ϥ \eZ5vֻK?J0:#0uj0oy7v!FS᚛ i %ky~_+lO_1JC]gpPX!y#ˁ@'I~M:;./82t*{201<}yLj+g3} áv="NyCOv]2M,h/P`x N:ӔUsyFNJ|D[\rԤ*od(Ǜ máqDi'?Q,duvL.gV;ϟ1o}qÉj#7EwwƾFzQgR[7u!̣:sBUR!554;'/s\Ny3JJOj c3#++_E/ '@=!s.PX. v)Ŕ.B,Z/{ѐ+c+'o(MTK%G `/ѥblV)p]RjW `Ǽu1١ P8r4?O¹m2,fgfquꆦe` Jaxd]inf2H`$Y@@#Rp&JOs^oIRh}R=a'N 6 sr4Xپ$oT$o'JK^bV>2:_`3> Nʛ YB[O6傻E/eo6I'j›0~H=P9qyN0@"`,/KSt5) WT/$ZRhYFusQ6bN6ɽvb`f] `Z;-@AkrϧOJ?߷O#_x~_b&aoq=[ 8zn_gŵ}=~T:W\/}vUz[:{/$5̘TC` Q+3GFҕ jf80jzXKPk7-r[H+tU῭_}_gr]c_0iNw'hڋ^ZX|QCQa޵o04a uI>, ofϹѝHcQ"y|FC̴bd ʜF+Ƣc2Ll`0gw[*y2jݬQ_&]JM ̏rͨXlf4ރN=_|nٶf/͔gdblc SR_i쫈477o$ωftj'-b;1GZ>,ϻ0c`D``0 (5hՖq) `p|LBgaVAKj:з8#Mm%up3G2~~;cŻ ߼PBw32<NK`ۍn~ψ*6ÅlHl6<&겲c:gK(6xKA8,m$VvF„n 3Bۜ'k9 $۠'5_6}|sO̩z씝qテw|H3KFytT4cǣlL~b t0 &kJTp6<??WfJ#{ LY.,ܲx!Z|ZYHnCt8~q=陕;vسK_/6nŮ{{ڙ?d0;}ܒ;3<;=v;49tXA:wfnuvݳ֣omggu5q1"ڑ3ͣquN7T{mt~:T{T5pv/s,qcnkz)Rݗ]o7`l+h/{9Q;]BFq=Yw;r@łt"(!FrAGoN(elc3P:޴,氭e˯<=o米ҿ_Vb3E<ѩ#[)A*!D0WU(TUxo͝!b du=Px aXK@*yhgh8CDw5jz5uQ]z#xʭi Z$ Т=eR9Vf2YeAi ?rCK ej }9 -&\gPccOL(M.ti({P./oVN\T*~~>eqtiO˻63/rxؼ k^ck~oO_^2.CqICQL e@ 2V&K4{D.d.(;$ȡCП4_r4HJDNhy0<[D9 Z- ˦EO=LjŮ⇸j-g jj.6*ӓGج;GWm7x7~c,E+BU,.-eZ6ȅڶ39ƺ##Q*( L.3(8Z-ȇAOwz[ФJYYsoY+U}AC,ԝ}K 3* d4e|n~˖=}h㺇-b2cעwi*IKDžٳM.}#}?yA)DU4)Ål7ngey q:MuQTaUe]T2`#THHτ*~򦚛vTK1m(#BO >aÎu4Ve*[t5743?}߽JKm/AD}l0xFcviYfh&F -GEU mϭZٶ\Ȏ _!M.قNɘ/!{!6>T3Y<*xܝA.(o/^;mcG/2Cf}v ?R;q +Mka 23ϟgWR7}i:>Џ9!x|Εo/ti?e7X[!"\dHc%3K@w| t&^wu IU? WuѠ)_ 9z 2T<\&3-*#޸#AVTTjCBJ- Z*ڕfp:(9dIeK6\<6(t39zF>&jr$^.gZ[NT;{\)fC/jGKNUl6QeuBSsE YS:T~֌)33 .2-vZ>$kpm-J"34EdSgBsf2cqirqi O`cKYqʅū.Y%Tw>:pLEJ5)KP%[::~O~ᷯof(DlbZQy@feFØ1Zh)hFi/?BhJVjF aZhg%ͧlrUqe LH[?_.{y3}^c̙+p6B}98X,SsBYܬl]laerY,붳(kJ%Xѥ.Wx/ނ$N˟6>q32$n JbYIe.x>3fK 4g\˒rg9l^p&,L T^r;ePN))~DJLHe; 6u޷|Aw.Jv/%,,;S N~ W74cO;w鼊^ɐ0/sCKI~3M,PsNg!iSk`Mꠃ-0 `0*~޼%C LBwH6zJ)REQRTCQWWYWuݵWLf6f=sOqcg'HBfBMHee3`yɖѼ=bi3RY`+9j\e G@mi')oN7|Hhc]3x)TV1RĔX⬴sN.M%҄%-Ev3Gɸ8]xˋ:8w (JIkCCPFEK?\mF.޼d좓yR#f$o(ˀI%ZmM S.Su3sqZVJ#ե "] ]FgKQ~"<&e ].3g :XpF}yz#lc; ]gUX)WUXiU>7-^絁''_onm_4=trr uڸy'>oeQ;mۖ^F_>q3G/l{1 nPXxav.5e;ClSΝ;m0 >747N9;Y +Z>GdIm|j Trmӳpq&"Sv~GoXV uyo$j|{eK[UXiLq smQRZ5p֫LH,ii X2~#aX7ņ0nEsYtEikK>d7q)$.p仲XiAX oP|q ,Ed x j71Y#OdQK(pFiJ 8_X9)'癗 Æ:MjC\K|ټ}=6~N8wHS[-)g 6yt`,MQ"bY=l,[AI3[S*DH$([79Tk("}Ӧ}~+3H˚e4}sMǎr'n 4ð` (HkD!/v5A&8#,6 f]4kcȚՆߑu 2( <8#_bJaaʰrg03ۛ "8v4arV7ns7omz)4<k6#byEmr@"97 l>p݈46s (7сe?gjRF%9%_9ʦ\{sj]Y; y^z6IZjU*grNĸd!0&d?fZ>Յ1nP9Ⱦ|J{Ij;FLI?h zf=1j x+#b~?Bd xlB2&[SFH= PEFJ_U-]t=18ܷ{٫Rg.uaIkaEJ`E.7RF xLFH9$CrNpfeE,ċc8uΚi pHtr1bDJjvB4eWfh*" lsՙAF2rji7{E}lRٳA5͜4ȃHfWypor7oq;$1FT( *昣2s[ʒ0xÖիxM~0QxG!+anLd:@bXH n[OAe nXe>ޞx`Uة'ݥM+ŭd- <`KUIo>Jgލ-cߦn_Zss#;Y9fZNl{/~K?d>9\(: 9K:r^>".NrL:7s^$];D";ҤFRT׵fXamwoGF棶]\e׌I0ٱh6A8,,ez9ZζAXM|$X$P,oN'I1np2D;A;Ѥ+L]PyЏwc>Ƅ>',Fx޹'xV pW |]ǛK B(sQ.^`˺.70ejKP =,L,4dTv:[ j6ory;G9}Pe}Ğ9;v5Iߠуƌ8};I)3p19 Brp.#fiιV Zaka+>_ XKe|[ṷ)o*jQz0?[g7};4+L;6jn^KwsX .Rv KuYMF#޶+%4^킒huqߎaLC.i_GMG ]άY{ %`1TAT{V+8 1f]pLigij9QȖ{*S( iƠ5t׫1E)(lqG32YQ2EA9vMx"~^NgU:J|-󚉛6:k)G_l6g;~q{;JTy|=LrW1l  `LAYyL!uq#Cdc yfjyuj{w,;o>zL߫+дiqgްԝ< >#Lz` MǼD6:Vkerrfo ִ;2NU9(fЙ^᜶3qao7MV蹫(Ɨ̮"mh{~9N$oIJG2\$@49a A4:c6r8dpAWw!d 7&AcoD./EJjtM5b{7ݡs#В(^ᦷŵغڲGjI[g6|`EvzʠBO1f2 -4ÌJ O aRWTAW5TAԘ1w1r~$ZR1EƘB҂XQAq [߻us gpŌAX:]f[;>C瘁`xQL%\`.O8hcAӽFW.C-i]e8y45G`tmst삎S6Gyq/;rMi͵Nڙn~'iNBK7Kf3j]Air3һFUج8_sE85s]#~^̝yǚ gj5tZ0rRIzMڇn>}B2`܍>d (w:Ƭz].QoѦBx=װzVO,9iL&,>tr;UrH[l5?~ЄؠwNVQk8~Il}cw(?L8!6; ^,DժC:Lp}S~{ q`UuQ{d/S 1- D:A:Sr V3h8Np8)q#ʼn'8Hm7KMqr A 2F_(fFJGAWLLccZ%4 UqESIEvHZ8OAYMd+ܼfyc5=VVt qSݳ7L:/(+@pD&yPA$JBOБ y9١N h_unmz!< <x<ʌ;GEUQbٴw'Ć1Е@ht.QfH~ukos0vQa1SēZ\t-6ZRݥnCQY`0|j⼌ULvؖ>ggk4\Tq:೻l X?,#wˍRXQfň]7MLPXө4GB_ۼ(+q-Y'uYPvNrQ9a[F򶰘 v W4SF8N tYcL]_AsGc4_?BwpaB@*`8ď5?FnwMF1tz*b M0Zt*h^Xdbi/@j2ͽFq!?*{m*bX0yQw x^?V2CXq@@ -ݍuz /5vr,h2ܪ{KGCC'66_`3VzIM @%ϡ>yTt8 re(wtuԭW-/S2`ѷ-R' ϰ>m&c3q#y$Xlk:tgbefIONIpMSL%h+ykb:AՕcm՚. |Y9࢛u^hIVrɿ.Nz-Vx'cdkvJY'3OȢ5w!ow 2x4>P,xGӋg=Yҧ䱻ofìx=^v&f,D^hX, GJ U1˫eh>7;#ơOoV+*aɖ:eh e~#G(uR<~ی7.&γixeϺec*vEgKo.3玝b/؃#{Y\`fmdҍQv|t}dr`H4rWݹ,] N>0+\TY~P:ZbX"_ ~Fw2a:eӴ8_ɸMza[ ,zvHh +|H0l䯃Hpv稸)+a1z(1ĉK'>H!f"g( DpƆ;)'F`+$юikV!֎'W3he];yH;C: lSԄ'^_j b[=捂ٶ瀃D0(hRR< lU2iI$hE2@#_!"YtvaedoѤFv<>yrO1>or~=,\nQIߞJkM*GRTNqLzm}L+k:~|)O߱ĉ]蓭˒R΃[ư1 -]) A]w k" ;uC;wo2񂜖`ՏvDI3f x#|F"IFK4 0UVBa*e0U:pEħ x>ٱIXױX %Gf31 Rt}=<1*`?nLLF=k,Fn1$tٓF u%抴 U)?:LD}AoCFؾ2B; I@q\g薘Sr-eo mQGs(@fOFxHjm}IͯτJuC)<0>!J28^#MH{B[yiY4_\QKY6쀑.1'}͚@׏1EaOk.bBj4Pv'ihwAQvm(-5+ HsIEK_\ U*ƍ]s~ݰw6/::mQ.H//WIc[{a͋筞xX"9ue#NbndXa*c|jImmmMmm(ƢJE`w3wgAݵIJ\t};HMjIcit = &z>oP7?O8c `.=cRcLFch7h4T G ]3EҢ^Im"RшhNol@vp~DN4rG.O`B WSlR ?Jݺ |`L}yҰo5XF[6 eNh԰UEx@1 |MiU$EQ u,kgR1wQ%22tPgޱWuŸY̸s4 |MGEbf=GQ  Z̓ AK0 ``CcCvQg {OyQw2˗_ֆP m%6+ԣkQ fQ'xe#^qF= To7 =\)㕛U9Y6MLhpխw7m>zŤ&tu5Aq^jW4H{sN,N #XA,P%CаʿJѦ!uhci^|ц(9x]^̒N[Eri&Eu#ưtbuIlTnDp qQz2ڔb1[gث!FD`UDC=6;|%q~}+1WAI_D[K5NgWvK{lnTʕݷxw!7}KgQRlm~K{ ij߀ =^l߉=N*yj& n{اd{"ȶl=0v) (rlcřz='vh'{ *iBTpK}|?q1ew0d:=Oթ {`-ulńܮnɫKWw9cv ʹYo4 R>{k=-;ri9Y%w]uKQb=6M8{p'rj|F>mIza2ňJNv J'PBƂLvCXJ0Io;$=1kKU'7nG1(~CQ=8~/{˨-2#.\$3MǦ#>`/u&0΢V[IHMq;n7a( Ph(VR zjJ;p ??s?mGܱMѨu kd(gaQV:~.JX];p[}K/h0'byhF ,OP aY-VJNN #OoEPnq;zyTOK.}{Kй}n~퐶'ΑЂks@O]EOK("rȝ 3mr͂\*ww=eb}F߳rܳ<*ɨ܌$lFŊ ֬5*''$G-k4RɤG<ѷ#g YLo_9j4A:^69>*DMR%L$"zYH9pBޠ3joF1,T(u,K5f6O$ }NʤW9}UJ *zO+P:Fp a2C+91[PȺ}nĸ q6`sr"}Fo7BĄ5 IPqiK_>go~ߩȑ =z7{r?KZt!khm7~ g,^e?@˝L!@6 dŋ!;4^%KP/ X}SJ"*"ɔ([DQPIwOޱW۝pX^+#cb=:Tgtz@ {D<,::f[UH̠I_uuSUX4wty'WQUp'5Mt4Dzk < K }ԉy`Ҙ4 &53~C6Lmlz07$C:~N><-@DooJ)KE T9tLG[ԕ~ל '1 DRRO$oWdoiu#/um fd𤇘_KqӄXAX1Jdqjzg7LϹ˗+O\bN@4A?DiX%J/5`1uT9|mwߟuǬݵ|\1Ĝ7@9ycz#hd8J߿څpVPd+5&U-Qݜ=ʂ8[6HD(f yA,LirE+8-'q+6hEF7i4zxpz`4trɨE5ZHUJq'BN~Xm1Ѫ( SVw1"P3Ifgrrak_H LoaXu< 1E@볛'Y4ٵv-WyI)EȔ$8`JF*6 H4C ෲɽ>'wȧV>8V@q+9Z.•oyU\ߴ.lق.~sF!i ꉕ/KHh/H/}y<}򅪟v;%ju<Au4AnY L p*XL&D-y2p M*Vޯǚ?I;'c3C]w2慎Td-*Sׁ FԸfpCXZ/4QoR25w!S#b\Z>OO?3 Ô؃F9YUqUΟߚ*3[YTX?e]oq=vIb7! XtG[YӄsRI]=` iAMfy(601my!_U|؍-q8,䜤h,K .;mErjL[dpYm]6zXv*L_oR"*bX5z6R:׌dWyyO7Tdiք+X'$sD>(LCGĊe.65f^г2q=%Rz=mR mW$5V /#fA >ľĿ/\ u`7 +mZZ\ xm6;8;n3pqM wiHwil7 WrhfC+x G!j)'Lͯx|wv梴: l+qu)UpP/\}Fosgtk4Qyph]6Q[zhMXhq"! ' 8Ɨn!b\,#l.g4|&'Al:M >z<Ӭ?6Җj[]zx4xN8 uOE Ks>xev繹pʼQbćY!;d8{eޢomJ3 V34Ts 0>hq:`gp0LbXHh#= |VX(w 5ZDKc93ސ4f>OAW /UDܾ=/ l'KtE^{ͤ.N&Jjk;L\S KFR) TV?I_}mE˶} ώ28* ܛdߗߓ~J#A j2]0fA;tIGuQ-;w>K_SmP!hZ(J~H$RzId!6H;Ǡ{h;!lnBQADj$ daнtӲI zC8bZܴ}ֈZ{A +v۴DN "u ߝHգ0n>nuaɕ=h ~A.Ȏ5 "NCӬ|HQA|Vf"Kb&<4E{L Y=?&ju:jdō!nڥz\iܚd<'ABLjڢlp |zgzDԖ]ptas[1]ZI/Vȭ6G" ʿcW&7{@W2lbp, g=LN O y~[SO{, ^dyh$=JTC"镳_agܒ5+WYg.3 N:\x ou!oe (٥6U6i'AٯA_N ό#Lv̜Z=FJ>AGӖ8IҎ M9Dn8=f?%ݧ'&]#b"NcFc V- lkΦ} F|wN; W((t|׭gԛ:wsC=޸KVPA`d Db xZ&s:N3,H$ZJoya0%7WQjG>ς{v6* w09-<= ܺNb^}v;Y3h9j2K8T]O [E B:,(\ޔ>)}4%$@8euzP$G^灰yJteDYLtrT"3w%yF b*$v&C1 S OY]>Ӈ䯿~t=> x-xo><,]fU|uR60&\s_(DWCn`qւ)Ip8f1.G)O qo䓾8\#Q Ra;c6A8x ӛM~i5B1q2hΡrPu)<8m G0>Q?|⭳.Emx\wzLIGT˜<;2:/ZAi4A@$%Shp /GiKS9H9Fƪ,QŚ}ѐڪn  {;/};67'?b@~NnnN [WjyYE*Q`o=gd*ݸKi%<.P($ ʄw',9rpݕ5 )54 C3вCCwvHژpxE4Ygy=N=2nե褨p:J%$AU f$ B&Y*H>cУRZk IY Z+ TPp>ǶWLc\[bLxW@^Ue)"U)BכF6nq@xbb5n,I!ٍ̑74ue.vYo~_Əz͕uCģML-N`;/]W#Bbs3R1ZP ;Bc$!ŤSGn8X 胋3yys+衛a90nv1!Xm9p:I5%9PBvwӚWOK*+vc=¨] NbsAY_mҢ&9 n  10Bh@}YY!?b E1.d;R=Tj^uuй(!=ƙZ(~(.pfnVk-ZJ3KUF PiM:1hbO۞GoIoO߼oև@羏 i-p"Sž.,GGw14#\ peZ2)cqʤFT_5B>#]}Âe9%ks(}<*+5'?maL?Aaޤ Nu^:*v@u&> 'EH ?9y,բhDt'MYx=뀈edSގ{ :]%j",=1G=QgE1A(pim K&RJntuUE=6S:2ڎ`/O:pzJvnJ`Na0[XReBRH&뒜UEJG?a꨻ٵ,bFKav ICrIQ6* ̐;WȒeN}ʒlunN> #jTʿ/9bpmfWǮ38ĺI_>¼μfs yfm DdȺ*QSVB`8l(AOqK<^ͤ;[ۈ二rpuI:ҫ*Sܨ,9FGG/?c3lCsgbh{XͽgAKhs4ʃp[wr#" RiM  9'5»(Ѩ.¸5"'uy* kV_j);brsJyҮWjZ5;[.ƭt9&Ku^^u2չr\|ժx~B`\Rbi1/561kՊeG,풏&Sm~zXa .Df|JִZ{4Jƌ 9Nr{NMGC6tu8 4]GOiڢEQ097 [!›g )˝1mxa;Gʢep' L)FktSҫR[Cu[5ҕ &(11-o ۈmfnB xL~p 8WPyj^RE+Μ?(r8uxx5R¹96"/GYۤS:g!WHF,5"C\8S~ؑ˻4XӲdk|NXF`j/1 vQQʆ63Lm i,lTir x1갚]b)YmL3&?cûŬ%۔]ҰvHAy;tH3mv f†b6҆halQ6QRdXeObOT TDdSMQ,x HmZsDBDIw10/<y*Ilio)Q-A/e` a"Ь}I`@bF"B12rzmU7<4 I ΝkB tP(C1S<؇a~y>pK.;wѩ# #` 5Ob)ub S}3aPcm}u7b3[&:t̾Jꙅڧ0LGAJ`<)QJZ 6URDn- * $,ذ\kbVW^Ęy+gZX;q(m_<txً3N s33Qõj҄b3 Lgeg~Miϡ@}NBKaBGN'f2((, ~FKH0QOP6 wB e™g(B[%ʄ^K?5||bxk)Jh HE>UR|nZ ?NP>4I yOV) Um\2Oڒ.i"yTg9MOn$B@:& 5ХKRDQ`i!PEEX ;̒%~}33On6v!7ƿaKßOWS^E?U#w)ħ[˲):ͨ ?I_|zg,pw ٪otM'n=ѪNB}3 Fq HX9ZgTu$_mAB[T_TĿoG>*nԺi਽іa=zPT)i|7{Pacvdgj៰eZUvH#.芸otTG 4G?ɯ.Ś7"Zb4YYbc|* /Re9 w˰ːEb.b8u°[;ڍeOHʙT,rr|5[ob`yg7kBuΛ XdA}$+W$|9-7*abLWo';ɜ0~em~Sq &p;a' \/n)g4xSnQe)& eSd_-c=\$dOֿX?`훅ocģQpQrr)>cg[Sl~+ .'L_~ j?mϷ_~#Y&*Ǘ's|9yI0G vӂ˪+]E2]uF8%g`¨~d2QS|O1埳dweV)AjƋ_1ίb3CSnosodٛδ~>lG<fD/nԽ)pxcYc`5QE~Fw!TU_">)W98HD5kd۸z~Fu[]1;$b@c[N307N~Koy#RYT 2RYcn~U[<+A?`WQkni∧7b-nceX}vhJ?x2u2,9qKF `VIww #dc_0T[w|** 9/()d> k0kzw$_db{| xvV/o)ZH+3`op jOJq3{K_ؔKm6؅yO3BCtL;U c?cxoRb;imS9a_0o&#t`Ȗ6ۭ2dCKDK$TkAlpۨ\EJҙcc%yܫnT8V޼ٝS_?@:`$F_CCbDnN *o$U4.Ha/?FJ$Hn]oŝs/*+gK؉501ܿff͢&%ϕjb N),,+DBBQe_|;63 l!NCToha$e@X(95{WOrNVzK]CGcۛ?_R=o(X}|,‹ux$U~rFkP1q-UR |0g%4ƤbJ6{g8 ."_p?7w2 ,}ΫO0YqM2EXQ2¤_{ U>MzVzj?=CE*`zn17mW,x7W%ROw5+1:jy{Mj5un>nF%'܅g5(46E9LxëQW<^,~/?H-t0-rXۀArT9_.YUׯ/*I_QBiM~3{;YY5dD䱃0G.v7 ~ A{WXh5mvwgYM;vjjERXCF'@~.z_p~J=VE/sQ K\g8(yWo51NDhVoK&P{$ncm1%5VOy-MfHn5f1Ħ9R|HpR:U³o\gw8n(b {4iv78^|FVˊǖ3/BElBĚcGC;VzlPҜXF' : htڌdn?neErv)=f_cx,`P"2"?)F= u̶35ղTԷ A]cXЙY? $^@'@}[X6 `@^1,`a?-^f@w5A:ȒM&iX+6123dd +L&錉Xm[`Zg9mrW'(EY'k ~xzJr \j{xOɨ`J.˽EG.>n1R>`70QX,$|4p6J/h`=zS<y=yP{09уx&kN=g;A&} Lx֤NhlױAlQkĆ 6!Q93,cXhP|C ُC"+Q,8 "9oa-l"R ]6i*#5B<ʰ6fxkWz<<0vكUD,lv)ڃ`ظd!L aZn*9Ȉ N-Ll汰 B 8k$ eپl/e[ o}k^U^w g4єKjj}%  bw4 J JZd dcX ; bX ɹTzP{Ńz",6XvYd0t&YX5bq1omkY k 4z[2?fQ 5o鶊fط'#s^9Ί 2xTsPaa ٙ5A(@뮾(mkl ^azDty!{_AZxGX .5d=T37 L>RD ^5<Œ!֐!2C0%$!sCVB\qb0&Vs^V{!Pg;AL120;Y9UGᮛԮ7x%[WS(V(jS5FY\{wlBPѿ_\*׏4{OIG3^}DHIRջ]Y_Էֿ^TECQ.;ߴ'X >Wȇ"w%v&%w@͕ uɅ? OH ,q57;6~u["Cp3b w$g+"/?/\MlDF`3߇)xMjG L# &@QXxX>=FQHD '2fQ@W`p(:dCl1.cSJJB>%J&:㰦Xsi[f:QY7`*]PZrD -QD 5dp<*}1TLT U K%*JT|Wn 6UBNU`GDՊZ/j YeJ]?QDW"M:AJ>d I}Fx6>BԤ:F͡E xH j[M&jZZC6umȵ-m l&JI'`ii+C6~.~W 脬cQd;T 6]ѯ+tuMv BԽÆz 🞐i/O/uoȴw,@w}. 61m"z50@w xh5[hJgC#v Ov|~( ̆A&00m= 66 66jbpT4ñlt: G6OFY(zGGAa`r, 8ĈL2~4rh iD Id} 曂LS!ܩi4kxzCYNHz[f ̀|f6gx&8.,ςffٰ99w=o+yX׼އ|UD ,0By!eQ[s}>7FCnK%%hEi''w(7"}x) }7!lƳ[ Klf+p+ּ |nc<|\@;!]՜^6 b1ns1j7|=%e̞r^Ę𫽈{{'C؇v1t%A AǃOωA CCxððØՑmvGGaGGaGGGaǰc;/w]|b߉Zx;1@;~q q rSгYgYY? =8|q29sas! r/ۗ_B&a?1ER"e{1DW0ĕ| tu% @޻?5 cYWmWC.` r 6u yƿ[mbu &&M[-6 ^|}}¶EL1;BA&NG~ |##އ/Gx;x:tv5D?aޟA6Ca#3c<91| lv8_`bƯ9!yx|OrK%|>Xy̎ώ__qʕxĤ `11 {lQ1y8X<"Y ^)ļ) tV󕀱Čb~1b]KUbi@  xB,8?6 ߡVX^XKPEGK/E@`>@H'g#?n3:``=p9hLvÈq6Gbё @ѐGbĂ=Z+}zabX[bc 31\5ؠBO?Xqx{`&X ȹD;:/J!V ,N|pTz.u8 2 ld V8{Ok ?erDX 7K@6U*!V%bUyv"V 6Xzz9j &0Fj:XdAbmuzm8$M' Y'xc6NF8Xg ִ5k盃'{KI0 HK軕Z[X۷1NrdZ ڷ~%}:># r _FaGAnhb t3688!3LĈLx<ٌG<bńN@l2d?2)TTĦï,5 af>4 B{s`'s ?zmĔ{>zְ>b0bbַqvxX;\z_nWUUˉ_Xk5Z:̹z!{6 #}+b杻bϠ௛ }mA\<؟ s+ۆ-vB.B~:xu{ [| { 9=E W簽`ǿ!f;󟰿i/$·~11$O 'IG\HҜ$pxBp1I `5p$-'%s I^H֑Ie_H2n'oIH xNRP1ҝ g$:^=»:KH!)2$S5\7& {t6IXNRI{I*JTJ8 NRiUfIe0ʕNT'5Iڒ\ $U:FR$UU~%*xzjm<_=TךWjam8OIup\gIu!H<3)8HR2֓\|| |`&9x KRCѰ8謑 `Fl ]7. @֍\>IM &Mi9bM3[o%)e::&:HR:| KxARw t`]`]nԵ nnȸ !I݃Ȣ;x^zǻxz@=!۞gO  [ yC^z{ޘO0XoI 4`~;; ;;Iz @^a. o$ d34AAučAX $ d72z{IC0\`88 y A^ji au4 :}89!sD4 G~FHx$   U͍ZlQ7{X{{齷=FO3īјg4y@co bX@W`>{ }F8/3L=zτ~3oK03L<03L<1D3Ln'Bnw/PLZ7&~'C?W&_&G$mS)?3 {z@̚; |NCiiii[_!te,oQx̂]da-Yq3g fìO31Lm&3Dܞ fA.5 64 gAfc7s6bli99kƛ [ [56;qqd8>|}ޟA|?6-@]ܻv/O.O->"/D]xEE`@5GŘw;9`%sXr)ִ}BKaO˼d [ذ Xpy0J*v!rZuHZ6 ~߈17"6n>E op3oFI6e+r6 -ll;l`;|l!vkx  ~w†;a_ِg6B} qhRt8_nnno7o7rÞ$E؇x܏A ty<MBrvo!bǠ㰩CC''a7'{'1I 4jӰ3Xdg΀׳cW sϡ@Gm/}%t%"^B <@, + _nQ_ckX5d_G ~l6F|][;w{ĕ{{?}SIzY>==x~Bqd=6zX3IOW"~>E- |< l$=?C,xWso{埈mXK̟ 'IvdjFUdfZ$KUI$ !Y?dݻQd${?}d} $1,Fr|Gr NrZCZHHrX?"6#IX$/ }˓l\,xLrc+I.>H.Y 8Hr\V\ze $eyGr<?r倩$\!8Gr]sUMrK+?! T n\{$8Bra$ת!vE.s@nuu]#INMrR`?Iu׿ `haFHnBrsBOͰfgHn@ߔ$3-InMr>$|ܦoc]o'Hn y=ErjXOrxk:TKI=wKr.$C.A宝$wqw;Y@rO#7{-!w1>5G4p x}?{?C$3d~Y?d5] c 4%y)t,ŜKR./źRĆe2230X %yyW wE}vgW6VbU迪 `ǫa"}88I^?X;Zxqc-bZC=WA?~~C/a`q#VYٺo}kJH'qgO_{p*)hh$Y9ǂp\+sm Cp̟m<``4 dD Ҟg (-[ -aӀM= ́&lC[L!_6Ɨn&YgrE;xL<]<} F.]:@]L!<,ry?es]c#S<>w7Y.tV h}cB ~yRx3NX+2pOsoB3qq߸2_!tVRExD[I)Ƿ}4W bMܫ/ڏܗ+pW2V={+'H1A?S' x[GhW3hw_s#Rv_zrCs|OޯbMskkb:h Ǭqr_MnߵκpCaq+ykU\}5m?PR Wrv⸡n: Y9Q:)JAtk:wQ r bŸ'[o)ZAՅH;kEg^=`ZƗ`wNrL.ǭT}B?+[Z\C6 E':uT bq1OguP |dXe(jO(VZb#k.2.\7:},{xE˗)/g, ;|N#&rvqUUVu./& lk(tss/h|Q.s"K*Ww洆jNry@dx(8 }95(l5ֻV$'lU֠90 RY\߭>c j.(Z 3hVdp[Fڧh#}GUю;}e.xNxf*s\pc\?`9c Hcߑv <lBηõh1cJb*` `lUc? B< s  ,ٚ=asZ Eۧ;}޹9ٯZFdak=SkpsS:oEJA,| Z PNr95EþxHԊAb_+Z_CȢ8dVen.SkzUeJKe? "D5V(& 9_iUHMD˟?*>Hjp+N8_'5Ӂ1Ty`ݎ~μEo 24U aK[8dZ'O+l%KEȍP^/|v[~8A!;Eug?xp;]u6)ܺ^Zgw$ǧנ5˿j]_7{SXlzDB-¯9\1x.S2_@fewGfz|?:^{ VEk56x7f8>/iPk{ŊV;^'`{Wrw)<;yp?WL?x ho|f5 ϥ48-׮5s}&7} koO9mgX#y1H>PRךcnyxﰆdZ!:|R`^/;iJ^&:1DԒE 9D\kA G:2n;'ts6!;G<;Eub} -d[^ǽ ڋ{<{j9}yWd_)k7 'eǏ= ԑ,@{_V}@C(^VIE[[{UmCʍ?ˢĞ'Rx|=ǢEX O]GV{R ^涕A]K*ZMo`. ƊVk mQڃI0tՎ: |=+4PEQK >&|^os|ڴ񵫵(wx딂׌.OyLlOAuMO{ʈUMq ~Gq񮎋ޕ뿋}UW쳟}6>2 |%| |:uUiv^܇G* d(>|{hKAӏV%g\QOi8[) x=>K)7?4:a156=v:|^v_*u\We H^T} 0Z'\pXxG읷B rpDc]$n;S80G;c8)q$J'vo. IIfNz 2NC E^ޠ/ɇA}Uj$P?u 4@@` P tAa ZDZwPH 5L(JTB&ƨ4"A+PiI-(4Y@˨,sBZN)wT jT񘪫-AAk>ZT6%ZA:T.UD h2UO@>T5MUڌj6ڎdmIu@[H.hMI-MUi5mG J;P#Ў*DSgjNMAP3wԕvSiwJA-ROUڇZ;R_jOێo]j _(t Di=hmB@RGa*Nh.+{qFSw1t, G=A3xNގ4Q/d:4;](PL::4t K@4tJPW.Rpԯh1t\%*]JAt9q\4tJW8%ZMA?T&:.:ItMv|IOh*F>頟ten@[hfnU68Oi)[hh zv|=t/}8Kh1~Zz@i RaZztVU'@OIZ zJC3qΪU< @~/i8]A/2}z>uTz>Zh(f*A[G&mEAo;qQ]V.!r@ui}>AOgHc?=O/tرW:~cI?UN9KiP;q&J]c=%1}ccU1:=?1oLo1}U1})g&pme&Ʊ}}63;ˮ[R'UHͥT)M$mIϒCve\,c,yXPH;qsB4WRJge2EYlR(+_+_WН=/HGɑ"WF>%S)”djjjkJ37u4105]4f_s9k.k.ghnaeN4w203/04?EDDEGFj:SԤQGKnѾAEM%Dwa,FKT H1^1ƘИ1bJTNLf̤i13c|Y̶1{cƜ9u5bucc;;-=lȆ 3_H/*֋:/_4WdzY9l5[ön?%.RU]6K6tZ*ݔ${@9]"'AyA*g7A>E U*^rMA<בΨ+{A;G#9X4L&)E袳)Ӕm:nbazjzn2CREsW ]5h*=t1.H.W:f+].B_Gl_"]lxQ"nv8zAm64֑V(Onl<]gJ;E=`R 41u?[%.{{9K { Zf/f!r! 7C$'Hv~?~{v7Ǔ~[{g{={ݓI<ܞ,&Ά84{oO=V[#n~g}ֆ[ o.Mp+pVfnZ']O+]p=zQ׋\Ny?ϻm+X}y8:.os^b^}qcxbPﲙS<U"ŕR*Mmk@:Sߥ0'?_?yv%wRqEo{?gyyx. X [<&di*P-FMZTYn>c4 C[)/]>En? +jǹOndgrD&\ ̝y0O5ϑy/țQab,2ˌmn 6e~vdX0 A͵0vaEX8+"Qv T߰Hdc3b vbds,YX1>g]\ˊ$jo%\_n@Si 2y>PF tSIDsU5T8W:VCRz+}R8}i}}Y}~~>[KOWT*P$<=aOY) %$d`Y)@ deY%$KQ#\n^TIdC].X Յ!JSYBek IgFc(]΢+&K"Jɥ2rY9^++ CdUIO_GPPPPPPMViK@廓oQ o#52iJZ!d3,:iVZ'VK^}W:VY6A H`ףxjfeC\6U0{R ivNA CgCaûDۥiݪe͚6iܨaIֱ֮U[իURRre˔.Q<6%:gp7t,1*m$cKbItiP9)wbItنF4h^tͶX4]\.۬xg'ړWO2SX̶ssk"dz-ifOqSXUOq*W[s-yXﬤtȶzzԳQ4mġ'l%,z HU"7+Mݖ"5)1<**L6KzC>uaZ`#uMnޥCMYrRVT_%VrԷXy[iKb-ڸyLl7YcW+n1_ڤz625 O-.9̮ђ+k`M)"DZ{F-yf͘ޛUOKOnТ}MI6+%jx߫gR6A,$lbLI2'eH JJ([fT.9fqi6)9Ԇt.Z!X tܸUjMiݒb +d1|GYg9 1tzv.YF b,dIJx8 Zڬ8vKZ.=Cq}U-m OTf gn->I//=QceiK [+÷'PEJK׃&evi3w4G٬it%G7?HpHTiڸqvU# >ThKj6 f1Sp9 qK6}0BUnukSY899~ڠ:nV8Gs^(_naBm༅pi%.PnTKKfMIkQ,\kg.‚( '\pWmlRk ~[)6h:l8l)-븤}m ڵ6)e4ny> (Zvt&k"n, gYZWe2uL(Bj[VjaZliڥ"5b:u6Im-f%įOh-qbPϵewz-zƨ[]3jŪYIEcu>A^Sm%, d$swn zgq'`3Ԃ,2aQi˯kku=L;ȩ,O\i&YԉeԆ۬5A-6kN 7Aפx:ڷpJL)*Tŝj*Pevmz;rP^H? zՔܪy͚P 8- @pd|=zuu:`|dqG١X̼3K{M{ػeﭽM&sN99Akќ]̼+eW..%sm份Gmikl 69~K-MMM6ILZ);F7  P#`dh b)ӗ\./YkZk* ݙtkYfpE_O$8CqhJA1$'w Ԯܔ4r)I")2Ŷ0osG(?+od=^gFڜɕ䆵k/#:9c ]|{u}F2^(ߓdw~KfDF}Ms}4#ZT)Ҝys7ZiS^nI14篡&n7dRv$Y0oJ^gM)l7ם&Mg)Iv4m5L4zCn9ލ޴ߔ|s̱8sǜn\Eonvgd𯴣DԤbi)e?AjH-##Lk$h2g,di׍&dSi-lE~F~N~A&4--َlo0Δ+nhZ"iHHy -ٙBv%bJR-w7Ӽ^%&M=c?~dr9ЌŃ!f4fHޮzaKa,C'2Y-M=G+sMϚoFQhck'1p'|+9󌭹ظߓJKBr\a"rXkuzXF|vm/Zثefmlƽ ͈}#ce9Z|Edcب*+:3֘r Jryr\^)ڰh%6Z_N4;;8;:;9;8::a;== ^Dg3ۙLuy~΁A!ΡaNޙ:mN;N9™t:]NSrzYNc|3v8sy|H(hX8xD$w)Ωvh998ڵ|Y*ڡsquswnpnt;79K[[̈́Ҫh>Z^VW8`jyyYyyYy!Ϝϝ//+k;ku `ϔ23*:MZKZOG9hr%tCݘnB7џͣUvr'9ݚnC_8@ԥii#mt#݉Lw1 mY ntw:A^t"D'ӽJ}~A`z=Fy:6Z3h;EzI;i%Cg^GMйtOGѣ1X3S?@Oz*=NϠgҳنUGϡz!=^LKB:9^W毣t1.7[]Jow?;]t3c}t9>@ч }>FOЕ/IW]Egsy@_/ї }FI_o7[m}GߧGc/ 7~F?_/Wk ~Gkheq&di`5ձdh6ƲlCۘm6eю2;%wH;#>KFĚlG-ۙve²,`9FJl<ۃ&D6Mf{)l6Mcv ;a,ϦV lkgȎ`3Y'bݬz,X?`6cّ(v4;ˎcdz؉$;v2;Nc3ؙ,v6;c ؅"v1[.a ٥2v9]v-]n`7&naRv;b؟v/-g؃!0[aw,{=V؋%2[^a? &{a!}>af %}þa߲l-[ w8s.k5~ESGQ|4c|!߈o7O| %)ߊoɷ| oIr<Ӽ7fߑw]y,x|7;{ |/>~dz7S4/ߏ~(?|:om{>w.K⽼>s<>ɏGc8~_/_/+|_~#_oK~+kON~_{}|9? ?O/IW_şgsy_/ _o7[mGc/ 7?_/Wk ǿk:A#` !PBNb%F1b=1v~iO푖F/bNJl/~-ƕG'|i(DA(v;]Į"#ZDV"'ủb,S>b&@q8X"E^LM .:V1St.-JGO1[s<1_)Gcı8q8A(N'Sĩ4q8C)gsĹſ'S\|!_7[^$I.RI-F:9Bˑr-X@n(7Mr3Bn)*??[_mr;+'#dRғLɴlMY w;ʝ.rW-2+M.=rKNd"S4O/ʃy(|L>.+_)7J>-r|A(._/5|MS.ߐoʷ|O/?ʏ_oL~._ʯ?N~/u_D_D ZUFz5R&Pv FjcTm~6W[-OVgjkK_v9I5Ԏj'[E2EeUr*TxSMP{jVS>jU@u:XUU^MWM ծ:TQfNեUIYW~5f9j#Qhu:VW'Iwdu:UNWg3Ylu:WW Eb@]KeruR-RW5Z|irZnRKuMQ-UW}݂/QBzH=VGԣ1zBTQO*zF=SϫzI֨Wԫ5OzCRowԻ=@}>ROԿէ3B}R_oԷ;ZiM5\ -Z'tuz#(=Zz}Po7֛Mf/LOVgzkKVo׿ooxWAwҿ;]:[tV:C]{='zo=Eiz|}un=C|͂Ubг=W(}>F$;}>EOӧ3,}>GK^B{}X/ЗR}\_ԋUj}V_7b}^oַ[mz]ߡwen}WߧA~XЏGcq^OUi~V?׫ Ew~YѯW?ku~Sw{}P?ҟOgsRow{VK ЉD&QKH'F&F%F'$KM abƉM&6K$9HI]j i-E n9Q]k-jmmq I[]y+T^.TXʠ5[mZ{K~C⻅XLȷdg,&đV w@Nowbbۊ:]+9%~7SzcOgERWW>Z믺SViv1# A|`|+j4/gW3EL(䎢wtE[? =}NWlʳ(nCMLv"o[,ʞB.-,WV話l+鎵uU}RoGnκbw.KݵYBwkAt #L,[ݥ(q{oN,BfcD|҇l}.=\{NT=;L ; hQqY\eU1Y]C.{ |w[nBꋉU, j ZBA'-YQ7 ٧}U25B2W4 gZ3W4T*dTTualu{_M& WT2_vR_g JD>b^g )ۜX9qڊB_/11k1hir؛OM0,a޲yӒW;8,q1ʺR߈rUM&`V^\_V75C|1*qͤB{ht$ ,o1>NOŞ]t:q_T@lJGIc2vb*đY^ +_oGm$nQA13.z[4–vʡĭFkj0Ru]TuRז IH҃!SiF&f d d22vF7 $pM7 $pM7 $pMO |.]w |.]w|={|={|>}|>}?pSM7pSM7pSM71[hHYDzD^Cl܍{Q^kw5tbXb?TGXZQ0fʕ5嫸 d2 q3\enH:@1@1tQ%N@(f槛 Y#mҜq'yTKG-a*} ֗EZ]r6Qm6L^"_j2+̠+9JaKQFJQxlG"5PX*EWϧc*x[.[}d_)k],ݤ^1ix]ŤҏŤuQ^~.J?Rvǔ4X[8֪6RҐ ?c66T}V*6:mhR rR -R rڐR )m^ f8opty#r4lQ2hLBLC6B6A6Cf [ ##54ך喙Nn(ᘛᘛማማxxx3x>3p88oA88=|2!}҄znB=7PM&s ܄zn*zn*g!Mhgd3pQf5D}& ʋ)))B0r1rM7 4pM7 4pMO? 4Oo~#F7o~#F7ŅgqY\xŅgqY\xŅgqY\xŅgqYܲǃqa\xjƅqi\xƅqi\xƅqi\x?|xDžqy\xDžqy\xDžqy\0Džqy\xDžqy\xDžqy\xqy\xDžqy\xƅqa\x3t ]0C3t ]0C3t ]x,7@~P.< CP.< CP.< CP.< sx<cx<OSx^C9x>G{ho}>G{ho?] g>x?>xg>ga|Lģ<>xw>xw>o>7Α/?>~>>>>>>ӣ|>ß>c&c&ÿI>?\®3b>,b>,B>, B>, B>, B>,">,">,">>R$ A)4d#dd9 d d2A~y-z릪drîr7$ A)4d#dd3d2 @ X&~I'~I'~I'~Iw |.]w |.]{|={|=|>}|>}ী~ )ী~ )ী~ )ী~ )ু~iু~iু~iু~i7o~#F7o~#F7!&ׄ_kB~Mȯ 5!&׌i4}>xfO3 f7?^!HW!U{^W!U{^W!U{6B9Bث* aBث*} aBا)} aBأ(= aBأ(= aBأ(= aBأ-`Bأ(= aBأ(= aBأ(= aBأ(= aBأ(= aBأ( aB؟' aB؛& aoB؛& aoBؙ%LEaOBؓ$= aOBؓ$= aOBؓ$= aOBؓ$= aOBؓ$= aOBؓ$= aOBؓ$= aOBؓ xMk^<؛& aoB؛& xx_؛& aoB؛& aoB؛& ao²i~3 3? 3? 3? 3?-o~ p[-mn p[nYfnYfnYfnY 7nx 'Npr'/v7ps73s/^8!pB 'Nϱ~k$>J)4dd3$>ʔ?JT~!xu^WnC +ny +XIt >V3fH\\\\\\؋t1s{!VC4Xi!Vra'N0;avv6\lpw63";v={aY~.yay haQxc7xc7xc7xc7xdGxdGxdGxdGxdGxdGxdGxdGxdGxdGxdGxdGxdGxd||2 '|2 '|2 ' |lho(Lߌیtq;^2(f܁/`'ND;_ND;.v]$Itwak,ԗ-ֻ?|s81Fb;ҩ_h7|< D8n2~#v7n_fYj6]NLC6B6A6Cf [ ?6"Fӈ|biLed3d&10z5[wa=}񾱝46 12:Y s!7-a_nF{䰏k?QvfK1ÐufFcF VU+ʏ8@h1wm4(/"ZGV|t#h+R +b +R )l6R +R +fd +a#R؜Las26'S؜Lase܀26؜Laʄ0;_ӑ+:cVboq3u*lBaRg+δ%#g LmB_*EW~V~(' T_G1]YJo`Vb{XYS5Jo6]2sf2QFOjߗo+ Y%B y*??[ٱ0ҜhaGˆg4u>Uj#suql4H|ьSb[!a_4dG!ʼa*o]ۦ3wM·tۻk!jn6ʶn@5g%Lkm@uQ-ܶr„X/"nTZ5/ʹe-_@eֶ)4-k5QAD>慣5G$FeC FT^,xpFYK3V^K&5uH?J62 > =8bz oKMx۔8lKv Od QCQ'r&M7 z8}a^}}^nF_W]KGXB'66&?z֐(L5eQQM٣;No o@9;93V:Ӯ~.z'u[ء~a#Ø6<(cM\a:S3451CA&],7dYau6\i*#ؘڜKqVVn\iYL)EύB p (\MɭOZpڴaa 72D-.J5mD}&cT~V?_/W'(K5(5ٞlab%餃tqv5iz;˘ЍbL[yos5g[*W Mx`IݨŦ'tw_aZh}J}M~ф$~/~YQ(뭾Ly(:St8ξxfNMw[kMiw#&އq4LrsmWD38ۼǽ4\2oc5)χinh5{"X=B!OmLlf m66~(du6~W8j6ؔXknm3Sq]??km̹&[>K ?_#dMQ5>Isx49[cyvJ[6wEJOwGnYGk_Zr&sNv&˳e?6oCNM9N._yn_S`VQ3"olɨE O>izs:M&u'*-)srR .򍞋GƇ8:Ml}kbvBjN{ٰٔ`m>WB V҆S^WO"ic_c#85X<њ8-g8-&`M|lbV w&qj71OoeSqϗ 9|j⮩JĽjۈ;U shT1^J;Ll0$"@*s@⣈CԘ(&nJa DbG~?%[D)3/rcsj*q\?$-8G~ p>6iq4 G6Mkp 툱 kKQo6uj3pgdO5fE\r6UO\f okOϙX*<>P|NxHKn5]ግ:fH-QWUY~5~oZjxã_~&DB%F$FEidpM&Ŧ=_%_;c]-ozcO&V9uQYhqM¦^5$l{ޙn\=ΟN;s rg)eLrBܙn013R;WY߲1R!o2ְ1G|:$=6/5pkr3ۡC3ҮoS݅{{Hw _ {Z[+x_\dz3&טĄEZcm+X^c-kce,btG9&\i\93ܕ_cj;)} ;C5, Nd碐O&6<];sEmEtM tsqkψeklMď;s^7<CSd,s4mҒXhǛs 7aUr7$yq;v~p̂VN 솯ZhUGtuݐ~x ^ǎ%#->|yY-o9ƹ6|1mڌˬt"<`s@&kaiIצlSXmLE[;dRPK^Nfoh$EPUB/fonts/Cousine-Italic.ttf=@w|_$d'@X!,EE*Q@q >-.T u{j[ZZݾak.!B ͹{Y#!#Plܼ.[1ѯހwwu-ϕG#zoBϺy>}m(@/5w/#Z/۫8sZWma C':)Rc vDty=|I'dDGH=j"'G5Naa2fō>c U%_<?fԙ)/ȅ?'>4]m==sЙBT;q脑sܜTY55IjPѺISFN:7$Ṣ7"h(NepXGv%?^^p!:ϕ?`Y E)# KMk&vakR+I+Y7%НP˕ |u?nE I5  Q %U8*3ꎉk851>2\P',N觡\1țmaDʣT+2feN.lR F!8ľn|;=&BY/O+mxv⳯X?,?q]H;IWKcf=wM3^;1UEJ@-P4>yl53ompHP%c_>!XSjij)[+2RwwZk鎧n3ojE3t$n/&$&&hb1+5[m&Nm{i09ewkbUsGdteS+zբ(L-2x߱ݡXL9S_~b;hbRتה3oM'z9yif!yϼ doڡ4Oll3%nx WG>/r3%^@tÔ~/;+!b%8J[DgBa1[]陙8={n]3_/VX;oZVF~>;iK N[ݔ98狞t_5)UKzCR"䃄FcF-f?ϮsyYⵣ8!ھkR4pDk(=%!!X)_9'lY\8plL$x@i;m#M{˖x;问|3zq?1iDu{rn똊"n'RV"k#玈*T?ˆʌ N#aan!I:|K-@'m OiL`ÇM؁X%Èޱ@l#P4FE|eygǐ1]`R2Li xG, e)?2šTOD&vnXJccRi@T(xH.0 BX> ΍LM_.8tg^0w8w LVMû[Zlyt+K^<;ׯrwXPNQBQZPTVh"& vhMx7(M$>s#Czɨ8˾ᡑkOE\$ObQǪPәL*$ht'[?%33[/" &B5t7Np0>_:{o/~69m g3j˸M*Md;kS~gnY.X{{y]IƯm7`}LǼ{c:κl¥ [jjދ O.:WӅ躤{o E|0ltXlXTJFpCMBh r,{dc )ґb Emغ9IM_ޝLg~%z̊AWnijHK'}ޝ]7楑˶ :rd"c@ n+Q:"q(eڇ4P?:Yt\^Ѷ,D>zǽ|> z+hCH:##|RQxZqLqGPRvHeߺW[!},5:v=rgݨ !gqIuWjS/NʟEį\;rꥳt#N3OX>O1jYǠÊJTkeEMnEjKX٨ɰTʘyW4-uURUH֖JҧeeŽ#fi(=tR <- qL9'Y!6{6F0NtaD'4fRU8`W3|ǩ;$-nfQrv^{S_h87ղiL=j[bY$g;[]~tEsνQE8+] SM7J'`9om_v{zJn$}?l4xom ).7׶ zC&($FT<$|X S2,Xߥ$d%R]y_%2XS Xm[^hګWJ׀l~ھ@ՈND7q@*-3> / {'51MT7>Jvx-tH[5!-d"iFr-(YxXJk @ yd8(b,>aCQ- 5 %j{R nITxV|L=Ó/+ԅg܅ ҨSqߥ?Ɵ} ݰN-蠕_6B oT+0\$Ja¼[Vt.L>La'إ8,]ڰTm-.ӑLX( 8S׬Ր'4~{c?opO]7b Ǫ%MZ$}-oHJ ˩3&僭gS&rC(KVZq/x 4bcg ŏAߗey|Lqz++d^ Z0enČG%TϘSղmwWrrfgwxQ9fO4ҷ9LuȊ(xB)}Pw46 q=t=*"m@w\د>9ӡK{#gm޶:ȨQ%{. {_~~ezZEia9Ÿ/H^Yo1 0[|<}>=>]<^YJ ARv_o2m&ekވCẘ1C.S=wq髟bo p ~Q)Έ/h$SEv㷽o~ߥdmKw7t^%/ŰNQf3lM!Uratv#)OdAA{ T۪ߎicz$hzހU\x|"qS}bE wӂ "NF+R0mWAӼ[ 9E+pw{:I %F}"u`&I v0q_;8F5vjLh >Ϲ` ;Mœ"x'F1*t)z3i-|:>+F7sY``Lv @-&]Gl}9MrlبxN|Q78\oڢv8K@ Wж(Vfg籭L zo ~1~Ƅ\&)KHg1!A%o,XR75Os.󻋸 U}KK7V)Liv ZR+L ߧ԰ateUydk?#9Kzu̇EvEPJ @ z`} D_Yj61 "0ΛOiy@Y@t=&{)r 2"붱[1iK<ꕱӟ<:t&^OcjW;ASC~d*1 4llf !1DO# Dj}$+xòr >pTj;=kưJt:(EcatDa;(h\9pL|T .ivgM-<,P@pZ &T"f.*Jc6Gf/5EKAx@ΛH H:aZ\ *1ۀwvǀǹi $0&N9gbvs_]ߒf-(y:ySəv}Ooa0RDOT#@TO%| uI,ύlhm^㟞NPWWG޺|+Z|=` D#҆BUV+kـʱp}vWͩvA~fTaXW3\aZjdK쎙BH'/J|l 5uǚI?m]cIaR%a(JM> d=2ПՔRd]J>wB:2~wJ#0Rb]Rh6pSG|-GZbMn=1^AVn0HŹ֕Nщڧ^8Mi-TW\V;hSqx,#=X!~Zck.Ò<!_+2ŜY]+u4ɧ$ n#9@ͩ M#ر_߸p̄鋏}:nt;/)6~R靻cn^Jjwc`i/eKi(2A!:9"'BO bT0kk^_v{1rl.n>1Ct㫦ml>2X Sꘊ2xYU`'͚a sA%"dt`Z5vf@P@g*9M,u0oѲh ҃CIAM$N*?>hHa ?^&Y8bδ)0KpS hcg!}E^PLOd`̌$ilܐq#w?pBw+;n4đOm޻sc2 ~W)CKcfaݦgzc[s2+p%Ė Ԋ}Ās~QK+7lگlq;ϫpܾ1Ӗ:]m)5$sDL|Wxrҵ|@vmr}nZ`)2<8cI'&Jb\ \?<ӍۥjgCX#S[de-k5|lK'y贈kbY#,[ 8`M2nSRMC^1w^s6jia߹kVr}]o'U G^lR'z7?8D'0{isg2s;Z "TOԌQ "0|/NctF3zL,=9ܰg2v~x~2Xᅯ[~xtމ)>~jd`d89{di޿m) R NҊ1Dtz]FpyZC.VיU7џ9J4_YtK\^NRzb4.;?ZLx7 p}Z 0 *8;*ˣ>+ 4[m=#Α;e4qŲx8caH@C:侨 UW%7t}6,*@fI>s1uMd{kʪPY0T'.9"4E^^UwJMsy΄D.K7_WYQ2F7t#Ĵ16ioNma-$s~s .1c>8g u'$!֢UXs#+Š`BՊr YKZk 6#S? l,5)n5 &/"̬9` \xq,.F3{vv=>)J+,"'^rAf*ޓGD%1(Q#E[d>S"ǤVGl5V$FD̚~UV %,w&_6wfNMMTʝY3g|* --"Z&^տwy(%((&:SbQJFFpL}`4)iI.ecT)݃>+"x?Y_6#n(vˆ4yĻ5F#cT?}Q7 I@\oOB̫,[[ 91Yz<9񿟿#ϓ}>'N,9|0 `]3z<⟟g7yN\y/fH_CfB/[裮Brl3a8R^AG >ip`<C߈wѣT yb$gs8s}C ln9jK/WJb*l_B|0+i<rV}(m#Z^'ҏNDii"+KA0 yrLD(*ܑ3 gYD"KX^rpg?at+uui9flc+@6^ÑTi":%SXNnjwʨT::(/BeR]CJY>=Ka3ld Apʙ\F3|8&2`b}?$.HZQUv*"pq4JLa4qW4-eꏅޜ7Kw]Ď`9#ƉeVE3Goz޳š͑}HX~ak^}t㳲=Uޫ[des-Jmœš>QtBq@⢑P(L}x k u_S/WKp6u;⁅v%ɻbu$4wʸ6OV0uYraڝ+tGڎ}Jz݋,6|=[Q000ѥs]Wά)/1U/=1!䙁 _wuM2Gy" 5T ʶ4^S=hJoKwQt_kJxr1w.G,p/C:Ho-ƭ^Zr~)jHWQ~}qżY $4~ecE3ccN@h{7|\ҷ5a3%0;˷D玙3ºKV [{8z8+|Ԣ>qը=9i=2;"r`WߴN=~r/UY9}uOX]vq`c%rGZH]eYL똛b\M1qqpp馨A\M{Eicز4ŗńq,i V=ItS'KeyXipGN~_UUǏcU`ަ7H]]u C'.;.^]H_ޔޑptfϯ5$=C ]XybhgK^Xإ e!!Qo}E4e!!!T/Bi Q_'?*G%$)&(M1 hV7Y6\POfz~/*c;;l{13n_T$9}篽ɛ.wohw&B=,g1,VM+T jE,*5MVgUZ ?|Q;>a83LqSܒZÊ +ï%#^.romG8HMbj ġHzuvpŨ+IHrOlnIMG=O>CN!9m6o&KlYzʼ|{%w˙(On 9[tw9Dukl ( =GtE)'D s=UC͕͏4[YlTR"_6_ ;Lu 2><&8ք8_|b5܌;߹{ΙEGHwݺCH-Ft<4{8bƻǞ{O[;тƭcV?0`{P/O GB5#_GNʄJpIPUm|daEM&YԏUXLUV,krioVHQs,u:(\#&PTE⎂ ˄"xC|@¸ai;;6^U: <Y=fYI,WQp*Fwؤ龉O%ˉlnŸx4wRԊ:C!p4Z.iZ\]%Z֠4YHUrzK)Tj_u_rLpHia'ӥH<~ލ/ouV7VՑM wz:]+jr*GPY|]r1\B *n},9y7kN_[8~'I;/޷<9`䞱#NNI^y~S#μfRҷ_)KV=KRwBJ e~,{PrNHxMy@csI=@&8j6 ?Lҟ K 5]~;yz;]R}%^}#eѿY VNoO,D~s=-s'd8:V Evd __l_l꧰@RGBfm;;?C9{ Yuo^Q~yY7ݙeێy"<MXa/FdR.LMG32].##"b1m'`"#2>97'sP)fi1 ExφaϾ#>ۮ]foܧL=-ځڡѪmՎvtqn;KJst DmUi(C.A.~aV\Njno9DR$6pYUWhrq[yy3 Q܃w甍͢I\-z}H~F4ao:\%Nm K VX!]\&}?`8uH20mD)|`D#(MRHxC(A`fQTH)s S}ijd61kصlt$Ϭڸ!٣[Ş7گq\{(qqO Swƌ;p"owǒc 4$/ lҧ˒xEvD@#\@"2ȅ_%W=$W)a&3I/'?-z3k&.C&rEU 5WeE׍+;]]1FIt ZG@AGGzk@w_÷$# \/'?`huk( SB69,A[z|xn菔LtBBrt.l8G|ta( /ϻ"U^1itF]2Q֎*Vȿ ̜@)תGNVL%)E4d

hvb֩cԩj}@>F%B#b615/_ngW2rt&[@z?M3:8oM%t׺.:wԢ)OTiG9S;Und]%%eku|nȆ׵Lh,+KԀX/#"Ju p*cNEH|7SSAV1-+؁5=äWiu7 gh7g&+cV{ G/Q}Nf ؍]ư_o=Fb[)śO(18DQ'di&ɯ0{^J G@b~!O*wqmXY$QOju_YGoP>jdsUJ6qj~/[;MK9=r,C -\N['v3`߁#+vGR{4-oD#@)C>9u4ӛĕz<[uQנFW&hhj R1JYOӇsB9oO$ݸ8tiFZEIS(iM1>5_οNjf)ys(^VD&A/$A@ZQAnjm: Ĉ0k &$/# mRui|x_N\pʗϷ~c^h9Qwuggݦ;pƍ8mϜٽ 5a8zҪ/98ȶقr)9_@qaK.[˗0?0}Ft͒ xG@ DbfE#O_1{oyג@1Q?C!J*{C|0kƷ EsH}tV:?MŏSѧNOsꨈXKuR\q#Vh)Vbycߺ}z{p-{%gHϬ]+U9wE~Y+R% URqQ'kaq9=d;&X .GJnJ_*p9C k+#9E컸}wEB{,& =MI*)P'˺;٘hD-ƈF]}ojm*1:BЀrWj‘4\AR`iՓ+oNҚ {/'=,0ᔹ6Wv\QñgBl[f!FUk/ZjB5WJt)-TP/T)P6{ZH_/|+mkyu>lr-m1IkDamS >C$rGÑu8NM=:"m TҎGZ.q `oi=YY _%_KTsXBW'e.?*f&f>/vOI}^ls=!Z:%jfx"t`CMəXjZf L?3c N43˹.5ۓmHNNL$mV8)|Ό ɉ= Z``V Rg]oF+_ug7x߾;{;[g›Goe4os|;K4iS`66f5QV`QQ<~n f4=>ON׏eW%y6?#Dipܪ<%eqڧhoq5"HW_i|1<ځV MЀY~^8yw#++P3O6 c=zs>V`YrOPD` ~?t/5Ji?Z/pE/%ѕ%GZpBXm;Ìa1jdOъ,r+ tW,/ӒfpU}8riI j[4Ig)ɏPEL|W|-kRkU'|alwxk L2Bz+-=*=Ү 5XK5^s4ViMŖ9*g玶8/Ϋ5o)5q[Уgunʉ ˋ˟58Q]h4C8]. 1kCaaeJ@^N"#-_ %r"* $urއ[|:Lo/%tœaqՓ*쿍$iyQN}XNJ/Uq{Gj[Pp[tg)  ͤm/b"%py,X(9ncqCiii (|!@YA %4\cp$d P@b/p 'CUP+lLu8#&C 6i Qɢᑼ&OaR,(JKåYҏ{L+wk %/ K,,C._Gt@qɥh.~s]GQA}N`!kL2=ڇ~çTk"^m_ܞDS%U/ȫJNUEOd=+>df,lρHa8fǎgh[s@D@q?덍Q0wvd3ć\ݤd Ercc*RIXw'ˎ63&7s(R<)HFP'jIiMTM zh lA-W4X&m:cMmһb\^~nC/,S/ (;|x>=,V)/;Kɛ }/k o@we*%wbJ ϐ}ai`@ᕖoM>]ޕ񐻨R} Urq;OЁ`,QydxD~!,#e^ϊՕ嬼v-#$VRY7`@;>o br˨v}_`Z-:[t0rꐦd+X+$Gd1"H_$k &Wdc2 xE^+ nc2&~\gJT\2'#Eki pd !<6 M耏Mݦ&nS@BPw&UҘ0u$ƀKt1b~00i[8' 8pkt"ieu+Knêq{"1ĕQIrQM/ zh[1ZOp NOĻX$߰=൱(e͚n[qhiGKwK?~|T3p՘ ',UN?Ysb3vC[~gy6c9;5-7Hl,:  Ҁ'p! o*$MC"ENnLk~ϻMl:vg{%CgM>qwRE*JwXal-*GEf=hn-S3Y c8CX?,LXWxI&_CBmn69_ykfV>iK䢽-|C0ɷv;uhQ/W}B(/YuH_rhLH<-6NFoRos3=i\¢WQ*֬,ota3gΜ9L9ݼjNVAD1aBN8]e-D HUvȎ8x6g7GEMJGoF+aa N^վGjV) C:"Sb(ˬqڝŬ\(DHWNᕖ,xKa#Ef( nrX9,%8ޚ_ޓ ~ |%+k[,gC,U>\ _g[cFsY%?M;.9-!)AG 3q( s& O.2Y~w#6"'ZYsTEc&)Zi/ހyK3b΂5ZL~w9* ]*f dpR⏹CTP^o*+Rc+]x=FT_ 2qy24m{ F@u􂉖(yPaz(RQ]Ǐ32sƧR 3 |O!9CNhmt9B||t]F4`O'@&y希gZ&VˢwSj ;(,łR(vZ6=JlA(]aDϟ[PQMЗ_8G#ʟ^ڧw_8Ӎ(cі#sWudqȭ֭w̎n]A7i|EBFי,i~%Wq}2 7VWwU ^B}9G N*-H&Kgk1A&)!Q?CjnW\KE4hgb FIR֧OCD,:S44nC,r913ܫ4XCfYڡ4Uoϯ|i!f _}9bdUIAj5ih&2>OAK@2m.| ,'3[2li%4.;lTŨG*"?!#Dv 9I~?7q8-ωߚa)~p 81ΑH.+!OU}q(ET$FI8FZud nG'jm͟JJqv*~I]SҾ smѻG68/nA5R3 xJMԋ82&p0GjT 9-a\ű?oM Σx^04I~H;DLMtJ"_8%P`1D05\ q̃P'O QR? zWqZ##Do`% "~{ИbL3k48Yz6XTqXEِB M*,J{2_,*]7Plλ$0k5FWAWIgOۢ~⃨'~O|G'5&4<`cTǠD*FQ~lN|:$p\ OZՐ?K<&KZ!Q>NZIEO\4_h-\R(TB^q:&-PB#ZK,o\^G|xfC26uڝSAIV!եQc@&6$Qa W#i0yCJ=# UBV$ Q9Mk3Md$-^Swd1EH*y #o$&{U8 Y8DlH*q6/󎼕$u0 (u:qMު<ZqfZmC>^4+lD,?6`9K=Sϙï%7plV n3j4v63Q :)o4]b=aoglnQmLU@ 4F@˚CV~wH&'ĢV%6ήy=`A&MQ-Gt;xdȽl :C[Җ5f0nS(JlF&), av:PHQ;Fi|fh PĶ6ؖVʶAS#$ݎ*;ݎ*-"P |i7ǓJy6DǔtR4A Hn `0(ŠrP `6e`&g!1"~tcR Et eL|}fYSrJ5qwWi]ogWGiC'wQ?eUNwYϟ7|)u#Jl|ҒҧQ#_-> (Wѧ{[ٵsjJR|CxWLDh)62a5Rς~t>D?;jaztՁ .4sЉsfN1UzbW"j V7Ê鎂"?fXKE6vZ;춻?|':pWc}tjE+׵*}Nџe-?巿Kƍ?{&{'z: !p8 ΃Epo#p| ?_o/2oo#` ֞Bi3{aw:уӘNPW<\ gzeF:h$77ާ/p-;ɞZ𯿮>:h%78|曤Ugo 廙!gW_5]ڏ\tDg~H):_iG]3`iJ1_3?X_ڷo|뚏^ {ѣ?0~?ƞrƜ_ ɟ`>ſ uQx7毿scK/_}ĩ/}Lzںg~ [vZj&^Vfa6 *̘=//+8ulpQqI)߿tuwQ|AFܾB>|WRJ*/+߮^VTZSL6|v)[oN 띣tne }GSUǟ}OO9+?mmbPE^ H@J'n7m4\M+/6:5/?שlk7Mi=D1]Wq[au=d?6S߹>Gcl K^ =G|=j;@?0a@X0L=`.X` n;^p$8 ΁gx\ow9|n_oP 0 FA'6{_p+%YR- &;rt?1a_/ Oo Z}Wjܨe{?}6f}fo>ޙɿ8bs\ge2XYQ{MgSzTG}q*Pўy7/\}eyL}+_«f;8SZzv.@j`yB<:Yφz=T2s=:h?ͣg{N}y)bOGr})b)O(a_{pԟXSJ;걾X%i8ůլe_-Xl3]Il)^_ A&,|eDP!]1l|o 楼75˦ࢿ Ϸ'ZF-?%1xvU~E 'QTi* }-nkT) MHb->_Wg(A+1=!13؞<!tّF-_X2rws岻wx67:ȵ<'Vj}a29;W._=&/ƴʖ?;U|j%tL@Q~n) *z7{߾0n,*q}~xLD?VL\[͋-ϋ7nS-w)U~J* }Q*ft; iRMNnh.W=ۘxrqrOg!B0p9K h-i6ͽa[ aWn{$oo7-,7V.Ҧp5=;ʍm\-4Nַ 77f 䎃a= hM&ulDut:$N 4"H62BcpQ…o-^㎔;6~co,xsѸccGww8*Vq:Q; R^ /N3lSiyͻJ~V5.E]Gޓ)Ap.clH[$)ƫb)]&Vcf'݁qK~ww0i<"$H %[bl<K(Wf]gg{3-ٕLMBGg*"}:сԫ)S) ۖC).*.h]q(b/4o m/{OQQGE%Sw쥃Kgwvq'4p4?L #m}=}wd_r]<3$n`bjgĩ*XìҒBXjnii`aH>8mFڲ4>,-,2% 75hy& JbtH+ocL[:u,ل;fW'd2›rOq ZcmtNzɡPcܵ#C3Eх~ yB!j(V۰+f !t)E0P8mV0'uTL ;K T:Z55i V8Y[N,^|bˬ~(1V) ^5<:sgZ^=mu=V'֜H\}|Uic^}ԕY)kgfn_r >PECSZ{xH,eJʉQQ;S%eF?vHa'bؒ>{I_u*Ýg Xi5{,}Yp\ϴ̈́A8=lx."R,?%KgkbG  Y&ZϬ [`ԁYUWzf\v~RjRUqwPNdk7mvo 0fůxfA(>UH1ZJ=ӇEE+`k-GI2-sr+͕<}y%eO-,gx8h>;p9,7s=׃t9^ORbi&r]$C#a}jJ(EЅ1Š|G 'PPѡIx ѣɋ?Ab"! U'Ѝcvn[6wk߅ /7 heؔRL66ѪU P) -)#tZt&!ڜDB/ Q_v={xsU=Mq̘I*9*]!™[>\29Uje+Ǒu(p(ލ?: w~ۄZf@EHiu):s̀ui$ܜaN ⍌f)b mXð-3P;ݩirdM{zgCAl{V7x왊P]=3S[Xix1qqg为4b:5wB:C)Y4a@) I EC pM"\~]D߳4J 0DA!ʑͿ>oOoM{ !i߸IG?2k9,[ENu+-]qw퐕C5LwLxKKhjZGA'[ ydPE ɑBr]' ] i;Uc"\" і;!PVTwyb^&IQ",^:ũ Xڥ;?tsԠWMqty%/2pqsś7r~.2o"⑈k+LNOb.J13 93Jf{1cׅ6 'ex<)T'I,9&¾{ $? h5@CKpO)T/$5Yx(θ|8(B|f I<e|;d ƣ134mHb*PցSS>>'T{@E~~ŸS6WYsw&1t`ht(q#O%Xt0J䬠 K!EwG.j` X+ɭgh %1BZCIC@]Z(X %TJ?F*>PX*k[ w4ͻ)KeWJ(@ =0nK =PusZ$R`xH$&((`d˓쌪bJ"b:%vP ) ># jRSFP FpKX^4c ?oXӋG-}>fz-gZv8]t5{o[jq]Wsm$37Qt;=ϓ78 ͡`30 SRhZ K|BD 9i/&" ?j\xQؙ3[dE3|5O֡yh6db O86V %6 #aMe<<BLJ < Sw\tמ^-9߭__ݻ*wD_Vo@3݈!w㎯`;HRbKg" =ȱ,'Mc%U8%IJq.p]Ox*@/Mqa}tlt$l\ fҫx򸐑E$/o/ mFYG:Ude _%@Qr,NmDPy#ggrYĭqBړnLqkk'ܷ}q. S})4 TG0$B(wE9%Wf?կ)^–sH:y"bcHp)|7''G=<]$f pۨ:"-W3jL\a5kf耝bz#@Zb\řL[(H#.5"+DDxIk{ $$i< 2~чd,=kU>OG,%g~mHF\?PU:]o:cz_%+J<&0h6( 0R±@ |%_J$Eݤ~7X6';ҰH'wlXtù0z3cZT%i4+x3,.}nEZxa!]$Es])܈-hVxts}דJTl'YkbBh:0NtrşB);, h#,S >\vy4ɣݎ:= 27 UCVz}'q5L7G0}V3Sʺ~,ٚlbL2[kUG%HKhA xO!Kh ~Of~Ԩ9cBGf,sPIzdj@W+RS3M^4iɴ4^aJ谂ߧv,b f59Jv ]3W_n{6 v$/ pa ٘yHI xTĬ1--J/0?[-!rw?iuqږl/J8N% @S|ɰbiReTC =-MbMD?6^ m(d{ 9vZ1wHH]VAi)/KTԳ.NobL1R !P Mu Τ3q6[l!4Ԧ䓹قclGԱ#peF%*CHN %LdRFU*NVqYxЗ=s:(2$s~BMpG81ퟆ_[3mɔiY9f/qGLK?Vqdz}c RE SAHUIl Y؝fίLo("wkڿmmӥVT0O͍ʽ4?P-=Sm{ڻ+@Sħ?0~`i2X8R(/Lv#澁JGV{PrNvͧS7nDnxv!L4Ğ4ף *]R~) ($>I5Q=Ւa(]R}ɝ41.&yWQzy@]KkM,DEہb1C @I7hyBB0#-ݩ ъ,'u_=3WV)J|GðNPDgȎi=.Q`o,oHii_%U2~bA;͑hf ;=^yǦwx9Za9?=eK˩)yjF(?W'qvgށU;_r=ڃ0i=@|$/ /(z(UMJdpnEQv›2PAyY(+X bN`[I2۪3%_Ht(񁾅bT6]j gu21e> x}Na٪ =[PU |evFé1TrXe@"؜&=B4/w_瑦E|=XPA$0&`[|4H&cjJOmex{th|1={`kMFΣ< ["TET@ECmҘuC'PĆnrvepb1Mc=v)ٹ-a^\O7GQNI7+q Z#F7݂ C}QqѰǏSj`d~܃U"Tŀ1``5BRGnjQQ2>[LX`.O~iaiSvs>7NWϜ O{,X;7S8g[q6z|}U/xrY挭%/ݷk_烫aYȵ%lNf%|kQK.|SaG9n`+2'CeߧJ{S=[ԢߣT3if4y)i.~5[ %<nIi+h6+hB\-ОKI.R2cr"8bP9 -Ft/"wU•kn0f}M?)4Vŏ/M3guZGlV գ'4rV:%~OKez Z AHu6][uЋ9EoFƍğ/̥bŭĈ^gcc 6h눾 sR)l!ei)Nĕ0zN%ZQ1mA;-޿f(#?*tD$Ofrqd\g\@Q([*^Z񌦊 Sx0٨SQrg ˶+m˜7He@ƵD"µ!Ddyb-pka O ZJG轃 t9)bu*&0ˡ 8R |c.I$qnzcT( [uH2%9 ԝ# n+InQƣ/?zI:T)qwfFQC"$ <uWf/RGlRl)x26:WЁC+ b6Uɻv(69a|mqva)6@_us;;M*}vbꌵ-\OY& SAe:}3̫BSrߝ 3yDLj⌙ /sœIGr +ZmM=TDy:҂3SI.7TbI[PڴiTCv]޹L>b1boexy#_~M$'$(n6Dm2HQYl˅1Gs,=vBճw;̏Uߎ#&oԌ́g&Dվð4hcYK E I, #Y-@7`XqzG=%h{v_yԓ3R\ T5ԼyZ+6q,m/0 +٪A[a'ϠyNU#TfL}?BDž_|p,2Ӹ*l^Du}dؒ9¼ZaCY^Pf>1ȅsXh]-_8eYz`aB<6h#jߢ޽&#UBA8"ǁۅ 8VCTS-Y(m RQՒH,^9yPYsV}~I벿|򜂕+=ި.u1®*EXֆ+n}y㽋j쫂lk'zz[SӠ)ꯤ%v-?k~obޘmݴ`,dKwdwk}8?$s%ݰAs'W3EJh;$ځm@fXq,;E'Bq} E"C]'A9Ŷ$mnYona4Έٰj] 6oYnw+\4_{:/$ܻkώ?K;ERؾu ?e*;dDQ.OP&DDh,RhlGl[8 W*tVz^r2RjZegˤ8tс,t627l@ob;zSN?'OG;59dRJzm"vG7ncnES0 &HѨAKŨZCoT\|{Ql(1>;p^,nx%'|WN )̥qBr[bO*oNG:t̻E? ^?݇ Uy{Ċ=j!|nkg~A?SAm8K3#M7m@ͫKޢ1Ïn ;B{%uɯSn6x3 yzQ`](b'N3a^k/nF;P"+!``64F=Wc9IW NJ~7f6*d+>>/X}^N x?ܹ~qE'-1Jz_z3/[^aB%æJh!o 1^)}h2 &2ń!= r Q#-ߌ`Zg r73Z&r~Foϧղ!p. kF}eEƃ0g+7ui~z7 /l]XXWgZma&-\):b^sFU;s dǏFt@7?}ԑoXj8Ը-$1*x/T̆4K @:k-tg:3v?-ARwqViUqMZiw8SA.=v.dH9QU!"f[yh`ʕ8C3$ +&SrOOA)t&9ŵfrG汖rIdGȘ6i)Țo/~w֯KHk/^'eIیP*`f$u;XNXsЄ* DO-/CCAۦlssW"l}v]%g ~.&=B,Qx %ޫCuV]`FkT`9HUNE7\AU*!nՃ_ g,ƽb) -oo(0C 7<=] ߻+a+Q}g| vn^!dr8qC'ph2/[ 2 9m:f<'PrBIS振)Ϛ9rN=f.>;_cD׆Nߢ }>wuж?>y }wl$Óe+IHGCY(DG[( lxvBt'RVVrsЭ'ڴNY~jQAwJEG@P9]2˞:y0~|Qߍӹ=v >i|vL2JWJyvzal;!K̭<[[eW7 %1 'Ld2rbujWPە-V02?Db:?ŗ SOz4̃oqɃS7 0)`?K!T9AO+\)9c,4,Fh4jM1H'Oa~\b'NnB~m'GGe(ŇKOU楌5"+|}I ?•FT9 ej,f{)WaDϒuD8 z+s`Vn61,Y< ASgeܖ<޼jTcW:l_/^xZқk: |.[rq l-\6}!]4b̩R97p1=H)Y)џ.+|s6T|ydosD|OF'4^F[xsRbXC %vCn!*8&d Luf I7N<*ͭ5`w/729P/mb"=Vz] $2WQWXcu-* >,,9}r=wѯPYHx#m|-'g{4FrzT҃js!ġ$ z{+PvGR%ƒQ}xFS+9 Gw7 qi`_;Hiφ:Y6yBN,X)P  ;udgmFt?ljkDj1x[>H`20PY$h:gE)8Wwp%1 jY5oHfV FyΎ@ 8V)Gr8,gӈ%݆G,F>௒9SPDjB^cq Wݖ1PU K#[NRzFêPIdn^wG=?`1qZw^=hqbǫsupxe_›NY!4ɬ%'}_:;& BA+UDlQu^;՞m=t]A̡gSxKygOD/D{Dpd2%QTDZ ,tn͓!'& ~98 &TXqϱgbv}7 :Š(bhpp}qRl2L3;f!P0lɶBFƾ'?#$' u3@i++Fw\Mf4z ΏpCտ;.C P\?}FV/6rİccqWw1) G<ĕ8.x/Qy v<~tBsY%3tvRAnU.(!oC*/]0;vR٠O4awҤ#G<ո%{k'm|-ݶ:Ko>)rvp+%Fw9M8ԝ{ͮ1=ҸwTUG,Ć&b=4U_rUy|RZOʰ,(G 07珓6- ̟uѹ|3-V$AqROb _`VC@tuv!KVZPz4R[gtP[%RG2d>F[2 V!R9 ͱSl17{ x._H_] LF4`'4@3_ :h=CAh [ L^`J5iĊQ=V8̼vOŽcB^N[ԫ'_9!QPw< &+"ћLpԄS:*[^=%//=JB$PCEZE:H"BH*T* Z~ƛ3gfΜ3sYIt9jhZ[3!j*P7_g]O&@#Q$Iqdc|NMjDo7 dJyn^y[wĎ{uҊv裆NG'SCp"jttYXQ3hDVG&4Тy!)$K?sێoٱ\ѳ"ltFYHn CE&ʠ1OTW4i4_Xj _h9S',?@ELȍĂP/ٌvRm/jݽjؼnwQ禯jRtc5;=}lZx[㬄q_PXY(!W% hE.[JNS (Xf(DZ֥FGKT՗>x$&w? B_^߸zxM5excv){m3/dŸ}nɽ^)}*RV9kT[5{nMu0΋"rBpb#nmJON׷" 4} 2rJP)Kq,JFa1D1 jS*K_ ˜ PZdAdSz+oٝo_=H/@v(|{/X1@d"'( -+:Cj%zO=,{ؽ<3>G/4KXG$H) "MX*QHz4WRٟ=AG$3=>ΛL8,4|C<-̘|tCtA$ Ehg~ ;'D'Q 'Ѭ}.ӋoJ5ķאׇ}=Ҽ"1=OP'|3d䎆> f|fշns/pnxmgvŷ(5 yFG)Fˇ!rt.0 b"HLSD:tі %yV xu̔/U}:nxskg fu┸Փy2˙37 =$-_ʡQ*10*RM$!_nP23K}rU~þs;M+W%o?<跻zhd m햮Ø1 /Mj[ch6ȇDF%]#vN©YZMO^BqS(A8&$)<?^gGTTd;iL.eztl}p=NQz uN yBeSޞmdqרĩRգSRoed` ۍ۴Q"o#ZbuX;g g>Ÿ)А5<ǀS֢;z+2v0 *t.iKKy| ;p?"W2Ȩ3јH.&"EovcE7 CC~ا82vor#.905m" -9ryU1ڤjeRN2 #C`!vm :Y~9K(1}繄X9㓄ũz3 R$$$p%e'6$S[l &ƣVQBI-}Nm%TR;l(&,ӣpʰv GCFۙM~{<ڙFi!$WvAijωhZd6+&c!kQ\W3K&A?P;Sia+ڙEB;pax~g=Ehi<ϑuR"1B;ɡv;Oؙtpy !_OLIb)4aV4wbEr:~ ќlxy(>i|# x~dmE$y3#d"8'1qad2u> ` Ye )e 3R;HP;Pg k)Mv<*ʄuT&7Bal~a<*VVj&sa3#m;kyn&.\1}.Kx}įєYƐP9 oͣ}6H I-÷|~dG@VnDJ)()FJ7(OELg[pƷ@(q^z4" |)Bt%P\R쏼=p)bH&b2z0[y@ Ѽ'{92[HIBG/l"-4ha>~"Z -/DJ9(ŝGw3(%RA)>-YEfkOǿG~=Ov~ޖVKavTy`Mj)%XQ&DRnOZ]DvITdrGL:7i/w#>GF/uZ`rĨCl1\ DM`77nޓm^C1z x*|:@֩u2g7V֙42 t-#S_ʼnBKSd=Xb6}KִA϶[M4CC7&CY[ .@Y_kixGkҐ~6^+vtj4I3}Z按u8ԔEs%SV98Ogn!%u5m/Vf4b{7:E;s?m`?hZ @ @7N,9&B4 FtʧՠHȫ|C$oàDF KO7|/uCN8'7^ ]b)UG~^#m( ݧ1 ' x#%n`k8˟k0C6isU4g960(LtL~} mI2ܼ۵,mz pbVt%i<kx 5hSՊXz,X2!?,(VV4(T i(?;2C% (Yش$ Hk c!vP$!GS:\&y * 3ŔcX%(8Kj Zj7J">5rV2Of CZXAӬ0*C\ U(W&ZE"YYKS=y}#Vk8Mmؒ*>FSQ7H˫a1қB"2>w[w۩5LVL>,!RE9) g0)8L$G `DXìTάR m-FYjKi=gqE&3_{uʑG$'cnWVJ"1aMa|P%L"1Қ&(|ANcsWQse5o&H$DP. )hH("lxccr30 avB{pm_ãO_O,z%n/n5 gρ{{5͘9hGToQRvT^DjhbfR5c65H$XA.Dц|t s:g]ҜR!%fYkio:\@%>ZU5h֞k8a4uQW=k½/lg?=q芦|/kc-q8vsjnOͰv1 #R3.>Vd4 b @L_?¥Eo^;Y+Ƃ7?,)\8n/~os|`0e٨d|b^$2jJ}4'0KXIaFt* D&A\VYH3qԻNB_H? \O! DsM4@^SK$U|p3&TL '1W!vņ ΝC;hĪ0Co^Mk7Xzi.Ѓg~Ţ(7y( jSLwacN)V]H*xO m'eqи2aqfiWM*9 Zۻ [ w읚NJkUn1;t%`n&&].?:s{ ^1hxrX*V5Id RGQ 24l|~r9a m ℾziX ԢSFoO88,>XimS1GMp:k5q![-x!Y iJA5j類ʊaxS: 0UЮKgXq;d3 1 :cF&32tgǹxj_gwEd'>vޅEAV_߿o|pz>IN_2Me>3rz3ZZ# %!G7\n (r*BR}|88PD3XGm^mN{IGnO7dA'UgSgڽoL: Ň' :N*С'ً<7 'ĄXdg{6IHHLHP.2qKcO h:v7&~:}^/+}/W8pk]A I*/J% H74Y| Hɀ>!Nzc?ɬ6[ćFCK"bsSB)h(OkL1 G oWy=~{naQ뚙Na ix҆5ZNO4fs&p|bu]lAV!ś EPJU>QN@*LB\2<(~h\y[7 lӸn5MፂI?t{.F\Fv(3)"r6R` Q`rjk4dBcwV79[k.ދ[/P[CWfov?|2J/w/Akf,iT,$DX9a Q3R,g',&80ht#>ˮ&egҒۦ\|t?nsE:,.ܹ+> 3QhB! &#:yϢR#R|E7 hfʙ TGSfm:g1{{̄tm ɉYx0rTAJmup.woxj۾pܖWӧYghIh׍\h@VSk`$ -L8&7|Vc˥oެ- לeRxB.֍z>l0+a Q$pS MQ 7Q~61MkKo{鉇a!Y^S E:lMHM2Oi{|o2/D1; <^c3tF%C\YQH̉}YE/NQcۏӛwk=.-{Umu} ;WΘia .d6Ti֋lj<ŗCDŽY21Zb|ڤ \dEp#Ƚ}]vݾYtR`dʣջtϯoS!cB(tEG8"KfӢE%kTJVR2Vl@r-;K"DC3> ͙C;tx .l&!ïgat;=熜 b`.? 9/ 0s)GYn)ّ2YȘDA`c#XR̃ކö?qꪣwL왎l E8}̄C5.*p"'8حH`QMqԄQl{!H*K3i?// N}p?}eIx ڮV7c7r.%&)^ǫI$$>=A!}v)`rØhUX3|gj^JW aFK@⠗VwIй+;xϵogtM&c?ہD0[KҹT.U.&ԧCEAajyFyZe0ʯTO`c ~q7':'cN4s/7Wt,ڽgٵȰ婐ar˽ ͅ'j}f1j|:;HJ'2TTP 0&2{)6;`qBDw,3^ҡgizJNRsU%郷l*fAI_-땘!@Tדr؝N4,zKOo` 5ZYa0@,ә 'tUxŵ`_˼ٙ-UMeu,cuvMi4~7,TI(Vb0h!fG{}˘a;q1voy&GNn*x+R]MeZaE2d5 Pc}4CFEEY1YU0MX?vfCI5 2b^5ӣ]"[g)VQ/De̍P8F@'95'r xG?pH.CW-r0RY|ChaK&W~ ޔ".1Z&) ׍崔W//^iM&a/M?޼c%ngn{ 0\uMc2D!ŊJ0=q#P'{Eͳ-<3$6|8q]dٝ7;6XYaK؜|xށgA%q9xBR*QJ(%b )<Cz0ϲ1ppZ~0F葠ݒE{"PfEUzNk+h} Oa)< p PlDb{>(|s^ݺp3ݸU\z 9QR7Sܹ_y$ ~M f9v M&QK@#Yw,+j| *2m:?cͼ;O^>y @B:ӿߵz坎֫ u#FԀΚbfK}lDY@(E52EBLxM{\l#(v":~ ^eF2/?]Aq͗7ER1l0J}Uj<2F&،P%s~y+7Oc M/÷>uϫgNku lٙ!llbu[͙\Ѝ{}M\Ym =K@ҩrmK 8Q|FӡXZa)-/XA  Rtڵy1{s©`xt{{COsトeN=ںAk-3oK&?.ːi>N~*&5EM*a|F n_dݤj-xtx5~n=1'S[_}6o*v7N~ƍ)$D$H4|`֋hzL$aàGA$xNA@<- L+^k̎g^ͶWCGu ].[4Ҹm{\|?ߧd(WOcR$Īz*l X@(ź!nq60Yb4p۟ޓݟ[Q#5msV*w|Kb!_as+6OG+z侍j ţ4ôQ©`8yL upA8 ,X7`:X$EKJ-HŶZ4*TY^IHRGU:$EJy]&>n u%&sQK n{D Dӏ?P֋n鿵?N[NM3<](_W~_o7Fk۸? B750d(PWJF D F.FX^~-qgRoxo 壯IhiHemBy o$393ff2MsJ}MNo(J̇FvHXiɎ%&Zp He18;ۓ(T×J 4I/v};ivЋ@fK&g$ !P>Xvu73xP>ZW@PTG?rRaۈ)f̗OhPLX:O a#<߂<纜vk9ɗw}X`ՌtcCwo$Q 甚f⧾fJ`hqޮ\u?=D0f 9{{&3[oDN:1h<,7yHqy$rHkjzTѱa g6j)I.'8y 9OOgēx5GHol  F5{b;$HYEGϟ8=T6oZ=^Ѭ3Wtz 2rv1F#60'>3nVl9(4?Lę]}7Ѧ"MzdnfLJv*ۚ5N2$`m↕ xr~22o%LySZ f L hmOJvJLZSOktZz"&\n}c쪬pѵ*Hg>"##.?T?*QXa#zH4$!.Rc qa1):Lޮl~ ٶPԤ]m z)=ba)Y? >}"u#ʼng5r0zxY&'H^0)D^ m amxʀ (ޫ`"TSRDaZ3Zݨ9m/Μ8,Aa bGa|Ht@XwഷL'R!Z Q{e `/R1bq_Ma`۠H tsn_'M+,Cŋ`a4_G GH M,B&ϡ'D{wWӫg+9YL?"<~b|E'y%X->@T^x;H6t)7򁋽)IȱUP C:>5m81$qLzDM/93W67Bp_~ˊȶ;& --؀|*l22ANi9+ 4>g>z0C"z{vW7ocAg?OWV6W\.wy~ۇC͎}r|GEq{38pG۩HJSVj<m$ %B H̞ %@9lΓB+%6o Q?=& &G`!1( `;5F RC q~T%E҅Y%D·s0N ?G(DH,9,YBd6bb$"KYhsDѼ,qYVN[y  @. \AYxiY@m `;9$8l%% : 6%fc|R W  8'@z~X󑵉^MTjq|2Tz(P'N?#0@lJScAm7yjfk&~ y W}ezWw[1oa{6]dlR"ΫudRFBW +Oxw71w߃>Ll5^|RAҢ&lۅO[n(SV9Wޕ%<{mEK1IدŢ35r,+VZ1V/ň>`%.a +r %GnR.=PV6`ƅ!+rkO؟Nutw[NU&*ʫ$9J`(BN| ;+V&S;n~zNEU}>kf%EGZ⧸悖pko>gQ&W+mOlrQb'*Qe rTfN[uTb  85IysX^ ;qAF~|k圱[*j'_rV\Vs;,yWMXvoe 7?ڥ{E}F0 GO鵮_ėX t6| Á|\'qSFYA_̸ #f2sp<{zw=UvC'/_~Ѡj&t//b;}jl։k~{bSgGe^/IY7byC^SNİkbZ#A* Fo & ty#o{Lᴬ Z7|ggn\AqsccӗGGrȫ9NGLmD~B-rNk3Dϵ1//YpOEQUŰGA}HɨFz72gU}]q8}uL{?",f%.tsUCK) 4Z6߬$z7$_eKAN+7F Jl-Y֘Dt(^fw$[SiU׺EY#Lt`\N*lv{O|¸h"jYʏ0#GGGǏ*T 4HfG&W{&^)ZHzx3n,⹃$G#W $9* %g 0@נ--1Xq.T 1J}* Guq BEJ/ˉ#Sp7&1)͐p2+љ^]lZT\ruWuY ,"7֕XOR蜎k`wTp (wbāF;wAFR;j<**ѡЙƫ14Mxxl]pmZ䶘8HaW5 %l`{AéF3->hROpiTp(*V\d 0Z.dx]owKU/S)t4o w_ O[8IǾ<~&ȊDVT׭1QYi\kIJ[ǟ/tB$9f=| T3QGD *Ey8I/f TLem;ܴc]սZ0ii/w}yĒϧOq^t?F2btk 5i]E[ɣ89M$(fe21F&@SR v;J}n ;Иx|m#rdMľ`Y,!4{̦Ng?nL=]6fҪa}ƴߺh9g[2~h,UZ!Gw]ާMA)n|s= hv'>Ƭ'MS*Iъqdq8g0q a\ !(_ș3[F]ϭn[zk+? ּ 5-Ͽ ^Y4eޑ XG d&3UZp^v̝`tq%pЙ>>x{̱ԑ5 h뢮Cpn;,LG9|NJ&24ipmlIas["|XH45:~dWlh!4O~ tk6>ܚVeg;Qa^9EQFŠeQL퍑#V3]Uge= #u&˥4:)ZgJ6 m8ma"FS mu*ywQ*)+Q Hb&Vc깦t*g&KUf&pPTWG4K>?#+~tX^%J<6NldP$|7YLB ЍĒfu<|;mCR-;΁9hEY1u>Բ;ZS`93tUuAU)|M) y2b7N|7r7su]+D:N 5()%dv Md2j@k01%M'@Z)Jߏ%k_ jbevp8w= Wol\~45reW `'7rm/mFݮk&WҢ3a6aT}%*F(9'Yd&v11pk^>L([YݴtϭL7o~f]I0RUOynz")˞?Fkh-4K-J%&=R@qVrWmutU'uwbSHMȅiyZ&d{"*X4`kT5dO3'x~d;O (پ]~)`5ŢajNʪhZPㄤ C @Sx(ruKK8 Y"QfoO*rCbi\11&ddi1]"Br#D)bV/lS;ٖ3Rm*d$)8(hÙ)IRF4j;kPaI0-P"{{7<ejg}3Чs;HXv@ZxH-*M}bޠb (15vtbkD(4WwO_v &>wwY:-;! NiFzΙT;%f;,ݡf.\SՉߙE w} IY-~B05ĚNGcɢE+R$cؓNbwu$y\ -]'QgVY*EtCS]6+G9t _6Λ?s˾ CëI>eFt4d6n- [=!g 1 ;!q^D6;:ZcfVo` `#\b3ƀ_b7D|Q!/m(ڈv^Ha>!ryB4f7nb3dq럵E"ĺ;: mfkݬy͈YxgW4{JΐȜT3/:H,vEQvFɣ@ާTa#\/dgD{S^TN%u&` }|pNLo߅V(@9ԚP$d&žѸ)3>uSׇ38]qε#EcJ%#ZA $VW/QQM+k WD`f̥Կ qһhp ͞64| ln݅^G :FHq+e^| c0^'Wd.y>Y|ZۥϢf={\2#.,3`Mq1s+'RxTK+'cL4:iF!:#,8` G/ uf@+X=S 29a5mb5K%E- 3Eׯ`ؓ/V68϶Oz-ӮIԅ'BihHƦϢ -wrCPHX)U/yz FZ唢ܘf kuY9yE-`y%(umnLo×U1ٖ-z~9-&9sh^>%b4Kb ,#+B9_L&81&~0}Āoݽ ;\]-|uy<}m<Եo)3E+W{q7 Q*) #Й}4AFŬ^u>:8 @jd1q ,[M{ZG/ 0uTħ1LP%J JD*OP sq䗖~j}%cW.,5pNΆgDx=zE)vDV4װ)]M R(Dפ&[Ys k*D4R>4k]O h\ #T .?zlI8:q\ g5::4 eh{\nV;@wyywn G}1QN'3GqKEh$!m@$ aQ QxP8'QVιfohߵmƌG\kw;97#Y9~@fq#ˀ?e3gIox;nfY̓8sKC)%"6H a`@;CNwϢGt<{CjDވsY㴆"#b ()$_/ h }ӄyaw*뫠 _ĥ}~=Hu hgic}ƥ)b@(S O#{K-畷I%>Hգ|rB; l&}b9 G|@% X}M.X"S}  ׄClJNh*BqGц =D\G&TTVϳ𱩤R ufPA3t鉹% Q@*#{UϘ6$ܖw֯;݋p>PhfKDH e"VoQY$ł$En&S  ]"ާ)Җttv[2j.ꔼejS=gQ^;d_o/|Vr]_7gޣY&L;[ߘ< A Y@ݎU{ldD =Ґ\J)th5^VF2{ZТҌBFZFs_(C͏5V$h -;9|džς\0xAg3?pbl NI>`3 y=xH"մԊ獔Itg,mIFz'`*9Zبx1[;{@Ocrh,uq`QvKv-yLTy^L_2{iw-oiٹ'ByPr |cxeX/>0 hlCy6&,}:ňË 3 5G%N/{=eM(X۠Ļ ZϡzH,2]X;6<(֎-[}.b6omĸgtFIބz&&o}0aR20~F1AbR̸nC\%BHm˥AzbZ;v: `orsqn|ii;D#YqPpLvȏ67S;> , w4n5d|ՅDō 6l@||_BTr@LS^ ?O 6MťtF(G[-"ȰQ(d 9BfB*Ʈwv펩Myot^򱞴[^ٗ[ӺEwEkZЌg?8\oO({/N^/*FD*v MF{PuH?g 9\;,mzS*=Kjk|T 5rJH*-MkULEc;-cN)̦zGͦlB\Zu5 >C T;*5ajV q%X gp„Pw-ڕ*Ǖ]vTW}I T/%OCJ^gA ""vKj;ᬼHM>˺:.Uʉp@C2s2+G'96O b7;3 rMQY@CUņQz;5aDU##gf(ȉ ?%\9Ң wJvCl h2>ơ> PI?eY D>lf+]vgdQw+B3*r?+s>g@;3uG7Pe  $'fL@otS'uİ7M8JAkyG) U政^!U>4}?tjXj2u4PmoQN?Ơ&?bOsЃlA容lAl [)vW*@۽lo zCAuY?)Ird70BseN+;?\{g7Qa5/'N}! ?(ۊqV8n+aE5KL~  I Eҗ,ϔ\r3@hROESi!@.WV&Euy([DS. ELj{w@q`:5I)0i\P MM3к˨x$)d- 4w(p_}y \i}z=&8e= n?^ @ZǛ&TU^^jBPţWe<+nѳe-3ܤ<53f=< A=! @5~`Jg/`+VwXf*Y=FXPp/}W`7=g}|'d %%G3d^y|GOϙ3eh,g|xR/ղ.*/d[f+y/4%< 68wYѰ=QH7{fGiz-u4\G ok/j?4&zpC2[-Z$dk$}siؓ{?R_+}043T],K*?CFiFrqnǩbSgf4kwyE4H=Q5Ss;Zv̩22#y/#0}Byv [zt}(ǃr/f_`4麥dӘt*GP9ڨ`Ae`&spVT S־ ~v=v5tT(V5iyk𥎚![`:*124Wl|@ÊIkQ/ 0ITh%j'NBTΡo%&Ͱ%:Mr1SC X8Z*R 9FKf!0\`dl{<_t~V׀2Kkڊ9mZΨY"1yP."-w8?$);hЛn-i`Uk)1tw6(y=EVT'77H^UHv yVCY螽,KlU‚2+t5j7 x|Q`8OI}׮azEъD )U,4-h&hCg3U 1c#DjG=Je3Ru)*C Dr5az^M&):sUK=8iJ.Q`V=lX,j Hd2tf!#-IieugH?R+~2_"45g$B! fg^ "PN!I&.̗rL OG:ɯ?B*Uk\TX&]tƸ( [KF?$3*l|# tP;X1~9j/5R_jT]K#Zk٬儩g}R6H̋^_)B+A%<;3T /y'<.=40O?]#ބx/ҋ_$8J)V8,G(Bf+L[%sǦ@4Ɔ7"$b$jįH}RQ|TG+X(#,V@jT^nQE0$: nB{blAad 0= `f5;8O5!"f>R_JuѤQJ5(DwQQ~E@ֱ>}%ШC^:։4%@$h酈-لV[9?}'dCWbyZ-VD?c03j/SGPe"u""A !F\b)Dl#v@g9艹Z=o޸Eٻ׮הlYJ3g몪F P 5{h$}wlڽhw-{$!Cd {-_>j+7,$|躠cC&(>I {Wo\R7n礤ι'-ٸzo΂wnR={zѽ0A$L?p^ xyτ}36Q = M3ds1%Yih0&j]Ͽ]w`֚&fO>\]-=艨mJJP9w^&Z2IJMMڐĖB$?m)RS~0ҺO/'?i2|mJNMMvJNEBwpAeMW 5:/“5ԴN}B'mBZ\G iR#kkrmsRRtlߠԤHgI55 ٌKNasO,rb)x#kŕ܊q {~9qkkKbK8_XEB s0-4 50 '}B`%ȸyS vWF -+VcC ]FmR`0v?P8yG`#;Ŀ+t 4DXo΂JgᇫfbOZE>s2葻#`Rg-[#Tvk*$=3PC|RD@ŵrݧQIn=YјV]͚X47֥s;ke>j>>7Wps=[CZxyOb/ȱRpϰ_Wf%bI W.jFܝZe x0Cnl0828:\XXj4gvyi ?̭;uC\rǔO>n4)ٱҨNAz3}t۔UԂAVMͰh 4P")唷V8=6|!Q[΂`:eAp8X ~ ?EԸĪ VFzл!hrV\Nt.LR'@QSn|ٸ45 0*ȭ3BuaIj2V8L1OyNU,ns/eReQ]̾#Ɨ>CW0Y%7۩l ȏLR :]^ZrM~z4.C]:DH;]Ӏf Ҋ)U0ҩmW^<<:hjcB$)#e0j+FĎ㜔ТJ٘0`K a 4- Gž/}&ZH/R|j!˪Ό1$Paᕎ0A`rX\Tˋ_Fv ~'/̟6FszIu\znݧQSO#l֝n˷ŕ3换uBTkyiJ~0P{^hԺ^.E=}H$N0%XSlפS 0"GKJ@^sH㯝_ͻ}A{&eZx~}ظ|/_yC8F"Ȯ%+ʫ¡RI*)t^pkrz/Yv,kʨ'^ }]8ta|/HW&$ECBj7b"J:׵۶ȧA)][eǭXu>%# ͌M+hçYI%/o^@-4-`J#p(5GL Sy.5+Ł9;y͗ģI>d@5{]+CG7e<| |Uq߸uɂB}MBS,6O˧KƯ8,B) ,>?Jx(FV2*$Qs`bm\& KJn<4SZuYJ< ϩʶg6zLTZZoI?L7ICzut¬c:U퇗s@^iTT9l%b`' v\!ǩ8ڻҡ_"&9,#1⒟a܄iY;1 ز ~tQ oZ~j3߂&i彎k:icɰehƨ{wwN^U5 j~4]b>Pd4oǍg6<}seqۯ=>ym{fknj2V: / g]9<,x}/!]eT. #eJ㧩pP"@~xv_OtCxBE=Pj!rz$iYFS_XzFp$2[^dٶǦ/svdngN9׬!q7+ǽ$$)I3Ч"X"<B__1\)S`I`ϸH9k;dۮ6=+t>sr]% .%Ž"H_4W'urxk`ilk59:~`Ԛ#GMA&TwBFRb):`Vwi\]Vbe$4aг6Jӓ.Ê xsѡ^{{VÝ;OFr~pdm6ϩYrُ]։MsؤDvP0hțkE Z[">o’b2m%駻6Bn? wj&>Կk~@B2JEZD'_VpH*!x'EcQ.+Z`GK+c.T1Sp`БԥC]GTYWpК[b!b9kseuZ vjcay! 7',/3<,f3R]փ }uN]d@R?nJ p?ã0]МM@1\̨*v>F:DZ*Au-!XL j̘Y6U(w{6ym]?wvy_13_7\"nV{U}B/]/_4|jQ"&\.uXF9Ю|GJ1hqhlv_2 d2%)tx^ |0H4Qo@ W<4e9~ιҲ&+AG/b-]݋Qv]Y;@--txuDCYu)\RJɔ>\q69׏#+76_N,Hr׮ë͞,YL9.k'?';7is.;7C- 2ԈԈ82x6;YWϊN`$)v$<8k &" Mӷ 6ntZ*lW<`!ik*l@BdtTޠUc|K`:_גVB 5 NFjÈT*zK"D2JDN%2&d2ah[tY#l= aW]Ls@`}$%߻yٻ7[s/CY2w  _/"A"TX)+Ehn(ݲ#Y 2>IlSR" =PlO?g۠U>NkF҆WZ߬\?1F4B :BphuVe0U8 7f 8a7.d[K3[U&Ƅ9G;poʉ,}Hyx S{xa/+ߚ! Ν8>TLpa'*x1>^,s=T&HJOD9XÐ"%Nxp4\,mPGJB[þ:lÝZ80zI4('w0b/@è[w<85ͧZNC]h&8XKI9%%T`X)Yir+n|e8Bhy#_9 ~rtݜ/+^~1YIJT:S[JT"1"HOU&'99{s&snw_?ejI`\_h|a^GuƯhNHI FPx(XL _0zĊGHɃQbHXR/VQ PkkRQjL,PiVqdJ7Ge5c {i¾0☛l7gSN=7>Ac"`_`-GvvM!0BT:2jL+af3y+ JGa0BT0RrU[=9n0O*U5QFhu%m AԠ}I-e3.hx,4%<[/@k)FԔԈ0Εd-ޭv9p5㮷#<;(. %g :@=5XqCغRԢ'{Mk]Ċ:uЅ}S $Fzu\s'oemꪘe@Ԇ4?sνz`pV=d=0ye?P/|5@֩iVN|VcN`0hL` Sp LDA!ߜo!qR6oXO\L֐)jt+w Wd )r}5 HA0[ ?'H|]'Xm,MX?@lCc/nK^GJTG7){Ē3 S[ɮ;9=S}FNL蓓.Fni!kc׮6mH@]ARGD'fipEE^^gϟ EEf57A:kXm) sŹT_wo ?7ߨj vxs^Z2-*\eBfFsׂO>/w{G%GL&bX}pHh]7(tEEn=C7;sq\ZݚHpn}ع? 4 lgX |Ro$v!/̋>LuTSkʸAOO6t H=ϻ{~kDR 0)Y24茄fQXkszuHLkM^`Ʊ)cr2K(eL"SɈ;齥:9PADT;)H©u0 D 5n8n-SQr vka[RAw!y=`9٢U7ac`RwNO~ MjQ~H$ݐ_b֫[v~'=E‰FB*b| jf߈`m(l t[nUh[Í4z.aSJ5$)sl.KWNR^#.F?Ę0uK/S%TSȨ^{i>Ѣ.L`zUS }@+ҷgvc+}HΕ+ҺLy.>=-֣}A<bz$$t)!-л)Nl ϝ9Lko ]\M b;KWN]>c"Nsc6dH3\HF"Mjz򱒒'~}/4:EǤ/4u%l71vOe!FO^^8‘8.} w3W3p˅m{"[g yn,kd撡/6m Ky*$br4L%*1yx,}JJenfoόW ?}[ՈoMX,w^[9c]wp3}R*ވ4XR1@Z܍nb:c6 %d`I ҁ33&uNľl;;>HyFp/7PGH[٥r $R-B1eV[l Ry( }gx'ȝO}f`cJ ~q0TA-]F7Y Hg/>NS<5 }eJzMOG/oBqi5[ON#$ kRQ![?+x%bqM)5po !-ׄm3 B(o bhɝ(nrT?~!nͺf5Nm*4 8zMW;ã=lsocd߁hvBѵF9ρϚ}1{jN>l6ivS2 ڤ+"$Z(Pßb{ƭB: =^ ߻bQC:_\=>?n 9 ~ Rc7u,`}BѨ| :ҒBmи],=  ꔼz+wN[b%3&_J vUe9=SJ7P1"ȲrD+^?"?`qyܩ%8n&ttr ߴP.rgy˞GywL{@ËEkr%L] )|;2 dݹs!iÜ&rϹ;wQh{]]rwriH!9JI Ez="EzA)7ATD@;vW\͛2 0[0m%@X`tڣQ/Y~->Ə|nWO˷Mhܫ=:gժ9HϟޏFKf|6V xuAA 2c-!7z0 Iwoxx73a{*_ x5Az3PO'7$6dۅ>ոMWO_O፣¨^[ls>!zЏgeog^ƹCzpL] S&AjrHtc!C'Mvn$`$:d+zih%:g??@`2" ̤itޠY%N]p H ||E:B#kРti=oYQZ\Vb ![ A 3-ǨvPߌ#h'ឈб6Ƃt~}Ֆ+ZYѸ53-wί/RiΟ? b-ݍ=>l pi#!"QPtą ,{HImQXJ@t&NS̲)mF꼳m~A~@̶}(k=E+7֐""6ڕ>=ci붅L^c< Uq 'C:S-+'vsS; iq Ɨ6sf\Q;V6miKNMAt̠ IyQ[9scOlqu>Tr7*wOB[jb L9l[c!lMǩB]zcR2E+Z)O{-3!%'& VfIǡlnNϿ\i WBJ冧fOigKٯЉc[7gMmQZ*Ek61MwT,xbg_bgnfl{h/vFl4 ƾ`qqBk^]wZ-B+'Di^u^b\%K"ǧQx+\JD;:֪EoP ZzCZGQ9بWTYeV CY'L{.([₽a)a d C'~%Nb%ŠJ;1/P}0C{#tsX i }-~"c9RUXW*QKbx-V1m\:`цB+e ݳ~l=9X95~5[R[("y#e'͗?|Zwj94iVh7lE?zsEKqHCMs+Ĥ; աjWxIML sz~TX -Ќ<;TU>jbr騃'mӲ,g1m{5oS jjD(ڋvʬ6QTp߆xיҌgzv.Vu8^0*Etj^i|*ďchJh<(0+(oaQiTgK _J b,je`c|/ ^>^92Nb+u|5ْޥʹwA@5m/?ڜn}P>詚~=2:Qjv ՝^,A߮COC3lЌA*nJeXV*0\Ԉڨe5j.m5C:,e$ )z"z0|АkO |QeS&쳣?:O|}avz4.Zܤ/oEz!jBvFcBZ`PX,ФjW(~P^M+ !R_Okw:=f7gWo#ѽ*K  j.v[6[*=(qi]Q*OSl^I/CPO dugVQ~A'd ~# 6IzHQ}dM+mğfXP!Q @x-d<)=im;ѭ>/y"dK@uM뱢sYMfU+Pކ b5/]$MvIJ\PKc$Y8H W֊~-^IWj,hLl|޶8{Mqv)~bs*As+zMAoc3moz[%d :.%(znVm .T$Z,Py(tWIN1i l`Pܳ>=+D6#UbG\ע0CH}uJZǙ(8ax!E{.E F+&8Mxk : Y/lHF$"GeA| ۲c3AOo̱Wݙlswm]LV3[񓐄BYjjQ* nJuY'`jV:,@| k\:LH* װڒkV|O7a % rxgh A!QLq,"@̓df]Ifu -^(*](: yT}]u4Nt]!,DB!;%P/)\9:lN$@$t 3|iƗ(Qݖ5PP@HĒ) `,?&YT>`a K= uk0Π])198B"L̗yЋW5E"5&Jˋ3e@D[2>@طq>}dMu72rXO,V2+x| -FH 8g]5 ~i iSNMꉰg/VT{s/HpVƘc"l›B. f)T'LJef"qg }%= #cYi%dӎT>l5c;tYiƟʞ֢K87PKqܔ43_:֩h5mұeArܿw󯤬=qVg?0lM3u^6sVz'1gw. yHq(n]1;&^d*q%'0!LH@+$D"Z&iύyӝwرi2=J.Mj~SʮfL0w뉦dDs鹃{Kebl[_`@ 511#]z2?bui%&ZW Kqlwwr%uYudi*-);H~FUW :V;gIl?YQ`1>{Z•'rlve ҁ'Z3q:eStQ^jad}ѺBZ5t^yP{{x :w.Y:"44j[(%.5!POhqQvѳ7>wdt'eF΂зg[cb[A)Ӟo_a;K`QpшJ\F6\bWC eҌIS2<; d5UH(N T3?ʜюaue剿ݶ[Rs/|urP0qj>b¨e ~jP]P\&)8@vu G<_dqduuů_b\\ %tU:GR#gWqV1`'=.}wCF9SV@@2:NB)!ߚMor)5dūt 82:]`T?=S(B'~` tK2VE(k"'IF@Ra6x5!ޞTܱQHTHB|hnbH퍹2A;o4"ufZia"A LSD7{.>P'Qŕ|Wh?U'q]:Z&ǓQ>TY`W|e"73BQ7WiqqOq d^> +(F$XB-iv8ϒr"e!Ӱ]qN'iRQ!b'>")\ iZ]`KS;HbG CϤm-OZ¾O7/& FN ԭ.GϱI="} =PN"tioxv%]'Ÿr)ϷeO)7Ay'}~%0$zV, }uB[> mCe\a@ khib&4r4.Anr<O3co*~)˳H+L=$ﺅuaixӏ07avМ$0E@y%bxq+5¯mٛ="|"_x?WyRQO`0K 㐤%HM =z @S$]2a'vjˢPhhTO^ Opd;|xI7G""{wGEO2}_#!8΄. {៼-Ӕŧkb$`T~$*6Y-Y)~>zj=ڪ(\pUZBy.bTRN2RHŜd0<;턕X@}qz 己@-:!V aoD7&}Tx$vsqt0MPu:C4˪ d 6$D6Ej3:ӈu]zHz#*_g{UoGG) ~Et:;QRD49oK:FM,t7<"iox(ADE_lSRz_^BʁWDLbrY(IbS d.(h_EJJlW&> -d*~56QhÒV\ARb"G %$P>EP>UiD t-)'dؓ5q 2}wAj6.aM0DB?]4ũcjs; k8!GQ#.[pK1('C홶<4A ܋v%Z@hH"k9b)= I˅VHJ5&m{= u<< {dԪj<)ըD,;7:1LICq2#]SGOdYddw>-R߀VՇ,^ &CG H_"/ 8 '@(o=@#OA"L8/c򂹋J4땄cIBsP0n5 yVp Q > |g@[hIx қ`0O'dVGzܫܧǽoxw{|+Nc *@aaK="@=B`$˼#$?F c'aP/ OCr~ ߤ_+ ʩP^M&^V~0~~ -bn;C'D GИ6?x"=&W?Ox''I˥ï;w\~OИtnҖ8Ar5[9 㙭s̋ Gk="`ͳ1/i8/?xi!y.SP ՟8lj_8N̸X>?rd+w]PmK-M8 tC?uVcz`}.z<<] PCsA'rN|@]1dv ૡ 6CsAn9YP'v)'`h|0IDВS/$h Hy2W{gػ+}>laQ?xG儝`{}Q>O'J\aIZG$$<3{jM-b7]dW26`~ >Q9c'w J} V9zW=]N\r~0_=$<[ HAbs,~ Hڐ!1{fy?;x"M?/^ -8ۈl%$ DJ}.X)f;(zzn{~﹙dK/?'̿<\]%ۅ-׶)v"䙇g7y>HB*'*} -{dZm ~鹴#,&gPM3s Nq >#61Bp僆!^kK{~9*"ByDj5 /zq^zp: rג.]8_fQTS]8#Gs:*' ?[pjEPhhK>dhI!Af Btj;C<`-%QqfryxrvhGksUԮց b[W-_̣MUfrV؊RGUH S?bɡa(QVTmѳqPJBaAAe$4+Kþv85IYsFs,'YVܓgn,R%+KǿXkIn$os*Q ɻ `O*)DI9$AJr> |7YQGo2RGiZ[gTh.f6/;_OL%J2c eocHo Pν4f>J)k)3+1½5!Ƚ@WopgTwhei+sKQlܾ5ԮG4$^XQv}RɏS-d!@ zMNcs:؜jc}+H'Sf'iW"l]yWX|Ev-/L!AjOO}TQRB~S:G%{@pl,S.xn&b ߋ2c:FFNAT,ND;'Rwc1t~mHA w7jݮF&]Ȳ:yˡcoc$^(0+DHz*}.xD%d/^E BO$1>uS `t`X,`/C !E 7&}SPL^_sk:?]eѴב٧6`?P$)smSΖu*V*d 2:jb0Qjŀ)Yp1DCS4[!`Zp(Ba$$C+۔0 (ƌ.)(Z>eh/kէ|}bfZ*Z嬣ώXKQ}).bPH+~)3>i>CTYDX&C)4D 'I6JXbU..N amj%MwŠBh&dz'i$?_7js\}s}Z<Ń44g2#n7$4q.E-  mԸb#Q%iaʀSh]g8ف$S>qbfeXw=;àt7J\06q.NU5fST"͆5/̳$&kS>kڪȼ/eb;i6Rտ8w:tt~{ MmPRT4LE=4 ٣5ZF&6咒69Y1lGBK2H 2=ߠ匍\4ӔIRv 8>7DÎLk{YOOnͳKk-w.K!B6} K]w)e_I `Ljg͂鎾tc/Ȟ6.U(] z X7s8Y3/18BmhѠ_B;1R9 *rRzk/͚@+2[;njCQ.=]M 6}^jJJg?ѕ]T7K/ёfSWV3)e×b8o4ʙ(AjWjL$kG3&3Gi)Fsl61`Fl{]*RG)%!{wsNket׬{^f\m.τ՝q]>p}ZѮΠj49JOE`? =7f"A&Sqbqj C)&y!;'PLbe"|o ?Tunʳώ<7.ܽn77j#BN0Kxzh~N3e]4RFN:c9?P1.ps4$_g|~ 7gW)V0k߶{6<%7S}IvDP"j㴵nf,7IQZ$VcR6,cAEIÄ '_IB⻐lMFD9A9>9$m rDQ9뛄 v.QrV6ST/Ξ)>55Nۢxg+l=jƯFmZyE|=7m{jFLl[Fv}ڇbS4(&0liTl[0i J y:ABsdpax05v5o}Y EP&BgQ/-knWp0U>ŖRe9UN9@QA(jUKrX hܸĥIV7/q̓KK\A>={:ĕ1̩3K\v8vb=N;vО͓~ %kr(iNO SfF$K9?;TIVnn#ۑ%Gv.şp\@ϑarsr0z?{?0y>R/]#.V×$@'r2· YYt3~FnVn2|{8{HuPGq؄XFe--m-YU8Js&$ÂgtWټBʷ2:5jIh8lԃ0yI YQZzreFMۭ#ۭ`_c2Whq p LBL.q ,^2nwWl Mn=`XX E7+bJ5wFCd& ָ ^qL 3IH>3Lى b8;2Y'K簯kա[ۍο= hŐyݎty=}iSHtBi+E#^zI6]:To%o֦85ө ٷ+8xS`4V뢢]kAq8$`1.&n{܁Wz&..HԨ+Ltn x@^X6Gg3?7ۙ#9?z@KIbr=jBS6vwsEGD(sNSz4J61N2 3](;CMd.9, 8#IJ#F')muL{бoQmG/Ry+lbb @]+Dz&I)v=U$>'*q2*0;*)nȠa&G`Q{u]wd59bMS(z:HBX!)(15ԕ?'fVOůdc/7&y\sCm7o 8 ?ᷡ )%e8¢:B!'L82[0k,K!IhՙL4 VoۻAi|97:RdVp8yM >.OrlM=88`EXZ)*8af|f}˥{08Lhq{LAa c+f1,kzy]߾Ms7ItbnvWħk^gxd@ӭ}:(s32O`-Pb⮬MXM'/}ޗ,k(|ve_p oO蚦p:aEH)t<_Q~[4bjA-0fY'xJaSDYj>Xի^J!:|Eut!{q<6hv+*@0w.Cϴ݈Nq?pS^ְ@:= Ȍ7%"4TPf 3pSV2ꓑw@E7߄JXC"=`"VX Fl@=RNJI0;_x6GE_׿ag, LjL8d1\v2PJ14h0T8aӺbVvvvrNg(ML@W BjTKhh| ;9$Dnl}r~sLYG!~ߚn ?̩ZB 5dvFfi`2!\ʠ[m:hv[u=+7Ǽes-jA @i_e"p5|*6X=ԫYN4*)- |A.1ѳ(bw1L=]vH.,TtNLѥӀY=:›V wJEQ&3͌q(Kk;Н ~7{ 6_)Ί0xIfs4o212 7o,8"}PRߒ`bahHg ,RQ( HA g3$fmO82=?l-{zτZ$90QhH/v4JƨAJSiPXPɦ.:qbKH'oLphſ?"ڠn׽BQ =߅:[^K2rPN3!271,q8}JY [2hrb!TIe=etlYTr9teNaYL^֐ݩ4lWRGpTi'?ƯӦm&{O4D}²-4m[3p%KP#EUJ],}tn-M0zLERT3Uk1Sbj [\ 9ɾ^O'xkRaX0bz;>vwĒ&FP Z8gV``C;7ھ}l 1 ڱXBnDBt ]Ka`AXV-2#-9~u4]?Oß7~=U B* R$J2t(2FMF+h%&o p}0V8smN.05ѥ Xl(|5b =ax]M+0)H6R!# fï #t\6il@h* 7  `*<#Hq.* a}3<.FSV>AY~2)@ŋK7Ϙڭ|S>h͔^Cw.:ʏd_Y+ҫqY5bt)rXAgs#|M o×-_민P9uJhsL`C=ngVEcC&v،,Ġ0e8:$ iH Ckun2ߒ>lzvO*Y_}[۝ mOm۶u.N1J3!%VB|4I2LF2`ݟ-ccB3lZC/ eV$^pmnMH7j+fXjFcNgi誐>1_٥3$wGǖ$o*j`*URp21D9&}aP[1sy k*(LRYC}rhhW"5|BjtA`>db$B6#tMVz+ٽɴ5j_ R˟$<>qbe#͑Jab5frv4#=^AýOLT ryC@Wļ5|(cvOO€nWV~LtPԱ@oyj\6.vq:Uc N$etW3Q$IUP 6k?f{&W;'Ozyܴ8zcgvdO6Kv/ر'>9xp~;o?//8 " F;W2YZ[A\"' {t8H2U,NHYb;N^컫?:ֱ>go |Pָa’w<3ܔ@6taĔoQ9ZtP*XeSI93U me+MVʨb( ),DN֧Ň_xL[uYg+Nn2dƉ.0[4ew $`'0br\]YnʭA]P5}kfNzٱkPK%ԢZFU2TZڢ (q #vD$LܠL:\wP7̹97"~סؤJAh\"r/>H8LStv_狏ٵ[w.\>u+zϙ1t !0hYĖ vjp$!BQ3 D 9;2Ǥx6!gQ×T%{9KQAG@ /(}Tl<0sզYz{);lS5+Bm?ΝVQ܋hfgs O_!*i j*TRI颹,8U[iotSK͋@:s|8QEKcԅ&%MEH 'DJRzkWzѼ]ڝnZq{=}Tm͘"={?˔\hLa b)18`TS9C{3!iK. "+ͬ+,lF,ĻkಢEђzGeC.GH%eFjVoEĚ$7#FHCF;łE]U X:"pN5x[$}'FvuP ?qBbb=ʙVrE[&FED; (, ؄ɩLe3Ғ6I)]` ڙOHURENntKy(Dԟ4uzi+L=3\n@:@FdSBxl11-e|t\5}6S\驈#Fê>ϢJCJW^Kw|vԣo<ՊZŒ4}(xYSStP=Vs)+kW6ϮW2B36q.) ^T!8v S8賎 .# $O &hѐչG?lM ŮgE ^VƫRc0g!y!t, />b+>uY6d6r)1[2D%^ʅP'f&No!+U= A۞k^37޸Csd<߼Ɖ[Zo@69t:Wq DZGkoi9k..^Zv~Y d[tځ';Sمqa /ǬT@#reuz\3xϘ $4'r9m Am桏jzuWC,i\11@܄##Čo/C-ucm7VKiL?AR9EtUXf-x{&Ix/yPY ःng9!hN3ʼ0ho0YU{~5q XO+1;݋ޙo{s]ڸ,wP ?43P1n?' S <2V?_W78_WdqqOpLaZ28obPLu=*'ɾR;fSZ_@^'gEЭ*Uak^DTX=2Y0*ndyD΄79[Glplɉ:#tӮ`̝BWD)ғT1Mt(MegÌ8X Y3🍞Ts;=̝Y랏iͨ;a J7 raeIș1/Ǵػt/< QT>\ŌG #m HHR}$V.{nҲ)vSՍz<^{2_\2]Z"8\q RIk g'6ޙov[8Y4֢a`vV{'C'C0c3JeQNu2K鑸&M gkHSv//x "-TQF̌ ?|#Wvtj]Raeĥ,.I]rBfmwҠ{Ӫ 'U-d莁--{I(ҢY SY6w@"Z#"ʤ[’`$KYbbTQJij"O1 L)3(eUŮFS#lts1+1nյL N+6y}.P=*CBAbFOSȉ@ÉkӸSF$M(^y@hg_h2m>z 87hfabBCc@DO;2qʼNW*D('ݩmW0Y{os0PD`EEE(*]&kDML4QchzroonrcM3{{C,᜵^{^:&]Vc*L-Ldư\2}HܨYue|R2>mbKh#єjBM@]G F!,)R)(i?u(o I_23nzb!3M[w)-{;^=267;>~dRqq N[VO\UHh"_Fd]$(*XL^)gOIQ &RT4~2KfbZ gL_Rk^\Iy̠mpxزgͭS;ˇm*\ϞNO|q~SAgLsx6oH߻܇= rfDo]-X@q|E,$ @z $ @ ;@c;PP$,hц`WijWNJEXO!ц}lVy@$HwL?6LO*+G -.Ag b⤑iG<+\"J-q88@ț10mI!L}h "lg5j96"B2%"b/?6hA ~ĺ6y4:ZjM-*_&3}Θɒee~{pR>:g.+hޛ^6mQIxhКz3JIkϮXDٮm;QQ8#CSzl߹V+Z[^C̏AmL-rI% ~ttGS_y7}zg+6V^6w5w!+7b0zV/aq4yؚ;SpMM@l9)3~bXpbZO5e˖nٶGݹ5|wvKLDϊENM&YB+D.̳|dLe:@ӭkdZV4_8DuF'G]|xWpz Uv۬r'1G褌Υѡ;w sk@aZz(NmLgM>zcemU' +Xg$ŶJg G`gz0ï(;K-y0Q&740ܭ>vE252,zQȴ艀s2Ob )!Gn;7]~UxqE3y2 []Gpk%Ú$vRCGӓW7;V%a}J {5xoFX%G,iܳ euw,ұpKE,{32$PfS/1LItY 콏mP[||Q)}c ǏKA4 ~v σi*u:@{e/&lf^6@KNa!4Pϡx(I *SxrO= O'u ~0y`9S_hr)R$|#K\d,LSf.3STzi1Nh!Xrz|gƇ# f}Z\fR|1bmz Aq6ȩƘDPJ$HJIa˯ g+ScM}y=7c8Q =0H]>{zell}VeK2{>_b,7|UҔ<yr'u]OTQKO.Lف"@)&K % @"V( M&zn3T/B*"gB-2Mbo5M7ݟ) HAV:(> _G7f|3v ]=H63FDRTDK EN,)>Tm1$_UW?x~ 2v]/ Mx-L)~LF/Onn42wHvk[6e_ܿy(Q8Ъb֩qb6#smJ OO1i)Ѡ,AoYr5;qFS {?L92Ā6&Ars]>I*ܻѥYϺ?˭ xzςYv?<L2' 'pH9K̴Gca:F8V˪+HȩRSD0I"+WA`?XR"iwyxx5+ ?K}> ~zu8Z/ELԘN0SN wZ\=h`EHui'X!@k$Uy}Z>gy+3^N5UB׹бO:d :id|M1"8Ə[{f=tY)Vz>r>OmfjPf(ƀNCJD^rc\XFDJsB}QqE)Kp3)t׽' l$TxyP?) LJ!}H+P43I .({apdʞ9dtGbr]&n7Dj97O?rk jOˤ64"dRslZ!qV$4 1]8&} s\wkXEFȩL2Efr?P<:P:05[HK09 vx5DV]rjiK3% ^i~vnCICJBHuN _LNZۛ`E^(7_I8O"b@|TLO={9p9ӇxD,ΙzA|d5 ̎_'` 3,1ӏIrxO}܂洹=aq!ዻN%(ˉ/ M " ClL"VxFád"1 e޻*3_PDŽeUΐC cC 1o(/^ޙW2'"2?>Ğ#DN]ݽ2)\vVж9ms@cdnC.+NnCndo!4rj豄9hLH"2/#\Ճ͌g-7t 2>ɄSenof/v;V훧\ײhGxFc;^N /{tC+ɫ>7 ȇڄ^*~p([IsȀ!Z3bUPG Ol׶ IU䑃E3Hz?ŇWtMH=9EdrYü7yX 'X #< v6d!#3A| pфQ@BZ*u5D$'p ,4 cx0YM^YdPW{MʄaSF(F,-6b^S̈ةMv% H󈩎aa(\PK#1q huJȶY Y)?!+$$+OEc}0,gFS,8 u_4@P9OjrrX~ZXEIon}h=NG|X<6$LB6G2@:7rt4!7J^;2WR0ɾ*VR1loq,iLlUՠl)9qj!HHrN_٘>mP+gsaM]_U\0]M>6kDŽA[t1RIQd3J*p%H \ڤ.rMa6 H5 &VI*7W  ݐ~ Vfg*q)޴ &c3 ֌vUKgY{kS?=æ e̹@[DcI2UZ0Rrt 4@]hŁMU2L0e*\m aW;(oh.CgxD#<*ةU;uQGj-mlæL&+ް0*=ǻ7##=Q/r A  1;zU!% jtekeWKLcdʼ2Eceʋ&daSΆ[b1ϱ`-TfH>{uV)O:LjPVEh +rF c%Xam#>DN~ɢ@kETxW=V4t0HSQXpFrXc%fVz}1#y1!E ON}XQ;ʘ1sCc@z(LiFĆТ)dbl4[FF-aShϩjA6P?ar$KpfCt(K\a 0"iS6`] )OP+AD1QFE1$iR"4Iۓ'py'Pur) yWnWILw_ JiWmS`qy_ kkU1hd`R]A1|{\ϼ>eJ}Z^I/gPTh*>94>bNy_p&xLwӯ〕 d[;/T_ >.'sّ)DgT s@4ml  B Bk큻  ߻is~';*Docrsb/^ybE+UkOrkWKnQi -o'tњ/.]_ad}M$cmD8ZLTƚiE$a5@`LfNXSB0n7|CVӕ9^8*IǑF"'x:?r'"^k7Kgv/Ů!<*r+Bcɷ2`h7t,[2A>pz< o'O0K?f:9 c{>ds^'L]ȱ03wL%HQ*̄)%x\K{0ET*g 4k{%=]>o@4C]^ϔS>_A4Z?z.ŮE3gDחih 8{Z܋*'_.L]N>}0~2DOl[C/0 )IDS?"YgQ̰.nlm~6v%l^2~{5|Qp˺*{D+E80+L Ll*rJS0SR?:w'ip"^KSC: l,$ 4U-9kG_6atm/#lj\Ԃcak6n*YݒkO%T^:h%bcRJ4 EzH0i1PU'8y_1gJ s ݷ@HHE>F.2irGE11zsEb́KʷйEiGOz q**q1y?@}3@68F)f0G›vp0^aUJ˷k200uQG>f`$~%`e.G9vI֛YQӔE^VB.zi'}sY8glw;BD8{~n瑲j(RA8F6K i"bZ\zA"ɘem]N V6㎂>Gfm^݃l<'E0&xt ,0 A!AP&2r6!=5x%w4Mt ~y;nuMÈɨR* uJ*"aLekE@- 4׫ 2$bAGTv 2"X=gvG'ԲN`&m[=Z.D\1(q  hJ*DE[!;6GY$FNO%L{v5U<9^<̓3ۻ1v˓%0О)-ubO% ꅧ?]i `p3bhzH۫/51 p!]S1(D(#y<#ՃVQ̢<:Ƿ?/4i=:h-T<g" L"R&._S)rH;/*z+_')A$YH{~w`>js37& Y8->ۙ$-IFG`)'n".2-D 9@QaT2EJ>g'vcOknE t-})e8krN0<, Ƒ2*N\NM߅D1'6Iq8 uor[j)lރeMiHO!R%8E"vTcay5FӁ؝Vv6ii[tVN\|j [D&p(fxB aty\<{^@,#{? !9 FGG0-!Vӌ]}ۊo`3" p,)RjwHs^9;^?A~PmF?Dg%;%w_],oO=SKT;ӏabe$%;5/g`("gRQ.7PXyGMu;^/i_ T )o5o.P5C&-\pr]&Gy-ӕqVO*z1.1'~4ԑ61'a*e3^2U"*+)rƪVzsK?Vx"-< qKê[mkK[O;neY $&Dup~խm{DjSLHs'V4kÐqøV5m8VmPAeI#Dqh|4Vض$+>ʳR[3O?Ivymst{]9u"sGI_~1[1=1JYRK ԜGA 3!1hܮ+cV#jLf3kQer$tz- mNKTT)-i8B[B# O(oʽ9&/ъ3۫%YS8Y?> nǫ;_en2zF'e׃5:Nq޸~N G ``"73KYb/eA#iƨxS{F٭ck ',aCVFӆ4P_6L\pG6؍"! XLI0#&!CIk {ҝAtÀu}KQ@ω`X9s(ҊB\[VK!e+'|f15 Nd`08i`eb)UD&u W3ԑV;n-тg] l\-NVKTr3e)yݚږJO{[LT*$IBg=KmPkS{ٺ \[.2o{_me<n IDCIr8z\E(EH*g+Sj46o-ӉVsrdcC+/Y6%]$h5[ް񆬜3~X9Q]PzE1 OO9ԧlQhwt5ˤF_d9D.$EXN=jM 3 O6Nb0Ћ G;']8¹L¡ϊ[u$56'kFV<K?`ʶk Ə-}tLec1hwԁY_6]:Q-gBs}F u/=?wdzMnF\TR"R ρ$8sq=wO)βfisrʄ!E/ %!S'w&f~2ͧ$؜>`Į7LR-AH$<5UP.FGS^7D2cC} C4n8z/yH{RO"zEqGcܐ"fsq##>X ߳Cv2+)+ rL]5j:theN15-䳮 rdM( UAB($lI"Q =*+"@f~Mu2H#f2̻)yYL8nC_TXc|^U7+4jGRO=i Fmٮ_[kܒmI E3)]Ai$Zg dP 5"m$t hC&>J fIry5\~ 乜ٝٓX`E.@_@`byi}~~L2q{t74kpm iCcmaEue#fW JCA pos#a ىe6g+u6CFD+OA(HX8?eݲy8y9B;LO^O+g5:>܂D}h z4_s )yMĠ} RIQ% z4K5;ڗ !$o uMݝI`/z9`\6yh+ 9` y55OA mGOêeJK=W#`A.xJ#4Թn6ОtF*s4y䄱ͦ%Yx1fج 䮏k6<+0-/w:gBگөoD rA(PD΂^>PܲLSV+F"B}L i^;mމ7X5>zjH39zeجȒz24HHƀ?("I?4"%AaV9R'(ˍ5m%|yp&ίBsT(@*DU3g\i~Wd[~YD E5Q" N>Yvvj*#ƈP샼fNWɔWOG ~zqܮDr)2$rf~qa;mQ-l+XOPURGc>ɸ\.`|JVobN7W*~ʽ>>L_CsS/x=?y!sO^0􂇟1/!Ep s. /2@%_ai:j6DžDŽ'f% ǤɑVp\D**d<22Lo y,@.|.GB԰EJ.}KXWA%}d˅v4yrz:{10-ʚ4` N CCUsWxK$d*, WS/g+֞'qZ᙮y-q-~FC>V_?D!fj Ep8\kп?ZA.Ak=-:r){\п_@B&8er(/oOF?}fi*:T{})]B5Ny%K$ph2P.3K]o])dZfZ-j`Q9#r@ffS֎7j/tXU9k2 i?s53乮# xFGO;dv! ߇Jr<:P$ujȀ jF,ФL&+(6_>Ъxki}cqhx"CaYlhCm66Nث-o>q&ӭ%S7Ɓr `iI nSmlom|mRd%aM RBGX8͢k, ÁYRt,KKu&)t:&_ w[y 8b r4]h>L3.gv` FdMqJM-uߺǜךn$>3pXy5n8&_W"ntbR6ďؖ\"ڦ*N5'.0pUN|1f=} 2tXthj$Hur8A4gu(Z_(`s' f%IX~nK3## _0R`7xn-/WZ@>`Uʞr48 \Jl۴zNQn$p(X"u Q b@1PD>yqzi]AI=Uᭋ@]f^~Lh)sfO"1Ӯ  +\GȊ71yډ~\OJ1܁IK Jd>EJ%jX`ii-z0L.}LۓorOp"fn~k{ht'fl_ /ʉ)MSy0-A㣬O0{mٗc2ntvW]hͮ?&Xɞ4 `%b Rq^ˌypLƒJ2@٪K(I4q)ZCꤴoZpds~9Ll}7}ʻ;vxUD'y_sOos^@~"fOX|8 gc9#eX1:|P I(2@jJ j\ 2__R- H?'nFXUQKיfܣƣTg+y LzBFtǨ`Ci4JDғ(9n@*J,HK4Ʊ:zu U%޺E&mmcc< ?XwxHAA,gYrF&*9RZ'%(da&JJQZjG]ߖ620y.9޾_p ںOWU9/]$p-t-*BfO! 27oh; 5uzLФ˹nX<&!#w.X:;8cJH X,R+{ &V +)gYr/b@1wXApR9Ww#!?Nb1]FD"c!אfSTn ~'ŰPP滘eț@ܧngd+.^Gf\ dы-~9_JV+!Z-!*jB/L*ɖW^е<:8<Ƿ/R^޻>+S==lI/_yb$坈YجX<+җ?bP)8'` jlţn,i3rHH-pyO 밊ܝ?'ƾC3‡/4чIY Xaxt+HZrubJR,h=(ߝL$W礌בwNb:ќLI!x"XK('Wڄ7;k%K<9 x q ~g4I7=&%6t 6?,Y3}'ϧk EҀe  DrVilr]i<ɢlIX!)rXM#ʚѱu:B\ lhCD^)y Yq~äN1yX{m|C,&IBE HbxG`8|T@d$Y:3,QA E`<ۂ*fQRx -f-!H"?чE@/|bølPd̥֬Nσ1Fy?6! D21%םw474S>4Ʃ#"^#"Q(7BB=EVc bDƘB63nWwxtʔ=ySWg^'z&L"SFFM(ؼGfeyR>K’\篪nVu75撴%b>39*Jr !#}p9EN."$Na_3Ba= u@㑿kA*dP&4 F# R3y=R2r@B!xr"1'_JK9Қ^}W[qBXrax6؅N&S`r09X d$ax\X(-}-wI r}p@ C*%}f#ԲPr̉K `,[M_/l_4]9^>y_᧿j=<`'_j R =sw_Շ輺H22E:ޢuZ,Z1^G>V.u=] ͠"vQ@L'P8,ќߙR`R`9Uzkԗ\Q\Fgb`qn)0"rħ9#"8R!QuH`3D"4J<Q%L/cL)ɠ?B ӪMQ*MdeNqRR ,g ;m+ qJXE5"w 8͑ȶҰ3*Vcy77d@d [TN{T (̔5wLHYA`'׎gƝLQ`LbtPKan3G@ yf8ץs,2` !mDL*L0Z@@P)%t2H̄qn \.WfW`@@V&tx&Tbѫ D:zB"fJ(b|7JK_Io0ΙB@Y#`f>= %L>0vensz@nNml=uÈ' sOmwu8av(K/v!B1O(`Om+1+PAU{_w)𜡧vDyeO7^} obkskLi]xKf/ kOd4RpJNLtZ\XPA/>L $+/Tll~tDږbl*|ŏ xsb{_CN*\Tbl*LȪU0m̪}>cVժn9!C2'J/uhvf2;l/x$k {7 H9œ3mXjxw|5&7F }`7t(Nh-:< pd~4.\wEޏxWe3oSرQؽW~Crv=\^f:} iw}o ߋ m7!cJdw9?TSz9Id5}T VNsͿYR=wl,7S=Yt%u7NM -LqZ:6z=҇ZҬxzJXt壳g䲜 M O__uEԳGnv`[ȣ'dɞH{…  |!ETUol6>wlaj)Yegm?omq8.|tw/3$:npkz-GJOijOJO-*8X '~ַ6oJײn:e^H(s^"5a=I-{J$.uWg #npdmUnS=Z.r^tlwʴ#4QabκaH_o9Գ,`0*/*⹝iC>ۗ>iZ1ϻZha1[Zr QoS=/Um&4TWUCAcAw)@Qq'q˺A!HBsހ?J-omIҾ=۝<{Z3ss>Viת֊Z7mٳ|Do[TR귕.z[9W~~_*.=LrALujz^A oH]%,n!]p_4dYdaN^XXJhZ#}~)@) ] zY&yJz=qwJ>l|ݼyU -T܂I??~d QcӀT)+yDjE l5|Z޷[K<)jR3&94o<ՃY~ eʷW<ŒogZK~ (LDn6BCN VeU4;{_J?5~90x,IsH^`؟@7?/ڶ 9ql9m5GU9ΐƺ9'%Yc>h=D=V/ЧbLjO:CE1j[1ɣr6s80{6쵖^X&K:mW֓EbAPX'mdDrGM> شyp!_ `Lj9_)_fI][\3wE0QdEܮǤQǎMH:j9Y)vl SkDसN8{{(Sו*%Y(;͝˱ЍF$gkNqtFܸ.+.vl~hSk3&9eQMeU~!c䒪H3); pH!w7lQ/~Fm#eq|ecuGpOUD>mnVMI9T){23OŦ^>Uvɰ.b`$݃<2~Sr,6|7 0 -u.rzô 'ӽ؄Q{KTvFHG8Z:oRк ٳ2?ݮ|.וVNpi+[չ)jh( *w,%,g,6/V is\iΡikjePkOoWJq%V1?˔K?H*Q2;tX߮aRJr{Pj!Lc^{یb&oҤQ*".\Gк4r=:fS,_>;6E&$dž8=|]uUuѼb>o3+3S[!}\˺RSS*k?i&e]e5jdlܥRέ\>ijբny~wNdQ8œ)jĖAKu UZFn1S^t:ZJlzء*VEds<}3[5?ӿ{ƍYSn[TTxXzۼћz^>~/*K=Ȟ^u=h}_StM?`q_MO뛼wn}S#g,:QQqg̊atAaA)AZR X.mᲷn,iܘO؍NchO Ѯ4^0Y(T5GzNV\f{HϾcݺLz[Ӫ.|nKݯ+1˖^336z9UپcugB}F-;}[ꪴ5)ZF9D9^1e3w~}W\Oqa1w\/t hsH]&-fWNg':1.(bH '8*W t:0pllpv~z&iIThh)MH?qzx'co7ߤ-YR_ZJg'P?/szДUTYG7ݖɦd9K&/zmf>$4pٵ*Ʋ#2MLFY~e_OsSP7M[&7 UO8ײV]KrJ s/5x(QR}zXA&`b  ^%$rf-@bdoEi ]]޼Sг@~+\S[1񀑳>Z;0:z!=+ċwx->$]XPble*roPOKޯ#elokX{\NA~.lmh;c_=?fvwv n)ŷftMsayX'Ż^Yl ~Gއ7۫ kgTλ#GzK28W ׊9k?Tx| -A 1t ʭf9ySRWYO$kQuH=AXIKOjW=10qsD~ゾSl_Tc_r z\1#7n~{vȃsj,$FtCi=TՓ~z a9hWт\5-!!"l%ė*R7-[l: )]K$':Vb2fPUnCbzj]b [~j컩^z8)BEJA@zPn-Q,Toh Mxwf;2RQx`##$"q]S9qSy\ȭmtخ=eZzx}QTa>18Mv.1%D8wҸ@w4> ,zH<`<>9pWuoجʃi=԰EWvv0w{;,5=ymW-v< 5֛b5=l:h3Pۭy6 E2ϦB W(ҹhl~Vb:e%{Uqe~ץڶ堞;-GGsJ Ǯ`|{>NO\v<]1F8µ.,~l^ 'f:rz`7|rx#ZH}wؘ-eK9zN˶)['ls|Gd!i"7MIݭw" ԺfUѲZF7ҢatMBٲlܺzDRRQXKsjZoHR\1UG M[ۺ;k-|fܼ^^WN{tCҥvfc Vb;n!%#SP- SN|||\40~뵩+OB|i+r,1]%6Lv:2~5ᲞRkv'*?Lo]\Eۿً3K7^hew;>|Necdr&ݲ1FFj0r ._Ąլ|+sn}ХuڼU?zؐq/p1)[mפzԼeuں}[zeQPm̟W¿&?qUUm1]^6(Fd'OC\mv`Z<{z7퍲Ī ?@–\փߗ[.)MOX WOG iH{Y[)ܻJQ[{Bv *l5GZ*$CO48ډKy$ϛYeȵv5pEcG麣g#{ҝ{tq٢iؽeҎQ_z?ߜ`v{vٱ9Ig)-(Bjݢ@]G]J(ST-H5O~u,y=05QXBm Entۊ*F׈>-.!n1EgzgFT&PébSfgd1i7 鴊YcXgp䢪U8E#iϰhw""#)'E؎H6#or" V+zz-D-Oj:]s}:='$j֡k=.-SNbU'?5*źYU;Vx◴E89ݔeD8~<[EF;T$ӱX<Gm!nx_CgnXXW\dݴp髦p)J3mɲ5I =oל_+]zWA|NNmgK>lS~n~1SfΟ1' 5785e3w[U&d4!vQ>iJwG:Pq!6C0;6=xgENjgoy{VxMe* _̣ŷp%??YCRcD{d*X=('S) ,=ޔ6r t*mgb.Ο8~*:j=fW3~c%GOX-tq{zI_m2[1GUc֙YѪ|Xil}9vSuEps5#2S\Nah;jj IkVΫg=2(H>2-sguE #Gkn{éOSx( N6{w8:~goaqԌ$hm վ.DLv@@XV]9}}ݍFust0D$}4#ͻ)" \IX/TW[yY8o^֦ޑl 삸CYt"I$-LҒ")We_7Ɩxțgu|S/dh*asfhG :s]%02;~wd%r@x l 7=L",V -CA\80"&|_HD5xUT0 ) ˤ'kB$D{I\bpğ( / Hz]!Rfj &O)C( ə|EYLe#(K8* SnKS@p^ldk,#lr%fJA@ە]KVrCP? Q8U"yczL" 9T=l2ISɲcEk#:S,.:U`S} *+B܍|0 5Fȯq-U&yy7A/M:KEB4C7͘"!`x0R ;20VU[cmZрpNvư9o#bGO S)~Jw>En{s1j1jy>>:gg wCu9§h1qQ4bab928f///?_#_QbQk|4o{ ooo8<'@^'' dxD'Y fNNa42;CgYb9b9`=OG"o e>!. bEd=c||~b3~B!~g~Ů~% o%b%wy2~w82 `OWW~~Ǟ+@5x\ç1'_c'3Or?{ut]_ u|y d{Y@71/<6B1wE7nRfG7Mzżt\uvo--n!,BBUHU] 7Ǎ,بO>QWL=?(Za`2)>gƨIz2#mގr %V=X 5P4S`9G! x0*x0P(##|p%R@~HpXHB H!^7 ~R)d(c }\0a #|I!#2ѱ 2 seq@f?%d# !YzIEcOBP?r;W!]}C" !oBa0c/FiBfq. YE7eM9~{OQ~ڃcBV7 !+1J r YqTaUd_rw w*21|V~[`+8-d x kךVjZJ-l6}~,]Tm;CzC =6'ן  πAwdtww0>0dmH݆o F-!%B6&ȨB6fӌv7lj=ȧ`,X %vԒ lM6nNȶHBa8Ȥd!;k'ty.`]f!rv{]{ȷ;}2NgO ͘{c }IE}~K%! aMd/ y|6!U~|?~=8rBs(:b+ða އ#~9!_ 9>F##qTQ? 9_}1X*-L <Ʊ$eu'=!>Ljr"x`O+O~):3`SqF=C x^]=sHg <;g4d9m%8*ss:}]=G'yy<^hb n!_L|g:q}Fm@/33[43Yq?9 [fe$ o_JKKĪceB|x򯠏W+^Ŷ^% ^^#v>d8Cn\d73cyĿy|f>v>}~/u:\ ` Mb8cK%jI@OKo)6Ym/W U(!oQ-t[\+ v,J愕 |5bwk;1chwq{#1|ӫBnnwoζ{w|;{x.=x|o -Oۙ3v0 Nw]d!!;|8~'|wJUt{?J.sbe_6K׵kBd׉}ױ__&c?"N7ت?t3g{rH=/MBX0,{p]hZ8( `0lh@䆚~/ kg 1hǠ+xq< DZз~8x /4.`( `8/4PP@}x xo o oc`!s/E@s_LP.Zp*8@!Sp.G4P"t)`ܡ&*!_0@ : GA٠F:EG\#ڀ 7j`#OP&21yZ)U h Zkb P[lKlbR&Ut:@qϘs|[0N;;;IL?"'6\;&bKtV' [iV _$- I$H$HdtL;M&c;~RrMRm MtͥLžR\ ..pa.p!+vbi:.`ҟp:}S >U,C2+:̠Nc`2h33Afy@LeR/zYֳìda3Y-gڀegYbJYΕJ9*G)^9? ߅߅߅Ъ2:?U׀@=@FjȻڗB˧luluk6q8^PĊVhZtE5D΍ZclI К2fĒfk lN"R nZ2mKʴ }BhQ` `|m um-m6J[-<3C{dҁ:,ZG~w$tB6N`'3w?:3.mWa:vZh {Ww;z՝8x/vy/ZMAzv`J>z_/7~g7"x+_ĝc:@H}>|n btLh`|fsz(qt(qiLJ !|!b067Ġ̵#sEv m |Acı#Qd(>(%~ï_9r5N ?L~&ⳓj2mMfO~ z}BL>Ri|ili46L9}=_M#x=^O 6ۜlbKB{x2v2{B{88n.NbVƴ[F2Uhq=;>.ALvN|'rE.~"B C6X]~}~'X{}SG:>Ï?ï2aka969# | /Um_2/KK|+{}ŧ.covx}$y)vr94iꝡ}w_>Kr%~Þ9<<y9qq2׾ڟ%~[u|:~(_//&MBėBrBⳛƏՇH؃<"tg2Y-eh 怃B zFFi Xb[20e[/?lP>>6x땅w+m.mqSG`7Wqj=g-[ђ-~<׬}$`*7^+hKcU }MeD b[^VrLtaJ?{Pq[ծdA99ǎJ\I[nZr[Ҧ6OivlawIkv~}nSE㌷|ɭ]_kJ*5OYK]l./ı78og-oݖ.{Tv]WSﱶ,KL༊ 99=CvuWugVo}IKؘxӯaf~ |dNYJ昬Y\7`nPseKb\ޡ}lM?7ZjՖ<{l]/[ޔ 6,kȱ]zQ}&۶2Ӌv?RĂd9gX9scND[3gXy-._ז⩡=Ɩ m^Uα°{jwݰQìlgՖT9Pojj=5†ʗT^+YJ( '9rC$ü.-5:Z39$c`*Pk{,п#gAr3PjYd^E!zo9a;claA@w`1r|> ~Ori=kI_k0 p,mEob+<ŶslC@o}G v}ulݛwxYO+{-:x0{jSնlϫ8Q߰I)RqXk|eam&Oײ[>X\*~T 6nC(_|Oo66hMl{}2ei/gxԟ c@/2x]sk[޹^ڱ(Ú{{CvFqbg'mr|soǤ%ڈy\p;/#}-&ݪ0s[3{ۖ҇}]\78'hU\(ڶ9-1ւHc; ,,15w _mY2Z]u\?geEո}sonRrs8[%oʻ-Yݾ7sjs* oF%s$}%Gx<ۛ.Wt}O?vYB5]Ϙ[ޱwGoۮ]|`^{VZBa97׭P>Mw(y d`¿C]Q0yO"{e镍w^~5&kW<ʹVfNr >P},_uG~B?dE=(W|f߿S !7.ieQln]ۼɸee@^#џDR]'ARjL6Z$d,^fRƭZvwT79go|X TnsY=U]Ӷ yʏ= mPpЙfZP3ů7dXųZêu᏶ݴoٖ]\NO]cmh9WQץ]vXcTպTل'H j_wԵ'|O>cXZgg5_YHb lݓnvyqK5d䭾YZǔ?yȶ5HE훶p͖Y)jXyp=ot:nǰ*o^c.ޚPȷZy0kPZ:fbZ#+W-t4faE9{m{e*&Ekn洗 *'T́l/s^wqGO=r5eWuyqޖjm݊k*V5 N ߀jw$o—:Q]1Ǒ'emHgh#0Έ@O$D6Ut|v_o!wj:Q$U}YBCץ&sS\E@ -,!"j0M.B" i(DQXƉh R&Xhiu$"bTuAd^.eL!=DpyY&-+ҠD(/@+ hEf,h%"GVUL+{<%*@lh5o"_TV9&)*{.Z&-@~(@w={xI?7xX#GMX =&xvo:qzBl4)8-6CϘxz8/@[ߙx׳y=&AQl?gI;=;%e&>^CgC|f?Ǟu  i[LOϠnzAoL4czbbbb/cGbbb1}1]]ޟ,L9r|AΔ7jV'iyCzTͥUЪi6ZWJ[>Վj'_5Fp}>SUC_7;k0ָeL024Vnjr$9>v踚48iH҇I{<$M^[7RbRRJ-{J )SvI9r)j;5,5&5-53RjԻRkN0gԉS7^v9\QXW+U%4-͙V.BZӴ>iҵtW23332JgɨqWF2&ec[{3g8q!vfAfޙ2f^C+̵칛j7k߬{͆7ۘWWTYYN/Yr\$u<)ȿ4.ҴZu]ܣji{S%]袌Vﭏ՟D/7e:}SX?iHt.=cTcx8h|c|oh\sG#1qq9Iv'E+WSDJ\JjJӔ.zLJٜQW)'S\K NLEEnj"] FSں(e뢕;^tlwZSE0cE.E"] .zE첧oʛI7wlNx3[f ^C#oz9OÎ3qqBN2G塽=/^{r=qwυ8.+溳(<3`qBrfb^^oko?X?>cO>6o#/],u1baC/\ x1EEEvn̓`6|egF_O qq̙gΌclg/z}jjtSɯʧ=~щ'j~9'ʞpH8uB/YUۏ|3{/>xO?:z<<@U~ސOC> 8䣐=%Pw=U?=hg%Gʛv`ydO^S}1ҷbR~kW?Hk/rς;RM#lrydo?<338OpA0N6s2?%oH|/~ρ_} |EvUuwuM(h<@tP=- *C2hHBTċUk=E xᅨx׺ʺ+z|oW?LXˤ뭮}3!~'ψMBe xd3ȅ![[l'I찋IdyO&.x 1ӉOLKiF}Bw-s.M?~-̟Esfuz~Y•\do& -YWd7H+< ?y/+l.!0̇#Q?7P+q0?wȟ"{ob=i ?7?5~K|7?+A>yjxơ$vdlCā1}b?oyl Y5fLf,ncqxԎlvm|\r؞39ſ_/?1B [(> v8>^,E"lq1;v.Wo!M#U)k5fFg5B'7 Ude6FZ{Y%ƾ~%cqxkUj-(5cʵ&Yì)TpjjNPJ2U*T}315='6|{=6uFq_/W*qX)n-l}?Mem=l+;fAj*RBbۈbCew7vjV'Q^QGcԱW8ծթjV-jjUmUzsfϚ9c#:ɓ ~mMuCpЁexqwѣ.kdѰ Ĕ---s=ƨA$Yt&ɒ`nOq9d$T)[3D*+xnOSʪ(eUoJ^XbݹAC*e%̪0\Ӈ/ k8MSf0v5kJ3T f]OBZ^0~vn͜5{S|dtC8 sI7J`cKu}:tʄqְNDah TŘQLU&Ia* [vVXpkN&,n is͝N26~y/95\ȼtMOnIM>1 0ܦILw4wn¦CdYT3!`VHOc.?§ f $'PIDLpo"V}X!]B_(eRR - Pܹt Zwub=lGܧz!YtHաu?o[u?} E7~~}nō_=__}qVt[նڷ-f ?ӞOu|ߪ!ÃO|?,*xx{Тm wU[ݲ`k0>Qv;ب{9xKޕr6.A3DBRTUӍEo-u[oYgYo=} xg.j_ϋח߰h_tx Eݹkуw.}uƺY~ɪu^>󀹎T/*g=_csԓرݵ8x0W88XzQXΪ}.R\x؄ ΙP~č}cgҘ~]G ,*\LJW{Vǧ?v{ 6v!M*jJ|Xn:5$eBB"5}D\xnc^zc% ޵Z'ċ!y4|P.Π:CRUPT`+笞#ftJyE_1CTHTU3F4O:pN=laOMnx4(y0LDסtw/4#& ە  :Z>qƋ &_pfYP0`ZA[e('RF#Ɨu:|YcLYg *~LgԬЭqt}L/s%=8d1gJOchBRf(=&v1]]䡫~y'Ţ1:JQj("ʢkLv .E"N>|QaiX9}%:ut)TA0ƬV as<,IضTHoOx~VgiMfW%vV1]ac\)h=~5[edR]~˞gR~`s):žn1>}*\$SqheչZ}D+v8[$j8WLIƌNaDžTF~y6c3j}֝ckkj+5"v IQKt(ܧX.<+hGNFMۯ&UI|lWJXގϭWxHuum@z%[:E)I环ď,rBV^4Ng![;lb?3oѸx_҃e~x2ef]l V.d#z-6 g@Ԟ k KSӕ4::t& -fR~$‹u|J(e TjAχnJ#V6NwS6]MX-t@| i)+w$t7_X.*l<}NҟqNW6 (6z"MtI!S)Zr"7lq2i%lvHAbR_IfSX˥@T @6BjJ#uۍΆS_$&\FX ۛb>C60NDN2V*X% 6aYf5TrJPNzƦP}}0͠6_Gzgs4eY|<鏔޹nvI3;H-Z'AtOtQ'ӈZB34v:3>4aH\@cel9i u%aײ^+Mf{jn?({z2ܳ:ҕx[4C#8{F{=C9칿7?Wث5zCLZ- Ýp}>df}ʶz4ž.y1Wg/۽9^yO>w3;]̮7|L({.hSyNK>Wj^kO/I|2?OS>O3L>(^1X+~?)>7Fě DV";yId~ _OLsy|~>;(7˰{_%p𴑯VG~wi񹆯:!sa#?NN5: [.#1ʷa?ÿ{R N~Vt" b"G<1@Zd7A"]0] #bĀ]ϼKb-b+xQ*DBrQ!*Ł 1A,E5V")q$&ׇ#41]3,1[ԉ#Q1X+q8^)1O4F$ D"V&"!:EIdqX"NLT%6“ qP,%R;rqB%rZ\#' ׋čB9jqM.w)X+N<('xT qxRlO3Y$$/KbxY"^_M"wV7x_| >'SM|&>_/?W_kV|'?Og]aeH63r\#`F1db 6C]anpcQLpiO'<1ʌr¨442&*ڨ1j HAxFfL63SÍ#itc1Әe6#zcqqq+8xc2 F6 &88h1Fn,2:N6''KSӌӍ33YƯss eE%ƥer7 ƕU5ƵMU-jƭیۍ;;cָǸ׸ϸxXg!4llbjfnxxxxjxScO+_7ƷwƿaeJ63s\FPY`A.`s9ffn7G{{Ef9,16G}}1Xs9,5cg&2ܬ0+̓ !Dʬ6kZ7f`jN2'S̩Ls9۬34291͹fʜg6} fl5vsav]f<<<\bjfnai.526mckgo^`^h.3/2/6/1/5/31/70W542615g^g^o`h4o2o6o2o1W0o5hfnaiemzfyyyy|||||\o>fn07047OOϘϚϙ?ϛ///?/10jien161533no~`~h~d~l~bf~f~n~a~ioG'gsbeXeYҲ-eŬ+ʳXVUh YXw> |95mckgoZX2gkyV*ʭ ::Ț`lbMjƪ|+i;[Ӭ k5˚mYGZGYhXWq\+eͳF+mͷXMᩱub-Z6ZduXVm-NNNXZY[gXgZK_[XZY[XZˬKKˬo˭+o+kkYY[7X7Z+[[[?ZY[wXwZwYw[=kuuuuzzzzzZo=fm6ZOYO[XZY?Y[/X/Z/Y?[/[XZY[ްjiem޶ޱ޵Z޳no}`}h}d}l}bf}f}n}a}ioG'gkC2ɥ4%1#se e, ,ȡrW9L&wSb9R%Kr-r+xY*ґdBrY!+ 9A,e5V2)y$'9U.t9CΔlY'Gz9G-_rLyA6ʴ/&,O'P6.)d\,O'Sy&7IQ>%gsr|^ _/e|U&_oȿ7[r|[#ߕ[{}P~$?O6\~!_ɯ7[^[ ?ɟvfћ[;x"γv]abjww#=="ie{ۣ>~~7EWRnWؕA`{]eW5vI;'ٓ)Tp{=ݞaϴgٳ:H(ޞcmck>>ޞkyvhnOO[vfۋI)T4t L{}}k\<|B{}}}}}}}}}}}};:zF{}}{{} ޚ}}}}}}cdj7\ F)iY9{'yE%{geU5u/_7-;Vo{O؟//_m`hdlow(PTR*rTST*PjvQ5Tjy[FT{F}Ծj?ƪ85>zIAj:X&*UjTURP5IMV)j:\jf٪Nۄo٤<ՠUZW T7Yot$u:E-Q uZRg_sԹL4ۚjohkoJ˅ͭzQҨq4o5Vf rӭQ)Jv*amoIϩ훰 ^;ӑHI= о zyfY7i:&rƴlž66G{2rs$s>ޔfAG:ڒjmlnțӒ}sDMk֍l]`[P6tZT6-ff?ߑ ܙ  .jA ;j:4H7䨬OHW/̩BS^:TZi-)珥 ВnNɣHaRNQ-9)JuTcs#;)sh1`Q7֊u4[Jݤܑ;h@4Q-ӡ5hjgyE+n js@.:`ڛ Qɮ(46 i nnL[^%L!X!g<:`[SR) 5nQlMLo6f6YU궁l65;&g! 2s^:zL3QhΣւKB]7u[viRrMmRSr(qV[\y-Ux^[v[wgu[o[k!H҃L@ACV@VBVC@B&!HFF$p78p78p7ܸ 8;w|;w|]w |.]w |.={|={|M7pM7pM7pKBi<"4AĨAۃB,G8ӊvK\RiqImX3wyۺ;nHzN+]TJPR2 QhԑD:@Kp_@1KA1K2|kZS[Gզ:vShmH1/-k@1/v8qfjjhQhOgL'e//d&Mu6L\,T '-3:Y)t)SY)z3t dvJ). ˍHep].kA[T{<ˀ?? ƒްd_;/r-L;zzVORՓ;zzVOB3,gr_ݚ{ɽk}zZm}svs[~-~-m;Ŵ_h_h =#աPQB3;@fez}ݽ˰[W>o]_)JY׿KYWR+ewR[9}7;Dhx Q/C:.,,-[ZA7!՞uvWjjAՠQ>N$>v@;W+h sڹ\v@;WdC;Wdk!gx%p~JUG{+W <3$ʓDy(OI,8<,8<,8<8<,8<,8<,SC}ayXǁq`yXǁq`aX3t 0C3t 0C3t 0C, B9P, B9P, B9P, B., b., KR.,[7 KR., KR.]l:ta\}pa\֡ ;>. >.샋-C=pa\=pa\[. ]l2tebŖ-C[. ]l2tebŖ-C[. ]l2tebŖ-C[. ]l2taw\vDžqaw\vDžqaw\vDžqaw\vDžqaW\vżu1o][żu1o][ŊŊ3\>fb.湋yb.湋yb.湋yb.湋yf9 &ꂉ`. &ꂉA+@s|C{o=C{oeBE{xgxƃgxxgx^_ق>kaD<xwxxwxoxUdΑ/?x~x>x>x{{{dң|{{{a%a%{XIz;{ɘuG@cx4Acx4ACx4 ACx4 ACx4 ACx4A#x4A#x4A#x֢֢xSdҁt!=dd9dd&jZH2 Y{3+!ɺˤqɨ$ A& !+ +!!k k!}$d8?8?8?8?|;w|;w|.]w |.]w |={|={O?O?O?O?2 e/~ˀ_2 e/~ˀ_r/~9ˁ_r/~9ˁ_ W*_@~ȯU W*QJԧD}*QJԧ~%+* * * J3BIȨ~U}@_WU}@?OS@?OQ}@GQ}@GQ}@GQdP?(> (> (> (> (> (> ' & o& oz&~ |Q~$> O$> O$> O$> O$> O$> O$> O$^*W U& o& o  }@7M}@7M}@7M7~%+_ jW~5_ jW~5_5n pk[5n pk[ Zn-pk[ Z\>p}<x>p|I' $pI~IkI&nI&Q$O?^xp 'N8^NJ-I[ 2 JHU'z w% :vJkYw2'MNfv\azzzzzzH?'s`9Ns;` ;G.N\8 sq$I0;N.NDfg _{|{|4O%d5d d-ƣ=>xXXA>xA>xuu^E>x^E>x^E>x^E>x^E>x^E>x^E>x^E>x^E>x^XXI>x'I>xuu7M>x7M>xucGXS>i>x^WU>x^WU>x^WP{qgNl\zϜdɆ CdɆ 'Nd'.-rqB d$ddo}Fo}Fo}Fo}Fo#}H<#}H<#}H<#}H<#}H<#}H<#}H<#}H<#}H<#}H<#}H<#}H<#}H<#O>>O>>O>>O JH dF&<7?yD'N$:^&=;N$:8Itp$I9I $~;N-Z@_֖e% !+ +!!k ?-G>ȧD<Ց q <$*1L=}ࢾo'+[HEypI+ vz`7]9}o}w?MA;!ki ?·e2<4 *za@_af, n(+0":n/+%R/+%pb/+%R 6&R/+%R/+%pad+aJ N&p8d N&p82._>'X"%)8ӔJL/hk4jTWѼ6tBK趖(Ӛj{^wWlL-Hw6Y ]Ԣ|#5?MOvٝM[S F݋bà-ˍpjI7楻 -V#w8Z:hJw]t֨7ZNL7貨i-L/4nZ[ d'şd:=-9ՙjlk,j Q Ͱ*FWj$ő PIW()F\([Z5Ѭ&̋۵f#TVtLW4ɦt(lе }y7*|:r>yAknXrtDk@{Y!: H5'E=ڛŨg乺ׅ)ybZЮL5J""z}G}nKQ'W)|9aL>TppJIn]Bȯ/bQ3F3e&X.~'?~*c+WXaSg"UvrkɽθQlEg}aʳj-!l͸L= zGɿ^'cIoTzOva<686ؐn=64&1ޔAe7âRkZ.l狽̕iB{/<5`Di ^8b/<8}"_L'%['Z1[֓1[6jZm&y|^k->Mq+E)7<,gMT֕ԏCݓ;XjwKxO4?suFI[aXGC S XAmu\_ 8 9 ;O^Q7[֠ %kM_Ge4Na06BdǒlbT*z{jq1\' aA?&\ÔRr0D,.L_Y^a$-#@~ ӵۗnTw-I i}XZrəzdu/Z6`=Vŏ2?so:y|_{tuE} V+L ͂ML^x`f>Z~[k=t5G(ͪ0!C,kŶ/\[q=J罎#,U&}% Mc7 wY+Ch~_C?G#tHCFh#:uH}y:e]Rf=:e+ZGkѳڭ!}>=DIP[۽T'Scib֬i9t}VBkɾ$V;/C!Ob$6uWCZٵ䆒J`*В>0UXv5W3Ӌa >鳘,GYm [^~t*.=䅮5Xrl蚻k9-ήulfh{e9znpT8Zt?UR{Cθk #?uhkzzcJ4᳾_!S%7rA*7j|Jk͵DWkW ߸Nvi5{^Y179:Th:Esd*ȓ٥l͘/L+,mΆ_bǮ&mys*$ų)P%b-D7E;nCMa_/.~/۟Bf ~u8J>Tg]/b!{3Mbvl@0nM&X1I*rv;{>Uã[plCx. ~9\K}csbV 1bY(_ ̣bF 9eEݨadj2X9R?u uʡd č`pvC}CssJ$3s J7Ck{uFEPsgYv6B[G9o&w#}frܨۈ0f͊p}iukjTC>=GJb[vk߮NWȷ2`Yxk!#w-]wOVj\wd|{buԔL9f=w7=Լơ]ݱf Wmr rՙ;]Uź6gC6R)~ҖP۰M9УrYGMke]=˿wبs؜jjc](a*.>e˴;Z5Y'tlULwXe` bfŚ'y$=7:r;oWG=GZ;,ʝZ}Vs?G=rFvY=C4!Z.?louF0AZ߬5;*XYQ)thhX[ mK"`ғDEhi;et_wX!"w޻gc~rwv%~ %^CƆJ!Vo޲gT/z}&=zo4126A}Kh޷15zL}Gw;A}Cby65z?O)_QW _gFDzLLcqO=*Uģ:o2*%M#g&{*}߽m<0d7׷KGRPK^Nz9hN#EPUB/fonts/TempestivaSC-Regular.otfԽŶ?^=; 0&I ̈$EQ`VӲ;`%.9XPpgĄkr5g(` ?[3z{{pLwuuթS'թGQ!]~Bt\%}}>O_zg7Bh72Ӌ^BWu~NN ='tOjz+}_:^p2!P\˄K!Z>HKWiC Oi6 ~ ѮyQaIitC/ޢ"{ B#VxgˎI{cdII!蹤D_d$z[R-_I҄P$9\2$z,qBߔqМGJ3HJiїʼnhҍgu 累IFѻߥioˎK'{5X{^}$qc“u IMII=PHZɟ7pڼR4BhR;Dy OZLeWTxh2_ᩢaˏ-2 Dݢn(hFy5m¹m[Rxys*):I[TxV.) o +-ZU o(a7Zu pf= 綍PSnySD@(MUxCPi$xKppyˡ O-ZnVxLSnԟT8™O&оEGs)!ZXp,R[p'V-R8i o >pVI o$]Kn@n g\~Px9&));VxI.U EZy o'CE(Xl#Jiѿ>g _KCq`zOe[ lj2 /|qa7tz"xH\?uT%7J9]+TCʥVq}EŹ9>ק'þxY . JsǕr'vEzGfҵToҢKz8Q ɶJz3XЏՃIqp?ԶbHtCR׋bo:Gђ[>N:oj2q 9xs@]IW3Ly8/C0zjL5Z #hF4jcp}MΑ>\,;)= UyOrr\lٗ 6e)^~C1+CsfUR.0MJRWqqlI$+WI@T-LCJbP/h38nO`)|>kMG)])'@n]Hf$3-J/.fyKs1b0Ci%YӋx ˼@fnt8RozAfbo~afnV9_(+Zzw~I; yfxf Jo_) dzǕ87;J;jvr~w2/PRkrE9ro^zi^n7d&ީLon*),>PUԫɹyyqoYI ,Jzo6zhxo0rFJ'7(/s4rP*?aÇmJ{g)hڏIˈ# f2AOkY%9$_M3dW@ .+JOzGRT/N LW H,2$搂*P{W(E r 29QlTXmk 2Mrߋ%QeE@ILJ@e%e4t&dv8Skp^IY(7sLIoQn(ʇ/I/* 原@Q8Ik c#"n HN(,!K5W5_=Lo``OQeEd KfdJJJb@@}I{g.\G^]\<}C3Eˈ4)&7=Ķ/KXIY scerebUZy@ȸx{,gGєxDc1S ێ^[ڹywQ^!;^:ߏ~})䂓3NN;YpZ~/򋅧/VETsPOST 'm(Q= h.ZBDkFDDNԻ3EgEtYl]#|٬쭢}BqXI_*.+ĕ*5k 1d#_+#_z)Fq)Fifq#ncmvqSE/И,+Q#b VZvxT<.;NxRϊTD$){ r .A,43<1`-Z /j48k7S\a9nX#*2TUt}X/6u6PVi!PQ] ӮS/z$'cA.l{}I6ɖQz8;]ҤWՔf!b?D<ҁ8;4W#^FĴ^kF SoUX|-~ђ4RkuziPon2Z6YӖh˵V19Mc[mvP8nGSGKGGGGWyW;:F9cw9Gccڱ)Wo9>v|qa:IΤIMZ$MtVҹI}']40Ƥۓ2&$MJtwҚIۓJz!靤O~J-LOn*-&1pdAa K3Z $73$'h@~:])HIt$ |3rɬ#':3t+͈a3ҩ k3^\^ 8H: ?Az1llN@~ Bm!d!)pH6\tu5"'^Ceeplx7̕bvmk㕎%`B"MeA1y%A<<(!lA~(0S0 md Gʏb!tҋJ G&8BQqQ套4)MCUJ2@l~eb/e ](KcY&?n7krGT[c05(1~bY!.Gr|%e Ky^eyy4ӋyؓygInfK}iBcC$@_7w mM ^RsIhH caZ1C["J4դzZOf42|x'I=MJYReȐxLIe*^/WkF[#oݤ%wxO/>HɀB|*>_&RߑJF|+'SmvV-#ŷB[ҪR:mA6j{H-n&ŸT6AV j!!m(ǵNI)iYmro ڋK+ګkZeŭ}}}DJ7}CTL\UڗW7Ӿ~~~"xQ|iih_ߴ#QfjN;YZvBԢyCp8b&N2IP )d~ mHu n-|D_5|ᫍ˛ۢ [hC-饭}3Fg~.Ѯݻ^ug:zn^xzmU^znڧ/]_ㅿ\tqߩ$s/A O^rWt+xk^;p5\5xC_q᭑F}o2;^K~}?Nd/ <x.dvWf>ǎ/opky LrrJ ]~SkQjQǢn(_xq`- >S?]6`rY+'o'8GNi5)M9%wJŔS{SzԉS+L_4OLww3W6ol澙gg1Ǭg;kʬųΪ̬f}6K sۜ s,S=vsޜ9{D/h YpSi-.꾨ߢ-2퍞epcgL[zIe +V̨,Sbţ>^uQծUYk}nϺ뛮ﺾo[~%Z@|`ؖs޼5g딭Zma]ۺڋjצfN5j׆j}j=L 6 8xUュy{[yYS˪IyDc=r[0c^汮t7o2ѣ"! + _Qq/TrҨhQ<"x!=mGET`h`h -.x \q0ZZRK<0ZyesOs)\Ȋh7{Fc\8gR_@0*qAG=Pԓ%9L\S!9n A.6onݟFOqn3{VV^'2ܬml25}FyMFu2G0F9jgofP۹i^SF?r`sPg-C42?[q# 5|M=/u{Cծ$zqvGn<t_Btg;@4i0t%D՝Iygh 1n"oi%|0= =bwqE/ <#Pj ?9_ds*…`U.TE7Ѕ[ |_#iغi릨h:CrssM_6SISzm x|WQq߿Q1>ZE%fFxŌ6H]keZyRa~$&`.enjcx4N6Mv9?6*.^ ޡ8k >HqYWXtLWpzfj4Shm"!U[LW殛nDIRKp۾d$Wr_Gy| &bri~Ǭ ™,>!X3s6#5ۃl*ǚn&j$3ikfS)a̻6o!`(lWA6LOi X=Y%{}AkLR]m}. ihQ֢߿5glL}9hTAql?Eh='0<ZaJ}lXTXP KI(*Eרyͳ86~Ov$310.a2~iNCc?grdUv?[ۘUFYi#et*G(6ăڣ(x$`8+ s"1$j`f)Vk4}j8T1dKc2`g,c.R yĹ4fgj\Go%1ŷVrs Հgh#lFJ`d#Cv<)˺A^Ac+@jƸ|i!@j VBBaR"I@ipJ:CIF۰Y#\W3X6V&2]`(~%:nWѯ<,Ze@J[\܍9]sWT\:s)c ~u{1< %`:߅o(Ԯ*eG:x,b \&Y4!B ϶~v< TlAFgƂܵJ)t\nyeՃ\aMLB6frD~鯝p(zcĥ&+Yƀ"7C:dVSh7 H8F327mGVČ\#n<[JsAl D U,YfMf`PtlHXz. @#ВU.$|)SE\j>XךI?nV%of.t鈡U~b{c3CPx+n YHO_0)`Gp> L86[':( (Ex.%qkIݳЃ|u~ 5vRJ3\wGF; 0{dK1*žH`,,]V;A*,!1Wpr a'27+vXxMUWfG5'F#B̄LP9 8h5|p]*<#[r&M}]r]j =Ϙ|PSyN8Wq`x'd[XC0bc &M8y"]0~纬n̍3^6;άt?x*+ iv+PAT\'Qf,aJc0l^J(YtHTBp>]5U1۸~Ay" >Vaaig<>5j h6ϡ* zCquN }lzX`szv0b}ߟAյoS%wT9+7 >ޒ36y22>c yu Jztb]XlxN3)iꦩU;27KhY.X+(4mj"$4Q0XYEc6h66^3J.p\%5 G >35g" +LXsUn f`T Xf]J$+y#qrq>90<1~6|.{Gޙbk\gayNk;UjNO$iNߟmi$ߣw52|ӝ Jgvi8ց 2A#647p#F %y$4 ރrc?YTtLrOp _c$Y(_;E` ؀0 \i̳EAQRr mjnCx6*!i %bX<):{x&gH<9V䋽̂wR?7*CJF͙8[f{4M,8l<$u~CQq/:Ai-bQ<ǖaUwR)L fgva)!l!WHBO`Z7'ҸiJimg+nzkM{%[䪀.H6VDqDNC[D1Ą.^Z78x n lؑ-ŹXA#iz}quNأs j [ӖI2 fN]g2.5DIgeulڼisՃv0U--38IXucb`hzv~v~9++uG/D~Nyg2Alb*%_vހfXa\b{18;Cj8b+d YہD:2cTL4Q:K  ty4ek:b1bS:@Z(SA?@^3 A%$~so"s`VF}H]U9ǰߎڰo0-c*(eiٷ-  w(we ,`΂9티gP)p#p%{o#66_Ue*G՝zfH.mUO}lİǕIwFLcDZVq,Ja|+WtG1HpdPb 3'j&h ⎁%cX:o@?bX_!#և`XKH]dHd0 `0 k(R#o+a;̑:Z>z؆Gjor9n(`JSjKs ذ![چ/hꇧw T\g–YSaN;j,-V7FY?a̩ng9~;3/Z -(ۀIH)wN2JE!ac1:^jc^BHO48 `3q朇w]e~yzw>ؼ Ki94u~RbLLcp`?pYz)3's3f㄃1)[Fl@c֨h\v(uR08U(98ʓ†$~P@F%,aW3-ڈژL̥H[QbJ)kg/cL[\*]ޣspr(E":5}Dt{=dS{=n \UXZEq|׏Q}PK?&56V(H$_dM96|h '", `W&;f|kN[8j56՚XԚYj*۞C,|I0p)V&20zwxGgO8 )VbLXJ}8^9۬W h~i32C?m>kHk7\i;1Gql|GO|hPK4ֆ)) $"i?fېC &NW1uNŜ  pJtìtf ڕ-_xʐ!9iό8r^k&>aؿr}2m5LPYPgi`rc!~?C+9 csnrIژr7$RuO 27fr܌Azu_cZ7Lh*y CḥP"v/)3k{DzNpW%LA̧nRĎ䶂N eS 00A%?A̫ecIxoLԚQkoyƠ7f UHA؊UZSKp^D%'mꃙ~ Qp- TmlZ'u󢶂0C`8Q3$6f OQ J>Hjdr-&+5 5p?V~fѼ}} ܞy~!IeuBf9CPa+jVmT{QcDZ\Gg5Z\IVsS:a$mڥmCF! iЌlx\HZljz\R:,\Lh>׺YXVPҏL9䑞S 8dx8(_pZ_w"D$Ęy?n !*{oh, 3c iǜ–q4]j/.YX[~w`(oi3`H8:q1{v vV4_ױXQ|}unGg4ޚW4@Y*/ X1nZpB jZ$q9L7j(Td,2CΕmfTcΘq LamkmA9v61xY_,2Wܞe߅nOI:}9䐤 G v̯ qx̳*3φ)okgZ ~#z"exŒ)'CC0-m iX o@L0[ o3\^tdE ˗l  c=aV]Hn5sVoˆCVH }y``AEtTCer]Py񤝈T ijh^.u*H)2Je2 Ha=Ɏ3 6S($5f(k d0՜_̏t3e侷$~ì s )]q.+lmָ E䦩*ʌ,XTI;Ce4Y0br]LwT5lC+^46̉c^؄*k J ?VՔ 4vg9BcJ*)۹D|HZwO\'ОJqmGj q@m? QKkbtptБ%y8&*&8XGi»W%ɵ%U<p7HOb' W8!5Va/Pv<6HHG8y,w?FnYCܞ}f_}Ad>̋@bXsim{~\Tv0"zTdii1r*T'/c04bOhfcV[Oy,.&5yiJUyQSI6l<9ԮGɽH^/UuWYot{ތ+VAa*Icآ[Kh켬uE;fAa D9xA]gewRtH!bm\#~όC8:l9X-X^\u? y6Y Vǡb˒=reSU$SγyfZ{q۱FHR3e`XR "%Txm'`HqzN=맨Y[!kSU+2dlİ<u*W]6V1C!۰Lxp*PC_c1̘>m;a@5fsŲf5(# *܆>\b3ǚRh,[]W+\Zbmreܙjvr8K.VAbl N0M?Wj8x_)QwP;KU aMyZpJDJ6܁YRrQNVC.=Ld`_[Z̆|8FeX)(b56 #-y֛.7.؋5;oCB L}$|iSM[7J3jao臌= D;Up7u'`y#>GYK !T4C33Z|^;FHytsuU&9Z]͇uUgȭ-OcKآBc . @('%" Z6ĢܽZ8o^ |d}k[?b q=23 ؜DuBk { Yf+K(8HL8UK;N?BAe{XsfGi>B$32_eCl{c4hC@?z?NF8 A3W:'ڇJvű=Aun8cϨJׯSNJMT ^rnLF$mr#!zC:v%)a%6^2JH1\ϚgwZM!·cᡁf7;3Ґ9"4t=.Xrj nڞdr-8zPy`sHLJJ.vW MhaDfu{1ڽ#XP>gWנJVfbFܕ bP,ìD(eawhLMƜOco rUoes1td|ՙ k qjW< ~rWb rگmrU*#3c2*&c<$0 CFXors`8|RO/Rw"r_w9Q>w!E45 T6:ÆCI!5LӣqojldIT^T0nyaK :$$dvwr4wlcBjs ԘSf 1ٹ.Xa&@:.} pCz؇L.:phsz8s[xQܿv sAILt80fsreN78KJCcSEfn 6oUq -i5¼%Tn}N_x耤.a?&AH1EM❬ Gt-siűl.*]q Jj1D(pGG>6#uEya2~6;13y~ra f-Bͼ z"'~L_^O,9ѩf<;Nʈ=y4C0V{()HZȯjD:&E*NOX] #üX1øҺpj1Cw9<;,bypTmJ&4@nOZeme+2}3 JƓ`\8*!͌lC8C©1+N)%b]mةX=ʉבv#ט*P *>D,Mwŵ_b~Q 1~@uP B .p=WyRPܞ%'1g0`Êb a;7MUM!L^+b\k|JOѮ8=0 {isVD[]?}'t;}1zrI=|yw HK3=+w"k>h~a>ajg5=>]֟Ճ1|TU\7}m%8/"'u:b>YwcV;8g]z@nvMe 7W(iB{- 2qfIуlNs F{8@QzTi_zGuz(?V;aS+' O3pq#e[ 6Nms/5D?'MVzSrn JI[\&tTUHYG L[LJLXZolOIj&WM m"K$'pΑgX/5Р!{光cKX񒃱u >MElR+ajX$ !KB$[:R {Y .A{حY Dm'%1n܍HqBa*U"՘ Z+ېLE3؄,VZ4l!b䭧צ$eGk^:}5uG+[lD5[mqu1aRǂ%蓮v/onKk[{}Yytg35z2噿|>-To}9SI'bܜOXU#r72WMzɐ ]k_4 ;IJO*pI,"m9-z8/z wKj/x18Rһ 3aY HFÜ̈́#; p$bC sno;ҸlǾzzʵ.nA8wdžT7|$LE34\"=q 2Q?/+/+h$~jC/֨#ݞ mg3j8D ۞OAE .5l~L_p}o[E;]}*ɮxt!Xn+t2~HE|:IcLgOh:RTzzo1c! ݹX"BF7snj/ 6w?#ZW9ef_;ԀRR1Cav`j< WU*(oYrzЫosU Y#}@PZ`kz!ܾ8^Ed] l<#0-d93loOD4L-[h~<7̝DȒ]tS# ڤ6 I*uLerǜx6cKE?D45M䁕]㘼ˁSdݲ֪o f,!86mo J55eu56Q"ʅ-_~4 @x9?XP)5VG0$H[ |Jk^$)0Rt!fG =n+h#G=ru5.1wFe藺ͷNܘx(Nc~;ri#zۜruoz}l?XE$ī$r;Wt:f䶺9f~9sRBzW$`Y"}HJ2lZUUîar wQG4ba5%oNV;;dO5v "[a8(e-T:ƙHp¥8.Wk;gdu!)# %iTC1ζk 4nh7cXQ,޳YyY ;0_*u?͆sI_b beT s\(d5UF5 jta} 6B0k|ɗj Nj9Is~ٌ2$ƞa0PWrK` qݵ]K.NP[`yGR niQq5(gi@)0!hm~Y&IX1Gڙˑ#'D*!Wf96/1K7(A-c<%ajcԎlю%6\hJD  |84>$'>@8!! o| oEEjG<\8v g{X}hFqp9DD  1؜ Xm,Jc}b %'2rv|AgӁ:v_?U\cgNkꤊNȢزvuܷ?mw}yH|gӯj+N=68S6Lsnb5ּc2f2voc:==_{Z3>7]WTF%ҵÂ&^ꇉ.W1cpF"p$aŗb h8m҉HXcK_^qqcFm6=Rlu1Iה+4:~GgbO8F|ϐ3i5 LjuǣKSJfV FEtw AƥRXM!YFFߌټ@I:򾌧\ŜFM{ } "Ps_c}6X'1`Y%@11*PFTUi~ g<$yqWlJc֑-;10qE5DG:ء"⼩K:XRcma`R4%RΧXK.qLQ[QhQ;]rϒ>"dN^iPId}Bl Ss<޺ߢUy.+od}׬oHJ׈k\lV⫗uiOfuAEuښcFr:'WDS5{ `ؾnE&JI]v#s*?_@C58)!^oOCxm.٭j,OroӤ6]i[mOY_g}w/:7YÿuN\">8l?mJ+nhcHg1g ouۧ8` &Wy{_]ՏkOGG%Y[̴Cwf_bWͮfMOUKN Nr_%(ncD VVڃdNF˪8K7b6?QR٩ tKK.hўe^&G2&ۻL$fn d> k~L;&!s/ji>.\uPbYtpX=W6vrժ6kSᖘ%7DgcA+7% 1o@uP)ټAZywaerx'E? XBr=8Bi"ΗE30gp Z̖j3fsDg|s  svǩ?m69esF탅2LOF86YVWK'(H Ufdn<|\{/rx$#a#ɸbjd=ŠԜlUE[~SB֠]UuuܮsEnUÎHt|UawFF&y„31NOӰ`1ݚrV}F^ U~Q7;A0_GX('D~l3dᗉޢ~eiE)c+'V^ԑ$]#W.0{吭*8|{KS6p]#[+ۇ'NTK_]9DD3OY" 7,F `%{3sybѻi-cZ"M.F'iN9gy~o@B7^k.'%Xk_ CEuuٽn9ߴÑuyֻ_"R(> ѼW|%K[bY"%<ږVcu!קqjt G8e;A SU*/x"k 3ųI~ߍ8DHuIu\4`en4V|Y>m]wo4v 'ͬΓ"gq$]壚Z,Y/FaSFGz9*,UrckmRc!P=Qw,}k ag*0 O[?P e~Qg83>20ﯫþ9Xzz<՘<]?OgH~t|3ץVN6p!NN17.TLsc\8z\f36as&z&Xr#`nJ$#d٧o.G\EO6اD?Ñؓ^ +ڰ {\ aKؔMҼq_m\TۜcָT\qi_$0ļ>9e|| ;3qA>-4y?_Q O7@Zgza]t!{@GO4 7TV@d)D}D$j>mxFc S=VιU"%?5Zn{t?9(i~辁[ / YHcȺ Fm_i;lM_d~D Bm 㠶;וOvv }lts)6SgLU.ɇMԝ335^^x;^ϸ=#Nx^E(h{zIŨ ٺ`otJw!P14<-q c y^+k?D2)sl%6-gMtҧKyT>Vd$tI7$cE.,8qJPwڧl=Hc}o);"y ]$q13ۃ=Pszzݐ!K#.(ZH<ǂ0$9J`"xNsg0,w֏=^Ö lt^9,۠$rLp&&,;XqiB1B}ڨY^W`[CЋRt0ϠƕqY1q ^}ѕEc@!TWJ ժ pCn5jy\cԛ;Xl3":Y>#GXLU&F?"{k."Y4 8Mo~EuC>[tqofٓk220g1UPcX Re10{eͩ{H=6Li'Ʋ6Zٝޖ%C٣HfܖUd?7m_}zU][8MF~zDsOz ~`}j CT`>dLAcbL3V)^Qf- ܀zw!N2ەXsDC%|j稟sh0~ˇރmf#ܴJ+rDqXb؈3ߓ:`I]j6Nwf-y:) ۊ29QtGYLИ`G6Lq`|7˄N{ͰhDdbㆇ*ݝ~Рٰj>bFGĤo)cͨ,.e]ESCU4x>ޝ``Ly1x>AXY ن/>߳B+I[Ι#H$!Cτy DW:?1 "R,y|'E@K8auI%gsG!f2C@.U>dE߈+&pđһm` z?Qvbv*~!LM&^vV;J;V,jOœ'AAݕ2s-n$H&vgcI]XB줇I^VePxE-2{~9`_IE. ebpn3Lp*]&'a!A8h/2Z/"(!&X;V >Pw61$K~XU2{ӪMQ)ȫ3\넷ag7OܥnpI-YDS0B#]XIBXO׺F2#VbfCU-zu޷(# ]oE=~[(h50G?zvN?AS*XlݡW 9Y7ٱu wy 2Q rH#^T.1` jWY<gFϕ[*);W B6ϤGm-~'U^8'c"I'(57 [LPzSRA{ vϔ`%lwS`c]SldGILl3(w8nBJk;֚Ʃ>MKvڭfAA+`[u;3D襵W: nF5ߤcNmj˕i[ݭaXSN/t5ߝmԳ׹*N[|F3^89-~Ͽ.p.\‹^Tg%_ȥ.Woy蠟 m[ߟyX|}0:w@Q"Ue͈2C|J2e-9aZ:. ;33;736gښ-9ho5~vıx#eq= L5LL#6'=0.+ ljy4†| :'ۘPSM J[b1L$0X✋n~c,ćʌ|lƆ\Z4i:@_ dZϔ,%!"dxOʲ԰Da?n ĜB1gA-c]gE`x~?"}ɶ1JKXObk +L-]DŽi=ڂPfaV[xbO fr}-M ʂ7–=0؇:ekA\RGA,\4cy WV>YMMmڪL\)OD>\OE 0n嬠A݌8 J&sq\aB>U`*ib6*h( {c_f4dbۨKoH&iΰѰ7V(Ӎ3{(VZ" ׃L7I? UFم{4%yI&ΰ;En0@[T`0fC`Y+)ۉMLXtd".foAjxI:bR#U\4 b2H>Ȃ+GnUIl}F RH¾'C/g31%>nL,cVV. 韡b,!6ZHQCDwY֟bZ{KǔH!NщZ00ۚeSM<>ˉݶQv{F݉}`g`HB$bur U$SHR#ijX U\usCPVש]W#-҅q[s}Aj1bHا0֐x/2ʂ0+9cYy&τ|߳@ >j[GA<)b ]Wo%&c%Vo_ ˀ[k>.nT- ׇ01dܾhJ=ADuK,,lþm4>ʁ"WKXu'rŒEM  {fJ,5(_C+|ԔD7o S:6@2K$&YP< +yx:Sl{U(ۇ~ЭA@܌Gؐι?ld*5T=v$ u BNYF]+`!Lk`>;WC,6̎0eZ%ւ Iq^V BIqw̷ɄrCHbl]^[p &CG_cvCxaqPA.|~qW -'-;M Oni߸}rcc KIoFc'K\&1Prɢ_YĄ!Q^TD(iX,ؼtR]C hL2Y6q~]]&r2vE[=/O;;~E21mUc $eb& ;t^oOxDٜvۇ*L~.|:6sCdrz[;qSTO":fyUzc8({˯n:혪RH0O^x('bP} {ƄD4k\dk唰;P9I@9!'l{Wev艌5Sgެx7+(:B]9a\97J q̐^Z _q銍zwJ]g.pOqǸ];B7g'h D~*dnↂgXU^cUywG$Rd3?r6unoB34ZK:~2WYJjOiPh2Ax', {Ru!*ZV`G ][jkм5V[u8x%`L^a߃OIc3@N6M0gΘ12=(v sV| /l2HjvHx,` ۭO (ռXXMr?ϙ L5|Ysfѷ"kލ$屼 wg~fާ al%18C,^L,Yd4e&~4;[l֓2꿾>/n^/d]Nj,> )jR(? I K 3ɂ\:]61OaȀse!ÐE`ܷ"c44QC>ēLj5HG{HLJ'c-x:4mItaN5IHm/^.Eʔs4kRrJRKwQi<$CavCXlcoC`@(\ ~'z"K>^$&L\m^ɢقp -+[ĔʯUqBqOęhsJ,/ [ol NԶ 8SV6Wm,SGv΅ 7^>W[Pv!`}ا܃ bDR6+^{:vA}yf^ G!ν~}Bcd2CP @] EkUXPX0&jߨ˜*(R-wЛE/Ek*Tԃ|@f$}Oǡ,r7W!5!u԰Я.Xә& &eP/ٴn:7Cȣĵ9$ ś pB{]n|P6|matQkcJY56y-ɢq QPI zSR@ ^D,K"2`]C!֢ :>C~Pn`w(T,20o4rR$6(¦.j3g;#;&%ӍwqLA8b0lb}t2 ߊiL*LxrrݦۈY y|.ˣ4B(liT)D"Ŋ5W3nw`p% MXj_`;Rt]{[k%A $`oF6ڲycsEB2tݧ).ra$=Cyۼ{xgGP @xN&F>S`*7DD6Rqů7 Rt$ G]׫ E)2ʻ!2y$nl23g+8C5"#PQv낲roX=h`+vt?2J}zdŸȴ9)\9)Џ[g ޯ"(a ːq  %CF1\NHA݇6*cF)Ft ֚LuvJ]ć@oq/,+bT_.P,}}}Ri(Pv W0W?'!,"#[C 0 B #}X-8Yh[wiE$_Fݺn=Yeox^hr*œ L$fmGSl'䅞l a?BmX{Z4X] d^^żN8{H>]!<6)C͛ 5!H~iʊ+c*MTfʞ;?bwY(2KMUm#`H 7bCTܲ0sGotR P_0[8*+_c3ofU;@!GcOIc͖=B{u9.&d}9F),ڽ"K%2;5/Ǟ Ru]ܮؿp5,ƨ cmg"11qi[Q4,:4 @V>c+]h*dg惝:u[=1Z0Jv 2j楳 tY%F&`Si YKٴ+1"O B~lO% p1}#v_mPi;=QP;}e%K sn}GmNAǐO!=훴fGC:AiPk1rwy<geewh4D ~ T|ĺuWi,ѽ{4nB],7f9j&y< ]!&?F@{UƪXQ ^.J~A>ˇj%Q8P$groj6x> (0#^GTXK&- x/vF dghLTiEX_ $ƾ2jTV=pn,[qμu2u)N_=u]]VO3Lp5P#Yʃ@ˣ[:bha- 5 Je4Kۣ~Nmd<~/okoGuJ-{C>U=&,j/6ڄC.`RhO_= tm^hGuU_:(5__7yC߄ejf-fۡUp0Y*U1dLYP::MLf0՗5"^{5Rr[hTѩ,kBtuEtJnu Q8x oa^sEO\o\yZ+Fmv]@^`jsZQ/gz[a&[QR^m !gis[\h˧z?J΢3!;B/O5&-33W:/|љ}7gG9_O3Eg߂e |JyFlnw>}L:pIwBA?q}Af$:_}۱Q-fD>kvCi 88Ldžwdu wwZ^`wK ۗѶ4渏}͸zY[ m0(`C" PPYp l\A*},u~A1fv.]i٘FoU:_fgf2(Iq]ەyw{3[plǕ-tg}{GvKVyَٞ4卝&wgfRVP;sW9ޅ@ةkzzC1yᘖi>bZY-Eyʣ ގzɿYX (8(7}VuuI ݕN.4Nop>qL%׶|._F;?Oۏ^b }[cŭy-U_ne)m`{[-ٵܗHvxkᮬVPH}f*+xk̕ޱC JovVe[ۑ?fq-/1;y\8KZTlm> 03),b;tM4ie;93#{u!]kL!͍ 3/w {jY9WުՊ~B ~@]#\,CC+{jOf:JV{O4i53t0 Ҏ~\%4`2s,Ly}wi3__oleM54T{SUJ>~o7x}z׶ ۻ--mG}*i:n ܡR-Ym,jQq&) ,瑥8'In~L1 i _eXvz)o+~`?)(~[vt]m׽mB;tw\~í!.ofJz-QޕTH3Z#ʦ, _ؕW*N_)_eLi*VgbD-1+E=v*P]pwQN\Q6FY ss6Vk?~Ez"{4RxJ耶=L-`HRJ9)":Kxieґv4THo/2Ja%5Z k,Y["Vw ûa+d&_gj{?Q*z}\zןV.2 抯E-YCzSJA \ۀAi㧺YߥٱuA˷Bt?JErI%!Fd^:yIm޻Y̙|.-%E3b#co@GgZU?o9+/חa&5:Ϧ[k Jm-C?)[) )C::gu"QQ!(|@Ȼy.Bײӫ=;":ɪ'Lhmz5y [ݰp*(짺(|F|B% c5њk#j[GQ0frkZr{ԮUYkj&V~?mǮ_U8À밙N@X"xx?Fem _Po/ZSd6|\v6(kQ(1k;rχ ԡۖq3Qsp[V eFZ9wwf&=NCTwW\|Еzonsm rV]zU|.1BmКlcik:PĨMΥ:RƨYW[WkYAŬ[Sn<,fa+wQɳF[c)@Gp1LJ͊.\D1ڒXX`@`@Fp$0_^`P`lŤuPK^N L EPUB/fonts/Tempestiva-Italic.otfwt=zgg֖\ lzw&z7pmZDz !@ tB !27H$|yy~>33ڵEnjPb (tkWAzt?=U:vms5O҉*O (O-V_9}!->(vWs m< %`.~& f&EZK<4Φ uw^^? 5fSaXQ@_uN\g?\3']%57oÚB/zK Po'{ 8R22 Mrф SW)D_pѢӀ,yj^% {[]#;hB88E}|Kd98+sp rp98 /ZJTS\s"2ťrpqes>=z=ᣨ^pp%b|)?gN6O.^.\_Wwy+?:8SE{_tS9*얃Gy)\bg8Ǒ9 ܕqpB\:w| _E+RrS07ޥ>; hK88E" yJwA$k C! =29j /3Fјv#_Ӡ ?f96yYm޺D!hy{^#{:yzngo00~֖r`{Qэӝ?E YMG`{9+9$ۻ<>[븗Vz^ng,+y,WBưB}Aj*f6f7t3iyavfMLTt|M{cfސ隣7h C 4mJrM5SmݺtS&Pd.d!To((WNJJjyWgyhamҌc![d6 4dV nhÄQ1 htfA4xlL%YbYL}1퓵}y7"Ð_h(*65/H&?)9o(^3XȇvYϻOi_8ՊCyCxX)۬/1f6ּE#kbl)vQ\a "[GE5]yD%!xF?Ε EЙ 2mPy~082s \P]IpҨ0:jJoi5vlj"|1ےKxodͶ().6h5gUvuyfo%Mo3m4e|/[ BCq` n.!GV[2e 5yDP'q$hca_0hgXF_^4l4fM+SfN6\ht60cl]0ߍyq0q'Chapdy=:y/) PTTR]ǂ:/ͨ6.zzʚ|=XYNv!ɭΩI.4I_ğ/*2A{x=B^3פyxŇgyᮇxaiS6a㇡=`r}P~ֽ;ԾBηv:>m`U9m486[3ns70&v񮉤'va=P##s{ƭ 0cjp>c Xy|R02{X%8|<$}d7*F)R( `az0pa!癚#>#r;%[ έ|^}y9kl$qsPm;Wܸond c|rs>qu(SKa,c0;_)sYG>>7MMa(n|>3&rk95͹VV(r}954b|5|hl.&a7G>4s/^q0M㏩X8EXGVD'0ñ.z96r9cyr,#G">σHIb06#_"}*M.# cE8p1@j_sjfGkXk /B.Rʭ~v!]@"] CgxA o~GTDP "D P5PPuP<"H@"MT!:D+Xm ]#|7=z}KLƇXXw5XX؀M،[ ; ;{qՃpk,G>r*B6щXǸYtdMJ1:|~eSl{#31v7a4a>!,EZ6ƪc$5e}X,ӲE#VY Vwc1ɘ 悯☃L&3P@iĂ!d&N} ^ x3fMqۯZWעTKU S*Ix;'Wq |qI NUmn}1몂\"m<| Ѭǽ1a/e̗35nRXk֕ϲX.Ʋ)lZX]^g_oC=ae"{r)בdQ~W~_Βse!!_oe sps qѸriKK.d亘]q2C.k\6tr9.\Kt ut޵kkk`בc]'Nu:ubץ]׹npuî\Ou׿BTRSD)(Z(R}FE@QXX_qJq^q[MVխ[=$n-:us{6m nKVmrQκ]qvn/ew{ƽ{{4p7u>}Ru?q?e[CQͣGG3r xJjګWO~^^^%^#{Mkz^{xu^zUnJe2\YCY_lLVRvTP9JrrrҢHRAMWyX{?ޒwww ޱލ[yw~},\o01ޓg{/^cOx}mRz?GSŧO]hD>:>>1 3g<>|6lsW>}o>|^R_w__`_oMZ&)};vk-;w,|n{}#'e\"E%5Kkկ/7o?\E~} /.]WSwWW_?=FB!'OF7 @$ %u@} yEL  `Yڀ-<|< x$,E P"UuTQU3UJQTU#UT\G mêOUgTT7TwU߫~U*}k l*cແf 83k7 x,t{5"H  ((>iPZP۠.A=e4-hNТA냶 :t2ˠA׃}KA/I";80jpz1I-[w;83x`'$xuǂO |+4C QT R7$:$1y.}HF{!C!!CBFL 2/dqȪ!C 9r:\ȕ!wB{5"5?444"vh桺5 :9tN5=z"+7C> }"yE KK =O!,/64lT؄ia3}4lMضCa_ WUtүʰ*slʅ*WVUVQ5jyUW_uKՓUT}XIWA S{LJ/ ~8&j:A.QOWQT~M M\fI_ "Et14bZ#Fm"Y=Ad\dȴ:W_-48gXa4  z1ٔm*03K cjќY? 045M233 ř,5SϽfڏich6ӅA@]`?Wz0TtA@ݏ~l:״SزKv%ki;J^yM[כs.6eckQ@k~l-4 h]ٺq`Nm߈ Mm6 Yvϳ۽Q' #yc;ǭE፺o⨷ħIzA $=E1 [o.ӗ`%c7Fnmbg:/٧qi)W4 R wWXObE?ŊSx^ y!E"Q=FTI b ڱQDVDhV($ǙH+!VEYFPd,$L_`⫨O/,2^^,.69H|kabgF^)b}K=0ibmuWLFGL[}a>}IFd'cSWcv>C_cL1v*2^[!W874L` hX~S]\ͳ7O$M41+Ӓ&n41U:&cbG;"ږk{y%zKV,b)Չ7N!DH:N!DH:6*ʶDGA⢝$I*/i$I$I$AB2y:E;D;D;T/_3gX1N1N1NNNN΄ccccccNZgӳY\YuzVvrrrrr3zS=tttttt+999999999999999~h*vNs$$Z'sx'IpD'IH߫(N9F'i  O $H& ]fB3jgE;gTtLpM BWl tnMB7Qމ1D?$<EsrfhX' ^@D/R H.@g"R^Kz)B/E"R^Kz)B/ET*R^KzB/U T*R^KzB/U 4&҄^KziB/M 4&҄^KziB/M t.҅^KzB/] t.҅^KzB/] =E? EP 5P 5PsNg- F@8$ pxI" U@tuB/ZE h-^P B!Z(D h#|1g#|1"CP 1B!F(!F+b^ЋzB/V X+b^ЋzB/V XzZzZzZ Z Z Z'| qg'| q"8Cp'|98x3^>x3^>Eu:^(ċPx PPH,AxI E]0Q4O& /"D,Q(|&E"D`KzIB/I% $$^KzIB/I% $$@tbщ D'6@tbщ D'6@tbщ D'6@tbщ D'6@tbщ D'6@tbЉC'v9tbЉ-C' +tbЉB' +tbЉMB'6 $tbwЉmA'tb[ЉmA'tbЉ@'vtbЉ5_'|Xub׉5_'|Xub׉^'{Xub׉^'VyXuby3HZ,:ZkN']Xt|vP`{e.2d1Q:;Wǘ(!Q@ahf>?8O W!} ؗ(&*A4ߥD A4H DD Q% D($ /K($ /Kr 3h֋s29`{#NL%f4ھ r ֊)42B۟ŋk~]mj8$ HeKX C}ӈ/D]!QPtz4$0NJ `^eISqJ,IO$ب2`+/*ϷG",# "#l"1JdIvdKO~!Ar&GQr''I)9E>#瘎 %9C"g9r\ %r\!Wfb>NnoMr|Kn;.G8wEKw{D/WyL~'OS<#+)i %>G)TW0H$ITb,HBr%S򒔒#J~ @)H BP)L"U%"HT]!ՔjI:R]T_j 5IQR#JZ)ND)Ij,5ޑJͤR )YJR4)0c101II-VRkVj':HNRgUʐIJݥRO[z_#Iz)eIi-HFi+IRd AY*i4D* KH#(i4F+K$i4E*M,ti4S%͖Hsy|CiPZ$}$-HKeriRZ%HkuziQ$mHK[mviS%H{}'~tP:$HGcqtRT:%}&>H_IgsytQ$]HWkutS%}+ݖHw{}P*~~~I?KHJIߥ'SOdʤ \z)-UH((QPWnԝzPOEԛP_GiU@Di a JéjhhuZ֤hmZ֥h}ڀ6h14ji 4&ƴ }6hsڂ&Jh:іmMжmO;ЎLЮ4vI{ho>C~TOLE tͦ9H\Gi5B:i-%t0Bat8#(:c8:N$:NS4j :΢:Σt]Hяb.rjznf~Lmt;Aw]t7C}!zG1z'/ yz^ez^_k:A7--MлOЇ~G?OBw>?32%VWI2d\1w<S2o|gLY f!,** gjjoauY=V5` Y#ŢY[8q,%D&֔5cY RX*KcLZV5kڲv=:N3º ֍˺'c1=2Y3,0#rYg ffElʆ6dh6ex6Mdd6MelDb3L6fs\6glD-c bcmb1ʶlvlO~vdaveqvdS3v}ξ`_3+vcv]bv}ͮ0a*@ #`0bv0b"y6{>{Rd#=b?_د7Ξ'{bVVƞg/߬!YdYv]e&Hd-Ⱦ$~ @9 $r*Ur5r)W5^)גkur=@n(7h9F( S9QNMwr3BNST9MNurKZn#rGY"w3nrwS%'ߗ}~^/gYA g9Q(yr\ BylbD,y^پ-Mj] +2&搧@ p p9  U^p5u8\u9\C1P6V- n nnp p[ }p wn$χz[?Ćg#|÷|s~W" *Piڀl@#TA2"`3B<!d:B#BAHBs:B", a-**Q%U&T9*Q U6T7!| #:ŸB:6P@m_լ 4FtBF"[D>GPm4BOQ;T@&P}5G;AQCQ0jB Ԭ-P-RТZ|sb'Z\FGHvAr$"H))Z-"RGZ5uGS{")s>黑~eЅC̀ntB-e-Oc EAyh us6D^GHhSm:M!|6hmmAۭh{m]!=GhBot:t@PSa:E]p 莎Xc+tԣc:CY 9t F'wt Gz蔈N:tNtN: й:'s*:wDlDq< /.蒂.e&@O ty]ۣk.G׭ @F21됱-ݺ[?tۊnG,w xw%}wFPtOA>ݗacc3zEGDh^]ޓ Cл>z>/nD/ @_Ð)!3-㑹'npiȞM"g 0n@ ȝRG^ BYD~!< 2``2450 (A0 Ơ0ׇQ4 E+P= Q<%(iv(y1`T ^!* ! Cb2CbN !?`H am0<cF ?wXÈ1#]02 #31r F~`+F s1[~1~c0=0NqNbbLcR,&\Lɇ1+aoJ1UM1/i#a>,a1 K>304fu a֘{fa~ |×X0 ^bl,\ >bI*F`i{,ϱ.b-,^bEX!cEOêXu3k>XºsX?b26ai66ÖZrFz`{xhbG v|ϱ*vN3v.y]ؕ]Y5vcس{c]e[{;co1.ϱ/ Ǿطam'SOl쟁W@=p`+Alpp#^8T:(ڌCq8q#.8GdGn;h6.ѯqX;3x[c_8hǧn8&؀pR8' prN{]|?+Nĩ8e 8>égl>[Np:;t!N'p|^ kM|/ |=Me\/ę`1<_UK|5_Wgo8[gP]p{S\9 8 P  q .ąhřxjR.qi*.op.T\ކqJd\9+j pu;~5uuk|w뗸Vײqm=u?\z\q6n8Xpw|7M17qS97="p7nĭ{>ŷq[p{/n;p'w} ޸;w sŽ&{pf?s<4<ka'<JQ^NjCxq /U(᥄WThmƫ '%fB }0Z ĥ6 "(qs%nMq#IĽqIW3%H"爧/L< sI< Grׇ((r&Qn&_oB%>ħI!>96w}DFb) V$d. 9FB.JRUE;u,Q%A$Au&HWR1XKj\"5*H$RZgU;wjNׯ~m_U2-W̷WuݿQuݖ^a/WiGԺ(_Re?ohǘ?L),+r$jee|uֹV޴s%MrZ_ʙXj9n]G6^,dRLeO]o9`Y3wjEӿ]Z˞e@Q.7.U}&|eԹ?yvر_?Y~keizSP]SLXk{8~ѓ/7o\~Ͷ-˷Y*ӹArp˸4}GTӷ(̢yֽJ-g,/zzNˮ#VY  _lmYy~籝,=zm#K]_MRm/_~{ZR,,W-W\~Sqji+,WݿepKQyGLפPm Ӝ {/Rkly*g,?[X閛[X.,wZ_mP1--X"XJeWdùg,_[Nj/b$ykō-,6mJu/_iR6EeY5k­\dYX=bQ#̼g;xQYŖ~Y,>dXXFcW옰e~Mx~Qbː%×[Z.Xb֏n^>3g*f LLL*9@|)-%?XzySM\_9bUӎ+N?zȺE /,]jYeY=|a߹sGS X.[ty{.^`YgY(#Ș4_By/suj*/lYKNKիe˸CZY[znZX[ {N]&֧W/YWVe;tݺ-}^|r_yl}^]UW\oߦ 66&k/LQ5p+y#Z][C{[Y!cUyP^Z-|ql^*>I+>xw*+h޹a˶k*_\TWd|v! ƘDM,c콢(( (He(3t8wz =bDX&q}oѸ6_¼{s.#(ӿ$(j1ڔ";7Y&eDZn E2vF),}Mj d -Kfqe&!P͘Q'3xNEֈYEe%%n fOz+6KtiY˵/xs61+F$ꁔsd&٤PoLB#nqezDD:7_fҒCor I>g>_p eC;E2`&k M0XV%YtQ# rؖĒf@v`8zF6#iжflpݦO^f3t>=:Ġ3anUPDhNlĶoq}Qf&t]R\c)G׶TsVrd&)~ <4~{|;)эSh7H2ǁ;t2ɯwy%e(PeJ5@@6s S~!@2@}NT6D)F&j-}~! _U TI~:TSj9sI^sLsQK]7hAH>%UH7tqd&'pV9(P<2)YT^zdU#dy ;5?^!1"=p&Y T@ P;j“L[x0`e.?V,K谯un>ʘJ$ݧT*nD^,FˋRgn-=,iK Zwŋy뽳&/6-b~_0jH(6ȸE㤀kt KccxC9jJ2wjûAZk3z\TB+^t/|zΊξD."KuSu2*w KοQ"zJ8kqAG{-%di9N qjii.a/3.Z2*t dCz4V"z*K T3#&T|m;"8dwȶv鉐K㚖bӴupmƽRHNLk]ydZXaNjy6G3w~Zf[RM7tZL)'wܸآ"vo2`kOc!g#3 ߍIpkR1g+Et\nbɈBm2Ь\4두ΠBT? (9{y< YMʀW9*m茿W$^@nK/r /-*uƂ尖pE7wKyGmMv8M¿zGJ-W8N=ù6\ɿR,)?*.hzY_֌r&J|:eqv5rs WF,feaU( eU7vhW}GOWAr>>%}ȝ͠f<=ES7kVP"4%؜N12+A^nٍd7mU18vyLsBs J3\i/eGvLk2Jjj xn s?'0e#l .g%?.DSF+%~?$}[C>:aR SNP94BQ]BЈ*\ַMaj\5C+ؑ3k#·xZcZyDUDQv;&> U{2`Vp{)*!"0%YTEEDŽGERg;7 Êsr$LyUC;^hl_Y b hъuU~^R[ɫ_I!(P15v pXgo?aX!^Ėό``Wovw(lQ4@qNK+>&:2{ʾfUH7ҍڽ֙s*vW/5υ9P(.Uh!=ڏ/'$ gpo^GL{K. --OTe6OÚuJi8\hkB&j1JEZTiM;yj:zѤrP.(5 9ʳ`Xٽ2iWvݖfr2cS>)əE٩PV99.;j}3Gvv61ɊNˁsg\;i5$>q2~3C[qp\KdǁW!|9Fr+́kyZҎcwǠ-cw#B٘D9CBu"#F7f ʓ$'%&fg2 *j#K0jhtRuHW&? qÆأŽ3!jP2K]Hyq`bj:بX&>>! &Mbrdm:d̸ُ4jgj^[Q )"ԍ}I'pJN .E*!=S#x^cX_"#gNR#=`˒cX\Ԩ6nҭ|׆O7pieͯ1 =`8׌6RKsognӵ,(4zt҂[KJip(]BCX|)}cCoxi)4Dci'vQ;,2ʉ&>jkQ)w;-E;6U]=uW\rsؘDF~jEm,`#;LUEAz9TB/U][5IF(vVf}>SLrSǘrKpmN=_džGo.o6krB" Ϡ9Sk8EN1Ǎ6^TzT@+'P46zI`]3K*RӶ#.:XOɫ%:U) `F>a ls (<f8ưaQ 1l~ h9 I 2uB,8&@d%e'&hv1LΞT KܓBò+4館n^/(C_ZĵVqJAڑ\Hݫ%1ݧr1~D)KN_O.Jr|؈џZ5o;:6>CIsVЀ jQn+5W)#M4ssi\ű\̊1"zR3?[Lh*Mҍ+㳩5M8+% lТ]# O'LpGC5Bؿ?zG.uQSy3!8? \_.Ƿ%x߮TqT<$QjBnh›Q_Ѝ-L} y~Rd&fj Sx:[!\Al^| aƎ[:__ރ\x),2 TGC%i6fڧ8qbA6ّ(qfWM`r4iVzz;) 0- rcZ%ѕ۸ws"8i mdJ|U`֋ښN=m~m.4%~W 9<_$,n0t>[~~{$Yg0fkwƎVLXDTLʈUjϚ<_q21zL晑ew7L U[Avd+OuzB":]8?VG?&8/X`θz6DCR1i5DѼA,鿁1T Z/l?h9%#O@ Ab}ڏXףM'!lX=ЊX z~_y.9VK;tY6.C;iD¦g6Y?*aՆ6k~}ۮ װ#ֺ5¸Byz#6T?a7)˔}膴/ŨĬS24~M(8mPwsKno췍R~:ӌv\: bw!gM U+@SoЁrG [;zxB8@*ee@[ྐྵcq vyr, Rj\YHJKb(Ҏp 5N$lrq%Y*L +\^B!!2 T3X$"C䟢 E0ΣGJ^~V@EO^{qg}2CLRr먑{ .GFE.Wv؉ 6\;)NSqiFWU^b:068<\U`;CnD+E66,'#21iV_{oUˋM``({Xo% de ^Nc$>nw~ߓ"_|W?9GOOY)ū n5ظx&-߁zgQbO #'c8)e_ڝ+?el`֠m'sc@-B<(E,53!>!_w$@  0z rש/U(rF36 V]!Y;Gm ua>HF#8*+FEXl ַQ&.^lux5qWÏre$c2bjתfPXm`Z*j:h4)/BG:eh_FSY_pil?7 7,g868ux-Gg6B`TxiݞH8zV(Kr=vJ\AbFMDO0Xi? fPWZ0o{9?i*g3d&-nA-E_ZL~p:x,kőbq\qux na,i1*Nlr`SoFr:b3HޘM ~bPpXIݒa;켋_jL񍈖[,LrI3c ȟn{hhKHf@:K,Tl0mZH XMkֆ*XKv f'RocIn&l4Qw\o{ S,ܠj8 ;Ow}^3Yȇtɢ @t\kS2b.DfXXRg|F,CD2ʟ]O2ʕQ.ÖJjI벆!ʒ=<܃u_7dhr4E7AչЯʧC`B!pX)Jϧ4A`.Z{und1/|htcyB͏8Gw| 5ke$jz]*yCpgS]h&oTv bC~Wd|ۜ7%KH s' sPLNBVgLehKAEZ4ha8ǷH(Αڒ9{ӵ tB PYE"?*|kw6񋅕[b+gGQFGGcoa.helʗl]RPELyY{7_ƠUS;J<㲜H֍ SbCPHg{6ɢ5EC . jX`P6WhJ^xZxkj-"xA'ԠF}d:O?MB6Rh.lo'N;e\0á7s:;p6hAʋf[^E?^#dMS|qcЦINL+WƁŝC-+B"WPoQ6d ;{k؆ LSsmD ʞ-Bm}64 WEöRY)䄤bYX+C 8R^իx EA.W {Ta-H{iګo|q`> *;~{3n'h YTcc"b0cl#m- -g L_p]gh -)Hgq0?>p`Kk2n;',2ڋ GͧZDw !/s;=m&c2:GBmϮ8N&5,{gL$Rɝ Y݋ Y PJ.̮5ѯu 6!@Cu_> cPccT`a- _13FEƼȗbЫGz:̪ 5AE,2ے:tԠ!N՞Bs.]8Ú (aն?q.̀8[w ˳c$2(uϤec87cE޴(?v2:#`_ Y0kTď,3-hJy}-l:@%g%&Cz(tA%pҠvkX*-6ҍ >p^Ē+K2ъ{lFmO8ڑ=~,K(?+{Ǖw6hA T;x:{bx&TT- ˼}QRc/"z|C_Ay}kB޾ʇ @ Z`Z'U~`mP}.lg , 7`,wY{D绛 qn,fx})qwE0 h 4B;߂-g_.JsJ\n>GB||ӝ5.̜yjK?4T?щxZQDEYnLyx^Tj\V &[I?ˋ^G(GG4:5oTp}5 ܂]pvZvح jFޒ%E&"$"& 4ub+-8Q `-,gmEe#]mVCV d\0iy) n;:]\ِd L@Z26/-љ6Hp%pa^Ϣ>̅ZU !(I*# bNTűC}\\(T'l| ;cA;O;ƣoS+PgBjlR" b"6[.rP^/I\ZLL]fu]64YDTB $'$Qv7hj1AxtOD>C^s U/vNh^D|kh R1Bm~sQ.w _%->*n}{d Wx;gиPJ{tjqVtCd_%}imոĘ(q> qnsC䦛`K&3~kR8/qkQ_;WVݐ (8M9f=wz3 \ӷkqBoN{LLyO400cp1~z6i3Eh4tiQ#x۱u{ ˅FC}b2;h+K/jɈ`tz3v(+ᅉb^1vLV ÈVbC\c4մ_.Dj9CpqWə#GS F|mܮD/N1NS 7{a*3jw^`ob3pT4z @7BC9z6>ufTuN.R!/ s:Y,'S1C>+oe 촖2NțFZF )`:2>|Dً;-]{Aq:n=&V(|e5\-msA,<)2?Ul_֐7P_5[yu\gq_Hif=At+q6E'nGߝ82"5q6~xnFo (E!D3{ `8~"0_jyi kʳӆEl!&Ia*<iD*jfJ7%է0ڵk}%|j~ٟp;T%OԂxZX*ҧxe!^ɛ>L&On ;6vߎ{bL4/i}&׀0WRa[Qh  3~Xo>QtE+_,^yj93kpڥ;oטef.v}f1%b/?(faay-mX:3۹Cu/~w(;/FRc H3(d 4 |,"& ], sEh%.'q悧?;۝77BވC__3ķ{,<⃆`%e.e?Ix1qCiO>:i8N) $Qh1 sYɰ038.-N?%kA9L LQU XҎ-Y )w&50hfnwN=Wz|J_ĩbcnCpgx]ҏL6`X8<0svX .mi_ξ,!ה&R%G,gPmY[ LNqloQgZ} ~zfEOp}w5#9?C>6aьvgV~a~Uige`+{<L+hcr²U) Ali;~ :pTA{4maJ`Ho8s QBYƿ \q^ ݛ7 q=7 nX@T+4uwti~d]T ٠nmJqniL/qd2=2Te)^/u!ol:![b55_F)//U\uHu>^!* !f^}TнgHm!S%ɢB<>5*%Ǥx&%拵*`!Z2drU#mǰ1+p/cq<;,m.>]=B,Xb8#%o'|y$! .p EH*( e"!̧EsˣKP P4@ ~{X\_ :!cc )q2QF)l 5vk6<ą'LHZ|Z,$ ,Ef1{ \ #2K~// VPI0Se&1GMu 2Ћy$g o^9\$F~HS?~(9mqI'^6"Ǥ3m$'aba%$dž Bl . Y7ݰA9;Dp `5JU9YʢElLH: 9H;D09L>"oJ'9>]QwLЩYBb/Hǒp_6&:CmBdCaPNepPD~BƄ.X2P)"O-e%`Z .Hqa3yO'hGf⽲$hY ;ܙBkqiR|2 C<˷mܶܳ7OZ|.0EbY]{xR{E_bؓd:M2{\E U.Vun[YoEHwr|uTv3y+NY(7K*|_T7j2})k;g vWwT5Z (1NLP;$F(OK zW@My,Ըѥo]pϚ [iK7υIᘐL}?9ǚ/{sAF\ݜ%ÌUUE HN$$AXRVP!e DEEF&P$>Vo(}+[Gif"MV}Y˸$P-1EE,#~:.~Pd[b }n%B$l\`Ԟx2jQ) 46,61".ŌL2ͮP@jK 1 .96UWЮ* C K]=78nW\ a80wĔM5/.,rM?NL:[;+Q`>YCB;(`s*4f8 xS}ᡱL zLxQk8IWOz\ſ]s_R ;/#wA|7Rn8x hlǷ?OE%2X*BJ{ ~Wa9UBTzYC)T,##ߤ.U#ܵ]˭$[jC`sEсk N]BCh@plVS9G`0! YygC`=2t6`R[Ph`eWX5ȗ$iz7fWʍU-ǨxBu|72jxk0ZNR[L~ZMRJ54!q)5O6q%%4( 2֗w.Rqe=#E/(, .\e3j Z`MFJJ0DGKq1Ȣ~|`:Bkev9tBu5[ܱ` ,,*M@=bBd/n/n;Wwd57wv)6,4eep* 'WP" E9P#Z(7hccIaWH-,MJbUE:X5qHU%zKRj,SMOɈJ9Hw$U ^.ŝ%n<-NhqONKdG&TPGHQɽ.\S!l7JCU~\֩Ӭ0Q {.⑋Tl7lwv 4+`hNkr줼my6vMnCwΦ@kզ['- L R {wl^n0c {X4&+l&7ʠ=bʩ.)ZuR~8 \gJBEP[[AiEqXCoO$&if]Pw=c/ojy;8λ$[+_:m3A\M.Ld`4`'.$Rn$簷4 C~_lu%fP*(ƖB5ԦLb (Ѳ`֜e]Utv^yޢ[ _惣 ,uwss7` GNncL̎R-DyJIj(ĐD%j/ݸ>~)Ѕ+TxӖ[hx::S-*/X \(h SI@(rLt[e0<'Ƭyx;5ils 59eFI18 ~L%؃|l kR%<ozJe/3+8fFef tae`K/L@LĔH>|w|;-k+pT0c{QRs} `1"Y R.EzgvCfjO&]sGXTdH>}sGU)ԣ6e ?d2W-w^öSBܖvBly"H>[S0VU;":`z)\9@سK~0o8)إQ/B ,5"s0):y jpe$rC-,oi8Xą?7W=/=*q)9􄕪BrUb5T?/=t/|cFF0Al; Wj`;+PںnaQUr 3X:ڲFԯN>w!~) a1E'ѝHbv-h}W ?ĭ-ᇗ$U$xn~T0H+"}8|g Q2ltZ +C>t}L"V nw}!Ha _;8[3n^mcFET-r^9&ԆI[uy6) ]- Qn E*F ~2* ^Kuʝmf'( n]$wҽƔACW~W@aBA"3+Ց?3vN;@Z .L ),w!RonH;z~&¡=Mj61ZO'3'xSlǚL ;9|ru'{d8IakN\.<Ϛ̣甠N|5ݧRgiц8×_AT6@CT#\ړ(83GвkamM5Xт Qsѝ;KG7+;BX&ZiT.HGF]\n F^!w!w_E11l~nF@?^Y_P%jgVX>(GGצM`6ἆSnDF[mvWFԆR#-ŷCm;@9ESۿ fq&d*q~F謄J`ρ%kW@]&\I:W̕]E2 C/Vaj_@U}uqcYѳQ9 SDoCB_P_w{9:TeA&SnOG1阮>_Bm-2 RU&V5,QnO, jUd&=?b`3p&ϝ>ڐ<: ⢂}YsP3o'G7b ?rq6pV,+ }K (B'@h)2 'J !CQe6gÚ{33gΜ9sf9'PԥlQ 4HZ> 0=qx0ބqmuB9vܯ, ."88HɈFnsGY&XmXj~ѕ5jw7|Yf~6v/_D ? -߰,>L=YGt`=Q<=S_䤍k0`WdCF r衆3EsbJr㧗$#ċ,ۋ/Vx=H9а_NjM gMi Oe,qE=lm'0EScaL[ 6;z<@-GE]}T( 8ܭ vADq IQ:]:HI?[Qg' }3,n[\&MWFz1W}>7L~:gܾ MuvhS>G7!GM(M*BZ!iU=wv4jshx zeb%!XܱGat9 xT#ٳh: zAIŎ[h:>7Җ%}@6\!w>6 ^ݑe>b΋K ЩylfVC 2I2Tv7`1_dh$#%#Brcx[H>@7Oo9T}=-ZmV(fd8:.[Ax){<^b@s$V)_0snƒ!2쥘ibRg4pS)>` LR.67$#2Ebܮla$4o23'}¯/{] agww9-cGԱnLccdZŝɧlc#cR-3eg)3?%?dfud~K81i( uHbyz*ID4L;_{^8jqu_S_;i[~.gЭ=S5a.,Pm0WCR;[z2iSYḠR\DH5R&wk(:o~_Ye_kLxbH+>kN];ZdrC D_tis!ZsJ+b5jETv6M'U)Sg34/[7B1~LvG+`;yEȖ ÓߋZ]mWx"KL 0,7- {48 +l_[SK, c񝌙Ǽ *n[Y Dd,a#0oyǙǰizN!b,N[ S<sFWW偦bi8;=Fgk,K rd; _;"ɤ̽p8Av?Cz=˅.G3XC-{`w/:2Ԣ74~) 9bI|a@ymx2p%:K6QCw{C6KWnjr38.E2s-D{ІMk6vpSL*CzTe~1~߭"D['=3D4Qggq:iB8q0-}3Š0{Q 5Ts>ⶕA(0%xRfbT &6s{T"?.E XLʼn/V8?UWx"z;H^B=@F,VnUcthBN3K#?g3YBMQnY,gg:;cIAHM17l MXQc#rb x-܌1V%Xr$mlf@]0]Г nrۏ `NA 6 <'`UO@~2n`Ƥ_=;qixP \?3ZpIIFʉvRxEEȔ]J^Mg0Ud6b$6,28?Z?rOMA“[EȐZ"1uw<װk=)6*cfkoI Okvж^٭،?mQz9ae7z 7L٣UzXgj2Y" Ȭ]脂Q?Y,>ǣ<62Y7+‹ e# r tV^ك9du&&0t >O׀a,ڀ4WO_ԉg6{t};V۾LRT;JAޕL)-N#n6ot` # #`@EDž`gg9..Wʱ]fb'+je2nJQ2| ˕k<_9r%bBBL@4Oz~ɛ;IK!g0ϗ>{em^oMkQ8y{.:Tw>F*hJ|8*q U&%ܕ^{'bKb4ylX͙Sč9}QSP7+>Réw n2>ȕ r w!hTP?|w߂-޳FlI㰲~lYzo9%nI[4n؂6~/b%=0$.q8N{lY99=!ՠLè edt[^ߠ eD& }l+9Ć d3M̄nu0JU@϶Wf 4ˬXQLiCuJ''Caؒ|Ϫyr4;+,__.E:qŸ3{G^GB ]&.Fڕ^7fPrbʶD":QNP w{KЧ:9,/;l~i6?Lw]slT}w%ln:xι+ݭ;qK^Z)ݑ_]Xb~ Mzxb(tyt;[.9 )cjCل7ϋ,z}jmnDw|NAwz^$}=VA5h7a*"m1GX9˼ߚ0x':r/ [wD[Z? 4=n_ˆZj-9וs Z]_M2ޑձ5=,w#^~_\i]]޸8u \s!9tcW+z~,7  Ѽ>] 2ǗB$|%}k+6?G֘ T(2LtFu~B/!QnlmH$(\3ng\dvVOVex]M⍈"ߏkFZJvE *ʩmS0g+;f_r^f)Q?ܛ }zqmoqpVģ#G`\^*,o>!u۶d񔙙_(ƟY< {/{ rEf+Xeh7S жm#ك2~6_QLOS[E"~!+`F둱~SMZcQ0:qJQ!پ+!40.N3fh#f;n&!!څg D5zȢ=hGPj!DcKҼJ^AD bq_˽ƚ#(}o [$ӣ4c78"QspzHN<UhWrn1g = :J]&6˓< ivcqi&zd2=LsDż]d{a߳6ږu+FBmcAZ![FK34>,z6 #mtѹBnSri2 B+WfM#DZGt)i4xV=2l1pŖ kZc;`Qr]B0Ӆ#.Ķꤗ0m9\yCR*?d Roev{YcVcAjSv@L*x𑮨^ qB#-[r鸆 kIz*}>÷g63I+CF#b4Hq}s^'~Tw L]-ZüyKe]$cK2?!Iyr74 ae4jո١KUT| 4وǣn756gٸa@yӹOڔ6lVa0Q%Q+lyo FBk''#9skΞ?lsW-7LnEjӜ' Jgd=+ҳ萴(<e6pZ1{H}yIzm?/F .PO z\dܩ]qqd/讻PK_{V0Rk ұ_KttwrSEG CZtxRz\= Ы0K/}\FqՓ"v .5''PvQCse&"i)*VSw6g{T}zz惂 %xB6S4 X+xxbm[U|#x"&cU Mr$KoEFa4 lHJM+e;%B(Ϊ:tU5󖲆)lV vRo$8>=#].ظcrM﷋TzJi)^*31P/Sozq"eS̑\c{"b%!]UX-y֖R^/Mct?},Zߚd>P>ZWJ91MpI&a,n4ZzW^]ۖުԈ?0\#\G4!f0q,%0w0AH҂IZHjf48WCoJ)4N7 C|I;)Ju2_/P/%6Yp\L)" &os{GBK#RSǝ1 ?z$k$gഞ8!yD%MzH8:"9DSplEWGQ;Z鋡H!Vi]Ch ֵ1/mx 45F4d)DchaX@#g @YoT5Md52pPu?"WJ|!h#D4C3<+|ݣ6TIDBPSN)2dZ&kT~;a#ĵUA: t'DeȨTڤxZ^^ChUotXh >-\>Rә.Z*c}n'eN/7D5MbI+7Ddj;:bjZaB-tk"jr% ^%S/E 8TmA;otuIDTo\c 9&\k.jXe`2+$]VJRlr)ڵɦ쏼Rγ\c"{V  E~]SĺY3t5 Tu7up{CRJ*T~ō M߾76-f.kZvp]XZG3˄:BIQьFzhSϓg6hsMẊGZM&1!T\hQp|ð2+_. d>3؋ 0tc҃helv GbxRGZ3w7V\ՄcPh{@Qk%vl!2ߐI;u-QH-2nQ| <S#E# !m!kJ"O#`S?Ra(Q̠XNG Ōc_ Sd(:ߊ6e82xgP(3EZ&zt;ئMVW,,,tO:5r4S^ 'JQd2|¤7y7<:xqxf pNo> MC?yܝWnNٜ.엶0C@pdSf_kP"sTK[Am;.dI0qԲ&'׺<"d4y? e e#Ѓ8#$ `w 0s(Zow}!lQt~"sa6J:oke$'pBx$ ux#MxEd (.wWekx =QN<JdAa6Ga%OgT:l aZVAϝy>R[b֠[CjYP%ulCtۧrUȺ \C6Eh + tD=1[jcp6u+"[$uBq@rj=SL@ `qc}]M6Te0 't y>}$w[p͔?Ǝ FQFk}BFQdHȖt^Us;YO#xﻤ̞)uR\pV(&nK}_+-_5:C` )";k-,YJGe&U^ԕz WM}Ekn(\MZzv5$=: M0}TC?MQrU>X (l[T_P+;$t"7Vا^zv0=k/qc:ۺ[b J9֕Nr%K} ~hְ4BӖOezloPv軵ŨeEbd0( %hZ$Vd`u|k@uL1jPLD!U7QLUI"<7MS5iV~?C GБ~vT!f d^o?&/m^#nt"QFIuw&Jd̪7;I뎐xc5n~,̓2NTNOGM]xOjm4Uj͍kN&XJM7OǙR@&֘ [ gjҨkK-E"RC_x|Ԝc_<3bE>LzRGRRED9Pt)Z&rJ>IwZ$}#f%cM 1g*BD#A=fK} g)xlmJ[,U;*ohm΋E[ Sۨ_ڣ>5,L-FTҒ=t!uRimJ2Z&J%Hҥ+A m5z km[jb-ikzFV+_Ѿel`"TW-Nv RW,H-Yƒ!雬`%W <2% K٥gu2*-3fJ`%ReeXmekV^-v'IyW⭬_-|IcX A00iQk:UPEs`:Fb1Q߯hvE;b"R\-)1Z^'| ^Y?T6 m>Vs9VmO'E@' 'mAI|Wqn wWk=:;ok{R;Lm+,)e$2/6KSlk紜VɯH-[StT#ԧFeN#v@B R=h-MyiӠ2h(wMQ5+ӄ殥iDtXTs_Tm+)\w!Ex< SNtH%pBM5 襢sfP$InVoB@[e3[̴ktN"mLR1u#ʸnqPd6Zd[5DPjqi$H_n$X ڗ ^ 6ngj`/wjQ><^ dɹ/*?w˸f%"Ay֬%LOIG*]eZ" 8]gɤ[ JuI'"3VJ~XII2AKntc][j( D"5 n 'jFU\JqZ.ZV\6EyGY^CY.юH|yvL!,Rpy-CߕlSX2rBXsarApfS;zm'_kmɼ~[\jffsNz/2Y2{܃%u\j6?\/)J3>ĤKrIbj&Acs>fO 7A'ÿR=Y@]RBtޥgdO1R{f,|r0G{`Aoш{.,*PwK8ۉx0wE(x=9-kNm7+$>XP'\kvx\NjB{[юBBy[#ϵWt ߟdz ׫d9֧ͯâZE<ݨQ}Ô7Q}Ô75b.hQaric%F3fvḮP[iPOUN5 !a(fHP^PJhSs?=˧=K\ _޲CyZ5 y5Rt;m܈y} \~dl7,4=mLVQvQRM1 ^)oXDK_DÔT񺞴Ap$̹nGQa_nh6ڃʢwE9r `C(+(l韱7 7 >EPWZ _#`^5]ʒ2%Zls\oX?sݻAQ2 KA(:"zo\DjBiU59DĆ%&)cʼc&MflEم,wwx/]h]CSC޽/+kZ$:R68xl"h݊^7tڒ[pOx!u韱pQmV섷-l!U@[`+HS_IpI~+sTEnL{>{[f~s 7 0e‡X`,{ej#јnx/ :0:lL626#g׬)֚y޾诱&#eޣe f}`ck-̪vSL̩"PmO㋐\ )6Zfp5sw[ $^>CdKµ#p=l T/0W| eFp"'IEdnjO(9ɂyy䓷*q$Emܳs%k"vEotׁc,ge4t=b7 es )LsԎl)$ XL? ]9 wiN:6fbp$1_ZF0f8rtRRx`R4Th ((ZC)lE)eD)!cXI ,LXDA&'vAG{j kRwЎE4T !od7Y1^Bl6oK`pkz LY>F1PdB[㞄3G#57bf#=3qy( MTe6c&x[f>{n0kj߹1cQ,65b<7m  "#Y>o3ޱq.5xe=eLPd J,1%<=OLPvU7|3EFZamqƒYq2^ۼS,(T09aGYyHҡh7 KUИƂY1_]VMH;ed^_ؤJtpS|&MLeQ<,Y4wIiPYN7۲p Iu?X}ߊ c3ê` \IdSȢ~SC?ßDLefϚA|%Ìr#k[茰<:&1YhWX=b3ìUDˬ0< F% N>`E3Opu;|Aȋ9ZN' PM(KY/M7: Q r=D/̎C< Y!06#T˘^^ kas\F>6zWE!J[rI_a=>xyW6It+Ŋ򽨸2|^?FųD Wc,ѤB䢓9 YT-LSR"hZ$R0;}c| zs\9~ Xx _/0d4i~Eh[:4 엱QG` K"˴>-U\ U*0>DѮkC(-oK-X <.q~D|J/*:*&:j'I-ڰj8RyNf֭غh2 @\֣hbFX%YiT:, d[2ޞ/J=g{s~?y"묶W笵 iFętP`)/D_ P`r;鰦f%xzMS5ɻ\lSs;?5`{,M|2tHm.;w;JfK釨 žPpAWhjܾ19MGV-DԥNdT2c93coEx w2XU#q(;Њ錟R-`&SŶa4԰$+w@m5^u7WZ_޶`afo>JVf(F[`V0-4ByW2 pb CsRGjh`=C،SlAdb';Kpp4A#DlskN#490EjJm\ QTA|eUYaj!}&SpАՖR ш1dx gB3 $aZB-[adEe_N^.BY|6ьZ~\qR-4{0s,%fxobl;=2K<[^Ղ-w<|}t]+ 0wN)x^g~M X?5R.<5;jwZsr:j#Xiu\r 4ؤl}d"R2B[؉(ȸFP y4!άe<]N&?2|Tdy1QMzXM"1128tB!ILGff%O$2x/c4_dz-52&H@vzd@:W:TUV]]W8) IvW"2(0o´6@.GY滄ARJdrLq.+v7aZL"캠"Q8ۑ`<zw}<=H=x=,jzauj;5q;?"X jVHxA]kBVxj ^tV7m?]#gYf܎F@.K;b.g3 o<gCsnnK*2'e2_ LMrELn0"z{ؙ(۫= 9ܼH{GesɆ2ȧ*S ոKZeľHתvr='5 8]B?ye>U$K;9*2Um&/QVL*;ߵ˾̉nh$u)i;KP"fONh=>"LpO`<O<c/2AfM 28=>D# Zzv@ #6Ȇ.6< :|=osauؾѦS[VgF&sꑀ/~zQEAGA[U!=7v| krwҘqN#'1 b&;״=Œcs Ŗez(B$ցew\Lr>ه8߃NZvR\3=89s'6pObӿX%8@'ΑH;8y9Mƙ:y~Lg;LBpciDE|;sڗB84zneY14C˾z^Qbd+ 4.*`س+h\,Rצ~hNd8?.1whMHL:?v0iiV n{*0[,ՋW?س6J%{I=1Ačnijпiڲl4. <IY0xﰲ {`$ 3 6չf@z~`-S)g'4@@+Q'(R8j;_ȋu=ѴExyak2nP?&h# Lع3I;YV5>n&{챳 ~4gF2)| 켇)6lzz_7@2c/! CP$p{Mŧ#:KkM%\[d"MUk!d{b79Nx NW4;w i4MmbOYfCKav;kPx"kNؤbZ*2_aBQu:wq*QTx?L7" B$Q,ލ3p5SƿfIYk︚6~g#yI'}8^8ӈ3[RE?+^oÂBhn#-ks};7!a9o#[-W+s㠹BZ\bO1}RpߒoQ_NQlEHvIZ:tr)DsTCKa-gM- 4:QǠl}>^{&_m@^" k"CZk%L\cP^}k S(ǸG?g9Xs$d Nߵ1F]7jQ!LNQf T$BLL\$"MW߁Ⱦ1zA/(җ,CY @צC!R(PnV^nud6;ώc21Cx x@}t#gpEk|  ruBVn?8r^ThKsgOמ:nPʹ% * h !PhqB%:cU r`zLaqa9 na?>ߘ(~@o~.5[q`YfhB/\w f+r>潗8L4fBi#@0 鍉`2G*^i,F2'/sCq(;g3iy|QNqG*\`pG OK,BA,; #`@ad6ɽ͉cHid2N)!#wm;EO(l2 ?ey+-Qx-Tii4C.*11x JCx1̲gwFDNIzGb8*!JS5gcɷ96^G}/~@AS2}\bbPIRRl.,?rtt'"KJV㉸^L3ĄBi9W^نItQn]-Ž૤ѯ{d#.(606!VRSRS i)i`@ű"$6گ>M`tEҠU iZ.$SbpB4V$FFRtЀpQ2xtF!؄iL)%>Hh@ ӅQc=Ѯq!smySMa(\ThuJÞ՛ΰ-r]}AcYhÖ:,o˾ȗDZ.M+PA\ؗc~Dǣ B&"RI^>I*IL*}slAwނn+x!0#Ͱ 9ڲ 9qi5{$Ma"0FkGT*U4aIKIJ㛋 {m[Q/R)K&k6E" Ep:U5sHxlS hz3ꍩY`! 9PoU84{.]*u˼U.߶e|ricؔA*d^yQbC,%;Am;wPBܞ T, ʎ؀9*t8l9$ߘ,jQN!J`1*;_7bdY+J&|Dac/Ԯ$93z$Bx+IQgn6 R 2uRWtdƸfd}"boOieLFl4EIhU2sr}x(Bk_?dZuzt꒟Q%g1UhVʞ^3e%KUu=ti 6W%PU%Kkψ9Rr)S3i+?LtG-n"K_?HɺLE/uXڭjsrXJ{ȵ 2"'$ D=dk2؇8%"Ɋ`2E„ywvoRGKD#6Smc ֢fۋI{NR~qU_2MJ&T)} ߦrj>CO@3oIzT9*sZUP\QB&(Icq}j++v< P/d=-ćqv9I !dsYhjo _"Qv 9kEԾ~BLF;}5쀘#4?>WWG\0kh4e7lXMVAʠ Dšuh /ѧwׇJb 0yly~p\{dRP[^T:pxݍo runNnvNsemGeho+9rQ"q7 -m;EGU>SbWsQecmлD~?֛_WԯBʾ-;ܷv7 g*P1nm [v\[9mk2e.@{_z[|v9kiUЇOY꺣bˬη6ZI¬嫽~W, lI"gHdKguϵ5fb"|Sϳ){<3pO"ls?idKOq:5CM,ia"@<+>ywHp(Ñ{ |* \ku2]jxuMsM^|$!$!+=+)\?lt)88`Ws^O+l.NUxѦ-8g?-Oi&_ꡱ):~:jK=TUyVl))nJ(0J]&VmXVǯv`GrV#޳X{;e]]ETݳiz_hM*.7)=dj7{iNfg*Rib[ 2HϪ[9rr+LWHcb6Ů-3TrMaK袳Ryvb-EM1 j }kATPt-Yޛsz{(l7ڐ ltx~׉^usg.ԹQa i=q]WK-c:mPK}G}Qב:u{g~r"t&k}]>b=gȣY%G>IP. ( ! {:<7]].=(7Y?ERN?u}ڬy&eT~˖j# @W,[V֫cmL6U?;ds?廳.D[Is֊SI؟W\Q3j.Q9@Ο?xJ d°؏J/)|dپ(fY3->W2mhltTB+43cE8*.*b@kD ߦzfkBrj>:>O̡Φ57 Ú::MxeҿDM~|eN5Qʈm[*Įfӡ mf[v~9up f2\W/J̷踋\-Aɹ**YFϷ[ Hr6u\-亩>-g),?/wqM9wǦm~~=]h<-~C!k+q0GDѡ2|;s|/!qBϻGxS)pFv?Bm(ND&ˆԠD]Gc_.voͧN_aD _ ;͑/:8L:[#Wl~""^Pg OKGN?eeB*TDE L{`%{zR{ |׷P&t[>>dR{Ŧn ECSRїVu FuΠ` KF14+ip4.!#$A5"]qէ.oőy:e(Z~^c9?ͮL(@ėq5cXbwGZ lb?NE:Xzؔ}?}T>z'LGV}*l_ˇ*x,v/[Dx2ó2c8a1HKZ047W&͔nN$ ]ItrIݬBpEm/lY!bQ%]l1"<{ۛA2+_]( YE&Aڰ#e&#Nر|63_ # pq7 Xў3/(l+tp59(q<2M1 ;d5^`kY%^a7YpZ!s Gs7m\?QYk>e :W;3OwO߽o& Β΁k܎|j>p]˟!W pmP?eS}}eexW^V4Gع<7 /:4: œ_ƻba}V;,ǦϘ>slGӧO}mF̷q I9isߗ;}+~Wmn =f}A򘗘hͲSwMD0/:c7x%GE+T#q81ݗ 6/X^r˧(I+g_/4pA 3A 78l~i',i!!g|8}u>4t-CECל^x-5k_{ڷ :yW ^8cEE-,6X>{DgG|:0rE#+G6lyb䵑ߍzqԼQQuvm}y11EcǰcǮ1V5nñ?>~cܤqo9z܉o;a 1_hdҷm&Om)LM?u'-vxN_2kdqd7sL̬35dVĬYggenggp6;ges^hrVTC}|a8BL@H2F黏lA!P{L`ύHQG"o$EGGYt(6 $Z&tyQ\~!>aQa/8"<(<6"X77_&舄5@Ǹx"axd>oqPza4 )Q@v@ę=bDК[7<"}' l:^]d&WP~\">KKPG#:Ʀ1>s$[5Ϥd<`$$KPO*0c0ۚʦ_s%̮ub߸f2֣wkJWL wpB3CLÀsm6J,*G!IaKjl6@fj~z UH栮$D$S)p$o*tmRŸQT x47=3%$#);e;PĘ.fO$vϤP4veOT]Lj0wT'M2bsՂ#Zo9-}[Io0ٯKϤieVJ>!l4Sp>KJy4{6|38e~8dH쮨8kBlaH PIstd/*tm{Op̵+mwϬ=Sxfșt5Dr~}*5,>ELUqivǏ}Nr. tY*C646<4_CnR7s)~",1݌c=O}y!RVA 2iafRȄ 0-AJ'x-lc SޡhbW  LI!1H\jeYL5@E& CԍJ6Cѳ0CF]d[U;n K:F/P&ě6D}1~vͅA~Mcuז+Om`v]njg_~0-@d"tYd7z5LFUp:ݲ.2PeC64ѬěD~[1x+7IY~&rƢ]M,T[p>2{p`Q# y 9L|;,0…x=܀=0&H ۹ h*60}zvEӃ8pY@|`=z@UDbQeeq1dimy=FGJRJJh蹓H耯I\G`͹G(! T&%⤉\T Wk_~T)\sB(IAHRi_7i˳Du?ɐCu-6k1&~u cGH- gbdr)u1Ãk\/u}yR.8/)W7'(7XJyjy 9O7FKqSS4 +`3J***5ZNq ^sP Q\;&eL/Er|X*<`.9nó8ygps[@=IW'nv\?ZM4&IQ8F᫉I*"=rIsDYRV'r%W4SzҘ4}!CcD?uz4 gB|c%];} PVyV `1d6Ck4^B> 2U@R঍xIiTQ|/m#c{o x`rq0Ճ곂8Z! 2Okxo8c ?(O(Ԕr9 dY%Q'.Tu__u+x}D"R#01/iBxd ďl]JN6rѾ',O~Y)QXDL) *}VbO֜Q,FOJ o 5xz5Z*V0<HiH-D`)R>~G ]n2Wl#&M4z#C"o&/- /0`q,*⊢HpFX 9*+G5E+&(;djB,K G}4oZr̜AvZ\G275#%A~Q2D%Ʈ+xxDEGT <KUDGIwd.1ϜBi2omkl*+dT0\Cu7ܡtFGDWVTGEyd3Dd+D&x#& xGG dYBfA Ax8&eZ]LqRsGQn?]Z(*G X!04('$w  o_Yw+>Xew؎͛voqu…焼>>&1M oA6lBU2b3IXҏA}@gv/飜h3;n,hW&'`0KLb$Rt+k+֘2Y*bcBĥg戤TM!Ler^4JJ4j MZkM>)4ΔgT4Op%BT@kdA4h$8-)l@m x:W $Y #ܸ\WU[yɊmp)#9 {buj~9Ol" o e;`pI3|8>H  -L3hp.Δ_NLy:*9p eVgNF`MoH_H!ϒ'+N1^e.QX~Eh ~5ow;RI Vmk`7Ed(]bJ8- i%@súFl= JFpiH: w|8PcxGd9A^K_SP/,|}fҟ;zõhqjpIZ GQY{4T ^e n?1W95E_MPOK !A>;j<-A;(v˫t1Q͕n );>1P4V]+puī50grITD$Px-!/1<3B$8m]Q&!^KV!x}:> 郚ώl>{U#X3'Xac)\, 4kɽf+ȗ&&udpPSϤ 4 +ϝ|jt5T&%A"E nWYPPODj"1 uE=onS>JTXV¶ǯ\t&{b[𾕰|+SϠ[B #W[8{Q7jԌǾ4<\rZO:̫LiĨPr7$\fX1oB(~h=?⁏.|*+;['{d(K+r ԔׇpLZʌ7oV*JZj Fҧ$*jJ"#b7ǟPgUT_]bԗ%L %WyZYb(ҪА¨AeIY%֯, PYYi>*ehr W5*N @BχKT]JU4q2D+U,s#զ}]  :=,<&rN׫wO1xQkdjS(ۨR\DC" >`DMܾhǹق0Ș# h RI d.s5V<OoPOɋXŽS)3L鹒oLXV:Uڕm9x[[qte䅈 BD^ _ÍƎQt&w ]%9zU y, irsJLh+xFz;!24&TH]Žk4A.tFY "Z8g6HEPi9\c*PU6/hml!x6*l:_Ϩ\u~~a^T C^^f% 3h{jTjn0~7/,:"1"955% (n8Aϓ4.2@ah$ZȃMm4+BRbW; g1ȞĤm Ktٕn!EYWa''X%`@sq0=72 Q0͊@YUM4fWr0lNR8$uG2r`Gk:U>qGONHI4r^ Kэt>ڸAdQ>qd#䙿@1e0(ܾN-#}!̇,. ali/oxd S1cj[QGNKXڑllW n{V0e䘸Bc4L-Wj4j궄O"01#=>)+)!^7e]ܙG2SGxp@-ޮҝe1*02YJ!H^nGo!l Siv-۩,?EXWxp5鼴/y}dldu]H\ZJZT]7e5NΟ*op5X̱?X60@#Ciz%]=G#Z6[gڥs K!hd=3k3hbif ʴr4>0x5\NQ(Qsts "6:% a@`5OT;g ʨͬ:T! GE4@]tX__ 4KΊAmCPz `j2k]@OǃH֚o}|O/dZ]@SL<O[wf IT-!udv~V7I6x %GxQw@UjUz%z+Ώ'o I{客z_"8˔4:w ё~!3T4nVT'p,tv)Nƒ`gDhvEH }pL=! 5kۿm\}%L1.-/;ES&½3Xv8wrb;H?[g!) j1Loo'EuoWO@Fdؔ]AԨ "0 Ɵlqze4:=200ѶB\fScԨ {1}|C{o[U=3 7K1%RxOXa`ܿ:ȭVyhmyͽQ'$T\Uܺ*n΢5gNÜxMO?2 wnEr]e\Բn$khol[|~uYǮ/}z]TwsUŽs=Y?]7fيqTFمW6[:1ml_NS.gr߹'7zw\K8{2c/sƴr};|1Mzi-}ҟX.+UgݦFɳ{W를ߊ+n%^0G/qcKq6ƶ_I]rFƄn\:ӝM-.roh?[vgs_W'm~9So5_Ys/ֳ|jm9-?u3on3O(kitiwjhg wΝ+;&IGTry- q'wҌ#09CŸGEms}͞;^6Y?ٽr*O>PwW%= :MNjUwW/KY-=7ck\>tss? ܵ][\~wͪ+pyז~׷&g^Niy}jwښi]/u:ۺv{#ZRumqn$}a_]e~f~z/dn<.k[iǪ#xfEn?wCa|[|fڢlC!AV?\Ss窟eɏLzۍs/<|7[ط쪒+f얛'݇_ڜZ-OBZ$w[}sOݺePEFe nwǎ|sZey弖-!z[sG"/c__ YsuG\zC_ܛ{Z<~0Xp}7j{˗ynw|2mqFio?v?s׎w繹n庘2*ljKxqцiY?uy^rD7/)Y)-]_T\QTTָ^7od;7w>;痏:7c?:w\Oyd 6+^j/iW>ʕK*`ܵYO\Ue,(m*t}%n^nLUoYvN!ywoc<]sx\7;Ԓʈ葌%7J%ч^Fts][T6z.w'n*W;n_t-etr>%Kg2|Xv4'GK_K,FWĪuI319V|wO~VGkʯnuZǮ[j_u#-O,ipg9LO[ry-i~7/ܙ~$ޕ{e`On 㶣c~1K>t7<=r-U[h^޾}?Gip#fJֻe=+-w7jTp7&_w=?Par?Ok繷v׾E_S[7;C{uLl57N}Idu Me7ϻ~YE0ٝceՏtto*u?f3}]ЯwEc//r2Mz]+ \Y^]-o@?mpU{(1lux+.licY Z?n=?>*+']Wdά-,wlvW<2=x-uN1;]$~>W-#ZNht/xCSs5wY;}<گ2_K*oj5\m]3[s3l(/hsG厖O~6蒑9u۳Go շ/potUu|Y̥7Z6k-Z_cMfێCԠ5䖎/ZwzGpk|yf\{θ2ϙY?ꉷ\}l5]guS_iowyf8E93ISYCyߑN;R?I 3.[l 2 tR^!J)˦JyYsZ.tv.hЫc߮;m[tO}˿ȷյ\{]kmoݟ,-V2l;m97|9Esɯ]kv^ka.,-yƶ% hy/S=[܍K6Lht{PR^xVo[u9'㣦kJᄍoY(Z 5w_;jy}f\iE5=XbΚ|sTj4j}{}r"+f8mg ī&9?8>m=t~Ro'ڳs5:D9P)Wgm{"Þ*^8W9׼fҿgwwV]׳][kTH;k33>g;tzhw߱yu~:ݸظNǮjgvu?mj|77[o>k~9ruO;Wtv9=~QT-vLݑO|9guM|wړK_iHcijqVر;)v ͏q~V%~֧wP'L;oiGmcU}ԗVzr껌kxOǩ:nm~ti/P@d3K޿|'ޕqѱ|cG5uQu'}K?GoկĿ~o[ݟ6\^GĜVx^=%Mgnܧj:mS-jmi[Umߵ=q)GD[#sd˾^a}vӴ}MώB[T+۪Ϯ|A;8o:zvK{XbwsʹW.V2>ږ'1jy=h~^ỉt[cZ=v?ijRҡ*}o?ʤurz-y?ԯ<wtViT>j%N&uuz^HդnԾm1|}VN۴+Ӷs\?z{9՟4g<֦-SmL*PWmc>2{/<ǴHӒ:Bﯷc^|ʔ~{\ױk&VN8voT]e:^VE"UGvީO-qڥ;|4GwtKo64~:_wO_jYY܋Dzڟxq#t镶V6kNݓ{3rdgjQH?ԝμKs:; vrMs-?KޓGRMKmTsG43^Zt39cr=>s3ї=s::ܬmzzD>[{Ij|V:#ѧk ?{cm'@g4EzVXtOHg#||~l>>X_Ki+-o+Z=6ߡ#]O;~o?𝟚Msh.\3?Rgm߱y/sJVjߩϝ}_l't;mѧk;mcJ򝈶{s>q6;6oڵ++'yg*j;bJmK:=,j7gbkuP;8ݎݠ1:7T7Amk{SSۻ>?[ߣw*U^߼aMg_\|r˩uPmg/h-;kwбwIoo]<9?IN}iһBC՟#\9sM#=s\ 'kZk˖Wmj+UT۫~?1ӿHxڥLrs ƾG6w["["6ƕv=w'uw +^7>h[(gmrst;S` {IMa"5T}{=m}:UƴU}Gv7{w}s{khǞyvzᙻgN7ϯG SCڎߢُSJ6r^r[qڞs:?Li+W#sS^G^>cf{YO8x`pLK({G 8Nl>uګ}kJsgԋbԳbŎ*CGN1vg%zFIjQG$vJQ4R Oժլgbxm'X{R- eg!vR:kxf}jncsGWNc ꛕ?!xbTs"g}l+J9?{O|b;C3I, N}&sQ*H}(L/LiqFcI}"K'NB^LN?=CӨy.v.i"X K)_aџJzNqJ&S4%~9_~}s|M췰~]=Y=vy|"T뛧p3xY{&HeguW=S8j*KfJПgumڧVbGyO ੰ gXlySx>i¾{4/2[sBՌS:LS8BsHOϷ!뫞(]SH`-zr8vɞYp.{evlmgp 0?/$%NgmZ 'XfĞRfQ~ٸAx64[.Vl{^Ti9ȟϊSYH篊Sog~}kO  Q2wϬ~f_q/ḵq\Be=qZ=Co0C0 #p}4_Y${Nf*լ8jLX)JNÞ= .eVRJiAx6`:lGZmc8K  \.יwu.گs1{LYF <cLW{b驧l м7q pޕQ/P `5p% [V(oa$J> w39|}1jS5Xufng t3/yzO_`m=|hs|h'RZ {: R~| bj.'~kEf6/a ^[6O6jW]vw={a}*vo>}a=4AبQCbgz\x2o8^$t9zVb'S<9N{0vFH3#BJ6x&W=Ssg{fbςs9j>cc߂}+mbmݴ[ i}p?<C4[.֊+{^TiMz3^zQwc=ls)yc_m@ef={Ef>>Az>\lht7PwAM8H?RSR~``Fr ҽ̧X`1\@*jXkԟ՚c^7m=܂mQN~&Zi~{'.8gs_=p/| O߂uY>^>ev[v{[tW2 8(v^zuWVM: =طvɷḻY8Qr>셔\LTtԳٟ[=~f_bn>az ;i^t VحۘB|=;N3bgEwILu4;vؽO>7vc} lFfmWSwIYlx.<^ ؽt]tgt~%)Aaɞ&Ө;ם8 ۍX)JNÞ= .eVR:)ĸAx6`:lGZmc8qvb=bTLZ-LR7Ͷ~ 0YI Uհ•z9ꯃp L݂mԜi~{'.|{gv[TR=zBez4KjY󃕙auogٔch~0cШ뫒tٟ`}W؇SfK5NnS-l; O6h۱aOx p áP~]_Ć~x:z:q82#4'2?=T4Nl0TwO;*BXa)urXcԼ+a5i5p3l[`# cq:S|+p _{o;FCut2v{hn*}c2C|kv_~`> {؃헓[~Ƒ8V.hJNLWaO_R< Rf\L`ߊZXS2~ [W0e1zal X^œ^|{)N3bx1+vv7={b34>7vc} lƑƚCba}S2t4{8Y#>\b}>#úqUv<0'C8Ygbe0C0 #p8i;nV{%()8LnGMÞ= .إk~}p?<CQ1 Vp&qbRq}jxRjEދb/.[sb=QdƑ휑:,sÝ82Q0FZ%K%۹c'IJ݃5ZGŜ46c$00*[6V `!,Űm%] Wч:ޮ@ޝg&I ?OSg~_ϯso``~?Og\5*7ley{@h;zN I]O=4js֓m>=FQh;S]/ͽ bj1"iX锹235,xF82MF?o43~2<F2cL`SD$ho+ٚ{VyO %wlJyM$wl>y#[si{/={,8NpHSl/%qx޼t.O̚-x#600*l${N'{a+v-P 'X=v4سMYdԕ]#>!xبkdL鰕8L~hoMI b=UgֈtgUt34Bi uG|f_4[cfLIE 5|:goaQC4L3j֌dl;cghņi2v]a7"m$5yFg*ɫgta70T3|{5ɷ |#K&Fbu]#}p?<CQ5t 2eAsTs`>Oh;f4XͣXxQsF~;bԓI-bmNhk-}F1*ں;qũ gIp7i/Ĺz2c5``FZ1a,EJz3?k:n m%ӷ8}K$7)>_97~ mw~?'SƎj1͇;Ǝ 1f۹xFR(;_ƎsQ4v7Ǝ};o3v~Rf>-џ%o=ѱ;F;fx;4[6v}5vcƎTcnD;>Oh;f4vsXxQc ,= =Keq梳4"h8KhOAgIvT.)_ a,PDZ p;5ĩ!gsm%f[y)QVB*N)yGjD?5``FraՐ `!,ŰVғ[Gғup=(M]_[Nu>/ob6;bGGhwRjrݣGp=zܣGp!]YQv.ҕB3<L>hQ44طja c΂7П\̇ѺݑGh>QI)V|b>!xبĘa+Ʈ܋GHjQW?5J>OT7fg4o:gKizV?[#ژ0jFh8^$Ի_ũGqiN o=ٶGbow ‹T(m:J=JÄQoOh8^$^\8^:{8ƙ,QīE C/elq4 /2RjNhj ^/uis:+^9V؎®5uV먿{ \K+znZ܂mwO]p7u_{^5?Os{LkR'O<'an^\{7X<7y|.RkEc\"s۟l_L5lcWʛi{;D$x7zÞ@8CtF=͍K5s =?*jXkJʯ:X6­p> wݔ ͟&Îs=;K(9^emI fƞcKy԰.ۛaQ]uݵ_ -+20m-]wc[va'fYƞ@8Cŋ4s0aԜi5gGñ"fw5Cek>Xٟ=l=KdH;Il89^d?i%^8>qe*a5t,+jꩃp L p l[ᣴ>;I +p _o·FOi <'amzp Q0{U왍=zp!.[zڧ?sl_L5lc-z3a[va'lf'<}a8PmςgsyRg.Rޣ/=R@/Rޤ.MRޤ.M2=9qOq:x긌x긌x\cg8QO)$s9O2΃b&S*1eU_j85NҸN5D:Am},`_w jq ZTy=ը5'PM%_QXxQ}xߙ?ml3fZ~ofRl&2Ld3 ]+U۱~>_4zj^ᵫ;Z͞N3|8Uyx2̂i4;j"j5Ki:{fcތy\ȷ[қ|+ifl_L7f\JojKz3`G v'sNS2;Mev4i*TfNS2;HcvrPZ _~r4+iHi9 /|{˛m.<@[!xɄma{hy3r40 ڝ4GJ2Rjlt̀c{NfG- v_or4ҌK)f گ79zï79zï79zï79z}0k#(GJ3ް/Ap0*^wV#^ᤉi=z=z499M|O9pc#98MT9sx עiR_AJXa +2MʴVsTkfm[`# .'.4> /|{˛m.<a:Lc{x#eOYp^QL,eRa"eڞ9u=DZ BKL~ [W0e2^[6Vil #;C4)ް/Ap0w;{qXQzB(600kÉQ>ɞ&Ө7VլwUs 'رJNÞ= .eV2'3Ax6za+h^q>~o~'>~'>~'>~'>~'>~;>~'>~'>~'>~'>~'~밟>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'>~'O>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAD!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!BaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%j.9TsɡK\rC5P%j.9TsɡK\rC5P%j.9TsɡK\rC5P%j.9TsɡK\rC5P%j.9TsɡK\rC5P%j.9TsɡK\rC5P%j.9TsɡK\rC5yP#j9TȡG:J(QQr4E)JtMQr4E%GSMQr4E%GS>9єO|r4哣)Mh'GS>9єO|r4哣)Mh'GS>9єO|r4哣)Mh'GS>9єO|r4哣)Mh'GS>9єO|r4哣)Mh'GS>9єO|r4哣oQ7 F(xoQ7 F(xoQ7 F(xoQ7 F(xoQ7 F(xoQ7 F!(xoBQ7 F!(xoBQ7 F!(xoBQ7 F!(xoBQ7 F!(xoBQ7 F!(xo"Q7F(Exo"Q7F(Exo"Q7F(Exo"Q7F(Exo"Q7F(Exo"Q7F(xobQ7F1(xobQ7F1(xobQ7F1(xobQ7F1(xobQ7F1(xobQ7JF [p%o [p%c XBKy =/%ޖz[BoKm -%ޖR2` d(%F)0JɀQJR2` d(%F)0JɀQJR2` d(%F)0JɀQJR2` d(%F)0JɀQJR2` d(%F)0JɀQJR2` d(e ?2PC~(e ?2PC~(e ?2PC~(e ?2PC~(e ?2PC~(e ?rPC9~(?rPC9~(?rPC9~(?rPC9~(?rPC9~(?rPC9~?T P*C~?T P*C~?T P*C~?T P*C~?T P*C~?Tq1cĕLj+W#4Ї@C}h >4Ї@C}h >4Ї@Ї-a }BЇ-a }BЇ-a }BЇ-a }BЇ-a }BЇ->4҇FHC#}h>4҇FHC#}h>4҇FHC#}J҇a+}J҇a+}J҇a+}J҇a+}J҇a+}J҇G8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA8qqĉ;w' NA%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%PZ%YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IV$YْdeK-IVoo|;xvƷ7oo|;xvƷ751_M&W㫉jb|51_M&W㫉jb|51_M&WptQVyC4ciPy BcQ,+˞:L&m?Ucy'#t䓎|ґO9)G>ȧ#rS|ڑO;iG>ȧ#v3|Ƒ8G>g#;d\6 0hpw# ̍یƕ![#<KCF<{6yKsn x[?O8S3E%eUu1.~?#G>y.EW}u #FyPp^!}ƿ>@di_g2p^/oW\:oqZ䚷S?lp4=p2פ x]ޘ>?A!at;\I)iɀ_p/ ~~~5y oof{^}f#w?hc9yb.%x brn툱o[WYžm3~}[bx ^_W&WŽn"m x_ Zw88ط-v#},bٸo[_cb߶]ggm/q0>81m1c2}+0 p8~ط-ƾm_m\45Ư5~G/23x KeY2ˍ ^ .:߀7J{o5-=~@X/:߀M8 1EPb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1Pb$# H(FB1b)nb)nb)nb)nbb{(b{(b{(b{(b;(2}1ӓߔ xUo~ێ 0hs}ҁ?I,c?ɀ%xc<7c xqٸj#cƀsRء19p7W$^I#|Wjt+mic'N/4^阦g}ҎNo7D4Ƞ"VdЊ ZA+2hEȠ"VdЊ ZA+2hEȠ"VdЊ ZA+2hEȠ"VdЊ ZA+2hEȠ"VdЊ ZA+2hEȠ"VdЊ"{^+׊"{^+׊"{^+׊"{^+׊"{^+׊"{Ȑ"CVdȊ Y!+2dEȐ"CVdȊ Y!+2dEȐ"CVdȊ Y!+2dEȐ"CVdȊ Y!+2dEȐ"CVdȊ Y!+2dEȐ"CVdȊ Y}VdgEY}VdgEY}VdgEY}VdgEY}VdgEY}Vd]C~+<۬ɤq)oL=y x]7[2Vxg}~~ ~~k~-;9W+~~ ~~~~} ߁߅>#|y]p >:'cp[p;bx pLxC3o u60j|ƗO_jp^@oY χWǕ^tXk>൑Ɂ#o7 k'|͉xgd)(O?w}+UG\oVӎ3   }k"L#剘 ||yIP{>Jx.8G8?xƗ{ g߉xcκ͸l\M:?眆<K]īUx>o0و/~~~~~~~~~~~~~~~~~~~~~~~~읇wy07a co{07a co{07a co{07a co{07a co{07a co{;{c|읏7`o{#F7`o{#F7`o{#F7`o{#F7`o{#F7`o{#Fw.ػ{`@xAs <_ X OA/gN:ouQ78H7^}ӿ vޘ~# x5/m6ܶ|~~~~~4=cf w$4 k9~9|ݜlۜ~-ཎ<?417\0~x'Kyͷ^704261~¬O3Yxڪ*~kt6q<7~,W 0augTkIqS5j|y̧/\!<`g !#w=1rtσ}I&Zu;Zu{YuXuWyu;W/[rM8_g6oݗ8 cyW&=EYoWW^9ۮs7.sgx > O}U[Ȍ8 G[8'03^3`& ~ mnsv=c8 p.Uƛ[;O)4|>1<݅+Cax8 G"91gx7 X lệ0b/|{C}q_+O}p1Ӱfn 8c>M3iǙ 細F!z9؃gY|)bވp|y\"9MsZE(sZQ8eU+Z6A_C3KO# WWC^~̀_w7 w;;߅A8ÇO< +\]6܁g,|qp/;?x>|펹)9gr?O ɝq>~:xuK?|~G|0~GL` <^- #,uAOBZzx^/o"Dڏ"Dp8"_~\TdI+o+J&*"a`& ~ ?"tݱ ]s.%5txxxxx w|>A#WEG#@^wCx}ȵ+no"2 j+n欯ooo;ƕq79x_?G\$| Spwـ[pKn}unχ۝uSq7!|o.q7w:.xعG`_?!aӈq7 ǫݐ+0 8rW kEbx  ]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]-]}cL{'/[mW9*^ܫ{srUνʹW9*^ܫ{svνڹW;j^ܫ{ssuνι9:^{ss o6 0hط?`8bVیƕo9؃gY|)b x<A5|2// WsaqWËx)|sks>5 o{.<x594v~{| w$4 -;99||λqG.?dh%㇍]_ٮƛ[;q8js>`BŹ=q8'e|+ⷎ{,_o:9oqֻjʑ#̚O5qwխq#`18'{"^?9P=?kj|uo38}I]o '|W'|+'qO8{ 1 ?ps޺+]{>׌vp·ҋn+t[9!VrHC:a+tO9o!}SrHCz+^)J9W!RrHCz+L=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=ԣL=vq;zN=nS۩vq;zN=nS۩ԣ"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*uC~!_wȯ;uC~!_wȯ;NC;NC;NC;NC;NC;NC;NC;NC;NCr.w]r.w]r.w]r.w]r?{'|{Wމ} 9}|#9}|#s>sKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKChohohoKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCNdKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCaKCKCKCKCKCKCKCKCKCKCKCKCKCKCKC[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[X[ؽsg.Gӥ{y>o|7bpLğ  7xz_> 5~4s8$vh/y;< o?%+xS3ÿ? 嬻=_>x?9LO$U|6h}#q+ ^Ga5\p%iSJrGa1atYp)x?9>  9 \s2bNFɈ91'#dĜs2bNFɈ91'#dĜs2bNFɈ91'#dĜs2bNFɈ91'#dĜs2bNFɈ91'#dĜs2bNFɈ91'#dĜs2bNFɈ91'#dĜs2bNFɈ91'#dĜs2bNFɈ91'#d@ܙ+\eGW x*ω <V95OJ}p)f9Ǐ,<[ U>V9~WxXYwa'3>9]%a#&0p߰ ||'x# ex;#~KW0Fqp\$ Eqp\$ C$ij6 >?8Lp!)_q]EqQq\Tw_tN.ɥXɵD'BT<0\'G|ƷvO~0?7JrbYwa_g|rEO8'ZOZ{ww?7›Ïÿ ~2+cO  ,߃߇ IKTİj^a"}7.> .{4jP˲o.˾eLci2]4v.eٷLci2]aEi2]4v.eLci2]4v.e,eֲZY2kYf-ˬeLci2]4v.eLci2]4v.e,Ѳ OGq82`ӏ4F8`ំQ? 1ft#\!'?7ϟ {>yYǿ_IHOOC$OB$D< okxcsq/_O:S3ÿ? 6/{^x0aO_§u +0OcpMxiXO+9k"|'i}t\y\*дlOҶe#{upbݶ9p4{l6d7s8O!&LҒg{{fZv;qh4j!Le: Y% )(?sϭw|~?[plp:F ۡÑ!z/OߤGX4V#}>K<}-?/ҟџӗ[t^+*]" wu+ՑLU_FKAEDt}>_p/ |}>_p/ |}>_p/ |}>_p/ |}>_p/ |}>_p/ |}ߍfhX 3Kа6 fFsJ0ĶGk#ZoAwQiлkAig'ѷߧ]]^g~>`C?L+zԞ| g{Lc>}7eIW+=_vWl_8ky.~.ыsFkXKbлBW[Bg.4'A?ocx'CZB-7O:j:=G_%z)'BwWw:7[_ u=NO΄O=0GymҵpԮpoD+Բ+\. F=BFOٓ(hZ{/:+tf&1ygCvŎ~Iu싾9Eg|gֵstE_k[t-gzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwwzwޙG}dMUBWi_b˱4t௃ zGHO? i{yнWZQn {GW|Q@3蛳e#~9ۯo ^t7l/پKߌLr\͑n ^ _;tЍh=af#t#ξz!h$CWA^ zJЮ;BOl?L+=njO}ֈm?g:kyZ 0E_v W/3n{Xo^}ѧliW*]A[ dFɐcp-}"M UG>d1ғ):cϬstEgX2]4 v:tw;uv4 i4|g [ z3DW~+3\yt3'aOg>Gym^ˮgҵp6k6k6k6k6k6k6k6k6k6k6k65YôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYôYz54 Ӷ +t&GOOYG#vHyF#ewtm3Lκ9zۿK]v%+tAs{܃4=hAs{܃4=hAs{܃4=hAs{܃4=hAs{܃4=hAq.'lJ'p Vnѧ_U xO ˠ'\ }WAτ9垐tΟ_ w 癢3>u swV*3s ߌ}&$\]?*zGHτ;\gBEѧ>MEggW?mЮHn =ч#QѾ@a5Ⱦp=Š'R{u_F3ѾH?<y>L| g}}}e? =z^t y3j_v9ۯ>gUۯ9ۼ/:h4싞X:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;tsA?Q ݷI \Oçp'CdB/ht''}^ zt4<3Eg|:k9zۿlJעB-K{!eH /dʌ ~>@GW|QǜiG>G_t*c_m/:l_%, J[VAiUP*(m J[VAiUP9sΙsΜs399g9sΙsΜs3==~mQ{"HDb'=~ ݲb'=~O${"_Db'=~O$KHDb'~O${"HDb'=8====================hqЪUA pЪUAV:Zu8hqЪUAUAV:Zu8hqЪUAV:Zu8hqЪ?C?C?C?C?C?C?C?Cs!6>@OŠzU=s.cۡb;@AG=tԃzQ:AGA+֠WbRhΥQʣ0}Ğ8Q{ͧ9__k>}=oF!V*zXEa=UVc>vt=_K?bGQ1#Fy(.xZqkǥ̏[3?nDH;\ah{/VOx?zA|>@GW|Qǜiτ!I"=eϋ>}__8kE|>dͰ3A gfG"g=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#zo[z'C? zOPi/OJO3pzoW[ F}>L_Gmsm?VOz#}X?E_6+U yͱ^t7l/پKߴ-ۡQVCўiڏڏڏڏڏڏڏڏڏڏڏڏڏڏڏڏڏڏ)?ڟRSj?fUp̪U1cVǬ Y*8fUp̪U1cVǬ Y*8fUp̪U1cVǬ Y*8fUp̪U1cVǬ Y*xlif&OM6L|A=f}| L4k{وs_}_s,ы\,g}~3Ƴo;Ku.ץt\q]:Ku.ץt\q]:Ku.ץt\q]:Ku.ץt\q]:Ku.ץt\q]:Ku.ץt9]zNӥt>O>O>Ofdȓ!Ofdț!oF|0}ĞGm?;ǜigs_}_EG-ы\ /+)~=F/yjRhC?LQۏF/{_м5yk1}Ms5yϦM彯c޳3,]_2Ec|m۳_=g3JjY`{l_2oߦMQW2hwFAwӏO;Q2]Qѿq>ˠ߸ ^WE(yvίG2vo\XtTo\j6=AAiѿqt/߸ [ߎo2hu]bA_c;ѿqSў߸EOǰAS4CsFe_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W U_*W Uzwzwzwzw_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"_E*WU"]zw]zw]zw]zw_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU_%*WJU=z=z=z=z_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2_e*WU2}z}z}z}z_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U_W*U U>>>>_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*U_UWU*UC>C>C>C>_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_5WjU_uWU:_uWU:#5\+hWͶ vWPu௠_A 4+} k>3,]_2Ec|m۳_=g3JjY`{l_#-۴)j䯠Ͷ][䯠'ΨU+h}U+h*=WG/GW]cs~=_A?+VMН_A+;-W={g"MNNEۑெM %:F߉+觢=~=ڎ4E34)+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb+_1Wb5W5W5W5W5W5W5W5W+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8+_qW8]_u=]_u=]_u=]_u=%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW%+_ JW_7 u_7 u_7 u_7 u}$o {>r]s< t,@?|'p-f%=_(h" \k(7FhrQn4ʍF(7FhrQn4ʍF(7&drQn2MF(7&drQn2MF(7eQ6eQ6eQ6eQ6eQ6eQ6eQ6eQ6eQn6F(7flrQn6F(7flrQn6JQhF4(Fi4JQhF4(Fi4JQn1-F(b[rQn1-F(b[rQn1ʭF(Vj[rQn5ʭF(Vj[rQn5ʭF0˔~bw" l|5l7?͏G}Qu A90sSˠ{c'q=t*0z8=;L i}ѱ|s GߌhhVh"mh&l!#Ml }]M0^A?:{a~t,PW~ n=_L4E34iҰlEd+"[يVD"lEd+"[يVD"lEd+"[يVD"lEd+"[يVD"lEd+"[يVD"lEd+"[ن6D! mlCd"ن6D! mlCd"ن6D! mlC &DiB &DiB &DiB &DiB &DiB &DiB &DiB &DiB &DiB &DiB &DiB            fDiFfDiFfDiFfDiFfDiFfDiFfDiFfDiFfDiFfDiFfDiFfD#lGd;"َvD#lGd;"َvD#lGd;"iADZiADZiADZiADZiADZiADZiADZiADZiADZiADZiADZiAd";فDv @d";فDv @d";فDv Dd'";ىNDv"Dd'";ىNDv"Dd'";ىNDv"Dd'";ىNDv"Dd'";ىNDv"Dd'";ى܎܎܎܎܎܎܎܎܎܎܎H+""ҊH+""ҊH+""ҊH+""ҊH+""ҊH+""ҊH+""ҊH+""ҊH+""ҊH+""ҊH+""ҊH+"م.Dv! ]Bd"م.Dv! ]Bd"م.Dv! ]uMC t~PR@%?ߠ?<gNE) -Vz_t(:s ?|+FaO`ihVh" "8MTņvh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍vh׍u#aƃv}!waA?Z>~>hK}.hfuwؾ+{uatݾOEo}W!C?w%ŸzN3R?Eז79}JY`{l_}ňW5N;MetMEQ7k16E=LfGT˦TTEB6oOOt zkU(Wѧ;-A]F;_ѿon0.- Z>4F4A?jhĆҏE#6^t [m7fnlI[nq .m~*LZ߾.zf~%G4zbd=/bЃ!;? ߃Wt5=Y n&4;Y:Gᜯ/?V}^eUh"tctM7wl(=vuTu™7GWhϿj=}~٧w?]a;}Gߧi=҆M^Oop#n7Fz ^t% mt;AoH'o'i4S'jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jR&jJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjZjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjFfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjVfjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjN~֯+?wr><-g7>t1tﳛ.՗i.^ҒoGTlHkԣئh;@oa=H{}~&=BEߦǢgq!/п#E3s}LBRjF\FHnN:īN:īN:īN:īN:īN:īN:īN:īN:īN:īN:īN:īN:īN:īN:īN:īN:īN:ī .« .« .« .« .« .« .« .« .« .« .« .« .« .« .« .« .« .«nƫnƫnƫnƫnƫnƫnƫnƫnƫnƫnƫnƫnƫnƫnƫnƫnƫnƫzzzzzzzzzzzzzzzzzz^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū^zū>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë>ë~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~ǫ~WM:_0/Aˠ6mXӰ)G=娧rSzQO9)G}QqwG}QqwG}Quw]G}Quw]G}Qu=G}Qs=G}Qs}G}Qw}G}Qw}GY8\?9m/炾I GY7KKmWlעpo7ھ!:[{ÞpFz>z?}~ߢOo o)}Dߢ* wc+*]ZԓЫlЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫAԫA:W'^ЫzuBN :W'^ЫzuBN :W'^ЫzuBN :W'^ЫzuBN :W'^ЫzuBN :W'^ЫzuBN :W'j=j5GGѣQs9z=j5GGѣQs9z=j5GGѣQs9z=j5GGѣQs9z=j5GGѣQs9z=j5GGѣQs9z=j5GGѣQs9z=j5GGѣQs9z=j5GGѣQs9z 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1+W<^yx+W<^yx+W<^yx+W<^yx+W<^yx+W<^yx+W<^yx+W<^yx+W<^yxkqkqkqkqkqkqkqkqkqkqkqkqkqkqkqkqkqkqk &k &k &k &k &k &k &k &k &k &k &k &k &k &k &k &k &k &kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&kI&k )k )k )k )k )k )k )k )k )k )k )k )k )k )k )k )k )k )kikikikikikikikikikikikikikikikikikik 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5Zk 5ZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZkuZk 6k 6k 6k 6k 6k 6k 6k 6k 6k 6k 6k 6k 6k 6k 6k 6k 6k 67=:ha=h5|Bs|JC5|ç/4|>as|ça;|ÆZt&9z>i љ3 gAp49AFgidЗ=g\7[ՠ_=Ғe۵h;z ٢A!z/OߤGGy[:BJ_??/ѷAWUJѵ'ڢW[j^mѫ-zEڢW[j^mѫ-zEڢW[j^mѫ-zEڢW[j^mѫ-zEڢW[j^mѫ-zEڢW[j^mѫ-zEڢWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWzըWݿݿݿݿ=G_CAYO_UǢ7}A׃n*9*-J!ۯkxy/rA=O1 8tLЩH75EgLμ蛛}ѱ|s GߌhhVh"mh&l I٠-T |N! ג>O y|g {U0F Gh7`c&Zl;:l 9I\Gj:qyN! גCAEzhQ5vX[xj.IfUV7'O'Sd/g1R9zmd{CDbb?媏H#+CB>j"{<_CŬSEsY{Q/dP~jfOAl(:_4<R^y4*iE!#͔YLmHsMn=:ڬu`LAyV?!`O7RFT2N&HI1RY ÿ@ w!A| u7s/a~vtT?7GS8 sbCVʤNti.0 ;\]e{KlyJKidRiNe,=C\IYz:Ud,=ҿ?ek;NB3)veBgְW_v4˓eTS̆:6giH9L381):){vԷ1_+./:m؉dt п y#r'Aތ:-wA]qH3vۯJRL.HnB[퇒ad YK'G#Iבd9l$ǐMu>*+ute.Շu҃sv]ő6.g!%qAB"5uHcundNt|G.P;Y1ϭJU0rc( r_,R~4k$ѳ/ct-e!V#?9dRC$<ܫalܗhX ϋ)^y[9G>/o||_ߋnխ$d]_mt})@=U)a1sFY {M"+NY*Iyz##Yʓ1=ǻW_;Kҷu=u}Ø/{m8Zw'ۻcx;m@j4mf$Y4 KY,齿ߒVvϧ-gpڛT48;?< ys r{9I:KҙzމY,|ihP9Eϓ<'𱟧<g{'/>LcHz(X({ƍ2KLJxe;O yzt^]7d/Ul閥Lڦs]xɹxLo/Hce1|~))P2];Vl>G"wT^ Ч4ا#rg~BMnvoܝw›w\ߏK`Y+e9R C`7/dHB z oc*vyoBy$UǪ_~ c}~ZVkxփrܻ }N(E[aV {>Kg~fNmQ\ާAoL>Y}m7}Q7²I7Y7Sn^PK^N}'e$!EPUB/fonts/Tempestiva-Regular.otfwxU7;N@Iv-m$(.&Yd bŊ(Q^h 4$"[{?^3-wsgOR`,Yy?ߺ)u)A Wo{kʪ-W.WX-C}VY-~U$_ ʬqVo>UEqbH q?'xiKj߾3;b;}el,@G;!N~g˸2e$Jads kEڿn*` ^dQb ;KyrNIFt7~ƍߒz(Rql_#tYdeR.K( a[eL]ku)[]@ˁsor(t1_,"pB%*u_)eJ.{!DUhe$ޯ˾Me?& e$-%A$dATU?ea˪L>TJtYAYC.{#8q. .e]Ex.le$D%@3t9kHD<]Vmޯ2MDII/.Mftex\UJ.KV2CR2]B썰[u-KJe?ktYu9!źIMk6+]5f@pd-0_0xdR.F貄Yt]f#5게8^ u3 2@iE0:Īx&d&Ǫ;uˁ>!a]Dz18NP*1JK~.Tz}YLeT!$O6eBt?YG#YQz˜G ]=R1,NWKA!ui]?df:jjhTҐTm>Ղy$I^OzFsjܦ!_:b͊JR=$}%$iuga iK׮ٚN3jZ' ұPUsjh,Tn[5k0Z+,eVQ[UV(%vR(:bـ%=5-3W`+X*֪֨JݺZss,PTjW\Z] vGmƭ5KUYyfvOU mngbJ(ReUZ֥*SY0HYSf*fժLvTZV쨫)m.eR+ȋZ4- ?br\McrZ+ڲrPjjiՅ`!)hoEvFTvϲQV,((:ŘNϥp1TꊚT2G2Y._ XCH3Jqi5Y:o%q'Nл+R$-9\#UVbwԨs8+9먵ǹ!Lk$!/\p%C[6Rt޳p]-\uYkKW UZOΥZۦh|fBZWho7V7"v_٣]3 icU]Z8kUTg(qKe4vqiʩlfGꦥzĪJ3_#m)ZS,?Zymݗv^yh- jM*v/6->_\YWC׿}`lQz|ڿJ.7Fj3ff\m)FEcȆtܘJ\=\MLNm[ǽc㭶gOV*{iwݞ@6c*j 5P7h{ MΠi%%.ɤÃmWVNWciHdN@jTғG)U6RK?*:R86i[*6b)p*Վr[EZ@?SjnFMXRR7n+Sʬ5.bq)jZ̭ךq2Wڨީ,ЏK][BUV4WwwA~~y.Ţje62ɺ̪MQjlKSNnSar;[Mܪ՚j걑FIf:#;\nWVV()4+6ڞ)sԸq?,JN;{[<ȭ"͵*ZIUӦQTw|TZv:$yAmP\jWɵzCke+I.WǦrcY^hU3\֊:{ 5T2x%oLez^ii)3sA4تk6J^5{BQihj?f)3UcL,hю >c؉w|tBF^voչg-tM}.rQت)TO+24QB8[_gqٔ=;ZZ/{Z%46bm<C`!,e!,986ML=*<\-mk9|吲x+6 :ȤdR6+djqtJ-2|Aw#TsU rg$K%]#'c$ fZec0i%54lf&LGfpzSIٚJ,pTJǫ6i#Q'a 齇5~,^CUKHҦBV@}R>5hghh4eb+ar7ML^.4b^-#DCvٝN?bϵu~^׳J8ҟR81ic$1Ri6CHR}cݤQaڼksڛɭZuNRqggٺ׋i=s9Dk6 Pc/9/tGK:6sU(}KOs5_PwjPɢ-5(@Z1T@TfITN6iԵ4+1QqtǐOcxEH~]XGw@ecv 6,J` {:{U! IZ >6W9=j(X[ &UV2TZ,g^ZR^ϽtbN=Zaڝ'moۓdGVdU6RZit[iǫj.;Uڣ@{K?g7l8ٮhjolocrx멓JyHo-'[cM'ۏmW78v G=yAi9خnmkͭZϴooj+'ZN8ڪP>rDCۅ퇔PMQL[C'mtiPk{ڏ6Q;*mB Iyzv4k9~J[G#ihlokQ{Q4L9phQNk9ӪYᶎ-G[MQ5QoiA74JHuC6ܿO^Q7HѓyN=ХO[gkrl'S[zs{o-Gk<%$[&rv{A9rVE <⩲v5*Zf'6u:ՆusNbƕrK)UTP5[pTY5QjoܖWZl%oT,NYSbTZ)pTW.%eJ>Zݦ6(V[5}Kmnv^겸Zd,$ŖjMWn?3[>BuVċur]is8]zhfUfrȫy:X5T\ܙ<ج]KjoêPG8Fw֩ `媫ڸh.hգftԐ. [ZRj+uu?ޱPn VjlJ2e 4 ,YɎZE[(j%_])4DRRXLfFQNhdhe5)NK6G9n4T?t_|Z q^أЇ sp#^īBX"{i1^+řbM|_HLY )ZKipHK7JۥǤWR#[fؓ9*{dτ? ކ"tLÕ 7^32|mppС(JOIS)cZ^Y%E籟~3[c_}9gb9c1cBM 4&(7hHPv`_/?]_zj@gsZc1HJTM:D󉾤nKNuDDw4h#DD/"CT@Dth"f}FĿ#|ۗkZE0(h%IDe4T9?I>$U>>C$5x Qo) TI|4/!~LN͋JN͋*N@ql!H1ń7P,J'S<6|CKmX03NLj8CA81p" AƢP,81y%&BOiPF!yNƩPl($ N+H8Py*91͕!DDF2g}91NTb'x|uO؏x9Oqb911q2Db,)N7sbI"'FuI^؃).H9MeR'Ft 'F{LR9l"̉=lDvRIwj<a='9'FAˈ j5aNi4~@2Q#y2Zmmkh~I=-}O<Xl#;T;"N>hSIXqw:/hNL{ke[-)(F1צ[;b"u(Ə(d#8dtN2$XiΎLSri#L@& A.bcFj8(D񘀉(F &1S1 131 Wb6Xp3n}'xQlxO)<y/%_FPֿF.˃ŽJu/@ea C*n*,~3īNײ Yֵ c Bg\6Tc^`dbr ahqVj܆X :u` ^܃#͂ W p kۄ[S8Y^ݥ&1S Run/ 7^[ҹvLy*eKpoUS]3Uƌ X_HBjI bb649h*^bA#$  c`a0\F laP%8Rap =<=(<%"lǧOoUhN g (q"D%q$jq8_\(,!_GMb{;딽@9BA9O-ry y|E~K~_DJ^n[c/++k++kT^e^zZk{kV^zF߼;;;{ww4+x{xy{_}ޫy}7zo~Y_.}޿z>O'٧@OOHB1>>|fT}}&[|Vygϻ>}9+*[;w 9V_*u>c/|ٷٷ~^~~1~~Mw___2K~okZ??޿@L'/n/o?9 ( :@ P0!`Zn=`}#Ol ~'_p4L@gO`h`\`rc', 6p~%Ṕ[n(p_M ƒ  T4.4hfܠyAΠA+z8g^z3轠A1)PArp@pxp\pbp  &2&.W`cF]}pC/H!~!!1!~!CL!!!cBJB\b B2䎐{C6<\+!oQސ!? 9r"\HgWh`hDh|hRЬEC' V:BzKmw>hӡ/n~]诡 =z>L Kf 6:8lZUaaœaaKV [pئg^ {#l[خ¾ >!a¥ppCx1%ï]o _~GŸ.(|o?~.3+"0""">")b@DjDV#fEX"" "n%ⶈ"x4#^x7⃈O#.׈"F8)FFDFG&DL4F̋Y9-yȥ+"F|8g#_|3ݑG1)PȳQrT@TxT\TbTQQâ EF͌&2&.VGuƨ^z-ꝨQD6ꗨ#QD-DDGGE}EtztNQFώ.6z~%ˣDP[Fo0zO?D7FF>w Qb.34 fl̤1sb*bc1,Y.澘Gby>՘cv|E71?4ǴŜ3ޱAbc/M;*vbٱeƺb2{c7>\+ožQ?={"\lgW\`\D\|\R܀ԸqEqc&M77W7?nQܒqk9nKָq;Sq'u{G+sėO:__4~e⟌1w]oGOş%+WJ^Žnu_{mחz{d齫z/}o{oϽO%  S&&\2ᑄ>MhH8e1r EIن Ӱ놝/ V"+lH)Urrr$QJO4&'V&.J\HK;NIN NMdL4!ivRERMR}ҲIw%=hSI'f$ܪ~ZSWcKMȫ95: tXY8+չeڵ,[uZ. ,LjrtXEYjծE]]R7YǪ]GuQ-4UjQ]Z*Qej^Cݭ[="˭6:nldӮc6takvlkq=,StZ5vKMl}vߣ<^]'\;DGvأmMy֣_-/L8&E5֚b>Bgڵ⬫[܎7SrK58vti~quˬ6=)>vBS&MXvʇQTmuuVSY^J]ϛ|N8mnqfX-ƶX ]r,ӲI\\p8TR]ԪgerY6g9qYƊ93ji:^ǁyw!X"^`XJݢ==5493rf,Lβ8,<9+ଐ"4q48^Kxi/-kr@ry5GN\_:חs}F^g+e~YI~fIQLS iY`%|%A0k-TdhuYv12ױ<9+L󖑻dn2r7i\sZ>\ݱK1ߘΛٜqBΊ8Tθ F^g▘%&`Y.K*r.*YVk6MʢIVeŦy.WTj k"권PZnkqfQ L"ŒZ[[&Ma!KlUɶjK]Re+luLx5Vk˭n5sԮsi:ru TPWUSͷkWi-9jm*B1iWNGS?Se#١/2cz 5Y^wZTG}mނi!xLRȃdc!BEx/s|9^>x/pW 8^+xpW 8^+xrBW 9^!+xrBW 9^!+xq"W8^+xEq"W8^+xE99mS]yG3s43G3s43G1g֞+qΙ3gerY6g<9+ଐ"4i/q48^GHi!#q4us\g:יus| | !#stu>t>#3r<#3r<#3r<#3r<#3r<#3r<#3r<#3r<3q<3q<3q<G0qG0qG0q 3:3 3cc3 ]3:3L3:3L3[Ugr39B&:erdr,8^xY/eq,8^xY/#dsl9B6G!#dsl9BGGr8^x9/pr8^x9/p3g38fq!En^nPKS3]uY춚 []9΢~Iʥ NDl[5TAKUgJ75(=33ΥTur1U;r/㮘S1ZOCgvbW5o:jo9Y˻adۿ+Bq]l-*ǜMi]z⊮w/и)ڳhf]Kw/t~?b]ڋ/ݽ݋Ǹ. 5ڝC6,s֦KTiאѲgYe^í.hQ(粹[.2&j4АuQn]W̪56egGMřݎgKE={ޘ/ keN{KCŗZw/gy1@WE]嗀[o.m%mROe<$*uQ?ezWǍ)M֬v*GRSt:Ikw;vm?zTh5ۨBSK 56:Wg֩ofIfhW^& m'==⏤W>J>(ǣxZ'x  lV'nŽ/9<-WeW*^[&vw.N|>'ba/؇/ ~?;|6n44a)nnk;u]=z^>~<(< <(<$<,l6 Dž''g³s ‹KeU5u a& ۅNa[.cS3aWB'|)|%|-`-~~~~~~F g, !& 1pB8)!N g9 V $2QDoGD1@ `1D p1Bh1Fx[L "&IbG+/+q8H,ibhMb)fb8Dq'eXp=n2܂XbhG1Xq8^ NqX*NSitq8S%^)׈qX&VBDx8ObkStnN\ .b:zFqTI\&,"*.W+Uj6vqVC\')%-#7GMS3fY9yE%qU|S|K|[|G|W&nw;]n#cS3qWB'~)~%~-߈ߊ߉ߋ???? b$7wU<$#Q]<&O'?SixV<')%/bIDI$K^#J~ JAR"JaR!EJQR#JqRK-%HI$)Y#IIR4P$ R4)]2J&)Cʔl)G"JCapi4RʓP*(i4F+KRT"MJi4M.͐fJ+U"͕ʤr*UHRdIvZR4_rJ.-I "^Z,]']/ (-J7Iˤ[[ iJZ-&.JwH;{ҽ}҃CiIz\zBzRzJzZzF,=+='=/ ($m^^^^^ސJoJoIoKHJۤ{i3.OOϤ=^ i_: }#}+}'}/ ($,"*5HRtPjZߤߥVtXjHGvt\:!NI3Yt^ -uHLψLb̋y3? `,X8`,EX/.cv9lRYKgF7_ ~q4#_g1!6ex6MdŬMbl2¦il:fYJ6]Ůfs52VάU*fcײyΪY sZ69Y[E-fױ F-e7efv -g+Jfֱ;]nv[eA{m`ק&8{=ɞbOgf,{=^`/2{^c7V&{aml;{v}v)a }ɾb_}˾c߳؏'3X#kbY3kaY+;68 yA;~q Qb>ܬX̎;;N?)vag9?_r_P(ɗH!O y6ϳs tw| ~j-z¿7S 1w67XwO"s >¸S0~/1~'7` IP s1&.Q (.Cu(ބP|ŭ( %(Gd%(7J֡q|PJNaIɘITIt&݉I/bLڋIMtJP:(-@"Bc(݆/Pڄ1y &O䍘NL Ŕ%rS:05Scj .1u4L9Ӷb7cztzӘaÌ302Wb&|3`ib5&a"z•p<\W+b pa\}~Ww`N8܏9gql\:,0W0w+PΣ5 ֕ /G +P*Ǡr?DՇvF`ӘQ?{'w84j#Q00~8 pns\ ׳p݁PQ7uu{ &c .`a(XhR,:E߀wPo⭸.Uz\ߋ_ q ‡ nq%}=v (G}T|\;|Od'>9OqރOY?|VngO#b {\س{0|ϧ|>߃Obobo>_b|/f|qo"-ǾLƗsz|3RՕ|_}0|E~|_`<cCo<7fy oG]wen=S|?H!?)gex?dOw㧝~Nϥy_RL_ǯ cP)и)MTWtqp, 8<ע14B-߮o3+kZނ梵O !¡6B^OhKE*}# GpĆ#p 92h)^^=qhTۂ8'pbN,8pҌ+q܇?ĩpS78=YIř8*Μ ݈s8Ws7n?K]_|4qG\(gq7mN": Ag:-\·:w4-`  M VAhDA,c*/ ^A<&Hɂ4E ,O`[.M{W`9A:A~E DpMI%8HB{1 0{npwccSL5B9UIٹi{HڂZ$d RG[DF/@ﻠ3/!>HG"N$G}H}}0}0}}(F%@}<MDGGG}GdWhq-91z$?#ϐRs! F)#zF=Ǡ PO @QFi V9%Gb] F GrE_=C}@}g mEbP㨟oGQV$u" !0 ؀Mh+4s4p6hEAhPt j4ECz!ѐhH)r :gаih ֈ@'?oנoO)h/D?E1)h94W4VEc\4/4n׈ƫxC4>7%0 MGDc4 M&IhѤt4 M&=Chr_4MNA+h2FSДL4MyAS7h栩h Mi1hZvM{wCGsh#@ӯ/`"2X #dP N"{h04cfhͶGJ4(} 1Cs\$9\ Ash34OD&y+Ѽhn`(ZЊ6EhQZnDǣp.̄lr@vc"˦O?ƍS'oXzr iTz3$R]Ap 5xJ'#t#r]S a6G;JGl\-pA2(> &.v ΀޿c|t.x1!bҊ^1^a3Mz'INR^K%D Y gBo+m17 aA,Q)y^CaN.fxސbQ&Ce߄it$0cʾO(N(,-HM,'þ6t@ůas8,N8撋eer}</ o e)%`SN7.OX"C'=6}j)GJ[%XKd g};ގpn.[y8 31U}16ÎvYV!>Ӽjn(-?\r_I iii!d3_&,yɩHOD"d[u*+8",&8;!0>PkrJ\ #4X9K']xEV^k9G)҇oHWdB wD8Y{`́nݱ/➞1!"ӻ< W3866D閿3*' gd;%yg':54::.v,Fϐj ".!Ybl lJ({++XsU^h/ǯl *Y=_s/aWZ?\m2|دE<C-1grS)YAdMa+ZcI @xNVro#ஈa;PUuۏʞBc1Bm-,Kt~!PW8\^uCQ7Tx:L֟F~&;\~n tbIP#xQNB8_M`i '>mV܇/8SvZU\%3J>/ jpRһBϰCq- K?YD !0+߻Gky>ΤX~^}jaMj&z1iO8p1f`$" ,N.V<~Zx YxرftsUΒͦCm΁Jl3n3LA% sՀ9rGj-sAc v.Lg*ޣ@ G퍍ޗZ,9*bNYѾҴ9f;AE G-0NєG%nT*| I |5>3pzpz }ZakxQrEIvIM{\qwGI܂\̲ {Nkv8&KpP:? o7rqPKݾ_KTzjӸެ-EqSС30S!k󉮥K袰y\JAAm7M&*OYFX~ 5!܌Y=5($a>a؇YnSVQԤeW}6HKYK']EE9E*=k{E*ہ %Q^|~xuB4dJgƈ )@) LMU2 (= 'Yk~<#0/^5;tm2\wՑKwq*NM d lU(OȻUG!_xϒҀK!?*?t W4p5q^E)*n^Y3|0}vLI}3wÂB\|=1zۮr\(|/m(ڇpCfIefNV=+24b7~;,<7bf=[zѸ +Н0qě) P _oFq'3Y9i*=P%h$v{p_$u6q#N.`~tpsIa2JR}_l7b=gb }k3sl7$l+L Mp .kpE;b k@=5W X. >CWI-HBz fԐ7dI0 2?CIC*Z$+qUa`wwt#T_IRSp"Hk䭧ݮ!G1 c3ct2^K^jP@ n· љW]/ˆc>/},`/5VG71KH\R q.SWVxMCBBſD>~؃p/I(=n愕f)]?, Ax^oxFi%lرkͶiJ4[+GGLo=<~r-28 x7[H߲;چͱyS;|.,2ZQZ믭 XW9rg^u ɀP7G\u7v-3מ^YgT,cRHqlp䎤q;&IC"3[L `F N02 Vҿ!0 VJjK6w/҇z/$#H (>>XǼ@?[)J![ÌohL ds%so䕖82,2,:,G1 Yى];m fE6t JEieO>IT8 $0 xS鞁sp^f\F\X79Fu1gAW(]ҿnYN) fnaQ1p`)Cdo냩0.Y>Ǵ6*WFƻP3\!!ϦYq[r83nL*()H\ZicM%+)O e RXO7djs7E=/t2|JY2%IY.2tVa&Nrvѭ;pdՎntNźzq4R;.5y <Erfr=nfGJ"rS=bkb($h_̸xz8[TulFq_qj6.+%x<&MR/#,7k\`9mg.O=5xMIR^kY~\'GkȰSJFhlTCJ\\}`ݕEFQ\WPsQ\XmD}L'N~ TBN7@~1{'*Y1>*=oRݗ"#"TxRFR 9N? -VcX &5f%PH;BpV%6~EAQF֋)K\a0[m*]mj&dyjpR3{GNO=+qπ 7X݃S3YYЁh@d~n{!)I҆Vt=,d^Q  WD\-H}ĺp](TO;pb'nv,8x3OWee^1> ^8ܰxqE%ޟx4(SpN޴`x=fvXBP[ 0x3Nma|H!Bz 2pQ}7` &^0:݊<})}V[W!HބwQɸ 쫋*_ _6R (^ /UMbgXR bћ0HOa$3f/5 ldLv` E=d?;[g*gid.ͦ,VpP_(ݣ7 ft k}>پk=k6QF(~oQ`nuu\ B3FAyJ[њ x27ՌwRZC_V6h=u L*T }_21>T>2aMƻÈKSa 0 VPvK=TA/!8-{S=d!W_8_Z ygk-,^볎r}헝/;|l%k@Ѐ cOqN&>ńfIBR0clf_o?ǜYX/I`/NIf/nЦk/m|\_pCP7&i'ZpN+ 9)Ql*ヨЇ*kg?Nls=9V`fĢ@ѫwT8w6&Ig枅ܬcsWFUa/Q/wFi) 6#R7`ּ swΑWOQ, vu}F7&wЏ\e .i]%RZ3[9D,MS[DfȝKL!H/ۮqR2&㝍ɴ1qӛch[p[ʯ̤>LwSN(?.4 ~ ZvͼJ. f 8Mf20RV3ǯ3 kxΏCTjáHM\WB@[I mO/6#o\3ա'Ll؁ͷ,補@H ML<=rLM"Z|ϐ &[5>Edq( e.*k2*I^=`M$jwM%;kq-.ˮlf\R$Vv~ {l_ʹ'Jxi[ZMv7(d֫KdZmJV{qVWFn7cvO67=qmÑ;cyOf^boF"p"!}Ic=1\QEQ!00Nl߯F(ʂ#[xcTۢ!wȠf* ő.-oS*m#o tAqW(Hrmڤ Pry(#YO=>7fkW$Aa<eT :L阘3X-p+s)~9ܶ0䐰jE0_oUxpVbZ>'yDR|y ;5!ѹpmEvĮhV1\z͵Ga:nEѮRI7ւ}x_60^$xAuf 䰍[×H j@5)jKPNdžv`-Tf%W:O[7<"R$ėփ S^+]6+# z~tދcIZP?6` ɱwhܖAwSZ܉k #k;Zd(C8&_o'УWl^O2`,k>H߹c= _{=x_J lܛM%5cexIau٭ecdU%9fAOY{̨-3dwC?ktg 6}(IQ%%`%c>g"F_hr@j!,;% M:N>^SKHʅk G㵤Ė(ʵ t'䵦x>.Sk~[O˛4׼9wo35!BGTF_ۢY( LtV+& eb=_{[8;Y82n@_ çV'&M╭*$iwמx1c ˹'l`4e }eӢܳK/Եlzlr#r#$v`e1{Hd*.+|vj<peRȱZ"/Ow4#_hq&(X7@hxKfӕ݆HpA*3y92EȼW ύs:0H:]OAݯC\&CqTGjXu'Yc2Y8,pfVd/U#>U>0SyHL "M|EnKW51gc;'ȴV2ާSp=Lq[M 3 f *Fvl75Tt\d9S/Ϯ=&^ng o\P1]DዐbkZR.;-6lۿh)%Y}R>k\y7U`9K-.b >}uzU@>Jdż{w~K$+od6cf閕*[^9]s/+acƻى8g_xtj|SN!'T8ti.K]<5x@Ea/Uu*v*ld?P6Bt%Gt|$; <3ެ.%]P+=v.u n3_]O})R/v~xwW'^{bs=>U ε|{e]21;g,{{ܶmqĦ;-6xrJ趌\=_q& =,, OOHJ8uwz`ovpnfh!?&BDt:ſ`/~e>P!s\k hG(&/|qh?0,l7~NqNQvx ^ag%f;%. Z*59?8AF$JcFE$=814'(1$&,!:3l dl=8CjC+ pC"|}'Pe[u!_;y%y 8- 9ȴ,ݰ` 3GJ亮Nz0ҽaAJT->1jUU|q0  e)Տ'5k8ދCS_FHumvЊؕoLMϡRE[H?>O*wЫo_0g{w?'l?2jerӢ $BKB8 xJ'zӄcjt,@fѦ|)6e +ՏBxJ>_4Kpq̆U0e_PFpt03[3?3>cqH0e e_]˴eWH+ηe}pOߙa2B!gC;2}s.FG }ͧ1FƮMO:{ .}GFHP?vV xGvht-ořTz|Gj m;]BKg^Zu $陬.Gd oOޓpUBݽԌt Jq-=v/2FJ>uM(/p3r^F L)2\UkaaK`׈.3gcԏ X7~ Q3! ~xC|d&gfZթ6%k I-dtMYS}p_sw O>ΙVS˟Tw,cc ]$1,m%* 7tAL!Q#Qo|.Xь|ΰ^+^r7;k'Yp(̌}WzǼRUO =>OOWޗɠwlLvݔ%D??LLW@>G;?Ra]UC`! T3r,їFEǜM?p\0!!A!8qKȭ2/ڠ܌79ڙt_ٟϊ!=[S{XNOҫ 18GFDEG=LWYu(.-J98<1xQ> {*PVdo )\;-ZmDȇ-g͵li#Ty HO)oZ24r˳UJy߬Ni^{アS:l[ l y$سrShb1sAfV\>^m])ڽqv.'LHz}-rjzƋ6 SwdE02Kl,RMvv+~7MX9:̐]5h:B8鷾Rս-H. 玓'\m&@]0PaDj]];X,`_G _A7gMYG:D+*F.XjZ=Yץ$덀huI.vNRyPnm:{ u"m!j xؚ\<{B5Vw]sU"6>|29mE2FS$ܔZܻÆZ?g㻖Qy) mj7.i8܆X@lI[@ vLmaa.X5U5veCvv CIj3"J聎]5}JQ9¿-wVt!@s"JK[W7GdS' tf#y6nE/ qRğB4~YRrE t5oז=n>'e -d>ǿBHٔN)2?XD{W=~3Զn<nlQ{kZ0Kܾ bd >=%頳ŏO⧸ij=!߻.WFnX3bQ3Ma"bf/t` R_ePt_~E-:?ie?EI8n ǐ_9wWQJq5)%oi\] _/INMZ#ގϙ1}˼1*d VQ9[x;@z(?xFi1wg'hBIbj,5؅LÒKI/5f}%U=7aK? ?&[WVz_`:ϠK;%Y%Ӹ9 WBiXZr2Vb=Kp4"8;ub|2jy{c0MȊ .`][SJ2⦂/[/5m7_dED~Z\Q$W4Q)gLق{P>(=$Z,.UaP;XHfzB:xi1LT/bƹ Kj#(^0I37+ ԑs}Z=LO͂U tn$G|\ԙƝ<;&QP8p G| D aw] GKLMm*t_}37K֎HߍB' =:lLyc՜GyH7}^rUL"uϫ.').&f"霝cR[.ZG":(PK\-:ix 6VNZo P:qKAbALC\7 ;qyy 0UaȸXPNdt,-M}v#|tyq.rAwCN][H}vLL%nKbb㤉y#Fy#CRBX^J tBBN;Bdo70{<$jϿ&6u"1p[s[rdG}F?dR1q: :|T$>%pyJL 8 {Z`?g ys1Ş'gdmň bY<)J)v|юs09 {b4~TV{k~KzVDyWzqe!s[T8121:!uKîٖkL_[`#؂`B%K 4dV,Ttj]ܵD5`%ݱƒ>xsnʋX%IC*s (xim Kd!]b_rRIfI{QIAm"C\πr9_·Cq'{<7Y)? dWqKȤdD$(al&M1{.OK}o4/.=R FXub{^%Irr_ò_ab)W_Iuv'Âr "뭁+>UV` r功nC tDŹ’n3΢Sd_;xq{`3jcWh}RBO)&p#ST`LMJȹCxlIƄb͏9JpKp-'AU4.;Z.ivnjaKMŵUv2e&ebQ#FYgr&Rk.h74wڔTt1POM5ػrᴥ_>OkSo7U)\qq>ASgؙ7.B-`bDqS|9"Nf"d{]ه36~K&TգEm,Ŀ]-[`h6jR+vNwČ^,.aRs1ss Qm Ckk%'-yk@N@ΙkyƭsT6S5v%hO?c8L֪ҥ eמJ>؋Q<4ۂDR%@llXFUj +hE^є$?єe|kӥǮЊlqA?= Ԍ)m&Iz+jdԗ0ʛ;FirLKdr]+ t3/ē=x<)YQ|EZomڦf|(|}TdͻH,(~--. 3ձ+ ܐ'K,CzP^r_}H# &_y@gڨ Zq {%ckݣ ^^1G傷v3 ߝN9SfL޹~la~_9p-CO sYlId:NIRb`Q)C_巩, ޏ@ yҡNٸ0bB>"}e%ɛbnt(s*mmāg>^W5gq[^]1wlܾykԥx3 ֪e)5nRb0gy l 1dO]ݾnd!)~N]C܊ 19[" ܾ /a2%Unؼb|'I,X=TL~$8uY̜{3{»yVs ) if@f?P#SJ=^Cdv6J|eO5!M^]drHicvggtA9pUscBd3]J=gЇxֺm*Y>Rq1 |KHjwNa(bVa %K4A%S aՖR_SM:\~?KU һq_ RsBQV4>;-(ߧ3' lUx6/($o(Ҋ>* +U$Wӫ U 7ҥo٬mK_i#>˦_F8L Zj_Da{!i^ػIl[,(X`mXP@Xn5j,ػ(yG?UK_~xovvwvfvfvw߿7KKw1h<3kZE M8=Yૺ\o.G|S/BUr%\TMwN{~LdY>g[ZYɟasyx@@X NjkjdXp`E~|񆵱 g6C+VO#^8sQ0'Ny\Hα*=yA6o˰S`s!6 ۤ|)81kgۄmMV(zCB+^^ɢc<5-$pԠeOӞB:N|iHW$E-ұ>Pu=Ĺk0Y";a\?f,t!-v[{zPmECy'?Ly%yNrD2w%;#4T5oRAݻjeU@ZZRo.:@[B5Sf-q4#C7D֐5k"x.O^ުйi԰Qvvv[m NqgCGīzFϢc(mK%pp&I򨕓2)} u"h)RP:TA0HbЫu)5~#Zg53_r_( i"+"@ܱ3z{n7-ctX Jb ,Lqͼ qZnV B5(_uU7 =F7GÑ^qm ;0+@){`' RiZNGq4R÷^AyMK4c&uҭ$AF!*|~(K ըEW"4-UwSO{wK \'vQ i[}-Fs;tլ';%#X}c jn*bU*~OO uG_ֿ?xFsDTUJ؍P-87lĉg/Z[z;H1/bp|~d4fQRQ?ħ{k 4r` )Ѷh mӉnCf [GրV_?;1:t?|vݾg1;!B7 5`2yU[6MHqz9삲b_VKs ` &yhݟiZe TP~:a`{:PA %E&dPCCPeP*;wAr(4g33aC;h׏oKڳ.9w2*k$ҋh -m%AN'DC H?~Ok0<ٵ*ɧNO3}X@NwfmkG@3\x 7lĺFnzx|BgbUQp-TF8}trZ61 ٢tNe96rܿyh^>O5Ex%b [W꘹|s[5 >lom|Wٸm\vbVyVL-b׹ތrE\m441S3|7z$d4>b\ʌ.mdԧiĜ] Ar"xg9bH>TW}N*zުh+ȏ~ۆǐ'|_D"yQ7bSqڣ7sLTm5(GUjBj"3?gL?>[tMd lY2^⣰k`ha+c]Qh|ɜu4%aV44uܖ}jjJG{M ;[(Kr+o2r ֙I^dxUۗx(#׿q$iȽ]~7p#[G?xlΥi&$Q2K!zęp BUDYOt>pVGTNP@ m* Ef j}' K8[C)lE+Hy`5!GlqBZ;qאWMUbd^ ?7@-^1~ҍB^iMޖ rt68Î(~2E{І~FlLp@Xx*p'O+,x/,$$J LCZHw fpgY6G#]ʢJn+]s/(ӡ-$K߯OHP>PqtoW )VMj ⧎&ՁRAW_aLyvݺ+wTקyE"FҶTk塗a\[3H+#ڀi˓RdĬL12MfGFRQGpM[Ldu'2/Dt:o4&dnbB˪1GR^kN I12w_?uOlN4h¢o~nlbx`4.Ddn3ˆKG>-#ڨfm~Y_cN#9~ T}\x'˶ېjjѬ)t6Zl\j1uu:+?Tϻ'XB91ˤ?lwb65wT{9}$[T'퓣:57"q< mSn2([!&z%fu+2S%-O/T?li2jhZ43M.1KHAfWL'myCW1,/4Yul86 -nI&vі+qqտ}caEB}ޝ uW+ߓ.~I71R#;c꒛/E&֧ Xb6NS9}7̈́ϧr2$gȔ.o3U, G#h-y";Q'C!h̕rB]6֚rjbT=#Ya\w 㴨 ̃*D㨮A}&&ppRd-1A 0X"JdƟLF %C6sґd`A f^AB-}sZU|s\A}~\f_8p(sIIWGZaJcBE;&>h|Re|jI;Z0yhƸ1 sM 4CvCe]7Aqt+wT  8l%ߜF摣q&q5- \ϝ;] 2pʘ8FnPC-f\pR.?y̼iNbw]d臥Þm`+Df@_Q)B+aQ:Ҏ]3~$P>.ǒn&pP_dIIor#> /t6 I>ԢI8i趱{4F.b^ ŘPOtmz(>W|gDS&'G1x+C QӠꕡ@/\\>~2U`tؑ M7:[hb('(vTi5/:vYm&YgB#" PhVЃ5izHM:i#CXٕQOl`vRmI Kk>;CKڄI,E [(~B5ꮤׄa#yH*pJ**WY af8n0k7wt&-w-{M0T/]^ CPF5#b\gWXDqKCIt_#+v)h1HWg/N4wb؅ԍ~HCjDfE,tV?yse񨓙/px3n, /P%3ܢDEm,gI9h@MhrSӆ8j0b0.IX,|܌+x/T .^ގ 4AՄ˪7.3\Fܡ,NQ&:O my t#7(F@A;_PB8K"Ey i=&E6&U'3iD\A燵e*kP5r˲{`o6cړzqG0 ղ]F vs!Rv &rDL5ӒB *o~8 f-ב<]9}xGw^jk{,±7~RW5ȑI~O&4PYdix4yI{eUP]N0Z"qfײc~pDPQʊΠ&5.VXuqw(/QD.iIy謅5$r(>6r?~.+MKǎʏ>Kqd.ԕ[%TU˗^+YH^Q 6Bi *p Ie{U$UOG{8z\ W[n@uс< A%sH8#sh"[}cזӄ?yF nhx1ݏ+ kyvqCgf;^N?3e+K؁~?*ԭkR9G9H=L|)C7H/I4H[H[B衹Hugjfx(bpbDMCc7N`pBP;;oF.!̔nbT>3So֥ic*{T iur3pFNFY7k'˿tbкi^q_+uIjqIi<* ɱjwsI53Ml9rcjhE } fi]y%  ,BU8SaeXx#ج!vh>ŠɃq{]‚Sb⠑+qVoS%> ?Ne3Q:(\{[Y-+~ީhlfw*;_i P@;xn?[l q_0DE04Wt/&VP+(؃Jm 4M ~I)p ܆$UX>lK&D J9m_!`CG^j5@K5ݮ}_nmp^Cӛ*Vz]4ڠQDuz;0EH˓Xz:ܻ o: l^.:^C_Qt hϦkb n\>ԊK= 2P7fkG6A\R ¾A0? U)u^w{5_v^.\YnCkz&?rDsş;RWn%#hCӿ]wMi|ٹp*PgM72d<Ԃ?WY1Cl,@jt!z;78% Aǥ3Iy 1Uծ!F^eOWH4޼8EBC-ټPttH2KN$4l:*\$dAsa~cH #N3И>GA-l>}ZʺV.@Å1Kc?fVNQ7c,$-8lt|_<iL4lfDQCi,+HaւephqB`atx"k@8oE+˺Qq))O-NOt.zsEF-W'; A3&ϼqoelRb L|TU0~-UP Gb?lu Oc焣V$Dġ*<"䬈#1VL>&$F6xc<.͂WBdyFa?Xg4% G{z})OQ_ğP̞]$hum"?@ e5>:|>W3ı>^q^ة2ؽmQP﯁' 6RҮ縦D(V7u0$H"8(wng=%FW7to-@Z;-vƇzyM>!?wv -z[v`[("H@~m2g#elRS \Y%P_Om,%–Y>gxtmLj7 |ړ֯ume{8&a\ZZt Agc8gY6nش`ZWjhs]h Y(N&MofڐYx:9r#I%IBKґ ȷ{CW2Gǐ>AA3HG __eM~B>23l!lg-\EH%s ȸqq4diS4ٍݓnHg2ȺȨkO !4;OP2cRp~ eAm#U[n}|Rxhm;"bg z(9a =p{A<ɫ[%gSnA$[J>0 5 [EAT=iZTbj GU]Mv'R O:"U_T 5~Zu)U9aҚP '}&q.Z\+WSE˹צjݣj6emLTh{c>w,ɖʧk^LvD#DlKvl3N<;~S#q|LmOI;?˻jUx%پXi=Ҡ%7޼}M`M"kTzFˣ#1?OD|[As[14)U^ TLK~F@q;+{Md%`D&M8 yGD)\ftmMgRmA;fRUʳER}~zsBP(7 Jfĉ h[^!k!rTRwKmaf%to '[kUa)ڲyl[0͏Ƨ9ś7X%4 95ԚǴPnCt,A1vm[elW}v|f|vۄ? ߕg?3cL&'o Y+Dr1ozYd؃) 7T*Za R ZcBmjP#ߪA;CwM{w8kFu9tѡi|EњzjT^% Qs!`<뼞It3yj?w[)a2L0Q/،o&+UC؁s TqVm^LyY*e5 % RLSM^31-mu5 L17(Gj&y{O8YMnC'A+hҜ-'|Ƃ$WwZPG+ /:5ܳÚPrAPrКX Z.woT(Oo4iwZECk@PBԶxi}qf?i  V^m&QtTF#7Yǭ 4cdٔZ*gȵq*3_?bB7;e1?&gpߌ`g X#;[kwu>< "]XW!zmZM FIV&ұ 42h̟wзܡ+ui-=1%YC"GF,I RAђ*$Bx&_1ʂ7z(BKzZ:RMSй"8.}[tZ޻[]֥]%Coɖ(cT37\ ߽r3:/]7S?͇#Rolb!FB" 7yxIRRǰB`6W2'oqC;+s#7ir>/_Z'xlrKL˓R,j{[/I0rxytK%>5馞vy ]_,-ԍQS9#;$رF%.HON?wDձu)RyƟĞK*YTrݑ\PKѧfnJ̽M@w W,z×9YѦ>)D,[cת : .H".Pܝi-?h69}L^|#Ϯ5 FJԤqd?9fʆE;h)|zAx@FV薍#ȖHU)uH?uQsmû4,kJxBjRt5Id ;f}%K7J^|1Bk=5R<=P7m}cMvHGlm$-dr .@ Z*4 9߈>@;B 528?vثnsR-ZS %4/@n(B~4kpI\XhivlfnQq3L{\KӛtPɷ_"t.'c&[M7uQDƞ;M׌ބ>nSVkQ+-XĒĩѿ%4uP)xM!PLdW8le?fNXY.ঙY|2PݷD}c4 Ӹf1u+AYXJ`I&.$׊;@l*i4a#i6Ad)9sDn1nn9!ucً?~ T<{jkLՅO%aWĝA +^ɓ/>5~oP X6&5>&_v܆$NKj#͆ʗ_u`q#1-L(39YyrF ̗i1(q*TwKk-|;xhB{#|C^." ?df8J;<_HZLL,bY ,\x ѿgiJro00)X$f*S0ºs~.ϵ"h[\bzUA݀gGޥx2\T霺xJjk5cQEJ!-˄1am? ';xWW3@GRGO]Iar8L2\*սQT峐{PՍ|g{R2(d`yW:Vcdx.S|J/ G}|赦Q֟YָԵف-)7RĆ/ ,`i>OqElANU qQ^YWKUDGbr+_J¥y |R]Y+p -{opgCdZV'&Ӑ!_ۍɧ9oWrJth4{-/XSN 3 o"~fqv{%`G\`3y{v&I 4,eȺ 9՘0 Y!ڕrm2!NAex0A+괿9Ф9S!0Rɐ[2n;ϱ2.ZG>;|}|B} ? XEP'yLjlw#v͘F{*q\o9*(;MwEȔXwE}؞.ze6Htlqe0+e7ס4Zjl+fl̨"ك:l^V1,{eͨe3@C%ځdK"{^cآh6o)r/ﷁ#.ulvBhZ~b^O/GO)  ۤ".$QP;t3pIL"({3kءb7 !üvr b &dBQ>[4lLנהzvXzkg)<>.Xasw?usD?#t衔뭣׼w潆V_j5vܵ5\mMtʨasx-vzɱTk %J|.:b"߉E w,YqLjm,Tb9p1'"7"G\&*GرlDqì*j"I6 o 1*A' ]w|V$[pt6b=z[ݑgW,G >}tCwͷFRX!XM'ofA U߉ evTXv!ix"u)JEvv?Îm4yɰ^'@zhm#y.E!Nm-[(jUR/OwK.-XY%v36ȵY  -bDDDXʹ?Aԙ~=pW9J ,9 $BsQZ-@.a#,W8b,%9±,װE=Ur/lH|v͵hKgβmRd1tdG \F)]F*@Fqΰ#M(Ef6a/ǎJxkjWblFJp4"as_Y.܉ ($2^};+LlCtk|^*2]+c6yLG QSy i圃)x.m?с\ft&$C$gDװГOhÜUp2~mDωןvF= rb+=':fsxfׄ!lm5]=&^Dp> e .*?A[f;of,X(mo /_XÜz7wByFaطtx'Q_Ss"oRYOx'/l}]4Yɇ/a} í"kWFO#26x tژB=xiog,Tqe(ɸ@YxslG[ ?N ҫf;R5ߩZ m}38},Do*Q͂Td L+>ZMq;iD/L1-M 'apDpD:L+1=͖5xNc2q،c FFwV}`"=TałX5ӵ5hz͚p 2d/D%!'PxD@lP510T7sr<G+DXmP_`E^P޳Ȧ]=Ef=mUg[eiؙj;}I/1.0Fe~w)hPc:ǏO2I.B L- LbQ}[QCBJ%VYk6 -/6ȘT|agX 1|S01t%ULȅV'p 5mPh0ZaC@H(+XT,~/4'qVM\jD^7ume)Zt|f[)V|̲c*Z^ ^|]tz؊&aWmvV!TpVAbC U +ř\}n> 3 RM%ngVLLЦvm) |3t.~[*0Ő.{NX.{7b0@nVb;d*1n\AMg 3{o#ߵ'"X,rb\QU>NX?3JuN`uTy՘l'k<\Ⱦk,Y;_RYnk }g*N-az9Cy,o-l#CE>(1&6Je>s=\T@i0mv<ö A6&"0&`#,Pb4 d- #d3oCPd!M#=ǐ?nEUM"Y<ܔ"NKs V)Yd_lnHbBq;՟\Z{ pU>RWGF,hx,4Eق $Wy/a, GA 0xh8V+sXm+'dNF,RD(TodvkyUF~x-+Bς28'p 88 1n*z&B@@B]_fLd#T{V+8hBu[d/+QJ{t/&nk#'Au/,!Aʯ?*},pbKʳBY1;3Dl 'KK51@ b$1A #%Fl_QBUěJJ.PZV@a B3/,ImNsz_6ᾝ?D=a.=:ewa̦,ɤOB dʀoqh`*00/$50ĩn| Mv8xD!Di WHY4d.A B+IK"; iրp!4_4rVwofi~xxhċ~R$Q8! !rU v֋fAI HY/Jrf#^([B rbtUAKܲ;-y$mB-R:$&AkiPL[Q\i+I:)Cj\wn;k ?fG2CvUbZkڣE`u\(cBhj7g}vok&7"2S21ܴ" ;5Ȟ%`lB]Xc[U7XmصN Őq| ਭ]y6iz[mOgQ C%zK-?̂ Ia4v".3еvW <PQz^h B%;5mOm ,3w|N"F<_[ N'7x+P5Tn˄$GN"^h๕y+eKEkEM6T[W:_lm0-%ryJڌ=e`{룲V@5YKYt%.Q0'RF )t&㠹K r@ ?Yϩ ڳ,w0ԶFi!2P?Eᮘjj2n3Ajޯ MZ{*D{Au 5NR0T׵>=SUslM@}h%VE@*Z5<r!2-bo0ACS*j/n /1m"mw/̑dB g ?/i--E@n k0oj=tj YdJUgKymӍN#,$ζ K/(%d;a@b*2 -4_CA[٬ճǓ 2a&\le'ħGް1B4SZ UԬFhDYL$Eyxzo(k?>(K3)kf$ Ն:،I ϶/ y p1/7Uк0.g(-KXDi/wW G`YFy+Ͷ_/?y%l/K%Q fÊy5|}YH@g濲(3쏔Y.]@e=a_e`C hg ֵ/nk)_ވk+V + ES_m9p*_Ѫ ,|Ƥ^+dيNߍ֗N[ʯԬji _bXhRĜ%m%~ٹò,ʦ)IZSXĻeE`V>`x"E6V K~")Z^mwk웖YlWRwmg?|3ԃGG h̫!Uj$3RK ]1,e~oҪ#j&t_R ݗ.9tb_ن BE [ ڇŢ<}o BD` քx+1| PHR@>XRå3c) IZ((/^28%ͼQz=qk3G muC1Q >(6]n[T, M([%ԒOsprG")Q"<ͱO"6 Osl¦*HY.Rћ|z y/o)ha[J \Y*,+%0Lc qsFv^]H)!/n°XǗ6!?2.bBAB@sŒÍ3l!"'.HvS+G:H'8Fx~KdxV0c-ѭ~nṟt"L/vr܅D]+Ex1{n_(s"H'i)%R 3Sp<E=^:b܉ 9φr bly}mw2Ax}xsk B6,~LLpUj N.;?fMN\-H>׼Jr#xSagQG.\V7,Kx`aE\ [Py:Bs2w % +R"euHX7ɪE!QuGEh[%ا*Wټ*FLWbXh#Zy:O]Tǝir?ؕ9aI:"0ʭG,/PyͱZ%68 5?wϙYd5ʑsk~&NԞ+=ne6ɇ1lKAPjj@N hmΘlf\`|c#ƌM!3>d;% ʩ" 5~p9QZ2/n'6LetG,NX4\jdcclI1-$= ٜlod".r8x7}$dSo$:}85OǬQ8pTf,8^~ԙq|e&? ^tm^!Z`l6kb-/|3VH5዆&sɛϼL4DI=򗰄4,~\$KDbIl$&IZd9Yn:'m'+[ ) _7qԼǎn#WVH+$"i1ޏcc-a 5$sBRqPz"J>T൜Tvm#ohOYWmd5EBĂLkz~'HgQ RfCOh6^OǯY^⛣(G\|n{~XoNSۦk΂muXw[!VR={/ًӾ[S+SiJ/x\>Ι Yv|G1xɯOxmV m#'/cXw;@Etڶaޙ,KWsܿӾDɭo.TC">Jdr#(W$ {a? GPw۹4Yٹ $@~ ,@ -AvԝƓ~_oJxxSݱ#Ccq>;;md-tں^og36 uǂC_VPOnȯ\'qTW OxVo|媭`k6m(']& u,1ͬ!ߥ_'9:=j-صy,Gk ]se!) APYRsƴuz/3pYy|Y<$DG%DDj!.;n9/'h,#k\M~NyK;ay㲋PR6֡*!1>> >,CE:N]?By'h7l})!B@m5ڏ۠v]s}CK=z`VR+ pwAWO/z4@yYn f G !LHFy..n.2Py'x"圵q.6Qޱ[3=\2|K䩐SW[5m,F#ҝ5uqˏ+s?t~#Gc r%.@MyCS1Qm/uL]9&72#C[)+_Yqى2b %rs+(+Arhfp6q(Zj"UaAY)3 }2])+`&Y9Ļ8z0a6(ZZiiSS5鑩Y"ht3L\el0#.4Ƶ^z4.&%>1I?<jT3blwU28/ץmu{xzx4VqTsxͿ:)ͭ9Rv1W#⫸e \qW 63mJ˕2؞} I/ w^R}JEvs8l WiS#A+WLrd#ydx129_7$.@E4]cM4-<5nݾ j4WnXGǭkb𶷨"s8?x)K@i&,M~y6G%Mt洑ݼ#Յ򯩾d[D'&:,[XCt5rx;d4@ H,hkv*ؖ /"= 7ڃW)}ԩą8vϸ,=O.X2~i<@5ԥW6WgA*`C?\-˨zB$d8.Ɲ9d}CD ^-Ǭ0l<Qr`ND&&F*؇?'JX"&d*RLxH&$ a` F+.Hm*V|n@ Xt7q7kJ` 㩤W Nk5pO`rAah=SMc0 x?͞C=8:%#l_ 3+'aS B#92_:~<`=gҢ?>{qYPwV*H.ȵ[9(;Ih4cz^t@ّrB@d`dԺ=spw6%#KgMOutCһnr[qwMȧVVUpN;Q.9,eva5lmhfFߍțMNnc%rm;؝Qj6#x> %C'[lc<wa]2]+'ւX'-wPN̖*Cx+{E s;..[ߙj/ fgŸs`'ږ%.@d+I1T~)]d/a%XAf 2BCdMMYr$čz UW8`]2P޷wkFb*@O6O(fzJPceM=fĐU­9؂e5KO*O>7I #DRU&kYD2ElH7l{DyF 7+՚~MC  N\ʪfȅ>!jM_9TbJ3ץVdFZ) K\aaeuwOPP5a㼒'7m1F4Uz$j\5\IlI*;HgV/32*gJҒS!RC30AsJ*J5 h؊4zkg. u ,Y\9]&fζ4_*4% rýL߱?ؖ9u dR)\ VL7 s,色lvJ2.ޯ;M oJ7BfFdѸ3Ue[!Wв 'w2,bb$5c;>Uk{Xn5Ⲏe$wa 6[滅ٙ3F(иmG_"ZVVKvu|3+Yb,#J8e~!KZwOY^f^9`8ьIK~Ja#rzC'R |Du;soRXޘ^Cj*;a+ZZؼu=5upK. N׶TԺ5M}X{gi5tx v;.TY@;*thoe..a//;w{*UJuBS^]s:s!%L)՚]:L;:bV#MX8RWj^" ֣'Z\m֭ήVr5/em%ey%KGш-}d!DYm%Q0 awcŇ3Fsƍ` "Ox) 4/t@H94Ym w[_p WnC6a ?ݓWAOm\@l2x#W UsC 5;'sZ7p8Wr*r]T^nIQ(YJ~?5 Uoe(̮Iv>:.Mp v ˱#wA5w^14K"_%e|72qjڟ0Z{b-nŜ"/+_oWG'{pTBBE)ۇ:\4$,l.iJ(-+OM0z 0O8Ƈ֙`|ml`-S(]G|mT`WXZPFܓUY[Uw5Ya tDΞnTS.]/^%ɁM˖`! !q);9-1\`sc8-MH,OfuhĐ%c[yRaG:Dzc$C $DI\p[((!"Bnp/v9="!86T8B^ PX5zWL_q%AHQ\*ìNS'+NK~+;kac| AR rd)Px>ʺgN hk=qhqx--]fX~pDfY`ɡ ޝKeFuB g O Bi-n5~N8 296;-_ign~e-r`Ph3KOڝ:MK#j#5"Ep&BL\ZxS pO$ֶwKfHхIooݺ^H[DZP( W$Z[fHT XLizXKp%`'5 me%x/Jk&E1 QYs GJixzI5r\T †,-رD,nVH@t0'{$LW[mh~]4DoHpQC!fod A7~2ED@?^Kb_uOr'Tr#V~ Id9ԧj1UV))a6+ہ #B}ܖ`Š5ς6 f!nB}. Z%])i @bꀻFற+"Tsx`~BAhϺX"[Yxy?vCYFx>Օ&f"}ev|(J5D zբEzw2ш#i1}3y 1y{ӽnDx>Zߠ/}[Rp@Nu X0UnuN# Fdҧ'@1 qѱqHZaȗ5t5hYBJ#:ةFd~E;e`mR:~mS|#zI; fyFD5]Ѩ4kuW+FsDؠ3[EvbMdg w>au[:~ Q 0AMi [PпChGFClށUthRnZ_=ír_-zeջ(_QF_h϶-`Rz%Kױ$9@ ^:CʄYr;ׅ5C a[NsWΈ@uH{w~ZM_He1gS>S$Swa:7NMq0K.K7IT{b}GtD,ڀcF@kuU%2:?dq =Dyum^sGF),ŒX+h8]VI.׈&ՈV}(Sd J~=sȥoⲖUM͗h4:K-'"Ğ;("{CVȉ+K'/[#d }}Ⱥ)S! ٙejp$ lvڜQۃ [nK|$P7;rL*Ka)Z^4 2m2K<3xW_*#SRb$f '¥%ҩyƙPcL_HQ"T:x9Բm0ScObH;_[ny;hP-:?\[;y:E?Mv8l '/s? {}!ۭ~`[>LG?.>x\>pxVM{|:试:&W ّ¯OPSwS(?V<5B腂L[yn%QʐyFї:B-ė|~!&K΅ ۈ%}/S&Gw}u^!d0WT Fv<ͯ褈ߜEN]{P7#HFfck5xech{$0=-STw{-kO~5|[WDM`"R=-S2ĘYoxCw onڪsxsݖT/ RuÛrX>U8ztH8 FSZdW 7ўt&օm'z(&o#]Q1#;H;Ȗ9V[o ow)<˸e=~Uo'FX}.qf}È>7.nZ`j(>B ̉_^_h>{%_?퍃;^c&p.l1^gsuyM3~})OGп/P]'*^ٛwJW7uzlEm˓:t۞Զ>konM-~ ;M(aaGym(?mj߆)q0nOߵ-Ǿr[~ʄy?mv-=m|sD3M̦o@Mzl[&C5E%*mW-Na%q5FRL"&=N7o>.&@_RXhIt`Tg4"Yt<yl,F֌)شh4?T9Dh$tvN _0ߔec™di REA6ўU=NK D?6A/9%k?C4;/|L_K\"<5BEFqމ e%_˛vs(e S*ő**#0ܰ4HUZR^4JQ;yM =`wzs[{ 3g/?F?"!:1=کox/jO_}O_x gn12^k_%zx5)-bPWV^Ğ+itSvGS/;Ip:'}pF~9gBH2󚑫$-)q's9eZ^q&KYs&eusiD"U1?4LhFs_!}c_xpQ?dZ_Uxk15]z}0==)GiZ!q-\yK' 9fMF?$z'hJ긡&o|87L(jX-ry-3[8\k7B6G'W%8)bʍǧp+7ZZ}l!DVjN-8[` "oou"+싔K+"Oc{> 7L. mˎS9U,A~t aۇom􆺲F(ll4e&\Uf^zVŎ)h}&9/PЭCK&cS }}Xwձd8E*Bg_h 27I:ǻFB=l,#?# 5(ˑVvH ̇CQkbI-=***/yp.>&|aFlyBa-knC{vǮ]`aQ;վ[u7爩2"UT5Fb%[ $ڏ*lDoSPK )*ң=->v @Zhu)ZU  E%EP&(T` x33[`Y`Qj? Y ðG4 Λa,8_|4I\RBL2tj zi %1>PkP4mRALLXHHh0'6_Xx9y8YB ;w[yxFe vm*N(/ 2??0ؽ#KUQay:,Ի~]Lrؚؤ2}ٲ@k9`-dXb’j?aHa7pnEJ"#LUWx`&Kۆ@=Q2dQ"|Hj h`(U+箈й1&-#YT}tX,5Dc k2QQA~>!"XD?* Q`O?on6A#p񔽯1KRU,<X~GX `S*ńC tjt0fB"H@2<.1IrIox`ZY-7fi+HdWŦ$Ƨt&>!19!kOE⩝Db`$*Q(ItJ\X%N׋ܩS>Vurioӝ+ԫ{~iM;9af:(+QJ*$߲.l-G[堯г.]wW% r5]v궯O N5\hXgxE/>HpهzJgK?QG=7s}/6nQQ)[F~2'٫=1gq/>|2O?I𓣽D^C{굴ז^ѽ{cu/.tѧg1gdeceekeaLYKO^XyE~F~Y~[O>L곲}O~|y p? iOJ8qi$cPŠÃ?2h!!;6|c>m᫆?7H4rȊQFww>~Gcv95C.|q&ƝSlozM4ā&O6Q4qu-'LX0q??0ظӍ/367nk\arRcLz5ޓN?aOnb0)Srܝ]Szo3imv{ڳݧL78=vz͌3W^ǽ+3U᯸7W ^ @Mk,trArraAMb L RV1@zlR]н٧e(QD4awcFf޾\mI5tBhE3֞FO@cNZ7qtqߗ̓J+B)W҆9fHwb4'CВEG0!Ϋ ݆ +<_m P_7ֽO15raeNf7]ya}#ް17\P ټ11SA̽_j>q'x[[yAff CR}3C U45>h@WB A" w۷s`3I/PURUFovuBgSviٙ f7x!5&=. 5.X>gR fq F1gY;G{EJOɭ@=1#`Pӹh#)7"'CFD" ,}|w_Ac$QKE,7 H_2'XJmYgG7O/E:An,"zα G H+kMJ&XAy{Jn^Js|g ev<J{dI'+w:G82=RR^X~qYtC?ART,ý%(Ĝ5lvRO:\ Vwah2\OI+,dPz9I!j *\-ٝĢ3rd 7WUkKd^d I94Uu6;-. v ܗ[&G ;DRC9@NfkG?EؔшfݧRa0Ud] Xo+?W_WyZ _-X~'Nz2u{QGGGޫii7T6IM|h^`{i08D>=;)`>N?Y>J6;-=9=vOo-N ߫9SA{7"_>P!Tl Ĝm#< SYF2L&7Sܫظ&w=I5P2b\mlg `ڋ"2#YP{8`:٣p6T,Fzz.XSEt Kk@fUtЃwFt ɶUNC+T(.ɂds9H# po33S WUxӉCde] rTQDX?־ a9+o.N djäPf@z@۸Oߦ! Sj34oDb)>#AT(C}dvf!tT ɐ<}HBevOQIVQ6c`R9ZT6;&/U8h)Їd/A2hɮ4]*غo3SaBU"vBK@J kܢ8$+->Q-1S B^>bƠWyɓ5GIld{eS--4 PUHe;8 Yi8Ulɰo C>AJ/:Oj/! s]Vk>?v;pY^=0QKx>_Q:Bzr4Ɣ4} oB|2!uPJsZ_ȇMiPmrf*S5[v$e~䣛p'qؓSu-*388@pV2^5Z7SIvm[ėJdϻE$Xʄ[P``HSX3lͶ<l^Z\p4Q (QE,$u)atgxh*>h b %)t6Oy"o\j?%xKb?Jk9?m9>S l/Fp'8YeX僼@%I13hiƼJ@ 񽃆?3З ":1f2#뀧{CWA$E%˪%Er4y,$?EN_ջ T?Ɲ@`nD3w8i< dƕ5e2T@Zf ^,_㭂pV T4)4EFKYRc#{s<'2h~ldB Lka6Ul{T{d-lSiTvrŶ۔?%&T*R>/҈FlVm8w!5Um B(%MplhW?UTR FrtyAH"hޠ7-%}Y8VP#RC(GEDrT2┬TA) /.I6)Oolx!C6Ur| c&Dة^B]Fq1jhPNMtdV'7(y"ve R$ ֆ*rV'x&x{d΄%GorSbil>U]2( z;%ys{TDx*ReI aɪˡ*v{[{+UXUE[fDD;xxrP^qTLE)EOdI킼b K9?%<#/kǑTvfQ}/9yz%Bq4a?9rOഥ8UqBzxp_ǏXÙaI/[#Ȑ`43!cYhZj[F9is/^]'2eB|mR& ‰~0IUVvC7:(/7ϙ["xұHsUV}[Y^K Y剀Kr@3]q N:p;u tG3A3|i0;\]=>Pw8B Xhhp L"!T:MNYpUX#l^b”3p&PZD*Je(rShYc@ځ6>tżY+ZN9y˦ դӇ̖qK;aǙ|[t_bPhuϣyŠ; e_@a!Ny.;z-恴G&-NEiK_ <ھAǭ.<}!+}CxĘ1tMݶ3oBoO[4kVz~]m#37fu#B&.LsnL\\ʯpQi색\HjiO*䉲LRD&J&L7o+#(CE91HKVEP="5SҾ>e|6ڬN2x۩0ߓ+A/KdQzEꋴU6zxTK.yK%[Uf Hkʎ镩_Gt+#}o} iNNjCψ֍>!J.5?*&Nn[ݪcG6_a$ȁ6 >jy ###+>5yKO"YV겆5t`J Md\غڴXֆ84jaWD\2}g(c;w_R!Q._[O$G*'U7L.[Z Th 1v$, R=Gb(D9ѱ֯L\oa}mAEKcB-Od'-q ;f]"бe7,oT}{¿a_Ypƻ>FyӮ8|v E nwRu6||2& lZ(zsRA3׭OGA~6!#+[DAyxjKRVM-;u8y،))ӀAccchޘђ0:N,[.p;,XVZjQ~mueh:K6 ҬGC)|O5qqXQ2*窟Ύ2 9_!olSg_lCF`:xpismRYPȠBުN(;^.=RL5g</"ӤoTLFe|Qb vC:>>VJo_IKQco/xkO~02H 񭑽]fP&ѡ#l 1Y|fC~:caA7!+fCdмĴև?[pzm6ㅙKh"OdHQGlq;tgҚO|jg4GLg@c9@-;-8mEC=a>7oxaVl: =ZV\##lq,e3-ط52F-6v5r#=".2~kmڋ[VCSa9$\k#m|kX-OI^.d}ӎ[:0j|Ƅ k M[paK%E0z$ݗͯ7dwil4+|t^ ߷P*FH}GhNC_WyM)K2J2)5?rai ČƯֱ㰷fǬn]_ȥ=3ޝl0RH^wݤS!E~F/^}Y5Y[}fi [k WHu~a\0OX_C^gfw>ߞҴmi[AVYi$&>룍|VXIh?~r`s=m&XA)GOX-dIzR<puNMOl_?2q"[b=Gl%%29$hܨ+tm_M|MlDG PUT3\fj4kZJ徯!UE*cP.UuwIEVȯԃ(WɏrA{UE\6UmR|F=X VQ OP:._cr]KmwB{iT鋛%"$rhމe'qԕFN  v mܪNTd f'(ͦjvB(N&KSbPpvMԒ+tL YlhֱŹ-be,Ǥ Hܓ[o(wd| tt2+U6 +[l#6tu[,}s&X4Ec;=Lh .uQ"Tqu֬e31Y[$~}]nIOL_:gS(w6UgW80ִkrr1y`#r5VrFYć~"Z1}dR TPݡ7ľsٴ@ \UfNY4UU$E|-[*xk6'o츃$>'r ^KX>Dk*NM5FcO1ih>ַvNQ MmT~a׋v_ L/Ȳvq5}eI3* |C4)#rԘ=R W W?Qʍd,#0,a'պ'pb G哬(dfyBF'h⑇>Qeg yC2>;tp*6}!;Ɲ}AqW^3nb`0 {FЈI#EPZf(*K2c)z&Ii} -l:>:*0Fi82Prmif~V+MM+Q+FO%p.Iǵ[ Y[ttb3%aˆ蹔_xW'R@;3iZ}6OfSQc-am:*qᾣ3B2l4a^򢤅sbLOƖ.Fώ1?gweL~U֍͎46K%;8PwdgiC ZMN$J\ IbLpXe,ʎ}aZ}Wmtbt˕¶)a Z{ަic0 PF]V,rTvٴ1mbxD{%#IIrlh'Ë=i3P:]͠3["h#'3Ü?8]BgIōԅi49:)@V)Yt7pرz~<~\K%Λ?sKަh̢ M #a?Ի޷jw[d3+/e)ٛ,)s}C)79~o'lKiBq5tl7^mn15g {jVɎnAaؙբG>Nc'\?boi6'==]evE|ősl*M_Vyx£5!T\MF7b47cLEDx x3^,%mŚ AO瘖v7 vj)7(*kkf1)!Vآ#9pۍ=gd#<#[OW b-Al6YǢtۥG|Odv} Ka/Q.n}E۾£C᫃hyVQU#m)0&u~s#w*<οf/w\D3[d'k[m IąIZXbVa20T7c6эtk ԅl\=V$E7 ;#A-.UnvOmCEDgN3z9_kJ1xo<KfC~CC>zJ.r%\I{Mݚf.f{H B1959 rjO SZi{׌{<:}C(vDwVvpvӮ='.)5^_|:y2l@ɛ쵯\)N a;{TJ&oкr-/Uui}dhI4&ߘ p1; {)r-=3UfV%MWHy;YJ$WcNB#yw-_g'NFNy;΢*;`-I%ERh&8:hY9bV2y3͠Q4,hj>b3VOlM&Bg!!|"Fd_+ JEօ1h$?%$V.`?ItdNу`㇋Duw=6CaIإi2]\dIv~>1\bA1Ȱ⤐m6?yشˁI|\"]JMtԝ-q63\=0Fǧ.BeSDZH/OK\f\r@ߡ:sSj6-zBLYf]H'$bLx8jn=&-Z z1onG] ^{|wGq)QWtQLr**;iʠE^l]tԱlV<>W+h :\ Ci^4wl_|7ƴ!dg̑@#F0ɬF wOؾ{+W2Ƈܻ_k7<c?DgCYVF~[D&nX=crWGm|h rr%},7LJYtILj)HH[;>iBlɀ;1ٗ&ag4]4*A~54҃UbRʀt\1694`ݾ\ qQQ&1,y ],#LƂ9'Ҍ7HXj[}=;y]zͲ?\j;%g%X;,sa͒YREjL1q⪳3SfO@K}䗍tNt4 sh:]e_=jQ=:d'11&[ ķnK*Lyofs/>- J}ewIjs۴ߨ1х-ؿw"d[-i5w~[oVH}%A,ZR7qqƤ͘b%\AJV2bi@z0,DR}XqxpH!c +WΙ:q-6Q!CE_MiKӎ6;O^]xDljٱsbtĺޘI9|X9D;7Sh\ca'$*n̴&+֞>?bӽMcA09y  g~=*>*/E[!:hxs߅ >A@|WRu[PeV$ t}eR u Fܛ*yk'RBԕByXyE%>Tщ4@[Q +0i?TPu<74 55\P}PoMNPF]Op-twN j}p).|.Ƒ~\6>8]X܋|Tz$ǵ"w8(9(  [!6.ٜcr(OS.jyGX5N\. GV6߀ws}9=''m"+.Ƙֿe5|㖷9Ϩh II7^'5]ӻ)St.C96Vt_(+9+y3?ma409i⠱otG:h4nUA!. `qFP-#q`?`4`L\k0^~,%*WsT:-hlK}gG!8VAG25$%EcKF_?_І]yTO _t?m>Xa,g& ˿a}xG17e. kCIu<ͫ< 5]UWyblRaՑ_XcP~;;-7ZyչYU|Iz[.6O|pzۏ4m=WSʠQGl2?aE]|>}ڡk~!supT0ƆHi?|?(tRۀkk- ݻGq^o@97?O s E M~; !_5>G9؃|esU\_ q? >(6zΐ)pX/bu(pQeon>Dޣ./z6\X8u2Q'Ex躐vsh 2XГP!'iT3@X3Vw7cuWYr usѬ?9Mc`~ viXEp8[sgHse-/Cbߊz#9;U;m N3yus }]t1x~k]wq5'WOu].OU(dxS龎q xz0B~ڕ5^/` D |wUk P |3Ekȏ}k#.ĸND0 D =WsȓkQ>9OOQp=;m.՝kc>,@?>O/W](W#0A6B|pL>jH[䎮2#n$L^|A]X5|oWN!"%Uf#iee&49o@4]4/t`++_I./$o@'҂}Cc,&^n&]E2,'"YM% " aHa.晪 ?◹ISN$p3TamM u[uay iJ@[ `u6o&:dX}i1l(2\+5jl@pgp4B^\־aUN}hJ} җ].YcRPxNuZE<1MR:5> j|:WQ#K+w!/?6l¸ {'p莚`.HhSK/{!E"+7[Kh{m@=:1BHYKh[ջQXM>{T1ds[7/։.#du=OD_1}%7Iợl|Gsb귉7݀-7Ox =c /9c=9<>˥|U4wllT>/c_b"O[vwV9*GY)<6)(?(_)qCR0ؤo [١,vg]w <^F=1ŷ~ x.]b~ yfrQYYbPE3W#UNok}(Su{ʏjj{rWQ.sHQ>V>8׹%k1Z|w:sJQdiHܕ]:eTv*wXe5ۤX8x9sV~rbC_k}R+kV&g夐;줲+o}sg(ה%ܷJ 91V&8c9T)\qΩI1U@_(o˷.~*R||l=Fsx(<%??W*O>]yB .ϟZr甩qiȠQϴ]^XX֩tnkRWl'N{Il NKr v*Zc/_TJ=Y6k\*2<էO=Y]W|㉱s`kun>yzRp8/ (O+ HЪ`tЇ<8v$+KJ"$rա(HM~=gJPr9Zv!oˑOk_ႜ4"twU]{g*,ٸ 9σ薓}扶|= 7#uA/,_q}iN~Y6ԨC)T;ʨ}rR/ٹ=tw/GSJ"OMR8OӜ4E?Ui }Բxc)QjaU`uKrŠRs]ZZJObʄZew@^2lb5TV~ڰsPA;p`W d <ᘍT4{aS8D3]܀i_WH) qȐ<ӆJg{eH9eTXIRT'5I-R-w]R'!iLf9!-Ik҆%IGҙt%Iҋ!~dA) NCH@`1>4 >BƑ0wPg V7-+8\^\ hY]\@89 ~a`E/B vUCxqz9 ;҇y6Ɩ3缔?gf0 Ym͜ROĸuWِr{\=vFYP*`X\rIFxH=ud:.ic0gSiMV<%8p9H*.O~'?Y}WY);O3>۔wC\OPV\'9w<`/5%@msrH|>J3?u);5.@yzVRpٳNPJq1R9{;{Ի?0xJR ^QFY3^hz2:uqlx5ƧVP;R1vOOq?fzCohW~/׋W;9rDrWWOs]z=!n?tzZ.bΫq2e.Ua-|l>OmӮj =k̵9.W R"/V/n#+4XUJYyʐ];rV9v;g/b9ʿl0If9垶ӥtW]{Goq`rYcWr{~SA9({ Jr sަߝMU~@% pN3؛n||h'L r-M+ sPiܿ>rL9@w;؟uWYArZY;r>Fs{5wFgoAߛܗg?7 AyNzwίߝ(5whsPݡQ}W |PYLŬS)sthy|ٻ NSO䩌ln7B-g˽my醰,e_l̲ y9R5?Pֳy'N~sGS+C-Ιg2tW)nuW|a<*oo٫VJ_!:)PM7{ꥯNNo q^VhKu>$ׅ0=?7.ZW@߰K , bX~+U;;RY?d`&\uUX.c.ayg\WHy/\m¿ ajǞٷklG y-iӞ ӑtLzHWN-43JftvmI1|cħz y<%=z; m䶉fnC]l=n-rP E젢|:Kp= wI֓B4̦느ez]QcU@,`~1wWd @L"!XnB7z}YNJ13q+zr/!i u;LUC9zhqp )wUCJCr5e!UJnJlVbU&/Wu%C皈}9^剭:z.ys}KfKJ~C^#_$f؆Jn1 rO&f%'/mo,3F^.b..mDB7pavALb<$5Br<+s _vMnppmR\D-?n6nGXog>)K:`n\eøm?n%xlygng|?p } r E?(϶a&81ʮ^kR "__)oy]s% 6;"9A5_j }-٬gcWJW~6gWŮ MyFHȮy ~Ůqʵ3w'-ҳQҁݮ ᬧ}7:noDa'WeNp3K]UNί7ʮW3h*WBOkZn嶺c~[ղ+rUq XܮALBk]bI0 ,aNB2Q!D0f@9;Hji`xc& \.0! iSX rv-7q9f;]nw&)n0eĜ܉n~Ŝ;ڍ6#N|B6wkm6:槷ylZ8~4i1^PgD`**,+΅w`r *ިOft@].0].Leqqb]]yIwDm"ц~Haa036" s $I+%K(gX -N-qGϑQ4vv(GSTI^VT\UEU)]brpYݴMvaM19vqnvnsnzM%n۸])Su Sop!vSMav nkZ;pqM4 -i´tZ`-]F}MsySqZ8-+= 0tg_ "dsPy\ &XÝx{r탻.$ljp"σ Fw6:sם.>Nd9&1YI9r*392g Lzgk)V/&3ɒUUcQpV8'N {.pHN I$}~!QD3j(oz#jc_$6 $py>!T s L֤IshcqWSMyҙ=y!o!u0s=u75r /n[]iBj] M?p 4w.sFHT`#z B!HA.}ejn1t.WLhHڃ+4D3]]\,l&>\hQ%n>?)T)!T/Zij[n\1{8nKsKӁ@ΩZ%^lw_c W?^3Iច#1V6 MBvĜ 9cfcLNrۃL\cÕo07x4\m4Dg{mQhPcbN>/0@(  C0a0BuϞo$'BO4]tv-qHgR--7F-NYM@kj5`-% ۫/aA/Y] H3 c/np `,?2H|0ǐQǁ?Zf $!!02L?BXtH[usv6wvޫK,WW- OL,B!A]V( eVZFhs6UhD,t#==z `;IBTa*Ki/AX&!d ra9V d!B&B o 7a,ܳ^a4V#PK^Noa,mimetypePK^NP:META-INF/container.xmlPK^Nwvw-META-INF/com.apple.ibooks.display-options.xmlPK^NfJ,zmEPUB/content.opfPK^N/ޕ( EPUB/toc.ncxPK^NaR  EPUB/nav.xhtmlPKnN*' EPUB/text/title_page.xhtmlUT\ux PK^NVEPUB/styles/stylesheet1.cssPKnN"}A2EPUB/text/ch001.xhtmlUT\ux PKnN]ƠEPUB/text/ch002.xhtmlUT\ux PKnN ="c~EPUB/text/ch003.xhtmlUT\ux PKnNu #0EPUB/text/ch004.xhtmlUT\ux PKnNE (G,EPUB/text/ch005.xhtmlUT\ux PKnN: 7*:EPUB/text/ch006.xhtmlUT\ux PKnNj5я :GEPUB/text/ch007.xhtmlUT\ux PKnN03Ŕ K)XEPUB/text/ch008.xhtmlUT\ux PKnNy,VeEPUB/text/ch009.xhtmlUT\ux PKnN9 "uEPUB/text/ch011.xhtmlUT\ux PKnN5 |;EPUB/text/ch012.xhtmlUT\ux PKnNɊ&EPUB/text/ch013.xhtmlUT\ux PK^Nc0EPUB/fonts/Cousine-Bold.ttfPK^Ns֙<n(EPUB/fonts/Cousine-Regular.ttfPK^Nfoh$CEPUB/fonts/Cousine-Italic.ttfPK^Nz9hN#6EPUB/fonts/TempestivaSC-Regular.otfPK^N L EPUB/fonts/Tempestiva-Italic.otfPK^N}'e$! EPUB/fonts/Tempestiva-Regular.otfPKL context-modules-20240428/doc/context/third/handlecsv/handlecsv.pdf0000644000175000017500000054226314474713055024071 0ustar hillehille%PDF-1.7 % 10 0 obj << /Filter /FlateDecode /Length 304 >> stream x^QN@ + E:o+(Fޱa$_i=<,Bj)rTZ?$Y͂F%K+~#gA,T #ѦwZ_$5`n~9R,7 d5 PMǴ:#۬>chj!n[ B^a[3\L9 ΓoC{MePUjG][z5jɤUR"b(#u(9 bXn%5T92Cϥ$A/ꎈ\K~G^C}=u> stream x^SAn0 +􁨔HY2P&z=PI@[(p8/Hyow I.) )XZƜe H[\Ȉ6w5mSî!^D"8  DlY?a("sKk'DRuSE@` 5׸cN0*mDjTWVdoOF6E!P({sJN'TԡUE>K(MHUf#'=qs3:%Zi@MYfXu9 gECrGIe-%AoȾI;ᆕgϑB/_S/6h4?r}nn\ |Zbrc*>]CO3|{Txʧai̴Ko+ endstream endobj 25 0 obj << /Filter /FlateDecode /Length 306 >> stream x^N1 >E^X"Q|b_ !}&H/fJH)- HH)S҂XrZ @&a?PmbH^Dl˗٣୍ttGTJ$(wZ&]Fbϭ[]0)-w$NכP.Ƃ\X&r~G oiG\K> stream endstream endobj 32 0 obj << /Filter /FlateDecode /Length 587 >> stream x^Tˎ0 +UI(؛@Ϲ#ْ]g [H Er'Z~z3⋱q'9vAԗegI}P)Qx+q1%$tOJbKw5Z H]41wpń='֔>b!Ϙs,~ e- u ֜% bOg0pV~/|]"!i㓛*BgH棨IqURȵ/ ֢en/VccTRoDrB͒UK,cfg$rN~nJFDzÊ+.R$Q#J;is x6P|$g=T]£EQT{]`IRNKEҙvĭan>%lepx^Ð k473;]\R ^*1xGz+!~'kA2*>^a ^=d/gE-V#KJn#NqM㽴[uy]Y}VD> stream endstream endobj 54 0 obj << /Filter /FlateDecode /Length 581 >> stream x^Uˎ! Wa1~Ҫ!<(Ʀ=Кiژ*Wy #:`F.JvI.!D CŠk$]hn?4;:01{ >|:$ =;Xj͆H%=I ', rg1ORJ'KlT}ڀu㺶}lVd_h^%}ZщxĘi;CQ SbKl%fVqHت~ p{a'li-ajBz,;4NʛAW+SUVFopDž|&6Un odkRljn'D^($],9kj7> stream endstream endobj 66 0 obj << /Filter /FlateDecode /Length 7770 >> stream x^ɮ8rZ-#vIQTwHR` 'N?Ͽ۟O_!Nr_o'm:Ri;8y_'/ǯLK_^/Džo|m:-G {joǿs}?G"WϿwow|D]f+}>vlZ4)_o}^/ᄋܚ^ce}޷_z]4>Ǘ>帥,VnJ96Ŷ)e#%P/{P忝b?b^1QSRqS㾩zn vWk +z֘0P\)aNqZQ߉\\&m<̈́\EӴaUj7 }GǗ1QZ)ma T R&=K0C,X uɫU,QDŽQ߳Ӫ99BާeA=-əSKܓEmy37k>,1X2Xma+A5pqBl&|7^ŝmI&Jr+~ jN)ۤ%M3^5 g+q?4`x]}u}Dyp,2{(#(Ovl!E ^: %6T/d(m=n_zp!$Ms@1jɺ,G1ɔmP^8:ZIܫ#-zb)6)oGmBt߲!JũILnűk"$R`rY`$XEC E?"@ WJKM8V5Pq^=mޟƣ@ZDTeYk} _R]\aoGr_X|~)Tu̹/pq诳&b&Qtr'{@…R)?@ĉqxܰ[daԼ Ee0{Pb|t 2BKsLzhi3uՠ9=#Xy~;>gx=W4z>+3`1Rarݸ"41>;zzS8BoCےjPn칕G_L] [X+Px˿ک|.X n&M͏;@"i l{Z#:BQNaXWqGXٿ#a5xjܥ?[Kbd6 ϲU0QOn$xV>^>ف wTXaq_r.׭\) /kRur ?jb̨]aC56(Mʡ /x.vݙjlHņI23f̴;rh1)7ıiH(˶dbHjP;,Y ToNL$)~735@Xù_@7) !էL nN#z _r6N=k<=ia=fU8E GLOTG_<]-ߍ zqy*38󎽰%n)$VNQ=H a ?iO e]^as\}yl#yϟ6LʲrgDb %_i=EzAAy+ZfȬUHLGjsf.}2?#n6;uæ>l0WRM>~>aTDEmVn>QqGA^]w|ñ} el^d%`fkAm $k˟`]lHbbHn72T}Na&#^6-?/fćj)9,q},l"oG:ahA 3 o$N[m3z{^yjAH8jϪm'ySn;ggZKFJe@ ;40o;΅IYEy79e+M 5m$H1K,H_Bf TҞū5@ :z/>2$Dؗk&T<9, y{2hE,G+(_d3Gp![ ٿoC N N'mJv'iĒyT^E첃~$7k`ՕwOX>G_ D4^|Tט-L@h:eP/\?uc3D_K5f s'yT$3 53Gx zIArjUwz20&Zki]LC(- vno^QzፒU@6ñ^_~ȑc6"h\(FlẌ́Q>CŀAǶv:nR|VRTd3bnŇdW/N^%~2s vD_ U < @,sT# xX{EFX'"R!ALwR/]xCD%" iZ |*YcRG. ZoVR^z䲡ɛ(L^ Cm]+[ޡ!Z෡NH3d&p/k! `S zs/t {ud@ ܫvF^/}ZN×S@T@f ^ܜ/mo:?0zYuC^ ۾Ee{bJg8x Os;\j'\Hg' OӊyO#~s=SMbwM{tXΗ{x"`2g`YIc1 qub&Z j5h#7j]qN7LH\c/*H.&9<! V0I5GȍIi#a_~*Ha)1 [>ԤMwkvjjEG/>EBb^tjJHT0Lx.0>*`lcӒ2``r@IJ:$ŘVTJT@pIsۜ)| {@O4R+X-!rA&ʖcz4/Hm`]-1 "R 4h^b <#bR"FHkBbQ }fA[J'xMFT6J|&3V݃"ϫC͟p`G<(V{`に?c""pTŒ¶ 2|@rA,Wƫ0ؿ-Da_2UNF^ ʩZnC{NQca֠B vEv40j'P/xK T6c nŌOZsAP%?lcj? )k~yP! FTS5N>F:f6L X7-L-^7\4n!F2U'΁Q'EV\j"Do%*ܚ3}dQLB.OV˅i?a>3~VLLbƓ7Ba]-:WVGx,%׌٤胸\{iy̒9,iBH%uQt+]gTۛPh[^bg%zU|z0=r"(ܼz/+B}FuXR|WIeˈ~j,|#z;9F~CO[n/T#b3-&695UjYP-mR)5W(}uQ Ѧ^JȁSˮaO6okD 3:3mMS{4rN:PtdNNC3s$z|!t˫X117-sU6K.~?jiLk/O0;=+[LF0@X!@DaTkڄ3jgp.iIi%{'ҚA\̮ޓt[C.˽QD=XqPD%"ŜVT!³6*lM"3孄 ؍v3T<7/`0CXAHa z,@],H!bEi VT5jPʦꀬKⱀaaE&2X_+ك 5߮sbL!dbRuU*w/$b}`SWf(CWT%(+BǻKٗ {wܐwaY7wE&\E=CRb^T+CQGF:HR,\Ӭ#-h!(2 eA ĀMI[{'T} NaWk[Ndقx*NB& 10 56G`=X;O6 ȚB߭y! J؎DK;2ό=X.\\C519N\U$-~{ 4^7^-8VF(X/$$r;j$g#)*˂ Cgh3',!,nHBlVgt4n %/!ok(f$nRNUCƈ5{ldW@ĩ*cyS 'z;Ğ=֊cYnlrRSS[C*JWH3 =كbb'"E_#48j^WJLMJj?  B trk4e5ɽ瀵:gL^\'~Za!Iʗp+܈Ͳ >HZi =o0:\9?1wFߠV!akz!RPjfb5v!q}@$\qHjy8x-bPXyŁCY O~_g*{Mh,W,{ ]n/:u|6n"x1EG{ryבv&ݧ^۱ڙ);Q$/hq;*ç7hxwp >rc 0p=BT# HlΔ,Iw]pG5)ek3Dׯj}:EEiD^jƔWnZ`,央MQvYCQjvY# э\X./nNglkM]鍦kH%T͎oM<Ѓ,.e5'\~.λ=znUƘ>E֯EQ,HYdzCE|_]OJ7?6^qץ_*vCpZLREr"Dԣ>I(v׿O*;N18h{uTA~~՗Ʒ~|5jku]n姶&"bu$+QP>/@=dr_ŕk ӲLxY| b~QXP kc2C 7507VƛxMKnn#`MkC(=]wbi=E gzROn-JbBbotH|9(0;t e6~(y@\b[1JY L #-&q :0j]hr uο̠k5­)axC~.-o䙾ع#0^ì(+~B%i=?'w}s}~YCE|h6zy>_!o#А=&3;jܭ4"B+u˾9aХo>hxB w) Kh~h`T#81q4\?š endstream endobj 77 0 obj << /Filter /FlateDecode /Length 6307 >> stream x^ˎrE+>DJQo{fxjSH>yǠݙH;~_oB\-O_᫮^JH+K=r_׿Ӻȿ߿طʱ.ְden_{ƏegP^ǴBؗrǺ}ղ/iAxܖƣ$Iq[x֕ozql 1QlK, -i/j Z`_JԘjVKQ{ %*{&5m%XMZ^[RLyc pSb:vO䱬臭ViتߪoX%E;H!M ± 5)&ۂPթJ~_Rʘ8VyC(x3#TVe 6ʦU9| ]XWt~Ҋ24e?a!ˇ* ~,z^)M_KeV֪j.8aR*_>/,kiaBUk$oy1V5}Kj吆}B.K 1G.D5Qmc|6tY7;~kJ`Ѵz>umlf '2ˎڳӼgmn_ՄPiŠʧkvM8PAAG+~ex.~&!aYc?XN˿!kX< ZSb<>^Be9neُȡPCoN9msDQu?KC'!eםʯvu?GA7¼yc',uu Xn?=,hJ]CJd AR!,i"%@j;cۡv.y2 (y(<%sd݉;ϗu^ \93?,T}ZNqIuH@yު+q_N<;)U\+Z@8Z'O*u CG(]"2HX,wAe%Y7~e#̣V3?yʶIkݓ*j&4 1mf2x-vwS-9/G%~l.ķG$}h2;65ہaXRBp-l$P]ZHZB`QޕνgC¥]qe~{=S#3fGh]or nρL{--p_'ֵ9κ>?-.oikV /a3vNeS#x $SχG츭ظoymE[Tۿ0lL+"l[m]g-cCXMeYўRjF6 f<^#P&&_S7*kjyiQޫMKIw{#m*:>)V.qv#Vl ?.ňF|,9 _#}b ~DyTQ@Kv/-k 9{ G 5K_K0a/PpxC1$"oI Kİ@DU)men)N׈F1k,vFDzZӀx |dY5ԙ`7ق }(Fp= r/{WS WD4ۺjbrI=V]/XZ:UKCϫB%]@ @wD1t.SDŏlY ڃ54X[{McOȀ ?O_d7U#HUտvfƈ'-Yw Li椻)"n2F(=T"FZFP2k|֟2ͭ)NW d ?@zܨA'4s;4 2>yqN wT74b%JQ/x9eBB`~2HǞ\=/)ŬfբEU32cs贔ԇx"e{Œ=ۤ7rR6 ei``I8m9vXыq'hvѡ9SeD Y  ۼ;$3,nȳ{$\#>F p}@ Xe\qDU, t`VkV*ϢֶNr*D>(K%ϯ'q@|X˘|ѩU(, n@sx3^x+cģPA GLh(,D:<}/|:X@+2}1#"߇G%n,娌n-g[ A 7ryM6UܔȆ+9cd9#s: KZ-*R& 4.)}f Qy7R 5(#a#)H(/i_"*A/Έg%)Q5II'v1鸟j IEvjFŕolFG*Jl'-"G:hv%q f&6ջ0vf%x#Xg8#y=ky~@_o C07N%OU؈kS#ۑbnv EHo7YM@(ڊZ #h5w8gc/{/$qa01F= V "o)@_&%ſĄ p׀v#1 =2lo"C2!ŞLj./Dϯ-"PP&lu]`m ܡz̸{H3lw``MiYwJq k]SKرsFNb.#(LqGbs E*]2Va@Ĥru̠c㶰Q")j;2/}B*SN%GbPyTO8%!vKĽu"zf^t%p|@Aq7X zX9ED"S,yw+|BJ"D K`ZZ$+P` h/`͊9E%Rn~Υm'iͮUßK|;! dXIjdd[K{x&w^K DkRfh9h_Lܟ~伯y1'NϿkTmybD1 AnS";av߈3l#:fsN ˪O^`$|"/48-oZOOFb5̘1PO`"nָ\?T`B]!2QxiY#_ŔϬQ+Z!US/Ex{R B7z iĹ9)h6=-+ pG/FR\覃*$꟢6:1xBp=YaA ӣwΗG6G ?" njh /AV 3R BFu[f7y܂8o=6~ZPw>)\H/Kf׈繑r{wQp?3,n#XU=ċؠF/Z1g[li5`Q=n(X>gAȏ_.Z-EJjF"@>T=c?tdFC%[*{*LD.ZyFG32 Q;A j%@KKKpVRsOV i-U76zo'k +R-hedBb8SRS )HtO8liNM$TMxZ@݀x^PFPNٺMՠUnG9K :dFjo_wGQkxa}70T[Uu#R/1wRPܯ*FT(>6 iᶋA7~qnDSǩžRh9ߖRB~\5`GCFbI 9d-߼хA*g|8$qnƺϫt VGIJ494\Ba_si}GHvgjt7S,]B gL/q(Xۢk Rab31߇CuF?a.ֈ=Nr&ŇᙑXCa>=iW+M E%.`W+QKJ%Ćhn.%z`I1|H[.Jǽ"N/j# 0+h]RHD-/滖6ˬaT7g8Rk'0#S'Jf˒qq pa?.h~Z Г#x7~i1~>S_Jbnc%$]0L ?H (7XMRbedf *.Pe)) `87/6c$^,_dM]*\9 Ȏ6=. [QɕTH 3JefrmgX C=]BÝuU3aِ=T-Iɬ";ܡ V bD~4PR6Yy;\hHw<|iG_pwc^ Sby%<\WB،٥Ml=͠*B!#7=bl9s^\/Y-OIULyU%$;ňU>9>LzMͯEXz.j^\ %9=N)g 0$WmRRS* O]D1K E"t%M@,@p)VJ@`xD63!1b_pJkqrMF2n/o[ _#SشR Ηh’?@}"0PM+FFJq۞Aq{ ,BPxR^K񂴢) z!l 7n <5v#Yߎ?`4/]n#OJh Qq/҃픳/D.\CVR%PegZL^o!ޘ~)Zw)[ُ{MҔ„:/l3?/4Qy &0*(E?N bKJ r؛ 3[}vM~)VI|hW}cxWVkzOzvtҰG݁x/ eszXsL.-t4_H 7?dV2HUӎl]$&{ڥlJz٢lSSv j]WIϨf K"x"h! [.ATv{ F֥,9<cEp@DBŸm+;Hk `2JVI-.aBPXʙWI篾-Z↙;Nsf}[Mq9W(Se;׽oXqĺFKx^PtLsNvfe|E˺eoϿ:[ endstream endobj 93 0 obj << /Filter /FlateDecode /Length 5764 >> stream x^ˎ8E_\$લg)ne3%>c>[߿o?$o'և{$疘r #K.V=???\ZRt[kR\xm[Rn6ˇu?.n|n]yG*~b:,.1(v˒6XԶe[>vO#˾pTϲ #۟?Ecw,-շg#%zBی[V;1;|,E[vέ W.H|йm)۶B5߂^O1ϋ[3Vd#? my5Bu`K .mjC k\\V@BiE]}e/kQs~^=̟ٛ{;m8 RE)8cu av!Ke++Se)}X,~Wu?/;ĦN'*aNxwjHN2} ~NE+BlidK^gFm&zLπ1[ⴙ̛..!cҗ .i1DZF;9 '/1y:1.iEkz8-xO@E$-6yY{!BCK<:tbAXQ}s/e!bsd1L; 8ȫy{u,F!楬?B($$[(v &] _#Ta>n#F1W(ӿ&'i j{q%v!֙Cyf"?YKbvw>dsD/q &lz{BJK銇6 .\p^ e7&:ma59КBmĈƶ'y-Qo@K'η+4ُ~4 .Bk&);ۃ3^v#؎w0r }Òm̞x򘵴5 /X̚8!oDmqKGh*H7!Go(p`WD=K$riW?!&[ǡ~M~o!DUp\G:HE gPV眻/j⼖OC6jp)&7N%JgϏ/nF-)@;Uj}C.Lf|=l3HH,}K{SS;_!X`ըvrO7,MHJrfN5b3a n21O^l]uBsjRЖs^--2̣J+x?M>ѫajb.Z&5=nZtm:@OMݝzK$?~) )c2s\ 9;[x̻(vXO&]%pąU!H ;"yT7PX6dU)Z}81 vd=i3Б2P Шz.. !5frW'6w \B$xOh @漩jm݈)J;@^ 1!lU%XiMoJA'y T?!2I)w$":S=0Lkk ҮDJXkVv >Ǧ yӈȘ H+ȴ(IwTʭ(ea_[ۚC:v+`X=z픜K7=i"@P(%@ K1PMloS7"D#D*nq\@`Q,"}K"xt 50қkE QإCuasOH¬BF :&v"X\XZokO`RQܔިp;wbp HboE|@O|W0 #hbw+ ̭Y_y[1r5`⅛$!,FMbDZ}.`glw¬'9GS"{W!K[a>f()AhT U ,(#Y E6`sƩ8 :epIIŒV-;FHEd%Je|<5 DѪ&p0vyl CH!X6/A0,Yz40!@!2jh2/2נ;$P(*ZyxOq.q0 BO`r(:Hd|(EK7KQY#b[8Oh$p\M/ R5vBZ>݀e9"t Yw./.3a+$ڧHCc, "by֛բdAt"hCdZ߽6tD^F~;u;2Q oNK.F{)~ރ/ RY[F*w7B%<Z!G?9h1#e6F] ;n۳V#g;nd{6q=X1cه6?^vȑ,^<ο$k Yx,IKΨ~}Dgk u@Zu`o;>?iodnIz+PtFUo#R K١r+!zy5 qB.A bgh»;N h=eߜ̇~N(*cF7f[+D:EکPb"XKev2`4$@JLb@@8]yWF%5jg~WcUc,0DxAW Xpt,u\" =VG( K9 !،5GYݡ?7P׽rj%An?Wr J)@=r7iz0A̤q셣N N:-ؐ~0;4chUV̡zj0K-{cǜђEM $4V4_IbLU3>lG[}`KSڱ"J7!cW}{f +`fq0 RȰxD8jzj3lug]yg h{MP)7> JbRQiZeTҚ SX}%G0=Y9MKjSȣ@*eF[ ) x+)(E q~$"iSǥi xY3{e9:-0j[wyĴ9@лd-DHc.-vonEtP*7sY04h:08 I !YLPG67B| _8;w5KOyqJ{~,׎۱h¾> {ӆUm_W͞fw炠3 O+j endstream endobj 104 0 obj << /Filter /FlateDecode /Length 8673 >> stream x^ˎ8[ Y{7jߡH(-O/\JK" ą~t+??}zmS?D,k~?lݼm?ğ?~oK卾^KuX5T;~/kKKǗ ]7@cz|~Z{d֥q б1ŁM犖54B@{`J5л]E,!׷inRiͯc4y]vg3M 6vH#ki`pމo_ݱ iAX:a67u}:o3Ӝ.>pqS9|X_֨Oo'l%SߺWF,W{Bx~3O0b:h/mz05nԔaFE}"мnTcua*=omqB r*ƭ`ԧ%WuQq{fŘ +htuuNCP6v{1Ւ)5eUi[7# bIӵVN6$j=Cg6Z+r庸NF9qVW;~,ŁVa;)D&&ozju #S6u{@feEFb-:'{̩xiz q ܵγj̣9 n„e^DO՟L&3TU=2`I2/dMVpdwp\W¸*?_,Zȹ ĮQzExo\B]eŻe{ѝ). ,[kUY"VVzBopuoǻ8obt9JѴMiZ(]fVM lw/cW|f|[VZ1;ѧyY9.QhI\mn0_3?o{A[DA˂Ƽz_Ή1d1aw zK};a? ~~A'~  3}] Ufф6zݐp?laYx>5,Lzmċ@ٲ n дJe|H2Aiu$>gO'c [,+nm"ADfDN wLM0t-q?l"r׌a'Ƕyv:Hv.'Ȩ 2"whv)I"8N,HN=]~E. }fVSTsٟĸ9"3~`EMp]ˊ!f|D{лrG|~,NYJuZvD~:n4 { <|)A V}[v%-Cpq<L@g2|g&CKmS?7`^gxkԏ #/vފ[լ9eCF+ ᷡ?տSkȘF6a'KXs`ED$2sl]W,&%H] "$1 ͙՟ew\-RPT+Dz`)jn6m q.FNfG* "&yی;$( P,fp'J46g]YϏ8+ xLsL'W#2Zf%}tBvȢ;);Ez#eez|I糛, (saqxf-4O۫'%_;}b W;e:N=!BwvOsU}B&--.| nn+xV޼XŁ0kF1t:'H^_l 8xCN{DuҾ "] 5s0 hIh2(0y˿T@PHA7S_U- CW.);Nu*4.Ll>HyHvbp,{A\i.Cέ(v(| | Ku  I`wj*_;콎 ;\uf~q=dK Cܛ3pnЕdp3ʹH-7HA9 Q`Y {6B wp $v5hLf[Tk%e &}O R';ٱ!~Y<90f']A;7Ӏnǖr|mّsIɚpt Un m@OX BL]z)SN-.XVj!ÊK3 FdrDf| s=fY9Z2Rβ9'`Kth!Y5(J:ADs]7nιms?:b_3v^i{p7=P-_D6{DLmU#Z0$=76MfC$P {)a 8H|d%όQ$td%Jdrd%ܐGڑlqΥ2ЄSgt~[9a%lWy!JH|N8n7(_$9kՊYcX(x09^$'@\{Q1&9AN$p r,FOGf%bNZu0Op\ /w{IбQxꩆёϊ6 x:QA^}$A[%G|&FUxj'~,Ղh6n@h "ȸ3(<IG艚/٢GcOQ( 6.H; &]?bq!~\"^ O"6222K^!Q+139-WtuAc2y޸*F0 L &ĸ@"z]/Z,`f=}4xW 8p]њdx荛MʪsZkTi6YZLt\jH ,GP85"nK̾4JuS@aT|'?^=1Q·Ȝ}*\ VGw9*w=@1Ծ˙vh<ծ`(1C/2kC*-KN9*i%_M<;zj&dx;rv5Np>f_Gh洂L>N.Wېidž`ef8h J(}C̹^)rH(zP,|7R0륿9eaql)[.NBl!9)eV4hEX?jNS]S'rN⇊NNJΘx̙_,siow4Mb.s9EUm 6NԘm`)0C`8'Jv%Fe^qNysq ~Z'ʼ⚛ 8C7D/d~1*p8sGS%k7c|ZDwɊ]Hö:v~@u13U4]Ξەo|F`폖uouް0{zVAJZuj*onv#7Дf#a+1SG1)4<5jܠs(ߩռzc(\>`9dJ{Psj~TM#؈ysuW+IHB\HgJnGTހ&uQp4!iH~Q1$c`?/ths5j5,YNH4Bm i2=*z9߭\{Tem#HY=_%!NSp)ހ_].X$m]MKjE,rUGwA g*W"/wѝ9|7Phe)pb\DvIc`=BJ#wBfe2g̮3/zʎ圪1!?$j<' qQr|n޶=='^`gMU >uɝa!-unƦ?>tlNZRE-1k?/U.0Ya[gR Kbu<nW"_nV٢4hEKg>dvUƩ^^26׬C!"ўjj|J0 ݐ! ݲ/ }Q'(C1CD`w%Nw<=N<]0㨒d [ _pWM?GE%:Vy%q6y %C&ucTT*tE%@P@g]XY5hJ7 CRGp\*=4{x@-5o_d,B16d8V yG:wWwYrT\l6VM $X@ߟT*!>@T1s| z%%+&h.Ysl[ӭ# Jަ}{‡[æp bת:!~ʎxSqJĞ6d.YHqC~*Y(g_(Te!%*Chi )h~nF{R _v484\MNw 25Ťg?%n!Fj29=ZJYʁ7SOlP`o>s$߼SZY1ng<1zȾ#PN*Vw}d`(l i4e Ez(Sg&IτP\J#\}Lkn1җz-g'Z6ٗV_S8 Zy4܆Q8JQys"M+YYt\~9r6-#\ָ'C\G#zPZ>j<ʸPV 4'!/5HV2nG`.ۚM3Py°IVz!BP~R2;kP4'̢YvW 4rvǫR)5 >Nm>#] U@̋ LIpj٬] sHq؃Rm9<59(M1p5WBƎobd:Qڛv-s efS39K]d"=5%'Jj_xb+5}mq ݻ\L:udqx9ꡬu;qDMO%= Yf(wSb֮h/aefp<\C[[?HkX.'r, 0賮bd7ot"=W^s=\:i ^洌atÞqBCයk[61b]+, o :h_wP{l}Է)ͅy$,M+˂:Q*)_+Po)Dk.ШiZUCöV >! H_k'5Fy<> yrC{P SrKirĸ]JT }|$G3;xATwP:?6Ec>Z2h@H6/ Jݶc0r.Q?TC"jGAu!Q0>*9^v_]͈ llPȀgX 8VIˡL$ Z{B\ͼO[(ni}c7ʬԼ,;#@0AFօ"5ٜw}*V\J7-θ_D>,:甤V6'KYZ74-uG@c= $~F qunݳk9maՅǿ[ endstream endobj 108 0 obj << /Filter /FlateDecode /Length 698 >> stream x^Vn1 +M( 4gߊ^SZ9rb"gC{x9\RDP&V%.@{X9#.lM\`|bαQ` bG[}s& fD:4NԄfjʫ1 ջvrn+фQR6U٪ 4"ţ15yf7S i^lZLĀT{Up/+Ų6hjP v|8qyRجE^[Ю9թ\Bj5 s5qXV_Vjucf0s 9skmݹ#}H+7JÂ7=aG [9ؙ NRUTJiBneP;v}vZ}`W m endstream endobj 117 0 obj << /Filter /FlateDecode /Length 2682 >> stream x^Zˮ9+D=dr`w7;,I%Xv@[%R|G_~||yS }rxnn֔-XMnoo梉}tQ%l9%w t|Z X/|'>JW5<RzIqJXmZu;c}f&RMi}8|KbR9C+ >6 68ȚTB+[9|g|E.+ʺM;8M۷àE#Sra_aa~9h6+ncW>'Da4?-f;eM+OoP88UYjQrl J&gM-5de(`rqH %¾w+JpҴ7حkja&Ȯ9Nm I% 6JTMA=Bgdb -D+,gHMYu3!HҮ"$ rh΅")ee% VyF ELBhI EFSH$+"<I4vRjWu? ^;c3V#K;:WD^^oX<] kk1}#>mϢO&62"g0"nqC Vhk`H4Wwb1HIG!"Tub>~TتʔwK->kr=--B"R^9{4evDtyx&xWѵJHMNEEcD̨ޔ5`WU=gE"ӪrЋuDEv#oVwj;!.Q{1Kp5gI<G=NT\%-Yz4Ѫ*1;54P+T4CE\"ޛ/jZBK,*  V0*r/ z*hzddrD7h#f+LEsr( Zp] cM:' ;moe$kC|ReYE6D.kzcs9̯M yrHj{?dC-q%ZYCmSn$6fæ;L<^pc$FϾgGC z`]}@P U[>#90;L[";sp j1-׏I/`]=XgV3kE/֗e6y͋:bQa0'۠k"ˆuc ՙTѦ @/*1٫[;H1_cljkcwk:PQ /o3A&e o;$X/4PX عgwDNa#p2wmd0'σm0/m(q>K hxTOiѥ[\u' ;HUZu*+BS |$n)*:=&At­z5S/EMw.\&6CZ,u2YKo;35}Śh]&egiɂD"Mfd~hfPD8c?KiAx늿\Vaq%E9/Xd0Lt͇?ѪNLjxWQ+4Ӽ`r̋Mtx-8+_XhxNK}1B XѸ:P#Η??N<ۺ柜p7(r_KvWpAcY&hMsTl:c5 dD#8Y g;xHKEcfi[q(Yr> stream x^ˮ:yu s*)ƙ5z=GY]`bIY?cק?ŏ-,gR mIyH벟k9Ϗ_X-|ϟ?};oD(=_~i]bNFקC^㼄m==mUߌ5uM?q?~B)K %E)83.XuIʹo-[{ {OŲսvRroex?חiį_4t| K"/le_}lO32071?,)l¾c]=*Uq͔m[Nk->cF"mUZni?S/1F~l7Th,q3*#ɕLxn+k$ӭb-XCy7byñKr={-.@PϜ%횳c'P',N%p5[ &g(rQ k\gbo PG&G[h_X94ֿ6Kp9 smIE@H;h |X;&K`T3)xR1aAńHsnWedg)[%D@^:òo"˱ i9 iD $N-Ǎ|>! X!v(O4:$Z}j/uUũQa.#z@Q9s[AIzr"l?Uf}AOM_YF*'NނAؐ"ȥF{Io5%=+ZDQyDmc+M/D cP-e(M5)?鯋Uw,:c'#IyzKPJ"_8ؖ\wdWdj/El{7Dm&kPw AL`hh"xc7U#^ +jh3rH֥^B㝛P!i:;Tjm=oUQ**G?R̞9yn$@<"uEkhU!r]nT4=y6[ _br=X|]2Rk;< d9CRsO?M ޴%-"niPCl-{CFEM@݆vT_3eX]Ҧ ^ s:д[ $:)WᵎH!=Fb+i0S zQ,"AZ;@"*y,f.B H>$I65Iz(&(#M2iܔw7%i8alxǬSiDunpxūY?ȰVzO}j0\E䅷H5IQn*d*4_27jY̮;kEQ`zzr{W^NuW=ֵZkv5:"9hj3~Nzن)1Q"?ObŠB K(HNeFMmt@;-4(GMGqRc]6H)U<x Uc6yu.@p2:XԎOwpmSKLIo+uj*b-BM$O34]mײ/?6/)Ċ fZ8}f=Dghoixa"؀U PA=8AB)=ͷ6f-U MNѪoq5ݢ2 [鞡QyB$t3g'9G|;$@;~.1?ζQ&/͓ƿpMؽM<$`t5ba#X RBh2)&>T#n7 b"P@dvU[HUC2Z7ڔ>rٙ X4@텥h^C/mdZ=fr$XqurR U@i:j yVjIV*{'ؒ wa~XqP X!37MF8VyK0aBTzE[JJC8?M/L0u˽L= ŬKe u \iXTNQye=0@cvFcBH~ƴ)V40ʣbַʌ4s=ט%MɖKt1}шA@`2Αu6gnmW &'F_!H54Qߠ\^cPP3Ak?7 ۠VXd H=냅R%P5$ɾٟЬ^h,e6a%pPsR:- Dv6+T/k@9|l0#Jz(̴_}zh$P3h?FyZϒ`hUNAJey-'i4541XG:^r3I,O \KFiq#I~7* 2#'8'zj,4Z3kdGs[hs̮߉}U!Q-;zb_ +e}PL%Rq\8v51Lx$ y` =6w7zNYC`^aDZ%,C%_KiSͽlK&96nFWO^@s7kI g=l4dp!s+3h/7/1 l&}r3]L%^]Y4Zmrl ZRjET`qoTUϣF鑥ym <ڈT晹d j}/wM]E I]7;Q=Y[2qž'Ma݀7 =5.W+|cՃDnE/p!^zm>FI2L ^CPmɌ, +/^\]JinjE Դ> stream x^Ɏ$zzI%w0>>[Qie'=⏠_{{`0t9FßG*g,<'}us#Ysyd+6)ϣпol9/%+[{?^w>}o_lp=?܇<yg'doԷK|TƦ|`q 96~ʰ]yq+?N1=H B4L~_#?E/SLas!'/ylѵA*&t*9ujvE,a#fqGszz\붑1I8璶Uv26&ČGJ%Q#%eodA0epnj,W6,e mڻ aХll+Nlod%ƠRod=O8m(9{5J𿋪Y3cb;*cFWeCbmk;kG(3ֶB7%C{WL0rj&!)L"p\aC\ O\S%0`k#SN]u6n;|64= Āᐗ,$I]׳jKKb֣Y$EdIovFbDY =INORFSɝhs'qDOQ? 䘧;, Wԫ늸HhT~[ٕhTcq_,rn"[a ,e[-\<;MN2Hi{$߾9 ٸ$4 o Bv˞1$D 1q܁޹"5xo'XZ<DŽU1rwHH01DJ f4߬#R_fH/Ѿ$۫>/ɏsrH):Uيuan` HK* Ab&S뫁OW,bݏ0KQc,/W@WijJѸmˢ`2HfWegО 0ԁ ).d"G1x2ŸPYguN c֎T$2Ȅw B1|J_ GW@A\.4 `7;iW[wI5p;#Uٛ(ugh.߻c"]dAȷM  b觤f Wn˜/R\e3kn)>&q^;@CGM=)pF3nA,bKTۯPHľ^u|0\Qƚu[ އ٩|݃tii~52zpiRNT#>L$о֣qCRD+&ER=x^JIVF'l#jke^-@ ,cFgQ3C/Dv>ytn|C|iկa 4u1듧Gp 5f 4Zv89pCZvQԴ]M~diepTĎbeJZ܎PmK4/Kg8*PvLpdfJqFs;A;*M9DIqW ` rh,6G7xOd#k4QPvJj{jDa_=Z4gn-vO|[2Ծt vZthak.d{$pk[b NG Pi) t"CO#xNҖ*ִ9_=v0u|Wkd7TLYq{_=\.-KHbUXc8x:R"m_S`n. y"K{ O<\PNOCL^\puN!BIs.0#(N_xim#׹%C1TL=jV~>JdAEa=ub$t΄[[Nb,l)?9u~$aaF*[`y'<}Tsf?N9Kڢ  \'2hr2e QQ%PnjVF1(\oG5٘4BÎ4fi9b#R. elOUQmp~Zr,u² yfG9eR+Q kT[5w\hE9-( -PbARp<$uQKhI 8B*_D!BTU:ܱKK}>td &<{7D˖dd61A9\w%D8es M`_5iNfp{K[IE^!o.Zžx8ڮYf0i$['&c׆x  _h {9C|]12L+m3HōeTd!mHd۲1 (c'GE3SI˄&Ք)D E/Q:@ 4N&C8[죕tNz;:{+3 5^L& uG B `?@IPMkE G`$mݬ6dGڥi_Џ#h)ss v5ttZt&Rk|M$NHɋ/ Lm!m$ިjm<)N0[JDF'ʉzzfJ4՘W]h@nPa_gN4PL1Չ7PjN"^lg*T6|WveYmCb{5fӽk:Z{?8p!^ 7 ЈQBJM*5PQ{+~ZA T'0CٿONTi2Y͜* cגe=(8 1=y.(tX/C&'&=HYNޱ(J_Hm||aVThO듞 A)[jߌѼn1̊۾i~Nk1Y;ek/[ȁ3qCgB3 /#e.py[!CO=/_#U;?3iZ b?0TA*1xC裸#fzھ?ri+\ Rܨ$5֒/7&e\[=<\cah_kUYv!im'\g_Ҍۨ"v^Iڲ |9@>Wt:&3K tyKZs[RqQk¶r6:x>;'Krdɾz݁=rE! =oG}Qa,#h7-RfA0S;H5^мPh7"E(? <1Eu'%L&}d;Ty0bڑ_Z ckAO H#gM4ڒ%჋^fJsLAmY2EQDېDS9O'f{Hƹ:wEm]al *d~MTFeF8m_Ga{͛^_{.]7|;SD}A 0>u_'^.JLiiT<̰>tnMƜ]K%YYÖ+[% zڽ,bE+IƹxybyifJ,[4E"ONR_pJOO^GC¼2}}ֻ$ۍK\_=]n endstream endobj 133 0 obj << /Filter /FlateDecode /Length 4922 >> stream x^͜ˎݸo  klU(Q9O[}i{Z"źU|y_~nO%~q<1-97ŔSXoq\Iхyv??oį\[9-/˔wB|Z>s9~w}ix"y{}m%;+ 1SX|m)ڎ[4-ܱWFb YF|#ފVhOaMƂ㩺[v/[VhG2{ugTeQ?+uimb~6o|(eJ IJ[]֞U0rSQ=k\PoHFSYw"ɧt4y i{OuE<~r6hDt{:"9Ѹ'R5|Hn]V/4$Iobsrhz[2qyAI[ihAF&oʺWȶZ+9O հ%d GМWaߒ'f74cV[fY c eï[ 6((_gu@<qaY6ڭBག Z JQWxZJ$\T]ЭA\Pu6"d?Dmz/_쪪ڝ7Ol&쑷1)@ VŊ8֓} .fI8y<0lKrc[Vr,cx);0)"kuOќɭtx;e_f.ix1[~-:/! v)7t:SK4AF BI0M,W<"MHɫ`"= ])%dddnB&8SиQ %9wܝ zMnv8Wv>,_e|X'TpAQ={\7+:~x;M !?fˍ&C5HGXE])DLP9iTe"0Hf2$8c <K5& be{{4xxFX/,kR-wgVaEN~1~ljۧˇ">nhUy"%O<@ha };sNH @ O\m3@L6*P+S)H'>Ik9΢Ww|nPu62qzlDǟdI 4nmS5`$9Vr{K°L8a [rDľ TLD,31xt]Ւ/| S!5301 Mﵸ#yM_^ aNXC5ZUL-!X/WBRK?=`uc we+VtzHχON Ƹn+aya>?:Ph d_qR٨Q *xcuoB*0`mqwd MfpA4](6;,P>qd {_n@少vCo rY;jHYzZ6Nn=2_N_*)^4vr bViY>1O!z e؝/B@ϡ2;*h%SD^ -ެ[˴1赡C,J [|_{ Ï#1J>w=P `ؤ5(A䫵]u5.JN[I&hD+2 rD]GFU6:@`!-rrC6@1JuПly59.fn1β M҄ 8tQFnzɵ>-DslMm'}yasZEM֟U%6qLua~GZ\`Xqn.$ vV"^̰br>*tꤢ蒲6nEY>ٻ諬d:{ w>6+s% #=LjBe6YGT!NsuA# c@V'yaQdfyhwK bvړA?N$޶ZoGi6iJ-g4.֫VQ0d]Vʊ?$9"wևbC4 Bk# umI֒!n$;!Oꈶ)nB偒8v<`'\ E' .z.u# T&0-񞀛C" ڝPC )|(GLW_b^ZҲgB m۷4ߗZR Bw39`L*I`bȣ7;Hz+VQKJ*0runtA%uSrtqw +xUaznX]byE֮.mc׹gnqlANjsj N3U髸u*tBylQ!P%4 Esh?22ȢS-e B~u %bEkB˽U{ `⠁RY/ i5 m-][+/[ה;[׶$F݉!o8!0j5$5P_ov9c"ڈ38Z;RgOR )>ڀ&hb> n`DLX|B<Z*!w[ve*S endstream endobj 141 0 obj << /Filter /FlateDecode /Length 6208 >> stream x^ˎ8/$``n`ֵvf5/(tivKq#~e-/>_?__c_#%G\wnх?c]/_e]m?ɳ2z?#3|_|ܢgkm]㾮GnqIw -W k_fI/KX~߳C㸷 6 yp{S\\}?[l/DLsMgLiQ6٠OΥCZuo\杠 0i*Gϴ5r{ǗX%̐5Ddx񌨲y}}o>;]3)b@fHdOQ Qkޕ-QE9s9vFJ(x\9:#$(JL~Ȫc_BJIaIbCֶF%oaإ Aj!gjB!zqK 7йS-pyRvJ,{jvHQqTۣ:a%w<%#k?0a[bL57_u9=uG#fi0eQVob|r1λ9rX%LQ_KDز󟢨__L; cw;'oT%NhCCz-`<bFtܗqy]`&q㨦a{Ѹe6A'B7 i&7LFi ~73PGSw ]qJ(Ά&,LPdjpK78B &e4;G\%t@d#*tagBߡHmOÔE :|DcJYĀ*=tZz7V-sad11qn ., @O|#:1DIr]ٷd ^S Vlj?$Y(#W yU+H&A|.ܪL7C:FдMV1DV&9q0kąZ\"wd^5đU9/dPyk(Qų~rc`ɯ> >ɮi$u}K3C(-*Z`J۝4xREυ1ljvcI\cr1\8$"K6w^EEf1}w# Y?E#P1 D`A.B/!q1q7p:4pt8'X SLؼ(M!?YO2ĈSv{.n'NÎd_|~%K/> ͋oܬ# xJLc` ZҪUlx' `)UnB /j29"ϗc iiLFK^3X$rĔmcm_qUE,sڧM]1Lfɼ&bu0pnIa /I嫉wնiƘ5\楚: ZVl1<pv"LTPdՋ6 WXLMĺ E7Ftv[]wSw.4ו34Wo5ș TgD%l\z^A <Tj"_ @|PBOzDG db1ZP=¨v/DÙښOi6*&G fZpvP&fQa!f@Tte0-/ XTf-s+\.NhtTw+\ͥɥRC AӐO~@Vׅ"#AcXeWF0SSݾ4t\S$VSrdBV\5357Z2VO9Ïòb!5hre~Io9% 3v@fpŀ)I`Pg&byj*4d/<{b =N`[K,nWgk= šXĵ \{03m?a \[3"^_/+¾cItC'jHB[-QoJNeU:<+l;zefȃ8CWHp܏$XԬ=7t]y 32Ƨ"V.Dr.aq_jgnzk} k{UޑӜ 뵈5$3.B2I MJyB^M9)؊ C JJ0R_X6 =Oh+'j|2vZS4ER*5̠uDto@CLs}F[R;B)܍ƪEnpFKWw[7Y_$k7h #Pb%%0e΍ ٛ ھTJB2p{=v<@Sߋr' yzU҃>[w xE1QL˶P0&0\dH2/hS"$#,T`D) ^UREOELmgKVoR=r~q#KI-\ˋܒQ>.HEB,y4X(\9᭬̊GpKVX""Í@!]Xv]PYXQG!6&"#( 6*yH H-Ҁ2L׀->Bݲl+^3B[R .tpg$).xfIfٕ! F܈6ʕCQ5Lb(M8AՏ@%d_C+%F~&Jt5i^Z2FzffZ%tpu)uzDr U, ˢ%">osMd0h4~Ip T$֙)YAqz5~?7LĎϮS }1)QD Rt *"<vN#ۤfC#e;uA|Չ( F:|"|0Ӵ춁D39cpl%GwgFm9JH,+pm!Q>O+0x+Z{5VPL/>!Cv'kؙ"^R ׃ ^ʼGcNuhȧbǧɤX"e d u']{/g25SFBGbGZƷ+(Y>"Լl&K|l'}#MJ z+|?*8?O?l ?tc_s%D}bvj3ɿu9LeM<$>>8>1y_=uAZ{{̛'w)vüL=~^;)=pAeO~`jʞZ{Y7^g+N"j \KT:@ըy3̛^22=NҼ@RnN!1w@W@r0岎7U%wCM,i|Td4ѪrیA!*AR8(a% 光GdT\ioSULNA :1AS5)+n#Ho$BrDA5P<|E_|PP/kݨX"WWUZgKHFnO@* j9䉔K0dR Kdbng~^>; UﺕSA޲5qہ*oSk_.JZsY{ k ¬IYRez56$.G.M,-y~l;!?5aVJǫb.ruk9ۗfKZd?:I:!(fKVfbە.YWI6F×}:U-\逕9,ӷdrX-p7 D<q! %SH XNȭ (ӡC<`F$xn K^2cU1w,ŷބ! D;b.6e=׆K$CD'%x.I-g]Ș'LXN?1QNZ^[Qy^g{i D5zD$oVҴUdl22GdUVErT^!Tp~++C23X`KkD+"".U]d3P_.>Pe*OAM^! -K+#|;|GJ`F A\C^Y]y풛ʩueӕ7RL|5 ,d;᧻p[{ѥCeRf^-`͜?mݻ]SE]ꎍU]WK%&5c]]jG&xF{M0r0_?oJ4f_aV׺FW/VGYyF ϸQ<Cm?R LcOu4˕z1}KoQ[%Yi>jf@ŵ=J^QLDHZp?Q$gB98< 'UsmL'D:̥Jg[0ă&T}\Rv\Lxz֔Ѥ7ԟh Pm9twieqH/iSٰ~)FmSoUsTu?% đr<LYDqu'VJ^!֖EQ QK+h^H ̳&՞QLϞW=F" Fv\aطٵ.u+2.n-tP$1 =oL""UWur9ȧ,EmEVn K8M+~Q2:mf=4 3ƒ&"M2ihCл;?̯j1! 3ѽfh9}bS2I$ 2ŁK;WXl,չ$+<+^6"]VBD+bF칙O7*A$ J,6ప??1:LӬVJqwL`(JĦji.MMXusRJNw G[R)ǿ.g endstream endobj 148 0 obj << /Filter /FlateDecode /Length 5786 >> stream x^ˎ8~|y(``=mpռvD3SU tܶx ۿo/n/75|nR^r,eu~p~ۯ'׆,n*c-KB)06$'CL),scrf̸̺WCC~xNæBb~"HY,rte5H񝟥Z9O),.EL.NONS^9b%|m+yun!䒟:c=)B,"穔2yrA4ru;eCY'n8̒_a;Oy>I)>Ny;uX*/s*r#bHӚ$y<8+25E@H]Ly"O 77 e'Ho%VIjqqF xu{TT\֩p r bY-.hM.k%yɣ&jyԹUEGn%%?Fy|Cd)&m 2cוĊyg2'*Dn2-ί>̤nn+*Gg 8G%~M~;N-9B K7煨8 xpai"ߍCvkX%gCoh #p:CaIshC=@9|c#Kaxb֯/v]4{lD\ri¾? aM!0=LEb(oi3kﻅU 08~DV|3UmC'W_ 0vߦUEt@l˰hu0:}-hAY&PٸdDKs 3H.Y=J),Pq?aOd7k> aB Rγ'Tkk6'2xۦt R/=г?e1| 0n@-dO;Tn=ȟT$ٽ!y2NuY 8՛/-9T99प,0f?լHi2zÐN`d+ k3Rj!@j }@U}~x4qΤo7ibMwͭ58&1`ݥ%Ia z^mj8R@}bPY,PBBM.ljFJJV:ش ))J&l|zy 6Aݻ{eIE|EK CA*]VǾsbFQ9@3+;wCdZ|D#`n!i$X0@sn00KE-%ͩ \"nW|T@XYSUqxb/$=GVK E: bx_HnKrC–"v/oM͗W,>5MXD:0M|e 6S kG}ʲ.DI ^3zv/Xh t3= D`c$DP,̸ T^^S7}p!Q3e\Eho50!a.5 넇CVjA,۶b@ƽvLHײ#?LOT@= M3* S#eëD4W|ۦBxPDP 2@xxB+`]:]!M8Tx)O<2ޯXծk`jzO:[=Qk6=.p$wAኄ`Xt Pog1o8TC镵(W7@N ᩠'ǁPJSjn0Ggl DobB&5{\ThOTZЈH{GIÑxA@n/2(>I 0c TXv`1*H%<~~(ſR_*il˼8O:"l8Tr=  TmBI>C϶{M0q,h#DP|DLlU xDH1,Qϗ|ƃ|o}ɳe=6Ъ1+H}3Ûs$10ơߏ9(Sf#m^DRbj}< A`Bjq M8 D2"2UaLK\7 P`˭uKõ|m+׹KZZr=!G_ A:m41a`FŽ` hzZ }>T"ZZtWs87Jd[zQcϊ]6 M yϰ5C&mQ ~eP m9&r+IT5=T[s$r@m O6DJc^$Kz5`n ,a͜u-O=q 9ٔj0[D9Д1~ %.5 ޛx4Ƃm@}7N`z"-A-abjq6cNAFyygRW^)VRYvx#xle>XknlB,Z[2\ bVFK2Q#(֭@u.%G .`<@I &*91η]GU8'5/?p>q0l +;]1G;A;e|5?ϧfNM_N叜 2P(_ s6S:Q lOjƹ&HyaW_8 D֞Ï݄xgƺF3G0XKZbؤ,͚WsEY4*SFز2̿%HL-fV:6}{ T@RΩ-k홭X--IfO.gC 6A-;<k9$- 9q>"]{IRWf;)e?~] endstream endobj 150 0 obj << /Filter /FlateDecode /Length 2749 >> stream x^n8E#Pvn0ۙvNPLFqCߛ?~~n!xϷnջVJHrjn}x$z|^8~JN^2zsҒQ9qC$x~~T ?3ٯw -5VϮZno*%܊i.&AZ .ŲЮף!`S>+k7mo^+ VJZu[/Wo/U^K;>|l*IS3xpQI<]:s GvWC1 IΊ~!){-WJ?l  WIf#<&мicJ.*f6熄QoK9,GIs>X RC#Z秈] GfZ]tq9Q|p<yix4Ň>TZw5Z)T"(if@j2a 7Cn!"bBu|>UUw[͍+ h4էk.?zj&k,ɺᨖDu+ .Ty8/+uPYW&-&} cR_Ž{$D+/*=*{I!Xת-icL*: CC]nq |b_Ld#ԉV<I@Zk5anzI]^qT=%^ֲO4>?n`+pϰaS= 㽙GWHb6@lU1'@|׶d=oV®y{b'౹vQ$EY?Xn3f/89?Cz|5 =RQJç Y-N\js!nW"Epź^M/~-۰bQجV3zl bK nV=chGdϏOwbw15/f}W-d) Ca9o]E1nL|YaN\.U3dWL\tЬY!) R,9ʦ.o5huU$}ث!0(RJ3hcl 1U#fP:NbQEXs؝NPMsjXk%]wZA|CjU'E TwtuD"ߴsYʺ$[f00.Ju_5za<ѺS8K8w^ B(MkG9K|1`XFK0q&UE5$)3̚Z++#E`4Y+UH2:^ts~͓ `}e'{@Jsģ8lB|Gz$VN&pST*$T#AA"-/U&K1rK©'Pw_ylXWxQO· T16#Tu0;$ ֱ(S !2(f3NԀMrg*_2 A`Z5.e ÔN9J-?I◐O @ĜLơKJ ljb*23 xa=o;1Q&׾pc8kv[;Y -J> ^hMa/TM!zFagi!n>O: N]"2Jjr˥2_IOCĸcb2W |Q N4gocicԤTyI \z`{IC@$yA?W& $P;fl"Rۈ0$,%PTur~m6erW },cPY \3<??6v { @hBL=˸[Gj/z*:8)Zp'$bVta(2K%3[(0W154pҸ[?KP$x|6$_b!1HVhRΙȰa` #h"iތjE?w [b_Zd4\W9AϹnbPJa82l'daD1; DBH}|F$Ȱalg˚`T&iĵб+k 6/rD!=h 49oE+[\< m=_y-6=|}aTuJL`(\ny<=6V 4.3gmgl}ZlV's=ݸ6 L>޳J2.uy;Z@560Rw= dk{ﺋ\mhG%*>1Y %!4Ͳpw! mׅK1n栏]\[~Z@4De6%kXVzm!4|ѱ2Ղ3tu-3n7y|T=5ۜC'Bb=4nJ2`>Q|c01U{~OH끐z5P/pAO+ Ȁ?`Knyƚm͘O^mPs7va1N.uc`*}|ֿ5 8KO?Wd۪L5/-?|It endstream endobj 161 0 obj << /Filter /FlateDecode /Length 5009 >> stream x^Ɏ/Q,7W jeNϡ\j!Bo߿u[6xw/'ޢ[9r fդZow?ٸ`Ssf3%rJ[?\d-17 ~7$=ڌ{f _e㙐|x߾kA8VD3Uag^# 3]Bp ߎVβ|~ >-;>$uyb7ze}6%}l;cm%\VBȥ*h,v5o*Ya<{cR#ʲ MQ/+[tPQ7HĖ Q-H [֢[ JH*|+u+Hċ0){fv`ȂT\$}mTF4"/펝*bs x-@3B\ ˈ]%&XvU%xxEQg3lpxԔTQ|'k!,X f0X-H1J{GbjfZߙEEihpkXZiBܑҬRFk>ᓭrJs&30G0C}`7_Lvݼ]D|/b5RwPE??vtdQ|n`w`{Qʪ1ox|bB R((XWF%e# XyW̧ި[S &lٔJUxK/&.؊lM } HT^@emOuF$ 0o ]AN7ND#Y4&mh\LC0V PvN xX2IRQ9㫊XR'ZCBQSU)*PD{\H*xAI\Zz %c?8b ⷵǒiՔPjr\aqĵ(R[ >(5i LPV!5RK5^V4{YVg)H~3\6z!f# |QEl#iOd~_=n%wcP߀#)j-)(U1"SOI˩&N֨A@"HL&2kDƧU,h|!eSQp3AeXV P#'ՒaRB Sc:Kt%{'Ld,gkcd"$ #ҝY^Q8yQّMd0{|3&G& RZE'&r'26[uHFϟՖS< R4oKTP@m2uBEW+YTD\+BTLs$/M^zr,{+$Pxx6$5 Lpy>+BޔJ@B$,QuZtӕhHj}a3։Dӈhc-JdԜRh#NŠ΁6Խ]̥P􎓳+6QWmbw AS\aB/Hq=t}m{Vh; LT:_Z;݀S`<5h5Уx-?-'r'IF}) XA*:--R@"Ş!EDו_0t8YS=_r~.:(U54VT\EdT]x1{+ϏjĚ, "㹋OH򵩉V9 zgZ䁧3 AZ*dFbNElǖˤȜLȍJϱps}'/ 4=hk[^.tsXVSTJL%RȯNFq'TģVJ]5"_۶ >cU R KdD)twTO:gS^sLh#>! Pp!*tLZ4 ܜ1"T [evW(=I-7:glNZTt(1 ꬢd[g](K(OM[cX/@]N%[&+BjI/4cR_L4bzyL(k)1HkS6p$<:N , (7$#hAˋ@LO5Wۻ=/Lv`T@'IQhպj G*)T^=cJzo; ړ2"W ~ڧV:稓J w[\?'^ &`)`m֠wYKP5?с|2 z{_Re(sn1+QJHCSp]"@^ 12N!ӯZ u v)vz\,ŷr`E5ƛ%F#qV7i~ LB5Q0˅u`h񲖤q͸EmD wȾ⛖3E+gӶ%$-j;e=꟢eG|#[QL뾨YJJT(b6r@ue >tNpuI JU!yE;60Fx[MabBEw~F'|RyfF9%IbP`{:-拞HDai6p۽k+F߷eC5mTʚ4=j `gb;5)vL|ۈ]8xmDy׵O~b <W-ti|7Ă,~wep`U;XN5x+  <}ӝ¥G5Q촅Id\q*8 L>@?9IdP{[ɾhGʰ܉[o8pP*Kg̭{˛v@Rj+Gڑb$WW|# կue5[YО|~-MM1vD/}I!7iJXiUɊ 1!MoIsr6 b;PNRP rwx%'΍1\#Ty6%3Ɏ`ǜtg>$=Yj]g[ 9óRM6m.%|F=CkxtԦ q+Mt`=D`d=WbZtVozWi=Ǔ]fY(HMZ溦쪈Cʟ OD\Q0lg<ϊ!#Q: GSp{qJe4^ꟌRHtqz؁+{gp0XĽ~~ïӹ'CP2ף6 cAk{`AeՑ!WIrd?rTI=[,iBh'h7̼uV1Nt^L2@JQWFSSv`{} ]:#% ic^5 9&2NsBbU1nب[.QIIq<ٴ[Hz hɄ]T5mĜ*gG/NX# U:AQ iٓѲmF?g4/*g^ҺC^2_f9D0_㣜 nx隁rz8l̺8 1Ggږ@i=bWW|z^q*~9 -? y\DzL1yE,G6 :fkս*7 H_>*/ْkZqĩBtهE{* Ot Ir9`ew]}rJn(uO%] 055˙" Uħ2ʡs<#P4zr?× ا+<SC 3!d An))k1Dc֌S}*2Brݓk Ef;]o*xJ厦S C@uo]6h!ިy1x\zcF!Fwq@;릚__ʼn> .w!Gd5g8Sν*;є{׳ {(q-cR;m"S4;wbBS;\.NV MNGk" | endstream endobj 163 0 obj << /Filter /FlateDecode /Length 3315 >> stream x^nz~s_f3Ϻ'_RŌ>-U??úF{7a%%##Wj}7zy?ǫ9\ ƺG1akꑝF{ǹy7Ndm=J!qMFo߭p1^|ӕ#ȩ7.xg\UPZBDUc".#tqd~>梜,å`jG)=m6{M/OyBƛhk(鵰p1$U7'2A> x_byUyƟ!gc%^Z=|Ə)D,3#꣜ 6ńj J6Id(V&Y7ݐv* _0z5*oVQZ =VC%\HԈ!ѕjx^+ZwH̎Jv[Ȍyj.,wF*9YˢFFp{/gZo}jL ^O -*}V qCUu ްMGF0M}]tݔt]]d4JP9|d(t::/zjxJvXWײtQ"4YɸNOjdKa_az9o1ZS\k (b/CS`q2=2UO=Qu'Kw.9V_BGթj=//#f?J.\gIuK9R@xW ]H 7g}Vp u)0Pgn%? /$Y~e׉Ѣ=kHd(  "}o_x+5_(bɹA!-?4SnuXأ0ZnGxb~U*K$z/6b]P*%T4*2t<͌KBB> +{Ecz^K唵PHQ-*GH7ߵ\ވ#B ,& -srSrdM`שE0W2V?t Ťֺg# rHY&%o }[ASW[_];3ғY֎٩v^D/>'#Չbc OPzgm0}V-9YOנ^5,O/j;q$Lnf m-/(&*Pn6{}T^("X|gnUtxg۝]:7xh s\T K=۟?fgtdPvޟ;N{\9~B& g-ꌏV3'pT%7#0'](k)UR4L5FV8FmawX'aIڂ#B_JS^>_[V\)\8Q_ *DV'#$#J)oC {GFхv?-Nq(XUʹ$ԉUV Za|`V $vSdNⱅ3T0ÖkTXN\˓jCJ:Dn@;6 !*)7 `+xfC˄@vB~31?RBC&+/Pv68.jðU}m<o (l QKIrQqK)ZFn{t+r1[[7^cv1y'S.9l *1I endstream endobj 170 0 obj << /Filter /FlateDecode /Length 3319 >> stream x^՛͎ ~~WJ ` d]moQ%U[qwMY=3]%Q"ERߗǗחtcw__ Os ,>ůK*k,?u]ywML

?#V }Y,Ǘxa1bru1/15v2tb6_?l/gU9`r>Y"Ax?Fv~M>y5UʈԬIoNHl׸ݪIW][[VLڸs̚b+FVle5b"M0^ާNXnP&KiIaݚқb4&)ݚӷyZ'GnMVݢzp9E1m!%e8ɸ M$!/.ENN$&Ez\6Kaٛ͊Lb'~5KMqc`5#}WT]XE?lJi*j/8?Ty%,qUTTSAe)ZUe8ɋk3k:žƘT?,OiZM}(b v`1/ K^<oATmjiŏO :/!): Bjp:Ǡ3I3U.If{-OJ;yguH +!=}Y O~٫<AH֒ KT|5ǛVtWCsF1p`Z_t3:6}]y^J=|əv fY>LXpfN]buk;wrY ^Bp(.~uy9Lo>ՑsU&-$6HǷ;º}ڛ~OT(\v ]2ʓE4=E/pK>x @EfuEt5]j's$O?c ??K/^FϚ4!,xCP Η3Β#hH<@e2Ak ;%eA=N#mH4ސ4@MӠVRX:nj=W7483s\1nex׃&Ԑdncv5W0&[<&"G%=BY{y u!;ഡ7x !r] Kqò}Uۊ7*N]+}=ͩMp_%aآ1vy/D X}4?Iȅz@iaE5\dqm>8Ԉ ~SDpeWah..,'4Ĕ e> XiyR e^ IAlΝN 5uh`JQT4+iR85}x%7^: >ksMԡeA1TuEsB0p-$oRaZRjܟmeH۬_-uUa]܃^WdRjxW(i<4'+d9;Sr7ǧD>J*萿puOj^p+ >+KU\C ÀMh N$ީKŲL[3T5bޫ؀ ,w> Nt,Ke?!Xγ|.X>('k><ޟ,5j ps6[:[^c4<:XBfCLysm;c2-Lksc^*DbWCWuDLUw(k_KZvڴ5n մ4ڵ)܍ A~'8~o)ZBzGWyl,nD"~OORNeȝR|;FؒHMj`+s$S+/n&B\hKnk'Sqr^ U㽅)SJDO\$0MЍu66lu@>0{LA Ե4x E(7oT/ ) F)k\^5ѿ\ET]nWHn5K'$fYrI'x~8iIQ -VKksDhGwzmz0AIF#(B=NoWI>rbnOދhBKٞ9Y=8흣51V,rq?cMq}mz endstream endobj 172 0 obj << /Length 0 >> stream endstream endobj 176 0 obj << /Filter /FlateDecode /Length 4541 >> stream x^~y; lKvA*WMv3uFHvWu]Nc}?Gz%S%%V˺įRrIJ/k۞֥1li|!u-?şW~?z]c`C)Ųk.[!GׅSkߎo\kw[~ۯ*X֡ʒ}+OJ k1gvr̟NEjCԶmkYՕ$ڂd%"qfr͖cޅ_ž6F=MlsX.%ФR}-a⌋|iKuAJ,֌ö )LaLMb}[Z{S~5.eQؚ|Z?!>9F\VHC-qm(K+b 5"e Dz{w7:B[R9ؔ~]:#k^P0$/i&*Ū|)mZQ * 3y[b#%N8!+7uu0Ts͛fTe+KTX f1! 9{%n{P؉x_+u{ǿNY;<\}qe-,d=?Fu|П7&; 7걊e;}>gξ`>==#Bw/g&*?Y;qKu~bc`ɢ r(Ts۟%]|TGG&mF<*Ɂ[nGUBImFGm7'`lj獰b$s@mf]۝BgE i[*)@DUJ #lj1P- Q Ox59hSw% xAD!"ta5I3 N*ƴ-DXȌßTsqHX:(K^x&V^D[/ `괩ۑȞsJVJJh8 =a+`>'D3_٦'Rh k Jқ0bk zClL(OU5 ^7e-(86:̘/~i6 ^ҒqReksj 0DaXޜaC3Dk4l`B뗍XM3(Dڍ(Ef)mX@ 4jBS0P.?k\I)?[ bkU Gy² nE1lS@K"u`o_ y ŅD ߠ}#'fݧY GvO_rx Z}!"u$:u"ڬUfqY-V Wu0X^ 89I jcZ٫zAeI2w$7F_qB_?-.[0S<8 Tfo:ۣ|PaRo#7 E0c*nh8M!HsD"=:1hIT5txc6i봢\)Dн%Iu&@lN8nWzQ`|0 L$#袥Vr;9|LD2lW`%d +g"d)S(,#,y\fn!G͊ 0l\X+bn>FeR^{ 0ow|g-iI: t?:1I;z L,Ix?A# P)a)gƽza4aLoF =u_yɜmh+*,ui14ُ9*48i:'U}F=SAG 3CGWsA~S J"ϹȂ??6o &W.}\?ڊ{LoL@;~46 SǹmצMh]Cڗ;.OL'P Pa?҃{8kXa>a5kQt>OCK \&7X?sdҖ6gSGͣ/s{}\{}t9&9iU(S< N`ЩݶE> RBsf7~8&?:mI*%*.-1:ָagKdg? LD ~ٛ"Qn|(jcP7 q 1ˤ;IcJ*Cx3!R(# kT''fNB6a.ԅ;f-lWFRJv4Dpj&7G)cu{ixjT6pvW;VDg0<G1cl{f,=i}`KLπ1(Ok jx?y^mУ\^IW'tFz~Gr1CE "Xx+h~s" Osԏ!3#yF س_TԚAop+ Bz  >Ddf.w&$ sW "5B[/JMa60 cEy09ba>xB畎!D_|`_,psA84#Z]c^:(9t.)Y3a*j2'3eP" âڴL&sTj(fm:w8#X^Ik@dxZ,\b1s'Ř>an M}\`D ^z4^56vs=^JC8tF\ǵ zp6d΅Y>~isZ?aNz5O2׭^ݡ) OdOg?/*H8Th`7*7=e%q-qY” P!I2M=?k]abs;`ECn\Ӡ(#|Q:8!Ƴ~~0p./yn 2x_{!IfT|,vhb9\iIZ*; S\R} wYi[3lН(iի^眂ӛ4U2b ;]KzW-x"8iқhoL&)CeP2fԨF+PA`<8w Z ؞ VqG AyDiRVqnjX_ @S˒"B/KIJ*]gLYya3Η:*N=2)e؆{)&-x endstream endobj 177 0 obj << /Length 0 >> stream endstream endobj 185 0 obj << /Filter /FlateDecode /Length 4238 >> stream x^n$} ts _/d&SY  fnd_7nne[v 1G_nl`n1U>}O6p77r75oo-l9vpKr|0&cWSGkL|>q88t%n,I]zX\9ME_[ɍ +YdU TAšO[*i+YA{.JJes FCSE|ž@]V_;É8a'~}M;>~X |>}XWGڌj C6r˜78J8.x36e)lv#a,Ƣ-X~l_ wI؞է YS7=.lH8=z"RtV;~㠢W+%o1_=lO0v?iƴ`^l2.&9q55;LtQJT}?ƥUլ,ӕP[MPYQOWcV=_wy/$[1T׳y/.5Gs=V3tf yDMvD(3i$r*x~W}\W؂I{C{`f!w##N$rBRw{GZ_ Z~$ởq)iD(:DJ*hz=t4=2t KKl+G].3,vI+ iS0F-9;h5ws5׌G5PI\[PXaF1[v!5˺~NT4.?~jM圫xhwpΎ_!%?B1rf{@aapZM)mW3uϑϊohܑMeOc_Ȥ&w$Iѣ{D&ZfOd=6*{6'w?ob3N )&=IWO'+jCi0P%O+>kr+H>|+9nH+g(~R=צZv`QcQ`%->e;Ji7ZpT~CSiHgp!g{^Zn,]ѣ" tF:$HEѱ>}wkf(纼799ɠɕy2'u^.c K8 s^C#L~+u\D"^MACUYF `UY"ib9p{MV%3Ug"I̐іt>BUYHCy+%TNzpȶ42T#q_J|`r,Hknt]|pJCsG# tS"*h?:<HJ.1zUio A8rM4g)mM (&o08t>8zOftZBFg-zk)s"f<6SIu&\Lq ĺs.$jONvcUT|{c  *7ڴ2p&ڴOrgZ|kjQgUW44NPL53hS#O jvc{U PFKl]Q\58FQ,HT{XҪwB>M (Dk"Raؔ$sc [i {N zr2M麒ՠê},ckf\Kא^FC>xP2; SOu/zDސ뙴zr6$ge:N80pP;,='nײTYK<~eP7n)*7x\{GO<G޽tp^:Zai6EDVJ@?ž8їX L(: ;㕀C  '"tz]zֽw5Lh+nŬ.zyaֽlCk9Vf+z X@q*H@~)aj_t 29j5"G]ՒܴE;sגJ4 %@PxB֟|x.^֎EǝZN4ty u y$~,l4V>y;O0w$SklV(}/y4kØ ^7zOᲥEYMtE iGthZOArx;>'IwD^uM|˺U|Ʃ_}OIB =$8eTVN%[pCM? endstream endobj 191 0 obj << /Filter /FlateDecode /Length 3110 >> stream x^[nd +Ff (== klU,VVhm^xx2]Ӿ}{Owt`?_,0{I1Z/XߗU s[߷/)A>xu _%e/?[x{1Qߘpླj\{UƝÐs51e;O=K 8g=cp&6A[ rZ7$E<,mΓ$3[ %b$,>'K G,<x$rc@I(svqb*XO;bv|s|/KC~9MpfS }@/wsݘԇ0ۏڽYR]=~;&߃Q|aC_O֌?/G>Y@ Q-Vosy߹ i.co.$HK]TETX 1jgהšNKcHJdK!!,s 0n)C潂,i^Cq@G^\}[^\~s X\}_jA pab!;*=B`SAY kl抨X66tttXBBV-:{_ϮY|;2. sTJsV5A /zx":48! 66[U;dagd{0@suodi~w鞬]`dWlY(wlk4sgd֚nI}ZOY-o[EOC%ae9d`]trA;ꓪ5cޖLW9&PnՅFy!@d #-||q9:j>p]vuca&qV`a?x[7=T|s%YkXȷX?SH̶SG6 vPy y)by;}Prު.9(pY{H+z\sМFo,,'ֹjJ1]3BP %HޮT5(|UC),{;TJuT|U{\UJEC:_2#JݰZX'2Pvа/_;!Px 8}}; 9Y 0z(kJ?9 C ,n$& =fT;W81[SUM:')eVK!%u$`3ad3"߁=@hl.\t!NmKM{믿(Q:Lr&M}`AK@͉Ӌ~)g T;=}"[FP Pc5 H~Hk~ic/dP6Nߏ`8Vcg8y* ] #d38 qo%\L\<ľ~r̠]8P:lRPCNn@o82f:缐_WRE<t)1a_p3 C[1RH4Q\H g]K:"=e~9. wI/{lL v;8_/*RlB9ڻk>>q$ruWKM&n; t548ua;H?As3*wp}c BVy|泹|GHW=eWAo7VzQ0aOXGg㠴S!PK:<ZAjb3N^73|ݼn-&t$fBf)KW'٘Wepӕ뷢Z mecJNe/VMDﯷeʝ|PQC4;%$Zn<*؈L>*3xJGDW4wJ3JX B8$|Ys,WaZū|xL"~ҵ_[n=5B9hiNM M Nt0+4z>{r⬬Lr[lMCnkτ{@NqW ckr՗4p-8ᅰltcщRƤ>(WV;T" %&6<Ѻ ߉&4]m(!ixMe/` Ѫ#vGub(̣xg࿈v>ZT;m#*h|4 C3A(*=G'5I~78n;FMV=Wu: e}35t3(pgf$9Fd -tx\šAoF$? $DY_ 86@ lg7. VYq:vDS R.H@8u0؂d >@;fsF^mY73.@V l\M<͌IHI#`E:<{6٭kL& 8)8m_0uا_ }ՁÕʐz z2vSTIF'MlԊ@f/VɆx>i> stream x^n~yw&cڻ d9id$K.Wqo__#ܜbxb[rn)Pnqܙ _}O^o.ml~&_n8tzW|xzĻB| u}3>;Ȃt.kTײkL9qҦ}\G\XK؋'Y>Pr45rw&#ܒ6Ժ׭D[ZznPt4z>y>ac;i]$)(_:}N[xgg/9i2yk\oT'Eql'Nizԣ*,kj8HE9:QZJ[ 1KD|bL$/y2{wԬi4!nDTes8)u9ひ$u׋HᏽN]H ekl3/HQ)SZP叨[ ~~G1|pMtYAFPzdhS> -J%o~?MkaK)K,>X6=X 8(MM<±ߌ-׊o)dx@S3NNRJ#%x˜ULf>{ M66@jHr<#,dc/d%e;c$ЙDؙUSaYir[tΪ.95y j_@V|%Eo:fK)Ojoꋩ,:>HV ȖS4{xG1Dbh0"BANMVll惡 nø .j== )qU1H餔1d@MkWOJDޡel{o)_ci_A &h$+Edӂ :Qd|"MA7#Svzf`lER[:@&A3y_C$]Wj1ԟ>LKWґZтsَfch_W(LҵRaz8j-M6in=R5!J=SFث]eECɃĈ4Yux OIr~ $6 V+)e d;I,`C-K8&>I2u GH- 8)gSVQrz{vdXrniPY:foF'NҏUmfӴ+)糢џ Wus'AS[.d"V -60A'/4HIe|D QD8HH^fգɕͧ%P7R*yGWC?fʅnPY%|<|cw>l; q.c;._wԝGumΑzJsQbr1 & &˸Ѣ{Cm-zz9%Y(,"+Pha Hs!f,hi"71k{UsRlwԚZuDiG;&9:w#םi".i,JIHfk&WjeKÒU2HF8aQJm۾ˎ4SB[}ILgZ3IWSl_/S65&[VSFR9N e8b0IO4IwC0MgL0e-z2eǠ2|hll Y*SP]Gsj1H|@]2s~,dϱܲ\ n)I|!ЉL2Z_hXbZsWNkk2㡳#Q0_@:A(5ǯA:]$i-S]v> q>Rlg;ّ& 2-yѳNY?kNiZ}*>JЎw?8sZ Eq 5Ku}^o:} n8DfPR6+X ʨv]/ņ!@12*`=|gd#iatܒW-cS. E@Zـ<S!kej;\šxt@1CE"T2}'f53A7lKy8S1q6w7N]Z3DGZ 440)|j(O. <|Ǎ+0\$ǫx1g $ Ȓoh$NVgߺr I*N)[oq}$t-hh.QGɜ':+M;tzȉ .qu_kOoHKIDI`rC&%|Kۜg%E陈6>+.M@LQѤsЉT-!K|ue#ʘ2ne'<ZVuUzYXIr&&nk$/̘b=RY2v({WE+cHbb;}݋ʑh"c3\OaV.~Q&/}Q0 r~'ގy_e9`c"WcO>dYߥ*3şJVZ$e/ )maND$jQ͚z$*IA .e-)x{^xWp$v6+v H)WOv f7R._z6QvPȞՕ):?K>DO~Oc܇RO*|GMDGѓQyl|/Sx6/:HyRS"T]^x?;9ܰƪsh~L>c頻n'& =[pջ 6^R%—?ɻw }j{ws:$r"[A wٙ4Ta$T$wriLJ89ɾkLk3?ʷWqIhy5dnF`Eo@iG?o@Q8d[r#x޺r[-5  A_#J[[6醴E  7tF\bǼv'@5ȍ&d@X6猁YNJ;W3 UIMG='|CnW8y^W-sxQLIAEgY8]@s=+)a) WO>4-|ixC` *bʬd )ե#H* 2gjՇÌ5P,ՆnWsۼm<9w#MV@>L39fy2$iZ^|DL8D3]d8&g\gC1m;oڴQ~1?%"nn^|@L->dFRbA 8 эˁl/HǛ4KXmWb^~k*4כ`e@I endstream endobj 214 0 obj << /Filter /FlateDecode /Length 4727 >> stream x^ˎ#zLۀ׽3W~PT34jI2q&sw8 ~ sl̑O16~_qiwc-g{gKx>91Fh>,gg6<ܩ\oC^.g;EҘhQp=5bq)1z1rNdә<gwoލFWocȯX` xE6 yEwVMRlxd}oV|Hb 9Z[|dcз"pz1:{Gؙs:lI^}VjD7JQH1/j]7}@ nl0?ݾ٧n'MQ!7RXi .NؤS8( 5Cw;*b\թ/oQD=nmFېTu IKv?k?>#4c-tn񚀠ʃ~ÁjΠ_8$I|2s:nxTim⣎TuyĕBHu.%*=J1*Eݘ;dU4:ū CѷKFk p;HxiUSky@'&D6 /SMsI~jZo0g2l89QC۞kLjWb&3zm k kܲ) !KĪU_a\%K7ѣ H,lg59cILʅXNy[_6@olob{D-cwŽ7JQcR)]؋Ӌٯ$DmQKl% lj[r)wcxrKl:bp.Ҫ>3]*+bQL*thJ$5d@9 V!P+4h{nY z'1Z@N2IOlvO1q&g$4i3a̡@vI]Ͼ"SQU}hPr4߫?s];|ɑš;*F%QhqMke[mm$c9'߮54峰1g w.3]:s'[}?}ĸK 9 =`)5DI|i1rdC䕵84Y1򱉑Uwvh}{/FMKJEJ} n}ׄ(24BHY(4N>"K:GHWZ`,7ȏ_\'6 ?0't?¶<]f*T\J~wjv}μ)@0ɀ+'Űܛ$.VU7.IOOlytm|Vw'}1 2Ig)eŽ3+"Kjpv-7w:=.Y] +W!С+fdX#ZxO1eǐ$ q[o8ҚdmpE0N}or{Ҍ4`8Y=|8m=Q[u7bfO9WhB1Z4&< {A o侈٤۴_m ,RNH`;'^7ozIū mOrǩ.Q|9.T"f'`yv1x%jM#K&ւٺݩHeF} ekX"չg{ uR(SVc?̟&'y^}UQb['j]Fͨ^HBy#bI VxZъz2~?!5 wY2O@p\Oe2W#w5}~[&N7I~įHe?A] .xb#ژGB~r]=zeW(j+}S%S_]YȾϻam QI%z|ӘwP4k~&*Հ\zSFlA6e*FSQyeH=jo?s{ j=9RǺzJZZCE/Drv{8%T[[X/TaJO|:t&i73L)<%Ã`x0* [+‡YkSqnt Z/N#|W7*Z+FMRxU6>r]6 g noQ٧B@ƓQ 862P,([ɢkZ-OUˑff<*mYԵڶTyC >򗰰~k5Gy{=x,E'eƠGku[NF+A[| QV2{ iuT f{i,^#-mƉ{-3倉gc(ZkxW\{g0#Tܯ%*rpG#wwճw yTiʮ2R_T9KC>N&S7F$JF̵Wh˕?ldc^k8;K;㬴ΕoөXәKA vfUngoZc݂]Uݹ$ďl.H'-*+>{*ᘒOm/77X_nmo` NU([N:t>~hWP{F"L9՚47GN|1$rKI/taLmF !] va,B_clJ S". aPXr@I\}c eyfM|)Cl)mo/js3R{kפ|"eTP* CS{j|4Fv#L)d+CWglȫnsu'B/kI VՖ} SMvqttS#dFU}I_i$o{h<sk`r풘V &k?#H=taQ  t-*Րrۂ|8s=܏v3kBAQbү G5N߇#ڑ{0C -=>nV2^mɐ.gsJ?ڢ jXf~[ǔ8D;WgPaP-8Q-;Ppe:XEz>32OMpQtd1p2Ju mրIf5=!] G~\ tosFGtG,=Σ?nꂅOGHۈGDmrbVfr /quk^5bqXfWƥygж0v|FT^媭 XNΡ9iY]:FB#dƲMFYK3S3ʩ*ZGs!}/\dT%9Mf-x?FM?G{a Ѥ~KL_Bs:G08Q Ә1#[DbIQ V \ޛY+A_L>d羾qxxU&܅]̙y9U$(hEe?d.PT9>%j&.BH߶aIһᴚ LF$w Q,tә5XS5.-W7rJYMy+ӓH<,fQRÆlo LҖ/g*_԰dh.m%Dȑm6jh(m Alrl{" i~qOL^EfhM%j^wZv/-AvDm}H|p|vBmӧHp*Fn{oUu7qB3jADn,;Y}w |[[C;[)y4U`z+KT#b/FDcќ[ڞ<|\ ?Β;S2F4ek2KR0:\7Mź<K$W6{6ӕ0B>xDTWwV^ >$z@NX}mDDIO+x2(a*^Hv!5lԾr6 \aeH?|uzo >c yM0hޤCnY{a[α`@fwE]Ge B9%[q0.cH xv}H| _Ԡq\v%ѵGKYKL3险FDe5v'̗HPd50tO\ T7Y_AGЭFu(BU*Ub`^^hncj 3i08}q endstream endobj 226 0 obj << /Filter /FlateDecode /Length 7178 >> stream x^ˮ8rEDR/HsfxjS͗t=iw7:E1wߦ?#~q,s}yb?y~e[vLq|iԆ#m 6$moa :<-c _0<Ƕitvy,a=L|2k'Ks3vymM犖C8(''ZG@֛Bn1l>#Ӽ9! X㔶D2!o7/ yXwXvl]bwdklc_d7l yyVq N$N%1?ִMη2.%Nc]eIf(q 1ǶQ&k_~l$y[v{NWڰm"#aCJc^V%EQIzvLjk2(ȥ Rs]̘mVw`%` eٛ;|iFz_NMYnj)hCX[͉eWTeҚ}bfiu솉&l2<O/巯0n;Ozʏ M> HrIahpdm:fͼízlN:oiAS{lN-u*XR (*v~o݈k4J-Ȧ5.p.Pr_uF} "lρ@H02@uCL ,`aPtu|Zx9 9 Yr-;oKaU;ʫۗKnOLcxs Ӹcǁ{^[^ 9Wɟ>U9eؕn_Yɴpƍ%)fSK緈_H|xp= św{A!sB JvUe|ރ r1 7L,a8= 9sgf 6d'}ٔQ-.`Ƅq՜nUȠR&_ |lMwD{};n2{ d# 82Ê>w@L%0l)nVNfr/mT rtSr|+EK}y97;|"St:@e,wbظ8J@ʝ 1m,Ti% bI ݪBBrQPU2yփUGEHW%S @gMA o4ʙ] 踊.7&F+A>s!<~KP t{$wjP#4au77:D'r3>&qEw<%n(R088V5y֮J~agwpu$h`eB4Et恀}߷P(ԥ9yV~o訧T#CZE7%cL_s5م!E|>!O؞c"DRXa7 krFB͢m:YjNv aTo:`w:>JM=_Rk EjRa3V*gm(+D*ߧk2OT9`BӢwM;$%d&"`'^PU7ZM)nj&|.9䄁72zI22xK?(TicwxAncI f5.%B(&qdOӡ;CrיV`>_CְnrC`3`wgr)Mg"{hmO(L;URL<k10Uˬ o* ,cIfzXtj=3XH523 `=_@?.(؅.y8ɤ$נlrk-kgLiP1$cɜ1ڳ[9` ޺T[.mW <䅾"1*w=MDHFUs.):v 0޾J2_-1d%fnrnƼuMH3yV0K PyvᔒҐywBF3Nkeoh%[^b`DsNKUGȪG;?R<';KC^X uF*|>B>Ķ5 {s8[pVf7G.y:&xbs)xldv;I O߀pivqxJ9b` HxMюy]"/ E$Z=~>'Œe{@51@ rQ W0&iv i{oySIȔO` $qvS)o\[_sjB~"ތv>f]e@o zů{s r-n@=f^ KdwM",$® ]BP$CW+;¸t6{Qvy"Is,9`k+ $sy{ێʯ^l]TP^H9=TOlCu*j6oQsDSYf½0N 8%;]tb&/ʞnǕ@M1 a^=Q*iqsh9`_ aNVt }P㺹 ]D; ;O7 w݈rM8p|4|e/+lIl$֒g[湎KrWAK a*ٔiP._G{0̠RONrJPܥLbޤ e#bD_\$ #|w:n'Tߊy^iMF/5M-[iHlgbT2rRq3!FP7U+G.IuVL&Rt-E;WZUL&NxN"WĭnEZ1 F웻D| PL_ә>%6؜&|ye2@8N2\I*%07Ҟ}V?D; 4͏opĪL87@&_Lً5cI(4 ⴳ|A}`f,:"ۏPܝa,Fvhi\CO [N`Ki K̀xabpf7|pK1=d\[0w@AIh}:B*X7]n_&)}ng.k"QϦ9XP3}!b}%v uw>W^Z]ɡ 0 & MD|1mtw FǷXUK)hl16VN,_@IYbq^\m~O>D!"3=z.g?dȖi)JR+tk|;h 3`mGOčEwE3Y!<ف bPr]| 4Uof ܤ.k CӤ"ڂAy6 zۅrJ&N>Nx-ULϧAcsu6>5@.ab3sC!u|V*}YGꚛpLȏǃ"NJo,'[~n~i"~%$S%X"'es ?׶tYs \'EHnMq%y>9 lzwJ;օ30U)Pn Pן~}I:t8륎EOtWIjoo}°ìmrh /h( ]3+2ysaWg+{󼽘@0 Sy9o(UZ5zyglHZ:w*:R.r$RnPcDVOZEzy7F.QڮEif̀]E=&wJZo=+siP|=w㾩ˢ=Ќq`*1!J݄.{1[D Zi\Gئt A0f 9( HHh:ސU:W7R3*- `Pezl_?W1̔ǷS8Y; n6wFUj,2I et՜vI]}'?6VbiޛKdͱJC~GJ~xU!ĭViYda4\}USyv`.URG~6bQ 5u ծӒ}3L}VN_$`" $.kCpMIsBA:u^y(C/ d 2>l9prA)+t~t]Rbvnb` endstream endobj 231 0 obj << /Filter /FlateDecode /Length 2392 >> stream x^ˎ7Es` X1ۙ'Yhwɂ Nfdnܸx--?~[0J,~K<ob赦7XǸ}?cLRĈA$RPQzUǿOqS{hoR*DLjPr,z&SQbPk)΁Z.͉p Zx_T:^ ?oI>ɐPxq\onq3+IaPt qR{_(Ycj)l/(%7d/#'GcTiIO5H\kFr!%JBSuYHcY,#(P>E)|+.vJ$PW)%y-5@APJȹEu+I& /RnRBXdųz&r~МB_TJMǫ5IZ2!~'^*JEuגʠ5r/i)Nj!ګ%i/N!}0ĶBC \CJ)} ޳&ѿkzeyLnnK|z`/ԫ\Cl2NE (~ FyyüYpY=yJuRFq)W#m9կ[ƫB ?#Ϸ߲?>y4FbI8q=No`T~0 ws{o^\j˸y0%_x۫F0VEdcx{p dF$g'g!iYdCXqs-\:hj}yGao77(jއH=6֜*dwbm^ m.UAsnj/ob FDV!x<`%5k|D6ny=0 {Ck7E) ĵѥEoSPظzfu_i/[ć^^-tmBvصwxidavch6'x@EA|:[9򁔾 X&@fP/ObYZV6sZsanM_t=nD-$ߒSwT~sv9k -\uh!3-:F"?X`P55B(M9nEϽZQam[6{ G6ŮT<ԙ-' ;ˢy!% ߽'puB~&>{x_c%5uNo. β# '[m}\m*hĵV_N[}vmkUB$M㷣Hc`ܝ[p WHD;p28@Ks%s&a!,W9 Wrpse) mY_ ( ӃLeghHF| Y**GĞ9pIռv}Yk=flM( )׀cxl׮8YvRI22W84WhN!<]_ G3uX a7F?xQ`6hwڮnr ɶ PtQ")eӋRCgZO*d梔1Jo{J8!7ǽ eˮ)Pu}Ǜ8owe_}G%)o.0pm%> stream x^ɮFD<4k^oX0"n|zR%c}G񯟺??Ə~xs?ǟS/c4}Lݫ?'Ч_ݐ_vmYqX5L40D~y^x8/2޽uܴ_aܷ 3#ִtl^?U5л߻6Nvۭ;2v{nZy{4q5lc7=]c);~枣7+Pm飗 /fvɀ: 4 8O'B:,ku}x2a[a؆W60cvmN@!LCy'N8 ?k]qnq}-Wktū8Jm^Mq_2i㢖5 ʸi4,򚑾q->1mͩ[@f׊2-qB;Ka[}>]L&r2Ӱ8*3ig׌aoÜ4ط) Y6lYsi]_.HgWv:^0gX*|?Pn 9?luѮ C4/Kh?O_ 4I}g'#M`ė(3 ^^dFPFg-͖{$I})nA_O2]c Mo=[_Oۿe 4U㓍ܤn]zv='dݩ>𚶅'5pkDŽğga>owO"[탌Haqѻq4{򐀪$:'9i5s߻~AntDg}y,Y:ŏb}%&n<3wkp7}_q eƥIk I}'~ZNJ1;^qh.g7ЋSeՅ=qM#sd;);nz犑)cQě{'}X0CVHMRb /DtY FApAN ҄Np.K8Mk#ݑ÷^|2;e{봌Vc`hZpJv\ ퟝ Mέŝ$j-Bgv\q5Tx=qyp)(R>{Wz">y!@)]_tӯD46;m!u%'4 _jpV)N^'qsv+=XمM@/rF6v aluwfFl!h Ȭ<<hH[ Ɉ~ o <37)~ekLXfF6bq#U'G%[ל%ˊNl\U"v]2`2RЄT(P錋;Wr = 447=` H^dT\ɼ;QzGBj^@֮IW@[yitOLK $L-\7uBi&OB^|7;{F13GOJ> Qv^ ;!Ü;\X6qHgc뚶}7<䬼%غWpHlFO5Q1l6.qf&;(WŖ0*_,F$#X*9V+21^c6& `\+Fy|c.-7LhC&,`'H)YkZ:@228T҅f<* & y ~zci+R9ŒHZJYTܖ;T -bɷǗ'/1ڣE/ߓ3nL [31/u{ g4 )HRrը%<G2Fa0s':|x}Y]NUvbV y\,=ց$Ycqg;nuKmk,DA\3ZIn%mEXVx qP!䑉Q̐Mnu|qo9jhuD/]|4.\0a2rXŭP>ul-(yhFyhPdX_Ž'+#H' $x$tXzt*3& `\1q8,H[I>|7X Hq )FDhrxFŅf<*x]߀J^Ipx>Au Vw@@%]%5G4%"(0px!m\t?k^|Rz=&'|WO!.n8QMzV duk,dmM׻Kƛ/IעdE5+̼qYFE-b (~_`cB&,ByKU(GhP=;$~qQfhڅpr %t{jQI)|>y!Ԡqa~ p '[^fޜ7&A&D45F7Eq c-!?AHNEBY&[/v$JVq`zv#7Y3QFr+ 㬚%7K! W,|?Ͱ(?{n%"vSx[Xԩ&O`î$'gb<0|<n)5÷N[O8%хSoWE 3L#31:, {Ϥz[}cbv|"nv `]JE8hkMePªr}+Ս?r1J긱pBͭ.c̝$VJMQBa-\A r SE(e ߟTdf7⻠eP EK`OE.iC~/DZ 6ePbŅ:~9 A~lh0r`g"bDdW\(Mſ8y^K>oӒQPLK_mlR1zzt;!r@='ęR6J`͟mPLAqf\_OfEH7!*]l(P)nQNϸH=,;Rvxq񪜐7n"7*DFbwy^.ui67IdR&Q*엺:"Rp@!@(Dv[qXU{N@kxU/;A\fDxl 5lO5eC%XˑA. 9s '4}ic$-ڣ,CEY|bq(ü[I2O:|[pb y=ްR[~}RtXY7h:Vxmu P^CΔ kK;rT@%J­fe@5q \QA\t~l>P0f0A=.DŨzTțZ[0Z̑OJ=~n}-z`~].hC9jvOb=0k zϤP5}>yžUs^6%T#R|h4W_rM'qKvݮ*_ f&*?c6ǭ8U~wY`t,q;zb8`5 `JQtsIW8W}oť:C0@f lyJH`~Rq}W?AqMjQ"y*~q*&RRm;c!HrnfReDj۔1NpCUX\rXt-r>)z73cZA +S~BRT*r&߃SKy'-J;;VEBj-z8 kcf-`Fo^Uڸ}%3MbNHmi-sK,$n n$Rub<Ü>VX 482_j"!bi]B`8 aG]BIIٝ›iPw$*ujד綃]xjrB w]AM=ISƠ8۩M WUѧ27hPF]OKց=S2׮)e`$hMXj grBi &VQDk^icKQggGK LJuTTuT$YД106ՊB p߸ձ^LD󥩞%kZDjޑ\:fcӶd@m(/|>07.Tֺ)h5pc>^!ƢxW✸HT5bP'0VAO4#+`։$X LlaABK#jgvmiUWʼnƝL^;Y~hFP3}-8X:܆'ST3CrRU.SDw4_ U³77Gf1 z]LnnL; HIUe:X_zcōxgxɘX8AziEδ5 m!P՝>>4TXv<;5UWHŸ[ 8qq)ugS$w FHʑyC ^޳CGO+Yfe*DKuVR4:;VNTB966/? (Y gFCoKj>R5$Δ`&gϼ^Ī ЧNL0q~8MJoވX[ݮ_qCioE H c(0Q]s&aN)Lr}>ULf1bϢ{#`4Hf+m+D4mþkjoJVJgbڙֽ8|>Tm΀yp(stl=7sUЁ9; <X+8 hfD=f\0 y:裣B7WL06SUUf]A&y, ?HigZ> 25E!%p57hpoM@nh=|JusPtlg?(}$)̭{aZtc" |[0PqPaD!>(Vc '^#N)_yVy {H?pNnF\oA@a02'5ާ. }j@xH1KqMG:'|RP=PPH}?GQͪ 7= ty0#i 0]?[;AByʽI`)Tz.K@JW7؄CDyԎڶٰ%|7Vbrը Jk pteu"6Y_T0gXм6·3S6{vU=.>oY/kلe}Š8fo\.#!7t (.P_䞳N 0'$*lKgcm 0(*@ nD ҞFN;!cs5=c*^Qn@i MOpR.)19FJX*$ (>fmbیivYMۃR|AJC=[2 $TLqzm>G}/^1qX֓H%i&gi}$5T4B@_3 DZ3ɴK40/tn>^J4Q'gݝ7݉8Pٔi·McbBsܔ0!iv+9҂>P1`KM4)~ՑfWhavD:CwEr@VuݡkZnpN:[v,I޴ٔ#WzdEƩ9So,icF kG?ǩߵw9Y)_4/_ŽkB_fDb|1#e8Ddem)J0nTJ]O%k#mt&|7>'vabc}qXr zfzg<8Vx㋣A %SzfF MnQi@o_7TP Xuh_;XώL_lvDjkww%iբֆ4Z:9p.s7MF|ŧ@ Tu9q?QR) d4}%)JiN( \0Bc+{rE_"SD,vtJH_9Ĝ$x 0* ^}P(eԛ/P EwOb4}u޻Ӵ_TBB% s!D8! ;4"Ws]T$Ȳ+2CЀϝީBCJjQ}FݝOnҋCD/B">(7Rfr$x@ Bo4 ?TKRbv~ ~b' u1}{[<ٳaji6#̌!f+!^OeK{ dգM-2˘Itg_.߭8^!Sa1fm<|PܴbYf-ЯJsmaǙ$+i#S?A[لs9Qsнޚ!| 4m+mA8Qe6 ~7PUqHɹ*gHR<]_:J)ϻZl} endstream endobj 283 0 obj << /Filter /FlateDecode /Length 2160 >> stream x^Z6 +W%^ vAڤ9mcIًIϤ_ozy~xNdTrLF艦U,OZMuH+Ju.DB0ʰcڒ֌y5-3Ws1"ܥ7o%tȈZY";WڨC $>J}"׳-CՕIyc(M` + yTW_J1b:u8[x܀NyTO'1Xk4$CՕ!" ~!ҞM ɐGueं3w%>$AՕTXd8qcPvJvH/IydW7JL2~K.׀TVg Ȯ,ڪH8,);ԧ @~g6w@V2G()T&j/㚯cƋX|Q")g<");q 'ba,,Y!R@Juؒ2A?N^y--dPFve eR_c8^Fve^a2vp w cYa Ȯ,)Sw 9Ya Ȯ,F+ ,E;kV{>c1YNqݴ/ n"X<)No7wUaܺCqlZ~JwzYa .ܭ(^FveF: +xٓŤ\tvG;]n+F ܊"Č*n3Hd_Lxg^?B5-O0g~oy _ 01Zj^.|[,!Lmv^̼95?fsxC^(iC q>V2z@6m R QO5s=|3t6jbL2넾Y*. ilsl$KXxɲk6u%[xfc(β'^,doyk^|Wūf.r h'"r\ly],;n 6EtktgoDe%yI]4VS߅ͨlR,±X;`-_!_pڌ^'E|T/@lN/Y"0 *4?Dd3K Ru)Pv&`d\B.OKBw2df,XhKS8٘*ZC#tWϣѪ6$Kz* z7gGn"-sTGՆb[6\DoŁ9k9e-@Ǡ"65rE 4}a)x71W3%ehXYëH?%EuB.ԝ ;[P|>FGOu`J-K>{Lmc+넚7v\u;ǀ(qI kEЕdxˮ[Q݅g&}Dq9yb2lpF\a#5qh U(%\"2q<!\*w 9"u1XC' !N+SH 懭?GӚ]kR눣i9QeRDYгQ*l` IlDR(Tz eU)䆖p#0䗚 <9!˷ag6e [فUF t$~L/l|ǁqQMwg 'WOx(GdZF%q&dA5:${kB #[cȄr(J|393-<2s=3m 1w7>cd;' endstream endobj 311 0 obj << /Filter /FlateDecode /Length 4086 >> stream x^[ˎ# W hugdۜ#*E]4ܶ<7s~㗿Ywhwbq[1G_nTn16/H19?%%-gw 0zc<9Buɪ2&!}A0`z~"mGՅvYlȇ8~Qn{^ṁuFH G,VPU%|H{ ]hZq"n5\80k`+FSLN ŕ|snX-RhѪ&ygJ^@Ψ"v DM*fa9Y/FW70-S\N.`a$"̇YB #U]gP fӽ&fhV%;)%hd9hV~СyU&;Z`AP;hQsVB#Zh"$L:ʍ)I?)Uq?L6OW+ l3D~_&gB o f_*p~Oi~dv&75eAԦļ` \e#+RXt1K֡#l ..)2/#ࡇ!{Ow|Bӓ\ה`ɵQxfW' +"Ͳ&9!2H;lwSV'ɪbaK%^g1u|-i3Dߏw./Z{fԐ"<6;b6%ɿE>l HL JuQ#!IoxRcFxKOCQ3+v#+l@b,KIq "̠/oH|Gqv|$GI@7;v!mw4 J♸xoBg Ga\W cuW[Uy0K43^6h5cőj NLufoS{pyd~32-z"%yeyD_>{z&4^t3j+H+j

͈=v?+"ɔ"*NQWRi${?T}t#/QZdkܳY06" LЧKh;>CT[i}W43<b@d#I gc\ Aڴ={ S](r ywґEZAaوs:ENxA偰z>M: f&s$k#QT6M8-Yғ(QFb4)Vq؃ #X+;s|#7SPwKsW*oFڌG~Ҹ9q8!\YҜ7C5èg}Eb/K(x9~S$ئHשet|  ,E,+E1L5M 1@|g<2D"Xu)9UdžȬ\Ik܄(HV~꜀XMb <4 rW9wWBGsN/f3ӇW}:w"Am ].-(1خ^s`W옒[|BC_hz_`M:DĨW6-`I KIB J`N-kk[%PJ&fU`8sS ҾS$KCX1a>' TClWa2ֶg< ] BƠѬ]V((Z#-2(uOr@:0/l#,2&v blIA`2g0W Z@łl㜩N:|xfĊV=)V״/ZRb4CA`Yȓ)LC,V:w[ih-oڳ!fX2S^q͓ޖ.IAig0e|0#szpkԹψ>$3O Q=qlAlmQ,& 8ܴ@e ]Yxnؙ@7 `CU `Y{Ll rܦM 0>A-;zUf@YZ0{hR 9ԏ uEЈa$!(Tj XR|\k&耏3GMY Y3Y?xs2w7GGDIs1: NBx8HQJ)sa{ A9<;^27_,]'0-='̒BlvkZ ~;+%k1x܎~XVbhKhp.h*mHXI!u:dNц7]HD^O\ . Pw3;;i W\,iOXV.WܖÔO!KsБGT8NQ5[t% Ѽ%Vv7B+hd2y~=0Es}lӇ&CMHT\pXyBzSvjH0 Y]# hG8"v\V+`^u m@g;; 1˰m%T& Kn0gwuA]$1&Yt0bYJ_iXpq`UP@ݝN19Qe-Yb+d4k 1%@< ZիeQp[LRo7YOWRrFmbSX% xN8hx-F),Zܹ'X/ JH0B@&ѾVG:^ G9ĮDnѧ#vj6 PpLMq@Q$ްK= *8KxͿ3 h"&=OcvJ|JPqO]f/kg69l@[T:|é5O_271 X,p7%`H&m.]tCi1k&ƌ Ȧ3&Qc<"4(,P=I%L`&@蜳(ן1Q 8ӊ|B;ؒO(ۘO_n?4z^_pfyf||iS9rZ[B_i "Q5R-KH/ endstream endobj 313 0 obj << /Length 0 >> stream endstream endobj 321 0 obj << /Filter /FlateDecode /Length 676 >> stream x^Un[1 +Qi8H\gߊ^Sڡ ؐDQg8'PBs|?|k`k / ,JjJ0˱Z8 ?߈4YGl{DX5Gf3O};-T7rqnWI7No3?~ x)g;Rӝ%q3ƂA4㑞cdi±TF1GoL{J dEZ 8n*x3sU7Z($Ly%b܅?ˍ[Jw^FO"E#kmcH2%}_pkTQC68+|jD,eo)]> stream endstream endobj 325 0 obj << /Subtype /XML /Type /Metadata /Filter /FlateDecode /Length 857 >> stream x^Vݎ6}D/#0 QU *;Iskl,Zcc:*'E/@yg&6H>|?l_T9)=e|~oc٫'Iea9UȩsKX\DDJnu;^|3_Sn6DAyᕏ\/Xfw JEv۪܋dV2S C (dTe ǭFwC%EJ&;ī έ=BbʍoQʄVO۠AMM^UeBL8ʻJ'ABlRMWbFq[1;r4>ҷ&Mk<3< oqɉ@<"p7p`Dxû@?(7rӋH YLS.k´1dqq!)G"vRiwUQb,:!I(9UfSYjt}ùb5!w1ur?ו7P]FLpSAdd86[L=yu8k1fD׈.Ÿi!e~2^rB_SQ 5^s70ۿ=A^B`qS!'ŶyK$7mjbeAs > RY!*dp~YHRƃ;?O|`rA[)Hl 6~R_׈t]?7)]$qNWUHftV|o"oI+oGjnd5˧{nxǴSZf3oR> stream x^͝mD藺ěٖBbAV8i:53t?JU*Ǯtfddd_v\Po_&铄!f6 w=)rꙖD&dV *;V.XT*ex$_| |~ĆI}B>uelx` /kVۦO{߲[Hzvw|??>$"^Ť0J- q>9 G-/f=hS" `A8AM3 82P,A`z0*"Ŧ`+J1{"{ Hʜ!¿/S(VņE^ӠQ`T]65p9E )*]Zoa`e  HQMU2 =Z4#, =|qHAMq0= _:R'm B 5!?c7H`1]A7=_,)h9ЎpRwOw|{aDnBQH(cl \=+e)4lSH,q !A539'>:Қ1J3EK1dR3k,?23LC\6V8d~RiC3"L~51p~îzHvϷ<>|~Yva7/lsw#yfmw G0ї@'|ږ}pͥUnV ;Ƭm8B A;K|r|$w|qRƱttX,N7#g}kr ) se6_O0Ek5JoGuXjV|A7|ov]S#j~%fղ3p4OԦrbENP!s4vK㩻t<?DEpjGmw!$\}/C7@T>=aEHTox(T^\(x xQ @%t/5hKA 8怟{ObJg գDQ5g%wOɇ>pg<ڼOߕ 0b\}v]%_}ǟk]ٝk֎~c,ljL<+=cOלlN8FmuwޗSŴx_{ڄ@#Dꯡ3禭jJ'J@0:"B $ۡ64\yO/o|lPB;{]rryu}˭4sBo10hIFlpĵVO1k׺ml#;Oj\tXF &?Gp`.EFƒ}-Ca`)i"m%N>Ԟ|^\<^Eepi ė_3O/ևyV-fM#I(~ݦy+%ZK #w>!ڞVyܡbU"d:xeץ# 370*>1ɸZd,bкWYZǟseʯsp%oͬߘp]ˏSBus#HUk+EGLG?\G_K) | lML`,p[ѫʛ 2cz2MYQ+$lm锁m`ɜ 8;؆՜lGy.a`:x$uDھXUȺ<6kt;XG,HY}xBĶ1}ȢXaIJzI[X:]$eg? 9;(:t9jxwíi3ͱtzgb,"ωVkzMDUswAďQT #c<S+=X%>:S1(*$'6Uɫꦠ'G;okcʹ> Ha,զ/DmII2QܮZIСˮUOM6 z8 tI&f:8|H©у;Vsl|58b(6W^j19VvgNL|F a:P]JγF +i|©h +iNS󑝥yS$H;sk$9q|wi=K>1'x_qYyƋB4I 8-%V0lA_#a#oL?7gI깔q*=7ks93}cu~~Sc'm\b$SMm*Z9αc9v<48AElz1˫79[&MM=U#ArJ*D)oBp_% GS UdjZśC}8l*āz1 :/CRUL ]54\3JԻ¡n8Ui:˹|DZ\SYDp;ISU\dBR)3ȵk+b7>E'984f̙_H*'N!D&8 jY,))5Pc d>t 7eM Ԩ 7~>j (կ Y+) (8[I g)*=f;zW;0 WYJ.\} sJK:I(p5JPS5jcH=;:\q&HScl.-  #'[OA״U(UR ! ka>qr,l'q9(D!SJA: k}P77 0RUxOQv.@H+E gUsCBG9RQ`t\~xJ:UU^ WBC"Q"<6*|:„kPk1nH|[!ӫ+Q-!#ꁑ>t|]ZbT0#]1|csDRœIϥRL⢳T0[M[JJLm!޴%djG3P.br<0C5zX#->6皓uSUKa~w)yHSjzqqm5aҙ97L:jϨ+alaLvn-rꍢx6I@G„YaԤ1ړXTEp+k#2%d12pPQkT%!|=T|U+&JBϦ:pP?JRՒ*uDꥢVB|M m$?6oPڝqji+sXvL}o]JѾ]VTW/& kstf?ZwFx^h_)8]qΩ]V쩾]vѵsm[ivmŌvOBc{RbOl\oZEc!R>R~1Qu~5E^_\ U4z)kxM"]s4ƥ|ǥUΕիxɥs=F}3xOtUGBhspR#"R}\ -|jy "kԋW.^"tMh#o7!h qwJ'oGAg}\!guĊH܏L>2C1LEUcR'{տ.WŤ\ lVMw <5*&GI F)r'/MI2+6(4ߎ:qH qG"9, 03LVpmud86i޹78v;p3lr_}a8>8 ׎/p1-к#>ѰcU_mA9؃:}F1/X^aDTP^3FO_xҌ@A|y}E>Ac`řϕ/1ۄWڵ ļdcn[{vԚ0I˭ޢ$| W1w&SV1J[ؘ~c:6G1}c|cF9GoX7wo?ˢbA endstream endobj 369 0 obj << /Filter /FlateDecode /Length 3873 >> stream x^X XSWso 1VK,ZJHZъ{F; +jUPn}ZEűuF+ nSkGqN.նa~'{߽7ߗs"$Ij)Lb-%1k#ņ蜙8'KE9糀_ɉ<D+dM]wt$-s$//(J m(Glxq/.0 +"o$1~jmI"i}%&JΧ3$Ղ< W 7`Z&@&֬.Ir"pwB 1&pEToqՌ"KGIr]eI3k $A>KԪ= Qܻ~o L; `6P#ImW>J  E ,P&U:B1{]xFt*PRNCNBvVPѨ1h1]uaq=ҋ>JO':KWxc]t|?ɧ$B( íSGYU'iE 4Q#HUpC?Q)}PC)*|rpz^ @hWVE\CZ?e? F)_S= >~y%wq+߁ DpZi_˯{D˪pGB @E P_ߒI؞~8XgŐ-)0gwOߟjh:E,[??(sJ@c] fS7llCc @f#5DQTCc= =|m? @`wa#!_#`Q>x=/׎_~|ܹX)/[(b7tyAY]vċZ쯨Y|MDʢE-'oZrn UfO)|AFTQ'z9ROȕQ_lWy#vUxA#X.zz .;M͡A=dshg#NwbJt5y^HCn wKϲĭ:xZzcbOhΤȲ;VkP>GC ڡ?@6E)gojMdscmk.(#f"h}V֤VEXH[ċK$ǶVO>=CgVH&cVpIEcYJ"X%XD g fBȠhmwًr(9(PDsrx^N<%8HN3Q(hP'[j#' TlU&+)#"=iЙ|΄pu+bKNfnF ܰQ(\%ù.&V2 ~/gAXO>J[qwMaN8)mJrRd6 yDCN{f3 Xw I bPxUXO9y8^ǿn=) j&onMo9v2_ S=O";EC`3"l  W6 KqW̛plꖮ+59yJڤmOn@7 N#5%/cTVUdL.:56rFgpdUVdxҰI?<&ь3$Oyԅ<Xo;ph\|X~|4^|Єm¤8:"6.s/{JG\WFIRgj|PHa_n,v&~PԞHM妢V&䴌Lqaի>2|zbq6ce{O;VQȺ JE]>mQv}޵?@uW9)7c=~LuOʹAY 6Dg @b;3'ĆZo~Huu5>}dxE.d%3q*QއPeZ4jBLz#Y`J`ԩb"b,xR([~эc]L>~E{O1^Rb/mn&Ƚ߉4*Z˭"ԢKGӻi?y=7OGFP^љ|~͟6ğ'gnZ陹Yr:ReOV H@Y2/g aziMyd]chBXJ#픾ꘐ97g[} G8M%hq:BJ\t6[)!.ʑG'Hvltei@g."lBhywIX}'YMn=Y7eᬌhۓ]?/SߙaԿ@wʏߴ2im:z684=SU㄃I>^tXG %~SN<0E+gF^S{MIcz&lz⨤mc"j{µKِƪBۇ^ee ZJ_[,hj^Ө6nS V 9$$),7wzڍ2ZIQeYeXwm<'ޥ+>n^aHz |k;KU4IeHk#z~zᾑ9's;= {@!b: Bj56èKu"yYy'v;B*rZvBeپ`}iX 訸fԆ Mqe9y#G<Ú QT|-ExzxzHѐ;&Jkjh4 H\`~f{x3b]33x 4{wwST|U@¿渮 endstream endobj 370 0 obj << /Filter /FlateDecode /Length 423 >> stream x^]ώ0y ˽0!,RJ`X kBj{#jUB`cէz]@w]+m>2_0a3`~Ws:'dxiH\.I,<٣tt}*6B;$ tzWb }.m<5ת#!C&t(.s4vz+$>S͕XB1G#֢N8Cy]}eID/J5-G+e241h޴l_OV(Ղڞv=Vpz w< m+iRh9`2G,&;y#p3'Ϧ7Nrg(..z88x endstream endobj 371 0 obj << /Filter /FlateDecode /Length 642 >> stream x^}M@ރL>;4`eٛ[7IHAF=lXa`S+ύ77z)_)/ufmW e]ζh߭5ܞ6Yƶb"oT.[UQ~+/-/M^XoQky{ :.z`uDOAI˳o] blB0yYL) 6צuq(/NEM[_y?jc8Q4=\dleފB{ߝ\:׾$^?5a7dilS2[~Ja31]h UW]=pG% y0cLQA Ҡ^@S:Z1ɔ)BDe^AI x*xFTb]D?~ )i$]Dw)i$O 4!%$\4\Hd (F .1\hL&ИLHB,B.1rQm)&<)&xj$#A  RVu endstream endobj 375 0 obj << /Filter /FlateDecode /Length 1876 >> stream x^V{PT?ܗC]X`#˲,$J]BQ@Yd (op5@6_i|THZLI mLǙqLjZ DػoO;s~|0BEO!"kvow | Xbak,!age9B֪ek"&FkKi*w!^݂XXFGt{u*Y0 w@\'gu_d_Ay~<'M8 eJ@A7~zN7'|$1/@DI*\<*L&(z24Ϻ֑Q&G3ƫMA,paë$Qo< >riCq(!]cQ1-Y A1(>R(6XK L=TiBsϻ:|22d>Ǜov}h>c ݿ!g'g \Z[7ƅe_8Ͳ8Ha MvmHφ&@!(#)$J' ed$ gݞ[Z^j_y[jĉFmJ>b .=@(X @ rb9- J9zPNz0OG2CEYvيkZفrT`wtqn{uyKnP]$=U|U9 :h 8osՅeFɿE{x4ɦw}=Ƽ[q| vֆ[G./nh(Ѣbb !O/yr=i|=N*LbHGYye_pfސGFhnL+/DcϾ܍8ɱ6qmmEM9];#~Uڴ}kA" Rh4N+oEJ-#:j[ƿw۷d{O6RMkӮǍF^uA17 X*X~ ǿ (츴mdׂ9ptρ%tkS69k(5{m]OXʬUy2b< ~Z(zTLݙYLǤcS*D= VW(Řcc*b ۮ8$׭wmIYoZѓ(G VV>z9+nw?&n(+sOy endstream endobj 376 0 obj << /Filter /FlateDecode /Length 424 >> stream x^]n0y ˽@C(CVڤR[gbl6 ɫGWXNUB`cCw5.8Lz&; -mxUG2m/S@Rm57[c!~?QQ^ nI!(@DŽaniRw6NCnOAF vR jkf[ [Al:^kA[CgzZIc1V;1 7lZLۙph endstream endobj 377 0 obj << /Filter /FlateDecode /Length 465 >> stream x^}O0Cb6Q% Gh=I-8Dꇯ9-?x~~3^, ,um8zKVuzE(ލ`TjjũZ`=E#?]RVUr9㣬R-MZO4j c̾xV"ѹ+mwum\@0!y3mVVۗ VZV֔14R]`2*uQ\%m&ofF®m.[qw B8L]m(fo.%*Ng'3#4pKw[GECˀhI4'DD!QL==%D+QL'J g-ѼD3"QΐrF3 WDK"ٜ4?mmgZg ;Zh7ifлmy endstream endobj 381 0 obj << /Filter /FlateDecode /Length 4602 >> stream x^YyXWsqAii n81.dTTKT TPP@Q *n{2bm([Zfy(ೄ㢯x,H0`XZ]/¹t1 7z\$b=K2A/oQw}pUESVǃ-ظ>?osN6Uyxa@"_K C$biԒ81nV X{H>BLE}ANn=Suk)ԌqgӕߨH /i),ySڷIҟ@[ Fʃ6V,&uR}!2|&JVa֎|+K\$KhDY^,,N.6Wx"Xz&<P?xw"DЃSq̉Kfk +3tX"x(w;^eEt; <鱸;Jh Ѥ=B 7,lF58p + j澊%#oMz=/ܷџiF !zhʪ;S%q14L|$w&zfLu~yT4%=J/폠 XdVTDJY*Z2$e"iwqF⯵[-7<b|~L,0X}5 =#;Hz?*(z }E]zUXZ0X47j5jOX/H(}e݀`wea?#L2~<}$|/{3{x-x-S2j%jQ (I+";gc7Ϥ'rGZOm?I*CU1~b`6'>{XY :rQd>(YFi?MZh|n<[xo6sZT|"ȟ­/蝵OleRJS"~ /3-ILnZMMpNnQOd ΞSLɤm !,.f>8KS~ HK%*y7N'bȄ/Y^9QsvPIT筜=^4),6ά0X$ hy~\>PralEhC!yWi5+=",""c˷lVJ _88DN}O>i~y}޴iQOP1Ә8PkdY`cGĂW B#H=*e5yđީ~=X&ܣ~gozbEV2. H4mޑK~uV+ sr>^LNCOp<3 M-> `آI9gfG9xj"&sv6b7B\nR [M̓veײA|uWTÆ)bb6/^ c>ۊgmm~;7yHpk nht5RgNsުfm i\}ߍjtXh3L]6,fQ_^BblԪ1/,دZtSv 3KwW4[Sg&K}ӓރ Â,{;ζ/FGQ=<K#+lS|)L+|O0pXt*Y#{+kNوIeټ+4:8dŖEg(6wwɐi:w߉K}׬?w׼2@B@Y7ke:\!k&=0:6KqM7*2O|.љmӫUz5US_w[1t "d1ɁVՕ;\^4?ܿ"ك\Ѵ"n?_r|/al042 Ȍ|}~?-?;;{{&F8aD|u˗~ S#;RXiuZ:=1YXCc~) ?<[<.%oݺ-k㈣PݥFA?wX z-g*@k4NՂ*rU} "sZoU>>keq40|t0)c=1bzNF0pr\L641XƊi1(jtue;wbɀ>N{cд\e)J?~;VLTJ0T X}{O"{H b-HZKOv 4J$G4vK8} dNJ*´D\N]zgnM]Kk`oRIn0qM%uٶd Eס!eb?I|\H]2:@V\k KP (QQI5tveZIɛv-S$M h>e Y,.J3|?sؑ9 p?n?VXb!`>$25 $\S%ĐĩZlђd!`(MEarl8ݑNkBr]'V@Kk FY52z IcuC6 3aY3^n Uh^<*٫[ϭ+a`&l[waϾei"Cx&AZ5^ؓfsѦQ:KgsKh4|!x 4qQxD."Xhp,DEl4Cԓ7q^] g;Kh# 'BFtb.c--N.=crHFefcy\]:ļWqox> stream x^]n040a7m#e7RRg/̲Vvm}H}dO"!g~iQ,@E=uWj;Q^yܖ3B1;ՁedZaX-7c6{Z~E݊`g(!#s4MCGf/,Ca> ,T+˥ ^mdo @qUo].L45U>Cw5-$Jf!{O-Tvq ?߾#zL!YI׼rnjR37S|H'q^)&eYHf7#T>Kv+zݖdn;F]F1]Ԣږuݗ807x?sշ`{~{L#o[,l3.pzn ;MN'x3 endstream endobj 383 0 obj << /Filter /FlateDecode /Length 702 >> stream x^}]kPg/ 5-" n[,K݀& aΙ'ڋ+>ɜ}Cƛo(+?l7̛cйqofytis;YLEIHw̞6/>Ks}{wR뼰7=UsWyO3\ob?姭,L<0+IwN5bzgkȪ6dw&†_^2qE)ۋ 'Nj^Vy5uKx8쬓h<32L{{sa.297ztlVևujuH 9˴E^iI;Q(][M>fHGRA!ԇ0C@!E#C#(4)4f> 3D>:Ct( Q%DD-!Z$,%ҕ"a)Sq2 D eĴ)(P&%BViMG1L.2=fDHI"PBYeI J@cTKa8z/* endstream endobj 387 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3525 >> stream x^XyTWxdcM,hGGGZun[qY$B$! "[*jԺ+SNsof;ܛ{>y(5q׭^bڪn}z@ϽC;-B qx,5Y@o?uYu<p৑g <4ábGݑ7&57rh)RyGf&a;gOpĞN<@%R2*JRQj ( Teҩ HeRTE#<vQ\{. P,v#ǑrS!ܙFV#tMvNsvtx_~[5fF:`huchaa3/&}i2}x 25y/|ٺJ;ҟt)Q3=iF *HJf8<ZF:+ bk%!BJՔ:>%N ASjc#l*$d,"9\aA N۷o ſ{ت@9xʦ9~Wr xpGc[~5߳N@d2I0pOBc}ƍEkjS)ˁ8X]iFqfrA4Ĥ2""n%<~$\P|яm8;#\N g,uKm LJBTJ :3@i5V7 u:X 7F`l}g <F7v?s赯?_fg#*:#Ka-mu0"^A2i@F 2򿄇a^"21} P ѐruOK.NȎ/yYb<}L_ϼySp k(BjwGI—r_V|؉0('UFf.R}\[,l9(OpDCT<`9S.:ϖZRV_X Eש[8x YV~1]N$,0H*O=d4VoPkZ5VQyHPb"iUM ZiJ(ՆvDmC!@X.0W"Qo \BXa 1PTP[n_.[uS-gpI'Kmխf[{ӢIYOl-<:´@l,t{ɰ B[B[Û[<y8 l!VScv2`*[N$lJZN*NP<;W\bט<ˑ6f^mLɒNRڀ YZ"g_iEwl0h ܀K`3,n9[UT&NNO@%yI_H{Ԩa?h唲R)z,+n!.'ܓ$4/$/BU BNQU 6T*ɩKpAF!x\Y \\lNʍd3 ]%Av[5+V9Gl݁=XJkdZFVWeFV;[GA..ԘE}CP(AWl!' Z•HĤe$d5 e~PjT?A8N^/Q/Q!:OmR˒  <˔7ho[>2R!"7Gd0@YoZY|-K $C*INA&Qz8y+Igd"itTXKgrڈQx%nƲV8Dz?D'h'<ŽuWhɓ'gil~OT#2^hk,N/Ϥ1'^K&ygxc:8aKW ar Nc 2Ďxh.ᮛTil:l-|Q8*;@YwCRx66†XH*k hPBUU>'2QSI SwѽeO5; EdǣvXA;wvp*OL̊o|K -_tk!m>m;WJ7T.<lpAn%F&2[d^r}er#D* m 2@R-t29]:DJ ܆kpQ^~1]fUSJ4dtk(܆MIJ;`3~X nsY6-n|ҩ> d☞WtZ[8虻9U" CH:CkdC>5^of9xf^@o|C~I22O5DZ)p,7Ϭ3>J*$Y-dxCNm#"Q|6?6jisAY^QQt{9hE= /PrƧ^RMn"AIiz$dN+U1{-%-M[z5|$7kf(H!߽5 qt=[{2]tK7"m3zQXH]{MzT .43#!P(TJM |YsH5,%N߮:6eӱv&XGöj>pzdx_qLRL8ʤE {txr%ltƈBa"ֆ׍Tši8JT*C\sfc/ZiH֦5cK vͽXlqfiWAu,y8a7Ueb[;!za-n2inxU Ŷ 量pEٟg;:o{dO5Qbg<PSȕ_B_n){g1a_ם^ONw}~^< `<КZ ɥlKb96q92}'LA/`a[& (V$awx[u!q}-(ÿOEm߹EYZvqhaֆ[lt7bʳ|sw?0 endstream endobj 388 0 obj << /Filter /FlateDecode /Length 426 >> stream x^]n0@Makɛ՜zuuo endstream endobj 389 0 obj << /Filter /FlateDecode /Length 549 >> stream x^O0| 8'!A.KTC9߱_C6R$~aƛfNyᓠwUg*/v{^RʮV#Z"ݨ:jyNL]!:[~y>/7/$yOXm^boVLzD?,t'[kȿufΖ" $eyZߘ+=q=VhsjuZ}|$6WP7)u>asYI&F2S[FnkrRdm*y}GKm/]J4%$Ӈ{[+&4^st>CHĴ",xihD8 @HB3A4 A(MAS 4Š4 >#3># Apu1\G=Pb0^:6h)-A}aI Р!9brΤ509g2\vXL. k&Aٳ>9AeLfwM졥l T7VhZf,lR˾nl.DI endstream endobj 393 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7635 >> stream x^Z tUN-.X6 }_ZZJ7/M6eO-M4MڦKJ"̨80_|А}}~I83֮\rs#eFnLH!=,!60,cK^Ofxf?gǗ@Ϙ4ˣ랧<^^}qfL|zM/w<0A ZnB^C{wa#+~o>g$|d栯q֦Y{?N8=fgOv\)?I 344N 1rsK2e7q޲KGecq8ǼhרQtkL3>"sūqZpNqܙSk‹-H/*LE[v[pd<-Kqkbqűl uKpnn83 0$ocDhvCmZg_[F>)t]y:V!P|O@ydiLN7-\׭a[F^hHK;6ZPWNAwW<&pvuT >q.[ӶE'a9Kʂ4d1- q(NI(5(K16Ri jU6m;6 &jkXq< lzS;\~"#'׹_U7#Z*C/|l܈h|C =0<5D!^zN૶0LF,~W+B}-UpeX!,ԽPX GKreN FQ(O&S}n뎽Y܋'wB{TW>d]d5drBwwWWRӌ]u=4t1Yx2Ľ|0$7b ksZi4+[f8 #^s`8h2Rj ~k,孍;2ګCo>'G6!1X#(lȗKqɲ Ê1ywwΰ W|WIL)dr| FĝVM#W_g5J!yBYɣHi(+_jV&SC(2^s$)mrtIjB4:vPWa@ٳs2Y.miaUv->WyAZm2Oݡ"Ԃ; 12 `(/) 'Ѡr>SCR"gT&˄t]Zm wT6-QDC1CDvdJY&֮MHE$7 I^yry S_nsm:ϡt8Gk@ vp{(NO$XWu$ti`ͳ-_U4%lE8r Q8HZX\ vC*nN}jBN#8@dI%qTL;=Cw` n#U(^cJ(Uk1yu<3~]|5nBr~~I'd|O2JUYF3 1&%TRS|${Ɋ27.fbV1*WƷiu@X^9Z[[r'"R kla*Y}QiW)?/\Nd&H+]q--b HaUC.R|:J'+^n~uFQeaes%xx*R"Q kَ#7\U7o~wĝ'z iETi:4~/fi̾"!ˑݘfeUM`Sh`ۦFJʡ Nu5R6(J4&hr~B_(Mkw } ,Ejƨm7\)(QHz1U˷à"c n|ʲ:%Q qLIQ&|(edcp e.f?;MߟBʊV%Sʎ(&¥Mj5CKP7t+[ EsܼWzL6\r/ ٚX*R2?_/B[ t.''I ѠRUmne D2t)!9jKQvfO $ա\Ozc"&}#ai& l=+bQ^vza )#Rp|;r2 _AfZڎ45i)sQ8=SYkG޳={jFG\WVEВM{۾ꪭnзJ~nV#iЮٹo'1}16-bSb`kȃ<U]ml0W7P6 Bb ibDx҃] JfіSc#4 f!j^[b9J+Rg\%Pu[4Cc^e.U_T}& +KӄlMO(LyP@ NaIƇ څXhvk_hHB]NΗ"iz~DDdsMo%Q6w߻u~(voă4/tdvm( f0hK+*5(L›w>?AV6@&:?WaCLȵRK3L H8< tŠ yQ 8u" tV6ZkJW;mN8S_|ܻ؉5֮se[\Pb:4_rЊkAdDpD Ȃ4cfaGwqQuJJA;tzm>K HkմgQŠlq$f߁7]alJf`Wdnvz*( 0O'hEMRJA'$fJBTjjlh @/HmRRoĆȀh=TQ!Kmho2}qe4S. 肩< Cu ttڂZ4/.)!kEGqE:ujIkQnbV7o.o(E+r qճUe2*]fA4]^A>d&> ~,W谨 >U·*EI@ t`d'/V U}voxB#O[Cٗ/IIS4qR?CLE\H쭡f2kT,a!̍ !RW)+j2!"3Wu~ٯN(cթħ\я;OQd2؟A([n4wfL mٛ6>r_ݑ1XU,Bj%A,>6T:tuz'=My;?~7d:+bt ?@;uˍZ C` Tt,fyTѴjL CVQǀLyLϩ6z6q .Em' Lގ-^2M]l|̶U5?dv>y~Ȗ zϫՑ#2QYF].H KrK;*˘DoZ^~/h`C>jѷh-*QI~d<|m\ 5%h&DgDgF?΅x_gβ&C+ؠd(g>!QOL.C~c12z7~ʆGqi1թTzG5ֹ/c>Դ{)#OH JCqTL}RzۧA&Yt!{Pj0 T>]k'MhZQCh1D H_ ںUxwuxؚ,LGNZ3y*@l]>2-)a05?)qj<{\} $IRu'aڡʙ%e`-Siqt"-w Mjn6-NJʷņu9E(oy/2dRZxRiX鉃{,DQ{t]yTג[:09Tc@5t$ZXU'7v<;tbtxJO/ b1޷ߘEϑ Z*=}YvɂǹYpO777 D2>*pU!# %8?YMvo]c=HY/@),gT'bWbx}pd=(DJ~n}s̼ ?Oay}uqRf,4/Gbʌ$:sˏH"2> stream x^Sێ0}WK+5ڪaVn*in_ ;k}'jomΜ9c]6%7 5c׏q%c|M+nwx8a`MQ(4EeЌ6a10 4_0;Reu]já5/[he<(㊕ FbƎc$2,;DbQ; gFUodvo[dIsop8Xכ]c9G]oc%a=lail ?mv,ʶbLWO+=]!h-`6 )!!j{}gɄT:w"iNVaFD Yo<0T(V4VQIsK9,3/MU6RZ ZYkrz [jKhS>K=nܜi8lRHu6~6?]Xs{]܋\ P endstream endobj 395 0 obj << /Filter /FlateDecode /Length 657 >> stream x^͊PF>EBE:&VDwp1N+lcru&$q!Ob\t##4xRաޙ'Q;Gʯe叨t<^ߴNtrЮ㽮ܮ&\5qvM뢅>QbP;|5RβQƎg:ӓ&BJs3y$b7:neOI"$ $yF[U֜C.&K}/]Lgp-L۠l4MbߢnǹV6'L}4k牮(edΏ)f4V$:ʎ}t͏zZ̈́6@ RBPB4R6*G &(L0AaB LP`W41hZ`" LH 5 z !5+BjC3DN9CdYB`X!Lg=Bz0B#, e -@08A%,KY 08AV'X6buB؈ aF,RH!l"Q#en i쿿~j%\jRsA,FIs:QIn^ۻƝ:ON[z9ڍ endstream endobj 399 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8892 >> stream x^z xS4[)Q2 Ȍ̳@KKJG:m:IItܦ<ҖDP*E.rW +=_OM>{5]km7`'V-\~zMC]8zy9M\olk YQab'̊7}c؀NE`8kq)p5<ܝu֣-ǔp yu[ڛ_ocHRW@ǯ%x{Ig9N n(<"7{͍r㸗+n"7̽MrorӸ[ n&[Ƚý-sK2n9[ɭVsk:=n=gm6r͜=s9. 䂸`Ni܇M;ph%Xk)颙٢Os"Gny~Y&Oq4Sc4FPI&7,xj  96q|byMM~W '>3Q ]].%bmmշHnL{KLI9!P79l2U0ސd3G.K(}Gdl2'5~$%㩂*zdS2u:#u|bBObʘ({82Kkث ?"Ҿw$Z)ʡ6Z՜~CEńol6XK;ĹO@3t:!IDtwoEkVHd^Z+QO?{)BӨﲟp6i6{%ɩ{dz8:e+?QB6K}Q^1Myt#z7blB%1*NMS7HwH8G{z 6 8@MD2ɞDl(je߈s y.j?)tȂLH/~˨\*s`!+7=lXd9GJOU8d`یgքeKy)m˅J ?DyTwz imСlq/ LݜFd}(\{(bpٲg*!0Qa '{6f;.zܐ7'JdžcV-yv8g{T!q& W`>"5dEu=AnmE[>* P59 ث=~ "ffʩ'*9C\JV\NKL:\^ng1)fs:>8Xϼ̬` VٷiԕIHN5y`lCJ 0r#cyM~MH ˳:|wl1x2&yed(V5vV+EUҽWUl1TNܺMQɢ #k-`]!]=]r@[.?Yqpj3rjt{/mZ2wڶO Ҽ`Vn RSR1 vZ뺊0u߰4F}^BEe')._g\bv=+cxrp`=F'1r}욉N2`3 춏Y jA]}H6pQ X\:=QAUڹT9|R~\v?m;2}ҙiݰ],7h;Iǖ X̉/WTz6A*Kiz*J\`"g V@cF^69{ec~#ؚ=<ulu"@蜙slqzO>B!E;<ڃaYv~V!Xt `~|2UO71 lNW/A4k,wU)gY 4mv&sTQaq#B;>me߭9a 擞ƊpF>- 75Ohaڰn^PB?&o oݖ]*NOL٤Gn dw4%nup2hKGpͮF4c>.݇6VjĆK`AG=/Iui#F.Z@@4Q"Uf(U2+=/)"*kћrE`ci \;SG]1󀰍lfZQ)O;\lVJSӌ 2Tx+x Zz[ukǼ䮬uӤ10_7>1Aa+ us&ЩCwg||rp*(1w kaz-,"kտ%eɵ.bFٳcKBlǛKVۯx؆Km 9hOU%umnMR$ H/]rv5[RJO?p"Rh%ȃ~+qfv!J"xN d^VP_yD 2s־q|w)sp&k t*]zHO,5Zg Ζ񥚴 c%L Yמ @WH"s$4\ɆJ tgdMipDҀVJǣVtC@.` md^>xXeE]׺~bq/ _*U6u ޾WTjC12]1jRM1~>eڤk * H "tf;XW$C hKǘ$0*`*˨.>Po#ݲl/Lm-x7+-PbSNʷWv"L [QeAeA{}^%sȔPxئ wx@mUվe;2ـl"9۫q{2>İ 9WORMYU3n"j+}ȾvQi%uI+ŃʻDNH%$]⅒4#jC3x_P5BF@fW$'ufo`|Syh#i.[|.G g /„SLh_ \a z1h$Pׇ5}|弽;HU՗ ]`%n5Zw8w|F}l9OJ)aݎ#8̂YS6(F5_Tz:OJ-or}]2Ds-^#U'9Ӣ=2;SckU0 ;qf;>AWڨ'~Ht8i/ ø"L(gaZr/m.5z(_+J1-&o=uwF]i[Ɋ`6熤6OcDSz=#2*HMv#Z$PQ,n+,;߁ - }yh}69*KPV͑SquH,^v.+h6Dx#m64}`}yhMU|Y[E9.) W2\e[e2 PR.xl $B':֩vH6x²J`FJ; ˡ<n+L%WP_Pk/>iS"q^;`g=Ԑn$]oWNҒ[DyK`/]T7A(K)&?~̷V^OWFVݽcRy=bgG:V0$ghm۳xzδoWJYY~@T5M7˰^*}Aq.gªlM/JuV,UF洺%;3^jwޅ)L"Rm6_}2U-ì;g$@qRrL0 -Q0A`ڦ=tID߯=,W[.y7u'A@LƯv[Wr*:xE4j # 0tehU k+)+Qە=ts _-*A㮡>|"ڸ# ԧ6gf&HA*_]ogHuQsбVg`L%^,} 7خruJx̲}P e<]>j~-KICN+.V[0jA|?WU5>#Iȗ*4(`H =AdRgpZAgB!0lZWIcnLtC+t]pISV`?IozWZl [n eEd.))]kЦ>oh.j(PgPڜJLXqMXyǒ٫x|ltx 7/#LGF{>ɡ)/'Ũ?GN]}Wi^!Xv-srXXpࢭt,n~p?1bZތ RbUL8)i;s^R+G'5BhϹ> NB\>pP2o)}ْv@u@a46+ohݏzew cm'&1bC<4%-eA/˽ &SABYR*m}vg:?u$56tն睰d?+ 7"TBw}GXbXϽ崠6crЯZL56X2/ $>˻Fe) T<id.^d0o{beO;b{ŏ˯fGAC@+rX WVgUnX&`55] }q-l;WܨS뎓__h$;:J!jL4p^T$36.F dU?:½FLz4|:3*kпk{&* s +B;o:b,12%ь w'l kC:r:ӪoԑVs7AZ1$ɕ|[p]{ Q/1t~o':ME#1ڦ٦o -lNoF/"&T|mU@_"OzݍG/UJ ?Ii?`۲_8K_L !bMܯ ۿPhYw9^.WvizZ`샩`RdsBmF0Or $%Q:M?#Dc`{,oy56Vyvtk ' kU+|[i]fGyꖉ7\*S[MB݆<꫇xș]ѢT/g֗gQkj}uefͬgb )="#}j+d9.5 :">811"zك}!RCY@t=H'cEߊ-`ci<0*|ɦx^"VNR1%LQL79 ̼*6嵺ZY] h1<I:l}Z)M;+L59 6eo3Tb3~_|Uhux؍mLݺc$WbHeoz`R 5JX(RoEF;hhtE@o)a" Óa'DCj#@R+} V?v2UWc){ax}!Q ޿&},+1ߛ'W=ssuV.?i9omi= =m- endstream endobj 400 0 obj << /Filter /FlateDecode /Length 509 >> stream x^S]o0}ϯb/Bթ n:% _Cl&ݢnrLڂ[`I=hj=ϜYq)ەn#LZ͋%6xSF"@Ouض4L(7 LV*ev49#Lx<vݡB Kyư’ S2E+WDB="gZ`w^Y]n> stream x^Oo0| P=NBHI'UavL"Ap@ڇkaU5J}7_^4m݇6թl0{77*;lٮm~yRumnŲ,; ^˨(C:vcMk~ovwڧu6EO5\a*9غ)I0 FRJ7oۢk/I.=Qy+PM>7=,mTjK;s[N~#קqo]RϚm(҃;(?ms>^g3ѾxfNuÉ?uIkah&BS#iA҂LJB!iRD24$ H#Ґ@:bjSi*d%f,1f0K,Ybf13 d 1 d 1aY > } uBi3O†:B;@;@;@;@;@;@;@;@! BW,!YB\:d qu%!KȯNC:> uB uB uB9}BAAAAAAA o~$RwظG@\^ #<B./>cDb&r9%7ᜉ]C%F$99kڟgg{#'-K{詻a5~UvkuԗAQ:VNL='6vMv endstream endobj 344 0 obj << /First 919 /N 100 /Type /ObjStm /Filter /FlateDecode /Length 5457 >> stream x^՜[6S딺y'Jʱӱ7v&3vfMܢۚQKZ]{j?E)T-s4 I ~ K~ -xN r~ˠ> a, 0WaEeě8U> *b: 08 NBUA&x9%YeINa_Q@%9ՙ:H/ga*4(<UꙶYH5_YQYR1=dcAVjbdC枔!zSy&|QfA}RAtVAEEP3T8(؆aP&aPeȐwP晶Ee}~Li+`!sFby_ZZ~4._7<`8*û:VFmSXu`]fKLÙat0O2֗E^3vy:X489,Wb1ˑ+2]"5{:2R]WO ]Be( ~J;6zc fF];'>vQZ ų+.pcC*ꊆ<>9=Be&&e? jS7DC5Pz&UEyHUxymuH5.vWٱK fiOCqAtւ KpgHՈ= +>vU; !k&w0Z1zIU>ChSv!C6ܣ%"gFQK~7~T|P! }`Qd΍J`]iqx_1)6ݫU<'t˼0ycΎ/-r̤L N0!g"K+c9ͻ\NmqXqu)q5ENs5M:T޵`ZgWjbrM0jMzv߫B}Ks">w;<>:xyOG=/ 0(|zr:]%쫯@`X@A(E\릈kq:2~BD΁Wߍ.m/֣ZHj=#"*PvB-,hgqTlz U=XntL|,5y)JS)]c{̵flB^( %Mhdeƞ.ms1yvjK?Zg6q6Sq!8,ň]Xjx6|۳k~7Wѿivx1s&U )XL~[^&6Ԯ:+ ClB~:zvjOBjJ[P&u@Ǒo8w8V[yPQVsP""WY#_y=$?@}So/%fTkUZõTnTD\F!Pf\ϸ;TS5^n+T`A(aǔU;ɳ'M7j: / vϵ\-4B_>qt(=@^Z{X YکCyi˩=;p殪~Woj7087+}A+{ zJXgD8}Wl'+$M^Q$rTG؈9z=pԱj[r5-KyX=h[Svj5䙯M LQ{(o["#zCb*R)1iX /֎QcbDN[P:JIYV3/}ɷ%&җrl&4#"HЬuI9>;V$ZIAYIYIskM4F(vHױScr&B[ԋ,lxmY,YPb5J4Tvq CraVfB) f#)i܌QVOv| HuL5dXl(^2!ks}zޣK =R=xL>ۺ0 –)%Vw!±+S>Wh=vj# IWq,gXv$ZK9X4"(2u I fu`)X1guK/;/Nv2V[=3+>,Z`1_V(⹷䜗DHM騑غrn鉷ջ|o\Zm^W|^lփwK fR-~9;D}z>TlXTn*tx/5ël02tmtT&;i4i^^[Lhjvb9?[jk+D|ԦF)J5[`ƌ94[e5Χe}Q$$ 1,6ˋj4xojb9ZߪarF]L<&[z2[/y)m;Z༼Bו=[r|Y .Q Ү&p+lt2? b:(2%@kH/^5[žwےe276b5?ߨb^ WCFj4^* h{CQs^"K)5Sy:Zdlok0W o};˕ ^ԿЅ~1g ~V69F#y4%P6Mm\>".C@ە-kX1-}MP{.eI~-@ L"mlfPg7rm4tnZIg6T։ #̵qA<\/tpesItV[\MGE3\UONGu/X붎>l6 7-HF*Z<o ~^[4!h{g윜n3>xPFfn ~d7Ti( -N⹃1jD|RkS"~NЌvr+C]?oOgB{kj]ۜv;i̳ º7p~_3@\9tC*R3l7]!(}Cݙo"֌bn:kįJ957$|jN^Nn!=؀j!G?e$D~o$U"QbIC(m|c %j}n y[ ж&*!ml;:|_䥑V쵷γ]s7禕hom5\j8t._{*Am.m_ζ:O9B:sRIĹVu~Z]:oWr s{'8ENHGu35̒=| 8/_18t:;_#˜qZxv<|o!"8w aa\2T>Ou#_=^,Gh\jz9cyW~dhѳՄ+ C0KŷbL;u0ƍ$ruw+_=s_d b\BK;LD:2{oeJE Ycsr#T| S.!C߷_Kr}bibt9 v?hݾS_P}nфN$ MK ^nF >2P%lnv2[yz K7 7%Y,~z.ES2*v.. endstream endobj 415 0 obj << /ID [ ] /Info 414 0 R /Root 413 0 R /Size 416 /Type /XRef /W [ 1 3 1 ] /Filter /FlateDecode /Length 1018 >> stream x^ S{GʤmF$!ICgLi*a$I5%!R2ʐ]Y˚J}*Yqgy>y{_J+m `?rRۉ{GPՃ>j@.4TҴ+-=)̏{; zq UX4U_-Gs{@3h-%=5m`oȃ}Rp .Ǘj hbT~~);:A৛"cZW8!=; 8RKxTPņb<J{ƴD(UW-'QP @_8)M F__ijX +S(ZN^)0 LPZ6 fRv J|h aΆpMryPe<0.p!ձER%@`%>c)%5lo`#| ({Ix~:.a-H[ƌJ6F`+ w "qbQ#5**G̳Gy$<y "{AcE4g3E"Ly> stream xڔK,K(vͳno g@dV~bq@ [!3wKȊ9?_翎?J{-7R+S>^Srg5OtJhǨ'_|IX46=7;{S ;WXEvߪwx٪o?QJUdV;vn-lo.{ߩJ8S:Q4r嗩F:߂KsgVT"doϽ~sକ^] T5`Dɼ>uey4~z|+Wnx]sT"2ήw?Y9g3yw2Yt LsG:{gW]g:wsVS+,*5N\'_|K<\/._ߩx[xbXʞ1>\K9 FOd*9IzAv88|o {8E'N*rXǏ5¾oAxܵqbqy!f돁Ŀ.vpÁgnqo _#`XUv!\VKELlq,ۇXqV#|*GG!⪳!z__:]x/]W5kq юUz:Wz!-Ą{_o< uqn %#8f|X ;5o񷧋d*>1+ vttWR~;ŽZ2V]gYf$CUggamq"t~9":ZB?-ʀi}xDK//x&[M?-3UzR| < q'WYqc -}b'UпHҋNĝΛO>rbtqM=qffq+p2̇8LUe x?-4{"Hw`U4#(yQ{cmሙm[(2VMc!olqo <"`U4<6!{c?ߚJL xsbpq .žŴu Sy"تL,׀>R:'nةHs0lW?Gb818bL.4~P"`U3X i7&'~ahAUe9~[qzVMcܒ v6sd*ư%QpXXkfY .^pӒ )3 lD矬BGeyN.| 8c;,!*w2v`Hze+ϑgλ=67oDZ 3’ l:NY(Hw&9;m:W]o6 yڶB=,GNUg[ckD{oRzDKܱ/A+M؃[<|Q-7YXZ2v*o~M 3Է\.;ʢR>|/DEgwU* aB H!'vḯNĝλ0:q? #d!PY!V>XzVD `tt9v\OiM0 )V\*`U <}-|,D\evuėd][WBl>eEJXzv8[8m;?~+tX[t"t^ςDX+XZ6bg]ΎsHo;W!uwff ޞW #DfY/xْՉzO<]u^Q{oLwmAՉzC75F>"_bBu":W×;oᑉb"t6u <&{;iz|v!Wb ʶO9ݰY _oLWhjRyuME3X ORV| fLcHx؉Uc 2vM)*Dŷb|+6WVW""VM[JJGV[XyΪI.L v%>1.UUdعY-u JÿzEcSiqX;W?"V0]UNv 㕛&Eߊy?`0Qʼ r#\Uf 06sk^^]z[+WJFNlhVS:,9-oDZC=[$Wu":(fVzz[{é5^Vg:W]oxK[a) LUeŽ3qº25I-̫bţ:|p`1> 1V|:)D\e^}~.^kF1 &b|+3[=XE6m]hZ.okag 0q4?sew&[KVEu>ߛή̪( p`S!]҂-;d1CquƓStxg ;gX1d U%*dGm<7s Nˢ5VPt"t^ nyG@K::W]o`'Y /6b*щ+, `3 {:qnU"TDBӳEt":oNM$'aǧf5C5o`_Rʼa2NջS76=bcK}~JU'hʋ/96 :Xs'voG‹{q6VWϳZU".2uhg˽ʽreՉz٣Ž7< ;NU?&7܋u~+3OVVt"t(q>yF|̵ӪsWXIHstD=r S FHhdJM06asQ<:Cbj˽5:>XUvYt {8[;Ñ{Pt":xX~;o, ;Mo cޛp-1 ~qՉu!^t bW>Q16̿ gg щyV )04'|2$^g!}&q*55l'!-JVTy TFmEt"t6!̦ޛp-B;ή7CEk_܍ZAEfXa=-{Zzc֦qՉ7mlq7O|SST~+/p_;w~ކM.乖>VagBrG'N[^{|n[6^lw'vu NUg6 ZO=,dߕ":p=D\u6ʯބ;o6dD=\u H"{ +˹r=~_u򁥼u(щy6,Yi%XLKqs̼2]v-e|eqce^Vή7vXMm^v{Ch~>8rKvT;S<ģԺ'gƷ9~+x"MXg}DճrLY@-I803G'⪳cF={g!>OJEf;\ h?ƤWzXHfÛp Od[oW]olY1j9Žbf!:W5r,AI2Ūkx[9;b_;WhfX 0l!/s/°҉yu"XZ "kߎ̛_Z]t":gKmq-C4Tή7KaCqM@cŽn":5Oo{o0BU%nXGj -~c_[HȫnXrU}V3·`2q7h؉Ve G V;̬ۜӥ;UMK SYZT-u<15"`45xae7֫ZQH9@`E- Ol ǟFf$:Wž'U[9bDɳ2+`.=~Quy˺w}|o _;wM_Dޝ!}Ԝ^8`\]5(!:w:{x×{oӯc6ή7|%=-d+":pˈŽ7rMD\uvqu_o{o?ֆmU'We<;"Mu4o`+g4ï:w:.fhMc-*z<~<3W'N]eR;pc>byO*B gVk^]]:W]oE|x[{V6HW]oZ,rQ;o:T6V'MHqwXg=D\uv%6j]!7!0NvqK/oYmgLʻ {졐=9pm!ER#t2?ȥq/8,اdNk`E:CV~;^qV{TgץqְDo{oRg`D\uvsz˽oD\uv]rZw^W"t6&-}"txwB.2i/&4B96ʙz蜥K'NF5H'MuRKL;k~]j᫳<%,~;fۣ3ήmqL[\:W]oGQxo;o| G"x߄{oKisΦqkOk_1z Ȅ 4'~Z@$2 Ϋ׼JĻ򇈚p`s!/io؈&{?2v*J9XW.dMU sIceW$NdUpujهƦ'|*D/uv#t_<Vs D"q Ωvo>Y-PӼ":w:Sm D}9 @<:~+g SXt"t^Eu:kYdپU]f ϴ·ȰnD%"k !(i}8[[CҢn*`Uu]6z8[;c|YNUglf"+ޛp筰['|U!{^.J%Kӷ܇[ObqK/\:ޫ6$#Yg_^W~+D 9sD*6'6v/הlhfiX2o99kD\u6q ZRD<wpD\uvY~kaqZyFt":J:y-G<,U1sXD\uv5Ƴaq kkNœeh:#D lo'dg8\T"2Z0|p<&c ,_x !3},s\/셔h2_Pv[PED\uvq*V1E!⪳-,.Oo{oONՉzΞaq?̫%CNU'a]O9M _Up-̊,gW%NUQ LvΎ9[pvu;WKcKmJ5\aj¾[1OAG,ѭ*W]gv2[kNZLx7wm3EVvW~+GH 2uNĝΫ/G\6#`s-kwq6 9q*|6iD=Z|Gmݦ,0)uY=t"t6D٪=ޛMU&댭9Z{8[;+l\fGՉz'gaqﭱPaՉ4 !\5V0-/qV~+;(щyu]BN,lG3l+y4:w: x6njdP>؃7WR~;65BqƞԟYΰaL̮1|Ov~B/xïVʮ3^J =-HVBt"t&GHhHz-Ǧf9[0Zc\?ݚ>S'QɁz`3 wugg4 nD'NʰG #VەwvWbעvY2VMcXQl{m! SGk"c m;W܈.o Ne{Y?+g˽16?H l4 lgXãJlN%2Vb4ǒŕl $VNF3Չyob"2rXy P| fb%m y;eo%odKV|+FNDrXElq=[az}j +8{}\-Ȧ-v>{W_LeƦ'<39. v*o)\3!"VM[q6<` 7 'q &Vr>zoae\&NĝΫ#fCJjcz+m^T^W:#ދDxWƺq@P~;Z «%j3&xKjqh>K{J/;wW*K[7gkE/9d 4U-;Wްe`*wp\lYeꓔߎ2҉zN骰<,qKrK'Ngޛpe_fJщze凷Ž_[Ug[iu}[{Æ`;'NU'1xy,ە|V,~+G|;WlgxXriuvS7l4/NU]oiγf{\K;NDCl7gSEՉzv}x;_av9/ʮa/κKW]o~9.kStI6,Fyl$rpDe/s$"rϒ Sy7C'UJfhg}plL=҉y7b+8]]`,~;`cRoY:W]o΄y}x[{k iNUg}̺|f^!⪳ i8x{[{csLΦvXֶAo5 `fLՉ$ V^3K=(DxL!0Oѥqma6zʳ56xVV>`y|DvrD8_ߣY/XwӳD\uv!O|"/o;oֺq My䇷ή7vV"yY+ :W]oKŽ7DYCU'nv=.8 *l(/Bc('c;wve ;!%V _D5vh=wkp^9gi?>(ՉzY?'87sSGT"28Yȟ=jaqo-()Cu":2˝iv{oݹVߩjbkګ+_b,q X G0.1V\;c[0٣GT"d^m@4uذJMyS/3V6nU:W[E,Jf4 q2/qAv^{o ;_":*}w;3IU".2c{ZiT掘fj6lεqFyHՉzpad!'9v$͑ŋߎsaǖ-Չ1lwfNj\fv,~;* ۘD\uvƢn8_mrv9Le*,<#Ž3+Laή;Kg:O6;E<.d۰`߬VN ;NĝΦ7E8!V{,`,<#Ӭ̮1DlqoVb7/HNUg[an Ag{g)".2aȜY눀y5> Hl rnDUbRcUݷe^6@ph =w:w:Ǿ3voiVwcߎcˀ;칻t":ް<~>-rCUg/6({[{cϚή'Ot=̮3lFC:cxg 3p>3 #ug <Բ5hOkP8Y\YEՉ w H{x'گOAʖloyolc&:WWAm f)P\8o[(]WQFUeL3hz9_/ *Ո*P*q *W]_ kL.8_r}T4"*)e uDB|&:OuV~++Dv~V;w,D&YX9uD3V"V^X΄=i9Nĝλ[ lo9aT@"Jo8˟D'⪳뭳mqm`Mw|X:CWr|ysDlzxo½7.6-3KM̄5-'/h&VRͺ%`gy]\6<8Y f|Ź[u*dTE5;b}sc_9 kZtoDZx) NUgXjݫQ{o!_g[щz+拇Hzx[{4&yW]ox5Ok_/G̮1Ҥ0eB **)nOI˧8vrS|+n%5^_̻GɃhxSG8g`6G'jGc{1cgnE8 )OY̏NUg[1jƔ }":*~ȷxX{ʋcW]o,Adbaaq ^?!wIdw3!s_7Km@=+^a;W)vnUxfp.o\-CK'Nՙ7步JQM"oq@BS :W]o؍\Pևŝ7$6X֮=Dlzˉ+bzX{[tH􇷈ή7w XwB:}m{lp/vc vaOVz1i6UD鼻lMcXTD?>w*P7ljZSgj ވV<~\[ʛqYmDQ{oߡRgiD\uv >-(q:a/ް?ʜOWxjɫs>O=)~{ ;Bbچ|eT^UUT9x,uᧇ I/"a3[QǏDUͧ@| p8 5>m}Ov[,ߩJly8_첕' afϴ ޒM^9ʬv4XSTh ;OWY4~*Cſy&{9kziNU" AsG"c=g( m^~+oWXj[߅NĝΫ(4=nA'Dʌqք^bqyĒfgE58̶d쫠v䲎^:W]o8i&?ʜٗ?{UшRu'jFxZ;rkHU'⪳Y -Х;c}//燃Ld\l#ˡU n7_~+ ӂh_ߩxcCc%x_'"ٖa*f5K&NgǍfNȎ@6yR| vnG%`'g{:|1y/uolMD")97s;[`ٴdwE\/x-R4`olf5m/V$6V{[{L:W]o yx[yB~bq*CĝN쬰PX^`rQ^yPqi9XIWe^?Sn߂ˑGt؉ $^ǟ:vy Kq[2V]gCHg{g4!⪳뭰1+0/ްMt":޸}\mqsb1ӋLUeFθr`":anGTzy4[-5]{ʉf; FUU{0kkx%g1V<;߂9O RT"d^]ؽnl=.K ,-wfXE6mKV[}NĞboΔ`g*ꩈXE6m?a_gkag ("VM[~`m-la%DLUefHB ,aX%`U cu"#^x(?{)pW"VޱQ`E=dD'N]cwp"em1pI-|$X}Dɼ}>Y|qq+}ըNUgz^{g2wq5fۭw6x'=,D\uv}#YV=,u S{?;[Pt˧ ,Vߥ D⳿ g}[F0{)0OJE]6l-q2E\u4FSsl OmwƄ;c8ҋLUeKⱱ1j`qo,[ʦb g>Ž1@΋"`U4Vz眇Kg˽16Bz$LU%Lq fsuXA[v}.;W>knfΧeXh=$[lpk9߈Jĝ̫t6;8ޘSh7oG0|[nTN"`'k wul%b4qu7"mXX9+2#/W]g8Wla19 *fԝ3k-|~fBva?֋Vȫ& /͝6_ΞU=vMuU$"jmv:Չ bk[qf?QfkT%<&"3^|azY!ܫNUb첾>-*Ǔ-PÜ cKzt,iةxůuYx]oceʗjLʫ,n؜cV+RV~;Vkd*8빧\wXwr0ةFEնj`qooNUcV>,6{[A_EXUީqD O0e׫1=z[0~j/"`'F;[);a=,?ދ_ew{;wsLK.|Jpzr:~[0c[@K$Nd9j+!O ND"piſW_,?]^b4yK ;S;7 5-~3Lэ\oX|9dT^b){?u-8}6o9DfةRf vH /^Jo~魔 ;KʿɿtH^#uԹA_ˊgD")񻉕xS ;W8`)"ph-6šx<>Hly>T!Wȗ(w(?k[VΎ~:6K:w: Xً%; D=y哕lo圸2~X^q<(seƒJH]4.ؘ)dVή76?˝7Y7j"t65K~`%-D\dv%:W _1)XRK W]ol*mٲEu":qIsF BĜɢPD YSgHmiD\U޵b-um?B8ߊO=93iD\e/+]Ӧ [qE;o.ߩJyB ć=-<=ŽT%9|XU\'-=Uit۪rhGo僽#63=Nĝλ~wP׫.}6v #s)-VK'N]+Vg;8 V>B鴝DlzjxxAr^[Ugsȳ׾xX{c<-Ю:W]oYްCq䇇NPd/tu+s@ ω}_̫"aD= pl~gƙQS[)ǔ DlZW*v`~GxM4<[{;]v8#7dGHUdӖ5=>xv:< lZvԙ ǫX4vP@||عG>Z/`  "v_`aaQ*^yOvY4&NĝΫ.W }d!l79 #v[Yp:>ÏNĝΫyM [y=8!S.;Mo)լ@=,ᜁ'9 E'⪳-sŽ7fs*;}>8Aщy9'݊ncTx~9Xe!v^(yzήd}LN;7Ž7D34Tήb0:W_iaT̮1&+]Ig{kԚZO W]oE)W98+GRNh(\qfuɫn?Vxq%oxi^4g-ӏ+_[J09O$,>4{U؞ܑ7b `{r`𭘏^?4HUd]Ol\e5v߽~Ud+͓5pvb]Ħ)ބ{oiv--F̲Hgő;s)Dk?PkH9+n9eJt"t]M#P9^>Rznʋߎ[i~Qu":ސwS(;ozT'⪳X+=޶̭z c)gzi{k6&Flxlqsw_k{x|i.A^g[`%Ʌ<}u"t^d)wGI#%晄3+eNĝΫRKVb6o.&ߎcKC~2:W]olL5S{oűhW]o0Naq5?NUgכOŽ7w ~wV:WMo9vοJ񥊰e( z4wfLѨ+#`yU,vOOb5U-B8PlZs80O7JU]bX3yߌ`lyߊ/ҙ?_>"VM[9ZjtԸD":Ӵ|<ޭ-1 lib\a]"2#lSů,η NƢVܡ]}D:caA8CS9H*V+;bb˥qQyU85iT 3#dgiqv1nx"t6!!NóK-`}+g]c"٭wV.3ԋNU'Gs En† =TYV^؟v?*Sn9Lm_MGrWK'NՎ+gk(VXZqu:sDvKťo[2Ұ]|+fM10OG%*󪀊!N[9[h*W\;wovyJ/Ւ>p-Xv|H-,\:W]ow-㴀zXycgCv-NĝΦim Ysxz"9,<|RT,g{xz+Ŏz}U5GNU?%f |ؐ}8ٱuiNU]bӸ?I8&&-~+O#uy5Jt"t|x6,9l2}W?[yoO[t"t6%~;xc޼̮1>wԇŽ5<uvщz|얠>":a؋?Ρ0l~NNo] +;{&`*LM6&Vŷv.{D\e^#YXÖg݆*{;_shDܩl(^>Wp r8IOl/$*ދ9fOqD2>0=_eI:8~;}ioswbD\ueԱ46r5z.6' #0щz)͛hβ "ko_ƾa1O8WT".2wy":aF_c`{Z 9freq˽3B@$kW]o=QŽ5͙*`Uu1T绶wf}{x[}ώ5 Y|pP2cu Sy5F|8l18Vu&d*o>A&Y,_'oY8}LUe0l^*N_9XU6!]Lb|:??%`txɳ{/ma  S8ʧm<5Fo2|NĝλKm),59g1倷[9gi#"`nZvյ)=ʻ5L/VglUی6HG`Hk^F&,[ [K%N8ʄ= 3$[eF&K'NAH$RfzGH,~;TŃ\щzï v*qMNg~``3`V"7),;wU6U  _igUvWމP~+g3%`jgS? [M$QY7+VRZN^0?Bsh;yC_$sҊߩ(bM^|8ZYñb8 SSyyO ;OVK4~*_mC󸎹MjNU"=;]Pl[c^U[:w:Y;5g7R~+×{oHPJ|= ӊm_2܅fW$*j{B O&V۵L|&˕y)"e|pzDVa`8Ȧ'=eEŷf,%T%*7bqnh;gxf=U:^ rꌝp SE%Nf!< {"/vάO-*h=vl~.~+O[<7Nĝλ1aiiL]SfvVu?m>:w:Frc^ho`|"}:}dT6%>jcYb9dU'⪳ ;$P?b4oՉzC̥"{Ž7ݯq֑I*uwz?Wxgvayz*|+H(dӾ*WwKF>V:Q/ŷb|%gHU7XU*kXˆՇ54͗[qajG$*irx'^_?*i۠e6pv09.Ȧ-nؔx[ ;[xW{XEd^{ͱ_#ЗU'N]K$ #bMvT|@!΀+҉yע& 2;bY2o^^*[rv㬑 4Y*]c]Jg{k@ W]oBqmq<oOĝΦ86R}{4l[Ugvb;1g{gl:f'q{;w$tB?d[qD\evleXv*cGmV̮la笳?1cqunG1rs`/{*WMgctu39TY8Uʄ|X4= pNI bI[@<5K'Nٿqs'呯vcVlJ,I~+G,1sT~Nչ삌 Gn<ƋGR~;}zX:W]o3m-VD)==D\uvE /ް!=D\uveO+-}͜!⪳_c#q uXo6?mrY A¶&8Nl҉ywƾmԨ_ctTVC:~+ʀtgD鼛YcMrx"&k9ʢzk|q:fE'⪳ )$?cvXsXUvuf ̀sbD\uv .g9Rt"tiܿգaBfC-; ߊ9G$*.odҷXZ^DݢRd`> HX4^N(bi/81g97Mܹ,|+¼y}I U`ϑ%"ps€8XE\L>m \*x2mԇŽ1$U:b3 3;o*'CaԅolZ|Ry;rHb>ȋ5ߎOЖNU]a ,),I\VgZJ< lk%:W]oX2[sŽ76\NUgXK:{zԇήaS;޸6!t==D\u¬Z/98]u|+N_̫ZȢ9#c#)u",gt"t^e9 Cw@@TZI̮3E1{g ;g *Uȁ>޳3$f8-=ߛ̮3$:6-Y1E *Q,1-T"dtfl1۞sT ^VY^fC;W5mT].)3g`W^4A |6ةwTNl5w{:~+ݶY%`gW__q 7`U4=hilqo9LUeXEOQ p';UM[3>l-m]JX~1/lᱺ>*V>C/ߩx`3^OOVN&>ωkoV]T~N%guxW?O4Y 7ߎ㸃_ڜѱT~g ſY:Ү1~KaPb1X^{ag ߮tv[įPa9؈;GQߎߩJybv~]NU"ZXZusIxȯϚůiY.(R"F0Ow췆&v~+gŁ|~,;WW#v2 [|V#q[(|y~FUeTkQz1%xшS8$ouꋗ5KT#⪲+s&cʧ{ hr WK*DzCqNלɰ8@-U,;W-,!Oc?ࠒy甮,ȓ[(lo;UWgV12+%R|+Ʈ9tziNUbɺ .iaĖxڿ1Ϸq.|QJ3_3A[^sFJi.n$eG>_-;ljY+nY- 勗+cEΟ;WKY2p?[?3w[y\1y"`:"Hdpw*8 ޥ~;dC`D'⪳DE# &N"8ݻrsjD\Tvm ļȭ˜WxUgc {/Ȧ-rj=ԙbcl3 MOy<ުfK{|UdVgd| 5vcΑHXlŽ4rbջzhlxx+`/vcxː#A> \]V9B9Mu":d5pή[jk_읱XJEf؅[tsYcq1;Mg,axτ{gز'oNU'L0|]T:kSSVι8bE.q)ክא f~pymDZN`Si nk6{Tqp"WT'⪳ γ]U{o%eNUgS|x!(͟XUvO2/i&*`UusCAlqI͝D\u`>oN.>1/D`F-ogHq.[5R̈Hó _Fc ~t"t^q>cmeOowc{igWq5]FX݅+0O~t":ް[>Maq p D'⪳*6#q-;o8g[إqrFbEjxo½dx|v!WgSg`+0Z(v-6X-8S1/-;w2#?l3sGI3ϏGN_;Wjxl[*7݆qgkXUnŀpg,kvʦ1nu[T{c%R, l+_ ,a3mXU6UVd75Xci!T5=bM ^?*i_{Z^HD"_$v˺X".Ƀ`ngeϧǷ(*!ޣ=fReō!vᷤvbK2W-o9L >틤:W]oa:bpm*:W]ok szr獷.ĎR"t61|H؀c6L<&y"j`32&oŌrԋE%*nFvXkmϏ񘁸[)nW_ʫώx(Vr.5ѭ(qc^M+ɮgZ"`ٴUGb8}/v;fKXE6mxӛ %ǜED"pC{̯;[Jm<>Hb)be9cv[8 }#3¿2v*R XΚFqS6ؖ(Ui+fQ~OG+7m,ߑW<ʦ7|2zc;c OAʞ1Ni1F XU6J:̽"XD!p,ZŮcYo*jNĝΫ!CF4'\skK9t"t^1AKE%/jS~+psHةl:샊U{gfoή7:ŽϤoή9A&tzr>zU'⪳Qp0]˽79Q":Q|)s2gۚ`C8eG{@Fĝ9^s`u\E--WS󂍨DɼR)J4l-&<ߊǰ9 ^K%**pZW*:kf;U=WHwjqjX_f;U3)y~FB;o}RrE'NMgYa~l͹W^z~+ގϵLʻoQqx^?qD! v2X8_?*2',AXqg]k"B'щyե;[rKdH7o ynۼYFDKOfs%l*+\Xڔߎ* LUeٰk=-a.-]vAu":E_ޛp獁Z٣Kt":ޘvLd>-k߭ԇNX-uʟ3o[`]vM)_"v".!Y&XeXXT>=o5GOLʻ[|VN^04݊q|e"+T-OH3|Γp牧㪳Rƞ+\90&R_wN8f^^}ag 8DANUbTETaXE6m`䴌2[M (pf*ܾ[a * /^wr{ghD\U:36 Fu ,u^) Tu+;wձX_ܸsPG6Ϲ^|+1#ca;U:C/mZ|NHXIjD\T6mkſaR1/JUf%6+A ;g_s8ĿDV)4V(]}P8UF߂C;9+`'o *8Q-چJĝ̻$cek lq{l'b skN}qu.aZXX|oMi;t;Ye$;0/vpt9%\U"2( sV2Atq{L mkQJxc0.V\7)_;w Ջ]8 {N+f%]|;Jkɡqyה =#)gg\UeDߊz7ug]R:B[;[9TΒ~Dz-|5^`AD\evq|g>ޱ3y5Vr`Q>b*1[>(s*N-y[`b$*D\DVvcU!⪳>;o{o]W]o~x[{cJCU'*a"S<A>=39bI SyUX¹YX+*$}\X}-or9uNĝΫt#e|$Ȭp7 d/^vjD`JEf:borS;\Qo&Kx8[[l_u":G}6a{o|6"`Utď{^@sex!W&!RIUC|]=3񗧑?cTLʫB6k'+x= r)G4 olpXDY/p W8BoV܌D#⢲k.f]㮰2޼;Mg OΙ`=kkuquU>"ssHo.ϢquDHla1G LUeӘM9ޱŽf8[ lcN#X,$ʦk[?ԙi4pG>w-o}\Vޙl+:w:vK8^Z~+oL\/:w:sze-[Ɓٮ"j]) $-SqY <Ys؂7FU".2z8[[CU:W]oؤH:9_avDTή7lR5}6]Q_xߘp` N[9>fA SyT3k9֌!2/|+][mHU7SBQgpmD")"bE ;W܀]hXE6mqU:="UbvU3DX37":ެ T}}@qV̨i\W{oמk˺D\uvu<bዽ9>X.JU".2<~'0}+[9a?բq^\m:!'rc8~+XtD鼻Eyfkn.㼾꼰:W]o aqQukՉzc>ơN :clg{g|xij+a%_%4v0b[hAYZ$ ;gv^se6[t[(kG)jD\Uލ@{?$qopr*rߊZnܪqu^7H&pquƎDSla SK9MUfY2la#W]g#SS;g?q{T1uzG6 XGoֳ.,;WY'QI_D ?'NĝΫO#װV/ld}+q{pe/ή7>*:mqό?Չz?2ϯՒ StV؊OK{g'Wή3>aq>-bE'̇>۪T22ߗ][9K9tDSglo,xi|9`[1'[uqy!6旯α4[2^"}v?3KZD\uv P>+Xb?3<-*McexÙpg*ŎcqAךNU' 5ޕG0Kb kB\C;ѿRe%`n7c\%9LEgKNĝΫUπH: [^FQV vϚ:ˣNĝΫ+پ'SCAgR%vr'lUWή7<o{oT":8FԘWu":XΉSZ~o{oǥRΦ7p筜Lџc6ENæM4909bD9W|ƒ|;wqUܚΘe7 GO~qmp7âŽ7k#8oOUgy[<,qc-D\u»^?lLʟs=`vVY*S1t Agi,~+!٠fNƫɓf%Y;ƭyYyKs *SسjS_,aſ9~c)NEaP£a?wI޲ÏqVLnL:ߊOFϐ( Y+X|1.V̱!uD"o>S XESeaU^|+f/_BsĖC֕G^za1E}ء}XE\^qUoK86ʦ1JOc{cZ$"`U 3oz$N3bUoTlՉy3IQV6 R~+0|/;W{q;~9LF[8gqŌB,ήSո\aqWvUή7<-2/sNĝΦt̢Žġ=q'<|Vq k R (JT`sW3Z6щyu5vu'*lY;[ gfv9q"!S%MO.i/-ɉ1 vsfAt":-aM/v\ q;Ž7Q-%{>LUeB 9v|wv1`xzc4-el,OĝNj1']$sju4t>sr5D鼪o rۼ14Y9~+m;Wp̱Gsa3oDZz&NUg[OzX{C@'vzxzcw<|!3zD\uvaJSsPN^ޡ)D/vVg>li ô6L7p9+OrVi<_;w:2[9RJm8a~?bV_׼/"VM_:~|'&<Ħ#D7jQy_`4UxeUSb\NU!'"qҸʬd1AgoEبbLʛ] }x>lt60^~6QsZ"V7 >6%w iqBqʦB17ydG"`U4VyUpd77ܦʦ1Lb֟Յ*؋43=ѳfةXycxՐ^cx zq·KwCU".2?fGv=Il}:k2VW7xs bW.F/6+LP(?'NUgS$̫paq O\OJt":6mqﭲ^[ή7m.z~{oc9;Ux+1ĕL_l^:w:o/w!љk3!6ŷbn1FJUM^X-ʺeF͉MR~;΂ѯ5ή7>-!: D'Ng`wD)HB=,qGϙSή7]7?-៞Nx{mFw8_3a𭘋c^]*WW%d癳('h·b[^T"2bL5<^k-m~6jDo|(i>KE%*ixhNX>.0wrvV6Nל]*:w:X7 ەA/~Zim!8f%`U4vr;!ޘ]ʝc]Ewnro&ȟ_ʦ1^<3*] |7fZw`U |NJp1g?;9[yֶ4YՉykdSM奲I (vg[9/?:;^u)Τg(Rhhwۃ2HpgAA9c*b|q_^Z[O SyuIŃ2t,2 SB{/:WYoԫzOU":ސOvxo;oX۲CĝΤ7L?<Oz{CjڱT'3-3<6I#9!G_t[kjdv6h4Z [Lʻ7ˌpQZ>^ݰf=l-Tk}o-`jņJ[{}+ ?gU S3žSޘpo~\uXU&YA Fׇ1h:;L(<-mVb`po S`U KopuQ FhD{goO\&;~ϯŚVbG[?1{]zK SymgJfXSUv`GAd5\pB]ߕD'3 ;g\xqT%&M%.˽+}`gn7YD"yaWok`g FOUNjkv5)H,弴M)wLW{pgDɼź$pҫU1GV~*gFNqS%,KchU~*gŒF;g4\qc|axW½+ v. gsX?wGiuLUc?R+W{W;1|֒;gs UU~s}z|1@pch6XKn-hSS +ڨ Sy`Lu3>fo[M(־K:WW*Y פ&W-Նa7^} ? ۷^Tu":޸)d]S{oϴe+WYo;2 {gRD%"3k`Avz80-.Z+٬<n6mȍd=S9BiԷ:w:s4> \qx/c :6.HLt": }Λ-\<舐 [lT[?ʑƇ{+XUt"tBcpթyCCN{tڬe韬qՙf R]= U[:UՉzkWV0ƒ%Дq~"t&}8o½7bT":-M% K>`~;gRc*WYg+k>, YwfW̬3RY99=#xb{T%*FY{pG عK ,3zC#*b! 8fRtO,MWy[%**Gq1wZymi|*>.~^^1 L:0Tbz;[t+*JL5o}ٻ}`g+i n*WIcł/Ȳ?po^Rni-3mov6yx{+tbzx{%XrSKpBO֛H *Kab1ʕ+y}kS1[,u/g.:ίu-+Չ=&~&f[3)?xqTG½'(kx%3U9Wchvl=U K[VLUckJp5wXLU#|VkZ=Lz*]pg*?N)항:WW;Y1 7-`Q쟊T'jsS rE_XXʫ׃dD'3Ց+ELLqՙqS"벤z;*7xJӆx[lm]Z"[ޕ39rKo"Sx"v}se+'j~҆Oj_vzk|Ne=/[:B,V ?_䀻[z=oʤ̵3,{0673_SC&2ilcxK}LUeы1LAܻ g÷/YI?e S Y.vwduڎY%kn(Tf. QE&N]0 w>?0zm~L~Jkh1T>S.cZ5k?q NPNlt\Ku":GK7V/M=դ2Vig_a>}c狳XE&mqۖg~}D$*2i+,kl lqm =1D"a&ywkK!TYcAo;Wi2v଎+ jkK .;]a"TZg;xDJ[+z8Om\'@ 2VIg\s bA-q 9rzx!WYo+7_+"NUg?k*%713_qՙar< aEOpNU' 3f!a}mֵ ?oc[+uD鼋/w{(Ʌ5,SkpD[}ͺ0y`v;LWtĆjnGxD\ufq*Vjk7ΘD%"3klZz8psoi+":WYobY{k`yz":VEx7 jy!Wphhx۫1Uղq{5"S9W-[zFD+8|fЌۺoW%f|\?aOU"v"v-5Vd[k #7.~:hڂ^cD\u&qJ@3yo7^1W;r-:WYo5(mi[^qՙY1(xx{"?OU'N[Ŷ\r (?mlq[`Q+ ײ]xtس%B{։y)[yJ ʮS 5X]!t+t:WW*k O+UܟMjR~:yU@qՙf>Lͽ7ׇάO= aܼ$v`yxz]0Yy~":᳉/lt0:)+?rb!`d^xax'[vD1 | E\@nLī/2͢9m]@+WWu":0'apդXUf-y۔/T7"VI[Tz[;[Li#,?S4sM~cgCgdC`76VL*\mvcLUbKTKk\HS. Ժ%|S05,ޮVyRKr'G+U)bڼ"aG;w5Y^]T˦mB ̬3vT}B@2Ȭ/T}U~f*?>lh7a8OSX[" wmâK~SaC)4 _FUU]Y\#b9z5y+r[즧P7 ~VIS} E,iP Gm[hD\U&mE8[3_=*WYg\}+cZ,*nvl=l'MIj+L ?WNRE'N:xkԣWhrsT^wk Nĝλb97|{ryjҗ6vT^q ۆg]/;Iou}<{6E'3m@iޙ-x8+-p6t TN`BR\X"Y>+?szÕC&NSlN3Fm=,gOŶNxȫ~oJs#,ΌnP$*W\sgQ[ՉzC札zy+R}ЉәV8wIL zo½7N5sPά7f+ܫu:7X$aY:WYoc\ f)S1~05V4C%*3p0;9Cxة/_sMy˶UܚroUPhةZ#b ˺#/g%ت0=w1n;9ckV{c++Z*lȇ/Oc{ctʪC;L+V|z{[ax>`tef῱wugUJD,"rֶj|aXW)ئɬ%/;wCvx/,lCy2LF>3P["v"T)1Oq7V[ٍuU|*f;6֘!D\ef;FQl`u|!wg$&]x7TGHʥ`tļ Ҡ)ۗv?SUgшg~:xrIS| FZ1Ѻ[RyqQ!LVDJXfɊO {-]g y7/x%W͹\e%>c/9Y]U"2άv3ķ1DYzNT"2ZFj@0:;6b;Ig|Y vl8[*Wxfm߬;]Y /rXh:W1ސbink:K^mS9ڥ}niv;egͯ '%ҹD6?SGLY^D}Sg:ƿU (b/V%WvL3U9O\ǽ64-"3UxN\tȀ3ZhI$T7פW*<l{[jM6>8 OƍJEU4O*:$.aW(+Ƨ3oP|u3OƤ);0>l 3?bVISB͖)AԎiʒ,_+ *LZ94nsUKV"`՘4kZ|CS5eqN"*qp[Im=X1/-25߻"4KD%*j?nK36vf!%:àqk:~*\zҖ7:w: ;3&!Plv͊p~:vN'3mT" 啵Vu":0sc}ީ[={GiD\uf!Xxx{Q絋=x`lKᚯY%>ao7rV*~HqjX7P5/LzF:~*Ɣ ֢NĝΫ R#wEj.}(w5,2늹F,9N j+*:w:ސS@ĒIyM7ܷ{LUeYN,k3Q}:WYoּ<z_HokG|!dPBBqʶW7=}ڶW["F1{>1+>gy=]5.;S:o+U9(R ]҈S.:JP]j:pq5rm]Vw-\#*۪5pukG\Uuz|X=tAP+"Vw}6Ŕ+p\6y쟸+>cl~/e:4>S'gR:ƽe\ͅMKVƤ?ɛعb"`=ULmeoL!`Dz1FX؎O^=.Y9C8JUݰY_2$f)OŬSvD\eލHf_u7> UuE3UISt0L6>30Tb?*2iS ;Fޗpg,Y9DB:VM_ҞŊͭCUg{ȕ7L+T>OU', FKOZmwGhxV~*t)!`Hs$I>h{/vЉa3r$C&N"|QY}l- ?WHeژrDLzé[-z<{c cݯC'3meomp n+ VYgn8p6w|FW/qՙr &{lPqՉG̫xLvwbT8E4}(zDX&ZcK0> stream xڕN@ y %B97NIC*ϪUhvfB_$:a39{Ԛ/lj%V5UQDH *hA-=}vkV*86cf^{4_[gr<$Y`Ž9aDlRṭ}e搔,7"ǯesጠb(VsYXI[ O,N endstream endobj 13 0 obj << /Filter /FlateDecode /Length 509 >> stream xڭTˎ0 +(@@z,r+zXږV6Ċ=! kw~\Ap೦DOs)Dg XYD Hb-boqx箿 0=WH ~o <X4yHnٶ(ߟߡd endstream endobj 15 0 obj << /Filter /FlateDecode /Length 241 >> stream xڕN`<żәo31ZL\3nuo=iڐop. y8LF*4&IZDvEozȠ p`ǧ߮8qTSu\u)u3jfVwn>> stream xڝˎ*n_Q?O'yϿ"v76ڥ%ULJ?o߈u#vDeɬ~S BShut}+5H9AAt@Nߎuۃ߾>bԭb CMn:lM8p4Z(Mxo&] ea»&j$D8eAnm&ۈQU?,%dypx6Q2ytȋ2?nV}V'qꛣ_&}XM^ 6UlooJ|p4mBGAqؘxm6ٍFBTZ:'4A2΢|Hkt\ oF*J˝Ds[Rzh$OZzZb[. hiAfD5V%[Bpj/90t*97U˸rRʃ( .ד%ezV_UCD :C963oK#jˍxdKEѾƥIe_n^W²`a\^c ѵȇ.LJKNH$f)hddFS:\ݢUa3>ML2EJx^r$^xC;>\ڒhGدwGV..礼rT2mM.ty^iytk4~Cԕ9.O2)u2u ;mHU /&*,R3E;p+ttnr9UR'Vf}P}BF\tY [0^K+YDrMvg;: ֆIV-,POqƙ"RK7Y#rC,}mm&Ӫ^tqqWߤ3[Zz\[gCQ-w۵ۣG!uG1V! cQȣ.İyoU(ǀQ:˘ׂxa2fr yU J]ާ̂U)nF9g]XˍŀN{%fX+ \_[P-_읗eq&vJ.!bxA 7m`ed)Fq~:nw"=2dL'kOVn Lw7bIb[;&b? b>兯O(]V 9 NF̕ t ;83 Ŀu'_9 ā0y!~~IIwYmtkLJL !vzlGR{HȀ䒹n`*(/ȂAj;YLjlz=j;5CoN㺺d&i"WSJq6H⛌ 8# [Eg͉}X8y6(&enjWis;TvuԐϨڸPK\v]C(+OXO?Wp}:Bo D! iCk˰'֋_T*5{>}i?ׯnwK,h8v*:kDRdR-$WןOx?‰gHRΡ % cHG&/\r4d'`-[u ( ȩ1O\vjqslLwoVSO2ҳ><,Ya 9ّ6r{^ Lj:z{]CZsj]ެjg(:k=Q9;.WnIg8 jDR3)[bT;s rvgP {;KZ/=ӆEDKP~Y[5r_}e50H 6eu\\:s 'ܤ.(Y5k[ vs6>Q21f22ĥt%㦦6vzHA5F-XP!Up?/' ^VX&v:+[X(u%wUh1C qwJ+{?W?˸_ [Ҟꄉm ]{jJߕ^_N%?\ܺRϔJ΍O|8}- endstream endobj 20 0 obj << /Filter /FlateDecode /Length 240 >> stream xڕN`<żәo31ifgz(Bڐop. i8F*4}&IZDvEozȠ pNO4]q0ũ %;Q3{w`u.g 8qvDlRmKi_9$/l,Ժ>nWICCA(VssnQtE|Y endstream endobj 22 0 obj << /Filter /FlateDecode /Length 710 >> stream xڭVK0 G" ȷ@EvEU7E9vqtd.v_w;.-9+(jDRP]w?^c`fdf,gwf` 4cr Đ&2;6urLOfgKP}3R`L,KT(+5j{xbH@ω5/ >E3d)g~,g Q>"ɀ -8*)0"`D'S ) @"[sq \3A Uxqic XQ#zG-eA5icg o{u+#>?dy-׳JF 0=x<fF# 9.,`r9Y&Fkusĵ^2Q%g䠜o{iM7IDkn:ΰF"E؍Ϡm8k^ptuy%>:p>doϤjf!r4mn<,HmB zAQO: ]\f/~k&–]<ܟő<"slJL[&WpsޙPhi_3)V|l@E).%7gUI .dd5x`)^*c^A?9ȶϩ!R )gHK%L0g)b endstream endobj 24 0 obj << /Filter /FlateDecode /Length 241 >> stream xڕN`<żәo31iL\3nuo=iڐop. y8LF*4&IZDvEozȠ pNO4]q0ũ %Sf^|?#xn.ǿ<$EF0-NMY=> stream xXn8)rf8q6^` ^ɡD[,P,~#N';t8=u tdMLSoݸgO!`:b(d8,2$UtWh !v%\J9o2v3q.Ę mmh:Kx[0}:O3AYɰP^g-k*hγ\qȎ 3,<@ &_vh :g 0T&9`(L0UV漳HQ q?g̿H AiժoeLk:τlYTDr,v[BϛxC=O_8{k]Gp]nE[ZŕSUfSHŝ?LoĎhw*tJgVI##)췻nff>&3ӺagyyP_(H[z/iA endstream endobj 28 0 obj << /Filter /FlateDecode /Length 243 >> stream xڕj@ ~ @I'A)$m\ٷk{_;@b$`ٙ phB QkrDHZa\TigQ` E 3Y]pZb]dͨZ:#x]CyJ 8{sˆؤ5*s[}U!)&?"esጠb-.8n-V9jҖn= =y endstream endobj 30 0 obj << /Filter /FlateDecode /Length 3197 >> stream x]ˎݺ+μdxd&%Qu=[Ł`&-ӏ/{7o?E\bt~R/|*sT6>sۿiM=l=\=|=B=b=R=r=J=xۏT0.*GoQ+M(1Xx^e !K=^6,~uSr.٧Պ12T|7W.[1)_ɿNrYYkM? 9cfuL @Hx0REljˬ)bZe1q'HrQYfƢ[M97[q~ui=j,~nWҳ%|0{9J{f/-߽ck㼴+-]BK%Ws}o>[}^5{5zSOk}+6vIAso_گ߿bHؾe\_^M6bmc "6'oV^7iQSK]^1+SK|~VU%Wf&Դ6ioC6yY߱{6̿1]nnkƧk9ŷ5fM=g>]^伳+ĴQvviW]pYJa]؆u7lP>kG*3Ir!ouPd!=;g7RTѸOؽRмh/rK켸/6^|~/iAG-Z6S{ߓ(޷[{6!"9z>l_eV'JIRϞ$M*]_W;:G;Cx!3@yd_)j;m畉$MW%'~oM!idb~6i:wBEEc8dPWtڨyXPySq.DatHa4>ˆC0cuZߐ2{UwQ~r瑑庢X%qW1紡u8-8`|.`{F@bIƝ^RKs)h]0sq.]t]4>C.ۼOnݓIsNѸ#cNr:ZH4\h| ipnݥr%9 'Gҩ/'9} msq.YtY4>C,t[]R-Mmm:(}jKꦓ+Vi .t̅  `s7mUg[65*>;Ii~)%\h| gp5|@1؞F!uM')l+1t黺 Q#R0) +,RBƗ,okbٓttK'BB!W՞?v7 8!9 Ƈ!0 fʫ#86"R7pyG9C+Q#R0),w.ddH#O9dC9o6C+q#r.␹ q^._ے/dFZ.ZZnP6sus?ށS5c;oq#uɆtbst"I~}|}>[yqbֻE6&_{aTI:?9 s%BRH␥ ܉^ saOkųneFK]vn~Z3?\h| Lg8Й|ߘd_B~3N@.}'deNgVk+IףkDz4=FQȢ`޽׹ 1ǃ@kUKs>NWeU8d3\h| Lc^\5"%31 ֮Y{kGMst q64K̿sdJZJ܆liF iOCIj $mw_4. nRl*FE+q#r,9=Y#r3| r1فե![^JE爜Ec88dΊ]8ߞ!9yI,C/'92:pvE+q#r,9>.9_ɑt$gVt<ò=3$\h| gY f3|Y0>H: r6)]80'J|}tGcBfy_;Os(Qt8PU%Ouqf8ĹK9"O"`چyFDqOc/'9*xo{w!Ε89pqȜՋ;g1/EIY_+y? endstream endobj 32 0 obj << /Filter /FlateDecode /Length 3497 >> stream x͝n~y0_ ۜU6yE=}a/ȇ?زSlѷoo/?ތ7rge R *_iM}r+WT_J}oOLT%c-j X^OU6|4l>]3yZ_o/^eY!Ki5h k쪺bf~oxv#|KVQm3Annmїr`kVEgY{!bI.E*zkB%_,ow;6v^|[~6~_s29e˩4~!l[]ӷݷ? !"9z9>m<}M;iVXk%XI1,,<-Yz`g8+ѻ(ξt,Tц$ nYj|F>ʹMo|Ag&9"h| ӨCf\x6ƽ>3$0W*EZ)B1h#Ư:!t.lG:۠3m4>m!l[Kx畉>H[!s-*zFIwXҲ\uN]TƹqOy!2̄2:GDAu(i y;0,ae\GSkkɸJ+&c/uZ[w:3q4>q!3{ayv3b@и[vցHqdh1B~Qۅ:31FcF2 `2OF'z:4v(I%S6 u&b[pǶ`|ۂmA om!Wylq;ٖv]?/9f/BFl1lmL6}vy糍7;Waoc_}LТsDjlQ-{3tŎwbƹH&)oL0\$t]Jŷ0ԙit44ꐙcO-(oZ06ܧՉr]Aѵg21ԙ et22Q5DYa3 iA,l^q/_Jg xv^WԳ9< ufb#ǰ:dAmsЅ9<%N1vOQIqd纼J*=}2n˞?e .:'>օL9w&ʈ6ԙ"{2<{Aۋa+T{جBwф\孴q쾟R"yx_ުC1g5ֲ;$Ϻ݂';*hbi;*~yQsĎ PQa|ߒ05wZGޣ`,D-[QYk'ުXw/|oY$Yɴv:\z;ԙit44ꐙ}Zg/Bn'`ܙiJIFpa^w:+8cW0>]Aˮ pmNe!c5YZ oW"ׅ}jY:4~|j˜O;2p>vBJ4ԙB爝 fTڲ{W`~`{:nmPVҘ>mY4ԙe9ʂ!( :\'|y?_?3@cX}vqEvdXa=HOs%%wcIM娪dM Pgn #vSh|L7:n LqI몎4{DhyDgiyOSy xcΖi2s,.+eR֥)IKɱ>m>ǐ߯};5GTh8IWZŊ:րꨤSV|z[kQ݉:3 q@c ! g5j4sWnLR:VY]#U3a4>a!3>ØDz}KSVg8>S㯗O\_'uZkRnNvG{LdoDA5*1~8AV6e#z~8_vmc}|KZm/DFt1xop9v!s_tҴ&GB:6N3m4>m! aA˰ 1jΰ<ѸKNS"={Qh:3qFcF2(p?חx;Y'טDjl)y& `eõNVcD%5:Gu\ngޞpI/c+ڗ,fu*N}R%cDu"̄3:Gu8g4XRah#GƛA)~T#jPg&9"h| C%mS176=WכyG1bѻ ښsuf3k4>k!s K)ZQ!/yufPq?mNuV9cD4:GdauL *jƼ$2 M"3L1[.&n d&"}2\\1KV ~na endstream endobj 34 0 obj << /Filter /FlateDecode /Length 3469 >> stream x͝n#9EIIрvNfH)Tpxi v7BC2 5_̗~yob˷}\btY~#m?ܜ%0e1oyz㿗o1]1myrބ!s֒J8T*w|n6.!M9fŘe䯓|{7G.)8cϽYI͙S .G'kl{qln_ b$'Re6M2EXͬ?8EoMHfNJse+_7r3:{F_֬^ow/\ήmudrHhݞEvS^_ҜHQ(g5@&bW^0Vz -%1阒,oU!Eb4AMIQ WզɅ[-o t\Ag$\9"hCmbD\y邫F\eLq%Ը_鸂HsD\x\QB_b$ 㪤L6gcᏮ3W4W! .i)|\]qH^ "JJpYCr"Sj鸢@*pUwU溦qU%WŸ)qR҈Z\pt\Ag$\9"hC\&b$}ɰF\tl+茄+:GuȸƗ=^q{?]Ԣk7ȲmOh]I-e8Z@%!ƹqpF8>8g?ʱ=:lHŢѢ{}/:RdE}_5w\ˢ˲y]s}s :#qF}F2TRqXYR?(\m,^l ȱLAMQ#=Ӓ} :#E}E2(PfI_|}v ()dZ٧4'%T3a4a!#Meq] #_bN޻%lbLusZ*Eknx*ƻppEe,BawӕhL [O#I:b8˯B߈> ݳ\urzLp!Sҁ[M#(]ղ-J\tH..Emد_)6C|LfѸJKMF5]8<BgEX@8sDxQ3[z!vbqfaŸ\mjclѱZ8Wo)Zq9G}8G2(}5|W+Aи9^ɣrL8yk)˄c4Kkt55ꐹ}Bи3]05|ˤ ;x#MR#:d d?op7K\"$sg MR[qǷb ߊo>5]n %s8wȶmOܳ;ȷ' MC߈p>l g\W4b+ ɸa_h .:G$Auqر*c ʼnejair>ģxxl=rv׼ܡ/# %tɨ/{tAqc 9seS9bC@F}C>v\ ΜqlZtGe^ǮnQw+a337q)ObSo/SMx 7QM "ֱVOՙܣУĥ|4;٪6[p1L>Keoz 5o0މo 7wlȪY?1(ϋZ{X-Ú Nwt;;Ayo)G'W5rmew54Nkt55AZ dI}߂5wmO4+Al~%r@sD~x'~12(p]򚞴n]23e09*晖6mN-i46]nSqXx$MR|6t8Ko>TֆmO :[wJo%7F9/eS# ;AFb{2N.-t)UmjW>JQm;+{Nj@(sDx'12( }Yϧ8qRƽp]䪑e';he~=5e0މe 2 A8,cf@/tRԈ 9KFNcdA`l'aT([Vޮz?Oei>)-&;"k'dsZ4Ek#vD`SGA;"5ǽ%骿Q\lo7*Wfpyjk$z.sW)Z㝈 D)=j̩%u9Nm8*E}UR#2 ȬdfJ WU[YNW_G939'=6[ZRu &] Τb^4N,ך~mc{e[yyiT ii/gWU{ƑBvfׂ^h 4Rsđw)0H\I!" TRЦhO1ZF"yH+qkT)@:Gx O(}8NO F,SRvָO׶9d.7pT䮑md.=UͶR֩h 6:Gdwb ه_L(H\eB黮'; iuya=1PȵDYl)6|*Zq㝸 \;n}Pd<\WX+ikɹ3OEk 9"`k į /1\ oA70*C7{9ymrLZB>S rLU^6jS)r@:Gx wW(;T2.0-NSUQ%L`z+(/ƣl\0r!Y$BbePXmk$ݗ(;u_Qv&kͻ3AhkLߪ{f.NɹR{GkQq֯f endstream endobj 36 0 obj << /Filter /FlateDecode /Length 3467 >> stream x͝ˎEs~V/ o=+o 3߬!Mkx)Fd!d_~/ooU.1\s|)EYcCq/)Ƽ|˿6cՏP?~R)׿?`*.^VΛPNoUo~rmGss<>{]~JřyxVV[/VH*}:tozU5vU}1ksx84l1q%#=_j}:їzdֻ*:ⅻ*r_U޻PUf߶a,iy5j\_?Kj~_bZvyk}|ۿ]39R$ޟENO*d_o=z?ZR%V{)@NʤcKc9YU}yebm`Ai܀7єR9JrW46).tQk"9"`|kp+ۆ52ƴ7-[Tugu:S\ 5jM5:G sO\=' n~?n_>?zgL 6$^lԩ6R_當Ql٪L#Za@눊D}*>-]9pmRGGžElDV xQp1B?FPk~ #S`|P?A)p_qM1ǟ q:6b]}:w? Z0,8caX0 c޼SuJ=h)%H1FB0`p!Uɚ2%Jމsy :Ǘ8|M`cJU,%}"?=Vgm]ڐ.YHCKOPk #vH`|PA;$ؑo ĺMG)ơ+kZEK'6 %|Vc RQ ,@Fn$N7ĂXHzYttSVyUԚUt+D+AULy{x1&R:BJ:zݑ|dQk"d9"`|Y_">>(FD雷?(mLF F:5[0>[ ̭B}x1&5RJ:5ZdmQ3(&B#" !A> D#y?R҇l(IJ,VКY9h| B\d@oCGňȢqGLAI)D6{UI1%DȢsDd d12c0gbLd,}`,h]6 j?Ak"d9"`|YXu9ǷmęF"3߉wHyWɥ @Ak"9"`|kXxV 6`gܬ!DdL]'.(m _ / ~ɬ8RQkTƝ:$U 1-Ak"9"`|k ?D&{,$bbӹ݌_9Kc'ީR!>=KPj"7"wۃȈ4o7즃k+FjmY'nu`D@sD 12b K3u|^; ȔɷI>{\׃ Z |~op7D-䯏oWҡeDM5߂s< |q\vdO{q[pǷ@xy_Wv2]8`LКqt88Afx /!-OL't$_~5_0>_ /hj4ǐSsP8s]30 @ߓ!宓pTӝm~55m0>m 6Ұ}.WQ%qh6v-qoUqA G爈Acd1oǀc;BztuOƽ((訏fِeb.;YE_uzq5u0>u :rǙCugcO 4'Yjt7_/>7 īseAwɮgt- - NК%$h|;ݒAp[A S\?y:@G+TRtƠz8)}#MG6zosz=JMD9Fn{ﴽyaꠝ\~(-3 ^oۿ(`Y`M YY\F^(hMԪsf j0r-}Q-8 Z%N~}PV[(_'hM/:G ;J 3(>c?Rԉ5=ƹ皟Lj>Ak"9"`|a ĵk"ʼnh|n#孓kS |e&޹ Zqヸ \z?. 2֘}M M!7ꨌ.6;:>Ak"v9"`|]xRYGM >Sd-T' yt;>Akx\1\ ApӦ/A1Ih|[wvNdMLj<X \!2`(8}n 4yS[`,K^3[Bz:ɍIf+EAbd|Q \И8q׺NS%׸ ZYX ,k*ݘD16W) 7Rԉ׵}יkDsD 12 TBeт o>Z\POmjY_O:"Tu= @CD9&j9bC5D! dUi/@8˱ˮsW~ݱliv"n|թIo~Y5q0>q B4yXc 0>+6fVU yXѷiDsD 12r ^w Jru٠ѽ˥cLܯ22GĜr48p'Jv^Lr6`(W֙9 {Ӷ^~sV.#z]C6ڶ:n-lR۩F$z/ endstream endobj 38 0 obj << /Filter /FlateDecode /Length 3651 >> stream x͝ˎE7 dÀF o=+o SU]ݼ!y(2$Mo߿toJ9ߔ/.9RUk}ۿ~I)[>||'Ͻ|?TL; 0)_Wy>O.ge٢k,D*gJ)'(ZIߎH&:w_N? V~6Y2L&~]f?KR$K"zN&Q\)b]N#e0V7mYV Jid07&ݗwrR_O2|vrT]~"JH5՚ θn'բ@V#Z-djQ n]ǷZa ´Z^>4fsc.ݜ]UmpAʎJ єՉf5%7%ȔqDSL  D+˘A1U"ƔaG`jzQ_ƞݧӿ{_Pu\|s͚a lR"qf6iU&60@73̰qD3  f3dh׀(vf?sNDG ,Ndžޖw dh`i5!DiZ(WG[t؆&hchBxP`^s#gg(av&dEal.ϲγyydY+vFJeYf*l}de4c2XV[j dY8eANI- <ЖoY ò@hỴc|+/ M*{th \*4 )78#hэ;@"ZÉD#vnsmy1kOu1޾.kDX'}*:Ҩ58"Ҙi8!M0<(Kdx(<򓲡&KGg j3bHhfzRSRޣr_̰qD3 &ZmdO02ΛZS6ޗl?m4x_.hï8B\~D;ybAɩ2#_k,h 4q;xL ƤqLl~ivRnՓ@bBNbdnAn|nQ-?ns+K#V\Ɲ%~58"[ tK[cr ݺkCˤVFnuRCWEH58"טk9#Ӆ ?h@;{]W>nՒmgU.+j+lhkN\C dП=8G:Ji k/uO#vq ХW[HbBNbd|QL,Q"3|%>-VuT)X-`L/B010$~o b.@}_Jָ[zj-6--&ATw֡ :!4ݫnY4iWmҋPk ~};yEA"B65f*GDJ}r,-2@ FbGdwb ۆvcbEf;f9.nj8-z- clc cL1{lNcbhfX3O2|.$Ut&q0r>vJ4f˻@j$ʡmDȯ;1)[dW'ԫ6@b;#E乪2 1Z<˾Pk$qD!x'1 28\׵?n1>{,_#&B \H|c|CN|cdQ h#0Fޗ/ȮB5=Y7 FGw ۳{O"VRU|c|CSN5 o'oރ"WpN_9ۛ7-\ک, %q<[}lIHkK(p% ۠gcG:?Xre>~aj/6//&A˽[I8>'.apoK7 &R_'τW#Z+~\I0) Pk$wL78\*wEK, /,xOԝ,Y*bˡH#Zd9rpJ6^4lH{^]vZ%DZY[`rߒxpVbVNX#Ie0!z#jdB8 AN&IMuޣ= řYOyeHSJ H !Qk$qD1x+Q4 T/Kd+Yvk&B?6r>W9w 56" CFxpWW5\c, 8'W1cc˾IA[/6{)d&5A9E:\@Iw@Aܝf-T&wekׯJ *ePk$SM1! oj+ Di $I[|oA1:59COgMNFV:30L/C}F2(`no/(q bo7=ǟ#=0.Pwuo 56 (%v_*)&αuȱcT֗tW endstream endobj 40 0 obj << /Filter /FlateDecode /Length 3546 >> stream x͝ˎE/0 dVWg1Uˆ0HL=8!>B/o_~3|yZRvɿmߤ4K~ZƼ|˿6ϳ?.|Oʟ[o SH| di%^MK6~9Y47^O)>_߬Y_|͟y/k̓^qZtSK௑Ubf?dr;Ln)?si,x>IK9>\/95~U!Ej~er]6S_v;[W?l}R27<[/UGI=5R5ܣMnѷ÷OqgSҜ{{>lO~q94CjE 윦dbX¢ nU(r%M&ĜBQwȦɇ`J'5&)sE K#LMG0:GDAu=L1hWߖr#O ԒΆIņpFu%9"h| CF\BWW ̱xfUo<͔wVNòL:'2j]e9ˊ!,+:\QUo(zqhn 6W9oa :n#G (y2g=ت+.O^$KOyAmS?䧴bkAKnf%jӖwڿt9mD KI*D.K 4[Um>mk*Zk|*1# ? tB'4>:}KbgKǙm$m=ꮖ%cYWxSwy ZW#:dQ`ey185`hS4no-סm[hZ9;$ lkl)z5: vz$zR+%%t:䤄uyW &-w (-|mBTb#cbVs1l+bv1Hy̺UySڙc!su4ϯpB7XCRNVnY 1rx&#pS6/.YڑŬ}L3 {3r07bc0Ȑ/ʭ=s㿥߳sumЖ:/3S8yeQN풓Q5ZW# :dQ`+7tTcYj9nVk)uV=sͯ G+qFcF2(5yfK2!)'G}`Δ>o-!劰\ ΤfdAR֕:GLjh|LRCrR=MD? V@9X֘C)}S.c_i8(7F q8X1>cE1 ط@ rcrog%Oʎ^ܧ\~ql ˼X!ѫQJ #24>&9@}`h~2#> ƿfti}p1 0L/E+1FcF2 Xa4Q0oe_:-meH~*H]Z-,Ȑպo-||bZL`!3y>5X|xa֕EĢ1ȢYۊ:Z#Rʸ*ɭ-gՅ>,#.QJܢsDnnQ̭څ!\3` bLnxU[)U;w_ZW#rp:dnAVĘ܂[_:˩a6E_ZW#rp:dn1\n0[cr]=ϭ/}'I.ܡօUq­V 3;(FVi~[_:eb[zYj][t--ꐹr||71Ļ9nhkɵO %PJ\sDQ5pW)7[ F}g{ZZw{WN]]\6 7:Gu|z\5ER#%AZ}Wkԉ-u!ӫPJsDQ1 F Jl[97X[uU'RJFB^ZYu%9"h| ʨCF;2X#a@+Ȭ'ɤ!Zu2<oazH]`0/Ȑ=wg㕠G|lok{a6>7/O䯟,ӈb-Ժs<CVt 0o;(HXi; ,O/Z3-Ժc4>c!sC俒h'ۍsBkt> kZwuJIٶ>̯B+qFcpF2.[M1$h[FD7m筮;ΛQs_S_ZW#rp:dQk:߇+kIиێDNA%ikzj]kt55ꐹp7w7b- ;cjI[Ri*C+FcF2(N|Lû~Ju=kPJ|sDQ7lGv=]biz֛ܗXSZp3S_>2q>A/zC #9^>RG7s>o)m:4tfO'KqQ"KtC+EcE2.Co&7h8q&u~UZ_uJ 7Ժe4>e!r`yߧo.q]iTlq7%o%{:&G65FdlAdDCJRj"00u#R íll^}TgՏ%Ey>6nad/ JX-X%Kԕ(9S~="j])sĄdT!T ;ř4ALO+eQ̒oII출ݪ5K}9>7mB;%i+ۈHP>AxmGe&o<;m7[Av[JAR=F endstream endobj 42 0 obj << /Filter /FlateDecode /Length 3641 >> stream xͮ͝~a zdYe_$֩:EW}%,Qr/y^._eQ)`S .)\b*i絾|_]E)[>||'ϵ|n?v*.aQiJGcrVF-*~Ͻ|U` UxGRN.VLXY^dZ_ރUܯօ1.n~.e O{y }!XC49[{o^Wկ/]?7O#jz"7Eҭ_x.mshmahEcΒswO'Wb/ᾒFC8'<bt )$A|n q'Uˆȭs!(R.X#귰uOuFikLFInD+OW3*@WКs T!Wx$,"T57MuJ,Oe4KZ!bՐ_c jYD$l"Ef*"1EuEd,3Kg:v|KF!Bx:]2)Lf#:d|Q U&es*g4n}S4zo.4\ \*bQhΙ+mԚm9ۂ!l :\tfHߣ q~ƭ^޷czKq,T쒁:Ǡ5c4>c!sm*Y\f5ʼnhǶy}|][tR_W߅u"_/:g߈p1l }Svl,SB8An񡮹?̵p`\:uL4>Ge,h-:Guܢ´TFVWgoc_G9lXP~=c|ұFX1XkW>u9qLA+Q콳bN\2z)w̲_Ak&9"h| ˨Cfl݌jր\Ax߶k&GcNiscDj̈́0:GDAu /` qېz&ھ2kBұ&̐q}稖JMDoC*" ƇT$A[tٻ5I((ʛTmg{朳 73و؋yrxӛPk&9"h| C\v}⁂ĉS{n~KwϸĐu"cL@oDALپ=/%5a;#n@w~eZ$ھ*2/ e/vMOۃK?~'*otG&M7i}RքT62p i~o5us ۷\c#'u\ʭʋNKXwV|Wv1Cɧ?L5#}4>cZZ?+P]C>6Cr$X}"IJ;S@4f"#:dŁ b)\C6y}`sW=ߚ{vtX=SeZGanNԚFs(!(u|@wy@ӖmMtd+[ԫf+oʹB 8YCBv^{#Z\QkB SP\PY0@tr@\8C)gGo\y1k,VO?FJҾ" KEЋZ19^)b ⶥ5C1aTvc~k{hֵ>truCf+]uiӱ\%jx\=˨5SB )WC.WȾU/W H;΅ޣ7xUQ k'!b85'cD74jT9bBc 4dvُ z{\G<IJ!DY^o|߈<18 foKx_Y2dl+]k!so`29:n2M;4]/;XFXwXĤ,j:pw܋Z35tX:S/eV@9]銼xSu<-Ūũd XL,sDQ2+Ql@[W__O\zzQ6kzQk%8ǫQ!5J(A`"k&Om,#0 ~+j-:Gub^Oň܂u1l#U,ۢ1lLȢsDddQV>DdY!$֗/3E X++ȐiL!ʿwG-"gۚ ~$1ZϨ[ Qk&V9"h| CU a}4U$ Ɲ2B҉ *`d]v5Y4>Y!# d17Ȃ":BH:V˦YsߑѡLȢsDddQ,d17ȢpNd{X~j̈́,:GDAuȂYM"8Lj>)$}ֳbIYYzjMYd.(P KUۺиMwsp*c!cmhok0a i5 axOL1 f|#2 2d!S>frxm 0.jq, f#R`:dnA0?y< h2sz>uA=3oB1,°e^ ŰsRi!sDo<Q ;f0턁c¯B!6ȏ_ endstream endobj 44 0 obj << /Filter /FlateDecode /Length 3820 >> stream x]ˎW,W|b*>s3||LIRd{B0 H*3B|$Ϸo?4ozzoJ9oڗgWI;itǗO(X>|r_o?*ۨM| N/oON`G}slx_}.T~:|g&e&oQ Wҩ/74TrI_l7%~^ȪM_QY_P+f7͎~?Y^,Ϸ?*WX[Nk^gۍԊ9 3EcH! F[“ןM8 Ajw(̚5c NkV{gŜx@o/sDe;sˀu%.sD.1\F2sXIo!h/i/Ɲio(ǧN*~fSDetHe4>ʈC2,!kYu+琱jV#ZX&5Aזn_ h)'|.qDoa2aOlߖxyrZlmPڜ%9О;֘2S&LJ6P@W1sDCcT q*!ѯ3/*qp]KB(IT<=c} ,ߝr&&䏭 3M'[S'C5Il5A OM㖗8\5(t55^nE*)f-wֽvKz S&8HNa_!PF F6PWb8F$8o!2Gt3/\x0i]ײj_ft%};i0:IX,d6k.}qS]J҆ 7!ˋd̤ҟHOb!5p:K,IF篳H䲙pw:J\F\Fc8d.c*&fYk,;mmNefZ~: ,e&s T:sO:JtFtFc8d:#*O\:g)\Re,pnY ,%5`E9n}٩2585Եkĺxᵀ5,YHr rq[on/V5{ZW'KFu%>sD>1|F2VgR O 4*>xu9|.:_XW3:G3g!#z7[e˺$?o(,l} s]VyJ'\^'}Cgv+JFFc؍8dvАh:'ɄM$l7mYލU/kƋAYu )D+:G4>F,mN|옫.;_^5D_bҁIt p^~XW2:G2e!sYlȶyc^`[V)cu[W'Wɕ̳@gzb]h| LgLXÓUA2gqs!_~˺X/ ^(%ZMF%=%\W!֕# #DC"mL'z9Wm jB+p٥b138.Dg9C,pAk59m]zWWq\Zq໯[ɇ{⤞Iev2<]:l !֕0q {Km9ۋ1{{U6'U1mVԝ%>uov%.QXbqBOXֈAB.&6NۛMQXWUt(h|"YV@79Hr!7Yrza4gkEE'HZBX#QĴ%gTuGJK(oDMc$ `Ȋc _ +)G`;tq]6fSXC;ً8<" 'UzV'~ )b]I9>18dBz(.m~'0?i]K_1.}Xhu:0^ótH=[Fb^l=KVT.T(Ou\XĺrsDBc q%6M1^B'9ƗA_/-gzU+~ F,a0ܙcĽ9u\UGj'oh<*KXAFJw\I|oAL>w|@QX+9\ ƇȕÕ+ $˕|B\Dajȑ3oT6)X49I䍘rVL40~$gQ9C!@up×3r D9CۏUebwh6&eej\L3ˆboĺjsDBcT qȪW- DʐNL6CI҈jkĺ9"".|߁F/?,bOPh |HQbXW-:G-[!V <$? qmS<-u%ޢsDޢ1E2o1]mF-o%GVK'o]IQm5u%ւoD҂12e zHسm+h/Ie9KD+#-y x;q17z`YK'oVƀaBĺo9"o"TP wbny~"WNNI)〻9ĺw9"w"Fss]0b]{yxQ*X!pEejї۰+\]I'owNe.Bb7qu7yD}b]h| kXm}|VA]=o7)^|}S8(B+#3]Oe'ҮB7h?&~sN*ry6B+Q#R2␩05#0;1?|ָ_;o)N}<^%IkB,Fx$FC80\ ۾wY a1A[ж;t2݀(!dkݝ endstream endobj 46 0 obj << /Filter /FlateDecode /Length 1172 >> stream x͚͎8 ~jEX$ qbT,'NNg`51?iGɲe/0._%FrF"qH]buO=2P`QFe_D r98D˻tYKq{;R\⫌s瀎S⁓˹dJ:gy?#~b=&BPѱR.CQav{}SP 5~K9\<+tg]H.i)8"L0۩9 NK*Օo_5zg9j[V-^I.|z\|ko?A3{S)=N"7wgǙ$= Q%uO9$ sG!t OM٥S^VF J_i*<)kẹMtIhBd1ǽ@9JkOk Ʒa\3 l c/l^dp /Z0G+΋KJZePc-DsΕ֞8roù1\ @[\n9q"A'jE9;ٵq6dW(nV1g9JkO|k Ʒ[rc ߺ^ V죞˭K;[wLΔ|vw9;;7ợcw\Rը幥n |w[bSak;hj &Nݤ>#ي }^i z!6kcu<@ol')лr!Gr1NƂ45o,+̄ݚX˲Γ<EYVZ{bY;gȲ6 Zǘe%P+6|S [QN>B AGpjKo ;y gub۳8+QB(_+[ŋ3ϝ+wg=5.aRi[JƸk=_6@0jX"1c1]VjUh`AFjw9v"f[&]+[URRT*JiYi 6M:J \STr*y56%7 :uS^-AchHdv%C.r[LhN9Cm:+TW9-tڽ1N]c/Bݔ)guX endstream endobj 48 0 obj << /Filter /FlateDecode /Length 244 >> stream xڕJPyNZmى[][OSEfjJ^8NiT> stream x\ˎ# WF0hնd.6wMJ˔ݐ<µ]!y$O}M@>C/&ᬖ"KJ x)4^/x}2ӟ2#Sl|\e/x]%;kVZe'E1_|dǏA}V%S(?5o kw5.Te1ˆskw 3*᭍8CԀ"P\.Sx2Fv57|^Y5?rrxm{}[= >ADw7O_e-۾>87)gN6JRgmЅRnvPΒmU^LmWk)x5wzg*?UWt}'^Il(UMEY/ƾEUJ+᪨^E34dS**b.sP}uEy(|J1+G8~HtN?˖fcu+)8rvD_$Ut). a r=h:bC\~p8/#Hr;gWʁ9mC0^m7J$ŒzFzͺH#a$dS+quc0e{r2'tFfeq-N#ӳ{3a<Ŷ3Fٻ=%=>E(}Ue Q҇ohQPKőc+WAM|7i+L^K1zQ0E[MƕfJg`]p25L6*4K;eG:A7.X إ;# WqoH,hrrU-tPWCt__}ACz>n>eu B܃= Tvnv遐lm-F!1`FPn,lw)]a1Syp+Nyʥ$or`J4 ]tްX7ୃ˱ %yyk`q N=焵^Py{v=>{w+IF Ja)4x֡\Գ3^w>m_\ NRjm#织>Y-lw;R"Q];OۡUKA<ǼJZ=Flo5ig?) #f۬>dLpo!5C+3NF[PJAޞ_=͹Rm}Uv7HMOZ{#zL ~H@u?i]4IkؠA=&:AsC?y#NppOƧ. ido幙 βB]Ԉ&5Ā;؁n㨺c>< W+&짂g=1L }cJ V>XfWA]ofѸSoSJYRd_wzRu '%LMHv.Aos810Yx: ;V:`Se5&iv?}.DuV)3IsHaʳ'R*0!͈8ؙn&gzܖO;F s`pJ9ë ?Jkpr$Ԍ^hXʛPE6TB1y3UsnVG<Ƴ!!:Pݚ|NC1ٛtm83r `:EΣ$u?R?ֹg2t?pe8D8k[#ipFC۩г ,Ao1iJӯȏ\ٮӝ3^*dgpH;RʬOU͹!c2vߞ' $'<<ɅtP0Λ"ƏvO8 9iO|,ϓ$'4sdJJ,qva<^x.]hFۓ>g;m u@=[g!E%xᣳ0l>@rƳ4ipSbAy=<6X ̶7kk\Ǟ1;: $!RTwj$K=Wqf],`o43yQFAz1`ČJc0ⴂ %p- \]9d8&?qeLr X\v3'.itMQb:xm;LtC( q^fo^i7!Sj Řpc`b F<1 ӡ$DrB>.+Ծ|_:74bQvH;;.9ɋ\#-qՏv%ɫb|꩜/ǹnq3 s^jIRw11gstdĥhDQ1f(Jp⯭ '2 XVa %#ݺY| endstream endobj 52 0 obj << /Filter /FlateDecode /Length 923 >> stream xXn0 )S?À886캞vF˲Dj0l&?ѵKgOylwdMQ| D;~|ւSjA-/?ӷW"3<5 qn lCW#\繎wo]*A6߬UK !Kl%e1E͹f sֻ2aFr+`4Q,pAQ)N*G5\$DzV7#qnj1&_Sz29 {*Zr+AH2-08_3Z%`:T@dOPCoD$H\q>Ĉj4U$F0rє}A҄4kZ8Z%@Ǔ lnJ2A(Esv) br A|5Ai>A b$db~c2g>P.Q }QtfYhoQxg}c˞6 FHFjI**( Rc8rFN+Ļ,uy-I[P3Q5fHVj6Irh.%imu0j^0N`jTgů$vܨg8,ڴ~eEB1t0ym۟jF-jsׄ*b-/}&!&Q>%ɥ4 }Ws#Ђ>89O2"#`_6|U^F9##DW5*D$#0 u3E}mB >sz `-481KkiwM?2φP8W,ԎO뫦D:"Rڭ Y/pr=p+8qcY/b-{;J2[wIOB?xkK9 endstream endobj 54 0 obj << /Filter /FlateDecode /Length 3490 >> stream x]ˮ8WZ#zr_rPlW_4m˱l&BՉo#Rŗ{dO?> YK/gob@)`2p].t%2]3]/woë`M.5!pEwR r7j١.N!Kipз<ƒ 3>a'7|> 4els֥Ϙ6>_) Fp 0gR,ӵT @7InD1!LIe"ۯc{]!4wL牝'oNǶgWEeZ%~$V̅Z$'LtΝHY;6ML}i"Bb;\H:PuRZFpe^#mJwRC}VMYk)Ȥdbqu􄇡{Wymfn oFnp4sӸ_Z e9\3^4 ) _LhXuS: )6C<)9L)Li;ŸVuy5Ǘj_q|zo&жH;)FoBBE^..|{? Cxp*,2%6eXX/2:^ Flv ]s|E<+A"+qńA Fݬ7L[dzou58fqj+^RpA@'@Dگu;YM)x9d%B`Śsfgގ:#Gi;W9Ę'6? -qn,<ݍ&J^n ͍ y>H+fvwn[WdS| VRy=EF[L8ivcS`x'NP[7n ƍsv7qS0nh.DPf qs4st-)ZOO XےGXږA NՒ` N_LC DאIGfHM!"vOLf23P@^ $&NY1JKHka;5&\DMh/JXlQC{ƽj 6zoJiӢJ{{RQsϏфHڨ4%m>S^iYGյٲk=A] $uECuE*~#`u}4%!Q8Pj1 Vi7&[?rWEk,R&>EХNޤ/k5C*EJkDq~29#=gsWqt!PDjSQ &O>Pr;f?ÚIAm?bآ43X2RڊEwl2? % rxȒjX6'>:gYLZR KK%Q;Dp\+M}N.䬤B9Yeȟ^mYxgL9#ޝl ?yQsrITdAV;)$)b Fw9*MT/hí1c?pny9 jf;uNuoުy:͖O^ >G@D@QeþKGH1vn*S n_u9b`G[=/s0!QU„K:|-"aq*M97ƖfĻ 3Q݀@]XV:vˋTE^"Hd0GȻMdp 6*!3OdTX0C:ܼ`;8؈Tb``cǤ3~> 7a!3[2edBJh0 Fdfqqs``PZ5Ai}.: J +I=)v/5}AX;DQ]irF`v0V;p'༃^ށ |v(qȋ6< ;pnyb`c:`1vRpᔣI[ܡ%0~#v|ЊG8q+N*Gg!ɝ;vc>N)^ Qw@?E;ǘ8ǘcDhr=GT NssSޝیSNtvIP\P["k(FG7/@NjPJȉLA/ Ï |E8>nI]=X=2hxuZBpV3šNS8B>{bE3[Eo2NI6q?ĩ`H-_`:8ȀAlz8ЧhH AOY<[2KvP x,cA9qR}!0R6T,K[_݀R'f~;f*Z0_V/Z=ԨCrZ6҂Zsse8!?1|?FCF1xo\ öP$|ݚm:76_s/oMk7gAmۜwKe]),2^Nfk+|sk~nENLQ Aaz$> stream xڕN0D ݵޕR W8W& QV;xgF6u8a$ρɣDZԚK14Gf  TЀ#8>}Tr|^U{rקuwFף yrĿ> stream xA Eb6.!0^ąI /֖b&n`78l+R1B"בtqhZSU=JToq:v^J8lI4ڠW`HJE$+@RB%p$$=iAs$CәiD[fF\1A@1/L-Y)Het_km{7=S~ endstream endobj 59 0 obj << /BBox [ 0 0 65.262513499 70.642257063 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 318 >> stream xuRAN1 pLv$$/*EjUI(뤂6FA;팀JH3JIa98>atz/@ŵ?C#ykϽA]c f9H?`L ̥fSHERJRSrUE<.Ĕ"6(bNfCAYC+: U "I4Aؗ DMQ d/'_,I%i)ҍV2M>/ m`LϠxnͭi rCC=߰ endstream endobj 60 0 obj << /BBox [ 0 0 70.642257063 70.642257063 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 199 >> stream xmM sٸO)LL\Oش5iSu%P , Cf=r<;GJ3%.;72=޺~ <9##p-31V3Vie\ҢbSYlZ(R3NgJTB6DsVIC*MWƪ݀t=uE endstream endobj 61 0 obj << /BBox [ 0 0 65.262498297 70.642257063 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 288 >> stream xmRAN1 pL۱$$R"mUqKͪ=*;g<ɰ %1!RN`>@mW|'#1$0q)]4Ik VYDaZr*RFF)DL_ȩtQA, wM.UoNqP=,cY*qu#7u` KD3$G9[]SERHҙ@Rض#"&e0\!@N`y\po}5?y;˺ٿ/?" endstream endobj 62 0 obj << /Filter /FlateDecode /Length 1548 >> stream xڭYn6 ) d "iQ(%Qgw0v,KH~$E)v{On8z&&]/P$D ޿N?[kAC<^ O'3syczE]0 =[8-<׆w߸ rr{Wye*Bc+A~n?u ;֤|q23,*{zX 𑱪 Ԟ(W@ 1!|M`N! "`0"^$8o.nѫ)눯`yеQ[m>$\ qe@gXj_?hM}Iŧ u.Ե9 ¬cY \U[t[f-Hw,Q1 TP%u]@=fC_걒<;S^ Ykd'd[V߸"qU2[f6gOEe^U^+^pĿb͂&KD|{c34J*~Uy5z9ǩ`tu(#mQ%lbQGo ƕEsW_-̊ʤx.rfgq1ʠxF N=JA) ^] x/پ< N3ǹL Kߥ\uk]pu sl<]EW<7-.cE8KS|aݗ꬞}u_{]^g'& 8 CVkT'!i!\[JM 4(퓜oXeK@C4ydCѺAg1sR㿿7=#V3v# Ttd܎Z58 .dz$GwZq1In!5  | olA?TG }ťum+G cjkFc5}, ug.⶞gu֩NU9/SQZ+6kPBndE΀\ 8bPwY9='wvxb{$VZ^v ORȆ9Vr&I 27tvpcK.]MRg>$ F09-z@94|%n!.]99) ct ù,AGFt! = :{$7b|.CM. VS~z1-,˧I%&tJQ~UL ?O>VYV.q#}{8;!?[K]42R,#Tn[e=,I'r > stream xڕN0D ݵޕR W8W& QV;xgF6u8Ma$ρɣDZԚK14}Gf  TЀGpzHە R)rm2"W3Oͻ&m!ϊp,vLʦ(%}e\b߲^zq[% 97"(i-+wg\Sܪky/4~,t endstream endobj 66 0 obj << /BBox [ 0 0 64.521897863 64.911960398 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 351 >> stream xڕN0 y _86rl'N8rAB<iڦ1>NۅU}VVp}0yJXeSUX _:֛[x[6{9;`(h>8$SoWw.R(Rw|@kun /{n /V{6QK1%4*YUU%c/0iatDtE( ';T)Xq4M;^ b&g&Bq< ֧F%L}hK|cK[0Tњl+@03\UDa?j!aMغpyiŮ endstream endobj 67 0 obj << /BBox [ 0 0 64.521897863 64.911960398 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 2 0 R /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 352 >> stream xڕN0 y _86rl'9rAB< m^`h*r9 ܆_L Pl`yX@m܄}nc${~.`$1,B)Q ń(AYN׻SHw<]> stream xڵێ1 ґ$ Oe]DWrI5#!IV'?sU+|0, m“Qf7\߾>=_ ok KY*||4d9 dKdT'@ښEPKr)Ua۹$A.IDm)"D!؂u^ q_p$ܟK-4ɴB+vρv-m9<8Aw>`-QPs]p 8 l4gj 9]W%9g#5qM9YUKT٪e7œ|LP}EO sv&TpO@aG*R8)E ;)Ĕ"SbJR񤮪7-yG\NK>\T]ȓ9q* r0é:O.u4uZ%9qĎd#8j $HxbIQŽ}*Jر}[ GQ endstream endobj 69 0 obj << /Filter /FlateDecode /Length 1253 >> stream xXˎ,5 WbC}hvw5B Ijzq5ԕ}dNN`O佋""F?&1>b( ,2$,c~uzQC0 =[8{,ظ rr[ī/2nJ@gt)Ę"&ht{Ss23,*{zX 𑱪 >YFbdC 3,l 0|~/7Hd :ёҘ T 5[``dr)ĕY/n. <\Oz[B){Wsei}& c$ @\ṅE5jK#\E9V{nDͣ*AmSkWabZAhε֐/)RhN dPjʉJҐY(J 1ˬβꃃ˫GMeơ5D2yI)iYn:ژnWТi'ɉJ-Z38@`Jq40YTBiC|&9cъ!:}-_[)yJbuFw6[_-otl)awA+ڝ-_JR>zɱq/wR 7ţwg$bUh"*>|‰1g5Ϙޅw~z.s1> zai Fq7aذgV?ށZv1viͮն~#Gn{h.WhZ)6 endstream endobj 71 0 obj << /Filter /FlateDecode /Length 245 >> stream xڕN0D ݵޕR W8W& QV;xgF6u8a$ρɣDZԚK14Gf  TЀGpzHە R)rm2"0O)UG> stream x͎(=E/ZZii/1`$EugfԊTE\?p?⃵+b^3Hy˿߄G1X|>.!2o^X&Lk\ cBX@ j'> CۡԢhg.-]"~\ %zMXR~*_bV[$W/ 1KH$[ud$2"1G䣘$ )mR~7q.hbFu8dz۪_a&ԡhtL$|orټ4tFgѷnƓ)uW5p#=927C?jfRۈ F̕fK1iAFH"c$1QbSs;PU!1V5&)j k5z ua *>Ik< Ψn:diT4'C|5`:,\/fn}`XR૎=jx6-uڭ~Q>I~R.AykFbd)%l?@*2(EF ʐ<Ӫ߯O8ģH " !W*hF5Ng9,EJSߐ~8vHsVD%ƍZpVb-)Y| f*g%Ҕ‰*:W׹ihoWpcVto m&[E/at@:f6sz8Fjh EU,!jS5y2c괙g,.VlP{vܽxJ& rNFE=۳<,tyXAUMSgnxLC|£!f@6 nTV( PZbEcZ#e=YVRO(kmH@[эY,wF_iF4_4YDFԾLf0@OAE{s1*a7LlFaHm!^}GyFLȁHv;v4d>(pŧgk|Ժ_JޘdoWjAԚcC* ef+,񄖭_bV%dK~Bn(D!n1}x>ԉ 쐻ĕx3,~GJyX5Ù`y\F-qekzbNuuV-c!Ԛ% iP?F(U6((ŧm^w)S. XVD,N ;YG^tSCV g!,:?8PTR]F& YDI5sʺ< l kP+ ן%I*?acau:^$pubqlL&g[2Z O [8Vf_w9~*g>DT۫6=$b`o/x1 XNWO6k@=r>ZAshG{cg?X7;1doT 4xEl1躢`R6]y^Zw˳)K_dnmCffE3<33vV6?nO錔._œt@ZNnlDfzagYVVׯr~kkrhĖ5uN=yʵ[_凌;ح?)\i@zO NR$Kw *򵼏Nmc^CZ+<9AziLcY?_/m^̈a`ԣFH0mL0n[b1sK\f$2m;$4ph0n7c·9uzqan79(~dg*j外t=Q1x #vj3}3 -΢˂cfv0hqRF$RNR-%KxReļ8u<4e H$CI a29B5rSleĜf hNSƀtgzՉ1ɦps`k=d@dV$'(*ɪ%otZʁ3 i:n*橛|Sc3s^9{D6,2?FiLG٩N}O!NXiYJRiFp'.u{DlҘ#z,;NXk?@su:vSB'vh[e9s*gɛXɾ)%kC-%0/~GX7} }ҙV\Đ(ܼud$F$׺.[Ö 4Aif#4w0K;vv~ɛ좻گ#XzֻΫb7MPXtN(;\*x1?5Uۇ:}RWϸ2qk)xyt|DG4e̓^{^nƫY7y5ې6l^gp'Vޞ5O62[թǜG?G"~K%~౬2*R?\3)Ww> stream x\͎#7S?hv 1b^PU-v: *R$?Rjy$OqO O!*Oп%&sFxޤ@ҥt,].OWL?VJ4Cg-Eh<#lI5۫/qF=>TW^ IY ׮h ?EJe\YeHrgt&*shu }Q\*G&+D&3L{gҍ$}eۛS60`ytn_0/nܽkN ㄏ9᥺9OXCI,W2R.`[=X$Uz&NC璪ؐPx\cB7τiK!QAPdYݻD))\#خoIˊBfS棌ᚖ}ܓfnP/h'M/E9QFFW97nF6K)#Ⲭ͒,Y;7IšZ@A^]eCJ#>I[!;kW=ʒ2&\}fNMb&ӈLZJD\M_~ck, €L čҡpw0`0',9@8i~Ѐ tV 1i@F|19%$& ^I5RD mx )ݍ-aSgGvƒR9-w78WbV1@m5 ycL=M'~k6my^ vP:DJYf> stream xڵW- S lliNRUnU&LI"K|1~~iX  #]@z\c*mrI4dm;g"RL4Pr"*1U-w^ 6: mZ;Sy[FrcC=2K0"0[Dz{"tghjǪ'_KȥŚ-9NDd!q_V3MqT<{eIehN]̵y! Veew$`E6ڽ2Hb vUQJp%7Piu?kɛ޸`-7t, uMg؜wQd5-B1-n*&!tq ܭ\ C(cIP6yx'g ,*mxx`t`Il}uk$I9 BXȑD?Cdީ{]87c`t$qVyMt H9]s~'N"qwI%7gN+jTt@jUnZՠ!aOo.I" fz.KR)2Ƀ|l]=*UKIz {Jp>2*AHmOx%Z]_*tS);WQK[ڗ2csڧH}+R)r( Կe\ԊMjZ+k?(HyYڹ"\vv-T*O~uʦٷ`7Pdw4/Xӊp,H%Fy}ۂl}Xl=0ir[ Ǜ tmmӔ1Kpm/b#wn@m~Gy}Xxoݱy|zڛi,>n6hM+n뮏6(A"6 endstream endobj 80 0 obj << /Filter /FlateDecode /Length 244 >> stream xڕN0D ݵޕR W8W& QV;xgF6u8Ln$ρɣDZԚK14}Gf  TЀ{pxHە R)rm2"2kn]Rȫ]r[{kVxG0nWΤl{xi綤,Kl[_/ײޟWm$!!s+-JZKfiZޓ8 ={ endstream endobj 82 0 obj << /Filter /FlateDecode /Length 1310 >> stream xY͎7 S TD ػv6^r<=6]{%g@؉O$'Nߧ8}}}rI9~! Ŝ&U X"[lKl%[j+*6_^40z 8iJ1pmrB~XvHQXe 9z_`V{|2!.A,' b&',1l5l89}+ )0"`D`&"o`P{(".s( n|G:%Ldjw# R1K~P d5)bIgTovO/>?|7f:v &(zYgߝW6VEƗ5p![?|sP̈́3s#x88*aז-_˖s\gQh)7;g*. >9`dg]L$76'::D!(g@:()TB-1 j^*v7*#=U԰XX>`|(:C(%H%HJ @3R+vqU9n:ef!cB4o*'AV^̉JTlWkp>İVj7A.NYKb*{.,Q55R /YWV <eM6I[sY4bШל69Dc"^b lHo3g0*Q!;%X`w)hz4eY#%ԡvju*mV:xD:q>rhK{済\PbQxz[U6o׏&vٖ\21> stream xڕN0 }ĉ-!V$ν!p|]$m~&r?J8}%Nq&4Lf'T"֌\;?2`#oWR&ReE,e\XgSB^z>wk/w)m!//eە3),k^ڥ-O %-Y׋l˪99da=N0nܝqMqj=׷;z endstream endobj 86 0 obj << /Filter /FlateDecode /Length 1483 >> stream xڽYˎ6 WJ$)e1U7E)ztB1-u(J#~y?~~¤>X== kvr(5}5~R*@C@hxƍ|c oNV ʄCvbup!P`^[xxFYێϠAg&+ZzK >3=_KOZ/V C.[jh n/XvF۪}RR@T ļ2h gLjmW)lR~78m ʪ@0Ô^,1+Y"eK0bZ3M#@A;E ~\MWi+9P%OA6&oLIQuLXuqVTcpR*#wҼ ߗ ,]9l͐Ӣm'ʿxWV Ce$ Rp(@#`a`[ ų,V5s9!~4떊 u:/,W5w买:UߘVZ33KJRv9fk2œ8k](R'M6˙G}_3>ӡ: 1CP KJ7 VNzS2E9AYJ|IЭw g6| Iڼ8'޷D'KtY޶חsNTS:).gW',Z9**lPX?e*"X²RLbԗ'ZeO%uuԙǴkV{гBPG\CI!A kiMttPBթvDID~]d&دy;T bM6jՐG%(q\R޻mncQ{o5 XM;[;@lAb0lD:n!| Y-~!:=7Vx`UFJ;;h;C);5o\p9;C)Y;(e ;v]+[[!pl~8C0F`84n( zoZv]=ūRcOuNVc z W7B_~>+cgR^W:)VoFHi$x#wK S[}ge> stream xڕN0D ݵޕR W8W& QV;xgF6u8Ma$ρɣDZԚK14}Gf  TЀGpzHە R)rm2"W3Oͻ&m!ϊp,vLʦ(%}e\b߲^zq[% 97"(i-+wg\Sܪky/4~?| endstream endobj 93 0 obj << /Filter /FlateDecode /Length 3325 /Subtype /CIDFontType0C >> stream xuW XWf%FeHg+4% bZ|@kq(",*+KKACoEi3{vwKnf.9{?H(KKJ"Y|v?gm؎MSEmh\# }/X ,);tL(-6,,ceVc)J8|RE [̡6+08Z5m'YdY{ 畽9 mcԆ0ư]|KBYPRʒ)b)+j5d0JN FP#)l)FQ1RSvXʞG@M$y9R:DuH&K*,<,iR?L;cY9[ݐC[[[bLmȺ`hbC߄mK}^e }j2%b%8J#Jpf Zlax4&;|ʷ$ [& nK++J0i FM!+ao-=H>J/+4*գN4?@|UT -\ `z ݫOcYm\NJڂj['><+׉ n6%}3܆?5\ds8{ F\^~u,`rT0dʗAOTw@',r~Ȫp˥7[Ή/dOUtvGb%_$f ew{e񁮼tPʂR:˃_?87&}q{Tݜ9wۇS{;L\ PX!*DHc+/k1kX.*[$A#8EsLȊJ`[W6d&7fwz{ "q^Urr'Q> %N ]pδ $qM{X[Y'}z'iƣkX  gه{R]G xN}#phETI⻲2cpla%to r^WiofYT/[^ {͜l&\cj˳nfExKK Em}70{|1lg&>}\3D)(䒻 o&ܢ`ӇtkhT3(ט/QOw\{F,)wPNNxtSO]D`]YP  X4'nRY^(SЕ%D; Z7R}[3zГ^4zE`6nm=C=b;/|CvT{э:`\wMgtP7G٧5y >]wBr"++.VC9Nšq1:u5%|Nm9oQ=@ QN*a-e,$%姅cDq7FI`?-۳mgUVu+˶7yeB7yPrIjLi20=LNj6RiJF2P!We~r00 0Ć쏤דt <]rW  0{.Hv_p^!oFMPx^@rŗ%n$)pΜWm ڴA[|"n6LO-)͊^{x'OMb2]n•8A3}Äi  rfu#x!=]U ?2@"ݫՃLx JQFR=Aq-lK'}*2ju |Hi]+&w``0GopBɝJFrZ,:bY뜠c>&1^sf›5i"\UpF!@ 5]ˈA_VĽVoe5N'5 \"Z୔)`RBENO9Bf SDA08,(6 pE&{~a}3d8N߻^I; endstream endobj 94 0 obj << /Filter /FlateDecode /Length 519 >> stream xڍS0+F`ªRCݬtf՞ 6ZcS_롟_(&MVB؞yy䙷m+P)1{>6Z҂}>*=~yΎ/ٜx`FmY`hK.t&2QaYXT$?;^aL!4Rl> Da8S}S9@uXe`8=ωW$oGu ?%4olU=E`jHA+*O%' tu=U!qZp!砙 ,Ap)U'4(S;W,B`VR4XQ.K*0**N ġ^q cq)4au = ׌{Z]Cy֊'oZcX9LJl7`#GHD쌥v6 HGq!m389S8Ws.pI3Bڜh w`!"΀9-}]:ڿ{k:g8xi& endstream endobj 96 0 obj << /Filter /FlateDecode /Length 539 >> stream xڅ]k@g/ zIbJ݀NBa;3.Ҁys<ÏbѧOU*SmSvfEv:*ݼ+%lOZVER u,y3TgTiZl՗|J_^:y[7)m:o1;&d:/ G͋h)N;~.ײvikd5M=6\7]/CkTgӣG%MzO{Te$F#N(R }sTR};T9ߝDsyM[HULUf *-oצP1dTTCN%TT 5@T JPOA=#q6 n5ENl3vΡ&P (T> |1 Cg|(g 1H/,fṖ KqS_Ko |QV ޮv);Uow͵ײ&c?=V},F endstream endobj 100 0 obj << /Filter /FlateDecode /Length 4062 /Subtype /CIDFontType0C >> stream xuX X֞ B(PDŪ"VA"*.hUPQ"T\Ѡ ܺB y$o9y!$'^|ڶ,j%4%I$ڗJ]!.k0U^v!_Е۽M-Q,D{{oɾ4%DP#jRR3W>BS0\! @h:; *\w#ҹ="x%Q%9J ?:0}d3C94+-J륾 .qR&+3 ƇX1JA QvM]7ue%V)$HT qT+Q2K5 KIѱݟ)%}4Y ۶F+]Jpּ.Pa3צv "4uyv HQS(axWz:p[Gp2OQ]wi(//%$6Y5,R .>!ԝ"QX/Xr`Aee/@Ti,YdA#0[$VC70Iv `"\Uiq-}!b908N3'^鑁wHijgb nhvYJQ5=عA34x5p&0xŠG'e寉޲94Bſx]jf[) af_W})ُGŴNl"L+T_ʔ7Gf5LobU5?֝lz+jj82gx@,J+qUU lBF+"v%v$q*L܍K@s8cKnI@y6,ό)՗fg7sQ`(zsXY̩eyx\&oЌGI$$;Q  Q,飀ʥ|0doSq3mȽPՔ[y#~<B1vSܚhT`7m|`tO5#g]V>Rd`'@5`F~/i4azEJi|P^SVkE-Ab"vt]s)QW;<^5d%)p^_HXIk UegZeZ\67c>Y+C]Z!,6KAΰ1٨ E $S{h8o-j&!s_kSSEÔib"͵]bzCREU'` $.V%"Zkj?e^B nL~Eb9r""0Z"G͗9#]A:QZ8 W7$}ecA ܨjna{0Ctt;He phE f,hKaw̐.2&57;p[Qw: ,&b"orOzhH_V/GBZϯ{Ĵc(+өHs!T 隋s=S5?%ƉF1wr&9ޝD&ً ~mcGօB`. 0o'N!Ov, Yi%ACQpJ Zh ɥ>~]Xw~ W_A &!ϳ 4BjBTݔ-6.F(*هgJYU}⣿P J&P_kfA5/){G DŽ͐+cw1\0Ё#dF=S&')B3B1+I5|>JCm2QQT3+ivv6;N<8G&(qh4-) ZՀFS>uM>xK~Ti>y}R3@JNa|=+58'fUYXe6r4nVXp`@ØFܲ5xx,cB,LcmSqR 0}qL1GvRAD;_ GF D*$U;_p>8S䞹Rfe:8h@*E%\qe'`߂S`zzj(Q2KJrKq'N|%g~M_9f 6h)K:髯wg0>+c¢[+Gټ76sxd I/ X5岹t'eR歾̝]hk;ŮVch2j,ba*hS25s+فuO{߃X6> fP+1?fV'hޓh'˴P$$#_P|vw/s;A@xBbJ[2o]}.{ތY=~@߮\1 +fh. ʻ TL P|Y U(BPd}rC\nd*>2.$\Ur՜Zَrk#;q K;,) SɋYL,ˤPtL~AգO<*MWJ3:tDlf2> stream xڍSn0}W\դ6UJɺ5l%X56M = ĤMI{9^MW de"?0x?>u}>(<燗|F `]UWht:PapYXT֟4m[lQE1{aH7Sq:sjä{&lLyNEwRsY6LkܞF 2F~~pʱ۠b<89˧ߏ_;4^miQ`k-}^NdR´D! LyXc^a|O}ʐadeo@L nk_3>,qrw(/b")Hn*Z Jp>-FPԳ+ദߧv-vv.琺\ 'ʡ^dù Ct:t-9g\^ ts`վ"ez endstream endobj 103 0 obj << /Filter /FlateDecode /Length 606 >> stream xuы@+M!FPNN)m4Ym@7!P|wM\@|3;>|Yo4zCWL0zE\oZ:m !TШ |C '89*!A͑AERK(BM 5(K('fPSLOVOA/@/|!_8_Ƚoy `$O!&磦_%B1Vw >+/`'f\|>+y8ӕOc'b Q_1[s@ ǥA3Mɥ,An攺}eܞ5Y{: l endstream endobj 105 0 obj << /BBox [ 0 0 63.574370768 63.915696388 ] /Filter /FlateDecode /FormType 1 /Length 349 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Subtype /Form /Type /XObject >> stream xڕN0 y _86rı9rAB<Z1>'EEUj:-B .!@ H KPN6o \˶w7po7zJӵǍ3|^L"ۘMUj ,R;x2k>돞=kĆXuJ>H˱dQ@ωYū"L@>I.+`cT=GFZcana8 @cC>&nRrUP~징f6u9T*DѤ`H1sZpŅ]L VlK@ib0y55-.>>w{2[r8|;<,u<B endstream endobj 106 0 obj << /BBox [ 0 0 63.574370768 63.915696388 ] /Filter /FlateDecode /FormType 1 /Length 348 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Subtype /Form /Type /XObject >> stream xڕN0 y _86rq8rAB<Z1>N?BanZw­qEpMD 2\Aw|lW@n{>[G%!w-Ӕ(>?ُL"ۘUse2[SmIy?j=V,yRαGҵSh90W(H@6HN fhOc/\hf -@jx=0"bL?S$Ő#{mEe9<%3%^SRp3YkqauuJTLE=Q'HA%+\F endstream endobj 107 0 obj << /BBox [ 0 0 62.421315574 62.148261159 ] /Filter /FlateDecode /FormType 1 /Length 504 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Subtype /Form /Type /XObject >> stream xڵAn1 E:7]r@J#Q " Z7pRA.rP1F6lД_zLp/!R5"90Ngu||r^p k%o& \Jd4*hQӷ Ҕ%ԪRs'  t+`-<8\nizI^w> stream xڕMo0uHU$Ro@nUO Bp3^;.ͮab[}y' `݇:8/0G4EÒR _  N'~"EFQ5_|W&l*cm؛i?1[l/(@(Ph"sp#:!K(tN(ŹeUpp>E]zNǶ4+)EJIdpzn=v}"bH_+dAOL KqhB\BJH^9c}9{/@Qi5a]7Y-_Z4br4 uf"o &UHZ#F+PrNAhn&,l IrSY;Ct"s<҅x-ma _Z|UZ)7OzOoWki_n endstream endobj 115 0 obj << /Filter /FlateDecode /Length 2548 >> stream x[n) 9v|qfWtuvӃ;Hi>J"Y?᷃< o>I1'O%@g)%|(>4ć|qGVn*-As0R( k]|y/j5xLҮ،Jh$m@V8睶Y '-VZPPk9(_F b~Ym@D`!R#@pn)$BaV!{"RzZafѤ0`#pdw_&BJ]R]pLWt?L;)틵gF,&c9It MtcJ^at;[iGsa1݇).\yy[?Yg\l?jٻ:2x?::%A]Lj䙈+IVԨ?U/ *K56_SZ;Z$-=#IHWzq_әiD}_+cӜ*}=F\9ɶXcB3EI:2. &>H% aDGV }^jE"6ᘊK z lSJ3=J`ah9Mj9i9͈b]l. Tti 񌴔N, Ӂg1=XaJ(8̿ĩ5yrISN~:@s^Rhh`>ɶC2teJ %=_{LHT9Gopo)uO,u!FZ! sb!~%o0џtRe*zAF{t |I'%P&T,5(cCegpLO\+_p?gQ!]]?̗~0?=͌5~R&EELʸ 6ŘTQ bFX+ĤrN_'P!NV(9z*LqJϔ/MRrP+ugth PQuۚs,#E\X2."}~I_*Qcմk>K+ӕ%%8ݟUyzIKˑtW>da΢LLs lXH Ee%-&=k+-U$'zX ,"Փt 9 7D=3sRg V9Jw铚ڒ饜سo!N`UwՎU{]{k6E4hwsQm_ z;UtO)^ӾB闝٣jjJĿ]33mf3{5CxkJme +Cb;'Y= u5`j7nnC&e%ee^ ,Ǔcq`1pjySv) X -( D ŪZC(88QVAAu.uZuhezQ 'dž:FmwTE豛祧yd7Of5=A}їy%4 0(jIj&"WsNox8ӭ-c5m-W?xCy`j9q C1op?[ecaxGx (ᭂzso D O]z|8wN”*̖iЈ#DWm^B^9w6Bo(EyYgQ6 06zN x72e11N1U2[}1QPf)#(<=Cc9z8jmbH\ q/w$^> stream xڭVMo133)Z) )ܢZ )ڀ{#OZ oS9Vd_']EK xڱX5zRY1(\6m_3'<7d$W M$ZUMPIJ2j@#(D-ЄMC8[2: [Ӯ!JG萇Pe[mZ wIYBSjt/]4]m0zNԤ84xH53EnӺc{c5M6Áۦe7ӑ I>C!3}JL!>s3s g8' ׽39)#4}79gNDo$xKg'7eǤO,3KwJ endstream endobj 122 0 obj << /Filter /FlateDecode /Length 2808 >> stream x\͎S*$s[)AASHRіݢY R[U,᷃< &*O$&sFxᗟ@ҡt:,OGHۯ?VJ4 _:A o2wuqݗ8wN5|w( f'^iZt໌״UC^qjF?J|hu {R\UVSeZeS$2ġZ4ꏙH[' PNk0HlRSRwxw_PՋI+NbVdpżϙL %pޙƅbr E"xXl0t"X,INʌGţ# R/MΙtAg 霬念HZKph %U>9$dPh!$eHA[#["4 F-[ hq%mʖ>Kp%CetζϮ- ɘ3+>[-G<4q Сf^b:zhN|͙tЌA.tлQ{h.'xhVG<5 @NoC j,.:˻:XɌ cU)J-!g$1^(4ҵސ k[c|v X.xptpI>!\ I3es^-ĥ\d-oOoISL6nY+ >*cE@C3,+))?gW $-:ں1oG97crM=aLzuT=Eg;TLR_trJ<~v4Z'Ή@;_ՖqpsZs* YΒ Qx\}BHH^wT%iKN"7Yﭙ*x%rܴ~ @VoK,b=O.T=׃y(%c7W2#2yk {O"cC5Uդ) OGNgkn%X.ߍ͞Mw28JP8o}%]Ūh?8P6lN}r(\P;D*J7WJQ?E& D=5 ȇHM?HN2)%'DRյw7lW?5|L,urk$9xTXřqR &vȚmAń }%42MOD5lVHF֨ KQ#QKsԐ'S~gKf~8RXf:?M˔l:|6e'3'UdKc|4.9VQI o=[7gol.+/poƹz+Ѷ<L))m.{cj>R|0Ne[|oO9,ۥ윙tG٢CUӧU)|@U5azwOZ Cis⏤ғmHvV$ITTyrQ̞*kl+&jCa7Bu:qΜ N]i"WV-{^L5̣9>k|X 8)KM&-%xY]p˘c/0hs&05Wvë !68L/6c/АleVPI2,"G̛ DMdZ"xTRB B:y:8%q5j"O_tZc#7}9|$:,^&Jo@4ZnTO24S9R\lX~%)5KWyPT+c'O*(x1>_g/a)4S|u$-OlƓv}yM_"2\DmQH(>q7c,'ß龌|﷿п'G SJA-@'o[tTfdtȌ,ш!&2rZ̓d_]2UV2eU44^x<)}CHF+kՂcFJQl~j2T:i]DT !e%mjU#) endstream endobj 126 0 obj << /BBox [ 0 0 63.170368199 63.170368199 ] /Filter /FlateDecode /FormType 1 /Length 198 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Subtype /Form /Type /XObject >> stream xm }^nE>w4 endstream endobj 128 0 obj << /BBox [ 0 0 210.330645 297.637795 ] /Filter /FlateDecode /FormType 1 /Length 990 /Resources 127 0 R /Subtype /Form /Type /XObject >> stream xڵXn6)/8n}[E{iP~%ycFAe[|qh?V_w>` ; se__:lY7^E/m8U" yp}:8$t?vLhg~Q`"Sw|}^z|rB8~_8R\$#)hJdN@4LI;3Gx_/~r;x$/roPZ)(DSOPòoUb% m^ )dSkP8_ LsAX#u',I[-,ŁOR慨N#QbȐXKQmKq7AXwЌ@-:Z$cқ}` 9R3ݨs~574se+bJgZQA?^}WHl6*Fh3E;'@Wp  򚁌X<%8J:i`f fzs/Va&o٤@=-`JB>w^dzCLټUvطHrshtDȷr⫣ |p]ג+m-["9Ơ3[laŚ؋*h59m RSUUe 5 MEۦ [|u4 o/ %}\&bQ+I9|$1:@iڅ0S6hQP>}_۪%.^"d V mS"L4V\ endstream endobj 131 0 obj << /Filter /FlateDecode /Length 2534 >> stream xˎ>_XU|dnO K}%R{B-Փ`OL| N>qf//H+V[=oO_9@%t)4].K녮L\EYzҜ k\tf|יs!rx덮GmЌITҨIfd(ߴ6=-"S@'Rw1+`H^f 9-f1@dC&#@gD]C2"$ᒷڹE$0~c# oDJRVQ AH2(w2 N;פWgHp3R)r"T!YxM U mzަuU: :TH1Ȥdp?X$p;GPoC4_?{iq@sLD% MF}) [>H)}w4Ao"jow8HOGa[ѩ'uv}+"aȪ^|KxI~EB/L)o $g(h{vy"JwH$C6@I CEG_xSTR4mAZsPU ;ё)WZ΃X,MQc^Cv\ēY4A<)EOK8'Dx2uXvA< XA<'\β5!_H%}ʂȉ V_j-0~<}u%J4K!ZZ)${{+ -nQTeHp]#h]DSN%ɾ} i8vE9PL9fAv8SXI 2t*i CXth_ L&Rįԓ\ObzߛJ*T4*D%L8O7hJ t>?J"]4۝t8q8t$$mtuPtPBRQRFjE4HB)NxpU<9 ovс;G=ػ3A5i*͍18UḳYrG>Fnqt($Pms/mEk|u`uksM.2+*)i:jwT-Ĕ֍ݽ#AvwCvDklw e?d 迈U6t5]Ħq́3ly\B+$Idk-}`$eW-q toJfժ n#<*=i_p9I*&8PyݪqB̀nq= 瀯Gt]~KHq?fFҴQVq &wr!{E^wAiS/Oy-;`9F$51S>![FjHOYi!G*BNNN }}CtܬƘjAmr{!&OmJ>_$H_*3s?UI&<Š/qqܭи3Mr $cF8s2Tu>y)#WF2!-돛.*x}p_Q Uf\UlKPis\ӺykB+xXM{ EAX$+Ay-g蹷2+ϺyŤ_U=R{6l3 V48s#cPTS5c([ k פy=Iӟ?P*P}ptPG% ^l\1 $vN\3J^Wj[!(Ʋz^2vNsKcXڪg#H 1ZNHI!W*6YUM7/ob:ׂO(igZ]?JGo CO-0pUD ""LGY+C`x!Nn2/Կ,žl628.tևt}>Iϼ}Z V7 ;}6`nf%XJbΉwV$x kPJȔDv>jhǵ/J?1.c߹F?%6v;EVM7 Qa}:H-ļq9ٜE#f endstream endobj 136 0 obj << /BBox [ 0 0 210.330645 297.637795 ] /Filter /FlateDecode /FormType 1 /Length 1490 /Resources 135 0 R /Subtype /Form /Type /XObject >> stream xڵM6fH0xȭނZgheG XFyD쥉&;//vv~c% ~rM?v_?牌)NߏGl 1f}~9_2FS9ӗg-I;2so\kr6}ȺꉨlAimzuݹn"1u7VrNY ;E 0=i~= ^+s)zw>;ٻrvL彍e7u+nqGՏhsJ|.ΤCyq޸a༻ژ.7k|5Z?ea崮=U8DIr\EV?qQ;֫Qp9Es6Tkjulr(k=tZ*Wd&&>|Lɡ֠#a&BIpaGCDc;Ϭ#@ Ȣ֠#dK[iC :%ֵ٢֤#IX=d->Y643sb!6xC"%o:HȺBLe͐ٿ{@tJM|vqF]nq*r!&A:.eU~ <YQ a礛!a孫6 ~jMRݵ,>9=kTƆ0jR@64*i#/ 5)ow 8d Dͺu,LFJfj+b9o BPmY!H!lIE]` ~6=G9De +CYΏ{k YĬ>X/ !-IK|2@tYt#B[xt(mO8#Ai{t(KbشF@DcJOA lۢ^(sֱc cEPlX!|X/g:~.Ɗ}:t8%}Gʗκ̺*=! $j\~G8kQ\&5BFuQ0 њt$-]O技m[#a5H5IOaU^}k- F6y81to!N7s֬CAD}B۹E T9lTX21fOreюwY,łxQGbuʎ;Ժ&ZTyYgՑۅнFݨ5BAZxl((`iM:B+NB_7YlZPQrhLˡ5B2ךu(Fe#"H`[u3l>EY9ȡlІ컿}+z~5Ih>0Tfd]fmk & .շ0LkґZcx^YlZ#PQrhd?)2Xk ĵfJ2 m"^K >,hWeAFfA稛 WC endstream endobj 138 0 obj << /Filter /FlateDecode /Length 3594 >> stream x]ɮݿ? 4 lӫl%J\e,P?׮"yd ~M珿}7~V)[䬬[`wx^W+uǿ~ *hl| Z9o /ͩ/wƫl 2n\~W~s&_|W;JZY ; J)'2UgvBm1j~ N0)z-<†jhݭ.*l7*85}ɬ 9UL}FbkG%*[{4{䰆['չN\zc-oLmܘfiB /-ט- pULJSg! *&A̙"k-\db%9q퍂:ك4)Ġ.+k*bzo4P1蘹oσZ8pD{`RL2_ӳUyְ=Y,j Cn5lćŬQssPm{9تa&5YM Ņa'M76 30+Qû{QaOy856FpX(GXJ~;D~#e>m6~2+E$i,.ntkKE z>9+}sZ9rPxQͫbC3'DkՎăFOd铼&`4Ҵ1F y#MA4 %ĐBfGue,dW&D] ƭ`5[0Xlq獃ziD>=46%1{f=*GAX|f%zGg3{TAf1sd셔EM'.AP7A8>j "Pv"0#Ml`Z>qdCc+VC0ְFeO8 Gي;vwuJEn[N. @mTT޿Sl8;qJS5u e."6e|t}A.'\ in6cTpdqLM)xxx:O[OmQ|`͠3z |kR?װ3|UhfzZ L!VE:g L`4@wƺ?W)d2IP^l)U !hnN̤ BZ3gi-MV9PFGNt2ZAIPϳXPSB08![Và*u֋yyI1xEyN3 ŗ/U8 3qVV q`S֊@֊фIYLvڨ+ğ:+G ZxJU;2:Z-M#ِrŸQ`CpHA ƑUcLCūƞUcƞUcxؓjUcFKjIZ10W=GjԵBrĶc'䰵 W.WF FWMi\`|&%?lRsy)ӳ*8xH2cbIFW*3^B ͉tk߽wKxB:WN}gs0'i[1m!0C{Hʫja^5JjRc6٣ݠ7qr*,Dųiv[.{.L,-5wk~޸Kj#e">Lc$D) B3pXyZ*rEQ% X|BKk#`Gw;Z~!hcyG)jwڼ(c`3uWsnG!QRtloFIxf0ū[^QfU.<ۈ5 $ CԤj҆R/j7*{t $`GP;ZQEI.KMvקTMOoY4|b?I5*LsW_YfW\|Yj'ugg->E%Zhz= 66Os5Ab˭Նg%:.VaîzW^ 6VUL>Y~o D~{ګ [nn1EVϝ>Y;:4̒Eto77h endstream endobj 143 0 obj << /BBox [ 0 0 210.330645 297.637795 ] /Filter /FlateDecode /FormType 1 /Length 1736 /Resources 135 0 R /Subtype /Form /Type /XObject >> stream xZr6 )fIf3wfo涳vKsh/}#"A>Gd[|zB :Upu?~ď['v x_86o_oyRoMv3N)?Rq:JDcs㋔eݝ~vOp>{|З $%* T+M;z/8<^t/ K"Dk Ǒ>_x:qJIQDJFk;0^h,bgĻ<j:_Ps3`dqe6b(4DE7G sZũ8s3i4γ%}p^X>0QzC7O1(e[/#/C Y+aVazHXAaPjUH#?i՘ f"ƨS2-)[h> DΔXJ-#6HPf ӃE|64d*2܅PZ$Cщ*8*CeGaqixvzmiN0D=|ך@?Vg.,zi}Xvx3c? 7q=-qXȩh3C .qa}i C_&՞,dՇ)8O+̦]Xg SV@`:VYڲL䥠/q519[ q0vm6 7NomAP}\Lkjb~I|1ju۰{Gψ=HC'a.(Ϧܧ ,39²[k˷D]4:JOVh\hMA43ʃfLpA+y<)xg~(Qxx_rFkRّͷܗOYr.w|L8I{,'ȝܐ"ԓVj&bUoa%ױ"" @YQ/c6fTUOBd":C G+pN!#]Hʚ4`okXM@ F}X*KPhԏO SרxvYj2u*f,9jvM^ =!䬫}c%s&LU؞7h0TBqSaxxCE0\E@ h<ث',l%؛d>J ,FbEb`s((uhY{93WWV/ qkbڞ[mPʍueiلh_Uwwx85Eц80\;g{7p1= yG6AG^hV̮ј43-H9iA@;K#s(:p>MA$6c ڛj5Ͼ~CFl:_DJBH[J"׼A8V0yĵ &Coӊ Tؒ`{_Ύ&.H׉5%閆n yPo(Bq{,᳇ꩧO++@`~Ӈ:R[t`xn4k5h| ͏n )t bEtҋ&7^X!2pƇ'78( 78M,(|C0'zbd*|U=EymA?(7.Ǖg/ L&Kt"8[T endstream endobj 146 0 obj << /Filter /FlateDecode /Length 2394 >> stream x\Kϯ X,==ķ$s3|J_)QMk)`@{XVV z3h僵//سsFy`0||~(d #p2 g!F7+oV+b0!:pIK[w[@5œwH` HѰ3qYn镼KȒGeSzQ^ S²%ee +D a2ۇD[A jb"}xE@id#,-Z {$AXI,i߿p?I8~UnG2+o?' "gQ)&b68]5G߰ 33OJ'x-V#Y5 TV82q2knti9F$SڋSDtc2ַd|&)$E#?'g[-Ut}@e7r3.d 8=ONeT{zһ>qmxKm3L:yJ3^[+L_ '*f^9i'RT5suS6(^cDIiieqH@4=%Ez+,HT/1uTBج y2h둃y̼w.clX5ytc6-$l$\ ַ%CpJ,CS22;sa=QPZ0{ d$`X41<-SdȲm=vJc 9mѫuHKvtNIwd"޴\iɼomr`H*&n&%~ĽsLאC.ZXI;h)1fMKiHb䚁soRX#jo=G [+bl֓&Za#).":%~?jU\*n,(Xd[;nѡ'EMu6RyĢ7ת/&Q˘OZ5UrAu*5RvX2.X6|6e}B'`)h,3J)TJxrf/A!2@H?[S̪Cgm]cNiюs$\${9anz# (Q`MC z `dhsL!a4zgOLM<Yf,K=5[G~l{ s|!/?ֲBI {*cJ"]xVƦ t]iu#)AVL 8 n_$ fC ZōސFYDJ:dZ b<ki=,#v c=1kTDcd\NQSrN'&~>u7FLNTOEvΉ[;8]4b.gY4C `),y=UcLjSp"dbj&FڒƅslQĨq-z裤SܿOE31q'?wI;⥺u7h_+ zcE\‡(ZVu6:ɗh ;-7kՓovaFzV-;1j^s!ݨ|Xp __KbJ%fN׆7K%hDP ӂ캥]c"skcFg53_l8^?A%R^tA򻰽Ugffc/JltED>ǂb;aTEp7c&gj?n'nH=tݰ+'.x5z _ pKŽҿbrM@hhN ("ҹ%^rjvR9֒PG %x.PGͰjCecT` g. ꄫY:V0;s>ECMB0\%ͳgr5Cr=6wpf:~'LIzsA3.G9Rm0@M1{R`?h0- ?vEέ ,(o}<{w]]El|ݑ?jf6z}> stream x[n6)aU t݋mw} r d$~%QMM@c,U?~E۠=_q=֒ȿC 9+Oߴ ErX.+:u+@ V+2aGyyznm!rG&[|!\/r7mB(b޸ZpM&J+5d0 q-}&x%K= W*&HȽ.D%pt o2?FπqrwwCqA?:$/u>yOH_^`( ?ٺ $#_O.*+#S?,~GJ8cȧ߇m(yRt]Ĥ2|66h,Kf/[Un!JyXV2) yqcdLLk*bPSl>HyGp6>rXF g */[ك*ٓtg4I>O/S6 ỳNF +7FuMD-"$wJSJsq Nh4ژV_tڞš/ e=}Q"9e5(eSSzlCg^)ycnzW; +'qTSxǬoFQ9ok)©ψkj+0 u7j2s Z#5yJe_ϏfP!`N9PjdFiln%Zaބnfpq['$>DNgu(&PLAT|nG&m ; :~-b YkJ[9fP3|Gཊ/~cUMj+ef~q9ȤY^ K)A${-kgDGreq?\YKI}L ^ݧ&eGAκBt>'` ;|(u QTLOdC7uq"IIseˤ^>W[NѱW/keZ4}]@qкYwz5wŀR2)47Rr"b4uȩq*ԔqBߕ -m@ e9MeنW KJd@Ts~mctgt"p4iˇGZ͝FkȚk 10fH]gh 41mPM~T^9֌H+L{Zۨ d&rVφ23eٍ7Uĝ34hTVziq+ц "_q[u22xNWc㯲]ɸkUvFo.ȭJ5JF!|Q"؁kQ@۵]rWJ0+QJ0淮CƺXk|{ JR{Eh R*mme+ԟ5.}Yne9gMZtVM"aZ˶"uհU\6w|@~K½D>+xf):@Pm2*E2US}ݟN,,@I)2R5+ʶ aw oV(׭M6,cO뱇#M׭{ߑ˩ˊw"Ҧ:]`lyT*ئM'D٪]Q^Eא+r.ϹBtsPb!.B}!ة](%pҬE8ӠBWm.zJ|d2~dޅ&Mm$x-Eŭwe+D79II T+|2Ud /+L jn˜sH]v+|Nb/wײ +?:ޕHuGT@}aթ[ ɲq{i%dZARWCϐ~cp endstream endobj 150 0 obj << /BBox [ 0 0 210.330645 297.637795 ] /Filter /FlateDecode /FormType 1 /Length 257 /Resources 135 0 R /Subtype /Form /Type /XObject >> stream xڕN@E,CBpl"E@~Y0H)fG;.rx>/GKC#&lXϔB:ٮLG@/9)̎ 5OxqO8Qn!Mݣ!w>Ts.U\d/D'8#2" Ѹ|jQ]+.zTKeؔk=:)H5HT!62_g`6y׽]Ea]|hw,\y:Ԭa\?(tc endstream endobj 151 0 obj << /BBox [ 0 0 227.267452254 272.621164286 ] /Filter /FlateDecode /FormType 1 /Length 404 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Subtype /Form /Type /XObject >> stream xڕKN0EY' yzl bT@*0`ء&鱎]FQ1j.'ێjqEbxNgf4˃i'Nm5mjCt(ަIOˊ%A$srn샨 2 C H$U7xfDME[?H\ŧZǸ\YK:ѐuktx9I.HvlP$\S[(Cv ez,}-@x^3$R:o\0⢼ F\ts;wSgDL4Sv.qc HƱ82梳 lT6 Qdl|bS]] 벶ՠCf dW{qO endstream endobj 153 0 obj << /BBox [ 0 0 210.330645 297.637795 ] /Filter /FlateDecode /FormType 1 /Length 277 /Resources 152 0 R /Subtype /Form /Type /XObject >> stream xڕQN@ W#އ"Ѧ[.D.>$-9Feόe# |Y(}: 1a-|B~1=2c/Tf+=TrBලt&п:1GZ,"{E$B?!- 6g菦W]1jubU"KaTT2mʓ C4hSHCH)xv2+vke;#\7 n:׾_JQF._tB| endstream endobj 154 0 obj << /BBox [ 0 0 233.503542623 235.77126851 ] /Filter /FlateDecode /FormType 1 /Length 230 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Subtype /Form /Type /XObject >> stream xڅAN1 E97,;Nl.q(PT\ntJY$^~,H*L`5;w0>7+(6?:ψA_*&pѓ 5SVC9ewx T2haleiOcPyiOcWC.f'ڱ͐5_aMޞ(YۦM糢Zm3CM3ՇI͸⭙9KzFۏqW endstream endobj 156 0 obj << /BBox [ 0 0 210.330645 297.637795 ] /Filter /FlateDecode /FormType 1 /Length 283 /Resources 155 0 R /Subtype /Form /Type /XObject >> stream xڝJ0}yLޖ=)z^|}'Iw),c2$> |Zɋ棡#v% Os?i$E_eb uB7xl콶mu X\P$#0?2VrqdPD^t!95+\`'f_#2sEgDL;哯O!. z-*rR^yS,1mL[;`}+e"VHUcs&.&,Ps,Ez >- mR~h$7 endstream endobj 161 0 obj << /Filter /FlateDecode /Length 243 >> stream xUjAƿx !E΀pBB)2.i;pE 5KA-E @+;[rr:{*ov ޡrmGťtŜٔĘpD)ԺD(OTi*E^-pnH ϞfTwL@F97mY_ڠw>^'s 3 t&v{%8Zs,oZY޲N5 endstream endobj 162 0 obj << /Filter /FlateDecode /Length 2395 >> stream xڥXr}bUDJnRVY$h eǏ 0$'0@< 9=79d].tƼ⯢KC_'LzLoZ̿m=KVdKC/JR7-z uGc OMUn^n߾};]cuϫ:/`X9#QZT9h׳‹dI˾1l@o7d{GOu.LO#I'K{np6[oڊl)4w77lME+Oj-?*-y"Q)^ $VgXX|g>K]Gzo] SVw8xeRdVQpNLK(EpRb>[jE\QҕfZdebĭ)Q%"L*u-:,C5WRM ҷZi!h)bP0+ʋ62}%rr& vodd4 | 4tH5\cTu"G&De])yTн;W/UbVt+>(s`lB 4QN,Q))B$ 6 uMC^Xo@EJۺe9.;so2cE>/Q;6֒{F^ AaQoZjaҏ"wvi1~/Y0gr!10)w^6DzGAʫl'cW _74͚̀BUX4 $D-5.+KF>PjB^"I(Ѫju]%I>|!3,/>9 g7=w?cG/@n#y×|g!O9|p._@bfZQsc[xt?c1 y9| F8o /q_ț/Y8!7[2#Ʉ-ddrGo~K: Н8| }. VO)ޯX>fU Q]RjpqIb.:S>sna3K! 3 x^ ]&vi88 Ɍ}{^ޯ:}JO^{^EqUkOn쉓ޫi }h݃.bmw[a(R qWj0ym[2ή%bAw ]*~p;o{|E endstream endobj 164 0 obj << /Filter /FlateDecode /Length 358 >> stream xmRj0+@rp,=ch\ȃ8 ::Ē僡_ɵZ vgvgG<S+s'd(]VzFҺ@ VK8*IS0]'Dp=3D{СA+q>0=_L'}nP0QD̾ R,!BLM,(tr ps.4*0Nu-3.[(m*E"rVZ5Pqq@ɥuYjqamIC`Hap 矛_ÄpaUfU&n|dL$1D[>lU+Se-e]ghor#2 ׳}_u) endstream endobj 157 0 obj << /BBox [ 0 0 233.503542623 247.04626328 ] /Filter /FlateDecode /FormType 1 /Length 629 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Resources << /Font << /F3 158 0 R >> >> /Subtype /Form /Type /XObject >> stream xŗMo1p!HTC!hK("U[}f^/첻Ɏ2؝Πr7=~z{e|3ǦC^;3m ۟f7y 11|4$)XrW8AY:8 ph9!^n>h?b!v㱙rH^oꜶ_ =@"D4D2b V}IԴ@f"v>"D4D2b{ɽ'PxiI8}8DN"QU"Qa|o.qYO4Át EL~6t ʈ盻 < S endstream endobj 166 0 obj << /BBox [ 0 0 210.330645 297.637795 ] /Filter /FlateDecode /FormType 1 /Length 279 /Resources 165 0 R /Subtype /Form /Type /XObject >> stream xڝJ@E 8(Nn߷:!uq.: 'p{ݼ64/b(jP63ѯ\{ %+jؖ(h Pl*{v5$ؾ_ߝ6:l0ӲK$H~9".jص~ #{ %%3x^V` , RptTµq]J.Zy &5YE4gv5v̲kY^׺y]ǿb|,a endstream endobj 167 0 obj << /BBox [ 0 0 210.330645 297.637795 ] /Filter /FlateDecode /FormType 1 /Length 720 /Resources 135 0 R /Subtype /Form /Type /XObject >> stream xڵXn0 )#0h@or+zڰ]v돲$@܆-DEzG}rMP@=I sJ=>m<d;mG QW<g hWf}3H?:ZpsS Ysd@O:qW߇~`t* >bxԁ*> stream xڵTn[1 W!;@ނL-ڥڥ_qe)t $uCkzEŶ=9Stڍbt_O ?-&f@I#%ρ՝bAmͱwzZ^eԠiBǬӀ&r&G(A&ކ#6(:] )ݏ5q$Vl?>ua\gU| `WUYH溼K30f +?P0քL.HA/c]b=8Q1EGEԋm6v';QzL9E endstream endobj 169 0 obj << /Filter /FlateDecode /Length 3317 >> stream x]ˎ ޟ TE]$]gWtMQͦ&᜷Fw{;z뷴=,iH!ʸ-[F :FYT"hkdw1uGiw!@QgHV8ܖD*8|i5!_Iqΐ%m| ;v}P@L:wxPt4mכ$#滤^nQRj |T6S*$ @ѶQ (0q% rARf=ᛤ22PTz*ǠĀ3򻜅QFKww#Ĺ ժ] ĽVN(V|U@̘,=/5EgƠR)56ѝL9yvzBd EF6Чii$"ҌF$y3*AHT@ a*(Vۄ:Vyd fddeqs:b;-p'{?13h thU?-0/{{c$vb')8uG=MlNi8tLSXTpQzCJԴDQ0(ZSњ/$%ƴ"uҩh;`@QΆt! hcd8ۓ0MXx: <'{q5!&Ɵ5m&0&|@EI'ߊiMG P>$u;{(-Zh^|Jnj9.s?QkOYf1H"Ed->;ȫmԇl~qfÜ$E üߒъphļ)ow c R;NvǙlw }Spp%:js)&7kOolas 6@C6i?[^{oBvx-hTza$  iJ#6M8a9d`g&yi>ir䌏5MN_ 1;0MS ѱSiN0Mb|$sfׂ(rUh45 .I%Q%.je l=O_5f@uouP>}UϾPfio50HӔ(ŔsCGAEv %>CG|Ž F;9{0foeJTr P9C1 ZPb]5[AWIR*/ǏB=nu~kw PVm0rK)t65݋ OA#jiVCq2q䉉ԘpT\Ѻ9wR7~R@JUSjx9)ސh$U7D5[&{0BfZϒ%yӵ7^&>ۗ<:(Jt(:}Eib'HH ء) nZ7mN-˫Ҩms:"ΪWu͘r \8q3~ :0h nXG=aZV6Y6~N]9m-iNͦs#ܞAPxw2{03uw{n꿯n!^t6τwk^OG=gM2aN21'<11wLopw scz΋|W΢WMG- 9j/0+(  %XdJ.RщJԒ%Iʜl=H,^[fB?iJ°L+(>Q@ Qk_AQ_`5=oMl4mi YO:a^ p3[pnz Lƥg:CV3$q@yds@p!7ȎQ˷< ?8!>$:s$jOG:ZU:?ON+ur;RG6?45V6m63=l;CSb VX n쾫8 ejqby}Mmz0t*MﳛRdu* 7,8qB~}2bz/_9> stream xZn6)f8CE][9h.5'%ݍhb]ifEw_;xw|p2;Bt2d\Nĩ@uOքeb9,%X+btO?,dZ%'t:~8dU26ms;&}&k3OXXM_vrB-~ҪfКl!XMՇS7b" gcP0TP:j!w#\gUI%ÏOw4hs Aڀ.ϧCOvR F<RC/`.%\:e)/LϜeмgQHOb1CO(!.&vɸ][.~Mc}niaf57JoF-t٘ mL#IlǵYղ}}Fی,᨜hMxÞW#s+4I'2Vqb2{qDav"{LM6»3ιHF/-(֟\wYu5"`u3Z(pBzb}# %D׺2ʉڀDaBd1K{x=&Z[v>.I6DW#*#˫hoE Ze_2F*ׂ@SS x<4?3e3si DdyU8<X*{}Goy!v5WeP8BEϚR*k$&C!>JerQ)E! sQ!5Pay h,zĴTƥfi)Q׌֘v\ys94qgjet=RԾ-u0gRYä!qڑ-J]))Sp endstream endobj 173 0 obj << /Filter /FlateDecode /Length 2250 >> stream x\n#9SF+%t-:s˼a(*؉XvQqOINxG 1cȟ 8c+% v#ȓAyH,S4y~ *'q H]8ƒ9Bjğ֮9a].V|E\C5ɺ\c2d%!SFv Ȱ4H Dg9Prn4KKrȓEIeywLt쏶>~wRC^Za L&3`@us\Cn'B'-V3mלK%`H-߫ic&(aˊ?A =!Պ/&2fj- sA\Q?ݩ`"UAJ@tw;_v!폩gC=1I.D>fR|\r))C@d-df0'KD1!'b)@IvQXemYe=Ͻ8m?U?ʼnb Uv19±4mP"-VR;w2,X/Zaf FC~QHsȹ$hWm!@L ŦElHQiT4g 1 l0) kj aM6)M,qb@3r-ۼYn%qls#.D" 9h~nh,t$;4*1Ú2明r@c#mIH1V&VrNjAf4iNDtg;[ڪ}D1PC8+=(G)5dEп52s59lr[k:4 ,x_Ib/iZuwDwR`=?ΟOJ[ňEμPRzO0k0?NitJF -f`j(ۯsx̕ iQY.[3@9zas(Fp(X2LG|1:րF[*w0cf9}lF̕2yH"9sK3)B(r&koNB, We3P SqqT}e6B7VÐ e@FR1zw  9kw@[%Br1qi EXfp8.F 1"D7u_:䖗 "&`MfAW Edsr"aZ}"nMs*չ00 #* JaQ`^m VS99~]\mEQS˂Imi8a|*QNɑrh% T="jt/g))W F\!^s qYBJ|SO.Lu":x#U8GqzP9:$Vj7V,"'+CM毘jhgN3F[&NM cK߳z^3XG+a-fhvgMG&Ir=|% P!6U_>XOx?(0g s|K>Q֋%%=&G0A4\\4&Rt.=F?濝ܣ\ЙmrGH?G~c, _ӿg endstream endobj 175 0 obj << /Filter /FlateDecode /Length 3082 >> stream x\n#W* d[ fd&HuݤJlV[E߱5#E=y:`˚\bt[~) `(R0|8_=H$z2=#=7 `:DkPDy79bdcܝ#lIϊ| zU Ox烞kA+$s>M8ֹYOÅ 0|Ɇ&j1z.5}!"݀$UAr2%0{5yf\ XM$4<_Y5ߗ`flS2e|SݺsI֙]&YY&y_ЂI)I~<$)春e'֎Dže /+b6ݭe=^=n4._dѤ9 Xyٞuk;IGErCbǂEb[ o8g=is7O>l)0hp,EoށOn3# ArgW#w7 l*γ:5pLr1$ƕ쬓DpTb K`M֟L۞`o͍7 J q5ⓓs5e5jHyɐYf:奜7E0&?g+?gх ?aחie !E/g 3:K%#F':S(JYШ<4 $ O23;VՈJJ$PKVT 4hEc@cb|wu^0&dZ*A @hB 6_Ww?9gK8|& it`YYQ0C>!C0(]tD60n"KGDÛhC(iK.`%N砊8`BبhClzHȰ~*  ,Ѫ6Ɂ0!={_y.[ ~).gZ 3S;m ur($sb qT-90سa`!R)g܃8 -$C"Ӗ{igK7,CC`uT׷| մJytN0sá7}Sn[ODS+RHޤ0H![Ck*E|/&-ClӠu/.{̆bh1GEei"yvSzΏˡG&VT^".T]aI+ :+ Ff[[Kdu&0D(ۋz!yj0jU:A1ms`e_HSFV)GF 7,|`+{/ȋg,V~N0=aOŨTr%Vݣs0 9 $ 㷔̅_9r_4ICDD%TPY>NQ`QS& +W(竓{7 {L-oG4ۡD-Tb)Gii @V- `vt \FJˡiaIGv UX-~j׮GHc$HEب)7' g 1H%DC(zKP=R+E ǎ1 c=I!,\]ysk9!S#l*9{u\ )Ph{g,D S],Mh1e LO)Za}_yVX|'[a>!E+, VX/'Y3y]>A hys|5Ti] 0ZZUDح?# Wm.>Lќ~Փg b@ 1Ӡrn_/VB;.r^{0ԌH(xsu iko0*4dlNAaQa&;C_ci `w`4\!̐R}<`Bh j9Y_Эi[ (Ҷ4+Ed 4QPO^ vK`JA"w>U5W`-`;Ԝ0Eg@_s«;Ԝ}z ~3Ov 9atDu}A[ja3&Zmq^C[tΓLU+*eC`@V`lok޺B[{0+*SûZӝJך.Lkw9ik3րS=#f@l~8{rp[*;!0E\.MYv9]ͱqzd=9WcQLدy&jwdL0EV:4Q7R endstream endobj 177 0 obj << /Filter /FlateDecode /Length 668 >> stream xڵW͎@ fl,TV=?CʒeV" ğ?RV Uj9/9rBIs(E @8 ? ȍ-7u3p`t 8jr \cmOxəE9m_&o7bFEjb())Y5"brl _8p"P=@E]"2d647`d&/o(n=<VNGw~Y{`0E+?LK$I<@Ui= *E%{i#-{?LkV`j7 im'撊zZt sH| D41 *> stream xڕj0E @'3 Bڅ+ݶqHLD9 KO>m8CK|ۏ;hjdHh( #_B > stream x]ˮ8WZ-J ( I 0 f;Mi[eS+&Nĉs(艔>qЇ8}b_ULHП FTY!"8|y2tY.G+Jt:t7൲.־:nKI0.Y]t]:+UhwpAŘ" '\Fk(YEo#%>*c6 6]7"D:"C % !\"L zefh|#ȇ8O~R&|x8s;s;eM!Nحut(s!yvѿO_2 N'tߛ}lO:"di1|Ou3sxV̺gRKO~8o zjnW 51*ma\=\ ļGn@ZOZcΜ蟧6;ӝ̮=J֩|I?>'>C)?Q]rY`7pS1{jsȯ{/cq96bV1(BTKߌxϢ}*ms&g\\}u9RX|Z;svM6(?-"ӵ&]\I㜟Yltoc-fNyvō*YW~ 6oE$꾯%=( ӈ2 v#'W6.coQ@ G$_7 w,|Ucۥ<.ҹm]'7# u ]\:m<) b>254 Kᤘ5ޝ8)~8Tt"UgSN9C~*9WKTš5sV]Hb܎c4 C !z565#Urhcx\qN` `4yђPp@4HBھ"p>G8JL,%3&s=$ӅT-e2boC$s4Pe(SAh'~zЪнLŵWlo}X,˕4m`G+X;!Kj0 =iJ[Z- \-ћ8RPfM4iyCF@@KuMN4膤2UtR|ZUmbRl ]0jqan'YuьFRi\2 b }<)3}q;mѢHj(!~0X `Pw X\2#[הxO@[j61`I?F(6O*A @QWlX+C/Xqvl9=xSc^dq'WÔ1a?,Ngշ&N9|QLKvՄ$$j)s@C$}L/9٥m]AсKZk`V%YǵCPkQE8 Yk9{F1'{붚w9F|JIc.zH֝AZ%M1 |1gϨ;d`Vwuoc1>?uuB5np]scΞQs5V89xJy^zXf<k @ Ć>љkl(4!r}^*N ɝ\[bQYq`yMkqvuгRQ39ٻ87X'7)N\8y12afmpxCWM^xikK) Һp *sno) 9G)u]ԡ(>AQjZ ֦Tk&uH+y N2TX ӠFY5ў6hu~w%*0ص)4G]SCd٧ =J {W|$i?T:$~@>gA (abPA.Tp Vz +~yy"DJq$yl}0@ÍpºSB)> stream xڕN0 }ĉ-!V$ν!p|]$m~?J8}%N8Ip?&Z%T"֌\;?2`8#oWR&ReE,2.Ô>W]'xn.ſ> stream xڕVK0 @U0 $ή]Rd˙8 "HO'?8 N럃w)@IO8 B>)Fq XכPXMԂZTKjY6?0L;bb:rv(>#~.zۉ1 G$rؽ<ޙ: :!z|#H/%ˁhȁ_MCr1%ۂ zeUjR&%y(.dO DIf`^xHٯNb8,qJdklٹ#O5rLK =ҕ7zl\Z=p;)XgZYײi֕<4lSSqhsCӝZHY=~26kX+:ը`X^4=w =F<.B˿~{ut> stream xڕN0D ݵޕR[$ι!pLRQV;xgF6e8Ln$ɣDZԚK14}Gf  TЀ{pxzO R)rm2"rhwcB^nz>ϻ&m!ϊgp,vLʦ(viKBĶe=O"p-eՖL2޼N0ۂnܝqMqj=O[B[} endstream endobj 189 0 obj << /BBox [ 0 0 279.367456876 233.505397241 ] /Filter /FlateDecode /FormType 1 /Length 1178 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Resources << /Font << /F2 97 0 R >> >> /Subtype /Form /Type /XObject >> stream x͘Mo7+xQ|( $mR @i} rhIQIz˵vIZU 0Β3%\u~ɱcIAsn}~7.|{y?_/\/&;Uwx6X#߲%b,} bsvk28Jkܽb1yq |RIrMw(CDh }}!F"'Q Rls_nZ]N^QHnǜ}LkAwUb&#YA ~ܫg"&\OՎ F\ FvR굻~1=^jYIߚzc`)#@5&= te6,*!\@ f,.l;n#ܡ{XZRk Hs<&N.&3 F [Q5& dLⅵԼ'XU$Wk(A$:(lUT\[vS+ { >d%Gh %VeKoۏzX uC)kC1K %P:n0@nثml džݴiY6 h}Af &Ia=WNK*J_m)ӠT5*JIP3]I5&mIp5pKlG/L!BqHqe֛WU.~X*n?u Pu-g?oJu6MAؤag }IABC]7smgh=,k;vzGmDVvJTJ>+YMN,}lWk9|R9̘PHk>; vJ tֺcx ֈ9(`dN`h=zrP3Qp Yy'8wɜhmX%PҞr(8Ew??+oCv(8*NƘ)r R { {7~T$,#T߬J/fC"5Լ]"QCM# j=q>"ѩr5Ht^"@""7u{@z:9o2ӊRKԺn^F@En!Q!1P5 >X,/=|-S[Jo?YD& endstream endobj 191 0 obj << /BBox [ 0 0 222.674568 176.812509 ] /FormType 1 /Resources 190 0 R /Subtype /Form /Type /XObject /Length 60 >> stream 0 g 0 G q 1 0 0 1 -28.346444 -28.346444 cm /Fm8 Do Q 0 g 0 G endstream endobj 196 0 obj << /BBox [ 0 0 233.554027743 233.505366837 ] /Filter /FlateDecode /FormType 1 /Length 940 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 104 0 R /Resources << /Font << /F2 97 0 R >> >> /Subtype /Form /Type /XObject >> stream xڭ6z ^z$˙!dQ!mZ @i} rht"Oɢ5kf87<{CH]$!̗)f19}ӻGS3q<57 _(&N2;/Ewߚ=>M쯆f0}R+J&`8\ֱb}:#JE7P]$& azg]L4Px71<gsr9{XEH5W BXX\DW읖1 . qR)]H 27"N}T{G)DU1!b +:+HBcXWo%;b&\SvQͣ%G*8%^bhD@!-Α1#eͅj8B=~|Dߘ}%4[z- vԳnQl;#B坦Fo;i {zz@z zy mih:l pF.k 8Ts  %*qk/WQ0E'Kf~#51~yh~f$@ʁ8$<;Lzj@d~{VV\Nrg)₞YW > stream 0 g 0 G q 1 0 0 1 -28.346444 -28.346444 cm /Fm9 Do Q 0 g 0 G endstream endobj 203 0 obj << /Filter /FlateDecode /Length 1634 >> stream xڝˎ'_?YHgghoQN%0 TQcc(IO̟/_f=},GNo5)F>Mi!y<0%L>$Na0a ZY>kZy\cRROvK#[@v|T ]$,Oʧc&Gd--}NYQ^-Sº`,.2hm@f *dA  A' [<4e@(Xwwh2iFb}Uf]QuY­0&4וn۞ UOu6E§pjQڲchh=Jŭ ogX,ӁIJgR'㺲mQ(5&m#4kMzss+Xʐ65JE 8)L]i yP U"b#FZ91pb^E7uB q+SՌ+Eƞ1rJa ԵC3dS5'4zb5C_T@uT1iۺhZ70ǿ/?"*($JYfW!&Wryy-~l8 !59USmuQ$)EY7smY֌7K7OR9>IKJ "]rǚ+Ր7+Tq,Ӌneǥ& 1)ODy`N-]$i_gOz`KmX=HZg]b1R+h/34۴t.~!y|=a"v͵4s"6qsҜlnsfaJ*m[$j*"B$Z#?Ǵ/Q=g.I^at'<5(}?1f״qJ"rP+굗Ib#$%|t#H#; hמtY̓@Izu}e$]*9Bc]- ,[s>.*Sa s%aZJ'䬣< 1qYRdA=hMcK%팳 N.aͮ]t?sI>iCgzq]>nCu.n[ ~'JJ|VLMk{854F@6!n l8G8s5ICo_MipUYZ: ug):wFK |׫/Y\x[yzS>aZId l3!bH/G<5OxβIDZ NDU~X_\4J?&KY{}9oJl7|W?ruw#yU8w;wXf 1B;v8i[B$դkmH3Է<"b55L5-PT2_To kh>p ţ.ʫSѴgIzמ=bsӯp֚> stream xڕTj0+QvB)yVThO/]YIF$9X̎Fe< 4 s$JO{21z=P`WET$(6L/W0X.UlJ@]6.zt5_m՗]Y\S\*uMI-W KZƦz2s`XUҥA7ZX4rw띦*F6\ Q Sȇ 8 hYG_<}Pw-Hf=V's"b7p VXHn,#xQl}1?u>0HK&K1,;cK[Ehoܹ /s endstream endobj 207 0 obj << /Subtype /XML /Type /Metadata /Length 1809 >> stream application/pdfmtx-context-modulemtx-context-module | 2023-04-15T20:38:46+02:00mtx-context-module2023-04-15T20:38:46+02:00github.com/contextgarden/contextcontextgarden.net2023.04.01 09:52tug.org2.10202303275.4osx-64LuaMetaTeX 2.10 20230327 + ConTeXt LMTX 2023.04.01 09:52LuaMetaTeX-2.10Falseuuid:bcfc99cc-46a7-addf-e7ae-4f1165fa0b3duuid:1f22afee-416a-b85f-4b4d-3b4d5d70ebc7 endstream endobj 211 0 obj << /Filter /FlateDecode /Length 2403 >> stream xeV TT7FaP|3~ hTDEj' Dp@@S4ѥJ)"R5ХXe EԎ_d޵>BS{[{>s%@ђ% ֨C&O^\Z*4EU&r=!Hu&MH*[#m]VE~}_{3؍?L?qy4 Rp,IckiEӠ3+o̴' "%~ZXiQ71QFzY$eF C0q }C|5]Ft]΀b0!p\?"J8sB"N#~DNܢCSLC^'LNrĻV>oF;\jhBއ4n|m1HHgl5Ҁ8diiIh89c0ؠ(@E'F#+bN%{)/t!cW|%hx7۰FJ<;cx 9K:?il`HGi};jLktPj' YUSK}' Ox#J@DНWxytZȑ4R$ʶƻPMcZ࣓ l.[ 5jW -gО6Sqsё禍GE[[![Hs҂yti+eӑ>#}ݓWG^YP{Bis\6ޓH:(1`+YLS'gP 񈼖E#"uZvUZ&ih%#ιk]{Wͳ;/^ܐk0pF(7b4&kB'BЬ=|m/Ajđ8Nj&Q/έ 5= GQ7}*Їj8kOFc1Ǟ)avr(-/""/P\ݠ`M^݊u=}#G2x_#B]RD8­:g\~RǴxoVIlGyQ_4 endstream endobj 212 0 obj << /Filter /FlateDecode /Length 1616 >> stream xڝWr6)vK2CSݡ%TTN#DB`Вj= !R:i͘wv-+>sKͭQz#_Ͼ$ys~}X)iy ru'N n1pn@w \PJvWΡ81ׅzgKٙ[smXBA!!}~%Vv5nc:Xa& *υ3W}u'z$ Xop[X^mgqSV$!嚫g^Gذf50A4vJPʚY?sQ7MdczM~ 4Jn_Ig#\}o0q )Q5SA.QW6G(ኣb+Σ:#5{h1 P\Il8PXP- 5lHVZ=`KJTWh +Ř{-[%ˮXv[g >fl`3 Z8C$P"lQk__P*:/L9m)ƅndaթ rXJ-ㅡ>$9TȦ䇾 rX=c4`tJYiOaԒ! ,rvl.Rt̾+ך X *4V,=|@PV>t_L!b*XWvI*IG_Z+ƪ N儈j%V)Cp;;{#ۇQz6l%n"@N0?؇EeSgiZO8y{K9LY#h>*2E_x|yB ayBWisCWF00gCsRx( >dh1NQn%1;'Y.&1&Ё#̺HcE>iI:GO 0ՁRG3,VW+xk]sю~~j!%`k;<;5mɾ4>q7oId+tk=*4ZG)B5}yP UUJ&:\Uۊ۪.= +-TWeghVRuf/q<v8:Uݹkg.вSG5n[Y ]nڡ砄pkt8VL:t{b=sjgBǓnSJ|߃S_ZTN}uxp /Nާ"T|<R+ /TI^(^ŵ]jVcB]T[o endstream endobj 213 0 obj << /Filter /FlateDecode /Length 541 >> stream xڅA@ڃI :({bC'9; _Uu}EuwތO>}R:bn7Vi Ym޵JwbeVy-KEzls&{⻷]n~l^,~%zr=&b1Me+OK*egAKp$׮i:ZQgiuӄinFGc e%<)h26@}i.t&wcEqMi:u%8N4&6[sULqbx($:bFOi2O۪{LtǦS[a65*B BQj#CEP+g(Wy#b9-b^Pύ |P|(us|8/p|8/p|K(E3(7r|tEYS 7r|#L/DMNd 1O}22n+joXZ ocvG3)nwP6v쯹GȪ #L^ endstream endobj 217 0 obj << /Filter /FlateDecode /Length 5767 >> stream xڥZ \GW3e8G`Yq@+j DAE(Q$ "X5g]5ĠD.W= H~+W]8%7#]؂!GN$= ohމ5w "唇 }>H.ǩ}¢g{q|/"3_#8[Svg}AQf74D~'Զ{l(?)݉$9g.C83.Q0.!qED!RWpGJdl " qшՈ&\b$X›@#*R6U#!>@ .=w5A#q\7^w7G Cq#H?؏q=qlO\g"b W3õ͒# "Z8\؈8IԹ_378jf[q6oħjO: ڌxqn k績@pGr-g;z=ۊv1j1n;9CiY*{J&pe|ŤG˽wN}`Y6Uj+ZwЩ:B>3'bցb;:C{^fA5 ΀Q@4Q$)@"> ;2 ЪrJZk.C4VwXQRR˵lvݺIbk8Nʙt8S_& n .FI7Q^Iקoܘzcs3pL݅ ug"= .` +ʣi#M\{Rcǩ8k+'z>OzA71uOgg3>S5PHMsy,*hDY~or1/LiiZ:K&chbX1Zf5ęhtxOٴg Rv9y cK#g@UitH]v5g35^ZC{$%%%dÛgX r[2ptOɢ iŃ s/[7,Ͽ܈N͵CddQg;$|F֐!#%>/ 9eඨcׯVL=`VG=,H3&=ᨲ }zm%=0#w3oSK;Fxf`4n`a48v"pDl%jFIzjHGCgɊ J&,.YQTpANB"(#( w G4n^pk2 .]Y,dL`2sPkTFS`\pxzimA+¤ 7EfR05|oif.Ѵ nZVYXWσ"uXjMH+baP`xG{(ڋ 2V,S[H6>l^EUZ ?eTQgiܒѺtj姍,K>B>q$ f,JD:,c)M$o~\6ԩz9z} 2  m1gOMNNI>@7JB/HW5;R 5W/ իl3sMaxwoadnagq2d_!5IZVZCpvm`o5Izw)y0Ep?&~“׎Y:49e?̝ 6S|##}}#ĸ .]\ EF.\2m;L KkKYىVX|RɊ[Apa.F N;RWKi&g`LטjHzA 6WUU,NhgQBe,:UWgw$39!z"kRKFb͉s 1K4-2TٽG E}28ry~?MSL%9!XhM i_K{ 4)\GhRCn`|3@nzvNGtJIpJN{^2-8=C,Xnmmcm /i[<\oՐ OS6lHZF0m1UQwY[&ca{f%aN-D'xTfK*& +!@&IIIIɤKkUTJJ3K*M +X36Ҍ*9kws hb&Ȁx/n>UV3$Fnc3[ Ot8΃"_?mfѺ_a{١Oz^{7{4<_ la%~>wg:rT%u$vc^qooK k.$ҠFk`.(dzxxSPFŸ9#+5m9|F)v0`ic0nV--GںԵ̷/~!ކJJYܾyeg!o}ue<5>U>u'5i`J6e[f_KV?5#%oG_=#c0Fk^aܔxKIs۟؆h?،L–4C/J>t`a໊@Ov Ei{[سlgU,fml\Φ)@}ە*bRob҆F:<|LRbbR֬J:m(ĉA8Qf=> 溡Iy8]i~hHGܼ/]hGpƣ{P7 G{{M{@'ݻP _h|^5My_ϯX\Bj|~!+ᐐIم pݥ%cct Nʘ2ku7߅)> nmT/mWA=#ܭm]=Fr IE|p×4Xi,1 .ҒaMy/3цa qiӌfE ;\l:3d_O"4^K-cNc?|Zu"O8OQRg-UmuQ"rB-g"QQH13 ь5Yx QȓnsD& ETk>dA|/ a\[hU!3{D5"W^RMFE JubLgkɟI2-Ɨg1q_$+%uO?$(iln endstream endobj 218 0 obj << /Filter /FlateDecode /Length 1608 >> stream xڝWr6)vK2Pݡ%TTN#DBj`Вj= !)R4SfL~ OOEsǟ@7އggo'ųOI^|z*ޖOw]0Uw7+_3-=CAUĉۍ1m}H~+xaWΡ81ׅzgKٙsmXBA!! ;z{Ey;濱d0|7fl` Z8C$P"lQk_?͡T9Ru_&rR 5KJêS V[ C+}+,IrM)}=丅}X=c4`tJYiO0tj]Ԑ9;S6X j? fCCAO|f{¯e)V UKSȫJź4վhR eh8ї+3 wrBDMqV {YzL͡E8JUjxԺ fgzfɱ<RֶblYqGl ӈț󸠹S5#kղζD1h`,ekt {uf RՊH=D0'9dI!L#3X8f!9D&GO L>q2!uFYbG'8NyxϭfQ:z.G&qACXia t1"#l'D@|1rr\!Oq4 ӟ}b8GS"D ޓrNpYFd):|F1zLaЕnЕ4g>Yxe'#$9$Jé"qh[I=FbjI (w0 y t 2'.4?RgagDaΑ.5G'%/q|)Geui;Q8Eh|! mx~` 7ظ}zβ'O?NEG/n<[MC0 m;ZsO Q %PMi7@l@ Wb厪K%u'x>@YEe"Ts݆0ׇj`mKtog׵NUZ T̓V< M;tsPn͚NJWKnO̠gNLxmJ{v+Vjojd |r""T|ywԦPL>ӹ>3+f>cPoG endstream endobj 219 0 obj << /Filter /FlateDecode /Length 823 >> stream x}N@y i<6  [J+~J(6uEI݄Ja{OuQǰMjpr22TPWחꡩyبl:YkU{qMx+KG>oixay*76ծk*:xͺK?GQ"IփT}ײ*I^QEoZSlJ_]n YZ/Rֺ4L"4eNnj*RT+Y{xwe8u'4+fwWyڭ>/}9)|pZ8y >j|)v;R _|q)?yfKD×B˸{ˤ|r|ϧ#|ZC8!={>%X#uY:pCb832?}%|bD c~/U?Kۦi_e)px~Wu;{D?k endstream endobj 223 0 obj << /Filter /FlateDecode /Length 2376 >> stream x]V TSg[BqBTb.v#uA2%z\` x(BE6 r=LQ)SZ u=XȻ}IP$KƘ-bs Ig atbQav Iss(cWfb 26ð{9@cF^L^[=l݇1w컅*k*3+_:ۿb7/ww>y06g]ӷ`7\ + >" a;GqU#0&,%"n3&"pSPDFL;lIvYb4A/30T)5*J/0`zi6c^أL#iDrp$JnZZTLH0xK!NM)^TLQvv 6( g'K$/gjwN;ZZ W|J~wccwOCLl'a8&).MqSTgOOPd?gTw/Z~e|.]]wWssw,1sT81V Z5(UTm+N?CR*=kQDʼnMɨ\^pyh}e*m6َ/)ɦN1rcYʦL0]n_.&Z~b*gr:=uJxu̢ʹUG_vP6UK2fQqq##J5 RL  Ҫp^-@HmXá aN;6$/Ou\%<[oA)D0haK{_{R!^A`,[< V>7nz۰>dC? OHx9~ŷ9 e n>^(.ov 0&A1]1A>lw!{JKIےT)%ԍ`ϥ^i uU:\ Fh8-VsYLl-o-14RIh/Hri?H]ʬwq(:7uw7(|_Cz8R70U{ʌ'/iPJ99\@n~s/_L/BEF o{ C|};)l q5@$jC?-rkz˒''Zo{;Qg&U3yUA'?/#T b(QYM=g D1LQfMR3dS˩v3|%/(8~ b}Sb__'e2w3#..tl\*×ܹtͽ.-B%`&،3LŬ]CՎ̥$q;%^*+az{\Ѐr7~K}˞vPso=k%dfe'+klo`V\-Zf6׼D8Cl'* ͫ=/6rsX":Dz1 h^`85t'V.xnvLOs-lB@&l endstream endobj 224 0 obj << /Filter /FlateDecode /Length 1945 >> stream xXrۺS7 C8mg}JKIt)n.! WEJ$;s<1 Ϸg|uSi%NzjO n`F+ɉ1uv''z+rO`3DUCP) SLޱ'TjTSzW~.lE%S@%^A A.J+{G V)v:n5\x*)?LJb[RRHv6B1Zhw!;4G. 84[DkҦ:Z)mX4B*@5/,fķ (UMꘐpc*qTjvW@ Ԋ35]BօRHdؠ5[Pt䷠t݂9_pShXzFiԙq58ʙXJBiF𨇞Ilh[CxU~̉ GyP&f_`XsLZޮ{wLlpgƮ_ ;XmpLNc`C;Z6d)+aEZdANL;=Tb~oW(LWm3D0{47]b`؇ T\BXP!i xI .:C3|ypU (3#h: ef$N \ע`|5pz8q4R4Vՙ™16 g8J?{dS2Hhp5J.Y6hvMG z '!$:H=TJq#i I1(Fyvp4 59Ɠ0Hx g!2ăa0 M8#ֆO1 4LpcJb1c wOg?p: ߁EfßbN'M4 =hfvdg<p47uxՁRF8 1@dMjmj5w;mggX6nfXβN;9vՍ'Q;zsdk+3J$ 5W,E{恢:C-EV g%-PM`4ZrTYKqmpU>e?ZO)~NJҜe B.tLwTAυ&H} 2SeÃH˃9#ұ#x ;"<'b=h!$>ć|b!w}B;Y@|˫ꪑũ~hd5}#f׫ܡQc-i`F2]WvׅU. vN}AK^ltnL['_tR8үzųo},XIoO~STSqth-nu)ܓt7W¹n5uwOvݘo endstream endobj 225 0 obj << /Filter /FlateDecode /Length 515 >> stream xu]0^z1mDsbuP6bӒMrR])>yߜ&mSe_d:g\EԙTFJ!E3[ӧΓ3_/*FVɥQ=9Uw]:+l?vӏ`!_>VeVNBfƉu/4W0Ry@eMQyJQHƄIfce%:~h`.dYĉԱ:clByRjxJ~ǺeKÉ0`G A@4t4F^|Buhʹ# ^ sZ: a"|?|#"_B|#_AǑ(D>{"]|>||B>qR|mBs/JI9gZ0-s>Xڮ0: endstream endobj 229 0 obj << /Filter /FlateDecode /Length 3859 >> stream xuX XW -mhӐĉQƸ AW@D(-tF ‡רthQ%[dȦ#Fsh2w.?- G82 f(~2$ݯ \# Z>/9N8.u%Ҁe έ/FעeR7O@H1W%MLJx.a\Hvo3[Gϧֻ2e7AyNԋL:~+\2qC9 E@zLG# Fܑ >*!i5R!bFzl R1j8}3H&y9BhH qD.Ht NH$$ҫHKH+]#L-H q{i'ext-kZ}@Z t'+5 ݰzH A?h݈~5rZ1R}aF;ŷz￿`Owa7,h= uѯW^PʠMJ=nSR[ىeBCa?$Et,IA-%;a v(nQhDg4Ag¨ seP/ %9_h &A # ]_3tUШp$-#[!|˳CBz#m6qlXV*q+NR}Z&_yHcDFtFXqR.riUt1\B3 ٳ I7C,ȗ$g$Ij Jp#;-<G/| T|gq>ݑTGK#o{_yt*WYO7􁱴"h[0Ѐ WsLkR=({ڃ aA)?GE+zKs-֤-5B3 :^Vd8x0~R1;iiٜ a 4_7eWyNqINL+,"l-VAF5- "*ztf(| +pxð|%lLdrWڮqtOJ1>7wAj C-ě${hӋ F0e8di4):L:AɡlK׬_+~x.4w%{wZ!?,S~Ց@4 |v…Q_,B cMۡΟY$kB ~_`fLpRLg.UEk*ʉKˇ ߎ|)na f@1q~Omķx r:88ƪzqrӺ1Z{S32\_959j:˝@5-̗7#yb0Q!Q! =, >Y[ԚX/7=& n!I& =d{iM;ӏ~ُ5#lkѦ^u1 0pVV>(l2)djTJzk_&xIHжdR d7GQEl+a&=ẍ#a~6u=}D4ÝťIS1D]CNVVZFttxV)1H&0W0(|:M67En$o>4$T)ԅ%h{rđ$V0ၨyw whjsaYܷyA2L.Th]*("*`'Ù-}Mhx4ZAo-=ݜoqSvtw]g%G(-apmXB܃y`T ky5Gqs%si.:jDN\=>.gDhEl1(ठqe42 kx ,)Bh?cicz!g,%504=M=svMftϊuG\RoN׷Ƕdǜ{5л`~aQ^9[rg Yqhe(? +Js,4 2OwE5ܞu9fEh{Ε @ ?ˑ?Ș3ٔ{1=ȅXTx@X"gwLXnWD87NoM1TJ&/ޒΝgJ \u"6m.o=!WzVwPˎbt/P6'y)+2W7cderH*ٹn<\na3 }Т*Zlfv%n +:老 jOrwRg5s[Ѝ4qEch+ڷ`Xԝ m=w[ i#Bn |Sk3m,VƗXezlYEJ.R* sN,*:M?n:;ʖGOx Xn]4́RG>(<|Ѣhӯx2 GE/nj9xAFj97qW {j3.Ti)%d}~I0(^I9υxj4`Zb7 š {Ú/95u,=k'ݱz1dIfϞ;{e¬+}.|Q}fPVYYa/&%JLkҊP>i034DMSӛDjLE#H1 wHNEO!4$wG2F(hk4`LHאֶ#,ҌTUx"E"eexAgEyy(gek2(@:':٤%ai ,yeeSsҒ&&W endstream endobj 230 0 obj << /Filter /FlateDecode /Length 1634 >> stream xڝWr8)2!SD٬(-I'#DB&$@Kʫai^aAHOKU&]ˊEs˯@߈ogߒPz? >nvu[s`WWzK~ϴuq%Vp/\)JFlLI֏VS^`08) zw? y²@`+yWK`U-JohkXcxJ5H`ZL!*ȥAEF+W4>S$`6B o<-`h#Xt5rE !Zl1[DVɲ+):&ÙY*$&[a6Hɫ>i'w|Wo6|9 4<@ Da[ qYV4:ՠAnK Zϼ0Ǹ’$ ٔ7Aџ9 'p,FLW)+o7 Zr5E օZ*][bh(IٞkYBceei=CG*kn,uo7BY 4|>`zp\NH J]Rau/KI9Ǻ[J ޱ=}gÆٙYr&B0ijGb|gk-[V>#Eb6iDy\ܩK{gո5`gQT4A_5:uf RՊH=F0'9dI9L#3XO8f9O9D&O LOq2!" )ij4p-NFӧq<=%,4[UG͢t}L*Ch?p.`Ed}"1N>γ<Rtb<'p+4깡+i|!NFH̹s )iI:GO 0@)vpx% mx~` ?4ظ}zβ;O?NE[/n܍[MC0 m;Z}O Q %PMi7aCl@ Wb嶪K%u;x>@YEe"Ts݆07j`mKt;gǵNUwZ T̓V|C#lv9(8ܚ5)ܞAϜڙ۔R% W\D'ۿ[xq>-:)oF Zw}ܗpp ԦPZW/. OCwڅ67LŋB endstream endobj 231 0 obj << /Filter /FlateDecode /Length 613 >> stream x}Ko@E$X83~!Ģ$ 4j3PW`[~,;s AÜeyQN;ѥw]Mhg5.z _ ;s/|T`2}; b!gcN0P>$I0JlF1@/o(9'+÷@tJ4׻}{khkU6_uU˿Ow endstream endobj 235 0 obj << /Filter /FlateDecode /Length 5129 >> stream xڕY \TU?Ϲjj 0"8 #|HFF%8#""(.,fBd$n?3%"3S$Ԭ9wf`l}?=sy B&}h,$Xp]/%ן#? "_@ȌYI1> 8BFH qs^׳?!O~".r'|%O<;%bT7t__X/B\~eNx”OhG2_RLr!mSH/!#]ǃ#F HEjㄈx>!,Rq#uQjjnJwi۶  i22 7ɯ2/o&5  X]Pcs88%&AS yv0wЩ1J/L&ً^4Z&/#aD-=ƣKqCٵq#4vcvƍ9n <7]kjvtT Y⑈9naiKYۓrkF/*^yH>Z}[Ks(  O21^2em6Xcp2i_nB[c3g\ NrV>੯萹ԸC+vޏ*L*Cz(Y%L̋\|:r٧V4BU#v5q\x2ـ #|ee0sÚtO~E\t$;m6>ݥNWYX gi@m1W*,[>Ie;F:p7ꘖՁzArm&r"8E f#@SSpKQVk-:j{ *ZOeK!*>˅+qؘ+aՙ\q}h})+n.V >8X.JVnGʹcHxx«zEɻ b/Kxho47dg-0[i!wE44qdA #4q ~sΐ;2yN,*Vlu~Pi (\j[p;m*TuP4W('}ɈXիWnv=/⹯ ?k6%Yb*, \.CDyVnIގqɟ1bYM̝V&sXys>$a,{?XB(s,$N*gд̓|.BIߞptTe4 oCy =[Ķ#mxYYo'F24*iZG|:U=i?Mlq`qUώ g[%]t p٫Zί ߜtMhKys:o-_9tϞu))̑>#e_u;_6n.~yڻ5~}@:/ɗjwi١ȖJ5nrR sP16AWE,ϳ<'`-bt y";U88ղ:(;_7J&3B5U;0&Jrsrr9~oE X v!rX,dY, `F8w⨨UK~^8Dvf,׾=y!O<(<HPv@Efi˖MY@?Si9o85j_l([{igrNU3oK$tqYϢ'VJcT63KzpMR O)U-cm(MG|FogF+7qP!㢌l %\A. IVc9&$úvCB& >QIR'Nm#b+~>~#ssJ{hk:,5F1}|lyI(QmRӨb-]DMSh9hEςV@m9h9uA5+5 h/zQ27aY*֦R*@sȫo=T{4@Vsg9q[ny ^k~~珿iߘQv.C_Uy[SGK>a. ; nIrZ¸9Q0E(0^`{>1طz͉G{ٕ(\4^ZrmwI*]SK%5I5ƈ&9I %O{iSY#q-L-j3K ODٵ*VĊ XF= " %gƖR`KRBAM.*}{ JStYW]*332sPzn~sx}UWYsJtݔCp7nL&h]KuRi'gaUH~&|ǖEU"IJus< kO(jǿd~lJ̉|A.@B^.F)al.~A.Wf_Vm.^E6P2ı Q+ht~nDcMrbA /o}5?}!;FcUT)tQ{NğſL#2[nWp鄗}:YC )Q=)FTNڪz YThz?|`\fNe3R^l1K#BpX[kj]~FOWyqzQrZZճ*ك;?lorKK?,-䤮ɩq?UCWyg{I-?wzLZ40ɸDྣR8q  Vt$*4i-yMÿ-#%*u endstream endobj 236 0 obj << /Filter /FlateDecode /Length 1628 >> stream xڝWr8)2!SD٬(-I'#DB$@Kʫai^aAHdOKU&?~ܵx|-_~şg~֎F<|S<ŷcx;m ]]5zwR.5>#1T:OxcpT?~^]Cwz{93P5B6@l);sy-W#zPPzH;]wEy;?d\է}J >ۉd!۽덹M޿= !nª4\s`<*6Ys Lq ݲfqO}٘^9f۷ ;`pRF z#? y²@(V'K`U-JohkXcxJ!yTCj}0XS rihhJfaՇ:jQ]gCEֲ aXɶ^W!D\-{k=QU naJIJ3pc+ɓ0tɫ>i':>ܲ;>JcPZira[ qYT4:ՠAnK Zϼ0Ǹ’$BlJA<`3cӠUJ{~!%wQC7O`](ow|f{¯e)V UKeއ)Jźn}ѤD ѤqG_Z+ƪ.@"T{goX҃`Rn-±xO`+U;GQz6l%n"@$8:wXbei07qAs /kJw>WeVˊ:ۦŠ rsb#֙)Z"VCyC6_48E:1xa_aJa+'c-(`B<[Ld4}=ܡ^2aAUuPq,JG8$œ h04La.YcMdh! _!Q)E4G0'H9+gR<(,E>(F8ywR QRMx8Qv2Bb)p%QN}(cFJb1Shdq&0!5Bg~t 'ѕ/qqF.L9KD %_"mGpSȍX]ѮୡvݏG;J۪}ۯGg,{\t$nӨ%ޛ4J?$ ж;4jp^ :U0QQuɀ\nϼ(> stream xuMo@!RrػkD&Q^9 w*"!233c=zw}=R/n_?ֻլ[W6.{\W5z-ˢ2<˺4qEyN }O^V.6(x-Ok@E77WW(2V ėtN7EbN=b"kNZ+ m妒?zxPoc pOug^vOHFR*wS'?֝ `?Q4 \;_rbAr߭3Wˏse4R ,2}+7ٯu GQ`FҭJ-ʴj(1K̠b1jR25XCI1aBlf*E[߂mEX$p/NPJ`8RX`o/(ϊk9_O %KY4| i >ͬ5|>ϰi-|2 _* ># ?ѶI?#gL83%HMy>'h١q.~ZX{s02 #;dFMǹ([svG%+X8=a XTLY٣T1p'9Jb0$H=N( KUe7i{ݷdҝ *g{۾NYPO5 endstream endobj 241 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 353 >> stream xڍKQ[6 nkX( "h!-t]wu<,D5 f9|f1 b;g+99רʻe~TVOd~UM9@% =,RQ@'KSl;2 bgn܃ذyƋOHnfZb=J9 !$Wɗ)VlQVkZQ!:eX<G"CI3l:ӶniEt/O0 Dkr6UCQTUQ 4 g_5Cyv{_`?0v9zz|h=kmШv4˓EF endstream endobj 242 0 obj << /Filter /FlateDecode /Length 512 >> stream xڍˎ0V؀4{H`*.eQF[9M⪓nJ_+x%b ΋*@h%]#0uMuҥ)Deý$YUmv U|>)NGҍ~T4UL&8s k( t:!%XM?\ vf^@beet> stream xڍRk0~=P;؃Ha*=Ԍ6)iPKm` r}w], 0":L"EeE`m4ߢ4EJ>#œB` I+?m48ïx_,b{6x*xw&D' Iy&Z`8`ŋS:yǯx:J%LmT`ܶ1\N> stream x\YoSI~_qb׾HY&tNA<ܝq ͏﫪x @EzΩ,JTұ򶊪HEdi|ʄXEQ9 %***J*k+iA&Cfu/$+&4=:U2E%)HJ τ!>GX)=UK*e$FMʠ\j2jUTv TvTvTΠr, H [ZT@֑J "_6"1 6L8I!(!C$<8,P9FH&TefTFa`Eh(X z!P FG(>[,>WY*ˢP9!-zSr6%8W.@9Ws0PUq*<yA`(PUHrUe 7*.19{cz Fs?ŤH!R%MIU !Pe Tp@iBn DTEqK@Y|%0PY%I%O*ᨁ*BDY"HjVz lp32x$iA6HDK 2NqB bKb `mH,-l6 F+(pS9"@{P P_G@&}L@-7HeGۤ+ =@I=!bHTslN0Z#&cRY;By1A!N&J%o˽'U^ _'5r/?}:9z~䉑Xqn!֛ҝsPSAq=FHCAU5Ln&uB- Uܢt $xaϧO9`x1p,\rap d6Q^ 'tQ2d̨%xS6 daKp1I9̆S&5`#;/<; eyGoςLq 3 4|XĦ&)!(g +ř#47/QV)P)i]@u/sV~#9UJIfw냿J;}N s#*H|?w{ -b$ٲ1o!<0b:}b4Oc蟡2,Mel!ZAiZ (y7)7?%ie2ŀ21MD>ʍ!e]ZxO[]t-)!ZLU}RvR)Ӳz[6cFGF) q Ai"%Gi?͟_UI,`.1E6Bw+k"Z=‹4{=tZLa֝rFTM%*f+s>,<ȈJhu+4}瞖_GG_u&3\uwx"kf7?59' ʛ8G6fٳ%otu-]PffgZ!gɬEcXU ?>㏘B;4v)#~P|nNd(3x.2ӵͩ\h7y j=!Y˶\YmaY J_΀Tv=B&.bVT)&W1Եg{.g& <18C8C0B8D258DB43F8CAA320B4FFA452> ] /Info 254 0 R /Root 253 0 R /Size 256 /Type /XRef /W [ 1 3 1 ] /Filter /FlateDecode /Length 722 >> stream x%yLqs˕r߹NQ*fÖ1Yme,96 5[ цy~}gc+O1}y JTY (\gym3L[V;0/k+fV̛PYa0-Im0gNJzcmY`~+ ĊbP7V,̊X@b k'YJ> ȒB;VZ5XqU<bXPnr kpk/pkp˟܍e+-q{퀧.Jg#x~]N@jVWc>Z5_tWz(=o \{)+z+}?=*J?t; : 2Xqrpge)Cle(d0Ôᐹ'yx3  jy OLj:+1vt> (;DZwʁ`B> stream x^M 1 =E6.'$1^@\'Qqğ׷, мRB"sbQ2J# Z7@{{B܎ tuwE8>KpN{ҷ^( T> stream x^KdG+jò@h$ƒ%!0cܪ{3h8'"psѭ?8~SǴÿ!H?dϨ\rlo~s|㿏1ׯ&Yca>n?}{5,CKh| Kn9{w|s}IDV߅/PΒcKXB)+c9> M>Uߏ(LW%˥ltX\if}ebCb$TbfƴH 8ׇbގ Kg'-] `΁C]KrN5 >mY{7긊:u_;~#]H?8SDOS/ހV1C)VjHV;766B[kcPSRj"Y[-w JA6^DVm/Y'qP5 s?OA/Y|ZZ ZYX֎O'rAu?16hFD 9fgm!Oy\Z\XxY.&VQk"d%Fy7]b})ð s?OAR7^ kL;dHxfiDiv$Y)9sicBknM=Vj[|q$ڑn =@q4'Vp#E̝#҆O|:Hi=j|{:ߧ4!]1"-@CޙlKBu6TZlI}F@Eb|}!9$N Z092ݗX -b&/A8/IIi8ba 9$#rO\52֊lhI)ReYHK/! 8B6ZȊkg=yuʄG* =d2j=J)xC,V$'~`!rzNP 21`r|4V,XX E*fȨztYfÜ;DO2#GQa.^Ҕ@$l0EN`!c^XLY毐u,ug#y'G` TMP Pkء-FV2p@l8Gd0aJ(8s)3ƒCd_DRiޏh[rB:2JY_KFLsNQ\EYOec(CL p;Lp2-ehzQv;/hh- $Kra2F]%"[ N` [עxR-D/z= \QNcg ư)1"V2 #arE38x l$%"IPun8d|戲;߁ >.Ov1JLU\U$d2F;LkQ'i¤T0[ȂL.%a %R39N5[\qL0-Eqɘ xop23*Odg@1#pdP(5r2`vkRQf&c-ZYcd(Eq( C 2Qgحa&y1+B7Cj;3YVzVv_f c\3zf{t܁L̹ (ve),6`KFrJ[!È2 9̨2qS OĦ9ŋd)#P^DY,TԹSIe ,dZLhehEHYtЦ(ɦ17% P@gf9Ȣ2 ,d=a 3Jm1_3+B$9'j2Hc +8#Z7kΔ (  t 5 &ҡ؉.ߪC^WfkҠ1ү'i-a; C)ڜIt|0 gSA@C)rGY"QX S5 aⴌQmk-Ff6#ZV֬7 Ɇ+pS5.' -+ҝUqboR=*= O:CT ,'݉-"ʚNZYm%R"OQp@>1pD3tC#$.v)2%eVdQ̊ A{llO5vٺEd\ 8P0 ̓甝lutpe+ay"Zt"RK}m4ss֬$+cd"ى }&YF8!\'egC48,dQM`'Acx`!8*%2Z4O ѩ)Ί[rg5 aMg4r@.eIIZy{/| ;Af+NoFY㔲#B[hI7: #AgS5lMBNf ւE81`dܡn*p7Dar\mC8h3mcN6B cVWqshz `ܠg{wEID)n9Y!UVɪ+JN}BVfk0#h2A,dC 2]E3تh(x" 2ĴƎ(9Z,mU0ݏx;9Q(ɮeh ހ -IZ)$QHd3Lkl@R\vȲ0 'tAR< ` fVjL/tG1E,8-1"&6@LJ)0a.Ed܁ ,d"ٴGWДeu.-63dnMyO`!Zf;RS=20 'D86fݳY :W"5)Yb,}C`r[qNq2 @Eu\>3ck,v\g6vcB| 1~Ec4pzHa'Zz8Nۦ}tG ai絊u@Y]p4ko#G'+ ,d,F#z8g.cҰKƯq{_w\,Qrm\?,# X.Q"S??&gWAYxIg}Wt!W=#ByߡJyH#4/DZ "R3\`OI;F]8PrghzիB &^NJqtzR(b@n/=H ݰ**'9!tPwq` 7mqtTU;SυPL_Ir;?_^E m#AҨO^>zQ} /OD&Y?zs>O{W_>ROSZOth)w[,cѿIR+^6&ni֭$ݮiu|n'`Fq^B,E`[ҋ쨛 -yIGеrsSz6/޹_UhBL)e,n>b$1Y'kPZ4A0 ݄VkUqUH<2{K]>Ƹkd6UC+.uCgl~Wro: W89829Qq@ӐJ:?#]>j7Ӊݬ3Ϛ 77Lߜ67Y½hse7 yb4n_ju/86g<猰%yy/_)*pÇ9>F{.1 sXʙ᷼6̕GsTc$LhNɶm:nFS|$礬aOK$>?ï 9-yq̜>.Ji.e 4T(7 +>ީ'9` ]+g!9uz#@ 67?0a0 Ovul_VzJK_\0w*Rs9yHݾ7Oʳk=A !j@Ja]ꬅƼ3!WzZnߵZ~4dz3}C[=WI&ۆ߷ ']?b8"׵>xev^}}p^dmsfW#gb33?&p endstream endobj 29 0 obj <> stream x^M$+cͤaG=Ȟb-{ރ>ofe2Uid İ`7vsn~r^_O[Zf>}:UKg?>察cucmy>ka?k\rÒ]SwKnsj%!,~.slyS s(%8=9c>]&oƮ#SUra+KYfXFƹ611,2u%9DoG%] d΁CCKrN5 ?mX0긊:?]2@rCy_di:yU P 0!]JmJj&zH݂_X;cRW"W\jb\ ZPm:%0e趽ci8HJ-$ʼB.zٱ<"Ra AZk"IjJ|ب-35&mvw->M:H7 8`XPFNi >ub K5/=Q]oCyM!]1"@C֘lKBu6TZlI}F@Ebϱ8;dC@1$N Z092ݗX -b&/A8IIi8|9RcXI,G tO\52֊lhI)ʆ ]VBp!pdmxy.M僟 ɲ [\0;L@6x8nxYqpT1qV;dB#wev i ء?@+Ab89GQ|d -'0e>+G ,d,"\h ZYdT-:m,r'ej5HUfr+iH .pEN`!c^XLYx1C,5BP۱ &V-POAGCYc dZ px8g_*G@~ 3]1c, u@)%5%*L`!Z$Ud0uDgepS-)sBW7R{L`!cTq{ehf[2qt1D=ǎe!Y68l[>:Fb2 d&aBr˭qQ\K´uɁz QVӹL|FZV6{d/XL3fM $Kra2F]J$Q%D0@E4uO]2sE: O j`-pêĈXv$Ї2-0Њ$Aa ː(j#B<쐚28s>;tScCF(1UqU!D2EG Ro! 2G؆斄H4:(;mX2lep>,i%c.r* c`?<@&iD$YČ A1SqPۭIHGhf퐡ij,tDa#"EdYY`R^ɒ&ҳ2Xȴ th,38db 1FH?(Kd mQ[4`Cb 1(zIaFo`&i `m&vȠ9(^!N]eP5SQ&C!'i1umI"fdyc@L$ڿ'Ƽ,I z0BAIL`!c c{bRJus."Cld0gd!ɦ5E#",uhsiI!CL vk^Xsc 0n\?@&Luı6랥Z(й*K@cﳞu۪psZY2(1.0ސyEÎLۆ.bL!߯hl)`Z^<\p1i HCA3 =V(kpu-c$bp>hqZle}3 qxdI.\,$zO&f\kۗd}O&m o#)tA!jQ#s6] AAˣ j{UT.zǣF⚘ RLjdRpu`-JuÄ)B]_ъᔰ0i:a:Q!cR!WK &[3̣Bgc'{1r3[Z))~?kc|PuxIxC{*ERg`&c4xrfz4+ [{8(Y+uقtKH*seg M_|C>a$n|PȫDZ< pw9ui6-jlY1xEm~t#u>xO=r>ЩƲ -ғ?_+ڮ͵ƅ~P?2{oh)gcaY-ZP§&ϬnWMa|7 ll׿4WT(HǏӺ[<[nZ7[SO<-)'.枊tV77+lzs_& σ &f=x셷|o2^NH{yzv'րxm] .q}o>|g~á{qǷ$1߹o8R?.&I^㲾lE=X~z$~O/]?A["~+ڝw\r1~\%I{N.+N>rf(sǿ]Mv5~g\[G:^g}c݌<I1Xw᫓E['u'exɎ> stream x^K$G+j-%l%K, C,`c|2o7;32NDl:o_VmO3v~'˛|?}^/>b_̲v|]jXᄎ[%5z^š[-o.ϱPJrqyrkDz M>Uߗ'4 FXRU:X>2Dk!1mb*13cZY %5آ#IKvưF+ :Nf<1ߗ$K_ɣEz\obEi+b*YwO!u vFEԵŸ5 ZPM!t9Re[̙OL M#;MȄ)317Զȑub j|o{:ߧ4!]1"@CޙlKBu6TZlI}F@Exbρ|0>yPg&p&L `e&0xi1©GKK&xY S>!@=8 2 5:rD8MX3IL`!cXQʆr-U6l`O ,l#t)x/*&%av K l Cx8Lc'Z 9rcw$B8rNP3XބlBB{dC)Yv(` OJ9,2CѲB d sF{e,;@8ZG(CL$,Q5XȴVx5.JkI<9P)*|:ט(C@EbReֆ+L8&i/(C+׫戲@&\|bjf Γ,ɡ1JV,u%nHև7Jl3a;l[i6.JHC 2sE: O jb-pêĈX$Ї2-0Њ$Aa ;(j#B<쐚R2r>;tScCf(1UqU: D2EG ROo! 2GاΕH4:(;mX2ler1,i%c.r* c<d0gT 4",bFЅȠPdke)8$@W;L` ZP45Qdΰ[MZ"cV,Do,0v%7 t2-(Çg<xsAQ&6R&YBm2-6EB erQ# ,dZ+(C)r(] 2s! ıS 'G@7Xs(P )Xȴ6Њ$f>dyc@L$$H$CtV!CL b$Bf&VT#PS&bdΐ*X;̬(K(#v_'"+ ,dZpN⌏he#2(*maΔ (  t+5 w&ҡ؉.ߪC^ fkҺ1>&i-a; C)ڜIt|0 gSA@CFn,(ZRqZ(>3BC+k@s24@&D n( *pˡl)tbEF%,7~k&c-`Ecd(EbȆd"Uf,Ktbfe @&VV[ S!'6O`̥r=*gl[48 Af+NoFY㔲#B[iI7: #AgS5lMBNf ւE81`dܡn*p7Dar\mC8h3mcN6Bo' cVWqsh[%dr-)%S*r BԭUWt *;<:*o`Z Ge(rYȆdgT xűULQ:E:vdi;Q&as4+ X (Cyb9Q(ɮeh ހ -IkZ)$QHd3Lkl@R\vȲ0 'tAR< `g"fVjLϣtG1E,=1"'6@LJ)0a.Ed@sZN2lZS#+ohʲЁ:d2T`n&a]e<:&i-3E)ȩfdDxрLnYƬbi,1>؀L0XY88AQ]%ό!nיt ]Ř!CL;_ R y/88N-cӶ?AFݑƧgzyb-P4 [Hgc <ـdVߜ=?rdz{#TH2}d>{"Mx`:B?36RuEύq4xү5fЭc=Z\5>-ҫ̕fHYXT՝iZzoϡױ_}}+2+l%"3qjmk]i&Kkw_lC/yD?\N˽ ;_^-b !US'%q @GOUwGeslr;'xNW#rhќFBT7ș\QSyw.|h>O?OaS ]ѸSfrqw?.o|Of{OjvF]Y;.>0u@뼜;׍hEoX}OK~/CwCzHOly3Lc}Vnu }BӈPNwU!dI> stream x^KG+z6~#l"  >ʚidJlֽ imJxy<6ćE+G2#Ag}IʁUh8>#:O:56X;澎~q''TZc} =>f\(RK;ǒP/;1նV&aRD5"=P]س:\aOTL+ݠ #72kãUd,kxY S>!)@=)&` Ma%0`Ogm`o1<0Ybk5ka#p@goRGdgd 2R+f%A(s2Ľ.}l\tX# ,dZ˕KFLDNQ\ vZx{2l&3ݽFo&X2AYox9:e"؞mFYk$759i'h845XȴVx5.JkI :pSUv1OQ02Ĥ#$ W\qL`!b_QVWewxr񍺌)֪28O$(YM8,cԕqx>QBd# dZfT ы^8 :WT09[Mư)1"FcdFf HJhEa ! P3[,x!g Ǖ)ޡ<7hfs^:$ ev ✤G ROo! =\e:b bjZ"5hkiӸƒ`++ &eHq/s0{< 'D3%d ta2(ٚ|9Gb`l$䀮235kQ`; C)DYO:nGD86i͋ȎYVۙ^Ȓ&Re&i1c0W`vcy#:@&asd;IfeL f9%FѭaDlf2qS OĮ9ŋd)#p@7X85sΝLB§(CO`!bl(C+Dz Ƞm2lGb̍dI1(Pg`2T(L. ,df kEUO;<QLR" /r!aee5vDkDq1L6\L|;< Jّ=e4Ԇ d3 &ҡ؉ߪM^$,c}L`!Z4v@R9a?AFEڧO6 uS'D <ׂeXh10*4f`XH6\{eT9a@n9t-%XI3H{x85XU2:^EdC 2QghNf,KtbftpeM\'@r](CO`m B`K8zox3}C#$.)2%eVdQ̊(& d# dZ&r`s C 2AVfk0#h2A,dC 2]E3: xűu,uM! 4vDQh&6bDn RCT?@&LEbcL$l(z2liEL\(D!52fJqE!0 UK0 SH̬< 25Nb2 98=1"'6@LJ)0a.Ed;< JN2lJSGW(ʲЁ:d2Ĝ>i:&i-63E)ȩ C 2QgDh@&MY,cbi6,1}V[ـL0XYg;8 J.c5jCיT \Ř!C̉wl )`ZZԞA۩eTv'Ȩ;t C`n<2uMN֠e$qVZ,&WXXBp\'xK{G+IVoG%7Lnō;^%xvʤ6 쒙VBT7 CʓTJs$)c.dDQ  @OӤFuB4z05.`TC.T )2x 26y|et!vA-CU_Q2WJrWVK*yEc:Q3*Q[[\Ky\WB."qev~;*|[r[?W@oentxBXlqh ȯgTe)6w-ޕ *V@nQPSFBGF,9:.NAG9|."uA #5T@$;gsv 춫9JQ,7[.ǓfK?^~/}IZ^}GQMxJX^Y~KndJ__i":8V)Gڿ!2ܫKpf36Ǘܮ4l ls^r"]LsnnZ] 9/湷y~XG*Vs~?7l0Az12϶YGOV;67.o^؍ü0v3wߺ7{Yu.ϡPsKWYRX=6>:ED} sxɐmsS44, Tf=>ի1gנ@)Ѯ73K3WlF.[o +8t^r:v|ڥrxbqA D~yItucRYl(Ie|5'GjO:e%mmBRR_O/o|amKmCi[<;St<>}rOZ/Usfb.$.o՞e5o.bRu:C5!n/q69- BPև?.o ܛ>UZAmϕUi=*07=7}Qnu>tP?A!{f:޷ZSbAEez. I3(z!W{L.Yjyb|ށ⦅-v3`Oj>ݞ,Ƈ/NTwp[cO|{{^fexxffvylob9<^Bs endstream endobj 40 0 obj <> stream x^śKdI+b2/~QIM4!P4 hfߟ}yFtE5T3nsݾ_kn[\N^$3v>яnoۿOn!o_2fcfn߿ Fs%Cٿ>aRu.[N[=׆a>rBч!L)9Q!9Ko[=#.lޗ-l-.?k5tj|5SܗS:F6l=3ӱ8op$PҿӖݱrl8޷gs R߼_Ixn qWb$0z[C.HK T6WZy(`.ظu[ cƵNٱn ubhu, NJu\ s1XPiLE!;! I{;-TqY%V5g50;!(ReiYH[/!6"%d5Z,.Le-~kuIcKٮ MBt]X|l'E`Je,ڛF|} qq%gIz#D,3 4W\\b[p` /Jܹb刵zN7 dcPJH Q(uK G-VU֭xdD[ SC1@\)Y؀{#dͤn,MF!z:(!fK ;" 00LȴCt&лKTxZ֬&֨*l)6M8X`"Zɲ<9fY许1m!kV[/YfXi.WNȪ~, s:{e/dYa 5v8bݪ2 e2Bd6˰n d\w-5ZL,kb+ͰiyP&Si' FLsN[0ZKMZB,YV;ƼdM!8IX`eX4Y la5:exY'po3, Ku3@)P% gSQBda٘˳Ź!z 0Y6_ $`cCY1j2(a>,hXȘfcE"[|E >EYȂ2?lo21Ql eVLsȩe2*R-dUqֶlp;[n% 2Fh 01ZK2Y,ġʹ`W~< d0g?@&} 莸ta՚zB) Y:(1G^FyvSeaڿ@& U>\#)k^DvjEDY#Zm;=Ȓ@XNz(BX7Y{̥IfV,3 ,d+,(r_(E/As5ceA[͒%"tq7Y8%KIX%ˌ &SfVQ${@| hKds?3^My3̲dh-!sE'dva(1WT30sLŞ3_ uTUM\F+BW2BbXY=iBq*if=>bɏ'AQiBgG(!$nLoBNg51<'4 uQ`!\44vBQp@/PP:6X(F% 1浽rⴌ*>daf]XVY> d0gYuTLa@ؙerYȦ d ftcDdY$8/ұ[ CLi2 lC(>dBn Rbpl6SY%pZ CQ,Y&!;= #SbJJMw."Cl= d0gY,d"ٴ8pb]4׹ڬ! viNxظ5 ,dLcs1 rnôLԙ,/cm=Z8sU,R †%r\[Ȍ%lSF89-ŭxUjΤm(2.Ƅ bN]إI cJQ`ht.FAi}tG_+-/!*[1RxYybT`!C/Tg8J#v,Թ9q}rYwWQQ;o W-Iq{n"''e89Q_'Ҫ;RF+ʵ*04@ϐ=Q[Ͽx0' ŏo_{ =#SwܒrMvNv`W8XML6S/T og4@8wO}qmxpW o> stream x^Kdq+re^y+ hzfb^mi$íb`03*XBOuG` ;xro֯?U7-S\Nߞ!HgTYnkC}秥N5/)wa~K=R:١gu<CCki.e}إ}+g8] {>x؟xÁ㊝rP84L9{&1vuZ9 ?yLH®gVHO,Lp:j`:P\0%l}0ƒŇ8Ot%g7.BTY[/vm%L Z s]bf`ҁY(4Y! f ].Ăe};$,yL` Zc;d(j*l iZo2ښYYYjT[4C&kv_̺O`mRΚ 8} ;EgJY\R ٫,!KiJGnss=$ KE(3XiPָ(ŁP@ Is$F2D^m;d-,9q !Dk+!Ze&6O rё*hez;q.hdhv >Sjt@x#d̈́n^fB5 +In3 1en_IPCLgNqY*yG` Rp458 kB](ZUq/8zԙNHYı[H8 !.Jzw!!h%;0XXVM`᜛5+-)ƀ-mPa $:D댅ˎ!hpY$nFXX~#ʤTTdBFKZ橁,:5etY=`KdQ5k08CKdO` kqGRV;=Q>@`l8l;ɓY뀌 !CLլK5 9 G# ,dZ ;jDǸG3sf 8S i Nδe;!22-5^E`;nY̹PEID)nu@6*ud݂%~BVfk0#hl2A,d]2]E3;تh(x"2Ĵ(:Z,mUZ1 @&LGbc!.e3 f ^U[Zu5DKF0Xȴ`2s,a*̥x0c"fVjLOtG1D\wO RfY7"2F @sƝB&MkڿC $HΥ%f 1U3ۭI8/[3Lkqil7.JANum`:%E2qlͺg\ NCe@c3ז23jg=`܁ |dV Y\g6vcB| 1/wvkBTc&Zz4?P C>#AJ/CE9vѠe$qVX '1/GzS=q2ퟠ^_?琑Йqg=7P$kƩOϿ4p1#RvkAOL"ndih9opcT"qnTAKD))(ʤ#ť^lpR+mM]4^j[0CFqm@}ʹLE4}U{aXǏA+&aӜTZC8 , |VpSʂ Fw=?v#2kqmkwX/rsmiG}WW;T=@lN$L63ͱټx5Ŷ4Y_tFjX$I0[8']<_ﮫ\B!U\..#86vEa=~^~!jJ-+m=0=I-~/p qf]9bSeCJN_{F10HiLC{)Z1. #zt *MtUJDfeْ\u%[O$m|KvL4Ra5$¼]+G첡`{Mkҟ6rO3v-R.vn-VZ,ٖ :?ߚKoӲ*O_K1e=M7e>/4[W[٦_#DaU_js'M5f]_sI|"@UzSp[ś̸L^LQKۏP.)xBMf;T|NhD"rA3+E~AW|Ig㎷ڏ::GVu0HuͩxpgĬ$p2B\bS ˏ> dQ' z :Rەg-,VL0(q;GWsKJf!6DMouG5ޖ'[R4#m}\{F.SoTs?fy=o? 9'\p]qJKzΖ0hcQ:gG3~؍|<fnc2ܬS8֣,ײ+~f]blߺC߽̦oV_4Pg fjMe ӽ֥u^޳=ر{~rX^cz_>$ū[{g/3:,S7IuJʿ?}:rzܖvHCZg7*>6J4[gTW_Kv}tq1J{u&O T|~9ʦƤ8F(+;tvM|}쬇 ^e b^ev^};/{vo>aM-6JJyJx endstream endobj 50 0 obj <> stream x^M$q+; c  >keꪌ^<93ٙoDFs[i_?57/).'?}Og(3. .96}_M/i?2˺ڱ>ٰݓ_ֈa~J|l 1Ω:k1K ͡ JL)>ns-)}iisK ]/miS[L!?c1|p-n;;oD[l݅ө]χoӟ?D>͹:8$[^CVsE'1vm^9c6?y|%!g7g_Q!ea3  "RÅOfWZyдy!c e] nͬ?q-e/f'2b)DgW͇¾g.خ,bRY*ʒKK3kua2ŕXVOİf+0*q 8J uŊ$:B&c&b]e-,9qF *"_CέrXCȾ/3`yFk:\WV7pGeKt8ڠ27=H=-Lj;Yv3i&b#|& L`Uc4hlnW'?L F1T9"Ш5k127 nMO`eP l96zYI]c,)[/bS***s. +Icʪ~-: Y8%/+H [qw *́\5LDjL`UbbpLbV5|ݵ\F/kc5RYMՓA&`OE,ށ<VeZ+/XULk VeAe-!}/ Ъ h&*c12Wlo(* 3GUY~0 >ΜO@3k2tT 6hld"F;U*ST0[WYې*9l1DBˆEFEcAd"F;`,ɒH4w! tz-Qș dg_B2sGĈvAњx9 2 He`&*c-YqyNSe?Lt+8Gcּl" :zYhm4nE'*bl/ 3Db=CwT&伀 F/ve),g^M rkAз&"YL`U8n2!/Ae@)ؼ,c2xY$u6=yH/` ʴ F^+ʀ(m2lR ݃$7u/dh2Ӡ2 vWaL`UZQuv)O =?LPU-bD~kr%vY! Y'jl2VeZp⌏pe#PQ@hG(Q$n&UNge2P-|@U_U6N*mE<@#~GA&kٚVeZ ; ZDGG3*pCBq%!*RFGi#EVeZ% =/pv^+@Ε(Mȵ$N`B}eWp (;>**nV`Z Ce0rYu*Q&+fՑ/RT2e"6Gٚ@2J"UvCwT&LE`cU&] Qf2 +B k2-`&*Z>*-2͂] Ae rX06-pTQ ^&"W#}+Ȅ2]DX/;*9cj4*Ȧ4E͡e[oOΥ%fTdftn&bY0kf2a]08ݷQCP3^"\U&MY,}B%@`4_ K~4*3 fB*|9)1b;*J,c5jCըe3nD1i|Td2^.DR1L`hl.LV Aea|H"W:-~-DU * [Hfb0>UR<vP/bVo5uD`o'q5&q(nh6 0͵I?o9u`T&w슾cpD5>(;Cv>+cMgߪ4 @p HR' hy&㓛QA%@ <=WʘDf]}pn!v[)ALlIcVh3jbm1NDdȼIRJT4,nG^ui9D@'Dc$]!.~=9[u+ض|__`:6#]- &"!F؀JGX#PZ%2͈qQY@2,F y7m@+-BJRQ+ rR0jMb/rzZ3-puC B|º9&9gznH2 n"ײx"rc۷L>i$}HTe)[(aU2Łv~ &[ &dp8|!:fvؤΈZ*|AWn쪑BˡqY-=r h܉;r(&tö;m2v:M:X"P4uSfZ g鿈3c<)yl~p~ßʍiRO%1L>Mg.| E?="dk([~z~FiTf4r^4>3y㨶cM)oICքiOOLvMk5k. 0Ϟ 7w%]&xֻp$g,g'~%?_wmYϒs AhDM+ν蜧]Hm̦*IFJm C+̺7 *b^qlh![gT_볋W)5?略 Β{T08V+YV~Q0ě)ύK28`p' 5_ Ne#]< ,gf.8V+Cy6abGħW:x$d"\'ݸWw>mғ: ;K/4BYd_Wlrӹro]xj{O[[)YWp}ZEΧ&{'_^={ Uq]*?lE'Z:RQ=|#Eg{ВJ8{׬Y)w>BK#j7%:{G(WDɝ9mgl ε7:7~~?Oߛ_!Y[S=߅]x!Lze?74I2܏ēq/Q\?D58_HHsB&=nN/.?=bwm7}~y֐zym?w^_~K' #>ĮFG{]@b|bd\^׷D6)N}+sߴ2,ǚO.ʾZhܗُu3!Ornt endstream endobj 53 0 obj <> stream x^Kd9+b2/z^IXuCfhƂbYCȌꤦWV] G.[s/8/--rI_>~z>s*kU.𗏗/eڹ>8԰5ⷬO-Gm'#K*Υri RQǵ\P}F SikyYc J|~RsK kmSHbd9:f|>6CڧC:r%{aӈwwoѧ%2Z 8ץes52V-|$agd_17 Ɩ 浄]xLXr@Zc|H}x0[Kzn\mk#*̬-TRVɗUc&v_fna-\aYox3`V34b.ͪ/ɥvٍ 9:0`JXrΚL`MZc(j*4 iikn> mͬK,e5~5`JbMY X YsU!0f0{*F LfZKb┌W 0SZRLī[L C fkJ ܚ(2 C Xog2%,vBˉ58VB\.ԧzp5:C8&҂M A\N`!Z+rI)D)l0K \lΦ[ C$%\Rb]58BlK &e#A?s[OcdpjLL̹ (ve),65#bP@E֡ekA?I[8DASYoELce&a7F0Xȴ3T^{x?Ar@Mҙ!uLuHVĜ疜‰2F;w3BPʚ 9c d"poaFkpˡl)U!P#Qr,(nL` ZVT4j(O:Ct) '$kge @zydU\'@ҐS!<&i\hEp5 s. (l 飑,i?( ,nqB>!B]6(Z&r97߉C 23yc:t&r#Zރ~ ,d,F+Ʊp&>gj6c6t[8a $:Dΐ!hP,dkMEw# ,dM@3ʤTI2Ff8+SYtjʨY=`KdK);E'2<&0Ÿ@3)I+Ӈ(UA|Տ 06|;œYo而 !C̩YfkR g# ,dZ ;jc3'C3t (pچ4p&Qi3mc uv1Lu5x"ZA|Ƭ< \h(@l "٤\KJ"t: [InAe#>AVfk0#h2A,dC 2]E3: xűu,uM! 4vDEh&6bDn Rkb;7 \ !eJ7+&6Bh!ϰg~^4:=1xط=cE6~t@qEs=5d$tf\?3lIj7]zL9#苩[ĭ,M>?FZ^Y]f9U]Esл]zG7U:Oق~Fy7`n48wsD:K7%(\ԛa9s߃鴌Y'c'3_]8*=g;(χ.W@=F^ٻgKy*Y}߼NkPCk_70DQ:[)96nin6ѐ. EӾ\qwO=56ӮN5;_'eߜ:F+"-{f"_^bUo^dU;nZ) &/y?_~?Oߚ>z#:ɞKҸ׸zFXZ5 %;XܞnՓ{<лؕw On6=m6F8Ɇޝtw/٩ endstream endobj 58 0 obj <> stream x^K$qWF[(%*^ОB y$QrxdI^;B8=P3y@"O>h:oe9~inRKZ]N~y/$ǿ_gT\rl~._.q?_,}s}}>ϟ8԰͋ֈczI|/a\Su.%5-׆b>r[Cۗ.L)1nk-;Q!1֖лz_֖BJ*e_sZKk:ʝ~zgHa_O#^˟?} >:9,[^aIC}[cθF﷕$+.q6&X^q}l a.5܄auŚ͇'yZ{vچ{ٱn mDձXj8Z4vh+arne&lVrh`֘5# fX;"7`K{jkr.bb3>GL kޚ1XSV(&J*0 '0CZaŇBF[3+McnlŬZ,謹Ъ3l8`*ɯխS2^dҚrP`".L rw#2֔Z+T25;JQd 0X9)dJVYɥ93-'&'C[ qГ˱/3yz:ZV֬`%r(To$|@(b= mHڍd=oj6-a#v>c&`"f 0 '0Upnj; 0S4\-@^;uկ21lev *Z2T0[Ȃm:^9)pqs6J")afnX`s,N0-ENVNb" F{ '9My%$3wČ +:2(&@V$'/k38e=kFTSea?A& U<#Ik^ẘ\,Fv:|#K*[w:|Xȴ&Bs\l d b2oQ2Bm,Qj`SbD\C 5 )fu23Lk%xe(w&Jdiٳ\VSfq_.ı2 >EBQQV$4'A9Se"6$'`ެ7,s"ZSdCdQ~k&VT/#PsL3 uTU-\fVdTBpƎ(C=i\qL`!bb:G dPTNoj*ZV:MH2ʙ&ހ r|.b<,5 5Bhi rmϐY6BgCꘚjHVĜfʉ2F;3Bʚ' 2lQaFkpˡl)]!P#Qr,(nL` ZtΊP*5Z8S 'DE: džqR ] &VV[ i)XȴXMc."8蚚uĜ+m)"$ 鰑,i?( ,nqB>!B]C(Z&r97uC 23yc:-PM!Nz!!h'0XXV-eM|Κl-5ƀ-mp4@FIN?t !C ѠY$ ތ`'wAc(RQ'%2⬴U dѩ)jhgE-Mi, G NYeܡzCd/h bNͺ0[J8L`!Zٸ(?AFFK&G L639J=k#7L2-ץq.hv>2s1#dr-)%`*r耬*uGe݂NGN}:*o`Z Ge(rYȆdgtcD3EY8/ұ CLi2 l]L`mFZm]21g:  Hv?(+(DSdP(xҪ8l)DXj6B|jQLWd.Ń ǦȚY 2=8erݾ#1"<&6@LJ)0a.Ed @sƝ8B&MkpHLNsN bN`n&apf ֢i0.JANu_n`O:%E2qlͺg\17 (i~^b.4֓BB>"ea\zq@=k]WB\x3/r㮹n8|}FZځS]r7[yloXHjoҺ*dPJ7VmQeդA1~t4w7^?{ XRԪnz0+漚R .~"&sϰ>L≶L7obC~s{j3y: cwK9 {ZdU=8Z)uǵШʏ16OzJ^wd4%b=)=>%6i팚މ؃7e^xzڢ5zlS9z iG$~OUsYs˅8cHp&2׆Q?zĤeS;t tFy{MJ}E6 -w&9jK!*5*owT@C)g't9g۝eV:~]jSY 뗻t0{.w4g'Oe6\hK qWdI /fHzج?Wjgo/謏 #&k;ʴRp]1c BR<, fgzv4a,,coicvߛ;oLg>˗w~rq}Q~a&;?yeW?b|dJs֟^uMt}evK/Sƾ6;샍vxskg?f<< endstream endobj 64 0 obj <> stream x^ˎyl0,o¯挥 !ϨC*11fv2ww;S1s %Oa61Owۿ!H_eT N>۟w?Li~%'Y@riKY.f2jm0򕢏=ʄ`*rdR$J]DّjV&EYDY!CX!+ 4dX0JŇ;dPT 7)tYʜq$ͅzCC2Z]0v5Ffj m2 u Kۤ3nl!Z[fCRhbf=d0g, 62!pbF5e `Ee#H(vFR!29%!CPRϧPgh OQ-!^P+ )Hej ,`N 7 K(<$۔ZOvDZ QnQ!!kBQ'P(R_p3˛dPg:!e-pFs2DLX.w"-wcj qaf979mV!0g 0n7 2Kuk=\v 1DLC&cs^M!c-nBݣ8ਔ4cTkȸjΚfȥzVp(2kCK+d2r@A=;9dLsqJ>+%/^2d/hbf̫&BNj R%pN,ENpeYR*˾ qPIGɗj&%Rw#6}p3 ;DO5vkثW-ߔ%ϴy}ޚKb [*xg -䏪aն)usbe_84q61NIr=sϯI<:+|䁶&(Dx"dHfXIp$ cemF14:@IyBvҒ)akk)$MK"^[ӯ&9M5˴nkl5(OXvRǾnK&[BraYX h*C@tLkJ~,ǔ M:ZںRϙŽ\kP_|z\ק+j#>eq#jyUszڅг 9=I*.خ$\ 1. .Wqk({xĺW)2f1M{~.Cs{x Lh9d8dW{zr OpFJFmrueu3ֳ{sf`N$O&4cyQZӽGHvA.)jf ]]=KmkJrl_ 6ׁq?=F.\Dr|Z?9S*sEȕ ~NStwgR'Q(QKf^E<<_־ӝts/y$k|X}]h`sڿ2\k|{;nͼjn/ ॊۯŇj}gz6+n۹Kc/V˦vS݆gv8 Ϳof<ѿvC]n8>yiT:Nk=ۭ;ܓ-,wd]H~bB0 endstream endobj 68 0 obj <> stream x^I+r_ À%@7{eY>{]Mp 5dLv.byۓ[~yw9OVOiq9˻m[ }=jgpɱW|rzNoN`u}|m _dޥ4}(S/0.:)%Ğkcc>r[B*L)1A|~zmi`ޅz;R:پε߇]k7祇=8A~z(gHbw%Pwo Ǻ2yKEK8}^r):\=ggFE^T,|>Ń7R=7?3PYbp5cljCOfPhٜxAsh e倾+'/R_ .X(I ^sg5&{K]`h6\JK pLXŚ/WƥֱkyO,}=RHrݎY ;Y~qujحeq.3]]$v5SKXO ki"9om!xU{h[%"Ny҄9sV f0{ء\6 aYOULTBԏCK Ruk amdclY,` ݪz.O#u #?hf Ţc2j>][&z2 ە`'0 [mRV 'zI =,ɻ퀬sr$Yף$d2|-2vEV,8gO5^҉S %Xo@1^:C8&‚ 0%0JM`!Zfr vf@B;Vbw6JH>k$ Ā[4BkMqL0-ETj ڕs7} G zb˰% B2sGzYDAdo qevef kM~dS Y@9{DCbLBrP 61)[/XȴZ 9l#%&0R\?X/K`MfWS//C\C aef J\&/cS(E 2yY$8Ų(R3MYR^cd%ڻ8yBě+x ۆKЦPBn{K@ Eje9[ƨpwJ0XV\;LWxSą;̬]Dd; C!2-VH]7x2(*W]m.+mX6@ƅCS~fvahfq33Lke4v@Ʀr 7O$ڧ A(\ n !Ǔ!n%0je&:bUhʪ@sF3 bc!Ɇ+xe5rY[`K V^8CD5JȵM^f&Vh쀌MV(Ocd"?y̟KY(!4@,/CyA,dr!͓ ,dZ,Q9z܈x21*@!ٮ Ee﬷C&j5yY C U4^f'0kqTG—OA블W;p:G GS q-ϤwBΤwcf Q 03cMlΪ`Es]Nd'nH%@!C Y$l%W(! ,dE%$he,Ddٿ"8k-1F!4Ac>FnŲ#*X 'a;<x2lө-Y/ 06l;Yox24p 1fk&!pVBrTKdt[n \t!Hpd)U,X\^[96B\jեܐjk \)(@l,d"ل\KJ"tɉ/Y/CV0KK?4;MB.\ōݚ ,dZ Cel 2.OA)QF݄G0 ǓE" 29'/962-U Ĝ(@l,d"`!¬7 ["5yKJ0XȴϫdOPmdPg:50 ̿LEdͬA^KI%9t&[`DM`uR`fC]e3z  9f!ɦ4CUAQV5)gjqfsks{4 K<2E2ء\69UWx3^"^4Lj1.;%\4v@&!TYh'Vu,U)1Nj#AQ]%όj kyCހ Jdswa!H(L`!Zz4v@Ʀ?P E{G.NO+GZc%5jo#GR3^Ƭ2ȧ.rkfȞj?/G[覧tiYH7n˭v:6iN6;('N]b*'o;zwhD"<ԗ+d<]H-㯤\b0F ;" Gs87G2(i0Or3Nupz"'˟GGj2遻%67I)>c̏['*8KtBuCO_"uݯz~l[r|AR1E.k}joAU<u{R ^d V#ckJ˄q2O*2+d@HI9>xn ԻKPq:m·FHƎrUîqHIV( ,eOn P넿5:4f1+?KUP K=g/>}O}I:XX xyo-yyCG_(ve/iJqdIc3},eߜg|#ϔ\>I:̲Φl;ou1tʱOI5BZ⫻/^\^mޙxN$? ܯH'TT` \򾼶{;Ƌo4,|Kg]:tn_̚o9PNyT}sT]WN\r2Ot>Uy*(&=a܄pLIf*^L2ƸYc0S0AY!Og.aj ӳ+[X-[мPs(,B,)@,dmX lu-q.Q8B.;s#W_&HW?r| pl74@ z/J/v(3ED-Yf[oTdR_oDE85E9LN&햩73YL>T󲧺{_ ) n~^ģRδh6do# Fz7RtCYƊ}y\"f2·{y; Z4xëӞ/˿[;L1Ra7Lw8OtMi9He_n#06`(o>鳗=7_F{t@yרGȼޥAfa]WoрS]Z{- //_ݩ~6s-t.ߘoTFG8IPj+M7hM_gQV+ 'pT-oB}).]gn;=[y:x?ˁkKck%}@uz?Mozÿ ttxG4{:/ MzxoF36 ɚmiJ{]wa*RP endstream endobj 72 0 obj <> stream x^M +#eˀf(r琿b͌+ErY,$eU9wz{roor斞Z=Oo=and=jgpɱ/8?ן~~sJ_вv̼nf>4}(*;#KΥzi 0x %4yX)4؂%\=ggFSD^T,|>Ń7R=7?r8n1īfXѵp]`Ɍ0/|$92WjEk!K%?Ib!kNgd_A{K]Fk,jU\jXCA`k($K!c(<3K_jO.;%* jT .TJ\uL*ᇻ$z [AE U\[Zk(Mo@[[(kKuS;{&)6b-a!uQ`]r;܎QP@:{?2V A`aB/1SMri =$SS@3Y Ju3]69r /{~Y' 2vn<-:; 1JܺOe KIlu8l˳ɹB` OD@$&x{Xw%`퀬rZף$9S(2&|-2|d{>d'>{6aeؔ2^ < CgDBL w2U q dcd"ى9Jn t>egC4,d6N,8!2$heLGdB8k-1FV+BliLcʳk}X 2ɲ*g;NxdJsd,؈qZ١;Sod24p 1]3KpvQ`!\ٹ;=Od|;5\a Ҕ-XͲ5m\CLu86n `ΕL$kII.9%e fi釆6NKFVĭQ`!\Ǝ,(8 :sx ŀ|OY:EN&=eqcC(i@!YUpO@&̉B&]6 q\|#`KJҚ8tהe[L5;(i.W tMte :sS*tqT˸\mw/w))f6ܕ6Cl `΄.,d"Mp\bp(&r9͏3c$,N0 ,dLcs1 r9 2QgDhd862Xh#=%k.; ,c 9Nls8O@EuZ>3ck UYˋd0T*3Y[ @Np Gcd[d;D[kh+(ϯiDCȽXقK+4eã@+5(梲Jn*=ޟÏuU;xКOK o…-ְ5/i},먠ҶcZWOO=S.f"[YbOhBfu%$wD +|AՒ7 %\s_/v)칩+x1ɰ='fݗ/ƺGX羅lDx _ /j}_|O_y-ɡ{IܖBk޾14> stream x^Kq+F.2 5/@csgxaHFnGca3:ofTx㇇=>r?>]_sZKU/????|xd?]i|P '̙R}lO_hqIsi}䴄ZQR@K>y#ԅ)4ֵXُUZ]jn)waVa1Fv:W>Kǎϧf;z8qHǣ\dqt4⍱?9Ԃ2?y_ԯ, tX!Yy<%d A`n]*a.k±A׼o\IZCkc{ 'c-ڲ.%صWVJp\ve66ఴ(~ JBɬ/젬i"w`4:u!h2Jj8) %,8b1XSVfGXH :{?Y2A`a\-1GMbiq=kI&'La/i\貉f0{|)Tl8[mj ΓCL}fA$ͧzL uSS<=].D̡fKc%yW0P]I &Zj49ahXH,ٚkdp#|gY 'U1@J'Za H%6f{2BJ4JMF Yy jKK-9%VLb-Zk !{BNWLna:r.↱x@Hl3EDDHfA7(X< ΐ!8LFl`!,J^3G0 'YW<5B/6$ = [ת2:%}ev c/nxĆ 1GYKupe),萨kjeaxu2Lg%ڬ)P C pm)J혢,`DiʒZ; c-)2&e Hh 7KЦcH3]o% Ц73jbcΖej-| `-$kGp5M 'htk(]MJ0"t%gev@AvWXtXNG2nx2h-$Eme.+. dsވthyDXƪ"˷&akF0XtVIkd( ~o0 +IlMMD(47ڠS!i7J:Ҩ}.Te̅V5 o@2 bc!+xe 3-d+(CF"%S ,dh R-OC 2jhF.*@ ,(C{A,d)2` `] ހLy+@!ٮ EekwB&j5EYݢC>!B l d,ڭɸ8|?A'R^qNQxj4)Fz~+!h#c4X8Ans֬N^,œc rL$;{ #&"Pr.;CA1IXevݍ2bz2)Yh1g]eijhwE-Mi-ɀxOQ:EfydsvOQ&au\XW4XtX (CĐ9  Ĝ(@l,d"+FYA!ɜ7 -CpMQ&Q2s7؀Lw+L#x(ԙ _)"fWB.Q+5H%Bi#GbDxl`mR`f\c3F o@sƝuf!f4E?azq&2%ksh{X# ,d:bø(9M3Q"^4L91H:3F隋$9j p9#ɬ7խ1V[e6j^P7 A|2twX$21F0XtoaO1w!ѷx#e)1-c$񈳮LL뱁 1<~'̼ܚ%3d]y^wd~_sn\+x\_vWn܃ׄ#t݊\%J7jbBRCQxbt 8XLRh,(Эq=U@Lx!R4 Q{Ã)<}#z)Odg]kI{2=`eКP8S l G~d ;\#Nn3 "׼tYt*J7+&=Gy=zoJ.㥖QD;6o]= ~/.:~~ dU &ZUO 46};$:>9uۯS MsAh7ViePP26\.eig'V1,׶%zx^REӷoP`xP# N礣P~}(4}pUi֧%>j4@'j2hpq= ^[Y,tr;: M*po>^aO)06%<3-fWD5 BI\}3Lvo j6Pvǿѫ[9~w6rɈ'ly?o. p:sW0s> |x h4<يS(#g 8TMӉDu~$BKdF;X=^DcR8u$쟹I _CpzW=7ܚmT/{3W'p{Y{ɞ`{Lzz+qUH~/b{+  #E<>[,lGnLozY^ :Q=*˵@[T\w9z7*=eT|ߎeϨ`v /˗:2HqtD5':$ 3!)A+{Wl{(Cz'*Z#_'3^Yx#d ī5*WBzGfͩ|_}?G i -&y.:)9: i@q9V @̄wCQCl^%Pӛ_&wzU3#>KoPfrpMv~xj՛F}Nu^hƢdSjfi@4+qv]_s>19:`C!G)UsJuNoM' ʥ`1/uJGՁ\Cƶ4x=<'iD*Z1=H6ϓISY=o:u|a!fz su>=`YjZ! w'Ҍr6Ոms>u]s'r_o.=4cIDė7W %] p Dof:9v~IoZ"_1Vr\ot |g<_c^w9G{AӼXx#TFLlV5yZ~=V>Mw<}WۃK5eGCƸssav;ݦwv{\ ߈6=ݞ:ȗ7.V}om8G[Y>.){yE"+c endstream endobj 86 0 obj <> stream x^K\+ze_l0,-;Y}/A{f٬b)nq?8CsKOrwy>[ >fϨ\rl_Ͽ<r?WfYO>}3Cۈ_/Gi;%UREbϵaܖ|"z|X)4؂%z[Z)лx_ZoBJ&?}q:f|p--λ]+/9Rpyɥd/2|J{NF<WY(|>Ń}I!St'SNJv$^ cEuO2v8t(^| 92yK@_,R_ )X(d-ptKhKlZ{5a.51A@e5'$CZگC4쟜YR{r!R쒫X;f-XPcqua ˬc]2e Jªɭ|pRDrp`49طP* ZvV)M)6"6a!G&PWܫnǨX( :{?2V A`!!җUS8\v6VBamc)QBCeɑ|0`+c+) y*_tXiOLb}*kX3ӄVW ĕ.Ϣ'Fs?ŘaIޕˑ:`".G;4ad7T&P0QɆZLdu 03B{#|lf'6"K'Eza &(2Z9$V-q s56iJaQ7-b؞<45؝o;6^lBkqكtL04"l+fs7} gl?,PLG/q#&ͿǃQ2āwSSz 2tfgEb7+ sj){ .?A&z[m6v@XgہN2Q hYvȜe).F4R&ؐ'k"ÈF)dt%)0A mڟ)beS!,DHSД%%m쀌.NY&(dXfVQ$ג 7KЦLн\7Œ"*aS֖Mbe?m,@dubd2k0\ TɜamtթTj̊ЕL!Klkcd;4: 1Bf .vUw YC{YiK%IJI[=FCS[3j.b.̈́:A&PLW0*^0 +xnڋPh)n*!S!5&2 wJ B*u @3 ʣ1+xͲi`2xT/,C!MFG4&MY&(d誵; èJ5Z>amhn/)K,CLxA2)d̔%xvwa__p2ԵU@߮"Ųw퐙 ,ݢw0C NL'V]4bsn7_yPO.N='Ol|N֩o~q2q\jv~I^"őщf>B>o ͎ۛ$m6flo=ACצbox3$ZIi&J7gT,BiU[-t'zߚY󋊓[='5rf0ǙW S湂lneTQ_ّ: 0|iVW[1G{ wne=#~?qhp{"b]Q:d'>v5XO>c_>GE_AXev>{ ޅC) Vs"y`uvyBn)-ajVN(쬼晞j0m}&]h[=wޢWOmΈ>Ƕv;Ho'7^p~?|mϮۆNpMh~(=|.u< _qk_Ҕ~7} '5+8Ea]f{{:f-f07hOT?n_X }eWÙ5vm+ׅ_OHw=0^ 0;{O '6?q|ol@xv^pԀۿoA3܈~d14]Ð{y rDV endstream endobj 97 0 obj <> stream x^ˮ$q)jeՐL&4B /4ey3`V[i4NSQL^3Lws]~w/ݭļ\_>Ow uZ zCT1α+-M9)0Sɷ< ѻp>/ᖧb>koyݛ5uNc}ڗr5ۧ;s:33xCr\n۩bZlۜ VjggZV49id4dtH-:_diV~g5[:QӶH:|2m;C Wt({L6ikV嘰Wd%p 6+58w ?ݑ`3d(jⲱCC3\0.Gegm:C_ёX?ȱɴ 5r<KCt)){ya )ةh"Vgdzd„`PFE `O<.^H6KqNKhĭps)O\;@b[t+><Gf3X6ޖ\ANU=uw4zئ=J̜6`qVF;6 57`goE1K>뒬89 oiڲjg 18܇ mV˭#:@l-xxpf,dž̓E 2|E{Dd'`:"X#sT(WYItÁuc+EIS;kk8);"`.r؇Y[ yF+ Zd]r򗬕AK@%u?Ԕ=tm1MeLcjۭIrY+D7X`eZy1 2'^QD@"8 +2EGmȘC -0>/`U z`Ncx:Buu 2̎c0JE|l؉0N$Ebmwl6HhJ#DTxpkɲlgD5 =ZفOl1{ԩd/'!b<̓T fDȀ6=p"dpv"St4#Jc:ΈC:Xzb|Jm+F &O^6W[ZWNc96fj0}-B ؘu} dJG{KɊ(P gq+@s%fk+['LSs[Es!gAHq߅ BdX×g]2sDj}xZXFJu w::r10FaPl%&/EB^EhVj i-4:'P6F&ͮ0a FFt:CrCd1Ě?a2#eMzYGsb%Lz'Y%Q%r0@w1u,bPֆ1|QFh00h*"MVQO kě6+Mp#ɯx#7\O>c˕vo2$:VWVa x,v995ώ=a+iT{>;4Vώ=o;q}}z#Y?5R׵ `Sʪ3[:(mU,>Q),.D!Dݐh?DDEHdR+u D*"J[ 5$@$kHԁkGDCDMVݢQD;BHQN{O+p=~kѹ;:Z]T8 ,_^ D>#"@q6bq2??}M85~UHk-ؖ8-?ۧ~=>V/]KeKCLޮևOK`MrU@N/|DI avB2..~OVȞgUD4VE)2Fyeg;f@4fi*uq{Bܯ [YuW84ʷf%ODpc'VA .î4c *$Iuo%JSߨ'kb3S)ʪ߷xWLM&lZ̝2zis,ϰr7)I5% iZc#j fyQNU &ծt [`55g)ӏ*KCcәtGnrecޱS￾0<m;i`ȲW0%Oh|2ܸ9.k\wh]rmrVv;krٶBJ ~D8cjϧ2%?j ٖxwe:Sي]nڜ89$-VR%ByEdL)MS{GUGv~:}wf8 wAE&x}oٷ P^:z?*NGVr(֚kH+gu@0eA(@o؀:*"Q!p3U_r7T:"cvXND*|BN`>Tse_SW.G q}?G6܃*v2:}/3>=b` P౑ubһ2Np-zsJ[$H6n.)RO{w7U'ā/!l ]?>8q/[JMGgڄ-X>uWލ3eԮe5RS\C$3F#SŨAbWeLj6SsCYW7(ե54=`ApޯM,Y0JM`\VZSɐ,vTVWoNm.pܭz55U\͇e-=-t]'5i -ҩ5f޴TxQwXyaZBi4.*D ;7sY2k 5>;Y\EAfmV+l0AԵtPQ{b'Đo+e@mkF!+PՊU]U"lJM)}Hˤͯh۶ +lh^;">W,a3>B&٬sn߮U{R^B]w"l=3z -BʛKkB|" \XP\5I`eiJV^=W\ {`j7SM/?<nU 9o=TldpY]0gϴW*@y-ĺ+ಪ#'\ɭr.qK%pm-ԝ[S@UO[X$Cڵ:^rg( ?= k릿[R"ٲnu}kV~F鄩2Zl~j|/cMo*m=/}.qhc챀m`tnq}l=*ͨY,;*Iď)7mk_*fZO*6~K7SOs/κ}{RFEa;*G.7.>7tgD]NH§<nqIQBiZv뼮VJY0EOoV/};F^eA> stream x^K )ql0݌_A8_??vOwfzZj" Ƙ{3nl?v_PC0?w(χh+SE~'?w/no'-3O<2jgǟeğPbuiZ"!dcB08_c.f}*< Vv#1ڸ䋳'`]mӮ"ZkSe ahOkyX6Ejfј{QRNhM9{X6SC[ 8k2v.웲CL)ZEC#h7bGHK>$ i o:ck F5jOlUk &(VtJ1hzRcBJjqLa{qlԆc?LI#u4n:#5>wsJ`ֹLjlRɦ(?T4Em8*MD%8.ñIm U8)!9\/K%F+y;xqQQF1ǹP]xfeFH  Vse#eL9W @+rNI6*CCj% K /yyceL& RR#E ^+\L:d]˼KU'X| $cRem Nl$ʁQ{f rLP,YMOe;xk bU͙2ّu^&D2!yb!cPs$3kA 6ժp2y{.;Ⱦc.+ =2B| 22r"}9mڲ2 gDQ3 s=:xד[ۘ;%aQhE4=~m͌(ޜ}9 H#ڛ]<{^_L+eNǾ&E @#M~GڗO;v6@Q˙e;2 ODHHw's(~,R1*ϓPz/?b!UkΝ[S Yʍ@f#Շ"O+ajCǏ HũlF5y h*Hq._d+X&DE zU^}w{JEٯLr@M LNtEYĆ,tKQl[l[hct2K3^!2nm!mKS̻B#xJ8q_G|Oy|S~ɏeҪM9#NWIyT%EUg^UQuc6)n N[lDx{Vlxx.ր{~\|9:5JN6-0K?ejѥJ]ڎ5+f\DgnPD*IoW¹1VיZ;IcgC QT6R%HTLHlxtthg2 ,gl&4d%JΤ iH 24{8Jhb :G̠%KmY=eKxSV 83\-{FMՖ+gur_3]N{˄ v{f"fyD{WfG<~ ͳ ;X::Ky/>b#/ldv1/ݐ]>6|onAhV}RdA A~| l_rOy6;:C 9^9^g@Q]o4\oqj8>}=C+-|*bks{9=n;NpڎWKh)-b// 5||fgˣ4x'_pm]>NS~x|{t*WsB|Sux{Kr 3[n^^ڥeῪg+@D\Uo _ہ+ 7(FO/ ƛLhn%<> v4>ΰDF~ŽޚݬņnӜސњk&w8q З endstream endobj 105 0 obj <> stream x^Ϗ%qWd  Y9(!۲8|nVޝZX jwjd~X"4M.SOo9\& uni-t./]my *2կ~uy۟Bot?K{ >Z cSڮkCm;LS*%]-e0א9]uA=' ŧACOD㴦٠10drp5eZ:]FڊQݳ!`3|4:FP>Ƹ!Ӽ$}Y%Ȑ9\gAQ1,pĦt+;]Pд cuSc̶0uHY$cbm΋ݘf0mcqLu+i.RҖL%q|;)`ʡL<OJp$hk-k7#Nv.ר^8A!/+9_נNfDqrBj `Bq Y&3OpkoX< &E u=03܋A 271uYXD[#i`,V)2]*^B^rdAhX5@VmeiY+E O\o ~1edz-|Dlq^WT3pM+>q &u XRKFR e*i^7iY=tL! mPx ϩ5l,ui†r' ^aي2jٺmqʸ MH͍^p:A,epDpx1V)9 ҚK`,[q2;AV()AV 7Ze/<4XJl l6x0iTŽiTCjytXV[&p8Ξ32܂Zؐ%z E3~k"t~jDpxi,ؑ &Vt+<XJa% hw*Y4ĢN.K^GQ<4ؔ&zrim`+MZ\QdcrS2.M򗼖˘J' ^a.TǸⱭDcٺ\Pg8b2x8xqDpxi,@jk,)\`Ya6s!@ S`[W=Flvc1uсg`B|^G;5M8aȲ?c H?SBeq֯ XaT?T&`vDRg!B]zy*L#纸OGN%BzZ"vt4{YX$!nN%ԩA7旴F1fɩZ20$$MڲACN8.R Y2= '*:X䙬'bЍGwLV&%($DkI\) !&Եu>& 8[ 0&B jnD 5hC;"qY"|7E=ۖ vaY[hSљi=Ƨ۞Jf|١2>VۣƧ۞&San{ݺ9zz>ȍO=TS[cS* :m4~eVSڿ]uCػ%3D!B7vKdHUDUhDfzDf*ZkvKdH["3DxCl ["3D;nV*K QcJD9Fu߬{Z*L̈("wdnF3 bb-T Ɩ ]aRm+p'ӯA;DNSl:> ]~ϊ'g~w?v߳a#d>{|//-ozzǷijsp/!iNl3$zK$Jϐ)}ß!kV?X@I"H 3w#fϱ03K7/0ڸ 7M̊ž !5:TFn# î:S%)v2qL![՛>N UzHpS>~QEd?ow^[9~ h‡7۾GF8.}[ ct7 'Y UDc!(,]&$0;[!Uz~+D9hGNcEx# 2Rk5qea(JC9ZL#=ԯ~F#9P}3>Jv<y`vb[VSiDXuھ93WϭCv%r78Bn?N{IZ2_8-Yx]㩑zo=֡.E˷χҘA ԩ7]>& [ks]OVa}Y%VQfq:T~w^Bm vJ<[bp?U>k>U˘o$aE"sCRT~fwI3ʶrh}SOqS.t̃0O$CB1@,*Rv_!ҭ= 6v]Cv}i>r|`f}Ȏ؎ B]TWLlKݱNrjiޮswd $C֒E v3ʑrAsm9t~:bh{™ ǰy!!w=rB( n"-ftp)`x9ݼ5Yt ^ɈC NZ|8k[9rMRį#j_ls@g|Skq_;i2!ղsN9G '2>E<̎ǥ;)dA):8GK&e`\DK,dlmtvѓ BD#r|M&rnHϑm`JGk2Pz`թ 6hAPHJZ:ڞ?@ sD9V)"c/k@qATK}q~5:i&I _ @hSwrDC"1 0D:$p&^c9ܐ;plcr;TI7'X IVC#H\󺄝T#ANDԶkSrt+KA%AgXPPG]ޘeq,N gv}8hO .` 65XbqG-gVnjԪ=##iQ62* q$Q$'O0EqA [Zf,OtUaIj+@y#cWyl$YǼ\e 0pb]e' x%1JA7'F\XajI)/#Vsyj^ Ej[.xj:羈X۫QιGyDqj=8B(#C#`Q0>8_rpʛ8Ա*Ĭf˼ٓ_ϲ9uFT+6"#Yz(p #o q\gʍ/ߓ9ȫ|zqg}gxCr Cry<wqH;(C! Cro^}C97/&]>zIy˝9ދΨIzAH}$' 7Wq?NyyLj?T΃T1_zEsn>oU_s/G7 wH7KmkEjݫU5j-q@OuѰ V׌cSCʩddS!a>rfa^#)T3s1gPJNC}*AIbPu&a:5*dW`K)ƯܮJܳ2^*&@UT躱:.FSunr; hJRsCk6rV,T<*L@=b(C\FA*LfE9\,S <@(vFrj&yp]#;[]73Vmp[R_.2;pXts<'7Г ~|Ș{%Z$[Gnco7!'{LTP<mBRSN!22;ڞpwTSO뛫&t:C{\FfoHe`-9:|c,^NӁo\#[H||K\$bokc5)h@s-hrɹ<M/Q mmޯ[\z~Xb2>D_[Ի߷Rou&-\3hPRbs7.ڐ[q~K8(5vryMoi5 Poޝe=?dW pU?7s3[SקՊUC``v n 7B'om%yO8" 'RnԽB?0N2]q|?47quk.UO>sm}|_ڿ]|_\M;BYwŠ+f1>y(9U'xUف'}Ӫ1.;]}y.8?=ظ%U`V3NudUmUG{!\?8tyYc~)~7׮v7y0VZ 6o}a'᪑Fh}mNAq{N-q*p TJ/N77S(w"1CС endstream endobj 109 0 obj <> stream x^M$+c[Ţ{3=̢o ?"B"{jlt7K!Q|I"Q;voOovϟwiitq9N(gTm .9._8|^ʿW+<Ά%Ƿ'-#5eчB~%UR=t eၼ\7S'kR|^G=rYrK Җs,1Ά6X~f_c3> uiQ>Q i񆰟OnIH`6a,Z|ء)hTv- QH웟pT9*P =~%g/4DRQg0Hĸ݂KK;?8^  -,-16>AĚ`ٰBK0GAC8ڼtKh5nK]drXef} W6BَMطb0KX"3/NT.V &bX:n;BLWgc&cL*9A36cuұ^`aT{G\W/cA,>dT'D 9U0pL0o0F9LEd;JYNC5@Fn>D2x<{s݃s҉ c>8V8ggqi8eFGihgHTB5A&c9ʳUn!G`vF}Y_,;p*@F\t:;,_d= q:ˈ"9["',3L" SKDcŝ 1KN V12/GC2(Ĝ2N`!\i%g\cfo2bV&7.%pId ZUYCrbB,i`&Z(U+)0B.keAuAgde u&+hwr29svOV&Dkл[B&2J$8nILZٕZY멕-WzZv!F5Y[,5 L`!|S$HqJ?2O$R/ȚYBv2I'n\$Sנw >d\J!2Sqen dDΨ-dd%/Pu uP9ڂ!}քXa`&Zf2V S}QtHOI茕H\4|B ;kc}XLjF2r`R[F9\YQ]ŗBĶO%_ĠXOy B3 dn.L ! ,d!A oqӅ V23yRV2*1c<:WGzXX <!T-3d*= L{} ^Ws,ֵ9o9../~7_0EaKӌd5dͺXJVjԉsMğJ?r4^$IS_Do9Pm]{}E]zJf_fI߬3:k}v_Kf[scne]ٽp$v΄ⰯNT5J0Ίhl5WP=W}$W UƾJbL 8'B " .:DSFaR"ᖏw0x "m[2WB@)8[鮝k? m/khnk& \w ])p؊8jI"~2|"u2Rb-bCPPy9Ir׵%fz1KdN(n+&G_w"XߝDR=ZN"=,N=r1YzIr(Oջk,BH^¹wx?CzPH!'_ciOwu{?4M5[ų'O1()QN|t?^-fQeT8[o]^˽pyL Y&_pn:`f9޾r)j2r)݋W=){8tRH3(HpZ}%V[1~s*g:HH@jFsjxT\RT#JFtd6bDƴq-~%BM?Tz^`Oles4 Oy$bR4JOP/ {J*QQQF/V-R{߳}}TވzqxL0o6f$5sZk BJ_nO}:Zdd_oK;Q#لA.RH@,7+rU 3rW!b%4\"O[XrȬ()9HC8}?P@;޸)>qX޴>a!eE]W|ƛVF<ү(BBCY~Hɉ ɮ}OzPL˥tփv߬Ü+T@C}LB<;OosxiL,QH*8R쥣ЊMdBڏpCSjCʶŧ7Icd&^k?)+)qiRZ$461};8zGEx-P3Za7sb ڨQfS jGh4HoعyȈehlnhTlSP->$)-B4Z<ǣmf‡4GX"`<'67Pe؏CB/o qF  f|R mMiz,O閒!72/-~ҡ;7O|dOn67DNNa?e=C4}B,k-ZSbP`VȮaNbagm*>⾏T5vDGp}*>4$ UrnQxIw >Ňeй5_(ҏQBGJSr;z;]75R4k>m:+ *zq\T1^>>ù){}:-+AY/'鋥HmçPL}VޞPy&X>BF㛶YR6NQ!4W;7CײA$eJ݉~Jm;ZoR*{Qz)qM|>=R* "MJ4k>JsͣJ~wأ:?Ӓ+\ゐߵ O |tkݚnMy;H/+`>5G|Bѭ_ݚnMzuܭI r_0/oTP1!ׯO\~5{L8>}&@y,4L8ߧҷȏӊ?aUV^_QĻatHm_m6_;yɐfnK\ooO=EBZo1=UNT_h5/`+w9F?߹ee]3 ㋚~C9E(p-\}-. }ݾscʟ~K:<+uȟZjb#*1mrߒ*m &/i){tۿYᢼ׺pv ?W~r½YrC&93\S]G(gKIT endstream endobj 112 0 obj <> stream x^K#Ir+˺D lHJC3i1ѸJ|ɦB_93"@n{fZ$FjvxscmMor\t޾ֿG4‡ϧâxw~/mM?1yO~~:^ޗ0ixx?λq~;i^xp^iy/qL_>xv<\w58z<O}|,n9mcY_`O2akᑽkFqoƱޡ8g~aL?-$G?LgV(q:1:,L|r`qu w~fVoq{>/岗te\ߝ| /ӞSaFf482MyL{pp3 |=̋>ߖXE'5<`3 `ڟY4Gn:<=G~r84`,e7 xzDž7ow<|&y/u0eZ$E뭯3w83/3-e|̇ЏM]~n3+W6 ҿoY`y߅nܝ;\ja>T/'<_@)C' ;ߚYCK| C͐-3le~b>ϛjafz]Λ'#Y!ӏx+ڝx0d"N2Uvر$2 aw^.^[e-]e~x"W*0 kϏ{؉]vFZ^3d3dȼ8FS7B0*~䰣O?vNfn{`Ȁ3+:=(9~/~C t2%HMH鷀奖#~ 7CX$݆^0pGf"jnlRh00Ne;!ӏP˱Uڞ'*0厠 I W > 1l|_0<`2AU3d3sfYeXfu*|:7LFu L?Ǒ:"E*3V05#f\e3a\eg^x{}f nSN0~k:IqDS7CF) 'XSiZeRՍˈлc`ƥAfN @0;`@Lg dJBBTP~L̻,xai3cd<_c' LE0g{RS2}t 3D| ;f|Rn3L!>>`3m.0 ;j;`Ȁ_E mAi![NZP^*fnA2уN0~ HCK0 ōoaF.8h T5"F|VW72>`2Ȃq{dpgC;IG|Zu7}ga"FֲXM Ќ<Ҹ\< +m0lC{{&PDɵMK[]N{/hGKf1~"u`kg1T^d]";ۑVj$Wq~;%}6 y?|v;_|q/wB2l;$b(@|zV?r7ȓ23.HO,X/ _Yl<Q.A) lyYdB'ǝ_ZeTR ??DSd mzb@w"F#f|3|FJ2=-Ei@m~Ӹ`<Q*ě5dvOzR'M9XR헗|g /Iudl~a}4XƩG5%לҽ_;WRJ+UnIV{%RJe[-^IrK+ ּҽ^Ϸ/1o䘼g& nXԳDdFta[?kpDzPyDu38"\WyX剺#'DDfO[/T;"ͼD gtD'H_;8RVy2(D z*T>)ޟ6l4 ?u@\ͯUfIF8ycGA%Ke30.lj8#G}˄AB4-6S_Z@+d"G*RH`m~|(q&9~OJ7/S⼴Uv@aŨx$bMByvZ7#ZZ6-$fݰ'vkdO,] ץt/yt|4,2>/J#cj,Nc'!JD>ChC| : t~km۬ @cm!lY4~bxW6%iQCe(B4^=Iu)f!rA%=ZQ,#iO=W7$I3s@a~YM3 <Asmw{@˳[K[=j_C@kԾ4VRkvYx[U>֜?X$x<Uc&=([^>@Q?+ :^t90xQQQv=}uQӋKk;N|!O)S/?k׾K'?o"ߵoQUEGqE_E_E_E{kż}I?9^/?E_OQE២Hd+Q&+,DaHOW"}?J_O.DOIZsNg8^E$UFpwZkTZ\n.'*n=cbCqEUG~/>0Tՠt#HkQNgS$n~'S$P+W-vi bQ"\Tr .I #¶IT&7"JBx]BPŤYKZ܃JD:}ޖFK9fj$vF9@>N_Q8C=Tdy9yՆxՆxՆHWmWmu2_GN^!^!֢gf8M)rSN(=u[6 lFh RW_@rUR挻fÉ*ZW-(U([}{4}1ק)ՋU?>wZ }TIۙǗ~r+;m>^BKhPEWWJJݽPPPn+/7-CNzc֏O2-7t^ k{ ~^Bÿ;->z@%4js.={0|~;~?KxI{0 b:w\! [dʗ[ [ ޏVo&;Kbv}.X]eG9('Ow&?T!_9ʋ_*Kx/n}G՛WyWy~={:?Too/bbbb ԌEh9qN|9LP!e,Bt: U}H:}%R>vT!逭)"! .b"WߨQE@lUُfmu1s]SџKS\ dI{,~>I[(I~K<1Jo{46i:)zc=k?}[-R_W2u͟pǗ6rT tlv~gp\XEE!5ؗ#|>Y'+oUnnv:e\}cQ"O6~7rAROXxZ04ȶ]hlR"ϣ8tL;B'&ܹ!EsqYAf'xZ&+NrQ}b{ysYiӁ/?<ٙ(ٮ4w1U`TUёA3nbmnzEB=:9loG>ɲZ,kG*94*bTt4 v[`vG:NPIx"MZuh>1GDl=JVH'*LM11Vݶ'{s9ә.j}*ٶN`dщ,L 8?y~쏑%x !\:8Ƥx)_Qk0U9~:snX۶>m &8(ɟ!H9Hf:$q (y$a"p ;LL=A I#ΪJ1v*R)tQcE+?x 9S)aFP7pN >mw h Z!S5s(Z1SQ 1*Ii!:lƤHꉚ *k!fy4lI3+ +|j&2: vpɤObe\ fA5DUfbW[m Ee0ZVHӼ5/o;'Tu}sWZeEZ`J4xjp"(!RT0)+/\jC7{D9!9g ןDn{pFSM:eOg%_b(= ;- NJdi*٣m4{CkQg#m8ZS+|2;&%BUKMYvg%,LR(qT=A3@:5F.'O$e&0I]&.xfM[)jٛn eH5 v?%/9驄IMلN)qR)S UXz[YܻDO*=Vك%5hI<,8{1̴Q=`RShIn/e`a#\ lKN>f\^40 E3f=m tdwHѮ! DruHP~~=)еg?^q.OK.aȧxvt(f+9F| ᣖ*u.bp=zx/* oD9ܾRB6pw]E~"W $IH`zWX@CF>ڣ@ {PkǴ1HahV@%N6mXRG$c̲#꧸XFDA=1mMzd@6PaQ?!cAQiR{ [ÚCwkG`"XsFzLkףWh)i]]759T=puHzi[HZR@0&_?Z64#igwR'}8(VE8S_),|&+`lyq*h8TL֨8d}SInUa)֝TV2XM@dnl6r^^z9PT@HeKyOF ltM"[1|8̀:Di[n4! &UDmg֗wUZz^ЕD3uU@: |&ig RY '#׊:u 偱p ݺD,A4مy>0vŕ4>1= tnۺDk% Ȳi߳=uoy8< @,3ċXC2kE6vHt$*>f TP=|"q'AɤE©ߋqmg6N02 ̖&C7QȘ(T7۹G?y?lT2_vd nE{ˌkta0\"m\PPjbC绰9SW7Z;8%z8m' f#"Cd˶{##" jCf2Y3@: ,١ F m:k7H&ḇlμ,LB(:3r O)Lrwtaæq- -I_1J8m=%y%SIs! .7`r־NrfkªR%ö5%qݒMW"l Z|&$tOlyTu/a#~s_ 3E)@jnI +QJROa+h) !DIamƄif(a]K/Rd3l0N9xDS6Vmx aN;}&@uW N"t0U[/Y$YmDs&SipxdJ#,(D썉ydPyb@-G zkFDCɘ@D*r> ',ܶ(S龎aX7z(]jalzPmF\lP=|[5x薞hV<5R# e@ŹH PP)&AU{]FxV5t*VmWl̈́ ƴK)j$\OZ SP8 l b*d+kmګ@MNe²R0Vx[`S86Y pӰSݴnʉR!Z\ 5 Mp.ZmgukXBZT Z/Knht0$9$ً_> @@OX69W[Va oCD)(˔)[ qm4mW{rcn-`.Ɔ| b*ۀ.cS7@HFuzʷ2,=`a 1jw#kSZiƂ66\P$+P_V+-h+zEmU &p7|6 2Vyn(~sƜ$Qs`Ny0;`X^O+X + }%a[>%UeJhPV)C b,|,pB7* W0<%(JhUtvɊf 8+k³ zZײ Ѫg HwyVL[VAQ2 acm6[aZo;aUmjX+ZhU.vWe XxW1kbջXQ؂07YGY̠ y+[Dkt&M±;45UExq%zI [DuK#vZȭr-|&vK!6>h:-6ZT+zcPA z)EfZ;.L=Y"vdWxӴV;@BGQ(֎L -G`8T.}X;UOG̑Y;-BkǢJNJsE,v4jTrk6<6v=~cy'Fu=Q5xO4GfӶZiMO%Ϻ2M,}PzubU,v&@KaqgMe>|'xP+A)O%v[{9VuNӎWDWK/N 5aRɥE.eB19(=@hGM6y0 iDQ .!R; hR6QcAP^S h#2-DBQc&vDю@Q&vD?Q&vţܭ;5vQ4C xm;E絈 $(>ז(1gE;lhg;lh٭Q6,w9š#,ЧB|^m7iٷݳ}SD2(A vD1躵C26Er=8 ]hm_C+idwݻ>~Dю+(a(vTw;mR/1O9< sImpSn9\GG*\ tK젆T3Œ=R9.lOȉ`La{LIpe8+f{;d:&FuxFkqV[jPSJDI̝*Nx(?XbiRQoozF4s-}# ĐxG^$#=xMym+ݔ_ |tb|{&\sP6ɖmY_Idf$YPL פsM ͡GdLjR&ecݪ;T:";ĉEx nIE{1ʬO(^bi)S DfKuXA]'rjdC,t"^`UϤ䌅-%ZA% fNBGJJ&W" ΰ ]; ''㧬~2n߳s6u[0lK'X´ R:yq̑;ڂ␭ʷjbRW9ljq'`ZG3A%T9MWjz0@qM6qdL,CI0966l;k*UC EFrX8xvBH6y=y"V}c|x̴FGm,=;dۑTժEslB ش%/R l2Vj];\4N)*ϬCmjI:pʭ0:H=:H>D#O_W*Q _6&i$I5Ed$p]08Y^)*~: r, Azp:7䘧WdoÁzuVΦKOrd޸%UXl5nBJcҒ n J]e$0D9bXx.SP c.L*W+`Gtc[q&EMC̕w9)vJI8R2:┍A*R~)#Ԋ s&viVgS:XBB#00E-؀l-u&2 aΐI_̢a.O(iB0JtLrSJ3AcsJ! LLn'g Uƨh60Mjm}v}<'$j"M`3]ѐK\ȨB5aLPB/U)R6X Q'T s0\ |Bu&Ҝl,SW!f0fˬ̳xVYDS*ӂOf"ʣ ȔI\ճ?`eBwh >霢A3ozLAul4qP1ggWs̫h($SI.S,g{L;]^OFBcLbWEEٰlk~Ji& u&k~6b6Upӕggfw)32{QbزFI6mcdSS?T7ۚ ξެ= d?ur1N6 x-V!GV@enehFLm]x$y6D $yg3k.˩T7fgYLm;C!E+sk8|nxe1 L b(yh$yΕmv99*n@M$}[IȥV*cq'օ(*Jʤ>_*2:SHOk BNX߆-~@fVoL@5MG6ihdu,>m*rdDŽ< ;أa桔cr'4JONc@EM L SL(z#0fGo+*@ZQ6R>,l1} E=bHdP1,g+q{I09.;a,b1EF{ĽLYU$Iϸ{9QM[ "[&!jy#tz(^Pvxۥv&m"!R3ۘނ (^V8eW_ Dr6fۆWBm#]?6XuXP:CP@4AoYhRDC7a[ru:R*D,`cmoY'*/, 'q|2RFT"=+[f!~(F悸2mZpݭ_sdpFC1]HƤ"hlؠGE6Pt΄'8=L\n|O(ߘ^#AEE6/<ۏE5t׉_H+%9U&xU/OcwRHϕ< j䄶PHfOG>wj[[?no'{lRBۣZɹF̎bZ)b;eQsEd:ΪEgsz950e6'*՘N> D|_蜒$朊K!s.)~ {Eީ]SMIWMv*&[LwjN:rxgS;C+6pH`5+K^yѼnܽ,RWۦ5:.)0fi7W҆ago E*1yiwes!qnv+ gֹ\xOa[l gi\Q658wN1NLθ3-)_S^Mio, N l ".eZ5Wm[G{-ӜߩtҼ+Zč I':o3G}&EѴ9mܦW$ Q,ZMeR?Ylg~½5bYgke/dYj+/Tͬl=B M";⬋q'|}h4FɆ-:IklLE[s?x!6FFRg9 WjBV}A{Qb$x<@TVx EΔZY-0a55—)t9Whd &wh7ynZP;lën#0x秢!"IaAV vu2vMJɭ*Eyu>88%ȦV$q (S6 wrؾ5B] u2*8~ʻ8mV>_Hl&Wyi]KUO Lɦ| 4۰-7p\Gdt NmMBם08iYNPAAp IVvVꬬ)ݵuZw,èJ/+7 v&>Y uɌ kSR_mLkGWץk$*WP8w *8.lDye.,VhSy@ xIT(nR[}XiKpkX}TbS|d 4 onEl&^ 9EQjILɂ4]WX,=4-MYN?yUȳnauTW c|U7 =?T^j#;{.#0aT'.eYNeޔz )UMie.TN)ć]{[ʧ>|-=į .Mpٲi߳s }WqOlƻIk;?pEh> LTS(vGa㰥+(?dRuvEِ9 nhBsi8NfSH6N\H9 K'?jMUЄ@s;2W:gne2(m8N1]TKl;]tq Ī32SKiR쩃$wG;eWOj:M6L ]bր|KU)a,Mg#JMI}Ŏto̶ ?6 I0I^,*&  i{}B|a [SDƉM>T6M^۔hW9}8m嗢9t4x=1XTr9%q0l`ؤ KDu\9RbO#X& P3N o3ա=鶾ZtoF\Z0\=lOD.1f|`b~u!.n^M >֬K@Rx(dayXE_nǭL 򤬬 VI. ұgEe/ƢbNeZ8 *攦;WgKe^L8+B\3nXЦ t58e )uH_>2u~zQ[\]KeA&d䮯b/vǬBI&l `tݕ/%1U6g9 >h}9FmHD 5\\Uc˦5qP<ԄǥAH^ʦ>QqiNj/)`>Qc1W o^=fOmݒ葊G'"]-=\cnK1F rnz?j٬mRFĢLj 8Yب#xJ9Mשqх~^KK[V ='7V!p 7S T+;jn3URTfWtuu,(#Di='A>bG;?$  {{F Ȩ6ր⣽A#ST RG) TyWTD*ViY0+^nB~L~.J.(|oQihSԟ5OIG#);*PS Bs<;pzsk07m}$]jjؔ"8[1T41&x!HArSVt>Z. 57Q I X!;Ԗtu8'1_(!#Pm 3H^>mP}㰖!nCk9JPBBxL:HHkNb mn:$ޙ F]dբ$"fۋ$,?%l_`-%Nd8y%(c8⬗^yDcQU|Cx) iJ$YuRZed5Q:PĤhG.H LxTRdD=jZr"E_Xdad9n^$xT\/)JًbT'lxT$'^E3R.d$e!᳉܀#LLR\ &e)W،a պ9< GJK(FIT colٳP\f6/| ]|DWF+tЍes.*1R@KCJMDUW;+OҒ3i ]N~'HES那dK]bjYKR"L_T^>9FkI*P*%em}MNM ]a$&;J<%姮"Sƭ*kJ1Jf{93E.nY.]-p-a)}[] \%69)Rfee4iy]nT6M%.K>*N!j[#j}Ҝ<Tz#:]ӑd2 auz4\KLF'e&䓺֙|k'Z_:sdl9Wݔ&G}jRSTZmџL5XgբEvreH'k59J[o{@Oh2䧜TVIEQUҊUg*̢2zMJϮTe;2ؾQN5_ٽA\+4!Tኆ@QR6RAu/2% ơ֧tYR`,5TWv"FUՈQB33kQdEkFi_绊aK+R`u2*kRiSEv:vU*PJ@☘{IU*V_iUtOFeJ:*6eb,MQzAK V nS66Ūԩ%Z4y֬@v*[BO`?MOJ\JTǙI d's|R5I:P$+IPͤUd-&QLfsV\CJw 5"ܤ5,ҪljO-:0"Ow!mxtȂ,%[ű*VgkJ*lka [Tt,9&Z "'uV%yVM*J'ԅXfEʲ%x>K9IorF.Q%ܒPǨ)b Q#i`r*efs'Lxkڴji6/4Hu-s`:y6s*MxS0p5~)mE]w}=oUQ]uj* XT,HV #cy 4\h%M`Z&%GMJФҭtiY%\*ۥ\55Mu/m$ 4Ѩj=IJ FHpEdk*ըWEQg͹POG@QUؤ^DFѪkUW%VbJ#+Ǫ"Wj`m &K7}Wݗ"63|^)thH';<.d ♨u6#V=3 JXq6Za"*y ZiGo s N{MOaE҈@d56Z&r OaOi3EDCTYo3*I,n֧Ԩ|N (9*DJ^ٍ/F%_A*䆸._x@*O1uCND]ѫojuE_U*W'$IQ,12 H$@4+]+'R")KXR:'ߎbIL8PQV\Q MOTR@ՙ%uvw=I苜ā.YFOw نd)IJ{ kնPkV@a&;VM]wkZT OZ5IosIOFruꭼc&S iKl&.RJKmWW(k-.+y$hiP*v%%IԞ6Tw>WiI=@A%&)gӲlU&Kcv=Fa:ۄY*SMR4^%@lR}MMM2:S*ۦ+2Qto{+JNZOjv@ΣZ4ּoKB҉4|CW$1뵀$J`饪I|jWǝ4!oI}[3Z-@!bF3i1j)n$qIqJkqLT!]z'Kj2 "jHPt*7s+0@]W j"-~E}tYW(H:WLB'v0TJڎ Hy۸D߲t@9UER{A)%.4H=]i35HY9>'6.M rԮ"#y';JBr5l] EESnBV۱ӤqUgAN$eJq]$!}? ʃVRUD$BIi$]G&E} {hlWySTUf5I9+:c(L#pg@ "4r1_i+tRFLU'0P pڴ#Xq05Cqb[ 2_"[%p| -Jf⃞Y)M%2KB"#alEv4Qb)9+,nԔ&e1+RWr5$;WC"uDڊ3~GZcVVj*Ϲz([]JUKBJSPFQ_K?钊lms"t05ti'9)xu $5Uʉoߖ}'BDRXnR,$%ŎT.4dQJ3i2*J_)%Us9a _EuKUO]BF $wf GTaR#3sLN}5ĩ9BׄgtiDdteD H2s0U$9]74_Rɦ۵PyTRY]:lR(X[&qj R7Qmdh!WpUU[ԐA!iblM )-$D\RHhm%(+lCs d]Ԅ8Atْ] c]ŰiY6%8N{u UU/o_?Q'e赖SqoɲI}R?m>m(uW_T ʟֿͧPMapwT/LƭkyV!K?>Īr~'с|;(qÏoum{/]ɲxY Y_}f70&ŗOW'{㛧^/_gv:~OgOt_?oƩzѵ 8I4 _Ռ֌Z=$VuT ^sJjxjJUX?ew9{ >#!(o]Ѵc6QʼnY%GhՕ ü?S.]ס{3~kXm>~ߘ2':7Ajx}f/ >mN8Øѕ}}Ͽ;4;'܇{͡>2c)=]w' 9 endstream endobj 116 0 obj <> stream x^͝Kdq+je]1)Zp;A MDI`k(i?yÿ {̍>t%_85_Ntx>ƛ폗_8^i?5}|_.aj:|?_nx:NWLzO6ow+6y0hԍa<5חvZ19Zk~r>.0~~9_.Ԇ z?w'χxiJv9.ϗ=#ZiߏyFðӯcfѣu;xa1<9vaw;m{l {~pr]wiNm1#iFyah/qi04_[~B|\n'6pFOǝuXi_Oz<\/Q/cڈx^{z_6ǩmi#qgG֍Ng8n~WoFvaO ~|; {ۍHup߱. x;M0=G:MŴ==}{l֩}Y$NOZejlbn\>rʙ2 dw0i>./v4⪯~j1i@JY&؅}8)~MXL[~+3?><[Ɛ8tPԼaz/{ch]Xf~]{h2560`n˙abWl ">O@D]^pg F|-xb ;d8n Cvb*;1d\Xטc%Z!킫r.f^a /Gl鷘2^z},abN*nʎwxYL# B2gbb}Z8yV' a21dJprA8.Ɛ]Ze4uh`cNL?`cĂa t2x0<02Xe4o*Om?,yhƥ's@0xc`Lg %c#lLf!M7r|CU˝1az; }Nnb.a֛pшe"}5#DGa}v`4Մ0~5L3pfn CD]Kxin-(~ö/D@jB'#LLKgǐR< CvY3b<^/etv߁Jh3gU#z3Oy149<íAc%l r~n.6= 4AC-m*۴?Yh,T~x$?nw}? S(Yc#??v5,N<=X^Vxzǀ~K{q7`|QˍOQ-PMOMN=KO%n[YF'~ow|{7ZmJw d|ã&\iieV~̆md2Ln`w O[ӤSPEV/4>ƱcQ~:kv][ΔϤ>7V_LRz_"./yF`0a?!c,}o{y>d\OAD;95pIzm2Oc~߿^߶{,gھ|v^ǂoDzҝ뢏.xHp!(ff߄ǠaØ%(rZ\mgB-7RjJυJ4 ^~- -zec=BA{~ yxM&34(|n^y\{ULL̚V\,*l~wsL5 'oˡ+ξ\R~= e-ahR˟n~]ncըV5dƬ~MrI II#5۲yL7"E.ivǣ` kS} Yt%nkO3ACg_@g(D;~+. d^GhHN.?jrʄs boBz_z)Taf ofƈao{ߺؑ}k[ GT bF_z~!Wm]b1wgaic!nȢ fx\5Xmөcl ~.WqB蝽I@'rPVM8-؇!sR(GnN<>}XTGL=38_LE`_ V[&-™L#K6Hmȗ;)U y-,o?p66 ).Nйxބ ]\+L&6M>ΆID`/v>9e F&\ff;}pM=ttCɷeds޵Et$<0vlm=Ck-ؙSX$_r=y$ {.XF=8V(d˻cfcGG_HEC9Be"=Bd?1_웂8 W"+ ъ="*7}xY]pQCi iT"f:TIR(i#iZ)Wtg؈.Xɡu6'PyR&mzfOL&B%+0Hr]{8M 2Zil>n4qwΕGJqϚtSЁ -l2xI{xPZ&:biP#L{ cZ+艅+nOCj[EZ>QUdb(=VFQ)>Fh4{uI5SgObc*(Ut]agO:K,𣌀 Neq;=NB^- NneUǙ}X*A3QS=jfy٬v,f=(ADD23+TlS#)OaI6̋aҪpKqR бS[m ,5Y72Ո+ZйA~vfNg'1=%B/~ʄß1"+Y3p v=‰N6YG1[x\exM#i5MZF@8Ɗ#4Pa8 1숁!)v9wNq,+B߈[2p=j ١"SΙEkKVΉ[^EƅkX7YaQ",")vEI9]|@X̼-QvM,+c`1 ܢAU2p 'ݵz}1o:o4ݠ#u8G{wI(Iwo:Sn~辸Gn 6ؔ2)"8B29.CQ!;I?R??9͟J3:mU~cj3ۯQzϞߓe0 `3CI-:H|%<m'>h7B:j]M=É,i $upSϻ'srs9饻 ZKGt~CAB+`%M90sYwvX*>`)Qتu0"F|*6&KҬ4<ȱ95bwz'pڋ+EH'$Y%C`lD;tZmȉSaATOt<Ŭ 6V8ʜito$o7ߨQⷽ} aJ ^,}?Dd)9PbhYd S>c ޡJW;pNLɖ%m`ANTT@!hAL_zlTSdeh~(bC{HF31nmQd#ðԟ?\9Gt u]u`kw U]6 Gn2z‹.,-%MT2u];J;JD6;!Dk@.*qJAG! B:xʰ+gdޤeX 6;QTax_-,'ؿ-N;T&LA};芜T3Lr@Z'E+7 *pP"KT=0K X7&.28jx8.goH{v uKT-30!z+QV)0<.{!˸^(:&'bgUc8㒀G^%} pOf:V'hb v~>o2c(F_u+52)&F!qn3"NF/uL `lpWINJ:T%U O ˫P^Lb܈,vqq(iȸ`0r@n+vq6\-wwieD$BwGRz7+}odRG.M&(،haq:֑pfE BhtAS38v|GR`6vT^ %nӕbuYT7YLNb,QN4EgƎMT2s`C_}zhA`4`\0X[A)8p;XHڄ%Vk㎅qa9p8B s ";@~@U/J*Ȧ ͆ mblv tт*tPPso@7L2@ĶS^N?עNVG~>Jo@[Ӡ f}-|eX+Vq$y;;qkv[kgՀm u[_"]l7w i ڸBi ֹ9rڑi'}dtL=ٮl]vDm+C߳Lo؊(Zڀr,[Wځl߁pf5l_zXXo+]c>TZ ⾑$[} T iȭе8[ص<[5o!@봍Bh;|PqXwƔ9=sle5c8lIܰs? f-,[=*2j֤p; tf(hG(E6+])Pցpp]t+5_W--F=e(ڋ6nlrVij:MlL߮'Fc ::[ `/9x]szoZ롿I[# 7R=fuIsO;N@A㜐̭Q ^ Y"nw0^y9䕤>f$w!oOݟ;CO4^皾IW LWf9Q&LP~rZR2B?#fT\ACK;D llAɖ֟=^&ŴlcM,:Szt%W'U]G,+S. R7L $׺K hqQF (CcHdUetYdV!SB+'thðնs FF^rK9'Xˬͮiۏ .dRyIPӱ!䑷|2ZʢeM)㽵%NiSMR-7E vJXᓑ`p~;=UKV1g.Yىd/a.Q䲨$M.;/zي}TSsE ZOQ$%McnXS Xfؠ"ͣθUߥDh4Wj,bISq3K7lvj6-dZ!*1fK[3/~=T]Qגs~JbV w;Ǵ^X;@*UMYMC? $mi,'vMEP 4"㩷+u5ĉ >^*si?<݊ i~25pBdr{ +\ȝ;*UI,g8ײ@!lMUap>WjjgdoJJcgIeIHfV:鼘v L5#j*IԾ |*')J )Kq REȡ:+!Xb8?7zuXTAUFFPi*z5bl4V)iPY]O_hjZGŕqvcL"YQe74{.0Yibjj2}`FMa;9mȊrkxT@+\7&A$=J=V64+iu Vw3YX?76vLN]ܹ2 '4jաsIh1p,&JkjL6V 4û߷Vm]&{ [d@UtW)yeXw-*L#5F,'Nx6(p?&XPz#Mjq*tVXJJ$U#z_kw$W@d9$Y$ڨz*%Ԧ֙p860+X7 [/0uII'ꈛ bwhF4?UF>"CG OCǖ[Yآ_̶@t*Epݡ-Bf>PbrvcCr*:!EzQYJT۝,LBy4ih#S -ql8ۄJծ),cʞ~NRB~ BC3sTYM K1 A&YWylh"d;[>{JS{ZCds ;t;gTg4UM퇾hj*f'žþrv+? ,]j݅j1H|6Xs6}"q՘hoz֢ȿYz-ZMrgXbAPs߉+?s3r+53*m꾪/rpvX[khO0PU_5ɋW_oZ.hjjÊt RZr{]iihUu?P v^ l)Vj%rr6 |[+BZ,4K[SYͦ`Z59-o Tw?VoǓ3ʻ㳬JT^O]E1錰}1,NES/oۓr &Uj/o?&uՊO/ݮ*;FEj}8&$<,˜ /EnxX.اMIszgpC?0LJC3oZ@5JdXIe}l+9,ҙ,ƮlM5bo+, cnpIhN-Y $8)O뢜BLsܩ`W Df&ڇ_V^fwQl:猹kѪ\ u .`Evxz'дl0(plN)Ujn1 se7k,"Z2$ʚEM}M+Xe \\EN0~xbDڞ.@tXgY+15V { xW_2R^hy5ji(NM$Z8ILɋI0-r`Ȥx#?h.&J݅a(l˦(T,% IycqA ]k)SHhƨ[-y -H*;d ۉآq{@} ,Us3,MNщ)2CvoAf%pBľ$pEc$wCECb}sU.: WK"o Xr dci_!#r2袩a+3Gdb*pm· rPEIe Q>a",)6UޘcV[d$&RV}6"A䊦0D}%A4 ࠇ xEin]̟vCG߫۴6N1-0 QXW)KZI@ BUr9`̈́ȟj>htpH[WV%}VP-ތLPLȕ8EoIMLuqla|3 ,78`{ڮDy%u ÑEfWLo&*bRݠߨY^%`^MggAxP<T)^g}m1A33}zܥl.G|]tn=s8NWʧ26YӆZ-z auWo1=ݺI]F.y_um8EV} A0,(l@X[KX&ؕV&*Tܬ:mbG9Gaw{sswl*艁ٸR4;WL9+J\PqQs &%*$2;Nߜzoνmۣ;")[.9Ksa8s]=,nSJQISOaORt Gfm}Q1;]A)t6"dF)lʩ֕{#&ϟFx&+Iwy||6S}8oE 10IDӛ"٨"-]/`OtVtj䘕b2K(L:5i9ur; ME:G 1n ;p1ʐO!bCrJew#\`TKDL i$tt[L_AƜ,rRzZ* dL^T! ^RUC{2._}iq-Lv4f}.}֕u3VP>EEKfBq m'$ö.p8lJzRQBc}+wtbjƤԗ}qؘ)^]_Q*cU[mYA8 WL%.!yOQ*!A>4Fr$w EjXUVjօHl' r|[q ة:%=;*[c %=R @0bLS"]iҶBWaPHG07|I~&[g% W`DlJz,X {{_mrضR)Faj%r<#m=KT1m];\UF-,,Gg|U9k($˃dFf@uĆFL24-'T֣$>ִ½W菬?ߛ^ƯF[tA|vd2},K?M,Ɍ{$5q<25 C0Ch-:\  u:b))4eb Y vLtx5#s\W1GI2"b/1LZ36"!$FIn9TEvPuDuA(BgQdx,zRq't&χ>|ȜȣPp4!!ĉQ<<MH %];Һb% /L;8R]_b.Edd?WML=zRܨ1IDH H۬l$!%ArCyO\t_W_()HLAѲ "I;"J胓/%ωP[m)ϋWEC ZQk-K&]cڜwp5)֐(pyaUڷvx\d$4|B{`&8_]hf.Ӎ:%t#ui ʞ'ƼB1* S*kҁ0}tC\ՀF\FA̩yJ/{l5$M+@`ZDž+h!v)[KpaHsz#)+R9 ILv=JV=. Co7z_7{KQb DNҩ_-~[wTpɀ~])Q[R4CRʆ W)4D%e7I6DM7ݕ&nm{(K>Yl; 2i61뻶xJn-FjQލi2B<|'P{dKqbҺI IM*@%0J]ar#^5wDZi>o6]"}7]Δ p9&JB #tYw EkҖe'ͼOFџLUpʉ%@뤑(R^4ۈ~; sTO(fL7"fЇ#Nd}ljLIxJ)vߗC |km'[6z{t͐,>zĎT R0%[9o*uRxqvd WD($bsK ?;X]*Dt(dqE"]5cHC $eŕ;7AעH)>DFieQ,IT,HUW1mmyIw YE T T3wqFKrQNE"ܝ\Jnl--L- ʔv,׾tiu)VrUbqUNQ,img͖ ]GB*GҒbRtP\cu(RzKeCLvfT4v骄*Jr__ oI;qW>oea2r]Dr4 tTWH7!5al-f+ST,f`hUi#du ecͺU%eH4uugQz-[նT4S]C^˶qjw2?o<,}"w%B0I܂PuuI(K*~rBV}z2"kT!z48Xݙ(+af=UZ*jJ a,gE㪕QM*Yk}t'W9X$JN[=ZkH ѪC,mh<҅F'hSLv^F¤ =o;c,k9/V)u㍇UUP1iSCj&V֩{l;cSEOV0wKedVjq a:f%-d?^kf!S%6 v0Z,g ]+GTY$gPkiFILgLXn`ŔUeҪCk!IeZPJsx!%&ű M08z,)[Թj j؀Ԃ9l Ff]!s}h)I660NoI,QԉrV2YQIgR'+vld5: ̭<`F=ڊ?˹۲qUJՇZEVДRVF^!`vW":_M!i\} !P9ȡJZdԻ&D qGR걑PjjlC)gI":c"HJ*Lk ,)j&I͇J? +M₉_5Nx ׬GG䧏i~PUUedVj+FAdU]QqTV|f,T:d,*BhdʅjVEuC)m7-gj}nE3KK$.I4~]%Jd3hd ͢Ҕ.i[9Std2t`j 2 E.g-QA%oVVZJ]qj -zYrJC~K逼KFo;ȖKT]le&gk~UCz̬!)KԸIr <= mc=ʯg(G 7`J3Hd_G% YMK)& Q -IlY>S9BJI"vziS;ծR ~6*كBJAlULsJfCFs7-U_$gG9m_"IGKI%R#Xxќjd(S4TuD2 cUQT[\>UBD UMoX*}M]F2GBf.GRpaA36`|+g˕ٌtF!p ys7hNP#V#'6Hq— !ܶ7/?r{#sFٵ7m%υK۬x¤0l\D`O[7De\]Vex/TZyKe"oût(J~{+" y@eqXGY~CߴW2IRqXbB8ZY!& ʖG`{IRw2ѵgw+-u+'zdAI>7$FГ")U(\Qaѥnd&S6pnSuZK*9Hw٣(C*WxNsU4 M Ȏiٷl/dD!F6Uqu_߃ub,a]O};ІQ1BLșh|046߰6ŇcjWC( @FqxRvSn8뻚:kiӛ}}8%8:^n0Crsz kvR}3܈*CXʳ~,LRdJO<xzͮPpLK,%Zh~JzL ]Lq$qh;)rO*<ȋd=~HAY>$B㟧XkdW+"f]Y =ucݠ4Y)IgVy*!W+!jxJϙ%jx=4~{qZUbY9v64f5!(ʛ6K&O ]a4uJ!g(j&'Pe$@5'QEeW.%ej$PV=~DėVxb^f9G=% bOiHJOvxFc*0dt)+.uk K?Zy'gQ?7{J?nܪ?4Wӟ>xR8ˏg qbV5~Ç_1_>SG֤8'?~%u'>=؇jUK5aja//>/Wy_>>ۻzx/:۸wz3K__u̪2bN2?-jUN7==}nyƍTdSYңrٞ]DsVN[G'ycL~j>oxk;xYZtg|bsaXz<9z e\Ք*asB;мkLt#4荒*=&}d\Ǣ?KUU߲Dh??#tG[CHԿ] :!#=xlĞDԎT`ՔMw`W{>k|5KY>%lOn[vcT0ܘoNgF:3O75RJ;'I J򄛟9Xj_;vݖs}>>Ffܘr_c 2'>| endstream endobj 119 0 obj <> stream x^Kl9)r2㷍FH@ĢGC,_Hf1_~t3VUW_$Zշ*GxmiWvܩnk9˖;=xsr*9*gӷ_\O__7'@yX}w . !K,)ŋ-\ȕ/zEgHOcڮKջRt>9mꥦ!_˵Փ}'CS~f]y6s2}h1Ru)7fmeR~~ͻp,U pn9s|%(Ksr;_aN!f K@K7Z0)Tt5[ vri+%/(L[ehlVNs\8*Uq쏭l(:ߖ=:5[- }R>?yǐegKefႡ*Kem>L+%/8*L[e߻وkkGC8zٹf}dsmُ;h[HNX/ۥ8Է.xW~4448jG}Q'jn}K'V٬8>~&na~ r>9}H%RMɁk 53 =%N9].5Ό RjzoJi))KJeAh Giˤ# ̊ɜ~i%^Y23AuZ3[!r.,*ňaŬ Gn6,/`sƌjkp5ƛ mpL7lk/fi(  X-s&-Y˘f%9Y*UAh,5y@쥭0HOW#"RRmV9 9G Y 2N/ .rqB`;Y r]&":vXd..3 d+9lV=^!ċgEhJKXQ9]`[KZJx8 ? dac_]EdeuzL/k@66IHxu&Oh](X<(4C{<+B|x:ڰ$x0h5IQ\7AW<?jPCIO|GRͥ=X{,*jh'zA<3Gm,zd1!9L\mhX=JN_|#N1& NFdK/AàÂos-HB5ڡVߣп'iCVYPa!cQ"0-0T7,6w*,|h,C>O%J bSmuj[44pmuנKdb^P_ClC{svn[{ah/TVwȻbCYYMuhtl4Іš3lWXF_ (,v}%+ kAiPXS_M}BnDeu3 +-LᾅPPLr8!&cW\[:z7eTt4tTQ=tTQB *1t(veUTv*o*ӺibBCG:JUQLVEUG*j`us 訩vP*5~F]ZJ ;ݜ#v#qd|'55}b'[:%CIs8D% N[]?矋䠐K!ٿ_ ޒ>~S~~:#|X.ޝ~+/If-o^q/,D: >(/}`ZK R/?Dvɗ{"ɗx $ԘFTy=eZaH 5pczIHw c9 +N?!pvw -͒^͙>a OIO<*Wt~b5>ooH/" u&l>D:9#:#>e5QH,€n"n %"!dBwԿ6uJqr~߉NVIٺ_oԛrhvq!H0͝\=+6B!VQU0"DZ.Mt+2U>TQC*'S'Qi?2~0<>^{"f'E"+˕r_|$ehGS攐ٽUK˜t}e7'r'қ/Wp$&])#&bpcQ:I6 !{(a&qL҅4V>>6UɢJi"c IRAN0)ImY͘EΜSۙX$\6?)c҈Gf+BcsDlǹ912ݭSi,t2Ĵ|3=Nۡ Ky{ R @LIv!!{0bSI1Cy6TJ6tidEKS"Q7>HdFydI8]}l$*NqrZtCe@lE9cZN''$f9{_H=BttF&8)E?ޝ;P XoСΐ'! EQRN8'֣(2^4oI,D#楽E$vTwGL(Ȅڝr[ǵA]" 2Q2P{TN۱"y2Am{T %N~+a{P*, *.TG4".#V[zRXtD⍄F[I,R*1RXV0 Pp{2':i] i9hzc+$:KENWeVeTV&'/N8 "znjؖ[ R mOvc%;ƀ `en FZ(AZ銳=^2tvQbS$#Θ;vZ\7 *EZleB9cZN''$fN{_Ƣ6g'?q0'HSSiBҢEUS(g\HPN dAaavz .&aPZ)(6#T^)3kP %*;c{q-.:AEPסH낭LHyr2P{TN/Dgj@L/޼TФ\JP(H?Έp\^+J⥢_d7p $TnhwT⎈ob]U9A L3'Y/+Vd(rvgx>]Й48u(޺/QDyh<e(27Q`sWJ)B݋|(UCe"*RJ|xnsQJH G8 k`Wt9d2)#q6(,k1݌OuHeҲB5'j`%5Vd@gdN^'(LfY_")ClKFdPa@26(ظw <#fE[⿎. u*cV]]",'v2:y`dg;Q뺇aĴq RR*%=  ~ݔRi`8hbjӭRŎٻ%.c2}VMQjD+,:"G&OrzYaQavi T:Q.~rfOdUy@a2U<ͺ@GJC+,JU|W ^*LTG)[\w#f KB#*5H0?E6.%Uc@q0.BCjgqH4c:+ R-Sgs9Q \]",'Vjz;(LfY[CeR#\7RD}r_dH}4+Hol[bsNb\+6 GVȊY#+vdŎr_>;μ> |k ȗC'(~R>ȗ#_v˛ywR+/ͼ#O|SbC׃:x8?@o<<'' O߾GV;-_O͔G߿|m/o_>ܒE浠{&Ussv<}> stream x^K)~;nFƯrl௟_gbow$hkd*ǬƘŴWslPV]ߜ~>]~׆@|-repȯ>hyoO}Xgoir}&_.|h^lYFEs u-[m/(_C6&%s3SXVWltjbj\/HhǨS-k58Eƭ֦R aQ=#1]Zٖ4<ʎ!ػ.aߟ[yjjqHK)ΚNZkB~ڸƔU4dب5FFFV<+6Z!i٘V止X`l^oдuOM9V:ȍQ5vhOl&rRc@V_GjZ:SsҚ:7F )ġ;S,:Yt5YEu6dS*=)hGZ Q=m~㐓;x #TRSzTԮGJRy#Εѥ#qF#_LY%|+~٢QѴH1X}`T; !#?[%a1DĊ%F+ ѕBKAudBʍbW-.;FQrr$Vb1zsĘ2iT|mt/ƢA낌)HC h? fMcY"4+[)Ki],b[!ƾ ^&2(PC أfenۿgqrɠLo\jJZ+Sh%ڈ79bt# B]z%ʶcy-vo%3! ̚m9I5*lB 9d2=ؕgVecɠ'R#F-#=A|:yYN*#']Vv˲Py[=U9$bHHx@E'cpqS2` crhz&"=;tkIɀc_jlY,ⅶROda#<2@^\\ƣSsZ"& A#%d4%5L>7 ! d-paa@a?T-(JZa!2Uf%i,cA1 z@$-.8@O,2K9{Y@ec*aVl& AKJIeVaL/Ze c`*gˤfePէX\d]1D@H#ytڰ) =*1 rJ9z.TB'%r mtvT'%Y8Q\F$y Rb4TcNB(0P_UƑO`7 l>Pbּi;չ|E1hGu$k&'Q>[{ ^>~ila7^lgQӰx[^Y1^>o ݘ-'O/|RmO!#(ot~"hoOe^dLse8n|<>CFʳO?/N/^|٪saX&C7H=]"3”lW׶1D6 ?g8*سO1Fmv-u0[z:^ż8 6 6r>Ͳ^ʉeK۾c$F`n_'_u<CcmOw-ӣKN-{i68/6%# ;_wk)];f)ZtMLyk?ʾ{{DWDц?pIOi~l G; <|zPqLpH|Ç=];yIғκטr#/pVJu˛QVKb9;xOg|!oh;?Lg7\0 rl+ w:$sDpmCXjHαî@.O#t$I8VKҷNBj'?F'CU(T(bh2a0cHh/G}cPoxx^̇0{Ds=zWzo{P >I~Fut\yNa v k&>~.C/2x+E5\y!>-x{5c׎Gk?2Y^opTuSnɀ/%Zr᥂k\Jq7}ÛM9J r]n6@ng5.$r> stream x^՜KI+±k]Yb5J|C]}Ȫ*όg-LGggD;"LƘSa_ۋ៽d3KL ÏH{}Usaq>[{᧿o~ئP/?ײ C(S޺C~ 1a09_✡@̓6XzP!ו8%݁uUJr,)5n6/n>. sm+ҾuZYPw7;eg֟fqLn)YA7)fߙmmbJ*<Q+ވJ|HZ|6"y6)[W0-S[v*Z Ojmgh: pM˱Caʜ$ftmba f,(]IVAMSʳLqAAՖ"Thv*9!N)הts 9)` A٣KbG7ioulV`Z}cRɱc Ukza'/cNh scr&ٖu``Bȍl/X]s\P/qDxv^y.fn2)9 ~ Zd-DFA7nX 9]9F@)vr*j#6<bT'x0%L6 R7~r(ل)IL9`fu 4 Vn(VV\Hh̐YN ̒HP@PUpz&%'kD<*% 8sE>1mlU0 sVٺfG '>{ LU JĞY($y0dSr[-`aV^-Sm-LpaNnlg4)0IX0,3'iޤdT:w%Zzp~. OuL֙qܙY H~#2Jɴ8GvyRu% g4%Vm"+:a˧ʰ\!EPb"#J> 9(2+ͲV)SUo0ՁIK 3CmE&Ȱi(PN87Pz"'DFZkf|Kfrl \Jd9NbP4♑(2 Ii (& 5"(-N uOu.D(V!ҏЀg(j$Ҫ7"> N0^wvk*hoz5jyuj|[{)؅y=ܥ%_O"ww.1^ڥ___[Kn){ wAΰaP EژD" ,~#,Qυ$~g7 _U-']]"Ȓutw8pW= ~vEθ%_r?X哂A9Tg+\*؄Md<It{WWW9T PWWu ѵWoe ɹ[(8E+*sB ?ᫎEmJkjWͪ'nB"5j8&49*w]8Ċ狷$t>鸐6/˛ŋ"hEoE}HF?t[=EOĦc6~T{[*W P#'pu1׾AFcy{g5Q<Hub!l ={QW>{Rrtw͢)-ߢ-Mp/E$#!zJ->ZMfOc Gps7x͈JvkMXG<;k"EK6&mZ˯=w,s[$aCXhC2^M%dHejkmqj4R\ ՉVԣxai->ir_]k=!Gv<0Jt@>zL˾}ͻ4&JDleWZeն Vt.;><ظh*Flh#W.=VK.nO J ?/%Н5.pwߘOkqKda_JÑˤǞ~ ]3F\K㧇}*C $V(;O`s႖>~{5WK|#yvD,^ H/P${ڶW'uQ.$kݥ֝;6xJ=Zc^;|s'WdpۓxW{ekK[nOZpN/e& `J>bfKB9rl.Z i\y7KnkuZܦ"~wh=MUk Fzr5r^U׎EoPR-s}'3U\ pgx@SǢbd^Bh#ctNZΦh6Kcut*ٱ%S;7Kz/]~ڰwJb^?>ޓE"wg{ڬSzNxv^z4 3ۇ'.Qxƚ`VݰqZ攍ڗ=I٣^R5Ƀew[ 'W=>Gp;Ƣ0r@SNaoJD_W%vX@t2EdH5[gxm-/6"fu0R;m\Xf5k[ۏZ&7:Vܱ#U4s0Oq=>kez[PJ_xs3keX}>+_Q\+`7C۶y|mr0FϭnW <0LcBD}OgT| lm:<Ω]2s]>u') 1G[ endstream endobj 130 0 obj <> stream x^K )l0݂_8_??VwWffe;*$d,ƘwG~~uXhYj(=>= ~Q28E_O|r|h]|OLӖK 0`g'!ԥXo]Z!x~ ٘1,ט Y IJbUC#W|qvz<ԲXSDkbm*R|p!Ⱦȇ>tйn֥;:rBk{O Ca??~{y18S%¶6.1h 6jѨ-yoD%7m%ƴXjc]zߠiu০Uk VrcT;:%O 9CF%eqLa{qԁc>LI#u$n&R;S9Y0Yt5YEu6-dS*ՔCuu bT0vtJlprRc@d=bKJ% 5vKXn(ICW6=ԚGn+bG͒-[Q]Keq#cJX}q0Ǝ !%ߌcIh 9bʁJ KAu`Ä#7r6{tR.`h3BՊoxv^Ɯ+61 a-&c,3X.XBD=0 n&qi,KRfe eb)AEVq+D6An >Aa5}Tb`JK&Q`z֪ /. 'LdLBfj#jӍ(a` (Zؽ(ј)p ̚r5p̳U*RzrvXz+ϬJIB5QT )€h?:k } tTD91L+2VStL0)D܁JKNB?e98̺YBc3g߀ Z½NA&(b)2!&BPhd-A`*g Y pCgdbjէIAXB?uHT1RVTy4 poD6PӪ꒹PAHB LtD.k1&RZ5g{KԲ8]$2 >NujܗHV'?V j8%m әQ)ّ2qA!*SIߵ'KiՐ5$SNВ=j$U i$v b"ojո/ ոfq#D%ih 40HV!f%cIX47 $RP0JCED4qEڴG [rIoYK"3Ϸu4kR^D} kӅWG[ {<#)90Z';z[$]v:?@OZ[ MDr} ozy*Q.N+~~0TDKk{R5CݝW䦸湮t!'> [dH Y=!P琾]<\߉tW5!~ Ľ--t_oKX}%WQKX 6wx@:tRkZ]y6tz|~):Zt7IQ-J{-/ef(>!_{xHN:\֝wzW}>]Lt~It1]=T!cra/_Jg/X!}aIgKYۻd6vνsmU^}QΏz_טik *mwmtxm̻ܹhk+jӫ?%N>V(210Ƅsl,:9͵_兜}l]d]/˜IMD Wv:R=.hƵƟ6-;!tMذ=aiD|#Mxæ$ngp[# ?Y:I>ziIUlmEe:q4dNa3M5v펛u#ظ<Ғ)͛5rLņUO# f4Er}v>y-~N3Lap?/|L2rWszRkoWt {`~]ϛɨhΩfgy;MV_&rmFd^XS%;Lyo"Fç>V K/XzsRrPIZxVw^ zޓx#F+H6:nZ_hM_Y"9E^BɼF1G#8v:Tw>a`spdl? ge\o[Uʷ>͛ʭNnOlApC0JBU<«m?p/:ӷ6juNnßԷ܅[,ﮇP endstream endobj 131 0 obj <> stream x^M 1 =E6.'$5^@\'QqQ^Y,H)y}#D PK3bgQl`,phlmϗ ؟Kg&@NеaƽZ/SY (^ T<TIQ r3<ϞL(G ^6Wq6$/N5NzfKuO0׊cNѼX endstream endobj 135 0 obj <> stream x^\I]k D7#db qIbgFUKlH3bINo9 / h,×ӿO-g+GtvVo/g~Ij?~W  pO ϓsZ*A|az6^'kfI`ì45=R1~N%&#)9hkBRä栍2fbmUzK:pM,khkkiK2oW֪sQbGv"m1IQZ Q)lq^WeKig뜕 :LZzZ5G ^6U8!c~ۯV!bun91V$j'ַ*iIӎ:h q;jG;n _*ej5jW"ѶIlJNV%!kcZ`ՎlȪB1P%j+;V=U̎G\0#k-vT!rMp \^qiްxT&j .aXţbZsJ۱dvC2;V+;VFY*Qۘ_ PV5W;t2'ԶLs*Ykcг1Z*J#jf|׶*s1U^zUq1;jG6dUmhefIXߪffǎx~~8iH$`m,ܤju#F0" r6e@uoHu-Zv:Gz/}F뼺4,\^NzxʤGa Q.h4}6\I&KJ i2}PD#K<_WR ܙ"0At"էP|[JpJp&`5}2G!=~Z f`?8C c;U>uѧ ~H1m $A*z6J *ޣPo %BiH_z<wNuE'PSa>L"wŐR߯ .^H.#GҸ+ A'i(=PozOߩj%filȬD_Rm8r})iF:diRLt1p(}-շ bަ4O1)&F8U`ttco?I6]ޛd!S-O ,߶:tTXo3r&, [mo0|]v9EF%#渆Uq wEX fg PR,kK:SMsG(  a'ED"N$xHO=Dgr/q'G^NXi˖jk . qAZC9|hdxFֱrbCKrҼIPyQmiS~ )0~-S=I 96n7tX5B6NonO<`>?1IqY&;)=qNI gO\|XD6\J#U uN s,J~qMb:ֵ MzJ({U[Ki˹#6[ZTz/FCayOhݐfɏr2_%W8#rj]Z-w!O(er72{cIFě=XfFKkVGخmM>Xɱ{ʙ(oi=1dwTHq>7W4vXK[)'# .Eo|f);TU[;%k ̥Ev6+O-_FvFR(6#gbB2!ң =slNv|=# 0Q>6Q]9n-cF:iv#|lB !܌v#zprCN^pg[yۘ+ZCq'ǭpu'{ 'Zq8Js '[-c8َv+x qu 'N~~cu[q5'{r 'Zqpu'[4p*wɖ1lGeݍÅ+ܠ [7d?ޞIH8뒻uy%lh˖s2LJB%<=,{R}S-elUwqd44NzvQȶNeߺk'Z=dw|;vZU}GumGZt9n$d F=Ɇ.+nht8H*Nlq?hÉV٩;Uic7dHhd8OVD}K>:-rPV;=[j>P/g#Tqg'f'N4] kWB×Aa0&u%_$,Ĉ)BĚ0x1U`66:Cb ^F FبDFwGlmt .n 0C8_.|6r-)ʾsB2f\Ozl!bNnf;+=/{>C+r{9}գ!I;\ ƻx;+\L 9x-ffl1rtSw69 ^3qiL83+Y=Lw0Byigz7˪od3`_i݈! L4dw97ϰar;$YͶxiWg|D I|dל/ëMxz:޾Rށ;NxQϿ\LY H/o_\ \.oyX<JXۮ'xuݐ٨b7hq'\yJtyYCMx'w{[]rZHo&^w\M^*|nzYZ˽P7yJmս7Qr~勿^̌fϝ+xO\p8IB:pp*zVٚ+><ͱ2\sFu}5 O endstream endobj 138 0 obj <> stream x^I+xڗ 02` %9$[v9sM##9=K uoU41fx?iz`gbJhb݇ӯ-reqW_|1|ˏ? և? O?ml=mCɶϲ/lSc޺4!_|P@?lLC 5e֧b]*ݩCqL8N%7ZJ-.AkYy^vjfں{C;+XY C`ϋ!=␖R5 tZ;FR]1!12:EI4Z4o:ckJס] e]`7Bؘ_!rRk@HMCajNZ[Gf僶AC Δ`0Vn,[:T)LIAA.FѴV"Ts6WzrRk@?cJ% 5G]\sCI*:oĹY9(t)H^q/V%|+~٢QJǎRc'Tm.'1FGס]ŏ>?&# +.9ﶰb_wy:NbWLQA.FѴV"Ts6WzrRk@~ǩ1TP9>xR"XbRIC}(xA`B!vf7q᎟%̮ڒƔ8#pIxA`ͲO.S'@Mk}}>՗RHY۩ %I;_ lj%.KNY/2) C]2 A!4$KmD2\f  A!,`%\ !W%2CSlP:Pu{'MJe حLQ!2 bm_W|BeZYe⊧R1N9&|X p^ U(T1-@Ldm.D%uW*K '%a4#\B`HcM憐V+!Md20ZB2[bebX(*+M0* 4sNQ: E!vcLtfM'-@ Lv]EoJY_,WAJJe9І V+!53Je M#2`3:U[Ok锔X X՞ )c}ePy<6D׆g_Q_H1j:R  a/ߝ|CB8 ~`wEzVzٌ^} +կX ͅ⋯Л2oD8ǎ2+c)~%E=6 _Pdyn&raǁyy-@#Qẗ́WGFuI 7wSJ=7ћgd=6V'4뻭ape_j3H짓h%.E\+QP 2OT~gZ4bMՎdaiiؚJi9E壳c-"k_MFyӎCL 6"V(~R-)4#Cꀝ{Ĩ<^2KO1j.mS6zHc^+F7f1o!:13ڱtDAAw1P/:>DZg;gENbGj% x7T;Z&ݪDi/zh%?E,ϼ~a!2k1_iJJURv<;W;,?֬4xnMi.RUdzӒc*to\82ׯ/m>YZF۽ dt*7MK)q%@q{qh{9rpM}:ط;DŽȽ3,ml,6pv3,!#=yb-P>KZ$,3핹?rPd5)n8\jj=ծqYm!;[}: iÂ;h㞩a{춸Əe7&9p`&Mgyp09ǁg>"ehb2Wihk{*݂%=kv[o}(nnԳY΄{힏nW8xvnOzvPvHS=m=WvjPd {[%;utd;4j#9rDž~!Z;,bHcx#zy-Q5+LuY3Wڭ. fvx[X'\n&,rN_Y ]ޔW{hS- p\^pGDoC_%'Pw.6s¡tqן[ƭKHv%wjg,3y̹f||tdUhR/ͭmY0_ۙ^ob𲑋\zfs;{|G}/|<Ս' NjpMZܳ˭܃%$whu#rۋH(U-y endstream endobj 141 0 obj <> stream x^Ɏ@uѱK/A@D|͛Mk3DY}Z2jpٖ3=Vf4 ~y^{;~PXCCM vxe-F˪\Y/' o/ ֗? dvz ˊ?q.zt 1dcBb10> V\0䋳;P.ھͥZFkSepc0(؊Kkf:8{űCUvvgN턽D$>hUP+u_v-;a! :NFEeuPMC;ajNYfAC ǡΔ`0 6j,G:T)JLQAA;Ֆ tbC.cZ xB[ES*)>*GJRy#ʕF'hAKy G G͘-[A]c W*>->vD~=]~AZxFX#GkJ]ՖqyƜw{Xoѻڌ(q-bW3FQ _?Õ0˱zZ[7n4 LY֢օ6" $:p#`fZ_GOF*w X ^jM9\T=u%̜Un$hZCa&d5թShc,IvՇ);yrRl.Q#&PoIH܊tjfq]D$}0S[* 4 gbBX~"ٙy€f9WXF%)xb7&ZqZ[DJN*⡉6,PFYۉ R  RB}bIMU &Oڃ1ᨍ@RHV µ Y`# Ja6Xi0=,+M08b21ߤyQ:F,%vk"\M'M&ET)k;qAKaYjr=TKb+j*Gm(eAž:0P޲]KzdeN_ϵR@xի !̥+YyVِc`lDxܱd0ّHBݮaduLQ=9[icb1|c*$E%Sj!JHL/$3v+kI*A:@ J\\!!vaSS7K1Kj %m\s 壜z-j{x<&mw^hwQ6q93'7O=n |…[x4x@miE[|Q ; JDHFt=ېS>_HZ][(:۟n$}5r!z8Ve~`cG]Ӧc>_g&hCreIP˥2S~ihO/vq4Ke m==]*( paH(Pj-%Y+ _C&KHU{nzxqT_qRUc X<^Ĥm<ٸ#Nbd]O:6ݚTFH}:FreTHS.tvP"E2PâɈ*'׺Y8}\ĺEUgD{ʼnf95!Lx:xcexi1ҢDʼny.|eFJ7kb`8ũM3*ȐkA>.buqj(mf#heFJ19tW32@/uBBK^ B?J MPeQ XڨhI9AhdIZ{ tKqKC᣷3*LfWsk)@x)N\Z@H̸hAGi2&p ;(a%D2'מ(f[Mvr;XXJi9KJ@ $LiȐ /_rM01DD-ϲ`OyP3L:#i ֆglOKȼ /e|%+0%NεOFM!zc!N#[dYDl$ PC8euœz:D>"zXY7?Hmg3و?T{+f~t[?n;!2o \7ʐͥ)vR~P/> stream x^ɎuѱK/A@D|=f,"++3H [I KY17i?lv1K1k %/a51?5ZV}>`yo~~ؐomz ]Mg.zv "5dcB^bX1$>euHOF !5 )X\te-ָTjYZ|p!,6D~\cu,;^"z=dyZ;~z*gRbC'~||jjqhKΚALkt!e?mm\cJ*:lQ+[ވKvFK>$m>jUT+MߤN-bwmUkn کiFeuhMqRajN_GQC qΔ`niYX:T)*MiAQՖSM6TaԓZ;xG@\S*);*갣s %)DjT h3C)vZP]m&8'%JX-b bLu⾁[M*>ǾI6Z"ѺF\dJ50CX}2zW_VD!M/~J9bdVs  ,T=u(SJ jPƤ@C:5!jItRDљ>dW}N"rGmU),HqPTTOƤnn;1 G"mq>)dVjșZPVߏ.Ә'8s:غ;{"JHˡ#R\T7+Yxґb-1!gj\JWBLQhc /TN#T"X@E`̔X4 %T-3:%$kA,ˎ8jCK+(OHzbȬߘ;`l; `;&+qPߔP-.dфxJPh /MY;Pb SrSR&ˉQ--vP:8 42D4]qnu3[[l鮔Z p4s~-s B2 X| SBΩ)|p(BS`%FG-8" gׁYrZخ2jԆ[ڀKv%ZеQvu^z1:|:~]OBGўʍvh(asbØ3P#: $kܠL!Y $t(Hie Ʉڡl @3{3{l` f^Er .-""I6RU6HkOMLkjnvw^B5 xMRuEt%چ^/5zm /^diN%5&tM xi&uZWK=zd*EqU;2F4^i_IKnpbeu vˇxPʗ\mg2bwo/l |Qʎ'&/.I?V]QBz ?CR=< g9|ȆQ(`" N81҉ݯE92P9;u% Xn3J Yk*c]?|bs9 o& |ͣ_\owS5&"O;:"a87C$ST˗RxrxɮM`{/_]+mWKi[x}4Vt-n]9AHܤm6;lt9NvI۵G>-ĽWj.7O%<+WwajDCt1;KC۪in5] r8ocWE]&X"tyT~ia޸lqݾqw\@ Hā&׫&)}P@0njl0ɓѤ?6_`8;/g7q"3E܎$=l~F1GF(Liό%pБܚs671E'lȩ;t A~s[Po v F#·|p>K|A)<8#W͙F\;$·|q>.ۍy5ъ̵/|8:Uep?lvSf\ʝ~~|/Ro4p_'Zx{:gZKr+7gfޅǻS`u'03hq@9SF 5ak0ePHc̻2npc0lXፋ9Ґ?ȰQ}L%342|_mo+A;oo67-\F?WocvX~+ӹ(E+ktʍ->Cdx?]?u8f}=wtgkn4OhM{՝tf $ endstream endobj 148 0 obj <> stream x^ɎuѱK/@L|͛5(Y~}U]tGgeDǒefcq2﷧n'v*f)&;ݟs~kKlѲ*Wo>~n1a?6]gMM˷'۾ˊ?_Pbui9p~٘fkɬOb]*ݩCaqN8{A E;VݝjK)5n6Z&7\u8W_yKǎ.H4xwuάԡsW⁲N?M?ddW}N"rGmU),HSTTwƤnn;1 G"mq>)dVnjșZPVwߏ.Ø٘gB@Z⊧\Ӑk > 9SR*b8V@Sxv*2;cD`ŒpT.Jl1vMΝH-)$Y\bX \6QZzX@~G*썹lDI_ gT`ȧ5LØ%H2+BLknZ_HZ=jJE%*kN"Mhȿ3fZ*/e̜H)h ;hyI3C8I0IZ0uH|uȖK{c? ?a9pm~L$!ɐ`N~-X 0B^ ^9ǭ 4 "''Fa^['+VI FzfMY.!-wI$e"2-Q P GF{0Hw'*Z?ioaگ2x7X$ P$B՚@8TȡM\\Ꝉv+9r@9%`B@[nԄDto)Y:o4Ci*o"R$ޗ"k+WӀZJ 3P P3$! bۈ Ha3ֈ*4r褙g&ϖlAoY V -3/*_IH t&ԣL?ΙKhmGhi*b@Mi~d-4K)]yfI(#.%|H 2)iq"L<$ ;aIF2k[ ,Od"}[t띯W **=~ VaAPZՂ=p1K[Q ;l5jíFm%;%Z[k6Z xO,%Xዌ tn~ ]\h׈hR bqƴ^;Ʌ*+ mdM )$[eD'+u$[ie ɄBYG2юdGGX ͼY3\@W+m[DDRl d[l֞@Pj3kB]qRam5pŵkӊk֤[pMZ6\+ Xkk m5ZqmkiX;\&YqmjŋR:-naH\de,:[*d' c(Oz].G\~jd-+1#\Iw8glb_8}N* I~>Ur= /2v?+cM̿;C/rӨӏ7+//%PE6㥯A{@x|po;H}Ϳػ]RыI/9FOŀb;*[l-~t;Hmx.X>v`ٰ;* L\sjSP^{x}gvqGDBY'پQYʺjk^k{}[f8ۻsw^XhH\#p\n7(WyEq+ۙ8ymqF4f@gT{u {=OsjpOQA{J?. endstream endobj 150 0 obj <> stream application/pdfvisualcountervisualcounter2013.04.01 19:31www.pragma-ade.com2013.03.29 01:03visualcounter.2013-04-01T19:31:58-04:00This is LuaTeX, Version beta-0.75.0-2013031411 (TeX Live 2013/dev)(rev 4589) (TeX Live 2013/dev) kpathsea version 6.1.1dev2013-04-01T19:31:58-04:00ConTeXt - 2013.03.29 01:032013-04-01T19:31:58-04:002013-04-01T19:31:58-04:00LuaTeX-0.75.0Falseuuid:42e95d1b-4c26-8129-2e7b-85d8f0bdc62euuid:bccff35b-44a0-afb8-e3f9-c9f08263fada endstream endobj 152 0 obj <> stream x^c`P# BS Ӗ endstream endobj 153 0 obj <> stream x^VP׃pnIpoKwM  1 ;(G&ST$mtƪIogl:63;~< p}3csJҖ'&^Z!\XhV`1A \IfВ'۞`Bx{^_#DAGz=6: #0 l!WKy[W^E_^uz(r9.`ubbϋ}CG+NNc4O[cPy1 ryIoyq^81X[yG͐+  H:hGϧetF/_!>XwHmX vx)`E%yP'AEax S0xJ/!7q$|"aLPld'><#h98T nc_BG> EˢHZ=V3g$20  P2@[ P [p;0$W+ xt ®iY9Z֣7A]v}_!ohLtUU ԣ%i"p:dR$XؽH1,3ߘk%vr F)XJ[ê:Qn5,Tt׹uѲUjHb`~;^ok'(O |UL$V̨jR*tt O`e TQp_u=*v ]S[U\Vg 53obRPrw`@]ʂTDCsþ.G0nU@kU" ea϶ E\mlńF"dBpmD`W޹3S!33*B9jwWnTr[Une~ݣdˈ5IΪRK#0 +$Zd\=s<ѯ)y.^G AbQlA].K nܛą\g\`w/6P SԹ mu[aHU$CAJ܋Hcz'Ξe*po]}2w[;Gg`Q/05ν\+57U}ݷCCDZ>W\DeO3;ZuZ@SHɿJ [A XT`{KAW %tʿg&`l2TeTj J$ u^L:+}6M}CƆ6)1*N\ L9yԩs *0 oN޹?$pdFXfq\-moe?擟9*Wq`nw243ß^YԶ| ~Ypm[aVG SLo2*;v=z/a㾹 1gOABץ9N<V"d?E OWẓ(@ o &VzHg*?_A8qoN0kJ~1&daL" JzHZnSD ܿ98j"zƍV/?"XZr?l6~p [ᶶF@ }5o: q9NwU_lllEKV endstream endobj 155 0 obj <> stream x^uRMo0 WdJ݁/UH-nݨHT 8@+Ud˼(l4/ 7( @zNw:$Uj.tΝS\ uڮ]ܮTp}UY!9Oۆ endstream endobj 158 0 obj <> stream x^c`j endstream endobj 159 0 obj <> stream x^{y|չyofH&j33$aHEHH&HHB*$mbfBXR*.Ѻ_ƢUXW]ZmEE2zV. 3LTsǝy=ٟ<LafYQu]~A?ĝK;]8cxƆl\>rM]2cû0ks|*1~wW2gFi\[:&TMot')^OuuŒ1Zt;<ŵ1]ޮIg3ƴ+Uv2 xv'1o&p II\ZA%Ek_&L2irzD4T;Є_rf(W5,Tqۆg /^57axc^«rfWW^MQw!3usm-Vi7j7K*-k]Ƭzuܗ,Ӳز̲ree)˖7,f%"r\1_,.Q-2WnO<*OųVnbfiYsE̦چ̶6abVb56Fcv=Şncڳ>ޞr4s}%܏'^3IC'Op;<ױq͔yyy-ٷ,42d -CաCCB9'ٙ_IaѳѨ31bx X7`Uo._O5jڥnSw OԟkiXmBsk[KEխzW㘅YF[R*fA+,rF01ĨUK"V]%ZEPS1խcd-Uk[;m[-66fͶ-Uklm۵mUM4hY.j6˙ guV=~)jUcqw\=6Xt_;)tQ('T,Tj m mm }q/Ve=})bgOG~khw#mF~+4Z͋:Ѵȗ/"g~;z/ ?wípSk«ëW_^^^ׅke%pvo{xK}=p}wG}ڷ}]ӷ/WWWxOx>:~wj˩S~aɾ|k+?X}ub׉'v~bۉ'Rnڻ&gO{xgxlo+3Ӟm:K?2%;Bl I<TX}UYk0 UuO؇ oފv x1cp\'/@sy>`8%! on_I0# * hFR{TDZ_;wgBau?E= 9VzOkؔ $#@K5zm, $Ka\*vJ r;ע׀}ӎm4$#ȱ,b΂-a |Qx #tzx9F葅x:P9h$1f$d,~c ` Aҏ1B$𳬔Yepĥe3)ళC&#x[Ĥv^w?LEX"d*Ib.pĖ %oň^K߆x'%: AFğ1q1Q#l"Wn O$w0>.`OG)FF`q@&^.k?K&?7)˜/!Ml2T rs 갣[|r9Q3X@7&75p3ͰulK`FC }u ]`,>C}܇4#VB]qn^!7e fJ.Dt`eĶB!!}#zfB] !).ਇ!M= mFܝF\d 3r N`F>A\/;f?E3fSQh,_16ƥg [Yax ( ? r%ǛƒgBB$'lKcl8`lFl .bcSW(v6r6MB9y,MeX+d 6b6]K|bRdeU0-bl1bլ-a l)[Ɩ[rv[ɮdjee7-l+a! G~N?d{=͞b! ;ʎ؏y:v?bmkY+Ml,`zt5^n{$!ήav}5NzOP;&&eײLef F=;$^To3cna>j~θ7^e1^Ϯgul;v]l.:í*-l6.TIf{ 7UVvrSl~ED_yGoCD3WAmc)ijS߄=׿{qC/3`D}!~Uawq]Z6 A2X:&M(hQdMhoOcLZ72z}eRW&e944(yZR]?c+ \e?㠿] y i@}:1ڋ2eIf% ޭӍPٛA *mpALTnPC0d<,?[a8RVs u8,W/V.>MlSj:KcTKqn97g)j3tVlkIe_E_6&eiaRT-7gYYaQ>}-ɘ4"s‚HG _>m86%{* ζ*UO|:ԼnnQWzAjl$2\ ֩hϚ9.LV(3IfΘ|Pm4 wD=+聳}IV'zQ7&9Jt F2Ң*VOKoٴN:'OiU=-;fd?|}I0kÅeѴ)ǎuҏFeJg)4%`گ:USa]*bUQȭF+¡J,vx"[#"f(:]prY`ٕy"-aծO)DAw}9u0@P< MEO -ݢRΧQ|3q5v}}A_eҪܭs+ CЩADPh_Pѽ㚶r{!+̬̍4p2c <>_'k 7t² bxFG ʦ[=1Y_#TzyD WhEppr+b |O 01بGl)y#|Dz@7n^}ikGd`;@݆D?. _'x A$tr}1ʈ봎QJ+Lj888Uie^S)ZIC##E i;l+f49*iN6!.@]쬏y ~}O``+.Ed'r%a5`:Ҋr[zX֐F|օIzADfou7HqK ~nH;ٜr9^Hv7J8))UWq'8WQK; ]%Nkh}m͘Gڴъx %$4_Z\Гi`# F sq/,`~B2J+vHy=Xz30wHg2de47f=ѭi@7au4?iD 3[ro֩G:wk7zyqM'hvr&^Kv;2>.>]N' )v=z LxBVM+d߄֜޿gSuY( dQ"\ӈɭ!k}b 䛡|/}?*; ꀕ[Z ZW{+ax}]퐴"ٓ$%tewb_N+Ѿ2x=&ҁ|so@;PnqKܕܳoq{ kOdO~݇"ףO}VMݿ|3 z?-5ΧE4Q@wr'7Dz3~!Hv&nIoOt9oRq]bna':f$|?WzU-VDmvuԩ˘wǠx(L?sN:+?#^XmNũh^rrb1BR?Mv:gnns~k~-n/NݝA!< wzхR,  .8jFGӄ` mIlA#܁?+7tx; k/u`/ 4w{Db$#\=n]u7k͍[Pw#hE<rs pqY!bgzB1BdLMlt;}/n3Ʂz\;cb. ½ݾ p`mmpA ˹w{]ة|k3:dGLu66ۅh2O);6@9RGvs 5jʏ;d\O# ~1?V<$b_Xɟď#)l&?Tt??'kO|#MP~H&o?({xh?G{0wK.owM{{jwf=g(S~ ɿY=.R_?U=o5C-ߺ+U5zH)*ڙJ)ȥL;_Poon9w|'Eۑwہm˷m=m7Զ[77on^o.R@-ӵE_(7~*n$v7N h#41ۛj.7Ӯ t.Z|mZ{.A, R"+wMc;6֞7mfVerDExKJo٬67ek+ysڔͽ{__/]ϻ$Y$sksW9ӵ9t>+ό3>0C ^0mV  SGkSKy~-4Ay)C<ڔ19Ss,ⓡL>H'y S|0bȍ<;uq;هs{j3qYWraIh.^P-`fId>HͲcjcP3Q`:*Gڈ6ef"5#ǼGx:̛ian>φFx*E9SpR4'cN&>Mt͔ɍ> stream x^RQK0|ϯ|̇ڴS(PuC}풯3&%MMu8,|w׻KGW"xj kِhXW4+D|3Xk 40^dL smd{! ;0G/`_[WU X@VRPBD7R{$B.gKS \zO`g9rql ֙!ak;&a&0Ңi%i ++nZ5Bʸ s\k{lg6%C]=-0OJP_g3<,$)uI.R>KГiϽIO&'G9'stims}!.xF5_ÿv3 endstream endobj 17 0 obj <> stream x^ooFSI_rE;:..\KSzج֖ Io!)YeDZ9]rv}vv83:L(V&RPV(+\)*_f*48UU:yvtJ[y*u\s7*u+"A ;e{e{y}|UȔ ETѫ`ua]l ka{&.C.53(ʭμ\?zrU =#S4Wd\Cp΅Qd^!1``cLy Յ,WsTE1_ŐA^*0UČUy~f {: ,+ @xւҴ;XW p!rs L_1 X30ey "D`2"6L&a: ڂӁ:hV,vtŁa ʂXWذFѹ]q5Ԋ^:õxnG D@~1@B d"9$}}n:9=e8xJn|w*}=ϫ|jlyzZdɍ7hx0vDM|trE*Ud,.mG@'=;3)b AK6 p4oqi9nmXum=ټ)i%+RzR fPvX, a Fͦf4: iS=T|'|AWn@==Yn-4'ʽ~#m|vZ*k[uCmUOT7Mqw -zv 0)-0%7Ph'QJLTnjgJl L [% 4c1JIdV\L c P5=y]hJ&ӳj*F]m_>w`Sӹ*͖Nd&VY퓼0 v"'iXdnItvP݃Nm'8g{P~yi>q-\%>k7lB8B:7BαmZl-m6{Gm<BB/XhMGhrQ_}a/ޥg}8%I q,ybpٌ#8o >GDiDlD?\Dl \P:DDRmD?BT@'^biD?BTDYDq-lD?BTML࿽4% lJrxF'=y:ȝ|^GM\݂/qu߀ U5hGtUK|oĘ'J\[B;~Mcvy:T;D)[c e7DQSp [{8^$#aN%ˊ/i^X[gR!M{bt?>Tϫ¥rGygmQ3Jޙt]DIe?ǧ<=:Che`8ꮛSkv6D ͳRįL; mZnK Mmd*g:)Os'%h@l>^M>U/ӷFeZb^/Eu)f9rV=ژtx=U21 F"=(?_>,Mr };IRh%1("7΋q ^kj^G#xqn0ͮ1d_Ybd'oWK^j PvD bǗ|Q8bcn endstream endobj 164 0 obj <> stream x^ ?p endstream endobj 165 0 obj <> stream x^USkLUe޶ ݍAmbRۚh"QiԵ-t]^].0g2Z_4Z?jl5a}$F1iG;pOnn9w==4E4/.+VRzt;^gfuM?rҝkX1FRos 9By|"=u̓{hű\25<Ż̺>flȬ_,ߠ, endstream endobj 168 0 obj <> stream x^mRMo@ﯘL~bjmH[i4h7]46͛yoxog= Eo< ` Go[h^稪@u)|S?ՀȱZ`ǺNzƽTg7-o{O^0;p#N$p!'FSJ ‹s %[wwR fɫiV X4",+stO@#ΨEq@6 ,GmXPWVEc@H6XG=3*?jTݙ>!:qK*;&c7736I7hѠ:Oym %w;w+ӵ*%#mA endstream endobj 171 0 obj <> stream x^caXԐ( endstream endobj 172 0 obj <> stream x^{y|SUso}J}[Z:tM["MFڦ&) #̸8**sTyΨ(SGM|!yI.y[x9ݷs.` 0(mh.* #oⷵ1/W~ݹޯZvm -YC VCwp߇{\ɮW޼@i=} ؟CNNJLF>džvTJ ً;&>x8^YzPDޥߠߤF%Cai6epQg /^36|`h8iʘam:cxqq)!OCJX\eHY(+5eM=ʳ&$LY)&lf5 MkI4sY14/57b~S%2bLXZY*-5:KnزⲸ-͖,7Xnج9p%\wBf >ͳ4Oóq2,,b Ϳ=<n`\7vnarx22+`^]h^8. !ry4cExh ǐQzϣN98vPf4EH\pI 4Cs9 wx?*.Cz&)hRdS.f\Ei-6ŝA8.^,nw1iZ^(tS< Jp͇Zv" )Qq)l"zY%ZDH{|W"^,1QG̩q)]Jy4zVWI*{qae_8ܸJʖS)ri]ѸJٳVj[[cͫ0bU$}vH=.G-L) ;<_БfAώ|VbJ1z$8c٧/#A0dBI|#o"K,)]l$ tG  ,DMʒ[*Z'3bLɩI%ȡRrhgvXX'޾ C )$ 2'uiK2X!5Z9d|d-6+-eUy_y%Ӧ iv_6-hYz?hHǐh)-OA4ؐSDQkHVM3$hfD`㓔,d F,IO9_ GOkk./uZq|4t˝ӡa.C:]4HjX$K"&˒.%)-nhE&!3G!.>'Gԅ)DOJ.TөčʿONsEa0ChgŬX*5s+66Qn4jڴia`L)oB;o R{}%ThK6nE¬XԚZ yj:iw PP,簹ISSӊӋ33bSR<8'CX-%H/b˄fV.#99W.vN,ՙ53]o8=|awNoPmzW۬W5^ ) ;wxo:vnO~VR#hhVi!h5dQd4đCn3'>+5Tzy=IVI[ Rf]C]Ckeqq:_H3YevmA sn烥02'nM" 3GB\|BNK{NZFEY nBvjhUY"+EE0'RB/]ce#9(BXZh3FYCi sG "űCb1IEJ,Yh|(4in)fbxl-JRFfTe233 gZ 40# ٟ7]'3Sf%)ٖ] )mI&d%MxBB:}W"zomd zFG0gs~gD՗G*&"1|`*qqu 6~s]'JK\zXuukZX=W)fS33d {5p  Y(E E H[i0A\ik`xCH;lR=1K"D\L'R"~6]i0Ih,6FD2L #m ["mŇ#X$iOLe"D1ܟ ͍c7_[w ^sXq w}/Upُ U{^m=qxwx+\Zagt"^B3l|}t \7Sp:3ܯWx23_)).t +nu9JMgR۫4,]JץA)Kq+NsxJ9Dcя_iv:O?p/[%2dTHc4s>O$IcyvG IlsZΨF5rؾ ?sE"d7BIcJWN6zqx<DK.BGbŻn>`1; ϩ \1p,ׇ3UQ4[].ht1+1@k)98ƶʟ;я8?q\1AsH}A!  r:c89S7hCTqDy8A'9t"e7*!zxL H!}( ?+D2$QPu,=?4J%CV3 jQߏUjU;S9ou1<*1Hd#*F~)s1KQ2!dBLJqѺ!zxت&&s#erKVV |%&1`:|[JCiΧOM>߭mzk !*oEɗh'#RJѕkT1;Ur窜 bZTYtG*,պqqbPN=[>y㈃)lFUWd_-н=c},:BQow3IK|j<+h~065*Ԟgȶܤz[?uSIqff1~6X2Q۬S|NNsĨT;_ '13I5V|c:{}bP9O^P}j5N|IC͋dU'"^J݋;Qʋ]z][تVLSk'أzn1 v|ڀoJ G6yyoίGXֆU l:_©jE ]c|:NJcXSEU|DYf# o׏I#J˸_;Ψ@jyF[5syDQ[y*/6N ϠwvNa"h&\ʤ:uU)#B(©AoŋdKoMU*HA U;j}5CAH$љT[ q崞8!Ĭa,'Qhs>b X7T-Ҍr!fKQZ S{wt*]O=J\; CHf1} N2i QzȚ/QB 1Ғj8zlg깶bQt^tݷVx[$yT HBrnja^Jm (ncXU:TwNhl%QVFTFc_'Zj>uoi[]5U4k դ{>^O΅EyNZ l+F5[pv!xΚԊ%h|YbKQ^KTxOUKIQϢUkfj*UF{@UM;Ơpi?U:=U\./T9la||l15:oocȐ:>w:9>sy(qy]x&u]NEq皟zcpX gǫ\x^HjPqe#㈆z<}Jj#BNszǪ;.uuiDq/$1wI`Ev|wqԷ Q#Q %pT P)2AHjHl~ A9ۊx@DD8(}aqdh^?6I(3H9^k;]>w7@zD >Z٘TsspQZba=Q ^1jH\*CӧGÄpG(fr]3j63.&:z &{sm(t1GG/'vx{~CG57`3BpTrm#DB#E9^7E|tstchE_ƏoXQrT=ZnSJsCɦ4+M 5J\֌}Ui/oh+8ޮ4T)eʊJb[dknVWԶTW+帮/*T!ۭJU`V!2^SR[֤44564F%jB,:2*ۛjۭȎVTVi+kZa% &O)D*bkjk{VVGsI: u$2{MCRnCVkiiCV*jjJeY]Y5EB"A mZhʱVL=JGREC}me ( Tr(ÿ Ng%8&HfU)ki&T55 O\A<`2dJDыp,^\ HM^7L I{c$#r@XΦ `rw"2/3^/:Erts8q|{Y`Q-:ʑ* X?wECu"7 =E OR3nnn=n9Ŷ\-onf7m;؍%'~4u44vM]}DS쪉ʭ7Wؕ[7[-W[ٖR\9.`6V˛BlӾ[aip C%ulbSbzClݥK'2w2soz3lֳEdݥRWB̹(Yvnfrg&p$̑.6kKؚK5%Il5=]t~}|~v}UܾJrX[ͬA0;y)Mnv4rktfVOJX-Ϋ-a+&&ĖXuDj"*l-*KÅb+//XYjl?+".͑KWRulvgKs#(- !6?mfsCl*NgXq:+ ™ ra2!V0)`3,?ĦX^n妱Sl)f̦4ټҘ2K,y=%Ab[) lJ4&e%ʓ,+ef˙%,#MW41UNRSȩX R, [I;X|6q>AN(wǕX>+a:*Yi]4#*3ޙ0$&l aA7? endstream endobj 174 0 obj <> stream x^RM0W@lo6K |fC(sbKl$YX ћF3G| yf `/Z2l4P;1V0:dJOH#ߤ\X:= ??~!/TJ+]CY?̊d_[(GS7 Z-hÍkX oFi8Z--THߐ ikCJ咆G,v:'O$<F ><-mk')Pf^4@Cg&*`?O(zi7-8B],1_귮ӓ%[^kG̫U7}xqZY-D'&y4s(;4{hћG;ͶWz9SSYݴ &C[~naG endstream endobj 177 0 obj <> stream x^chiabp`W endstream endobj 178 0 obj <> stream x^|{|U937I&ZPQRhBoR4M@۔&TD@ X m.`UQUª ,+{Lo~_B33$T6QߔxEH]BԶ󟓫O<̂$!xH,vÁ3SoS _?hms<>LIO?B'IxV|/ŏGkf>cg.Q$Cl(bZת;OWRQ>>>@'t Q  K&Jx=>\/OӿUX=)9W_k" iJR]+䯒IYǦ֤6ޛ<=:=1=}OÞ=lO/hC۩SyG]~nГ>JKHBJ #!z< l`v0#L1ecّlkcרW:==~J}Gտ~z"RF$T' zz:#z}mBO+ m S %=702ko\sy9u z 1Fcz4 Tfz =EML9FSq;߃Yf6Ǜ=esSAO{vsy zZa~!D46iBRU3ӟ@O?@OL'ٞ==kl=Q=/w_E ];??_oKE<??/<__?G޾ֵk'qkvگzmW~ǥg.=yiK_Kj.U_{i%n[_||_>}{mߛþ}}{% }_vv={ԷѷַƷW}U{|>/'I}!{w]ޝ;[uoww7ϛzZiT0o7ٛ5y^7ą}W{\ǹ疞\ٯ~qW_]yby Hh5Xcq%F X ;#RBH(pC(EhbQdGFdBf4AP?ah8JEi(Y4eL4 FcPơltDw ȊrD4 <4MASQ>"TJ TP9fh@shD ـըA&$z=vw=W^B~*5:C t\r @Nq=B-F ߣirK.ա6^At}EGJdGMcTEԈIzP5zBOP:*B_[rXr@rBoRPHUJ>Pf]rHrDz=Dh-BF=64=hL/[нt+`f nA/Gǩ58݀3{c[f: x kRMj)S8{ $r݉\@9:\=HfϠ.UjgRzH\G1U>}GХl[KN R߇N R܉6It-}p.X-pw-H 8! `Bv?_:c cZCN+!\_2c+ql?h.~:d\^nj^U.+9 rӠFf 1Ab*,dl1 ӗG"˧/5&C q7fHR vUBC<fY-xMWjLY LWF 7$pUݸ_7.4lܸru8^ qaFP̌1G%M1Qz*B'1d**/΢… EΎVwzzƑSLXʍ(gqaCCaŽkkZ#; E 6,(8<"♰Tl[ ֜ՇLU@adFZ;)-DlD TLl1ebTKy--k$a8[c W]ū >jAB[EjYEYb3lXZ,++]ꢻpvI].yK m6fMMMMMM9=L#z=et%UI (KGKh-tTX]2d hVBG"Kf{X̙6}溒5%kGLWG_*)[TLv>|2^\}κGgoYW;?εB?H@ar-e)llgh;;CrDF#c%R{ImOظШ^θJ*2*LYp6+12J[qfFoi-}384Ϫ"# rq *Qq,Rk)a6i }$LZe%lTtL,J$T O"EetE"@RJEh2RYt̊yOivRG?\0)Ño=]Rݰg&3` C-JX,cXذ`ػsٌKKuëZڎfhR##6VPMņ+_jO V|? l,n~%g遝`LƛLT9\j8:5|=G>xt>~Vs}URb4+ DSs.L )},J)ei6݄Z&/)L#CKeW/-0q &N!7؁eX vO4ܮag"MLFiO$6Ab5"8=ip, >_w󑖅)%wL_ũsFPo@_}Æ~<eKomSiF?=*x GT*,24 22VRV"Rh2AA)J!Z 9c\@2! J`T|M&J*V"a+)#EAL%9?-O̩3~$h*u!P~k9;)ըQlQ(iUka.NhYFDulwf'>lHYs8m ICc MH,Bo-)L`פٿ)]azm{2}!#G$Nݎvٮ+z{qP2wn1cwǽD#1 46g w!Lc}32i<\jYfrx2T۫?= vty& ]zkAV)*,AL4lD.CiseGQY0_HtQDDLP@`(yQ߂F&) ̽WyQ/Y>rLc#6swvy`I=Ϟ=^bٗZVӓq|뢌 &AjZfvd ZTaD:đ䘋OR`i '& xcEAWWFXc (.+sŻ$#$ OÇV*q\ [踱B&ui*YVU*XF)VfZJ%[#::Sѩp\HCJD[@ub9z1ԧp?/ I aW#d(s1H,s*]2_~8&J&yT{aav tq?i_QCm(rMפS4j zK8:b&= R CSɼx *G#cP&hŅO봤IR5LJn(Y$*F.RucNG(1hU!K K3}x EGeeҨxUȬ-k/6=1w&FgܴPiO7-ՂU+|o?:ϻQ |ĘrTu,zZ4HP@S(k&GPMvHԔZAѡ!RLaZ4q$kA%fL[W\ f|^S6l!eeV/L&l6(ZS9{kƥݔ3u[Ŕ!iw -Z5 Z aU*RUmP֠N F0DD.uJJ)ՄPaK2'\#&51He^8՘p)j|#՝Tݰtuo:~> t@mZ,H_:E**+bel)(CFꮰP4ɒ]2r&LpFD#*AL* VSé,ߎKA&jޮ96 @8Đ-fˌPSKP)XC&GJR"%2[e DR QJC*QbT9/b_kN+__L/pY Beʡ]#Ysb3sNHt76S7'ӓWĽgŧļJEl1@AF.:Hkº$kda:QˤX%KZtڞو@,^`7/k*0i!ZA1YD +3dܑy<&,Ɨ7@[ GVFDFD!l+JVaMfdJ6FGJ"W:R!HStTb\R%).1"R@fA3!"2:r_In3yxW2Ą_M} j}"_U> Iulh r}o4Δ gՅE,߻,,<=sze{ZFNl{S]yc^x^95zؕo.WEݙLU ӃqdqL!)v&n o{_)@vsL@Q+-sW1޸#AA˕ eJ#22ѡ  L6ރXX;67gSӊoK}+WR(ʕ[ZR/و,:Z8Ču&z,аp sӁi\ȗM萭uPqgd+tRēNv{$h/^\GĀ$gmD[8/aTJ뎿ŚO5:mغZlDU:瓣]WM-Z1sޥE˗ϝ3bU$f~ ~6!d$)DI&|HXL% \.˖@jFخ^-JP VFlLL4IPzXybv*[*#Eu*ׄDEDGLa0kthhIbGewU'8\K^ Nx6{3gnngFNɵ8&BWuQw 6e*euF J,SAk@#z{b)Q٪PRRBBujBUA߄ 4:5e l:!J>=x( qPn¡׏ZuC*|qw_s>G ♇E}omɕCM&c#m%HBAc_ N(H0cT{CG34M)<3׶P߽ O+o6y  #,ঌ͂(me$mPMw0M.LH*ePV0;&+DL' J$i Fp]uO~걄ԅSTƒ_ m\T؁ɶEcMK5!lݤd` 뽟MjN?%ܷ _M^`_ o\J:bzCw "]5lEm:wN4ʂj~ F7n74?DRRxὺ=荵}7ͤ^g'%U/҇ecds]kbrrWQ}(dJZ|=+J8k@n)ɋBZjb`L#)e1 )0f %(P(10J>7E&j43'9`>q O R\`L#5Uc4Z30>(hZ J2dc%ʦC“蛁3.xΠ%z z!:a&! L@6E5Lz-.F$rF%`"bP5 PxP @` E0pX|A!O&L3wV>jjN V"KG[1Dve&$z!&DF$C= 'F VA~P;dLҧ뾄\ E[ )v*ZԿuP">y4KTZ!6 GDFDR'.o @8~I jpNdB(3:m% }:_IH@2KL,$D>o"q~K& F/~sm #1?%Aل"O_F4B;7BDJIt%5>;+Ȉrn(Od-&hu0pS/E;rM`+SG80)eJ,(JIp߯FuwP³h''Mp@R5&ȷF6ՄWA)WJĨP0(smRk~:E >'NVpB !٧I^!$6lE V } b~5vl" 1/X+qK)n(I^>s1BY!* da\K'4GfL #rv&2A{BHa2\y(5!R4I aSr pGfrAD3Y2"e2BQH^e&%? A"T"ݢ# "gALQn-z#">kI@:,7"K103= N V)=wp(]"A3sqo0C|Ai@$4!LV#L QG-v!#Ǚ z^>(8/b+{-y9|5R5+3w걯*_;'qԿ)B&b~sV. wF'}oHqoԿt$54[]5ŝipBv&s șVX$ONBC$;S! ck+-wЮXOWLA^IM~R; zDGTܟ+bԬUp+֍ZwTRmJ߉5+NNqAJUn t_h+}hDȽM\E/ۏl<-Ge!4V(J-NZlMGM*W2C?18[S; ]SX@TXУ&3=NkvWc3L'<zΎ&7$Ĕj8;mFG!:e=@peZOhȔ"PA8n8,HPԻZ=@L3Ќuqn`5:v>Tjhl'`jB€Dm[i%jmmi VܮTZa3$ CvWS̝P%[kC@i kM.C ^6`* R29ǧ 종kt܎m쨵"BpvUuC5x`@m5x&4"^p;F3F-MV-=hq5l 0HKD s0uBMItt؝CdRLaDp/p&&AlT;Vab) #K<5\V. xf93Js+\NQ7=(7˛SRWVr%yp.hR)DXWT\baiT~N s&Wrˋ4+)-ϟ4 +YZR\0rlQ~RWLI%S¢r8ʕNO%˥0%\,ljNA714/%ҙRT\Hd4(7<L, '6`eRAN~a*S3DBY0%(4 ++ɛO ҼI@-ك$,@T\T7c&yAy@$P&_8ť )R2ɥ@.' <y%:"nEVSHn ֕h_s[ B('$'I1Oi CG,!ʼn\ q! ᗄ[QM">6'$SZZ\@s Z&d@* `L ʹОZH> K6Xbݓ,<\ `^sPwE-BE>r$Hw =TKsp$@C7º,/<ǿۂ)eD?<-;<>3[GpωG0'W''V0HbWV$|쨅=#>jGx|8soƇx|pnV?s` k57j/۲pl6~[V[yoS<~rV(d<~"oc<޴?6 < axǝ<~: kk~pD^u]UUU+LdY<^Ey|?e</qտ /qd`E͡좡9xF7,ajZva ^Nq\k > stream x^R]k0|ׯ{N $5)uՑ69ӇB)cV3;;;k,:`SxFua|)k2*#fZ[/U.E{gȹdOB~Pw߃-]QEIlgÀ;ўq-:I) NrJ KUٝA8{>#8UH4.XWU&<\\\!|3`[Q yMYtu}F (2x4LvBm~97h/]j(E?(=OGG7|[jᰉK|_x?Fz#n]kάڄ~Kߦ'$^oDj^wn3 endstream endobj 183 0 obj <> stream x^㐼Mac3E W endstream endobj 184 0 obj <> stream x^ |7~fﻹF’ r .!\$a7F6HA-VDZԪZkԶZ.쒠>}|>o299gggߙb&k %3 EΒGʣqr0>090+P^LMtzfOEFeMZ~8쏲?YA`8\u9sFg]͝;tn9u~/~/޺Sl={zTd/+`#`K`L;w]QP- fapBxYxMxC5\JhkU*I]bԓiG|>7Wvo%;|}!9Wl'SB^n]偭'ŰG2FL[ !lpf[}==1]a=m&5&2ؾl95[ . .ۃ7&6l'/_ѩL9sUM:/'W% 'öT =h3=?9tS={{칻ΞzZ{,iiNϼ==zFsmOAO^O'cW.+ ?vo~ݯv?Du7u7vwvtG݋+vst]={Fwi)Gw꾮{pݙg>83oՙ_řyKgN9tgy3?̣g>CgvvfugVi?3O{>O}?]tީN?IO?~?|Ç?C>>'K )PdddDdX$-b#RD ?`n/7ϭoh>f֫6A;^xgЮF}yQ^Byvy(Q0'olDy'V QB3{QmccZaZ?F=G+'ŸB݌Ө;P@?wQDs3 %jAFEa}[P>44YzOXB/F[m(CUt P~6xE| //wԯSo0QD;1(h碾e6y碀~5!a>jCmGE_hDw$< Se*c2H]:QhOB >Rb#!i'"ЬkBćAt?hMFAB]r#ڇQVtPVtϷ@+:hC/}kQ }~$altv!PEA|&MEȧ]6h<m薌8NV"ݍ\=ї I7Dz!P$ ep#cR:*z%Fz!׊{ЊZ~)HSh5 vQ`p҇ Z`~؀߆6^?EQCHa@+b]?eEO̟6lІV$`+ sʊ~(j~j@ ]t(Y POЭnP Fzף  @n?PCYѿf6Jؒx |-`_z`= X1t̊1n:btj@I-;鰋tktЛGۅ:S+>P+#Ί_ve8! gA|Y]㵨cbKVJmg6t#a6xʆ-aٰ1V?@,rYv9j+&R.kE:cb:CԂ ^WAf\͐wt[І̃A&3 כIsR㚁X&yA3Ec!<`GmU3vj:1|uAk')(m3t{g;𩝠ۼ5d?܄9  ܎6 (}U j+f/ #V̬V̐iV̘gE`i|# t s "OaoP'z 3{7(+߫~8?+\yID=1`h:BFAEC$$$LRLnlQ"?I:ɀQdl2\(aJGI!Z2 #RDF(r=M`;#RL&Id2)!ST2L'd)#7r2TYd6!sOCBRI3l$=dy$aEʺ,򑞞9B8KE3]Bf՛N-#wRUvJ/L/poх9"pT v/ .C.k9?%B \-p 1coLT̟ebl쏝qW7*XGpjG='Ԏ \:E9MyBV6psCLVKBN2TVnٝot~>dAuc}cltTZgfXXn[ѳ:[2> K36qY.? /-^4M jG^:].]3([2 d,DԪ#FvPV /vpU }pq0ޒzeOY@jY~䐈`uX5ta糇zY8ܭwܭKle򠂈NQ>^$0; ) =Yg8a4w=7ISn~/]Y#wy| t4!BJjoATk9ŽFA#Alɩ]2~(Qs!TAϟ9j qąa})a+ ZzE"f]YgL:۠yg 2 ZUⰓ!/]goʟ9sv\7ʔ. GJ"nݥ*ەz4!0 T'pNϵokH'EX$I yTk1SZB\!(,5&4qM4Cqh7;9$(^'t C~,'G: bN F.AӔj?0sA7}qN9gE!DDDDDMKw 7* *rft8D]{qܺ[XF} xo wr;{ Kҭ|aSɇp_Y?-'?,xꁮk}@G ] LZ]l1Q^/Bm&=ﴟke/zk˜@[p 4` ERM9vCV43tũC&.pId,2C<˭]/qʩϹ 4EWe./,9$#? eR]j#nWjsi$AgHsm ۄ3.U UevujSQ|#w>r %Njoƭ&FmMlMoK%Rll48$+s:3d*A97˜ۚ^86^x?}S)v&ndZz-1OF41DlܺʂDS6.ţeM<39fK@9,ikvzyp,ٚ>g۶=yMV|gcǔ/cܮO=᧞7ڵa]$?N='p7m@'ocs/OPdGY #9&&GI#FLVT4miӊFLW'ӧ'cOa,=B@fcgYMtRfJ5uwNv+6?aCӈql9EUȨS9-*1+$;=Ip93I0 HOiW^,"w<ǝ%W;]Pݷ,@-{g(AX w}nGE0VOm)Ԓ^zɊb2^/Mu(TꪍaY-&8bq #Q&pG{F %O׮W*8{; 2al@qne5T߀)Gt{P]|;W_޼zʿt1^lpo}=7Y9+<"C)eIQMv(qi"XS0۟ a/ok}B6e5Gbt ܠC)ʊc?t^T[~ W_Y/g{ș}GVζ甸JFRM:ZٲRIՐ:^:Wpx:uVv?'!'g {oʹ/T5/J:8/so M~7\̥Bxh"HrDўI *r}(,EF *qiŐA&1Y0, f$Mؓ p 2ȪM.<`kgUʹ۸Jyn7 d 7eWif!)r=.ۭ[Ma-\Եt ftnW N 6&귘(B f$!°x1gV) U*Q~*ZA:\m8h󐉡)sqanf c1203Ν+DRVM 0j^Zuy4WrK,Ve3VYaDm&7YMuJZ͎,Κc*vҐ{YTpX AdhaO%EQ8 n:ʓJbk9B+ܭ ߜ>r` CŐ?aF]T_-(o.f~,sN^:P3KRii蘮1?dI. kұz190Ma-% цp:ӪT8WMInIk1U.:.(X"pȗȹB\a[gNcI:]t=.$pFՋ^rQ+hޖH8 CIȀe$}[O"+u.sxwl-5µ%3 6g9:9g]"MvpNqMqϑ8:ZgYs8}:HSz+Kgä!R~k{Tp>Zn='g D 5Y +܏y3ov|c ٢c ڋ I}p? s$sJ8Hsh+!MKfQv0` 3nʐlnh*ݗ`s@%AೊWiLp9Tï­k~Λ_i4!BNj2yuj0 ^x.Zp0A7/Y9:. \1 Rn 7A9<V40?駹El+G9hd~,IId|OUߟ`|s^~&>0V+80q4>"ұ4`߻{ʗ#x )/w_>?ӗ?PJBMF5TyN dDMjEtRRzI/VAI^"[ub5,[f7B8p!,r8PfV1ȇ,4.Uy 1 W +{?\ᛗO?e߷m}{Jq=7\>:_੬;w'VeaMfSOfi,/_Sw'ˮ̕Mf>mD2RsUp(Ul-QEɮV'A LAe$esl9˭%sյd.ɍ%[sLlˑs9"HHHK(mo<_^b,1M1X&JI`qiye1A7,r]E|)),:6Y'$9-eo Al͚Aj8?O?=zZ{ KO>KPWp8<A< ~ >P6x6raa<ԑ=u<4 zѠ>&lWV;*[QF[$ $# B=*zC"'XX\E\6E%8Ps53ܑp_'.w0v2.U]ަŻnngh> ٪)oZ8jAF ⶆ- wf hEa.]6TM-&^ۚ9uX0B[ޝPsq5yyI=VzpeFhM}ϔlsL1(P4D; Szs 5 $YH !Idp\DKϳbs ,PZ:typ8:Q(6M2OL'9t0d΅"| }aqDz{ƷbͰfZannhwφUnڬKڧ<nh1x1&L-) c#V-i[6*V>I$K0FMbrbb!N+8crI {n4wB =)ONzNzO&H[o߲z1TyIx + 빶|>zbzS!d24LOJ-ul5l)dN妰/%F e`dpZ]H}0G&!Hgo犻1skϜx퓃S1f%vH*-ygc\ leV(IJWA1%FP?A) Rv1 I=ھ.Y?~7laϩZW?w)ݳ+PtVsV=fsGwd[&p=dhrj(uM*}y#Q.1Zf}8vײOt0R#Ϸ#?S>弟m߰n;j}]wS{)#8 KCY8^&-;VL,&) s٠Xu0Ƕ}8;/!-85M=l6NU]0>Ds?$?&cW5YKc,@V-C݁9cq{]]]xĤKold}=-oXwp"1dU <Մu4tp[I5ƒKiAy- J{s jjYH~p5 3&ɳʃqy UW}v@ C.}VwbNՏ׫Y\+YK?gVև?9W7(c*v".3dJ`[p 댴C\Rø]قlH!&A!nFCcP |,^*4Oj1ilE.vȣ])žkثٍMs%Lg[=$_)B.CJB pY Yl蛣Jpc>KhXB 4bNw-\ƏO^cM?nŁ&a:;ғFB4{)[]/qyٲA_X$0>(lrܬ-cXT:oPKBK"O\E/sWic oPU>++ ;_9oխ̦~u7#[Ǡx zMo[ zwzFh 1tMxa:tK;LYnQJN<L - .e+@BKE̦7btu  q=-qR3Jz'xɶdo>ǖE-JlѶXض[BvX($d͢Eg%VM2%2,N걥 4 44e!lu:o~000k}3&ea b\ӍَٮZCƲ-W9ծ[ҰҸa_X\lrmrolnMiiYo<\N, c,@gIؕr~܉+'_>Kya~f2L܃~{z@|9j Sס_*CL~ FPbf#11|F!&}O^)P2!X:'H7.Dj_G;rvg&Qȣӽ2^oe=,V7&lO5f`0Wf\s: Z>-C1 S)1F% ޕo7''a|F' 7$fWS<-^*d~S 2ֽ>V{(|~:mVWwYhEOWix W*yŝ,ИG0!{\2\OcsՃ>bm5붲%&{&>ŌeV}Y3YZ`g1ݷc}a_gqIJ?>gOq+T~M|ʊl7IY G"Htiq{sr|mw/H䄡~k0N-WBg5χdveAi^6ɾѴ6q1󑫢if&Xtx0`bj 3C%W%#pw7+mB0\S-|fj-&o3.*(64pE,|<${T2Dg:Dn؍ ?؃N}9h-P Ȟ֡@KqH "ev؋'C$ą !q' %=g˜X$pĞavx*{o֋S7l̀=1x|1FRAC UأciolÞɰ4`Oh>31l#ߜƾPR]Z;Ŗ,l_d333ϳ͓CGN~Р5xx$H[}M4[\ QJM0ewD1|LBX*jcTvWzJ_MWQv]ԡڑ^jj3/,.ppV4l4TfukJ6w9p.WNϾ4O㜰7.F1\lg)\Wh1TajT u`YnѲܣdGFYK"ݭ&;xNL@dDf?pf< Q70H FXaXIt4:SCjZkYG6YF5emlCO֥$s|2edǖIø L@K5˖er$$gc"|! >MNMJҹHLϵhe흝4;yvJ=WR\.jRVͺv khu,%!|(m6m6olw#;Rt\骔4_V-)n&ųw*[L姷s7rCZZ ji F䅘o\ngSdf5y+ՂKh?/jLקd{=-%Ln烩<"#͜0c]TaQ>Wl3C l=G(,%bU$-9:PS5"Yb8KW)66radP*uai9YobݰҼ[m6r) :XܳnRaG4QMQ)˸Xq| c>UFY`l!/hn2|n`'%Hا`GT1wQf'{bzW2[YKxޤ1xG}i6\K=\ÏkMkp/6{3 o$vPFv>׭>g'x'u^: 1Ov:1}6=J4!N9fF:'gI T.}47\7h״7oP~6nqo[|~ )cn,P:Co1): f zƠW{̯0ƅa_al\1 )dyH|Mkî  {rٮa1h ӽPjY)tmiPJ! K~gK,*da.kiXD!n2=tY2Gc\%_^VS}^p߰+Qo^U5]b֚jJ\:t4#oz5v$w,s~l٦ 1$y);%i]jө_!W!=#?#7%c1dj 8bx=3BMcw/%忨 Ю?~zṢ=È,^ϓQpdC'dm߉}e!lssZ\i?KM "-Q= K͖S>݉ϛ;:g#(o"SCdj|vz (PvAyߵA6 r5?|Z]rycT#-:|bW|e ^gHA_{KR5u 붒Z{O=7٣}x#HjDNX5s~/VU= оNډp^v)l2\XsA $3?s{?"#Џ@?#Џ@?#Џ@?#Џ@?#Џ@?#Џ@?^ (W^M?#Џ@?#Џ@?#Џ@?#Џ@?#Џ! ;fU &8yW|o,;BlC ܫ|--&xi11v4uu;uIyw~գP2m&Sis4ʯml;l'۟pw8~,t]try^6z_JMؗؕt$>1KG?#Џ@?#Џ@?#Џm#%rSя@?#Џ@?#Џ@N]|U@]3;7r? &ox6#+{lc?PnddkSoE:bjyWm"|Um1錵Zcm;1"&jN0c(Z_ɱ6c 7)֦8?;^khuX<ϱ3cm+_k[IXN}D/sdWSMJL9w2ߣRL9ߠ2T #c$6 &s]0003\!ge*K-}YV}/s5Qn2L.644mcI}dtDi $ݢNbJvM_=f2/a(&uf1WǨ:YʠoxЋ=Ad2-ӦrM{m>}+fۚZ44 ~7ɓ &%j?k0Ƒ6?đ탍Wz~6:Ürܣ1ڙ14Qʼ+qqoH\ù WRg`a*۸o[7s쎸ei5d{y8A)͔\=Wq&5ԑ'}jۤ=}m,~if gfĭ)w ^zVd_hYQG>ڦyi_gnisfmM60v"d*q61gMܗv46gluR|86Շ\70|{eߵYc̻kV(Ahbm~zYJ͋LX_^Ecb}LU9 ulWF,JpNF5gxǯe)U%{8׮*0zIQJhôiQFbZ^m}jcJ&nyzQ};c_ OFI_c^cZsl^c3w7*j+'m7V TfܾGm])Oi1}o>(R[~jł,ֶ<mU͢me_ I^ﵨƙ6b4hvuĨ!|uVl(^YIْ5zed_b5gQq0'wd1JY_-fֲ_,fX-ndT]`5wZ 6&dKQ4<%#9y3{oFJzF5pC:r[U#K5њmƲȲ%u-jWFE]55'ӱr񳦍-f͘Y>&Ғ҉xz1@Gg-/4"*p2(WP<}l pX.K@%ggN;mS_]%XW}֑pU^ؽ̓wEՈ%_YD6yoC_QP_w29?=\#G/+%}dbNfПY g/z|5}Dϸg 3nzDBЃ }k5P蓫>Y|M3igWH}$,>GVLwQܛILyt4qB]^*}NeϤp.+Í}kV3$ܛIw|@ܡ{vdһ[Ļ]#\(do3-tJmF터5ZzuIA [2ntTܬMw.7 wn\@ ALaCܐF79;: .L[@ov[Mtm8,UF&޲*RHW[ͫl.F;vv]i+ tyqLVԚF[LK-R6[hsHMKFM th`q` !C_uG:.^ k5tqHɤ\@aCZʅybBћ@ߙJ篦:w:(ЙaZ7Ҳ6l5acC4%XN.]7Itx8gǻ踱&q ı&2q0f'- GO׏rO3tTHHG9ő hX#tSkP^;%^C - i&k ?Q,@> stream x^uSMo@ W!4-B ҪAh0YI4IؤHm yϞL~J5'pG_C F,Zg24rA{jv fC/it?`qeP0V}_s%1=/3w㐃J׷]UkW LW5z!Gj69MF7e@R'd5ƒkCqKc͕>8ޫQhC> stream x^c`:a& endstream endobj 190 0 obj <> stream x^ xUzoݪӝ=tWI%$dȢ,$J : 2DYTDGqeп*I*wI@-9}oU:[!DF|csSzn)}g/(˯ͱ/! !jԳ BR+g*!1bs3f-wFTB K x$}P9)+pͬ(72`?.˟S)8Vˊv9'$>r[LܲS'B~""6jѲb![e3SDAϐĶ_B3WQH|DmkõpTFOM#NH$W ֢4t驪)D4!C#  _ gOl&|V汻J=NSZ|T|Z|I+R4^*-V&"r'%ooyHW^&? ?"?%?#ʿk[n[i[cmmYk-qB9.<.*78ָ9qƽ,punp>|g =םo9s~lt~seƸ&&nuMv-p:{Zգ&Aj:ZީU7Q R|H|T|l|\;K|b|`w;V=7Kݫv~}GDxb<񞮞=<1qW^howwֻλӻknuk#602ivҼ "y#B懛77lsVhmmmmݨd }/E" q^M]ck]į]BkٟqX%/>)_o%+&I YW/i\ny|5_km ];lmWȸԸֵh'qF;Sy]fs]לo:q~qETH8vt}JTjJF_ݢ6~nоڏr{׹e:#>(hOgO4hh?33S)ᩆyCzœ@$ޟ%qzeo?ڟ͇=_CڤIwAnh_i{ۊmC9ye;in*Y\mi{嶗^h|mO=ѶG6o{%mm3nn--mdۈmmy۬mR՚Ohij}kZӆhZu4U"p-Tsh&S֯[?luۥ/%\\RKb.E]qrA5iM~j:ϦM_7}t魦}M4mo*i*lt[ĦM774lޔkԯ){SצĦ.MΦMMMMMMaMM&[SPܤ4&zg.x3|vؙg>s̡3=Su3)>StLg?c=c9c>1͍4^l7ڸmO7>ٸq}hk\۸qUe5xOƻǞn9>~qzK^8SϟzԎSO<}qjɩ'o:z?}ݗM_1_ bpaA-oo'ۻ|IpIࢠFf_#B*_?lAmph8@ D\\Cr nF ʐ-܃>teb~"|q׶ "6n /}6_l{Sl-l׿dsD 6b.lYoqlߊ`= k8,K 7@"]%hKF߆w#Va3q"]l8荃AAqe 8^ q_6b^'lJޝX9S` S ;9!c'+ГzABr 1 Y:_Gs"8obd 'd}ǜQFo9Dr^Dur3!+qq.肬"VO\#܇.Rg9h!{rXӮ#~+GqGb|-r!ʈi.[g-xr}>pf 2<ՄOUa;}&`J@5}~n 9؊ 2!&[E\1A*b  ^8p Td-b`-xS&zŸLE`}&%>X A'|ă|;>iC?Lx&y< eyٍMQ7`N7 W0pP0t!x6F^q/!/7d@nd7bGݘ__7qˍXFlQv(®9(Oi | [ VBW<N}{@= b: _yAAl.<s{@@An x`?<s F<9xnC5g ~CX?ؓANP~F ` xc@f2`2<ϣA`3`C $1CcDح9)ve<ZPxQ{16콘"za)o7dd b YZ"sr|/dd?xsEn`ya^.+/rf+ sBW^ /mE: eu 8XA_ċq+jBa6 z$Е\b^㓠#+' q> jɰ=V8~ a['s zچfη6 AV/A/P?XK M;+5C'+6aVf 7Vv3 h||fؗWbDwV` s\ڐ7ڠà"B?Nп_1Y@:җ#2 "דr#4Na$ '#HIF$!d,Gn"9$䑛x2L$-VrLd=2"GOIJ&3Y^Ͼ>@M߆$+`AoW2GXVˮUgEL;nvu s y yy8FТ=h_sLyh(~s_|dUoҾg~J}~h֯gyev}UU?|Ho Q@Քs`L N'j([nATD9$44,Nri<A4+|u.ZcyJD 뉹 >h79V׆ dy's('J>gݡ!/0(^\$"\%8. {LHڵS?>}۫wMa;!oi?{{zrˋ F D>1b-zYijX޾!$nܙxi9̓F;>#)w?N`hDQ$w$uᑆbWC֎9fOu Gi_,^n}˗K/վҚ ~GytuO= ~0k T}}1R Jb2QZ;r-^8p%ܐ%_ŞkCAi+y0#Kl=zP%Dz\Y}&5:KwgDg͜!T휮7.󣁐M$$-1.8),{zX{g?~p߬iOkm,;os GWPz#y//|wN:(>[iSr&gr} a2.|4H* 2qC6ׅQ (-~!sI#)\?}I/2 l]uxSx\jVj2KAȗx҃|“9IYq"QTσ ˓'@[ZDv\Q5pHX5%k0QSlԂ7ݧ[=w{ldq"'❰=ʽ&[i S؜RνK폄=#!G<$exMw~kۿ%i諍,Y66\85+YͿx<<-އαvstvE>D&!f䴧sW(3A'{a*6Q}sL+0cޡLGͳmia^RTԸtE<_JJ^&>A("#՚'mqkSF.VD"L$褆! sg1۱c?&h$^!Պ 9N3_ĹDc ,4bQy*ELR ܖLAYg@x1Bd_Ih4R͉KTaO`08aH/*B@8 ٫]ڠ]|+/{Hޖku=hZoG⟭2;l13XQVEN0)& !YQLBHM AI` !M%j1+"j")rl|EҿLvz_O&;bɾ).]^veM#)t*= Ġ W$] 2_gG-D6A/*jQ&'Z'PJY\,g2Ӊ?Rϑ>Ww/h-.`[*S֛Rn1X5(:DvGVƯRǭ/tCt0clxLk*7v_udo\ O_hP,gR]jj|{  "ll>%jK-ɈDۿo/ˉH,Ӿ<3H¾ӼwVU~j[ ރqw]כ!#^'bjEꋍ2!Buz4q7L{^ЀTWyFa@A/˗޷r}KJzo+ܐ |g'>SaNDkiG&KgJ>bVU1"W3j>!6,4c5k {:& I1ac9xz3@ś6fg>4ϯ}n#i{wNtOz#mzl d>IvC. ]m _l(ۂ#֑\.\W˅,]w&v -  ZKWZt9;. ܚ zf?:nL\"@O/D2}ʫ1ocBg9R&C~x)hpkxCs#M[N~⁲C)O?7,_]r a4/<̮M\c^-\i[ɣ6E3$XÑ#Jyy(Gy"EyվhZ:wڝ.e j 4lu6!(rLFep+FG2%a8^Fq_;ūzm~aw(awWm]&>5T0kd_AYBMϹ}Ԧ'̧ǵ[Z 鋵!} xi`pTm d#3k_z~cBaMmyy^|%/m8zvꐱۮluGӟᩩw7{֣ٚ.w- ?w#z B6t:s0N F=[vcvD|%k"ZtK.b{n(:zwPF#4 ;̝?&>ޤrrЎʈPQUS} vbvJT:R TP1QZ\cdy/6w[?}6{1p<{A|Ar*fdrqh#*z@ _q zC\ϱkd"c;ɶLjn牓Man c>;iػ*uCD! o)*ӱV6fǥDMD}LŴ45& Z,Au[<*؇S pBk ZŻZimohCBv5leGقXsQ$8(-8g̫Ma{H0ǦP%4Ӗ}bxueڀP^ŊYvAq(1A1ĐLGf` -@B)j䕷+C48DKjk 8尘ݲ4xİLuf( j1 4[ x3cl88@Fc 6J&*Ev?R, 4ٺ@XҲWX8}{w0U!25dE)#axNhWRigxx:Sg+¥}}w n'łiKswS_hvxa{8\SZ{;pϏl&Pv+zJUG/ 'LE_%2 >vok`C6ro"?b)y}(4g8?ǝs/{_!no% ?8,Qx߷W E?sDP))~Uܗ,'P}i&ϔg:Ԑj@ʇ%l&)dL9WpUGEg!FZSnq-F`|`TU`)g%LRSq}׿`C+*V(QtS{QUKkk˒d5mL5Vsf&[ݞ?_(Vrv,\MiN'q (OWc*q&+`|$񺄫!N]24?2..(W{'QGfasb0r5:fWC58mZ})sf\ӳd\[ ,Bܫ@<xp )R̪M*(*Q\^w `#[mr;v-i:>gٰkndx LiY῿ :\bn'\ V)Th?8]evm.ѿ+ǥ,6y|1Xkޘ͈0kpǙr=U} `Gef#9#RpT"240F$++ڭĭG^~mr+0}?#t,֚+~_L3xˤ`]&L%W`Zvj uNK!Z.Kccr(el=1.9 oPFe\.n՘{|S꘍|f.Kհ=vfpxյs4[Gj.U~eS# n#ƌR8':z&# t 1ˣd@Cs.NY׹wzfoAZ]<rʌoX}Kc x)篶5CF%{Lo6zbcpd䇀bg2hvo*#k@v^?q?7\ ,]Z^55u8Mc@  ^+1q-s1%Ww\~FC:~}uT7luOG <ix|ބ'ꨁٺ| uip_@@ʁ+@`mFTȺ&p2rm5pYn-=W\#>o#q&K:V;syWjՙc^v?X u=vq\Y#?9}ױ}QӷWè"QPӍZ|Ӽn1Vռ7VU _ ^^Os|W |+F#Qp L:S<[&b׳%_=YرE\T^ uY_]]QP\P[VT^_).~[Q\3rw)Y(-(btzmMNU$a`fm!dviMIEm )+O،Pk(g'I-+ҹwK:̑LRKѥ 5Ss2Ä~.(-\ ŵU "I~{QA ?cx&L3TPQ^XV=bW+f{:WjzY0|05s lS|V.Բ ﱭ̭,*DNUBQreťgB>e x4 Uvf~zaQu 7מ%U_$T_;aqgv@p ?Z1sҫLR*TTsar\vWd00Zu_ n>w ]׭ "xZ =p&fUkJXp E_S_WCEW4`~IUu H3gW@Wa|SpG Vbyŕ7jphf1'jd:|lv;vxބ 53W3v|氌a;-$uBfȱ77I;\M˞fLQ3njY7yjV< _G놫c2r̬̼II̼ls8r2ޜ9g ٙs0KƘ 0DCǎ9bd^.$5/'mXƘI±`9GՇ$JP3sGeeyy9icX.cpݜ=,-/slVҳIVfeIRI L‡i`DFvFNZV;.ch&@9CA-FBбٹ7݌ 7TLg?rhh7X/|+ƲRY9RJz&I=YOdwHIa,^=Aꡱ=uI4Uc^%t)!u aCB$՞Rd̉Xgȶ:A+bXb4(`"#zJ,".Edvqa,ׇj̎f7db BBX!;[E1!`.‚!UXUcpbј9)vfҘ ԲƤp<9HbDrO ?gGmKym endstream endobj 192 0 obj <> stream x^}RMk0W$m l?Cw4IUb!(Na k0ͼyѯ2\ pr[a\5hkרDbȶ x38+BΒ OuƣT?7;>ݟ0ǯ/+>kCdwi`[@->дR1(e R sNr' $.b&vXꠃwl;s&wAj02ʾiN lcKU#DΟBجη؝vXMTRXn?xb:&,u=GBɜ锂 >C0VyZZ(#mxhNȊ${y哕G!4j:ӝU8Kht4j^7 endstream endobj 195 0 obj <> stream x^cZ0yW endstream endobj 196 0 obj <> stream x^| xSUZ{lmNB[ )G e[J6mmSRy"#GAA3:G "8|}&MkZk!-ZrVrNy >k<-%/BxB!p3#Aߝ- MN\ ޅhh7|X?Bq#drfA >|M:F BD>t\B<+[%cZh4yC>~`Loi Xfc^BB!*Q=Q2 ۃ#_ ꐀH?oMx F3wE )Bm E,By~cgy-6>)%|Kd6rC%?S {_G[KsK=WZ̧6~?_7!~owOOtuw6m={Ts^~/t/^ҽmKeRU!ɩzSWJ+ש/[Zk!Ǭ>c}o[OZ~gf lŶm mتlmmm>}m;o`B0^$L apsv}=ٞjw؇#%8ޑ0;(߱^o;t|fgsNut:eJbg;[9W;788p>|g3ݕ%ҟ`3Ts333gܚіq/g./3yikdrV]VKV{mYkӲ[go ]b.G/җ"bH#HDo|a )c2cbe|.iE'h>s.9ְ6v{}}=&gBmy^uYv گww9:FI=&i }KjjjVjNԚvI`EDkyKY`_ϭ_X{ې-&ʢ_b[k{;۟l'm.C!}0Q,HoB6apD~lO 6о?đw49:8^Jgs3Mxgss.hyVg\ :7vq3mmme >C //wd<h E~<߇upyxNxVxz pb6Mp|ևuamXVaE H?z.|uOo=ozk=iiiYS,鹡GӣQ({=Ru}7_~`v`wW?}_[7wo쾻kov7w;~z鱧ǜ}:t鑧G~Z}Zq?_N}Ч>m?~'=Syko7t?߫__RGQ rFp`DeD$$څ:BTH4P!#2xLȌ,hJDI(@Yǎȉ42D#HFlB9h4EcXơh&d4MEӐh ,4AF4bTJQ Tf-D-h1B%yFmA?E;.s=h?zDO_Sz =k:~)!/+h%z eMhZ\64T.VVԮS&+Bvkt֡ZԬJ[iDMh" ՠ. 6a¬(RVE"Z~'AѶ\Rh:) "݉EVtDvtzuG[iG˙ bmJfU))b^\RZE>;I-f؉ކ;ŨM"/1 '‡ޭAbbޅ'o ҽsL'T#@/w\8 z_ix4څ]tOD5m^?y#NQ/sh9*GxhE4oїLYLs1ɼVKU0Y̬bvSl5>>Moډad<[GI>$yV t+R Tt`Pw{xv)p0;+z~90!&  *;!D)CC$MyMsn5lp蕂Q3b ? O(<ĥ_a!'c9w(X (٭e!Vr5 \O 'Ξ8`FE}A-v)tg"׈ߐGxVoC!]PZg8q8/isO?ǯHr:V7ۀTx Z`X}SƥF6Bhtyv#~J,J,Çby/m⧀Q%8F[[9G1ēyd:[ 6NŭbPf?~=3Ɇ}'~hgzJu<)9lfIi|6(Y/}F?+|XZ۠Rrj>8OYД[V0) pgrCwۨd Qc)  po,t<۩¸]WU)d0ӔTӊ/+^Vұ39xEk=lTUmÏǿ {O//PCG!510aa=4'1:g5⮿3GO* DWB&r-ԢW25͈&D.Hb"F#yj8&w\tg]`&րֶ]7"˛]\t l7A[ݨ Y]_pzI%WPQyd~ oc>{"?sh=b%7L1.ďtk4[ W ]nGI!:-A C bfc됻9t!q*&F,t[\0:3gΟ=khGr6jل6Muuݰݭڭggmm=dw ;xJӀCv:ƎJux`a^z|ZO{lz 6dtEiy7GG.̛tqx.䬁h;U'I*ӫ|VP&jyKrN*203`,0hy=2ʍ7 64)o\yɒF7s?<+[cF9rd|qUU > twJcWC͖NNڂ:,>Ea6)I4G~7' % s-C (iٴֈ;E+w9Gh'ϏOBA$,L$٧38D-L**kyHc4ďɵ`IT8F嘀ƺ:u!uzddh˕Л NZMh7`3Ü ? {S}ȚS%xT5vؑB$m*=| [ܜM=53l]qYԛ di%gx;Q?9ۺ o}f`mFZ{TYPL>.gsAXI9TvZIdf>7 }NbvF<(P;CJIBNRb- 5Yq(hƧjL72%5<~Tͧ `o_qz H 0k}ٜ-ɠ@FISI$p4,xV A#X {bhV^PJA{eq q%\C].FkiiiiiSiENLGcMY{ss5<77I3gsg.*ՕWfY5ruh:4 ( Qv}[XRC7r r:\_re6U/Ný_a{_q)P]|O9M϶n'mcf]+NBΕ"f8#{z4AϮpi m\ ۻ-Hggw/GmZ8Hq;mҙJL:65/Ҙi]RNE+G_WVvMκ- 8m퓃cȬ}lSԡr]h{JilVQ6kJͪ5V>#\ҠnUil) 45Ţy @Ξ .]pJT]ހ+ p;FU )?STgj2qeβdLʹf2a*K6Ɗ&rxp4 g7=O>=yֆst`_O, ;%MPKLOl/NO!Iip'V.q҅49|_fåO2sߝCr' +4m`FӕꕮяjZUp8a"4cTS0N|D|P|g~}Y*MZ *V"jFJTҎ"-F45Ы$<ڦQj5jHƅF\oINxL-JeO}ҪmRc86FU)6LD<_մ6ev#ڤ[Y w(iqL Įwu|վ_7m c$.ff|w{:,aͱJ%J J YT 417y%bF+yL?]ZhK^^=}eՌpB j@{FSwקCiCf=vƳ(fa%&rR /T!Qg˼X(rOywԬ3Snm}WηdN{{[QÓ'Lm4,OؖkHIcTYiIL1Iڳ =;׾l`[#-XuC {^ +X9HK.6%Nhn "0A0|}8_y_@?+} Ø=o8ϳo.7{"]Qة8VZ::$x e*Bր&L'FYWm xz̀WE}6 wmiJ>Qm+i5(9mǩ~j#iE1,HD6JIXUD56 mMs(Dp. p`XM|O1!87h/`5y'_0>Zpa+/œ]#pnEK|#j4H#hS@iSp0N9@KGf 99ca? z=MYBasm(QAegzz <^,4k@ BX t4 2 3P4= ktհ.%Ajjl+<61p51FG]M&2I/2X ɔ{d< q ^J|Wz4Rlx +l Y{X,[ rdy<` K򭓤N5Ḭc3XdmrT(*Pےsm͒5PYn1|^xjrDG[biŒՎl5?f>]4L'?s P)swN}M!:4~=+T:w}XBs6ŪZAȾGk9\9P#y1Tr^Vum"b]\EyHbe{LR=cЪ,h r^! PϕÝpE)Y{twH1fhW£%%(o {!PtYZ"]ͅ%-G2)FB."8m TEaԞ }ӣ胞/_,"SZ XBQʊωL*-Q)YR2Tr|IFJ1(*h<-q<)*Jm,/R Q kBhBi}RbёR2Lu+SFeBLP:sl)Y|+C* -lmk6͐(/v)rH + Y@.'̠<yRD:}ZRY_HJ U9P*OHNrӟ +IMG,)n\gKHFr[(|:@I)M-@4= f]Ӣȼ2 bKCLOVmT r5^x6_md4I MQ֥X+BB$:`N/(SQT/KiEj=;}WݿC8\kqEc2H#ɁWr%ײs}nvo:y\$?%{ݳDؑ{|nlh>\n2\HHv^$dG zj"Ȗz+%ܣ%76d*nQi-4ncfN#wݩJ"wɆ.^$޺\vMI wtu %rIG"Y +HHV$quy6*٤&DtkISct4ei\cit˖p(#is|u~H=`ԉV$5"&"-&nHn1Edxn,QrI,q  l%(#x/?H] endstream endobj 198 0 obj <> stream x^SMo0+Hb U!mH"!K%j{%$*!'4j̼yL^; p Ǻ &CB(j7y=LrU*_[pq8ZA ́?fWY UGtG2Ǿǂ%Vsoc6VЍ[ N[l A?G>kN]M:X, zŮ7':@#?˴jh#:I<{nzyV []ڶ41Z`M,,>yJQϨkn IsǑ}4sTeK(Iۘ,|2(I,wW2μ%ߵ Дf&+2Cj)EsD 2F/[BY';sigᯄ?$T}kZݺ.6.z_TA t endstream endobj 201 0 obj <> stream x^c`@c2a endstream endobj 202 0 obj <> stream x^ `E\=Gϑd&0!p L90!$cs'(" ("" 뉮\"h:߯gH8t]u_7UGջ߫5+YDgMN91q-ʮ,#v&P0F^&B"ŕ& 3U7M5dB:'{FQ~xUB|8`ܸWse5+w`kfUa! eT6zI|Vˊ;@@!*aBdb'T\. !Ro^R,c1(aW]9/#BR]t~Gh+Ik>|#a(%13A#ك3 _ DŽY&46]ǖz)N']-"-^"5H' Fl܆aJxUJCEë ~06~gl~VRJZG؟ﲿjS+5ʕz6/wgK7Ww"|D5'֓)\Yfyx{'z'yxx{wy~{ҫ*;5ʟgwO/|f_o/woq36*56169vw엱ct\eMb9>>~tqS͂D'ǯ"HPCO!HfDtļĹ=zjDw ˨ˮ˭VzS}3/_\fO%yh5|E%V!D[lsϴ>ѺM>кue.n֛ZZk:~ZZ{vmokUZ=QaV[QZW;1?;}5Ww^vw^zKN/>}Otw:ĉ-'?c'6xO;Ċ8Ĥ߾z责yG>:hYGG}4ᇆm7 _746mhhpá _6 5|A 5\S 4ᮆe w4,mXpcu m!!!!!ՉW|G8ydđ##pn=rw?9}+;l;C}zCݡއu;r/o򺗿?0s̕3Ϝ=SIJҦғ'J(}/Nq[܈##" # "#&EƟzɰu―bQ󿈪xQ+ml#=-zgY+c60ή dfUkn,twbBġ폶`҈gN\h|FZ 撀29\J Bjt #IJњKhI(nh7 940L~@ ^q@ -DEhktB;"@ 9HEA;:Hݧ ZeONpGrM&;bzяF q0@wV>;xٗ`oVّAעLy!KCOmG13Cϣ? -hBZx}9v;^Az5o"=vAh!w+v.y..h1+G+ܸy ze,E rq9Zra;nyzn\k-d.&|u@Z-Cg:B,~-F2Ч5lI. tY(3 |LKGs0 p~\,ɇ8XX cAbsĆuf,9+ Æc9F ~s= 6 >B7b7X ŚR۟8c`:#6t`Ý3;vlc kGx{?C`A!'}~C9=4CB 8`-yvhH }MHaIbzpߗ&88ؠnХnh;tKkAݸ= n NTtG qtǹ';|rgE"C"Z"(BGN1 I{:9881ljXQPw~r¯A08sꐛW:AGml.r -7Cߛaž0uYaf\30Zk3( 9F3bl3$* [\U^ ͩ]* U! ~rj=" $9 @}FKt E džk@\(xJEH{ }vFǮhOvAN񞀻?v68ǟѾs}_dv߀<''Ao&|*Jj}h;h@kvoтo7TڮhA N!_soD |NAoܛAڿs(gyPQj#vBIBIq7 '$D#鄤dK:8҅ē$;*=HI&=I/Bz>/GK2 "d0T2 %HNF$"IC2I&W2+82L UdLjGF&dyL 8!ۄu+g2b{Hoi, ^ps*{[".Yp 7!x̯ C1 :i^/OAf& S> nĎda8! o?n#zSg4O|sI/ de<*!S"p +b<{ ‚ \05n4,i EXId%c^嵉}TFe b<ښ=A(M"uL[ĸ/~=GgOP]ӆMc'`1]ҷHqE),q,Q4tuX,=_f$DX\$5I$؋86m9|N_HZYǖ U|̽i0已G&Bm ƽoasذw n6 CR33w-9Wql!cDgyMF r&V8Yj[b8Cm mEJ.r8>dϟ8'uҞԏ0ڏo_;fIԃ6'cRhkgi@Xl3MM+lbtZg5wbqa"pnI.cs.n"u&QPMPՍ9%\8X":ꇳ7t Y= R_UW?U_4m/n o=W/t1-U^X^YH$r{㮐aKoS v"f!<9F4qpqPFax ׷OO jn ^QW)7s_r̩aԕ}4}_и9YsVGZ] $7uoQz\]z:2"3 g6x̱ټJ ;8Zv ܞgA4UpBɥt;]ptwߩ33%t=-BVB=F 2e$)@2zKH-Ip/JCKyBNe`c%{~FQGo`ʹ,d,لG D/EИ =]ubbFY15yn0X)d  y08Q!T+22#HEġpn4 }Yql :JyLK+Mt.GXIn@N?~ޣ>|R}X[6u|9;9O0nll&Ka6#59z)ZQ&Y [x},;C{!RUU^{mL3gԫ gizzOݰpE:eKWtӗEˑ5U]etQ1]4"qc^ !t*ϭL<x(GyG))SS|*<JRXklW{(}u:kmgcFFe:%qၽ9.'$d})漆KnXU?V߻CwRntwSQQSw$#ҡv__1&7sxF_?*ğ{jnv"O.LPZu1'7si'KyS]:>mtKdw3HB۰־ǩ}7$6E6e^fs ؅I5Cԡc ݀?#9221e̾NWr~~cc}ޡ~loAtE޻y^Fh% vsMh #_CBc޻W>R~1jؘn9s}]7|NWf%%Qg'/Q'}(D-We+w#!6'9;srצ'9yBoY+W>6^}WMxIJ^^/OxOfxn[rcz\/1A70Hl  F=8), BY_VZ[=E5;j\CCi:exOiyu!I\ oiJ?\uUn䶑a-dP' Cnzu{m'{{8ncB$=ilkn B4e9y3~z_wajc^/:|绋Ԣe l)FwrHjZoka,,li!Z[֥-ڥRZ!eE6 =!ib͖q)MQQWo2[I:)XLVKvq.$ەwˆQkC={oضŮa]P $q\F˝"-[ ǐ}#xnض`IVַk<(U0u-5V̿rMCi䂺zBRш~}W? X+PDHo돴"c 62i8@-|oAznϋZh_g.Zf8p)T]esG&U.RW+,3*ww3\g6O8|)&n$ &G 67lsҼ,MϢa'%u:\ӂ*e(@k%<&}dLYá KM Ԅ/713Y\q1N#O\^6/>:k<  Pq`X)OI5 ߋ8RO5F!+{b:A]V0e h8yVzr)/!pEv道6x.ώ_ SCb\xm+d(_[{7Pɠ3+u?gz%>nFٱ/όF:u3g>F>;|(=tuRx#m?7׷ MRV,W6vAX :W"Xc%9>ivʒOLtyã1JJӧaxo vKhod0̒(zS{#:ŵqsl$1cr߻( %Jd+f3b3Hl!$sdI&AA @@h(yeumuYӳgg-Z vd7emp fKZ*_~"߿`t`M_/EMIizovl)={d1Ǯ{tXg6Sܺ (">aI ;%S[Ll3j 2mg[Bծ]mquWI8O0?r0UG3[fKz ~aP,, -Naϵq$<1F;bҙvg b?҇`Ğ4t1tz+EհOe˥Նٓ9(>/(u tgFG>f1Ŋk, XLV j6 XYYoW)__CnYI)x]-ϒ ?~ &J{dPF\C%P%[x`fnl&QX}A@@c%B:.U D6NgdεL^m/iR!Ϙg*,BX-U*!nDUfm;. :鏦GuVĀjU!n'|>?24X'iH?PH:y;`2}~'Y--L<# -똀Mʐ=b1{L|S#L zz +ޠ'JIkD~٨dkPv!W1zKk.z#y K6f slfٵ"4$2ҰƼּ=nE3d;nn77>gߘ1ƃӆVs S&t;d B:8Gi&G"NqN"y%Y.56 [M\vM;a7~0\F#H}84al/p]o !xi"N<$з;´vgНX};8֥PIo1Ч$ D QD$BW"Bao m2P6з d};1gq$|Ю@߉GB%4`oWWkJ@}\=KxkjOWaV{)عUKިYhsΎU}*=Eg6 q3fwv\4srڌ0w)Gj1BF)s]J\3 :W`||hEܪ3j J OʴʐꚪD% II5KWU+9EEU no͟]VZQ>]?GnVT?{_˧U+UEJIRY;mVIRXQ_R%qF 6n_C@,DTo\f2N~58%* Z㊪K*ʕ =GbksTgr!@M1Yb6D{+VAE qI¸Ę\i̮M*(*^T^aT)]h:̸YpY{̎|w.<_"/F77^ncm<6c=&s1ulv3 w1Wi.4dzJ5-.ı H9[NY6^Zθ'{6 .uug| sX9ʀ[Qk;E9-P"ƬѰ8_ GW뎷H^jܦ%1Zhrh%ɚ.%ip\k:bf~WqlAcΓX|6#bg6\%Q%C>KÅ39 Y- dpgh^f.s) u%Xse- w՘d̓(z. pUר VA]ulu=)xak]Es4~pg\wk^\e5Gk BZ @~MP~/rzJSy1[5" ܀fc -iAdzrZ)ַJqmse-Ҝk:7G˾LkϑExdPS6N5Og<hwno+rkPmzܖq;\Q'v{y2=vO?'3}(NDiqSЦas9M^F#=e3]{qNf%hE FCA^$Xq1"YDY6F[pZ{ )=&VViqflI;KR.iN/=zqQ&Cg9˩rTҔX7vv.q983סiڞc4_6\63Oq}&Hhc,cp4-S_g"[ ô)˯cmSc6r0 `xD-?:88b(0>Wuc5~r9VL8ӒaKBhE+hL:~%*W2mU:f'\ʼ6 _w9u<8ǝyF^^%7.TWo.{N/]\8q:t]2M1sJ8GtOIpҹvggcqqNeh03K?cFu;xO&+@~>Tp9x&]Y >\]nN )h#\ǸtuG Z^&6(x]XEO'Cݓp>tq45sVFYc[6>WL}&O#4#Kڎ%=fn*Kz.z۲={DB-?s@kZZVJipNm<>3thX ]~zB_T=L*VY5*,fSR(z].Vag]I>'Ju%^Ԗ6u%l8V־v[ԕՁ?+=5Jmvn]/ǜί.siZuIx~>[UxǸ$kYo_e׌Lo[ei[oSeu[e+L RQWk~:oW; +o];ϫNƋ׎ߢv5nӵggkGUG +>JŇ/ίQuFWkݸ6YO-o;NZ]TL+U1'!IVΨVJ*+j ⪊2%ho ΡwݵFf|EG=Onѭ\R-+5UEeU3wrvQUYIZQTU ӫAz"hp bZRSU*7TL _)FW( 򩠠 jf`t5,*b4$`B%$ɅeE55Yتؕݠ($hC(-(҆),ɒi5Eٱ`Vm!dNI͌ SVϠm rr+ZֶIVHl7G"3J.>M\]T75GÂgPYM4g} \ ŵUʇ +DvZiQA ?+TpU\ ?bvFTCW@ Pc~KECLR=#,y"ʹ4WYQR*`p#[[YTtΥ,.pE˟UC)k@3ǑoSͯ^dή¢`!m7q / \VΛ)ca.>@ mYsvj.swPUMZS4"\Q6Μj%欋O1lc4A2{VKB'+J}EbJWYPȜrnp}~2#/*?}P-/ ܆!SSR`X&6.|33/+dŸTAjSaatѬb4exVf26kxԜ4%}5.}X0%&u,>$*sGf]܉Jp%5s2:=sX6!;'mX9+GIcC39B2r147K50TzX>ؘ#1r܉L rT%;5'7}9J9Yc00 9<IhhVĜ#sqS.&ʹ9ƤNT0XHQK%PǎLPIKï5&MueLeHHI@Ќ1ʰ1#89Ie:9m #2rR3iCy|LI 8Q44+slW N(RoF~&f!TƧMKTRsr \Y5  eď]ⰴ %ׂK4 ڕvMAQ%l:hܺkܨ;`F(Ǵ.,K owkKxyz5HEWTܙ)A aIY wq]_? "<`XYU[T(U%0RY/WUW"J.57 VXaRRe5XP30*(9{jdlORdY˸~?Ƀm}ٿmy <( 4kYG" *Qwr%+%ȕ|쿙+i 0Wur%W̕\I/ȕ`Vgzɕ˕4r_o:']B<%8_.1֍v$Wu38eՔILZe)|~ʤIhʤ+):n̨,饎Eّܖ,;ّHّ>;29;<_̎xrtM|≏Gl'Y+׊'r~wL@Aŋ#݋0LS2$kk*gT&苟(,4hg* {n>}`=Xv3h?Ay]l'C0A;Gj{.|cZn3CwB0Y!'gIG+vFvVjW0/1 mw90qaԬiލ&9wLRèAKE*Q$hGN XLUYKsԢD֤!}?nbTNϱ*VeUM4;ek5ʬ/m)Af_5#wKGTvjbK]e_sWgMO"O 'uDž㤏؇qoIkb>gsH>Eګ,쯸M]nsU~%y;Tzeo[s*{)ϱ['6^U+l2Ke/wbVK*@ig{ҋ w^HapJw`; v8sZBسV &{FeO)7{2IeUMe[#QlK8{<6udlZU.=zթ2{HeKT=׃Q:ܲ.E=Fe"o8i/ޫUЎU*[VV.W=Vv7=TvpW8[`wƱ;TTe6-QbzKtnc7&ݘnX~U(-u*[*ĮmbsU6gv4GeXmMGtdMj*+DVʚج&6Se*+Qٌ4#MWYq CeV*RY b4Y*i2sK+ N)ͮTMQZ8*tUGiʮ§:*ƫl>[ǩJF.sEĮ+XvVIJ2RVt1,cKpѣhnF9Ylb#n6ҚذviXjgCR!M,c1ɯۥ!r;RtY8*b׷/v`}w}d,Z./XYuR/ݥu,ʒXāR&莓[!KPYW7pJѬYX0{hįۤ& a>Wf)JıN!aR(iĎ6!ja¤QY",717㘫9YʜTRH )̾HጭYSY™e(GYe&U? *d&EBrSwPK~𦥴?R endstream endobj 204 0 obj <> stream x^}RMo0 Whl k`>,ՑLC,}ȿE 0d3`||||4ZF=B= 흄hjdt{j̶+,M-\yg8ks>|z./+F"<"'wpfœG!_ڏײxd'm5KR솈0Y|qym; sl&]_͙O[DJ7.Xs'TxwT(eJ8E$ؕVAT\eָQxwH"IH7H>ё Et3gmX `D As>``.S7Yyvf8fKgh)LE< 0 * T_Ǎ9ztO~ǣil6>{o endstream endobj 167 0 obj <> stream x^Y[S~W[P%h~(l.>,hJVG+ofv%!Q*.szŴ&HNQiGKR yGJsa "СbZY,FKTR:Cfb TD!8u(A|aNԁsBTIDZը"2h(`%#J 4,Q@+ 98DStNZyy=&84Oۯy$ o9Z嗊RRpף OAuOД@|z5{hr8.zma·}VQ^0Xv=@?M:Ű69O- Ը#<4)8zH~J>&f}/aF|odlWy#91T"۵N (= `}ꪮR늭*HZH+|?EsU՟jQQ:YWj`9tϭrz ˓bX/ASl@;CFP_n$OLLᤤ;4']e!@ĸwNkufyq"6pX| va7G 5+Sa77f:^)nu>/]~g fn+'ֲ縀 x#]r>kp- Xʭy}ԡ*qV;Cѿ&\D ǜ!u/ }><{ Wo =yَ͸S^p820PPD29C!>l1Ah=d KDfg DH}d=#\XK Ş!i751CQFF+{&CAB\V(OLbme .$ ;RX ~e#9#-;O-I8c~>7ubcvl3V>5(h!{[85 0cPĖ $g(b6-]Y_&6~n"xq>QQ@ƪ~8vbo`4n,jқ!92l ʊ^Ƙ|EhRɂI+1RI>[vd5 $Ix.1j7`(p dCiyBG{B(WO 8F(h4 2m;o:4'qne(]2pR8/X CZXB݋O|8(bI>z_ 8%#$] 9IZd\_ Iš:thHr J?(ˤYn|Mfd&K>:i4B}/%/\d۷o8v^޼.(:}??.'+`gـ77JAFsJ2ZqPދ%~ P }hu?*ښ.i`vkIn:A]eܥصV6]OFVo2,PDO"؎: ~ƨEj 5PUC}BT{S|~iMl8/ BݾDb &qaBs@7=J ?X3Jee sH#5 }o endstream endobj 211 0 obj < ]/Length 578 /Filter/FlateDecode>> stream x^%;LSaҖ/aF O@o'B"'qf]141jb2'c41O_{{D1!~ ARKB$L"$JbD*qEV{, 5I]֋ioӶ!.[WJ sVID!Ý:$ #HdI!,d2OIA4OH#dURiT~i!!嫚-!d)i#dYN6GzzAVd YK֑dm$gH 8 l%[I~iKymd$ vIT`4T$`:yS,k %Q0=B U?qrfh{$'`&4u[S0e;ڞ[=,9s7}У0ZQ/雤~d׾[wϼ}J31$37M>h|*D°,{aZ+M/?r#IX7uib>i٘7Y%pf=u C endstream endobj startxref 270876 %%EOF context-modules-20240428/doc/context/third/visualcounter/VERSION0000644000175000017500000000001313255060277023406 0ustar hillehille2013.04.01 context-modules-20240428/doc/context/third/filter/0000755000175000017500000000000014613513620020720 5ustar hillehillecontext-modules-20240428/doc/context/third/filter/filter.txt0000644000175000017500000010546114112003266022747 0ustar hillehille[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) === The filter module ================= This module started with a simple idea. I wanted an environment \startmarkdown ... \stopmarkdown to write content in Markdown. Such an environment requires a parser that converts markdown to TeX. A TeX wizard would write such a parser in TeX (which after all is Turing complete). A lua wizard would write it in LPEG (and wonder why some users still use MkII). I, being no wizard myself, found an existing tool that does the job---pandoc. But how could I use pandoc inside ConTeXt? As for almost everything else in ConTeXt, Hans had already done this; albeit for a different tool---the R programming language. The _R module_ (`m-r.tex`) allows the user to execute snippets of R code. I wanted the same for Markdown. I copied the R-module, made a couple of changes, and had a Markdown module ready. But what if tomorrow I wanted to use ReStructured Text instead of Markdown? Or Matlab code instead R? Surely, copying the R-module for each program would be a waste of effort. Each new program requires only a few changes in the R-module; what I needed was a R-module _template_ so that I could fill in the blanks with the appropriate values. And so, the filter module was born. Table of Contents ================= * [Compatibility](#compatibility) * [Installation](#installation) * [Basic Usage](#basic-usage) * [Inheriting setup from other commands](#inheriting-setup-from-other-commands) * [Dealing with slow filters](#dealing-with-slow-filters) * [Reading the input](#reading-the-input) * [Space around the environment](#space-around-the-environment) * [Stripping leading whitespace (MkIV only)](#stripping-leading-whitespace-mkiv-only) * [Names of temporary files](#names-of-temporary-files) * [Output Directory](#output-directory) * [Disabling filters](#disabling-filters) * [Deleting temporary files](#deleting-temporary-files) * [Standard options](#standard-options) * [Options to a specific environment](#options-to-a-specific-environment) * [A setup to control them all](#a-setup-to-control-them-all) * [Passing options to filters](#passing-options-to-filters) * [Macro variant](#macro-variant) * [Processing existing Files](#processing-existing-files) * [Processing remote files](#processing-remote-files) * [Processing existing buffers](#processing-existing-buffers) * [Prepend and append text](#prepend-and-append-text) * [XML export](#xml-export) * [Special use case: \write18 with caching](#special-use-case--write18-with-caching) * [Dealing with expansion](#dealing-with-expansion) * [Limitations](#limitations) * [Messages and Tracing](#messages-and-tracing) * [Version History](#version-history) Compatibility ------------ This module works with both MkII and MkIV. Installation ------------ The method to install the module depends on your installation. ### ConTeXt standalone If you are using [ConTeXt standalone](https://wiki.contextgarden.net/ConTeXt_Standalone) installed with `first-setup.sh`, you can install the module using first-setup.sh --modules="t-filter" ### ConTeXt LMTX [ConteXt LMTX](https://wiki.contextgarden.net/Installation), which uses the new `luametatex` engine does not yet provide a built-in way to install and manage modules. See [the ConTeXt Wiki](https://wiki.contextgarden.net/Modules#ConTeXt_LMTX) for a workaround. ### TexLive TexLive comes with its own manager `tlmgr` to install modules. The module is listed there as `context-fiter`. ### Manual installation Depending on your setup, it might already be installed on your system. To verify wether you already have the module, check if luatools t-filter.mkiv returns a meaningful path. If not, you have to manually install the module. Download the latest version of the module from [http://modules.contextgarden.net/filter](http://modules.contextgarden.net/filter) and unzip it either `$TEXMFHOME` or `$TEXMFLOCAL`. Run mtxrun --generate and (if you are using MkII) mktexlsr to refresh the TeX file database (for MkIV and MkII, respectively). If everything went well luatools t-filter.mkiv will return the path where you stored the file. Unfortunately, that is not enough. For the module to work, TeX must be able to call an external program. This feature is a potential security risk and is disabled by default on most TeX distributions. To enable this feature in MkII, set shell_escape=t in your `texmf.cnf` file. See this page [http://wiki.contextgarden.net/Write18](http://wiki.contextgarden.net/Write18) on the ConTeXt wiki for detailed instructions. Basic Usage ----------- The steps involved in calling a filter on the contents of an environment are: 1. Write the contents to an external file. This file is the input to the filter, and is, therefore, called `\externalfilterinputfile` 2. Run the filter on `\externalfilterinputfile` to generate an output, which is called `\externalfilteroutputfile`. 3. (Optional) Read `\externalfilteroutputfile` in ConTeXt. Lets start from the simplest case: a filter that inputs a text file and outputs a valid ConTeXt file, like `pandoc` to convert from Markdown to ConTeXt. The command line syntax of this filter is pandoc -t context -o outputfile inputfile Using this filter from within ConTeXt is pretty simple: \usemodule[filter] \defineexternalfilter [markdown] [filtercommand={pandoc -t context -o \externalfilteroutputfile\space \externalfilterinputfile}] Yes, its that easy! The only thing to note is that TeX macros gobble spaces, so I inserted a manual space after `\externalfilteroutputfile`. The above `\defineexternalfilter` macro defines: 1. An environment \startmarkdown ... \stopmarkdown The contents of the environment are processed by `pandoc` and the output is included back in ConTeXt. 2. A macro \inlinemarkdown{...} The argument of the macro is processed by `pandoc` and the output is included back in ConTeXt. 3. A macro \processmarkdownfile{...} The argument to the macro is a filename, which is processed by `pandoc` and the output is included back in ConTeXt. 4. A macro \processmarkdownbuffer[...] The argument to the macro is the name of a buffer, which is written to an external file, processesd by `pandoc` and the output included back in ConTeXt. The [wiki](https://github.com/adityam/filter/wiki) page on Github gives the setup for common usecases (pandoc, R, etc.) Inheriting setup from other commands ------------------------------------- It is also possible to inherit the settings from another filter. For example, \defineexternalfilter [filterstyle] [color=red, style=bold] \defineexternalfilter [markdown] [filterstyle] [filter={pandoc -w context -o \externalfilteroutputfile }, style=italic] Notice the three arguments to `\defineexternalfilter`. The first argument (`markdown`) is the name of the new filter; the second argument (`filterstyle`) is the name of the filter whose settings we want to inherit, and the third argument (`filter=...`) are the new settings for `markdown` filter. The above definition is same as: \defineexternalfilter [filter={pandoc -w context -o \externalfilteroutputfile }, style=italic, color=red] Note that if a setting (like `style` above) is defined both in the new filter and the parent filter, then the value of the new filter (`style=italic` above) is used. Dealing with slow filters ------------------------- The above definition of a markdown filter creates two additional files: an "input" file and an "output" file, *irrespective of the number of times the environment is called*. For each markdown environment, ConTeXt overwrites the input file and pandoc overwrites the output file; as a result, the current directory is not cluttered with temporary files. The trade off is that for each document run, the filter is invoked as many times as the number of markdown environments. Since getting cross-referencing right normally takes two to three runs, effectively the filter is run two or three times more than required. A filter like `pandoc` is fairly fast, so these extra runs are not noticeable. But some filters, like the R-programming language for which simply startup and exit takes about 0.3 seconds, are slow. In such cases, the additional runs start adding up. A better trade off is to store the contents of each environment in a separate file and invoke the filter only if a file *changes in between successive runs*. The second behavior is achieved by adding `cache=yes` option to the definition: \defineexternalfilter [...] [... cache=yes, ...] Sometimes you want to force the rerun of a filter, even if the content of the environment has not changed. This could be because the filters depend on an external script that might have changed. To force a rerun of a filter use \defineexternalfilter [...] [... cache=force, ...] Reading the input ---------------- By default, after the filter is executed, `\externalfilteroutputfile` is read using `\ReadFile`. To change this behavior, use the `readcommand` option. For example: \defineexternalfilter [...] [.... readcommand=\typefile, ...] types the output file verbatim. The value of read command must be a macro that takes the name of the output file as a (brace-delimited) argument and does something sensible with it. Sometimes, it is desirable to ignore the output, which is done by \defineexternalfilter [...] [.... read=no, ...] Space around the environment ---------------------------- By default, the `\start<...>` ... `\stop<...>` and the `\type<...>file{...}` variant displays the output is _paragraph_ mode (i.e., inserts blanks before and after the environment), while the `\inline{...}` variant reads the output in _text_ mode (i.e., does not insert blanks before or after the environment). To change the amount of space inserted before and after the environment, use the `spacebefore` and the `spaceafter` keys. For example, if you want big spaces around the environment use: \defineexternalfilter [...] [.... spacebefore=big, spaceafter=big, ...] The `spacebefore` and `spaceafter` keys accept all values accepted by the `\blank[...]` macro. In the paragraph mode, the next line after `\stop<...>` is indented or not based on the value of the `indentnext` key. The default value is `auto` which indents the next line if there is an empty line after `\stop<...>`; other options are `no`, which never indents the next line and `yes` which always indents the next line. If you want the `\start<...>` ... `\stop<...>` and the `\type<...>file{...}` variant to behave in _text_ mode, set: \defineexternalfilter [...] [.... location=text, ...] (The default value of `location` is `paragraph`). **Note** that `location=text` is not equivalent to `\inline{...}`. Inline also sets `\endlinechar=\minusone`; therefore no space is inserted when the file is read. `location=text` does not change `\endlinechar`. Therefore a space is inserted after the file is read. Stripping leading whitespace (MkIV only) ---------------------------------------- By default, the leading whitespace is removed before the content of the filter environment are saved to an external file. This is useful because one can then indent the TeX code without worring how the leading whitespaces will be interpretted by the filter. For example, \startitemize \item \startmarkdown This is treated as regular text. If the leading spaces were not stripped, this would be treated as a code block in markdown. \stopmarkdown \stopitemize If you want to keep the leading whitespace, you can set \defineexternalfilter [...] [.... strip=no, ...] (The default value is `yes`). Names of temporary files ------------------------ By default, `\externalfilterinputfile` is set to `\jobname-temp-.tmp`, where `` is the first argument of `\defineexternalfilter`. When `cache=yes` is set, `\externalfilterinputfile` equals `\jobname-temp--.tmp`, where `` is the number of filter environments that have appeared so far. In MkII, a `\jobname-temp--.tmp.md5` file, which stores the `md5` sum of the input file is also created. A macro `\externalfilterbasefile` stores the name of the input file without the extension. By default, the value of `\externalfilteroutputfile` is `\externalfilterbasefile.tex`. Having a `.tex` extension is not always desirable. For example, if the filter generates a PNG file, a `.png` extension is more descriptive. The name of the output file is changed using the `output` key. For example \defineexternalfilter [...] [filtercommand={...}, output={\externalfilterbasefile.png}] changes the output extension to `.png`. To read the generated PNG file, set: \defineexternalfilter [...] [.... readcommand=\readPNGfile, ...] where `\readPNGfile` is defined as \def\readPNGfile#1{\externalfigure[#1]} Output Directory ---------------- This module creates a lot of temporary files that clutter the current directory. If you prefer the temporary files to be created in another directory, use the `directory` option, e.g., \defineexternalfilter [...] [... directory=output/, ...] This will create all the temporary files in `output` directory. The name of the directory may be specified with or without a trailing slash. Thus, `directory=output` and `directory=output/` are both valid. The directory path **must be relative to the current directory**. Absolute paths do not work. If you try to use a absolute path like \defineexternalfilter [...] [... directory=/tmp/, ...] you will get an error message t-filter > Fatal Error: Cannot use absolute path /tmp/ as directory and compilation will stop. Disabling filters ---------------- Adding `state=stop` option disables the filters. The `\externalfilterinputfile` is still written, but the filter is not run. When used in conjunction with `cache=yes` and `directory=...`, this is useful for sharing your files with others who do not have the external program that you are using. Deleting temporary files ------------------------ In MkIV, the module automatically deletes the `\externalfilterinputfile` after executing the filter unless `\traceexternalfilters` is used. If, for whatever reason, you want to keep this file around, use \defineexternalfilter [...] [... purge=no, ...] In MkII, the `\externalfilterinputfile` is not deleted. All the files generated by the filter module have `-temp-` in their name. As such they can be deleted using context --purgeall --pattern=filename Do **not** use the file extension. To delete all temporary files in the current directory, use context --purgeall Standard options --------------- `\defineexternalfilter` accepts the following standard options: - `spacebefore` and `spaceafter` to specify the blank space to be used before and after the environment. - `before` and `after`: to enclose the output in a frame, etc. (only if `location` is `paragraph`) - `left` and `right`: same as `before` and `after` but used when `location` is not `paragraph`. - `style` and `color`: to set the color and style of the output. - `align`: to set the alignment of the output (only if `location` is `paragraph`). - `indentnext`: specify if the next line is indented (only if `location` is `paragraph`). - `setups`: specify a list of setups (defined using `\startsetups`). These setups may be used to define commands that are needed inside the environment. The order in which these options are executed are: 1. `\blank[spacebefore]` 2. `before/left 3. `align` (if `location=paragraph`) 4. `style` and `color` 5. `setups` 6. `readcommand` 7. `after/right 8. `\blank[afterspace]` 9. check `indentnext` Options to a specific environment --------------------------------- Each `\start` macro also accepts options. However, unlike other ConTeXt environment, these options cannot be on a separate line; they must be on the same line as `\start`. For example, suppose I define an environment to run R-code \defineexternalfilter [R] [filtercommand={R CMD BATCH -q \externalfilterinputfile\space \externalfilteroutputfile}, output=\externalfilterbasefile.out, cache=yes] I can hide the output of a particular R-environment by \startR[read=no] ... \stopR The macros `\processmarkdownfile` and `\processmarkdownbuffer` also accept user options. The usage is \processmarkdownfile [.-.=.-.]{filename} \processmarkdownbuffer[...=...][buffer] A setup to control them all --------------------------- The macro `\setupexternalfilters` sets the default options for all the filters created using `\defineexternalfilter`. This is responsible for the default values of all options. The current defaults are \setupexternalfilters [before=, after=, setups=, cache=no, read=yes, readcommand=\ReadFile, output=\externalfilterbasefile.tex, ] Passing options to filters -------------------------- **NOTE** This option does not work for MkII or for inline snippets Sometimes it is useful to pass options to a filter. For example, `pandoc` converts many different formats to ConTeXt (actually, to many different output formats, but that is irrelevant here). Instead of defining a separate environment for each input format, can I define a universal pandoc environment and specify the input format on a case by case basis. For example, \startpandoc ... \stoppandoc for the default Markdown input, \startpandoc[format=rst] ... \stoppandoc for reStructured Text input, and \startpandoc[format=latex] ... \stoppandoc for LaTeX input. In `pandoc`, the input format is specified as pandoc -f format -t context -o outputfile inputfile So, we need a mechanism to access the value of the `format` option to `\startpandoc`. This value is accessed using `\externalfilterparameter{format}`. Thus, the pandoc environment may be defined as \defineexternalfilter [pandoc] [filtercommand={pandoc -f \externalfilterparameter{format} -t context -o \externalfilteroutputfile\space \externalfilterinputfile}, format=markdown] Macro variant ------------- For some cases, a macro `\inline{...}` is more natural to use rather than the environment `\start` ... `\stop`. The `\inline...` variant is meant for simple cases, so it does not accept any options in square brackets. This macro is similar to `\type` macro, and its argument can be written in two ways: either as a group `{...}` or delimited by arbitrary tokens. Thus, all the following are valid: \defineexternalfilter[markdown][...] \inlinemarkdown{both braces{}} \inlinemarkdown+an opening brace {+ \inlinemarkdown!a closing brace }! **Note** Inline mode sets `\endlinechar=\minusone`; therefore no space is inserted after a newline. This may lead to unexpected results if the output of the filter is wrapped into multiple lines. For example, if the output of the filter is This is a long line that is wrapped after a fixed number of characters. Then, when reading the file the space between `wrapped` and `after` will be lost! To avoid that pass appropriate options to the filter program so that it does not wrap long lines. Processing existing Files ------------------------- A big advantage of a lightweight markup language like markdown is that it is easy to convert it into other markups--html, rtf, epub, etc. For that reason, I key in markdown in a separate file rather in a start-stop environment of a TeX file. To use such markdown files in ConTeXt, I can just use \processmarkdownfile{filename.md} By default, the file is searched the current directory and in the directories specified by `\usepath`. In addition, in MkIV, the parent and grand-parent directories are also searched. If the file is not in one of these locations, specify a full or a relative path to the file. The general macro is `\processfile{...}`, which takes the name of a file **or a url (MkIV only)** as an argument and uses that file as the input file for the filter. The rest of the processing is the same as with `\start` ... `\stop` environment. The `\processfile` macro also takes an optional argument for setup options: \processfile[...]{...} The options in the `[...]` are the same as those for `\defineexternalfilter`. Processing remote files ----------------------- **NOTE** Only works in MkIV The `\processfile{...}` macro also processes remote files specified using URLs. For example, to see a typeset version of this manual, use \processmarkdownfile{https://raw.github.com/adityam/filter/master/README.md} This macro downloads the file in the background, and processes the local file using `pandoc`. To prevent frequent downloads, the downloaded file is cached and the file is re-downloaded only if the cached file is more than 1 day old. You can override the default threshold using `schemes.threshold` directive. For example, if you want to re-download the file every 5 minutes (= 300 seconds), add \enabledirectives[schemes.threshold=300] somewhere before `\starttext` or use context --directives=schemes.threshold=300 to compile the file. To see where the cached file is stored, add \enabletrackers[resolvers.schemes] or use context --trackers=resolvers.schemes to compile the file. Processing existing buffers --------------------------- Like all macros built on top of buffers, the `\start` ... `\stop` environment does not work well inside the argument of another command. The `\processbuffer` macro is handy for such macros. Suppose you want to write some markdown text in a footnote. Using \footnote{ .... \startmarkdown ... \stopmarkdown} gives an error message: ! File ended while scanning use of \dododowithbuffer. system > tex > error on line 0 in file : File ended while scanning use of \dododowithbuffer ... \par To avoid this, define a buffer at the outer level \startbuffer[footnote-markdown] ... \stopbuffer and then use \footnote{... \processmarkdownbuffer[footnote-markdown]} The `\processbuffer` macro also takes an optional argument for setup options: \processbuffer[...][...] The options in the first `[...]` are the same as those for `\defineexternalfilter`. Prepend and append text ----------------------- **NOTE** Only works in MkIV Some external programs require boilerplate text at the beginning and end of each file. Including this boilerplate code in each snippet can get verbose. The filter module provides two options `bufferbefore` and `bufferafter` to shorten such snippets. Define the boilerplate code in ConTeXt buffers and then use \defineexternalfilter [...] [... bufferbefore={...list of buffers...}, bufferafter={...list of buffers...}, ] For example, suppose you want to generate images using a LaTeX package that does not work well with ConTeXt, say `shak`. One way to use this is as follows: first define a file that processes its content using `latex`. \defineexternalfilter [chess] [filter=pdflatex, output=\externalfilterbasefile.pdf, readcommand=\readPDFfile, ] \def\readPDFfile#1{\externalfigure[#1]} Next create buffers containing boilerplate code needed to run latex: \startbuffer[chess::before] \documentclass{minimal} \usepackage{skak} \usepackage[active,tightpage]{preview} \begin{document} \begin{preview} \newgame \hidemoves{ \stopbuffer \startbuffer[chess::after] } \showboard \end{preview} \end{document} \stopbuffer and tell the filter to prepend and append these buffers \setupexternalfilter [chess] [bufferbefore={chess::before}, bufferafter={chess::after}] Then you can use \inlinechess{1.e4 e5 2. Nf3 Nc6 3.Bb5} to get a chess board. XML export ---------- The filter module provides a basic support for XML export. If the user-document contains \setupbackend[export=yes] or other valid options to `export` such as `export=xml`, then the filter environment is exported as well. For example, both \startmarkdown ... \stopmarkdown and \processmarkdownfile{...} are exported (in `\jobname-export/\jobname.xml`) as ... Moreover, \inlinemarkdown{...} is exported as .... Note that it is the responsibility of the filter to generate properly tagged content. For example, `pandoc` used in the `markdown` examples in this document converts `**bold**` to `{\bf bold}`, which is not exported. Special use case: `\write18` with caching ------------------------------------------ Although the raison d'être of the externalfilter module is to process the content of an evironment or a macro through an external program, it may also be used to simply exectute an external program without processing any content. For example, suppose we want to include an image with a swirl gradient in our document. ImageMagick can generate such an image using: convert -size 100x100 gradient: -swirl 180 Notice that in this case, the external program does not need any input file. We just need to pass the size of the image to the external program. In such cases, we still want to cache the result, i.e., rerun the external program only when the `size` of the image has changed. The `write=no` option covers this use case. The basic usage is: \defineexternalfilter [...] [ ... write=no, cacheoption=...., ... ] Out of the four macros (see [Basic Usage]) created by `\defineexternalfilter`, only `\inline` makes sense with `write=no`. The usage of this macro is \inline[....] Unlike the default case, this version does not take an argument! (That is because, it does not write anything to a file). When `write=no` is set, `\externalfilterbasefile` is equal to `\jobname-temp--` where `` is the value of the `cacheoption` key. For example, to generate swirl backgrounds described above, define: \defineexternalfilter [swirl] [ write=no, cacheoptions={\externalfilterparameter{size}}, cache=yes, size={1000x1000}, output=\externalfilterbasefile.png, filtercommand={convert -size \externalfilterparameter{size} gradient: -swirl 180 \externalfilteroutputfile}, readcommand=\ReadFigure, ] \def\ReadFigure#1% {\externalfigure[#1]} This creates a macro `\inlineswirl` that uses ImageMagick to generate a file `\jobname-temp-swirl-1000x1000.png`. The result is cached and the external program is rerun only if the value of cacheoption changes, that is, only if the value of `size` key changes. Dealing with expansion ---------------------- All the arguments of `filtercommand` must be fully expandable. Sometimes, writing an expandable command is tricky. For example, suppose you want to use GNU barcode to draw barcodes. One way to do this is \defineexternalfilter [barcode] [encoding=code128, output=\externalfilterbasefile.eps, cache=yes, filtercommand=\barcodefiltercommand, readcommand=\barcodereadcommand] \def\barcodereadcommand#1% {\externalfigure[#1]} \def\barcodefiltercommand {barcode -i \externalfilterinputfile\space -o \externalfilterbasefile.eps\space -E % EPS output -e \externalfilterparameter{encoding} One of the options that GNU barcode provides is -n ``Numeric'' output: don't print the ASCII form of the code, only the bars. The ideal way to support this option is to provide a `label=(yes|no)` option, and in `\barcodefiltercommand` check the value of `\externalfilterparameter{label}`. If this value is `no`, add a `-n` flag. That is, redefine `\barcodefiltercommand` as follows: \def\barcodefiltercommand {barcode -i \externalfilterinputfile\space -o \externalfilterbasefile.eps\space -E % EPS output -e \externalfilterparameter{encoding} \doif{\externalfilterparameter{label}}{no}{-n} } This approach does not work. The log says: t-filter > command : barcode -i barcode-temp-barcode-1.tmp -o barcode-temp-barcode-1.eps -E -e code128 \edef {yes}\edef yes{no} Instead of `-n`, we get `\edef {yes} \edef yes{no}` in the output. This is because `\doif` macro is not fully expandable. One way to circumvent this limitation is to check for the value of `label` outside the `filtercommand`. The filter module provides a `filtersetup` option for this. For example, in the above barcode example, use \def\barcodelabeloption{} \startsetups barcode:options \doifelse{\externalfilterparameter{label}}{no} {\edef\barcodelabeloption{-n}} {\edef\barcodelabeloption{}} \stopsetups \defineexternalfilter [barcode] [.... filtersetups={barcode:options}, filtercommand=\barcodefiltercommand, ... ] \def\barcodefiltercommand {barcode -i \externalfilterinputfile\space -o \externalfilterbasefile.eps\space -E % EPS output -e \externalfilterparameter{encoding} \barcodelabeloption % check for label } Limitations ------------ - In MkII, the option `cache=yes` does not work correctly with filters that have a pipe `|` in their definition. This is because internally `cache=yes` calls mtxrun --ifchanged=filename --direct filtercommand and this produces MTXrun | MTXrun | executing: filtercommand MTXrun | MTXrun | In MkIV, `cache=yes` calls \ctxlua{job.files.run("filename", "filtercommand")} so filters with a `|` work correctly. Messages and Tracing ------------------- The filter module outputs some diagnostic information on the console output to indicate what is happening. Loading of the module is indicated by: loading : ConTeXt User Module / Filter (ver: ) Whenever a filter is defined the expanded name of the command is displayed. For example, for the markdown filter we get: t-filter > command : pandoc -w context -o markdown-temp-markdown.tex markdown-temp-markdown.tmp If, for some reason, the output file is not generated, or not found, a message similar to t-filter > file markdown-temp-markdown.tex cannot be found t-filter > current filter : markdown t-filter > base file : markdown-temp-markdown t-filter > input file : markdown-temp-markdown.tmp t-filter > output file : markdown-temp-markdown.tex is displayed on the console. At the same time, the string [[output file missing]] is displayed in the PDF output. This data, along with the name of the filter command, is useful for debugging what went wrong. To get more debugging information add \traceexternalfilters in your tex file. This shows the name of the filters when they are defined. In MkIV, `\traceexternalfilters` also enables the trackers for `graphic.run`, so when `cache=yes` is used, message like graphics > run > processing file, no changes in '-temp--.tmp', not processed are shown. Version History -------------- - **2010.09.26**: - First release - **2010.10.09**: - Added `\inline{...}` macro - Changed the syntax of `\processfile`. The filename is now specified in curly brackets rather than square brackets. - **2010.10.16**: - Added `\traceexternalfilters` for tracing - Added a message that shows filter command on console - A message is shown on console when output file is not found. - **2010.10.30**: - Added `directory=...` option to `\defineexternalfilter` and `\setupexternalfilters`. - **2010.12.04**: - Bug fix in `directory` code. The option `directory=../something` was handled incorrectly. - **2011.01.28** - Bug fix. The filter counter was not incremented inside a group. Made the increment global. - **2011.02.21** - Added `style` and `color` options. - **2011.02.27** - The external files are called `\jobname-temp-*` instead of `\jobname-externalfilter-*`. As a result, these files are deleted by `context --purgeall`. - **2011.03.06** - Complete rewrite of internal macro names. The internal macros are now named `\modulename::command_name`. This is an experiment to see if this style works better than the traditional naming convention in TeX. - **2011.06.16** - Added `force` mode to force recompilation of all filters that have `continue=yes`. - Added `reuse` mode to skip running all filters that have `continue=yes`. - Added `state=stop` option to skip running external filter. - **2011.08.23** - Added `bufferbefore` and `bufferafter` options - **2011.08.28** - Internal change: Defined own macros for setting attributes rather than using built-in ones. - **2011.09.03** - Added `filtersetups` - **2011.09.14** - `\inline` now accepts optional arguments. - `before=` and `after=` keys are disabled in `\inline` - **2011.10.22** - Added `\processbuffer` - **2011.12.04** - Use `job.files.run` instead of `mtxrun --ifchanged` in MkIV. - **2011.12.17** - Split into `.mkii` and `.mkiv` versions - **2012.01.26** - Renamed `continue` to `cache`. Using `continue=yes` still works - Removed `force` and `reuse` modes (too easy to clash with user modes). - Functionality of force mode implemented using `cache=force`. - **2012.02.05** - Added `purge=yes|no` to control if the input file is deleted or not - **2012.03.18** - Process remote files - **2012.04.18** - Added `location`, `spacebefore` and `spaceafter` keys. - **2012.05.01** - Added `align` key. - **2012.06.20** - Support for `\usepath` - **2012.01.13** - Support for `write=no` and `cacheoption=...`. - **2013.03.31** - Support for `left` and `right` - **2018-04-17** - Support for `strip=yes` (which is now default). - **2020-04-25** - Bugfix for MkIV (Replace `\@EA` by `\expandafter`) context-modules-20240428/doc/context/third/filter/VERSION0000644000175000017500000000001314204014367021762 0ustar hillehille2022.02.17 context-modules-20240428/doc/context/third/calendar-examples/0000755000175000017500000000000014613513620023020 5ustar hillehillecontext-modules-20240428/doc/context/third/calendar-examples/LICENSE0000644000175000017500000000001514422276371024030 0ustar hillehillePublic Domaincontext-modules-20240428/doc/context/third/calendar-examples/calendar-examples.md0000644000175000017500000000562614422276371026747 0ustar hillehille# Calendar examples The module provides different examples of calendars, made-up using the machinery provided in the t-pocketdiary module. The user is completely free to change and adapt the examples to his needs. The examples are in the Public Domain. ## A5-day_per_page.tex This calendar produces single page day-calendars for the whole year. The page carries in the header the month's name and the year. On the next line it places the the day-number of the month with the day-name. This is followed by the week-number and the the day-number of the year. In the following field the name of the Christian holiday is typeset. In the last block data concerning the moon-cycle and sun data are provided. The page is filled with a hourly schedule from 06:00 to 22:00 The footer displays information according to the setup established in the variable set. This example has different modes for the production either an A5 or an A6 sized calendar. The A5 sized calendar is arranged A4 landscape paper for sections of 16 pages consisting out of 4 sheets each carrying 2 pages recto and verso. The A6 version is also arranged for sections of 16 pages typeset on A4 portrait paper. The sections consist out of 2 sheets carrying 4 pages recto and 4 pages verso. ## A6-1week_per_2pages.tex The calendar is made up as a table for one week, spread over two pages. The header displays the month's name and to the right the week-number and the year. The table is split in two parts after Thursday. Friday and the weekend is placed on the second page. The Weekend is split into two cells on one row. On Tuesdays moon- and sun-data are desplayed. If the day is Chrstian holiday, it is printed in red and the name of the holiday is typeset. ## Menu-calendar.tex The menu-calendar is based on week-number, i.e. in years, where the first of January is not in the first week, those days are left out. Each week is spread over two pages. The header shows the month's name and to the right the week-number. The year is typeset in the footer. Each day shows the day-number and the name of the day. Christian holidays are marked red and the name of the holiday is typeset right to the day-name. There is a larger space for notes concerning the menu and each day has a "Comment" line. ## Photocalendar.tex The Phoro calendar is made-up on A4 paper. It contains a title page with one picture, followed by 12 pages each reserved for one month. On each of those pages there is a picture and at the bottom a month-table is placed. Centered above the table the month's name and the year is typeset. This example is set-up such, that one can only put either landscape or portrait pictures. ## Sundata-calendar.tex This calendar puts the moon- and sun-data per day in a table. It is arranged as a A6-booklet consisting out of two sections. Sewn together and set into a cover this gives a handy brochure to keep track of moon-cycle and the daily sunrise, sunset and day-light hours. context-modules-20240428/doc/context/third/calendar-examples/VERSION0000644000175000017500000000001314422276371024071 0ustar hillehille2023.04.25 context-modules-20240428/doc/context/third/calendar-examples/README.md0000644000175000017500000000113514422276371024306 0ustar hillehille## A Collection of Calendars # Intro There is a module called t-pocektdiary which contains numerous calculations for day, week, month and year tables. The module also comes with the possibility to calculate sunrise and sunset data as well as moon-cycle data. This collection of calendars shows the the mechanisms implemented in the PocketDiary module can also be used outside of its structures. # The examples - Planner in the format A5 with 1 day per page - Planner in the format A5 or A6 with 1 week on two facing pages - Planner for menus - Photo calendar # Author Willi Egger License Public Domaincontext-modules-20240428/doc/context/third/gnuplot/0000755000175000017500000000000014613513620021123 5ustar hillehillecontext-modules-20240428/doc/context/third/gnuplot/fullpage-example.tex0000644000175000017500000002650311705402146025102 0ustar hillehille% Written by ConTeXt terminal for GNUPLOT on: 2011-09-18 15:32 CEST % GNUPLOT version: 4.5.0, terminal version: 1.0.0 (2011-09-16) % See also http://wiki.contextgarden.net/Gnuplot % \usemodule [gnuplot] \setupcolors [state=start] \setupbodyfont [12pt] \setupGNUPLOTterminal [context] [linejoin=mitered, % *mitered* | rounded | beveled linecap=butt, % *butt* | rounded | squared dashed=yes, % *yes* | no dashlength=1, % scaling factor for dash lengths linewidth=1, % scaling factor for line widths (1.0 means 0.5bp) %fontscale=1, % scaling factor for text labels points=metapost, % *metapost* | tex (Should points be drawn with MetaPost or TeX?) images=inline] % *inline* | external (inline only works in MKIV, external requires png support in gnuplot) \starttext \startGNUPLOTpage % Graphic Nr. 1 string gnuplotversion; gnuplotversion := "4.5"; string termversion; termversion := "1.0"; % scaling factor, width and height of the figure a := 1cm; w := 12.700a; h := 7.620a; % (5in, 3in) % temporary variable for storing the path and images save p, img, ima; path p; string img, ima; % ------------------------- % Different initialisations % ------------------------- % for additional user-defined settings gp_setup_before; % text scaling factor for the whole figure gp_scale_text := 1; % pointsize scaling factor gp_set_pointsize(1); % linewidth scaling factor for individual lines gp_set_linewidth(1); % for additional user-defined settings gp_setup_after; % ------------------------- gp_set_linetype(-2); p := (1.339a,0.842a)--(1.462a,0.842a); gp_draw(p); p := (12.081a,0.842a)--(11.958a,0.842a); gp_draw(p); gp_put_text((1.133a, 0.842a), align(right), \sometxt[gp]{-1}); p := (1.339a,1.479a)--(1.462a,1.479a); gp_draw(p); p := (12.081a,1.479a)--(11.958a,1.479a); gp_draw(p); gp_put_text((1.133a, 1.479a), align(right), \sometxt[gp]{-0.8}); p := (1.339a,2.115a)--(1.462a,2.115a); gp_draw(p); p := (12.081a,2.115a)--(11.958a,2.115a); gp_draw(p); gp_put_text((1.133a, 2.115a), align(right), \sometxt[gp]{-0.6}); p := (1.339a,2.751a)--(1.462a,2.751a); gp_draw(p); p := (12.081a,2.751a)--(11.958a,2.751a); gp_draw(p); gp_put_text((1.133a, 2.751a), align(right), \sometxt[gp]{-0.4}); p := (1.339a,3.388a)--(1.462a,3.388a); gp_draw(p); p := (12.081a,3.388a)--(11.958a,3.388a); gp_draw(p); gp_put_text((1.133a, 3.388a), align(right), \sometxt[gp]{-0.2}); p := (1.339a,4.025a)--(1.462a,4.025a); gp_draw(p); p := (12.081a,4.025a)--(11.958a,4.025a); gp_draw(p); gp_put_text((1.133a, 4.025a), align(right), \sometxt[gp]{0}); p := (1.339a,4.661a)--(1.462a,4.661a); gp_draw(p); p := (12.081a,4.661a)--(11.958a,4.661a); gp_draw(p); gp_put_text((1.133a, 4.661a), align(right), \sometxt[gp]{0.2}); p := (1.339a,5.298a)--(1.462a,5.298a); gp_draw(p); p := (12.081a,5.298a)--(11.958a,5.298a); gp_draw(p); gp_put_text((1.133a, 5.298a), align(right), \sometxt[gp]{0.4}); p := (1.339a,5.934a)--(1.462a,5.934a); gp_draw(p); p := (12.081a,5.934a)--(11.958a,5.934a); gp_draw(p); gp_put_text((1.133a, 5.934a), align(right), \sometxt[gp]{0.6}); p := (1.339a,6.571a)--(1.462a,6.571a); gp_draw(p); p := (12.081a,6.571a)--(11.958a,6.571a); gp_draw(p); gp_put_text((1.133a, 6.571a), align(right), \sometxt[gp]{0.8}); p := (1.339a,7.207a)--(1.462a,7.207a); gp_draw(p); p := (12.081a,7.207a)--(11.958a,7.207a); gp_draw(p); gp_put_text((1.133a, 7.207a), align(right), \sometxt[gp]{1}); p := (1.339a,0.842a)--(1.339a,0.965a); gp_draw(p); p := (1.339a,7.207a)--(1.339a,7.084a); gp_draw(p); gp_put_text((1.339a, 0.421a), align(center), \sometxt[gp]{-10}); p := (4.025a,0.842a)--(4.025a,0.965a); gp_draw(p); p := (4.025a,7.207a)--(4.025a,7.084a); gp_draw(p); gp_put_text((4.025a, 0.421a), align(center), \sometxt[gp]{-5}); p := (6.710a,0.842a)--(6.710a,0.965a); gp_draw(p); p := (6.710a,7.207a)--(6.710a,7.084a); gp_draw(p); gp_put_text((6.710a, 0.421a), align(center), \sometxt[gp]{0}); p := (9.396a,0.842a)--(9.396a,0.965a); gp_draw(p); p := (9.396a,7.207a)--(9.396a,7.084a); gp_draw(p); gp_put_text((9.396a, 0.421a), align(center), \sometxt[gp]{5}); p := (12.081a,0.842a)--(12.081a,0.965a); gp_draw(p); p := (12.081a,7.207a)--(12.081a,7.084a); gp_draw(p); gp_put_text((12.081a, 0.421a), align(center), \sometxt[gp]{10}); p := (1.339a,7.207a)--(1.339a,0.842a)--(12.081a,0.842a)--(12.081a,7.207a)--cycle; gp_draw(p); gp_set_linetype(0); gp_set_color(lt(-2)); gp_put_text((10.516a, 6.874a), align(right), \sometxt[gp]{sin(x)}); gp_set_linetype(0); p := (10.722a,6.874a)--(11.669a,6.874a); gp_draw(p); p := (1.339a,5.756a)--(1.448a,5.185a)--(1.556a,4.567a)--(1.665a,3.926a) --(1.773a,3.290a)--(1.882a,2.684a)--(1.990a,2.132a)--(2.099a,1.657a) --(2.207a,1.278a)--(2.316a,1.011a)--(2.424a,0.867a)--(2.533a,0.851a) --(2.641a,0.964a)--(2.750a,1.202a)--(2.858a,1.554a)--(2.967a,2.007a) --(3.075a,2.542a)--(3.184a,3.137a)--(3.292a,3.769a)--(3.401a,4.410a) --(3.509a,5.036a)--(3.618a,5.621a)--(3.726a,6.141a)--(3.835a,6.575a) --(3.943a,6.905a)--(4.052a,7.118a)--(4.160a,7.205a)--(4.269a,7.163a) --(4.377a,6.993a)--(4.486a,6.702a)--(4.594a,6.303a)--(4.703a,5.810a) --(4.811a,5.246a)--(4.920a,4.631a)--(5.028a,3.992a)--(5.137a,3.354a) --(5.245a,2.743a)--(5.354a,2.185a)--(5.462a,1.701a)--(5.571a,1.312a) --(5.679a,1.033a)--(5.788a,0.876a)--(5.896a,0.847a)--(6.005a,0.947a) --(6.113a,1.172a)--(6.222a,1.514a)--(6.330a,1.957a)--(6.439a,2.485a) --(6.547a,3.075a)--(6.656a,3.704a)--(6.764a,4.345a)--(6.873a,4.974a) --(6.981a,5.564a)--(7.090a,6.092a)--(7.198a,6.535a)--(7.307a,6.877a) --(7.415a,7.102a)--(7.524a,7.202a)--(7.632a,7.173a)--(7.741a,7.016a) --(7.849a,6.737a)--(7.958a,6.348a)--(8.066a,5.864a)--(8.175a,5.306a) --(8.283a,4.695a)--(8.392a,4.057a)--(8.500a,3.418a)--(8.609a,2.803a) --(8.717a,2.239a)--(8.826a,1.746a)--(8.934a,1.347a)--(9.043a,1.056a) --(9.151a,0.886a)--(9.260a,0.844a)--(9.368a,0.931a)--(9.477a,1.144a) --(9.585a,1.474a)--(9.694a,1.908a)--(9.802a,2.428a)--(9.911a,3.013a) --(10.019a,3.639a)--(10.128a,4.280a)--(10.236a,4.912a)--(10.345a,5.507a) --(10.453a,6.042a)--(10.562a,6.495a)--(10.670a,6.847a)--(10.779a,7.085a) --(10.887a,7.198a)--(10.996a,7.182a)--(11.104a,7.038a)--(11.213a,6.771a) --(11.321a,6.392a)--(11.430a,5.917a)--(11.538a,5.365a)--(11.647a,4.759a) --(11.755a,4.123a)--(11.864a,3.482a)--(11.972a,2.864a)--(12.081a,2.293a); gp_draw(p); gp_set_linetype(-2); p := (1.339a,7.207a)--(1.339a,0.842a)--(12.081a,0.842a)--(12.081a,7.207a)--cycle; gp_draw(p); setbounds currentpicture to unitsquare xyscaled (w,h); % 0 0 1 1 \stopGNUPLOTpage \startGNUPLOTpage % Graphic Nr. 2 string gnuplotversion; gnuplotversion := "4.5"; string termversion; termversion := "1.0"; % scaling factor, width and height of the figure a := 1cm; w := 12.700a; h := 7.620a; % (5in, 3in) % temporary variable for storing the path and images save p, img, ima; path p; string img, ima; % ------------------------- % Different initialisations % ------------------------- % for additional user-defined settings gp_setup_before; % text scaling factor for the whole figure gp_scale_text := 1; % pointsize scaling factor gp_set_pointsize(1); % linewidth scaling factor for individual lines gp_set_linewidth(1); % for additional user-defined settings gp_setup_after; % ------------------------- gp_set_linetype(-2); p := (1.339a,0.842a)--(1.462a,0.842a); gp_draw(p); p := (12.081a,0.842a)--(11.958a,0.842a); gp_draw(p); gp_put_text((1.133a, 0.842a), align(right), \sometxt[gp]{-0.6}); p := (1.339a,1.903a)--(1.462a,1.903a); gp_draw(p); p := (12.081a,1.903a)--(11.958a,1.903a); gp_draw(p); gp_put_text((1.133a, 1.903a), align(right), \sometxt[gp]{-0.4}); p := (1.339a,2.964a)--(1.462a,2.964a); gp_draw(p); p := (12.081a,2.964a)--(11.958a,2.964a); gp_draw(p); gp_put_text((1.133a, 2.964a), align(right), \sometxt[gp]{-0.2}); p := (1.339a,4.025a)--(1.462a,4.025a); gp_draw(p); p := (12.081a,4.025a)--(11.958a,4.025a); gp_draw(p); gp_put_text((1.133a, 4.025a), align(right), \sometxt[gp]{0}); p := (1.339a,5.085a)--(1.462a,5.085a); gp_draw(p); p := (12.081a,5.085a)--(11.958a,5.085a); gp_draw(p); gp_put_text((1.133a, 5.085a), align(right), \sometxt[gp]{0.2}); p := (1.339a,6.146a)--(1.462a,6.146a); gp_draw(p); p := (12.081a,6.146a)--(11.958a,6.146a); gp_draw(p); gp_put_text((1.133a, 6.146a), align(right), \sometxt[gp]{0.4}); p := (1.339a,7.207a)--(1.462a,7.207a); gp_draw(p); p := (12.081a,7.207a)--(11.958a,7.207a); gp_draw(p); gp_put_text((1.133a, 7.207a), align(right), \sometxt[gp]{0.6}); p := (1.339a,0.842a)--(1.339a,0.965a); gp_draw(p); p := (1.339a,7.207a)--(1.339a,7.084a); gp_draw(p); gp_put_text((1.339a, 0.421a), align(center), \sometxt[gp]{-10}); p := (4.025a,0.842a)--(4.025a,0.965a); gp_draw(p); p := (4.025a,7.207a)--(4.025a,7.084a); gp_draw(p); gp_put_text((4.025a, 0.421a), align(center), \sometxt[gp]{-5}); p := (6.710a,0.842a)--(6.710a,0.965a); gp_draw(p); p := (6.710a,7.207a)--(6.710a,7.084a); gp_draw(p); gp_put_text((6.710a, 0.421a), align(center), \sometxt[gp]{0}); p := (9.396a,0.842a)--(9.396a,0.965a); gp_draw(p); p := (9.396a,7.207a)--(9.396a,7.084a); gp_draw(p); gp_put_text((9.396a, 0.421a), align(center), \sometxt[gp]{5}); p := (12.081a,0.842a)--(12.081a,0.965a); gp_draw(p); p := (12.081a,7.207a)--(12.081a,7.084a); gp_draw(p); gp_put_text((12.081a, 0.421a), align(center), \sometxt[gp]{10}); p := (1.339a,7.207a)--(1.339a,0.842a)--(12.081a,0.842a)--(12.081a,7.207a)--cycle; gp_draw(p); gp_set_linetype(0); gp_set_color(lt(-2)); gp_put_text((10.516a, 6.874a), align(right), \sometxt[gp]{cos(atan(x))*sin(x)}); gp_set_linetype(0); p := (10.722a,6.874a)--(11.669a,6.874a); gp_draw(p); p := (1.339a,4.312a)--(1.448a,4.221a)--(1.556a,4.118a)--(1.665a,4.007a) --(1.773a,3.892a)--(1.882a,3.777a)--(1.990a,3.668a)--(2.099a,3.568a) --(2.207a,3.482a)--(2.316a,3.415a)--(2.424a,3.370a)--(2.533a,3.350a) --(2.641a,3.357a)--(2.750a,3.392a)--(2.858a,3.456a)--(2.967a,3.547a) --(3.075a,3.663a)--(3.184a,3.802a)--(3.292a,3.958a)--(3.401a,4.128a) --(3.509a,4.304a)--(3.618a,4.480a)--(3.726a,4.649a)--(3.835a,4.805a) --(3.943a,4.939a)--(4.052a,5.046a)--(4.160a,5.117a)--(4.269a,5.148a) --(4.377a,5.134a)--(4.486a,5.072a)--(4.594a,4.959a)--(4.703a,4.794a) --(4.811a,4.578a)--(4.920a,4.315a)--(5.028a,4.008a)--(5.137a,3.663a) --(5.245a,3.289a)--(5.354a,2.896a)--(5.462a,2.494a)--(5.571a,2.097a) --(5.679a,1.721a)--(5.788a,1.384a)--(5.896a,1.107a)--(6.005a,0.917a) --(6.113a,0.845a)--(6.222a,0.928a)--(6.330a,1.211a)--(6.439a,1.734a) --(6.547a,2.510a)--(6.656a,3.492a)--(6.764a,4.557a)--(6.873a,5.539a) --(6.981a,6.315a)--(7.090a,6.838a)--(7.198a,7.121a)--(7.307a,7.204a) --(7.415a,7.132a)--(7.524a,6.942a)--(7.632a,6.665a)--(7.741a,6.328a) --(7.849a,5.952a)--(7.958a,5.555a)--(8.066a,5.153a)--(8.175a,4.760a) --(8.283a,4.386a)--(8.392a,4.041a)--(8.500a,3.734a)--(8.609a,3.471a) --(8.717a,3.255a)--(8.826a,3.090a)--(8.934a,2.977a)--(9.043a,2.915a) --(9.151a,2.901a)--(9.260a,2.932a)--(9.368a,3.003a)--(9.477a,3.110a) --(9.585a,3.244a)--(9.694a,3.400a)--(9.802a,3.569a)--(9.911a,3.745a) --(10.019a,3.921a)--(10.128a,4.091a)--(10.236a,4.247a)--(10.345a,4.386a) --(10.453a,4.502a)--(10.562a,4.593a)--(10.670a,4.657a)--(10.779a,4.692a) --(10.887a,4.699a)--(10.996a,4.679a)--(11.104a,4.634a)--(11.213a,4.567a) --(11.321a,4.481a)--(11.430a,4.381a)--(11.538a,4.272a)--(11.647a,4.157a) --(11.755a,4.042a)--(11.864a,3.931a)--(11.972a,3.828a)--(12.081a,3.737a); gp_draw(p); gp_set_linetype(-2); p := (1.339a,7.207a)--(1.339a,0.842a)--(12.081a,0.842a)--(12.081a,7.207a)--cycle; gp_draw(p); setbounds currentpicture to unitsquare xyscaled (w,h); % 0 0 1 1 \stopGNUPLOTpage \stoptext context-modules-20240428/doc/context/third/gnuplot/gnuplot-context-doc.tex0000644000175000017500000003557112134236345025577 0ustar hillehille\setupcolors [state=start] \enableregime [utf-8] \setupinteraction [state=start,color=blue] \usemodule [gnuplot] \setuplayout [backspace=2cm, width=middle, topspace=2cm, heigh=middle, header=0pt, headerdistance=0pt] \setupwhitespace [medium] \setuphead [title] [align=middle, before={\strut\blank[24pt]}, style=\bfc] \setuphead [section] [style=\bfb] \setuphead [subsection] [style=\bfa] \setupitemize [headstyle=bold] % \usetypescript % [antykwa-torunska] % \setupbodyfont % [antykwa] \definetyping [GP] [escape={[[,]]},lines=no] \setuptyping [TEX] [stlye=\tfx] % \usetypescript[lucida][ec] \setupbodyfont[lucida] \setupbodyfont [lucidanova] \definecolor [maincolor] [darkblue] \definecolor [lightblue] [r=0.9,g=0.9,b=1] \definecolor [screen] [s=0.9] \logo [GNUPLOT] {{\sc gnuplot}} \logo [TEXLIVE] {\TeX\ Live} \logo [MIKTEX] {MiK\TeX} \logo [TIKZ] {Tik{\it Z}} \logo [MKII] {{\sc mkii}} \logo [CONTEXTMKII] {\ConTeXt\ \MKII} \defineframedtext [background] [background=color,backgroundcolor=gray,width=\textwidth,frame=off,offset=2pt,style=type] \defineframedtext [myinput] [background=color,backgroundcolor=lightblue,width=\textwidth,frame=off,offset=2pt,style=type] % \setupbackgrounds % [background] % [background=color,backgroundcolor=gray,width=\textwidth,frame=off] \starttext \title{Using \color[maincolor]{\tt\bf context} and \color[maincolor]{\tt\bf tikz} terminals for gnuplot in \ConTeXt} \centerline{Mojca Miklavec, \date[y=2013,m=4,d=19][year,--,mm,--,day]} {\it With special thanks to Hans Hagen, Taco Hoekwater, Aditya Mahajan, Marco Patzer and others.} \blank \placelist[section] \blank \section{Requirements} \startitemize[n,packed] \item Any \ConTeXt\ installation (\ConTeXt\ Distribution, \TEXLIVE\ 2011 or later, \dots). \item Gnuplot 4.6.0 or later with {\tt context} and/or {\tt tikz} terminal built in. The {\tt gnuplot} binary (or {\tt gnuplot.exe} under Windows) has to be in {\tt PATH}. \item Gnuplot module for ConTeXt. \item For running \GNUPLOT\ on the fly or when using \CONTEXTMKII, you need to have {\tt write18} enabled. Usually this can be set with {\tt shell\_escape = t} in {\tt texmf.cnf}. \stopitemize \section{Installation} \subsection{Gnuplot} As long as you have gnuplot $\geq 4.6.0$ installed, you should have the {\tt context} terminal built in. If not, you might want to compile gnuplot from CVS sources: \starttyping cd gnuplot ./prepare ./configure [--prefix=$PWD/install] make make install \stoptyping The option \type{--prefix=$PWD/install} (but you can choose anything) -- if chosen -- will install gnuplot locally even if you lack root permissions. Just make sure that you add the resulting binary to {\tt PATH}. Once you have the gnuplot binary running, you can check the list of supported terminals by typing \startlines \tt{gnuplot>} \bf set term \stoplines into \GNUPLOT\ shell. Make sure that it lists: \starttyping context ConTeXt with MetaFun (for PDF documents) tikz Lua PGF/TikZ terminal for TeX and friends \stoptyping The module also supports some other terminals like {\tt png}, {\tt metapost}, {\tt postscript} and {\tt pdf}, but their integration with \CONTEXT\ is limited. \subsection{{\tt\bf t-gnuplot} module for \CONTEXT} Under \CONTEXT\ Distribution you can install the gnuplot module and \TIKZ\ with an additional switch when running {\tt first-setup}, for example: \startbackground \tt ./first-setup.sh --modules=gnuplot,tikz \stopbackground If you have installed a {\tt complete} or {\tt context} scheme under \TEXLIVE, gnuplot module and \TIKZ\ might already be installed. Else you can use: \startbackground tlmgr install context-gnuplot\\ tlmgr install pgf \stopbackground Under \MIKTEX\ the module is installed automatically when it is first used (but at the moment of writing \MIKTEX\ doesn't support \ConTeXt). \page \section{Simple examples} \subsection[calling gnuplot directly]{Calling gnuplot directly} Let's first create a simple file (we will call it {\tt\it example.plt}, but you may choose any name) with the contents below. For {\tt context} terminal: \startmyinput set term context size 5in,3in standalone\\ set output "fullpage-example.tex"\\ plot sin(x)\\ plot cos(atan(x))*sin(x) \stopmyinput For {\tt tikz} terminal: \startmyinput set term tikz context size 5in,3in standalone createstyle\\ set output "fullpage-example.tex"\\ plot sin(x)\\ plot cos(atan(x))*sin(x) \stopmyinput In both cases the option {\tt standalone} is used to create a complete \CONTEXT\ document with one plot per page, including header and {\tt\textbackslash starttext \dots\ \textbackslash stoptext}, so that it can be compiled directly. The option {\tt createstyle} is used to create three files with required macros in working directory\footnote{An alternative is to place those three files somewhere where kpathsea can find them and omit the option {\tt createstyle}, just make sure that the versions of {\tt tikz} terminal and the files in your \TeX\ tree remain compatible.}. Both terminals should give you almost equivalent results apart from default plot size. You are highly encouraged to specify the desired plot size explicitly. You may scale the plot later on, but you probably want to get the desired proportions from the start. \page Run gnuplot with \startbackground gnuplot example.plt \stopbackground and compile the result with any of the following three commands (depending on your preferred engine): \startbackground \hbox{\hbox to 25em{context fullpage-example.tex \hss} {\rm\# for \LuaTeX}} \hbox{\hbox to 25em{texexec fullpage-example.tex \hss} {\rm\# for \pdfTeX}} \hbox{\hbox to 25em{texexec --xtx fullpage-example.tex \hss} {\rm\# for \XeTeX} } \stopbackground They are almost equivalent except that \XeTeX\ lacks some advanced features (some patterns). The only major difference is the choice of fonts. If you want to typeset Arabic labels or use system fonts, you will probably want to choose \LuaTeX\ or \XeTeX. If you are using many graphical elements (3D plots, images, \dots), you might want to go for \LuaTeX. You should get a {\sc pdf} document with two full-page plots that you can include into your document with \type{\externalfigure[fullpage-example][page=2]} for example. \placefigure[force]{Second page from \type{fullpage-example}, included with \type+\externalfigure+}{\externalfigure[fullpage-example][page=2]} \page \subsection{Calling gnuplot from \TeX} As you can see you will always get Latin Modern font at 12pt unless you explicitly change it with {\tt header "\textbackslash setupbodyfont[somefontname,10pt]"} or with {\tt font "somefontname,10pt"}. An easier way to make sure that the same font is used and to avoid having to call gnuplot manually is to simply type the gnuplot code inside your \CONTEXT\ document: \startTEX \usemodule [gnuplot] \setupGNUPLOTterminal [context] [width=5in,height=2.5in,fontscale=0.9] \setupGNUPLOTterminal [tikz] [width=5in,height=2.5in,fontscale=0.9] \starttext \startGNUPLOTinclusions set samples 400 set key left Left reverse \stopGNUPLOTinclusion \startGNUPLOTscript[myfunction] set zeroaxis set format y "%.1f" plot [-4:2][0:2] 1 t '' lt 0, exp(x) t '$e^x$' lt 1 lw 3 plot cos(atan(x))*sin(x) t '$\cos(\arctan(x))\sin(x)$' lw 3 lc 3 \stopGNUPLOTscript \placefigure{none}{\useGNUPLOTgraphic[myfunction][2]} \setupGNUPLOT [terminal=tikz] \placefigure{none}{\useGNUPLOTgraphic[myfunction][1]} \stoptext \stopTEX \page \bgroup \setuptype[option=TEX] With \type+\setupGNUPLOT[terminal=]+ you can select any supported gnuplot terminal before drawing a plot. With \type+\setupGNUPLOT[][

" } { [[\bf color]] | colour | monochrome } { [[\bf rounded]] | mitered | beveled } { [[\bf round]] | butt | squared } { [[\bf dashed]] | solid } { dashlength | dl
} { linewidth | lw } { fontscale } { [[\bf mppoints]] | texpoints } { [[\bf inlineimages]] | externalimages } { [[\bf defaultfont]] | font {} | font "{,}" {fontsize} } \stopGP \page \subsection{\tt\bf tikz} \def\my#1{\color[blue]{\bf#1}} \startGP set term tikz { latex | tex | [[\my{context}]] } { [[\my{size}]] {unit},{unit} } { scale , } { nofulldoc | nostandalone | fulldoc | standalone } { [[\bf color]] | monochrome } { [[\bf dashed]] | solid } { nooriginreset | originreset } { nogparrows | gparrows } { nogppoints | gppoints } { picenvironment | nopicenvironment } { noclip | clip } { notightboundingbox | tightboundingbox } { background "" } { plotsize {unit},{unit} } { [[\my{charsize}]] {unit},{unit} } { font "" } { fontscale } { {preamble | header} "" } { tikzplot ,... } { notikzarrows | tikzarrows } { rgbimages | cmykimages } { noexternalimages | externalimages } { bitmap | nobitmap } { providevars ,... } { [[\my{createstyle}]] } { help } \stopGP \page \section{Comparison of supported terminals} The gnuplot module for \ConTeXt\ supports the following terminals: \startitemize[packed] \head bitmap terminals\par \startitemize[packed,joinedup] \item\tt png, pngcairo \stopitemize \head vector terminals\par \startitemize[packed,joinedup] \item\tt {\bf context}, {\bf tikz} \item\tt metapost, postscript, pdf, pdfcairo \stopitemize \stopitemize \startGNUPLOTscript[bitmap] # this should not be done set term pngcairo truecolor size 1000,1000 linewidth 4 set palette defined ( 0 "#FFF8BF", 1 "#FFC20B", 2 "red", 3 "#501080", 4 "blue", 5 "#88BBEE") unset border set dummy u,v set format cb "%.1f" unset key set parametric set view 60, 30, 1.5, 0.9 set isosamples 200, 200 set size ratio -1 set noxtics set noytics set noztics set urange [ -3.14159 : 3.14159 ] noreverse nowriteback set vrange [ -3.14159 : 3.14159 ] noreverse nowriteback set pm3d depthorder unset colorbox f(x,y) = sin(-sqrt((x+5)**2+(y-7)**2)*0.5) GPFUN_f = "f(x,y) = sin(-sqrt((x+5)**2+(y-7)**2)*0.5)" splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v) with pm3d, \ 1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v) with pm3d \stopGNUPLOTscript \setupGNUPLOT[terminal=pngcairo] \placefigure{An example of graphic generated with png terminal}{\hbox to \textwidth{\hss\framed{\useGNUPLOTgraphic[bitmap][scale=700]}\hss}} \page \section{Known bugs} \subsection{Buggy implementation in \ConTeXt\ module} \startitemize[packed] \item Point sizes of \TeX\ symbols for points have to be fine-tuned for proper size. \item Points don't scale properly. Line widths should not be scaled when bigger points are requested. Also, when thicker lines are used, points don't inherit that thickness. The reason is buggy implementation that stores all points as pictures in the beginning instead of drawing each point separately when that is requested. \item Patterns fills are a semi-hack. They are composed out of little tiles and drawn next to each other. This doesn't look properly when rendered. This also means that line widths don't scale properly. \item MetaPost could be highly optimized. In particular the transparency should be handled more efficiently. \stopitemize \subsection{Support in \ConTeXt\ core} \startitemize[packed] \item Switching to a different font for font labels doesn't work in {\sc mkiv} and uses an ugly hack in {\sc mkii}. \item External images don't work in {\sc mkiv} at the moment. Use {\tt images=inline} ({\tt inlineimages} in gnuplot). This is because the only acceptable {\sc mkii} syntax is {\tt externalfigure "name.png"}, while {\sc mkiv} requires {\tt draw externalfigure "name.png"}. This has to be fixed in \ConTeXt\ core. \item Transparent inline images are not yet supported. \item There might be still some memory leaks in MetaPost. The major ones were fixed. \stopitemize \subsection{Limitations} \startitemize[packed] \item Plots with many graphical elements don't work in {\sc mkii} since \TeX\ runs out of memory. \item Inline bitmap images are not (and might never be) supported in {\sc mkii}. If you want to use external bitmap images, use the option {\tt externalimages} in {\tt context} terminal ({\tt images=external} in \ConTeXt). \stopitemize \stoptext context-modules-20240428/doc/context/third/gnuplot/fullpage-example.pdf0000644000175000017500000002622611705402146025055 0ustar hillehille%PDF-1.6 % 17 0 obj << /Length 2348 /Filter /FlateDecode >> stream x^ŚOo$ )kXd  a>8v }5kMvșA]Ev C o}m w?OM?o0d~$/wWvK-RS5JpD\._Onuh9Zv{;W@V9Z'fs%ىB fDc."y$6vfR+pk )^2Gqtq9*96R9j5h=isRl(WH8mQsz\8:|:ژ-~}~58 ˏ*|>K; MO8%v$ -OAR R)rB^(9.;[/`f2s8c[8iQ />>\= *A=_CP>RG$/ it)2w.IT^_+CbNFgV+I@f&]WNF2h~IϕN_@RR{L('yp4|>I;kgbjC=U-\6|6PZ,KAZ^<{w.IU2(ۥ B.LtrGV7k*au¡CRs Z2?AѳzrFR ]]'g 8H캥lr;rV< $L[,kų&TlOj>+1;!2-ǟ#OLĬ.wGLWO8Zck-6:SKn9Wn]zNMndkv}8ΑCVU6pD2MFX ڌ>cr$VxIN*%(5R0}aLc#,6 #JL12žs_Y]mdY8Z o73&r0 J'mLA S aؖKsLVsQEuهFcSqkF"kjMd i5U_[sdi+HjZc+gI1w>u֎:p/Ti nB*Jw. U0RXfPi>KԤHV$cQfU6cJ* -smvbκ~1X9VБ:Lkxbn-tm>5a-ZoHI&- *?qW̃𰩕RMs8,21W.e'IRi^ap*S vGyhAT@GBn? =iΰsܷ3 O@* +PQS"I#f?b)t$17%`Yᾀ@& iw 0,Z $H |CxʘWY\L4<+餀pJq%eg*q((=rzU% 0m2r0dqGp9|z, >RP y8ݱʕl.F%1PQ!(D|jX1ƟV<]Я8w:3CJyސdҘ}GɔyȖj:Ӿq;:Za d0պ#.v/RQCd!C ٽs^ϻh8ݗDq%cD> stream x^ݚo\Eﯨ ۚh" E( (FN=]M4n]W9~} n?o\Kz]{뷿w.}~n >|E߿ڢ_n/ X--woT\~^Gq[z^oo|ܺ`IԜlzyxkA{@MuK,^ TO5d.6j覚CT:A,CjrÎ_?_?ߞ]mwt1Hm: uwu^3zB#V?{u˷P;0G5{c{68:XOh]q%O4pQq4PJG+.ݿGDG=G|wb>5XU?H9=R#ݍܻ b=BUΗ'cQ,̺N%*Ԫ>=^: 5yK#vB`TVss[.>{u(u͕%͝JR\] ֡ Uq!Z̧td-C1gS]3 K^Yͧ޻2td"VNjQ0Rr[ޥOQ~n879#rV<њ({.橮O%fw%!0vG#,SY<*8˚V{lOefg1^0ô gdi!'}b_[;s7SsxC!$5D o6+h.ڛv2U<\1WnQ}D3`!moHmQ[|A:<ycYoKh Lda!jV̙\: z.0[ cc5]LƢu#  EkMVa0@/LTa7rCVQ7{NU10'&;1n s<(.RQAN$r$`b[cKáVCӌ[d! .~'";(Ļ̂SITaY!fمU΢v`+)[O7~O㹈Vv:V๓5#'Q ( ZȀDN>en< {bO$|REi?$ jvJep<:Bf0 ;'I$b&2 ٓx>S8*=Hf]~QЮTiʔ:!`Ss£mrBVܝGTY`+^z3EŃN9E*Vaݛs/?=0<] endstream endobj 24 0 obj << /Type /Metadata /Subtype /XML /Length 1770 >> stream application/pdffullpage-examplefullpage-example2011.09.18 15:32www.pragma-ade.com2011.05.18 18:04fullpage-example.2011-09-18T15:32:11+02:00This is LuaTeX, Version beta-0.70.1-2011062107 (rev 4277) (TeX Live 2011) kpathsea version 6.0.12011-09-18T15:32:11+02:00ConTeXt - 2011.05.18 18:042011-09-18T15:32:11+02:002011-09-18T15:32:11+02:00LuaTeX-0.70.1Falseuuid:d89e86e5-4179-a6a8-b381-e90ac31f4330uuid:0c27bc70-4541-ac1a-fdb4-5d873f3efb88 endstream endobj 26 0 obj << /Length 24 /Filter /FlateDecode >> stream x^c``h8%A%X endstream endobj 27 0 obj << /Subtype /CIDFontType0C /Length 2608 /Filter /FlateDecode >> stream x^uVyPWqzqNpD @ATa@a`kf }94(5Z1ِ+ƪױm*U뮯}'<<0H4 Qё/ d&_[T2qs?C"s=`CwDD/LBr|mZIy_1L[=M/;)$eHRO,{=XMW陥~~^ &41yƨۙ$SP&܇k:Pfi&V0RcTZ!KȇNK1Fv'#< eN)J-OS27mfiz&,=Y)oo)L^7|4ZoI;y{{a!k#6ћLFˤ(:*631\* { Ƃp,6a, SbNL刅 K)& 9D/H{==KHb$ٞ ~RF-_}Fڈ;9F[ r_xb)X~UDFtLBW%w$G |z9\ @x-|WF{h4c+w(#~%=_wO0z=v?r 1 +Gk5JƉX InީJhb ˠ 6n,d}&l-.BH4 ρ%. tq:nJq*I%5AeHS!rhՇMڜ]#1< (B'>sIh]m[+ ?\%QF?YNJ]Nmfi-z+Bl/Q,ޢ=v[QoL+2'^W,$#a׈p=vںhPi?~/Gya(C=cb.P Ţ':o O4i0|6UݤROAcd?t`0uXN>BUIbE6_fKx;tAnK˔o?ϛq`Z{ޟ-0~g=2E9t6WoD(D?B+MUYNV:łz\ZOf/8ZCUS1VfnDRdR[ښrG |oƯ*3 ZJlu7iGP/TZQ4ZFKQCw SD(FvTՁʐZifeP֡' {a9U]x3t bЙQgB0?>9T߽tjM!pptRϜB PI4͆SWgS;<ټ⻑,. D?i"ƙ`VLekЖ“7}?˦7T% dQɨ m#h!V'My,?Of{YFu?ɋ?ן{&г:wwbAV* ܢRKq̤pOw]R ̹$ ]aykWnSbv+224J^< 4gKt^ᗳțW5WLq78h%luG{R,nK5@:[c̵KUO$֊dOm ̢Lz[lY4{K+i]0o7'إ4;q{ue d}u8#i2@[ YT;>)b]'M߂1OhtKqKEQJk y\7o > stream x^Sj0+@zp-۵ӆ`h m$:8+%#ۇ4v ˆ 4o޼'6Q-g[hMoײ &} { h;gk:6]Wk$8FֿIOpT~lԥp Tڐ;N0&ļ'V=g-/\5 *{'L* ߉w綃z+,,Tٳ}DVUȦL"i7 !ƃ`*95j-1ա}% 0t"1YFB۔l,p `hW|:Tz!,Grx|OU]Z/=/ W GBOK=JSRTã;T={ń7*$)6#/95愨:M> stream x^UnF}W[d"«avb, =ĵL" {fINy gw̞ɘɈdHƤ$:%QΔ)& $XVxǂ& y⭱ܘӺmw$7]D9_Aϲ(A4D/a[l/ٿ~ҒӶn~!1+' 4Qp)O^a73 笕'k$5fbI`΀0U ^%% =DatX08x`S6SݥNn< ,dɷ;ݺ-n۾6[H|˫y5TӹJØl: 4DLUYCUwk'( ~ӜbSj/CyyEob}\mJKv2Pcդ:^vU !v\뼨6\8ߦ^pb:t/sh9Wd}W֒z_:?1_9+b{8 oRvQ=(U+7xmn[=v45ܡo?wW^rv%-<5zdÝmIU7vE]Q xhfeu'ȃ[ f8fq+Nup뺂qe{L*@]޿kKMk6[35qDc(!/"mN"|R*.,1f16"Pܢ5McstRSv,ɢ܏q,D=x`|x'a!3{6dJtϸȦ2]8ܡ P,@wkrg˩KKJa2M+DT"PI`+`zThPGƜُu;ڌ3\TǾx*:wo{ٌb]sg U`u1Sg =}Nov( endstream endobj 34 0 obj << /Type /XRef /Index [0 35] /Size 35 /W [1 2 1] /Root 32 0 R /Info 33 0 R /ID [<5E5E73D12503497BDD3F3DBD6A56F26A> <5E5E73D12503497BDD3F3DBD6A56F26A>] /Length 94 /Filter /FlateDecode >> stream x^DZ 0D;c06!HQ(PVL]w$R@zd x`ކICUw_G)/kݭ6!`wa) endstream endobj startxref 11070 %%EOF context-modules-20240428/doc/context/third/gnuplot/VERSION0000644000175000017500000000001313255060277022173 0ustar hillehille2013.05.09 context-modules-20240428/doc/context/third/gnuplot/example.plt0000644000175000017500000000016011705402146023273 0ustar hillehilleset term context size 5in,3in standalone set output "fullpage-example.tex" plot sin(x) plot cos(atan(x))*sin(x) context-modules-20240428/doc/context/third/gnuplot/gnuplot-context-doc.pdf0000644000175000017500000153602612134236345025552 0ustar hillehille%PDF-1.6 % 24 0 obj <> stream x^YnF+X2c[kr%HUK.C.wv]]ݶZX]߿?}}&[XZb-Xl K8/ֆlmg~q}+_}' !o[=p7&T/f(v_B&{W:W38_2,b馀_71o_8Kwn I8i w~}C21M~>ߞɤv5_ߐδ\=kz~ɸ%.y&6h.$8œtpNh}>|,@A= S6dM?fEӸP(0v'>D3bD;9P|J (t+n&q'S"KiIU<Ċ)C4Y0QF@ ىeN fM1%$%zQ}[k4p wQ D1RBgfx&uj\3?WOx"];bM$DXm eƍ1z<Km#Ь /k5)Ž,%{فiyn^cRKy EuKl)NԔ} - >538֥^!f@aidƾ֮r,BjXbBI"&kt#=b$ң[7g(8^+&vXh>20Q&ޚƪcL#ɾ"nnΨ-3~0 Dj<^8Y?"Hu.|^?ջCOUR_l"!Oa$_W^ʽ8/I<$ rtcH :DMMD(iqQWg8wz0CV8sG$o2!_=-w$9?aBOE #[ՕULĐ\њlYVu=e |{fAg?PG[R)}'Ld{d݄Y1)ѮX$]M$ 05'0)6HbzxF#4lO mtET$KY΁& B`")QV~`)Q/*/睉9/{{~:W}*L.mZa6d]II`NEsv<[ȣp?]{} d "0aBz8y 12Tp7G6R,e =2Qɜ`:[-~6;ـW0ޑt- B?|sl xu[z,88z1Rb%s5Kr>L+Pc+5;@B=A&uIfO0(F$2sY P,D  x7Z/9`MӃtWl=Yb{'+TM Bɭfg]7 gamN)a76;\k'DQp6EtnvlLДb3 0S_I`Lս;Rÿ.gJdehI-?Fwx*R௜YrhB.wT.S=F|pnG>_ !etx/![l)9ZJbrt8婆 `a W mlua!6)3)uCA2PX]zƇ5hܒxu-r%\㪳 V\c]krا=#`6M!J6 zo$&FeFaS\\H[' GrZ&d! a" O&P޿y=WLI(}fČVMp_/^~ц m 9FK>\d:v;ύ7PYG"^]s3 }/OoFp[vgP>Āʍ ^0byKtP\mqI߄`Ja'[ HV_+ 2\M )Q xϠ >ڔfeOֽLt>XO+Bg밐N:<\'2<û&z Nlbk`P0@wЉ/#蕲Kpm$i'6~9Ą&=xԦzV.;5|Ȫsvݹ3,sFQL$:ĕsQ G5 ]WC@_G<{M NcCWW[Wܴlx:)qM{ZXBzcpÿT@ endstream endobj 50 0 obj <> stream x^YɎ]5WhRRHEYaCS(z|r ~uۻ绯%4C-,xR]/VWzC~/ӷo7)Dz+v;h=?|xNxgr Lyb;$k,%Bpo| cyTBdJ;'Ε$RgYF[4,!^JLҺ}Ⱥ`:qZ$8梫}?t3tCSSUi+IO(ſ%؞DZ @ b_rK+k 7tJ+CWP({( ̛MqE2ʄ)]G\6G7`S_=46cCcl2/WAh)`16=̤q]Ju3⛋Ʌ({[<}|!yo~XBe-k_V\/ǻ H}_BwTi4ˣP Ւ'Ot'>ͻ2W:\zr(bN0#| B* s=큙_H -/:D%!oz?!~hGOl+XKݧl L32d^Z)qug)9 >gY>_\\_=Hmp5/S"095f}u9&ύړ4&Xq!vOG?:~4s.. oyBW ֣A>I&@q+x6P?r܌ss`~!vfLv`{E*jUUԛ8/KB }e$L@!0\!I3qqkv}W%)LD*G$RMRNԳakgҒ_VN^~طTwŨl0 Rl9F0%aW/QZ7Y[6 NͷH<"r(V^MKJgr+^berL̂>7Q cKǁ_`0*08c2cOAOƽ KEB 9>WoBS.buI?C+=6hEf!4@{Cٯ Y !S[zSGBv?[fWZTsP0j7!tuy ;ى1ͅ,MCf4#F򻱪H=蘯5,Mnvډ+G%xԭYpse xd2%"Sg52 252  ZS=C z[K@)(m-b4 ye'kᘉ )ß'oLGaAA fvHPBVlP'Ljhעq H_68>=NMXk c(MͰF jRX#0B[]4N{/?H;gBo>-4ID\oˏڿ5*@XBQ16b> stream x^Xn6W[$c{-)dRds$jf!".-VOy-Ιey-)\}]՛!X.؈X_M?}R38g+>?9ۉFL),ޛCZszr-ůjl +Z`:vˍl=5z>%|G֮fסuN$prؠDhF 2P Xq wNc]^%2ZamvmzGz;z1ߍv3r&7&'2 n9zW򑿬̜E|r^ R YSRhE(m0O{QCay=;g&l i*Ă` U$nEzɑG{1Z,E,-k aְ4Hku΀53{tE7v5!]XRI&8܌6\0Z`:6c7Ηr\a:N~P `%0Hoe}Iݛv"Vkh+=BJ3f0-B0RBn5Kh6K0d/l Wx/FX\Lldvjl:͕2_UPU5OxUk*j(/Y(1K5/AYVۀWS$qڵNNͷ (>pְj!)[ bc)VSBbR6CjO‘Vmړ\2%gf"Dvܹmu+=$=(%z%sїTos7_6e&1SE*]&S^cE3E3j/Pd R˺D0^>VF[L imA k)î XJZK+Υ2bPVKp*z{w%K\\!cX1#'Ö~Rdj>0 |> stream x^O5)Hk\+D!doCHB ,AgݛI$j7nۯsm//A^f1 9/?,xfOUッwy!Vsa ѵRs[\J :<>\1#clR~ ژu~9Ţ .V\)v|F]_1ӗޕ\><|wyxωF'69v$qy{)j,}*tBuo3#1X솾F-}D,̠Sxc7"bS+,ƾB--!j?UmYv߲穤,YsFLc'*#)!Mh]T4j@'u*X^B 7UۧLc'.R*[Y\ %xK [6r[PC?ģãOγVS>gV])e9YfükJCW6=/n1ʕ NZCEI#'Uua;lZΑ yLFd2͎gLZC*V:vT,xUgc LewT6x2oQyU*1Jq1ED&x#2&gaKԎ4rB'l[,z 6˦"[;0jb&3m^$wNƷ]ՙ~k6[JG9 wWQYI%/*{yǛ}O~Zo^mNJcϢ/%N^"Tk},h|Eaw%{αW_c jM-E9c&cG0"fWKY#՘qM.ΚY]shui{4WӔx|X߲rz~HvJE7@&fq|Wi}jZJc>M ØPDWMh \kk@`3~uc&BXȋ2+.!Ҿt [M PE5BmxmV!FƼVi:Zm#Bj4(*p r b9J^"Cy :JD;I3G4MLD1fרGtV @ %8q$<(E>ilfNB6OVYqaμ$,MuLT.`QV+~f- !)cZgU?IuD*>)*a+55*͑(nZ~/e d#țzy<8\Րp5HnZnF"hS# F!KDulV0\x?vG%dŒ(ȌP/ }@-g@ 1 |Θ`k(2PVBJmUֆ Sk-tE]Z2 C5ыquq k,&iVd-Jb10Zk(:A@)PzI'0)|GMQ)B ث);H;וͅGWZܪRT$<#+Oj>l0C;^:@Bר@JHH4B5bjx>*l~@y{iMAl~ɤkuŦX$`(Y8^vX-O~|um$L5 kac䔩z2)zeY=  WUCdȂrWM\E) 6& N XĘV0sڨX"%w84n5בq@\-,j ¬(TA #R`yq**ihyvoS׆=:{9臘{WWg^EwX{i-H endstream endobj 70 0 obj <> stream x^uT۶> ;Z wA[.E[qϹ72"kzyߐ(*  0=3@VN dm`B4u2001! Q0 6(|,@`  T\m* 0Ûhcjn~sٺڛ`鏷0@`i01H31AoBs`432L*@uWe1%eWEejʎ "U *$"$*yUڼ7ȫy3.'"(gfm2?\MA%P< `)_T {Kۻ= Wam 6ϩd͍6?N⠿o|sz ?168/_YEEY hc`cf6;:=ƔDOJ/ i[{83qtp@6`#&V?_29!y)q1ez7ˁުcve',`z# Ÿ򉚿 weĶ9۸?&6&joh(% M0v㟄变R [`3'FvA+  ɿTNZOA6Vc <F :w7RboCks+6_&j?sJdom`t.@cEsߥ{R`7 ٘Zߎ/?-eFcg|9,m6TQeS?xr_4h/'fc261s \޸pg~#1/l@7#`GsܜF?Vl,o7wh[ƿ*hbFEabr',; ho3ӛ%3?F?o@6$`{35xV@p%{{Oomv2lo2w-4,oٸn@}_ ?w2Me=fn&r`{s-b~=I3[XNgzۨbff/_g_>Yt h0 2`\T%;^򞜛 _]:z!uG4kP Ϸ'"$+ɣkSNiژP>veEpK YLh8S_ܼOI'}Bɴ&"HWԋO%M1\?ϏB_1# hsal;wt?L`kv  /dDžZgtәCgCDN(D"O˂=`#wxq6\6.`op. V|yP^} { #&" o~y;!eJ8Ǥ*e4EWRd`H7i"ə0ܯ_Tgk)z(icq0(R$5`-5&#yL28?&%8}k-Њ0…瑱$JSK{|Xn YWŚ2xMK|Ee&?$mVL.j9SI%c[uٱeeg?y iLWlIA=5\x!u0tDaG"F7âI5b8dv3iEyW Є-#zȾyG9˗x24clM~br~/'*{1?S0VH~0B~8` ]Ɓ =9^Hpo2I\h b+ dHEFpgcF:|52K| wjR" a?!R־Ǯf&dy\3Sy!&%S .IΟMnd!\q/ ̃GKo:n.SAR &po`UE7C3QZ| DE | T'(JV=SuGv=l-0\ `LYW?75/xOZ9t<< pq$J,PSmghp傁j:ه5֜ӱ}%0[( 1߃v9Y9h"?9C:(,_N(9.Ɵ/!Uîhdy@ݸqOO{i@62o\htwHn7(~|j1ZoQ5X9mmxR5ƵDboo;)ӭ)MNq;M5Otѓ=)OV^ h7!K䒹NI;\9fPwS}[EG S@h%a'^M/o.\I0v+?99= 9/RUR.'Qwxpqگ_Z90*T[+ĽߝVS1V].e?Nn'~GGF]U MF>u?|[rLIZEi * .K3I\xC_sFBVctgR ѰRHq$ԢmWdByTRG\[Mkēf)T>0>Qc݊OWmπ_]kkSXdǘ,*F_OW$ԉHg!}=|h|j(Lk4.IjԱGK;:9:":&4cFyG8~}K#a^cF:S9q::6)R_{|dl }-4zQ\3wlBK96k`iuCko\ht+pӖ‹ɫr5 tq+̳kABV69KٝcK;r}2iD^Rj,*I~+ CcUѝEЮ U ֔sj1jl3لtjO ݙez"#{s3ut{c``n2GE(k4oF`F$A 䜤nެ++Y^\ȍ?O1vVVEYFnQW 0yjB E7- P_ ,W}pT3M3C<#'\&A ղOTltz:5rqq! ɛ׎ݰ7(ebPa1F^2@藈"~z^pXQ6eenBE kUVX) ']*LmvVTalf>QC3>szX!U1J _$.[prxEƄI Kr]?IP 9+U'bL~Zy:TN:lUV<_oFH#}IUKiGJ\ή$D7^_gN Gw=/V{#f$-%;rya&kg'ς|T9^P[s b6tTٜoڃYP:\to&L=aUsW4ImSiuD]]a3dDuO i|FGO*ǾYӐa6txS3}!qND0ϦG~9+x+D's?5A0+@w13A.S%'Z c*lft"(3GM+A36j>;Tzph'p(N{Z't,4sZ; >m-k@;Vc5~U5*Fɋq;u[sч][ &,-D+N ~ڨأ6Cs2B&% ۮU!."^8<_45S,+<ƢbZ=pM^+Cgcdg7TM1S <6C$lc%bS(%س#ҪHlݻEF5q( yisCi~닮a(I66)RQj4HJLK5@uzP)D1b*6WiFD/0m&PzͭcY .~LoX8ԏo-,K~/>)1lRcxRIQF"q`!4Ԏ  f 2;1|.Q}}[%LxtLĊS{Ý}[ʮjh!ZuJ\0n_g0{!W7^Ihxdx,$"ڽǎpCxL`66/;La woJGS&dXk?%IaXUgf_A. Pe׭R#~QvY)-?cx(MRjдċV7&6뗜گ)||0ZI`q{hgDb4[݁MM\Cbϕ.p$8x.er[ DѨce _sZA8̙wP!,Yfv$'NR҇IP6A#'CeUڄH_T5JRU|d%TݝBj#T,sN:4EĴ;ފSǀ $ SM/pS~&̝'vl'z !W f *)-/p(q$4w/TީHtOT2Es&BϢ\V^mKahab^vİ mQ{ٿLuyz\G*1/%{7 )+E:>BO[Fyw?A{3&)F1eUPEY9nwKoD2pܵTWVD%Clj`~UWjksL)h~q6"dۀoLO]eZ_0(wgԴZR7(;7~3]14ig=65[T9[h2#l sO{Iϵ-16P\ +CnRɆ_>Sr1 >aeՓGqKqU>ٕ|XR棚تlb]T߂_UH|]B]?I~vpCJIrrUu%>jFe>p+B Mשa-4N-8}kKPet)@a<0rtrO˘?dDƇ }U?+pڒi e7 WhjFތ~MκB]DO'[7pĠs oFi->ZFfPcˡ:T#Ñ7VyAƎ33TJnӎmSD"qAć+ą" ]"1ryK0*DPh6 4Kx3B'ctl2u{xN~E[uo>=qs@l-bHAЫTpD91ó(+R’Jۘrq싑+[?zs@cKs)'}=N_3 Rŭ؃x,<=xI3 WnHk^JϗdZ o>8YjO\pXG·sBK$1-\loQN{85 ~_;,>=hS,$d:/Z~db I*+%{b4stѲOK^.Fxa=V4Kɲ/6"k !sL2^="Iu safo1dd{ZrD!q@z3I&0>gm9dD\:cLT鐥!ֆVHkRJB_nbɬj`r`+9I!\ /OItfFq1Z  soW?psXQ_t˶.wg2e%a*oId }R8Yhd)1vvHR/[X;U5>EgEbZlVM$N~s88ɢjatOS5 (c՞=YBWNϻ4þ ڝO!XxT6v"ߵmq?crCVi!Jl/SQ;>U 9Q6Bɻ']N9YwIW|i,,5N1p6wynbP>C+~iW%ִ\(sd~sjZ<I2Vׅ%&+b#tҸa$L&$v; ؂C~9tѼ^n9԰t)3lr%&ﺝn&(D S/K EȔ딥cXU}y93XHQaLcuS6gNflc> ~9(#kq e85%>5%|EBJٲ 0{#W6U˺^~L}4=tB.1pn  |J.|vcKIě_Ђ=i6Sˠ~Kt,ز{ˎ#x!\1hT?>ZU"Iiɚf#ìu|8Ϟ+D]?ƙ#g >tֱ4si6c(Ĩ0nd>xRe6Ձͯ$[ZaA骹}KH"$ښx,`)6'Fy9 /gV -(ϿGrwEQ5g58}Ș54;jI6Xjl9*>]'b_OS^W],kow VLh3Zd6j_G$M*y&ZXHݰw9C6 #.|#D <3t^X+ Y?󵰠vv;0N9 c>6^q7SO)JxҺ;I^]_{__GD&JMw6"QF>q+^b0WV"inDž/Ocmjs+lވL(8bX'ۯL#Do9sdFLjjGZoP ͥ\ h&~^Ǚ2RҔ>;uP;IKP5+t/wAQ%S^8R:S5!Ed2Nv[~c|L;Ȋ8"Ά: ,"m"D2Dv`rodw:M8Z]}`}orGj,a- mfalx{臤)zK{Iip3;u{iCsG!XDLaLAj}FNfn ?YT_-FcoVw ~oR(_c/\"eMeڟX+'tÊȐL[կƪ>t CHj‰gGpzF-USԢ=cYCz~HI& #c[/.Bpvqx4 Zis돮Ym~ SdQy9܃ſ~dP\p8̶KMW_EڂtcPcn6Ni>9v:Z٥qzⵐdA4o2cH%> )׊1}&h>|$wFp{ %GkvjrXg.xͅpN>CU>gމMs4qFo?*H0A3DTc5vmO%dmdH'q,ek ~s׏J1)%GP7[5KfK_yQ)/(RI]=@ɫ1NvVPƱl1o i!9~JՂq.m<%Ѫ Ao/j>\Mh[u@1z6arK)k&:sYԩx'|T =Ќϐcs%#6үNɼQ &D:ND@clXq]o.IV I`a"gfwD{ULK#ybty3:c9+e؃K*ЯmR;].X/_D-+0Q۰ұ9Q}{TڛEn8XNFΏTArAyRA{'f;-W?q`c:RQ G 1ʈRw27&ήM'l+r%29#RRZi 9f3|XaW~ R~p x`4WHErͷRfݼ}{%dAϊw^)-ĐV0Zi78~W$Õ߹]ҎYN"(B0[\[lii=A >]X,)AwYt]OWMTxucy:Hxg+|(&TPIXy! ܠ^Zo0#PXg"Aڽ[ aTx1&qsSvKbZ{|3$|WÀmum=)5# u&wP + .סƱ\jW\^Lq$**i5Ssٙ^/L屏ϴȮhK^e?hqQSX8HsI@G5k{ 3OG ^pOS1av2jDǎ'_T)?2sBN[۷Wi|!eDSax.JL0GQ,b VxUv3 =OF7wmD6'< 湧*n 5VB;] ƫ<|xek&#@Z&` QPWI>jMz(|]A~RzɎ˶~*Ȣ U7!^{aUsq ob1Y~ռUf'}G`_lOcQLֈ>r'\N|E;+NN^s|%`D%ʬ08~jA}ڽ,g~aycyw?ǀI-h5T9YQ[z gtFU+p9K~+葋Ez3 oud[lOxea\|sv}6A?gȧIls- !d1,a/NܴcBX A . '>>%e4%z)žRuyoH`FTcHϖ& ,(uO+#+< G{t,mrT҄y0Cv < 4wל~ g6Pon! <~-H;/-Bgyq}Lje:c2z/6V'xx ՟xVb80\6ZTAe赦3`v}k]jz#U\Dr HgJ2ͭ=;c{$%yD4۝aZ=v)F,&wI2Љ[G^xvЭ1_!4&z,eLXxwj|ZQ5/I ]6t41N'*2{juAף:Vقtj{Z<{8>ZPTѴ/Ym]HF IQ^ Jml/|"*% nܴR{}{A`uC.G'%t+!\Ve͏ɗ>#3gcUyJf<١(a;%hnG@rƷ@\*-8p.׷dklӨ疭fp1-4)W.{EV( L<|qOvT z5#])LMq}2 å(BY@W0)$AvTS%wf/ikOCB0s4H %Џ2S;t^SR3{,MJTw4ſ;Crȃ.DT(ޑZRIU%ah&U.E-7a'%վv/JmK)~--H)Eo̗e,ރyl!g'HlHs<9D_1-h!4mX<5!vY3aZ aQͳc;uthO'!^,0Z"^͚E{~HS}!)~}˭=Zal)l@j V5̦&'lX|pi4(rC7~<xf mZW%r u vYE G-i(KwD hyY^].mo>F1:1&;UͲ/Iq~T݆Ha7?#T>xL㬫'`>g?JݜUfdh2CړRWm!e,}vŴtm&*f,ڌ=zB2phPDCgR]EvQ`vSw܏:R?p{`x>kw Ֆ? )K LP0#sgzOYvFxXCJ@Yq+?3qNQ jb$飉I;d<8?'^}Zcr3\WՎZ}Yp<5= \*|U-+@3ew$ $zA{\bdZ3z;UEQF$]}= IXŒt;e`S?L` ʢj0}vH|9Taȁ~iCbƚo7\:zd#Sk+ M)x%Bc!1_q^\'$u{Sd͞GL ;,M3^ͺ ` PUI >:V 5Kjƿg'``*CVd(h԰yGNt\`ܫVAw]1.1jzk) mS8қn'7l 7[nnk69U$BvYFsz)|Udeaݳ#w,$)r'ZH]pCY@ӳ )Yc 3I:#ug ȋ€CS˫}=ֵu&e%/1s 1'w3\ 34@دN?ߊ1"DuM-cs#v .|WN\==گ %emL^ńn|JeD;j:Kp3ZyG,}sx kp.NIG%Kxnj5h6obq(D;mM8 N+K{ 4%3Ԗe"-:Glvlm#!3 1%􈒫"R)şJi(bvy.j].F__=O}܎cwB Gsy}ih?Ɛi ۘ-e`MB?z*^lqh\{nk$j$^@[TQ)1?+N*]6` g!.,y$NImՅTlTUoe᯺z<4Re:QPX|c6ƌ!<8-k]V ybS5J%ļ" muhthcw#kĬQ^'*œ] .竐v {@sdڳ#" 33oY#Żai(~мB*_1~oVm~%'00m*PKy`0j jܳ>]N* 5*.OI8bޞB÷,B @VOWӚ)~ @~&`%$+fo~@څt>k1>v+ N*ѫ(yִβ~$|z}s OH40c"^2Oۘ'rʬĴ ;UrкKj=$1,VOa_JV]:EfJcͦQ$wl#١˝Q/ZyPJq ]Z$p \=]q мF|z-㒖Ò&SY$v!Mڒ}Tݏ:v [D@9LFdHȷa '[c9 E RMpT( v %.!vZL wȇ ?">+(ZY#t!jsTJRU1o,xʼY}]Q EN8A?Wޅۮ'Hoc*m a9+AV%?IfV(؀lL.V#W$m&gr]ו[XkVsU9 @+#]' @SC.ѢZ*ʒVNds/;|2ȕcqM# :۪)WѾXfgE$۝{3*R+9W+GiF` +HKR t䑗RYDgA4N4ǭK۝D/u]P9'G׵to7YBFL?TM"eb! Mc!%K@'[G*%`¨ZH튫џר[FS,X:kK2Lٯ JGCFbb]$ckr蛴}oOB`iU[3%֜( J9IT2W2ɵ9̯C*U17E:b\/lWiz*R|7#3kev14'IVc Yx0vXԏ}[ݏ `hPq/Xx83ނ: Ce1,~l\(s3?# BeCD$z @G\Än6&upOUlAqAⵙ.GeWשKzƦ ؖȍ4ʻH(%nV%!XCoc\R5bxf\jkQ*5t)+cWD Iϗ^hhA32!*OjZ׸O9l;_fbOm:hkI[R>&jAd!%ImKTݯ\HB F d p @(HjVa~b(1ҁ:-7}WlSE]F]5mpzbE'i:ao CY!ֳq7֗%y-` 9q"k}#`,.hrJP;ҨWOD#F|wG|OvYV="Cb^9)Di`>r!thnG59Qv^b~)"1S7 mU9RAho{iy: . NVi"~5#Z:Blu&lM. ~*с{W(\ͨ뮄Tm=3ܿ~AѪ=>s*տtd Aw3׽yf%9IH$+=_2O V[!mUgƌ'*RGNJrXk+U4 ?Ĩ_=?&}! ?+SD7+zv5")a HNM K SI9"9&ފ˘)gJ?"nja7-{o2S+ ȵh|Wkk 6E IҐ?:cd~..u~WVLԩq|{MYXl D7zZ|<˱\/c`h= ؟rvCK_𸫺Be}T,`hEt~-}kXh\^_8r@Ks,B{Dbħ'}h8sǣ9 RnuoWN!ؿTn+ҩ[6PoQB'Lj5JO>}ݜOoZEnin4L]I1Nf-]!( iV43wyаSh[r@njemYHe6Pk~\$dc%rsCٜ8&'y~NnBNSA2*Q96 kF-q;C=ҳ~ghj5?P%H^9̘rv-uF[>ͨ26a6܂m@E"Gͭ2֘&7}Y 4|{X ppq}Jꃷr)\qu-ެn}9#A˽fÖ p{m CL0Uu۱E]J6u֋:gMC@N3 0H`#:l2L7PkgcWjM M ~-4B1@~FFY9A3Vͅ@NU:'\N/,cq Lޗmiϸl?38xιQ4y {ni= `_>7P'[nG t8˳a,.Vk;cH@4qS~]B*80Ln}ˊ,Sm%.GjL 7)2K+X k5"B{&hR> ?LzlS),^lQDt ׊dK'h0fZ,XrL'N71iuX2jz=64PiJp0EWHO{'&Cǟfޕm꼍6cuf3Iff1l'L=jpq#o˔ \7c- ՞Tn ܪ6\k 3gLԨ!?A+ɿkkXZx#ނЅ |]FU r|K C`'d JFPJZܬ Bs Xh:#Y_-n_)vH]?_O2AWdQ|bg~9ݦmrjr f1?~@ϥǦAEfbuK^ar J]Sgt/y' Ui,N&kvz;k,5•?Jv_sdQ _f>Zw5 {l5¾i۟{[h8ի-t4ǚ)~4vlȟ23s#iӬHt Eb]ͨ4 /Q6od3J7 MA`p߹:*VMX1iđygA13Rk`M|!2hr}T p"F?c QIdd DнuuУdz|oKdr&RqrLi 9rRt<.Llu J W}(⏠?bAB^?{\u]bۍW9=#z&91 -(e9I7zb~b3- 'N5B7>&Q=)zԇ-5fNfI*GתsMЏs'~hcogZ,lvx˲{v`n, |X3qG[ )㖜߆T=|]w}k@!Yd6up%$fqe !+\eꊔ \ ??$-A\WGvOՙ 4z;_Xp[Eq _tT]X*V\[}CF_@U 葻ps3~(@ qjqMuzj'0EN`Fx05A;uqO $ I h|:N?4v};jvfe!8nVM}°\ݧtV3RXKLLE:3 ݆9PR ͘xq`f IԺ/D}`Kmm@&Y r`_^dl$ҀG6G-#ޠ;r3*E=7A .&{ȃKA yt#hv֠\/$TOkygc3ך^cͦv8D?E,Lj5d$S29g0%F8e.۪s =1*ȡwH~%QEG?RSr)'wQEApB.JA^4ZrO)a +kQpG_ `oSH.Z8coB}I0_/QIajdF31j_o6E$ȍnd:r9=feF50_OV%S/Pk,<)8*| gEgIkϫT+m?uk+wJO?huBLx?=4 9rx/,PK]c7#UZ>:k`RF#S )VEƌ} Iȴy0sLHj؞ $;,d=k/KS)O F#+cPiKtlۦA` ? SqUu)1xJ!u}\-{F;:>'P2rO:Nj'B1jퟷYBi%՛fYng:W@iT-›2iD;mve)x|i&‡Z6 (k ]$_̀2N]>*{mX$L) *4wM>ٱ%~~?pA&^UFue՗U>+!}'iuWWY$t*LѻxmX v AB| AD[{=c]cUn;yHX'3+ŘfC2`os g3HH6  m}7n.eNxr k8O>~!]P#%˥Vw,2¶<]K|< wVjr)xG#=%Y|o\ɡp`_=t,) h~XyqGBߓP a6QXMh߻Ih|V +y'ҷKz&=h)|Ҵ}ϴۮ61ʴ$jŖ%d-d(6R۔)FJu=0 *ԥ^dGKP9ʽ. 7ڊ}폴 4iF]zs&>OTH0s`4$}~IR{j.-`<[EY&4BFX=3pH7i5O?/+_іi6UsfzKg©?ʵ,C@!2J6v?mcM3ei1R78!l@)sUF}<(oy>HU m)gm݉6 4ex7=6DX FtOH ) p o|qDNΎhL+\z" j)w EȒM秜q@df3L39!?`ԥ则̡Z!0qf՞Wn} =l"/y¥IU}4b=nZ1YV}EDCQ56ot&oWt < wu(`Th]x0Ѻc2X(3?8m*ƒ2YCO8tbF`RTm͈?,|KJn4F^l 5ِ&I ~K n8r0=Ƕ<CA(Ć8[˫l[#gJS-hcX:{'/YNB_u6'6MdՍ ˆK߱{j"'Tb{hmQU`l[++**cv!O:!5̮:7=dHƛt 1xxÙI?s$+ oOExgXI;u*Tad+b }^ne#D1~X9xb]<[` >C_įWH R.AmCO8DPKJqIAyyŊޡeXT2х 7kq_( 70m4?_#&îFtx,ڣP /ufY˲Q4T;#RT٥ \qN:xۀ60tΑn#';( o7'88eeVtzyWׯ-ȋ~,@L A2ձ9 5ۉrq3CB> stream x^[n6+ae]mCCVp]SҐCV+^dr>׿&3icU\2qyzgvO ?7|z>c[bBhoQ\G]xuI6heuXSP/K]9ۭ-ާ3LL:{lV.h>W-RG@[ dۭ*4/s7Ka[Gɋ_Bu;֡wJVa:^g(h>?}WC([6vyԿYJ &e]Dul:LMɜfrx{ l#oL#rY;#\k!װ{ ϴ>FL3vt62XЋ{Fv'7_kF#+r8{V0SEA.-3,X$i xv/S}6BkrɃ9H)Z%L9H·{s8 LbW )ʞexZMH[=ӬH9 p|CAǡNM!`O*x*=]#$-)f1\#Ҽۙ[ 2kj_5=W Jkl3~lW0\+?0ؼRQGfIE 5&*k"pjQ3޻sy"ADr/)/ky*΍r uޑa? F7;ⳏFw֢UfusVa2!uIN0OA@tꡓ*}7xW)Vx~:x R*7EdYa@/-W*@p;!u)o;,VPRJ RpeZ^0. _U;L7 5cv;],kU@fS5o#d ]j!%e6&b0ykٛ֬98\8]39)SU :6YA#|,"tJyQ42_<'c >;[ +:厕u'V.@meݤ5% ۣe6^)9 n7lKZ7r 9SznPQGA+dp֫C3]9Mr-5º ;rrG[7)s BCdlR1J_i:(%^BG\| m5C^ONSjP+:h{"ʩTh抢rtR+x aS-}[)0e0tR|p ]8H%!u R;;{N&wK#: bQ UҪM\AvBI."8{19eg!JZ| `{y8T387:끟SP0Ӳr*O&$ŵ0~(8#Q*rSe04c僽nh1x6-Kwpi؃f11di {"Y%DLF:rM]N)qjy@ܹ,N\{8B%69P܈=DcunN)`;厳-MHږ&_&q!33vV2Q0Rw9D'qJPa+osE %&uNf])dN+֬-d#n܀+elnh=Բnn9ɺMnkޛuZ7y endstream endobj 75 0 obj <> stream x^Komq9řxxO6` % $~$vVyC+1 H$ZzSݹӷ}ܟ:a;2ݾ_N?/O{ ^f?s4NaS<<:>yp:4MSw^ulMy~=OoO~uɲ7۹_yf5گFak} <8xo?ד8kku~NuKO}e;}GC x7?_vEuݯ|]ۯ˯oO}^xWE]`i8C_zڝe/۰Ǽ7yp^qG+f{S>eV}>(-"~(Əo<{a~?d.+nO\Ip 4-nq/;G&}}/;ߟoLyܧ;a x78z0;^w[Wf)3Dzy;k㇩_x yq o;ymxO;iy5O6#'>+6ngmލ%';{xU,,*}o\5Sa~XbXf1 pm7f$\adBsqo0֏tH\m>pN1\n{m8_>xI;3^MBa'\e慀O]ö nFwXV:7unɤs8iڌ[\#ba!%Fޥ۶G-iEbXiu"HޛA_psxUIG%nF,p{7uɞw#ݨۙu->X)}"#Zxj|2ஷ++:?7BWIjD'/eR'> L[n'zNu bi#.qNp_#nSVq>vsD骍kwĻ~'<~wŕk|jX6W>;rޙcZGx‚'"r 6V)ZzNl>=-Ü'K%SzR;G#B%|2zװ43Dm{+e>>Hd}$/}ObvMv3=}hHGy%seq6|3}VVtZf(RpGqq8j 3> k 2z.qv^CXa +sW[˒uG1()˞X `7}i!kȥ~_UJrWSȳ37n>&vY|E7liBc6YƃFpVrxtcsNY&?)PCrоIiQe_=YY+5>6\~UgվI9ĻMLf=`% xbt~JxJbPGBuaP<.xy"Q+TZ3FCR:X2,@ڔ5cf l>LZ&#(زw`7t ub20-p}9##Hn\w)G< N^CX܌N.(¥qJ otgx6"oq?Wdj-0=ܝ6qXrA oWۡ)Ej>Z7Nێlx%0c MR0bέYJєtH*l>g!/XHoMQU0xO%U`sS)k7L8휺z;e>vh6u6I/[Ga 'D),Q~ ONb)%XgtQLK'}hł,1k<" >;9,g"!m,0蜉єw.BM.>!H##).+I/ћuw(0I'07pK$ Flxi1szӘ .Nr~a}1TS\y_%`LyIO#nL/4]r)~Zp4,+ad6 _ b^/YLtm]N,&#_>M+ Sq0?MAٿWLӾ,F\X[=a<6UZ^XӔҜ%(&ĎiƂi*$6!R"%o45Š'.43H-~&S莸;J%k?i2\hst: No%}EӲj9dVprw%MUjr,!YV) ɒ9$VI[xJb̃ZEz>T$2Q*c=жNSxQ£Kp Y\݋b!'|%qQYo xds@` UKTTMB\*#`3x /iЇ:VK,O!|DatTx:\'x*ďzpQY z<&^LH>8'aO-p&~k:xTR[u?)AR`hͪყAu=S%d9-SPQY*o:IeLv\AJIwHB<5ilϥV{1Q@šrH D/qY+^ϋS>] /=>$i=R>z.: %%LY|lzC_ƵrQp狆N[hsH(VZ!i#>l}m~zK#+!VRUpKbHtl_Z7U+ԾvV5(_E+^JT2%bUj4?Oc0]ȥd^싂 O8Yo(<)#=#MتZ"gZ}u |Rx X /_^/:vdɩ/Z͓&镺ipTVmg[Js, *$uH+%I #[ߤ!%OH/ZX+A|Fӌxh/jCOϣlG`t'&i՘zȂ~'"ͅ$qzrguЪ) LHN/;)ĠʛC ^_/ҥt `]1\0^,;7?#aeD`T:ԭ APJjA`A2@ =mJ$}'G{IU%,ic5t)c%ֺ2"kl]]85$i6K *SNČ>HmGz&d# 5DhێGxg.Qs `f!Yit9$8,Up7>*{de4Js#Ъu[j *wR_# ˊ:{OBjT5&rVҿ6[# ᅝqdƼ-Y^[M!uѤb4R=d8 ;[q')>iz~B69r:H a4$޼u4F|? GbPOL;¼$@̓ iU^ςˡy2}#BaRMRQ* 9&84_Z i$s.8 Iai.dT~\Db뻋r)[%yu<e(%r2JĹfg&}YS/5%5Ғ N>!T*/RW?yjKIӈ=An.zSWV_=~ S[4Ka*ѣRieU(0qk‰v/4Qv]]'n3ʡRP'K;)Gd:Y'i\W/Q^V+i)ýSp25=ĝG5 F$oXqDC3%նMAs8+&x\(wg'lіˋM:Ȫ#HLTk ija3>-j%[hVV0,MfXַz E6RmR2q=Pj;pFN9Ȟc/A 0)9/4%u\Ɋ#a[RuDxD ;y^^ѷ7on2_Q+?OUe endstream endobj 79 0 obj <> stream x^ŝK%q+;I0<$NJla0[uke =}W'Y}ۿ߆ϟ雟->innOy/{oSozӿ ø ag~߿//P5o Oqzߨ47Yat%DSnqRnn-eY.o'k~<ʴmyX]Q 1L?,O oc҇D)ae=IC\>vXci/}HZ%?qd^+h^}1iU䈯ىu]TݹmR?tܖnx@gLy5{ Ԑ|r 2gYb*f#x_-9̪5Yf5ެ>5{peٓضeT\?&4o棒2 sү42bj Nuv:\w4Ԙ4uگG[S뛬=9[.kXㇶ3v7P^fuei+tayU$0s˴ilq,1mq۪Yh[^۾nHfؾ.]PLf^u?kv-8_O>oDf'}\piOiqKѢbw!nMTHY\⸔aE^6` +.j3tjLTvW1YyNj]*AsTC7lKf%x!|~Ȟ>c.}ݰ}c]75udy+Y9=O5ǏVJl3?b`NbfkFӔ `/e5QEkßoz2Y$*d"sj!ԸB  -8ecvʜ؅)Ny$E Q-kCRW'?a?l!v4$GPC (30Oeu$Q;,pzc{m ;r&"2vӰы? wQROf}iKڮM h<*ry̢f&EWBZ uGN7~{RO?ۧqynCu>21ӿz3ǝn,.Ώ#vǏ iᰎsq]D1u/MWF}f/i:lOK;eorl/ϬazOx_aƏ"WR@yLG~[Ӿxs>m>~vdy}j3{CZ^'dZx45mC^z'@zWA<2$ q䐻ͼ?~j㡙9_1So?WpL La?!=|i9޶6NiToM~߲eXn|-yo ^f\{4N[U'CմL|'hynk@t{nRerpKϣF2RGFɄ݌'SN|q2[Q)oO<)Sy{L^ö)o)?O<⊏Xi w{2oOVl &7?30oˤ_hX-]={9 ȔySR7'.~עXsHE~9U0iCǷ6^[O._e;beb C=v>b(~OLų^ Sw}ɉ,dOOG=0+7b .Z8)Y GchdAu˕3ZNdѾ.q{>#^9c$ s1!nF91Ho4irޫw8* '݃\s/gCѕL~lNκZImK;bK;x+- GJN ruR ؃q,a8τ+up =׹ubѿ"]"߉,`PI10!kχK#]=t{GkuC!VΦ%D3$Xnϰq|t0J)}lI׆D"#$D,x835Jd_]P4O@aWJ(guGѥ5("0b3ɒHhS4:JIqaAn7[*kZ P^?<5lt |L?bbx Qw( G "},+1UX|ǒB݅#Cp(V+<ZC QG.WbGRp8\} : zͦdHea| vz@ +l,y241 eP*!J~o$VBJ`BwViD[!(!T{m d"/]4s|XA`Am =@8 ^pX $K@L+iѡ,T@Na?0'&EZ]) dKeS $eYn;#[ؤk[$ s eDU,q OR}cո<ē`Kz2#CE_/5cc fb.ma )&.J@ g-( ]B*>âIa":u|K%4Q$;-&],pf)E8+݆DE NjS+ frk5][&P }[3fX? 6}ͻjw*Y76X4G B5Ztx) eX48wE``x@J 6ث@35j*F{Q7fE^Ʀӊ`$_e$^|@+:/PB$8q"Ԡ39!X4i]qa!1vrp3Nr 5VkC>ËКP20yK!._h ]R0 `{#M $F#VyְHC5Z ,+Aױx„xψ/AYB=eaBI(5x0ahhGF4[;7h\Z*=P~Xj.`t"1pC04t}Y"yQ"-"e1E rbD8!ѵg6}P IÄ [{A9&ۂE_08@]m9 ,LH4gq} AڒlQ3kp|LI„ y^sy)صr 3 _ŗ[/de?ʛ"zδ4ް.vw$A yl[J}q&/]:.)x9ρ騭 4H*⣍OdXŎ旴GH}"lf<6@.]{S7]|#\0to6 +W7L{# U{H/̵7hA\ʹF ko#.@d#hڛ0r=*ؤ 0l ]@< *HJFꍻbQIYۮ8뒧A*LPd@FioN$е7w lQ*е7gA~@Ww!F*{#.Qݫ oތ on9t ,[A(t7IǛ{12rC!e/u7.nr`o%]wH:aA謀.ȱUQq0WL:An5#-nrT7de6 V^nI>Q0vtэ@MnWnhq\0Fe9ܧb~7sCQkn|. h@U4ɍ0`yInr}InniWcKX2)n l4 g{fɢ?ftF3-$g 4 sef`?JQ-uE$SPWE*C:ݪaeE]o#te[Yۀ,砼mtC \PW-ԪESe]mJƜ·eOAW6ZrojnU lTjjP"#3݇FSimjPdjP 4[QS(MҺ6V/j 6$8amDFc:W\TEFIt섍mU &md.,zZ@ۀb7I*mP ^]`;ElPC*RԵ6]j.!A1Or &Hǝ&$5RPF(8R@jϸPKPAڀnl{3.3#"Fu.,:OεJـJB c:]+MS7 (Q(T6q|ی5`UeJlJ>шqsG娫l@`UـJ/@r(*,Rh"16,nNھlJxBMd [D6j4`&U`AuOj\d:ak\d+hـ}D6 a'KǚFW0d5KI؀֝46 #צaݰDR56ZMu{Np{^il@mi-G.Xd*hPu":4װ†M^O5ykrBo=k:k)kKl kt(EE^Cأ67M^J&3&ql@M^#Cʾ6,t5jUAM^C5V5: F9\fkt;F;OSȐ{MVq v&u-Dw.:+Qi})P}u7um ;!֚kkudzMء]Q&C[xRáD*RVn>5IFhU7MZS>y.]ژKk!y0Pei2 ѕ7yHk0\{m\#* ,!d?t5ؙXe5XISjIՀ\my,Mj0(tYemZF< d!kOfUU CU9d?T5^HoCSՀ7Il r9VMT=ƚˌeI9صՀ,'ujt&ٌ5Q Ytu!)*D)sQ,/ {55C G#}h.Ц+ZMSuMbV55Ӆ!ˀ Ͷ945d2y3YR5:L{Y44k-xUO<42r+W_`% UCN ,69 |!Qx11U|Q@իT92~TzvvAb{\YkQppIyzլLS -VQsF5*MUdCV[?Ǧju#Ŷ7]nL~5MX#ۧ kJdaSÈ W(֏|)mŽpQb,YrS(rpAaj)]5RP/[M`ؓ6A(.j5MaCGYkX:Mc/\iMdhԟ1Ce-1V6}®ї-8+]h@y \6lk -V~F^eMk{irUl ׺'l/2!N]Y x9͏fV so?i폖'^hLq~B_=D*#7c$xXk endstream endobj 87 0 obj <> stream x^Xn7+fe-nO KtH.*dOdH1QϐbgsOц}Nß7)\+b͗>Cs.b%b'>82 ~p2y|vp}skmpEl\DCkl a{$1G[q]-lKM{c'K%_7daHv5\ ٝi1c?/Bn\yQAVSVm];\H$ΚgoXq}3KtE ;^7 +%NAgKUEΝɂB(nPۃҤ(GHr0'4v<bv+jq&>Ȓ00;R}!vq{\nXsH‘&vFlWՄ#ש>YR~=B^)Zu^ҷ_Ii43i_dlAy0ıآ!7Q&vx |<"3K|6'0#o|85zݭNΌ\0cCݎP+@3;c%dwEX<'yhZ;-EZzbz1β4(ysT(2Mi+sd8zYk8jhjCjAEU|Tls&!'XTldTIN?;wƫOdܕ@ vR  IV$O(Yfg:(ʁPi*OlVE7(8( e7dD>U4h ]{BaԺEq9 X[p̩l1 mH[›f}T;{XU+{а! Ѧ{ {(>/k1s8k[|Ɛŭ"u~Rt(+ŵots( &pH m[,p*[d8l6IdZ3UN]ڬi R/pftGZǵ*c-s5ƽ m5raY;-`M O " 0cxxcE}G$9Q4+0PEg//mhXtR;QhY>Y}WX endstream endobj 96 0 obj <> stream x^WM b$HJJ=ϭ=_GI6e&?WP)hcs(yY>ϓv.85 76"*"){iޗ(La\S~pp{{?-dߺ3nܒ-B`-/D2rr^KC=`B+yr+,Xv# 2U{h|BO'): :Rl`R0N{$ʃ`~En4q$ʪ|Gr5:ri^C.~SEQ1 )32Z{6=Ap/7juT]NA[1t`yMYcu-@iyÑW"0QKJ\S.UUXPB ؊qyك4+qE lj\SK[d(uuK[qe\ƖqB*7)kHiʹSaF#eqAd12 zd8)RBY M'/C+Uzr\&V!Pr<N~cpJ=qCwY4V737,VLm$i+a]׭C٫@s#jJt?isa@T.a N \JGI)/*)E;o>en\ k@hןHFyΈk^<%O xX'#"X ': -[N4+LͫfvI]hYxַY7rSRVgϩV4z:@M촕ЌZ;n/L1]̭fѳژdUaJ^ C޷VzfIp!*'Kp]~ҕݞF.0n#pEkF nN5-I,l\{$6;HPT?Gp endstream endobj 106 0 obj <> stream x^Vn1 +H MͭoAN)K"~Jha$jIjHu9g~U[_oM1>[771Tlws>H;b" =VwMaF#+>(뜑U7z~}͗߫ Dd2Q>OW\F`EX:\)c\Qi+b}c䳠T+#INb1ugq 9Ǥv"i`_V endstream endobj 103 0 obj <> stream x^w\u7g{鍩`{,QHDbs&s  5=N-H#˖ǖl'ݕ os%JΪuvuu}O?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             H8}|KyO;v+Ֆ~8>&eOh#[q`e V+WPbDzPPV؋m/}u+(vW܁Kv} EּؗROGҺDVY(> 1by]qU7[ὁ- p?J~d/HHHrS>+3A;<P訿 Ahe6/-zWՔ (pmہ7%N^j뺠pWΘqJGwA g󫼷 "[WGg~e7%W"+]_wL G@rrS>^dm:s%$$:Z,3gr}&bStԬ~Ty.FȻ{В蚗P^kYnR:\Ϥi{S[׿!O"' Zdko!%[bDJqമzIbXw`Q}\@M #+U|HHHH,!MyKMy2ԧ +pZ<_"wY;3a]\LzuABkE]?OxC_zQHJA{G yC[7ѺMW%_2%IoZvŷ^5<.Fbz.[J~;Β L    併N}<)*3.Rll0r ID3u-z1vQ}^Rд|]'ubXm^SuA6Co|Knniݫ𴋳OhJw2>r"]Iz}r*}@\ޙ^8Fl!/b}xaq?p#A$@$@$@AͮIT'?*B}OK}S[3 F>|u(k֑ ":*^ вՖ ŋjk. FM_iC:M ׻ߠzyaxrϣk"ٞ!4cͯnP&yךe8oqN(%P/+_@ ,4:*Y +Y=sW[0|n   Oޛm6ᡚ!Էh+Hw&r;}ei7W̎͂poQ0 ho|$)hx"ԓ q 7x{p9/ӿA?f1EM O.}MK <$|+bXh; f|HHHHgGԩwy:h(N|:IZ8dd O;#ȱyÜae8 6 !g,_kJg;jJËOՆ7K+}C3҈^Q6 鮢+7$n<ɠ5eCki1V<,4HnV\=;#y/T]? > KvU*'XAd8{cd7F>v!L{]$eD;'eS3C-y?&%C{ \4vӯQ7>RoIp4xK'S𒇣_^1qŘ`WZ[2 -㳓 &pw^US q+:ʴ');g{7&wW0nux AeE{=6ۛ:mIolƷJ߲ݠ 8$ nЎ{l ;I,[4KxQ'ʫ-:R3(Hw/=-Wȟ)!sz{J~|_)~" Nx}*a?P`eC ćvj_ پUEmvohO$4kL-ǔhFvT]imlVmyanbZuqͮfl~uC*ཋ&juQzV,Ax@\˭p$g;X@?ݥy;KQ;79t$@$@$@$48ط6rEuF4յ6;OqwUɊ ̠f=WAJLg*޼h_b+^{4юN뉄&0D4!xf=Vt%6ޣ_I'!kkd w;"35 ̔uό zt7>,:rYKk\G%f7  OM]ÖYZ6}u>T[)LDhӁb:iqS/=x&ؼhGBa“vTԸk~E/іOvٯ$. f|Ձ4љO^/8S[2:8Ծ%ܾu0kw;;ԻޡQPjY"Q^Bo'A> @#G{a=j#F' :mFI1 [멮;B7iNZp H^f,<#׾g^DŽ='C-?PHh6Og/gTx%(@ƧV[2VZDF"e_UMjwwHm^թwi;9tշߗG~=bZ[HHHH~N~i/Cv?M٣vcV)zlV*")ϤEGzړ1"a=7{RvmL|J?'ϖuѸ6!yGI 3 {&j<Ɯ3bIޥwL*l_3|g"  x::/igءGDbLf7Obe6Ga)TO:i$ɤdf=[8Nah^[zD#~N;]tRQm) U_f5"_O<О^X IyC1V ל.ew>rΠws;~/b{W{yjEmFQ6r%qv'=V]8_i! 0W'NBBN& 6]pexu3<I4wޠTc49np1ni&cRZR?n-K˘ 󳒄q eޝ>][c}LIh|ȣ VnAeU; Ι]eB^x?z   sɓzYm×8K z#0 vcB? Zbi&df; 0n{$Qxjʓ, vUiGy >󔌏;bP/Nͥf:xN~t[c?lvewW_ ;;fQ2IAoSECaJ,MVH8MxYe[%I\:`|Mv4Ռ N5su - H)#1_,; M]ﹽw4}ޝzG]֭bju&0   s{ソٮ[oV }u#Vm1$=f:d\C;(v_s%Kj^ @g?nS=(c䝰&Ң=ݯRёs4v! ȬR׬ >q$d=Sdy Hq3⍉"e ԗJ/ U`CFFSz9齗)OTyC$@$@$vt4~댶;fG7j}* =#˕Nz˕*RSA‚P14|D9qEeAp(y1'[knz{'bnxڳŐcv^AB{)<)AȌwق DNr8eGS_UFV5ݦV!`^[j}_?GHHHr w߻qR;zp:>,Jz1B}<<3 /5)QӞL*RoŞ*5'D|$nXPh+v<JOT:{s=؛,4nDox]ԩz^*Aswf>vzQ={|FwxWOޒA{ϪpF8\ 3ndUz便G3+)v<|yζg+3O'r_ ;3l6{]f[aҰmh߃t.;L8y;\C^2-6 mƕ{@&UcK,q9>:MQK5nk3Db[\J:A1+qS!@oI4j=ެ||,A6RJǔw&CÃEmLy]G],4Ne%٥k[4_Vq(Le2?%N-MߙywB$@$@[y(vgaNe$Q%;&=ZM(vp JDGSNPglO3I3c%'%QڦMG.=JD|;Qmn^DV5=E,H^@oP}c6OJ꛱_ iJ*,^ :J5,{TTU8ȟY{zZNt_hGFw ;~KxaN}liÒ_G$@$@$@g#׎KmƠ>ÖyUJ]_Cn2HɏB)I:_VTzJ/ܓ;H9@AhJ@ h T.S u{祇YF;CoZO72٭ oöySΙ".3Q]Rf#oW.{˩wGs%?`{xgSbyՎWHHHcK,գN;cИKۆ/!LFD}kkY p:,1*>Id՝b^s@8n 3`w'5F%ҝFb).QXf$soF2VT'G'1t5'P'{ݍ/HV\p-?fQ11AQJ(MKb!x]sDeõ/?~$@$@$p6ҟf c4C{!lPw1A]<˰_:~VپYV(ESՃJvs‡PV`bI&ȧsƏiJ;@8%ڳwBa=uT;mƳ{!]qq4YSv^'ʰgW^ԸRF\ x{m 8ڪ2ec*Q%LHk!W#e|b!LLbLecqY=p NJ@KAڿ0C-1oY×h7?̈K#b嵔b@qw#2m@OUqPO_[2?">R!] ՝30DD{7vD5xϕ v<řǒ'Oy!ۖfK:{toǙ0Çkd.A.^o{cg_RG1G nWl3> R{0z};21&?ZD[GoY   ϞjdtT -[21iw]]1Rz fQc?L`z&i]vwbK/dȤEv"sRvB=@l|ަ/] !ZK"I3ld}n;nj<.iRz+3$l~7 O FlX׿io,U7Fg\nջwL__ [{ޭi 65ļӕ)OUw߻g_0D  8aW85-]jz\iu% ڠlGY#i #n5 iGć+CL(Xe: ^u;Lu09IiIF?=a,5燢[޻<,]k^ĕ'<ɔ(q=3]QhBrr%z$ h+#(ˆQ%jHB»,dQ>jtqh]Rkc'["kP5aMx:$UB*vwSUY@/#{ŗgBn"%yb o=yٻ.[FN<]WJXMBfwk!*³>u&{oYz:)t5'0qXi9gm"g.0]ܑ(Q2 m?Ek2Ldi} .6!;`6ƯM$@$@g)Ku_<[?q|`WuE]WD/_{wsս7Nm8~3buz2`_^u9*E6XbWzڽkO* 58 =Pfv40zIn!|Vmqc 8[٥Qa钷7 nq2DuϨNrDzU88: 7ae Ķ_|uKMZײؗ͗٩%sfxkK$aJX%; 19%\.kl zBƻ!aSHw4ޱWkO5s&  @_}soysP9|=\M=Ak@Vz贏쀧]EsŠ.>~„+f WM!.NM: hnM~,)!u/UHHv%QMh{U١9͗ˁ /+W0t@d$5!yYLen5<-C S_+t^E{2k'7;'kBRUzߞ3m&v#1246c .Jr<WY-u٦޵n$CNmF'51kS= GX7W-}C4yh (<зz+KG߁6{;D#;qvuDtir;-&Okؒb>jumԪڽkEPU;H POyfH*CnXӭV  Y(c_?p.4Hmsu܇~=JkPhuy}Aww\uo#b~DUQAn&g#hFt1ju;wƶl_=>(HmW&33TYrBK;_uMTYI74IVn&w{@>$ ȜJnzH8=.^)XD٤]U {@nB]sjL9꣧Ŀ$n9hH{U=q3ōw\OR ة nCRXw6;f1mY6.E͌{zꗿɠȟC> |~o/Q8^.^"*]/8XJ7}.=V?طg\}zP]v#7FPl2qiB;SQ< 9>t8d8ϑmc։b^B?RziuS(fBqnwMHQR ḂT9F=k Dxp Ϩz1$t{ZƯ9Ѻw 4hk-_M7)4©A5j̧͎t3\K:eKUpP&B:.&䎏"S^Cr#srtO%g`c.5ԫ.޽]ջ86UR"oQό&o_߿6je[ɏ   Hvn]dn=/*Z] ĝr==<5۠~n<vxۯ~XB:7NHԝsd5,: Qȕ]0'਩z~<ܸ`0{Ӆf P v33mGh$g b%dHjh4tMgIaɕU|]`TCG{kah/贯7ub]#:.ç"o֦vL"5tAB.v:D^WVkMu2J7KS[lfHH~;}с=v"2]a/r1R5.ui;zdJO]T2G8%\vh_z⫻.vWDi&>vQa˒kPظw/q]%Z=6ٲut SB=2Dyv\ }{ I@؟c]x^ua&-(k)gKG]2rԻdUPC2<)1{K9žx_iXCK37^敉 ~P]P!?x Iw/l%oMmڈS95"  jKϰ˄_TF񽘿EFJ]S]MskFzN[례|'/sDuLߎ~ƠǮbi:{`GR BB=!.ZWK2ZHԃ8ӌbl)q94֞;֨mh nUC頢wI- 1TcHw_q \񬤏di <캧%}َ)܄w6 J &sD;"_lE"<6AaQq<ӞZ/֤ͬwJG*hH WAʂ o ~f_ܢ>$*F?$wq`ARU\ Ϗ@/é9꺊T<(un[_<ܷգz;ݫqQ=@KYՖUiLr} dH^Z'#Πߟk~%  !?(Z}7Zvd}uHШ<\6ItҥyxZԯn^p{w^LwR}zn8A#.TKc\M< c]EÏVYBS )VV :ϔTJrл(<3ݾPbo)_LG> {]$t{$_x&WN4IUi>7Qn6Q}2cd1`4e0~wF]PL$@$@icpt99Ewu%P9.\zȗ`יSrO bĹW驃~K9y"ڇ:{ a탆v~i4Mnюwݞjߵ Vvu8KLJU2R(ג|^  {ډduD5"VJ5Y݂_$Q:fHm넩 bgh/]L/QG;=C%=^/açk;/{Cn6vlfzBGZ݋iZCkx;t|iѮnhэnW fpj069`4>6BLSǭ0%uQP#djUNwHzX :<فeO'E]di_c ͮl^ <7A˽7;.'9P't_W%jQ3tޣ$7]O>]wf{O6WdXu}u rfVY.?cH$@$$Aaq~uQibY7AtG6RGczQqh,xc5<Izlzt>OξhG(贷1xxS=v U߭6T`w}n۝svhuKP:נ&oL?n9]Ԥbw(v/qflΫ\IWFnOHB#m걲kgջYtMbƳPuU$z聇k="nd*;x~9|GlT};C{OTs|tukŹ*@'dό/ًeݜmD7q{=qk٩w_癱lwHwX ݱ~5k"  s@{[sr۱TI{Z=Z~df鱻dukh6JIt<~9ȯ{׎z;&=dG/H '/2C!Eq}vm3]=쮣~'JE;cMLKjHQ+辪X߯CH?ѽhGJ&Ţ='ef{Wd ?G>S]8Bt,1iGdP~= ̸+S٠Ql3sZن0|q+ߠg #  7G4XZDe] *{HN#yL~hūz &g>ӯuKls0|Hޣv(vԐ7Nn&ԯwh9uwΑdR=V˥ƮOءu"OvQL#ݎ>&6lکUR"*MF7]M#7݇MgK{=UNgСP5@"MwŽlnhYJ{՟ޝn%F`(Q9ə 3p"5#.uu"1hP|QpHz F']$F=ġmQϙL~/U6ng' 8t<{ }@!ב֨6quHni :U+JM\$c]z%A2e8<~.\q鵝W!çp>hXCMKM_or5~xq;uם\W~jvf$1V7ŎftԵj&UTdaz &?L՜m3Zyd畈y xhaM^S2>O51:ӇZ4X\3q>ݨ/P-y:.OFD{%%K'%Ţ\dbg>df~X5o4a]x>7mfΒ.B-BS}S>'(˓UH935p }̆Pŕoۈm#Xq- :g%qπ~KnL_~A/ݼj_-TS+m;39./恉R}zT#-Lghgt͎<2d?5czcbhqd{?W"Ut ]""Ԑz|LܷPǢuXTs[*ܛjtoٮ=ytVLMעYyD&dA>VPfto\a8"kˇ O mΛ1>] &olV&^= _6]NB߈{yQxm ohK癉{)Vڐ5:c7=Fu7hIEbHcn/{U=?HH,%TƠ߸}uxױba,@~I.B3#˺y M/%{0i؏]TZcrHcөoAbhB]2^{>b6رb c`ibWeZ=sV7.5 !9Z}ym$ t}ƙe錫\{>ai]jrX'3Xy# xVS߲Vau;VjƱnqOi)=Ԝ·-r_n^?$qV[h)x;KATTzJՋB>wgaUWŤꪦB=>p7n{y3}҂]%~|鬀iP<ĊRWLqe!o ͊O߱V.=WP Qk3YID{LRF^ᄒ^x%"0ю:Qcr9ޡSy:Yɏˏ5}PKw47̤5UG2~$@$@g%}cPOlG3C3aV 0n2Sב"{N͂zF7ZYn9[RR<X~_^NG]'}:>OSv]|hu\wNwlw>C;ovlJqbu!Ur֙2s]scz סE"!BPeZTVbb-5OV ݇i7umLn5<<3hA8JwѠ?o3hPKsK^?}V.є^qH㽵޻5EkU9vť3wGwaOJLt®vծ5_4 ǒ_ 9A#q7ʖ.3QS z$e2T3եqH$h]`".Z=vCK#[Jn><,7Uvz8;pӗv]8XdDnD[ٮVW舌1bG $m3Trݤ;/sur"ԣzJwѓ{~,ީ|n-D盙!!!Tқw1ԇ,=ra:_4ig6ɜ4ӻvR^ᡷi@3c}bϗ쪬@M킎}n^?Bw5w7z,Y)I9f҃qr=7»QQ W3VmA,R8~7u{d[]Ȍe1PX7M$@$p~|zaᄁhuadT0f')h]c 饷 hԷu(m4sas7c)+ .NS ׇJ}]"Q׎alUگ'hG+>l\Q-PP0 83t$CBQ _@ۻR\ݐT\¦y>qhͮc(| IP6 xiZ%<#O/n 7mv݈ ~;'7Ι랴KP* ݇.hNoO>.#I$@$Q&Q??yJw]0{IVӤFR#`utQ,LĴJFw4eIba~{ƹG3{tN}TG@kxWnr kRb ME=U7Ouv,]Ju89zuU1k~V5ZWE**x l^`"!D ,T=Y3q"TR=ignm7ˇTN܈::Wse[D|LΊ`Hu GSK1YjAC;akF$(rkOmͨ1[ wO4M߅m5!H ЛlBI.-Ǫa㧫ho ts /ME4{E6(&##* =ur29 -t3:C@'B#}͟uE0dV.;l=Gۻ1tOzfؓg@ g0w\r]<[ d|OYeID{PnzL*d&U-d]1:-ëD;V> G?~b_:VJ>vsԸZ;]C`r[Mn CyTv[BZ\nCoZ=B'.߽ ߽$c#ju_)>:oh[G[:QȓAc,ڣ(vH{ۯɮ͎' X&;>~Y-S|iYXVcAݞݦZpfn5qVz / "R!mjP5+g&.YUe\t6SEUN>H9c_0 dzzlveߛYC{Q l 4X{o#\E9'ݣ{u GkȌyfF„ ҟ.kUK" 8t|?1m*v[ljlj Y0%`@rѨإ%EC2sף&.BuR?Gmvf٣d1;8;o̧>/u2:/7nwƘvw{G;ttZ٣*ڡQ8aݎoRyyюֺ|HہvM'k jG4Fzh3P67U<,8jfˀlToJ^ཌf{AY.M}1\"TɌw^sʵj"y ?{&Oa+i˧Rw\FKFDB;Lsw##mz^~j6)~Jv{)3Us;~cId+~ovvy GW1@0(d¨}]ZbQmFMp_ I(vlwEtIq97 ʊDJ gIox~ A]^_tUghG}(tס#~{Gۤ O(v^20ǵMSo&|""%z)3jϐ\1O#ÓRPyNlA709Têۋ*azorv5~jx)VP0oEv(I*}ݩ/+m`_r('}nD:72eYzHV y~t}wfz8F{AfztK=HAӞ#o@Dž6;4kM){yf`$d&#WFSM.@Hݹ0&aT  88jXo. vˇ)v5RhYDFAVL¾ތ/d-Nj{U}U\~O[12eI16; hU[`q*ءaqR승a| uwFRܝxj R٦:oI4H9#Hycj\YT߱IHGA>PӮP3iA:M轑sm;-G1]^jO"<͘i_(ei"t̾U/;81ݍQ|MWhyu>"ҤǤ Uu U~w0B:Te}6UoXfLwp /W߆DGkkw}Ӱus:\16=6mYK(SY.){#{|=d~<\njO1t} > ^> RfԭޡMc ubGA{Yb‚KI? ; <ۗP7 wɶJƵߍ6&F@t;-\=x1AeSU $6/g=#=k*.?jkxK)Z˲hu MJGG: 5yhb /G=sw7*`/D^0~͈L4 S"ѻl^#ah*iA=1Y鐙줪dB=XEr;~#=&u{Mu;Bo _{?$@$@g'4W9sG^{t&`/8-}E#ٵ.M2z4ٸ+늹\Kx@ZMkui 7=fn~a.Z2:!'{_O۝bTW;Cq]Uoϓh_?~|E)n:vB=uy l1P t/͝oH6{cN;; 7ZvL]?)vimvG/FlJ Ex}qקLR07PCۋǢ#9^n5<4b>|A~[r G@k=Hĥ@'%nu^:yMRʫw| fD0ov#m^]ZM Mu8& N>|}RX?X܃ȜIG**<ȨU+H{P c suHw Ojnl̇Ϗ_H*0NU숈f F$4ˆO98}]1yC&]wl''i\MnA*~)p\ęȩӿ=7/r_/|ԧ.B}bq~i;2/,)N1F1>Rbz7]1؝hюUh c*=ucjVx8Ou]ֶfk+S٫;d)!i3Hwy?@Ftw3%}v0(OzfBÌ9<%[X鎲NtuũuWÌ&]׎of?YNX 9WNN09 =8*vT/KA>1hKttcQw=NwLG`f=qu |liNw]>OuSkSpXgE>D'sf]{V7w2=%ڥ>|`(vlbCc*Y?}v unnB'ԡÂo,M@ܻ5lcf j0WTNzX Ѥw(eڭo섇b${WejAMì7$,؅j!'%5[Q[(՝7mpwɼ9-q\Ydg-^H- )x"7?Z?x.9W4̤L SFs[8X;11?$n1^:Iwl+&f!-躛t_o٤*3=~#2~A~) 8˷.XbSBcW9h vc%:yj2^;pB[VL\A:%nIzĀ<鬘90Ir|~D}@W~T_uN(vSh{7w XA&, Xځb;/B"bI&`t*v;`}JE]IL 59< Uԇ > -OWY4O&4g4|ȥkLt$-O?]lBݎHS!w]b|ì\󌴸wr'@q2sXn`hs'//Q^6U MTʾ/حƇSg>Qcx))=?]MN%dC53}zQuG]7>>a φ5 O8vH;fNm3Îmk_ƖQ{WK 5+Ex)ߞx~|nGBWb&ޗ5#.~{ӿowgO)/"?1l7>${_EﱋbM+ƷoΖ#:mPMK%uwbf 3ː6Cr4'5RήI_H>:O.%ƙءu}] {4vLm(tq1:p*vg"$<σ~A=,?[ 2wA~q?_{ikKZ;Q/PW IF-%=0@_~vW䩗8b4c0)zl]*v[`W% R!qƺA,fkgOBTkcЄ8U?f>f]T^˭BND.!RF4QpQ>Xn9-B/꽧T7ļusruΈtOoI,CZ&g_W+6g%.e|ޣ8[NiOgilqF`ԨUm^;MmW5)63;\PBU4 S-NTE$@$ww}jHU8iO?cIfInXCƊlZ:bX(j5aRY1=y8Ȳ o LO r1$jY_E a@ ~ }}ug8yѐf7t"D;;0E}ఎKa.r}u+zۥ.Ա%vh^BR^)y} q䊪if cg١``us`3盛`%֮y=%3>Wju,Xyr eHln1gu;Π?y~u0>ƣ95 ^$l#wq%Ǒ2$dȟ)JhoF~.7S*^gnw]wd8L8OU:Z"6 memf&ԯJ$@$#!?7HQcbz͎*%qqnStڣ`wzғ'aO]W<\+>!amfڴh#Rnֺ}9jq+uW~|FFP?)QnoH5oޛ@UiJ2#RI@]BT*7Z@ `;6vOU{tMWթ9svUuUWlW)32323R~{#cNPdd(x{}Rr;}>c't]G@;}m{ZW̺ø^Z{]!vqsLoSuۚ s"o@-.Rj5=}6sC_dK|Tu m zO"{mY3j%`f|U¬odT!|ݡ/m*NqsPu"q @l{%'i 0)_r )t"#O1=QuRMm:; 3*5mw(жփ_<1{k_N~#|Gw^sؙ)]u'9ڱ(;EcWA\ dYo;?USZPT㔢ojWGp=qJe*R4 +V̨~тCĎy+ Zځy[оTw$@*bgKM}QpTn=!vTՑSa Tezif{9ZS;S\d&ՖZY%誚%4E"P(M:džR%,{R;t gл@G7*X/'Y\Spl*y3s8My<;DAB>W6*0s K. )#3MdTTgPiϧcp}t?G?Y~#|<{_q؁z:%%'dadvjm5!IjjD4p|/Gz{O*/ԭF,7u~zUt,w.:(h_o&^@Ji#JB Unư̎B)[2 }Ki6;1~ ]oT= s<hGG$tb&^K5={q !%1҄FJt$x{ȁ$6zkr ldM sԐZлY}%D(];=1d{f2s2* kBw%j1hݠ{D5l}`Nk,_KiS<,W?oȏ@~#Î"{4B]S8S}c/(;v *-Jrm,x$%&ȓyZglD_΋\Ox)^>*7@wJq09w *pL2u6liXby-b;dCJv,H>Dcj7-z!hzsi˱[n*Ď{@"Є<TA|&_.4C8;&`5cvW*ҧs:l+ p7 8DÜ6ze ŧ4=Deb'crI-˸ߌ*g'H%>yBY:ރHuB)A1{UwaЮv(!;^w2#'&22ÛHdv KxR^}ԱLt+wO{E$ȏ@~#<;)(&OJɾC㊱]bwAsPLRTd1ӊ+}y N-818G+DXeĎOsai+Uo[g. s$S CE% h>3.dvddn_o eʋדF؅ءa[{%꺡-{ 2X| D+5B;w9S[b6[%gg/{!=K=0mзMibzn7+YYjU{,z|xJ`qn ~IJGu;RY%P0fa"WxoJkC\O2L)(&]xyѧcJ{mmPFu U.Bw6 kaAwt.̽7Ώ@~#@rkw鵶V!()ib7dŸj8qy u1 Q_z-{C\;ؙCE]WMvq|@;i9:2;YKndv`歄ݝ}+bp[wC`5uK"u&Jv[\cyWЁ"DS<aMiKD3U\d ;:u\T#HCq4z<%EfwdCw-8/En!64HHp7dzI۲sd^fna j۞C@=1t3 ?0f>w*-TInmݩ X%{_Wȿ2?ȏ@~~GCGGu;]t'qD ;A;J%hbOblۉvÔb=bs@:c0[6_S ϙg 1b>}Aˀٍ=ĎԹWu1]@ʫv}<ص.b{޵ݠ~7bu%[Thz8Qu{?nO3ȇ{8(B`+lt.GJNyZm&mPA0HVa4UuxwqtG$ TNqAvHۚ:v2Ji''ET}Z\{ٷ>u?xw|BZM5UȻPn&+?v8#͇ؾa|epa=?}uE ~?,ӷ񧢇k`)~o;ߘG ?> /ǽct6b?u}]ʵ47Sh'Ccyfv5߾@OǾR5=6n,mv`MOM}1yg&#]}օv)] N}=3t=ŸX=n'Vw'8gN!ʄ+\:oh0DrO]ו/obvp{Vy*"^l7`j[s}ȑܩgMQnv{ cdE$Uh?Lի*["UbL'}u_4cWn 36;>V)ͨdL6?0*Jc0 cw)>Нw|*v.0s޽ulZ莗Aߪ>Yr뙺32Wk6̤): ác aއ( N v3Wtc^J! N0C 3v^KQ}oC#ڏ_:(ݱ6( O1&{(9bD/?B b !:=Ԅ) '_8ev^D%b;x8cQE>gYyRv]OdvkY` k:n7o+73{y@U`kUc}kSfus{-$ fp)fu/w>>Խ!nlpctUW%5SuyY{-3]+cosӆ\JƗ-_ÀsQi5\CpEw $;:_8wpJ1B4nvmab|u?hxڛWlHh;؛z퇩PS=zFff}'>@n W295}YM~5p^Ð=ȍeDȥӤç_;yӗO2K v >+"T; eB|y4FuB-wzC9ЎI:[x?koO3S#T{І''3EwvАO.?XSMTwBw5p-MurG ?goԠ:6OWކ+CICǮAU{O)&1uZmFoi^SDLo-~W7&v6*CdɔTi]ƅ 2Q9dΫs^B0+vp;rc Jfly$[.2;B W U m{)FrY . .Yf6w[y5r5 3#yUeU,~n[SB#jOBnO"|:+ #Yx]r& < 6Ng .ٯ1c+]Ug <j[홡W^6NKL.%,1f}'e6:oI8"]'}1g(zW [k0㭩"]C۾%3=?/V{F[˧pQ%^>^M|섻N䈏{ 숗q$we3g;U5.4KL^C,݉c؈TL CǰuA~Sg;4Qvѵt6~ᜁi->0gIi_J11%w;Ƙmxu}VD:~#mۃ!hoC8` {#~ ժb͞z*rJ(Q5=&I>0 EDZsݤۣKW)1;Ml?d$(Yk8vk\wڭۤ2EʪA |eyD}_:q 'Yb[j2oT7=CO8Óe[S8e5OE蝕|ޣw/%\,l.LY;)Ö/AKZw:f+G]$tÌJЧpMTĦ!m[^~Uo}+#yG׵kzTמ V%0JXЮ@7==ޅ_ x._^]iPm}6\@(GPuVڗ5`Ԩ!NJ;Aɕ f*{ț:{ũ.Ƙ ^BK aedE:,SۛCbڮ.>-+bgnدݖ}h?ԫ UYTz䱺wD}g_p]Q@}>݀TkkJ6XeeYk+rF#1iܞ;A4I>+ O15*+ӑͤ!C -0<ϫJmtH5;_8qgyL~7ovہ;.=֊iݘwQggg>ܘ`Rnjn 3f{0#ᐮ]Tw(FΆ{*ڿ|s 33#@Dyw||OM٥Gh-EbWe)O"2{77}V&9SJ aLnG\d~]d7; Xh)ʢ4DUcVλhHcXf50@9?vم1 if_^^F2~@о|k]p]͖rT`WĮ{۵aQ"Q~#1\ytCciVnVhۣk5 ڣ)0Ӵ6a$U8fk#'kxJ KP|~ ?˧JɵRQIzTv7^`e3W]8E{N;jcz\1)PG%I{ aU&]$Dvfaܞ6G}!=;X1l7f*+혋1گhndv=.@¶۵Ҏezm곡M˶#;4[wIJxw u}ӍxK_3s7_'ÌDxB"3w{"J 4n^95=.$j7իgQSMʗ4Zj'LRՓQ&-Oe7Ήs ? 1~=AKjc_>).s.WDP:Q8yՆwcZk5xdb;a}LRL5.9p;ݷRAkJ {'G?wż $cl* k#v%Si`1YR%7FAV/].P^A\6CnʷU*oo͎jϝM#n`}&6S[k`J `gQb{x9 W)Tz'V+"{>@q&|8lB䥏Fe_$\wt!?xOrf|u =̨"q{NE+r#a/׆ 7XкjBp-fѡdwgn,ݯ?c'wa?ފ_d޻| +m+ͿG ?#?-izZ{=Jo}2X]h!^bjӻoemsgiF3!2(g9FuzGՅ7:vZ?ҷF^c_B4{x^pk|ӊ xh- |FhzO^۞fGzIxCJg~㗒fڏlɨaZǺA֎j- ~vQxv1Kivi(뎭X{u?_Yȏ@~N#^/o(S|j1+!C^ 2c6 G+ &.ƵPkR<+OE-Vƻ$좷z 7C&HJ\2pM책Skw8w03Es%(u $Ү2nԙZD!v $@ftQ@;zbegcjV;Vv n`z&N#*T>UcG Fye 2<f(J;a| ZEnr#b<O džb&.|.QD ޴uCW{C+~xX˛D_:vwHtv;Eh K"Pݳ{<"vɩZ=0fVB}v` s0̬ک}KyF ۿ?}S,?ȏw27Cz^+;$ݎ=Sp=Ǣib7)W\ qrޥ|p@r%LBWoT IRkQ=Boo^<2=Jq :pE l5/8Xc͇=PhL#+YPo;SWwt304iZ%ǰs%v4.T#}"򷋕2>]f4bwD+n~U.ܾNN̻2&//#B<GFc6ߞnw"H2UTߚ~[OG?_/`?ު4tuOZ 8Ju׎O;JXEYtGBwp;qf\tÌ:dHsW{#G  zdY|F{-$L3AHYr-Gӂn.-K'C1jV ?p{4ёp=ޚuKoyRy76tct}S#놚&Eq CΩ4M:o{5O10@y3*3.cn~2ƈ>2Y[;oEvlmh_d}"W%nߡ-PWNUMrg*رIq =r!"ͺE=:ZCpn>AHPrV*7LF txqWxfRB#A4H;UAa39pD39n@*"vگ 6ijZ"UZxtnKuO]SR(&Cn.nTwFwQEȌ12Hܿt=PX#dΏA1HLf[2;Wnb p+J;<2mkoԶg 8lnx~+-GŒ׆KvD<9IЍFh i}mZxG:0Flv8d.`xP"3Nn}eKډۗ }~Wmb@ }W\&vF;BR9DOi=5훉]b|}n hQ#_#KV0ȉ>.» qd8)m(u S9%U7bjw˰@;5X 0s]v h-lI?w +Z<3bp^Kv^ d+XHWaI*wqox[v z]|7<* xl=K~vXBtWFwE^+tXGJ,@9G ?iq/p*;C¯hn ec 6i]|)Rf}DuGI#Ybbmn;4UMaLܾ2縦j\hU&w[q 7/pȈ}ĈS MC䐱QMKIf'hh nРIͮVjnΖ{t[$vCr.;~%;oH^I#yF!>cnXۥ]F{vލ>i@YV,ɽZ+|4LU3UiRF0&ܤvѻXrB_hQt vI5R څН`kah!I<8ѝ8X~SdRۓ#9x*n`]_^ k55U_rxUtv ǁ*n`JnKnurcQn+חz2GZ#8G~ou+›ev.d hO-+co.E'|$]Eˀ]Dɉf7+&v[bmw3\8mmL፺S buHfwROv#JŃMc."1p_߂vc蟿uv41,h'WL@엯%2Hb8zyNB-n:Y`w#SZh%pY0U"`k c5U 5>z'}0E4 _E~'k\oAig*$t50D=q@"pڔ;yk?ȳ6:ǡEW+ \u`GD/+h7 9ʚCuMy2}UjIЩd*`v12\%CꮯIfp(}][ɝ9G ?#!cLU)SZ>C2?WLj̣f4٨މ%jVvWfE;Z fA&*~R<Y`@;-톸QN(erFc {Sųnc&Ҏ9w:(n׆_4_-'hlTo הAfX[{יؗm7Xm]nT(^۩T i3كv;ƍ̣kTZ1H^LX#=<]D'jȁf~I" 0_+-cl3U=3xiז܍^g8_`]ѽaF*JN]'jCaF>0 ||xHQ8B4\SO[6'jtJ6[0+)ԝ:)G>/t6o O[MQOUj. 6;{Ic`OϠiU#'¦5:ۑN lfDw:O'' ,7~7ٿ:I%q0~>L[᛫ +I8">~ot]vLc)IxB;y'O'h?yc{c.~ >!vYKnҢ^Q n;fp;X]j-bn\yy3Tv<`ڲ"o&Lαi{gc|b7enV3p\ &`xrGG{8/$D֚Tz|K:ԍCMQ;Ԁ ǣw"I; g&{+*;V6d ]{AjPثH!gDe~~>/% knTn1Q;;q[|?:߲o>?8k J@{f?cR=jhoݎyW#Eck:R`?pz{ Sp_c+{Dkuv6vY&vZ؉ǎg]7iڋgWaGLf }iv \b2?p!ZCv yZQc CsA靛> {M޹2^ޟv5}Kptb;H9ivq3ixr!8=cyfJM%8ӑdU_wM/'A> »kJT=lA;Fqc»'㔖I'E&RaJfG$CUw켈}Leyq3g{{Ϗ@~#ݿs%zxcm)"EBc" <,bsSdhФ{r 7>y~I?w[]'aU㷑3oC{JcӪoLZ6qu0,2*]2;sc1L0T|*~ v0//-Z\bYj`KdkQzޥ뺖+Ď{Jr'Ye2+Ԍwɯ0 =V>ǐ6xxaI]VSf ;HT/8S}å[&9"ZΥk<#msYT.ɧ}J 9iC>ٓ;Ų"L{6s4}@0{Nn9$ G`텮 lxZ'|"kzg1bpDڕ=J;s{CF]} 0 bO1}YwVeuzWŵ+V;>vwj2v{gVg ]_Cbtv Aչp^wٓ(^w=2Sc|F$7fÇGӕ+bѕw]C+a4WM>(_qgTGwC)\#IީU%%R->C>" CԽWfo g"8"- Bޑ 3ҬV-8Qѭ0ufS 3A]Y{wTZv)?h~=/z?{s;gj~#3eMkfoB"6%=]{c]+5vC*m6gޙ.MZcoO9Q >ؑ8N${ i8W#qMu,27 o\=Nf_4RC7FVJc *A@{aܐQJ4Rej XA52;BfhfоDp;.>vwʈ[*qDiq]}z)T-Vqݠ;@05uCrco5nh6joatAq XyLxѳs'M0gLfki@{;_D3C&4]F|5HAS=u&G:ka.%N{`,ڜ Q :j$x=3m&"3JMΡ^;ENXl7:b?eY$h]Fb:0]1v5.S}]C;5$R}8n]w5UT)s[S5?XE9DIG,v!n~Za#tz2xɕ<#3S6;JzT-*]\1oA-7&;" Tz } vƘAEtev;5-6#/h+n:~h!wlȍ,F{;ln?Z+o=^sf`xjv݅3[htv;0Ƶ1bx<@>6<q\jSj G]Z<|5"=6 BIJNRCOπ\x%eU"1zF~Gtw8 ?ڍ %{wUwdZyѮe||oPѽZ3|Ì*&Gzf%dGU>5{qeMPR 8;gl~ΐ#ѽvd2*4Mnhq8ImJmSy$ig>L-0i1˧N\˧->v_cOC{guW; t]a"tG~a?;1˅J}]10hnj?o>cDitۧ\R#./b}If+8{aӥju$4127dE&ܾ\oxHZbi]3v\'5?h%*%2ٍޙaq;dk Hxqˤ4Z _qe+XqER Oݘg0jҍ&iRa54×!I }xrl_}]\;;v<'1_ $}~md@< CTFr]c[xYuk'js y ;מ^et5Ut÷Jo -g0UJܲ7Q=C&6#p:Φ;Efb5LBU1b深\G|Dx @,{$@?>Ԑ]AߘƘp20eF==RvLv[msg ~'YHԟ5?5dC݉ev+u#*#GTFv XLés Sh?ܮ1>uր@;fƢAj13Xf=e#= vAwܿ|cϲ]6tG]DLRƤ)zWgp"}} !e->uO.ۗuꅼ>*`E d0<3 =4W׵羓{;])J{g^db7X($&6C*OzGTB͗ST1?*9|Y$O;w:iC!Ў?ٞfu'Fmz&T~ oQ0ebi[ݵGN~[UwBwkGUgh Q}|Gt{ˏ}zN7=H2{{H-BErx-ݙ!,|LHryߧaFdbw==17hߣHbL;Xm8z\Wxe]gRh51 2c C;1~xfƜ5H1R 48BAy fUYޘi3^gTHcCE ɑك&+Kw:;Hv \'k+#7)iqit7d}#mۛo}={g߆۪s+SLͮ{z"@PE<=U%DbVKl7w׾Nx˃sHBY|L{xMjkh{r^1 C)`jLqOu]czM=J FxC;4v:`rYJB$W6TcO)o wL8oɃSgZnvn?o.T˧0ƈ VV%W.홳ülK;evu&Zo7I}U=G }m\o݃?&/H˞tTǘםnq;as[ՆO GKiJjNZ=w[S:Н+neS5*2 sW;'U~N#pov6IoH&{c^#,1R*|kCUlNbH-vNkZN}g6vU+6;3;m!2Mӈ11\l Dq.,m+'F~P_B;qvQ CcIiǜck>nR!xc ЎA 2 $ni*} 65]ԽD]^VLxgKxk4qI:ɇWlv=K{A'  3;7<QSiYNʰn,_E>;?xWyGwc-K^Ρ{]T1໳܋&#<(y^t\x4Ҏѽv;+eˣTCwKu?JWHi7p+Fwc]HJr̸,7ƀk8k4D-Dpw$a>ٳPC n~Qݫk1W2|OGÞl6<znXiHtq{ FiUfKu,1Yv8dG]z2 gno:]3z)]dv Ϟ44npNJ.h'n_/NT DKg/A!A{hSmYRZVn}f xetY[K8KV$ob``Q6x1Kt'GJnXEޤ`A>[^,^p;fRD{d|6E?OΕBAw9Q=CiBfn0@TabwF{UnȠJu1uDLӪݽ]l:*6kxf"UڗUJKiI:7 WvLyى97*6eh׵JsnoR-rDcngViON i?me)TdXr21ϊY]|c]0(&` y>+b_iN6%2v [qvqCNs*vkr !nUM>}tHΡ>{Yeaus f Z[Vbvۯ@ʚ(Fԓ[(,jhqpFAݻFn6[o785xIVVH^UTËr\8"-<oN3nmt P` }zOC}޵mA۲[ZnC~_$v@u+3tc:\1)92"0SJQ(I'/շR+^ E_8mŇzznct5դ͉q{TB1iGnʟȏiv?74=Y|J6 IGx vvk*B!=lx{&6,oAz6{VM'Ƙ=Zxaijc浵ŗ^,"ƺ vH#rY.J;g{~)$Kޣ*\jKFc2;41Y ẀļC Tvn'iu*paubnϯ("c?ѺNw_HWޣ nTy|5*I$/ntxe8d4+zL.oG "Ppt﹯+Qco}mrA()ߣNgcmWh}=Tf}4g{ECk+ Gf]{8n[u  Fw2qU$UΙ)̢_q~G ?#Ca8b?r_Ovڵl1iwjkhUqJrSscVQ^%%G ިQAG>U?TqڛEo/|aRHVv]1s_c_Bۛ[4_[(=ɝ!Q=u͕wOC #Q"o9ޝ5'qFW%&EV"#M햓o=.U#gD]BiB7!2v6YDk-X#{ ra";;Uy;? C2㕛u:3rYxN#]oEw40yAuHbBZVa{ٺ~@ ?V-#ITFwu_NO~EXƁ0m62l_}~N#74لvJ&ah'no XFn27bh#,q.Ĩp"ajxh#} 'PڽƘHcA)qaYx| #Gn¼Y{cOw`vUᐟy`Wg.*҆vܞ| 7S2#筠zUo?7eѣT n̔RͻˮoWkj'wyA#=q'M=[)S~f{ph;nyww;@g [| FUzީ5FdW{Wb`n6qRTG?)>G 6ЎUHhvYDpMB%{ {%ZSG4`m!&S*%cp^YxQ!sS{ ZX՚h\_Wxi}uOT8 #iW,.*}^p*@F1F"^7Tٰhhv j1ӕ.2j:3 a+Ɓv~뜵w6Z+n{.qn۩iMϯ\K.w7Zv_o۫-*-ȃ=>xx#^Ix! Ƈ[ ]ݞadq)|8dU=!vݧ<>[x{D {fApBD"GJ]}tw7U}՝_ U۽&U 3[n, gRe;!Ɯl0Uʘ6K=꛸bRdaQhB3|RםGeoi7)Pzut NJY$1mP1 c4XjPK쥍vMloV4~O O1Iz*PݳLoիRBjՀG:BF0!GN; / vXQX]]CIl'}sR3cΡYA]] [>yj  8Pp;(Cb/qbsCcOp"G"ntuojU*v Ȅ+vǻto=pd/Vj\_(nz׃X<ոBsDi3 R x7.! ix܎?D/dbgj:$*Kh4lQyMVkM<΁M7^yٔއf~N& ]_ɐc԰/ZxGԿhᶒ3̤Ҟ;5v_qB6ϗCÌnʘLգle?"jG cn9}5p-sO-GwNwg׎{ 7(v*[ ^:0vƻgQ{?zmt]ve)vF ك0ZZNz&ʊm`}U]h3-w*IwQ k I  FK*k7W|SRvkMl+ЮdvVɤxuiJ5%۞xs {Wӈ. ݩ@^êCjok5$7O)vÝ']]K8MQ(غn @d}czF5 Hnbnj 4 T0p5G3evf<mM9tg.螱ǃv\ƻ?R~yEAyU G6=kWKWUvBյqL<W;U, rS|t%%h'EwrovsN@lR$iZ݉B4xD"?d!R S?ǣw"-oG O{:( e|ÐGy1o4r pEwNfYXe?TJ;'au2Ɛ>E۱}.?udv&v\&=؅ާue\]V3>&/| ΢)_ʕkZ_MoۑɞCy2,˾jmn׷7.}*>ʪA4rgʹ%03Wwh77{O vr #VO>ѕDigh9Gp1EfG#mrn)]>̮]nH3uNxpB-5vD-CW #Mz'޸ixijv OV62+ 8/uj3*뫠zZ}~ GC$1g7$6*LRlkT9g*j|ngn{j0!S{m]W{v<~{>yfk)t+)+끅h'e]^p" sV$7f{c.CKۣ 䣻SɴΒ#+R%C7iݓg3Du{/~Noï pؾН]NU^!,/ tǯ)L?|2@򆦯b#=R8uR8mJ0JӞycZ:XWOfTFDVAmw{L=䷻+*<Ūi.(I{gu?GuɤQC혦?g&h/en5jH1 #=Ë MկZVv1Ƙ9A8ף fΒŽX~oIvV$z析+g{c~yܞ {Ns+\KKfa%EZUddDGbՊϣi3ir;WK"W#TÚ=ZኯEC;X=Q]CӰhA~g;6 PX8LM̐npFvzI6zf4[*Fl-(0C/!^`o/V=a_$cZZ=vwuwѝ(A_VeU7✴'d=)-vs1-[]!%-sUSO/8?aM iO*C;+f" )Jl1:F-5L _ZPюJlQ͈Mv<}! 1{cQۿɍT ycRO}+{lz+AV+ϮP}o֌'8#J;}\O]gL]2\쐡)9J{]ډ-C;2Q:}h?ۧTBc K&OWnǒH=o Øjs(.Rbc~Y{pp;#ѸȪb;P؎Lj[@^;x}MOxd7;"9Fso^)GLRn.A{0$~rA5eÜn^dR{%*A.t=ѻ~t2f%88lKYX{}FuO7̸Fw޶l@;v05jƢSgitø[brjԙV;/?j J;dp7deFiPuc/Fc- NBM A buUEx1e)|쎕&-KmP]{@뚞Lg Æv#i?evQ5uG ue#*pl*{ +2ՁFi0y`8nvVJ 2du1E Į bN7QTw Y#`Dv[/1UcgPl54۶15u5 ^9Wn+S$t'L2Ƴw4t7+p_fu]pwb!N#dƄ!6;y-ݞj {$)o,to 3>/<77s3o=exiOdC4XE[&#R;fڱꅴg;INtVxu0ˏF ;qAw;[)QU\.r'||@+J;z TʶZEUF-Ǡ6s䣪"d/"1xi&H3vnSg{㶽Dio)ⶤpehh_>i3u#Nڛͧ] $@Mv#ľv\FTsGՄfO;)"cƌ(]T!n'tW@i׍n-T1 :5nbUM#im\D3jCcw]3^/u=<.& >w&ܮXW#pKÎWa(ڬZ 7Peiw1s5;3@D]VUKİvF.oW_kٜu"HBvwF-&(-#ݸV! P_am=`tC):[Z0_ C-[!'V=TwlD$w6+t1U!s/~|I eȏ'ϟ|~х1\Ğvi{'D9UiOYoD~DHKG//>d&V ["*KtÆv5uu͎[n M`vY|c]gL)1mhӨdvX5JTEloycbUGdeCĎw+F}zevzK)J찛RV$6rTQhyvn`{.U]`s{6mv˵;YOx{kY(١Y_{h5 7"yv{Bجr#O  %kU*>ET\ہ.NV|rgr(ƗDZ4^{9%hyL:Pt][xhā5%w`Y}LXnEt/l{XbWRl<~joeF̈nTwYPe*QnO/2?8??^7y$,٩ib{VE1Fiɏ/Ў)Kev)^@!`+}I޻4MA*zc=y_4pe}h^GGJK`nS k*vV{_۹z_gB_C۬tcM4H;݀mg{RļSL&gl@xxi8C Y4kw=prnPIHF"G'^dy7*Zw=;;a" 8[n.m;BVP$0L`=6dr;"Ew#:0'^#QG;_6čZn 3z5:»d TwVӘCr;oC?ɂs][ht2&?JT'_< g:zW|hv^DeO;-Japda:T%׈=J;5J CXblš%+7g1NצƄ-ʾC{tt酫_Cl'h2ClQc9dۡmfy]_3]0 X0!fY!-8u+8u+2w^e@=@z;vw8gWY53טAx퇯ptd>#X2ZJ6Na0Dz s b}$z)8HnF~bDGP$T z6xGF%n;U!V׺j֋2Cwe!O9z U2mK-52UlXӈleWlCr:UwITw-]Ɣet*28~reܤ℡S? W|$R&cО(B ˕NIlg`6F>;dvg@xڝf.TNwv'7&Hhw1tT;>7MĘطeSS`Onyfuy5T=O]D;մa2$zJ?OCF{ ҎoLQ`}SNen9&vV{dt2l-3!> S6~ &5@ 4@306:~GeJ/7+Ҏ]Tv/9紋!(Qbe;jD8Wq{w) pݽ l$Ӿ*hkA)mr /OQ3j 0 sHlsr>鍱ҘmdaᲪ OG~Uy49@Dh V]; C oG+CLZBJR?Hw'!vKN]E˳pu^ 3yy͗SQEn :1J;|);n]9=:0U}tD†J&##0 kIu[oub7ޠqg>{;dOJhuEt9a}5EKaMW[wў?w 8^WQy.UcA}L[>wf쐂{uЍYu>HUO܅}-}'\+d!NDlDg뎟#o` 81aަ"d:hsY!=JTHUeEt1ƈ=:n-p]Q7 CFt'Ζ?ZM/Ë?M3Io(8?ι##=>nc{hJ4n.+ʝ/-T[CЎ)5mkddI퓆ښG{-ae]&!b#b3UY;;/BG>g'v`E썡5ոy<6@ MUY͓]4:#M,31YO15l)4#kwd췒~*ьSxU"ڿ<]-(ٌ»8aˆHNOd<3*=}?&؄J_My*@mR(}B?KB]w҄r75ͅs;}} m32s-0Н2mxexW;mK 4@ g ~0)(lc;û_ 9dhM WyUu}̛YjbcvQd&Ҭ=JЎ Pf 7#ttLܘDĎoӑ E0dNn daOLccɈ,vm]AQWvyJ▱$#[A,383@gzR#( ;*hD*c¨_ گ^ﵧ}{c |d1ҷӚ&r`h}7c]H{wԂځG-썩}]OZ+bBr/51Pڻ_+[qKjK,hkC{WikX]Fꙴ]Ueqٺb<#f r 832,yX!Kdp;ltuvWW.Z7zȲcu=p{RD0<5 ;zg'/ ^GGy١ )Ƙ o@7kf17һ,;)z4ɳdCl/G {g!LGP9E$QMSdhDjW|]auEb7o_>׉@g8dzxjUPy莒5X%;/ "/[F]:/;wCKok ߄ _~>.W..*EuI}C~%vY~t]+2[JSU{.I~\4"ndfPKac%TJ[PqՆGG]n{Cy͙=*/hV@;|vwJ˿7v'Cҷ6 ]8R5c\ii1NfhomvA{m)ڈv$0tU.vZh%51ׯC,dۡ ~ fWC Mp)p`<A1 _}"NȊnO[kB3M!3ѝ<18O vه3`V2sLx;b,?Az?jޫChm *9/Q]Y~EIzI ?\.*,(YԆF{kRMf %R9 Mb}Lw~ ޑ ;['^gYTQ{'nz {(dG_"vi*o8vsw5(Qe 5@ \gh]bWƠCJiL.zֲԡ\rz eXNbH>'ݖ+<7pz)2~y18?jQB{)eYUJ{NV?Z}0#dVt|zASڟF#;OCov ]vmkwvyjvvLk=jOv0|юn2;Roi%F]#2yiO58u&v9>ot@]NNcxH]^_^9Fw|щGa12uT! X7s&yihg Dx̉:e+;^pmV0^K2ۇi&,[u}1epM \23kD# J9ˊᖩ\'Mfi|Ս3pM@;H=KӎGvETRc?ϲ_Dx#Gh˗ O$cT|/BZRy0]tEc1QB{dW"U<{#SОf<-?x`beP-WtĎ ybp;ManVi{LvFs>=B;UMbh'n ^hhc)条;RNKq^ )fgp&''\tVw;)y{I{gB,܍zfҀA'T^"LFX 3?Ck%tG&D;>vnRn5 SA2wЎ-G$c$ u ;'DuݗH03p,["1[fxGb5 0/q3062vhʕh9]"bGDi~%j^֞Qڑ@fK|܁y&Ɓvct# phnO] :infChG#F{cf%`a!bܾ//412OtIvܱ*Jd|(FWL.T {S1S ]ͯ:o#viؙHi'Wvp{iG +%AqeLcH\w)iJK6hZ'Oi@H}Ī1`xabw)P:2~]gGp>-O2r c6zamFG̀i='[ >+M]ZJLEdD,CI,Ika&u;0͊ڤ/"t/uϟJjlx?z;"o=fPZٱ #=p]N$w t &Νt`c~͞{MaKmk C)eI}${ {#pkEV`ZC& WFНR O\iw\ˈqHo^ P3=(Bd*hSJhSUߥvgaS ۟ ss|uvW@;oM/QR>{@;5]+c yHkc5v9OjU$[݉X쾘թ؅13otּsDY=B+8.R5{+<:@j]n_8c2g8vf f&21WnE+հLq{t *;yG>Fck=;=2kĵ Zigc8=Gpv^1̞fT&Ij\?^yJle?R{aZ۟ZĬ(ӳڈۥei2NЎT[{ 9d`툔IS{#L3:*;q+@scHo22A尺?y!3x3|3`b!HɌv'{WSFwɴת;UꄙCr;= t/f܎*ђ;}/_aIkE_>G>rQK-cTcj-6Ɨ88VCCËp @!nSm(buO$F&3-BnG O"Dޘ}%+aqBCBE<{CIi}X8n4]Sc h]GXVq}~yc̬V(`vqxn˦ CF"=vxAx pU2RMMc2^o6.8u;A;r#k9 L h*4YuVa@cW$[q`B5~$OY4𢽻aJd%m<Ѥ»v5xiImh=|lzN*q@7";t`'i]x5ƃ =3d.fF螆.0:z%\SJy'~EVY0J>c] 3f)浕EEW?]ݡ̗$[Ȥe.w-G _Lg>jӾmo!ٽ!cѽ#/oF>~!ɓ o/F>"3LɵǠt?]}O26G~|_J"=yxL~zp!FfaǓיdZũvNJԖ/^jqvJ׽=;WC S#hSvJi IoGCS_A*Jcnp7j0^igbhǠ_q;)Zlm+.w,e&z"# 5ۆP <Cr{&Eq{ʢ1)6+@~Oѽxkzw<嘩< l0yd`\j@JY'ns̫:Pkr 3dʠl'Adw<J|хL{ktI[~pJe8ߝ 2kMpXYLbtϗܱ&C\wmb\Lu=ѭƷxsJQn~c؀ [ƹˎ*U9G^~88V"*PakO;q;pT{C{ҋFV5cnbɍg/bɽnaz qy:0~uBxPhdv|D*#nVAiAb pD~|#c̑껏X]}I-h/b{W}Y.9da!h;Tz ^q;A;q{S荁Odomq1Eǝb1t;B\,c5v!v9#3fO3c4L>N b\b7J7^4F!YbnAX;KT$ 'nqZt(#at6x;䐿Q<+޵aPs{zL)ƏD{"i5!rœ`Jؼ孇i5]4MA綠ǣr3Bzśa>LrqΌf8X-Z4n#3wkUq'D;ƃebty@;iaL[FB~q-um %w s˄7C YRMM,;1mLtW{rwʖ^ eA2_MN-f42*5 |ߡC @*EH^1șQBGx0:֒8ݖhvg<\ |hk t>9QK^l/r%vgÎn 푧=Rڱ=]ZfTXT\&oL}c}Q׵s0eNۗ#)-Mmo<bʪ8d=G4Ev!&gonwF;^ԉM#ɵsʈ&v 䏔 \CfXej AtedEW]+X qN_8 ia7[ 4Hf;1J5ZeB,1A]HB Ykӈn&.N3䮯{X[PXۡ`' U} c]ݖB`:'S|5iV\$ BK~at>O4 o=:H}śau{˾N˰'/׽VK{BR"ś̠+;yr n ~HuO 3&ő=3v\qFufnl ZSq_ɐJĠĊ .ܔ[&Q1dvTq%(,ZIJA4(epJHt=hPn+wFccccACW|[v1]%)VڱzeCGN.i&nڃ~*w;+@;3G{v/'ۿlb]T'ۧ|wQCuh+ukhWё on vA#;vZG84E;%hD2HhNuwWa;uʜ5=@]\.& qwlQ*8R9DѐF-Bi-LNxnG6f_/bIFԀ9gh[Ε|,GU=J{ze\: Kaҁr\٣CnF*}Z7*-&=d^kp;$pcɴOKNfhǴ4 bwLK˨ѠbY8oeT+# {6S1+X{53g-Lr$qu65N7,"ĩ&7(ၧVkdg9gRt=wdzǫVc{֡<' y3 {߸C$fxٚMMQcbj .V!g[Bȓ ޾CQ|ߩ7eݱKWI˵a& ݡũ+1'k0k_^O{;9m$@x񴷒k_x޴!4cd.@EЮbdhg{ ZĶ--KdҾSmltA{?۽ۻ]Gu+hRUzL ] mJyJ{f?Zmc䱇=PfOOdv7;jQ;vvm:*A1, ;̿ Z0߅nQ"cenhYsc5 aqU޵]&f҉ASDbu]lLR<6ȜPrq #Q:u_JK"<cA933@;w#ꙻx~|=Ksf~I+wx&v#tqe$aƫp_(|b0axvdt.jp$dBCy2QcjJYINuW讲e.v#fln]R@1@X/][PrcܯFk|MM3RW%{* ébIv+@,clU[^wI;&FjwQx](s6)=oRnR<r29mxfoڧ TmZN.AA;yE {4evA}~fgZZ(`MgKdCOqdţqUs4:E2N 3t< 8a\rp lLDO-fb;;Xpz3-I;JNK8m=TwOWkJb`}׭휽9c w>;$6(&aP14ڑ$W]T@#cK#]R9XGoYzd>b3d.j/Ko2ݾQ}nDezu"j}87 =eIY2{)O2;OܻOQ f Yڿ}VvQ%CvvD|9danb jFTլ o|Y4֪Ўm,fi7ZJfw6V'ѻhB2]Sj&W_)USh#Ʉ"Yc PrLkM}n_HH] 0Ռ]1FYQ}YgGK!$bhНop]^~gjE0!e |5{%sʼ^D|mzDݷ'ǎ0 2:w:0ʧgOI~&#ό3! G~ᮏ5j+8JrP#Ew0G{r `k{ oMDr2rU "vNvr{fQ찗R[Gp;;1) _Ƹp4[A#K.*V#vnYLNx̥V^Wl'T,>̊PiЎ5UU~?ЮR+&z}%DhnC1fPiOPah1G/?{cj?x$=@QgxOhXIo#])Aɐ>M- 4?oc<͊ne%L;wФjU ۛScLdon2=5>t >)+Rb.; X=)6xvQ*̰`DǿAk䁷EW~';¯YpxlCXxbxxdjE M&Ǎ0~+X_ݰo;pKL4v$5nM$3G=>vE vR!xf,CG ބ?rJOJn@$k$r#GeZf+j+rHuku I/0̄\{As{F\[vgp > )Ze2kw;unu]UV?`>=Jr.wEqcW?4Z{~CvE_e]vQ!B&vjUgn]rK(WbmLQ« w}rs7&WB7oYeB{Qgh&vծ18i=YD00>Mg;%v )Nh}2;&fGc&݃]"/nܒ[9d)ъ=_4-R=C; еE&xڍNiARKu3CVwv'5Gmx(T.Ď{͢գ)v: \;:ץn3AHxt\V/z;:뎏Hn=u?<:gYg/n|tN8W?x:D$wUQZy$w<}ks&vN;2iH A&Xܯk|W~a0QM26]}o僻J"јQS%юaPiYq9d0e(h8EK$c Q3vQu#lF*rv̾\#]Gk{LԈ(GˏhO{1^(:&+n)uz@;fu矒bd 03ױ}CJVHfwJh~{{2AAqjb1;@tmhͪ -âA g24v'ЎANL1t0pvW~}%ڴ1M@Bh"F۱:!|![6?j*i ;FJҠqvw5;bc|fQ)&#+@(xK+Zu=K/|Ú۷z|,oN6rTC0Q3ic6TtȗUpG17{ NJ;s߲ihVwT}&dU K.Cr_1:e%w+&H&0&>gBzvꦝW8WxS_?Z !n؎^Nm;d]]J۹58Irttkh YeՊEe[XЎKmAWB i1yVCǫ[PA>ُiҭg٫ڡ##о۟rЎuT/3"aJvg1XMMv, c8mMή8nBE+MtL(M֦Hy2N ݉TB2\WK纺SbGhulu VVP5Xh-vsMVI79N3:j`," ,BK j_Fϗb 0~a)djy$)ޡ5}ίC;U4M.J"kЖk Jt֧݉#&S 5TdwxutGq7U5˻o>|!b J`сѧ&U\${C0^SMA~/dS^wG5Dwj= at^2U3y..-}VEtOe*ڙi5Vm'dUF2K{: iTg]\g=a8RvSZXQ=vk$_R`sCAw vv[GIF*LkG ~T QU Նq=Q@{=XUH 큛]OSq~km+\+;Ҋdn_مm!cڹeڭ>~ cҞB;r#b#x={wmaͦyDC~ ihez ˍXt}U57ּAhd(x͚Grͪ^)4НlzH#»vw4U2ghF,ED|N;;HIˢkON gu)[vd t (gYn?L~';3=Cm%yu Ew܎#zOAr;s;n=}%Bws:na N/kG ?K=pEzBF02n{^ʀ/!hMɶ CtAչEr`2JXPgn+Oj<cc'kw{3* ΐ1-ݘ"S\$h!>k.ۋ2uQ3m2!SEըJN}D\ET+)ki#+'*G *O/T3Oqv.stپĈvpQڕgڿivQYfyL[%8}j3Rh1 sE՞vDDcZV;'c37(xv@;/*ndvv"=I2.MdbvX]ި\ z"Pd! rfx| {i/ \H1kEr?"ÙmXέ:PO?]X6 AKTQd_FWH[Ӓuˈ.N^p ثz_S \g|]TXG}3d;]N~13ڙ:j݋_R6 ̖ NM2^o]Ԡ_!W ")EunS7mc"O{s$,B=\ #cc ;A;fmퟅCfq0/k >&iYc€1`uiubQS[kh'vl"XqڻhrU.nzF`42Ƥf9G4]&M]$wa2]q3:M+ Rk:Pݱ>U7Tq2|e*]ϪjXgxBc<3nb QH#۬y <0^A7t~u|` G;p5ۨTx'VNxI@fo.Eub;?Gv7χ^&=݉'h<;cUWd895(u޾P dWyKٞO)ю K2bigEۯc, =Bz2T:Fnv=d_>[{v5 ɝv($/5@\*c2&CvA4W%nT|zV# bgnthGI\{gyh{w6iw49&m+ 6`{$+\ww7\Vʋl]1򧖬5wV2ESVzapER<[bxjh(X" \4&O^dziQh[aϢNo#I=9j(dw~fc&5P{.@%֪áםP|VOڎeSսa=17q@'CFNijSy.~B0t!p{[FV*^?؃厲Tg_0c⊛]ƚdA$FL^ HguZ ;H>XPIԯ3g"<G*lkGs㣲*p&`p`پ*b%v'hgrqo%V%n&&}=b,2:U!cL2Kc[n/GDu*CF2O;6:AP]Cap*EDJ{Щtz?N7*7;]'vt-IF}Y_#^Ɖ(FFv@T ~@֯[fF˳֮vTh lWAC Nt[dhW{j]22۾: s+>m2Z1ߘs-SU<y ; IrvMOTi@;'`P#Ӵg9Ŕ=FW{72K݈& NoG\mн`xlPBw(Ѳ!XYe֤~qm>94CuG O@uL: z#z< ^[\%&g; wTa2>+[&b!@L>M u Uwf˙ g$ FEaeAm3u*[_]xڍ3p=!s*K"ڍ΢11j3d(GgaW -:۷1{A>d.?lǽlgUwکo/}T?f,S߲TCivv#X$@o'b_߈Zߥ]'h=kw+@L2:: aNُ"oUZ"Y(ZvEB KcS ^U Mdwov- c}%-On K=+713{9f@Il 3K2jKy]u`@1Cu/f5-NqCQL,;n /5OE]40G8f t;k6_˪ 7ɧTVmzAf5^a$D^%sB(w|TӃwGAT v67*] l6X~NkI|edfUw=\D{l92nf) ݺeeŘȎ*47 -d2"{]'oWaJXe2!t?a}Y=˖\PEL{ߑb =ig_B \yg`dpd>\A ѮUZ>w%- S`{x$~']KE+3  #2]w~p{c|22y2۫AHשZi?ZJPyc Kzn@;Б }mǧVu% ؾ3K-y}~;H.ѭBie@;fF۳!39d|*`/^m'w6Dk#IQ7ZfN6X#_gZA[= -ۡaqUR&* Q4ЊqNy5)_Y{xJdauH[XW3eTl "d׌⋦VG$#Iwnk2x1$~ "+t/Z5xuC$S[@zXzmV$o ?5B+6S%UgN|1`U-4YӬx`xɟȡ=xد|G;t{MC/d<.iA%'4U.螸]n ]s{ˬvT))v-O?&F}26:Xr@ c]ݭhtGb!^m1xz{Ew78el ] g:u󣴋Z}@lRQю ӵlJPnYvT'K;*^NG5#K&D1ۋL2\JHe]*h~4Hnؾm8uۣ%6#ɩVer&_U i)8֋ x ջ5JݬD Aڮ?nThbQ*t%!öv \1!3Ջ.|U9d"h- ^cxKdDޘhlc4 T;u.;um+$-PסAtOIT+Fb# Nzfekjg|cT'^e]xDMy5C~_ٺzpK7 iil[cx=F40ih9jFǃׄnyxf\uC >o)ȫ*Kލ]E>r2X][3'EO?=3eVo'\"vޡU}-Ù- ;x>G{]%-C:Ubr2g_=&>oS1&Su˖ɔjG7 Bs@p֠-],@wZG/]Qx3pe߾c~qrȐ$2!ӎ hYzlwJL:n&Fzp.#V^Gpv*+!dկ"e+~%i1Az{OJ=87#z~;t]ZG+:!CJπ=nnvO-hw (cnVZU]TVڿAGAsȩ)܎Di72p |ɡ{d/;nGLWc1mOKӐh ˠНك8eAw& xjt* !y(h0I"|f-X<nw)SD<2j}!4P4ޭvN=P>zmқD::>NPCÌv h6RyOS$ndA;LTw|ߢTw_^MCtW}L(*Saݨ;/C6t&bk-31;p|XuhtU@;cfc2^,wub_bUƹ7r+Ͼq3/~~GM5(ؾ ڡ vl)^nܵ=!l ;}kˋl㖒l $EucduAnP3XG}yݢ{EQ^TުKQqCڏVJlT8d蘨x~S;jٞiLm7ކ{+HؾuBosrp;g=L2YiǠ |f8vU+eH~ݥ8O;z`}hǀ>R1a;fh{7c^Ry,.ЎUw*=8KtM\3Ț|.K#M9;$yM+FPpD8HD2p$*YU<3NS૙=n4O;c(cig }elUj17o%ຄ)Xm<&.>dnug7.Jl+ Th 쐩CU:AEil/ib R$9dv$KhSr v)NlH_q{epxv-uԽ*C&5Hk~!6/q{q2=w'*PJ(EcAt T1wE17t?^u]WtuȐW(cJOۑ- R*i-v#LNDlwxbhgڵ)-Vr:_J15eU<# Uhq3`{rLv&'r0fR/3i*R/J1+h9vy>/x-'ǔ/@xIgxvī`5xPx|B%%'2S,|/X=CUCeO{j-8;Ix'|)2j 3bja1+<3 d3Ϋa >Y8x?\$.KXN:-(tFo 5] "t+}?}9y2|KQu.}|,,3W^nUݠgw]\LҪg/UEWhM@Hsܕ˝*RF̕˃g~e {}Pk֎DAnY2v~EKl'fv bds;Cs9qkN&M ȍ!ɽ̂T#nُ%_ݵ,dC{!sb Ucdv|hUG>JVڣ;On3=$ c}$HDpR^Gؾ0VC}aڟ/l{¥[g;yhg| ˧a̦ɯq3px5vD*fSZQڍ_6C GDfI`'vHQcpq;^pH&X#Ԩxp"y O)4 3`bEpԘ!pf3ҧ;W ,\yfx-hE@Y Н`YxNjn?E,I󭤈?k&|`B]Vo8ޮj=p:vTT< ӒŲ١^fLCL HWROe|w#gfު>|*~mL2C4.9WS*T_3eOY6yǟC*x%c8=F*[M!K12iגd׸k)Hu&#{ˮ#U U"I$` C;1XPf U>\I9n?R&/pCQ@{C{4J'kЮv?d.~-A;8^K?.̢#Q"RhZ(@{v'#OKIS@iw H cghiQ0B &sƇLPkoioCb5q8J<&뼚\nG&|3N˞f+e[TNn}Bg+$KU TLz45xrhpޒ~Nӈ͆ZzVbՔ6CuL53cL dy d[-nh1y|5y5 MTE/0hed(b @>#t ݋˘ࠝk'/1;ݗGFwAh _8sq{zǻeTiUvXeO]LGYɈ/Dr-ۈ{/_|+Ϻq~}ڱ*2dHlq#v@Rk';mc,$nݙd]nuNɈ ݎ۱L2Ю])l|Bdخ[8Ǵ,!LƋqJ~ ,[c"h7WH*b7~z bn_+:Rg?.v ~ v}.H".R+n]{i"nGi$4dHƀkg%Y z[We^b<C;Kq]]Z0-I}4&d>wMO Y)g3;촂AbK?Tw9FJTXhVYiՄI)^wBdcHbAP\ǴǚZW,^}~zeV;NέO#a ?Y'YS"gFvw@Ke{IOrWm l9k23lZ5h6Jv(7`w(Q ߅K!o씿Qu~hkt|]ѲmnCS.33!i|xG'nLt6h -C֬ROӿO5xFF<^t'ُ%j"ؾ$?fdȏ9x'y&HF{jnݏ2dbd!쭨 ,JQq٥1G=JZϪT=o2 6[K\a>?CiGݒv@;faS:*+c=Avv SyNi'+3ZQ!n~kC;L6ƓIĎA |j(XE?rΒf^AQ8dy @VAP;ԝFt35F/B/"nSz1ƣ?]ct;>T?Of/My7R̚;)dכs[|~A//';ẅ́%AԳ Ȝ" ^n #tkcG릀ZeTqNy#*3]l zrHlb);C'cvȆ 0T8oII/aR*Q]z O]fڡ@u7W7Z=\ XL>;;.0tv2{ALUPw~]Xt+&ʄ=—8|bQ)7x{xrC{بv"F8Kn}ڼjm!I*IkW;.&N>Yl'->ÍTcnvlA#X`eTBi?Bk)>AO;$5-}v|߆gh{z~/cS$;?%%Z}q!QIl`quN;1ZsqOocZ+$t1!Cwi-T;3>@;^V n6Ո9+NNR༧0gpMCPS/ ^q*=f8|Fx{]흈CRXF~GIroz GgJ;{ݍu#w!{0>lQ}-NյJݒp)Zrv[_csZbv3uq^oO20t/mcŷR_G5Ў'\G2k[{i?cNW>]{<x*/:7V%@;7odI}}Ln'{Zh7vPVh>)ZfVWC{ 6,vlPi d[Hfww3x'NjXcDԭ݁5|4Z_52? ;֣[nJ$J lb7QX_*q:`  ސkyf.Ap; i7+A@5Bnh wYl|hPx%V "WqhO>iX5;\$eW0y=1Ux_X>RWu#xy˄H$1Br_p9hg}d1;T m ,֪wD[ΖM`Uc}] હ@;@2dBrQJ [o\idx3czUڍCُLؾ>w}vgn)%X4F?^I6Jʇr}N/glp{ٮdTZ12fhnP#Z~8lhǺ]{G#C;oޅ읍6RggOen_Kwv̂'-{]A;u6䧷js[ZVkIEw琇ni ?vjj~>"v;ho]$ww9vjbtq7Hk!׎vGG+UIjN|cwU=֎9pѸPGΤDMR$IFV|0c셃s yB$Ԑ>6#<*h)7nC}m*xx5R?jP1R oZ~cWlTx#>] 3QLN; w0rb&|ndˏ vTZh k[k u˰ mo*0n rbML33eA PY;!,w>o3c@8W;SFȐb;\##ܮ RC3!2c®%$#:=$kJjnwӋ1Nݒ{_|Jwq3}"v;.='ؾ7wzg; %*F&owpq ӧWC&I}U,QjOɞ@iP {|n-oJ;}o7vVl0k:JQ1v̪?!h_N1nA;h$:فCƯ9}Rg=! ,o5AUsoSI>k]bdWC;m6Xnz r> O+m#% Н$jVٓʹ\l5$ 2wx7A #nv^%ȏ-ewfג]f6 ey33g9$d߀DVQ .RPqC7pAm~kڪV+@A+Z[놐L<uz.̙ə!wxoܾfkH/۞aXw23xOGn@U>*庉v;-go]&p;{'-S b_7]Ƥ[[d36mZmug?_0&]__ |֐?EKۏlGY#52fvnv!Wն'9uKF9}E|Nyۑ .UI&x^v5ۏ H52 +㻕z+S'M&О1O)W#IW=wkyNfH28[Yߤ_+ !ehnO ];0ٺrh_R},Qg4~Of}rhOy3hG̮.>>_e~b~8C3t\=Pdj5l:M5[ddH8s&Iy'9Žf{)2j{) Y_2ongj1 Nyf1ISfSN[f˪u[2mFwϽS~ݒ3dpu3dG jdv;C&7Wʒv4à1qf%Bu1<ϸԂߎ]v@;.l˘[ӺTfQ!YT.Vqh%&n՜v1B9ً./>[Ӭt@wu>p;X}7M-J@*%K4 ~iڬӴF<5rfʣTtH~@?<-lNZDSZ{ n74Q^{)콯J~¹krcUk@ >xlOf;ܾzmICw%3sjs=59z}3Tz`5Eѝ. 1̃ӕLN}F| e, cjYTbq]-3xF;LӍT8+uSO=e=~<ܝgZ|.^?ɤTep klnL@w_,S>6r'_qhЕUކޙ4" <Oje@z9Blhe>E .N7:]4oGi3Χ=D1ށ|M{: N y2`R@{@B):u'|P*\ஐgXTDŽJ)ΖD3Q)-dKtw;T-^=dw{˽ZtF/Mٷ_'GtxAuSN7*֧8\o-。_ߨ@Cïf e|IE2o /fh$C;Z#wvAw!l= -qqXZ)uvU&>D%*B; Xbm흸 Uw0c{*ea_uΐ)_ z|ﵩ7bF6+X橽'I$wM;$l?!![ގIսFf}v yٲQ-l'hǮUHBvG.;<= ͢Bk:>и}ifKQ iOfu?r9A1v9VOa+h .FGyՏR:9rOq]N{Xy!lB!PwK]iKUTEnV[.N ߫܇<&] ?{DM'H q;[Y$ոyH&*Iƚ+l\x(LChHf?ؕ2gv7ڶOaiL%q鰉Yv7vWRK'RNQh?G=,!=1h}KQݯjyrT5L&I C:70Nvd y\@|_g(l7vvvݠ'u*q;j$ `u[}ΚB;ЖUW]4qXtgeB 9A!t'dSwnǎ䙼vGWF){}ij_~+]z eܔ7+0'Fh d@^$'ϟGOޗO·;s`uH﫨F{i ҀxwP7jܮX%qfRt'Du"Q߉'HrZMil\w@Tcϕ\!s!Mͫ;u ^bFIu. ST ɍ[ B;UޖqE}uh]~,}ܣ*smݡ*f<][pnȝ ܥ]_e^cz?dGށ Gpt$SV~s{d ̦['.mnx_B %_,ɔJ2>lq;ajY d&?v‡ߑݎT5d|؞.ZR2ub~bQu't81;IW>8}r<\ѷC?-aH2ll]݇Pe 521lsu+lZEҎVvoa{CoܣN" t2Iۋ@cA}s?2t#2v3H<@~>qT-I. *:Z]"M3cxÑ;Z! piUq;=s9̫i|K4h@4NgS"יd)ҁ/#!ݣ0 YPі2,Dl*UcF%Uֵe mnGː +p[ِ9fd'ts8Z2.C&P[LH͸]9nϦSlJ%/o\J=z2%%ys/yp Kv3Esth)l?N1WlG-7dzoYTDNiF)责:F%v2{%I^"wLp+Ϸe`˚'L`mkmd fXDi<:hCw<:ѹs3.#vI=Hﱔb|K#~ʙ X>]#J9I5Zx61&I^XAru/%VFJUUn$ gs(@[2%A 3˽\z %hǡE]SCk2|;~x4 Tj˔BnV RVem<vJ]R +o.wcE5|vW5ذz2w!ɼQ=H2Cr;DkZ$Cr;TLn7Iv4]ld@ާ:mNqŝWkN%JX =0]*v|CƭXa;.,dh/i'hEb4NRGȫq`s7~.2YM-n]evn~e=l"nrh֕ gXwDb˾%u4 {G7fi |vE4cA;=n g;~IU3$c/KyHzC,O-{IR"zULVV?3fx wz"KG I^p=uݬR>ݑs~sf1Z#™ݱ`/aZ|r>fStfƄKV{6B娩 fUHA -7I}Utc %ο\qIlmO JO;t̲z|ܧH=e}@]zˣ|6-6H;X&e|_;n{3t+"wB^ Y(_5!K`K.$2~՝  +˽7]`ul8p;]'R&R܎Td NӋ8h*oE}P*)I24Jc:$st&RcFƠ~Zo߲^T_I٭WҎ?y2IQhKGd:A(J2ʌw.~4aRCF2H͐YH{ԯ]vNڥWotm>iKZbbAT -ihG-<*(nv@Px +Q^عEec_^ΏQ,I#eVtl+}:<~ CĺxLHCU8%99kd3h_߼rMCFQqѵMleqTfCTtо~o8n kn WGc.%6YEc60s[rحɟ'\\w&3oת#LP߉9U6#kjHpf@ ~*XK3Cw~)%ޓ7~?XFwx] a˄=ֶ~lOI!sbϷGCd1q#z4+=9]t紟; Qan+C?^IM2vO]QY}_B eGj!lܾ߮u^ͯ!cI;TگV>PbL٣q= |M춧Dwb$ik唺ǰ] ghXJ9|St_ٓnIc&~d%c'[4^=uyĕA=)_zI>ex7MgfDC4t9_X+;Qn#󶌐Kod3?Mfxz; J-uwI*>Ik;Naܞ ❹(НGYf)u_u)-4$NfT77Rv;7 $@'-Kg4i#:\&b{.{"3ih6 })Brj RtOtˬX?`B;q{:P蝾x+F=/"bC1{)iq' u-Y=m(杞@i5 _]{YڵC vJ5AnH*H5 l$S2̖xܵ8ȃ K'tɆRӼ]R\&SY`V#slea~, QCnWΓzi?rZ(QlӔ@;s;6eEO;h#e1`Smȃ޳OZߜ?3|1zG;]^*%by>[.{"=G#;{tG8NV .x@Sixt;ȝRPD\;+ٕIѻ{rv>KEq[A~?T&oGfu^tͣv"eJ0ȝbv>x#:Qu;z]X\TeB,SB,c7]__Åxt et1HH I&ޗ[ݸ=J}pZsO{of}G˸]jY@:Iy2.q%$s4yv-TZ$y{72YT9vԿԴC|13TkUOtQOKO.%8[ ?S~bK#@-AqT +0 nA,oŏɐ1n_iFළލZ>cčKkߦ)Tڦ hxLmvCwJb.Ѩu#gP^]lؒ5O&uM˿~ßcUkhyd+vz;.OEtW xKe5IrO FM&;=p{ =635AOL%5 \nWSz]mY,XJ=V7]N]W 5Ũqa;Q8?/N4aЎ+Q,=r@7R}T;f2 vv5Ζx@-$இيWYɧGνj@_] ݜ=D`\>d=|c]; XbY *oOnd,`A*@n?-D6@b kR.$.r;_UL.ɠ3-]ҼT97}G*{dٖAR\nJBByI2qaa*QnWI&]nC?vTh'ѷ[v? WZYt1g {jBDhԡ%1Won&GUnٿycg&+' \qTَ@h5:퍨0ñ!n_ՠ9,iΏ1+R nטv4%[>>tϠ\~m׾oRt'U4^,r5JN6ӯQw/0 g_rl?TKV>'i+x*A{l)ywqgn$w<.*1{Q #MvXQz'`vkX']@[&!"@rl,6t;KAK@SSI"C%ZPϮ;&)uw#X>兙UrZ|϶ʸlzq*BeL}Kh*/1*F>'i@Hݫ"w4rudĊȽZ>'32n5Ky{RCnʼnTv@+J TJi?-p9 g^az&hn) o.~fp;onl] uړݸŒq_d΍4]$dÓ& xKv4I˱bU$\A(7\y\UfZ9'^Su$ΊvR`UԚ5A{]f2|)f?X\eqstĞ #ڲ.,ۉkB%ذNS*%/0N:#HNiVVxBZiFxOi) Mm.|iK) J 5v{`xQ=DpcRiu3[<ݤ*Eg 7`,ZI>mb7ݬI@+*a {8ʂdh:fd3h!n߅W2K0EyrP =6 sAsڒ8ʤ>n*S),>a{0OHC+lH2)o{0#R"b Swr~ +0eIzlGӢ%x8wں%0ۚTɓId&M+dTk8su޾^?KɔnJTq)e29r{?$C8lђA;,l? QkU@57{s/~to Xq;K#]A;O=dqh~_OEK!Dn'Iy{ho#{4_qfȃS=ru Or}12*Pk/>&dվcvy,fiQx6jb̎Nյo.YZÄ,8VojJ6yK{ |LӔ7㵀@@@Q;MLkKh;Q5EJ*IޜwnLjoI;Xa> ށuv9oA&o>ޥ~v99gO"MUyQztGzDeNVFYwŻZ"$;ѝ4r:NVH~gT/XP8-M C`YvкRNq0;{Aq'O-?[P]MLL%Sh;m~d;̀5L͟sFFV*N-S.Oq{ 6n\ո}~'+ނ4J3oPا&/ ڕa5ir;Kg-ꁜK{LY;"pL;Ʉf,rʔ09o Jn PIm('Ri*] :ۓ}RvXzE}+!=& Ogh9V`]v 2O(I&D ө6dnρɣ^v|%_YfQ6֎UKsպƗ}Ҿ1ƈbu'I&Sk^'@TDƃUVKWkQXŨIp]@:~Y]{l̙,5TyhdލJo`ݔׄ7Vr;wy?F#\ò>IH[R%a7]_$ݡx.܎n;]ԁFk͈,S%gfef9B 5a]\i?⻭UMT/^Цe: *Ne@y;xi06x[D%}^Dwj8w{T1 ar YSUfv2ɍ,rO"PD-wAwJ\P̀:zd TFDޚ:Wq/et*|U\F:UeGWNma%t*]_ ۟{"V$\!K j-Lv ۋy{Ydcͥ^))KAR# ^2}w>h=v2\Ad;]ĄCLOm:d8i5E a/o}?3L“ya8?*<== $n?dc(A$HUh,g-i7Ik}cR'(=Dx dFC6 XE*{Lڋ.U6HQ~u&:)S2Ok[-l'-YNOĮg)-+ǠR,Y=z2ZO^YO1j<$42 U>xOґy+:ߊYk_ <zGinZؙnw_vn7?34/uan .'P>uGM^V莰ZRzJr|`>%{"'h3V(C^ ?}̂SI^mHռ2x#\`2R?[..ܛ;{k\~JiRu~;la 0?T/Nv!6ÿiy @Nܧ&RcNa;bkR%lIMPq;v%@3 l:n~X2j?'!ܮqTVAw\*`5@l}2r}sd(1IdJפܑZbq?g|kkZ_>wݗ!z=F3+c?[:<'2RIAk"l0C~hdˈ+ܥ,l ܾq%OwƗ= |^_nuVV~c ˡy$H>oܾ5Kc.$W/;2yL$?2| /llR2y%yI㋧;"b<>tx^Ԗ!V9MOvޙК!;uc9{:>S޵d/hRqVkxHVaPM Z%7ގTm =Uи"UE 0S\QFʲz\Dи(CĖ{/otxy=PLw?!=ވN:ܫ,w#AMrrnr2؏EOF'<0hZj߫/; ?_^K>f;q;vOKm텡T2Ú|(J ݦԤ2@jd` m|৉34o/vs\InGt Lz OHBwۭL&R$uKَcd\L0_\NBjdP Z{\pixvԾw?ЎM鋛n$7InE89XzW/i&$ѱ[4۫L^w;r_j0TMe!F&WO!^âH:mh{T[- ӚWוֹbtO9KR̯i$ԤgP 6;B蝕x>ڣmۅލUgR/a<%,xk 'C̙nvM1 t: `#=`|$q2:JqΊr >MRjt0ǜn<9=#; _ML-As;t%IrϢ}:{6:7[FD$ #Rtw:{$rOnދ;~[ fgrp]f-U8U߼i8ٮa#zTۥRR92UR2inMq.Uz27d^tGU%*3KܩB0 nL,nJ5OGCs[.YdF&?J\nA;WJ_;gv_pہ^ p^>x6@J|Fٮ%)rb˒26ja;]Ty^kghG# 2hkk\MfFxz5!V@]J:+KA}~Uf-iC;!O@ ݳL& o%nkpjRw; jO&GKQ#$;4ww 湔x2jRPtbI3z~'f;I8ny3Ur[}lKFctlPp.4~1+0ih͓i`aox,iu۩Se;0"wt9' \fH1Cʟ$rtFDw'.fpQT ɢ;."'LILz[Vi63Vw*m7aetHFtB*}"w<-p%i3ωwQWI! {44Wyܱvt2QjYQ]Rm(kI2UN+SIuTx;!lO+eh6k+^ޥRYn//o SI Cq =:NXCgQՐA C3{/E?3-{8H׶D*픷S> Ykdy;M/FU{l7CF%[ߺF\݊LLِ5c _!0SKڵbf_*IRVS#هP,{P4x;Gڷ}m~^DYz|\KiK]Hu£y&;%azO*hxwKjBNiDΌ em 6i9?nZ9ջ.Z4<@N{(2fTWQozclE-S@wvz^Y2Dwq?)urUOіeŸ<bY}`^-=۠lR7;d=Ì{ROhV?qyEVhe5d7ͷ?5W`?⭧^CGNbגH M2a(54ɈRŻvCqZg–. Kns֣hIqngUP@f[NGGSDEnTdc@w[]*X qR=5@nJ%]#¢VxZYTD <s3sLWX.0nwhq[aH2#c/@{d7>E14㨛na;q{ h&t@t[S47(+q;mIvyjﷲJ "]T ]ѽGo٫~of~=qxxeǿ^fM^Oj=xO˩G_b_.Ed!ߦ=>49K/n|‡Zxx_ /#&sFZNۃH71oid #`!P}3u9:Xq43Nwi|н=8ugtJ6[JyZ&,iEdΞ{)g3NU΂edo0Ql~(H2ܣNXݩ\1tum.:Yv$2~a|jζF]7Џo=LyPg,? \zl)!:4W~x~#>Ec(l#{g *P_ܸ<%yy$rʖ.2{B=n{B@GٻE%2'*HӇFnwRC><ϥnWy2Pm,lwd$lG~ZO;dYTvPqBw/IRܘB  .~՛ O   .edèa.Z݇Z2le^ִVvoWK Mx7Mu۝06`L5$fߋ^4gQ{v)L<{ Z>(?K̎:%FM y%~׬OKGj(dǶ:\=ޥ/斅uQk~D4|7[gzc}.^S?U /u12$ḍ9V>GA޹]xwѨ~x& Cό^2kQ+: [Ϛa&mq%n/fT_nI:M@&%eKl?qlFՋs zQYCnn[ife4 [Ǖ$h,VvvFZm&F,DS0ajm?c`u?:c{%ʔP+\2%{8{wH (-(roݛx?PS_ dyh {QY$tr;5@$K2H}oe2(Bɖ>8-o>`8J)ɄBepfUK R=sL0\*erO/{RN?& s8\)%_]a=6!#r6\ȐNT/ˡ"c%xwtķ){ ϋ(c|ZkDEcTI4Ƈ_&4ˬ+Jy[_D[]I/]4 8/fQ֑hc-?4Fk|xBȂwD:1u}n] [~d:6ҌE>+(V_ lSGr;""f2t7 3~Pue7H[uHݳU n6ԖI݉@zq4Ʒa3O:q3nޢb>bB; 3ܽ^v%Ն.ľy_6=!tNa<~?#$/d\1rg={~n#SoD|u _ ǿ>_'d_!pvuM*5Pۭ=/H7j6mJ{.w,o72a{mʷZ4V/MlCqBn.RAa钖PjH}폚Q `yn(PxZ??>3/n^E/M$23g'^n:M2$v|C Ql&9}S\=n\m}PS&C&ڃ!lBƗ]jbll^n [J<+C0sDёTc]|x.CLUKQgoMc_6:Hq@U]ܭZڕ-o?gǨnRoǠ!Gn&=Ű C Ll}~fGt_2ŗQηJ|~\etXA1?]Gho_6xn\CWljqQ-l(u-5iX4ڛxtOݬ@/ ݳ {5&hWbn_M=Q7voZ{Tm lc#>(*=؄B1Z jܞE1fQ}ODeRt{;;ވIxOv'gzojw[q|uF¢F;ؙ1t'gI{+4 IUxP ϴ[ưg*{CcH-nR>^ơtCS >Cnk¡JɁ3xЬ:3&3-cҙvfKJ}&@;^sQŖ񑻷eXi{6h*TPU[Oא}Ne^^h)Nۂ\ո_';k W+cTN_߄s6@H?tѝv^J{l_1!nyp{&G.M2qAI2f8ӻQk\ծ~V{qp;|H28NjEخ72p:!CyObQk%Ӏ2amQVs)WЎCz v9@7*h܎ꮥ̐9pv>8}1!i'=àg]d\ n߿E3r0ja;އ4I]!1^"ll\an]1 pGMcg=Fvy/=r4A{䓌нIe%klcؖ Ϗ L glKb/KPf#եi5Rӻ/L2G6iM|x8* %|5s3" "|yBwVh`~O ӰTtH-PUmޥoՑDOH;F#eF'I{$k>_؍vRrL"HMҔ"YfT!p3$P_[LGY5otO#w̽L_ȏ%EBzJ=[;xGPYh=\Yg;%(2h/FԸIѽqc3Yrv+p7?r(d׍,[4TZ%JOv)ۍۥ&qy>oW kzЧPm0tTmyT>#|>bBG%nr;ƁSnTA=cy{uJ2I?-tȜ-K3,jvp#o8 ';8ו^ K%]g?r~Q.Ws6|$?f3d iK-4Z óZ#pp&{'a;;mZ@Y}'|O(W#z'skX"|pQ@#]Q_#xO[Nݻq0OQ/=p=l `ClؘooAE8/-7K0j'1躢v l}wŊpy5$~EuB2!^CxfB )4@z7MIiPg a+^+F^5x-O}-MGw'HAu[}lo BSX+ ైEI%C%2TҮOE%rd˸6vbk9f; *"UA_ۻ~S&$}SYЮ6Qi/>3ugF>,У;3xv`Dt,U̽&~sƧ>;9 pilm-U_ adn^tOT莻1-uy;sT hR IfB+]Mr;;u'DZrN;ꇯ'k D* "s! @2SܓJTkL'Œ5=uԽF?\QKܝ'{q4k*e*e ˖Lqϸcm|ގ!AwJ̸=4&RQ/܎P#r1dեGgb񣵵{18v}N'xlm{Z6Liy;Jv@ćǀHհV ?aN'G +EdavHlgVnϠ܎gФ ڳth52ΛZ}#  ,7v_kÏqI[95IfcK_b׃$zϢxjN>_D\ (@_s5hgm_J54K<{Q 8Ke T0O}*VfbxQ,aK$?vwgӻt‹ dSFS06#h~6HwAwFߤfqi1 a}5sEZ%?דjRz)#BΨßף;vE%Œ2 ^Ve0eTI5LvezzIT}'d2AP4g|ǧA1vw%D+ڡ/e"wW,w*&Ox`;@{@Uvb"IiV5@TPjc$ e۵}2^*H<ٔ]YC yGlҬ-^g#w[2dA1,-Zq2I+evؓQ<vOHGN\*@JS-ddҩ-l?=p?</qs&v.b Gm/x "-_]rB4*WFT~1mÓЎ߯=v#l,НxBn9y]-Vk=[ꊏ~] /_vZ[׀;Aw ƦJxBd5s׬ ϵ99O AM!w&^qH_{#*ZeC=$@'XVr{̳o# H^OzRWh㩲񝫝n>kAufx'tF!t$x;\]0 tUxtQbga&.ѸݗK}dB.-~#rFs=WfT@;.DbmV!L6LPwO[\CJ#wi@5Qep "Tv22IvcR{gh[]دDۓK= !˝[ 2Slr _ `)*>^7>"ItRns{Od<,̥ enGyH jha]$WgݚjqonGN=LmRUGAq/+r߱Lh*O&2GwRs]qԓR&$#a;.< –h ._ lDMtvQ⍅>0 'G?SZca;&W6dBV3vW}B wH>(á5oY vzĺAzOnl\Tv rY[n~;]/Ur'(ha]ggQ _?w`,H2n֤> 󸹝R9o {rn/zVZ讕OCV[rTRfE=c|up Dt45nt/ZP/_/Ze6T0T5IJV[SEFSo/̥RWJ6Jۻg!nŏv#ЎםngCFWz.C-l׼@0h{`j"lիvXn|ls:,Z@jʹq5v?=B;on.Bwoj]jI~/ln}:+v<]˫t;5qt+>8j3cvEH rؕ;0p:JqBXp,ڷy٦ -6=c5? r @Gޙn`wlEG}/ሊ>yḻi܀5$ذ] I 4ʽo{\GC[\).Ib7(44 մLҲw7wfHzw'ƴvƪ=-N.;q;ְ(Q}dKc,xRJyN,TVn}R&_gB&&RQv5 ޖ{Z8QV%uO*mObXrf{'.κelM*Sb%uuȨO7FUuEnK F2ь3'n#j 8*j:rRbqPlll]qC>YC#$m5 ګ A=#Rd*cy{9vG.o{dJ'L]LX9bLܝ/Y;T^6H2=Th*Q5R)Ʉ]*yv휷%'Tmגq{yCKzg~Vs:/O"?*Qu,ln $U*jE 4l?OܖK ?t/7d6h L!zIAO!IhN{8@(mac[=Iڹ:RjpE~֥pQ_toM Z#)_qps Sb'w5UXy72 nO(O%Mv4o$̟8-L.n > H&Oi>oRuHfP;/]sE:-8 h.<{P!oޡ@X\0V\ ^Z8s"[صDŽ>SnTN5hߠy_kpSz$Lvm!]J 'e2oOd@L CxfP'6.H옢;|!8b_ϫӯ-@~B4/ݿ}.}c|Sbo]>Eb7i^MKձtaB!ׁܸ^Vлc-[d?`A9| >ry[roL߃mJM>-a+= }̮!@I H 5!{u{ C; ;Bxr(4IP&|R R8=\exMAgTeLCMz"[&[#wHI1bj[7| -5Ӷ{tjV>Th361<ࠃNRݾNNL2!y\M+x˭,wpbP%Ў1&D܇D5|+p߿g^a>nDvۃ'@:]1rCw Lȫ@2U۽ROV3|T)=Y};!Za{1utOK~:(^,0KGr.[SKHLs؎['#=Xx5RۮHݺ_ը3q{)$'M9m fS n~${u|3dp#?K`᷀na&9vjd<}օD;,fT.s&I{[Y)6yEI|'xMmj&훛ñ+4/a{W#ImyǢy>^4nIcvS ӸЌnO.@6}<΁?}} 8I<"[lm"y1%kh8M ] mVꟁm7ޥRr)i8А9UhX΀fBCݴr;cIQ8c!\Ċ(xv.}tgF$޸ԄAuɝ\\cxc &-HY*)xS*SR e0.<}-.%m˨o^_\{ŀ*.|D|^e}C_U~^FWVTs3UO%}{=/r;GM7\U? `5 WznP}jQI!l5Ia4B0wL!o R8=phvظdHVIN::Z3tj2ShfHm&NH''-t1=޾өdѳvkKȓ-e()2Hj~vd2;Wtޫ{?yХN⫒_P&d5KJpIDj"@~ %Wee h5΢&3!'n'"KV#vviv A l񜨝|09cTL+I“%_, n}W /-'JL"|'fo2qCNS]rl2RgVLEt]7[LUK)뢥4kD>j'?ONji~_&ځKidZ'#pxQ)8.WE,lvC#Z=.ܺg%[,KMz a_X:tc[Pm]P'~iGn\ B rzЬQ<˸Fl`3uqSCU5x$mTsd7 P>*vѰ푤͌WQǣ ]Ql f!II{°4T Dy?k*i~EHӴЇyeBޖɒd ھNdbgy@xuHLQ5ѽI\"r=vMLRTP<l/` 2%ߙ?uc.[%=B]#ϥ'G9WLu [&dΗv.vۏReY*O; jqDIv,Ȯr;轸zBQUEdU^ȝBˋeJܓ7̔2:z( ]eeu>,>$tL[8GRtP@rgU/!lTuTq$mɪ߻$}21o혐Spi]m]KP:q=]5dK~^띏g'?KA%~U:*~4[@+\Ymh?n|x ǒ0,%?<|74 j"[ʲB;l.n85 m..b툫);(|~ !'I{JPz4Dݛf7zu=ܥ:fn u`;ϥ1PU O:|WoN|iڃ${8ɮߚNUV5 d$@F $4䨙Q$2B %PDPD9fAl`0G=?x>g}ni~3SU]}V:|Z31kRn'N8\vKAvi2RTp6KLt.iu棈p1O{z=8 '9f Ivj:1z}Yf뗘-S܏u{7X+0B"E[BA:TFGS5 RwK<dbdJ=G$SAj~Ѫ/(9.wv?FH]mV&R'2]$HP^ݛ`HWvxcN?˛bSxLxل [ 8&hh3y )ɏn6;WL|9̙w8d]xcn Dzr:iD}D ߍ X2ÁpS/`>ߔVo/c)-|3E -?-N tT!5wsfb)A^9:m@~{EQpe$'Xy|yc_xF%49* g>m HW0> ý{.akiF~h v߷7xmqm5O)Mμ? qvtfwQQF]}C{|hLXow7bSf|/L0wDMJdϰu\47Gf{ުۛ,w 8tgyE{/p=vg,ҳcU'ڪ.21ꓧUs8w~g7˳ ~/>8A2W׃xޤۅjpe6JGW8;*Ʒ{N,wIbukLl);!)킠C]߮a2$$n/m"Hn?;,8o){)J S\J8=wir*cEq0Ef>2*ݱ_#_of 0X]'َUۃhߣ^}4sݎPSBDe(wY~&Aa~r7ݮLSa=39Iܮ}1QDt;CR%R'ET]~@2U&TP5*{rPC)V}2WV9Ztb'T @Vj]eU2 IZFS-]J-zQ]k QuSMtɀ d d;!~<8.'gb(>뜰"_4RE;>:%Ʉ *f;6q*KWnFپqi7r-r{pk7ݾ/LѠ!E|YL~t`R"݃nxv^0Ii&>bul;ؾ-LgZ淤NܰKިL|ovOp 3{|\!}=Eag :]ȱt"LMx+Ju^B]j\9v./^Rb٪E!K9='^< z,b`UZMgtgB HwgT2@%77Kwf5u֢NtD54BLHh$,Vɢn]wrTi]w cI5ubtOvwkB^MWh^2{JjML#]C3R%~n߂-\Dqody^'< WhlrooNxVذ{P!}i5sgsk?9~uJg%./ڒ&;X+xha!,ܳqMz\?`!"9qa]_u^7ݻM#;ՋFMpygЄ&QȐf@UN;#&3OΩ(4}\B#Je3q<7n&%ĥJ攈Jb<|I͆U8bԧ|UYq=B,XYmhr烲eõL= ~)rMA.?mmPec2@0Tf>80-\V,Jw" L4ۓSe<*n8o~? kQ쟁3NAl;d 6.T)VZoGB oU/Y$UջpwK͑20k=<˽1=dT(+mu*0i f`F܁$Z&;3m߷㝮;@1ꥻUI տ8+;(-aFsHSo2qRW'[9pGHCNo F{E=Re| NIݲq˺?T#>#s8Z[9hLH,Y13vb yDHPu}2ڟ1QO7 Q1X/vt3Վ@crw 2rG܍c"Cq@&ȁηAs8n7)]9Ra- 2մzn7e dp{N*+ 3nQ̷n^ć΃ 'ƇO^rUBLfTɀjUGDe#N`k^TD#eZtoWN~FqҹٮmoH<{W몰ߎJ3$tPBPm;*;y&IOv &ꡂĬKOyc/zjOUYg?{FB;4U"tf{yCC+˞~#%$lÒ! ܊};fz鞍Xtj\Ȱ-3hͰ1cS8ʀ*654 Ge2=Io61-B Xhƺʝ)J"n@Ht0m?O{bÏf]b=3pZqq}&@Ir;R*Xt;}%LfK,O>.5T/ K݆TH`Z lRTd)SUt{M$r耪F $˝Sd9]<`?gT+b[K0W{E"ꝙ Zۯ[߿v}ũҚ ~/:s,]\3u@*~zO'R)qBhW~a7( PTpLdPX0ޑBo-@0f]/BwPB;T+e=!pYqqB@%GjK%7fx"7&E-LnːtCFҽ9fO\N N{b`FJ=Zt|gNt!D-G0-͞LQBX UGz²eyNN"ua)}AeigZ=]ו7Ӫ&l 6VcPvmd^\>w^d j *N2ta|M_z_#3ȍƳ(ݟ5[ϙOƽI@SeiTorc$aL^%0{2 99"TOX[zo+EE0%j@m-wl8W\Ęl5 ;^gY&d t'/fC+n뺽BOn|WD2xx}s-_K # }LrJv/o;5s}8*Tv̺Ě{30g{?sRy{gYnǘkz:JH@~巫nvs9^L !~K!]RCk:i4z1Ƚ1-ݩWUFc!;ZƔ+J2v+c8w ;>JK ũ,wy R/L]B s~E@_=vO8<#bxū`vQ٠k)|(5vieux,{=*:$Y`߻\-I2췦ɁJG#ѼFȨ4]0(g(D%2R2WȸW#`oτ!^2o_,&=Ӯ}$04 ː,g]v]wj?ΦŜ^ ʜ` .Zbo .O.0Ѕ*Wv܂]Эۖw'`1|{3cR V܄?㢣a?w /0rGh$#1,]eh7;gR фG"n둟n=LH4aN,Ⱥhj5TLTf4xNu'ϜQ`UJP s],jHw<'#x="iU@l #,<<[&}/p>eH:<=<7ASwG`njvuNյh =HQ8]M 3!ї*ؽ;ϮƜ{?g'l8. _0 P*+]RR eUɓiu#'wKyk$]z{a2OY 3xn9 *:cun2 KK&lSݛ\wGpt1u *Bˬ,6,9dWQu&TtQJ]FSA}I#ܑ cdng&RnG;j0ۻC^rbt2dod(Uq IG^7e%mة^ Z ޸fբ \r@h'BFħd=4,"pFjUgN 5Ղ;(~ _NQHX¸8غ.n`G+ \%ae K5݃v|@*v\a[Ĺ;y%ŃˍY2D+6/ M{w6}G03HӎQ);f0&2gu*;ZVDG1JȄ;q/ 4Sӓ}v OTPXHuT=0XZǹ'2+ a]O3XF+q:vp1>r,w_zƈ"T,w^U]tJwA mѯx +G;tT@27-]P >·@dR_.oo(HChjܛvT$C0U(7=!%ru0P0tuQ@8>{m-B3K/)oOL6D$B;D/~w ,# NJ KbSc>9~hJedmHю7;wƫ.tTtlf2LI``QmWH Ȑq~dH&]VSQB{b39>%n&Ic:C'UYTwA:oJ;ݞ5Y(ͻNg71ԻM:I?-P[Y_`2Q!ѭ lYZWHڻ $.H{B+nDvj0|Shq^{!?QcDr.syy{e: wx Ǿ#ZǁUudUoztH(vHw: ]gT`TfHZ| #O/4Ot7=wS+0}V4#Jqw ϑ3Y3tAWȚ³ߎrgOt{ȄTuEWB]|Zf.aW-wt;ePT&>)b;y.%50sg`MK>E!8 .p{d!"~;ۑ+"~{3ߎIFd1Ľ9YMT=ԵPX< %={çp݌jUmxQ$ T@Xq4e/r}[}*fB6\j]↶r'ܘ5ȴ騺ӧܟ/(xG :I]g_l=3pVzgHyRkx{>Z^.=U/Yk*>g 1ջI4|:9uot*?]u c.e+|:zmO ݝԁU@=^\wC"ΑuÜaeE4=i2CۻQ:W8w}hޕFSQ4d9GN&vNdf!َO)xc8C\hor;0ůlT5ۃhb)xi4EѰQw"`dQd3t8U2j@ppRCnddRG Sr!I>Q+wx܊Z@1>ѵr"sW+B:?[ɲZYtS~wP{Y.kxݻpDELhj%\^w+Xٽlvd]z<ʮNzn!&'M'=a n _F޻d|y1u11 xSфtcP$G~d=3+Z{0]s8HrE{GkC+%EOD8Jn65o0y>}>+Pִ(lSQu :s;nc`RQՒ id-5?ܥgRt= t:w6ioeq;6Ƌ j0ҒfG9K"kal<7_ul$C;iS*lO tWv͓i:PEAJ< ZMMR( Glr,i rO&A!̨fFœ O# /[jWt7^R5$ؾJUBTGPJLg@"@˼k]o1H$ BUXI~;{,a2%I ّzl8a'8<\do'$#8`F~;.$膇lHQ]-y]#=H2\~hرkRE;2c^͝@5 Гv2\A5v|\xNANec;|E-xFsxS:i>}2+N\4d}Aq?Ϊ#@G"n/2')vYfoz}`Htm-z2sڻmbq`ݖ.rhcG\ 8#ʎ\k2ëzxS `F|8 &*Fk6+6-\jdB6} ƻHv6} 2GQCyΨ=b3d&y:="|z]~fSTDPT]Step!SRWlǚ;t/;˄z>Ujh#|ïLele]t딻 o-cBR#LjG@ˀ{oܡ۱OBnB+cXHΥAΒМ{;ʼnPMZpJ%$ۍޗ8#u˽qGnXFvZd(m`J{EEp$ igJSLUOYֶ[.ja[e>j67ըh^*RZ*-׽kZƴQ)ށ^$vN]Q2z>w4ɜ)a2_$f%B2l{4v'E=@2}2A,wK p{۩qBYlH5NNEWbؖ@,*^[+lXzr]Ih_!RHNb4fšKVl ` ^lŕfOmO |5 aJd"A {Q+c{eoU.[D%­x 2p`)qV!#G~F`3W]"U4N]qė^W_9X`i0L}:y$,)AUޝ^:ƞns0 mfƾrȜ_PIwA)QIՈ`j4uNݮ<<$ ݎVch`GnY@-#YJIp]化^LΓg%ZE+Խw[T;F؉z{M C@.o$O8YѠt8w@Ȫ _2~qOml844/׸ײÍ8v5WD|ܛp j[OpPT&d]bX(iMuR 'S Ie<)]G;Se ~YTHx{vo-PI2hǁpH'UWq߻JtnO/6r2 ,~pT8j&ڹiEq 8[qDi>ShOʖ! On˻5JUB&P !.@p,,۱=i`+>O/n\%/\*ȟ)CNfu( HCRjpm8bGS٧]kKr\XaK#N5J7;a@J+ء,i氨lًzq5ȩaXePO&`}n"/D'Haݑڵ2]"qD̟HqUVH#GO"̘tJwqwr#+2HMgPQ-;ZU)[t;r-AO䱐@xiAfd%6O/ l;<ɊRiLŊ>PWhLHIsNmCe1Ů]`B3GѯLioHqv\Q d^6!#TXO G;[z~>{J} Dt;M-]|{>*96 E{M۞f}9U)_z)#JO2NML@ʪ֮GIrq<-ZpB!9'FQ]4xoSt@VQ K޲_Zlݿq?6s)B^eD*sd<Ǘg3C nmcdHi~;sf;!XQTJ](9ga 9>` ]<ːv3-aRWҲl$$A_"3ZeH?{Y T.YvK|]?E~t݋v8>x c )Z>iСWy&m xcB!ʺIsUTo\ctieW.A,ﵶ8Sߋ| ˇ&?g^4mLeΫa7Kh&p{7ޤLT`Ѩt=_SLo$hE>|fj9'JG&˽2OuϜQQ79"poZ-G#莜yUVZկ#?=gr.U)el癐Vgj?eKRr Oq: qȓȐh9u;N ~Zksg`G=:gCۑ~`2+=4DNӕa4|ihMmKANҙe$"+9ȣ3Dctᤆuؑ2kPkpq˄&_nck^;Y^zoGQ]P{vX|M@5`Ђy,)oޯwzW0uƖ*PSʔ@Yԓ.Nҡ Ln?^%;[*'US!I&&(tvn7wTd̡D0^'5125U'Hm"5B2~ܽKKb *r7 '2AC>ËJy\JP6 y5AAa3xz1 !4G!ճޭX-a>@㝇5][ y_BXt;@ Ӭjo氀a;ceuzF ^`|4d*>>q寽Z4EV$;Kw*"-vYA;(S ԺU64A?sDGYy>?XQ GOor&X  z>H.& Vn)f{9 a[upU =ـN|E*yF*3rϧb AsQ@=$ yfYineSd6s:۱0ʻPcD =ՏJ;GD{.:y%g lxKq cҔzN QK8ۯUnLM-"^GTfBin x=[PTT: ߚ>il.fjHWI(Lu_ѕtdjJ0 PI*o/YwoB9s'UN] 7~5@^vJq5v{E;au^Cq%n(K@2 nH}20vHR'+rjЮ0#df'dx^UQk-'d ўqI>Z*DuɆX▍i-Vs lai/l~`DNfv^ z- #.E;WOlϩbGt]k\LV{ZrAujoS6i55{Rcz }mcW@7Y(d{*[ɏl?4AG;f.Ԫw!BaW9g~'vsM-Oxx?lbi'o3)4We޾56c?9-Su=evN'Wn-fʝ~rv|Sq6tw9i΄r}/SEY~Ba!Ȓ9E\5킸o=7:}RlG_6aۣ宩2rn?Es2[(6>;go.O:R}6~;\ML d*:eba ;iBV{t|{{ʖLRh7N-n0T~Z"Ӿ9.}וH%[ۏCFJuX5tPj Utt&# ,ߧA+q:ua=XH3N-ػ+MRngb_} u{qqAws"U9/n_Z2& =ܮ]K~AMĉŐ$o*Q =sSvOȘnK-jJpf l7Ѯȇ<2rZR$@{WG\Q@ȯG_ե-CA}+D}6#I~~2iW%/A5uV&ڣN$~-~Y=͊ՑX{v"WpD7(:|jb]dkycr-U<ݯ1ͪk8IE`H\3ޟ >ok)M¦Q]u,L溃1M!zn*82SV,w_!%c4Z,dCعrї$ .K'v^֏/$=ܫtR GoX+tb$ՔLq)v8u1D M p?3cpjUg2̳󿥈e(ݑ!(ogEN/N\Pb}LE~Vϖ. L{i_@i-[xԠ _g6F'@tpH0,X&u΢Lvj20P%ܽgNc@Tu8b>MݞS=ی hH[ vyv0nO2@eK29w8GO@RqYGK$d("$hͺݪ[dDܩ4Hv)wnqt0 ރKxnlD6}@R$~LNcjUFffEK@s!sfW+nX5i@%83Hpژƨ" VV42vĂ8w(# .iu.U -)$:k;:4ajNUch0$Yxbobkf{HRTnf=A.ӑ4H>Ķ e'R3Fm;)Ӕ*o,AxBlOKK6ľOX1To ''27| j,-WB$>5/_KTFбz21~Iwx`BL#&4 Rtǃ$Z\z4 EaO{d\{T"ݛT;D>v7t^+{s /`j`-^Za}t;C\Kl4E|c1K>F EnnlȮǘ;[t/{STTJy=dkϼq2ovAeꭩs2rZ&)=åAgL!X&VT˨{K^Tu)܅C`_)r%݇r6O#gQV͚"-0`jUCݴvV`GL{lT'Moqwt^+Pcr2anG@ $C^}p.CWԽcxlTѾOɨI9WlK^t&TIm_Mf Pʠ푷1^2qc1#Qde9|y+g$ϟW!vtDhQQߧIuCԱûV3 Fw_$5Iׯ/ZAy;2E.J!vXaVT&Ⱥ|jce鍗>X,Qo3%! WI.~% i.K4[1;^y|DZnۍNQ4Ug5Vh;*H o身tઈsd!aWS/tw6EާBmlDЎ%P dg'3>`~Ei='/i*Iod` \72Z?r9;#}xL{w*Gl6&8fCp,#B}zr_`U!~;9Ae&?E7mޚ3O|JELLOUu;4OD27 _4Ȥ+{trg, i,d;.Kh,bru7S[d:^ xφU]X^ܷ&1mm>*,Z<-&pkXTtn]M򰯯9w塽,σn?<1s.UR~ufΫϖ0RCc!$t]bLL$'|hhnt/X>RHgP<%zHFԩXZX*R4ُ) I~Ue u['X O~߆>)/1 ]Xi9߀Y#^QC[ %-qNGا0gҝ%N.;8J!:k ;4{Z 1~p߱Oj6=tlS* 4g D}"=[{.CFh.mө2!M46QSܓnoe)x;$G=-t{[ pJ_'wvdY$w/A# [,` l<RCΆn~2dKs.oQ:0ngkvMiF{يԼA`j9&7efW>*=Ѱ)@1x=d =ȩ0e V=>+'ڒn9.7ڤ)ͫfB{jVRfj8ԅN~fޥZKI:~gY$I1*=:|v\8y0d .c8HS:C,IlpJG( ^""i;JIl骍NfW݀`ԣhO;!Ƨu {xHшvHvBqC,RT:CW/EfrbL{]zFk M=j/%B4{͏{wa> U̠iKG*BtY4M 5XPb)ZPU˝_u6j{뀪+5Lx]hY ጴL;*S}{ekf ht2ĽtGac0:-A>fǢ5*Or'*Rlꚻز3p~HXBqQGݞ2:Rdn7T/ z#?}Tٰ uu{FTs+sύ)וD/SeaꜺFlȆUk:qϝ%LGW1"[vC4M=`X~F{(6L%INܻeuM]';t& $s}зwըedLゴTK Con}-lH.ۿ)2uOLOv5Ɲn=vq%LzHlw/><UL%40I/eg+ʻ3i}UF[ 7Ip>`{gli][:6v'n]ϫIȊ/ߵ›JϛFs93zZZ*lsGku{ Hq~]kq0 ZeΈWV+XV& ž{aU4+[ٕ: {AeLOW++J8*d{!194{|Nܰ'cFP$UAF%Md_8e̮}UC2uGLg~ْnQF=ݓpp5Sn:Nw5ZȽ<D,Yd`J;ўe !򛐉x9ݨexfFu9 ACNN|xW|Kw4nQlOr@ Zmd)X+C-=fAkt joS?ޭrL3^s;3=_'>8MśPC]K|(CM^E@42N[J0!nԧ&k% dlu 9]ݳ6ZrV⾲{_vr-"?9_  (vׯV3gs)E 9=˻w+o>hZɊDuguN8\ozS+r! Poa2^3yٮ) }gfu5 4I|XH +"!51,դ;J)im+ZQ#)1Vw\7if23# 嵺GethV2̍hݎ"_Zec2 AtԿxߑ C ~9Gu~^^BZH,'16*o0BѹUNYr)i,Se2ٌjK}뾢C\UuX8dn0([0-yפ-@yށ+ZFV!}e"Om}u5%H[VL%A1xhyp2$sK vǙnWn_KZ{PB2"yt׺Pjd qmCSO]oBd7+v* CoqxahW= c0(s'#{N>U!O@  !QW3/l25%ׂnVM 1h'|I܀ǩ Ox~7cN;J{PދyٲlHٮtvJd\n rQ3^>J-@MENسt{ҽΝ?>$Bf}Űwu*Nݎ;i(SOJWZV@w|_Iէ.&]ke|@н^ Is]?І kZYwnBL[>=K=C|# ǵFTUh4*6UO@Wz0wE ɢ#g;l/z(Yw/CJqT1[n|Wv6F{#u;֞AtwI2p;!_ _mob<$^>WvEd?lC.9?混2 ۡٗ{c㌥ o{Qq9 ߌvϷ^vT]8EƥTEN&JEF˘^`nZ 9a/ϖqe ՏNٰXTypD})_m3qɘe)S8c_ |(W]]"ܾ<ԁLnd]V޷l ]tD#}R{GQSY&͛3z_}=}Be|nݧVyl(yǺ$ŧgvS@]~=Gؘx'1 {d؈ICrpp0~oKHtc:$5.#)qcx@- AɽzJXˍTFU\dJƣyG=*͎Qf_YnX]ev牏G鎄8W}}<޷2p!Aw@Akk9X\—6ږ-ri&hW;Nz˽-\wn`k[txۤ{Be<#2͔;:2!Ycg8==Re2zohǁܧۧѝlf 0E ~w<܇hb#2 ۃ%nGK6~4C5w303?Q4]ۓnw9H{ ]52)B ww4ʽ>umӢeeLA72lr1 ^'`7c d*RhREx>.2G6FX]ރ Zi j(djWͶw~S`6(x&~_ս5啗t:8ηCQ?_:7 1~D#{YS6A2 qT/z $t{=+^HJ}ēbw(N0M⛪0 ]'=nB${P^OGq1ю/ fk8 u눅DVp(6" vrEx %9pyקA3;}1^ a5pKi i0s J]`aUQ7+ӪӆSe^{u| ;&U?8O8yUɐ|Ir#麫t7=1y7ߥ)%IzAH(u}(-6;u̥ ޝxxZ*iYyKipeЦCy"Ri,wO0,rw5[C{3Wra%Z[*hP}s;BFG xk?6#5w303p"ʼnnԤ5@{*{8N&ǎV/Yj)UƊS $IcHSry#P]م~U`FDE4^ܫ}n'IwVb2Aqw|Wd<(]޽udԾ$Pg`o,!7e؎{lHfݫ <_B? ^t6~}!ݻa)o=w~nW])'Ntof;u_]x@/&HJh?]var\|` JV+-5vszw LR.A#~f{Dco 6Cr t @zhw{4[o\۰#+4Z=@ײ+$J`s'MxqŦ0nz 6֘ ׎ CW^Y>cܻ C"ۅ"Frqp>[ބ_%QKafU)}L1c8<&?L蝮f(0vZIJ>v,F^39@k̙Wc<|ZƲeL~#(>06􄼍zZMnl&Xb.Bv 4^QrPJZܡ hPr-w8ϚP;KIn  ݇b82p6r]vp2.YNDM~9joKti(/( !ry3_sw;3:w88a2Ar?_t;qD8]TIN6ܱf12Dc=`$cˀnXHdir33b\:IC< }YdX?&`iˋpr@GNemBn`wp1S >1Q Ó q9V! }}uuWabC[DyӢ%BL%ҁGȍ<|Ju.Q1I  nhHFE98tGTTܞvPݎ&hxeQwWcdںY!ڵ@wwzgJO\ݮ,X>hj)0렖Jw3K+g$4wfr~? ~~qoTnG XRnAaN7,+ã2)ނe*S] o6]b!+X|s`~TabĚqW+8:8߻]$&-*Hwpdt\}dMay<#FJPL @tm*zQDShwàȲJ*\ H:X혧>^%dn~;t; Š+n7~H0ۡq\dnO5OWԓ@GFlo:`8ZI2xMh@n *:Oq蚂?O\W}]yNNUW) ˤ*Ybkv"LKژ눬|>B녭=j8E~,|p$`+W,ncN/J%͉:^۩5U[`.[]9S1oU2їP"Jwf@5|ήBв^ ;d"4#r2^&ѭ؆rO.tM?C2uc4ڙ &T'OtSRonB4uoJwb(H/ -wy#? k+9&6{XO27i jsYaWM}t(wFL|ꏪr=ۧ|xW2x3Y&/|& l>sg`w> ۑov^n{pԀ'me4•ΤTv ب;P޽tأYITTQI/ݗ1𲄼ه,`ol{V,NCxc b$qQ(} g ?C+EuG1 ~(Y%k- Fj'}GB1ڻwb @t'I1}}{wpL޻x!ᝡ ֐-̱bfէo:8YKO9ώ0 vdT5)cD=oLV SEdf =eo mOHboht;md޿M'7&[gi!mz:ݿ2?Wt}y%/FDu0$I贲d}JДTyiE`j8ͮLo>02p#_ h?"45RE!?W61k{T#b{,a|5w303/(AIZj]o]v1 2vq{#*Зj=el Y,c!3=&Z1Uuj3_C,<"9{.t33&S,=#` nЂ:$W/J"D}%=IixI.2 s@#?p.v'qǁkO*:8L#bt;֤Q]v2z@26(vU&΃NJ o,3oP#Q Ge  fu:6pjrB=`% ]߬9JJeP<T[q_G\kE+ո)Cm+VO?߁ue).Neݠ+A1XƮolHwv om. gOa3(;xK6e=>0$%}e,tLtݍhՙrdž{KT-T)^#Zt2!"̃'?6HuTt(P+ Wѿ3N |-4;/gۇtn79cԀh.L}ᓨ9t.n3pu簷NJn?񴂺8H.~{n"D9kM̊Zd*#I{} $Y GLF,ŶDa2Tf,.䭆CҽQ̻X=;^kn]k?劯w3Lvj"zfN>2.9a5{V1+gQ;*`><5 8EP3KfѬn>+/ x]{gCSEO0L ۵ԀKxTuO|AΜINw;Xt'=$r@/?w5@rcf{[>uSׯ졽#2.oG@?M`]Ig)9-vȜh,wdB O<(Iɟ*Y͈g}S8%u0ަÞ(`2ݎl\A㤻ٷqGGKEKH{]7XC _yv|n/o|5w303py o-Eۅ9w1}8^ UTdnDw1 f dX;Vӡ!fDS"c&]ď<}wPH 莱J@[,\,UDK [xn;|<-o_^ޟ)Z _/f PM3NO~eo)8t Q0>H 99ch]ōr]u{o>w6ƮȚvfoCF/68.eb'I3=65N6낃5#0Iafiޱw :,X|3'EWt ! N/w rSiɦ)tebO&;]`jٳ2-Q @ؘc$Zӓ6U7ёϒw]_^RrygI0 | GeŤ#x4!;v9 ۗZVZ^qTIcy?dꒃcl%HLd$ta q`=d cQ;)8 it12~" Ac0*}M]YZBmZS) ꒃ. Zq@V/nS5 T<0.Z D>'se;N,c,w"[^өק"r_S<ٺ%NN"gϻ{0=BewS\+ CR9!d*Jƿ}cv63?&ƖX*ta4gPGdo(0Jkg""CXzсH̕8^cN{  0 y @ee@WNҙfD n@8T=^y-+ Y5ܳ|^T7x&a߮l~]Mk E](z  x112zX w>|vYo K{ai,ꘗ*.Ҍ{*iEhb3P7v!>2^(׻ n,w i?X0kKxwkT&LVw0&aZh *%2*'Xy9}`rWQ|N?uGG˽y ()DeH bf]\9ȰɗL@3p7[\u.1y2V"@$q2)EAH:TƤuiT: 1`B rg=}ΏQLD˰t+HmWmtFy|@KFVy5 s̙P)fp):-6%X hdO4q(+@baFz 5v[O`B~^f%U-P@[ v[j1 !|鯟-1+}SX x9Bv8'- B>_H;Y2)t2Stn>QBf8z`Ait۳өlD;V&R!`On7p$۽HDXS$\nk%UT2vM3*J\f>32=IMI ̤i& x^JJ {X- d`Ykz$PfDB?*I2'3T4;wz2V]Y^b(|)痴b1hku|S_9q75m!tG6 < ^[VlKrcrsݍ la]+9S?eiB'Hw90Oiτt;m Go23CH|-x2K1B8|>]GO= DG>-wyX#JE].;2[nC'_ << w ?ݎٰnRE#Q_:S Fnwaq)FW-w?rS,rGVlנsMgUD*Eb&s^s)ʤ- vCEA.B>"_ iWExƊ=O8ehvZ`pMG&f-"\6#=ļg`g1OblHc(H}iX+壘ĥ`Q:Z,)ih)aFd*1XJE Y<Noaϳ"M~rO#e$˽58Z. *; wN} 3۳iq)OGKq%p('&>g?mp=,һt@^ͺ0]TY6U+`E) 3!<۸>0"%#dHxä穦@OͮzM=>dB%˴&CJ̠pp`&S{Angp7XW$y/ɖ$kJ MslտR[5v5wZx0Gh?;]hvoC8hة˦љ6{|3*S.LjJd /q_U5~ׂ"snNJ?Ԇ"3#&~ 4/tA >uZ,w5hJ˙8q8Fcc*"tY̶,)Ec5 i7k_ A^Z.8Iyt]q*l'.-Н-!C;r;!M̩i걯m#r?) [ƘbY GLELkˢ'VW OIS001'aowdE]h&}M/'ngD Hf@x~OW{tOP1Sݨ-$aHo5o`I,2{+G0(ԼIw"0%*j鞣e{t?^< nDU·KnnReKnL1gkO* )F܇GAB-9'}T䱓3 <>}ŕw ^ޥnoǴ]К:6 /^{+NAJէ6Z61iI]wA1549FNi,WS 2 q!Qӓ I4Jq(/#]c0<{]s-l.gMQC#[~D|ז0N_\iP(1/SUGG QYyI]fDߵa1gI1ޅu xsgOi%+5JytNǩ} ^N (Tjcg]}gB٣k>|E141oþcKZQ>u'^~2a3 L$ݍ>o!X9V_5ݤZf8?${rjj=LbL 7tik\qB3L]*` g`Z{^3 ϰ<LHP29=1h@h LT=e;FI2drOS8ON <:AvoG_8X~; y4vTti`ݽrz:JLjL 2|')Q ia ?[(J zm};vm;=aVDK28Dr~B/mgnG?i3YB@NHPjao, SO?sp/Ocσt@Hr-wqבus_vúek#+r@pvI$0[>r_RbO@3}dx Ňn`Nn@IAq7KHk@e6LʰNq eBbCΖG[)mQEu:&'U[""Հw;8,:P%>F f ET!\p3iA0DHHeծ LTϢcj y--Rq}Lb|w<ݧܭRyD؃Ye!dZW^KeiZ 8ӦJ-]v="w y쵭,&{p?^OykTmu]K1bG`QgG6v4/׏4_c bwuzkНhJۧIUv "rV W&ڂ~줱Yf[ LT?zß(<|P?%_eιXwPԠ!ȝs`g7zZ{! -qR: v9SC q)p [b:{v ~;ʰ&g{_xdp}׊n72y4UP(S"#F P(wAT1E(^&QNqjh 5&û5%X]\>chDPsâ Eӱ\[4!?{ZU[}N`bGQ^ɩDI& ?5\"FCl% ,Iv /SƸ+h c-a慦Tb0ꤻ/gMeg ffe&~[7tn܅r Wh!pLrSeUc{oeU{M2"X6;Y'-&aLN Vm~{0zjf;ko(&^g`O /8koΜG$RH;K8~STR¾1`ɍ ϙ&&P֗Or;;›Qe7t.ضJ|$d&h[y-ͬ!i$%f阾`"@]Ԅpv]KY=:<ʻ|ia/O~jH)۬=M@ay#EqI4Vn &e=G?_Ѵ2pX4&KiZo4%`g"@W2y =Q$֏wسivHHo4=zzE/>S8dZHLx)R)d3,w(sSt'A\lJMg:2?dI _]X[^CkmA)SgCej?s;RGz!~' &y==PUj!aNt'u=De|+rD1y*G E;0DI:ɖ-`\G6F7LZS{Ƀ;'p|MG?Εqe2LqxtvS-TL5.U 2,׈dE/UqҰ j3w'.uCfn1jLyDTtW8M꽣[ Ѭ[ˁxzai ?tXSg@_q;e   ]dnׂʨK>kR&|]F:WKGQ[i̜njɑ\V[S=L <\d\P!:SB>U\-Ů1T`sZ1Bi̠;S߄-Pm-wt_#|А~ ۹,=9Ʉ80ߺA&WtX~pYK˳-w?ҧ܃rPS!,GGL,ק:&Kc[=z2oB%'C+~;Rv_] W ~Ȟh;k'gۿOONr27Kmv_o=([H}KPMLMRM Oƿ$jTRu#g=]Iw:kߖ.jr.aU6ѹI{`LupI8e;bۦGSTq2?s9xF#%k!w%UytCRJi¸9iINVy Ǹcb\oO~;J󡒣o,4n+]Ғ-+H q%HLH]XzJΜ Oq@{;nӉ;`<|Z2) _}.sgNOz̼4 *Ľs7expUJyiɆ<ۍ'_25Zk Jb ]c-wxJ[d=7ћ5orܽ9P6NŸ(uܦSZ感72pGr7iT?k:k2|KݵQ7⾼x.-1Y?$&gzt~ɁDejqW @!mL*oW *ôd-5!xFa%c&UK gc4,ߙbѹf%FîUU6 41Kl2Ϛ7",ǨLeNxrv8ɣR<18l /HvzD RaRs甔gP1 "Ɲƞl4.`K_Cݱܵy#Rkl1Nm75 .>+KCCyU)dN-#ML_e;cchǍx?B?WkT@HrXܺb9m zܵNp䀽\宦AJ %,X(YrY[5B24ŋAD=QN>.} NM>9=7K9ޙMdc;˱'gM\~;d$7p]mMm ,w侥r7LܝZ˄tdԬܙ {RƄBYǨ2_-`4m·$7,u݋F8|j%~#u#64y)wb2{T1Q@UO{oM S Օ~4lY =k+s/z:԰+miM u,|F5ؑz\j&qtC؅b_e۔|[0IHtE aKPr2v@> *{@ߙUۅg=eRgB !b_P>,7M 0)6`v?& 5Gg:,[03.K'J guO$fX4H;CcfFHMU`|pC㶎w". Ry~[Ǒ._ǹ26eXUܛOGUb=50޻̨̌lƅ ؛[n șF3iiFI]\UZ^KzW9eTdF;[nVwiGxf|Ww zn_ f RU&723[j*c@=SpciPզ)ȑa5QaդD G5)w[WNSubONty4Wo\UI91&>ҌGu|*%PXvQ0^O#fFhg>'ZLZ87GYI~ A&$ ,2Vi:Йv>rW崛usz?Rr2ƙ9KI0A_ K7P mnʼ}w%1sn_`:9;xp]Nƴ/m-,&Ng`LJ?WV\.RKqFe\Ae@HLdBF5LG9f&&uimוO7hF5H*RI8a&);&+{컆ֿΊ]#fqD me v%"̶Ӟ_#(0]Lbרce8[=h8/ٌiٺ-cb΢zk`;D@(2Sd˽PEZnxA#{;, @` H]7YMU慿 EIۻ~L$gdnA\׺#ND{F徖-"]na宥 <ۉu c)^+cMb DGӝ6>;J徰5g Qn;-y4ĽFe:A@Fnmp2sC1>⽧fQM{O2Kw? Qю ?mbGL@31snHq&DܯnnNMn/QOo5l;f#StA"]𦂛MUl:CQ bߌ6{}ξSUr3|ޗE23Kq,/J_AIM{6 ^ `i-@doggtdw;>0gQ$ ű|`[ĩ g_3 〱G8[;J#9m}B}ApbWW$H$*Tbȯ`<  +Q*<`kt)(<6+bX>^{~L;Ibis8ݞ93:Jg XhM! DDbmI mA3nv_ '}E}?JgE6y b2zt;2q%Bq\eۗ oTuTS垣eTL(aV0&Pj|# +ݕV"m70xU^W;Gd(g벢<M&U$Oxvdc6(ڥ/>cqd2P m.˟uzn(ߎ^!]eNzx}Y:8KPk8U v,(r=@2Qd!JO₩xd'j\ 1)R}}i߱څ ^<&[T{iv0}ZbމrK m!VFۇ.NJbMAWZC,uirl60 ܝsDͼuJ)6STߎ\whiis'=Q{D@%{Ts[m-⷇u 0^DPR1LEpuoDʴk#:˿9̧8ORzkAviMhvv&A~ $קnK-Gr `jNBb 'U'\wi pxל4 Qջ8#{$F0J I63 ֊.3͚*u_h33.3;Gߨӌ ?{52Ŧ`0L/WIYfʒ2:њ3zD"]/N0|vUv,-%(FcO3ǎ-c T= ff&V^R0O#]lv'%N(zŗ_ˀ)2V2!̓wOQ*a.=2li&6$vTӋ.s`sSr? oAf[vBĽm>5'#Tޒp''MU}=(`SQc bD.ʻtv=aznj6V_RuYuGGI6y ~;doJ oa~#V!&v>nMy>Nptr<6DT>ѧU41XȲetyD2>b2W{: %bNaJD--n=tpHKޱ4k|UԻD:Ȋ(4Ulz&k[tLJwInkhQy#Lԩh0hSBc+rȊY(;NSƘ$*FWQci6=ȦNE{jlvî8~d}( )"dwi{` (Dϐt'o-wQ{LxbY llY~F+odT)N>NL ۍt ytj;nuM]] þ鮡2STA}E!nw-XPM] }tblx~O.2|=Jd˝t;2Ae\{b}GeUlF 6[ˀ7kU@@ϔ$=·d[Ŭ >//-)m鑅qd ׎VWUz>mVK_FypE75D<& gy L kxc V^3rT [9Mz|#Ӱt,Tݳ&wu`oa`I] cb_&jL;dafGcŐ{ v c5/lr3>)A5XBHj2*;8⥩GVk*g|˄t{,^E hËX1ҝXvq`-w!]HN>|#oy4M Pd,wd * D S-wOg}T;6O1=TN&,0?=Eǜ<&^H92+dÓ k`t?SQN~~]O_)ۯ0]qAA6KKqCe8X&62eLA`#qj;nytrfԪ*)};{_T5yʄMɥG| u:DxB~:3ݤxIa^Kw$_4O_DCqhӑ _) /N2$x7ϲ 1N\ϣ:'\Gю,0vM O3j#I((\WS}ˢǶKƌQo=Wp!4aZKLrw;:ҁHAg[TY7P& 2 z@wnR_$[F&J,g.;YJ*;~w-<|rY re;Xj⷟ ^9MtI}&{^oQ7zhhWlh?G ;I_m+H;.'MLQ+t`rCZ͖a˽0ԽPUMpt%lXLx?rN.&wݱBUHkQv@q|URK+1ȶƁV<8p);7[ͮsϓaWht4ny˯f/pa<I񼩎ȗB<⥶e ։19 y!9w]ݗge4 vFb {$bl=کc'HV?ʤ`bdx-.5p,Ѳd;ZYHdq#qqM& -#sȒ '*㷫Q(||!0UZP=r]Nχǎ_̄Q Z,w<)SȊ!юrt{94LaGSB0*CG\\~g3 ^s/nQoeA?VQG,*s-`N!}ue8w\}'2A*{rݣpHU!q+\^*wx͜U9CWEϫ9x"hSKV)nڐɖPg>ӎ m6La!gPlxWa ^2O$5<˚f!1n97U*/c8G 9XL3_n O{4%uFMbp׺3ˉ~xN y6?kG;]?]34V`*%$ S6;BD(v2V}jpM}*gmf>v,eBUҟNtgNcN;a-!XS?|AeNS}L˽*rE[(wO{K?3u\,3IuA7.vwtPdL@? ^GS5(H-O@ qAWVwF>*0q&P@wl}ʇB=Qg7T7p8aSVNPd2h93܎W{KҾ2 {Ϗ4ॳ%2_]QGL 6aEuhP㽍3GvbiZ}~V:<{,pU{h=R-i:!ۧ.^*`u1)^Čj#ވeZ]xȲ!BR9g0.0>p`;t\2Cz\׳bR.THFb:yʩJ\ TWO$ç(;+v1?޶eL& :1P~;#PBhh%M0u.pʝE;N62>nmOk4ze@՛NnSZƌrV )v rNyr#sݱ(.gPnT[ xB濋s~ڀrIVNF[FS!Qŋ&*Ftwя])뷟?eF!oodGL@3wzyO_gK#gĝSK*N&;j#HwWJt?kPt7n GD7u^ W*!ƱMbڰ*PF̌8wvS 8~g蹹e4l gk*j l\ckIn\mТudgAO +&Fsa(?8#G?gu_1W,{;oZ>ѨwU VWu3a`sbϔז$yı+R&OmOBooO1:X<{l_辋-mpr gѕTD+ 4 Ns-whL쌣ܝtQЮP}rbġLq46O~Op5ݣieP!`0Xt*EK; + 8ݎU#u:?{'MmeL7H .êQk4;[o"F٪i KuRz;ҖF6WBYNy2'~{I:yH3o~/GQԈTD_S w7 v>5̄T5ZvYk`,5Wb* L\wbfIUffq0eS[Ūz`3ƢLj{ZgW8ΤnKK#+lαھocM`'o]v$owս~A-hY@5Wf,ZsPku1 hq~>'BFĮ7 {.}U܆ε4v/fm8GWV n #P1+]-?+>1ǑJ.}cfN;"ńU ;eMh)wWxh_X}6>ﰖwx 0ulc0 u}0*dp{ΖOj<L>vQnS`- 8-tOt{> fS%|?NwMNǖ;ֹ-Kƈ/ &3o m[h@Jw,YxdJTP>̖;=>U˄ TVg=r5L;|u?wXʤ23șI"fLjgfxb .3*VVEK䏅o!FRT(9X=v&^;'LY@:I Mֽxo@kO~/?*+JǴ|-UNLho'Fpp VŲ1@8ξ,Z1~}*Sl{T7CeXEjWn>|:Lk29[r-w/↞ j|T>s8Sߑ5BMc.U6UƧ]{; FcQ{ 9 *T`IPXuz{ \PUT&dΫoZ)iOt?? p2OAyAIʺ[T#rpݝn̳܃UonU?1,fdMգ*zOYT2SךHMd(Eyű/;KwXRYsk`UMNғ*ގv޻y!:9н DߒJC噯5< %ԝDǒEB}u!A b^ye`uzohGz=G+qxdaޯ5ZqǞ;MƬRi\̆[=]Br82c6`Lk` Bc"0lٝn'$oYb!`}Yt,Rba[Cio78qHq{hGZ(w;S`nWέ{[wp8)k~;QsUۃ&èdH9v:v3n )-CB~ntÃK*X q4 B]Eet*bejžt]l$};tePIe阪6LUf4i<.vr43ޏ,̎_^9@4iTH;*f}8VWYɶudUw=p uzK,d3ջw>_zs~&q/T[&YW҂-1BV77hfwaʨ :b19*&ϱ'<<ܠDI؎̤NJ]T_IjbS1cUA]X\y=}Hө~*=$jHXƘD{#9mt;ASTJ<&ݭx2B7BN]]? {Ni^C#D;ڙ<'vu өth?m+lAc`> B Hs 7ǽꜜc=?Yp2 @_t ^2nS)Uhv@dB^ ^1Iw2^SDi2d亯-wb龑⒑UIΌjmP%ctϩFz$ucT 2$LWcYym dC;#[ml:Clg~Mo NL$=Ie7{}j?E{R.zHаIw եVG;q2`[lBPu}g_XAפ`fޜX` Ŏxv v\6O\HÜT?r/?z})̌`3Y_ Kjh0ZR; !5%|V6X,:jy2]D?Jmtw< =Nȵs 2 T3Wrq<~rޝxs(x1?4y}z>w#25xp1+gLwv,Z[L;|DGLVu::!Vh?wKFy֣DcGo{k, 8@Q<z颻>ƛQC;BWwdK\?r_alZjsA n* NH7 4=O_sv\x2*J)ю{ &>}/SЖP.U=(DQS#+#\U?2mWMc .ėoG2ȓȿVXϻw?t`NLCSidnT DMO -;.볟-Á~F$㡧$48S 18XPV16XiUqV 7dotH0O7GVT׏wid\}k6]x15E0/ԤAIVzr筻D/~%ТS}1Y-$ O64?>-boJ:&@Jc_6ܛ"b2*n4)\VL{!CŌ$NI<ϑ>қOySb6ӌGC)`E Cۥe^ށz꭮PPEPTɟF"1zPX-}f&fpcTL#")Rlkz7xg0wCT*%|Ku#|} ߂lgkT>! M8g&i}t)N63{X~n~fJ4=^~0ct!miO/kfgwO[7lQ?]kNK&\Ǿ|iA}Rzcϕ(!E (?Mb$(nٯt6|]ZDpytgd7!ޗHvRznˈX\̨Ld{PG`#i?%%@;tTIqT|F,Տz%GCY5{^ŹpZe M̌bWʤ*3313 2Ւ&`s;{.1fxy|U&1Ex gGJ{Z0oqؾd~Ätjz^ :՟M+_߃n-Q7>/yQDoxbJ交-hH 7]sYRӴMt)w=CHL6 >bݾzҷcHH%J:;~cԛ^Kw^0'DcqdߗLNJu~n@y;~SI"v!gR)\pRkzCYVaf>}g+֜ubR^[j tSdc_?Mȼkg]Qq-wش2v4({Iˁ_t2Vj?\qVZ\B a-@b_TJq ݾ{姏UM>?y. y4quL&rWo}2X{+V߮AIGȺ&J! ܡu|sL,`FSdX/l!I[|GhUW\Z\;ڽfa0 kh4 V Y25-~2iעnE1r|oggy`jsIh*t#K!ݡTSR(L=7|IDA ?F&U*D=bf]_}.vm>:|bWDgb4Eb6;ޖcf\aTc(Ly;1px:nH9,H* RNF\qd׺]!=ʝmVHtR`Y)adBKsSX rHD˧ib @n:EVi!*ӅrM(S_:E gq!-Rr̼h*~Apk8FSAΚ̆YI3q6Dm/?UM>nQ)CQAOT8riTxG3tof88ViN-%x2z'GH׌2>SVU.63Kəj]U鍾:8fKW{W A5SNÐL)f!0r߀YwZj"qz`g$&1cWN챯R=뱧;ňbD;+~8BLl/rTƈ͎{ﱋhMDn(_bMZZƣ͠})n!_A;2e?&+ `2 2,s_>R+-N Cer;(i_. u#}d*S9X!Kouz"݃H&=o&ptU"&I:;g>[>t*Qvv,VXo;|hz[)#h2&US9Fv`Z.c# To;i(=QM]MUK sGG{FL*if-'XEԥ󞽹֟Pؘ݀Y?zL7C÷${l6XxmkRӀ֨'4[A_¿dA.rts)sf]ڞPoK}FMrp-SWo26U4:5뫋f w-OШ0 SNyDCjfNWUPY6xMi"c0jS1S}۹)ƭIcjO"Q׎ozt/?TzMuUXKGnXS!*CtK˳LN^cC};)ۄhө~xy!n mO+2nQ85vu`~o?i9˽C V-O&"LFky{֛H v$<2jژ k@^ :Z>)*1׸qf؁Ĕb4}$TLӇQ)؁ \mi s8c͟60}E3T8y@շ!B wBvY˽FlNu!yNa q y %2ʠrS@_I&BǏ};aϭ-؃x ӃK(%> ilf*1QSz 7%AC`'O9E;E]ع#d~ɢ{.Z\f咫6h̠T A2piR2FcnDGON.(1!q%? q s aIzžg%jP'nSMJ>mn7D=ёW/S~_ AP85|}ر aywq[$rw%%&'i5h;Sltʏ3÷ 6y nZGS2EN_©24 t{I2w C|42njРZǹ{{~ 3nwH;Q$ԭRL pⶕn â 6xS眴Fe+9As^l%],߰鵣ggWY>2i897צ9@R%{F۾9 Pg:̣k줛B~߫*!f,~H;obC$; 2dvx #@2ApXˊx)VPeBgu2kX h(KZQAحX^\rJ'|fz x"3vKz7awYn2id:Tov̈́{F=fҚEL:/N%ݎU304N :Z2iS[P,aq}- jsVT,*S?~HT9ݎ(oσz"1ڽڳv>y'Qs @;j]O#:2.j>?97uL\~kKBiJH-Z}pߚӫcjFh5Z0 }-;tSZ9H,WQ"hug'*~9uq^9PMks{߿L<8yB7a]SBBuwKnT?BkfT?\ބ\LJ!IUTpIvU.lzL. MN@36-Hɇ`f$FKh:;2PeO^rl\ g Ѩ"_tX8ovyu+;8՛پbN'kD~:u60t#b$10p2y&Oh63Y1*JŠV;~oиΟ:9qOqC8:Uojt'KfrwQ[fȑt; r7=Ν5.}n䃧u&iU3j0f 1y$өnY̌Ae_|'S&ˆ4k 'CފZϛ徾z `]v =MFbDoT eP${|zѢ\tRY)(;.ݨRR OoBv[6;)!&ܷ Ȩ B֪f:^>s SĶzO2F#N!" &>d%L( Ynύ2fG99 H8M'#&nGlS>!KJ&k15vEc1zʛJ] +AMx=_/O-;fS0re>-72aAv+FGcttO]&NQM2CgəB~ӛO ϰ'|z45֟c3gx}'Ϝ*yE.~K3׷ u|9i WjwiD w7$xȴԴҌIÜiS#q< \#@SP1e.Ǯp4y)mKBwO5]?iv 90F>dQw }Iq=ʰ.~2b˕0q=1;'R&^';üM܊_[Z&@2~bٜU|G>$Yrw{tS#}/="U}^Po4> yMz^)T1"E#a::Iwִg㓰\F)({l^2{H'LSpԐ'y,6Ӵ ;.ޟYUZY=dgh|u -cTƪ1Q5L;rAwo!!űi hUn <^<+Gؖ?- 瑌}R .KKJ莩:6X.ldtg.HBj CxeV]ϤKyCy.#Űsc`b@ImǠbɮLnզ.uo|kLKeGҝW1_ݷ1 "ſbCP) W2 qͪ$Roتbp5rH.nw3`Aۡ16tΉ )^O[J s8!r6/%$>Txiqgn>筕oTWĘ9v(O CF8TZ\yn8Uf<7-@erST/XFM mP՚D*+|?ԝiL{?\3""{`ˮJ=לcl-[H ȩs@܍4nH$ @R@Z٣쒦Gْlo}s}5UB=~{Y{߷Ӭ\͌w R#H/Hw(Z(V {9ءU^U شQN4ij)/OLFAPvzX*TC̀qM!^ʏL`GoF:F tup2TpsZgk]/zc1È)(4إ;ɋ)Mz!{厝B/Oz;e]cЕ)Loox6gQ츹Oxs0gr*-wRe ŋQezh<|YHwo/ yiωW֔+"w0*wIBzTIL*#;KJ$^"B)z#ۭ8t,h4gx4,[~{Lv9] 1T\TBf;s2&Z'|n=/ ߌTAqb aC?ө;\.܏׈~ffΨڮ{UCW{.^=Qtms쌇xk a3U%p6DVј>ǯ$Ifř#4ce^wAOi#߈گpz䥻җK遷K W@~>HIZtd)i#E9 :?>xC& L3Fi90uQ0jW|FfSr4FG`%:F"b@gNiGbBI(d_6vϒ.np~Eyu'8wtޏ9V10RTrF3!$$bkzɊX쁅ٹxKS9?TTXT&()1J;O72_$;x ʔAlsLA/(n2xUG;O3VYլ; Q,4T86@y֟(+,}!敵^  Hh' y/WޒH=7Í(/EVjZoKxcMgg<=}bF:b~iF'Xry{h攐<8%Fm#\?MW(p(=kIͧHp3ww۲#/|Qn0;rlޱ[aQxk-28_˝:Ek,ZeYYii< Lrδ Ҭ|!ƍ xv$ebl)iR"-0q"^yg4jz@)iL|sZ|O;F샞#+8+1^_Kԫs^Rr!m=F9} $0u$/(} a w=xGмʤ?N%=Dc"1ХsюTx괝2!sTرpGSO#<ʎ9&aSRQ5..lu[kN֜]\ EcףtH"L-]6۹@i4r0Ѭ(|k\0FTo%=tvsIQY*ZCөLAX=IRMY:-@H>1ٞ qG1:6zΥ.͏'x?nT/h?ǩܦ>}2?/~zڏ;ReۥIS)Q u Zf^old`adL0Dw3ݺ}b3nKuzwДC{-޻{+в# pm,)Q%7,;:\}hA""qk6v=MxNj?`_ٽ@ﻉd.a,,JQ1mT&4ZI.X'BeS w?ɕR(uk*;~[ۏq7W` 1@D>ÊYb>=UGPt)Xl(Оb4?=)N{nߊlK#H['/`m'#w8|#2# ʌ vf;YJwL3,Q*gTU;\rLffWekM+q6X}KkEԻ1 5< Nj+cRB~޹4.TJ!Ǹ'#I+~R C?$S8/ ׿0|Rܟ fC*3ݩL˨Ur7TKZDw.L(c{},*3sȚT=hIn;{MΥ {#Y0<[_=p@*@)t{x|F&47vqSM<Ci* M4%[C1fbvMPPN畳rIKo$k\"`^6 8I10FkLY=#IuXsgd ÿ;&1$ v{TC;{1PcAw/ťb92]w;1S 6%pbΟk ^1x^BlX&65:UJʔz:Z"OǨLFnr7OJyq2 .*ci%DWO*c;>~N!S-S.|4FȫbGZ2l#t_ p}/*.2v =pB03(?;N6?9|sRe@HHwrgCzML66{bwv+#|#ܽ{)f:ŵ_ȥO-~"p77 <2. ؉iy(#UJ<)]<ߚST̈.A)0iuE~1Gg?CP,ѓ,OOf^z1IB:gffeЅ̦>SXcyڴfrw`FB`R2[罖v[@s;4Woݹ5ߒq=vc'b6J)U{{hv۰϶Vb n?>k_YBRetM!h }ԢjXDJ4xI Zz4U5YE~FS?N)?͖;Mt꣔ hrU%Oq7w)j ֽzwtbyD+W#"z72xݪ*a3!=^?*„/FNkv`쾸b)RKCll[)B=cWM\[Ht%_Q~F)czYI맡 l4ż*!vȔ֩F..,CGd~|(3ɇu 誐i Y=ml\}u~K7GŠԣq~*2>lē=Z_ R gPt :N];0jII: rʐMD^Ṥux>6`sRtnq22Jg[[.ERMT@I] Ս~óEcl/K2d wZDA{SVm9W\D{_u; Bsz )Y=ʴ tt; _8eԧOGw{ׇovd2bSYs}r/ejK"ΝKTP *L龍,=Ɓ-7wּP1-ݏ<;!wKv>޽mMǷV85WW2Ewѿt?.M;_\.`̾&(=1͎*g6jfht=X@z0lhx͇3PCw~莌`7TuZat/ ѣ2=vN*ܵه8(8{py "uKTXߞ]|k]c59v;U<[Wݎ*䓈/x5k&>9^ũ\Tܟ@H`"@A/;e pL3eٛ#jn#a>rvl}5Vl熅aUOjl{GEnj9[6Լ A/r稀WB}.&2 m/jM'n{sqY%+#UN5hӢ(S mϕɨ~UQ9CTsvybLC`:T".xj&L Y{z Fz0w]5Yp w=,O1s" ځbN`&0'gKʔݺczPjvX7.o؏!:Z16(vK~yPfҌF`&9ti7G!Sn\~M4PLV)RR9nmD\,Kc$a!t'lx^UT^E#e`*k\h;;E{iK!K66q$ ĺ]Iwg9mS>G|jz / [O LʰLa…LqOJhw}Z*XwJ8$f纸ʎG~_] )!=6,5?98&g){f4@7Ԁ'OCxOƬm7y'X<&0vP 7ZͦH߉| wvFyYTg5Mz:1iivsg~pnv1Tye 녯~{v /)zmfp,۔`vp2t46;D;"~p]vpEe0*ҝdr:;hvY*~*S -Nu;VaX5Gܽ~SՉ@0R&S 1jۙS+^ߑ]9un+DrOOJv;JPg3R4Oj2IjgK(g p=/IsӋ 3)]:ȒxmPx)+&=.FzQvobLѦT<[M*#-A5vYk[ i:U2‹.]{&-SAeQJpR-n`*.*{&XZXCk( (kkt32OTaD&_ŌW$2 7V%lwNBN6A7!;AnV<}\zN5Ngt$1𶗆ɡ*<0r'T82bKʄZj2i5"2ƌFsFP{|n`fNi[ wg~x/tܖ,Pzznϊ\62g{-<K5sEL1%xS"MNS>bEƩ_OWbkȚKy1t;2tҋ#kIp?R/ l4}q @͐i!681*kusD_gFa;g\(Nԝt4`aJ\*VVʞζ}ZT$ƴ7` WuեXھgCz_PZ[%,hRu:ڕn-ugy8bnk[aޕ?%0;X3~ŎD-]8" bW{uhHd~d'F󩍲{=v*%?1gKjGŰ^G>Ң\۳4-!ۨX2 8M!-t=?ug&GlMCmmM-S6PޔLg7۽қ)G7;g0MŗB$ur]h1n-nS_cR?k;?;^T) g?B,j]3q/sRs@f,wKPVWwrSk ĝ4ʜ `ұǂ"HޑInӽocXdVoCxH2ZƷSEI$()Q꿢_+:$,˔tILO*@|0w^~>6aoFb}!>g`hYҽs|wGB}:}+/dGIbG{\`S{&O p'Ot"d=JA?0˓G7s /U1Tn/TuNIgxlk  eܴuB$e>>|ӤVS|?mm/ *T>LT:v$*v vdx!vhwoa)=vIe(vI'9(X_8ZU0FYh*vL]=>27#:27eq_oNxw+] USu ouQIeEK\*R{oXYBe[O=E"kPǎ,fFY}bAM?34>|/Q3 oͬxS)y5`FDyVW ?1]h>_dW"~B:-_IW?0/QO8/A& 3p~[zyRnĉ:?i.Kka,aZx, <2j*@;q~3Μb} u'Ebuvnݕow(vW7b[UJU系jx>ZĘZAiW/yLC8)厍 ^=?"fLqBj@ճT"oT/RS=5l0bώ~rc:燇^H/mitSg.9Sx*_#Vx.#i>u;OO*%<6;ϟb%@w*C6 ۛa{ OF@KA P-,]RZCF=U[Jy%*E{L|> p-&iSA;@륏CZ[;߸t a4BŸk7|Ϝ !xΏf ը1>a2S?u;^z7 h:u&M?=LYOi@u1ixm3ٻ:̺`Tvߒ#2!̽>ê*xo& w<̟ |<|\\`0Ia |J twQJX| *ʺ}*SU ݵsL2VE?E٥LhED܂J)>Ͳ0JSHB2 Fa`S8ÀLHWb]g?`B[XH&wH A$R0m .+?>t=!q0Nl?>U/eL*^@`LLiJ}}ηlwU='w/6Cg9sjؑӏ6 8{|ЄşŲheO.;7a|OeFJ\z-T4Ez{Ny!^gKk}+ riྲ@ηnn_V\}1MBӛ zd/*2y^zM~hLdH]_gT__\&sJ= 1[xvoVLcGc+v$=J\~ZIen>Jջ@f7##3;Bߩ;Zuq{c39FQCXNҽI 8]8l an7mĽ5"e,]#e'б|Jn71No}ǧ۫2Fkj(=? $Fy36aaB",> ?1rc?ךď}m_$TFM~re8}TIwd˜]y¨d:jC6lVLHUp b֪b^yY[0NMN^5vp}nH{InuU#| c"%lă4r5O~ SĊC]6ubyDpF1/JĐҚPDYLY9 nTZŎ/2 zFxX>L`9sicg*VG gfƸYylvf85mv0Y<|-Hc)j>,]vl vt6^n/Z<ؔ~BZefFȋEEi_#G@NyZn"H'CZZ#Q:)3DNF6_Ņ}ۖўGT(c x@BzI4~~>臿5/̧"?`-gXeF2_`J*cI)Ocqdf\efVov x̫!ڋƸ.rN.=`aSqRhWݳUGkHIJƨU<̆2^|#*^ 9Vj5 -a| zf+ dP&=_Pa~eY6\YNҠ'uٽ2 (4[Z46>vT6LdN&q4z"#:zN[w"dܸ;UG;C[P*]wžm>ŽSKߗ-^x(B/yܰls>VHwf;s#3Dz~{qhGo"KTFXڜ1wqf1whi}<%Y;ƝfZ\ݎ1ŋWn1uөN`V<5w}] >vgO6&#?{-_x;SH Pg8XiZHc!u*W97wABc4Yl=toWyqK"Lf>Qzr&N 5;i1z%WuXr-w8NUf :D06WYcmZqݍ*UkpH0'J++]w(8;"Qi*i. ht K+[O\C+_uuPn,b3 _zΡgzV:FКt&fWQj$ )&dY翲?iBeKBiF.h v Ι%)*ɃsM%@$:("0A&G:Q< v=\`w`'A:uE;+v_$O39?j.ڒ0<uYd{>0eG8DOۿڽn̩|߸ *3v\dEY>J'䩑Y0rKؖ%0!\w,~PVƑ żv;euU媂xf A skq'"RژYtұ+]>D9fN1k5LַQ7DP[`g,>ލwp#cs=0z@.)w|uz]Fx]@WO`,{?mKNG6ʼKl,Y!q**MLb(cZ{TqHj3ef;Lw+;m^gͰ| ~lFY{@,z(TdAM;92R(iVrcSI,J$:Bd^O6'ޢneP'bS-fΚ!/zJOa3 |޽U:zBQ@FSO96։Z8X8x! 92N.H^_W{ Rb`̜ 1юS)Osvx)~*XKA CeiѦT>=z ݤ?2|ǴbS#~fZKOW*`?t88vxv` Yp7 RLq7P>J9Ӌ;'1&ӌ.-J5m~G8~ۛ {ilM--wN09f _!T'Cp~Z"1tNf_;֦r]>ֲK6M^9O#>/[(OSG-ZHtנN{@k0;n qDYgIwʙqwcYwӲ64A7{c`OaZ!}nM0X9>AcؽL%"%͠BˉOKN:jTԩjTi3zLlUۜG0r]!*o\Dr;QӮJ"0m|jL3"ia,z4`$VCj-𺁣7!oi_έI~]U{(בNA1k8k^lѩ=ERk^FAxz\OV#Un͟>32ӲuhxGqrphkt*~;rYpצ|7w_סiVYm_ʶ9%=E<.8aN/xOnsKsb;QE۟ذ+[D(pN+U=y NZky"]G#l :֓P#IB+`ưS;c`Yތ.CcdlEY1.N˝ʎ .|SN%*U0 h4;1$Bݱ8Z1[ vBergݾrѾMqwFY !%OboPϙRv3r72ҩJLl#c0;J*4{{'ʌ7R_pKs_K J>~lv,jc~|D]$@de*> W4jW HC6=׿؟Pt)\h# waGuidSnOC*~8^+0K50 'Ev#Z6αbߑCkMC $-<%ϓ6^(vO\KH*H"@Q1@KEV#Pfȭoib]+ύ˭w|b+pF- 4NjneK8%]9ĀXJW]Ўn ߮*^?~ *S\TF:}dSS, l`%Gt7R{wy "Ş#sz_}/3v!K#!,Ѯu_</9?@e;<,we@ՠeKT?P$s2dW{QZz~dϷ^nBh3;&UaX7&YNW/ ݑUX޻^ܲ]zNn .gH:0^שi^Q=]W>R<=G[ʰ>'U/EQDi;Ddc23R*varʌy|: *bg]/ _ѷuFݎ@ҝvq'.ҽ:ZQ5v q-vE}z4Ս + 29RF(Hn.O-Z/]eGIp_ہǾx X}۽KzB)+?JDe בNLI[ ^wǁ“*u{9z=qɪ^{^hn} ?L;́/95 ۃW!Kt8wp9&&$:]dh)A{#7 msL%Ceֱ/3b6ybWwIaQˎRQiWib$%*0UѲX=bԛš1M8unvOy<sȲ/}^894ox>^TKz#;O`)]Ԍ5CFGR])w/މ8PY00u#< Z'1uؽ}-}j ݟ㕅rr'+fcG {ԛXçƘUJ aԍyًGGfS;.P ϾnZ<䷷u"R*RFReoMu *~%;rw*JTƯkVdZ_gU1-Thj'cm`Q(v}Ezգ=;el~T@sOX/nd^+''i_[A;0D5L/ r ǹXue~ʘhFדuǺX>|9;q^ Z{dxw; xjw {G"‚ mw}RhRoKi&pQyJQqr:=$zU',o+JǴY". Q+_rzU;K.?]AXs!%d(Q׀369Y]G*Z$70fƢi=b@AL-!fdԔa9}gdq0eK`?=„b3IwbdŸk}=>=v.U.`Li[/_ #4fCW6A2'C,wLKo@S%]q2)cg4HT)c}\ዹTO9dvKp dyqR r]_*'q2u~{}#.Z[9{\/WKo.}YeLB=H竣 ]õڣ/&q.:,x8L\?o:9y.$BԏwRюLxtb<cR1mC۞o){G8lv صuQb`cf*E 3Cw<<ѥ]vh(d/pR; JqnQ[ꋂ4-wA qg/ .ܕK>Fe 6 ;{L!18T2mvy;l/GSS9̏l}| 9xu,#^S} ?@i!-U NDc:UI"^&$ݹ6;4Krn>IQF@gԍ]=*[OV xB!S/79zFɏB1 `wrc(}; !]֊ J8uK(}Ħb*v 7Y` *%cC T2;A_*hv_|(v\[d^] b4p۔upI \-TfcMLEA"_+Mխ:R8WwIKn2JLH󯶦+P^t{bR{+ X2~dчFn`< mS_z??W~4&ܯb˝jt2$qټXK}L*#fʄ[ +{ zq44z&)v&dICG$7쮱aoc=vTS6ڴk'Ob@wɊ'7%xä(V<>^%h~CN7B;etGn@G032ёybkmU4jNZb{Ի7]w\dXI: 'Xch^ XO+J}Q x5u%$"eG@ƾ!mI)2s\߄|_9/,qkS:bXz~Ÿb 1{(:&܋9"90xk"C Qbא0)z=&wۏCs[C;+ ÞÆPJ=u choWnV{'Oh`{SjvI JMलћ?:Jh&oAv_j :7sAa;o]qa'#eoQ}ݎr dwBdRwj-wkuNS1}YNsLN>/filL6̯5]z`#Q=D N j-} Chc"1o5mkOG{^7~2ePZfX)\w/sêfJwIUOΰjVPx"=]jӷ?84ӉiMc0͊x&SxÍ|) l^N&BOed@\$Y[zu%:_fܥ)R1SO_P'$ԡmdڅ SV429Sj5%G2F'FM9}};#r=ðzߎPhG@+TbtG$zPOV yN$;t;(Y1VN`ᱛçjf6{m +Qpzi=0*(eV1^_Z%ݍ)Xk Qt; 17H㩵&#/G";p$`.[t5 ,Feu~qMwcIw.&ӛ5a^c{wAw)26}kʶⵃimv|gҜvvXq!o+˩?<J x+%!rWML蛖&zECJ>:SDOPo{i;{ w%NAsdެHzsv%+Rl4ʜ1ܻy)#9taknYq,pE# {$ݫ򢜄\FIMM^ME`]&SF=UeQo g<b^dnX/O~1JiG x'^6h]^hBCEo+VT;j*kE\'0A@b*$vw p!Ks/q"[b>>jS1n󩋲𩍲[` "p1٘JjfGGUؿ7€3!ᶂOS ;fxbTh=, e Ion" .d%o(B\\$͋[ԳQvKTFs2`YFMx |x-ܴK؋K1zs2!ׅ9mZƊb[/Nw!1V7u/XصzI5ҽY%;&M\Ϋ=+wVջh{8]Wéwww~ ">tM^PK@D>IĆPn|%RxMUpRK,X+ۻΟH o㟕]Gy1ҋ0qϙlKK{8b9:gZ [QR1T܊'ԎvOGfhx8m䎇NR.H5e@d,sNXot;D\"uh,Eu5ck֤"ܱSϿ/#n^r2F!BUύܞ>= nWOvY9O#+oM{=ak`` #(wd@PR|cF@w03P>~ MuvUDZ~<0 ~BBtb3x^w-z:۱[ݛo9ݸCGg #5c 0|"xS;+O& Kt(9\S~H}4ot6u"L 9W~,a]~1̥ԂUB7~(;břNWGM<i0KKkQ  ~UzVg_@-#;蜭jLY;r}pFz{x'{A^{rmt*NQx 1uY1ۓEku|ꤲç/1É1ޗ K#; lf dse!7~w-A<>]vq`ҽtjo=”E8Z+zvJ󭄤U]1U˽$ŐqNftxͧ۫CH}䣩f &^M}X6Y#[ƌ{9sK?Ǩ "YnQ곶nm@@0=t֞1ۊ׫k)b6Vi_Ξv¨ݓR W>q1ګ_$y."U߰FssvU/2yTz4|P&W.5Tc DyNra#RðM/x SubGv|2DV"%8ݢbf?9r@![iu( 3\c>;9Ph6f-LÁ7kώ^so{ 5te`FS5'Rh*)Y$vmva2CNgyLB F+k]ix#)ǾxjMjF8[<9JkC(jb6Wf9uKcCGc|n<1;2_/fW4;j-xD;.J3yeF[Ƀ#ϵo+TF҃kvq&O!5v~rvo/#eQMW|)# V{ۗ6cc;q6ŇG )I#Sp\|ڦ#_i7V/u+{ҔS+Ki l!4Vt;U,z%׮x*Aޗ}3UU)c> x5ؚ#0?:Q  y(I _d',qD#F;]㙶<36`|-‘6˜q_bK4^"o]RxC}EdB2^q:]hA\_E` Kρ:6juy=^KMnFM7>QqsDcfS1A v:vO֊t'EN!b]mHw/peTbG,)o0)>՗2~5t#|)l 0'Kހj'vܑTF0,Z.}N A2FAe4@ܭH=MvF`sOqoRTY1S_4ݎ;2^AFDw<*v|'Gґ~J_ۯfS`;HO{3,|iNHT̺+AώL>׼x^3bX wt0O Sj7sV]!+b=3QLu~Nƶo蠏އYIla1TٍoC HHS`:pHa`9MWUy,|+rIg2h$rb?I4$;>d*/dะN0;U{:u.9$: 9Eb U\T60vcL>=|"ScGNZF9?E)lv=3VߝV?)>z5;ߝx@`8Jn *} wp2H(HxRcHXUoWVoop)Un/Q}|{o~C;xvt%Rؚ5r]Pqԃhǧ Tv7)I92ٴ_1,DS;YhbRSeeɑk?>uC 2c;'XG9`3enP?靏JCfښw6w婢~L@G&&yUԤ5.=4O8 f]]QM?Mc&s EDgHA07%:)!g0󤆩F I)^3^*Zr=VZi|IOAFNC< $9B`>ܶIb<upH,./+.Q ULr ёb kR|xt7O=tG@_͂f 1qtگi ~džn+܆ߎ\ "=GJ^EҜz2q45iDP# o0C= OYHI2z#^?O/Laf}`ŮB>'T?22D;QܴV9mtQS߅&E'ēcK h8'>/]`ͳƘ*OIwRRVJ$d]9iY[1= $b7eviؖ8BɁI%Y$N.d4'b~<|'Ys„hy"|?A \"j?ItJFt{\7t!*N%1"ׅiב ٳ=ȶ: q,1PPGV$JYt[%cL00>js4y:H}D ç6d񬜅Y eXx]i32d]ĽcٺSG fVUmQW^#BuOwUfQ@=yB/E@ё,dfE2{`lzF>SH$\/Tnx{=_0WJϺ_XE7h x"y.uB plZqmjfK5uu^t]DjVmM/ r=S(\$#ĄPQvZwzvV;þǑJ(vˊn#.xb;#`L9Z 9/ 3uB=ilv`rov+|p2b[$ԙ* z2 lMG%_Ln7q7BeK{1Q=Vl7m&^÷'HwOejm;oxW u<M]܎g+٦#Ow^2Ϯ;@wNT~O ZFK[LGGcEw̔;jU N{ˆ޽Y{'1&g<$7}!9)!"~wvÉMeW3NoV H | l/M0Ϗ<.C:^ӟQ*;g!Gȝ71#|^ 6#$7DܝJ0[X^05r]y+ζ u(vbm E;;7ZrKJȍއ\F9|3M]?5c]á2G o(w(߿ /Qsw4lZ =FWn:ZFR0R>{$RFT:#\8 ZF^;=7vC+> u=ZOuhҥ?M)ɩG~_rJRd|c̨dH,uNK8K*&?b~Kq&bIwd<ުVw;]f*!=1t>xfWcG:un~҄:'$LPƴܫ)W` 4Pܧ) vFmdl"z]*Z48>*HSƜXO!NSol㙉:+RaV7`}uzɐi]?m@7dXLH2:0pq*ۚT'y.<~*@F/uR屻؉cɢb^t>o!_(O1*Uu#*iUF(hvvR02Y?F|'vG8;Q"eDΏ`f \tCiuztNRֳKe_ks}I8@t#؞ܙ&v2xBȒx^M^R5~x]p؁ lToǁ>w]B%?3|[=elSn}>%oRƤe0QHҙ1;zGXLVu>'2]w6wo_U<XZ4!=4 R da%qL68_5ԃ73'%/b;3+H6_ʱ7'doWY 3w\ N!QQPy_>yV HPor4z#@LVЮ|u/mcJS%0˝A w#k.^v}W8&>pj0dËx =Sb 2odUDH !2@Pm͎?PYH߃?5oua1>ގku\%\h_q>TxojBdt:G]ڻa>5R>=l79rI2sFQ ݏ*c0t2C{w2Ue;+g rm3ˊ`j]&bXovQ+(YQz_k)of_قI|`U^넊"e3FycZ .-HG1Ҫ7-<n)*INNK5X7'L2\?X)3|za%ѱS2s{<Μ-vj/\%PcO^PzvΔSʎCNv$zSƘ *P:(nRG쭍oj +/h*Dx|_$p~  {?N1_.nL/yDIr"]9ОrS܋vYebɽ݇ZeFA=m{o >"Ef7hݖ.jnL(rrVxW6}B [ 1VWU;s =aw\e$ QfW6=6c3y#{mFNH93vVs` ·?O N#i#M|Zՙ'Ae&ȋAbC"DFHw\nFť*]n^l@ry2'- &3I}aUT)3՚ |vKUxHкHzy `p[}-OY;), *UlcI>_󑙣?<8:8惃K c iN !:~n>=?zç}g.qR9v˖Y Q7BG]b2sd:T,i.s7֖|"[Zݬn>)ZJ&ҏ9T]Pd\>F,0dȇ)GuiMwcT=my&v O3;&{YẂGSY]d8d4=Vt 5\hu(8bo ~[}uY_֮\hN"_}R bKit׹T1EL#N<_L*b;0CsC}# k.2ʘ| b +Bw09N2s gpRݴTVNYH(m3?ͼ>{esSs96E)l'nOy;qDS R@Eia5j?^\s_T7Wd^pcsLIM!w3%Qe/[h\n 2NMr/enR{kf:/#^:$q}I{{.rx;&y%0aJEW2kbI:vz/3Y1UcOsv{Ns;{Tv ۃ/~'?v.Ef1frcGPon*# ú615@i%KNom1Eż@6ڋRܞS[e2zM;ɽ\os]=R;/=~\\v}`qm;i^8uKhUlo=9c746\Jn$DrZn[Fe"]CUuݷ>狝Xu?wؗ&ՒKndg3\ysWyhvUBi=zɭ AG{,vX>5eUWv<wnL9|Ǝu̗n%cX=CZTM5|?FuՇ!y7Pz S.kHe:7 s *u0&5fNs츙RvT{:hSy;'\1w!j Leb$OjI+;!a;+`vݷ)i6#v)TFP-477WhN%_׼y3:Ёa_dqnN*j] (h(5_ri{`o3"#eʓq˓Oy;zUýWS;_}6w3s]c[x#j/KU̖oHe4T GL$1_DIU!tg^'{8ީbzup5_{׬;^&gwUDxxE(8N3).mRAI QQ?*ysG6Åt9Y!lЦAE}K~K]*t_PH3DI0iyR{Z2*RFYEWa!3q*EW޹wͼ8n"ya5z CJE%beB' ZbNh_N'A1=qŤ]Oˈ11&-nR5/e'=477;]&̥g.?ەwov#:_ׄ2)nR=)dz{^' nMc ɼC2>xVK|271)?z[e'-w&}r]ܔ!kb"n7@w_Ѽ<ɣpXugֿIUpC Q͔mV&[jLm33 ހ{g? Bm|R OW75۹q28Fey7jQj*eZIxon(I狆VUƾ_r9<Su2Iw˜=|ST}7&9ꕞR`:0]GtCYW"qHÜ0efw7Ø^Jƅ:qJ34؉vL'<}ߩ}:ĞtH{%6XUJIcWG1l}h k#Q7uj .om}QkGBiqfwk}'\LT4ǝWI#ey2!OfH%mtp W/q_+q?-C}׭rf#%kɠЏÌ1ZƔc9'd/T !'|\Z񦶒Æ&Dbi{W#{߹o[ :R@ΨM`?ns4ME7?V;UħK GDlQ̈kT<$d{W'Vm9]}.E܆Q:O3sXq4p[uzҿ ֋ziӯcٌgha$}}So}IS8pJDL/TNkݣt4_`/䎝r^sXR]=΅ˏ\`mt4jSG?l84*6C_ֺ]BgM 15R&pe(m/{ph3J |2=N)S5=ov R]؄9ø}xw vCwf+B; ˞ ZN{u`/95=+>;<=caY3{}zO/y=phVaή v뜐{,}ٍ$x-4vt!#k̮݅ޘj M?\W[QLsۻ)~Aޡ!L2!IŚQ&d>!ݾ4_>}(H.[lBi2 2C$9Xc9|D<'F1s Pg P[%]m3L?zfsޒ~j `WjS*@ {ftw.43å pXkVΦ'$74m&kzr{>Or%^6r# dωw@4xM@uxQ,+z%a|uc|EUkŐcΓc/Q'z\0[?=B<܂5TPgrm'b͈JHUѽ]`z$ljpUXPPapls0cn)N3垽\]/38ľޗDGⰲ3U`g<ɂ.,ldsOHPb}McOb8?3wj2|[zv\~K{+;ׅZNcWcLЦb[YA+TE$fYEfj2õokk_nfkW|2p;?)/nǁK{d>;#!W `U/H䞍pϑܥog$xq3Ko2mUub#>g;)̟ !p חX/?!XMk Fw3̠%jaV 3 4f2"tOݝ~jo R;e"Ij;1yAL^"=\LQ]Ĺ3V$579z'@R -Zw.L=cA; j+q#Zyy-q]%qoj 'f;kdT0/,H6_`|θhEQѧՒmE4VsLUKiBB̻`k}h&f>p(Q*-1EÞW08+Nlyzؙ<-i\1tG!Ib'=ES1hqb ^ Vd#OG2;7d5N7ZZwSjwXx;+>½"z%W_k=g GL۫Cn99j6\ۇjs̥zzN3{Ȥd6AuW`#x~X3-_2Gv_c2t^eK|ݝbNIQL bIzk^ZމYFO{o/Ws{{3zg޳ EʼDШ[`ËƬUJ^HYvF6ɀa,(x)iRssohѽ G摳e?S>;6#Py&#[} zB:XuKS#P S 2?cg %:Z[ca:l: #y v4ð|FW:h<ēAIjOم;qE3.٣ vߋpmqM?f?}eOgzxR(ԁۇr;ZQ5kzv1(=ǬdW'Gs+~݆[o2cz#Z{7ݞ3 /#BwTwA`LuGA@9\&|ݵS5d(VՔDL69dCgc<1ՏμCӉB=}//o,4Cb$=P^YS`Wg9M^ 6W#rYQ\oŊħ̑GtIkscp,tΞ?M܋ܝLd(H M *ctH7D`7*3ܵ.}0eδ8ћau(SMn_0/Ǧfb{$OYylP gׯu J{M${cNEz"cSc v> })~C3?m{[$~Om&3[ON5؂Tno] {s{J#'xCxz}x ތYvfͥHU~|uh\qAik {Cq?`vn>v=C*s knbOc'70@Z1䇙yNTw+cCݳ~3Iճ:v3{{_0zpQ{\+]*mmF"EɤsA|QɵH72-;.x,|ӿ.(c Tʚe*+4'H>]*WWifW_:ѯjnx60/LwʷfrȇmLsc\. bt tgyHKGJiY2z%Vw"W Nӯt~gxK\g|)]*v\vŸjj>/ȇ%;3;:Zu*zɜ>iP0SE;}Y;~E)b'.cbGcDcc=eess*PB%iAuyD Oj=5UvN"έnL^wH+t7Kz,k. Їz`񬃴my?^˿jBlp|>'m3c+2}֊gsX*+O;dBtˎnG?;oo~̨i|O~ 3庣ްZ{5A;KlJxRFdEDx<7;nK@Fe4FfE3 o;_&GqM*+▏k0T1WaVcFrݿheB[Ǝ̖^xIXe ݌0PUY<}Z>wQ^e^'өTi?>׿=_ݘmLG`.F)QEr7tÌ`w T/T|#@w93u;k*N':yT*Pܡ)QH{:g4hpU+a*ckk hL?2!ӬCxVTf>jC~X. , _bW8f}WaL.H6]9OẴ*xnä4GcwͼiҰ_/Mo2*H74QuupCc>:x䝢8&i6du=TdL`\^# Q"+P{:)E,1bbw-<ؿ(;HvA1{yowqnF2Ǹ4R1ك%wtUu-Lz\(IMفOj>jGj_#;C;(~0Dx<7҇iHz{Wv Fn.kL(.aLg ȍӈ2{og Pi}?<X S~toJ5-1̐Ew\ql+S;"I9޳$ŤmFLɴˡQk9g^W}r>:ʮMemV@ T'$|ur5eNkc[nJqݠ{a)7c Aao7 &X0f)[ B=aFFƪ}6]Ŧ^QT`U+Yփ*9S5!$^0l +,1rKi2- 8,ȷיWlO_}~{յY[åp\v8^Ěns{a4sxz儢W1p/ӯ! #ӯkJ`Ð͙J, Һ"TsŸ.IaIblyF'=vIh z\2!Ѡ]dv-uEw+(Ie˩>(?#omJ֦tW{ͻb[ $Q[PUok]=5۟zE}12V\Y(` V*~.>{"d هt* ybH@nVT#3 CQeUT庋*b2{RT+{ jv75HHWi5Eݞۚ.90Y]K%N^G嬮0}|p'G~\v-NZbSs\8L%:;~"KAYKLD9;{gFBqc&]jO;mi{̦x ;Ccfev1 7xvrcjzC@p;I2|7֖25F~;[$Qh7 kDtE9Ofzܹ=OolW<s:AYd1t7E.z{$Xllrfg\ -BCtwᐼR ݑw(ˈw2FDr;~\@w_$fzD7]d'a3b}'(yh܏-|GPnE^a[RxsUa*OnѬNQ~ Q^4'sK 2>Km;x"h`T;L7CsL;a0dppS td?LCcsN9C0Sx*& 邏]$ЯSN@G)[~76%姺\0;)ݡ2f̎s7Q7yz&3㍙]85`NxU߾Օe6vC.j:s+;í;g W]UJ2cd '_3LZg_Cczc˛1P]Wb(uO6w+{Zco/Ac z$1 'sAOu4#coSƽZJRdnv:ٟ%7oLkjv05g| ap;IQI䞊LJ)xr\03ϥHTRd<\ƛK-ɁDd(ncORzFA9nA~Yk^OۗX96&G#@Z ;L!хGW`1+";/)P]!݊(/IaUzM I諾LZ'1©UlENmF#{]fHTs''X89x?onbO!d>>dG [g&LFiɫz'=휁?}mU;9ٔk}?WvQAd9TAShtU\Dxi! )UÇ!g2n3ߤ&>\c$R("9G`3vӤeFs](ܲ1@*){ D>Ot!&jVOֵF@LZLs#>է[Ȼ=2)r ~arv0jI;KLp=\eJjV 3MA6 hס'Ì7?M~#+_~XEwuTJ+[۫mfRu ;;;މW{|]{J$gtHG|~kz/3Eo |QɃ::go@ EVa^`Iád8ޫByA}ش̈́=;,f>rːM=s6s=$QZ_n xk?8KcP:#0[*(b;&|YtT{Pi]kGTEØ/ʇ)t8cS:Mhgwf󻮽ΫwGHBJZRBco/֞.+ͮm%tiMoW)q 617;FPEfEfƾDvQSONuoܘۇ-sK*3]h~Fwr{9[=|"1|2̥&#܇< JvŒ|q;=;~(:@ 'Gyt0s$Tuf@wkebIw~exw kYH\NMfI.yy{dU$:2ov5ϠT惽B f|dU9C,RrD# ,OhpOEG2/iA7ҽW^)r|n@4s1>3ha$K\TԥdPE)kD '+>;rvJ]d¼ͲuLG}B*,Ws(R׿-C `'}Ϥ,\5k})1v^۰A3pHWQW̎ނOZiLq*;VĘ}q{MQD#n@f'7C:Sfq6b{wS3RGo߄(HvtUre&v)e;L%TCЃ+]н>VaCsɝ_W Ym;iV9.B.]K58洺6`L!*7J}=mNGࡩiRv8Z_ϣH!R\|k̰ϛ̴|LJ$L$cz$^E֤3op"Ktd~MVԡC;F.:r9ɫN֌]ؘ⑿uj ~S_7M#odQÌb^so'l˹2擉֮we7Q;Ʉ\z´&Ϣt,L0~؞J۫s{6D(QQe Ӹ vʂ+C<9yv3ɐĮGN prG[n{` /Z3TwCw;<f4d3\DWa7haڌ)y {qtaSyg>/2?:x'_W;iFexlC\gf'@l>ȌǤ{ghW_本J'?!?n4`V"]sѻgUgi"4*zZNo! }b2XZATAj4'v$r9/͊^hQu3LD4(7pz`s`vdgCu洳K8v*NmJxdꓶfBcoS{C$;{XѐSV(1E.QOc7-T1Mn\ݨ&oE]XI v݀Z.(}`sofo"JYnjDdȹ2aXv\̣o+H vQVvuf;+rԧ2!v~=JB-M2lE!<*qõ@;H&?p<}yDbս^R݅ln;ߒo]ժNq ܨ)*iJdEާ!x3UMB_̋|"#8sXa+`ec@.nb?=XFY $7c0zPVT.25 i9`3m0ɏ㛱Tץ>|w>? @u#VGJj=K\"/8Fn:IjI!tir*U)=S]:"!`:?)~Fé#ӦvsaA?L&]p]i\7=SuJF{"(_GͮYQJ5f"!jnrcgT4.ƮO;cNkS#1O%=! oY[88"|s  LM-z:hAДhAs"^2Cw=r;Y,l~rl9fJFK[V'z{= W]'ױe6˷/ >fF$7.Kv-$n <6qwf S=g~8iW vόA:<3~qa+tsiSLlzg9cb̎ N?!_˟A-)֭! `)2K 8J\# A5_gޙmz$Sy鲝ʹ蠨ܲIv:1/Sϫ勒n6^ҧ`$(-E2]`Ja$Ѥ":BPr'\u!׾0y1JSgI@]N'(&د2֞bhӳS,Yf^?:%ȏcfBb92;MUfhjvZ5iG[2*&6Ԧ"gKv6ޮ̭<{t/vv6S53wp+MW=kr/v7.gI<Í۟9`1M~xI7d[_=} ׅYEDjL{K4^XЬETڌ4ME"j:CMUs${A 'KN3OM3i;mFjw8 G7C^`^O]Syyk*ƯbW1}SsLlw#p5JU/_ϝrWb^r y!}˅'RǕ}aU]L ; MuCK0H[%»GwD!C+uêD*8'=|^"q;3Bl 'ۑnv6:0PO3)A/`5Y^ʒ$ZCȟ{IisVk=gi(4Ji\zG\nmH][|Ǜ}2W }=/^̣n6*/*]1 -׋ݴ+3-a9ɃO%!eIu;ۈގ7yI0=³V9II/Enyo[X4$\bHRgeO]\\1:y-ὺ|cf>Se/jkˊZ0Jbqf!@Re])>RY&9Gb{UDυE?WDوEzҭi&HjBcH.\&#k͸$Hz3iD*%HWJ1y}=Btk N.cxQ}lfkFR]]֋"V\ S4djsEY:>w v;][`Jcה]NSaR2;UbObt3&vc;1:+ׁk uUJ M6cΟj6wc}AfPi K۱#3[;w F~Nm.KBl\˥m \ ˸wPۍ9\2! =cIzfv b^!*Cv#(I%(\!'Runmj YZ\.M~}b=8u%] 3s5=@wgwaaUUS»Eufô,n.2'ͮJtdO"r]߇id(grDeyٌ; ۖ%ˀ_g:Qi7l֜CY HgS`_Y}wKW@?aEt%AK-HC%."ŭzq5-2Øw㇉&Bz6zNvfyRIv˱HPV%@,ю?mj.B=Q{ZD)rŴ־#y/=JJ{O]c<jJ苧f oiKq]vvly<5} S=poo&v$ In*?n.5u=Mr^[$̌$'VJ;0pǚH]ԟ56P6ŽќM~`^ # 6}>$u-`V('W{3Lζ>~bf5{$F¦EjVrwɎ+*o᱊J ѯ឵]Wdxq8Pm.lB(ϏaEHAxz#55el/ FsDrQV^c> 0d?UbRV!;])p<2s8ad4GMq$:KN/Ld-1&%t'VŃ$+< }"b{pŘ]1U)IGmSBfZf4.UCh Bf4 vJ"L Ix{>i_ Ydv~M]47ρvAmXWew$+˝W?%i?|C*εzSm9Xtj+$+eT7v<-EoCƠx;9c1!sBŒLj\tK@w#)>ީ%MYz5,4s椾)`mnϟL~/_z!_>s#JEk5~FriU2:#-mR5C> v{K5s-{'R0:'yVoW/BQbzM"Lb`x`{e: /͏CNtr!ECJp u]rA/6ZT&jxi#x)3촃:[t'i b"QΟq;6_bĺLHv4uc]]1f ]z؉h*Zhdv͎̾djvyݭUi7Sng>20F3 +~hne,jnpKSBZZ?Bwɸݷ<\h{~"}a{H2\kr01gb=sj/$#<~nSGQ/90 僥xqK0-G0AZ?:8j r\/6|:t8 tk[>Áӈ؝|a J|vLŨ PC{mvY]5Yp;Ў؎ p ;Iu >})w"Y_ Rh[>Qkb;n{Mnܮ ŭ*{{'l1CyisN{w%Mf4W޾ c}"M)ha2.^s &py IYS1!\M8IUVbD{c _$ļ*eFzRm\/HyӁ:ZHhΉh;!Y @֏Ws'Z3=>HoҮ;?HyZ,k#H81-OXQqRsezh3qUca0ՇH6^*7G*EvN(QFa85PG*n-KT;ڶsc؝96jOrĐ06b#,J+7Ess桖%x"3]dvۈua벶Sn-;ܾ5N#)H%F$cnO=W=]o<Ӭ?^ݙKb@cqk)W ʘ~Kc}X~]K|6S[=<ۓ&h ib]ԑ|gvFU_ܞAC+öY=|gry̑t{i7l4?or^G@IYtWDsY ̫3n&8{$L̮2uqΌ8gZNBC˳N~ؙYqO|_>!YvL}VV)fqWLɺZf/JHoV_N?g5,?rsm؆)H-H@NU 5O` -Eu|e%fu-=w੽^<)g?jgf:0H]DG؛iI9"5sDwҵ~;5=.%%jOO+ Z*VVM,̟&r!4JIKj򾠻ەYd ڑYp;7hcskL~[xQ6RX م3[;9_Ռ}*\'e:8B1pStukmS>-R_$6_W2ma;sKGcavvVN1v14у:Ol?uRr]g.Yx`l0 ;a0ðזj1NF$v@' vL쉙SIjl0(F\1vΖacԠ=LwԸD4v!btEz\~꫔lzOQwuُ;k[u"epR8Y+<ؘy>,_7ֺk'&nS46!^K &;+?F)8z{֮: <15ve # {35!5Ip8-Ѯܮr+]6.oO^>'h=WlߐSQ0䗜p]xtjiwj)kM#"N*Kk=SdimMLL{1uYw0'zO%*+|2Ϩ=Ʌ$z/;3~uzLPB// ?f ip&TcsI5[VŵjwB%_Jۘ ,ѣ)~+ۯ<-`ԪhlsKO#舾t{:Xa=I;|c(h,eM 1]2#{}4k#C{) bC5PM_7wDG"M~I3ͥ$ة;A1.ш=4 ~WC4Mc0I|<6kX\ 姱fE]f7};+qmmqҺ;vTt{k\ۛhͅIJ>nZ"mڅmߖdO&Aw& 6PhWTEyjNs$yY(RѰy^*Kit4S-]tn?)<[*cyкUW/saM0I090b_o0^͇J3؎3ut)1獝 ojopckю!p4v󱃾^cD4v(%OJ bGc6%L ސe'hɈ=us;*J;﬩νBo v%IQG}5nI;JdB[(%}2[%MYWj-cK>l֎xAS+{Sn ?Of˱{G4Sgf&C/"bsϓYO O3Nڜy MJ |zzǼCMw*&% Mɪ&c%Vދ3r8=v,49 "30HTSvn0Sp{].W7 XennGuLJGua侊= aZ1&'Pp{jB:cOV稷RzKA{NL!rhOXnr^G஻@OGU[ gFU&& Ii$ztgHx!;y&Ue쑻n4 }Κ}p˔mu(/AyhOz^EabQZWCdM3/hM9mύ Kr0GKe]紑JI/՟0ȓ$EL['=\X/Eu^lQځ|[xޞw/|'͙~`'p\ʤF#bo"0'MNRk}uW'"}\LLc!vRFZy˒];v[dvdvnZ]s;=5R9v*Sw0hfO9 IhO}Ҩz5gIdC o!vɸXͭv5KۋA9|2z>޾Rm6\=&-L.Oz^xa/FfΓ#>gcw'M ]w^vkbs3b9-4T5! IgC2]rN7` ɂ!V+r*N4[QWR10Vuȓ9iJl>(vGa4f^\c2ws1?BzuvTQԇ$ 7lNNGeHA eDzϡ%c(4äFMU[^x-n%+ڛ_Yz]wS+f~DĹ7֧;v OU=p !]\1176%CfeGcl5̾һ-#vCf'nGfgI~{Cd,hHށۑY|#nہv~!t? 7N]hv|2p;)/ހץMU(FB)ܮEe &+[++vԪKvj 쩏GC#̥\b?KHJǺu?!x{EutWNʕUm.f͊Zл3s&f"L%gWr˛%>]EA4CȬ`Sz2DiE\UJQ?![Mz1ޛ[{E;c]Bq2-7P(]_H_ߗ3{pw,uW$qQiƂ>x͙J,_^~Eg{[]Na\!%;"R12>zTz6 Jk3L59b3P{a(Qe<ӈ.ݻ1Wc\{CFSq@;%؎`u[; 1Oqy KZLQtlw!6Oy>_T?`R,vQEo>/FG}<D E$s`jHKz~O.񫗧T ȋp4ݼY:p=Bq=[#nhaIqn~#wv(69hǚYĮ; JocY(?jY+;8)BxOcd Y֑BlT}InG-h*,h-.zgq{m:z-FG8%,NLqDܮ; XrwܮN*?mHLqa2fn/ۣ=QLYF0OU Yz{չQ}2и@}Ip]>51֊vmLGs L/tGT!»VI8޹+wr鵝͐L):휡)Zo}K۹SSX?6oMo׽i3p]@'KӹƠI v]]np@+K$S'>1B &V+!=,sU]b RC=ki7h'$}B#aҏLM;όgFNk[ۋm^*w)iI¸HZM9ip#M~Z^GTM? FE\4ZTnEP2+`}%yo)ʞkT(>y!@]3:kjZiZaOgY5pc¥n_!X%*B5$w%srIbwuL/í.qHcwkgfTvz7H LG}C8aD,4+;LlIz sek(&Ͼ.DM~7" uL0o>_׺]p4~W h쏷;kiymraF }(=N5.I.1Yd$cv bհVԘ.㺸$cue6k3p;:wC\jdnwOy.gI@(naKBYC\MP69ܾ"dm.ss -6";s{ h{]5&MGGLr,&0n䊑$#W؍|(ƕj5f zڍ}nI2$cRAZ M6A]o$ڕ۟2nWczc.۵gиr;\)~^0ۓb@m|hQRU&|ݠ]VksXW72ZWs̓!ϡd$ȱ ٚ_n/-Njk,-KT&{&G`rGg7vaU3sgC2oGuH]zl)׵}\dbjUwm{L3|WlhGLP>tKSEw'8eN&& *U#^ rwFo)w3D=BzmTԻ$ /OQ*$@i a0Y )W]XW/JO_Vo5F YOKmO)#~$}=~K{ۻoo){UD+)1an4'umSbbe;B'+l^cuQؙrj@ y\-L2ؕfFKvS}Y*N$n;IƦS ڹ`,M6? {b|6M20d%vL)-T\)@=2Dо!jfyd=7O&IsB;!Ɩ<5eZ>ilo~Es[^8XXB7ekLCdxbv\7wc}ALG)nkc5ea#2m,+n/bS&NNx-ЀwqS3 i3Y9@{ U2gS߅l|5sago vxӅd8'˓,0^ZA2;MUJZz yyR(uD?7~2zyK"e5I쳂G6 \T9?4sk6Q.مH!:O{s{kGVQ]JW*Jkt^ w gKvXz3q45zg%7ƺMS0Ѵi:FtɩrE9|0ױKb0vϔx䊱azHw$+מZ4dW_ ̼,fupݯ#T1J,zhح/bD+Sq n7]vvyV7U lOA0Tx8?ؘpW!GX\J'RPj+smci nG/$K_)nnh%mxsގ pW"zsC<`7krn"'- OGg 1tyGWo7!Gcw-9WsҾꙜmEfpiV4P{)[#?2d&ŋa HhP)qҘ*wGNSPMb5M~|1:&PuSE~=&2i撈>)aY˺{9<1xfyvgs:{)y -w^H Ls.kJOZKgMR 1`{xۮw7k7{ӑ>! !! $$!t %Mw *ZR)Pʦ(,{_=_e("Mh!@@HK{k9Z{sM}=g7E#<SD`P'$v']{hΘt@2OrtC!-Â["epAQ(?,΂CJ; NJ; ԓTONݸ`rZ}&lR'+pDL#5r;F>k(HT Ք_Q m ]jdv Z39 >\-,x``~=W[''>ъo}(9<5k#فc!*&>W` ̧3FܙODxG/ M[VzSV5 y潫3޽>EKjՒ1o?ʗ_?Ó_-/_V9~_//Aj 1;@~+H"ԫ\Lk3@ϱwv[xʂq\1E%]]5/fLMNcMZ_ڭfn]+)5_moq_Z0C׉$s3L2/Iq]Хv1o01:m'Fmvr*<(4,AFw':6xXͧxyRU?4Vg ;C;Tw#v@;:R팔IޚIq/'/UdN_b; 6]ؾ ~8tOh &OThS--AQ+iU!:uW=)syZn0s*ho ǸܾaVgu.])ܩ_ W`\]oy YgРpxw?I۽އԥM5Q?!EWQꏶBVa0]ZiFՉlz\h.nCԻBo؇Џz`rV8⹶8 !eN]E'xV{t儑xmga31I4u?) sN:4}ī4hp& bKQ"]3QĈڠul#b:`ľh3Oib"q?.0|x/4U+v\X$.=hG!)w*(vȦc|p qp4n %)^ SёYSj 8fH>򸅷ΓɛR){AHl)*c&']]:=w=1Cl#If6q \v޹xo ̈́&;IlY=_^r.ؙ<}C 牅fYxĪ.,ڝb-h^ri`Nxj{wQ y^s{AB6vdZ i)W'{rٙ됂PfsѰߠz]4q'tC-:I!?֝M]\HV<[YWNzFba֧uWVj?{,ɘMd3ص2쪱;KLH84=jb5@h;5b3OQ;\1gVR Sɸ§> ǷTaq7nu] TG-_8 s<#XyHq(lvq[UvϦ$~Bb.b;!4dhJz;v(ʙr(OՇ9>xE^KmB Ka2CM2d>|2hy&ql]xw&;nSO+lrϊޘ>ۡK8dnJH8Z67܀yc62Z5} xX0LkΏd{-f͸U/e6]xkuAi4vx R]w'Gxg.PDb'%*U]/HcaI$ZM'| Yc?^5q[CN5QWaiuu}W͜SQ`Xs:$vjk)4vrP(Wfj;0I}4p"ftն2YHa*L2! RT*ZSᎂyp!hgJhG7 Z?>E[@6e5Nܮ!1U#Gn/H=KPrڹ(C9-[ 9UhAZ;K};o}Gp{)ug^pxLȅLg텦LzoL 0"+0WOą:;]fe55 }*^CΆCoc yj?X߶u[sK~#LR. _AWGo_wA5Ű1쩨䬃\29ftOL*=m~ӵ8VA'ߵ<~KiiQ3I7{z Juب7)Ց#~e]aӑbca)E:r#=qpuL#`cP9؁qΩNB!M쳲ݚ vc$ <~+JӲUej%V; s, ObݝC-=KqHd܎K-? p;vfg̡Bn'JA>Lo&Ù+ fv6"@x)WP>^1oyQxHQMsޱOvq=:gY|qnyF2v&#woJgB`%hD']W ut_-l H|7qEc7OPKT}j Z_jfҳ?ڋP=wu@aN׭ L-4em's V w-^Zu:)d.08&C /#qђpG/rpF]Du5]`_qy@Nubj9 1ض`b*:MpŰOa v$vCc?w"p`uO&ɐ`t7hTfˠ).i1A ɁCx'33qq 팗ف:dB-S_QX l3sp,Gff0ϑ) W)UL2L6Y\iى@v c͏C LxxDХbLjcSe>wK@b07lo^ ޾}ǜx]/y+0>'*;ڻmF.3G9ޛiM]@gޢw"4EX)N f }CU~7m/}Wx YtNz1)m6 " A0S6ʹ4kQB! 8bP ԺrFE]W~}s(ۈgJsôhqd/N6ynw= IuׁG[).}]bhzN'm:$v ؁봋IxeĎtGdŜ?\J9=O]6~U' jݩM: %U&ގz'3J; 2&xElWhG'K#-q~tƥ]Rjl׎Td̆4|r\F60t'nzUǁ?<;to2B{'S rT!OFS7zL6-Vwcn>?zSl@vpYk\q G~UY:i!r:{]OwJػ4٨&V^8]=ɍތm" \&Id߅Wh\ftMwriHR y ^0a>ww0;Lt,lHs׀o 9<Ҹf*j#b9|wA_]vvgMw !sPij$`E4 5Igv&7agLv,LuG']: Wj |]5*}0i|}+2+sJ{3un攝+&j$s&?OY}%2k*,Y+UF۵4Hf.qӗKx>O/!^ƠB Nh䎟N -vܾ>3A_SĶoѭ#ոnS#!Lenn{vvw4+f'Cc5Ԅt &AS2dųo ZBz1W8$"'6W`\ôB^l3>]ڻii{Ι0)[ŋv)ёmj0 ;\4銔4ðZⅦ7hƣtXkzBdy5EK %[_ dBThqHEG߱~_Ji jNV!oX=q~H޸&~a̎/L3e.zi)[MѯL9XtL^0 u C;0mu}~̧G]:J"%;boQ7vPdWsh9@EhC;ZV&K!v@;ݔv22ՕO51,0ênӗ np%b;혠*2Z'd;~vQ# zה s*<^oy+]jJdn5sv XNe8 qsgM$#VDoOA{Dg_j$#]qAB wخ' qnW T5;@f'#I~Q X/;aXC(@ "vLg”ՔޛU= {<>7#;B"kBC[<KF7b<#"o- [1s9 v{ȇG; 3v+ꏯ'0I'h1tGA;װ!Cݦ/y2v$̀OTv%'آ;s;&F iǸαNW̤ۛ61Kb;v-Ês؞0e[uTVV{.agZ@{gIo]}8(svuxFW`\þoz8ڶ&,C}^MY^!HO-"Fлs o"K<RWc 6N0b%=L_t Ł%F|2^rc*`h7)E~{FKpgLz8n>Ft {1 H{^޺u[RB}l#o΃v W2RzhMTXs4RL\3M [vV#z8[ӢinygG^U+Q$:75Q#b vqΦ ulR 98RbKLx`:@cĴE vr;k@ﮞ7o4Dxp{A  p;;U ڥA5rõGզ/!a2O"#/(p*b;sp/'L>Hs.)[&bI:AͅQ!%OF;R bɔ]qֹXG42eԗ?ti@PL>q-r{%OFM/HG̾g04r;8? +pϬw֧+/Lfxt 料cʪf>ޏجU7V)&y̱?jG?3kceq)-xW0Ҽsy?C0g ?/1 *8%.OM^, kNl6-8^f ZD&*;og.ZFc^6=B\B#/;s|{S޽z{Wgo}{>C{iuuvl0aL #VSUכp(Dm.PӶ2FZ)0oiDXNY; 3Qe; $v. p\R5~r@;J;St<Нs>5}K"W" )kKoЄo5(mn (M> E8Oώь!9 ˸ }.$mFFz44r~g*F2v3͛|+?Y:I^W}SקwD'`|+s*zi:Nl9:dx 4ɗh~ KzZn6FSV.d. hxhjS|SCTt7kOo'ixں;z7,x l, Bmz&i/dDZ:q:1O-"5q(L'Kzc|MW[7ϥQ\:Itl0 ud( uJb2"\;,%|" ݟ C;n{THϜK b&1ang $TnNng*ސadIr;TEoWb &4[8JMPSoU2\:]kH$#assy{M2p@Qlo~Jmd';6[Ɂ/s`Hxؿ5#zн/< >,pMʧ,-؈r{}C_t.Im[fFlG}#M+0=_/ }YD{{Ǵ}r!.7W%:/foor4l/.\u2N޽9p5yo:*=iwMI"m8Vv, $3=.NDtbp~ɇ#$0(cu!+ Ac#ň΄_ hwdUr;e. a$ސhV?r rGY`$XX)D`c܎-"7b;l /> <>|LL24l0d-[Sj8řPz!g2uc%D\wP"']VC ov\pf`3cếp}gMah_HCN ?.b;Λ? +po/lx  wIV]^aA:0H(3:n(jAg.`["d|^?+HUAfǿ/&Mdp{'B@̖^KQ"俸LW-RяV? qRӯqW:+ _ Fgul֤9 cIS_6ԙb)H߻<㲭?>pꔌCF9CL{`۱wNM|fqFaVgc+fjY懱v+gu39$: &vtk__qYBJ^{\n.w^ j&DhH&OmQN\g2;lP%-ЎSiGNnGA;ǧYI2Sls*2!f3&{6 iJopS1YTtoۍ-1oM1 51Ʀ`n%n' g|!QPG+.z{ MϷ6Cm&>/Q?Cs4##zEFL^(c#8^?2khΏExrũt]q8ÔMɤ$봯|;!PGaT.Ib/C~s{=EvTzqݟ8kFw;ѮGULK'(B; !3Қ:4H@;eu$&\dpA 6rg; w̫] aVh_1AiSj .fʉKGcޗ:\o/p{cc{w~ u)غ',19 ӄ],e\=xc:vo-K[SdNJD.16/lb~̬󶑝W_A^z+7e@74U[7V2y,9j~5Y(hk;z#DЀC~S?Phy۞Q×si i:K[|,!PÕ\P0aFG  u_{=}P&7y(:tV&Gz]bFt 6JwmK. z_zDw.%Iz1I܁Eu.U WY|G{)tr)# C1 >Ӷf~u" ^eјaVcC\:?bԗLET"v~0% 9\U[ ЈzBnW(4' z*L2<!cq %aR`nofzUfz{Vܸ?yB-%4?#v>#z}wdCdVw#ݺ$vda#ݸb;&Wg~D ]y ^铔RI]#~߯nA4lbEm,tkɊnc>}280ƿcѩCo<&sފOTzM+"aV[,fC,9Vԫ N!6ίZOX1fJ]_ E;P8oCJ;ІbQT&ɯ i~;WJ>]Z5LGI;9HG {"Ez421MYz6Y3Lu iLKZOZ3cӨbL(e{Ф -zN~~UU"i~秹/ >eːmCf֣٠wB%ݠ]ʋaY УJng LA ??B;X3Dnzn YƁv 5^ѽiJRo>$I4CpoPTl#y2kI2 />- BSj$ӶuE ۝,AClo6iG-{] ؑ(OX;v>.PؙxeNW@V /R/>&ȋufb&3G}w-x7}D rѨN.)>MS/M>؉Wgwlkiyɍ9|o:w!!2ʆyr$Js~%b[PbhUZr!SWodNPW7THbE vg1##QH<~`TzpP(DNV6(k]"N~F Lt:쾾tb^Z}=7-o^6 ctjY)tטa1e+;:­ %I}DXE7Tl7&ܞfnQ?wvha zkʰp@HR5yܲ~@ Si3>NnNx1VMWa}ǃn 7p{zinos{Id۱CR;. 5@`s>oϲA;88Sx~_2~_ ++;!Gxh]nw0yIw1.Y ^`^o6a%8ziʉ (qϥ^MKXn}" ݯRwʫtHaroR@$AV|³Qt4Ë e0.sx,Q9 .! M<1JGs>~%)Zâ/E[6-TQ=WY긅 #>@呟ECXk 3):aQ b}k9 6 Gk5yS6ŋz?;`EKs_ ѓ.Qc]|H^'#$}vB2RI (H< 30Op ;Jg0nT혠 2;ØPxYXs/aF~L2j0\c ۊLl9Sz{N߻Qg%ċ"t#MU6G/iJ%K˖ou{veI)֔P_72S_}I)1;LEHoѩ_NG˗'_>UpNRz-_=l4:Y&"a#tArډ{ѐN-9&lJD  N}#0ð!$\%iU۵UduBDh";Xi䙜ۓLbnWɝG;96J܎1L4ۿrQEpԋ*Qk8$ ;ЎUhv,,v"$wr;GVGFdxb#ϣI&MlÛsA%oleM}*ynS4[=:KdnvogEn`!;|2a2v&5*1ޚ_$nbngNTl?7g\q++p2mo Q{z GhW&.012ocրxza-/G'\<#QC T Jx$.0){kw}ל$/0#O FUX=VФK7n`3br9ʖ Z䐬{ʚ+p8>lԗpI.` ,ջZJ1b[Tԣe[r7 &շ֌$XjqG%aqλ.f2cL`'C? "bKf v_Cн==v|C1Y4"^wSy{TaaM J; ʄp;,vCRl'_ ^l~fqn' ʠݸ}ݬzR!&;R%ۛ@9 ak i=ZCT^مIzRz{'S4@*ɸ۔: #+EV**h~s#gW|}Xs\q }6VM&@ KLhs |#cX5c+Ӟ ђ:< hFק~h}jA5BgB}UkM9v2qYy3ې3%*FEtP= чQ9PI[y⴩4 7˞).\opD^42Tx]b^£B1#K[{b)/NMՉJ[7]jrV鰬΂>~|4a\hƸn#MQ}2xS@;E>NB@)pT\/Π= |e_NxHbgxʀ-p[%ܻzT៱,wH٬* vC`xCysXDq.*0 KL*[H9k (30RVr3rL|J}d vK*8j2$on/@,ӶI >pRjooR#߱@g`ĎkdxnxGՏR<&r;TxLH![ XJ; 1Q{T!gѯyLtȠ,"NZ#f1hN 3$M14=}:}(r)m;J>pSc_NV! ,r o:݉$" VNA_$U{d;ۍCon*c$"<׺Kan⒟Zp!?;2>aqytyjqv%u6 ';5cDo;ϛg\qV_#;=3y:TQQ~!FFBc"|vTBg8pVSi vyu`řɓ מN^]֡VT!Oo{[cpQ'z1<o7dE}hn2-Ch靾w: Bx7ngBY Q/Eh3bvQv̤ cR'Ji3v2$_vНg(#5֤q4֑Z6hF"  Yn;\ܭɐ}}~^ ʓd_'mJ͓dKT'ՈusKLŋ~hؔZta[7ߎ(ϡ~/%`q+zݛg@k3Op4梉$INRiç3"C2YSz~'^Vw$Oxhɓ?}U9Vjqlm:g;jL __'xFmf$z"5uHM|{ᤂ]2tyO.fQUYh~ꉒ$.ͣddGyfp|, wKϔHqx/1L13 K覆. ͇t* \ױ^~Oqa SSi93$|C֩ɪI3A,8 waA1*dB92>@~ nݡ{i3l'cg;*Ўµ7 Kشw$cz;7}( J>&XT@0){n B)EB. xKkd&CLo\ḁdLw{;pT{#/sUݽGu0DmОdd f?S,6B;x9/9g\qdW7^]#g`[=Nَ:)ht -UcG2Xc<ēHi$U2 _snO{5ՈGkk'^>#˓._t5GPNw'԰':C.:TW#ym==a8=/<~[JmNS=srMͳT z kf i_)l2^dYq\2euvN7U ]о=޳aw/pɰBQ3IPd2JUl3vHO9VOf]}یA;ZVQǰRPik.]2t'ٸJJ_Mv9ɜvOSsĪMkGL0WC3s{$^isXL3H}j vJYfĴP׷7̶w^7r,훆.vF6_޾\ܹ`d.&zF̎v:OHãuadґ:ddymhV~S|w,AHLڅ%cȌlk-Mt jzi$(^)xZ䪈D^0 ɟDWe^q8/ p!*Al7ཛྷ/ƹ7&Ew+x.s ]<+'|t넏b'ꄏVHjw/HJOF좥y0U: 􉨮]YQWɍdfiaP5ƀJau939V?\zr=+htu/@kqe+uWM9hn  ۭG"+6D8qOy0uf\q\VmoXy xSW$g(9,Y4 X 85Iltx䉉;jZo6O^~#3F#3^^4嘒Ort?-=*EL> _rp?K~f4sN/➈+QItټj":G >euy !Bܸdn#uLxk9YHPvrTVo Ia: G<+|zh9۝W/[==Z* bһ/}pوҩ H,N6UXeB!'Chb!7-u@#v:vB; H&0XLUW_Ӝޞt`[o7n҇d |mK4=KtI2'cnb{K)` &a[L,ēbvi mDߊ'>A*^/+X\ZooOUWe9{؎mNvЂ: U~&gvEWmn~<4&nA#Ī.Uo0eϋP,Q^f=I"˜GxcdKWHr ݇cǟGة[?/]TL]&C&=8lWH.ax%<%_n2 +Ьb;u m*33]Pq:$Ga%S# z t˖֤'.4Ͳ"bHye#;{OZ-" IXcIf~ˇzu~vn~wmby OPtxbzŅxޕl4YC~M){bKvْFPGKCo5թrH8j `^i=zI54 N0m)Q5:@GuG4_+!vl߷N/*s){uUk+B%1>GwDGܞx9 dC{O"ٗi̊dw#v^PfnĎ `*1uGASN-4 cb;uvYv:Qc+ NI 7vE?NJM ss{3 UݿMtwfno$S7Vۍ}? 0h<%;HݯX&e;q} ?x}0 +~ jyW*KYJ C}i3 o/ rfxI?|e]I:"HW! Ihw+|cOȖ^T4P~כ{W\5< F2ѥ/~^`k1hqĵьEpDi4Z_A]􂢞]c>6&:=Cxt}n\@Mafu Drm_a]8{Dx|n8!3 yˇDDU>b.XH&C?]3mhG<&܎`B{ 訴?f\p " ObgP$ALU0 EY}l@LBL2 P$=NEFgKYuYw Nv [!z{eLqؑ:DljJeb 's>۩?=/w\q-w>>] ‰qSy^W?0|x j| ]+s y5Ip#y~җk*XK K 94ؗJݳ(.Uo(@io hD'l_(aݣ1%L&ee^m&-!L^;ic)B`3XmCm8ij/s|)==D ]ǻC]?{Z?aVlQв @; OOq#(jh7uD7{U{σh+ Cr'jT+3W@ULb΂;evBhwv@v$Q2g,CiNm~{:R[b.`4I2bSѺ{-H vߔjb3l$ySj}Gܞ`/ 2U5(vxm|a`3Ⱦc9ʸ +йW|~%29ThBI_f%]0Ǒ0/gx Ѵ^!o0O8W{Uq^`G8p\G$cٌY q솆C;VI@EݐoOB .rvj$%r)]~^K۪#1$fRtB*\Pi2 0-Ke݌ I)8#̆b\ԗL@ ck!vh໌f)F+rxiPDo/s2uKC3v#v^MUTIzh5,wvAvLbNnGyJ~吱lwB;C.QM=uz2m`wiᢉQ<7$!hʃӻWE͘T?qiIf}ݙd~=BN@<8;<2 l^7M}1ҾJ OY"O&c٪T%K_%ju}-A~kI h 8'-7fbͥcη S;iw,>q%tbq9. \-9.F}Ş=7-o^nݼغӎʔͤdԌ(5 {5 -V]^7y <(jDgIYGMqKvH"w[shheM[̹Nn4% (݆څ7@ aZ5nwv&#j,w״ǰh}'ΙGE0{ v;ꡕQ]Sl7h? I0'bvzl֑&K ۡI`1ic}G"r~')wה:0I)U6d){sf{$@ v>ڱ+0;ZgNǫ^xҊPcqBՁZ ntό1p~xkέVyiz%@25a^h**h/[ƒ!Co^.?[}i/(ɓtte]h!)=楋B]& /9y6c)2t:p=Ƨ5{sKqN s\&Lo3=wRcUɕ|khy˷ Fr6ODO>ϡB_gM{~|>X%vƹv;VL~ڪ~"@;fh Gh'CaLvڕazQ̊d=8T)FДՄ9M?zl`S 㷢u^,Kd^p#vDo)a&%={6xR1^von&s{$3yL\vMOؠ$ovv=y\q+p]/\Y /#xq4LTsiB:#DP=U¼Zt߸ؾqUǗA{NK>ZnRk $y$p>eX^rrEGTq:UĬ* qQOԷ\FE:̝ENjFEDyC2&輕LN:uͣ$ |gu%Eȧ4mtK^:S1u:Xu&?|ZG%U)n45xNz /oըRSM^ᯤ5nxd{~lJ 3n_6n'<6U?SQf'wh@DigAڿr0 T1Ehiݸݠ=*IG*$} >Eq;ric4Xy$f"6)u}ĥbC 7>cn=Q'C;q%Hjů;!v$S 0 0O_M-o' ` MF]%gk{PyrQ<6HBe2^Ҙ9rҩ[?uISC+4 iI}Fc_X'OyDxqATSt'{e>1[ MTLz=&=nSV)"iz3ړNUd9-n,xvB~G2$1! dU|H|J +TEiw)XṼqK@Z#?_էiI0K(;s=!jqfi21dIf`ۭ /p[9e-0Gl6sh獘|o?W`\qx;?VDexExiM%>JtD5e$/֚[]NH H뛫mxE*=r`I{TRM_g~uG%ggx"N}A[߼Wp[`#f'oi '?1yoEwPϵKhɎn1/1Gҭ|*0S:~gĬ.Ɗ7 p X}Y+)tcq`9v_[?;\7(vne4 "<y߫l"|yJ]6W)0'v^'܎~o6Uf ?}*>nw\m*.ZK e2;]fFn7i3([S!cw!ng;C##-FH&  np!v?ۖi6#_bSp!v/z;ݖ qg}m!ϸ +p8V_C \4xr"% I>&ܦ w,wT#R-n[,n\VuWc)xJ# 2FlDVZ,ooa{㯂? , -8_";H.tx ] 8CK51FXltBru2+6N-"&W?iVO J꧕}ށ߄v\x?Gޫ6+;O33vY^lg${]q;pF 7ۿ[s5)썥ݞ^ &Sԟon?SZ>dy`n-% ̉`KGmz +0@oڒ< <^O3gxԈ #w<)kbLT'aҐKy^\ ?BZp>Ij? YQܦ$זvmKfO~d4*O%2e'ugUCBҋ:^'$`0[_zw $tvmGq-.cL'gb~Nbzexs;_]b+80wWS UstAMZvK1"jȤw›^v/5|2n_  <]31S>#v^S$q0>ݹ }BsqW[w~EqxqdL*6!xo/^|5pM)HA#k0y"IBlvHM*lk8߫ݒā?,8? 72XdΥ$z=-=4 ^GtLߞVkK1YݜT,qOD$ꈂyTr1VnBwJX3zN2 w39Vӟ#& ="YQEn˴FƏyVdۑż7m@p#m\YqdH֓T? ;=v@;`L$L!g2IίbL2zK"_-9ۀhj;\'D*]܎' =+J 2~LO,r oJǤ-nےd=7ۻvloDc;^}=f=O +0_e" x[^%48F{)>qԘsM^}b,W* SfXSp|gZN_IXL-t쨱$s8[j}A8, T9D9~ȹr5ћE|~Wы]\ʦ u$ͅһ|/QǃCҠ -3_KH7`՟S8EtG dT3nO[*G7y2h*DׅI>IfiG#Z<nJ;[V!9 v )-BnUvQ/3 v%q0]+x8d|;4Au#V ib;{IǕd @x΁ 2Gd,OɞPv?e{ &)\ڃ gA_,uFxJܞCkMbn69s&8ّ#W`\{yZ?81 [7+ obwcGڎ\7ޓOgcYHŁsULJ;M2hk %^oKƌ<KlRv?L2&wq;=9\4td!vl[vqƓ\><|]=6t7ڇp;C=9xhmqr\qҽL+? wzh%UOw:6mexj1d{Q|;a>d=}3oy) ?vhE[fυBl$u&>" -''bhnqIhj/bF\ ;pK4+w[]_2U mtG5&Gw;,$yq O~'VVGdvߩ 3P}P$ ҩ y*4:Ҏk:g E,wƹ`,J ָ ' ڡKڌf#aPһoGw?ُ]bysa" tJґHMz]s<&'@ s?쩟Ml?v#㈁e{6`زXHޏ9'Jps{Or;+tXtY=K/_bdqWz_p=P#-d+1Gfa $.ZYT ҷh>m7[+*؝%a;|~)&갗Ƙ6o57WiJO"LN1yH j`=R:/09~a 俤0c=nL=%;zۿ7ݬVbuuJ3BV̻9r ]Bkjt62nG Щ QM6\n}s]*@=vp;20He٠j vr>HK._TprϮ MRٔv3}%62j xrm4{hvv~IƠ=9ȸWq֐gvSw'[GFs{"3ĎuCTFOW`\ 8Po>Ae`7 'C@)*#{7M2 i\wh_D_vQ<{'$<&9IWiMg8>؉|5DQG+ZJg"Ⴚu{Uz -1FxV+GN wRhop߮_OX%˓FPIˍ#-{{O-:|^E>vbU'v^AX&)ɪjJ;.InyЎ§ڭw"|Ѹ NLDGǸGÆ$#hCcU=sve LT b+ O}YRd$Svn"XV~ݠ.\o7l;R&$b#fBxn=stnO GI:MOc')KJEOJ/3X ܾJv6bE\ʹSVhg2vvVȌ库Yyvk\ a1ppj"Coê`Ì9#]ům`oXhX%gt3hO%Jߑ8#ո$S$Sۋnٴ.hHuL{MrU3 ]8}qWKf>W_Y%*:[F(휸k㕲lm<ϛ ٚd9IqB={n'bf mĭ*EX\r FG%F2ㅔ.*"PԧYAL)]?筀܆{ѝ[I^@]F؍/ 6Dwr-|筬ëo:qцq|.%=ylg@~ L{wp@C97O9 K8V[ZU=t_h&kyx=qKֿzۘMRgv^'7=}M8i"9 n>V{^E;ZVsn.w {- X VpU}@v۟ Ў[i] Tch< FH%n 7hDxlTn>Q|&1X8C{b5d`\+ؼvߔZL7]VEP%`X5#?_뾌ޯu\qW 7ׯϫϭ$&ylT>Oq8ly5 &?5/ӵwIr#7e: arJ35ǔ7 t[+Cۑ x|\TY`P7 XN;ſUw;5Z;(;KLw)N7;6xj9K΁*w=024&y7}viЅj_pw_H}G'v^KjTeTR n3CSfg<B>$1YJ$fڟhG=nV?g »F\ 4nxۓ$sn-4f#+ަ8%|~a4Xl#ˢI8nIv/3sw v[8w|t)]cov\qW`\tw^]?AlNCI6qt'c{J3+NqgmPr8N6 ''Œ[AEsle824j631V3)ƽ}w_IN6&݅$֑; X%}#wq;n+J +0_/~Ͻp[ާs*Se"3TOI¦TOfDJT{XE;_h|]os ).qSøŦQT' /o?p,ӭя?QhgQ-rom S6}w SOTX׿C/Mpy=\p#hSOTw(vqo׿vIzPMLXn"շrlڮx?nqbAН bC+~ :|Vf I^g6܎[`ɛUFI,xA̙XU3IΌ Zvd鄇O[;ʠ]y='cЎ >bvNnx󶱨iӂ3;ۋI2߳34|In߅I3nɇXS7Y.Ƥ`Enl2ŀJdoQUwW`\qظ7\W׿?a!RsFn:N?о,Swd!kKH|28̩Ǐ2E*!E#]t~Ϊ饐URS d?X XnG=C`{܁+!vp; U;X$ >] ';m6yueQNM~v [!ң;w8pU"{_ucb{<3yc$!3dlfS9)!wQh@;kY= Wp}J$ ?yQ?u!܎JbEsBvI=]\bdWG*ucvH6 _4NzW,q<{CK cJ,Ex٫$3UVlڟ$3)7'R o/o'[0F=H{FԘmxø +pV3~k?SgMl9$sN(""2 " ,' 2$LBy9aROZOժUoUWu޻wާs׳{|]\uEUPX%a?(Zg,++1\-D1i<"QԹRR57s\?zY޹Q_N8X)nc6{t~c͹-=_Yv] .CN͑,/zuSKwz7e~cPlaŇ4H+uigtKx|ijUIQ2+[v |3Snh5Sux9᧪RUUq)aH#Lz>nמ&EGq]A;wD fU)W/2hj0>U6+&Ejd ]"vY4&RCl%^yiンvkrjɮy+tS,lbƩג$@7>ߚ?#\@}S% n=I 㿭jN(g)퇔\g_Gjhhht:/sr9嘷}~ys\qV~;ǨGSe_߱{zKI.|||)W6J?J ;ݏnvK l7ou;*㨁&fFs5.M>?IYux6`atG.`r&4^l3שgtm6S{<0/+d{ߦ*F4+=)aoŬZ^ \3nQݩ슟veDһ4vp&s;Įիʨdz80FGʙh\]C.=h0: ;2Yl.L@;x3HWvzg{%eX,g[xVCGV9z-&5'K&~.=umyYh߻؞ֳ~=j@@|+QN:xAw$w .SrTs[۽:̆luLn}Nx_;nU^9c`{KLpngt|13/6tW^񳁓cj=JA1ͪO=㟙NḺN3K4,?8g3!VvILIsgw}b51Yurf/{ vK5L2T+_| GwUgЮ2?LGr#bЮ>HC*Bl x>ҽ jIOidDǷOfVϫ~߿)S<>ײy P}6*%0gMVد[T_.nU4TgxVNZ9rrҷRNI'"8Gwhoѽ3֍߹q'tΨ9ƞ۳,sF{/KnB`{]wYqpdtW|НݱǞV(jc:&cdȵr*:v|5]@;< dҞ,)2]v/bR7۵bUuC:ng9 ܪɞm3Ӳ$i>RD|Lf? Yl 9nW*Q1?O/35c Ig=u9?U> TW>}!3k}Qԗvn yuuuuvrՍ;t-tnHyFQ>gvUнWݫU y{Z/sqYkWl{Fw q$Hk+uuuurԁM%ϊ=6Jܧ4XeVBz VE4YULETzea]?`}_Lvp=VihW2]bn-]n( \z$^ݣ5k 皔+S+ɾ?t9JQ[ZZZ.yrW/']xeQ5tǻ[2AhVfZͺ:OrӚ'MvqXq̔exf}?I>dvTޅYV 8gvc~TM,}Vl!&l 3^2{8,<Խlޛ%Jp2ߎQJljM6'Zl&!=j>9hIlK$e+vvp~/տ[ZZZ._3SNO 5n~vQ{佣 s;4ݭ[f0FϜI4o=ϐ?M83}<:|Mv@C J֑؟?d.Ju~Bw@;{o=jm{^;*Nxj?SUdA ՝ W]!C\TBx5>?wHl3mUd(Ϙ[* UR\$s{v d&Ew=L^vyZ Vڹ5{xin::::py*}ͨ_ez1~~'xQ}QejcMJM>="߁pF_o.o 3^ӬFw>qǾ*Y,]l^K$Wrn}HD%hُuuuԁӯ_NϨaFՍD՗1na}\ jWGep vz=;k@M1M_UT(zfyNcKm tH?A-Yq{ڳ>iUͱBs)q;<3fY3LNk3|8̮(jk#fܮw6r;ӯ^+(4RH?=3 T{3C$]w D.nGD+]U1x!zM>; ghr7Nx+o OGUe{ۗ"\=ZGM^&]'Rs͊,W֪I9{I{ fؗ}6F'כӈ l^~ցցցցk'ɍZʧ.7<]vvyټgMa׶&Cw&7؅^BMNyo[̺,a|ri8oFbum*_vhCA]xl,4 =>[ʐ41RgAGVdr;q==rf~M^+ vq;|@Pyha؝VDvEUc}C}$fh˚݋BWnrȄZ5|:3W2ra~L*۫FB->0{ bۿJt"5_M/Al;k/ W>l`A>uݾY@@@x('%;JgNuwt]K0(=w{\%Faa =;9MuݓaS|:pFw11{T؉9TZ t2gz|ČJcwWW;.Vy΀&GL|=yi<=7ucYAbgu@3C;W)i!CyݏvsgqgȬr>b"u*goT} ]Nw&Ʉخ,ܾ yں o^/ҵl5#&*k>SݾS@@@@i-c::tI>;3Bͨn.C/nh '|թhH Tqs »Z*t |dW:9::^ ej:2{p3OL\| ʫDўHʠ,7+ei,ㄯ3f<%v0GGl̄6ʺv)*x>+2G!z b5^ ٤J{-iLvZ`XE-^b;~ln,#޿kA۳kR/Vm=M2vgF`-; ߀sk~u-g{ݯf:|.{8i.+Ws޻&XɁ?..W _nCr 32#}ˊ^޳hSU._ &7wf!..~_͘j쎧'yi*~ 償xa|fEx}WnյI<3azN!>ug]>] qIՖUcPv|x$n^YShxC&t{?y&Â!?TQ4s:;dɁKVUܞ<2A?Bή>h|#u&ɬgcon|@gB 70}uUsоwgs× ցցցցցoTr>g\ǣfPݿgT.tޡ~T\4W=+Qz JuG.D'[hWk/`o^b8ҫ*t+<6S/^אUFW%r&::^Uw_[ O 4[ǧ/g.G 2"YnH3_)ht2QD$ۚzjf5]JԿsvCws͝V=nuU>ֶa_!E+_l['L=KKK AqU{\h)mRk5Ufr]ZM WR/qEebwCJ9d*LdVz;W)>qt*?Wr|oԟ}[ZZZZE_,gH9r ;FwkFOԒ&xbHvꎮ ttGxLV0S{,۶NAxԡqhWI{NDxmk,98{Οgό9j}OӘ@w["HQ9~~ ]Tfɬ>_ޕ !ٻ.# zTwp+CU! !r1/3|8dD*=Y͢9m(xBp;V^ F9 >=ZWڻl:c5s Y~p}iJ⧿NUoeK3ZZ2:'3ShT߻-obd5|޲w6]tOe6񾷣;0" ov4h>QW;kx@!ۗ,rVP| R8u#D8q.oLݍJ{O־+;o<bOyc7=ցցցց uϨ/cɐ Q4tx*O-{f"t}umMP-xJߞ!P'9ۅ7q͏\2֩&;+Fr (X')j ߧ N4/E?cvɥA4̤(9dUyUỤ|+p j8qc7P͡Y+\@L#n LV٘jr!# _b[S(w]+\=$ |h8Ƀ9ni~!sg}Wg{Yl%Vh*Ҟv59;:^9}Hg b\wM|su~C>jQ<S$1nnŪb9`3Lcی4BcQU,ri*tkJfyf'UA}q;[JW HkE #kwL{GiELkƯxhX$-+~ӻ7VOY{W333 3vhj۪rՐP"(v]F(yP= IJaFjgxI"%Ɇ{ }k{)]y| tzfP+imW,={7:AwA)?z~:ӪYW>f/>"߫ zkUXU\MB뜖FY.}(ZߟȒ{[5C,Zxx^.|ɜ {!e -F G4j2&VSG&h ˞4X Gwz _DcGl{tWKܾ4lf10x5fV++S"W9|SvKܟxfTO'^eL ck7UGE3VR]WM|0#&[CuBf"o9 ƫ4+<3|`/|vh5fTf6 %.Yz2 aK. >[>&_ jnX<[edvZE ej5+9IBy UKv ޼U: G+[{p7G /e֎$*E*W4MYluDFfB]p\W̮bJs{4L3dbd2>K(_v)\A:::::Mہ/}enPx;GD3ʜ t1UfT=Ҽٙ.IRf:/ ~As}/r.'sf]ukZ{pQ,<0##U^[v[XHoW[ _?E8a xƿl3L~ 95vm_^BjdUvZ nNAp;V]>N_3 MVګMH2Ua`(VIW'dMFM+eE5uM4'|O=;ۗxqy5{|(p/=B]w-ȌL)$su$:F&9$-El{۾WWa k^6Bn}߾iT':::::`܇97!Eg\ϬڬEJu?5fWsGw>"Hs^utw2 3H6{lffs@=ְvCȉ@xKOQ*8X޺3buH/]b{1B}]gZ˞2 Ow/IS=$J\4T0Rm)|.O;{{&vq;o&b6E(hkcGHx^9Fv(dLr#G <ګ8@k 0+lxl_%}e]:Zy2+[3g128ږ֮5]KkѾ&}b:jCxy֏>uuuuu2Ёː yrn!mpHcޟ7սCu7zGlڏŬ|AI,=3:I7 ^~ ^R3g;Ю[+z϶0Ұռ4iU:VܮOr [@kDJV9)mx wo)nul]7xZXES%~icpuJ:Vʈ=M2ף|vf{ iB}q{ )42NKiGW)=;7#g7Q*+VEua؏-L`b{<*X{ģyYݜ^Pe?p#y/ENȒM7Slhhh:?,gɐϾQ96sr&ج=Twx;[V;)5ZU彇S ݩbiiyGw'՝UJN٭\5 k=c3Gl,<:R-pZv|.Y1{ Oȧe?ʓ6ncݪbg6+hm_ nGumaA{?+iָ;\@<$U2KBG}=#g{<}5<=>?*|{ߵOf>uWS[uxy赴gcdPyH8c_ցցցցցR.靔Hݧ[3vMV{tTwAo)z_@w] ͡649>v-yq z>_ջwiZ5%ywax5`ÀR= rNzGc<sePG&5U%ȣgh1^zXgʹiV3k6B˞ooRخ\gFNUg?دZ&דG.zURCfׁ8[f@jȜQ{TvS [d,YhVs{f pW" .iOB1Ce1`1 vÝ؅p]vL_R۵V5yifT tڅzlf2>׺g"ɫ%|1v/:b܊G<=g{.F^7E:ρ/xbخo[JY>4ۥ/f3썧{z/eOu{ց<ct 3d 슋Z #t3Mx>]s5:3 zctl3˞bgW |Jl>EYܾ1 ףv4"vǡVf.m&N.紙[F.O{Tl_VC{Ċh}UȀ N.NȾb{vȠ^Ywh/Z Ϩ|2H/v>DIM<@N *TASPWw/b{ΐ=fQعZdxցցցցցo|=strM:t'HDA윴M:)] 3Bw4v ײNݑlsymUs{ XxnaN{'G$:u ]G/G0zδ4l Оc=Q G^afIoGvB#Û%~ҩjg's7*S>}0:fyai}|~[&hg>Vs<ʊ b'&Sjn#x63u;ک~\ QiEQ!Wfvۧ;j#'C{d;$C&C1;J6ݯyϻ3w}p;;N2$3a:j7׽7̜'XAzUR݁3ӏ*f`f#LӪ!?5qӻ43}5vDrmNJwo&Kp=F<4E3fx-`]*ʹV%{<U ~ҔyWO_5 X{e%qB&~BdMjYvi WIG NW1ӖF##+g8d,I&-3*+~y> \ۗ=r7Sl lGo5[[0J<lsr\W0םV%+Nz\e\>VmLW-ڦɟaƍ4 /5>HO=3 R9މOyyIQO$EA&J^,sR_3D$ xRh"y:@_9/BfU={c̫*"=s;Ι9 $(ejO npl;k&Z/c@ٲyI?x4pzIl4j2mnMF]<}I8ܮQZ@]pi 6)ggj=oB{^tBlr8jH:d}s1bw/[uZZZZZJǧW7#o\rwOz 32@t3{ 1Iu 3 ёCۏl.n >A]n' nK$9SUc+Lxq{3?'#›ccC~;n3Sz $ )$) EqoAWvnÞYuXyڡw0>;% zZ{33{ĐchOS1voWm,k3YiT8 B_\=s6FnBɯzb͂K "/;&J{Y^ǴnW,q/{@@@@l>3tPwTw1ߠKP;ЄއםM+1T)^;SդUh|5-&++{FwE5>p;zvʟ3*ʖ3I.ogO{v?]akhzyȫCn=gq%=) J> |>8og=L2=+j5.٦ُ$2qj!cJǷ~!߲:::::|<]u{f8C̻mh".2{I\g^ ck ;M һs{Jي,9+~ fg KM~_ZEq_/ؘQewo k)# 6GBVn4|ak縂vo^I vIZd۶dq7ĺ{3|>᧋Y(Xb\MaZ5:+/AENsA+}Vi#1g\n= Q៉Umk/~N2ĮT$cLp;~f])K ޛfKrkxp3/)튝4ϙQ2xٺ=+?. j }q}*wv`Iz߫B#=s{kuux^_I/(KP" ߗB먠۱([fKlC˳kh5~$ ݧ2/OMْDJ>q}iBh`v>1?.SS[7ow}Vj={ofc,=i~Rsbdv[!:1O\ǥ9dhxc"^Tlb|k_zS޵Vt7ÌΘ]$wr5z=SP}!L;]ݬ5h};#pX,lM%PStGEwj>=ֳnxWp;T˛ˉ":Ri|p;) & ձv6MGV9LOA\])``D@;$6K%#4ɿZ3C 5rYӮB!c<_,ƞvMņҮ(lcmkp{/A;Q~<wW BlJl8ُr_>7pcty5#zUvEENإ+:R=m4]NݴX>iV֧5ǿ/;+bhy&΀KkX0S 9c^Sh8Ϡ+PyA &[W(ͮj|U^]G=&[eGulb{|YHts{'n'owWhG9go!Wr]e`MɯB/ymb*.Υ ‚tمUiUo-9dxr1k+ݭ\Fߪwfw>"1HugLU^wug&]bd21U[ϮF;grf\Of!h&XgcXdQx| Lw&; ֑f)[&3$ɯ-#›D92H^K6 /GW;^Ҁ+{'1Z&ϧ./35Wi>Jb{eW@{Z%tmhMJ;8 |7,8JA㭁n_f~.7@].cd!bdf1>_Aц:Wfq hM[Ẍ,j̢~Kӿnhhhh_oW>p;͜ aTw{Ϝq՝%MZMw$=;|cgr ~dXxcw3V5MBw{hIY{Hc^3zQN9Zh:MZ$ *-{ʦkX/1gLT?E5\#߅Q/,/_^rxyLsj݈Uz %vW#NB}C3F!ɑ}␉lj'iHQɀ4ڻ?G{a:::::py/(o]wt}=S>E$F Y:2̠_wH{6ߣVnx+fL6өz"h0Ҡɫ('H_oeI|5.4`31*fU`^fE$77zQaVgt]`fne_z| s< k )"c8)G!ޘe;}tW WzLLȿ!\?Ş]reYak8k2ُi5C{LLREb{f%kuF7J@Cd=繚@? v|1G]<3PԹe4ы &v 2};.:::::|w2)2Su՝OrјaFN8u-ݽ[$B#aUvo5Fwk ǻG;V9Yf<~trJzezVƙ9ὣz_$4?>*nr_寷G.= au>I_M?򌍁yHrv_mlSh̞lBOl4 f}C&p `͵j6CwuV#t]O>r{Mo]؁.p*sDC\|)̟,Nj!^ES[{W1i`{&ǞT ˇ\>u.f|Lՠf̣b5;,snԟLl|55a3 _טCxccm3L4cz׾'̙o|*FR.|&)*YhR : 7WpmZZ]#0MK.oX>ͥ pIVq_hpí܉-i}vƄ.xvW퀻 =cl/A;'4)`yV;.]}W Z.7Gb8ژU8fU1<٤v+)I2ߥnhhhhh;O޼0̐0f ɊԮ@wf+n3& $IgyfZl33aUJbнt֚fH ϲ'-fwnuM^훣JfJn]]45Z\wo-`BZo_v7NC ɊI45~g߳ ) x^jT: ڥϫYc2!&ô5SYI֕l6D2TjVTf gg=gdhTg=܄PRU?nʁq^aګ_Fތ%h'~GC::::::0߁/K]Lug1SO*0ϧ̃fnTh\4;gl׷OgSFn"|ok;4W4ʁwghus,kyk-ge~2ʚ}zQYJַltPiQ=@:3+=mb%Y4Pl{ ΙbSu+h$zx;sh> Zl+.2 O3GB=(}3l66yںyOIޯ=A;{&EB3WыY=lKBl=sbjhtGݴFk^xu@@@@@|ˇ| 37H"O3cQLոޅwhwGww=J+YCxrz1/Mi$רxOUgx=uR||Onsx%Lf,W^q{Kɯpf9K r0J@_ډeU 1xAJ}W#'|)d0a!m*hAw8cRxUHpk {'36G1u1F2Y}ڗlf47:hl[zdw\`Y7]nJb/}zSցցցցցs@6KÏH_(tnu)InV"yݭҌ&"g%ޮ$I r91ظgf:Mue={bAA>|ٳ^Q@PCnzmթP/]J{@pOY䐩+Ĥm< {XlkFs2ۇ뎴vvu/bRLo3WS/Hjh筨ms1kkhhhhh{ .ߺ|y媎~USIUНw;%^<3)yfFwE1fZm1Dxx'36Ě%-`I3E" x4Liدj̱dx8iBoEwN5*ytjѧ1ӪENUckځynpյ*ƌ4<)ɱ;o-Ş[ ֩LuNʥ$T\Z%]*+|cRъ(2 ,jp{̓@&juE`{v8 h22sQ_e棹ĮǨmr?_]򡻖y;xtg*w%)v6iB7̹C)g+54HsVx7 ;"<T~^m`^+ƴ T  ߬]О50C "% - Wܞ?uN&^N"r.` MKU=2RD E ٕOB151*/:8ZQ̆vlM <,>q{ibVU8O!38,=s6G1~W;t?]]IB`䙑2g|7ux cXh?#n!n nёM-lrnHc=+ߧ>{}t46좩F\mSo?WXoϟ2:K kvUNFo 3SnHDᥩs/ɀjٳ=% 1lq0?QuXc2뒁GVy/A?е:ܞ2KO/.3gG-z3dv1%$&t>څ?<jwkhhhhhP.BuK]M{]i38dbg4* dHvwWߵIY4 'E̮*>ik'U>H{ϱ~=ȧ;xy${]ɥfX`153y6dhIQDݶLvwYxὀ(.Or0 :ErilYuL,] ~# zKKjX΍ax_|~/n@@@@@ע_,[=n+f/y&Ung&ŏ쪣Lk%3ڻqO=r$یib%kv屩w>Kl ֳf]2ᵛUBgxVP=7^d=O$5s;A>wQqkp{Evn1f^&J=@. CН/]Τg+\cPa<c=Z*4"veu,j5-ma{ y&4S^mLqK .Ȑо!> vo1Ua~gewIz|-Lhhhhhhro?t;zP/uSvwϜ ս]=3&VGJx;] W< >:x^9#;S'Lvar_Λ&qp JAWf~ɜ3_Jc"*e܄N 2vya =v[պeKv;<G Dog=CV؅*'*Utc]2@Xʗv*'˨=Sjc_fQ+l# ?yfoa/ٲVer`n1Q5Eo7auDyʐUNJJ{YT~ܡ>Trukhhhhhw*yf>xAGwTwKqo$[?fGD㫾©CwTN Vv]3i(= OȵsƔvg\g/'mz~;Lxsᥱ}O(&~%ە-J QP%n1 K {ޯ);59F{:᧴ H΃D`8_S-}Z{Va%Ǟ=SuȄ_>p{vyի+&/G=%7#q!c|V'>xxr0I_̊DxB9l o4,{ 9{ff$5*>wE`-i:Q}p!ug\*y+?|>UJveK4rH-UMGWx_=rT9-'jTl_ 186 C{~Å~rU"xr)j::::::i壠-jTŎc!ɧ]U$;nzu!l=M^.h˾t"]c>L=0ĺ#Y{Z]gpUiv]Wx0PYôwu s5}Qka@7(ob2+ vl_S^}pP!X|$_1X Ў砙FT,jA|b=9ا!S\B{Z!kWnIi7=Ov~Yisycvl ֙ i@@@@@שx}GAwT;w4m*߲/I{lkʞr]۝BxUW>=j2&Vѻj3s-{r_M-/E,L5 3${Ho'CR.&͌\4aM5H#s[0,ZB 01:&ƒ#tsVJ;mx<""ƒ`[^mw*pw ;s̒na}< \1-Ϣ.h ?fQW;db} hLp{!S?B_OujW/g}ցցցցցuϔ Uw&U;Y\ܩ|UX\d:w[U&wsxaViep5wV8%;[g4 )6:{I~ݬ z0<ɧ!VlOh 4kI.sx~>UAen7 ^F^{i6$F Kh$zyGt^hׯ1QrCB)5:H`k _]^߇4"A{jVtoU6%& ͐fQRJj[{Տ֞}Ov"`v^=@{|C:/ _>!3Cjхw]tvwgd'Bw~t#g=; D6dsO&s+ ?F!'> F'1F'E,TH$r.*I?@9*=W*G7)㺎f[ YfJ_2?|1؅SC2vA$k w.i̓<++ʟfl N`(RhKs㮺0 hʐ nׁGeyJZ]IN}r\O 5 i|$^u .VG2jpWxۤ[;h'r˻<&X.KF-1}Vm_Mﯽj])?Xl\3c8 ]9GG}mIQwЎ]؃{״ve]f2+l"Uv.%~^cw??*ޯ\p3cwн۱>M0Unx\* ̨NEcA4Bwsxx7ܮzooOL >X={ |&ůXozruu"io<4Kxi"oi=k)*\BENo;㰙W~dUlG*8?lY*mZY eyvg#sf]/V>E u}8%jTʧPys khhhhhfZ>sf3X߻I$!txx)4s߲7zh <yS3&f1#ME~w˓K |Et..~H%M{v]>cNx;M~VV/:] `i wT#_ G4aQqګ>}V?3z#|rk5;pӞܗZ3:RcVx썒q%oIfag능K!Ƿ͐y۶Y_=EFo=Qm muuuuuu_dă #xfnwuxyfQR"vOzO;~^~7zޟ3 ]v zיd5QB3%<;Xk=1Lux 0o3bdv.K[&|X=(=(}QdO152~8t^/R9Oog4[7*q؉b)W(O/V[1 hM U<&D-%Yi^ 6o߰U @KLL0JV$ O \MCh|'L8m+}59}dIvkX;0jfGr;.z%@~ T/˛}ea1й2܁彻^zK{疴v?mQ=>"ku#vF_фUn!czBl⏣q+h+jѾ'vH[My|_<- ڳ=<*2wԢ ;C'i2o}+nӶ_;q@A`#FnJ{LIO1vSϾAo??}xD$VEﶧIUv'X;z϶~Ug]{UL54cxxF ET;L5z3JQ &D97dI)4seS+=,](.N~ӱ;}Mc2'%/MQs{c2C Pʙ8ry{9tNJϢ_ G\6Lg::::::Q-3s7XnEKx3Ei;v6gի"yѻlrtM3C eN]|̕h:Q5/ޗDx M* ;[͒~Ebƛm+#YqC.l6OfZu}5A>hpSq9Q0]f@)p%k P&0҃Н+~2: KHl +bAw} {vWg={v~xQKn%%R lhhhhhu,k)aV [hw_#JGftVx:DZ7=}$Ss^~'?6= Mʓ`%{ @>Ca'yXb$]W$%@^ [xRk\Q1W.G'¢J+c+oQl81 6oU WVw(DCxX߇dY,<{vz)ګߔC+=QǶv.6-7D-?StBģaR8+&t?na̮U/VW*_3Yt3iT^wڻ$9F$YiEsV|x[J@͘G LX:VzK"oZm1N?5}wxev)IWA]|-ZKOv]h|>v48Ɠ=1 #=Rgn_TǣYrV1cj?@@@@@@:O/=MNػbg;txr#=vCwޕ6c˶ {>;"#̛XOsڝۣ }f<cox9í8^fW+U%)czuMCw%IF_ĉvm&.'ϜSzo'FhwѻKąM#a)SUxY⣎>̦neiv@;9T|=1uΡu})@fW]oL轉E1q3DŽ~r.˩=xrznvsoTwuuuuuu[_t#ʅ*r!1; };ǻyfyf`x\kڻbw g&qqH;z'W<0/y31_ow.f&ٝ4+wQVmd&دDwL \ԝX}H&bYxIW CfTVhOjִuȇ~cUdTdQ 0X8=&C{WR"P.Ot%b۩>@2?2k6@&. ID2`^².3~ցցցցցց[ 1{'cww#nڻ,4Ix<3;;[w_4LRRhsƬp{.Pߡw`͞/~#95OVNc wvͺD]=h#n>`IX!ӫS_鑳i<&yw5۹&Įcdvsٝ3Y\Dg{LY晰l(~0fz^iQN> ۩Ю%VqEBiwV@R+O6+)C+rw@Jm^C9=|+w_S>HȪ3g,x-]esm&f In%F;kfp"hNiL3R:~U%o:'q[ҊݭK[YKsiaY,4,iX$iSENI`~^PGMPvQĞewtt1$no)`v:gSa_@wO;98ul$`'2)9KSݻ(q]nuuք<ɞG I94=!v@$Cv90Vg]Ζ,yՋ<6Ю(!ӻ,ڕ9#hFFZE${99fK߽EJ{3ݯОEZNʨvZj vD5ecʱv] qy*/{cc::::::p9E]>ǔO<&3ð;ޅ6N&f`uwX{t$!I Cdo oXC8M_Ɋs`{?[KZ}SXG;f\QdKSPfZדsՍ=I^`kf&vg}gm!~9pdvQ+CA4L?`8_? nKx; bK :K#lk$ ~[~ZW}j5EcE{s3j4^Tc{ vx'/Gڏ:::::: Q\>;wR"A@+=WCdwRV8?w+GtCs oQ?k yT}=vnE,dz"O7Cij=zgLq}L#Zk=_,gh^#da7 Yx>@;1ݴ3 FZW4Vsp>\F)Drٷ%YG}|@282F)^ , v_nࢇGPoloE5C{:::::pyO<ږrC;=vƶ5ŢUFx ,߄r#nkXUѻW+Gxޕ!9.R5*3Hi>>cْayGYg)˥ULxW#44_PQS1gn_F>cNrcO!h9b?A}No2H;׮G%}cWF>q4ݵ=2o=m R7M̨BosF˱n.*%1Ueijcj_K Uxn$zV/]u^5h*:-N:'1D{tWڎ'ʮNs%Ij%+Fmqcxs¯Mzi~xvIul=G3r'F/+.zZ'_O:tGʮ1M&\?p9@0pUqEGe7 1,qxZ͖^qCdpH߃Ҟ{g7rޕ"kYA{0Og{&*\ڟցցցցցցցX;wa~G%KxާCigӻExiJ;?xOnQ}S3W 5iHE>"=fOܾtHӯ:k"d~+,X:4nze=f$)c<  g ^wDxyEs^WIPSWxf/]z@lZݲWj ok iͫE'|wZMcm\CH;[##CrkNݡ.Ҏ&1ΘUϢ=&@=]<_|K:::::::؁Ͻ33wޕ3B2[*)#ޕiwLW O$-Sko9ۉ?_ɏ.4"p6*ў%[-IO} !){׎ݝz/^}s< jLlFμof빞bXǹ%# @@'~刖4=z^Ux9RiO]Ցy)93zRGb>~S1Érx)}?dKNEïJɇ!] Y&%_X3qu?=gnoK꣗F4yViy^c[51Ǫ2p ~⯖6{.oQq6U.xlѷ̬1!W6C.۬6CM1>Xɏ䏮 ~оѽ?P{\*i6SMh|\b?(_LѮG @Kv< gn=M̍7ܵW>MjIa=P xi % MS~|ʍOC^1Ï2>$zߐ~߫}5_Mw)=5 QVeĵ^+vWWu##|דyf1 ;oMGǃ=26}t!0cf:"*7u˄W~=ucȸ=fh_N%ԓ;?.0PI@ o;x?݌(<迎ΙZ;cn={x|uLhəjmd|娫@2{=0I,_Ow|l=$_U;6=%k!'UȖYu&e#$R;íثnިSGNHǎ6{<۠cCKZ36wSأ^/>g=;)ibo`y2WzڻhS6p_2cB4k1"m=~1-@(UR\*)3#.q|FwF*ջWS< -]Nzy)wHG9͔Nn_k4Ǫ#wO^]9i,PMDAM6ktW'|{|۽~ut晉v+Ůi&r/`ޘ/&v{mui݂ԝSഏm곩ކ%8^F HrF5HƎK^lű.҅~x^yI\{^=5%) @@'pe26{c:zU{ogVsb^*^X}*4U+KMxn5ưhUk}u.ݮ|nnudG%mu.ץCWDd;boI[ϳN,=vEeˆj̻-9.-v+v?I;qe/(!8L+)җRbzMUsl=+: ,E|@voߑݡs%ߏ΢gCqI-]-Z'  @xf\+LΨmF9#xwgk꽝 ߢzUҽ 1ұoK7MrJ{ m$W;*N=Nփ*gx-u1`3q )磌ymXZjޯh;ʲQKK%"\ϱev>hnOW`̋c'_R 4WDlż7#7 ߍwߥ彿> $BLLUDsX~l)g4Y_w95;cpu5,Mօh_1B55 y%gz#rNO2>5ոF"pVS>T C e;A۱ܶƘjy~eW8|ƛ8:RNv}; }j>ӾH4UaVf b~m]WaARZp*>.nMCk//'& @௎b3QQ"VhpU=#2^)7ɞip%uejtwgRO/c$Wi}@=X78N{R*imov߬ۛ5߹UGFqvѭA7kz\EXh>lI(i6J5-h\Jt=틍QERN{I}%fT:0/z  Tʉ/WȜk4_vO=#J̧)flQ:i٘ibm Ѯ]9ЮO( @_OO*#ߏ(@Wo꺨&n{ɽs5q ׽ht(Ե@Y(v {=6FO~k<1A踋*dv+FP4mnʁ\_=*{z)3ZdcNB/1,ئ/>6ڂ+;__Rm@ /mػ{CKkh #:R`1h\#Y{vxGxpj=ޅӫUE?YrY=Jid~u*y/շ5ܡd[&zgڦ z4v]4^4j4TX#9S׳:< '[ oIo/IXUMiq[]D'nH]@^uuK)T)le5s.ѝH*KZݹ.nvR]+oӾvO6meFR|E=lΏߙnkc}٘h׭F*&E)<~Iy5 @ty_1zk 42w6g3G*<{{~FhʄWA x>e|iIAO4s=;/Cgx+Y{www iNxk|^|o8 #iPFР[>MuflDt|=R1 ŞqT\ksp>f=X2JdL IiKTq>^ c6f=sS٣ ;dgm~(W @+}J[RkjqZb֛g;>Vx ӬmU&;W#*%iF+^Y4cYH쿪5 'gzjf`aPlO.]MrZb+=EsEUX3 $;pf6ܴ(ڳMY2bj^tɣQb>HNasP.F^rIyxIu]Y^յEv ~M%%B JrSDzG{E*>wGh2Eimeټ)swr&5 m)^)vSo_& C[1SmkФ=Lx9CFYnt>c˩I>|<¬ɛ3̾G/&X]Ge=WoՌUQ#ҝz gGwۋ6@iu,hyH~+>9C=ͫ`~i%5/jynO)U[#ў%Bk1Lq8*RV}OEW9ʋ @#ˉqμ+4|F*?dUp-e,'ְR49WE|moowIJ2\o^kҌddrF<Φ⚞Xǩ&-72=ȱHy)rHHf/SMϓQkSQ f1>85iV>*UqkUu.ڭ{0n,~~V5~!@՝rmySv$svUy5<#.Yyi"`>ZMHt5IZ K%FL»X2b +iu۞V jYUo6Lu*54]KUL ]vlNK3--4^UWfiHW|n+3eEzI1ӢV_96 ki13s排h/DLCNfoK|_]ןx@ ˉ_*'oJ#ˁWl{zO=XzG>w QfagMlnj(d|Z񣀏iV-fuK控ÁK3S^8RݾIB1t'zqKƓBUQ&瑘$ڲMn"fcb=Co.*+mqA__F뷏gsv>fv>޼cbw%Bfb zu]:o6 @xrΰOBzNHc5>{Fh.Z5G2>5h" [R^uP_^챳5%c@r-3)b%@>,#NG*7c@s|2磏^F٥;dǹJ~ x_loջQGvn^fy)o|GwGY-eA:n>C !@D颺('R{w}-wWud/Uo 𙁟%dz:هw&%꽟D&},镢D&4g0z?g}~xKSMFk?]m5bjs=zNO k[=gqP|֜# nb bzI]w @[ph__M(/cJ-Vkӟ,i~!@_Kʅ޻3ZU3B |MѴw |&֔4Sk;5Q(t!Ddq/Mc}=n;i[i0JG?FE+;_ 'nm5b:Cb>DB^"*Q!9VڙWAՓ3y㺈 Ɯ C;X+ypbf[qcv W"U lUT @ޏ=wm쟉&X;+h1>фR4OX>fMJzxόM˛[ud=mIkyϺoeCcVE^9ilYD;: o]-~퍗_V:wNc0f?=Y,{iAtrW }-νPm Kh|>CutŊ=SUv_P@ +ݻ;ˉ;ʉs<3Ձ_s )wo7l.^;N^R2^zY9~n(W" KwGkF]]L]52)S6fSn(l=6S*nz}E\1 sfjg+^可}އg$_ߝ LFU[-JPreP@ {)UKp7)?3o-4*xyM3~4*zϭKż-AkY;rz7i6?ΰwƒlp^5/ٮo?o!+{Ӄ Ĝl#AbVO51nh /gZh3pu|%h{z_wkA \/~`OԻ*hb/;z+1κ59 IfMzoJ7mtŒ||k:~VOyGSos6+fZ7)&q^3^W:652v˻}+-?^2X`Uz׬ݶ?zlZ+vÒV\o{06)I{Y{{ @׀?_.' ]gB&Ieiemo(&GYsIQyJRiw7މ~}O[_0Z-!|殏vK|֏/Hu_Xc豷ʅ޷Uݞ3^Scz9݁ټZuv'Zzݷ߃1+è_ŷ| @#[=}O9T&#?L*UAkXÁ Lûax7+ &޻%%]Pc]H|^Y&Yr?kfU[s(*+LTSzq"T:y|NHrV>Gi1Zb{˱KOf+}izWV6/Gهe(m][>nH~KzA <s,?\S5Z[EV|xrJ }f="[>ʖLkg](4l&߰~cB~*t)Rn8qc8J,zOn^4tU:c#X*{- 3S͟Jg>.>BXNAϴE?l~_>˗ nMFZ] o]]nL\]a!@G˩)mn+WzU'xϤt&V)yx@k?*Jw mGy.J&7ƥ>_GͽƸkE 3yq^h֬2BN:>\8䧇-֞ir{oC3n 5\-GzҘ&Lq*%V׷Lo)'.מ @Dj-UgV&{ӄX־U>|ZxW]iq#w&s5ՐDtd&j"連jI3F4NyRIlJRa;^S(-KK@3OJ`הٮ~x^G豣+އF{7ا>WgZZ!9XoX[ҤÅ?( @`N@CFxrെUC.iVV4Y) Mxju)sջY#-ෝ74cMqDkz_͠G^ALo Zi&ޫ?U,?Xoy.lG s[u+괔]SPfĕ$ꑊcPS`R N0IjczbH  @^E~Fi9wQ&X73zy=05-: b^EGx{WW5k;Qa,d8K{hڹ@J-kކpAJ>]]ϜGҺ>y2O7=41UgQO EĐ}[ʱRQ^ @@'pRy_ e!D>ﮣ鞭5YKֺ+j˫"Wl˚uqMG*tE,=NT_:A?W9;Y/+c>ZvlUFz̖(3^utUrFbchW)av@.OVh9#bwMe>VyﮅBV-x{$)wF0~xjZoF#" G6_YC dj1eH^(XbէyϞHQe7 ܐ8Q'[ Q~@%մzuz4BkÌ]ϜI-55>U\uC , \*?]v?^v?"492>h!iV4F4MXki5epkSO@Ҵ&@F]Ы0 jJ*Vzj.{iEb#^G WuC۵UF$? @_S?+eTൌ54Rz;Xh|hͭxթE$gǐZ%sG7fKfz䴇4EY]ָ"eTϑH|ke=Z=-KRH{L io2K"r  @`+^v5ݙ[eid˄Ɂwd#X=Z*[TjH G<^]@޹mG[ ǧ{r5T? juzaNes6=+_jz.].wr#C u' V|SvfШ3IJ^b^Ҹf<]ҷhͦF֚DWU$I&CՈN?;8Ӎ\-s4+ rN\ ȇ ]y~~t]2`ϛhB @ pb)>^~,$8M҄ / o'iғ%/ iz6'g9ȉ|tcҭ]wkpOۣ=ޜ4vq0CqOA/Cpn胥ҏIŻgS @ v|s>44jQ&4$|65]V؍ﻟW; ?yJ{NsˑrټERO"<̓9Ve-ޣOwe|IQ/%<^wĹt=Hk#sA A YwLg$nO12j(>xGk|tK>ǢֲwV=,:3989iǾjA[nGh{_}ZSJGy3y\fO'|y)Yn3(̂$~ @AWv+gWFxK*wR2Ow6>&6s5'i>j'ir~G~{>%B*?a.R̬zOQ+Vg>^.yy3!@ Z/yy?G*^Vv<Ş֜ol|{5y D&]qUjyrǾB>}Xe3SUrSOOAK~HCk'~\ @&OL)6ed?]2xvliLG"'cuo1YeEÍn϶ʣ-W4Ugӏ$ @-O=Prr y)y-~ҬkNڜ?ؼF_]ߑrV k#Zݕq$},ocu=Uygݙ[e?/O=ʕW @sr+.~#*kB,k!VGyo=+j*|`mcsKv @ltK|hV/o .B: @x<}ʗW<{ a1hWl:R+`6yhfV~~SZ=O_.}\}\? }M<- @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @x" endstream endobj 111 0 obj <> stream x^ZɎ+Ν$00 }_'^lR]ZՕ%2Cq_痿ؖZ]KZ"KKy_Ck^~wo1Gˑ~XhӶ%ezR tV?JsR9-׏v~H?gw$bIs! -VKcM%%P#Lj:4o 5D;2Ԑ-\UZ۝VB.A*?t]_@JܗӺHWX*]Fzh&z$;~ysSK_y+=H9Z= 璎IW|>|?#M}hp?Qh ^f+&A=Z<$=7?|o{[~^wcyT| =o93wD!~H걺wlȎtÏ#?dxzt;#`g#b-.d ԎORdi=mtzO.v('@8U$Xͬ>U=ϠOdNEtTʅq> !;Ȫpb7AlviV!@)) uqX^) s5j-vF gȨDŽ'Z@2@";okcY ^OE2{_yyr4w.JkWq.v\>b1DnkB)8ѳpɜ2@OJPKRqZǥ߁s oR*GD4:+SA5@6-і809I+D Q 6; "gkl# kd_͈3M /VFXpf1؆U+otbySq(w5N-uU;Aו^|uYkj,xd b9 8]vjm#x}MNV`$4O8e8tϑ{_1l>66lUƛ%H@@ј>1p҆;wa-p; ٸT9QIceC_9%x|C$:r ̲5-ՙs=82,>;%[hXrYonTt{%ݤ4!E&R  1¶Te9nO0˦i;͛d;gs>qƒrثvx։NU۩CLp0P]j8{&n}TSoV|NeJ σ;! Z,J";Z,,e CM `Q;EM\yj0JRmzzRM!y 3Xo]MP{3/}Yu1\S#zAY5Ɋzb=/Fݘm9.F9VQ8֝:ōj|| %Nř.@s @rTrP?laz/"+\OD{uQ1ml4\5{n D us,r3׳#bmx CA54cY.[.2$-NgYolނ NhQɢ+U-{u[IjXYy8Q+C#lF,LD1P':F$:.9L"$2?^%4y4^k=_VP (S).q3!nL_ЂtKԋWH+@+!?q4+{&~-,e u &] OX֖ywTKUMY;YyVm#yf_[am9zͭk;4ϛɖ(B:w49KjA׽ .e<L%jFjgxaޡ{ܔ:}^qz7&Q緑t4\b|q(T4rC[!}Nuj&HYR6Ba޵5Pqx_zs#Sn"T# uTH9) ;Nږ$Sm K&Se v>U[fs [)/_5E9&"/<5]5%M{ѧC֑!Hz!"Rmuh;P-e;v?fDC7H9:~ do endstream endobj 117 0 obj <> stream application/pdfgnuplot-context-docgnuplot-context-doc2013.04.19 14:05www.pragma-ade.com2013.04.11 19:55gnuplot-context-doc.2013-04-19T14:05:30+02:00This is LuaTeX, Version beta-0.76.0-2013041516 (TeX Live 2013)(rev 4627) (TeX Live 2013) kpathsea version 6.1.12013-04-19T14:05:30+02:00ConTeXt - 2013.04.11 19:552013-04-19T14:05:30+02:002013-04-19T14:05:30+02:00LuaTeX-0.76.0Falseuuid:94ae46a1-4f63-81a9-bb20-495ec9902474uuid:3550fc15-4e5d-9f91-1895-bdbaf2992b01 endstream endobj 119 0 obj <> stream x^c`XCZA endstream endobj 120 0 obj <> stream x^cd`aa`ddrtv)MLIt*L(M,:!#C< ?$X$)-/*H22pQ12WkicJ~RgJj^IfIs~A%! V*ZZ()8e+)x+x%)8(U+A|? @10pd:Uu/޽e+C?*l{p~+;o?W1.ymO]<˭s2kyS&fS_]ޝ[W[_][YQZ=qwkԮ]wLlX?cqRQެ!1i=-MjvL߽}9nIĕM=9=}8bH4(ACrӧ;q:We>D\8QLFV endstream endobj 122 0 obj <> stream x^R]k0}ϯ{6naVeךj&%M˜hr=9紝MKa ZtfFT9jB([nb\ȱJb4Ń7;qXP2Zu8e]NI])Ж s:k,Y)-m }6xkvȩ0?Ky3cΞk=Dw]+p6ČĩU#X~qݹ@ Ϥ2FbYmTxAτp~g:FocjI5z#_yXk5W%]cZP7Ykم)|7~^O endstream endobj 125 0 obj <> stream x^c`d%6y endstream endobj 126 0 obj <> stream x^TmL[Ur.݇:[&0Z, dRG:|tB e@]>C`lP#qL4N1puXQBbbr&28yy7OI h)r ֗k*JJu|A2i:e+2^|c) |HwstO7R j&(dR}bw>gX \\P4 >]QSRTtFQHMJIIɨ uuSӎi)i\VikLϪV BWğjgNeP5*?tsnJNNIPHBс0*,HS'R jڐDgzi˼^ls~[oL,gF2xБxLeCTJEE{ .qv‘ Pu]!t4WҙkcsyB,,tKly+!ǀDIP/s6a9klaNu]r_0M]VhCw .ՓZ'x.5: w;=^D4PhYkv}mP\0}D$WJ" ~8'Y׏LqYf4t ro7>h ,퓒٭oV` 拄d6ra[飑Jg{TJ> T Qn*N6u) WG{E!uoC x~aW;#0cnwX_{{Gްjհ1gFW>eB _8vؿMVy$5 =WєQ&xffyy:h? Z@l<:VE8`@NWٷ}2gnq8f'[t܄m - ZU\[F0 ceeHp{E/\)2Gp&B= %)B2G{K3OZ6v%VpU@)GǛlΑFDI $jB#@<Γ@qEd@<_dbPɁl&D=(f d.l o s b;#N endstream endobj 128 0 obj <> stream x^R]k0}ׯ}4I [>mJі3A,Lɿ>21G{t5qUbtGa4h\4d4Z+( "G>Tjr40^eL skəd7;8W ^lߵ0whW[uFaN/X OԭPrl$_eђ!JHt#d\0#j`J-FD$iZ#U]Ӝ(ISXY#KQ#>_nœ [Yl$ Ƕ)B,m@4>)AЧkKtʫ<Sh|iMtDI@fh@} Ko滻˺\b6&8[HQSïnK>EK endstream endobj 131 0 obj <> stream x^)]˽.9A endstream endobj 132 0 obj <> stream x^X XSg־1&JNG uhGkUܰ F6 %$,"*jRg n׎KUUkjQ?bg`Oyf'yssΕ02eժK9ku`MoO:?c^gDDt :H ̴ē 0$kl3zqdT!A}y Θ:}tUP6W+ܡaƜ938̜>c' H05( 'aS8/s $M2ʁZE?RF b3C-3Ό`3Qhf { f,c(DƑyqbbf23Y̟9{<}f>qaT"f1Yʸ2˘G f%ƬbV3k:ƝY|l`62f+!e$V]1У̇LER4@>`e pr7ҥү,MȾ=KVNb%ΆpǸ&zwφ yh3ECÇV=c;6Ӷsap/GFlQ0Nf$mm6i(1Cd,^\,N,fml4KQ)L< U, hי-\_H qFH)!@bAZMw3Fbvfs+IKT0\;DUcUrbMN2J.t//Om|򕱲c}@ kvj8玜8m?kK/R^nO. 2ȜMo첢ÁU!uz+{pb+tY{B;qOɯ.*l%` 9^~:8Ε఩>8GN۵ 8[ 1AcX ߓKe8pzo'R*K Ol8^S7PN?AEfN{ xg0weŹB0!(0UZtё'ıC!KݕINL6*kZ*2gaDL0^W:mLl6lHɹ+sZ c1ƙL%1= '+Λ{q;z%F Ľo4>@?qK<y*9T7w;:wnFؔKsٶ m>ZmܾwK:!&b8Gj=QNTv׫xĹ,tkjYJ56&ec ,v ho?^-ܲST]_t SsMfCc~yNyV)\^ζph\l+"]=(@H*Aw[p=9;sȦyrVo]U]t]zbT"ȏlyV>㮺;8Y2v%ercs9}³рo9> .Yb}CJp,R<%'qa1)Q9dl=:p=?w,3HdC GeGp疭cfoPmhg8pdsq >CkTo Ɲ_τ##.&R{8CJdMpc_uf}7w kI#O\UDJ8{?mض:87@aQ]p]C9FL#cAx2vx!đߞNٰr޼W_v]h#q &q"҉,:Z1Wh[hQ%pRBL"m-*n)'+G#K`.j̕YCKSS J} 9/>!WHW7;IOE9^A9!YMDAS;h< ?)2Ғ5ZGjҵtI8]qPiE$x]|уϥ9 ÍϾ\{pIPFvٓկ>%$ 氣J5ywRYn55,hꑊ&_#g{˚WBx7 9/т_$ME5vqR Nhӌ)vK6'74;dy[Eb"z+[p4/ۘM} i zL-ntwI1cd>ݔl>%u #E/zY\"V['EM)p"M>5˴ ciui&!, );{c3EKyo)饁^OO9諣F6q`p`Ȗ8WQ RGJ*ԿRv[5vLoqz.0ׂ0S= [e9JZ-lq%iE9$q8jm K>29`f`-A# P(c-c-A%fqtqgzvIi83a@ľ.bZz6X47GkXD]N攊J{žғ/,u>CMU#2<\N8Tȫh1]IAXJGI2ǔiƒY\ȀWV(@}~}iMQQ€-J7Xx^'-1=a!٘P'9g̓߳pH=0?sbNi/Vc3ӊ]+z^NA/ȤS|ֆqp§FwmӃ)^n FEUj4.b h>CC8"u՜U%b1  2a"q!_*۠\e.害1)HvMT :9y2R(ΦHOy/u+bEקީəEAY؁Shq@^h 2V2k'JH"0Pm@o\WYR~ AURM Wǘ*_)]Es ud;sSQ`24S#OSg#.8%r_YUpLK7P;L19; ;&78hYCyx 8K%k:cy{[/bLlEʑ򴊌J.onoj78o6xgR!A?jdOp¡f7:Xi*h ,K^^=ϻ81;)z2#wC4~!A:\<;q nޥ<I5ڲ„}!V?~D#@)?xL<Ztxy~_L4<]P")*;pAE;: %ncqXÓf[<功clS+H^P'y܉I{:"u85Q5SeGYiW+~ ؟|RDT񆧳,5&Od۵m57%e&f"'+OHe'dG}~y]'7Q /(R *N *ך/Kk73bxsK֟y- ?d:6epCͷB^_٥kC 4*؝eVFGƸIi/.fEeSV֊H<΄%cT8c >L 8 dEYl@rbZdztF% oT7>>Zm@o_h:Y$l̓_o9с8?X~5.0ϲx޶H3`L<'у)i˶+hK\2c2 ?/ap)!IU~Ϟ*!VBeGޤm%;lLM OKK˫-m07wfqA{w>`OQA _;_yf1ϊό8Mb:%ְ{3??Cl8yDۘtO76+"SogDD/CTVDֆuCʦo ̹;Oӊ2]h8Ia|C EE&n}enղ ZOyV>y+[j9˵| moӣҢ9R+(=`s1`B@NJL'$4 6+:'3R!,-$oLn]xRt?߃OK*CP^.a3vլNkSڄZ{Mg|%Xڀi6 6=CB<ӑH3 endstream endobj 134 0 obj <> stream x^S]k0}ϸ]iamB^:ĒeF$]1BAܣsۡLOCx;o6J: 6KrPVɼ(KA/\(ᗿ9?J@9ZkנG?\_`%:1)ݔĥs)$z /3^0Gi܆ FɎE1a1rmyV\]{ m)V$x7VW7řvju]s 1wou $r}oMi%w)dw5U3x+cHr>enFqG$[Egf۵|t:(e^[\zvzw{=}u6_$ ( endstream endobj 137 0 obj <> stream x^cHte 9``l!wgВZ endstream endobj 138 0 obj <> stream x^VkPY:jDسcHd}ATPt\,-|Eh2$#B 9$LX@#kqjjuq68hf/cmU;U?vOuӇGS<oJĶ AicXՁMᣣiG b(Vcn}dKI?(Λ4tGͅc&fͤs:ʄT͂'&i^sH.+]`4(VO̐Β.1^LO?_*>^nv4YLNW*g#}OG:G1XjPTJQۨpj;oom'Dot6C1n\4Jy<&~:w#=>- RBA7ݍv?dg ]z-'agO>z,kVW\P#p}2d~[v{{M{cW.Ef2O.:=;x xyR[}o+R 86zrO&]|̃)19Y YXXE ODxc1 kC||]?9X}#M4A ]Σ U21yB^+4<mfg~g׏/f1SsY]ͩ @D6@ <8L{)r c&ksRys3pZSb֛r͇Mڒ\)pa* ;Vb`)2)9 cTʢ"g]؋K__R.emÓK.E,gϬW7m-eHU{ݧG۠sl-iɩ0C SgOfTcn4Յ]FΌ0p^@g3>Ӟd?hG5ٴZל84krr,f(^ŞֺHkL`1D5FOB GZOpvc5m2+{d-P< N@Ն: BRu^3hG\ vbnguNg]íSYB!2=&F.OPauΘΘ\=.p\/a%?KppXal Ƒ [%N{jp` v^ObBUbz`JQzQsBGK{!d)'ud  ~xhy?yL?sШ(Un'%EZmDhgUmA|![94XA@4jPʴqg?KrmJ L: (…?#Y, xq:d0gB h3*5F{xj kl" B4~1eαChH4~OfAc endstream endobj 140 0 obj <> stream x^Sn0C@1&4Hۦ*+'`C;$jEBͼyfl&> E4;GJkޫ֛L jP1f /',_J+~VpF>dZ({RT+-ҧ(^R"wF-HH)5W%9;/ DqĽTB_Bvh dc6 Pjx% L::]U m{tDDވ]}T5 nUb<Й捀8J[EД,7I=P|vMыyE1JQ``l?OJU+m}8 Т:4CO%7sMCfE9302Ġ5Ȫ0 bͱd,W3,y斀عA#쭱!\/V۴Xe_{#v endstream endobj 143 0 obj <> stream x^c`e`Ppr  endstream endobj 144 0 obj <> stream x^W TgcF:#MحNZkvLX* FQ. &\ I/&$P@ EhNݶ묶+n]3_zvӳSg{&~׏DD0<oArʦW^~eYye)˒2$Y?$qs @2\-smq fVK.`G 3QG,/ip^.'gUx򩧞ZS\R1)bժ'Z+XR$'z2%$~RT\*g?yWb)w<<<ɬ`fc^`$f-If32L yIe0ۙ "&Q"x*G1#nۑQ1QMQߢ6g<:!s'aK华ӣE/(r4$rIt()*:Ykx/\(%!eZR[UT:MCmRUz.b ox:C,]Ƌ)F2yi0BsC@JŪR=*+"VJ l.&+jiXXc JP!]\Zl5P7Uf@Շ6PxLi#*vu,-*#[`j0!`EI.=:{&ct>uCױ~E ّ֫Iv8M-Z|$HA޵0XPŲP0;HH?:rTJRR)$Fnۣ5@=?]q7lCcor<Oot%J@K%s~w3|GuԩGt/ ,F^5) tX_<MgXh⹷"C.YLˌMo :&S,,;8Q-ۥ +@E#n1`cx>s;#Oɚ\fk1(&8j(?K6:_?w^L|XGl1L:jI5Q$ѳ."jKv!Zō C.4{փ B3tlVg ^a? M7L*(&bf![k@F\!wUٜT)if_}CҒJKqI,To䛘n w)DW kL9d=Ml(gaWIn`)U(_t>˭˂="Ui$/Ā Z[URU0-~`dӏWDK,čnwca! gkz9bY:bsINm9E\{5sukl=2cܮW$B^'{k#O@CL؈8tRě_KK5Idk/sÿJ ߑ ұLJnx>ﻖfB|E,*m3=^xٝ$`ݠxr#x} d+I2e dFQGnsY!ĭXa%Jw+/R '3߷o}?l=GA*(Z* .8CǀV'vhTTrm z1SіǰvzXrEz~wT5fEc4kx;,A.B#wN-,&K|I-@2)3~ϔ]wRc^T)? Y `Yz mg]unm֩oGgp?:t |' 7b۩/X =ɞcTlp¿kW-2~ʬ69j`{.JOz|Mg765yQ -Yq Rp K6Knq%_=7]rޗǓӮ"wSG!G3FpM0V^t^?3 SYE?reA?qBx~go@d5YF֐ϱAOjdG燃cpi.KI,x5-g+;N~[w)LM؍{$sBoh٠ڭkዟ} :B1W27nFtEeqN>5k:(4xZBv>W%$aKme[ 'I> 왫cC](tkR~> stream x^Sj0}Whk![1l҄4Nld!_I,a ̙33g.z/9B<2]klhjx_2[bv3CbU(i,P X&-$ա|nz ~\rAaʳsҜa?lj{ Ot'5#ck%MHx팆CTB_DTHnxm'@]!9 ?3?phNt|O%=Es*ܶe 4+UnE(7Ku2`9oP/QFOSKg,$] S7"3 @+jFWNJ+23,c8F%Zh=T:+A]e)ZO$˪ma VȐ9Lktstqﵶ7V"܎mZ_Ï݆|] endstream endobj 149 0 obj <> stream x^H_`?0 $T@h \ endstream endobj 150 0 obj <> stream x^z XUFOhi9uJs 0Edpg AAqb,5l[if\.6}{|~{w]˅=qqqyp+ֽ8c]RPxpаDW;G͓dx/{ʏ=D.>̾^aGd?0m26md>iiwaip쮐!1isfΞ={y齝s.sz/  M~{UlTtH꘠KNIO 95xEП=̽XF<3Rf#cdb< Df2(3<cw>YgǭwXDv=ЛǏx80qćxɏxzx{U}s1hS.>6<NN ?wNu{pXSvq O$ 9g(^g O "'9Pg!&'G`1on%GK{+pVLNѓHF~xyuQL3s/үrݥ곥 g8xIk*{pEU'?5 лbb͋GPۧ4z}2 @+!nyM>H2EN~|&3oi8 g= i EҾ!S^[`s oXVpTG[YW.U 2d\ooܚ!IbЛ,v%b8˚G^ iNF:p+ʢN2ڰlWn*Kv\}+PŰ-"qm=W x\]b]_~uw ϑ *sOiZD\V_/*q Lf)d5wo6ǟL_oRދ3?1`2+/UEfZ;5?[Cׂe,qҠMs8;u:[M ,#Kg{nj WP+nzÇl:t:ЕOWQKhT'3^E #wn^$3|el(|`޲C5:Ss jnd yF춪ͶaK2tOǮx 0:qMIa(Of!c2hs%ˈ¢kORE^+~O+2,^ +Ђ=;w㻘񄏫<*e_}f#~OSb7O"u m8  R2v:+RUX'[ۜaM+*Q*5Py^̄\ydⰳ>~~}qMi AݝQ}WfH[LyCg6 >OcI'r߂{Mt~XWcΙ=OM2a q%SȄ?RSmEH l[LT'Z/GS^@ #^V>Bׄݲ0 I E2.WpV_J`3^`[ dgog 6? Δׂ4('G)WIߓ0Z-*w4&Þ3d,4pW;v;o.Az0⯴sF,a˾  HH`aoan(-CGNͲKĭTUI}]p:C#jwV""+פc[&!d wՈ/~eC|]Ra(dDT{*}`QK׏\D~T3d@XqӀO{+?,|OAfCfAK6g"q_DW'd쏯2gs*XM.;a̸c]@2o] ߡ4eG4ǑY hCp ~-|,gt/ nϾ}`+l+ZΕ ɋėh'5wؿu9 t&(Jx,ȋR`wA)@zך&!V)XNJp:.CQOɱ%`5FAOG]zEXKL+K]V|W=w4ϡ޽Ӡ5ʸ(F8qXV$kNi95NQN; &.xRwH~ Yk= ghj5}WdvKv6 E-[>в*K^p2su};5=/C"~F[90)+>ah1 r4!Ht9C $S 9],cxz.ZVk¶oL8{]c920B}ElDM'wHkq2ΞYkʗ[-5t:S\ E4nwr.s=m&>칷kJ,`䤕I`DZ pFQf˳ӓsĒTk5ؐeTY4f+G VXCZ-MS7iPnAThh6^hh+Te:dVV*1+ ?kup9"uCifmN Tw: a$&A 2N8q~wZj 4ĶcWރ"sп$r_4LY@WGI4^@|KLMtᔶQ]*ڎh8o{U2@h%'MIvy,sM^ZA|]$ijJ8{W~.m}pmӅgb,Pȡa͡ Ο#~vo9mJ>}&J&SY1Z4V92K1/kg|TxPPBE'ӚV6uʟze]1кˆ4S$ӛ7- G f( 8f^,z 5Z؞MqAUh^zH~x>:>-vjsjg3i:IGzk caBJm,:$u=[+pw8脴7ݖW?C_p,N-ۢ3  K/#Ʌxt6Vo"(}CI;:Q,msN}Ϗr9]JrI^!~=qDz \=Wŵ4s[ *V hv!*{52{$9Hto_.:Q" ]*|T`75xVFӐ2j9LsIܞmSYZw|Mv=֨3:Mc D&T2jM0Xe=^Hݥ̿` Ǐ<#3f[p蕆ndE/&tA8 6mf5j(4y pVQggʙF|SP!;z+k>nז"iCeau~-w-Z"&58Sa5ZRW9 Vd팍ύ[_WHï9)Y/綒П+iN8 #[OܼKA/"h|Bujo7\g_=%a ,;HKq9ʽbda.iO7FiQoL4Ь41yYH@X<pX 6S3*vЇؕ_׾:i 7rrEs-N>GXnO?+WߐM/;#dp d9Z::y^2㩔_ } q?Xd^;O? G2;xӥGO\ UfYGCo^Kxd:M&Hxa8Vd T:IYx=鲼EW 'ҧ$[ǒ#^&hJ))1%z, [q| vÞoh>GǷWDb(6 kEb%!CBHYm iICc!0 Žx$#Rh8g l2- 5&)ԕ))B$pxՉO'8~ۻ*q]|!; 5|1 2Ћ/<9ֳ?-UH,,貤zsP؁VoSJCK"Ls=#wkԩpp@gnKєzuA-airir+( eOލF+u)8sS|ߴaZz򦗄*{X.* YT},Cixa ,5%{+tZ}l :[C(|8ѿëf{.e+?|NEp Rh38QYb 9BrƟ㺇{yl1Fݴ;rg"$ 6uI3~M,8ՠnDUCk}>B| tZRfH'Ұ+>ɮBl6)v`-P64!_ jh5j5g22 D'&#]D[ we<h}OJAzQmTs9h)e1c1}sns~)K 0~?I?>uPpd3Mu_O7k; G)ao鹞 32>>-''|,2<`gfDڝ"ω AÑ6xU~áF-,+({hCbdM2̞>,&&Qw~zM<O~_Lg䧽$f3t=֦~Z#.xd.]Vmޚǽ}éĪ; w_ӓ2[?r+T-Wl]ƭu8zݖ[}"6OlqoEBjMIShP|2 Α]Sv~74vkŶc!ɬdH _0$[dW-3j8ƞJ";Zk(G=ͬXcYtfZN_/"Ϊ)yIdN Nw oȴ$?x)L6\d98 kìs@mnbWS֙f2dZM646 aiܯ Hߠ3pBbK,ڎC3Q.G u⊒GAÈ@v@ǖZJ/Pir3䩹yhٴ߲j(RPU}Z`3UQyCc+9Ys/fT_4~[JR(D QT=q V\^}Z68X@ &RɵI;7*Nͅlʔa8yI%ed*KRfwP6 ƭS4(+\M-N?6Ua3P9*NKBu*w$T#cd@"i%ѝ?}'v^+sO$MDwPo6S/ڋ@,y-G*``=*rwH,y YE&xo! ,3UWѣp<+I|[υWȻzȺ9ڦMчRK=؁?3'C endstream endobj 152 0 obj <> stream x^}SMo0WxH&. Cʪ-j%p"'9wfLBy͌3نϺC8z4UײE3 @Tl\ЊXִ.:uz}PGcoG w'_K.sg_z$3 w%K|kLeB>qL5AtmBD}[cBr jDi\Cf"bӺ ;~=]vu}r# ˄ l3ShrP7R@ YUihR+ l,O~f3=ɉʱI#R_RokD\2W4˒Xr-SId{KsWďwG;0Q]??3h  endstream endobj 16 0 obj <> stream x^Z[s۶~[A-Ll׉S'qcMG#6OmQ\ί?rl+n*@`wbwYʄe2Θ &Qz& Y&2,K Sivdbc9f>(d_4h(LT3)QʌeV _Ja sS1U4x db\ Z5 4;˴%II H3%AxG?@N1 E陲)SL9cv tNS$ cAp UHARHY1kQB`"3`P;ƱˣKÜG }t &=y8 c(Z҂9<`DVV,$@kDh@ 15Ơ>X;Xa<,3X *C[ HbYq :@#: X9 Ps;0s>@5XY<@6 @\Ê %*USvL1~f/^7Mfswm2]i߆%?-.K~P&`2fq>帾JTPW~U{H )L$yQufeiW,VQ=gg7aЛ@XA]7Ȅ"ԓ E <8fqQ;4 =N? a7a]m'PB(K4U;H*?n*n*-!v8SuS oSo;_70%Nr*l1kyt8SE-"sibaZ۩۩a|TMrWAic-+a 닧`#6ܶ;Sh񂟎Y9#~^~mZc`vcZqb_p+(X|f2q*! %#`ǂ_g_Kk+|ƾb7$ogC])V )yW#H,Ε>KAJ,yV%Y6 JrA/Ys+sb>L.b ~RFmq^~$K1aG88 h$qUخLJRl  7KdS K1=z[L _PݛP^^0a9!ICTxrpU.y2V}PLQeЫh@w ;..ᄆw28AE9Gqeuy߈jIq]^.Mʛ?!Mćvy_9 ,ί ׼|Huy1O>qOKͿz/sTHp 30K௤V2b6ifFb=|ozOm#xs<)tT O}V@r qe3LQ;4cS/a HF5bPjMm&$SpIzQDTuA;fb[Dl|^-)‰nK@ X QH9K r hrbB-/+= yEYB!@yʿN]D:fNka>c0||$GqeY%̸sLpr F肼F5ݗSP7 'H5$)0B@ `}e5#Wax! $ع@SCIkQ#Gkn{L%}?=}xf(I ~Ԩ6x>ų>M0i^i)=jNq<9l3t)џxo pw38KsAL1 #|LupypYT+B!Ux_ BzfkG&R]x<@5z nfrNɂ)ǍC./0߸# -`,y&֚<3&sԨ\ҺL) xnTAh˭e0 R*6\{:w@jsOPxhg#U\Ɂ-=kO[μ69UÏp~t3K bH-Bdap4 PAvi`:A6IA%pB`tE$bp+d l5$ePEwZB)(jÀC10/>UX7%Z4&=iHMLLqw7r%,8d eh\S.c." dzCvrL>2dRlmVT =ݻ=_ӽ endstream endobj 156 0 obj <> stream x^{z__P endstream endobj 157 0 obj <> stream x^Wy\TW^E[tf4J .ce#\PdiFnY(1 $. Iq2/y&Qc;IfynTթ:ebeYm^n[奏E"y-\ L[-fNc%+[ D+\a5.G2aع/Y9Sͦ7/|Xp<5A[£zE4H@1{~K]دUB5:95aAQ[ٯ e \;{{~u?#a X3f&c(yBf1̸0˙1*-f5Yl`62f+Ƹ36f;b?1>/fD kѿYdEf3dY+jUU1Td/rKbL&)JR#ZKzSpu?;DI[&}4y''ʔSO sD} 91sϬS9 ec$Œq8A `(1&KlGqWe>V(PϪ8z"#S 4aʼn<~*͈M OpoWRx4?$A/?>oŁ2}oϝMIN> ߗו5v݀Aq㼮*P D^VtDWĕ'B,/ܛv ·- NBבUMv(nZF&pE8>Wg$׮d /)Fo%qqD$J"inTrfysӑr[&J)Cf*g#T򖦦p(C,D«WA'`MU&碓H8eJ!K kJi>Pw~̏q;cJ5ͺ6O[@kt}|b ɈC < {׈s4?# ^ ϶P--m0d0D1b4hY4*pSs1 %6(EfP5W9sBzqg sa%d,;ab,E;0&#l$OKķpCdq2|{1G)Vn& rXi7(p:qB5\7y0s:{ 揫(HU: )߱MRjyn V$\"N11 G+G=ΨBGy"c.:R =" NU\J$dRK F\r<b ئrKq[yc[,5(5TY8 _6co:/= ޴<+R|GV1=VvWVP /O(+˫,ɿ~Ϲ#h _jI a(7J'R8]X]]Y_\r35 11oo%/+W;.μ9)*:t TehȞ+ys<+W?OalUk^$2.yW2mcvX\B*`ʔµuzHY Շ -1^-i4`m~[,CEGc=ޡ$syy5|=̠щUdB'lf]4ÉDW,Oc+uC\[X0LJb_57r\7ae|@El_YL<[a)"/Hj57΂on#T>Qvlуfm>iđL#HXj:8pt/(+3Ђz0))+˻rhcД%$d´ZYgKL ' 'K'CNćĉ<70\nx"-M )J+u!s`%ρXOW d' hll8 RНTOr-{l\c@擇ę.i`t~!M{Xzz[ڏj@7F&&V(lTx#d#(rEg!~H!/F[cAld@1=J+:f"]>)!Qa1 hfDyPEn_tFy*!.[oJ3b jຠV]gŔρ!:vJJ~*߆;M=&TZ2Z'6, vx_UdeB ?݀S\ut@ yuu|]Ha@WlWX2W,&x/^4>SmYfxNԆp̻0jKMt=~!0w45vҭ@uF}lXfY>mZ2('F,.vmՇ.Y&&dSL)2Wr endstream endobj 159 0 obj <> stream x^S]k@|ׯ>1X!B$J_廵{`Iwo׊!;3w|{-']3X ~jdȡӿ(Pc[Wz1ۃ ƪmͽ~y#AjUk 楿i.\RX~#P\|..HN7f) 5[An^ltF9H(-[Dq\\95j%foz{%/, 6g1|\,/Mz- AN ~awۻ@( (J&XF}ȇӎ{}Ț'J$'[=}&;c֌Y3eM$ȄtC`0c2e9W19S&,pN<^ʒ+8ڲVJ*$ABɼU~rO.;5mNMXe<{4- endstream endobj 162 0 obj <> stream x^c`g^#`- endstream endobj 163 0 obj <> stream x^Y \SW*MQK@Akuh.ՊV@@N !l_6$. AvQ낥:j9ӎ>wn3K~w]η;qc<<77 Ak/[>cuFT|􎠴ظa$sˇa8;s&y Gymsgϼ&у?W}J~x;cVD$ǧΞ3gNprJ6 ;'poP|lLBr7c+f.MHu^,MƤeDv9wm/3%dc33Ɍ?3Lc33YK ber&yyYɼɬa2o1Pf=Ƅ3&mf;?{&3s=7tu{8bՈaRv9سN0Jk \2ި3^g=<'i]%  N?;}>>|Ͻoϵ { gr anm8۱]) tǁ8I āBppzfa=pzxx|LW&YJ=Dr~aM4fIkk:D*=Yʖ5AB^\(q%rpKL{zO@:X[yCU>щ􆩿$D7WD&\ Y}C 1okiI{$TvGL\lbLbLaNe 9l"Npx|U81&MG ovֺ%IX&ݛ^)[Bh|y=VP=Fvm Ś#g= ۇ3*k[hsPI8 {̦,PeH:"KƓ^oC6޶u B^,7^\>$\ G+ pfVkz^Ons&6LEk"%&>0x<6˱779rc8h5Sn c&m^ Id[rҽ!kcEٮgihQ7-{,Ȩ;d$ !]蒜y#x:`ɗE-bѝ5oXW"aDHf5yD7$bcwowO5xܬD oXHV>yI!@n(F5!-ѥ_ "3;CB~?܁{qGW8d4 )_< pSbI4prUy~'l':v3`UB}f$>Tzo\k|v᧑zKkՕզC2nU:>ZB}+,?qGS #^9?vݹ[erT0orb LZ~iHd Q6ܬ8Pb,3,ob޿o>ヘGap@3IfVc0D2с/w0<. ro:(Rgz^ ̤1͚zgֳMz֐PlP!4P^Dg>]Oգ-0h?:ΤX\$z1(q(I1C ,ooM .O Ry< VhW[-cdӚ)2D2Q 3oWl4 X^v`M/A⡩xÚMMV.*w"=j+bVW62F M,,%!H_fC^p#" &9GA *ޓԓy ! sׄ~S\ Z\X` I8uq&U2#&sf(>P ")Nj%(ѫ]Lo*LLR\ `+3KT5- .:4i1Ots>movjT o:}&hΝ1Ē0aF \JS7N1HЫy74 9fIgԘN/' ^σ|GjujF+Rw| 5 oƭ֚QiZx)Rzgsu%܇6TjjL#$? J1v)Y4o%gФ6ݨ$B1},os֙Wz sz6<£zm<0=E/rd@\9}CސW[PkLDݬ袋M a!6۶+e5`ԓ~!«6 P\DSjl6?>8}I!~$djힺ:$JV#A9n:8vwRj(^l޿us֬urup$V[C2RNc|zXJj8htnࡇHOნSC/:4؅OS7>QLjI@Ԡf&ڸ7{~!b3{X}C.UK[C#G YQ舘.КSy,3yNVF,Cz|H O"m#]ǩ>%~Q/$C5NU,U!$.txX1 -$bri3ǚM1%S,y -~g;_~jGv2B?<.V;hy’|C&t\/,u)=C:|OcvG\" !Q/Yp{2s.;1Ÿx6AL䎴Ɵc߱¦r.mAGi&sV\% s1=Q}aḰIdEW?~xt]6u23fO!&|5@` !a KsLtV:N$?(u?ͰOQ]*3`u#չvA&KR??DK%=Eݤa汛o{$3^]$:EO&ݣ+p.E?xAw7ɌNP6KW_Y GbrO&1 .=Ys󑏐LgFGF;LŔwEnTNVS}OIټpETT ٿ ي}Vk9uU7[J23Xѥ+5APq3?!deҝt* e"Ө, ƿ/lϩcs;-ʚ^ET,+ ZW&L'\ZL[c߆euHvEa="}k{ɇ=W *wZxeGG֜7bkKfdb<ȓB }N\ga}WkrMn]ACQSQ ծԹ#P*9tOiw39éqx$gs~Rw:M]ݑQ [aJg.8A ><1*3bwwV& \Y-Z&WK"5jMoR4vMf*U6Kպ&^4^8ei+|}Ɋ9gO5m%R#O䜙-+I@/L-iz ZDv_i^ ,`F^x:khw-oؿC4tE+z/9"ҩe6We)@@E^Z_;)Kh*>i.O7i*6%wm~xgxlCsփ3*۝>-Uj4EiAvaAq _RFgVke?*Zj}' m:eedITg &zpr*4t90((H3$m*N=ؠFڻ١b[5tJM no 'HK35R,㽽sjbk;=C;.u.Y3g,^#GbQǽ׳/ء?Wi endstream endobj 165 0 obj <> stream x^RMk0Wh+!nSHTKF+ vk0Bo{z{iv V@[6F @݂?Y#*4/RʑK-5i/O6UQdoA "U?s3ߛq4{)<Zv,<ñ˽ҞGw'\*џőSCSa%] kbJJ2$,n~ftQ՟3l{jMLe #kk`K7(˵2Z~I_Dk<"q7i`e,!97+S$!sA o)Ѭ =962b2(itp1@wpuuiMU㞍o5 endstream endobj 154 0 obj <> stream x^VmO:ίmmo BHQv|颛&Ucw҆Hfcs%#\)u1&"$2D3 #FF9I"Q'dB8LDr̅ 1Ï[6.\'$ a` nz֖UG/6ם#O'vFzϏ͢ȳX~fpbES18b?bwmgWM>evk;gMnZind. $aۛfQ/n).8Jq%\Ri _[k离/G5ZO׌],M\F2嘋@{Ӌ{rsr򾾮D2ئp@+߻Q^/kz-qfa2n2DbFWz:yv;I> b*=l:*ע%qr Ln4"Aq^iͺ](':뾶6#߶c>C ? C endstream endobj 172 0 obj < ]/Length 456 /Filter/FlateDecode>> stream x^%;O`sJ{ Q UP#Eh4tS7a0ݜ\L/K6AR`zhvBp;,e@| j#BRH@$!-`*HH=*C4B<> stream x^tK%KQDcET]p(Q7UQg&G61[^WϟO|[_?%T/??>^~߯?o_맆gg뿷jAAgWQy_̼Z?۟/?x<?|?o^fo|ߏg`o^?^^}x/}P3'z|5ϗgL?>3~L ~Sz3z02ǿWJϢ p~~X &6M.7v|x|[ & ?&Nx 3_S|z Ms COϟ_/o?o?>~|7={9l=o~ ƎxcD=W]Ğ`Ay |D;~|?t1 bPj||i CO; ߀K;?߶Q( O`Ts'X/7F7緟٬.7w q7?^~;]|A7/wͥm瀋盋b1;ss! ?_܏ r^YE0}Ywo^Afj闗zx0; aŗ˷ߠ9 o|UL^6'_zyX\L0xܼ\_o@̯/_z7ܓoo^NyI޾,?oHU?_f+ka3>_$c.lRm4&zeDo}ht}ڕo߷?_*o5/&@Mu@މϗw1>P͔]ly?t @oK=guK^oo7/n<D!n0k>~96s7f䚏W`0_>r͉[EL #aPF%H|i >JߜɈdN,Vr7*sDe$\4 IZi#P(w% 7nqtqB : ޸QP 6tfNt3p sI]H;M\,%8y^j ݿoi'qr"Y9M^,DS婧ߣ{C Ah`ݯ_^>-( ! @4 ~bF9nfgeb)I0ԏ<nf~9W4:7;P8^Noo? x9ћ$_j)i߁yc zǮOc{;y!x}Zf:4(+ŧս>_>؞`by}|1cyEA1Dg> F7vqzf]hVL Y+VJp͓#̝$aS{#m"r%~2A- [ a'yP^a+=!6ÏSӼ e^|E!CATAQ%eH' eJb/J0FG p|;K;}zcV5fEuΑh]zl}!p3~8 upƂ]߬*#3_ Pd5zفծ߹mq~Ⱥi cCO[_kv 54Pըl[:!PvekM4pX @oS(Z2,Ji㌶S 뀚?H"v5O|AeD\P0ye]/мn^YWѬѭx,rxkw+^EDo1_b@M[ۣ9<\0hL$/]%b("?'PY[] mÐi{%Kmo-9\x7\o_, AO{R7^B;g䀲>7Kyf~j+uht1a!gg,@oܼP[]HHo>?cu޸v]}~wm-zFD7X6 ݆Ǻp`(Axyx)~_0~bAm =[VP~?yUAQL |ܣ+4w/kL |4:!Q?neV xc~-_X_kR2FEw[R?h};7e6,uxuc{Ƒ[K|rB~n|~r|)/ ^A5A1ⲯ+=aH񎗕t|G0ԮFvu m>-Kfn4f?m2]2|Xu7n:Njŭhe'љ]72Ï?rBa*sW8x ci:MDc 3a4kGt w>x)+ kC=Ɲjk,Oy|Ct@!,(ws-P6~lqN$E\y<ٰ`mǗqIl2ED\,g|ڗJDAuTv_‰~Td Eg|>!v G?"Lf"Ẅ-\qL>zaxK &/ 7O!4_N4 YOd@^Yz0|1#,+gtO篬(̈́vM3 ./ n3:ѧW;*9?H6>s`Yп P-Qfh,X%Yܬ?DmƂU1_/xbݼ\m,ym'czծA<X7Qq&0"hy\~}kQ ʴ=(6F 'VD-Ð~|V&4ASIh 1pA5A'1p~ЄV/1qdFhPfh;ʃ!Pcr4а4kqDF7* Fߵ@oH܍&7*XCث~nnǻ('\>]4ϔF׉ dž@7lܤv4踄qhq1W\BODb%Q`> e@G&uwP&DOMdd/gTwPc.퓿@nPw_sk\}b|7fB"'sɌx:geޘg˪x鍯Nѿɜ=w} DzؗxPű|)&Ej!QnDWE3)G֠AK#-T,ڢD%7DW_ׯZ30hi`*[:t%O21堋70zF7<&#"HثNt3J,5\\H_e=h$Ҋ _W2?^]KנDI4zOX i/ضsyGD jFg}qw6COUYW53 iH,ԃ*VQ5nC+>-"Hmm|ޘ!ڽԍ.n$M.LalvntqˬɎyNXSbYW'5 [?o~6!SI>!S\Q܆$r:h.9t\̾@֛ >J5Ѿ+*N| :@aT:%3\of:]̜DX3ƍgSYntqDž;9V荛Cwr|F7xYtK싏[Ê+k)$Qm؃%pBc >LdJSl ؚb$Ao}

3)Z;fy &3*s]@oh;'Lfe^m@s*ek JI5hȭDs COȖ;?\Í4a2![&d6Ñlsnh{ڌe%8M C~fM>)~Gɑ=U\xQxcVx>ji݅.f4Pq+I7vwk)@"0sK]R>dǢ 3<DHwMi]o:p i*ضDwcQʣFTJD"ͱY^08|fE+W=<͋)߭^ZKF1q&e~mSX.Qxqx_q}%&t@H(:&֒z|O{m)*/"qXJLY<.NA57O`i+5OWNo"27ˮdLK,A+ [\fpԴJF3^$;U9;S{prF;~Q!:?VjK.l #F3t]2G苝ar@laQ?3pGٙ^9\옷U jJ&n3:0˟êUM`s:GXzkm0Y9(xk`3[VYkG-{̍o8?[IPp`k ꀲcT@I5>G)YA!6gBKTSTQnDdno%lgV&s4DJ-p3$jkpe/de8V q⫴vt ؛;uk!BKC_ iA6S.^"Sw_EU4 9x< @8Y>34=9Ix>y<Tq׼R裔oŹȤ (!ဪ8Q)Y^=q97!J%u.b%J 4k*k k`Uns`b簧Mp+ڬ{"Rla@@%T7m>A'q/ Hݨ=no}5Cϲ1}T-PYS> "_נA:Y:T'Zr|BICrd%o荙mMd*>93[zV}B*s7fF:|-Lf Zib5LoNPƉ ߔLCz|OS97\ +4|Q4h耼$pYDv'Ld*.2PfuϬq>$d;YKoh~*",ćkI-NUtH]_U@g*klUtim 33>ѧ=i ,TtLv2́$7&zhO/OJKȤ]S8׀ {^>J`CSuzcVܞI|%wQxjcF +n0q8cVfPqu<`2pSx`Y wܓ_!Hq ? eMp褼#-+7U AyD5A![Vth,N*} H.*w}[Cp%Mrdus7fsɌmyXYFU} f`]93R"eyO`ɫ}W,q oKVyZrYQ}>(ߞK(rPb0(E3) QfTBg|D.@&WbI•<+ꀒĶ9@5S~qf((0Uߕs7f"d37X|MqbF,3ߜi4̼ hV9a ;H>ᏱooJrP^ COHs'jV{]&°J'b܉ UDX5Tb:UD-U\ ҏ/`itqK@o{ ]ܴ jqz%N܍&7˯NtsƅL;n{->ݎZ@s8]8ht])^ef@{* gxO;uTe\:j&~)"ƉT`/D >SU#ι3JTMW}[|@UBz|)?Q*$Lfv@aX́ޘ{`0K^UJ)Xq|{+de/qMz@NO!~6hPڃ} NE^6Ag'$ !D=ԣK>3ѧxU("RYޏjJ+GuޮO>xTv Ƌ{՝EYUWUXK( @o(iYwqK2TM!JxaAFh bw@%]! =>GPwɲdGZ4PކAt@SBUQ.wD6ͫYF6EPx -b-a 'LlU peyeg%̍eKEDtO7/"\i]ܬ^4KV/Ha4ŚE~7Ɠ)?4J(Ð㝫˙rbчp'zFqu!;W3@f-u͠MD cAKtP,50&>[͛PV1:;7T "AM?S.7ͧhrO/MɑK{0/Pс_5>$^~UN1 w!'rP|ʜۡt}KN}ǼF!1LjFj[Sa:)9 Blmht1sQȞ!p1SXQI`*t0)0 > KDbh ]nUT5)Mt1g6_]ܒ :e.@oܒm$Mn^Rq'y:\|Y`Ƭ?'.nt=<wC%"EYa{zh:12T狼Aiĥ!8;"jF;PΪ >S+U;R Gc;*2"67OW&MIpn+.T喝u5x9Qَܛ7ūdvܖU7}o?6w8HR<;vJ:J9tS6ߨz -@W,]܎-B| MnᶮژD77r䖢{ŭ[nLh[G|*,T]ԙ9;Pm"Qt76 h)z\jF?@anT@5vlcCfT̗p4QP[l75. )]̄671+v|IC9|$TvB;U|>ѿIORuQ+")XRQtE jjnӌOT3'M!i0 Ҵ:_ؒuG5[+Ƭ %0ς9.o7^ۏdMY>34%yIxTPKW o$E/@ediy&+y]e3#'}W| TA1O@㩚 ]I]E?o*à3PU >fP55zB1Q?i`WUI> >ך]h >2c"}0RrrVt'|nJaU> v&4y0djU N2,aU%BubU<fw$9,XW'۵$i~ܬQFfm,XҪ`U!*]]Lg9=;#]B2P$|с=1BͽLJr21&')mNB >vr e*weU,3uj-٣,mLVv\KXƑ5`*}4^TW-A~g.f62M޲V$+0w61*?_ay)hP· 8ۤ~nT$'z_W1vDW+YOTJ6\y!ѧ=)KSbI\}ѭ[8J TabJN;q8M3$(ڕ,pPAT3qu[Re]呃KDѰ7 .^U( lUSBx\o\ H]ܜ ܁޸Mŭ. WUX]7nome[o4UEFLʊUz7MV6U2jVN@Jw%<JmvxQBH ('R10~a% eQ) >O_%rV|UYjبfjTaj-6sp8MfדaY$O=c YE8{{֌LzNW:NdM70X8eB.t1E&uڬ8+edWTu!W"+xr dXHLV,u!Lr]L Z:l/wM(U޲f!^DjFݟM9DR!Po2w[TU܁޸߮Nc.noojbƋJ3{N8&>#<ۖTA_=M_/E #FM^(Hك;:WfHðHL)qf8;mLnGٮсOjSp,xŌASX<2x~Xb͐`{>h(AO+ ϭJD"&S`T7:6X/Y%R3DvR6FwʒjClpFq(H~s4US"g2UT57Hm(i9ŌIJ=uN"B؂QN!$5{1N ݩ=d)-SE~B怪vMVqD-K'+*]=C_+ gt7^  sYն¹Vw%v9%c_#;*7VZ'wƯ~CRJ"t2 5ZP[OOYrsNxqޤ{dP5 +h3Z|"d9FxQxcA7[:]Tk ƍ}: wɭ6OJ))|DMzsdI0@]`tW.k|7^"MEQV꠮KW,t |)y'J+vgS=ARmMsFVye]=j7Ria375(>n0*x+mh2L z Q b0uRi@e1ÑYe{=훿5? (KB&2}0\|0eiE2kʬڅe`.fbUOCpUshQ2ɑK ?f ps*]FgCé*|7't5x8NRMng0L2hR|NsC5%z@ŔcbӮ. ٔawtP2߻eFzay\!ѧ!Tت \"lAjP ,L,K@SuQbUl;+7L-RibF~EQj1yq8?x]2nrMb{Ń&> ){XhumA%nª!ŐTGi!$Cow0rwB3f@$Bȑ=5<}J>9LU6y;Tz4o͐z:K K[es[܁޸ZV6>bIYp '3.nuTE=ݬy.fĬ:%IÏC+ $M6ElT>,b,$(_=Wq'e~Oe~9^B}lV{.EVQtJ< l"{DY|†!lꛤdV8%lޘÑ &31D:g &309:x/0:> SU.@sor1NN<_y@?զBTA+0$;*,S6JUPDTW|CGERU+[nƥ^AhP85JGo@5W|"Y*KÖ(|q󜑱|wM;=DI9nL܍.nQ4wh ūٺBmy@7$LЬ~k:V9UXz T Uvm'az:4:O1j _TƍMJj[MWs-6++4]5*]6ke/`LE@`U(\d;hn )y\'zߓ(cHSJR0=⟲ZПk֮,D]RG6T砸rUtbHۗ`7zxY:ɮ!dPըlbx=!\Ȅ?~!I\;/lbo Ƌj1as[NS荛;9Vp7X@W0w) E{feg|c(<gֲb7>Qtx /2yʉ|9J&@ׅ- R*5Z_iEyȡif iY׃2N-n^ (DPv/7Ag6t'+46o`WBm6l1l9LdB*ٌ lT " gP') h"%ƒćt| ea*V qA5Ӡ vk hвU:&U8]pYժA)zdEhwa VӜ7̖垑􎭎P,+߭wɉ{a4 o{pOEu┺%/WQpAMt@U$~!K CS_CұK@3<@?DUɋ<=<͋8lWcjmT uܼњq6AkPPfTs'ܭōt[ UE5w7nN&~FZ];:^ŭ.ڶͺ]7RW s:T][^P mSQ`NWCwqVc;{8hW렶nWx36 &J{%Յ7F4eA9U IzD9\܍.nv,Y @o6VzJpzv!mW7w[t7@s/UtopTq_>$Ej@2 &Ⱦ!ǘDA5.FƊ3qg1gQ}@g]bq1MPfi8\D}G?Aɪ . =:S4:3ũ=@oۘ7k`KTe`XTxɳq{4( %nuf8װع;m'QFjF AT9 WOP1ZhrN&J3 !ͭpJ6Q.ԍ.nGƭ${[xw[=PH?ϔF *AN9Ww6}P=ُ@FyX!ǛQY^)f0-unTSsgu: >KY҈TYt9YmbwmTϨQ+ohI+;cZ܍.ntj.n @o܊kھ1+ltq#!ELGpzVy7wMGTN /`%eP7(UFȗ T%́6Lp'ta[DVNeF槊 |GgUgLyAW ʀn!Bt5|UMn(L^^>>ܼ\$> &K p"=Xb)Wv͚b cuSV@vuj6?`N,09m\ @a=E}VWUSnč.fMRP}R̊ܧoQCYy5S iC1^e\ >''&>ǍQ|T<ѨF#HbcEQ5ȝ|Á7^*)/Br-Ydf %Qq@o|{$50Wa,5Lf t,]zި@)pS)MTF sJJݛ ]h7쒟|P UMJ &D6Q 1pi*p6aW5:PK+ ?069>}4`J%izcLj}Y/6fɉnfgoB3l21&쿼Z#&A5fHqw*w B='`Ĺ ZvBՁ˴r,!ѧ݉gS](uSᥫy+$|F˔wXmTS5)?(8kSY|[}b8DYŭQ1ƍG܍&x6V:u[`C*{I &˲QZU{f>H=ޔ]g͖TGuP5ǠXJk$d'BuopR3v PPf;`yd 5_g dTz5qѝ60+U5Ǔ`۷j6ł N%lYU cD8߶`GK pEqq@yuV]U’Q y%.4 #E!T94O4A%Icd oDw */7 Si.Iz0tadrapkt~f P\а"/p :`{9U9C:XbOVWH"զ8WKm+z.rǨ-U#%~uP?Tp'P}K;N&Hi`EDPVd/ @wJ47AO;/oUVb%T2ӠNCfLU.?=ԁݑ7WFŬƎ|U f'x3 s ăm^~-ՉF\E)$opcFp`yH*⠈_ >|Nt|ae &^A+Pd+c\͐dE=BvBP\‡8jp$a\ː_cX=XpzVl"F5w[z{B/@75| 8U u'zTfWܬ[څ.nypUݸͽL r!UbTJ OJUx *}ګG*c*V E;f:r|ڧjSoBLě vP=FAȬ@5W~"d9F!d`ƍDM)I'V"6w7noVq_Lv3 4RoOr 3BG}@֨,s*Y^"zSB WeAV"&CjFY!- >'X&(N8&r;*iL-cnjZTA{jUgOCR^0Z7( >V`PLߵQ]/2F( ,?Py {dv.4Ct\EJڽ .f|ooc7VQ>"3bɬ0.w!k0U:93>f%5sDx ܼYML^l'ox\;So+Q}(U%,ZBU e6͐ԛDSf85P}%Z Waqwrc9A8dU@C3>P" vRu K[Z'@oCF7wJ@oܺPJnntq+T0¿I9ԳgMxaRFmXy>"rtpS\+^>AQD͐.RFɩ_hqjF9P\=*\ v3U堋[Vzv`U F+ƭBWYYLU~^uTG%$J];yLʵIT5 pxq*}KET:x2CTf/ȥRq ̓­נbL("3|L RC.Ve&PړtIj ٬jdU@D ~8Mp3te6+.ll76)$7F3j(u|ăQ1 q+(@:(N:xPuj͐~)`~|BR: 35;O~$"CC a3w9o۠Q"w[VaԿ|Wŭ1"[]Orp7YԏhqUntqʍ;͍ iA;:Z u'T>4&ڡlm‘)p)z@>\ޥ3>ѧ]{ x7QC2&.1 3Pvc>ҿaj9jٺ:XǛjDP0UTs7f̤XYIpjڹ1+ލˇdB}ǵޘlYHnͽIdp\s6^l  J?  d>JFr24/7׬-xHiLVq#ad3:ѧ@:u`PܾUEY`iC#zt@%ayY*!99G*qqsw"2;bVl?@o*Bžn7(+pvg! /Ъj#ef@].ХqNx D)JGSm|BVruE|{ >#3iʬcpJj Ðm=~0s\>@E%=~͋K1ū/>=_8ͬ/ؤ;gō&inE0';Hd%nP$Qe❕MyPF)׌2 k5_uQ(T3[:p >: wK$jqPfcNI zjCfd8HF1h2scG\071TႬ5Kf؉M|ū//s)Zi*|6sz0h%j||Afa[c n]B**5Z02 yO0$x !*3{y?TT2θ{az4ٽ#Qߡ'eg'hvf0HMJ?YֳޘoL">X M\jxo< +0}^btHxyQHI$d>eo9 oJɴg|?":,48dKiКFꍨ1G.>j$](.ECұ4hEiJ=<@KW:"zx#:`: `JD^͚bԘNno0y[MeZcÎw]d%XwAk|I&luFw%R(QMuP~ku͐lćV1YߪQe/ Q\iH A*󁒖$8bV{RDq-Mnf5E<8̍.fBwnf*r'F57s_)Q*+$ {1Yeщ>!EW-UsɉjhtÐRD!3!.A_Q騍"^G @4\nU]J֡.[VuAϧZzB `aRQJtA9i#ɴE`ү*ăm^M RSF3lJer5mtryݣD@"sRƑvހ&HY >2&SȾk)tPC [vRꦗA*>ZdDBUX9< 7b.^|{~[uuS5xU fk*ν+d=F/u =V7ūIܞC ,l22@Ts DoOiGN. jRՓw Ǯ7ި"=J%Arܵ}ڕ(ER~f@x& T5Q/Lj@M*#9ynfYpޘ] znfL/ǸFudfNp1ʢ =Ot̝}]m>*삪D"(-⠜F0U}ڟQWN|(2c  C>Ğv&a(RJ jQ>-au T5J7DVfOm>QF䀋NşޘUmY_V;ͭ,"$^{ć{3*:zAO꼺X&%Nr(yU4AIV?DR@4 jVD3hU,Pr,H AgU؄ UQ=hձPE`:k= ĈOTYʝ1%`U[,9g1U9ff%G&~_L^,$oʣ9yL^Y߼<"3N+TS5!~n4*S-Dv%lu"S͉WנԪLeW>Jbٱ i*HBQydY@-'Ø4xB *ܫ ƭbn܍.nHotsA^MaLY4\v7f_{zy#*|Fs:/\ 1jWۃA$$34]jua]N)*]j;dpl쑿4]`5g@>|fxm2 hq*ET泤:@]XaLVWM::t͢GliITCRF+>PSZ b!dzM8\ZPLB&THMQfÐӎpo+ ^'OEbs|y7s7f9zl_n4U̕ UU'T>i|f âoܠ ⁶탦x^C%@X(K2Tۉд >Q!ƺ)%KixOP)?|CyˆJ%n9uRV)n+Ȯ߆B"O74*0lTTy <o@&1;Tur &gTl1zcvFUJ̦݉dNt3>OKj/U`|ަM!*A"Z,5XA"gB}ڙ%~[UÑ(M%[lն}ڝJ.ݗF AUhR|TMfdΒf37 퀷M5sYGTo37Ul+*/fF㮫@$.*)PMS; &r+rq\;LU?+TrqWx&P3 r]4P TiDoܮ9PF+q#29Q2Ƌ(L}Gs\GQuK1MJt^ۙeQ*ݘqNl( dOuaМTVY :('TnC{KzNK('9s UG0c1iv&i0%C?1+݊;k0Ju73z0sɬ ,DЂ~WmTc+TvDMAO;H98܅䗟[Sq<:;59i}A/} ]B T },'p Omxk|8`)h,0F`?fn0q} @7^,"cNoDo̪A`2B _I'Aﷰe& p`]UI5>ƤQ]N>cS$ZwpJ;`f.yڇ:zh*h] FOCP;>GJ9]*@ᮊ:nf%%0yUʑsza .^r} חnpXj0w,J!Fu7 Ui8}. OiItps5%C[M9y^ǝD8\QHL*Nu=WfHq'qW1P;sɱRxjFU5WFd@'jYtqclz[Xw5܍.no܁޸xC`q7T|}:ƭj}Ŭ* b[]*:AsSUΥRO KŐ>Eç#MgptUtǜ*kA,J5< >SC#R ōR{ۨ޿FU]NaԿ|̚ʍ:,.n+W斯FW~DM`2*q?Fxu:.F3+Au7nE]cľ-ŭijls"pMZ6";+V8hEJLҳA{T"t9P *2BWOt Oq*L^x8O(nA$AJ U: -8] PǑfV%*ҹ]j73fVcŬRv"lb`粳 1x]T~SDaOlg Cs@W;TmFʽ$na#AQWTx!q_ZNCݧE5A"313@6?J^nNwQ m,XdrzAnV˰%kc}[{B)N2]HJG~@YU iPWXa)PdMfOi*Gp&H4i;cRm$5qs^[j@*NtW}:וfVi.֫tqsP^ƍyf sX\ @s)$-񔫪 H*CN"]O=:T0P/^),'[23=nN@"T7j|U5IBu^WL m|u@J.^-l?6ܙ*V{dep I` &#"Oe g7H2ux^H[C:dIʁdqZO1JjPؘkŐa#YULntej@ Yy'xQ Ml0"^5YLb;C > cd&G@`7^D9~05.^GO 쨎*̍.fA~h|@sq#)M "\pT[&Hiq !Co˵KMϤLU8.N(5AO{uNhCRy\AJ6*WY2" l5|`0b8]̺i AYSx1cZ7+S*dVj}';sư$Qi{ZSu @ Er}JPA5`q^Ii`9[E ZRcP|#H* C~j =G,Kf xcvǪ]̪C,kL u7n>bF!!F<`!DO$ _;P@ |Ԛ 6ZT! (&jAJ#'!ѧ}>Zdp?nVs]MeQV5yWQ=>Ph [YRuMaƌlϪ8 &y1+ψ6'սꬹdVW2Xx9~~[@[\Q%,]SMnGǰ1qΌ@ $*55<ǽ)Y-U]Ū N6\ @Ua$3ʱoV_IEҫAiPExUg?t CdcJ7JhWxC_/,,ͫ>*9~Vbra0w/iHBDq2DLs:@&Ɗg3f>cWZ3At@(caywrpd%5ͪvHu5{ޘ1WX.nũ4_,sVɽt:PenLۅ1.vgpO{/;|?RwuC$Hf\aR >U+RYb+O$n`r04"ft'?e=8.,y9`1V^*CJ/dV^J ;ߗޘ Ss`2ss7fN&YU) RU@s?ț)Jpat 8 (J]V!ӞD"CG4CT &<*xj20I.+}ڛ˳LRg< LBU}4Od(̓ahtX=>U, 7Xd]KZobWN6z/PETOGM,%'ubD.Yԗ{ZATAY5; AEBN3$,+O qX*c \J%9PuP^aHQW|ٺǁoۨB&f|"Xi '$w[}ZJ9phV7n6, .Fjf;9l7nZWp謻R~D[4{Uk F3[6dUeІN>GOi/ڧ"eɕa R4a˅g|OTݍקi[+Ġr5*{#gxC~bj쉋Ū&β\*DY٠,׻gsYqaaB3v+RU2 A=04|ڙ|U| y.B]=pF''pcRU0[%iQv A)>Z%A/7 E07߂v}71COwɬn2<9zgY>dvylkS9ܗ [HGʀVE DA@ULj! Oi_J1&DΥ#wbY|4y/=C2`@=`x@)K[׊YHMIծΦm w{ЃҔ%/܁!t-973lr2K3=Pxp|+W΍z](uYfH6GmCURb^aH׌kQ~"6Q3E? 5c~Pө9o z*ͥI-&0c*T=@_ @+ *pֽٴݝc0Ќf; \%mc0d0j ɷTo@v! wXՑzc{Y,a=ԸzJ)2)bob[^g&xsVhGVz|AՠEA[f=ę1?>7vym7FIxg` 6Z1̖Ŏ.ʿ dՑA!yaM':Wue#;ѓmO9T3^JYwgshVCWw9[G+0N:bS{ ӭ(u}d%q&yL;\H؄x69@8fښ'zI *'6l=~OKue$>P?%nH6m=m2'b }fzGLr0b6 Z_ydVAؠD@4y:NT:sqESU:0-Dtؾ:Y.a]aeZj ,@[#}x,i4†mU3-~A \ m{:n]sVვ`bBꖊV ⽏"b kd2L` `,ʖ-<a&x߼H|B#AX;NτUI{ jAGm@-yK,OsuheŷM7C'&X/.y@_8Z >u =AnY{p|1ez2yЃݖFu9LvS>7~VGlV!H6T0GT&n#7zQTo3 CV8d{Dm; FiKFXl%-4C d$PFu0z0s\R({oeDMgΈ7jpt܌8rP49x>![O eyuAoݚl81םȭĭp Mu D&77xixZp|N! IhPמC2 }HTpLh]%9YzpZ'w/nAp%==pyF苛B_df$5;c&YKi,eXgV_^璍>a{#fOƸHzޞW219]1}I*9 Mډ'5'ZB|5Ѳ)ejBv>Yd/nF'ƾ%R΃;77jHl{k܁Q#31}ԇR(](2bVfH6tu^-oxp%n(- )dfEwbj6C+>:Pnwrzp!Sm7ō=Ed&.oi q'/UkLt=R+σ򍃾 !¨V5Ik؁,5G>+3kXkHTF=;.D7 fYCxo31UP.&[f(Qҝ$-7qπ5<>QzO`VW^Y!^o zd6/wOkF=JtlМGV) GlQo=pD$,-`h'J[0'zEEf:Lp+,P7 ў0ցgJUDoȾ"4u+Fw߃ծ)ٷa{'v(A=iLl@On*}53&w}q8260oJg3z4g >ò$ *ڵ~U 1\=B:sĀ] ̍rAG{oDoX1Y|hǷ{ ;xo@O8ˋ,* mqr^gj_G8m k܁Kk{ЃV8pB恾9rd=AN!j+a̙Zc7Q!fQ R`ɋ <%gZ`?ڒoF[ݨeM)^!H6KRv'7X:glJ8؛ @( tXLV"oOfݠL/}<1,;Q} xZUo%0D~(#E<4C@Yus$zAADנF.\Qn|FCپGTKo.]{ nNkPq9fvVi?7zps<-f0&/U{L[t`@Onkhr[ qu6wǎ\fFF-FĂM0jv`YTͺ>nlcWEQHw@o@cu}׽hYB2L]TkGx0-<Ձ۟۠egc 9nx= -!nc JD_Ox/;X9s͙?(+g{YMmIdLr= Qш" j RfIyl|w۝͞jL3J;O}5k`atA5G։}u'?}0o&36Vr5"Ose)Ї5Yժ/x9﫝fVwx/^k&o9I):D939V*FȨ{]hX9AP] Fn^;ڶyUMD(0*RPV̖Cf3 z=no PA^\JmY3^f}z9QF:X&=OaЃ~WZO1s个7HsH|Tt~td2|gG7v_/69Y?Ճ NƳoF}zPECB@ǚdRz/cz-7ȭ] t@'f P8m)R`2zTs/fHC^X*˽x}y|%/V7b^' 4O/aYu`S]X 2{v]m.(<0?yLF-vXF!zaH6q[4B7IJ!3 eMIQrr,`[=kUu<->S=AfU|OfU(m{z0Wv!'gV9icxK"r尚J%U^AŠ"5/-3t/@rndz/ziPbn ofH:3rFWoםPw{ ju`w>@7ٟ]$۝φeЃH[I0<Ǵ~F=w]/noݡlMnmߨUys'zr۱4z_zY)5f(=_EDGI)ڀ ja65p;UKaG ˫^QPSM*[ CX0 {z+=|r Z]Y@OѝE,ܖ-mm:ſ=ЙWK]/n/{尿ٜl/@OnSmyro49RSR~(ڨ+6gl@W|LNyh6ˠyr)_m~%f؋{ЃlPUesֳhc IRf&0 "q}/fˮ j|@_hcvR96<`0!^7s믥: 20+B#g3n"H2PE|Jtc 8ݘY<,Vd!Q>s3=@chE,BDOq_Ȑ g+ #Ōd0uQ5@_̼41վu1@Qb [jϰ#Ĕ_ i9WvJD3҅8`qPx6Fq4PCYEZ:/UPb%Î׎!;K_b8=qN-&dE ޫyЃ8zm9Yh%̃.pF,Oup\kQz վ#*QVxE6ALQ5cO,G5^!t2EѨG2~iR`ȩQ_as z0ﰇ6Ɍ15%N,+.XYQm.0yK!{xr4ԃw5h)xZRx VI5\P;6Ő~wZʅo{-8‡Z-Do3d[NOn/W텪NT?~^ڟA}ڇeɭ)]/r0ⶖ+T==][pⶓ<κ[ߞ)0`J+?τkV7:DrU$~) Crdv^3Z`،[ =H:՟]WvҍQ傡SVձE1h٥@ݟx${/,xnFFn,E-rAX]IY V~rNJEtOV2֧=Op`5rfG cVB ,qKF{k9[w]ixcUN#QO.Q3>(_f"V`j1$zg4` ]%nƙzAQV!h0C /&]T܉t{zp|~]/W6ypzpgR3AW:h&2U/K(6Z[BY4̭!|2{RɐgVX(NC]\ ^-jՊJkYQoT 7pfV9p@ˎO/{>W' j۠j!iĺB]EmcT`a .qǩ]ڍy[`SnaЃhYa *ctyЃ719W$:3IR<[˚+єV1Еpha 5NyNfHXYͬ&]x^FVQP~SΓaHN- IGP>-8]#c\|} evMt67{}j܁FZ~=/E+6w9RʩuRKh[uj,0$zM^zXɘ$6P1{3Nu>rvw.Ðu=b2#Y5Ϭ+{m·{-K}gFXo&$Z9==pY!$dJ܃$}q[ "B7b6L`E=Hìs *=liU^Da,Bˁ/6C?v[.rh3pSCbosSg7Z<-|QƳZ{h!K7?J\lĹz` @e`UMxZ#,89I1:8;8]j.؜n1?gÞ3(B ^-ۅH!\7z'?DsļBW*v[k@v;[\53\!%B6`2G>֯?YPyñ\$_3Y7Lf.3.A_̘h&3oB{7s9\x(j#V#hT5j3?e|<'t\ RWm{RcMd{iR, CGso`PW|j7Yi:6V1(B^CyߍΧc6i mg\mV~.,jKe#jF!Pp(b|qm4Y3qv܉S !(͂@θ 6JoyЃ[͓z/fE}Z4̃Nu9G-uO7.`?A/MSkosԤ%3 Vk4Zuub ȹND̰BZ.;4/ j=/TEig?1PemeЃ[R ߙQN<̎mZ6}qIɭe;ќETi*4x/MA/Ӷ*5+SL.gl)5utbBCu3 ᫂J1zcݠZȎ:>Z„;,TbR*: l'WԈ%0̉vc%ʄ @_*٬1+6h0K@cjvԖ]-Tٗe0;=.<1W'z?N{y߻۔e&<1jZjS@ZRHH gq;6@;-zº{^E2`0+BVP_a.5Ne6]~q6q/fk-+s0Ys5d1V$#{_ɾ ͙iy8l"I$A)[`7hlDos<}Vp%\7уuucT4n*.6/ͱe@U$m0m B`MΙ_=}l KVFc/X=ȥ X^;{ɮL;k[!_p_̃&u@\w-Ή뼱 %8wq2%Y!: :l(@ [vqRL Gnn|sJH>%6nʎe|Ѓbʬ3̦&^kjůp'|AfL]Ut7vbKyGezO"]p3KX PÀgf#ff5T&r<wؐ,H4l= @3]x١}YK:!7=&OuծQ;ش8Wv"C|d4;1ׯ80Yq :fKcހjl)63g Jbvxi ת׀VG8rDGKgN|w(ԋd  TmBYĘOZ0$zdxTNgkL5/Q5|Mznk)so1̜Q }3VYի=m\W܁!s-?ය0Znn@_#4=܉<ˡ"#6fم2Au~& < \4ih-.Ä$ "QB’^EufW#kVG9IǁAzA=~Un ڳdcǠ3]UfkE~ƶ|۰A.VF<\jQ 0G=>s8*K  ZԠÄo -! `}C9J 9FDo1c>5㺵qlP$v}})>Q)Xz:zfO\W867`2P(I^LcT7FO׳d?fiU]Q2lnGdbK& Ӛka>( zZ1i-Do37ؗ%"`kP@:^*<, ==T(as&t{.] :z?= 7Ffw\gZ^ۭZIǠm]á,EB KU],1PX? f%ؘMB6bTrhOG\Bdv8e[<0.$pEG_>"$% ̸q^7v"5B.7FɊ6s8Y&9爩3#;yy0*F[+r7c@B 4DOs})?Tdlsm\}~@_̄UT^ހlQKRx'Ux],mn0x͑U}+gĉYI(+YVf0Ue*:7o?apUUGoV=–d6Zp^UգaH6/-N=YԱ: hR凘*%Y&xqŠ6=2:]l6?,pl4k}qW1%܃UWnw/niiꧾ=CD5@9dI3J51uj(^j5Z}}bWFɌ,}^*hz$A^5 6uwy.N6p~>v!npJ}@U *#G/0 M^l̬1̃|qn -Yks=q0 0x2W ۲O@_m֐U27]LZ~S`U(\!Ǻ8@?0#lZbk9'r'b6{E}1Nr\=V,LՓ9М9*yqSTnj3|;osCm2,KkRo@,!@@]H:0.6w>\0MZ׏ۺ"Un>Il--;yJહ7 Kޮ|؊šj']~g>XZtc'' B ` e m6i'k+.糾2j8Tᚡ0ywEٺX92vv=Lfz~7=ln+*dm2M7V8xuDVrFA={.VK0 =;J>1O/XH9*4p 1<{wZ?!^>,%' vɋ{I`&wa,D_XeΐIdf%h@M^޼8˓I &") c93yaj$ζ&  Цp:lDozKp} qgL':YpOO»FlRtˏ*0P*Оd;'D$qCgHx0j}1SCA=m7/6:wr=_T7w/nk Y5A.t'u9K-mrLW|6+{/(Bqɕ=A9j's(וՔ&eԮmIo3ԾTh̒86Ġ7e#$’ C5}Z}:%Ɍ_L7՛dw5Ջ8М?t0O$P'4^jzp0S :0W'z=uwoC:^Ԟ9z0spcYoC0KQ.őR"qzpdEF;P O?}~o?}?di(U?Oh¯DyooßCX5RJ?y"哷\?vϕ#? :Xf>o?qTfӧ??|́},ė?d~f{:|[jom-1AmW-6:JU߿|[_ۯ?(_}W_T_V?_?zs<*QZo gU'W5ǂ~1_ {Vǟ/?/VߝLO([E~_}*N_w?ϟL~> stream x^3T0BC 01ԳPH2PHs!M M, i643275SŧJrR6 endstream endobj 16 0 obj << /Length 3128 /Filter /FlateDecode >> stream x^Z[~[(d7."I)@OQ'ukTDdžoB-E.P0 2ܝ|3{XB("Ze==ow~tTen" B:^P'JO3`n]v;mWi&q|iqXh x?BæJKk#Ē5ש.ł{IasF.M^gQ.L+TzF`seR:[URE};U‹xsZMZ="0 gy!_%B 5]ʸOv`/}~Xؽ4fXayp6eqo=>4k"yk޺yK/~Cӧ_2Hr];€ -U4Z/TfbH3u:Ui(GBKi&h㋇|18K%mWiI ,b"-4DqD/&n\C :)(3yMPJ%C :4@gZ#->wo/iY08m*52a&tM81e%RBk?ԟg"$ d<\C4E\muȣ>ʀ4k#JW?Ta]>>5ůDqe2?ْ'|?~sdl6]>~:SS|M?tLuBP$*q[{Ez* =*bS^qZ.HJv^)w!=j\sͽIa9r"RJEsJB9_ٶE2ƶj$.FXHܑ;kvNՇcw0y>> IfS#jݴ"P9"Y( lcMSFʄ!93eRKn_:RD1LQg:~%:9SR. yi~FXcG{uJBXWS(wN,+ `i g3wG)FGEܥouE.Xo7]$_ov\N8{ %/O[:}ն_Ve1_t}NC< hv( W+&Ex]|& 4 ef3i4a&aCo(l82z0Սo{);'~۵"xlHzB^"GTD0 ܴuu-*ivpm7& b,%&c84$%(JjwN);+9{L rRZC o<;AŽETٹ:݊sd{\{IG%\ERn3h:hfi#!R\\m޹guwVQm/'1wӮ~:XF1]R6ΨCl'u@h<B]nSek3Pq@h푗| Q/e/" ULDf=ݿlH)}j$UhrFnm9]:E>Zm; b!TC<`{Ưm\CjwyYO۶{4٪ͼ.u/oZp~-9W 6-9Ʊw:ޟNy\d(4z){E#+ko(j_{Fc<u)-SX|p[p̑*YTHueQ\lpw_T_, `F*w0t)eOV3^lQǞ+$UoLEkr`_} ktcX*p04*ޘhMXG6l7]nhW*I86Xh-Pwp*eKa9tFHN܂cB*JqkS!d n9t~> stream x^Ys)V Z-;yHEk+)J%fy(<֒i}{f[SJe4zuOrq+gEQ(On#jOG߽IJVai"$FY29$S1<3IXRpNf[:HrXVڜN%FT9%B0^*dYWb\+.KGoϛ%crV eXä-Uba@TGS*W ,FzO )Y-J.`MdAkSed"gQgZećB4׬$a7ta,.F}:y];A)=ˡPRar~9rˁYV׎C7(T{GOg~Xfeu#p{& :Cd(2sjq7^WLJno×HW#H4ϖw<޶Rjvj͖͟rCxq7Xgp@B:Tn=UzZ>lxiKL*&z-'~:"5/(ݭ۫BU^vZ!Qm0N 5ގ7& tG'nlyu\s8crftY#bIƮ΍d^M!F|^k$rC9/\g!ZK8۞:zvsۛ z„ DazذQNߍ `w`8utVV?:7 2[Vg%"Nmm{tVN[ /6){˛x֋|8K3t?ʴЋſ`\sJ]?8OZlj?[CxBMgVvэ0 1ZvuMwmq *U'b6ic(00~pڄWʿ>"g8!lH vKa5t:(pcdY~~38@o o", QopV\OP7Z01!,% ~@qJb d ͤ#5ǨL8qL=-ұo_ 0,|ܑҠkCVɌeJ𝁾7θe 'mO9Ě {!b<ai?k"[ /k+j  @ƊL4)',YY"P<\Ǘsw'^!; PxlZyPad.M4A" %JD d̓ )` ]etAH+ay2O~#_ q}=\9M핕8$1O.11l}۫jlQ:w>%PcE"PCiS}3 7\?W)kNNsвY-zxEEKmDF չRDnTB NÒPY#, Kncrھ=bc3ӭωb ׾`rOC{6t%`dU(m==  Rk,# endstream endobj 41 0 obj << /Length 3310 /Filter /FlateDecode >> stream x^Zm۸_/YIPw")5aIZ(v=r^3|%Ҧjp8>Pl"cIQb.poOy  2)WEV$WŢH4Uzxlzsw3ȓ2O4 Y@/?_؂󄕙\XxC?}e ZnKd mEt =y~S g&aMyVTd挑aJ-rQ&Eʸ5٩msܟwKLo+ƓY'u*ӛoVo;3ּC`e-V,ֵb<\դ,XEİ<˔; reDHejW+oJ*P"SD8a̕=,")D>E-ss>X_;D`rjP[7$=UR$[/+/ bg}ޟv8:O'GB{҃c V.'㎇c_";ԛjbCkZ]]yvڗr6FΨ{ukߝ@e(UoNV7m~H!TAX^ɩHE.[˂ ȳoڮ_yogp9n͍F )gIʁ>$ҽc_O#͇ &U Vr,A$m N\zQeECy"K%͐3Rk%!l:Hqe.SӄC~g,AN/E$ Hq - y#AWoc(?hz_0. wO~}aN_ -J*l%ܖ c hm%,8 :n0d낑e DFS VHL[l5HUY5S8Hg?5' =.ѳhiD 7eH<ۑF$upN iԜ?p76-mzclʗ!>6|F7n~*r {WHM{|8@s қYUI` iSeh=UdMV4.Y7}uU- 5oݶ%O>hc~|Ю&(b/a 3|y_QF4kacdwTY,La ?2xȞA3#ĽYkiWh2A{UD$_dNcְZyU ECej'BœS#s'4/.Nع&Ok;m3l'432Ozbh 1󾓙vPߑx]EIG i$ 9gWiweg(Wz1m[lϺzE(F)$ 6DAg`"nF/7Ȭ"%el5NwbHNAGo\߰Gtt$J~(a_lncnXr9ln]uNkkp-F.=:m/9gX@W}p񼋑UM#wGN (l!tEf.tñiA}&f]#kȂq xoa BE 8 tcWm Kמo]d"Cfy)8(=ܗ.NNm7{fjc +s@zN,|5y@<Έ8=V[fw>(c4g@YC>y]*jA]@a7K2#Yn讔z;iR#[]lI|giTHtLMn 4I"uIZ(9Nɚy7tQ/KՌBvσccք.[4oL}X]آױ 53F;XXus8cScS~{!q)h73y?(/N,7MPb>>dCF45 &=`]{ҽC.5%PB?( "rw"p)$"ylFyF'[ }|Cd/6ȡ" yJC;Ǚp]xD69<Y eJ!rﱈqeㅎEgNU./}sk@{_T8~LJN?/ MnSݩ拌^+7r _,~=&&s|+شwL9Gͤ#c6P"r)..wL 9q`+J%ʸ՛u#&puf5H`3krpޏDSG[OG͜3fz7Sۗ>Oz*cOYи2sg:[ Ү/d/ V LVH~ /~=[k{DиD:nH} cC#+ߌ8 |r9>[a,6v0\7ړó ٢@$TVӼ/q6zJh'\nUSnioS͐cmt7!U6Vh |[#Sq+fK endstream endobj 49 0 obj << /Length 4762 /Filter /FlateDecode >> stream x^]mo$ ~bf'yAI~H!I={Ҭ_^_.FhFpClR#J(R&*u]m.^k|Wm^7>뛢ټeV6u,ϛ~rYuZ61 x:lڬoscyVu D]G۷-ݦ(2WfkEkUj6o\W_}V6Ơ]-uȳ0)ڬ+dyP2m[Y’zgBs@9DSYW@!l $@d+d>/[D>w,$Bs ?F!?§If=ϏVcCٶ DcmVm5*9Kao~;;N6=lzXXC N.ͱwJơ *Ul΍Y _e"6k/Ot.0K*tí̛Xa0$M[xCV߲®!b=!XO+eIL ^ ZoC"X0;Qb#vNl)ʳ:DX:#B4$M@0c8f•z 5n衲 -dDD2~k >dN X#}xs!6aH$ca6l"E"ֲ6=r>uA[jBXkAsxB&b< *Uj. i8 6ÈR2a5(zr8UNx | *ˀ#S-^B-;Q=%v dɁXy܉R=gwK=6yv#k1:FJ$'aִF345ȇ bra Jz)8B?h9W")h'Hkb ؈l ]c!?99M9Kg0AQɀ0cP!D.oqsdqVtʑK5"b0]pd e=B0gتmK.TV# 4{beM9Kd֯nAYˋ̻*lu:9SfMY’be2qF WE 8Q٠iM0QmC21>gDDY7bKOה%ʭN:|t-lw8w?.NϋlEw~|?~ zORIyv)hx諳wmv4maP!hXQq`m25R.ߘO0>߭jpyV넭 PZ kIc40dB$QnU>4qxt1á( B:Ѣ Gk/L0<)"2LDdB~+#2:L!CƻXm>gL=qaqka,{ynoA9?AΤWLD*bCtPlc$ao٘ #@ls1q]ۘhLDG55ڊž^2akV',q:cr;Q"%6H"e6 Hs7bZ!H+|V uqewCPoU߭qJ{ ЀƬ?̇B p "c*]윝' 8bVTEG,yhC=*|:J_"jEL49 G !ҹˋ@jDe|5³sh!Y|T6Ua:oy.곛ўKN%g󻧋)λwW)X( ]TN٨\I8xԸc/ ,F!,4EM "CD_*9kVH|`c!?MtΉƵ43wUb3:e7jPc-W0MU)'bv Z"֓Պp?(Y!A'*eM!FvG6[nUFth!fC Մ5-A3N|C $]|el_B+.qB(+U 7P1NV*[.\WjImb M BO磰qS2zۉZRG0ށyڔO򞄗cHt+:PV.Q\㓌DDd 9B-!,'U(V eRVh̽(p/`:{ؼoU!YˣT"d (G["lzDozeeM>AWK$P[^bcp[h6ѕKlb< v?i)["q A?mhʬIhcGt[?hh@wx]7ftF$,j X'Vz@njzBENA@ʤQ0Q bKUUduUy{co;3w)SAB1S R"?:έ.CH,p#FmeO?gG|DsQUd6 zBM(;qfq/К"wlEtc3*8F.E_ #FXqɢ@t0A5oÎ-/jt^FdIMVE %䔦}jp#oZ4xJ[DWbW@Ii%$13)*0iJ$6S4<;WQezgecpV<*QtekPeID|chnwynβ-:ua=qAH0@͵Q*?Jɳbv#=rtp{>`i.:.x}! _c7g@TyP@hpm8?&O;.1!ќǜEHmG9=m@8E?v%pپ'Ullp鲄ZU31^th{QP6QtV!yCu-w+y+?tw[_È?v3W㈿/vJɠPYgS)SoP7FN4+D ɤaNޕ,lVzXDeܜTRThm-/틳-B~F6@'un=-l#}sbnh. ;=R0CjoX?X0W;o7-ev//R=~r_\ [@N{qj@Ĩ;Nt [?įu#Qc1AMl1vb1D.40ȝaӑ0l,?l ]l 3f)H\N+Ͻ v(5.Ki psn)^? TJ)V^ID '^&CkbR &kk~MAW0ZD(A{SSq-"U7ƸNt1F%q=78`ɬy*%0ZrXNPǸ|O gF[⦉/!8\clb&g‡}qbe&̪a3N<^^hUx©6(WB$OZx@SMms7X,8r>qmZ]b,9ߢM_d DPhTm$AhSmUsvNld W\.Xp~~ZT( RN.ʵx|CL>^ooJgώs)  !Fg|jdIgD^qKsj|Q?r4KQ;<wȇhxF/DWn 9SQJ\$U pȫ=٬A؝V endstream endobj 53 0 obj << /Length 3130 /Filter /FlateDecode >> stream x^Zmo~EQ@5L5)"͵qwAhY,9_{3BeM*"ggggggyHUY[MqowW0YŪR},S-XQUv-#]}9 LI^XmIۿܐX&YΙ1~)Ƶ*AdKٵEXf ]E嚄|y.&aVG+V.mg(fdl?|ˮr)uDWj<\E=4˄:k5$6 oXb#ATviC 095iA+54gm>Wq߽/ZmbN\cE5\WLqEIc#ۍ Z7{j]lu3|3.BVRfb%]ߎ}"ȧ l墘Kƅ~2<߹Ahv΁27'Yr&ErQpnޡZL[lZenN1ZAj\ow_ܼCn_5Pgeb_9̛s ^S!]o:Ӆ) S,I4``+4k*T*k?u0y1oPu{8$F |*#YZkJa%C/4L"`ſÎ2i5#aX7%D,\vĜc&M X!)R1Ԏ7azN*!t&s֌U"hGkyt,̕ FlQk%ggL8P-a\2+INXB*Bi@3Yc0WY̺GH >d^RΈ?7ʵnOO_,IG \V.-y")~^H`BT<5a:}Ԉ9aʄ62[i`I+4RPwt=STs1W%8;vAKnCuhJQ(4AGJThm-A+?AÒPIpQXjÒJL ePNȟJ7 xtE*S+ 6 MT Nz~|8ȫ_{' "ݣq#DMgÎF HwA i,ϿOhc:iA[KWx/|b Hd4 FٕV~GIZ9 Uz#qZ9h8of\tW6`E,tK!⌐%:qWtݿo6MSooq?v1SSSxhϯ}'Z?֛v6oOxh~:|ᄯծ}k+7.R:QN76968mHz=C]L=@*mTnOtXny4 ج4.+ SO:}Je|0 h32DAt h.* RȬp_ŏI)UxV~$|&v 2.űK!/$z_X˛GC2,uIhY%'_GJG-O٢KA%_6u h> stream x^]m$q~b8,i7@@ } ij;Y)g<|)dzՂmu*>fM EC}|Wn>_w]o޿DnbheyUQeQyneR6Eي<5BlbJxMH?Wt) 1f'#B4u ?wB -}2yGDJ[^9DUCїBe>5ov^__oWܾ>Wa^ȡ+tsThh"vژEU?1wT++P6}iWuѺz6t>o]/7;mFn ^C!Qгf'kۺ0dQ6yUU/M=ߧ&,@3Tz:=|8/?~x:&~:_V~ww?hnǏ B0/Ro˓. >kd03|ؑSDYCdlZ{LXP % |E۵z|P uPJVD"Խ.j DMG_MGZ)N;E߈J~(7wx6'p7uUT*6~w#6r"=KMIޚreYT0MU4]|BQJֲA~5n6}QI$•FaWro+7X|U٩yjE6t`g*mTxڠzȺЮ6 .nX.VJWpqݭ֦A!b7pX=PzrXL 7 ~km/G{K%(:vt4321_WMe29?$[]U0c6绝L.w} z\o{Hz6[8d3~SaZ E3>v5+LlBmr鋦6p%$;׵\0A׏6}jz)QmmVkt_7zmzo$\\ 9]b{lbrklW_7 V|_=juUZ&+Eum 6 5(DdadGhY eww3O%ѶEW“x-G VA[1 2 Q)bw0U\F**aB=ŖkxO / l0Cbfu5X5A}y80.rpQ3 _ΏZn}pٟϯĝ_,#]w;5)L tlHgƻ QG]=y ;[wPda95p+Pu0X)WE;~`uv$iQz{|z!-gF3T)_?Y¢|1sʠ=~yr{9*z˫₩yQ xҡpo~~р$9>"򃙙d { Kj@@a!LB]Ԫ%n?Z?. X[Ma |>J'^x~`vV|_.((d=K'Kوv_?>k:\~ Q@ahDoD0,kH?oyVoT奆92dYGglF2mޛhK 6hQC#lG!;֎4oqHx,yf~[cHrA ] ~vDXe-I&vS];ԛpڅdF8OXmm@6E۠-br\3WC8:O;LX&H"bGMAuiQhw(US1O5MG]M@]~T؈X, -рtz@gh0"Oj xP>- ('vDB[m"!BGʹCYus"5aUO*X3Wj{p6q LҔN13Frpl@oo4pD9[# u45uaa7שYCnfF~YCO*LYm1έrU% N9GG6m!ZU)aUl+ǘTaX0 QG&BI)=eEG%X4ǝ`UXϩЩ;\ ӱ)pˑ ~0NwfB4q3e q2Nbqwmvm7 q OU;=TsEX]>”uzWha Ud׻ҵUUL~wGɋL*$ \> V 83f.de3~\#R5q:4Qs*P6X?4өHTpq{de2#۝x7nJtD63n{2NFR]TW>f=ty|eSd3uKTz˜2)\r5ϭ\J̺t}bwy5S..kUTc`f1KR>2cSF.Xlpdriv+u\҅c\čOh NB[q2f'uF8\xr' gt*cMp{h~o|a"%_o/ߙSH3Gͤ*Bнݬ]HIFf:sԛ ;sDɋ=)ru28yUPO}8uw}(VC͎x>q׋DG,g<o!.;}^iNT؈]:1<xiN)˙[{SNO6 V xY7`UN@HRXzNpBᗋw> sDxy/*aw\v ULt^w*e<tb$->t瑂sBTZVq8 L=e3#FgϬž̉3Z Fl.k<`Z N4A^Z{؈f+X=^& Y=Li-NDOYqL+,( :N@;a"JbN8*)"Bzʤ)fʝFf6SjKo=Լ#3N3˝r*DgNUNwGZYHx)Nw':b˝`V  NwGZ9D8rGZy;؀mat_s 8 qR-l06;ʱ6=`N4r]`VHpӜy;؀KyNw+4}y؀S!boP`VKxﳣNPA,2ee[xLl;:vRfcjr>X) oꪄU~7".X+!p%0JY )ЯNZ 7~<\J&~FLE}ה/ d< 3 ' M"aBz?T'|gz Ţ:X4>Dbӥ<Ъ'L)?̖DǗe ݯaw9"`skaJq vN,GbgwmMD!i2{/K{a޳y:=+x{B۲p{xwO}i_m[u '+RV'p׵O"^"cl^a/{J2DpzLiUS$-#BC(@T#nZx K v۬>pTbvZbv"k+l:-U]lNMQL|nVs32ÿo_$ܮl~nWs/:$̸_'oU?_fnۄ<\;5R;>3PXO*ѥAx(FŎ.hB 7A^_ }{|'qm?QDQߔ_K1-+ endstream endobj 62 0 obj << /Length 1330 /Filter /FlateDecode >> stream x^WɎFWHa%@N`!`ZS@Qv )J$#PXjQ|~dZgf/Xɯb7ϙDrm3K em>?٬~_g(xEBr@ۯk8'I7% SRgӍw%o-1TAg&\.P1E(`F8b)bIV:b*?E)na'$NʬPfW+n&\oXaBf†?ڙfˉ ]hg*1 zc_KRׇMs#t:/iWs*dSCx$C`1>]xMvU@漯+& t*X.=ГW5ގүB (qNh {"(ꊓ"Ĕ̙2]RzCJE,Z#+iy+. m7?wվwue*ה@oΈsUF`;t-B+%׻r*&0*sB~-N9zu* ձIjRQaHJEH{hJX8v_\o+Agޓ6|@9>w/ U? +OǦ! ?ƕA2>HkϡzQcl`y:ddU9c}v1bhja=1Se>)lfBh~]`hjH A\3>n%4a~403qce75Daҹ=Qb3.HMRV#>v #:Fs/Lޛ;sCܴk.6Fqܞ*pk܌ WtgobDc3%/Mf\LUf™WYa2\R: ;bxE䱙萚 9F3O}{ܷ>; Hm25=Ty>Ż !? HEun)~D endstream endobj 68 0 obj << /Length 323 /Filter /FlateDecode >> stream x^}R=O0+nǝ}ZA HP)T6Q$ =0/ cJ9AOuuu c6@o! /k}38]93!bĽxR7ukx01Ah1@%xUz3Z̬/U6#Y>#/؞ҼU|e~hSA/I$TϕeFa$3]wǯal7ݡ`V'h %& l4qwQ %J6b̚{s 6Nf? HKrE-VE),< endstream endobj 94 0 obj << /Length1 2048 /Length2 23470 /Length3 0 /Length 24737 /Filter /FlateDecode >> stream x^eT[5N )$@-X ;KιOw7P,k(DIA(ard`ad+XXDlL,,̜@CG # 2 I hn5䁎n@_#û2iCDml-`c`O{rcKK Rw0ZlL@ @RYQMI=`UQU +_j*AF@{3zOw?ªJ,LzQ#=jsGG[^&&F3'GF{3F[[8\l-@+_q91$a}Az{㟜V(cnW ?&TDԐ_yUؼwce'Nmlrppt;#`jaϙY +HK2Ƚ3 o>_ 9,<wLDmQ;mݘ֖ kM-@&ndˤsJ}W3:@;؜OGGN&/[[` 8;<<  Sw$k^RuKiޯ `4gRq|'?wjI8YY)Zsehma~X8HXM,mJ;^df|?Tj;ߗş``a/4N0i(*HI*&21X98n`xSIL ArrLbLH&Iܬ&I<\&,FH<&IY߯?,,&޻`ѰL-މ(9k8KޅſM|G`@F?YX޳c~c 1=S}L@g?)9}ooCpttGd}p{;@"Jv_WU7Tm,&"oho>}?g[WvnN+ v;G<@+~iƘ/kJSpx7(  , KS8bۤ@B B9)^]$?PE zkbgCoyo|dqᱜ/jߺHier5Kا3ڈjcEy:X}L&ֶR4Ҍao溈׉8 i'D;c5&mۍEP5`YKoB BTsX&bAb$u ` *͐յZ/0Yhv4K0AM鈻ˈ{JMRbg%&&>Nu%a>wS' t!Ue-D˜b`Et;zbCkȶlo([u#?\=Dtû*@)sS#PPKsB %:iN{*ݰQ0[ 3*}iA*qLQO5rDzۢ0Lϼ_*>BC_I1d*8wE;fJjٻcƞ8/k ^4V94O=Fo X. :U5wx~O꘣@^&O~ V9cbhܭpg^:%NLu76'&"UslN?'}6yхh[r#ŤRSӈm3Z4݌a!+M7&#j?PHY~DA"`.v_ǑzpSEmkPyţz:`8)N[;);$ #VTO_Vt]X>{Y?/QmRE,=PpO Vgy7$aڬqTjLlarjd,9$J*IY 8Kp)s)EҬ.?ㄚK\`Ct`CE#]yj|"΄'+&9C|6j [}^̕Nry׀`-HauYy8z'46 u G 7/%,NVaoΆfJ:d.пFFuGX$=\aԣaaM1ڮ[jвݰJaW.Q(%:hYa-Lu3vy$CdYΦp|yJG-iGKa DD ? I4^g4!x_@Wgh\D~|pfhIn9y3x2t@V*gJۥ{} ,ې`a4E>yA ^\QvnAUH? xɫյK> { ̿Xh)hNnoi F[g<5;M`x-l^SXmTY%Biۆ2 Iۭ\WZ{㉮y; :"!|Yk]u4z6v!&yAJM3s# h2bqdp9XRԚj^Hbi.,B'S"ḛxPnFB=9iCR/؍eeiU;]Hr^sk;~.+͙W$]c=D@yشzũŗh]0jfz>e崱1X#uܗݗdͳ# z+(5X\!jD r嘈w\hfh[4Y{ 2h#t>YlIZ!E>9O܇V+1agntr++?ۉ{>wʹ7yop~\;A"ְ5LjeלXZW+o^ږK5ho^RmwrJ3d}l_cJv5Rm pz_M@\B.A0&dxƿȶКԎ0ًs%Pħ2''gT[N9qݦ|z2. Mo:~Y@y檤該\q4!Fq8Uw,+]{̩JQu۱XcA/ JGt As Ά(TV/7'B},eU~vM.]>W9Nƶ~աiCҙsV8֔5 5^5$VZ)BC:eLurܡ.Y#bP^ V|앒׿˩)hE3m a@|0gūrؿΘWLlx2C6 TxEmA*&E%Thi=<0H<}[ \5*7[u&rηP&:$xrx;IC } ~[nJ2 \䂪:@~2 [+x~$c<eڦ̙xɣ_(R}fm }n_0dҞʗzWZOsVa# _3Ү/:A&jY2d4PlŬޗX@'uSLgbZ!QFԯ*W~k 0sչ Cd@,GuһAʊ Nd;@s]BEBz-hàHMʫ鐅8rP:}Wv6T[ǖD,(9U.?0hQR\;iԆG__}CQԊ "'4*HJYcdŷd8E'#c}y a]W3 BqfF MW\t88R[d4J d{86 >͝X~J>]zsuCmɵUlcU7s=Ln.m_R|ѯƸQD 5¹ߙ EH)>+lTԴ7Y"[BsgVh+0n=i1o(\ Z}//:fyRBVy{0݇7Veq3OoeʲkE3>338Fu@+SH WAx4\遤Uf9:φC,9~{qՈ=mI[\Um(bɀ`TW9#߁ᘉ{8j%{5 s`~UE/#hv9?9aWKQ=گCWty"Xvw7v7;$+X(O`$ _)v$tʳ]~w'Hr]'#Z+ }r4qno᪦Z}[W˕p#E7#>l d@ VM(C*莵&tAR'ؕϿ)V~͡E4f_u;EDKfva?ވB'Zr[̰M;oS9ԏJT6e'G{pE΄0ip~L`mmźrS W}6?OͤP<5_%=lj1?/י-9C0/k.~Ȣq _IEK&UQi7Z^Y6"Vmwb˘/q~A̹Alv/zzlg_f4z31':5SWgw|O.8H8ANr9Y?EFHU2lFvp#_KMTy􍽼Q} gK(nvPEHFX?"A6g!4+RLEEBB`Hę ƂJ)'E珢)>Ky0+ 1{yl1SV~vYEbf,~yݺ5崉6g+`-Z<^Kx5W*W1 oGre,ɒ6gb юVl%[)Y {GfP)7q."=.f:Ur"tMl1lJZ, 69I-j1Q`ΜsyY?剖rek-iĚZ=6(;D;k"TN0D<ҷ" wn]?-. m|γh4̦|]AR:7d':Ppy P}.IY%ް$>VFίɰ=%wCv 62%c&"y#єkyxYT$J=POXGPcl_&E,IIP*"׎i0Rg PxUc&FeK#|iECUJ@!W|Ov[d5؆4/vݔGjQ VZ15u:RB4ٜ_b(|EP'\SgV"=fNH[H8pL%=gYq<0WQNr;9s|k16!b1 YMz~<MS! u[/.VYW]9.l)bt#aS]|bn;bM'oIut/,Z~=5[8 eP Nz`MQ$*(6 kN9 AqʹA"~ ? |As˙S@gJo=qqtnj~1.wGژ|vsAHŶj0 bA+m8:~nVwաWP|:Omڋba\8=[.- 'PrDKvĉ z>|2wEHM4K>$Y5qK\( ҆`zq4BЮc[אU>^i/G޷= ;C1vG5tBPmgڙwi|y}t_"C3{g%$= Bޛ=.39.EKd- IV.֩HAWV4 vE 7?pߋ*xBn͢bS8Cs 7V(z‰[g^&~^Nw3,0_otDu6 Q9t0 l*] e_PY14jhGvD w>k5 +R^KPJPgk\^gΖ 5c˕쨑4'6CQ\hZ4\{ $>Im!|SA>!D{,Lyz2L1G l%d̀~[gMփ7H,4/Y^Vg/Z.[mw{R'aqC]z,/Ӌ@?uNS"XQ`|O'HJh'ŴKh7"'2&eWAH1֤l:{5qf\ƍ>hWQ)O {xyC`;ru Qٕ`pBn#apPB^-(LeVE̵͋c{""oʍ>4L}e89UknIT5rB8F !|l;7i<8AYk`KJdu٩t;⳺%(P εIIm]vUo/߁0n1ߚqCZX^&Mg}~S#BS -˒f*4Z|eE ޲^%@l3 q g~N#w/Im3K8g;+o2'c f0R*ܹGj_OdvVЪE%翠8+%'*! A02?ۢږǮ=ywvq3;ū"9=wT86E`_#M@NmmzD1; gl"(Y 2Dž Vdqf˲ xX!Ʃ0f%mcW>A5~䧋k{Pёm}m'RWVI6֎/Y8oU{DE/@68`y"ʑ@aK'#أ؋[`,*⸏G집]=ՠ)?DXT9IT}ڒ'QNJ|RSb+Mo%wbF_Q@V#U aիqXNr;?Ρv PKu/omxi0mG $9 M{O&wd\Q5^'h jVT(XQ[D݁FT~M{8ic].$j|__KK'8mR"t]ZϭrGcBX#$`ƕMPEϥ'ԛ"<Ͽa|8 9`QYmA¬mUj\Ѥo%4o:߃&CauDmZ2$t72IDL\dW:2С$[qd++R'JG&GQ˺OZ\E: "`+Z/HZnE }D56fl#§ó dZUhڵKYii i?XEy{N>43okn:rAXCm BGD6;%澁ZiX !(uWNTV- ܬ2]C6T}G}%.DYݗա5xN9nOëӮ4~]4A@vN5GSy$خroJEIxToQ8 imzvիv۹nHG ^Fzns00h5tJ;g*B|=D9ȡ+ޞ'a1ȑu.y9ZQ7 PnHc('6!5nJ/4ʾ&u;_BQRJPXr6AIGRʷ:K'H78Ӣfrnw0WEriu, )8R_pG8GΓ{M),!8:ч.7K瑐(èY-z[A&6,$5 n*.%'qMak$Lm>g} xҵGR"YSkdKl(El)t½lʃ!Y(vԄDtKUvL2K]IUKTj>)rB‘#H2Go`?7o>"'R&4h0&U# 8E4㮯3z3&8Ϻ?6o񀍁ڎR"8 ˕9$0z])K-lg g_ 4٧hP7LO*e^/WE̚@qHD(Mo7? =Z"~tS%N kY>> OĢ _OJ:yГ.Z4gWWi=4CDf#s'^8 =*aGN:|Z[PN=DG'u 빍Xi*+M^mKҧ+_}e/XмsXzoa2 Bʤzad^ ,c44?xVrܙGPҽ%C5s YJxO,$J߽kA#جxʍkh :buXt y %fCg Zֿ"n-j\V]MzYB-=2WkE%SL `"J:j>`(f>C>ܰd?~_Y!WiN ^cfa|<":If #1 YdHs Ev5*_0?B|LБ^_shGQ=MU5 *&D^24h1;Aۏhӊ0H1z[B et%W6 PWs3`G ynKҲq/krh I;/Q{u0{ F9t+<#i^L&rv/, ]S ϳ}ҍ>TTU"+_Nu9 'lH[Zbf18SkdH fX !N`ȈP\g4m VMgZMB_rVx1+Wl(ߞb4ݪ*a'$."?X`pgs/;g>}Ww6 a$gVS Ԟΐ#W>2N!2aCy\!giΙH)6ҡ׭64Z'B|҂bŮu ~sm$x2y[sf"aUDS]nD-Ut|^+)êvބؚ~W[oTNK-A(N&b@Ѥ׊Ƿh!cjWk)͸o~)">n<.cCBKN t[ॺP/ӁsG ͻOf7ڤu-쇬$[l."eal /=|$+&B+1?ֈ"&%a'Zd/H7 Ó>xPW= lRe&VGBi?Q) YU͌yW:uN-[ GI?? 3vK!UAe&3>Ntg=E&T-d)MQfehBiOjw/TpNm9[wK*T Q-$uZBQaC&ٖ贠7^G!LcRcsɁX&gcunPHs*j|!\L<^8[l{9(aCiEo`%P5\՚udƔAm^5Ŭt0H&.̹Igا(WeZ_/GnW8+H-F<ɂ@BL vհƌ3 Vq1"wvYKc^+EOa/Gz֩SoJ(ՖP),b ,yd9w>+d51nJ=gcT22> {D(x޲!l&xG4gĵy`3Xc1#9qu9晙@<2? Dk=4Ӫܝjc+l^ [@ }* =Kږ~Ŵl^}ҳS?z \p)Hqj3,Nηһ+ttM'&HԭU|V$hf]'NMNXwE׭1(JO|AÏ+vT|n3dK]˼ І4zɪ[gWYǰm8#ك j&~(m$E@7o6l[\[ o1MW4p[9ޓCId@c)h3)Ƞ B50?rD}Mo69^5WǏOFPh+>ܹ_!ŵ 7#km%*bC7W5O%EVRt:Z=!w[OIy@.9V2g:̥p)r 8%I</+R>+ ɹӁ  NjD/OP0)L,ӄ?k}޿ CuXJnK.~3y*^di?$nE^i^ C{c,p!:: 蠧PΚeaǢ傏t1XTQ{fO\w(F^$X"˘Y6"vrְ:x #G߈'Iݱ|JHnx͑&aW\8I‰("rAoIo%FaLC ˆ(10k짟ASZ'Mp d5:8 2)]em_ X : j38}݆6 a}Cȩ+lM0N?TLoJ?v/tHɿk: @M @=\j防֑I%dLS 𾢤-'홠3HɓW]422 uWC89F#`yފsrޮ1b_5*wJ(u88tk5?Xms};BND`p''Ŀ^CYv1ZqL[0X<eBN@3nNYXd+9 Kp]U_Ctx`ފm%\Á(V@CZccc$bѕa՗r4tJsGW<ResA5M:v R AP vf&(0 ^-aFmԊܯTiPz2bͫTЖ.D#K<qP%r )tEJ&J)GĹ0*T`<I!e0iN)vʗ!ht{>Q#'Y =4nr=j{~0Lhny@Ɍ} |^]n5%X#fI/qKk0P*əz3wIL(3{\ARxKH^='L!Z5K$c:2E0h+db"^j/FUU,rR{ $*.OmPj~q.g5m&h\bV(wTظy5fk(^#Dz;9V`"o/AyEĐ9HZٌO1Y%r#>?N\ Mm 6d7 V%R#ȭKV y"%0_.G{+\cnhss>!-["F4_DpT5hF%EVji@} Ia\"MeUe"$l0 c1AjֻeJttCG0Uɮ43j.)}'/A*z4CݞH5D\4UD1v8D( CK:*3rˏm`@poZGdt)e ҀX,wbo۳s?]W(it\g*CvT T$bgMZ:+F@ҷRn}! PyavC覯MO*)P0T뎩䇕;_ut4ǃ (;Ō}d^K='GO52JBS.md.ȹڮ,R1x=07&VFJ'g @"V͒;0fDX/ 5$Cf62u;Bkm3!< l"xcbߣs0BEp. "IY1qm?Faʾ1Diu./W\[X N er,2kkx߷ԨQvc1VG Խ?hm%EeO<H$+5Ա&\f:+6鄊_s5ⷯcVMVrH/-%qS8>* `~Vg7S>)"o_y&1ZQ-v/G) %D6$CjZOYiB^ܘ*[y浤A"&4tZnć2c`[1#7L~ERޅƧhݫ$Ŭ"{jH52QmQQ}

[:- 1`">JJN:z1ic'J)hԋ `%AX|Ic$#cޭݙ/[ I=۹ 8 >ktp+7&Đ܃  a:H-JS-a#V8\Q̹i^ȹVnI=rF Shp#kts䛉Ι cDXpqē TȆr8yǝ*䳍Yoxl'7Hїn~Cft,{ ;46M{ e<#jҕ~rH!2N!Hg6f$BI|1쁺m1IAqvɲ:XWfpFGa&v@fv`P3 zm6{ ԃn{&G $y0q -I p՞$q%ڦŽe0 P7H#-q>;[{"u~l= HoK1ܼ0KYq^Hh,fXɥw6N (,hg)B3d2|Y  C#Ro=-ÀW0D!$?V0&S0y')'ZyĠh^&b 8}&q }/|c~I#r͆ )Xce "6`G4>RUm${O0-YNOCHMWY* p* ;{P;mxPI,9'(&?Oe-CGv$\!>Ns$J,S/b+nAM ?+k`ۢNuȍjn~OⅾGBA S{/zٷx/?PG/dIcߵm ~lE쟿!H,.cԁ(q寁 0 uk8HV +윹4cO}GF>SK_ 9Ƃ%ܡ.A7aHjfFA/NI#? ݔV^@}`ˬi.؀cп7p=;vPpijϻzZJ -vGSrOy݉a= ohLȅufv`6}װZ|KRL#?Hcž}y: b>x28NrZpxl ag|1\$bܐ} }O6 DZ-;,%fMif3_6cy !He3[| A`Zz`/^܍00?IgBxzƸI.ޮMӌJrLz>adlrl(N1q7!e#-LtKV{ݗ` 2Y.X>۷}ݒR,x]mDػݻ'o_,llL152o̐Hq2'rL:%mb`;G#fv%בhrL{J}[Q1B 9{i!"gBE4!'HywxJVghhv?à`C*؊nls͙Oڛs};1ݾ|?/(K~ r=8&Ӽ6 x6)5YMϔmǍ}p;}M,6ӂؿg){OP+j>wԟ{ݍo,_\g:nlHy-c#ٱmHu+ 2oH^p Ȝ`Gu,,wa>5$ ^> 7~PXlYܵ7OZɰiw䗅atzNâiwCd[Y,{/HdX@W ;ĢC1 R{uNm֒8S dO~;ϩZt?4.+W8,e0F>OSn@&ݡ i_`N; (:vӊFA*l{r?pTto٣:߷;/0ƼYm,ad咎>Cݙa|pv#dak=Ja_-gS;j`OjAN) ߣ ~(C%&촻|K(602I ,< b[-get>=H!{ya_]w|B' wQaz8n9u_z퇃 e=h2in3[>ذ<|DOpRZq !@> 3L>ýZfthη.4o|}Odbv=a\!fmn48uXpw[in"q`OjAZX`R7s Go[p:J:qcwy<h.=N y]Gϲ]I1< Ooh!=0w|&"?n@;Rl3/4e> 2xh@J?88) VRȹB˺k{zHzɘrw|C3z#[1%:6^-&a95Ya3&$#$u< @Dhi.K>Ըveެsc}XdB?Rx&4{ %fq)}}q`a5٧{dkAMnI4M1A>F2NXEm'U7f_ԓܹSo-c,s!ͭG_>zel U CNI$H$i%:{ *(&?JC87$䵵{ ;KB$XKEƥ#kuL FEnQ"d,Ei,{ 4ܻ{Ý`q1ٶNJ~{ݲe@VWNb]_Olr]tYN}tͅ9c#򷼴H0 P|N!sF`&$U\]ː! @[ۖK]|߆Dx;{e'GonpC Lxl d婉ǔw%J D%G m$9A Oq1vZ;X>ZZ6 l Yۤ{(es#q!6iE1`{!!$2+Իܙ;8F,miaܧ'J~ ԜS<Be 38ɤd fxjGy{fٯ c8;6_s9 HJB\D8K1 ,,olfY13Yx|Ii#e$vdy3%.%݇\(K랣3Pr,\ {DmFGŁ&r͑^ upueIN ~Xn̠wѸd>?WD7ó ?>Z6 \ޮVq}"""B#u&eOբBl~~%cw9|&bzT>J&3=e%gē~Ju8aڲ FRmon ly^؈cׁŌ&`{$n>dg=CK@]ּ9֑Ll6ztaᙶ6Cu'ݬk7\[cll)%=]lRba-2NAv.1.I};o}>N g7 AL<@|u2%IPV6вlN^]B˴2Ȉd䛶 !nu^Lb?x7G{JP;PR/EU5 )/&XdY+gm}Z2v=a`䓝_>ýK@dxk Eǖԋ ޑqY ]g_!VuYD7.Yf♥(R iփś#pל-op"[RP'%aE[PP62Vݒd[%R$=%O Fέl"-e%d>ֲFn y&FA.HCZ% vk#I?kahJY76^\2E/&!1AQaq?-O\ NۅWlK 6 ao'9R&&t%z8hHxck(@-pBn` Ӳ&h 4-y ^ =׼Q3N\mi%1lؔlvIĪL"M%NLNL〃)w,3Ҫw>ꈬPr6:]N kZ[vp,eY:ٗgGnfM]Z8"h^y¾ ($&?1(4XAh^J-hAs̓yy0$U#yR-IbP4⑅!+3[Y_.Ǽb^+KD|Jy`r%|1(#I;2wC$!jfC ʃ~XH7 \T$AEakǴW|\ u/nq RԾ~榌.D]j|>pXmW{V,t3"BPd{c>:\9Vhipc䬘Uxǰ]gtEP\b akپ`) A wOwi81Eh;ƾ ɵublnKl:1(>xV a(t<@02X5$<7"McK5IG'b*F۱֔xD F$N9qS;8:#PW&<Qᬧ ;W4F2};+gc%,/A<+U YWG.KmΒ Mu>2[]؍y݋/q[FB.5v!0(E%G-]w%Kz[HAô@8[<(fvru.p5o(=p` "Р @ۮ7 A'8*a#i-  9t}ocpCVCt_ܤd $2"&) !ߎkΆṂ'B: #[q3 'A2N_n=BlXP5nSl6;1hd’weW;2I rb"bNT. @mhFo8E{3~m1^1#fH@1{:'@y N .VeHS^A!Y bSw@`%/vcѴhfV`a!*0n}Oeu3?xFI+ְm9rU!FBBb51n7>`W[SODaLVA>cd'H CS C'ُmfhYttAp+9x hN9ah]K@.pݎ> mncگj-É|\9Yqviq1A,սezs$=L56saA0h9*$pPs(o ϟA )fөp_ qX&;:⨣ɀ9`Mǔ#a"2\Ztiα;!'E؆8+;:$wL YE`)@(87(ҘSp"tīGÑ7Ϳ^UN8I6qx1<xݏGM1DU$&klí(9WC95'a IaD JF񳼈4f۟!drj-Eq,K~bʻ ~[6*D$[VEȋ w)eL JZ%m"αh(x #+\`KOV"B;C1gImMdDܒOd rψƪxuәAdWXU0eJS0~EZa=gTp Ls?Pڮ?.p3h D]Td4O&"3Ai4&(i:I4mIXE g3+VI(7t<by)gkBOGL^\ kpo)(;°e1_nE^~aa̔XR#/M81@وP k|`A1ʌ`]aXNNDvz1ʮӃǏD. -Em;L&b7(J.`J(ߜR6p2YӡI,RW|)\(ZwˇEydù@]q]ÏT`H6rvFgy Nf]%AXv.H/lY{|\d#D-{%--cuR2勽"| e E;9d?ZQ3tFFşj(rxЖX h8(X.zak$baA\Y)[U9՝Bm[`8JKу0'6hxMpTC^o Qe{>N `DM.l"N LBֹvl1WR`( p>`9_!3V1$D^oɗ}A z/(₈ADs5L9” ҆Cg (xӕ^a\0[rB*=ذqh|XA8qT0!-gD I3(jّle xg{7cHt-?lC{QؙAmX{ 9< ̨P N<8Lv;`I _ &S}6ayR =}eicP;cd4 L`,3 T"g0` 6f^W@3a\OK;RJ;ϓ\B^4-{T0 L:ȱP)y.9n3nC]{q Ao&J/Y}hm(9g.v.QqǢ0ې Mq^9?+ %unĝ7&CV;$g>08 - kޛa9'/و 74 "d0VW#u, fᇂ^VU@289<GäjEBvW놯One;8_@ )g' #gN*0^5 kYPXkI74bfqxw2#!tB!0ٴr  { 8O$eja (n7sBh<+ w vae M\%!߳R*6^PğX-CϖbfF%h2kqh-{A#18u=rL)553p8OҐeS8J%TRd C nj FLk}qgQ\(Xlբцa֮ZH%b HD:$b:+CohĊF`ɧEcU-=L궭JUV%!,p&LGS.:bp:&Z`OyhXCS @#4 {X44vY*E ekY{,Ʌ4U;VŰCdq01"Mb N!I7K%wVyʋ۷/8`w(T ux!Pp (ל'D6*0Y- &#!l<=~Ё&g> ?#X:@)؃];J=j<iye.yH;u7i$+䩄tK0(&W @fizS #q'֭(FJ@Ё,T@pڙd-*gO8Άn>a1eHrv 8Dby6vK:ٱ4_ԆӉE[Aى{ETl|̄b%(}Uٺyoo<ͧl fXGWx=T3/!iP qgG r"t[ K9fEBE}d@;52R6-9H;c $}?Y 㥤 -Fr8@I2c`fw>Lj, ujldN54gFYllƄ޻ʼn>@Iwq*rx C8hp7ՊB\ J j .pIf|Gj9SC#eBpbr?XtgeL!bCJ8n.zKEq 1iT. ]:KR\0 +\l>8G$(Mj㬶r`KQu҈(>?`)T'# J:"9وǑQHY@O@#N˕3 & Y&#@_v~lU h+\0H3Mn Zb1G67R/X"Ȣ`٠ N`r9wsiM LqhNC ޅ v?Di<ռPn߈ɗi˽qzd HȍGe ߔ]NND!w*q6ƚRƲQ\V~ ~f5ڈ"|PŊX W $%LaB$6P+kYMCa%Shjl'ri$DN58:ôCy#=4C0+p9fڗ-jbP0U%hxDR5vAad~?af?+?nWx&T*G:*H91!& .iD4jrgbÈ毙c"wtdtjNr `{ʑ*0- uJr\7=QHCe6qtf9(kAǡqtKp-ɽ.ȒIsb]`%C&&QYY@%&g( ]/zz0qjBTCU0`wq%S:L"1Ei,E(k5-!NN %K8%\C.x wS^k_qpw $-)vg, F㬷(:q\y@D(6S ,"nayĨAqHCX4Ku@0fJ睰gƐ#%s}>BTtnjX]bxSN !JkuǚM.FPi&(&Mv=܆U^6%yQR#mN'pPl_8H=e_&0n&)FNިm Jb Q[6hyr ɁGIneS b(r"N w0V 0»$TW @z7hHLpwgba\V{M]XzEpqhv!/p `B,Lw׬4 70Q m3q@!&ܪORJV9`\b5YDD42LDLE? Y3!2\M đWsnלv9+- R8H EUTzsj!wq*a9{N7οkA}40R(gyqtZjJ;ב ̦i/px޲I^̃*Wm<*">G{X 4k!T'"=c\jz&BK yQzGr /4cT5,M4.wq kxwY=KhTfkPm@Ӥѭ~0āDdeѯe֕Gr_H)Ǵ-Wd)(O~wُL/m o/$5'30.ʅH%_pfߋɠ2fC\+ưj :qv >fۑw,J )i ʛ>HNt#zwNs LX6JxthCca+UC𝫊`+OYvӏL+L-I?Lzr<FNJ/#`R*|`.ʀq,+=a}NSxNrqErY#n :)8b @f8Dxe%7}6=gi, ! 4Re \n^L:Pp?G~댌Eo~3cpKuảbZ}dhl1"aby`qmyPܨ|͝&.1 *aa'h!6aw7) @_1Ԗ3؟zd9n/`Z&⧒Y~<rF|bP D N!BRПVuk:4m6^)ĢkA/93}.ԁ<@Ai68X=Xϰ <-qEFE@vjiD H<oB<9̟d3 OuCçHD\N kC,gVMZ0$ 9pX t8 pX .X]Nvon1r.XDl'F(5JB3*4Fg6M5Qy5 ߥ1b(՚q Vrj_1{Wsl64 ;;Ûт{59@^ƣ ,ZHnl'p"~1a:LSSXe}A1J5sI93c;JM8lEPO HD&JˁH~zZsuІlzp֬4^:d:܌:# I^pE;4|0aZp mCp2/c`a0<{.! aLtYwJ(h^UCA9rsK(G ;.H# Uބ;F:*HH{֝̃nVͮY.Sken A. ’avӳG8BIk^:uVK ge$ F =e\-@LJDjfvYp^94RHW(BXz@a&ax t!jJVo_(J M%pD^ʂu0Xm}9Mi0:٬SFMC&ٸbMǶ =yPVXE ۽`*`(%K$ @ && )u'abtf#%c4Qu)Ե@XWs&H;X6&FJ 6JI"DiLcɦ-)ՆB඀v|`2^EQSp:` Ac$Q|fyz0HL_@Z#h3mCT(ǔJ;^0#WjS% ͩJP۷ZU`ś~dC]"::2q6g ّe$H#Z0Py(H%*G݆ˠ@q9."S`𹨘񄾎^SqJgUcY Blx3`Q;r7]&xarw5Cl0qpB-yް c) &'`EMfm3Yen'r00s[W!6WǧFB5_2nMy3nE\{[yo?.tŭRdHԌT]`Uň-#7@.yTyCzBf9+mrHS48`E1Wp7Pp \6P;cn+Pꄀ1W(~rhg 1ٰɜ]滁Iz4"r85Ba6J"YJ=H g bY3 D!\Ш3_'-b!cW{h yE+zʐ۷N0s"*Z.ֽ{*@8qEح+3x.y~05PrGC$BdoC`K]_eZu "]a9U$`u>(ƘC[>L0z\A.!ُĠB8ngRdlc]Ձ05KC2P.pUn X>,PO(7zC^, hPq5=eW5xrc$9h5'xD5Rd@ Ps`mec f9  dv€)wL =`S*q.S e~|.7Y2L-~f$f X] b/;ٔ[rQFt]ڽ㲍938۹C"1)]3c^VSƔk 5ujjd,/Qi!?1L7ky 8)]c(QoIɁq bPz]ܩp)!u}6;wrl3;1f]h jNQIq8-_2` _CEW$zjס$]Fš-E7T mn뛇(pj`YB%1zx9yQ|4NZPDUxaۗG*{9 z 3HR #fyA U)(=aHp1LP'᱀iSH+SGGc@ Wqq9 A8,a"P*8@(Qـy]拀'K&+yջ{D~9?h&Tʫ`g.%qB@΃N8aX2j$g|^f\[ (|uC{IDB A n!rB7ʘ*"wsN. Yyl]-YJz]4!qu%sd5kᄽ;\ci%ŔZ!n,P;Ű$|.4L@9|P6MwQ93Pyq 7/Q&hS`c J4w ǡ^i)_6?XH C^gFbvBP<2 r;*4GzY彭9S 9p:r !4{O7'%6_–'YtDoE#Z {@ڮDD8BW6uXm1 BGy˃yX 7 @x#4YEj߸Ji#8 W4UT<,)[l"sHĎKȝqC[-˦p\Kd#up5%'.sB<3N˓ PuHW͌$nc@pn2l7x9bA",n,LHygJ U@':;=UNŪ3r}"Irq%`x lB'A:' r'\鼒0' XB62/"`y{3 S=ԕON̈E>x5i8q݀! XLuӪr|3EMLJN\ X3N+jKŠ%t AJ}șs$pZ+ zA(CmIFZU&P8^!?;s&[w(UF\+i` iL*Ըc*s*+o6@ eʚGPVkTX&"&(E`3iݜ89+1NbS!e1<<550ȚqTƓJaa%0.o',GM|ci (9Oq5gr a b|O8Y7tZ.lAH"qq(ʓZGDYC8_x#6Oy˰<>aOXN'^ ܊ ?_qIgKͷn"Y;8".s =Oej9^3i޵U& (`'.TzqwmMNrӲY1= ri7Cs踙hoyJ4S \N6B˖r#lg+'>VPpl\|x+8'C&JGc"nyOrB`CE>CVgכ3@گ7y"dե/ Z @. p!^̕3ߦ2CV0Y  !1nh+ȺIR_R>.XOKĐ> *sAIT,TbcFɂlnqㆦ7yz2 5=0NFu]d2 F,,>#?4YwZk`Z D^24*twIҀ= ]0ySw2|"ŸJOsyB+; .3$ ^l&-ўN1tED0I @pW"E`OY1&ĸXJ\^:eړ)nFըW $@b5Rq3D )kG:Ӟ1lknHn7{aՅ @*HDdp]9ZSpX%^C,;p}O&˯81a䃗1Cc ԈKr u"MC=;˒g}ŮtK_ՐJQ|y+::!C® b}HaeNJ.S H8h@*u^EqAXENE9IJzrq@lTt0"<;qY13%1NgZcm'7E) 2)DN7 cjB+7EFr%"s[KDOlLAjp1u7 YA"xh8Kc>/&XyNk)#6מQ܊qQL)\ AM ^pQܪT׳ۨ kW+saT+W C`9"+i^ )ZlQ ~ 0FN;~"LɆ z'X3j}-ƈ=v?a@J4sW ?&ZDrM /TBJӋ 7\=9)N{Z ) &8+7Sb+:Ҋ62LJRUU(D&kͧS'E4(QL-E0n\JJy1ΧdB+ً `8π7Hb;ve!G;;f5٭>8 j'Uw'EQ :u S4\{S49` V&M6S&P+~Z +;saR-@ýIQGE`"pxiFDT}$t;[ fe6V*D$ڪ`$݁O`q973&K &rI9~(PW( bi"a$ybGTӗ:"4-a"p` @w.D]&D,*I}Gu3:z fkK[JX17@1^7UW$; S&4"vT)`a4`3m Z-3h%C\p'$71 *G7fli09- rl-G&HM:x1חiaE R="LŘ8 >ŜbAWzprN1^ ᅩٜD':2…@aK5Cſc8d pnGXb|&3T41X8&'N<wK#R0H[[A/im2$'Fo;t$~s\ ]y`Q]A{w2Ј cNNn8z-肝CQ!*ؼb2nmEJ&l6G"X-887LDܫowdc@ #A+7p:T kbmlt(i7/r {\=p=HA!МJ!F38D)AJ^ ivb%kx8J(27xjm\XM \FXJQ+NMV $:ׅ8AꚽBTZ]a}^%6 #U,Vż%c\#Uwx.NQqb[٫nXj)*%ŷ.LĽ"vc tQr=z|3@)\kuFd`27wÍ6 v"k2U)|kNr-K7*.O)1 槾)֯` -4fAGR-Ewͤӳ`-—4KXwY=\4ݛs^aa+s#NW@َ Ux)7M_5%{CBtqh '# -$p*ARʒȭG8t|PRlx!=N,NLaKbc-4ӷUa{܇u8Eqٳ/j)* -U0㺴2Mk z,`Cxjp.<yҔKDC$\AS/4D;[#k ,)lO([&z.Z([ұ>[3B#JtQe4yͱpn& #NX,|! ˅[IS& b0hK/&xDQVI$upv5IvFnx |}۩͂՚hщtM6Ty _P+?XȚ%ij|#sRi@pꜫ?_gh0dbJUuQ*Th7౎YðsS;s1Fz5 t#FF@qiSlԝ6]$9d0SXꙨїqƱE@yѡFX ]hˋ!X( s%cqQ;Q TUkcGc~-*Z 9B ADU.ð֊Jp!jE)yV<]ihap-u*s7fp9Y\畮4:Z:. ^wÚ@SHWe/0s+wP@)hWwi؎yuP'o.eO/ְ*G]gx͖ˍ(rV%c QR`G(ht.*8&nFbvgd_YKQa 4.'Lbs[K Ox$[:8<д-8*xqAt1]v:$p )V(5pC=NAxs@Aqt:RbR45 6њTJq 4)gP X+7mS5XlA`*awj |Pl3R%ᬩk9:A`ۧ⡡q | "j;̴- /K0";i2[WGD[mElD5, S(^Ή8'1 1 Q G sx$ 'qM#g%2_H>#l1(Fx% a92""]/TQ1Sx3(VK|8"*rme^Oí`ѵ0b>b91(PdZ[R;{ʗXpa&)}byl҂ /4BPq0Z|X[f倵^N0WAF2 s1%P #  РvK:[Gb׵ ߜr2iT99CON@wS0:e;rI|`X0kggCL&́j6tL/Z8 ,d" 5jlYvcB)хWĔ Wj7! ;\̌N [3(֘=ICQ9=a&vS)sS2 jEHpcif,\%+,rgP/12A/@恛yq.k+x9MZ]v@+47 J`5ۋԺLgyvIvةiȩ(v㆖py@LS-+s^QcA.9 18 (0ٹ XeP񛷑4'*_CU"KBYUP $w&[}.Kj=kpXG>p<< zs8OH]4.Ou,p ]`0;2P1SctDӚj,Y8L@:.nׅ^\*IӖ_%<=JRֱZMG;^sy(-T Q2rɉ ΂_ab6Ę114W1GXUC8]KGe:{=*Q"@piń%]`f$A-^F@a^&h0 ~(m dLݥn%]*Mp!6sD of2reT7!iR]J@se!c Vt9/K?I(sX*ch&00r;uXuy\R*xz svxa,ELێ;/(+ *LȚ..;O8G,wۏp8) yBafхcF(A9q{~\+'$ 8 tjT鰃bzHݑ0CD->AM.klź W9\3fBůĠ466sҾRI/8gY(N6rl.aD%9rvh O% 8l>/08$؂"\kIw^ &jc9+0UXnl h }"/ oƲ\%}3dіmdɄBV3gx4~tP[=[IoG8,9?xGTqK"HՊR,!BP(' k%xë= eœo13V&]i/@q%c|o7vK "1XAkȢ5I/ǂs Mq5;a0A^\!u:=bH:u <X>PM/.N*;NQe%r(sE"隚 mP!ːL3Ot\مd:qmNWtbjeB@hca:+RJ%bEkmx[4ryjuxޒ!iۻ ; 8("aC]tƲu78ҵ4̢wsy:wL5 _wʮpӔ~䒸nrup`XV{]oPG(_:Y>L|X^9կ o5\a?X@aۧ>0m^TS*a$NHb;3-X!@~v E=Gm<: Ѣ&b$лqxؼ9߀Q(hssئ D9]S!5=+ .l6v5"A$`:~0%)HL;O `]0d﷬Jf#h_S4(r' |FbX`^Zn,] T09hSiZr=s,E[U+vߓeɄn!!+C;ĻL,_zUc8TwX7@LYV8|W891n$l´-6kUq?4k=NC!FzYS9(5VL! +rIy)%*l"gQUyh~r+/-a g{}in8x@clLjwɉW hwu$Gcq Ӱ]-`u5C=FXaEp/Nom4C<`x0WD) Sԋo ;хlv1J*9(Px0ѺmV'JN!EB@&F< ߬(1Vjub T.C hZDH&cATGtنÁ!h?&ŭ 1 ӱ<؞3(pF ٵ8B뉗µNP%U5Ȑ)NZ|* Ftvi0%\;m)JVt6 9D;n4ސ'xA-08Œ,kL'kM ɷ©n۳f'[q.PoW2l!<]ːtA1U%kCֱvadk:9I?FS))J'+rb'fXBcu+M:uoeLڄ2*mG.x &q$6 *-qՠ1X^F'#cl<L$tހ-;H%"m8; =4 <@'?ohX.D2 v-)/Cwe |g>-:\zlX ',F"qkJƶDaՠ gK@WԠ݋2#BvJ1*- s XS:2C{͓K\E ]={eE#GLK* +CwprMCXFvQ`;]H6&Qobzy8?ybɖ M#@MbHUۯ8vW|ӯ$IL` a  pIQ 1!Hy R).F3"HX-HDB1:(н"F6k/`CrQZ#u\@Qjxŏ'ʺA6~F DɅM,[k\čTkJxOzO)-?, (ۅ{َ+AkUp/}K>7i3`QEu ZYwbCˣ@!9qwBJE,H@fmJA'/kyYB3S RQLHr\`D(#.ͷsL )B gg ٌ# lXAXM2yo1(d5qJew(V%ڂg1F}!A^ B9wRv=!KJdDk.iUs4poTtpjo+(s # ^$ b]<✰ mR%^gD#Ϝ=9/zbE* YaȘPNCx@DXVF !7Xv&`E2dryDh@IBg6Lmn1>(H{"0VSL)CGԄ+_6P7 D.q6d=鎊9@n8we"PYWo8B9{1)9SoN!wCaG6ST0Ū Ȑ) :z('DFW7=`6ŢYEUU\AxN(0! p2-h^Xo/KKpaJ\$&F~aB(X2+٭ɉ?dMyqi6W]Ƞˊ 84E_b bi[\ĐtFKyy(4t&?h!dB%Urq0z-TQC -[+En(c H AQ1JC Vj:,/ӧT6HجEk̛d$'/D"&P.}ha;!M&9)nN<rފ9Dн搁{eŸrBfFl:Ȯh*7=swȱS XmU1 Cb˃qOWi4$WxgmuZ8[E%YQ@P 23 &n^ p{A0]Uү 7T}2C,@/uDuC6XtW\a!8VK ½يKl%/iZ-&um~ HHJ3; %R$_$#k\a u1Q򪚽޲4YmiUg-); ])@[#E< ;Rf{-z`2S4.6󍀇 snSN2H.q$!1aJ5kSlD;ŰC6mŬ( p5.mG9ml7: 1;s g*svGtd/zE6[0݀td~1H툚{ea\TxI<_,uC]lA0(+ pM玱-DGƨ`kICpY,B-8g @8tlpkPo/N X`8bC^!dXJ!y3V@ ę O4kj NPMk7*y}O4ɦa8߷q%65a%U6%K:fbWKU 8Tn``o0 pެ̠[aW{€|N(]I)"j_ta[2=H%AԓqѤ p-QIRe/[bhN7DMcNc!z8ӭI\t4fpxكx9EJO , Aw׍&OX _p * )z rC5[E0.RFPOL01 !|D*kd?N.]鈰~rꍓM<6S汊v(و'Lrd;..xƮۜ=.q*L-0Eolp.c-qzqU)M'O8AeJ7qI^=bFJac$/ 3RnBҾ!Kn /y>~,ݝᲩZUç8PFd$)<_l-khہMOO}8Dr\ZaL!O2? hLjc'1Na'w!|]FkrL8$C|.ǜ8EC=iK 0@GaS:Of+4Mk2qjzhVf9UKD MtD?ءIK~r%'⁰1֏Ajy1="h#8uAݹYưh(OHdBq?_.?F%XEzv2;A_ )G& Bfj!c" LDTc I(#!@R3n4Jjph/ endstream endobj 309 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 527 /Subtype /Image /Type /XObject /Width 810 /Filter /FlateDecode /Length 436 >> stream x1 g (x1S endstream endobj 310 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 527 /Length 18310 /SMask 309 0 R /Subtype /Image /Type /XObject /Width 810 >> stream x^$G}qɿ]\\.lc #@vwfggifvfgw@B  F:n8^>_feeV~2:{fwg/UOuvfUuwէO}/W./Ϟ֓6.]Zآn=w>mScFF\[-|M =ع ,'ŴESNO-֋i7%xo3#Xyv㢻wvBQԍ̬&m7+~NjGYTwSཱٕ?k5r!2Q(:sL6kvRkM4M5f/\?NrKItSTG#s|/ZS?+< #U39LMZ6kU/.N/^MoĎmJ}+1Q[HmnRRi;N.G` ?-Ʀ.Y;(۪PN)RԩJuQ_V%8џ6Hmz{G6uCIJ=w3?7+ /W+o/;uKr.९x zwa3~ Uמ̋=KZ|[본=Ra1Q|`vt]|])ͷppb˨(Y[^N?^UsVVM5.ԛYw(et=۫ZڳFQRfqc̍f)wúG5SPYͧEFюlSYT֑mW/ts^P#c*(_o?M~iiǽګٖG.j]]ϛyx^پ㿕?koR{HS.}˯޽ej}նZ-[lW6b@9ezS!Uj),n.|cÖ{M;;ݎ+I-Epz|UR&uaLRV-wq 'fLB!UR*KBKM'#*A_X[:|TZ1LG_|B宙 Ͻww/~~/*8~}ޚټxTB|sw ^~[Eg^6.})&zԽ;*>XeLr u׏ӧO7Jy컃ǯ%٦ 4M*j׋37-7*Sk^mjn]t:j5Ʉ'׵d bkܑDZӗ;n ϮNWjY1Z ;7#}U2t4m՚mheo-HOjy3L^Uw:^6i>L5Ye*#$GwCŰR,9}M:~y'J_Dr3549][@ȟ|TseߙLr֫!m>L_Oc-)ѫ@jw'KEK+ڑG\Bs]}q_'+L_dܣBujPS攚輅ǭ?rg"L(WwD-9L~u{w2WPw9%5}lB(E3eB!^ܯ5vӗbʵ}uRsAjjDW+ڈ\!Mu2E59xx1n|}.O_H°7V$o|(;sN_kT!}~"}'~2*~r#! `<6ގ ;=ktm462ՒmzQuNlUt m=؂Oy"Knd]!~W+} LbeFb9GUG7u1^bϯ(`ε.ҏe5qΆ8m#5%4rl$Wҳϙ1%w^DTu3e*ן~4poⓕH_ZEM뼜 v) 158D=[ D}.MI@|аlwP/MD{d[ iM&mƒ˥));6M'ݐ>PD?.>"2\3ܪQ>;vK_e#6ՈgaZ&փL"Tl{JK_b7gWNCKĪ{kKI_9.0e51Վ8o6^,! сd)8(ǔI_-C]{<ȅfY+_k/oY]<j뭹/{H_0]m{*cE͉ݢ;YOmY-q&[m,F<,68Ed)O<}OYW^*vU#}OQ%bEڿҗUL)Χ Ɩ'/1ٶ Ibw/ԑLN,Blk*Sj6jc链 lJL_#Uw1S~ZJH_&DZB])~H}i6jZzKM_FƁ/ OypAL6}UkՐ/ۻF<;/m{WwHǨtUIH_6"?婮:}7#7F#a#5̥ZUK8lps!}mD~ʣҗ^}hf3'&EԶ8#}D~v-_]I+=}H_-D~D"}LOHZ/I09"?Y"i꟡su0}yzJO?Sz~QI'K$uvӷ\?_?EKo8wez <Žvwl?c¿:Ư<M'K$^hdF:~ۖpK_*\RAhpE%"\җFWϖ8'cי{M.!acIkkgtƱ=~eԜ u}_v1S;w(.neCʸ:VB৚}U*r $NTJ){S: :$7dƸJhy'DV) '%VrRѫ=}[6a/-!ts`c^C]Qb&*vՇn}njʸfYo7"̤cZm;8Zך.mW!,O."@w\?Kbd1 *W/ &%Vב[Bv2#dZ69 ;T'~Q;d1꽹_aGe+th/0>KYK_wczfWif" /`dI_g7YI4, HA pŔ+} L.}q69uMG뀫 :I|s՞֞yuDtD~r9*/}=~vS1+g2G0/?/O]nro'q61;1 3U;]'p&9??mxb&mC7 LO.GWp[TlSbC/ܸo򬉁7jAoڗkq kvY-tNlJ?j']wvlS)-OG`ZHXջ{EX@gT7umgp|,Zeٹ QshWHηcRH_%0 iMPO3vE/U髹  D~DꕾW=}y[5|OB rmoz<7cj1u4/VVK*mW"$^+ }js2N;jEJYr\iQIj΋lY sB426<{>/i! 5iG.!EN% "?Y"i%gVw}%F6ոչ}E}H>-`EwpvyXܺzfzPlosT1[IhKCc+$iz [h@&]m{Y-Bpia~گ9ok98ui:47mKlt}/Śk՜ E_[0;t( %}%Qc#gWÎ=@*9e7氣@lU \mô־]Mjr? ]!-lh#Xa8baO7]+pUH_Ё3Z$f>_.g^)ՓKxc)OkFn-|رi8#b+/`dǣUbɘ a>Mq06,݃ ݋n\OQ;H}ZwL_=!aFGBta{!B^{<ŪVKW+04=MY+yRBԕ'$-ǔO Vqм "?Y"iM"}er{WrؘԇI_ɋmrAj'hZ/}%^X՛od*}%/¾/@/ 8hH;[c^W$7Sb3i"r/`d#y_7|oInU0_m }u=$}K_%!BwyXiB+x/oKյ̬&QYbu%}{@'K$ƾTӿ4:t߈G-;cyQ\ܖeu+vbRMA8#5CzъF{hV(: O_#ggWUW3OF3!^9/`dTj_c 5K){sw}ҺhnG5s۱P鋐'MHlO_i7L],}GxJnyճPk A|WeshGTsС5I_Ddxfܝ?jjWր1VJ]4UNr  ?YIG5)rxzӿ4teP"I_;hvTXؗ{?Tgc2ieK_X"|lh\#bضD!}J_оW#AWCBL'K$vWvm4H IY=d$ۘת%f%X{(/c}vyQ;WmoLS;Vk6PYi_/ˤEHM_E냏P+P+PX 1sX!UyDӗKg;ZiE~+8D~VV$}]IꔢSnݗK>KWZȦ.6\ؚk625Qzka"Z?MUIuzS-{eٽi x"D9X0W3cTY=I/C#}5Wv)b+߃Wp'|QK!-G O:}]ӿD| TE%ʂJ@b M6}atG [nuW-9}צBL^Y@*/;>;PH_QS_N?.7Yէܷ/e_OD/ }7k}#S@'y8D~y=D~ƾ׺%SfG3!S@':I EO[jJGS_[`O`<|HVvZk-ur{A"SPHWyPQuҮ^`cky~N͕i6Хi9@:ީXR7j9˥75YJK;mm={];B@ ,ll-nr@5^#@Oy6#@ I_-D~S/<)-m.I<I`I<ꀣ:Hh!SNnD~@':ǦOy\:5#SN 9%S"})I_:I`L_[S| B<ꀣ:Hh!SN5#Sƾ:I`Ǥ},%S5s'| L<&}ǿ~XK<&}}qED~ʣ=w}[OK<&}MwLOy̑;??wG, =})J_{#X"?YWc_=ED~ʳ>u=&%SuF{s L`y,/>v;c_a"?)<)J_F{?*%S5'})9O\ L<&}=tݤ/+N}~,? W[)hst^E/@Oy6*}}=׺)"})OuED~<~!Sg> DD~C$S?'ED~SGQLK<.}}a@Oy67?<2!Sg8 B<ȣ*/"?1c_G})I_y<Oy6#Uf[_})OH_"?1kiq$%Sj'O` L<&}?17/%Ss/H_1"?1kyiY,2X99X})K_+}DL_KUDD~ʳuOh!S2}-T})Ǔ}DҐ^'9 BL)p8N,"%S B`GE/5Oyי<ĈǤ+'OH_a"?q2y)pk{4<)~e B<íh}fe/ h2}ĈǤ/uqyaAK<&}Î}ĈgXįSWO})I__D~ww[[[ȣ> "Beя~O^^X|WtPSO]Rc_;/,@AD op8|>w+'onZ O?h4On]U^O*:8DÎ<o'ŋ'OY^׾&:8D׾5׫?ԓ'[*}m~_~&8DIzu^|_]/>J__xɋ'Wή~xq{^7ƛ/?܋O?SO}'N<?O_98LDw[CF k_~DK=>~'_x?qkg]N.-,.rrI8tbnq㳶_;0;;81;cn1}C;{,.cG{|ȱ3#!eWQ)5j޼OϑcǎQ+U;6SucXౢM#ǎϪVs~\WPsXV*X9Ӆ*sss_)jtQ7'ϩ#W掛2gJ1Żּ.ꆛJ1QSO?ʼ*j00T`1_⶚4,/- tY,.,-G ϥ%]SOQ7L){4MC漢ޒ9XRTSt,+Ku8XX0ei~^uL7X/-e^/ygOZ=s颜=(gL9}J}CsW.,5 ŵv~4S:njnH$ێ+]"4yjΕOzjNN_<eo) nE;M_z)^ "^EW{H潀Z17jeYW[{+75R*ja+TeQ7_FvULkWl;W z򩝗_QtREg3jzB?qAΏ.n<{`Ң]&l^O8T/e f^E:QD2Ntk媨ebo5M31LfUSPgZt,(]tUL3L1]ϧ`\'TKEF2`s&PB-vT 5UHlr*&j$9gqS5&z7UPF"2[QTN9Қ*&Vfne"o9vK8QtIJ]OTMs T_?t$o,W8zDGW.#Esc]270f*U*ngҗ c.bۺ)t*ⓉX:}EMZ(n:^ĭ" O ÊRFX0SLĊv g7xtT^&tĵR=ÊSf*L2\HsSL$sQJUE1Lē+˧O꽝.j'«EQ7Jө{rdK`n7^חw=VUXq9͘BwՊY_vzqʴPW{^9﹫Q=e ,6FkޘO֒Zґ {Լ׆?8ELY:6UȋLT<lTdSkE) ]í.|^y^**zǾ> endstream endobj 321 0 obj << /Filter /FlateDecode /Length 3019 >> stream xڭZˮ# WF~dwAV2Ab).t=r?.ܦKER|᷃;ۗ_| w/\\qdkB%1÷9w߀^"a KL kJB)GHֆ䓥).71> 7z\v L.@+_.7QOހЁtzlbddPMKTRzCy;/IhIzH.;ja^R) <#Iם )~.&D&H"dlOV{edSRմCs1`C!u _;peVllsglC:6T7cW.1rjnCM8G($g8 9t[P-2\BJ;RbRap2)ž} 3J(Da@{bp~eX<؀>7کagn`0SS\ϦlsbO:]T0(Bv_pp57<YNqR=cFi2.q.4b(|ԢtJ^̰ qb8q xUC([TbiO5侜]D@m9;B5"~{"եTWİ賛@]R ]$~Z QC<9j9e+>oW5$\a4מ߾n!=W~5@6̅ʀ+]>7[mrۗIa 6A bBa_N}ڃs N"-hw9;c7D7Jk#L,<:"3@vaf݇}Yg9_Gޙ61{==<>ֆ^;mnx%l:ؗxG3C uO&SHbΔ&Opb: iQiugգ ]H1~'(H"AT YIZJ5Ȁ.E(%NAhԴfkNKt%Բvvb!]3s.\ҪŔO(8r_t9•J?1 Z3 CQ 7ɀ 8v _lh-â9h^,v7eN3TȆqMmt$6 t.\ j͹mnBzD7CPe";=)|xt\j>Q} ,He2I 5T=i364A K)RpkNౘ^--du8L(TMB7"s#? "Jm&qR?!Q}\$8(`Cw vРeM a"duTDKGl wmaOr4<{$I#JԟӰwRōŴ(5wHh?5@"s6|Ԣd%:mt8$72YK<[)4&+bEzK1^M8I!A"*/2r$#8 K$Q'R+q<ƦI"ؔ"]e|puK%gi&@x7k\ 룼0{?{݊+ka\;2r(TW(F94:%s׮^}}_]"գzDžmUGC/cf]؞S0+60\$Eo> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 170 >> stream xڍK @ @sl܆7/P\'ZjŖZ^ttP2L ! ycT:LDL6NЌVpWwE"r436' *4h*ГFН;,ޜc6/;h7F.[t&/R9wI endstream endobj 324 0 obj << /BBox [ 0 0 526.394626717 76.960756295 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 170 >> stream xڍK@ @sn62LL\'P$1 Qf2)v+ca3AUfmj8纀cY՝ @̣MC?c|B.Ƣ{S&֌ 4*mWpc{7_ w^-'DžѺo挩7y};zI endstream endobj 326 0 obj << /Filter /FlateDecode /Length 2923 >> stream xڵZ͎ So`1@$zkiQ菒h;&d݁٢Hߒ9߿Ϸ?]݁̔r6# ;saإ~(CD(S88dN":޺Dvݜ+7s 0ѧ\)sChwCHlO r&Fk|NR6Cݳ/:Pă^݅BL,H>b| קɕͳ]#*]3qv;w]֌Z?pcGNw|E*6)=*k<6b_{:_vﴶGKq'3l`HFmMYE2aR4wŸ8(?:!r4="O/OSA낡YPA6j}Xt:f7^RB`IŅ~h s3]@M=g)07F7iPRmWݭX"lt%;5FŜHbuŽ6م({D=z-&FW"dkȶJCwx P`;~#3r{h/*SPq(QPRgPKO+F5 Q&g|O{tmr7߉`yUpe`V87D 6F-Bj&ukǗSm)H+8Y3Qf| v |{jP #$DB|QuIi(%kIa>y_^/;8`.EE;Qst cNkЗDg?4LS&Ony*Qy,)!CXq.Հ(SGxƖ.n 3c &:Mhv(cO&KOU,bC8<`81Hk]Di?L]4E[%6gTfD ^Hi);T#^g~M4l ^ X49sAbe#PY"6W,:53wA: zzݢI5ѣe~{۴ Y{5[ᨀ6vO^6<vUwkw]|So?{%ϛ3:^k;{FډH߷/{his\;IN} A'viuT9?$|3 i3˽ F}qw 4FpT}JUJO}.USi]ۨc)29(R4`l~.Ip&8*=5!H …ף>ߟy pajN-[)""hlc-KwBq2^xR_^ʉ(Ɠd<*a]KΨDdC2bmJ'vf}UϘH &qezfW'rPF%4 ڍY+p:ݑ&Fm WpMJRQl3іћPFoBV@$Jzؽ+Q%L$kL-r֚y3YuF|-qnfw$?B`s(%5qZl/ʉ9+{"sp]w=(mm@BVFdCHrSgeC)OR%+MXE)gSn3wgª|JmW7K6N>Bid߮^k8f!gݔ+RISB$Iǣ~92{Bɸ}\`׬7' endstream endobj 328 0 obj << /BBox [ 0 0 526.394626717 129.395914612 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ0 {^.6V xP@ F׷z0˺~_S3ACWfmz8^é (͙gnG*wcȊ6C/Nѭem%5AC&"X!hɘ;~wT~iI endstream endobj 330 0 obj << /BBox [ 0 0 319.642314222 80.965240212 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 265 >> stream xeQKNC1 ްe; TBbU[V,>ΓشXxP~^׀=#S{@> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 170 >> stream xڍ 0 }\4[|A}cNܘUƊz'_76IKe/&NЌV k8M۫"!"436'F5(Ž td#S(A6> stream xڵ[͎SF_Y-{J\2K^?_Eɶnzf(J*U6'\/t闫;9}'3Kqab$O)xcl6Ɯ c&cLCAf m+_)cdÔ HͶy>dr"w$&~dN"6XcaHkyyQY@}Y o:4|,#1^{~2?EOq4c@=Kyʲ'F߂3lh%̾}&Wt&[@D6>Ei#;mp~/ vF1gvL4f 1!'**ģ<,cMmXG>۔QYmhtbtɍ 8OPXԑlyjjxDtԑ>N&3>Ɇ{ c( aSm FM!/Ba0mcczYn^Fx &O$ycr`1͹Gm.)p,g9݊BMl/'c`զqSL{7-. Nr>qfQ"WFK;a*+&6bb3@c0 ~FZ@@`'СS|#Pi|0|&_@a Pw,u 'Rh( I5Jڷ*W_\"G5v|4ė5s=.ƿ׭D;,JlN[%('9EBqؙ{0>\׵^9k* + "pW]mJ86X+Ծ/@+vǸJ ~͹YGZr#R FrjA |޻<&z$"^0G4:MNXMG|(li+#rHA !U:qSE5&7ܔvpSnMAX5>PC@2lw:>ay&:Mi ?L2_hWk=) F^ Y6`C8'P'o: ƸZ>lurjq:9;H=rv3`PԹ?k숟*@Śo0řb;-ȿ_;~1s/B~ Z ׹_./z_̍:by0j`:G@5zx >P/A֠2N6`Ŧ8\5$zX⁓;#3Z!J7x.-$1V^/FOGirf;Ca/F@/R)}Hۡܔ|{? )B*u 6:A)m =?U(¡Q#P[9XSl[D. v] PuE!ȺpE a1uȖx[)e-S3JOasA7ƨD*F1 mg#Mcul1sT̵PE=\=v\ U7\:dhА˞kRIѵQBJi[%օ > gm46|{YRҐT.Zjc3kkjGd:Vq\wڬxrecnrQRпOjZuͶn/nbCn4{d(d͔Zj~þvM![D*xOP<w*12Сo,?nAE2@:da;)547al_p*9QT /qfQ^7b<doF]l ѽ_pugruٷP{_+dVzQR[L $ Wt2 K߉yjP&NHtDGR3ͨ#( æ ;#MDZTr:ߍO]w?h2C[N.)xa4#Uj8=7L[vpp\}w&P=%\F_);APw:U*杻a "M>d^ā|SJx\ܰ6yM ,K\NC? pdzY6! ݓ-IeX( ʢZ94`9>C2HhhcT6i^د ,B #,g~Jw)–h^X'?`9hὕ:.J18u^KdFn`W## )J[; *# .ˁ엳@ʖIɾ6{K endstream endobj 345 0 obj << /BBox [ 0 0 527.183325591 79.322581214 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 266 >> stream xmQN1)x |%&'eɖ97^ڴ%Pu>ƫ M@SYa9;8]`} 0n> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 263 >> stream xmKNC1 EY' 6P xTm^Uʀ> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 269 >> stream xmQKN1 ްO\ 0T"MUʂMUEIg?焀j]"x7In J,4=r~9&`y|:VU c;c[KScm;B#Ib1&ò2a'u0吰mBHD*IL5 gP\ԒSun 誆Ք;v7*Ud5C#-&YASheմ+,ݩ1.+ZYƞ+r\ endstream endobj 356 0 obj << /Filter /FlateDecode /Length 3126 >> stream xZɎ S #R rK0 G!%ʵX]~4m/vW_vOّ7uIb$/r}%}@២ȼd*(9-\s#"=,d[onQvBKržvvKo {HNqăщcZysz8r9="%ߐ`{?=rxHU}`bv'GXJ\ z@)g%i0C @09;B '}J&yY:1\)!nf>DeՂ*xe 3 /QR[(A3&D`hcU/- i Gl =_:CiJmIeOY _"'=QqC{eN .{XAXmR0ͯ-ɒ=q*#J( @#qQS{ZD=xN"Y%n}Z1G5[w2:7:+%a,9g;׾c3;k!6Zcr@$龥2%(YNʉ]/~)DakV=08'Pq˛-Nrz Q[tRe?%.,PxF{SkQe*Rx$"X?ºK>ɇIwl)) uq %kZrY)ߗ"ua5K<m1YS[J\ ˔=?f߽ޙ?g4bl1±` :s|MR }M\R^"upf^aoT@Z_w*v}Wr{g&/E}, (>nqO f ( $AbQq.|L >pySOi ,g-IM/K#Ē%)&~#e- zuE S'F Q:#2OpgNYǚH 7_PtcKr!%jN_f/ؐznn)8]kb-|pK4\`?݅D<(7_Y'3FNK'VZY m1$GS0lyJMR^b $(O%w &akj.[\=!:q}Tĝ;py+tqK>˘9p(y߅.FfsgI?uNx`Wi7Q'mk>*eA E=ж}ڀ+|Hn*z= .2}wzBwZٝURT 2ٔk.u5}"GUXSyھ\ZףWz,7ўdS޻w36 R=CO㲨65h&N%ADya-O 4DFnRXPczRу̰_F7'h2O8(C?@Pҿ ^Hg(+ U&)NF@}6QnhE5ueJd V>P,h#&xQ`0,/[wh8ZW_:#LOZs7YlYFx+ɱݟ|x_+Z~ `He6L(䢟Rѻ306d]]s7%4Mۍ5{WnCU2LjJP0 ޥ c/j3&G h)\ 4yD5cqFYAn nS:e5܆B^8 PD3{K *T^9v"6rD!uhY1K>dv;yã#a`trR>"̟r@0/ ɇ? #2§F0/}U @7ĵp.Q&090/^/yDږ~+5,JgE`5F,^2 lE*j%ӅZ9f`h")5]m V^ U@fkPnQrOPxK-G<^PE (蜗hU=矺\rMSYvLD8Լ0%)wzMч|kÙz/ ~35MGh4l<]j.D!ã ' y,ի| нx7)SҌft~ԼiH(i`{Nf:.H\&n0 <fO cf? +XyC4 6QD}ƨ!Z֔(*5z13y1iGiLNudEaHX4W0E~W׊Q[&is[}Q|P%6P;}E ›bQ£)P94kΕsg6S_{AˁTT] a?$ɵIYD6~9K 2ڜs`250tD%NQg*p jb4G"أ/_dژS2ӻ,ʥ[5j0&إJ鐶1po@e  7 缷hn:^/-C*k1+-EYjـp0`_ 67@KXT fx 4TrqAX̸kk`ͷϞ.U]_PZtWyYu6Rͬ pP}gD" /N&!]1O*JN0D e`Y1_u2- o:bP2Ii`ȧ ] lfங̬rK#Nsm^ypmz=u`|n N.[6n;])huGfk+>/G)Svi;b`S\Fȱej,:߁NH$|Mj56-sMaKĞknq/%k:ʇ|̓jkiݪ~EG=hVeԆkT{k TV*'Q]tu/ endstream endobj 358 0 obj << /BBox [ 0 0 526.394626717 199.309474237 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍK @ @sl|/P\'ZjŖZ^tԊB& J a+Jam l?Q+hT]éV:&EJSca+"lʴGF؍6$' fT γ6Mr!H.Ddj8Kٞ J endstream endobj 359 0 obj << /BBox [ 0 0 526.394626717 181.831088131 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\$Z sƜ_߬2DAJ|!"冓 U4fMw?tv+8Uݚ!Cigllrѿ61J&0KFQvc *Y, ,X0 jX>ﲈ^$v% SY4nJ endstream endobj 363 0 obj << /Filter /FlateDecode /Length 1320 /Subtype /CIDFontType0C >> stream x}kLWgvvfPƵK R%XPF#?4EZ)bqqYpa"(Aͮ *6-hkl&ش6~t[r~|ə;yCZ-Ad۹Eyi+*733eVfKg"*IsJ$jA;$Ў'F8 NS1J$HfZ_.v8`I6s22濔~^r){KՇ[ڭsTu-A Q$b2MiԐoG4:Mj6QkӅ#aH&!aFǩpq\.uCgC.M/3ldːT.ML{(ߖ ?[-jLt:ُ/ Fq׿lBfZ߫1)j 2y8f !n+K6X@2yqeҬ(++AOy_WHPNVwo^B89l8wH> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 366 0 obj << /Filter /FlateDecode /Length 421 >> stream xڅSj0+@rp-gF04Ց& ljsRhB?͛7rn ^aн'BVb0yKZe("CVWX)I7XBk˶&'+5:i..sg[0ek> stream xڥMj1 >.PWdق2@[ȮԻUC,BX3a?a7!uH3 lRTi-zX| "9#ҽ1ChWǺtKh;"%ɡ>SX&3әM_-MKB6>,~rn_3LJ=Tu_J^Fb7.03WDɯ> stream xڵ[n#+ӗU' %]Ud5_SbKV2eb bXwp??~v)%E#?s\s'< &1aD\+GV+M>3?Wθ&ZqvEBRDb3AKX¥c5ǒn*^R|ZPױD=A'W2~u;ř5\*D=l& G XGU] ŞM8ERsQ'~A_|؎IhG%~Yq\sgxAF,Wzl5ݛz}B;>yӤ.dzn|Ն6x{r23Vv0HCī`$5x,w@s)7(efV*@Gio,aSKjYl֠`@ xWV*EG<@xbS O>RIqQ4zJGx>Lޣbg<- 8 84]1nn ޕI\>}^cF3Sl j쓀;?i p& GBǼDJ >#LSŴWWv~˛mWP*QR1w-'z9'TwB§2! ˥*|UDf^b^";^apO `+a@ UfIf$if _`v!l(@b#"+<;tËK-oE{xct-'0 *7)_OXokF^j$!YPPGE`F͒Cc^.k]DCDjYp-M 5͹*a?:]67+So"\cIj5&#8b`'[yMGCݽIEʆţXT?z(4OiQݔTs@ #h.vr)԰*rUq;lu4E*n> `v]y=AI`rXNI\Q"C%Oh" G݅Qk$g6>Aš:`A\ a&ɜ:+H4%l*:7 ߞ7etĕ6ZKR%Ey/PFk@E.=l@564c ڪlw|7d]9;vJE#${;@zԀaX O8-(] PM+m1!r{ȵG4;,М۞x'VDf,ѹη;Kll; (8P8  {}L0٪qg~l2ңRR3gq hL^ =3KGAs>Z,9O;iQ *'=v`6 YFhOm$(:h8О;H qvݗ;L2ecyיo[rGjd{ғUd⪸w;zcxB0iU .̮zYϦ) fBNߤq^ݚz4uf4Z[cѵD3"ٓ :^ f=oA#41'Ͱ V ~z\[ 7Z,,ǝxA _,tW[ҰjqfnhcB3jl*CH2Tطw{45aFa+LDp09dP5 C "8(jn%t%8\1:)Xқ_~l}3~޻&}>SBRb g1M:ZW@?&Zy([E81zY4Hs͏_ J˝*\?XGxԥ;ZdU@s-\5_/mɣXP܆(OZԡ Imݲq /=(Ûjj:͘uCD) ca]=TFʟ m8UP .nlt ;+>dgs=\%Q3W*Z7~#C?_ME|֘LR KP-{M%/cҢy\%~(,<Qh~s1(oÖyŠqW9`h, Pf=.b"Ws'ͫG<)2O'g-Som=>cm>g8J0=ԫdDـbz9ۣW}6~1ƶ' =g3B:Xp58/=&4MɅ2>/hSXJ&SCtGMniv'7y$9ipVnsOgG> stream xڽZɎW%W`PIIfo9ٰ/}E.JVgU`-cϢ(:/ۗ?݁/D@!CLa;w/$.~+PSIYI(siLN(핉HXʉk(N_^`SCr9H1R|!%J4@XL`mPh/gt%d5bwii$$}xU"LW/dviH]5M MS%SpF,BgMΰ7ǭvȭU;MqēsyƦC C>8\z'Y}yD1m[&ɔ3*vف y{BljeݸF+LDߒ~Gw/!@#ʼngR̒Rfӏ )4׀!4@%H4# G8DgVHȥ'bs=lSZ_|v2xcsmäKp>>c3ΔE#&%8M%MfՁ4a5 Aw9/=i8^{y+őrZ*<1K X2R&q vO +Sj(@q(# XI ߩNG!*톍whk֘0G}IRO"yjioǷpawٍjCpChZ,WNEdGyd(<:7<h{${6d/KDfr绗ik;܀GaSNtnxLe#9ҽ4xyfPPTcK'P *M5=laKj}P^d`rkah IGG:ܧ8KyT!PXdJ_cn0*WC|[ |b ܑ>ɨ0 Gr*jN,#[Qt:0']SԷSvv 4&w_ȱjLUt:{|!53/6V7. ضxAQբ&xDʹ{1նDkfS w!$}#i׵cK?O^847b;ci pgqIP nn +jTbYu%F똵(Zo<"%0pTp f4jA/exlߪ`dx{ܬلX@ H.'Og{ LD2@&YzJɚ͛Ѡm,4s)gL&>|6QJKP9˩ ^R::"۵+٬)Zm VޜY FXnx$q`k^l'(b[R MrSs"ǭ`u{av{ ?R׊.h"8mifԮzWJ+#LfcVV~]$"{OϹ`2(avQKKN}@}@}@}@}`sc߫hs5ST|,rr~vOU\ CfU~ 75f O+#kW ٩ZLq N2t*k~ts1v[Q% %ǎChC-KPQfe.? Wn.5EL__~O߯pFmO'R:?=iȨx|v%ÝEqp=qziكe,!=4ejaxr\0luvGɭ^|y类AL M EZT{~(̖)Qz]X@Ť=#6ƋiJD%RZ]Dp(`LڐT#ߙV`cl)Ƙ\(CƴdsƁ#2!ϵ*? 0wzl':X{zm8@$Aö#?=?GsUo5F?;ȵ6JّX{}ϵxL/ʡ endstream endobj 395 0 obj << /Filter /FlateDecode /Length 1320 /Subtype /CIDFontType0C >> stream x}kLWgvvfPƵK R%XPF#?4EZ)bqqYpa"(Aͮ *6-hkl&ش6~t[r~|ə;yCZ-Ad۹Eyi+*733eVfKg"*IsJ$jA;$Ў'F8 NS1J$HfZ_.v8`I6s22濔~^r){KՇ[ڭsTu-A Q$b2MiԐoG4:Mj6QkӅ#aH&!aFǩpq\.uCgC.M/3ldːT.ML{(ߖ ?[-jLt:ُ/ Fq׿lBfZ߫1)j 2y8f !n+K6X@2yqeҬ(++AOy_WHPNVwo^B89l8wH> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 398 0 obj << /Filter /FlateDecode /Length 421 >> stream xڅSj0+@rp-gF04Ց& ljsRhB?͛7rn ^aн'BVb0yKZe("CVWX)I7XBk˶&'+5:i..sg[0ek> stream xڥj1 D @ݑl%( J} 9~&B!ɚ/UOL Ꟊ3*B20H6V/'<*$(񮔲NhnLBڪ GY4h5Tk~j'2(bV}JmT>5!7D^]b E9l`RO,͛*>/4i endstream endobj 402 0 obj << /BBox [ 0 0 393.339156629 111.917528506 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\4Y'9č9YePd)MX Q Q2to] mҴ`G I@W]X۔H"+7Ng|;iͼz7\أu )л N1Y:rf.,J endstream endobj 414 0 obj << /Filter /FlateDecode /Length 2982 >> stream xZn +R$ R%n0M`Tݖ=,ddM/'sOdN/xhsZ1KS8ElO/~0\>$ `^ؐCIbzHΫAb|o.+4ZJI.{  "ڱ1gWxnkdⳭRP !ym3>p"$FqE FQC"e+CwМULTEi8>A=C! \&z|7k̥n jĴ;_jo={KG<K:!zOq@j!vds6r?cwUMOg\؞STt>⒠Nz\|% j=Yu2t%#+⑾X̀K5C~*lC,٪Ni)RۭGH R@0Fdx@7O|9]HݮFEG̥@4 1!*!x4-94͎ ޠIWQ#hZztM@5jtw%\&#s%mEU|~i`VM= LQEk<"TS(H"ʥWR,OCr)I^ˢ\({t"ϵd/MNM4W[fO^g.4, [9E2uŽb|Xɐh.Zq'ϒgJ02{^1֘Cյ5<$5B* 芜eHH$n? ({: HߣP{+H/k'A6A c+&n㛔X8J n1`o(r}(>& *~X v:Zi`ZJ6/c,@oP q@6TbO5Rvn;&1zƎ>I$9-vi.F"Hp ṘΣ[K=EqSm,rB>YSULc hKaSz7p!Ec5kK60^CD(Fc4%q]_:Pc*>%EoiXK6*ޡ`^;?WRDzmsɖ 4ZGZ9ӒE9u^]u&U`lϱi'72f3R__#jDZZ3aqf#A#$8i$EFr{[6:?6eݥs7ѩ]H4_fAfN[nz͋4#Uxw\?f_?|.yk~ ;p]N߄5N?,Mg>Έ> stream x}U{PTUwwォ\MڽhfiػB5> XPbwweWve T0Rgr4q!i0DNiΝ=~sHB!Htq KYҬg=hʰӲ7eAE,"ORˏd^34Da $bUxne5"K#V8AQ\b;u7nK&#cyf=?mٖ4s [i 5wu,PjBCPM0G'"@ʦ"HՈ[.q|Wū/453TJ$Kd8Uנ*3nDk 0w}g "6Wzf5ʟ/7ӞQ6r rf ,LY"ve;ܥ NJ ^0rG%fq6jt C9g}d샌 iU C5L%f(h$8P 'ΜNNq}>$RPK=\ ?dcgUnǒ~ܠeu-{͞溆y_ʓBܣ 01.Kcv>iEUZvQuŽ ->P6|Yq5B+35 ҢR6Δhn^ДPr!_]^aɪ辺to)2m./+zyQDbWv3y$X=ЛCW}wvo1L@ ~B&|6~;Tkg8*8g?TZ|0O6\<"6_J6f"' 'l&A[7p>;U;OP{0QhQsx{6 %w-'{Pw\ttpt1r#BF<(z1\[ǧJl =Ij#`+q=N9 ]{t򤑔 q2!G̡ < ctžӴj= 0jC"tfl&~w{P5VH]g8*E6lx%ƅGddߠz5'j Ctw}l9]%.~•Ə0r{!Yb)0d5j{k8YLGp̭C۔NG@5+jsCSxz q0&J2'e5Bat2l8;`*dP;=iomJn}f&lM &+l21ws:g:{uXs?S)9BVͰ_6K[7HBzZg5`xMi|oL,ŲJQd@Bx<[ (8VN}- endstream endobj 420 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 422 0 obj << /Filter /FlateDecode /Length 439 >> stream xڅj0!I=g9$Ē@FN MO蟑ys&nXc-[UPv,Sn`6_u!/bkε(k$Ǯ i?=VUtoWgvX E4kW2@Y?c bE.1wmƤ0ǖ"K;=hB򦤜MϹw)͉D"G ܞ ђhiW7~tE>!{͔Ӎй=<^V q endstream endobj 425 0 obj << /BBox [ 0 0 135.304558589 37.944971372 ] /Filter /FlateDecode /FormType 1 /Length 213 /Resources 424 0 R /Subtype /Form /Type /XObject >> stream xڥ 0 }5iuēw뛹1CvA~p[f7B9"+* r" 6|̳^%:(kM}u}r~ʔ|Ap)CWƺ  fp)J .;s5x}g"jb j; 5QϢ'F]gz endstream endobj 426 0 obj << /BBox [ 0 0 380.131848099 146.874300718 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\$'9č9]aPdQ !6)se8 hxUfv{5m7! e4?6`UYͼ+-> stream xڥ0 @|@ )/(ЭXtkڥ_&U&Zt9:ć[Ԯ qE3V>״(~ALL/]ʣc2j3Z*SD=gN_ nlUD>g_ۛ!iocse,OY.U r:ZvDag>}ǯg6ZHNue/h(CqbžIT}WQgn^QkmbF|4Q<97? 5'~z/ Q-gY?koxbo\E'ۚ%U4|Vix$ }(3ݼ ς P9XFv}6tYGCF=AO:.!Rn1.wP[~ ,'~,lb 8SNsŻ-Se6O֣,^|Ҫ mq?j:R>ʵ't/r:&<'^dDy:Og3Gw!)hlýQ=_۩z[MGKAl"}^}?x.KUQ VV5x G endstream endobj 430 0 obj << /BBox [ 0 0 340.419563113 146.874300718 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\&sƜ_߬0(?B,X}SP6Xy  t] pmn0/c1XYHyolX8(oEbuͼSeJHIēzKf^}7CvAއL,S4ӏ+giے=$K endstream endobj 435 0 obj << /BBox [ 0 0 221.057280924 69.043592023 ] /Filter /FlateDecode /FormType 1 /Length 1107 /Resources 434 0 R /Subtype /Form /Type /XObject >> stream xڥ;n-7 {bV   RjrX:a>CO7zaE1FEE|˗o^pvB6loo?Do0c4as].mGgD7IfW2ڵIsD7.xCv'Mo~V\*5,MVoT>3'-ݪk~_ΆF ؉Ai/h>҅ZZ#=Q]}IZشR g/&?L} )"6s>\xN,gPHQ3|۳_ /x̠^0_g8Zhpl*g7Y=鴯:چXG\_+ h,iY[=/:(R7L;q9f@O[G೚N(v(mPO;ڂ93u;Ӂ֣S#4 Y?Ǧ CR7.B]ӳ_;YH/+OFQD.i.CjdV~ӟ'& 6T 2 (UyvԆƻ8[gjDh"%S^-𤓉 _V`?DQ #I[,vOfVFu4@+.%قoOf llב5_zwE'چC-aegOf1pnwV_tb =J4񎫏tM=.<)/M7m"}/x;> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 174 >> stream xڍ 0 }\$]'9č9Ya(MO3A8Cb]ƹWfmz8[TuәA @wn r׻3dE3M[3NPK6`k8 ɓx`I\J(v^E!%,\pfUBK endstream endobj 449 0 obj << /Filter /FlateDecode /Length 2622 >> stream xZɎ\ WX)Q`4pk ] 9P]vBNIq8"e7n~˟~Cv_/֤Kq@ob &&~_-ͷK"Iَ$wp'$[,u֭cN76'r#eUo/vZk F#A Ņ<)M*]Z9o-o%$)7RuE5 kÉ+U^k_)EEYIޱOz\f_]es}cjc.iW>Y}s3PJʳe4ұ|0̥s] M\-&OD-|9v1SPvw(sc@VQIp~[S(& e9 UE*ց]9tmf>M9|6wlBle$ \"[,-pjwt}>o^& kbgo\1[ލm(NO#{:4G9r0,4gu DqmII,wJүJ;{LZVICꆷCZ6È+PdoqRL*hbeBIs"k6sn:#fJF e*AWMK^4/T 2d7j.Ă~I6E1|Ba4yhtrIGrV5}+4)zujr¡b 2۳L=u#,qBT_Uy*uO#z#FQ>~S~5US$ ³)|7λdȨ$]A3PHª}Z,<4;Q,JB>r"^[З4V6@ȁgϲb T!+h<HP.Mpa^ .m X(C8!{g%$đ 6oXׅSdɐw1xYpvAEzJ,ak6d:\;t'wmw'>ѥeJ>4Mѹ9NYpٱ!ĺ.g\^5đ?o?h H`IPm;SB 2K%-ɠjwOA.Yaˌ{Cd+o & vߞw+?*sih!#t8p.O5O[,]>P[5 9oCDȊ\kNEl<YG?NAl>yc@,=F&2˱B09xW@(;֨HEE"J*ߩ2/G6<'r-O٣֖%;>Ewp \a3gI6 _RC6< r=݆G`#ѧO2.ZͿ?ek цg4Jmko [<զl>5@[i$tu91g!HPz{%] ַ]Ts~ޖHckJΡl|Hb[JiÌ'|u~O3¥9Mñtɦmt ^_&^U` OVOX|3`9iKvFCH ]Nmu;YZ\6)竞ӽWg6sȅZձ)5`%9r(mH-ê>+Zr!h]Gˍg:]}}eS)W6GA3̄ F㾐=Wv$d1o8oPO(Yt+2X@s]pLҞjuR=RJ,|r\g^ _t[R넏'oՠ 3k U3Vn(xsa$@1HOQt#mGӚ)HT} ޞ>[\9F:f"jFp/^ ȁ?v/dmWxkl R6jǚd1L"҈G\ms+|%,aI&cDRAWIpID=Gz&|iWi.9:(p:w$q OެVI{:kSbU?tbplQ5LS}V>@^(źϝScv498X⚐S NgcU.nw_"Yb6(u#}Sa PIN-l(7P>;>XnCc_Ne]{eӮwqEi'o6VmPN`'m ۵U[QĶ\Zc ,"f[+>5*n"TwY+;b_ܵ[4lˢrAèCǚ endstream endobj 454 0 obj << /BBox [ 0 0 175.017451646 43.809347758 ] /Filter /FlateDecode /FormType 1 /Length 673 /Resources 453 0 R /Subtype /Form /Type /XObject >> stream xڥ0 @|@ )/(ЭXtkڥ_&U&Zt9:ć[Ԯ qE3V>״(~ALL/]ʣc2j3Z*SD=gN_ nlUD>g_ۛ!iocse,OY.U r:ZvDag>}ǯg6ZHNue/h(CqbžIT}WQgn^QkmbF|4Q<97? 5'~z/ Q-gY?koxbo\E'ۚ%U4|Vix$ }(3ݼ ς P9XFv}6tYGCF=AO:.!Rn1.wP[~ ,'~,lb 8SNsŻ-Se6O֣,^|Ҫ mq?j:R>ʵ't/r:&<'^dDy:Og3Gw!)hlýQ=_۩z[MGKAl"}^}?x.KUQ VV5x G endstream endobj 455 0 obj << /BBox [ 0 0 340.419563113 181.831088131 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\&'9č9Ya(X:) P288QfVٚ ߚ(nRMgƢ`1$JSc#^)w;C#g ocf%[3nPI,H.S"xҪqb5 ds 93wu~S,Kp endstream endobj 459 0 obj << /BBox [ 0 0 170.078726991 115.90722109 ] /Filter /FlateDecode /FormType 1 /Length 1779 /Resources 458 0 R /Subtype /Form /Type /XObject >> stream xڥK45 w( ! `9] eF !sO;q|b-n|%odPzcl4=խѡo j` 1Q‚ybn(^_koEjKZzj/]_g|KVA.>ڥsoΪ$f n"kAS^I Mc/L}_k yTGf~F}{ E4gucUhD}_EnHI٪Kb/]|G$f4d&G}m9p._qH+;~D?]'_q{g*XMreYΉ;p^c詌ܵWԱn坵?xrO9tSX'q3>FsAR䪶k{o&=H7`B^h&Ƣ!ÑQt&Œړ~-P{Y/MdIPDiNjCc ~zQZ81[qZѴ-fn4iNT{⬜5?nҨ]=OIъy:L#8v.Tx4 [խʍm=lPjϚuzV-8I0$vCj F KIt/ܨO*bqqYS9a.H\Қs]1PXI304]O?p*(Tݪy4i#>im S*%~h=i2DEd#{~W+dh[=3ch+~$?a<PSў4i4vEb7ȋ4\2Q6$1)7;h=i9 [nBNG lPKFaz\:څ;#]Φ>0P7y8q'κ%vouyhupg%0KjQwqϩo1d&6T}bk ̝G4qQVI[q\ktwFRosB1tҽwfI}ה>j-]zJ\162;h }מ4q4ܹmd~B' n{ֈkxI'΂Ѱ>V]y.}yX"Zg2RKO ~8SwKKhA;<6XP%+3]'nno'ϧ u|\WiSw_^$?o= eMcWTQK3oB'Mw\\/ڋISSU}|@%ނ m02m.ڄ|[p BWC0CpO endstream endobj 460 0 obj << /BBox [ 0 0 345.35821176 164.352686824 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\4i sƜ_ߴ0DAJ|!ol"8fG,,YUgV Ohpm+`n< D YoXrӿ5cd2ݙ]%"T*-_gzfmO(:̙̺~_NS)LK endstream endobj 464 0 obj << /BBox [ 0 0 170.078726991 115.90722109 ] /Filter /FlateDecode /FormType 1 /Length 1838 /Resources 463 0 R /Subtype /Form /Type /XObject >> stream xڥ9$E>Ew,fH4JQQ `?sl?_ㇿBn%9Ĩ%?4M>$,Xy~ǻ$ i-h|O QXޞoqZZBދt!6sUFߵ'M-$dԖ,7/.UIvPU[D|~m)ĜtgTZI7X__gG=je_C$[ʱ'_oԤ| H?y58C&VwTBSPw|&~ƚ '5=|,sOKELZUbw '>L devh )A_K+V+hk0m1IGk*«shvekZ) `'Qw aVD~מ4(H͇zH#Fğ0 *Gz<†V_YTA9QyT_M},CZ힩jam[h{H5T;&TkQ .?.U?p&ٮR4 '.RQlz RRgGч&~*ݲxn)l}]hU`$^s12, ^)6<2oN_;LJixIf1N,Ssfg@4m 56;oqƝ.Di~Ygޣ8׆U '΂8.oAjͼl_]II0x⇺ Y6 vSn*ퟤBDy45Q)nH5F'M{R5gf7XX W0Hi~;zξ_8˩6կ:/.>vdʈB-SQ`A>2& 49NDR[kGvt })Gii;6Cz¤Za F\=i-OKTY^NюzR}EO0tiƛFR!mzAɴRN+cq@xIړPݫgs&of 1ɞ"6x⎧_8+Sp2j|m?lt1}mE1S+ɺ1,mDCz䤄!=ZhpG=aC n~Ow|Q_3CIR5*wQsAG Ӽz9q 7IV1#CU~AfNwI{+k8(Br:D'rYF.y M;ųa)Gm˗g}T✣1$k㶅'm\fW9Ę_<.1lО^g/2z`+tڸ` 6fbLV>*Cz|4[ 'EmkI Ռ'~OtMӖd#Շ3v}4myLJk{Tpo8޾JbF'M[Et Ѷiю}$(0opGԕl~OE94&3ERӛOp>bMqh~3a}w%6c[ox}읺G_&{w䝳xk1~6w#~VQå}ӿ2Z/_'Sj(e5#5jj(wmbzM_. " endstream endobj 465 0 obj << /BBox [ 0 0 345.35821176 181.831088131 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\&'9č9Ya(X:) P28XYek6/skJ`¥> stream x[ˎW.ê"$pрݲ.]YHV E%REGݖiY:`oi÷X!J! ;w߭^'k/rwZê}EsŹogl$IB3ۋ=dGx Mx,Fw ?/}ɝH%JC/f1Ͱ`s1!8AkV@%x?S>W箽K[@ X:fm3{HCkc8ge?3}Y?I&.;HKRohSٰ[=-1CIuQ0۝GD 1| >C"9%M)7ȋ \LLhI0>m`hMt`0(9LcMNSE5;2OK"^;  'A/Rtnc'$r1ɳbjx\-j؁\нu]ո I\&Wj@MO"`N^l-S'H3Zi/B!׃AI # RN/jT BOR+ zGV杙ĮŹTv[)逍"JnJ"|^xAd12CNJw`ö9`vGPY !)m1/#2ތGTث+;j_$LFrX̂6I0yN,9q~24bT!(ĩޔ e*#2Ӗ9J S LxLDw-(UQl<8wtGtZ3tZOt:~PNnN΂*ZD] ܰci]iH8ƹ6S\orsVF\nRВͺX;Au+""+ۥ~ט+.$ BbYX.:sV{TΙ¨;0|Q>8C|v eYV\Q+&EGؙ>obŀ/T5fHtIydAh; `>D)3:җLL-L?T@/3&=3Oי:><33ӕ^3[8ܮnMy> ΆDѨ"0>mdGK֌pKu߱)gsFEjx^ j-~\-3ձI %ӓ~ +o@'QuEI,3Ӈf@6(#BCDwnѭN6(9ČQ:SU~($sJ^RTkD20}51J!v,WS Ln͙4Ʈ-:7Qʼ bY l!XD5!ΜypDgmfSp=oA8< 塃-;jRB礪GJVq%PPmV8Tj+VpEES*ڣPj(BAxNjo\:H9ů|Z_0{ڞE]j<$ebXMG2̝Zm|ffHBnc08?BcOD^n[Ѱ0aa:%yOX\Qg)6'VEj'cm wк~l] wn+Fj1^DUWa9PJ vڤmB ]i't,dG ]Rg_`OZ*'㠀5MD[lD8K endstream endobj 480 0 obj << /BBox [ 0 0 170.078726991 115.90722109 ] /Filter /FlateDecode /FormType 1 /Length 1835 /Resources 479 0 R /Subtype /Form /Type /XObject >> stream xڥKdE罊\~\  Xm_/I1f B~uMg㧇ikњ*4,\@ix/]bV /&# OQqH3uSMqY K5beYj)-MhBNɳR:8¸(/w,@{ڰyY׀-H틾 OTP[={#ÔbjCcME?;){j0&QMM$z&i wI$TY8B; ?V>q:B mo?Υ^NDcrm+󋾋O-g(O'eq[ń!?Ճ&/5_vl_89đV=}6a>'L%O+Eړ& =DK{{~F-%}^)y2{K|Qd|h?/P8+FdL냉{O_Q&/О4h^=s70Ѽp/F؎L7wȟ0+ܜLjJ۲KOd1d[]~L%o6H&/Yo?&5;q⿑_F"ryq&LGu|H5f _]|$ȸc-Iu}_xIׄlI6]}8hwIܖ|7+ѫ VĉE\XpVU7.>i*▧Mv I6ÔFQWo!>qcИǜ-JMR ?-`5 Tkg\'zc[mE*O_w}݋w7"Fb"m7"~WQU}MO׿2Zǯ_3z)525#5j;j(Fwfm]ڟzM.R endstream endobj 481 0 obj << /BBox [ 0 0 345.35821176 216.787845141 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\$i sƜ_߬0(?BPfp eu[  t] ;6m7A+ І,c<76Jy)gh=ͼS%h N%]Z1/^́Ip+AKnA)zVǕ4mI endstream endobj 485 0 obj << /BBox [ 0 0 170.078726991 115.90722109 ] /Filter /FlateDecode /FormType 1 /Length 1822 /Resources 484 0 R /Subtype /Form /Type /XObject >> stream xڥ9$7E>E`'diGcHϮLJF`0Fw˟Acc㇏?'Gq&Ѣ^S,o_?g\mE]J:'|>& UU$9V#;)z=Ťrhq^[K;_E4?gMϵ=h]\(%kKp%V͑O.>Y eW.ЈB\c(S)-_?W)^EC=\|L}7?Wf AexӨA yR2_MD_>z1{s^(~'!*!Z&3Q_=֜8Q>%sɳhޟqQ"j')4 _4 8JkK)1__}Oh#@%8I2W m&n?WOДOFl(Q_pcO6 m;LxpIf)#,RKhZGZh[xkEH0Du&޳,&%Co2m落\l7Dy45^.^0Ok؅h7'1\ ‹6}7NRȿAU˹ԅ~$Jԇ&:ܚ?C0?7ؐQjx$o09ixrsC̞%~|BZw p/7AoSWq0Jr޴M} KĭU?qҪ"-j hwuVj/x:2Y5KO( z4f^ 94oPhVٵ!9Nz4\zrumZF ѥ#dUS~I J!nBb⻷_8P j|7VYUd렣эnj_KCvP5/E䒝&%a]7`ZEMzڡ 71=FK_0VܦB.=hӢmI;h }4hprmx~lBg miNí#Jph6_pNd|T[% }7ܢ.zLmHww3uvg\Ƌ~m'oX,!>G5 &ⲵ(W"n| <ԝ8/Α_䗋o\V]Mia1i^a4cCxv }4/C-40pޕKŸxzD%I(HҤ7/AhG]Ŭ^M|gsL%л4,~(7~93rwA/Ds8-{xdg]YjcsɁϞ_V$k#+#?W 9Ww/R<?1=) x g_0z/_W p endstream endobj 486 0 obj << /BBox [ 0 0 345.35821176 199.309474237 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\$i sƜ_߬0DAJ|!oB8Aɺ5Kr3l pM 6p3V Y@ygl rӿ5dSb2ztݚqJZS"xԪqo> stream xڥK$E罊Z~\  Xm_2|ɨ[% u7 Ə%ˏGyXȭ4\rc|)n1tnZ.!jEv<VG݂و'N-$dQ,7/]_W &sk-u"wVbNVz *$+~[ϡZl?$w G*'Z_&^ R$J^7 o5x?Ke_`D?T%e7$]}gPXxY7(3!@+;=<3H Y.4MTi_k *RƼo7ɓ_CTWgapj?ĉ8^i]uOl+1Q ѼVx? O(Hʵٛ~HJO{L/fQC]o3 'A14hJ]MI1$ʣىDwqØ@"i.>iݑS,!Ԍmo+8a! F ٛ#w~$Ώ4.:VG'a⓾kQ_ N"K:%, @ԴdqKmQMi.GYiKvw nkɓpړ&*Egs*K i+1PO-%މ&~ҼE]H(24'~W8+F꩗,tg]WT3㠉ړPӫ&oƝ'197Ez 'Yq똆8|4l7?J,p6Z*qӅ=uɺ1-mDMz D~Pk; -YRM}$1EeGWn7& =5:W_}˟0+=ǘJKKOd31ݴQDnv=irpMC6܅|6pzΆڲt"v}ԆiM,*#d-|vw3uw#mK2&ge4^Mӻwra%j\c]>­-Vr`Qq7_si _8/2.`KG]F_ͷ7N|S80-F&-]|$1cn:a?qo1dٳ$֫.]|DU]Ow=$6]pO٬0V XM|<(ʡ1.Zޤ=`5 TQW(E'zՄ9Y/f>lWߝϾ)ǵd_dE ߭w| 'KQFF<$G`g> stream x[n#+fXU,>=/]YHV E٤d-u#[:b=Xuزwyېד51y/q'q Q.c/MĶ nKd gKhYy)'H:L n'*qdէ nēհ/🧿>$y뛶Ze#c4q47 ؇d'h 鬃ǼSJ<:=[#,o82Cl80tXG> Ա6V}~͒Qeuwz,c8FbpY)$uxnY Qᨊ2#9G,Uet@tڠtݡC"9%oXlb3~ )tbVnJr~ǫ]B7!6'nB i t}G/2ZՒ&ٔ\,J٥'c{y\vE /ji$]IG%bMsN;@uR7~q=HuJFHB^ NnRxw nm=EdvjB$<)e71#Wr0I>~ub<`˼8@L+7;UgԷ6FZ&KB&Ͽ6Y3X48T#r' ^[/O{D]\]b2*N J{L,mytxO[L}B_#$F -6o1AveǮ4B"[<13_rG1ٽ< s߳s>WKɟ۟?͟㚷6j(Lnne?B8IHism@5&n|bA)`gN0g#U^srHC]OtLOhtWPw Ű՚32#fR,:)B*,xN% K W nb0AP7vBNmcylۖ"V΀jJ| JY[)ZRIK^S+5bm^pujjcT2:U2kQSJVM >9^[QS}F7nS]SV*o%\J$w.-hX!oFů”2qAoRvr|(F_'JPe*JZ$hksR^ }ыsvzޟ{n |2t5ujnQ5@#>82mV* d W+ D+鿔"x"2?N@נG`(4w_{ыu;X/փ`Wr0K eQ)9hAzH΍{8h>H;3s<zDA )5n^:KخmkmρnN %SuZp"^wsc:⭟ I lrJ&=Ѷrճ;m"U :WNeJ` ˷92N`񔏞@UQ[(LH8(gpԡ*;#6\Btu=d'F3ɻ-9Jp@Ө[^&IzWPR=P=VqIіoC"=HSn{Onu;𽯢nu;\LV@j~;AV@ߵx182=d"z?DL69Rc%%>tA\(8Q4](ɾQM#~~^^Իy)G{0|ٍd &dt1'đ R4k9aĤIle&2d%'+%ޠA#+!1@gRh.Yis0W ̀y]%R{W\X28QKaM,8V~0rPX]esZ5y;+#ӓYl%f e[H0_:wص/Zyd&gAH8 3먉Kop߶ڭ8ga(4(Rss?ڣsCZl p06CScCr1A9?10F$?17Ȯ}7o9멌ar0倭#$0o%"J: xW 3{)gr}fl[3gIihkvj!M-\}O ܫ Z'noN`">`E%i Gcbk`S&߰sEέ 0n acřm355Ma=#<`ܶoOY ` endstream endobj 509 0 obj << /BBox [ 0 0 170.078726991 58.228922425 ] /Filter /FlateDecode /FormType 1 /Length 501 /Resources 508 0 R /Subtype /Form /Type /XObject >> stream xڥ;1 @{B'H邔Al4~8ݙ!laD  ڻۯ74l"CW1}ymk5܇4haaSt0F cul'N_ g7R7\|Ùdk\(=w֝cBU||ǯƢ] +[Ch8b}g_]3Hi,EC /칇`x3:*,1&wѭG!O ȫ>Hm1|vg՘9H"s V~;]WHh(ڜ:wS$O|MeU\g'@ˇ ^+ҬDM/xe[i|we'|3~m&[mB>>}_}N7>54!Ѡl |w:]ϻm<@l(# endstream endobj 514 0 obj << /Length 678 /Subtype /CIDFontType0C >> stream ITWWHC+LMRoman10-RegularR  "B  &     $ %] &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityITWWHC+LMRoman10-RegularIgpwp7k1tKM3klƋg1kl⋳⋈TsnnssnnsFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 517 0 obj << /Filter /FlateDecode /Length 385 >> stream xڅRMk@WL`]MN!I|vAweՃ]RhBg͛7ovt &h- hLIEu@dȆl4 f~  }+\ "ryYpuƴbeS*( d>P\8τ}̗ؽR LrjOCGsmMYaD5Z/+մ>*fkPXEF$𼞐a2FVvkjzv(jJeSTHox3E5_Zt> stream xڥ4}y"Y l o&(-';p9K ~@ߜ.x-Ϗ9R}BOmЃhcܒv)ocL?}~#=[Ρ*)ݡZ[v6TsCo珿c)eO!1jxIA!Nwpx(ZTBM_O~A*uGAw*l We`G!;oZ?E| IF# / Oj"%{O02/O@ 3y=OKcF>_'0Gڛk竱3p "Jk=mGT*ہ0RObOkOJi9qꂵ+[v>af-p2©ؤeVJKS/!Jx#rF?VUI3ǯInq߾~}sJxOqD;}3}=5I^Jn?x9=}Q៼t#]vN=9 w7FBNc^=l'Q?qԨ<Z26ǀ)yv?h"qf)6GYv\681"y*XSvٜ&,e=EW~n% l6*w\eh|4HbɣWL+t8l>ipʜ8UG?$nUP?ͪj`vWE[7R3߸9Ze J?a"i[ixRNmY酓i¹G=Vdvb7ܨ/;M;[ۉ?pIBLls@&o6mcO:la`^*3ɻT}S;=Bkȗn,6 M,.)CֈGE{P0QNXBc%H9jsY<h0q7YJ9q:!i.p&KHQG<1w߁_՟4sY60H,P,^;a< ž8̾VA38:Mxs/&:t2mQ Z5DlmtGR0RCm9ai\ѫ 5kARkk|U^0 TZ*ŝ>5P9i;M5Oc33[)p3sWE\ҙFEzgL3o{\<"R4pp#ęh(/o]͂FFI U|L}1Nyhʉs~༞ 0Y8I˛zړ7˾xpu>=V+~x]sc`%YƬuQGӰUAcn/lWQhK=pgN|46:D#[Q_8Y~sŹ5h!s⋦ qg7o_qo8QG(^Q.ɉ6ܨ/Ć3v/Eqtn% KhUPE$.Ky:Q5ElU35G]fߨppN!Z(9Hb7oQ_8}(;*wWBw~gsȭ&V~ *'~_8SWG{S_;qTĝe{}y~v6h-W^`g+{"'uʸhf=3`-( [a{A㌫R&9| UY_g1;N|nZcg> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\4m'9č9]a(PzCP:8,̬Uhù5%¥N=D Y '=#; DNV> stream x\K ϯ,X4`ޒm% c=$UVYCebMs09//÷1CLs,ۗ!D?(}?1h ^~;|]P֘Qְ;>JBiFtp9(?a؃t3|w/;qUKcT`Tu6'̮3qrdX kq 6+d@@1:A1s,ޅxаx+8% \A .LMEcc% lsPVSʩ}hu J Rf@.|e?jp=h"p>݉&ri@b7"(}Yp5{Ɩ۰ml7$za?F]pg|=6>Yl{,ٹ 0zy0}ql\:KQDUyVܱ>B' ZCңIB16!}zl& DZ>$:E)ܬfAǦ)o*X4K-2\dDhGNB(D W`A x$E*4lvVpx-d{-݇:A#@W` y*x<ݳ+<Gv7UGSkbj9܌M/bJPZw˥蓑_"|9P`mgP#o_'^jiN,;G[2;>r)$յ`DU:2O2|Wz21PA8us}kbV8jT{cϰ.k& & |VJ?;׺H(e6;c](=6wκ%1{46%ժx\$ihʊ< Ρ5eBuNp#:?}wt #ٹ5~\.'R^&ŷmh.ㄑ=@Q9* ]qbb\zj-c* % ![ݏ{ `Ez\Y\mR0Q)B]]D рʱKhR14 o 0mr:@Z~jO\ci~USꕏҋ^l@@\z[;\0Eo.F.PtX+- ۬:6$@U-^+Y0GŎ!%aab}^qBU/SMunD)W*;lpy.4ѧA,|Yأ;߈pBڏ.8n6`"5*7MN ?DզN Z R;ށeATLئ!yM `X+#BuaICPޯz*nh,p[-ƺ)EŜ <4f q㑉VLm1dH-]D!茟lge š2SMmX K} ۅJc0nVd樨rc瑊كH8ΗbWFjVuzGn)Cd?>R;b3QLpgXv8E,{B6ux'g,p' V T2 ho~rufuo`]g!yT-M3Յv"78WJc@NuCYm7ޕ:/ţRZ}+\.&'ԺM=pk_ʥ4Vˡ=צRRI̯IrgFQ]75uYN|N~Z>_&Ə?KaN!Z  v~r֡÷pC1Qgt10MTQo~Zq@W?:UX^AC0)|fH)LGEwr\XoJ9*9^@ +Lj`._k~c$dR <@n#/nm[ V@#ț[C9<zf[AUmC۫ڂtN̘x)XKaQobb6â(-PFA$G;! T% endstream endobj 542 0 obj << /Filter /FlateDecode /Length 298 /Subtype /CIDFontType0C >> stream xuPJP'I Bhԟ8kAvF*>чwQsڮUf[kqkYP((IBUS WP~Dcx2J-?D8|KBg@:_T7Wk?c[Mo{ѽp@&lHV.02C !r),J}+|?P2r<9.wǹqqͰB؁p endstream endobj 543 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 545 0 obj << /Filter /FlateDecode /Length 367 >> stream xڅR]k0}W=glߊ]7aW\]@ /qֲ`r99Lb k*zVd-Q4{DV% 60]ǛXfEТ"̹A=0=ŽDQNLOm*ڙ7]Ge /R,&ֲ4]֎78zϸ`j Wc8m=R2BIW7X"!@Q] baȹ%mUhL0f}:}Zxgf{}sW݄0ЮdXW)Et$`5EJ׌~j/F`Vdžl;*'7Vql4 uOܾ@;l endstream endobj 548 0 obj << /BBox [ 0 0 283.464565253 374.720530433 ] /Filter /FlateDecode /FormType 1 /Length 6389 /Resources 547 0 R /Subtype /Form /Type /XObject >> stream xڥ]ɮ,q߯/(s  ߝmi6}EVYŬ~қω f&Y{׏{Wh[M1o-!?m[魅*oiBٯXb- [%J5B>)bPa ~Oۖ<`/[ N=W_ӿ{yo?CEO?Q7ǂny(ĭ\x%0.[c[I'4j[>0[5F}kW}RwZ)B~{k[ E^ goe!fەo7X+>Wv:\ت/_L߷ֶX{ựJimA$? 4#[44J_0H+l] D򎾉2֪c,ךO=yO0z{=u _z}=(C/v݋g}~BU0Ɣmes̺_|}/3=@k8O]1,{+ē`j0ؐ L+~[5+NZC֚uǶ?ᄾCc3} !ҥ_cƸנDڀ1<)@_]sWj?>-;=$64Z 'o9vz8Z%BQJBF)t ) -j:XerQ<9B99Z?ZK)r[ ج})J':r$[Gs4~x"uMb}e_?LࠋS].*x.zKZQD_ 0񌿋jX>V~KI\( '8Q ŞL8' H rb,C'-'0v3VV x(qC ,-0 0APmvdai a86gal8w*~OXZL%[ >AM,8 0&ND\wu_ 0L_&ߣ#W:L&@Ŧ8cR6]y8 ēE:o]TDoL|é=-uo(Y2Qx+CaԾDҿLr]T9}5lb4XïNH=Ĕrtd¯N3r❶] O}iR}n5- O8ͪ/;d;jO2&fe]fo<gci&9b1+>DT ܞCVCK gFhN{eR0GaɊ nW"Wςy{ao9%+B}D/?ϿFHȷA^eja+|j1%5@X}$í[IގhY6l1ߞJ?4= ǟQ{"hz@NwAm(0<ߒy\iJmB8F56@l"!>ȣkRi!ɊQ 2*6`0P/ !ehaw.6m. L Ur]_Q!``iuO[\2_'_<PJ] ҿL ɓylNBs NxbSSc%I(1$\k1K_ ɰòZ\4G"n\}I ,+OTPmwlwE {NEK 7:>^dԄ/OHR1:ȖB_'y PKM%CgMoi}PJxY5N _?(7/! o'ÉףJ? _3#pz2#~~|%q2lJ= s/K7z~`Zo>#jZgRV˛g!fjڑ"71ΗTi BБ'qa[4|_-W 6}XUrw?įok<wFn} ~IDۣW !?$}zxc <[@yoӨS\pAJUR(F . RL%` k0J0 0PI(0qk&B&ma+ MUb/[܌wOgcrzdT+쉔7ѹJ×4-A8ݝ\ _p~8ŽmD^d(0"tx1Gɀ1~-ąb m0 <$F&5_V"u@Q=y2`0OqU9ZqnLΓ"d {$A~ʉ+ijs\qf ikQɭj[LH܉t_ 0<%;hG3wx5~ _i7zngkKL<'_ݞnۻ:~/E0VacuCԍfyBKy*ܯh=$<rT@ei^+o`}d\K9~pِ5Ks y׮prD_~yC]&R"!sx%l0Fw8.d:_ܿOMź J7<$b~j!U0ϱjYL3 0%gѵпbGsAú7|}ο{ rcj\&>!o]SRi?ǒr m0 0gzsY?=pUGF_8`Oc($uA<2#@/-|1"VoiS{ݠdG.+Ls7 g֚y0/5x+Jq"qpl~Yo<}W<$f-7F?dO=aOPkOп\8yf-o<`y,'Cj@0`aC;_x>@"ҋ'Ͻ?򜝿ʆ@mha_%\N+8$/ <-2={4?#2f ³/5`B%Wj`: Xka+0A{ֿ@x[&|F¾,c4pD}OgtݯCW74J?"ᐜn˹hy$,uwҼI O4¥& 9F}~ǧAjS I ƌ+].\<|`)7L l˅^>)KzB?郙Y}9< {E2_W<4Mx )9 k{*"jܬ1WmZTd[˛A>,?@_'.yHM,Hп68,H].[]_'OB9~ \B4 O8ϟi~]kG=~'AZ-cOoF<P^6S4`̿a m~<8}-~-EJp`n'Q~¬^U%^ jz۠̿DFx=ama3 X8 ģv J:u< %PȞ\և1M\< 0OݎVq揱Mh~YVCV ήF8Y}CONzl 'h( ~ D%cNSI,a=p8nW@'TeʂO&'/pwL#!qzJw ~%Uw: n7HoAa(Ng."^sWv4j~AJM^ꍽ#C-oR &-E(Wnqrw[J=S5y&weOy<5A{m+m4 1" xzCi.IY/Hf.E.s?_'$~i?CSq7~siA[g#|*ϹqyV={$p/'9_7Â*%yҽy6O {~ /ɊE~E} endstream endobj 549 0 obj << /BBox [ 0 0 316.658417166 321.658176978 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\4]sƜ_߬0DAJ|!oB8lˆ gVٚ_(\Mgm@@)k@2lz!efஒ"YI=;,GBl3Bi3s.8TeʿhdK endstream endobj 556 0 obj << /Filter /FlateDecode /Length 2563 >> stream x\͎# SF(X rm9HN`|RIUeUݍAr٦HHƿ^rч?i67+C^?M< $$"h鞄ύ\$(i&ߴ /Q1()%>'Shtpƫ#3{ {xOy'h9i&[0-ȇ38ܱ%sT ykn~ys мlXN!"Zi6> :Vy|MX9쥝$urQyecRqY([ckg: SP #,ݥDlo=Up`:`$CdT`=>(N#d" ћH 8)H4;{|g3W=B6kHy d&*!H".4w딏Zws:S_; 3{)  ʚJ]NG$ϲiqFl%6ǦP˛NM+  6Dѳiǿ_+^='F`z*+HY$EN̊A+SMlMxɌ.o5YCQS xjNIV /SnՒqGr`qr1g,cMLJrbG%6rHca٧-nkIr a)߀X`c:^&ccAɧĂGcAOpx, z-A{@lHxbAڣ#(*cV5莰$ņ5IzGX҈xm&K+ lqg - =>~?jW 7n,` ]gԉ._@ qC.QP`úf3xcÆ"P=Ys+ :ΎP)%8F,8Wa7kˌSv6)wGBhћjVyxs*hqDWJh|CMHf56vS^?ݻ򑱩~ul]؞Ź}֏̱}mڗuf2mAW负Ծ^ƆynOm/E~i"?W n_W>ͼqm!`Js[h@ )}'=8vM7=E9I#M>eqbd"E{^ IۼꯎdjbSc TLu/:U}_f/,_ΐ( GE@cG x&j\ <|J3S㟫T*FVj\;cI-ރmRh!}pMJ8m>KՍ4볥E}M0/P8Xt0ެfAn.D8C#YTnвB xXMAy,}X@ƃc= )cQ#ͰѺ!c gBʡ8-.`].7N&d$=p$8z3,~HI ȭ}H1FMDȱ^yHnE=;rω3?l܊CBWmƇIOžbNT}㴑5Ο{l|4D)CIF}^2 jv%+w1Kb[\_8tjEtJ: V=X ڹ,}ꜸT~_ϝ**d9t{)hdɤKgP?QVk71c:C(3RpuZKyD%yqDKaE\h@T*q}Ƹzٸ8+@p kf"ln`$G`ydTp>bk7D{[O<">˝Xg>BkH|tOtH ! X]\Hwl< ^] ==] ->"v4'CcQH'X$ZDXsb |Eg@ptEE^|o**c KEFxGLUIG.nױ6!OC|>- ޠN'Zׂn|ʟ=Ɗ׾ݭ8hp&}+XoŢooKz[q+ދ|4n)hK nk֦2AlSP<')Mx;)^p?mŷ=ng'sЕ {R66't1ϲ\GL82.n endstream endobj 559 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 460 /Subtype /Image /Type /XObject /Width 639 /Filter /FlateDecode /Length 307 >> stream x1 g O(i\ endstream endobj 560 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 460 /Length 38762 /SMask 559 0 R /Subtype /Image /Type /XObject /Width 639 >> stream x^`ECJQ(XPET@|A(""E("RT@j 齗K/fg̶Kxm}].^,&iiigAHx 6ҭFaaɓ'sss Ǐڀ،VV3%T[ bKJJʱcI߿ٳFfէrY{Ƒ_mk׾)zꜜnux ^)EEE Rσ^FsKm(b*ЖO;@wfs{8#pt ªXiKR "r~̂7[mc Fںr_}˖-6mzז/_έ.UP|O+ʂ,!![* 222 M!r{ ߟ! pHM:9cPm# ;=tlvhQQQLMZA!Uv!&aÆ ֭0`ٳO>>BfKiҺe.]-p=!{B,ʳJo_ԡC Gc#G 42\Nny`W syY-hY0BMW vX Ts%1Ƚ$AѣXE:o߿IfL>}ԩ6AARq6CF =A;!XpAMF; ,Usv 'NOva``zY!dO_s't js%Y|兠#w Й18rw> 22q 9p@nQHBW_;f[|7n =ĉ xK/mܸPN:z+ܽg+y" 05nb qfg$S/^ _Fv;>sT^+ Ƚ@ 8ܢ3El8G U̿) kۅl;/ı[rk7=۹du ;_–"ٳ`Lk LQf]B93f>ʫfϞn:nQH}V@.\ݓReZ WÇKW?C/& o踁,V^j=KzpW.e*EEE*"4(5(漠iG` {5j&;a„]vq;R$FrNw!R0?GXnNJ]|AfF9Q),)T=K諐Ny2wɭs2ߨ(*v oYC7:sw|w@! >+4lIy*ؚa`2۹d\|A DL;LA; FǢe(w䇙"&&O;uW5g }}0$e'YYYHLL~ @-k<}9;"r= EBfJy8ܮ#S? *3v&I5 N3_3@ܕ2gn sQ5HQQPtFADZAnAѩSΝ;G8q"VAOB-k<|:4A%//+$$:fSe! PeGa ~:P iqY0l6GǟK8N )1?j 3_segw}\AtZr27d}sʱ#y,ҵ*(eojvᑨ<&f̡ ~n0_Cr2vٕW_}/)v++BP4 ѐRߑIp=,)I[xB,qQRRr#,d%*/A-k<]|@a[T~@gwÆ e@ƍv+1e7+/̶C;uUy3_$F &e̙ܦpuΗh6u ^&b)mZY[@hKha,*q'  8=tZt7&&|^%uil̞=ۭĔWT΋uUyky;RZ z.mV֖#Ga:x3{*B-7ΎCqU?Pr?(([d x\&PΆ.,]U2<K%مF⫫ղhѢ9, ;u.U <ϕEQE=gem9m6x[pG{RalY[ 絃'@jjWIS;&>>LMCۿZ 0ڳi&nSg?' 7`Ϟ=?6ܦ L|El85( Hx b31_[>|x7hv(W.\ S2EEEyEkN9 T,UFfB@DρY&=Jll,} qye [ t T[AL2r B~@|mСCG%rXA|aT9g*;C6l& :#F\zJ((} $ ׀P|0 / ^FS@EkHx (x IOA# )"5`$A<_A$`_o"`$A<UAAAAAAAAAAAAAAAAAAAAAAAA#$" ^!                  b@TTԢfL S d;\ 5)%8{8p9gEg-E XqeJ:!Х!;+_T@ES@E_A<_k@ES@E_A<_k@ES@E_A<_k@ES@E_A<_k@ES@E2ywLb@P|S HՕ+Wvܹrʏ-ZtɜXs[;?ȩS&NҒa$}W80p c/L=bQSW?7u.(6+A{A-[ x$E_VIY◈ln-RրPJQ 3z1tjQлB] GL+n? Mm wwqU|AgAvA4;w7o譟,~¯wn@\E~--5r]{N=|&6ō; +-8ڵ4 [zCx ./$-@4R;/_-Y\P{͠ = xX|7](~H~/=|ը&~m"iŻ7DU-$bzh$✘kb3)\·`k2)).0 Av0KupFbkC|ܞ CBnѵksJW\ }i鯱nZr #|FO,nc]BÊ?/DA'oXt(XfL'+/_/l)/qc\ڒnT!y{īuSׯr20/D9= [̱"Z|U$˫f,Q^|Y4Tԙ~M; ntvȐ!jX,oq*{Kڌ$+BNSQc9mU6UՃ||ĩcЊ/%%% }-sc7a͙&---,ҩG|eKIb6,&:tW8SVK|THQ~M{ njKu񥿭-2^uq3$Dg軒̆*+v櫻Tdj3ݥoƷ$MZwg@|߂i_.+85{=.*5֦rfEl(dZeTrDVdjŌW!~0[_0A hoQ/ 8p[>ZCj"n_fggGEx4Jk UW|Zk~}F:I%GrNfrwu͊$Azvʩ%)ƒ3棾n{T`U5WʰK⫩ {sqG6h#XU+oijb_+.Y܅[ŗMY-+kidׯug[?7 /d 0?. *hYuLKgic:H-ς_‹svR_W*V2|gC)K*Si.ב\|RyeJU|TUYsU^G o ,=7& 9G?7mѮ|>:s8ۋE+"!a:}KEHٽQ1E$窟kb;riFkZ'%H[+@b asڴiVjA7RJW| ܣ[h#݇9}*˯,8kT|;71o^>NuƸ-뷝5]yO)Kx _tAs-Z \dW]딥W,"(4j͞z*GRRRҳN1߼ג]K^H? ̫iHߟK}rcv21+hRޗ@'K;# z-q>%O ڬpwA<_k0_KڬpwA<_kp" P|P|AOP|P|AOP|P|AOP|P|AOP|P|<߹ 6+nQy⋔ !Fԛ ]J,X`m0 BVPR31                                                             RVNjؤce'  X}4dZAAi{a  f$y阳%  .0v?ڸ=P|AXX_M&)( R\P|r%~:~l !->b >;8ŃV']Π+'[$UP+iɑvA/!lAT!30A|f)fr #D]n_{\3_qJf^h%^n]njLWLx?A^6Iyγ#H+VLM!-( eXO!hCv1=HKNėvGZdU5.o(j>hbђ* Ag%H8!rKl_ZOfW7?m}'̺l!qFi gqx!.12Q moY aX Ì홯WTRA#3ɉɵ1-$* +U6_8u" Sb#RNhzԚQ;쬏]tSJ.⬴(y#gpvw6rkY|5Uk:Q)baKS6ZN&^)Qpyö>ZsZ3]R5;raIs_^g(ЁkJS }tOV{P+*FVbG[񵲤d!@7ET: T%O1w@V,L|h1aTOYSZ WS{dA&n|Ž:B>Obҳql_ :o|{L~+aڈ^t.:#_UU7O&,aM*aiSboXˉԂE`N'.qI|04 |KR{"[Y%QG"ڶPFKE~Ho梀fvLW_ڶ#к=\r.4gj4ţ"ŗٝ0 M4-WbX* bImJ_V55a :1Yr>Woc8;FR[&_{tʙ5 N{u;R]pE\wj"'J*#;܈dT&$3:\_u5Fp5fG!+l@ѩ':_D|eԁF -]9ӡ2̺DqWN?!A8&)MtW?W7;\eQ3_xjG:Z%`ZP5Q|")O112_W)]2Wky"m0q{9S$Cb2jkb6 UV.g&tu22IþKct4)@>9X\ė N&e/sL_̗ UQ AGu2_bXxXfqKgټdZs*=ӓxkE2)zR_]ʔ@|U⼯˻354EfY5j}Z_C`-ՙGk9iT/#e`4~ؒC"^)Ӱ,ƦN⋶8aVj+gUJ N@:R42bِ/_"G3I: lF>tuDW>eV$dl됍c։RzxL$Y6*;}#Z ;9'|-"jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW~ǂ ,[xNo+,X`sb:!8X`΅鈇b ;.#ۊ ,X\xNo+,X`sb:!8X`΅鈇b ;.#ۊ ,X\xNo+,X`sb:!8X`΅鈇b ;.#X᥻ak4{U&^8ꗞOYOl E>,X`RxNol+cA|9U/a7*"6]՝ez= j/a̕O?)UyB~bn,wAYۜY6p=7Z.ƅq0`م鈇Y[I(L|!G&hP5xEẈZV *ON*ZYqx! oBF!ٰ^Ikwv^,XXxNoYLEGJ2_ic*B00HZQkJ1ė@r_KZĊQےW0 |iR;,XWxNoIa 9&UBsA|SU[qG:֒W!դn-tkf!y*Fl ??طׇyb:!8 3lΗu-=r2HZav2/cPd|Q*?g*uB]\_)7~lL 09cbqE♅鈇:+9_n9/-\nh.JM&2{t2{uⰳ{MX.#jVPF?9_:c~DG VsFʐJr(ly>|U짝<6\]%v<{P^.#Rq:adp9 #Bcm#R11>KɒeA';xX{<K mu^Bܳ$WT}Uˆ')2Ϗ0;JaQ:,Bŗ6%noڳ*BjH3q 0zĽ+w#2\]x/yXشp1VBGag^tGȅ휃hf?=<^\꟨.Y27{@WR>dBao=0wDNi3; *AlŠp1VE( f#LUv(̗X̀C'h0x+ןԖfTjj4N:}ylKHp Y9_aem .#ۊYFXTA6 t i8uҜQJ e Do[Ѣl9[=@~x[ =t&,QxNo+,X`sb7G%"mł ,v. W8O BֿaqRCVNj8[&my=V) /19ncGrX1Kmł ,v.˝ *(ȴ &MKlI\=r^ZyQ.b ;Đ$Ɖ{ҼyQRH]ͳT. 1,pc ,X<0#$61+?[(U_ң:ɲi23_,X`Rb%^86'&-_ dl/MSS=5W/,X`bБgY\EKPvI\ )4̟HS|U8X`E_|T涺O:i:H8*hܦB,m,(52_haګ x.No+,X`sMFCFBl>Qˈ<,X@Pjmł ,v. ;&ERy*Y|ZjD_xV,X`bt*Wx>[|`&FeSfG7%jiGb ;.<[/;v+Xlju"2w(ܰ6 /_Gf,X`b$)&|e ʢ2y.Z/<ŭCAwyذǛ_.Z}م@A6."   W~E`tq"V*h1㐝Kol2‚Ub!;mbbbtttTI_BCCװ8iLLU~\|9###HIIIJJp8.^_qhbUb wd N#9NA,w&Ky¢l$om Pr!+;;3JMM Ah3b"6(l/-xN߲۪ΜPXh`Kyyy9~~~jƞ?._*((:deeCfwy聣tPɭWlWF+Z 9s`uj@@gVĤpE`s 0Ds" uHQJdb/_*,,:t-fgY6[Ev0Pa`&2|}}9U^fē-*1Z/!6^!¤ Kت;H ,jc7i\Eh l*OJ"?Ñs]Ƈ%W6raN%CClv~ -L0\C`)hKٳgOrr2X TA\bFxŰUm-VAX8MM7?9=:1S.z=))i߾}WhܤDZ:tb (`hXոA JWJ" 8 xAc&;]֍~&ԅ;2݄!B*33IlAr*wWJdSpD X h1'Z [bb`5:u ¨+?NB`_}6PkZ78tff& [rD2>Y}`> k؄]~\[b t_a '=##++ \8ի0:GJCq_ޏaGב92YC@}v?ĉ'O H+R"[XbO+W`>`+&&h1JWŸZ"^ i @v]ph]/62n,0 s-[+:th޽۶mOAڗR"A =s<ëVZ-f͚uO{T`tZ%0PD|<: X̹&]JOnQ/8 eAwb Brrrn0Ã>d(%ܥzV/>P`+22F!A|rvbUlk1wBMrLƈ NS9!!! Cs,C1c7wbѓuX ]QK)kp`ŘMB[͢p]A JWƭ԰ X\ kk߲:-8 uZp`x9+PBR4gP4n̺.SAȈ&]DGG WA#ZH6{܎5زr`tZ%eM&-|%&my//lg2i qvia|r뿢10d͹0|C +S)_T&8C8CޏE֭nŽp렞99'N.\[b\-)n_Paʘ$v[M6Er .+$켲 EĂ# ' -N a1,8.+!tykUMA C#U2|>fp"2=wa-**]ŶsIV4o ̆0ͬ2H86]%W_cVv^ruZp0N E.saɓʜS7&h`$QwpАrrYJ wIuZFTno0eF lC`tZLGڴz L+DpTjcr; Y}UI.0'Dt qFJuZp䌌t ⴅ0^΋=K@ӱԇ_őUM^ 44pj: i-D/nC 28NrZUUm-33LtSI-`ƒ[t ًjL"Uɯ$:U\)5R ia$))@pB5:~|QǓFy4#<*2Bxxmė@-B+k++)_U?sWle'GDs4xJ*sHL(Ub\s>$3X)YLG|Xdywv)`xW|igfG\:-xEu\*A rvر1Ƌn9FIr*֗ɐ%gε"R}_LR2l$ɉU{6+"4p`}0U| ת[ Urzo جUb^[c+3v(,٫SuY rd+Wo 9Ĵ4𺀀|΁s30cKzTJFX 1#z*U0ڕCӘ;+Uiu iv٩1T`@>kbi/&E,lN]n)3; >0MAr{Ny329GXxZN7y q1s8#,J1zP6mڷtCZgP^ٮUbV[޼ĸcZs-V8y:܌aC<٣WpL*ʪJ /Όb ƱMLkb$ o?\-Ou^ʼn~#PjݠL" NF҃mM7[90WYj-ٲz~*}*T:vf~%r߯<ԨV['[l"-6oku^񗛅+֬bk *8c,`iԭ^|C6mߩ˯qp=al@%RRsM#D^4?QVP' AQ/藟XW.X[1Fە^ɉ h]7;[uDDWE bIBR|֌pVr0C˓J}X1y+jbfӇvެ\uXeϴw3GlEӫ>u*]|n;p;[_}]~ûc}[TŊ*/XEo٠46gۥlU'FۢW2Vcubd's?l*Vq߾l.[,ב]Mx\.(:y.qf.E5~YڌQi4}F-+ӂPa=w88ƙ) WhԲ}*zc"/u߬L e|0ܜƉ>+ZDLiB{-|s7hXΠAw>3o {ndYK4bbbSRfm 5敆ݟ6vx +VP&Xb>]}6-+Tr2"mOC'7[z};XR&%zMro&Y*~ȒprHBGrLۼ粹[`-łV2[2~[-GrCҰY j1N[Օ߁ԇŷN NA\ٳ&8r꺛W]xsǣwRbcXgO ޮЦ͖S?ܒ*Kb{~-?` lٴ{ˎlX-_PP`l1}Q&a!DKc~6*Tw6 6rXЈ#K^^rojUܴEARF7ԆySntga6v6l+/oӺx`E'-.VoD꓇, @y_$\]*"j0\X8nDkטpXY!g-aٻDl.gufԔ`U*VwhTdnU=_T >\ͅ 9 leܢY9 ziАYӦ_1w?Qݼ-7Jmk1[(˶ծ[nOOf_[ǎ~ڍiz10k7? u%lJZ}Ze-vվOT^C>_岹Ժ_,|[ڴ?z>ܩdC r?R;e-Bbӂ$''Sʢ^$b/S׍WV32eR } 1 n]RzbW?Zĸu޻>CXM8D|,#dQLDPaьQW9kQFݘtrŊ|˗jq8d~S8B*Շ3ϦۉS}zߪիKOW|*T`Z0r"@V^N\b^ԱÃ3ϝ7,w>{1bp].J.i1o @g8o5잝1emTo"QhFEZ^x۳eM<\[%-;+o{©o7l~WLjyz%x03m~9JN0y}W#TDD 8h:\Ȁq SVi$Zs&7DWr>&mƨl3Nm[sM\w"C*$"(R"}bg[+V+ZEתq+͹R?Xx {gҲU?5WS3?GNlΌIMp҇KV|9ljըݼͽ21MƓ-j]I p?wؽ= 3:H3lGJvSJa*V VEhjo_,vo^ՠAͻAb?,=L3hf{n1Fj 퀓D N xL-YIBڧ#e/qL}Wz!2lZA O ~{`*xk8S&^0j#TFd!#ҏ_aϓfVҵJ͕/15V7iЃF[toswԯoK ;LQ^EM'+Ь^6ezEuiմ~LXŲ3_@jmܯk]S{* c?Y^tQ1\jDZ|nxH N ]z`ϩ`Ufgg6) ( y ?mR%LՎU%F5mPgF_x{hڷリҮSoi롖pƗE5aR9EMyLS+M5un5kܫ71!2Ԭװvw=ZBx WJ_|ޠitAg*]ؐ^ߙ(ñuU|q**sbRRs-AiO"#"iN:EVKz]kWssx",;fCD獿@ŗH.WfŖ$9W-mJzܰg X^k#(@tJ ]68h ʜdRCorC4:Uޙ%PW%,6UkΠծ}c+UvM XnkoO>8i'BsVߍ7NvhC_}a٢z\hL{[. 87g{wsѯ4,$39!ޏ>QU2V.醦g d?W\bnv2Rׯ1EbYYGv5kP38S-ADɎHHH;y$ &߃[,c XЛjWPh2 #L<:U+θT::b{|*T5enl|vxOf+!Z76_':"%/f}7Ћ^Cֿ͑o?|N[H|z.Uq$U3\ןD|X,*Ϳegen>rsլގΈIH8stou-#3}w߆O|yŬJc;؄x1 zɧwj>S3)6ϳB{H؎U>C F,qlSk{moeL-b:5>dib\-:-8Ixx88-% y dWfy{S% zGOOf:NT_a!g7iD~^Jժ5W]]- &nζ鈢IiMQB((@cޕmꞭ/ys ſɠI_W-6s̫YW,& A=|0TA=b[@}ӊYM[6hǩd??q,.1tr=Q\l*Kb~ɞ],*13c/8%2Y%0P' ;q8m@z:-0unl:1/}ݿyUjҗxtlPj4nuS:VB~BŊZvo;AS&УDŽSâ j?`泲l"p""#ܵ zV晞{QR",&DMqT>bGn]l6[<<"s-fU"J2H0RvG}Ҳ1[%0P7 FVku m^"&*СSgʋ8QC~ܣ +I%] ^GXQ%/#1kx=Qr. T,%m-e*p Q*hVi[qDi3CCC#Ӧ +u8."Ѵ4:q 雿rE|Ic@8wnG)#мj" FM5S9+L*Lj -frl2bUfҶj iIBBBM;~+s糺ۿB:ut3<*TP^8eҟkuJ0*fptDTID* @ %DMTzR9S1 QAKl$h1˔cT5AJZ%0^p\N%Ec 8hU p;DJ҈(I;|*:"BkVDT%3GejիE|bUlk1@\ 6666 ۷oN7歋ر_ݼy޽{AJ$N!OiuToRuR9iUOrm-*]Ŷj ^ :mRRRTTTL D#8% >U9*ROiĩ #Nj"eSyS1\[b\-:-FxNk2C">BdRS$ξ_> ջ~_Լ8 q_'d+OGTNgUReSFUp]-flb[qDias'1o t\.΀l>$#ehs8QIdp4inUJ,%ڥaTeUq8dh1`tZ%0P@ٶm֭[XH%şfRk¤ӹzӗCFRj#&DOLS9QJP3q8q_5Um-AdMNNQ>i 3!N2Q#OՐBzKiQ;P#%E1Dԕ9&1䪍-flb[qDi@G,ZS} h$S~K,zg =Bmc j鰵(e)pUgr9#咬5yҳU `a.0)A!kFYA=w*ap=0ԕ[Tk60u5Uۍ9wFY+;fR(/&v14[]XT7BzztgAg(%lo10Gl0uGil1GGtUNvqm(EJEVdA^\&ftVqQ^b7d4k|Z.4M?d h9N(=ln1ey!jc+nvh}ԞWl%[lb7 4qVqQ^c7z:Im%atS70wxm1q*(#Т:Po; 44iWUl.rf7@|vrre,۪T.{ z;W!kR"^JUғ]֍bTiڲ\_JȨCF2I䳋Uj䒭ENV*",(S)j+_eAMA ֤Da C+Pᢦ(hi7ԓ_iCφ#GjfG4 ![͢8;ťU[EydtD]y#?m WEQ{o4su/6EVNjkk /~#DM^>7"#qAO⫻CP/sb+v{iv*"a\cWXU)\WMBGJxgӯu@6;ݙ|61nm6X&2imҿ4n% ,.FGS >[&my/p. :F= jH]C!^F]܍itZVײD0͢8?ZeE[E,I V#w;bk [/]aQ|',sll1]=Rd"&:Um52nk"HIQ+WJ!@đSdAISk66(J,Ⱥ?hRrA^UI0-(|fJS`;sɬ4Mcu`ƫ%=zM"V#BPsgLqEy;SYC+DyTda_ a%c{_ vClJ|glr|H8JYNOG'q/ Y]9A8=?KbT|#h$q܎ d3bvAl ^F 3_Ifc*VFbA(Tʌj"eag 6I_AV\qUbA-nJ4g=Ώ{ G}>(Bp?z"-xe+w:٠?}ECYJ բ^8K^TO%`i0v6‰ADL gbZHVoKRhxŐrŗ3_2 l63"ދdn'yŐrL5Âp-)WP|  ,Q+( (\G_iłw# /b; rEO[Q|[8mX`µ|\VˆQ|l^'#tֳ?D#]_xŰiwԘNw-ԫ0"/7e~I\_\^aӶ=n` j 0Y翂X 6l`F;-Albg"WMA PJi# ^ 6m3B+ v[(x%ش` E6ؙbТ(D6l3-*N-R즍 (v Ũl- [MA7PEDZbldL6 nŷtlg#8RW h1.blg#cP|RBP|KFh1 p6BY1ϲ*,=KbH q8qX9wȑC>|ɓ\J Fh1 p6BY1h|Gdd$}˄ apҘ?A!%m{r"3+HOOOII=< \KFh1 p6BY1V:R:a'  ?\RTXF5q]rAXRbP]p`3HKYYiiiJ=6r6BYZ),&*`3iu1փJ)^t)///;'FŋvB2^bHBu10˗ !>~P0Wjj* 5 [I#Bu?0/x ~ }Ax8\g#8,75D@zt@ZuJ Pa=PRhLZ$XipE~ J=aaaAAA%M8,-fFXiơn0N" ]"\8KtK88@b0h%ܱJ Յ ((|,s 뢷è F\q82ab&qΞ=E8,-fFXiڐWƝ:u f=J }՘DVOe1vP DK &:33U`v9bg! ,J`1\Z \Kw63811$7)ɳ1blg#c4mH*P􌌬,4d0]58,-fFƸ$iii0 PUߡuCIPW^ 1Z n+X 1pp܎m-P]h`.0DEUH{:^-b# @n]58,-fFX_^pp0€(Z~jA\# ńbp܌p0wnǶjxVZ.l4 /y=;!Ǣ\ksuKnݺkp6BYZ(NB`x:  %0K|UQ[ttF3pp|Pr5 Z% Xipb`tx8Tz+uZyUdTtR'dӦ͛ g#8,7E .+ɤ,)E%-hE~c 1mJ JXp}njxVZ.\8x eMc%.@ lO.blg#c/'%%uA@JbER4p"^ّS=kF xg ) `[qD<+-T.X#s&#?(9ThV?vLã$7o.blg#c/T=999##t!((*VTj8MEtO0f-])Ŋ ]Z,)!Hxr3¢JA$qD<+-T.X@ 6pp500d$̓_?p` Fh1 p6BY1&R@@A Հ}oAąQo9?,^g'G~z]#iȩó>]ZrXR A|]Xa~/^WO C%9Eim[4=k>û^xf/!֦yҥb\-OJ Յ P#Ӧ6GI:~`ױAa!<مϧgKgx>2.A%%QYLr62];vFksa,v!?;(s?B_||-b]|:$)))- 7@F,XV> mva5DQR6.اԬM2_KKyaEKu4~B-ɡņ8ݎ|CD_7pY{Mz~^'`… *u)A(?V7m2<)S~1)oPR_:\S 3 OJ 4ۋj5[LK-Fp0ݑZl_{wJN %eÿVZ;YS|7.QᮣB310؈gjѮS#W-?_cqE|$&&\ 3 Obڄ]US~Cx{e~ 㢡:z'|`MK7W^b'un[h1Y8w/`؀'_p!Z޸Йlb-b ? ?u7W2uL>CDzϏ;|]q =rHn~ 'YP]p`R`TbI[pϽvEyc+ѠF[ݻ9s.9^5baj"5m d)qDJZ^vnww| !l)".L'*V|ݺ<԰QӿUXbR"Nռ_gYjܐ]mX8=78+'7Yzw>Z /y3&by28i䡽_AZź…$$$Ay 1 G}oUAo1s ?my ߭oK)#!NJT?-IW$G|-Y,/7*2*wv8{',z#Щÿ0#m1q耈F  _׻~ |i[j[ƿl_J Յ  13SCBFEԫQy˧B.ݟӧOvI UfSζwnݺYƿfrB>>ߙ4ZaRa !&+FH/\uy?d~s$jtل$&'Ccm>VџW_݅BJM;eU;ڍ0 2rĉcnj7ew?nѶ{6l۰3f{pFz^Z; X@|X/\T|||jj*|R"t?D#n׮s虼Í[ KHJMLH YGy5$4agU0"1y:*q|*_׍[+N>kb䷇vکލ xgnսq̔ ΁~;* qݡPOun}Yum3x[l!Ϧ7ywi/Z" ,@ڷ><ɑys'̥=/R°I!a̰R(/-WPv# YT7E QhYN Ňob;W \.$qo ,B 5b}G;*rdt,=|_#!n]C2g5lp˙$FBǟ|2*QTXتe#18>HWҋh߯n,_**%ΝC_Vwx !tIQ}zpڝW#($&Ǜ}C+VSԨ~nߤq[[uw־Muivo|vrgo~0_J Յ -:dú7m Rh[5yjZU+? ЗNok?( j־uvcxsc+UPfm-@Om,%ZX=|=Gky _| orSFDc+bTURթQuχLCԩmw<ŋ1!kV9g1*,e{3 x:&M%`k}o$}4lL땄U+W |_.~-1!*TײV|cٳgaa\/'dgNٯj)%fNY}I>_j~/ an[;s+~ G|-Z,77g:w3bĈ^=S7BLJJR+>owo^CsYS{_+3ӖGo};:tТY:pD<+-T.XLU6BE/ΟX9a3H )KKncOǧ,rsϟ?b|otb4M{#?rbN#M?Z74MnizO_zVhؙ#bSpp៌x#Ss2ӏ>| esǍ|w~~b?׺}$ G '55+V}p8e1 Wɚ?,̖$t> zgVÑr_1~hSVF½;P X>{|F-? z_8WШ9 FjxVZ.\8Fh8rP$8ŷ25G[x 哩cD@ z%Ŏ0b✂<_G>ꝎH(oQv“O-D~X_P4hAJ)\>Lʤ%3ohrOrb ä⛓uiق]JlH50> oz^ޱ*V8V)7V}ωbn1^oI﹯=w__Nʕo1£O:re:.{OGڵi@|C22\ =ǑP]p`_oڭܫ{V6j]W:_-|woJ2}1IfJc1A7ժg f%Xjǧ_Hc#(QX ?^69y{6,{S34~؏?kh"bE ly-H4 ӚjKƯ ?x7OlMع+ox>:/JJJ(j{MlB}l0"2#ǎ r^.cEz>ML6uK_Q.c.ppؤDPӧOG2| ' Txݒuܱk7e)oՖCgΎ! oԽr::A|ӈ&gҮzݛFA_Ztߟ8vmﶤey뉩VzkbHc#o48ZɸW} ć~pD<+-T.XcZZ zQ/>zWh+5wt%/mo{X: #o[n#a$s~ħbjDy!,LA94FJ-F4k 5^a`355΀Wx˯"ב|wgKߚ;2%+įT|sbnkT׈#;j*5UhD*5w =0J oO]"[,>2 7b/I|pd߾m5jY|/kxST[ź5FFF&df>u>f8ȳb* @FݒU^׾ W|!EF%+3c)-*za׬rLot>kb) gM{ӷ졇|w/Λ7o3Swwj5jt|oB cb_~2~c{R^p,lָ<5woh\-OJ Յ Pxxxr_7ؑx[CqS q L*UhN{!uA;Qo=vɓ'M:m֜9SrOyБ3S23RG tV2R-YlOֲuN=6mp[/cw ׳ս>-uIv+FFBx}|*yT14տ&Rbb1ZtxLhg%d?@Y~[%GY:xZɑx(#5a;o۶)oRz5"(1GGnڽ"+*j12;zFr,t`Gc:~L >&bD|Ø_Z.z"8=G?s20Bn ⛓2zI^yW@Wdx[&_H37N^QT|׮)o>ٯwxlbjZ|ý>Uj+e;t퓚!>3̸mT.kbxN_oՏ;F?ںm_]i鲭MB&++s[Rө('Fid2O9WkQCqD<+-T.X@F:BrV)W=]f3%_x`& ׷~oI˖,|Zrƌؐw K#3*h)1\M[v|̐zyQo;׭֓`$">{Γ'CT ʅ#?oW, Jqwԧ];~/]`7xmذ[vyOp8v KvYC:.J?[,ұXN}-|4ǯ~zSh={ |n۷ooԼ媯>QB z=c.p %k qID|M\fGl{d‘ ;oХ]"ɨ >ad+ }o>kbiwoo~O<ϻb-5s#.'E\YG5jrD'SGzM=wݍ}I]7&yj՚'L$>P]p`iEȴ:2"4ʍ|{z@íj.m3DG^#oBR/D$]Wj5 |*U\zuxߪs·F3r\bb)1rޤ;OK{{ j͚$rBu|>GbpUs'5 T>DRoWx@|1XFrlZUw XĶ]"Ų._iݖ=p ?[_ݾ}?3/F<{>Y7[źǃ8AQ> !v[,-=RԔM·Oo0XgD|9ס_><D?F?}[}弘rEˬ]4Mб]>а1MVǂ-X?/yXipB`$?{($= $KCV^%uU+<5m0gK ?teB3'#3>8`9QfDH*MLl#%fK~G9Z UY.Ac[WF ޾Gj/Y잮[A}/Ozs8z WVc.paaa %  %pTJTkbeqQzu]ߤiU4lv$(+D|E=fScJ`]עD8#=Fp,P]p`90eyo绻,GEAOopO11tJ cŢOM7Ъ# [}Ýilf6ܐI橜$%&K޸zA#Sr&w%)ZoU~o~ Y Ac|,=)fڿoYm/u,hsK-G3}^Pc.p!!!?N+H> 0)>E -P]p`10J)j_8ř!z 5Lr!1+뭁O6$c"RbBbcvF\{nx&<:-Q"b43Xoܛbb6'bpdq֛,6~ϼLbFl޺(Ų2>pɐx<;}7k1 [TR‘&zESDOb$6WKBuH`L!QIIHCcб <a!6JZ"7DJL^ 42^]bd0,[ +XS)KKINIM׵Qrrb,… p ( % %pi\/e1xU.b\-OJ Յ #XBTf)M!IGEx`C&&Hҟ|E|KLl#%h1@X_ %0띚p۷m' <-u;v믛7o޻wTc[qD<+-T.XcŤDNIS&,C66 2+'FyJNb^bK)AZ%pA$8EL D#8% >U9*.b\-OJ Յs ~pC'%1Qx&>#'&QAبL)\`z]-futxRb2o)>d2]ꫩMY,֯ŸZ" ,@#?h㢢ew㼓8↴yaF&/8%wYFqh1X\_Q;vBfag8.¾az dece+ 1Bs\QJ(aW>U?٨s*Ŵ ,RӖQEv;쨵X+̦YRӔ -CQ YccL.ςeOgf]\Ȃw'on:Z~m$MG *cdŬ^R?-*pBVq-8PP cK&'%F׺ejVG /[,nq9*p+m~B(3T/zYDHd,_ kFoզ .mn'('gAzmtXDRJ:Nr-.YFNwhZgknn{B5p *9CX;SB0~P%231=DJ<(6`5S-h1s3RYcqiK) (b'V>Ys$L~C5Ae Y?R}u[WeR,XC4C[_gp#[WÅ#0[")X re_rzimOV 0. M[JȑPM.bD"lϩ,gwuhŷsgu%ufO|F𹃸)]F$L;#*\N>`ÔqP؎*c޴fwp i?LV9<#"˨%`^ *] +ZUQAJRlA~+1mlˆ>= +&UD{zu!Jr X/զ-|!_NuUiSl h.ZKvfWo\p;  6[_+aG</TـX.n`TÇ_~{0UfHklTQxUD-zL6صo1Wj˃Icl-vv2m/DZ_rn4-fFh1 p62M)j\iNoO[p6BYZ)vF .blg#cݴq( g#8,Șb7mAo-fFh1 p62MA7[p6BYZ)vF .blg#cݴq( g#8,Șb7mAo-fFh1 p62MA7PE$* l- [MA7PZTT6l3-*N-R즍  ^ 6m3B+ v[(x%ش` E6l`F;-Albg"WMA PJi# ^ 6m3B+ vFB`╅k+N,,Xp-Ariłw#R8mX`µ|A  ,Q Hb; AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:c endstream endobj 562 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 282 /Subtype /Image /Type /XObject /Width 527 /Filter /FlateDecode /Length 166 >> stream x  pNcY endstream endobj 563 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 282 /Length 15566 /SMask 562 0 R /Subtype /Image /Type /XObject /Width 527 >> stream x^ytם휙9g8^&od&ə91佼̛LؘŬ`6qb'`cM$hlMHhCnumuU~[n.UqG# E@,b $ !X @H B@,b $ 1N_^Ȉŭo}-}^O!%ۃ( (u*ukJJo_)+W\/tAivaE^,W ݒbA Q/+&aRhJ>|xRHl >1zqݮ.!IQ(҅1.:v\VVF i]JvirmҸ^D}O~GR*˕X)#X" !kb1~`+ ӄSN[---BjtÉGr .mɜo1zAΝ>S s"W j}J/?S)u(WjeV&)+s,aÇGxjL'2rYvMdc*v.TVV.^_+lucQcJVCLjk|Q/Uúr$3މi:˦(s`^S JrDI)^,OBJ,H&?P4Y%&I&^Qʖ*eKYʥ|& :}M7.;ƾHV,h￟º;W\ +l5>:tH7~7v,YN렀Ws2 1I'؊O?Idee {]IOO'v۶m\)Z敂0r)"%*a&h5]&.Qh(OJRt'L,@B+4Yw)θ I 2yQZC'8uau`hZFH lŜ>&c_0?/K" &iRtMYw+n#WH,<L/F|X0 %LhUV*TD6PebA@&WJU(EO+O% O/hiY#3a@ϭ!8i$AH,b# >Aԝ>e;6 X%E,LsY q0"% R0JUUUBϠ()ř3gTtNb RbQeȄ6(_&\!Th*%X^d]#?):CV4qAS]e'0y>m SךG^,*lp jb<pO<`27`\/d"8XdbC&e*~"CL]FlÈ, *UAL*cn i[%777t\i(Ip?51&E'{e~~|ĨELNLFLT_@P16^"4%VLU2F*$g9ܹsBR(p:q^dٚn| 8E" agj*]b A4^ĤR%w.F ʥ4=>ş2qG/1.j&DXbA{DrmG. Xq$`BυO秉łѨ6ƩQ |l>(Z0RGT b֩m)ז-{ݲ'}s?4'}ڞ4"GN֑;""i[(θ SBZ6)O%Iz=cf)|Fm xiIB8P__tRohbR @,b $ !X @H B@,b $ !X @HH, \89jx&2b?WBXJȐU\ R`j+!C ,VMp1$NDbH ]qCrIԨR;%1=K |jBя!Q_hB3NبX/  ",ZbW -+bXĕEB@,ʢeX qeѿ2@,?_hŢLƮ5  \l>|i],t$(dp۷o_ǡ{ʻ7Kv`sϹ?灾Z27;!/u /ff`޽7w@.y`ߗ@oMTM.5ޚ Nbq#+;|Նr﹓U lJcյJݚ` Wug [RhζXU+Bʋ7ag'ȋE5_BUA;Qjfh9܊K&s5,ݽ\hifl>ل+Ixg[ĕ_(WPF.!aYu [, (KC>bd.&CyMuEȘiCo6zxcWFF}~wK4@Bm-@,@,Cyn͝a.pkZ dpkZuKOBF}[B[bl;@2_r- ITgFL& &(B,@\XB,dLB{k2-6Yb&9YD%# W)m ޚ nb~s0zeΦuK۰Wr:v?zn l?W.?ۄӄ'>n7\B̅dpj gca&lNv^(g+GrG4r W#n ޚ bK.uKWF{ZG_cf ʅX" hu˅XȘ̅dp0xgc]dۉiSZ_OrY薨F(b-b!c2[Y,uijhVb۰蕜^n I48o @,@X6w@,B̅dp0ø]F&0u--qNjDs2*&n ޚ bQUovn MrZ^k}Z"7yYdUXx"u˅XȘ̅dpr۰mNt]r1z՗#-or桻 O!mnM ޚ NbqtxAeb[bͮ]vW[?c{69[#n 9uKȨ[Brf|W?qX47^kX6 $]m5simئѫxׄi;wMFѫlj!?@_P]by(Ӗ{%nc&s5Ν;=ƴo KyH3C^f,VYM~*ynL_g7i|=|ƓU_n;.=PWbys؞?O}i:iMf6bUߤ*2Pjտ{Ɨ]ɮzj"x|P&N8}K&s5,4nvljk]!zVFixb檭lexO/W&X@b -+bXĕEB@,ʢeX qeѿ2@,?_h E\Y/  ",ZbW -+bXĕEB˰R%|PjDclT,ZRӨR;%1'2GhX"dHŪ ~ )X5!&2b?WBX%nuVUUWYYcW+MvRՊ.Q9‘Y}u)þgMvӧ/ܹsLVPpٚ5_9sQ8c9=\H(NGNMĢkpHHHJK>{V{yw3|0%6ap Xlݚ<00EcᣖJI,fF Eۉ :ˆ%8^D-WoQ bTXał 9S xtWn;wfr.߽{W8܏)=jF>Ocba_aMĂ <^v˕m.f*~AB iZC,hF􃯭XO[+i}Ww'z-)*,q"&]#p ͽsۄJY௡Pcɀ1ItĂO8dt[|{kUͼY q`6#7Vzk[Gu~?Xއk׬^7V&@q?dpdc6Ju,u@#?' 5\eSWAq C8C.}]ȫ9rRX$ے!,<:uAD8z˕llf7p 6Xl޴A*,@9 ~} ƈ±d[ \, ҋcNo:jT[nbbKLM9KXO rs>|Bri&15} (Y CٝH_bfE̸}͗߾ѹ P,nuv4Azqp׻G,(RW7әA,#‘趑;nru9,=(A=83XWbQPp*cMsݤ{;W$T(rhUHra =Cpu3&ŢW5Nb <΋0khhrz+U@p`4}DD.=N*%hJ}BOXBbWTTfY[ !3 yP,Ze#؛q$9pRvY \>]mmdW  ĉXPØ,-ޛDr{UղMrrydڵ'8uLmPV0ƭ["XbQUטu3%W*kHN?tОڟ\aiJơ2ju.ݍ]%%RJrrWE Xtvڟw\w<4.rSwڑ}oƶIwf'b b)_^Pp>wu22tttUV_\66HE X)(U'y݆Lfؗ=%cm&زg3R"b .bg^fF!ӠADM͵s溺&ZrX0aEܯ2!;% (9{]iSg E\ĂM@YNKNg...'ũiX0, Ki@AN"9=jEMKk{ɕrZ0wnJGvT(% $rMSOb:dޠ뛫ɬ(B,ba,p_!0h@QdlZYDiƝ) RVTs{G'bQhѪf!MU%xֻQ? Uڨ3&>'Дmw+UxX„RzAEESfۛi=6R 8ޭN]0/ǸyS ;=ql&|i"mwPsc4>Zv_P,}XD'Ui0voo흴dMM|Q@\7QHtƊ\іʛpvy|N!7nۜ馝)"A,B!>Y\,41Gfc p[nV?rYEͺʮ%6hvN,PkY2_oYXl!kmb ֱp=*.8 m%. g4\p ֋?wlX_}?@w2oKr/L$$~y'v|q{jFPP8-p m .PX|Mo[^bl@jd!!A=1A UEm&g ՚k61joD(؊kbiL\۩5us0ysB;ڜm /Q PlJLݴ3ƀⳄ]nNdO6xvPU){!oj*Fn1ط7j"F,@kҠwps7Tp-kW¥fقe3֭nۘo;@0no޴y- 6 ,m\ZN\5x.Wse99[!T ;d"qԬܣL&ϷJߜno;zvE!8:k\~PX46q Ŧ MX//X{Q;wLkV+E0KPIZuvg "g:{ˮ[&YVVu|z.dj)*gVuu#T5ùTUF32,!X|P+;MG3W>;;B~ } hZxj}c N5;8sҩORVQ}>+X|oD/\B["p k#ZE!" [op,5.8 >(7FՠsfbGB,6n^`~BƲX(Zh!;U 9O8os^~us_^uS= /Ʉ:eRbaY WX(yT", !BߋJ,c86-C:VxqUcd®9l N:\Ep$qbz!”%ĢUPLlNNl{ۻ3eM;vҊً\t—:y|A eI,neZ,خx5w5|-ΓL A(A(bA)ƪ)MXX17#loǒ!'EN]BAbC>ycL=\_b-nb1uBQAsGVSY+#ŢK?uFH,j/XLJ1M]Ξ̬y{־'=3)>9ǟ9g>,)Z7`XdL5o ZΞŖ㓦Nxz5لx7žX`Kh?Tb1}~Y,zz To|b4N”/RE&N OMz'>tYy[( &gΨÄR -[?3"9里YEG'>bEe>.,|ٻZ['9żyz 0wCH18 8M,22WzK}t/B$ƝQ0ySyJ7q ELhoXӞ}-Lyx|nO; >JM/1=5GAԐZ5ۻ/o},^.p\I!p} ZX0hb?̂p ew7f~W{.gz _[!xbtʢEJ^^9_JX\*`zc^FF4$K/ƻ3Mǵe)< owO(c$„cu|%9 #TFv+xX:EOj':vrrlh=FIHP|&sorrT`Tګs h'"N Uu݇kEj)圆!z' ؈sZ&?q ٘9Tc+'breK!ZpLߗ\YYQS]sJMN t ٲe86ph=#X S,lZCk=-wܽ{8/7'/7s*,)rWZX i(`n˜-WhPi(\ҥp$VqU>hj.S kƬXȶ\'0C a(* ~fp9\+ƍjud˕ MB*.~;#}2 ցPlH] Y=z+*ZokvlNNHBjPe9rZ0 Fsmqh-}!I]w3ӎ>:%+Hggpa~* TZM`s hbuqQ  ASSˉFњ Q!cθqs2$l-  !$zH匰XxUm2@,@;wfr.߽{W8 je|Át#8iFm˙m^@FV,|해߾ݻ]j͔HN p|?=cObm0ڍBs G9aخ} 붇+_]5~?x~yõkV+_NTKUS-yk.0 ڕéS!^ >|_8 ߇7DAޚ f&^Mp{ "cOXm3#!a@L#8cMA^ b$‹@փH+Qk߃_ROQ9_|rBQ fFz NB 6>d3ne CMz`-^,!W(Xt4544 ۼ&4pA\,{zܗUJє#'X46:FJ7HrC73<3(-ޛDr{UղMrry0Ģ1-gJT44:~8=w۵?7#xu]ҔC;eV6Gȉ'ή[NGـebWZNbj}Y;R2ؖ5Ԭ[B)X)(U'y݆Lfؗ=%cm&زg3R"b',ߟ^U&yĴŖ=v߼+msbjlX@ wdQXZN wW+jZZK"1ؼ+uS> EB)3+5Ƽ (W+k4H#ظ3%aWՊjnHD, -Z,МjѢB!mdQ*mԙcnēPhJ*3 c. ͛H,Rlر艳~`+6Kbp2B69.`c6GA#Ű 2]7e6'h-릱_nKڝI)# KºAXB!]GbqV(v;B<}89T#-ІL)غ-'&P&"];C%XsC\]4:52z1Ÿ*.9 &K"&ܻ+$DfxZ5 ڱFg-jN [g(@)0u zmMsZ &I,Ľ(gn (g6(LP0-tc'ϚN@QVQ}>+X|oD/\Cf lQ ^l!3@*b܇҅1vCQf5Å=gSz;B6wr >q޲%羼fVpq{(Oc BdBXmxBYL-ԠT&` ԵGPb%2KbҪ(H&6nyO6nuKwgU5v~/h錅/}u7&dʒ n= 1)-X]>:@Y jZ'ԃל mIbA)ƪ)MXX!DD; N " rfyG/])g2xcsFJ1e3%9 =̹d%B„]?XR,lM59Dgv Xiex3QeRM@,=< +7:|k޲4’WH)f9KX)Ŕs&??{s3Už 1]f/bx"1e |{A[7 #$M ^H*Ŝ%;q-I)&M=O=3e+Z#0BbA\(*^JHmw׷xkOkJx٫ =3rbAlILz~_<{k?zrsOLvzmX@, X>:/?7o-R|1HyaዏO)g-+%X@!o`1)4u9{3M;VS[k̄5O<}Ŋʪ7}\XbgD28 mbM==1qz7T{Sh{Xw,}izv>T&!:k> stream xڵ[ˎ#S LE$u]YHV?HQ嶭q3f0]*Q;Ϸ_߿(}R& SޤԖHݨf_oo$ frJu0|BIM3$SkZ³ NCh6[B|5m% yBRK#d"VEeLj\D[e`^5 o&(o_SROQo_kTo+eY@;8x>kS<=a Ed sbR/b2RS/bdBOcQ7 ?@x%l5g=X4G"6hQ8ذ7vlctKZҖ?3o:/CikW|l%Vي&ZiɊOռR?QsXHR 4e _!R&(wV6FBTE6mJ8 MP \/%aD_nq^ ӌN&A'LGkBu@puI1w -٢ҸΝ(wSpPe63.-JhqfH *[d5 _ePrˍ"f輤 7ũ#ϴLByGeY;ђ]Qnm UeCR$%S9'갘OTi* iWԗ M$hž&( УHj[mˌ9A :`17Œ!ҥbǀC]؁rjh> +VP4 ӱC%ƣ76|/J>0E_4Ya~͗.^,u('cf9O/ɧױDKc Ɠ%Tl~KDҠcR€sFA+ZdF2~SYsƔ;Pyuk6e=ccrRfZjF96nr4ߘ,#DԿZh%3Ap}E^ miNCn}7؍X(bM"ûNoΜVWd>!eJ9 ˱HZ0Jk]-.!~ H D8'58,J(Y4lX?;ͽXnV>{-8vBoyZGj-9tw@{}TW(Qp?? Ϊ Hq&u=qLCNM0 պ9D١80F-XH-.c-+ѲSzc4dH(7lq}C*DjCW`)[A| V>HJAyB}U? uVT7Z5M ܄_ hH^&ϻܜwِ]Ln$T:-F.(\-W@9RLhU:`eirIz.PRј:jmִъ(Oc׬]_$94i';5Qxɗ V!|;֋{P^ibcjFGq| {ƈ 5uցμV؆d,?;.G YsYqVv+ZCPXr),ҽVg9 O|5p.iF N/Qq&l^ :#m z΋E;X;oȱg{,)QDr,ۥl[+E8e'>[*3l6PB 'yG,DrZ^7|3#wP z=ԛyZ`bȿVMyw@KdzO)Q,^NoO<|49a)')mǽHZk^BGttqIƦONNY8uC JJ(֛(mRҊVL.|c=JL"=J7 vXZ'7*c;+DKm6AI&_>n+>zfl>L/#( "ױG / CXx6: Ť\ V0EuƲ\s,˷dPc@ &~Bp|Nt6Ch]"dtUIcj6/+lOJ(CP,?_mFn;vΪ76+j endstream endobj 577 0 obj << /Filter /FlateDecode /Length 2917 >> stream x[ɮ+ ߯j4 <4] /r.d[h4J5pDl㗓ݐb^bynZޓM~ Ys_ ۸_ABFUe !o'kb`x'E,ow+GuɯҔgS/Iqszw6M1|t>iC pzD(BCW3oA $7j=`;?&0YdU M&Uj2=Sr3PZգhɤ֔zE) PW2ob}u'~.os$Bؑ':zұVi嗟 Wpx6)qPq r9q{\Q =W?hhz3%D5UmnKA978ؒ&63 (r*1*Tif}/ҋXeRJlj_-%(Έy o9S\ٳ;>#**TQc[ݔG.k얘`XpC8~`GP_ )1_QGGW\pq*}uݎw2:ˆ5R ONv8yjjظxW]w^-w,}hY/bvj`J'Fg :["SY@t&mP ŵPW Af.UB08*r+O逾-0ytАI d V^FQ1N# QETk0r*֦\?92M 4s| s;F-pR9^/3`zI$ZEh%bM{\Ś(B&^:t5,f5[r[,3jH;'=HaS@&+!a҇`Җ+DlEL%j}b Ml]$wOWKL%(؈EIK;ܡ5/gz5W.\t ѐTѹjh>P̩#HgFH jPESEەIr'_9^T%JQ"XFf#qݟM.Nm%R@+?p*Sspb9w !7|}fĭǻx*l+}XТ&}2..ߐ#yG=;Rxb+"7+q񉍴u-ltIW647L3zxk7c8Eko+!F&ٍ(lACla4J^Oxa10| %Va¹1@P 0ds9UI+Ōl-6ZNqr)B֔QP:lHCKX;ź{5oC`W P};Nj xw`$)EuZr[Ґ-'XCxUH&|gg+~G'}yt2 "qg =>5mEء9{c_uF}%z`cN{a~D>ɤ/jO8JC*Q>(.κ|R+1eW;Z:ٟo5#uSTvR~C"bՀPw+p]׬ ^u{A4rMs)j EZ u"_C}K?NKk\x4MzuuXe[ 7k yWRW[/C st |kxӾ1|VL,PY qK#%ؚY8!S(~UzѴWj p\UX7QK*ecmۓé=ihwORT׵d*'th*l̛FagOq -=πIx, }iB>cfrvRnHiluc[_J#saEx_W^m'Z-ePӡ"Hњ{܌/8 endstream endobj 583 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 585 0 obj << /Filter /FlateDecode /Length 389 >> stream xmRMk@WLشUDZ!)-vMrw6Hț}oم* WXZ%_4ZNmUHk7p1,\Pf1"0UAQL8;Q y] $q.,u׶ gw$N #WS{811M":? o4P^_e\O-u%M7i&|d5ЛW'41b߬\kImӢ.6QFAZ|hA% endstream endobj 589 0 obj << /Filter /FlateDecode /Length 1176 >> stream x]TME~?5[Uݳf'38ovf f]EeY4fDE' QEă? f@1z*!FM"`wfbz^OWG] /eDo(3Ja q]ǗN>EcO>PvcWG|ۘ+:jd܆xy ۱29}T) NUɬN:Tzl[*I"z}Pe"["V!o9O4>ڤ=·{q]Ta<|9Q ޞ1;nniPT5Ko8HZ}}29EV.-tt3$;dY!mUlbsDp婅IJqfc|:iѹL㰚xz+EMC. -^Q zYD B wLS _L^6j5I]ZLHLx=2Gga ký(aB Y)sQ289Rd8%5 s^>$(Yki'D$(iƾϏXGa[3G^]̊8S>s%Jc =p5C"\ 2\ب x~El(X"'! B3#ޒˉPUe9 {?4O@#u+2wbp =p'#=()hQlG\PWef<} WL[2DbtڍD.SGYQ?DZE,rbw+J?f}g^ZVˈwi-䖜 p_;DiCʶ,sH֤䎱@맞FX3 +U5M9wZ#,@ n@PjCvi7f']-4'$v}ݶ_˯"L9zThIZLLt#NM2.a3,1G؈*"C6ih6z/`!K endstream endobj 590 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 592 0 obj << /Filter /FlateDecode /Length 414 >> stream xmR]k0}ﯸ{kZCͭX{lRA؏M?B9wNgwlЕFiz/Wr(Pt ЏXr@Xc%c& Յb@[4[Qr<6P jBSHgQUHgFu;g (mXu[N(ͩ=oeпK;IG΀lv?piM":)=X)GÅ? Z;T&;l:'5U?Q@(\aF`ҠBѐ5hTOdQ-3Zآ07hBuܠ8mtb^CYw]e "VAZ~[ꞮE_ endstream endobj 596 0 obj << /Filter /FlateDecode /Length 2263 >> stream x]VKeEϹ}oϹ`z{6 % 3#81De 111!a ƅ+E & \H "`FMD{{bԭ aB"Ѕ{}\~fm~&~_Pބ=5 y !`<1__[672O^=B!_կa|&QMN 8ЯnO⟋?`^C kh#Xm.b?MA|sgҍ/B[ O#osg_Ku&Efzj_N/^T</G QC@DC_浘N{!k.2no~0M`<7`&XmqHY0]i,(g4Y[~nxRiZQk#YMeY#uuP$&$vwU_q60 ah!.cY+od p y t"F n!"m{Hڶ21^rZ8k;`U<昍2yww;Yv''C#p`v}gQMۣ !q^Hr62BM+W+V]Zց]))f=0ogcXƬd\ajT*/M<)FB^ӼND/SNĉI)9z98?RN.5iLVZNReI-nM[h%8c4诪߷B{i ,GϢ "Њ U 5K Qy;U 3#C))!]ij}oؽz{pX[ 2-~T`j{x'ѱc#`UQy}2Qzzr ]@\޽m#Đu$(?:{ vi]%[Jܪ,nft4zz=t@!/HQRtCׁL+MBlt )}p7E:AĸYyY/u5 .wr{V=`R򝝦*5bֶPԬ |xK1A[E,=^z"1ĚB>UY5yT<夔Iia!nHb;:ɰV1Йd ?a:A%7ok!+$%qa8:KoB}=O/e}Ynlk["5/U&jP\9Y{T[fɚͭE(oK_ 66#_܄1#*ݼSi͂2̂V'53tp 2eRT>H,PD=EC"%Bo+)K*Fzk!^/uB%Y@o}>: PpĤ=mEYibPټJ^+.0B%34Z-yܑ/",N@_p^}}yy}]> stream x}Tn0 +!Yk7 CWln\mI:v/JdeQ "=~Of^aI~|p'XezmAgPf"0:^M0Ͳ2;)m<7nUb0,>#~XX5z2^,LfYȭZۄri"z> stream xmRj@}+>ccJTcA. I>wWY!Џ&-͂=g~mv3 T*M3+Qm`b-lINqOB(ύ7pE{&ʝ[| |/FT Rɓ4g\g}X6Sh@tݥi2A-QV]zG% _Ů3jc`2I85h0yCI!˷y/M> stream xڥjC1 w?,WRhJL-;t7BBB,ٜO3}KZt,$L3I07LsQ5Қ5ef(ԗ+իv<mbg,-sIN4Kq?d}L5`I5H9jSEMou?3G1Of f l|Eσ\ Ow endstream endobj 603 0 obj << /BBox [ 0 0 327.342579463 199.309474237 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\$]'9č9Ya( N XJG2fVٚ ߚXp3OV"͓ 9߱W]ΐ=EVvk *)sNIxŐP,3wu~S>K endstream endobj 608 0 obj << /Filter /FlateDecode /Length 3042 >> stream x]XYkggfgwwg]_"9bC尃"R AA9@K.CEID$!!lTUU_0BH Щ;n=}s`P``/hJ ǯwzw!^@[o|" '?{cr>8ݝ 0B.щ/@X8}ˢwW#3@W??k/KеA yKƯ4ѫ5ѥFsJhM=AZh  w)(O 0o!B)OɣP-F G؇ ?Tr]k]tlQv5Q/PIo0Y+~&0>LZ!kQZnxw0lno5yhYuDMKX?dN7!8o#G~Dx# uHn1MJtI)MY'y1GBc" BG qhWcM6RHW'0'T|74}al{ ņRӹ5CXf-qJϡ͎G)˖۾6&Վ[mq0皆LPjTWy0G]&`< A cg BY `t7tvn"SSKe\vRsdjAڦ͛X&mhL jNRU 4LnؿDvQYmbލS-up|&9. 6r^F=^A zh:ӫ-2XJY.vi$ 6X:/5nPO޾omҎLViUpbr|AWsji4?s<Ȳy鏠ŀ.L@=egVx7o8!S;=xYENo-g2oE=Cm530gkm ݈#1]ntr鴚,{ǘp\`lEOpw.cgqg*9y 7<8(i00jfYau7uyiLtcpNtuS\D2o; J7ط a_7H:ܷ]=Ю#L8>!]s >mCxX7AӤ5ٔ63L Z| 8 > d]_#0~nùAa.znncpC^tZ lW`uN1e2WܵAI(ػ4QD<[աzI,- t,|m.Dwrz~n|\4n-JG|+Mwc1[V}¶I"@ϣ>:ɷ^ ÜTEZ8Kf̮:JoqWҾ>,꣭׽]gEpt.Q`#VG BqZ@*Mٲ8jkH}:LGo8Pq3,`JaŢRJ$; :q{6 (M}0r7[ 9oTS{Ɋ,Ncgxm֊c:uRGr"t6hTt=H#ˎBA37!1!Lc0/Vh 4^)74֕p}z,,CI0e].Q5i/{ry)=Ӷ'K؟v,&K62.حTj R Hv68^4MMcҎj^vlʩn cRݖJ=0iQa;ȃ܍)2d#cx={70V'E۷D9(ꅴl+$eۍ؈?]\5h& ҫƅ6y8\B020djP8˯\5&dWb&B5d2֠Xg^.7* *B/mDʒc+b]F簫vNKlˏCi:&A)E:A`_6.IFwW1}x9&'&Jq6wudz|EtY g A׽^@11t; /b|/ c/v0ΎFzyGN҉֘U!h %.uXyMoݤpy-”ךZ,E_w7n_[4Tږ\\mO < vT7\\H/y2X5$&7O*','=~),يoҔr>$x 2JFxr(VqDBkgWpB? Q׬[ u )Bk@uw#Oe=ӺxczKnr\Q"W S>7UN{I:;b}HB@!Ep#k8qR r_Fu`lF:B EVVfTR".`R6m'\9:!mmYtDhۄR(j%mm,>R<5\ŬPq>R&Wx勋h:/XP@;`~>g0kx\_^bC>d/Cyx<<1y+?LbA<B߆}rÜ?wYM endstream endobj 609 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 611 0 obj << /Filter /FlateDecode /Length 499 >> stream xmM@À2v'FA<0e N$aVuwte >[_̼ ^|ɦt.+jߥR|*d dުxK'dz.ZsÝreEuc5Ϯ z~IzÃT*f0v/T(]5pQK eצV*w0 M?Pg>7YWIEtKy?L tq$ݻk}wiku8@:SPSdhndaG7ql)@ } K4A~d)D `h 4#߬WF0K)|KwVD? MҚ&|e)%Z.2i0 -qeZM)[;"QaƴoM~n@i aּsz+rw@?A/  endstream endobj 614 0 obj << /BBox [ 0 0 141.732282627 19.788281736 ] /Filter /FlateDecode /FormType 1 /Length 203 /Resources 613 0 R /Subtype /Form /Type /XObject >> stream xڥ 1 E|AMmANNfY`A\h4L7bڹeq0/L"nƠlJ-hJC3 @A L\ dK`F ؐCNTnSI?hK2ksN52'ѳ+lH*QCHNGwx` 篎RHCMU8ʯp/_P endstream endobj 615 0 obj << /BBox [ 0 0 373.704230474 164.352686824 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍK @ @sl܆L@Ap@k[j]x}ӁB+ 2L ! }C068'YekVOSmJఁsU7yB0dS?c#`;H+5wzxuEUx!F$:$u̜ ά4UwoH K endstream endobj 620 0 obj << /Filter /FlateDecode /Length 3042 >> stream x]XYkggfgwwg]_"9bC尃"R AA9@K.CEID$!!lTUU_0BH Щ;n=}s`P``/hJ ǯwzw!^@[o|" '?{cr>8ݝ 0B.щ/@X8}ˢwW#3@W??k/KеA yKƯ4ѫ5ѥFsJhM=AZh  w)(O 0o!B)OɣP-F G؇ ?Tr]k]tlQv5Q/PIo0Y+~&0>LZ!kQZnxw0lno5yhYuDMKX?dN7!8o#G~Dx# uHn1MJtI)MY'y1GBc" BG qhWcM6RHW'0'T|74}al{ ņRӹ5CXf-qJϡ͎G)˖۾6&Վ[mq0皆LPjTWy0G]&`< A cg BY `t7tvn"SSKe\vRsdjAڦ͛X&mhL jNRU 4LnؿDvQYmbލS-up|&9. 6r^F=^A zh:ӫ-2XJY.vi$ 6X:/5nPO޾omҎLViUpbr|AWsji4?s<Ȳy鏠ŀ.L@=egVx7o8!S;=xYENo-g2oE=Cm530gkm ݈#1]ntr鴚,{ǘp\`lEOpw.cgqg*9y 7<8(i00jfYau7uyiLtcpNtuS\D2o; J7ط a_7H:ܷ]=Ю#L8>!]s >mCxX7AӤ5ٔ63L Z| 8 > d]_#0~nùAa.znncpC^tZ lW`uN1e2WܵAI(ػ4QD<[աzI,- t,|m.Dwrz~n|\4n-JG|+Mwc1[V}¶I"@ϣ>:ɷ^ ÜTEZ8Kf̮:JoqWҾ>,꣭׽]gEpt.Q`#VG BqZ@*Mٲ8jkH}:LGo8Pq3,`JaŢRJ$; :q{6 (M}0r7[ 9oTS{Ɋ,Ncgxm֊c:uRGr"t6hTt=H#ˎBA37!1!Lc0/Vh 4^)74֕p}z,,CI0e].Q5i/{ry)=Ӷ'K؟v,&K62.حTj R Hv68^4MMcҎj^vlʩn cRݖJ=0iQa;ȃ܍)2d#cx={70V'E۷D9(ꅴl+$eۍ؈?]\5h& ҫƅ6y8\B020djP8˯\5&dWb&B5d2֠Xg^.7* *B/mDʒc+b]F簫vNKlˏCi:&A)E:A`_6.IFwW1}x9&'&Jq6wudz|EtY g A׽^@11t; /b|/ c/v0ΎFzyGN҉֘U!h %.uXyMoݤpy-”ךZ,E_w7n_[4Tږ\\mO < vT7\\H/y2X5$&7O*','=~),يoҔr>$x 2JFxr(VqDBkgWpB? Q׬[ u )Bk@uw#Oe=ӺxczKnr\Q"W S>7UN{I:;b}HB@!Ep#k8qR r_Fu`lF:B EVVfTR".`R6m'\9:!mmYtDhۄR(j%mm,>R<5\ŬPq>R&Wx勋h:/XP@;`~>g0kx\_^bC>d/Cyx<<1y+?LbA<B߆}rÜ?wYM endstream endobj 621 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 623 0 obj << /Filter /FlateDecode /Length 499 >> stream xmM@À2v'FA<0e N$aVuwte >[_̼ ^|ɦt.+jߥR|*d dުxK'dz.ZsÝreEuc5Ϯ z~IzÃT*f0v/T(]5pQK eצV*w0 M?Pg>7YWIEtKy?L tq$ݻk}wiku8@:SPSdhndaG7ql)@ } K4A~d)D `h 4#߬WF0K)|KwVD? MҚ&|e)%Z.2i0 -qeZM)[;"QaƴoM~n@i aּsz+rw@?A/  endstream endobj 626 0 obj << /BBox [ 0 0 141.732282627 34.207856403 ] /Filter /FlateDecode /FormType 1 /Length 218 /Resources 625 0 R /Subtype /Form /Type /XObject >> stream xڥjA}y.@L4`XE +_ E,>[X1Y o !a Q80M&jVGT;Z34@;dP8ǚϢwKb0 RPCPClA)~k8d@-;wadQK6:/v$D,⸧{%fe=cۈ>TY< /#}i endstream endobj 637 0 obj << /Filter /FlateDecode /Length 3643 >> stream x\͎# S"rܲ[S46G.[vn0hJEQE1w/rO99|3'?CsCRdv(1b獙-8MԛR,߾J *U.S]o64qRjfcri8Y#z\A-CB0%LI.Jc΁tDe|ǯ?92od0U!jDaq?UǾ1:1CX윹_gRWі+~\iʕwb5{0V47W(a(zo .Mih%|u8P#!d&mE6*Kj2sJ|"$e{zϜ$aSCΙ?Ь|B7 )ټZr_秪n*$Sxkj_T9bUf Hj @$ÌX 7$Yzn .0s2( !|x5q@a`}.E(?fYSu>F;>][|39LgB ۛ`XkCP֓M9P zsw!J1!"Z俥+¶xzќئI;辆w#3X~~ғ^n㫡es7f2|V޵BrICPuѹGd{~T6iG4Oa5jԭ볥?jaFw|| JMㄳX@w|Twlf[_N67*p R^8sҕ')/HנS+U!_;=R1?GqSp o $c_A7\$Ȑ2#b҇V0az&ȗO'[qRY+J ح<(Uyd SVU)=Te5}:QG\}L{An F$/n@FB %Au)N%@e˰UHP=NP4 ~Xq*Vfp/a28pTFL62x'^ķpYq2>Y1r TE{GS  ĹX 5<*xCiМJkι5m\g:C#`VXa)2(6쀍GD<q0 >B\#PDYU( i;&wi {'wH5Q@%Y.!R׆Rm7:aoCxlu|* OgT WQ!SR)`no < vċ J5Bkđ?VO7 &ۡ6CO~3,CBƢ/+\\E7"k_\2oh9'2hᶮP#1ϵ*k*NmкZ>ns9VNmjtRO&X y^luк{OR}+c}H|Rٳ) 29CB(Pʟإ2*vȧ+ O%h!/)C>eBpK Q_J*B/jG>\2:@3M nRCz'^knkuitwcI^tQ<`OT ~LqM##..[d,Hsp>Fqt&f]v &aF&-sI Hmy Ӵϼ'˱q f?sWq\|-'y=S.!\YP-Vjgw7}!#m-uq#L q|sӔm HӁ#b:dVji9L8Y6q99չ͹R*Cy ~"0F pME@M(|}G&7Yn k,MsS87ȐHjG["z(C6phn1sq83E#)왔#uIE) fUClh>+Q(n52'@o K/?L장 ~zlg+*kj] ԌHb~|6Uwn*_3/1o5 |^5:ypk{ڞ տi|wO]ۓ'/:8`8 =} $?VX5C+A3 ;,7L}"ȡ8oH& S֔DWN'')eMl˚l"s@ӿɧ1x'5`]4jhOlCA6}E>F7B15kk8[~IG*Xjl6ƞTũNǨ4f4iS(P8y>UKApx*Y, _`,o/+BjnsI :s]x OSdp.*/" endstream endobj 642 0 obj << /Filter /FlateDecode /Length 3042 >> stream x]XYkggfgwwg]_"9bC尃"R AA9@K.CEID$!!lTUU_0BH Щ;n=}s`P``/hJ ǯwzw!^@[o|" '?{cr>8ݝ 0B.щ/@X8}ˢwW#3@W??k/KеA yKƯ4ѫ5ѥFsJhM=AZh  w)(O 0o!B)OɣP-F G؇ ?Tr]k]tlQv5Q/PIo0Y+~&0>LZ!kQZnxw0lno5yhYuDMKX?dN7!8o#G~Dx# uHn1MJtI)MY'y1GBc" BG qhWcM6RHW'0'T|74}al{ ņRӹ5CXf-qJϡ͎G)˖۾6&Վ[mq0皆LPjTWy0G]&`< A cg BY `t7tvn"SSKe\vRsdjAڦ͛X&mhL jNRU 4LnؿDvQYmbލS-up|&9. 6r^F=^A zh:ӫ-2XJY.vi$ 6X:/5nPO޾omҎLViUpbr|AWsji4?s<Ȳy鏠ŀ.L@=egVx7o8!S;=xYENo-g2oE=Cm530gkm ݈#1]ntr鴚,{ǘp\`lEOpw.cgqg*9y 7<8(i00jfYau7uyiLtcpNtuS\D2o; J7ط a_7H:ܷ]=Ю#L8>!]s >mCxX7AӤ5ٔ63L Z| 8 > d]_#0~nùAa.znncpC^tZ lW`uN1e2WܵAI(ػ4QD<[աzI,- t,|m.Dwrz~n|\4n-JG|+Mwc1[V}¶I"@ϣ>:ɷ^ ÜTEZ8Kf̮:JoqWҾ>,꣭׽]gEpt.Q`#VG BqZ@*Mٲ8jkH}:LGo8Pq3,`JaŢRJ$; :q{6 (M}0r7[ 9oTS{Ɋ,Ncgxm֊c:uRGr"t6hTt=H#ˎBA37!1!Lc0/Vh 4^)74֕p}z,,CI0e].Q5i/{ry)=Ӷ'K؟v,&K62.حTj R Hv68^4MMcҎj^vlʩn cRݖJ=0iQa;ȃ܍)2d#cx={70V'E۷D9(ꅴl+$eۍ؈?]\5h& ҫƅ6y8\B020djP8˯\5&dWb&B5d2֠Xg^.7* *B/mDʒc+b]F簫vNKlˏCi:&A)E:A`_6.IFwW1}x9&'&Jq6wudz|EtY g A׽^@11t; /b|/ c/v0ΎFzyGN҉֘U!h %.uXyMoݤpy-”ךZ,E_w7n_[4Tږ\\mO < vT7\\H/y2X5$&7O*','=~),يoҔr>$x 2JFxr(VqDBkgWpB? Q׬[ u )Bk@uw#Oe=ӺxczKnr\Q"W S>7UN{I:;b}HB@!Ep#k8qR r_Fu`lF:B EVVfTR".`R6m'\9:!mmYtDhۄR(j%mm,>R<5\ŬPq>R&Wx勋h:/XP@;`~>g0kx\_^bC>d/Cyx<<1y+?LbA<B߆}rÜ?wYM endstream endobj 643 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 645 0 obj << /Filter /FlateDecode /Length 499 >> stream xmM@À2v'FA<0e N$aVuwte >[_̼ ^|ɦt.+jߥR|*d dުxK'dz.ZsÝreEuc5Ϯ z~IzÃT*f0v/T(]5pQK eצV*w0 M?Pg>7YWIEtKy?L tq$ݻk}wiku8@:SPSdhndaG7ql)@ } K4A~d)D `h 4#߬WF0K)|KwVD? MҚ&|e)%Z.2i0 -qeZM)[;"QaƴoM~n@i aּsz+rw@?A/  endstream endobj 277 0 obj << /First 2422 /N 255 /Type /ObjStm /Filter /FlateDecode /Length 5531 >> stream x\ˎIv+00qCRЂJDBj0^xi` /EݰbIL2U% 0P1̸Fč87&B&BO0QV<>uŧ)$h">] "9/B=@*F*3Z,$]h/LCd %Pj|jD(頧^*d,+p| Ҥc1}e1pP_8s‰ȇ :P.R:,GwL{.RL:etOQ+ `4VȊ-ˊb)*LH(DE %>хD zUxUMI(fwZq=d7e o6 ){@':''d[q ehCxl15h0D;&4į)B|a=4$  qXר2_ORd\|4e AsбEу<_Fwu aIquɐ &qqgpPDS T^up!j%OD:VtOʈͨJ'ӥssK+Z atO+:lYZTjRpB*{'H%`g}7:>c;<{$Ng 6Z2F+mZ]i 4^)h "xJI;HDQɦӁ2p;̓P=mKY"%M%a8j:Ljc/-mhB T״ {h Wo}-)Mz܉EECG< Nan1Va+/QC Q3HC"T"F(D+i56x@ L+fWhE>=+xzIB2Ѱ|N)U V` +/] Fhق4{Qf>G)l X؏:G5G< XKjDX,=. [< [\UHX`ٗ>OPSr \`lΠ*hJE,u<ܼ&F-0Rpxdm@˱EW@Ö{z:zVSbXScDSגOMLtG1}/.U^B2L/dz! Ntb3L'f:1ӉNrL/fz)K^R2L/ez)KszU҄GŽj6tr]L_LNf?FlxðiߞN?}M7߾Z*% xܨ]m%2! (-ddƻlB0lE+l/;q %s)3"Ҵ=W)\W8_*A*L 2;v6c"YTGCC,zлf@= w ]U~[K ϸ!~vӮvu9GƦ9y,2J|@.Njj]'Q`Sm@Ugx\&MpC@yJD$,*aGAF;V;@Nb' s[ c .wUҿzY>C0. zbz9+a?Lg|4SìUT;yӋoT=8\h>8߇x3)'Yxq5@rpv> NgwL 1OM=G/ `SD802"6"%ߨ,"?4!{% Jen+|D̲&pJt(gg{*(7FbӈYD@zW fI/U?G6G6Gspu2̰O}8b8:{7+(yp]Er=M0=WYto<f 1GO_ן?|0Ѫlx~<,ɃxN/`6``?'|6<=O#iRldY̟y.UCWEhrz|8+#{*jbBb T UAPƒl-qmT@-K .>''fJtЙ;SmVXBx!#-O%m%mMkCUQ.US>:+B"hbj69`XA|YteTP}P!q Sy7x_ \.gBp$geg%gp >+? ݒʀԚ`RgؘW-v8Ў.(j+K4Ԭֺ(@>H3UB1k9P[TCUÈQ5nP9JY H@=ف$bOU8zb5.oX3gu! I.rODžX/\x*O86Ͽ~1AÍy64ִy6 `;*#sS {wf]v5͒ov 3 ;nv]#@u{3y;~G7pvwDRnPuĮ6ܤ3 OvGYĵ Ev8Ȓh|<&:&,wL x $f E<ں"UH*D&)LVTd5%K2v"pхt' 7TMxb 2$ n<* 'yYd-X3z68,pGv!-l$W8rt:kA|znCdu ,t 1c:>7TJ {4䭲;D%xˁ݀}U8`eÕxi!$xZccA5=E{;8?֮x<L~5,n~D6”yXB1yc`JT翍cڑdtcMI*݆*B$)zu*ZS?^zGOv89 |鞴4Yݞ'Ǐ\,ö;_iÝVuZX;V?[e>yx+vOXGaӨ ?F.Ө+]jb|:mZ[W}^ԨMФulqz5[De4 -Kl/>6۶Q +L/_،ޑUw7̣wϟ@3uF+Q 77^ a_6 7e a̡bq CogC谽!?6yGboP`93ARL^$k"^~u 9}Qkb->{`Ͼ/@"i[1%xZE4]*_j%*&ktۢ<ߞqJB ig8K8oRf0K׀K}Ľw"ٿXZvP,ZI endstream endobj 649 0 obj << /BBox [ 0 0 141.732282627 63.00030586 ] /Filter /FlateDecode /FormType 1 /Length 259 /Resources 648 0 R /Subtype /Form /Type /XObject >> stream xڥN0~}]?DE [.g D[753ݺ-!Ge}`"z., _朠FDVp`FQGL?mw,* [tJ!N(n{EݝH׌)dKX7fMO8bU2zwGZ'.uK4A<kg7xt?]b /_*.O疗 endstream endobj 654 0 obj << /Filter /FlateDecode /Length 3042 >> stream x]XYkggfgwwg]_"9bC尃"R AA9@K.CEID$!!lTUU_0BH Щ;n=}s`P``/hJ ǯwzw!^@[o|" '?{cr>8ݝ 0B.щ/@X8}ˢwW#3@W??k/KеA yKƯ4ѫ5ѥFsJhM=AZh  w)(O 0o!B)OɣP-F G؇ ?Tr]k]tlQv5Q/PIo0Y+~&0>LZ!kQZnxw0lno5yhYuDMKX?dN7!8o#G~Dx# uHn1MJtI)MY'y1GBc" BG qhWcM6RHW'0'T|74}al{ ņRӹ5CXf-qJϡ͎G)˖۾6&Վ[mq0皆LPjTWy0G]&`< A cg BY `t7tvn"SSKe\vRsdjAڦ͛X&mhL jNRU 4LnؿDvQYmbލS-up|&9. 6r^F=^A zh:ӫ-2XJY.vi$ 6X:/5nPO޾omҎLViUpbr|AWsji4?s<Ȳy鏠ŀ.L@=egVx7o8!S;=xYENo-g2oE=Cm530gkm ݈#1]ntr鴚,{ǘp\`lEOpw.cgqg*9y 7<8(i00jfYau7uyiLtcpNtuS\D2o; J7ط a_7H:ܷ]=Ю#L8>!]s >mCxX7AӤ5ٔ63L Z| 8 > d]_#0~nùAa.znncpC^tZ lW`uN1e2WܵAI(ػ4QD<[աzI,- t,|m.Dwrz~n|\4n-JG|+Mwc1[V}¶I"@ϣ>:ɷ^ ÜTEZ8Kf̮:JoqWҾ>,꣭׽]gEpt.Q`#VG BqZ@*Mٲ8jkH}:LGo8Pq3,`JaŢRJ$; :q{6 (M}0r7[ 9oTS{Ɋ,Ncgxm֊c:uRGr"t6hTt=H#ˎBA37!1!Lc0/Vh 4^)74֕p}z,,CI0e].Q5i/{ry)=Ӷ'K؟v,&K62.حTj R Hv68^4MMcҎj^vlʩn cRݖJ=0iQa;ȃ܍)2d#cx={70V'E۷D9(ꅴl+$eۍ؈?]\5h& ҫƅ6y8\B020djP8˯\5&dWb&B5d2֠Xg^.7* *B/mDʒc+b]F簫vNKlˏCi:&A)E:A`_6.IFwW1}x9&'&Jq6wudz|EtY g A׽^@11t; /b|/ c/v0ΎFzyGN҉֘U!h %.uXyMoݤpy-”ךZ,E_w7n_[4Tږ\\mO < vT7\\H/y2X5$&7O*','=~),يoҔr>$x 2JFxr(VqDBkgWpB? Q׬[ u )Bk@uw#Oe=ӺxczKnr\Q"W S>7UN{I:;b}HB@!Ep#k8qR r_Fu`lF:B EVVfTR".`R6m'\9:!mmYtDhۄR(j%mm,>R<5\ŬPq>R&Wx勋h:/XP@;`~>g0kx\_^bC>d/Cyx<<1y+?LbA<B߆}rÜ?wYM endstream endobj 655 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 657 0 obj << /Filter /FlateDecode /Length 499 >> stream xmM@À2v'FA<0e N$aVuwte >[_̼ ^|ɦt.+jߥR|*d dުxK'dz.ZsÝreEuc5Ϯ z~IzÃT*f0v/T(]5pQK eצV*w0 M?Pg>7YWIEtKy?L tq$ݻk}wiku8@:SPSdhndaG7ql)@ } K4A~d)D `h 4#߬WF0K)|KwVD? MҚ&|e)%Z.2i0 -qeZM)[;"QaƴoM~n@i aּsz+rw@?A/  endstream endobj 660 0 obj << /BBox [ 0 0 141.732282627 48.580731194 ] /Filter /FlateDecode /FormType 1 /Length 239 /Resources 659 0 R /Subtype /Form /Type /XObject >> stream xڥJ1y{ss' Hj+t'fWRt,\IM(|w&|9 FLn]VH/L0!zj6 Tg0CDٺ!#o=x iu;l:lA h> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\4]'9č9Ya(NX eG7l_P֔a n:4yBd6MRwb, oPEVvk *!S"xҪqb5QbxP s]bgqNZK endstream endobj 668 0 obj << /Filter /FlateDecode /Length 3595 >> stream x\ˎ# W"zHv fd Y 9TI-噹}-׃"("v C˟.f^s9f烛|"$MAGR5 j 5HoZ)M}LYr-02 dE'zgdF;Gz m?NyLőIEL7=1&x󆁾'. +֜k縷x/Ͻ|˖X1a^' ST1=Y^5Zg :DWrF13!7=c@:al&-9 X|Ê8%WS 3{>02kK䬛B+eJ1GO R*@x  B,x?HTG~`uYk}z{ Im;S?t'ˆ~jbC [ݝksmk[X2 *d 웎~[c~+*<`31[~?Hɛ2eP#0${!2c" Qq x{~"-0Ky]& lmIKg͈2Ff>e2j_gۃA|ܒSo@Gs'&skt i=h[e1Ҏ6c( Q[`=])-f@T: |e_ؘi3zتy"h9N:2(S6(SVQ7TP$dIKKj c:nFzIZOz}Mr")`=*iowMIrV8)%SJ'l;J n`@(o;O&܉M z;mJ6K6,탔7nY?D9#9UKB!(]Kj\jݓluJx )Ikn]oI  G+S]a1xxMжz{ZA16մjf Ej\FQ׹qY=˫TҺK Zv`=rLI::j\KWZPܘt<h RQy P!`P7&1K&́GU8_IJvEs2(gms9[ (-`Z v.̓<|Khs:ٰTv%ݒ4 oIYZJ?H)"3duuH۸Ƨ¥tw4fyllZ}Mw /zJ֘)\!S3}n˩,_]o rdj:_, 2kiI"m_j >!c/52FUK#תAY/C@bm@IԬ}Hbm`jG@+Gi1)Ɔ']E~H;Gѻn++!cbb0:::!C=!ea ;H6m y;I=P A#l!; I6u<&zI3xTѾU$0 G`탶BA5>h<+!8A!X}P iX[Xk,.!X7B>$&K(=D-sDGiG:_ݿLh}Ô^a endstream endobj 673 0 obj << /Filter /FlateDecode /Length 7949 >> stream xuzyy;ݙ=   IH$-RDҲ#(I%ۺӇL*㸬G$Y)ؕKeI4T*J=[f_w~}C(!$ KwxІ4@z+|:mIB}o|Dq MG^z%B/]W>@ӄ8ΓxOP+?|GޡޟMr_!!ȸz)JpOoc翏O]L)׸}'S3]X;Yh=!9KBğ`aў!D6ɺڋ>7B܇ ⯢}7v?!1F!)4_d_!$HH!eEe*ֿuBj3h_#kk|槰=!ڝt6Bxs̽bzjwN?J|G>r!QXݎx8ʅkuF+:(EY,ź޵E6d5K:fj֚QsbgֹN5aw~zOJ4q˝t\Mz\ibOLoY+)шtrFOO#5$DB#?+(B oln zUs00xx!Ñz5 K{ vF>^x1p1=r0-MvJ2 ;CTNCN 3_8)3(&Ls_9tk~eii# RߕdRۥ9˖^qCʩkE9YR^ljնiRzK͐Uɜw%dD5aݚJ~[X(]QA7~RL2y eZ$b{v[(-fVض~fCۗL^+g:[&n44c'Nx˔ىk{]}[y(Ԅ%11U1"3$:SLjӬCKƳ9e%ӘPRkj=_YXX8r,,ݮ]MK't鹕rėC ˣ3KKf6ly<%WZoXjQpVυ~[?k7PiUiٳ ^s}/Eetڞؕ75Qݝ:\a~^ZI[$1Ž7\Y~5ħcܣnױ皖ǦA*d,`^vOagR nGF}Q ZN .M< MNT&-47iޤqIkĴy4Mxf0odIyJ{7 +\}ŲJJP(l[Ӝ q+ҝۯ|k]3_3NRgFʇF,X*Pq aL0bbm10Q9wyYN9]fu<*>1^MwMۋK&+5~/̚;/K%߬6S- >"&Gi5haH#^#V@چɭ 1O+ C)rM#̶yA>V]W&,35ϑ~j\ᾑxPY Vr_M7>Xrf0FX>%]q1=؍埑_"d/9'xXU1oX6,9R[7;P Li-L$\CV[~[kR:ҬJL5nB ud_LKNh] mI!CCJXZ@_g׭~زĚKaãb8!jߓgMl9Qh8!M? 6Wj. :GԧyIJ=Nv;we5r lF3pϦ,<ȍ.Cb ۯ~z~a\wÜE\1l)Loeb*tmnLoط}Jܷ\\)%1;^MosMf j~qZy7'Wi%x@$9<`8R6T 1t+49s"H]k Rkn9\c[B s1mb"X:*x鄾 cN*q-xcjz٧鹵L[.Q?vNz[mXn4Þ>>p:|S\l׀Z8pV_I\D:m [ J;EPSf`F39V`57זZD˥VtOyCim$gljh.O#ipٰb[܊I{cp/'Yr07nji+6b[>Z1,]REQ1~-]b`6{m?V,%7qQB۩mSL,Wt.p.U? yfĜ1gy\. y>7uDݶw-ٌѰZk .•nz4S=/wv!|CL%'^7U~KȠ +ȸ).wRH}cz=K4W$qGEx?~wTZ<Ӷ1wulsJ-x't) A}:lF ZtfgE3NvS$#=&m#҂"/?C5 3VODWs}.*Y$"`&2.h(ϚXଢ<[c6ب_Ҟ;vNp"-m9DwY, Ee ƚv5}5;_~(#i.t묙ʗ4G:ApC c/k '[՚ls$qg{u'АB0t_䲋՚YE3/_F67BVru;F,dh~PRif,ɂ{?G#m?6*oI G[Ӧ2n~@kG\xȳ*=^4Bz+E7?z;xo3B=}2->+`whm=&ln[:gg/‰} c?^ A8z ׉T6I6cϊ U1szan磶?~`I-y{kMF`Ydv;Sn?Y4ՑFa_e JS=h`rrt;]1t߲f 3۰< az# eKTn|ј3z=.A+4D2/ J3ƚ?w?ͤJui+ 6oup'2z1dzl!|N4^+ }~rs۝v˶_7WnbrT(?p->B-Yp,xB>um7]L(,Y6?SلV`v ?5[)4wNJĬT,Y:=XK`ҝj&"ƎR^pd +Pbk ;bq9(Dq:~tA` KάjZ,i=j6y4ixr$MJI#FI@gArid"6הC-;8nhv6{y9dp)E^l-Z>"kyR";IԺU0{@@BYc~zX;!$M;{awi3SW[5gWӡr@{oW5.1B/ȷ&hrn:$`25JÆE7? ܇qgy WOݻ~`+2_&uY똸ɵ4wga? ӿ Mu+yԺwu9qVT.e+x[~-J@uo@p3C sk]X\}}V ]^5^7g遈!8ʷ@Bⱍ @,Add4^ || UF¸Kjwh9ϗby ӆ`~X<@ׯq{5=|OI0)|\f6KuK)f:31 ljN"tZ#YfBP!{p Vs[ R3mz'J탼ٌS•5ȗyz+(- wgH lѪQe"EbP,5,HoA:B|N;FQÀ.1=WT;:(G駽f( P[]i2Z›%)kQu*~kvJ졋RuGy@--$h&sNJ.2+*\4R_OFϨ Fgޱw٠$;ߛ7$6Z"1$ߥ'&, (GiU -)} J[62 pC,fۥn7tƪG`+ ^r /9Dzm#[*)Х W󊕙y#/&z,RPZ>;7yiiA)f=.XT_OÿcI$`y^W)~/o0?)ۡz`cFQ?G2deٚgI̦@?j,,x"[PvYU8XοlDžVF̒5s*zkF1Mw4߶xnB>0q"h=ly&;٭bg6$L{IL-f2 fr.AoiLpiN)0<-7 ⺧/7xݎ8f`mz\׺ɉiZPX9J)Lelo(>@ Wұ5[7aEmWH z! .r,S7\t6JJL~ -oN0S]v/n2}nttpX+B*A uiQwE.4z{Pj.rZ"(RL|m*KZΪr@8.eh0wc:{Lʵ5oֱH}QXfQ[IWnR|2BaJLnH.6WBfkKa;Q&"ŧJҜG7h*6mq]+_8pgG3^Tyޚ[H=mB':i~,ӪFe:#=7 la恸? ߷P]BJWr,Q@`;HUD&罾$TF!ݫٸ,Q)99Y ypQh@7ǥeG>* iY?ŰuI vgajGQᶤS٪g2ӔUsI{J̟*!AO -03w[ZD&ޙ l(K:#uh.Fs9a|Hou'.o#ϑ5lF NVUaE6I.#칃אGdhi6-ems g Ξ!BoVBfeQ<3{t]]xFسfr aBF1 ,5Dxj;e$l' Ϥ_nt긟GBMB@zx%u_iZ.YyYi4X.Nt_4JT UUV9oŽ\uRUU>@HeUccLj(1,"db8uNKE=(v- f)ٵyaCތ$Ǔc V{bǃ7802ʬ^Ton75"d7o/?,{V*f2JT D%LJ~q=A\GLġ ӄeOu5U9A&VV RհoОS^RX L2+lVg!"ibE۳ka50!Ltc& Hd%pxOӖNKK:JZM3QhN~EhM4~ݚ[VA9>3i᤿ΛkOQg}`y>ZrrޛNOc_5^or\ A'-D0~{EU:ӎCSPJU܋/1yJD_< {PBQUu-_)cq͓(| ɳ+>?[8TY{19ڧ1ο}+)EŢY8r7_Ck'w endstream endobj 674 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 676 0 obj << /Filter /FlateDecode /Length 711 >> stream xmj0y ͢.bKv _!iKS]j+CcYG90 [͏<;Wء;g?MUǽmGkk[O{jcGvuیw.xV_NQ׃Rٴ!Їݾڷ{7~slb_\;fxCӵLs݃nlai]ֽ}l3ƄduSgj#&|B8YAg<|i\> o(3 |L}319! ޻U/, J ?C>-}kF'3tidD>*xED Ot * 6&Sx tHWg }?[$TmQ,)zCTNP*I|3cvִKXu{@pᎀ}дd5/os endstream endobj 679 0 obj << /BBox [ 0 0 170.078726991 182.638363583 ] /Filter /FlateDecode /FormType 1 /Length 449 /Resources 678 0 R /Subtype /Form /Type /XObject >> stream xڝTn1 +aЋ@`^] W &WZq.ãN!)-Lg a1`X`?2HXc\ WRr O lC4$C~x+b\dmbP ăSHi|v8ϝ ə9:'ߧ^-78Wg?76GgסM'xg#(0: mMr6lasjh׬sZAV& xu ԃVumKtڂkBHuX[ދv[o!'TFB.sދҸIb͗/, -mOM쩉U b(Y`T9r2 5ʗe=Qm Q(oR Ag5PAR 7K˿2@,OR%4(EZepyk9? endstream endobj 680 0 obj << /BBox [ 0 0 345.35821176 356.61494919 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\4um sƜ_߬0DAJ|!ol"8& 5{qUuff< ׶uaaH2~&N)7[cQ XVvg *Ysds"xԪio<60;P=m3s4uo\K endstream endobj 686 0 obj << /Filter /FlateDecode /Length 2977 >> stream x[ˎ WI=\.사$ApJTUv׸; C*?(IQwrNӷoD_ܐK#a#??N9ιs^q/AssXGL74]1k4XF' 7wRc\ T}^p)HyH1LuHS%{:e|bרb \W\Yr7j\&14^@6sV7fq{$BpLi:,e]ܙl 4H,CCqp KCHRB@U5=[&$C6)Y<4BŘM] $;_ާwa ɽ%(ץ(a\uUuoԀa,؟?k?oUKُns>x%p8L@/`NLGkCh6 wS_R| 1ڢ~tV)CM)B&Fs8bFL|0sI?/Ng3cQ݀_ <%U7!q/-m +>]s2.,˛qۓ6Q!·IBn I<=.&g4@ݎPN\@^rn-O\D!)0% . S|IZGE8L8\jf6X QDlLB"Հ,A3EP%t"<\#C' ,gzƥliHHl-0ҧj>8 %KZ/"}~Tzxw49_BXp>ǜh@_e![H(Ƀ˛מޤ ; }O;3B&'6NnQGDॽsĪ]QW>) p:ug!֊< XoAP'bTT W3:ԾN4|p;?h =sܵ{Wr([`wu!' !yL+CBRTd F9+`\pSKHoHZT=J͏{rq х;9AK܄9M5!'7P(`?"')Dԡxw !"Ⰵn9Q68%P4AoVJK.fDcKb5B>@xYDI&MwBi gTԬ(Z RPV|n p ćczL")b1Jڳ-CتlC$W}j+*8TVF1 NA}؂DW jXl JPH"ePͯB)U&рNvQ;Ta ͼ%u E tn1-\j1Fs0`G^IUӺ]becjdg[$)wX%^:7H̐ݻ;j۠6D|pe:TX7yEzU _kk4~cw k4,4S4 ~Wakk&7ﴩdbFݫ/RXIp+l2_µ:3k2̤ /)GP-tzrZ,n-9qV ͪW+(ЫeQ [~[bc>ЙXa\ Ŷ 7*!{孥J8PY60Zd%^E~[Wy;v%$8]3N?di7 ۃ^izo:$1l,{ II{"y\ P.Bb_Z g//@e` Eal3Xp$3n8Mbg<#[Zz]LGT~55JNpM3G樭P:"X'[_i5~?Y%oؚ*Q=)~\&U $Md4Aw%;~DOp?pP)(cgO(8$202fx[_02L!kc,wrn"#72eM0ヅ5J>!r;O!7P&lHp`23mn{Yߠܶ<OreMz" k ܠ$juQ}> stream xڍV PgM٠!*kr^O3VGz*r~B" $D# @XWԟʍU{f?7͍:Q[P|3<|8&a8`[3Ib6դK2?nX!( aTx]"0Uل)"J V8(cf522Ql 5a$˧E]wYp$ 0t)SƽWR`RL#1MbJ,SaӰ ,L*QZ\k𳒍Hel?'#%גW;UcEa ұY|6 ^sfܚ v%p:/yȌC󏆌{T}&['w~ :莿k+V!*apo b8U}0WRd+>lc"BzgrS6 l{I#4)~)oCzͮjT(*ZGt 5%Y"آFpu ۛz:o6#au#,#}*}IP< s(c2  4yJfȠ' < zXAJsyyqt>J8o' gIw^v6Ok k n(P}ɰb(+)g` :SۙΔ5k''JN6w=b^ ʲӽnZ\֐K_;oϻJ ^< 9a#C>0l'=?j7y&@RK rr}ļR( GyFk/{ Hv%4,F>-W^)5a9F"PD]ulePb ѰY1H aחwPD?+eg_hm[X°0d>L[<^-gU\ `W̙_) J xY\N*T\.`dF7ut{|[WuC,=9̬"m|M~5L\XxaVbÿp7O:nm ߲km?#9? rVG5+7"*-UŚv1'i5/39#>+v;?1/OOpx3Ӷ܅AJ+xEkg9lKOhQzZ}z1KP-6KCuǛTG6eҴs= _q"}0g]y(Ϧzq^qcpna;Tg죖q8S}At92R͵V()_G M(wd-8j)CfZZXTjU4jw4RimKh0Y7 -O5;Ғ?TYeekd8*w8nwҭH:c!yMq]@mF`]jpԐɢL9 | 8ZMJwy/SGC5l ]4:Y[וGfs9֕ň9P=0=G("bFzS5yMVrH =Dq[Y܌4Lvpzi  #8y*=5cɬNj&9jh# "۞ ʩ8Qs^Q*}] tW)CLʔgŠ_v endstream endobj 693 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 695 0 obj << /Filter /FlateDecode /Length 456 >> stream xڅ]0g/蘪3 U(| lRBINLAy{>v}lW{ F XFįYv7 #o3|ho^&u߈SB^%|vE~]"! xlNMۊd?(^XqJ>C3/ǪSVm!6E^__^{\XKQ]sBws#4eyB$0"opgx)5JnmhMqǪrԙ<^sV|eQ:50ihhDVDK'rI& &c|ь{Ɣ |%\9-FD4߄|ٗE]kkT{7ZSuН=!rKKe3Lno?8Kt endstream endobj 699 0 obj << /Filter /FlateDecode /Length 580 /Subtype /CIDFontType0C >> stream xuR]HSa>v״Q MV(zP:DC?s;%m;ǖ"bXH+tFE`=/bf!Tst5z{es/ "z s cDs9EH&ځ/<9ר[z5%apz1%q&ǩG[qӍsbP8.&u İUp?3Lգ M@lkq"Źu`"-Bgx9$ƨG aJxQ" Mb*ڦ5(K'GԩL`R8XmOϋtH$ H#`?m|{(C#OWj7mQQF$ =h!kԝrAnq8.5/xh쵆63p>ZvZZh5 l.UB<>N}nouC)`Gp,d?FG^珒Iv#J:D9'2[u^D5p{)2qjVUuvwA]{Hol &pcay~ endstream endobj 700 0 obj << /Filter /FlateDecode /Length 558 >> stream x}Sn0SM6$JMm]Ȧ%]wk6vG+$ڪ9sWmI5UҔYp8A9rXEu4+`zmQThKX$!3ci`'ʔ*=AM*p8NzFrim.sCeTR1;PjbY%%"Q΃]ﲺw'WMY F_y.ukc?|?+ -&*\pT5*A9 }C| 2(7K3O;9N}5;-5cC XF[ՙ4#y" V.;IhDV4Dj TFr3YD`R0/t׬Dc$ {be?Oo[Z srLL )XtϮv:4Μ6H+Rf,:ŸU099)Y!<礠utx)O+.OatvjGGSuhAD4_r endstream endobj 702 0 obj << /Filter /FlateDecode /Length 390 >> stream x}Rj0+@rp,QJHBiIdd`W+п^­[w!c[t:6y`˨ʸ3l);_xG7.v0Nu eE1 M֛9x'Cʹ*ACݾ 圧i"ZfG <RLiu\!3Q%,(H0ߘD:JzrlXKPQWhYI6hѱVm74WʄSb9 l::+_I^-:lFx endstream endobj 706 0 obj << /Filter /FlateDecode /Length 672 /Subtype /CIDFontType0C >> stream xuRKLAiwGC I+@L=c#рDix.`S,*h룠&DIł/41Agu8K;/7 2?SP 5J-KU"*) (M٣Wunv2'#E(bb0FVvUkdefИw,?J- 9URe^cw*c pz2P%`و#!e6HJ'Nq0ЄDjMVA- >'erԸfU 1{S.0qp#]b BE5weu_pJTgnƄ#b͋goJB'i> stream x}n0yf;*4ZvMu'H,vbWD[Mbsl$ц*i,`z ь}Ut[&ֵ^[U"kEH=0 Vq}LVTa4 jHT)vGv߷5a-W|cT QJnLBQe2Nړ:hDAUoҍ_5eG3?|y\A pNE|IO:ǡdBE?4 B%(gGn$mLc3xG- cG XFGՙ4#y"5 V.;IhDV4Dj TFj s,XD`R0'tYf$:{uwVA"*;`Ds},c1J֡ \9l8-EZ2cQ(Ƶ0K_/% +󜓂ӴK!Eg3w4~7l w)>Toyr;ߍ6?v]+ endstream endobj 709 0 obj << /Filter /FlateDecode /Length 390 >> stream x}Rj0+@rp,QJ622*2. !!l[Η9^ jpSbhbrY4&z`>hVE9bB۷DyZAP1L8gC #nSeF8~=d1E?7k(X'{Z)/3V+0y J4*B -*4кBV?:֪MbJp[,Ƕ#rUVZ~+iޫE7" endstream endobj 713 0 obj << /Filter /FlateDecode /Length 673 /Subtype /CIDFontType0C >> stream x}R]HSa>ggg_jWIfa(DE!]xf'*F,Jgُsҋ~P Krڲ]V~//h ˲#*f&V:,v4U7tX*㸌-^hmr>'hdvN~~KB -;A $7y)[ɜj2i, r;w-.))] <$64mv` 1ZR pgYv)'81sWJ\rpZ?蒜od ? Qi*tkq{3F@'5D=-nxhY>ഥI% h\qnq׋uOnLbAuIQHӌ4=+d"n 'fG!lFsIQ›^]VBu`Y-,: U?|?VL_ 6=$)(OTp`׳\D8D8¯8Z*>\//=G/VVܑ|~#mnFWvݻ 㬳!> stream xڅTn0SM6$JM]H%]wk6vG+$N*!ssy|і$ZS!MXҟ,XSOۊ.U]GغƭeAȹډEbROϻmlu0 z530XRq4#Q^[n"bx*V*&8tkZM,ːqٹDP$ Y]Vgn՜)rb4\}).;?u0:~=ϗdBE?4 B%(g#woD7bia=CDp/M4r̀nѻ LB<~Zj~H+QU$4Z+S"i 5i*~ ,\RmI)UuDc$ ;?{vXbyT ĺX.)T)8!7Þăhq֑/-hmL endstream endobj 716 0 obj << /Filter /FlateDecode /Length 397 >> stream xڍR]k0}ﯸ{6c ¬P7Z I~~`" zsϽ$}enK`,E7\řjM%-RzȐ5J=jh4\w 94)6 Qlh]]VRȥ; UKl9@:FUΥ%`Lk`֋q? \Vh58z`<ogVVb8C/,A;)ZԄSlr3\_Gx_pnj?6.YLQ|M$ܬfZ.{X)O3V+0x J+B Th^az_kզsMM\@ LF坖E.zֱ_f'mf$ endstream endobj 720 0 obj << /Filter /FlateDecode /Length 1545 /Subtype /CIDFontType0C >> stream xڅU{l#N.Gh^U-|NCaJlPHa (+u7!y8qIcIq@ӌ t-Q!ӤN:2M m~->[tsRP*w;"S>SݸŤO؜%QEErv~3r7UeX`C"0 JluxiNwP5 RAK/ #Nbhm4D[p@OhtC4}mL-Zbl:NJM:iܽuDZugMٻHd9%8r0@{d Ԙa.)H?<>~|-\MZ2(CAwLGxW5</DkW5`k.8W9 žf?`ϱ7\w3#ѩk&#*벚5hvº4t+k7iAp oN8]NSlt-AƇ,l^I^ߡ;~q+a`𚯤[DoL׺ 1:α/cbqW,zaBY{3"掚cc<&n}=A\pW8+N]~D=MZ/Z%>36ҖJ#IueGQCs1ESi6S-:dC ZdCp/^SdcEfu/9NeB&QØ$iG(mi}QKt-mkJ؈\}3BwT`vu0x\.I#a˕=u\_Џ`ۣތeZRkkfN ~RO+hv6ZvXbDVNu) 0;JW.]z$I-''x{w%=^~m*OǫLtԳo:yZƶb|e@!`T&oʍ5gt3R} OhfQm2LaaYeCg}|YvSYN[Uʭh=M>!vz=㢾^|nri66f89n÷>! endstream endobj 721 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍSMo0+fHpHAB"-T.-*hkjؑ;q(jk)Rgkpu@or dpX4Oy[V+C$]R1Sǖuē=Ş=z!7̼y/xΙ+ s&я@$G] %! ۹ˁx($p `bzFKi0OQ5 b>їz1Ϛ y*M[T )˱;зᥜ\IzE8a3:u+/( ŚVk%ʞN#{#/V2e\WUdJnȃCn;d:q4&C~f>tȼйoX5^ߐ:B]BYio`y: U endstream endobj 727 0 obj << /Filter /FlateDecode /Length 621 /Subtype /CIDFontType0C >> stream xmR]HSaٙ?_[MsGI%I( $GbRn7&7Lo;ʭ Q:uc:RHW&te^ yϋv$ޗyxa!aZ[7o v]vl^M, mץRH0CVcvsS\Ϸ4LJ|UtxW59};;o1[ 2 qfl7l{w 0BJ@ T2TE*E* 4%SKdDt;[M:Qe Je0k44Oi&]ȵ$BbGOs-%,#Ч9iű&\:~#PNH*IL椟ȍbX2QUսP93HmL֏tmz%^ikml4kKfvQZ vpڠG1g- 8bvZZyIGęǙ!KN] N|+{RP8ZX<"1"6br\'IC endstream endobj 728 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 730 0 obj << /Filter /FlateDecode /Length 389 >> stream x}R]k0}W=gmAX?e6vM$ꃰį& s=oLО=8c.KEQfFIEq@dȺ| '%i`^L494)va\<(/iOzgF%Z&&‹Ds>3 o*R,}&荭`Lp,\0պlS`=揦:+ 4l7V+pΚǘsT w֌̲C yøo;D)}Pt/ᨆU.UPaEU$JJ> stream xڕSKLavo& h @x"J*J< BY@[h)P 5P[h*уr1јckԃ&$yd}31q|'_J;t&=KW_//) ֲ$N "0B WHr3W #KIpr, f(c˻Ya{-8Nb&i /O 4ڢڒ#S`H"(ŏ:*E-tE7v~7O@h!+l򤹽bg5w. j^)P!u#7,i9R^J_G"~6KEe+sr/3bqDL>^> stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 737 0 obj << /Filter /FlateDecode /Length 392 >> stream x}Rj0+@rp,g)%C54 q\i bЏ-&7os[lS o*RLBBL숙6k` 8-&&1(Lc7SviU(to7(O3Z@ j=Ƕ q'vlN!3\/ҋǯ 4bq&TtiVWJ#c+  Jt?аB *иDůjӿ&(R&˱\`{٩ֱ_NGkf endstream endobj 741 0 obj << /Filter /FlateDecode /Length 761 /Subtype /CIDFontType0C >> stream xڕS[Hagvb4T;:4a!Q2LL)2V3הgw5/e mIY%EԃЙ}h7"*<΅;>p<7x\8eqwygtY_ATW鑬e%n"HH0"@c0ϏbcD( f6G)Yݹ:vC-QICJIܟiʳKo0c`Xcl $zaXim]Bˏf %U%RZJejJ#U,J,V7ioic`s6Ǿ|\5s+Ū,W b1/ǎ!C-HK$G[ W MLlwO 5WK++&mO!Eb{㦯GF@ $i 4ѥte^1gX~{]aq;{ād i: 3,Burڤ2,V8eX?5U*Ǫ) /7(Wlm!%*5+ ܜwj:Ff>Z >˞XFDO0HX4^8hINϞpO:{Gއ{2.Q.79xN  ֱ1-涟I?eKBPyi!w,/ 8L[)LsvPoo0wt]j ["!Ca}%Vb endstream endobj 742 0 obj << /Filter /FlateDecode /Length 562 >> stream xڅTn0SM6$JM]Ȧ&]wk6vG+$N6&!sy|Ֆ$ZS!MXҟ,XOSOۊ.U]Gغ/ƭeAȹډEbROϻmlu0 {^MLøiRCpgk-7\a1<7TF+5 E&e8i\]@(,E.qj~Ԕ~9`i1 ukw,pL+Gس|]I&T$3A k*Trj;r.@dx#Qn*fʟfs?kdkp @eVGҌ V;RCZ2&XќIcyL+PW0g咂mHJ\]8߃$ٗʞMo[Z rLL )X\ d46'M)ҊD1yAzqw8?CvusRPuRHyB^_H- ʵ?f endstream endobj 744 0 obj << /Filter /FlateDecode /Length 395 >> stream xڅRj0+@rp,QJ̓$$7Gڤ[2|+BC*0xٝZO ~3+tN54OP"CVf#(Iw= gcȡqΰf'Mōb@{<˭L"w"c(%rul*'aη;ʸ#1l*k7sjdjg.憓u=`CG $gYmm 5ZXꀷV h?vyhAPi2<7-M(g3 (Zkzi0K#*l%fճ`wRt_rlXKP^%hZA%7ձRWT4W$TgaZKO0R?d֋F endstream endobj 748 0 obj << /Length 541 /Subtype /CIDFontType0C >> stream JUIEBE+LMSans10-RegularS  "8  &     $ %$)1H2.004LMSans10LMSans10-RegularNormalAdobeIdentityJUIEBE+LMSans10-Regular+XvwJ22JP=2odbNg1!" ģWLIt;Kכi/vJw0J@Jip' *( = GPAFC ׼W H88uPW To Ę  ! & endstream endobj 749 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}Rj0+@rp-QJ&qyWGZ[2}0+B ivvv1^5}$p\ޅ`8HZ(="C֝ 8*I,`7X}AaǺMZaŕb茟v[\eW+YHQ":TrWɞ7J~i/q٭ѤFOMnЬAk4~ulUtA-XmFΤе{?n endstream endobj 755 0 obj << /Filter /FlateDecode /Length 601 /Subtype /CIDFontType0C >> stream xmR]HQwg-m6H8caZk?O)Q>IɪG͝&w-W,Lí(|@]zr}h6ZB9;;#Gcrz]ªNwr`(F%6$ȶ2u{(XX(ٕ K֕fL$X#G'aS&b,JnNgqj> stream xun0Gf I*-$Rf[iI0`lM!y] 3t#!lg-I B2>? XmMrim.sMeTR1PjjYF%oE vѠUoҍ_5eG3}_p: 3yz}ǡCdBE?4 B%(gGn$mLc3xGpVߕh1",E Ꝅ4#y"5 V.;IhDV4Dj TFj s,XD`R0tUf$]=\ۋϳVA"*+`Ds},C1J֡ 8˻> stream x}Rj0+@rp,QJE"mIdd`W+ ivvv)_=8c*sE^V1Ȑ5 NJ3//x6d_(gذI s>п৽w7{B^ȈĔ\xi?,GudQ\CBX ,8Lj [Y e"0M֛98gMM3UC 9*;\kB'I Z;1mtϊΜE.EaU(\I> stream xuRMhAYdԍM5-664P%ɔ niKO T5 T<C\*/eA%0 Z}3} !l;89;<:4z#jԱ4ݼΙyZrUp^2XqS;jq17,QŻ^[;Eӵgwwɋq6N$b͂2@ SE "g3( Fpo#z - Z+ F DbH2CsEr8OEhF&~zT^P(OQ*m>v+==WTPFB9t״J2OOʫ+U\L73pFysL1EɎܑԮ)Gkٺ4+wʩGdj<+xyì4Z3dЕ6PrISY3tKYcNkYf3$S.0^~L4vtlv  endstream endobj 763 0 obj << /Filter /FlateDecode /Length 557 >> stream x}Sn08?4lHRi! 6[NKVfWۏ=^a&q*!l}ݝ}-I B2>? X<.'(g4cw]hFu&eAȹکEbRO;3:Vq}>MLøi RF#qok-\a1 }|Iqwx:D[󜓂K!a_zEh핊OR9O\kb _ endstream endobj 765 0 obj << /Filter /FlateDecode /Length 393 >> stream x}Rj0+@rp-QJ4bL8`& E^l |ȐJs//x>d_и`زŅb@}_7A(2ػS̿ :> stream x}]HSavx[u;cR` ^9K0Hԥ(#ubNwm22,L( /J Y(Bd(Wys3I)ДJE47ʫJ2ϔU4_1JZMV[%WJ"dJJ)I!%]dJիѝHAҐ Ry+$DrV#+::GYMjZf)'`=/h{Rk9e4Z[WRPJJE1JXAmt= 0it;CN]޺<Y#' c{OU#n{w:7_x A d]w/@4#RA #9(B0>[bF=n߼-p ե&W#O{~١矿˞sENA}v<$B,\dݮ^_u-8(+[!<)!ǭo/Q5N8Paaq8jnQ 2#Bvt!h} -2abvzݴbw_d}tq#^&ǩZP#q?a>/G~{<^/'#0Jy;(2 endstream endobj 770 0 obj << /Filter /FlateDecode /Length 567 >> stream xڅn0Gf I*-$RfkiI0`lM!y] 3I;s}˶$ц*i~,`zь}Ut[&֥^[U"kEH==az=7MLøi RF#qok–[Hksƨk* ݜVS2e'u.> w;E.ޤy5g?jbg8~/u+a7O: /+3Ȅ9h8dCJPBᇋ> Hۊgg{ 2 cC XF2x# iFDkj!D]wЈj[ќIcyL+P5W`咂mHJ%8?@wv~VA"*u1\"9?pB oEكЬJ֡YnѮ y3ږ"HN&1gyׁW\GecS e?d*ENĦO otǔf endstream endobj 772 0 obj << /Filter /FlateDecode /Length 394 >> stream xڅRj0+@rp,QJAJNЏW fgwF<sY*zf`LQD;pRXpo|&&%Îu+7 ~؇o KL1JW61^$2h<`}kwT9b7ejӎ Ng"悩vn 144APPe \sԼPUmiQ1T\\a`x ,K > stream xuR]HQ;;NVV̙ZV-%6H B0TulA *lF#[TVCQFS݇fbk+{8~sCUZZZ^5v趶*t5rUZSY`opQ#y;X"˫9{kĪ| doӾRnBKаn{5=С6wjG;;=#iq<a=-<ýEuȏF]Ą!M& Y=R$(4dSILaNNe2uCjL)F.8 ]: A7 3y(7Kh' J/9}vxT>8VtuP[LAU0g:VKHPy!@䃻ng LV|8VAbj,#F1[fgɤ~ۃ&Þng&0YF_ kjn=~a񓇻ap;EFJfuU=<~uHd8H\6 igsѰ#QόG&‰pε^I/Kt S endstream endobj 777 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G \{O*'r/QJeR~;pPLH'QA6T,4YᣐՍD,tvAzo#3%ja@x wKQ(&f$O@$ߡRFR)RAΘZ VҜEcxL%‡kXrEu`TW( ur.>n[ rll )X.h|ς6n)U6py-$eƢ2ьqS"a$_J}.w+usN :c:[J^V=:GWgu{W͞'SnL^7_ endstream endobj 779 0 obj << /Filter /FlateDecode /Length 391 >> stream x}Rj0+@rp-QJ604lSڣ#]->JI4;;;X/L^К?𱐕hmQ>VȐ JKl'x9dOдbسn^1J1}`uiRHX>&U)fO} wNL;K7vmdfF,FvgxSW#grL'2BA]y"&z ËR(SO"Ty\ct(ámre}/:a_uf8N7dXE_P ^O&{*]bJ5gA=-[4oѦE[llcﯦ hNfl3"8\v.My'5& endstream endobj 782 0 obj << /BBox [ 0 0 178.138529586 130.288198431 ] /Filter /FlateDecode /FormType 1 /Length 511 /Resources 781 0 R /Subtype /Form /Type /XObject >> stream xڭn1~ 㙑HRU=Bx}t[lgoLr:P/XNqQmȠ!Jr<D ΐK ?}byj᛹2:ېߙ\!# *]W:hAicjhkC)V\L!8(WXGMQ[ F5q4 j^VV߉H}q^Fw pn$kZ)b3y!4jPPy7<ٯ6b4Q9\10- }rs#+gץ)ծ#K5 S~ˆ.LCLpX1ʚ1XZkXsLץeB.v uCIݐq1ь!|X|>M9%>K/Ó5,˧KJJ,#c?QpѲq38jJ˅ endstream endobj 783 0 obj << /BBox [ 0 0 337.29854598 356.61494919 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\hA}cNܘ(Hi/뫬`C]7XEtOSw PZù=7 Yygl1J"HMq$*qLX0 SհoBfYz( ={wƙtᅵl/c HK endstream endobj 788 0 obj << /Length 485 /Subtype /CIDFontType0C >> stream XZZZAD+LMSans10-RegularS  "8  &     $ %$)1H2.004LMSans10LMSans10-RegularNormalAdobeIdentityXZZZAD+LMSans10-RegularM/v`FwJ3J``)#f"#ƪ}rIip' *( = GPAFC ׼W v[w2TZl]EVjuPW To Ę  ! & endstream endobj 789 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}R]k0}W=kc"B׮ 2JlruM$ꃰĪ]@&{IFO^0yA{6%pR֊ą5$s!O9앤V0^PjYͰGa b't>+cŢt}be:*O)ɷDUr)N !z]͈t6'\0yqn0Nub.#5ey(m>8/+մL)kLTE#Na2!nN)dQ`uMq`nXɰ,b* PIZ' v=*]g7h+^jV/ՎZ+h͌ZH\|[v{@ endstream endobj 794 0 obj << /BBox [ 0 0 129.585511242 26.105656036 ] /Filter /FlateDecode /FormType 1 /Length 265 /Resources 793 0 R /Subtype /Form /Type /XObject >> stream xڥJ1 }5I4كĹ-{Rc]4)f@[8mc\:U&nJԚK(91>P$ E,J0)=~w;IzfZDXE0p_w endstream endobj 795 0 obj << /BBox [ 0 0 385.850819437 94.439142401 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍK @ @sl܆IxAp@k[j]x}Ӂ ]0'/Ă7YY8 e(lNh צ2Ŕe(O < 0X'> stream xڽ\ˎ#S E4d`vAVA"%ݒ=n z,TER$ER2oa??ٽyfI9%YSXbνovo? &K̦ahqlc~7?Cs^00 C>T8?̛h1٧\vf$ [8J4ƆCmkB K=rV\ڣp&cLkЧ{mpƉ?a;fm9,Ɣ6)?|w&-b\l Y̆`]| J<sng(6q6kƿƛ䴲ve ]PUc(zeW[W`1]w> Ƹa-=ɻ%d-0f1X~Ɲ*qܹ~m$p~wF^ cP?֑:9E"H EN"c/6—l=֑>hS* *LQi[y@{s}sF,\{nYJ&/K`i_ItG1iöFU *=6lSֶ) iJm}{tb>iCT/QjȞ[fJXcdiDUXhZEt)12_>I߸hC{\d\}y2!xYHdG56nr2-3zua?-%D"V F賲+˲vh/rUlLj@ig] fNK BW] e= #GsN$kWl,ī3(2U->-r2yj^eʼ; Ysj~N޾(MM)iUI#=?kCJ^ rBۆb'p}]oy(Vl!t)6QϏ *pd ] GHQa"PT&)u/6{͹/GXH{ӱiJ $[O1lü^;|?M_!ٴsY 0׍z2P\ 6(3lzvvƙ7`rA>W͍)j㏝r.OC@?0+4؋c_Ma m+|d{ 1ħEmۭB38 a | Cgƍh㕉de)aM)ĈG@ǧDHm4 JȠW͍}z`_jdTK׋сK.#.9Sڸ3%y$lHas:02+ ]L\k!8au斑u~q_G88~ʫ@UT&Y#}M0OWe)m,BbAi]Vl-9u4GV֠O[<su `:;㗴f2rtK ~0m=a$KJP%V^eL|UlI-_ƴ* ُUR)8.! 59Նs$KP?fU#kԏ)5bw4#8:d\l##2y{"Dx-?9؅/P\!y89ۃQ%cbK椤N ʕơ=29oQS"FS"*àp.F=㝜S@&;y%'yW[Ƙ,7씎%N[9?ёvx#) #@VKu#ME`]/ifbB_J̺Rh VKeo={/mh}1y zt'ypf8yHj;v?쓖fLPQ+RuV! KREf!mkEfIfj['}L}'.Ԑv5ScLYŌfp D&D%y)ت0Q=oYݰ7Qc=D}#.MTOW(|39WngHsO1nv&jD'!^eZadd4Q={MT|3OuI|cw%R%bO<./xQtfA!a$~FZF@2XvU*LS=oK~%-֦T‚g{dm|FE9=Z%WɦDž.p,PIyzrHhʎv|Ri#Z=c¦)8xx(Kp> zx .Ib/[R惝܂+K``Q30akw)$iq\RwP9ϰ7,Gt<֑ZNRf-SXB0 r1^Q!OpĬ`GElE):#w$Vo}(y$BΟ5S34\94޵j#B|a$u%?K{:$v3J) MAqX8m &rN_-&Ib"ox2*Yp=[x=b+H&<3v8TYI&Lk *a:![I?Jz62g0Jrֹ,Ӿ1sSzSMb9;]Hc7- ILY/iw:YgF;2o_] }:X"<@tau>f\O :NqkKG{f U&*۰e˷Nr#EZX^mI砝6eM#d39Ri043W.̰cLD>%0LE<aĦ{r<8\$xX8 igB,L-eтjYD#њ;풑6q~!):F/ŲpUy~nWДpn9luOCep.dƣ J!yPYJ2~D ۋ!Y`rlIN,/֙όpMU& PdQ$@dA>^E݁!Iu}ƶ> stream xuXYy9vgv'wvf%7)RD2+ cʢh:"D vd%$CI !C` <Sq"Fq|D*C{l7P]_ ы"tǮ k`І``Ch+z|칧[aO=Boa+C0~Ϯ=2#qD)Q{z1] {^oӅ_ͷam:rA޿67F2^/MчWk*WbLo/'mZA ڛYhyqv BK̫CH} GȜE?8ѮlzBGioEo8tڢׇp8ʸH^&?:iS4y&+ǺNXF 7z0VsŚ^Px@;e3&bV{ɆdR{9LM%"&f%JTHʾYh +teIx$\M۸v_Geh: z`ܪaaѨ:4=;")= ۞+<}{ɰBgF^NcZH*?}Qĺk&G鄇upܰ)q~)QBCvQ2R>!b8( Emơ*`34YLęuS&MXqOa2)wK:"B%AS I_.;TGMؤzhwuy1oO6߀Z&JOFi*M|Zׯ]Cr7Ao[ ZC?W:D$y Cz9gu3!S$|d?@G .)}P9}up{66/!CJmtӨ[6VllD_0g f3Hx1B*SY8KlvD ]rēZ5CkI "m;HFT5WG[( p ?+h'sna- kDJPp }X})bgm#$-w_'#" ]q7&6eLvުZG@'!^B"x(B{=%-֊dRnҘ(0’~*L'.;epry00C2Ѥ1X#u\: ר+ZQ97D6G(\`H>w'd<w]d~,# |A1; @A)ZIRbf 1(A)t#;Q=Qkx(]8pi FQyJ?UP ׃׿، k|rGEd A0AJ*I&R އOgEF>is7i.:kG:#t2T@*?jW;\љ&|S#ϥ>@nH ][9\& ' M[AV?Aa&Ѳ֌လd,|LU<W`.. K_v>gA-a™I}ERzs: ԔWb9)ZJxi"3:?V9ښv7,;dDpY.v^5큒oO*-mh C5o/")={6"v0B9A6_]6pSFI/|ʳ{k:k?rד3nBk x*y =: |E~Bi_5?;E- 7B܆o@p~ڷѻ'l endstream endobj 811 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 813 0 obj << /Filter /FlateDecode /Length 500 >> stream xmM@ڃiP>&DQ;3f %4p0UݠcF^Z(,ņOTʅx} >DWPU&QMdNQq16\Ȼd/ZiQlga3x8{s|b6$hF~ U? isy{c0=PڴLK}iU=ٻB q1vu}4ذZU8ݚ9oY)ngD1h<_{C*.:˅_ 1>tBj5oF0s[ir|wcr#wЂ\72*kCBk(^WY#V)eDJzT%Yv0uLP#3`1MV&m!#/5-txa M_S7{G;8 ;B 9Bۭ+1|D}*J endstream endobj 816 0 obj << /BBox [ 0 0 141.732282627 45.486864444 ] /Filter /FlateDecode /FormType 1 /Length 244 /Resources 815 0 R /Subtype /Form /Type /XObject >> stream xڥJ1{b^8`zVzR> stream xuXYy9vgv'wvf%7)RD2+ cʢh:"D vd%$CI !C` <Sq"Fq|D*C{l7P]_ ы"tǮ k`І``Ch+z|칧[aO=Boa+C0~Ϯ=2#qD)Q{z1] {^oӅ_ͷam:rA޿67F2^/MчWk*WbLo/'mZA ڛYhyqv BK̫CH} GȜE?8ѮlzBGioEo8tڢׇp8ʸH^&?:iS4y&+ǺNXF 7z0VsŚ^Px@;e3&bV{ɆdR{9LM%"&f%JTHʾYh +teIx$\M۸v_Geh: z`ܪaaѨ:4=;")= ۞+<}{ɰBgF^NcZH*?}Qĺk&G鄇upܰ)q~)QBCvQ2R>!b8( Emơ*`34YLęuS&MXqOa2)wK:"B%AS I_.;TGMؤzhwuy1oO6߀Z&JOFi*M|Zׯ]Cr7Ao[ ZC?W:D$y Cz9gu3!S$|d?@G .)}P9}up{66/!CJmtӨ[6VllD_0g f3Hx1B*SY8KlvD ]rēZ5CkI "m;HFT5WG[( p ?+h'sna- kDJPp }X})bgm#$-w_'#" ]q7&6eLvުZG@'!^B"x(B{=%-֊dRnҘ(0’~*L'.;epry00C2Ѥ1X#u\: ר+ZQ97D6G(\`H>w'd<w]d~,# |A1; @A)ZIRbf 1(A)t#;Q=Qkx(]8pi FQyJ?UP ׃׿، k|rGEd A0AJ*I&R އOgEF>is7i.:kG:#t2T@*?jW;\љ&|S#ϥ>@nH ][9\& ' M[AV?Aa&Ѳ֌လd,|LU<W`.. K_v>gA-a™I}ERzs: ԔWb9)ZJxi"3:?V9ښv7,;dDpY.v^5큒oO*-mh C5o/")={6"v0B9A6_]6pSFI/|ʳ{k:k?rד3nBk x*y =: |E~Bi_5?;E- 7B܆o@p~ڷѻ'l endstream endobj 821 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 823 0 obj << /Filter /FlateDecode /Length 500 >> stream xmM@ڃiP>&DQ;3f %4p0UݠcF^Z(,ņOTʅx} >DWPU&QMdNQq16\Ȼd/ZiQlga3x8{s|b6$hF~ U? isy{c0=PڴLK}iU=ٻB q1vu}4ذZU8ݚ9oY)ngD1h<_{C*.:˅_ 1>tBj5oF0s[ir|wcr#wЂ\72*kCBk(^WY#V)eDJzT%Yv0uLP#3`1MV&m!#/5-txa M_S7{G;8 ;B 9Bۭ+1|D}*J endstream endobj 826 0 obj << /BBox [ 0 0 141.732282627 45.486864444 ] /Filter /FlateDecode /FormType 1 /Length 244 /Resources 825 0 R /Subtype /Form /Type /XObject >> stream xڥJ1{b^8`zVzR> stream xuXYy9vgv'wvf%7)RD2+ cʢh* D vd%$CI !C` <Sq"Fq|D*C{b7P]_ K"tǮ̗ GpЦ1>\??ϐfן~1xW>u`*B^{g_G(:/?0~=|/V*H}w m;0 DP |Mc Q&裫5+ho1&G˷?O6vS-X4 'H%ll'Q6)=g|^:,ӿ_7?֠ү'S*QyJkאw[ϕI6x#%\Seó ؊~䭷㥭 y\т8zl/Ww;.'O| ֹN8&djG];ڞUٶU?n}Q;B>v{պ19b BZJG2Rk_ZG|qa蕣_ހ`UilaKq28R⳯V3- ;Ϭ^t=1t`}u[^" 2}l>ak<h!sSZj9W}lj@oJm."]I"PHyR %qiښ͚Q *h)P{Xjj0IVl9rԩ#NI`/_Zб:ZN9o[Vɘ4Wτ𨳹.!(`œOVG۾ٍ:zꍽ؇v{뎗\iTF-y66"x3/n3׳f lEL/vK[a75!w[yxn8 zDT<>~ = v;)K^]5Ά CԻRλ9W\~dJFSx}OY^y=OY )ڂP´ch\q*Bkΐ$#VDC,I; 4f +n:+B_e\ek d$;TUVs#3vڜ6KϸV~ cfnՔk;E5͡Ee5JnQ\IW+w`XEhr?DF/Z%=W+KF܈ ۻtc9Y#~-0ث8ous=cWMi(֭?3?|+nf؞K}+t~YLǣfSJBq[C3`P$uK!B^)uܬJT6t~q~ s~v|l{o9)mW֤AgF|${fl+^cm8gq `mܟl9g-u"%M8_Wq>Cپ \GsO/H+ʄ8nzB@J}a2wg|oUq-c/X? < LkEx2)`x^iLa ?p}Sq8<sEP!hs:.vNKKEZkeB׬ܨt P"S{A L 0$w~2.WR2 ?>Рg VT$)1h}XN ;p̝(؞Hr@$M|#ȨA*fjEMk`JzP~QoxE_S۸oRL%g~1vr~Ch"1Q (v[ekA_jT5`>"|P2sl@ %s$ed DzYa '`"#G۴gC#d~_ OUE0vt&I#TasP?9;ۆRBVWhvIl `VO_Il5G8 '뻶2<0 2_.xe (4PK"G9H-3]&τY{gaXpuRa^55eFx 7^ڨ"GՀ}{ͪN%4,\VASW `{.ٖ6w47xAݔ|^ Nx=;͜ ei8li)#̤ ]>ٽAI97 @scm ZZ M`|r<n|>|y" y?񏠴/šn6[V`nڷ S\ ;Vl endstream endobj 834 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 836 0 obj << /Filter /FlateDecode /Length 502 >> stream xmM@ڃiP>&DQLxCuI! LoU7Ύ$&>]o}4冀IX : +գx[])d >DWxWU&QMdNQq16Rȇ >Z(NZ6E{E8!|={~ |b6$hF~ ӝ U?hsy{g0mPִLK}iM>ٛBb(*h4apqwAY) fdF1ho> stream xڝJC1ELI@ V[;1ҕ•\!vqsLsOa힀{EP*"iLM%UHPAx33;Tgu6s|pO0Yk%WFYc=v9.6P2e\6N&1qv=|Z2"u Ǔ1=N`.jc~Kx6?1hEcAbV3\kK/˗r endstream endobj 857 0 obj << /Filter /FlateDecode /Length 3119 >> stream x[Ɏc WZI@A.I*AI#H6j]U_7 gRve_6^pշXrM*)soW~vcV~)wYk8H+,m-ofs60 ۋ]M-}ʅh_1N3_򶼂ryJv~\{J/"zeʸB޷+}h8~ΕvD[gpJՑ}Daծ2orRIGOkktC;#T&:kﰭ|ܖ.:%x Rf=SzwaHJ(fE[Yj1W..|~7>Á^䔌#iFfV=&)"o"nD6% ]2K49{Ǟ8 _tqg%&fݺ]qG bnA$vE*iߴLv3Qˇ3KتH&q YR(DsVʦT=.+ @xa2t9Sq;/~&GNkkoz$[ w.Ű kwTͳ.몭+nQlzX,c8E;-u|pj$.XR'߻SLB4c7FM5ZЩ z|k?pgzXἉg [N9`1a431d2syBZ=`] zYp͈ጭk=X 1ʑs 9&p쬥ҏ9JyWюyX-vldvl$vl"Ó#ʝHh&bߎDvl&|*,Ò!83$2t ڝ Hj'=0~RCQۄ^J~pG8S,-yFs DϟȀ@qA8:vd`veΠъ'ݕy /q#%o@ ofŪy|V:{D&-p-3ZTKzUdDruӴt%ёC:X=RIIo"paFd',]m۾vXs}A:# }m|h_0zsv~o,ŠCֳX|KW, 4SKW9Cf3~{BFY q -iKepJ;uhgn X8:e8(ٶd-!P)Mh, mYdۘN"E r%*|2גPpl󰪛aPrei>6I&8z FȾZoLD+EHedt "0ҵ4T+w/PcDm_a y#ryr%LAuӤA0J3n gU^/= Dma$=~6es:Elq[P̢C6w˥5ۣg:v) HaRd̫)Zu?V^U3WD.p6Ou8kը*S*f NZtܑpU;sDu}NvGĒHnQ[z Sv@XPKet#lD쇨βGfx,*C3d&'!\>c$AGl'&PbH޽GoF~d=iǠtDi Wqvu>Ax1Z* I9( p@F6>, M9G8$gD&)dE8 ,}ʀg>r"> stream x]U]EٝwOAvgWADQ1IT1&5IO<GϓZ={:U]]?_t ػ__+C^PKՋȓGK)#?vywp/wnI "m[l,no7ټ >?vՇq,J"ώj'G|3Y kMt49 WW<-?ӾDÍw!*?8HbȻlp\mp<;IpͲλsr\?rE1\,O\Ñ+pϜ(2VȲ(z4C\G3›a\z}cynSFPٹn*&՟ d¹ÏՕJPcJ4q共l*&PN\?I 0DE.,X].t3\Sar4T7m#5EE(|Me}м+ !7HNP tҨ)S[Ys] a,bדF8%aNc8p?n U!x5`yU%,%5 e[(2έ[{dG2)%Xʎ-l٫ŚqN2Nµt&4v{u' x.SC$tZ@覍wo-'.(&j6/cڧ 2hv`6xEFUJ+}s$1+=<EY4di 70ʖDސuuZ%Ġ~.znwivD?[V (+=ܖ86ee&]5-71XЂ3*cMt!"9tmk?p-x&Ə"A]ޑg.sÞ`= LOVUz+_3`ԑUċ#kQy&qvl䞗$Oo_ߌsbaF6?tg{ :ɫB7[ zEHI JF(=%uZ`SOB#JLDtH`PM3@2E'1Ĩ -> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 866 0 obj << /Filter /FlateDecode /Length 420 >> stream xmn0y; $Xqi"1HY 4X"v$ >|Hs}= Ob_Ko0Xi-@ѯVOb4ϰ2]J#Ild5gVDwׁ&$;UCSI |`Z.9*/@л;J%Lg֞AH^_/(h(T5:n`>Um.Fï~i)k0Hnk hxm0RA|K~R?4aw4-*s&W~N=T:dnÑύgKC*'aҘ(ф(GS6cGQb;O#GqK񣣙-&M-2d>f1m{mz6)BJm+ֳ_lyj3 endstream endobj 870 0 obj << /Filter /FlateDecode /Length 925 /Subtype /CIDFontType0C >> stream xu}lerWI֎NXMP| utaFTBx]l3Qnot+m'u kXۛQ!q#!Q fw[b7>ϓI Ie{;n;kk5y[,^6i@ `&֜rc6"DW1P1m"E\ZPUhc_(ڔI*uTUw?nihtW E:BO#A P4Anwy)rUW˙oF*\TWTإP3TZ*HZE oNQB)F%_~WH=$ [ZħX)6ւ3B `\(K}+KZnIOp U *R5*|䟖[d@tC0>iv;$@Ag$tQL(<ͳHO|cӣ93knKY ɳd!YMyhW*r؝^olWa_`;0c CFvIhF٥/8WFIY9U-S:g5`y;:665']#fΝ_]VH_!U:9 {Cifo,O ^6d߿Qo{] ˯q#CSh87үd,I9YFٴ\8cWxV&)xe)-X{ b ]B8Pa7)RG-ASfe> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 873 0 obj << /Filter /FlateDecode /Length 397 >> stream xڅRj0+@rp,Uyb> stream xڥAJ1E9E +IS #Nn{5 .^ө/B =* /!\Y%ͪ)J*}%dRO8T5z`1RD'7_uMV͊i8&XI.ރ."6g'VA8KtA1,| endstream endobj 888 0 obj << /Filter /FlateDecode /Length 3779 >> stream x\K W" doS#\c=$TS=# c|'bu=Uo_?ko?y"XoAh@<"iI[8IRYP(p_?郰l-R:2ж^Z+L2K,|Ys+ zOuAzׯdV X\+h}=ElC݃ù:Jx@AG-?V؈?Fk _\nb" 8vvkf6 Ծ:+., oxғ,$pd-=P~Y腧KuCe3c,;4rd##0r#' P!yr&' \] ,R  "+tg8T0Nף:L7yF Ҟ;")(gݴ\$u¢1zՏ*l)7DY86%u6Ye`lTO4SJ DkDéL\Qc4vPDv9rOv e&uѓRqru8=ttcS2&b9#/D@P!ąA܎eQ36=Mex"P>.2t^%pܣ`5 0l99ML=(ٞfτ5 N+/iSlgl& *HŶٰ<X5'R~rΒ &2u|aI41&$NCåߋrsY7TF5[-e ̜Vڐ=6YJ <7yL # 1!k,,+;y!,/lլĔPO#1f.4¨Qڀ1pwacfmBȀd'bͲ5kVd)5 0(JBܶhbDi!)Dr+2X29*﨟k"{9fG(%# <ׅEN1{GysQ3&&(?EC!0'8k<1-h˥f(1uqꡮr}Mr:;ԼK]$@ׅ9 e^ 'OQѠ{%MmJ 5uF/k<)kwRd&[t)=E :EH\<մuXܕJOM / [tKuS 8Qg&Xjκ#f 8?Nl ua\RZ,=0f~E [TyGYDd* E6p$U}r@=iX@s@']2hz ht >,LD0vGw&mmr{Q0tH# rWwJW$=qwN~syF qt~ wPqwށ7dh9FT:x/@4BtmP/qhKh4~uv㇌ #'sV9МgvpㇼUօX ~m@vwAeT iމ2E㇏h:'uЊɇ?t{YKkrV4%/]n(^p09>n47:6 | Lȉ%WDfGDy,GFM1Q9 qhlI$Y3R]oݛy O18ݏ`٭oQ4N^E4x~b`"KDl +˜C9'Mx62i.WêA'o'y/$A;Z)kv?Su<0\Q?,XijzX!d 3`Q:Bl%機S}g`WL[xbµ.oԛ"mٙ0y2/R{Ԯf!ɵ\h]|t-=-DVpڋ+wDŽ :Ksk&Pn̍hY+v5! BqAƽ Fk0tY|b׽Gai7[gn[%dS?@8-M2Mq\L{$9:ft.α-RYuJFW­.~UZԾ Z:K&aSp<^AgC4Bu|>hZsQl%U^py/6,2\eBkx; n[|ӑ^;4Ǧ))Yd\+.(?\63Y! ~Z*Cs -ƁZxU穫[:q0:`Iı3+!Ml+YtI`A:>5{mb$SYR4}kDz$?1|lѳYsڱw֭s|f؀^}C @qS" o%|k2r-0 XXWٛK70m[g řŕ׀Al4DHb ;O]LsD^K01]ߌ.-_&/ ^wx5-ߜ`%%"2o%/+/:k(Hky[ 6N[;m[܏dk۬(ώ@< @>~zYm.-d;ʤ):詶`g endstream endobj 894 0 obj << /Filter /FlateDecode /Length 933 >> stream x]T݋Eٝbng}9"(z1IԈѧԀ7AyɃ$I<AbP|']wWHCW $\vwNѲ@%=FDL~qk_GPX߆iȾQCWO5qEw)`v}I3#(c϶=>q67q8 GIXz^+M oMdq.,ᢝsQt{)uLؐ,nt.=LG1sVF%TW\N:Y +@e ](AsJ¨H}&}šg#3~}I)Qz„LHuqǃ0xq&?N8w3U=n);Ra(rH3(8.9l[p & tN KV̇53^RDJD@vbTU+(&>FE*|Akn=a>FsŐG~IfPt\-+S}ffLQ^? #_2Ul;pS=0 &?+F2H S-d.as[R-S՚t'*UJ'uDI*+[Fq@+E̢|汦aut\7pu˾!ĐB:v;C1`LiW1ɒ$\oo䒯ư_E 6iV*ϙkONK9?Q(C75^y1}_) endstream endobj 895 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 897 0 obj << /Filter /FlateDecode /Length 384 >> stream xmRM0W=Ԧ~=Edt6)i{虜umЙyoKZoН }FeT熣ZjǨ @QU !f^@ɬC@[.B5*b@Gx:Kw8̕, @IxM|M*eQbBvJ-U.R S =gu ?-P(Ɓ2 0'h{!4R]Ja$7ҀlVxA(zg1dvJ3pO?_IDOB6N%hD2}b{}VD={D}F lm<Q&VWύ!{*KIe&2دx˳v endstream endobj 901 0 obj << /Filter /FlateDecode /Length 925 /Subtype /CIDFontType0C >> stream xu}lerWI֎NXMP| utaFTBx]l3Qnot+m'u kXۛQ!q#!Q fw[b7>ϓI Ie{;n;kk5y[,^6i@ `&֜rc6"DW1P1m"E\ZPUhc_(ڔI*uTUw?nihtW E:BO#A P4Anwy)rUW˙oF*\TWTإP3TZ*HZE oNQB)F%_~WH=$ [ZħX)6ւ3B `\(K}+KZnIOp U *R5*|䟖[d@tC0>iv;$@Ag$tQL(<ͳHO|cӣ93knKY ɳd!YMyhW*r؝^olWa_`;0c CFvIhF٥/8WFIY9U-S:g5`y;:665']#fΝ_]VH_!U:9 {Cifo,O ^6d߿Qo{] ˯q#CSh87үd,I9YFٴ\8cWxV&)xe)-X{ b ]B8Pa7)RG-ASfe> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 904 0 obj << /Filter /FlateDecode /Length 397 >> stream xڅRj0+@rp,Uyb> stream x]Tke?g㛙fnUk[{T)m!`" _%aФU(}ܹ'ʢ ]( n$Yԍ,*ڍ J{oҁ|} tsgvkZ9?x@:~^aZ+W?5d[xfWȮ|*~@ei0|d]g[ U-IN{olU9~:~br J" Jn[B(w*GyK 9c0Э{MR# N,F]i,__o;*`r3;S,cxO;vg&/FZ$'n^$iNXQ,~%@NR,$v12ڝȒ[~E%&Wel|*хsC%)GA#!1-kqS_w]dX>˛M iǼ4ʽq!wi yuz6]MSIJ1Ԅ14}_c4GM=mO DpP U8EPwݦ&}|jU!nYl=دn7S! 7"fMkaTąƞP5\ƍkc6ZLj$ݔNÕi!lGaS*۫䠸ȜQ1"U}D#v3H$iA\ӊ/C:m8~ > stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 911 0 obj << /Filter /FlateDecode /Length 382 >> stream xmRM0W=Ԧ~'êXYcMF7`aNj[WBg潙7/iCw.~S#JVkyʶEUM'7A{%o ZU'΁~y8P(]fGTKX8hR.ck%:KW vJR 6> stream xmSmlSeECw{7-94:TXMcViX\e4eJt.LA;^@ $s眓9X86ukMo4?z*ӛݸ ("XUF(4zXOcK#mL3s!sdBq7c~jj8 F눩m2VH͠J¸*;=kzC ?*cu8}QBI2>'sb"p0Gk ϲV]1FV_K/|OʗNRiU\rI2$,Vq)-u[[T,[O+EAfNTgemQJp`^n7"{zOw?cېsg&돪PR Gvޮ4RVn{CMMϼ)e!}@0"]$ت1^h'(]'/#}phNM =e@:\*_0$xU L~Wa9 ֬5 96mU42T ~V |ltB: oPXax[ f'q24\xmbǖjfYŵPe'ȷ(2>MNV 'Vš^t ^OH͵pKh.%ch89OcLOt'$x)YAYa;,88 endstream endobj 916 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 918 0 obj << /Filter /FlateDecode /Length 395 >> stream x}Rj0+@rp-UyA>IddWlPS#ΎԹEGtBQt8u:E" 2di64p 49R0YQL}{YDz/Xĝ s9@A޷xGq)&BRLpU-`r G8 &:+(YI(NNkjk9Fb8CնfDE^8AP1<5tx8g =v5pjP0Kc*%LWz.QV*O+V#0%hhE= ,Y4hl_ЀJ-C0s͵TZ|勩ANK endstream endobj 922 0 obj << /Filter /FlateDecode /Length 1128 >> stream x]TˋE]Ulznloa%&$D4A⚬!#zPě@ A >.Omz@}]QU_}5@@{NonAG8  q,o34ƅs*8g^?#^Fnx9f'm**r:Vb|u}Rr7a$.,Q)j^5˺UGu]FJz }RX$*hUWp9~qW StV}$L$8K\@}Gz҅RSJh)Je:\0~(QTΒZ DJhBø,2h ]baC$Qq$#+L(YF˥ B9{ M! =ȋGz54PF*7+j EUG%6VuۅJlx @>8Ш⠘Sad3V qȍ&x 1IS. !R_!#LTOhBJ6s|R=ؘzVwxldk X9j)S󌦝 ˶:IARd 6 xU$+-Sr/r=X7+lK &eUU |R1jʤ$NèCI/(u*gMwd 50.Q"H, dKKIz[$qa9xB*3VV[xJG(.ٳ,&1_^r9<0.E^f{eBgT*w`9TJ6u}D4qD yUSFTaYiM}lϺTIp 0q)=]87{m$"2Z,eA vD3YPSV;x%8^/"gBĞص-d y* 4fDnWʴkc&o~*zpp %Խ?8x꼉 s_ ^_ endstream endobj 923 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7 CWln\mI:v/JdeQ "=~Of^aI~|p'XezmAgPf"0:^M0Ͳ2;)m<7nUb0,>#~XX5z2^,LfYȭZۄri"z> stream xmRM0W=Ԧ~EVEEdt6)i{虜e(tfޛyvN>m3a3ѝ}h5"TQ(F=М@ɴE@[&DՃ*b@:U(ez 5U~qDHFcX(1ӑ qBxTRl9~iGd6ߓ@]t4I=oc|UK}7€dR4xf10ªgm1dzG=p?_&qфď>6N)E2}b;]G{D]lm8(KK?gƐ ڥ"cmu엿hLؘ endstream endobj 929 0 obj << /Filter /FlateDecode /Length 1114 /Subtype /CIDFontType0C >> stream xuTkLWaw5>63:hJZHhhLkfyFeaae]ξf0t&<EрM&mMI-5mbMsim&|rrPD.GP}3bJPfŤhJT9"#=2qoH3=Xџk P@Il "}#r86`dۘQ ) qqe?}ZiV\uv^Jn^VzPH"C&dS؋U( s6- ?[Ӳ$:`5lzZ SKw;y2o4j24V >IC 9^@Xu9u mXsA n!_zNl3&[}89gG#QxTyгzXK #AL6Q׵NF,{8g~j;B / ϟ>~*,h0 ]j)h 2i;ldWgowgפ-75G<˾sF9BeoPZ\\R\ѩ Њ}/΅{2ThXMd:u{<}LϝO|ՍTAsi|\j V`͍&+iv~\%n\鯿왺Wƨ+C>.Z!+0vnha-]$zWG͹>j̤]5:9="mɎ΃ڡFz `v`w.5.mt;W3$+x4,C-Q0os/3 P#PC4& PXk,s6RMyAf?|;LRr_'vWG_: hOLR5*FQ!I>XnpzpaBg&Нs.K!zv+7!'"^Ge endstream endobj 930 0 obj << /Filter /FlateDecode /Length 555 >> stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 932 0 obj << /Filter /FlateDecode /Length 397 >> stream x}Rj0+@rp-UyK IKIddWlФG/L=b. Eџ.kf) Bd|%5,\w 9\0YI'smi"B:9s[lS o*R |$`Ss/lBP?rTֹvq &1(]ri,!jեZ1T\}Ǹ,;cxlڙWIM3S^`u a%z+_M-Z/~ endstream endobj 936 0 obj << /Filter /FlateDecode /Length 1096 /Subtype /CIDFontType0C >> stream x}{L[um{/s+fy/&,\Ybp-cP\x*J>~RP:Z@ 2pd&F%:b\.az8}c xԵ7]=J,lܳ/KrJ x R@Qjy4J' CJ&PUJaHH9a恰߈ yE:P|'#Ǟ>ܙso Ub:7?)/?ސ c HyH,ld rr =oQVR<K6 obFbi,3Yjk5Lz+'XF5]z'Ţm9NkE=a)aZ,l5im(/e^3]N9/Hd5sٞ5m L5vt(i{餕H4# {}BHzpWK>! u̹~OmolR uN Vy :xUԾ}VMQNچ"I "Jbvgȟy endstream endobj 937 0 obj << /Filter /FlateDecode /Length 562 >> stream xڅTn0SM6$JM]Ȧ&]wk6vG+$N6&!sy|Ֆ$ZS!MXҟ,XOSOۊ.U]Gغ/ƭeAȹډEbROϻmlu0 {^MLøiRCpgk-7\a1<7TF+5 E&e8i\]@(,E.qj~Ԕ~9`i1 ukw,pL+Gس|]I&T$3A k*Trj;r.@dx#Qn*fʟfs?kdkp @eVGҌ V;RCZ2&XќIcyL+PW0g咂mHJ\]8߃$ٗʞMo[Z rLL )X\ d46'M)ҊD1yAzqw8?CvusRPuRHyB^_H- ʵ?f endstream endobj 939 0 obj << /Filter /FlateDecode /Length 401 >> stream xڅR]k0}ﯸ{kؐUBekM.&%M%M zsϽ$fr~ Y*x^*iKD9-`$ݢ8~CMK :\\(w͟/62KDHX')>;SS? n0t;K=!lL-ā ao]xa̤ղBS1A֛C-:U:C77m)9@՚ &e[`3t+ZS~ᄵiɰ* d%f5`WC?ЯDy2@U[C=&+shPߡc~{44DTUn5@.mWY[K endstream endobj 942 0 obj << /BBox [ 0 0 147.043572565 84.196804707 ] /Filter /FlateDecode /FormType 1 /Length 237 /Resources 941 0 R /Subtype /Form /Type /XObject >> stream xڥJC1yyq&sIBP;1ҕ•`ilsR!˗0!t#hM)!8N;)*DđoȬ溆Xkɪ0XV'eWpdmN6;Z[ncY]]ZǮe Ӫ=}%#Ubf.V" V  `-H*V$R[!#ӨJ#UU\Cʥ4ő endstream endobj 943 0 obj << /BBox [ 0 0 368.393031746 269.22301866 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍK@ @sn6mHL\'P$1$`41}M PGE/GA}"Unmz8/k8Uuӹ#Cy836F8FUI.ǔ[7np3)L&DYbTj\Q(xz<)f̙̺~w_NSu)K* endstream endobj 948 0 obj << /Filter /FlateDecode /Length 2854 >> stream x[I)tOǐ#(`;32`>/rbJRSSFD:~O>~svq91MDr|_<D8]y8#G|bsFDm%aEbd,wnƍ#=L~0F($}#ӹ~de%lak?c}tzw&ލx:zCz'_?qx>OoleLR:04:AfnB*G2r<5!B; nd u StV}+*ܥ>z ͖X<Ӭ+eQ5 a N͉I!ERoުɨpգ?A0cV h KnBN w3UkFp*/8dg{YPA+03n0_߷%q&^4nY;`LbldfI :HPڮJ^˸ Mk -s" FtPV|Hj0>vBOVckZ( {ȓX;8{@.~ܝZ,Qa`mdSLeS&P-TE4aكdສ'+zw .ݴ|0 ǘ==4DDoG_G:_lcO7}Mfөj`3jzH}U-u͸:d_u(=e8̪dR!:X>Qt$T2ym7X+X~$0qV޸PÃܑt9rlx \\=q16 j0}qՋ?E{X&0SrȈZ(D5ʏG+ՋjklL 6_R|I[+Y K?[ *lCX!R>Apv0wc0f1Juu&  Ky Db?%a5<,RoGԈ<\5a`B%OF2l࣍*al!c;D0q0IîɋtaVN: #fQKtҮȇO`h~"x/0/tMt,~5-'`/d?Cχq&^""?1GW/ $9^OˠhptMԏ;}eVzc5%;8 +q}a:ײReG&vr֮CϋݐDvhGdS&~Š2XP-5]"&7&n/muxdv =p,uc7h:욎z&`r˞YXxSw6k3䊂IwqNW 8Ȑh0\QֺJu7^w54 5ȴ/{ʅq*9>kU94TZ}ФĿE;(=%_ebx$9[϶G3]dMbtYdA,mn7Kr-C"ZwsCg;um`\<6QC"GȐcE,F>ڭ? QO/ ސ7i. Wva*ƒ `@ek4!֡@"Pd:'9h˩>/T>w_+2'E(,|]&"H%i :Td6m df5; QsU/sU?.l+\ԝ=}TtǶyTCXӴlAY0 :[U/r />gEFs\Ša0إ}VYbY@A²krJm-|K(G|kj4 9)#S#MGH-EsK˯Jyjt  J<r\ôRG(̱|TEQsꗹa,,SGqBզB6~M]ZxXsE"uKs"FTDj8#}l5]?*nמ]#b@(U]+Zc:4ݰ^R˛PdS_KjVV H J.6Y@!zQyU,\%Uyx<Zjm O<8" 0[ԅ$ Ё4, SQ>kz7ʹEEH31Mk96S]ZjNb}WxmڣK}dM*WJY>JRs@'Lc{~8҆O370ΐMCcF6tFͶfHװy/~@:`Hyl,DP :| "xê3h#-Zh%is/85q[b)Esly3y_>>DQ;Rz\w {>9PkcZȫOH.l}#̹M[:uWg8w,8M(B&˫3t?Q= ߧ͊R!VTmM8c8f#U!8b>nھ#re:Ie79~p6j%郻sA5 endstream endobj 950 0 obj << /BBox [ 0 0 526.394626717 146.874300718 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\'9č9]eR !&)c8 ZXdVթ t < ¥n^= Iiol#N1B[,ȈNM< 9XޜcX3^ f_u=[gorұN>sJD endstream endobj 955 0 obj << /Filter /FlateDecode /Length 5162 >> stream xڍYi$GuΣ*2鞣wfwٝjwu`$KZV")  9me;0a pp Dxb++;W#<[nɇ7߆v |~  |>}˃S|!zncp݃uCwdp k^zw=E B_=oYYΝpDH >bo/B  [/) U53hOyMP6뤠|'(ƹƛ yv@(w!AS U0ƿ ڏކ.Grg˫ {^UƻkkEyiWۙnrJ8{gNju$=c8ImO=ð O\A]pp=%l,q%7]F3&BAJk>-LKU\z͢et Z[Q˃MVY3v)1t@ɏa_Zi8O=#$ nO\N}SRU'b RE!*`GH]^dt*H)s\J7%O|=n}vl`v)jtVWke1kTt)!eEC~{<`a:j wabi7>*E\ʸOq1 G⩘ 7M "dۥX3MTkXU 3:֥'[Q&GzjO SeJrQs?Os0h>rkCy@J-->Kmtwh෾s?M75i:p%fx ?x.:)/_[Xm4M冞Oҥqp?H_BAFX4l,kMlf@~؟@/,|Lkc_Z?9 y:ٸzQ,yqA.<1z=" k:CP(O/j@ ̆R _*>ELp*XHH7*$|-+qD _&1vU.jf)z`yD{ )ц6QAW%Ef bQ؃B§>e)i܍ #*L5fP_)ZcĐ_[ohm֬ݲ#ДtD⪘ ɉ]p츼L2iKk3y[#U+|jfayA4>179"Ko@t@~  ?<16|G>;qbpCjt$v@wM=a ϻz,r&s] yhFʩ&&F^1:E4`,adAh6CG9Q1z3D]2JH N"{DHhXoG7ܯL&A/j&ڇ61t@;fgCɴL$m; ~vz5j"U|D4yU'\ZVilnm=iszxVhf RZV#'bN脊>k|w|o .= +|k.˅SU)aWA dȘl 3T@w8>J64a'WK)WAYϛpqH3,_ʨ(h,doi{-&kd:J8e2Yil]4ɆHNAÝ h;ys(X{챑BpB9C4{6"gf:-?i`\NOSDA >dpL<=]Y[oB8PxNm4XaYw֖k8ϓgԖWѱH8A! @,`HgbHXNlU74/XЕл7Ś KU8;*5*w/4LUHnu4J1U-g^{CLnmPa/m3}#wׁh,b*'p|y|/h^U}Zzk\9DɏhptCN#&= , ^ <Ŷze9@!Ef-ǔ͇L,-W͒\ItUĤ1-,㜉QT&c<as>ѱ"AjLE(\ ҽa~zښQ, YKG! \ R?m< dе;vs Q6(/SQa ny5hte]ILV07{~0@ΜP }̖W1sIDe v5c~*XLV& iFhxѶ7JW>\)7iN|T8O@k[u WN-Xp,FFc`/Qdh|؎Rn!(ሉ@\zЬ$QFyR5SMhU,\8$7MQp#L<5uY {z)惔 =£G۷=oS1pYM)p@)ݴںi8ptkb{u wdHzWvu]'AA=iKn'YdY6:^>kILNv%ݵH 둎 Gh@oF'J3]T[6X(Lyhs%t-98uv`&R--ɗb8Yb\Ň* [n9&շi+EMQTj2A`s:)|FzGmi,T>x iߔ0掳q g3|n;֩998 p?(Ӻː ׯ@ux1t_ZѲןUhV?ϯA^x晲|*סdyk < +w~jZX S endstream endobj 956 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 958 0 obj << /Filter /FlateDecode /Length 592 >> stream xmM0 !qBH!$AU$F"NR|=-<v,̫9o|ʶL΢S=7U֗Ru;)s*KeG&vUE7[\YZg !1.-ʴW3 Ǣ餗qEBuwٴE {XQUv4Z|Pw)TXA F0N"LWVFdU.\NmnO|)ԕLաinˣTG9 c늢3{,0ke[2ٜ#+L3ȓ*:5#(e4|25I"9CZh@r!1$$q4B RiǶ:e(-Adm(`VYc=9dy 1ܓ?LZ:=KC8d:HLio\`jAvl=\p[D(l]bb a?ZGN 8.Ce@B#:N ke'Y4ě+i4Bǽ+е#+?d> endstream endobj 961 0 obj << /BBox [ 0 0 170.078726991 132.677295348 ] /Filter /FlateDecode /FormType 1 /Length 373 /Resources 960 0 R /Subtype /Form /Type /XObject >> stream xڝTN0 )q,IE ۴.muh*u_f6;t}kEWP&ړ;<ZPjI-/+ Ff#"q]9 0Fd . WkÍp7Kg(Kƪa؏M'NuӋ2FS%3u5z[3BHM91DWMuuxF(UM87d '>{Au.v恖G6:Piky۶lp ,\ͽQCj{>HI<9dyIQ79j$]q`_Xb(ǁ ғ endstream endobj 967 0 obj << /Filter /FlateDecode /Length 2687 >> stream x[ͮ ޟ *.8NZ̮@(_(DZt2Lι@%}DLŞ}?'zcs=ɠ)R2;}߬A1H&2@N5#d<ћ`È>L; 3.kMGhOYzFSN!yEר7L1ԊZ)J|棰!}.8E+צCy7Ίl!Oslor\}Sc f \!S<[At߲ZVqOWP %ZBbd0gB3OХ,hI![jήV(g/heLv>)wEyіe'i fSIk8&BnDaj8ayM>R51cUVe&r)i;H iIKYPjJZ^k:O43(~bt "LJM:R@[-PN|}RޮJ)u8 0dzݶRۭ^U:\JJS}/u.bͤUX/3T|fTϬm-gŒٵ\ ұVKn<ޓSj`3%4><6 ؟ fv`y*-."57Ksu}lxsAUv>XcjekVNY8 9_3!0by@Xs1B@Ŧ$ eX5 4(0Ws"w[h /EkA_< c=c47fSs9LZd6θ.v4IQ8 'ͭvƨm渡YtZXFZ)ْlPOL~])T66! YU;ao+q. Jf),evuRœOuw?o}㎆2r9=M.`s)dئWIkqEk[]G9rNvsG\Fë/0P/᝜҈SU ǧ3w@5pAٿH?ivR'vs }tLLh@4DŚyS̛N H@G>|KُH 43ɲl?ORg UqOiFu:kF=eɏHĚFLT(Ja/!Ed؎Rڍ&u/Vڛ:FgِIh1ShqLi9\5DhUi+QO!G7NK "BZ?$G9 ԓcZ3zJh K/=_H<O=W8uH7o)yW=_ {O :x6!{ȱJgӂ$ {⫂z"V;ѱA}YAW=A}Ë1InGђ=k JJF7v'Bkr@M@%I{/: r;&>xw|um=w i۶`uTbl^ӑ ` jZQ.bĺk\+.h4[xl$悳h^SCbK1EMΗ9>+?I"yq־%=\NZS&D߳q[O+&޸8`'xl+]~)IҍGKd

Bʼlm@3zVsFr}/޹+&ύk-={P2@EP'tʽk{EbGKxVj^"uёN(6 8|ӉA`>FCaդcPw*[}4+ۭ o ߋsN7`uDc4ܮt)jE`5l%P~Ҿ-A,i[ĵxlP[ kŷJ>5X2 mb<`Qm<6D0|Lw9!˸yk63za l"7HP|S-,9s&Y)?uUT'!t/l2\؅P .VJ5ԯ`T5CC@'ێŶ7+yEHU@RWj󽨟bs YʺkpI> stream xڍY{Gy鞞vowvn]t,ɖ_-a#Y~bca11RP@(\ ^yUPC6U"epzvtMUgvzgv}0BF#[n;y/)1[`h>?c4\|>u{k!ru|gn뷜z3x/BG9 [KiYpD'H ɋ:tz,r7ϣ h43?_c.kxOmϯ KWFF[s` !OЍy1߀"D'a|!v 'ApY]0!%BH!0> `.8PQ?MkJRώ"TwCJ0#T{d?G#b Nte,2e~1uX^3 _jga<(M9m L1=8xB?E0Vw]w}U8I9Mq#,M NX9 ܥSq*,J.zEbgezMET^j4,m6挥A3 M)m6ڭj Vl>Aޕ',]i&$pW # VYʄpE[ >|~vg K8Him9l.ҽ"8JDŽ4=W%`=c ڽtx`I$`LC4zJe3mqK 1B wc-&1}foޙ/02f EZ2XwB/զ"S톔[<`M`MՈ%J&iaI"lP;Ai ݞĄډ+ Y_WPCC{@U#\9ȿ73r-->sMݴg$<[N/7J10&I, 6azس/sx#tvHkB(v͵|۲¥a`2Nj_D?@ FX.7l ,Mbdb@~X[T˗_ ozǻXZqՌc,Ui.޴\,۝r3ĨFPA@~sa?"Ft(@\WH^;}+FI8 QՂ&0~Bs 'D@:Dv3| yê`11IJjwI QQ<sJ7N]LpiM(#nJve\%nJ } YTC;@ 7:@~6$s?w'YlTęݒ ^(qI+7IjCP%=//O\RBA|\ i_CU @5BxEpC&P)ù),eƆ/ACT1sIZrE%pf1R!4X^J>W C}|!Mt/@H(T@yXiHftnZ4_X#;V+ T.زæŊѾQf&iH)C*nƮM˙#RI^ljcufҸ  Xzy0a#eH G<@9K-c=j",cZk?ö}{߻"$cG)i/@ 0,g'e2+qRi\Ãᡲ揃 2 њŅ.06f88!ᢃYҝ2j픏{ 2,,air"AHjSSUBl84]U0}T,VZAk t0F;:`@h@ϡaSC?pO>HE=&I2@R$:V7ڊ}|mz *1x>%_Š=*J,+Ytc^1l iא"Sz6xg-$&8_>Egb ;v<4au97A Cx¾ NҊnw'cW,EAY!0gs#ܭ6<]蝋7!t~7 Ie:. Rtu(@OqL9]5yp_5&E3eprڷ]6,%Z{lp5uzBdrzM۴LςlqhBŤaQLLɶ1ot!݆1kC{^'yl} \ˤ.jo~ֱ=ѡaْG2`砨\삯)8pe{NHXqJmAJk!v u/!gbgًϨʝwytZd,/̀+5%n_%Ws*|0 M% Y 6DْÐJܿU o#'^EB=9)n):&fPA*dL=pDJ\K_B799Ccޥ]|-aWzp_܁ɂcإKEP&\_G7>kiVـqq5UcYpʤ(ǏOm: 杈2{y_o.?%`Yu/[arv66uM l~:Eg:ݿP~Trے %s{͍& jJx -9-nwN!iPe*3!#y3⍊zy4Z06U }nm5߮)-`䋠\b%1!j+PgrǙI`L{luR½@PϋS.hl!J)-3o f '0mtedtYa DcN/Jri \ȱ&) :DۑJag-6 ?/} [ՐmQX , {Oe} Jۭ |72P0L vFRZ;|\(oŚBAAw[p r[LܭD5N{" ձ,$W|? bl%`iÂPGU*Kʤ֛v}*`E!N{>)˒Q 9 wl%~r\f3ױ߽efff۽)uIc,XTͦV;5c0i:P5CKX 4<: ams3 D&3*Qonȟ&9eM&RV*$q\ p*BՂlB9Ƅ7>V]kpV"2:f֪hIXB9+V2z WCǖf>,نlk8:~H%cr n v:=mrsژ7_WIy&ȖQҚO]]HVr|s~][{wͻ6uV{!<Anb.uҭfKDY&X_Fq]L~kunxJŸ;; 4cǜC4/v&B6 rzZet]ah7&ro%oV׻ӝw1Ӏsw;R|~Zޟ9Nsh\%lc> ӫ.^ l@KWd՝U;蕎0=v_Uaa%trC!gA#`\z/^yq(&װs;s`/Y?{[ [oA<8lA%k*93A:7{*BlMhq~+E͗=PsV\xڇhE àI,YBG-r|wl3e䢶4֍Lt b>ongxC٘AN#Rmds\#by|x~d71ȯT|C0qRl"jۥӭ {Sqqے '␖pps-e %-z |ߴDmcG;= C;ǟ4Dq>HRM 0a;Rv7B?Jضkٝ 텉j ~x_av)-\hJ XS b"H=Ok4e+,oy8Gمy\Ay!5jJMbML6@}$_717[qXj4#5,!7`:M~Ұ޽҉F BlFFY^O]lJs]~\ɍmlpa.8K0~otV=7r;:{p45ݣx.HNd_AgEHìO=w'_s͘`UxFVs_,J> V w3OY^B%{p3y ~-^0-P-y<* endstream endobj 974 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 976 0 obj << /Filter /FlateDecode /Length 608 >> stream xmO0~BЅ$M\vZ&B Z Ķs"mm0*A A ܀!>OP[s̚y>QF1&90Qcys2'BUhA>6>vFXY݁//A 7|G> qnj 7 _$x')9⯃gp 8\MI/|g>>Gd endstream endobj 979 0 obj << /BBox [ 0 0 170.078726991 146.842513791 ] /Filter /FlateDecode /FormType 1 /Length 397 /Resources 978 0 R /Subtype /Form /Type /XObject >> stream xڝTn1 W؎*u.RoU=8xv)҃TStZz3<}@D!-Ba~ 2E$36p+hDExDFVbFp^T%rbMĖďӊWo6ڤXkW(PCRݾ'nM:%:6 zKEMfxVFmIFrda]9WGBc0Vx$u$r=*!wۿN8}`x<:H"se^8ӯV%DJezc[#`<R'|>MSwn_Xp#bݺ\.vupZr endstream endobj 983 0 obj << /Filter /FlateDecode /Length 5497 >> stream xڍY{Gy鞞vowvn]t,ɖ_-a#Y~bca11RP@(\ ^yUPC6U"epzvtMUgvzgv}0BF#[n;y/)1[`h>?c4\|>u{k!ru|gn뷜z3x/BG9 [KiYpD'H ɋ:tz,r7ϣ h43?_c.kxOmϯ KWFF[s` !OЍy1߀"D'a|!v 'ApY]0!%BH!0> `.8PQ?MkJRώ"TwCJ0#T{d?G#b Nte,2e~1uX^3 _jga<(M9m L1=8xB?E0Vw]w}U8I9Mq#,M NX9 ܥSq*,J.zEbgezMET^j4,m6挥A3 M)m6ڭj Vl>Aޕ',]i&$pW # VYʄpE[ >|~vg K8Him9l.ҽ"8JDŽ4=W%`=c ڽtx`I$`LC4zJe3mqK 1B wc-&1}foޙ/02f EZ2XwB/զ"S톔[<`M`MՈ%J&iaI"lP;Ai ݞĄډ+ Y_WPCC{@U#\9ȿ73r-->sMݴg$<[N/7J10&I, 6azس/sx#tvHkB(v͵|۲¥a`2Nj_D?@ FX.7l ,Mbdb@~X[T˗_ ozǻXZqՌc,Ui.޴\,۝r3ĨFPA@~sa?"Ft(@\WH^;}+FI8 QՂ&0~Bs 'D@:Dv3| yê`11IJjwI QQ<sJ7N]LpiM(#nJve\%nJ } YTC;@ 7:@~6$s?w'YlTęݒ ^(qI+7IjCP%=//O\RBA|\ i_CU @5BxEpC&P)ù),eƆ/ACT1sIZrE%pf1R!4X^J>W C}|!Mt/@H(T@yXiHftnZ4_X#;V+ T.زæŊѾQf&iH)C*nƮM˙#RI^ljcufҸ  Xzy0a#eH G<@9K-c=j",cZk?ö}{߻"$cG)i/@ 0,g'e2+qRi\Ãᡲ揃 2 њŅ.06f88!ᢃYҝ2j픏{ 2,,air"AHjSSUBl84]U0}T,VZAk t0F;:`@h@ϡaSC?pO>HE=&I2@R$:V7ڊ}|mz *1x>%_Š=*J,+Ytc^1l iא"Sz6xg-$&8_>Egb ;v<4au97A Cx¾ NҊnw'cW,EAY!0gs#ܭ6<]蝋7!t~7 Ie:. Rtu(@OqL9]5yp_5&E3eprڷ]6,%Z{lp5uzBdrzM۴LςlqhBŤaQLLɶ1ot!݆1kC{^'yl} \ˤ.jo~ֱ=ѡaْG2`砨\삯)8pe{NHXqJmAJk!v u/!gbgًϨʝwytZd,/̀+5%n_%Ws*|0 M% Y 6DْÐJܿU o#'^EB=9)n):&fPA*dL=pDJ\K_B799Ccޥ]|-aWzp_܁ɂcإKEP&\_G7>kiVـqq5UcYpʤ(ǏOm: 杈2{y_o.?%`Yu/[arv66uM l~:Eg:ݿP~Trے %s{͍& jJx -9-nwN!iPe*3!#y3⍊zy4Z06U }nm5߮)-`䋠\b%1!j+PgrǙI`L{luR½@PϋS.hl!J)-3o f '0mtedtYa DcN/Jri \ȱ&) :DۑJag-6 ?/} [ՐmQX , {Oe} Jۭ |72P0L vFRZ;|\(oŚBAAw[p r[LܭD5N{" ձ,$W|? bl%`iÂPGU*Kʤ֛v}*`E!N{>)˒Q 9 wl%~r\f3ױ߽efff۽)uIc,XTͦV;5c0i:P5CKX 4<: ams3 D&3*Qonȟ&9eM&RV*$q\ p*BՂlB9Ƅ7>V]kpV"2:f֪hIXB9+V2z WCǖf>,نlk8:~H%cr n v:=mrsژ7_WIy&ȖQҚO]]HVr|s~][{wͻ6uV{!<Anb.uҭfKDY&X_Fq]L~kunxJŸ;; 4cǜC4/v&B6 rzZet]ah7&ro%oV׻ӝw1Ӏsw;R|~Zޟ9Nsh\%lc> ӫ.^ l@KWd՝U;蕎0=v_Uaa%trC!gA#`\z/^yq(&װs;s`/Y?{[ [oA<8lA%k*93A:7{*BlMhq~+E͗=PsV\xڇhE àI,YBG-r|wl3e䢶4֍Lt b>ongxC٘AN#Rmds\#by|x~d71ȯT|C0qRl"jۥӭ {Sqqے '␖pps-e %-z |ߴDmcG;= C;ǟ4Dq>HRM 0a;Rv7B?Jضkٝ 텉j ~x_av)-\hJ XS b"H=Ok4e+,oy8Gمy\Ay!5jJMbML6@}$_717[qXj4#5,!7`:M~Ұ޽҉F BlFFY^O]lJs]~\ɍmlpa.8K0~otV=7r;:{p45ݣx.HNd_AgEHìO=w'_s͘`UxFVs_,J> V w3OY^B%{p3y ~-^0-P-y<* endstream endobj 984 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 986 0 obj << /Filter /FlateDecode /Length 608 >> stream xmO0~BЅ$M\vZ&B Z Ķs"mm0*A A ܀!>OP[s̚y>QF1&90Qcys2'BUhA>6>vFXY݁//A 7|G> qnj 7 _$x')9⯃gp 8\MI/|g>>Gd endstream endobj 989 0 obj << /BBox [ 0 0 170.078726991 160.11462752 ] /Filter /FlateDecode /FormType 1 /Length 395 /Resources 988 0 R /Subtype /Form /Type /XObject >> stream xڝT=O1 Wlñ*EꆸL};Jo/>pS=:׿w pƢ;এg(a`O"4Fȫ1qGb!HZ4 hbc!H5g*g8WwaeH0&l1|4 #"ܼZkS(KڄM4=hz \oq=E:v2yҩ֫jA"3BRCȴjmΒø֦PKBK{xF(M7/d>@庿=P x:Pq^W#I$^0.Oqp:_RN2xT7GJУc|΁:܅%? Lbzi?K endstream endobj 990 0 obj << /BBox [ 0 0 345.35821176 111.917528506 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\6i sƜ_߬0(?B,X}SSe\6PBޒ$.77ew5vצ2%Őe .O <Ô|LDo9{3oT)Ykի"@ĒA%󒉅[buq,p[_ )J endstream endobj 996 0 obj << /Filter /FlateDecode /Length 1847 >> stream xZɎ6+ð[4 [ %[S4?Q$m{2(վ{`߿/;y}ppύ51:)"D$x?~~Zog3PZ1F k\hm-m'p^f/pm? \T_7vȒ Luxq h~a7l2%^4ՅAp7KC:LSvVE|3>Gp״-g}H >,/ጢ36Hkή6#Lb AhS=>;Yf|,CwzJq"ўs>d#].2(%YcBA $0$zz&%zr8#*卣+'O3B#ϔC1bvTE2SQF^>q~ͯn 'T=B]%8^bċH]U#B=6CSޘab͍Ya酃C.%< hw` U4*a6*8CОjЈ(6K,#U}(i$MrBKppE H.(kcb@(P85UOۦlڿgt:jOpмj/ .+?/BBm ^Y+<*.v tYE05v"$vеChHPG4htqk#ьʘBΑ[c=+dc s6d!'1ylT`j7 JP=p.JSCpI"ݜê{aԺe yO'ym1`nN^a8nIpXa8/OW\aśٝ+55WW#ќ['w17B6JJeTW.|,Vktmcf{UZ;}j§:p vhcQ Wk>O;ܝ5 y6ajj#ҿw 3z v0\\@".۬nNJKF):^TQ1l89=g]hZO^Qp4ީYS |V!тȫ1:5Xg?:> stream xeT]hU>w~?wfLMݨKƝMMiZSBiEMmk,-Aj͋OE > Q B EJ M,B}MkZ/s=ٽ;ߙ8*ԱɣeMQCikp vEgr\t6;<=~pq\{ݕЅE4mPEh讠]ؽ?0r떃_}IzM\ _a<~:9>̧wXM)p} &, xON {)؏%g)KznSleY'Nb{u{ml5֎ݝ\(KNnwϗ(#dxjě=!t7 ODw}G(߫U/ N,J I0C7q~E"=yp\6.λ  ‰cDA7+RLWc(mV ԝ?KzּyBF'y"0%}gI3 /M֏ CveN$#WᮄEYv 7t:egUB-?GF#8N hb FɲV3ܣANF o5mV-$m4]d e]nڞn(\9I%t*a X 7%dvЩ! 4c k7P黺n%umI"4MFMUKp!:(Z>ЧEu< EY0nZDHFTt5ה$a#'l',"UhЩ`, KxHؕgp)5]&i\t΁vڹpD3|4SH,D4& )iXĪe<(zeըҺj-L);-|VQ>#?)SrFŽi endstream endobj 1005 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 1007 0 obj << /Filter /FlateDecode /Length 397 >> stream xmRn0+rHPHiJ5`/#'9 ΃Hx*v_ޢ` G7|Osכk^eD/2X}#%>#u4ýTg ~&IB7JYn"qnjX44m,ufQ8^kN*aZ7BecQbn7&D-Jsm4T{J.U*h"pwB|{6HBHnc~Vq`Z`MgdS,iuP8V9 AFYР!`)X endstream endobj 1011 0 obj << /Filter /FlateDecode /Length 5499 >> stream xڍY{Gy鞞Iw$Y-b[Fdv  )(RH '6S***ql?._N2Tzvg~0BF!Лn;yo 3&00ڀØ< ?Ϝ^?Bp>q=D=8w?p9Mgz,2ދPg|xauY#-ռZ{ =>yC's0 \d}|n94 zW kcpicct6~ڞG qᔑʖu;`< D!dO#D[0;㓠\Xo!~AHoopGRmga|!?B ?P0P|B50P Q ³Pi_!4F{?C LoYk5($/z%D[z۠zUܓV%'09dǰ?¾=M8۶/%SUiqR͋Skp0 z͢%9hx6vsL?{ BkҔ6f+K?̶gGm&nWE$YImGj&#İʑ[!'~B`.3/49MQ7ZN@Vw,δ+HGYcĘ˪ tc')ƪveN7 o 86;8Ә{wL;s%v$w،6K6^%R?cBMK+St$}8>)'0/GfC7PS@M׍ ;x~Ct hITv*1np9!Y|Ncܣcܤ2& "m3;3y\Fa]']PNŧm*RnqenH;ְtX4Y`v ueSTML"̐~Y ʨ>e63r--rMknyyYbou:AQzBqI*SX cIJ`/={.=o^x@-KCeSxƞ=1?GϣP2 A~Um4QҡT>?p^%y&4DFW F8R >X7ܐ4x/`L%"qz$~g@=n.Ck 0!{=m>drnhD*%u87Eذr_U87^yU gƄ7> O(++_SJaO56p;h:p/}LP-P+W3C>N=e1$>+H<7OҚ}G.Yʱw)VQ,௷P\͢:,R~ I'BZ/ygnFn"|+ǸL-B(dbmǎ';o&5a蓸v1ŢG˞/uDYUˑ'D0HNcsYV#'O7A`ћo7+\L]0PpoLƒ*1I& / e2}H'g}۵Am} c`rsYO[Z/a_iv9 rZ$cv0[Ee,ld&xbrnLaG^НX{ebLi 3c)Zwa1=ѡp~SQ7չE 18(|{vH:h JmAJ&A+ra󄺏Ơsqyt*^as`3'Q;&fXY5WjJ.a} \qʩAaZ?-돶Dٲ*PNߪ߬#}'ދEc![FZO3v;6 2.ܞ}8"h&ˀǧ&1LF;lXpiG@>dؕ^D)K?0U0:{ rMh&ԃe}i1m6u@KbsϢT&D9~fxj6Iށ谲י8/SVCOBPaN.ȬiS7 ЀOLܡ÷7pcuÏJn[ $4vnєvAr)T5ےvw|J2Zk?>i:"Wiifg ]:jw ;f?u[{:kV0%ԗnsj5mę`lHj]6šb)^ )Iq%ʔyAۖ|W? @sИښAAv Z~bЁ[۶o>mcfڜ]npUMϣX XO"𕘡X"Yt%˨gs2}$ I  N Mw >$uɘn[xOm]ۏ9mxޠ`b4^GkXó,oi]V#H{skܟJHT|¶(X@lxqԂīMQSIiyQ&-_l7 `v&Y@mRZ'B\(oźB'AH'!;+MG8SE-Y`WRVt=xīɪx>4QwB\S dzsaOAh3c8SO>iYC@[o&y0>; =BP%C~1 wn%~r\Vk:;;ܒź$%=8SLOkP4]J躁m?͆,ԡ]a7M*֣FhdVT1ԁo*ۧIu^Yӥ IKJC*AvKЙ3̂Jfly5̮[^Ie=#@/0/qq{[lXdVZlȳUfkA<Anb>uҭ%,HLA/On 58.՚&?7A%@.[3 @#MZDܚMyqd 9yvie9Hykz#[/zˡQI^pJ(oyOc4`Ki%C yŐ8rqɋw̖6PC1RvӨF ,R?m<d-Pj @ [HY6j84剹 y(XE!lwj N(SoB͜p^n4kۆ( ( [R{ǷS7&P֥ 5èw+n\҅2aے#a뙖fI s9 h s+7:P۲%[Z܏ﴓP*Ӵ}累<rxoΤ[]6tAA&~DW44#8-^ z=^NwbL'uHi?q<4`^n8ÇazM_[ڵAq- D}IVY^clU`3Mzqijyxr31p\ݙ{EE753Mj-|E䠮0 _oq{+*Bi@ޅ:mܦǾjx=;9/~*9:CVҔU:_E!s\CKl4JaPj `Pנ#V- 5>(cht)یDs.j+/Ca".(nɘY&[Ab`ձ=s#bD*lfqa?*X$! ?+9/͜V!cm/2v=,'Dc3뗽%6YNE IH][FCGux jK;v?i fBuHRM0a;<\`~~Jk⹝u텉~"6etp\x.r+ᵟ\//P2aUXm1/J>4ۃ[O9^F%8C{:/lu TrO<. endstream endobj 1012 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1014 0 obj << /Filter /FlateDecode /Length 609 >> stream xmTM0+: ]lPx1&xjf2BuH>&㧷IL<{z9m;0rQ)۪o29>NhTwrh,DVT7oUvs9tnZk-0L#>f(^(4^։~I$t[˦-*NTUU%hGsuBD oD$/ J 1,N[uKBK2ԭm܍)\6Wu} PZeryyLN| C\3O*{zV岭OlN_, _v/8.udNLS=7+Fn9Phh5}DFA3DF~t"_# DN[4BA͉F8bXShA L" D ja&Ge y>1&s Q̌?㨓fB M.̌ ϵ֬GtK#? qB 2G#|jfB?2T=p/ 1 N I<{c8ᚐo}75Nz04w?q>GGd endstream endobj 1017 0 obj << /BBox [ 0 0 170.078726991 160.312341901 ] /Filter /FlateDecode /FormType 1 /Length 403 /Resources 1016 0 R /Subtype /Form /Type /XObject >> stream xڝTN1+0$HtT hHAc߭r(PX3g;3];op?rC@@.FJeppbFu\ga *Τ3Y,^`|(MGT5SىOBEor~W5k*Ns@ &KP3a2̆7+[;õfFSy9}WϔfXEX)f56R0l3P[ZnDg)aܢ~ ~ؽa>>S0bOЊ8| 4Q`fx]z))sPr񻌣9~RcvbCNt`? endstream endobj 1021 0 obj << /Filter /FlateDecode /Length 1180 >> stream xeT]hU>w~?wfLMݨKƝMMiZSBiEMmk,-Aj͋OE > Q B EJ M,B}MkZ/s=ٽ;ߙ8*ԱɣeMQCikp vEgr\t6;<=~pq\{ݕЅE4mPEh讠]ؽ?0r떃_}IzM\ _a<~:9>̧wXM)p} &, xON {)؏%g)KznSleY'Nb{u{ml5֎ݝ\(KNnwϗ(#dxjě=!t7 ODw}G(߫U/ N,J I0C7q~E"=yp\6.λ  ‰cDA7+RLWc(mV ԝ?KzּyBF'y"0%}gI3 /M֏ CveN$#WᮄEYv 7t:egUB-?GF#8N hb FɲV3ܣANF o5mV-$m4]d e]nڞn(\9I%t*a X 7%dvЩ! 4c k7P黺n%umI"4MFMUKp!:(Z>ЧEu< EY0nZDHFTt5ה$a#'l',"UhЩ`, KxHؕgp)5]&i\t΁vڹpD3|4SH,D4& )iXĪe<(zeըҺj-L);-|VQ>#?)SrFŽi endstream endobj 1022 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 1024 0 obj << /Filter /FlateDecode /Length 397 >> stream xmRn0+rHPHiJ5`/#'9 ΃Hx*v_ޢ` G7|Osכk^eD/2X}#%>#u4ýTg ~&IB7JYn"qnjX44m,ufQ8^kN*aZ7BecQbn7&D-Jsm4T{J.U*h"pwB|{6HBHnc~Vq`Z`MgdS,iuP8V9 AFYР!`)X endstream endobj 1028 0 obj << /Filter /FlateDecode /Length 5499 >> stream xڍY{Gy鞞Iw$Y-b[Fdv  )(RH '6S***ql?._N2Tzvg~0BF!Лn;yo 3&00ڀØ< ?Ϝ^?Bp>q=D=8w?p9Mgz,2ދPg|xauY#-ռZ{ =>yC's0 \d}|n94 zW kcpicct6~ڞG qᔑʖu;`< D!dO#D[0;㓠\Xo!~AHoopGRmga|!?B ?P0P|B50P Q ³Pi_!4F{?C LoYk5($/z%D[z۠zUܓV%'09dǰ?¾=M8۶/%SUiqR͋Skp0 z͢%9hx6vsL?{ BkҔ6f+K?̶gGm&nWE$YImGj&#İʑ[!'~B`.3/49MQ7ZN@Vw,δ+HGYcĘ˪ tc')ƪveN7 o 86;8Ә{wL;s%v$w،6K6^%R?cBMK+St$}8>)'0/GfC7PS@M׍ ;x~Ct hITv*1np9!Y|Ncܣcܤ2& "m3;3y\Fa]']PNŧm*RnqenH;ְtX4Y`v ueSTML"̐~Y ʨ>e63r--rMknyyYbou:AQzBqI*SX cIJ`/={.=o^x@-KCeSxƞ=1?GϣP2 A~Um4QҡT>?p^%y&4DFW F8R >X7ܐ4x/`L%"qz$~g@=n.Ck 0!{=m>drnhD*%u87Eذr_U87^yU gƄ7> O(++_SJaO56p;h:p/}LP-P+W3C>N=e1$>+H<7OҚ}G.Yʱw)VQ,௷P\͢:,R~ I'BZ/ygnFn"|+ǸL-B(dbmǎ';o&5a蓸v1ŢG˞/uDYUˑ'D0HNcsYV#'O7A`ћo7+\L]0PpoLƒ*1I& / e2}H'g}۵Am} c`rsYO[Z/a_iv9 rZ$cv0[Ee,ld&xbrnLaG^НX{ebLi 3c)Zwa1=ѡp~SQ7չE 18(|{vH:h JmAJ&A+ra󄺏Ơsqyt*^as`3'Q;&fXY5WjJ.a} \qʩAaZ?-돶Dٲ*PNߪ߬#}'ދEc![FZO3v;6 2.ܞ}8"h&ˀǧ&1LF;lXpiG@>dؕ^D)K?0U0:{ rMh&ԃe}i1m6u@KbsϢT&D9~fxj6Iށ谲י8/SVCOBPaN.ȬiS7 ЀOLܡ÷7pcuÏJn[ $4vnєvAr)T5ےvw|J2Zk?>i:"Wiifg ]:jw ;f?u[{:kV0%ԗnsj5mę`lHj]6šb)^ )Iq%ʔyAۖ|W? @sИښAAv Z~bЁ[۶o>mcfڜ]npUMϣX XO"𕘡X"Yt%˨gs2}$ I  N Mw >$uɘn[xOm]ۏ9mxޠ`b4^GkXó,oi]V#H{skܟJHT|¶(X@lxqԂīMQSIiyQ&-_l7 `v&Y@mRZ'B\(oźB'AH'!;+MG8SE-Y`WRVt=xīɪx>4QwB\S dzsaOAh3c8SO>iYC@[o&y0>; =BP%C~1 wn%~r\Vk:;;ܒź$%=8SLOkP4]J躁m?͆,ԡ]a7M*֣FhdVT1ԁo*ۧIu^Yӥ IKJC*AvKЙ3̂Jfly5̮[^Ie=#@/0/qq{[lXdVZlȳUfkA<Anb>uҭ%,HLA/On 58.՚&?7A%@.[3 @#MZDܚMyqd 9yvie9Hykz#[/zˡQI^pJ(oyOc4`Ki%C yŐ8rqɋw̖6PC1RvӨF ,R?m<d-Pj @ [HY6j84剹 y(XE!lwj N(SoB͜p^n4kۆ( ( [R{ǷS7&P֥ 5èw+n\҅2aے#a뙖fI s9 h s+7:P۲%[Z܏ﴓP*Ӵ}累<rxoΤ[]6tAA&~DW44#8-^ z=^NwbL'uHi?q<4`^n8ÇazM_[ڵAq- D}IVY^clU`3Mzqijyxr31p\ݙ{EE753Mj-|E䠮0 _oq{+*Bi@ޅ:mܦǾjx=;9/~*9:CVҔU:_E!s\CKl4JaPj `Pנ#V- 5>(cht)یDs.j+/Ca".(nɘY&[Ab`ձ=s#bD*lfqa?*X$! ?+9/͜V!cm/2v=,'Dc3뗽%6YNE IH][FCGux jK;v?i fBuHRM0a;<\`~~Jk⹝u텉~"6etp\x.r+ᵟ\//P2aUXm1/J>4ۃ[O9^F%8C{:/lu TrO<. endstream endobj 1029 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1031 0 obj << /Filter /FlateDecode /Length 609 >> stream xmTM0+: ]lPx1&xjf2BuH>&㧷IL<{z9m;0rQ)۪o29>NhTwrh,DVT7oUvs9tnZk-0L#>f(^(4^։~I$t[˦-*NTUU%hGsuBD oD$/ J 1,N[uKBK2ԭm܍)\6Wu} PZeryyLN| C\3O*{zV岭OlN_, _v/8.udNLS=7+Fn9Phh5}DFA3DF~t"_# DN[4BA͉F8bXShA L" D ja&Ge y>1&s Q̌?㨓fB M.̌ ϵ֬GtK#? qB 2G#|jfB?2T=p/ 1 N I<{c8ᚐo}75Nz04w?q>GGd endstream endobj 1034 0 obj << /BBox [ 0 0 170.078726991 160.312341901 ] /Filter /FlateDecode /FormType 1 /Length 395 /Resources 1033 0 R /Subtype /Form /Type /XObject >> stream xڝTN1 )$q"!$ -6L>N9U' q8:P( A*nQxdfb͒Y|hyŘQi}kXBsEy'T\@%hq&g09fGu,qxxvLHxLXK!q."%KwTwtדtFd%ӚIjyvNjH楓Y1kjMw>L2[HwId Jvir^~}

Y}Ւswr PrO@r2(ǔM%.ZY_ v endstream endobj 1042 0 obj << /Filter /FlateDecode /Length 3039 >> stream x[ˎ# W"z %]Ud5nC=n.홋FtU"Eu|mn͚CTo/T$nS01y6lͲK|+XMMv:Yܖ"[:#k7KZNzڄόi[i:X> #$^&}ʅi3O$ec2{=Zb= =ɿ3 m!C;Pd'S|ZoH*"SZndւJa^.0 K]r:f+Y ]#h{q*ijoH*Le]ٽκױ*#9Z0 3zÿ~`~stIAۗӹ&R455#Tܴzswuh&ʗ5R D`D2Cx-: 1^:PH dr#ij͠8t $rJgvHdOahGpI99%wI"@wvˀL_A<|c5(W8gC䚴Kim#ǕAF8 Ƅ ̭n+cRc̒c@c@cUS}cjǘ/semV/4(ljGBsd#){MZ=b2$/.4 ! Ќ8e_:ZʉIs;.7rJQr9N5~I!S7VT $v++]EFHbww5cP &?z!zFm#|&+<X)[(=.st]v;4s>b4 Xvn EďA7R 0hFʷ0^}k\IW/5S6#$!05Ny%3h3V-VcfQBŭFȨ6ca^t~-Fumzu=I)/RxrdEz\Ix$6Qy$Y ɝ{_k F0˪"uМ*A{bcF:*Qd,Q[v iq1HJf{q4Œ!D1. ȏ$Xm\H MJJphĶdjܯp7:gw:[+v۸J&9\z bPȑ):vr!SRkӵhѼDյ2l+O%iCXR|[ a ,Ss\=V>5g4oQv"@By '9#Bu 78J/D#7Zhv4QU8uU*+iN]Q.Wb__}?}-JIFqE֖@ &. 6C*r$Kx] !œZ}!Lw5J 9_m6MJ1B}" 5dLH)<✀(_C>HFdX>Z+o|<A5Gz}8DOn<20=e!" z~%A8tp@ЁCj<p'v?dS*~QAFvHǮ n^ ?bо<Kn| m3fܚO/T=tcǻ?/*7L1 }P.Gls|:{ ӪcUM؛iڭ;1zr.>$ e`20 ?4v3% B 6rMْn$kI?s7T5ӓ~[hyi(kek櫊%.iQ?CKv/#Z24*uz:z<:CC`8CaJ endstream endobj 1044 0 obj << /BBox [ 0 0 526.394626717 444.006879719 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍK @ @sl܆̿zVluMGJ(aO^뫤`3U4jM?vp*UwEcYiwllrQ7TzlݨaHysAx&1j\"N 2a~lc,kJ endstream endobj 1046 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 468 /Subtype /Image /Type /XObject /Width 798 /Filter /FlateDecode /Length 385 >> stream x1 g (zL endstream endobj 1047 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 468 /Length 84143 /SMask 1046 0 R /Subtype /Image /Type /XObject /Width 798 >> stream x^Xə/9}>9&$DA$BY(rI(@ $9D QK,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,}z9 )XXXX_? XXXX;' + k%aaaas tp@!z(,,,#lS XXXX/*eS VXXX;#PB(}A/++(m $ 꿱/~DP/,,w_W?xc:}^|,jkkT/w'?xcСC~~~o>o~4;;K-@o%"n]W|yJJz?z'*P/]mZ2,, 8?).: #FVVVPϷ-Tbaa%& Q%rolG㨒@7U[[vxCP=8KKKRRRя~N"\^JoXXXSHK:K_’Xw.1LL *~m9rAћo ?UQ'|ݻjxCD[aa!1%7 ;ޠHc-..IJJ 򲷷?woK;wPxzԩS//T!~. KۢHw’@ {G'uuuxl*px)++!K<C-}6S ")< ---PJb .P x*s>|VW\IMM}i__ O)Ё||뭷JU`-Qʢ+΋"> kSEFF~߄'>cxw]LMn###o'x(TTTR;BpNɵ@v|@P mmmoK3 :.t͛7#""!<99;(j_ _Qp8_ &͆aVsd2p84u,,}!+b-!._ tsXXXbptuu ?? F+@?@uܣGҎGVxPx1j!U@>,:uGGB WNȁ[aaaH N? z0ԡ?!EJ=*f:%Yww7*o 3; 2/<^baa#mlQ(b80Yaam%IJJ-yݖ? T*đUhh(R ׇv۩$Ça7^x 7DC펠 dEN$J4:L;p]N3Oi:RRR%~' (e !H+j%*///t=y$ooR= 400 7 Tb#`(<{,*$Y%&&ZZZB~D+777'''+++4$Zj333ӗo|Yww= IBJH"iQ\O`C94`YPPIC^ C@ڏBKP-HĢ+!"abaa X.]TXXqqqp}_P oܿobbGTb#@(Q H"XDCX,慅"OOP^UU۲mdd$/E*VAf[E>) RWWWSSSRR>s doB2 áfR,,}% J\Tʢ"_ tyXXX 񔖖v'<_4/} 6$+455AX,))Q@/$޻w[Ԫt8Tii)ڧG`YAg]YY"%@vC ѰǏ?}ٳg\4lC#!6~ѪPB]h,|Ed2;GASEΘoA ʥ* qU@=Y/z !/a655V(gppp@u^pD8! z't8DF†h ZǨX"SIIIy Ѽ1)|U'.hkK7M uID4:1TTTjhhUWWFU!UЭaThJA7S$!J:y]]]ζ6_^^^EE}7P>^x TUUUEEÇ= %lcaa Aw*$ P@-DYBE+jOJh$ @E?mɜI>F?^guqrMD~pQBc ;t@)>Ht 9X _+2x% WB)"?(r  $+sxB+B!AGqmP%JMMG3gΐCA0T.+++H )  D :8(QPP@пA!,UӧOQЭPoũ (BEB)3rԗNLL@ꄆI rh4!6B,,Y?v$4Bu ?ЅX P BA"3FwE'{t[oݺEYf{؈mzz 6%+[Bdc(|oB"A*##Els6!d%N$Y HB)?Q ͮVSkRϟͽ$%A("%EWJQwA9P@)uA:Q@q}CgjEED_@F+jfP0YaaI"ʭ{teY1(n:@ :PIIɓ'*@P?ϡUSS  yO#*@ F"*Y;&IVhC! #h`9Eww@,͈>0 ~x666B\d~%+hӂT)..2@/&8RPOoo 6%+rD7D£ɦNॿ?Y2;;b/sA]}TF;߁R$gE uhDVg?*ԧ!Q='-- tnb16?х1XXXX/&W7g>:J('H6Z. Y_~F[[[6LLL\`uMOO[XX?arD5c8/ idϷ-(`"+1/B+ :4Zx Y&=-E,,,0B=?p [Q;@,,;*+Hr T$MȊ Kggg(.rg=??_KK Mo~eO8qeBϿ/|.Y""@BM@C):\sssŵn mゞ*\P&aaam%t뇿54ʖB "( (Yk߲H.Arppp\t4>9{mm-CToAӟ^^zr*Yȑ'`5`~ZfW@d%%%yh!evS@tz WB9A k+VMM 9AԄcccj&d!<ݽ{ ypرcgʕ+h"Ek Bv( Ua7d&=u7A㦘L&IVé/< z۷oC/\r(l $$$39x_BoEA'KJ/ΆچVw*@2r74BRRz 𣫫N i8R$YL7rN%DVh\K#?-%=!oSp k=J('Hm%aaam%DVpL7'+3?3b(.&HtPwwh3b*`0sssc:w୔~S|ߴhdM={FL*RV/^DBWgVD#''ca!%(м-P` l522BB\ц?,,6AOT aq`;s挷7]%%%7+p~7{?u9Crh`HCCchhr(4}h곍#r4`6쥥Qɓ'(6I֡;9,aaa}}}a[/}t`g2' [ tXXX[ d$Z@6;wߦ7 TN JoC Lַ _|w``';== C4;#C(ZN.#nDᨅQRR:tЏct??BE]ٛo Ѓ1 I((aaa/N>%0YG (lE>$ k[?/~#l TSRR )o8 [P111J% @ʢ)hE"EꭷނK...B .g<G}EEE+4)7` @x=\96,pwg*,, [VԄ \@l+W P*Pj )A| BF,έ[ i-{{{;;;௞z,P*8"cП$\Zeddm49%Zz'H DpWWW*I\q,oe|:U|c1gvWMyo.8PMk1"CdB@ڄRϟ?;<s@Uc~9O21wkB2_`,'"eĚjzy%PH-Y1L4/8%LaCdŚax&XHXn<>syɗ6jCdx䕺㺾v`'A 6 T'Fg^, 6*Q#Q Ax:Jiђu + >66644ۛ&лa]:Wk&VXe \gX!*<'=y} Şto1Lcqi؟vBǽxa=#K,twS7)g@"n@fw51L&؟;npS|YJ/s) E%+ec.^JVnEcp; Z|z\,QH!+b+.ik!UF<1] -ec1< j=f`T4Țo{\l'P|My;7Ȋٗlfk*Jj$Y腇?!I8,˜ 1H(3H@_=KC0YaaajAddӓ*лa'1=KmNj!g9ku-R -̩&1H`yZv:FX܃Rɫqϙd&Yf#v#$JVа~#QHQ+ Oj3YwV |N፳R~:%3y1+E\Au?eO W2e YznAz'7NZKyWϡħYM gI; E#V vLVXXXMȊ@.z7]e: 4IOɊog3NjuĜ%fWE3w 2afM3?"f5dw܆UlC{>e$& ݩoZ Z?uƷbJݵicVGzkcơu5;0t'iÓ*h+oUD3ï 6܍qVƖJ`'#ag葠_މ:]@N kG9Ym` 9|399Ywmvě^[bӽ5mqV[US5ftYm5ѾY9 ޙbU߳⦑bc FG%k8X3F7cOx f;JVPΜ(;c`ёu-Շ<7QEbMU}:g#pEZ,zqtC&bLMx6w1ߙa+~g]~Kκ}H vq tXXXX;@4|+c2T_KM]SUS9$&W,#Y.=q%޳-&ǏjhhhsY3sdEl=66ӵDGVbb+7B\P6*Cr2ʶ1i]L̛4k]JOLROIuͷq5USQ׻虳+YLM΂ b> k$h'N@>ё$лa}UŚq<(:&+,,ݖ$dE̊:z0I+cuYWϜ0ypFr:XZ=[Opgl&Gz8LޒN ivv7=o6{S YYc =u073Mn^)k~dQcpɊ5(!-fG[@qQ#,TSZzKsĶf&_Q?Cr\ KwMtd͂Jvȿ\חU=p.iȊؖf{E-}B򤄷 fk ʎp*u~pv9'H ">OW~t5GV>%d/V__2W;?Ȼ:R{ eEi%:_Kk 5770q){eϔGbVdgU@~ST,{ِrQ6F w@pVDU[vsM:ͩ Uc .ka0N(G;[k sKh;{C,vr]zfW9{Y?hxw+ !"5NBW,W:{RssXiJG.(B> Ij3SKO欖8)>ri# JGTeNǬpYM1gUDu2<=ss|_]syU"W:Xeų ]䲞P gJ< `ؤ:?uc*rНCsX=AVFO_ y_sFAG )~˜lQZ見*[f,3ZN.X'Ř_SgSTn1 - -P:be{ Ƃh)a8w]B# %\k_8ίm==EW'P;9c $ᓕkz*{cb"{$?dZbZ[[tsNm;#w&9jW? YS\bW)cuG:]Uv-[$>| M>2 "{F8ߘA DBZ˶=r)YN$fŝ-rTW0 8x1d~`Ѷ y1W$iۈ6^|;EŒG'YぬW͵7}YB_! Pr72G)eY 4^g"qd7mdQ@W'Ř#LyglRݳd՟niɗSt $&+ۄFt;#괋[fKZ'k8&zÚ԰ޢqm'ͲpkF7R>ƜȾX>MH>2 1/Z>1S2+X]8+r_q)u9i}ǬNQ{E)0XxqAl G'YY-[+ }qb2IHYRǵ k^C1Yaaa}gdJȇdw3ZS]2{xdř~eoM0%tƋW:˵*Yђwq6"uVGdYUԳ!+U:xݫyѾ،,S8;kkVD/zhMPU5l-PDD_H:`vGS &kzV0O)0YzhVd1+vJ~d8h;Gdu:213a6.U}}!\5$dO3\tomB'+bdurnl u{Yђrcw61j826nR"|_kόƑ^n7mw8;n6669yINVD0W]N^0x >76YS=} ǃGNlO(NY |̉|k m +;NȊAwBq`P]ΐU6k끻iJlQŬ^2i ᘞW*˚n((5&+,, R]:Zh_=Z>we<5=(.aXC\,NiCIb(H:٫CA.v9M䳁tdaMTg;{HܥXO{-#u !O&7%+OԔ`ma On9#~~YNɮ/rf/g:ӖW׿P2_&xs39;+]n\aѵʍƃ_N)Y)%%23i_lIДW8C@Ç>,}@F]:zIFV/wd ՔeNل lNJ30Yaaa} d3.7ߪxNIlg&c]q1ϑ큷&ף=nd5&}eX\xmOnl۬Zcׇ\N[̅d2+yΆ CŒ!@ . D߳:[e1Yaaad/ s N 9I*h߻*د1Yaaad &+ll}gLVXXX0Yacc;czm {k+LVΘ^[awdjj0?o23z\FB/[YWF*o::U<\}E̪8r@F,aiӔOaԕvRS񐼪u7iQ#ʾ+e#PbdjɊҚ^:;xqSu=_{dW92g緇Wn"te-r+3ni@yMJ5%6w'̅qr{&:2 C -NaV1?a?Mڹs{cdjjm=[X;!בXE.[-&λBV*^i/CV;==Ex&&+l1Yaaa}⬱GC3k^|lokkkV7.`EZKHV[D83V@V2&E۹Aه:ۼ~"X]VULأJ60#-`H1y .,R'Zйn~_j4JIDVڸ72"M54'jNl?+kvorI+U>zjM!n ,yDGVAIA,*q`iu}iYn(lOW<^HTܹiJ"IVKO4+׏[5 +#8;OyI5=E ck 5770kcΔن<^r셩"uŝoJvv)[e 9EUβWD9Z[[8KV~a&CnrS]]\RGaw㎇SxA˞) bVX|xhRssXِrʖhCD4Nݽf']ܲWDOCV:Fv!EjF!NjW3')Dh1_t|0gAMH+\Oas˜Y[fbΪdd%{wa[-]ձ > [ML$pw,ل%XƶZgJVΨRr̓wHY'U@V:GޓQR8f|=|t R6:~J3 OIփdLVXXX ֔t_.6&9 ͮamCm| FywFti]\/%q-.VG b WӜܳ{XvOykndW2ݜS*5qUh1Yf_o>b/Yf0;\-FI:Yj 9nS<>q)uTZͷдAm^c4lą6&1S2+X5X}űN-Rt:4"9wy␹+^rs# V󃜋 =D͘ydj >Ϭj2XavD|CN>ڶq3L9u(5(^]YN˵_*/ػdL?`U:xݫy/^xw-1+:-Y\"YA)JU'$?T׭r_8fК>fEKVܡ$uM7l-PDzp=0h0$uƀ1=PYzhVN|;1Y} ";2A5PW<2 žIph!'~沗{k[{,7&:xg~؋#c̵X;~>.|r8<\R<`).7vpɝ) qI쫸!(;n6669a!S8"(8+5r$+w8soqVdAU7Jٞ 5NY \#s"ZC2jtU6&XY֖uOF6ͳW{4gvw9u=b~jRwjn~$⒜uqOW٬F)+i'LV_'czIݻwz "dee_RɄjii)!!j`g{DWW,D8%@_K++kG؂"E 07 zF4Mhdu"'{:gگ`dE[x;,BdE<מtN[V^I^z@\œџfr vVлݸ /3CmuYE%uk빼@S*GI~WF񈂲V@5k+Yp(0vg)m qk#N)ʼ's7 /RޗQ׳وd ^LV_'c\Iuɗ~arvvVUUp8B@#Ke45;;[ZZ#///\wuJsSoU<IS3wY.7IYwoj}ެ 8+ɌdLVXXXG"Z\\wA?А_~ osrr灦"+fq)^>=̪ۛ=&H7TmXL&ҟlڰՐ]2{39#0:@_QP8$w)eU&n(Pkk@x޽{Ztt `$j9__ȗ "/G}|!/ B&+HV[k;q>{ $]P8}~/1 +1{mE/:Վr LSSSH9%j;?1d1& [>RvvS%6zzz3Ǐ@QaLL̯륥%ꞤY/!A)B2H)lA8Ȫ%>>66K0>a}1@2zIڵk䀨¬, ѿկfgg)gUll,t>Hǎs@pR`-LVد1YJB? `BOoPC} Ç79dC%D aVTU|nnnzzzlllhh66^ՋIA`a_?t{tĎ̀reGB@V"_> 'bz*PhtMMMMcccz ԦLEiB7Z] WCCGA=~>}4 U:::{9p*H#B| d*2Z_'\hll #&+ll=3&mID6a'tG:~xBBlYP߂ euu{G-G(3 +X%yyy?Ϡ! =נ [X@rz0P0&&F\G77{SJ+->kcVƑ2d KQ6IJݵ0tx'=$+ iLVKJhz{Ɓ:ٳgӟ F}799ғ'OnݺC!w}@'YA 6=zېIh*#L%AV::JkwxKg8)m倷mlgUm-bM{vVQs&kr̊O956&+%U"X% TB(EGTpzm5:: y@@Vz`ii @@ Ym.///___G?bXX!*wdQڵk( `V(`EkjjAe:+ "ԯؘ$vJSBczee垞 eKKˏ㡡! ҕ+Wܨ{5} D} BZի&&&lqA555 D-T`MMMddx⬱GC3(箱W'8;͡W+҂l\BkҰ k܅Ҕ bc{g5o;nV1Ջgvv6~WM6p/%<_v*4亾qA[$*ؗ z0ΞqQ9w52ӹfP(+}TlJ7d%XEV2 TTD) ^s@. 0ZnoouV)))AGAdU'˗/Cl'|!H-Dz7av& %K+T Rћp\;SfhxgUM1c Y(G;[k sK;BX􇯱&'V{&Wpձv@V\^w/ ~Dw~ʹed%{wa[ͣ5TYr2yZOV=t6n܉"g˷f1&+llcRP%UdJ@Er $k+Ȁ@vq$j k|??/hyy6d d VᛓDR<#N!Y.6&9 ͮag e6L64[:xf1;ka/͊9|9VdW;0;3YILV.bk|CWgBbVhn%}jjEd~Zo"`!dXh 61Ym"~sBˡ{`aavXtalYmB#k=6w*6zQp]BY5G%,m̀rBQXm &fW$`XZ}W}-1Y}*Ph24?~,pQYqWZӽK^v/rJk &fLz@32?m-Y}6[}ʕ떎%I&'?rof*>scRgEܴv{Ľg5ӀǓK|Mpԩ I%5[bxgv-S:Fg{[[[{g9"`EZKHVe:ne&Qhhnou"lagZ=;Dg6f<`e[[[X[ZȊdŝ5SQ:"+}Tl7hҐҲ a]T;(pHJw=E`P=Edt'Q<]M5vABl mtfƟ57N+U>z84'}-Qy#ZQ1YaKlLVNtd buuzu}pG)yq*+VG۟`ދO>ECObY~Mf}/eJ?grs -837njC@- 7L'CYw5,qWrZ;x< rq؁$+œq>Ul3W=Y>$o; K{41?IsvLi_qmdnDOf =͢dRcKDE} / hU1v?峁܅ȧS w1fhvU s=jn[0ʻrKC %YXeuha6SR/Ɲe_O艠NDYqg킟L l ] KNVZE;uMɺd3i`W^BYnΑۦJ L;h6*9u2BOQRk"%[hZLҝ;[䨮`|qlE4; [bc8Bc<יL&| EEEI>/ |8W 9pQS쓕x5,峏ìJ |mk>h1.CG~{Vsgg>uuAeerPْjtCE1^7]Ƅ>쓱~)dHnްd|ֆ{[ExTy1by>8?(WDX['H{]sx/ w1>_}ZQpyr>e̟ܲǬ>dvMF6j#Wn/gUdkx#28vY Ըȃ"7Tdm0\s-m=rsr!@e%l G"Yhd[L{ۀ dnKutCuRY6Arw(b: 9XSJQY6auukclym ɢ}+;{S9}FWǘ7Tq'.:Rַ*1+3&+QmBV똬>pCnB{{} +Gηʧg8vv67ﶭ7u>a~+>lGV DX\k&bb_? |Yqs< 8d՘lq>`?1IbB';Cf dy Kbamf, rNkQ0Y1ܝWF݉k0ȆgjMwə~eo-0xːSWY-Z^;#w(8cr>yCI&NOW7ߓN0|6}5M+S\̊ZǚU.gs"Ym> '¨&`–ؘDEbdE>k;o8>#0铎$*SnFjn8:޼y}'PSѾ7?l*+!sVY}88l ٰKf diwX{0Jf'bVUpO31 Vu-w! $>뼱êx#?g6ٻ%ߍw8Bmsb_yNЉH̊jGw#ʛGWRس5 b#]}2꧙l.{iu rcw618826\[힚~'+l5i>!lgɊDpgFz&a;SfX58Wq;݆ +C/AVjohʾy'+Jc>$v葧ϧ.dLXT;xihd5*UTU|@zFgٻ뮗cI~J`_G= kW msvK?c6ڻ^x15s%g]rEի斖77r&9ge]9gg"8+uYUnvNhN@yj{P\NRXv}BY(rqK*'V6V֎>]SdE{"@IW'Sܵъ$_G[GJ d7~RRPRr/4Zv2PQ7>w5)1;?䘬eq{Թ:]⬮ŗV[oV ]]PB&`vw)Y.2(5VWѵil KV= Fd>pϿc`oVdiD7ܮTM@^?dmn|g6V{Sȧ@,hg0707=(c f;JVP뎇cx4p:为dF/FY_s%9mI.w ^Ey>z>]iNv+௼Q}W"f5Hssw].<웘lGVuW_kY  zީt2Ť$1&+lJTdVнc:3f_QK@|Q?G3FGNwPhxl4/G?tEyY d,禵Wlo(Ț{>G^r*ouYL&ҟl 0"]"U诏R8$w)= 1YJBBS.`z|m 3~(/G#Yy£9ط$wį $]P8}~/t6đ1Ya9^\M'7OW 66ǘD YQd7dJT^+aGd%*LVXX0Yacc#c(Y^+&+ll}dLVdZ 66>2&+Qaz{d57 ^_fxj9 #Hi5"f/k5lf!#dNR%6OGwCJl̫&IdDk+#mml\*oxw儦a9hk:oz7awG᫦lg] SvOd%*LVXXv+S/їrƋҨKJ]$+9 5]*L#+kz2B+x0[#NhVv;Aڹkλ&: J fAu~bj9YV788(P@Gԗ@M&''[~EEۗ/_GVEEETА `aav{;770;Sfhx05> 盒cVY+ANQQv6vĒ_@im+YY{gNT%8g{МƝkHrv*]将  .up /cp3bV챻 > [OLd]f1y3tO&w騲ef2s5X$eM-Ɋ;~YlB|Ȭ}c+bΝ~`|*|r$ }!妝-;DMCɲ0Gekeor,ܩBG-e38 |J}+q5\XU"B ޅltG1*NAddidRnfhdRv IΥ-"򸳿.挂S de(o`t=|0Y|ss3l}MJJ"+?6༐azzX.55U6mCSg)~ؘx34oIfm| Fy.w4.8fcѾHXmW0rJjuܹ[n^ݘ: Ζ?!n/ n}3yA8s䶩E[liƱ-Fy-U*-Bed4zb}IըodA{x4ͧĬؽ9IMKFқB2w}qpi*"+"Sd zJ +i-"^SYהKi/sdE{T9Q'15%Vkqu9VwKtd%4dWh6B #kfdx%5.H[]S3A!o5`OZ3LV 'Ҟ;kkV)IbV7w#vMcC'!Bdt'*njG^Q" ё&1+ cS8u~)YѝAWHdZ뭣Z aQb?Y}ȴ緳OU"wǬ6?B;G]p>_Hw dϯ~+@|2ڎ~:dT􊍍O =(A.#;Xu#gk!0$F:%dO3\tomDlb{qdlRk=58ŁOV.bk|Cقp_kόƑ M|*w4%jpvfdAU7vaLQ),}@F]:!+LsC^z@NYl; ,T,s(dE6O}}}OhH43H%+Uyxx+1?v5:HPsWoZ*VK;wS;OEod'OO|m Ω)Ǐ)A #ΝSNAOt922 G.HKK۬?k{?v\hdO<:̪=&H~}ԗ\JFb3G(xXҟl=rۜ;uUCKM{~N{CR[i&wSܬ m*XLڗg_Uii)pѝ;wYR}qNNd~?}*K{뭷tuuDw5fE߱c6뷙͟7>+C9w> WwGΆ]2( C_O s8N+3C~h9S\}vRhǮ-6Ȋr\uJaFg観[V" O k@ ڧ=J+6{ [)9%4TԴtfO5'EhlHNV~={Lh׿ E;P60,, PffeӇuEW,~kwį~b"ozW )_. :OGVKOU's,`b]-qPS:|; \Oas_-nF8옭:#yZ+@V_p8mŬцYk?=s l#d{HHu-mG'~EDӐGyS}2oڧy"s21 }H2fŦ~~nN6ڰptA?2)Hy͛ED {Y\U"+?Íy"/y&\;"`*YwQ*((hd >? YY5sl:D|׸dE;ڣ.9VVSGgc?žg&{6h<[*|cG/277OII   ///#AHJJJ144txx8vĄ>-666!!!..NGGUkkʇ &+cy-r&};^x+dxX ݷ*f*Ĭh_)Nܣ܅{nj#:_KĘu8 fP#Κ x/?c(ַo|.$gB1+g1+ :~4a%II%Zj̿Jr;]=]vfdUB̰;IJ_-nF8񓮬Ֆ1 6&d,Gd-~VHݻwO7 *,,loo' x ^^60)gIt]4'9Q܄I꟥-D[zFuXC;>F}UId6pO %)n2w0YOF_Ho6Ύ/d7~ {+cGuwP~g$YYmۂ㬰=x%Ғ_XY/?LvY5G%,m>KRw-{bf!#Dyͨӑ}deߕ2ّI,:LV_YqWZӽK^/rJC 9UK_ĴsgZK"}{aXe%rrO׾'sӃcu80Yac&l {:+ "~iڶw^d K<_ V|@7ҙ17TYr2yZV;iZ-2U :٫MY4s)?=_t|0t=ah"fъZM#t 5C#l' &}eq&+LVدw@BSgSz$ǛU}3[ Go(Zh`4.8fcKqm ѺN4lcs]B#;[nd- rD{8m;_ĶȣDŽi}%␖ ƥ5liƱjH7e !*bȊ{d\gWw )_Uv-[$>| MĵS9OϜ~2|E+fkyV.ZCϱO\Jݘվ&+l{0"=XSARgTn?ٓ/7'?Dj\\6\y.ƿpD,Y&4'`[f:g[g]D_odd%ى%scNI[cABԙ>~s,=WvN0Oxivths1s1'o:!y5wq@7-Y4j?[\ 6k=ϊ9\ݍd=7To7>/ ^Y;8fjM3Y`{abve;/D% ۰ZS]2{xsF[1+&NΗ<;.߬|CaCI&NO7_=ɘ.^; ƲȊap抉itk6ZeΝʵR ɏ5u\ڬ4^i*0ݢ8u~j[\ 6k=!+jGw#PʛGW!$ŞIpx Rc >L64[:(e1;r^evOMu?qq D4ǐg~%aLiKbd_@_w8+&%+vkxdlͿS51#D1xkᑃn`-lOjtUym sܭ6@WMM޲`Yq\Vd':S_u9zOFl;](T߷wE+0Y},d#dCGdƞxʈwswo'VS]܃r&Dvs/(@I_RY? v-Z؈W۸XZ95C_!VG+|m}⋺G+g]mxm狝}"Җ_6JEJVJAIɽ7!Yr edԍEVN?䘬F-U>hp v% ++ϻ=o(@Y^dΒŬNxȝswttg!Nl5&+ll}dqOV~iuuuUU=Ak;F9B"""몬|wduŌ Wo$.l9!Q.1+51h^Al`У7 8! {o {Y\/bV shp@@|ۺߧ/N@V׮]{|:;;du՗!-!$^ O^k0Ȇ:Jhg)7!w#%N}pbfKcGl @K& LHasI2 ;d$&!$ʏ3qdqMUdE?H!턇*n˽9vyMSc:[q_[S~gާ_AFrqz~ <`K%6^Q[FCLqŒL 7%y@sawN*Uubc1Y} {Y\ ŋFFFNʾnܸd"=z VI`z;ӝmll,sgI03࠺[ro|>|zw$?[RRgj^~ZZZoG}D_T{ ~!YmoZSΪ~HoKՔ`'LVՙOVT5.{IyFԬFcR>ֱp#T5u&+l,Gd K.577oSNbccw3UhgY'+Ns]m[ [_ a~pY={LVV-.. /DDKVv@llx 馡 ['6p/%< ?u{8>Zn~_j ~9SFYmt'h/f- "_Dw {[cZDdŝf)J@VFq*R{ eEi%ì5FHSMk-͉j;0Yau8?Y}YYY^޽{WYY9 ??Vn@D@$_tyH)"hWSSpdݻ\,_2, Ev VIB X%+oMC!v7xqdkwىD>ƶSY$>;DteYKb,;~bZ후=iNDOVKFV:GޓQR8f|=|s*[f,3ZNhم[هd;]d싘է~J} MJOO?{C~ӟ?7\X /^#"ɪȪ 6zן `HrhAw:Ư` X9%5eH&YAr9;>%dѮ%qwLjZ6D/KVk+3#}]-%>4h:N9d#щFn*YS\bW)cuG ,ُ 8+O-..+2' /=uaU.^ JVⲁuq6#b6и UQvbNL"!Y]ܵ~JD.kL4YQR-w9g)\j}9.-Y4 E-ʐ >3rEfLV{=jU-^ Ng(9GG6drwJo')YIΓkG|JI'>v'E;IV0C9ӻVs"9&+&+l{BV[@xq:+5v~SSݏ|\d'6{y&1x| 5IJvOD)^$cAvqSK+ =Y"'.Yϩ9sܥսSs%Ts'kܩcz^Eël.k~g NY\ ̜k`Z%Att:%Q6~Ied6' :)YIdema 'rx2WDlO2ג q$YY %z"zbT9tH2GS*ڶ~Dyk#N)ʼ's7 Z]ϫ)+˪띲 )XdS`jjff/4itVEMȚЈIaw9|XN| *wWΣu\ܕvyofk]{tQ-sy8Lds@IE{jҔ.Iah)QѿZ>f{EVhH_Yenuc~p0YYq<='E9䀟 ͙-_l bd6WXnlYLxUk<7~Ӫ ;?DB qGN~a#&Qu{3q;\7JLc;Ǡy8njA/GGj{L;YDWFc\LV0rɽX44!ej%s-Y e^V<Sjc~d_[d5wr o|!|V:?rg0Yaoiq&&ħwwjsY. . .h[_޶㽨^>poLD(Uroybv]3Y'*mCӽ4/;j]=VAb>߳TD˄>YM.uJi-mw͞%jm᡹ALV_)c/-G_ٱu8vl%)s/q~`|\{G,JVպG~_[k &wP̊\|>>)!).L"1իcIl6-YqRydJQTurx gp9d>O, Nt6:[HJ.˞,N=pۿ5䁊WHbmYkLD-h[ܖ>~j?ƩZ5R<_yIdu6&+}gqדп;LVpk~d}'+V5~NXO!ita3OgiJIl gCl {ņgݵW\ Kz]nHur!>&Yu4tȐ? d\cic+ܥLxbxw!9ŷc"9Qb/e'Șw6݄I6lT?^${jW]7&1Ya;pv@R: 痗D[ow Dә'%vO\[y!+1{ ǬfB/ͣ$6XTyXmK _qXczƍV_p:qW*?~23[8J)i GɫeW`6YMq[$OH>'-2Fndߞ|gkYqg.^{I d5<|޾lu~Zs޿d,qя~ O~RSS333sNC;&QV^&uAee?z.!}f0CVGFQi8GY%s\kw!+1{-iw>EK^)s0ݘ=|ѝ-~s)6ȊX0OC6euSc]uow?Vn_&y<{΢%+93Q{Y܅Ƕ$ʱ>?y}Q/eهьj =fӅY} {Y\du~Et211}6P SAA=T@)zɛo ,$P*f6[dƞ׻d'zTz>@Vf$g/s|my 3SioXM'ٝN4ˍYe*T8B"+lŭ_6ӻĦkwn\lmIW/JhgFfY%8_y샜:٧]2yw^??ɞ,wfkKzV"١҆eY ,T,s7a {Y\duQTD5G}H#E[ekk@5QbV_ASNY"*]t\ʈP +ipO,"+XaOCmWo##~m#%YZx1[?klu_]hz6w.܍X.viy5Qoxq Ćlwq{c>~K1stur'\[/SM:|"$Qr7n8ePK":;_)cG8Y뗕  `6uuu>#A#!uH<{L/^=<#p]\\ldktttߓR[i <" ƙ}-LdRޭ37)\\byⲙ%&ipR + Yќb}V]|_7cG8YHKKsuu(}DV===zw>diiTx㍐ptt$ :e~__v3r쯪1Yacc#pvo!"! >LfEɪ… h[AAH 6 ECl}w%+x 66>ggɪQ+_xOP$Y 666> v8~8P@˿op"w>#ʎ L/GVl&,,lu9swģBdj\aknLV:$+988!w%!Bַp6v&<؉nggH&DVp.. G $"xfzN!]^;gv{3*|NO6%ޤF}ʇΧn}8Ռ+''l10=1X]g>f] SϾrd,y(#qpR"@ f$PHj~g+S+onlgUmJ12)N6%-DVjM]tJ4UPVYZ{h=ZwQ3'NoMz2c~DJI%S3k˛n9̱ˊ%1Yacc#pv|u}u=[X;`d&z~2Sh 64 I18sfm'|N^N\!2|THz`ëit,<4W8?fLV:LV;6{8;ky3gdyĔ5? qrx2(1h5,~ PC~G0w{kkkkK+>Y1eXZ&7C[ urfl&Gz8LV9ڹd5N4_-w2ɝ1jQ%rXiq⾆6mKK "2z<}1iX!G=+PW/OV'slll7?qaB9c2@V> HȩHr?Kw< \Ly/fŝkHrv*]将 ő$udeU?4;Q\7%;;ǔV򃜢*gٴQut "+HooOrOMSA'%ϽSKi:3*<N:n&S"d}8s%Ŭ:?sTJ 5q{คLV;HV5kJ|:Kd޶xظ+#+ly]i^k=+𷏮^rƋGVude@_U޲Khdpgm| Fy!ti]\2fdE{T=4kȦ2GO\Y%绽V1R.qHaX.Ij)k-+#uH|yRIr<˓fܤ{-^huT}XNzl薇`Ӹ/AAV&Q!m4VU9Tص/+G/8?`]]fo=_km{z`I[Lyg`B3/rCVTGlc}\cP8>Y։(F-s-m=rsra4S:p̙3#sEj=ג;)E^HAg<#ZI뚧F ƬM!'.e=Eϱ;xPꠦOe~אKTtTFW55777Jp^{"XE_W*oW` 㬐%KbOym©aYm9Z1?mğ;?=4WZr"wVܩOFɊ=gU: 1EzY}#ʰr'uozWבzEݣh@IW'hAVpCTVuTD)Z;@yj{P\N Mu icbGqKD=kQ &b_k8ERk,㚆i{mMz ,T,s:~Edbzz.VCO$--': w§^D-L(VlvBEUKTT.e|&6e[C:,qmNVNdxңر N렜Ny ZbXnWe ICjӾR*",zhxࠔmf#mw:_3Fo(/gx׾Wd;d3RA݋U颦R6I^l7<[OsFi5MlYYi)j46!XajΫ_N.~|+{#2FlL/K"wr_Niho:k>u8+)_:+ZPZU>TTuYmK1d^zm1U3PY|J^]KlB@CIZj2"1+ $P9$um)y˱5pocͣwUnjCO5i6[<`Yܑ,'#=;1E[>a${1sb4nA"b /X~yo5rxO>%dm|l(J0WS-{׾Wwd%:+;MVUH- UĹTg-PKUZA4m1M.֛Ǭ%':.[aҟilqwuAڊJ2zg wcW$;R '|KXSmYzE<}joPOYzZ E ڪ9!ÆEnyRII{H}y3K[dSey [.ґ2 3P4:raUcB^<(sVn Qmt6ӕk#DImm61W1,[?CoG]S6 Hp_[" t4t]@!hSeuC#wI=gex#*Q>w-M( }dLBngOBPoo/p u'NPO*##HEXnnnԒoo/MVܸ7G{[[G;U#˛L _j"15uEbVgD cVM5$B,䍳! T<,݉\c**匃Ie/cZ9u*岁 "i^9K$] VmqxOݫ]&X(f_˛TZI! cE@\ocu8+k+d=00dlbbӡCbccKJJTUUQ ү뜜^T/!JEED__ɓ5bc 1R6qVȪo+B]EYR`]!ZZFR-5*kاVTǦ$e=%+|W-)Y(JY-rBIIVA򙴥Y(*tQVZQVDw+:hi*;|Чx_ƽwnȞF mJU>|q'3"C6Uથtd`weAmCv<w8-wlU\ /8+ufZ@pku!Zۑ"!w'Vtp oNV/OVzzzh6 ԒP78L]t >c裏~@O P% bjj*D #q䖷 ll-jiƵ 0Y<ꆾ{cR﫞qH+}i))H{DAv8>$sŴFч䦬:3I2T=(uP_Iȉ\c,Ti@c焜G^H][P.ɗy?@e %sҸ?YWd~>PR%t>yd=0uJ( ԘmͿx>^|pLwE 5UdC"*`vC6!Ww{'+H#Rɪl"996 xih*lEdIȐ^fxxY[l6`,///..B?x@'-{K] Y d dUW*|4)ۥ[1{EXGv5~Jfe_jttd`ӧ222l~;S s?oE?Oo _v7DHoF#""92== +\ g ~ z|Yݺ ~9vUzTQ:vse_z۞]0߰ ‹]HAC /sz\;>1G $9YAwށ6YƬf%/ g?ׇm@14?1N:E=?)`;w;@ ^LV{oIjjjb||tɪٳJ +85͈vu0vur7쯛chooAd555 XBBVTT8dБ۷ccc OoGTSS&Q/dVԌ![ZZ0Yac%U$>DV͍UU@V/{,!jppPYADhW(%4RVVŲ?d*##B%@Mh$ӧO~_SP B[666^]]]Bdell {]hknnճ[nPll=ȪjllL6'+8СCE<|Y%&&}N7a}ǡ9YIwCc HGII)==6?u/௔nHn -vVV" Idxq֍efxj9 #HiJO!#dN PeրָنU~:Rʾ+e4Le-9Y ɪ*266Y\ D444d9` 6- YAvľHÁLMMM! &pĂfq  Az71+bbblmmaW˓w5;tJ4h vIe Y5% 0Yq859[Bߞe*0Ya7'yxd dUSS {,III8IV Շ~ YJQY#&&&P0 ZMI Bm l`||;666,ù}6Zfxxxbbbff/$$n*YAb$+kjj( s/B=<T]]Mn `%B>@N8-|iiiǏmhqwf2*m^KxnR4dznocianfnΖ&M6ݏqKk2%(qddŝ5SQ:"+}Tl7Ԇ9qD!4亾qhI>R{ eEi%@Q1Yadފz:duu5Qbcccu84Bd-ɪFc`$+؆BG/y&b)/ZZBd~3*YEGGo!}'7D` ii~ "r|,77%7 MtLk[Ao w!%gv.瓕w@pVDU[v$+tusd5l'fŬS7$+=3 ;j52ָNG-3{ w')adEYBYLMLa B;hq` uvd DBɓ' ,BH2B J2 \\\ 4QVj"(\tGrO~=|ǡyfAXo(Y  cBPKx |%sssht)Hh>+-##vJP?> lqq1Y$@|Ϳ%+t/6w<3q`$qVuq6#dRcP8PJV (][FEߌ^Ds̔ YRǵ k^C' {,JVKR'^@vv676nSdddAVuiB7!+ZQwH#0_ :@5΋%'`d _֘Y1ܝWnd^xouX#A6vTS}Ayw8cr(F5&+]d%x`?eUc||;cq +ꃁ/FVEU@VՎLGcL\ڙlpMcHs|_kόƑ^n7mV7#Vs8%fN y ᆂ>d Fd%㣣CPB9!!^_hޮ!Aff& D Cvu#>V֎>]h@VֶvvO{K%6^Q[FCLq6'+ 7{&vOVQP>W@V*RR JJeLqd/WSVU;eR0@.XB {VIIbB۶<5666v- PL _d?VCVeLVػMȊv/!H̽ a/+gqNvv6S((: HCH*jU1CJ""TS֓};gFu # . dhBP(luv޽{+j*^{oLKV" A4F MB:VB+j*S~ͅ u&d%`؊xH0##-5vJJrRRbBB|\\ltttTT[aaaAAA`?}>دoS~ )[~|;T-??Q;.)1|륥eee<=/,HUVV>㩪o```xx ~IGQJh:`|U uY&!l599N RથO"OB V­n%E;)80qaa!*DS[$- KHA_hCjnnnmm*2(B@LV̛'C('WD`{{{kK ^!B neUTm 0'د3i ?`bP!B4EXX qS[Bq*!BUCCC:xUL' B+r0Yac"+a+~NWc+ܡH5 ] )B=%N @(m 8X-9hB2*j{n.G!A@ t1(N=;@=*V1  Xadg&7 [9AQ :;onpcߠKPjޣuxx8S! C&nP?baTGPx  RA1 UA:#6*2`dݥvX 3 htWg#o2wy|prqciWmZ"j` >< &+_A U Eȣ," ?2܋ za.(Σudd$dySu$ zs$oXXp "i T(N e'.U(H>VCV7ޛ/8'k FD<n 396VTԽ@ٟ=z݃Q~*ԫxVtNN64||x$nzbxPVba=5w<5e6V嬦$甦M b.LNluBY%Z}ʚDͳv/nzQV0kE-ߪ$2-S ^]d; "4#`lUD;r]ܹŇzM4y%5{ϟ=8זrE[*F3rBL?Rfҿ xE|!9%YU-5gM/Y[;{zߊN[?Ɔ6F4֓W̝dtS_}M-e<('z:qFTȞyE O3۩}r:|SJ$-+Cl*J D7nP|@͊XZsNl8>w$oJ|{ָcTTΜ8M %Eob|9tgϝ$|S7b~;1B!OQzj\ۙcovHpWWgW{EXaYbH! "i-cTkJ6n$vh;cdwbڊohmåǏ%n"<+u*|z;COhY9%e'ϔ8>6P3+Xo'&nf`jBfwF6FeX$YA,'V :T>F7x5üY]6 kmGq~}wY˃bkbV+rER m&Ȋ˘? ʖwm.lb8}!(6qx]>s!3# eT4 V9iΚ-p!%fsgY:+sӅX%-I{Љ.j3Ud%dwG=i}%y=ɝkxCN2;97цJp%3!AG Bx+cc᜺y2Zz&AE=@_])TlsPCMog ƺ:.x}U'etOR#s445޶3Tx9B= &םΝ; ߣ$l+hrBbj#+ P)@P P=LcH XuWE; L7;f=c Dqhpr3;uH璅l8)mp 6m>I39 ?׌C&1^E5T.}K%,,l7Ad,D0.ayȊ8ӳVY*FxiKM >1g+tGn{΋opY6ޭyUguU*]oa1ƞyTY< LjFG7eX:k[Q) +=gZC˾`@'fx IL#'Lq5%YiMP8`. ݹ.k?8y`rn:0IlFcm,dzo_<Q?M2[ڕۣ#Ɋ5Z﫜86 #ݺ mY{L s}\E5h=wzz@eRPʳW)͍OCOx7uQڻַoF*BLSBYRp'`'J!*2N BU0YIJV"'].݄3p|L8KvmݔfbDl?nhfR}SV"V٫;Bd1$ypfecVK62zWmpj>,s] yP[wt|C"chB[VMeNܾW>x@qi6>Xm8-'cpLc2җSzx; :?OC Qx9VfTҞtImM BNIH8g\΅*Z3 QS;#E+S(h T0(VaXcy6 GL].r+gԌyySN G"lqnc)s.{NideV; }Bg%taOmT2 ky܏adoq򴱺FR] Yj7&W,g243YpLҭܼTSjY 1u-m6W#YfǮ4=ɸ׶o^YU {T8U8 \R^YEB.f_1$+t]rĝWGI|?rT u:㓍ۉ36gOi]`p6g8ʥĞ) ax&>x,ffjurʙ8>%Dғ9ȊВdw;&*&zNV;s]ƚ|d-NQбwJȹ}oég$!)dZsHFA/j#b'#ǜʪ*҅A&W^i_xyE1#عUa-{R.DV>RVۜRY1_4>)󲺚ݞUDV k.c] deHq5>S*> OM9y\Iݖ;:-A{8'O6<$C)9aqH=$Ed47Ίܙyy'Y;z]F뢯U0|l'>:>OMUߪ(TR54>)㧌u5o..S]D!?HyYBL[Sc65gz48C$ϹR4AlOuƟ1 orP>/;̷{GT5)%'f&jsC_(=f3>R`e|1:wbf6S:glr|jfwۤINsbowޥbxTdF戅Ax T$Sh Vd֟YRoz)ix=' N~(;cpX:{f0y#ة"*o\ϸf̀t^iľГB :YqgO2F]pj{@)}mPKXb4:A/Ϯ6~}r$!BI &cllc l`䜃LܣG=yfUIBd/XKRU4kΪZ=L^D1K=,D'ogkۇsUXD'v0ꦌhX B񦂙" f8Z3b[K'z)KjV%c6{-b\|Mۇw_x}wrt`EУx'UeNȯNV:x0Yh+>7Pt(82n=2U/ñ8o'ogF:f'>g./|gXŖ>Ϻ—eMopZ iV?Mm.K})Vڄ*fG_͕R_f ~,~QүTԲ&EV~̠G5ٟiqU9C;\KN`#3c[]bOyF:c>X,x6+)ʧxqp<ܳ| 3 V2~ppX;:؛TȶupNk>_guvq`CTv.Zc^4pZV^pӳؠefzn\+uuuN@-۔WkD͸j9/;iT)M եNUH?Ԍ-ZH. :YBY/)t%f.*Bslhk+5^ʝPo9t 7P\~kկt]nP!̬ 3`qo|xZvAO"KKwf m 4-3D^QA<[pCH}0^0{=y"\ 3Ohےo$TSlWZX8~\cayMI5uz= g_5wv|TUX9Sh6{\s\wF;` N6;]bĸ`%X4NHSW:1?۫5,tA5zF?̝Y7S}eš1]zSю!/7D~vb>ܬRD͊<[8aPZlJy+URZ?eӴz|49ဿ3ԅ?DX4^Re]ڗPߴ#c]<_5g>>>i~17?:pCt$}j:z|gs\^s>utt8mY^ݴsfy՘YɻN@U"T]6G(I5GڔR:V/ Q{)ʜ5+3JMjV?;ࡓ WIuL)fm$⎅91~''5z5+~C16`(aB1f K2MfidimI\^)yv4xo;elԾ#?ko ?UYQSe_YV5> Yl+7dmmjT6Aڎd׆bF\Jaķ5Y=h\ՍA/4ƻZ6(Oɬ#HדZL|) T}Ig ژCfHL`qf<~s///eDmxwk_)/43s+ע1bYe3kۼ.o|y؟N5݀b؅l {LJNVK:3ywUnp%Y~m)#mkϴupӭhv64 k37wpBWH~@ӕp΋ڕϳly(r=r<xY^=ud㉻ff-kcl1uK˝c}hܱB}vVnYk7yȠ<|ed7ӼY;&N_џt3ƥcųe[JCC{w|@΋ҝ4T)M)J"f$ -\½ٱ-uerR :xy>UsG29wFWߥdޫE%ls"Y-NCgk,. ۮc*6nt=6+cl%uj?Ǿwz'-1W]h#|׵Gl1!tQcwQFnOTaHnU+%Қ`敷 eK*xUckӞh5+l8nIU`ywCCkhd7~^EfSЛdfI(BL*+[y״v1.Zd$immF%s s֖iL*ʉ SbdpU>ظO`~G+(fCOG@XKkYmH}m6l{zC]/qm"d"'$νԲ+{\ҕ7n?, sg؎S5d3Ma TzT.!a%H FV [yyyqP ri̡㥺ATY]}JVg I(q#+p ؤ dvB Z١ ;6l*>-EZZ8116{d1CsW__?ME$6pudj|kqwId 1-YxHͮ؂^T&r>6]2jCLt92 Yħ?B˩*HhwPL## }ki`hW}q雄0?oa9 Bs˜&ܳ{Ϫ^?̿#v/aܬ(ē =xP;-$]{AEi$ ?!Z~t$dXh*:*]$|M2MBܭocMtt0z!?D=ޗ}}۳8ߚdݵO㬬EJAҬd9lwj{epy"L)AW{v)n(@*WhVsoht{ۇUTfu.B1!Ie<dV&wo*jf&!&δE+':OPvBX*]᭖z$.z/oc(Nmd cuTy 5D[31Iz7|q,~t#DC;kϔOT>.(k.9ʜh&,ms0ob|K(ܞh73kZ؊&F!-|ja~C"-T>X20?ۙH)0/XXt92"_誱I4=Z~tϩa܁!=L{muO3h$e,nP1x3)EdDլgLw< j -n]&!;T(m?j-`zY?پo/~^%]%ƿGlnLw'z+wL!(1^1D8qƃw45XLܬm,e{uA>%R=T**62ycLzZ_Q;͊+0+DOr5+r1;@{dxB87PŬ^xo%%^ӬXy[sgB? wZyxفio;4?Ԣv9̈꺱#tb݌ڮ_{]*^eq릑k#r:7GKBV5Sg']: v[cp2346sd1u/c-Qι_K[8'wGQ)C6=ӊQmPnD}Q3܇[0|.96V'öl_H^_8fu]J|d$[2p&r+ĭ |eUVͬqơuY2=YGI2-d#Y]>F;]<+ZTm3 خY=t؟owGߝsG ܬ.Y3sƛ)/siwF3Z4!@Z nH6}[Bq}f\!ʲ'jTڀ1\>t'; Vzm@ $ rV6deɁ"{(FVf7_ǎibbH /:zyij$G9X_;%OBX1`zĕ o402z\顕K2ag%Řo :fKb<6j7C?v>Eg;} ^BjCo7>U!fjV'v7NjVhZ0VfKVCBr3ّZ3?lແN>zv{'˼KeW̡`#&Ķ;Zyr fzO"f%_GbkoTy/ sӿ&$b q8%oVE ˃Jd;C |,MU=P}%ԽfU`VO3+DǙWݜ޶v?fVcR-1j9;-#WLYj_Kvt/bߤGT0|p ZkVR1tx`58nK}+L{d{.5+w1}-r(zSuYI9^ڥQWV/3ox/ϋyz' DGd1хwҗliB_y:owYy?Pm쬎-RdW)/KF8\+!?ffVvNt zAh4eIVTloܱv Ty=Gx6%['MYODŽH##+* om%7# MK$8T>K.A=7+CNxt'8_չˬrnt1b:2wawj zV"[}sB)IveEEۻ$_xJܟrqpKzWˌiܟIhdsey&])q?5+luzv^z ȧBy!yOL\uWǹGh|ǜ"+PP_ݑm's~rΚUw2蟼݊+J8:]HI_VbaV&YŋhHK`ꅇ/wlXbm4͝R^_@`w$><</!}WJqVul ہNk>6.T>= G{ ;ڟnAD(.oc?*f]ՕLy7.9\pc[{yD.FXw.@$Ҽj@u }'׳+=zbS5۪G [qI7{q/iFaQ_̻/ vnx{ze+w^)?mVJ/r̵Q^9T}KkV%)NWz?-kX>k2=jqПiM8wHTD]UUZ7~OƯ`SO}_6c/Ю4+Ae o {_VnVBmn2d"'K ZGV:0nL*wf{9{G=)iMeh0f``9y(Jv8&lAyV)\\Y- /o=3tݝ⌟f,uȴd\e=N,45˓ť^e~C16|܋¬zK&ᏹ~f&t։oto!/njwKu[g=l<]3pSU7nkچ&jK{k@hB'DIJ110C˧GO h"0ɏba`dʝ$',o+G m}Ht5i,ч3F\doem'Q-E5̒ku"^Oyȓ1WR9d׆bfgOSQQ|dc|ъ G2mh#4˶KL'i֧}e QEcf]8VccpzUR+c#qholv˚ӎ~6-#Y}{" Y)H8Un}H&tȬ5f%9>^K3:Oٖ^-+j8YA =WhV%BE&$"@y)Ssd>U.4N,䟨%̪z9|(_&;qޯK/{pi9*I*l&"$9vfVfy{\z +XuxSOyONfuȗjJW ,(U3ܽ,_k5f^:Z;2WU17u;EjȤbH  bڳ:󗚕:q29ߝ 85 f#jV_: UtTK#zɵRP;C^8xxm8#͈Y?W\boIC"ǿ`V*J6A7S^fyҬYA z0+kFYA z0+kFYA z0+kFYA z0_x8S#D\@@r{o[^_15B*U(#YA z?ϬĽIf~o7\S[\ܹ~;AkhhΩ~c"ngy념T&6­+R{qA+:c@~! `o~+\mL]R0b8cHoYfk|&dojt%E枻< dl"Яj]oY#LNNQpI%LJ+bTU[/Y pKowKs۟ùf/}[yݰ&}Oۮfy<7GpjdUtFc7_U(G}m=6*1w}\jVWnFwL#o$mbEZpt绌ϫhQAIo]H3-9o!NRt#?. if%*t1K=sW NƲ tMxòݬ$+~gn.OH_l0>oy[mRqccTK#蹣$;ƈ/'Q/ 66xi]i5vy -~)ڡ`[J$8&vI$wq >Tel6|̕ĭ̉Jst@N _SZ¾t~Z`8 K˭:Fµ-pU5l^E;u44+Tu|2 AfJn妇%G>DHGzʍKәVowuw}ܐNwrDِYyNUJO .6+^w".4fFGnM4zGլ.nhjsn{͑@8!Fź#8ķxm/ Yif]ӬdB ȟ-nLak3+r]{AEi$ ?98ӢV`z"~[ZZ^\ZhJ镵.Y.CS9NJ4p#DrYa\w7ŴQl/Gg/o=#Yց+14'jFǟ`qMdO8:<2<< {v Q3+wgAJ]A~`m݃ӷ6-sK|`:f u/5+o $dUٖݲYARYiʜw.Y:9QgwHQMw,?EI%seH oegu@=5XB@5B<[{m):h4cSLrCXaV0Y}6GD5ŎҒ$ oKѴӮ2+VWR0t$Jw:'Uo }]̈Sx49ݬWl~!9EjΊ}?9ɏኛUk\^N~>N#Ym =ϙZY}d]3Dj+j.Hvjg(V>0?!R*,_pҢY oߎKF2> 3wY}`9%leP/4+Qg#/2+p]l;^0?lvBX*]i; ogG bʷJJ42֜Mؙޠw){T }t.f%[97o{!s y.AH5Q!AusD{nxG+'̪1QYvZc,$]~e7+|Wj]cP$A_*-wDZ-ms867%)$^/)jqê.ԗ=_AdJ f,=ϛ؆xKt#*'@sƽG*Oګ_6wvt -ˤ'}D;#V/ ]hVw#ڠ L;:f.ؓF1lSlp[%zȾWUQ7+'qs|Y >P8Bs\Y`5+'F6'8kVd# fI~¬Tm@l}IpTc-PbVO?aܗԠBܘAv޳3L呈wK0Q|Mfĵ f{y%} JīptB+Yy3B|gJma8Ntě̦1dޕp{LKN/25+b-d]VOThYRTJgZ#5+\?.!.q=K<]ᕖ^8Iv )]4[iY3Y|x2S7F,^^}KT#cK^c{GL0b?LhUY]ȚioQds92%WFTt(*O^rud3sIMU̪o)gk5WE͚D.V4U9aV"X7g%LumC{JoύʮL?6eyn4+stl|Lo#2wz95+:O^Y Y4zdoSsvb"^C_:7% qm wjsȳW+Va^6nV-TE;-<|"m4{c,'J7qVd fI~ڬrf%q|ڗ|Iw/QP1+/~ ;٘ϣm #7.8yBMqYN<\ Rql+3%==|Yp`=ʐ#欄s7Up4]6vʇ_R"Is5;#ջںSlt'Q1+w (p|LŶlaՕw(av{`Vh sJG0YaBW*ӎzU$8"N/pc5~fEGN_sF()T_ϧSOc#x4ZL3#EHhI}}e_({CŜ9]B^<)J+;σ^J8oF&RYfEwS*@%pHŊ Qw|:^,f?(;V bVR'IV* e3LS:aS0QԲsx٘;M69 ע jYE߁BGׯKr;y_Fël =1szO^xz,$&YЭ7P#,t%0ޫ")=; bBܬcsc oKv8RSѿ<^^vxY#jf%ye?lV|#vZ:2tAfEؔh7>yMC(\sm- Xd`&]aSٚuƬu/ǟ0+h]x"F8Ңss~6}>w5wmhl1 dQR r(@hg@ O«ITJ>[W>=$5qTXGb7؛Ip:GWMUq=9̐iO{:^\‰d{~?7^vA3Ckq<mfŎIpr{X=_% լ Ovj#NqDGŬm7jJqV[ܗ}te7)GY.\9ޕ2&|/gf%;Z\Y޿WnD0ۍ~Z{qX);^0#֭f%" mqAiDg9;=3;S<|g@*uY g7֖=~K4# п'=lKvQa7ȈoAUͪ r뢪^>EϢݭ}iDD~ }@Io"ZgJL^cZpR夶z>%h0$1]UiV HF6N u+?-a;IٽCc=o"5+le`NJ2x~ϚH'Yܾeb@iI1]jVrͭ`Fͬ:mi{%Qh5+gO~ά4rLVF[1w] Qۓll~@4+~_Qam6U\#?C\۟æFFQG.`{9: zi^oV'^u&kjUz].Yfߩ70,j]8&NjY){.Y*#44JefX tu~re,Ԭ$)NWz?-kX~@~MW~y1~UO#9l*2 T<3#2~_Oɂ@. 7vMO-mw#,'JFh&جd%w;( Gh_wDcCޗ噉ə]eš6"akVߒ-bƼiJBwTgg5͖T4;q>Eo|(i_Ū׳( dY=<ÿꚪS*mHnv:zpT6lڛD*ݪmW~!iDg 4cPןnA*IE+EdzVN>tzVȬW*b3s( k =֬#@? gb[Drb$R7*'䠉$?+U滐߼afC3l.nlo`'c!S7 FJ;R`d3r{dfyhCi1K +S KK_qh׬d3뤜Y)XdVL: n.l/SɃrA,[-G #lyܕ`z]u K@x265J* X2WkC1#.DAu4s ҭ`c+%n9H^n9ﲝï's'dGoٰ25dm@CwJC7al&L?^8~5.mP@—mUZ9guKFr &N|_7ѻ`>MKٺ̣do7 *բX Gf%S^ʕլ~?w⟈TzqC@97a{y-0'JAG7`@ּJ`CvwmHprme~vjtSkS]Ѱ^nz󲶋uՏ瓊?JF_ǽUo*ex3҆/Iq;Nԇoh(Y-N2lwq . Bs4IvZK֚Xk4wW{N 9(߿[W}-!-n@½ٱ-uerR :xy>UsG yuKrӒLZDљyN6]<[x:`V jGWE%N`dE;D7+olߥeKޥ4Ι$qȣnD̡㥺ATYWѢAAo%@$B%M[l`ϝSި8SllLaߩui/&jwcGRbMk*nE7Yr&o&Iy1HJXTصz}ԽiǸY-q3w!U2țfZYpoȝ<9?KWK=KXoVeRAw1jfCvp0 '%gWmf%>XZZ^\Z* V%d87oCAyhK[L2 I_sʞи&;gsܛߓI3m oxʽ)zg~X`s;!;){#Ӳz(& ;o{Nnl9I#$6#qAKgkO[GO'#IIh&&UMH2?Yn4|e͍n`aF1SS|iN_ |MY5}Uo=.Xns^jYcוyG{˥SnYX)}j/Ƞ\=nmC~HvPۍ~یlȬ-V܀in*.Tzxi;%_eWLb*Ϣ[nF'F1mLN;_y`V?Kf%6XW̠w+lsf)Ww)߾ o/=lWROn9#wĬDVnhjl vlhmǓ CZЋd1_ܸM9{R~>)gsXAՋow~ )~L}%oA(JXYR_f~7z̼ tJ>,r̪/NV3\_]e;\_N|+ao+`*_TK⾄y>K\4t/%n]0q,vuEDs?W~SB[xaD,=2CeǐLZHF0^\rӽȻ[1D;;;c\/E|Z#)'I쓺y7VO0YbD#E)" c(!f^%Z:m/Cj**]?%qJ?c>~ؔz.gkr\"YLߘh'g^~i¡,!R\kR4*ڛNތ[*!T>=.e½-^gmz7|Z-]~GNo r}9^_ڒޖμ{*nr[)pP#x۩ bN*HmzoZUԣ*fs"l|^<FC<#_fx{t#;ue]X  ol~ZC_td@TKk2k{k{zRQqHqbNךhTLh4; [(W[Clk7IlnPb[߰ #I0zU(Y7YTH<3>M%5+]T2d5wg[: ;z}?-fQwXTT5W3-M5 H 1|t.T]`{ƽ3YA z3+/Ywlo [P_TMZEat7 'mQ.+ lfD CJKWIWo/݉@Jw@:ފ<[Q SKJv01RR0)jKw{9&woMBץ'6y }LLݬh̤K9yutڂ T\IehkE+0nQ`ч\muω}ĴS}_MvC\l.]aV!!CB Qg',m¬Nҙ^׬L͘'7'3cm5+^Ng,,"5J=%˯=n8[;TZ݊:x3)E@&+x#!x@9=r,~b 0vF! ,JB!:aS 3i! b2q?Zޗdp(tĒ-caٽǯB"j߾904mOP3HTzw~f5~(40hޥP!r^L֬{,i]}k<&}njrjkYt$-o^1O}Z=եufes4wkɁR2oV#Zv0fH%KS)v3SΎnhy5+@$?aV67{;GBHhH6?+G^`1xGtskVB7fC* O{I~/f0+VA]ciNK4=uW7E<(۫7q$x2PΦgY{U_4[iY3Y|x2NJ:?S\gneH52~g,ݿlC8*!jT%QL6H!ޚ:84219=7?[eݰqpx"k={±<'*8LͬH VQ O\ :YLhonbv"$jVhSl5+7H9ETaekwtx5$(@Ai>ӛbdf~FG!VhmAޖã@ÝCt\ߩ u]We61WYKM9pQaګy$?:vC(x #884\ (/=3 "pN"juEm$#:w o9{©YI#o{//>%Ƨ)FƖ,Y2C~}/|=gbFBΥSܬ2ʸa.n,δ[F4=ߢ={'[grfu{gZ-|`g,ڙ8+Dv<2W@Uׅ']>%M˙)7l =ORTkV/ɖUq6g[?r"T¬=2^>p~]p܉,璆<;X减QgU4s("5;g|@s޴lp- U 'jVҭ*_V(r?9h M:"mլtg%~jo)”f%]|Շ DƜ]{cohy}qoj8~@ʙ>k:]~ӏ +ͩ|bŬ iL2v ѝLUkٗhoH,OL8>Ѽd2יޞغ.5[@٤* En/gUV_³cFamFԬ9e#d7Wۿ߼iL ?ڄ,.Mtj:(6o;T nQ\XY=4JKZ /T͵3mҞ?[-wxFlC:aVٮ^L4+Еʴy^ E{ع#;@3X$!E3 W@\FC#7ϕZ ۤ~\=U֬dJˈW`źdsa拊Y1›Hi_d5xBL;(jVt}k#kVIї10s׫'3av wiV[Ձc3êVfX 5>ĞSRm 13|gȎF ~3#Qop}jxZܱn~UӬ<ӟr6 vV[XeLފէFe 3uDhV\W]zu1|ۆƖbYISAr0+|QJW˸ Ekk4aD:!TK dtSLs~ۂrFC%]F[I<ƩYaNj-鑅bT RCR:]7P>TXfo ;\ϋv>Z=ql}ٽ|D땞6}2#]c|zΝ򰭥LܟJ}xQJ!G %;. ye*)H70:*J<_Dw~eN&+rG19®XVbXp}nfaaSYn_x=hW<~Xk)/bߤGT/:J}Of%m uB_XSJz)jOr^wȜln9']d ̪|mwif/s}^ Tmv m o4oUt:֙<[ͰEcg2Ι#W`VYA z0+]YI̬qbJzЏ7?V,B̋{Ʒ}q81ݸxz(-9zJ^3ݟ4NhL'v]ӈf1a`56<+8/7+lí[eF1^Okڶ%,EЭKgi :yTΒ xy4SANѦ>mړoKjVH}|}ж!٩Acf{1Sw &,F5@l]Uqw)o *p5R:NJ!ZT׻i'󟕿y۱$./ |||"T-A`q?[.Y/ vnx{ 2r1]YeM7pf5m@Obڛ׬ཁl{ˢͨB|b+x%~*fY0l.OKtk޷TRR^l\l fIfu?m}o8.6- h=TjVe>&>5#}qs/=9y`Ac?jrW4±"S)2 z>rfpyұ4 }*o0XϻsѡLk]s折GWiwƹf6GZYZDIV Mo]Ay~O}DQ&j25dmհ* e؛Z+B504c\/ʭ>Ji`rZ1^WAN"c `FooX6^HT0Ža8yꦨ#Ya(otS?oK6bARܸ{&-ҡ7Pv4XUهvǪSݬ()MtlU|\9-|R~x^}~?nܾeC9jhq*{PBjV#Y G|x'xl Jfs6# x'/SuE 3YrӝB^H-u-9g;+J5z=M&Q, ,\hG$T}s- MLɓ3٥3U^^.~ h]cIf61~S@x@KzDԛdu1L]U;Bj0_7?051ڷ%{++Gta[;/:}O+ZZk{Gcd崦nnOʥ%X749IC4Kޠ "?@=},α4.l>ܩpJ}NƮYPrVP3RdP!o~S ؜Q+z`2Y!Nyd>_px" '3 h;N>xGmO~aNfU}Ǫ'dMx|hzsbV\ݓMZzg:>vɏ$s6ܬTB^ᗂTAt >[STg:g85'.wP v]R#`Gm.utm?&5k>fVլ~Z`0+DOrfuyYȰ/T,ÜZu_0+Dfp@<`V0+Dfp@<`V0+Dfp@<`V0+Dfp@<`V0+Dfp@<`V0+Dfp@|jVһ$y>%N8Qiwzfy ]kyZ;'Rmկ))l UٚթYgb+ڞ.uEuqtu򣢷܄5gf 9f%.J ToB| Wq ddR;{,bobhqVқqVPm Nx_Sm(WO.;.Oc2xga`b]&'*e' R3Wڟf Yf;&>ٓ* 3?My4&d2;>&*AbET„]eYG ލnߏ EiIQyj,3ÉMznxS|8Z8b,dD t0+`VO3r՟0+DfEf YYp-@߷1&A/.} Foوbj}b*SY涱f/'X~OZa??{5u`a.O'[ R =b3ǘas&1gԙlmnglotlt`hldAg]ķl9ny:b"27|+VT\ uF>Y.fVj9k;;oA-LwDzh16uz3)yuC7 KAs5F~~#o7TwKJt;C^[[U mx&+juѭ1ݛ^߈\`V_{\ ]&/Y7UjK?n޺Z62+t7s}y*ߺXDJ1!B ~[}* 0ž_TdsWyO8:!2585;[{}M-jx-zǟ;6mSaM{0Y}[]|kefPU\`VטROu[Կv6m_ =EqwyMmf<[8sf{fFůfOzf֗6]8};SFzu`xa},T>d;딏Oj2$ztH?Z1ήfCwKÿ߸oSQI]9fnbtˊZs0_Rkxܡk򦇖M4+[ԞkpYA _eV96Uÿڬ+B Uo^UV&σ3co<أ:ea;=5Hn)k"r4//=oX޴ q2p}u\V ]MGk#,,꧔Y4au؅Jԥf0Rs9ajvee):Uu#/4[Ƿsd9f6\N1i^^Hs69׬F*"u/Ow;,1vd2-㨪IՍ6^ñw+ꕿYd[ R ɯ1D[KW+P0UxSf7>dˆaj~Af"tf2ub~1Z1طbrukq[7ߋ+;~ܱ fkK7 S-({~άkMݱdx<5oTVF |^®.-ݬal&ȲSgVvػB; wEVHsJm_Q<0W>\)`V*ͪ偪YUG9gV3o,nqJk,aV_ \~~xM-Wgjcw㷛uƭߌ=_J0Se: ^qf#bԬY1&6Cݬ֬n8g}Y;M#c[;+;s K/bBیtmU3XG^O=ȆF`m3q \)`V j#~3ym߈wiLͪ<&~f>5/nfth!j_<^ `knnd-;/fkۿNkh6mcƌ\n29W`V+3V-jJ3WYM-f0YCgbz; 4. ֜w3Ҝ m3ZR #AVAj8+-[ R \U@iLO.=wP7قZY-VQ͌C,͌)*>ڍ;[,dy5alsgO{@YULYx7kzk8ֆ4 ҪDff7m/0?6-<:2$ 7^{1C\Wm6 }>S$IlNjP;jFR5h=Yh[M¬?M/-,]+]dugχ|?մ|~qVe6Vx5җ?$0,KQ]qacnU82.:x JUfOЬx>uޙz)N_B,ug:ZV*Oh:t= f? oؚ/G @_>ӌ8{+wno1;yQu;TjXnMu2kfHMl=*Uߛ)JMo7^Ou΃ZXjtyMQe7v}jooo%Ç"DU@ ~lW65d_5ȨYF`+PcEլv}RT"D"Pxrrr||󏎎S.@tjIdX̢5E/jQSde?F !$gJhraX,&J (,R !R]% 5S5Z+0+~#@ endstream endobj 1048 0 obj << /BBox [ 0 0 450.980606174 301.450462864 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 276 >> stream xmQKN1 ް+X'j4U) g$6U%]^w@qX.?p_=p::A- tx.O0M%FR fhC%#$3kV P4$ XX܈E`EfBaV> k^-s+C wTV% M˷oQ6 &)ZV"FP] &"&i@U5S(z6jNs;[~Ϯt^ endstream endobj 647 0 obj << /First 2488 /N 255 /Type /ObjStm /Filter /FlateDecode /Length 5302 >> stream x]͎q) emaj?#A] gZ<4^@34D}0l :0`/>_ƻ^/쮮r%Ȋ̊222~RHRk$+-!ꪐToIp*kU+x>J*XYSNwres D3فPx8ԚmešZ\9P#r.%TKRAh0JE֣(t\WB (E jF }$ Y܊ht6.ԓM$|,} A7*(h#+Utxs-.Ubf@Ѕ**z+{4҂A𞿠I>al3;}gG1(q!R J|%ußx0d .㙁1JU7‹%@ȰDP"QuR *~ X3Т qG7f@ Б֔Ó0ʳkz*+Kl *;ktbMՂZ rl;@ZE@ k]r4X_3.RhXP:ML$hXыMP;9ǩ] Dn C1䬲ʼGkrYc_[ -SܳUR% ʂ#{@mU NF5Ά@X_d69a%fGXJ0Rg!?,R@%R|&%oW FF#KPf)Z*jA)gx%7 a"+ 49ǙWX N?PqC.'C _jYN_+y.+d(f)UmP.XHlaAFJFBT˒ٮ5RYנDb!3$)MD,pN,&Prh+E9qɥBek>Q˳* k –}25$e,X9 xE.,Š')X&g=r*^̪R /\#;#VY,uN/X)lz\R2OU_\^}Vz1z><^^oUWOϪB@' W(4<~w?~7j~dӧcZjoϨ u'b}h ._>us sz|x-=>th'FFg6~oy9TD^<;y kV=,*Ot\+s: 篞_?> |x#to՛KN9f_<@2ƭwF/уӢK}C0OJaO:[1ijO^$Fӓgl[nνoH|y|(',RpZXJ&M~C(5&PZcEX?~}tLLXt||^.UMY|у3E8ۖ><^^C`l q >婭)@=}1E\(NOFC54hЩ1&;Sc/dm*dwb9}ꣲ^\(~(G&~<Ŏ0ͮ0q0v0i4ea|/pafsuΑ H kQHd̶yՐxr`Ko\ͺlbM8_[(eI9i(9qGSw;y1:f ɧsrƨLi^}'RJ%&>ͣݳ;EAKC'_m7K_y$P3Xhls>quXߡ.ab Ptחoܺ99>}&_>9z lp .v[wtP̹:Ёա:A{`&:٤&t~7Ek'Y]N>vt Gw$w`/H<7sd_70aZd]$v -UZVNf+["` Z )gƕ7jTvv8茥5ޣ:a3RŞ-[A}@\;߆22ע͔t<%N%akb,71v+zNC\.9-(oE'R 1E]PhwrAl/p6j9͉]l/տys@];:cܦA{[}w'-n8n$w\rq3a6|֘0(NHg6,A)>@ H+oS=Dl"\Ѿ 4$M0}kGǧ#z 735-èB(P4d>S_LgۇO*JO "|f9ܺӛZF FCSu #=AvZpf~ ;u jAf"tǵ,tҒҍ\'}砓N'WCOcΩXx `[uNqG4;@%w~~p|DZl@e̷i:zkfX{~gp];yr/u^w2ނ<|utkJ[ U0× Lh_P7C Г ]t.ZJX~t31|vo{GmnBsnBα`AqRcg|q鵋P.B"nq1c xس(p7a+3[Z5nu .0;*L J_(3y#%ׄ1?oH:h ȵjbPx%:`7cՂLA_L`ո%,XRm`JSKɾ"DtwlfºwFmJ"딩^\f^Ӌek2ê (F{Du# vh[bi5`x?/m/xUP:Ng_>9yrܮeﻞA+)lS{COwWL"?8F6/m;ͽS`htvxr1BL k!h fh2\H22I֢ G/>]Iǂ.#cQ&&_pLXVnd@;:lQxEmIhVRQɊY n$S>yf{h2qzkg39nW-Ll&װ32I.̄GBW65c9.@NwtwN'Em)k;G2հ Xd6/ؙ )U:;Azev[n\:d˓CQ_6ki@^xxJ;I[q$3`v# ӌ"f1D '0VM2$ Qy֐Բ7t~'H ̭& zJ,Ikg#M'4)YDx<(AbDž6F TVO:Lu&KSϳdzK MS{I$l> 6ceICԚ faK0,xK~PΘv.0xLr34C\-2>IhQ`¢7o__ES\;-;OÖF]*-pYIJ l6E OI[$QGj#]W87:߼ 2'h`sruc^:UND@ ?Uz$GzF%gԇ>׌3J(ꌒ%yiymKخ?KJBea$pMb>[2[~Ehak16YxsiG)؊so|嫃/uhܮe4h0u |jesiP>*X-X;t1ƺᇽ]G"(Lp I|+i#sKڹ?#yڞ.7ydvQ^^ڥ3ۭYTeQ0ǒ&-FAq BY{O _d.jj˕FYu=?]We~ MrXYT3inpa mNB!/w!|f NF`ٛ7m{ArG\N8teǬu袓*z-j endstream endobj 1055 0 obj << /Filter /FlateDecode /Length 3527 >> stream xڵ[n, ߯H5t.YHVAje &(̛?~վyf{v{ !so?x8I @ȘQ_24yC3^ďŐHM4Ko:x8yST4$1e!9`. .o|qCoP;#o.Cn8wG&ԯضw\:mꝵCK}D:p2IWcwx07#SìG &$V/ ˲I$Vh:Qu-U^d[ңRDY;Ya.GCW c0ĘQ 1h;➃(Iu8c >9A_gGs|L!qb%b8F _yT+A#G Yc =<0+Wcue?ރ4A -J?A(:z0yyIoH!/W-^4E ,s17 ;ȃK:5\'B)c/Z=*=dѡuQӇ$c{2e=Ct>ҍ I^/]lL'l;JG9^g6=96'K]}4 gs֏h?'8{^RoaPӬmNoUs3zI:Fֈ;Cz9 lFgX7)%gЀ x 3hiBo6Ke*-lUZs{`#4zӕi),;$_a0Գ BXsnv%=5{5k!E (ocۂTZd{G'S;>VXE_V9ߎH]~P03d' "Y _z;%b:.HmsL3[w`;cio%0;٨eeM!Q6v-vem&;j}kן:c|QHѠ'tN&spCgwD79KtAM*PJ{-\} s9kodž4\kqʨ{.3lJ˞ž{+ʺdjtɝZ+5(i73;l3w_gw`WILtprI9i_&H*a75YƒNtd;{h=( [n UwC; \R?Nv2W!]wmX OaǪ]M)>8k&jޖi%4̷9KLzpMH~D[ġӀֆ@[n={dI#J=ns鹋:V_94J˒\tLYt X<>4BPy<6ucV vg^2弦NP&c&U'WJu_OVjI`#:cT"qмzu 8l+RM1DvG[}]ݨ1ʫAmA,Q`Kq%teJsGm endstream endobj 1059 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 245 /Subtype /Image /Type /XObject /Width 609 /Filter /FlateDecode /Length 167 >> stream x1 g O(8( endstream endobj 1060 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 245 /Length 14176 /SMask 1059 0 R /Subtype /Image /Type /XObject /Width 609 >> stream x^yU5kVJB$Rd &$SBBDPT*J%EҤiҤ4TZ{9}>Q{Y{zOkwB!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B![Ν;;XbE !6˖-:th\/_B!w{2B!DH!"!2B!DBd"BD ! B!rg/^8P$Bf]v ѣG_ !B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!oêU/^(dž .\(l޼O?ݱcGT!zA\pAΜ9"#c9Zj~޽{G,}$8ƍ |Yf]|?_o*Tg]zu}`֭~mǎ̙"ѣGY~B%lٲ+uQw}g CY`Γ;l׮]I2dɒCJcзo_=5km?s͚5^z4*UDf͚^7FϞ=BC-[%'OӃʕrSATkٲ%Dzp 8~7o܏=PN8> LStiNu'J=^{}N:JhѢ_ql45jt.\8o޼w?Ͻk׿Oz7s3ԩSjݻw ֍s !b: LswwN4)P !w!KڡCI}~h"ڤLʕÍ7ȷsu RHSXWZx;|'_uR$W/_ah|뭷r?ꨣUR8{l_!ˑB_ 12B&*1%ڵk ФI 1GArY|o{ҥKe˖ cƈ\r1VǒtG 6 0}6)ϟ??Q< Kh"ɵD !K\]CJN;9&4ؚ̗/Z`G}EժUGi寿 9IHfhjQ{Ы3ď"g^l|Tx3 .`{f3gId"׭[G0+)bbGi"?0'D>=z$N)?_s$?ΝkfͲD իg8ԞGG?'yՕ7=ڵcׯua{ʕlc԰QT) qD[ꫯRR~}M{ؑLBor*L6-pȧz N/|)ԩ[b> ҨQC=C$uIZw@ҭK.lcP|bȉ'Rj9_iӆr,>۴mN/μyVђ38QFYEM]F &D !1:.#l!W^ &, Rpرnf/"Ն z]R%{Hxgʿ;L W(?k(QsI{/1M$TX&~a_TBٶ1o"ڵk=*ቦG-LB(XUtEʚ:֭[s@cXL2X٣;vb*1c,jULŋ_vr#S6m".v|M$'V%;vzz@&R!GuT9Hl&z L$neՒCtªU쑧B"СCm+YhQ]%;x`pW{Ygٓ|q=QILdͩ HVZDr۷'KLW BufFY&R!c=(\pBYdyRK+ew?CIt8p /ʕ;=Vν Sko"lѢN1JH!l15Dl]K[5o޼(ZUzB(Xdh HKWPaÆ2etЁ_~8( kX O6mNyr+V7._ݘ fI'Da:G\C9Q >hgv8TnREX0`@\B!_r)͛7,Y²eZuիW։1!"> 9 &+~ҥK;[v+s1|–-[Hr-~!TN K :o| $ݷijdcBuN`7/_>8׌(X GBc1Qܹ% [o̙s~ٳ}ٛn ʷM{a?z]uUu֍WH"T<7NxsܦMK.d~! Yz_H;1 hٲg֭~,h"*YtO?pԪU̽w !b0Z" &b֬Y ޻6|H[JuvN4Iprߙ:u!ChO4}td 'E9_ f;v, !B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!&L:5y 80P]vq`H!8Xٸqcǎ{Alwɶ{Qb#FHYfM6ݱc+a͚5sN7o^`O?}̙~M!"[Ю]w}7PaX:gUZ*ζhтSu޽K.+WP̨BhٲAEA]wݬY\ɪUg̘/cC]+V!v4id̘1nw;56mڐ2}W-fIƾ{~M$c2eW[nݶmުB!ǖ-[:wL:ԥLe>kf5*[%K>'Nd~>^uU]vi`".w 5jԬYSIW! x _4իW]mO61K?j_^!N̛7\rovBظqc>}*TߺB"wvC&Ȕ !ًcڒ+Ve-VGŋ?~2ӧO/]oCBºu-iӦGX|ynXV6ǖ-[xܹsO4)Bq0rJ8d۶mG(uE !B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!Bd{lɒ%D[_~oG"ԩS?StҁzgΝ;?v-Z?6l0`f1yd$pYfu?|ίl޼9w}o%|!{=zü+ \(-[W_}unׯ٣Ghnٲ7ϐEoAΜ9/ᗄ2eJ͢3gN`?HG1pڱsF~8r(f/^\P!/ܵk޸q /ׯ_ڵm֦Mu/bvnϞ=9pǎ^?ٺued~@?sw}wjծ1cXcRJ'::)C-Z /п6BRJ_j*;]oˍ5{㎖-[kٯ ǻ{)]6P/ /Xƚ5kfϞEtI:3W\U ʕ믿 "4wرwBmx7+HY}T_lX?3_s5Q͌+W.Zi&d2T/>뮻7nY!C,֭[4iNY;lWoGH.)j:[o/ ߇ &8sp.`Rxڱ}C=ƌ3rIN~zf yI*x)ҧO}OX&Mb O?VZQLL>҃&-_pB6L06lϝr << s0Η/̯ /Ɣ X+/"wrlp]vE34hРI&l<P֭߫m}WFUAg2m08 i\`ۗ\rItŊx5MDd]r"r5]KR$so' wy $FnOןYb~;Jݻu U1O[N󷱤6ߍ->pPle`qP؂RJ!l#|:B~3w͛7m,)+K.2eʘԽ[yXegB[ML„f;haM$s9 akѢE a*u oJ遇~ EGaUw羚D6lоD~!8ر%KPBM9<Dg|NDSdM!-͚5#曹gyN l0_~9:*B.lٲ@ŋM)\0ؐ~6vwY'k_$& 3'I\Ǟs97 43GN qqˡ8!#JҶ8 ?(D@SOalG?pY}'vI̒!7&݂ CwrL$G^% l3!/I8F^./f͚V] H.ʙ#F6ƖqQ{O(ڽw*Ȕ_UHmLK4߃=e+6~Ia΃CO:0(:?ڴiS:t+9[44zV9 O?4h ?}6O`)G_b6Շ[ht4_b8裏6$mgic>a8bLtlҥٸ8xיzu`Cqp$7ku% (3UNXZ6xoݻ9o"ְnbJꪫ\e_d D2eX#'3emM$3ŵa[Hn"eSBoLƘx>W_}yWD2tHot*n356,$C'F b1uM>%Jk=pGsYgq-~5Ā9h+ ];q}CbA͚5"_=8@:#RU{rm%0, I 7>?zaaruꩧb,H=3xpk<֊FOﶖb}X,#ι(LWC,+rL(Vmԭ[wĉ{L$ŒeMZg2|ɲ8RGf{26"REVZ_Zm*$ʴ9rd&LY9e?ǁ}t\Kbn ĚD+=C" g1(")V0s^z) 9nqwqi5D2vsWrېD<0xD4O#ч6BVR/"']$lCaAW>(@T1ޚՏT:kPb'dy睤kժկ_?r)8NC~̡#5k X|P(dQ"ϔpl"E@t9^kC d( 9F07pw)<19S {Ĝl5 ΊW_mY8& Qd@Xp,\dst 歷fg",Y/&rԨQ0݈9HΝ|K~2 @`"Lr8A[qkdVI=FjxxAXm$xYL$ rᚉ a~e ,o"Gppڑ Ǝ~۸q"5M}wp Nl)~S:D' Q rp7/1=CГ+y \9Yf" TxG򆰹$5&Trubˡ8` 9hG0 6$S'R|,{uӏ")l0ɋA*3lѢ.kT/Y:3EM$Kw,:@z&3Atf @b jn*3-KxhR^\^Jz*TcnǙHзQ 1b:n$˻ڝTsF?t_A ot-OP)4o"^w7#FGw}h5Q݋Ï6٘oG(+n߾nLnW8ۺ:d"nɛ7/ܺ BߢNK3j"z-$ }QV\Glg.+L{1pC׬YsС05b:c 6׭[U !ɿ6wKB89h3=id'|@C"DJ*. (4bTVT?gzdZje=~$H8 !|Θ $2r2{SgYmРdY#sJ)G!9A|wcӦMf@Q "Сa_(}*̓']/n"yV·y#"ٵ?`ܿ⥗^rJ`މo"T&a4 Dp\:Bb5{@| *<< \YbXF !$Nx?,5Ƒ$[4$ 0.Ka 9PA'tt;*_za|eh!#Hs1med#fSYq@bi+!L,'|GZs¤GaJȊ<2F.h'| 8b2`:ׯ]mjӦ=72:vXj@B'ij۶mm߯ZlիWƍm){y%Jn'Qɕ+{z 2ƅ.t)JC14 T YыFaoP&EŊ͘oGjL̵"1/-s|o޼C=v#sX#< Ck= ˷xD<,ngd0ʕ+玊yZIf͢wyoHow뮻.{Ts^KXD\*e~͐L|~4{O>΄4~gr4(^=}M {^‹#m}dh fd C:EAt4E D,Q.C."WEE!ڦf͚lsŊSCxh(?)@4OvȊ4Xbʵ1I$N~{8q]"08YB>GzD.6t𻋎ō!%)A_}B!>۵#f+'x΀$lBD1} UV.]HDrBt3Gl'G fV+GL2#y_J5wcs9U9{OCKR9pwBhmc…1n8Bf{WT!`DW=:hD@-Z0U#s$zCfL1cPX'ƗyjB6"ɈjřH&)Ɂ&b ,3g^{+hDp413hnݺgsx*c&! ELgRPG ;@Ѣpg27)@fz'u/$ƤInf#t · (SN<]#N;O!G֎1;<>6OypJl%K9眃apW0g &ηɠWR&7(~Q@shHo6d\e˖Ne:21^i(ԩSuI抡gue#Hhƾ<G]d(n<>h$v~AC-$4l' YÏZP@J |{"a6-a2hR,mD8Db P#)&̊8r `ߢCd) ˘r5H~@읙Mz&,Gy$F̉k((IMʎT'E6L$ncZu۬ɡu(!wK8E~a(X`ǎi vJ-`H$CQ$^+ԯiX5 kڴ)0I708"UE.Y 9 >H).z ߿#½uu>]j$]O̗miRt~n\]mb M0AP&/OKĉSjx\M"@pDz @ {1Qācљݎr|pp?CK0[Hh*wZL j9:t s,ߘ2/-jR.5j԰P: gVClf"q­ܽ؍1evt`q.Nݾ(>?9묳/:A_DYʅ:5 %MEݣQd_L$]7*ȎRvhy=+qҰ8Er!~ vI u6RwX=,RZ<}`_ )IIr,YTJZʕ+ӓt0 D2l34_@W} '!I;.l&en$-o! ̕+##E6i3g`\TO;m4 $r3o/v$H `Hnd"',m؇)LcذX7.^(aʠQ&YAD#9 ̢3Cj K|19ίJ%*?.xL$;bUa[ALݵ 3 &}rKb =znCJ#7\M$I,&҈?1`80qCJ{bN({Y1ua"`\e\i0vW+Ebm8R{-5}d <\ ( B\/)ts .ͥSXF~3hi[t jBB3EO(1Md(O##d킨460d$&3cDh)5Q$y薭 "G?lz/e9$|F|A6ZIwtp~9b HeH@ݻM#" H_[W]vDtCVz,Jfc:&穧JZȯ7E㙣iɓfY2NBP,AcƦ{}u651\k/' _H\rC0dRD\-i"!B}K4)@fn'N֋l|D=o"5jp6z V\/]G@,KbcM)XC m V1^A^ D g+JxC#tD.H! ;ʉ5%yȑ6 Q#&V)6 o?D;3 3TˬVYhqBx >9Ɔ409zP,P*HGLl۶-:jvo!5}~_*)M%)MvpCW3DҚ7oj/GEd]9D0?y{RKۖ;wn3`H#xo Y]ml{vu&?CCDlgyf#3t[0ݜt5^_C2t1_(Ƽa#vٳg&!)s 'ȑ#P=28l=ul"ayt|G#AŊdjMو8`b .Ĝг$(M@7VP!I%6Q!a&2!I砯# 84w|^ayҤ^d ;A4St^Is}LE1ƒ'm268KlEVMc͚5tiΘ_a9 BK ퟰ~eGf_~@_1*?="Dl#a'Kz3GK|+EF@^iae" 'OSt@Xsڸ@V\#9i_#,@7i"[sfdq8$}LL$5cU@1aG(-H HlSV\k~xkĜH *C)ꄉ֔&ET{&&;d8߭"j"ٜed;t=2\> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 270 >> stream xmQJCA Wd򆼓zZօozaf2g<um`Yeea c-5cang%o ?C|s Eє"AphJsB ObɊ`I D) ` *7L(\%siҊ^#hx$UuCH%ۑ)V^ZMj6 il̋fBp-:>y\&s74 >] endstream endobj 1062 0 obj << /BBox [ 0 0 526.394626717 164.352686824 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍK @ @sl܆zVluMGJ(0'/UV`3U4jMw?tp,U7Ec)<366B_+x,a7j*RAܱ`KհoFS|\ .'oZ~_R1+J endstream endobj 1069 0 obj << /Filter /FlateDecode /Length 1615 >> stream xڝXn+7 +QIzA}ZdWtU]/JJ8&03)D p3@-XǰrȇRs(51>>q}@ħBFp \0m@L+@U?Ty6A8- ʭl´2T,[0w[8\ݍn~o-(ϗUzIZȜLafW <$b =8P7+)Z4e7xcI!V5߳ʫS"FH:!bGմ *`[NaZ 9U U:tqɇ9k'%y:7L'gj./a ):I7Ϛ.A GvM"{?Mm®v/Ɂѿdc~R&(6I@z3M(eQ_tl.^w1#xWk_A#=X8? ŗ>QTm=Xp8.aOyM.yXc 1 ݼ:U ƏEc U.QxnMA*x CAEV.xjJ7;U$`J,rD-s/$Vķ$"&XEZRJZO.zgǢXJla]_ R)s cx-$B!DɆ؇&N4C}r2;WF|"2R2Z<ݠn T1Cyb -%]5ISYlI.(w+_ $їU9۶r"N,8MM0r9W{b.oE6!l _f\qZ J:r,Kړ:R/` G |M(rbU+":<=Z5c{-iVٗ_!\9,^ 78e(ׯrWT2tDZA>HhkJ qO.Cy?ҡhX- /%ɂD-O0KyTb4GxH3^0rT]M]K5=%雥! 7`mpsI,zK14dSYb|)} D{G$Z t;\iH=S&7ެ)~.\A<*g.HIɼy@Ydmo45$ӝ endstream endobj 1073 0 obj << /Filter /FlateDecode /Length 1805 >> stream xڵYɎ6W ZF@n  9Ab XSx~)= dkMjp#ʸ BxO&)qGc>I|p"i!&'!r(3y[yw}dfLNTYj*EGp~Rgfu4a<wBہ?t ~90WC N| V+kwEnono5[4oC,LvX}K"̥IJp1:襾kyXz%N{򼊾7!hǐ87&$1ƞvYo딊uG'{}H3&PIyJ3peWu-TW&|xq^p, A8Wױ:;.~ [ =\ 45 G\J ]lىBu?hm@\ (}E"#F^h#A~iyEc#łV'4@~Kʺl\Sej|*:SgctsXǫbu.9n5㒍8đc]B$G1Bek\vP)I!dtC mER$Zqn6KC^\q' [kPV|nM7WQ9?HT4VZӡ^Gbn:ͣ`Mi#IЊ u!CS(mVk][)u%ER4V"f8ttVz@z駦  hcglǃiᇊHu9][!C8ϻڇJ+;TƎx!zSԂ+5Ve> stream IUDCOL+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularyFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1080 0 obj << /Filter /FlateDecode /Length 384 >> stream xڅR]k0}ﯸ{(X"fWE^mruM$ꃰįֲI=ܓLN-wAE+d:HZ("C6k8)I#`PjɡYp`'bōb삟V ;k?<ΘY,b.4&cxt d>P\58 Bx,ؽS LvjO%0NCGsEMYaDJ50s"#E1 |dt8DZFt4MhJeSTHo|OJ|z FQUtMb*KEr;jW^g8\ǐ Z)H{wf(.pB ];1_6jq endstream endobj 1084 0 obj << /Filter /FlateDecode /Length 2656 >> stream xeW[WwWsgv׳3;3ڰ3; ;k08($:D%H %HDmO(AZ~ Oԋy>F {ely0Z OLJlI(/f]rY}ossz]AǠ_t8/ygmX4 b%H){R VHg5Sa6\[:'' OB;S:6IJ! E= 4LYr PX,K$Zu]h֊A/PFH~qs7X(W=kh<0[G6 ?]?-=Tb&hLfLم0:I,ɂ9CRJnygM6}.VeqIAK8%7mLY.h(QPfճ5l] }ӳS.fk36 °MǤ.U-6DݵIcCtuCHASL(jZ'9Z y9|(mbİXRdAK5Ұ-kumb} 1Q˱u]WփS7 ї%Td6芳a7YnnTL\鷧]: l8oϥYA:${ʤHkk7ZY7dP:[WwÅ*/lh n,c~[I5czH(=#frb6ngGejpWP>TH,K<^y(@uitCO lT,Fhˇt@mL=4U"Qحžx-m7VyDvq0B;1R%Ħɨ{J@ l1!Evu9'j-la2Æa ӰSs-mJiڼE;BMԊ-Kx 2KE&a%THJ9/Gp)K CO&V $b?^q"+ R3'Z"H?rŁf3+IE$P+>С3es )ԩ+cEfbwxam^τRd.)r^*U䇹BrI4$8a9)* -WP*9-G@f g$qVd[uU5ŮW:-i.!W((#V~BxQ8N@v:cWʴ䐁 \r[v}nwnSJ:M+8*٬[ytθ\n)'i݂ܙƭV|[awčH,(p$yVc 1'f$C犴?lhծ؂漭G];@T,- Gs' ױL('%A/s Ķ~"eLR}#zR%7!fg^E:2 V {Uo,mKAmz@~>u.@b*xyS~_5uy;zW endstream endobj 1085 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1087 0 obj << /Filter /FlateDecode /Length 485 >> stream xmM@ڃ/'L8c+ҭK" i`?~HBg$A‰d:MrBpGkՔagI&~LׁQ\..|H(̎ⷳ=&IzpyUtUES;!|=6^FÃT򸩩nb\IlAp&*;*k 差u&ύ=XaҮW7] U ̾֋|h۫ҀfcpqgZ,hG7[pi\ZEP  endstream endobj 1090 0 obj << /BBox [ 0 0 144.628754232 104.231294511 ] /Filter /FlateDecode /FormType 1 /Length 307 /Resources 1089 0 R /Subtype /Form /Type /XObject >> stream xڥN0 y ؉-I 6M;x}\ƦuU'vw@xL.ݬ{K<> b\*I*t;""Y[#^Er!bVm`z &+ )fM2FG5cE1K.gq͆d ig͙KXCwE>ZN@\vGJHB:efDqܫ ތs٥D^( (f^CkcH$WxNO6Y#ƅ̣@zv a-777O endstream endobj 1091 0 obj << /BBox [ 0 0 370.807789272 146.874300718 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 170 >> stream xڍ 0 }\$u] sƜ_߬0(?B&Ep'AV̪{~|C;]{W\2Xr< b> stream xڅJ`%1ib!M(:SARhn.Z t YcISBD^@.ɛEڊUM,)M&GD0G;?5IEWַsrvm#dFZBV(^կya44E#D$6}艐 O =5!iHC7\C\דNp75Dsw=~lI6D-Q?q[}r|n98m~KBo_͂( endstream endobj 1097 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍR]k0}ﯸ{(NKBgWE^mrM$a?~7N`[@09soYruFу#V pxX]4;DpЊh`FH 3%p$Y^sQA/ y:09$Fȭ61Y',$LN@pTQWB9*ljvӤBr3g3XAmvY LUwQݴ592}ZNc:Tn> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 1104 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1106 0 obj << /Filter /FlateDecode /Length 463 >> stream xmM@ڃa4a`v"]$Ґ&㷺4# O[L|d֚G'ֽ,Њf2&uW("G>zua8MRQvsGc+Kq:0:~~[^XLew!C?R/mYpcdוC/`ݝJU{^ݍ|e׶*z0,`U7>]r8kj VC[Z.VVH9E<_{M &/P|/il-=c{(CTS'Pq&hφ<ņ| XF t7*KFMDm EkCk <Ы0b !I4m2o5Fe,BR>r_0ƌ E/%^|YowUNԫ(za endstream endobj 1110 0 obj << /Length 375 /Subtype /CIDFontType0C >> stream ATDDEP+LMRoman10-RegularR  "B  &    g $ %. &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityATDDEP+LMRoman10-RegularPq<h> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1113 0 obj << /Filter /FlateDecode /Length 367 >> stream xڅR]k0}W=g"BW[Ha?~3v{ɹfpJ5t nYf]= 2dڬ$M&bۅǂC zł+?uEۓ?*>qXte\bh)oK  @_ZUåXH[62]67:zϹ`j c8m=J2BIߴX"!@Ub(`~Ϲ%]]hL0}:CVtgf𶿛mB?lW2lꌢDq:VBEnGKN?C#9V v SJ9Ldorjio}fw}@ endstream endobj 1116 0 obj << /BBox [ 0 0 144.628754232 78.264825994 ] /Filter /FlateDecode /FormType 1 /Length 241 /Resources 1115 0 R /Subtype /Form /Type /XObject >> stream xڥj@ { @,NP M2K=tWI8>O!cZt% (kxp sgDj:)""h~\k+XH%wq?Uwg&NyLIݤ^]q0޴hJZ ^?ē`WH6E%.S2Fqa6e4YtBȐf endstream endobj 1117 0 obj << /BBox [ 0 0 370.807789272 129.395914612 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 170 >> stream xڍ 0 }\v t9qc΃oVAJ|!doj"8U 5mNPM }d8MQ1F |\[(ݼdVf-yK>f^E|) xcuq,p[_[J endstream endobj 1121 0 obj << /Filter /FlateDecode /Length 568 /Subtype /CIDFontType0C >> stream xuRKhQbk mڙ*M$ j6ME mbp%DLl>HA0"_fl\D1fFS+Z*XčX"(-ҕH<;q#==.= 8'Nw/ovɰ7ݘp?#qƆC[[ @РY YFyoۛlpeO@XdžX.x#eWS; IfEP햓!ʛ@ǻcre02kaKTx50ᦍ i*JIUPIy>y9^,rM־gj?ڷ+Fߎ\uezƉf,]IV}Wm5FT!8Fwvryżx׹zb5vJP:ދaR#PT׻I.9,3RZڑ#)ȅ LUJ܌z*zb~Zݎ9e4jD.۔wm=Q^CxAʊYIfwnu>h{?+ endstream endobj 1122 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1124 0 obj << /Filter /FlateDecode /Length 386 >> stream xڅRj0+@rp-;4C"NKvdd`W)4W;;;;)r^3{&pR֊h<^KZ("CgV0YPjYͰGa b䂟N^wny,<1X9Ĕ]xi?Hix2LJ.gBRp{ Lurjď<CGsmc0E"K\-j0Sp"#E #d 8ǡkbWC]FxݸaYU,~m%,BQytMb*̼FMڜFs_~x:zoJiCf(.pXp!MϾ endstream endobj 1128 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 1129 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1131 0 obj << /Filter /FlateDecode /Length 461 >> stream xmM@C 98q&a3a ^] V[ݭ AzُCnoxsBa]3gZYڔC#r䓷{l{'Y_8u8RDՁۛcn>|6Sc_IdF` eW5 'M,gs%jp=UWYZ@?*Q~z3qnF#j'I^t p>$GY ̿K|h+րz=xWSD}{48Zñke!.Vְ3?UIu: iPB5yDK?x5,134JPāH<2jz%xg(V(_Mїl(HiT})4JW-c̐/ hjEM7f:H()΢xm"(Rc-+ endstream endobj 1134 0 obj << /BBox [ 0 0 144.628754232 78.264825994 ] /Filter /FlateDecode /FormType 1 /Length 242 /Resources 1133 0 R /Subtype /Form /Type /XObject >> stream xڥJAEU5] 8p{ga4$dqz郘ҲOk!aߓd7p\Ĩxf*{1]'깱4Jn4CP@*h !ZFjǴs<*?XO;UUJG!MèZ+> ߲O ah$fٵb8~KzmIh>S ~5>Vt endstream endobj 1138 0 obj << /Filter /FlateDecode /Length 699 /Subtype /CIDFontType0C >> stream xuR]HSa>gg;ӥKMcQi!"Re.pim:5MV];Bm7Ÿ44  t]REV $"z/}/jҼ¢gUYɘQbhpE% "`()*7-d,Y hT$ 0#@-m)E-E6O`O,S:Oq4jSҳ 2YWU)w^۪ջk5<4JMibU[KTNJqhjL3x%HHIs8C-؂8>FJI; /U3a$@]:ewH|" Y_5Ҹd'v$xeGb=,(Bv{<͇\lv+ ,2gXJXp+@->4bx}S$UGvxxfVucfQq7yX&Ǐ݆R- uݪ-MZQb|`#_5'Ds 8zG`e\дaea^7wZ\׸wCp"yiKr-g J ʬPiF6CI#ȅ$wmlBh4MCۃ^FNh9mto.흢(ɨ$w%Dj ] w[4 endstream endobj 1139 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1141 0 obj << /Filter /FlateDecode /Length 392 >> stream xڅRMk@+A1PEVkӅd7lC? Uy' :#T6zJ2EQ6$=ae / [}+\( ~lGF#2CLڙGa o*RBś`K.8~傩.\04C{Щ LCq%bBU!{PqsM:Y1 dxARйnB״+YDQE"z$Z( v=.WL/0s`oثѸj4c~Mf*6mv9JMڶM\`L 3})5h endstream endobj 1145 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 1146 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1148 0 obj << /Filter /FlateDecode /Length 461 >> stream xmM@C 98q&a3a ^] V[ݭ AzُCnoxsBa]3gZYڔC#r䓷{l{'Y_8u8RDՁۛcn>|6Sc_IdF` eW5 'M,gs%jp=UWYZ@?*Q~z3qnF#j'I^t p>$GY ̿K|h+րz=xWSD}{48Zñke!.Vְ3?UIu: iPB5yDK?x5,134JPāH<2jz%xg(V(_Mїl(HiT})4JW-c̐/ hjEM7f:H()΢xm"(Rc-+ endstream endobj 1151 0 obj << /BBox [ 0 0 144.628754232 78.264825994 ] /Filter /FlateDecode /FormType 1 /Length 244 /Resources 1150 0 R /Subtype /Form /Type /XObject >> stream xڥJAEU5]]F!;qv!+E7f e4$8Pso7JLiէ덐0/I2,;)dٽ+,@ASGOxsci^-4M 87ǸjkƵH+מVvVfJ9X/CFQ{i= iViǛg%@4I)ٵU+x|ݒ%B Ih>S 24/WK7Ӎ{x endstream endobj 1159 0 obj << /Filter /FlateDecode /Length 2025 >> stream xZˎ6Wa/`Ѐ3 zd Y]/rJ$Ek0DId=z*˿.n ;Bd;,7r!r2s2~ BDY&zD.W$lrGd*D,MdzÏ `O)LL 16*c (}ˀ$K{%mKlC{AR29ε''pN)WLU xź4{[9W\WotNr:M Ձs8H4V܎w{*њtf˩ysىzȼsd޻=K^,&}#}C/ ! °xZI1tdp.z$։衪YY-h݄%.gqu8 ͇lit eulof^gJpQl-?;BgNq jFXBy}a05APv B\/'Z}W-J;*5qH``1|9"qq LQڒiN#kP0q Z:62O`hs;B #Χ|Ho_ N۟//4")Q_.W76nL'wȅS" ԓ&$`G0 o}qCh`NQ:T8/G%¿+OI_(%kHWJT5" \6x%ٕ3ݽ%Ŀ'dѴ[hgMp 'YGR̰g)a0A<*i'([dfV 2XuS_,cة9Sj8']pHFݾ*L ])=6K uUBUS'Uex(q%΁6j;/جӜiNs$Dp/:9;HyD M;&L\kPC zRO!w9mx;d4lEz ^i}   iI~Ra5Kg(eI5a_O b`M5aG'V[ئ* VXЏ'em:_}TI󒚫6+"? ޠmYt U]Hyyk{Vƭ$]IwHݒ++b tŷR0{hgKg?IXijt~e G= +?k Zyi 9%%H?2`ёIQ?"iIISQiZ47 > e5tQFGGG^q&88[RXP_ b_v#[EO( endstream endobj 1164 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 1165 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1167 0 obj << /Filter /FlateDecode /Length 461 >> stream xmM@C 98q&a3a ^] V[ݭ AzُCnoxsBa]3gZYڔC#r䓷{l{'Y_8u8RDՁۛcn>|6Sc_IdF` eW5 'M,gs%jp=UWYZ@?*Q~z3qnF#j'I^t p>$GY ̿K|h+րz=xWSD}{48Zñke!.Vְ3?UIu: iPB5yDK?x5,134JPāH<2jz%xg(V(_Mїl(HiT})4JW-c̐/ hjEM7f:H()΢xm"(Rc-+ endstream endobj 1171 0 obj << /Length 375 /Subtype /CIDFontType0C >> stream IUDCOL+LMRoman10-RegularR  "B  &    g $ %. &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularPq<h> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1174 0 obj << /Filter /FlateDecode /Length 366 >> stream xڅR]k0}ﯸ{(eEͮ ڍH~g`- &szL{'pFoz2$m+zȐj4E 8Y%'-Cz ~x*o(L;bі򈥝. $2*wT b =! vL){S]8[`S=V&4JFc\a9{PqQsJۺ.њQ42L*̮ " v%æ(L|hb%kQ*zP:x OC鸐]@[LDz*8aw/o~ endstream endobj 1177 0 obj << /BBox [ 0 0 144.628754232 78.264825994 ] /Filter /FlateDecode /FormType 1 /Length 594 /Resources 1176 0 R /Subtype /Form /Type /XObject >> stream xڥNAEM;B H Y=81,!eմo=kb4~$'$L-}Ny(2}O 5JORQW,$7f:uJ"T, >D'Sd=/.I܁ /$*{5b.ss [y0+T ' endstream endobj 1178 0 obj << /BBox [ 0 0 370.807789272 286.701404766 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\$u] sƜ_߬0DAJ|!do"8 ~-A*[B=kSš7psG$ciglru \Č[7np7)8L͝ U=y "L!< 3wuᅵ.S 6Kx endstream endobj 1182 0 obj << /Filter /FlateDecode /Length 2582 >> stream x[Ɏ#WÈ :o6fd>5 ~%SY{($K0mwrvEvdwfM!HU$nS01yv߾N\w P!(p!,6\,[{1'k*7S7*0hx)]pٰeoyӭ$Ŀ7Sp:R (9sG/VԵM^\Wd(Iȃ`0:Jb*Cшu &81֧Gl^།($G}Θ[)D#FYqTbX!ZY9/]v-! m rTb[ʖ0JT݅\G6{ڨ>vmNb+)`&8ggd# q~=0*dЁJ9cf;blyb2>y\ VAq@&0>o uAO4E_J뢯@sXJ `(Lz_&a&H0arғar p09wtS#&4snD//D(2zT ^6 D^r-#ݣEm?&~Mhzb O/Nt dc~ ~R:6cKLtn p~= $yy:1^3p 5=Jvkn@V6Dv >zIղ" |4CR*Z gM;;`qDHqs?ͥ%&[O"d0#fK=ӡFM=&Q-މoi=LWrsʺH,3wb5V9nL!Jk0fLA,QNx#KI؈H#4ą&Q#c3rpDʎGV5XF:~*A*>si-m&=Gf0vg.i(WUd,qKK١(@p8B A}ƅt W!"\2Hkhs{՝+f~G9T1@F~pe]RRRJ\éfmTToJ;ML,>`ǣ\k(\R4>dKkh~/'Є2`e{j'#BK[hPyS2Ⱦ c&쎹 LNJ IW-)v dN`^?#`X=uF;{M$-}{#ӵИ{?4UvUtrq(KD<iޔ,۾Ҷw56 ik=w$c̸2ރ60P |8/S?r=LJfQ)Ud>m 3E׷e .+}DRݝz5.+%f_5+E<={G_> stream IUDCOL+LMRoman10-RegularR  "B  &    0 $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈FUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1191 0 obj << /Filter /FlateDecode /Length 379 >> stream xڅRMk@WL`]ZӀ/bZz5]]Y wׯy͛?c Z#VQp|-iS ٘VpTX"֑R#Aሺ zŌ+?}vwE"b0kDYĔyk?HiL*. GBx,كRG)L rbCG mtmUcTëZ0K"=7e ` dNYtۻ&:qq%êL(DdWm%}F(M3]RJ'0tGny]u{ (-ՍfTڙ0N6?O] endstream endobj 1195 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 1196 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1198 0 obj << /Filter /FlateDecode /Length 461 >> stream xmM@C 98q&a3a ^] V[ݭ AzُCnoxsBa]3gZYڔC#r䓷{l{'Y_8u8RDՁۛcn>|6Sc_IdF` eW5 'M,gs%jp=UWYZ@?*Q~z3qnF#j'I^t p>$GY ̿K|h+րz=xWSD}{48Zñke!.Vְ3?UIu: iPB5yDK?x5,134JPāH<2jz%xg(V(_Mїl(HiT})4JW-c̐/ hjEM7f:H()΢xm"(Rc-+ endstream endobj 1201 0 obj << /BBox [ 0 0 144.628754232 78.264825994 ] /Filter /FlateDecode /FormType 1 /Length 451 /Resources 1200 0 R /Subtype /Form /Type /XObject >> stream xS=o1+:@tE`(\%Pywˉ6[3GQY|,Yob-9q+vSM0>>hk/VBDR_ckB' ߔ9c9,بzYgmnnuˠtۏnzͱb/14,UD*S͒><^ YT[hm~x/J\]5҇=OSϰfLw%䲫֚9 h8ơlWԭQ/G%6ǴDJKn%@2Pw;nM¾sY"9$)uyh N9>=zxL) &=0  |%\kǕ =JN?[hK pm幏ٯ endstream endobj 1202 0 obj << /BBox [ 0 0 370.807789272 339.136563084 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍK @ @sl܆|c  Zօ7( 䟼7I `%DYeVOSmJsU7{8pd436vF:%x3(nݸݤ>^ܩ`> stream IUDCOL+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularyFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1209 0 obj << /Filter /FlateDecode /Length 384 >> stream xڅR]k0}ﯸ{(X"fWE^mruM$ꃰįֲI=ܓLN-wAE+d:HZ("C6k8)I#`PjɡYp`'bōb삟V ;k?<ΘY,b.4&cxt d>P\58 Bx,ؽS LvjO%0NCGsEMYaDJ50s"#E1 |dt8DZFt4MhJeSTHo|OJ|z FQUtMb*KEr;jW^g8\ǐ Z)H{wf(.pB ];1_6jq endstream endobj 1213 0 obj << /Filter /FlateDecode /Length 2656 >> stream xeW[WwWsgv׳3;3ڰ3; ;k08($:D%H %HDmO(AZ~ Oԋy>F {ely0Z OLJlI(/f]rY}ossz]AǠ_t8/ygmX4 b%H){R VHg5Sa6\[:'' OB;S:6IJ! E= 4LYr PX,K$Zu]h֊A/PFH~qs7X(W=kh<0[G6 ?]?-=Tb&hLfLم0:I,ɂ9CRJnygM6}.VeqIAK8%7mLY.h(QPfճ5l] }ӳS.fk36 °MǤ.U-6DݵIcCtuCHASL(jZ'9Z y9|(mbİXRdAK5Ұ-kumb} 1Q˱u]WփS7 ї%Td6芳a7YnnTL\鷧]: l8oϥYA:${ʤHkk7ZY7dP:[WwÅ*/lh n,c~[I5czH(=#frb6ngGejpWP>TH,K<^y(@uitCO lT,Fhˇt@mL=4U"Qحžx-m7VyDvq0B;1R%Ħɨ{J@ l1!Evu9'j-la2Æa ӰSs-mJiڼE;BMԊ-Kx 2KE&a%THJ9/Gp)K CO&V $b?^q"+ R3'Z"H?rŁf3+IE$P+>С3es )ԩ+cEfbwxam^τRd.)r^*U䇹BrI4$8a9)* -WP*9-G@f g$qVd[uU5ŮW:-i.!W((#V~BxQ8N@v:cWʴ䐁 \r[v}nwnSJ:M+8*٬[ytθ\n)'i݂ܙƭV|[awčH,(p$yVc 1'f$C犴?lhծ؂漭G];@T,- Gs' ױL('%A/s Ķ~"eLR}#zR%7!fg^E:2 V {Uo,mKAmz@~>u.@b*xyS~_5uy;zW endstream endobj 1214 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1216 0 obj << /Filter /FlateDecode /Length 485 >> stream xmM@ڃ/'L8c+ҭK" i`?~HBg$A‰d:MrBpGkՔagI&~LׁQ\..|H(̎ⷳ=&IzpyUtUES;!|=6^FÃT򸩩nb\IlAp&*;*k 差u&ύ=XaҮW7] U ̾֋|h۫ҀfcpqgZ,hG7[pi\ZEP  endstream endobj 1219 0 obj << /BBox [ 0 0 144.628754232 91.900748779 ] /Filter /FlateDecode /FormType 1 /Length 307 /Resources 1218 0 R /Subtype /Form /Type /XObject >> stream xڥN0 y vؖ$nަ@paN>ƦuU'v@xJ.. {O<> b\Q,wH!}UxW\h`0#bs0D [dO!КY]X/Pe37)E-Y1^ ɚInΘKXCy!ZL@cQR> stream IUDCOL+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularyFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1226 0 obj << /Filter /FlateDecode /Length 384 >> stream xڅR]k0}ﯸ{(X"fWE^mruM$ꃰįֲI=ܓLN-wAE+d:HZ("C6k8)I#`PjɡYp`'bōb삟V ;k?<ΘY,b.4&cxt d>P\58 Bx,ؽS LvjO%0NCGsEMYaDJ50s"#E1 |dt8DZFt4MhJeSTHo|OJ|z FQUtMb*KEr;jW^g8\ǐ Z)H{wf(.pB ];1_6jq endstream endobj 1230 0 obj << /Filter /FlateDecode /Length 2656 >> stream xeW[WwWsgv׳3;3ڰ3; ;k08($:D%H %HDmO(AZ~ Oԋy>F {ely0Z OLJlI(/f]rY}ossz]AǠ_t8/ygmX4 b%H){R VHg5Sa6\[:'' OB;S:6IJ! E= 4LYr PX,K$Zu]h֊A/PFH~qs7X(W=kh<0[G6 ?]?-=Tb&hLfLم0:I,ɂ9CRJnygM6}.VeqIAK8%7mLY.h(QPfճ5l] }ӳS.fk36 °MǤ.U-6DݵIcCtuCHASL(jZ'9Z y9|(mbİXRdAK5Ұ-kumb} 1Q˱u]WփS7 ї%Td6芳a7YnnTL\鷧]: l8oϥYA:${ʤHkk7ZY7dP:[WwÅ*/lh n,c~[I5czH(=#frb6ngGejpWP>TH,K<^y(@uitCO lT,Fhˇt@mL=4U"Qحžx-m7VyDvq0B;1R%Ħɨ{J@ l1!Evu9'j-la2Æa ӰSs-mJiڼE;BMԊ-Kx 2KE&a%THJ9/Gp)K CO&V $b?^q"+ R3'Z"H?rŁf3+IE$P+>С3es )ԩ+cEfbwxam^τRd.)r^*U䇹BrI4$8a9)* -WP*9-G@f g$qVd[uU5ŮW:-i.!W((#V~BxQ8N@v:cWʴ䐁 \r[v}nwnSJ:M+8*٬[ytθ\n)'i݂ܙƭV|[awčH,(p$yVc 1'f$C犴?lhծ؂漭G];@T,- Gs' ױL('%A/s Ķ~"eLR}#zR%7!fg^E:2 V {Uo,mKAmz@~>u.@b*xyS~_5uy;zW endstream endobj 1231 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1233 0 obj << /Filter /FlateDecode /Length 485 >> stream xmM@ڃ/'L8c+ҭK" i`?~HBg$A‰d:MrBpGkՔagI&~LׁQ\..|H(̎ⷳ=&IzpyUtUES;!|=6^FÃT򸩩nb\IlAp&*;*k 差u&ύ=XaҮW7] U ̾֋|h۫ҀfcpqgZ,hG7[pi\ZEP  endstream endobj 1236 0 obj << /BBox [ 0 0 144.628754232 67.239657315 ] /Filter /FlateDecode /FormType 1 /Length 307 /Resources 1235 0 R /Subtype /Form /Type /XObject >> stream xڥN0 yvĖ$nަ@paN>ƦuU'T_Q0dOiޥ%eܽ't51!J$Y[6B{/MVVQB4;( VoIԡ6l6䀧8h\]MqafnZ.1:B %!Ymi~f̥,<z -&X#lY;O[k[JHB:efD<6hK_%.˯۴ē*G1p\Tb_)ȝ5Qg\j;C|aWPhbp\ s endstream endobj 1242 0 obj << /Filter /FlateDecode /Length 2600 >> stream xZn+]$`s"%YbzĖbT9/\/{!`==bƷrD.Rb&aTHd,7HodsmB9N-( d kQg)ĠHIZ۱wJ+CH bt:uwͫM*{c#_>U:s}XJʗTL28Wd< ;bZ^2$9ڶ2Ә+cdQe=㢥˴[s /UPY8r%lݰܢ33j#4N*x/qM(;!!f69g6β#Nݽ.xfZeJ´P/4`s hx KE>p_Aa|+@kcB'⃌a8i .eS8‘ yҚv uŬ6t8a qyȉ0fANxnGNV@7`8Da/'Vp~%皓hI6,)dy:cqKL.X֗A:!3:'9v'q,L`ay%䮱|,$-Y-U>pǙ%_;z^nC^DbS7f,9"X?[2EF5Bp%.![Uxs/åGY@!74Dl"XoYYsgXXDi} 2͸y(~=R(iPlK Ca5=i!9fkz 7+WLTEE;'Π5f&"dž*flONN:MXS.F? n +S\ko&  A$>rcxCx$d?.>-̗rA΍7"=\EՐ]ac!?ܔB1{s65炞 K;9^ےqۡҰ87>{YX=[=|Vi(4W zK#PVuVeU=罤 NX#f?N=s>=PH5<"sB@MgPK4nqt0H2rpINqӆ~ВVr>slhNW=ge4q)fv\x<,rֶ!.Mסcez#M?ڨxt{|Dτ *=OK|.W@\Tiqzz{rƵؙFG ]B03&O>}hܪc.Jk| Zztb: N<9 z5F}pŢ"5}* <%|XԺ[f=MZKmR# zjMMR'gI7Rc'x==#5I" =<{ km( lSIxB$x`S0I簅)bp[ӟb}77d~3D@ul> stream xڵWˮ6 +%GEvEWE-I4 d G`˗x;paq`Ym{w2$Ӑ, 0߆O.JB@jA^"y)RH &g`(~9}U!R4A9FC7WN?o^Iu'W*bI$IqsLY 'b(#Ns `=DP00uD,tE 7B!$BBNґC 3팮x,~q^9S_LR9(qϱpFet$>'E1 "yvFr[|lzMw{,dYW{)%%ϟ7cIt^W$ ֌Aɾ 7)_ 6W'T^a(yai1[NJ-3XsJ!XƁE?_rpv/%xLŬ'5qȑW`wM 4\T=δD? (@|A%Mg'􅏍&|22^ %K^XBԔ=J¸:N^[ڟ5kΔ^M=-K=Y(OMu@Lc'Le6mqېNۆG;)՗K{I&]uaM< HUk}Ǫ.H+g>;gBz4qoAYܥM]9ߗi Ob=\~>ŇY\;duϨ3|=;;mv1Z ]GwoxčD|V0H^%:V<ʫ endstream endobj 1247 0 obj << /BBox [ 0 0 526.394626717 234.266231247 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍK @ @sl܆zVluMGJ(0'/UV`3U4jMw?tgp,U7Ec)<366B_+x,a7j*RG>c,ax"1j\&N 2`olOc 8K endstream endobj 1251 0 obj << /Filter /FlateDecode /Length 2470 >> stream xZˎ+ WF0hvYHV&zRIB$⛔?soW>9-.DC`c"p6.=~:wcϿ=¼%!Ӏ|A Qr)@>YB?ςˁ"\L^'^B d[͞;/\Rso±mu}: ' L6mPɏPA_~N`~ZmӗwrIbuLREEM)+U{DB<>.AxF;K^<2?LX\9 wnR'm(1UL;BE[> 04L\d/%M OY|` +`2O 8oZU{JM,S ' $T~*;̘xA. q\(jb0;3<۞( XdJNb\FFd,C [alp-1PBuy2KXgneF8$/õj;禜W5#*_ .X*5~*:.|+͂,`fßTׇ9p0 %zBӹKʊU!QiĺJ#8N1fK~O0je 䈜ÊMv*Y@4B8%kvPq"V#}MϴAjД̤97{#GNC؊q)%til`$ZDR+bKx*ԕUs΀؏hrPJR8̹|,reL}lrAIs7!q7o53›|'['`s֮!\ŶUa&ktN)U.ȷn^L 4VsۆH]q,!]X/Ieus鐁=Z #ߒo@Z=%{9}p7ZkHKnp/l':O6r`x$ue-jrW)ڙDh֩aYYE7XhUY f5&Lcv%|X zH@hS۱YU[BtUcM1Ars4+ΖF k6Zɱl ;Q⡪h㪁u7 J>YZnWNdO%1iK!]⛤iJѸhFs*;P{psmTR*+ ){ұXlqk#˵wkntPz} 4F#S[`g*nJ88|2uӪ[/a :ˍ¾U+k 8Q1Xp^7.}+Ϛ'4y!3oA֑bfח9uYKuGZDJ i&n_s^9khѨRIp.`VB˔(VQq]S. ժn2}5Oؖ/7'7O-=!`^!Dr}3Rls]mk-|'SPי< {Du]pKN0ֺܒ{ CC%G-ib*@Us7nov bV]B6:8\V ;}3mK`XМ4b[4@! ~F~X@y f$LgB#: z(hYuæ ;.O#@F'%nֻ nF SHէ6zF;S3d k9χ\GS?hcBǨ7)2aIL< a9 1Y3:%[FkI> stream xڍX Xڞ&=cu֊RwV-a d%9Id⠀,.j]Zkmuj[=K{M$s2w}HGGB"]zFRD~;8DPoz 0:n80A8R׏I,x,N B(J|2B'rk+AI$&Ϙrάٳ=7R(K߈5#t#ّQ GJ}.63m^ݑO|A%={ jpx:gl QbaƊ^O@rӖqiwVAUsmmvܶ A9=rm>%VTtYGy;@XMZeh~h[Uu\M.1buԉ H4<j;9>qBU ˫򀱤Y4cw8_ι!}7e X D'xN~Ba?5/p5ߝ+>=u'MuuMMuuM^c Za"?|lgPhbtLLet`|#=-Nz}._W.6R,a*Xj/_ ˚T< /eOC߃ mOQZ%mUEK7NġmM#YrE2%=>j;;8QnS? XQvvN{i$hpݭNVu2U;Ep~'_6}.+1y+<ౣIx k_DiDުOJCcRї7䭚.&xemG_d;{k][@Izʚ&rک̋?yo ,E?ɽm^ ȯɭ{rU2g/t]r~P3 {,^hon>K5#11~.)fQY$L dg(ocaubP=ER^2<Sѻ2_g"]xDXAFxiX"}Vnɑ14In߬U!cNmo'f< {O-])(&ڊ,U7E]7n!_$)]\>'KW$ .'Lz,E2XԷAEDKFJQ1rM'שd9qjY*q 4oWȱsu-"*XQ.m%ff-6"Hbݕ8&Sx@<^+r^hev]LW_0`ї~rGa4s(VUa젤U}^Pјx*jW#8dI1UxY'բ?~lYA=-U^Ns}3&pˎ&tl LGel)[nMU,6S`4]o[> [翸P%gZ#c#Rf[$o [$1|":pFI dmvjO~2!N!Uz`NWHC1;Q>he]4Yx <w^h R޼(imWi9)B 曹JX4ؙuj ),v ZZՠc?OuXr'/a6/齵iylJ T*7f`4Bc)`EԡO>G>UIQZ-?P.e"/V޵?П %:|ʹ@1x?t @%`dkO]WvA_E]bϮ3~Gј)W#8~foBj֜8vl.0n!. EXR"K ,20q]<zi`4Bti*0L> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1258 0 obj << /Filter /FlateDecode /Length 567 >> stream xڅ]0ًؤDXagMt 6-oTVYa`Ħ>ޫ, }QuVfoI{xi+ݼ+%VQV5?[W:k&驕KM1׈;)Dsۨc{J*ϷvYs2$Yf?m*}SUG -gEn-ސ&enCeE㲽Lfisas[h{/ЌMuv26\WRU>MhۖI!&*({K=4;|nڝk!On!U]&}X /ͧTiy3(?0v+ tH8Q<4B 9QQAOXATݩkTs*4G- s 9>DA~Ё/~_/A8B~D ( ~HG5Fp.~A_w''߈/$E=uhwҶ r { 2.o;ޞs/fiZY endstream endobj 1262 0 obj << /Filter /FlateDecode /Length 2326 >> stream xeW[l\ۙ93s׽x7{c'6+ [B!E@A-Iڇ *PJ}᭨}*VH}hTZEHǦHAxj];sgfofF9D:|!H4t>Af@ '=MA[Ю=S'zUhǞ_x ҏ~;|?tϝ_ dP(;z囟x4-DX!// /`K&W`p1ڭ5 hy&CKz S ['~; [^O{MwX@j)E FG&Bn3H!N)]I\ZYsmNX!hYʲp_Z>#85S;bRKJx)fA@Mȟf1&uc*gR*ᦟFaTJP̩;TnpxVF?~>C{Vr˜8h;%bdq*o҉nӕ_st|@Y>qGZ'b P3b3mRJodͮέtt ^Xe[8(]d}a`  6 ntG Ï`@ hqI2v%̈́CNR $_ -.~613 Q :I 5 LwTܞĺy'}\0ź<8+$V~ig;diij n.#vTпY2pA3CZ8&]1NKaƤU[KyblYt ZsXt''D_s+4]퉹m?SR!vV7~hP=}g @֓N2gߕ2-x`L&_g9ƣz΄D Zo,"JK~y, t|JJ>*7t /Uܧ]摼fQ)!|kd_c4wzx8/[(s9ۍ/H8B o (F(eO< jSM\M)g}Cz㑒v u)KK)j,$s\`Y!8)1aD2f*Ĝ*mr䀗r}"/TVPA9n"<<LȄ.݁g8$6ny@Ld|iA%)o6yoD|U؍O )rE(a]] x ǿUItv_Up1S%3.0E%k24*| \ iy? Emjz&q StSb!8P} fXfL>5OlΒҺ9QnpVi'VӾ370D57up ] 09t ?ed{zm׋$3en ڻ/c1.XE?@oݨ +7ۇycwǺ6Nʤ4Wv_Ԧ B"nBo{Tgfw͇,A8 ;yK=x}24A΁4@6G;"0ϯ}C/࿀ˣ@'}}[7SV endstream endobj 1263 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1265 0 obj << /Filter /FlateDecode /Length 463 >> stream xm͎0yEd$(&!jIA& !\_y}D}bmGLӨ. EC^e]d,LT\SQ\z(s)Zfmeeb$>E΃'ʶ O15 ,LXN#śn T[`xPvm;Rq f7%m;yae)0WMe}\֔x+-f\9+ks;_4Zͱme.wFmag?T۞.u<s9!K/9uUZ=MϤ V+MKE^bZ,Y3Mk"I4}* 3s>ٚR015#82UbE.(Q0;f"M&]kF7f> stream xڭV POA".S=w}ZvDC@y#@$$^$$!B! (gQNC{ֶ>gδtN׳ӻڛ۝ٝ~g2L&sMdT'^;z,:/'9w3REpFe."*j8l Z`0X99yOV10+>{Ν{DOyygg}Q`2,F aKA`RFXe,g`dKccU+L>AO,IH,r$x)(8h(R=q{ϳo{W@.ܤYxLx,ñjBLxzD(Z>|Z>j|7".11-;mO"3A3g@cqOƆ<8L?}bpBd,{_DF'ŧ,D= ˖)SUkVݦmmTzZ`H 6UZt6! 2a [ j96_q>6j00 4=ḷBrZXO]eSu*S *b p[ fh%>MZEͲy TҵyܜD,|ck0:V;:MڑNWXu~: chK/.5+Y&NC&1 mD/58eɍɌJF>gj'z6{~ŲsDNH/S^bcqա-R>_z9hǣG%-اm϶g/ 6ELdew` %|@TJ4ޅ0J!?qo C35:}{}k>'3ƒЪzPע35xp{Mavc tBF ΄ؤ > stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 1272 0 obj << /Filter /FlateDecode /Length 448 >> stream x}Q0)}6U)hU(ܪgeך^&%mtZ=8B?Loԟ }D` G? [j^稪 @3XA?N/NXTw;o~nҝcLO"\AVZv>hJ;/1R"ֹ+6MOR GAH^c<(:v`6`oeeM)F '[MZ] Z?q,IS"lp->4a[XG]?MeD%)YOwf<Fa54lhF4"Dk ђhД.߉DC̉bђ($ZDkrCF{R}?iPwkc56܏ 6v6so3h . endstream endobj 1275 0 obj << /BBox [ 0 0 467.716522027 77.675650515 ] /Filter /FlateDecode /FormType 1 /Length 643 /Resources 1274 0 R /Subtype /Form /Type /XObject >> stream xڥVˎ0 +UE% 'qm9/MCؑ43r2 @Bg6Xd.W3ƀ1g+An./6h8>]Jt(a4%X"[Eg(qpcp64cAh FyD9:ss 0V/ƮĠC` -GSO݈ ?ɱw&hQ;t sEEXy#-kHcd}j hP7u) @iO #gLKXkj$"$ۢ'  !a 岑]k6n9]J8K.KDϡJ@AE1:(ݲsF],ӌ)\]z pucӑc,.ljv@?Ocu ((` 7`Ɯ6eT1D7lO{̙dT\T()߸GcLjpJcDzA\zPʽ.טͿ;&e3@i&d@}oeyŬAn\u!Ft򼉑yvDwfYo1Q4 endstream endobj 1279 0 obj << /Filter /FlateDecode /Length 4630 /Subtype /CIDFontType0C >> stream xڍX TW.TD,'T-c{QM(qgٚdodl 444(nqI1M₣1͹\^Ϋ%9ݧ{_}_aoOd2 kyomH9x+U^"/Nq8^.N>8`:ʠ(t78*:FLdۭ/9L5qyΞ3gs;Qۃ"BU##9aOb1A8# 'b1C841`qğ%8b<1OL$^$&/)Tb1A$fɥKWWL4&eyowA&n% "k_ǩ!/n~oDڈ;'Gy˩QhEcvO ' V Cʭq;!PS}܋O~w(ML8悽1WR¸]lJffV6 ] @Є .h 4zASZ_@Ral |5KE[ƣr@vh%% wN`#DHēPIAmvFvQeYl\ݠ{u)ZG =7"҈5@yaVStOW޿p ߬"%jZ8*Y~+ES5e¼#'nStדסf.gPnp+E/q]z"D.,6SA;j+f75e檃z ;CB-g$&);$7"K&El"mP 6}rc5ۘ_T $Y!Ϙa3tC:^ Z~MCPnDofCVJaOI4H%v¤sƪֲ,-iźSg/oj5Ʋ"=O {ɭ]ya7>&N@MCSa5At)ܔ'[(z^J Lsl}ddlldd}lss}}3XVW\ InSQXR oD!'Gc ʾQJJ%( ,EzYeb=s{[OP4s`) Wo 6ZUv#czmAP"y(>< wHf~x;#ڪ֋3q Q躘k,+[D-0˚n]<4)2diWm GXԢ0aCRLN3zįD. T酷,K0w? /='8iQ6y{dg<5@5=aݿ4Č66\m)kѨwr ^jĻuZU:,T7n7Un/ߺ2&,w6=x;ַ}.ڨyK:aIj/K_{:p=p* 4gs@7B4,iǗQMzX g#X&L4 ;DEL0>񾑛8?Ѽ=5),U `Mr_ z䄆{5wchzo-|SA}6 DutiL˗mm'5,FP3SQ0DSU #+.*5[Xxnpl){O>~>P#{@j&đ~cǬCJ魯y/5ϱo]]pR@j9#4$W<9y@hˠs2]W`]e`B֭<RGcg6'?Lj"2$e+on՝oŹ^=4褸 `S]9/aOG纺ԁp mma48T\%OصTmH5~, 1HE WI1;ӽf,k#ƾψ2}˚GInۛ=w Aq_a jɀ7c4}]llsj;ŵv|i2&N֍Rt̨CjMt#ʣU̝şcyx`|3Ϋ7Wtrw<n16/r_Fp&lܞ.E?\7@FWDaCpۚ'o} !{g[١] Aa'=E K+빞z! moA+8n=b8(m\./KJU&L67L:,Gf2D6CELCF t=j!<1(SKZꝼ_ldvV%ƧGt?W2M|C.gAfn[#m(u1V\9c49W &u̩m.^nŴmE |I whʹ*CAEb]$:mݎ=S!KnT Wxr c) o27V_h<yϜ7;s0.q]]3kc|-AtٺLV]!ō呾~K>[s-&26iF'a?qmF)j+[$Y/.l޷? Ga6:Ou\"송`d u:g/wFy4 qDP k{>; L:MlB{PWgFvS@]R64KM'n=Ppd0[OGyMO# vpR):HR?xE> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1282 0 obj << /Filter /FlateDecode /Length 566 >> stream xڅ[0ًؤDO3.k݂MKM~ՅU 4I>|z+/xFE[ʛ%ea^mtT[_GU[հl5_NOT]:fbN_~m<6؞m.kN&?,{6 BY[˺7IٰiYѸlo1Y\_McQJ x̆fnẒMnmYl2R.F'ڭZI5{v\^ b8Re*kl?a㥹A7ƦN'h #P A#D>"G#; 8 ks3;ubjPE戤#As.A3GG$g'?t05_-Ab"q 8p  ʃ_[$S #_~D~ /_Lk0߈/Hz)^vmU;dZ]ea3LnǤYZ/ZY endstream endobj 1286 0 obj << /Filter /FlateDecode /Length 2197 >> stream xeV[lW>993s>{zwc'v:M/P&jK+hx@KEHBB~-fO z6ȧAwA'wo|^W};)>@)zBG:B^;ZfJ~KwLipn-E> bt=pN|$rzzJ8 KA`!IfoO hh*G3&j7Cc ߍփ, ] KMɼG:dz6ut]B`\G--sT#Y|>4A?}$sS U^>J?g2b iTE!:CiJ l0|s%OՈǫs5eVї,mO[:ԼK{)ݗCf}9.M7a+o{uLp p F-'bW"9Iq ,,j$3;v^º<Y-Igy)IK"Ml'H%n(fBWaYɉ 9U5{b.5RU H#*h7Z_L%$ g_pu8;[2X!uxhM&7[yIҡ R9^N+W`.5/D b+GXZĿWmQ/ Z kH[VHƿl4v~gmXHG_Uegm2ygWU+:X7t|bZ8"{kK-B$ap;[.Sc^܆6ww16ԴWtKۭE]骪\a)@r'-XY~;y,8!U Tӯ;A0Y6P.i}$ liyto_ȝjxQ X(!wX7UVLjWQݸ/#qI:5M8![NYcƔSpO&rD˶)3[DGdYX/V<!sh̻~涶4rOI%2<3pV}k @fm<1^ eđ6]x0&c/31%o ; |h?)(CI~Q'3 PFI 2:X0y;F[c?kS7+#=> stream xm͎0<"R`00 (įĢhڪ;oR`E>|}$$$>k3>hO ް{Yc6ꢯPt;D|m_UE4JE-8ť8<.u`~>]VVY/LFC]ZYҝJGgn WQPvXTA7%m;y/Kg̫i.Hрvp> stream xڭV POA".S=w}ZvDC@y#@$$^$$!B! (gQNC{ֶ>gδtN׳ӻڛ۝ٝ~g2L&sMdT'^;z,:/'9w3REpFe."*j8l Z`0X99yOV10+>{Ν{DOyygg}Q`2,F aKA`RFXe,g`dKccU+L>AO,IH,r$x)(8h(R=q{ϳo{W@.ܤYxLx,ñjBLxzD(Z>|Z>j|7".11-;mO"3A3g@cqOƆ<8L?}bpBd,{_DF'ŧ,D= ˖)SUkVݦmmTzZ`H 6UZt6! 2a [ j96_q>6j00 4=ḷBrZXO]eSu*S *b p[ fh%>MZEͲy TҵyܜD,|ck0:V;:MڑNWXu~: chK/.5+Y&NC&1 mD/58eɍɌJF>gj'z6{~ŲsDNH/S^bcqա-R>_z9hǣG%-اm϶g/ 6ELdew` %|@TJ4ޅ0J!?qo C35:}{}k>'3ƒЪzPע35xp{Mavc tBF ΄ؤ > stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 1296 0 obj << /Filter /FlateDecode /Length 448 >> stream x}Q0)}6U)hU(ܪgeך^&%mtZ=8B?Loԟ }D` G? [j^稪 @3XA?N/NXTw;o~nҝcLO"\AVZv>hJ;/1R"ֹ+6MOR GAH^c<(:v`6`oeeM)F '[MZ] Z?q,IS"lp->4a[XG]?MeD%)YOwf<Fa54lhF4"Dk ђhД.߉DC̉bђ($ZDkrCF{R}?iPwkc56܏ 6v6so3h . endstream endobj 1300 0 obj << /Length 531 /Subtype /CIDFontType0C >> stream CNGBBL+LMRoman10-BoldS  "zGm  &     $ %!&.C2.004LMRoman10LMRoman10-BoldBoldAdobeIdentityCNGBBL+LMRoman10-BoldӋ!$ r\wK}@{'˺#! -M1P|a|G@FeGED]a~wyAӕvwU`t'}v\hט܋=yuxvyu+C(EËΠƮ/HP^ To   ! & endstream endobj 1301 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1303 0 obj << /Filter /FlateDecode /Length 371 >> stream x}RMk@+@s0PA)BjvtAweՃ]B ͛7;{:+Wt ge(>l#i[h +8)ISl9N6\AEM"q>|O7>Gϲ̄OH%›Bcd[s|+}&X,K3\x@ p5?i3p cҮnLD.K֍1CM3%[#Ҷ 4 @l 68C 馭ftՃ%A%ú(L6cU`tWS釆`}ܣ_<ֲZ@[fap.p\_%Muo>@?חߧ endstream endobj 1306 0 obj << /BBox [ 0 0 467.716522027 77.675650515 ] /Filter /FlateDecode /FormType 1 /Length 624 /Resources 1305 0 R /Subtype /Form /Type /XObject >> stream xڥVM WJQJUjOKS~MLfCT{xR&dzLƨ_ʨ/}@Qh)DY0>;m%˓A룺1g+pE8q1:ksB[B8M 5 YQpvic@64cfh FyD::c#N[X` Zv R|\䍘KSJO{{5!4{L>v\Us4=9~$7\O 5"ǃD(*+"%(քnU1e>9F'89|;FJT(8TUnJ8hM՞&Kʹa&g,&8>uATyץ%cpإI6qߌ p-گ6LAf>m&_nolfN|7Y{pCGj!-V[? JrKqiLy؜G[t9k0kƧf5 Յ3Ge0^kX.ĩr삨龾 g8&=v޺?Re\3߻7yC𢌶iwC o:g#> stream xڍX TW.TD,'T-c{QM(qgٚdodl 444(nqI1M₣1͹\^Ϋ%9ݧ{_}_aoOd2 kyomH9x+U^"/Nq8^.N>8`:ʠ(t78*:FLdۭ/9L5qyΞ3gs;Qۃ"BU##9aOb1A8# 'b1C841`qğ%8b<1OL$^$&/)Tb1A$fɥKWWL4&eyowA&n% "k_ǩ!/n~oDڈ;'Gy˩QhEcvO ' V Cʭq;!PS}܋O~w(ML8悽1WR¸]lJffV6 ] @Є .h 4zASZ_@Ral |5KE[ƣr@vh%% wN`#DHēPIAmvFvQeYl\ݠ{u)ZG =7"҈5@yaVStOW޿p ߬"%jZ8*Y~+ES5e¼#'nStדסf.gPnp+E/q]z"D.,6SA;j+f75e檃z ;CB-g$&);$7"K&El"mP 6}rc5ۘ_T $Y!Ϙa3tC:^ Z~MCPnDofCVJaOI4H%v¤sƪֲ,-iźSg/oj5Ʋ"=O {ɭ]ya7>&N@MCSa5At)ܔ'[(z^J Lsl}ddlldd}lss}}3XVW\ InSQXR oD!'Gc ʾQJJ%( ,EzYeb=s{[OP4s`) Wo 6ZUv#czmAP"y(>< wHf~x;#ڪ֋3q Q躘k,+[D-0˚n]<4)2diWm GXԢ0aCRLN3zįD. T酷,K0w? /='8iQ6y{dg<5@5=aݿ4Č66\m)kѨwr ^jĻuZU:,T7n7Un/ߺ2&,w6=x;ַ}.ڨyK:aIj/K_{:p=p* 4gs@7B4,iǗQMzX g#X&L4 ;DEL0>񾑛8?Ѽ=5),U `Mr_ z䄆{5wchzo-|SA}6 DutiL˗mm'5,FP3SQ0DSU #+.*5[Xxnpl){O>~>P#{@j&đ~cǬCJ魯y/5ϱo]]pR@j9#4$W<9y@hˠs2]W`]e`B֭<RGcg6'?Lj"2$e+on՝oŹ^=4褸 `S]9/aOG纺ԁp mma48T\%OصTmH5~, 1HE WI1;ӽf,k#ƾψ2}˚GInۛ=w Aq_a jɀ7c4}]llsj;ŵv|i2&N֍Rt̨CjMt#ʣU̝şcyx`|3Ϋ7Wtrw<n16/r_Fp&lܞ.E?\7@FWDaCpۚ'o} !{g[١] Aa'=E K+빞z! moA+8n=b8(m\./KJU&L67L:,Gf2D6CELCF t=j!<1(SKZꝼ_ldvV%ƧGt?W2M|C.gAfn[#m(u1V\9c49W &u̩m.^nŴmE |I whʹ*CAEb]$:mݎ=S!KnT Wxr c) o27V_h<yϜ7;s0.q]]3kc|-AtٺLV]!ō呾~K>[s-&26iF'a?qmF)j+[$Y/.l޷? Ga6:Ou\"송`d u:g/wFy4 qDP k{>; L:MlB{PWgFvS@]R64KM'n=Ppd0[OGyMO# vpR):HR?xE> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1313 0 obj << /Filter /FlateDecode /Length 566 >> stream xڅ[0ًؤDO3.k݂MKM~ՅU 4I>|z+/xFE[ʛ%ea^mtT[_GU[հl5_NOT]:fbN_~m<6؞m.kN&?,{6 BY[˺7IٰiYѸlo1Y\_McQJ x̆fnẒMnmYl2R.F'ڭZI5{v\^ b8Re*kl?a㥹A7ƦN'h #P A#D>"G#; 8 ks3;ubjPE戤#As.A3GG$g'?t05_-Ab"q 8p  ʃ_[$S #_~D~ /_Lk0߈/Hz)^vmU;dZ]ea3LnǤYZ/ZY endstream endobj 1317 0 obj << /Filter /FlateDecode /Length 2197 >> stream xeV[lW>993s>{zwc'v:M/P&jK+hx@KEHBB~-fO z6ȧAwA'wo|^W};)>@)zBG:B^;ZfJ~KwLipn-E> bt=pN|$rzzJ8 KA`!IfoO hh*G3&j7Cc ߍփ, ] KMɼG:dz6ut]B`\G--sT#Y|>4A?}$sS U^>J?g2b iTE!:CiJ l0|s%OՈǫs5eVї,mO[:ԼK{)ݗCf}9.M7a+o{uLp p F-'bW"9Iq ,,j$3;v^º<Y-Igy)IK"Ml'H%n(fBWaYɉ 9U5{b.5RU H#*h7Z_L%$ g_pu8;[2X!uxhM&7[yIҡ R9^N+W`.5/D b+GXZĿWmQ/ Z kH[VHƿl4v~gmXHG_Uegm2ygWU+:X7t|bZ8"{kK-B$ap;[.Sc^܆6ww16ԴWtKۭE]骪\a)@r'-XY~;y,8!U Tӯ;A0Y6P.i}$ liyto_ȝjxQ X(!wX7UVLjWQݸ/#qI:5M8![NYcƔSpO&rD˶)3[DGdYX/V<!sh̻~涶4rOI%2<3pV}k @fm<1^ eđ6]x0&c/31%o ; |h?)(CI~Q'3 PFI 2:X0y;F[c?kS7+#=> stream xm͎0<"R`00 (įĢhڪ;oR`E>|}$$$>k3>hO ް{Yc6ꢯPt;D|m_UE4JE-8ť8<.u`~>]VVY/LFC]ZYҝJGgn WQPvXTA7%m;y/Kg̫i.Hрvp> stream xڭV POA".S=w}ZvDC@y#@$$^$$!B! (gQNC{ֶ>gδtN׳ӻڛ۝ٝ~g2L&sMdT'^;z,:/'9w3REpFe."*j8l Z`0X99yOV10+>{Ν{DOyygg}Q`2,F aKA`RFXe,g`dKccU+L>AO,IH,r$x)(8h(R=q{ϳo{W@.ܤYxLx,ñjBLxzD(Z>|Z>j|7".11-;mO"3A3g@cqOƆ<8L?}bpBd,{_DF'ŧ,D= ˖)SUkVݦmmTzZ`H 6UZt6! 2a [ j96_q>6j00 4=ḷBrZXO]eSu*S *b p[ fh%>MZEͲy TҵyܜD,|ck0:V;:MڑNWXu~: chK/.5+Y&NC&1 mD/58eɍɌJF>gj'z6{~ŲsDNH/S^bcqա-R>_z9hǣG%-اm϶g/ 6ELdew` %|@TJ4ޅ0J!?qo C35:}{}k>'3ƒЪzPע35xp{Mavc tBF ΄ؤ > stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 1327 0 obj << /Filter /FlateDecode /Length 448 >> stream x}Q0)}6U)hU(ܪgeך^&%mtZ=8B?Loԟ }D` G? [j^稪 @3XA?N/NXTw;o~nҝcLO"\AVZv>hJ;/1R"ֹ+6MOR GAH^c<(:v`6`oeeM)F '[MZ] Z?q,IS"lp->4a[XG]?MeD%)YOwf<Fa54lhF4"Dk ђhД.߉DC̉bђ($ZDkrCF{R}?iPwkc56܏ 6v6so3h . endstream endobj 1331 0 obj << /Length 531 /Subtype /CIDFontType0C >> stream CNGBBL+LMRoman10-BoldS  "zGm  &     $ %!&.C2.004LMRoman10LMRoman10-BoldBoldAdobeIdentityCNGBBL+LMRoman10-BoldӋ!$ r\wK}@{'˺#! -M1P|a|G@FeGED]a~wyAӕvwU`t'}v\hט܋=yuxvyu+C(EËΠƮ/HP^ To   ! & endstream endobj 1332 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1334 0 obj << /Filter /FlateDecode /Length 371 >> stream x}RMk@+@s0PA)BjvtAweՃ]B ͛7;{:+Wt ge(>l#i[h +8)ISl9N6\AEM"q>|O7>Gϲ̄OH%›Bcd[s|+}&X,K3\x@ p5?i3p cҮnLD.K֍1CM3%[#Ҷ 4 @l 68C 馭ftՃ%A%ú(L6cU`tWS釆`}ܣ_<ֲZ@[fap.p\_%Muo>@?חߧ endstream endobj 1337 0 obj << /BBox [ 0 0 467.716522027 77.675650515 ] /Filter /FlateDecode /FormType 1 /Length 598 /Resources 1336 0 R /Subtype /Form /Type /XObject >> stream xڥV1 +(a pUTP+ik@hHe;8q8^0 %g8X2k+3s{% f8mx}ә㬗D׸fBd Q?ç9$rEH@IMR6W]< endstream endobj 1340 0 obj << /Filter /FlateDecode /Length 1716 >> stream xYn6+%g 8~\]hWAqR$G뫠Q4癇߿{~t彳vh u]DBp,D"O֊>[p%-RkOǙp'gS20N'./;}۹BOjyYbW?_wy+N4^4ʜ36y)t:aH!"_Cb9: (/~hXÕѰaB[`G0^Ci C9 |Vy YȲaV'L]F([pbTBRm!I)x7 wHzD0콤qi'" ]NVkm#˥m`uCJ/i$L_@jkl✃2tH^ddb]\+igۢSY6aMLYldTgfm`?% ٱ#>AQ4糥2X^B|܄rn,|ύ R#z )uw[ &H8r9!ƕ3m䌰#Crqar+,r` qYI> gceH4q.πHQ-IK`=7|{l?cZzn԰h(+ZqcSTDk"f)=ec` &買^r]? ~9yڽL -ۑR7MѺ1($gR{1E/rk7]:Z:mkJ樼b<v]`BOhCcG`a3ȟij'oyF~&wlD1|[:C7ȃWb"(CKAڎ&*ݥԈe:Ch6w .PҨC<V0e8h!`Jn x qթ%Q'6Ql77L"О˸ifp?=3꜅Y,d4﹈'qKày8,"[_ E#{Wq+uA QzС pKʡL nҾJNRXahc4y lec8ˍZo#%# g5Ť(QJI~*i<JD%ĸHȽx˪)Ώ}d#2XS:/Yl>idBZȱsٻdPP-,f"Y"_g:+8&s"YqKrMu/t8?By js\-|> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\4K[ sƜ_߮2DAJ|!__%EˍMV̄foVј4НDVp,57CC` D%ʎa(S \dq(X$c,Uxql)H+^qf{,e{O*MJ endstream endobj 1342 0 obj << /BBox [ 0 0 526.394626717 216.787845141 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 170 >> stream xڍK @ @sl܆d/P\'ZjŖZ^tt.dB@&)c8 :GYU6 /hpk+n i{T>aH&^(w;vު@G&jawj!]Lֈ3I*˿ELK>``m-^XVsuхI" endstream endobj 1343 0 obj << /BBox [ 0 0 526.394626717 671.225929498 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍK @ @sl܆L: ZKR뛎ZQaO^뫤vɰ ٛU4fMw?tVp,57Cch (m,gx%zʄݘa`Yݱ`kհ|7yA_$"FKɛA헳i?![J endstream endobj 1346 0 obj << /Filter /FlateDecode /Length 2985 >> stream x\ˎ W#z`vAVEpaʚWe٦HHjs09/ooz2z3SLK,M@{{O!:k?~?φmÏ<ylAK c,8odAlspCq@aGcMsfʺ5Pirƻ uYqP Ț ~dž!?dP2X 'Pc?<{dQډAw e$:-L{~ Yg%T\Q]@V&Fd&#&y^{al1aKȻɋ.l'|7t)׳WW\CJ}RUZ&k4%"fCK7E3UֲcTQVQAzâ;5LTP~@O\VDf4EEnX嗚Q}DV+ennlG:[Gj9c4{OqԡCcaISd *YJrCPhT[z45(ylp|eE3f©M)E,iޚ k|=v4 ކ3N8=@]*VN:M23VV3s9b}-U[}Jqgz'.#Kv"8|.q:SJ`=tYSRЄA~ӂqW`-׃5JD8#&􊱒a.N0wFyV5-Tmj|Rnlb:h 4op*;!J`c_ὲu[XtMj{Eu 7nJXIbD7p<\iG8~r2Ks9ؿP>8e HMH#az2I'$k%3§Q q1]VJ?O_k?fQļt@bec22&a *5Y TR{ ىt6,8lp%^q|1f0m/L!ܧl5T!:Ͱct3YZ 3O{_vao!gcH*cq^U`f5-C*c}qῤ yQ<mveHc -lZ]Afe~BԦ|.u+09xrVB&.Q" w)-Qf84C<"^GFyUFbP痦CDdH"M,H/ca&P_M~6frBo7cp^-y7#`mKд/%ty_dtnp"[[dëX>g+{H27L%:|)ji)G⮬+Da,- D]ٮ9Z W*ls弧Vfkn / p\}\kוL#֑tⲹK>nPjF>\GӁ5UDZG`;808P<*hCkkXEpEOH^WҚ'Yznr"NWS[y2OV`1#{$%mRǣK֢:E#u{39<=l>K3l 3S6[p j"2hZn/w3<[;˾3h\U \q zu%9+˱7F-u)D@sFj%g̪3J2CEL7'q6?ʽ*PH8A1hlJ/kvиq7[d}kIW_e4LDsW֫ٗJ"vfr+rV!9T)rvWʈ@sY؎R &](s}FOJVf /Ӣ\Ow,_$R-ҡӘ[9l$B"qk>8@|;g1#)R@IM.DP2ǖmM{&<֧gq ?T}L_},-5wU|!ճOD![8}ݩĻE&&.aB˼BǤ0?јW0Tvw'" endstream endobj 1347 0 obj << /Filter /FlateDecode /Length 2282 >> stream x[Ɏ3)?ê h59HN? &="鑺5@}c[?78˖BtN°\x#1[}?6kM +vہZ՚/O@z p pNMedž2 RqKdTtlʟno~$D"JHh%C-cb mԳ0>C,0Ns8M@& ,8ƾA{B \3fsnBâ AIfNINn r@Y5˗9hvwЋ}@*m̒Az2g2dž{azBs1*(D8*Gz. T KG46@0/Ekn(mG?/b .@-P%QE[ʟ-b-%'CD3 - a5ETN,. c)9}d)Q%6ϙ,6<.13H'1mH6EEژJ>^"DKC9i-KV?Y W6FQaD*KL:]xAFHt!ZscX6оt6X:P+'\~=u`eU =1.j2G[T$H]#QyЙ Pd5LS^3n[zFi+qmimi МvUlMzruQA1ŗM[OM[䋚beQKFb1 ;X0@Ȏ>rna`2[-C=^+DB ȱkɧᓸ$)-kQ]Bbd򖄇҅J1z(.Y[='^4lI<Ur3CÚ$s֝$ҋטZK-}a6ZJC=b.O'=F\h{zXމww\&&S\>G.i?LZ/&>O'bAGK :/|ؒPc"`u'2bZQATkELa6P4"ߴSB*^-$-܉m }gutyω T٭j'V!V ul$6cfZ~Ь4_;_tAڵOqׇ~k8>kעX6^<9ޛoփfe#/ۻY[枥A%6""\eu0c]eE3+o$n]1!ND8y3*Pu0ߎiComMlAiWu HS}ClMWz ]gElh_Yz8*ƏXINJ,^9T300mэ?!lt+r@B~d3PfjI\y` W0t(H]pdbwd,t^0+;%9ʎ"/ףT2(¤TIb U+mG (y9nRt.o3)&c& _#] nIB:s*mm<6kh]cD5̰e(b^[ϢOod-(1$:;+ E 6v$d$PA-]rN)&sj4B3 ?&v0_)}_GtHWZ6Ύ@ TteT!6} yeR4 ]h.l`O㶡kg3aV8-wOӖAVXRLu˒w孔+OFCq:\a\_O|3_Fr &[T;L֣Eh= ץ_cf endstream endobj 1352 0 obj << /Filter /FlateDecode /Length 3381 /Subtype /CIDFontType0C >> stream xڍW TWBiZ('Ta1F Q&`4.nQMTVFDtɦ4Q+QG3 .1D+Fc23g>ݒ !-{|#\'<y&I.9E>J!F lPi%2DZ#-h)86o't; !AsCB%a%#9 kb1!Ԅ-!vPž&"^# ` 'b8K;HhJmXzZQ4:e+y\I됷d&PCxORO|vbfR pDhOkH9?qG6I~&O 9MqPϹL3; &']Z30fnݡ%=#CzoJ9 avVet~+:۸^|t%y`oǥ0,7*|GJWl$>B`_K-Ku232bd/ t}Zf:]d1YiaEcaH5ԎJVW~O.!ʽg\[ê^v)-1g!IM%-eGّCwpG) fk6PHkUx6 djUf~*=PU"\8Wءo;b~oVEC\D9*xM].9C=p1uy]X^w]ܝ5[4Ec;E[99&^Dbn4y)_6-.}zZ🷒Q/Sp)A1aB8/lųd 2q>rClY9=&)\wQ r8IN=?s &59/{=|0 WgoXďb|bG=ORf=欚YhY|޶#d\_??zzM^Hl,K({C'`aGc$m48j? ~N;Xu$g)] Low3ovgWej+6.,KpC³< y' ^YBQ9rҔ `nK%lXӴ$3N^:=``vd}%Ɗkzp=WA}`wz|Z\ _P/&L_d[Vs$N~c-~1R!vw|R3A@.nb،N1gЉfރōKyʚ( ϞwYz$OʥXMcʤy-kn;<1q4FU\aJּzq1?x?w?q'8l}J[\lWOӞ3yϺ}mI |"r3 #xIGba/Z-~,_nv=JI(l&KǞBl過}18U)-fo܀9OO>}}C~%M띑;RZ혋Yz&wcT0iId*m,:\X.-3goL﬘}N2cTQ^[I޹ %3[Gbk4PaMfqyUmAM{v],.ͻYVat̿ɤ"ѱi. kR*#NԷ5An Ja1̀A!0+ab2L驮`j[`fF!+9<ܝ lSaH,[_PJr*G1 2a{.9e܂_9VE \XA m%j~/MW|8 sT`ozRlYFcVh:Vr&)'7[mmyWGxq7w endstream endobj 1353 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1355 0 obj << /Filter /FlateDecode /Length 535 >> stream xڅK@; AiSݍ>tۨZTL%OU2/u\of"?H/xi+)-.ɤߥR+}y52RiJ΍m<bPo/x7˯??{_޶y+{[yjq&mgHo],4WĞ|/VJ,̸:cD1N"M+%]Zf:%dB-'bi),Su#:hYt yӃ|3ym50HÙ/BBVE2V[D՟dVTnt0B1ŘT65%n)\KhF|Fc5]3^, 4@뷴ĝ5Xb>ѝ9ǜ?_//NN5'u8P#GM쯵p|$ jי,fwaNй׹{1Y> stream x]VMG~]?;L;;3mzW%Y(&'flcd" H(Hqd%A""!'!1`zfޤW]Uޫ&\ sb\!`4(Kw]W^/ b^KϞ_A}#Ͽo_9^dKX*t(|1:8cwA ~kO74B xkx =eh8$>n5Q:,t 3|[(|5 g<˓hyDwRAI[ 'Zi>MdqL; 9t'/wcd+!Ӻ`*ӡiyqɫUCr?d9a).oLW,J_i(իZDp/ٔ\'qrj 7m. :Ä[I,>/dx Qȳq!,w#n7)lTs3I9UZ3Sӊ!yj <~;g,fA~R0 Lj[M'΄|q/7V J5")B^ʨbˡp-Cwb3jMER|L|6y^$LJ5*?/PC%^[یdn d@C:"*ZʁD"tGC/ǡYH(qv^ޑ >\SRf*Qq7)⒠UB2,Xp [~reeG]/ TtSz<0z/a aj/FT`kdKڐ:<>IA֨P3/^_ܾx/XJR.^.F1R35˹#Z3je.v5AyyK纵C)Œ ܁7 CKb@#c6ѢG |uN愿e'%o5)'wMUBY'(3D=\`=!xC8>|SAZ endstream endobj 1360 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1362 0 obj << /Filter /FlateDecode /Length 438 >> stream xmO@|ڃѝ@M8Nҥۉt&᷺?zѣoquD7xbjun#hD9ZVE tJLHrTE1K90>ow'D.eJA4=-E`u-|1F U9j뽀7; uoƞO1t_EI}FٵnLI%xo$}'5G-R)k0Xm8nP@ #!Tս}E)usy![rK`%VS7׎iu)QMGfvljżþͷ~OsC;Z-ͺ"rl)" ̱b;K:J F hŰɚ^Ǽ W~ endstream endobj 1365 0 obj << /BBox [ 0 0 467.716522027 54.528200522 ] /Filter /FlateDecode /FormType 1 /Length 456 /Resources 1364 0 R /Subtype /Form /Type /XObject >> stream xڥTn1 Wr(Qrk ͥ>~ϸ(aJ͈=9r]}:\'6An%$!Q?["7\8A67NϪ1K焆dȆbka5JakصFVJ9 Ez(Dtwi6$)dI&JF ա'pIR9xac^8Pc>^ƋEyf+ϫ& 4o,2O!%3g/M~TNi72}#r԰[z VxáIj[rʍZz+H9Q%'8N cmasc2V1T~}s{*={A}?u@*b># oݗsUr &\P ̙?BT^_ endstream endobj 1368 0 obj << /Filter /FlateDecode /Length 1979 >> stream xڵYɎWw4 e+Hv jd Y5_p'êa;O]?};mY> yO ѩòƷDd)}a:X$k8Ye}NZ WYO?d@aG=dqM.xjػ}wvޒ: (1)(>ῂdR^ӆ{ƎZCA80悛tT¿^!Z:{ѤG(yFJ$"v@AQ|GY>q;Ja&bEa(HYvz 'a?~z YM&xBQgKYFr|9BDLIfcUC͙16qশbe6 q>3,% e1eƾiY(3A@ݪ/򜋅ԏus9xrPG8q<&_&#T_+S80~>c}О6m똋Ȼ7&{;X,u~sEL7J d8N쑌_g¥;周:g_q^9װG~Cˈ`wmIr8,;\IQmS),)A1dH.\ʞ t樴T)Jܞ}_%&nOd+rQh]q&yc]iDgW?%g+WiD4]2d RէGWLFLxK2qɇSHS#gSh4PIqUxa@w| J>F &Nʼn 9-F〝 Rd07_"<}f\;\9m2AD܈?cф"ˍ1 #bEXƿ7i$yrƌ HUrxH_r}ob%+tJ~Ȉ><GHXR3 m/L#MR?N-K`h#,8/A9# R.T|oO,"Si_C 9|QvPr 0 ]>ңJGuʯo0wݳ5\OwT)Q; )tq[(ۡ_UXk?tJմ#No+ 2ѳMN(?Q+F6|Vω_-/]Vm_]º6S@.Rm{$Wet!Sm!۶rZ۞#S?)JUԔK\epE .kGw N;c^N4t"^jl]1ӹ32(JGiN#g 4bDWnf`0ݜ&\]gnxZl^XIG^e% ueʚ +]:ܚc~ũv#:O~hȑx-Sj bzbyPZ\٦H4-._žykxnꩾ:=+:?c;~mԜm{Evzq?v>:9]n!bHPH>cȿ!:j[4@MfV,Mi!>1l?,W +mUZEE]\MvuSɎ&ɜ)ƣq @$ ԑa0y0dY{#'uF(e7xgx/ХkNݝ'v}rR[e]o9sq]qa -4 f''~8oK=?Ea endstream endobj 1372 0 obj << /Filter /FlateDecode /Length 2956 >> stream x[K+ *C_YQdt$P\v\d`H("Iy?d?F&ls{]8kM(ٕtH ?y?"N9]q"DN80҈|ibCm~y/\^gRNd!`Rόb wl8gwdq/cgٯL hÈcz-HL H2B>La9\(aI]bmkz&m zo~:%iۈ'tWd=!*}1@E!숇M|L&i]rC.ʫL?e6Y# ЎDZђu"hG^EDÎ ҝ 0B, & W/X8{[V0WS4l%SlvӂrvFܴ\ ĂĵLFCiZqN9͖-=.-T[4 %+ O/maf-j`!xfxnK{NmߛM]2}xSLW3uJHY QyiG郱Qk^tV8Z!'OrfMv/Y&w4`Fda]LbrFӴRĥDln|F~  VLA@(dpiR4!r 04m.dX2 T,R,~GTvRG;uuBtp8pix,þw:ҩ['CW'mG}t/~βa9' y.) Pw,O]lbYUGNt*N2:IO̿݉3k"u)+]UtpC'U;rsQ-jT.OՑk*ZT5EI[絍i۟ $5|ёI9Y+RY)]8]5pN YԌJ:AK䠺#3{>cZ ;8(NIFdGl,py@qҭQqzH#k^>k?%Տm*w$e fj)viʪs'SṶ%A뗷 ;# o:}s]Λ``LWڽ'c F=rAFWw]UWGޔ1џeiՌWYPLD*#.36)Ve t-N$lwF;̶;& BВX@K\Mb-UxpIϦoM'" gOP:'3z3.S _4V04ya|H69cV|j6Q[6T#UkbJ?^`Q`l9癠k[@0X `.wC|yM$0]fLmJ$&e- ٚٱ 9qN!E8 a&*sIR/ S}va> ]Vd|]Gz8T>_^_'Qy%a{I' ,K$Ofo4LϼMf/!t#ߢ(Wp@^A[ya3[#TDBuט# WdsB6Hq@>[{uޤƲ;s7',ɲPBK.K.KK7\__%\Kx~o,9`yo, vcK. %Q;,Lkvgh~+ձ4BZpu\K!p)H >IC &]$ !&fjVjU|tX;KtRGO^ꙥf ~4 :+xap/1`3uqq~K=l#"dqµl/RLSۀV!]ǎ\RHrtQ! D5aܴvS!=M~~%m=wVBij{؋ZV V CE3'mƀy0W𚞫wg gcE҈eX ʥp=+GJrnMZ(,^ MڊSj܃&F878(E|wUr8+"ҀKQr <.~]vPpPU߉s9_UP;G=iRZoÏE+׏r$YJ )c6E3UfRT. B2Ӏ-_]o`St/{."̍%Ai-A$|dͳ8}<,eDA{͓Qpi}'sd _ s-G"A*>vQ.=Gb`sA흣\__{9%s~s`XGwQ. GrϴfODI}HdM3,E %/(ʪ&_P.7A8t+AkvrCO6 4Go{OI1'@J[9#{$nuH]QYY E endstream endobj 1374 0 obj << /BBox [ 0 0 528.084396039 109.511025549 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 270 >> stream xmQKJDA )qi?/ .SfDž7APJ*um SRø v~xysFanLޒ^bk~.n0V |7)\9I0Ts4NOhY-1(}֜`.ʰ vCd[Qjs)KjeJPN\c ¢Pcz6f)e( jYl)%;WL0U=ue Xr;q] endstream endobj 1375 0 obj << /BBox [ 0 0 528.146343302 76.243475395 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 261 >> stream xmQKNC1 ް18-RR\'ř!^za}[y<>agJ;<{X%.-X 4nMldkr3f+5 ѥ ݐ['*eT"\`Lkd-̹hl P 1]b͉Yw+ʦ] Eσ`xgػO endstream endobj 1381 0 obj << /Filter /FlateDecode /Length 2167 >> stream xZn+;<(1@v нzhtOER-Ey8ǯ;/חtz wx51y/qyD!&DS=8c^J"r)[p#u)k8 S{F9,(+.mtvs}}qlb5*T2筧:}DD5K{5Wiب 5Zt|+poKj\ a:7R䉘AglqʒۑY;:A kɑF 8*4o4:'b6R> 2\W(F=kwb%lɑQ-ǘdL $ύqp c)4"1,巗PS/cيd? q 'ɺcWt g¥E#bx#ʒ &8J$$XO$g'M*3Fի0}٢AL)RtB SJe +bh(4!&Oј}ptKtj1& Q *=I栍j29SLZ3Edtc@Uϻx5ۢ24x>FI#5wbt(woLSyX] ;:K,Bof/W;SC] ( *Ci#&%Ҥ Fmvڿ )%o*rQD5[rB' m|'#tk+5jy[v:#j Ų נ1 W@M@s1%G5\&< $33:;.=Xy ·Rhl =Iu{YhEiI.hvIS]2{MsA/)@8J=pӏnுQH(ьhX2}X}{jc_6|TcIp"󧆏>*"=|.G=Fw>w> Q|20PBsX3>V,Y H6vI(IW* {@^ꟴe^(\Kc W`<ܻA7/5@UKEu؀&\=E Dko{ ~1t(CPqy$}ucJcGQ tB;EЍeRI3 >bujLʂލwI}&U#B&yaqV+w\[x.nkYrTvs*w.6*܁Xx% gC}$iRCQ/wӢHg!y0-Fݖ49ÚERg`!rBkģ龶[7Ta WPES>.K]惻K )(#`o½2e`ys3bW"jdr卩ppS)~c xlԊ#3Uȕ#I~v|o@jAGwM}U#*svplQMހͶMjNUӀVR 1hf'>bOm̈~Ip}~vsgLE^5;x5 =.bGL&.ƪ?on*Bi)PrPiYPr>a1)ID^<2:ʐүw Cq.[ C%ա+ .pT]t\Ou-5oզh>yJԸ|߭BhNt|EfϜטc/G`7]4oW2/܊z2N0Az_t.S87zqnbLmrO?Xq0yrF;[P9so1Dcwk!g`dxûVý*e햇+N}bDgM.V:Nw*W9vHB.&N!&_q0EЧ~fXfI/5]>k|)Xw kXa-.lG~;lO,oPhۭS IJ5/_o&sI@w.HQ5ǁ1l=+j67ͻ:?!BĐ4N| endstream endobj 1384 0 obj << /BBox [ 0 0 529.356055539 94.837398695 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 270 >> stream xmQKNC1 ްopJH,jԪy$88T_/m5`P1XGEB1rjwp|z9qo>a@k׿$ x,m |Wpف#NmØjUFP -]bb2*<`i쎜:@;gJ-P" M-JH>+4Z@:vw'^ànؐ\{L0$4sDMaf,Ss" Je8[_^m{17$] endstream endobj 1391 0 obj << /Filter /FlateDecode /Length 2540 >> stream xZɎWZaUq.*@_˶j٭~ɽhb 5Qfg?ooǏ?#Ǜb^bynFޓ]~Yl9j} ")2f`}t3ZtpƜYfq7(#TF#fdipɀšl؝`\ǁ V>٘069hJ D#&ti)9 -1BPH_8;'ՒCXNwCép垡@jr7a..GKɩ vޏ|S]\S,Wą[Cu4^*jaDr[h@&qܜ~.c m'S<"8Dۢ5Cy< wZmu>bx sMc#WVʙr)7 )(śyTV%*<ǍǠȩ0|Pqx M\MsnɗYy(՗16&)D }Sz/\*ĉo|Z7ka=.^^X`,/{ s㰅(~l =Y5yӀ p<~DpO} E~8vykL<[[gu5dS͖BK%$뵴$xt v|d6?ߓJKD#{:jK Tw9W|'5) 4Wj,MHqV}{l jF 9\p=4!u|yޙܬ/~UuTPAt5=KX*j`rF.,la&)))c^WRj6%6itxgqB z|.Jw9sh@C"Bg!%1tn8'*LqM<1Ԋg$UzF ./KD3xD I|C5͘a;\rzKkg'c Ww*0 9e^M-erIĂ Sʎ'y=u!Kenq Ҝ`NBӱ i77czܓpmr@Y 6-JiU$N']gnW$ڂ|"fܬ&C@7ϗzi+B詧 d^=^ Hu pYrGYd eQGT(;(;'EI VTj&kک%m"`Ha+yZ8'4+$&^VK7Yd}}6]7 91[@E gfҡ'.ѭlNKu#2K"@ZA{3t8͉ݤ_2'D`ݏ5쮵/Am#8(ŢN.ZG:'gxd6iסB??+vEdo .%xA2+5=Atq2E=~ `{BM=Ot%Ş'=AF2:Rm .DVO/OK-禺m:"cgWT1XZ}9Ts8\Jxhrg O+93kn֝ ='֐( ZviO[&xrzf+xRDueG\O, )a*>e@\wyphL|G޼Me$m =R#9e[;!?:8_i[d/c4ʁkN' [>t݌,}'FnG]P{ a͖SX ֣fDzN [/GFbq÷T(8|J@kPpd`:W_ uTWc!A5C4xy͇`4Ra|v Re@Ŕ\2=< 4:_mc}=+*Nu X Deȏ*MeN&boV=6z!#H3?kiW/ 6!Z4[g\練кyø=}S.aQ0PP% p:=R>"V[I#9|F %ݞr U7[Ҩv9Y]hU[jaǹ(t>vK'z\=r_f endstream endobj 1393 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 210 /Subtype /Image /Type /XObject /Width 360 /Filter /FlateDecode /Length 95 >> stream x   9 endstream endobj 1394 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 210 /Length 26171 /SMask 1393 0 R /Subtype /Image /Type /XObject /Width 360 >> stream x^}%E A$ "|'?JA$(UD ~H JXwٜs9ggv9}vзfΝO=P]9=ct?vq( _"EKb;s֠8nVme"?hĬ掊 8YeX6l[s*VeXt=\)F:Tmj_/A@%\eh-O;v7q@Ǘ}5R\`c.CtAtg.T^,n]Iɴ AxI߃$Um0m.5kZa6\@׃րi*E_ SŮ:c༉q. zȚ}\'0-LAݨJNeq.؛zhS"b.c'We*cKi"a 7FPR}ssODg2cbM=Sw[l&8]LvZaM^*2eL,Jc.OXˊkVsy1:G7#Hv5n!F`| *ZvC~xm~-e@G˃LD WpSm"9\$ @Cj*b$K1I}L[ LUn*@ECmW}!nCoBQ;8 6ĆA:Te#Kv)|a Tl1{񄸾Z^R."W0%PW Й&c/,{"1 !#f{ ᳠5\* SsԐe1a;{ 'p}o.`me1QVyQC]e¾ʷ62xqŭ=Fϩఄ!o.:c6y 9:o tqPs|}IJx Q>N&c=eT$nyCE\I;1С };,}VgO>=o0I"?a &oiyC:aVet/s'q~f̖yԝMuᬆOttBo622cV` >2Ѭ@Sޗ,`@UOOª9ۦ0D 9ᠯ4 :ocABso+`ZJ#I9\} ˨ͲML{i!n̾ hRz`̪py0P2yT yaZ0ѡP;j^gܷC}N6-:U?݄ʏ/jlo)5M o~kMW|߫KvW؂(vT*ڲ槽9 1o suзF%ɤC£ӫl+\5٩^:o~czcE.[_]w6<4Zz{cWG= PR:d ե[ߖ|E&_..ݍ[;j~}7~-ށi`_ 2oƄl'_ }6t:wtR(|iuI஑N[tɘtOcUܵ܀P M 6HY.dEz.^?Ӵp-RHܵu *~ad2߶c=?Tɭz$wd 7w-7xMT,v0vAtY=c%?T;x PIz`Ki,3j EKI MfMz l;8HO[uOSIGM97I/|EaKbAgѿk=V??IWVVp'ύ= wygI([e|OӞ>SXXXQQa:0ib SmSl[5?ӴEfff@룾F^b{H@N ]awEn CZ?zC@ /]v=uiPݗ[x<7Ȳ[<9-iz5;< ~xȀT0=-L#o䎻GB!RAiI\)S˰ֲw= oWOչ4C*XE+⡐vo4bRc"w-AJcCFR$.=!0AQI8;nlt.bE=+(*ȥ;&l2#39J&tǼ,.T*9j/a,bqG=!>p#=gQQ]&59o4GpWjS!W+1&LI ݽ)?3t(.=*+*HJ.2Ң O߿@IQ1=rE9)T$;!˰ ;%ET*#ab,WsG=!1pJ]Bn ⍪5q[m!xk7mV0766f%7S5hjj-JI74zԗfj P qP_i{$.MT0~!b*[eGW{ )eXtǮ.eT ˰ YKqeQO R)e"QSJ)l׆iu* tjQPyQ{oʜ*"e빣Ve5.Cl408(Y ɺ'ёA.6#{ua#=PBnCk{ax*/x됦j:A2tYq-% TFWC C7t02LAEWN=MzH }mTJJ%t+T m. ;j< aNJa˰ {.A+ѿa9u"QE!IMw<.^x:uyҊWpXzu*K2La:\!^ B6R)︔W %T C\}A ogoH9O3xM20,8oQܡnTeŠM@&mQ0.7JƠryH_l)xðKJtbsmA(M!l0^5txwrY79EH:)uH9u(I2L5SY)^0Li,2,oEaږ却 ⍡f^'MY' a79#,C}Tpz@ S(@M –IkFaX7}Dx1QTk-K7A(IO!E`3"xc| L׈Dh nWM.,]PSV28l/I ԡ{/& byf{䍢=#QvM\Ԡ@A<A}>50)"p`5"9&Ye* :u#\)ZJ8.2<˹RO)LE!E.%#99Po+a uO MTOIbzj^@o)q ;JIfPJJ *udЬ.Z,Q M Oh,۪EB`+$f*HG71%Rͫ)59In[<׮m÷8!^jkVn\zg尶Pj6@ ]DLJ9%D2>R {۫C㣣Rb2cS RrW}r3ʌX ՘$!lnI 1iS_^ C%F0&sИq_ZUZ0$jU!ZvBCJ͊%k{$UНU`m <{UvB—m*g1Ҥe=і`@΅Bgᛋ%b/ʒPw319nI'V֬_܃^[-hw.ٽ8ao˙0d-09 )`Z  |hl{IGE`Gۅ\fѪfb{@;y X'[˓1?a-P -@`65{RY`^b C!e׋RAY}*7SظL6+/*i˰4ęXn ?H_fg|t ѡ>Epfݢڔy#'pxX$T1MVĈun0<xp5Vp:1Ə]zHsDUMEpLzjrԤq\e{#vņI N*Kmm9xq5[j%P\yLRq}W6N`E cdoF k"y :Z2 $E>HosF2& Ĝlj^!2i 7P}oCwiT{}n(:Bwc14Y˸>%&}mUhc^{_׿\/VD9s75]Ce2W_}5Î;^y|SO~p7x7@ /v\o"o6O{_~5Wؾ};Wx o ><ڵkIZFK裏**6C;]ZիW\r͚5x~`%xǯ<\vZ|9rh"\yU'?{恴4tfK]CCC]V믿< {m|k駟s:ꨢ"/M^y0~?M+|?> wt7JJJ.4B ah\޿K/go~_E=xP.\~r7N,/ zl[زLa G 1; @C뮻polܸFšk7bqBo}kxeLx_1SqBbVST?} s.؏c~yc9u(:8d#`P?y9`b;Vs1t}A1;;'FR[CK t/|#&@O;4: 'y(0ϟd(((3hEBPU`G"/+/u0$doe T=?Bg]>B. 0lov4#هTqo^IB88%&k~@oyjl tT 3S1@yt_ gBomÆ xe@]a; NRA0^a(Guo:hsLӠn 7f/oDх ORѹN9G`,X#,3fdd &Vm@LL POKnggve(89\)(C(Ha\Kgb2A ® 01 b8|5H卹sRWB[0;B6Fx˘TN:!`_.{ o t1z6mئg~}qǜvT`<j]j,Y$;;{os=tmй`6j#<[.p2<Ŭ7F]mu{SMwSԄƂH0M&&E~ugXh)T8V` ,30"oڶͯ)o:mB)^Mt7Įaݥ+W4coR08)$F@ ^W]uL=jhkÁ7EB3)l86NoEwqIh޼{ +vTg6cZȡ} o=g[mٻ:f҄_`8$cIϽ}wo[GB)UX$j% 駜@ǑҘխ)}U&>;~SG}Q9Y6xø2,v M^Pģ'."!/2y9Bgƫ/@Wx%P^4d3QQ9qߞ*OH/,^ŨY z벃 PD)5z 9x^w>?^s5  cmld*(>'x2toiF4Ąbw}TTa2i  #28~+0HsVu~돗o ھg˫ 8,5ID#j`0OAwwH!G\vxI mT)-&Gtqp41 Hq-{ۏso1?ui*cqW]}sPv~/+\2@h3ɚ沁{~ hsF;oݼ,n6Ƴtj~v%.//o!Nc8}J ~晇oiû/Mw-?4j>1ndLP(QK{e:reP+Ah Bg bLn,Ր %5{1 J='좰%;R}nec3sވڳ"1pMFĦ 1TB8ryPTF5&'ǭGm <ԏ^z>EBVy'2]|sIGk)C W^y=Gހχs*~FMW\  (,0&((j7=tz}uqM_xWO?rw]Wyc7PokxEK+/;T]_$ϗ4>ShH x _=W-uwC!<.b-!ABd8b9NX7jK2(>$YqrH緞)$)1!;˭]t chQ|G,oaBM{.#?bOwAqۭ6. ]E#Dh|¤8~LݟHCic=#\s [ }",Gݻy9Z<򜚢ʜ۫rcjSXfBavQyx{@\wχFf|x]X);N)QA?=//Eߞ_[}q1: L ĮꪓO:[VWXk+0F 84y#=x ~MZW4%`a//—Rc|B9=t +U-D&,m4ި.ޢ*v#T0'0xv/73NYgr򉿺ڨ ,e:ӿqQo|K.dƥv: &VA1p`Ї*\'߄b& g`$d\܂._W.xCb)'sx`<Ne|&[ UV'qs׿{橿O<s!H{1)LCCCptuuiw2E[LZj@Ÿ'd𧧖pGy/b tR`&~4RUm)bA]mLPGCBG)6 oTo@Ab V Rz ,\xBĪR%JPAH`^Iw m椂`!.C 0ca}.cRIe81"GIXEexKހ3@D,< xLsUe?CD裏y[aJH1D 0#un8 !0~ ./5w߭/Wk(TK Ӳ3)0пKZ0^mF@h;j tj ;T ORA\j{ƈg OpF:,HS̤2L='E@u]P&F]Z@e61<8Pii)8::KFY-/?A\xHQ@+ѿQMEx^c! \Pc^ hatǃ{? 59TP0eםPD/s@C0_%C{I\$C0DFFF,.yFIUDY%tԂ*6R +Yj酂JHT& `Kc IRAhv\,F~eRU;$ A/knn}ރYY2!TE6aF^qʀPcпQFVm ն@([Ow nP‚1A0ހVex0jjjlgLcPzH)U&DK-v8cO/fJcпQem6F^SbU0#}aT'>0B92ez%"j 9!XM :oXߘ=#mPmްYUVѽ0}exɨ & _[ (0Dsր08&8y3 m k  ^K/-"!d 3>+3۔Pg ܁p 8rZ7vѶ*fZq6;Z ˣ{uTgqR>v[#WM tT^l'y#Z7|g>EM'& jpoC<5TKx½Z'2.,6ՠ8oT6#`[lvEѼռa_f"=5M,SvƛuQ&7C)58ayҗ֋)d5o* P1?SvdWCImʕ|dt`:}mI]uxI' )c>z7C!٨ \5G5ϛ w +Kc_STW j>zhƫl9վ{j0[gŸ kИ}g eea痢P6+F j> ЈW#ՃV@~!aDp@,6uwǠL) * J١wtKv䍦"⍦") BMHn.zk7۪^Z bql *@y%9ڧy6*E2kl:sӂRWAqɥmiT EV-+MUxZ.Lѽ*7G(r&xs31vLݡmJ m̻ o5oW>\'K۫2 e٨{aԴ{A7 9{7}Me8LN%92O;TPy6QexBkY2JA؝oːV2q`Xj}8z oP6sQՐex}t~ռH7x_H6RbN%@Gl,2AKi"ݮE#VwS7Jf3q&}+VkK# ռapJ,L1? 9bx50i!q6)eԾ%Y2FU⩧db ³.W7z>tp "]RN7M"xRe[P =&(9CVnTݐV jgDBu).V)aLtOH/!J#FҨ| (0h ]-:31<o=mc#C#DOڝ0~GY&Z="ڪ`RاE6XG;GXHk{}Ug݇CB"Y!{2Y2;0yCeBR<-Lsw[)hF(cO.-b94t.OR)lCvk`VJq*^BP^H5-,59ZWj%R] `Łːt @&k'-i.k!̽w(1 兑DWn Bԕ&='t+.C$rht ;.B2| *PA lZeXeNkռ[ Z>r_!e ޥM^!)ІϢ8V}Ou7}[ qpy'`S eKaҔkho:xTC8eXv+/12O/=ʛ`+g;`Ӳ\'@Ͼ,M SɍF/V+OYqj.Ki*ert*#cj7]k"獁n۶,ߵwVC*lmF*.0Jyv]:kz7p7:\ME>Æ񊮮r&MEڰ"|V 7fIΰ7 ^EczۮwIxcPѵKݽzg/l׋ۢ8d_{o͛7Uo{-ܒ-T۵kכ6,_۾] q~qε^kWvZ-Uռau2^; ͺ `>js _3?tWwǵ#<_{w<3OM%ɯ=}'}sϡ|+_ȳ:W^IJJb ,!!{Y?<Ν; q Z tNo8OmJԣXŖK!=AOJ8ZSN>ߣزf +F@@U^|ų>Ned?00O?}⏏o7/0=n]/+~;1 lx0ޮ;~_ >\Swc=P[BC^[>6o?d|4\<, qїzQd^}ak _v~JXVV։'vE)--ӝ p OKK[0ރ+OΟ?Tq_veknnʌA{)/b7fXVC7]3ʱPî&u_C7yG1㏃ΝcLn-DSS[[ `7`n /@kkXʘ-UwzK0Gy_6G CSl`\egg?0nv'QGuG̤cǎ!>s/ k`>m~{4RwpBFY \^s˶e3þհyyyniiaZaԝ+tvck+xǰi)iC۝ж2%okC@Lxpr\DvFrYI!28WOM@wJٮi1/4T$l"8bÝduQS[9lW5{`=mNex=,Qj $y8p48r8mٛ o VBc+rs(M hU5ik3dÿѫ8W7}XvIAƺ/FT@{ ! \Y[srB jE &|Y| &1z`ӔEk|jgTBߡgaқ\Nֲd)kۊ "@0wJvbm.LJvL"QYVPPFcx)c M]5?h8. fSIFFА.-Aq1kT-K"/bcBT6MC `t'HLcY]DJ-r+)u7Ueh.B"!u߂W3°!fH܀F>=ccb9%7DGH؛5%poڻ+'CE82ee,2.'KaPAnHC3:@v<%w+QAH\'epYS\ mL`1w,Ps Y+D*shQk"@72#yC4zUeҖ@|V\BLfyMFpdi9ahvvuu7W$wDmt)'t)"AmpЅסR S@R ؎)I8޸3$DrsL*`9C+Mn&wbum'`ĝưeEtΡ6䆂G2K`dPATo'o@pZZۛ/ =&uy"AvQb^c<(Ǻdbx]\dش+MFeQ^C`*KXjm@騇.E4)Qn%!vPёub<3!AG.CRvђ  BjPsLFصRU`"~f6(s$%wT3eL[ՉR *hG۔='8ǰ፪ Y3¡J  ҤF:[/%XVr^)HT.֑}e5mJexY|"Yp6uB%Z{?k"ռASrҫzT39TڽF HVLdY2^\R)YYCd'}| :`obA _ wn=8 (XQ)| CtK2~a.RrqDri4{N SHQDj  S(K09M#Bd(xT`}oP4 abm>KePJ>l5oTٽr+Do$D/*9^njc먲a ^!rNӊoKk۲'iAAecXy.+5exBMUȺl.+S-OMq0KsJ[[[+'22o^Qk^/W73É7ډE_0cVFc*p`@\)?F8vG!.S~e7^s w'p.r/:|ɇŝ .ycַܹnqUWtItBkȂP p{y*?xCV j5ZlO &ɺb`_8wG+Wd1G-Z-+244aÆ~mA-ڵ>/?򕯜ηѯ+?ڋ/駟N5a}}&ͽKٿ}xoⰸCxx8q,KX`o~{I$''L7]R =ˆ𺻩dH FMq:ƌxW3m5oCiHZ R.DJwƏ}f+.O^p\7p2g N \tEm$0[:D+.>dh+2ֺ@Üsn'7V0h>Kp x[oJ~LeO1(}K,9vF-q~$?>묳`10iDΏO8ڶ#.o`ڽ_x>p?i ;>}{z<p xSO ]N,][n;yMNyc}͞ e8/O⍺ zVgyP pi_`# , L}^pK(L7ښ7jfç٤WMI)lϸloH\O?0{7F=mYݻvǵ0'lh%I(xeo0"߿;Gu?8)d T fN1U3x '@FzꩧG`9Sn'wC{zz/]:hPV0 ko$V{F,0Ahm&ޘq'K{ͼjCA`ޖ ;6a8ka3s ccc'tu: t_C tgf"7,, q4t,oR_@twq [p J7Z%&* vr~(Xj::DqV=+kFjp#,-3L97a6%"`dbС"9k_%b&%%%ab<< \QQqG: s='@{ 4AAA7d?ǯ<N;4Ks _ ͆sx!`zRc=/Sqc…g}6 0GN=T:0&={$A.,A$ިHp!LzvvaX_`K8VL`o&ˇg\rׂѽ={DB&^P.B ƃUUUJ/~  =pɲ8Ν묧ddd0a벤%Ae?}#) ODRHwkĮ^Ck!?pG=+ښAK+3]սTIuBN]Ew~ ¾F[n'rAp@&+!Gc~۾c_@9AMx7ԕPQ) GjBS*)/ ^PRp^i)#^58oE *3ò9 -k값Y!';e楼!m&Zw ¾pD j}_|;(Uj̠R>1؂dU S([[ BSYjpLy$'U,P6 0mOLf@(I&I B$d2 ^6 ntD$B] 3PmX ʤ-q' wWHe騖\C^Tf`F| +3} ;d511\&h0ږ0|p@xZ #ɺV=Y+&k*jDašyEUuU!˹ՠZ̸ofVDUw22Vl8M{8HYMFR6Hu?p!N=My.&)iUy—ǹ>Yd"Aviu>1 x0xc@O'IkN” 29%o1zN-.4/Z2LBHa,B*?.+I,-?sw]⵹z'(> ţ_)(/{6l2U&4]efL ĜyL4Lrǣql%06*uXuT߸u\Tj_Qqr""\MS }DmoH܂NGRݕ򘘟qmL>*>$ⅉHRq1@ fi߇vp+eILmLi`$þ#(QhG[> V}:84i',Yѕ?A`$)r0#1 <-Mc¾Dr>%m3Ay:od˹$cl-K2|~0 do,[6m MZ[V֜QꝔWsRO#%Gx洛~''?o?l??ɦÞ7ėy'J ?yc%?TC3+oXO$^RSRoy_WWG*Y2"˘ͅQTTTYYxߏ[,v\eq"51xrL1 Aa,njj9y,c^eq"'-xvr1;HF[[wxf{>G*K28LQO_(#˘hnnnmm2888>.oy6bxx/9s.JKݷ270EuQ*}$.c֢KsG c#42*7D*84:ChzZ𽤢Dmt0 xsI<k$2[Jk2o@SLϋ#Ů\ˏB $P5x$) &?p(!/4"DSQ ^fpw9UEQb|ޖ򩄓kw:PAnFi*L26~h!M%QZ/e!ԝ/+69Z˒;:F;% T4)8s‡v`Pok_[6GTa:ǐxAb8'4Ӎ#`AqDk-D[<5'&t/\R4-羉#8壖'lCv7|\;jCc#T2i h?te~Aӹ  A&n 1E]G*ʝ l }sX{(4IEߗsx"X(ڿm, DW2L11>F)#&>h'=euyFeТ+F0Lʢx+AB8F(08U^=6"eaU&m2D211Avc ǚo< ;`W# /9a^R37K=F*JXFGНz$)t|'{aX #_VZ\'x9KV0 4z)٣/QeB*C㎚z"4 hT oSAi60Fg[RJH} 1*!˰00 exr/vdNUr;*;j oH`M].P0 *Dx) $pWL@DyX9S2&T "1ZCv5hhC @wEБ%zڀD{j$¬FC vH); S`O2 *lڥ@r}wxG7 T. [%e̷Ϩ̌`zJI `7͡lNȼI'ۨePfUa6#u-!$ P2(eM)b$!Ljb$S7$V\)8 Rbo*%@أ S&F喙AYǧVRAveS>)7˺dL42LFjF۰TIz[f氯PTx%CkR⻊|*(%9(/3SZl1)@Eɬ^c!..?٥PW!y%Uv 7; ӴA`2 {/0$={aJ2<.; dan';SQc$%ۃ5=vWmW&/Ny-TxA 5]`RKBKq`ۑwa8@S>tNy7 `سVˎjPՌUºnX!8@cڃɶncQ&jP)m0 v5(C) qVc1Ԕm~6SEˣR5\)' u Jet4En4J$SmJbq沩Hibu5qPc`7QˠlRCGuzam#f`'P B.lpa 8.2Ԥ)em>Ve¾BZ SFJ]#\)ZW`:-Rm"0<)\{=R;5&RmOb3]r# 0]ywښ1FkXS-19^^MVTOC6wtcQmp*`BQPy09Jc֨"厬ARyښ1-jզ5>znz q.ߔ݋ E * }W^gb)uh-H,me>[r8 0) 6}e]x@i*0:Go!ދU)yőa_?,cW[c7e0} "Y%0ɭpPMFnC2 xGGn endstream endobj 1398 0 obj << /Filter /FlateDecode /Length 2316 >> stream xZn )Q?ehwȮ@:(nq?Όd;Jܜ%KH*nߍiom^D%+n30AbA6Q@)0?s6//O#x&^"49V!7Mi*{qAg\)798S$ lnLñH=p;͗b>+S~dvৃ$7Q*2wv#$v#;ػ<E,{0 Axxj'޸-q&T*CjbKf=PkMt>w0d3 瘦_U? Jܷ+|*p sƻy&jTUzʞRnCq [uSߣ8`Dr ]Z}E" ϥ[ | q0rCagVUyR J{dn V9\47*NdqSujIԸ šScz^/:]?n޹ԝk"`asG'Inw 80Xw륱x- xl>$~Wo@ֺRZ 3a,q+>Xއ!9f漇cה]LPkQ'Bma@NӪPEZj:Ț!+s'Ӽ͔v}gj˔ot9ePW>;P{,f4?ZrJ4HA (q:MqC# S`(- _~*uh%ef -~O=> dc:Gq{C@zk@P21W\V sY`mfP W蓫fdfB&biN+0A :ucmg>|>P7P{q߾u]_C(*v@BM:B: :űـͯ+ZL$ג,Ih,\.g[o] zXRg ZkJSPWTf%jC?Nrܵd7&'ж* -[2][,9s3%-"VE~㒑HX}iDNhq~[+eL{5ݐpm֖M x_%jmT9]ag4L&ݟk'T B 1vT i53a ǔ` ^ DF6l}8L.RN% d`$wϵa00?0in#Xcj_Nӂݢ#C㍁_rx2lP-2vG{&]`i:2-K,U2[ul(# H<ꕵ)b"cn H'C2ZKU}k HX9H\ VHQL-rSC8UI^}x.KqV5NQ|Ɣ=hwBJE*3]h[TF!{CK*!4q}ZYE% j(; Pl]UZ5FծQ{!J l mC8ϸUe$c3&ju~ؖޮl2B ȄGo'*'t,~+t'Fٹ d/srǺ˿`*3 Ql|䣤D{&g-m-}+-<-higxh!Ki6 u$\`AÀ~\hpo:|7gRpW>٘1iJ.4I4o?,A";W=/ endstream endobj 1399 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 170 /Subtype /Image /Type /XObject /Width 313 /Filter /FlateDecode /Length 74 >> stream x1 g_(x tH endstream endobj 1400 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1399 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 1401 0 obj << /Filter /FlateDecode /Length 2094 >> stream xZn+#`@xd Y]/r٭-EH___MI+??Ǘ函V{vծB&DgɆMo){G7m$>KzBV!Ѐi=J.o$0}`3IfpoP:[7P٥X׋M[l"z{ƾ~vob[/uSntx^n!nAe^z*472&^2Ԧ'xu;;Tsr0}\洱/GIĀ6Y P HJ 8c.&UP(HY㗍;iIwtJH4Lǵ!X6NA'X#KcAIyn5i-5C$2脕3h_ZloG|rSrOQaaSE Zc8p \Xrw衪+#WD5L=F nGK菱89oӀ'z )zMi'͊t7ԣRH_e&&Aq4Ÿ`Ң"ݝh, i04|:coѬ Hۧ`qcyQX^ hE#HcTQyо... `H]E?7^*}#ȕ罽dUʔ.֍2魒G ,K`k%$>A F-ҥ{H֋qu.-X;up3@jrfmQ5:Ԥ!M& :@䣽KH&Ɣ{ ܭHFr u29M.=#Q6%@s㣣KTI\/;UFHƶp >G\fĵ#!6mŻtmhzA^8:,=~TEE-ns= 2q@p(il=ݏs3_(kv'7pY4CY{7) t>e6ᰱtx'y:$RId*}A^1Q95X*`7XgX/험unZ4%]Eu#3Ӣ)EEWE=gwZai#?dgCƎSCƎ sCƾ!PPԠH4ԋ8ԑh^G8[:6)f)!Q2iOw} o`)HO31ǫ?h3a&dy)` endstream endobj 1410 0 obj << /Filter /FlateDecode /Length 2824 >> stream x[ɎW0 P.7}3|2`󂋤JY>Yd9ח_&{"s3'1lۿND!Rb%aH<"!1^^uSӀiWLsbN*__(SS rdx{^xц廛:%?`w~w|k{}?DNځL Ƶy{;xlzDu 98ao x#1aH|#qjҥ+G<$]SaJ!g+k79fF-\FJqF(tHEC`R*0@}cH>AA@'LƥAKk\KC UT#k#jJϮxzSe5TO72P#Ri`a#ْ]Db& r|˶̼#KfC"U5Wb@1Vmq f6in\ &հ :`dÀZ[Ұ8b/t;u!!G H~#n5=5^͟`&Ey^Tv,iL,A ĂosM^ 66}w%i|3 7 =NNA7&)^z&)5IBIjI&~g݌ [Z3G!N:&ƀpo|1n~,  ssi QW&XFy fg4^Uξ|ҾwN>0fWSo` dA_x{M^ќGF"--DAX` rU1ҠKkP( kik(kl{${FTխu^;:|SibSrT`!' `l\JiBȬ[5u6??K*Fcnmurm@1JA4ղbCPi^ڠ*MnݔW>1coJY 5F梁ܡ0d L՛XHm~p!tDRdB w],'m쐸6m#,䘿qM jcjX#FO'i#{R&8Ϛ{x%yX*_/J`pyUi$7T47Kzo* ga7qGKv:#*'Һ"}Kbaz07UYr"40a@~,:=\}V}*]PaH$fu"(+`O! V*,\fxkO| ԰B|5%E= B2.%' (&\ zh28H+ڃHZ1 ,$@iGƾ h̐\L+PUkar[Í@Oi4oHs2u ɹյ:AvYŗ`^})[sj̹Qz5*EN(=ZD!4KJ6#&DK ¬DoPsT*LPS'M &QNb R@N*B(r"t%mb:w&86R|4E4XzMU"JM nQV|HG܍DMNY3nؚip1PgȦkz`Ɏ$_YO\;܋ogfMN(u[r;jDk]_h:~D;N,o$U|R:J('_%]PDP+o 6R endstream endobj 1415 0 obj << /Filter /FlateDecode /Length 990 /Subtype /CIDFontType0C >> stream xmTkLW0fRKDRPV]`XEaQ %]*<["S4v51%)TK.?Kssɗ|i4a#22v;]nۉgH:I$~; W4pH U4Wb> !65F7^JݱqI_f߄3)*TH4HXĩ}PjACL+ʭº+Ы@(#Gugh/Ls|OfSB {dFMlBy=¾xxM`{U1y~ؐ?! ~SRNOk&naS++Yչ-cfb6Y1$!o 4\ohYƠˡ*U!Qʱ*S%WW*Nw'āyåredM}bY> iivfQI0FET75RZM7q&9g 3kVnkg ͉b>J#Nh77tvgKoX<⣟ endstream endobj 1416 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1418 0 obj << /Filter /FlateDecode /Length 399 >> stream x}Rj@}WL}HJE^j *k Aw/93s^{+T*ɼVk!i(ֈ YǰU<^ĂM kV3iW.<8?W;&"$LޘOL΁7:1 o]*R!|%w25^P |ႩJ%f x`p4^="K慺1:lCڍ5c_f B EU5G3m:I'0LglUs={Vՠa%U"ODJ",U`쑫tЯDy&3L0k͡C# :4t*6RSuOV[TJfZbKIs=ؠ endstream endobj 1422 0 obj << /Filter /FlateDecode /Length 1196 >> stream x]TMlTU>ϻL;3mgy[(t:aHDJBDhDc qc…&Fq%;7l5RvZu JfxsOrwϹ@@59| #oL_AL~_|ė\}ø~ 6KzGHJjahV1RGKR8''!J/}h),MIazkR+)Q)u0Ts3*R5E{sdnb3\Y+ MВv 5]2C!9CB"+H1dHyɢpQ -8/eio6f2;{eTmvRi'c.65-fx _逾qL)RhpDɑRoSڑlF>ɋG $VUĝ6VDOٲ6fI{"m4v/pU=Q{<IJ)/U˳̞W"-ba)ŭ {["3UpNf7 MhA8/PĽ>>٨BG5"_*ݽ ݛ~FR%U+S" N@}le帚e]wSQ©pX}XNCQ4 x(-s̉Vl9b@ vئ. [_"/{^ôm"/\|j,8Q*'TJXuqRa8S's-ER?AHyBRIhLpfL\Rծ-BgUKFm]75q'( I֬$m*0/_0n`ZM=*53- )EچbB[1 *F&9;(JϖxX_.l?^֙ endstream endobj 1423 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1425 0 obj << /Filter /FlateDecode /Length 390 >> stream xmRj@}WLVD7*&H_hn$B?Y,23̜9}`quB{sဩ5C{%VR,Qf[DSky|).}ɮ9ZE;́?e?6qK5PdWցM#T(9~u]J%_ZNZYH+Ap2,\c11[a˳8»4G-䅌xK O+i|^xnA(fc91DvJ;=%wӯVS$b#ygd;نN-%oEN3e}bWo^DEko\F^ᤌ9Tȑ'V]E˵&S[+6+ &0kx;4nt endstream endobj 1429 0 obj << /Filter /FlateDecode /Length 899 /Subtype /CIDFontType0C >> stream x}SmL[e}.Ҳ{C".q4"NCX"!2sKE7:p^0A(֐Čh [248-Qb99'>ɡ)ipuV?`mgSi 5D&^K%["*Oћ4gxswl(꧂\&6/Z/;MsޒmtGY JysWk W)b)e8 Vir0ajNf杫=؀9 `f]mlt=L(^Z}Xk$FyĜ#wYK"4GP8m*>9-%!1n9n(W\>R7 2a0kz#v}f}7`ύ0ցWi lV 2e偷kfw" |CKƵZuAHF@A(]6^91Pz]@ލ_A-%}ޟ'6&tߗ@3n%3MZMI^ ],KvAxW}'z7*G=u ˁOq61Npby/fx?i`OUP(G9(~4NRn|DD(x E 1lCL%yCpSqߔlD݁3KߝTq*wu7{cZz^\7C)pZTT⟇%0`anj$qH0ͳ;}eWS' C`\M MyzLj줪jx>W㚦ߍbyr?_i Z endstream endobj 1430 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1432 0 obj << /Filter /FlateDecode /Length 402 >> stream xڅRMk@+A1?[@~R1v! n6*]yvOAS+|&v{!i6 YMS0 \(txr6j{#y*#"M : @ߺK1GelL[nZ *p6[^YX1Ea.f3pf(邻U W> stream x1 g_(x tH endstream endobj 1434 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1435 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 1437 0 obj << /BBox [ 0 0 170.078726991 114.223517279 ] /Filter /FlateDecode /FormType 1 /Length 207 /Resources 1436 0 R /Subtype /Form /Type /XObject >> stream xڍˊ0 E @T]E~J< xW*P)JZKk,t"@$thI0KP Ck{8r ]p6},Nݪ{a P= F>rI)[! u j1\抮4vܪySsГC<~+ rZeбӲ]Ҿ! }| _',b endstream endobj 1441 0 obj << /Filter /FlateDecode /Length 1360 >> stream x]UIURoW{3ݓv2R$DD E$\*EA1ɋ'َ%z0 .'!{/ ?)F>F+cg探O|Z/|z [A?tν?8o_zu&܉_OWx':{ީ?8e^F zv`o\4IH.lX>qxfFsl/~7ujkWW8 !t`n=JLDJ L&e/,ʲQI!밐iY4\W ٥' Or۵)< FWa4/yۛ1eYC-&ᅫ"N> m쭸e&Kiʹ=gf-/TòYK3wgDx;`< Oa4V'%(1=Y UeIIt9$Nkg1ᶭndr\֮ 7c}Ol01P)ozV G+d#ON;<{oT"O!KUcݖ)'2 R+ck}O> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1444 0 obj << /Filter /FlateDecode /Length 397 >> stream xmR]k0}ﯸ{Cm9a~ASEZ ؤ탰~({NI:O~3Uh#NNgX7y&ӊ"XR]"] 4dzw~ڋhwxM(kȑ/DjnTԙPrTXIP9Gf9pw'! سp% l^@T]N54g9j!ă_jE^Xfz h'x0N _.])Y3Ա)Gz5+G_ > stream x}ToL[U}ƳoEi{萈dAc iKdY L^(edэk: l-=VkQ$[f [It';=bl'9~zݯ׽\ʶKjt5D$Nq I 7 R+ o2H>s/a6-D %2 e}aߡq;"W xݼ2 &SzA:h}soVFЄ? Y"֐8ڤ45w(c Л`H)dNzy|RK3AeiiO$q 3b%䚴,n',,͢&E|dƥs 嶊R. Kb]žDe.Ǘ=)~Ywt##MyTξ3 9߃E4EevkKaXVB'=xZEe\~U0vKYac.C4dy,+9.}݇7cSjWp!_Uzה endstream endobj 1449 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1451 0 obj << /Filter /FlateDecode /Length 406 >> stream xڅR]k0}W=5{"M'Beǚ\]&%m壭) zr=$ͧ{e^3Y(tfs&iW YUưQ04EmM +}Qh[,2E@-K> stream x1 g_(x tH endstream endobj 1453 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1454 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 1456 0 obj << /BBox [ 0 0 170.078726991 114.223517279 ] /Filter /FlateDecode /FormType 1 /Length 220 /Resources 1455 0 R /Subtype /Form /Type /XObject >> stream xڍj1 E{~`!.. $jaa#ca_@xM;g&bL kOUhm7IvĈXzI0WY4V4 F뱥 !٬f$YI.LN !I !A(T#ı \LwLTh;qSq=c}*BV&.YQ]mG@[О[9n endstream endobj 1460 0 obj << /Filter /FlateDecode /Length 2401 >> stream xڵZˎ S~Wp0@.ݵwEWՏ(Q'x2ER$;8zrOW w7qHH^)) rߜs䜸~*)rncKZN :pD GQp|.Y\&p݀wrT+14rDxHRF`Ahcۀ|;jwNtryHWv:ygݝ:c>?\啽>wz#vGAob ]ǝ`(wrr i*R:kV94CBMN(}X&GqP f;vx@V$Y!a'r`]+(O>P($PbpY?I8oR(y7Oec 2bZ|3oE7Z]ȄunKuiUZ%O<-ZÙtB)*R uPoC&;f2ƒl>|mgv" i@3ӚthSMfÔg (cҘ3% 17ip]K=-nG ۱97b3TR8ldIcF9MӀw]JJdg"6%~F% ,;#moqK,8xUE)B)OE ^EGT.: k8-":,})T, 7X/pCG,x3S;(/`JK;pq\p!a)D#99Y3b7kė]x3#ST.M'BُO&drRۃ%q!25wH&QAn6X |tw<5oN6bEme6CͥH jMo>%pK|hQD#H- "b$ȃu4jgᙌ%:2(%M([pe!f .)?LQ-!\ \ %z>A-X$pp5,e]җ` _x9OG9+4kل:IHR5HTEh¹/Fܹ MH5:쁗2T /-aت5|/A6,@9!s;^$QY%g_\EĒ!8z5£6~*"D?^ŧ#m]|Y"ʷBVđDI@H4e-8=l7K1'9ԣdd40{r%hqX-nFKg֙=NzKw3F`w6 q!Ah]QbG MO?ϵԕ'\;{')%BA fY" F9 1`{?1 2"盒8[7;N]t15{qS?][McJ2_:;>~lFc)/SYSz^}tdtyWpvs_jT-dzUZYihwaʍ[h;*c]+,}aEҪ]l_<[k]ҡ{bSPОЀھE9gbldI#-U{1rx}`ܤzHܪE k˿E^A'{T[MiDإ}BCYwP(GEF#^9.ӡ]F=bmٖbx߂ӀgKֳhdۂ,eC5v)rg0v7Lj\hd(+L!%R{CddX^Z0qE\ endstream endobj 1464 0 obj << /Filter /FlateDecode /Length 1360 >> stream x]UIURoW{3ݓv2R$DD E$\*EA1ɋ'َ%z0 .'!{/ ?)F>F+cg探O|Z/|z [A?tν?8o_zu&܉_OWx':{ީ?8e^F zv`o\4IH.lX>qxfFsl/~7ujkWW8 !t`n=JLDJ L&e/,ʲQI!밐iY4\W ٥' Or۵)< FWa4/yۛ1eYC-&ᅫ"N> m쭸e&Kiʹ=gf-/TòYK3wgDx;`< Oa4V'%(1=Y UeIIt9$Nkg1ᶭndr\֮ 7c}Ol01P)ozV G+d#ON;<{oT"O!KUcݖ)'2 R+ck}O> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1467 0 obj << /Filter /FlateDecode /Length 397 >> stream xmR]k0}ﯸ{Cm9a~ASEZ ؤ탰~({NI:O~3Uh#NNgX7y&ӊ"XR]"] 4dzw~ڋhwxM(kȑ/DjnTԙPrTXIP9Gf9pw'! سp% l^@T]N54g9j!ă_jE^Xfz h'x0N _.])Y3Ա)Gz5+G_ > stream x}ToL[U}ƳoEi{萈dAc iKdY L^(edэk: l-=VkQ$[f [It';=bl'9~zݯ׽\ʶKjt5D$Nq I 7 R+ o2H>s/a6-D %2 e}aߡq;"W xݼ2 &SzA:h}soVFЄ? Y"֐8ڤ45w(c Л`H)dNzy|RK3AeiiO$q 3b%䚴,n',,͢&E|dƥs 嶊R. Kb]žDe.Ǘ=)~Ywt##MyTξ3 9߃E4EevkKaXVB'=xZEe\~U0vKYac.C4dy,+9.}݇7cSjWp!_Uzה endstream endobj 1472 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1474 0 obj << /Filter /FlateDecode /Length 406 >> stream xڅR]k0}W=5{"M'Beǚ\]&%m壭) zr=$ͧ{e^3Y(tfs&iW YUưQ04EmM +}Qh[,2E@-K> stream x1 g_(x tH endstream endobj 1476 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1477 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 1479 0 obj << /BBox [ 0 0 170.078726991 114.223517279 ] /Filter /FlateDecode /FormType 1 /Length 206 /Resources 1478 0 R /Subtype /Form /Type /XObject >> stream xڍM 1 =E.01IӦBAwBwJ c8 0WH~QJp}`  dc,:g$K})ڱ%d!ZJXh|`q6puFk]bK3ЄX1 Gɫ ԣ#dl$L!S$CО¥”}^$ʕVw3U%u $Oo>k endstream endobj 1484 0 obj << /Filter /FlateDecode /Length 3587 >> stream x[ˎ# WLE.pٮ %]Ud5nC*][zPI])y?iqod~RS~DB vo1)&ۏoXA$;%A{l cdqp|NL#OcHy'l+rF+oMHvC-L)m-DM6ºS4Pm:1A:#8[ݚ,V^:(@jpi9,aRT| (w-#65nK9'{6guK μ(O1FJ3!`XTZ(%{+7uE: )2QxGz+]ڌS"zm}n^8s32kZ%fp8͝dP4[uۅhZ1FA=0슍,- Sva?xD6=Fq&֦ԥ X˲Cj\'t4ze:I z솤&G}:N\'upH>g։9c[k9ɲC˟H~ܐiJ66RYzd<2RNzlᝪq:4Etm9ufd=1,o"۸kɽ^u)Dԡmz7vzwc3vBT,eF43P̺;W"#4"Du\UMH|& +܈LHu nb7"Kcc%hR.=-e$O:sRfM{ >7)0M9eCzbxޱ'8z W)M$mo zr^23'1pOPlJ rhD&&_?Ov﷿ 5A?#ε[GAl^E*_Q ܪE>]?t_!vP;GΥsuףxrf~k{'bP}X±.U! iں+{`"c}xZב(d-1]C|䐶;-Ub`A91! EBazۇ㌬vH`_;3(/? %pnKɯepbT;&클$(0b/X~]g4߼/džGEhG"գOiY ifLxǬ>k%oj6@d< -FB .x: C`8p `fb} گtg+6g$5>{WFZa~l(6:xT2YHoĺiuIȜ/%)rMM+s5պϽm]/Z"$Y N aYƲkqzJ\J Os#y$O=Q2HmˠH! ;/5wuw7GOE9'{+?>s U?3qLXJpT} s/ bXg9Wα4ŻK*DfvZFD{3$H7 FB g"R%%FY@le3dXBBnJH4H'ps7%zK)"THw>Hw"ͿHJQCyV Cq{.d@_K/KF.B"tTl6l ˈ镎xN="DyizhP>9ĽǺR!#-l.iQ +wINc!ʕTdlKyvf:ueAea]fQ6T:`͎:rV&'z{䡷ϰ[6%fȳ.]'54NķEe&^'0[ Qɧ \ &,g_}&m'ѣtro!wjv^*;E l#RȠ0]YV7>amlU]fn+:nu2)B&^*_XĞ|{FSndv z|[!n򥫱bx@{-z\'Y'„rtxѢ^Ͻ>/$vU!\OçV`avS(uGH*"~} DM6OvU_o/muqjks!ڼ$֯~Mku|VkڠEfm·zHD T%R)(Lwe\$D%'5 +iA#ͽtG' lmdJN ;!a?JҮgIJi(IVg0J w&>O=_zd 4Std߃4JALQQ銳}AA ' ŠNN 9HPι{H"qs݊4ocn^G-M)3s}xAɠ~-,E2˓V1hߒzW#~$j ac͖=VH7ZX̎~4/,B|" Z@$2D($SCſ+2Xր{œaôd-؁ۧ;6>Ƚg; }3eԳSxi(E=:ݺ0ˇqKeTZط}x endstream endobj 1490 0 obj << /Filter /FlateDecode /Length 1787 >> stream xeVMG~]U]??3;3ٙq֎IJ㘐%%6mEv!d!@"rKH#D2'HpHLr 3UҫWj}}U /s|)|et(?7(sWP'wq~_>ܳqQq陯2ꋨp_kn]_xuku ZWPyԕ՛@abP7oܿC`c}6lh"X?~s6;ïi5 :CI;mg8@ 8<pe&d0,2aJEy(Fe%b0iS]bBL)}yt߫uJǭKFQsIZ5 O0NU=圍jh,vԮ8r|rܮaILu_u_l߇[~Va! rxT0߆&KlQmwNk>!OD R:v)m6 vT421{1e;YI-&_,dqj(cߌQi_WLYX8h/h ;iɚYKkL9 mL8I.OEqVGe B Wf"qMmJ^n03ut'zZU$HȪ#{Ztn?~ӽe2MgპΎ>tIGLS*Έ{>d噙Uf.pMqx5$VG?ښu.SYG6'؜<*'rw`pnYEpq@rQH1RMЉ n'tb^U$xb+J:h*̑dtєp,f<*/#5ßFr;pauRzx]K 1Fw5&}#֜`A{&֣Xp˩ O:v;c '[KX'oX' ZЁ.v]X/؝d0 Tlvj{!b ꓺS@cQZ\pBogAQ㯡)oޫ xk|Ek0a3~E>SMO endstream endobj 1491 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1493 0 obj << /Filter /FlateDecode /Length 422 >> stream xmRMk0W;kIݤ@0ڔwuM*%#ۇ@|W#gwf5ig b_Ko0Xi-@)pLVȉFc&=Q+wooSY%g>fߋzCSI gQaR^ pR   JUE/f͹5>4R)o~6eyBk .6/A`H)d}myv.'쏦Vex(B6نJd?xVa:-,7јuhLq:ZtPĢCeܔGBӵM.O:4x3~j 1m/M&%^^H垳E/Om endstream endobj 1497 0 obj << /Filter /FlateDecode /Length 964 /Subtype /CIDFontType0C >> stream x}ToL[U}ƳoEi{萈dAc iKdY L^(edэk: l-=VkQ$[f [It';=bl'9~zݯ׽\ʶKjt5D$Nq I 7 R+ o2H>s/a6-D %2 e}aߡq;"W xݼ2 &SzA:h}soVFЄ? Y"֐8ڤ45w(c Л`H)dNzy|RK3AeiiO$q 3b%䚴,n',,͢&E|dƥs 嶊R. Kb]žDe.Ǘ=)~Ywt##MyTξ3 9߃E4EevkKaXVB'=xZEe\~U0vKYac.C4dy,+9.}݇7cSjWp!_Uzה endstream endobj 1498 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1500 0 obj << /Filter /FlateDecode /Length 406 >> stream xڅR]k0}W=5{"M'Beǚ\]&%m壭) zr=$ͧ{e^3Y(tfs&iW YUưQ04EmM +}Qh[,2E@-K> stream x1 g_(x tH endstream endobj 1502 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1503 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 1505 0 obj << /BBox [ 0 0 283.464565253 146.761457887 ] /Filter /FlateDecode /FormType 1 /Length 266 /Resources 1504 0 R /Subtype /Form /Type /XObject >> stream xڍJCA y$d@ ?N;q%誈1WKZ.n;3Cf*{& #='dnћWrEDWR@DPr kC TiMg{VAK oU*7O{C;~H * 9kudvs~RX{[xaI0XQX)3?eXSqa?tSљ~_fUchO<굧@{N endstream endobj 1506 0 obj << /BBox [ 0 0 358.761380054 219.221103236 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 272 >> stream xmQN1 +|Xvl*!qj[J9xqAUƓC@5<onIp*LKr> stream xmTkLW +0BhQ1MM$Z%T -jGtcs5kX*]Fj=PP]64}k9T}cDfgѳMʃ|Ey{`SɁ9㕻l[IGTWxqgO{Hp!),~x J{Ckhc;C+żWF@YJ]cQzt~ӈϓc9:>Ǿ#n& 7BWACWãvg ;(l%A깂* g% 9i7T_;nİH _/)8a@5T^a (z#o$alNªT[%M6e5Z:1M3;h^3` "L n5g_onTZ:j*Uh?%L=̎9늰;r`toazWe70> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1053 0 obj << /First 2701 /N 255 /Type /ObjStm /Filter /FlateDecode /Length 4779 >> stream x]nIv+%#xu ֣-zAI5z(R(6 ϹYE̬$$@d037N{#nDw14.j}e 5A2 0PP%m$Db#RjT<IGLC51\YD 17gڕ[B,JAXgl %T)s)!Fq54+Kl!S\ЈTA<"RTo*CYI$iD}h$(!"·Q>6 $BByY/CS3A W6Cѳ^BrFQ"zrPҖ2 X ^sg"244)zNI!N((ek/Вre~16 BIY<\#st28r ,1bL) ()Gz$]K"R}qMQDKL̥(B&]d_\rdUbSVouA:,IQt!=CȥpD& !,w J !J7g+C uce[=e[|U  RYa鑹 ) mđ2#~dAƪVɂ̡g"DKiQqVrÊH)V$SO AN T=Fgf >zE@i[+H1$)Y V&㠌ѱ;&k gJ>LF<`2B)EŠWH ;!A)GɓA ̜60rQ `&eP|QTOwuĠQ5 Kb 5QBqVk BhWc6t rwZ 8 #!h:B7#Eԍ@ !#=:aEdO Յ029PK,Pw0UƜUED Q283 '*TC``PCJo0(Mꅙeˁ0dP5|Z 2NVjwoBJd ȢDS1E ᩀhSpT -LgҍEQ(_E*gd~f0RA JtA(%C}QQ8PJz )3`6j b⢈dAu%vAk!L@{# fc~2h-&R&٠3=B ږM)!͸QY"HP_QYF2I\Fؒ(G0ס"=#!h Yu J2:%vJ)jA'r^Y! Eͯ9DVW5,S$HJ"4 tw]ӻYw`ޭg]F'_XGi^4/ȮmP͵`)Ê⮩5RoSrmm"< muARV SǝV;7N>~2o/7̎>}9{yGt-'Cbg'ʮ 0_] Lq6ъl0Tp*\2I `CO[آPR Fho[* g!fI]|w.>yGXf7të ͟O{wfݻV=>:uvCto)~>qpfyٽ~t<>~ݍdz7GogH`vzd;3뺋ޝ#;QO\\?̘y5}ΓOP轣?7Lh88z|s5sp7'?5|}҆wgo)>U&]XBYĖi`c7ey]]G_ KWǯَE;n|TE-8:@' RV0k+(j2^$)VT `sU|z'o|<::%Nv xz"t4{Yڜ+TTΫ{Aڐrea,aX/^DT{YGa 0:/Ťn\'GѮO0V3. _ SCPd _Qtg*73:4#w7zCh:L!dK)S-:)cJĘ`LwƘ3yTĘ3 ,2%ØZ.M}D6u7 N{:.H}C kΗ;ːwox |29HN-p^ppur'˾K4~ ¯sI֛}ai']If9L6)eIfiYfIUK*u㺺WZCWm人=xQq\Ҹ)=J}O6稓9s9GbQ9.9GbQsieyQ^*Mpi .iuLLw#37r2-ׯuFh<<2@Y桒 4%an@y 4#hSh!@ō'P_ t:@%'0~EIX4I.";, Xʓ %JGa҂Բyi/YF 9*8:bVWxb16ǘҙڜ] һBjbwCP\@;?,1+](p KlH =|~Wzt'VhGw~a4j{dyh³`%3j11X*:?/V-AG>R"M65/Amz/x- /~޳NYeNaRw}M^s 0)QU&EbX3&EĤD ReRweHTĐՐ+|P^u:XFwݗ-uvLo?֭u[LJ=qM?/ha AGmXP^Ȍ_7bN= f{BjwdCT95dؙLt&s!*[ɔ3Waϣ Q!hCT+c$t CTBj-C(/ Q a ]6D%|Ƞ"!*a|I7bgzjHn}^l%z~&e[1LaF5+\WΚss".Me{ҩf.zCUI;f4JNaN2qglve^G5Ak8~ _Ҥ1Ѻb3LSkzb+iKc?:xφ43^oy e9 r\+<s[k۝V7I!ͷ)j-'֜贄,3y]gwyxz_?oۿˆ#smoY.ݷ!)[Ƥʣ*"[Lǩjwi,޴1$YS镓_Lf5jUF:~߂6U&xQ~h7>Ϸ'_cWl“!POݍ7N gG8<8}ß||iĩ/Rbo?W "az=W;G(A<_4 nSq6:W!.p ^_F,Hgz瓆gvyvA; oa= l{i?rNT-R j0ZmHُ'4M~>*윚;|sF͵DV 6)ll{/pT&_~i.<򟨠Ͻɕ<&ב, "Kd)tUuWde -/@:n hN[:U{nK82 G>}!fyDXNa?wF3eިvwhj0WήF0n_<6M7]6q6M6MMӾk4M:by֯3ZimĔq$~kMm#s.\쌽x%yRu jE3̾DTKsephg[LEa4۪bƂaXj.7?a_ oxuZt߂0^'O?x:)tZ-_N>N}ѹIuZYmUuZ\nXim;]ܱSO endstream endobj 1514 0 obj << /Filter /FlateDecode /Length 405 >> stream x}R]k0}ﯸ{kZ7݆NV kru}㗏V+ zr=$e~ Y)d^3PKD/Vn$&=MN=W V;i'.n3;??_ldcyf>1=;^5?րUx7 #L.`<{aLgv(1KQ֛M-JuAR '֌mg4@j a:euN`J=v%D8a}PɰS*%1fz5.QVS:W<Fa[Y4xvС=:94p̺6:P[=q\`(J)m >\ϾQO endstream endobj 1517 0 obj << /BBox [ 0 0 251.428906736 115.111468589 ] /Filter /FlateDecode /FormType 1 /Length 235 /Resources 1516 0 R /Subtype /Form /Type /XObject >> stream xڭNC1 <_c?q$ !U@p&^+@jw8J,'} G\ %́j vMFhˌmNj"]jUPgE>Y0r6 !9 P`L!"NՔ4e)_].V[TDlػQh4_NT endstream endobj 1522 0 obj << /Filter /FlateDecode /Length 1563 >> stream xYn6+a9/>€%Ek]UvHَͫ:BQH: ?I/ޥx@CLdW6(]"ate κHA;2s|{Cm(5Tr>[32ڦK)PL &1@m/r "yu8܃E&d#8Y__wn+Ej$n:3v{Ϛϣc'x|Q}{>V<}çƸ{e.~w{T^O tSHQ\:5;IS-JWD9E[Ʃ(C IUZQ(9xPBMwl]x8saTBD&D?;|NVfIX/Q2O|RL.tAq0:{ҒPhq=->|fh6ⴉJo,U}ɍTB)Q+)Ai'uP1F*DP3OinßmJM!9d_WVy| I3 C[zݕs߫*…7f!߲}#C (wp"BQߟYTG2h?=O1*?j-(ba3Y ԜxeQZtyd?bHӱ8H Oe3ܳXW[M$ߵɓ)Wrp,FD}FRR.~}(2MJo߃w1gbo1%L!sqO/giu-:,w t$.`ZQHxK;fv,,.] 35UFt̂D!K!Y绞t+JVKJ]eA‚ΉMubNDI$haZӤxyb{pyeq}g orq}!\?R@RV(۞O endstream endobj 1527 0 obj << /Filter /FlateDecode /Length 1108 /Subtype /CIDFontType0C >> stream xmTkLW +0BhQ1MM$Z%T -jGtcs5kX*]Fj=PP]64}k9T}cDfgѳMʃ|Ey{`SɁ9㕻l[IGTWxqgO{Hp!),~x J{Ckhc;C+żWF@YJ]cQzt~ӈϓc9:>Ǿ#n& 7BWACWãvg ;(l%A깂* g% 9i7T_;nİH _/)8a@5T^a (z#o$alNªT[%M6e5Z:1M3;h^3` "L n5g_onTZ:j*Uh?%L=̎9늰;r`toazWe70> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1530 0 obj << /Filter /FlateDecode /Length 405 >> stream x}R]k0}ﯸ{kZ7݆NV kru}㗏V+ zr=$e~ Y)d^3PKD/Vn$&=MN=W V;i'.n3;??_ldcyf>1=;^5?րUx7 #L.`<{aLgv(1KQ֛M-JuAR '֌mg4@j a:euN`J=v%D8a}PɰS*%1fz5.QVS:W<Fa[Y4xvС=:94p̺6:P[=q\`(J)m >\ϾQO endstream endobj 1533 0 obj << /BBox [ 0 0 425.192956224 125.926138188 ] /Filter /FlateDecode /FormType 1 /Length 236 /Resources 1532 0 R /Subtype /Form /Type /XObject >> stream xڭJC1yyM& ]*t'fWRt]z"7pdə x*_s'`R#QMsT6L@=+&`vT[RZh:8DEf0&ғm4a"aWF-2Z#Һ׼ 6 V[^/( L0 #wnsŐܺ籎lSҔ> stream QDSMQY+LMRoman10-RegularR  "B  &    2 $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityQDSMQY+LMRoman10-Regularz廡cԤ~wrSQrj\gdY[9F\Imz]d2fXELm@irW_:r͹Bcaș;,Ci^Zbµ9ȵơfIl)=`\y{$lѓZtY 8fOn^lvejUf^gs}bò“qebRbuCn To  ! & endstream endobj 1538 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1540 0 obj << /Filter /FlateDecode /Length 374 >> stream xڅRMk@+@r0z"IBi(vAweՃ]B 8;o޼y}>3yFqNlEwI+g2YIږ(-"CfJ.U,x3XТehQA/sq>0={X%ç92>qE\bN)4$4K}kwT5b/^[LY;ޠ<=ォA.xqڌ1\hM,c rxݨfN1T\0\ 4"@ 6r8U1zvUWƕ *R_񡶕DBQtb*> stream xmTkLW0fRKDRP֥5V+Ų- R-@V" P)?M٤\rGwicssɗ|i4a#i&S.SFf3o&Zr db^j巓h5QI㯢?DG5絘g0z8y!1_1`ȿ0W#0֘NLLEM)(?nO*c i8u X QmhicPRyTTذbU b[ص̀Sdf]kx0 nj͒"+0ffS,;lX%k3$FT$dAvpZ5ss-@9\ZȚcXVe{$,7$.Jݠ ݅G@ 5^D6/UTy8hZy'@)KM/RMSw is I1wY]쨗Zj&Mכ[%]8`wyA0Z)qv8Bkz1vrpFDt8}$>OOWVpz Z]a E335 Ba Ya8`ՄF)\<)ѣ=ڬY ?J \쯟5g@ p5>0lSZN\˱HK;7e% r  lIIF}dz%'^GXvh!:KV򤂁 <@XҚF|VL6rC&uܘרl\x0l`kܞV /C1>r9&GK<+ͷip69;\u-8> endstream endobj 1545 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1547 0 obj << /Filter /FlateDecode /Length 400 >> stream x}Rj@}WL}HѪT$Po% Rhn$B?{IЅ@Ι3goL=a.KEџkf)bȐ|[% hOY,xXkɰf5&xA1}}O8_.ri"BOxqhc5>P\τ}1l*S3\@jg.Th.0N;GSc oyi,β!ij^F1T\\([3e](QTUcx7歓}Pt/nV5W9ܲGNX *YBQ%$BZ% J3Jg2xDu-:shЋEþC}  -ꅿTkm-Ҿdd\|v56hK endstream endobj 1550 0 obj << /BBox [ 0 0 425.192956224 141.023408313 ] /Filter /FlateDecode /FormType 1 /Length 252 /Resources 1549 0 R /Subtype /Form /Type /XObject >> stream xڭSJA)H į mLaC)W DzGwq Q{&CkTtxdQ_n n䣟#Ȏa?:P_@씳\‰ٗiA}!jK){jsce6 l{TZUpwQ&"^a Sfj#3*Z=0+(SЂWUqhYoŮx endstream endobj 1551 0 obj << /Filter /FlateDecode /Length 1633 >> stream xYKF Td}Al]YHV`rEKUr{T(my:`G>~E`|w?@vxcgM!Hn*7LL޹ee~ "I.YX(5􁬵 #:PZʁyg5٧482MyL&I@睊̳I3tR CtGq6~IՆp=N8"$z ;?ACΛ;p.T[ =-aH<饿vdMየ¹e|JTF0p!DyA&#VR2E`$`cEcT&Ċ;)ܞpXj(S} 3ɅR[bٚpN: U!nzn(wcş7PY[rd^Ad6gwwݽh:RL1FfNK8QLᝪZ*lXQ+;Ìcʤ12nj.˓hFjc"r"l:V-jx:&*skn6A e:l3Tym*j)Vkfv,9}NOzY(XOLFٯS#$3&z|3c칑͍W *q87=]&H=.BFgť:%(_>QN'">i1+(c%c#JcԞIbE@.msK*hM*[Hi/1qL:ۭOcNӳZOv.b}SԵߣk0ؠdqߓb2Cb!(V]cAXg&5{x2 ^c7|= ߏ}?pa2#l}iϯ kFkGM|rӨt֢4wU/ Br x顿[ak: Ld}@Sǎ8UYVh% aq8墡6 ꜵh+dDN'~ʅ 2enȹĉc? Oe(\g_SIkSdǹS{JL2#K1{[yG,a߹Y2|Ȟ=OltmxОaԬq~Yq,i.֧.Kkw:bRd,Eʂu`.oD?Xb_ 8᷍>Rĝq`h[㜕º Ƣm-##iͦhyg$xK -d'|Kݒ- ykzN~m[ZLI*QFBs%L9zs[D+1Ɖm*/UOץJԑ05366i^*4&ya/Eiό^~\3mF.g0ȝ4moФ ;IQ.[!yQ˂ endstream endobj 1556 0 obj << /Length 578 /Subtype /CIDFontType0C >> stream QDSMQY+LMRoman10-RegularR  "B  &    2 $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityQDSMQY+LMRoman10-Regularz廡cԤ~wrSQrj\gdY[9F\Imz]d2fXELm@irW_:r͹Bcaș;,Ci^Zbµ9ȵơfIl)=`\y{$lѓZtY 8fOn^lvejUf^gs}bò“qebRbuCn To  ! & endstream endobj 1557 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1559 0 obj << /Filter /FlateDecode /Length 374 >> stream xڅRMk@+@r0z"IBi(vAweՃ]B 8;o޼y}>3yFqNlEwI+g2YIږ(-"CfJ.U,x3XТehQA/sq>0={X%ç92>qE\bN)4$4K}kwT5b/^[LY;ޠ<=ォA.xqڌ1\hM,c rxݨfN1T\0\ 4"@ 6r8U1zvUWƕ *R_񡶕DBQtb*> stream xmTkLW0fRKDRP֥5V+Ų- R-@V" P)?M٤\rGwicssɗ|i4a#i&S.SFf3o&Zr db^j巓h5QI㯢?DG5絘g0z8y!1_1`ȿ0W#0֘NLLEM)(?nO*c i8u X QmhicPRyTTذbU b[ص̀Sdf]kx0 nj͒"+0ffS,;lX%k3$FT$dAvpZ5ss-@9\ZȚcXVe{$,7$.Jݠ ݅G@ 5^D6/UTy8hZy'@)KM/RMSw is I1wY]쨗Zj&Mכ[%]8`wyA0Z)qv8Bkz1vrpFDt8}$>OOWVpz Z]a E335 Ba Ya8`ՄF)\<)ѣ=ڬY ?J \쯟5g@ p5>0lSZN\˱HK;7e% r  lIIF}dz%'^GXvh!:KV򤂁 <@XҚF|VL6rC&uܘרl\x0l`kܞV /C1>r9&GK<+ͷip69;\u-8> endstream endobj 1564 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1566 0 obj << /Filter /FlateDecode /Length 400 >> stream x}Rj@}WL}HѪT$Po% Rhn$B?{IЅ@Ι3goL=a.KEџkf)bȐ|[% hOY,xXkɰf5&xA1}}O8_.ri"BOxqhc5>P\τ}1l*S3\@jg.Th.0N;GSc oyi,β!ij^F1T\\([3e](QTUcx7歓}Pt/nV5W9ܲGNX *YBQ%$BZ% J3Jg2xDu-:shЋEþC}  -ꅿTkm-Ҿdd\|v56hK endstream endobj 1569 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 210 /Length 95 /Subtype /Image /Type /XObject /Width 360 >> stream x   9 endstream endobj 1568 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 210 /Length 26171 /SMask 1569 0 R /Subtype /Image /Type /XObject /Width 360 >> stream x^}%E A$ "|'?JA$(UD ~H JXwٜs9ggv9}vзfΝO=P]9=ct?vq( _"EKb;s֠8nVme"?hĬ掊 8YeX6l[s*VeXt=\)F:Tmj_/A@%\eh-O;v7q@Ǘ}5R\`c.CtAtg.T^,n]Iɴ AxI߃$Um0m.5kZa6\@׃րi*E_ SŮ:c༉q. zȚ}\'0-LAݨJNeq.؛zhS"b.c'We*cKi"a 7FPR}ssODg2cbM=Sw[l&8]LvZaM^*2eL,Jc.OXˊkVsy1:G7#Hv5n!F`| *ZvC~xm~-e@G˃LD WpSm"9\$ @Cj*b$K1I}L[ LUn*@ECmW}!nCoBQ;8 6ĆA:Te#Kv)|a Tl1{񄸾Z^R."W0%PW Й&c/,{"1 !#f{ ᳠5\* SsԐe1a;{ 'p}o.`me1QVyQC]e¾ʷ62xqŭ=Fϩఄ!o.:c6y 9:o tqPs|}IJx Q>N&c=eT$nyCE\I;1С };,}VgO>=o0I"?a &oiyC:aVet/s'q~f̖yԝMuᬆOttBo622cV` >2Ѭ@Sޗ,`@UOOª9ۦ0D 9ᠯ4 :ocABso+`ZJ#I9\} ˨ͲML{i!n̾ hRz`̪py0P2yT yaZ0ѡP;j^gܷC}N6-:U?݄ʏ/jlo)5M o~kMW|߫KvW؂(vT*ڲ槽9 1o suзF%ɤC£ӫl+\5٩^:o~czcE.[_]w6<4Zz{cWG= PR:d ե[ߖ|E&_..ݍ[;j~}7~-ށi`_ 2oƄl'_ }6t:wtR(|iuI஑N[tɘtOcUܵ܀P M 6HY.dEz.^?Ӵp-RHܵu *~ad2߶c=?Tɭz$wd 7w-7xMT,v0vAtY=c%?T;x PIz`Ki,3j EKI MfMz l;8HO[uOSIGM97I/|EaKbAgѿk=V??IWVVp'ύ= wygI([e|OӞ>SXXXQQa:0ib SmSl[5?ӴEfff@룾F^b{H@N ]awEn CZ?zC@ /]v=uiPݗ[x<7Ȳ[<9-iz5;< ~xȀT0=-L#o䎻GB!RAiI\)S˰ֲw= oWOչ4C*XE+⡐vo4bRc"w-AJcCFR$.=!0AQI8;nlt.bE=+(*ȥ;&l2#39J&tǼ,.T*9j/a,bqG=!>p#=gQQ]&59o4GpWjS!W+1&LI ݽ)?3t(.=*+*HJ.2Ң O߿@IQ1=rE9)T$;!˰ ;%ET*#ab,WsG=!1pJ]Bn ⍪5q[m!xk7mV0766f%7S5hjj-JI74zԗfj P qP_i{$.MT0~!b*[eGW{ )eXtǮ.eT ˰ YKqeQO R)e"QSJ)l׆iu* tjQPyQ{oʜ*"e빣Ve5.Cl408(Y ɺ'ёA.6#{ua#=PBnCk{ax*/x됦j:A2tYq-% TFWC C7t02LAEWN=MzH }mTJJ%t+T m. ;j< aNJa˰ {.A+ѿa9u"QE!IMw<.^x:uyҊWpXzu*K2La:\!^ B6R)︔W %T C\}A ogoH9O3xM20,8oQܡnTeŠM@&mQ0.7JƠryH_l)xðKJtbsmA(M!l0^5txwrY79EH:)uH9u(I2L5SY)^0Li,2,oEaږ却 ⍡f^'MY' a79#,C}Tpz@ S(@M –IkFaX7}Dx1QTk-K7A(IO!E`3"xc| L׈Dh nWM.,]PSV28l/I ԡ{/& byf{䍢=#QvM\Ԡ@A<A}>50)"p`5"9&Ye* :u#\)ZJ8.2<˹RO)LE!E.%#99Po+a uO MTOIbzj^@o)q ;JIfPJJ *udЬ.Z,Q M Oh,۪EB`+$f*HG71%Rͫ)59In[<׮m÷8!^jkVn\zg尶Pj6@ ]DLJ9%D2>R {۫C㣣Rb2cS RrW}r3ʌX ՘$!lnI 1iS_^ C%F0&sИq_ZUZ0$jU!ZvBCJ͊%k{$UНU`m <{UvB—m*g1Ҥe=і`@΅Bgᛋ%b/ʒPw319nI'V֬_܃^[-hw.ٽ8ao˙0d-09 )`Z  |hl{IGE`Gۅ\fѪfb{@;y X'[˓1?a-P -@`65{RY`^b C!e׋RAY}*7SظL6+/*i˰4ęXn ?H_fg|t ѡ>Epfݢڔy#'pxX$T1MVĈun0<xp5Vp:1Ə]zHsDUMEpLzjrԤq\e{#vņI N*Kmm9xq5[j%P\yLRq}W6N`E cdoF k"y :Z2 $E>HosF2& Ĝlj^!2i 7P}oCwiT{}n(:Bwc14Y˸>%&}mUhc^{_׿\/VD9s75]Ce2W_}5Î;^y|SO~p7x7@ /v\o"o6O{_~5Wؾ};Wx o ><ڵkIZFK裏**6C;]ZիW\r͚5x~`%xǯ<\vZ|9rh"\yU'?{恴4tfK]CCC]V믿< {m|k駟s:ꨢ"/M^y0~?M+|?> wt7JJJ.4B ah\޿K/go~_E=xP.\~r7N,/ zl[زLa G 1; @C뮻polܸFšk7bqBo}kxeLx_1SqBbVST?} s.؏c~yc9u(:8d#`P?y9`b;Vs1t}A1;;'FR[CK t/|#&@O;4: 'y(0ϟd(((3hEBPU`G"/+/u0$doe T=?Bg]>B. 0lov4#هTqo^IB88%&k~@oyjl tT 3S1@yt_ gBomÆ xe@]a; NRA0^a(Guo:hsLӠn 7f/oDх ORѹN9G`,X#,3fdd &Vm@LL POKnggve(89\)(C(Ha\Kgb2A ® 01 b8|5H卹sRWB[0;B6Fx˘TN:!`_.{ o t1z6mئg~}qǜvT`<j]j,Y$;;{os=tmй`6j#<[.p2<Ŭ7F]mu{SMwSԄƂH0M&&E~ugXh)T8V` ,30"oڶͯ)o:mB)^Mt7Įaݥ+W4coR08)$F@ ^W]uL=jhkÁ7EB3)l86NoEwqIh޼{ +vTg6cZȡ} o=g[mٻ:f҄_`8$cIϽ}wo[GB)UX$j% 駜@ǑҘխ)}U&>;~SG}Q9Y6xø2,v M^Pģ'."!/2y9Bgƫ/@Wx%P^4d3QQ9qߞ*OH/,^ŨY z벃 PD)5z 9x^w>?^s5  cmld*(>'x2toiF4Ąbw}TTa2i  #28~+0HsVu~돗o ھg˫ 8,5ID#j`0OAwwH!G\vxI mT)-&Gtqp41 Hq-{ۏso1?ui*cqW]}sPv~/+\2@h3ɚ沁{~ hsF;oݼ,n6Ƴtj~v%.//o!Nc8}J ~晇oiû/Mw-?4j>1ndLP(QK{e:reP+Ah Bg bLn,Ր %5{1 J='좰%;R}nec3sވڳ"1pMFĦ 1TB8ryPTF5&'ǭGm <ԏ^z>EBVy'2]|sIGk)C W^y=Gހχs*~FMW\  (,0&((j7=tz}uqM_xWO?rw]Wyc7PokxEK+/;T]_$ϗ4>ShH x _=W-uwC!<.b-!ABd8b9NX7jK2(>$YqrH緞)$)1!;˭]t chQ|G,oaBM{.#?bOwAqۭ6. ]E#Dh|¤8~LݟHCic=#\s [ }",Gݻy9Z<򜚢ʜ۫rcjSXfBavQyx{@\wχFf|x]X);N)QA?=//Eߞ_[}q1: L ĮꪓO:[VWXk+0F 84y#=x ~MZW4%`a//—Rc|B9=t +U-D&,m4ި.ޢ*v#T0'0xv/73NYgr򉿺ڨ ,e:ӿqQo|K.dƥv: &VA1p`Ї*\'߄b& g`$d\܂._W.xCb)'sx`<Ne|&[ UV'qs׿{橿O<s!H{1)LCCCptuuiw2E[LZj@Ÿ'd𧧖pGy/b tR`&~4RUm)bA]mLPGCBG)6 oTo@Ab V Rz ,\xBĪR%JPAH`^Iw m椂`!.C 0ca}.cRIe81"GIXEexKހ3@D,< xLsUe?CD裏y[aJH1D 0#un8 !0~ ./5w߭/Wk(TK Ӳ3)0пKZ0^mF@h;j tj ;T ORA\j{ƈg OpF:,HS̤2L='E@u]P&F]Z@e61<8Pii)8::KFY-/?A\xHQ@+ѿQMEx^c! \Pc^ hatǃ{? 59TP0eםPD/s@C0_%C{I\$C0DFFF,.yFIUDY%tԂ*6R +Yj酂JHT& `Kc IRAhv\,F~eRU;$ A/knn}ރYY2!TE6aF^qʀPcпQFVm ն@([Ow nP‚1A0ހVex0jjjlgLcPzH)U&DK-v8cO/fJcпQem6F^SbU0#}aT'>0B92ez%"j 9!XM :oXߘ=#mPmްYUVѽ0}exɨ & _[ (0Dsր08&8y3 m k  ^K/-"!d 3>+3۔Pg ܁p 8rZ7vѶ*fZq6;Z ˣ{uTgqR>v[#WM tT^l'y#Z7|g>EM'& jpoC<5TKx½Z'2.,6ՠ8oT6#`[lvEѼռa_f"=5M,SvƛuQ&7C)58ayҗ֋)d5o* P1?SvdWCImʕ|dt`:}mI]uxI' )c>z7C!٨ \5G5ϛ w +Kc_STW j>zhƫl9վ{j0[gŸ kИ}g eea痢P6+F j> ЈW#ՃV@~!aDp@,6uwǠL) * J١wtKv䍦"⍦") BMHn.zk7۪^Z bql *@y%9ڧy6*E2kl:sӂRWAqɥmiT EV-+MUxZ.Lѽ*7G(r&xs31vLݡmJ m̻ o5oW>\'K۫2 e٨{aԴ{A7 9{7}Me8LN%92O;TPy6QexBkY2JA؝oːV2q`Xj}8z oP6sQՐex}t~ռH7x_H6RbN%@Gl,2AKi"ݮE#VwS7Jf3q&}+VkK# ռapJ,L1? 9bx50i!q6)eԾ%Y2FU⩧db ³.W7z>tp "]RN7M"xRe[P =&(9CVnTݐV jgDBu).V)aLtOH/!J#FҨ| (0h ]-:31<o=mc#C#DOڝ0~GY&Z="ڪ`RاE6XG;GXHk{}Ug݇CB"Y!{2Y2;0yCeBR<-Lsw[)hF(cO.-b94t.OR)lCvk`VJq*^BP^H5-,59ZWj%R] `Łːt @&k'-i.k!̽w(1 兑DWn Bԕ&='t+.C$rht ;.B2| *PA lZeXeNkռ[ Z>r_!e ޥM^!)ІϢ8V}Ou7}[ qpy'`S eKaҔkho:xTC8eXv+/12O/=ʛ`+g;`Ӳ\'@Ͼ,M SɍF/V+OYqj.Ki*ert*#cj7]k"獁n۶,ߵwVC*lmF*.0Jyv]:kz7p7:\ME>Æ񊮮r&MEڰ"|V 7fIΰ7 ^EczۮwIxcPѵKݽzg/l׋ۢ8d_{o͛7Uo{-ܒ-T۵kכ6,_۾] q~qε^kWvZ-Uռau2^; ͺ `>js _3?tWwǵ#<_{w<3OM%ɯ=}'}sϡ|+_ȳ:W^IJJb ,!!{Y?<Ν; q Z tNo8OmJԣXŖK!=AOJ8ZSN>ߣزf +F@@U^|ų>Ned?00O?}⏏o7/0=n]/+~;1 lx0ޮ;~_ >\Swc=P[BC^[>6o?d|4\<, qїzQd^}ak _v~JXVV։'vE)--ӝ p OKK[0ރ+OΟ?Tq_veknnʌA{)/b7fXVC7]3ʱPî&u_C7yG1㏃ΝcLn-DSS[[ `7`n /@kkXʘ-UwzK0Gy_6G CSl`\egg?0nv'QGuG̤cǎ!>s/ k`>m~{4RwpBFY \^s˶e3þհyyyniiaZaԝ+tvck+xǰi)iC۝ж2%okC@Lxpr\DvFrYI!28WOM@wJٮi1/4T$l"8bÝduQS[9lW5{`=mNex=,Qj $y8p48r8mٛ o VBc+rs(M hU5ik3dÿѫ8W7}XvIAƺ/FT@{ ! \Y[srB jE &|Y| &1z`ӔEk|jgTBߡgaқ\Nֲd)kۊ "@0wJvbm.LJvL"QYVPPFcx)c M]5?h8. fSIFFА.-Aq1kT-K"/bcBT6MC `t'HLcY]DJ-r+)u7Ueh.B"!u߂W3°!fH܀F>=ccb9%7DGH؛5%poڻ+'CE82ee,2.'KaPAnHC3:@v<%w+QAH\'epYS\ mL`1w,Ps Y+D*shQk"@72#yC4zUeҖ@|V\BLfyMFpdi9ahvvuu7W$wDmt)'t)"AmpЅסR S@R ؎)I8޸3$DrsL*`9C+Mn&wbum'`ĝưeEtΡ6䆂G2K`dPATo'o@pZZۛ/ =&uy"AvQb^c<(Ǻdbx]\dش+MFeQ^C`*KXjm@騇.E4)Qn%!vPёub<3!AG.CRvђ  BjPsLFصRU`"~f6(s$%wT3eL[ՉR *hG۔='8ǰ፪ Y3¡J  ҤF:[/%XVr^)HT.֑}e5mJexY|"Yp6uB%Z{?k"ռASrҫzT39TڽF HVLdY2^\R)YYCd'}| :`obA _ wn=8 (XQ)| CtK2~a.RrqDri4{N SHQDj  S(K09M#Bd(xT`}oP4 abm>KePJ>l5oTٽr+Do$D/*9^njc먲a ^!rNӊoKk۲'iAAecXy.+5exBMUȺl.+S-OMq0KsJ[[[+'22o^Qk^/W73É7ډE_0cVFc*p`@\)?F8vG!.S~e7^s w'p.r/:|ɇŝ .ycַܹnqUWtItBkȂP p{y*?xCV j5ZlO &ɺb`_8wG+Wd1G-Z-+244aÆ~mA-ڵ>/?򕯜ηѯ+?ڋ/駟N5a}}&ͽKٿ}xoⰸCxx8q,KX`o~{I$''L7]R =ˆ𺻩dH FMq:ƌxW3m5oCiHZ R.DJwƏ}f+.O^p\7p2g N \tEm$0[:D+.>dh+2ֺ@Üsn'7V0h>Kp x[oJ~LeO1(}K,9vF-q~$?>묳`10iDΏO8ڶ#.o`ڽ_x>p?i ;>}{z<p xSO ]N,][n;yMNyc}͞ e8/O⍺ zVgyP pi_`# , L}^pK(L7ښ7jfç٤WMI)lϸloH\O?0{7F=mYݻvǵ0'lh%I(xeo0"߿;Gu?8)d T fN1U3x '@FzꩧG`9Sn'wC{zz/]:hPV0 ko$V{F,0Ahm&ޘq'K{ͼjCA`ޖ ;6a8ka3s ccc'tu: t_C tgf"7,, q4t,oR_@twq [p J7Z%&* vr~(Xj::DqV=+kFjp#,-3L97a6%"`dbС"9k_%b&%%%ab<< \QQqG: s='@{ 4AAA7d?ǯ<N;4Ks _ ͆sx!`zRc=/Sqc…g}6 0GN=T:0&={$A.,A$ިHp!LzvvaX_`K8VL`o&ˇg\rׂѽ={DB&^P.B ƃUUUJ/~  =pɲ8Ν묧ddd0a벤%Ae?}#) ODRHwkĮ^Ck!?pG=+ښAK+3]սTIuBN]Ew~ ¾F[n'rAp@&+!Gc~۾c_@9AMx7ԕPQ) GjBS*)/ ^PRp^i)#^58oE *3ò9 -k값Y!';e楼!m&Zw ¾pD j}_|;(Uj̠R>1؂dU S([[ BSYjpLy$'U,P6 0mOLf@(I&I B$d2 ^6 ntD$B] 3PmX ʤ-q' wWHe騖\C^Tf`F| +3} ;d511\&h0ږ0|p@xZ #ɺV=Y+&k*jDašyEUuU!˹ՠZ̸ofVDUw22Vl8M{8HYMFR6Hu?p!N=My.&)iUy—ǹ>Yd"Aviu>1 x0xc@O'IkN” 29%o1zN-.4/Z2LBHa,B*?.+I,-?sw]⵹z'(> ţ_)(/{6l2U&4]efL ĜyL4Lrǣql%06*uXuT߸u\Tj_Qqr""\MS }DmoH܂NGRݕ򘘟qmL>*>$ⅉHRq1@ fi߇vp+eILmLi`$þ#(QhG[> V}:84i',Yѕ?A`$)r0#1 <-Mc¾Dr>%m3Ay:od˹$cl-K2|~0 do,[6m MZ[V֜QꝔWsRO#%Gx洛~''?o?l??ɦÞ7ėy'J ?yc%?TC3+oXO$^RSRoy_WWG*Y2"˘ͅQTTTYYxߏ[,v\eq"51xrL1 Aa,njj9y,c^eq"'-xvr1;HF[[wxf{>G*K28LQO_(#˘hnnnmm2888>.oy6bxx/9s.JKݷ270EuQ*}$.c֢KsG c#42*7D*84:ChzZ𽤢Dmt0 xsI<k$2[Jk2o@SLϋ#Ů\ˏB $P5x$) &?p(!/4"DSQ ^fpw9UEQb|ޖ򩄓kw:PAnFi*L26~h!M%QZ/e!ԝ/+69Z˒;:F;% T4)8s‡v`Pok_[6GTa:ǐxAb8'4Ӎ#`AqDk-D[<5'&t/\R4-羉#8壖'lCv7|\;jCc#T2i h?te~Aӹ  A&n 1E]G*ʝ l }sX{(4IEߗsx"X(ڿm, DW2L11>F)#&>h'=euyFeТ+F0Lʢx+AB8F(08U^=6"eaU&m2D211Avc ǚo< ;`W# /9a^R37K=F*JXFGНz$)t|'{aX #_VZ\'x9KV0 4z)٣/QeB*C㎚z"4 hT oSAi60Fg[RJH} 1*!˰00 exr/vdNUr;*;j oH`M].P0 *Dx) $pWL@DyX9S2&T "1ZCv5hhC @wEБ%zڀD{j$¬FC vH); S`O2 *lڥ@r}wxG7 T. [%e̷Ϩ̌`zJI `7͡lNȼI'ۨePfUa6#u-!$ P2(eM)b$!Ljb$S7$V\)8 Rbo*%@أ S&F喙AYǧVRAveS>)7˺dL42LFjF۰TIz[f氯PTx%CkR⻊|*(%9(/3SZl1)@Eɬ^c!..?٥PW!y%Uv 7; ӴA`2 {/0$={aJ2<.; dan';SQc$%ۃ5=vWmW&/Ny-TxA 5]`RKBKq`ۑwa8@S>tNy7 `سVˎjPՌUºnX!8@cڃɶncQ&jP)m0 v5(C) qVc1Ԕm~6SEˣR5\)' u Jet4En4J$SmJbq沩Hibu5qPc`7QˠlRCGuzam#f`'P B.lpa 8.2Ԥ)em>Ve¾BZ SFJ]#\)ZW`:-Rm"0<)\{=R;5&RmOb3]r# 0]ywښ1FkXS-19^^MVTOC6wtcQmp*`BQPy09Jc֨"厬ARyښ1-jզ5>znz q.ߔ݋ E * }W^gb)uh-H,me>[r8 0) 6}e]x@i*0:Go!ދU)yőa_?,cW[c7e0} "Y%0ɭpPMFnC2 xGGn endstream endobj 1571 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 170 /Length 74 /Subtype /Image /Type /XObject /Width 313 >> stream x1 g_(x tH endstream endobj 1570 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1571 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 1573 0 obj << /BBox [ 0 0 425.192956224 135.508125657 ] /Filter /FlateDecode /FormType 1 /Length 233 /Resources 1572 0 R /Subtype /Form /Type /XObject >> stream x}QKJ1uoRމ+AWxIzZfDB^^^ͬJ'sihԝZPf̏+gzngb/XX>D¤(#]YT!# A昄8 Ӆ%彉$X-R^n-^ayS"uGm=T܁ Å팼{|TgFp$~C` endstream endobj 1577 0 obj << /Filter /FlateDecode /Length 991 /Subtype /CIDFontType0C >> stream xmTkLW0fRKDR@,Uh Jl¢iK%лU@ykEhF!jbJ}GS69]bژss%99A b&"%hVZgJތ=\a"2Ƽ$j"WMdߍԜb^YE!~C^ Cðۣbb/쁛TXZp³%埖W R# "qj :ri +Ч0 v D)ͷ19i}~:'a8#+w9o9IV`&՛wK9,Oeg H%4^k[qL1q 8?u2a6[,f힘pKY.^@U j"Z'믞ȭ15Z%qzLoOJ-Y0Z.ZlUkOOK_6&W= RWo?N>{ e N;I"o8{iFʢraK554bBwPp~I|hݏ޹<m“4ggk#)ú P+xJ&5{U,Sɉ?J \5WfC@J p5>0r LcK0v ntJp <}hh_4A3 kIz.ꦆ6飊5rOׁ-ܕ]9b FϽ-ǁ^GYǔvXa;K򤒁 OhᎲ&|NL4 C&ߘ}רl3x0h`oގNV ќ(1:tf{k+-it5;:6u->qH endstream endobj 1578 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1580 0 obj << /Filter /FlateDecode /Length 400 >> stream x}Rj@}WLfUHhJ`wG`v&yK.rv̜9;m2yDD`EJsәKZe(5"CD1l 8eWcA/ÆN♋;==y;R*/'&gˋGR!|"苅`3 /BH>qTFqZ0?iS(%f8`2`Ev.Pqq֌ @ j OfڼuO`ݪ*k~ A%"O)T6D0YӨDZ#Wx_LfȢEzh4phPϡcֱE𗚺cyBR73>x[\ Om? endstream endobj 1584 0 obj << /Filter /FlateDecode /Length 1402 /Subtype /CIDFontType0C >> stream xڍU LW=NΒNqÏ9N7L(k+H }wT(4(GeME]2?LwpݲSLO{ S(0LnLO֥n9=!#3O&Iz?,&+ M#"I$})H1 7/" .n/zIɈq!SzwˑGa^^Iސ$=cKϥ* 1c0_˥mi(yd}VOQp5 TӂG60ds1B#pq+t#/F[y.FuB/n/1\m$pLc909gA~F.?|*Ri X &HSi{SݚO1S*Xy }}ͱIGnPPwC';w!IpωQ+(~U264> P ]&SkQYWqn wZI?ɣ; - K+zuTjbuNz;6js" @u}zg2b8(̱ @͗ /Qzjf pZ]WU\A|6P⤧ `.6+nA o.6c3hYRp@^R ,e%PjYΙˈjzpOcSq<0mՙjt8*TYT.(.]FGGTAΪWT5D̈oOf)"k^fД4'S=_\OxaBGo:piU /*SS~@Cl+RϦ Ÿ R1cFŤewЅ Wmp<7K%S2q=Oo+ŕK‚:fl;˱Vp$]+gX,ֽX8_)L"<,dޡ endstream endobj 1585 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1587 0 obj << /Filter /FlateDecode /Length 421 >> stream xڅS]k0}W=5u~M'*&WIIa?~I`so=MO7b3 fP"NkT"A/Vn1$FM-= +}O\$hp}~$6x*α)(A֝Qe\τ1l"3eVS+G.rv`0N+F4^HvxK9Lb8As-izFckx=O囨"+x~yFKzk ܸaU,N7PJB`wՁku8/mƔО%j۱DEmul]עUU,[oѫy#Ɩ9x?B)yy=,Mn\TښyW? endstream endobj 1590 0 obj << /BBox [ 0 0 425.192956224 132.162213355 ] /Filter /FlateDecode /FormType 1 /Length 410 /Resources 1589 0 R /Subtype /Form /Type /XObject >> stream xڍAOA )z񸵝N;1/DMH<f< t<a!:ί` JPG$a7\\:ٝ"ׄ|Iߌ0ajVLP*1L,X6wLhȜmE&FIfԅXuu• endstream endobj 1594 0 obj << /Filter /FlateDecode /Length 2630 >> stream x[n++fXU j .wAVE"CR2n "k` h}?>巗W9>EP#H|Ck>i '2I֊si gM+EMg={4QaeN7f>${ et0,{!IzKJ"O2l])-ducwo$ĦoL4H#ŠIe48]U>(XX|\^I AATNIN )i\9aP}'?9-,F]BڵZKF&b`wY7kQi_7{\wY"/& {-f5c8 5AE8IIome1^g"O l5v4m$!W\ UIB 䏷(PhKPuOBx%-^6lO <7->}ePN[zXNu{Drx@&x (d8ty7Ax}.@-5ť;G^T8/5zCwr کHV;iLOaK#VE!-!f l 1U4M`Wƛ4W-&b!ԻoYxv 0 K&>(,XItWy_`F"r;0sf(=8D#qQOP:] ɛJ^@۫ĉ}cJ)p*O/%3\w:=֌8=ZY}:f4`m`sFlv5}VG +*|6EWFoD0#%Ya[_m}, O a6u^.WC20p&TReyGbh:({C zgO(1cs.JIccSQSI2JɃFa:w|yy"xK'9+ۣ*LH k9d{$mRKavIy6O3u0hmr8v=pK[$bŒ/;n$K2t;RiL;DG$ќ֍^NL{B,Vo!*}0@NR(h)m'Enι/ fi|':pSd-^EȹJ9ՖC LM\)w׵-?1u Lt|'SOrM3VW , V  ۘX]vv0Ԁ4uX9$,6uyBdMmC{FMcj%<"H !E>+38k(KAJyj(Cfe]Z.hG0 qA;x _#۠4hM``liYi;RR>6&a_/]TvX3LIS@NcOAHRc*|┄L 3*X6OuqoVHMmdKބ5A K1Oܘn - rvP/d鮸Y(^oaE<FcBG/^M 2gX^DHOsJ &[$YExP N,(h{_~ox ,8 ^ զ@k2TP"zw+(rN:z'W<&<*Ήf=7#H\kq|ї7 ߇?%cFde9Lhq#g?Ϗ).ec!Sڣcht IKDW%K}=s(\P½ K{ltE.RFq@5h$PWG&9HB׶NƓ>B; u{EߐY ~ RB8,ZXK۵e&XmC2X6߃_ 1 6A& ;IqcХ>G|=x!~H 3("JZ}[ܿ{ l'*BPgzՃuRTH <; c?o͸G@uv}[CvFp.dJ0d`lt_?*8B9Y&m?3{&I#x6/jΩd.ɐ{t{fˆyEOc+z_Okn"R11H\íb endstream endobj 1597 0 obj << /Filter /FlateDecode /Length 907 >> stream xڝVˮ6 +WCR%~ăv"hQʒ{M@GG(~502/_VpIE|*#%W N߇_B$r hnY(8R`@ irT uv,bx0/0dɾ]+V!E5JB$ewagymmfFL@td>g׭eZ}iq,ZK;͵]|)[?eJ_@8JLA0i](K‹uQ'"$lc@,g=ǪO2u8Kw9Ǣ.MO61/+pL=T|q(NUn5c3'(a}!Ŷ$@f0WcC̵g6x](N9!*;`i".2\c܎:Rj(<bcH<EzNdu@H!v;vOjK\`jpt3tP {ZBjfT_m:n1US0SaQ VM@ly,i(D_GPt&(Pi2eT$GlPʢ3ђRmx*0 OA!(ҤIg5cƲ4՚Z0揩`~Dz)˸̥yx;٪֓f mԐous089]>! ۮQ3}ߌ=:7sjMJ%> ;;㩻Q"v`vJ~̴I6Z庒KJ?KX> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\?K  t9qc΃oVAJ|!ojB8 eU  t] pmn0/@Y&<76Jy".:d#zqͼS%k+ޒ/cgW (6Ğ3(P:[buq,p[_'J endstream endobj 1599 0 obj << /BBox [ 0 0 475.479220988 129.395914612 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\$sƜ_߬0(?BPfpuª{~|C;]{WC[6m7A,S<76Jy"\1|L:aef2j+Q%_Z31Y=e`( MY!WJ endstream endobj 1600 0 obj << /BBox [ 0 0 475.479220988 181.831088131 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\$sƜ_߮0DAJ|!PgEp(Z'^*[B=kSBap3CC1pD5RLĂJbf$Ev;,T5.( 3ʱǠ{̙̺~_NSu)2K endstream endobj 1604 0 obj << /Filter /FlateDecode /Length 3009 >> stream xZˎ W"R g%$\&CIv=VUYm>(<}gwx;|{݅wdwFd[q1v%C)0/֞}BdȧrOxg\|4%E#n`Oɩ&HVv!ClŦb\=9}VQ4AD*?i$Cpťb}*wsNX?3TߙRR5Irh5 ջkˣD_%\k RJ}sjNf ͹7 Rǟθ.x곍y'r!UÇI!dPZ<oorj. X}cO:ĵocV I.P :w j4v1}#ǥNޜjAxX򯴀on^w5b79?"]퍴yB0Oi0W&? (Xsn`( RG-m% YsZ E'DotUOncMGؚH}up'+'#'+CRntu>[cV,.5bS_rq_t1 xӛeNhf"h?( %(0 2ٰL6kɒF21u^)\(Mr =Md| S8-J8rm3;zcuǟW%p^KGe-..]!;']W]:׉F0*81NƢǕ7*_oTk9G[%v}?zeFkԼ<b0Q$E )]՞5045gm/Y߇sб 6;tKlX>M(VoFND&V&CENQ`oblp SO~ (Ƈ?~-Ӌ u v#gT~msmO`%eݗ}xL U1K8ē:ൟ:<IE|C@má<&Q'l\:,!jۈ׬O@nkFɓ=.|RNSK5ΗоTr/Uީ T aQSZ CCZS 0( -luFOC;ȟ-kRiĚG;C^jK9Va;#eT jĎ02f P#+ KO{ձ^Zp+_>GRkP%79"K=\Eƻ(]C9;uIQGD:% qX& 5oEpudJ&V(A+S:]]Cn8,uktpg , v:< r7'}T\:'gҶ. kb0+PX=8p! ]_\s +M!Z FLZoo'&N8gi BpU{J-"Fv*X~> ַ$ +ځ@id-%H 0s; l5%^8~M嘱-G&X[Io8$d7nf+x6 9F<`7rXslk2bMb=z0_X1ZF#Oe?byP!AuXۆh[HnnY_$g1Vc/0Mu|Ϛi׈@?s5I]d)qم/V{i-l[YOC]•N*ԺߞcWs;Az;ﰆE\~aB,|}G֗cǜ PtU70_oN '>.w"|~_V VR:{XXOH'"q|GQ3G9:b[5Xpx2rԑc6)y/`#璠ĎTa-4j0^bzͷ㈵UEN%dHo(Ю|\:#PpSF:/(o5m? >4xfz>Iu`g;J:[ʰb%u5fCu Sf*g fN&o$%-ŞNcd5{ VĘ7$F% n!9頡ԥq28uMlJ,cR5YOoLu:z\v+Q Jn4d"w~ &x&[ "zMJSU2=Q }8)S /C80Gއ5.vPtj#@<\8;-$0jeh# "u/e,%RS:de0NؽP ~qXC*>11UX14@)D._1[Xә/~ O¼2ȳIL|l&3 5ҿ%o!6r3soVl&D v#w:?nf'c1-L37ؔ k'7`&@;'N8y _/S|FH #?vF)/$)@FRԻ=hSOV/C#UEZ;쩇#0/ԕwHtP-'ߌg QS&֠A6?21-(^j [P~\w+5tK'|3man~d=4g=݁7)f OU %]1 endstream endobj 1609 0 obj << /Filter /FlateDecode /Length 1059 >> stream x]S]hU>wܝ33w63NC8!&VM/Zm\j%Ģ4",ŗJAE`QQ|2PZP&>ݤi{wwι@  @ꇧ@ۈ=p}#G_ Y]/=? P؇| 3t~ؼp@9l4C/JuG8`X$^MNހ7]/%@b?#|a@:XEC-g0 pT8]cy[,Y%(2 )6=Xs 3;_(}cӆMOJ+'`j7Ow5O\=a:'|%.g9ӡ46/=x *m|E#Az ( B2'DQŵ+AVZ["zG74b;n*YmLv뺡i3Uaa?X,-0PWeWDFXh<աXq(Dɲb}er'x\X8lXeB8{A5PYwn+`ՠ&Z$QY$z*P`~l^0:٥[:RW)(N>p.Syzf:d h}>y%qo+I)_> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1612 0 obj << /Filter /FlateDecode /Length 416 >> stream xmRn0); !~Z*DJ9|"5 DIH}ԖHQ23ؽYz+^J@Uo[=«<t*Y*~jvۤ'J|w.'nVex(B63==T&;f~?sXiLњ&88h{SFƓՓGcכ<]o[43c& }[o6bCٺw٤ )U6\u endstream endobj 1616 0 obj << /Filter /FlateDecode /Length 1878 /Subtype /CIDFontType0C >> stream x}{PGg؝EEߞb<\)i0x"% HYXP( DRc41+hHg6,D՝ꪞU~IB%H<ߞpQtyuZX诣,hETF!P2BSm_$Aٟb I6֩^7  T{ ~n &Gĥn3:ї^0:)w7MhIgPN!Yd;z mVZ{C $BmnJ>rUtV\^(J01@@+Q2eEa^:s᫪e}!2(z\tk`is؋lv!$9 +hQBwVM Q{$`)h `0;wb~hPY dxO: 1~DPo2ߖ3hl%: q3^`xsBʻdrϓ͓JQf4R:i\oB BT;ܾèN1eN+uEӺ۾mX^Te2:j,{Iͮj)Z`o*ekRֲ_;Dot5J: 3grgg-Npfoվۗ:;O`G)dl15G&E G.Dy3a0a'=roNp #+o#^սS"\&nm75I5y--`M7/$+2;]P.!${[;k_FAexAɷglW:]e'=݉u+dxjaݦč|dsܹQ46~IM.WgL-K# ZHp mLA=RgYZt= g*(FC+~zBAh endstream endobj 1617 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1619 0 obj << /Filter /FlateDecode /Length 445 >> stream xڅk0+n>tMu6DU59]&%mKz,'7} bпe`+1yݞi^e%@DG04J]+?Te3:K>Y&L%x}Kt CjֲRGncvaTgE+N!lۅ3z $/O 34+:%fi0ChȢ40]ߍ@#:ל[Ѫ:`2NF. O[U<^Bc~.q"O9Tm+xaGcTj_֌K&Ц:͉DFwDѐD#)6$zcv>3ŽzZS?"s>тEh!M{\${{Co݀Txzv6f] endstream endobj 1622 0 obj << /BBox [ 0 0 261.2223662 67.488647309 ] /Filter /FlateDecode /FormType 1 /Length 366 /Resources 1621 0 R /Subtype /Form /Type /XObject >> stream xڭN1 Ec;vlKJjnx V>  !it77&?DžN XIes\ǿmafBA*$k^FJOgdg0AJ#}#"v9c56Ϟ)C.e 恕92zLǤH; :[%þ(z=gsq=gsW;wq=Z(@I؊q<' Pz)_OZGeZF:Umo|[ElĩߡHb1fi\u}gR1=U_%OR-#,tL5̈́ m,tQD+eg(x endstream endobj 1623 0 obj << /BBox [ 0 0 406.881694865 181.831088131 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 174 >> stream xڍK @ slyLzVluMG (0$_ G!`8UyeVciJHNUtЧ hbOm lrqU9ax'(n8,x 1Y8%,ăeE4%!(‘9 Yj<&K` endstream endobj 1628 0 obj << /Filter /FlateDecode /Length 2569 >> stream x\ˎ#Wf^xoؓ a_XRu[ҨYb 4*%L2QN/?Mww]!H:_DB ]Ldowѳ j"Kٷ&lbEW~!=GKezTx~z M6hCȺwNN~KJ2_^N ϖnmGQM1 9aJ6ɹ={2^o}<,R% 7"NRkNwk.8o)ȵ`\5zQQbI{>62G4 r&8{C0,)`^Hp1IJpMU>sw=ҩͩ@ +akWt9-"'"k=q3|]lYx4XV׀ 6Y) i~pH)25E:mpaBXp%, ħ^eO)srK!bvF$W\;^?O7}N2o~_Q07ˎ߰oEx'jlrFQk]<)S&_zEe%0lPh,2ad,J=X8I><_5u5ZVAq8n82NvѺeFnk-,ƗpĊ'P(>MI1 K(sñ~F!=~Q-m_ljvͨvq{JNtN9RµuF>oEGc?OsׯI^xm5õ>?2fF&!b4J}z40_LaZ&y~'qwD(\09!ZuŜ(uL|=밬uc.Fy&NsIG{O9kK0U\\9ï'H멊DyS6@Ba wzbPu-o( =#R*u$ǂ"-H8(A\nrN|]J 1-1-ӥt<7U%ƩD1[EV#r4_:g;Nsos>CَmC8WԸyX\S>ܳ CQ;z#>cL|t8 tBDXIY{/]Tl yKTcmһ*?GjB~PR8ĮpCkp0E~@-? |:G70:^p!1z1ډDUp: '',;%0kPCgqy-a,;G+B_ъn @KU5 M[З)b ƾHhEh R%DSX2y+B`U08zbCEi)Ѓ6C [TP]-5QTЂ-FYQ#mH)^%mk-bІº!= _01=$]9vmm\m Z7SL+6"#TͧUqiGJ6hZtxgZæ52lb5&G*1u샙l6QnMãĹԾQ<n{ɵ#A]y29> (&lp-G8TM6Ţ#b 1X;\ }ATw rc_uZjҢHuR 1Jp-g,eGk9/R>ZYR$aEH<#4-Ш4{&pPAa9򣶆IIrtRFaYst*x`2uV_kL7D[Ta#[dW#6A@  UQgہk JVu3L`m1s T>pdiU3 (ĜIQKPRȐ?f(?6IiOU¿b:os}L?\9q,Z?j,{-)d$xOs i˽Ͽ{ܪ> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\4i'9č9YePd)M?M3A8V%eOpս@?㭫!-\Ӡ-Жҥ @+wg@6d!efօhz`IgĨWE»/}L%YeVV %sI endstream endobj 1635 0 obj << /Length 578 /Subtype /CIDFontType0C >> stream ZWXDFA+LMRoman10-RegularR  "B  &    2 $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityZWXDFA+LMRoman10-Regularz廡cԤ~wrSQrj\gdY[9F\Imz]d2fXELm@irW_:r͹Bcaș;,Ci^Zbµ9ȵơfIl)=`\y{$lѓZtY 8fOn^lvejUf^gs}bò“qebRbuCn To  ! & endstream endobj 1636 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1638 0 obj << /Filter /FlateDecode /Length 375 >> stream xڅRMk@+@rz"IBA mvAweՃ]B 8;o޼y}.0=8 mse*|0oTĔySh?Hi2Lj.GBxl)K3exR p6?i3p6 cnE&K0Ou~x;Pqr Jڪ*ЈQ42~mZ3VLWmcW]?W2JE~ŇVA En 9_Z#CG}\πr;?V)=t~# XISkD^ endstream endobj 1642 0 obj << /Filter /FlateDecode /Length 991 /Subtype /CIDFontType0C >> stream xmTkLW0fRKDR@,Uh Jl¢iK%лU@ykEhF!jbJ}GS69]bژss%99A b&"%hVZgJތ=\a"2Ƽ$j"WMdߍԜb^YE!~C^ Cðۣbb/쁛TXZp³%埖W R# "qj :ri +Ч0 v D)ͷ19i}~:'a8#+w9o9IV`&՛wK9,Oeg H%4^k[qL1q 8?u2a6[,f힘pKY.^@U j"Z'믞ȭ15Z%qzLoOJ-Y0Z.ZlUkOOK_6&W= RWo?N>{ e N;I"o8{iFʢraK554bBwPp~I|hݏ޹<m“4ggk#)ú P+xJ&5{U,Sɉ?J \5WfC@J p5>0r LcK0v ntJp <}hh_4A3 kIz.ꦆ6飊5rOׁ-ܕ]9b FϽ-ǁ^GYǔvXa;K򤒁 OhᎲ&|NL4 C&ߘ}רl3x0h`oގNV ќ(1:tf{k+-it5;:6u->qH endstream endobj 1643 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1645 0 obj << /Filter /FlateDecode /Length 400 >> stream x}Rj@}WLfUHhJ`wG`v&yK.rv̜9;m2yDD`EJsәKZe(5"CD1l 8eWcA/ÆN♋;==y;R*/'&gˋGR!|"苅`3 /BH>qTFqZ0?iS(%f8`2`Ev.Pqq֌ @ j OfڼuO`ݪ*k~ A%"O)T6D0YӨDZ#Wx_LfȢEzh4phPϡcֱE𗚺cyBR73>x[\ Om? endstream endobj 1648 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 210 /Length 95 /Subtype /Image /Type /XObject /Width 360 >> stream x   9 endstream endobj 1647 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 210 /Length 26171 /SMask 1648 0 R /Subtype /Image /Type /XObject /Width 360 >> stream x^}%E A$ "|'?JA$(UD ~H JXwٜs9ggv9}vзfΝO=P]9=ct?vq( _"EKb;s֠8nVme"?hĬ掊 8YeX6l[s*VeXt=\)F:Tmj_/A@%\eh-O;v7q@Ǘ}5R\`c.CtAtg.T^,n]Iɴ AxI߃$Um0m.5kZa6\@׃րi*E_ SŮ:c༉q. zȚ}\'0-LAݨJNeq.؛zhS"b.c'We*cKi"a 7FPR}ssODg2cbM=Sw[l&8]LvZaM^*2eL,Jc.OXˊkVsy1:G7#Hv5n!F`| *ZvC~xm~-e@G˃LD WpSm"9\$ @Cj*b$K1I}L[ LUn*@ECmW}!nCoBQ;8 6ĆA:Te#Kv)|a Tl1{񄸾Z^R."W0%PW Й&c/,{"1 !#f{ ᳠5\* SsԐe1a;{ 'p}o.`me1QVyQC]e¾ʷ62xqŭ=Fϩఄ!o.:c6y 9:o tqPs|}IJx Q>N&c=eT$nyCE\I;1С };,}VgO>=o0I"?a &oiyC:aVet/s'q~f̖yԝMuᬆOttBo622cV` >2Ѭ@Sޗ,`@UOOª9ۦ0D 9ᠯ4 :ocABso+`ZJ#I9\} ˨ͲML{i!n̾ hRz`̪py0P2yT yaZ0ѡP;j^gܷC}N6-:U?݄ʏ/jlo)5M o~kMW|߫KvW؂(vT*ڲ槽9 1o suзF%ɤC£ӫl+\5٩^:o~czcE.[_]w6<4Zz{cWG= PR:d ե[ߖ|E&_..ݍ[;j~}7~-ށi`_ 2oƄl'_ }6t:wtR(|iuI஑N[tɘtOcUܵ܀P M 6HY.dEz.^?Ӵp-RHܵu *~ad2߶c=?Tɭz$wd 7w-7xMT,v0vAtY=c%?T;x PIz`Ki,3j EKI MfMz l;8HO[uOSIGM97I/|EaKbAgѿk=V??IWVVp'ύ= wygI([e|OӞ>SXXXQQa:0ib SmSl[5?ӴEfff@룾F^b{H@N ]awEn CZ?zC@ /]v=uiPݗ[x<7Ȳ[<9-iz5;< ~xȀT0=-L#o䎻GB!RAiI\)S˰ֲw= oWOչ4C*XE+⡐vo4bRc"w-AJcCFR$.=!0AQI8;nlt.bE=+(*ȥ;&l2#39J&tǼ,.T*9j/a,bqG=!>p#=gQQ]&59o4GpWjS!W+1&LI ݽ)?3t(.=*+*HJ.2Ң O߿@IQ1=rE9)T$;!˰ ;%ET*#ab,WsG=!1pJ]Bn ⍪5q[m!xk7mV0766f%7S5hjj-JI74zԗfj P qP_i{$.MT0~!b*[eGW{ )eXtǮ.eT ˰ YKqeQO R)e"QSJ)l׆iu* tjQPyQ{oʜ*"e빣Ve5.Cl408(Y ɺ'ёA.6#{ua#=PBnCk{ax*/x됦j:A2tYq-% TFWC C7t02LAEWN=MzH }mTJJ%t+T m. ;j< aNJa˰ {.A+ѿa9u"QE!IMw<.^x:uyҊWpXzu*K2La:\!^ B6R)︔W %T C\}A ogoH9O3xM20,8oQܡnTeŠM@&mQ0.7JƠryH_l)xðKJtbsmA(M!l0^5txwrY79EH:)uH9u(I2L5SY)^0Li,2,oEaږ却 ⍡f^'MY' a79#,C}Tpz@ S(@M –IkFaX7}Dx1QTk-K7A(IO!E`3"xc| L׈Dh nWM.,]PSV28l/I ԡ{/& byf{䍢=#QvM\Ԡ@A<A}>50)"p`5"9&Ye* :u#\)ZJ8.2<˹RO)LE!E.%#99Po+a uO MTOIbzj^@o)q ;JIfPJJ *udЬ.Z,Q M Oh,۪EB`+$f*HG71%Rͫ)59In[<׮m÷8!^jkVn\zg尶Pj6@ ]DLJ9%D2>R {۫C㣣Rb2cS RrW}r3ʌX ՘$!lnI 1iS_^ C%F0&sИq_ZUZ0$jU!ZvBCJ͊%k{$UНU`m <{UvB—m*g1Ҥe=і`@΅Bgᛋ%b/ʒPw319nI'V֬_܃^[-hw.ٽ8ao˙0d-09 )`Z  |hl{IGE`Gۅ\fѪfb{@;y X'[˓1?a-P -@`65{RY`^b C!e׋RAY}*7SظL6+/*i˰4ęXn ?H_fg|t ѡ>Epfݢڔy#'pxX$T1MVĈun0<xp5Vp:1Ə]zHsDUMEpLzjrԤq\e{#vņI N*Kmm9xq5[j%P\yLRq}W6N`E cdoF k"y :Z2 $E>HosF2& Ĝlj^!2i 7P}oCwiT{}n(:Bwc14Y˸>%&}mUhc^{_׿\/VD9s75]Ce2W_}5Î;^y|SO~p7x7@ /v\o"o6O{_~5Wؾ};Wx o ><ڵkIZFK裏**6C;]ZիW\r͚5x~`%xǯ<\vZ|9rh"\yU'?{恴4tfK]CCC]V믿< {m|k駟s:ꨢ"/M^y0~?M+|?> wt7JJJ.4B ah\޿K/go~_E=xP.\~r7N,/ zl[زLa G 1; @C뮻polܸFšk7bqBo}kxeLx_1SqBbVST?} s.؏c~yc9u(:8d#`P?y9`b;Vs1t}A1;;'FR[CK t/|#&@O;4: 'y(0ϟd(((3hEBPU`G"/+/u0$doe T=?Bg]>B. 0lov4#هTqo^IB88%&k~@oyjl tT 3S1@yt_ gBomÆ xe@]a; NRA0^a(Guo:hsLӠn 7f/oDх ORѹN9G`,X#,3fdd &Vm@LL POKnggve(89\)(C(Ha\Kgb2A ® 01 b8|5H卹sRWB[0;B6Fx˘TN:!`_.{ o t1z6mئg~}qǜvT`<j]j,Y$;;{os=tmй`6j#<[.p2<Ŭ7F]mu{SMwSԄƂH0M&&E~ugXh)T8V` ,30"oڶͯ)o:mB)^Mt7Įaݥ+W4coR08)$F@ ^W]uL=jhkÁ7EB3)l86NoEwqIh޼{ +vTg6cZȡ} o=g[mٻ:f҄_`8$cIϽ}wo[GB)UX$j% 駜@ǑҘխ)}U&>;~SG}Q9Y6xø2,v M^Pģ'."!/2y9Bgƫ/@Wx%P^4d3QQ9qߞ*OH/,^ŨY z벃 PD)5z 9x^w>?^s5  cmld*(>'x2toiF4Ąbw}TTa2i  #28~+0HsVu~돗o ھg˫ 8,5ID#j`0OAwwH!G\vxI mT)-&Gtqp41 Hq-{ۏso1?ui*cqW]}sPv~/+\2@h3ɚ沁{~ hsF;oݼ,n6Ƴtj~v%.//o!Nc8}J ~晇oiû/Mw-?4j>1ndLP(QK{e:reP+Ah Bg bLn,Ր %5{1 J='좰%;R}nec3sވڳ"1pMFĦ 1TB8ryPTF5&'ǭGm <ԏ^z>EBVy'2]|sIGk)C W^y=Gހχs*~FMW\  (,0&((j7=tz}uqM_xWO?rw]Wyc7PokxEK+/;T]_$ϗ4>ShH x _=W-uwC!<.b-!ABd8b9NX7jK2(>$YqrH緞)$)1!;˭]t chQ|G,oaBM{.#?bOwAqۭ6. ]E#Dh|¤8~LݟHCic=#\s [ }",Gݻy9Z<򜚢ʜ۫rcjSXfBavQyx{@\wχFf|x]X);N)QA?=//Eߞ_[}q1: L ĮꪓO:[VWXk+0F 84y#=x ~MZW4%`a//—Rc|B9=t +U-D&,m4ި.ޢ*v#T0'0xv/73NYgr򉿺ڨ ,e:ӿqQo|K.dƥv: &VA1p`Ї*\'߄b& g`$d\܂._W.xCb)'sx`<Ne|&[ UV'qs׿{橿O<s!H{1)LCCCptuuiw2E[LZj@Ÿ'd𧧖pGy/b tR`&~4RUm)bA]mLPGCBG)6 oTo@Ab V Rz ,\xBĪR%JPAH`^Iw m椂`!.C 0ca}.cRIe81"GIXEexKހ3@D,< xLsUe?CD裏y[aJH1D 0#un8 !0~ ./5w߭/Wk(TK Ӳ3)0пKZ0^mF@h;j tj ;T ORA\j{ƈg OpF:,HS̤2L='E@u]P&F]Z@e61<8Pii)8::KFY-/?A\xHQ@+ѿQMEx^c! \Pc^ hatǃ{? 59TP0eםPD/s@C0_%C{I\$C0DFFF,.yFIUDY%tԂ*6R +Yj酂JHT& `Kc IRAhv\,F~eRU;$ A/knn}ރYY2!TE6aF^qʀPcпQFVm ն@([Ow nP‚1A0ހVex0jjjlgLcPzH)U&DK-v8cO/fJcпQem6F^SbU0#}aT'>0B92ez%"j 9!XM :oXߘ=#mPmްYUVѽ0}exɨ & _[ (0Dsր08&8y3 m k  ^K/-"!d 3>+3۔Pg ܁p 8rZ7vѶ*fZq6;Z ˣ{uTgqR>v[#WM tT^l'y#Z7|g>EM'& jpoC<5TKx½Z'2.,6ՠ8oT6#`[lvEѼռa_f"=5M,SvƛuQ&7C)58ayҗ֋)d5o* P1?SvdWCImʕ|dt`:}mI]uxI' )c>z7C!٨ \5G5ϛ w +Kc_STW j>zhƫl9վ{j0[gŸ kИ}g eea痢P6+F j> ЈW#ՃV@~!aDp@,6uwǠL) * J١wtKv䍦"⍦") BMHn.zk7۪^Z bql *@y%9ڧy6*E2kl:sӂRWAqɥmiT EV-+MUxZ.Lѽ*7G(r&xs31vLݡmJ m̻ o5oW>\'K۫2 e٨{aԴ{A7 9{7}Me8LN%92O;TPy6QexBkY2JA؝oːV2q`Xj}8z oP6sQՐex}t~ռH7x_H6RbN%@Gl,2AKi"ݮE#VwS7Jf3q&}+VkK# ռapJ,L1? 9bx50i!q6)eԾ%Y2FU⩧db ³.W7z>tp "]RN7M"xRe[P =&(9CVnTݐV jgDBu).V)aLtOH/!J#FҨ| (0h ]-:31<o=mc#C#DOڝ0~GY&Z="ڪ`RاE6XG;GXHk{}Ug݇CB"Y!{2Y2;0yCeBR<-Lsw[)hF(cO.-b94t.OR)lCvk`VJq*^BP^H5-,59ZWj%R] `Łːt @&k'-i.k!̽w(1 兑DWn Bԕ&='t+.C$rht ;.B2| *PA lZeXeNkռ[ Z>r_!e ޥM^!)ІϢ8V}Ou7}[ qpy'`S eKaҔkho:xTC8eXv+/12O/=ʛ`+g;`Ӳ\'@Ͼ,M SɍF/V+OYqj.Ki*ert*#cj7]k"獁n۶,ߵwVC*lmF*.0Jyv]:kz7p7:\ME>Æ񊮮r&MEڰ"|V 7fIΰ7 ^EczۮwIxcPѵKݽzg/l׋ۢ8d_{o͛7Uo{-ܒ-T۵kכ6,_۾] q~qε^kWvZ-Uռau2^; ͺ `>js _3?tWwǵ#<_{w<3OM%ɯ=}'}sϡ|+_ȳ:W^IJJb ,!!{Y?<Ν; q Z tNo8OmJԣXŖK!=AOJ8ZSN>ߣزf +F@@U^|ų>Ned?00O?}⏏o7/0=n]/+~;1 lx0ޮ;~_ >\Swc=P[BC^[>6o?d|4\<, qїzQd^}ak _v~JXVV։'vE)--ӝ p OKK[0ރ+OΟ?Tq_veknnʌA{)/b7fXVC7]3ʱPî&u_C7yG1㏃ΝcLn-DSS[[ `7`n /@kkXʘ-UwzK0Gy_6G CSl`\egg?0nv'QGuG̤cǎ!>s/ k`>m~{4RwpBFY \^s˶e3þհyyyniiaZaԝ+tvck+xǰi)iC۝ж2%okC@Lxpr\DvFrYI!28WOM@wJٮi1/4T$l"8bÝduQS[9lW5{`=mNex=,Qj $y8p48r8mٛ o VBc+rs(M hU5ik3dÿѫ8W7}XvIAƺ/FT@{ ! \Y[srB jE &|Y| &1z`ӔEk|jgTBߡgaқ\Nֲd)kۊ "@0wJvbm.LJvL"QYVPPFcx)c M]5?h8. fSIFFА.-Aq1kT-K"/bcBT6MC `t'HLcY]DJ-r+)u7Ueh.B"!u߂W3°!fH܀F>=ccb9%7DGH؛5%poڻ+'CE82ee,2.'KaPAnHC3:@v<%w+QAH\'epYS\ mL`1w,Ps Y+D*shQk"@72#yC4zUeҖ@|V\BLfyMFpdi9ahvvuu7W$wDmt)'t)"AmpЅסR S@R ؎)I8޸3$DrsL*`9C+Mn&wbum'`ĝưeEtΡ6䆂G2K`dPATo'o@pZZۛ/ =&uy"AvQb^c<(Ǻdbx]\dش+MFeQ^C`*KXjm@騇.E4)Qn%!vPёub<3!AG.CRvђ  BjPsLFصRU`"~f6(s$%wT3eL[ՉR *hG۔='8ǰ፪ Y3¡J  ҤF:[/%XVr^)HT.֑}e5mJexY|"Yp6uB%Z{?k"ռASrҫzT39TڽF HVLdY2^\R)YYCd'}| :`obA _ wn=8 (XQ)| CtK2~a.RrqDri4{N SHQDj  S(K09M#Bd(xT`}oP4 abm>KePJ>l5oTٽr+Do$D/*9^njc먲a ^!rNӊoKk۲'iAAecXy.+5exBMUȺl.+S-OMq0KsJ[[[+'22o^Qk^/W73É7ډE_0cVFc*p`@\)?F8vG!.S~e7^s w'p.r/:|ɇŝ .ycַܹnqUWtItBkȂP p{y*?xCV j5ZlO &ɺb`_8wG+Wd1G-Z-+244aÆ~mA-ڵ>/?򕯜ηѯ+?ڋ/駟N5a}}&ͽKٿ}xoⰸCxx8q,KX`o~{I$''L7]R =ˆ𺻩dH FMq:ƌxW3m5oCiHZ R.DJwƏ}f+.O^p\7p2g N \tEm$0[:D+.>dh+2ֺ@Üsn'7V0h>Kp x[oJ~LeO1(}K,9vF-q~$?>묳`10iDΏO8ڶ#.o`ڽ_x>p?i ;>}{z<p xSO ]N,][n;yMNyc}͞ e8/O⍺ zVgyP pi_`# , L}^pK(L7ښ7jfç٤WMI)lϸloH\O?0{7F=mYݻvǵ0'lh%I(xeo0"߿;Gu?8)d T fN1U3x '@FzꩧG`9Sn'wC{zz/]:hPV0 ko$V{F,0Ahm&ޘq'K{ͼjCA`ޖ ;6a8ka3s ccc'tu: t_C tgf"7,, q4t,oR_@twq [p J7Z%&* vr~(Xj::DqV=+kFjp#,-3L97a6%"`dbС"9k_%b&%%%ab<< \QQqG: s='@{ 4AAA7d?ǯ<N;4Ks _ ͆sx!`zRc=/Sqc…g}6 0GN=T:0&={$A.,A$ިHp!LzvvaX_`K8VL`o&ˇg\rׂѽ={DB&^P.B ƃUUUJ/~  =pɲ8Ν묧ddd0a벤%Ae?}#) ODRHwkĮ^Ck!?pG=+ښAK+3]սTIuBN]Ew~ ¾F[n'rAp@&+!Gc~۾c_@9AMx7ԕPQ) GjBS*)/ ^PRp^i)#^58oE *3ò9 -k값Y!';e楼!m&Zw ¾pD j}_|;(Uj̠R>1؂dU S([[ BSYjpLy$'U,P6 0mOLf@(I&I B$d2 ^6 ntD$B] 3PmX ʤ-q' wWHe騖\C^Tf`F| +3} ;d511\&h0ږ0|p@xZ #ɺV=Y+&k*jDašyEUuU!˹ՠZ̸ofVDUw22Vl8M{8HYMFR6Hu?p!N=My.&)iUy—ǹ>Yd"Aviu>1 x0xc@O'IkN” 29%o1zN-.4/Z2LBHa,B*?.+I,-?sw]⵹z'(> ţ_)(/{6l2U&4]efL ĜyL4Lrǣql%06*uXuT߸u\Tj_Qqr""\MS }DmoH܂NGRݕ򘘟qmL>*>$ⅉHRq1@ fi߇vp+eILmLi`$þ#(QhG[> V}:84i',Yѕ?A`$)r0#1 <-Mc¾Dr>%m3Ay:od˹$cl-K2|~0 do,[6m MZ[V֜QꝔWsRO#%Gx洛~''?o?l??ɦÞ7ėy'J ?yc%?TC3+oXO$^RSRoy_WWG*Y2"˘ͅQTTTYYxߏ[,v\eq"51xrL1 Aa,njj9y,c^eq"'-xvr1;HF[[wxf{>G*K28LQO_(#˘hnnnmm2888>.oy6bxx/9s.JKݷ270EuQ*}$.c֢KsG c#42*7D*84:ChzZ𽤢Dmt0 xsI<k$2[Jk2o@SLϋ#Ů\ˏB $P5x$) &?p(!/4"DSQ ^fpw9UEQb|ޖ򩄓kw:PAnFi*L26~h!M%QZ/e!ԝ/+69Z˒;:F;% T4)8s‡v`Pok_[6GTa:ǐxAb8'4Ӎ#`AqDk-D[<5'&t/\R4-羉#8壖'lCv7|\;jCc#T2i h?te~Aӹ  A&n 1E]G*ʝ l }sX{(4IEߗsx"X(ڿm, DW2L11>F)#&>h'=euyFeТ+F0Lʢx+AB8F(08U^=6"eaU&m2D211Avc ǚo< ;`W# /9a^R37K=F*JXFGНz$)t|'{aX #_VZ\'x9KV0 4z)٣/QeB*C㎚z"4 hT oSAi60Fg[RJH} 1*!˰00 exr/vdNUr;*;j oH`M].P0 *Dx) $pWL@DyX9S2&T "1ZCv5hhC @wEБ%zڀD{j$¬FC vH); S`O2 *lڥ@r}wxG7 T. [%e̷Ϩ̌`zJI `7͡lNȼI'ۨePfUa6#u-!$ P2(eM)b$!Ljb$S7$V\)8 Rbo*%@أ S&F喙AYǧVRAveS>)7˺dL42LFjF۰TIz[f氯PTx%CkR⻊|*(%9(/3SZl1)@Eɬ^c!..?٥PW!y%Uv 7; ӴA`2 {/0$={aJ2<.; dan';SQc$%ۃ5=vWmW&/Ny-TxA 5]`RKBKq`ۑwa8@S>tNy7 `سVˎjPՌUºnX!8@cڃɶncQ&jP)m0 v5(C) qVc1Ԕm~6SEˣR5\)' u Jet4En4J$SmJbq沩Hibu5qPc`7QˠlRCGuzam#f`'P B.lpa 8.2Ԥ)em>Ve¾BZ SFJ]#\)ZW`:-Rm"0<)\{=R;5&RmOb3]r# 0]ywښ1FkXS-19^^MVTOC6wtcQmp*`BQPy09Jc֨"厬ARyښ1-jզ5>znz q.ߔ݋ E * }W^gb)uh-H,me>[r8 0) 6}e]x@i*0:Go!ދU)yőa_?,cW[c7e0} "Y%0ɭpPMFnC2 xGGn endstream endobj 1650 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 170 /Length 74 /Subtype /Image /Type /XObject /Width 313 >> stream x1 g_(x tH endstream endobj 1649 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1650 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 1652 0 obj << /BBox [ 0 0 425.192956224 132.383110455 ] /Filter /FlateDecode /FormType 1 /Length 231 /Resources 1651 0 R /Subtype /Form /Type /XObject >> stream x}QKJ1u_*YN蝸tՈXݡGG*IK>p ނZWx[Walcv7XF9l/s^&[YΒ Kq1tqgÅ۹L(Y83jh^n0?]S"J$1WΆ*,?+*{}ݴ֎ls߼!_ endstream endobj 1656 0 obj << /Filter /FlateDecode /Length 2445 >> stream x[͎ S*~{ѻk{vwբtPnd˱kG'GY?v_^?^tݏXM$n7!so߾[+d=XKݏ_!*, {e,^XOZ P{[ S/ u2h(OvØo;//y I|r3̨hdlRH餖0w 60ʒ/Ҹu L<> A}\&g)ƚ>>mKPunA`b@y9 cCrKϝ9uNgN ~oiy)묯̂ ʔY*"dD-ۦHi.` ʦ8*gKb2|A/|MSq303: Y d';%k@` \aM.G!RQZ_氦˸]ꆸ<5C&8F0DZD[+`c#Ck˦MM#]H-:"XuET(DFfE~cȦY]2XogVUD>2GRrsȬĤ!'!͚8Ue3b6M̺Z @U-x],cP[\q|us\ L\Mi$11ƺIfd7>&q0o5 xt@d|Z(%sbMm7kñ-pP crM;5!in| @qx*NjrSs˖r*h7c.qқ4YhcyMYBbݾ3~ Wjre80>ơ116Vkค}訞 ;PL_DW31WYfƃEH#;QԎ w<^vAPG)u{7PN6 N|rk8PH)YT4 E<X_m%ɠiKX@* Kf7D^M*8ê{9UL4fqV 1X~r>XQ9,Y^Q9*zª{rp_ʄԁ|+$=\Ho"SHR.\_G\R..}rOpЧJW 2Tɽۗ6XX'BEkˇD@:k84%FbI]]&–$# k±Mg"L|<>'tHjs%Qr=r\oW|x850r_|,c0yzhiUTc=sG|̻|%DS"iPf]'"< HJGEr>F娅%W;n{N=#ox?bTqDvQ wr:]A7iG> stream xuT{Le߽+TzKRX9ԄG_`A"'`ysǕǁ<w}ܶk6@j"P4V61iEY@k0b8_2_f&o2c*#;w?)32%5l+G=^Pd1UEV )AmÕ&Tp)A)(" لaCdFm]3fǿR(F89"2f_Us)Ϙo~ 9KSajPʆ,$F*8UT( 9(·8:R|!s8IzKetO1v$Y5A34~v-͍o=+wѕDm%f4jdha$?( e"3RNx&z(+ڡWz''cYKY/g)C*U77C{N$ :Q4hk/ G #EΦ|~4yGl̗qiqnϙу\;1 _U䰦ҡqX69Zt|B}R S=U #9Q{`ODLuXb61tCWQ6Y4Z6wEP#S9<Gq B ``]VĉFb1reysͧk<|mRͭ疐A۠EAP\$iucP5 w`Mbhvs@/< t:e YbV + LbT=K;xɜy#6Kl|SH4 !nBGP‚y^EtI03xIBx@!:9 I*$7җ_FV߮͆YE dhfRL'[ٺ)s ]T*tw<TeH W> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1664 0 obj << /Filter /FlateDecode /Length 395 >> stream xڅRj0+@sp,uA]q(:ؒ탡_ɲB*0xّOyaxH,Eg^LQ;D=pPX2XMMJ->c.nOxv|l2G#e)/M |kOT9bސ7ւ-ej{n p1{ET2Ba*M\m煪aCEcz\24&7 ]?.Jk嚨+xQ=ЩnB?W2̳D|/tćF( v=J+^LhdȢEc&M,Z4hfWG립67R:^\`w4gݴؠs endstream endobj 1668 0 obj << /Filter /FlateDecode /Length 806 /Subtype /CIDFontType0C >> stream xmS[HaˌZή3i*mAAwvh,- SV`+nV^$Kn8jVJ䃑Tb!ߠ݈(;8e#-,[Hں͒u${iy}ikdFőh-I7}vEsuYzX44iΉ8BbW*(>HޡA,˅&.ސ899\g9z|xS.c XFhg8mgxͯnf T;VɰTqPjJH)˹\j׫o{>Ciz Z'WV ag<{TfoD8A!=@wDA&?q.PÍe[k}UNQBzd|XL݅4!J%#jN֞ߥ.~i&%iIZ;=.0%ؽ]I0a3dΛ`+MX ;~et0גE7a \74هEOgӨo a9<Aqg_mKHö":霓z<@X@,R_=gm%ZdYs<>WwwI-vO`+';oáZO9'A3 kqg~ҏZSVU,w؈MA$%>p endstream endobj 1669 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 1671 0 obj << /Filter /FlateDecode /Length 393 >> stream x}R]k0}W=kC)ڮX?ثMn&A؏_b& s=tv;0nq [IEq@d| '% nm(x1PФdزIks>0d k0 / zπKL/mdj1^kSK?ia4YAй LCq&j^yzxGPqqam8YqQcxq]$2]?~K=T&8~3dg1EҁV;Z(X/{a7+TςMj-Z4hfƢEs57=Z7%-I7Z`kϤе>\nly endstream endobj 1675 0 obj << /Filter /FlateDecode /Length 1106 >> stream x]TKTE>UzGUALΐٯ`@b7"&"N01$Fnt#q΅?HXuPJJSCfsΣs .?9z>A鯣ߠD?\u>t !Wߺ>C{;];?|)+oy/xa|Mݺ{ k/Sw377ѻf Vo7a&^l+qh8$0 1kiLY (8_v#a^wYWw,ej"^9˫Π9^MQn+g1kGmW\^8O4!SpW*FŚ%$֋=T/,b`ڳ\요ˁ98#ԡT:vt=ju62u˙RB恧9I_#!W.:asrpډr-99F9qcWCx M|j ګAҫva%6bcboվZrpl/1L$./sk'p^IfqsDxXx٠RSh Z&Z$phBrz0Z|[WG}n7"ѾOr?uhIyf=$u4%u>_]=y9b}r6 K7h~zFxɔNz)]>'X  Gu<[X ܖ*/t2_d87tYɱ(SK^'8jov5^dO>1FrVi#'9Țy҉6F^11Q-s\p5FgǍ(5% a,^)V>QZ;JD$)nMT&<ޕZIf4&_)fK1O xOxx4S RIh6R{z27N07'c-dQOj9РTL_ ]~\=%DiH2zpWt4O?uȨ endstream endobj 1676 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1678 0 obj << /Filter /FlateDecode /Length 392 >> stream xmRMk@WLҬADBU1Joqw f7l|hm]ͼ7fv[Oȝ }@`. GwNмHP+Df##̡=yȡB`zLI~H&Q\f;0 7dRtcxUb;GxwG s=W Oh-P[(d9&::0%jKi4R}RQgրdRxv aПXWm7xa -rl;TxT[iy?6 endstream endobj 1681 0 obj << /BBox [ 0 0 425.192956224 62.443084527 ] /Filter /FlateDecode /FormType 1 /Length 327 /Resources 1680 0 R /Subtype /Form /Type /XObject >> stream xڵN0w?Ž-!$ L>״E"Q!J?bcLw挕X i /۴׸V@fGlbn<_qDd*QYi]Z,#{Krm3S.IՃ6 tНSH%԰fW*staWC*X7Z.XDו㎶bR}NY`Q&clZ٠\BiW::iU/U+\(S27 /Ps5ݟM&:+bS%d6EId,SR g?; endstream endobj 1685 0 obj << /Filter /FlateDecode /Length 1106 >> stream x]T=lE~3;;?9vޟȉЀ"@"!X)@TD4tPF@:pB 7w66ޛ3}fvoc}*(p%mɏYڥ;7Ck?vK޼p?]v,;F߭>^p;y_={ t0.zc0'ǶjCBUFކ#Bp&w)o1=}8Xl)bP0^{= /;][< ֎ʋy1nܥ IK2{(9rDufK'tNgWn'Űz.LFډ[ +>Mxlr@VLvP-ynk&%1ݱ 1wJ_/ܤ:#.O"r>WWt'`ND襳Q~or 5!oըhX~=F|fx4 v=աwjpMqz9ZxnՄHie\}HCիG&!K]ӧWn͊,/3x/Z,ެofEfn4R:u$vi\P_?^(/m{"6jG7eTArHͲ$)^ãiLx+ajp\s2upa.)}`MaOI&^KAPio*`2\i==ˎх*&Z>_=*d#@D1(J4$ick,ɧ endstream endobj 1686 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1688 0 obj << /Filter /FlateDecode /Length 392 >> stream xmRMk@WLB=YADQi U1R.ݰIB|gu!7fiG;s{sLR̒8n(A`oDKF{bQ`DSGxZuisz} OmHt5/̹oedč^JeJIF2 Z&)^x֌HP,\_=g?NYM ̳IlV*qםV2B}B/Ӏh@~mn<'4 ᯉMv~{?KcȔ֪Rj3m+ֱ_*whj endstream endobj 1692 0 obj << /Filter /FlateDecode /Length 1028 /Subtype /CIDFontType0C >> stream xuT{Le߽Be9Z+U@MiIA"bʣ'`ysǕǁ<w}ܶk6@j"P4V61iEY@k0bO23f~S(0ޗLIM7+tQϦ[UtBtۄpE&Zx>\i+*!CR&FaR$UTo0췇O!V J|9#p\5"2foΨ]`\e7 &VԔ?TIpL1Trɐن;ӲJٿ yaG />—:k/tր16i?ά'f(78L/@vYOsk(i6: ]mRlMj-Zhqꟿ( -Rf`Q.1 |4__bC .MM/2ԥW^HbXlij@ r*R}(>J/ (N3r^0ԕ_s1DFĥŕy;Ż=&p =rѢkY˘rJ*ahhնtjnhbxREn^|t 3{i+FLF8 >,WB9; ]YlZ҈>E[VrdңaZBodD^#* ʍFl)reyУ/Ozб/,# *lķAbWD,'}msQ1{Pda; e)vٻrC= x֏;?`YV * tBtC;8Ey C%6Cn~3Hwn! l!lBG~ѼHI *(]SrM_{GJ=|mtܯ^DZԈo2E$uhr`VC1H3k6K8{B{b0'`f6^A]. *2d$Agtrߑos9]u!aP~Hq2Y endstream endobj 1693 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1695 0 obj << /Filter /FlateDecode /Length 395 >> stream xڅR]k0}ﯸ{(دR]AX?hVf h"Q%F`- s=IprL^?8b.KEYmì%-S!kO9',` ցPAa˺Oz/eY:oۣLCq!̋Da>G@ZUΥLdj{n{S]=oӢ`hCzS"&bBU0Cp"#t*,Ac~#0 wa]+D0]afUvx͸aU(c%>,6zFQUFK{1oƞ_E#-X4hjԢE_܀J{C0sgTڞwӾc7 endstream endobj 1698 0 obj << /BBox [ 0 0 226.771646122 68.01105656 ] /Filter /FlateDecode /FormType 1 /Length 329 /Resources 1697 0 R /Subtype /Form /Type /XObject >> stream xڵJ@yyu΀xTM̭> stream x]ROhP6Y4kVuc "z *J;c좨"¼ yPDГVPx(v^tK[g]}0]ٯۤ> ;?#VOH/!/M\>G^L%S9Uc+_ 3(pޒ?U%/Frw>܀ [ͫc`=Z#B@+ ^dh> ư9# ?4&$y#N&&$ܥ"}ao~ %1I^2Hڢi/9TWnhMUqSO5eV3tw:cnd%Kѭ"N5U_6엪[@8X T̤4`.%|>ڢd$wv.xC>3J[viLc{*GE.ELd)ygtkBtwĔo)l3 &83/?sC:m2꒗" ^+!;"ee8fl4NR[1NJ> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1705 0 obj << /Filter /FlateDecode /Length 386 >> stream xmRMk@WLįRE5 9THkܝ6!|Y,fޛy3c`=~vᄩ5C{&V)(="Gd9bf/E6 /-ذIk y>?}z"ri|ٍHy <|u*u] l%ߨ̑ZN]$$׵!{p\P1"0e bΉi樅B/> stream x}{PGg؝EEߞb<\)i0x"% HYXP( DRc41+hHg6,D՝ꪞU~IB%H<ߞpQtyuZX诣,hETF!P2BSm_$Aٟb I6֩^7  T{ ~n &Gĥn3:ї^0:)w7MhIgPN!Yd;z mVZ{C $BmnJ>rUtV\^(J01@@+Q2eEa^:s᫪e}!2(z\tk`is؋lv!$9 +hQBwVM Q{$`)h `0;wb~hPY dxO: 1~DPo2ߖ3hl%: q3^`xsBʻdrϓ͓JQf4R:i\oB BT;ܾèN1eN+uEӺ۾mX^Te2:j,{Iͮj)Z`o*ekRֲ_;Dot5J: 3grgg-Npfoվۗ:;O`G)dl15G&E G.Dy3a0a'=roNp #+o#^սS"\&nm75I5y--`M7/$+2;]P.!${[;k_FAexAɷglW:]e'=݉u+dxjaݦč|dsܹQ46~IM.WgL-K# ZHp mLA=RgYZt= g*(FC+~zBAh endstream endobj 1710 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1712 0 obj << /Filter /FlateDecode /Length 445 >> stream xڅk0+n>tMu6DU59]&%mKz,'7} bпe`+1yݞi^e%@DG04J]+?Te3:K>Y&L%x}Kt CjֲRGncvaTgE+N!lۅ3z $/O 34+:%fi0ChȢ40]ߍ@#:ל[Ѫ:`2NF. O[U<^Bc~.q"O9Tm+xaGcTj_֌K&Ц:͉DFwDѐD#)6$zcv>3ŽzZS?"s>тEh!M{\${{Co݀Txzv6f] endstream endobj 1715 0 obj << /BBox [ 0 0 142.160775267 57.84814818 ] /Filter /FlateDecode /FormType 1 /Length 315 /Resources 1714 0 R /Subtype /Form /Type /XObject >> stream xڥN1 <_XB(HlH!&D: +~}B;q; 5BVb9>Mի 0FHn|! L0#E13rh R )#oazR*XղkX1L깃m,ŋk`vc)H%BM=i ?l 6E.L9i=N=DCF|޺ ֪+&6شZozY'NF*ICeYC[ =cKz-A[h-ʒ V$BB-< l?Rbp]`L_/Q= endstream endobj 1716 0 obj << /BBox [ 0 0 373.275737834 199.309474237 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍK @ @sl܆d~m@Ap@k[j]x}ӁB+ eB@:)ca8 Vyͬ5hù5%KU7y(@%g~F^)w;(b1֌> stream x[Ɏ#Wfl\IU7u3|2`1HVU̚.b*3/d,l×?ח_.z xw) i=]DB CLdճo>"䮈.Qf&Qd8{冈/GcZJ^G9o/PLo/4Ƞ3>僅ԫpwtR^ҕd ^/&[GgAnmGQM1 9 _7z} ~.ABW 16Xh 4e]N 08uH& &6XQ| [ՑEߜ Kiu]&iZ~B,B0KM|"sExd4Sh%cIv@?NR z$Iͫ%ݖjo`<]ڈ/8i1. bM3dz=YvH!U0$YYv}Cy:4WyxVA TN[GrZCts&BzXSkX]5%΃s-hO Xj{ OZ+W }CjA}UjtQ s4 9=$}`'VCԚg n9 ۖoV H%(r~e^%dnopwR7@ܼYOhőCx~ϊ'K /Vb@W[M=/`>||Ni\L@K%9 ,Y!nQe+PH` cdyKU+V5]ma Oee!6O Lo`dp)ƼE`OPK٤<M ~`+pv\:j$2uI4:ʊÖN6u|]XA[rQTڪ=Œs`i30l{J,ĖRd2|9h_(Ӳ)2!+e'9PmXiSՇ\dM5E*Hkmj_ n-ԇH, ?8sKwa,SW]%Y6H%KTkϪ^}Umnw9vw'"~$J2\b8dQH!MoN;.abon endstream endobj 1722 0 obj << /BBox [ 0 0 526.394626717 251.744632555 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍK @ @sl܆d(.h-bK tԊB&P|}>W -hb>Q+hTSYխ+B/@߱@k(Бٍ6Eb<  fCLM>``m"N 2a~lc,J endstream endobj 1729 0 obj << /Filter /FlateDecode /Length 3027 >> stream x\ˎWFaU  $ d)dvT'0$YRXOfgooȎ `{ !:kw~1BƘ1ּ H٧p薴 pGzϡ9Nyf)ו% &2qƮ@#2op@Y1'H I2&zb肑9"9GG=4e! [X pMh½HaJ^ 3)g, >34[B-=$rlti ;6RH al1@X /"h1 +o>DJ j `H粽+BU8Wrc^.yk)h AetKy[38|7~Hga|XZZfCbWdwON"y-T@֬yY5Ì$&L9[M{NFB(Cr96=WMh 9|R/q;pDZ8gIbZ-&S H,Z- z>ڈk@ čG2,azgnU{[4 i&ɩct. ԛ(FM0@ I(o,4<4Ljkc;f>^9rp*#ϪKՏtX58^qH7CCzﱞQR8NY!F|38DK}:[c[ڧe5d!,rx|>:1|dU7@V?lO,/;k}hq{Z~ "0-R t#4+Ѥ'<@clN7:@"QUGF S\#l̗8)kDCbʱTEJ,q\wj:إ+g$LS"> 0<'4ZcDOB+|Bx\Kx 1&ed>=AƬDp\SP%jl ^ó@P5Ӆ%rhaӅWOb,+ol(;yjȃ xX[dYOAS#nrHfn)sxĜ ˃Q^o5)X::&TW"YQD8OOG\. LqT渫_@[ bYjwK ]Sq d&y*ʝ|&*4I(\ SI$qxA׫>a&ٸ.<{*wɶYw)YTQQ LAT 1 Y؞%;\}śpa tFE R3<)L e@ EW[wQzXbu!2y#_SvrcAXGz0*[6[J|e lIjtӱ&&2 *gݵ ֠"V2kk6J̳`# EZОgOg DZ'1J+fE2%]ԧ`ÜPvŒT vFI/pcf6NbiC襠eH֘ 0U\󥺧1]Z ={N|<;X$ךhTk7e9ˍ#m$ 47OZmghB͆"B%]g3tb!buOX=#dc=uPw63vZc[v֩"l%aeI?i_N \Ծ}I^+4-4"{.S9$zJ3 dѬJ.$qZ(I3S!G%t, yt,کQס)3Ph3(m hz5#W&>׭M B{]}bPs5$}RMD-]wnbY%.T }7TO3˝Of y} r8qţnU嬮xWrPc]u.;y픩#NwR݉s]A{Bx,F+`ޮm㼓s6_*ܱ՝ܱUV:{&H2#2ޮʰ?|UBp8i*V8lD=vK䝮)]ҚF%ϺznVIC=ZƞWsC$麸wl h&_57daI{ @yʋ6<5`/[a5:a0O 0h 4 _7|~p [5Z2&pdx T ҷ۽ ܿ@h`@}@h`@}j , wo <þ}ͺ 'ʀLZz_tO:f+iZb?6M}Li}nϽMS_3Ӵ~m`4Qף13M(m ,ҵYo/ f9f& Mڂnnj_njpnjg3۸$ܹPا[{n3_`( (WuSWl|ݱj?%5濚3&hm_2#oK"P?kZOBTJ]{('̀uNۺBbftFp#m J ˒wWÒ 4IQxo>谰҄՟IR68$-Rll,$mQ endstream endobj 1731 0 obj << /BBox [ 0 0 376.065234497 251.744632555 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\Y'9č9Yả$_ CI8\MYA?)5ݠІdc36J";xh=8efখ-QwJX5_g*K"1ˑ=%- sZ<4K endstream endobj 1737 0 obj << /Filter /FlateDecode /Length 3527 >> stream xڽ\͎# SFIA$s[)A~K]S]30,WIER`/{_}ŚCT_H!`b}?g.r@*&Qfa:u,5+Yk<3> )`Ya|lsdO"cÒIA:g8m@ :F!yON2 y6Ba0) gAE1,)@&lR4%gyob6L(H]VQ{B~pDGvH?B Al܄wJ=2;-"r޿BNH8`+hmFٽ[vnAȪ5wfd3.p4ms2(vĹ qDG@T$oNO!$]LkL3>* 567kIh v(ۯ"MDL nHB_eԵ|>7]{b}NR{>o߾%=^T{nPLƘֱSX 7)9n$&Z :at`؉jϩ85e; ~۔>[7"رb^'o 6ɹؽ3snt`Q @lf2E IځS}$5e$DS2b m%0+V =w >Oy£ DB(t˫-Ζ;?9>ۨckM*+˓K^“Q1U;* Rֽ$3Aѥ:f6hlr]"Ess919CRYirWuVݍmpǽӣXŲ*$?.*VHH_j{e2rg#McA}Qsq9[C6 F\J[^qZN6('WS{bi0ŞMq)Qu&nOηt4US`FqZ_iQՍ)ԗh.xE>-9z8WGDPMc-B9(ZubRpKqBq@0MJr%Zi\@Ԗ&]VjNyDJJ@<CPk/TxAJ@Ĕb}0_hnY22Gr~͂ 6u.p :Dwa1f>3xz޿؂y>-Ǎ;O5Ǧ))\Uۇn"~s?sԤB YarPH\ᜣ8gbD3\Qd/+ H}lM!p?݊<ĒǑ"Ge48Hqc Io_ qGS3]poB hx}k:ğ52< \?i-^8%0^ aHt_5p& 8;jXIθGDEy3$SC/-=;u+9-3܀ɻ߅=zLs]m>IQ DgVMַ8 n0{L-m=qP!S3{D D!R>K×6ƟV㻢>WK{}q%j|Wj|eo5/35_ո岻_N15PSo4'㼉g$x$U1I, [gLwf=$;/a΅` d9o|p lkk(xC,ɰZ`DƁh-q=:SybPzf3^&G4Ѽ?)dئuLg9H{n},=r}ҵh|`AspOY@KdC,dzǡ(u;G"#D%3K/3K~h/S쓟'wྏc?3+Z59vav:^X2¦ ѥz,[10 tt*wt=b.E! :3{NucBFÎ S* _>'dh9 Nȗie`˓9VX ^Hޤ-Ao\~W7I?"x_|ss{D&LYHrЗ貍ˁm\] dˁqu^*E8o+ܴ&B{"@k%m`3N{Maf \U@/[ N՛)vM' l4TO U( .!z⮩U$a}HE.8%tbFb&!ebaa!`F LȖNp0Юive8 cveX tvzэ | XX E, af W[v:oZY_CIb/{ww鬅vȮMt.7VB`Fq~1ɫ }GtދڷUzKC7"^{y:ZPGC/pDէWеWY n%47pbX>L ?>MPdm[N_W),uڐreWQtJ6xuVAXr#Җk Â7,_jC+f^*i> stream xYˎ+7WD#% wAV M.9ԣ\mW;u Tz%TO}9r1e#f~PA#LIaz<}{y~zD)&qG_KÒ\>Z&qw=U_b.^v)'a]JomR[:JmOm|z![_b)e-֦aFhoSoso;4:˵}=/PGrumNRCe~ҟ 9u۷8G'* qLFZ;yt& u jp׻}1/\hk0ѡ{^il;jGYFǿ`O剟vL&YL2?"B$}j#JG#9%ʞwjN#կ0IZ^mqh@m͹w.a=+ѻT*՜ 7Sln^jY.LqO9-Lc?(~VD4W=ַHO+0EMG K8@jX 0~)O76(,:cc ʙ߃!x J5Bsvq÷:r#ʽ.XבAyIZgqQk2ets!N(G-;)a}aptoƬ7KYMŁI.iq=2=R^}ap><( 0ȖNESƁbɑwDnp03S 5S-y;vA^D>CQ˯/kI3&u)p.Ԁ1F0>g` $f 獤[l]Q1-8:ȕz^8Rb(#2䀘*>&^Sn@#i @{ /=$a#*qN> n]C2v:O}nKS~ L8oٱ R7+!hq:"PH1^<pq!:u%ݩ# 8c)7 cgd1vR\R% KLnWilſ|f4dQC!ʻIDs&܃ׁ<t 3Nb[ x/ߕSKQ^Tmb֩DɊH>@\}iJ%#)yܱ"Sx":*Tn9F'(4sh+>4p')42.DŽw6v%ӍhT, Cӛ(lJH2 p@TPX&o'xp#u)&Ff|2Q;0F ( aZL@ DNFd񋵭י-(kKH[-UQiY Yyt~#-)n}Y:{{}tڅ3Q譿vξS wXC)Z@%7``wdžړ=RZk6)vUCmHu@lTv.xSG~wVOYU endstream endobj 1746 0 obj << /Filter /FlateDecode /Length 1770 >> stream xYnF) ַ F^\aN7#~hw~`~#KG*FV?]ypO=H.,.s%AR8d%)ޥK2NL#1> R4-^5W0S=0g'%.+U:tuc Dϑ ڎ쨄\*e] &6]\")V*LeI浔GHfD^D'p 7"4^Z낦_]cQ|e:>uQM'TVVL Rԙ |-`\sY4rӹT 8j2 V"yNj"ҍ,df='3r49v*x$0D$9r ,9 MWZ>!9dWC3jRJ[#([wkFa!ih>=Z;NtG`<l8"ueeKoFu5ag| {2-bo!hՔa+cj$aBjKP پP4 doJ  ZR-yq[Q 7ѩn+ ć' s $e]ܲ(L1qKb*vgZMy1׶,غN}Oc]L3#w@ٗ%|WrL],ʹm/S0FcdcX<5LQ-!S^+[z=FɟelzOAD$ !ݗ ;8;.rFe7o  l}|So#ncݜEJ@G .,]ɷ6yjE2!xRh)w:@p7u>z9)F3V]xa\&hqp<Zw0r2o.[BSB3fh4@FsxUr6$,sr1H]WYk`b`hX ˿.+yCVEs'仂 &`."O endstream endobj 1752 0 obj << /Filter /FlateDecode /Length 2434 >> stream xڽ[n++n@RTܝUd }j^qZ 52{HMu=O=zn.  w\Oih& \y$leIatĕ{q6"GUҫVϩO'UകIL[]شAcO< B*+/{9% GO_p'?j9dX95aIU>9<9eAi}]ur*@ld# 7}"r-1qp)ߥWMɨA`=:X9*#dCZ̜"~=f4P|HVM&B΃,P-IT&h)٦JFCpO)ꭉ-ɀ^7<) l\~AI);tVU&^K!Ji%:Yh<^l `(v*w]qFԲ)hXo-?Qhtb<TA,!IʹBС+ki],cM 2ҚVg|su=zWw21kquwfsl|& FM~15-ٸpKjg+k@mprYmDf0z#k&eRk4]uФiMߝ& G X\|8U#8HFksݱrM%;y7C0x q[d:fx&)fx;y€R.c|Iw߅CdZ%K+9N خ>{~z@:2L&Mu]>!gHaf ]]M|yj Hr0o5*r}1Fٟӌ )5I|Zpp,޾+}ZS+zdƨ$@'kˁO dvFdN8jzDvEgqcC>zoYP6+bS9^_W$P^;d$!*-6kTk>Wn]`=F4-95яl1]\3Pn/҈v3eyDqQ$C0J8T(ʻ[z_\0mKjYAVۼ=l4UN=2$=g.ְeZA*Lfto6S:z6mT Fhn endstream endobj 1754 0 obj << /BBox [ 0 0 401.256472919 94.439142401 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\] sƜ_߬0(i%! ;SS|R<XL{~|C;]{WM  d)>UQvΣjW"S`> stream xڽ[ˎWZ*_E~0$w7Ud s"%E۴:scYUz_Ͽr!&m?o'+}a.CfMp2B%s$CܚN\!3r06>bqsfv_ixRgySUz4bkhAd|TW*EJX_qp-l`?j5TH}kO9b݁6JwǚN7t`F!{ a"-|aym&,[LH!꼐5Aa38gkRc5\OɧƝĜ@eC^)lQp9rLX i ?"J(ֳOh[a%ߤS`1ʑM-!Q@OKРf FLR;,;^./5X;λE'KSAǐmshu{b{yryc>ܛY0|C<Ĺ߃."$"r XiZ8)lpn(sۆ n1w1oK:WqxTp?BU6lU,қt놫Q^c04V4$|c u`7XF+( b noܰ taVhy:nq7)!A,5,Kk׾lS#p6b,q}vDi"jZ{W7raRT4_+KO/&5xlqGdNw+ƱzHL(!`~oSckv~ \EFwuB|RԚ` lyڅe9$)@?c4$tAt]Z8>8מ|pkҞD$ qs͔N5[40ﴸnu/|T0$Fa0[8ޅqO6v)"QIh]^fc<$m0 2è|zY/ŞGc S [j;/~p.㑽R2~nHHkH˔"h>ܝ%&\%br3]T=q% A ;BWOTUއ^Ztȯ5qHiAM(dAk2ea-:^]'YB&WKj:PK%,G͓-;Iݮ&R-Dg)G{2? ;RB5fGLVNx|.S(3G|VM"}I})Ʋ w<ع,J)o- ,m 7!V9 D&0`t`Պ iQ ['kgeQ!%b1?I=:QS74} Oȯ?% (bp/=L!Z<5>!@W߄~a j#U56zheJPŪ~蔶 endstream endobj 1761 0 obj << /Filter /FlateDecode /Length 1992 >> stream xڽZˎ# W‡^ ].zd Y _*vizjQjuH!eBrx{EwLT,%-˟M(%ְ%Mvow+g":`||>Y҅aE up%R^^hWe:bYhS5IR)5KSPE;RX-ד TS"g%V !6 SM<*e])J&L M/X,W>V .3p$6pAFV V[ N!ؑ@qfdjA0ęٴgB!<1vRF8Ph Abڎ" =[!1L1q;D25iDfy""=>bEvJi?B"G DBtsP B$v'̞JXXΉEg A g< 3f\tKxt(@B\A)4 ǎ=*D)Ʈ {$!lS%w}(9Kغ^.C(B/=y'H]G'Beَ"d\>:"d3@}$b,N` QLP0eq7%/;W4;`d'AR =k]"ʨ7J%eN )`8xMɡ5y<8xVAԁ/_c (1$l 5BK)?yA8o3vW`cˡꞎMӫqW|'Yئ8)b*/m.+2rTړlmpi7G;@\,6sg_3j$*IO:c y7^Su%΍m#;P#WeS~ ̓23iL CǦMΚ"}S4*":":Z9) : X\k\!zqBpĀ6_i'AApE@ʿ)&|'>f`}'OdX4'=3WY}GuNZwCyxY-8΅)W>t*CeiYZ5Bx uח~)ѧ( sQ_#Y/oQ+[6F@_E  uCn'M/Ճ`C)s6ZW#{kFσwOpT9L5js١ͥcXX/$I0m߹4z9`+"ޥ[W(:թlubZWyWѪ$7U8%2l@!VfI3mlJ1 +U%#T ]j{Di$%T'І}[T=\RWM뺅a}} La#"ꮹOC0-"xj9XmՑ$5NsyO-f=={kp{}e0akܚw endstream endobj 1766 0 obj << /Filter /FlateDecode /Length 2637 >> stream xmWiGꪮsYOwwvv^8ɮ($q;!  ~?/@D -!HLp HNC=c{e} !C3:uk7KKhc^WS>dBxo?tw@Y/9ȣ;tw򳘝pE']W?_É_+е+h #x6Fp8/W5OE@vFJ)Xx^=B;.@!~ B҇X pl \dž= r_Fow$xGytxc=u2x6oG)_.<O<$v xzm_}xPZl nkyꪲE Ss)]#h9 'N%v=<=aF[ Pk)N'&C"%Fa,C&Gfɸ3iɹRmN sozZkR1"Ү"+5!o_5tZDQ1@҅,M!Zʆ0NTz'nvj$xL8IIk;8qɻ|E6,0(O۞p;Gw6Fy7j/grc[RŶkYa_zߥowT\ *t=M JolU/۽{Mn|Kn(,ZCD#2tȃ7X| v <]C$NeG>> ;;aU6^xs+Nv-~t[mWZDV9v i0V:Db*X;z}G noqݒbw8UK". +iX`~٦A(;8Wvx2\$2+i6m1VVF-ZYSگHZy`ЏNt"N8NӛkuIƌٻ[.k &3a~/5pcލrЈlsvFoY@7_tP2R.ϸZўVE2~xD&8X˭*QYnr8R`ΑCn;$N~p*!q?.od^,A 4LJ'sC40 oX#rV푊,.hS\]V`<1dPL<Ì ߍ]n>|\μȮAZ'^7J!7s؝5<3;{0S(/j63e,[HiziRT-fmLjhg۶"^0\q_vHBuqt DӇ8;De,b 'xܓbi)QWiYcG:`P.+һI'[ihe² {vhYVpki6[(QQIi =*h(3޵lLڣFΖ'a Hj7v V&-UNDX%/5zU;/HW`}ݥQ5ǍLMOj]{ۦkFe[n(#*8%]'ї4P89>sSҸΛś=+!$. *@ g(q&BK5nxcӓMY.g@N6}+“Ү8 U|DM[[rRSԧ+׊o> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1769 0 obj << /Filter /FlateDecode /Length 471 >> stream xm]0&z:1&psp7{ttI&㷥C}ga㐙!Oh/ޱ{Qc6E_! ٴ۾AEt[HqʋkpR=Ex)CC+JBsUs(Rt"|^']Qe_BBY\Wa5Uw.9cApRt ,;**(V)?"z ֻ /z E/0\* l6c{٠}^=2(ۗ<oþjm(r~yײd|򐳧jPs7Ri( N-iPJoM#\}ɓz|)8G%Xgj]:v*?ƤuR:(5yبSۦ^yð nxȦV5; (z`4 endstream endobj 1772 0 obj << /BBox [ 0 0 59.576575634 54.566144171 ] /Filter /FlateDecode /FormType 1 /Length 214 /Resources 1771 0 R /Subtype /Form /Type /XObject >> stream xڥJ1yy8Bobn'E/]B% |KYr! YbX@JrJ{DN$ч=y G 2u_,IB^5X,<&)y"UXd\WNēdOɑVqo>>O>-`zϑox+ǒJlU2wR=Q^Aoɕ>Zu endstream endobj 1773 0 obj << /BBox [ 0 0 455.858645314 111.917528506 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\4? t9qc΃oWAJ|!fEp͆V-{ª{~|C;]{W\ze 6OC<>&#QN> stream xڽ\nd WF$E C5.A/r+W;R$EǷ?xCn?hј\Rq"Nc̛(i?sko Bp^s:"N 7*PNGd/ULeMѩKL߄ m+o[o.ɜ| qu1 >N&\˧ub2: aM? ?g¾6Pȵ[tWp#Rh(]]Ι c|:_v|~]!I @$۬`9Wc bEj3gIy Q\ZWDn bH?m| h$کDĩl2KB~+3zuo׾dY`dC(nCX CNgԳO>\> sIesD2!,_p2l&s |W"X>"2 Ș76sb/0s\I$#uSdrx@Q:xOkOš'F{6mpb\)54΄U,X}qм,^tKDy ,e[/Nq!\X(ŠuM8,p( lg$t& =3pqXem SSvzx~HmK/Hh l 4{jhK""ݝՖR]RD;sdsT5V(ͩgNAY=-DK+ݿ3 [}@m5n {*es%#{=Ϭ]tdH4cj(iGƮRoEeDL"FY)`)'teUSkzvNNw`!ۚ 1dcdjTɼLq0S1-PYƭ̤3N$OK Gx. &HNrN= >ySUxI5F< 8BKD6N# HҪ[PUWV57#O 5O ?S&Td@eNjl}j6HJm@] aD#䧘6 -آm[&EʶK)im򯥾=amWoe(=R DyH BJ<"4cuc XV'e%}$mufR?F"xHO'RKk8%z //%Iv2/ U|9Jŵ/"![0yIU'&0Ln "x{~Ȱ 蓃a~8< ۖa/BEя(ẩQP2@0/SuS`pѿH15,x$sm ڽdHˁ'j{&g4Ƃ%E^CJ?2/Y2PV,HMi&3U :K>8՞R:/װxd!=L6U(E/aD: RkDݾ6@Zْ/& Y*!t{O+zEH]X0okxI,]뉄Wb+K $h1;vϲ~Va0@2,_XS6G~O҇ Gf(}@+/ cPƯ CVhEEr(?K+УVVqk"rF4g ݧ` /_ޕ _dΪ<_1A& O:=-(|gI)Qv7&+|4yW}m9kpME7x 6AƜf.\vFHZ8p%>&l pbrZBK`\ȣ/i-fNv;s-PpnwˑmNBs*KC hϾ>CʍM^}iͻ6+#cXb_-O BBcߏ|G>4xT+: P/)z~ޯ4T"F3bg ^^!)`2ʴ0Lris”+w$ܭ?bB]mA3#%F#Կ1g[A)ogeQRY}# (rg4FԖȶkiM(iznv /(iGq XeCn`\v' hgンM>`fy[71m`_LEm'+U?8%#I@ºffնߤhޫ?*+/#|-{zog_7+s%f >WZAjykIHu x`5EP_*wϭ6wS6 w۶݂X0$ot.O0p[XSu{jjT2:S;Qٖ(Li2Y׃jH= YdXXQQC䨙 ,j| e;^$5!C6tQgRd$IM"#OJ J6 ^^nʾ .@ãRnubO^,Q3AٰY؆M {ڰId3MϷo&PߐG!fUz7ߧo8Y]4ع],wUOmVq-J\ucFmmH2To;iY۽\%xbp+}@S\1f?to$Z+cir5:gɵ+|Xc=HYt]Jpj/Wj\9%KG3fnKXՓng;sO`RE.,sh+zڬKjo-ۄ"~Aڳr߶Qr m .򌹰 ߚ> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 270 >> stream xmKN1 97,k;X'iR\ 6XC@v<o vV'eTwv x>'v ߷ GƘ)]-Wd kWXZG2꫄"P&[_WN09kfim;y@6eTVB 0TJ ^R %Kd$*"qPW(Pt Z0NjQ3hF62n>#4_+b\ endstream endobj 1785 0 obj << /Filter /FlateDecode /Length 3222 >> stream x\͎SV˪"$dn=%H.%Hv[ZdI?qO//?dCn/nHYUR}g0&C&SuG¥ʹފI/>72;\Ur+Gnsvqf<_c M &ȣ#9z%PwrS<o{wUZ=]-N:g,'#eyZy piba ϛ$ÿ_b+&HOQ75+:OЈE;H/?Fc Fra&(%\w3ED$\A0=PvzpbL'͐0β9T)w uLFq q d=kuxN:7L[Vso 2dN!PoC6 DZ萳˚zuf`LXL1H꒚f*FpLK1 /P Nvf ,Ľqa=VOi/^3Nüs;rf*g:97vc 뾞}:29aBWkCO~j]MmqΔs=58ʝ%F8IBGl|Gl>%‥1WT0KSL2E}E-kvɟɦm؃`E"g@< '88?UsRs8S s fP}I+7du 隻XJ1Ψϕ UE.g!JCl\ hFtz2TeIeG;Qp)b:B.`~{[0/ò D-~bXEiR`9`^,~ h9l;*-p >Mq&(_)R ,biߑ~@qbwd, qF0y3Asř *}83@DD4}TV:Aj ?a'E` <#A'g Oԗ ʏ: ?c˵ bn 'g)ufr}j%3Uy10zfMܝz^I< -rŖN䛅FOh9(yh/<0牄7*%&opm%V\˒*RTB XDÐ;X;gZx]l9+6rlIʈP8Υ~%*T';`~Q @|Bs-/|,&qu8 .n}}(V' sO탮x`P\A-h6#񎱑}sNhn%lI6L"̒m>ƹ)mt8U}+}\F l;)_R+f|ălX!do2> stream x\n#9)H@#@b' mw6^ϧr)vfal$?JH*?;Կ}} Մ2 Cp VeJXO_~gݟ7B$ ^oχ5(]%=/Ȼ9QhQT=H[b8~)C B|.:=-JuR:^qɳi՜JϹ+Z\nEUB_D%)#,J\3x\3gyNIϢk|!^11zིAϓׯquׇSeAK^1ۊH>i$$Ja@9BiX){X>c9N~z}?VV bAE"%]*Liy¤ב`oH3e(N/h >RDphd $D /&26[GlSX^IAs/)D}gɃA^% qG`L0@%iaW`H+47Dp8J{01J#  &0byZ9.XԷԇ^xdFxY *E#s'TOd !CAp s7=r dAbJLEz*I(~N&g# vݓ6 V;F}h1>M؏f 2[Ƣ.;.l5X c Wp.cQtC!2|&,(UqU )cN|@Q1DGZ+ =۷!T7w![cH#pb14Jp]PAO;;AzUs'*f<7;y|6)O*FAИPA|.&a2=Lf/h |:hhի1;4=[2zog [i/I/ezA$QE#(O8E@E᳆3 铆ôq3=)umJ7W>7545%[Wz\ yǀ.SxlgbKO^?pz)~Œ 1dHk:p vM&51]: 3q^9tǸѪN Ny4lz' ~@<=:\Ta`ҵ "tu<c¨Ȥ7O(*WOiPF`Ƹ& 3eL\A{qcjcT@g?%p,RSO 8[z%WݖUhQaQc+f=^j4?UQĄ)=eMan:Xߕe\ea3FdpPGJLRVmJ=#%Zq& 2$6!lCe$MxDN˶*:-ez[pr̅5ٹa!bVyAsUantm,/  tc{e2J{ .ǹj& t Tkj6 0A D?ת lCq;:17:*,.L7Ciܿk>_ naMCrvTK窊`-^LL9-۱ɓ@6[ɦ=ٴɦUq#42F3`†`y6#vlf=o0(0viT0`0uS/霤݈qŚl8 6@Llo4e͂R%[cfGL;NVinO8-siUH8>A8ӹ#XN՚pZ c2`Kiy[Q [շN#p{i1NFitP.ش8 6 낍`-٫h_9xKDpyVinO6-siUH6scrarke}|GQfβӎ΋5!#.GnU.٥]:*ncVf^R7uTf漨gƜ2 $u^~<4o%FDb0'VōDӺDcXY0AzQag%4Lox/cUEn1G,xS`rNu:?;S,b̪cVR#6  IZs@d8e!lF Y HDT{6.\R,[Jf66&ͫ_)iABSfy> stream xڽ[K%fX+X, dozvu%RR79=n%b=)iKGwfqHwhs& c|p+}}NkåZyCMpEyKLTYI8ɲrA8%3>C% ZƑS)Y\Sp9\\;\kO0_pOha#g-H[y@a@7wP^E: C$@yx8(l>_*D!' Wtm1T(CO.Vh#,xvEO ? ;^13F5{e2 ZEJ0ָGSeMT,lmwGf)qCp29x5)"H)9Yzx}G 3>#Jw`Q`S+q;L`YPL:m"_m@Cz鸈E -gybUbw{@8;>9TeyUzVѧ( ;@j-p֭ GL &Mk_uɑmOrTs1u"\ :n e$VHűf[jU`۔Z`#TꁨBߖb?<) ^^'nj=K4Xc T^PKT=$7Z)P<C^&ʼ E覠e^_@OJ K[h ȍxT$45Ѥ<]s 8sLzfSY sMwP\"HY)ߙ6Ke)_ipygmAIv2vti-7H=KsZ\>175u&p (M%uX*PRě\`׬LnG2!c7N_GD ҳF G\ť KiI2J0M= I}DOPÀ圧<3VJ?'IAX~ @<j  vObcElòiHp&KG0 p!0)˒|9틼59y[&yg+PPxJ}7A %-SBcx^  ͂Qޔ2*2΅GB.L>H[ݜK1S// m)SR\:/>U6Ls^!ARDD f5 vo:[ v> e4Cke(S~*ef0ì A$,J´FeT f|f9ԥ$TmrՅ!BfT{%YrYov]*- 1hȷh_;-m)+r2 !<ݎ)qKu e85IyUQYI_r t6 h)7.Mš$5W:2uI<<%: o^\ͩ*XWF;ӱXbWv veQj WR[~g{b?faJSXy%*r*CPv:R6?2u'}U[c_n)ʏ%z>'axc sDPT͜|GڙSԐ_P >'Qh `X2dȘ3ʺK*wu*OQ&TB{AA"UHM@]2Mk/qhѕp-#C|wavi傔8*/}ݗo_>u_~E9LCI@u7@73rNg 8F,x¿>PPz>6>m춆m!l+b>_pLPF$99N vbnibkU?gpq/*R.Fl HVlt%Zx(A5Dm ]zHD*rB2a͋p޼@I.+` }<7V,ִQ]2 )iR8 PզnI) q7 *Aqt]I 7H:%x6Z7$92Wy~8I[ļ`<&u6IQ77I#G݊8ϨrJL+] g$upTS/5>4^C'`cC͔ endstream endobj 1800 0 obj << /BBox [ 0 0 343.298643879 181.831088131 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\&sƜ_߬0DAJ|!ac(yfVٚ_į\MgƢ$SMD,K֌U;$Iݩ`f]pf]?/˔/Kx endstream endobj 1804 0 obj << /Filter /FlateDecode /Length 4461 >> stream xڽ\Kqϯ&ˡ Y89;Ëڹv?_Ė\ ldMylwdv 1y/\n'#I.D?}76~' "5I$;`[C^6a)pN_Nv%0Lr1em{o0pt|d|}>KoYJokŷW:poL(VS# 9R 84?bm= R̹ȸ!yK:Eڴ3L%O[,e$z?Ie+b"f˼RֶQd[ c-52#a#4b(WtQ&@ރijk^&On:{TLRq_:᷀Y^6G8f(i,եPT%t=AhuW>o S=8;h ó.ߜ4 ē'-&vB<,kcLHBbI \%.-Iue%i59مoh'[( X'B>vH׏Z )`Y:54k'QAxvPl)]ap2@ " % "5Ι< ~8:6i 牓Rr7YՅ'$8ɮKؔ+^8L /xhc ?9*kO? mul³F3R Bj~{\ڕ@lȏ]#oq?pҿ%\g4<\JC@k9 WIB0;dHQ`E͗to5>e'[2k`>1D-ofHN-Y Ěb@cz9Mq8EVzDb&}9_ߔi,2DXo G-ъ_Rˑ8\ٱz(G).po[- o5elMud &rDܸB~rgöxQAFg2_m칱yd4.4Ndא= K0$TD!S9UoO 5c{z54M€*_.H8lIBҭHЉr7 Ã+t~햤 uH iߤZ%=5ǹlfΈ=K)j4'L&s ָ&u:Zp/I*s7=jzҘgoq}:wRiJ]@N͍½c]:o! -OLݷt4OEG \Ql:%b9˵\7#~hx.eKȬzsj7p+Ox*|%iOQ#,I=WDrF,LmLRqfk  8Lry^8[TiaOڤP*"43||Z٨硢CirOh>։:6-kJtL3^Lz:\}a] $o]{.:ꢽԜMiZFȄ؛PkjJ`[ ME+uBShਅ#y՝˥\}:rdդ^ P V8 +R#P{uP,0)+G/F*| 0M+8SSW0O*X@j Ax-z@ͶX// _Q/M Ҥ iR&iR& 8.5qܸAFi`6MS@z1UAR)h0RH j)tpV)ݤ i.Ė2TQAMC%~NldvٖWWQ= ѣG̎F*}Qq5]nA-*퇺P>15۰xh (u- uzSX5QPAhz7%AfV¦DN#U;%rnFOi ,9yҹEs.<(TM%Z-לꥦBF ^2}Twzrq"\Av؜zXj7XZ2(OD-MRlǶpVZ*Ͷlk`Ll͝$mncF=Uc9RE0sM>1@[Ј)+}B(zA,FDIu߀@OIz7A )t PG[G늠Yci=jTkkPkk;Ax5"_mO3EP"ݕ5Q'@F7(T2e@ǠFAmEmxǣM69ݠXs%qK *äEܖn;~uMASR<|U=w(/Z՟hqEUW_AA˸dB[ .;8vq w[[)(:~dv=Ql+GXœە}@-ЭiZ/&xE;7Z@`ZDktӮ-!D qШEˋкD*eFnPKlJ/m *6Q;#1ޢ&{߉>tFQ0#QPBLN>xOÊF-04Q/-M]>qO k:/cfA+(R }\qO"~zyOtLxΠrR=/^*Hs/6bg6cG]5U]lb & ۆD1 SbTD{ UD1Rq~@Yϻy;}?غ ~†+gѯ5pPݥ\_]_o WDV\oqs|9Rtb%$6Oʸܕj-ƯAQ||./Nt}b]~(p\H~pXV½8$Ŀ9׊/ZADx^-Fhww&YIJ [yT=I޾iTې@ ظYs`jȶU%[:u3/M {l|<OnE"WZO ػ}QiajΚjޝU;[%u3(4#ko^Wy"8DGϕu/yoT ͈2| :P\84w*$b۳nӺa^[P5L8&T|JkO{UY.:wP֍"Z (@}h:*ma]j 傒 _B!!ꮉG (/I oM'yK59ՠz9T+G#EYd 2" u s:ISa9Y՟/$Y4yIܚZ5:IoUOw(dr~YDG}_}DO\ _tA8;ÆN? ᄃ p,eH6pKfVfiHN ux)5?+5}f!o';7`yGxnɬ =?ԠvRg =} ͟Xa"dq7P> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\&'9č9YePd)7M~!Mce(, 2to] oҴ`Ƣ@olX+wgEdxu> stream xڽ[I,9_Q8;B-Պx7afмa}YK]ztpnvc6'ސ|'|L&y1|L&Mi_~k9uB$P($6XYT܅xĻ$):h*?!A Bi%NTa` Q0 25ԈG=ߣdj&ٔPP,d%,!v_;:~OTO>E/ ߟXyARBY#(ñ I"UTI|P">"kO.*+0^w g:Qfcَ4}&AX˳}:uD[UؐMMЇE^ o-[-ў/*rz kCBOHJ籆8CS3= #4:`^\e9X Mab\ԭeAۍ=u-Kqz?DS{9Xil>' ܎ZT'I1|h|Jʙ*>܅uDne@5C蠐~t ,`)VZng#CxR-B;)$կ1.ϭ0D4mJzwT]7c0rk*gW,IݝNj){i;=t+uR,e 5r(z/X?&7uANPN?Љ8N+/sds@x ІmWXAZۈ ;X#@G9`KF'.rdQwS9M= .O)S2e@G3fl?{ڀ/X4m pH0YYbKc[騡׎ó[}XQ=xcr)wUr(oJ_@"@y wAX( 3y7?9IB;Zo RC#UclAB];`<$J3EV&a/ `ތ`.9WЖCae<@"ֳ9Wx\u9"UXû5ֽKm^4uZZCRv@N>oR0Tva!PJw-۔_adyT[(OЌ  |O=1 [E,ÂxE{ J?l N^BSҔPUh_d;(9 RL_|rylhxtbF^G1gR&~b@O4J͂[QVLr׷~6+rX}dd1I̷<;w-1> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\isƜ_߬0DAJ|!oB8l e%3l pM Xù< ژdY婟SM֐M/S؀[3npWI^ ԝ Vo3zbbL1JfgrL7=K endstream endobj 1812 0 obj << /BBox [ 0 0 428.404804006 146.874300718 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\$'9č9]ePd)P|S2 Q8Ufv:O[4m7!t >9M}FU)&`IV%{3o2Zp|;ŚyoudI1ssLִN?K>"K endstream endobj 1813 0 obj << /BBox [ 0 0 425.044206783 164.352686824 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\i sƜ_߬0DAJ|!o"8fÂKk'gVٚ_< $ Y` )k,伃艓Svk *-yEݩ`> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍK @ @sl܆ ZKR BHfEpΆh l t] ִݠފ00,SylP7U =Y6ռK1Ejիp}Τ !!o]-1E:rf/6K endstream endobj 1815 0 obj << /Filter /FlateDecode /Length 3924 >> stream x\K# %GWDR hvX ML6l6C~>mvu[ՋmII> }>ݟ/vGf{Nj3I.D߅} ݧoЄ\m"r))01DZ$ۅ`+[949բS`1r3El7 L6҉Dfdhz40Y#Fc &[AӦu>j}qͣbX&p'19> F);,(.fK(ȡQG/7Ahq6AlӪyo^*:]i^;s†L@'m[%'s8t3)' l!b xR^x̗0b,&*ΣKV.7t-D O㩷Zfܹ4TFrSH: G߯x 4%d)LkڢG:qi888Q: :#xB#q90pA!w ƻhYE10^zs,˄;!NE)؁rm5T 0!(⶚,t>ىEE}uE)bғE% (LPl z`SYx@L6PfU,wbz(l0@SD!]B'ZK5[4Aw]&&ጃԢ͚@Pm"9el E΂:r yo`=jOU)JQA  ,C_(iNU\0Tp`SSMU\zG)}4WTCz \6Ms”ڌeKB>z=S"),&s0WEP78&b)]iAXuI=ҙFP}gFTPrl07,ʀfo? )DcӅ6jvDt n@P/KQ]k.k?|6ɞz%Ċ27_n>{(w-ۊG޿tǍ㾶HRh`#"Z Vw՝?߀YÑ#["k"j>ݖec)1I rL6\ ]2|s'f̨rG4̃nU7c⋁@&[PƑK/ass6MKq)2Eb`5策Zj!]N e1~.mC.VK~9`w{3ݬxa_d`4fk3@XЄ[f*ܟ  (%cú_ 4dž !6h0axd祷Ϙ&0'r|ƵCk"=󴭯OdQ"F ✃0e lł1ץֱ֠"'6la5pTбToY^߼_ 05Ϯes's&v1/#3hU6Oupӄ1;kNIkMx3;ljᎅ]$)|(L`bNsxDk:ony&C\)l /RDC8?UiS8RP#8?tdtM`&Af i(;L9Rhe܇6QEC m b+։Y nVl9h)TL捛Eyb;|?T;.)ӆK@ %N"TGhV;!EA,IyQ@EtME5 v@.(֣c0$a=ŗw@FYUnF &U~~.բ|e+z'x|VY`v7A!8p::@]矯ҫX{g}iuϸ ~heg"~8F;.`#XK'^1:p.}NфG:&Vp QBk>zϲD%kEsxb s=jWIF?Hq5`5cԇ2}"pٺ+_j>U:|28 @fLaAh~o|OT! ;b, :J~~y@\¢heDl؅Z0\CG0LIW,L}4˴A&әlԺ)3`ű=;J#sXtZu[f%sO(}BxiY3ĥFKw*x?uN~:+YΥ-d>bYYӲ͈pk0DU8oPw!wO='Q"> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\$]'9č9Yả?BHP'E/ 'A"L|oVٚ_BXé @@UU0(Nirtd(57,9 ,Tj\o]dDޣ˘c"2`ワS J endstream endobj 1818 0 obj << /Filter /FlateDecode /Length 3232 >> stream x\K#ϯKbX+FR98[CU71jJa/;zc)Y˗çߞ]G5)".rLL^l=:XKݧo0艉VI{ut<:cfs60 Bxv*}|䔌>~~!ceLgwYMk$ ~qD|ܹ^:ikt1&ç:•xeCB9W0H>;_:ls.Ɏt-I?9q.&E׍^Gzj3Gb Nl MG!mQQ;YuBj05/_W-%D'b0O>Z R)B/(oPHl$gr5R<&7\4m΁⥮x+Ooq؆Ijdts``H~=O M/ςEl59!X5.,eWyqYOd*.S Wqew[ fDqY']׹\pBqóA)P=dqTae^<Lj_$}ڬ衉aQW#qIϿ+0})goU-jk(Vu"gLN,I+U>D.y9&0 Gv=h?yƲ޿\=M f؊>auEoiZN&(z'a@>:enk<; `yy{SE/D/©I8$vKT"bcIH:] Љίxw1 +nINBka:tۣYX ;ol$@oPL*S0օ NCH9`[m@1CqEfe',,ΰ#rvm"Wuco]=K VBDyϻO(ͦNENW{'wcOu AFՌts1+71bCNM=J"u -l}3q+[O8QHE0VXܿ.d1hvrT±9VBĕ,1/?%g| Fc|""^EcʒL}Ez o5/ֳnXsw %k7ן}o?.uˏ?68AmGO\Z)J>~Mfﲁ>NzhS'2SꈂME2&G?)??s| _a'@N: -4|]{ XqftAc͜@̆0(&)wer"a Bt=Gu~<?G{=؋}-5͌)+@i u`TK;@ Bg+W_>]| d}dh: xω,""Bb==6sԧ h^{Џ+#PFߧIc^ll9.8.^)GY[՗N6š[.&M E(V?eR!pq~Hz圈dgPz>9pyNd<"8bo3B2d=6E_vSQ+zQAO^W0AW0-ʚITBw(#!cc>cu+G`t?oJR,4GFLj}2 oD+•PIi(qU08aAG>.~c6O_UM8[Y8vAވȸng_Ֆgʡ~6<\/\]K1J6ݔc2xzGK^[㴪秬o/h endstream endobj 1822 0 obj << /BBox [ 0 0 468.930855605 181.831088131 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\$V sƜ_߬0DAJ|!do"8 >H~f[A?N)!Uts˜:r;od/ƌ[7np7CdasEhU@1!JF!1g39M]&RKV endstream endobj 1826 0 obj << /Filter /FlateDecode /Length 3040 >> stream xڽ[K$ ϯKSw@N8ځqև}Tniz4=5`]$GNߗO?˟9?!Dt_OON,RAEZ4Yl:XEUUuo=ߤGr DZ4hC,t82&IJj*wUb1v>a}#eBX)h,O05 q_';=O?ij=b~3 Vm鉄ꫬChR1^uj.ꁵr4iY#̭Ji!D> 594 9t0a(ˌGA;y=mt zd?] -SwmtAn!k؊3QG1B S8Gf^-wf6Բhg.$. .qmU{k~ :FR_  V0MZL ?dI""6D"jA=Pf\3}Ar<'aJz]oL9(< 9OzW5vNCG"$7 9g?sخ&ՠ<:E5MN7| J٥4C&9 VkrBY7ܒMd >xR-Qgh+]@ 2!ʼl]Z)5Pmr>ax J: >eBWQ<0=AC@JC2 gVHR] ^;=xm<ݚ}, ]/HAmXԜY ! ;zG4d"[gŒ${+  4A2EeҾjf52nٚ3 6ڜ:kw%Q6Tu^k弉[-fApyIp/."QڣC}}5){]&"P2xAπDIn `uQaWƣ5-EDaSpG&s) qf16äaaG7΂'5}FLM"q[#q)P@`NzפgOa)j2)IbʪTVfU/[1Sau(PTҔ`=J/X67Es&!pf 'ŋ>r~hkR.>5\E|f`JǒXrg*PRwӵE qH*o5hVl3 " d-gۦA#^Q%|?:Ȗ)ؘ*}L~uiaSؚަ-4fwOBZm:[s9թhfsj6[֕3J dQ&ȦoEWIkXgUҨ!L˦QGxeF6㖓lG_t C de/!6/nEmXb$fתB {eڽS"_T)kZTWCƝUa`4 ss_}_O?7ݧz&[BX ߷Ne#1vWO_||A_EX-g?FH4#(^>̃>5/2^yH.26ߩӎZ c6a>lF6{<%Ugy8+@#/\n$i9BY7MG%Xq;A'QpM~3u1".Vb5| ~CMEN]i*cl\9v c|7B>1S(vd<r5g 2Ż,Ųny*T:%bn /'VUb3t쓬R}wJVfCG\n'[L$2-,;^2 hMkmɴփwA/קg(ryEL ūMTBsk*hꗪ6a1'WapCt`rr=:yԦ3@6TZRqMYd߲UdzY=MHSˬz kcIʦ͔J,ܖ]g;P` U7tzMx>rrYx[ә'i[~}-RS" bJ}ѷD2\B 4ՎӝX@TķP&RmyyQ(ORO fwrf#s%1[H"99y<_`xWǾW:c9\HV:_"j`oǢH;(BMӡ" ]ps7b/R(r˕4' 8hT7qzroH]O+O2 q(pgH"Kz6z8:3p1T`2<j7b9x endstream endobj 1827 0 obj << /BBox [ 0 0 386.587604223 251.744632555 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍ 0 }\4m sƜ_߬0DAJ|!o"8f :A*[B=kSB8Wuә! 1m;oE^3L59aefҊC GQw*XZ5._wVSJ8P J9sYi2NdK endstream endobj 1830 0 obj << /Filter /FlateDecode /Length 3250 >> stream x\M#ϯ%G1,?j}0&{[v~d)5ii@fb{ȍқ㛧_O!y>X˾zвXoy)URoѝI-!E4ϝVѢO5w{xFYY&)9In s`nHJkt@SG`Ig0;dgV#F PYY[9Q;ҵ0Rik0z^IaByWİKgt1- #\0U w ^X+ xjY^.vkyWni9!i!K:Ԅ[r~33|v.}ޥ}~>'JI*ᐃӡSx mnZbq!)U!GK߰fŠx)&`a]?ܭ8N"eo1rd𤂡ҜQB6B]o!-hݿB9Actp5sŽ"+vca}|4:v Q!711'q_墚 .-}HNtJe@K9抐!Ex+tG:=(8~ ͊v4T;xbbޡn3f(jcnXy# 60ZMHyŐqT0,ʰ6am&}Xʰ6s6w 5F.«am.EkO0BKk _4pZ@U E .UuY ͸N2Ϛڅj`mƐ~V<= $jmBw:&w`jVQ+ajJ˚.eDQ9c5(<ͧO?xͿ/@E^5ZL=>AQrKedh70C1mBz MUCd[uöӓ`  W:`39H/8=iJ`X-[=H|^_o[,r#߸ţ[yw33D0f넍ΘSd]ʚPs`8%v.52g]\Kvf8&nF=F-n:3CkEkuMia2D-f}}O z_VؔԘw =h/Vpݳ;9yGw.Hhi:"Iұ*, ::T|"P40R [AWنӂ%ۮ~MJKk- >m瑂zak"{]\U$=aA0W,thMzeCT^`aDbDOrD1,L,>L,Te Ѯ̢>_9LvݜR0YB/pE kAip,Br0WL/#,dM)c]@Vtl(<"Tuu6F Dg-*eBnrwbUg]`UXR'o]9iIL`V3΀КزF6Q/ :v򂮫 qds,Ψs^o~H+=ErfJ8k/Um98E"4&U&>ImQXgwWIn@ 5Uk1hYHC$NV-SW@B xߘJc~MOQkC.WXe%"bx!$i&N+,'sBmZ1E0us:<19愗E1kiš58CASv8qh9tmm(F[Vu89f$j:v}*7S.W=_KkЬ3$G0m.Uwӥ$B+~D=H}> A\E{ R0ZDjq៓*WoArp<1<-2nʃF0=\}.24(D?9!JH[I aur^񷧦nKSݖdO^h_(*.R?]?^<]?^wox2"l'iqX0\RŅ> DY&tʗF.2԰G{Y C CC :8UK{8?T~8˯ =taʜr67@}C}۲#Z\6+b#@dt?X*Yyl-> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 174 >> stream xڍ 0 }\&sƜ_߬0DAJKB8]C,H,{3Ufmz8צ"\Mg(lʱH~FRn)lp,֌5S"yԪqxfR)bVM3^|M]7KK endstream endobj 1832 0 obj << /BBox [ 0 0 418.930095516 164.352686824 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍK @ @sl܆̷/P\'ZjŖZ^@2L ! ycT: u&YU6 /hpk+q i{T2:O%^(w;xoѓe#N "5y !zĝ Tx5αeq1%s.8?ÏuXK endstream endobj 1833 0 obj << /BBox [ 0 0 416.937613101 199.309474237 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍK @ @slI Zօ7( 䟼7Y!6Ab]A*[B=kSUta1)ORn{I֣Vvk *#yuEU=2d(3g39M]BK endstream endobj 1836 0 obj << /Filter /FlateDecode /Length 3699 >> stream x\K#7We"h09vIL*jr=HJ$#ժQ}~\hRǟV 9sMk}4_Rlo@B$ YMI(J}O$ѴޛhT65F+7y3O62 A)[|\WFwt-J6B!}Rh՗%j-MciqyqoӜ]VEbvn{05&xxB(1'H?z۰78@&F%&ƏtO}D{'*c& 'C?42V Z'e[KLPcujYLWd}1 lIԳӏY=sU6J,Mka ޑ &SYoJ6poǧFGXEk]Ai|\fVSĦ$s`--WKE:Mlg,w _`ۆzlڡ J.`;hm:&Xcupgb!T:_"͕9qU쓭m ΍/|@m-&ZmZ2ڇhE-9TXr4ְ+YfӒbgD*P%>Q6wSeo)pc9I"Bm4qbLrxPf'1I0z.yM8{ ʢ6l-7ySXǓf"1G #c3unSYJȷuWbJnS0QG)|"N]l] 4/ZZut' k@~ng^[(g172VH:JdU_=< Zۣ'OܼHbe$:dovDqR- :U=| !8`o҃p2#yW>tS_n@'ӬDۙV¹uo b 䑳L9"(5*=+g> :>͇g^ ŒP?DM>_}(&.h`'t [H׵d5"Y .$ָ) '^Ԩ縻@ŔKAL.imL*)/kY(M@ ,Y.J|J"e=|lc N+>Y3+}I7-P0Ô9}y9c g:Y 9u`z!h[L_|n`>`PFT>61 DSay_`HLU*48%y jhÈp8)WQkaTj Lirjm|/X2%ÑCn SiIϷ@ bm@y#X`hWRjݫf "\N3#-`V)SV_ S Fw\:M~bbR>>g "[W d7ytT'@ ^էz*ST$G+xY$zIB 0%ıP`/KzQ!պ+X 5+ ?.o^<{}VB`ˏqq{J7TQ|( f9<(c}ހ/!ק`>|5?D1HUH@)@& @JU$B2{`{$?%+8m?v8 VQⷁ5㱓rI&MRiwZg*R{O}뮻|_0`3Pjkb f9z.59`;{`6@c @ lD)q:kWc-41 @p bQEc ѻwe֏w˕Ĩeo˧th6mw 3cØX;A'M D:IxOKSHqqXP:KVM0N $zOE]_- 56_C:HϬ r9ҝC^HN:.FҴ;HNyZʢL$ 1pFidIbnt?7sWҠ[!_ nT?6a\nNsiqD/VI> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\_|A}cNܘ('_7Y 5^xf@ۿ)A.Uta2~F>QF UDG,&[5nHhBgMTRո|>d[c̙̺?NSu)7K endstream endobj 1838 0 obj << /BBox [ 0 0 455.434591595 286.701404766 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\4]'9č9]aDAJ|!P'E-MVtuoVٚ aߟ4[¡\ aP ̓ܦ@s+cQ=zrʑݚqK̂d%xT0 bո|7މ g*HNI>r;NjJ endstream endobj 1841 0 obj << /Filter /FlateDecode /Length 2456 >> stream x\M#ϯKbXU 9l2 ıv9?)hfٚ5QYŪb꽞՝Ɵ_>?tvw>HG{N0|=x|rt>85{|8vZ~=3#mDxU4r0Nwi_|GRall1o sU)mg:oLxR;ۼ?n/HL$5fICϲq#+4s'(M^4JZQ:qHW7FUyxl gI`2bv;IFSnsz°$…IpcbaqwCBM?C JX?!rX4E<B:c4Tæ!Tβ2]"DeEȅo2 6伯Д/,v8(M _4vZN'HY~8J6*a")#Q: *KL3Gǜ>6x>MR-U4LFbef,0.] ;HΗg3rURלPPŢB ׊B܋^ GEW)&Jq6VO9cS+ji޼Q5vي9{`2^;֤{|㜗"h2(*;[/Yq\(8"J }M2R]aU_ПmsQ?MޭRIW?c%$1֙R/U0R%}I#=w!*PtGfS{wOM_јIftW_Hy1AX-*?ekg.f}̯We|=l#[~vl=yrSdSV`dS+&o{ѤH:byn 'RCPm43Fq>ͅ EbD(Dh8y cZe|M߯qJg R4\s_ $VEV5wı1!jާA!ׂ yb'vi|#($?Xx^ bl>eniv!t !Ww$/P"+r7 vnEbo |dU9nUDJR>d07BtJ{3LYļ/ln6ѣd{?k9$Ln⌬כdbT{H T *ꭌA.g)߰,+0Mf[,̊sBv-PG"x|5c! 1XUFO| аjZ~,Eg0$VAdM*b|7K7+*n@QnW٘zpkL ~Dݍ1uXOE^dmL]ŦG |qFISep8}ӳd8rOC%:^0B8vvi߿yҧ}v?0d=406m v#ܙ^R TXصH`ar|zu1tkf|8\UTH!e4ό"u@&w.%6/`;sI"a 7+y$ي酼3mK~-:^h.3Vf/9˓M/;.*h\f*.xU#V7V#! endstream endobj 1846 0 obj << /Filter /FlateDecode /Length 2660 >> stream x[ˎWªز  .9IIhM7ƴdU`k0W{ s3h^4?_VޓCP?u~~ [?<<(E6[1\<$!qV G|GY\ b %'\+g m֦-/0$"J- &:к 8Hk.xYj&0L`5(hSx…Al`m@c/ n"dc\ڬ纸\eA[WU_O[΋3+w2;ޑAc!C [2+[[0C3~ 0T\Q< cY)3@V[D2-C *7{38EAn[ GŗRn+hGI XH"58Tqqehb?UN{*v*ԝv郉65a o :('5½h~4nfBxW/}!ë&z\Sxd%O ^$E4OqCVOx?( yqYpL(~zb§=Ş~\d)1=MS7ñ|MﳽI}7:xD~=_bx){e‹ \ ]w>@Pd;[ *[(ݢ`DA#@{|><ݔ,#\_%@9GPgœaKFK-\W0:V\5%Dh>ݜB2]KH`m0.p_>R&T|{ဠaNnit=")K 9J@2hvYXee g͚v4pQkE['S=yD-O '%'xc'E:Pj[LmzGm|P„0n~31ACu44P'Y7*F x/iqK`5Q5CND QfrڼmT3q46 kbﺫb|E0VDp*apҤ$”C=a|ᜩ ҬCn0.Ҝ5pVD:ŵ} ;hشsy5` Bώ4(c 6iRs~J>xΚJly5/2=o/ :ϵ HMwyd}8s`mpeJa 7}~SџALpPME~|cf`#zQ-^dJTB*MRJ\'4>ME%Bx؜jLt*gY҈)%#]Q'آNM׵}K]jihs0QroF$tn}׻F˂v2wga9%lZxQB>y-;f}[pZH-E|׮!֡eFtKP'siߧ q㬡~`olx{=Zދٵ[3v3~Ɓ.vAݐ79KDF.I2 !H K;1LsiOY#$=^\.IP\rdRc~K-ߥ@[}<&ݯGWM.CgG%<c+M=D^oTWqQ>ӯ|UCY!Nh@W1]rE3:uWEݧh(m->O!G[( ̏Rٗ.-uRVd:E z)9-)-*Mstۢһ=\ kvuoI:  k-8:-wgX%!e' H[L|;O{tEɼS~(? uL0(&=QJ$oe 'R\>ҳAPT) 걠_Ozz THC0R}mkrs!<1OY Uw-|Y-U׊i5ԍKXy\Is-f a⥡M-eWS [J:eоr|o_Hӗ@qy!-|B8t]HֆqmJ8BKy}b{n GT 2tXt4DQZp8 !HM-G.s{ρ6x+l}eo6eoP|eo΃sͨ5PA6P HX]9錮8(v7@ݾ?X$xt G/Q1UnQvuPFk@Gw)QDv@H1 /Ӏɤ}G0Fq A]4Xts$.0M$\0<OpT ] endstream endobj 1851 0 obj << /Filter /FlateDecode /Length 1005 /Subtype /CIDFontType0C >> stream xڅT}LSWw%>0dfdȌtaY!Y€aRVZA ߜrH$|%S27 m R ^zU<LBI77oݥ-TvQq rE OaG٦m}A_ACc# ! B)`@D'#E,xr,^{D,xiq2oA%E<=ɯIfX o wE:be=!w l?haY]T6K[R_WMͦkCiR[aBɥwt~>u/ހ_іvoTUC|ܳ-ŸSWFqOLf(C*l<.M"(?gbds8D*8, jXT>%G w q >*l]4T&5!Su.%&S Ri@,xB^E}C=TFj8(%j?} endstream endobj 1852 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍRj0+@rp-;M ڤCӗC)9&ĒCߕ_)4#ϞV5zsXpf4s }D(jqF- f> stream xŖMO1wfLDVAܱH+zہa||Cg& elVFdxZ!$)c3WAIX$?tG4v,"Gڣ&)ZJ4LF>GWk,uwnc\kxa}t@:\v1'KDŽl͉QGj8cVb톧 8t| 7 RKX[zn~l5ez8ǚIXʢ)r Nkv”SEbN[K1o4a:͘ תZJHю\QijB`^j ܴ}n!dw-F^iCmd#OhKYu%X'oX6S ]{w c'J9/D*,~!-rޭXM+dc,Q86{kk?EΖZ$h endstream endobj 1858 0 obj << /Filter /FlateDecode /Length 2138 >> stream x\ˎ+7W\ 4W.j& sT/W[۱U\Z.I!y$?l^/xlӋ51y/qx{z0D ѩvk{ӛȪ G'67 "YJб?N:n8XmfeȌ7{z)yBR(ח ٕɝnMbz8@j *k`&cGZna5x^=ޥj88.jvǵ_~tX}ZvZMD"P,h_ljZWSq֦I_[DNVx<2kmN<6H.^C.Uo݅gm^Dwer|4 .PMs b+F$jH_8q&8ԜfRէk6XXfk%V+FlJ:kʪ/ToB//kfe;~Q?EJ rEJ7@Ǻ3"Dƈ,UoR,6GdEE+DV7žݽp!<1[aL MM;0g:R"b u$˜O8eWf8>ˆ58G>/Ȟݹ:\y\)k~w<+[4Ud`"k#[ B}_<ѳD8?ÏxNtG>k(<, `F]$BZ2IH /"9#_%_  gϹINk?x%s+ zQLFfr*B,ng0 {,S 5ˎXhU9UX-[:RG1!Ĉ`R)"}NIٯ1fNk&UNSHSE]j^% >kZr"ӌB#颕*iO9V"MB$F'He斷: [}홚Bi2cAxT&>)9K<>3?Ş̗W~}%n_Qqێk׊ݼ $9xи*(}׊ k-REsZfҔ] M ZYkeZ`Z׺ 75'^M=a@T'8S? l^h\J-TѼܗnYT-}%ZBEr_0mYpj^K-MJhZд,HتܗJ`ZjBZׅr_qpQ/=I'Rؾܗ*-iCv_PѾW}]©y/dl |$bI䬗z$?UYa5L"[n,djeN_mӔL]ϵ@}/p^Zi_"6t%/,dps+ڛl:c)PX/+G>VLh$ջʍ)r#iL u_1E WK O]iuSZdJ4nI ;Ҫ7kH0jݏJZ>EӸ{OelToOUmvTߒ\LcAG?"%Qן~ endstream endobj 1863 0 obj << /Filter /FlateDecode /Length 1005 /Subtype /CIDFontType0C >> stream xڅT}LSWw%>0dfdȌtaY!Y€aRVZA ߜrH$|%S27 m R ^zU<LBI77oݥ-TvQq rE OaG٦m}A_ACc# ! B)`@D'#E,xr,^{D,xiq2oA%E<=ɯIfX o wE:be=!w l?haY]T6K[R_WMͦkCiR[aBɥwt~>u/ހ_іvoTUC|ܳ-ŸSWFqOLf(C*l<.M"(?gbds8D*8, jXT>%G w q >*l]4T&5!Su.%&S Ri@,xB^E}C=TFj8(%j?} endstream endobj 1864 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍRj0+@rp-;M ڤCӗC)9&ĒCߕ_)4#ϞV5zsXpf4s }D(jqF- f> stream xŗGyNN> C[6:V2HAsܡCXn&@YKCʱhMY0Ew\›}S7o~wSe I% 3I:Sa-9C&2]`ӻ90Gl~8tQWn^JDjm$Hweq4ÈcMѓ"+dv7z29~N{c PZn= ˯^Cۮͅ26da߭NӉaJaLb>0@"yp-(K_FSB_R4tSTtYZZ'zƅ& yBp rج@?)Wls"mT_:ٳ4gyi-!W JItN  Yc sI}?KLqE 8ǚ)9-$+Ǫ0iSX789 ۄ)kbVv񫥘W0 L's)p- Tj Fb4v E<RcNfEF >Vj#^Ru/#۫#VoX6K|:ַW{hMlt$ENTs 1==@J~kZCDmqi[伭X{ZC4)똇h~m3&ݷkɰrbI 7z o+]rC \pv:C+iU~enlKCCE+(VG]ۣ0yr:xv2!Pe4~gzr%39)C~6q-Cƪώ[9rRnOE\?k_I. {k9ElKF\V}WmpxhʺŧYid޾Z;kU+\d.TTSQ !!#<4Q ~шEpm=p|Ë>=-= endstream endobj 1873 0 obj << /Filter /FlateDecode /Length 1005 /Subtype /CIDFontType0C >> stream xڅT}L[UWxt {HclLfP3ĸ2Jh[A;6 {mGt%b?:,q3:cW[|=9{rIdIҏ+\kៜrH$|5%S27 m"R6^zY<LBI׷n߭-RfQq: rE O`Wծm{Q_~cS# ! B)`@D'#Exr,[d,tiiU<{GakO4Y5:0챔0D}h<4 ; c(:sCt\nJ|,a}cUm^yFŽ48R|Bt06bjt$r hߠQm됮9x qz/7N2n_` Ԁp=ioh"(5XO6473Me)WqUY8p(#6{@mqNJBMqm 6@*>&96sE'?g=aNPgϫard?Z]/ؠ "^ PPlh7T.6 绣GBo- C;N64 2=,FFgLl*%goa-)WfgG귴9wv)Pr]N]7-]mOk5F-lK51#tYC #IN/(?bds8D)8, jXT>%G w q >&lQ]4T&=; S.%&S Qi@,xB^E}> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍRj@}+>j/HjڛRwG]0ayBv!9s^.{ .c ћ.4/RTQh͗h7gOX}!AMp+@om>|+B 4j؝b整{jA_&ZApăS_kf#0vt䶍)qDCn1FI|#skb}_ )j ,lN*0VঝJ?')}g^,C.[#] ԫ[%MG,ftIuŴiqunt8LH0eU4܀APEW-zTׇUFeN躪=PUOn46x 0,o #Ӯz;+_V]2y endstream endobj 1880 0 obj << /Filter /FlateDecode /Length 535 >> stream x]MkQϽ3|N'44vntm!hc-Pwu?@?@Wޝ4. (WEܨ㹙}.s/H6H;]Tc}(wx~U ovn/b"6_rپq}> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 1883 0 obj << /Filter /FlateDecode /Length 369 >> stream xmRn0C@y!BHmR$y4DUR1~|mIb ]zrg*>Z4\3iJjHz;)H trfrrn(Z8O_!L%,t7+:k=$&}k;ʚ }xt)J3Gx𬺂q*{Ap4 ʈbR1VX} khd %'WYSUg48P,.ڠM^3fT3j2N?Օhb]eOW|-c}> stream xXɎ7+xɱV>H  /ca;~%6[Ѵ `fZ$k{|;rvs(1'LBa;|o~wK8ȑbcTH U4dω``4 1R?O{jEB$=+$r]}zwvL=YRA|`Q E듴䵻{(̗ =+Ҥ뷻29E?}JMBg6ak(zP0}.Ɍaz{'&ϒڵV$ bQl6IBjbϹAf*efh丐$eɥ h yDp伍9hOU^5_pugNmԚQ!ќ#.crA<~lbF^PGz{IS|IU<>GǪOd`ӒpM4PmE%R+4 4YxӳtZT^h#xR$֥}=g@9\9>:>FVWp:\YG=ºZt^X5Uҕ׾ڻlf-9A##,> EQ[L)m-b"V3?ݷsf#}biIZ2H,cB0Cf_P/7 n@OQ!9>ʯگ֤z0,Ŭyomd@?rs~qf*u::3{s.f f8Tm/n(XOJP:*9k}%02:y|Tl]1%uKLGYyRiU33U!!=<4"7Po{&6ш%wvl2S5IQO TN-Mce;oGGQYSN)b7($JhTT&'E3:bXw;a%SD #FzMba7W-̂3ᄚqG.MzEu_zd; endstream endobj 1891 0 obj << /Filter /FlateDecode /Length 1174 >> stream xYn6)C  ;{kbO-Kb{w(Qc1(4o>32tNy}|:H=`Ym|<]$TK!Y@bwߺ/g!a&XBe`[%$9.Q :2P(Ĭ0m5yG#@.)G?l+;)NJUݙGuEs:)rtɭ]&4Y6ɣߘD528Lzq=hePᇍAr7jpmHK_C=x_x\95"2gDfvENI)\!DsziЇs9]FnmNs{N 95tksziЇs3h9F#ߤE=ٰysU")_2Dbc>̐/~]ETxn1Yhȴׁ;M&٫}Vjɫ^0 {b?Tvlۻ%o:W/̜u1S*,J 4a% fL4;P'k#QP4NMҒpU/_XTcP9_ri.֑0tf @WY6J%-4-vOT "4X+qY3ߝ lw%lCʄmd,aKޫ┃s" /3ݟk$D2YrAje[*FR}Š)^ޘRn|,9Km~4Y{WP_gV`m_mLwl4Xћ/¸G>Xg]p6KPRJO;p+9/g9ImiX\hQks? Ip,Ws8g1ƚzׁ`S~/86@gJU|Y\K~*^Ԏjy Ai<s.bv/ɛLd[F< q OvB*ྟުȤ2@lO U0 F&`vAtjLˉxVĂaQ!)M;h Et147Z(y endstream endobj 1893 0 obj << /BBox [ 0 0 526.394626717 286.701404766 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 172 >> stream xڍK @ @sl܆L:xB=R+ԺNGJ(aO^WIs3Nh U.ubp*UwE}4;6r4ex2n԰-J怤ݱ`<Īa|1XA$> stream x\ɎW;pXdwAVU#H)Ғ%[UhYK ۟r s73蜄c|pV61h<|+Ӈӑ[b|t9:1|:c,9O|{3Dy!bI6؜n^o4!~PxtEB{{8ooJ[)_j$*A5xwpA!VmX؛>fuVq'P5v/{Q{.J'f'?ۗ=H0QHY<: M,ϴ.T978^Gԡ\H'%XY3E&<+HAddϕxD]OFq7kHy̛B7/)H[֓R<.^gb9 `4\? n&F;DȐghh6_LaZf2c/_$3 Եs2ю](DΙQ]|(x-\1;󦦾Ղ!BZ&8̺b x- z{ETM>I9NEϮ S[|bsen7;/j]-\ u:Wr01}H[R aYn uu<vr!$lExk=x׽ =%NK1ؿylà>Bk`ܭJA mT`mNSmvt%j0ԙ1ZI+\¨D,}*tŪz46u sjɞqXR-zQX+TPdW/ Lp Oahy7ZR4=v3hZ_]} Y;TS@NHJ\*=] @ oo=4e5l`k>+V!QH }QEV)4@[T+LJEb\;)t_JH`/Fw \;7`fa;V5!mC ,E-?!7雿>b}9Us(%ݗ7˕+izm R ơvEͩ7lAS֢4ѩ074 i;a?v-CW2ỹ'DhѣjKXkι6m'(]8WQ:7n{V4T+g=zO2&51^C_-'x OtfbIo1슬 BakbTg1elf7inŻNo6 Tbҥ!b{Oq `藸_%1u fpc lhB}8g+KW'l ~b>WVhMJOn5Z^v 5sV<}o\Rʹ4 hNi@W[zOIҮ|S_:{a=s@ RIUP ظTS ]FŒH3P8,|TZr;l=fסnb7FA7CpBѸ1C;JpG̃`Z6xi\bs 0̈.^'4r,X+M\H:nwHdŞ}{TZiAl@P#,~3;FlSB>_TS]pb+Ε+&zTޫ֟b]b)?]wB_ ~z̀$bS?Gx̔yMg&blQA=zH[s4lKM(!F7S.llDɡ"wuz;M[Q6Istx\(m$ e`[xpZ&Ͷ]"wL#KysnH=|!epX;5>fIFZu!>p{}Qele>O17Q&bӒx%GBQ<ғL>=/L'_-!m6E%WK2p{qd}d> stream xڅKSaqOhZؙ](zE"P!Ωs^7'vųhg3 \4ል_,0s مGUWN)Ґp}uPllP&ApbD%d5Y ʾp'ic&2?LhtiE,DʐLt`RƟ Z9saVu{ RCLTd60.\ R[5F=/֔4:{ g}xqLRCT#D*p&FͳS)Z7Dl廥4y+٬{0Ee( 3ɢTP%\TfKt&hg3飱ŢoM#-nbSj7כQ2UmUt;[rC3$#0 GuYh܁!o隉lECd\no>e0 DK^ VB=V\hU pB+L>?JMa3 y}x|>n(wDpq endstream endobj 1900 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍRMK@WB{٤**%)"iP;&`ɛ7"^7fB7yk^f Qh0'h7DZOX})A=V ?4|zj5M[ܧcnx%힆e)V\3ƨHgwk7n6R SB۶(FG Y6n YXsR*z4)|N*0VJ ۅ /4!ӭ. jV)G ?Y =\T,ȴiqMNH0xAEU5#j^CTYvs&h47U74T endstream endobj 1905 0 obj << /BBox [ 0 0 76.585029041 45.303500545 ] /Filter /FlateDecode /FormType 1 /Length 485 /Resources 1904 0 R /Subtype /Form /Type /XObject >> stream xŕ=o0w[:=ůP-`CRmAVIUC~E5C9S`&G+a _w &(d"Ql<?ϛxM7K l4""0*]U|pw*BNU=Eu#\&7{s$1;AHKWBLp0081`)S \q^gr0w5g&PdMTӁ3GLiEyQZή߈}&PrίYwUUNiW|t#1*b4.doJ%E^gh bE@Y$@hd Պ{^kYQJz^*2\tqɓ %[vb+N{3;`ͪ-lV嫽&aUzZ|SyP֬*+.YaXQ[QV=[M<\@# endstream endobj 1906 0 obj << /Filter /FlateDecode /Length 2942 >> stream x\Ɏ SZ(j x$} r mnWB(yEM;wgw/97krI(Fyr4)ݏf~ SSd24Ox%MJ\B;D6-9&J$aigk]52^>R T v-JL3f`7~D~ s;(\v1\ݿyw*%_hdixvƖiiqjsMӵ8߬N8,3A2gCl^)sh\m޲Q8r B %M|MrhBrwyw_$`[ i 90AՐrD'va\|j-ﱑ,`92f]*`tŽt9 Jݛc/؟`m>>u:v/!Fl Đp͢oj2e*:L^Y Z-f4߫z|VjV B@6>.зe(y/FKjHȚ(b/85VJx."c ;"PzeCqwl4x!dAƅ(?_!9 먎>.oZn Ԙ>1H[hw%g"}ףv>%h h͞t&} g--dGV2XyuDvLxDŽLdP9N%.X })7T)s^9 T}I4x+X6>hO 7~uCAsGj#.7:mVTdA[ J^aC?s2pkC:p@^F^;O;/W7{ZZ+N'K/yԖ(AGP~i d-)'3 n5@-ftey;_铃 }@|l%:ژG|P2<*A5ܶ =,EQ(QR H|!+&) (ƨXG*B8)vh)ImbuyɖuVZRP.tL6_&Z`^ђ20*{pP'܌Ln3x0[Q52g\upؽJ`w!St>[_߃ Ko7xVSs/Iяn\-\YU$m .:.ruk|6+7iVtd\*P@s \L.l6FrQm#lwx"(n" ¾(Bݣ}k!7v^!+*=~&ԝXE%X8ARxyOS'"Eho[F[<ŨKDHE؀MCF'Ǿ$xZ@+ w$Fknr`JiXi1ۺT t5 dR@YHq#6zFjd_ 9}}H"~[j[jp-Żlǚ0n/Ȏx"펌'y_.5Ӻ暢b L]_GQH`8 #aZ}x8@;}NA n~kg>`i~|4}fp1|fYDcm==cQ-ͨ6wo)pJBǧ)>E,*3*9E>Ys~SKhVOC6WSUᚇ9= kr~ SFTeeAÄޚ$O 8ץZȈLRv`cNi愈K_PؒtbNq˞w*MCKBǽܑѼq\G $Ʌ`nVo7ȀD%n MM׊_ 0ЕX?,Ylklmn U(r@Gvpӵ+S7D&LQZUӚ2ս_ 7p-2 RU[w4 P$_s) ެ:T""KqWa s(ZǢ/Kή,}|&GɲvwL,,1m:EXGwt\r6M=@ g X1H D$[SRDaMu͆ endstream endobj 1911 0 obj << /BBox [ 0 0 395.598536737 251.744632555 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 171 >> stream xڍ 0 }\'9č9mả?B(I`_NU:7 x.mk8Mۛ!t >sm\FU[xsݙ-HVAry TBU\/%D*{q{,u/-J endstream endobj 1915 0 obj << /BBox [ 0 0 398.400453256 251.744632555 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍK @ sl܆dv/P\'ZjŖZ^tЊB&/ ! {Cp(TfQٺ ߚd n:ta6~F0w;ǨSocJWxeNEdqb5^sJ9Gb`%Ȝ ά6Uw͗K endstream endobj 1918 0 obj << /Filter /FlateDecode /Length 4161 >> stream x\KoWpӥ9yɒ "]iMdѿ ER6 DQӷ od 7|׃SARyq11&:|v$;^N>gnrctcH8@}bQ|4F3YD808*ntx؇;8vBve (% S{NҵOڡ ,ܷh`)2&D̩@…mkb>yq'{ϰl %By2dӆ%bh p!HLLY=yP0$x q?]a!ύ18S@VM=LXbf2h,i'Kp/Ipi)Gܛt#<עDQZ|,޳(;Εp.#5ƪ oh?eAV#qʔh\"stE*H9Ou@M5~\C컃輗 iTŖ5[ pXBNL˜Yx KR?i{۾JxؓI jL{ ]'6kDA*DnSjϼsX+4Z bÕPsP;4ѿD U~ 3>/ZÏyUL16f ߪ \p<HuHTa t<:Rt)?c<|U"SM'DPρUtgQW r˗)oxԜIz hHҢ\bXE`S͘ō;0 ! |DSFcJfx kaE0JKѾd@, 's~e95Z-3{[xj]\&IŰKdt%z;"z˅pxb$&22Ƥ8&f.QcDR K?-j ~0o\-ԹBs'.pMTg.(${L~Z $4ԙ˹vɧI ؒ}|] \v'?k]Q""µ:Pyx?2r =_T=3(){1P6qWl&7HYa@b{2ty:X_9Zpk U4r@U1Dbǖ J;/; qhXȽOސ~(r-ҏ-(-O=i|z֩E)!bġ̨X$?h@]rvyΫ"0'er1X.R9(XxGHiTX{9}T**:$* lz# z/)%J% kduKN/;yhc_*O^EҰ8E7?~רn7~SPußp8{9;*vR;*4f\GDC;LE8B[:Tz0ZK1("b,K%9/CR 3 #F} ptEl좇y})Z1DEԡ8@b CM@IG 1F:c$:L^dŶ:&|v)('h\hEPqD![(:u2W | Fh4?E[B*DTaCIKyQbQ/Q265AtI<zgtc?zn$#qB@Y'o D* F2dӿRVL#d3nRϨ3aKNBV`J LeU&x$tі2͌󙬢if;Is*0&AKl.wТ0̽}"*d* .d904S.HJ&Ҝ|1)o_#11;kF G!DEEKJ1*4g\e uU{T&yՎ2S=OD7O̷Y*I@NOO0W'qT<:|'t{6֑f?=lBU]m4=X&V*i|w.ؐa*\ J;tJ\w~iGAMM.>2CM7BbMS:-gEZv2QFE6dYKdZ^؉95uQ[,Uw=#T X:K[zĦ,ʉ2PN.I{/'6œ]?'14Vb/>5y PcE@"2iULk0-9Xhp{zD i_:ԡ<-yLE,rY,{GʝeGѩfe-6bn))!|&gNlv/T]]y("vh׌-Ηzhh%m.*=jdK9 `0SSyi !xQ8Tҫ2fϦ )Ty~MSɷ^fbC˝)sʧĺ}e6TgĠYTʳ;qvVlЋ:fE%Zcegr͏Y Ȅɲ.9dX`vG(H$j 6"v{ `Q1rj-tYDHt]udY,!tS zBJ-p WY]>V7'ݷ Uc%8J';6@Up5߉? QGtn9X>ͫN˗ ڞ̴-hGpd,(Կ/P",5Is豱׫lnn$hꛐMIKJoW%*I*Ir(AwTM;dJ%`reL$0Fӏ0>+"'5ay[xR3e>m#%W,Ѥ{ W`C?c-q#--ӼMxV :;;r$9h/N^;ԬYK!y*&s.|8 p(|!Vx#e= pڅ)|Yjsn!o2/*s@Um hH|B+ԝ6{=8#l?Rl[bw@s$DB0K8&\~bD=*MU@M!U<߳)r7\<B*$,E! J\&0GL\56ooc%\y؄Q\&/}V/`'wO":]e# r;F8k rNHe#J0Z΁ldcTd>&A _LkokX=isiC;.Z$\7d4>je x(UHu /3;~`AG1@j RD\ꔝITde"BhRF3 %7=fm.c +/gQ)F,e , κԯ-Q:DB',~.,QX(СjGWUDF^blrd\ӑ4@ul; -7#*&,+D3eoNe*z8،x+a?L4Bhڿ@exE2G;'NFg4<4*FT }uҾVTUĖDBR˔` f˜EL= 9i\"gƨ>4|c*@_+ ^ްiei5ǗnCMR7:h>>gc endstream endobj 1919 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /DecodeParms << /BitsPerComponent 8 /Colors 3 /Columns 595 /Predictor 15 >> /Filter /FlateDecode /Height 419 /Length 71794 /Subtype /Image /Type /XObject /Width 595 >> stream x}ytǹH,v(-MIMӦi{n4綷mmڒ&i!%)r!,,& $][eɖEx;̷X6^d<>hwޙF<﫨# ʹ6cVO>@cP(2/໏c0z=988d Q(~S*2}wz!㛐Cf6S(RS:2xFGGsssgr{D㻏c!}w0\J}|eMง?ɼw A1'\A䃟! cE-88f~f 88}]S-88fݧ$l!Hiw~!S79w1Cw>88f۳k};v1Ci'}3osppLdvʼq{q㎧shǽ vΚ% O;1kO;98888O>~qpppp,,𓏃ca| XX'?88888O>~qpppp,,𓏃ca| XX'?88888O>~qpppp,,osmBD{{+Wjkk?bbbzzz Ųy悂6c:O>I<<\1'<@WWWKKKww\pȑ6c:8pL^{mXxꩧO>~qpppp,,𓏃ca| XX'?88888O>~qpppp,,𓏃ca| XX'?88888O>~qpppp,,𓏃ca| XX'Bk8svwyGX~ر:u?ro}??,Xuܹz(??o޽FFF~߾###nӟN{Lyǧp}j43n|Q UUUgϞ%2N޽{euEgy -~y^3:::44rYu``~2oiXz?#77k_ѣGoδa+W|w%%%}T*շmnڴizm<|, c6a4U*U@@BgiiiN344n GFFT*d2juwwdR(Vuxx޲X,z>11XRtPL_/]kkkBBk#obq8P٩v{FFF{{Nz*t ז:ΔBc9wܮ]"##|±1T]]P( N/..V:رc`{{{{{{IIZnnn舉QTJK.\di0ꘘ4`ttL=x :Gggg9shii 鉎{{28<YZZa0"## 6PƼ{iiinZl6x~{nZ-|cJ6oLQ(}^xn3;::\PZZzƍW655F͛7{zz>7OrHxxx}}=!䣏>JOO'9sf'Nꊊ*..Ʒ!#886>}D;Р\ޤ'O,Ntn NZQQQNN|Tű%''B蝹rñGWXhV^ /f$::(00P@ti=񌌌QF^xO}Ly.jE3>oyxx8 ୷"\pK_5k׮}뭷V\?/FDDuwwo|ԩSO^zO8QVV/c7n8p?)|+__֭[}۷k42x}%Kyx?L)cs=z|O?T}ɗ===;cJ݉9}R/S2:: HZ =h&  >|XfttNkllJBɘ:ci{d87#ZYf0'>'B333x%%%?P)Z?o0ٳ緿͛SRR!߆vxukjjSrz¦Kbbb緿]C(%/|`E¯\P(D7)((HԶ'|j>S26פ333j2i2NX2eSORYfIcnl;}t[[۩Sw- 9rRZZبh.\PWWgX'O޼yŋhѢ?W^q:/_njj*++t\[lgϞxgϞ%KvO?j .$$$헔@pxxn $\|]P477⋣312@@@ZZ)g=> 5iC<}oo5Ϳ{ .Hv&-~```||x<(0R@= z)Doo믿k4rd??FL ww^!jkk'PN}mE;*ڽ,5×i!L&onT xBOwuuݺu+;;{_z\SJE(q 푁){j@N灘>>>ʁ\BÇӁ uH !mmmFnƠPjl6'$$C#Xٳ4\y ܃eF :aͣ> .^uwwз04ɤZ jn[Ly<5 111a2M?SSSA@>EGG<ʠ@zt񦿨f<׾-[|(UۿΦm#1 6X,d3<~K.A5}߾}ﯮF?H#QC W>332|}"B:t = !F> -d:b| / ###Q5arrrNeE4 B.lݼƽvчYrdP@N^둡 !Vb@SEEEP 5qg{ Fh>CG>Xh>h!P}(*`Qoz<xЮCРܹU#X#j!eR hV}0HLLFPj ?PÖ裏εI ^ReQ3d{<R :rȞ={N8~/=B` +y<Z-l6/R]0#bڡV}P:oE滓7%l-.hDR ߚ>~qp9C3m$BQc$Oؓe6y~qp,,}с:4 40/&0{M0!&3!` 'Bm=PRRR_ʕ+[LVUUݸqCj/UCjjZ}G:;;ty!BO>`hmm=|ҥKcbbd26$L@|ii)&K;裏B#)%do@ J:vخ])BCC@b3zzz!I="W~#wJ'hF@@@vv6J@aV* DžPi~yvQzƮ]vNB׿fY*`(++Ȱl 䎘e<)y|qq1GR;vqQ&cLI'K._ @B-Ă΄@m6Z*Nb@+@; gϞEBttF`P˖-C(NիCBBvܹm۶B'pĀj(AfXpt###ty! BӔ}CFT X!pIXX'J0"2Ak -#&_)]5bPQ*.NS<::TXXhZ~^x2ɧX,555@_8 wR ?SLx^-ݱD/Z.lNRQ'3L}~Wè}1C)3D$ ODHX>l[l{駥Uz+ (t#pUO>)Yet:'*0-J>'c?Qr,L2 9;vF;'oǏC*Bm;=Z,^yJTZhLо'l Gjvp=UqҡV֭Alq}ü[pP~&Ќq,_M8 5DN207Q^5t18 Dۄ[&ָ09!\|w!(oVE'&&Rn ځ~3ƄG2/Ee'rCccc0yyycV$×%''3E[a<@LU즪*X_BnsW_u l2Zڵkϝ;dIYp8<ǎ[jj 3ȼ=HgQ_~=<])-jiii0벷7//k0.rLL Ea||\cVE 8;|(vŋ=(*~ff/l@b/Q^0[, .]Hw /CU`)JG43uȝaH% Yr9T-lX78AcӜoz^},afZ6 gz í饗6LAyy9N *h=UG?^\E ?...88y!gw[d Gjj*3 2cergN7GeI#'Ees*8&訮^w9S5yŰUUUnZQ-ґE#Z.Jw f*F~[#F=LVN-KAAى,*ЖCGw u 铺o#qߕWD j X FKa\[]O: />v;|0~>QPP \[BEu%%%t|qLo#gH`0 KKK|"`u+J>}=saTi~-#Й,6FLzPP~С h_gȐˡFsBǹl#׌i |NۄY<.<@%"P0\yM}C6A8 .@eO/az}2l f]­!ܤٱvR7ɟ17'_DDNYd"\hQ>=V5'bwvvBs4jŠۃTq)))_ן{h%4GbwLhF300@{Pgڙ4SZʚP 5>jHځ ]k{Da B;]!>d`fPX<=y^KBÕ7 j1~Цpv6Ψܝhd5̐[Ch̒%KpC5\DL ucHs휚@k;at(X-3aS(,=X ݏT % G!gZx0]{xN~f}xD)CJ"CO;9wAMf?~Q5" `!ٽB~6I@恁4e/_ƭiF1 iooonnb8􃃃===HЧ9H/--TR¤$LA7Vi0Jz'Hㅬ]Є~{ jE !ٽ ?[IF"sp,4 UJb6Al奥t^(H4n4pLҩ###t:?6 @MaENx!k01${ss" 3^J+$` sZ?|J88Tu:=% 4PlL5 EGTtSavfiZQ3^ZxBV{(OC,IFT*LF 0qï­D|90 ?Dj@___/raR G$%a~d.00.pE* !_h^l6@n߼y=6Lp+=S{H^r{o{D:Rԑ7[SO1F /AY?zg ^wFUxB\.׽GN9.X:uϋpdddR)4# [;xdd*,,ėH(`h#:H'xzzzr;Fhx㍉G&w[ ps|/_\SSSPPuֻc6᱆FUV8]:z'y~{MyО_o߾|PTC "S g9ś7o&߿?44vԔi4 DD( 3  |@~CZ#1.yjjj^^03jN;vRL&ZY1lttt4T̨k {WWbX"##;;;u:t׮]۵kWqq1'ZTBǏCfxkh4bn . Ul6R ! Jeuuuyy+W- *F|+W4HJgBrUp8"dҊN(aa.t:]KKˎ;F#z^ |5_XXHG 7 _jVVVbb={oݺ^SS388H1 W^%@cϗԡ7lii!L[nuuu練ܺu :✜hZÚyyy… %1'hii C^SX@h9X[WWw-4ƍgϞQC#o\UUeZ[ZZ_i0.sI05//N|̘gb8(̹s6EA,SR}Zt2qDžے^.x˗;T6 avE"W(-;///44W^imm h4.] 5===Pq5MEEĭBxLxF7)^zuHHHPPΝ;mVXXXv& pĀHI[63}hkk3 F144ԉHF#V_XP4 IPF%&J{:]d Xݡ+V@MlpDĉ& ^\SFG놷TBw411ի555f9&&f```||tU: cclh6ri*=d&5:KjB sqfbax_&?G C```dd$O`)Ƃ!&&6npzՅ8 .,^XÖkB㫪dƍZ6$$$ ֭[7o޹s_׸8:`<cg _|Ez'`zɀ|۷STXX Vaoݺ "l6 "11h4Pw'xݻwB׿+qqq& ={?;v ^s_)CQzellytuu-^v322QLvBWϣ2ff7BBBD+dffFDDB***N'nhh3>LKx>!_'Q^bijjYBcǎ6Ww/}9Rnwyy[Eumڴ =B@_ _܈{~tĉJ@>)Ihh`k`Ӿf@^Cك eU^^hcѣB9Us؂a ۍ.9L٫X5/07Ǐ JrssEIȼm&z)>AZdW^y%/طo_qq1?&E/Gyk֬3mhh碄^?:::>> Tf)3|AN722)71N5DN_Ußg~n2:.RJû #`0A0JJXilltW^񕕕j"BHZݍ|zTƶEDD@T ̈́ǎ۵kjUUU`jJJ D].Bp8788|/|"zǟ8q{)JZI`lnȏ.q\ @DPl6t\ 83Cm/[n;;;VDbjHKKKIIAu1n}GG2 !V{E2=*%Z9<|DyBHqq1*Q C/ۇߐ]xxǯ^VWW/GFFSRRv;ךL7o޸q@1 l0L^, NЁ2F8Ťطo_uu[O~r), 2 "WY4#bT*1AN@-xb9ɽ8f #h#]T bZZMQ^d -ot5Ft:M&SYYY___CC|{#8~rl2'DEEy<8{^+Nm1Rf\ʂP"~t a셖vŁU"o17^=44j(!bg+;vdz\fc4m6^(fVkXX )`n &1_җm6|a 6-22233sƍ[A=?o_v-<<\vww_z5++^TTT\2""̶l@Jr\Rcp[nлm6 Nh228)jͿP}g ?U222~@ M'w]QF>ju!4 ?яP~PXXO8qizNH0 H/ M]__c -[О|IBȶmRSSaa6 EEEcccl6 Y,0 ]``N# JBBbbҽhǷhk'&g~ RMhDx ]iVh?!gll ~UJgffB kGUU3+WbH3Ԕ0F`vЙQhГ\%0-" 577wvv"vo퀸PF3PO򘚟e;/dU;0 5swuu0YVZR&wIlݺUxMs+{L "> U hѢ('@0;;;))izl吆ߩS?Ld#all bJ{iii[nڱGYr%o||(?J4yz-L3I4h 1f*ػw/|z{{KKK?,Ǐ}L zyII6'UC^^dL4O_J͛71?fo@łR8rȪU׮]с{=g3DFF磵@| VV@k}}}43mGIF{{{]]]ccc]]B@ǫj9dee}'!P(X,.pfLk׮bccAPZZt:Vkffhoo/)) ݈pSSSj#< S\VVnQTL@X„Bh fy;'UV2'@|@p\n݂|b{w JtR&T[[0BA kyuBKLL'hB<?fikC R _y/̓7i DA_qԱnݺ\cnx˗/ f7. 2w杞yHE!ߧB-nBCC7n822"%ۘCf y^۝لtL !ZX,z>11WVVf H)p(c%P 2<`Ν۵kWdddUU'|˕JZ111ѭ PtJP jdT*Frܺu+==;h$ǡB8x :Gggg9sU%!:: XL(EAAqfYK| bj@:Ms&4zy pz=MЧ%^t)r~uh04LgΜ?w\}}0htL& kkk!k7&O 322B5O?q=-̈́_|PRd_;ӧO3vą$:@A\\\\\V-**jmm5 {OOOXX mnnc&I E-f.]Hfee8qB8V ܙ-AƱ R.:?.Ep.i70ǏÖ3 #y@څ׊9~ddNG@7yI$Q^^ׯ?ZnrJ. 577Ba/HeB`jeFikk6v=%%58}qfKC#\9<=@GFF._\[[kZQlojjRTYYYUUUaͣ(,/mmmqqq:- d2t:\Εdۇ!j ᭭a2M?SSS,0RѤѓ!Q5B×/_сd_ֈGBŭeRoU, 4I,S]\ڿo 14к_AcfxK:Z7tz9︸+Wz|F۫ Ԅ(!!!h0$78˙@I+:n\СiK~KKK8Rfccc7l`Xz,3K.A5A}߿gْCdffVoZKKKO: !|'&2::!F> #똡A#L.nrrr/_|QL !?_2MBP!^3y9 h E/ !&##f3iVhFx14b)~0t }_t:GGGN'7o޼jժ%Kq`0K'ZK:<R,A/YVlnnFƶt\Zl6V4 }ŊPshHE'fiZ `fB{܎a0fLz8g2-zd3ˌbZ- 4UTTPc3>s9998̖FfFᇄ|}344TSS3::k6;;;!.3v,QCgom6[XXXZZ15(|%2M?=0wNHi"bːff !δ넾}W* 2q7%sQ!<J%/[a 4^oCC<3aaÆ:6FFhLa%P7s&%Do^h4pBXlYzz:^8F Z[[%K_~NgG2y{Gv[6l ZƬ,@~#|%PO dW5.FFF 腡k׮e֡F VXt:>b,c[j2N8QYYӥ eh~cޢ9Sa+uH5ͣCˌH2DRegg+.Bȇ~x^F~@DEJY2X[!>:pC GfUO>dp:׮]ݘMMM[n˓B>snhh%* z䗿+WKMFUM;nnT ӟ~%''v=88Hz<bq` K6@Rzqsss(=>>~dd|tuuuuuFFF*'w~ZR&$;vl׮]. UUU@ h!%%% ]P($$$`FB0 d#m"#Ű`^> Ç㦓 L \(K;裏Otd  ]zVkXXXppp}}FЀvwVEzD+&_A__.WZ>A3@x2ZuuuccE4M``bONN6 P I= @OصknT(_a,K CYYYFFfȐR{{{'Q5`N$3ty"W 7TL&KSC}qf cHII_f 'wh0r=`5 _! BZ3˗Yj'Nn0-53~Vq`/tPۀdq|W9?m08/HۍN*c0,iP^l@ሉV;>?ܜ|?ON:e4333g˓e"Í\ARa|Kb!++K*;|/t:CCCѰh/^ʈ@hrEWh4EZ/FPZ 5%UUU377d2y/d[K!^' 18;P1y!u3nx__0{+EjYJ"鋦;VUUѿxA5+wt#\DߖHК0]UUEgx##l6L&VvsΡXít2/_l⁁|`00zFK9ׯR9@㹝,!jiii0벷UPn0qC*bYQczڵHFT 7(xô*/Fct;E&vwwә K$!["Exs )))//Ď} ?GEE /8͛7 v:3 !B$y0RV}v_dgB6ZH{p\s6..>x衇zzzx Юkjju:b-))a4zBB:3L\|)n@K/D<' iy # K>dz{{Ϝ9SXXH۹h"Zb ZM;[%TL,Y`\rAwZEgQ줭MJJILLlkk4aaa~aGGw榇1B :PTpڇ8ǘ§&:| "^\\li:R*dҒAbgr;17//Oyd aw޽{nHpeHe^` /Fzʕe˖4M_JVm6l-z= -kڍ7;պj*Bl˗/L&z:ZNn B=ҲQπB ^ҩhRQ{Q]@(3իWCMT\cLFIl6h5#""z}ll,f]].ג%K RfK2RZSS"blyBH<*(g?lLnoFȢȇl6[BB/^ ~p\}}}555 o!MA '2F@9993~휐>! Z",lyi2]/ZhÆ Lk\g}]Q1*jTwQ'DX.UGw-\|}rFnЀB BBCn'XJ8>a돏WUUuww .t!**J&KDX^lC_KGj"u>AAmڴ)""iS>Hy|22!n="w>QLHS(L@IBx1W/!΋먨M6 Xc)~WT24U6H~-]G+g=66p8,Yc2G&Ĉ^1Bw>>VDpfw4NI\N3C[pF!|ɌnAtOB] Z~fǻibfnYxeГ+c w]hD؍7|7(cG\W;;Ko޼i2Q nytt4̅gPyy9F ͹c170avֆhB,hu̱7 lzy=_ݾi&s:33R9dڷtӂ)8fJ^ _~e˖mܸ100P&1.]#L0)Bl|hh͛sIf|yy)$VTbWLtjŢiNLxawEEE'NHHHǏOHHP(999]]]I@œõNf@pmaa233 H***V.))QBVT,… RyЀQ0+VHOOZv>a֭4s2DGG=@tiLXvf.ED jʕ+މ'O@bxn_XM|"ܖfwC()>EzNNZrƋ/L&FٹJJJ<]B(0PKs:*HTk_z%GAnS0=#@ h2KmWTJJƍGv\fyddK.#5l 8ׂiA L||L(S>CY@^& cS4p! /w&622xWWW^^h,++Z<KOR Q~)5^nUrQ,:ɝT 5?\XnL&Ї2%%%(m6$A 0%ͪ7%c5H0 $TpเbDnnڵk]biCXǻ@G$v>e6 O ؤHꂘ &j+;삐nZw@ 66vӦMqqqLyAĆ )p +Qfo%1bb%5-*P(6lؐ"ÇKo_p"y݁}y ޼k^4afC顏|i"Aw%1!$..n0߲1p!2 bn_KhIa`P V\y"S--t{ʕE Ao"߷E0"HILLf/,=BH|||UU?h`]WDYM+ܩAb.((dtww[,&js}[(^ >ŋU?  YI=Fx߿NE- 1Ow߾}EEE&M&^ojj+V@@eـp8@x(`U {$'0\}-`_(N`V~ "9fsGGPd huOOnZ%%%t|1i(Jٳgsrr2<<,ɦib3//I=J%ݻe=rX Ux",|>: !*j$~bbvcURRS__~wጌvܘ<*JE;ܚ -*_F3пLTfff:ii"@gi4C:Z28~C1~Gj޽{Z-`.\BBP .'%%%J Džسg/Ν;'H`+yD23*a hԵf۰a(*f@EbbbQQhQQt:}OYtx`%b[@v&~&:T"ZIkHG DhO=@&c>N4==< @Ii2(t2JeAl^/H'`0dPեKr V^}'xFQQZNII t*t9-]OZ88 'JR`;#= @𠇎PF]C (i-[ B JIIitNz(@ak׮ѽt_P*{h:M> GM~`oݺ@:9999'O4rdiiL&{g'T8FG)2(tYRAfh4~$gôv b%PXG3U.j]6;;[KЧi\^B̕!Q'O@hKII1 7o-nW:O9/f^#.9x>Dę ҷ0@ ^~a1d={V.9r$-- gdd(٩gNLLdfYLh4^zfXa|xiE9Y<x<.F@?-$+ A -fŋ@L@.vwwfgg|wu1pQ1<<r544<裵trP9tl<8T`ONNx'Nl6\(ƌAl^aE(yիWL&ł4fn]v:4 ҥK0_UUUN#99Y&!1))idd$==oΝ K:;;.DENd?<+A@Ȇ#{<+W@RR(]L@X3!{pŋ݃OTJiU iX6ς`sʯO8FtK'UY֭[n۶mPm߾} Ka+i$:3}MWZ544H#M ӀT4 &*;wiLF+~`(0d&&H#8!jKjE(h֭[Vm~3]f0 ̌L&N3̈́czS!ȋ]id:::z{{Y'P!Ⱦ~zzzhlkk#dlכe6aL@X3!pI\\'Lp"OMM%&$`< d)>0##˙t1drbb500088>{׿5m%/ڀ܂cɡƍ^>t[FdxBF-H%С dN 3<T*JZNNN.k``p\r ""t. &@bI@" ^ת72/NT219(P賂Xj X1XH'{ŜNN/^t\eeeOtxbbҥKk׮e8Glmmtt]k.Q}Ç777d0JY>z}[[L?:x`vvv~~>zɼ#0b˜q#$_x2>(Zc蕄`0xM 4'[^a5|>Rb͛fa 9 Cqqlt֭;~8v<#Y<֬YPi@2 }iJ>SkU*[o ;k4 Mn]@a^* U> jjjIRL&S\\xlz$TaB%p9 8$ЮIJJqs=wəѩ):Bz=+p vZp27aZX~;f~:"Օ]PPPVVp8K(p6`Ā 6NKKaN2Vb:3%Duõfw:yyyxi ;U, - j}:::`-f 3~|0>>G1Xs1gvN~9mrrCZՄrN"1?88 h1Z t:\s':! )|$f!0^`>QR/^=20Γ ")))??_"Ձp8O\<[;`@`1!Bzz^jGGGL4M___eeE0=`pɝз6L6 /dZ3334T+sڟ6X0%̠Ow 3l(< ^/-vm9(0} 4 lʕ_W333gB4MSS͛7@ O`t+aÆE eg?я9b2JJJ0DW@~ ZKK CƢ"Lf!uD Z 6l68r 0 .x"$!b`wiZ#& Z '---OZ<,IY4A=w3344fee8"0Ȉ644nvqhvJN̴e3cpT 4nACs-7X# A@'77W!ma[ (Awȃ)UH0hƒ+++PmQncJJL&!U:CZd&T.ܴ 6mڄ= bô0wK^ɻ!!j9\m\^XXuV|~ "Mf]rVDKCۜV*x v||>OLL: $L>)9صQ,PN8Kt1kjj III555mWW^E3+xŒcǎAwuu1ozn^Ess3!g>z{{KKKQ@F&a9suCshhhihh# EVa{&88݂8DBt:''''nw:###ʕ+Ƞϔ_ZVV l]]D;!$.. >cJ&w\-@n:`ˣd|O:unW0 i <AۼxŅ fggwܙj!6r|``@fee B&htlJ8M[0ї.] @|rnnL&KNNVT9S]]M6hZ·~%iov;^0+x 36mƒNٱcG84`0H/t[\>4= fDx撠0Od%fgg;g޺uZ"mi| *f577{^#F`ڵr%c+~| nڵkfG 3i46O?:y`nG_9#Pi9!dB _pmd@AAȈFtWGGGm6jx<_4⇦@7Ac&&-RBttt@@N2F388811l6b1 }}}5 Hmc4-G@I["^F+-`wf/0˗ ~m> Gأzȏ60Ԭ6nbd"Ag}gxad"!+PѸ\.d|G:DE NW\Mgeeyx0ˇ}ÂyB"6 f8 H:LpI1\b>|Yn#]Cjjj^^<8@ 5cS NѨP(0Ejjjyy9/W#xD&^B_ET-L6Da!/0twwd24=r|Æ \jZs*Lf͚ȧF"3P`CO󳲲접f~ EBQtt>(scMߖoD`PY,\.߼yrEVcb VX@ȝiKKKۺu E7n޼YWWow!=W!mO&)JE*v nOpv8 jFzٳuV7x㡇bvppT01xæti㼨Z v.K.EWveH pDS jZR900 bq7G؅KY,5\ Hf1]5jp 1KJJd2& ]JC3SNeF~?;8cccLxC"x1p`qxoɴzӧOqөV?t:VYi"s)Ρ7o:'NWcǎ566FGGOOOMMM]vf744BjjjNS bQ*?b~uuuKKkjj`NNNoo͛7*B>Bߏe&&&mlmll~֭[L}]hz``~ݼyo?& c j/_|֭?M,C: |ǣRu:F?z(s`sL^.PL#幦Q 3k- 1a1K5Z Z̠1%W*=8\q:k6ɝq NLLj Z6LNh4^pɚ #֖?Kz{ԩl4::ZTTtҥ@ oпkeI ONJ@yzzNW~A6t:v]P[/3miiiUUU<@VVҚ6W\uXt"֭[W\Fqpp066vƍ xP(K-')"byZ@EBLsK/DImdyy9dfC0KZ̠1ŲWdffsl:}<ApXq|#''grrrddDVr ^r%++ΚM\#ٖrт/{o۶m---qqq֭?p? CIIɍ7~_fggo~S]]]YYyGyd޽v"?Oiii/bRR{n޽|_SNرn߾}Æ >apBeeeBB{/_~>S7|l6?x~q=jݻw?===?\VVߛЦL&`֮]+Q Dll JOO=tb?yC/O, q~pJiW˚-V>$M:dcc$SCvvvYYBd^a;CB`ss&wFCTTԦM M"V!ݖl ~:dYb4l۷/WQwnoiiafggWTT,?h :L OHpXcc#]Z/' n[2 EEE* h72L.gffLMMaa`lTYI7T*PP& ՇF\.OLL\b<|1LVPPip honnf1116mZhr<))iqZ^V7Z$8F1JbXUrbcci͜HHA S*7n促̴|6W'Q@p^r+X|M&[nΝweN~1No޼ Z Gd2~[Hn`Zr!5:o8mٙi",99СC0Ÿ~j;rH}}Ȉd­JЯP(222N4}<ttt\RKJ;w\:!.׬Ywr?Y844숐TajVO>䇈M) y BARYYYym18C}{lln \t)###!!aŊ&I755+V S(k3 @%XL39+{@ >!BnonnV*<A~G}/**gBfsGGB8{zzv;$dYzmD-t.l`jr:<0REEEzY`ngdd,Ԇ)󓒒 >v>s G?!dxxxzz:..\~fuvvVWW;v͛@-`vv9_Azzz %6 PV$6lK!l&YG)tbx-&f3 #77v`sX?W* A2LiJ  =5\y$Af+Wp4jjj~ѹEb&wFY~jMMMo@#`Uϟ6r &k׮ݻw"0P{.))Dx}q!8s !D> ֙P Ǚl6I8n3t ~<ɝJDW~-2cdO;WZ544JO@/_۴iSaa` ̴? 3|fDҴ@#ƌAx'!_1Kf >ΡA?pK"wҀE끒e_Vۼef 1ېnǹG!U__Oo+vfaw潛!Q @i !j:99955cff`xxtّcW^y? 04*Qb9+OJ Dž(--l6R$B0|N@7@jߙ(Pa -yI gi?@΅ eS魑bZ5#yp8ccc`Xկرr~">>r#??NC7>>uV\fַ@re.ƌ7 x[UUe٢B(i4Jtrr͛7F#_vvpnn.xUVqcΓɃ>11 d2lkk~_u8333VG9w#<sAznݺh ^߾};}vٳg h>VVV ml6o۶ "''f 2!2X. Ꙟ^x1f^_PP a[rFO~`0!M  GbZڶmۆjBO<U555###c@C_xo;@nn.~'gffx &';DG O=T -~___s$BdVg@bBC:flkx-!D.PC=ZGB*3M8 _|1@U`P{s&<(< yrA DDj8rScccBh1bD(['bMKx(MiO C2Д/lHpBn I  ;;{ݺu!8|Y z?]^^N9 BYL"Ľj@cǎAr9 ^W*+WLKKZ333#33tmhnGAo%>җHeB eeeeǎ!i=|aC$]&rHgg'lٰaC,A ܃1+*Ml u:fc*M6E,R.`s] |͛7Ǜrz]L!,w 6t ssrKb|z={PXX(xWZg` tU&V!͕HdD9h)#uuu˗a2V.F"xw`0XYY bKl69sfbb A&R4j룿ݺukxxPPЈy(/( -ctahRXMZx*X>(ɼG1d2Y||㲲f1 Dף^rg}T1&7 "**>CEFP,wJ+1{9s^q#wR`L BQ^^`D ohGBOE >tB =hXl6ON` H-@rv8NFJ)/eA(q|2c+Apҥ. vm6=e9?<\AV&FUTT$z`PBAB0K2cŋlbLAVx*[2 ngA0i<6M]8vX8 PɃOOyWWWo߾… OZtkǪh48VL_pWW'Ĕ 4x<`ڶvLskȝF}ĦJ:N\>xNHZ^,U\L1|Hh1 QR0t%ك&,<99I)][܆>,%%O>qݥP);;w[GGGoo \Il׿Ύ&'''/^bZ$$!pI\\'Lp"6@eb k^*#9998nNꂠ4(;`dr JJJh3C+\.-SVe2j}ꩧ~_+!iɋaP3 0V]]]N˃>ՠhn4jGxe\VÏ~#Glݺ^3 r;S {B[bUԄNW^^Ң"&775sM~@/Z\nbcc#8͐>az!.600OrZ +dǎɁ(qqq nBwX-裏RdY䐕Caنh6'˱4p^ĉla4FGG'&&o~#8jzŊeeew7` g? ۰aC0\~O>5cx+:;;_xt.D@ XjCE_?w & t!~}g@382! `ڵk111۶mu}kW'pQ53\v~ ? qy #0;;7"Hhat!OpA>`2Ζ0qf@ VTjzʕ3|wd2uuu㌌/.VƏlcceJfdd7~EyFd!! ewj o遝$)FHXءC׿Ҹ8BD@Z2>[f򀹧y6pxUirŮ]nϔsiNknbab|C:,6kb 5y0looo{K.xw>Zc~VXXxQ CooG}tv '|5dc} ńK*2' rϕ@$ }P&Dȴ+V`t`a,'Q}DMwfqĨ39kjjN>}[nMOO䶶NLLX,DWXE-NQ]] dc !Dޱc0PyyyS JիMMML`|:|q"io?3X.28>&ζ/_CJCn+Ǐg#G 'N6D\㧣02+sϕfggW,_7b"$q+WtwwOMMsjj࣏>-4`ACvc w7泽wvv>c r?t4@Ԁ^-cbbN3 dXZh.++ HN3//32carbe=<<{& 2 eH ZɇnZgffhnR& ;|UڀF”)S7of XF Gހ]F I0x Tr<jUTTnFGeoi.@OSZZڋ/{};ikkohhx?A.x~x||l6??},?!ȑ#֭ۻwoVV֣>o?#O^jUIIIllɓ'TVV&$$'$$T7͛oV%$$h4۶mkii/((Z:;ξ}ڜNR|r3gۗݻ{_j;vؽ{7t׮]:nŊP,==ԩSPg޽۷o߰aÞ={~򓟼/2|q;z(x㏣<}t~~А\.޽Kp~#NB|wƣG*ʼr|GLgw|Ɍ}رCR=mmm@GFF^yBȁzw}[Vggg]]]UUՙ3g֯_?55%Ɋo^PP#t:׈@!–8^o<ųYYY2L]KC!a -!bfS-֢b}LJ"OONN^zY]]@`ŽG ,!G&D]s~~~qq_,|$t|h ^tN40Kono F hkk&Q~#ǖݝob6{dNNNyy% dH=mwׯ.#m˔a ZȀUPrssggg]3P$&LFcqx1;+Tv=6 ݻp.t>v 5,PV5 m/++f#6nܘ?" ۲푻 cWWh47nV.C'xH~(ɝpDiIc\swҕ0kA$*XfuE7122/h--- }c0a`\R0.A s+MKijaלY(600Μ Ǐ'egK s=** T&E:$MWT!;;C~tJJ%\effݟp1K/==2 l_###~իgΜDŽ922aÆ?6.1h7E-RĐD$4 _\\vlBHBBVu:&ԩS S%)FE20K>Q=\ yu S-"I 0K{I8pDjt]A\q[ɝ9%accc?3{llBa P^z26nH{PPPV!j@TTԟ縸8~ 9/ԩSP'NkW׀6ft1\<`gddnIz>{Iܸİ4N>55ŧHR.7666M,OƍVvݠ㓟o4gff٣KfbiZ@'CsK/ޡcvv6VTLy&aƛp*p9so~o6?27n I_}K d>{xP(ĮeL.|qnONNV.bرC r1W%+J̻$JAp5HXƊT*l v͛LaRi&댨{E{>&(db8j2vALq@[BN:S':)RSS` 3_D+3eeeqqqLM6[b/ 3t&+++Im@u$ui픔&|>A(`yy9J[[QQC"LŷGGGrB|XM: !*j 2 ۍHGWII DLSSSTTV9|0@T*$yrrr'TRhfggF#.nBAsxG~+W. !cf!h+r9o8,j,/g:<C.&߽{wkk+B8@c^bX gDO8.Ğ={}q9A"]F~4Č-|J<4faNj@Ap6i<1 8@+v2WVV -|`v;Y9*пktF|; !4t~ddѣP4-G@W~1L=%Nn#L^xz⷗{\.$-66Ymi|瓋Cb0 by?tC&OahRk_f՘>555662xj#C$B"BT !2r'~ "9:&;TBu -'L|"bLOsCĠ777wuuuuu X,[lA7N5}96m00zdCuV:"TTTTlM6BqFZZL&{g'T8FG)|X=b!B2P`^ۯЖ x$1S1jR߸qt7n[LOOqx} 1W"DhlsB` pP ͛7'%%A%QQQblb5/]p }Kns`u:b}(//w\ c.k?\nd=`հ 6;;pOLLܸqcjj9i&ς,:eᎎ)ZQQtemum4$ Vw^mr4=Z644阃ׯ_w} c;Z޼y3C&xZtt4-e}x뭷ٳ 9Lݴibr|V!'SN>S G^}˗/3rڵ~&'']. ko>!|;r޽{Ϟ={%<8KRB !jvn*c FlxHȞ?|2iZVoY!M) 8/ߏMWTTYGKjST~gX,<\I>'O@hb$'L8{lZZZooVMNNnoofYן={gMJJ"LPoP<裏1Tn0p8Ni=v1E=f~}&a<\><z*+N8Ař)+111?hmm-rB:|>l @΁uK~rr֠BxXrƀjv{{{ABJӧW^m2, T*vt|0TtP T٬P(***;::vi2p.@Rfi)d?<\A@Ȇ#^b DR0p;\POBȕ+WN8GĘ |vh"PrHO+!HòyȞS~}1"0; X&<b?w9|uu/\4ϟ?9Лmiiq\111n;77whhhdd$55X8VHtZ;IX||U@ &F:%B!_lUyرMMMHrMMMmmm!(0dVM>b#A px`?~YH"\\ h4֭S6ҙ.3K'`zN3̈́rE;Iw1K}}=Mb6ȷ%{;==-GbLC G^/$?? B) Q1&8LwZԎPrKyȞS~}&a<FF. Xvv6MgeehLfZz_0###.KьNLLddd k 3hGx{~7o4M&Sll,MDD0P&0R t(tV}G F BVVx-Jaa! ?cXF#67σup?*W+!X֌ a֭[Aףۂ+2׬Ys@ V2iii0f#t.E 廰v%e_eG:;;].K !ܥ1!/2 ˖8$ǑN/v5P\\fχϟ?sΫW8>pg|QF;",bBr|˖-K 2d$D`YLᇨ?k׮'Zae AKʎ)xϛ2|psssH֍RX1ȑV/o? jj otan{ )BG&A-`SkU*[o ;k4 >]@a^* U> pvP|^}CmP? fJJ  EffQ@Aǵk8ϾX0E?sssocbb DpJLF 樨(:~r9TUUA$n=\zؘfGT @ n GFFOAR__'FHsؽ{7#BR.XI. Ð>bjA]]#TC s}IU) VJ~Zqqqv}bbh4VUUa'&&pg)̠o٢8‘¦&xncaBh>7Hn5t:=Ozzzjj* Zh4'<8#+lذዎk?я9b2JJJ0D 0fP%v !l6Ur?55555e4 .x"$!b bZO& Z '---OZ<,IY;;RmGBs2("===LF6Ao(F rM[.++Kp\*iE$XD!\fgg}>>~ J7uVZ{"!KI=05+u$Hà`% q qi͚5 P 8in#1cV<s (J3Ze1}\833v2i:~D"Lǯ_Knٲ*hr7xk׮1-[yH Xl)ù>̨|̃ vb/N===4ٳ/^lhhÙ1- F EGGcTOPHKK?Ȉ} @`cbb~EV@L{ny_{q 3C @= %+$k:+&MekwdkSGզ*YgSXk+N"o9vY%,ے^̃afqw`bӷ Ϝ9CIT2$wq]mmmn-,,BTT@BBBJJg d>1R 5}yyd CGhl|>T@Li޺uƍ7deebAgee;vl֭--- aĩ@Bagddf2kkk2:O>Aop2ʨʦ&B}>jӂ )))O<A%-=}7DgELLDrUV"lyy9}V8R2# {``<@&b$r\y 'xl6_x1&&f?UUUacZLX0ѥ~%(@́"l/_v\fvU,0 \`cb)..޿(2RqKz ]zѣG}Q*~Q̜:y$bժU: n6PBa8"2aM&dg$O< ^dF@~ꩧXիWq偧gwdHoܸ:>3H;r 943 ]\rWFF`wIIIeppphhh|| d}b0 jT{*P t[τE d2TAP \t:[E5$%%AK6;;{Æ cʕ+55u``t*V,0^ Fz7>|.أ V6zzX,;w|뭷QdQ}Gd۶m\aT"1XpzJԦk|Pԫw555YX}rnNc <I:D4<67w q]F1///))Iј'O4ÐH!̹AX؄2cIFrW6==͝]z5|ׅbE0UѶP#>ֆkt:z<--S{477b'\a!a/ t:ݶm۰mPgCCCUUUqPPPv"C|sx@?66)KNN_N㕕ꋌܷoXẼHa!(fff].Wf⶷sNm% /ի1-㩫QXxY033>̆{A:h8}E.07oތ(n}ff_* #3n޼gu bjSk0nGC]$qi qs\jW~qKun VkƵYnի5J! B45l8^t yb:p`3dr\H $HЧl WTT [\RRYiW&M6f^Aq:^?MS@oooMML&߿%w jP b4UBȄ6L===iiio6cbbtQ 5LB",KWWW hhh}}}mmm1`.8=OII>=t:ȫn޼ ODK"ApsΩm@&''7xCcpGTTHll|>dpXE'|BZCԥ`}Z`j@+tpS1'9կ~EI Cm4 ;)999III>oppmmm7o޼>#n&R9NIP n+!@d)Fȉz~!w(AMEpSכ 魣WXQWWwE_TTq:O$hm@TEa͛72@  mNJP*]6?u)jڧG<7b]J${}$fcauTBB7^?M;bܽ^__/~k.1ӛD@6b+!@d)˥9N펈.n2\&^H*遁J) cpANsѧ-§-n+DQ P@ Xf J#Ξ= BؘrJ*6PtXBmKQ>3۩HYӁs ȦU4 DHkjj(Aў*G=Xjj]t:](iEmmm񸸸;wrE$Xq;5XCP(fK5!?P7ؾ}x͛7 Ы1C\uԜԱ堉mVZ{!Ī j6K\};cL833d2C;/qN Jd2 htX/W2"""99LMMt|>_jjhNSA{[nABN+W嶧iZk5.1q-w x۝N磏>Sgu:|v:T8}2վ4 'k;vllbPBXk.c9'Fc5.)br~þvdd$}×~}}} bXk|:33$&&ڵ+ܲeJ "Pi&A[[[gg+|Z %ZuanXԩSoKKKlٱ˦`BtttAAkkk===?O( |bX|LmtB$+s;|x-H\rFyաө%T9`X_εa6/t'|7b/V U~hи'BMy iZ[[[n02{`.η###>2镕!Ҏb憧bdR-D@ýv14b,H)`mdd${{{.===@nkk[r7 jkk!dVVVbb" c / /m6P `Bt gϞuzC=6(? Z~[llNFj0V\yȑ~ȔzVXbZAR,--E ℚfY__Cl6&Ϸ _:D#csǎ6֭[7ox<]]]fXldWWtBZ 8|M6|!۝j(՚c6 CCC4WC1'''`ND ,0 Q`@R1hj!\.WDDą i011#4q\n#U,A ; :UOD}iӦn$R"/# XUHVhh,҈`|9RH85իW L&kkks:'F5D%͡A 95PϜ9Ѡi=*` -!~tt4رc~aWWKJJҠHbٺu+,:HqB^FRϫ]***8jWW#)))??\q]]x LK$tQ%U(##˰.^}ٲ2Xz.\#91G 3'РJn=Иʕ+7o~i N(U `E9hx`'4gZ6-&&ɾfcu OY\w*VL4҂Y2Fm2ᦩ`-.7o똘-[t: Z> !0LsyiBt` b\.WJJ mPrsKKuKvvvSSd7WOKKطoڵkHs+NX,8>pP3 DpBmmmkB@с u.c.*--f0SSS0SsK:sV,87++p8NpkP1GaxPסoah\B*;'Fif4== zzzzzzF#dPIR*І{r၅P[+5Ejю8$PV;8\ըɊ/[ZZV+GGDD/ 5װP oI;40555118dgg_q'5 *w g:5"|T jZmQ j%Grr24LMM0^|G6A|QDC!*6[,n Qѡ?6F1<Ѩ, [,Z dN Ѹ{nfo@!ɪ*ti_>R+p'9=z333SUU+_fM~~~8Etuua2 W~R^rcLm߾]999Y]]=>>}|i=811qMm/777XVd%n6l?mܹ2Pt^a׋N`˻R'O栩ӵ+*|E2*RγeB#:.??tt;;::ZUUw<.ڈ!-Hϊaۣh:nǎh"Td^=@^;Ǐ׏9r'J-@ۇ^etNc 0Pqk jll /axJ46)#?/_9_mjkk-pӥG_?ڵk{=dt$=B@+j-**2fh4vttP.}߽{7{[ZZ<0tgǛf|z| ʕ+}>ZbP"""f"ĉ?0TsNt:AZP^^!c''';wRB\zupp~̏KNN|ԥp9R!>UڵkwƹERéC6x<$é!%"Gհn:499yA).+!)++0/}V[}]\tj4 &` R*xɉ'x Q\DJ F#aÑvy% hXFFF|>_oo/Z}z~ÕJVX>AEDDDĎ;WoP"III.]jjjZuDD錌 `OMMUVV A:ۿ0YV{Y>,++vgee)`>kGE066LNN:N$s ^QK7[zv;dȑ#UAN6Ǐzeee%b>7mOSF\d Ȝ83@#C >>>))g`` 33Vŋ U\WWA%f+J OEB [,ӧOGGGYd2aW\:۶mU%McNL6PuYokkP\Vv$>!EVA`T+V@{d.xuEEEa-))|JqA%jFxp#|EG8@ 'ONA0000>>Qi 0t'''"##KJJ\.c=Ӓ⣯-L]!u*%!uX4nWczՎ( űպehsk;z{{QpF/ߺuuDrZ^y5qh"sOLLfmf0v,.MRiks/.Ÿ۩6eW}<`!tkD`jjjllz gFHh :v EՊ`0|_S:~~oYƊ 1$tci6慓 t644p)Nz;xp(-va0~9g . C|XK C:D1>>~u#wMJ.nP ٪w\J.,T w7sCdk# ~ZZFX,otAX5+eBaaGʙ#La?YiЌ2 EV!ء(ASDFF$5tBp;~`%ٲe0losrr0?2! DP`vtt@^1nXrssϜ9]h%nzoݺV#ro׬Y 'O~^mo2^àΞ=  s8nZ)>W)L .|g@KLLt7ntX,8F)L',qAnzzjRg1"HvziapT…YTTJbx?===]v룣]]] loo6EEE^ܹsi0v;cO?5Lfttٳ𲸸[C-_]Bڛjr O>ۀk׮joozj}}ӧVkUUU[[lNKKxJ删<&!slaEJ,(Ѐf[6Lv_׀v+ RSSa\06;v`0|7ns8H퉏߲e G|Q198Ii@E+G#ǁcY"aqv>J룕 p1$⥥4pRaڠ@zzzQQMĎAH̥{QhIx<י[f"CSKٜb@<6::ZZZhX̣bff&G ^^y啩/޽{pp0''ƍ;w,..ƜKoyy9Fq+E"D:h _BDGGGWWr,SbB1f(c(="#"-nfnslaJd\)ʐBro0rjjj~ѸzÑRWWf/= j׮]%%%P~p=߼y8`66feeeY,N7<<Ҳn:4q0SCF88_t&[@q`aX8pwի׬Yp??A_~K_#T >?!Jy䑊3v8}4TGk鏍js[ll`Q 9%%ݻLݻwm"##oܸ,ˎ;n޼/}_W>,o߿?j߾}:d2nJ쀡)zW__T̏?Xl]\ ###Kcm6?'$$>_בN@=C;#?OcocoY z)x ~L Cpڵ@Vٳ>~_K)O駟G?bMMM@k# O=mCM޽{fffbb"771~n۟|ING隴8ccw_W1pfTR~l233cccsAntt ^Os-8:322?裢acٱ|8T- a 굠4hEس6G2ǴE fzV B_~D6n:fC5"133 6EEE?OǠ3M1׸-QhE\~aẃ9_9 f3D1k׮y$qH1ܳg2N<$jW3\A:kc0op+h& 058=IJh*|ttCCCz>!!!Uږ_"6:_rZZС̈6hj**9jA0\VXAݥKA BTTTbbbOOGLMMp{~x 88tੵk׊x.^v;S=IpSxShzN`PVV pwLW+W @Q`@L!~gׯ_w tnڴbh*uXJ[[[' 3ĉ a]6MMMlL" 0°(H@ɣ1;wӴ7c6/^ZZZ>SHOCIW}رu1688$JKK3>>~ `jlFA[^^^NjNXO-:S1 ݎS5  'QKs@ Dpw|^l6h<55u1ł*$Zo6z鬫֬Y{L4MU\cJ NJ!J~3E]3BV8, ;d0੧ L{GիH~p:>{<@罽6l IIIeʕ~) Q⮶6OYEwwC=7/ 1a0%Z *s,ܹsO>oo߾(v{FFFVVVnܸ7l|w }LW_y%oz=w~5...66&:u*777ܻwo^^^\\ܕ+W Cccs=WSSvy䑣Gk>?bX~M6:t_co'N۷ގ]r%66__'?ɇ~h0t:ʕ+_TT?~<3oWW0!!… ykkk~~рCtڏMKK7vڗ_~'? cĉ۷oohh74+||wk/rUUs=+DFF>qqqͱcǞy#؂??(ʴ-GW1#K|KۊEf |>a=ێ]9ձϳ׭[533lYĜft / ѽR3ɓb2ÓMMF51(О'b)&P1yP-(CCCw|֞vx<7w %ES:VT(*AXuAͽy[P (r[6lؠ#}x<"7r{!1/ia 81 fSZ ^ZO/|g].׷-щGwQQQ . =XDDnj.((05chQo}+j6'P EQWWV"n{c+Wܳg`qv>18=PRRR~~>$b.^Pc%3:T]].?tQU;`Ivv6~3A qT_\pAQ1۷]reeeeCCCu84Aצ_>Pn7VcL gC&Q">rN(Uv*vFu ٳJ(;Ԁ9؆3/Ƌ Bb_IA^zU,KIIٳgO)V8@c@ Nú Pz嗡Yzz힚’X'pP5i۽uV{ef.Eݻr:v'&&]Lby6mĺVlg 6@Lx7M7V4 e8ZFXv}qo߾ , z2Оw zc RP}@ hjj6\WX p 0tp!7 "-''gzz$9tuu?t7RjcqT ~ =6\WTcRsk%)Ñ9vbB7oK'ZjΝ333躙A :>`_!V# O{P h4AajXLr>:1NRSSɺ:z~eD(#=]ݖ̋blnFBNw\jzzZgJJZ.1gwO?Y"QE|~ TPP^gMEB̖gjwh4? [ZZqÆ Kt[*%SNϟ/--Ń-0vX^@g% #}_O(<do8]A'Nݮó)@Ezy睦K.|'s@4P4l XKl```pp0--rW%&&T"ͨN]cnQ:| &'4Ej|--- HtX4 &ĉׯR zRh4vt:U\v *7ހc5DZN̨k###vd텻;zVVHf9++W^y 6 TcllnHUZZ222riȒzu:]MM^mmmPdp;tet:l b !{^,@CDqBAb0`.:;;z!͆WZ+#.'|2'''--gQs xLᏤvÑ?@רؠQ0[x|?)8 c 7E^>-Ģ ӧOè鈼^`pݰ^t:^}ׯ ﱢ֭['h%TbD+ޠfc @h4/^ݰaCWh]nj rPX;BB6mF,R-2r+li4鹘]-9k1y=ånI NBSO>}͛1bSRRn̼v/_ ].ʕ+M!v0|f(!snt ℂmWTTT477,·ZQGs 2>N!Z ؒKҥKCM .eAnF lllbX$99ypp͛eŊ~rrr۶mjRD1 <3<<,>f+N)Ex۶mёطo_II ~Ǣ]Z TLIJI(jldަa~3R!//psIԜr*X.,bijj*X q͛%4Z Nj H` f|IT)45--VZJ0SSS&''sss\.WJJ m ZZZGGGǭ[lAtȴu Ηڄ"==9T.Ϛ5k-h^mmmtj`C)HE<G9xŊpHɀ* 0@>jnڴIW˿+/} KVX홺j @0`iMcP[A@Z~v;bccݻ766WUU ;wZ, x.\}vZ*HKKˆV3ϴ+ Pp׬YYRRc?OvQsf@5ȓ(GC^^/zjI3<@%ᩩ_|pAQG_'ݖCD F رc#2zSj^BSۀ.i&n TA? _b?DS󧦦 !3|@ y<77;ϞɏA -(($v9 ?P탎h4ܹ X~}@ǝvi y`O㦧(Q^vЋ0p QADj#2v}.--m޽nY/g[ P=&rWCjI`qv?4S (,䰆ftզ_PmIdSX/ܢWPP`Zzzz nP3K8Ơ͚lr*+%_v}B?#{6|@ʥ\\loHLӸ{*(Lo4rpp$pڵkZ1{ФfvYk׮,^Ѹe000z-1];M8||cGG]ʍK`˗Q]Ac?.֯_<”4" 2>'=,3X?Ȣ x*Q R깇\H BWJuO|)^fsLL̑#Gp\x_>h1*z85Fe'FP399t:Y|#[)v-N4Zz޲2A}Cӻ455؃&n669ڳgϹs$ڹW}^QUӵsţ%<66F玪8.m@)糌ʅb~ۉ%HQt5i: 8`x I\QQQH}~1phVg t~rss'''x\VQp:܂ s[x# NЁ2̙3pW4祗^V}{NlL|)#h4bb`햑bҸX nj vҕ9AСc.+11SRSS<ٴY]] mFPZZH+N-AcХܸ CK G=CL6ptիWjCaJӧOӈ CQ2=>' sݰ~l6K=ObrXj(C/?NHvdd_?~駉8Xtx-[Łn߿VQ֪Q7ƪUEg۷+@Qaf׮]?A<"R#z[#?VzڤY85+*6S >,66Vj/1+JwO%谮^PЙ\9ԮU\jwWȡt1wy㯿#GB#XZ 4{wwwWWWyyyddz!o:g+V8NwLľz꾾>Yw###?dI74xFFNuVLLgϞ7 A0&SV+@4=,vrh3gxFc}}} =~3];v쀟cw]羿Ԙ龾>hgΜ'dGD`D,@$@ca:MLi޺uƍ7dee@,cǎmݺ%77gzzjB纸BA}b @NDk@o~O0kjj6`jrr2 Æ Vf1ų{mmm999}.O>oiixTVVFEEUVV蒒TEEE>{lu֙LɃ:N0>Oڞ>FĂ 3PB,@$pqW^^ l!?00_ɣm"'9 +EL]sOMb\f$A .cw]"i[LMC3JijTr\"hlJ8MLX0ѥ英\9^TTD) 1^ѣG%p995Ff" l̷#X,EQQQ133CZHz׮^ѣ>(Sus P, -!mQY.g@3LȁKiyͿLzd T짞z$;;K:xU ڵkϔX\z1~ЧHxNƈA/3$inn)L=MhìH {۹:{#w9`ቾK@?g,> Yc-w U~a=h8}E.3Cg6k09Xb5 )5_v4ԵMCEpwT@MPkaQ5 ҥK~cd2\.$sA$Svvv6R+**FP.))IOO6\W&m Л戈d;w#ax94ЅEĽQ5pR{c`L>ؒLaёF9'3x |o1R u P/"Y__x@s='0@a ; NSRR255ONR7od2ן8q(d!ΝB&''7xCcwf(JLLr) ǚf 쌋C h9Q244$j CDJyn!8-,,̔@q_ѧePaDŽF.;FP>x N 㲒n9"&vb{)!$98 ƨUBȄS.Ksx]1e0 MBW@\ z\຃ܵ=}zR|zp%s}NVf0:G P%QU EYZ JMll.EQX4n(ٙM&i@Sbi>b;݁:\f2MwIPmƼh!X"FѬ=ʫP.Xj|Iv17eeeB^>qaa!p%f\LV!ٳn[sa Am Z~[llN6 \1 㐽^/,--Eֵℂswvv׷?C6 =&w  ;<ߺA`w}733 Ph0cuvvرfݺu͛'##5Xl?8ܒN\+V#=8P---rABp|yrrGJĠoahvC*PTkkj Fi84q\n#U,A ; :%Pc6mF/%R1YŊ[`ƁK"X\jIG*$|bXK4^\t#X̙3 CdhFGGGb1 n\t ℂI=&whnnV|KA\ &%% C 3/B3A^zСC8ܒN8b5$;;|}&h!9!wE!Gw#η:*Pj +l($J)DՇbQ 7%:;;VfA/iǘyYUebD---=@J X 7MMMk wټy3\qtZVB'F5(4<&D@)iXrP%78[nȄ8d:'u 0Pw8===bDQ Kp4X@dsas\===Uii)4C8ܒN\U#KFFF >999rAQ1Q;c@u[І Ji84R ZpON1<*R`tKZ|Nю8eR#C;8\ըj/RxmKna6w92jPI8_ݎcc%A nF[j+:$qIj%)ÑL+h<B'juB QqPFBRP(tb4aV5E({81 u|ww[c0/oqIm R567_eJ^07Fj dHy!kHn˨X.X{ީSl6[vv89 ===FS.#\gv[tguAZ>{|"e9(>fuuuE j⫪G3UHx9Gl~sQPi TDEvNOOx|zYPΊ7k;n"\-8AMںvZ L@=mB1XN V5m y(w(NXĽan~p쒐=ȝOBb^ . QPg JكĬ 8Hж$@0͌rrr>#L6e(> 6@PYYUYYKJJ9!ٳg*//n8֭3Lt:`6&GBQ,!@=- /~@$$ jh3$⥥(9~DjDHG>=০gffzޣGBKj=N㣮@T/pI7nH-KqqCyTTTdh!R\zG>T@sC.yn:Ayy9F:vj0[[(B,!@=ŗ8;VNSn=SI"^VVZ  p$2oooʢعPy)v*))!P ,##Zn9I㣮kDz+>˗7nxPҷL&Mͣгbٹs[oSӝ}a\ 4]]]pb *uPDq; EJ=W7ӝ;B1ڢ55ҥ64 IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$>tŲCBbC> |rIH=h/$$%?IHꓐX0;:$$֗\}wܷrIH%S> vJHHHHH544鱱1'&&&&&&''@ ŶYB" ^a0Fh$?vS> 9cΫz"##'''cɵ'!A_TzX~tL&K׋ߺ'!1gy?!221mzzo2M %.ˆNg04.OBbΘ|1a)ӔOBBķ ..xO'!1'mhAכEB"Dp+k*n{^> ;lW^I{MBN$$ AWATIH,$ꓐX0H=$$$$$?ќ endstream endobj 1922 0 obj << /Filter /FlateDecode /Length 2462 >> stream x[͎S*[m9HN`Q"%uvkezzvcږ~4៿r÷hs&L?+|"of o>|H$@uMBsZ DQK5J Q3FF .ZS~+q>t-G `37:15: 9(V&mFWإɐbQ$HIHT(9FZݑޢ;5k;"\$&頢Q~2$z>|U|?D}uw$DMGZ$/$>jD.C6!Q<mQ"0G-`&8:cBP»ex y'(E )YZr0 F-9U 1 ^Ꜩ+"V!\fţx9QUV~~RcȆLzL㎲^"<NE] T\$ݛPuӧ sG|!iGЭY4Mb5̖S^uHTX%kP!QѶu؍Չ$T#]eҐ3,X򌱉t1s!ǦYCY+߰OVÆ;U& m9%mlze=%qM'yRc^!l1jV+q,ftϬc}#t"vh cS524~Ci=Bgh)u*JL=UCPpFiC?}V% a_@$)>޿6|}(#mjاe{Ny]ڧsS?l.p4{BԼԔ)s/~(zt;"τ< C<]IwДBrNex{Mcq r^΋ ,ߔk4]WʋTIeyiRlxk ^%[+z%>J8O\B]g'}-;GoRHZдHi3./:-hEkĴ730X)w4qq?]m}ll6rCD4u,0F)?p%񣦒o.F6NtلU/rLK}դhk\ z\l/qv8 ~hQ2Kb)5N…ັq *}бmLg2Z$ӹ-5jŁm%4v v~ơL-xRiA1%7K $k dnPFO4v6'jH&j&IY釧l[G+ܕ K7]J琎>I}5>SG>ziAIo ʢFd}h:%$wV_ Ey_ktGѿ&h]dXMP F6x|)ߗzW5|;a endstream endobj 1926 0 obj << /BBox [ 0 0 115.377606194 115.377606194 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 221 >> stream xuM sٸ POTMԺFca7IFkhCar $ǭ^TET¶a3۽F)b$eƏ y(|V6_7mQ^GS.&Uj(SNɔa4QűeYU(2J06㖒HX.! `ffgb v(T endstream endobj 1927 0 obj << /Filter /FlateDecode /Length 3630 >> stream x\Kϯ%ǡ_b=f ނvu%h(] Hzw$S>N_|K=rx邓>>~~s?Ov&g9N?xmG位EdE}`?|NƘ#uH Lٺ` &=QxQtz`MGac,8OlS> Bo~d[o/&9`}D@X1#9<5LY#;úPčB/`:1fSK4P }5DC>bZ[Y`Mɤ$hy ޤO1v8S L$M*Q` jg!z3$]B0e$G;`49@`24C!Xdؤr,bJC  P Rdbb$ 1֏ZY1Hc9 /Rצ}gIRyO`=\;aV?#;rCOzsrc:. 3/)D%- V囋Q;_S ^Ux{x'<ؚ]]1P@Q3HJ1~a]{Mf%hyDpx,|+ډ ;6&JQGI1SAJ+)QAY4℈mP#Z9_묆\Wku\mLoe33~᭰rc&P>4ߨ{ ';2/\m x7UH JA٢,6:+`e$nQyNmD]B\sJ} W@52R[_Zr! Bv0GZ2n RƽV;3=~ :AUТNDp =$[%A!튾iqW/;T34܀ٖۘ(g /aE.$}rX? H3Bihp}bXZJMC<h4M:1ui[MztxD/(}Qmt Ee[Z&W ڣ٬; ߍr*4P٤k16$iLjjasщh- (mq|dToȄ7v ״O9@ mZt& -ڶlD3j)Xbv$Ny|thrnФkݠ=V (k٨=v"Px0xa'eL ZM$|9jNy`NuTm0Zt$jl>/uuKp@5Dj0$Ҵ{:`%/:T ݝ &9)(-WdJ%o9_'ycҲvUk;M[iuʰNJUN;8i_j'ꆾ ?2@"Uk+=~uXZPx:_"*K0i-E{/VLWjдeadԁy(S1(9P랣10WNL&e3! Gil:U0gy 2-ofo&͵ ({/cO6.KE)PsTD)ȏmzSsM>a#nܦ:s 9n۴aùMb,kDz:~)ojcY 2j+jƲXr~=ܧJb՚s؄qM|7&|5o j·ĴqdO(DI2؇:96]`GM&?ztSKni~mԹ{ [Ge k:?E0x=4?,XV6~azL4X.B"NG- > stream xZKoϯ%GvU3 g!nAbmX~?_Hlr< zzc^ ex0U4&8<=2<to?᷃Vq~HX[7sgO7ֺ~: /yJ"nX,Y2MJGD̂䤨oL ZHnNZc@P@!:$^I&# :xA“>Br{;w .tI'w%zea6=^`-J$d5B#逵ARSױؙ{tƼ"#>Ľx 6=q^3q]; z.U.8劌qahw]+bgȞp$!vJBpz;sH1S ,YN('J[ufPs%6WHu2#1# FҶL6?G{J:9(vQKt#n\-;%dcMKFI ꣼ϐ"<Q$MՎ4s^L6KZ"+%D51;F,s=cb',|&=bښV:xېCt^T8`.ds返L=MVtxpuOϮ*X8n}Q.U:)2Դ=idV0ϧЀU<5[(D.M2%d7jF3<l!r"Rn a6F̑k}I@t|t~B;kS r.gy9=^!vg>pưFW! ۔nc8bln_Tj# wH&!Ej"Kb\c C< 4Eٺra$m[=إ]IS'M6.5 V 4+\ELC"USƈ39 ;1 0ū(p[ ƴ(gOM5,iꑽPK[kt0mAO`*-:&e;$(M|*R~E6p#1($]Kzn Fޕ)j. j4DxD}/e׹S Ky/$Ī348}|8֢1)97*] uç5_qH!x8tx0P}`%`gC= 6G2ΰIs$'䲒ܘO!UDk(:l VUos2}4(sń}ЖσY@#Yd̿|\p54Qhy\2 l֊^nG/κibNL֖TGyVE endstream endobj 1938 0 obj << /Length 368 /Subtype /CIDFontType0C >> stream DVIOVL+LMRoman10-RegularR  "B  &    ` $ %' &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityDVIOVL+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈uCn To  ! &' endstream endobj 1939 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1941 0 obj << /Filter /FlateDecode /Length 365 >> stream xڅR]k0}W=klߊ[/j){4%ZL9'瞛)_8c#[E_ڛL6 }@d\YII:$'-Cz zÂ; ~kr,L?cі]. $2<+}+KpN1eel`p s`nּ.q=ʄBih 0vxU73*. >sn@i[%Z@ Ax U8^بf\wO3{,t&ڕ :2Q񑉕mrFQAO2 ,_̡t\ȮcR~"}k VK0\~ l endstream endobj 1944 0 obj << /BBox [ 0 0 637.608966376 358.655043587 ] /Filter /FlateDecode /FormType 1 /Length 4750 /Resources 1943 0 R /Subtype /Form /Type /XObject >> stream xڍ]ˎ-9W~?$ !b,DV8=f΍,; |Ͽ|?};JZnw?_?~|tWj.y_Jo刽a(` K6W{==q #WLRm%!G+Pó n?$%EF`xvK2ǵoG >.RcR1Eu$==k)8١qUXֿ汆ZʾTbYUgf? }kE_p 5n?bhvxa>֣ꭶcWg|/T{<~Ek 5ުd[ .v$3 xRO~l6bQKos?|oɃ~BleiƓv8RN=kmUr]Myd]L]-gi“+Δ3-@8m%r#wa#}z l'O?5gR? j&W7^I~BCo@Y ' tl7eY$gV[Z T^Gi!U'GAm < Č2U:\WY^Op>KFԾKȯAٟāA KHhjR?8|GkSa $7x(6%fVngn~ͣ4@q\ =U_0 M $fR05~Aw… iͬ5g*w8 /C7+Ѵ*CoU+p?>],_ɡl謱k?|f(2_cOS7m“7ۡT0B]m: ؿ',Z.O*{mx!waJ4O璃 ٿJ2{((;D }A)/hhx^mC 1Zp6n%yAf#2xyABF@-x^^_[C558TCAxU 3A7;Kv˖ WrC0_ZBd#MJu X(hiL{^p{9SzP>&o-|aEϲ,w6FG:3uxa[XhBvϿ& `@rcJKVFR Mi( Z{ x}' E\sσWY.x98|j}'g& 30&?٢5:tJf>4z6!dR^#aj)q3Y@b(ZJUl³ 8Jn頝>؇K .i  B&z)el"  N{ӪȂ'WXFш@y .{}Oe& Q86'X}B˛3WXr<9`Ry+)Ju'\X/$i&o؂3kU D{~>F³ѿJ*N2i=V&^ RŐIJAfqS"ZQvb7~7d^x*\.4~9Q^JxGg˜v#=BC ٯvUj+]̊9,V] 7w쀵89 WXCW.!d)W7^bl۲gM|zLMlQI09J6ջ[&~)5&L(Ϳ[SMJnJDV@/9IMf+`=1_9(WJ({\߁W\Fd*_!DATr3ϓD Pwł}a'=(;kRw&u盰fbJo`@RX[l/ӥn2@C%5LI=ʷ&V\JBیJ.>rԄ'{T1E^o傋@)S܈wyiv! PT2_ [06&aѦn2@iSPX{;F)Ԅp1L!$. KM&Y{6xU|D ]ug^ R0IgFT&OElV8f'UWDvaGHrM*cۑ/%{Bj}}}k`듘B7/A.w8'{W ` >k{367Lj]ih!  }k;* 3"ߟR$)ihk3~Al6{zdZO!l`W3Na.7=p(eRVG 7+]]i'}DwY`jǷ8v`"`E]>Nݿ/|r"ٗ*xasl-WxyiqwAV%`&P\#4gGXh*JL76 po x06a-0%RM,.&'iByp[kդ}p,CͥāW\sbIL@`(!lE;,”B7I^xAc(GJK3A2 vr9}D dWZڂ-Ch!}Hqhƿ:p‰о~n& 30ͱ\BXTX r/#[ aPF@G㑗g>?e0!Rcf7AAG ;]ޡ_$J3)˨}4wfE9CEbB9T<{Ш,夣`!  #H;k~_Ax<`7zZ)svֆ#݇ݾ~u*ƠG=хTcͭ9Dg9ڦw{ ՁAD݉xBOd a7Nd]oL@ P\:_ЫB@idhӾ&O9 X\J#D!}h2@ G1?_\Sg+J4@^ |OGY=~LS_!s埉d5a;^~$'T%W7\Xnf^I"3 W ]VLOͷ YWuo26|l/-s~\1 o>(a;u&آ&P\ąïO C3~WC--"Y6l&wcb7fl*l>}ת`{wMnaO endstream endobj 1948 0 obj << /Filter /FlateDecode /Length 2726 >> stream x[KU'hcܲ[SWdіGlm )*E9up~}s;m3덦ˡ.\P)}%w_ &=;ذ^4 RUa?<\ 6/<]aJB:Ii_Gv50bK6㩍gh=c.w0S)Pw=^1Y&]_'SyaK[DMRCgnص"<:՛]i"o=G7,HD`KX~O/6~y"b#-h)zdpڄ@ZtJ<`.$ =X!O(!BJG@)5M<1 Ոj ew]rP1ELB_Cv FqqWaV 3-&;U&tNF`z*t30Fp85ع?GcߨmlBTMpl%??oC= WvU &}FAO%>!)Bٸg$IBp]SR׋-Q̰j[, .IA/rɊdE;|sVQEE:'Llg"3 ;mL6PZSwo#^bħS{TB׋Q(vBUyBRL{8$Ԏ!I=aXJx@b}O8u!Qyϣk#uCS+GUl:ĦCl:ĽxClA7;k6S󃵣÷*ykTo8kXkLlT$M27[ԃl]J\nѐbݸ}EC#mϏp W;z}{Fr/[oGQRg+ TuRlk}{ yWs ~5b&ih_Ƴ[UU2Xa+!hS gT >GUoPu歪K~Ũ]l^Xa(jg/3TB"{=F7tpz:*^t bgNn}|bTq@[~JM\ISVjk_V pRՕڀ*Y=E6ѾJmkԴՊ3tOWQ{R[|Y6JM?c7#¹Vq_[== &h:WV N3-~<11J\ >N7tgeƧt)&XSTөdr_5A5>x#02Oy{0X|Y1c Wg:<d@F6۶-X`cڸ`LPOkS7ذ<#M& y$fm%,%Yˆ厡|@FEH,5OҭFqhe@)(/lar$%Mpx(3^/FG5^)A]S(p*" H8(^eKr endstream endobj 1957 0 obj << /Length 368 /Subtype /CIDFontType0C >> stream DVIOVL+LMRoman10-RegularR  "B  &    ` $ %' &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityDVIOVL+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈uCn To  ! &' endstream endobj 1958 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 1960 0 obj << /Filter /FlateDecode /Length 365 >> stream xڅR]k0}W=klߊ[/j){4%ZL9'瞛)_8c#[E_ڛL6 }@d\YII:$'-Cz zÂ; ~kr,L?cі]. $2<+}+KpN1eel`p s`nּ.q=ʄBih 0vxU73*. >sn@i[%Z@ Ax U8^بf\wO3{,t&ڕ :2Q񑉕mrFQAO2 ,_̡t\ȮcR~"}k VK0\~ l endstream endobj 1963 0 obj << /BBox [ 0 0 637.608966376 358.655043587 ] /Filter /FlateDecode /FormType 1 /Length 5158 /Resources 1962 0 R /Subtype /Form /Type /XObject >> stream xڭ]˲$7߯#`A8;`v{>'tSЎ<9'SRJ[T[_9֜`)y\,MA&v4g(Tcvs{_{m5Ӗ(SS l^z|l}^hŎ{y!d}Oȝ-#qon`2S5- df b8ON5Mvo苽,}CI`;;Fo?~Ԏ*f-[/~sۗ>V})?-p;ۃL!ܾUD4iK`V|[ti8 C9 PRm%X]VǒC<>3\V}q[@n  wkdT TOkJօ5=@mz .Lc!l.rfXpBn]B\ pBأ96ෞC4&Ņ;õ m͹5!(cM$v͕@%wpځ[梄%Pi(N .]^5I hb8 kC)v }01pBcB#qbpB)l$k.]  >.RcRуHXkΛX|pW8zzO81^چZ*7TCy7~cوM ?K[xSƺ+eUr y rK2L+A@q+"Js@ pb Yoـ;τ^Dh6j|b^@[YK rFkOWz դ-'qEdaO^\5X<1QMֽ&#]~&kVL= 6'yxb1:>N?@̨ S5,&q A+ū92 nQ:i%xÁA@!¶jM@Q*mpҨb-{$j^W'{G)Ye&j]WmFC|'RhُfVP8'j~h YOhcxBچ2R0kQr6 *9^!5OC7+əaY3p?.V}i;U tMiK;&uk89>2ҩ7W-gsbCoܾoC39Y(} 7kJ,,8 Қ_ԸO.tQ)Y>\r`.l :CTRGNt 8`E@-Z`?:p$=)yă3Bv:i\`' x&p9Ph*48LX!deqv;` f] vƯ3 BzQiLxc xAL/K\sTFAP[s=HPA@M` `zjpW);a2+/&IRlYvCk64~Cwۼe3ElW{?kiRM.rUS*J)9(%ڥ33!& K T.8Zhh^>Ex`T`Sźu?&gI.-$?ʉjR g Ež$(h3H#Ѓj?v:'"XF$`9~ Lxk:Ka/?Z!auO Ńbc٨v 囫bAUڊwDWD` `P\5a Mupa.j΁mG):ib(ka ]?L\RPPMzQ\(xf:C}73M IH7ۏM~21<7h܅ &'SǢD-tL`0M nbltKb .!+&~ib:=( L_lњ9ItR4~gXUpCQ4br}aj)qbHZ|RRUL Ln頝^؇G ULCБNHŔ1E`d+c8""6וx*\]u?Nc~}?L*N2| S;%) rWLXa1gzA??Lr\~%L%*-{+O>OK&+hV0kpa-zߐzA`??L &`|[S)OA7H% 5 %'Lu <'p[g@.bh¯3`"^ o4DItU{" 1S%k̶u$2 vW, ;"GY+k =Q˳~큁O9tcT+,?y$0z`0}z;ޡFJp:'Rv/qeSsgAO8 &0A4Y`0}9G<(H<xN.Nk.0L6^䤨YՄvOWYHll<5m;t3eуcI> /Length 1965 0 R /Resources 1964 0 R /Subtype /Form /Type /XObject >> stream x%6S׶e=A2IA 'Յ`נyk-Rso:@Ek뇢$^OTOkuY˲_?ߖ'?/^sJOiSS ^ןkO{)kO9l'7))N\8*ނ{hXY+ן׶{[_ׯS4ԟum$QLs#XkM*iGIqbxmBuU/~IzWSC]=+ԖGe}O*U)(AT)LQ/)it돚*TUK2WD)%T+ŷ̵}$t}-?GM{Fᴕ z[f 'F.̴ztkOr=^wae.?ǕS?`j=2ҧtG6W‹qY㮙5>ԣ=`V|Zz}uF`/PWE-W%''UUگWQmViҷs)@>_=W^JbU%+߶O.#Dm**|2_m[I*a` |圬E5(0AvfdPNi@ηf\\(CƢ].`2Zȃ1yuUk;wWcG^(5M/rӋ|~.aɇ[k>l.>8 _Vke1'mc1` ɥ /> Zkعj1fggCefpN3dU^η*BLyxgSrm5Kʌ%bU {\*_56O>< -DQ;YfHLYx*}t}L?Zj;R{ˉۿ^RP&Xw,:aK[ oUm_ +:v\}]/>(y! nku#xt^oۥ\l=>qBQꄃ| 6`ťt MUZ/1UԠ!̖HOʚz2~yjMGΗcon_ 6: k5dm+A`䚒QʜRm6EΘFO4Fx|n[`poj1BLẹQⵈ @LnZ2x^ߟBcpȑ2{M;f pcl֟ҷ`Zv~?"MƑrƵŎ|cN>g9vpc n-#AFTLd!¡E9 PÅf;>1s nu: B!];pǀԩVWƐ>MT[Iws~1j֘kmL؛ u ɕ}wAG48-fڝrAObk!N!n'P b3z5^ƔtA3C^ƃ]k|PMY>k?WUgCܹLt+&fA_Kv᫅'wtxݭ\2Ɲ7w+c 7N.}~?gYuܨ#Hb*~qJ{UV2Zs2֜;jkRV|5`w;UۀU0F 3N6[o [%1ӆsejE\FVeo|)R4 Dn)f ,ִ˔DUiےďU~F6wl<\wW;r3Uf?6{ T d#T,2fJtƎ+84{iO/84v4Oy#r;:H= 4ntL ,fntCbMy{ANM20N}bAsRdRkjZ̡";pA3˥oc&EkN;*a,+ƉoԕmiኴM0hܧ}<[Cu:$bbѵ_MY7D,T~lQ(fRdG-˙[L-l&\^̷m 3S `Wl\`vYfDqC3-ψ+-rco)L+ra΍TH2X-gL&{@ϲ:И=xzDc2VKsl(= -iZmɽFZWN} օrdTL!ג'}v_+|-CbV R%nK܄g Fz1+7 t Ԡnkk.mPg`|^;|1F% ZD,b~V[-.(cRoz\ msVw5rl9МJ m@[75dh##)Vn5S̱tw,ڸxˎخB=@pGRKЂEjʔWo=){KFzZ/|`_ү6`YP~T}񭶪6{>a`FŽ~El!^lx\Ba2@zXcաEgw}4xcj*P^tPTJJ&H]M$SXCOqOkaWpkXicw*'qjZ؄bhmR/BcyRVTV.?Pjb]*?sKV%JX8V޵2l&`;>5ony #AknwU^q>b#'Ʀͣ׈5 B]dH&fYN|@dz=}4G3phqlsz4F8oس<=cBC co4FӅ|3딆D2| j nEC6PDJJ98O_K#nn}~'Qd}׶jaLlg=LԄymn?T1ڱ%u^фm{ /['uXQ {ĿPHPHr|GDz7'̈g[Q.7OK!F3I֔_y\8ANj }l!~:D\L:u25LP\R <S6.ff;y-}˿8o 8N㞽'-HZPifDGF-;KǣVAQK:N^\Ĩ{wwf*PQ!Qԇel l#L"Lol:DzC pzQ͛X+O~*n8CA9[3D@/•_Qv* 2#7D NeBa1U݇&U(`ι! hRg1( fFpZ^;:-p>U5ԉGkhk("d\MU {Fg3~R !W:z4M}V~}t2ؠT;`ݮA87\ d?'~2 < 3DgUP9tBZj䘠&eKP EH>4# 5A8Eg((b-qp^..FNP~=Fz![R9| RWMQc)OѝM+PHP-;$“48ᐰt'dp/ &pr}2JǴ#c<)1`#rnbĬe$X@"* ]Ӻ{Up7&N/'H>0HxAz̚ZѶfk )}/ٴg?? S0-m-& <̬9!l')ݯ9gqMt4 pP}Z͔ j9~\!^>S^C=#̃C yl勰 11g^V0ӄ@uNrŽccv[O@cU$Z=nL?b¢ =e)Mtn[Yx>rj}nn;to;L!"K:0/Le6vzhNk&%` z!|kdvLp) v'I[BnaV64h@2W (nh$ís Q+,kܧpkGkۋGv[;V6rv ޖy0!5Wce- mu.m)8nH-v &) -N7xCvf[xlkǝ6YMm`XeL[wm4_fͶ?f@C~*l"7y\:Qc ̶ea51l /f[1k6lcQV =}O*d}4f4V+V1Φ Ua!g2ofB0 T[hV̶Ef[am/um5pyOVh&9OU al{a.^FxB;Z%ӭPnhVJ~Ga-zncvdK[0ߖY[Zkr.|k:2ߒ7T:;]a8(SSuDR;6JAt"0-*XusƳȯ5?RrYh'9~sV{B֝`#}ԆB0Hzq>\!\>L VFZ!)'> mi-a+"#:Lu:ؙREd!nz'wGsDK/v>%juv9цkA2a1hr+E.%ƚg)?HXK0' hduKIGc*EMff '̏s1=ˌ+2M<;KqC%,Y%+.;s\68},=2O]Xm4pĶ$av(R/{v,S;"r:gټb/M+ %Rn\4ſ? zW"|^܈e);7#wK^|VWJψL=(j3\K{e;.C³,V$LT#Bޚ5feAG74=6*' xSr .跉9U38➛2'JȒ` ~BO%%(4$jvL5gc~S~ W&}9'&m}6 'U[$/q]c=i˚Mt''HytAKy2}v#18VJ'u)OHA0)'e2({)OI%DGcueI@I1^4iOuSjbZ4oW:b'GiOW;H{4=MړsHړZsʓtIfӽ5qk&?>8ZY&!4J=υy'Ԫ=?g䎝 䑰 |BHv> Gǡ귢| ~\x۬]K^sU`X9"!66kdWpɳݻ=&Ġ 3ַz\d(A/PN[f׮L+]ꕻyXBz^K:j/ ۂzFH2"%/XDx{qkNeTr|i2Xy:WlH.0N@x= +m=XXo cU <(^۬=3 _ьaf!cڛvDvwGUT h>5^W|&!:K_>(cO' APP'*)ȓh kRƠk)IsУ ώ ޟ}7]uܽ& #i·@.LaP!.f)Jbߏ>%3Y1δGum&;;  0\!Xa\i_ӏ*$Q!K4hq7MmKp̡ .ohYsӹ;{9L)1WZyʠAqN}C<3 P]+TG'u9a}i0pcpvECԕF}un'LTt'>ǸUb[.kY]<>[~IFvDC:*.ʴ KfB^3+B;!i!M>SC0CuTaY[Zm[@={Qdp`vVeQ\ b>ƣCA[' ƻ+]՗zoѵvep]9/ڽٰ+9n]]):i!jY1 xacf)w0ʋ3^m V n?e2|E6:~e4B8ŷΚqxң.H[X`K6Td;&p )an 53>|gPw6ZYu:n3-y|quA2 ںc BLD$b8 !3 g1'ȗhiKVvl~?q>&"cm&.?E[`jSRw?0^?X),99^^Xq5rFJ@n,4%Sjw+p=j ,Spq8ou&O S֋cV\| G6Ƒkx,o4U֊xn[d-^O,~buHU*.3VDH~M[kOTy|,ļb o]w\<]/80;ǭW}`%+/,)Umԕncnc:ft\mcP##Sne^z3vxz *T ./z]rڛylhW옍쌯7๵>zt^㯍eqM: /2Lᣃ6ӑ*WޑqU

v `{]cMU`ckGN kBmVƉ-CPQmlp:qNf;:Skq 1 wK`wldѓykiŵ0c߃;0iq8T{XL]Xd_ѓE<he_) ]0p{ċ1ܾȹW~ڽFs~-$i-~ޟgzb} P跦Q4= tX3g_^/mn猅 #.(NoZ!6 PbgVg_bmlqbh0KB)X5!C;'< iM4e0;@h򃍅cb|kүEgg?/ }ڄvmϑP  wČv`z&mݴD$x ybd.+`v\EQb 7]@*i130WJu E@ti^omn)2 -^G C AW+ fD[<q(ߪAN|K 0$N2x >LZ&5/QN遯n,m|{kL NFA /缟 WO$ۻ!KF?H|1a!AA~:O.~܃WD}ECftVeat&z޺n%!Zc 'j4FMKj4jbMg~J9CLYNtlH"QՊ RYhF6Jd7 Ge3'xEk ˜E4=sc&\?ؿ^; ^;b̓ 7:|Gry`%K$gtAK~jz mg|37Kˌ[k?->ϻ5evO2|d ~ч-~,k :66,Dd.c֣SUqu@v9c|#DxBuQ V憣}{e׆Hچksjh7~͋,F66gIy.S|p8^fN yfncԼh% TDǠ'tN,U|q2(3oĢ&Gܰ\|}efGMa X ~ՑMzu!1ý_ag$1Q[ н4UV-iE䷗v@՗JTST:}rt7P1jشTKqTwt'ݓꮼ4j-B,; ƇJ \9T{fhgt;N8AdNuWM63yj%uS%n|>>wԕEm6"eVD"Fz 2KabUeLG͉:Ѡ(ڝ!ߔfϛ>_ĂC:/2w$hh.XQS,w{׈R6Q@L͹n.l y3TS}6CgYa|(?V=rxtlPXXѡֿα>V<Ϲ!9]u#:VH'ŀ%\.ɱDV:KdŁ_ |t■ Z!+z Yquc70H@Pn}\xaeF{k@2kl;k R h!p^ =A,9TW@ CSz*Hh+C.o| szf3tg׶GSm(|X[5'/h||7B㢫tLl&t(6'y۹#kwu`yɠETѶ+v&`G/*(Or^UfWt7[sPG1ZlGu6gm)f cB ,I>SB: {䴍6'X~kz0ָpΨ6gmN.TdJOb7 <ɦC}.))O;tn|4̮N*ꜳWi+{XU%]%L7YG*5jHKR(G-#tSB#Aji7yQ Ѿt\aPO]ΰX'6HIXOpC ]z,AbͰ61w l1, WTL=Li622[ʰlcfة,@X3t&#kC8wugVʠsG;bg6gCX?UcJ_A[ }᣷14 IAq;ȦxQ5I:bP:Y۷H#X'䎒a?/̏R>kiFp4ۈgUx|p<& n{Ҥ|G6>2Wo W[KQOEi_ѯ6uS(UrqXd1 <7e,sPKK阹"X_bHzutgD|7ݝiY;g`ZMe{w`ɹ'S-y/m;˚d,_W$T8ŝAhPGƞ5Rm|ƿ2zre kqq)ܦfƕP_Ry)R:Z8hs|O pKpF9%֪l+- o6i"W6/Yz}& {M&06Z kv}QKN)w`>^!4R46ԇ$Z$r q՞XlBR#B[$7(RXU,q{5K,&ᐮCb_K:lҙViNiu}7aei<$7[vCYs&qN}sXy+tct.hF=EΐRuzr5HRUdm"18c =d C۠@VAiW8X|v&ɲNE~/i̝ Q9(km]ǘf-Zpk-DbDMׂ -ha+H +ztcu qlp ΈUl:ҡAc5BB=A_"6YSfﵶFW0)or<6fr_%#:c{kXf`[C4JƦ1bGwb+wJnq*s2' -#/#BNvd$7{gv D|a;]t%Y~HoԳzj41QLRyTƸW.@A0:QV蔹NK0ܩb:y"]sxd7(tTNcě h6Eۍ> 8!QӛX՞9~k/]sfAH D3 m?幃y;n&kh %¬5IQךԗ,<Aq +FwꖓQm7e} h{3]ٵF ;jEq\=v9H|"(lۚ8}GBl"h|>L78(Bj1ܹeoN?* &+i[?RVORɈllʃ= 'CJeglj C{ A'+C -;_kg##҂oh&vWzad_e}¸ٰjRUN|t7㻅YͺQXm΅} h5u}h>>=^h󀎍z)AVKsGsqɓWG|x3oA7Kt!wt&84"ݔϜ_Z؊- .Mk1)AC{yV2p6c-6J1!q .K [ԫ0/NĐM"O,>* `[O&čc{kE5wRPUՎC* @ # z2gNp3z5-y6sŀ0T_UiԾ0~-vs"2E?oT] 2ﺐ~*b&$)W\~(Pխ>ە'Dtk} \3 &V1<'&xl/<jo6{'q";>ܒwL&I*yhr[&p2p˗~z=q˿s]U2ÔD 5y xTRG\X?ճߏqfWPn iӍԽ'.oMBĊ>qS'h 327pY[RxsI ~2Se-{,~Tj,B` 5p,K] 󢼽##Ӂb]( tK[I/w]fF.OytUl`@]$~4D$/=DZ^Lł ]*ݾ⣀O.$ =zhpi.#mz QO-:e )t1,sAADa  u=Q\j؂׋[a\EDpUח [H [8SwQa&lVÉ>Ӯ:nWJ/7_ m(k{K[xSW .w4]ck T{P7)B L]vNNYϭ$z k{*p#BM3o|AXu/v^禉Od m84M cxΏ+6O GvycW㡝 1ȇ[3x E5/GUhUO M^'vf﨨YRճw7םd /3܂{;bzޫe-yǧB|ůz'4zЙп'=Bk0m(~`me=MS)Ӗ1(e WGG{h{F۞QI&p0`H{0m{Fh d2I})/j)us#nPV\Z!h #!%Eaiofwo=1oH*1r+ۨs{,"}.( ]N0HT÷"a[%әq/+庁 "_M?$R$}\PL_$^N83(E/_q/a j[7{Px>,^ ~RR\'40a˼z+ډ81hh|_q6c锁yq-pmDz;)(3'ޞ.#ئev_:ws^;Š'<'>`p`\QJPF5>'6L-B:|@g 5Mhb|2&Rp)߾($˓Uy<;eTbZuS7g9$>HQ xrb8fb,E0geZyr 3D:nvfirhXtGIlٓ'fU548'޽U3xɎ1_+ +3Z^ ]]j \­ 1Ŷw!b뛎b _3u严xEʛg7jp2Xum-6h.0^ȢfWg^ڂ&.˓`t2V=mT;yjk9E0,i?TnYAԶ?sP ІSx}陔Ye6f,$tpEYXr7#5FwQȃH[U??,`ws8\bo;xOoYUڱf^)jѧ$#l瀖E:Rzna) 79 ISTqX5 /~eWv(gwCAB&cĺA5Ä3%ɣo)^'0f N'sդ>mc`툤nG`IŹH^n}XǗQ JjkѪyaW6&u!skCiۧs?? p4$>>Ъu)Sr&`v(rx|G!pЅMF|t«D)R-HfJ"Y~ʼn3iP0 TJ,QQX&F5([l1.B1H|[زy&ot m""7:h?6z|,F,^9"TTfH4MiG#EhoZ^yƍ)$1}UZ,HAɾw 2pșmZ'۫Y#Gxobzv )0VmZ Ҧh;U+,(`ѢLĩh֓T1~TLz2(WJ^CHcWMxA!$rNIB(F\>oUemoY͢?Dt>^ovrwo B>N"{/*cD㥒'fzw'< P^{B52拨 N&bn oߍ*IK ,^}3+ aW_w;\=A3ջs1 iMC>Di9lQ5E Bн@#Mƭ`.d0 {VX>}< /oa{Ԁ!r<JilAs`+R a)#lD0p9Xq%l,\S#Ae3e̞KWѱ'E;CsJX&0b =v,;;^`_=:^=NȁYAN7IQgX;V%m,Dž׵E 4Bej^r^+`n'y'6j>3ǐ3 ,#AcBo9Oln9 %RxA{6zb'h })ZV`fƈHFcˆbwKHā%W$ ۤ@l?Qbtقcl. K.ӳ`Iѝ!d&# /2 aC7[KQF͑`5}v-t10W f2.dNWhofT“B O* wM@a'U)2$x=§ɏs 6dy:~~G2 o|oǍmMBg(ah~:r{A*k" O0W ]t=nAxG@ߕ u^ԙ+3ܡy^BWT wE[vN&#I!E,3[)toR&&b~~:|?I |x,%+`;͕7LF6b| cT(Axiev /R7ADKnJߛb<' CoͰ=K17ݜ(z۪9[aılW:| [Gvu:)/cQ{܋G5k:|ֲ&h[n07rX|8FCu-xԜ"X guC8F[9XFn}SPhP dzNmA/r]a;}[~%ٕ=FNgITTӺyTkPAx x7/U蓩8 Ay1PQX*j5i ]٧ 67-o$Sx~u$M@0 :G--9G;WiYz r<D;kbteÃ_yQ'+ɠ6xYǾBE}yM: =lVhi1#탃L,g^izWpq 2DoCR$z\g1 kjiEP=0gކ\/ԍ&M&Ս$ xD+`cCey:{se"$)OFo - /6 vXeF12&`46iSx|*]MѴ&>=kgG'gO3mz>\6(N6m%l k&FW PfaP _Tc[XIHPc|9762V c<|[n3d9m, K:%Nw:*"HW"_1 6MCγ\{ Z*'h 9HaC⺯v\NW ܧUH @4u6\&+p6A5{0?{>Ui@k }N{ :NjAyU+{pu1<< K?+kO`*qoWI8?GˍdxbV'>excx~n%$DH2/)=2η{.\>:쿫 IYnIEϯ)XM9j!{Reexlh6] {ҍa{ft ~$CzD )f.P )AU%/2Hla^4RoAicZAءHQ鸊fhcv*&3kaDy~'EewXl;Cm>Ψ@ O)x޺)~c`?'쫂H6+FO`$+͈hJyhLPiʼ1Aށ–3#F`pƥNzA2Vį]ך^?6W@Ni~kңU# AwPnwwY,7\"nܕdcuy?|Xp 8"QO bE({khdZGΉcv|v2 [mv)X\*3ȳf$f#4ujU$ūYC=j~~P&Ꙝ]yS=8D]xoH?{t@VzCW40[ 6>IsөG',\BEt9Rl6pa>'֓YR].(8Nn ʡ~N*QHnEM dkCLpQp V&r&"9X3+YB2s&FW)ɧ=Ɂ3AH2NIK]F5MI(-0N(xX& R׿kg/cZbԖ\ψ/eA;V ~C?&F#I}8_]5ϫ_r%#VTy;0Tx|=zHi$q~Pb ~iR>=/t3T~bWn n0xoy =jO" Xuu~ݿ\L[茅f"$LaY5ͪn)lJmzRot>H/U@0tSP~a_~Ǽ=eG0HO,$^'<%}$G5o)ޞ|͍:|~IA(a㋅S (^;j袾H5w\XΘd{wt -O7'>J35^%^VRhGisvD%U XQ۳-)v03l@P,[CF;c.A APU -M='{bY4STYMBB5q([õ1^=ӯ4I$ןF쳱(Q_XktN{8fN.b5hI HmdG4ښj[`↬0F_ i ~43kͬ -p|9ҔH-asC̚V}C7(Mc{~Tqa50V|e`@Ъo!XG)=q kb9Mu"w!" _"5l>^[GS6>(M#CL2 DqL:=O'ƍ Om-l{YvG4(QYH9ipYq̙xoIo܌ A;oӴs6I&g5Yv [MOd4ff `AX\5qv9xI3^&' 6ɝe;:ɺ~_Gc<9-?'t!NuhB(1gy{vKtȏqZ\p::aٺx6Wwd3szJH![,lfe=Y훻w:%"h?s1 @xEEn}ks]0G>D:n"5H]6#IVL3G堩GӴ@Z?&|.j* KOA#p"*OzhGC{@vߦhS]w#&CmsH4Ƃ脱  S޷I@2}sH$ۍ ZOZ;Վvb=셭Gy{8h̴"$]1Ɗ,ӊiXՎ<-S1/-:ƸOڧjaGU»]xf<7P)eI+;QL\wmAԎzMvfxm4(1{&=)\4m>/1gi=]pNs6ŏoH{sIdjlJg6ͦ3gAc Jiۺ>\}MӚbR4^r* aDi;s)TwK\ J$AHޠ 'Y {F`s!S;_([>!8e>|޺֧k6\3 ~89[#^n*#&!oL{)\-(4aiFolVWnH]Q@m[m֜+ke:(i폿ہ}O_Ajڏs;Nqb8 a+*ou9J6(yd>c|7'\i@+s;lj6Fewqe{9OLO0rsoI6,Fuۦ,X〮ϱa%k(60 6 v0ߒP 4'(\[|Ȝ3E'b7ޕ0~4 g:5Mg^'y;>ՂI2+f-NϽ^|/8neE=} Re`6nѝcCoW7 b$ל>)p$&Dc?/´Qmlt ~~`AJlȫ ODqpLl q GTw3:ބɿ.i|i2f_Hg-mRH6 L~PV,] 6D42c]%xP%E ql NӔdƗꁵLJI(pQKJtXdQ8M}vf 妝G,LYn !sPfY`pTo8&0YuMT!<4kPo^=#0K8yX7cZ\sTD56!A޹_u-ddtO9R )vf.xMnxj[/ O7@sS[}T>G+}i{nۘ SBaw̚=S ɖ,OT¶m ls̶ qG=me*mFe_m1d@ڰerۊ=T\4 tmXI:d,b3ٶauEHdqYS;zO_ܼzyr C|M~x__Ua\r\<^>`Eh2E M ? AOx$oh=:>?(ыQŁ,Z M )-@痯8rqcRJ.L_ɖ;KK޷㍚tj&R ӹ;fW\?_>l5juᙛ ^T—],%1F$Sš!=X+o$zDcӺ><`$҃r2~>I2F?;OJ(,dSkor#nǘΉ-Nx) ˛3t.ry0u#E^qqhc&=s$~_EpgP x ufQӹDgyxHѲ*(en.˨kAeqy8fl{5R ={Th>oވz؄#Pl[d'㞄],(Q׊]l]P-eq3j  .[yuQbe;=_jF:dBHKxYKϧ'lJmf˰[.٤1sF[Cbn涠dgi&(ά'em4mA?;WJ(GHOlЧqkb4nӓTg^j;u_iJp1hZQLrLAehlUv-l\x=1M %#ɶFo>&,]2y(Iz u>qj/SKVχ$܆_VXC%%$1f\1NkH+/8$H!VQbIbgĔemOcbQæ$ q -#Fy J$> SJ9X$1Q, fbuo=)!~nASp|B (uJ]Vgc<e|Ŀ9kϦ,-0RAхM#/.+(Fe댵pSl62ܶ2$V),I8*laJš{2HA;{UX|%5*iF;]}@8,v]-E|lt$YB"2ű>4aJ7*wDzV)2c>H0ԩy`r4Bl%z5!6[-VM!ᅸs=y#`=tZZwf ~<,D Խ8/IKg6:1eeB_n#[4ޛĻC TީtVC7)=21"5 iO6sd1\ Wpqؐ™E+>e6QK(~7QG1 I;:NE 6/2#^7=[e.3>Oīfb$(qE7z$b,$߾;'J7w}??Ni> u1(¸Eo>9b7kl" x}8_ 4Z11ǂRi55w'=(/3A9̛ɸCL~Vx}+%j5r /C͔;ؼݸE94ڦzr_xU%wRHѝ?{D*%Y9(̻-N=t}~e;(Qc(F8.W*/$g>TNnFyI YzQ8'xJi#Q* DZ7xTYp ԷދN^#is76=4xSG7:ŻoԍMoMݨzD7э;~̱ei4~TFE[mHBN5k5n`uƧIş .47^vHBkI BS8a󊌩nh^~d#i<gYw _6;൘IcXaY<;=ݶQy{duYQIO۶+;wpw"ΩjU+A|gYcX DJ[~΃|7:*;P!FE#ΡqE/|a&6;QsaUZTx_)C:kҧ6ժ!=K-fȩ]fsM-h2@b#so{}/=N?J7Ik33k#\^w[0"d? (̯\ߐ%L8ݐve6C?z<%cU<%J#o@w=$Cb ]k'_`ۙ\~K_k!O\.}δ9 B߸bp 3a0&چEEK5@hli!I?x];N@w0 2U[IH zdg!!qhWE|OlE8fӧqG\cz~?p^mshO (txԘ2YEtb#9\A:ȝ5U2co=IrSkKty9=;FvN4 KdgrZt{!pCzO%䓒E,Ngmo»ՀT!fq02c=ti蕾,yJmԉ?SH NxPL  Եz-8G!nl"WKI9e ҂@h @1'&#GԎ&F]l3ǖrˬ"O#MZǂ_ttVq.uXfnY2%,Ck=ܙvYNAB^ţuCL|Q3#4wUj(43`#VBB Q/  9x2kf(2K ]+!K`Pwo+偔PM?n޼k?I@ƿb7.mYwKfQܑ(L@u:hq&-!G %@bßWvg~:!!QԜ Epⵀkc-"Kg(l2C3qn3DZ'M~ω4#l[X@6ǔ#b<[K Nit,X+=%6ew}h0 `薮 Ң8iQ[wlW3;nd2Q2Jm̨kb#JQK4ņÐ曣Th@Z};e #?/Gmy!!gݹ5cyHo˓hS;g6uLnE"3G|ү/%I_؞Rw:~6P~+ly}!ϿKPHo"=YHI:kn7Mw~qsjf&? Fs_czG=B:֜XUh!a0+5jf^ǿnoi_9"ҾΦz°@|"C#)ɌV补28b:Xb^#m :XiXȚ%R+O Տ~|SSUߧ::3Ҋ4ek7q'^nh9xsM @,l\*[D~tQeAd~G`Օ~6`5W(նJ'pspncZhi \dIqGy2YxFksW4I9rx:_ @|uj&ir4yf㼄\v8n4?֛Z>.uybMDo\Mt7`Ø؉Ӭ$x5p'&iNJ>K'D=_ȔܙYK*D7ujYwYҞD&JLx}n OVt&u7&HgA񔾺F-qa xFX`VĵH3f)\ҏ6nqDTmF֘./4r"C9A礙lQ`Ӂ2?Y24…7B0E5^L&iC}}SSg,ؚ%gDJLÆ+N$`g4q^^7ǣRܜh1{AUZ;`UR4j'$hߟ@L4ԪtY\2ަx!\X6c J @4gtޔ1 ;pUq>:f u uYO <،>u69`mao];[a:6 t3O~ ck64 I1zo]/BB%3$%4@,E(Apȩ h<ڥɈZ7^ɔI,Z%3]cH[\ja[|LBIyKi^Ͻ':Uf(/G(:LԢɷJ>mz96=nwd! YZ![X0Y\x5-">ݐE7n<FgX+pD{g.-yFf]DmD4Kqo4׭Ȯ2P1aĨ9c?D4gKM#k#y}AT 4:FeTHhyYKYnSf"jX@qk_0Vۼ(8{ :xk 䭥$Vz:z+NTjo D7R E\^\֎ER;]=;'. Ko=.W]LK/g#wrNEһ| c(aȪĜJ0L? L|8΃e.w Y"K\#Pb\)3CбM)Uzd!.d- x$>F45-mMN veQ o? Qc zټEߟB/"=7@cο?i@u0] _`3zߩ_dž;ֲ:ezYHA10w`܂~})?Gܬ;zj/Aܵ~;'&cd,6|iw_`m,"ϳFsCXyr7{VgU=ނ 0[KbT ' zS.TP+M"3Wh _,F:qspR?+|짨Oې:;$s`ެ+ ˘oi*ΞMд~oq-tLS ⬧dV9{1 7 p`6SQՓXNkq$[:Ë5FUwͣ4Cbl}˝bzlC<Hؠc}Xq7td3ri=Z.">t_x紼'2bm nV5ZD*M6lj'1QJ4 AV؉T1b1[yU 29q ^HOzC/`W߀QG4jݒ0XJO4`3󞬉+ 0Z9j\kIvHkߟ>3MȁKgڦ-;khx+r3qcjɭ-sLf]c%f>:y/Gqs+`2(sisӘ7jJrb"bCќ +cK`|.Xaڈoܗ͊ `Hi; Ԯ렲_^F4m5ʯ7,M&*x9ic3CEf=;ɌN Q}[F/fz<UpF3a9J%'Zy>VFU%[Yf$ P?dk\2u77ݐmxmj`r؞t7Go0' Y뱲k8b-8 ~}]ת\itF17XllӭI\cDj$ yoKSgz 6H~0CJT׺ۛK^BTKuʒzD!ʌ7(3D/%B}+R3  QP]2_G(LmZVA (sqEd!YxC`QrBbcefYrT(cb }EwaQ꾶=Mۅlݨa[ûK=x?fxa势?;DO(Pf5%ٶ&L1?=a\xk& gx dl9v&fT `5b`Ggx:><T7٪_ŗcU{L&ZUpQ;#/V䬊QpXbT=\H+Q4w1}s{n@6KPW_9 1d(gtRʋ>/1ʚB[bҊleRj7ڀNL)R(6fV!G;;T][t)jEbJQzTm(Bh9D>||IQXbब#Z+oIQQRZSik2!FYv `Q[F.)j0’ʣa4i:5Hk4P BԖǏRh1E١`ͩ]5-!P385X:-Љ&GO~ݼ*%~wa"}CN\zӔT ̊h1"zsL5[֯UXL9af͹ƈ̢(o0U1 tg2Aۛ7uJ`mUHuf7Dl~" Ԟq>gz,#jI3jki{CmmVT>?wM;YH|b懅r%U LS_H3IP+NvЎqL5K/vn.fι2MbހsYlѹ@h@` pq[=S `0y996q^,g˯Çy͗kz{.\-V Bx>t3X@%."4;8:\^ mHP7{6|* \`@./.[\/ iNpz *ٮ5GuY_9/ȡy?ϯH07Ky!P9GBPE--6v < _͠BWfzܴE.t[ yƉtW^ؘIZ{!9;XpcHed)> .]yPnN 7 _>ZY+#6Qd~\Hh7f{ù9 ItO*k80s`F/@zrlIv'zfWrU t &={:iWf9f퐟$jR82/[ >I$U"?󥊕 i%+i>r1ͩjs |ʮ}Y;,n.]pM 2.)SP_O^Q׶Ӛ鈂ek ׃h+hTUe $6Oc&D+4xǃ-x? QwzxL&WYpIA۔4ƮGSԷ-i3ѝ+0ᘗnVSN6m q5Ά{ˇ '=-pgy@ KBkQ7Hny1xE'dc|aAڀ &K结>A޶nTXA?8P0K)'ukY# ~~S_ݢΛEq)%X? /.D%}|eSK OP\Foz!CE]fc *P25h"6]# Cw cͪ%KPONB.HOr :+Q%APݒTb0/&A):E`C0Llx"1]5<촥ѣW]Np`ss?{2HN>5@Q'IDU~!lJ '_g@83vǔV!y02څ+{ȍ{Kc)W> ^YgH87wa I0Aŕ06}´mMwH0Ɲ8!mq 5֪C֞kts #h;pP\O]ΰ1I>>ƥ1ttkoE|W%wwՅA6^IH"yh:#9`Wvwω Bvqq%65g#B,ߣa4j9] ~o{)vKw璪Q%dS@.4{]- g>s}݁-#ϽC ۝ϯ=SJWѤL99rM3*PrGߠƾ m XUHot\#A{]F,BׁuhEOlbOgFKP2C،>m6)(]bgX0HodcWF&&EV?xN~"\H=c!rGߝoȻ}O>;s]ꖋԴ]%~*$g}oWh4K *'h8HˉNxr7cg Ge8%| 6t=F&^ȥjuFvH鯵}xf\eFunF7twKV2z5M#k6jsLC-Z*w:^~o{( D0Oi~s+9$ь0t^wz[ҴW>)xkɞcf#!=}|Fks)}y\`?,xLP!`'}Fp9][!'CFZL_CG~IRr9g, 9GDğk(q i~f4hPg! t -ӈܖavfBYʤ`18ŇrOY b(#:L`!}m8\Uچ \2JM`4bd8@@\"Fiў`!g3kȖ#''Hr%dG'ߑCpx@ 2jŻ.5b+U(ogcl(TIlӖ6ˊ&9z[UxYG:YX[ ϞH$3N3' 2͐> v؍HnY jA֮ HEE<}Zh,Hl Ou@QL;Nv7\E*m+-OFJS3>դR`} 衜HX eJ6tNG^ YCL e>+!:] dĴ-3ztR .f&NEo652h=VI;MQf2a%?"ZesNj-Syz։S:ȌHho͙%êHdyƺܱ1=qѮ<:aݑn裏oϰ,qonBbLr`fOMIAlBs~tp@8`EgI"K1EK_Z$x< U=p*"Xz _Y.= 8m0,W%pgbk=- ӏ BHs9#!_>Z5"#]劤ml(R"m/[ %@oW<;55M둜EVb 64!ю+>T1ZsľW@:Ekxq!mCn:UdgUص9x_)jXڭRdP|;"j1jchݢ@)ngGO0|"<\y|L5{2eAb"u*I*e$g}Jږi! RR$Pp]2%Q|+A4i1t0|U81[h5]2:&ZSe)nCoD>!I h]p{>;iŠg7O\W]MK u ,w~F%I@ݤgcPCdER>6.Hhq0!l牬X=r q=n*GO|q__̞p?SD`᧤OD?q Y@k4^0v]0{tf^ʞ EezHVEv:NN}plK !Q$NӍuJ0".2F@TdcT#]9Zk~`.xvA ORJ!tQGD4oR JJ"xwUV0'tCZ|Wt\;75ARԩ m@RtyL&^*_RtO SLpy/.ہ, eu@*A-F`^54oN0NqQrM iIR'F\~o_n~TgǑn*L8\f(eXHϸLMD}Lt_rH鐃t1[zOf)nf6;(~C(#ݞG%]b|YgZs|C=s!-jGB8׆vxQM}bI&uK.jtN kt-"0WÄD3Zl^H¶׺kEt\QFJ `<;Sq4فgG/ djX⠂o3t=-c%&nLh7w{b'8'?Hkqrhff DžO¢nPjDNCDpx?eZ"ugU4- &vKlV-ڎ@ql^*_$"y) *]]. }BX9 D[\Z[wHrG/Ja"rOcӡv+Z]|!'%X|TȆw*nf* %o 0.L? Es9t^TEc>U"^{4KRCE\'dw[$o}plq쨿6)Ndޭ: +(-I&!F9wqݷL>EyOΐVq JPdH8GM!IY'75EOӜ =dτ@즘FO"xZͤV@^'[G#ǽ5 uoHMDž48Dk"ZQx6yCqι(C)вʑܕDoѷ5pKJrd3#'}pg/Bs된WSRE/N-.Zx< 5 N\Rb(qѭ4郙Y ;=J%༝#?p!_ =B(ᡩ^/6Xˑ,o} ?pD5,IU/7Rw0]7]؅1'Oq^`/P] :TDc+|>{zho#aKR%KYv~Enܥ*/./TC2wUς`N3Rr`ԡI.VE*=wr,8ֆTUq\TX@n9/zwhb ,2ZݕS+Ϧ:C"P$֞DP:pUvUSÃF]:DYg4l5̤빤/}quWˆu i4n($|#j*:#l-3Ro)>h[W[o==.ZҡB]S#*qϭ*TJ#T팋 {d+ȴﯡmӎF`K:@6Z:@>m;oZu`1 yt揹=6h=^O 4{~/~ s1--~ҙkGSA֭2|pW\if9lҙ5eg`wA>M)!"!Ef@ΌOҙ%D:FЙ5 Y3 :'51LzΞ=Gq^KgHE3K AKgk]|IάI(#aE;==6eY3KLcWfٷZǙת#>y$~MgWZ /"4ƅ u!)hX¿u&TyK7?ne@@^Gkltzr7wg(̻; VKHt:pYCJtV3A[\wQn.]Kq+Y͛9A/W} ]mt_Y% `ަL؏y|-:kiIp%S’b.,), vwp(: c4()E 27vPkRadK1dKF %>^ ycfh ª0^%,Q&SX˔veJC&[>w17[DQxT)H oR+""aed _:7g(l ~i䯇:p ߼ ,TM>wvxf <1ʕh&%}Ǯ*:Q@ W`HH?;>wAD@5=^L #^H{x(7FYrj5K"JiګEYVVE&1j x|":4 n05!OP ^ҡ[ɏ+I+Yߑ> Nsbv;=%[&>pB6*ZcӴ4X@5|p:1E5ݴ~2M_S9ztWDC[37~r)\9HE}|ݶRUőb>WW5swgxdJ\A Dz9xk>rc7B-L}p"֔0F~+̔:];].Z^`[P458a1r0/#5h1@&=adBKk~.-+R,ȡ0^-Н^tD+e75RXDG) f$iLG4Mp)'q*ЃB*qDmf?![ZX^A3ėv&pT9cL߼Z܅M~F7~# ( {x6 C\LV+y(PU.0+uhLC}R Ii];ȋW?/p05tY/A6KWhbfrK`4Z '#S QQ4;w :<ik'$VX-zK1[~VhCmH:K IDBS|r4ӁuIHHniT\ kDGzhMQo#qzOz dxnc%_;mE~4cѯ5 Ўr$MsD8ˈ5 5ٙf H{3:=x<:i".ZhxF )_AI|']޼+J&XD v\&tIuCbQߟT~VUvjqi*b<{EΫL$DRkJEdR}`2§˗S [urW}[>2_Gbz>br] dqf*Ƭ2/h37y/G[*zү%A_j d.Or4PQ/I~}-OКF|vjiطU_gwnQ@y@,sf̠ )1Cqi>?|RӲ P}3tœFHn*_`ʟ ?#Fj>l^wöihϜӇ'hצ}}v c>=ivjEؕA0dEkW D%;_ pZ"GtbQ_lF(6qdFՈ5)trg'v9aT/E7wz8_ȐAӬ.DxF%#Af5=?cK  l%km_4+2VeM]9b &W/{Cs<,bϴv41_`$^/V+VXmuY^{E9YO ѬTōE}\9޹,579>7z}:%iQB OJ>vl7^ڙU9t "!b=t;O'@m!`-q CZf/&pju[q})ԧ}i%;[bbl[ӽl=]Hoj d?D~3.OoղMp!:x֜+.yq,ˑ5p=1gyiս13 <,y㤪iLy&!\H}ҭCqm2áa&L*qG />a˜_OlF_56$ZT=} γ7{&^cF*ґ;]){3ՌaO4GmC +"p9-s 1e5]v`psn! &-!fpĩ4<KACp]m?WNx3S)v XnW!0Rb!xNGJn_`w -X\y.`͢7:?j zj.Kkl sO.1dӛvyub8.`ȃ&#;[Wʏf+F@\&ӜmHf0h_ׁhg7z}n 1BJ^7]fދP]π~i5$hu.nnT*l'!!O\Y-D++RL4F0Ӝ@HBJktc>cz+>TEtcWWT,ƍiǏnTX^5e?5X-Æ>?RE}ƚ g'74WV{bTFq+kۯTcʚhȯQwV[.9k8EuiIkVIjǞ,Z`*6ť5!lʺҥ5!tkMwZ ͛]E;tmvN[CVxi|,Szbm;HD;7Z DY넽5ߑմGK}h5 dǧ-5ZH8Bn Ca/T6Yl,D.|:M7'i{]#|rMUt{jWDnۑP nOzsp7t>)8z̉\K}@ l'jZ%{ȦoȝYN79FO9hF'#f-Y7(-(T3|cK4b{Gq+@b•4VI_Wոv+ϒz4s,lM\ȑ&c( '˘'%&c('ǧ-Z1b+#oP`T%Ӳ`oK|U eG<" 9ebnΝvWyqKMQǩ!]&0ح?&T J=ư ZCI Mr8ISY%C蚞 dyB[EPLHt'DGCɟ8&HY7o0隍3da{Ga|׶0(tAI֝x~#oztGMRuif)agH b 4:OO>׷w l g%^CHT~I@~ 6`15 LGlqC, 9_leO;jQ=@6y^``y̕A1CSS8B; l(Ɲd:Itb { ?ez:W@ϑu>4ܕiwF\XMwQF`C4UcF-\;OcQ뮘X OGjXBԨPyg5ޮ-Ӧt-SG x_w=dΙfYs\+x%ՔW~ O$]kͻ.LST~ k9?27GfţCUP\^ i}x`rV,B \  $lso+c``+Sܼ XXhOp>V_.58X”3 t,96ڃ>]Զ~Ρkȴ \D#CΎ+`8Vff$_#tȟ0Ͷ.K(,ez?-F!TF(HC nՊHT%gm=a>Ɨ6!?|FPER Eo'u剗F5<2h]si"b`?q?,;ɢħj^{'zK~xQD~xV#|jc))#t7kYRu.e1paeb7@ޞ`uR-D{[r}t߈}QN~?u%v14-u\vgjWE& a3/-6r3z)L:ѦcDe!E"w?8{UF3J}[QHTQD?).r WD8g8Mh`sIpC~bI^:Rea`T_,w8MJTr}˯T[ۢRe˳G&4"z) ?t𩏸& F*m.Heh,q{ЦU"(B 0wsTk [K tY ?/6F:tMb-h"Na+R>Α%tnٳ V 8V|޹B8ܱT{P}dHFDXH:ID )?+$qf08}[JĘ|r@AO u$M4¸0[A :ӧ/. op| i}ۤ$bR/Hcdf2{ JEg9z;Ty_P, H_Xj6"d$!Ĕʯ}K~FejWD*k@Od$9'ECR}qGZ--S Tp*:R} "ǁ8#Hff@%S^?SIţdd5R+*]7n d\ZQ `<Q^EqNbAj!Y rfZTx+4RhaQDT0"'Zu׭%ؚҘ<dI@RrK =BGH*؁5/QgJc( "RV] $=X<˩;WᢙT(%MzEld5#{jf#F6 92Mk"c7}خq1‘!UKY-PӍ3֯* n f޴+{"'pTюC@eĹTfsCR-d2W$Z\XT$4voqc':pSF1坊@tG[ UdW|q%=̚K6w"lpwnj3c}y*a",PY Ռ-P9aH6f52hi+f)>;l{. +)I%?Kh;"y(ڒ-&KTrߕGʰm sĕaм@(>ftE*` ? ƛ?v&ԈfzdH I5NzifoB\w0貋r@1q=d c-?0"%u<5#wMd aL*==rbRe-r9?#;=a{D*t+%`"oЯfz 2R7G f{:5zc`|SA~ y1LMmW<&UFh8tIet=o|pZ}QfACŤ CvF@iu$cW|{ sF-5x˘>ȅ[~$Eͷ* 4`bR1c Q8Դ0L;R=$ƂȢO4Irƃtס@͏>i+Ϧ;bDr2Ietׅ2;U_fWΤ(ܴ%d_ %k02[} #bv r @I틇ϣ?[\3Seh ^!jμ">$!wD>>v5IFgIGL]8Gگx~dԝH_ءu2[B6^+?lcrI5\:GCi]Wbl5^t:[Hc">ݻ~bACUbq؟䥫P ;Xߢ-h+FpPCichȨ]shBn76@߄@=5+S2qzA:}^k }YVMd; Us ad/H L<ؑkH .#! 8L夶_dݡ́ZՊWIǞXKl':DU}e .FRp9Qm*fU |ꅮZx1|a,G22:[ɮwQxQ>~Pd śؿuiRҕtbt \%]֒ߕ'>/ UrZ|\W9WVPj܏5{=S]){];ty1uwGGM6o$5xY;՟t 7&`G.N{O%Oh>ZַXυe{SmTk/Ew .j2f8?6Gh/,H ig+m^BQ,i=Cyk k eKAv+Kjí8 8@l3S7;_OH,u 3~5ȜFDŽj;\bUunMݗ7"U᳉n@O8f{~ YF­TcD7JyүIӼ^QCx_O]'l0~=D`AV)Ap'҇,''Ń~݆QPtXD|}{\EE}(2&wC[h9QV}8]2T>V(BJjE(>ztF!?>w,B_~A'L'EF ˣ{c@)F`1x 3#("IhC ޫO~}ExGu?62 ƀJMݱBsRCQFib^cNM!rq$r9DCzK$³'cWs4ɷ% 6c/vaЧ\2v',7\LQi’>+ya9je,8fj-:zVb%f4B!ԍbE+ߤF4sAY:B "qH"4OG>U#ZEcy+-ڮhE-y0sY_>q6m2XűdH>ĂL .'¾Qp^N㼞Ӏ5:/H@T#Cg't7 @X>H0y<H= ͠VDTqb\\|V4!fɡ'BCdFwfhvs7uXe;֓!LJ~-<,%35 bTZc@Xz`sY;pmt1j'h3"t&eG(s'z5@/i An4;,Iۤc]š?÷N0 #"R10-Qjm Z3cu: )@;ruww 6*8$2n-; riMM;'ҳ?`GwI^8bnlt*R+l7+p"sV;T&u$dL*4_D#@7鿦 `#iNC?z#2?XM=JCx%QS5WVzC*ͺJjjSy u(T%[ "Θf4Os3Spu" O3- z4j^79llk K̖w5Z,Dobbƅ3͟+wF}38s Zpt M+QO&ΫTP:2bM.w{6DFIc(ع(s8`($g kPn\>JPa1=Xbb:8mp M$pciYf1g&}tc&h߰1aA9/.{hV, GhfOefȥ*`4>(M0q Wl|aȖnTWzA?{5>NIiWMvsPhfGheNL#g3ܐ$xu/eaG˨cHu/(`{NAdHKi+1uCtkdžO P[=EgqaSqDu$|ו$qz20〱Pt4#b#`.J@?Ii;UWpӥ'bORIo'oZ/IKq5 ]vڷgg`gռ4Ci'!xBE5sq79% /mV>O{٤Xh!95XE&!M;[KGCCunHn6U՗l4Y&zlXDDGJ.bO8VG8╫uEW OE^lUz_73xl/[M5gD+q^4~nv1fZ}|kXFG߫!ӣRUYGuBP]R' o|΄)ِT@nD΀z=л[eB-Կ6OH"__6یڑ99S,o*BSpy;jtuUhwMCUpES51;<3nz..UQU! [ B!%U -s$ظrԗ 0/;1t^Ir=0#*` ytp|c뱺=Juy C6_! 08 M-qgk WoZ}"MU⣋G ƻV佨xg.4.~4_`[@RN @4Vg$z0=pFW@MgD[u[6/d!'Eא\^5<\.kϢ߆LSҸVN\N$Q2]iJ4'y_X'zQ?QN$N.\#Q+@'4GuiÞH wЃ]'g]i MqrRmH \9o )k;iAaWc X~ЉSp#qQ2bc!0ytnV^F8B-ϱ 4:kSG.<&q*1*ޘ'I&se:\saú4$D'Z0--͆CHt}dCTXIl9& ]ZD-I.DWyOj:&1\K,M{*rYݠ?P爋p Oܿ!!Ե uVot3⅝Iu~T:DI  1OpxR8!Z,Bg s.!*5pΜEBCIks\RbGHbIuX: 2M#!wIM^4mX 2bX~.+#4;mIx8.Tk̽_s8.aq(/d_\nM"<S.{Z.N&ث3MRlYvPbC(8=-*#cWD⻌@ M6$ӵ;EfdBlw%zN1즼1Kcը`?2F3Ȱ= 6(Ŗtf^M@<j p&d3ݡ_@hՃkJ@vHؼuƌc0mY[jN@nb9ڇ:H}lB梕BFMk:%+|# U\$!>-4BB, f]8i[܏kב-}2H.fn?iBM"ergu +DLTGIup<9LlrՒxB截?iɈV|љw L2%/݃'(^/WjBv$ͣ^FWf>FmVu5Xx[cR.'oaF欝E7c\c7 ^=FچR;M56a5I Jtn[maLo1Q5W;6n4| 6W vf HBSZԝy:禀Y0ϻhhq,2uѦl,r#yRi ͢\G;|+Ml[W\ 92S +eh;9ƅfˆ!`jHdx A_=ii<~4"ɴO$ꎼ~dk[A@#m*9g܌ %%Y'| mRA 9n,PR>W|Ԓށ(ő~/v}MC%KO_OPFG?׷U#}܏,>7LPtu|Я h}5}b-FzTZv"q:Bod}镫'R" 9Hc ޛsj#ӑH#AE:⇩jo@p`)E,\>nӪ'FS u$Ng6 >T?^?O&fًLH{"t%ђ^ OgOē>=c >l\#G,cF`.;"rK8O9?ѭ1@Mr (3?m@h&Us83.=f@fQs⨫Q׌`7,tZfḚdANǑ8*H hFʜ)-|իHL'a oG^=˳Ӈ1ClͲ'_#_ %yޝ#tOso?&ӯyS%;T'"n)U\sFїzYR [G ʎ @,?2d3tF]GdBlotpd,7le zXji(nsh3ϱUc:$0)q>b86f6L'4o%2yFȵ"_"ueL9+һRz׉Vg":DS.We:FD2ٚDz@݇4RR3uՙh8:Q'r:tazv7T' >cQbu"FI'Z!Dkx.fHkxX<׉N$u *Dчd=NXYճN/N/u"d)YNŝ#5ˬe,Zsq=Rmfa:[wSVc:J@^P>+S` iU[KI[o%nm5wMy'<& x"gں{]H,n.I&: IRfqJN]h9Z/M Q[s݂nxjU.=^!kS :|>v\,jp{-" h(v!E3&?lCBhߚ 4k$>"2#ڮ^͂<"b̐BT"ju$&sAqXKlRbDOVz }1:D˴Сiwmnx7TNƲ>Fۙh_ZX[2=WDS4Gh#Dl2f2*k8w5K;ǒ6^Ti69pXCi$u4afO".jÆo#OFn׊if>ƸM1ز}. K\}af!RG̲K#ZC%v[ǽ7bd,eٲbb.EFUp>2=BFRSR0;!ui9|7_S_֋ǍEjY>2d[\ܹS+U佚Xnž>ØΖoZ!SPo4!3VCBn%Zg;A \hF޸ ;PQ7Iu  -u*$-}b[eжp_ĺI84:\3:=X';#ubZiY[x5b2ƙ*˾]];u7IE:1u6vbB\w/k5P, endstream endobj 1973 0 obj << /Filter /FlateDecode /Length 1633 >> stream xڽYn6+f/ 00/ͮwAV-M"s(KI`CI} M￿~t}[=uG.4M(Vb .&o=>u_>Xz=~^Hg9I& $\e{g"HvĻ~l^vaQ0#bOw< pOA;0p7eFZ:^=~/OQw۴.]r.Ӿ|ţ?q}O$rA#?0!zc\-geӘC0U!ܟ:૩͑0!fߴŵ)>5R.1y1֟E$8+9SnDY WsoBaHK9Rk䁙 ZH Ht@3o2Eϑ#[d"\BcUi _8"R 4$S8P.!]̹0 (A}[l8mRB6hs}uhyKMd 1so8$4U:l& 04 8덫Ր$AmrySQn(dCzMzMWt:&sɂ'uZ2pU9LȻ[LC%g Ycr43k,zS"' Z@p;_ j$T z?2N)q&ɛԕxv?+8vh;nb r.Xvtqm3 zX! G8a[7|y7^j endstream endobj 1977 0 obj << /Filter /FlateDecode /Length 1739 >> stream xZn7)ffC 0A{k[SdK%/#36prw??gF~t7=}iM!X]n*n5޹DXhgpLD¼8K ]fK2.PCoy|]1GwI%wWc{\l o,~9_v?|˪Mz xm:G"RJ dW>W^G7/BP8%>C=S%h,GB%d˭K۽Ud~l8` z2zc9:B:r|H-zUzcer_ bA[U{|uENp*!@C"tE~)~]0$CZ5>)Ȉamm;FIȐs9d峐lU4s]4b#YȄu%۠Wi^b"8sn/n0Wʊ~ѐriZ,QC_ٝjA{AKq_/>!Z_= a48){!cL%VcqEO"N0;{hv(szB$?Օ1AXո$IOX}B "p rv6U&TDW!rtՍyV+Lpc%tхj82'fVuptMJ+U [9[9ũt %FB%A(&ٽ Vv/MOBP%|kr4sH)!l7#sI<-LIYM%.nf{uz_C}r{xEp92QskQá[4bƎɛ8T̈nfdV{:03> stream x][s~?b%)pGcT؎sǎ8+ѵ!%3CqH0F F*Sh ʹOTY(Ugh*9rʁݸT夿gM me-o+Ca uK0x!%V_9c[H ճ?P\b/V.Dr 1T5k3rE4+f]o\A)d*%p܌"/g_(ERC(?qU^,X̉V9)Nٍ҂D\+ n$%| LF%Y!2JIKlOVZR\P*W)H$Z"^TȫD@ ! 29m o( 㵳 HYo)uJT{L@y4^9&h1S+M 6,,G5Rd-3Ei8pTA~9u`un!HfMpFuѰ%!`-zŶ!(@i3? 4(r4 EDWS"5 V͍$9\VH?9i&ӴJ-QmD_ՄH*b,FV=a31,W:7Ee(-fB#1*ʬ F%B ..̱(ˊg5x*f&EF\DѨx\$((  {bEHHV,)I:g +\QJ eF~(DV45lt*B!i\~C8ő1.|) CIJQRBՅBQ ]،iPKg\h(a1w(gTuJaJ*P: ŢC! pЃl_E.. (űn$JR,GHy6S) U?-rB, -ZS"AC)귨7Tր\~MZXգTrư:,%E[q4#;kxv:o3:BP<x 9OE"\+$eub3\(*wU ӇDЃ,$A[$E1Vl,=O6=UD7{[?Y?]MO_ۧϞά{p~їM~x?8>P}s~|69|jK?Ǐ'SԀsw>y8|wqqr~A?ssXb_o qSC;wΡgGgVOCgoGgsI=dFogǨ8v,c: ROG?pjml٠wGIaC64z 3YGKEy3i;8;;9ιjl07ۧg%|7Sh| 5(Mx.,33C&-lG}حtQ.lF?=O=Ĥڃ"5'gmʞk}uz65u+6it:dtr-'Ɉ]LB95=f6Sk+답7[k:)AԯQ ӥj_=+NFPsBiĞ'jOd?]`2tbr-EӧFC" $ԍ»`0[Um~  z..\Ls15z.A茲 =\^= $Kv}U=KCϥx mzMj#X,uiw<=`]x2 ܖe>>fY%oYe$㣕e≖VZ|oOKޅ/=y=.P*3L<3a7[jx(v5BnΈb(ΑrJ 7 152}3b<;9>Wџ'7XKda<;U{ k4̋&ˢ?ão::>=tDГ5=zNԛ?H=8kjK2/%LvJD:d>Më|woSm^>d=7߭ ol`|޾h݅ڰٙdޅ96\٦I дLrf~ =30=_m/cP-vAk:6'L!SG'h5g 7sUvp ,rאvY灙4wnMWAگoaU¦;4EY*`K߻9Ӏ{;0fp ̤P3-#1M 0^bm@@K[{U0 IS{e?.({HH]$ o*ixNT4,LWPWuUJX?ew( Wȥ}7_K&S/>m1=TW>AQ*Wu(ʃPM.MckA( tgaZN>=F#rΥшeA9 ͐⛋mgfxΡ+ǔ]tI=tet%/5K+@Wimcw].\{ma{.lvI2MmRI|H[mh{O!dch>M!Nںh&ޓ)<4[dU[CdՠB mVkkR5d6!Tuv^l;>G߇'OǮb*OCF}F4ڌbi0%>'(UȘ&I݉8^ND.}*!겥fɟ!^Jb DWDS+C+ޡnu7@GG{K/V|fq V}*bQSJ=K]f0? =76۸$G)ε-k:^q1O2 vNFsXXZV;$09#;O;4}wdZȋ.ZF;!FiI~!9/u[ã%Yv2ܣϓ& FaD4Ǘ$mOHAcݨ'̹]Mz!Q^xuhѻ'= )5&a-\l(|Y-Tn2uuIq™SszZ}d* bTt3&uώg+@ڱ5}Le!5>Rqw>8̇Ğ3͠÷[}D.c ;oz_îvJuOO))>~:ͻmD!x06. }%Җ=$b_\ăDR5,$yGdؒ:%2ϿNwߣIcRo hm,"=SL;SE4ǵ_]NRAΚ ]Őڜ;RsG bґ.ƾaY V2 \}_/UUz J_oWV-&pOoV1-` +Af,EUלgY;t/6)p[g<.Ь*,`GK*[4FRśkr+UOI#X |7dyIPi|'7|oxO*lvm;kT{%觽U6P: UBBOnW]-NF_?M\ߟL+ud{K_n|^\efu.\^+1oC|r=Tbن\~*iWiO_AZcK%;FFjg*,+𒼟&p]-[`C[M?R@*`p}%'*= >" Ru Ej(9Oa#@,ijJc*6<_R7+gdz"Eߥb6`9~.BA >wF!e endstream endobj 1982 0 obj << /Filter /FlateDecode /Length 3188 >> stream x\ˎ WF) H  .9*InVꋋA%?( 7w5"֦)p;ku5ŪY:4U8j䣐-'kq_-/?nڋ&q; E%E H"8x 49s CpmA?#6u/n|l0?^,&C·1Lo-L#w8U(qDr-NLz`7l V `){̈~IFUhT>L=u߆M -$ɯXn|و8͔tc{UȠEF.5f?*b@1kCIaxZ~SР2[PZ5}럔.0 ᑷ?O!RDxwB_/nVDҸ.BVT k.MzP>qw(oS\ɁώÛ'$9TNI&l.UZXnvI--kͨ/9XGsR ^@YR6}J&`Oe@ywFCҫbkdmapɝfKA VSA/ZA=({78n12{ACg7nh&!8Ҩ~-rzEtfwh%I Pq 5k5jZATXuC%c]N-쬸VMko)& U),KKY,ϚhqCxრgH}̩Ni r.qµFF!"tg!)қh;܈+p,.w3idT(iI%nGc<4;[ȱO7ZN9pjnmř]NMquW8Av`-7f+zy]|¡`ܚs {ᒮ⮴17ߌ4Dٛ ΎD`uȁߤ6fv,8)eMdkYKyb$*7۠xXS'$Ghh=4cFEqAӡ1u{6I S>< :맧Bkm]bW^vh$sٯG*Z]FC'KWH]kWg nO-9?G 5\hSy&6uQ=gKRtѦHxvS/f$TG??KGG`qzfB=2EUCTzdZnr=Qnj/_ծ p{h`unqswlnn"vn+%b?f$uB'#ap,3OJۚ:W2 "o8(* 峹s-VY8xh>^N ЫᓴuS8k sHcao->{3q=o59'9ݗ h09EGu;騰_x2q%aM$!O@g=: &d݉hz8 <ˢBD\ߴIձc]ǖ#I2hIB'[fF,ZnťK4nRrs2t^W(p϶AG?ϰNpvB~C GN40JNp-?h.ruȠ %C96K< yHhz(Gm%OmCU:iIhMۄY[_f Sؠ o@`6AK3FkJKpӎ@FaVS ZRXWG~AS`; =BxoZ endstream endobj 1983 0 obj << /BBox [ 0 0 526.394626717 321.658176978 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍK @ slI/ .h-bK tԊ  `z}n(,XbޢQ h;T;eUP{!( M\_+"*jF85pM=k .Q0+j~7:L^$d)Ai<BKd endstream endobj 1987 0 obj << /Length 341 /Subtype /CIDFontType0C >> stream ARWVYX+LMSans10-RegularS  "8  &    E $ % $)1H2.004LMSans10LMSans10-RegularNormalAdobeIdentityARWVYX+LMSans10-Regular1wp<wPN8[QQuPW To Ę  ! &  endstream endobj 1988 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}R]k0}ﯸ{(ؾva{4%{ɹftH%WXFQV۴kI!2dZ/$MPdcԀcAC` b /~xo$u@#M*X։ ƒ*9  !U,mmg\0{u>f8~hinY5d;֪ZW 9L7G El΄KKnmN13 G9MgJuRToЄJ"7f9(]ttbAd/f_u:.b0F)e7ξCe~ݼ㳻k endstream endobj 1994 0 obj << /Filter /FlateDecode /Length 7461 >> stream xڍz{mUyZ{~gw}N>ݧ{/4WoD^@Aà@ƊQf$VF1*FCq#h%Q5cԌ " [ӏJW_k:B8 9yõ׿yZ$NK ?6y:4þ3kﺝ& ru,x/toSdO5_W kg^ }s7|l'Y Ad_hsx~o}Sz ӷ[O]znK;pIӥh#D$Nu1]h! !8{CN;!lBq4<h^yB?!$S5$!ٯî~JHT0ABjS:؇mBLL IB7`02u'˄t!]*`M nJ&;2eN7;u=;^vfZi-eyV>ź_v]t9-s+M0J7.^nXSGvdIYt fbYa13\%"<;4--Υesj WVav=4K4|ѣK)/@y5C8pc{./rLMw\q!-èl](44ې5f8Mh=4&0Qi؎mg9>nE#S=b?W~̅22M/Oa4)gřp yoz\aп*LV4s_$<_V(.5]8?*G#ݷ}WHt0[mGGEpC!9hYJ^XIvd&øQp{"uD ? >Nb;c{;𕶺#|k?=B~?2Wј&,vWБ^$6OépFҐ0!M=]ێh4*l!l O lގ+؆F@ ⡩ vTDtiy:\Y-_b4[0xu%;f970Frv3)fTYBBDcm(XC|<`M-?F40`RDuέNش+TbVw40M hlX\N_GnFdˆmgxr' ^zW/fSO1,Ly&W4.Q,G4Zfci'uryceq\՘ZҀCcqm7tpG3jȖT@ej{ Z/#ۓzDqg"l'Ax,ӅZt[֐~ Z8NL: ^!v7'?AcyukkQ|L4CW*!ruF#PʫԮI!*) yyt-e5sF9B jv:>Hceq>aVH!iR`:L8}d]vk3V:1 z>=MCG+㡫ʽ?8&μ(j= \)fifdxfZoTtʻ]ǴĆm?:f%4# 炱3˙}k: "x\Zn= -ێn;F EDŽ͝בg^ 3~my&*Jn Xsl}$(Mĕ3.[zFiUEq]dmtwneREU-*uʉ?ی 2љix Et!4xmoy%A_&cR.r2,@* IL(V9K֏i3rh»Jknd Л~hl 8jO"5H1;v˕鈾ypsrq |fADŅn0Ri*oCfLâ5PPp9+G ݦ'^I(:x$ARUA`݊Q'@w)^u)jׂX}@3>RqMҭS*"_&In%QaNy)L:v !Ϯd{qƥx>ТvŚdv߷-gXeřj<c7T}öMppڙ{<=b"YN8Xqd6  ga~cܭ֙mr"7,<ﲐ9yű='}7Z:7+4raяVa ~S,g %sd2K9h{e7O!7U۪ihfkCBvh>&[fQM3큹OL!|g?̓OՑێ"ǎqƩ p༂QtEa &oǫ[NQi ,tTŚe')sbq"RfJxhY·zƙ\˕ a8e&x0fYS \'S}64dS FYDr6+ JM(DFE x,3c¢MpK>O)0G25V<ݯwZ9ͦ5㳢,-&.iyzld$rXr~q\U;!1[%1y jQTaUO2jޠF laG]|_$׵o#Rf*2;OîB0{jx!bu:ϽP,at? /T3GwJab65a_fNGqTʱ`υ&ܣgLFk^pBVab0,OKH&{5i3'CW=<]ESB59xYT:DطbF2bpglw8AM|bɆF(ۜtbjs.M~]+{ [H-O+K' 4G;Nwsp jL䄒5ϯIY|I}7x`(msE:Fi '1m%.=a[^7v,G +s#v JG j"$ AD;R-SUy_U@iRs#?6Os\Of^IA>݌/ = 3-C $`,--}"AH`O*]cSx8nTk}P;qM*aA+g+f{lMfz:i%Pԙ =pqD/~F>SV\Z{ ?m5;(JQDQ^*uSZnܩwR#a[CeJlmHTVÍT0_6iZխiw9fJ{gɑq1:J}웱.\]\ {@@*͹޼#Ku5'U{Q 5'hrcQItt1JV,K]1qT>ZZP.g!\BV$qtatRQjWt+R^F/U{sSH&tnrR)GuҶY[HtCVh88AnUR!ULݘKcXry}3Ӱ4YLj!f;i F||5k8d!f!UPWДB&8uב7(M1Y, )dr.GRu[Rz.^{k7A?Y;ix,5f:'X6 \P^5\jɶڷ0 e>`w$I ݮ53btQA^sf3Z52<0`?9Q'+J8TH;XWW \햕 \]fĝEͮz`pB]ᶺȖ8n_zvD ;Mr8ƙpym$.3e *J89kZBXI0p)dW5e[S4HĵUzT]ڻCۓRL{ˍ?©Γ:j^M40;]dϮ?T!3Gz]Ƀm:NjA7!sPlO7f;i5xiv{-pl{jR_!G52L+CYgKVON$O CL55y£bc ^= z%veP3\Y),n/O͖ bqP.ZAQ{1 (c-R8-;-IVdшޗ,+av1l]IdsV hXcnH>Y=1 AaYTLI |AH-]`.NlA-2`.Lw*S-~uBEwJdOkcvJ3(,_ lh-qu<(PJj w. NeGIk> t8.  (뼓Ms'O<Ap MbGJr'5WjV=g*JzoQE _Ka[o{XkTViK> ņW/:8)Vi@f wDW|?u(M+rӀ5`WaЭ(`M l- (M)>ؚRV2O7l*MIxa6MF/@!(d7Ùzϗs#|8Œͦ)fW\HkI&O 'ޥ;ZZnޚTEzЁu:&`[3ܑkTql]JCz5  ci2.sЦ|;HaSZ314oG f@GwP1&O6gf%` Ftkn9 *a|@?av2@%!M?q|7]FV6iU~b}~]k+=xK]׬䃰oym|g \8߻{d-9><>|) DV9:AGP7n52v[~T0Fex:P7tՖ, Hp1* w!mmmy6yg QDkBvP?TY.=x[PӇ'Q'q u՟DP iN)}KvVBJ{VvLOxJy9rO-_2KOb)O'gFXB>d9fx1}Ϊery0 7]v onK#a]I>^iE)@L̪;F*꡸>rh5iG42BK|j!ԝ(Hl֚bh2"ePo%하Rհ*bghyۡ4?z%EίJT/B1Z߻oB& HڦMmW p-(y浔p\¥c_Y9iTH,7f=mI < {I#r<5 S䂸G׳bH]wb<ωS&yy*, 6?v.lS*[} ?؉C8kF!p P:dK?X֓kFT=Mbn;.z\dELޤq húWLÌ!iR[4vJP=qCC e~ty]QV?5DC!hu4MhmE4f?ܪ&wގގy|x.>^;|?2l~g|)4{X":@!cwq`a4gϛ+b9@O/c=[?Yy|.jܧ_p~ e1Wq>5 {/Nxu|{)Rm_GH]#_G\/?e endstream endobj 1995 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 1997 0 obj << /Filter /FlateDecode /Length 679 >> stream xmTMo0+J|8Bʧa۪tWİ AI8 _όJ$$gwVӸj?T=rnؕf~_&wwY[^L5V'ֵ >]f˦,yٔceFmRbusva~M/?zʁQ;˹Ufv]14]_s7UD?9!l6JM95MUu91fV~0ei"c9[j?t'f]eٲ+:;gۥ2zo ee;t-p3V?Kӭ?ՙCsSYwhU{Q@$-XR)XDY+- @瘡Ea4)HŰ 'Bܼ ЎNT0='8I5!I}BbMәp}Oی r!Mp5)N  &$tA(>@rr2}B#Ҕ.y. ;" \ %)_-ߗ޳ucnݘuhNz- o] endstream endobj 2000 0 obj << /BBox [ 0 0 637.608966376 358.655043587 ] /Filter /FlateDecode /FormType 1 /Length 644 /Resources 1999 0 R /Subtype /Form /Type /XObject >> stream xMo0 Ma@& -a-kuue·Dd!C[+/5~/+s'1]sNLj.D4d\J~?NxԉlBhɼ%)f^,Jp*iVXm!b!! {}'d m!3<lyǔ'f2Ѳ-($x#ra)uzxN]C.|?lFJXR$s(6oek:iJl XjK1vx`)k[o)یt;Q˻C_wae2rDI6At6` .'G~6O"oQ#`\ 5Wy Y:gpϰ\+j8.rxr{!#h9rgUCn8kz%ʡ )̺ Ȭaˉ2vUcju8mfsd֏0;4hST({ٗ,5:^&vo&el~y1* endstream endobj 2001 0 obj << /Filter /FlateDecode /Length 2871 >> stream x\ˎW.*Al_  A{HQmҏ-2:E'soXI)иPLŰ=&(R:aY͙m_gY +uK:|xq%yF)6 录+69!Y[ !!K$s>bEBp`4HdN֪"E!Rf6wj-˚tof!jQuo-dkWl Xn.qBI5r"'ƚ>HxR va7dpNaξc$2Fd+ DP*y([g$glʰoPxKiQf?t^V· jWk:Q ԓ^u-Vߔkrh\Xmx6d56HKm0^3#}ߚMVz^r^ m~ eá7tYh?P6FPGhv35u2Q&=xTdoD"m6T}2MϽC) [a(Og6PAJ%/@'HN68baӳ A89+S.@JIVp9f2tF4-qXkU roU/j[LO'Pxe[R2 +WAVO,o5.)fmb!t<&.*&L4>퇆8F̧*PUFwz3u<Ռl]~cZva#T) ;tGdk$7cG[}m.TVj-u\R&mZ:[Z[~3Y`kSaNY?:O '; xaXTu(hv4vzl^ּ;KVEH9rzw&&"#:8M+@u܂y,{EdžJh;Lgb;Mʅqia,&Kn9fs8?<`.VQU9D+NYn[9s\8R 7jNaUq[kiپ w4EtrPjG?*enh焆83O,َRui&ŻF|kC'…#b}A@$Jd7]bA'>-T?@ѽ#z Af ;tAen.G 0`c^G¿->ﰟ E|7-8xw]]a֕e+ aϙZWp %n$@dKScI*ECd6X8YakƄ+V*)gv*c xs QQsХuQKR/7_5YE>L`gkR wjNK!k4VCS#_W&r˳g>p2]I^æ84??[;v@XPw?DUmVt&h$ hp ![ʭnXpΚ> 8vc`^nSrbdnȣITq')W~P3aZwq@1kSlY/n{^i0cg7g^Ђ733b v:^:7rp}صP62KƖi/U`n1&T3N&4 . =hL52S4۽d(a&[lMq:h/o D1m'G֗oˠg/+!G:XVZ]sJ+ᮞ5 w54Oޞܟ~ǑE3扇GeQj- zvH5 ^R65z1wYyf)z}XvboCFt??# endstream endobj 2006 0 obj << /Filter /FlateDecode /Length 7490 >> stream xڍz lU9g~֫vuWsp˕ ""A22qQcH&"1 c8(0YY5IFT@@`et} fWujPB'&:!n_=+@hGЦT8V}s]״ÄP[nZbw8[=__$Dk2y=k?ѯ!dgw|qbYꜨKx%I\uo_xç6CIƩ vPOo>M)6G׷l }з[O]y{+;¼>uBb|@{#/\; x4<ǿv !~HH$!ILH=B ɯD{@G&BS! ldUOgz' G]z}+?乕&@m;:yTvJ%Vu3(Ze2cf1KdE{ygwiZ,[)K澩՛V1+1yhBWh-[G)MRzOف<Z;pH<];^䘚J\BZ&uQٺQii8!nkpZ-D3{iDMamӰr8᧱_Na-yiy ӦI2 FK0;F3*8,5swGq^j".՟RzB[>&5VQѴGojk~F 5ݮdXA9in8RG$.SL$F4_V`}}wl}ثcPzŽK~ |JkBiLxhkaH/L'pNҐֱ MهRQ ێh4.l!l^#!lކykgjla# ҆*"t{L]Yżw֫IWתuF]W[[ҝ<&u\vb٭RYZHDv5n w9"n{S=0=ic=@=f6,9ycg[]a_l{v]X< ,KQ2 qV18 <`Z,`48ӌHL99yV4X(lǵt8 /OemA E-baJAu{c &m~yGдɋyrr:r("~6rl+6v8Гy8]od?]oz-OCe{P~NsemEJ8ik/S,_߈Ƽ\Ww4U/?̌#c۾||;Qwg} ([[:EN.lSвm[|gaj05 =9[H;tniV05qmfKfICtpof[p؜MUy%F#g2дKԣVd}f2nlk[kKb[Jdw~'t[oYDf>f}/6CPRU~}yvgιlBfX9]I('&#j5Np&1viDjD^Gۃ? c10XER5pǸ0Ɖ3-B;yZErO;AK߫%n-߿Y8}LN`?!ZL3?|5ǜt`-nfyi?HOn? (j^ClPW :ɅJ{G9\~whdBip#nUSGk?&8(Z# \)eindEJFcX[fdԋj[u?ی 2Yixo mt!4x}oܝy%A_&c0)dy|bS o$x_`%GG|BƳ{Y}zIY\9Ye,(#*E SkwrA:#m;3\$ܬcƅ+r ƭ" "?>Z\wn!ܿ_wĪiɉ 5˲נU>m/@!E@I.^-nnwz^ro N<.k=CsLr8Τt/tZ4׮ؐ.Lv+K/LVGno0~ U߰*E: >:ܴw!O錙=y$%{Wܮ13OBbn;1ߜtk u3 |_2'@p=O<[\8Qc&4`2TN6-2<vrO#x&=@V"ȱvFY%Jp4qS^:*-L!>#w?9tPo>]Z7Id, مEݷo~~_V8o9Lrr7Gyr >Tz(rg(7 K\ek*%eN~&=v2-d e3`񗥥*h!;HOPb +{4Z|닡nqV+9ri 0\2}+@)_./3`ȥ>64dS FFr6+J-8DE x, 3c¢-pKq>O)0Ëdk8!x ut֙։ώ&Զӆ,yFmd$rXrqy\5;! [bz5o)@ZxBoҪƠZ?,C8[p.>QѯUBZZL7) PZ3Q M{\'aAuB!=uv<bBQ^4yy<,KF0O͓KITbTrU`1BB2dئRCBC-*Rar3J轡MW6}C[ji7 ^yh~;0p@`sa0}/3hu8*WfPd7,+ =2a!9y⟆@B 'gԀK fA1U.GF1C{ פ2sfvts:Z1>as&.H_SB"/V.1>υFŝYo/(/N=Jw<>wÝTH֐}<kp#8Cutnk]+}ƳI16Js[.\]\K{@@*͹޺#+ ۭjg\5HH#j.G$KpY] qtU>>2\C\6TXB-RP'aԮ^V:ڥ_( Ζ(L "tS,1m,=ptS4.;l&N:S²,meGLO+;K(2/> d8An)JS7@~" ֭\:n^x 4lMQV~05"l'fVްFK:,IJuj2QՄgX:R*V4^],0z݆ RlGȫҶIyC-< Y~Kez:ۧD"Ӟ4}Rx[jnX*c#] 5 ~ϟ 4<3J`NH= \P^5nɶڷ0 e>`o,I ݮ=3F.X',Q:Q397i310uކrKp Sq ~0-Ք۰MdN;̗VxϰZ5F}:J7 6݀|YHk#l NW4RL*ۼOڋѴ)D_0oР;47pԩ q ,zRs9z(سFc,!(g}3rjhZ j|ئ"ڥ` r.6@pZXqيSۛ+=(=#EiZST?;lTg CG=5C󍎀 cK4gl`kK5>"=e3izn;|/ȟUedl*RH~3Z|) |E;/pN#h#yjhb2'a)?~6plYzw{еܼ=^@!9F*  +-pGvܮyvRݲu%mMaX B6OFS?MxBɸAn -a{gvhƢҸҿ5E6cMA= c22p Ftgj8 ; c|@ߢa6N2D%\M8MWMZk<7{l\Wkdڲ/u >ۚ-!woLRB1O:EA;*'\'Ȳav8.'n7/ܝ ԈӱMƌnڒ$0)| Ο!U.#)yuMz^^tJ+ºx2]? UEeru/(+OP6z vȾ$J $>$q_7TB?GxSr? 0Ai[]ʎ~'y^vn/Vٙ'-y9KHsއ#' 3f/y-Sm\6h6͏fIR-Ջ| .`S$ӶIeZ"0:\^ ݂g^K u!\:UX#F4̂-7 );g(iF.ǰgaА\7,Xj;Rםs!k>E^G^ [pá*Ը~>>̅WߑL~ 5z8(\w2@,TI=d*V9=xn"v`.BoڸakDaM4Yp;=MP?"~qvE[d#X-DC"Sh5uЖ8=ѻjrGht|m>?7~]FuGѱ;玞>SZ83zTx}!c_f"DTN{OI~,9?kOWW}^3_E%\=g4 |מ2>O㧨^(^E R#="~}s?Xj endstream endobj 2007 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 2009 0 obj << /Filter /FlateDecode /Length 683 >> stream xmTj@+fX3(ćMB]98+%#~N?䬉 oyRwovo=bWv}gWWyWvm=U;wڎ:[嫶oyVNˤԾ7'Wk{U>X6s8}g߄wt흐E[gL  IڶiՈ76B*Q7x‚v.?>ݭmX.Q?xk7>*~aA=Oą$]G3#zv/ƺMeM_{,oRg";04m[3h/D!1!@A8h  "@LPzL 0SɜP}iXʡ$ 3K@%II3I}RcMq \r!3Ct? @Q.Ÿ!% !CdJB9qJNEsQ2Ft~T uz4E?sQ/*RM&"Ҁt* iH(F%V 5<8 _,9Ab_N L#   eZ!ҔFaNSdfĔT4+`Ms _.ߝM ӄnrTmr) endstream endobj 2012 0 obj << /BBox [ 0 0 637.608966376 358.655043587 ] /Filter /FlateDecode /FormType 1 /Length 645 /Resources 2011 0 R /Subtype /Form /Type /XObject >> stream xKo1p!5%TMU)>g}$MrN{jZ>3ҵKqy(cPJIhXKY/KIϻ]b)|ߐ[FJXR$>US/œֿ6G;<ȦVCcVkqڦRi;ܰ}v-prϞăoN=jXLdttMPA6#jr`:\OpJ-pck Np^w)BrGˉ"Q4qyf˿gq6pMѫ\>G0}ZN`'o^GyDhNK4#BDp:ɺS8."rxr{!#h9rgUv!7k;)ʡ )dv92Fr"*;﹇zl1dQwfϑY?lӠMQFGkLa6tl 86};4WEg(l endstream endobj 2017 0 obj << /Filter /FlateDecode /Length 2161 >> stream xZn)aUq~փ-o9%H.1%Ȣ܋ܿt'rB8B"ې$1YDxAV|n2-bq{b9l>xG/,4+d@+4:=?`+EXVg?<{>ᵑwݙ J {vwh4'e͹KGE@ Ѐ)葐4IS龼Q=H,v 7NB7=1jcNן3! .o&:=g* '/Y-/ gKܡj)۽ϛt=յ͛t]~:K;BgR#q0r[ZwXQ:T~&P¨x G/9Ŏe%եvO gqFJ]/h_mUJ힖ݏֵ}JžѤi›+!J"-`ϟ 6šxD{KcH| tgl m]`bV8htzRќktJuAu?u u U$qXPۻ +~@U7{񃼠t {2G*qX` )a@h7<_ZGjʍzt7Y.=;orW B"zlL&oK熭Hda N!Ւl֋!hJV~uazȃRH ƛt vB33Ɍ:Mg!:ɖ$ivShVn+ iiod'eN<ŧM:Ά0?H :ixj@|AǨ5t ;$|NƶEKAqIǘuޞ ppUmUuƯ&CXWQX`l/}W /_}bVeY>#NCXy>B /Ι0x"^>dPCynh4l<*Q_Ձ+ XmO5 rfDskVBǓcx$^5}M7: I j @:ftaҟH4]Px!*ǛgygO-Bm:ou,u{Vh endstream endobj 2026 0 obj << /Filter /FlateDecode /Length 1265 /Subtype /CIDFontType0C >> stream xuTkPWM(+᪳Rk Ql 1VQ EEE6Amъ.=~h,fа ;t;QT. G DVza]MS&?UǓm͎3kƮ B2B{Hm͍tiO[Qr]-)=m|%[s=`L.s!|B\gee}U 'WQ_ N0_iCq1S{Y>=ty&t5 s-N _Q5<2lP* $(gz_bb oU.tKsRZdr+=8@*f[<}#uAN  I=6nD'Z3cptrյ:6! wkm4px偧m\s ٌD/uz]s&/<+^2i83^N{W/je/`|&s;Lz^8gЛ[whL\Ɣo6l`W֘&3Xu 5(q.hP,MY2f^riTRM+bxhՆkߨi5wǺWA٥>$8 :h6oeBV}F]P"ze)NoaE`)i0,б^Ϻ%ɧӘڢ%}}%3<.'rLBK@dʼn 93VI21#a$cb{,8n> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}_k0w>tM#&6+=6)i /mu0]_s͹ijx#7 ,ЕӼh^e)@ѮO07'XBoJ}+W[y3:I>[->Vk=IU0oj,V*\X}Vh ׌1U܈EolJ%L6y AH^g61/(9%f%p#Qό@#z[MRG`EM?v6iq' [!åYS&h> stream xڍzylGy_ݪUwz陞?ޓ}@II YN0(!X#81:Jl#Q v HEq ZIHB1v,񜩾k߮~%LjNȉ_Jqh8A/c[U{&?pi7tqb?8ko5scM2nOY؇o݊; dqE} ߯NS>?u,d_h}x~==΍.}瞧׶B; 7 ?A9tjBBB%ĎоJs(N"DVBrCc +O.ء0˱<4G0Gihg1bFNe-$4M4J:vm/8+Բ6"snu¦]1xh6VwN?CEhZ`,s1 %vi/fzk[qɝ7o?fnLϚ,7qqW%d,Jz2|6+EM8k,]U\W{W !) h> ?GN۶}C w4掎lI{P6=!%D?Y@yb{RϜ(LW$Et.9mkTi{-P '&ZCHOgBur ucm=J<2/fJ%DhJ횤l2 +КG/`.C0șez^Pe˘+ vF nXK00)~#vۭឩPЉIl8R#+ 9݆C7 }4v+k FlC?J[n K 8iOS!1?Bf\7C˶m}38|Hn] CYĵ-%Mv˸{ ܀dn+1ҦH{q(MpzԌ uόTXf؉ tmum{XlKn1o'n⭿yAG;xʾuߺ-~x=V᷂?q9c \(L4K)-Bl<F`S!7K %/,3pG.$xg-8|tbuJUA'ɴ خ$O林:J+WM"ݚ}d9A4?  LVj1ho`H-7@s҆!7L[[Jqt0 o?90.DW2Bz6vXAu^'O!K #&sVFa>>=MCG+㡫ʽqM 04yQz)R^j͐xEI3zިԕwi Ӊ BAg2 ӌ@3, N.gfHJoa7lqbhC;Dl;xh,7jx,z<,lDر|б9㷀ږg2䖀5'MHO7rtv˃C(m(!Y0'izs{{L713zQvC]r6`ztJ[at,0]M;R٭6wgyEI h" EH^&CÔ;e85#9*gɡ8mNn-_^xgR)M]zӏ/3MGYIDA)fwu nr?!4snXn69LT4Ѝ]*yQŲ4d;,Z ]egݜñxHmjXыWE JBC$ ޶⬗ K_VwF, ݟD|R\w+B8A|+USc4+.+:5.oy)eOJHw{mu3t;<{RtqYB^$KB} Es5bo[xl3Րy[L|T7lmф7w@S#&re$sŮ[f&IXh<m%ntn{&7dY ̨/9xչ1 X ' ~H ;E{gMPoҎǒ0Ә=J,,DR4 ?<`SҊ]VsNiih,Km ? LΜo ғݚ] K/.^*t'3&ud/7PLϠf:z+t 7/JI/}3J!v*.53+=c3>Peñy4tK6t62Ek7Wso=W C1qCʵ4(Id !l LvppZdyg37{XQc''yvMzL" $%ƓCQՌ5l=.҉"Oؠ\8%8i+TAHucr[y"l {>W:bRUN JP$O#2{* J} ^&EZ/97cs47Yɕj4u(ˊuOLAX&4xNa,a3P ؿDU y iXìabHV;-Gf muYeuMzh`LF!RtWZaHAJeh<e#a Z H,WQ-YxY~Ce8{^'kD"^4}` ѲfVdžQ5k ~ן4<3cJ`NH`YITUkZ(/adS`t2P;nۚrGQP( HvmңЧ`7g_NV/4ٻvᯮVA'-+2A̈[m{r߅xTC;+lnac;PL/9L!;Dz@=A@EdUs6 ](707YU u۴Nd ع|i YE*i&cpzKy@`! Pa~@@6ȆitMZ3ΘŻ .*G"['ㄻAB|5'p꣧tbغlA,@ )#ԍj ib%CEl]ՔmL V5SujׇJ'¥xT@$eE[bΦ Z,gw#cz,7~"O{vT 4o`|vZs|vO S+/!@J!xrk 0C)1ƒf^OkiE/8^dՙWf;ܼ&)Mw@ 8%MCkcgSӕ*- 9AamJ8c^bިeu}&"9}5t_ZӘg)<*<Ѡaap0{=9B178F_@&bXnKVPE׉`q ɱWDOw[|$MD+EԎs 2hDBM`: &2mF06ڡ5JJSU/5E6cXMA= m2JAč@2o9Q;c UC? @ݕ$Jug-_dJ8ޏ~<.#+ZӪyn ?w>PڌJ]Rb+=dA99y[A2~<ߌ w,?GЛ':EA;*\'Ȳav'j8TLSjIX&j ucJI7Qm OpmHʏy YgiڸM'D"Y 'ÛB*"u-#/_|qIq_x;Pw'Q'q =4? t%?ӜR!ُAvVAJ{FvLF[ȕ3JtZHUKkfR$'g1sf,!Y3<Ϙ>ggղLp^iy)@LȪ;F*꡸*rh#5i42ӻCK|]j!ԝ(_Cnl֚bh2"ePo$͕-Rհ*bghwCGi~4K_j^(cwFB& HڦMmW p9-(yqJH8 ұ/ì4*aGg=mI < {I#r<5 S䂸Gd9RۑxX;̧%L*eX"lz[6qz>ȅ+P&Q=;5ҏc $3+|Oӿێ|֋]fWWiU-gVs]ȩHp s_>6j( 4oQǍyWdӘpNjS-5&ji Նe7ew%(jSaaZ 6vRn8)Izh!2@ 5[ᾷ~oѵ\6|;};a w}{o3< +ȣ>8i8iϔ U➷7p)?U*s_ {K8lydy[x_ 试}|mW.c.+͗q,{/T?~-M0o7}{?P7)> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 2036 0 obj << /Filter /FlateDecode /Length 697 >> stream xmTj@+@pcL@OEtHTKF~|>sFs=IݽٹċC_y}]]]uv|sUk;lfqU[}j;.R޴#_Uc=_7=6\ N_CӵwBz^mu;13CQRb%dJ(J2KÂP1~ iYZaQTc'5@%>23D9铠/ " uXRS>>!;dLI(B}iQmIS|_qg|Q/B}/xN L"  ɴByœhQ}yҹөhWrK3E2uJUH *}j_wMrKӾաݒ%{|Ӧwrg%9d@O?7z endstream endobj 2039 0 obj << /BBox [ 0 0 637.608966376 358.655043587 ] /Filter /FlateDecode /FormType 1 /Length 1045 /Resources 2038 0 R /Subtype /Form /Type /XObject >> stream xMs6hdwGә82ɡU'+ڇ (x0\`ϻa2꿊q%憣Uedj,Շ ސu9zci٠^cDѼ޽TXs*yabH;ւL.kZSXy=at|R3i`QU Ob 0 rHJaNE(M@Z+b6a\0~zsI:2fcz]ot\ƊtԺ"F'Xa4)vSׄa,O:EsD3R;בFZFEhG3jvFN{O_oyjƆ̿Tl%B/i=H,ՙhK7Fq4n^Q% )eHͦ!PEzΪy3+Sydg[ٓH @itJ+ȍEQD#ܩr5-?3w(uv}ea)>c2۔8mpb??~[ο>?|) ' rhԜYĮ&c{\Ջ,mSYXT{wm_?ޢ@ec|i"g?l2B ?#$q1kY ¡ ]ϐW!yuxvs:9b.t1}/[99ZxH_v@%@SNm}h~y9mf;޳nR{[YZJ2[궃,308ʤ f\0HU'l]̝+FߒsGR{Ժj *lA/>*m,mI=+IvɂG YMXJj.dD}砆lԲ:Is爌F?,5P!ma=rxwf%Tm1 endstream endobj 2044 0 obj << /Filter /FlateDecode /Length 2490 >> stream x[ɎW{9x $4g UdO,z,JwVWZ?=-ߟ~?䃵ᓵrpNï?*RRRB~;|Mpdr4Q ϟYaMaeVh;&᜿?Cߟ(dS>(t ?O;@0ueHLpP$ɸwg| 5NU 5dj\Dq(R.WTE͜G!1 ;jO[ Ti`0JS ?K! ,>hQ#cƳFD <ɗϲBx|-+ mdE9QZ՜Vk}IA1y&4`Mbk1Ji#g,J%yUee Tx m RG? _P0\00<o *o QF dU6JczH1Ӧd|o| [nvه AHnRH)`Za0&G{ |lq>z1y=J~c.k9gWcdx*pZyߩR()s>:_Z3m#rS~A2Pn(G:xBh9)є#8@&c /? EicW 6ӗ(YxGÒ/13gqFߌq+zC:xЁ8snKwL߼F[AP +x>gi$}: %;zȖc_۴2VOy:̥n#ajZˆVl7Xd&a{̭G##ZYtqCd}Lvϑ pa\ǩ} ' q\죩9fu\a ~M=%l D4!ӠZ8,9~(M(n)ᝒl ǰ/ m,ƻqceEŧP+Q!HVl;L _Ƙ.N-tPOX j@ޠC}xP/cy+7jhiU=<޴(a?#jCd-S]:`qRלOَiߪ$=,WyrF 9g([2SMKfJBF{G6:0 bnax^g_UJ|zLM `^YFnP/ oeht,!Iߛ}϶%gLک-/h||Z;,8 F0řّYb| yb{Ptko{LqCIt ^aU~D:STZInT#7A 3CpDo6yMJ*he5Oʨp5QL}!%Z(-IJu4f:ǧ}e}®p} 㺆:d҄s‡(uЁU{=E:\:ht,wL%sSuJ#:*\4uʵS!dX%N!s5W6qٽ2 pi]ʴnFk(5* Rڡ1ڮRz"}9cC<$EV=9yb2&R<itrOFOv|Dˉw|<سjG{i^nj11cep3[rzOڛwbͧ?> stream xڍ{ dGyf2{>ꮪ{9Z#^a !! $` ,/`m!d *YKBĚ ]$@B^=ꝙ6NJTBw3mL*r*{['{h7z(WO#~܁{ @}'MqB>慿(U7'ON \P|%'_'Ƿ>gݢrUkΦ/'O]ʻ.3ۮkNrQM&D_C3BwnFl4 X'ľq^vڟ⽛ B.GH}!i G>!z4'dJoaj2JH\tFBڸ1L9L_!o~fo%dE߄K›ў'd[x eIkоT5vY mvϏ<~X~=шyi8q Q/#\َ۽j``Q|z}|[l=Y֓4՝{FBJ/Sw+3bۙui)Em]/T_T5[>2H/р:MSS[3_HR|K&dywqT9`e(Ƅ;#4l30VX e/R431^>15%-l4R-UHY(},n\6:3&&Kt lz%dJ?#ַŶ8PtiwH~fGM膖8p ;j=}{l).:[&/0:`||A.!jًRNroGEVi C zY 7 #ރeNSF{o(Ҙҵ@`,͒Ǒ&i(Cf Nsj I!$]- nhVT~aX/v"߿ra=2K6mGp"e4ҝ hL-ױ0]|s$7i_j]EfTBKu['`sz8S 6#OvZ_9 /&P"`z0olT2廖iцt|]g;ݰ܆gHkި:m S,zlUS[7&:*\8i*\:Jh-2XXF݉A`6 TGN+8ʾ;P&&qgžDOԤ31 GSPV41(VКǢ锋wFyL^`aмNU-b+`4)"nPǁW11] ԡ=LaIzNXoKa7=7%?u@8xZhLS.$"^$}P$ e J:J! wlCCObwdk"9Z5*A-OTkit·mja߫zl':Z1SPSMY p$l :JHN(L0?*.Tԋ'/`!vcydYKuZRG;5&<6m?\GĜ\5=M?TDeul&3p^]~}xm\}K= \w3΄- bv (5iLwHEO-r|EU[_ڙ\Ö{}D֕/sԊ'a Hv*EWzM@:+MUIgN1A YYJو}[PE[FK0stT./c =@9%vd g y4+,o /ķvGT`1v҅gvYk| !'xv1'JLO8qܼ3i Dlh@Lx\,V( ?$?]B @XLrPt3^$mv;ok(MKuTsR NM*vը{Y#2 'Lf$xsܖqd:pU* RJ4/븮Ӆ^ϻÔG,'qd_yi%-MX@52D2! ,]Qm0+\HCj11S@Qu25i1jHQ8qVkif˪\'=bor("ȿ=a/]&E%zFG+,Tj ?_T*]Yf{UX't5\!Pݎ[&-G-KQ~FCг"B:k=hMcD5V4ZlflȆn!_!!|ܻzo!KxšVmcP$DvSW/ YEċ+Mk>0GɣGphnGҟÄL4foEų.3$f~%G6 CC \`fX%#88^b<6;U,Q,Vr+lZ6ZA+2FQSAhŧf$;Az9Uwyۜ{FWNu] yWua:S]5'3fVZwu2Uc5:usSiUaa +0/Wڎ}#9 Mb C/8gܤLY98F8R/L6x0Bͽ{۱a{^DP YҕϖٟYzG[aO g9rr:r"d۔q6øbdS}u2|8ޒA *Z9Oݡ642<0ja Z$kaXSm˽6ϐ!~WCe6MWSM>:-Eڣ_}l8 OI:~/W؞R+;30汄.$"1;njlu" ! @?A#l0[0i Z-pQ>Uڑ@gZfUR6O5LD Epsx1̲LE2ǫrn3fL"5ז"fxN{g .yńŸkg^fvk}! 6P52 C5l<g0@G4c+;ڊý/iC/8vSΘpgˑiď5fٺ@2p%)Lבol3 }\nhoýiAnn}*5+!¦-kfSzsj4ͶeZ, ڶi.ơ+|Sf:K迄Qw} @Uso}eLNTLg9wNLQ pl4Pb9O_#D^IF-tތO<$ߘ(dʱ=Qw٤T@5W߸];}DN`7!}Z[jA' Y\ I"[o%-nsȿ%V?\v}ϻ "ɋPhq܂ "y@(r+\_G$oMTSS[-Ē>Bxn'Hy96( ؔcFe-mieTC̄ӗqpp,a4^+ArW0McGg㆕uox1\T1te8ms)A1@N0%vq | l?PbfP37( fk|}'hR$;|â(L~m@}Up ΍7P xNjf*SYDn\dyO3lPqvՄv.nHUQ QBK&q xt<9斊aGj Gݢ71ӣ[b'Ĉ haP1<_==JB v6xB0Żh@Yu"Mij~T?'4.&l^)&yTV 2HgM5.}eM M`<QĿdzJ6)Thx@͟bgjY ^maA~$vU ݲ= Y{J"PUǻI QfUB3.q]T% LI8;܂D+65*3вJI ~ ܢq ޭ`Tqӝu &,c~C}F\6AN6矾1Ҙ]])nK-nWәQwI&l+{Ae>[_;W@2W} S;,8R"ݸgG_ HQnܴ{a=TB 1A{ضwg0pj7 A4#paB͓"v-E` E:QވKN&dSaeq-\ 7&(vL l,j{vVu24Yܿs&n'п<, LՓ_EϱcIKê,Uߜ4pYJ,$2U Iδ`ZUGd8Y/fRp-`leL^)6/ F D#B0fLK7euN)Nk,CŴ`2. Gt(CyU\ aI.qzȑ O|р،U ֘twIԩE 4Dsn^jLG(aO.d\Hdm?ςv*`ãz=3.d~۶'ZKaM&gY`F }Zе{g0peIEXLLx_/0HؒQ*'l[-kbeV>W'I.?(F\)RJ!G4Vb9J &4,RD{,XQkF}L9qEv8C.7N :xBTs_,ٚV#e]HŖbEy'l6(؝MǹȡbeI tmuE0YS<8RF>(W9u)itf3K;+ݷd|҃*Bd)Gգs@T#k,u6Wk 4pڮxTὰ-$EÅb[E3Et*Nf8SCdrn%vW,XFJ8UBulKf $䯐-bnAy28{g[UcsO:EPt])//~8KP6 Q}ȋB/M?ETaXf7 btPśc| O# ^V{ ?J'>J}$20 6x#`RC^ q pta,`=g+Ç[{[Hg([UoTNf*ku{⓫f9y`n2^f,P##/,XrhUޡU=Dn`U ِN)@nc6_ b q*[lzb'hy4=j;!EʯX|$!Z׹#LAxLNv Mqn4sMZ\isyC+TL~-m̫0+ ܂a '@)[c`/67@*8$M7IARVYC|>I^G\ T@F늶/XoAr5x;no/@Y=?3WB!<(BIa+]GQ?\<_Y>93]F=A-UujaXV ("dl s&V2DF9]QF=)! kE15eڔ<0e!ffeV;SMY|?i)^hkZJukW*7uYWԐ Mᷖ_U} 4&#Uht iUD8 =^7{$ȋH[SRk_^눗 ae==3V33!lM4 9@S=o 4jcbxMmiXDRbyt|# ==\\CRKï_0G$=g>^~|-?wlȓ) J=cx%Aykxjg],L|zǞF~<#;xx7}*8sx]Y/i4& endstream endobj 2051 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 2053 0 obj << /Filter /FlateDecode /Length 755 >> stream xmKkP~;BW^E.-3 ɵĸ=(e9xe=]ݻ{)^ݡ;f7MUǝk'jWÃxjqU wyVڍ^םRѴ#nܯUc=]7GL%5çfLȻ>M>u/κ@&3nDֶM[܍x&B(-ZЯjg"֧vvC!s1{?awb׮oq]oYO ) Rfg0U#u$ףNKG1XW~S~~\~r!ݹJl *$^^2H@Ǥ,xj 3#RRɰ$6"xF DKR),%rZR9zJgq(FlBےD|TO_}* 3˞-pܒUJJpJ*'|QZ|*fϜk+$ǕlZ'i|Z \QF>'?('+Ӓf/ULoS'X'/(c&>fz/{,Ԑ13giҔ_I]aΈ+_d4 |)K4WHiO%6;4uœX$OK䭦wKb866K3ErI]ۈi 8 e/x895Q3v_<࢜ endstream endobj 2056 0 obj << /BBox [ 0 0 637.608966376 358.655043587 ] /Filter /FlateDecode /FormType 1 /Length 1719 /Resources 2055 0 R /Subtype /Form /Type /XObject >> stream xnFNmAo ` ;9$2_$Eǜu!kd-Mn/ ~=L\ϸabxr+ &l&1 VVmB̜ )aVD>V:]&-0b*d<{D՜)nsIu ф08}DiC7ܞ_/)gǶԠ!RJ-W\r`+X*X-6ͪK 6*!Hg `[ʍYGpR,&Znw>Qm\ !*-$.G}06uY:7 ֑,s]i6D@ j-d/P.H hu\jC 1FdLa%[Z&IbVj#,Y *@c`ܔ[bR^aa>FvYaIF,rk/4NdCjo֮a)IxB!JTLri/eEQr=KSٯ"g$$IPZ".62_dCO#q;pfw`+>,JND,FV_=CE\ v0,Ђ̔c$ZUT@ akcJ -X+-eHk ńv[^! h\&ʹIvކ ..4ۤpV\MC,hN0ybhn/Xz,%wBBAŪ- v5"*&".3RX܏!ƪd1 @1+ u/CnچAWV ]"=ϳ(?h! y@B =@ ZpAP<̊Q,5!dm++؁JlIH!}F(_!ZlpK(Ǝ5Pfc$jg_qc}I}ź켞^DEۃ79]+?k!"fG|"u!ޥ4]jqn3WDdrJf Qo yl>O§K7zQ%ս@.~cn8s{Ña-}og6\N9^ϻ>szǧҫu`]rV/ F@3Q $a5\رLY9BC6 yzץˣorO l(׳Z~d~9ejuusAvvs؎룴iior?iGƛˋunD ]SRF'}>ǵbeB4;2o22ogd=e}1X^N5 ƃm=ת폪}gTrO` 5>T.m9$ގ'=!j7zlTdjTA4u ky'ZE,X endstream endobj 2061 0 obj << /Filter /FlateDecode /Length 1175 /Subtype /CIDFontType0C >> stream xu PTeݻ/{5& +$E %- ΅`aaFڠ`[`y(̂8C5;t1i7g}gߙ98&c8{:x`chXdl-ޛ"OMMY|~%KWxZ<K, K,)BHR0SwE+sQc2*5/l 1c)Gcv>pBSOjTa&$arsZ#E b 7"{b5qYTfxoӒ$^|6S$/MqL9ְzb;3mj6[)cMNV5c̪:-d(dɋzZR{zwZ=U_oc>)5|Nf/Zp lU~rCK7 zy\2[Ooe Cu('NBeӂZqۂK:8JOY ӊO .<,##/B E|BT,`ixӝp@ .(E:TDZ !;IffHAfk&@5D7sf =c; e Rnw]- 0UW 䰽!2c3~aqimpMuYT>َY䉤OO r r .ZeMohGD2% -T4MyQǿP[.я4r_j Æ'ơ4F\g^M|ʏtYQ嘝]{=2S]8/rzFzҧo_|@,ݰ_2PmmP? Ӆ_`rA`^51!;odlyb;RZPḏE;CW}6Gq$)mj9f_߷ۮm҅hX!읐}ק;Њ ^w+Ү7.,fq5}/DAp $Y\PXI.afU Wm61= endstream endobj 2062 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}]k0g^tMܐs +]6)i{!/_tB='yoi0arAKY+-+ZuzGdȚJ+LDʼna,z=g:+s(#,q_2SA^+@ߺUɥx_6l&Ly5[QՉ=\'2cYa/c^VhGB8W {\15i]4@~ wtYBStgu,}z4V2,PI 㙾(Eu[mwK1Ql: GKÁ:sk#Grds88?9;mjw>Z)=6Kx:A4en{?|f endstream endobj 2066 0 obj << /BBox [ 0 0 637.608966376 358.655043587 ] /Filter /FlateDecode /FormType 1 /Length 270 /Resources 2065 0 R /Subtype /Form /Type /XObject >> stream xڍJ@yy{DU(W=yvn0 !IGUu`^?_o/ys4${ DM R="RSQD.BG}Xi UaU>"0㈞ K-~1b X@:ٸSm^KgDb!kZrgFκ#uJo("yL9?]ys-:c$#RA"ǪAD.mA/@<T endstream endobj 2071 0 obj << /Filter /FlateDecode /Length 9018 >> stream xڍ{ dGyf2{>ꮪ{9Z#^a !! $` ,/`m!d *YKBĚ ]$@B^=ꝙ6NJTBw3mL*r*{['{h7z(WO#~܁{ @}'MqB>慿(U7'ON \P|%'_'Ƿ>gݢrUkΦ/'O]ʻ.3ۮkNrQM&D_C3BwnFl4 X'ľq^vڟ⽛ B.GH}!i G>!z4'dJoaj2JH\tFBڸ1L9L_!o~fo%dE߄K›ў'd[x eIkоT5vY mvϏ<~X~=шyi8q Q/#\َ۽j``Q|z}|[l=Y֓4՝{FBJ/Sw+3bۙui)Em]/T_T5[>2H/р:MSS[3_HR|K&dywqT9`e(Ƅ;#4l30VX e/R431^>15%-l4R-UHY(},n\6:3&&Kt lz%dJ?#ַŶ8PtiwH~fGM膖8p ;j=}{l).:[&/0:`||A.!jًRNroGEVi C zY 7 #ރeNSF{o(Ҙҵ@`,͒Ǒ&i(Cf Nsj I!$]- nhVT~aX/v"߿ra=2K6mGp"e4ҝ hL-ױ0]|s$7i_j]EfTBKu['`sz8S 6#OvZ_9 /&P"`z0olT2廖iцt|]g;ݰ܆gHkި:m S,zlUS[7&:*\8i*\:Jh-2XXF݉A`6 TGN+8ʾ;P&&qgžDOԤ31 GSPV41(VКǢ锋wFyL^`aмNU-b+`4)"nPǁW11] ԡ=LaIzNXoKa7=7%?u@8xZhLS.$"^$}P$ e J:J! wlCCObwdk"9Z5*A-OTkit·mja߫zl':Z1SPSMY p$l :JHN(L0?*.Tԋ'/`!vcydYKuZRG;5&<6m?\GĜ\5=M?TDeul&3p^]~}xm\}K= \w3΄- bv (5iLwHEO-r|EU[_ڙ\Ö{}D֕/sԊ'a Hv*EWzM@:+MUIgN1A YYJو}[PE[FK0stT./c =@9%vd g y4+,o /ķvGT`1v҅gvYk| !'xv1'JLO8qܼ3i Dlh@Lx\,V( ?$?]B @XLrPt3^$mv;ok(MKuTsR NM*vը{Y#2 'Lf$xsܖqd:pU* RJ4/븮Ӆ^ϻÔG,'qd_yi%-MX@52D2! ,]Qm0+\HCj11S@Qu25i1jHQ8qVkif˪\'=bor("ȿ=a/]&E%zFG+,Tj ?_T*]Yf{UX't5\!Pݎ[&-G-KQ~FCг"B:k=hMcD5V4ZlflȆn!_!!|ܻzo!KxšVmcP$DvSW/ YEċ+Mk>0GɣGphnGҟÄL4foEų.3$f~%G6 CC \`fX%#88^b<6;U,Q,Vr+lZ6ZA+2FQSAhŧf$;Az9Uwyۜ{FWNu] yWua:S]5'3fVZwu2Uc5:usSiUaa +0/Wڎ}#9 Mb C/8gܤLY98F8R/L6x0Bͽ{۱a{^DP YҕϖٟYzG[aO g9rr:r"d۔q6øbdS}u2|8ޒA *Z9Oݡ642<0ja Z$kaXSm˽6ϐ!~WCe6MWSM>:-Eڣ_}l8 OI:~/W؞R+;30汄.$"1;njlu" ! @?A#l0[0i Z-pQ>Uڑ@gZfUR6O5LD Epsx1̲LE2ǫrn3fL"5ז"fxN{g .yńŸkg^fvk}! 6P52 C5l<g0@G4c+;ڊý/iC/8vSΘpgˑiď5fٺ@2p%)Lבol3 }\nhoýiAnn}*5+!¦-kfSzsj4ͶeZ, ڶi.ơ+|Sf:K迄Qw} @Uso}eLNTLg9wNLQ pl4Pb9O_#D^IF-tތO<$ߘ(dʱ=Qw٤T@5W߸];}DN`7!}Z[jA' Y\ I"[o%-nsȿ%V?\v}ϻ "ɋPhq܂ "y@(r+\_G$oMTSS[-Ē>Bxn'Hy96( ؔcFe-mieTC̄ӗqpp,a4^+ArW0McGg㆕uox1\T1te8ms)A1@N0%vq | l?PbfP37( fk|}'hR$;|â(L~m@}Up ΍7P xNjf*SYDn\dyO3lPqvՄv.nHUQ QBK&q xt<9斊aGj Gݢ71ӣ[b'Ĉ haP1<_==JB v6xB0Żh@Yu"Mij~T?'4.&l^)&yTV 2HgM5.}eM M`<QĿdzJ6)Thx@͟bgjY ^maA~$vU ݲ= Y{J"PUǻI QfUB3.q]T% LI8;܂D+65*3вJI ~ ܢq ޭ`Tqӝu &,c~C}F\6AN6矾1Ҙ]])nK-nWәQwI&l+{Ae>[_;W@2W} S;,8R"ݸgG_ HQnܴ{a=TB 1A{ضwg0pj7 A4#paB͓"v-E` E:QވKN&dSaeq-\ 7&(vL l,j{vVu24Yܿs&n'п<, LՓ_EϱcIKê,Uߜ4pYJ,$2U Iδ`ZUGd8Y/fRp-`leL^)6/ F D#B0fLK7euN)Nk,CŴ`2. Gt(CyU\ aI.qzȑ O|р،U ֘twIԩE 4Dsn^jLG(aO.d\Hdm?ςv*`ãz=3.d~۶'ZKaM&gY`F }Zе{g0peIEXLLx_/0HؒQ*'l[-kbeV>W'I.?(F\)RJ!G4Vb9J &4,RD{,XQkF}L9qEv8C.7N :xBTs_,ٚV#e]HŖbEy'l6(؝MǹȡbeI tmuE0YS<8RF>(W9u)itf3K;+ݷd|҃*Bd)Gգs@T#k,u6Wk 4pڮxTὰ-$EÅb[E3Et*Nf8SCdrn%vW,XFJ8UBulKf $䯐-bnAy28{g[UcsO:EPt])//~8KP6 Q}ȋB/M?ETaXf7 btPśc| O# ^V{ ?J'>J}$20 6x#`RC^ q pta,`=g+Ç[{[Hg([UoTNf*ku{⓫f9y`n2^f,P##/,XrhUޡU=Dn`U ِN)@nc6_ b q*[lzb'hy4=j;!EʯX|$!Z׹#LAxLNv Mqn4sMZ\isyC+TL~-m̫0+ ܂a '@)[c`/67@*8$M7IARVYC|>I^G\ T@F늶/XoAr5x;no/@Y=?3WB!<(BIa+]GQ?\<_Y>93]F=A-UujaXV ("dl s&V2DF9]QF=)! kE15eڔ<0e!ffeV;SMY|?i)^hkZJukW*7uYWԐ Mᷖ_U} 4&#Uht iUD8 =^7{$ȋH[SRk_^눗 ae==3V33!lM4 9@S=o 4jcbxMmiXDRbyt|# ==\\CRKï_0G$=g>^~|-?wlȓ) J=cx%Aykxjg],L|zǞF~<#;xx7}*8sx]Y/i4& endstream endobj 2072 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 2074 0 obj << /Filter /FlateDecode /Length 755 >> stream xmKkP~;BW^E.-3 ɵĸ=(e9xe=]ݻ{)^ݡ;f7MUǝk'jWÃxjqU wyVڍ^םRѴ#nܯUc=]7GL%5çfLȻ>M>u/κ@&3nDֶM[܍x&B(-ZЯjg"֧vvC!s1{?awb׮oq]oYO ) Rfg0U#u$ףNKG1XW~S~~\~r!ݹJl *$^^2H@Ǥ,xj 3#RRɰ$6"xF DKR),%rZR9zJgq(FlBےD|TO_}* 3˞-pܒUJJpJ*'|QZ|*fϜk+$ǕlZ'i|Z \QF>'?('+Ӓf/ULoS'X'/(c&>fz/{,Ԑ13giҔ_I]aΈ+_d4 |)K4WHiO%6;4uœX$OK䭦wKb866K3ErI]ۈi 8 e/x895Q3v_<࢜ endstream endobj 2078 0 obj << /Filter /FlateDecode /Length 1175 /Subtype /CIDFontType0C >> stream xu PTeݻ/{5& +$E %- ΅`aaFڠ`[`y(̂8C5;t1i7g}gߙ98&c8{:x`chXdl-ޛ"OMMY|~%KWxZ<K, K,)BHR0SwE+sQc2*5/l 1c)Gcv>pBSOjTa&$arsZ#E b 7"{b5qYTfxoӒ$^|6S$/MqL9ְzb;3mj6[)cMNV5c̪:-d(dɋzZR{zwZ=U_oc>)5|Nf/Zp lU~rCK7 zy\2[Ooe Cu('NBeӂZqۂK:8JOY ӊO .<,##/B E|BT,`ixӝp@ .(E:TDZ !;IffHAfk&@5D7sf =c; e Rnw]- 0UW 䰽!2c3~aqimpMuYT>َY䉤OO r r .ZeMohGD2% -T4MyQǿP[.я4r_j Æ'ơ4F\g^M|ʏtYQ嘝]{=2S]8/rzFzҧo_|@,ݰ_2PmmP? Ӆ_`rA`^51!;odlyb;RZPḏE;CW}6Gq$)mj9f_߷ۮm҅hX!읐}ק;Њ ^w+Ү7.,fq5}/DAp $Y\PXI.afU Wm61= endstream endobj 2079 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}]k0g^tMܐs +]6)i{!/_tB='yoi0arAKY+-+ZuzGdȚJ+LDʼna,z=g:+s(#,q_2SA^+@ߺUɥx_6l&Ly5[QՉ=\'2cYa/c^VhGB8W {\15i]4@~ wtYBStgu,}z4V2,PI 㙾(Eu[mwK1Ql: GKÁ:sk#Grds88?9;mjw>Z)=6Kx:A4en{?|f endstream endobj 2084 0 obj << /BBox [ 0 0 637.608966376 358.655043587 ] /Filter /FlateDecode /FormType 1 /Length 300 /Resources 2083 0 R /Subtype /Form /Type /XObject >> stream xڍ=N@ '0XBH,,+с!JC EI%<@> stream xڽZn)骮DiM`N K`r%dJkڍU_yٽt ?_{"{r ћUdgؼ .&Rb;'a9YK'29IbBs*+Ykv8e)'|}>*d 2ƴ߂XoWrOjoF&BPo8 'ΎP*\zN]hD̊\,4gE -gg*=ѧ2]*,!k碄ԓyڐLb KlAs{ZHHvE1OXzeN]q+rR#֫X5nwkMM8&XT.3S:޸1EzIC;x9VVABV;,NcyR@=%\j&d}4s)Qc$Nw䟼GcC6Qr{H>@OءWLLeB !rXI,>#Dv?&ٔ쫱ZO;[BdzB[^Kv46>g=Zv[źp^łtD3.%A2vA:dWe|"#8X%cq߶64z&eSܤtӤdG7)u& YIƉW > si/~.# j%:;!oX4YD%^v1h NX5zBm;s{ Ć$Gl˴W U$O~g;dbKӂ[Fh}zv-xFA' @= яʈzè0i'㨞ݵ2ۛ/д;q!(Η˩ 9/ݺOB3,#I BZB;@ܹ5VF Dg7=/Zw[B10a)t:QC&! ud/BڨC:3Y p;c/DCv#tmgڢrPgXo.b|ٺDgdn n_cBd @'EKCCtE0I?$쉶|UA:?əTkqgNվ&9a*]GE-^ FDe0X{jzrRp=Yw gy2ŏ9=#C~%QOot}+] k!iZf]" >;F-c}t endstream endobj 2098 0 obj << /Filter /FlateDecode /Length 729 >> stream xKn1 >./=l'hvm jnj/5- ~)d}~\~_#ɼť}Amw)fX0>*A| Hg<\a\O+z*¥|6Nt ^ [\"mԍV[{yq :aOH>bdXܟ)r( 5/^SQg!L 2ʻ00'tA+?p(%ĒЅ%)ž6PVO)9mrf ρBf^П[={+"X!9RvZެ|H7^ _:UCg@bg CSUk|I9ɒ, <C^s${jMvO]8&[5dr=YmvhvS8xNm]U9XIZ5۸q9=,-f>P;`fJi"\c+ D`=Fה)[;WKR#j> stream xZˎ W‡@v]Ud5_PewobPhZ"H:~/'90]HrR8C8GoDt|_2 NE5n;ˆX%-F;ScpoL@$3F۫X[2LTB.Bq)'&9Hk:'o"+q"qG&cd(}=}Ǽ c[V]#$c6`Nsƒ] E4lIRڣ8 FyѲtQ^N3|EB gi? 4nB4鮵{YBn&i|_\I-փ%x:iK8楋B[Wnc<ŷWhl1&:\ub(OX?](B%>@%P[TNм*tm#wt-wBBpZ`FP{Wĩag TyA\'Cqzщ ~g>8sV{;N#Yq؏P6@,d`q%ꔨ{=#O{0xM)?= 1 {(OjO9D?=ay=h2Yp$7;=܅cZ#u8cW"DȰE9"@,Ae"M N+XWr&]%(f2h12=G`ꍐ_PN}q㩴$09-7t4ʦZkd8˷,4L_?ޯ a[}}O6=l2 徇Ut#+GNi%mɧixAtLm'Fج𗮹Ҧȭ x3Ku~4.U׭c(ؤXk6iD$njC]=MJiO&Z )k#qRz<=$S܈7؈,#ȺfL4bvI!!xֆ#m1:6 8{Я5Wۧ^^*|d^A.HS[,vx=7\n),֯v ԒKw:${N}Y~i|Si4pb󭴬kI?_;Dt.|gU`3ȏ Te͡U=\GovTyʫVd ~/2}.d ~5?fOR-_wФK)좔t(\q%Ux/2D5gH9:8swJ5-FhZ3x@+<5F*HB͢ Vh{6!_>cX~HDQ?_H_HBI/觃AZ5[1x|x,R x#|$"afPŸduUUVTuꐟ:c@$9g5ZST"@j݅(8Bmc=+x)Oֻig_u\Wq#@Mz2B)O]Eص'E]1.t> stream YKYZRI+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityYKYZRI+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈FUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 2110 0 obj << /Filter /FlateDecode /Length 380 >> stream xڅRMk@WL`\-Jӛʪ?~Є.Λ7oYL^Z.XZQLIEu@dȆl4 f`^584LALú^>zۇ2C:ELٙWGi oRYBV͔=hO` W#~8?kӠ=(j @$<^Vi}T ))נ. H =!d짍<9lcUt':7ōqq%ò)X7m%>x;}(]c&Kk1oFn]l#wz Z+-hՎfǕTډ0Nw?a endstream endobj 2113 0 obj << /BBox [ 0 0 595.275590072 841.88975789 ] /Filter /FlateDecode /FormType 1 /Length 1211 /Resources 2112 0 R /Subtype /Form /Type /XObject >> stream xڥY;7}b}HP`6f#r׻3auiR0>S,>{iw/[:T mTĭ5ܨຽ|꧿o7TfJoRmTzź Ϸ?"j܇|;zR/Ю^K=O|VG#J#3!p` (E HR 3C`pmA{i]HVPDZ 'õ"ƌgZZ 'õҽZ[jafX6pi+M-. T1-LApmQDFT#f'õ5lHŭ[ *  i$Gk| 1;"!K8 + %[E6+GfKU0մfg'A^IuDzL AU  (߁YOԕ VK 'qԀ@izLgwT[3>h7w&%GI;V`g@ ܄pE9 (JHw03݌xEam\ Q*rQGa'ZR/?Id@q_Bzhb H`g$>Z33 H`Aas&?xC'ڊwvVOMUY^jL88}DZ1?%fZ;>ry\NV`&*p'xv:9L>o'%~glV;n vtmg%%#[Vx9̲N'>2m.8jR{u&XYRb@bPV苣7i!4?+fAU߳]c{L8dy%kWkDAX^qybM=2@2_w$&ba1Gb"_C5 endstream endobj 2117 0 obj << /Filter /FlateDecode /Length 1753 >> stream xZn6+ /`+k]UvuQ!EJr؊#'BpN~~8~LG{UΙ0>#HS>XGZsZ4Hh%zҺ*:,Q \Q堻4eP',{b'1* 1R?9zHL^pt喱]xL6f5&q8q SR2y|w]zw5}PS&/QhL˜Pg"4D ,TI0`ˣTT^Y˝`0e़_~^e"s&WL坡9<7/Cyd믎6aZF6XXX+ %*-d%S}0|wU[hŐJY{JbC9V c~=% J.6^3Onu4Sh9vl2Eu%X,y~~WW"dʳw^=kPGfr*e1 7XJ짽Ac=߄Y(m[&mwf99VTgq3xgh-zsIF$o\r+MJNh4 baI o ᢚp2=kE1BD45TZAz2HL(8`\Sytѹ>J-I+<}#Mq h7GS^6U\VI#3q֟ʩNЗ)3쒔_*HEd 5Ɣ#s)d_^M"Xyx;uW>fթiW?QML MkaӀa-pB >i4 3V]ڵb{gI3$bk^"ט nhG7!۽"Pߕ_l&7֝zEC&lW ??l]k]c!lBw6-x ~eF䥀zɎ endstream endobj 2121 0 obj << /Length 523 /Subtype /CIDFontType0C >> stream YKYZRI+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityYKYZRI+LMRoman10-RegularIgwp7k1tKM3klƋg1kl⋳⋈TsnnssnnsFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 2124 0 obj << /Filter /FlateDecode /Length 381 >> stream xڅRMk@WL`\-Jӛʪ?~Є.Λ7oYL^Z.XZQLIEu@dȆl4 f`^584LALú^>zۇ2C:ELٙWGi oRYBV͔=hO` W#~8?kӠ=(j @$<^Vi}T ))נ. H =!d짍<9lcUt':7ōqq%ò)X7m%>x;}(]c&Kk1oFn.Zv9k_90VJ[n͌+-еax&:~a endstream endobj 2127 0 obj << /BBox [ 0 0 595.275590072 841.88975789 ] /Filter /FlateDecode /FormType 1 /Length 1262 /Resources 2126 0 R /Subtype /Form /Type /XObject >> stream xY7f WH p]*S߿'iZ vg~D!)Z[hiyx)Z -nĴ]L)X缼~Z__/_hԊZ>]GF* M:O,)+38Y#md85GQ~ǟg.b_UɭGws p?JTUC #cpnTP* k 0Y-$Qf`T~_E_ұGhU)7ɩ` R꾴'6K6P9YcUa4G;A,)SsI"~jF$L4?zY"ձY ?oH'8 n*a:4{h`7xް#yɯF;͉$Eɏ^"Et+ۛ{_A]4q'>t4Kh8\>p'- AכG8VEo<3ޝ t*osRǢ(F?sL-5I<$ 50@098|36zEU p3KdVGz.+:ЮH.O3a pgo@]KEUa p OdRÁ)00}, ?#؈ <wR [l^/p_OJ\wXA|+C*e߾b?dlj$%zלZJGTz{&8A;jpXµ:L6() 2a Ku;7|/ڤc@ߎq &AWmZ; \S8#F$!L5+AXp=1ߢʼn5L6s=#7gGF!1Ss7$&__~̼ endstream endobj 2128 0 obj << /Filter /FlateDecode /Length 1660 >> stream xYn6+BI 0 sKb $q%GTw[IBS[zUu?[?޽ۻ{4Iʌu!Zw{|>~GçHEQIhN$9d.s\K~Neyg"Qahe͌ezI=D7؎tvwe57[/xᙧYqË)u 1Hu:=cڅ{GkHrt2~4vw?E/G/?~¥_q|YMџs|~:%sJǭws zfsW׊spÝO-~SP{1U $R`8+NŲM.b}P,Ce0  =x<GZkylLl(MeARYl `)_YiYu/չ-hJ++o-q,,(~ʼ˨gEVUGsBj|pYkHD0n͒ ?KFm#&sߔUTV"#Mcɏ葩ZK/ b0YET M7Gwx}U;Ι5T톓%\"zv-.fw1Dಁ}RD(9,{BKy< ufЃ,.r-K[ȧ=!RlǯM\[ ,YRndP>o_v/#Wqq^ӄbQ/&=ut `EY5znl$q#)".\BVk` {Uq&-.0;R\Ё4uq Bǂ~E"."4m.(r;}$A#!y\))mG Qa^nX,r#0½ez5jνYH:mnpqp`>uAWBr^\kBb1 b/6y'>i(ßfUDLdÇ:JVGG;IqjWLb/ YMu8uA"Pm9κ06dFkPX3kCyrm˂ʭqNJWjUwg–MmY- kE '2b◹\Q]8rr9$_o)k:+bP#.T;W:f<ߊw41Ee6vClQszmaߖL *Yּ {lt̩.#bEah%@ "/Dۃէ9A^ӂ+F&}BoJq ɝFAD1<·LChcӹW9+GLc!'W a}]ICɥ!\3gKDt>˘z&oE endstream endobj 2131 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /DecodeParms << /BitsPerComponent 8 /Colors 3 /Columns 617 /Predictor 15 >> /Filter /FlateDecode /Height 399 /Length 91082 /Subtype /Image /Type /XObject /Width 617 >> stream xy]Eϩ{[HH B0 10ÇEeGD" ʪ (dCBB $,^^[Vui;!diL$Or]NթWNS/1>JI%\G/H,7NnQ)d-%只$d؛%V57HA62lP ͺB^WBtʀɥ =ǎ]Oұ=-A)MDXJej*rڱkҩ-&%d- @ڒ}Ǐvjd (( P'lni11(xo,-KD@ (W7fls]JXv,BE( F ,P4F76K'RaoisZe'` Q(A+EBHЂ`Y"2 RC4]ӡ*00 2*X䓭QTL60`H֎J$xnGT(Eɪrײt dGQ\kd}1v* Ĉ X" ^ Zʜ&`@X,0/QJ!J$XٷZkBenz.Vfl+,D%%̈(٘А SgDmEXDú" tь_!e;QJYLњ*: `&D`"`Fb``f@ H!A $Dbhi|,T"ZJ9P=_JQ )4hB%)C¤MMIMEFC*Q)WCOMa%RI٬Sb* 4 20G@M"2w@+ ZܜErC'u ޺JTMtBtMw/`LRD PJ &^sNӺ3 DZIG!  (&ԣSrj[I}iτ=\?0 ,aL&K $R]"%`OkB ILBǝ05WkI~R1@ FS 7e}`FiպQKd[d BKG)u&bJI~kl-`RbgIsN bȪ1$](,G0 !H3o[jYX2 4$ J-!|Ru*)5UM5pWX( !I%I滂T*tww%I"ٶH\"Bm;{: 騄E_Y1sT&<``&($12G/" @ U*a{{=A&Hi%|O J( HD,@٪od9BZ JD:YLV=˷ҁВYl{@"d% mʠr.2USդR!Z PFxZ0t-4:beBT1cK'L&v반jhIUU-͵bdCdhA 9u1J@.U XL0 cYBJ BRbf&0] "4\/;$+M6+Hm9RkfmD59 }%2nP_M;v2>N7X!YRUv- cBb$p@L(!AA~1G-33l*@R"ׄȨz)tw^dXQ.D^ud~ό @IynP,T%W"IꐴJM)%,AhL"5HJ{LzdsZ$4 $ѫð](Qa, `Գ@9jXa/EU][B[ս.v[y\ kɌ{_ ]b#۹2뻃΢h2(Y$R6 酦k/TUj" B%HB3" `2F`_P2 g@ÆxL(L4 FQ2D_po!A8-&-]|5rlf!@ ɰ0i6BIF`@DdL"7N҄H ӒҀ\eldV,)mAĄ Ph9 R* {a*]/ <$&2)SlJ ঩CAk!L#m ̆AD7 4B!32"DzF%X dQX. BH4@@T]I!1ZV !Q@i( 6yW0U*XpP5uM|yɤdT®XK hd`@MA1 zIqA{P! f(%wqGfBi0L4_ѐ02Af02 &d B&$`@Sr,S0 BU!  Q"Hf@D0FY& df`!*a¶H ɨ隬-ޔv2E_x훀Q  [(@yJ3  @ D n%ϤS"jo/ߐ00"d)S,.g96! fybEƯ"D1 A 6ľ*,FUAQ3LP ѻI}1$ >W/+`q5BZ'!sޒRdJ`tՐ`pbo{H$\&)U'Qi#"3 k̥,c۾fn[յdHiJxe[d!h4@ c|I@R$И KJ 䔪GB fQ+dD+6wYUTE]um(J:k $DeLe5Bd "T `X&Fvpc+|L@DQ =A,1xnf`p޿AtM+ dSSw#tM6ݕϣ*bbbbbb>((d IN!u6!Pkp~7eʔl63QKT*=T RB(Ў҉=9m4˲jTyٙ(J^R@"M`z(.d֯+$5B誦rej֭[7iҤJΦDXT4iҎwŋ?ɓ']?3m뮻6l07QG+O<Ĵizw}?-jcǎG}y6lX*}G_`ҥsַu}C~֢' E2ƊƀkTQ#ֱ;댉Yb~yg?{/]_\h뺏>GQ*.䒃:Hq9455?8rȖx7ooÇs1˖-|~{ĉBk֬YoF9r(3js1bO~'|gXx7+W~,XQG[[FQTR!fՉ26Hh={o͚5_T"M5>6k֬)S̙3;N*kN[nommV\'>|iyaxM7~+V7oފ+?GyX,FhLZ픪lIھ ؜$۶-UB٩xmLP*no|{l"XnM7t嗟r)rH\~/^p/#G,'x⡇4iRoomvEr!/k暁r/_~_~{ǯ~|}]zߟ|c5k\ve_}}}{tУ>뮻QGյ[cǎu'J=0 yD}R<?ѿ4=3g}S?p:::"9SLygK/T*ٶ~Zn׾V(x?3f̘8qxޡQA-ڬ2&U,:t)Y<|\3KuegL̿*;|>]]]DT*6 /ko/Bri?7xcҤI&M7n܁|򦦦~9z[[y=>a„O>׿z^gqFTjll?rʎ8`񽽽'tƘJ2puY[ַN 3+6 Q lV>xS7[4cLOOO2t]M 9css/~7ɴe2%K$ !7uϟ 'uYRJ駟.ݲ1 * [@VKۇ9Vw 11;E"C⺮1FQ*0 fÐ6?j5lE7r!?я3JT*u]O?>mڴoT*BKR*2H)#P(D~oo`gٲƘGcƌy衇 BMMMtFkڂ:ߴ6մgڵ~]|ŋ-8?h۶-:#.r",P(̚5/j:w?֭A?11ʱV5'];,IJ5 u {gg5&_ &̛7o&Lx=Xqlnkk=zt*;.҇z߷*QOZCDO~Sz뭷^{>_WGy1c~槭mu;vqn3f=z͚5?3OM՟M5=γ>?og}d 1,Z~C0~'t:|׮];c 舜ژeK!\۾z͈lgۂ5ڲ՘Irowu>9q㏿~#F^F9sE]tf2>ff_~Yf͚5bĈ+"Lc\x_|ܹs{{{p.HN .\lي+?/YdΜ9~ӧOBtttDcV^ b8&<u;oM0M..$Ia-LM ϞrGD?dmmRT*EfT0 R]]]JaÆѨQZ/$ ^Lӹ\.y!DSSmAtuuI)=;~\.gbl6EKr֭3455U kkkSh hSu*;t*8PZq6l]Nt[oMR'OR>{'>?|kk3xwygʕ-ȑ#.x©+{C%ga5~sZ#/wq;;111CCd;Ν3hnnfۑd (Ad2T*A4q˲0ʍQIݽ-M! G47堔TYK(Dlbbbv5Cw+}S7Tmt\V#G<&f Ы"| `q v,/:&fGPF[ Y˯ɮ*˶N% a&tb3T$;<-B\H zJcZ;ݐ\6[jJ}r4K7`LLLLL.%B3t231|rN:cbbbbbqQފ`ROim{=UQjg0&&&&&fB[2ij*EMRl*!SiToɛ_kuMlvM&#ðDʔK;;111111yTۺ|qQR`}C]cqefmNf2;;111111jlKjz](uU)QP"g[kMcbbbbb^~D߯P[:pB;{! J2sL*?/rJOOOC+CSTN<]Y֧O111-*Ҷ l+ %$xR߀%\r1̞=vdׅ-t:% s̙+bҤIӦM>gz뭣F3w[zu&93>̨Є#F8s90}oqԨQoqܸq'|ULLn⚴P+5􆞢t ]P[zmه6_rĉIC3Cը{7'LP.x8`Ĉ;.yÆ ?gΜ팉EϯK]{EQQ\{ #_7i}틥mh7({W?/}KW]u  ̜9sڴif͊VO{ޫz5|zvXWW{}|gO8A R+|g7<]o뿶>5kꪫNJ/¦&x.N;{饗^@1B'Y[H_/]~iӦW꫿/^qAзOs#6*38#?3o޼K/O;wnGG>SO=g߬;3Nw޹z#*8SV|߷,_2툴~ƏH$.]wTT6}Atwtرcڳ:묳κ+q&v,C{6+s 544Xop'!C(WgϞo|㤓Nkf lii={>{מs9'CAl?t]_F~` j厫 i6lX.é>q%KK?3wD,Xdu^cOm{ՅBa[%wq?yzƛUC{>`Tccm&L7xr x`ro1ymU/Rww1c6+s ]xᅽ/&+V4667m 8Kp |PO\͘9r/Yd3&&&f \Mے3",Ͻ]X#F|;ߙ3gΌ3-[s>Ƿ=_O~o~tzSNxGnmM{W6ݬ ze"{yAۚ_~^ӦMY.{1cƼyo3gzͻ7+s ).e˖mMTdT:묳^|Žk 8iҤGydz궪Y>Yugy]tQss$;—2i UW?wծ|"BڠStG|lJeڴiO=HLLG @Sejxe}w@^VuQe zՎ0RY39j-Ue}PLLLLLe܀6*B:ZG.g)oLŇxRb̿0t: 9EnmaF՜Ð35;46&&&&&棇JdlEIŠ$`111111%UxD&ܓ%Sx5M]fC~&zC'TgI'iˈٝPuX@=)0\OV201+3Z nDqroTMÞu\(KRвWѥޒSYjI!111111P- FB|VCb3eJ:^٭z1-Ѐ0FK C <[f^zU6Fm>| 5,eоf!˗[naۍ8#G7nb%jkk=bbbb=*QIr(eU%b-bmmmp@2B뿭xbŊa\faÆmoի1J/df}^֮붴l+LiX &D!"n`;{c>xĈ۷ne2B ƘΎgڵ8Tlk׮7nܠK!I(&&&f #VX1$B,DeYjРZCH)kjj֮]~*jԐ H$juDc2\Ui-fBcQpMb)@ЖwwbbbbRW͂QYSщdUT$~' ␻ϖbhmg$m~f&&&&fQe²tm@@Ұ{Avlcbb>1˗/trW_}z:::W^yP(r>SNinne%+&̤]W4,y=lg̐~nIAD_|-ܲg/MYcm禆|XxM7ԿX>ӟ /\tE'O5%+dr+\¶](Mx׿>T 7p9455 @; /)Io~󛝝݋ȼM2K_ȑ#׭[+7| 7ܰWvd%wi fHH~'=w{PuޙW^YtSO=uH֩d;x{^xO/O}S(s{I&566ZjÆ EXbҥASNݚ7xexrr,XPV;0q^}T*vNvpТE|>w<蠃#111e]k.na=̙3DWzh$+boh m F"alU̙;D7߾_7]mG .8VX1s=7qjժt:HD/KR|>xc9&Lo~2]=z@,_裏m^Zlٔ)S8zq+bױ[_߶p@>3gwܱYy.\vڠN[`EUTrt0$vHl.˞ֆu7?O>$<_oGv:0 \jc93ؑec<쳫W7oަl[˗/:u*!>T*tuu_Ac…b1JMw]%Trt0$A]!KZ]<`X e(.\xwwuumG"zg.\8}O|' :yq՝tI?яl@c*Jd6K.[lYPHRW?:|οg>~{3&:6lk6$3&&&fr|~|{/GI1cFt0$cєJhxCK^ªFg¶\C;Ry7{o*u-;---ƍfW7550|掎L&r,YbYVRjl]211CA3<#1#<'O7nSɑ!FaYK*#$+^׵)QBzm66u]O>Zo~)m}G}gH$[Dd۶rӦM{?i'NT-[^bfrDӬ\=# ڡ25b3|-Ztןvi#G\vc=p¨m7nsC%Y\*Pk[P2Rv6%ds6l{caY֩}lܹovtꟍ}9@DguVtz9-6mg;. GoJ{C<1ޣ&51kk,1%{Ď QPeǼ~Dϲ;3;;7>3<1o޼e˖Ç// / Ȭh$IqqqJJJS^wwyxx= ܹf{hkUG mB`<8P5Gf/d'eԩ6mJLLLLLd=۷o_`u3.HZGꌨT,z!ͤP e1__~M?x>Ņ(SXXؕ+WBƍQFB8D"V8|0:ܧO7L&L&S*2vDұcĻw:88|Gvf瓙YPPPXXwoPTTL0a׮]uܣ2a„J͛7_jչs*++ryVw}ܟ~i…NNNT8 ,;XpZh N%%4JL|GM6ݿݣҦM1c( t*zgYYYkM6mڴgiiiP9rd b'O/////*'kOF5jT$0kkE6m/^z˦M-Gqqq;vv WZbŊ q ̈́AF 0y$b-BUڃ\.f5ojAʰ78c~ʜlqƓ'Oߔ˧7;mʅz'F9O"J͛jժ׿Aү3T$Hx,Z>  Hnv-?-ZxZW9s&{<}/dw]̭? rׯ&o$g708 hRORT&zY+^}ٰaۮ4o޼67oL?k94Mp 0L8O5D>MX-1py;9888.8i>zi $&3AQD(QgY;9888p Eq!I$CYHf0 ahaNnN\]RI@J$B^<pfxzEP`Ҕ$|j0|z7rmz'Gi KĒlu ge(^'` A,YE0jxv #7@QA5rpp+CLb)D$**k%zEۙƴF{hР{"""^'*Mu+|$kaɤV{tvvh4FibLw$JnVg2 !ɬDw陖f|xr\.q\ (++ uvv?^[.IрY[5ts+L4., $?٩tEQFQ*PYu̍.G uF.DN$ʗV A D)Z:(d'0FѼpppppg !$1KQP(  LoNQ2'SGYq#_w ,ʊ*Ӌ6uBYx<5tErGVHRrpppppC43a2>jW' ';988888lИHFŸS58`'Ozrppppp+fT$McuP|=EԢ) qFI3`oΝci XQQ1`?"AB%H.mא#! I PPiջ̧4\ތ  8Ft\I֌FS{2(ȡ~Zz 8KR\v]888886xЗ q/{KX%ֵu#<QQQ! ۷o/ 뭜wɔXYYvu88888xc9r+2I^H5$i0|>MWл@ hٲe2';9888;pDF:2T%a|;@ʄ4 $" ^oe3 CP('D($mxbdYH샛)!ъ< m|1?G׀gX1`kݙ)#0i|\[a%hW, |z+Dh%PjZDb--;PZ"i\5N |0111111!!!99V?)2o@%VgcL4N̫}]llH$ׂꃷ%;fҥKWXxŋ/_.Je,Vuuu[I5aX^^^mC1cƅ lO̘1#;;o!sÆ ~Bpvv H$Z[ځ QN  GDPCPﲓWSu:`0x={.YdӦM<o…:tܽ{wӦMeee}oܸm۶/RT7o=ztddo+0e@yS'64ࠠ+W.ZH/\(l2NpVAm߾=**gϞ֭ׯKsm۶E]zuǏ-XA7oތ={6@VO>$Ik4͛7i0... :uFQtرr)TOe.I9JʀIP` Fb%CV,,,=z͛)))Yx9snݺK>>,,]vfyԨQ[li:...33?i͘1eѢE-F1Ǐgf˖-I(8F߮$*xɓ99976 uIMӧNJLLiZm۶ P(NNN~~~wލضm۞={䐔&N $[j1eB!:tP={-Z#F!\nbL( 00v(G_Պ8z(XPΝEJd4@Ql6Y8a@"8[ϟ?sNNNpnѢE˗/C,!..nذaDRtݺu/MT*  ib~G/_g1YfU^l駟&N윘>h 65//oÆ 3fxaw6 IOLEH4R!w)$7oaÆƍݻ([nvSNݸqC,GDD,YdժUv:~_z?X,qdgzz +(?>\\jiˑ#G&NXXX₢hYY`̙#FxIطo<z Y̙Rl3 # \rUlңGvJ.]#sppąchfCtFH(0>zY*++ǏI4b6lpK.EdȑpˡQ>}Ν:wѣGGDDxxxBe øqA]['(((==}ٲe 6\Zx{{* 4h̘1/^ [tj={lfͪ'%C8Q$0o޸qcÆ ݻ7}M3}'77Zk$CQH$ܬ绳 2hpoDx~.P8(O3o׮]lјשS(jqrrͭ/bX"$Iii)MBifV+J1 h4)r7R4&&G,oU1yyy*fzzP(cΝ8p`]i XQQ1`Wl61F˛6mZXXȞݻwDDZݽ{wJJJ\\m߿ΝwE4psӧO5۷o駟֯_g#spp.5;&>iFʀiy:fR?ipΏ>d{T*}[%;,E{H &F4M10/^FA87 nF$CR6;,!i^s=ݱ'"8 GCk܀MIHLrL^5d'02((%(a $"2(_c'b_|d 8 rQHgeҹK)>~+/'(F$vrLHv\& x804܂b4%CEy Mb2u5Xxe^{pAP J| ` i!fh+IR&>Rs|z+8xG@aC@qY ` zB0ł ?>5ax@2 Ah, rhlDO< 4&$I>yD$x x( 8Fe|^6 9M988888P{ 1Il.(*JmO! h xz񯧊)N{Ym'''`0TTTVQj[cVϟ?iii5ŋ*'5Mzz:}ڧOAU*l00 A1!p$Z*acǎiz 8v(8rsjz„ aaa aaa~Szz͛77dȐk2DT#{DDD6m7oT*4~x( **77Splj#FP*J޽{۷W*ӦMcM?nX:uꔒ1 /BBBfs>}V+8ڵk͚5 4hѢEXXXn0$˻vڮ];@IIɓ'zU*ӫ+Ba`XT*UEEEnnnV~7ViF#wޱcG  ոqs//^ xexo߾7n0 s >}j6-[V\\\vsZZLdIK߾͞\W~ Rk$33S>ǎc {u~B ޽;aZz۷ݞvҥѣG|}}ϓ5ɠ:tرiӦ76l؃EyyӦMN>ԩS^zY,SNUN?VkVVk^|ﯯd0CaJ ELF56ѣGߔJJJ=zV̀?Bv:4!!pVN~nݺ8cƌw&ETTԸqiiiw>{lbb}8`;Ce2:tT*}}}*4Mk4JuȑG:uJR]xΪ%''4EQa2225kVZZ Ba;wfZQݾ}L&$yƍfee%&&4իWẩ?o߾Pd|>w rTARSS>|HQsƍA&H$ʊ;0 SQQQTTm;MߩS'ggm^vUVJ/ڵkll,l+ABa-g+ mtzZ']ƍ :}`ϗ(v*&4i8hР;wXVV{QVx(*ju||lFQSP+++oݺ_\. J$I6n8,,VbU'..O>Z-԰$8a˗݇SX ?@=ڵk ;gΜ?~xK.}wo[li{ivpp(((8t@*Xbĉݺu߿֭[U۵kWP7oT* {  O0hTI>B  ɧ|oƣG=z;%))ҥKH_v߿=cۋE"х Zn [QQLZ ,8z(\'XreuC3g^tiɒ%Zvĉyyy'N4h޽{߄F9rȑ#3qTյe˖7vwwGAH@~~Gݡ)SFcttX,fF͚5 !!!͛7wvv/mWt:ӧOr[nJ2..}fm۶ӧO3T'N/VZ^ "##>|wGEEI$6mڄj أG777@aa}Ξ=0LIIɱc +ӵkW2i$(BR1bD)zy= W2ԩSUqL"<|5??6 Ν;¡T*222wݫW0o# A֭]ƍ111b855UV+ V t:5kV}||^xѠAΝ;&''ϙ3EG;$$>jrrrJm۶uttaaa?$AjZ C޺u $,bl6$|}iӧ)))}icǎUl<<m3&;/رcЮ>8yvݰaOl[n} mZ~$I;vSNnnnNrttܱcB۷˗ٞq1cٳC?3v)n߾eƏ@?'Obcc/@?doooF_dxD"ٳg:qF[j>~55 PSǎ!;!۷o?~@ 8py yK9++ ݹsGVGEEt!,,,,,,000<<<,,l̘1ڵ2d$T*wTlVۮ]f͚x<;FFFFDD=ztCݼyS(>~[z5;\f ?B; ̣iA)T/ 66vo.g_}4;;eĈ;w8p`ӧO_z3g,Xj͛tғ'O._u{ꫯ֬Yc4/_>iҤYf}'Ul6mjJ.Zyo.ϟd~T*=~Ih(*66ڿu5ZRvSl޳gܹsrN?~|II `ػwoLL A&LXfM\\ba[X,P["Iѣ]vm֬Aϟ2e caÆ={֭7o<`6P%8b1 )J8o&"""Zhɓ_޳gσΝ;wܹmW`lժ޵kgϞ4]XX`>x`׮]w׭[3h9}:77d2AsYF׮]KHH);v֭[,Y٪U]p_d͛!+TEx<^HHUvJZuϞ=ŋ/Mrpp A.$P{χϚ5kժUpqѢENnٲ;wҞ>}}\vO>P"_}T*mݺ rssz}zz:}zcbX,/^] C#XP "@hd2˃dA/xv(//N:]zu֭k׮=z ⧟~3.K6mӧOwssr /nj6mDGG^z…7nܶm[ffٯ׌qUpxqHHPX7G@ qd50 Ӯ]:8mbt$X=k֬T<== ޺u+##O?gz+WUQQѧ~ G XɓlU|/< Fq߾}U&h>~ɓ<חE"QPPh:thJJԩSqwvvNLLq-$$8%%sʔ)fyݺupb *ZNHH9s&`ڵ ?88}:Hqqqrrr߾} `|VfvvV`E k׮nzW^8qԩS۴il^aAy:*f> F$0^} TV1bg}V[ .1[*++ x}z{{ 0SYYY|׭V+'sN?S ^)pFvFh Ov}oܹk֬iذ@ XzcP~D]rvU$8.*ʮ$iRMzToBLd%toizTe 4J'OQQQ/k׮ŋϞ=jժ W^t)K.}#~`]sppppT'Tj~csJ-d_6j4&bqww`elqvv>{LliYl ͛7g`@1 VVltuyTh,t4'+#~ $8kcȑ,ݻO<E]U  %%%ˣGF ü4ډX[t4#AS*h4۝U[c=^WTOS,>l#ׅٱ@U~Dv~S"FX?ƗRێϟ>/ʳb-:4 vf- cA0U=&sp|P /ܹscKJJbbbsyݸq#>>… p:phA&(ȑ#5kte?L<ֶoٲŎ c'O7d-V٫n0Clf&99zStЗ'|~yyUlڨ10֜9s~[n͛7/>>>..n0 @xZm2?Vj5`+yҥGo߾Vk얞] n:8s֭}ݺuĉ;w6E^IT,O1jA !(J#hqp|Qݻt߿^1 tuuԩSXXXF;鰰#GB$IΞ=;))ťgϞ7odoذe˖?# /..( :N;xlU[,L4]e}v^$<۷OVN0j>ѣGpbѱK.VU( 6,֭[8p <SRRb6>LC&Lp$\U˗/}#F;v,Ϋ/--{\ҵkױc.ZA oo ڦM`M`<;Jb (>g2]j/iӦʼ۷ð25Ν;'N00.]<~8<<WCÀnȑ#v(\ND P\\T*`c!:cb *[fFsuux;w{E^^^jjj^^P(.r 6f3|eW\ &J۴ii,ZcǤ >mV898؉U^^~ƍ-Z`{j*VV*0tÇ:}ppdi08;99$ (--5.]gXZ#08 A&x^ݻÈǮpPS'@Q|G}d9::vY.[ ر# `Μ9}F!k0uEHLL_[0 b)///))vӧOL :uX,8oٲqBѧOa=zxE^p߿;7ְaC㸯Y_v^nR4((痖x*Šy @ HKKҥKfffͫ 'J%ƦFDD|WG&588M6Zj۶mqq1h4?ډg#gff&&&&&&\p!99Y$={$""SN!!!Ϟ=1btpwwxnݤRRLJJرKo4>( ~Id-ZDEE͜9)''tF`hPNF1i `e&2{Eqp{KPt599ynR*ݺu;v,tcԳgOϤIݛ(JlU&M5jx7o+iV'++KQ}UQ 3dY,'N5jWXX#A|f'ېOOp r-ɼy?>uݻwzIfx͛7atb[sϯk׮b8""bڴi-i?005:nnnP]x;㕕w޵m9rdРAF=`0©ENCz;TL&cv&Iܹs+Wߴ\__l6X K@@nZU*UDh^^^ǎ?n^'SOOFs6ɓ'GOwߺنF[dknbtR\\{ ,~`sES3g6@YYa$I|޽{~%/4N*J$޽{兄ؾ^nAz}||<ĶM}3f`6sLۨݺu;qDJJJu#2m۶JrڴiX~Cg̘ϟ6mخhHdij(ZRRҺukiqEQ___^x1l0պxb×k~D0Ж_PPБ#G`p.]5I&aaa߇}"hPà*AM98}؉uر_~ɓ0GXXX֭z'H [7nm۶m="##.\WPP~엗3je2rrr PZZ^9ѣG|JJJrtt)==޽{;w0L%%%W^dݺu;~ҥKw]YY9vX8 poEUVV(j/_{.a/M0`R3ur|޽p! +_PNHgjZѰ):ubcTԬYW$Ν;ϰ&KOe͚5lQF]t A!C?8.eӦM޽X3..]4###00ˋu(f'04&IM6;wܹ3gVkaaaxxה)S.^rJFC?P(?~\XX2 oPV۰aزɓ'Ϝ9СC[n;w.k{#5l7Wv'4MC &&&?^*vwiii͛`kٲ%\1Г;vwD"+W<|pVV|#5Ƴ5jP(^l` IڵkSN1a'(j\:|5k֬AQ4$$$##mW_ۍ5͛7OHHHOO8p Z`KJJڲeSSS; î^lZ74LA49DF 5asWA)EEEǏ߰aֿɓ'%<[AV>qp;J MZ0AXY#u۶m;}tzz:ǃV,֭[i6Ϳks8k֬1cư>\H,--~ӦMϜ9c2&Nfnݺ'O* .={>xƸuoqss!-[hѢ?c>x Yb/2a„2_~6l8|046L&Mڸq#=q'O._|˖-$I:ud2EGGwO?ӧϙ3gT*Uyyܹs?f̘̟? p].]駟Bd&¢6`݇RZZ w)T899%Ju vbW¾k*c 2QT.ڨ睢(v-Ű}jmú1FEEE/++mUPP`<dZ?^[1Nm6c' ]/{6gfgvi"bbymEDE_b=[$ ]5"DX"t38|Vb4h>sX9ss'6Q9u5X^J%旗+ڀ^0Uz6l &Oׯ_WnO>=44ð/XaƹhV:$ID2t e/1bԩS&KK}9;")))22޽{-HqС%KJ|">_XXf[6mIߍj[~^WWW?y򤸸xԨQ111Zdh ]ppQaaaIIc^^ǶhѢiӦs?x' :t(upQΝ;ױcGWYY)jjj|||JWW 16m.;wܲeʵ BUXXʕ+P:>\$edd8::4ߞ>}z۶m|>$--M ؠcbb|}}Qjۼy3D43Q__۷o e7|]NN*gϮXM60 %駟fΜYBŢxq/..NIIi߾#G;2svyĉe˖EQh&kii)J5gϞ [ ĉo^__͕?~بH$7nݺիL>7ojkk!/^`1dgggddmVWWXձ\A=!իWA!$ ڶjժtV q Y\(zS[XZA<#CB>o=Es<$I~wͭ[Xn߾qf̘!n߾oooPhbbrĉ:hii3խWaa! & cccMMMQΝ;mۖ kEEEhjGCJ7|sN&gȻ),pAk۶mϟ?HNNV*555յ:ub8ۣ}ZQcSQCwb󱱱ݻw5k͸7͡P@0aڵk}||>|8`;w c_x18+**n߾~n۶ 5cccϟ??bĈ ##~i9V$X[[x6mڠoަ<@mbcc&Or]6...??ٳg/^xBŻvb...R4$$$66رcށTa8ުU+ɓ'?~ 4CCC5OS@jjjN:w\WWN|FGG76KizSMX:mmMgۜjҤIfffgΜi8<<ׯ_6llnww͛7UTT 4H"ggg;w}(BMEݾ} H$O<ӧOEEEB939`ǎNNN,wSXaԨQ/_lժ\.wwwpqq}7YXXڪwMCC vc64*y7!ze7n6la``кue˖ǯ\H|1cMٱcGlllnn.?=N__ͭo߾<}Q-_͠do޼ʼnfff}}ʕr&CC7.===jX[[_~}РA}1770jW^m߾=3ѣHxbLkffVNSaXmm-dn7ESt73dddH$!ؤ*III(cFjjFyCBN!pРZBBZ'!5x7{fͩ8 888,,lڵ"H$͝;5''͛7vvvϟ0`S^:~fJ}ё#GVVVzP>DD \vmڴi6lw; "##Û7on@Zh333CCØ۷{yy<`ÿgqյFm*MFnB 6? PXCJX,VyKҨ%11qѦcǎӧӬJU*bQtvY8nggd~G@T"j4_ų_|ߩS &0yz`ƌTKHp=-)31zw17kјTd̊$Id?~g o߾ӧO;;;ϟ?޼yQQQBիׯwvvDR d!pss;>0>>(СC[Chhh <U~3gD ٳg@ee# .\0j(GGǙ3gĘ;88BT斖H04i0z}} W^l"~xݨ j鱰hJғcaaannnnn(+!C>|cbbҷoٳgcnn*|̣h'Z+ 4(0\W )ޫaY7|+ijʧQ>l?/5 P(B|޼yZ:v ?/ { w^@@O?P(ڶm۫W/266F | gΜ9uE!_#:[S>9J޽;MӨwiiܰ:݉m 04ROOsEM8^M}ݨ jAOBm۶Cid} ** 1c(JKKK77ѣGʧ)LLL=R*^VmRIUvkeǿwVX'E0H$w~hǑ#G0 ?~|UU՝;wVXbO?eԠ=z4AB022xlقV6eS&%0 pppիAW^-,,D1}<>F_/_l9# Ri۶m555W\}v]]]Eٻw>}wf'%%uam۶Ǐ̀a`LvuuEfFc5ʧOChnfff~ @w33398^@ ߎzNS㸍 a|>=???990кˁ 'ϳc|e&w/pppppp4di(V_]C*,1="45"B9AhiYE'PӢx-h%ꭻt8IaEUw?QjBM 0:Hsqppppp[!?JJi鉄4O+QraU[kg'[Iոf=Η]+P@a<:me_rp0MYBfffYYaΦa7S LfN6|l*wRSST܆3T&|8;+ҠRRYfϠOHHhXhMnn./5T)q|ZՄf5_*WSr %cJ[βM̖@iu a޽iӦ޽Ν;7n@UVC_eeewލ߽{w|||pp/LBBQv/_^zUTkmܸٺc5g !!!hn֭[IJJJccc??^h]/XBCC nܸq֭{ -ZԔ~fQS"l}fŋCׯ_WI&TCfeqq֭[mvňt_J*^5$ɘS:t)O. dH%.`mDlg4<|C5i\{_~zԨQt;)pp|Pn8={Μ9W^(!APijj&j Y f͚z( _~9~ɓ' EQC J4Ml@ yŮ]۷owppXnJM^RRj _B*ޭGZYY'Io޼yS.cǎYLMM R2d9sTr|T8 1 j LGQZVfD~~~*Tmڴٶm… fXXXwؑYΙ䨪 d}EobR#A-'V"L0A[[;&&f˖-...uuuLe֔Ҩ"J&®]JKKgΜ)--usssuuEV///&==],#_|qXxKM6UJR5:###ccco߾iӦF9>p0a"ذ:-@ T>gϞ=wM:QfXX22$** ecܹ͛7 >>ܹs(T\\ڵkQ/ Dj+W?x رc ,ػw_~yFYu 366.//711i۶MLLLLL***RRRPE-a󳲲P=WXXkkkKKK1 d!={ֿXdHTUU}UVI$v)Þ>}j``eee*JS'MdllP(޼y#J{}MB4Xݻ...111&*rvvNOOgWXX˛7oW~~>{Լ|rjӧ"MKK )f͚T*ߡ)^i:""bիWQQQb{ٶ򋅅ayy˗R=~egg_jRd G[ ;Rpyy4sN)S@SgS'&&%֭[BBܿ%>}:u 19IPPD"ٻwo׮]s0,---77wѢE-^KKPo߾o611(q(j1,Y:4i$ %ԧUhJhRz^mm;v@qq1Cm۶x*R._v&&&)Eξ욚$|o5|K 5UDDu).]PJGK.1$qtt.--f0$I"իW}}} |2zڬ7nܘ;w˗/ ᗚUSJ("7hM4)-xfƠO).S8kjД}lʔ)MUpIX|x-`6E/ H$Ieeu묬,XwӧO;u~nnnK,aßHls4cƌ^zxΝ;077666\WQe*mFFFZJe777ێZZZv\t/gg+V0u4b.p * Z -;vǏ߾}{JJ Dϯ`/**:})~1せ*޷ҝ;w؆2 իNbhqMS%71 [oyΚ5+55u̙:::555<]]]W^6:K&ݹs#8Jbb_paxxoUQ~ #JWnHj*:ڵkF555Ae6 Gtaa!a[l7ojJҋ/ իWϛ6mBxcS ׅ  wܹw޶mیFemmݶm[FCqtcpH~z---ǥR)SfR" 3j)L&۹sŋ_~.%$$L2cii# ׯ_}vB;v옯o]]]JJ cbA¯UV/;w{ĉO8MR*))Yz5TTT<)GKA zg6mdVKɪW0BCT1S4ۚ2eFpp04@ 888xxxĨUVau)Sx<WWW|훒fs4$ʴFzZ0Qƍkjjv'Cx,v/X,.++CJKLMM Ð!C ]QQNnݺF]]!5j jW?~uN"2|}WCzE;RAAAjjE*""bϞ=Je///@ݻkiikN.+ww֭[''':tQC~/FK)???%%eը3gΉ'x<5ehA0.|@{^+Rr4<\Z"/ҔٳG3T ~~~^^^/d0o޼ ̙3+WԩӧmY6l߾}hW^{a7n8y${gA񙃋¨󌜗9E!pR4ZIgʔ)o8ɩb̘1SNU8ryXX&NxGy{{0رc*-LV^^=GЄ2s {СchߪG;7 OSįkN() kF7%''/''wwwoذ!33sӦMhO[[nݺ+/^88888B8uP`7<,Rq"i$]vV{G'N׷oѣ5iii:BFuJZC dRTR-Q\.}V@ab!Ք^)Q$c|rppppp|\q5Q#iA$Ib8ƽ_SIrLI8@c( O?ATP4 (Z4hGEq;988888Qǣhq(ijWJY=E4s5'gE Y#I- :!q|>?J>@Aʹ41(pxFSRP ((pBIR[+/h8>DBi+mNKJHJ Hh qEN&1L <O|رc'-˗SLH$lo0Qdر 7?zzzUia/ec׳SkCݿ%x+b-ӟ?xl,ڨZN9Z\ @I`R>Vˣ< i0 k^ۈkkkccc??2u 0ၿ,--í5:t۷oppD"YnZSoaad#$ɩwBBB<==O:Ŭ9sÇ[0<  q x1Jhwͨ(&L_@fffIA(jݺuPPPnnuЦnݺ۷oڵk=î]%N<)Pz%[[[bŊ[4+W>{ ;`<{{3gδ`x4PMԩظqX,>p@^Z0Fz<s8wި^yRڬ/fNȮ#}||x($,ycEXXXPPA"ܹsӧOiiw}׺ucǎ7nɺ +VqUV[lٷө?d7Peccr͛7GEEuZd>bŊ3fL>}РA?Caa!VTTp6mڤǣ.]jaa1vK.s ?߿6777$$ۛǏD"&LƎ\|? •+W饤DDDd2???@ءΟ?_X~}hh(l޼:t_N:>|v9>E(h)Gca@4xTO>+((pʟ_s8yǏ/_}-'G߿)))EM8P$mٲ;6l߾}VVV*>}ѣҥK={s玍 $HJJ={69sp71{ M鷵_y]9MC퇺;LF ؛/8!'!0"^a; &ِ¨(_"CG8ϯȿwy˯[RSٗHױKS7jL9q{BS=SÇD )[nghe˖=z(((hܸq-Zl?```wR++ۣC 4CBBƌ3nܸEx{{۷o֬Y*78n8Dݻ3L>m Xn;̘1#&&f۶m</''ޞ9Jzz={9rCb͛)q}#L<*d>߷o߱cSU%+WN(Bu$IKySqԾ (:L)s{O˸}f>=^{fsz><1#Vlwn%LLev@4" M =8accc Ą)J >}:Ϸsr2FڴV( $IemD]]tܹs3gΔ|+\.@&qQTttB`S%cZZZv999YPﮪ*Tʾԕ7a ._*++IdJ쓒Ξ=~H"8>r 111h pmgϞ͘1G'N\v-zf4iҁ|||.]m6H$gttɓ'V\Nekkۭ[7333f зo_'AFFFÕ/~0P[C?ڛ؋5Z0Dc:ƞ={<,f쾽wf>V}{RR.$^cؓaaWK{ZL-Jͯj?qc/^,c_iI[#s.]pbOq_7*=轣RtǏ1dȐsϙ3ήs·?{ݻwO>}$;t˗/yfԨQVVZVVzi===}}}\ҦMkk 6;88}޼yL+gvt񩇢(BQ___QQQ NQ\I݈ioӭC#/Nŝd3DDI)SVhf' Q)ҋ#LۃL?yԝƺW/Hd4 ƅ8bx$ku6|ժULC =5\% Bn.HsB9vիWd<|ٵkY:lzUQӗe?YpJMJ)y#qƧ1J-!*s=_@ߡ]~{ۋ/LTN2痢 c7Z ˗5{J}lɩ~|>y_\SM< ykɄϬR ĉsaf1ΞuMA "\F(@@4rΤqkoSw>2 zвȠOBLhT+hh RLA9k{9m\q#S>&H@'"O E-I\FA( -X㣄( B 4b4+h  B# $@IMAOIu񺷞s|PSJ~_FQ$Ab$ H&y8Nٷ3r'QI)C4**6dJήyϹiPBЂIk֬! _Jp8M8E;q4o98> zT\:\J=-ѮIl2y>cJi-5FC4x/W|+* |w(Ϲs444V\O??CC((%)) W`EZL[:=Q?{T+g|]loؓ8iؿhAȂ">>~b2c:v74nSL:Y8m}XS6ZPPb`T!E 'Rtҥj„ r(//gKNԠ"NyE3},_a'9~xUU{͛7t}ǎ.\P#rQMֶoߎؘ nݺr:\@8S#11Bވ/:I)[:¿EIIرcn?~>g)e[ö;* ._=,,vf7 ,X>|9蚜wn߶8o=ăû v~E~Zq×shơ'TTT ̌T!ǎ+))߿6mۇ\JvZOO3f8;;o۶ }4g>7:uZlY.]P;[[m۶D'"˄ KKK5F}\=ƪF%6[V9AIII;wؽ{_|t(<ǿ"J 8FPS8ӴFfREDDX[[5ԛDFF:88?)88B,,,Ñ*Z999uuuZ5+TjdpҥK{f>|95$7n܆ bĉy !++ۣnݺCEЍ=>>-7YEUUU!!!ŵkט;8Th HD.-6?zbHRT >VE aĤnX>m},hWV%rU\( D>>..͛QQQ*[ҥL>?l]v1vڅv8y򤧧' K.ڢ+V=zUÆ KKKKKKA;gdooF/.accs Riii9lذ$BctQQKV#O>=mڴ7oޠ3/_ܹshY07Yrgvg|1n?ٛo},? T_Ο??$$?<==Ϝ9뫭}޽K.! I:::I[t)0RF9~8;wNMM=y򤊏ɓ':t())|rhh@ 79;$S<==}ʕO>zJmڴ7nk׎U&ihh###O8rxϞ=٪<pww?wt588f͚aXTT&=zlɒ%fͲqttDj׷oǧ9W_ 2xҥk׮uYYYA4v?#!;wvvv :899ckmӦʹin 'N ǎcG^ݻפ:thΝiii*&L駟V^w^[[ۖSΝ;lg.À(R6SDWfH iGcX;r9IRSS>Օ݌~zDDD۶mя={Gϧ/^ Eu53 vƍ$33 TT4{ pvvFW[ڼy >}xMM $-]9g4 hvgaaСCu^ļmV)HJJbםr\KKKCCcZZ\֘3 q#98EM[nvXL4zXպo"a=}MOOpB>}[&Mdffv̙f\nӧO=z>+ٳ 6$&&6ðgjkk@dd$ ,((`1p;v 6=śkU500PkΟ?___onnѣRLNN.**z/}*u+rssKJJ/^<`}38AK:w֔TeRסtZGɩb̘1SNǏ֮]+D"KD62їwܙ2eʦMPes!4eR^^```PPPgnn>nܸJf@/8lһwo>EQT޽wލ*Wv/;&ˇO?ds^z555VVV̋[$+++MINN8p 3ɩgϞ_|񅆆Ƒ#Gy*XW0Q[^+/iMZKI*|R#p-3 OBQ筟3D ݺukĘ1c8[6}۷ѣG7nȌٳg>}>vҥ˖-9scǾxJr̘1hv@@@iiippɓ'NuRPP`kk}IfSIIǍuƍ˗/?zUe#kk:| WN6y0eQ %|Rd.H)z)BQa0f3Q-t5%eB9& y>A*1 [:O gKE}ppp൅|%P8(0Eu}mD 88s'xR#S<9)pVF)q9T`MH0z2BW e M@Q_IRhNr}vz_j SR_l~FiܦZYcKkK iQeT00/@qRFB)h1i M 凃ajj! >}|mW^WNP,lyNC.):sr*T'NCOk1!qRJ$OS#uqЦhWRq|><\NAӢ, 뮬}I?x8- 33Yyqn;lB (ER$Q8$ihĕڔR@3988?^)ҟŌ&^z|Y7{S, ,pbOq_a:ƞ=3J2_d}kkhqpp4 BNbJ@ @c@QSZC@mg@klMw|D o2_v^>|9L?֢[ƺ>pB'4Qy-w7!0EQͣRC;98Xx9.A'CSf/=iÙn$0>jq`@h "qHZ2su';3]Qspp|<n>[=okiak.]KUC_`W刹_4/{A2)IL|պܸOߒ':X__QZ}ǻnfΒe\u:X>~K A`MSEc4ф@SIIA >=|iM֔BQEYS'~PfUWTG3rZ v0qK c\IQU; }Vɉy,_OS ꊊn~5C"aN@`>es^z@TVVjJ(6(pD0[n(88>m0 i ))PRIiwZ r9!)?9[)?צ/@1!u&M-**KIgڳ(l,bŠ"SKn.}5 YgݱWn&;ڂ}<<}T__˗/tqqapȑݻ#ݺ{˗ BUW[[/J\jգG_R={9rl\.D7nܰ{IaT*NӴl+b;wn߾}g$>xK.s ޻wo0 ~EThbbBXRi]]ǟIVKb߿wɹsZf4=wܠ̬|'|bbbbffױcGcccMkgccdOOOL& WZvŋb R‡@*ꅅ98^-$M'p#p0!64Pr)\FvIv$ڡRs>o)%P3|4Ӡ7_B"Mu̝}G]ɿvESi !Ϲ,sݦ`ho '_JwΝ;CCClҡCCCCH駟2,??۰a/BJJHH߿qpp͛WZRܭ[76P{2ɓ'ώ9rPxĉE$F=&Of͚?!daaammmllb ++#G@FFszyy͛9ɓ'HW\i]<{{{abdd4x^zm۶-00ǧcǎl ^^^K._Fңiqn ɹli?`98 XD{F j5 &f*D4_Q㝈hk99 j?>x èÇׂ*Ts9s.޽&;;(GGGCCCsM6M;w-@d2Q>|P"888XY5]l.FbbR|I]֡CggV4Cvيx"ˋjE}}Ń>>N?pWwhoYOjlL tZT-ɤr-UIL%𶖓 >x们;5ZwNwi(J' *QQQ0`rpp8R(6*5.kT񐜦a( a{ualZTIZ-a#COʱF9I?rrAR4RWG@$%NYqpppppS4nb(Ch$X#|RBPoD7\Lazi@ 1#a4">%xevg m+ ˀ0<.`]h@BR88j͛7ϝ;?8p@; &&&22rԩ׮]κ{.PwߵlttX,N_sss@۝ ZgѢEyyy͛ѳgϖH$ڹ^WWP(rss:zjwܖi8..n۶mMɓ'_qp $8p P#5CayxYz9Phaa߽{wMTznݺ9s?>v&wΝڵ322zqTT2Ҳw ֳZuI711i[[[K.dLi__~tpph✶9Eݼy .R*6lXtiǎ80v&%88(p}]# `0\W@"z<8~e=lڴ)7nh IPoɰ{0~ee%{z3gz 6mZvv6{hѢFCx=н{={:--ml˗_~9{>}ZP^&L0LFFƂ 577ݻw```@@뾕ɓ'ҥKFFFVZARmڴ366vƌ*A\vsjZ4?vڅ j'$~#GPJ:p˗Ν;oߞ$QFd q`hU<h6qrr;w.9oݗex!w }ӅBޤ… 5$++K[5.\0$$Dߟyʕ[6tbAAB|kS 555B; HN8Z644p.# 'Ol`` 1 344$Iܜ$k۷ɓ.]"cǎ*J,&&&틍l8qb֭jZ;"tDDDNra<<<4VZBT:u߿~Ϟ=8@YYم LMM ٳVPܺu˷o vچ ی MJ5dȐFWWW''A"@]]݅ u_/&LϷ[vI^88R&S2 D8N3p ชf6,:::55U"6˼tRaaaP>?g+VL׳gϞ={MBBBnݺoܸqFVP?))oСClByyy۷o9sfDDĄ ؽK$$$|7l ǫgcccׯ_?zZ733VWWO0!''jool2L}}}~g...nnn4MoܸĉƬwJ5vvj ?XYYyĉ-[LVKI&d/ja棏>:w\qqH$222lhh(//wss355ܹs~WJj"0 +((`fܸa166 Ś RԩS&MH$˖-;x𠯯i\]]_846WU8x<Ćuf0400 E|~H" mz|| ,2l0ygddYd2YTTԬY233@3l2SD=zˏ?(=zvڹs';+]d@ ۰asNNNU_M̊WBXX؊+Yr 8g,4Mo߾=...&& h046 a!Ծ}:™3gj<}4))رcњP!O>-//7o?~J[䏋wh׮]UUI>}5 M@41I`ѣ[ŅՎڌ?̙3M{N4i߾})3glիW^΢iyyycƌ122RdW_hrqqS{رxGPտ_~x|||PPPk׮iTɓ'|XaÆ7j<1b :*tԉJ6nܸ، RX[[=,v"1R<$I ,i޽y|a̲OZXXYo߾mmmmjj]%cQy ibR(4 R6b/0;PT|>wuܸqں344b۶mP(222jPG2ܹs…¦Mv7nh[~mii)j_ B ,[lӦM*ٳgo۶|ga'k׮2ޭ4bllRV v~%ux 22O>ڹ`mm-r޽{?dݻwMMM_seee6wMݻ1 ;yd.]R Ri4?Z/IOOlݺǧo߾#6pf { p0`T$q OMMMG1av4##E'mNJ>|IwRYRR">v-[L.SǾGFF^|y…Ǐpss={3g~ X,NKKk{=&ogggP=`v 8O?Ž888'~:z Y1* FfHHDcƍ5@XSttt^9={ӧ_)SH$>}9swFFF;vXdɓ'ܹs7n_re`` |7nfΜcǎ6˼yΘ1رc<oȐ!MVRRR;Jos v^! %TN P#BF~VB U*~5M[!6Mqh&UZɢ(JsuҊH,My0M$a-tA89888^/^d᱾Vnݺu&eW^]SSsaBIJcƌy&NJJtRTTT|||TT_R+WILLLs-a„ iQCUJDr9Om.*Gkt… ;w(++#bǎ_|.[YY988=zt̘1ܹi-++='H ߣG_R5k}t]tٲe1 CM6m͚5VZp={ٖ1 .))b98iVmZmMi+"M.\X~oֽ{;={ pajM1&}̋2@ZGR#.wkϊ͋ 8֭tVY;V8\Ͻ-Ҿ,׏ShhhUUU~~~UUmzzzMMСCutt:t0h ???[[[???+**>c##˗/1cƍ7KQ葢(ِy-|.cO1hXZIsa޽|+//gZ0 `lC4MB 44;Bħ 5e ^#CS] ;GEg_x`w>:h'NBp簥Ö jE|~;z/ jZ}~ϟzm O *?p@ {niT5 5l/屙?t=:tЕ+WFG-^QS,==V^^~Eggg\STvڵÇ744hr#URV*o6I~m 'O={ٳ$` @q\pF`{`gzeb A]`ũOSw~ $1d΀98"*-0Kk#FN9AͲ:Ϝ뛓ɾ#7`´ИP}oDbĬv=Fo88;Ξ=۳gǏ~7{^PPz)߶mۮ]H/,,IMXlKkg 5;{{zxx jjjB!8~==,LVUU*ׯY*++5 Ǐ/_i6Uӧ>|xĉ`nn>`EGG?A0@8C*%C@IzmMdCU}sw~5窀|{Q73su'S>zMԚ#F@xbxtvGaM;! Nj?Ԗ r+9WTձW~e+`8^DbDqt%>0555>>~ء> ZV/i5h5S #0^#N0TooW;!")"s PGVBV181;?wg+jg ۬OT 4CsU"N7n͛7v 'Odc=}T%_q}'lnBBBNN=##ё PjժEuЁ-PCUUUvv=ŋ3{lL֒HSN533={L6b)!a8!hhBk9ɡ;;._D| 6rvd.btvģRhxyt; `B841FC<#0zOWVVΜ9s׮]MF;vuegg6]wC< O%?'h0Pn3Wv111NNNsҷo_M@K.ig=zTվ}WBX4A1 6n8n8MQFAH$'NDDD)jP;Yddd ihT=hhOjUxiPWS/qm! 1G V8ÀRӍ2ONMMH$AAA jR ))=Ӝ+W.Yy}$IHH_122ZѣGvK.511IHH`Oǫgcccׯ_?zuC`aEV'GǗ(e>~nI.]w޶uCH Q|*%ϧ ɿ?cܹWI]t 6rgoYW$ITUVŻy '==(j۶mk>x )D3JM LO)h%TjݝuIDFFG;WT~W$///<<\{B nݒkMKKcL& wrC^P έ[h spppphqRcW29Y/'$RR"%| JY d.\P*3gdKҪ*GG.3A$$Ip0դ RPPp޽SNegggggGDD?|0++kϞ=UBaΝkkkR)rmOOOcc㄄:𰱱prrVVVA޿LJU@u^^Յ -,,RSS֮]˖,,,.))uVFFƑ#G222  E=ڵkx̤RiBBB:::))) ׮]{c9vdNirppt!--tĉ:::ɷO69/%%%lte4ii޽[ꨬ,;;";;;77Wgi``#\䲾>33C7oތmhh`'O|ĉaÆ%۷oNLLҧOB󳳳޽}mmm%N.]0 H$ϟwppٳaT,\Gb81NrppDDDǨLLL.]foo#Gobnnk׮icbb.\PO>𰲲֭[tww 6h㪪$I\"k077xǎ_}UDDĦM4]|yu]]Çsrr\]]%MLL BDff#0Fy  y110 G ^^988:P(mӧgff0>3f aӧO׎ \YYYRR"Hw.9s+W|qK999&$I!+(p”)SN>}ԩR(++رcjH$D2Դ{]vo v*V ::233qOMMݱcT*422wF}? )ɪ69^-lBٌ96---566ǧO666l?F,|A]]q 1c^;wwwueeeiiСC|ݻwo߾=nܸ]gggcW_DÇgCsslsss"J:S?qP( V(ݺuqsscg>EEE ܹsGcC B3 b]"`8Јfh h RB_!w?Ϩ`afh@0p C ! ۭ;{イ ?~IH$>|xf-QYY999˗/gl￿Lwmv>ӝb7"6ӝ111NNNsgQT .d WdMN;wtIrU`ȑ?RѣGjÆ [|ѣG5)۷z*eӦM/, eee7n7nQ^3~D"9qDHHHDD&h֞S7Z `fSSS\$w噙nzѐ!CN4I<Νܹ˗)СYWw$W\駟***qqq)\]l߾e HKK.],Zh2gϞsYt{4W(ÇI)akl@JVΝ;kg=z4==Ʀy^zmnܸ0`ٳgǍm68|`` k̽|:i^^^iii;wɓGn?88ԩS 5j̙3 )..̙{n5ҡC&%%inwswwݻ73,,LJٷoߠA 33`߾}VVVE8qb|||\\\~;P( Cuuu=ua$?ݻrF9vX5M88888@sFEB !aA R|>ڵq'|VVV۷ )Sܹy ݻwOJJb hX~^tգWXaǏO_W@@@JJJY_榧zF$U*ժUf B0a¡C^iӻw﮹eGgͯS7N  G9YYY֭J[lYpp0[~[f ZTTuF-hyw>k֬-[$IغuH$Zn O>wם8 D*f y44xtgK0 a\`W;988qp YNahvhg#fϰ a$C g( u4$ O?| I@jf888888LpVw28 E3j ihhk)W,7IH$-IZ !$pÇokkk[oINNn˚=txK6$Cs4C(,,lR7]JKKgG؛1f/ ^ըYRRRJAM͹{.M?gS[[+Zy/?(_HLLs+=MNNZ.,,ФC @3J QA#\dr GGrr4K Xs!BU(--̬ 344dlll(}vuu|ɓ'y<ލ7C666bxŊC4X]]]XXxi@pҥΝ;feeeeeeEEENNNlż]vݺuc۷ܰa,;w q|ٲe&&&lz+iiiX,.//}.X}b͛'Npuuvww?vXaaaeeeAAj~m9'NꜜB?:FÇOϜ|PIDGKmWbIJVVlmmًF_.5JOO/>>~ڵ2ʪ@CCH$vrrMNNVTRveeޣG 8]ta%i;67===11},2 222?^UU5p__߉'jOў BgϞի>v8qZ,Q;w<䲲2 I?~z.\ڳgO;;;]}Jv틈9r|STTT```mMؼyWV?ʫW>|811Xv駟>}:88onRO>swwҥ˨Qr!m۶ggg4 g',-- RD"yW_}5{lso049HnaXBBB0={:>//O$]rgϞпʚ>iLի$I$4dkk;ƍ޾SL0`$$$Gttt;9>bɘ1tiӜΟUio4vZ]]]P(zu62: ;wNII޽o߾{Y[[KҌ >_YY{]6oK\.ӧ/N@G]t)//MMMDGttt-,,***RiEEߺu+<~8$$A__?88٨5MMHffٲe[J|}} ?~ܫW4蹁z9sTee'OeAծ]#F5L&cI+**؋F0RTRkӧ [Gg``khhN<<<<==LLL<== }||ڵk7`!'' l߾}}}BsQ*>>>>>>ެܹguuٳ/^lٲz7orHd630@Ϧ}C!07hEm gϞ e_788Z'%%ʪ|ر 8::;%%?vvvuVPP_|ѵkׂ%KӳW^4 `bb3aÇW^9rĉ'թS'===[[&VK:εO#6UƣGW?;,kgfvH^еhXcXcKQEAAD{gxo7wsy||vN9sf8gsa{nI޽{' kkkXO]fzW6|p'* )GKK %N8p 1l0~}Yƻ}vPPPmmm{jffR{YwҥK zճgOCCC//j~-AV]PuuӧOJKKSSSMLLuDGGWCCcŊcvM$ 8\`F34BH.3v' ,66VꊊTqu!KKK\nii9tP[[[ww3f899ןϟo``.JX"˥RiYYVVV&&&GZ[[GGG|IښLLLtRRRq ++;wq5kkjr`絶qFޣG777777O><~O3`3PGiϟ?x` ;wq%i*oرc啔7xzzv0""P2f̘iӦ!^h"SSS---ww/}xOVVVdd$TJKKaJ`J \ Ba`|ҿ~hD4`> >ꫯZZZO~!b;v^~|x_~>۷o_z]hh̙vZ;vYXX,\p…gΜٷoB( `˖-~:BСČ˗f+hll\nݍ7455RͫV 3008toNjq0ijjvĉCBBlmmB`遜;,!Q\\6jԨXBA8%޸qCMM˗6lPSSc;wS25֭[YYق KIIdw"HD@IR'-S(6ǏD0?!T\B fPɕ37Z͝1cl3j( w!oooA&&&0^N8>AŹڞ:u 1c$''KRٳ'M}q|RUPuȑɓ'3%YYY01Q ,$I._!А ׯ_BBB(''gРA 3tҥhРӧO8qf͚eaa~ƍl)o.<ߖ/_Ξ={׮]_PP?gwl C4!x;aXaa@ h466޸q͛79s lĉe=sΝ;wn[[_~yKٳ{aaaoq|ɒ%c!l9畖l޼%w//^HOO "bĉux'훛g_c&xha!Í/ {e%8wܤI:|Jx"cN:޽{Ǐ#nܸѣG~Ń ۧ>: y˖-?#]6oBNOO7o,±!I2 q oooTH xٮ]`6''?((m:tPѣGÇ#.]4eʔYf޽̙36H_JCCϼye<66vݺuSRRDspppp8!BD'BF80t/\]]gΜxpM;;;&3Ð!C>wy𡅅|r&BhΝ355 [f ???ʕ+Ǐׯߋ/wBŋfm8qe|}} R!~ 8I# a4"hDP)8FbM ɻw4:rŋۗ?{= <855 s>TrB={v=|]nR( c1ʼn⊊CN:A,+!IѣL)UXXXccxGϠIT 3! d4MCc{TYPՙ!B5??}{S44409n`AI$ JsrrBLP#9orrR M &AW*HI}C;lXS?Vg($''+Eb&P^^sU :L* t#ryWVii !"QB4# >Q[[kee5iҤYfAmRR9_]]^A TZWWtKH”|ggvU؝a\. ڵk׷~g17ᅡ0sƾܱcݻwmmm/].B\rNcvGݻw/>>ڵknzQyy9䘅<{g ֲ߿Հ555O> %(m۶{>|8::ÇJB?~<;;>d2&$!$!޽{w5JnBOAAAY&ڵ-::R9rvTQü<ՃLw%&&w8bqNNNnncrrr=ZTTt9&G D={իWIIIPz\O>%I|***bbb~֭[4OG{˗i dGLB3gB]kk+;j.::zÆ qqqwkw'OTnjjb6bbbn޼"K_tt-[?jժ_tT<׮]{urrgbcc###/\{u+ׯ_>}#rrr ]__IB2MScA4M8Dzo>xܘ[OOz 1: /_`&\`zʔ)֭[мtBhذa>>>ǏӧOHH-ݻ5j6m+d||0JUUUs #P  ={f Tl^xvh-P]]݈X)0,!!ʕ+~iaaaLLL}}ѣ۷olllNNN}}}uuuuuAD={@$gϞqƉ'> X\SSciiiccӦMۼyv\|y<|Mmmmvvc׮]9rdJJʎ;0 &I722*((7n$h LJ r…;v`ֽ{wP|&&ka@+--x۶mHNNѰ0#"":3'O@~OOO@p/e?IH355mL԰,&&&_~ԩSikk'fffڎOfgeS\\lnnaB(&%%<==! o*֤H 3###---@vvvvvv+BŗHiB&IDhc4B()u̜9QPSSx䉚fuu5, ggg;wn  #g@΂q%媫3 ~O8EuV__^UUUSScPqaKFTWW3JSRRΝ/rrrRSSՙdCuuuYYY555 ֭VTTzyyd2---H j6r 38+%oB"H3EEEA\z/Yʪ*;;;??]v9::>} ''7o޸wڵ>333;;;++KGG;wi&;;zӦM[lQWWg<$ ԰_]gyz @Lbdd^ɓSNի-//Ɂg$B<3gMIIIRRR=$ Q3G{P(urr߿?MVPRRb2x`'''OA|>VsU<ƺfSS3f#UTR5]I:aEcB@L#DN(_'h^*:d2HA@bJ2| gǏW$I2/8 _; 1K.MLLLKKѣ #O2cƌvj4P566z|{{l߾#vx[[ے/^謆32eʓ'Oڳr劫+3f̀+W[YYT]]-A !m6??;wnذaϞ= Pgⶶ6sss%0,!OBH @ÇnݺU<힞sb2*C;Do]I\A!qOPL8!)Qԡy撒&,B^`*,(lֶ0fgg׷o_szzz`]bbb"Mֽ{pMM͊ɓ'XQB1}ǫx#G.YDKKkSNٳg[[O?7kgmm|L̄H7o؞{Q `<}t=tի{Fb\nݺuҥ%Kݻ~ocuf[ⶶ}3R#G!IףGH${ BG{͕H$$I^r*+V]hllT(i/..޽1ꫯbcc`?$,=JhD 5m!'HH <S l9>^:Z[[jii|~ّiWWWڸ{STTT@QTjj*;BIҔ+JezzzL.&@ŋ111uuuGS0fSUUTF,8.ɮ]tҐ;wC Ԕ0~kX]]l֡ O>ҲgϞ7n0M"DYǏ'I}ڢΝ;WSSs…+VΞ=3B 00Sg$EEEL5,B(77СC&Mz1AW\D#I( Fx|||߾} K.͟??""Ҩ߬C:|*`&11իW7nذaìYi722ͅr{KgpbӧOgfޣ<5.K\&ACB#aɏ7:㣧3ӧSUYY9rHP(dO^tbLL tZ΢k׮}S- .t( .ӦMcgZ۷ѣGBГ͜9S]]=** >Xd4`/^,Y 3f;w.%%ke$/^7߼K !5Cgb&!555GGG8QyyyFF&]tfW$1x>}8q"==]*󳳳ѕAQ&ׯa wkkΝ VT.]{T)((hjjϟxO>3qtT 80..NSSs…]v]||;|a366x1'߻d229|\ eD|QIFIJAA!T*@988888>&x$Ep 4c<\8m9888888x$EapģqW(( GSФ)ho(OE#F4A "ix8A1ssppppp|T4Q0h Q(Fn5jjjkkkk ֋f9f4h=}CÇud%]\\t2iҤw^recc#pmll\xq׮]mll \2{ >Tn-CgVM*,,L 쏢N˗o߾充lIwIbbbA臨JC ; a>7{CligvX,iii8W%ͥBajl?V*dHiibef% ݼ>9]0aiERZy&$"""߿v .}gΜy͛7PYYɓ'B?#r1.ՁG*uC臨֔8sLff&Bh } .nJJʙ3g`KhOAAAdddFFFyyQw5%;yf6ohhضm[iii\fꖁTBpǎP rrr?yf8ړ'OIH$$33"""@+!:Gcgp񄄄˗/3;zɓJY^~H7440Oa|.\E%׮] eݻw/22+W;iB0JlD~~~ZZZ ёaB[ϲQRR рcǞ9sZԩS|ҥKNdwB7QyѣG ݻ3qƆ&cիWꖇAL>[H$De˖8(C;99Ar|kkk;Ϥ(***((HMMݹsgvvvjj.\/d2YPP`ޡC@',,I 0@$u0 5 R ڶ 06**J.+ ]]]]]]ȨE*jkkC:EQEZll?n޼{UTTtz"PS;wBuvD"2Ƀckk+<<>>fffuLMM===3226m<#IQXUUUcL@ xh$3<<eǍ䤥hooO1N;F4008 4M``W\$Ə?zh> !gϞ/RMM)]jq_~ժU{ QPdlݻ$fffNNNMMMuuuNCtΜ9_~ѣGW^}E{e2Hjnn ڶm6l_}nݺ 4EGGGSSѱw3gd+...FFFSN}Uگ>|8,,,55uc;IؘlٲMLL___?d YB斘cccO<T]]啙 jkwa͟?_+FS2 zӧOٳLuB>Ϟ۵kWBBB@@)_~%BL椤$fVV}||Bƍc~j?Stז-[Ƃi&JCCCWZZ駟ѣ3g422*//WWW(ѣ> h?&--˫vС"}ݐQ _q| ϟG9888;;Fvvvqq1š&(DVJ 7&$$'$$@Z$wܹu}͙3gʕ* so޼5\ޯ_v.ߧmUTR*hkk'&&@~ǂ[nVWW744A7)F4!Lx͊2Ǐ;vYr 4}ϟ3SO@jjOLL|y\\O?T]]=o޼ݻw  ӧO7o[*11, eoo[PM(޺u tܽ{> V$?~㢢aÆ~:!!A&=zٳzzzyyyUUU.3֭(JGG 6ڹs?O}҆ ҳg+ vG0~x/^޽{wڵ[lB=zVmmm!81N$3jky3?ƨ1O 2C&*ZUlkk5TLᡩ0lhkk2ZZZNNN ,`L%PTTT޽}ZnnŋO8q}//%K-ˠޞ7`Er###>}J kP}|eG&Nl2___vׯ?ѣG7nխ;Jnzxx6lᦦ9޼yӥK<ugj@nlmmBСC$I:88`1cFIIIIIÇۯ8>mڴOڵkGQXX󝝝?)44t}.\P^^޵kWP[+((7o^lll[[[{5ː]tILL<|||Vckڬݽptt~zttvLeSCCCSSqjdxm$ރ7۷;O>iiiVVVE 8[nJ+j8]:t"TI__=<< >OӴ9{Ⅹ)3a2oGGGfyxҤI`vPz?-7jԨ~ݿW^"殮ӦMKOOsuUb1jjj޽[8p!JAssQfffCCC.] "~QF򖖖3}Xbiqq1S{:T ={W_}cddpiѣG:f̘*&HLq\*¬/aJ. 4~.]yPr(qcii s*3f ̔%!!\f߿ҥK~-P*_ T :D"o{{{__ߙ3gB9#fҞ544|uuE]F?+]UxؓNNNwev/..}mqq1)B1H%Z30sVVV&M5kt"III BM0aʔ)#FNHH駟:;Nsss]]!zM6o/3a&?OXXضmBCCy}:vX&$JZXXxzz{[n_ #N[[[BB¼yf͚rJSSS$yh$h!ip9N߹o߾}K-ðݻw޽[UUUvvvE :RZ=pŒ3೒<ӦM?`% Q[__Z[[ufhhسgGAO.c\ZYY-Z&M{qƎ /͛ øbXkhh$Dt׮]###?3}}}==UTT466.X6#IrA{OjrVcc atq|ƍЪ0x3W{֭@~U1c9rsss]]]2{" bw z㴵ákgΜQ2:+++nZSSs5>/H`5j^xNDQ\F vȱ566OԙZEEȑ#?߼y3//aZZZp.g&޽{...JTRidW^^ÇKRkW;PݰaCkk+>B9rȐ!gJKK s=崂F8p$H)(h'A0"sN Aw˗g޵kNnnnAA?+p7NE aAQPh )_&%;[Q777Cׂ?q$WX'44m4݆Bϖo i)iDQ4B8oxj}  B4(D#0^ ܜ-ǿcGh0F"HFZ xjd88>U$~G؊RRR”4551UKt#"TZZZ[[˔$H$\,j`dLikl&L2@K{:0a 7h/{UVV©ry 7sDӈ(#Q8P3"hHch˗/1蓦ipH$q[lqppHKK+///))9uTKJJ `W={jiiyEF߹sD"ٺugiiU^^ioo!6n8lذOOOz'O6lB(>>#6lؠsNCCබ6GB m޼y„  XQQ͛*"+##رcp={?zhƍ111VVVNw36xh׮˕;4iTTԜ9sǎ 1L%ȀT|2,99pҥ dqԳ9bĈ$ vgA\paذa۷oߴivWvvvZZZee%EQuر9xQ8EQ4!ax=Eiq9r|-]tܹOfgzAeeөSN:~_+++H&H | ={^|ɩ866^GGO>g޸qĉ?NX,j-//)((%z-BEYZZD0HTSSÞ KJJ /vSSDgeeYZZ:ʕ+^^^iii۶mJ\YYׯgy37 ):#;+ooCʤ8;;655]rۛ^8WWWuu >onn:X$""חiUc$=z#44t666ՇGC4A8McaCbWM \@P8@ cCPhkkslx<{{{P]l/HB$#gll\SS6|pfIMM8p a. {衫;qĘLtUXq\OO/!!"!!A"4]___YYYXXȬw o6˗/E"699R32LGG'88XGGG(_~!TRRS,bccB5##ҥKRUVVfddDEE)-K*DDDs_i"Ec#)&A!߇iv-[u.\x;T}})ST'z~W\.Yhs23222l=zIP?NNNǎcfA`hkk?\CC#33@GG ={>۷橩fbbQii)sL֯__O:5i̙3GH[[x{YYի;SMګW/eDf_G8F9_D"xND"ѨQ >aEEE4MWVVJ$֜ .،1-z[nd:P#9ThE#5)6OaFֱy?p#.''^<ل2MMM#""444˗/3[6662D;BeJB 666o߾%`S3IݹuV󅅅R.O<Ϟ={ `Μ9ŽĘ8н$I333sssf-iڵW\ڵkDD?uTLƬl)TNt0@Vzرyyy׋b ôG8lذ 33s2w} қ_}D"Νۺu+ !^^^rl֞={NSS='Np--r9ufNrWaT(\؝N'Ottty<^vvvRRR{9)))122rqqqqqinn{fz~ǽN ɷMLLfL}vPPݚhhR JWqN}^zd+WdP6k֬a' {{{\.2eX,~ٳAuԨQEEEbxK.1[n񺺺gĈgϞe=x̌)9z(BСC[p!N6m׮]]NϗH$"DXXnϟ9sf```aa-/Y455mٲu֭}Pq]va^:,j׮]~~~eeeرc啔Ċ &LeK.xkFEEeddhhhdeeijjAve:fA`fddT&<#**[l!Ir޼yǎۼy3?ҥKSN1Pnn˗/<<<̲444mhK,A͛7Otu |w} /~$S*WqEIas7E/_^__/J [Ĉ$I2")))ƷH$tgg~iѢE ޘ ijjbKt\.'Iq}}}&5Njۀ#pΠӳL{qBߟ~y83dikk+?ڵkWF(Cf͚bM! ǩhF͛7wX??})zxx쳙3gСC . ;Kl۶k׮=rү*(\d;w\l|}}[n͘1cƍ3g\f滜bb"B| KOOH$jjj{qz޽>M\\ĉ-[뫺!ģ)Q44FO"@4z78BLTD"WZdΝqǎdɒ+V03#2ٳg_8tL6n߾.YfԩSӧϟ8zhmmAf̘  rKKf qiӦ1gE!$ ?Lb 8I#> 6\Hi9( #hP]wܹs7o3fL۷ãիWqƱxWf!dnݺl &'eee[l9x?u˗/gggWl `l٧{ꕁ9[R)= ۶m[hhɓ;+`eR#1B8cI4ͧ;'zS]]Ca_|񅍍P( 9s&|sQWW{XWki8Xj| (7Gs']CVSSTWJmHNiiƇ" ^9"4#))Tlb~9)C]smpy88888>fpEBt "siE,# 7 K: zj{cƍJawfΜOHP_ڦM”*`Ba "x(D`OГ"(֓ "%"^첺nk!euVs{/I7N B!QUgcUtA͞(M(N9UЮFZ̩1gqL&Ō֙5LZ7gggvȔN^ouu" WUUB**Bd)+ )e.GUpzKא)x<y$3 f$i}}¼)[sQ|>uӌBF`*4FO&SSS!]HZ Dɲ<===SeEExÜG~F44-8MPSSc暝p0Y{{{A DBU=/)cTU͊)?Ⱥfvk<@ PYYD٬]e\WWws ĉ0&NQ'''GFFƙe[[[ !@*.T߼-S'eݴ ]r{Ύ sss]>h4ʲl؎<;o@e{{{xzz:444$BBEny6-jί>~>r~l0*;?+*9NB>::MRKKK<+ lViii}}}0XYYI$~CCCcccmmmFK(Z\\lll΂ֈBEf endstream endobj 2136 0 obj << /Filter /FlateDecode /Length 2518 >> stream x[ˎWa="Ad$A"e-ڭv˹sduXSjOgّw)(ip#,Eg)~ۯs^= w? qPyu 9=彧}:y2cg-=QǛ72hOy%;Dv.;/oe)|g{344 muTŝ..=Sr5U>O<_^.Z߬;8tNhwhlxa[}qĖ3iϣ S6G')E["cD[x8{mcq&r69B?sO.u9Uht6N S@>tvB8˛/FrpmijPǒR|WΛ{*=˞H.Q^ \ʉqP%6 aA[[rb-,O,:euFt(ei#FO4XFRԟ6(ڎ5d/KevPB(m T^ڜƔ mȎ-gɟj;br^隵[ }^?y}5G,Ba?5/&[ AG<άl; 5GGN[ym!mCKس#VLƁVØQ;ټoվir×+j2VJ`Q{Qyhe}m_ "Vj"[DB$73T(*vaRujybf<䥎@2A[Gx)ڂ[ } t.3)LޓԂ` %L#@N,0af5|ɧ zK+gFJaüO* ]KaHaφ_8wlcu gIka12po;Z]׫~은P22B|! )=Ch?xV##3gx# ?96YT ?`,f^ ߴH8@=I;.c4Dj?o9F~Rg:}tLm3ؕ7Q?qw֣pfM1_A:#dUB$yq!oƁ,R:M X# Z"h^HZğҲ%ڜ - X7hN9!V/ps0xWc`h`$KW ZC*0Q#`2a<6f禖B_]NeQ)\)3?rL|DқߢDcG'WJ#NezkJ(=.#&9:ap'@rOM;Td:R]V {0-mhhZyżXQϋeGDZJk,ɯ[[9MY;=5&4 Gy)p1]"9XO2ŌΕhc"7Xc"%uE՘XFQz0;iW{k#;]JKeŸ @kpQR@~f^<P vX=9LH 'ڄO-4YM_ڏ7t>Kyp}50UmñAv#۝dk٦Ci mEIGyλJGOH@3H:[1 YX1-MC~ǵS=̆,2g^D{,ז12Te3/ tIT:8xu6v{>_d endstream endobj 2139 0 obj << /BBox [ 0 0 336.782445468 80.879867003 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 266 >> stream xmQ;NCA n(cp( R C4V;g%>< ^2pd8x?luw8A8 c}3x۶$ ,o}oc0gфFRpAq/Pe R 6ibYȬVBH98 +Bg+Hjr3VfK*Z/XP95>S@t$mˬ ^9[eγUh&ըMaCXjk:ߎ=<e17^~_|]j endstream endobj 2143 0 obj << /Filter /FlateDecode /Length 2982 >> stream x[ˎWZê4`EK0 j"e햻50-JzPcedd?bXۏ$Bt~q0`Ӳke3`lOdsbMˆGGz^p?DSp*c9kV3akR6]dC*~;- Rp4Dz RIqy{p֓W{Pbw{|b31tAjX u;S@Cl*5%(kh9'TGHзΫNW̎|,JȊJ4gHmw0 k0|D;So)Qζjy}5f2_I8z:a];aGr/g_Gݴ( ^tpz{fQ}?ExBY9#H :|_>(z 6PU.uF BRFأduS|Թ8F-_THSn a,/V}{|l3hIE++RzР.`=ޙ= s6'c%TvO yB.|*Dr]=XE e&J4JT)_+GS-crL~'ެxJe7_ zd+~06RX|lP39y9)|jsUwԔ,:1:.3LP=\FB,u2Ws+itTal):7ϧ:5+IXMrucy*U:&os Xn\ ަXaMv!+ =ΪW6GOjFN895vkM?&#B8:3 $Qt= ɔ-Ufb;m*A2IlP\lZPoz2cY0SYW)yէuTUbG_9{lam|GCrϗƐT.Az}iUMi;j7y b`;~j 2 :V-n /m۷zF'*PcRc4Pj@!O @zܨ@}iӚS>ćP6?g9w +.cVło3TȪ ILfg{FF wOʅcCzP5h. iAݎ0@ȶ.-NlfS@5Oul IG*ub+o\ڡc~M/NSZENlDxpwa'g׮q_Sp+@x+t޲iC {u[%9sSNjn7 = SasEeX12S±^amM|Z瞠U5TRr #(Kԧȴ)E6:1`cX $dc>hCjjM sl&/7BR g[&gUl\vť/ U rh̵w"ls Zٶm(OU5(eBMU%LB[-/X.kKշNӛH^A܁(`5c?\HyKkG5rWiX9!)cmjCbQcDk`s7CFe=BgѦn6Ѽg.R,̉# $F>h!=j`LP-_wvB(p P2tSNgj?]kp~4i0e`cCM[T+4d0Kyі_d⎎qtSb^[]D} fGtok2R$ޛv"k@ S _T#lvEbpKZ.v}02;4 ^j Ziզ"Qʹ-~| 8C$?kKC6<@Ё]8׼@jŨ/~T(־Cp> Pf#Bk`{|mApfg Z ӧ5Aҷ_ߌ"؀QB(@6Z3GG zvcKD6 \.% a}k䷰ ыY 1D4N1QhBچxVgCFIznH8 Se"= V۴?{(4C]==:`-vطv(wA|}@:"YL6'єCϏ{Xؠn=@Oc1vؘ,?^q%@IJcsޕt2Gg){)濫1O endstream endobj 2144 0 obj << /BBox [ 0 0 196.698203271 79.39973026 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 263 >> stream xmQKNC1 ްe TBbU[V,>ClP%&!Zz[%$z*GƘٵw0vM"Japj{V42Xlف{z!b@a2ь䮐T^0+,Z2蝥dƢhFݭH5 eGB3LgBF9S(FK;K#mOF;~ƹ[+ endstream endobj 2146 0 obj << /BBox [ 0 0 328.570655452 77.563658984 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 262 >> stream xmQAN1 pe;vlJHREjUʁ,(JbqB@"x6^ImF* .>_-s{o#3W߹@p_2ocgh#SUL9`J!%L<-4q"0{d*VbS1J #Qzpˉqp1r ,@ Be0M!0l52\!2^m{wb[ endstream endobj 2147 0 obj << /BBox [ 0 0 200.485514526 79.885351198 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 264 >> stream xmQN1)x|%&'eɖ97^6-}P}ݯqxuP-HG2PXNN_/z /H ol2[Ƙ٭g0y@Gw8MpxFJڨ:928{yc3eV8,M&'(6dсV&wl%ڒRbK'OL0RM1& QƠ9B߆vF0c[ endstream endobj 2148 0 obj << /BBox [ 0 0 287.384907306 76.866976499 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 265 >> stream xmQNCAWq)P@M[ԺenƔy30Pa;^v7AkF@\aYo8\.ܾH md x*Z1SL> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 267 >> stream xmQKN1 ް 8 U[JYp}T(Jb=~6չex3cסC`Yo8\.ܾa -6+ 03c ,"U'AN 4@I(%[]'ȡZ0yJWvtZ:Jh:PEf>f΍̥#ߟ?~g\ endstream endobj 2160 0 obj << /Filter /FlateDecode /Length 2371 >> stream x[ɎWf$A dþX08X*?QK`v= zlb )`3E== f\V-N0BR>qpS`Q2 !P} źhhn\[PaXCC A֐އX]icc@Zan/QV=؅E k0ԚRi.#m 3Zu(@|RPN1O*]DX]yKA5|U(aVa[?)TqC JNcWG- [{+_;Pnz%8WdX0@lׅE@Ksa$V K ;q* %oM,Xحi9%Bf2ƛ㴈 y̓8*b-L^% ry$$(n4}QcZnB\jc %rOk7)MgaNPeE Ãj8ʮA3n;0 ř1Edlg5UZJ#sVkjj ݏx3H\J s寣\ݟW'rE hC#% `VijZnIA]Բ_1H<4|cdܐ)\8sX,4sV@ hvb<~d >jYpˆ"l|3|(}ىجÝF i-81{A]lw2=`Q)f[=]dZ:/o}<H@[ANt Z;7{p%tΑUؤ endstream endobj 2170 0 obj << /Filter /FlateDecode /Length 599 >> stream xڵVMo@WtّPi+q8!Bv֮1E(kof޼y!?w#of\se,W+^U?>I}W!*A0 f=.s-)>osKT%%KL98Fcń-)B}ʠOUÏs@hqR2k(;O H~n|H d#bhmH(cD/;*pBz%YS ZoJ zT_ŤG$z5Kw*{N,cQԂ5zM( g\TD&m6q6ͤp^!HNWuKwOTEuL7b$ɭ.EngSGPF+P 9t52 sbԴt\FĀӺ~45U<-a q9*(1=^s.D[Tx39¥qƣ5o&j@I!]{4 L|Ua:(Osj&2jl|hpU/u볿"~hw endstream endobj 2172 0 obj << /BBox [ 0 0 526.394626717 356.61494919 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 173 >> stream xڍ 0 }\sƜ_߬2DAJ?J`2+ ޢ1 h;T;0%˪n˜l9 b.׆Qf&njX7fXJDq8t̊{U ۯL2ɇ}8e3v='KR endstream endobj 2181 0 obj << /Length 368 /Subtype /CIDFontType0C >> stream NJHBPV+LMRoman10-RegularR  "B  &    ` $ %' &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityNJHBPV+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈uCn To  ! &' endstream endobj 2182 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 2184 0 obj << /Filter /FlateDecode /Length 367 >> stream xڅR]k0}ﯸ{(ؾveZ^mruM$a?~3v{ɹftLg&-fNXFQֻI#2dZ/$MPdobԀcAC0uuxﻓ,SyS#v0` de.j.!S zpGz-Mh-+2|cZ]3S"#4UU5 d iU*fu0B綺 `]ɰR* XI,g4^,3"NDž:(e&ٷVal ٯ{vw~~0 endstream endobj 2188 0 obj << /Filter /FlateDecode /Length 16400 >> stream xڍ ,Wy&qoD{c#ʭ*=3UzZЮ']HHaرamLmƴ`c@b朙t ج2f̪çʌ̸>EU+oSF/i)j}W{|-x?[x^Ђܩ=O>(T7;|/>MWdYxV@ EM37>qw8wxk+D\ )*{7 ._VUUkޠ]YW^3щL?/ \!㻨8 8~YQ¾~"X_Cq*WTpKQp/*Jr(J[fS4n[|QQJx?GQ*8oMQ7+v_kÁ6Q_AqL]ڏ}EL_Rg,?P(S`)O@ٗ/EYmEYAV늲r?(]AaEUQ6PC(&ʵzFquv[E9xDOܩuE9}~ ^Q*)y"~8PΫQkRkQݗ|ף7KQn\&E([Qn R ;vɱ:T .MYQ jX^v; uvH$jvղUTirJ)w+j- 3mGܷeeԝڄKesE}4' `.rBzzii5Rk![E.l}ШQWJAD(rzeӴuupSS9E*UNhYw4iROXgԿm ,6BZ8: 5%4[$;X4YDGlV3Sݦ!5+Q!h̴ØDƹ.z_T^PQs/볡mc_8͌V3scaǖr"j% V}uU 08&fjhKfd "[m9t:'K'Bwrݐʧaz kk$tjwl!(fg>nFYjE@jWf BMCD%cn$ bP ȞQn|^}8ev_j3+ɿ3<# l}AUBjʫVp(Wݬd=Sg]~ʊ:^ q,ToXM+,Ja˽6B+ XUýk l \7.r1P4הayʍC4rIawaS%srk3*X;__U=U /ŗ5JrƄuV:< 0X3^|x1 m#~:6MFJ%l̬:y沪5tw0qV,EF/b`XfHJjզsG UGSKYgw9u鰷d<s]#(\1뎩q-2&9EAuB[^VtಯΈ[Hc5t` M8lEΈ &™ j<=!`n$-N?9Z|_ _ l0-?~cnJxhId!˘t] 5w&W'՟ӝi|0؋Ԃ e^.syw,/S^f巕S Νٰ^tkі?ЖP͘ÇX[ mc~t=GLNj, w騪ӜĄ;ff 5#pji7q0( AC5=)RPH.ћ Is) YjSD՗QNu;iӐgJ=qb!c2P!w)BGY>]Wut9UbeQP[=Ņr[=\ql)τ&5mcx`[&t9啺ϣF!=+[R,̚†=ǩjf5fi5Syuf"aҳChT6qmN8<zBX,(EDi}eX~뇰]0U`b~%=n6#@3uD9F8eR+9- ~LGVy'zXӎ.\pUV;j6kd p&<S;mzqɋesՓ]j) n9\ɪ"DNG@kQ {=*TӘ0^C3Y@m½BqEC::|:m3 wh%''b-QҚO4MR}unҠx!w9llhp:/U_@>DB:Yr9nwP0fI!6rXwϼz6k`y#Yy֔JMhݨ,V -=a.ܺ`V0oJ!&yUH4©`F<*8 y35e!Ĺqf`4dޭ]Ϻ;+Vp1I=9Uw 5:%n?o"vLXp:M&i`:~mĮSdUOStI+`LhjdD'{6eVf^M 8D(d3 W FHh PجߌIe1Sۃ{{x>8myAK6wu"'2skPɟb;N 7tJo>TLN}ULGX3QFhSʲrQ"<1($)bj?]ºc1h 퐳(+Y?}59 $ ˯ܷ8g"a+l1x:߰ÉGiN<K] Jv6(Qn pe $oPB^o{jA+3Q͢쭖}DVjfkhk&b.MRQ]AmO(G72_}>*JήVlMYx>b6 1V>rOT^w?G۟OFNڳuR#;6a&>\4taT4Rs]S)r˞,j1T"L840h3b$s] X͑"#+ak/ÀYUf_RP؟O~V}cyO۞8ѫ"6Z7TlCpgYlnf,J,l'-^t q{I=7ʕArC;8V]90Q]:Gn(n:].zt4>z7yjcLUT/ oBعJ35[&OxRL|m"سl>ݶ5bK3s圂~ CJx) kZ'317~:,vĿ~ٽRqmG|%!d#4ʛ;z'L(nFO.WGHK?QDQD\mp{6c(a1|vr/zx5ՂRWd7ȴ铛jzVbHjYg7Q@՗X Km5j܌[c,?(D4*ܼ﷚Ҧ׸5V[Z.Dʈn`,Yj[-2!Рw0J"aժZ0]W㇎h2,ՙ3tS%4mr<=8yĢK=&4U+& ݵ0=:nMPj⎌HY9J%lek oP{ /ys `,O01FnIg+cwl\lW3nY (!`M.(ʑ3 /,pw潤 ;lL_Uw$ :F0C]6 : fvޮ!W i"x +DMFV1K6b3fәJMVrM?dV0)Lr,4|G/RRl$A%3n̥t(egkVq0H1:ٗ,n$mVGcadV#eZ?zrћucv 9%9pF՘٫ޡs^(Wʹw>"v?j1~т>13#h9#ժs~O.A@,+} w6gŢmp8濌C%6Δ6l:( ^ t׮LgcD}ÐTl^E>m%_86<ۮloG$G-_mIc+$kU(VH: [,32*N.paŰfp 4}xѭ PH4bUjSwf!"fq<xpRʀ @Z4p#o3VxR`>@J.ѥh>4̻g4#,q}Lہm&wʦlmLtc ѳK߀B\ZKӹكSa0g~2kmd혿iVg`z 5uå)tSoN Ė &#X XrϿ2Eɹ##Bu/9lϠ5v}>9\(TqE/| * H@ WeSmhTٮp L[ I˸N.axpM_#`YP{QۃdC,r!).aҙ8x$U_CM hI a,H 6'iWA+4yս[mj-ǽ@ 8yJ6c?oj{\.JZTi"E by<7 9Fg4_AhFɘ֜kטm-IDJE0%Y35{s1kTyiilYYitf]Ni?'ɛ}P1E^=aՕ[˳dv{kIN|wr=7pNnc?ЃU&t w*RgDc_[|OF{eG]/b)dP컨 S͎EQ$'Zɰ贿!̤HyNja:vl]]HzŏY6X{=%Kgt -/.aJm[c)bFyp[]ǵ3\ړOVJ$XǢGȕt:V!gZ-a,~U[/{B9۴PyUkphtأ4r`)-GUb AٹB2¯F̒DiV[fAfP5lC(i9OhDBтg,M `ҹy2rnlm̂N6N'gE y/5U.jXǺL84Lسe+7A=݌}K_wIHVjv4E-@F-!ĪQQ\ջD3|i6 lH'ʹ"j#.XJo%1nd?aoU'C4'JMTԷֱ>cpdx7àNTHH+D^~;`wX?@I8 u6,n QCM9AktjjlqY-2ԋ%1/ί£0W$ilYĩlIḾM倦 4H-Rhav)mq @yΩ~=C0BrB$,k3ɩق$]TA,]O[t;VNZ&9h`sS?꧑_uQ|B2mq"hVQ+(7ԫVBeʋCf83̀;8Gg` !Dl0wD@mLIWb x#u6gZbPHڕޛ}n!ˤ<5:Buo6_غDzQ/dir+_ a]':캲"߿PlX"L6D(;Zcٿe}γ8]q_ۀp|zOzj2Z34Y8Pq:/NКzuBRL/Ds:gyzYBە eI^NXxWbrj8Z}s3'B$vfr4My `^}چjwO& /ZYf M7*zFL dN)U;}vZF'W45ܕU5" 3nPV0ĈNQ EFiv'JR5[bsIB!5G]HejQo…^Fy#57ՖiSM_/R^ -ut I<u_WSeagHC)IF{ٟ, 6 פVj2wИ禎j%c̛SO977m_Eς"2kjMO_ذQY>HFoR^{@L9zg4}-a$Cyw-z9o+[` 0duO:EejnɉILY͖J 1u *<XFVhfUc1 _Lw[?1͍6ڬ-raOL0's f--ʟoy$To/[5,4yO؏>q,2bdhj5w^!;l?Qa[Œ[Y5PA:y{& az)U |ӶJyϧbO]ODf ߴ~/L O}fFx[q Ro7%LtQvOv$\)ӻ7oZ"h[&KKa܋~v`jgQўbyYH:Kr{>Ad( R/Y*畛;w|$' G=XO+16Wֳrhkxf7|УNx747.lFrCKh)Y000Y/H*eU;\%ޤfhW9a ze^"hXF;|!acNt4fjoqso6DdLB6AFMm-1~+1Ɣs`F+qkf0p;@dUיC- 9p^YxQi+X{k:˥3GBxw-Ę}PKVA-GZ4e2]Gf^!ܶ7iwɒQ+Q\*[Ŧ0ìUe0rWOy'Ϻ׊xjPlιFz)t?f]tv .!MM)mpߩV׍q|rmmFNB]p9'0 Kuoh)YtR+/v Pͧ'H=.BYp:&!a{8\c[N4Mhb&f5;g@:ocDxkbpȴB1a!|-O,isVy/@ qytF'ZP̓~v/?cH(qoU޼p/~w\\s7ߨK'$L/Ҭ M?d{p8򀢉tT}SX쉙 KTB"Reou-͓>F`rb$1IfcAVq{ȥk܇[:&"Y:9MY^:0%T,mfo'; |jCm\=D<Zz^QjVf:!%"zTz_sÄKG7kZt܌TݜN'r۞(;됁7?8g@ .G`_٧ݘJǧϙY0.j3z!qZ?U9YL8uô&n eˊ}nAS66AXRrOAk6/N̫fX,$F:Tz%W[A7~M+ <]c'!SAbNL?%.hJ|L PQ2vc}h{LԶai E=^`fUu++Ӓ@3Kz \]M$mhGv%"x;m?RǼ\\O^pDwYT g6_/ oy7Ɔk@B0% Ⴜo+_,״($C!|vQ.#(cW/ę\d.ĵEG6t \*3# d/~<_ 7c˻M>^}JQ:t_gћ RK:gࣕ`˛KH;<_\//nU7nWb8 7-xvgҶTZ$4n^]@t0ɂpfs1Dr=YyW8 q/eM08<ow7g!"ۦtGC H5O&.dejn]^r͢G5ݝe'dKmwDǏ#Dl=̄0^wSC(|xث(5ծ`5L^.r5'C>cCƁv9$'2y}A,ޓΚ).sX5j`J>ӄJDd:%&5d_n$GT1D6ݹ_qn!jfjٴ&-{޴㝝ȗs]&0Ch0MؾZq]@S]m,EL^9В*TԼَk5̌f=ŷEz-0m(:Џ [QQ/2%å>/`3]90ұ8DLi DI5Z4й֐|/u.:iK^%vd‹&#醯5B8.m>l=΢n@2JfD·[|VR+9ҺHtHTph͊БmVp-M@詏'_E_ڬ7xJ/%HQzn`5PW 98bq%e4IIYbHd 8߹9;c=ǢюKJη7s {b:`D?\.,"{S_+ƙ@7ғKkܷtfgl}և14A;},䣎mFeȓ."pKŵErUI,GnwDk;:{6}FAn6Gg6Y}W$7eBT. ?yPve(7#B7Gd Rї!˜ikdOSJSy _ K'Y\f 1FN~?RRt([s?k`-Ezi}Ik {[tFӳ;1]⬳G. r#"@~K|D*m;-oF_""`[ ǚƥL\gζVEsÊICfrfʷ C * /'m8طB+< dcZM ``Vxs)|I\JHB85ghqtᵭu29\ #_}<= y}x;ks~9l`otaܱzcף2獕mTX_>>]]GGɱ:aԦcޔ7e|Kr`Nypu?^'XDisK8?3y[]{绎|fX2>6g￀{PbG{y9C9AjN~|o+wC^g;7ͳ*<pzz|s$L~G_ϸ׋Pa+=K(˳/}"-8eJe|_o e) endstream endobj 2189 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 2191 0 obj << /Filter /FlateDecode /Length 1014 >> stream xmVNH}+z!nR|[!2 W6q"'y@ڏ߮:e 8sNu}b9~*Էt؝uZ4>M.! :֫tTm{;n9v\4G}TBu}g_[mӸ((~s|APP嬿tJ*"?ơmIJf&!ޙRڨa>almz=v|Cշz8NLR]}4mgu#߼:/B6Czz {ئWd36ן\8un~"m7a=:[Xܨ>fzi>Fz|Z0Qι)r.!QhEf U&fP4@ֺʌ,mͨySK^NH'tX>CŒnI5Wck<[5N ligH7m;$}lKg.Y_K2 ώRg$ D:9g"}Us<rznj(y2E^9 w5:12rp> 42Ş5=x'#7s,Z>_c$YY_+=髢Ǟgp0 ]oɼW~5Pb/>C#̟̻R=ZVH=7p"~i Þk/OWó1IrY."!reݻLVm~o^>MS~PG~G9{c!}u&z endstream endobj 2197 0 obj << /BBox [ 0 0 498.132004981 373.599003736 ] /Filter /FlateDecode /FormType 1 /Length 4818 /Resources 2196 0 R /Subtype /Form /Type /XObject >> stream x]ˎ% W/~A~0NfgY1Y@l ܢѥK\sDR//ӧ˧<eJ&GS^3:ӏ~6雇W1|||\O_?|g{OT>_|{X?wUwJH)ۇ?N^wXU}<ͷt$B@lC7#;uУЁ1ƇstgLtةx{tx:06} Fgg{|>X*s.&&O> 1z 3 paUXbD*ot8ŖZyA1CDƔζmMHA`Gb")4 %ga7{Dۀw&r &tD˵:*86Y'D &]$3A<]/a>%v}L= |JGaƜ[l,%;kM;ƈ1EԆ1M ẍI<1A6L| @g&B0lM޾5ׇR%[ݍ?^ , :x|#$DșNBtAG=ӽYA` ؝ibgtoLA¬`0 v( -f qgK0B $tD1S`р,\ Z0e၅KI_ õB0Ȉ8MfڏaR(ab)|r&ֳɞ6 ^Y0asB%xW^a ȈEMLmDۀf8O%Xb +VHqwn!FO{4.2 tE RZ%Ցu $gOP!> aК.,T!]P wAv%Cqƹs;fa :dv%bnye7$0̮b,rH_ᣰK+b^v}AGvØ{I¢ۮ/.bOW:vAgv qb2f*!/R]f[ʰl9aB2w;H>!AGv%C] GwnԺ"ΆycW2 DE oHc@]0@X5B a̤.!5B.y$dar#)7 “7A<@HvH0Ͽ@$$F_e#L/D _a^^Cz q좇C${r0Xy5$ S )P%><$KiFG`<$3,4$*p*8H/9T$G tp@rY%@/P4B H@7+. X@K<b^H@xWmF8~rb!PXO=c*Q@aA9BV^Fri"٠b5KL H@M<  + 5%$KM|!&Q@ ZBjJ .+E5PYB70-h@He@HaW2HƱȀȯd;-b^ G5t<  1|E!_ .N\ W'^"c2@|ZY/k_P ;4o2`Z4 bXe@WDŽ cO-Xe0-u"_&(ě$2LP2ou("BJ y2 PUlDME*Au,5ev%Bl82PHd@ɰB #)T)auO@J~`e.X@*JGfW2T k+#+k@ΛaP1AP Ni4؀J0Q-Ehh,/c)ں+70P>5 u@<&J> @JG/`NNź[ r~q{TtqL.!ηh(}TJ?[پЭAvpBu! $={eB)L ёVPQ #Dz Xv@m+AvUm"b4рXw@m#p9Ǔ娺X)r :k_06`Z2"4BDttL5ffJo@X`ZրȎ°`ZրHk`K5a0FV. t :,ᆑ! ]6q.EcaR d1ܡ˔b*25oM 5bHÓo̬:Y vZo\{mdv 7mϳͥi@ # Lgcp= `\`ձVwf'_OӬi"ܜ&ABϠV7dh,*fZT!ݠX60K5ArMs0W[} 2BʱIuŰu+ #.feU83!sIRI.mI[_!b4ۀv6Z(CEgyb1rYؼ*M!a@{\6o% Yd J akV@gʵ5RpH `B<8 &LMûkAUC:S.>0ȎY] 6=B"$l9؟\=%j@FR+ER>Dς_@ C>f]K-Nw} [u\aKa(t \}0HorNu pWB|0Ӏ>;1ᙯI LL ]Dpㅽj1,G(૭e>0!^N&+[ӂF/2s ӱ(o|= `XHSS >9Ֆ*&tpe[EXaߚ DӁ1dQ b׶T tny,TmҒz6jƶ_@F07sK|m4|} n #q`[׹({$ug/$ L*nS|ےtp@0dvg:BhMע:_0rih!Crvh@ۏX AWKd-=}-W ~ rڀ,n25Ss\W09z]2_2It'cyx\#ڣs>CCJ=V@;oכ2CW^@m#k"Z[ tOp^pۚa!D)~K=;5 h[gf9.׌Su\5wp[OLU욁z|Mܲ8)x` ,Fp 0iQks@cTG}Ekʈ1 =IBZp525habb8cmht@0WVPC>Kb9>ZK:>G)l~6|γ,lO9}hXx9i 9 |$>Kal}>Im!ۢItyi t]}òR >g)l4{wΚ.TD({@`bMW؇) ףI|CG)?ɡY)v#DƜm{Sxn}4r^nHidI{-5*P>Oa,]:Aڂ#u@ai ? t@ğYЬʇe0`9{Фj8 4Bmt@c&sc  \({w5/YBu(QKr1,6vԪN`A-Tqz+5'ơ ?)`CLv bU˝$~lAw WelqS/ z1q0OM[CxWy)@D &BW Z̥DhADP? endstream endobj 2204 0 obj << /Length 368 /Subtype /CIDFontType0C >> stream FFBULG+LMRoman10-RegularR  "B  &    ` $ %' &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityFFBULG+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈uCn To  ! &' endstream endobj 2205 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 2207 0 obj << /Filter /FlateDecode /Length 366 >> stream xڅR]k0}W=klߊk;/j7j h"Q%ZL9'瞛)q8c-[EʙL%Ȑj4x 48hZ}s.nsL/FmgY'HK ›BA.ã2ٗVzGUs)V !E,M N3.՘w0Nq?ԡAP pi;nT73*.r>rAI[U@ Ax8^器bfv_U7?+UJQ"+ !FQAO0,_̡julȶcR~"}c VI\| 4c b endstream endobj 2211 0 obj << /Filter /FlateDecode /Length 16400 >> stream xڍ ,Wy&qoD{c#ʭ*=3UzZЮ']HHaرamLmƴ`c@b朙t ج2f̪çʌ̸>EU+oSF/i)j}W{|-x?[x^Ђܩ=O>(T7;|/>MWdYxV@ EM37>qw8wxk+D\ )*{7 ._VUUkޠ]YW^3щL?/ \!㻨8 8~YQ¾~"X_Cq*WTpKQp/*Jr(J[fS4n[|QQJx?GQ*8oMQ7+v_kÁ6Q_AqL]ڏ}EL_Rg,?P(S`)O@ٗ/EYmEYAV늲r?(]AaEUQ6PC(&ʵzFquv[E9xDOܩuE9}~ ^Q*)y"~8PΫQkRkQݗ|ף7KQn\&E([Qn R ;vɱ:T .MYQ jX^v; uvH$jvղUTirJ)w+j- 3mGܷeeԝڄKesE}4' `.rBzzii5Rk![E.l}ШQWJAD(rzeӴuupSS9E*UNhYw4iROXgԿm ,6BZ8: 5%4[$;X4YDGlV3Sݦ!5+Q!h̴ØDƹ.z_T^PQs/볡mc_8͌V3scaǖr"j% V}uU 08&fjhKfd "[m9t:'K'Bwrݐʧaz kk$tjwl!(fg>nFYjE@jWf BMCD%cn$ bP ȞQn|^}8ev_j3+ɿ3<# l}AUBjʫVp(Wݬd=Sg]~ʊ:^ q,ToXM+,Ja˽6B+ XUýk l \7.r1P4הayʍC4rIawaS%srk3*X;__U=U /ŗ5JrƄuV:< 0X3^|x1 m#~:6MFJ%l̬:y沪5tw0qV,EF/b`XfHJjզsG UGSKYgw9u鰷d<s]#(\1뎩q-2&9EAuB[^VtಯΈ[Hc5t` M8lEΈ &™ j<=!`n$-N?9Z|_ _ l0-?~cnJxhId!˘t] 5w&W'՟ӝi|0؋Ԃ e^.syw,/S^f巕S Νٰ^tkі?ЖP͘ÇX[ mc~t=GLNj, w騪ӜĄ;ff 5#pji7q0( AC5=)RPH.ћ Is) YjSD՗QNu;iӐgJ=qb!c2P!w)BGY>]Wut9UbeQP[=Ņr[=\ql)τ&5mcx`[&t9啺ϣF!=+[R,̚†=ǩjf5fi5Syuf"aҳChT6qmN8<zBX,(EDi}eX~뇰]0U`b~%=n6#@3uD9F8eR+9- ~LGVy'zXӎ.\pUV;j6kd p&<S;mzqɋesՓ]j) n9\ɪ"DNG@kQ {=*TӘ0^C3Y@m½BqEC::|:m3 wh%''b-QҚO4MR}unҠx!w9llhp:/U_@>DB:Yr9nwP0fI!6rXwϼz6k`y#Yy֔JMhݨ,V -=a.ܺ`V0oJ!&yUH4©`F<*8 y35e!Ĺqf`4dޭ]Ϻ;+Vp1I=9Uw 5:%n?o"vLXp:M&i`:~mĮSdUOStI+`LhjdD'{6eVf^M 8D(d3 W FHh PجߌIe1Sۃ{{x>8myAK6wu"'2skPɟb;N 7tJo>TLN}ULGX3QFhSʲrQ"<1($)bj?]ºc1h 퐳(+Y?}59 $ ˯ܷ8g"a+l1x:߰ÉGiN<K] Jv6(Qn pe $oPB^o{jA+3Q͢쭖}DVjfkhk&b.MRQ]AmO(G72_}>*JήVlMYx>b6 1V>rOT^w?G۟OFNڳuR#;6a&>\4taT4Rs]S)r˞,j1T"L840h3b$s] X͑"#+ak/ÀYUf_RP؟O~V}cyO۞8ѫ"6Z7TlCpgYlnf,J,l'-^t q{I=7ʕArC;8V]90Q]:Gn(n:].zt4>z7yjcLUT/ oBعJ35[&OxRL|m"سl>ݶ5bK3s圂~ CJx) kZ'317~:,vĿ~ٽRqmG|%!d#4ʛ;z'L(nFO.WGHK?QDQD\mp{6c(a1|vr/zx5ՂRWd7ȴ铛jzVbHjYg7Q@՗X Km5j܌[c,?(D4*ܼ﷚Ҧ׸5V[Z.Dʈn`,Yj[-2!Рw0J"aժZ0]W㇎h2,ՙ3tS%4mr<=8yĢK=&4U+& ݵ0=:nMPj⎌HY9J%lek oP{ /ys `,O01FnIg+cwl\lW3nY (!`M.(ʑ3 /,pw潤 ;lL_Uw$ :F0C]6 : fvޮ!W i"x +DMFV1K6b3fәJMVrM?dV0)Lr,4|G/RRl$A%3n̥t(egkVq0H1:ٗ,n$mVGcadV#eZ?zrћucv 9%9pF՘٫ޡs^(Wʹw>"v?j1~т>13#h9#ժs~O.A@,+} w6gŢmp8濌C%6Δ6l:( ^ t׮LgcD}ÐTl^E>m%_86<ۮloG$G-_mIc+$kU(VH: [,32*N.paŰfp 4}xѭ PH4bUjSwf!"fq<xpRʀ @Z4p#o3VxR`>@J.ѥh>4̻g4#,q}Lہm&wʦlmLtc ѳK߀B\ZKӹكSa0g~2kmd혿iVg`z 5uå)tSoN Ė &#X XrϿ2Eɹ##Bu/9lϠ5v}>9\(TqE/| * H@ WeSmhTٮp L[ I˸N.axpM_#`YP{QۃdC,r!).aҙ8x$U_CM hI a,H 6'iWA+4yս[mj-ǽ@ 8yJ6c?oj{\.JZTi"E by<7 9Fg4_AhFɘ֜kטm-IDJE0%Y35{s1kTyiilYYitf]Ni?'ɛ}P1E^=aՕ[˳dv{kIN|wr=7pNnc?ЃU&t w*RgDc_[|OF{eG]/b)dP컨 S͎EQ$'Zɰ贿!̤HyNja:vl]]HzŏY6X{=%Kgt -/.aJm[c)bFyp[]ǵ3\ړOVJ$XǢGȕt:V!gZ-a,~U[/{B9۴PyUkphtأ4r`)-GUb AٹB2¯F̒DiV[fAfP5lC(i9OhDBтg,M `ҹy2rnlm̂N6N'gE y/5U.jXǺL84Lسe+7A=݌}K_wIHVjv4E-@F-!ĪQQ\ջD3|i6 lH'ʹ"j#.XJo%1nd?aoU'C4'JMTԷֱ>cpdx7àNTHH+D^~;`wX?@I8 u6,n QCM9AktjjlqY-2ԋ%1/ί£0W$ilYĩlIḾM倦 4H-Rhav)mq @yΩ~=C0BrB$,k3ɩق$]TA,]O[t;VNZ&9h`sS?꧑_uQ|B2mq"hVQ+(7ԫVBeʋCf83̀;8Gg` !Dl0wD@mLIWb x#u6gZbPHڕޛ}n!ˤ<5:Buo6_غDzQ/dir+_ a]':캲"߿PlX"L6D(;Zcٿe}γ8]q_ۀp|zOzj2Z34Y8Pq:/NКzuBRL/Ds:gyzYBە eI^NXxWbrj8Z}s3'B$vfr4My `^}چjwO& /ZYf M7*zFL dN)U;}vZF'W45ܕU5" 3nPV0ĈNQ EFiv'JR5[bsIB!5G]HejQo…^Fy#57ՖiSM_/R^ -ut I<u_WSeagHC)IF{ٟ, 6 פVj2wИ禎j%c̛SO977m_Eς"2kjMO_ذQY>HFoR^{@L9zg4}-a$Cyw-z9o+[` 0duO:EejnɉILY͖J 1u *<XFVhfUc1 _Lw[?1͍6ڬ-raOL0's f--ʟoy$To/[5,4yO؏>q,2bdhj5w^!;l?Qa[Œ[Y5PA:y{& az)U |ӶJyϧbO]ODf ߴ~/L O}fFx[q Ro7%LtQvOv$\)ӻ7oZ"h[&KKa܋~v`jgQўbyYH:Kr{>Ad( R/Y*畛;w|$' G=XO+16Wֳrhkxf7|УNx747.lFrCKh)Y000Y/H*eU;\%ޤfhW9a ze^"hXF;|!acNt4fjoqso6DdLB6AFMm-1~+1Ɣs`F+qkf0p;@dUיC- 9p^YxQi+X{k:˥3GBxw-Ę}PKVA-GZ4e2]Gf^!ܶ7iwɒQ+Q\*[Ŧ0ìUe0rWOy'Ϻ׊xjPlιFz)t?f]tv .!MM)mpߩV׍q|rmmFNB]p9'0 Kuoh)YtR+/v Pͧ'H=.BYp:&!a{8\c[N4Mhb&f5;g@:ocDxkbpȴB1a!|-O,isVy/@ qytF'ZP̓~v/?cH(qoU޼p/~w\\s7ߨK'$L/Ҭ M?d{p8򀢉tT}SX쉙 KTB"Reou-͓>F`rb$1IfcAVq{ȥk܇[:&"Y:9MY^:0%T,mfo'; |jCm\=D<Zz^QjVf:!%"zTz_sÄKG7kZt܌TݜN'r۞(;됁7?8g@ .G`_٧ݘJǧϙY0.j3z!qZ?U9YL8uô&n eˊ}nAS66AXRrOAk6/N̫fX,$F:Tz%W[A7~M+ <]c'!SAbNL?%.hJ|L PQ2vc}h{LԶai E=^`fUu++Ӓ@3Kz \]M$mhGv%"x;m?RǼ\\O^pDwYT g6_/ oy7Ɔk@B0% Ⴜo+_,״($C!|vQ.#(cW/ę\d.ĵEG6t \*3# d/~<_ 7c˻M>^}JQ:t_gћ RK:gࣕ`˛KH;<_\//nU7nWb8 7-xvgҶTZ$4n^]@t0ɂpfs1Dr=YyW8 q/eM08<ow7g!"ۦtGC H5O&.dejn]^r͢G5ݝe'dKmwDǏ#Dl=̄0^wSC(|xث(5ծ`5L^.r5'C>cCƁv9$'2y}A,ޓΚ).sX5j`J>ӄJDd:%&5d_n$GT1D6ݹ_qn!jfjٴ&-{޴㝝ȗs]&0Ch0MؾZq]@S]m,EL^9В*TԼَk5̌f=ŷEz-0m(:Џ [QQ/2%å>/`3]90ұ8DLi DI5Z4й֐|/u.:iK^%vd‹&#醯5B8.m>l=΢n@2JfD·[|VR+9ҺHtHTph͊БmVp-M@詏'_E_ڬ7xJ/%HQzn`5PW 98bq%e4IIYbHd 8߹9;c=ǢюKJη7s {b:`D?\.,"{S_+ƙ@7ғKkܷtfgl}և14A;},䣎mFeȓ."pKŵErUI,GnwDk;:{6}FAn6Gg6Y}W$7eBT. ?yPve(7#B7Gd Rї!˜ikdOSJSy _ K'Y\f 1FN~?RRt([s?k`-Ezi}Ik {[tFӳ;1]⬳G. r#"@~K|D*m;-oF_""`[ ǚƥL\gζVEsÊICfrfʷ C * /'m8طB+< dcZM ``Vxs)|I\JHB85ghqtᵭu29\ #_}<= y}x;ks~9l`otaܱzcף2獕mTX_>>]]GGɱ:aԦcޔ7e|Kr`Nypu?^'XDisK8?3y[]{绎|fX2>6g￀{PbG{y9C9AjN~|o+wC^g;7ͳ*<pzz|s$L~G_ϸ׋Pa+=K(˳/}"-8eJe|_o e) endstream endobj 2212 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 2214 0 obj << /Filter /FlateDecode /Length 1014 >> stream xmVMOH+zHpG)Ҳ2hF{a#'rW"!U]jb9~)t؝uZ4>M.! ᫺vU:涽7|;_OC>f:!nٮN㢠5}CCU\~ٍ_RE~ЍCےٕpQW38LBH=3Qf}| ?hv8J]_9pޘ6 iڌ/gyiu_QSm^%tMȌ!glosG%FݐuǗlaqq4ZytF:ȹLF1vf亢ri%'TAEZ*35 st @ qVPˑ^xv\O 3 Q&7Jۀ&}! "L2vI_YgLX55 uHfEbN"왇KF ]J(d2Pϐbpcnvg` ~Wr@]M.yxm8!y蟜a &K*ߣ%}pB_]efVoW8u6<Y_#ݴW$-j dm/(<;fJhp/4UM{N&\O#|=jeO/| <_VZf-7g}h{B/Sv ܿ {$H_ZLGX_C)@ ]0rBO3BJ-DhYQ#X_Ed,/jt {Fgj ?] ϢK$ʹBdf=Їel+~~i떿J/͘?;ȹgon & endstream endobj 2220 0 obj << /BBox [ 0 0 498.132004981 373.599003736 ] /Filter /FlateDecode /FormType 1 /Length 5337 /Resources 2219 0 R /Subtype /Form /Type /XObject >> stream x]ۊ$ɑ}/q ˢ~bvW H#XVUGKtD\ TtՉ8n%\~_B/P2OK|%go?]~o!\ ~~.?zKX?^_g?1?7o_U.y1T.?_~?>wJ0;?|X LQ.JޯbRS. ؼDKh%#L^OGY'[?=ίӑi?Gb5DGETj?# Qβ'qסC}h1s蠐)Gc"KɪAs](e᳄P]49|@&thu/ɉDw!xFX4glٸ},/Eu]Lm,arDH 94 Yo|0|Pqm1&w3L)@ᖊaG:dr\ia)E@ۀ0rFdʼnDv>EkU7hѳ\0TwT'.Zx[&ڷ6 6 ,>K$<`,iAS-'SֲTE+uN0V95iAmXY[&3e&tiAewMۇRqaىDa( A̚lr%ZȩtS/NtAAeIR=Y&Pl2W\ "90ln T-!>"񑄈+J@&O^E#ccBb#)lno8վV  H rĂ<'#-HE#K̵bW /{ڂT% `sh!/<ᓄ-S1prĢfi8Ǣ*)0@&ɪ-j,|PVv0pyߎ+gMqb8: VoMtrk uNo[epj#4XM6zn}O ; z[^fqbZPKb*ZHr%XD4h9vC6L}ϔzQq8QNRJ RBKq9Z%ED;|tA"Y22܋ȩւLOt0!5sk@,ځ]Ysyc؉mjF7ZGWϭ1B3?UvS-:2{9c7ܔ. -u9S ^^BG_+{]r9],ȧt2^;ȡ1HA2T{Q A=S*WsIݠOry/ցdr02j9 t 3\; Sa@f0}]0-EQbZ}D@}L 2)xbآkAfI\7 dQfς6v0(i@XKQf&mϹ)K1o:(@P=)@Af3RYKmAf6U[{l!"^72LKsݲ~ "V-q'pMUCܒUBm!4 e jM D(NK @4霂 ;lxZtٷ8N!A3n)g9ɚE>1 DN[nc=#|٢NhP)8-!>KlP*_58b?NR1OT0o˜Zi*Řܽ6CEqe1{1iMKHUqe1{1a J; 9?nyeS'2y(˜۽,Ūz~~0" Sy &@E++0&qA "SZ-u1|c^)Klb%@g?2سN'<`j W? HYkNguXQ>x)> | C\1rąfx}R|4-hq.啅- GXFlykXRv,+CJEp20&2D94%h0f@lW4^Z;Q2-Rݰ!K`g?EL6lWsx.Bp&xTjtzAIl]rʏV8H!VSoĥZVۇR`.:tx^cigȆd=>ܺqkDy҃ &ĨbS{@3oa°Tpyǰ]Nkz(%Jkb3"#'V{XEA-[B H Lc}bDs#$= 9UhC64E,~X+MV s4 -ȡYb,TIukI 24^iW G9SSUB6u 2ME/( LJrĦ(.PѮ,WQq;JېMXCK*]Uy&ed2iۨ.4ɮB 7Y !Y(~PQl~$JҖ uqC@dґowwvwDl?rG[n6ƃK=;$8_ mH~:np#Zu9Ne1`ǻZnGǙK.+vqdZnɦ}ttXh|=Wa%` 碝(M@LJtp@\^BL2ItX"Ls0'{$ l,8sw\Gmk8Z-1S(s+lQrd^2+P/\ ̾p}fAmziG-쫣5~#Y' ƔDrKYZ[hh2Ua b\Dfk6-XW|8uռ &S$"RѺaKPAxbծGm~#LyIJ+ V $FtKB$dp)vV;׋W^!{zO#^j;_݅BK)9dW#?;: GMW$ۜ-ݸcJwIѣmV(lvo1`CŽKoRV;*8Am{nT:Ж@&7&Ύz+D C C'\iArtY!'JMoQCmIk.!GscQTw .^Ur{x2JRԁdj[* tGu@`?ӑ@$n7=.Ғ]%$i;n xJi!!Xp6Cwx "hAf_!b#ٔ!Oq 7vKB 1!:<$kX Ȏ9qX>'^lv@b3[s]m K MՂ}ϙԡ;>]z;&z^ZC>aYS*qì֎aGFEIn!rºVb<̜Ř#% ;>e.BWIf 3& $ݠr:#0: Ƙ~0#awv/w WiF^i㫣 cBHK]\-Wc_L^c7mSF 37u~VOWB2zgY5;)K@ld'ҹFԣ$ 7h EX;>i@nN:t#wDb n6U

,Ȓ5֞I^50xG^erG򏴰]>0k+}7(:9Ha_lplAj\X>f7L^=sTp&+V΂6fv6-z4v@Qů@&mHx`> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 268 >> stream xmQKNC1 ް'qJH,@"*e{TEIxFP~^6ׂA M/N=;8]a}[`x503W@6cϸoZEI4)N^p+98O)0UW`mJT*@kvx?r2p [j$ykGxVI#02Qfs;lsq"si-mĆ:W뢓btkwML'9liйB{ 7bo^+|kS]Y endstream endobj 2231 0 obj << /Filter /FlateDecode /Length 3076 >> stream x\ˎWFaU -{2 "HS|Hֵ;AJ$bUH9߹0{3}/W>9| .D]4= =El߾1f|_>HL= ' ذD{.C?@V:C%wF ?1)Qc]Xq x > ${,/ P&`vf RO<؃O2Hn ysɶB|{ˊ28&WOf$NuћЙoQH @!K=sƝ=Z]x/+/ N"N;w32_>A^( xM:Em ˺ Md487r 4kWܢHJA_a OZK_yux_^Ғ)T б+OsS&I ` 0fc,#Rʕ->Z1Ǘ XHj6S+\;PK\SCclZӹ{r`؟`S+d*ט-X4[E3Lu[$v$˖5 q"M%Ĭ`<;.8˲'@r KwQcQkR&X%vCjU#l UG B{hAIztܨvvæ)`K{M1 HpP Rο:! a v =Sq:0跉r<7@(ĄoWl)4r$BsaI*'xwXK]p#3;\lnx~};8Y512i[p" vUG@o;ϋSd +>N;_jȸNn3=eАt+{B(\vx@Wxsxy&vv̔)b4s]Q#8GL6|z ~vc:y/bd&͝/᭯9ޓT!j{oWVhŎi S[o`wj ~>X.Z_,ǐ-waFxxݒaH6\oIxKq`L -t[lfx28m_r|:e:F"Nݧ`f|COPc~zv:>^~d7`f3 ;D2b|ovbzgx ;w%W?F 2:cx'&}ihRҾ0]g=ߚFjMr$onmRW2|sޒ+Ttd|F/ 8_ 9gIHM),_n`x:,?Ky*̀08&8mZ,N endstream endobj 2247 0 obj << /Filter /FlateDecode /Length 2010 >> stream xڭYˎ WF$E=A% Jl &=eQ m"ç?~_^_^>]Î?_%F&a#Iإ]ϞC+HC]~Ks>L1'%B-iJ{ O'sD\䒹Ø'Fqɞ31)IrGwaY E|\m//T)FRGo/_1u.Eeoo)KœvYVW<wEpGM?-ߗ?o|Ox}z/(G `E]IUzi j׀OILDL;D!,xCv#-ej/.#)*Ahx!>L·bqAC2;dY dOk|dh OCRaK :C.Z|}~dO i-0QAJiȐsBJRE PQ`*"#@!s98 qEf j F)¥K/5}/)2=SKSd[ ) +2Kd [Z锡0Ggy6w;](:3%F s%I<$e 4Dm@i`7 j_{7mĩ)ٵ\SOOToLfP%QТ*XH'zKF{lf==-AKp⣥`Q`)mɿ3VJ0#v 6T4>r`4jkBa$Yh8kO ~?yu8@!AwUtZrnjMrw_;G$֛D)o?p`!|^Rpi:.u]X%Si70yq A)h^{(gJѱI,YeQtCx`tJ7.g7D & 5ԎV,Dwu O endstream endobj 2252 0 obj << /Filter /FlateDecode /Length 1962 >> stream x]V͏Gꞝݙݙޝwmv^YI$UDb IJ@8 ).D(@ƾ K.8|Hq '^ϬuFzWFI:] x|Zu &F}h;0l_Jn =.6B2/^NTҕWw5UX`r ɉ[pmm ,ۣh#fw_&cU5V6A!:/䴽gp ?Gb Wڭg FCF7B,\aYtE㲪9v"ür\dpE?|6aSf /3/X6̧DYIpSu?@EÏ\o:HF5DMO/%X4[" cQt0g$Q%!FҺ;q0$J~qf@ L|R-PuAŘaG:S̀F": u$T$KWI7f[G]-0p 'Pw\14؛ 16^%ǐ43m1orуmbBW `JT88Ϝ}&y{Q._`0_OϑY̹%:~Uz~LZN;6 T5S a?AmF:@e6dffe-Jꚤc}"tBmx0z4VHMi>xk@@E&lב:~[*44XUvY[l2qkd߄QC.|\ez+;-Jl%iIݤQx4W(?i߫Wmo<':Bq-pk} ͠e56YVܵ'&h F@ڄqɅd!0+/ѱmc qÎAIĊ waQ4L@+G@j/ < 2bCҙwSGۈ h)fB0vMhS炐HM9b#]{QL by>g}% {ybpFfZ=OI*Hhww؉b]~;ws3r~e͜ӯJ{QƮ4N2&wvbO+F}Zy>JڷE:Gჿ G 'Lz=Eo晣 qzFt) -=+^m|VklU-|": .'>4cN Z)S&NѴ\b<2HV/Hb94kIL}F1d.ƹfk]˕z9d~j@ @< P$\/'E>7E'g$ի~94y|/[n[SvNO,]ua?o-vi`&N-,9钪'gUxQj@!:bBY_ PZޯ{h;csC`C U(!`_N`| 7ԊINQR/^k/6s:}b5T=P4>ѦW,dir.y1(F#tNq3w{e^i6XYX1t&`PT_"$pzPDp70bhp! 3vC7&us,fj>azKb? endstream endobj 2253 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 2255 0 obj << /Filter /FlateDecode /Length 434 >> stream xmRˎ0+zHpy0Î h>!nXKĎ䀴m."vu'_ ٷ&eG޵ `\nF\VzLJ,b?.z3C>B@y~n>1hc+yjG \;Cp4<0.aj2ka˓r%Dm;}giZ3L?o k`re8nP@ #T.ㄮ5űm u)w"d+XhPl ͖:ߥ4$s+"B (&4OBɖzS J^l h1\ͯd@kܮ]Ԟ]Pl,ݛrǷ^kM֤($ަQFAZ|vQ7m[ endstream endobj 2259 0 obj << /Filter /FlateDecode /Length 1916 /Subtype /CIDFontType0C >> stream xڍ{Tg Z1w0>S+ǘT1Q彂Rr+,$.,VJJmNb!a1C{DsrgΝ33{?; [r}{6X߲')Hw0KP gٕ> \JQלJyPHRI*R3q>%~teZSry<5|͛? 4Zujw&JO>ԥzcL01cl[IŘ [-|0_g~k:GEd(D-$.?7dZy[1xFx2XdL4Q*'>acz+$ ;bAGν'յNWMB/TkÐMlNo%Nk+cV@F5Du^$'9NT믮tB;K< +bh/#8Ⱥ1Q-l2P>U w߫bs w۵bNz$'IQ-"ƨ7y\^eGОmE =&pMcɫ1QHs imJ9*+#LBUdR[g#{ Z8}K\!xF@c>uVA{u-ttoک Kh:[^]Un-u'fhAv^&ao0wP(]Qfwuõ.~|/oSH_d ƈvTl>%Q V?J\@LVvշyE &/Y'V7eW32KPVgoQ1[x5,/,2 fLt$JӐB]eJ6g(E#vdRo(!`~-ahZM5VIdoDxyw:Bgx(&@FhRWt\ZBbbuB[)@s `)usp&Zj] i\e: d=_#tbq1 opgsrrT0NBra,qBA:/&Q].E鷍}|lc(K:,LSx}ng-{#3bgO>-@R<dDx]r}/o${{R"3R*ϊ={ͧ{ώbSt_L}r}}=sX7"E'z݋o?_B&q'P65-2v,uflfg1GV5FEdz͢落sB m‰uo &7f'*4uGs$\tݖoCO&è{2ÛaycR}||RR||}Rcc}}#=(Rbt.b/MFXj2I.sl6IC?(*K endstream endobj 2260 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 2262 0 obj << /Filter /FlateDecode /Length 454 >> stream xڅQ0smZ]u)Vº+*ǽf6)i ܇$*[(?k ^c0|dZ ]Uߟ-Q6y_`UlI 8ũةn(Ub v= WU2b)i;ќ%0 3~/=2BT˺zvBrޚD1pQ4*J34p-= <(0Ah숺gOQ y4|ǹm۪:5 xgx*ʸnڝk&*usygf,> stream xڥMK1 S4 ~{{[9xTeA<K'<@Ϛ> 8'cyG]œj{_@QzA!ެQ_>## endstream endobj 2269 0 obj << /Filter /FlateDecode /Length 1966 >> stream xmV[GG?{=3}]>|{wױ;$Db$6" A2G@D>BHE)0|`8BG$ $ JU]=]}NO pɿ7@3(h "JlyyloD>'2{v}ۿ'ęӏ}:y7Ϣ@7!f?^8w?:0k*0tkk!0xbϽ3bU(zꩥϒmx]~-\B"ʗoX e1(3=vEev=pQ>,o>M(i6l('ep’4l reb?(lCn)f6Ɗb:]^x$mHbv3"ĭZHvQE'%A& ?%ǨS{nxQHdQ϶a~,MlX0j =QWc@!oаxHff/G7{~`ݚ sCo8,ظ݃Q@s kr7賽p+UzWs9ԛqLaJveiZlF؊0^fJh8ĀEp,k>>+f =A]|3_lk>+k԰L%̅IJLZI &Bcp.ȾQY@M+,h `IEO(W8u.rI'$M?ڌ GA?|FƯILo2pP'Äfq% qL-/B [/J1TX$##<׻/wu7E觻> i*JJF 1STEy0~#)Hg6~X!`ã2Ӕ6;_YsIdN%A,d!;q0T^h%Kd_\u<Ǥ֎k% gRzdTuNίm,Ur皻P_EC0 'X W.NSlŴ7LPrg ?u=m48IwT&nM,;-k!t=K:tgASu$GTmzITRh}[yK[@[Cq mou0<=sUț1؇^0mu7ÔvThFN$F"8J(Oĝf2~]y { 9~rQ1970cw endstream endobj 2270 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 2272 0 obj << /Filter /FlateDecode /Length 433 >> stream xmn0y; $Xq~h !,V 36j8,v*snOshO۬z )",iJƖ5E'3%=z[&zZjzifoj$Dt==qSj74[/wk7rM/o]m endstream endobj 2276 0 obj << /Filter /FlateDecode /Length 1411 /Subtype /CIDFontType0C >> stream xu LGw﵈!,lbiEςaxPARD|<*DIQ4O@xj VwΒ{T֤_&3~ߠ@(.}hXlꗞ>KHJͰ civ.SXW>RxUxUQ8"zA2rH[-ްG0)%k>X672vƦW)R33O(g(C""CY52D"s;Ğ-@r'$ F^Aާ0^?_ȏ7ZŠTTHh9NxĬL= L|vE0n-4>GO[Q>6,l%Wl ! m5OSG,hr'-s~![ӢUdWGjzD m~TvJJ$HΥRJd zё2.@lҡc&ɝ`7v=bȠbj:c7ͣ()xq&1{z-*I[1u]2|O7(Γ>mh.$WyZBC dD5dU~? rW>wZ? NW*Ă^~@Ht6VXHЂkZ]kߤO҃ I=汮0`Stmv8C?Īt^ZM˜tg> hVvoez+w:SNNoծ>N,5l O/ahHFzKCOL#/w|LkZʙa=!B&Kovƌ|;3# tDض?v ʘ. LUkd-Q W|̀n tN٘KdӨ/p ~,* jTc I4vtpvfܑJ h'6#8/|<] endstream endobj 2277 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}j0yC94IK0N uXX l+iд??F6c0gtA)pTeWl9>VFkZȣƍ�H_Ო[Qe)&Cv\__4oVqlD]U0Ce ,}7ќJ_cƦF0yLŎc1QD4!Z==M&D3͈D)#)ώb{!K5ъhN%bD17]QӠ,7?_(;͡N˞x&w`_w? endstream endobj 2282 0 obj << /BBox [ 0 0 340.157469183 21.128896521 ] /Filter /FlateDecode /FormType 1 /Length 252 /Resources 2281 0 R /Subtype /Form /Type /XObject >> stream xڥj1 E @\K:y+]Ȫt]{I܄@-ɺWL=ixwR SDUSʔ}ra휙 2(fAݎ UEŗ?LU-"''ztspԲE,ᴞZYK[^zoTdz)as5/'l `9zv{P8FJ̆'.ؑ6CVP5o{pr0<} " endstream endobj 2292 0 obj << /Filter /FlateDecode /Length 2185 >> stream xZn6)?g(زSݵͮEiP~?^$9&r%Ù\J/zۇ@zxA3n?!iۇ(Ӡ: ~ _^>|V2g֛IRy#L&[ ٳv!ZMj>OZq'ʼf \[66n KVڒCݼQ3ٞF /+(;WoV`mo {=2&X;$,M$E3gS!yh:xwATТwKB?D vʄkel; 6Myk|C2ZD`;Ei |ڋ'@WIɯaً<辅L tF2xٞXb8HB&I!6h"ÙA'[dk\ օT1ڙxC1v7`?H ?~bJ.<#;kZIX)JNW8?% 2a~N7Rv5ԝh/6>Hr]ghXΊsUd|,V^62@3lκ]2Nq֘9l,wx,8KN;?Ѿ$ (na #i`KH~? NƓ[YbvAӴ/2a~z2k b .re%XxXSko{9Ou_Nj$i,v]q.P I u1ǘ,P8={D&Wj6ev^c=+kc9C%Hj!HC`^ *+Ĩ]ÒKT72ұ!MAڏ#ap0~sw"%iƍiKӎ(|8 Mp7kݒkpwB9ѿ%ñ`^Q3a+Q|JQNp7+(Hw+N#Oj -˷.|N{n˅]uy.ܽ.;GI]N3&YT f)^AP5NcH%8) R^6m9[(PA]vM4hF_UwšP!ط?V0PPg\}d??R:"XmOTf kn][`nɳ*Se^ϓct$ew4 Lm@Wd\$7ĥA>_azzj(E@lQisypJ}6!E7_acWl1+h'98ʱvtz#:]΁ -nX&] @h5o|вQ|']1)$tՐO9=l' 6$9Q|CpAO}q^Θ}S82o|>z/ר-WuQ[ۨu "v ғ??b/0 /xtmlҏRzN9%KQR|;ܙ%4rʛkϩ4_vA- .^0aʉ_[€VD"0:)adJۍtՐ:rv'~&}GI:ʽǛ8r7a^y|X^wq J]*5.&r4,BMK6o6dHEq6cް'X3QG:Kx/KnNMo g㻌@?xNrÏ7 l}JiE1 B,]x@=GK+##E>GA}Vy[ҶZ}n>o㲒31 zh9Hh?peX# ,);$:~*ze0xhIkd$`\ j`jO*8M13إagμ_ endstream endobj 2299 0 obj << /Filter /FlateDecode /Length 949 >> stream x]TMhU>g;L3Ƥ{o?!H& VД,%jӠ)Z-!*ƵݸuR܋ tY(U*>}Imq޹߹|9g.0#⨶0@ |ptw\bō7--i ~ '9l~r5ī콭w- f8~d0-V3/m_||暹;3g} p@0pp8|5gpyGBsK3?spwSC7{wߺNS!::i`YeUefUi?^ӪNDFRQhC4u$+~4hYz<knX˶^Om)R&s' G;cof1T7\yv8M&n,bOSx9[ keҮmD)4efƙtYMh>Mi1zL`N2fEux׿}-'==?h>J4fSϸz/(Ǖ'U5ߘۜxc;rG's ,,ϯk\MBNӨ75ȌTu.E9ȸiwŠ_W~QBU4"%he7Zl I2(<_Zʾ«$Q ;[%)c\sfz͉nO> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 2302 0 obj << /Filter /FlateDecode /Length 390 >> stream xmRMo0 Wx$8m!ARDǵ$EI9-ckJ}{6tBt0չQZKUF(l:< ~ :D?+V3i'n{t?o]2s2KL> stream xuU PSWIȽ܆%ݒKEZZUֵU纕LH A\$ A p!pky l鶣K7k]wfJn;s饝&q:m=g9;/0LsiFhrK:S&2b,$9r l)Iz=FiRRBRITaCR8awAJB? =#1B&#bWmͳmwM>1ǘ-'\`>PG1)1#0 HaL2'3c˾sr+> (UJ-\?^̃#Ȇyt5Q1>qT\BqD(;z骅YM [;ϠuuNQ8W/t(\ʨřhH@T `A<às';S7URON'҉¬JHa$R;߾tѵ; HߑQŝ, ](#]CUs q 4TjNa%?ܰqv}SZ.YϟDRO"ن5R%6?k`zpnq;r`eM_%1[΂BNIJiyG;3>pT Զz7shTkmeUU͂hI~[j>(WQW<L;¦A^WIWQ] 8rnI{?Fje=ejx鿊WxB,y۔N2հ$&h[zփ e=Ξg~`zt7gse}_YS  L{i)sSc݀Jʮ՝k'#=AC9J.x@[67R`= s T5~}_fR~Jf9@r H}H];cu60 jͭo䠝V{u P@ $P tGqW,"ƄK&s"-Em :sG&wЦLf:mq4:rre;h',lN;`kϰmYKy~ XNF?ogK&o RfK׮zaf#o8y5(;Xsjz^įCV)~"#V[?ʈ bCz&}]S94d2cmMPPj4=?3g^6x ȩ*[m ڒG:J@>y=ɲ*G;J}=i3&="EZTHGdsvt贀RK#L<ԗ:zD3k  y) Az"&ܾVUBPu"> _]BUX/(PƌKpaY h8{$ɏ;YPG> &XIqJ3:Y endstream endobj 2307 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 2309 0 obj << /Filter /FlateDecode /Length 437 >> stream xڅOk@~yB=ֶH^hn$;-Ti _晙g&:xj6֪ lQT~X[l9.Z?R+n|K 8rTEϸ,}ff\fbBQ}{(tٴhFL!|JQBGo(2/gSֽ;ko| N ֜艕fi.[h},sS%t #F05G-Fn$D ݩY[QUhWs!՝].9VB/MU` ?fQ suFQxD;i8ƣQhH4&9 (M|=)DD'(#f;J?3uwgPZqmnXH> stream x}TkPSWyhr@DhJj`0H,CTJ… I "$XIQWNu#>h-S7=tϜv|g1@ SlZlP޶"&vְ嚝zN)XIP$& #/NL3YgKDq`%t ÞN|y%3`T2 +0R G,>OTFFz/<"&?7dU܂ɜ&DE BJl&Rr~Lu'cH¸Ic-. wO&Pg#C/F+3 <E6"Z{ c |&^l 9QL~71qE"ile_]~HZф$Jq4@Q"cWrz H SUzK& [ޔi1Sդ%H(Csmr н]lO`.RCh]?SDY/=C[Scf?H*g `J;G˸qaF3=Dxh1[%[׭294 K&>nX_4o1EIAJlJ!uoB <ɄU_C8֌h7dFpYOwhLpM?U60u|0񍘃 uiٗ)H^多̦Z46?x4mYLqc%uGjMatIs\Ng8JJ NcMRڎ?x! wS w endstream endobj 2314 0 obj << /Filter /FlateDecode /Length 675 >> stream xuT]n@~)FbDm?"ǎ$6 %ƹQЇJP,8v[ ff|Y(z8%tbS=xb<ސ> stream xڅR]k0}ﯸ{kts_0nLźǚܺMJ>񻩭[Г{='ic^ Xp$ZeN洸> stream x}UkLTG޻u){]{uX+6F]/(*Z""*vqqty( -"T*6QM[s..ZL$sfwoFATB:*4|QT@؜u+6剐i(f~v4X) q7LZƬnďU^fU,YyOOX_;kڠ4ulPppȻC?5BW&-9MAQJJE)b( NyP(OiSn[_Xu\pvT題WS娮C[ՕڞXDE0!*{t0OZA|{]d.<J|$[9A$ |f6A*@4v耖{,\DPu? zAF 2}\)qBFtx~z̞> 7.V6@XLp*a@s`+\pyYyhizxlAgpmsiz< %^r$m+@0ีޤii) 4YܘF]-zːP}&(K,XY]R6ZK;54 )% ܶ$}DaM^c~GR\-`\SѫcO"Exk0h7!͕TQuZ@pd»+o| [SG@ጬ$Muuț;D:Y:^1[IZ&hcX2'蠻mnjthnH 60f @.r+@B(ch&w{ ãSP wLO$ Ӻ7t:Aս;pB{cYCP)J|UYlŴq5)+<8}e4!d&ݐ{IK"ʱLI3DwL#Lt~Y7?h<`kx[AmcS6?ƒoGMq}SĪ5855I /ó!b8|I|crm%}n+*2ul?~MVknkq,+]PR f endstream endobj 2321 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 2323 0 obj << /Filter /FlateDecode /Length 436 >> stream x}Ko0$8yP$Tvݽx9ǁJ)R~<=z &oB`-[U>7dі(gDdioFZ2T%JLmy2Q/椵?@۠CR<@t>X 4W{+L*aoj/ }ڞL;!hiݨmcb8°lضUuBS!$.%s^%O`&1s5JMF%ú T8^s=0~*Q^u4PC+ϸF0$bKwDc)lL4%[DtKhfiH&'-R%=QJ(sm)^iԵmEwKPJ髱+dn&^Cz+)^?< endstream endobj 2326 0 obj << /BBox [ 0 0 328.489249908 50.92419236 ] /Filter /FlateDecode /FormType 1 /Length 280 /Resources 2325 0 R /Subtype /Form /Type /XObject >> stream xڥN0 y $-MH!zv8m1M8|Ŀ8_@x >=B8J(*97MTV~.qn6&sw~X.X2OYxLtWsi]2׽kSjvB<ՏPNiJԽ1"} )m̪*_yz8:^_/EG8"|#>|مqn'KC8=ڻCb{8jLj=敫,D6n?u endstream endobj 2331 0 obj << /Filter /FlateDecode /Length 2574 >> stream x[ˎ WF)> e"%]Ud5_Tl-h.2"I9۟κ#7ץ"bb ]L^ukz_@BH%$gTF29Ũ/oòKq_$Ή9`2^ <7t'`Yl;bjk*Ǜۙ{:Sߊ Cn,.?XL% 9gK]v9F> W|4C:C8EeiIBO\]B t_rUG8q@iPύR3c$ J=N RhZ&)ƶObv%UCQrHmoRxkMbT3g%Y5{om^H0gGI%.~8 o8\\TРl ; pL Ș 2n.B5 yx+VL̈!\Җ %gU-M/0d4)ij69#{:6'[ i|AP~B*JPBN6_NACbDl`Ǝ [Ht2#V Z|S9r~bii`b3uX-Ŋw@F9!طTbu.Q;6ߺJ{Dr:{)G%rD@M{3W\`2v}σa}$srF0qŊ~w V0V~â'qD6)%KD.`ɒlc=Mn4*sٹ$:`2 <LJiyD ׻(^FBsaHYro]Z)ǛH)D3yIA9V"=y fqGW \>C S˻põX&VϗPLaY|@p 4sy`ujr|4Ggw봓ku34(IC._Hv,kR^8! M Սx@lObf˄BcK:aŨ4-o*Zs:$Yaks̹ɱsW` ( NX?F EyCgRylnP@T#ȡ~n.6n.x }w+uTs*lߒ|Kȇ` 8  \g[Tm"`GʴE4@De^U&l?mХt1<#N.]N=Wj: nE<ݎ埍2Vzk`%b()^*׻#G-(dm}h'Jt濰`ÂVZd>L͠C9٘*E[D*!~h)+̚ls5#!r׺ J |LCN)3P)gD5'S28X}b#y1]2G.(-1)f|ذOä4ïn/x$ QKu)# ϪrmO *n RTӂmMo2L)?7 endstream endobj 2335 0 obj << /Filter /FlateDecode /Length 600 >> stream xڥUn0 )/(8U`!a0ʶ5I!OQ ϟ_ o/;p}4 ;L ]  KbD2~ߟ1AN) MY#t,!O'0&`4'l?D5RY$;c@Ԟ*&bkK -x74̖@d MnP@BTV#ߣzI\,߀Qqx%8T`^cH[$?s ΠbQF͠1uc|pK>ɢد#xDdBHjrK+QKdBK9ߊn)y[0utE/>sf}U|̱nbvmƩ@O> stream x]ێv}W4p^Ӭ%88.G[!Y @P#Fr@rdo$/%_$nrI69lG1,jU{Wվ甆I9[ _,߸ "D FӅ72 /r |*/>EBQK Y ͠mtEL2{1͔qc kb+M6pʷpblR3 w.3 J PE.2mIG8$NyW z_B1mZt*L{P3E {V Pբ8ސ{ F Bt\~P(`d%'4/^2z = , _i,@JK)&B%c9P.2p򀸖YJcٓ߀ʀ^pm(rJkUu19,sCO))ǧ%)DQ,e3Oј-dOh0hY"C rٵ'$=x<b-B9EG%.3ڒ4Z;IfDaJ(: ؙH$ .MZe ~39H4V͢&(4`iR4^CyTTPMhj(,"Q(kC0.Q+(T؃H޳Zz3_~!$AS 96&]jD1zTƕ$bʠLSỐn9]["Xf Ké6I:|UJ[Ԓ 0 * &=Cld吩+ ^ޥ"'P°I#: !GGa+y!8 BcIIaHN#dy(|q07؃@gpȓIh#`DP&{{e@dY$zƼbL-qⴖ%.7TE cD*PLLf BQ`)Ea8VH%g'W(͒">mţ^zg& [K+l(z#ZL<N6 YDQY. Q@-g*y4eJ>vZl91dttU8,KtAfpAhȸY) fg cWd}FTlt,?2*6֗vĢV5 buM4sQV;/Y^sV6+P&͝?MkVM$dsjc C5ѷABEimH s bu{Hhǯ~!iwЪWڶjSssf@6]dgqXO{j.FkO;[U!y択˹4>6+5m,tm?0z@ov>V6vwq{zkBom^FNw55o=/G,3ϽύeM#sN+"l,g8M!F/J kϭF~A'+_j'//7{ãu,^I+F5 +~FwN?& Ħ {Ƞ3©(mrk8F#'zrx/Z8eio䒰UnUj1G|x(Lly[ P-|!4M;1>.!YWpD-b+)j»:Eۣ/>FvijַۏOR>Zf^?)&ٿ<&ev|;s(_w >l_4(eg1| wόY{t_j"5umVkZBvᓳxMu=yX< xQni홬<lĨQl<׹W{&ȝz&d?gbt-Fo6y&F&~i τLrjLxS˅gbTCx&F/P?=>N&o_GΠ;;K;>z =u'.u\?l!%d'q/eja; x1!RQoTp ^x11գ[x1wPavcS& Uqf7яwVТ[1]z Dc-H&-߂ӯ ?35G%^rEHZgpvGə9'% Ubk8ޤ=`y%J77QcUCcX}s !OB 4r`uCyX ujeJ{u5'[`VkakUk?!OނyM=yvʵb?~?MGϰ oxvwyv_AҦK57hmiY*{^'XʬO^#ƑcPY莃fs8f' lkȾI>˭̬h ,DF"kхoCzh._&X;qܾ6'h$A!OHßMϾӣ8HZ6m#ȻXl[!5ǨQ v7y њ.ֶ*TQ˳q{=A7썻kGzg M|0(otO:/ lWO=~r]‡?=7OFo^$&7wv:~]zzL“aSch㝚>Ns0N^=yϐΜPZ+3̹xt:M30E B_&7Æ j?5U/)9FYQ%~n@ %⭍42a$̨{S'f9rHh]#9 =r sސ2vkQc+xOe/x>FvSf%@>Ì endstream endobj 2384 0 obj << /Filter /FlateDecode /Length 3156 >> stream x\͎S ,*ciٛSK^?_8Ro)TZ{L{{?\'o!cOlStP re.x<>:^)db)$6.e Fsd<Ȭ5ulջ`Z`xX%t%ɩl(K[Ab8:T=:ftLF45!,*k[f aRބ?{ۅ+0a=,SC;?yӏq:3D"@$@/ʖ+O$,z^O{YK]ֻjr\MKzڸs{cM:GyiBEM>bQ⯿+ ?aGwL~;1E#\_^|Is2!qfLע.VE}eǺS)= 8' `(6[?>E 0y2XZ't=H8y:};8CAأ) nY6#JB";[XptփrXKtm{dd$AHz;]Jj6k7Izbc+xPa2Nhi޼XVS0㖿6& d#GN&s<0>z`7㣺$7+iBmk:؃!>a8l<{y bD?1.dN-r EoC_y$RzOyy7"g]moF합\~1nSDc;ز=17zAH`L޳/;1@FUv/t8ݖKa]&[uL9,Db@# (f_\V_ΕйPjgXS]ۑ=~4-xyve /i=Y?.tbbb:t..wf`ZůŴ~(:wGi@2k]w12!C bRۭhm{ݞCD Mw X/~=pv0p=cCq${4M WR0͘Kia 9d.LD#(Z /zS*VLH;Lz-VeZk._r3J6r|l8@*rsuQ\Tnpiݯ溮\KnNjvj+iyF/[a'075Cجk&9]4gc ޙymMV2tXXSP7Q<8`A'&uDﶣ>gKQy3$⣹>p3"]Zg EڽUϐηh!gwsK홾3hpPQ1v{YO~ȹnKapK0t !r;8RN0zFgHuQ.ݔz%^Ɣ>)ԏdVܲt/̶\?AYf2TM-$wR[q?G聬AnN#FlrHmz g> ,=ïazcA#ښŴ}E@~S# (ջI[6HЋo8#!{+ L)> :zraeHERYp5Bk"UV%JB UA ]/`06WS\ 3xK ran$X~ *#ŵ"?:|8 #4&థ8y 'mF< 8L&]ns2ݘ8f y4 C-FV A¹4=4T*\Zkklk!R3fvj+iyFo#_56q,&6i0nbe6Xha] =vO8EXw?7# {G?rJ}nb~< 0IrQ󾼣d8{![P|GT.R9-F߯"3o^ABf=L^l(gPSI9#vɗ @6kM꾿nqLcH9 Aw%p<`~ۇBɐXKc5uI$#7ף 5k'_lYF(% 'j ؛AyU\ Iip- ^}?x)QkvG>;`ˀaC{b@H12xbkyǹWDŽ5!MliSmjUwU)s=M9C"Ow[%'@zV`}r:Nn\6FN2]'8a&=-;d!8l> nuL-'::m]*Ud h[CzuG%D]EZ=ta endstream endobj 2386 0 obj << /Length 25 >> stream 0 0 0 rg 0 0 0 RG 0 g 0 G endstream endobj 2388 0 obj << /Subtype /XML /Type /Metadata /Length 1872 >> stream application/pdf李延瑞 (lyr.m2@live.cn)ConTeXt 蹊径ctxnotes | 2023-03-31T16:23:56+08:00ctxnotes2023-03-31T16:23:56+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18TeX ConTeXt MkIV ConTeXt LMTX LuaTeX LuaMetaTeXLuaMetaTeX-2.10Falseuuid:ce67d4e0-4664-828e-d979-0a072fe851cauuid:419e2a9c-4579-9246-fd25-abf47c0b4943 endstream endobj 2516 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4336 >> stream xڅX tSUi!@cE PfQ2h@Z:#m:M$IӦ)eh-2U@CD*( T;>}kuVɽo[[ɝ6w޴U'( ^!<^a]ɹ fr|~#w ؆b[Xb VN=si)G[vC潹l/qt|n &[M> Z;$?J@?<Ɔ32"1F̌e$8f<3c yļļ30,#g&3S3ӛLfۮg|>wަߵemumB0Z)$rGMxn̶1бJfHƅG oNP'aWܒ@|uA;+]Å(HTd .糁A&JФFrn=c.Y}duHHddHHud}}uu=+!wl0se$SH$),G@< З/^"@x/[@0@0[{;g?))Cwv[#2"0*dFtyL_v'~mwq۰ q|Hv7Cx"`Z}иE4921b^psT3>Z/'"ygt 'jP`'HH/pW@`KW9V-$}v\]gHKs];1%C2C ϛ`4CTt謊T4H2wF*婊`@#:3XBa!JJob#B:#'?Dh˩'MC/x_zu+K<`# |=pMrXfo[qb:uc?5\oB k&^ɬA p] \R + IVQP ,vϒ]8V~-|^ˢXaƀ4Fi99׿ƣXk6h6v@(vˍgS)4UɈ ǖ,j+}A6I8B[ehY=Qa`SZAeDLMU*ri?:R45#9Ivjlsqe8z _딾J6 04SKDsIDߔqYpIJb+<`Xyk aD4qxbG-; 1k8Hˇ*0#i] h>0.*㴧\!+E 2!=rMf$}je QPe,]aG~rM9U脠5]=QdP"&[ +Y=>\LØĸOQfCir~DBB:ZR"L2S+DvO)h +x 5 |,P&!3>2S) x\UV;B:M|f O MI)w(Xq>TӁܕs'NB^ ,zeiM;XKx'[hÚ@_DI %b=q!a"ҎۅoVioVVb1])'s?c#-MXW BWph(X רJ-(P?ѥ꟱9o;3pl<]}LH !@9\@A  :??^\P " Ԋ_oѝ=B_;0+nIJnj]wܪdylh4骷g$uBUo|k9_i-إ ;iw,` EC 0WUMM)g]{Nj8Q1CƳv$ ճ72n"&ncm]HZڹdL`OX:q{`ױg>opVLќkf^#\ZvBui/emqԾu5 H@*pN\|^ V$ykjcn$@_S\l˓eKeEfx] *:]dr?wZ`_sLPj ၮ'b>Ч٫b T-\I 62j]Pnįrk/S2 I ͈H_[˚Zi $6%zdTBl5Y A/P:V,zEkrFjP8Z tY,lH4)-$x~\+ ᪩Fz_)@zLSB!mBl=u6YX( hlV e\n=5gho: $X h$Ho坶dCBe3Be#pp?/󫘏`/vG훿e+I9%W5J$%̍ڳ3Vl\`TO@kTL< !Y9=x:BFj@MB RA){L(VhY;د qwK5eXLp5UD&ϻX,nҌ1PC B;}B-,IU/}-1KwxQKf Tħ&h2TA ̍d&y=| coe@>:زsjb3]NI폭@)i{( ,|ah,KڑkpWZqKyq!>7A9eDy< a ӼʣD?y>aaކW"i) iMf<}$rxf{!׉V` З6(jXUk>n9Kѷ|y"$@\G"N$f@wU4>^?HQߐa}u]=nnQD&ܞm3h;RuHf6)3ԗZ"Su{ޔc`{(cPB6V h QR{PQARl'pB[\7ɒh{ڋKreֺ+3e{L4KKw[=%oQdUZ~<~edwEX[b%dQHO;?g ʞJ37d{a/_xLhe:(e;XDωvJ۴gg蛤^DMnf.ZϰuԪVA9}-GZ8f7\> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍTQ0~W=lƘ(hBz+Buh!L_)`rfoIHoon,مV̘mrYse~c,gy[Nٞ08)r"Kbg.z\lIMO烝K*Wx}QA"$pG/&+^ Ϯ명ȣ}Wƭ guj#G oUͮ8v`>*Wc#KU)g~]0]*XXٜou ǺyI"x}One/Gk]Ue1sϟ oӖDMQx>U1:,GQ{! "oPl.A 3DȜ ZJ(2h Gmu2nPD\̄lBzWЫوcD "Iz)z&n?Mgw] 7x"$LVwLogQrjbNggbֳ*r^v&рR̓`smuS^:Bk~/L__< endstream endobj 2522 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7691 >> stream xڍZ\׷vvDesn[-bl; "Hޖ,u{hP\$QDS;\~B^{;39|\$ %H,7duô^o|}K_ "/#c#tah3`fLhL EIɑJS&껔f.뛓,(DBz֌3M'_j>g/!&&yI(#ʘ2M(95LRfʜJ SCXj$5FS PP⩱8j<5HM&SSWר4j::5zII͢fSs<-j>6ZH-SKwzZNVRՔ5eCR:=j=Hm6S[nLD&/{ ,\+i7kkJRO z3}U6H%! wMazLevȞ!Y旆*^6lXQXhcF80 4rȀFuĒamaߣFW0u6n"7+LW־rmD_cKǍ1'L13`3U츘.H×FesEż9ZXYkKQ , !.1-|j!?]߂t~P+D9vBȁWfbׇg-cqۗAV J Xg,Գ ~B#t!6³ ?;*7%RM9`{RbxnnO=IXYVYPբAMi2 Yܧmy">MDjsKgF,(?t-x_P!u:~-0)U/JnXK N RVܼwo|{d/xWMIx%WYVTwkfM XP`z IVm[Tҥ<]V"G<NL 6i2`yQZY\B;1'*N- 'Z_cZ^Y(-\k:EfPqP;'Jӣ.Я'C'_1}$ԣ}ͥg-e:F+ KDɺCKq'ҷ}0r6; ۻvu.Z:H'/D; Uz\-kEG24*Wꕺ*}Euc_{PMrh,:YPNDeB0Ƌ|k[ܹ)/*O Y\z!Y_]-I>^T3.uhjR`n11n.YpH/d[AI B BiB?}L"L9iۉE#X ~~ !gkWnW/J7|3lMfc`F? 2aΓo_5 dfNЌQ(W23u1_^Z9 0y"fw{okU#:f.{t{m''+TN3VD%/";qtóV5'ݥRkZe |JEH=*Щq&QQ-dpBsX*ͩK 7$tX U$ \Up% x,tmry'БksМ`咟tӿ-сnT7+{ 'DE I(&qpU!SU"s̋[J_Fx u}]R/x7BY'EWy19 Ҭ &jbkL>(uDL¿$0+Efe(^օv0տ yĺqRYN!w3ν' y)s 5=`Iai:vXE~ >+%1†96x_l]TÒi13)xأE:!(x2͛/Yͮ7߸ֺis{b!p9sa*S/h\x<ibSx4` %=фmvw_x뻧5B=9HN+ڍEZo!:4AFQ8LM k?Ku|r~eRlzc֧ax9Q$گs<>R wsޗ?8~Z&mK'V a~T9@WlX$֣'Dq[wAo+W8.HR=z6/.;2 J!0pDgtIX>*66:BA+B?ŕd bsJa]1AD"ŰŖw?=&#qb,{'2ts=gYdpJV@-8h%f\zs_1|4b~R+8 c`3N 0Sx}󆥋t;ʢ ?updG'Ʃa%9jHhc뭬Z֟;q.1u =y>/ AS 9y&7coȳ{/`ս{/G\UQ: yrOjs(^X9J`*1ҽ4S(5 C} dߧVF"ş+$!FRZZQWJ3 5BaBRa b*Tƺ#1\XFm}Tj"5lMLWF &LAF.s׋ˤD$Q>YήkxsjDsZ33 =\C0<&ݗ}8#!uk왔\Wc JMJ`-WV\!v ?Xc?ltv>]ڊ"8+c 0 E0AQZ1S+90m" Dz7so0^淮+Zχ$U L5$.Z_yۮmf S`7]xO i!vi$OAXFJVz;>/M#NG_ Iq墉Gʳ By༴w`2+KꟚ<MU5)ٵA1bBZR S+%כ9֮ Gj-a;^VvF!&{ ~ W*S@ԏ 4aFKSA!KRJ.$`VCC|XCZk=QZHZ]uu`^%2z~Eea6[c[UxiYEQm~lvB jhI sqT }|]㕂BT4d?;zúMkg]sƇOKH/UT(g¨?1E[tLq*V̰O8*g\m?}sMEo_U,7.ONi{pw7bbUD,& ӌ)#1W63:u\G!3/(ܓ|FqM\G: Hɉ-Z˞*.35;muEVA)SPESk=5ǓEII=4d[Y6Ov旯$ŞwVgxR }s1q ܖ?QA$7 9˰QĚw~阂E+eN E_Q%~K@h GzvcgF{a(^#N8lS~jeb[lx--hek+,ڂ6Ef# |>9:rpwU ܝuЂ!;۩c]J\ 0J$==(pc8 фA}Dfz eJj `ǦMc17y5JY&mP-4KEϔ6n? wy !np/. n0/HBh}O2eMdYZ%;xg:Ԓ旭<"x%"K藉Gt,xC8AZ֐R \?wj 4 \, }c.vRU*(G}4Bw8%h2 VRM[ݹ&u0ˆĈox 6u kn0GSCNZ0'^KgE͂c# rg(K LVK?ru/)|k &wX\3Nǜa .ldg`\wr _qPuUiQ}ũ$$*9d3<ɏ_s7kU++W}zj+d(^&ه F_Ѕ!|@ZE4kH.5ԡ4haC^Za"AVx'0&Ӕv7ܐۼ$X>mқtf7}e:ҍkӾgt~> YuOfMeqҊźb ynRg@޴_\RPRUpR7 HÔZl׳vxY}i{s€m2[+k&2^`b&x|P/Ǔ(e3@"i͔I4 c*earT_{b |jm]O5VyGB`kdcxVjݹη)=C;" !qA E0B}S=kzҏrh[}0W+y$"ldZ# yFP˖ȍKd!cqjZv&j9V|{pj&oB;23JuJOվ_#@qVR v#gX` ܑ3AH e\IДC>|iNh!{o2/_g!cgQ[[ѱS^4N) Sҋ!>AɎ% 5-n޲qf''j7 ^ND^xnFdKE#0y A+sX x Wa[7^Sm׬1E5 B3j@H-FIHE=}a ;zVB]Po/W=ox0zY6l-J蠚̡ur46߹[)L?^ULE(Qނ=69R[+)^:^_QA=*+ ש,ˊ€@!48;.LG]fU8UMB[Qx"nP\YU±xUAJNxgp4%)~̥W Y%CXaMt CJI\lPgeR6_-r@)8y!r$jp4d%'aV8eWwMuBIp)'7+[~mrO+e^ ^ xMpVHvX(8\ T@|ȇNpc"5ȷhUO>Py%Tn/w՚YBX'J Q"d=K#Ax(aH}*IhʪK0i/GV,dry=Iv$IYL7Hwl:5Z/)̻M[l<3\fR'Z<~GٍӴT{[]aٕ֛#f|vo_Z.mC.]Al܃MPgTwЩz#M&)T0tKEYHvo[x;XtobVzJMH(u.iD3)j-&0HSӓ8b a0I v%R()mLqzTp_/ cq4|_YD]`|qMYq/x?u:TpqE=+29YkR E-ɰBzGL: f3B#>e*@ۡ n%ZɶNŭuH/e?8`'(fAz&cܭ׼U_FL~93zhe}޸eH$MʔܪK}eJ[Ck^aR5Wrӫd=le[ST:a4~kkhݡ0:LiVV6\ZZ<~kI0/ Lۧhw!EhKfwsYo0`O'/5H](q5%BK FĊش@Kp]0LϏoQaNFj"3 Ɩ8 ~y;ZvΦJ:4 q0sGЭK ō Qx%xb~cn&R\I$Xg!-[E6ZHs2;a$^*VD.V#;KU)IY\aInOxb]cƊNb4 E}> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G \{O*'r/QJeR~;pPLH'QA6T,4YᣐՍD,tvAzo#3%ja@x wKQ(&f$O@$ߡRFR)RAΘZ VҜEcxL%‡kXrEu`TW( ur.>n[ rll )X.h|ς6n)U6py-$eƢ2ьqS"a$_J}.w+usN :c:[J^V=:GWgu{W͞'SnL^7_ endstream endobj 2524 0 obj << /Filter /FlateDecode /Length 746 >> stream x}]k@ṧEV+ۏR&Db$ω]X9s}ΙL.λi:Ro~_wO]bR$ϫgSz-d+u9MfyV]Ylo'=u˅]+ >#R>Kc(,sY4|jӰk,5|>-|k, 蒆o4I&|Fj$gY/Fbg9g>#1Ą/>-Jpmst>*,|Yc>Cw-|Fb2?Ylͧie~8iΧg> IMTqr>9>˙w9Q ';9:;g8=>-Us_r۵chop2\ 7-+am6/mZ endstream endobj 2528 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6978 >> stream xڕz\PfeԝxG1h5FaYKew鰀KY:HW]ge}K%΂a^=kFXZfff#7nؽrO׭_.p_J]6?Ve|`1e[Iͳ貱LT6Vcw8~%_?b3Afr!23q'M_5g/ .N.>$~aIE+šB %l[}b1#hbHb1,1G% GDcb1BL%>#ӉLb1C%BsbXB,%ˉ//JbXC8_kuzbdďfsqTsgy"@l_DCEJr:gmo]l}qȊ!%CG fͥ>y/;[m[ߟf=L=Wfٝ z.O/F|6/̗Y{/4\5(騗׏;_fo@7f1' z jt42|n䫖wC}6@yE:NE5&s 'N[$+kELUm7w‘LJ/qQݱՉ)"m55ДTI\"U)w(tǵS` Wbuyt](>0p_t2eƍv`95X;G1مF 6q,|2_R,478[`?k톯M>l:DΟ|ρ`^`w & 3o2 0QKe4ebzlY}[ƅB6%R܃b@Y`hi< Qwv҄<)%*}sT@ztJ% pU1pfpcysͳ]"spi8Zy@g-<={oS( Ol2NLiC9E34MfkթYb[pNhܳѕ.=y{iV7a<0ȑO/\ZYU`?PM+ DjR_gSsN@;d+ulR7b@FU# ]sD'ɤEcO8hb5/A!D~wwa]F+Rwu<*% D%Hֲ>^hJY]^Vus\#Ze#5`iF S2 hOx`~3gիy7n^8:Ŏw^v`uML< @$ZCe,FKj+5!Sȡ,Í7r¶+ VĘӊB{=hho*]nQĦ*/l'Gh(1 2%+go:@o6صx%aR`5To/X&):xethiUӲ oߔ$4t1?fU*+?Smڿ\a˿%­B"ה+\AEnD-+ >*('_q୙Ҩn߹T`X^&xgԲFfr 2!A"cHQ~DW)**ʴ6̚$.cZ|T2{2<ȕ>xet<.$=M $=YNY&M)ɪPrZGxZbÓ 7BI_2tIp5&օ[! R@;z$E,A^TZ!A3AIA`_Ȟ8v͚c4dIpV(˸fJryK{ VEr9d3U/5QT|#ec7 #2XYMVsW=8/x06(4GH2U[Rn9|l`O֨?#lH^cJFdOI干|pttO7WzojftqCY ݰiJ7~+w^bᡮ ]q^2םYY.T4$6lF@2*Tt56V#Q "xo<&zϦ`tB~g6o1v, J Mі+8q|> CR>6M<&,/&ub|lBGIRR*ؚu[.+ɦIؠ784 F܌-îZ'Qjxoth\)$hխgBQ` Kٛ;+2 Z!kMnNUpJ.Lဣ}~'0 X;\=A<boQFH2]@QذXTs\3VH!P%]5q1C\ϛvC?E̠U|إCMUcYg_$ T60B*)r'SzXIq.V᢫ʊi>}c"O1Ezw6`%'E& z$W9ՒlrAJHcXe`eRBK:=mD= ԡpg%E^=DbJz$-PysN-F)>(R*R_J׉[A=) ƕ/MZ(c T%2STeL+ƹ 8ݙk`Pۙ׋_^ WQQ;1Rqx' V˚K22r@uysжzrmfqtNFffN^ ? HASh)/5y qs)ʝ].~xڥ7{chlI]N_K̏-*Nw% !/*6%rM5Mm vgB.k.z6 w1P4gd=[R%%G}k}u̡+q6~ /_p3\?2_aF ^#|V  1QQJ#Tz  W2w_rOuv-^trw-[O1*,;!2:ҟ(2t-[6SeT|:R[o:ِ*l^󍴹ɼ[-=T~ذFܹҵ:L_Q\INU7'ξR.;0ɓ]eb[wn&Eedf|Cx={;2xC{d,?BZwdk8 4 6!/6Arp̵go]4W;+Иj#X```""oM`lتysx:WΥef牫Bʼ}epݻw-][n0mu_'4PSh(C6PEQwaWG7}Gj > S}) 4CcM&ŔkC3ejH>LSOOx@<|265}HÅI$gvc!Ais+`Rv-@o&EZq؋uq.eE/o-qQcZRzB98;5 E+uheP"\Nm)|Boez2oR3OይR?-иA+1hgL)_dvLqLr RI)dsNq9hK,wBN8Ӭ~Z@/,ݻ$-<٣W0o!,68 t$Sā:yYUvq~oԌlŞN_qⶍε}@ ̡(MFXߓF<}nn^!V F<=2 ީ KSVWtQyrc h,/Ӌ9:6" +:K)RR{l_[uJWLJ=`护} Sliv;@nIA)ǭ\QZPw];3WY"Ƹ][\򥍁`@-ɔ>hT UeOТ&KZU~M(8rB]jRz/v>3J`N^$JlPQ]5"8bńc#4.`rvFx8Kee5|fݏMV&F Y{T;N Ѷc/~?)C w/M-GYZqnb4 9>a7X~6=[Q˽S#='3ގ%Xi"?63FOqìQq qLm5${>4l Loy+w\40w_xR*`)pِHuj!esѫc&h{Г v´nN:RcAʴ"#}T{#:z*;V<+5uj%ON=Ё+h5Pω0UTt U-A^ښFfV-Ϙ:E?&vxSqg!^3ꅦFH" 2VFa6SKYXHD^!xv&^X㧈~DZ2: =\SuC 3_WJo01&P\/f-{o->Q|~{O~5 c뺽ڟË8L/3\r ϨiC*lMV p\`[ guCn8V*vd V!8_*7=G`<#\ Qy7=#RH|s)ڜ[S KT# u‘*Q%* )oȬ/H%ME *Z1&l}r`xjtzH huo~:P3%Urzn OG -.(-ZgQכ;ކٹoݸ~Vۊe0\ Hu[{8*P:9)Hd/`{4P;[  E .~5Bk>aB4 B# AAZSNͭR VSw%<ꍉ8&Rh^' 4v=)J6F{ )P~?N=[ImOo"Qo ev*?YnoKr4(Dh t(w襕v{a݂$aZp}lGHjb "2AZB"k^M Oug=CYreJ&vI)/LӭzE=&DJ7tW*tíRY/Imca㙋0+a6K(ʏV hCjG^_9Fժ`WLb!yD4uJ/9{\~՗Ķkܨld^Rqe`<:Yo>2:><&H }t.LSiX]YA%/ pL~T@RFȂq -AIF de: QpvET01w<ꝝ}]} N$'iXdU\RX\,׆E̴17$=%uƴT: 9IJu!o.@B`~5ƥ,PG&ޅOώ:]S*NW5|mdERO@b؀ E`^|a]vqq$iͯ'cԮ--\dhU*jM<~gxw{] ݕ= }_nZ)=dE^7Rڼo$kn#߿+YiE'O ss/>3 H&ޮ8TqtWwJGq41^{,WoE/3?&e1Ω4]>@-iW)*U@Pyz'F5p-'(]j_6Zt XnV 5 1=YL;ju*QؼǗ;#|eĆg32Z~ endstream endobj 2529 0 obj << /Filter /FlateDecode /Length 558 >> stream x}Sn0SM6$JMm]Ȧ%]wk6vG+$ڪ9sWmI5UҔYp8A9rXEu4+`zmQThKX$!3ci`'ʔ*=AM*p8NzFrim.sCeTR1;PjbY%%"Q΃]ﲺw'WMY F_y.ukc?|?+ -&*\pT5*A9 }C| 2(7K3O;9N}5;-5cC XF[ՙ4#y" V.;IhDV4Dj TFr3YD`R0/t׬Dc$ {be?Oo[Z srLL )XtϮv:4Μ6H+Rf,:ŸU099)Y!<礠utx)O+.OatvjGGSuhAD4_r endstream endobj 2530 0 obj << /Filter /FlateDecode /Length 718 >> stream x}j@ۋ@rZ{cO`ȉؔґ֩,_B 3.ik8OմH;Wާ>V,d1]YuS/d{L}u9h?3W{l5?>=yX?.i?h6j[7NՋ n~Y_ _tRCo =A&RUM=QiTgjT4Cw|SKC5xCUyjAnL}ruo}Ӣ h$R9W |^Р1i;.Yi_1ZPė3~X[p^?]>O/Fz$?e٪GMv*Ӫء,*@9EUfnQw; jLjšԛ 5EQV §QETGu / _D4|^#|IuBJ7nϒggs8astm81#'kYz1Yz1Yh |gg/>9b5BZ] _( >K>/,Ų>e !>CV'][ip >|q"||F"~"||1~: >'9s;9?''9R>#/cɼFS7cYsDl_W`_4;꽽~@OY^8Z endstream endobj 2534 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4588 >> stream xڍX T׶*TlQ  %c1j1bD JdwfQA0 %q6ɏkgb^ĘO%8ofu[=ܽ*({{JP;܅̛8jsh+~QFdQ@B쮔ɂ}o2>vL#Gr>fG9: ( RgUm%:8ks+*0Oq3^?Ť/nNZݰ[7nM1=ES RT??5rR*ʉr\(WQjʍL Rܩa@IyQ)ojCR#Qhj 5SW8j]$M]{vV'$i5=`DJ &;ߣN"\r s10kYUSӯοTU8;.OsU'O$e]ʞ[.,gR^K ~m {0W!&ZLJd!-CIiCF"wQ8 fX48+䫙-2gU ȃAJ"ՠOb|MCpB)am:^ |TVŷWђUU$x(iOC~Bje&͂"},]ot38mHNL0C/E 䟱L}b iU+UGeb mz °fכ   QG w>"YԀR2 㿶ݴÈ ,Nags%}Da@F-עãeZ%ίnp-_A_f?aSt9A0@)ICf+PA΀2҄SQ<=m*;'`GˑǨzGD\}ׯ⪡M/h?)ܐƐv.W%/mBW4CNTѸ-UKk+=oOq7@#\v{pO hԄxqG Wr\ 0:Xhh z#ڥ/ --ˏ-iFߎt)"`Ўbsxe,0y{נZ)nJڲY2b%Oߘs:K&]ƒWY탦,Ҽ7]HG4rJ:})K=I࢔O Qf+.g Z&.V\mv-JyxIKOsg`r>:٣yYV )(DƧͲYq'am%YB5P+ֺ#g5w`3 7F05x PA n}vtWFo o͕Z9vP;@=/eo8޸_a#1ůzB9tYq:0Wkd(]iE6 a!kfI7EJ:4 [F}|1( ^ր>Qo:@VQaI&si1*4dbU'ew^ƴhwXVRCZ\E ü0FT{DHz_"J6dd Gᱧ4SQev8&Z?Xo'L.Xh?.ǂFsCKMKQ-xpqu 0b0*uCX`Bŕb vܘxPb,7_6N7oq^tc9Rk[|V&e*REUsnj|]ՒcAsV:C){˩jWh ʕVwmRCݞ~P}ჼ9]TeSaɔUWJfe@aBqtx:~3uO[›2owf~c&`enMDihOkJh?_vٞlR}R!DB9_S% J& (+{):M ibT&LgVx%m\8w>7F# X0pR= oT(ѳhg&JxCW CM iL9T_*k{xIQnUnoknXïUEZ'ѯ#/lJkͶڴc2P);삽"K!w7SsKM:Pr'I1EZ!Y#?pYgH&^6X>^;2䇱0Ѫ:q%ž;cir纞z/[:Z0޲xͼܷ]*"l7KZl%B B]9ThgѰ#K*q9E#RSՍz}-IJ1ħim18x8kaZz6n!^8'auAH&&l ozWCg kfƽ/ ҅}FLi{@@W~z77.(o}UǕl46̕2dI&-3d2 3z阢bT̗X D 2]wWJ6N'ON>9]Äx;wDSW-`(9}SVMu*ƒA,eK(A<tÕ/O !5#j~(dYK8͐+>@|=Rx+%x%F$b8pxVM\"ZH"0MT q|b0GäBS/^5$& X.P~d'A_Qăܰeskѩ54r2Dhm9[*t|XS^PD9C 8lLlS^^yGG)8в;\hq!Qtyv?28 endstream endobj 2535 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 2536 0 obj << /Filter /FlateDecode /Length 573 >> stream x}]0ً蘤DdQTeﴉnMrR]زӜy&/_`" WJv.nUX^^Ez˕n>JVEW VΚ1tzIպMSubAV_7zWGh0-2v!k?1csoS㻪RJ͋"puoaiYd3a,m_"QJ ш wZ7a pSIUeBc+˫ %㱯&,1W>CBȚ{RuW9gyB<:?2 Jd4ORib:_ǪgcS*Z@ENTy1T7(7BE&PAjYpK(da*_("'_ | | b00 00 |O'_">͜H'Ёdao9b?>d|v/*qE >᝞'_ ="魪arޝ{&27CYfnܥmVmTU endstream endobj 2540 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7773 >> stream xڥzX,"*13cK4bRDzGgw {ѐ11AM$&zy1ɍ<3sί] akKH$~K?X0oQ?\-`1=XNyqnKŷmDζc>ߟTD${4^lo{ B Ca?^GHd= 5qلMzؿ=E`6y=n K†I#]n=ѝp z=^#A 9чxK#%o b01J #!#(b41KK#$b21JL#3,b61K# "b1XJ|@,#J bu6mHHUjJvrZztIѵn#?{=zߣ̞{Q =[-)OVַoץ~}]SƲo_86`pfA0 .v0{ 1s1h<s@f(44`:+ƽ8<7%аR>VTlЗ0*TmG6xm<6ENh2ܐpC;AT)L8.sW*r;5IP/$yܴ,7Xʹlb\! 8:\VWUx")( B׈}jCأ>XU|g_(  YɛyTF(ΏڪHZyk~vu9HlIp i0ve›`Ilo$7&t9(1Uk_ěd_)2[x ?9` jٷEmH"x ?oíڽ~*c {~T$ l$H>%+3r,q4uurфK*8tq\a0v9%hv0 uJ<7 iuZS LH"<:l#SÑEXFJ(ⅴ,cSU}Rٳ\(!/Ua=M^O ֯mXX6ÿ))dz0P5B5Oñ=ik2u@T`&lĔWk5 R&" 44 "s0tzOSNuu;/Gߜr\ToE(8/!R\dKOvMmhs܅S(9 r޻J$5ШO5c1?i9 P2"%; #b"Z>Ϙ q+kWLt>84Ew r=|rfe219 KŨ*26t >@}xP8 gd&_!_h&bkp&_Zsh<%+JNY"W^8iF.,6 rqQ MVT.Ѓ4DTo`Ll}S7.["hk4݅Y5)}>~:h4?x;sQܴ-sGeO|iy`b7zjvJѼxt ڲNql[=s3V_ 2v#}7%nsw\ݩ:wsgQ85Fƚc`7wTho`[NW vPh4Id6II`; Ӹx(mny>E0cJBwƺv)@:a߾JxIp5_ͶRd7mx *~n2} y!zڶl Cg>׃8Xމ ep"[Suqt?v;`oI=yomYvkrc+[C~:N  Vq*5!1UeWvsp6ZY}ݘz'fcT_Eq*MZyԗsӵZ逮`AM C|fe],zpX{z\nv5Ԫ7`:V5mTyʼZhn-{ Qj!\Z1qȥC͇ =#jab/a;e"L `Cg__μSZ$w"jҖ>+n<{&h$5Mji9/wGJΈoIE's<71[w'S@ `ىi99z~r>#`Ӟ8^Qm}-fsyW!j-t/L@]͑# O aŠ"j K+pW 0VZv9`80͚޼_-@Qp҉V־¯ǣwJBkw;5E+4mC$4~^><#YΧ?^@ؿZ^-5XVEXsw̡ KhX_T)UZMaIaKWb1դ)gk5l4Q ~nyx ~$۟ U^zFA#gvF]Mp5't7 A\*jٝB7ԃoӗf^As{XG`[L6э6;mZ}MĶ5w7f^G SW}I`xvByPy(U㹝5hftL\p/9EΨeTL+ϖޙZʡaS瘫.ބ3hKe.kp55dg5Y2EҩN;9fz<ꮪ=^ve9M I?[uJuY`IW 3LNr;,r QُD($%yRNhb1:QuJ7e'5OKg@)6`~q9|2?3j2J;)y@*Yy,O3W26]i.Gj$iCz+s,9&[^ma+;UǤ\͒7(zrQe19˚>k+^cNj;^Oqjq:;Zݾh+Z\^'hR2Lڵ 9Yܥ㭺2N΀8z1hrqLdl|R2"R 7ڼ-ϩ˧[D3QR, =YSQ߿wv)Gf^J{YDleC-*R-} Vgbkxt vsm.z}3^li=WP୫v d 1ۗr 1w>O1c1[%?>;ʜcUCu;\yڎۙ|+E4aӯH;ϣ-\ee@br`u,(8pC =Q<8ӻ_ Q6poی .mͰ-R"{Q CNV CuTl4 7Y,*-ZJ1 7bk4m0}#X%LLp >!q/o[kśHváOdE:u5\kVP{^f@*j;}o h-{؛wy.N/ sX ɓ<ԀRMECy_etRxc"o%<;|YꙚ5IbG# N?fo7`}b~7>_#QE2JmHU" HR~|: pV A 5:].#naF ;H?hdy\Ei<Z֓VՒ rA؅FqP͖݇=|@wyt-\}ֳxEr\*vd7]p=2 #A9 Fn<}Jk[]ޜ֔0vB%}.an>{Pt|(p%^`f7jqwʐ:ߐʇ|;N }Q<̛ 2́'P't@Kme|>}@R R SHrO}ɞ0m⋼t71>)t=+x+;xz\^eML>[y+#1Uj0f\\~d4_Tua |XˣHpA%&WTNv氜]cC[Q.~'OI=,ݮb\N<:|Lf^0~1WrM<@\4"9r،4}&Ǎa s+e7ZHb4VT!2,<4 {"G..U2-5#>6yPz `?PiDSǕR1Ѩ5t,ȐO7!!sW+c8Cyyўk[E6" jPf; [%RX7qoPO\\:hn#h x$zvND*rD' ·pݴf=GR.yzȉ= <0|G+Oyל~\N{q%R.a-<CZǣ.m^䢂B-F\'/rt~0WVZPTFFGo8x.?Ao^'Uǻ~'Fy+TVt v?k_Α\98:9GoϮ|bjLB0Xi_a#b[X_psY~i&D}PàՖ5F-,kmP.6ng3;E;]IqMD\.wb0ݹfe\W۵]}7nFNi3u:E{{S>C3컃@n8~ث_?[ endstream endobj 2541 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 2542 0 obj << /Filter /FlateDecode /Length 700 >> stream xڅɪ@>EBE!"#}'TjR +hC+Ws9~x$kO>lˬ.bvy۝gq}֦z:Ik-_g]l5_[畉Ou[NS}Lͥz[[}M~zo3Xv7a۴:Y/<5GfL?uQya}`aYvn(΀:eCjec\$fИ469dш l;iYg"Ejs봩&cJõnTHÙOD?NY|bg7?fj"߶& JNK( RN *@\6s,3g؞&Pjꔠz3͡NI\'rr9C(h9"d #( PI F|d_ȡS_Z |;Z>>y eQzSE/ OI0:$&(( ) >YKIRG HrJCu yS$M':$O {R`"FQF)ȇبTtIO)EP3$5?Q,{n袴ǧdq]63n^sR>Ϛi5Ѿ s( endstream endobj 2546 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1713 >> stream x}UkTSW!׫dpzڣ۩Z)bG "$$\y@PP*(*vj|00եӱ؞\~̅ΟYkV}gﳿ}k-$L$G%|e"E*EJ\F4ԿQ*\̭%2~p9~ [/8sAX i5֤321GeSakՐ_Lvs`cךۦ%: G"|~yf󼡗ݜ@sUh3-𶆸%mlU * ҳ9((UUb.2`cBa>4ZaC&,S>n{ާj9DkKFZ{!KxâU/!0T{ k/]nl}5E542fA3bK1W^YŀQRob礧eXX!d :ͩgQ򍘢W~D?]~O~da _]ۥfi:DVf)t2x3d3^گ t}Ec)WhWPc\ sbR gTM)/oڟFD}>T0,5NKI!52&3wtm\ KFl1ƪ\[@.;R6X"Ilt!#v/z6WufTjd,Z5_1KznIWi#: endstream endobj 2547 0 obj << /Filter /FlateDecode /Length 566 >> stream xڅTێ0}߯]^W$Nb5l|Ӻ@b{|̌=ǣ$цji`yҌ}I-ncfr0jMQThA3vH,B:0֌f2Nۙɴ.u.2~^w:Aj5i\^YsKU$YЮI(*=vK^Isb B(p}mAُxA>|~\ RrµKV9#|` T&ɷ+;ɄydCNPB޻%>YH[LOt<={siVp @2xm2 iFDk*e!*)܀%)Q4T(|xXa&9(W\@Q `u,1Hϝ}Ybut!b,WȖ{}aϤc2r'=ȧgrFԔmg endstream endobj 2548 0 obj << /Filter /FlateDecode /Length 426 >> stream xڍOk0@rp-;O0i mқ#MR-Y>+yj0gyǿYp'65sQ }A(-,Z,҇TI;uT8q+AׁI?o|~^PYY(`۶,L|m.mj~"`Fju c̽xTb+?t3 {lwk? AHn +!toU6 0Cƚ]7W#HINu]w *p_ԅRT_/ɥUH;n>ti~p- Pۃ~f ̟5E%zߝ_%,J:;fmFtNtNtAtAtItItEtEtMtMtCtCtGĈ/cNxk ;(]>7pj+\AOOA C endstream endobj 2552 0 obj << /Filter /FlateDecode /Length 31402 >> stream xڕdWu&}gONU7ͷsRR+ B l6c8bd yfolr}Tսuo>N ߷4^vgn~3ű~N $cyyF$3?bx>iK;9=M3W>V9/xi g<0>Ma\Sb_fi:i9~ٿ/zﵧS ?>ў_xogSvkNnЖ6uקvNh8^wжpџ4zh;ѩp=ii?M8Դ՚Vo_ijZӾ_Ӻ M|i}66vMy=isqMHpn.4M[ıq]>㫚IM[u_iuM㚶c~ojuM;:?50hW;iմsM;~74oi4+5B˅M44iG.._BMcs%*qM{j5Ѵki hڍkMkM=MeYxgbn]n~3viwOy݋iE?VM{y8|/_|ǯj Ц~YƁzciM{cyXs`<^YM{nM{bi/=iϿI^%/A^ִ8X'5u]iGѴ7?ވִ_œx }io2-U?!M{m跷?i8ik+8Dމk]?дw_ {p \-X~k}hB8i XӴ?*kܟ]gh}c!Gh_`XﵧVXfywmuӕO'pV>U.3~/*{ffvOOg3}FsPKϠ0nh<[_*7\{?9EDdCYl|uE6BW`h7L"cPOyQT*Q^uMۋVv}42g JcG/u.H]9e.a]"ӡnP WrK*"s2Ն炒 +Х82Hk@7%2L{ڽR25[NK'3O])b-תQ>{"%'*(/lgܵ9rC;B稖zU"MM06ܠ[)tRݡߝiR0:O4fmcTÊGXl8zB|b>eqDDX>1NICmG[ -!ˮǫs3p ;#vYQ5JT#<4zV*VqwL-ghW$%&t:2\|aUN* '"lsò,ˌAӊm:\*m^%&mUFGU%;ALMہ%/ϪHoRh}Ekj+q'*ziF)V@ ρDv>\#ȅ,&.cA)?IoCɯ>|}Unq_bSx( 7MF^y͚Rԫ3~3=:3ñdHlvEʛ*y%̰Z WqdIr৔C|+\SMZ8dq1\nm5e%u#h B6mH/މSde40P!U>GrCb:`TDnXOoNmLzzVh0p6ÿ^X4ݚě׸hy8G"Q}ה)'/*Gp$'f;=4]ycaQ?  XGzMra,8ωNaurF/]ZP**|ģŞR٘*Dþ3PkWi7!mP#~~N|T@+cMV˛Y9nCz0]'9雺~}g:vwu:2ZҧRFeʕ<≋t ݐVBJ.zͫ5fK 7l-^L/Bܪݯ==R4q#ZP;ݶqˊK٤$1]2u̇H;8Ktǵ%yf&5OXO<2 Rj2dC7 sS)f-0nB NF\P+Lm%J1lnfO&iIZ:l۵c .2|?rQoیI-?5'N LVl#me.5sg6Am6B3 _jW` !\)tU M_|Jݳ gȣp+܁ѕ͐ɬ`fFM*RGض_r8jqf޲GkfB^,QS4%SیC76k"n+ K Q0iMm`6&eTOwULm[Xk[hMrYHK-yޔ̔ 'ڕùKcɈIXi*1VqwNV\ &m}!ߘx|ĭ 0 PW1 $A3~1313Gˇzl騁QY|nDc!%9y\IG-X 72`;<%NЃcQ#(%&5_. =muW-d^݆SˉKGItGѺ+T{q{k (Z vK#goD]^-D Rްp,8&nkYd &R]Lt(At% dkN~rn,ë3ƆMA@k,-;Vl 07a|eڧpgp$26&ЦM:NF@QOy FnwRb'95^gxb ꕕ' %s> +$k7Tի64:ޱq3PÎyݱv|y`q˅c(x7sY22;FWvg 1foťYNRrǍfMby2J!d賰hGi/p=o҂}JߝU0} Ro՟2Kxi ZϿP'z9E42@zEn $6sj} )6'8Nߑ:z^yy3K*fI$&"pP~~zԦOBn h %eqشaUXA]84*d8!+"_1X|t1YZ,CL8 Xu뗣^RQ NF]vVˏa8ҮGKۡM<.+ֶS/+kǬx/܃KK'r5L ܧ.+d|r~9Eap3WL\_2^Kp+jІ  c=̂ W,CW.Yf~"K~Ph$;1eL(lo`O*ٓ!3^# ɝ +O{4OJԬ2kcZܘBNe)XX,mt!LfJ=>W6lJY"8@DR IPB /{4Cq.'(~9fL:ggHnу\jqc#uu 81yƣȮCZ\5!a0yV0DbrzT2.i5G[XXcl-iS3W~E} w?kqmL@*#=<8펓RcB"9"ty/W_MU#41#n#qb_ jD W`Jx>! 'uuō:&uLVװd f5ƚqE6lS|5+opo\9]|IX&i2g"4_٧(Qm؊i%D`gZ[ú{'Ůtv,:̒q/\#Aǻ ˅!*A ("o:KG.KLJ< >PuͦhvbG1BqSyٳ)f}jvj9T.Lr6ehьOVҴb%xT06A;#vg?cQ*A~HE^ú&TfZY<H[uHt$dnS}l{~b }%cc5؎mTvұ/|?s[.̃ RR  ƌ.TbNC\P;b{VQoy#xeDSg!nRch҃}3j 4%k3/;:xi>ajX=ŕcܹү&(@5d祒;o]sdn5imSl+KۃFq}'tgr`($UdJi<5xkf8;:?0b:kI%0WpIVVJazM[ޞiOj'Qz#K+ذLjN'J'5&:Ya=RJqo+~pGM@oȇ,yD$n$&t[|:r\K ٵ]W! ֮^٧7HHBjB -'~֛n܏B4 @p Fw8RsK=!*YjnBq(7o "C3nL$8XoJw=M^74*`&% 8T"ccQ|nFXXM8T_RNS6CGM,Ձć ƏS &Y+ymP)~ɮ8&0<+}3.&Way:$l+sEOJԯlkUG?ͫf"L+ G`Fa,׍QSTtRӑ}~/OKT?1n.NtX7.koqSR< M BNFLy6fmV!;Avq>U1厬9r▕^pǺibqy_ A'C^3 do6RDͼCjBz` Ҏj't,os:X1CbYp-z-mV˦~1VReDJiR7x+u):y_SC8gJ6(M=I,'e5\nlE୕ +e؉qBޤMǛí\g,ol>H(TCSf_Cߝ۬vbt9t$ـ3&9(e&75j/t:9,SRĊ},aK~`c76"f@4j^%f^Y[=W=wgB> UHTrܗ)@N|{nYݝ*ϘI@7Ӡ6SF0 fal, ^!z<9BzJ CV`A̲RIfq7ydcD4Kir-o ʙ ӵu֑n201 /~[7tw`*x 뭎n\|2ڑg)<0)tW@*@  N蝛j3Fxp>cSéi77T`e&Ӷ$yM)oE |t3Qag; N1UtgقtxJA>gB۔&+uOu,kX y-W&ƺ*o fׁ{-\ֳ? ]Uw+> od`d3q-D~G+30A0_44p71ia;-(D ԽwDatgl$o%'#9˙A8WxI{+s&+;ar|ss"ǃ\^XYNyU׽- ^r8 җ!Ohj =# 41FdmyvNmFR_ݷ !#`H :!f5cߤӊd=(sI.@"݄̆u`"+Kf䇨r0T]5\bbqD7KnNJ%*Ax 2&/ *F!ntӗ1LWoY̝ D!;c0)f%`1q1.ޕD_l*t/KT&Qt?]k{Jsb! N-}? 2Efieo\jYUiVm|=y;\6ɏrt `kp~$#x|j YَJ ?1U+/݇[!׿s)K\;G35IIgC%!= A~+;V(H`}%+:]3ŸV0,ҙ]&RٶLZM+Ir wGn&8*W۱fNIy5I]ż7rϓ$p ō&bhi8^VI*,jNL[4fhT߹ a)=P-D bQ~#oő #Dɸ]~ȼJ?>A@er'#葓sQsUNN0!XtmH;ЗP˖4B`BRG~KPxz{Mqkԯ׀R)ltuvr YIw医X=j l -|HNXW$%yGs~"=> (p< ϚT'8@Dg,0R2:Ī-֮Ap",(0|˽ WwӾi1 e_ KAXtWT*0i,T |`GrUϐؙ:h2? 7!Jl6 0kJTg0suGD8ʡܮXq̋rDݓxxrj}"\ΩF! *d$20(18Jca9o ,D{@P`Fi# 0o}WmT^PM'^.:o8I-xl߶j1'e)R, r:!Հ_Jt='H=歹QzZ?iT&ZIvwZuOE>{ ž4AExAqH7Vyf}c`_r`K|?rEyW(IkJ$]B.ʲ+MTӨ'%ӈ 8ArΞXZ:a0Zd 5kwzίG1#SkF찑Hdp5x*Jkn)v]DRyTt)9Ɩ=ᦵUY˙h4\_F* 甭/,\j`C_aa]m#`J-68޼l qߣ9V 1a[[tOpgpUwrpDuQyWN0tTf%`%VXؾmH: 0~]~yU\m$l(Ÿ➝M/gy 8%,Rx%+2)ܷv"a|֨#{}6<*e0T+o(uǺ(MZT$LEjDžxM,BԳRh` c(H^l&qҫEQD$vdyK/Jʻ#9| l*2[ c1֨(RJ:X1G8F<ρZSJn_\2%46^[ p>Wb !0~[TBV"fT1'*N슞-ݕKx-V6RzcJ=|\ˀI]hHt{(Cfrpmy;t7K|q뻃4 yVNn`#uIHаlV`v~C'$Xڣ}jwQQs F& AyQ?J‰xI1ZLmw>X6}_o_@3^ bjoPT{ ExQq9Ka%"ùW M~*Qvq+r Pjve˻DV&5n$#O$~К? Nv=Eɾ};p~>vޮ,ݵvA+~?yU#A偎i~y@ݵX-IO47BҎXN/q8`.Z V9:p6\R5b}P\-ӑo=szB#JUŧ9i\/mzn&`i8ٌ$rzfONdrD`X-ho=/T.K'@fܺMEm3&K%ܐ<fS~/olD!vOOԙLLͺ`@ɽ{3=i֛ Ulͨ-G1LŨU NI>NߩEܢ=<\щTus2 B,Kamh' >DM7!uv xL6v}WVrP\E@ "f;tQU,K8M#t<PT~Jh]Iܰ37UxzK|uV.`SHmVdKG 2K !H)Эcs ɞ={^o~Z_ ŖYfSsL잙=_0I*940ˆęӟl"hLOvl/ Jz ѮڠTovbH"?QG`2籗S*z~ mZz5Afop&{{Se]f6371eN |ȭk)[HLdɛdnlA{$ U|7ɠdxVVnVqwB«.qPNR}uK^'z1Þc讻B-$X(+ ~2`] ם ` 5) Gڷa.;I/>"m=XxWvp\9~ܚ)Fc7JG˜DuP[{ʕ9-Si$a۝l-%7%pPFo.G-d@.@yjN&i”*v3rÛ<uA8̚ C:Mu3Z: w%X5E.P ?؃uw^3Ƒ^Tʞ)$˘kLP3hDc$;QtjtAη[1գhTģ $t?ṂF!)"ћt|Rǂ!~(2N XZ~FFIZi٫;N&(YY],:6槚5YO.#k9,1W} N h0@/+ ީ;}襂ҳKBMm\ƶg׉:MV8>OiIYBd1 V}KKV[% J?:u3o$(eirTrrTʩf3_ 6@N=9 #2Vš;pMt%;c%+ufZ"' >w (}8-BP1:cTy|T/8:4_6Tj#d^x{7|ו67WTaTak gtF";5ʜ*aږߑG*Tg.4G/,c5RA?/dd" 򼨎? ՋY#1:(:-7 quur= u^J 4p2K\}wU TE>34D! ΒF* |ʅK,cL[b嬪?P0sNX=ePAs=_쀭AGf^kO'<#C:LD~1.p*cBYW[[࿈wپ1)S@NQ3rT))'Um9C@VXƩ/e65iEqDT{y=Wifl?J^B,8̼K,ovxu13*r|:! fB?P*nSrNJ*qA\ NU7lgNra6 XVQl:PcC~ B7"ƩezB b!<:TB fE25j >u=t2|:شtHQ Xꜫ;`*lbnQw=U壊F2n|Th<4]Ū^üqh#ѰdQʎS^ U_/\6'+zj#(tW/de۫l ͡ y#!o7ÆAENx!JK88 o@xa5ÑD*6_GV[m4%ֶ[aY1]8Q𝔼t1B YU86p|YnA.Jc,Ul۫k|F(҃}6lKؙ2]jxZWKݰ-V$~B^T # k]^XdLa{qWn\ tpk^Ɩ Zރt ;R*& watUtd?CӾ ^ū#A]l/m3TE^ʣYhq zKTϕ\qT ;}S@TQ@IA4uV& &MXB-Š( FR {ڧ h.Tv1U(^u"8BȒ%'i` gF7k>9e & vuikÌC9\vV wWwB|Tb7zfnmUS(=w8dw@IT TVv d8 z斋lױ[޺u0aOKgʉ9^2S LIRA s jM} pѤ:ܟ* b5ۦkZ/^6bn'?k;d&ƶH?ԑIamp%W:4J Ku _?塏 צ*}UQ>ȁɱ'ʼnwۀBFxW\ ժbq*}j\qeז0ii,@P˺G+@.[<&<E(*'Qq 2nv!swd>U`݉6"Q3i/볙g5f\Jm.NDf.$=frd0+W%ڳ?qhscٮh01}v)A9vX 4tIF劷mGΑ/gP?0 P7GU^qĺ0vTY-׾+5 @Iy)2*kl9ޑNVOxJAt>&/4l,v΀Op\HɪnD LWl+efˏ%YE߄ w3#؎]َ (61 dj5&@DgTnBuB^Юgb.0n^(n7Ƶl(o 1)7;̨`4箛X/=-3@wxq" fȃ&I\, ԒmQlQ5݌&:rqOvMᝑS=a"y4NUHmtCQ$3zQvX=چ NTYr?EV<l,֣- Žiw Ռ'δLW`:.{e.F3Za2j J AsM~ͣS*D_*3FΚs+7>˚q<#c &{瘦(dIy{X x>>s M4}[USh&9.h* `4K>끢'gk̆aWQw, qLLAOHZs-L$: ^OyX U ٢]Wz .QUT'W *ISU*#2N +gVWV3$Y$"qR@کW_-P>WigJ&ϐ9HʟNxxG|ɕ2w(Z 6L??:V5nmA SfL#_gpq\di{sE t[Uo asy+hO.Y7ޛ~yGˎcK;|BfD[p,w5'Q7/G”\҃TQ5gHV?>d1AY_$BߋZ]o󡋎-Oy!$_^TE/zl-Z[[{|$= .JS/ l\"jޒJ *t3nL稊0pO'a\2fXIP=_SIh"cnkYI^ߜ1Io~3kM5 <3r@ɨ3"L> H]e^b`ό1y @9Us[Y`;8- rz噿%(ߐ$`k*raB><킩{P2^9<<aY"{U\w%^3dui_h1?2^m}}mBЯl`T٨+KK[`w/$\b Գi zay[RfrĜ|(pmcT%X踼hM+-Wr; =_5 Ƃvl4x[$ۂ鈲` >hq2[Ps /({?ɹ1Yf`/$ߙPmAr3&n O}'sw)te(_&/P܎ס: *rRQe5^||7R]WŢ vߺ}gʨ8'1fMLir2;kO'.>8X mFm& *MvĠW/P{dɽUma6GRP&0Br"wсe%/G뮫"Mվ%<1'57 ,_Ɋmݺ?JNxJn]O%}# ju1/8'CZ5=]/QEHA)b}A=jR߁Ma\}o*lMqN1)U|0JAٱ1ga5`'jl loT*5]!Yn?>6'9qt; /;ʶdl >æyuayV1 ԘT{a:.y+ȮI=7V|ės+*3_V,HeT7 ؋i$Dm]q\D|qb܏0E<1OL 7|4-pKJBhQ%(m}-$}Z Zaؒl(ğ?;i}2/ږWOLd@78Nm ~x-os3~6U,k}cNW'ҙ!Tԣ%*ϖ&m㱅 }jAىrS 8D5ùa_:v"aߝew{ O8+0X+s:Mj51i qo(1 ?,,g>rt=uSO _iԆO׫}ۆTb>'(]gTM[ ath*w;Xװ ._ M Avh:H}L2sTK!hqj)lIlm%W8 L;DG֭ /qE6$)yzU]1u%PAK࣏֞>P3"qe;iH,,xlVDv-kkCBN.AuȢ,FCia+4 c^< wfMw܊WjY t:+.,R0:4׏80Ɵ( ͗5; )rdMIFP%6d||H iRRV}fJOY(,F (c6(aŴAU{>c#[+H?*R% Zx#Hw1V}O3G I^^sri%aFry.On#AK%vxøcP^C%z+. r|6|j/83ElX?pmqh´|M\7S}C};Sl;'CHU k‰XQEVp&^ڊMy -H aYQQ5۶吱aY{L"z*0tUCRl6O7W3^- -w8t]y`ͼqrrmbbòxՙABtLM4U0#/OS;Er jռ5(yBVE"6Iaiў^{=gM7LY>G gFmv3tPeh\zLa37uf55F+sFFIJDws5S:1m<& !驂 a~\+ao"솑"WTXXj7CXC,}3!e~F.ٷklIX9v#-{NlhxK=n-aUxԾ6n$4vBx,aOɻ6ewqw`xȂ,mĉUW 67zJ4‡Z%}z:*] kءoieqSUᖢMP.0FK' H:D݆jY|JӊK#ޅ>a3R+ q9Dw- !G{R֋}+!.W._y狉eGxK߆I9Uع{\fR`:Pv9sLăOY=l:3x^Xl;joXIIb9U؆ gml[JӛM;wLLY bM;r 2=} n MF)(טH2Y Wd*E%Napb}CŦ)AT0"l8]trmM, dNI(5S~\Oua[ b`riL}|F}N̍TSp^F'BsQ4~uL:Ia+u ]kBz~0@Vv6lS}&{Y'!WB!:_o bK2S8nM }ۢj3X "w 77Ǜ0CV1_Bhd W+fB lZF IqX=afSz#B ɪ*s׍e! +,LEw':ޙ*b;EY@aU"K9*:b?E a Bbt7F$M7`M}jڹ$1rQYn mKyȭj#2ϲ0rKn 7A3bpL~ءiF~2M8T9eQV]^Yv!]V%Noq)7ps'<´ 3Un^|,ӣ$ӏ ;@Ս-c퀗4a.Ya%ZxV:[/)Yf&JnR~ WzMޛ{kL7MY]RUeVx^2=71̏tUz%p6yYd%/vQDN:\ KXHdB i0jm)rc? z#qqEʘ*m#nq[ڽu 'wݦC6-J_4Trޯx?t^}Գï<qؼ jg$.;o8g+zcǎO~׃aYJeS8Ke$tj+ mw̨c P\STpkv w u2 $ +*&| >lҩ?{֞g1{WubS]zcbR*Tĺ^!~,Bi7]/0<|̃˟:m`&~j.\/:o,&ޮn]~MEgòZ+-CFrFm6KE 4uFVQ:^Ƞ;eJb2ˤ ppmF-[ yq:I> E( s/`ړi#ROa'`=20JYKx- e0R퓓d%-/IycqjŇ:O6bI}йģۓ0`mP0CX7{dW1[U(Uԧ۶Iõ$m8A{p"$p5 JLxk{*~Dm+}08 _ʹF$I lҼ-K:<憪ZJHc"efFY<|a!1Ǟ6jV‚l`̥ -nFwh.` ?t|82jKɥV2xMq;i̤dڠ 2tƬP1 I32+3p;c >ӟAh/v0 oAOJsrR0.MPUgd{Py(2&Vȅ@@XvwN6VmbHL qW(3JӂfgإU(Z(0,/1Dbs}> }@@R\S55fP6aAfD.pBӒKyZ9C9,tƭR~dSǦ=`R*JRA_Z&IO5dW>d**vy{Q]ٶs{$qxY;ޠ7FFT$*enYԽ$*RNU b F·ˮD{]Pjyf5%"w~)i _³'}n~N0As+oYz 13M`C=RI [W9AasoYbv@vb(Jם=5dJh+i%6f5޾4}|r8S ).7}|)`Js[@q}i^B g!r:,UĮ-sŇm6l~xb/ozP,;;*L3+E O{Q֧ za>Y>qvۍ*eҮjޞ$tr ̦'Nc )0)" י*jBu\TPoӁiXyYW+ s<@62=&ies!ke0/A %*1dq[An(@6Ղeco;lLyUSHVmIxe%v̨&=X=av9ZxCjIco6O,ԸYݕrvmf% 8Nm X`ZGirԖRT;K)/'*#ctX[0j]~ǽYew$bk«.aĔ$w)zyt"a^BPGb9]WAǸØ ~Ư.Az7^!`4| b9*34]R,0Kپ2_[bWS,8.n?+y0ޛ ~YTpHa!Ul_>RS[:l(أ >)S*09J|ڋEgga,V}hLkY"naq9z`8f&aK;:.*BnJp~n{]*S3lI_u3DY૊|O,(H ӑ~*u&cEvHʎ£}5܈ P2yu/gc>p$8yc=ϊ{G9gx>loxoC&~>'Si ϫXܱ>wϰ~cQ*c>{;XyþPFG{x?Kwk)wl v~WϏ>#9Q[|/υ~Q0gc;j`T۫BUTe@s}6gkO}W W|0{g¥T1?Ľ_á7?S|*=_w|}ȁU:f>e<8"Q|ST ?kڇ'~Uz~T\7T^2;ZTE9=?Fki(?WQ븶_w⺾P'R瀊a|__3|'?T*^bl2 K'pE|Ͽ{u)~G{0~ݢ-9o8|8ܗ}N._P8?,>y|\ZNU{5_5} endstream endobj 2553 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 2554 0 obj << /Filter /FlateDecode /Length 1534 >> stream xmWjI+z eݬXX˻Uiy13:+"GXs*+##2onzu>o|=WyypUݭo}r[׿o9?lvwq.pv!t6^龶κnPz:>_r9y:N~p?!7zoߺ?<><|[d]]]||ɒrbs|9%/e vpo?_. 쯺i;E7o/VJ׻տvvXΆѤ+Xj -XΛikhʚÚs@+4ˎVl ܗp.LrFYseUhJcOkZ,3.[5l~๡˚Αq _>ϕi04|nb|ȹfi5|!'YD,ZŹi8'9&"( ^  k(Z _hjV̼>g  >]&Y5sF2&74| gE7|̒VYn2Į>;yQ]KD_  -IvujX*|Nb!97`zjQ`wX iXhŧ*7 -Op{%G&Bq,4 k@e8Y#Gfbm2^LDv-Y+g Itm1Ng+%Z }.|h( ,˼X_$>K}JM[/ԧq>}Z,99Ӌˎ9Eրo|:ԟd %T>IJ|5 쟢WO98o c=9,/fDe'#8Ȧ>Ĩ} G*'Z,̇X]}&%7T"1"ӈ"iw̿\%?'L `KBC/ ybQt>݆0,N??j$ab!IaD9-"_5^@"t}*N/J#/B-O(Q^m&|Q3K^,2_L[X4%?Qr>#S-NJȟ(2a>Ie,t2_$2ߘ4\fi+bṄ"/_!cf1ɑ|O_2O*<'L|_ɕ &L UP ˁ(/Z U { QAԢgK>-`>*WDK%s(,> } _ j/\nE*ЧwDTAa5胊QW'WSg>|KUԟ!D||E ߊ |Z*?KE!o:=~y&ó=a6k'g|'f>ND endstream endobj 2558 0 obj << /Filter /FlateDecode /Length 93103 >> stream xt%U%gdDFddDFz/վjlό4hF{FB!abxaV@D{5^OW{5qwPy+_H[5 > oG|G׿cH*!O_} ~Ǿ?﹡oqS_X}/f|9[玽\8oe8?|~+?_e;O:;K~?wr3_QƝq.?|?y~p7۟~P|Nq}x7N3}ᅎqklħ  8o.#y|tOtAx'`'}"Iy+S8m8Ko?vO|S3qgY89;g;λpmy7?8bw_ǎ;}^8_v?8_> W_9Wk Z|CM8kO'#q 8ߎNw~|?a}7{<?#ߋ}8ߏu~`~8>~~o?S?8?kYÞy|~ ߰G¯`~{pX}kxƿuxvu-oyg9|;qGG8Ο|)~ϾqޏX翀>1^k\[[:=pM'Z8Xw:CܿuH_ty"!Ssrsb7> gRCJرR݋;~C^ouH{C'xCя8dRLG9=9>CCV8d= %^?9pt!!x_K?rȕw8*~m^!r;~;?!w93wȽ!_<vy/p?''Wy<u!OC{ CA|>e,Kr.ǻV |/&; /zC8pȗ`-ߋ}/K ,qȗ!_5J쯯Ov k?!__s7}ӷ9?~C?moC]9?}C={!|?w:䇞XźDZ7~{駰W~&r_C~?usȯ^X{w~u_a?o9;w~;:c_w8qg!u)ϰs!b +Ovc:䟰o{{Kހ}ҷ:xOu\! >q+7;5=xqWX3Wo9? W-_oO/o?pQ|}rqONN:pAr1bzAJb}!%"{W[ՋiqInoI95_$:<[PiBJEU1ΆÜ;3v.:87\\\Kz:9Yk<)89)헹ȫJ]@M~MF$DjʤpD *XY90/z %<3uQ'~R{,l M<~+Ap6Sǎ0U'簛|'w':pf'*zUqe*U?%p7^v!K.x.Wz4Ah=7TGJQ#gA9ק+9#&!gJ|?/*z2,QxGz2rThB \v׹\q&U̙<=qJܛ#%tK-}vvE_>yTV: i64Q.&LHmˇ :,с΋n秜s͹y=!C{qkq ʼn (3, lVlY(jޔ!ϒIQQ,7I&7!\{8` P?=ӓӊ/fbsrpu$rord2c'd"PlϹ jqX7go~sxoF͛7_m3K%B7헻u{=>oc)1'vNpǰ9_cEX vvkarGQOAڨ$ &ₘ|YXԣHgYe|XRea:hK]{<{: yVI`ؘh9Q@ W'̒'}u`ٟkݧV[#CN6vlr _*]ͻ<5dbXw 9`hd;?*KO33/]bRR7ќPܑy=F>)L '@uL] x< l3qg >.ku'~nAMמQ)\]B[/$3&0/ .8&gPTuʤ>.፽Q9r(BFq/tsy10x F@6_D>oFo6s?gX7g~wόɩ?Uy3}= z#Jt+atuZFq\",0YB]7@8g:gBug#!DhS!,+7DtYw`(}1˼u]>VqY2/$\nYS,T%ceTxA+ɄQ>uaeyp_0 ! w?8?DDv[iLl/ۡ~yxxp[ƶ+6sm2 ztY)c ԅ+C 4ݗ1|M4Wq$ȳ(Xl#+``TlE{ ڧ>g0c}QWR͒& 7[Oun8|8\'[dG1XD0ڦhrn?ROvv|nFK+GMF5JCO|vp7l"-%22\)BPkـQ O0lSzdt|X>M"zΣ4fOQx$jL=̇5N1aY"@)s(Ov^ҙԷbeD*]N)d[D߁GXT6]#\6*Bx6| N| AFC0OAdhhqyĥ}*"RROP9Nnqns`EHSFrh1ȉqyx:oX. :vml%"7݃YvbEA-4nu);D8,O"ͪ??%=-$Z|h~f ?R&."˄!,&aQ 3e@c.&/ިp0tYqc2J3S&@D; Wʗnrz JnPZSL*#j (!}9 'q>x?:Dog}ؑUϝ>#Wg Ytί꾺y4.г(axLDi'aCaZj"(r + TJ!/PS0 i_uQT!m/Pj.7'Ŕ%7灀uΟPL?띏}YakolܑO~iM:5 XKmƏ60fouaaaLө" hE$Zշ7A\=Ĭu*XR sØqHd<ȳmMqnQ1p{C^K>+EߊCӼ%a,ʒ0p_W q*i|?z^`2ָhVzpRV8pN˝ =^f &7 'M*G>>Hxl U5g,.wus>W_1@]hI`pr[영@hc kA>tƓy·9{_tgS{G]Σ+hcޡF=ދ9 ߗ$̉Sa r"u<XrQ#W.6s(@fPJIh" v1^1H )4'Pp-Bx}Mh("x& fhOxA#iD V\/; )qi"D/6^ƨh"_/*AnIEk<.'{TuJgpmﹶ,yNv <4DmDѳz L`#|AE"ja\>4LqQ'M$:^WK6Y@SzCgQN(lpc/"`9˜E :oÎꢌ*-A=A ˁv{;—i#B6بN}ZཪJ?=|b⡑OԿpTIeBC`I)B=^%& R^ytFIX#AI [j1APP߂n#|zkE5lE4@LӁeÉ0AUj<pMNÆD .^u/TEL]? ~ 2R!yTi^Oꌯ݉nn}jQ^te:3"Ng ,Z ٠G~#ڝcд d%F8 >Ai$ $8Kh AG,ZU $cEJ|3?s~ygUu"؞vfkn5J@3za(Kpă#TC4c4ۥJ;8<"bzawBD0_,M|ƨiءv7sw ~Nw0tE\S7!\i1 TE82wZ`cx~S6ȿ*|8EVKQ&U5 E N").Cog].W:m`z7t/|e ìR>k5+lQnh4rI]$m3h3R櫧du \ʖ02n?6qgFGW\r}˶r"#Vwi_рPV%Y9,]Sz)6[بdxRHf\ƹBL >2dOAtJ(OӡΫ k8LTY{cyKx"`vGvG; [^(˲4kU Gh8bs)rYF4ju,,V{s*j=^.9ddՆ^,dr=zo R$? ^ӹ~EyrK->\[tCB͛#vJUbQ(إ" 6a:AR04MGn|7 u|B 1[^~+򊸴NBC<< T)}n| (44ՓI`_gg` @0n7CD4eAP m\*DVeJ<5$I (єJZTHG4S0nTݞ|ͥoO?I.vOnɪ; ~lblt7"0CND- $"IFfTqQG%D$4\P*!\4TT074eax/5!x$ 5O&@ s3{[PˋqhL/P98ni|f!B#v`A#A')*ZWDk7Wh^(+p/R$:XlwԽ'Ьr܆=͢E<Ɋ8ǭ`,@&5)clz" R0l6,\#&kI{bXGr[ZT:N 8yRlf`9_;Ku\AqAQy$KaDt\ȿ+_A1 ,]gtZ[7#Vh$r}(W`bx: 5d5j@xe딈e&lqPv7sPQtxed=<hb 9Kp#;G׬ߒ:;@;vDx%.@ KȔ ;cmyPIS$%yRsX|X{iٴdXH uLopÑ% CKdeX1P챀zkp7 N ?rB_LؽͺgvBOdra5 P!apT7wAOwG?Jwםhǹ:_l<LW/bm%$Ya7 wa.p=eG1/tFSuo6]|{,zb(=99v+q*E6j ҰD裉h0-OCo.e](3$>bl `h(KUxm" Ћi b 4Ԓj2skzoهm0˯ĭfISEDT>!$y sy`8[Fvz"?C`;Θ;vm Iǣr9ԢD_v5 =Z6ZNe(`e FX:|N/&4yZ= ws/ fZdn&OhW<&MvⱣej(Vv䭒]&{ҏN%J "_I4FK,"oZSX fPVAH|H"P+Q"˔1w֋cm| jCb?oE⃾tEJi뻇Wɍ c,*$Zz&xxGW@IwT#|k2G~Ʋ?vpܺ hb3tc:0DI*ǹ Sl}Ҧ-58/e&[rXCA[Ke k}z$>͵ϤNn%mϰ؆|GbSlK<$6F@UxE7W]zŤY;0Ϧy*猴hq\"~dTy@IRPQSj7]. cNY8Xl6{ doHGea=Fc &"HaPq/7rO4_^#p+MdqXtT!>!xk^d4}};qyQkhN PS rvjh8ɏ)zLk&zcYU(PnB_Ŧ, <0Sb"VMK:`dN٪]0NOUUJw/튇ߋ(%j$!Gt\P@'v#1j$}.7,mAJE$wy󹆀'|b]zAE lU%OCbFX>V1E(O!m ՚Ch 3{nv_e ԀoE8E\国$̴9XBD/A|sFɳve^p~*ʌT D%14|jko̒3bqvbxta;%jGi#ReR?Z9exOg|n_KzWz&FE]aY~'vۣsON鹾`*ax}=A UE|}^a7וzue=9܏ˀ73O:ԛ]8W ~Ҟc멷孔Geફ{twdkE^V[+ rBݤ< 8a[ yYēuIzmAJM#h@h}:N  M9zNc3r8<,M臰c)2%W<NaZ)B>|΢Ѕ,I #'m <㏡_XaT,Rsnyݭ9Տ}YP'7miϥhP뒕#P N+F -YjEӫ!BŃ gInEHPz.gLes(:u:H璀*6sUQV7 S.w%*vm894y;uH\-Om`S2deb8>:b5&'dYy&'^zVJŝ6o ]V͓p׻l{oT<p& Q哩a I5Si( 8\8^,@F?l,Vbcp5?}D4YQIUqܡMBys+C0Kꄈ/u') L 䜜eTJL7Rw)ҘKY|uف; ,Ƥ0gx. yGD>W=_۶^w] ?g8dD>o1+4$8mʣ%yC[|ZR:BP/('M0I٧'}sQH㻗ڲk!² G&RPFAHC<86߭j7no;a+mJ.2i~Oʇ2)<Q^ O(RCs/BAި DrlWz¦25(uW. `-)eI[ƭ'pԑ`m8+݋];3)b#nW,S'!j}uEͻ=酡/:<-.ԃx 'cr?ޟhcmZN>, TM.+܀~YB:^Cy_в;ؿ9p z<7u}^V6?\;j+UNusPUU -ES\ŰY^F*hg~<3' |tVLc V95`'!0]4lgiN4̟hsv=ڕBtFϨ`\;IZg8r ((33<ĩ4tO@VMV r,ʐyCPx~x%A(]cC[{Pus/T>N,+2_"ɦK`LlRNYw79r)J~nڊ6BVPKiP+u_e,**{6w^r2̤kZyL84yFu&'9/ &w+KHW2`9d,'iݖG}URvmN!ug A!~:r詋(ƖEl7Y&?Ƒ (kw&I*rM!~( x4y'i.UI r W2" @Ίez38)wFm QfOuyv_T3/@o+u3Ɯs$G_pI>]꯯A EԤǬKWWNlj@jǁty#Ro2aGІ/dm큐O3x JJF<$iKSo7I^`P/( BS50-(ň,8.iu@iU[NtIgyoQ_zxyGX jC$דrc|:4d<0HBYnר O{]Xt݋Κ]2d8vжKAw;6c5Ϙyk2(c'fP(98B`M?:olŖ:QMFW`M+`h``=?H ]qP)M5B چ >ž?s~kˏu|fns֕to+kAs-˓ABtľjK cx8r&B$'6)(kfƝkJuӬ,xR=:LI!EI֚eLnocY@¦i ׻ v Pa]hԿ/v$6M_2nZNXŖpERTշa$rT<5U3',1iKMK)ׄdznZ|Z#1Bn "&MphK.m类(M1#z7 E:J3Tvb.YUJw픱[az.+f¶KpmI;ϛ5yF^k8>l,"]gʒ[1/c/ήd@w:􂻖2 O26 Mm/SťP S*F 64yK^SXIl*;:gq5׹oZ0uV?.#OLlwWDthΚ*_S&s%ی> y_෶먝, S<X3_>iVA1"OVto R#UBΝi;)rAk+{Vv'}_ѾQdzxj=J^Z.B4"#|T|W{ M N#Uf]uPtxehOsj_^U02ؔiIyLu]flC}ϿcϙVn; zz8 :&;M~DvȎ8FS"6Irr*Ӳ5n]WMDGh?r9CAHҧBZ:hPAp+Ė6:ױ>ٶ電8ڶB:5y1'qz0 ,_Z'ebbƅ $)[|O ɣ3WPwz]> *]Y+t]>h\:c|T|O9I,UR:M|=ghVdWzyf[޼Keta=J='GOqX0:epPi>?pC}pW&קo;ubm\in}~rEi&]0!e]ьYN(U:Eb^PFLK *dd>%x.uJP tlMgSh59(%&E4pGv*7 PuWp{+#KڢGn[XxK_ͭ6sNOfTRPbtk[/dрfe7qf:ɱu*8͏\Q+Chrr'0cy=6qeƑ0ARQ7pнtpG@;q:i"l)|̵1m7/%%t@t^+ x/k2@U=\z+N&+l]GuZ ^+Ө:#v tS2;11~mdPQ³uyDJ<3`&2`ANa f>F y޵f25ϒ]q}̷UƷXs{J 7} GoE%y&7hyFm: q(Gְ6wЅݛ)%"w] ";Y63f!+)ťZ *X>iVMG8_q7Q;n̷ek<מ]9鴏roi}vv4H^(q~u܈x LV{.(trBF.,4HXfM7Q3WLE<Ƃ"+ Wh^5DWAgνԕO]GwUXՅqvǺ Y9~8Jlꖛy7Mq}5K(d a2̫ϳQD0k")@ /Eb~F%@5 uQ"ۨM+ T \@FQg`Iw׻t厚NҚ|luEu|c8Qd4̡!KY84$IIQe!| ל'X"6C7#&=|)`]g ; :WOq~Lx" q]nwxض@3kz{2׻>ׯ}RFoWelx/]$n03\XZ! sbKΣ$e"W4p%‘a? B^& ~̰PS/68M;EtMwġ(r20А}#6Aka9v3S@kP)0?Yck`El ~ts7>=~*}u[^ulrh{b0c;TA a=&ޚ-B# %lГI؎!// Mf/SebGbX:Yr1{lZ!ڵi<RjYGyygm3]i6=m!tV^B$?p+mPV8%byBڕܤ9,~x4niθ7fm1E4?Wd#JZWvCҚP:#-C @9mʠRKA\D3AUa H7ׁ_2d,*#K={eW'>ډ)G~?y7k{zHw; rQN7R9^yQ *f&JbwOu,M"}%&|p= eaz^MhC{!!l.tzȂWbٟ;*^ Yb9[hhNNK#Y(Gl^hgmExC,Sj$AQ?Re,]j]qrj?,AЛ'0AY)fF) Bİ^` ?};0!6A;}MZ >y 7B|WS=sk5;6]wgBnv}ܺs׻br`$J،"`\:|)uU$m5 $&X7[rp+)KL I˃Q惉aqi b$$40b(J)LtPDLA$`("0Lj\76Kx`(b=:l/෺9Tigڥ8ʴ խB|{O.t|P$ gZ6->y\N>I6R@<&Gby{M bU[gӼ,8Mf$8+(9ԯIJH7+9?"l}m3~*xDjwr\YZ\wk=9buM7 ;LAWOrVU2"P*b.BD|Kye>Ai[CfvM4" B-%^ՀˉrA!!/I^C}#>'W5b!F4H$%xЂ,6CJ*c`HqD*.t2'M-vŸ߁l{pa\:k JeVB'u6sǾ`_}q I ׳:={A(0&#t fbdM&Z B$rcKH>9C谯ukr-KSXժ'sVNrrȂg%TbyfD[fj[g;ym9t5}MO*Ͳڜ*zr˵ӎطfa5PbI(N9XCQ~b\$[ٰixgn̍8FS@G| 04N>\-0KQKeS}94!{YX{7?#0"wtx ΧD([CPvvMsf['D_5I>+!NCu}KW~4r8s~iiBvec1v`OvRґSDpbgM݁x^i[ؙ^6DuΤ lj&vp(t0Wi'V a Uo] ߏ$Ϩe˳#|'>E EGl m}֊q;쫯1fwDn7mcbˉ |a"(Jg/}ۗGz8TbZU(Y5QsR%ʲ 0H *Ssn!l0pt"(O٤n%m6|T%hjDvvFa ~K$џ۪͘Y9lgU_P_nM;gn[rCms)ުAɡk.'rV)z* k exۓ@yc_q G25D^T -AUQ`i~ !U[#'6K "K1SCo(i5\sqyd{vݼfv7b:LKlȻ.m@<\{O 4dwg{kPQTO}Z=h at:j621ۮq HvŊ68l[V/scs6[.imcq綋Y"grVզLk/ y9J|$Q7<̮,X2q]Vo=k{2l*؁(}S6ѽlK )JT c}ٮ^0a$+($/ʷí;?7Y-_j+TJFHJREz$R2c 4>Ss`p`s }mٛ]Hl|mGD,rq\e6=ߺS` EU]kܴ do}%N!˲ 'TE#)J!CB i^8_[H8e)T_Pq`9Gm̷E_M8!pgb9n&$ZEZUmDa1.lK^̺M%lE方_6arW^"|)J2N VʈoLv^X0P~\l6p݋X)xhd$m-;CB]az/ srovr7?]*6&z1Hqt-0`CJi+eiTPDO>p ƒ$(U>If Ue7 Дaf;&vn 9u0r;D#x "Od,d cK/0"\]=j"%QēS5wrXlRV8EL$K #8 m:XIQt}"|B-!W S\xۨeu*dy^,_)67Kw;a٠1J..o9y>;ۦ]U$ޖd\;tgi;)9]Aq͉65kBPȓB( -L}. fHCl\B苃(&/Q6h}8.cU(][ikM=;vkon(amy5+.8pyOW:ua3O.mWw-z[Ķ>[آ.?_ցbLT6i}F8dǽ@R\p2/Z}i&RL#H^$Yq @ع7KLr{T)<2 !gdC,Bv!lS]W&8^T܄B`%7KKƬȷv|0ׇw K)6ocW/&u>8nd>ҁN0{JiUI:o\麪XVUnyzA +DdO@5jiXmm۲hp#xu=a44,:x}PB_[S/ab{ۺv@뻾Mtn~u"'icP2!\g6rO!Y2w 3h)$s? TKlwxR4E7Lq=4n=)[~, 2s߂w+#vݮ{1oTΠMTuzn"pi{p€KÄ8$X<[z4J-ڋ'csRҞց.?4b|Dž,;@0U.1^(/$qS0f2"/`'"DŽiv%Aԃû% r:4Pڑ_Hp 6A29Ʒb ֋H λM)2s},siP#4 νq,m~#zm :`֮ډt9e++IO/GZ& rٺu2gP0.U";q6vt7swt%jzBp9IL=~XΊͼHj]_zd2IS^ZEIE\1zAYeu&>=A%MR? *U2< ?Woj ^v:3n_|7ņ ͜oZelazvy z%jNdR@̽ouѸ4i>)U MdǺQI#p \y~ѐ  +XtO_4zkl +d%jX" 7lm.ޖnA;籜u`OB]=OȥMfy-roˣ TV($x@M@BmlTpbZmxe1v,8mp% | SV&J?5V"#@b{_wt !^py}~&lPrhuLyD[ctVLk;9#Өi[Fl5 qSJ? {T$VGʘ/=`ǡCj84Aն`$<$?k?<'Q7T"(V|U=j؎~05S-bsKIIB'9vA[7`DYB&]ѮqwCcG \?E fD ˜VLA"]LbZI -*lþFy^}Q?=OuA&h7}۵M5u870"F^ @Mć6A_xmS#ȗѫئe n9UBƋz|X0zt}'g RCS?c?s 0y'bt%I%}fYUr5YpdABJf D Uc||Td*3 #L$4ʓG vtL.i43K?,ZrJl%A>hnb0J ^Ve.'FUdTY1f* _m|"[EM8E Hz5v$Ml]_-Xu1hگJ5Z A9 Pdp'@*}s;oH>S¨›d2spl?hcm2M]X\L"oڋE%Nd7 Pi/ahg%mޒ]kj>2m-Wn۶?8L4PKC\rMQ/(Pk?L`D0 -Ťe&Wb2ryRMx=㵢_1d`fBRڔ(.qm<%:K]J(TMBw>aV]r2{+^XW_F,`ƃԯbMe8s7gdl6I"os禘Sg7mwAקySФ `e6#p6k~?g $NbaY$ n3@a-ɋm.?] HRmo]/XG R.<9km_M.Q?7KqYGb6zU+BA^2Vcw>0Rq{)xo8L68KA nΏ:H۸n[] Nַwi](=l~bN†#T)aٹ8$\O(v"`H6Mȼ&~uR0Z5+򍇀*2; 'm8{%Y,kxJ"`[ fM$]?s[~KXKw9c4s)]|,ӬT+CMh$Y $Qx& 0'2ҵEt0)\D/xydRG+ >E Π<.u<#Z/sM?u5GoPjV3ںm>%) 8H'd=Ҭ,Ws8IqMp n># /tK9 6 tyy.X!{?Bټћ=Y]4;#\.n%،[dWZ[7pkO_g/42\,M/'27\Wf^F1ޝvBngMPTe]&L[N|s8q+PIТ=Ժ2EE;c0e/w>z\uLޝ:QJnk}[oOwQ܎VuZT x1P= \{b]#M[ 374i*v(Y6[*\=nW8~$xqDM[i S E Bd&Ou5HOh7 l K̟0F)Xqp`me(o'}ywKgk熑wsEN[_yd,G .9`i>$f=HO<2F[f4޸˽1l_73LŠKN/g){ l?v~f. b(X[~FLgܵx_80jI"06C*]ed X~">MĔQ)p.x蚘p,ط7_U\usx$2*Ot  ;MܒH/;IY:m|4T/h IK>|hbl:T*|tE[#2Ι~mz+$Y E1,xdF|0MtQM󺊽>uw:1;`L4}w:Ͷ]ry\ < yMNxb EGf qx:g@=4Hzً)!]9O$"Q#m0#mFEBK8"2 3{6H]US:W_V{kZ7*_0jlӿWV8;Zg$+۳V{h9e,[( Ҥ,m5:y[z]A"BΠ+\?ypֶ)Lw6YV"<>k+`" $2|Rf /(rݭAWy7so vw ,+ʳXN ]Dn7.sƒo$ GUiL]TksЌj4`7I8HFCe␤!"=h7Yx{At78ˁ!yU甆04V-l&5))^Ѯ3㻴vݻ\œ_wp8*{su5Tz{Ovz]-zm0oT͜Y5iJb WK3/JC?4D~|E Ibe aь%#Ћj۲<۫ ,*ry` w Wg<6[ο˓꣝݌^:KnyNL.Uy2Bi䓏Lrc2 j9>& Ic^k=O_.4;?8ۙb31mP_k[,{~bMڜ P!ʾ[~\OS3a!"*F9$D)讙&nǙ=1Cj&D/ "5n:_4@ƃPA#پAH Q]m-!!&Q U$rA0Lűb0=41*eTm6}+m:i"Dφ97Y͠~ Pոbvil&, G>SH'EB)s8,a\77U sq}t- ˮBOj^؄9Z%rh}eQXܟ T؃}Vc*DK^&}iui|vpc`N(bDM ?TźOYHTجw~ [z 3:ysN Vl7f8>;(! F*_iL>7\k`Se2}r|ԣf.pE3.*A}N@aʘ 913hU~2:Mlx,ZpY]0EDO@>M}6D7_d;O6J0)e =g5d˕%CMJ=`dv" Y s局&m5|{e7aXH\)b) mFqg%݌8` I%>ؤ_"z+%`wmѭ,x].W?(k[R2M|fq ڣA̫p&y++AMYfp0 Wf4L# j|Pt 9y82-D>Ꝉhƙ)eV N!^KIhQ{ߴn 6 :DQdOnT׈aܜmz]UnYBSml1'4@2 `reM1Iwe8{hLx:>7`*?:~xэ/_6ܦ& @ MLcKp<= P|W߁KN;BLm;LW ۰Yci<ϮjR/x\ ~~ٴ.] ]x=]ԃ5{%ok;?@ֻ܋m{} a7H8T_[UqyZb(Vy@oGdp}ҏSO{w.rj3)p|ɀ dmˊ̧qK@E<͔$7;l#}6|zKz4~Yؔ"Nk]5@/)XFttl.ޭ4ׯ/ LJ;)b@\HK _, ,Q i=u]G"}/Q6lRq/5mOA=>y[-dT3U ~ qsed{';mq:󱌶a[ ą> fc;KA-AxB# \^1nv~}VEIxK%y;L[pqYCJ-hS_o ܘQ9 02n`U M%‚͠P/-umOv; mom׹ݧYg>zWgoc+ݔrK'*”:=Z8. \\7 w0}̰Bm"mrKd#ZraہLťG'&8KD'yf" ێOiGZOf=I# )UeeE" *Xkw*;1]:P^}sww%[yoWWhmcvY&}QGQ> ȉi.Nc&WӴnWLoj/qR~׫x%W6t B?+T)>#dR]N 㥼y:-Ӗ)BG$DBzwİS}8XB1^L瑫=;YǑ/a>(\S(q"C,F2%)IcV8da='v>+Xe^F^jXَztV?&{xJ "hJf<"qٸdM#QWphRRHm Lb3У9sic^ig.{ 2(m%]Dɤ`N6"*%m`S3:d-J+I.zLt'~va,_9M0nf.t3l^unmy튃 Jl{Ld4jmd!|4!i\T ƮM-Zp+;M$Ɠ]c\s{!IjU@Drg<W1>Ý߂g<3ALQA_(ݷk̷mkG.~8;5+ڎb qJ g!,E +WƳb慮A \7`;A.#0R9%nIiaY.W(DMvD *;O0MR=H2"o6v @ѝ{Uޫ '%/^++i ҹN9-n5/gjnU$n6Y3))o31pܦ|jӀOP#N_4Ds1o!^4q)ʶel_ax-S!ջPE0t* #Ρ06 Ӿ؎\Q|1w玓 pel[Dۙ᳊zU, I̔IVx P^H؉)vi@4`Os=f]&JXF B"USqN@D- 敂-/ HV7 6tzXD0pr.J# lۙ8YF[82"m7rA-2)t C]QQn:a[o ksr{o XM-ˢܶ$鳚w`N<>Wv9dz, {> I[4,( e`\&nb2zN2$3v3 n!l0}-/yuWs{ѽz'Q۟giw8SK뉯M W~GGdy °ʯh1@Ytyd@ "$XIqV]c+سP2~r4 N+'Qk +͞fHǽ ~fVAR8 xm5K0ZŁTֆڑmĹ³p~}gߚ~cqw!v֢sV`)L]2lnB&?p2Xʸ:1E $[yWp{؄*c*֐,i6GRc0?=جTl2[MDd "u`K"jar 269x9zǯ[RͶu6qץ kSk{ *L0c%k{-/렉gSD,'hc#D>U?T{/TźeĶGʅ\{nD^">㈏2~^_Z(ys;Pu ;{k8S&wzb8l.3Z^DI!mkՁi*q8=&ü4j[L_-cT=; ;m05ȫlf<\v t]*2)H zʨf>R.]w=ah7:D4DWV?-FfI[j"!KxpxRqjXx&" A5)@NWYl,ѷR׍>ӥVgf'U'gݫp{A˶ ;tvJϊx{ihO`an8+I}+ /my8X!ɳ@906X(&1e)?HHK;X"2CK5/h<)32nvqwmY_<۶ܥ® 7ĕ^l}Tg B~ M>f{M̂R6 @=QWw˜Vu%2l]Q9GLa~+7-/*̟2EXLMAI2^=AK$='2)V7ǮU_rKvM1qx*5ܐNy- Uq[N1o閏i=^Qd#5TFUnn/a~*~JJ mY6yvE3ҏ?ʮ"UpYW]Sv(U~zs\?6P_ Q/셣<"|<'!x(@pcG4hs$TVG0հ U2zBPɩ7pIq;x#ЛΈk7z_dD4ICŒ!.X0?F6eB!x>=:6ۅ[s-n; F`b#pW\c2VhfhVSpZ /XÞysO?u~ Z˜q|;x I;Z#i8`}Qa(_n)-"GWN-p\^vi#[^mO-V;`اĖx0yl#dLYCq1` R}b#+Z,[4l78jo8$(hmҜ\LZL5ْ_,1owTGf6-3t!vwCn7gHQQQP7Mi<.8*_0 bݔ~Ю9Kpo5aۜqVtm^K]f'2mJT)B7]W+a6( A2U$ņ1wd¾`"f|^^$Py<)(c|Tah]j7H_JGa)k) ̙`}ua_R_Ze>,slPF] [[h̸sg2p@H%b#&`5'qֹn>pUOzxyy朰WM߇S8i2PU76QC[T)]u#w]șrKSW5{gX6y\DMlL3ז!o񓪩~1C葴3m8M*v!SQ/^/Cʶ H\fg7|ҧYp0gABsۯHܞpm< ϓg<,.s_pRA7^^ ֳe] gIvEGtٷcK,ըQ.gih?CLvgQok#?7%E;"Tg0a}e TwPS.ͳ$i!]/w~E`'{V==f; [˽٦~ں)}EGb1[6D< KǺ2"ՉL Wٵ4* v x4ܓ4#@ѷ-2M}y6+}7lxJ(ׁg 攕oR$̥'88.2Gb,cȆ8{WV.U0:%Xs`rzPPgI,Z郉 ^(6ҊN6F+FfRalmGd^[\SgEpbۉZpd҃(Z>.6(Cbi2̩E0Ve.J^d?W * d u$nrbz<$ JAIF|!VKdJUѫ eiUţ*C_?GIm}ֶG{puz-Y8Zܪ06}^PYZcgJr;e;,=0 bF !Q!>VG-`84W{P{ ]:rQ 60Xsi<.j~PPm% pW$G/8hIYlLEZXWs'>};yYn={ϗ:kP0Q M8͛{.֫:2[U~cg6iW؏=WLcO4&hcx ]Tc܄؎~>[Oou㶅wj{[VXܪ;K3nynZM-B[Gf" +As K4:¹5+lO橠v$Q 9D6U~fq̋\2?E $#" gUMdxob㧉J&4Y~,r7'!J*eF/9sȺO:%ݺ4vj˅G(7 ;s :dդmQi9;:JƳ!3_X* [RMc(o)OPK.HH(̴ǟu<EmH1zy "2fQvb 60 a>%`]G,-d]lmd'Y,v뮐ky /0`{A-Nң yU }fd? *P}vc<^B5{$k wD{%I̅75ǟ4-^Uj(cwzM~;8]v$%&"< fD+I>lU6v)J"W~PQ7 ZKl1(]|6|(UofeP=8tN]Ppc o9'R^+ȕ 1}>_P%< %L>5QAmfq4qo%hgsz)J&$Ӯ;֑;Xfi^0{f>t/ o=w黑J]&[iWYz_$*=G(BA/_ Qc=C7A2]~B0T vb% aTOw؞ Eg#q^)%X}O~pV uV {Ffg>+4[r4 t/weJ{F:.J7 Ce@71O*ٝYK=3 0a]zyhǕY$xdoCN|XB3A` V @#jgaybTCM\L%,t:t۽\O:ftnݲA;gf#&}u^D2E6z") į)5eZGt`1'9o5 g]slEs@lNd[AZ{b: :jnmEڷ~K0h#C0X0hf4E LD`}}7.չ!)eC*&ʙ)Ww lLM#hȀml^1ܜk5!9@2eHq~1aH{I@ŝ4 )bY%Pd\6?im-h,ȧӯ?2K O9|7G8P,DuҹxBCsՖ}U"|+ISͼp`3Mi \}`2uN42,b۞r;21/ogmv&m7VLt LϒaG!evۃB:‰_t {]=+ssuڻ;1cWę[nǮڜXm{ @cєA i86(tSYM3m"pdA.@q/;7z /|A[zqth[nb8\tj3#a.3GiH7W(F =p.ot>gY\pV{6iͭ]~Li[]n [I4WU@XƲ¶`/M)c f@ Q)v!iHa H!$D$] Ng>(xvmpp%5?s3OYb rFê$-W;l@Wp7i4-]t vr lLjHSXH:_L,Ag& :kL+vNGS솢ue-]If}d`0( P^2MR@r`!0) BыU4\Hl*mH@U7F0z^> }7.\ceD2rK@ŔԶ Ci.?L:6QSji?o[ա0l}`UcD*_0#c+lgi!F۰O~X~Iʲߡ݈.צKmﭭ"Vvzo^ oAٿjp;gY8Ҵ7 pT0dŀ[`Qk='8_2JT<ܱ2*J$A&J( ?e \n@0ZTT4\ MH6Łhy0Cӌz4r BXv}#]RyݨmW{盄&-Ѡ|v^y@'&a,%K֒M w#hIq/PAqVS1m(X$̣oZBuG)8-,4.-I&

@IdUb&`fjcj"dᩀ؁Ë8},A`5Đumh[/"T1`g& )iyP5uyU. ߓs-A)8}OD]캶!xr}?% [A|GG7cGr^;7n)gwOEIDB/ӥnU=EJ]q]a` (x9f>jq^&f' N}Uj*^j!=YCQEPE>4 {z|IRweaaRo9Hz 'gv(q9S\*6ga(ӧBF/N/֡m7 z\wr0ػ{Og1|۪e2? ؤ }PP3dW c~9B.cxT<}ybx)Η&f~Ix;XF<1ZjĈ$B3)82LVA&4*M0\j)8fnfh!ފ?NŖ){:Xz0Y#El T:/CD#5yt=]JQ-woQs NvM'J,~zf6"&ݜ+J:Dp.R(k %*J)Eʰu0ͭäi^=BTf(b_܃etYg d \x*F /y8yx͓i >il&v]u{H+xӹ RS/t8n7p>+<Σ2@^6/XL9Y N9?s7Ngu`K9mmkzK\\ fgU /PSY9KXs+KtljP+q]^~|4\۲-Z o~L!^X>\#4K!.m&.bEay?z~HHZR; Muzѩ'O9Tl%3^E\]f!l5Ϩn|t9eO%@DT!BKy44AeFWѣWb) i <Ϛ>j}͛Q3AA$En<^|q)W*"SffⷑWoD a̺vÛ *Zk׾otwr;84ҍXhctQfJ_.i8?̲c_2lĿt= Dl+0~GD\@z&$l9]GG%6ͣx.DH Q2b0_[Y}쪇vɽ !wzɌ9x;űN`?e=DZΩi1ܴ- ݡHGR)W=j 6,"rS_=z8fLXRC$z^fl,atVЧvbS@ٶm Δrn_KJẋozKN}F1;;vFmpM7iY͗K IWN: @@]|-Yms 3xc'Z+˗eqr[.).x*2yl?JƗoύ+}b~;=p qGV~ݒǝ\_^ݎ4b1%c "o5 9F!yi4>u^^n *0'G0_,G>haGDP\gre]_-6~MCF)<*U&o91!/(>%щoJۇG 4jۤ. w!/@VH0ZD4'O㤈8e TB^{.$K6@[L. 7xؙwڄH ׭_ީ-]Q@ޤhYƹۼ׉K7"7Gx"(7MwgGE^R@E|x.="-"=rihߵ  &oںg[kp/}-@m=. 7_4?JA2@sڪR])dOig{;>n#IF%td܅*CT1z@QiH΂Zv?4*a4lWo2>g$H3cdF2Yۑ.69󿍗h ^_Wм.Zt{띂</1C|n4gC'0%-20ӽ s0& k~nGٸ2̝`&9N^aE-$kq||Q_:`rI 2[ Kp-ߜGwy0,-gMt:tSz ~8'eC HcqS/'d )ӛ]bmAWVN!˵ZLl k3b蚢ڎ,cpQU$4bdzWZƋ }0D11B^pȳJW{4JҶHιA^4uRao\lHd5{M/ϻL7AO 3\DQ],7@>2 d};1Qz`VY~]gt9[Q9W #'ڞn3Z@CeuJB8Ls%pܘLFc '҇cY5%+L~4H~n?xh;=wLp} >ә[;U*n2+U!tSU,XՔ6.BMDy1LI^9 *XRR 1ip4|jɹEmQӀΞȧ"{\Q j2O~ ,wS5hS alTVwֱZhOQY[CkSw3ͣPۢ<&W/c8F+875f=3$rME<{ћ|[?A^͂2RKEыv2>ZON|=˝T;Q6nW*,ڻm,D$<,C.Pz+׽V>NmJ9U3Jg.^|M^ Hro>B*jBE^.2Pm@G`Q%O1 "+Bn vRS+ܮ;i N_%UmvA{dĮWy bkp]&[V|UFE+ @$0-rM9`} @2rLOR: Y#%G U;M9m^$mUzᰶV~Eײm3c;)ބ/D^TܵN#t+aYOcUdb[6 h HC(e0H(lUG3.pFl:}S,~/رL7 ~R.(kv[5c ((,ǼPYÑwDPgFYSQٙNxGm/X4q30Zض 74T ! 6sS $slyR8pAmMDIJvL_sۀJ*LQO&._dȏ 'UFB#tjk;_*ە1=!B= -AFŽI]fes| 4k? ows`]_҆ǽO;-E;}Ajں,P0?# TBڡA=8I6#kW U2B*(f߯eWW Bxl-i}/k"E1.iQ[&T{i9?Aq7DǰB0&`B6^<60 BxaY\ ݰ ;LheGxsBZ K '!b@~N2y,"1lN"ϝRAp&Mn? lsJl{ple DA5a( ҽgFٮʶ[b8-hG0&@M혥z W807 rȷRʤG: n8d!dsa{*'̍&&ҀMqd$cQpn?؎HX:~2 8;>m53;W{K"_ouݘGqǫKs( `[I>M 1͍5] d࿞TʛH2骈b YƎG`؍(s;& yțt9/AfM%~eO6qcطg|6ZNPtA۳[͌,,MkTȎ]_vRY#fl,B<;V3&s$ވ{9(csOZfA6k4-^I`7l43I9N('D5 NeHOv>O#5Z2rl$gE@1PyE^ptYېg0-PmzA=pڂlcڬ{eç=3c3ɓG#GX8ٻs?Fr#] mP op=!OB-_H{:f^xL٫׎ĝ _뾸t@{G$/Abfldy]UXH_e lO a7TևJr\:)QztTJ@qLCyҡS.yH xD+!K[F=v:2,ÈDZ]rV%V&i2Z\YdR_ : ݼh Ƹ+[tϳC}k]kFQ)8\U9XSj\ทhD|D" D%$dԉV#hҽk @O΢ wy$EB}l+qۏ۶.{VwYva7J#GT;!7vsܬ fm|;ᶽzvRki囔0V|IPNeUA:[6E,ﻐ"wvUg:9NJzT6E -00!{,l-tpL8HcR͹x#R| ]ƑFW;#i4jcDrf$iĪ*śu;z5m8mM~hw aշ=RKzPj~(xv@4.ìv4bV ~wۿ9ۥ9잖}שpF[4gYP[2tiyxS 1>WA0${BKfg+ep|\ouv…3j½ܗŸ%ܓ qsZ1QѸ+:߈;oҸTQϸP Jja*a*}88U2.F]x5 iҨ#S)ޏm5xUۑmpQB{-١mM%G_q呺pk>~:ErcKMlAmQ^Ǝy:~HDa<-_}n (#DL$Z(]'̡K|9oQ139Gmi.7uo΅2 iihd`;}Ϳ| jxsA4j+ ң~@7 ="ڻYc+H >`ȣT +0:ˇENl{;)';SS4Y@9s0 z».e'3ЧUOl2f~ҨBr8̢X{8+/ p;#DI[ucOe YM#;/Hb#VK6ݿAk_2L"fàLbHo-2U%<!_Gr$H"F NH#VlMȰ<4bB5xZs6Ͽ݋9( 2Gx/o0A"aϻ{a7f}Z!&<-3X^B(nb۟g+NuHV@nJQ8,AۉnK1nC 6uDPWǞ&b wd hf : DAN(FWUq/Df nn⬲4McJN mt](G -2x fqXF?eZ&̻ o\Bnv^~*JV29m`OX(LugAs1wGYgl9Y5B.x6_Or@Y=}@0FL=13p|ͭ@%f8Jhntu~'#V@ҜaϚ;nmAt[*B8:u5I/U]^ Ů\b?;JI YKմꆊPk0a/7C@Q:p z-t6O,tLEiX4!iX+ʧ=Ч@ syS+ GEH æ/)^~ pMaVL>D]O|[ywڲRt]V;+Vl3vѪm~PW&O'_ :h_o %rK>X!;~(}ԵYJ:DF ̼W!1n`Ry<# !UUipuٱ:ǤbC3$VNVxSkrdVF gKI.+f `S}jG+˗9":'Vh>h;Oki[ @:EN{Nҳ{㛍-,DH|Z?ʆ`{X:D0p2NId՞gMKN1$¥=zyԛy++P O ^, <&WbsVuL *>-`z6㩻Y\?gʤE7*mu'k.h 4YhV'kJ)\:Id,FD3r>H'PX W\+b|`>?ڱg(wcg"ϋ6/;hچ}%x3A Ͳz:ZRs[Q~d/|n[,mI[i{t(- "d# ^I"`n,鰔bB5KYL$><މDm9,4Z&}qRee(Yv>؋"Z_r8^:z8̌eGJ$I]PGg߮v5QoL>_\l۠: φ#ʮrd[Sx*fp|h EaZvU$;)t_va,Ii'lC~Upd;)ű`56 N(b bNƩ4QR# bbRrTr$ڌ4x(V%#ÀpsB%qv/C0vv{5־{նB5z!svfŦ?e}.|˱u>ΌlSuѭNb|m۱a=As8 srQ0LTSRY17=7$kAgB"UM杗b+Zr V!d rQ;,U)h4=8pA+1l~ ~ "8F+ YZ6~T6q>2@8l\9 i)w|hc 5x܇jW)Ѕ4:I:JyYO+Y!m2I '#fV :#6Kvw - a=w[X5?o9 v^ 8+5i3hp <^TrJڋnq*+S>S0kTyl6uw X/_ޝ..DŎƭ<. { `l ]?++2x nJ? ",L 3x)E02N֮++A( ; ;;<Wq<\,CFz"*`TFA0q(.*% ]n aЊb‰X:pRґH'x<Ʀ/ܹrpX$0--۽0z9p\3xHShgVg-ygO϶Wq`ZRQGfw-rp gc8اuٸw#t~Z;,LTXr"}_Vuek}ȷؙ(YhݐOw@>OVQ]9QIRN"TT.]7r7Ly XaEg#)@Y#dpǸj:Cc}H.~" .nZYTxKZ°ib׎;i;y+n.6;,WmIaxwg!R O4<=/3thu41 (wq6\C •Bfv^oy<ƗFOR\F`!Gc sb=zE "VSm$d [0Zɸuۀ]d ǝnY^'+SUW8$n`fvONs\2(v޼"*G}-"t>] q=‹\}NwDG%~.ͪysd). fo{ʰXx{:NۿcqbyyOͺ~Ka6 N*hU;CpV4,_Z W1llORY >I&]e7<Bv#()xtBa4*Ihq 6?Dt5^7%vC|/ 3:_ 81dM,dkbbc7[]qEtAh*;D 76@ ڂ?}fu=WN.6Y}?Z_q&Wk-&5:HS_٤zd4 buC$É!Tmi+kddAZV*U1fpd;_@wx~CD*QS*)-5S4TCA8qJߎ DXZ c̪cqxޗ$5eOo" Jafu9YQ r̥,\dhw=߬krNyIbx)6$<=))/z'iv/oɅ.vmD@&$r~n?idwB[y݅V&ï^ COpg3lfK9t9G2L" Vć \d`ϦP^4_XI8T<]?|bHN}s^(mWmߢڵ%LC{?F%rdYX&(xLN#`%kR1[d؈ kNe$0⍒E|a<[ƛ4f*uח \GJ)=B;A3{ R{kPsػP]/Vr}?lE<.#zx)5IJ&[+Lv-F ̩kkZ0@h"Gcg1$K%bkElI"_1ٹk"'QA9|pā b9 j7Vw YZ^f{~.@@h'M׈;GH(fiAFl"OF`,U(׾w[vĥ^8҇0 6{|KDډzٲenKwr="}̕c:V -iNܘ؆Y멷r)Gvr) l%OQ+8OZӝ2TWyVcg& *u~JMS^r.8de ih>GEF b4>bYw[%hZGŶZjFCtfe ƙNn~d G*NއjwHvKwԪ,Ȋb&ꊎiI/K$q+&&t"B3{"@>mpr|&pi1|,'R;q? [+uైBq?n{{ @;tSt&i׭V[ZɌFjhi@J* xs KN7/;AhVN k/ǜM"**@ x\Qٖ.0t 8TUTNMh7H֍+Dw#vxן63MjCm` ƒmp7-;ۼ&W5h[u 7$QdF3JmR:7WV>*tJӑ pdjcd&`*H(aAcrOv Q׻K3qh9OD;{@F'QH6H db.PBIȨۮDl;q[Sssoh4K6Oڶ$tp"vd:<0.&}m F =r܂TF!}zrwW`3x)W2 ]iީnDmt{ʾ ӂ?m}ΫU3G+dK!H%s!e1scWp'Y(BI`pwlˌM9*~7mj$4"\1bz(8ɂ#9M\}>[:J>ed8ǰMG<6ĵ8,22i[}9r霎Zy}h׀ fnNpeMK5bX\M3 \P-5^4/{'N0l1/owTi; Fa(K&uud <4&d4 a #e^(CKH=$[Ct}d;p:j3;n{&_imo˞0El&z!ٶN*;D[2wdN=' d\[`i\ad%pv6 RXK倿?; ]8" ۄK2\݈`$[>kR26(q|63-OE e'6cO]j!p5,Bn.JyD = ġ1Kib"5 q{"Й>Uaw!gg' &jt^v4<9!+#IO >{5xL_{6** ڬO&sh9HlN%.mMIPϋZ"d%Ul* m8Nq;mgYm"a^Z*vکx^UdV43TEF"Tos|i9Vf E:ٽm!F_"C̓iK$BAbkar<1`)@eC ^E4bp'Т-z_ 98܅Ey& ]\:rnI[]9F?DH6="jW&gol*sLպ9JA4JM8㦃Cˣ2 wf깹dC+JJ+g禶n|[^Z!km p)Z$[贖#[j/RnS]qp.'$S_n57 k﷙tjP'?7꾺 RNe=hC-RxPULhӍ&ÿ|vgY77*u;r0W{gvJl->١_~TQXـ182DKD/]@p'7U.,^%ۀS0zE%݈Q@[,]j=mWL}^zq~Ӻ#6}R "=+V:/b{drH8htXAjhZe ÐRG`X2NVQG΂S/$^[wuY=D3/2J$1wm(ޘxxxW3r;S^Owoq_$a 9B ~qÃ? Fsg7xK2<]rܱ} zۖa78ܫZAAJ"qB.Ӿs J.+x5uؑpl;poh"֠c"̙{ }c=;ErAD;ȑe3F>4[$lח`-N:H.ELpTEN:$s/pf"2yL#ydI!ZQW11v}G6BⰱL5([8F:. L.oeK!*y@}Q,kk% Xp CJdFb,qdź+!Oe/oGڡ`]|3q܊Ȭ]Zg>QZxqǣvL6 wVylZ6+Ozk0acWȿ Fi9"dP!nd)>Ac7XHFJ Q0 1Wj)uzUa$2VDNxZ8!(#o*XR!waY'-tݠ-VN^ZAuW| Rӕ:; A!r>].eb`{p~pva 0=>8uF#zrb\rB@D^_u JE'@5/4D. MxT~Ԏ1<,*t(L7THC4yv8 )< wqc{;59/sAa ̞cbb"_oԲ$-D`WS/% '[q~&q'xӢvҢuTq?W1Dc^%$'X k/$eu[6ȓ9m `4&8VUMwV΂jy)!pPzVd|$frIZ,] "^ya<#lGSu~볾^KwV)W>mܺ29z'I,EjBW֍QTqoB2L} DX;16~oڟ{z blĉV1O ,+k$/#W*R]9( Ë,尬t`<~:8P:A3&N8$9gbe6Yq#eagq eG.;DzO1[ݺovD^f-:qNr@W)Iv I&"$M2jn[EI`B\[!C`JdMHhX#͐zITf^6[y #8o~fۀ2Y1VO1fw[.ܨz !\Z {T,<> Kli2ڑ8(@bzuej9sEIĪ j9zd>jrBrrۑ胃u[0=29%Gtƺ?܇']Ei-vmѻEq溛%0~*WpY%Uh۬(md;BIn;3d̅ot=K + 8"`68֠V]a .;ĞΊt%C<;Ϣ/8(EC@X WА.Vdp DvPȫb;ZM"s8~DF%ۙ iѕP83kbYq_ +4Ի;j`/h]!y^P/9L)}[Dq&(G;qTӰc-eKQ7͐7?>KLE)}r|޷jCE0-";/l|=QfI|Wu /_9:3o8޳r ELA vlxQE+!5pu)^]%d, ^\cj= Tle[q׳< c;I`LsZ_pXbgcyMZ0-PGva9AAntS2g1 !&sgԲE>GOmC{Y^\T˟\A]u7ڶo>\\:?phۑ\:x1T̔B0ΫuJL 8Vg=34q==[d8V X7GO)t\Pg=y](&Kg!.$-RG&l@dQZ tٱJ'F1kœ?6wa>Rcn^V.LOt9[]^Pڍ:.nMf8,$)XĄUY)xt(M$~㘀_%0*X55&I(uԆ3<.*MaaT#b- ~㷓-r~Vh ײT [{۶. b C)tqopRciG{jͣESBEwߓ+_\,˦a5KIIY9{ztxW~ pJUmBioᕓ_TqwmC+DٴQy2xD5:,&ݝJ,'P ID@$y2yHEws|ߋv"m{72^Oi==KMsvӁ,XIBFTvїv55wQ$G& 1vRIÀ!φYLy%x[-H8(-;:iq=i{BADU{&E7 98y+1ux6V_֒'ǧM[H5`m ؞[ _$}dk& w ii5ĮFNd0a´ (+i oKBN+Y'{R?@rkkƮ^NknߢPؗ~P])Xb%P7cG1ɉԩ;qaKfa!>UMAbĥɔ+mu @,ȘUI $t)OxneKS@yW;캒qP([=u\yJh xh0=1c'_\ S5KV%JXݮ{=a8IJvjA[Ҥ(YW"۹]qcWI є?#76W#'6ߵnm/no lp1$*`vז2elMbu a3#,hdbl;إщT'8MpwI]L( TpUbio;:H%?#!I/SQ/i&鲬j?4!^4r磲ZʦlfA[Yx;xhZ=O%>i|1vEfpNB[6 ($JpRpBlbτ!iLEFLzȿs)Wjy j T{1# Q_WGR<0V ˝nIw|F[J2Up4)W6{ B,3B?0QeB'op`έnW=I ( m 3}B;jWP]GG zpUqԎ_weoK>cZ-|@| ;û2t<:CiK^ B`GQcuLyhVRcϸ>7Y@e$ ge C9(JE'9l/L Ug߹\% ۜyʂ0eIYj7 el3^mQb[Rm A^/&r8ɇ|&qEWE:Du3}Fwwq^5wӜ91$tFdڴ=y_8[m[yRs;Oe8ܝ*܌ʛf|n!1j+\q@-TAxq. Bsihk!xhuĤbi{eCݽ0-:+`UppRbfa< 5UxFmw5x`_3x[vmȾA,gun$U6:>/ԉl_>oNj };f+X*L&ӡ\G}Z`b'ey)a#ӓؑ, ;au<̀9:EGNt(@R ' d7,Ue& Qh+uǰ57؃;ŰRlΫmlP?A越rl 80#I<~ډ]`YW&m;9K_9Z\vGXtA~>Co6x,k݀^}ƲZ']M{ӹ6*IdIAUC^x ] )Re$@PPiO%0a :saotL0 e@$ݡ0I=J"M@pg$] 8M8~;GV;,m\ OmߓrDfFu4yp%̞K1uMhlZ>L8%-Vu|WM=FͰ-< 2͂Q0,n @[FhvwVWO'Y&, 1M@$yHƢ t-h5}xF Dg@Wyz1?F;,h8mq ~.f!=ُ1<u;kg i[A;Tc8#r4y6w6^ԑ0]NLb]nT6)e].odAHA HGLX0=yIΨXsUxl 8E$r4߈ޏԵ0ldMArm? %LCX,Bd`Nr#^䉓%CcQPן[|Q27lG-xg_ }sy[_pbXOlթS_ކB%T+&<<,F;>oD=U9 B3;UGxu:s4R4qeTV}<2$mQi!,yYm mؖF%N̊5t,'.Igp=Jƶ`V*/H9#Wa= ~RyJX|J"CY]f!U6U9N|c7LWߋ _muJHdb00 )e*n(42У'Aۗy{:>>HcZIn- XmTO ۑDk -;>zm#Fnm wX> L5$A0R\hXXEͽƶU9x?q4_;Hf8HH߬Ⲭ^!^&8Ɗַ>Cmic6+JS'rnmzn޺X|)kFk;gyNQl=O套KǛ1׀dY_6AegC[wW;@Vz&(n& $JFxJH[Ibg((6`N[)[;>(hGLJM^+K&9i\ b?r;Ј򧹮D˄WCcK`.K?8F2ٰv'OηoGdovtV?kΆm=9WBn S7ErO`b ĝ" pQ+Xes6 Cȟi-F:Z_]1 0q=|+L`" "@G@1:x`<8i}:\vC$V͖Zsxn:`mo7 P |V/ϨHcKׄؗ(9+|Mޱ\#/FWjJŊNLK]vρ8xإE7BV&˧QMG@z0̀)Wxx}Zu^,Pph"}%[Dycq!C,ױDV:AJGBѐ~}U WiC;T?C2s$</C1w&Ә`(#'( 0]-Bjθuu~bk,9m TǬ˫J2ugVԱCwbuYp ~86D.1 p; i|@H _/CDo~5!߇[ݛq`lݞf[XNrfۨuǫ~aYX]ͩ֩%E|ﶽ!'ϥvauⅉ$>^^ UJ`ؿ3&ވsЪC"nv»x/kWWF"e0['&jbÀ'b<{[U> lje4G3X'㶏0VmO2 kz[WշYml ]OXdOxo9D]:Ꮟ*#.mRfd~T(F$3c2CPzhy (4 я40p`Ѿ#!8q)(|%{0T^r+G/VNo~ro A=uYA{uCxN#5Q&&℁zR,JI߅ú_ YO_Ge;(Sj79x֌sbTm&sq;~ɷ46oY}NOh $W-M֌bGU+b7hd#6e|0ЗH=j~M$\&V 6z< 'v/sو)Aؗ ƪJjYu aa?3VW,OoeS|tRO7MVQ‹ʐO2 kfw9`asKjImCvN€>6̖W'bȂY6M%HP_GIo$ܻNpv:_H̩|X<VCgi,ZjW"V%GYXB*K1`YJ3:x(T Oгx.Kjj)@:$u t>7#J Z_drwb}}WynokݍrӖ,l0w6 S?Z^:r,՞C蜼Xš Gd!H+vR1j#֗K;Cd BziFFG2ҕs(Ka@Ʌ>r% ` ](P:)IjDD+&yB;D.m[i18j9tFӗ_Z;-6y:9銔^ KD;:GkLf?lHe; gY p*b/xLݘCd3b>'\^Jr?7jGHP1 P,s&4c4K"}^Lv&2d Wp_]}4x\eyG^| i7'gُ96=Wξ8ƨZ;񦞗Wfz[Y<àȹw 2(X/pR h |A+1I(EV~۶i@ضoΡo*z /Z0N8^C +(, ㉨EN^-> ;{PJ?f c.xXgJ2agQ72Z`{rɡŌ(a+QͨZ;q:aJ|=W p,zxgQV-Vc09)+]K-y2*Zb"K`-N¾'Ab黓ZgL !r@Dj4 V]_$Gvb27{A<Ǡ0}qVՇꨌMqJ+-L'!A 30 ̚u{rQyPfC;ew6CQ>bp,<ܜnKdHBҬb}3|/y6:ݎcr1بؖPsd9p8;y]_MFMFܙ$>7qN 10%>(2d`LLHT'bw(zT  #f&+S`1E,[KZOhp &=֕`^Y='׺yK=S7a y֝xIOy%E((␃ ʡit\~$X߅;.t-%gOn;ػ~GhX)+LAk<A)9NVkƋqxzXBEφ;ږ%WۑNZH} FqNkM @jD\g^j"Yi5tŏ:\/ ۱-TIT^icKDܘf SEUI~?c)4?7 β%j#-&?kGߵî/zbLxu9b[U_U̪;g'H#X2LFN3. Wv04` 4HÜ|sG%N-)cSaF'Gœ0ZG(&sil-uM]`еFR |Z8^`3.@F.ጥAI 7Al/^نmyˬ6Pq߃qz뾻+^6H-܈@YR/) txEDvB?D]XKx.|;m0͜wlMjEhED5W{q;0BEE" K~J!?f5ihMӤQ Bls8W7;E*ǹցN1Bb1FL1w^uV@Rҙ.3v6+9+bhMJq}srvy\i^M@KDQƘjꖦeougWE,)g7*ntzM.VbTGlm|"A=+X>ڧ{hۢ`-RqZxӣKJDV|U.:{<3-uxEyyVYğ"DieE#M/l*+Ʒ -:8RN& #ķOf9tVBz_9)}Uqz^x;I6(mM?_mEV%;m3jy8"{w:0j 'D@Go Ĕo7&0A @)@I`6ևWM:DxHSE64Ϋʗ9H+p97=izn:RrQ#<+,eW(G$CP貞fY={g_K ZmGN|srf]CJF.V$,:p3: Ӏr举 O,^ |w%6jBNϪ-x6UNk[ Wl fVWa(US/j߼Nqi31_L>л:ୃZǵYJqڿvڶ ڥJOcNpqvCņ[^qc#0‡rspˊKGv!7?LÙ|9+pSΦe(.&!N4}`⻄iqs!Y"JFBz `wWĶ{"m.mUwExtˈ0ښ|)(t5ey;' m&A_&NqHFPQ(Inm!qsИMπGĖB5Y.taY=B#.c]<;DܪDĿkIԟ ~;½Y؁s y;jNuvTVlMStۓiI% i:j0DIH6.GV=g^?; s{Ù7:}00>v6\ƤUD{̼ 0mDgOo(!O"Qq.HC1\AQnKa` ?iǴG! HGx>nt$v.!JGWdi }tl,[I?=}bLzx­׹g5Amc'lG⑛-" VG4L$;2Y:jgl FOzKC+ 4a/_?( zL0s* EXA5R8+ W$j%qlʁEG%HUWrkCXJ[s%3-Y|.\݃X!*|g[ٮZ['.łvdI;@-aTEݥ+V5`WI%eWpҶط::#& Y"\N3t e(g9/e9<a,!f3ճiA**MS=w4lǂx:7G>)x(D~3I197X3&DJ;#o|_m9Je(""0a@Y|88wqs%?ڴ3 BǏpH X @|~ P/h{[gŽ3|9ioy˷>Omk׊:75^׉ ^Μi|N`.αteX_RtG΁EH }rx^FI/(e#BCn1@,<@DJlꝌ I,E$/DK[QlibXw BFp; % `N@M"ԱS9fYswfp"K+l||xAіa}?BG{7t-hpUF?g{w&!,+ͼq\xE(B< v}i:>U? o̭]lPڑ5mD7uu^Zy<(RŽsH!y=qxڜ H N2ʇ!Qɢf+6 KWqވ !)`'^^hqbS^2'MP3$Mmy⛉S2Lj|c۶K8ݕtVݴJ?܎:e[i7ȆIH7ŕ8):87J&u"΢t^ɪ}$ z~IQ$.G$>Ah%Js ۥC} i{c:Mi䮀 LQv1^v$q u)i 9"Κ./!Wkf7CT{tt'ˌI`U 8hU0Y8< my歅ݠLrΤf[JFl!FGةA*WYxTa銉LJ7M"@Y p1rt= ;^OQkHӓ>!sCkZ>;OH"{yȚ}S';.;Q x>u/aMd_Yv +QF~x.Qjd@ H5 1G]$VI"S/qL (ແ&оbVRΑ&/%"$vȥϓ|md8|։mN$*䯻Ljm3I&ؒ <wVA0 @%o"A2HtZYxFiC,Њ"ʅDZs Ęegv&-EVAy]A dX`3&$ϧC6AX,ED@ ÷%Xy ͆AJgeJQvB撗 2RzS'4a5W[q ;q}܋[s! ٍP>h뻃%`lgJ^l\7k`\׏)x #Shݔq|3N#F:Eiy utQ8:($EI|hO bP*@:(^]ix0U3<|Vd, 2:•fAaJatdG kݰ?cKqw0e _ҵ9շt /ݝDzq#C#88ƉA)"@W$1 ,]EN :H*T7DRb^LyywyyUh|\5N$cf]8j(Es3]%BGn4í̘"Ƣs N7zNU{XVG5vTȼV+FnK.?W۶ӝ{qˉ"J< -*L$2~*$GTEh4$!Nl yC>t (ߴQ@pDUQv`? NNn:.¶Wе6{Kv ⵽H_pG^`&m+:VvZkm2O{ 6t^dY- 8nyV9;21k"Zp+Eߣx<{*>ӂ8 21*vDd1n {D aXCjnE%=NJ mF*3 R?ygMy[ȷFZ^y O9yr|q>q@}|e^ ^1 CU]nt QQ(V.Qg|kw8=U=2x"^m-ObOZyu78-wez뤜3ը SxңQ*--$& RㅃwbYWVr&WX!52fXQEQ`=_"I+O?[HuI3Om?;j="gr>ISh?rTYiT HS%2H dµV/77 n ^<jkOѮ]k-{S v Vf'm33t| ZTVz󊣋]OfXp24AE3Th$4\D1 B9GWUft#&ltzJ2 G5aM f8ql혟z9hgO`5R$NRS/(H~=|u>41m.Kى}4g4;XoʟW5i^lm?COO,'=ԧY6PkP"H#<"cc0xP ]{vp$ט_8#9Z54t/9#ܓ!(i0S1+nmzn B xO+gz9qw0&Z3xjp(^v(.dw#yw#ׇ3q뗑Q0E ծrii:.WԺ=rQ J%;Obnb j wowf|kZB;Ai@r:^MנםRFs,[ͶlIB+{/ME#9‹Y.pڷIlPTde\5,^04 cz*|$nWX &T)#z9ՓyIUHAϑ`H' -8,Diq|i;/YFJ\4=P1lwqʓ]3 aBw%.&5rx$DBBԊ'q46{\ (k*~NB0ͥ=N xxIYBsY>mՂ?s+4j*Uyi?|A R|yrKN_^ _>(|=+QVe} so}Gk?_s}ދ/Τ6l?^~{&ULFY?E:=/*u8[~۴WosY>cm7?y?;^5Eڙ&ߢc+8N֯˰=w:w̹W}7e>ܿGҿ9^akmu%':5q{A^u=Ce{^?Wf>Kޮ^/ߺϽZ͹?}]} q yǢ{k?/MxΖ?#I&7M]v?s;[~7o ql}_vOs{@K;/'lذ<9Gs?vsv/pez͹{GI4~?g_}]گ?_.W>ϝs?w_~|Xvϯcw9{ٮvssoϚ?2{MZEzzW/{{0_3?w_-m>w7~ oϘkv{9?}&md!FF*o'dۃσpο_|Cނ_>>x^ok[~){kxwށ.7?|?9|&|`VミҐG>׀C:e׃_#~nAOu:|5?||oG;qM1X4Sx]}={g<}xgwxoÚNv >^|ok_?il>Ԯ͛j _>9_?d3 ~NMO^|ߵ{k^ޯ޼U+<>_c{%k\DJS9>=zpͿOΖb>~ v #~o7m:k9<^=|k&Ś%v f3.^?wCx}K;]&\a=?𾶞~?}|ŧZ k[o!\_k=nd޷}Ggŵf~v)~k~_o c;[vvP՟>O^ ֞~{5xwk?=xOx7)7q>޻+ggg>zK9=9>מ+Oބy}ۯ69jov~6_nZ{cm[7x/^:?k?߅4>>^ub{O~'viƯ8fmvs}V=X_iӺnžkwDpg!vSў| }b endstream endobj 2559 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7 CWln\mI:v/JdeQ "=~Of^aI~|p'XezmAgPf"0:^M0Ͳ2;)m<7nUb0,>#~XX5z2^,LfYȭZۄri"z> stream xm[+N c[eB^cg##;Tu^|߼\~:\~~x|w}_|?}zw}z~移7׏/LJ_ͯ~tM߷\o~mo^Ï/s[dt.W_oa݉ËWVө؋%{ rѿ7}x}'r˫_]^}|}~x o>T2\Ƈ_|G7̷o]?4񏿽{a=_?{w}~|r?=O~o_߆t 7bfK6i1!]*eڐ4ܥ8I]II)"-y_\s;ohsm<q-!5pZ#-1 faXtf)7ė (|MmX"/(Q8Ȃ9fcT 7?{e8KKI(|ю'|lʞEdzT|VgǸ)WvKy5k}M3_< I70LOnPY:`){N'KӉ/,-gJӉojzn;ձ4z6NAėǕS@aYyYk_۱٬W),|1vҺ+|eny;\O|92̪/oH_p'vxM%dK·VRS}f`O—vNɃv0d/L(G*&:% ͲChb7(+>h>E7Tb)~.=s;eSޮ޹s :L[W|[( "|k{ /v?ϔBǂEVwr[$|meCk߰1w-ëg ,NZ൑ʎ𕈭KqDd W QJI|CvJ}q-:a9XEopXN|uKTp%ZFr=-3Eh)UzQ}YOQ| ?,+/+CbEαUko=~U|ll>E9J؉Upg^ ՔYz#rzmE3a=2v*>[ n~0l=9eϑA1Nܰͺ]6՗~k9~h|ɱi~ɮY3y`]Yw|S?g̟ vgslv;ʿ;gpÈv՗{f_ؼ#>ף.|zs(>ו,Xג0H3U<4NGPrw=0 N퇃P5Ȧeq5m/ | |;_ޚFtn MsqVe!Z} s;O+7sF57bʈqAo A/E2',~AkOKa#U8ׄϓ\KHd%;1 #& י7G,_jKъՃI<ԼFҸ{ 2RvK 4 f]MXI/5;_@$77zj0k %nwK"i~Yg+"vլ aN,_L wD}Ynd>+ oS#uF Aot #+Z{S/;ui0a`7'oL{IA񿚘D|V$5͟#K'$|git0yC3aA`W97f.;vE}{}z2ooP}'N/K; iOwcɱ+3n"`O'b ׺D|nałQiRx }2ƞi\D߁֙k =_^+Ug}b S zmdZ2vZ _LA'1V/gS>hIovM.g.]"lO.B *YM.& _qC%>7TQ9s:Iu^M EIzJ++l"TowʿZGU=9s͖uVf J̋YXb~_w'`Xxt97z+}1G; 3 +_WD%8V LeǞ};՗l˯=[M!E/9>ź>ܰx q#Z<T",^_ϼW};ew_ <k;Nr3܂_>J%_} #ޥŽ_1kՖK;_epƉ*7Z YZOSgrXWAL@.̟i<_'DDͻYA~fk/]/ D_2u}5wL}3ȓ_(6jOH/Hw&("oQ'UF k VpBr ξp۹3z-vFBϵ5~_$lzǧ{ |Dv4gMJGZn Ͱ_i(7?1{sYg'?_o_ۯ]/A endstream endobj 2365 0 obj << /First 1826 /N 176 /Type /ObjStm /Filter /FlateDecode /Length 5377 >> stream x\[~_Q80JlŒ?ZhFF;Lw c) }<7^z7Xmr!+q!&.i.58O\\0 v nZsds):.AkK`r)'j6sL!A%;hopup\JER :%9Rk\Kb ʐ$nJ#VqCRp̀JfNY.k4lZPS!A KC\0 .G&_304a ,}U\\, UJ.J5@B%3P"C \< (g-;R|Dc]h;f.i`!.p~!D֪f@s*K qYa>( `|1w4䘽, 3M\` ɱ;RCkq.o)eYST&D=cv<{# Hkx~6:hǕyNZYi%$9x.,u(Fحc6:7n K\Wg=Y m?؅-ZEYNl0(f/vYvcKĕI6:\Q10d@[J`U0 5$ُGR6_E׀x*|Cc*Јb80|i&W4J0C :.{%!.hoa(rbq4OAu?{]8(-pC௃ek!sȣhppTp!GGYU:f$  !ȁ (0! ^vQԕGA11 /DV &X EY)XU3YK + =p1"/Ǖz2"#kNVU+8IGA#pm zd@$wLȒ{0Df'!zq:+=tgaEd8# C_{D$+BS޴ 2t!C2'\S_F\ĭSD r3΃9!kp,RR =֗V]\ŚBBȃNsW(kĠ{;,;,K6ޙ,摒CpHmVH0+#U\#^,gBq&MW B)u)R(W>΅J<á< D(@ĉ/Y:I_?k#Mg[ $ ;7V`FfNY@ތqz)Cq-6nbw;d{l$6bCY+b,';i儱B/Íov=2sڨ`l.v{?CM#Us stjhQ Y[V`yi޽:pg+LB)Q;۩㜆*Be[ V̸IFY9G(7kO@6*ȶ[ٷvIo5T+ifk#Yac| YR*um y* UP$eAu- .vCZȓso)IP%{TBюxV鈏ivZo G=k^Frd[-ٌtڮv mb)R6s]#O$^k00SM$6ܬZfBPYIk7:6>`4Xc6Fr =D:覅nxp/AM&ńVV#"oT Gcu.x!D݁N=К|4mبziD(DMVi?-ݣ`v;Q8 sB8Rb~?kT7;yf%a7}B wsWcgU7CEͻ!&էH{]--eb<ڔMdǥrξ:HG( S϶n+ɦУ`7U:tAO+ \kLZ_OrBQ=6b~2mhqGNm8]Wz+ܗ܂=^g#Y1UB_|) ӣ˴YLfMcP_[ĵ=޾\Lwcn<^O2uehr_M@0),$XB rnd#Tڼ C!dUnd0\q$L Gah#G#,)Ձ=y.0Zer :fרBv4.59iR#zynX@$1va-MmzS3kF\GXbV%0kytal}ŖkA؄ V)7V76$nݷ# ||jLFJQ,u5{ V Gp`"pwIIfnJ=^E;chwmkҝ4| N2~ %G[noem78I:X]w~Wg=}=m`҈'!8>_OUn[FZ)Zg 0`/?^\xş|:x~]<__wo^j|brpvz>w|W~x܌oߞoX*koߝ|7nx}D!*XtB?^l?g~5 caӽo>9_~'1pM_y֭XN^,H̓O*ooƾ^϶.^€|ZWkk/!?G;ÿ}s;O- Hhٷkaڃ?3<8o㡑g7n/W߿|gXZ}'Mwrec'uX$5-}IUg ٮ_8[|0+ |H( Vͅ|cC^>Za|*&kV)\FO&=`b~0zw}"VJ#u4受o+O'ZX8&X8{`|'xy^9‘߲pf;lG\Xz9&р2:9yp}| TB&6s3];䖱`>Uyy}ć?7|\Bo5e;8 yD /CgMPhsles.Oq1{!h>0|_.f{E.&H#2now4gibm_W#sPLF6zwbd׍ؽ#CK CSczG ]cY=uuuu*=~/ 0~ʞ5oDZ՘2;(\EJ+wEvRNMYT|>}45wg[j}<?kŋO^~տeBtm0 :x,k^1ZukO!{ endstream endobj 2565 0 obj << /Filter /FlateDecode /Length 171226 >> stream xڌ`$Ǚ6UU(͈y$e&k\33&vaf\8\r])\?Vh4nr=J.zy^АiL{P#vW_gO?y.\702 \C¿?O￯}ECӐvW+pR?־no~p9/^QM?oM݋Ѻ+_k}{T_ }? kyo!i[{y!m˫ߊf?M+?y -OidEnZ]lM3/Fp} O3 }fs nM_4u h_0_0o'5-*gρKP4-w@4(zk4\?Ѵ2}-V֨kU{h4a״s4?oúpZF߬ici \մi$\SMgL?^fnӴY9ִj5ZMtDӖa `VoVѴ0;4mm\viڮji=i{oz{8x5\״CO[v M;25M; 8oдҴsښv.k)bMvCvA/<}\ RxKW.5r؛Wy?մiW=|Úv-o״>i>M~Mv7w4V`nIW=p/47jݏӴ{.ӴGִG=>1i~At?cNu|ܟk?iOJӞcyjړ^iKӞ {)_ 4X=>>뙰 Х,gX?p_Ӟ0:`.x i/׿/)|}앗P^ >9{5k!M{=aloxM^o}io1ǚ67o5흗kڻw<竚^x`giliڇo?a}#p.? {c08 4wkڧa >Ϛ{ִ>?h{}R>sM`}狰 +p& g`1uo&7XӾRpxX r.ck8(M[X{;XϿ{GXR/ywal߅=߇ya~c? ٿ)T~qïVGGմ|?pkk@6BC6 jYCg] s ]U\C\F ]h&\0?ޫ[pn=oН0ޯႱ<^}/] =z~4x'.}"˓l^>|\SިCCO3a^> 9#z~?]C/X =^C/z_j'52/} +a _5a^ s:؛{\0 w4&7NCoVϷ\0w60`? )OY4 >3˜~spo?|@C_ ׷4%X/=~?>Ao|MC|Y }^'Z/40q_k/#3k`]Nkj`.ݿ\^.᳾~p\p?2Opg+|O~ssKï`~sk; ;|ϛ4ZKC 00z4LհѰqͻ5L/0P\ [7hؾJ6Zâaah{ppW 'op {/pާ.pz WpqU hc nߴ5KǞ.\7khs g _8}.[ _.iK/eWXWޡ4|Yu0`no|o~o7i5|y35|=V5xs/}0XXP|EÏk !\?'ݢ/Ox5 \pO_3`<~,gH3 ?b ?Wha 4gjŰ>/_~ t_GkTïLïko_ {׏k >oo~3|}3|}kWߵ|nؿ5}q o. Ohw~:~0߽QI磏hw?s Og ?Yx?k4O X?l  ۗasU?q1}k o9VS߆y) )˟ _KGY[g`;5/4Y {i?!|cXɯ50~ɟn `?Oy?Zþ/5G^s5E#!҈ 5B# 8gkĺ[#.89>C#FF<iFk$Cć5΂ .|tp/-J'izKcx] COjznJG5 _rM+-]7hzyhhzs^6">76MQ~{گJk%mXU{Xc)Il6ڭIۋKi;mQvy~)m&ilV٠Ŏ~q~3|mҤ)]4cNhRzXm//R<߹=4)"8>a D,n D?ghk0$U9PsbCR aIcqh` RK燞@HP!!5h.4ŌİX&e$6d;@t,^bR'2ud]a> ]Nl, bx?˥1N00ŌM[i6ܔ@lOk#~}V.0,lb7I+xcϳfsԿ;Mz0%(8"' ܠ:2m9ԜtVn :c"|s_G|u⟛$zsM. Gv>C"ZJM1aՑʸڂ]vU<,ltj趙0+V{a\qajqܢ"|H! [5d,f`.fpL+σƇ]Kf3:4K]ȣ ݑEi1^t0*Xh. 4SL,0+GXq<+>Ęa]7C h9§щ,Mn4+Č1[q2%H79R>ZkKۧ.Z(AI) RlPt]gj}`/{o0h&YVqeL_FÎrۉI9.Vn[ϐM㸘w %MilL.ŞT:`X/D9ۓ$cv'aJ N`V|w0G>ݤ:$ې&}JB925:YLhHڜh9x?R&ՙJdiF=ӋQO$|F8M+mQכEõyjKӆ8; ŝFl']y_] i"ka5Q0\vO>3M;bX)voGHY9m-e=Z`~ez '{p&F=m7q-NL a#.-Aߑ"';Ro9"|Z(@<61-&2]0Zhvn@1ސj'9x;dԄ3vD`S-'^c~]ֈ.vt]]^'oɑ2(VVߴowv@;]='LAlx+_6+ j3iCZ]eZg ۞[b7 .L{Ǥ lǓqZ!Ζ,suGeNpE0DOr+GKbbub?n'HZXwPi:2-1?c`g& s^S:":x-Nxܶla<7eF}>4 `Fs<]]ݠݢݡ=}>ý ˦*V|ft>;e w݌LZT%t.EZ.+#Ef a|%.-@o2@k@)ɐm$iڹ\nr><./،$ϴ:D:8o&78,Dd&):Xюt0VdFc s{FrWmRCMc}Ζ-IkA`䱈̀!p ˫|xllfdƐzDHӰtʢ@AA,Rj NwTʀP;|L3Rp̭j'6ZJNb6'-/Cw,'{6hGp03J^p ¼E_8U'6Hiݯ+9%=A3?W˸!QCwyce8Q%ƘZӞܰl-J@m 8\YN8cOentt7 @O"oeJBn]XGsn /hխ܏K ,jCejoml-;|OY'([_,'ƱDi+7Dx!x<<\E=^ 2Md8;0CPH =j7ywE?u >Ix:"I'Pㅄ$(eeUw,2d]|\tk?x$\!0ȝNIwЖf#/ qt""J##H*}}16u+a(nR:壣8r vLbڏ{&r ]RfiU/3!#&Ypp,X~ݒ (#0ֱ|.3bM_>c4-,![TcѸשF@eRKrڕj&y R>Zhe,N60 ¼x#3f_TvO~ bJr%1hf ˯ 92oH+3;)<{*,vE{UW%_+㻕j֮p]_ٙ8ծ۰#yZB 9<0 3Hiqߥky޸nIJj3vwVs'o%]n9z3&0$mkpj=i16{kԽuT h@)`tN2r,Zu^Ǟ}U16%ྲྀǓ!B]rDVdOryHI>s'OrzW$ߦ\zvvǴnwAK۲Ee}5&| j߄}  b ᆏ1.V$) 1*ӡDz\"~BJx`A$R w ^Ǐ +zC;ᇺ'bG;o5%D 3{8v?Sc~z83 ͵{檲8ӧa .9<{0g .qs[u1@u>)(!a\':H~lVEJÊKJgT"cpBYsVkF6ËhِC |6ZW hP sswȎ(>ĭY"xs0tS&BnA]e5QhXm[._gd'h26>v{|@NQnf\j5}]`2w E$n BiR` ȩi3XLSvۡ͠/ yYlK%v:´~)bTq"LO7`H1tx.w3YvI~J2mic5?(Z=WLS楃6%E8ZURTbxGGGG]$GAsx-^. !.@R ͸,YP3%?YіӃ$HxV^=c3 M7QKǏ*c{PxQ6 >|q^Capn%B$ ZJ5ʠKh$dmw0eW tMύ\cDl'C SK}hhPteMW$)d˹u` (n80W $F^2$z5;RbAE n%WL5Ӥ1☞gHP22/w j\rvњ-jx1 Xϊ e7un 5Yg(PuK}]9F,.8G=Vq4^D>ׯ ؀̴I$ {>3Dü֣u;m%P1 Nz M ;If}oesP:kuS4i6Z9sUR([7}Kwu]WcRtu(@Ib MVUFn4;BC=R>vHm%,]O ]CH'[~k6283?1{n:Ʌ+'+-J\ I}czlfe:b~ԄXtM jJYH%za9]T[˥>z-:vOu 1$'3R(6ߵШb*F͟G|{1$CR(aEqAmzcMV-uUp|eIΎJL*PE.pF7Jp}C$06?h l(ȟ_<\B(ww|B0 Z &vZ>1B8#HQ^.꿇:–]`sq'?~wl c={.a@AC}6g>ږpvEnb!-xݦetu Y{ ƹ_H 06\k8*ֲl+0cGێ0P%JblI$v+%-eV@0bGER&?~ʵ;`Vee^ xz wn]sd>C[Ei̮Ƚ~PxE}yUL$<UANf:Mh.2v KzdN@Uu >;XR%ؖ|ڥm<7Oy޴^e/(x൑1L_]|VM>6BM=\ǐz:XuҜ1#ʁQ P zO]m.N64ׅ>}*_A)Aa63K*{z^blҐ]~|]jԏ|Љu"Z9HTS!iaW}7q&o}zФ%a 4 Jf 3e谴HOLkul\@\!lGt3aK25mLA5֋x'3 ωfOKZ4 7#_כӚjE4􆟘b` ]:stUţ;Yeem/μeX Y|Cjw ,[NNjsW"%JƐ\_)kD)\{"n96JrR` uw Ex&9RG"\h9lguUόVl pQ|OJNpg槀Q+é+Co OOR OZثKy52#H_Q2ܗqs|BB= E`Y_9?CV.n6wFBUafUBТ aD9չ9< 6#nAOԔJoz2Ǔiܶuom}ؕ:?{!?P4"8)I.*X0 +[hvUFDrϪ pueAWnJ`0i G "gͰhDѥg$jDcbz,Xv++]PBѐVhRƥL`4ۗ\0K"e#"D؆r1tq9Qn``p l[ NGǼjL&9p8wf*4c<* e[)v? s#3 ͂%(nty Y[{rﮣ.} qUeu]w1l7E&ȓX!- p`p^7aEYOG( svΎ>`l$FIHg#hl͡Mш OW$2`# 禖9fmlЃ`9NkhU{'-ϺCD7)l?yw-@p\G+J2.o#vV"ό(}rY̻eUf  \,`5`@Ƿ`[d֯3Ք{ #T¦ߐj QHeF/^"֩նUT -yҒ^+ӎ|nc ԍ9ڜ5;m Wp.Rpw9>F0BRN݌2gfÊ^僮ovb@l`dv^YH6ɾE%AJH jh"B#S \Pd2NruSleO9~a?4@rW*_fWEXObi/\#P.7)f& BzJ߀fy/훙1E^ЮnW k]Teh:MD]D[Yۚ)r`(*w[`+7A<z*eO3"j0e#2EMj:A4 : "0ÆS4@ _}?M^M,[͕;_; n;A5\й 4ibQE!TSnAֽҥ3߳{~ҏxhx ~i"4$1u fC̕\tF00DkNdބED4'!psSe8'fpYl 0JP f=D~.522K7˵^G[e]ߒ^=; (j >v"fi z:'n ;o ̝d䖝Y-ߋ1,~IL~NT*BXfbE - mO%_F^8А$W(eJ=M 0Iʎ@/ܨs!ιD0JsGE`?s0M `-YSwWQQO ͒91'*#9f x%@lߙj^:ftgڵ dgc_RC%6gd}mV8 /ŗ4=3b>,k솀OxkG;M U!CkZ'x6{d}5EgUShΪ9I74t ĝlN+ғ!-oOyYl xk@߆D g⑤U\GY6zrHAlѳ;_֚,g 7dm>*7 F4'/nv*oO f~pQ/j)ߋ:t4D\FpMpB?&;C "^:@U˴8؞g20*ly&NP>t;S |9 9Lb?mdE foIވ}N,_R- "KY!c|\8`[VWFDN860pJG!ptVվĥ2K)½.UFk\`[-ڽ奎gB.j9  \/cc)9P9m~Y7 w5C#uS;1{;!C |8FW'|ǰI g Nݺ{>O0nND׀vSEU|Z"NvXPS6n{pZ][6hƹ|Q$E;lI22܂> DΡN0͊|9Z/߲uzrWw2`OjtC3*< ghOSO^j]VŢQqPhNqa}@bam81# nv!ZTL(ǽݏƭҵ<ʡ(;ndP@rY)%oYX缇[Vy~L@] X mF>D-R ue*6>KmxS=OxN)+NtG%esochmvEU̾\YĹW U(K@}l⥥볶Ǹ44,_aX_2w hq&%.x2<cԱr 80W9~)rH&W.y" Z4_F;k}'9Ē.0C\9. hz-ik=8n=v3ѩ?S ٮPmw*Pxt d(\owYXr|chn(p=Br:J/jTG0 9ۿֆq-fH- nVDžN? {{sB>qCAq#if':fiuP;Έ <02B nrq}PbD)| GX.qmgU=U7ۓcc` ?Mh_el ޗofwLbw= >%]8'9nH{Ϧ(aD~ 5=QL…09Usr}Hf|n xe+@:2kOp=gy~!fElɕ&V0h~! $npx5`D;D{s_GeV9sa}IF s s i h#Ĉms 73K*f)5Ul@NK3d( J%MU jLܱwoy{&;.~Ѩb٨c7DYc.8@w0%yy!xѕIԭvD .!J^Y݇K-.xz%17@&6%>%X>e+iMgυb9 {mT ,Lc kǎndg¤T` n&9sOqgIi٢K ,*g<+X53!kXD-z9z:@~VTH>UIQ D TZIm^umH^\yDo* xvJ굊05-4>~ŎJ4g]08 v,\U7d`?!oi`6` A s7.v_F] ଗs?%[&jq7Ӫlm2bJ .NYn%%e|0nEFZXJp8!iQE@7pWXUOJp}/R*Ӛҫjv#HFP/uSoF2~w/2*{s¾.M24KqtE}dru[7;  0YU4h.)סJ nLw0F& 9x`9NeO?%)9a"r0'l`ZW\&wT80=Q $YPKg:6qv|evlA+JCxG0Ov/o푁W.gWrhٍdK-Uf귉ts"`6iSF GdJm2<,E*4#m Yw:[,M(=#䊑=N8%OUniMP {iU41~VAfH.ˆў1o1`:>[%歹eQ$PAOv&Np CwL|r|F䤸XcSfU&]@[|^E1?we%9QBA^ys+̀c.\(qg)1 יk0["HǍȽ|ZKT׶W\ݯ8r RؿZU5;cѵ|R fAj} \ ҈h[]$oR׻ #6Dn%A5<&[ϿC22=PJ*%3MTýG>^ ܮU(u֑bD4a/:^ϒRq>HEZ ?i{2Hh*gmP)fcXg1Wdsagh+p0m98 6`L]{=iNۋh_l̸K.첦\&QNJi-j\O LPh~mܿlü.^2tKFAΖVُͲ!zd/ʱ`gcewR @SzR &oZI/ Cw+0T3` 0(B1M KY[@u=o0c :R/tti d$- JFŶy]ӈK9|4n=d;z~Z/>w!vDf“<.* )/)7 6'SJ کҍRs[`ɬlԴWhz(z,*'v [=@][N$eٷ9c8ẈUSW;j5CY訢`^R 婢6fw* UCG`v#:X}y}LӠbZ mj7&"} }-& x^ B,V@äFd\aN11~ 6gd&*$e2~0ةTzAu W&&FLU&*0ڄSg"AxQ'3Gx%,ML=UZpu͹bb ҧ, -:xWDDz^X8eyx},0U6lZ\Ʈ} jQjk Y#$nv$(πKs4pj"0k+bjPNE1srNu3jnuf1.TWd2cR7t:<|n6B+|[|c*%P\cȈSh0(P'& A1j+lu#_'qIpb-P_.,HtijаBdr!Hjh C#)]HM귀πY `~bvaV̯İ֓Z,)zov1FzM7TԈ8=.Q-וvrg;3=j7"7+ pbCȝ&1m~$yLjGU9:dKs`|T&mo\n ہʐi×GG3 Y3LL2eA0ut&YtW/`-:=H%ke:J YHo Qp /ÁQksx:Xz c.8^3y}sS;}1XkMƤ43aH{Pҳ "uWrWiQ|<"|X)dh r.^D[E,.8A3 w* Q2 E4{ ^E&@SEGnUe@VDyUv,L |۬OfY֔s)2¹[B72YIUTRݍ2])W#[{jnnyr8?5r@h sHhg1@㸭]%Q;J s[+vzV%1y`t{b[_B^eГ(u^oa}WNTƹJ#]cK;kV] ’[8X .=0,Hvgx; J)~e$ssP8ń^`ǀɬ v{h:XTK9?=ϟJ<\h5S@&U%vl NUf,xa?Z hY Wg[w ?3ϳAi9'A{UF3=3cS_)jg_N5TOʘRO- ]$\\;d{Uf7+6] h~Yаi3O$TH*ü"C[S[ 䆁8u :mKO%5ԑ9CU3JYD), Jq@+*˥E;s{snr/K616l{4x,2,{`u7:[Ѥ>8R/#rV 1Sy8'UzF`&I gs m3E.,#!R98LE [3pl8Uh؍N+.`^fS ʸ tF_nsߢ'ݲ*r/!M`Ax0L'aw:yƚ?[.A<ʷc>[O_V'/T+ 5ùȡu/"{Mpʖ +8v YRzL7I\Zfܬ=Dy &ݥ,TcBglؤ-. /*f4mӷll9 Ygzymuڜ5gCOzÁ{)-!4Ю3 vi*IP}TUws)T3 (#K*U:fS(jxVb(:cMMٰ Ēy_ M ϓO3m 9~N$ pq\hӓsdP#T|7.I^/~_FlS13 g=Mҍ$Se}n[6WӼ`cMI`T=pRSws*4ٰ鬗ாEfke7.Nrݽϋ`Fn2W_lr6D^gq̥\D׈KOwlUPuҩsD*`扄xT6,XT6G ~^)8WVQ_v,y7%O{̢2CrRn9/=GD#&un+7aرGsv9"]G.za$IRfS>;Vt"_VwB?Dsal5UnK3?w:]J fs'd ylt#tfqemt[aا`D2ކiunɚN hnYQP+4ڜuK7ĢT{t(2yQ%IC5\pWd^7R9KmD=gF7SҼ쫯)HCXЉOˆGiM펋Y_ 2đ0?a呢஭jFx#"<:p"pyPEoY;REi^gMU^HΣ ՙm-rzwp oPӔ&+6NQGjs x GCDNHيUJFo]X7Nϛ33VT\ќqn]9yb,gw`֎m:p, VsPiW;^n谷>?&6Ti{s~oVV;]ɗazS^XT*zlTc9T&Q#sɩKZC)"&a&ǧr=\_,֋ccMi|eŅ2'›{b?23s`7taƸY ]Yy !c;L[p7lP{"7N鷻6'f8e즮^F cUK499>;x.{7S=w*gkx%ϏCWWir|[gE8fpUK̴fYbs{SeXsd w\^_%;dbFe]Ҭ,,X*S\"r.AkE 3`h]a[ E_CEXW^ds*nq|كv4wT6e@m]vlEᬌm N-l0{_Qo 3 :h\u&eם;]Gxa`SZ}[2r+NĔX8d|{ 8 eOb ^n\`1Em%|c-[V[E3E~Pu3n@!e9Me뛇H&'5E ][ɏX%5,Dt_BW>jy[~_If= f3d@tz_(jv˰ 3@|/Rk/s3NT DlOE7Qt{dK#*c兙DIRR.G B/ާ#$y~@sWMٻ <:PiWI6[^Ub趩&+r"Y2fh `8+X .U *9XPߧ3'bcqל 4a/S3ڻ[FPdu&poVpۓB4 Q]:go}<0SSH>$ D"v1|r6wfG))+"ߎ}KK{JW:vQ(;9 9prY./I",' VwaJZP-A3JH e-=i]4Y5!$Jcv5iж%9R0l V{ X[( $%L}Y_bafѡiYO|XW#\~ igmf#im٧/sL0΍`^hjW){9G-U!Eryeq,zKQ# T򑫃bcGGZ4 LRWKiFvR}kç>#f.R} DNWÈVP%=SC^^Eu.-2;3Or&NI/0*9u0 (gYuzFhF@Vmig,pbeq{<g5.]XWh8v]~n|3 XC7wp ?e2h7qɈ$\$o}V;.d2h?j0s/H+ydL0Fj߽z.S$:"f9 םE!Se 6"E/C4x'9""-7XhXnJv)@Cu+m:60%N/:ȄIv~qA@fY{Hfz|ţ󣡪Kt5c~'5t\ثg4UB@̀eQlP+\==2foČj ~} OCd$C83:3 \W}vեVٔՙYD(1S"ѪO ‡Vڍ NpdDu Ӛ$qcz(X$?8zVx͹.\ߧ6JU^r4qj;dx F)QT 63#.|c<$ͽY]Mm;}EU/̬`UjeNWJ:xnB3%2w܋Д ź>HʧBC34ʍ$ JI ;j;,ush8Ӗn-1Jm44(G,GU"n7f^ѝ, *DHţy Q;(]X蘒db]8uݵJUROg0Ne' *)ګ}Y{2Jv\}A ;^*aơ]Z.J8v2+rD&kswU)90 ز (c(UEpex۹HZe֨Y6Gsj` CIFzџU `˔|01E (ënQmJE%0]c'`,jv‘7"~[ 8!7a=f"^>P4z#_wSI38WY52"j u3]wDp4.1=`UGD[)[tUDN‹-sJpN]63+^4].(f c-t^4zyhɥ3e4@Dzhe~.xRQ oֶ}xߴjKMab}o !(S&wѣG[fV gFp uў4hw6g(,㭂0-&@%ۗ/.)]5|SFd ΰHL1s_`e; 0` cL-刕$R s2,%4$'^HUx*A^t_ ŕrqĦ# =0KeR\XbߞKbV_O}j,@LJl@\mxUU. o! 6K1M~l93ͪ*hX'2|1N.1RK̵RYkfJRXqZl36bqt=yjsF5E7DTF#dGcޱzPAHbǎLrFP0:,x9:\yy2mW]Ub1] 0io*iYz[t S<(;v$يR=MLp49ЏE?wM`6O`;5=oB9kiv*K|}Y߾YplV8qhKSEG^3 \R 0eMd%V"G۶ &y@! mTQ c \އVWaӪ< @vV> Y{S@yL <%;p [|7]'62k<^s~ 5dUn777<3)XVtӵ&^si8bdlu=DZp`I3]طhl[Ƶ&8J@p -fE"j1%CJځ⬣juzB$MS0WS';/@'ڽ,71Ѝm"W!s›lm.ћ>.opa`#87FI(ݝ*_YL&gH{k *&䪶`idE܀(5*\YA "Z P.?O.RGm@֎iO;bn #?bM^W(ǁfm=̌Ҥ+Sy<D$-ٓ621hI?3Ul 1 +IB9q|{-G|$q o؉ޝItyᾧYa:"ص] tB|%np %m}ni ,aY-$w82Ƌpa|> ݡ̰Ѭ[xpWG=qaF0.I%-bӈrÛY6VF`:wN^88}܋j=qGuv7¯SsU7ҳv5@.﹪[C٣@&;Aܩ -~przbK/;ƚqxt0W Z]pYX.W9d˻U`t y%{QK뽏x0z=UJU`3 ̶$nU-Ջ9N0UmTj' 3p{e NCY6x9yngր*:t+F:0QZ0oS'ͭ]tU'F҆ɲ-O"ַq'v-IR>4@jVMk U(䶊QӜq6ivVS>jj `&€ "|\ %@WcVYf2P1G~%y?N[`T$*kܘ͌ET͞bf 컵Z%$*.fO`WtH$s2Bەyt)2Lkr_:NFO{r nTjZ(!2 XX1>LXI AhF.,¢50m Ap*tük7 Ȗh/q)VnEYu7/yR{*MT??)$:e/nJIDQypT!ћXD ^G&02|`F){) T$9]fMF($m-Gpe@~ BuQpX>R̖!*Fvqq?3*C(96GMXM9oy,~LXV'm>VWruvnjĪ$vTI$r}+MB-VG$12η|%΅a]cڅ:b9v ^#ݤDЮ>hv^h7Xc]U@$MUk7":! I8zTA CVD;,y- nϹ&YR32s_Xk8Q"E,wbj uzwolݧA|xe*{ToÍVvnsMH"~ ᭠_<_ڷ94ZE`Qi{+`*$~~0|]Q~TYԟgO!{ik7ziFFnP@P^M]:}@X3Q|_c\ASSKDSɬ锋Q)(r?\ݨi^[HS |s[|XLd2631d ݰt2{|EawֳTYK+ݓ|+iBD3x΢L}3_̑(260l3L5C㛀 ۓmbuK1(m: X`d={܂j'%6~F%Oфo(HN,G/ S08rܙzLmBG8i=:ǀ9?g@~)XCҾ 6e@S7w)n7V3QU6 2>5L 0ԪP4@8ճ4s'|!iUqwC%wj !<H&vs˵G 3=iŸg LY̫͌L-ứqKY4blq/q˩]| aW8*rʢ^1Y BA둀seʙQ.7:/9Ar@5i8ED8)%@}'ii{A_1>WWdiS>5X#Ts~ѨK]r&$Y08+eqTk%^+z3z4oQR #9VlY4W"(IDb4ohyX&*ɃPlݤ_H< [F@n9yo(A Ah⧪m̾$RR/{DPhf7YQ~w^P XUp/ĬZp &}0lb)¹j~A] 7w|سΐ󍘻 <ٱI3l]S y| P?g¬KS Պ]! %KjHXO>w>b9u~Q6}:QqnICjnGV;#f;T"6[Aymyؖ\׋U9 I Q9*燸0s MO:T5S3kC%2) y`MD1\_\XYOJm!1ܗ瀜N%"ҥU5%/9 ,~á6OBT:~kJ0pXⲫZ5vKg~qWR@د FVl uX/=0RbfӸ6Ԗ֛ʖсAޘ&\ N@*kaRq0.65F)Xa7Ƃ r!3qեͬDf{ֳwƯ.#+DUKRIj.?u0G(o!OjϝS=;Ljl_CW EnPJg*uQq# .}A3sƸ҇pgo7z΂olT;l>P۲̢^ PjEP&` mQqGfu7oyfj6Q*5F|q״?^ĬhT :9'p`SC\8:-}p3^{R[{W.,ZYJho,u6hÌJG&>g~%e+5*oȊZN$*"K5 ϲW<J X/LTEpLggfZɗGcU#T|Ԅ)_YT}6Rqu1YtX1ĻgFRkB7QPif׫1+1'8ߍ?U=5M>=W;#M͂ kmSzIw ՘kLno(K4{2KK^ 䚬/ɫ7qUiLhF|x =F.m^e3jMd2tt[BL5;g77b0g1g-`&`wYe[*XB~,Qub( c H bTe6,x (MZޔ8卂sAmK'BŸTeLfܕjz]}'nA;f@sw}zB,9;l{7YU}@Xћ0|wy6BN+ F!U #.cTLyQTHg*l? ˓߯TIN3K3%X Sz>ش]Pvfʽe%۰?f׋Ο5xs,VjavG7g)I0U mSԗUA<;!cGGrhl;tލJӶ9h50E;R(vU8eJ\0 rDy1Ӌ {d`FE?)+8a|n!w&fc$_2Ts%G},8ɕuzxJLW.-s{%7.7\\i}p<הp){Bt~z>C\mzmez'[eEҍ=R2\#p+>rBbAq:zPA# en/ .zvART]cir?Yo 5]Vm 5GZZ eP{ ^c뽙 ^I(OS;_fob'hT26=/a7$!oR*dEsقx qe%g -`2,(tO(=r=SRdi/3]q8OTL[ԷM i\fbxci׃Iv [9L-Oib;} lF KQԘt>FϖܣJƵCfC=ZZq5ؠG~m m|ubkynuuٍ&|PF88sDqQ3'9%.K5nDV:3*qr;ϊކ%ZeaK&2UnsoH!LLGm5/qKysJ 3d<%DG9]%|NO2\z^#0w Fm^ OK;oiԹB6%lYӎ+qX,䞯=eʃ`Q*bġDLY >YJuUζߕ@/#HK4bT $W|xt~w'1بs-G'C NX{|#$ VumaL(KO[ºw}π{*{#رc]tcWaržkV>vpKm쥭@Dgf:M-//'tXX%σR,9.DnR\ \-[rq 0/Eo3 s)}DNoaM0K:  5/r0jjbZ7S0tbŬSx w YY~g]/6ACmz0ӹ ,{,_WFI]QC n%Cޭj[+5lݛP{„ ЎbQI4pǎlh*~dOlnvW-O{a v荠}>b-= F_m/Xi5TJK:$ڽ:>u;#V\7p"?,4^MdƸ$[,~Gہxn\ۆC#.Gy<Xldd&džދglأ1Kԉ+qg@1"~J|@ #$*.0ŞF㭖؀^\8  ]*".z^V>{Q;4aq3E+ldN#έL`fKy٥(;?5nutвX:#kl1"m\c te~ix.τnS4G ^9 M.NL-ٍYrU'AĶuzV|?lTG\ wEQks=a',^;}bhi=kte)Z'LEuL3>;@iG*9auke;(T4I-?ObxʁD8I:j_l8Hsh]0+Vu|~;)!-6~Aδor .,%$pG *Aahlt\tʧUy :| >o;FkMN4SCB.3.MӮۺMx2wao]jF,=akNy_~ ɮ՞2ҁ1&\իШJ8 <7 `Bj:jgH4GHbw\m@8%ʡ6Xr^`RL+US +d]ZuљC|4-v{tCJZ_nqli4ڤWs')<=oU=#oWluhu{IOR&gaF=z [嵥{@@*|LuGջR$KG'DJrkiwMWuFEY2";[Lc%Ĵ2;Otk!v뀱gs7D2~-UMR հ@U8^\)06TA^!<>9TPjyG`3\vjcf]Bm _4y}Y@8Lj?pK4b-Wa"FA'SF{i[2N'>sߛB_8o&0 enJU*?޽Y eY6ѬeUjإA4[0bԽĚ~nE$g  b6^洬tpiMU4ͽm% >y GHtz 5dܮ:)֞bmWaaF6-D *A)߫}pU_%5hnfͫOr# \ o* ,L) *QU &IX.}pVH赚4s!K^#X;R[l D_e b?:l)Ȅx߂Xþ#wq /9E7wb>:qx> ~LS^Bcv.T(g?i,ިoHw^pTrTVJ#sv+m~c.><6}# d;|{Gf7/ֻ$xxց]=Y{֬C1#ƕAtC?pHed'Y82WblzIч1^(pHTo .d懳Pe'Ypn *ы-9#L՜ cDzȥ.- JFp Uuljs"7ͥk\7lhiTEyAmA*Vu{b}bO^gN0*$-(;* ,j>HJ\(Iikń:7+.nQYNPW M7,"K6wL.at91NKCN6 Pr~ވ'mBܬ7:&hqzd +`]6l+ R5j3xu *Tƣ(ܪj׼^5 z%;j-۟RIeo^umNKgE3Np∌%a057)W|e"jZM+*N Lf֙b{ WqRVS<{˓N6ͤu1n|αkCY50˴h|6XA;_'^wG<2Fو{:Ix&ZpSPeU>K*܎gm<70`vsK3➢Wt&1a08 EpݘXN Sijg|H{*J_Gw8 6w+=`_tp*~-/b vA FC .SKW]3\& /'Y7n}lݽH"Ttl}ojfh{CY+(J ~PV6xBe3[Ue- :#xry$ *UwoH䈱*y8[!gpK#W('+AA 3|RdK[z?s+JIV;Ylʦ:Y=0loGow*rZed|J068;W9K^!㧁=, B*TiHkט@ J4J2## S-rxFPY+ʹz[E̪SŕzIdcA@JnM}]G>9kg4`N 团6*k%yv03B)#&%a5_x#tEG `B 黇;[*AXiW MN*h\,}uB+l=q0(fZ>5I4?AUxUMd.9Xp?"v Ǎ R ǝH=@l;Qܨ 這>K\W+1P+s{7iSCj3'qN"OzPtU%h񘁲U O]}ՁM36=HQ9/q|tmf ;` .ەJAh䜐JS۶'᧪<'y?UPEc:zØN+B]EotYZ+V6h4bCd3wW:w|lb80nZiWNSVN!.e: ı,J`ukvi-oU)'+n@\Jxx\0O¤mlݞ2GoHRuW~d@7k32 ށ @U{2pV3Fu\/FJr1LUfS<@~ޛsLصs*(W;ey@qT]Y)Bia9SagQEqQϺ͈Wtx085GK*Ű {*эTcWPr/͉2E7yr5@Uu4T'2O[rÅaks{D-Ӎw`א[MzLrЪ`ȕmT8TE[Bb?-Uj5Vgj`!Ta]<̼,7t޸Yqy3[_8K&,aJWM"<. Ih\Hn+\g]R9OTf9ޅ:2Eu[kY&zf⁜NAj f#?1O7RrT}MJšL/k_nPt?Κ8ߋ іN4k16!-ݫ֣.v궖Oق*G\ *;"@%{oSP*$C`ip0uIIyM)sF{;#gz` ӳ Ҵe*n).{v7_TA$ϫקгoZ, >YF$2e7_)lZʃc9GVcsY"58,YGS_8b*(+Iۿ^,M0 7Ps TgeRa)rω'F-RʇQ)F>S+`Q$IP3pBu7xW%T-ܔmCK/X!6Oa6s8U_:L9gfc6hsC*"briY8gr"ue›*]2 I l޳1 2l K,$'~*nvUY{F"tŘDVe>t|pL xDg"E_%kNvP_Lf 9cq!?쥐m!TRUXb58iQ(AJS.1Yțxn#uI֍ R%-FCX;2u=2 [{9\\xs?FSS =̱ӮŮt&W^$r$6;Y0:X+ntYz- 8W(iUG)@bP.:HIr@utծ1ߎO!fnv(ƥeu_f~50W¢n)s3Y:,c@P1m&U frثVS.(IIds(& ?LXOPC1Ŗ+yVxۦ 9VEMFR{#r]?ʓ*MbnNu5A(or=-ɗ,)9^1F<; XI,InޔZI2-=@ :pt}7^kQYZqd^qmL4)*o=^rL; .qЪFsgfIye( ]K^R7M-M蝪С~eYq3u Œu+ v7)o9dXfͺE 㭚Fd{xf|1j= Gx 5Ũz=, JcysK>IVT^b$@r_&]/ߟX2PA`M4M WԵADs/{q єǫJp!^vD;܅aЃ6p3:d`qYosb}|+a"'-7Æc \CYwX-&P/2;=Ha DX[%X4`]p͐| yUZP(srr~l >_jDqe߻> ^к/L_=$fUjrX ]uɲ 2-sˆ%@etjlBg%ã˼0u\](04 n{! ߆-%Ngɬ*Xi^Y,-EQKz#7~?RTN+)d(ok^pK,Xⱗ^z}!,dk ܍o h{k"n O.Gܸ%mOw"Ba;E aFvK}GZ $9 Uʅm[*{{~ Dv\_6o.]FĆm%o?#5wL5O/EshH^V;z~`1/5"3`h|N+]OT|ຝJs-cZ̉4M-! ٟV9*Q} [b)ivFcwَjc0Tǯ:5L/ QV5T%WPs9^VhYm ᨆX;{X0~R'/J72+R.W80vlnX)7a&_@=E,gt=Mw6ޒ A3>px:'cn+rVZObՋ|<ҲoZ6u{˦_97w7lN3Wyuxv1'Nʍ#:Ή,|lIlU{ڗ3C`BM:fmA뱦 _Y+mt",tnp mdqpYJ,J(e3jdpky|W8S$_blW2_U5Y]jeu0C]moSfr}O>t( (g,c[F%4`9S3>I9y,pd[ ':wz糅{;tw ;ݿHe}eB7dB|!MY`̺u^%#k5ex#e,Bm";*ĭwex@P˃!N5Bݘ%AA8 6l~fr”3DbU*3KikQXKQoם;#QD< QTIzrg@ !]7E?yIQ~Y̾{򏍘)oSzrWט*F)]1ΊR`:Ydl7s,kjߌ}7XAhwg .lLԶ' JmߞQNakL8ǂcN:./ya"vZHkR"@KPF1"{0zy*a>LX52m^cq/&-9|KX11ϋɻe0n95/K e 80iJfp cU<Ʉc)޷&R[uìZ^YW/l`o dц-dȹ$n~_iU i N1P,v R3T3c@ l]bJfz&H 9y4==p&>w; zr3V35y۷IUl0j৑; gh>IYb(ohg=BGw)v"'S reuFin2''uIjXۑ˫к$f<JVEx*+>Gg1k9CkC\HEbͪ N.YzsB#ӗMf Ў{UyfY` J>l~bg{5`.X1nY'0Y>?ǃ5WlXقxLLu?eV uҬ׸.Z׏Q )T[n*ձ5{yfɻ,U~S.% $/R- /5|P /ġmΛYDxѓ7шqԳY<Igfqbn+S,?x j~n Xq˺K:2-v4aKc* Þ<9IaK A:@CYT[[ [K JfJ fdҺ㌐\IDύ<&UgU8qZ2XNyL9 ̴|+k$ߙUyOhQъĩ<'"i 2K*s<ݰ%rs!^oj)3MY߯ ɓ4}9O|JèH.=m)sO~T2GC6 xdNs8=R1bO/`Mש-{-^7spRSK4Xu<=]MSx-KpvG`XQ[\\sm+z. }Ρ!ǧ\"'Ǚ! >blfPԺu g4ljLcBb;[]s\G0xpn.[\\ul g~)\\,a `fz%hD9ʝУ(+}gTU]>{sS&=zٯM=Utn0%oDyTJ|8eK=]7%ɫc ':~xxZ{bĎ'$iI!{0sL]p7nV[I;ʁh~JK`]r8HL|A}nd0X DlHޣz%I3# (:P5ysnvW"Dw5=dK3~ è65@ݒ)R|341͈\VPHb'zKʱyee7 JʩlO!sKR%BҰ'%X[+183k2ǻKj7хJX(7>'"t1:n4{Y +\ b65\ïϟ7R٬s9 /L`NgZ1ˏش-s[ٮ#;>,;d*|'n[K#tDAFpcnhּra)%,$fPodm.e9XE'K)6Y ;YOvvc[;3mtR \tH`EVZuH>/kL0қbx$ٷ keLf:fSyMK />.졢e$.4 F(L6`Ps ºIuYϊ S`Rs==2 fU̴A22[8R&P &#ۄkXGz$wUr6EO,f(@=4`zӶm8S“ ܱ;"WX7m>`}kXZw\i1k;FY7?Hap8deENϠw꩛g>UV۝7xOιu9#,gj>hppJ|㫩UjkZVC]X<1AGPE11Xkckˢ S%GŮt pVf$e1/q(zopv @ID!b60x <d R*@"ějkucCq,eU3yj n\T &op$ '7u>'}Φ5-+W^YnN#~Fj߼tix|j =֨չ# Q"9u< f8єUݯm-xu 4~#*~R[:d5BKuzŵZg{@h1*@ҘeVHH `Fc>Cqu@\<֫t3?$[ Uh' ,N<{#*g${G-[ .MW C@\7N/M}pR,mǺp#ǻiANt/REadUfٴ, VqNC(̷] P>iM_|Մo*JPّ+"8BDG2uFmDkeG* GU 6Q|< ymCRυSk$&R"t:$#"k>,[g*Vz4-*U_7 uI=[J^CorB*ox6()'3K7itѴ*<< G=? p6V~6\ *.W{귢(5 "&tGZZ-_So8R2|IwHM*JZVKNL0җԳS/Of(C$5n }N}?ZLa$=SU9 PXiK!Jèn`ZC,z Q2M!( KU}Y7-km|סiCA;v)AbK;P66/ C=G0m>kkwVGAQvUJwI?ȶhHS<p bN* Wy8l8tT4 ܄KR]~fx0 B^Om UcT]7*k2&&d"{U( #^%Rol[Az;Y 1.\9XAa_ }~@%3~eU=:kFC۶7>hn'~b-i'f6T*y}dSdtrm1?[Q!EC$b >^:}yyPmx+pڞxv@U 4~T'kF}*.iX(* j-K8lL{F + =Fu RZeX *ɻb-v(,Vrkt6Gժ; /hW rj2C9B|^4Jﲉ'ܴQMNK7*Xr[y-Jٻ*sQMh"i0#&>|ͅ2۶pdpoi[:2:7n`"rTm3QM|gBC$E*e !S4h݅a3*ZO1@-. w~+0=*~8HR̅yFѧ '˅t>]xOr="}e=t}V( ~,I$hT[}7(&.-!WӎcM1j/6**KmFO[iGu4B>CCTh_(è$q c0E?-3y^5ϺCD<-j݌IϦurfq!;֝pyzȭy^B՛mr$1+ۋ-զ5 gfGA,2w P +1^RsĮזԡ\"ɬ'@+Dbd2(UdĆl /J tj1ѫA%y:ֵV4WnX cʰwDzN/A4;+-Gn(ЇwneZ^H#9$"2`)l׎+(f 3aBr$>0ا#j_Ty#+qX8vr JګrC5sl[ p}3ѿcnVu0oq _fҁ唧IAU:ߊQ\t0uėi@/;̸`{*(j2J)1왻ǻöƱ=PT]e;qɓT2oŎv\MybApכ  9U9pkE]kAp>QRӐӾ/*`Z_J] ~0/CD2fgI"U?5_7 Fݩ偤8&lsjN _[] #cPSQUb M2:At) ץZ/xzn" p8pR9fLYߛ^oj>#>4A4ܚh-d8g%_ %Yxe.EvO{q\w6kێ0E6UF1X}핧ݎOTa{pp/PYLzPwCdªg U1yյyf v>i^DuȨ ,m8=5Mgo.dl&Ȣzi1*8$n'@mpKtfe#2ôe-$K&?nZZ%UQ^eiY{g<>4e{4ucP:_PHyMr?^T<$$wVI;tTD g,[\?䒱_0݀ @Om8\AݿJvxܡyVLt _q?~ߜ?F}p`x[A՟ZRp#bO\Xδp]'%v̬ Νu4&hB"okɳMFWO- =Fk]xTtOG X#iIUk~܌i ` Qݧ{[BmV " p|5"J@L^?p+n|@&L[ۍj]-ioc%J׎c#y@ΫfԭOs3i@ Ǵx^ ]@ͺB$ ʑ%mLM}Sh|JF^_ӿ9ZÚjy܋ph_+4"^eE!Pw= }'\y[6ײ6FљFW%@N}|>L`GCko'sLfӋ^hM3?$bԞMO>&)tAu `h3vWs[vzjI9bynm ͔ZNJ3҅2.y;҇2%֡2zn{z^H\!%>D+XQ"]p'M6N  {-+ I8;Cd+_)|=sr۪=}n)pq/R! =1d,pӛהIh?7}U;c%Ŷ}Uxi.Z]hۇI%w86ʮ>*8J0$VѮP9,N;$g f-h#r@8 ?oVN M3>[!izJ0C,~Vr]{$ f`Jiu'˧1e]P] 9"H;:₂D>QZQ::껛-9lLK&}qӡ0"?)9iU"5c)-g.$"㒂=h6Za*D@WJ}2n}a")yvv˄F+;$G)rطJ ői y%z3;Qeis#AJ3$bކą LT}z\{s{sv7=k,J+W>co`zC>.N.?זV*^5_7M/{ôAIprwPR6-cH,n5ts̒N/EFOnE봭sRMj%R3@E\6gNbYDYHjѫr;%,~_:GVUgS N]^yyŕ#| &j)DQvI k\R?\iϵ?܇wf\l㳱 ]IɄ~_ M'[FxݟCL3Yhe]~,j՝בbs_4-+m2XK@1(0 ˑMo!t\F`u`BVhrx-NjIV1OPO-84}TXsH~1k%]$8xh xڄ~1Or@,s Qށs-RE5謕4 >p/{g/!(`ϝ!#6yD5FVD4uLMH 8001F1 QGJ(<V())ndyM~G[M:ҀR1X|O ae|pn_ k8.&?h\1pkb)3^rܼz-g  =Wy\UOVqIh-4 p %X}6GqkOf˦zDp* ߪ9~ iU5걲/3J7-V!Bո# pQS{p@"gU1&(|﹈n[ )t8Mm898fGladc`ȭKM&b1_؆xc0 A,"h*VJ{'2C%_5NS[ Q{F>xbֈޗ~%vϚ|5uf6I OHs·}!7n[cRi.z`K(*D$W zƙET`ai٢Qxv툔q͉6Zw:i .\(-3ԧfZTRME'f*wJKp"~*u4fwPNi)03M1,&]Қi:7A7Ux'ʑ|Ja U[y> u O#y]. I^bS2߉3jp_3209`L tj[l)ݱD>?ʛ?]"JOS+|8\v;FFB(:cYݷr pB>Y8$%%NtU49ˀAv/]t lW;DòqySB!Xd5> LQ<`>d 12nL8f'{ֵV*1NoXnP, .yI|ʒP\$^0Hsҍkj:0頿W#\&edL.<F[7Kc>|}wEuF^}mJy|-.Z}xȎϗUtf*Hc`sa:YHDЩ._G[Ykw8|`j "#YVl{ O|Myݖ5Jfu4o!ҊYݾ'g\Bǭ&V 쎶̃Ml@~ {UTgRF]R/a> IV؃43H\z6c5'.\јS5ى L666n ^ 7InX|cC[9}ϗRKAv.,q/h!nXfj̸f s'DKz*q!>JEz4pfuQ!r 8;/vN@qۣ宔TQ̇ M$\L,KlÒAxnX acFơoO?n9&,TŞPx6NkA]uPnD1Wƞh5ȓC,^eK-o6f@FB:[߽3Rs[6?vvƍEH/L=jQ& ! }8eV!a |I VxFA])C$ϱxt.5MXZ /"=" NR˗ KȮ<0ػoS7%k21ʞv({|,@ׁC+[.V8vܻ3$ii@\zP̳bp>(8 ~4}f<7LM@#/[gzJik%&!RVKcw_s69 uTk,(Bo?Զ,F6=W.P]q ")Ўaӄmu;Rkw,@KaDg3)>d MĴ{Z'gnQ#];C=iam80wj֝>&Ǡ:y~󄺡OԝZPVR'4`KXzpzG\\ >[嗹7VBܹݗN;2I޸թup֜ֈ(='Z̉*Rmm5rfV.XZe[ _b(й_vr";]]n ǍQ.Yag 9ml6e B!/˺[{[hMCee n *t}=}n,PE6Xh&/<Ӱ5Nb[7P@ԋ 5;Onf8Ѥ6dt >!l&JnѦ8k~u48|`A۰rySx;-KU+mf>;/M}P_("8DŽOVׇs&UEnAZ:ik0!h{RpJL鹡!doA"3:;2ڶ 0J=w:ЇI+7cӰ=a=xγZWDer/.m=(PjBRRFZ7o!39Thmue6i}uuӀJayֽR{GObKH5 TOҕOt-X[h$%}ы܋gpFX,8d>ۈ(ʩϼܹӸ,^szn|͐ :|ry}0@(]cwkYS[ﱬDiGf t YO߷{R-&uZMCr b@9m"OtCw>)= ?[o;X;%Y=CJ"uv!24`cDY- j!7_mqik:o6M|Tb:4u?2&8ƽ8ò9$|i'iVPҒg%M.>_O+gk@yK_AUda{=⓵jK.P8߬VەJs1')$RiQf0(8nќwM,/ss&\Of㠵#QtRfO! B 4gp{Mo!6ƖH3ua߼nr͏2/ 7!FqL^۫+Qۖ:!P;__u' I$q$A&S1BŎ]%dH! O 5 c/-ZjCi,,.NW%&ABDɼJv)ݓ@xҥL"`Xl_ ;pj2Ӊ&ѭZ$oVCܸqm,p *+?ǡ\gI `Ft }$zk՟ ΔZyA-ؖ=l!>lƭ տ[^S9w9/1PS8_ ЩNLVcѮ=fCtNiVt۶< _3M[0tg.GЍ;@=rz'MǍf=^ɁvL-9m Ln~4ҬR24qu:Sߧgҭg׽WJqE./$ %3Ǫ\vB>XοXW/9 }{ C;!3QL"G2yږu59bNGniHƏA 5a+(Cij6u1kSdԕѬfgc$эc@J{&Kl={Ҝ:7xPE .y Ȩ"n%AZ)#B"O մġ7Lowt.E.iGV18a^613Ϲ1Kԛzfn+hueIeti-7Y6~rO鯡auZ q|E g`V\5 =Tch TPzБlЊƭCC=ze{ړ|g]`O25Vs|;/_๜9Bu*4~Ԛox@aQ6&F]4ZfF]E h ,O!Ŀn<M!_9ھ`}|#-V(UnxGlhA?srjK+lDףŠKVz zч5]ٹ o9j2: \AcSեZsp5P7 ?7 Yxߙ(!#荑^@4y.8Ul[[+o 5?>5 f=Kſֽ.lL;}7T.H_Ć* 3U{+#ء5 P]\4guW-vOM%P€^)cM[]H0D ~ ~M \Zm[_)Y=8`iǒxA ]ǜt%rJrvb^z)d-N1|SӨWBZ]2il' TϚ㯌ZJ~r;'H[ţH&EmxkoPٮm~oߺZB=|uTe*Ӣ^>0M-` Ӕ0+vNk0-9M,4ÅCԜłTבg!`pu@M[88@0f'ɴ! $Լx^%>.c6zY 0"$Š\qi.·8 lN8ng'|nGw=dS{Y?zqHjwpyɲ k%A aP?Z5`y ƦVvio>AKjY;u~8{ y/IY@M-|dr}ՒvBk^/04 5sSqH1TTq5 K~6 = ir0^)S9p=cQ sǬXh5,6s7\3^>%B'3R=GTT!eGaEEHv%z,H@V +l>p-dkX;=9z kU݁P`87p)-&(#`G4Go838Sƨ %IZj$x+MGu ˽&Z `;w(PLh`iҰpW-*P +-e+P$b`gO($D iF5HV4$idk2pl,]AdQݯUEekd+܈땸@t%Jŝڱ9=W-3C޺ֱ o%]ztv)o?=r0J/xqr&WmA@'W^BKo G42Sq'Z';G~[R:;hq^.R0S?nei|eފ]Q^aohBk~Xc@gǥCE'Z*f/DQ g7lktovw#f4V<`6*s'2jVkxcϾܫ`R[m6S*YTT'3 O 'I΅W'W,h aؙ_{]:' 7陎'39^xBWw? y-5Q+ך=@Ӂݩwn}p /K1~a(dZ&'ߌ< Rho+áXNpgx}b2uHLQyny)F`4 0ޫZirBzw5| $3hu<;^}op410UtV;sرHTn閙cR&_jNk_g00R!}‹e {]Y,mWop)J{_u߉b]SAl;ϰtƊzK6a( >ҾCS{&Tܛͥ 5c&;)z~ݶP sa է(]?n>g4V g K/N8O^c/uTӠz~9]`wv+5 a+bhf槍8A?esgO2՟4vSG ĄbN~ϰi s5_#8b?ki#fvR$`m-j:Z4@=gk=E[ͪ͌PsM2%F$ ry.;P<\O9Wwe /HQ%O:9L\F{ ("юu[׸jüWq3GX%Ih$b@{oσF*\pFgqS o9UE#)!Gַ*sSm8ո(K*NOT܅ %*; /eaŃm5Ij$D+Oɰ)t2[@A~/< .ɑ$:\ #'L~]Ex̷^䰓-C'7x pb R~_dM6=19Z톭9az<%e6b7>+*uO. " >R{9r*ٻVᵽ '`WkA0k+SN2dp:l ;M1hcl:Zz76iz'J nBtFe8&"x!K k=kxP֬*gBRlk*Al:b^ +Du+Sv,1gI"]z 2DZn5WrFojs8Jz BcѶJk"4lϫ\aD_4_8no| %!=mNGPN:]nLH$'6@8|om@A(*Y3u@B\ E W:S-ʔ/,>5oPߵ: (@ts5q3B5FPוBW ]*ߴ39e=n1[FoO`S7=nK".8'lC֑*M&TF'dV)!M-ee_KpkF`l{Bal_\?&=)H " ;OTt{o~*v,yē.][$izB ^x?2Yvr9/u #t.ȭ]N߼06GqE+33)&Tr70#3QgEz}Ŕ,>6Zݛ}Y}("<dAwwjO"\@qZ2GdRpVM_I>d_jcT;7#Z~yΎ}aS;-_#pXNks5>ՄW_?1$HȺt+&LJ%r;Z3ƷO!y P<]"3BR%wA^BnBZݶw$u`'Rֹ[;.uPW£{KR((!.R:zҡz!Fu&! c/Cg4fp!qlܥ <?4׍ahԱ/x96x@]d82 DɻѼKe[BiTVSҢrnW~Ϡgy:hdYrbGJ;&1p*ڱ3]UXawAYk<(sb7[$ k\|?mNd9ۅ/$C}-.j't.:V`m4;~>n-l$ʗ{ۻ;?y%^ 杘ۘT?'_jz/¢;~ տY(&~KoPFCx*7 [NY80L o߭ĒwSH~~ոn=D ._͵v@!a)'Pχ= ऩDx$b:h1C0GXA} h hג!tj>' kJr9h,YB@j!A2.f2}n',uQ#/Xp>#MU+Ůe ;JjeNnp*$0;27ڥ& P2U*F*HE0P~u=')W:}s7^ܯ*Ny0R'8IC[ڲ-;rr5kW$s04=%t}h /FȄb>4߂]ݛwpcg^剌*3'לOPEvҜ_ezLWX`)QF; ukY4AEaJA flxV $kb;34Jg6P53Te /’11MtՄĠn%elYʤ>9FtM#֊Zhy\:8*+bA((eRXZ(zɶOJ U?NZ[(9OsރY*>%}L6n|M3s tnT&F%I2lLӭk3= ] L&- Ds*AꛖxJᔡz5AVetLF|e%AbY">|kkܖ`乨`,aaHO`0 t%ʚEP0KB3rwټGg-zܪx6?!?}J,L?jH5۰0Yabŋv<2^.MqfP93v0Shp%@xo*>tMר22pى r`\CQ.FqB`cORQ*  R.=}ў}/NuWhV9&ѹ bؖa$oxzԫχX hZ]g תbQ7 SO=i%w>5մ1v2Z6I&ŝ,9 Q%0iwT*KªT'-y]6 Oz6* :Ɔ걀; N |nF51s!IB+^>b8 l7DEϗ-"<U8gn* "GHo D0+؁u3YHk_g`q5hg<%W[nƶjJYwj@I4b9uߋV.QM/-\b? pʃv6g\\=;ˆ` UMc6<$#^.8Yh)O'gq͸ ࢋ#/[\tp3hwA=_%IiAFW["omoJ e.=XG=gv)##"㻾nTL SoW4THzi5"Tivڬ緭6v ;^0~*77Bi,:Jt1b;'c\l3s%λi\-RTa BL>qp bM7B8n=n%e@] W2+ go=ȭqeHL4OokiT5meUAdPgq2pG1#E",Tdc} a] TBIsȉr@@1y.mש~A"`i ΊY9(ͧ^ JJ;2 p̷Yu % [&ut+@TVj6{ x+Rٵ֏Z}mj*;s:aZ1Fd?63lska廓򬵐bS\C܋Hȳ-A ojlFҫH=ʔUI؅hs(kwӕ*yS U[qMYAZͧy# hkw*D)̟CF<݆%[Th72aNߞڃN+aJ ^ nii Wmh W,$4 R%ciĐn(H O7̈msș("#O*J?20 -OH^ł;{fN 9*/PzyB-ª?'`'p3=K&'hNME-Q.qЬQHiG/ >"Bu;) RJuKmu.dͨ7ۀmXTɍ *em- 7[.XްKXĸu'|N*Tɹ*"k!.,w1(ĨBm?7W\!dqHVFgR?͓͞F/N\aNT`3v%ti݌8ai=7p<h7VV.3s bs'Dw=w6wPUk/xB8z6ѩ׻%OKBoSȎS%l/PZl3 7>jx ~. !(=Ґ Ijiצ|6Y$,lkibsTqVC:, 3Йޭ nӐO  lF9 npXdL.4Ǒ\('t,S\-ȟRX%B̽ 2^d/+e+Ƛ.*wIB@_ xs-E0@4< paj>w.<v }8ə?t9rgKY ["r@ i|/pɲ1:7Fft{}pcq&pG||^L#I=N]ƙ(>󍿙_/i;mCeD{R[ k5'#t17JƝ!mϜBb(o(˿5;REK:ZX@m?d)$O[>/d,/xc!Nw9 6tZ91353%4RiPtȾn{cgN$!Z={\a9K#z"\d-]P͎8}.2Yyey Y䗕P)Zڬ|KIcRXډh*dGh\M$.B:<ہ5M! [Z.I5a*h\LFիQtky{풧%EXXTHgZm+8G/}kªe[A!Q#̎(+GEZhVͫy6Z[jzga,9|)eg F84o1,% ~^~"0L/y[rvSET3"^$G<H7[ںg=̕azf7fF\v7Yh2tL.mtI0y| ىPZE>.8)|0F!9 uͰiwGɦj3XE'C.hnQŏT8p5C ௨)ղ$O *3X1h`_jB vj2S`3ꟴFiPיYB.IX, kݏڧZ#CVPٹZ_,L=Vq @x~sj /A=!!=бG_PB`)u[|@;O 9 `Ow}VO2rµP|dl/O _NZf9 B ٓx@REΣg>PGYrId<5?Šv{(9(^bWPg,wSzb r8 ގaL%k~Awh8|'~e2Ȥ-qZuJaiMh J0gu&PőDT(C3;N-MUTJP|sYn%c-fI(,"$D-[~Dž\9q~o4CT}ٳE^V{eK ^:oxNM ۚS3:Wq歃[9ox2SxJ׬*bɢYR .0Q-%@Ou]h Sy,J} اs pF\m5ۛtrWX V}-2ІZ;R1E7-˹ݩ&G XO+Tꎚ2Um0?m iARKvaihi<]6VdM{ɑUTEp^皻 LnG~x*tiY˩ /P0=3~s(|nO lhOBח߫=x"H YzzL ?j[g a_{sƔd8$/}q!V2:B t?Ӗ(,!_[}Ֆퟬ[R?^aB 6䵀jLQ(Jӆ׌Ʒ‹_nJ?6_֠m#L *,><2r 7t9E3dԃtD0#@ۏPE'Z^+RjJ)"6r0v˅s i%V]%TRAspIUnU#l˝P )I"\E_1Z gq;y7LgSp2s]l@3%m?BI~+$d/G;?ê7hVurLlW}$à o%Y~J] ))uJ> D%|wIҪ`EЃjQZgLox{2wqg ̱iDVDUoozU))PDޥ^aP$ɿn/2 `}BB8n$>.ۑp͘À( {=Fc?1R·o#ƵzA2w6Whz ѱq~nbٶ)R!P'n |T`VˋNaP1jgDGlGE',qIJ^SL^ʵիC<ÐnQ/k_y٦ZS-=^6ȡF#<}eԯc ߿[OQᥪ[RGbn׮]{@ĺkPhס!lNS)@J,Ӛ#&k[/څw!RN$M,.}&k% 87;dG?8C80"p= BsJ?2&Q-.z{⽍D-]{00لڀ8ŋnp;ɥ tqf[1#?Ǘb%ϣG5;VlS`""~ZxP%ے0Wl; u' f9\Dzx=842ONd\DcA٭QG>(hf9y,o*rljJb-~ .DHW rN `^݆W (*p ϵmhTI~bӀJ *3dQLi7fjn4{[3絯eqw}'O Y@s=+HS VēԳ*6 3+F#!zoԫԧa,㱆mr- k Umj HY:k\eWg'N5|Ŏޱ' VԢM8q:|fY <*GEԯZaȱig-PH)Tlý+C@Jp\9檾!V,xkFp (\$,_GU:*sٸ463M;*!|Ԙc'TjrA9e.K*% JbO r\QeF*i|G{,Z:Gzڽ??h),n#Ct6)4qAQ:0"&dru8'?k)NvJJNf^Yc 8x1\ՍD2+SqAXJQ<8/^e?=.-m,/]{4qY1O~dլNM2יEI׃Yp͡k;W\B萄 BĢex*%I[BQ$凕gKͣd_mkzD<[~IK9Կ3&'Msp Oa+d([6Q۝o Hy GE7􅕝x@F W+GMjܛ֛˂Xb)iA4ՆScjj~R6$nw$Mmމ A v8qfvRGYn)H9䘱c饃LbsF6ي/xCs,kp$˵F.4/4B `GUBEV Lwr+F:#jeLsʕłF374m@ 2,R~sXʑvR[Xp(T ,eP[SE-C?n?cPMikn/lϚƕQr7Rdؑf/nMȒ& ,8ItO=wJH ,.-zn+3OV_IfpQ}͗fw.PM=ʃpMI$*Gcrv:*6F36V foNw;ɯ}}EkkK)lAY(-P _3Z{콲q|PmB1aB: p44u?f3mH:*0K\)G(0p:$;߫eeqV* vNX*oDf593T #\`#f{]7(=a0y尲q@T2&8PayCiKTWF%*2yV눤nԿ7PGM8sk?D_ ?r̆}v7J.Gs^vM!V+y*zunoƟbP+\ !w_{iRw2W I*i:Y0eE.P t6[\+9z *nMmZAcU+X&$awkS+Y:ܺaB^|٘- ;2׌fYx;|Z7僢[3Tã 7֘k'd{K*y!+J W>? .o@O!URZ\]\١Ӌ8]+mۯndid~j'0>AEx.S7oUgԙ Jؘa=x(uYԻGn(=i{A}r`v3T~T w͈Z>FG|lIMMYG+|- øs U"쟱 oLIZgz} Fd:ww#,70K]aR [)ǜTep3ZZ l1Q@ NߘcoM{SϷDc7AB/}DK ׂJvk$K.7nFC,1tgC? GSqm\D됵ij$Ao{TZMmJuoA]o,V#Od Y 6C2fYiCp4tK2fۇٰk钃[갡/- o]^Oŧ䎓2 S@E !Up+[9 XЇ ٬psqȐIceA|AFbc^G?+[UB8p]2i37@sZ-J7/0bD B )3 =CϤ$ ]{[<]t =Z|;Q'=GuG^Sh#aCԣ>ԟh6uu/(.J#"ܵ`pq`Ӗ{fDE @"lJ[*[=K4KR-XsEܼBzZH VB˯p\^ݠft{}p|Q|z 06voN*\)}VWi[>ec.x,x<'?S8\) Ź՜q"-kA*m#b$K~Pcdx"?!ak13p)# k MH5)Q;MRy֞^Xe& )w^~?ɹ0zPtn qʿZ馳d#A#yЊr԰y|8=68薮f sx7be3X\>] [<+p*qPLǞx(LUԼq{e$c΍ 6ǬDe@(#RZQt"Tm \Eϋ`fVPZB!+P"j)-d{WB49ByUOkxq|U/,^_g[T2bL9>*P $* t=[KM=>èP&b:)Ĺ΍R/ӫqêz؁}RHt^;g#wYnaKKn?}{%OZrIGyHz*d(Iʈƾ#h)p3& U7|o!k5N~~,כk$!9xWqV}}\ M0&ս7 ϣ?xt)eأ{EӃ_~t)TdF H!1=O.$_e\jWj1 7s', PHhcs U(jޫ r,,i0GfxGCc>4FmXG ^ v[BOZ 37dS=}Y)hy v>A}qnHLmth8KS JpNfA0-l6'CYP6X'ovf Pe~sZl!^&^@ǧy?0PƓz@}͘rw?5\ `(mo ة!0׌Y4 PtL{fc(J7ߜ?}8aZ`բ~< ]7ߺ.r @h)ǩ81U[˚Hܗ]຀j%-d)r:c[~]R.Ow>#B`V/HۊE85Ey' yX߁c;-U"Z{ ZNs 8b1Ej*sk덥()2{uh`o@y1>p&ؕ`N*;EՔ8F',ƞ®n?\΢`=F3.U CTQi78mꫮI7>M x?[QdW}R^Ž>Y7p:~qnB_^vwu$kBϣSo[2jbtgzZs$y7$?`RāͳNs{ =6Q$= LfC^趔pFy sϩEzFTiZNҳ,2.*pt_7-],|XU"!EwTqV6-ei`(|n +Bz'a) 4!yѵ&cVio;pjKj-6*'xD[pݖp -(,+ntA@].YF[`Ζ~$zAl7vvN+i94کxns"px1xmv7LmSyـ'Cq7qo>qF{c#T&>|<]/s!Jub 5[2SEj  WPXISW65iڝM*% YJC?ojZ*kv2NNx)i#Q8}4'3H]RMԎ8:{AJFgc)[?80>ev:J_iύy%_+:6w}xk 卭?9wK<9%i+7^PYm^pYEu+J+F2Uv)Z)0d"+ RX8I{S!HGY{OcVqy0ƈP1CRbSx=@՚J4/";Oh`DA 3dRg(To(-+>jAxpHnzsIJ+3= V홙Rև1M? @j{B75qEqތaM5T)rI~$xDk-/\ީP*u/oz@.DUYzwU)Eǰ]3O7K^m][H| UeqAue;uD$7j̐,0Zk&%&Ձ.JDS4 BX+Oj;un.X*yϊpCwyE!V!=_=8Պ :#rq6ۈk}fS{ 9KSogL?9QYOƺSSf~h0giNe?Jܩm`fַy F^"_RqUM%C/P]+c k8hũobv tbDd}l>L gBM]U ]aj&7!-zh"j_5b6 e0h^E}=ߐPiBQY/چ-8Voy ]l3= Y9\q491'\ Q 0/A2 yR&D^Kګ *cf`mV,cUQ~/|1$Mqh5ik3Wysm?gv?`U]oY5?;ye=J-}H@KJ҆]B2fm̢ =ącqݯy%!1GE8Fs 0iCS)!xl䞙, ~,9YThuNCck-,- *%Kj:ZibUWWJ('dڱ"ڶWÅQ-p\iEQ5+4k;_^ pBߪn@t݉vFiH).n@y;9,zi컧khlM)k~o}2D|๤P.9}r|C8Br <##~8YbGHxD6LA6 ~ /ߋ(ϷUqO%NB#b=ܰH/dguɸr*7 8;0()&m4w*نaL^<٘PW}.Vqj=S*z OЗ| :x]3t `C'irIpj3q&${K0IR_ij\*: jXB ]xb*AlDwRy)0OWtqX "b S'josUGOАsɺ. +/H\Z.px+ìZ$X!?QqiG?:%hH_gB|Skxt(ý1l "C:;nAs]k~j9)4FZ;e1ʞ+ >n9o kcɾN(t[[2[ rg^ŢDqZa!#Z,liH>{m={tflp8/p1u5ԱV&`RE/%.C8L DYǷXdTp4 !@ $.2`/}8*nТ ̭PbWGڔ>Dl pQA}:\hpڜ|Ub:Y9r0G mcoǫtO,6^ܟf`kgBE`% h5#k'KPNk"xLal: ǴL:fNbܖz"=@hS"х}^؛"rڨ=h<'J/=}*8`3k +Itp?|y/O}dmF5Vyf1v~ [;$1 ~d' BQE.0͸n 򪐇 U*@ay@g ;}E!(xY1uU,ňsPb}[j/aP\Y69%+VwsXNs D.D4F ,vp<.0BOx-sKc䝺UD `?i}䀈XgR4HqW-FJ‘pms/Xˋdѷ-2@Y4|c __–ɷ1"ZxgW3]bO+#"ܛ .,B rB͸r4: +d:R*,w36x\zO2nJ?ч30}AM \VT )oJJD).| L7,}^uÌ1;\NP}l>&Y; 4u];nUw o^զ H#G yGkQR}e{ ޽-i,.Os/ 7"_UKu XH7iiL>՞_/6T-_p߳3ԅ#.Fyy g:)!&T&mCxb;3b%b޴%P@hC̕·[Q]mnPP\%)\GCaW+\0-!Si5$ ĊgLgYXoÁu&Q:gRےOW]S*YDAa>d=P+9˶[v5ȡZT[E>&ǩ(BR#lTrTqsisklKvU?Z9Bl* 0l*8i1t|XUtsYiZ[Q`~{`9 o2'ߔFg-dpxXgiAJ~Aǐ!؊,8\C-MB5B!azjčz,<5Kloqo_0_bʇ$u")+bӓO A"S, {E;anq)|֧RS»KKtJ͞.-<[ժ}%׀*]٢>V.%r;FofA 'oD9;ٗ}9 :xB ~@zNfT(j 3 ,BURTj\j֔BkM p5}KiYbA>_t#J5w,da 5“bJNs3]}Mwۘquz*>bB69霌60\\}@ڕSowpfhl(agN s듾QsR:beEY$%%@h~*e %F@e'm^W2&.poY`m&[bSiaU/ ' hlۀ슜NR9vc^\;IP"|-tKQ=凈s@TR[# M]_90%yx! qPMnH?Ԕ?lɟjZ[6vPetҒ ̚[9_ZSݰ-5*Π1s&0:Zbi&Xx5>J]Ѧ<;^9r*E,y6A/tЩTeqH[Z ،urHmݘ6'j!@m3P#-ƪfyJ,]c|\zf3䤤v{΃i U*P7C' ƭP{V%30pG}'%]&[+ia<2=O|(Xٟኹ®= ݦ]{{1ޗRH~ [ImیoBgnwMdRyH :|=G!n\qF+yنuv/u 'ϑ\{AQP5S<Ƿ$} [(-sqyOW*783 1fC2[\Jcp!9]^\\|v,札 IԶȊR\XX7ER]9^W7 ȧ~Ӝp- Z,:@ӛ^|BenUUEp 3_ґFAjOGnl$:fI}wvvyy(IȰϦ$eme8 J)iT7m=lo ^]5-9VEѶV5p8ǂ,t.hQ = uz%R }kUۓz̯)xΚN)AU+y53AjlTq}Y=7ō4;{W>PrYN!w%)PɌ֦zZ8_A::X8=c>7G+lM$H!E%aML@_Yd/7ALk1j[Q(QO^,Ԍ:X*[2JDX%7*'I RCq8Q߆62>kѨT7 <ц۵}"rdU"дh* z͋_Z>o#e?UvK$qk!}w_ws,{@{;10dghgB*?hBzi3)ICHAdKZ;%40! DXᱥeeP"A?u1P9Pqs,MSùkG'p0+oI ^ Qul@y|b5f}A=ͷuPY˭)IV.8@i=~*mg)#P7?}~XsSM.dV8 s-#>o:w9,kk)a`ٽ(tVU \On8 /( J(.3 ⳚRe{= yPRd)-a0 `a`BewM46gI}4 ؼDXKwCF%Wk\`HC77(C1j1,Pn4}XqI9Qǵ^K_R% cem5-9i H2Tjb~ lS,L`@S[fbfMeJ aXU|VFl [Q℔-CN[s Ti;`15( x̴5 !w^P}+7Ya'v!>һ[o@8|ݵZK\nĤa 1 ӑŠ)%67=|P~X]g}_’'gӆpgvv2iEZ>)z>BZJ 8E|߼f{Pj]\-F[k\2{˒{a((P:4ԥ=5С@aGM Ob!-=VoxݮZ-5@Eju5HS؏S͛BI>_6NnmV9PǓ^8qK,К߁/G$Q ELbLG/QQcehr /OrO=iiyȒ*M ]gys*IF fA,8qx_7^{ O>X B t.y}<8J!Y mR;Omeit9/í{}pW:(k$plg~{tNoBF'ژrY k>-l OnFbN:>p`{ &# o'~nswIgbbUˀ&6eȂRB*d68;QWӐp]a`z}p60Xa>3dSsL7 :ʝl0$bKl3-JEBDU­Pu|ܘd w tVxzWy|>'eYz?BxzmP3ȍzw5TvK]ӫ*Q]v W5dC| h3S\5}Bon/5=$E(Kt%u;Ç: Sdž#/:<0Pp23Z]@[O„ -xY~e846M@tp %>88}%lǞy -lqS3Dw̝ǫgvf#U*8ȥrCև!p7 xд #FoL|G&a15qoLIi+UoV= 軥alM`e1b4Nzм*.Z'φ+@l+:׽3G@pޤf?S?sG Jɻ_o3Yk2]<]Wvw1J] x%et·7y0܈y^9Xi @$Iz%8羮`ʸ\V`qum* <(W/b}P'%Xw6+'%6 騀o[NMMoycZw0;N&AiWOC9SŸZE6w=ZDvsZ.pGxf՝wOCfDeʙ>A@pMkP\6DHWy_u<&)1EEfmӋlkIP,V/>{>`Ul̵+|{H8z ܚnDf߃14,@(GiTؘ u}rs)xA I&inVz !YIqqQYړ![0JΩ)w)U= KfÄ2aX Tқ׌-I iHڻ5ny @e<{,U]q[j0*%^ߪA {"pUE^އߖԇsXIgƖ#C1O$;)no{tn`Y* &qSEVTJ.HQRsP;ZfV~a. 0 Y@bLȳCa SM3g*YQ{uk/UVR8ԄS5=;CoEi@4,d&L7\=6P(NQ%kGWR+ k7m9P˗.]&6>p b1fDiO-O_6BBҮp['s]^n^i2y2MY-axwQ T 7iW;6a=:!ﶆx V\q?ukkRcFK^r;&8 ֞i;k*v-ՈUwyoB+H0,r͗ xY 3·U!GIYQTV^c4]rOM&$~UQN.ۈ3!bY mw-G`Õ;j~nCc燕^yӰd_M+lExׅ/OMn}a/BFKEI7rӭ.-( HVtjq7 $c2GcM7- g.6DFqd,[׳/d]BIzwГ1 6 (08ڥKS= F C(rϜ ?}$4wWZ@ks'UA*UqzX,'.P8hd31eRv^>Qe98o|d> <5NH Ǽܡy8 2- hËofV%5t6]DbPiQc.`3$)>$I!y8rTQ4Jzr{c #woSD:#whפRP5'W&f2Xr-MX(cv ЁMHtRʈ2.c< _ׁ:xM?op7KDo@] 3Ҕ@b"D)-Hll3mAv7W=/=/`ͤ9T"X1MK[*&C7UU,`vP]w;">i5b~C m =>iD[FeUэyt~kqX8@7)OZ)fI\s^TO"| r&-UQb^hQpYgH9KAKF (9|6S ׽DΪ},DPۤjc+)IJ%]L+_|회lB˒ﰩ —(ӣY>&N7c8Ԯl-_ {nꏁg)#C cĹprc`oY9j}]ܱ^wtKbjBgV*eI%hx'f5/Kb:i(=QYPyfHAV̽kő5W<Âfz@*Qg/5 Ht;p,<܄w ^6r'IsH1~T*љu |t׆)Ρ"ceteDٸYAy `Cf3&*$ J2zuV X{WuAŸ@is9՘Tl_N*@N*P[,s|_,Յ Nie7h`j}Qϲ};ʤþ>{u~:HMIJbs8;gż.Txj]O ?Be:KXVŝI Gbfԝ'{j\D+֖0:%(" 5 HsI<7y,,,g ȡ7pQ-Dka W)$?]-<> ?A7\W$5*Qٞ)U\&o*8*Ӱ ֒P`@u :i07z|C۲haK?ԇkϩ Fv>\@Mi)t^ DJE p%" ~eÁn'FkYv0290!͡.;pr,$찔|ZzpaGdfUe#K-H/6$]f^U)(b*:NcnU_ %on$?6[M ??p5W$h09g뀼q)MSpbfۏ? (lv ~-iiƤ|@A|gÿDl×CC9=DOSYZOI|u*7Rof΃'H@ܖyaæ uIƎP̦:>[fe *EB%[bN^ Uf@̒ lOTD4Ug1' ᜆ2>_r }~JK1vkKV22g'rRfF7I;Re¾ћY; 3Ӏc@vkEWן=; =_o{CE M" 322VNT8dNup9p+]I##,  WsWiWFNjRz,'cHgZ?|cDX紦/+i =.mfb#kU3I P0&,7u?%755~L*̡6)&cR[9GKօȒkm'C 9O{ tՌo;}(`3TeSBl|;- [{|3gbvE q?' ix7qWw |D o&FDHwJa|8ۂᅻ!zzMprQ2c=DTQo8dꐟCaER/hq%$w qD6햋C/#)5xmqZKѪ3֏C}t" 2ܬBGW)-7U tF-A*فAb961 g#~5lް)d.Fezlm{B`s aO/{t]F"9bS* :,E+dnAaIjQR\ỹ@ݤ-+-˝ŋ4$  pb ez51c:sCs0D)>RqCm9],ĥ{7(o?Ntkl_cOGq6?zJ(1V`fl} ^;)60S̈́ҹG&㪈ZR+c'"x'5T\?do9w zvE,sR|^OUdbI FN"8e9ghu맽}g9u6 BX7c kw7{o{^NJ%90h]/G\2-nMS>U\$b<ݢe\F坆W$#bucTsjz}SNJRPϔJn.fVHͲx*'\I MrOϽ¥sH>] h|\ֵ)[z fN^n엤MkC _э?#S57OaߞlM=6WhK max\5![XwN&m8+˾vXÌFt:2]m2cI[~B9ĭ= r1;kDXՀ({.+}oBܷ5@2OD.G3"l7}IT?٧Ϲl`p$ijvk<%,P!!9X.)s|ڑªxUkedPOF!g&0Oܡ?1dunkK#HJ %8)l()xZ9ΐBPjMP2Lx5LѧyZ3E6kd_) v8 {GgO2By7lz$sc43ݴ 0*M7\U^iL2穜t<˖B^zs<kKx.%߅K &7/Nm/GE"9g&A0O֠h['&ίp< IZH܆4;JPZ.Lp*vr=Vsqyzcffi~~:4 6}~ kYG2agndB v e\c 6,wƶS101GA;,`=s gftZԜ9GV-?:%5"vlU;uҳ1DUS:eT+|lw5dٍ(^OCKėi8)[{KLarH}dVN| $~c̕q5kN?:NvGw]l%HZdl(o,LxyǝЫf.O{-Hݮyx'js3-+F8 ir T4m/G\ɪ.)*}MvV|5ZXGdMzYo@?3G PAjt-~8ećr,WlVbܭ~GxZ?bb6|0s;>߃62+SM6'dG~#6p k|b8Pd9Ќ ?J.p{_4꿊1=e3Nv~݁6|Vr߂G"Ǩ|Dq8`3Q: EnqbpK[C(Z -Ixă rJשKx "wnRqeT/ˤWf_K)`Ƃ0YoM XՇ 0-Ov)Oyo*$<[a93i`çWܷ1T^<_ڳx'S%V?}<ϝNH< `ovʺo&&_>Gmu#s< yP,8ziZL/&_ 練ȑks*t?$\T^ R)Y^:A'g52]tv,`SHK"`y 2f"wk((p`+2ذKж5v[›#1sd$ tEHnO{"bUVXW6 ~ȷJToHco0S.J%r^4߮ ި\2cCcAloK?l<_\4ts'\ )Bif/49ጭ#"f57r=/M*E?+9+xqsROZ%qrL,fmW`@fN@\.c~NeSo)ׄO|b*Y8X-]kZY'9[sbn hau1We>nqzBƍ9j!n|+XV,ى{DD=+ G Smdg.kSG9h2JMO ppЉbGgcv#Vb{Z{&|RB5_?dFa>wL'L0™3P@q? pryw'ʉ0Fq+:O.qE+!Vk!Μ~ێ'B n l7ot aN{e[#Z0:tfA(p#&?iIfOܯzKW1 KQg_@"*aC!D];<݄ " P$S-~b:ߡws!pG%i緎`G'˯OHˊE@9Ʊv\(mSo`jk ֠2Q_#~ z@CtA_sIRH\'fXNR7 9?ioi_hQQq+v6vv6-{FGx&uMcN N^NE7nP[8C"`5Ma#՚1= =n`.+ @99D F(״qn[s7(#kGC+$5= ŏmu,v" IE+.UϽp׀ϕR.rpE:|LmsP\kHN c~mw܀vոI":,E^_Q 3l]Bk8cT_;vT6Q{kʅ(:kZ#jRIOzw a)Q7Y]I61*[$\A*HK{gT##q.@D֪Lc7H ~Z<3x7E |Xm $qG\]'M2Ch?dʳ4CEn{dy"cH]t(TQ:5׻?͜%̌vpގTӝ6:߭`7*x8z>vD%|<8mE3RȭBn̿Uc=~thW:iV7у8e8:]9b.iXvsar̈ H-ݻn ߁SU5U.wܕz]U JE@%nhI`D0bsM};>MU⻹9:O]?Dtm5iB; ϙ, ϤO"$KTHũ:ґY8DfS CZsx9纳 C|qv-aK,ɷ@Ά#ݙ$2-9 !,%yTPӏH}zVr#\zcZ*Uw39٢/ e ݿG5$̞yC'Z> p*YH*w ^da~| `QkBh%Dv.\۾S+ϾCp0<vx ;lVDo"x-SǝH[Aˡ߈O]yPK62P+)pc$G )=`i(8vZ1nNXq_)!a@WnegװpPh\|d7)whFd|9Ȇx>k!V zz?s?LOM!g-~/ rbc7'(3#TЖJZه?i] <Q-HP[vg$9{GRA@UcUp:%Eb*t-̴* ,?Kz UHۧ<>f[^:#Q˟nfzF 3R+{+^~6$XbŀMF-Ajd;Ga?-ugmksGR*KҊiF$e;M5ٹ .{aV@2rw~-vK@~i$v*vpA[4`G92Orn@12aNp̡8a>kp&4ʞ3 ";sgkVsl-BۻuP0|e)Q:D|? 8@+>3~eJ>ÜᥚvU!-hn*2-X\QMUa?BŽq\J3ع;J=HDO(TG 6IE.QpcѐEbk,KWac!7MubftSdOۉxy/dxE xA?zYws?-J*`[@yǣ.[/1n By闓]/sϑ[-9Z+%Y> `7<Rd^kػ [FqHsh/-JZ\oX fzi xy$/e 3^j[RE, ֎M4P=S8~ζ+*Jh1"ƒKFV5P1pc;#^ӌYN@wIѓL ik'ĸ)9>2 ~G$=GuLQƒg1TI|}l}},ׅE>~Tm)JDgS@N[+j_ z)1*I'=F3dKE=8fZxeKPJOHOh.NB5Ǿ <_?Ig%\ɔl[*7zpxG3 Ol4H$Y$; 8KH])dc=yd@r/w/2)Kh6.8 qxUGsHOZ ^_MIOyP{QU@߇Y9ec$(xKP Ce ƾ) ߟX E?}y4$˵)ꑕ݂x՝(Tq B'|l3=J ?ܩxOW= # # aYC~z *@f)PhJ='C)vvn(G}{N/ ~5ak~|O1^>Vi\ʬ̱tD7Pӊx5 0*KɎHe5vͼ`5?6N)Md#ۨר1s{ ~FIFˮ< ?|Q\ȱH04-Ok%iwp ;"^GA:qc\B9 v7_$?򐮻?/9NOyw3W:|ia[L cĽIy,g__(sTVJdIU/B<_Im-_K/>E<Ř;?o 8kmv^R|ckm\t-6!f.5$wvUc7nP~ GGc?h Lh]?p"ܫǕ9Z=N̗%>a$/zlZp.{FNk~:gy8*+8d5`{fcfۯ6^B̫;hn=keTVռuf7ߦ˳r*Ԗ؝D/֕{jlv| jƻlMQa]uQCi>/|Wgo5oJ;ϥn86NQFv}R94mGeW kwh+U)U{dQ HjI #esmmįG *XB] 1~,2~C\<ѭYbE}m.N=d1 30>Ⱥభd{DS 3tIӸYL+=HWrRB ̶ 6z<Ft84G'!#+Pk5$ 㒰TO(O?3Ba箰l5 +VJt]۪(L|AYd_3lq#Fg'rI>h뽉^ၲ:i醵g$DMUls Y!+8K1~O;pTJ:A}\NDiŵ"[v ~lT1;z?=\%rb,)zF~ P`QǪt`N8{ܻdUtO"/푻еY0v{cϧ& X (?5S9x{;TnJ-P5S fʛ3@BIǏ}I%OTc'*vAv빰gsp>dTQM/ۘ0uJ;)GEL rs=6sk;g!w- \=\FeEԇۻ3Uy~[Oy(V\἖ROi0 93&,xf˔nK(ں íApLI{'݂A(>+z .sԾSůFix^$ 1j@nYcpWI !=^ 6#/W NCchJar>[%iQgOnwNo;n 8]'c 6.L/.I~(bz3]"z) Z禶w'Q \)طa'Ж}KhqzH{:jF[E 28cOgp^pLqEQ)< L>NlvEA2}'WNkgjP]A~ %: ?S#Ғ$7OGҎr/ƜzWߙIq HZ?2CŽz>ǽ^..;z9ɓ%|ᆕґ&(޴[zG~+,YarLr6|*ُvg"L,Y6 *But}0rjxu\\gǃ@C pŶ~O#7.3٪,T*m!V=XNpUHKk[:|xo| ]qwvd>.ՅU԰X4wy-o$- v&n[kЂ?h?g'ҽx oF2BɅh.nI*5YY[)Uw"6!=̝N ԉTq*bSBaujQ,,xio=Zeqꪩ=&:}F{>ќL֪^}Z"3܎l2Sd~xRޝəF~\i2w.$6l0\!r+D$,oK) {DSŰci~@Bg`b<<=P Lw{@3  %'s|$(gQ{-W@O '`gAɅгn\@@4'D<|NZy OVIÈ2 ACovz2T:pnCz,+Y@ mS5*i_3zK4ǺB,ނ*Z^'T:HbX~ Ւ)-TɅ=Drӳ*yB~0f|7K'd*pύIڙN0?}ßߚ&]F #%[V8"꧚/@]+)v TВDc XUQJ,78!<迈B4h@l¾3'l bD7-pn@,Bi0>|WU"pUTq?_@iL,T26{ pYDyQ&2nds*Kտp<eg0Qsnûm 69Xq@p$߷&3Z)E1Kw93 %Bͫ[EZf]XXᓏ$N@>S9nMcpU Ou=M q^4ģ3eFmHLgQe#=Ȕ)<==|4JUG)<u`Pq;鷋8i,-ݸo|F\Hbgf_eBvvGE*g. ܇gX@iܩn)2\7Z෸o0?7m ;Y? ,Nč$u,5=`! U`ߪ[1q\  \y~s+E q{ųƍKnKi`w1pwٳTC#ϯ7!1f.qK+ZpUXqiOGp|LI?2HDxc s (łTt[ik/@JE$~Wz(m^A\젥wRx[c%n H-ꡒ&NpEB5YJmkj]IXG8-15X%j>TwjuI֭Žz p9O7I!?F^7cSMRr(y WaZœd97Wϕ`Ke)܅9=9wg3X,R3zJ.p.l3O`HB5XCMeOļ [aNyӛg5B"3 ["1s.ɿt*T)oy8, .و*N(Z;JK8[:Ӣ"@8xR~?U'pkLmoSԗ̴0fj܉^^rѮ_Wk[1=#sM.б­#A<.4[d׭oDe8ME8ieɫ]^ unNڭ:OW~7as+"P(X桥B#6h `h+6YEaj%Mjt^ԎG|J޷Ƀhv 5Jn;߈=`l׶.GNżA5B($"ZjWq%QRbp/a#h n O 讜I:)Kx/@+' \#: ۻ @HcBe9kt)Cp-SJ䃳Iwi\O;]t4fiTf=㴨җ4R~MϺ/…מn`vH$œׯ1 ,=vp׫s|$-m#U}L0ߗDN6ڨXK =unȇS봂,ɔf;8VooW[ @kKCwT8w AָN}Znjp88ď;*G'm!%57P=`g:oӛP=qtt}]?|ZGuUov{3vBlSl-0USr~~ٍdm:j$5R)G fr=- z׫ZdRpmnE1ߝ(jHP 925XvpN7cV&O(K*}B꣱ KsI,X+GvMh&4h8ijђ ;D>DWp.2G6H}fr E$m>X>ue4j|ub鐚犇ƭA 6[Z3 W=6^N) ysw-z+|;Jfk)8I()GRͺsw~6O܌Z~w;tj$ԺKY Vr3FAn`ځ鱩7Nu upFi{] MH%8{-FstV[:4L5r]. םToj[2)C@C7e@d";vVCpLA]™4}'I6S-!SV?VpcN \Wz ;`FDkR $"1--mڮy5/J@V z# شCz!zDq~81`"hSU#3C!9{J0wd^5;TG6vTMb JMг>RVϖO//G=~ %xZ!!&aF-&A:+%jaw8 pMj_{h^4*SVW1.vV}7JPb9<|ʭb ;xtpCy-}d$y F? He_]O0xƨW)4B?~՘&M_KeX̻˛ C)o}Ixc ՄkJʧü3x׵K*D9o؎Dwuo<<^㬗+5jS^-k!>ֳhZ{6"ױ'Ռ,AP@0'_^?BPN5V.T~C:k'e-\$0MBAquڡYr2 vҊo/>~Z<.{CLV}_簺o 'n%a4ZZq2#u€|dJoBU;cڲe{hZpǣ+ AaD>8NV<I"ٹWwgN^EU: mLpWCuT" =#` k©P=s=$]Vm^ .LALNl'{Ӟ뫊$weZ Dma 3@>qMn9*ͿW ͞j_B?E??.R?rȏDtLj-2-z3ʢ =ܬ IsgуhU{k[^kBxb=1%\紎^5\ ;`u&ʻ[ohT;A3Յxp/`ٝ'|ؑK<8JE.1p/Ń z8,q$~aEGhַDv&g^8>?8m8H:rP{ T;wNyf_$c\Ia{ T'9  uߠdkDCa*VV4xEܾ|=ܳEg[?ຼ)jQmLǻ'}XP!M& U-mhOEf&xvw9y}t,-i.L ]>Poح?p7gZ8n;=d fq,=E o0"1EJ`r+KXB_&c"m.~ Y²p-õJ#:MD<sgn#h u]X[7-0,6G7r!iAZ[߀7*" m@ 5?ۭ9+S Ӏɸ I2rUkǓӇs;*_ۄ7s9ֺtڷOO=ti"bhiϷtds@Qr.Qd DeS+Ev6IލTАAtpr,Nf]H8"ꔘzx굩wMON}OtO]1k,zmd-0`tJiY9BkCo&;*\P{L hFJ݊VvUPid^*7 (i&+)8gu/(0)OUEڨ#Hp*x隥n;_HxA9 Qy# VĆ 05T.'VU:}@C6*@w>KTIRV +%S_-Q##G8< ]?6zb_,XZ}) kbqĵTܓ ۋha=I۰Z꼮bQ]Uʟ=%Y. 1m%"paLj%n1^7X;ə#X> r@pY Cgh 8h|O@3w醺!kT-Ĕ9J s(X9Ɂ !T1#q@E%H|c9G 5=6M X/"ⳋGgNpjb7=+!jifVJSq!gCMm5qͩw+‡͝= [m zpotE7&;6>RFqLgeq兺v0FEXtakƒ?Y~T5K* gNN\&sv)b.fP"tTgʔN[£u@|Hh{ǟ*yP}oRqS IH6.;ƃsSe@{ s}%tF YlCQX, ) u,%g3%zwK v" y~?"$fBA] }-!N6 Y! ƝZL06vW⭻M'  1Av" IYrI'kA:m\j8Ahw/DnMEJ:>i?Cyo9Ȼt$Тw#pÅBԠD]O.4:`$. G"(ێ潑c e @HʇCéYA=+׍wCg彁x.'Ϥ,x r޶a(CquړT w \y\AF"fsJ5G kf>`~ lA~;Yxx)*m- `dpoc N9bܿb H^hRM} Q\`x8Ag/Z*c=P7ԉBi ZIip/ >bމBhGA6}Ar˴ôGhֱe*gd,LȴO Nŗ7a$~m)OX:\'gsJy`3n7 Ԯ9)EAJܛ2-x[; $tک4ϩiQz*ɫpD{#TDA &'ߟ$ea hݮIQ%^T&5'9[[#jԑ͡/<\em1MS*8nv@V-gbi(gߍgb( zt,}ݸdBixcr/­EYE,t Zi:dr-/ jVmz@/- b)NIKJυCX%&/Ѯ9wVb I! [G/`=lCFSoH7Y;d}b> R˾eDVEy+ի?^4 G!}b"C=x4ȭT \r<(uB*9ei% 0W4Xyi'q(o^5)T:'Z GhTa t׎k74-(GO8N󦥶Ң Ǒj?4h8VY%P sI+B2'# kss_@N;w㏛]ܚgf-Q;cRdaqП.xe,h}{ڬl+^ T#y%?'EtbK%ڕWFe ;ڱ7 rM>/ Mac% PSQͱ[?Ͳ t9O=۷')Qg>Fi"QO̭B,5rV"-T CU-<Ç}sr\1|^^I$"<6gkrv =ѷ4ɤU'ݻp)g!\pI8] s)mA6ƻMGNP8B ӭ*_a?. * Og ;.q³ϧ dpױhg8xbjg`ZUKYo ]B޸,:yw}sr_nlaMkm1H^='c^"lM7_\CxѴ䓐X'QHpLI<§Hq^ ~ zσhqݖ@h'i}ff!; >af=~ŏ䣰T'κj2jV3Gp~2yYK"*@^Pt;YH 4Ǧ_NSsFytco}CcA7?<{om^{_ 5Tw#+GOܪfzPA>-G;S ok2w6n9m~=Wʚq=rD 7lN9@Vi,M) >SCu \cm1ȶ[JeZ/SMJ͗N4-NZ.6{C{"{*\hYEߊK,X8m奚g[0՝YaI,c!DtnN:Xő pQF~T [muO(~{䞰Dy| 5݉lk\-|љf&p6Y:܉= u}zYQqyUXZ| G|K+PJ.´ 17EJuq/m ܩV\|GT23,^Xb @)eP*wsLVJݓpz>[ƣZ زsP;.W0qczGygҽmon nmTHpҲ狂󰏵]=Fs^r@\`c8lkEtLl]}vZa5[Ю-6CXCV;oxĴM򾷴ָI'V2ú"?5ҦH ѩU`i!:h5Dr  He I*IJ A +V(*d>J@HxҦZfAooFE8Iõ^sjUUӭmAZ@Ѣ5 ^ޙJp3XfG1KwC:$Oۤn8jOLskCs6?tskk !Ձٛ\u|N[Rŏj[T$+%f-/ izZ|s󵙣!? y]9Lwg?~YSYwQ-ri[V`j˦ @4swt&$ZH-e1E[aۖBMyZ'fʣ|!S/PO:Kx@AÈǟ Ɩd{Hn87cz->NCW6O{狜q@Bn:X8C]Rh=ص¢P'FE(@@W{䘧zmSsb/ePO|C.\ cQ|p] x9m8WcR~jL6^D @z+hqQ=n݃q;ʴbI/x5pӍףZJe{.@"@m!a~>b#iAR_: ]A(KX!4$( V@x6T4XZgB*1 }eMM3xc[~FQڙY!Xr*iy`LѝXzLӄg*/:M3vH?qcw. gD!Hd}8P9c|6 {Ɵ۶}b}+OʘQwtW(ַ=kNaaǝbz/wP]N3evU&%[_^R,d~^Ec(W7 ؝n7.ps̟)Ucd}<@A=dtZV}u*7ϭUmu~M}O~k&.Ix#vճo;sZꡐ钿[ E6)')cmrc8b W`QޝB({ٜW<]ɉ3`Q n>}KfYiT=3??o{ ݒ#.D-"%U)je܊zW6c6FӶ"(g031{~pgLك4|te9EM\|s^?3lmX64J(xӐUtz~޼pQ8ɫ,^P=YY^]2iE/6P/ү嘊斤&Z2/LĦCp!=ݓmh9b$UǐߣD< >Ӧi Wz: Q>:ňhxyϹ~X> E_д z=\- *E5jWfu^9"Cj[miPyd4PKCq 8z}=?` "-b3wR6M3^ialHV"]S\̢^XYW0B$v[ٮxs^*MحldM}K7:McC^|heAu"Wz?A;\qv=֘/| &!;.qFc;ȕ:r)T m)JJX̉f+ (oA8:rYz@ ؼ(9TV*|)7O&ͅg (C7+ST=x%7,ڑ[Gh'f اƺE?ᾄ% ƫ]7=BR*Pgq>>;86+cZ dS;o)QhK-+:vtaԥvةeQv!]JVX vo1^P spJǕ"a52Ny77L=?-5`6eF#V#)a9lukp.'F|5Y9=е?;%\nKA(=0[ s]DM hU<ᾴ2*]dzb!tiqjx;ިY#9t'8^2" @C+CzceT…N  tJ۔v"F:*2Ʒ¯Ճ=S%gkVFNj1zH#vEqRx:YB`$Brz dK½hji=*f9f|俘ky=dF^p,Z` %&d Z.g38XބaI2A!wNu!ثn6g}k=ߛ/O񏔒yݻExs-1:V2Q2JϢ8zkfzNV^V6\~P7hCvE\P[32Y`ϐ[Trҽ؈]h _W9uj[r j{ saCUΣ-/(0REu )X{Uۚ28`jzפ{,r硫% {Rc`X7D;v(D;3( yzO5W1xڋq.`qW#)(i0[L3ݟU_~cIšaյo,݆.NEҒ>Q}a 8ҽԫ֪.7Hꆮokl/% -.> kJ  r觻T a=N.Ӑ_"M\cY|q9ks!Zg36ᱚ!NW$?i|{6҄aC+v蠥:_Rjݡ5Jj`t(l9[n?BHe`xx\z!%;lAwXкϡ5pnz>7_Ms hܙ;g>s~`L_[cw ]H*6o7} нf&An<̓ȡ4s@94TLڎлbUH{g"=fp4qY(8DNLD l>A܊SZhEvu;$ͯJx~!"4kyJBY4ix4GS]vTY $)׋u*B ˳pXEAAI(%[m_‡`;*yxEw^ӗQ:OpŀVU[_S7QRf:Ӕ;Ww%\ ="`g^ы׌÷nm׍=(%Z6MD:$+Kz-mro-aկj-I'MJgh$ʆoc䨵rM~r|/wiF@҂+l8- Q (h27CEpNDn h0iozӮP$~2!=|i#"6$/xap}OJ1k5ѣFcP'.*Ԉ`l,f'?R2h35s>'D;= l RveUIg))t;@3ۆ[& ~WB7m q)p ?DڃnLZ0yG@-enC%`G(12d* R*vq1`c7-û /.QAĜU>10E"bl9c=X h5q8 ftGj@M׌9\y3+8 HTO^쬟>2ӧ; JLVf^`bs>bD-W(]2^7΢7SWrDOI;L˅P-3;xR.=4խB?0 i2R;;dϣQ ӾS>RO]ubn.Rnqq(zýT۸Z=IzEŤFP3ҫ=0|8M|(+L0%!u.~Mz! wPZ/ _ 'TiuHc't_K-7;mjQټ- WŖ1 @(/m{73-/h'Ν:g實~o>fuЩG֣)XM،@U#%IK-vEzO{M-KYH9<>!YnI7B..@܌P(oxV!M>bJ_\P)0t1x4&Fldž]X VJ2ߓ7?(=)Q 詵Ggr>yGsX/M+7T3HɈi؇Ho3wxb#K@>*.xϛBobT蒌+w,)B=h @thq}LnP1sr쟩>R#m8f̣.dLOA;TBJx娄|An`i3M۟QݞaS8PkQ0HIg&uv)Pf$M/xS5S۷: \{' [FܥlNϲj8wwN/*Z ,IgT:ln5YUR1 !T8ڛ5G{І:օ{< ` ,{N$0JCiv50&6z}ohVp}Q6VEAᾲAi|wƀD,-m,.//%8QSoM>pذjSB'%MXXj ?Dm$`OLκ80emwaN"X,4KHkϗpi񂯯'2/aVJڧw˸s{iG{񽄭/ιty C?qM>LZVt47ȿaMOyZ+d *. ~' ^#n~/hSt։P8cIE|nb7X̦Ω;}[[eX[o9g"V#}sUbO{KƧA{GHky^Hy:Wz 4[WUnDVViYZ,޸`-HA+{5pL|o r"&#=SceT.@wTz VU" >ΞU1G,0]Xg5j6"!ĕ IEQuN⣵DRufq Σ:ӖUc-LjDӻGCa{q<TR=;e<u> 'U=\ #ޤMAso~C`UarNH`*WӧkN+H}QQ~jt cwXLNrzdϨs̩h3ca 'X]1$-Gx#SL1OJO]CWC2Hg=)r!P_3əF0iZ{e\:@s0C\)GVKKZ7*{WNŪWMrEqEa}&<48_ 7du\7&?HC~z2~X1UzI|7ML !QGG4A;zRTO(̈et;8vvzDޣ}l`M4׼[1`;Oi]mgͅҮf0lHQԀrwc00/JׇKzv˖E-T g~:>ֱPOXǽSJ p1?zufN f kN|8tI[y\s/]3:3:L;#=0K1ewIgAP*srL|,ӻPf3' %̩'O1uD vK8C`UvEDOȣ/bp r(u}!"W֖)&Sr_HDY_2Ĺ6@s3Fk)xt+; N%0_JwW}zQ-b?̥{ ҍp5fH1n<D67iUV<2=xKH#ѩ#%ةjW7.HS2 3K=A[F==VwUgwlaڸy2$܆ 91wm̩neJXōYOkaŢ'z 5w'8 ^8 S }XP6{[ڽ4$1ei'k!>ڵ]& Eض\׉q Պ9 >ـq3;DAѸi !R:=D^;W$&[p7Mn1eF-E6yj@h-gċܶ! }x6%N.l1'#/poBA N[Xߡpf?#+`t!Ԯͩ xKԆ!voMZOa37^@韇A ^,= A(,R;| 69+j۳w }1t3( G_ ط3|~ោ2Z0aETa [REP1 Y,pH䙡v2>p:k$۩DmiXa[ڣrs\+{qI:}y E RWn?*q?2f^- AÄ~ue>$HT-bU|"YsӮRR?IE9;Pӝ괴v0rd괯uuO(btGdx&liDfaB7T]=qA%)[1/ydyUEyg95ZT%HgkSYƙ6wvjŪ픚x>)ξՏn䚫j +.܌ڝ-r[ 0fh7j+nLj}@<qZMʍCKρ/ &˛pL?<M hků LܡVo¼y=X5z[ڿtuz4~UP\ zAz˃6&Ro{j s?&!%_ ![ =yő-UR8Y<}~="ճW *uyBZQ2fe8O " WM+ iz!^Ql,ZS:nȚљJ{]HTԢFSiҜa, Rl*:TV*P3L>+nC5һΕ|s/8}zN-A=).,M/6T] 㣓Jf̊o: "D9V_^UcW~`!pV._6k5 78G.˘nOHB/䩅 ɶ1ֲ¡ oW/Y]`5\t}E r))\㿎;ͺvx`2ib=!h"Na4c? ,wOQ.h2s^)0ϫTG3w" i;d a9`Erig%p]@E}xlC| Q2;@( 1P!`Jpu[P{q|XRءZHJ$\` Q#KPvs~ ;Ugt \[B5uH1圣_vC6ܝڻ[ z7ne1SRD}Ⱥ s2̟Aa!u5|:&C2/Fycct7C6 Ci"E sIBN%Dīzf%:O m=Z.AUbh$;}P9ӷM+;Z"m/niM9K K6L<ӴOƧ/ՅnJ׆ bo!Чw%AU`?}/@ڑl݊itO4Nϰٔ*`wg2Z,d>u}%HQH^#y|Ǎ7Z솾q~Ah 5*x\Azt\nX-uV-7t$N =iOQ16 pFUq87YxuYFb zW=B?CΊ%O:Եcvd K wUV>xjzG# %ڛv*)C$% q.̊{k4P@ (̯x\ZB) yB#/ɹ^1\^!-u$Z!6j:Z'! r.S\y;ce<O~hUX2*STɈcчqiOV0cPY8#?V=N@˺"~{ uA8yPsMyb*l[0u+VDDImy zp릊5Zj8R㑇CAU!7ௐ&Vq9={G\Y)uLivdJ?dὼLR8H])WO6^v!|%=֌qnx5 "Ƿ!NY&zV~𗰡&LԁnL8`+vs!SlD(.پw< "^uHI>ýhȺl|PL_ SFIqُ`M8Œ[$9!/QlJWM^( 9lcNqarU?sƕ+ Gk3$<+jJR3zhJ,BGʆsi+F8Ol+ϩM{c:vF՞asQ/ʰy`vҍ/lP͈cPZ UJT%E4;8GTQ*5~.1ў3Ǩ?/l0Ȍ6Ug5̒1:Eeոpwe*I=~0ԒC0NWW!"1-vZal:'i-べIlU o4$V>7Hm]iȶ,Jp.޵N J@y]XĶԽAf1oeUa{uuh"J&^hޡrW Al3;p^$[͜,,#y;! m/jp:t ;vf S뫀|a}8&1nlf$ivle֊'XZ!m(Ymi=Ovt?/,_ɼбr?,᰽iﰝ+cib cw՟񓟓|aο%MxwͪPma)engՇ&Ϧ~Ygjdz~}dП:Kku&{`wO3Yg_GSgEZIxl^ @rb0zzku5|n;Pa ^Hz‡U/8ř^uY{iz܎,;(WIaǁr; åqvƉ9ժfCc89\dcCC8ALZփ^gı/.^ Nl9avQ'ť\w$~tgZT4$ lZ7xA(^q;,a,+~=ߢDvPvU  i:uÒc}P6,4>܇΢^,PEEv^.ډ{P PVNk,~`AFL9:qj{ag<(_Lu3_$pLDjXimS(YW6٤p~#@hBf<\(e*zDp/S/"y"^U=Hd0}<Li+.^UjU$ϗ&P+%x{0ˆ #x(!1ȉ0A@e5{t {ZsYb‘7]#jc"WP ߏP|NaqYA K((Ɉ}~mYmάSH.ɥxܭumXw$CLp\^_Ŝ[[\!s9-4ny-˴2ҐV[7ZA0Kذ8zu$8v:OX6\ՙm̂PMgf"NW^?mYܶnw;`@GF8qq6_! AQtppkumr6 wpҒTS)~JǞe#o>Ndc0Lpog1] LDtv0d~BtWbm\N<8imOz4x rjԆ CUGe2XV!:$09iurFo{[ +x@zQyגdhG&P|3y=I) MɟST"l,\I`$wKUҟ˺8/]h1:ӃZ/%)BNw{i4\RWkg$j,O ܢUN+-zdiRɶ!c|;񠉻B-gl翊J":Nҋk]I\7ǯ-~fxx{MN`][3SQh!? w GY҉]@ NO%@gbNŷVC18"-]\tά'*Q^t[$>ɻlEy(@uvzY4dҘ1^s}_ٝy(-'4ns6g oqҁzIVw #n5!UOYUR•~z*@;f©8:Vtz.ڄ}zІ8M>^b":%㏘Y q]m[<@$Y 0G ,G/,> ;nmN-,O8yP/ߘ "f`?G#o_LGFx enu?isvTeDmJJU rW w/Pk,k ɨV. Ň-P6XJ*Je=HWT î &QS:9ݚ}7=W}@4g1n43|-nmW1m蜜 =Yfr4Y.%f n#Sϵ0!2A5k0Jm:'S {A5+ѧgq.[EāSBgKQ!õ4cP Ȫxa勨Tq-H`7OXZJ2`z,FC@p2ݚTfS^[b\[Zszn_@G*H#?gf#a MCRev/ͭ!pZե4D-}EH,_պdx#@ZSWIwƑt>iߟlӁn8#z ^";8C| ̙R{"U7[ϯ.$o-"֝e#C;,r(P%}nm*7 R&:m{{-tgAE=[Y.ffy2ɒBTxҌnӹum* -C)@k2[5@Z)ؤ߬%ٴ~P+)IRFVN<֐>*RcSP2BI%ga~لj8RFQueoTwE‚ v.[LhӁ[\`lhq%BƿWwZ}Q'"\~e^Ho%[ V1\39W] }҇kp)c1!EW^_ӽϺs0F\f*TskH+:= i{O{h۫j`)%KqZ\Zح-4Y^a3pM|Z\vab*jA +Qlj#`sH,B羚c{TнopYzXD? 18M'6tl%%xq]2хɝ)IFRrazonțEBD}c;?Bj =CGk |\}z~y=G!("oqIImaf' f̽09~2~7r޾W7?ԾIi)^;b\wO5Cx^ďVxјn6['}\7>z)Ov=]iMJ 8NAQ:0׌v^6(CYUÇbVYm:k#}Ro3MEٽdܳ86g!&:'(=rހ?C9=^!aI|ϧW@oj@SCw)~+; y~nG>س|M&=@iw^tM'g-%&]Q=n^7#loF a"Jlo4 N[ވ?iy1\P@l1wG<uF_.fpRagz8o`I[j`ǽ*ݭm)U wž ќT5R |(a3r]Jl"=;|$jo=mwQ;ha8Yף{1W!!a[,p''!p9V m.8rcF̹B՞}qҨ5A"q$Z'uE%nD-F3 `ciUhIᬎ7"-1FgX@9gBai̽} (e@E9P'8[5JduICbD5:.O=H+:O E]~` oHC>:5NXV5^wU)?DyPZñgz|RY8Tk.׹#xJ6p r @;|4 DA% 吜y+GDTcc+gUT08LezCmӡ) l=ѬVZ|?nDzlI ! kUWm'/ y+GN=cRbl ~[LC+/,GVQń;{ e܀צM=2T'x4΍R&v2'|="'@MQU/h3@M+6Di ј<Р(@@S^ wPu[OKU.B `GK T2'KK`gO@z H^ٻ&o.*PN*#?1>q~O{[zϞMk<Мݺ1熈ltg;qK-UWLYxl3,.)ںս- $5h,Ǟ""Ջ|5I~q]LҨF1s}4>o-P'0ISZFan_!L <w@J 2nI;rq~XFeڧ>93Jcؙu=!> ily/ҘF>ϱG =`2"XǾp Lm*g{-U'j-8$bUw-+(>('S!/ jL*,m8B2j׃7K>Oj#X?&o9AOPc#D 咞sdAz a-oCkv4GMj,1:|[k3TEV,^q.H]C7DTe®FF$7۩fTdo.>خK&vmZFhFKt=RׯZglW?n,uO=*׾ȑn;ڹ_+n Orfja!2/b=?|kknO9`Y\ gQ\yR7 u1agO8ڊ"xVήQr $O2u9=" 틡G9ϺvR&Bx ^pכ9^yb #R((>C>l"iڐ.ˠ4qKA#@m;~0k̩O[ p w9{'ӧ&짢%,':\ n]KsPbӢVg-rFgQ$_<*){?.!Bb.Kd1~[\Ed%'tFg'?-2(ccJg`#xFǎVwMBAl~ pv.\토EVaύY؟d!z%I=U Ih>?5-fwCg3QI`Pd fJ^p{WCis ;  44j'~^?Sj]:,mJKk%Z2 F83!u/(n Yd[TĽ*v!ed\O7!.WH{&MF[%Ϊ퐄etzF4 -20A>uЯb?yq/-_CC[wϘhZn4MZៈjTA nF2Gη' ͂TN-.]rk[;S=#66j1N3m,JVt,8Dd=g0!?b{C0s⺧#7X<q%Ņut 0P Q+E`>31l>?82n4ӽv=89_(ȀesSMx0cO I< y38+f^xT]*3ڡFR~hV;5<9W (T-CY G@cOIDޑRs=v Prk|veiy&bQδёuBQրHH2QZ3Q ki'*R I"ɑCSwgz#pwA*m P'P?CIm$2T"R0vN- l`?=2,d*QD73i'AojL5 7t#g&*9bi~,:p~(a@× 2wkYodAwKRfy6@:]n/b#OyTBM(ҽ>3s}d<;  Cء?*GGӉTڛͅu>[l2z DɊ{r^J2%Qi^Qch;s.}rJRr7)W9/ǻzp܆:| ~|Vv9MhH/wQGJІombuJJGpwI7!Ё5\ -kt~C}9ׄMm.@RX.e|U%P߆ {I K@3͢j*ð: <鈻i0v^|`AqڰfS}<#vb`'^VV_*lui}ox/7+ֶnĚSmlkgv 6S1w^վB"aa*RAxX %Wڅ>zk#3>;o}Ak{xk[o;<]` w'i]%3=ۊ3nwT9e[zd z+sso;q'M$cwHru`$(yǒu o]8h7Ϸ\%ldG*Y!VvZ:2hmBQC'[dz)׈7(Tɒ~ڷXLk,P7q臨( :\GPdkY13h>[epԚm6wؘf *A~>:at¯$>^b|SvJ e> l/-??Ո"8}!8f<{XO|/mցx=TByՠIKTVY؍c6# no5,]ĺ=wѺ<xkysA`@\&d1p|8uvlBm(NaƇ?֨ ( |!9q+K-R-|`ۖ3ݢng˒FlvU҉{nr;n_$'avB%; $ZԉtzrJ~X^?LmoMSlM+Ooi؛Jaia븾 fy|eP$TȻ󈩊,E\̄Lim=tnM˽:DrIc .prF@ܧLWYC9'؅HW^Xz1Lڡ1ȕ A*kAR^pynMC[ 7MG4,|a8r5>Ѓo~ @}Uh'U.o&Gy )]h92 I藾EDy8 PpAOc{SMDxR*Tz8tǞ~B'$PPn˂<9* 8TpyC+_}Eb&Dj؟MvME(Ş2ޙ{p 3iY rقaD=9ˎC;t2MW^9-Z|ɡHhoDi/]KRf=s?ƖzݝcNVt;I;Rw.Ju[ⴶMG\?T{AK[En) ,@)`qi:L=HJ#Ar#i[.^Mq\%ɡtl0NI>!YKod?RLk oA?N6  WEkZh+\SI_:JU'(]Z:i%y$G}/XQU}5gwϭ1BH$1[¼lbK\:g4?/"kZ,;PꪬȈ_rR5˶'`%4N8$kNry| _/|Ps}mkKWEaoUu0I%D-tkmTR|BEQcIl/1UL1z>.ߘ镎[C XՀ?1#QO,,nTey?w* OɂO Mޥ{0yÇĿ*6`aCC8uNO{ZuuYR;y"zuU+ J`.COt3D-R\Bؤ2޲k7!pQDoo0hxE;Y8QMļXlS^  fӊk'|z@$́ )30])8K=4geB*dFDL7dgs8v_ #}ꫯh$}Vk ,vqJU|=s_o2֋HX=vԠ?ÍUJe{cXlƂݷ  I\^nG`,""0l0n^osMJ_Gp3z )ھ(tЭ7 #ѰLdY3s^#Hh. RӉ0ˀ*e%OrPEgM1Z3P@gwW=?.]/jXl.$==9PP_VWYН1?P}4q^%km9ۛJ?{;8-\uNFZ7,7+ț`TU"3w 7L~l[nB끳T.# LM`cI)OzY{MF X : ѐ-4~As'fy7Bko ѮֲNm?yVّ5Pڑz\Ճ9^bOX o4e|A0.wvw-:X[0`k_ylYs+Oglpr=pHE֭7uݽVP1p# `n- 3ݺB,w*zJo£s %P$R|cod Tu=s:4x/g$Q]G'cccѶp`=" ~!]i~{C#pnhWV۷`HY7yes*e,)Ր^w0 ƑƇaًv;L>DRW}|1@n.:#,^V"L ^QfhUcYRWnGd [XkĜ-'k*٠G ë= 37mKy%1{m3JIvHPnD_og"]ҥp"!s#(حh|x`Bt&ʌ H(cFZLiH(iDc "0wkaoxzQx0z &O6/8J ۻ[ [,˾7ʸ)ҲmYx<8D_avQ4宻+ꖮ+WDPqu_÷p /ѐGP) =Xb^++-R@6R*)/6^ fQ'z)q|fC+e:^@ь9ݦ%>M6GW׶DP&q5%ņuGE:~-ss2@ŘpLx^6NEȰ4bs࢘Ԏ2_xw(Ov.Yrs/,cXkPggѽyq:~=\%ܧw a5)"i:;`afh}:-p1~v>-}_rsp25S{Φ?TC8}%07޼4$A|r^gG2{9/JHqzJ'x hRbF#-( LY3>xĶkR[c$nj-Jp v񴙰ƓCe1i3Ș{x0vъ yw^ՍOqn:Reh)~rQ"drꔧ+5+창v0rԐA'(1 Eu":V05ؼ ^ [ MLǨZw[Z']0apIih3B ENmy'\pdXnڪuB$hlM-}(.p;:{hX kl%Bh9|T4+aҦd{b7}Q Ek<+j]bS[DS%jd#VW3LSn?QN,Îmf,θOkݽs+[q 0{\@ex~bؼsC7!^-52\gEbBKۼ(lN)vIZTe:Cö,wY̔/~O 71Г'~ c++L.wc}:O/UƤ 1IC v^PPE$"냤/N/ y@)kJWD=jQ;ZS2hb㣱n񔉠XW=EIn?>\|( lP<=<𐩳nkLYB1ŵ_=\;0Mcm\sB}bckșC^$o>_[U%Ȋa _S-{, @;q+Lj!l! 4"OhGկT?*8Bͦ7t)"L!õxM R.IM.)SubUAXU eJZKDrdWp5xCu@|[ahb@B% Cuj'sbUy7@7c_ };}pč\ᚅl]I\σNwj"fD@z!K(9u#8qaFmUl:V&o#T_T+:(4S4XM'|>Ssj9 ڜe= n}s-Q{j6LwFi`YխSNص6^FS{Uұ #zUqsP>=\kG<_›is}^~m>#͕to:3x;A=c>UC-/x,04RVyL{UʋZh88d(wv#:690&}fmfu7aA t-X"q5VUYvLc؂iLtl&4{YT%!,n. C󘮻`Y Qu?^ywhjUʶ3-dXjY 0ČbE,徼,zɢt ]}8%6 6!<0+Eó;h0HPD\^5V Tc)1ǕeY^7tD2;ePgo3 m-(cUC;!fZ1%(q-+za> 7ua d ㍕ܼ!aXV#Pc% eWMIrC}qȾoi>1-n3HLƀt{)Mc.5`~4]UG΋:>5lj BVP0TLP6+K2T4gg|KXL@K TУCY6kׁY_1D5D.؝*X4meE/"Eg%\m0NcԘḿ:xJ\Ӥ9X&=L ! hT|8ɼ/-4!D|.:i 咷凈FcnWyu&_"E߀o|o`-^y||vfVpH{ă])%Fa5\ k$}5>P)s395Ms=޾?,*A-t<LLH1m,-s ?v}pW*ߩ FkMUV*oNCOɀh~{$Lg~2NVek_LZ{ZEcyڵ-s{ہN{Bؤ\n` [wMU>l4cDFUg]N.J YL)Le% }P%6EY337+C'> ȕcTY(22B 焣OnX["I ި-֩MPۗD{p 8,xfA5xʼn~v)-斘yRg"`aqzu:P"OM2,ݎl^\ [y~`Qío}[ 9n+]9uw7x䛪X㤌_`. jys`ږi;%z7 [AlCQoǒ嬗D{iC:RSy1I|9,40sYMxbU} 'p['wcV""f#QúYbhmSh8$ۜ(5zk%jc79mYkEQ<ELume {x}<˪Xr商҇e /$Ŗ-W%SJWNE WyE@6Gv~_5g׎=n|{  1uO#kR f1Z!Yd XoInfSJ7$+d]\ğH81z3׏oWvrghzGټLvZeT 3} ~=HM|x1xm٤# Oyݚ߭<A]7`튢ЫYzͫn3Mxp1pӈѿI:L%L)yT/ρ`b_DE^y&k5,JfMq?j:oKIߖ _O v*Յ-N౯נij\liњq%VzdCCZ25zfضC.0%KzfMv y<so.ϺL{N'VxPQ&2I$͸^2D=J<eFti%'8N",iE۠UI]wQUK+ s [{6|\rY*j!pD@^&˫+m) |:8&g"I(YAE-9so:{@:.ʦTNT1nMgagWbbԍ^5,A}+nI kNn4fXj/"vI1ʨ;. j_5DsSbi~yaQ%%GG`_ǷsEkF,VT񩿡_V]^TWD?V){}KA⵷"t*XG$ M˳ 5U"5+V Z D\&y(T0RiRm7"L>F;kzyRlVĝcpޱ7}K@]oY&׬H @XE0QNU<c`mcq#kCnGh;Ǖ}xJJuX;J1zKʭe[6X*Gm+i 2ϔ1VgAtߣx2B#y=Z=STk ~fP|/pfV=5u|Z"U5ocy'~zf3yc2h-wʷa)+1Lk P1B %v5h>8pl~40 _P?>1f{Ye&)8獀Cj}ǩ-ۨ@D m;>J#&}䝓0p7J~j"GV/uf#Jjpл`ޏT|t*>]bm"BдbP;!vi~Q԰vZq,߳[Ċ"Po{[꺱f {Y`Ȉ2'2"\΃`xcm=kA926Y߼`{ KӼ'VN1J*0"S6S1LÜ~`":1]=_t ƒ\oq.GD/. Y$<OU/+^`sNp2yu&>xpv;~nc4:*̞$[BenטM QTP i_Ae Bәѷ%@KgoW7,-c$;:<8jel`=!zmިo=.;m"`Oty"{I`I:/^8(* JE]|S~=!»@P" ᱈uԊNjX%^M f@OFp.i9BC AEPӱ0u/yfMM&zRu4Ϯk?\-pK@௕•oP66냓Ci#Aٔp{J^p%=Y|ތD^F5A&[y(Qu֝܁*LO ~d;Ls1`wÅ Ϛa =FTEO'ɵq ^,KdYFz`D0E.#WAL0u@|I8դλ?yb_,]|) cGaջh%J"aW?}5#|N1g:<]T>ؐ.+G"j-],^r=Uydo/yyu8c']/U04ߣbS ,kbJ> wj%KIee1(zj8z롯P TfW~`t ܸ֊l p'Lk2 d7Ƃ S`!n0Yzc "R}W ҭ+5\ &ܟRUxH-M'a7oRSk`Sju2~ .%ͺ@2ʹv\0m!Tp;^`jqwiD*kOӠH5jk ^E[F7Bc* (/O^,q.0} (||u#en4(#b;l!`O4(4(ajP.D[0!LiV;Q  ! A鋔}@ U$Nq NWRLM; Nn0.E~A>!Mhj!uM)/Zz+b8_9`bUJ!:h.(QbS7@ѡex4Y5ځu;U*QuIM'ͫPe8 y}۱*j,:M whۑkϹ-iv7xye<^6]5:N=x6޾_f6/rz\Kߜ2&Kd`Lν0vg#vu]#xنZ٬)qvg *d<8,1JI!./_~=%x:;Lko)$6(P\+b G}dvfEi9й` _6r8΍>$Ftěi@$"s 4~补JJYzugwO^:6fS?/DoW2;%#r.fy] VǎOh*4»RfR qF0ۮ 9ISj8E=T-0G Jy]TPK]ӵjSZ8)+7>R֤ix>A p@ltvmg 8b0Pwzssܹ[ZƧQE{mS!:;F>v1)`m(]zxt1Qeq Po[we]N?ec!d {nS5VnVg+W4m[aܝ$-LN^q[:W ʮ;3kbXBϛ(F&qW#^ݹ+W uPm "wf.ǁq(þOy+AI"\1hxez$ȝ v&XVmՉ~fH 3`M@E3!+PL [Ŗ6z@ 8ۙxbj5ϩJ ߶ rWf>>/ 78ML/ A&:m+_e.ژ)l5 Yn>0󪫮aB)mQaw\9\5!*GYgYf}paZFsF#^4p>==kE={k>'F()+I$atY5ug.jPՄI"8$OxwR1$!iz:Q2[ ݠ[8jXneT׌~loJ#Q"Jk& ^\¯l%e', SwC%r8K#0Sn:FR[?_7Wc9c*=gYNV"TY:FEk`X*3x2!{[{JZ*6F7Ğ/A4GMrL11umL N`P\KBxI R#/2 ILy>LoaM 6vJ+lwFzhiz TYU7_w%ŋhFWy?p;o*QW kl-ٹu"Ya,eE%דHp?JƸቤ>[GZc^ޢ^ -M꼨W}zPZ稾Gs \{QEխInI¦DhXZ3IwC{JXst Hs2[XOF.[(eIDs3+=W_߬[s1<8u ȝEx<=c"+bn_#]_!]`bzzfBzxJ |zS%ZVIyek+Aj\#SjoZw+^&nxCc@;ooEjuwt[\Z==u#mn,*Z?yXc`E 2cP}P~\0ZxF1{ +epljQLRW4xDO)x)KI߶lN(Sul1/,t-GO!\_mrs\U^ez;|8 ",dFd:#:*%ԦM:͋:Fzx ]/8GzHH;>ճU b9as%mQZޓ`äI'u@5Ն dL㟴<8չSekKjr_@ Rpm>M/I7)E4K9brqE䦼?|,h4B׍zԷNޤLuM7320Ţ3*(C\;4 ~aג|˺TтħQty&|uɽ9y3lP;R N4.{uԍo v}49f el}Q%~JheOѴU2XEq{sxRjD*DAՌE؁wm1?yxWwKН XK}v--H5L#cY j(>ߢZ}ǎ5Sc}*6opg=n+joMDhݞE*>`ZFd'@%LjYޫ ,p +B UYE~`_Rn6 A3Id4iV&x^1qE@ZcAbkYATzFhv(̖C?Lі%F ӶJ4[5#ۘ7B3=jFfP CosCVX='_.WYLs- 2UyS"KM@;`˂ ~d@סWQF~s]: YNDhOݞ ;I\C`I9u&9u'ˬʪw#B-|*Қ ~ޟ4Aq{C {+6۷VԦGA!V㮩G}^a'#*߱BpNT1(բ N/g 3N[ 8h~y \\!HljA~v 7;}"u<$o*VsFc-aim9̕<[Rws&\b~ݦO&ptcL '.SJVD}T :(6++zh$"z-,g /b[+fl:`ݘߐE4og%sm?Jj4hf;iRD]~)#s >lzR\ DLw%Ԩ0Q@^ʶAߺV+<"'@D,&mR˔W=IŻ{ >@ꚼT)ĵ4fmARJhOA}v,Fj&Q{YVtaX4+x+OZޮk ]66/( X^0#Wfg!rX>!}لw^@p4X#Tƀ(c.3%O hKpMBOR[(a <֨ f!b̞輇7Sn7>r+Usoܯص <`{nL*wct9E'@04)lp6O]:Y_(Fzpmq /]o*# ,p։-ȕS^Vlxq'ҁǬϙpC ǣ(9>`yf7Qw^0f;>7Q+A"> utjP8\98˩?ZEWbm W9Y{-mkP)22)誎Z)WrDjh?ȑ qEs>>qMWhh P/0Z\EA_.b0q[jlz&3mp^Ǚo##uW,n(hCL/{ixˁ.|ߢ<ƿ# %oh||_x󘼾-N8Z_ʍ#ϙ#wyUry{wsb ɽ48_;`{+O|s}y@gkY{1/7NnLVXރ{5w~9NOU9@s0O(ȗ{&][7trr쌬~瞵;]y4sk\[77ovnKsSWy9%S~Z1pr{ ֧>2;w_;w-/w?'w)LE'ǏnwMfN~N5IF r#}W'='cʍuGXDrs法ۏ}I:}XGi߄InlHkQyXn|~Or{9ϯ3Yx9#g q}ܚ#x'wc56Gr5$#{+M57|N[wD.[#sCGY<0scJGH~zo22;#cu7s"b^_7lvNܜĹڒ-H^L#3eKO/Znc3;؇ysy_=vAnyAr{i}è,sܑq hHJF*s{=_VFѤ>CF#<1,7 ջwtXrMx_NM`{d^bmX#|'&'7#zۏ4'Ng x9_gx= Vo_.| xJq6@Έ31E87^M\(.S"XUqEqQu8vZΊ/`%+[ I w^? ǿ='{B" ?'}oc{M11v>kc|l| @=ω]=+%q?s|uNw[p/o^ĸg{B圜{Oߝ=UxN)Q4;y.3@'Opl,m\|>?+qg::gɱd$ p$}evVD/==/Zx'~{F8G/9 bOHȞUE>?{1qKN^/9(b|=ߜkzJ\g<<G Z|>/S'h80_?sXsN } C $c.|~V^'+g<%i"۳ >cxAw4yNix=%\KC:+Kl_睒yRx9CkkcOI:{ReI9) :zI)~5sR><'Ͽ y+9/<<+5y$Xg dF6G^4?%~d+.Rf<D._XL8#+dsuJqtNs[~YO.HZ}U%/gΞ ^`N/a_*m~OB6R^ճR8-3.9ާ=^ Y/{ CvFȠW =?$?#)2lW/ {bÀ_ 9 \:#d}F|]gn]k^F{xF\eW^+Z8 ӧ>!~P?8+ec>Gg~{EWeqz~MsR~s/IZ|ByI/m&3ꐞ~(RxME>)%O2˒| @\tNO~GE) 2#[ BzRW?/ L/}Iʗ|^2g<%sC\_~iq }VUۯy tgj 6EO ~xA4;tz8?tsI聧\@^(Cn>#y^4xA/^K\/Kɯ(%>/9,>}i^X#~wA7g:?\fR{Fg& l.^sR>5Ozaȟϊixo#1Gaf3=)q> 8缸%;'o<I8͡|u( pxNY@~E:3%23Lx'^<#t́r@8/PvbmCW {gG/^6ckwW:(Fkug$;-qq^p> @6un8JdB i $\.Jw{/*8 endstream endobj 2566 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 2567 0 obj << /Filter /FlateDecode /Length 6348 >> stream xmI'E|CKp&| _Z)68.4ӚT&LITV|x ̞//Ƿ?=H^leӛ===>=_?߾z8OO?>!>׷?_|_L^||s>_i:x~޾ٗ>×~~z:g!><~wy-Zo>>LJz޿~=w~}0=|y|] 7Oou<3^ʟOwL6&OϿ1 ttO?vMvkQ2T:Ro(PI<[U:T;ު~+-'B6|:K NEvu9nP}Q!_kc+ER F%\|Mx7K0DPq5ub(bb͘4r([m/hH%V^S _EsZ57q;y]7ʡy]ْNLnsoNi䷮,]ix-%n0]m6- t{MohH~n-Z8uμSߺCkc,N&n78ʒ>C5cq/K/Dy"̾AinG,>ւC7%9F8ol_KettԂH+vYqtgApl 7&<_<6(5_W!~JYIJ 6ÿo^e!ȯx]s uvm%|  d_:ed_  wԆUYv"%-199㿅y࿅?:42zƩmB*'a?2C~V- _; _S2A/X#z!-e8JgkDgJܙ_ ׌_g '- bSf)|TA@\uO9ܵi Z]6yɯ7Wpg}*=79 sѯJo~).Ҍ~vkoF/d;!1_Vߠߙ;Q8mDA?ῶ.`!~Iiyr3ɄNΝ NGDN[n&˽2Og?[~ῲf =- w_\H[/ e>;을ʞkߞ١sF~)JI|4gĻײ_^ ",ߑmsӔ*kvC`M>g]2+' gnm:_@ZjrVALxN/곈=:O3&bM֬g'bBz-YX8_` _وF ֺ|k [WE˾ß_D+$" +oE.wQ]3Sd?Q +]s$wfM Ց_;|+kk_-11O6om5G ZS{_Yה~fa#6bhx;%(Oq+;Ϸkٔjwͻ_l'JIRK5EZVj?i<2CƄNw ;l8ˁg׾W?=2}΀?߮k k:OA=Q1% N+̛ o#?q"sF3ɑ"+G) (;vmdG2{l&&]I/jz8zFo n+߽ e_9߭[27ۿsKW&x w-.r5'7 @/q#~O zq_q &ow-#y$Ş_5q"<ߒ_}VS1ĝ ;?vPv^GB+[|D^?n (  Rs D3'Y摍9?59kDV_O5}TDp$g/^vLw=+V</~Mğ)o/`i߉'(F~0MVt"Q;xqi?y$WixޏsP+5jRCO-?=H{H࿺s7#o%X`$w#3E~%;&đ)P_AwߙuHpH$"o_駈~FZ+;PW+)L^@FJK&WKZv} zt_ 1w(pMTT/['j/> c e*&+#e-U$Wߓ<Ln<'QPw ׭xo%Rm'si$@ i1FC'fKH', ۤU?P]M+p+2d=~;`_Q#K3YhSǒ_$7/~H7u)5 HQߴ76<#>UsVhSu7/WU~I܏"ynA῾C'o䯛U:>y?wdῳfͫh$R=7=m`kEfE.d,~Yſ+P/w>yJg1:H.S-uGP~957Ho/] ɞD/gῖw,W[L~g(Ywgٿ;<"_Mϲ^?GHOf#[ NwXn>?_PsWR׫#>[ j+3')On;e?wY;[;pcğ#7^!?z2j&u(g]TB9 ?࿃pфGէ?OMo5\k9Sϸ`6^ endstream endobj 2563 0 obj << /First 943 /N 90 /Type /ObjStm /Filter /FlateDecode /Length 4781 >> stream x][u~h /$vݫC.e& 0ӻp.Y I 7_8Vȃ 'A?cҿTUw,IOa{ԩSʢ,0ADa) C tPRk p&HDB ,E )Div Bev%ty=I"C^BpAQP 5U7iK.Fܤ3\Pr1J$nT2⦤Bj%ʔP8a Y"9PTZ*I55AI⡝QR$)K J5J"dȇْĶB+*kzMx@NBFRYgIdqz&<[!FX\A !)u^kjq)eԄd8_"PYI]c/j_*KxPPUB\jMlKttUh u%U l%"x^P`m U`DF RTDSs A PcAP_IWPb蚸Kg H_mt_zE}- ZH<7ԅK#G렦hҎJH5 `эΠGe  *,TDtDxYU,c?c?c?߼Cnݯ|yug:Y}8xE5>L }o6fiqpPMp]7L*{~v6Ɣ^k7ϊT8۷lxΖmemTp8 2#B8n)w]r_熼1?GokJީtУ^!GB/{C:FɢpBqitf\#v菆oLNGe=xZEeml{H@(65Zi')}N-cKp"ٿ69[; l!dH+uK)@G170xA(:֠|/&DddZ12ĹXnA7;б9=hWLgd:痐GJ.3?O)).jZ0kSMubNG봩ktFdZ[M-VLgnlYL6+4ܭXs"%zǯQ.QYEª dtFXsǴδg,0,b:̿2[[<#D1N8҄4u8te=%'uytn4Ys;c:fik\5K"\OҰ.fXZ1,m6QҰYۥai}n E=ҹ0Gljc dDM6+hXBxɧZvs. 7nU6aO_ ;ujx,%?`}F7W,܆0!-ڐC82πF̺ʦK$.I,\'A'="#[K'*95][:ٌ8E3 [*ӸZkeLo_̆Z \/UQA5"ɧ_F!i+ɯGbR'l X5g-K1wE&S4qGT1(P)Aˎc$gj3OeєRt W$O#0'c19l6=> jiC/QYuz>zZu?G~"Ӥ4OF{Es2gG Ɣ[= Ut6= x|fZz9A*8[v>\< j i'sћMdgUSAqvt0ԝ Ϋ^?Y St~:,m,#!@c1 +R걯ԯ~/?鏞x$%}OO~gcaQG?G?/zRtҮw'? Y\+K x<i}?~^Dy>Ȭ3=8@J|?d )`Җ6ڪGo6.,U.yE;*[UQUtTa[ā76EVeT!?vӀK?#ea㶯S㿏ktqi2J5E5+@/~$հW5EUq 1bW9`%J?~Y b62`~E`HIN$u^sq/,&1Iw.٧hSW b8(~ʧvxb>I#ޕ$S 2 *đFpT/DHDx-'֤ M0%EStb@"$4n$Ѯ&X42Z\ZƀJU m:\@x^@|||||Ưq14E٪!A~iIqf39 fD'bFX>.PE;

oC7~s3#lSѦۧGiplh ꤢ[ fТ ?Q>Q$nCP5tP1G&S2AGS6 TSPMwDii1:D@ @ @nQ~c^iqC &u머kN1[5!_*:UJ!,5|7XѕcueGƨ{cmKmfL}%L&B=(ȅ"]IIi 8755׀(WX{';F L)*mڵe, [T^.6}c8_]PPS_l y4Sף酎3VcZpW" t 1Cθ7Fկt$2iw!^0Pgd7DXO%vf+YS^$8sFܑY]-PM!(]J["EOveio'Ư0'*Xc׀5fdž:~X뫏uQr -vwrlCԈU1^RkAۮ'dEנG®QzuwЂzgN#CN+IDwC 2xZ[&i7)릦r}֕zm^~y?/Z|@j*a$ |Au҈m4ƣԮ+ J%mtq%?2ɟ;.PW@uRy][. RvĽpH^M>|&DMT"+tFW v3Z;_ʯ^r^Ml_q7fiX40K=1! _]x1kyئ'`5R|rY9f:9 pZ3-x~}pnΪov[n>l}>6aCvh'E#Z;)v2lf^alC͟Y]k'+<;'b3DL͍:V6xC"sFnF176\.J >{ot=_S endstream endobj 2591 0 obj << /First 496 /N 49 /Type /ObjStm /Filter /FlateDecode /Length 1874 >> stream x[Yo7~[VHO#u6G+Eki$c?3S,>H;HsV~zo:*j̪צW*g]O=~MN?f󀒫Pjsgy)jn൱ nd*ȖxIhbTD7ѻKRU2U4*jFqg 8C*rAt#:bɊK^vFAIf継ëAs 9̀oj6#iv'UV}dk=:h]sgD](I'~3Ԗth)/,MpPk%; xT8UXm_hkiĪޫ9zЯ,k6/7{td􌯂96mӣ%G+-g1XfD뽞.iY5}1ƭJp>8Zix͓_J<^уZ}5{L5&-Q,U43n2IddT5A:25+u;gM!L~;OFx.\;tF \Ik٠&7Kj{ qA*GHL;]PbrX&H.Һ-!:r3z>c/֚gUzueJuJrN[qnF[? ͘s@Y"P.(>L?3{TtIXγHI`Lkz[r A 9p͏ܝp1aGwww,LdFi+GC(na@Ė'Q,MrL<%::=,g a$ʞqW`H( 0*Za P0 xJzr0." eS}!}Tun(%p Oc</*l~W&1hWKT@;^ҌY&d;dIi(6Η ] /Info 2594 0 R /Root 2593 0 R /Size 2596 /Type /XRef /W [ 1 3 1 ] /Filter /FlateDecode /Length 6511 >> stream x%xGaM$KdVfaffffff6MCM$Mvvgvu;IwbIĿb:Ǚ2;MDb$֬l,a:X;k"Č&%B)YFJ4O, Gٚl8bHrb;_G$?D@$DAb:UnNRB*H i -2B& Y +dM9 'ܐB> PB1(%$PB9("TPB55&ԂPB=B#h M)4ZB+h m-:B' ]' ?C7='~+0  C 0# F( c`,0&$ S`*L0f, s`.̃"X K`),V*X k`-6& [`+lv. {`/|LW,,i<p8 8p N8 <\p . :܀p n p'< 3x x x o_x ;x#|7?ښ"!Y$@" B0p !brД4c!I )$-jnT$C бڗ@ZH_}oafٴI*|:ZQ4:,BΜAv9:ܐGS/X (Xg (?FP up-)"6+Vib]U$D1nQI(%-Y@Y^MF9(/֭{TJ' U*Tb=EGԀP jCqPWpRG5bdmԾFnB3h-%bQ[ǶڊA3ӑm'_5ɾ Eә}' ?C7 zd; zC¯1~ A0Xl!,b ]!C4K`8[XHI7HO `40Nl:xaL[f^-Sar`3` ӾY0-< `!,ŰDlt X)*5 ZX- 5bAAllGڷ B 6 `;쀝 v`AA/ͫu+bApDlڛ#]-18'&naX̰ 1r:.7g pQBz<2\aMWᚄwגpn ʼ")!S_h;w$d^S2'xޕ4= Y͔?$d{C Yd7׾G)'rFไ.bGvhr^ rFፄ\H>g C}6~xy7[4MB㺕hEvHZQ"CXnh{ A6'+BŞɦ#0p -Իt"^r jӬOu5(e4s/1(b V썊j6I $bo]kI2w[QH )c)%]2@zH+_ך5NSj2CFymJD&'(dbU˔Lدlb(䆜bj7%oh"gUҨ䇼bcJwD>/Q( žx)YD!Q (Ež)Y{BľFe4&),)%5塬wϹ}wprb]*P*}eSr&*h9j@u*㱦IMT"ՄZb?2 6A=#KL$uFo5[õ!4ƜHǛ@Sh͡--Vb~1^%Fؿufg#"qMtF]'qi+ ݠh`&Hu=đ&#zCq_/ ?RO0`0p 0Cg `5[U誖G0 &xq7+tOMLG٧M)(PSa[h:̀0 f Q ` ,g^q4[$5Za8 aM,GVJqt7%]b5J]iZqt3 WMGmͰQ}7$5a87Κ&Q5a84%[ib8&?{a86qڷ=njO8$%4: 2ꮡ=*4:'űpΊ;->2\ 8s|\~W8Vo &͈o4q]--JX$O7H;p~%ԞTG܃?>  mRRJhMB;y]5 滀XO-D"ank`;/JZiUgdC0qu'uE\LDpqbTSnqf9Q$DO&4g7EAbq3% I 1,dK7l8n($,Քth"8k( {ÔD*q6i҉8tվLҋ$ZDqNQ6 Su&{]fYOy 7gOfDhMgWZ5O6hT s =xEiãbPJs\VB(%i h8QEĹ|Wq.;\YZJPY8kfKV\LAu 8ws4-)aA=#";xLOLY^< _x>3%+g ēIki4p ymi"Q/'3d6`ٺh^@B!\&1kgbf|F#7x3u6#^L7kgmM3Fѐ"3,(,9Q Ċg{V-N_2H cOn#_&J)!x3%J3x(x},MWÐ&҈b2@zH+$tV,2S}&2WjB6[A3;oWfN5JoIèΆ1" rwv4W3o:\'5*x/Uc4QHkQQ(&wcz+&*%Ż&JwomPʈw~fˊppDe{Ԭޓ5QQgiTES9s?їܵMҚ_A7lF!oTS2:&o$C#h mLDCMۡQh*Z@3jFO[xMZoJS£[5Bv^|kk3t[gNL߆;(4Bm5߾|{4ըtAzեwlO%sOcoC]=_/*5(}:.&{|ċY݂40~HhH4`><([Wb=2şfX{ksL0^1OVğFa3ěl&MeR!aisI:Ohb>}6bX"z?n[nәu^)uU^+a2W } F?py蟧S:ֈ~uIFs-Zs޿&ns"p\fkV/Ƭ w[jB/M&3Mll3˻.4ۥo?=b~Gm{%"<=%RGfDM@*N 8&I;HU%"Up;%"=maDgDdO3Af}\"Q_R5W%dѱz Dj7ܖ:-֫knE-}ݕA+uo;ܓQC1"&߇?%r֟:HS?~]3|u﨎F],wzMhC 4iԏa ǟH|D"IQ(8 DGffi.( @nFn<ytDyZ#/cm("c𚚈 @GplIC<>#4Ha(51/j3-3oMg@&w0jIfF y4rCN7Oi6yXy A!(ͣę%l8Q1( %?^N]E$:yOC NF%yɉJAi(eD.uKAT*B%R[PJt>:&Ԁj]pх5Q]|ШԖbt*=FuDɪ% >ԓZt5)5j$SSl,Mki3 &Ȋ(ZH̹ZfKh%1 Y$Nk-1e2{䏹A@[yQ=t`*=i:B' ]$Qp(IO~nz@O%1/F}}WkǼ=#H| x,1؂U51Db Oa#`85;Fha>e櫛u$6FS`2LMl&&IM0L],>]~f `>,s[a crX+a5z=L[`3lsn|5f7IUbo0%ghb>tivIx*_H |~}ɔ|%X|Hq3pNi8#?눳pe$hh.ZwQp5"=S|ϫp nH iUS&nJ =~1%قׅu 䚮'-3 iHvicxSxox/ */>g_|͎E: $+o .7x >CbtH ~&!7 $hX@H  9 RCH =䄌 2C ; rC ?P C( Š P JCE( int main(void) { printf("Hello world!\n"); return 0; } \stoptyping \stopframedtext \stopsample \typesample \noindent 结果为 \start \setuptyping[before={\blank[line]},after={\blank[line]}] \getsample \stop 上述示例,不仅演示了抄录命令的基本用法,你应该也学会了如何使用 \type{framedtext} 环境给一些内容添加朴素的边框。 \section{外框} 也许你也想要一个像本文档中有着巨大的淡蓝色方括号的 \type{typing} 环境,但是需要事先对第 \in[metapost] 章中介绍的 \METAPOST\ 语言的基本用法有所了解方可。给 \type{typing} 环境添加朴素的外框很容易做到,而且它也是实现巨大淡蓝色方括号的基础,方法是 \startsample \setuptyping [before={\startframedtext[width=\textwidth]}, after={\stopframedtext}] \starttyping 带外框的 \starttyping ... \stoptyping \stoptyping \stopsample \typesample \start \getsample \stop 在 \type{\setuptyping} 的 \type{before} 和 \type{after} 参数中,也可以根据自己的需求,添加其他排版命令或你自己定义的宏。\CONTEXT\ 很多命令带有 \type{before} 和 \type{after} 参数。 \section{行号} \type{\setuptyping} 的 \type{line} 参数可用于设定代码行号。通过 \type{\setuplinenumbering} 可调整行号样式。以下示例开启代码行号,并将行号到 \type{typing} 环境的距离设为 0.5 em: \startsample \setuplinenumbering[typing][distance=.5em] \setuptyping [numbering=line, before={\startframedtext[width=\textwidth]}, after={\stopframedtext}] \starttyping #include int main(void) { printf("Hello world!\n"); return 0; } \stoptyping \stopsample \typesample \start \getsample \stop \section{着色} \CONTEXT\ 提供了代码语法着色功能,例如对 \TEX\ 代码进行着色, \startsample \starttyping[option=TEX] \starttext Hello \CONTEXT! \stoptext \stoptyping \stopsample \typesample \start \setuplinenumbering[typing][distance=.5em] \setuptyping [numbering=line, before={\startframedtext[width=\textwidth]}, after={\stopframedtext}] \getsample \stop 不幸的是,目前 \CONTEXT\ 仅实现了 \TEX,\METAPOST,Lua,XML 等代码的着色。不过,对于 \CONTEXT\ 尚不支持的语言,\CONTEXT\ 提供了扩展机制,若你对 Lua 语言及其 Lpeg 库有所了解,可自己动手,丰衣足食\cite[code-render]。 \section{逃逸} 即使不懂 Lua 和 Lpeg,倘若你不嫌麻烦,利用 \type{\type} 和 \type{typing} 环境的逃逸(Escape)机制,也能实现代码着色。例如 \starttyping[escape=no,option=TEX] \starttyping[escape=yes] /BTEX\darkgreen \#include/ETEX /BTEX\darkblue int/ETEX main(/BTEX\darkblue void/ETEX) { printf("/BTEX\darkred Hello world!\n/ETEX"); /BTEX\darkblue return/ETEX 0; } \stoptyping \stoptyping \noindent 结果为 \start \setuptyping [before={\startframedtext[width=\textwidth]}, after={\stopframedtext}] \starttyping[escape=yes] /BTEX\darkgreen \#include/ETEX /BTEX\darkblue int/ETEX main(/BTEX\darkblue void/ETEX) { printf("/BTEX\darkred Hello world!\n/ETEX"); /BTEX\darkblue return/ETEX 0; } \stoptyping \stop 我应该一直都没有告诉你,\CONTEXT\ 该如何给文字着色。\CONTEXT\ 预定义了一些标准颜色,可直接使用这些颜色的名字对文字进行着色,例如「\type{{\magenta 紫色}}」,结果为「{\magenta 紫色}」,也可以使用 \type{\color} 命令,例如「\type{\color[lightmagenta]{浅紫色}}」,结果为「\color[lightmagenta]{浅紫色}」。以下代码可用于查看 \CONTEXT\ 预定义颜色, \starttyping[option=TEX] \startTEXpage[offset=4pt] \showcolor[rgb] \stopTEXpage \stoptyping 使用 \type{\definecolor} 可以通过设定红(r)、绿(g)、蓝(b)分量定义颜色。例如 \startsample \definecolor[myred][r=.8,g=.2,b=.2] \framed{\myred 给你点 color see see!} \stopsample \simplesample[option=TEX]{\getsample} \noindent 上述代码中可以让你你顺便又学会了另一种给文字增加外框的方法。 亦可使用 \type{\colored} 直接设定 rgb 颜色对文字着色,以下代码与上例等效: \startsample \framed{\colored[r=.8,g=.2,b=.2]{给你点 color see see!}} \stopsample \typesample[option=TEX] \section{显示空格} \starttyping[escape=no,option=TEX] \starttyping[space=on] H E L L L O \stoptyping \stoptyping \start \setuptyping [before={\startframedtext[width=\textwidth]}, after={\stopframedtext}] \starttyping[space=on] H E L L L O \stoptyping \stop 注意,\CONTEXT\ 中文断行需要 \type{\setscript[hanzi]},但该命令会吞噬汉字之间的空白字符,从而导致一个问题,在 \type{\type} 和 \type{typing} 环境中,汉字之间若存在空白字符,它们不会被输出到排版结果,此时,只有 \type{space=on} 可以救急。 例如,以下 \type{typing} 环境未开启空格显示: \starttyping 本 行 每 个 汉 字 之 后 都 有 空 格, 但 是 你 看 不 见 它, 除 非 space=on ! \stoptyping \noindent 以下 \type{typing} 环境开启了空格显示: \starttyping[space=on] 本 行 每 个 汉 字 之 后 都 有 空 格, 但 是 你 看 不 见 它, 除 非 space=on ! \stoptyping \section{定义} 使用 \type{\definetype} 和 \type{\definetyping} 可定义专用的抄录环境。例如 \starttyping[option=TEX] \starttyping[escape=yes,space=on,option=TEX] Hello /BTEX\darkred\CONTEXT/ETEX! \stoptyping \stoptyping \noindent 倘若每次使用该 \type{typing} 环境,可能会让你觉得繁琐,且增加了输入出错的风险,采用以下方法可予以简化: \starttyping[option=TEX] \definetyping[foo][escape=yes,space=on,option=TEX] \startfoo Hello /BTEX\darkred\CONTEXT/ETEX! \stopfoo \stoptyping \section{小结} 五色使人目盲。即使 \CONTEXT\ 的代码着色功能未能支持你的程序代码,也许并不值得遗憾。也许真正值得遗憾的是,它未能激发你对 Lua 语言和 Lpeg 库的兴趣,而这正是 \CONTEXT\ 的代码着色功能支持的编程语言过少最重要的原因。context-modules-20240428/doc/context/third/context-notes-zh-cn/src/postscript.tex0000644000175000017500000000064414411653175027017 0ustar hillehille\title{跋} 历时二十日,终于写完了。 你现在学会 \CONTEXT\ 了吗? 我还没有学会。 这份文档所介绍的 \CONTEXT\ 知识或许尚不及它全部功能的百分之一,且 \CONTEXT\ 依然在发展着。学无止境,以生之有涯,随知识之无涯,这样不好。弱水三千,仅取一瓢饮,会好一些。 我应该去外面走走了,不然春天又悄悄离去了。 context-modules-20240428/doc/context/third/context-notes-zh-cn/src/08.tex0000644000175000017500000003237114411653175025036 0ustar hillehille\chapter{插图} 在某些情境下,一图可胜千言。\ConTeXt\ 在插图方面,不仅支持常见的 JPEG,GIF 和 PNG 等位图格式,也支持 PDF,SVG 以及 \METAPOST\ 等矢量图格式。 \section[figure]{位图} 所谓位图,直观上的认识是,对其进行放大或缩小,图像会失真。照片和屏幕截图,都是位图。常见的几种位图格式文件的扩展名是「\type{.jpg}」(或「\type{.jpeg}」),「\type{.gif}」和「\type{.png}」。\ConTeXt\ 在处理插图时,若发现插图文件的扩展名是这些扩展名之一,便会以位图的形式将图片插入版面相应位置。 假设在 \ConTeXt\ 源文件同一目录里有一幅位图 ctxnotes.png,以下代码, \starttyping[option=TEX] \externalfigure[ctxnotes.png] \stoptyping \noindent 便可将 ctxnotes.png 作为插图,即 \externalfigure[08/ctxnotes.png]。显然,这是插图,但很可能并非是我们想要的插图形式。我们想要的是,独占一行且居中放置的插图,这个要求这并不难实现: \starttyping[option=TEX] \midaligned{\externalfigure[ctxnotes.png]} \stoptyping \midaligned{\externalfigure[08/ctxnotes.png]} 如果需要让插图更大一些,例如宽度为 8 cm,高度按图片原有比例自动放大,只需 \starttyping[option=TEX] \midaligned{\externalfigure[ctxnotes.png][width=8cm]} \stoptyping \noindent 通常更建议使用相对尺寸,例如 0.3 倍的版心宽度(满行文字的最大宽度): \starttyping[option=TEX] \midaligned{\externalfigure[ctxnotes.png][width=.375\textwidth]} \stoptyping \midaligned{\externalfigure[08/ctxnotes.png][width=.375\textwidth]} 如法炮制,给图片加上标题也很容易: \starttyping[option=TEX] \midaligned{\externalfigure[ctxnotes.png][width=.375\textwidth]} \midaligned{\tfx \ConTeXt\ 学习笔记封面截图} \stoptyping \midaligned{\externalfigure[08/ctxnotes.png][width=.375\textwidth]} \midaligned{\tfx\ConTeXt\ 学习笔记封面截图} \indentation 如果你还希望插图能有编号,对于篇幅较小的文章,手工输入即可,建议在编号后,使用 \type{\quad} 插入一个字宽的空白作为间隔,因为普通的空格只有半个字宽。例如 \starttyping[option=TEX] \midaligned{\externalfigure[ctxnotes.png][width=.375\textwidth]} \midaligned{\tfx 图 1\quad\ConTeXt\ 学习笔记封面截图} \stoptyping \midaligned{\externalfigure[08/ctxnotes.png][width=.375\textwidth]} \midaligned{\tfx 图 1\quad\ConTeXt\ 学习笔记封面截图} 如果你担心,插图太多,手工输入图片编号难免会出错,可以使用 \ConTeXt\ 的计数器功能,让 \ConTeXt\ 为你自动递增图片序号。首先,定义一个计数器: \starttyping[option=TEX] \definenumber[myfig] \stoptyping \noindent 然后,每次在给插图添加加标题时,将该计数器增 1,并获取它的当前的值: \starttyping[option=TEX] \midaligned{\externalfigure[ctxnotes.png][width=.375\textwidth]} \incrementnumber[myfig] \midaligned{\tfx 图 \getnumber[myfig]\quad\ConTeXt\ 学习笔记封面截图} \blank[line] \midaligned{\externalfigure[ctxnotes-2.png][width=.375\textwidth]} \incrementnumber[myfig] \midaligned{\tfx 图 \getnumber[myfig]\quad 涂鸦版 Hilbert 曲线} \stoptyping \definenumber[myfig][prefix=no] \midaligned{\externalfigure[08/ctxnotes.png][width=.375\textwidth]} \incrementnumber[myfig] \midaligned{\tfx 图 \getnumber[myfig]\quad\ConTeXt\ 学习笔记封面截图} \midaligned{\externalfigure[08/ctxnotes-2.png][width=.375\textwidth]} \incrementnumber[myfig] \midaligned{\tfx 图 \getnumber[myfig]\quad 涂鸦版 Hilbert 曲线} \section{矢量图} 所谓矢量图,对其进行放大或缩小,图像不会失真。PDF 和 SVG 格式,皆为矢量图格式,文件扩展名分别为 \type{.pdf} 和 \type{.svg},将它们作为文档插图,方法与位图相同,例如 \starttyping[option=TEX] \externalfigure[ctxnotes.pdf][width=.7\textwidth] \stoptyping \section{宏} 超弦理论认为,宇宙是十维的,其中有六个维度蜷缩在卡拉比-丘空间,人类目前观测不到。我不知道这个理论是否正确,但是在 \TeX\ 系统中,的确能将让一些维度蜷缩在一个空间里,这个空间叫作「宏」。 在 \in[breaking-lines] 节,我们曾经定义过一个宏: \starttyping[option=TEX] \def\foo{\hskip 0pt plus 2pt minus 0pt} \stoptyping \noindent 当我们使用 \type{\foo} 时,\TeX\ 引擎会将其展开为「\type{\hskip 0pt plus 2pt minus 0pt}」。用类似的方法,可以让 \in[figure] 节中的制作插图的代码蜷缩在一个带参数的宏里,例如 \starttyping[option=TEX] \definenumber[myfig] % 定义插图编号计数器 \def\placemyfigure#1#2{% \midaligned{#2} \incrementnumber[myfig] \midaligned{\tfx 图 \getnumber[myfig]\quad #1} \blank[line] } \stoptyping \noindent 之后,在文章里放入插图会更为容易,例如 \starttyping[option=TEX] \placemyfigure {涂鸦版 Hilbert 曲线} {\externalfigure[ctxnotes-2.png][width=.375\textwidth]} \stoptyping 你可能并不能完全理解 \type{\palcemyfigure} 的定义,但是基于上一节的一些示例,应该能猜出其要义。这已经足够了,日后倘若你觉得有些经常重复使用的排版代码,它们只存在少许差异,便可尝试为它们定义一个宏,用宏的参数代替差异。现在也许你已经隐隐感觉到了,\ConTeXt\ 的排版命令也是 \TeX\ 宏。 \section{\type{\placefigure}} 事实上,\ConTeXt\ 提供了比我们定义的 \type{\palcemyfigure} 更为强大的命令 \type{\palcefigure},其用法为 \starttyping[option=TEX] \placefigure[插图摆放位置][引用]{插图标题}{\exteranlfigure[...][...]} \stoptyping 例如,将 ctxnotes-2.png 作为插图,居中放置,引用为「Hilbert 曲线」,标题为「涂鸦版 Hilbert 曲线」,只需 \starttyping[option=TEX] \placefigure [][Hilbert 曲线] {涂鸦版 Hilbert 曲线} {\externalfigure[ctxnotes-2.png][width=.3\textwidth]} \stoptyping \midaligned{\externalfigure[08/hibert.pdf]} \subsection{插图标题样式} 对于 \type{\placefigure} 的结果,可能你已经觉得有些不满意了。在中文排版中,图片的编号前缀不应该是 Figure,而应该是「图」,此外,编号也没必要粗体,而且标题字号应当比正文字体小一级。没有办法,\ConTeXt\ 一切默认的样式,皆针对西文排版。不过,我们可以通过以下命令,将插图标题样式设置成我们所期望的样式: \starttyping[option=TEX,space=on] \setupcaption[figure][style=\tfx,headstyle=\rm] \setuplabeltext[en][figure={图 }] \stoptyping \midaligned{\externalfigure[08/hibert-1.pdf]} 上述设定的样式,已基本符合我们的要求。根据排版结果,很容易能猜出来,\type{\setupcaption} 的 \type{style} 参数用于设定插图字体样式,\type{headstyle} 则用于设定插图编号样式。至于 \type{\setuplabeltext},与 \ConTeXt\ 的语言界面有关,但现在不必涉及太多细节,仅需知道,它可将插图标题的前缀「\type{Figure}」替换为「\type[space=on]{图 }」。不过,依然存在一个细微的问题,标题里的汉字之间的粘连的伸长特性又被 \ConTeXt\ 触发了,导致汉字分布有些疏松。该问题的解决方法与第 \in[post] 章的示例 \in[zaoshu-5] 相似,用将对齐参数设为 \type{center},即 \starttyping[option=TEX] \setupcaption[figure][style=\tfx,headstyle=\normal,align=center] \stoptyping \midaligned{\externalfigure[08/hibert-2.pdf]} \subsection{插图位置} \type{\placefigure} 的第一个参数用于设定插图摆放位置。当该参数为空时,\ConTeXt\ 默认插图居中放置。有时为了节省排版空间,需要将插图居左或居右放置,该需求可通过参数 \type{left} 或 \type{right} 实现。例如, \starttyping[option=TEX] % 居左 \placefigure[left][...]{...}{...} % 居右 \placefigure[right][...]{...}{...} \stoptyping 与 Mircro Word 这种字处理软件相比,\ConTeXt\ 的居中插图缺乏文字环绕功能,若想实现该功能,需对在 \TeX\ 层面掌握如何控制段落形状。 在 \ConTeXt\ 世界里,插图实际上是浮动对象(Float Object)的特例。所谓浮动对象,即你以为插图应该在文档的某个位置出现,但实际上 \TeX\ 引擎会根据版面的拥挤程度,修改插图的位置。例如,在文档的某一页的底部,若剩余空间已经不够放置一幅插图,则 \TeX\ 引擎会努力在下一页为插图寻找一个更合适的位置,但是原本应该位于插图之后的正文内容会出现在插图之前。若是禁止插图浮动,只需 \starttyping[option=TEX] \placefigure[force][...]{...}{...} \stoptyping \noindent 还有一个参数 \type{here},强迫性比 \type{force} 要弱一些,只是建议 \TeX\ 引擎尽量让插图保持在原位置。 除上述参数之外,\type{\placefigure} 还有许多控制插图摆放位置的参数,但并不常用,欲知其详,请参考 \ConTeXt\ Wiki 页面「Floating Objects」\cite[floating-objects]。 \subsection{引用} \type{\placefigure} 的第二个参数用于设定图片的引用标记。在正文中,使用 \type{\in[...]} 便可得到插图编号。例如 \starttyping[option=TEX] 如图 \in[Hilbert 曲线] 所示…… \placefigure [][Hilbert 曲线] {涂鸦版 Hilbert 曲线}{\externalfigure[ctxnotes-2.png][width=.3\textwidth]} \stoptyping \midaligned{\blueframed{\externalfigure[08/hibert-3.pdf]}} \section[figure-matrix]{阵列} 有时为了节省排版空间,需要将两幅或更多幅插图并排放置,如图 \in[win-r] 和 \in[cmd-window] 所示。该效果可使用 floatcombination 环境构造插图阵列来实现。例如,首先构建一行两列的插图阵列: \starttyping[option=TEX] \startfloatcombination[nx=2,ny=1] \placefigure{}{} \placefigure{}{} \stopfloatcombination \stoptyping \leftaligned{\externalfigure[08/floatcomb.pdf]} \noindent 然后将所得阵列作为插图,便可得到居中放置的插图阵列: \starttyping[option=TEX] \placefigure[none][]{}{ \startfloatcombination[nx=2,ny=1] \placefigure{}{} \placefigure{}{} \stopfloatcombination } \stoptyping \midaligned{\externalfigure[08/floatcomb-2.pdf]} 上述示例用了 \type{\placefigure} 一个小技巧:当 \type{\placefigure} 的第一个参数含有 \type{none} 时,可以消除插图编号和标题。此外,你应该发现了,\type{\placefigure} 的参数为空时,\ConTeXt\ 会以一个矩形框表示插图,还应当注意到,方括号形式的参数,通常是可以省略的。 若 \type{\placefigure} 的第一个参数含有 \type{nonumber} 时,可以消除插图编号,仅保留标题。因此,上述实现图片阵列的方法稍加变换,便可实现由多幅插图组合为一幅插图的效果: \starttyping[option=TEX] \placefigure{}{ \startfloatcombination[nx=2,ny=1] \placefigure[nonumber]{a}{} \placefigure[nonumber]{b}{} \stopfloatcombination } \stoptyping \midaligned{\externalfigure[08/floatcomb-3.pdf]} 基于 \type{combination} 环境可实现与上例等效的插图阵列,只是所用代码略多一些,但形式上更为结构化且应用范围更广。例如 \starttyping[option=TEX] \placefigure{}{ \startcombination[nx=2,ny=1] \startcontent \externalfigure[ctxnotes.png][height=3cm] \stopcontent \startcaption a \stopcaption \startcontent \externalfigure[ctxnotes-2.png][height=3cm] \stopcontent \startcaption b \stopcaption \stopcombination } \stoptyping \midaligned{\externalfigure[08/floatcomb-4.pdf]} \section{图片目录} 前文所有示例,插图所用图形文件皆需与 \ConTeXt\ 源文件位于同一目录。为了让文件目录更为整洁,我们在 \ConTeXt\ 源文件所在目录下,构建了一子目录,例如 figures,专门用于存放图形文件。为了让 \ConTeXt\ 能够找到图形文件,在构造插图时,需要向 \type{\externalfigure} 提供图形文件的相对路径: \starttyping[option=TEX] \externalfigure[figures/图形文件] \stoptyping 若不想每次插图时如此麻烦,可以通过以下命令将图形文件所在目录告知 \ConTeXt: \starttyping[option=TEX] \setupexternalfigures[directory={./figures}] \stoptyping \section{\MetaFun} 在 \ConTeXt\ 中,还有一种插图形式,\METAPOST\ 绘图代码,这些绘图代码被嵌入在 \ConTeXt\ 的 \MetaFun\ 环境里。例如,使用 \MetaFun\ 环境 \type{useMPgraphic},以 \METAPOST\ 语言绘制一个边线被轻微随机扰动的矩形: \starttyping[option=TEX] \startuseMPgraphic{metapost 图形} path p; p := fullsquare xyscaled (7cm, 3cm) randomized 0.07u; drawpath p; drawpoints p; \stopuseMPgraphic \placefigure{\MetaFun\ example}{\useMPgraphic{metapost 图形}} \stoptyping \midaligned{\externalfigure[08/metapost.pdf]} 上述示例在排版插图标题时,涉及 \TeX\ 宏在使用时即宏调用时的一个细节。例如,\type{\TeX} 之后跟随一个或多个空格,即 \type[space=on]{\TeX },这些空格会被 \TeX\ 引擎吞掉,不会显示在排版结果中,原因是默认情况下,空格是 \TeX\ 引擎需要知道宏的名字的结束符。如果需要在一个宏调用之后插入空格,需要对空格进行转义,即 \type[space=on]{\ },亦即反斜线后跟随一个空格。 \section{小结} 所谓插图,不过是个头较大的文字罢了。 context-modules-20240428/doc/context/third/context-notes-zh-cn/src/02.tex0000644000175000017500000002523414411653175025030 0ustar hillehille\chapter{沙盘游戏} 先不要急于学习使用 \ConTeXt\ 写论文,出专著,虽然它极为擅长这类任务,但是我还是希望先将它当成一个可爱的朋友,慢慢去熟悉它,而不是功利主义视角下的工具。 \section{新手村} 在第 \in[Installation] 章中,为了验证 \ConTeXt\ LMTX 是否已成功安装,我使用三条 \type{echo} 命令构造了一份简单的 \ConTeXt\ 源文件 foo.tex。事实上,可以使用任何一个文本编辑器来做此事。foo.tex 文件内容如下: \starttyping[option=TEX] \startTEXpage[offset=1cm] Hello \ConTeXt! \stopTEXpage \stoptyping \noindent 执行以下命令\footnote{从本章开始,一直使用 Linux 风格的命令提示符 \type{$}。},调用 \type{context} 程序,可将 foo.tex 编译成 PDF 文件 foo.pdf: \starttyping $ context foo.tex \stoptyping \noindent 在使用 \type{context} 命令编译 ConTeXt 源文件时,可省略文件扩展名「\type{.tex}」,因此下面的命令与上述命令等效: \starttyping $ context foo.tex \stoptyping 现在,想必你已经敏锐地觉察到了,凡是开头为反斜线「\type{\}」开头的英文单词,都是排版命令,的确如此。 排版命令 \type{\startTEXpage...\stopTEXpage} 称为 \type{TEXpage} 环境,我将其称为新手村。这一对排版命令所包含的内容,例如「\type{Hello \ConTeXt!}」会被排版于一个恰好能包含它的矩形排版空间。\type{frame} 参数用于控制边框是否开启,其值为 \type{off} 或省略对它的设定时,关闭边框。\type{offset} 参数可用于对排版空间进行扩大或缩小,如示例 \in[starting-area] 所示,排版空间从中心向四周被扩大 2.5 mm。 \startsample \startTEXpage[frame=on,offset=2.5mm] Hello \ConTeXt! \stopTEXpage \stopsample \sample[option=TEX][starting-area]{新手村}{\externalfigure[02/starting-area.pdf]} 之所以称 \type{TEXpage} 环境为新手村,是因它足够简单,将其用于观察大多数排版命令的效果时无需关心版面的天头、地脚、订口、翻口、版心、页码等元素的设定。 \section{伪文字} \ConTeXt\ 有一个可视化模块,提供了伪造单词的排版命令,使用该命令可以生成一些黑色的长短随机的矩形块,可将它们当成文字,从而在沙盘上可以更加随心所欲一些。 如示例 \in[true-words] 所示,排版两行文字,每行由 5 个单词组成。示例 \in[true-words] 给出了伪文字的效果。同样是两行文字,每一行由 3~5 个单词构成。 \startsample \usemodule[visual] % 加载可视化模块 \startTEXpage[frame=on,offset=2.5mm] This is the first line.\\ % 强制换行 This is the second line. \stopTEXpage \stopsample \sample[option=TEX][true-words]{两行真实文字}{\externalfigure[02/true-words.pdf]} \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm] \fakewords{3}{5}\\ \fakewords{3}{5} \stopTEXpage \stopsample \sample[option=TEX][fakewords]{两行伪文字}{\externalfigure[02/fakewords.pdf]} \section{注释} 在示例 \in[true-words] 的源代码中,「\type{%}」及其后面的同一行文字,是 \TeX\ 注释文本,它们会被 \type{context} 程序忽略,故而不会出现在排版结果中。注释是为了便于人类阅读 \ConTeXt\ 源代码而存在的。 \section{换行符} 在示例 \in[true-words] 和 \in[fakewords] 的源代码中,「\type{\\}」是强制换行命令,倘若将其删除,即使在源代码中将文字分为两行,例如 \starttyping[option=TEX] This is the first line. This is the second line. \stoptyping \noindent 排版结果依然是一行,而且换行符会被 \type{context} 程序视为一个空格,不妨亲自动手试验一下。 在使用换行符的情况下,即使两行文字在源代码中处于同一行,例如 \starttyping[option=TEX] This is the first line.\\ This is the second line. \stoptyping \noindent 排版结果依然是两行。 \type{\crlf} 也能用于对文字强制进行断行。倘若不希望对每一行都输入断行命令,也可以考虑使用 \type{lines} 环境,请参考示例 \in[lines]。 \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm] \startlines \fakewords{3}{5} \fakewords{4}{7} \fakewords{5}{9} \stoplines \stopTEXpage \stopsample \sample[option=TEX][lines]{排版多行文本}{\externalfigure[02/lines.pdf]} \section{分段} 观察示例 \in[pars],虽然排版结果依然是两行,但实际上它是两段。\type{\par} 是分段命令。 \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm] \startlines \fakewords{3}{5}\par \fakewords{3}{5} \stoplines \stopTEXpage \stopsample \sample[option=TEX][pars]{分段}{\externalfigure[02/pars.pdf]} 通常很少使用分段符对文本进行分段,因为在 \ConTeXt\ 源文档中,只需在两段文字之间空一行便可实现分段。示例 \in[pars-2] 使用空行进行分段,并通过限定「新手村」的宽度为 6 cm,从而在促狭的空间里展示了多行伪文字构成的段落。 \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm,width=6cm] \fakewords{9}{15} \fakewords{9}{15} \stopTEXpage \stopsample \sample[option=TEX][pars-2]{多行文本构成的段落}{\externalfigure[02/pars-2.pdf]} 段落可以设置首行缩进。中文排版的惯例是,段落首行需缩进 2 个汉字的宽度,示例 \in[pars-3] 实现了该需求,排版结果中段落开头的蓝色矩形区域表示文字缩进后产生的空白区域。尺寸 2em 即英文字母 \type{M} 的宽度的 2 倍,刚好与两个汉字的宽度相同。还有一个常用的尺寸单位 ex,它是英文字母 \type{x} 的高度。 \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm,width=6cm] \setupindenting[first,always,2em] \fakewords{9}{15} \fakewords{9}{15} \stopTEXpage \stopsample \sample[option=TEX][pars-3]{设置段落首行缩进}{\externalfigure[02/pars-3.pdf]} 根据文档「Faking text and more」\cite[faking-text]的提示,可将段落缩进区域的颜色定义为白色,从而可避免蓝色矩形块对视觉的干扰,见示例 \in[parindentcolor]。 \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm,width=6cm] \setupindenting[first,always,2em] % 将缩进区域的颜色由默认的蓝色改为白色 \definecolor[fakeparindentcolor][white] \fakewords{9}{15} \fakewords{9}{15} \stopTEXpage \stopsample \sample[option=TEX][parindentcolor]{消除段落缩进色块}{\externalfigure[02/parindentcolor.pdf]} 在设定段落首行缩进后,若不希望某个段落的首行被缩进,可在段落开头放置命令 \type{\noindent}。示例 \in[noindent],第二段消除了第二段文字的首行缩进。 \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm,width=6cm] \setupindenting[first,always,2em] \definecolor[fakeparindentcolor][white] \fakewords{9}{15} \noindent\fakewords{9}{15} \stopTEXpage \stopsample \sample[option=TEX][noindent]{消除第二段的首行缩进}{\externalfigure[02/pars-4.pdf]} \section[interlinespace]{行间距} \ConTeXt\ 默认的段落内各行文字的间距是 2.8 ex,约等于 \ConTeXt\ 默认的正文字体大小 12 pt。可使用 \type{\setupinterlinespace} 对行间距进行调整。如示例 \in[pars-5] 将行间距设为 1.75 倍默认行距。 \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm,width=6cm] \setupindenting[first,always,2em] \definecolor[fakeparindentcolor][white] \setupinterlinespace[1.75] \fakewords{9}{15} \fakewords{9}{15} \stopTEXpage \stopsample \sample[option=TEX][pars-5]{多行文本构成的段落}{\externalfigure[02/pars-5.pdf]} 不过,我发现示例 \in[pars-5] 的行间距设定语句若放在 \type{\startTEXpage} 语句之前则无效\footnote{在 \in[context-world] 节中会介绍 \type{\starttext ... \stoptext},直接以默认行距倍数的方式设置行间距,若设定语句位于 \type{\starttext} 之前则同样无效。},也许是当前的 \ConTeXt\ LMTX 版本存在 bug。 还有一种行间距设定方法。待你掌握第 \in[chinese-fonts] 章中讲述的 \ConTeXt\ 字体设定方法,并清楚正文字体的大小时,可使用 \type{line} 参数设定最大行高。例如,若正文字体大小为 11 pt,以下代码可设定行间距为 1.75 倍: \starttyping[option=TEX] \setupinterlinespace[line=19.25pt] \stoptyping \noindent 之所以是 19.25 pt,是因它等于 $1.75\times 11$ pt。最大行高即行间距,因为在 \CONTEXT\ 中,行间距是相邻两行文字的基线距离,恰好等于一行文字的最大高度。本文档在后文示中皆使用该方式设定段落内行间距。 \section{对齐} 有时,希望将一行文字居左、居中或居右放置,可分别使用 \type{\leftaligned},\type{\midaligned} 和\type{\rightaligned} 进行排版,请参考示例 \in[aligned-1]。 \startsample \usemodule[visual] \startTEXpage [frame=on,offset=2.5mm,width=6cm] \leftaligned{\fakewords{1}{2}} \midaligned{\fakewords{1}{2}} \rightaligned{\fakewords{1}{2}} \stopTEXpage \stopsample \sample[option=TEX][aligned-1]{多行文本构成的段落}{\externalfigure[02/aligned-1.pdf]} 如果是一段文字需要居左、居中或居右排版,可使用 \type{alignment} 环境,通过该环境的参数控制对齐形式。示例 \in[aligned-2] 展示了段落的三种对齐形式。 \startsample \usemodule[visual] \startTEXpage[frame=on,offset=2.5mm,width=6cm] \startalignment[flushleft] % 左对齐 1. \fakewords{5}{15} \stopalignment \startalignment[middle] % 居中对齐 2. \fakewords{5}{15} \stopalignment \startalignment[flushright] % 右对齐 3. \fakewords{5}{15} \stopalignment \stopTEXpage \stopsample \sample[option=TEX][aligned-2]{段落对齐}{\externalfigure[02/aligned-2.pdf]} \section{写一封谁也看不懂的信} 现在,我们已经有能力用伪文字排版一封谁也看不懂内容的书信了,见示例 \in[letter]。也许现在你很想用汉字给朋友写封信,并告诉他,这封信的排版是你亲手用 \ConTeXt\ 制作的。我劝你暂时最好放弃这个想法,写英文书信是完全可以的。 \startsample \usemodule[visual] \startTEXpage [frame=on,offset=1cm,width=10cm] \definecolor[fakeparindentcolor][white] \setupindenting[first,always,2em] \noindent\fakewords{1}{1}:\par \fakewords{1}{2}\par \fakewords{20}{50}\par \fakewords{20}{50}\par \fakewords{20}{50}\par \fakewords{1}{1}\par \noindent\fakewords{1}{1}\par \rightaligned{\fakewords{1}{1}}\par \rightaligned{\fakewords{1}{1}} \stopTEXpage \stopsample \sample[option=TEX][letter]{一封谁也看不懂的信}{\externalfigure[02/letter.pdf][width=.425\textwidth]} \section{小结} 恭喜你,走出了新手村。在下一章学会安装和使用汉字字体,便可以闯荡 \ConTeXt\ 世界了。context-modules-20240428/doc/context/third/context-notes-zh-cn/src/bib-style.tex0000644000175000017500000000402314411653175026472 0ustar hillehille\setupbtxlist [default] [align={normal,verytolerant,stretch}, before={\blank[quarterline]},after={\blank[quarterline]}, numberalign=middle, width=2.5em] % width 居然列表编号宽度,若设为 fit,则列表内容左侧不齐 \definebtx [default:list:numbering] [default:list] [left={[},right={]}] \setupbtx [default:list:author] [authorconversion=invertedshort, separator:invertedinitials=\btxspace, otherstext={\nospace,et al}, stopper:initials=\btxspace, separator:names:2={\nospace,}] \setupbtx[default:list:journal][style=normal] \definebtx [default:title:online] [default:list:title] \startsetups btx:default:list:article \texdefinition{btx:default:author}\nospace. \texdefinition{btx:default:title} [J]. \texdefinition{btx:default:journal}. \stopsetups \startsetups btx:default:list:online \texdefinition{btx:default:author}\nospace. \texdefinition{btx:default:title}. \texdefinition{btx:default:url}, \btxdoif {year} { \btxflush{year}. } \stopsetups \starttexdefinition btx:default:url 「\underbar{\goto{\hyphenatedurl{\btxflush{url}}} [url(\btxflush{url})]}」 \stoptexdefinition \starttexdefinition btx:default:author \btxflush{author} \stoptexdefinition \starttexdefinition btx:default:title \btxflush{title} \stoptexdefinition \starttexdefinition btx:default:journal \btxdoif {journal} { \btxstartstyleandcolor [default:list:journal] \btxusecommand [default:list:journal] { \btxflush{journal}, } \btxstopstyleandcolor \btxdoif {year} { \btxflush{year},\nospace } \btxdoifelse {volume} { \btxspace \btxflush{volume} \btxdoif {number} { \ignorespaces % brrr \btxleftparenthesis \btxflush{number} \btxrightparenthesis } } { \btxdoif {number} { \btxlabeltext{default:number} \btxspace \btxflush{number} } } \btxdoif {pages} { \nospace:\kern-.1em\btxflush{pages} } } \stoptexdefinitioncontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/preface.tex0000644000175000017500000000733314411653175026214 0ustar hillehille\title{自序} \useURL[王垠][https://www.yinwang.org]%[][\hyphenatedurl{https://www.yinwang.org}] 我最早听闻并接触 \CONTEXT,大概是 2008 年在王垠\footnote{一个敢于自我否定的人,曾致力于在国内推广 GNU/Linux 和 \TEX,后来以其对计算机科学和编程语言设计的洞察而闻名,详见其个人主页 \bluebox{\from[王垠]}。}的个人主页上看到他对 \CONTEXT 的谥美之文。当时我猎奇心甚为严重,又觉得大家都在用的 \LaTeX\ 无法体现我的气质,便开始自学 \CONTEXT。或许这是年青人的通病。 现在,我已不再年青,却依然喜欢 \CONTEXT。曾经沧海难为水,或许这是人老了之后的通病,而我觉得更可能是因为 \CONTEXT\ 依然年青。2008 年,\CONTEXT\ 正处于从 Mk\Romannumerals{2} 版本向 Mk\Romannumerals{4} 版本跃迁期间。待 2019 年 MK\Romannumerals{4} 版本尘埃落定时,\CONTEXT\ 的开发者大刀阔斧,如火如荼,开启了下一个版本 \LMTX\cite[Hagen2019]的开发工作,至今方兴未艾。 任何工具,只要有人长时间维持和改进,便会趋向于复杂而难以被他人驾驭,但是它能胜任复杂的任务。\TEX\ 是复杂的,以它为基础的 Plain \TeX,\LaTeX\ 和 \CONTEXT\ 则更为复杂。事实上,并非工具趋向于变得复杂,而是任务趋向于变得复杂,更本质一些,是人心趋向于变得复杂。例如,使用 Markdown 之类的标记语言写散文类的文章,轻松愉快,这是近年来 Markdown 广泛用于网文创作的主要原因。倘若用 Markdown 写一本含有许多插图、数学公式、表格、参考文献等内容的书籍,便需要为它增加许多功能,最终的结果相当于又重新发明了一次 \TeX。 Plain \TeX,\LaTeX\ 和 \CONTEXT\ 虽然皆为构建在 \TeX\ 系统上的宏包,但是国内熟悉前两者的人数远多于 \CONTEXT,究其原因,我觉得是因为 \CONTEXT\ 入门文档甚少,其中中文文档则更为罕见。\CONTEXT\ 创始人兼主要开发者 Hans Hagen 为 \CONTEXT\ 撰写了一份内容全面、排版精美的英文版入门文档\cite[ma-cb-en],对于具备一些英文阅读能力的人,原本可从该文档入门,但遗憾的是,除非读者知道如何在 \CONTEXT\ 中使用汉字(也包括日、韩文字)字体,否则所学知识仅能用于英文排版。 \useURL[ctan][https://ctan.org] 我曾于 2009 年写过一份 \CONTEXT 学习笔记,介绍了在 \CONTEXT\ Mk\Romannumerals{4} 中如何加载汉字字体以及基本的 \CONTEXT\ 排版命令的用法,内容颇为粗陋,由 CTeX 论坛里的朋友整合至 ctex-doc 项目并打包呈交 \bluebox{\from[ctan]} 网站。2011 年夏天曾许诺将我发布于网络上的一些相关文章合并至该笔记,但因俗务缠身,后来兴趣又有漂移,便不了了之。 光阴荏苒,时过境迁,当年曾在 CTeX 论坛一起折腾 \TeX\ 的朋友大多已不知所踪——在他们看来,我亦如是。2018 年,CTeX 论坛因国内日益严厉的互联网监管政策被迫无限期关闭,导致国内 \TeX\ 学习、研究和使用热情似乎遭受了毁灭性打击,爱好者们离散江湖,白头宫女在,闲坐说玄宗。现在,若学习 \LaTeX\ 尚能找到一些讨论区,而 \CONTEXT\ 似乎再也无人问津了。爱好终归属于自己。即使现在国内只有我一个人还在喜欢 \CONTEXT,依然应当为自己写一份新的 \CONTEXT\ 学习笔记,以偿旧诺。 值此情境,需篡改古词一阙,歌以咏志:芦叶满汀洲,寒沙带浅流,二十年重过南楼。欲买桂花同载酒,终不负,少年游。 \vfill \startalignment[flushright,broad] 2023 年 3 月写于山东郯城乡下老家 \stopalignmentcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/01.tex0000644000175000017500000003372014411653175025026 0ustar hillehille\chapter[Installation]{不怕命令行 } 无论是安装还是使用 \ConTeXt,皆需要对命令行环境有所了解。原本未有介绍这方面知识的计划,但是考虑到我正在写一份世上最好的 \ConTeXt\ 入门文档,便有了些许动力。本章先分别介绍 Windows、Linux 和 macOS 系统的命令行环境的基本用法,以刚好满足安装和运行 \ConTeXt\ 的需求为要。倘若对命令行环境已颇为熟悉,可直接阅读 \in[installation] 和 \in[ctx-in-texlive] 节。 \section{任务} 使用命令行环境,在文件系统中,创建一个名为 foo 的目录,在该目录内创建一份 Shell 脚本,令其可在命令行窗口中输出「不怕命令行」,执行该脚本,查看其输出。 \section{Windows 命令行} Windows 用户似乎畏惧甚至厌憎命令行环境,甚至很多人认为命令行环境是早已被淘汰的上个世纪的产物,因此要教会他们如何使用命令行环境,通常会有些麻烦,我当勉力为之。 在 Windows 系统中打开一个命令行窗口,有很多种方法,其中最快的应当是使用如图 \in[win-r] 所示快捷键「Win + R」,打开「运行」对话框,在其中输入「cmd」后点击「确定」按钮或单击「Enter」键,即可打开与图 \in[cmd-window] 类似的命令行窗口。 \startplacefigure[location=none] \startfloatcombination[nx=2,ny=1] \startplacefigure[title={「\type{Win + R}」 组合键},reference=win-r] \externalfigure[01/win-r.jpg][height=6cm] \stopplacefigure \startplacefigure[title={Windows 命令行窗口},reference=cmd-window] \externalfigure[01/cmd-window.png][height=6cm] \stopplacefigure \stopfloatcombination \stopplacefigure 所有要执行的命令皆是在「\type{>}」符号后输入,因而该符号名曰「命令提示符」。命令提示符左侧的内容是一个文件目录,名曰「当前目录」或「工作目录」。在命令行环境里,任何命令皆是在某个目录中执行的。在开始尝试输入命令之前,请将输入法切换为英文输入状态。 在命令行窗口中输入命令「d:」,然后单击「Enter」键执行该命令,可将当前目录切换为 D 盘。在命令行环境里,输入命令后,必须单击「Enter」键,方能使命令得以执行。 执行命令「\type{md foo}」,可在 D 盘根目录创建目录 foo,然后执行命令「\type{cd foo}」,将当前目录切换为 foo,即 \type{D:\foo}。 诸如 \type{D:\} 和 \type{D:\foo} 这样的表示形式统称为路径,更为准确地说,是绝对路径。有相对路径吗?有。在 \type{D:\foo} 中执行命令「\type{cd ..}」,便可将当前目录返回上一级,即 \type{D:\}。在 \type{D:\foo} 中执行命令「\type{cd ..\foo}」,则当前目录不会发生变化,因为 \type{D:\foo} 的上一级目录的子目录 foo 依然是 \type{D:\foo} 。形如 \type{..\foo} 这样的路径便是相对路径。 在当前目录 \type{D:\} 中执行命令「\type{cd ..}」,当前目录会发生什么变化?不会发生任何变化,因为 \type{D:\} 是 D 盘的最顶层目录,亦即它的上一级目录为空。 掌握了上述命令,便可在 Windows 文件系统中畅游无阻了,然而我们的任务尚未完成。在 Windows 系统中,该任务可描述为,在 \type{D:\foo} 中创建一份 Shell 脚本,执行该脚本,在命令行窗口中输出「不怕命令行」。在 Windows 系统中,Shell 脚本即批处理文件——扩展名为「\type{.bat}」的纯文本文件。在制作这份批处理文件之前,需要了解「\type{echo}」命令的基本用法。 「\type{echo}」命令,如同我们对着幽深的山谷呼喊而产生回声的过程,它读取一段文本,然后在命令行窗口中原样输出。例如, \starttyping D:\foo> echo 不怕命令行 不怕命令行 \stoptyping 似乎「\type{echo}」命令是一个什么都不会做的命令,这样的命令有什么用呢?它有一个用途是,利用输出重定向,将一些内容写入文本文件。例如, \starttyping D:\foo> echo @echo off > foo.bat \stoptyping \noindent 上述命令通过命令输出重定向符「\type{>}」将「\type{echo}」原本会输出到命令行窗口的文字「@echo off」重定向为输出到文件 \type{D:\foo\foo.bat} 。倘若该文件事先并不存在,上述命令会自动创建它。 现在,使用「\type{echo}」命令向文件 \type{D:\foo\foo.bat} 增加一行文字: \starttyping D:\foo> echo echo 不怕命令行 >> foo.bat \stoptyping \noindent 注意,向指定文件追加内容,需要使用「\type{>>}」,倘若使用「\type{>}」,则文件原有内容会被全部替换。 现在,略有纪念意义的时刻到了,你可能已经创建了人生中第一份 Windows 批处理文件,执行它吧! \starttyping D:\foo> .\foo.bat 不怕命令行 \stoptyping \noindent 注意,上述命令使用了相对路径的第二种形式,路径中的「\type{.}」表示当前目录。事实上,在 Windows 命令行环境里,这种形式的相对路径可以忽略,亦即上述命令可以改为 \starttyping D:\foo> foo.bat 不怕命令行 \stoptyping \noindent 在执行某个程序或批处理文件时,倘若未给出其路径,Windows 系统默认先从当前目录中搜索文件,若未搜到,才会在系统环境变量 \type{PATH} 设定的路径中搜索。 系统环境变量 \type{PATH} 是什么呢?既然是变量,必定有值,其值是绝对路径集,执行以下命令可以查看: \starttyping D:\foo> echo %PATH% \stoptyping \noindent 顺便指出,这是「\type{echo}」命令的另一种用途。 使用以下「\type{setx}」命令可以将上述示例创建的批处理文件 foo.bat 所在目录 \type{D:\foo} 追加至 \type{PATH} 变量现有路径集的尾部: \starttyping D:\foo> setx /M PATH "%PATH%d:\foo;" \stoptyping \noindent 务必注意,该命令仅在「以管理员身份」启动的命令行窗口中起效。在 Windows 开始菜单里的搜索栏,输入「cmd」并单击「Enter」键提交,然后鼠标右键单击搜索结果,在弹出的菜单中选择「以管理员身份运行」。以这种方式开启的命令行窗口方可执行上述的「\type{setx}」命令。 验证「\type{D:\foo}」是否被成功添加到系统 \type{PATH} 变量,只需在除 \type{D:\foo} 之外的任一目录验证能否执行 foo.bat,例如 \starttyping D:\foo> c: C:\> cd windows\system32 C:\Windows\System32> foo.bat 不怕命令行 \stoptyping \useURL[Windows 命令行][https://www.bilibili.com/video/BV1vk4y1h7LE/] 若不知如何以管理员身份运行命令行窗口,亦可通过图形界面设置 \type{PATH} 变量。我已将上述构建 \type{D:\foo\foo.bat} 以及如何通过图形界面设置系统 \type{PATH} 变量等过程录制为视频,网络链接为\bluebox{\from[Windows 命令行]},藉此避免让层峦叠障的 Windows 窗口截图占据本章太多篇幅。 \section{Linux 终端} 在 Linux 系统中,命令行环境叫作「终端(Terminal)」。终端中可以运行多种 Shell,最为常见的是 Bash Shell。这些 Shell 往往大同小异。终端可以嵌入窗口运行,也可以在没有窗口的情况下运行\footnote{通常情况下,可使用快捷键「\type{Ctrl + Alt + F1~F6}」切换到无窗口的终端。「\type{Ctrl + Alt + F7}」也对应一个终端,它通常被 Linux 窗口系统占用。},我们通常使用的是前者。 Linux 系统发行版众多,每个发行版有其不同的打开终端窗口的方式且因 Linux 用户往往对终端较为熟悉,因而不再赘述如何打开终端窗口。现在,假设终端窗口已经开启。首先,进入 \type{$HOME} 目录,创建子目录 foo: \starttyping $ cd $HOME $ mkdir foo \stoptyping \noindent 进入 foo,使用命令输出重定向,将 \type{echo} 命令的输出结果写入 foo.sh 文件: \starttyping $ cd foo $ echo #!/bin/bash > foo.sh $ echo echo 不怕命令行 >> foo.sh \stoptyping \noindent 使用 \type{chmod} 命令为 foo.sh 增加可执行权限,让它像程序一样运行: \starttyping $ chmod +x foo.sh \stoptyping \noindent 运行 foo.sh: \starttyping $ ./foo.sh 不怕命令行 \stoptyping \noindent 将「\type{$HOME/foo}」添加至系统「\type{PATH}」变量并使之生效: \starttyping $ cd $HOME $ echo 'export PATH=$HOME/foo:$PATH' >> .bashrc $ source .bashrc \stoptyping \noindent 在任一目录下执行 foo.sh 以验证「\type{$HOME/foo}」是否已被添加至「\type{PATH}」变量,例如 \starttyping $ cd /tmp $ foo.sh 不怕命令行 \stoptyping 倘若想对 Bash Shell 有更多一些的了解,可以阅读我的拙作「写给高年级小学生的《Bash 指南》」\cite[bash-tutor],它介绍了 Bash 的诸多有趣之处,也许会让你喜欢命令行,而不仅仅是不怕它。 \section{macOS 终端} \useURL[macOS 终端][https://support.apple.com/zh-cn/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac] 我没用过 macOS 系统,在该系统中打开终端窗口,可按 macOS 官方帮助文档介绍的方法进行,详见:\\ \bluebox{{\switchtobodyfont[9.75pt]\from[macOS 终端]}} 至于 macOS 终端的用法,因 macOS 和 Linux 皆为 Unix-like(类 Unix)系统,二者终端环境的用法近乎相同,唯一有些区别的是,从 macOS Catalina 版开始,macOS 默认使用的 Shell 不再是 Bash,而是 zsh。因此,在设置「\type{PATH}」变量时,命令需要变为 \starttyping $ cd $HOME $ echo 'export PATH=$HOME/foo:$PATH' >> .zshrc $ source .zshrc \stoptyping \section[installation]{安装 \ConTeXt\ LMTX 最新版本} 安装 \CONTEXT\ LMTX 有两种方式,一种是安装 \CONTEXT\ 开发者提供的 \CONTEXT\ 包,该包仅包含 \CONTEXT\ 环境;另一种是安装 \TEX\ Live 中的 \CONTEXT\ 包。本节介绍前者,下一节介绍后者。 \useURL[installation][https://wiki.contextgarden.net/Installation] \ConTeXt\ 的最新版本是 \ConTeXt\ LMTX,目前尚在开发和试验阶段,功能虽不稳定,但对于入门而言并无妨碍。从 \bluebox{\from[installation]} 下载对应操作系统类型的 \ConTeXt\ LMTX 安装包,按照该网址的相关介绍进行安装即可,安装过程所需要的全部知识皆已在上文介绍完毕。下文以 Windows 64 位系统为例,给出详细的的安装过程。 \useURL[win-64-version][http://lmtx.pragma-ade.com/install-lmtx/context-win64.zip] 首先,从链接 \bluebox{\from[win-64-version]} 获得面向 Windows 64 位系统的安装包 \type{context-win64.zip} 并假设将其放在 \type{D:\} 解开,所得目录为 \type{context-win64},其结构如下: \starttyping D:\context-win64 ├── bin │   ├── mtx-install.lua │   ├── mtxrun.exe │   └── mtxrun.lua ├── installation.pdf ├── install.bat └── setpath.bat \stoptyping 将目录 \type{context-win64} 改名为 \type{context},然后打开命令行窗口,依次执行以下命令: \starttyping > d: > cd context > install.bat \stoptyping \noindent 批处理文件 install.bat 能够自动从网络上下载 \ConTeXt\ LMTX 的所有文件,并将其安装在 \type{D:\context} 目录。安装时长取决于网络下载速度。由于服务器在境外,文件下载速度缓慢,可能需要很久方能安装完毕。当安装过程结束后,目前需要再次执行 install.bat,将 \ConTeXt\ LMTX 更新到最新版本。这些都是 \bluebox{\from[installation]} 未告诉我们的。此外,即使安装过程中断,再次运行 install.bat 可继续安装,而不会导致前功尽弃。 验证 \ConTeXt\ LMTX 是否安装成功的方法是,在 \type{D:\context} 目录中执行以下命令: \starttyping > setpath.bat > md test > cd test > echo \startTEXpage[frame=on,offset=1pt] > foo.tex > echo Hello \ConTeXt! >> foo.tex > echo \stopTEXpage >> foo.tex > context foo.tex \stoptyping \noindent 倘若在 \type{D:\context\test} 目录下能够得到 \type{foo.pdf} 文件,且其内容为 \lower.3em\hbox{\externalfigure[01/foo.pdf]},则意味着已成功安装 \ConTeXt\ LMTX。 最后,将 \type{D:\context\tex\texmf-win64\bin} 添加到系统 \type{PATH} 变量,便可在任一目录使用 \type{context} 命令将扩展名为 \type{.tex} 的文本文件编译成 PDF 文件了。 \section[ctx-in-texlive]{\TEX\ Live 中的 \CONTEXT} 若你熟悉 \TEX\ Live\cite[texlive],推荐使用它提供的 \CONTEXT\ 版本,其功能较为稳定,且国内有镜像网站,在线安装更为便捷。若是新安装 \TEX\ Live,在安装时可直接选择 \type{ConTeXt scheme} 或在 \type{collections} 列表中选择 \type{ConTeXt and packages}。若你的系统中已安装 \TEX\ Live,只是无 \CONTEXT,可使用 TeXLive 包管理器 \type{tlmgr} 安装 \type{collection-context} 即可。 \section{小结} 在一个桌面操作系统中,命令行环境能完成的工作,图形界面通常也能完成,但对于有些任务,命令行环境比图形界面更为高效,反之亦然,原本无需厚此薄彼,但尺有所短,寸有所长,Windows,Linux 和 macOS 也是如此。 \startitemize[packed] \item Windows 系统的命令行环境,前身是 MS DOS 系统,长期未得进化,现在用起来,捉襟见肘。现代的 PowerShell 更为适用,但因 \ConTeXt\ 目前不能直接在 PowerShell 环境里完成安装,故而上文未曾言及。 \item macOS 无论图形界面还是命令行环境皆胜于 Windows 和 Linux,但其缺点是在不违法的情况下,它只能运行于苹果公司的计算机,费用不菲。 \item Linux 系统的图形界面不及 Windows 和 macOS,但命令行环境优于 Windows\footnote{自 Windows 10 开始,微软在 Windows 系统中构建了 Linux 子系统(WSL),允许用户在 Windows 系统中使用 Linux 命令行环境,但是该环境无法利用 Windows 和 Linux 的图形界面功能。},与 macOS 相当,但 Linux 最显著的特点是,它能帮助每一个使用计算机的人,让他深刻觉察自己以往所宣称的那样热爱自由是否真实。 \stopitemize context-modules-20240428/doc/context/third/context-notes-zh-cn/src/ctxnotes.tex0000644000175000017500000000131614411653175026451 0ustar hillehille\environment doc-env \usebtxdataset[ctxnotes.bib] \starttext \startfrontmatter \input cover \input license \setuppagenumber[number=1] \setupuserpagenumber[numberconversion=romannumerals] \setups{FrontHeaderFooter} \input preface % 自序 \TOC{目录} \placecontent \stopfrontmatter \startbodymatter \setuppagenumber[number=1] \setupuserpagenumber[numberconversion=number] \setups{BodyHeaderFooter} \input 01 \input 02 \input 03 \input 04 \input 05 \input 06 \input 07 \input 08 \input 09 \input 10 \input 11 \input 12 \input 13 \input 14 \input zhfonts \stopbodymatter \startbackmatter \input postscript \title{参考文献} \placelistofpublications \stopbackmatter \startappendices \null \stopappendices \stoptext context-modules-20240428/doc/context/third/context-notes-zh-cn/src/cover.tex0000644000175000017500000000430114411653175025715 0ustar hillehille% 封面 \startMPinclusions vardef hilbert(expr sidelength, n) = numeric u; u := 0.5sidelength; pair a, b, c, d; a := (-0.5, -0.5) * u; b := (-0.5, 0.5) * u; c := (0.5, 0.5) * u; d := (0.5, -0.5) * u; path p; p := a -- b -- c -- d; transform sw, nw, ne, se; sw := identity scaled 0.5 reflectedabout ((0, 0), (1, 1)) shifted (-0.5u, -0.5u); nw := identity scaled 0.5 shifted (-0.5u, 0.5u); ne := identity scaled 0.5 shifted (0.5u, 0.5u); se := identity scaled 0.5 reflectedabout ((0, 0), (1, -1)) shifted (0.5u, -0.5u); for i := 2 upto n: p := p transformed sw for j := nw, ne, se: -- p transformed j endfor; endfor; p enddef; \stopMPinclusions \startuseMPgraphic{TitleGraphic} path p; p := hilbert(OverlayWidth, 5) randomized 1mm; pickup pencircle scaled 1mm; draw p yscaled(OverlayHeight / OverlayWidth) withcolor transparent(1, .5, darkgray); %\MPcolor{tan}; \stopuseMPgraphic \defineoverlay[TitleGraphic][\useMPgraphic{TitleGraphic}] %% 阴影盒 \startuniqueMPgraphic{shade box} numeric u, w, h, roundcorner, offset; path p, q; color shade; u := 1cm; w := \overlaywidth; h := \overlayheight; p := unitsquare xyscaled (w, h); offset := 7pt; shade := darkgray; pickup pencircle scaled offset; for i = 0 step .1 until 1: q := unitsquare xyscaled (w, h) shifted (i * offset, -i * offset); fill q withcolor transparent (1, .1, shade); draw q withcolor transparent (1, .1, shade); endfor; q := p shifted (-offset, offset); draw q withcolor transparent (1, 0, white); fill p withcolor \MPcolor{dimgray}; draw p withcolor \MPcolor{lightsteelblue}; \stopuniqueMPgraphic \defineoverlay[shade box][\uniqueMPgraphic{shade box}] \defineframedtext[coverbox][frame=off,background={shade box}] \setupbackgrounds[page][background=TitleGraphic] \startstandardmakeup \startcolor[white] \startcoverbox[middle][width=.6\textwidth,height=5cm,toffset=.8cm] \strut \hfil \bfd\ConTeXt\ 蹊径\hfil \blank[1cm] \hfil\bfa 李延瑞\hfil \blank[.25cm] \hfil\bf 2023 年 3 月 31 日\hfil \stopcoverbox \stopcolor \blank[14cm] \stopstandardmakeup \setupbackgrounds[page][background=]context-modules-20240428/doc/context/third/context-notes-zh-cn/src/ctxnotes.bib0000644000175000017500000000441514411653175026410 0ustar hillehille@article {Hagen2019, author = "Hans Hagen", title = "ConTeXt LMTX", journal = "TUGboat", volume = "40", number = "1", pages = "34--37", month = "4", year = "2019" } @online{ma-cb-en, author = {Hans Hagen}, title = {\ConTeXt\ Mark IV: an excursion}, url = {http://www.pragma-ade.nl/general/manuals/ma-cb-en.pdf}, year = {2017} } @online{bash-tutor, author = {李延瑞}, title = {写给高年级小学生的《Bash》指南}, url = {https://segmentfault.com/a/1190000017229619}, year = {2018} } @online{texlive, author = {TUG}, title = {\TEX\ Live}, url = {https://tug.org/texlive/}, year = {2023} } @online{faking-text, author = {Hans Hagen}, title = {Faking text and more}, url = {http://www.pragma-ade.nl/general/magazines/mag-0007-mkiv.pdf}, year = {2016} } @online{unicode-blocks, author = {\ConTeXt\ wiki editors}, title = {List of Unicode blocks}, url = {https://wiki.contextgarden.net/List_of_Unicode_blocks}, year = {2020} } @online{contextref, author = {Hans Hagen}, title = {\ConTeXt\ Reference}, url = {http://pmrb.free.fr/contextref.pdf}, year = 2013 } @online{floating-objects, author = {\ConTeXt\ wiki editors}, title = {Floating Objects}, url = {https://wiki.contextgarden.net/Floating_Objects}, year = 2021 } @online{metafun, author = {李延瑞}, title = {\MetaFun\ 小传}, url = {https://segmentfault.com/a/1190000016832302}, year = 2018 } @online{math, author = {\ConTeXt\ wiki editors}, title = {Math}, url = {https://wiki.contextgarden.net/Math}, year = {2022} } @online{mpman, author = {John D. Hobby}, title = {\MetaPost\ Manual}, url = {https://www.tug.org/docs/metapost/mpman.pdf}, year = {2022} } @online{overlay, author = {\ConTeXt\ wiki editors}, title = {Overlays}, url = {https://wiki.contextgarden.net/Overlays}, year = {2022} } @online{framed, author = {\ConTeXt\ wiki editors}, title = {Framed}, url = {https://wiki.contextgarden.net/Framed}, year = {2022} } @online{math-fonts, author = {\ConTeXt\ wiki editors}, title = {Math fonts}, url = {https://wiki.contextgarden.net/Math_fonts}, year = {2020} } @online{code-render, author = {李延瑞}, title = {源码凸显}, url = {https://segmentfault.com/a/1190000043405105}, year = {2023} }context-modules-20240428/doc/context/third/context-notes-zh-cn/src/example/0000755000175000017500000000000014613513621025505 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/example/style.tex0000644000175000017500000000357714411115111027367 0ustar hillehille% 页面布局 \definepapersize[foo][width=640pt,height=360pt] \setuppapersize[foo] \setuplayout[width=middle,topspace=0pt,height=middle,footer=40pt] \setupbackgrounds[page][backgroundcolor=gray,background=color] % 字体 \definefallbackfamily [myfonts][ss][latinmodernsans][range={0x0000-0x0400},force=yes] \definefontfamily[myfonts][ss][simhei][bf=simhei,it=kaiti,bi=simhei] \setscript[hanzi] \setupbodyfont[myfonts,ss,16pt] % 常规 \setuppagenumbering[location=] \setupinterlinespace[line=28pt] \startuseMPgraphic{square} path a, b; a := (-.5, 0) -- (-.5, .5) -- (.5, .5); b := (-.5, -.5) -- (.5, -.5) -- (.5, 0); for i = a, b: draw i scaled 10pt withpen pencircle scaled 2pt withcolor darkred; endfor; draw (0, 0) withpen pensquare scaled 4pt withcolor darkred; \stopuseMPgraphic \definesymbol[10][{\lower.15ex\hbox{\useMPgraphic{square}}}] \setupitemize [1][10,packed] [distance=0.4em, before={\blank[quarterline]},after={\blank[quarterline]}] % 标题 \setuphead [title,chapter] [align=center,style=\ssb,color=darkred, before={\blank[halfline]},after={\blank[halfline]}] \setuphead[chapter][conversion=chinesenumerals,alternative=inmargin] \startuseMPgraphic{processbar} numeric w, n, s, t; w := \overlaywidth; n := \lastuserpage; s := .5w / (n + 2); t := \userpagenumber - 1; path p; p := (fullsquare scaled \overlayheight) randomized 1pt; pickup pencircle scaled 1.25pt; picture q; q := image(for i = 0 upto n - 1: p := (p shifted (2s, 0)); if t = i: fill p withcolor darkgreen; fi; draw p withcolor darkgray;%transparent(1, 0.5, darkgray); endfor;); draw q xsized w; \stopuseMPgraphic \defineoverlay[process][\useMPgraphic{processbar}] \setupfootertexts[{\framed[frame=off,offset=0pt, width=\makeupwidth,height=.8em, background=process,empty=yes]{}}]context-modules-20240428/doc/context/third/context-notes-zh-cn/src/example/slides.tex0000644000175000017500000000145514411115111027503 0ustar hillehille\input style \starttext \startstandardmakeup[align=center] \ssd \color[darkred]{如何用 \ConTeXt\ 制作幻灯片} \blank[2*line] \ssb 李某人 \blank[line] 2023 年 3 月 28 日 \stopstandardmakeup \startbuffer[foo] \chapter{蒙} 亨。匪我求童蒙,童蒙求我;初筮告,再三渎,渎则不告。利贞。 \startitemize \item 初六,发蒙,利用刑人,用说桎梏;以往吝。 \item 九二,包蒙,吉。纳妇,吉;子克家。 \item 六三,勿用取女,见金夫,不有躬,无攸利。 \item 六四,困蒙,吝。 \item 六五,童蒙,吉。 \item 上九,击蒙,不利为寇,利御寇。 \stopitemize \stopbuffer \dorecurse{50}{\getbuffer[foo]} \startstandardmakeup[align=center] \ssd \color[darkred]{同志们,辛苦了!} \stopstandardmakeup \stoptext context-modules-20240428/doc/context/third/context-notes-zh-cn/src/13.tex0000644000175000017500000003162214411653175025030 0ustar hillehille\chapter{幻灯片} 现在你已经领略甚至可能全部掌握了 \ConTeXt\ 常用的的排版元素,若不使用它们而是依然使用 Microsoft PowerPoint 制作幻灯片甚为可惜。如果你已决意使用 \ConTeXt\ 制作幻灯片,你会发现,你几乎不需要再学习多少新的 \ConTeXt\ 命令便可随心所欲地制作清新质朴的幻灯片了。 \section{纸面尺寸} 纸面尺寸是每一页的打印尺寸。至此为止,本文档之前所有的示例,在 \type{TEXpage} 环境里的,纸面尺寸取决于文档内容的多少,而在 \type{text} 环境里的,纸面尺寸默认是 A4,即 $21\,{\rm cm}\times 29.7\,{\rm cm}$,如果你需要将该尺寸换成 A5,只需在样式文件中作以下设定 \starttyping[option=TEX] \setuppapersize[A5] \stoptyping 制作幻灯片通常不需要太大的纸面尺寸。\ConTeXt\ 提供了 S4 尺寸($400\,{\rm pt}\times 300\,{\rm pt}$),可将其作为幻灯片的纸面尺寸。也可以自己定义纸面尺寸并使用,例如 \starttyping[option=TEX] \definepapersize[foo][width=640pt,height=480pt] \setuppapersize[foo] \stoptyping 实际上,纸面尺寸仅对排版结果的打印很重要,倘若只是在计算机(或投影仪)屏幕上观看排版结果,我们总是可以通过调整正文字体大小去应对过大或过小的纸面尺寸,但是纸面尺寸的宽高比例,对于屏幕非常重要。通常,幻灯片的宽高比应当与屏幕的分辨率相适应为最佳。例如,我的屏幕分辨率是 $1600\times 900$,那么我要制作的幻灯片页面的宽高比也应当是 $16:9$,故而纸面尺寸可设定为 \starttyping[option=TEX] \definepapersize[foo][width=640pt,height=360pt] \setuppapersize[foo] \stoptyping 现在,我们可以制作幻灯片的最原始的形式: \starttyping[option=TEX] \usemodule[visual] \definepapersize[foo][width=640pt,height=360pt] \setuppapersize[foo] \starttext \title{\fakewords{3}{5}} \fakewords{50}{100} \stoptext \stoptyping \midaligned{\externalfigure[13/slides-1.pdf][width=.6\textwidth,frame=on]} \section{页面布局} 在 \type{text} 环境之前添加以下代码 \starttyping[option=TEX] \showframe \stoptyping \noindent 可在页面上显示当前的页面布局,结果如图 \in[12-layout-1] 所示。可根据图 \in[ConTeXt-layout] 理解页面布局中各区域名称和尺寸参数名称。 \placefigure[here][12-layout-1]{\ConTeXt\ 默认的页面布局}{\externalfigure[13/layout-1.pdf][width=.6\textwidth]} \placefigure[here][ConTeXt-layout]{页面布局注解}{\externalfigure[13/ConTeXt-layout.svg][width=.8\textwidth]} 使用 \type{\setlayout} 可对各区域尺寸进行调整,例如让版心居中,即图 \in[ConTeXt-layout] 所示的 \type{width} 和 \type{textheight} 确定的区域居中,因为在默认情况下,它有些偏左。我们已经知道,页面的横向尺寸是 640 pt,按照以下设定便可将问题解决: \starttyping[option=TEX] \setuplayout [leftedge=0pt,leftedgedistance=0pt, leftmargin=80pt,leftmargindistance=10pt, backspace=90pt, rightedge=0pt,rightedgedistance=0pt, rightmargin=80pt,rightmargindistance=10pt, width=460pt] \stoptyping \noindent 上述设定,实现了页面布局中页面总宽度值 640 pt 的分配,但是要注意一点,\type{backspace} 的值等于 4 个以 \type{left} 为前缀的参数值之和,虽然在设定了它的各个分量后,但 \ConTeXt\ 在遇到默认的 \type{backspace} 值与实际的 \type{left...} 参数值之和不符时,会根据 \type{backspace} 值进行页面布局。倘若我们不关心 \type{left...} 参数,即 \ConTeXt\ 默认对页面左侧留白区域默认如何分配,仅需要让 \ConTeXt\ 知道 \type{backspace=90pt},则上述代码可简化为 \starttyping[option=TEX] \setuplayout [backspace=90pt, rightedge=0pt,rightedgedistance=0pt, rightmargin=80pt,rightmargindistance=10pt, width=460pt] \stoptyping \noindent 还可以进一步简化,因为 \ConTeXt\ 对 \type{rightedge} 和 \type{rightedgedistance} 赋予的默认值原本就是 0,因此有 \starttyping[option=TEX] \setuplayout [backspace=90pt, rightmargin=80pt,rightmargindistance=10pt, width=460pt] \stoptyping 如果我们只关心版心的横向居中问题,并不关心左右留白区域的尺寸,最为简单的布局方式是 \starttyping[option=TEX] \setuplayout[width=middle] \stoptyping 以上设置的是页面横向布局。对于纵向布局,存在与 \type{backspace} 类似的问题,即 \type{topspace} 的设定。\type{tospace} 的值是 \type{top} + \type{topdistance},但是在 \type{\setuplayout} 中只对后者进行设定是无效的,必须先设定 \type{tospace},然后再将其值分配给 \type{top} 和 \type{topdistance},或让 \ConTeXt\ 自动分配。 对于页面纵向布局参数,我要去掉页面顶部和底部留白,只需作以下设定 \starttyping[option=TEX] topspace=0pt,height=middle,bottom=0pt \stoptyping \noindent 现在全部的页面布局设定如下: \starttyping[option=TEX] \setuplayout[width=middle,topspace=0pt,height=middle,footer=40pt] \stoptyping 完成页面布局设定后,别忘记去掉 \type{text} 环境之前的 \type{\showframe} 语句。此外,我建议你在 \type{text} 环境里动手试验一番 \type{\showlayout}。 \section[slide-fonts]{字体} 在 \ConTeXt\ 使用汉字字体,对此估计你已经颇为熟悉了。在幻灯片中,我使用以下字体: \starttyping[option=TEX] \definefallbackfamily [myfonts][ss][latinmodernsans][range={0x0000-0x0400},force=yes] \definefontfamily[myfonts][ss][simhei][bf=simhei,it=kaiti,bi=simhei] \setscript[hanzi] \setupbodyfont[myfonts,ss,16pt] \stoptyping \noindent 上述字体设定并不完整,尚未设定衬线字族和等宽字族,这些待需要时再予以设定。 \section[regular-style]{常规样式} 首先,消除 \ConTeXt\ 默认在页面顶部设置的页码: \starttyping[option=TEX] \setuppagenumbering[location=] \stoptyping \noindent 幻灯片通常不需要页码,即使需要页码,默认的页码出现的位置和字号皆不合适。 设置行间距为 1.75 倍,即 $1.75\times 16\,{\rm pt}$: \starttyping[option=TEX] \setupinterlinespace[line=28pt] \stoptyping 以下代码设置了了第 1 级列表样式,(1)定义一个新的列表项符号,将其设置列表项默认符号;(2)消除列表项之间的额外间距;(3)列表项的符号和内容之间插入 .5em 的间距;(4)列表前后各空 1/4 行,因为在幻灯片中,纵向空间颇为珍贵。 \starttyping[option=MP] \startuseMPgraphic{square} path a, b; a := (-.5, 0) -- (-.5, .5) -- (.5, .5); b := (-.5, -.5) -- (.5, -.5) -- (.5, 0); for i = a, b: draw i scaled 10pt withpen pencircle scaled 2pt withcolor darkred; endfor; draw (0, 0) withpen pensquare scaled 4pt withcolor darkred; \stopuseMPgraphic \stoptyping \starttyping[option=TEX] \definesymbol[10][{\lower.15ex\hbox{\useMPgraphic{square}}}] \setupitemize [1][10,packed] [distance=0.4em, before={\blank[quarterline]},after={\blank[quarterline]}] \stoptyping \noindent 如果你还需要二级、三级列表,可参照上述设定制作适合的样式。 将幻灯片一级无编号标题和有编号标题均设置为居中对齐,字号级别为 \type{b},颜色为 \type{darkred},前后各空半行: \starttyping[option=TEX] \setuphead [title,chapter] [align=center,style=\ssb,color=darkred, before={\blank[halfline]},after={\blank[halfline]}] \stoptyping 现在,在 \type{text} 环境中随便写点什么,察验上述设定是否起效。 \starttyping[option=TEX] \starttext \startbuffer[foo] \chapter{蒙} 亨。匪我求童蒙,童蒙求我;初筮告,再三渎,渎则不告。利贞。 \startitemize \item 初六,发蒙,利用刑人,用说桎梏;以往吝。 \item 九二,包蒙,吉。纳妇,吉;子克家。 \item 六三,勿用取女,见金夫,不有躬,无攸利。 \item 六四,困蒙,吝。 \item 六五,童蒙,吉。 \item 上九,击蒙,不利为寇,利御寇。 \stopitemize \stopbuffer \dorecurse{10}{\getbuffer[foo]} \stoptext \stoptyping \midaligned{\externalfigure[13/slides-2.pdf][width=.6\textwidth,frame=on]} \noindent 上述代码使用了 \ConTeXt\ 的 \type{buffer} 环境和循环宏 \type{\dorecurse}。所谓 \type{buff},是一个可以设定名字的缓存,它可以包含 \ConTeXt\ 排版代码。\type{\getbuffer} 可获得指定名字的缓存中所包含的全部代码。\type{\dorecurse} 可以将其所含内容重复指定次数。上述代码所产生的效果是生成十页内容相同的幻灯片。 截止至此,我们第一次在示例中使用有编号标题。对于 \type{\chapter} 建议在幻灯片样式中增加以下设定,将其数字编号更改为中文编号,另外设置编号不参与对齐,亦即只有标题内容参与对齐: \starttyping[option=TEX] \setuphead[chapter][conversion=chinesenumerals,alternative=inmargin] \stoptyping \midaligned{\externalfigure[13/slides-3.pdf][width=.6\textwidth,frame=on]} \blank \noindent 如果你还需要二级、三级标题,可参照上述设定制作适合的样式。 \section{页脚} 在 \in[regular-style] 节中,我关闭了 \ConTeXt\ 好意提供的页码。因为我希望页码出现在页面的右下角,且除以总页数,以便清楚幻灯片的进度。 \ConTeXt\ 提供了 \type{\setupfootertexts} 命令,可以在页脚左、右区域放入文字、盒子或图形等内容,同时提供了 \type{\setupfooter} 用于设定页脚区域的文字样式。另外,\type{\userpagenumber} 和 \type{\lastuserpage} 可分别用于获取当前页的页码和最后一页的页码。基于这些命令,便可实现能够表示进度的页码。例如 \starttyping[option=TEX] \showframe \setupfooter[style=small,color=darkred] % 页脚左侧区域为空,右侧区域放置用于表示进度的页码 \setupfootertexts[margin][][\hss\userpagenumber/\lastuserpage] \stoptyping \noindent 结果如图 \in[页码进度] 所示。 \placefigure[here][页码进度]{第 4 页幻灯片}{\externalfigure[13/slides-4.pdf][page=4,width=.6\textwidth,frame=on]} 现在,我们已经有了一个基本可用的幻灯片样式了。倘若使用刚学过的 \METAPOST\ 语言,琢磨一下,给幻灯片增加些许不庸俗又实用的装饰,也许会让人觉得你的幻灯片颇为用心。 \section{进度条} 现在,我们放弃使用当前页码除以总页数的方式表示进度,而是颇为用心地用 \METAPOST\ 在页面底部绘制一个进度条。实际上,用不了几行代码便可实现: \starttyping[option=MP] \startuseMPgraphic{processbar} numeric w, n, s, t; w := \overlaywidth; n := \lastuserpage; s := .5w / (n + 2); t := \userpagenumber - 1; path p; p := (fullsquare scaled \overlayheight); pickup pencircle scaled 2pt; picture q; q := image(for i = 0 upto n - 1: p := (p shifted (2s, 0)) randomized .5pt; if t = i: fill p withcolor darkgreen; fi; draw p withcolor transparent(1, 0.5, darkgray); endfor;); draw q xsized w; \stopuseMPgraphic \stoptyping \starttyping[option=TEX] \defineoverlay[process][\useMPgraphic{processbar}] \setupfootertexts[{\framed[frame=off,offset=0pt, width=\makeupwidth,height=.8em, background=process,empty=yes]{}}] \stoptyping \noindent 上述代码唯一需要解释之处是,当 \type{\setupfootertexts} 只有一个参数时,该参数的值会被安置在页脚的中间区域。所构造的进度条效果如图 \in[processbar] 所示。 \placefigure[here][processbar]{第 3 页幻灯片}{\externalfigure[13/slides.pdf][width=.6\textwidth,page=4,frame=on]} \section{封面和致谢} 幻灯片的封面和最后的致谢页皆可使用 \type{sandardmakeup} 环境制作。例如 \starttyping[option=TEX] \startstandardmakeup[align=center] \ssd \color[darkred]{如何用 \ConTeXt\ 制作幻灯片} \blank[2*line] \ssb 李某人 \blank[line] 2023 年 3 月 28 日 \stopstandardmakeup \stoptyping \noindent 结果如图 \in[cover] 所示。 之所以使用 \type{standardmakeup} 环境,是因为它是完全的空白页,且不会参与页码计数。 \placefigure[here][cover]{封面}{\externalfigure[13/slides.pdf][width=.6\textwidth,page=1,frame=on]} \section{不要太刺眼} 白色背景,往往过于刺眼。我们可将幻灯片背景色设置为浅灰色: \starttyping[option=TEX] \setupbackgrounds[page][backgroundcolor=lightgray,background=color] \stoptyping \noindent 结果如图 \in[slide-background] 所示。 \placefigure[here][slide-background]{浅灰色背景}{\externalfigure[13/slides-finished.pdf][width=.6\textwidth,page=1,frame=on]} \section{小结} 本章仅介绍了非常基本的幻灯片制作过程。一份精致的幻灯片样式,值得你用心设计,但是切记,不要喧宾夺主。质胜文则野,文胜质则史。孔子说,好的幻灯片样式,总是是文质彬彬的。本文制作的幻灯片示例,路数偏野。 context-modules-20240428/doc/context/third/context-notes-zh-cn/src/04.tex0000644000175000017500000002422314411653175025027 0ustar hillehille\chapter[post]{让文章有它该有的样子} 走出新手村,我们的第一个任务是,让一篇文章有它该有的样子。什么样子呢?至少要有标题,有作者信息,还可能有次标题,次次标题……还要有页码,当然最重要的是,要有段落——新手村里我们的老朋友。对于大多数文学创作工作者而言,这些已经足够了,这就是一篇文章该有的样子。至于科技工作者通常所需要的列表、表格、插图、数学公式等形式,是在文章该有的样子的基础上进一步的构造,现在不必急于理会。 \section{标题} 在 \ConTeXt\ 中,标题分为两种,无编号的和有编号的。每种标题又分为诸多级别。无编号的标题,级别从高到低,排版命令依序是 \starttyping[option=TEX] \title{...} % 一级标题 \subject{...} % 次级标题 \subsubject{...} % 次次级标题 \subsubsubject{...} % 次次次级标题 ... ... ... \stoptyping \noindent 有编号的标题,级别从高到低,排版命令依序是 \starttyping[option=TEX] \title{...} % 一级标题 \section{...} % 次级标题 \subsection{...} % 次次级标题 \subsubsection{...} % 次次次级标题 ... ... ... \stoptyping \noindent 应该不难看出两种标题各自的次级标题降级规律。不建议使用级别层次太深的标题,否则会让读者觉得身陷迷宫,通常前三级标题足够使用。若是写一篇散文,标题只需要用 \type{\title}。若是写一本小说,只需用 \type{\title} 制作书名,用 \type{\chapter} 制作章名。 \section{写一篇散文} 示例 \in[zaoshu] 虚构了一篇散文,我只给出了关键的源代码——为它构建完整的可编译的源代码,对你应该不是难事。该示例设置了段落首行缩进距离,并且使用 \type{\title} 创建了文章标题。目前尚无作者的名字,因为它会导致你无法看到 \ConTeXt\ 标题之后的段落,首行是不缩进的,这是西文的排版习惯。在使用标题前,只需对标题作如下设定,便可强迫 \ConTeXt\ 必须对每个标题后的第一个段落进行缩进。 \starttyping[option=TEX] \setupheads[indentnext=yes] \stoptyping \startsample \setupindenting[first,always,2em] \title{鲁迅家的后园} 在鲁迅家的后园,可以看见墙外有两株树。 一株是枣树,还有一株也是枣树。 这上面的夜的天空,奇怪而高,鲁迅生平 没有见过这样奇怪而高的天空。 \stopTEXpage \stopsample \sample[option=TEX][zaoshu]{散文示例 1}{\externalfigure[04/zaoshu.pdf]} 现在可以为文章增加作者信息了,虽然他叫无名氏,见示例 \in[zaoshu-2],只是作者距离正文太近了。不要尝试使用一些空行去增大该距离,因为 \TeX\ 引擎在遇到多个空行时,它也只是把它们当成一个空行,并将其视为 \type{\par}。 \startsample \setupheads[indentnext=yes] \setupindenting[first,always,2em] \title{鲁迅家的后园} \midaligned{无名氏} % 省略了正文内容 \stopTEXpage \stopsample \sample[option=TEX][zaoshu-2]{散文示例 2}{\externalfigure[04/zaoshu-2.pdf]} 在版面的竖直方向,段落之间,或标题与段落之间,或标题与标题之间……增加空白,通常可以使用 \type{\blank} 命令。例如,在作者和正文之间增加一个空行的距离,只需 \type{\blank[line]};要增加 $n$ 个空行的距离,只需 \type{\blank[n*line]}。 \startsample \midaligned{无名氏} \blank[line] % 省略了正文内容 \stopsample \sample[option=TEX][zaoshu-3]{散文示例 3}{\externalfigure[04/zaoshu-3.pdf]} 倘若需要将标题居中,而非默认的居左,只需使用 \type{\setuphead}单独为 \type{\title} 设定样式: \starttyping[option=TEX] \setuphead[title][align=middle] \stoptyping 若汉字字族里已经设定了粗体,也可以将标题的样式设为粗体,并指定它的大小级别: \starttyping[option=TEX] \setuphead[title][style=\bfc,align=middle] \stoptyping 示例 \in[zaoshu-4] 将上述设定综合起来,排版结果已经中规中矩了,只是标题里的汉字的分布有些疏松,这是 \type{\setscript[hanzi]} 命令在汉字之间插入的粘连的伸长特性被 \ConTeXt\ 激活导致的,而它们之所以被激活,大概是 \ConTeXt\ 过于追求精确文字居中对齐而导致的,令 \type{\setuphead} 的参数 \type{align} 的值为 \type{{middle,broad}} 可以让 \ConTeXt\ 在文字居中对齐方面宽松一些\cite[contextref](p86),结果可让汉字的分布变为紧密,见示例 \in[zaoshu-5]。 \startsample \setupheads[indentnext=yes] \setuphead[title][style=\bfc,align=middle] \setupindenting[first,always,2em] \title{鲁迅家的后园} \midaligned{无名氏} % 省略了正文内容 \stopsample \sample[option=TEX][zaoshu-4]{散文示例 4}{\externalfigure[04/zaoshu-4.pdf]} 不知 \ConTeXt\ 从哪个版本起,有了一个新的对齐方式 \type{center},它与 \type{{middle,broad}} 等价。请记住这个知识,因为以后可能会经常需要设定居中对齐。 \startsample \setupheads[indentnext=yes] \setuphead [title][style=\bfc,align=center] \setupindenting[first,always,2em] \title{鲁迅家的后园} \midaligned{无名氏} % 省略了正文内容 \stopsample \sample[option=TEX][zaoshu-5]{散文示例 5}{\externalfigure[04/zaoshu-5.pdf]} \section[context-world]{正式踏入 \ConTeXt\ 世界} 新手村终究太小了,小到已经不太容易让你尝试越来越多的 \ConTeXt\ 排版命令了。事实上,真正的 \ConTeXt\ 世界用起来要比新手村更为简单,只需使用 \type{\starttext ...\stoptext} 环境取代新手村即可,另外,一切设置排版样式的命令皆可放在 \type{\starttext} 之前。在 \type{text} 环境里,我们通常只需要关心文章或书籍的内容。 以下代码应当有助于你看到 \ConTeXt\ 世界大致面目。它是完整的,亦即可将其保存为 \ConTeXt\ 源文件,使用 \type{context} 程序进行编译。 \starttyping[option=TEX] % 排版样式 \definefontfamily[myfonts][rm][nsimsun][bf=simhei] \setupbodyfont[myfonts,10.5pt] \setscript[hanzi] \setupheads[indentnext=yes] \setuphead[title][style=\bfc,align=center] \setupindenting[first,always,2em] % 行距:1.5 倍的正文字体尺寸,即1.5 * 10.5pt \setupinterlinespace[line=15.75pt] % 正文 \starttext \title{鲁迅家的后园} \midaligned{无名氏} \blank[line] 在我的后园,可以看见墙外有两株树,一株是枣树,还有一株也是枣树。 这上面的夜的天空,奇怪而高,我生平没有见过这样的奇怪而高的天空。他仿佛要离开人间而去,使人们仰面不再看见。然而现在却非常之蓝,闪闪地眨着几十个星星的眼,冷眼。他的口角上现出微笑,似乎自以为大有深意,而将繁霜洒在我的园里的野花草上。 ... ... ... \stoptext \stoptyping \section[style]{内容与样式分离} 或许你现在已经对每次排版时,会担心日后需要重复输入许多代码,它们主要用于设定排版所用的字体,标题的对齐方式、字体的大小粗细、段落缩进、行间距等。无需有此担心,因为任何一种 \TeX\ 都支持排版内容与样式的分离。 如图 \in[style-file] 若将 \in[context-world] 节中的代码中位于 \type{\starttext} 之前的部分保存为文件,例如 foo-env.tex,然后将这部分代码之后的所有代码也保存为文件,例如 foo.tex。让 foo-env.tex 和 foo.tex 位于同一目录,然后在 foo.tex 的开头添加 \starttyping[option=TEX] \input foo-env \stoptyping \noindent 最后,编译 foo.tex,所的结果必定与 \in[context-world] 节中的代码的编译结果相同。\type{\input} 是 \TeX\ 层面的命令,它的作用载入指定的扩展名为 \type{.tex} 的文件,但扩展名可省略。\ConTeXt\ 提供了 \type{\input} 等效且用法相同的命令 \type{\environment},以体现所载入的文件仅涉及排版样式的设定。 \placefigure [here,force][style-file] {内容与样式分离}{\blueframed{\externalfigure[04/style-file.png][width=.8\textwidth]}} 一旦熟悉了如何实现排版内容与样式的分离,在使用 \ConTeXt\ 排版愈发复杂的内容时,你的样式文件 foo-env.tex 的内容便会日益丰富。长此以往,你总是能攒出一些样式文件,供不同的文档形式使用。排版内容总是千变万化,但样式却总是寥寥数种且极易与他人分享,这便是 \TeX\ 的优点,但前提是,你需要清晰地理解你所设定的任何一个排版样式。事实上,这也正是学习任何一种 \TeX\ 系统的乐趣所在。 \section{页码} 如果你亲自动手编译了 \in[style] 的 foo.tex,应当能看到,页眉是有页码的,如图 \in[pagenumber] 所示。这是 \ConTeXt\ 默认的页码样式,即页码出现在每一页,且居中位于页眉,这并不合乎中文的排版习惯,需要对页码进行样式设定。 \placefigure [here,force][pagenumber] {页码}{\blueframed{\externalfigure[04/pagenumber.png][width=.8\textwidth]}} 首先,文章标题所在页面,通常不需要页码。该要求,只需在标题样式将页眉和页脚置空,即 \starttyping[option=TEX] \setuphead [title] [header=empty, footer=empty, % 应该还有其他设定吧 ...=...] \stoptyping 然后,修改页码投放位置,例如放在页脚右侧: \starttyping[option=TEX] \setuppagenumbering[location={footer,right}] \stoptyping 将上述设定酌情添加到样式文件里,然后编译 \ConTeXt\ 源文档,查看其效果吧。日后,倘若是排版书籍,还需要对标题和页码样式的设计作更多的调整。 \section{小结} 现在,你已经可以用 \ConTeXt\ 写日记或随笔了。倘若动手尝试了 \type{\chapter},你甚至能用 \ConTeXt\ 写一本文集,只是风格过于朴素。若想让排版结果更为精致,\ConTeXt\ 博大精深,通常总有途径能够实现你的想法,前提是你需要更加用心。\TeX\ 之父 Donald Knuth 曾有一言,「我从来也不期盼 {\TeX} 会成为某种万能的排版工具,用于制作一些快速而脏的东西;我只是将其视为一种只要你足够用心就能得到最好结果的东西」,引用于此,与君共勉。context-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/0000755000175000017500000000000014613513621025516 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/12/0000755000175000017500000000000014613513621025740 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/12/watermark.png0000644000175000017500000021447614411653175030466 0ustar hillehillePNG  IHDRSY;sBITOtEXtSoftwaremate-screenshotȖJ IDATx}ytǹH,v(-MIMӦi{n4綷mmڒ&i!%)r!,,& $][eɖEx;̷X6^d<>hwޙF<﫨# ʹ6cVO>@cP(2/໏c0z=988d Q(~S*2}wz!㛐Cf6S(RS:2xFGGsssgr{D㻏c!}w0\J}|eMง?ɼw A1'\A䃟! cE-88f~f 88}]S-88fݧ$l!Hiw~!S79w1Cw>88f۳k};v1Ci'}3osppLdvʼq{q㎧shǽ vΚ% O;1kO;98888O>~qpppp,,𓏃ca| XX'?88888O>~qpppp,,𓏃ca| XX'?88888O>~qpppp,,osmBD{{+Wjkk?bbbzzz Ųy悂6c:O>I<<\1'<@WWWKKKww\pȑ6c:8pL^{mXxꩧO>~qpppp,,𓏃ca| XX'?88888O>~qpppp,,𓏃ca| XX'?88888O>~qpppp,,𓏃ca| XX'Bk8svwyGX~ر:u?ro}??,Xuܹz(??o޽FFF~߾###nӟN{Lyǧp}j43n|Q UUUgϞ%2N޽{euEgy -~y^3:::44rYu``~2oiXz?#77k_ѣGoδa+W|w%%%}T*շmnڴizm<|, c6a4U*U@@BgiiiN344n GFFT*d2juwwdR(Vuxx޲X,z>11XRtPL_/]kkkBBk#obq8P٩v{FFF{{Nz*t ז:ΔBc9wܮ]"##|±1T]]P( N/..V:رc`{{{{{{IIZnnn舉QTJK.\di0ꘘ4`ttL=x :Gggg9shii 鉎{{28<YZZa0"## 6PƼ{iiinZl6x~{nZ-|cJ6oLQ(}^xn3;::\PZZzƍW655F͛7{zz>7OrHxxx}}=!䣏>JOO'9sf'Nꊊ*..Ʒ!#886>}D;Р\ޤ'O,Ntn NZQQQNN|Tű%''B蝹rñGWXhV^ /f$::(00P@ti=񌌌QF^xO}Ly.jE3>oyxx8 ୷"\pK_5k׮}뭷V\?/FDDuwwo|ԩSO^zO8QVV/c7n8p?)|+__֭[}۷k42x}%Kyx?L)cs=z|O?T}ɗ===;cJ݉9}R/S2:: HZ =h&  >|XfttNkllJBɘ:ci{d87#ZYf0'>'B333x%%%?P)Z?o0ٳ緿͛SRR!߆vxukjjSrz¦Kbbb緿]C(%/|`E¯\P(D7)((HԶ'|j>S26פ333j2i2NX2eSORYfIcnl;}t[[۩Sw- 9rRZZبh.\PWWgX'O޼yŋhѢ?W^q:/_njj*++t\[lgϞxgϞ%KvO?j .$$$헔@pxxn $\|]P477⋣312@@@ZZ)g=> 5iC<}oo5Ϳ{ .Hv&-~```||x<(0R@= z)Doo믿k4rd??FL ww^!jkk'PN}mE;*ڽ,5×i!L&onT xBOwuuݺu+;;{_z\SJE(q 푁){j@N灘>>>ʁ\BÇӁ uH !mmmFnƠPjl6'$$C#Xٳ4\y ܃eF :aͣ> .^uwwз04ɤZ jn[Ly<5 111a2M?SSSA@>EGG<ʠ@zt񦿨f<׾-[|(UۿΦm#1 6X,d3<~K.A5}߾}ﯮF?H#QC W>332|}"B:t = !F> -d:b| / ###Q5arrrNeE4 B.lݼƽvчYrdP@N^둡 !Vb@SEEEP 5qg{ Fh>CG>Xh>h!P}(*`Qoz<xЮCРܹU#X#j!eR hV}0HLLFPj ?PÖ裏εI ^ReQ3d{<R :rȞ={N8~/=B` +y<Z-l6/R]0#bڡV}P:oE滓7%l-.hDR ߚ>~qp9C3m$BQc$Oؓe6y~qp,,}с:4 40/&0{M0!&3!` 'Bm=PRRR_ʕ+[LVUUݸqCj/UCjjZ}G:;;ty!BO>`hmm=|ҥKcbbd26$L@|ii)&K;裏B#)%do@ J:vخ])BCC@b3zzz!I="W~#wJ'hF@@@vv6J@aV* DžPi~yvQzƮ]vNB׿fY*`(++Ȱl 䎘e<)y|qq1GR;vqQ&cLI'K._ @B-Ă΄@m6Z*Nb@+@; gϞEBttF`P˖-C(NիCBBvܹm۶B'pĀj(AfXpt###ty! BӔ}CFT X!pIXX'J0"2Ak -#&_)]5bPQ*.NS<::TXXhZ~^x2ɧX,555@_8 wR ?SLx^-ݱD/Z.lNRQ'3L}~Wè}1C)3D$ ODHX>l[l{駥Uz+ (t#pUO>)Yet:'*0-J>'c?Qr,L2 9;vF;'oǏC*Bm;=Z,^yJTZhLо'l Gjvp=UqҡV֭Alq}ü[pP~&Ќq,_M8 5DN207Q^5t18 Dۄ[&ָ09!\|w!(oVE'&&Rn ځ~3ƄG2/Ee'rCccc0yyycV$×%''3E[a<@LU즪*X_BnsW_u l2Zڵkϝ;dIYp8<ǎ[jj 3ȼ=HgQ_~=<])-jiii0벷7//k0.rLL Ea||\cVE 8;|(vŋ=(*~ff/l@b/Q^0[, .]Hw /CU`)JG43uȝaH% Yr9T-lX78AcӜoz^},afZ6 gz í饗6LAyy9N *h=UG?^\E ?...88y!gw[d Gjj*3 2cergN7GeI#'Ees*8&訮^w9S5yŰUUUnZQ-ґE#Z.Jw f*F~[#F=LVN-KAAى,*ЖCGw u 铺o#qߕWD j X FKa\[]O: />v;|0~>QPP \[BEu%%%t|qLo#gH`0 KKK|"`u+J>}=saTi~-#Й,6FLzPP~С h_gȐˡFsBǹl#׌i |NۄY<.<@%"P0\yM}C6A8 .@eO/az}2l f]­!ܤٱvR7ɟ17'_DDNYd"\hQ>=V5'bwvvBs4jŠۃTq)))_ן{h%4GbwLhF300@{Pgڙ4SZʚP 5>jHځ ]k{Da B;]!>d`fPX<=y^KBÕ7 j1~Цpv6Ψܝhd5̐[Ch̒%KpC5\DL ucHs휚@k;at(X-3aS(,=X ݏT % G!gZx0]{xN~f}xD)CJ"CO;9wAMf?~Q5" `!ٽB~6I@恁4 G IDATe/_ƭiF1 iooonnb8􃃃===HЧ9H/--TR¤$LA7Vi0Jz'Hㅬ]Є~{ jE !ٽ ?[IF"sp,4 UJb6Al奥t^(H4n4pLҩ###t:?6 @MaENx!k01${ss" 3^J+$` sZ?|J88Tu:=% 4PlL5 EGTtSavfiZQ3^ZxBV{(OC,IFT*LF 0qï­D|90 ?Dj@___/raR G$%a~d.00.pE* !_h^l6@n߼y=6Lp+=S{H^r{o{D:Rԑ7[SO1F /AY?zg ^wFUxB\.׽GN9.X:uϋpdddR)4# [;xdd*,,ėH(`h#:H'xzzzr;Fhx㍉G&w[ ps|/_\SSSPPuֻc6᱆FUV8]:z'y~{MyО_o߾|PTC "S g9ś7o&߿?44vԔi4 DD( 3  |@~CZ#1.yjjj^^03jN;vRL&ZY1lttt4T̨k {WWbX"##;;;u:t׮]۵kWqq1'ZTBǏCfxkh4bn . Ul6R ! Jeuuuyy+W- *F|+W4HJgBrUp8"dҊN(aa.t:]KKˎ;F#z^ |5_XXHG 7 _jVVVbb={oݺ^SS388H1 W^%@cϗԡ7lii!L[nuuu練ܺu :✜hZÚyyy… %1'hii C^SX@h9X[WWw-4ƍgϞQC#o\UUeZ[ZZ_i0.sI05//N|̘gb8(̹s6EA,SR}Zt2qDžے^.x˗;T6 avE"W(-;///44W^imm h4.] 5===Pq5MEEĭBxLxF7)^zuHHHPPΝ;mVXXXv& pĀHI[63}hkk3 F144ԉHF#V_XP4 IPF%&J{:]d Xݡ+V@MlpDĉ& ^\SFG놷TBw411ի555f9&&f```||tU: cclh6ri*=d&5:KjB sqfbax_&?G C```dd$O`)Ƃ!&&6npzՅ8 .,^XÖkB㫪dƍZ6$$$ ֭[7o޹s_׸8:`<cg _|Ez'`zɀ|۷STXX Vaoݺ "l6 "11h4Pw'xݻwB׿+qqq& ={?;v ^s_)CQzellytuu-^v322QLvBWϣ2ff7BBBD+dffFDDB***N'nhh3>LKx>!_'Q^bijjYBcǎ6Ww/}9Rnwyy[Eumڴ =B@_ _܈{~tĉJ@>)Ihh`k`Ӿf@^Cك eU^^hcѣB9Us؂a ۍ.9L٫X5/07Ǐ JrssEIȼm&z)>AZdW^y%/طo_qq1?&E/Gyk֬3mhh碄^?:::>> Tf)3|AN722)71N5DN_Ußg~n2:.RJû #`0A0JJXilltW^񕕕j"BHZݍ|zTƶEDD@T ̈́ǎ۵kjUUU`jJJ D].Bp8788|/|"zǟ8q{)JZI`lnȏ.q\ @DPl6t\ 83Cm/[n;;;VDbjHKKKIIAu1n}GG2 !V{E2=*%Z9<|DyBHqq1*Q C/ۇߐ]xxǯ^VWW/GFFSRRv;ךL7o޸q@1 l0L^, NЁ2F8Ťطo_uu[O~r), 2 "WY4#bT*1AN@-xb9ɽ8f #h#]T bZZMQ^d -ot5Ft:M&SYYY___CC|{#8~rl2'DEEy<8{^+Nm1Rf\ʂP"~t a셖vŁU"o17^=44j(!bg+;vdz\fc4m6^(fVkXX )`n &1_җm6|a 6-22233sƍ[A=?o_v-<<\vww_z5++^TTT\2""̶l@Jr\Rcp[nлm6 Nh228)jͿP}g ?U222~@ M'w]QF>ju!4 ?яP~PXXO8qizNH0 H/ M]__c -[О|IBȶmRSSaa6 EEEcccl6 Y,0 ]``N# JBBbbҽhǷhk'&g~ RMhDx ]iVh?!gll ~UJgffB kGUU3+WbH3Ԕ0F`vЙQhГ\%0-" 577wvv"vo퀸PF3PO򘚟e;/dU;0 5swuu0YVZR&wIlݺUxMs+{L "> U hѢ('@0;;;))izl吆ߩS?Ld#all bJ{iii[nڱGYr%o||(?J4yz-L3I4h 1f*ػw/|z{{KKK?,Ǐ}L zyII6'UC^^dL4O_J͛71?fo@łR8rȪU׮]с{=g3DFF磵@| VV@k}}}43mGIF{{{]]]ccc]]B@ǫj9dee}'!P(X,.pfLk׮bccAPZZt:Vkffhoo/)) ݈pSSSj#< S\VVnQTL@X„Bh fy;'UV2'@|@p\n݂|b{w JtR&T[[0BA kyuBKLL'hB<?fikC R _y/̓7i DA_qԱnݺ\cnx˗/ f7. 2w杞yHE!ߧB-nBCC7n822"%ۘCf y^۝لtL !ZX,z>11WVVf H)p(c%P 2<`Ν۵kWdddUU'|˕JZ111ѭ PtJP jdT*Frܺu+==;h$ǡB8x :Gggg9sU%!:: XL(EAAqfYK| bj@:Ms&4zy pz=MЧ%^t)r~uh04LgΜ?w\}}0htL& kkk!k7&O 322B5O?q=-̈́_|PRd_;ӧO3vą$:@A\\\\\V-**jmm5 {OOOXX mnnc&I E-f.]Hfee8qB8V ܙ-AƱ R.:?.Ep.i70ǏÖ3 #y@څ׊9~ddNG@7yI$Q^^ׯ?ZnrJ. 577Ba/HeBxw! IDAT`jeFikk6v=%%58}qfKC#\9<=@GFF._\[[kZQlojjRTYYYUUUaͣ(,/mmmqqq:- d2t:\Εdۇ!j ᭭a2M?SSS,0RѤѓ!Q5B×/_сd_ֈGBŭeRoU, 4I,S]\ڿo 14к_AcfxK:Z7tz9︸+Wz|F۫ Ԅ(!!!h0$78˙@I+:n\СiK~KKK8Rfccc7l`Xz,3K.A5A}߿gْCdffVoZKKKO: !|'&2::!F> #똡A#L.nrrr/_|QL !?_2MBP!^3y9 h E/ !&##f3iVhFx14b)~0t }_t:GGGN'7o޼jժ%Kq`0K'ZK:<R,A/YVlnnFƶt\Zl6V4 }ŊPshHE'fiZ `fB{܎a0fLz8g2-zd3ˌbZ- 4UTTPc3>s9998̖FfFᇄ|}344TSS3::k6;;;!.3v,QCgom6[XXXZZ15(|%2M?=0wNHi"bːff !δ넾}W* 2q7%sQ!<J%/[a 4^oCC<3aaÆ:6FFhLa%P7s&%Do^h4pBXlYzz:^8F Z[[%K_~NgG2y{Gv[6l ZƬ,@~#|%PO dW5.FFF 腡k׮e֡F VXt:>b,c[j2N8QYYӥ eh~cޢ9Sa+uH5ͣCˌH2DRegg+.Bȇ~x^F~@DEJY2X[!>:pC GfUO>dp:׮]ݘMMM[n˓B>snhh%* z䗿+WKMFUM;nnT ӟ~%''v=88Hz<bq` K6@Rzqsss(=>>~dd|tuuuuuFFF*'w~ZR&$;vl׮]. UUU@ h!%%% ]P($$$`FB0 d#m"#Ű`^> Ç㦓 L \(K;裏Otd  ]zVkXXXppp}}FЀvwVEzD+&_A__.WZ>A3@x2ZuuuccE4M``bONN6 P I= @OصknT(_a,K CYYYFFfȐR{{{'Q5`N$3ty"W 7TL&KSC}qf cHII_f 'wh0r=`5 _! BZ3˗Yj'Nn0-53~Vq`/tPۀdq|W9?m08/HۍN*c0,iP^l@ሉV;>?ܜ|?ON:e4333g˓e"Í\ARa|Kb!++K*;|/t:CCCѰh/^ʈ@hrEWh4EZ/FPZ 5%UUU377d2y/d[K!^' 18;P1y!u3nx__0{+EjYJ"鋦;VUUѿxA5+wt#\DߖHК0]UUEgx##l6L&VvsΡXít2/_l⁁|`00zFK9ׯR9@㹝,!jiii0벷UPn0qC*bYQczڵHFT 7(xô*/Fct;E&vwwә K$!["Exs )))//Ď} ?GEE /8͛7 v:3 !B$y0RV}v_dgB6ZH{p\s6..>x衇zzzx Юkjju:b-))a4zBB:3L\|)n@K/D<' iy # K>dz{{Ϝ9SXXH۹h"Zb ZM;[%TL,Y`\rAwZEgQ줭MJJILLlkk4aaa~aGGw榇1B :PTpڇ8ǘ§&:| "^\\li:R*dҒAbgr;17//Oyd aw޽{nHpeHe^` /Fzʕe˖4M_JVm6l-z= -kڍ7;պj*Bl˗/L&z:ZNn B=ҲQπB ^ҩhRQ{Q]@(3իWCMT\cLFIl6h5#""z}ll,f]].ג%K RfK2RZSS"blyBH<*(g?lLnoFȢȇl6[BB/^ ~p\}}}555 o!MA '2F@9993~휐>! Z",lyi2]/ZhÆ Lk\g}]Q1*jTwQ'DX.UGw-\|}rFnЀB BBCn'XJ8>a돏WUUuww .t!**J&KDX^lC_KGj"u>AAmڴ)""iS>Hy|22!n="w>QLHS(L@IBx1W/!΋먨M6 Xc)~WT24U6H~-]G+g=66p8,Yc2G&Ĉ^1Bw>>VDpfw4NI\N3C[pF!|ɌnAtOB] Z~fǻibfnYxeГ+c w]hD؍7|7(cG\W;;Ko޼i2Q nytt4̅gPyy9F ͹c170avֆhB,hu̱7 lzy=_ݾi&s:33R9dڷtӂ)8fJ^ _~e˖mܸ100P&1.]#L0)Bl|hh͛sIf|yy)$VTbWLtjŢiNLxawEEE'NHHHǏOHHP(999]]]I@œõNf@pmaa233 H***V.))QBVT,… RyЀQ0+VHOOZv>a֭4s2DGG=@tiLXvf.ED jʕ+މ'O@bxn_XM|"ܖfwC()>EzNNZrƋ/L&FٹJJJ<]B(0PKs:*HTk_z%GAnS0=#@ h2KmWTJJƍGv\fyddK.#5l 8ׂiA L||L(S>CY@^& cS4p! /w&622xWWW^^h,++Z<KOR Q~)5^nUrQ,:ɝT 5?\XnL&Ї2%%%(m6$A 0%ͪ7%c5H0 $Rp, IDATTpเbDnnڵk]biCXǻ@G$v>e6 O ؤHꂘ &j+;삐nZw@ 66vӦMqqqLyAĆ )p +Qfo%1bb%5-*P(6lؐ"ÇKo_p"y݁}y ޼k^4afC顏|i"Aw%1!$..n0߲1p!2 bn_KhIa`P V\y"S--t{ʕE Ao"߷E0"HILLf/,=BH|||UU?h`]WDYM+ܩAb.((dtww[,&js}[(^ >ŋU?  YI=Fx߿NE- 1Ow߾}EEE&M&^ojj+V@@eـp8@x(`U {$'0\}-`_(N`V~ "9fsGGPd huOOnZ%%%t|1i(Jٳgsrr2<<,ɦib3//I=J%ݻe=rX Ux",|>: !*j$~bbvcURRS__~wጌvܘ<*JE;ܚ -*_F3пLTfff:ii"@gi4C:Z28~C1~Gj޽{Z-`.\BBP .'%%%J Džسg/Ν;'H`+yD23*a hԵf۰a(*f@EbbbQQhQQt:}OYtx`%b[@v&~&:T"ZIkHG DhO=@&c>N4==< @Ii2(t2JeAl^/H'`0dPեKr V^}'xFQQZNII t*t9-]OZ88 'JR`;#= @𠇎PF]C (i-[ B JIIitNz(@ak׮ѽt_P*{h:M> GM~`oݺ@:9999'O4rdiiL&{g'T8FG)2(tYRAfh4~$gôv b%PXG3U.j]6;;[KЧi\^B̕!Q'O@hKII1 7o-nW:O9/f^#.9x>Dę ҷ0@ ^~a1d={V.9r$-- gdd(٩gNLLdfYLh4^zfXa|xiE9Y<x<.F@?-$+ A -fŋ@L@.vwwfgg|wu1pQ1<<r544<裵trP9tl<8T`ONNx'Nl6\(ƌAl^aE(yիWL&ł4fn]v:4 ҥK0_UUUN#99Y&!1))idd$==oΝ K:;;.DENd?<+A@Ȇ#{<+W@RR(]L@X3!{pŋ݃OTJiU iX6ς`sʯO8FtK'UY֭[n۶mPm߾} Ka+i$:3}MWZ544H#M ӀT4 &*;wiLF+~`(0d&&H#8!jKjE(h֭[Vm~3]f0 ̌L&N3̈́czS!ȋ]id:::z{{Y'P!Ⱦ~zzzhlkk#dlכe6aL@X3!pI\\'Lp"OMM%&$`< d)>0##˙t1drbb500088>{׿5m%/ڀ܂cɡƍ^>t[FdxBF-H%С dN 3<T*JZNNN.k``p\r ""t. &@bI@" ^ת72/NT219(P賂Xj X1XH'{ŜNN/^t\eeeOtxbbҥKk׮e8Glmmtt]k.Q}Ç777d0JY>z}[[L?:x`vvv~~>zɼ#0b˜q#$_x2>(Zc蕄`0xM 4'[^a5|>Rb͛fa 9 Cqqlt֭;~8v<#Y<֬YPi@2 }iJ>SkU*[o ;k4 Mn]@a^* U> jjjIRL&S\\xlz$TaB%p9 8$ЮIJJqs=wəѩ):Bz=+p vZp27aZX~;f~:"Օ]PPPVVp8K(p6`Ā 6NKKaN2Vb:3%Duõfw:yyyxi ;U, - j}:::`-f 3~|0>>G1Xs1gvN~9mrrCZՄrN"1?88 h1Z t:\s':! )|$f!0^`>QR/^=20Γ ")))??_"Ձp8O\<[;`@`1!Bzz^jGGGL4M___eeE0=`pɝз6L6 /dZ3334T+sڟ6X0%̠Ow 3l(< ^/-vm9(0} 4 lʕ_W333gB4MSS͛7@ O`t+aÆE eg?я9b2JJJ0DW@~ ZKK CƢ"Lf!uD Z 6l68r 0 .x"$!b`wiZ#& Z '---OZ<,IY4A=w3344fee8"0Ȉ644nvqhvJN̴e3cpT 4nACs-7X# A@'77W!ma[ (Awȃ)UH0hƒ+++PmQncJJL&!U:CZd&T.ܴ 6mڄ= bô0wK^ɻ!!j9\m\^XXuV|~ "Mf]rVDKCۜV*x v||>OLL: $L>)9صQ,PN8Kt1kjj III555mWW^E3+xŒcǎAwuu1ozn^Ess3!g>z{{KKKQ@F&a9suCshhhihh# EVa{&88݂8DBt:''''nw:###ʕ+Ƞϔ_ZVV l]]D;!$.. >cJ&w\-@n:`ˣd|O:unW0 i <AۼxŅ fggwܙj!6r|``@fee B&htlJ8M[0ї.] @|rnnL&KNNVT9S]]M6hZ·~%iov;^0+x 36mƒNٱcG84`0H/t[\>4= fDx撠0Od%fgg;g޺uZ"mi| *f577{^#F`ڵr%c+~| nڵkfG 3i46O?:y`nG_9#Pi9!dB _pmd@AAȈFtWGGGm6jx<_4⇦@7Ac&&-RBttt@@N2F388811l6b1 }}}5 Hmc4-G@I["^F+-`wf/0˗ ~m> Gأzȏ60Ԭ6nbd"Ag}gxad"!+PѸ\.d|G:DE NW\Mgeeyx0ˇ}ÂyB"6 f8 H:LpI1\b>|Yn#]Cjjj^^<8@ 5cS NѨP(0Ejjjyy9/W#xD&^B_ET-L6Da!/0twwd24=r|Æ \jZs*Lf͚ȧF"3P`CO󳲲접f~ EBQtt>(scMߖoD`PY,\.߼yrEVcb VX@ȝiKKKۺu E7n޼YWWow!=W!mO&)JE*v nOpv8 jFzٳuV7x㡇bvppT01xæti㼨Z v.K.EWveH pDS jZR900 bq7G؅KY,5\ Hf1]5jp 1KJJd2& ]JC3SNeF~?;8cccLxC"x1p`qxoɴzӧOqөV?t:VYi"s)Ρ7o:'NWcǎ566FGGOOOMMM]vf744BjjjNS C" IDATbQ*?b~uuuKKkjj`NNNoo͛7*B>Bߏe&&&mlmll~֭[L}]hz``~ݼyo?& c j/_|֭?M,C: |ǣRu:F?z(s`sL^.PL#幦Q 3k- 1a1K5Z Z̠1%W*=8\q:k6ɝq NLLj Z6LNh4^pɚ #֖?Kz{ԩl4::ZTTtҥ@ oпkeI ONJ@yzzNW~A6t:v]P[/3miiiUUU<@VVҚ6W\uXt"֭[W\Fqpp066vƍ xP(K-')"byZ@EBLsK/DImdyy9dfC0KZ̠1ŲWdffsl:}<ApXq|#''grrrddDVr ^r%++ΚM\#ٖrт/{o۶m---qqq֭?p? CIIɍ7~_fggo~S]]]YYyGyd޽v"?Oiii/bRR{n޽|_SNرn߾}Æ >apBeeeBB{/_~>S7|l6?x~q=jݻw?===?\VVߛЦL&`֮]+Q Dll JOO=tb?yC/O, q~pJiW˚-V>$M:dcc$SCvvvYYBd^a;CB`ss&wFCTTԦM M"V!ݖl ~:dYb4l۷/WQwnoiiafggWTT,?h :L OHpXcc#]Z/' n[2 EEE* h72L.gffLMMaa`lTYI7T*PP& ՇF\.OLL\b<|1LVPPip honnf1116mZhr<))iqZ^V7Z$8F1JbXUrbcci͜HHA S*7n促̴|6W'Q@p^r+X|M&[nΝweN~1No޼ Z Gd2~[Hn`Zr!5:o8mٙi",99СC0Ÿ~j;rH}}Ȉd­JЯP(222N4}<ttt\RKJ;w\:!.׬Ywr?Y844숐TajVO>䇈M) y BARYYYym18C}{lln \t)###!!aŊ&I755+V S(k3 @%XL39+{@ >!BnonnV*<A~G}/**gBfsGGB8{zzv;$dYzmD-t.l`jr:<0REEEzY`ngdd,Ԇ)󓒒 >v>s G?!dxxxzz:..\~fuvvVWW;v͛@-`vv9_Azzz %6 PV$6lK!l&YG)tbx-&f3 #77v`sX?W* A2LiJ  =5\y$Af+Wp4jjj~ѹEb&wFY~jMMMo@#`Uϟ6r &k׮ݻw"0P{.))Dx}q!8s !D> ֙P Ǚl6I8n3t ~<ɝJDW~-2cdO;WZ544JO@/_۴iSaa` ̴? 3|fDҴ@#ƌAx'!_1Kf >ΡA?pK"wҀE끒e_Vۼef 1ېnǹG!U__Oo+vfaw潛!Q @i !j:99955cff`xxtّcW^y? 04*Qb9+OJ Dž(--l6R$B0|N@7@jߙ(Pa -yI gi?@΅ eS魑bZ5#yp8ccc`Xկرr~">>r#??NC7>>uV\fַ@re.ƌ7 x[UUe٢B(i4Jtrr͛7F#_vvpnn.xUVqcΓɃ>11 d2lkk~_u8333VG9w#<sAznݺh ^߾};}vٳg h>VVV ml6o۶ "''f 2!2X. Ꙟ^x1f^_PP a[rFO~`0!M  GbZڶmۆjBO<U555###c@C_xo;@nn.~'gffx &';DG O=T -~___s$BdVg@bBC:flkx-!D.PC=ZGB*3M8 _|1@U`P{s&<(< yrA DDj8rScccBh1bD(['bMKx(MiO C2Д/lHpBn I  ;;{ݺu!8|Y z?]^^N9 BYL"Ľj@cǎAr9 ^W*+WLKKZ333#33tmhnGAo%>җHeB eeeeǎ!i=|aC$]&rHgg'lٰaC,A ܃1+*Ml u:fc*M6E,R.`s] |͛7Ǜrz]L!,w 6t ssrKb|z={PXX(xWZg` tU&V!͕HdD9h)#uuu˗a2V.F"xw`0XYY bKl69sfbb A&R4j룿ݺukxxPPЈy(/( -ctahRXMZx*X>(ɼG1d2Y||㲲f1 Dף^rg}T1&7 "**>CEFP,wJ+1{9s^q#wR`L BQ^^`D ohGBOE >tB =hXl6ON` H-@rv8NFJ)/eA(q|2c+Apҥ. vm6=e9?<\AV&FUTT$z`PBAB0K2cŋlbLAVx*[2 ngA0i<6M]8vX8 PɃOOyWWWo߾… OZtkǪh48VL_pWW'Ĕ 4x<`ڶvLskȝF}ĦJ:N\>xNHZ^,U\L1|Hh1 QR0t%ك&,<99I)][܆>,%%O>qݥP);;w[GGGoo \Il׿Ύ&'''/^bZ$$!pI\\'Lp"6@eb k^*#9998nNꂠ4(;`dr JJJh3C+\.-SVe2j}ꩧ~_+!iɋaP3 0V]]]N˃>ՠhn4jGxe\VÏ~#Glݺ^3 r;S {B[bUԄNW^^Ң"&775sM~@/Z\nbcc#8͐>az!.600OrZ +dǎɁ(qqq nBwX-裏RdY䐕Caنh6'˱4p^ĉla4FGG'&&o~#8jzŊeeew7` g? ۰aC0\~O>5cx+:;;_xt.D@ XjCE_?w & t!~}g@382! `ڵk111۶mu}kW'pQ53\v~ ? qy #0;;7"Hhat!OpA>`2Ζ0qf@ VTjzʕ3|wd2uuu㌌/.VƏlcceJfdd7~EyFd!! ewj o遝$)FHXءC׿Ҹ8BD@Z2>[f򀹧y6pxUirŮ]nϔsiNknbab|C:,6kb 5y0looo{K.xw>Zc~VXXxQ CooG}tv '|5dc} ńK*2' rϕ@$ }P&Dȴ+V`t`a,'Q}DMwfqĨ39kjjN>}[nMOO䶶NLLX,DWXE-NQ]] dc !Dޱc0PyyyS JիMMML`|:|q"io?3X.28>&ζ/_CJCn+Ǐg#G 'N6D\㧣02+sϕfggW,_7b"$q+WtwwOMMsjj࣏>-4`ACvc w7泽wvv>c r?t4@Ԁ^-cbbN3 dXZh.++ HN3//32carbe=<<{& 2 eH ZɇnZgffhnR& ;|UڀF”)S7of XF Gހ]F I0x Tr<jUTTnFGeoi.@OSZZڋ/{};ikkohhx?A.x~x||l6??},?!ȑ#֭ۻwoVV֣>o?#O^jUIIIllɓ'TVV&$$'$$T7͛oV%$$h4۶mkii/((Z:;ξ}ڜNR|r3gۗݻ{_j;vؽ{7t׮]:nŊP,==ԩSPg޽۷o߰aÞ={~򓟼/2|q;z(x㏣<}t~~А\.޽Kp~#NB|wƣG*ʼr|GLgw|Ɍ}رCR=mmm@GFF^yBȁzw}[Vggg]]]UUՙ3g֯_?55%Ɋo^PP#t:׈@!–8^o<ųYYY2L]KC!a -!bfS-֢b}LJ"OONN^zY]]@`ŽG ,!G&D]s~~~qq_,|$t|h ^tN40Kono F hkk&Q~#ǖݝob6{dNNNyy% dH=mwׯ.#m˔a ZȀUPrssggg]3P$&LFcqx1;+Tv=6 ݻp.t>v 5,PV5 m/++f#6nܘ?" ۲푻 cWWh47nV.C'xH~(ɝpDiIc\swҕ0kA$*XfuE7122/h--- }c0a`\R0.A s+MKijaלY(600Μ Ǐ'egK s=** T&E:$MWT!;;C~v( IDATtJJ%\effݟp1K/==2 l_###~իgΜDŽ922aÆ?6.1h7E-RĐD$4 _\\vlBHBBVu:&ԩS S%)FE20K>Q=\ yu S-"I 0K{I8pDjt]A\q[ɝ9%accc?3{llBa P^z26nH{PPPV!j@TTԟ縸8~ 9/ԩSP'NkW׀6ft1\<`gddnIz>{Iܸİ4N>55ŧHR.7666M,OƍVvݠ㓟o4gff٣KfbiZ@'CsK/ޡcvv6VTLy&aƛp*p9so~o6?27n I_}K d>{xP(ĮeL.|qnONNV.bرC r1W%+J̻$JAp5HXƊT*l v͛LaRi&댨{E{>&(db8j2vALq@[BN:S':)RSS` 3_D+3eeeqqqLM6[b/ 3t&+++Im@u$ui픔&|>A(`yy9J[[QQC"LŷGGGrB|XM: !*j 2 ۍHGWII DLSSSTTV9|0@T*$yrrr'TRhfggF#.nBAsxG~+W. !cf!h+r9o8,j,/g:<C.&߽{wkk+B8@c^bX gDO8.Ğ={}q9A"]F~4Č-|J<4faNj@Ap6i<1 8@+v2WVV -|`v;Y9*пktF|; !4t~ddѣP4-G@W~1L=%Nn#L^xz⷗{\.$-66Ymi|瓋Cb0 by?tC&OahRk_f՘>555662xj#C$B"BT !2r'~ "9:&;TBu -'L|"bLOsCĠ777wuuuuu X,[lA7N5}96m00zdCuV:"TTTTlM6BqFZZL&{g'T8FG)|X=b!B2P`^ۯЖ x$1S1jR߸qt7n[LOOqx} 1W"DhlsB` pP ͛7'%%A%QQQblb5/]p }Kns`u:b}(//w\ c.k?\nd=`հ 6;;pOLLܸqcjj9i&ς,:eᎎ)ZQQtemum4$ Vw^mr4=Z644阃ׯ_w} c;Z޼y3C&xZtt4-e}x뭷ٳ 9Lݴibr|V!'SN>S G^}˗/3rڵ~&'']. ko>!|;r޽{Ϟ={%<8KRB !jvn*c FlxHȞ?|2iZVoY!M) 8/ߏMWTTYGKjST~gX,<\I>'O@hb$'L8{lZZZooVMNNnoofYן={gMJJ"LPoP<裏1Tn0p8Ni=v1E=f~}&a<\><z*+N8Ař)+111?hmm-rB:|>l @΁uK~rr֠BxXrƀjv{{{ABJӧW^m2, T*vt|0TtP T٬P(***;::vi2p.@Rfi)d?<\A@Ȇ#^b DR0p;\POBȕ+WN8GĘ |vh"PrHO+!HòyȞS~}1"0; X&<b?w9|uu/\4ϟ?9Лmiiq\111n;77whhhdd$55X8VHtZ;IX||U@ &F:%B!_lUyرMMMHrMMMmmm!(0dVM>b#A px`?~YH"\\ h4֭S6ҙ.3K'`zN3̈́rE;Iw1K}}=Mb6ȷ%{;==-GbLC G^/$?? B) Q1&8LwZԎPrKyȞS~}&a<FF. Xvv6MgeehLfZz_0###.KьNLLddd k 3hGx{~7o4M&Sll,MDD0P&0R t(tV}G F BVVx-Jaa! ?cXF#67σup?*W+!X֌ a֭[Aףۂ+2׬Ys@ V2iii0f#t.E 廰v%e_eG:;;].K !ܥ1!/2 ˖8$ǑN/v5P\\fχϟ?sΫW8>pg|QF;",bBr|˖-K 2d$D`YLᇨ?k׮'Zae AKʎ)xϛ2|psssH֍RX1ȑV/o? jj otan{ )BG&A-`SkU*[o ;k4 >]@a^* U> pvP|^}CmP? fJJ  EffQ@Aǵk8ϾX0E?sssocbb DpJLF 樨(:~r9TUUA$n=\zؘfGT @ n GFFOAR__'FHsؽ{7#BR.XI. Ð>bjA]]#TC s}IU) VJ~Zqqqv}bbh4VUUa'&&pg)̠o٢8‘¦&xncaBh>7Hn5t:=Ozzzjj* Zh4'<8#+lذዎk?я9b2JJJ0D 0fP%v !l6Ur?55555e4 .x"$!b bZO& Z '---OZ<,IY;;RmGBs2("===LF6Ao(F rM[.++Kp\*iE$XD!\fgg}>>~ J7uVZ{"!KI=05+u$Hà`% q qi͚5 P 8in#1cV<s (J3Ze1}\833v2i:~D"Lǯ_Knٲ*hr7xk׮1-[yH Xl)ù>̨|̃ vb/N===4ٳ/^lhhÙ1- F EGGcTOPHKK?Ȉ} @`cbb~EV@L{ny_{q 3C @= %+$k:+&MekwdkSGզ*YgSXk+N"o9vY%,ے^̃afqw`bӷ Ϝ9CIT2$wq]mmmn-,,BTT@BBBJJg d>1R 5}yyd CGhl|>T@Li޺uƍ7deebAgee;vl֭--- aĩ@Bagddf2kkk2:O>Aop2ʨʦ&B}>jӂ )))O<A%-=}7DgELLDrUV"lyy9}V8R2# {``<@&b$r\y 'xl6_x1&&f?UUUacZLX0ѥ~%(@́"l/_v\fvU,0 \`c>% IDATb)..޿(2RqKz ]zѣG}Q*~Q̜:y$bժU: n6PBa8"2aM&dg$O< ^dF@~ꩧXիWq偧gwdHoܸ:>3H;r 943 ]\rWFF`wIIIeppphhh|| d}b0 jT{*P t[τE d2TAP \t:[E5$%%AK6;;{Æ cʕ+55u``t*V,0^ Fz7>|.أ V6zzX,;w|뭷QdQ}Gd۶m\aT"1XpzJԦk|Pԫw555YX}rnNc <I:D4<67w q]F1///))Iј'O4ÐH!̹AX؄2cIFrW6==͝]z5|ׅbE0UѶP#>ֆkt:z<--S{477b'\a!a/ t:ݶm۰mPgCCCUUUqPPPv"C|sx@?66)KNN_N㕕ꋌܷoXẼHa!(fff].Wf⶷sNm% /ի1-㩫QXxY033>̆{A:h8}E.07oތ(n}ff_* #3n޼gu bjSk0nGC]$qi qs\jW~qKun VkƵYnի5J! B45l8^t yb:p`3dr\H $HЧl WTT [\RRYiW&M6f^Aq:^?MS@oooMML&߿%w jP b4UBȄ6L===iiio6cbbtQ 5LB",KWWW hhh}}}mmm1`.8=OII>=t:ȫn޼ ODK"ApsΩm@&''7xCcpGTTHll|>dpXE'|BZCԥ`}Z`j@+tpS1'9կ~EI Cm4 ;)999III>oppmmm7o޼>#n&R9NIP n+!@d)Fȉz~!w(AMEpSכ 魣WXQWWwE_TTq:O$hm@TEa͛72@  mNJP*]6?u)jڧG<7b]J${}$fcauTBB7^?M;bܽ^__/~k.1ӛD@6b+!@d)˥9N펈.n2\&^H*遁J) cpANsѧ-§-n+DQ P@ Xf J#Ξ= BؘrJ*6PtXBmKQ>3۩HYӁs ȦU4 DHkjj(Aў*G=Xjj]t:](iEmmm񸸸;wrE$Xq;5XCP(fK5!?P7ؾ}x͛7 Ы1C\uԜԱ堉mVZ{!Ī j6K\};cL833d2C;/qN Jd2 htX/W2"""99LMMt|>_jjhNSA{[nABN+W嶧iZk5.1q-w x۝N磏>Sgu:|v:T8}2վ4 'k;vllbPBXk.c9'Fc5.)br~þvdd$}×~}}} bXk|:33$&&ڵ+ܲeJ "Pi&A[[[gg+|Z %ZuanXԩSoKKKlٱ˦`BtttAAkkk===?O( |bX|LmtB$+s;|x-H\rFyաө%T9`X_εa6/t'|7b/V U~hи'BMy iZ[[[n02{`.η###>2镕!Ҏb憧bdR-D@ýv14b,H)`mdd${{{.===@nkk[r7 jkk!dVVVbb" c / /m6P `Bt gϞuzC=6(? Z~[llNFj0V\yȑ~ȔzVXbZAR,--E ℚfY__Cl6&Ϸ _:D#csǎ6֭[7ox<]]]fXldWWtBZ 8|M6|!۝j(՚c6 CCC4WC1'''`ND ,0 Q`@R1hj!\.WDDą i011#4q\n#U,A ; :UOD}iӦn$R"/# XUHVhh,҈`|9RH85իW L&kkks:'F5D%͡A 95PϜ9Ѡi=*` -!~tt4رc~aWWKJJҠHbٺu+,:HqB^FRϫ]***8jWW#)))??\q]]x LK$tQ%U(##˰.^}ٲ2Xz.\#91G 3'РJn=Иʕ+7o~i N(U `E9hx`'4gZ6-&&ɾfcu OY\w*VL4҂Y2Fm2ᦩ`-.7o똘-[t: Z> !0LsyiBt` b\.WJJ mPrsKKuKvvvSSd7WOKKطoڵkHs+NX,8>pP3 DpBmmmkB@с u.c.*--f0SSS0SsK:sV,87++p8NpkP1GaxPסoah\B*;'Fif4== zzzzzzF#dPIR*І{r၅P[+5Ejю8$PV;8\ըɊ/[ZZV+GGDD/ 5װP oI;40555118dgg_q'5 *w g:5"|T jZmQ j%Grr24LMM0^|G6A|QDC!*6[,n Qѡ?6F1<Ѩ, [,Z dN Ѹ{nfo@!ɪ*ti_>R+p'9=z333SUU+_fM~~~8Etuua2 W~R^rcLm߾]999Y]]=>>}|i=811qMm/777XVd%n6l?mܹ2Pt^a׋N`˻R'O栩ӵ+*|E2*RγeB#:.??tt;;::ZUUw<.ڈ!-Hϊaۣh:nǎh"Td^=@^;Ǐ׏9r'J-@ۇ^etNc 0Pqk jll /axJ46)#?/_9_mjkk-pӥG_?ڵk{=dt$=B@+j-**2fh4vttP.}߽{7{[ZZ<0tgǛf|z| ʕ+}>ZbP"""f"ĉ?0TsNt:AZP^^!c''';wRB\zupp~̏KNN|ԥp9R!>UڵkwƹERéC6x<$é!%"Gհn:499yA).+!)++0/}V[}]\tj4 &` R*xɉ'x Q\DJ F#aÑvy% hXFFF|>_oo/Z}z~ÕJVX>AEDDDĎ;WoP"III.]jjjZuDD錌 `OMMUVV A:ۿ0YV{Y>,++vgee)`>kGE066LNN:N$s ^QK7[zv;dȑ#UAN6Ǐzeee%b>7mOSF\d Ȝ83@#C >>>))g`` 33Vŋ U\WWA%f+J OEB [,ӧOGGGYd2aW\:۶mU%McNL6PuYokkP\Vv$>!EVA`T+V@{d.xuEEEa-))|JqA%jFxp#|EG8@ 'ONA0000>>Qi 0t'''"##KJJ\.c=Ӓ⣯-L]!u*%!uX4nWczՎ( űպehsk;z{{QpF/ߺuuDrZ^y5qh"sOLLfmf0v,.MRiks/.Ÿ۩6eW}<`!tkD`jjjllz gFHh :v EՊ`0|_S:~~oYƊ 1$tci6慓 t644p)Nz;xp(-va0~9g . C|XK C:D1>>~u#wMJ.nP ٪w\J.,T w7sCdk# ~ZZFX,otAX5+eBaaGʙ#La?YiЌ2 EV!ء(ASDFF$5tBp;~`%ٲe0losrr0?2! DP`vtt@^1nXrssϜ9]h%nzoݺV#ro׬Y 'O~^mo2^àΞ=  s8nZ)>W)L .|g@KLLt7ntX,8F)L',qAnzzjRg1"HvziapT…YTTJbx?===]v룣]]] loo6EEE^ܹsi0v;cO?5Lfttٳ𲸸[C-_]Bڛjr O>ۀk׮joozj}}ӧVkUUU[[lNKKxJ删<&!slaEJ,(Ѐf[6Lv_׀v+ RSSa\06;v`0|7ns8H퉏߲e G|Q198Ii@E+G#ǁcY"aqv>J룕 p1$⥥4pRaڠ@zzzQQMĎAH̥{QhIx<י[f"CSKٜb@<6::ZZZhX̣bff&G ^^y啩/޽{pp0''ƍ;w,..ƜKoyy9Fq+E"D:h _BDGGGWWr,SbB1f(c(="#"-nfnslaJd\)ʐBro0rjjj~ѸzÑRWWf/= j׮]%%%P~p=߼y8`66feeeY,N7<<Ҳn:4q0SCF88_t&[@q`aX8pwի׬Yp??A_~K_#T >?!Jy䑊3v8}4TGk鏍js[ll`Q 9%%ݻLݻwm"##oܸ,ˎ;n޼/}_W>,o߿?j߾}:d2nJ쀡)zW__T̏?Xl]\ ###Kcm6?'$$>_בN@=C;#?OcocoY zW IDAT)x ~L Cpڵ@Vٳ>~_K)O駟G?bMMM@k# O=mCM޽{fffbb"771~n۟|ING隴8ccw_W1pfTR~l233cccsAntt ^Os-8:322?裢acٱ|8T- a 굠4hEس6G2ǴE fzV B_~D6n:fC5"133 6EEE?OǠ3M1׸-QhE\~aẃ9_9 f3D1k׮y$qH1ܳg2N<$jW3\A:kc0op+h& 058=IJh*|ttCCCz>!!!Uږ_"6:_rZZС̈6hj**9jA0\VXAݥKA BTTTbbbOOGLMMp{~x 88tੵk׊x.^v;S=IpSxShzN`PVV pwLW+W @Q`@L!~gׯ_w tnڴbh*uXJ[[[' 3ĉ a]6MMMlL" 0°(H@ɣ1;wӴ7c6/^ZZZ>SHOCIW}رu1688$JKK3>>~ `jlFA[^^^NjNXO-:S1 ݎS5  'QKs@ Dpw|^l6h<55u1ł*$Zo6z鬫֬Y{L4MU\cJ NJ!J~3E]3BV8, ;d0੧ L{GիH~p:>{<@罽6l IIIeʕ~) Q⮶6OYEwwC=7/ 1a0%Z *s,ܹsO>oo߾(v{FFFVVVnܸ7l|w }LW_y%oz=w~5...66&:u*777ܻwo^^^\\ܕ+W Cccs=WSSvy䑣Gk>?bX~M6:t_co'N۷ގ]r%66__'?ɇ~h0t:ʕ+_TT?~<3oWW0!!… ykkk~~рCtڏMKK7vڗ_~'? cĉ۷oohh74+||wk/rUUs=+DFF>qqqͱcǞy#؂??(ʴ-GW1#K|KۊEf |>a=ێ]9ձϳ׭[533lYĜft / ѽR3ɓb2ÓMMF51(О'b)&P1yP-(CCCw|֞vx<7w %ES:VT(*AXuAͽy[P (r[6lؠ#}x<"7r{!1/ia 81 fSZ ^ZO/|g].׷-щGwQQQ . =XDDnj.((05chQo}+j6'P EQWWV"n{c+Wܳg`qv>18=PRRR~~>$b.^Pc%3:T]].?tQU;`Ivv6~3A qT_\pAQ1۷]reeeeCCCu84Aצ_>Pn7VcL gC&Q">rN(Uv*vFu ٳJ(;Ԁ9؆3/Ƌ Bb_IA^zU,KIIٳgO)V8@c@ Nú Pz嗡Yzz힚’X'pP5i۽uV{ef.Eݻr:v'&&]Lby6mĺVlg 6@Lx7M7V4 e8ZFXv}qo߾ , z2Оw zc RP}@ hjj6\WX p 0tp!7 "-''gzz$9tuu?t7RjcqT ~ =6\WTcRsk%)Ñ9vbB7oK'ZjΝ333躙A :>`_!V# O{P h4AajXLr>:1NRSSɺ:z~eD(#=]ݖ̋blnFBNw\jzzZgJJZ.1gwO?Y"QE|~ TPP^gMEB̖gjwh4? [ZZqÆ Kt[*%SNϟ/--Ń-0vX^@g% #}_O(<do8]A'Nݮó)@Ezy睦K.|'s@4P4l XKl```pp0--rW%&&T"ͨN]cnQ:| &'4Ej|--- HtX4 &ĉׯR zRh4vt:U\v *7ހc5DZN̨k###vd텻;zVVHf9++W^y 6 TcllnHUZZ222riȒzu:]MM^mmmPdp;tet:l b !{^,@CDqBAb0`.:;;z!͆WZ+#.'|2'''--gQs xLᏤvÑ?@רؠQ0[x|?)8 c 7E^>-Ģ ӧOè鈼^`pݰ^t:^}ׯ ﱢ֭['h%TbD+ޠfc @h4/^ݰaCWh]nj rPX;BB6mF,R-2r+li4鹘]-9k1y=ånI NBSO>}͛1bSRRn̼v/_ ].ʕ+M!v0|f(!snt ℂmWTTT477,·ZQGs 2>N!Z ؒKҥKCM .eAnF lllbX$99ypp͛eŊ~rrr۶mjRD1 <3<<,>f+N)Ex۶mёطo_II ~Ǣ]Z TLIJI(jldަa~3R!//psIԜr*X.,bijj*X q͛%4Z Nj H` f|IT)45--VZJ0SSS&''sss\.WJJ m ZZZGGGǭ[lAtȴu Ηڄ"==9T.Ϛ5k-h^mmmtj`C)HE<G9xŊpHɀ* 0@>jnڴIW˿+/} KVX홺j @0`iMcP[A@Z~v;bccݻ766WUU ;wZ, x.\}vZ*HKKˆV3ϴ+ Pp׬YYRRc?OvQsf@5ȓ(GC^^/zjI3<@%ᩩ_|pAQG_'ݖCD F رc#2zSj^BSۀ.i&n TA? _b?DS󧦦 !3|@ y<77;ϞɏA -(($v9 ?P탎h4ܹ X~}@ǝvi y`O㦧(Q^vЋ0p QADj#2v}.--m޽nY/g[ P=&rWCjI`qv?4S (,䰆ftզ_PmIdSX/ܢWPP`Zzzz nP3K8Ơ͚lr*+%_v}B?#{6|@ʥ\\loHLӸ{*(Lo4rpp$pڵkZ1{ФfvYk׮,^Ѹe000z-1];M8||cGG]ʍK`˗Q]Ac?.֯_<”4" 2>'=,3X?Ȣ x*Q R깇\H BWJuO|)^fsLL̑#Gp\x_>h1*z85Fe'FP399t:Y|#[)v-N4Zz޲2A}Cӻ455؃&n669ڳgϹs$ڹW}^QUӵsţ%<66F玪8.m@)糌ʅb~ۉ%HQt5i: 8`x I\QQQH}~1phVg t~rss'''x\VQp:܂ s[x# NЁ2̙3pW4祗^V}{NlL|)#h4bb`햑bҸX nj vҕ9AСc.+11SRSS<ٴY]] mFPZZH+N-AcХܸ CK G=CL6ptիWjCaJӧOӈ CQ2=>' sݰ~l6K=ObrXj(C/?NHvdd_?~駉8Xtx-[Łn߿VQ֪Q7ƪUEg۷+@Qaf׮]?A<"R#z[#?VzڤY85+*6S >,66Vj/1+JwO%谮^PЙ\9ԮU\jwWȡt1wy㯿#GB#XZ 4{wwwWWWyyyddz!o:g+V8NwLľz꾾>Yw###?dI74xFFNuVLLgϞ7 A0&SV+@4=,vrh3gxFc}}} =~7rIDAT3];v쀟cw]羿Ԙ龾>hgΜ'dGD`D,@$@ca:MLi޺uƍ7dee@,cǎmݺ%77gzzjB纸BA}b @NDk@o~O0kjj6`jrr2 Æ Vf1ų{mmm999}.O>oiixTVVFEEUVV蒒TEEE>{lu֙LɃ:N0>Oڞ>FĂ 3PB,@$pqW^^ l!?00_ɣm"'9 +EL]sOMb\f$A .cw]"i[LMC3JijTr\"hlJ8MLX0ѥ英\9^TTD) 1^ѣG%p995Ff" l̷#X,EQQQ133CZHz׮^ѣ>(Sus P, -!mQY.g@3LȁKiyͿLzd T짞z$;;K:xU ڵkϔX\z1~ЧHxNƈA/3$inn)L=MhìH {۹:{#w9`ቾK@?g,> Yc-w U~a=h8}E.3Cg6k09Xb5 )5_v4ԵMCEpwT@MPkaQ5 ҥK~cd2\.$sA$Svvv6R+**FP.))IOO6\W&m Л戈d;w#ax94ЅEĽQ5pR{c`L>ؒLaёF9'3x |o1R u P/"Y__x@s='0@a ; NSRR255ONR7od2ן8q(d!ΝB&''7xCcwf(JLLr) ǚf 쌋C h9Q244$j CDJyn!8-,,̔@q_ѧePaDŽF.;FP>x N 㲒n9"&vb{)!$98 ƨUBȄS.Ksx]1e0 MBW@\ z\຃ܵ=}zR|zp%s}NVf0:G P%QU EYZ JMll.EQX4n(ٙM&i@Sbi>b;݁:\f2MwIPmƼh!X"FѬ=ʫP.Xj|Iv17eeeB^>qaa!p%f\LV!ٳn[sa Am Z~[llN6 \1 㐽^/,--Eֵℂswvv׷?C6 =&w  ;<ߺA`w}733 Ph0cuvvرfݺu͛'##5Xl?8ܒN\+V#=8P---rABp|yrrGJĠoahvC*PTkkj Fi84q\n#U,A ; :%Pc6mF/%R1YŊ[`ƁK"X\jIG*$|bXK4^\t#X̙3 CdhFGGGb1 n\t ℂI=&whnnV|KA\ &%% C 3/B3A^zСC8ܒN8b5$;;|}&h!9!wE!Gw#η:*Pj +l($J)DՇbQ 7%:;;VfA/iǘyYUebD---=@J X 7MMMk wټy3\qtZVB'F5(4<&D@)iXrP%78[nȄ8d:'u 0Pw8===bDQ Kp4X@dsas\===Uii)4C8ܒN\U#KFFF >999rAQ1Q;c@u[І Ji84R ZpON1<*R`tKZ|Nю8eR#C;8\ըj/RxmKna6w92jPI8_ݎcc%A nF[j+:$qIj%)ÑL+h<B'juB QqPFBRP(tb4aV5E({81 u|ww[c0/oqIm R567_eJ^07Fj dHy!kHn˨X.X{ީSl6[vv89 ===FS.#\gv[tguAZ>{|"e9(>fuuuE j⫪G3UHx9Gl~sQPi TDEvNOOx|zYPΊ7k;n"\-8AMںvZ L@=mB1XN V5m y(w(NXĽan~p쒐=ȝOBb^ . QPg JكĬ 8Hж$@0͌rrr>#L6e(> 6@PYYUYYKJJ9!ٳg*//n8֭3Lt:`6&GBQ,!@=- /~@$$ jh3$⥥(9~DjDHG>=০gffzޣGBKj=N㣮@T/pI7nH-KqqCyTTTdh!R\zG>T@sC.yn:Ayy9F:vj0[[(B,!@=ŗ8;VNSn=SI"^VVZ  p$2oooʢعPy)v*))!P ,##Zn9I㣮kDz+>˗7nxPҷL&Mͣгbٹs[oSӝ}a\ 4]]]pb *uPDq; EJ=W7ӝ;B1ڢ55ҥ64 IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$'!!!! w> IHHHH,/ȝOBBBBbyA| r瓐X^;$$$$$>tŲCBbC> |rIH=h/$$%?IHꓐX0;:$$֗\}wܷrIH%S> vJHHHHH544鱱1'&&&&&&''@ ŶYB" ^a0Fh$?vS> 9cΫz"##'''cɵ'!A_TzX~tL&K׋ߺ'!1gy?!221mzzo2M %.ˆNg04.OBbΘ|1a)ӔOBBķ ..xO'!1'mhAכEB"Dp+k*n{^> ;lW^I{MBN$$ AWATIH,$ꓐX0H=$$$$$?ќPôIENDB`context-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/12/flowchart-4.pdf0000644000175000017500000001270714411653175030601 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 485 >> stream xŕ=o0w[:=ůP-`CRmAVIUC~E5C9S`&G+a _w &(d"Ql<?ϛxM7K l4""0*]U|pw*BNU=Eu#\&7{s$1;AHKWBLp0081`)S \q^gr0w5g&PdMTӁ3GLiEyQZή߈}&PrίYwUUNiW|t#1*b4.doJ%E^gh bE@Y$@hd Պ{^kYQJz^*2\tqɓ %[vb+N{3;`ͪ-lV嫽&aUzZ|SyP֬*+.YaXQ[QV=[M<\@# endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-26T07:42:16+08:00a2023-03-26T07:42:16+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:f57090f2-40e6-b87b-8bcf-5d230db14e49uuid:ac6f8fe9-42c7-af19-1150-b0551627d3b8 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 765 >> stream xڅKSaqOhZؙ](zE"P!Ωs^7'vųhg3 \4ል_,0s مGUWN)Ґp}uPllP&ApbD%d5Y ʾp'ic&2?LhtiE,DʐLt`RƟ Z9saVu{ RCLTd60.\ R[5F=/֔4:{ g}xqLRCT#D*p&FͳS)Z7Dl廥4y+٬{0Ee( 3ɢTP%\TfKt&hg3飱ŢoM#-nbSj7כQ2UmUt;[rC3$#0 GuYh܁!o隉lECd\no>e0 DK^ VB=V\hU pB+L>?JMa3 y}x|>n(wDpq endstream endobj 12 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍRMK@WB{٤**%)"iP;&`ɛ7"^7fB7yk^f Qh0'h7DZOX})A=V ?4|zj5M[ܧcnx%힆e)V\3ƨHgwk7n6R SB۶(FG Y6n YXsR*z4)|N*0VJ ۅ /4!ӭ. jV)G ?Y =\T,ȴiqMNH0xAEU5#j^CTYvs&h47U74T endstream endobj 3 0 obj << /First 60 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 829 >> stream xڍT]o: }oK1Ħ,#AMnt]nÆ>(p؏eً m :!i b ! IA"`!`f?[߫(suݯ~#  "81a`D4./Z8>7VgYCgnUVȑ}'k2֣U:p6VCa!+Nw@˳(9!iVUCU:h+ؑn;m'hԭ~?ؗDQjBW3/iW_>Tv&_ LR%}qW)3 {-OOh\sd8B>%L</GM|r/',cl1AJb_-ya,G}Ec$2Zi g!}R4Zt=?-&8U#"Hm`Ɯ?#.~4~A3'h6U5LnZi2 <9CA3FFE48C8975005263CA1646F2FE9F> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x 0_$$8@tBMDM'R'w~٪xsOVT?7t<۬~u endstream endobj startxref 5280 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/12/flowchart-3.pdf0000644000175000017500000002027514411653175030577 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 1133 >> stream xXɎ7+xɱV>H  /ca;~%6[Ѵ `fZ$k{|;rvs(1'LBa;|o~wK8ȑbcTH U4dω``4 1R?O{jEB$=+$r]}zwvL=YRA|`Q E듴䵻{(̗ =+Ҥ뷻29E?}JMBg6ak(zP0}.Ɍaz{'&ϒڵV$ bQl6IBjbϹAf*efh丐$eɥ h yDp伍9hOU^5_pugNmԚQ!ќ#.crA<~lbF^PGz{IS|IU<>GǪOd`ӒpM4PmE%R+4 4YxӳtZT^h#xR$֥}=g@9\9>:>FVWp:\YG=ºZt^X5Uҕ׾ڻlf-9A##,> EQ[L)m-b"V3?ݷsf#}biIZ2H,cB0Cf_P/7 n@OQ!9>ʯگ֤z0,Ŭyomd@?rs~qf*u::3{s.f f8Tm/n(XOJP:*9k}%02:y|Tl]1%uKLGYyRiU33U!!=<4"7Po{&6ш%wvl2S5IQO TN-Mce;oGGQYSN)b7($JhTT&'E3:bXw;a%SD #FzMba7W-̂3ᄚqG.MzEu_zd; endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-25T19:45:31+08:00a2023-03-25T19:45:31+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:f57090f2-40e6-b87b-8bcf-5d230db14e49uuid:ac6f8fe9-42c7-af19-1150-b0551627d3b8 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1005 >> stream xڅT}L[UWxt {HclLfP3ĸ2Jh[A;6 {mGt%b?:,q3:cW[|=9{rIdIҏ+\kៜrH$|5%S27 m"R6^zY<LBI׷n߭-RfQq: rE O`Wծm{Q_~cS# ! B)`@D'#Exr,[d,tiiU<{GakO4Y5:0챔0D}h<4 ; c(:sCt\nJ|,a}cUm^yFŽ48R|Bt06bjt$r hߠQm됮9x qz/7N2n_` Ԁp=ioh"(5XO6473Me)WqUY8p(#6{@mqNJBMqm 6@*>&96sE'?g=aNPgϫard?Z]/ؠ "^ PPlh7T.6 绣GBo- C;N64 2=,FFgLl*%goa-)WfgG귴9wv)Pr]N]7-]mOk5F-lK51#tYC #IN/(?bds8D)8, jXT>%G w q >&lQ]4T&=; S.%&S Qi@,xB^E}> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍRj@}+>j/HjڛRwG]0ayBv!9s^.{ .c ћ.4/RTQh͗h7gOX}!AMp+@om>|+B 4j؝b整{jA_&ZApăS_kf#0vt䶍)qDCn1FI|#skb}_ )j ,lN*0VঝJ?')}g^,C.[#] ԫ[%MG,ftIuŴiqunt8LH0eU4܀APEW-zTׇUFeN躪=PUOn46x 0,o #Ӯz;+_V]2y endstream endobj 18 0 obj << /Filter /FlateDecode /Length 535 >> stream x]MkQϽ3|N'44vntm!hc-Pwu?@?@Wޝ4. (WEܨ㹙}.s/H6H;]Tc}(wx~U ovn/b"6_rپq}> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 369 >> stream xmRn0C@y!BHmR$y4DUR1~|mIb ]zrg*>Z4\3iJjHz;)H trfrrn(Z8O_!L%,t7+:k=$&}k;ʚ }xt)J3Gx𬺂q*{Ap4 ʈbR1VX} khd %'WYSUg48P,.ڠM^3fT3j2N?Օhb]eOW|-c}> stream xڭUn6|WuXD]@l׍[;ͮ<ECw(ɱxmHhކ2gHqba8(&89s NHAΧ(vbBtaH.=~|dw"㮟tcsbϊ` '}"#;7c|4/> vyIXTr xͮ bRYKdVoEId>]=WZŃ"sh0Oes|F6yg\j#G#2kU?F lqdkLh0hU%j_<{Dlc ]9ۊ"3'3tҐ%ctbfV.nY;}ZlȶG"Zû$gzV K)u9)_!ExEN?JMC=\"PBm=OFS{}-W?oVnU?R4V̧K?&Aܸo}' zrh~c8A><0%xx=ơ}็5=8;Cϻ1?i{ |mO^g~=?M\!0!41S=au"K,jat ]11<*Cי,/Ns z% endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 84 >> stream x @u <` ^> stream xŗGyNN> C[6:V2HAsܡCXn&@YKCʱhMY0Ew\›}S7o~wSe I% 3I:Sa-9C&2]`ӻ90Gl~8tQWn^JDjm$Hweq4ÈcMѓ"+dv7z29~N{c PZn= ˯^Cۮͅ26da߭NӉaJaLb>0@"yp-(K_FSB_R4tSTtYZZ'zƅ& yBp rج@?)Wls"mT_:ٳ4gyi-!W JItN  Yc sI}?KLqE 8ǚ)9-$+Ǫ0iSX789 ۄ)kbVv񫥘W0 L's)p- Tj Fb4v E<RcNfEF >Vj#^Ru/#۫#VoX6K|:ַW{hMlt$ENTs 1==@J~kZCDmqi[伭X{ZC4)똇h~m3&ݷkɰrbI 7z o+]rC \pv:C+iU~enlKCCE+(VG]ۣ0yr:xv2!Pe4~gzr%39)C~6q-Cƪώ[9rRnOE\?k_I. {k9ElKF\V}WmpxhʺŧYid޾Z;kU+\d.TTSQ !!#<4Q ~шEpm=p|Ë>=-= endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-25T19:45:44+08:00a2023-03-25T19:45:44+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:f57090f2-40e6-b87b-8bcf-5d230db14e49uuid:ac6f8fe9-42c7-af19-1150-b0551627d3b8 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1005 >> stream xڅT}LSWw%>0dfdȌtaY!Y€aRVZA ߜrH$|%S27 m R ^zU<LBI77oݥ-TvQq rE OaG٦m}A_ACc# ! B)`@D'#E,xr,^{D,xiq2oA%E<=ɯIfX o wE:be=!w l?haY]T6K[R_WMͦkCiR[aBɥwt~>u/ހ_іvoTUC|ܳ-ŸSWFqOLf(C*l<.M"(?gbds8D*8, jXT>%G w q >*l]4T&5!Su.%&S Ri@,xB^E}C=TFj8(%j?} endstream endobj 12 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍRj0+@rp-;M ڤCӗC)9&ĒCߕ_)4#ϞV5zsXpf4s }D(jqF- f> stream xڍTn:߯]Hz $5{4h-14( H~|T+ qff04JR0!If@cȒhHJj ^X7GQ^.{GӘCe3h: ˁ`Jd4ͺa^Fˆa+Յ4j+^m- jXyܨ' GJ0Rʾ^@&W>HөGD`.J6NV$Ivb A::O 밋EU;.郬g I t4rZ pZ ;SJxSF$dWjɰ{>3gGg6VU~Zp+(@F3jDD/3:%G|%REŚU.\¡S#(2>nQ_.F2;UVT4ȏE%F0eGF&GwWC@!#F;i!eٛ8yjHFbԞtH7 k= I`??>:]' |hVJїgiJ+i8˯6O8$wLRSvWXD"6%l{:x{ !L !1|uF!y@XÓI0F jBXwnl_>ɧ'BxNHP/P:^cxmJ9 YfgD/9ȷ]n?9q̱.>GqREIq&6+l!gO`m. LnZ2<-mJg,:= ]ˈ endstream endobj 17 0 obj << /ID [ <9CA3FFE48C8975005263CA1646F2FE9F> <9CA3FFE48C8975005263CA1646F2FE9F> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x 0D;I (b/dO)$uey3 'CwG> stream xŖMO1wfLDVAܱH+zہa||Cg& elVFdxZ!$)c3WAIX$?tG4v,"Gڣ&)ZJ4LF>GWk,uwnc\kxa}t@:\v1'KDŽl͉QGj8cVb톧 8t| 7 RKX[zn~l5ez8ǚIXʢ)r Nkv”SEbN[K1o4a:͘ תZJHю\QijB`^j ܴ}n!dw-F^iCmd#OhKYu%X'oX6S ]{w c'J9/D*,~!-rޭXM+dc,Q86{kk?EΖZ$h endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-25T19:09:40+08:00a2023-03-25T19:09:40+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:f57090f2-40e6-b87b-8bcf-5d230db14e49uuid:ac6f8fe9-42c7-af19-1150-b0551627d3b8 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1005 >> stream xڅT}LSWw%>0dfdȌtaY!Y€aRVZA ߜrH$|%S27 m R ^zU<LBI77oݥ-TvQq rE OaG٦m}A_ACc# ! B)`@D'#E,xr,^{D,xiq2oA%E<=ɯIfX o wE:be=!w l?haY]T6K[R_WMͦkCiR[aBɥwt~>u/ހ_іvoTUC|ܳ-ŸSWFqOLf(C*l<.M"(?gbds8D*8, jXT>%G w q >*l]4T&5!Su.%&S Ri@,xB^E}C=TFj8(%j?} endstream endobj 12 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍRj0+@rp-;M ڤCӗC)9&ĒCߕ_)4#ϞV5zsXpf4s }D(jqF- f> stream xڍTMo6Wm,,"eƺ4v.r%F E ߡ(Kr3oތX91PrȀ( mI/4C@DRwB=JjX0yш89DQ8fqc(|Iޯi3®!h? [.Q;a_珲a \mVhpw0Um)[kavSDϾ;yB_.!tֲ-L}ڠ@hϲO4<ſPX].{7mfXV/^-$ЅwgnQ}[)IPEb={̦n$yfs/NmhFUīNZQ +FC(WPDPgtǗ\ dKϊ5 ]Nc_&R'U#PeDJwhPK#SxNi{*+>;codY kЏ՝)0s70xb/-D?<S&1/FRw TW#Jމl|*$G]?wZ,g_aF_ik A: 7}Tnft_6fSV8(i'CE$bsQ| N>lAdU}AOᇨ5|aA?tAR1Q}p¢$S"ӈپ~//C x+S{;?[ظa.~~H0g"?vspgӜ}~2OR|ŀIq&kl!Ɇ]v40넛Sl< dخ tN'_x endstream endobj 17 0 obj << /ID [ <9CA3FFE48C8975005263CA1646F2FE9F> <9CA3FFE48C8975005263CA1646F2FE9F> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 64 >> stream x 0qHP 5=<Bfś{bCGE}V=?x endstream endobj startxref 5791 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/0000755000175000017500000000000014613513621027211 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/none-zhfonts.pdf0000644000175000017500000006701514411653175032352 0ustar hillehille%PDF-1.7 % 11 0 obj << /Filter /FlateDecode /Length 4818 >> stream x]ˎ% W/~A~0NfgY1Y@l ܢѥK\sDR//ӧ˧<eJ&GS^3:ӏ~6雇W1|||\O_?|g{OT>_|{X?wUwJH)ۇ?N^wXU}<ͷt$B@lC7#;uУЁ1ƇstgLtةx{tx:06} Fgg{|>X*s.&&O> 1z 3 paUXbD*ot8ŖZyA1CDƔζmMHA`Gb")4 %ga7{Dۀw&r &tD˵:*86Y'D &]$3A<]/a>%v}L= |JGaƜ[l,%;kM;ƈ1EԆ1M ẍI<1A6L| @g&B0lM޾5ׇR%[ݍ?^ , :x|#$DșNBtAG=ӽYA` ؝ibgtoLA¬`0 v( -f qgK0B $tD1S`р,\ Z0e၅KI_ õB0Ȉ8MfڏaR(ab)|r&ֳɞ6 ^Y0asB%xW^a ȈEMLmDۀf8O%Xb +VHqwn!FO{4.2 tE RZ%Ցu $gOP!> aК.,T!]P wAv%Cqƹs;fa :dv%bnye7$0̮b,rH_ᣰK+b^v}AGvØ{I¢ۮ/.bOW:vAgv qb2f*!/R]f[ʰl9aB2w;H>!AGv%C] GwnԺ"ΆycW2 DE oHc@]0@X5B a̤.!5B.y$dar#)7 “7A<@HvH0Ͽ@$$F_e#L/D _a^^Cz q좇C${r0Xy5$ S )P%><$KiFG`<$3,4$*p*8H/9T$G tp@rY%@/P4B H@7+. X@K<b^H@xWmF8~rb!PXO=c*Q@aA9BV^Fri"٠b5KL H@M<  + 5%$KM|!&Q@ ZBjJ .+E5PYB70-h@He@HaW2HƱȀȯd;-b^ G5t<  1|E!_ .N\ W'^"c2@|ZY/k_P ;4o2`Z4 bXe@WDŽ cO-Xe0-u"_&(ě$2LP2ou("BJ y2 PUlDME*Au,5ev%Bl82PHd@ɰB #)T)auO@J~`e.X@*JGfW2T k+#+k@ΛaP1AP Ni4؀J0Q-Ehh,/c)ں+70P>5 u@<&J> @JG/`NNź[ r~q{TtqL.!ηh(}TJ?[پЭAvpBu! $={eB)L ёVPQ #Dz Xv@m+AvUm"b4рXw@m#p9Ǔ娺X)r :k_06`Z2"4BDttL5ffJo@X`ZրȎ°`ZրHk`K5a0FV. t :,ᆑ! ]6q.EcaR d1ܡ˔b*25oM 5bHÓo̬:Y vZo\{mdv 7mϳͥi@ # Lgcp= `\`ձVwf'_OӬi"ܜ&ABϠV7dh,*fZT!ݠX60K5ArMs0W[} 2BʱIuŰu+ #.feU83!sIRI.mI[_!b4ۀv6Z(CEgyb1rYؼ*M!a@{\6o% Yd J akV@gʵ5RpH `B<8 &LMûkAUC:S.>0ȎY] 6=B"$l9؟\=%j@FR+ER>Dς_@ C>f]K-Nw} [u\aKa(t \}0HorNu pWB|0Ӏ>;1ᙯI LL ]Dpㅽj1,G(૭e>0!^N&+[ӂF/2s ӱ(o|= `XHSS >9Ֆ*&tpe[EXaߚ DӁ1dQ b׶T tny,TmҒz6jƶ_@F07sK|m4|} n #q`[׹({$ug/$ L*nS|ےtp@0dvg:BhMע:_0rih!Crvh@ۏX AWKd-=}-W ~ rڀ,n25Ss\W09z]2_2It'cyx\#ڣs>CCJ=V@;oכ2CW^@m#k"Z[ tOp^pۚa!D)~K=;5 h[gf9.׌Su\5wp[OLU욁z|Mܲ8)x` ,Fp 0iQks@cTG}Ekʈ1 =IBZp525habb8cmht@0WVPC>Kb9>ZK:>G)l~6|γ,lO9}hXx9i 9 |$>Kal}>Im!ۢItyi t]}òR >g)l4{wΚ.TD({@`bMW؇) ףI|CG)?ɡY)v#DƜm{Sxn}4r^nHidI{-5*P>Oa,]:Aڂ#u@ai ? t@ğYЬʇe0`9{Фj8 4Bmt@c&sc  \({w5/YBu(QKr1,6vԪN`A-Tqz+5'ơ ?)`CLv bU˝$~lAw WelqS/ z1q0OM[CxWy)@D &BW Z̥DhADP? endstream endobj 14 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-29T08:57:33+08:00foo2023-03-29T08:57:33+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:f9e22204-4a7f-a344-0537-da3767750d29uuid:ba086380-4a72-8953-e800-685963a73f0f endstream endobj 18 0 obj << /Subtype /CIDFontType0C /Length 368 >> stream NJHBPV+LMRoman10-RegularR  "B  &    ` $ %' &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityNJHBPV+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈uCn To  ! &' endstream endobj 19 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 20 0 obj << /Filter /FlateDecode /Length 367 >> stream xڅR]k0}ﯸ{(ؾveZ^mruM$a?~3v{ɹftLg&-fNXFQֻI#2dZ/$MPdobԀcAC0uuxﻓ,SyS#v0` de.j.!S zpGz-Mh-+2|cZ]3S"#4UU5 d iU*fu0B綺 `]ɰR* XI,g4^,3"NDž:(e&ٷVal ٯ{vw~~0 endstream endobj 24 0 obj << /Filter /FlateDecode /Length 16400 >> stream xڍ ,Wy&qoD{c#ʭ*=3UzZЮ']HHaرamLmƴ`c@b朙t ج2f̪çʌ̸>EU+oSF/i)j}W{|-x?[x^Ђܩ=O>(T7;|/>MWdYxV@ EM37>qw8wxk+D\ )*{7 ._VUUkޠ]YW^3щL?/ \!㻨8 8~YQ¾~"X_Cq*WTpKQp/*Jr(J[fS4n[|QQJx?GQ*8oMQ7+v_kÁ6Q_AqL]ڏ}EL_Rg,?P(S`)O@ٗ/EYmEYAV늲r?(]AaEUQ6PC(&ʵzFquv[E9xDOܩuE9}~ ^Q*)y"~8PΫQkRkQݗ|ף7KQn\&E([Qn R ;vɱ:T .MYQ jX^v; uvH$jvղUTirJ)w+j- 3mGܷeeԝڄKesE}4' `.rBzzii5Rk![E.l}ШQWJAD(rzeӴuupSS9E*UNhYw4iROXgԿm ,6BZ8: 5%4[$;X4YDGlV3Sݦ!5+Q!h̴ØDƹ.z_T^PQs/볡mc_8͌V3scaǖr"j% V}uU 08&fjhKfd "[m9t:'K'Bwrݐʧaz kk$tjwl!(fg>nFYjE@jWf BMCD%cn$ bP ȞQn|^}8ev_j3+ɿ3<# l}AUBjʫVp(Wݬd=Sg]~ʊ:^ q,ToXM+,Ja˽6B+ XUýk l \7.r1P4הayʍC4rIawaS%srk3*X;__U=U /ŗ5JrƄuV:< 0X3^|x1 m#~:6MFJ%l̬:y沪5tw0qV,EF/b`XfHJjզsG UGSKYgw9u鰷d<s]#(\1뎩q-2&9EAuB[^VtಯΈ[Hc5t` M8lEΈ &™ j<=!`n$-N?9Z|_ _ l0-?~cnJxhId!˘t] 5w&W'՟ӝi|0؋Ԃ e^.syw,/S^f巕S Νٰ^tkі?ЖP͘ÇX[ mc~t=GLNj, w騪ӜĄ;ff 5#pji7q0( AC5=)RPH.ћ Is) YjSD՗QNu;iӐgJ=qb!c2P!w)BGY>]Wut9UbeQP[=Ņr[=\ql)τ&5mcx`[&t9啺ϣF!=+[R,̚†=ǩjf5fi5Syuf"aҳChT6qmN8<zBX,(EDi}eX~뇰]0U`b~%=n6#@3uD9F8eR+9- ~LGVy'zXӎ.\pUV;j6kd p&<S;mzqɋesՓ]j) n9\ɪ"DNG@kQ {=*TӘ0^C3Y@m½BqEC::|:m3 wh%''b-QҚO4MR}unҠx!w9llhp:/U_@>DB:Yr9nwP0fI!6rXwϼz6k`y#Yy֔JMhݨ,V -=a.ܺ`V0oJ!&yUH4©`F<*8 y35e!Ĺqf`4dޭ]Ϻ;+Vp1I=9Uw 5:%n?o"vLXp:M&i`:~mĮSdUOStI+`LhjdD'{6eVf^M 8D(d3 W FHh PجߌIe1Sۃ{{x>8myAK6wu"'2skPɟb;N 7tJo>TLN}ULGX3QFhSʲrQ"<1($)bj?]ºc1h 퐳(+Y?}59 $ ˯ܷ8g"a+l1x:߰ÉGiN<K] Jv6(Qn pe $oPB^o{jA+3Q͢쭖}DVjfkhk&b.MRQ]AmO(G72_}>*JήVlMYx>b6 1V>rOT^w?G۟OFNڳuR#;6a&>\4taT4Rs]S)r˞,j1T"L840h3b$s] X͑"#+ak/ÀYUf_RP؟O~V}cyO۞8ѫ"6Z7TlCpgYlnf,J,l'-^t q{I=7ʕArC;8V]90Q]:Gn(n:].zt4>z7yjcLUT/ oBعJ35[&OxRL|m"سl>ݶ5bK3s圂~ CJx) kZ'317~:,vĿ~ٽRqmG|%!d#4ʛ;z'L(nFO.WGHK?QDQD\mp{6c(a1|vr/zx5ՂRWd7ȴ铛jzVbHjYg7Q@՗X Km5j܌[c,?(D4*ܼ﷚Ҧ׸5V[Z.Dʈn`,Yj[-2!Рw0J"aժZ0]W㇎h2,ՙ3tS%4mr<=8yĢK=&4U+& ݵ0=:nMPj⎌HY9J%lek oP{ /ys `,O01FnIg+cwl\lW3nY (!`M.(ʑ3 /,pw潤 ;lL_Uw$ :F0C]6 : fvޮ!W i"x +DMFV1K6b3fәJMVrM?dV0)Lr,4|G/RRl$A%3n̥t(egkVq0H1:ٗ,n$mVGcadV#eZ?zrћucv 9%9pF՘٫ޡs^(Wʹw>"v?j1~т>13#h9#ժs~O.A@,+} w6gŢmp8濌C%6Δ6l:( ^ t׮LgcD}ÐTl^E>m%_86<ۮloG$G-_mIc+$kU(VH: [,32*N.paŰfp 4}xѭ PH4bUjSwf!"fq<xpRʀ @Z4p#o3VxR`>@J.ѥh>4̻g4#,q}Lہm&wʦlmLtc ѳK߀B\ZKӹكSa0g~2kmd혿iVg`z 5uå)tSoN Ė &#X XrϿ2Eɹ##Bu/9lϠ5v}>9\(TqE/| * H@ WeSmhTٮp L[ I˸N.axpM_#`YP{QۃdC,r!).aҙ8x$U_CM hI a,H 6'iWA+4yս[mj-ǽ@ 8yJ6c?oj{\.JZTi"E by<7 9Fg4_AhFɘ֜kטm-IDJE0%Y35{s1kTyiilYYitf]Ni?'ɛ}P1E^=aՕ[˳dv{kIN|wr=7pNnc?ЃU&t w*RgDc_[|OF{eG]/b)dP컨 S͎EQ$'Zɰ贿!̤HyNja:vl]]HzŏY6X{=%Kgt -/.aJm[c)bFyp[]ǵ3\ړOVJ$XǢGȕt:V!gZ-a,~U[/{B9۴PyUkphtأ4r`)-GUb AٹB2¯F̒DiV[fAfP5lC(i9OhDBтg,M `ҹy2rnlm̂N6N'gE y/5U.jXǺL84Lسe+7A=݌}K_wIHVjv4E-@F-!ĪQQ\ջD3|i6 lH'ʹ"j#.XJo%1nd?aoU'C4'JMTԷֱ>cpdx7àNTHH+D^~;`wX?@I8 u6,n QCM9AktjjlqY-2ԋ%1/ί£0W$ilYĩlIḾM倦 4H-Rhav)mq @yΩ~=C0BrB$,k3ɩق$]TA,]O[t;VNZ&9h`sS?꧑_uQ|B2mq"hVQ+(7ԫVBeʋCf83̀;8Gg` !Dl0wD@mLIWb x#u6gZbPHڕޛ}n!ˤ<5:Buo6_غDzQ/dir+_ a]':캲"߿PlX"L6D(;Zcٿe}γ8]q_ۀp|zOzj2Z34Y8Pq:/NКzuBRL/Ds:gyzYBە eI^NXxWbrj8Z}s3'B$vfr4My `^}چjwO& /ZYf M7*zFL dN)U;}vZF'W45ܕU5" 3nPV0ĈNQ EFiv'JR5[bsIB!5G]HejQo…^Fy#57ՖiSM_/R^ -ut I<u_WSeagHC)IF{ٟ, 6 פVj2wИ禎j%c̛SO977m_Eς"2kjMO_ذQY>HFoR^{@L9zg4}-a$Cyw-z9o+[` 0duO:EejnɉILY͖J 1u *<XFVhfUc1 _Lw[?1͍6ڬ-raOL0's f--ʟoy$To/[5,4yO؏>q,2bdhj5w^!;l?Qa[Œ[Y5PA:y{& az)U |ӶJyϧbO]ODf ߴ~/L O}fFx[q Ro7%LtQvOv$\)ӻ7oZ"h[&KKa܋~v`jgQўbyYH:Kr{>Ad( R/Y*畛;w|$' G=XO+16Wֳrhkxf7|УNx747.lFrCKh)Y000Y/H*eU;\%ޤfhW9a ze^"hXF;|!acNt4fjoqso6DdLB6AFMm-1~+1Ɣs`F+qkf0p;@dUיC- 9p^YxQi+X{k:˥3GBxw-Ę}PKVA-GZ4e2]Gf^!ܶ7iwɒQ+Q\*[Ŧ0ìUe0rWOy'Ϻ׊xjPlιFz)t?f]tv .!MM)mpߩV׍q|rmmFNB]p9'0 Kuoh)YtR+/v Pͧ'H=.BYp:&!a{8\c[N4Mhb&f5;g@:ocDxkbpȴB1a!|-O,isVy/@ qytF'ZP̓~v/?cH(qoU޼p/~w\\s7ߨK'$L/Ҭ M?d{p8򀢉tT}SX쉙 KTB"Reou-͓>F`rb$1IfcAVq{ȥk܇[:&"Y:9MY^:0%T,mfo'; |jCm\=D<Zz^QjVf:!%"zTz_sÄKG7kZt܌TݜN'r۞(;됁7?8g@ .G`_٧ݘJǧϙY0.j3z!qZ?U9YL8uô&n eˊ}nAS66AXRrOAk6/N̫fX,$F:Tz%W[A7~M+ <]c'!SAbNL?%.hJ|L PQ2vc}h{LԶai E=^`fUu++Ӓ@3Kz \]M$mhGv%"x;m?RǼ\\O^pDwYT g6_/ oy7Ɔk@B0% Ⴜo+_,״($C!|vQ.#(cW/ę\d.ĵEG6t \*3# d/~<_ 7c˻M>^}JQ:t_gћ RK:gࣕ`˛KH;<_\//nU7nWb8 7-xvgҶTZ$4n^]@t0ɂpfs1Dr=YyW8 q/eM08<ow7g!"ۦtGC H5O&.dejn]^r͢G5ݝe'dKmwDǏ#Dl=̄0^wSC(|xث(5ծ`5L^.r5'C>cCƁv9$'2y}A,ޓΚ).sX5j`J>ӄJDd:%&5d_n$GT1D6ݹ_qn!jfjٴ&-{޴㝝ȗs]&0Ch0MؾZq]@S]m,EL^9В*TԼَk5̌f=ŷEz-0m(:Џ [QQ/2%å>/`3]90ұ8DLi DI5Z4й֐|/u.:iK^%vd‹&#醯5B8.m>l=΢n@2JfD·[|VR+9ҺHtHTph͊БmVp-M@詏'_E_ڬ7xJ/%HQzn`5PW 98bq%e4IIYbHd 8߹9;c=ǢюKJη7s {b:`D?\.,"{S_+ƙ@7ғKkܷtfgl}և14A;},䣎mFeȓ."pKŵErUI,GnwDk;:{6}FAn6Gg6Y}W$7eBT. ?yPve(7#B7Gd Rї!˜ikdOSJSy _ K'Y\f 1FN~?RRt([s?k`-Ezi}Ik {[tFӳ;1]⬳G. r#"@~K|D*m;-oF_""`[ ǚƥL\gζVEsÊICfrfʷ C * /'m8طB+< dcZM ``Vxs)|I\JHB85ghqtᵭu29\ #_}<= y}x;ks~9l`otaܱzcף2獕mTX_>>]]GGɱ:aԦcޔ7e|Kr`Nypu?^'XDisK8?3y[]{绎|fX2>6g￀{PbG{y9C9AjN~|o+wC^g;7ͳ*<pzz|s$L~G_ϸ׋Pa+=K(˳/}"-8eJe|_o e) endstream endobj 25 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 26 0 obj << /Filter /FlateDecode /Length 1014 >> stream xmVNH}+z!nR|[!2 W6q"'y@ڏ߮:e 8sNu}b9~*Էt؝uZ4>M.! :֫tTm{;n9v\4G}TBu}g_[mӸ((~s|APP嬿tJ*"?ơmIJf&!ޙRڨa>almz=v|Cշz8NLR]}4mgu#߼:/B6Czz {ئWd36ן\8un~"m7a=:[Xܨ>fzi>Fz|Z0Qι)r.!QhEf U&fP4@ֺʌ,mͨySK^NH'tX>CŒnI5Wck<[5N ligH7m;$}lKg.Y_K2 ώRg$ D:9g"}Us<rznj(y2E^9 w5:12rp> 42Ş5=x'#7s,Z>_c$YY_+=髢Ǟgp0 ]oɼW~5Pb/>C#̟̻R=ZVH=7p"~i Þk/OWó1IrY."!reݻLVm~o^>MS~PG~G9{c!}u&z endstream endobj 2 0 obj << /First 140 /N 20 /Type /ObjStm /Filter /FlateDecode /Length 1216 >> stream xV[o6~߯8ouPXD]u.q ȴ# Βa?~ߡX݆->Cz$(G '/'aԧ=P/ɓQXB8Q}""DŽBm dqn2O~yɌɺTȝbGadfn`;;o+܋uoȝln't p{'}!H }?ed1}Pƈ $? .ޞ}қ$DZI+'Cif/5b,_QgPg)s7 3vV `iʴȶF:Awcl! 7:)!0~PPԓ^zɪ3{HA]V`bӫ iQߊ$,=WkM2"1}v'B~M#YIN*' ,SpyNC+Mte@V-+Y~~~~~e'ol3g遤>Β\80Z +);DZ|N!h$yIz"?w(+蹶-@kZ?lo)nGں߹Sd1 %EK[]) U#c1W߼/gA{55JF bw'Vb{S=P֩z*6!o,iO\$W1K+RHk r2>:)OJ:ԫd>Eiqc^ ׋OA;? OoÚÖBxItgV'^WD'H;.0|<ƞkJ&O"z~ܨuetae{-3 ] /Info 29 0 R /Root 28 0 R /Size 31 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 95 >> stream x wŋxn+6A+ba[fBqBI$Lb!`=Y/.F$ -RIGj endstream endobj startxref 27847 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/02.pdf0000644000175000017500000002240014411653175030130 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 252 >> stream xڥj1 E @\K:y+]Ȫt]{I܄@-ɺWL=ixwR SDUSʔ}ra휙 2(fAݎ UEŗ?LU-"''ztspԲE,ᴞZYK[^zoTdz)as5/'l `9zv{P8FJ̆'.ؑ6CVP5o{pr0<} " endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-29T10:08:21+08:00a2023-03-29T10:08:21+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:18a1dfc5-410b-8b8c-2b6e-87835a2fdd51uuid:4884fcd6-4949-bf2b-32a7-4a9c049caee9 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1411 >> stream xu LGw﵈!,lbiEςaxPARD|<*DIQ4O@xj VwΒ{T֤_&3~ߠ@(.}hXlꗞ>KHJͰ civ.SXW>RxUxUQ8"zA2rH[-ްG0)%k>X672vƦW)R33O(g(C""CY52D"s;Ğ-@r'$ F^Aާ0^?_ȏ7ZŠTTHh9NxĬL= L|vE0n-4>GO[Q>6,l%Wl ! m5OSG,hr'-s~![ӢUdWGjzD m~TvJJ$HΥRJd zё2.@lҡc&ɝ`7v=bȠbj:c7ͣ()xq&1{z-*I[1u]2|O7(Γ>mh.$WyZBC dD5dU~? rW>wZ? NW*Ă^~@Ht6VXHЂkZ]kߤO҃ I=汮0`Stmv8C?Īt^ZM˜tg> hVvoez+w:SNNoծ>N,5l O/ahHFzKCOL#/w|LkZʙa=!B&Kovƌ|;3# tDض?v ʘ. LUkd-Q W|̀n tN٘KdӨ/p ~,* jTc I4vtpvfܑJ h'6#8/|<] endstream endobj 13 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}j0yC94IK0N uXX l+iд??F6c0gtA)pTeWl9>VFkZȣƍ�H_Ო[Qe)&Cv\__4oVqlD]U0Ce ,}7ќJ_cƦF0yLŎc1QD4!Z==M&D3͈D)#)ώb{!K5ъhN%bD17]QӠ,7?_(;͡N˞x&w`_w? endstream endobj 18 0 obj << /Filter /FlateDecode /Length 1966 >> stream xmV[GG?{=3}]>|{wױ;$Db$6" A2G@D>BHE)0|`8BG$ $ JU]=]}NO pɿ7@3(h "JlyyloD>'2{v}ۿ'ęӏ}:y7Ϣ@7!f?^8w?:0k*0tkk!0xbϽ3bU(zꩥϒmx]~-\B"ʗoX e1(3=vEev=pQ>,o>M(i6l('ep’4l reb?(lCn)f6Ɗb:]^x$mHbv3"ĭZHvQE'%A& ?%ǨS{nxQHdQ϶a~,MlX0j =QWc@!oаxHff/G7{~`ݚ sCo8,ظ݃Q@s kr7賽p+UzWs9ԛqLaJveiZlF؊0^fJh8ĀEp,k>>+f =A]|3_lk>+k԰L%̅IJLZI &Bcp.ȾQY@M+,h `IEO(W8u.rI'$M?ڌ GA?|FƯILo2pP'Äfq% qL-/B [/J1TX$##<׻/wu7E觻> i*JJF 1STEy0~#)Hg6~X!`ã2Ӕ6;_YsIdN%A,d!;q0T^h%Kd_\u<Ǥ֎k% gRzdTuNίm,Ur皻P_EC0 'X W.NSlŴ7LPrg ?u=m48IwT&nM,;-k!t=K:tgASu$GTmzITRh}[yK[@[Cq mou0<=sUț1؇^0mu7ÔvThFN$F"8J(Oĝf2~]y { 9~rQ1970cw endstream endobj 19 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 20 0 obj << /Filter /FlateDecode /Length 433 >> stream xmn0y; $Xq~h !,V 36j8,v*snOshO۬z )",iJƖ5E'3%=z[&zZjzifoj$Dt==qSj74[/wk7rM/o]m endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 983 >> stream xڭUn6}W:,A [;5<2`KD ЏI۶]Erx83"A!')I!%TL "R`'(P 0%!|ÍYᔯ~F||MhƠq^[n՛<,wf^k6U#e]J iK\k `Y*~-rͭq~Q|඼-r (hDZI絾\^oNEed<ӻcկƭ}Wm+o-H ќpC/ ERn/zWd^W"{ iE?+-O%-?*XHr)D QNߨ*wi!uo=k/S*;LPw8\XROeo{ޏқj)Nz}dfWfoV,JsoksSOLibS MUeAt[K:4'G#ߜ4Hiܸ)큖9󄧆B d)ř7BŅkG~vBxx>=%6uU7WG;cU;09^9^?f_8M^~Dd_~@3DާtYhs$ Ϝ؜[<7ϡ\V~ endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 84 >> stream xȻ 0E{cDA,-\C,ERfܿp {<8)psnVzx|<p endstream endobj startxref 9158 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/01.pdf0000644000175000017500000002341114411653175030132 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 253 >> stream xڥMK1 S4 ~{{[9xTeA<K'<@Ϛ> 8'cyG]œj{_@QzA!ެQ_>## endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-29T10:08:41+08:00a2023-03-29T10:08:41+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:18a1dfc5-410b-8b8c-2b6e-87835a2fdd51uuid:4884fcd6-4949-bf2b-32a7-4a9c049caee9 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1916 >> stream xڍ{Tg Z1w0>S+ǘT1Q彂Rr+,$.,VJJmNb!a1C{DsrgΝ33{?; [r}{6X߲')Hw0KP gٕ> \JQלJyPHRI*R3q>%~teZSry<5|͛? 4Zujw&JO>ԥzcL01cl[IŘ [-|0_g~k:GEd(D-$.?7dZy[1xFx2XdL4Q*'>acz+$ ;bAGν'յNWMB/TkÐMlNo%Nk+cV@F5Du^$'9NT믮tB;K< +bh/#8Ⱥ1Q-l2P>U w߫bs w۵bNz$'IQ-"ƨ7y\^eGОmE =&pMcɫ1QHs imJ9*+#LBUdR[g#{ Z8}K\!xF@c>uVA{u-ttoک Kh:[^]Un-u'fhAv^&ao0wP(]Qfwuõ.~|/oSH_d ƈvTl>%Q V?J\@LVvշyE &/Y'V7eW32KPVgoQ1[x5,/,2 fLt$JӐB]eJ6g(E#vdRo(!`~-ahZM5VIdoDxyw:Bgx(&@FhRWt\ZBbbuB[)@s `)usp&Zj] i\e: d=_#tbq1 opgsrrT0NBra,qBA:/&Q].E鷍}|lc(K:,LSx}ng-{#3bgO>-@R<dDx]r}/o${{R"3R*ϊ={ͧ{ώbSt_L}r}}=sX7"E'z݋o?_B&q'P65-2v,uflfg1GV5FEdz͢落sB m‰uo &7f'*4uGs$\tݖoCO&è{2ÛaycR}||RR||}Rcc}}#=(Rbt.b/MFXj2I.sl6IC?(*K endstream endobj 13 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 454 >> stream xڅQ0smZ]u)Vº+*ǽf6)i ܇$*[(?k ^c0|dZ ]Uߟ-Q6y_`UlI 8ũةn(Ub v= WU2b)i;ќ%0 3~/=2BT˺zvBrޚD1pQ4*J34p-= <(0Ah숺gOQ y4|ǹm۪:5 xgx*ʸnڝk&*usygf,> stream x]V͏Gꞝݙݙޝwmv^YI$UDb IJ@8 ).D(@ƾ K.8|Hq '^ϬuFzWFI:] x|Zu &F}h;0l_Jn =.6B2/^NTҕWw5UX`r ɉ[pmm ,ۣh#fw_&cU5V6A!:/䴽gp ?Gb Wڭg FCF7B,\aYtE㲪9v"ür\dpE?|6aSf /3/X6̧DYIpSu?@EÏ\o:HF5DMO/%X4[" cQt0g$Q%!FҺ;q0$J~qf@ L|R-PuAŘaG:S̀F": u$T$KWI7f[G]-0p 'Pw\14؛ 16^%ǐ43m1orуmbBW `JT88Ϝ}&y{Q._`0_OϑY̹%:~Uz~LZN;6 T5S a?AmF:@e6dffe-Jꚤc}"tBmx0z4VHMi>xk@@E&lב:~[*44XUvY[l2qkd߄QC.|\ez+;-Jl%iIݤQx4W(?i߫Wmo<':Bq-pk} ͠e56YVܵ'&h F@ڄqɅd!0+/ѱmc qÎAIĊ waQ4L@+G@j/ < 2bCҙwSGۈ h)fB0vMhS炐HM9b#]{QL by>g}% {ybpFfZ=OI*Hhww؉b]~;ws3r~e͜ӯJ{QƮ4N2&wvbO+F}Zy>JڷE:Gჿ G 'Lz=Eo晣 qzFt) -=+^m|VklU-|": .'>4cN Z)S&NѴ\b<2HV/Hb94kIL}F1d.ƹfk]˕z9d~j@ @< P$\/'E>7E'g$ի~94y|/[n[SvNO,]ua?o-vi`&N-,9钪'gUxQj@!:bBY_ PZޯ{h;csC`C U(!`_N`| 7ԊINQR/^k/6s:}b5T=P4>ѦW,dir.y1(F#tNq3w{e^i6XYX1t&`PT_"$pzPDp70bhp! 3vC7&us,fj>azKb? endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 434 >> stream xmRˎ0+zHpy0Î h>!nXKĎ䀴m."vu'_ ٷ&eG޵ `\nF\VzLJ,b?.z3C>B@y~n>1hc+yjG \;Cp4<0.aj2ka˓r%Dm;}giZ3L?o k`re8nP@ #T.ㄮ5űm u)w"d+XhPl ͖:ߥ4$s+"B (&4OBɖzS J^l h1\ͯd@kܮ]Ԟ]Pl,ݛrǷ^kM֤($ަQFAZ|vQ7m[ endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 986 >> stream xڭUn8}߯:, I] ؛wl;m"̨lɐh Pb!Q!)"`DQBʙ( (Jb1( d\qH ! s# BW'̓%֙9ۍ8;?'81R$09T,"AAPȌԢ[f.=nùG%FJ5kwx|LyY \BdەO'ښ/Z*/2L}< # N2n6+ŝ"MLVƖ8fq}ܘ&C1a$>8Ii:#Ko>a*-'"AXʨ C=s2㟒#%F|A;v%%4xoSݨvjowhGypyk6֏w/NWG0141}a/hpNhPzm^vye9snqx /tO endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 85 >> stream x 0Dљ5@Dw)Kqc_ y FأtiIpN ԜFp{Cz endstream endobj startxref 9678 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/zhfonts.pdf0000644000175000017500000007002014411653175031403 0ustar hillehille%PDF-1.7 % 11 0 obj << /Filter /FlateDecode /Length 5337 >> stream x]ۊ$ɑ}/q ˢ~bvW H#XVUGKtD\ TtՉ8n%\~_B/P2OK|%go?]~o!\ ~~.?zKX?^_g?1?7o_U.y1T.?_~?>wJ0;?|X LQ.JޯbRS. ؼDKh%#L^OGY'[?=ίӑi?Gb5DGETj?# Qβ'qסC}h1s蠐)Gc"KɪAs](e᳄P]49|@&thu/ɉDw!xFX4glٸ},/Eu]Lm,arDH 94 Yo|0|Pqm1&w3L)@ᖊaG:dr\ia)E@ۀ0rFdʼnDv>EkU7hѳ\0TwT'.Zx[&ڷ6 6 ,>K$<`,iAS-'SֲTE+uN0V95iAmXY[&3e&tiAewMۇRqaىDa( A̚lr%ZȩtS/NtAAeIR=Y&Pl2W\ "90ln T-!>"񑄈+J@&O^E#ccBb#)lno8վV  H rĂ<'#-HE#K̵bW /{ڂT% `sh!/<ᓄ-S1prĢfi8Ǣ*)0@&ɪ-j,|PVv0pyߎ+gMqb8: VoMtrk uNo[epj#4XM6zn}O ; z[^fqbZPKb*ZHr%XD4h9vC6L}ϔzQq8QNRJ RBKq9Z%ED;|tA"Y22܋ȩւLOt0!5sk@,ځ]Ysyc؉mjF7ZGWϭ1B3?UvS-:2{9c7ܔ. -u9S ^^BG_+{]r9],ȧt2^;ȡ1HA2T{Q A=S*WsIݠOry/ցdr02j9 t 3\; Sa@f0}]0-EQbZ}D@}L 2)xbآkAfI\7 dQfς6v0(i@XKQf&mϹ)K1o:(@P=)@Af3RYKmAf6U[{l!"^72LKsݲ~ "V-q'pMUCܒUBm!4 e jM D(NK @4霂 ;lxZtٷ8N!A3n)g9ɚE>1 DN[nc=#|٢NhP)8-!>KlP*_58b?NR1OT0o˜Zi*Řܽ6CEqe1{1iMKHUqe1{1a J; 9?nyeS'2y(˜۽,Ūz~~0" Sy &@E++0&qA "SZ-u1|c^)Klb%@g?2سN'<`j W? HYkNguXQ>x)> | C\1rąfx}R|4-hq.啅- GXFlykXRv,+CJEp20&2D94%h0f@lW4^Z;Q2-Rݰ!K`g?EL6lWsx.Bp&xTjtzAIl]rʏV8H!VSoĥZVۇR`.:tx^cigȆd=>ܺqkDy҃ &ĨbS{@3oa°Tpyǰ]Nkz(%Jkb3"#'V{XEA-[B H Lc}bDs#$= 9UhC64E,~X+MV s4 -ȡYb,TIukI 24^iW G9SSUB6u 2ME/( LJrĦ(.PѮ,WQq;JېMXCK*]Uy&ed2iۨ.4ɮB 7Y !Y(~PQl~$JҖ uqC@dґowwvwDl?rG[n6ƃK=;$8_ mH~:np#Zu9Ne1`ǻZnGǙK.+vqdZnɦ}ttXh|=Wa%` 碝(M@LJtp@\^BL2ItX"Ls0'{$ l,8sw\Gmk8Z-1S(s+lQrd^2+P/\ ̾p}fAmziG-쫣5~#Y' ƔDrKYZ[hh2Ua b\Dfk6-XW|8uռ &S$"RѺaKPAxbծGm~#LyIJ+ V $FtKB$dp)vV;׋W^!{zO#^j;_݅BK)9dW#?;: GMW$ۜ-ݸcJwIѣmV(lvo1`CŽKoRV;*8Am{nT:Ж@&7&Ύz+D C C'\iArtY!'JMoQCmIk.!GscQTw .^Ur{x2JRԁdj[* tGu@`?ӑ@$n7=.Ғ]%$i;n xJi!!Xp6Cwx "hAf_!b#ٔ!Oq 7vKB 1!:<$kX Ȏ9qX>'^lv@b3[s]m K MՂ}ϙԡ;>]z;&z^ZC>aYS*qì֎aGFEIn!rºVb<̜Ř#% ;>e.BWIf 3& $ݠr:#0: Ƙ~0#awv/w WiF^i㫣 cBHK]\-Wc_L^c7mSF 37u~VOWB2zgY5;)K@ld'ҹFԣ$ 7h EX;>i@nN:t#wDb n6U

,Ȓ5֞I^50xG^erG򏴰]>0k+}7(:9Ha_lplAj\X>f7L^=sTp&+V΂6fv6-z4v@Qů@&mHx`> stream application/pdffoofoo | 2023-03-29T08:56:55+08:00foo2023-03-29T08:56:55+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:ba086380-4a72-8953-e800-685963a73f0fuuid:c4906709-4919-a84a-05a1-588da71e6589 endstream endobj 18 0 obj << /Subtype /CIDFontType0C /Length 368 >> stream FFBULG+LMRoman10-RegularR  "B  &    ` $ %' &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityFFBULG+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈uCn To  ! &' endstream endobj 19 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 20 0 obj << /Filter /FlateDecode /Length 366 >> stream xڅR]k0}W=klߊk;/j7j h"Q%ZL9'瞛)q8c-[EʙL%Ȑj4x 48hZ}s.nsL/FmgY'HK ›BA.ã2ٗVzGUs)V !E,M N3.՘w0Nq?ԡAP pi;nT73*.r>rAI[U@ Ax8^器bfv_U7?+UJQ"+ !FQAO0,_̡julȶcR~"}c VI\| 4c b endstream endobj 24 0 obj << /Filter /FlateDecode /Length 16400 >> stream xڍ ,Wy&qoD{c#ʭ*=3UzZЮ']HHaرamLmƴ`c@b朙t ج2f̪çʌ̸>EU+oSF/i)j}W{|-x?[x^Ђܩ=O>(T7;|/>MWdYxV@ EM37>qw8wxk+D\ )*{7 ._VUUkޠ]YW^3щL?/ \!㻨8 8~YQ¾~"X_Cq*WTpKQp/*Jr(J[fS4n[|QQJx?GQ*8oMQ7+v_kÁ6Q_AqL]ڏ}EL_Rg,?P(S`)O@ٗ/EYmEYAV늲r?(]AaEUQ6PC(&ʵzFquv[E9xDOܩuE9}~ ^Q*)y"~8PΫQkRkQݗ|ף7KQn\&E([Qn R ;vɱ:T .MYQ jX^v; uvH$jvղUTirJ)w+j- 3mGܷeeԝڄKesE}4' `.rBzzii5Rk![E.l}ШQWJAD(rzeӴuupSS9E*UNhYw4iROXgԿm ,6BZ8: 5%4[$;X4YDGlV3Sݦ!5+Q!h̴ØDƹ.z_T^PQs/볡mc_8͌V3scaǖr"j% V}uU 08&fjhKfd "[m9t:'K'Bwrݐʧaz kk$tjwl!(fg>nFYjE@jWf BMCD%cn$ bP ȞQn|^}8ev_j3+ɿ3<# l}AUBjʫVp(Wݬd=Sg]~ʊ:^ q,ToXM+,Ja˽6B+ XUýk l \7.r1P4הayʍC4rIawaS%srk3*X;__U=U /ŗ5JrƄuV:< 0X3^|x1 m#~:6MFJ%l̬:y沪5tw0qV,EF/b`XfHJjզsG UGSKYgw9u鰷d<s]#(\1뎩q-2&9EAuB[^VtಯΈ[Hc5t` M8lEΈ &™ j<=!`n$-N?9Z|_ _ l0-?~cnJxhId!˘t] 5w&W'՟ӝi|0؋Ԃ e^.syw,/S^f巕S Νٰ^tkі?ЖP͘ÇX[ mc~t=GLNj, w騪ӜĄ;ff 5#pji7q0( AC5=)RPH.ћ Is) YjSD՗QNu;iӐgJ=qb!c2P!w)BGY>]Wut9UbeQP[=Ņr[=\ql)τ&5mcx`[&t9啺ϣF!=+[R,̚†=ǩjf5fi5Syuf"aҳChT6qmN8<zBX,(EDi}eX~뇰]0U`b~%=n6#@3uD9F8eR+9- ~LGVy'zXӎ.\pUV;j6kd p&<S;mzqɋesՓ]j) n9\ɪ"DNG@kQ {=*TӘ0^C3Y@m½BqEC::|:m3 wh%''b-QҚO4MR}unҠx!w9llhp:/U_@>DB:Yr9nwP0fI!6rXwϼz6k`y#Yy֔JMhݨ,V -=a.ܺ`V0oJ!&yUH4©`F<*8 y35e!Ĺqf`4dޭ]Ϻ;+Vp1I=9Uw 5:%n?o"vLXp:M&i`:~mĮSdUOStI+`LhjdD'{6eVf^M 8D(d3 W FHh PجߌIe1Sۃ{{x>8myAK6wu"'2skPɟb;N 7tJo>TLN}ULGX3QFhSʲrQ"<1($)bj?]ºc1h 퐳(+Y?}59 $ ˯ܷ8g"a+l1x:߰ÉGiN<K] Jv6(Qn pe $oPB^o{jA+3Q͢쭖}DVjfkhk&b.MRQ]AmO(G72_}>*JήVlMYx>b6 1V>rOT^w?G۟OFNڳuR#;6a&>\4taT4Rs]S)r˞,j1T"L840h3b$s] X͑"#+ak/ÀYUf_RP؟O~V}cyO۞8ѫ"6Z7TlCpgYlnf,J,l'-^t q{I=7ʕArC;8V]90Q]:Gn(n:].zt4>z7yjcLUT/ oBعJ35[&OxRL|m"سl>ݶ5bK3s圂~ CJx) kZ'317~:,vĿ~ٽRqmG|%!d#4ʛ;z'L(nFO.WGHK?QDQD\mp{6c(a1|vr/zx5ՂRWd7ȴ铛jzVbHjYg7Q@՗X Km5j܌[c,?(D4*ܼ﷚Ҧ׸5V[Z.Dʈn`,Yj[-2!Рw0J"aժZ0]W㇎h2,ՙ3tS%4mr<=8yĢK=&4U+& ݵ0=:nMPj⎌HY9J%lek oP{ /ys `,O01FnIg+cwl\lW3nY (!`M.(ʑ3 /,pw潤 ;lL_Uw$ :F0C]6 : fvޮ!W i"x +DMFV1K6b3fәJMVrM?dV0)Lr,4|G/RRl$A%3n̥t(egkVq0H1:ٗ,n$mVGcadV#eZ?zrћucv 9%9pF՘٫ޡs^(Wʹw>"v?j1~т>13#h9#ժs~O.A@,+} w6gŢmp8濌C%6Δ6l:( ^ t׮LgcD}ÐTl^E>m%_86<ۮloG$G-_mIc+$kU(VH: [,32*N.paŰfp 4}xѭ PH4bUjSwf!"fq<xpRʀ @Z4p#o3VxR`>@J.ѥh>4̻g4#,q}Lہm&wʦlmLtc ѳK߀B\ZKӹكSa0g~2kmd혿iVg`z 5uå)tSoN Ė &#X XrϿ2Eɹ##Bu/9lϠ5v}>9\(TqE/| * H@ WeSmhTٮp L[ I˸N.axpM_#`YP{QۃdC,r!).aҙ8x$U_CM hI a,H 6'iWA+4yս[mj-ǽ@ 8yJ6c?oj{\.JZTi"E by<7 9Fg4_AhFɘ֜kטm-IDJE0%Y35{s1kTyiilYYitf]Ni?'ɛ}P1E^=aՕ[˳dv{kIN|wr=7pNnc?ЃU&t w*RgDc_[|OF{eG]/b)dP컨 S͎EQ$'Zɰ贿!̤HyNja:vl]]HzŏY6X{=%Kgt -/.aJm[c)bFyp[]ǵ3\ړOVJ$XǢGȕt:V!gZ-a,~U[/{B9۴PyUkphtأ4r`)-GUb AٹB2¯F̒DiV[fAfP5lC(i9OhDBтg,M `ҹy2rnlm̂N6N'gE y/5U.jXǺL84Lسe+7A=݌}K_wIHVjv4E-@F-!ĪQQ\ջD3|i6 lH'ʹ"j#.XJo%1nd?aoU'C4'JMTԷֱ>cpdx7àNTHH+D^~;`wX?@I8 u6,n QCM9AktjjlqY-2ԋ%1/ί£0W$ilYĩlIḾM倦 4H-Rhav)mq @yΩ~=C0BrB$,k3ɩق$]TA,]O[t;VNZ&9h`sS?꧑_uQ|B2mq"hVQ+(7ԫVBeʋCf83̀;8Gg` !Dl0wD@mLIWb x#u6gZbPHڕޛ}n!ˤ<5:Buo6_غDzQ/dir+_ a]':캲"߿PlX"L6D(;Zcٿe}γ8]q_ۀp|zOzj2Z34Y8Pq:/NКzuBRL/Ds:gyzYBە eI^NXxWbrj8Z}s3'B$vfr4My `^}چjwO& /ZYf M7*zFL dN)U;}vZF'W45ܕU5" 3nPV0ĈNQ EFiv'JR5[bsIB!5G]HejQo…^Fy#57ՖiSM_/R^ -ut I<u_WSeagHC)IF{ٟ, 6 פVj2wИ禎j%c̛SO977m_Eς"2kjMO_ذQY>HFoR^{@L9zg4}-a$Cyw-z9o+[` 0duO:EejnɉILY͖J 1u *<XFVhfUc1 _Lw[?1͍6ڬ-raOL0's f--ʟoy$To/[5,4yO؏>q,2bdhj5w^!;l?Qa[Œ[Y5PA:y{& az)U |ӶJyϧbO]ODf ߴ~/L O}fFx[q Ro7%LtQvOv$\)ӻ7oZ"h[&KKa܋~v`jgQўbyYH:Kr{>Ad( R/Y*畛;w|$' G=XO+16Wֳrhkxf7|УNx747.lFrCKh)Y000Y/H*eU;\%ޤfhW9a ze^"hXF;|!acNt4fjoqso6DdLB6AFMm-1~+1Ɣs`F+qkf0p;@dUיC- 9p^YxQi+X{k:˥3GBxw-Ę}PKVA-GZ4e2]Gf^!ܶ7iwɒQ+Q\*[Ŧ0ìUe0rWOy'Ϻ׊xjPlιFz)t?f]tv .!MM)mpߩV׍q|rmmFNB]p9'0 Kuoh)YtR+/v Pͧ'H=.BYp:&!a{8\c[N4Mhb&f5;g@:ocDxkbpȴB1a!|-O,isVy/@ qytF'ZP̓~v/?cH(qoU޼p/~w\\s7ߨK'$L/Ҭ M?d{p8򀢉tT}SX쉙 KTB"Reou-͓>F`rb$1IfcAVq{ȥk܇[:&"Y:9MY^:0%T,mfo'; |jCm\=D<Zz^QjVf:!%"zTz_sÄKG7kZt܌TݜN'r۞(;됁7?8g@ .G`_٧ݘJǧϙY0.j3z!qZ?U9YL8uô&n eˊ}nAS66AXRrOAk6/N̫fX,$F:Tz%W[A7~M+ <]c'!SAbNL?%.hJ|L PQ2vc}h{LԶai E=^`fUu++Ӓ@3Kz \]M$mhGv%"x;m?RǼ\\O^pDwYT g6_/ oy7Ɔk@B0% Ⴜo+_,״($C!|vQ.#(cW/ę\d.ĵEG6t \*3# d/~<_ 7c˻M>^}JQ:t_gћ RK:gࣕ`˛KH;<_\//nU7nWb8 7-xvgҶTZ$4n^]@t0ɂpfs1Dr=YyW8 q/eM08<ow7g!"ۦtGC H5O&.dejn]^r͢G5ݝe'dKmwDǏ#Dl=̄0^wSC(|xث(5ծ`5L^.r5'C>cCƁv9$'2y}A,ޓΚ).sX5j`J>ӄJDd:%&5d_n$GT1D6ݹ_qn!jfjٴ&-{޴㝝ȗs]&0Ch0MؾZq]@S]m,EL^9В*TԼَk5̌f=ŷEz-0m(:Џ [QQ/2%å>/`3]90ұ8DLi DI5Z4й֐|/u.:iK^%vd‹&#醯5B8.m>l=΢n@2JfD·[|VR+9ҺHtHTph͊БmVp-M@詏'_E_ڬ7xJ/%HQzn`5PW 98bq%e4IIYbHd 8߹9;c=ǢюKJη7s {b:`D?\.,"{S_+ƙ@7ғKkܷtfgl}և14A;},䣎mFeȓ."pKŵErUI,GnwDk;:{6}FAn6Gg6Y}W$7eBT. ?yPve(7#B7Gd Rї!˜ikdOSJSy _ K'Y\f 1FN~?RRt([s?k`-Ezi}Ik {[tFӳ;1]⬳G. r#"@~K|D*m;-oF_""`[ ǚƥL\gζVEsÊICfrfʷ C * /'m8طB+< dcZM ``Vxs)|I\JHB85ghqtᵭu29\ #_}<= y}x;ks~9l`otaܱzcף2獕mTX_>>]]GGɱ:aԦcޔ7e|Kr`Nypu?^'XDisK8?3y[]{绎|fX2>6g￀{PbG{y9C9AjN~|o+wC^g;7ͳ*<pzz|s$L~G_ϸ׋Pa+=K(˳/}"-8eJe|_o e) endstream endobj 25 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 26 0 obj << /Filter /FlateDecode /Length 1014 >> stream xmVMOH+zHpG)Ҳ2hF{a#'rW"!U]jb9~)t؝uZ4>M.! ᫺vU:涽7|;_OC>f:!nٮN㢠5}CCU\~ٍ_RE~ЍCےٕpQW38LBH=3Qf}| ?hv8J]_9pޘ6 iڌ/gyiu_QSm^%tMȌ!glosG%FݐuǗlaqq4ZytF:ȹLF1vf亢ri%'TAEZ*35 st @ qVPˑ^xv\O 3 Q&7Jۀ&}! "L2vI_YgLX55 uHfEbN"왇KF ]J(d2Pϐbpcnvg` ~Wr@]M.yxm8!y蟜a &K*ߣ%}pB_]efVoW8u6<Y_#ݴW$-j dm/(<;fJhp/4UM{N&\O#|=jeO/| <_VZf-7g}h{B/Sv ܿ {$H_ZLGX_C)@ ]0rBO3BJ-DhYQ#X_Ed,/jt {Fgj ?] ϢK$ʹBdf=Їel+~~i떿J/͘?;ȹgon & endstream endobj 2 0 obj << /First 140 /N 20 /Type /ObjStm /Filter /FlateDecode /Length 1215 >> stream xV[o6~߯8ouPXVP:u8Ad``d`DwɰPRi [[}<׏HPHр9N$  j<Fr[Væ5ntx/:IDi*g[G(n1bÆR]@d2>?{y~Noe;od +CevZ4rʼXSoT)ww 3nQ[ ` t@XUY.9u1@C8 Jmou2;@:ݑܽQx x!o亢3{~ V`5bo3 㙙ܪoEgj&NFa{\Jܧs =r}cz|&?IRb +8GXx]dzqtFW_9 -Ҏ G|,BoW7/g|;g遤>/p.80Z 3)JIMrnU K>Q_tKO~$= B3詶/ .Z zHI7ާ?UIs{]Zy}%pܛ\[<2c{ bVıwq\b"Fz9x/m%c`Ju[*:ӣR8^&mĕ,h^}Ab]d+[̧2C*MygТ̷]~n,Jf)\TQ6l{9(d~O爛 \Ykm~Olӄۚ6l%\N&skW;ɴ䱰g[6[F;8\_0C5gI gFܨ5N$,{wfa 1Z•)9oEB 8^#Dy]nHj;[pGꕗ1cNGo|5[UECyR^ ަ1p$QXx ~ -q 6ha1](bc٬Ϯg ٕoNڕ/LVL6}+##g n|/!%}x;n嚧skt7ޯ v# endstream endobj 30 0 obj << /ID [ ] /Info 29 0 R /Root 28 0 R /Size 31 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 93 >> stream xʹ >{{G,lGpp(<~G_ %\ %lJn'> fpO$ n/֗HT endstream endobj startxref 28364 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/03.pdf0000644000175000017500000003412414411653175030137 0ustar hillehille%PDF-1.7 % 7 0 obj << /Filter /FlateDecode /Length 280 >> stream xڥN0 y $-MH!zv8m1M8|Ŀ8_@x >=B8J(*97MTV~.qn6&sw~X.X2OYxLtWsi]2׽kSjvB<ՏPNiJԽ1"} )m̪*_yz8:^_/EG8"|#>|مqn'KC8=ڻCb{8jLj=敫,D6n?u endstream endobj 10 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-29T11:35:01+08:00a2023-03-29T11:35:01+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:18a1dfc5-410b-8b8c-2b6e-87835a2fdd51uuid:4884fcd6-4949-bf2b-32a7-4a9c049caee9 endstream endobj 14 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1540 >> stream x}UkLTG޻u){]{uX+6F]/(*Z""*vqqty( -"T*6QM[s..ZL$sfwoFATB:*4|QT@؜u+6剐i(f~v4X) q7LZƬnďU^fU,YyOOX_;kڠ4ulPppȻC?5BW&-9MAQJJE)b( NyP(OiSn[_Xu\pvT題WS娮C[ՕڞXDE0!*{t0OZA|{]d.<J|$[9A$ |f6A*@4v耖{,\DPu? zAF 2}\)qBFtx~z̞> 7.V6@XLp*a@s`+\pyYyhizxlAgpmsiz< %^r$m+@0ีޤii) 4YܘF]-zːP}&(K,XY]R6ZK;54 )% ܶ$}DaM^c~GR\-`\SѫcO"Exk0h7!͕TQuZ@pd»+o| [SG@ጬ$Muuț;D:Y:^1[IZ&hcX2'蠻mnjthnH 60f @.r+@B(ch&w{ ãSP wLO$ Ӻ7t:Aս;pB{cYCP)J|UYlŴq5)+<8}e4!d&ݐ{IK"ʱLI3DwL#Lt~Y7?h<`kx[AmcS6?ƒoGMq}SĪ5855I /ó!b8|I|crm%}n+*2ul?~MVknkq,+]PR f endstream endobj 15 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 16 0 obj << /Filter /FlateDecode /Length 436 >> stream x}Ko0$8yP$Tvݽx9ǁJ)R~<=z &oB`-[U>7dі(gDdioFZ2T%JLmy2Q/椵?@۠CR<@t>X 4W{+L*aoj/ }ڞL;!hiݨmcb8°lضUuBS!$.%s^%O`&1s5JMF%ú T8^s=0~*Q^u4PC+ϸF0$bKwDc)lL4%[DtKhfiH&'-R%=QJ(sm)^iԵmEwKPJ髱+dn&^Cz+)^?< endstream endobj 20 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1684 >> stream xuU PSWIȽ܆%ݒKEZZUֵU纕LH A\$ A p!pky l鶣K7k]wfJn;s饝&q:m=g9;/0LsiFhrK:S&2b,$9r l)Iz=FiRRBRITaCR8awAJB? =#1B&#bWmͳmwM>1ǘ-'\`>PG1)1#0 HaL2'3c˾sr+> (UJ-\?^̃#Ȇyt5Q1>qT\BqD(;z骅YM [;ϠuuNQ8W/t(\ʨřhH@T `A<às';S7URON'҉¬JHa$R;߾tѵ; HߑQŝ, ](#]CUs q 4TjNa%?ܰqv}SZ.YϟDRO"ن5R%6?k`zpnq;r`eM_%1[΂BNIJiyG;3>pT Զz7shTkmeUU͂hI~[j>(WQW<L;¦A^WIWQ] 8rnI{?Fje=ejx鿊WxB,y۔N2հ$&h[zփ e=Ξg~`zt7gse}_YS  L{i)sSc݀Jʮ՝k'#=AC9J.x@[67R`= s T5~}_fR~Jf9@r H}H];cu60 jͭo䠝V{u P@ $P tGqW,"ƄK&s"-Em :sG&wЦLf:mq4:rre;h',lN;`kϰmYKy~ XNF?ogK&o RfK׮zaf#o8y5(;Xsjz^įCV)~"#V[?ʈ bCz&}]S94d2cmMPPj4=?3g^6x ȩ*[m ڒG:J@>y=ɲ*G;J}=i3&="EZTHGdsvt贀RK#L<ԗ:zD3k  y) Az"&ܾVUBPu"> _]BUX/(PƌKpaY h8{$ɏ;YPG> &XIqJ3:Y endstream endobj 21 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 22 0 obj << /Filter /FlateDecode /Length 437 >> stream xڅOk@~yB=ֶH^hn$;-Ti _晙g&:xj6֪ lQT~X[l9.Z?R+n|K 8rTEϸ,}ff\fbBQ}{(tٴhFL!|JQBGo(2/gSֽ;ko| N ֜艕fi.[h},sS%t #F05G-Fn$D ݩY[QUhWs!՝].9VB/MU` ?fQ suFQxD;i8ƣQhH4&9 (M|=)DD'(#f;J?3uwgPZqmnXH> stream x}TkPSWyhr@DhJj`0H,CTJ… I "$XIQWNu#>h-S7=tϜv|g1@ SlZlP޶"&vְ嚝zN)XIP$& #/NL3YgKDq`%t ÞN|y%3`T2 +0R G,>OTFFz/<"&?7dU܂ɜ&DE BJl&Rr~Lu'cH¸Ic-. wO&Pg#C/F+3 <E6"Z{ c |&^l 9QL~71qE"ile_]~HZф$Jq4@Q"cWrz H SUzK& [ޔi1Sդ%H(Csmr н]lO`.RCh]?SDY/=C[Scf?H*g `J;G˸qaF3=Dxh1[%[׭294 K&>nX_4o1EIAJlJ!uoB <ɄU_C8֌h7dFpYOwhLpM?U60u|0񍘃 uiٗ)H^多̦Z46?x4mYLqc%uGjMatIs\Ng8JJ NcMRڎ?x! wS w endstream endobj 27 0 obj << /Filter /FlateDecode /Length 675 >> stream xuT]n@~)FbDm?"ǎ$6 %ƹQЇJP,8v[ ff|Y(z8%tbS=xb<ސ> stream xڅR]k0}ﯸ{kts_0nLźǚܺMJ>񻩭[Г{='ic^ Xp$ZeN洸> stream x]TMhU>g;L3Ƥ{o?!H& VД,%jӠ)Z-!*ƵݸuR܋ tY(U*>}Imq޹߹|9g.0#⨶0@ |ptw\bō7--i ~ '9l~r5ī콭w- f8~d0-V3/m_||暹;3g} p@0pp8|5gpyGBsK3?spwSC7{wߺNS!::i`YeUefUi?^ӪNDFRQhC4u$+~4hYz<knX˶^Om)R&s' G;cof1T7\yv8M&n,bOSx9[ keҮmD)4efƙtYMh>Mi1zL`N2fEux׿}-'==?h>J4fSϸz/(Ǖ'U5ߘۜxc;rG's ,,ϯk\MBNӨ75ȌTu.E9ȸiwŠ_W~QBU4"%he7Zl I2(<_Zʾ«$Q ;[%)c\sfz͉nO> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 34 0 obj << /Filter /FlateDecode /Length 390 >> stream xmRMo0 Wx$8m!ARDǵ$EI9-ckJ}{6tBt0չQZKUF(l:< ~ :D?+V3i'n{t?o]2s2KL> stream xڵ[oHS&[E h`̄ZFJsKUs91Iyǀ9# |#(ABaH8XX0$j- 3gJ2%!R;z)f2wo!X)Q.R:oFԣ]mH^x:IWpkR*[lRhctti&q߆ɇ\_tۙJ:Y$Cz+0K9|eqcsmMh@ifjf&ye`0``Vl?T!7ѴǹKxj+蘧HWqLrkp֧tNͤ9RiVIdTBJtf`B{vt?c9c q6Y\XM(][֣|moŤ½sLvڻFI蔪?011)Z=UU~0d9Yrݗy##&U{s{}Hgtr HHKX,GwCFYi63q2/A0b1 endstream endobj 38 0 obj << /ID [ <9127E8A14888D72E47AE4770C5143C5B> <9127E8A14888D72E47AE4770C5143C5B> ] /Info 37 0 R /Root 36 0 R /Size 39 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 120 >> stream xɽ {c+A,Dl\B&X v0!.6$)Q:62q a ././@LongLink0000644000000000000000000000021600000000000011602 Lustar rootrootcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/m_k_i_v_ConTeXt-layout_svg_c60ccda70ef92e32d7a6334f31c23259.pdfcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/m_k_i_v_ConTeXt-layout0000644000175000017500000020106014411653175032212 0ustar hillehille%PDF-1.5 % 4 0 obj << /Length 5 0 R /Filter /FlateDecode >> stream x%6S׶e=A2IA 'Յ`נyk-Rso:@Ek뇢$^OTOkuY˲_?ߖ'?/^sJOiSS ^ןkO{)kO9l'7))N\8*ނ{hXY+ן׶{[_ׯS4ԟum$QLs#XkM*iGIqbxmBuU/~IzWSC]=+ԖGe}O*U)(AT)LQ/)it돚*TUK2WD)%T+ŷ̵}$t}-?GM{Fᴕ z[f 'F.̴ztkOr=^wae.?ǕS?`j=2ҧtG6W‹qY㮙5>ԣ=`V|Zz}uF`/PWE-W%''UUگWQmViҷs)@>_=W^JbU%+߶O.#Dm**|2_m[I*a` |圬E5(0AvfdPNi@ηf\\(CƢ].`2Zȃ1yuUk;wWcG^(5M/rӋ|~.aɇ[k>l.>8 _Vke1'mc1` ɥ /> Zkعj1fggCefpN3dU^η*BLyxgSrm5Kʌ%bU {\*_56O>< -DQ;YfHLYx*}t}L?Zj;R{ˉۿ^RP&Xw,:aK[ oUm_ +:v\}]/>(y! nku#xt^oۥ\l=>qBQꄃ| 6`ťt MUZ/1UԠ!̖HOʚz2~yjMGΗcon_ 6: k5dm+A`䚒QʜRm6EΘFO4Fx|n[`poj1BLẹQⵈ @LnZ2x^ߟBcpȑ2{M;f pcl֟ҷ`Zv~?"MƑrƵŎ|cN>g9vpc n-#AFTLd!¡E9 PÅf;>1s nu: B!];pǀԩVWƐ>MT[Iws~1j֘kmL؛ u ɕ}wAG48-fڝrAObk!N!n'P b3z5^ƔtA3C^ƃ]k|PMY>k?WUgCܹLt+&fA_Kv᫅'wtxݭ\2Ɲ7w+c 7N.}~?gYuܨ#Hb*~qJ{UV2Zs2֜;jkRV|5`w;UۀU0F 3N6[o [%1ӆsejE\FVeo|)R4 Dn)f ,ִ˔DUiےďU~F6wl<\wW;r3Uf?6{ T d#T,2fJtƎ+84{iO/84v4Oy#r;:H= 4ntL ,fntCbMy{ANM20N}bAsRdRkjZ̡";pA3˥oc&EkN;*a,+ƉoԕmiኴM0hܧ}<[Cu:$bbѵ_MY7D,T~lQ(fRdG-˙[L-l&\^̷m 3S `Wl\`vYfDqC3-ψ+-rco)L+ra΍TH2X-gL&{@ϲ:И=xzDc2VKsl(= -iZmɽFZWN} օrdTL!ג'}v_+|-CbV R%nK܄g Fz1+7 t Ԡnkk.mPg`|^;|1F% ZD,b~V[-.(cRoz\ msVw5rl9МJ m@[75dh##)Vn5S̱tw,ڸxˎخB=@pGRKЂEjʔWo=){KFzZ/|`_ү6`YP~T}񭶪6{>a`FŽ~El!^lx\Ba2@zXcաEgw}4xcj*P^tPTJJ&H]M$SXCOqOkaWpkXicw*'qjZ؄bhmR/BcyRVTV.?Pjb]*?sKV%JX8V޵2l&`;>5ony #AknwU^q>b#'Ʀͣ׈5 B]dH&fYN|@dz=}4G3phqlsz4F8oس<=cBC co4FӅ|3딆D2| j nEC6PDJJ98O_K#nn}~'Qd}׶jaLlg=LԄymn?T1ڱ%u^фm{ /['uXQ {ĿPHPHr|GDz7'̈g[Q.7OK!F3I֔_y\8ANj }l!~:D\L:u25LP\R <S6.ff;y-}˿8o 8N㞽'-HZPifDGF-;KǣVAQK:N^\Ĩ{wwf*PQ!Qԇel l#L"Lol:DzC pzQ͛X+O~*n8CA9[3D@/•_Qv* 2#7D NeBa1U݇&U(`ι! hRg1( fFpZ^;:-p>U5ԉGkhk("d\MU {Fg3~R !W:z4M}V~}t2ؠT;`ݮA87\ d?'~2 < 3DgUP9tBZj䘠&eKP EH>4# 5A8Eg((b-qp^..FNP~=Fz![R9| RWMQc)OѝM+PHP-;$“48ᐰt'dp/ &pr}2JǴ#c<)1`#rnbĬe$X@"* ]Ӻ{Up7&N/'H>0HxAz̚ZѶfk )}/ٴg?? S0-m-& <̬9!l')ݯ9gqMt4 pP}Z͔ j9~\!^>S^C=#̃C yl勰 11g^V0ӄ@uNrŽccv[O@cU$Z=nL?b¢ =e)Mtn[Yx>rj}nn;to;L!"K:0/Le6vzhNk&%` z!|kdvLp) v'I[BnaV64h@2W (nh$ís Q+,kܧpkGkۋGv[;V6rv ޖy0!5Wce- mu.m)8nH-v &) -N7xCvf[xlkǝ6YMm`XeL[wm4_fͶ?f@C~*l"7y\:Qc ̶ea51l /f[1k6lcQV =}O*d}4f4V+V1Φ Ua!g2ofB0 T[hV̶Ef[am/um5pyOVh&9OU al{a.^FxB;Z%ӭPnhVJ~Ga-zncvdK[0ߖY[Zkr.|k:2ߒ7T:;]a8(SSuDR;6JAt"0-*XusƳȯ5?RrYh'9~sV{B֝`#}ԆB0Hzq>\!\>L VFZ!)'> mi-a+"#:Lu:ؙREd!nz'wGsDK/v>%juv9цkA2a1hr+E.%ƚg)?HXK0' hduKIGc*EMff '̏s1=ˌ+2M<;KqC%,Y%+.;s\68},=2O]Xm4pĶ$av(R/{v,S;"r:gټb/M+ %Rn\4ſ? zW"|^܈e);7#wK^|VWJψL=(j3\K{e;.C³,V$LT#Bޚ5feAG74=6*' xSr .跉9U38➛2'JȒ` ~BO%%(4$jvL5gc~S~ W&}9'&m}6 'U[$/q]c=i˚Mt''HytAKy2}v#18VJ'u)OHA0)'e2({)OI%DGcueI@I1^4iOuSjbZ4oW:b'GiOW;H{4=MړsHړZsʓtIfӽ5qk&?>8ZY&!4J=υy'Ԫ=?g䎝 䑰 |BHv> Gǡ귢| ~\x۬]K^sU`X9"!66kdWpɳݻ=&Ġ 3ַz\d(A/PN[f׮L+]ꕻyXBz^K:j/ ۂzFH2"%/XDx{qkNeTr|i2Xy:WlH.0N@x= +m=XXo cU <(^۬=3 _ьaf!cڛvDvwGUT h>5^W|&!:K_>(cO' APP'*)ȓh kRƠk)IsУ ώ ޟ}7]uܽ& #i·@.LaP!.f)Jbߏ>%3Y1δGum&;;  0\!Xa\i_ӏ*$Q!K4hq7MmKp̡ .ohYsӹ;{9L)1WZyʠAqN}C<3 P]+TG'u9a}i0pcpvECԕF}un'LTt'>ǸUb[.kY]<>[~IFvDC:*.ʴ KfB^3+B;!i!M>SC0CuTaY[Zm[@={Qdp`vVeQ\ b>ƣCA[' ƻ+]՗zoѵvep]9/ڽٰ+9n]]):i!jY1 xacf)w0ʋ3^m V n?e2|E6:~e4B8ŷΚqxң.H[X`K6Td;&p )an 53>|gPw6ZYu:n3-y|quA2 ںc BLD$b8 !3 g1'ȗhiKVvl~?q>&"cm&.?E[`jSRw?0^?X),99^^Xq5rFJ@n,4%Sjw+p=j ,Spq8ou&O S֋cV\| G6Ƒkx,o4U֊xn[d-^O,~buHU*.3VDH~M[kOTy|,ļb o]w\<]/80;ǭW}`%+/,)Umԕncnc:ft\mcP##Sne^z3vxz *T ./z]rڛylhW옍쌯7๵>zt^㯍eqM: /2Lᣃ6ӑ*WޑqU

v `{]cMU`ckGN kBmVƉ-CPQmlp:qNf;:Skq 1 wK`wldѓykiŵ0c߃;0iq8T{XL]Xd_ѓE<he_) ]0p{ċ1ܾȹW~ڽFs~-$i-~ޟgzb} P跦Q4= tX3g_^/mn猅 #.(NoZ!6 PbgVg_bmlqbh0KB)X5!C;'< iM4e0;@h򃍅cb|kүEgg?/ }ڄvmϑP  wČv`z&mݴD$x ybd.+`v\EQb 7]@*i130WJu E@ti^omn)2 -^G C AW+ fD[<q(ߪAN|K 0$N2x >LZ&5/QN遯n,m|{kL NFA /缟 WO$ۻ!KF?H|1a!AA~:O.~܃WD}ECftVeat&z޺n%!Zc 'j4FMKj4jbMg~J9CLYNtlH"QՊ RYhF6Jd7 Ge3'xEk ˜E4=sc&\?ؿ^; ^;b̓ 7:|Gry`%K$gtAK~jz mg|37Kˌ[k?->ϻ5evO2|d ~ч-~,k :66,Dd.c֣SUqu@v9c|#DxBuQ V憣}{e׆Hچksjh7~͋,F66gIy.S|p8^fN yfncԼh% TDǠ'tN,U|q2(3oĢ&Gܰ\|}efGMa X ~ՑMzu!1ý_ag$1Q[ н4UV-iE䷗v@՗JTST:}rt7P1jشTKqTwt'ݓꮼ4j-B,; ƇJ \9T{fhgt;N8AdNuWM63yj%uS%n|>>wԕEm6"eVD"Fz 2KabUeLG͉:Ѡ(ڝ!ߔfϛ>_ĂC:/2w$hh.XQS,w{׈R6Q@L͹n.l y3TS}6CgYa|(?V=rxtlPXXѡֿα>V<Ϲ!9]u#:VH'ŀ%\.ɱDV:KdŁ_ |t■ Z!+z Yquc70H@Pn}\xaeF{k@2kl;k R h!p^ =A,9TW@ CSz*Hh+C.o| szf3tg׶GSm(|X[5'/h||7B㢫tLl&t(6'y۹#kwu`yɠETѶ+v&`G/*(Or^UfWt7[sPG1ZlGu6gm)f cB ,I>SB: {䴍6'X~kz0ָpΨ6gmN.TdJOb7 <ɦC}.))O;tn|4̮N*ꜳWi+{XU%]%L7YG*5jHKR(G-#tSB#Aji7yQ Ѿt\aPO]ΰX'6HIXOpC ]z,AbͰ61w l1, WTL=Li622[ʰlcfة,@X3t&#kC8wugVʠsG;bg6gCX?UcJ_A[ }᣷14 IAq;ȦxQ5I:bP:Y۷H#X'䎒a?/̏R>kiFp4ۈgUx|p<& n{Ҥ|G6>2Wo W[KQOEi_ѯ6uS(UrqXd1 <7e,sPKK阹"X_bHzutgD|7ݝiY;g`ZMe{w`ɹ'S-y/m;˚d,_W$T8ŝAhPGƞ5Rm|ƿ2zre kqq)ܦfƕP_Ry)R:Z8hs|O pKpF9%֪l+- o6i"W6/Yz}& {M&06Z kv}QKN)w`>^!4R46ԇ$Z$r q՞XlBR#B[$7(RXU,q{5K,&ᐮCb_K:lҙViNiu}7aei<$7[vCYs&qN}sXy+tct.hF=EΐRuzr5HRUdm"18c =d C۠@VAiW8X|v&ɲNE~/i̝ Q9(km]ǘf-Zpk-DbDMׂ -ha+H +ztcu qlp ΈUl:ҡAc5BB=A_"6YSfﵶFW0)or<6fr_%#:c{kXf`[C4JƦ1bGwb+wJnq*s2' -#/#BNvd$7{gv D|a;]t%Y~HoԳzj41QLRyTƸW.@A0:QV蔹NK0ܩb:y"]sxd7(tTNcě h6Eۍ> 8!QӛX՞9~k/]sfAH D3 m?幃y;n&kh %¬5IQךԗ,<Aq +FwꖓQm7e} h{3]ٵF ;jEq\=v9H|"(lۚ8}GBl"h|>L78(Bj1ܹeoN?* &+i[?RVORɈllʃ= 'CJeglj C{ A'+C -;_kg##҂oh&vWzad_e}¸ٰjRUN|t7㻅YͺQXm΅} h5u}h>>=^h󀎍z)AVKsGsqɓWG|x3oA7Kt!wt&84"ݔϜ_Z؊- .Mk1)AC{yV2p6c-6J1!q .K [ԫ0/NĐM"O,>* `[O&čc{kE5wRPUՎC* @ # z2gNp3z5-y6sŀ0T_UiԾ0~-vs"2E?oT] 2ﺐ~*b&$)W\~(Pխ>ە'Dtk} \3 &V1<'&xl/<jo6{'q";>ܒwL&I*yhr[&p2p˗~z=q˿s]U2ÔD 5y xTRG\X?ճߏqfWPn iӍԽ'.oMBĊ>qS'h 327pY[RxsI ~2Se-{,~Tj,B` 5p,K] 󢼽##Ӂb]( tK[I/w]fF.OytUl`@]$~4D$/=DZ^Lł ]*ݾ⣀O.$ =zhpi.#mz QO-:e )t1,sAADa  u=Q\j؂׋[a\EDpUח [H [8SwQa&lVÉ>Ӯ:nWJ/7_ m(k{K[xSW .w4]ck T{P7)B L]vNNYϭ$z k{*p#BM3o|AXu/v^禉Od m84M cxΏ+6O GvycW㡝 1ȇ[3x E5/GUhUO M^'vf﨨YRճw7םd /3܂{;bzޫe-yǧB|ůz'4zЙп'=Bk0m(~`me=MS)Ӗ1(e WGG{h{F۞QI&p0`H{0m{Fh d2I})/j)us#nPV\Z!h #!%Eaiofwo=1oH*1r+ۨs{,"}.( ]N0HT÷"a[%әq/+庁 "_M?$R$}\PL_$^N83(E/_q/a j[7{Px>,^ ~RR\'40a˼z+ډ81hh|_q6c锁yq-pmDz;)(3'ޞ.#ئev_:ws^;Š'<'>`p`\QJPF5>'6L-B:|@g 5Mhb|2&Rp)߾($˓Uy<;eTbZuS7g9$>HQ xrb8fb,E0geZyr 3D:nvfirhXtGIlٓ'fU548'޽U3xɎ1_+ +3Z^ ]]j \­ 1Ŷw!b뛎b _3u严xEʛg7jp2Xum-6h.0^ȢfWg^ڂ&.˓`t2V=mT;yjk9E0,i?TnYAԶ?sP ІSx}陔Ye6f,$tpEYXr7#5FwQȃH[U??,`ws8\bo;xOoYUڱf^)jѧ$#l瀖E:Rzna) 79 ISTqX5 /~eWv(gwCAB&cĺA5Ä3%ɣo)^'0f N'sդ>mc`툤nG`IŹH^n}XǗQ JjkѪyaW6&u!skCiۧs?? p4$>>Ъu)Sr&`v(rx|G!pЅMF|t«D)R-HfJ"Y~ʼn3iP0 TJ,QQX&F5([l1.B1H|[زy&ot m""7:h?6z|,F,^9"TTfH4MiG#EhoZ^yƍ)$1}UZ,HAɾw 2pșmZ'۫Y#Gxobzv )0VmZ Ҧh;U+,(`ѢLĩh֓T1~TLz2(WJ^CHcWMxA!$rNIB(F\>oUemoY͢?Dt>^ovrwo B>N"{/*cD㥒'fzw'< P^{B52拨 N&bn oߍ*IK ,^}3+ aW_w;\=A3ջs1 iMC>Di9lQ5E Bн@#Mƭ`.d0 {VX>}< /oa{Ԁ!r<JilAs`+R a)#lD0p9Xq%l,\S#Ae3e̞KWѱ'E;CsJX&0b =v,;;^`_=:^=NȁYAN7IQgX;V%m,Dž׵E 4Bej^r^+`n'y'6j>3ǐ3 ,#AcBo9Oln9 %RxA{6zb'h })ZV`fƈHFcˆbwKHā%W$ ۤ@l?Qbtقcl. K.ӳ`Iѝ!d&# /2 aC7[KQF͑`5}v-t10W f2.dNWhofT“B O* wM@a'U)2$x=§ɏs 6dy:~~G2 o|oǍmMBg(ah~:r{A*k" O0W ]t=nAxG@ߕ u^ԙ+3ܡy^BWT wE[vN&#I!E,3[)toR&&b~~:|?I |x,%+`;͕7LF6b| cT(Axiev /R7ADKnJߛb<' CoͰ=K17ݜ(z۪9[aılW:| [Gvu:)/cQ{܋G5k:|ֲ&h[n07rX|8FCu-xԜ"X guC8F[9XFn}SPhP dzNmA/r]a;}[~%ٕ=FNgITTӺyTkPAx x7/U蓩8 Ay1PQX*j5i ]٧ 67-o$Sx~u$M@0 :G--9G;WiYz r<D;kbteÃ_yQ'+ɠ6xYǾBE}yM: =lVhi1#탃L,g^izWpq 2DoCR$z\g1 kjiEP=0gކ\/ԍ&M&Ս$ xD+`cCey:{se"$)OFo - /6 vXeF12&`46iSx|*]MѴ&>=kgG'gO3mz>\6(N6m%l k&FW PfaP _Tc[XIHPc|9762V c<|[n3d9m, K:%Nw:*"HW"_1 6MCγ\{ Z*'h 9HaC⺯v\NW ܧUH @4u6\&+p6A5{0?{>Ui@k }N{ :NjAyU+{pu1<< K?+kO`*qoWI8?GˍdxbV'>excx~n%$DH2/)=2η{.\>:쿫 IYnIEϯ)XM9j!{Reexlh6] {ҍa{ft ~$CzD )f.P )AU%/2Hla^4RoAicZAءHQ鸊fhcv*&3kaDy~'EewXl;Cm>Ψ@ O)x޺)~c`?'쫂H6+FO`$+͈hJyhLPiʼ1Aށ–3#F`pƥNzA2Vį]ך^?6W@Ni~kңU# AwPnwwY,7\"nܕdcuy?|Xp 8"QO bE({khdZGΉcv|v2 [mv)X\*3ȳf$f#4ujU$ūYC=j~~P&Ꙝ]yS=8D]xoH?{t@VzCW40[ 6>IsөG',\BEt9Rl6pa>'֓YR].(8Nn ʡ~N*QHnEM dkCLpQp V&r&"9X3+YB2s&FW)ɧ=Ɂ3AH2NIK]F5MI(-0N(xX& R׿kg/cZbԖ\ψ/eA;V ~C?&F#I}8_]5ϫ_r%#VTy;0Tx|=zHi$q~Pb ~iR>=/t3T~bWn n0xoy =jO" Xuu~ݿ\L[茅f"$LaY5ͪn)lJmzRot>H/U@0tSP~a_~Ǽ=eG0HO,$^'<%}$G5o)ޞ|͍:|~IA(a㋅S (^;j袾H5w\XΘd{wt -O7'>J35^%^VRhGisvD%U XQ۳-)v03l@P,[CF;c.A APU -M='{bY4STYMBB5q([õ1^=ӯ4I$ןF쳱(Q_XktN{8fN.b5hI HmdG4ښj[`↬0F_ i ~43kͬ -p|9ҔH-asC̚V}C7(Mc{~Tqa50V|e`@Ъo!XG)=q kb9Mu"w!" _"5l>^[GS6>(M#CL2 DqL:=O'ƍ Om-l{YvG4(QYH9ipYq̙xoIo܌ A;oӴs6I&g5Yv [MOd4ff `AX\5qv9xI3^&' 6ɝe;:ɺ~_Gc<9-?'t!NuhB(1gy{vKtȏqZ\p::aٺx6Wwd3szJH![,lfe=Y훻w:%"h?s1 @xEEn}ks]0G>D:n"5H]6#IVL3G堩GӴ@Z?&|.j* KOA#p"*OzhGC{@vߦhS]w#&CmsH4Ƃ脱  S޷I@2}sH$ۍ ZOZ;Վvb=셭Gy{8h̴"$]1Ɗ,ӊiXՎ<-S1/-:ƸOڧjaGU»]xf<7P)eI+;QL\wmAԎzMvfxm4(1{&=)\4m>/1gi=]pNs6ŏoH{sIdjlJg6ͦ3gAc Jiۺ>\}MӚbR4^r* aDi;s)TwK\ J$AHޠ 'Y {F`s!S;_([>!8e>|޺֧k6\3 ~89[#^n*#&!oL{)\-(4aiFolVWnH]Q@m[m֜+ke:(i폿ہ}O_Ajڏs;Nqb8 a+*ou9J6(yd>c|7'\i@+s;lj6Fewqe{9OLO0rsoI6,Fuۦ,X〮ϱa%k(60 6 v0ߒP 4'(\[|Ȝ3E'b7ޕ0~4 g:5Mg^'y;>ՂI2+f-NϽ^|/8neE=} Re`6nѝcCoW7 b$ל>)p$&Dc?/´Qmlt ~~`AJlȫ ODqpLl q GTw3:ބɿ.i|i2f_Hg-mRH6 L~PV,] 6D42c]%xP%E ql NӔdƗꁵLJI(pQKJtXdQ8M}vf 妝G,LYn !sPfY`pTo8&0YuMT!<4kPo^=#0K8yX7cZ\sTD56!A޹_u-ddtO9R )vf.xMnxj[/ O7@sS[}T>G+}i{nۘ SBaw̚=S ɖ,OT¶m ls̶ qG=me*mFe_m1d@ڰerۊ=T\4 tmXI:d,b3ٶauEHdqYS;zO_ܼzyr C|M~x__Ua\r\<^>`Eh2E M ? AOx$oh=:>?(ыQŁ,Z M )-@痯8rqcRJ.L_ɖ;KK޷㍚tj&R ӹ;fW\?_>l5juᙛ ^T—],%1F$Sš!=X+o$zDcӺ><`$҃r2~>I2F?;OJ(,dSkor#nǘΉ-Nx) ˛3t.ry0u#E^qqhc&=s$~_EpgP x ufQӹDgyxHѲ*(en.˨kAeqy8fl{5R ={Th>oވz؄#Pl[d'㞄],(Q׊]l]P-eq3j  .[yuQbe;=_jF:dBHKxYKϧ'lJmf˰[.٤1sF[Cbn涠dgi&(ά'em4mA?;WJ(GHOlЧqkb4nӓTg^j;u_iJp1hZQLrLAehlUv-l\x=1M %#ɶFo>&,]2y(Iz u>qj/SKVχ$܆_VXC%%$1f\1NkH+/8$H!VQbIbgĔemOcbQæ$ q -#Fy J$> SJ9X$1Q, fbuo=)!~nASp|B (uJ]Vgc<e|Ŀ9kϦ,-0RAхM#/.+(Fe댵pSl62ܶ2$V),I8*laJš{2HA;{UX|%5*iF;]}@8,v]-E|lt$YB"2ű>4aJ7*wDzV)2c>H0ԩy`r4Bl%z5!6[-VM!ᅸs=y#`=tZZwf ~<,D Խ8/IKg6:1eeB_n#[4ޛĻC TީtVC7)=21"5 iO6sd1\ Wpqؐ™E+>e6QK(~7QG1 I;:NE 6/2#^7=[e.3>Oīfb$(qE7z$b,$߾;'J7w}??Ni> u1(¸Eo>9b7kl" x}8_ 4Z11ǂRi55w'=(/3A9̛ɸCL~Vx}+%j5r /C͔;ؼݸE94ڦzr_xU%wRHѝ?{D*%Y9(̻-N=t}~e;(Qc(F8.W*/$g>TNnFyI YzQ8'xJi#Q* DZ7xTYp ԷދN^#is76=4xSG7:ŻoԍMoMݨzD7э;~̱ei4~TFE[mHBN5k5n`uƧIş .47^vHBkI BS8a󊌩nh^~d#i<gYw _6;൘IcXaY<;=ݶQy{duYQIO۶+;wpw"ΩjU+A|gYcX DJ[~΃|7:*;P!FE#ΡqE/|a&6;QsaUZTx_)C:kҧ6ժ!=K-fȩ]fsM-h2@b#so{}/=N?J7Ik33k#\^w[0"d? (̯\ߐ%L8ݐve6C?z<%cU<%J#o@w=$Cb ]k'_`ۙ\~K_k!O\.}δ9 B߸bp 3a0&چEEK5@hli!I?x];N@w0 2U[IH zdg!!qhWE|OlE8fӧqG\cz~?p^mshO (txԘ2YEtb#9\A:ȝ5U2co=IrSkKty9=;FvN4 KdgrZt{!pCzO%䓒E,Ngmo»ՀT!fq02c=ti蕾,yJmԉ?SH NxPL  Եz-8G!nl"WKI9e ҂@h @1'&#GԎ&F]l3ǖrˬ"O#MZǂ_ttVq.uXfnY2%,Ck=ܙvYNAB^ţuCL|Q3#4wUj(43`#VBB Q/  9x2kf(2K ]+!K`Pwo+偔PM?n޼k?I@ƿb7.mYwKfQܑ(L@u:hq&-!G %@bßWvg~:!!QԜ Epⵀkc-"Kg(l2C3qn3DZ'M~ω4#l[X@6ǔ#b<[K Nit,X+=%6ew}h0 `薮 Ң8iQ[wlW3;nd2Q2Jm̨kb#JQK4ņÐ曣Th@Z};e #?/Gmy!!gݹ5cyHo˓hS;g6uLnE"3G|ү/%I_؞Rw:~6P~+ly}!ϿKPHo"=YHI:kn7Mw~qsjf&? Fs_czG=B:֜XUh!a0+5jf^ǿnoi_9"ҾΦz°@|"C#)ɌV补28b:Xb^#m :XiXȚ%R+O Տ~|SSUߧ::3Ҋ4ek7q'^nh9xsM @,l\*[D~tQeAd~G`Օ~6`5W(նJ'pspncZhi \dIqGy2YxFksW4I9rx:_ @|uj&ir4yf㼄\v8n4?֛Z>.uybMDo\Mt7`Ø؉Ӭ$x5p'&iNJ>K'D=_ȔܙYK*D7ujYwYҞD&JLx}n OVt&u7&HgA񔾺F-qa xFX`VĵH3f)\ҏ6nqDTmF֘./4r"C9A礙lQ`Ӂ2?Y24…7B0E5^L&iC}}SSg,ؚ%gDJLÆ+N$`g4q^^7ǣRܜh1{AUZ;`UR4j'$hߟ@L4ԪtY\2ަx!\X6c J @4gtޔ1 ;pUq>:f u uYO <،>u69`mao];[a:6 t3O~ ck64 I1zo]/BB%3$%4@,E(Apȩ h<ڥɈZ7^ɔI,Z%3]cH[\ja[|LBIyKi^Ͻ':Uf(/G(:LԢɷJ>mz96=nwd! YZ![X0Y\x5-">ݐE7n<FgX+pD{g.-yFf]DmD4Kqo4׭Ȯ2P1aĨ9c?D4gKM#k#y}AT 4:FeTHhyYKYnSf"jX@qk_0Vۼ(8{ :xk 䭥$Vz:z+NTjo D7R E\^\֎ER;]=;'. Ko=.W]LK/g#wrNEһ| c(aȪĜJ0L? L|8΃e.w Y"K\#Pb\)3CбM)Uzd!.d- x$>F45-mMN veQ o? Qc zټEߟB/"=7@cο?i@u0] _`3zߩ_dž;ֲ:ezYHA10w`܂~})?Gܬ;zj/Aܵ~;'&cd,6|iw_`m,"ϳFsCXyr7{VgU=ނ 0[KbT ' zS.TP+M"3Wh _,F:qspR?+|짨Oې:;$s`ެ+ ˘oi*ΞMд~oq-tLS ⬧dV9{1 7 p`6SQՓXNkq$[:Ë5FUwͣ4Cbl}˝bzlC<Hؠc}Xq7td3ri=Z.">t_x紼'2bm nV5ZD*M6lj'1QJ4 AV؉T1b1[yU 29q ^HOzC/`W߀QG4jݒ0XJO4`3󞬉+ 0Z9j\kIvHkߟ>3MȁKgڦ-;khx+r3qcjɭ-sLf]c%f>:y/Gqs+`2(sisӘ7jJrb"bCќ +cK`|.Xaڈoܗ͊ `Hi; Ԯ렲_^F4m5ʯ7,M&*x9ic3CEf=;ɌN Q}[F/fz<UpF3a9J%'Zy>VFU%[Yf$ P?dk\2u77ݐmxmj`r؞t7Go0' Y뱲k8b-8 ~}]ת\itF17XllӭI\cDj$ yoKSgz 6H~0CJT׺ۛK^BTKuʒzD!ʌ7(3D/%B}+R3  QP]2_G(LmZVA (sqEd!YxC`QrBbcefYrT(cb }EwaQ꾶=Mۅlݨa[ûK=x?fxa势?;DO(Pf5%ٶ&L1?=a\xk& gx dl9v&fT `5b`Ggx:><T7٪_ŗcU{L&ZUpQ;#/V䬊QpXbT=\H+Q4w1}s{n@6KPW_9 1d(gtRʋ>/1ʚB[bҊleRj7ڀNL)R(6fV!G;;T][t)jEbJQzTm(Bh9D>||IQXbब#Z+oIQQRZSik2!FYv `Q[F.)j0’ʣa4i:5Hk4P BԖǏRh1E١`ͩ]5-!P385X:-Љ&GO~ݼ*%~wa"}CN\zӔT ̊h1"zsL5[֯UXL9af͹ƈ̢(o0U1 tg2Aۛ7uJ`mUHuf7Dl~" Ԟq>gz,#jI3jki{CmmVT>?wM;YH|b懅r%U LS_H3IP+NvЎqL5K/vn.fι2MbހsYlѹ@h@` pq[=S `0y996q^,g˯Çy͗kz{.\-V Bx>t3X@%."4;8:\^ mHP7{6|* \`@./.[\/ iNpz *ٮ5GuY_9/ȡy?ϯH07Ky!P9GBPE--6v < _͠BWfzܴE.t[ yƉtW^ؘIZ{!9;XpcHed)> .]yPnN 7 _>ZY+#6Qd~\Hh7f{ù9 ItO*k80s`F/@zrlIv'zfWrU t &={:iWf9f퐟$jR82/[ >I$U"?󥊕 i%+i>r1ͩjs |ʮ}Y;,n.]pM 2.)SP_O^Q׶Ӛ鈂ek ׃h+hTUe $6Oc&D+4xǃ-x? QwzxL&WYpIA۔4ƮGSԷ-i3ѝ+0ᘗnVSN6m q5Ά{ˇ '=-pgy@ KBkQ7Hny1xE'dc|aAڀ &K结>A޶nTXA?8P0K)'ukY# ~~S_ݢΛEq)%X? /.D%}|eSK OP\Foz!CE]fc *P25h"6]# Cw cͪ%KPONB.HOr :+Q%APݒTb0/&A):E`C0Llx"1]5<촥ѣW]Np`ss?{2HN>5@Q'IDU~!lJ '_g@83vǔV!y02څ+{ȍ{Kc)W> ^YgH87wa I0Aŕ06}´mMwH0Ɲ8!mq 5֪C֞kts #h;pP\O]ΰ1I>>ƥ1ttkoE|W%wwՅA6^IH"yh:#9`Wvwω Bvqq%65g#B,ߣa4j9] ~o{)vKw璪Q%dS@.4{]- g>s}݁-#ϽC ۝ϯ=SJWѤL99rM3*PrGߠƾ m XUHot\#A{]F,BׁuhEOlbOgFKP2C،>m6)(]bgX0HodcWF&&EV?xN~"\H=c!rGߝoȻ}O>;s]ꖋԴ]%~*$g}oWh4K *'h8HˉNxr7cg Ge8%| 6t=F&^ȥjuFvH鯵}xf\eFunF7twKV2z5M#k6jsLC-Z*w:^~o{( D0Oi~s+9$ь0t^wz[ҴW>)xkɞcf#!=}|Fks)}y\`?,xLP!`'}Fp9][!'CFZL_CG~IRr9g, 9GDğk(q i~f4hPg! t -ӈܖavfBYʤ`18ŇrOY b(#:L`!}m8\Uچ \2JM`4bd8@@\"Fiў`!g3kȖ#''Hr%dG'ߑCpx@ 2jŻ.5b+U(ogcl(TIlӖ6ˊ&9z[UxYG:YX[ ϞH$3N3' 2͐> v؍HnY jA֮ HEE<}Zh,Hl Ou@QL;Nv7\E*m+-OFJS3>դR`} 衜HX eJ6tNG^ YCL e>+!:] dĴ-3ztR .f&NEo652h=VI;MQf2a%?"ZesNj-Syz։S:ȌHho͙%êHdyƺܱ1=qѮ<:aݑn裏oϰ,qonBbLr`fOMIAlBs~tp@8`EgI"K1EK_Z$x< U=p*"Xz _Y.= 8m0,W%pgbk=- ӏ BHs9#!_>Z5"#]劤ml(R"m/[ %@oW<;55M둜EVb 64!ю+>T1ZsľW@:Ekxq!mCn:UdgUص9x_)jXڭRdP|;"j1jchݢ@)ngGO0|"<\y|L5{2eAb"u*I*e$g}Jږi! RR$Pp]2%Q|+A4i1t0|U81[h5]2:&ZSe)nCoD>!I h]p{>;iŠg7O\W]MK u ,w~F%I@ݤgcPCdER>6.Hhq0!l牬X=r q=n*GO|q__̞p?SD`᧤OD?q Y@k4^0v]0{tf^ʞ EezHVEv:NN}plK !Q$NӍuJ0".2F@TdcT#]9Zk~`.xvA ORJ!tQGD4oR JJ"xwUV0'tCZ|Wt\;75ARԩ m@RtyL&^*_RtO SLpy/.ہ, eu@*A-F`^54oN0NqQrM iIR'F\~o_n~TgǑn*L8\f(eXHϸLMD}Lt_rH鐃t1[zOf)nf6;(~C(#ݞG%]b|YgZs|C=s!-jGB8׆vxQM}bI&uK.jtN kt-"0WÄD3Zl^H¶׺kEt\QFJ `<;Sq4فgG/ djX⠂o3t=-c%&nLh7w{b'8'?Hkqrhff DžO¢nPjDNCDpx?eZ"ugU4- &vKlV-ڎ@ql^*_$"y) *]]. }BX9 D[\Z[wHrG/Ja"rOcӡv+Z]|!'%X|TȆw*nf* %o 0.L? Es9t^TEc>U"^{4KRCE\'dw[$o}plq쨿6)Ndޭ: +(-I&!F9wqݷL>EyOΐVq JPdH8GM!IY'75EOӜ =dτ@즘FO"xZͤV@^'[G#ǽ5 uoHMDž48Dk"ZQx6yCqι(C)вʑܕDoѷ5pKJrd3#'}pg/Bs된WSRE/N-.Zx< 5 N\Rb(qѭ4郙Y ;=J%༝#?p!_ =B(ᡩ^/6Xˑ,o} ?pD5,IU/7Rw0]7]؅1'Oq^`/P] :TDc+|>{zho#aKR%KYv~Enܥ*/./TC2wUς`N3Rr`ԡI.VE*=wr,8ֆTUq\TX@n9/zwhb ,2ZݕS+Ϧ:C"P$֞DP:pUvUSÃF]:DYg4l5̤빤/}quWˆu i4n($|#j*:#l-3Ro)>h[W[o==.ZҡB]S#*qϭ*TJ#T팋 {d+ȴﯡmӎF`K:@6Z:@>m;oZu`1 yt揹=6h=^O 4{~/~ s1--~ҙkGSA֭2|pW\if9lҙ5eg`wA>M)!"!Ef@ΌOҙ%D:FЙ5 Y3 :'51LzΞ=Gq^KgHE3K AKgk]|IάI(#aE;==6eY3KLcWfٷZǙת#>y$~MgWZ /"4ƅ u!)hX¿u&TyK7?ne@@^Gkltzr7wg(̻; VKHt:pYCJtV3A[\wQn.]Kq+Y͛9A/W} ]mt_Y% `ަL؏y|-:kiIp%S’b.,), vwp(: c4()E 27vPkRadK1dKF %>^ ycfh ª0^%,Q&SX˔veJC&[>w17[DQxT)H oR+""aed _:7g(l ~i䯇:p ߼ ,TM>wvxf <1ʕh&%}Ǯ*:Q@ W`HH?;>wAD@5=^L #^H{x(7FYrj5K"JiګEYVVE&1j x|":4 n05!OP ^ҡ[ɏ+I+Yߑ> Nsbv;=%[&>pB6*ZcӴ4X@5|p:1E5ݴ~2M_S9ztWDC[37~r)\9HE}|ݶRUőb>WW5swgxdJ\A Dz9xk>rc7B-L}p"֔0F~+̔:];].Z^`[P458a1r0/#5h1@&=adBKk~.-+R,ȡ0^-Н^tD+e75RXDG) f$iLG4Mp)'q*ЃB*qDmf?![ZX^A3ėv&pT9cL߼Z܅M~F7~# ( {x6 C\LV+y(PU.0+uhLC}R Ii];ȋW?/p05tY/A6KWhbfrK`4Z '#S QQ4;w :<ik'$VX-zK1[~VhCmH:K IDBS|r4ӁuIHHniT\ kDGzhMQo#qzOz dxnc%_;mE~4cѯ5 Ўr$MsD8ˈ5 5ٙf H{3:=x<:i".ZhxF )_AI|']޼+J&XD v\&tIuCbQߟT~VUvjqi*b<{EΫL$DRkJEdR}`2§˗S [urW}[>2_Gbz>br] dqf*Ƭ2/h37y/G[*zү%A_j d.Or4PQ/I~}-OКF|vjiطU_gwnQ@y@,sf̠ )1Cqi>?|RӲ P}3tœFHn*_`ʟ ?#Fj>l^wöihϜӇ'hצ}}v c>=ivjEؕA0dEkW D%;_ pZ"GtbQ_lF(6qdFՈ5)trg'v9aT/E7wz8_ȐAӬ.DxF%#Af5=?cK  l%km_4+2VeM]9b &W/{Cs<,bϴv41_`$^/V+VXmuY^{E9YO ѬTōE}\9޹,579>7z}:%iQB OJ>vl7^ڙU9t "!b=t;O'@m!`-q CZf/&pju[q})ԧ}i%;[bbl[ӽl=]Hoj d?D~3.OoղMp!:x֜+.yq,ˑ5p=1gyiս13 <,y㤪iLy&!\H}ҭCqm2áa&L*qG />a˜_OlF_56$ZT=} γ7{&^cF*ґ;]){3ՌaO4GmC +"p9-s 1e5]v`psn! &-!fpĩ4<KACp]m?WNx3S)v XnW!0Rb!xNGJn_`w -X\y.`͢7:?j zj.Kkl sO.1dӛvyub8.`ȃ&#;[Wʏf+F@\&ӜmHf0h_ׁhg7z}n 1BJ^7]fދP]π~i5$hu.nnT*l'!!O\Y-D++RL4F0Ӝ@HBJktc>cz+>TEtcWWT,ƍiǏnTX^5e?5X-Æ>?RE}ƚ g'74WV{bTFq+kۯTcʚhȯQwV[.9k8EuiIkVIjǞ,Z`*6ť5!lʺҥ5!tkMwZ ͛]E;tmvN[CVxi|,Szbm;HD;7Z DY넽5ߑմGK}h5 dǧ-5ZH8Bn Ca/T6Yl,D.|:M7'i{]#|rMUt{jWDnۑP nOzsp7t>)8z̉\K}@ l'jZ%{ȦoȝYN79FO9hF'#f-Y7(-(T3|cK4b{Gq+@b•4VI_Wոv+ϒz4s,lM\ȑ&c( '˘'%&c('ǧ-Z1b+#oP`T%Ӳ`oK|U eG<" 9ebnΝvWyqKMQǩ!]&0ح?&T J=ư ZCI Mr8ISY%C蚞 dyB[EPLHt'DGCɟ8&HY7o0隍3da{Ga|׶0(tAI֝x~#oztGMRuif)agH b 4:OO>׷w l g%^CHT~I@~ 6`15 LGlqC, 9_leO;jQ=@6y^``y̕A1CSS8B; l(Ɲd:Itb { ?ez:W@ϑu>4ܕiwF\XMwQF`C4UcF-\;OcQ뮘X OGjXBԨPyg5ޮ-Ӧt-SG x_w=dΙfYs\+x%ՔW~ O$]kͻ.LST~ k9?27GfţCUP\^ i}x`rV,B \  $lso+c``+Sܼ XXhOp>V_.58X”3 t,96ڃ>]Զ~Ρkȴ \D#CΎ+`8Vff$_#tȟ0Ͷ.K(,ez?-F!TF(HC nՊHT%gm=a>Ɨ6!?|FPER Eo'u剗F5<2h]si"b`?q?,;ɢħj^{'zK~xQD~xV#|jc))#t7kYRu.e1paeb7@ޞ`uR-D{[r}t߈}QN~?u%v14-u\vgjWE& a3/-6r3z)L:ѦcDe!E"w?8{UF3J}[QHTQD?).r WD8g8Mh`sIpC~bI^:Rea`T_,w8MJTr}˯T[ۢRe˳G&4"z) ?t𩏸& F*m.Heh,q{ЦU"(B 0wsTk [K tY ?/6F:tMb-h"Na+R>Α%tnٳ V 8V|޹B8ܱT{P}dHFDXH:ID )?+$qf08}[JĘ|r@AO u$M4¸0[A :ӧ/. op| i}ۤ$bR/Hcdf2{ JEg9z;Ty_P, H_Xj6"d$!Ĕʯ}K~FejWD*k@Od$9'ECR}qGZ--S Tp*:R} "ǁ8#Hff@%S^?SIţdd5R+*]7n d\ZQ `<Q^EqNbAj!Y rfZTx+4RhaQDT0"'Zu׭%ؚҘ<dI@RrK =BGH*؁5/QgJc( "RV] $=X<˩;WᢙT(%MzEld5#{jf#F6 92Mk"c7}خq1‘!UKY-PӍ3֯* n f޴+{"'pTюC@eĹTfsCR-d2W$Z\XT$4voqc':pSF1坊@tG[ UdW|q%=̚K6w"lpwnj3c}y*a",PY Ռ-P9aH6f52hi+f)>;l{. +)I%?Kh;"y(ڒ-&KTrߕGʰm sĕaм@(>ftE*` ? ƛ?v&ԈfzdH I5NzifoB\w0貋r@1q=d c-?0"%u<5#wMd aL*==rbRe-r9?#;=a{D*t+%`"oЯfz 2R7G f{:5zc`|SA~ y1LMmW<&UFh8tIet=o|pZ}QfACŤ CvF@iu$cW|{ sF-5x˘>ȅ[~$Eͷ* 4`bR1c Q8Դ0L;R=$ƂȢO4Irƃtס@͏>i+Ϧ;bDr2Ietׅ2;U_fWΤ(ܴ%d_ %k02[} #bv r @I틇ϣ?[\3Seh ^!jμ">$!wD>>v5IFgIGL]8Gگx~dԝH_ءu2[B6^+?lcrI5\:GCi]Wbl5^t:[Hc">ݻ~bACUbq؟䥫P ;Xߢ-h+FpPCichȨ]shBn76@߄@=5+S2qzA:}^k }YVMd; Us ad/H L<ؑkH .#! 8L夶_dݡ́ZՊWIǞXKl':DU}e .FRp9Qm*fU |ꅮZx1|a,G22:[ɮwQxQ>~Pd śؿuiRҕtbt \%]֒ߕ'>/ UrZ|\W9WVPj܏5{=S]){];ty1uwGGM6o$5xY;՟t 7&`G.N{O%Oh>ZַXυe{SmTk/Ew .j2f8?6Gh/,H ig+m^BQ,i=Cyk k eKAv+Kjí8 8@l3S7;_OH,u 3~5ȜFDŽj;\bUunMݗ7"U᳉n@O8f{~ YF­TcD7JyүIӼ^QCx_O]'l0~=D`AV)Ap'҇,''Ń~݆QPtXD|}{\EE}(2&wC[h9QV}8]2T>V(BJjE(>ztF!?>w,B_~A'L'EF ˣ{c@)F`1x 3#("IhC ޫO~}ExGu?62 ƀJMݱBsRCQFib^cNM!rq$r9DCzK$³'cWs4ɷ% 6c/vaЧ\2v',7\LQi’>+ya9je,8fj-:zVb%f4B!ԍbE+ߤF4sAY:B "qH"4OG>U#ZEcy+-ڮhE-y0sY_>q6m2XűdH>ĂL .'¾Qp^N㼞Ӏ5:/H@T#Cg't7 @X>H0y<H= ͠VDTqb\\|V4!fɡ'BCdFwfhvs7uXe;֓!LJ~-<,%35 bTZc@Xz`sY;pmt1j'h3"t&eG(s'z5@/i An4;,Iۤc]š?÷N0 #"R10-Qjm Z3cu: )@;ruww 6*8$2n-; riMM;'ҳ?`GwI^8bnlt*R+l7+p"sV;T&u$dL*4_D#@7鿦 `#iNC?z#2?XM=JCx%QS5WVzC*ͺJjjSy u(T%[ "Θf4Os3Spu" O3- z4j^79llk K̖w5Z,Dobbƅ3͟+wF}38s Zpt M+QO&ΫTP:2bM.w{6DFIc(ع(s8`($g kPn\>JPa1=Xbb:8mp M$pciYf1g&}tc&h߰1aA9/.{hV, GhfOefȥ*`4>(M0q Wl|aȖnTWzA?{5>NIiWMvsPhfGheNL#g3ܐ$xu/eaG˨cHu/(`{NAdHKi+1uCtkdžO P[=EgqaSqDu$|ו$qz20〱Pt4#b#`.J@?Ii;UWpӥ'bORIo'oZ/IKq5 ]vڷgg`gռ4Ci'!xBE5sq79% /mV>O{٤Xh!95XE&!M;[KGCCunHn6U՗l4Y&zlXDDGJ.bO8VG8╫uEW OE^lUz_73xl/[M5gD+q^4~nv1fZ}|kXFG߫!ӣRUYGuBP]R' o|΄)ِT@nD΀z=л[eB-Կ6OH"__6یڑ99S,o*BSpy;jtuUhwMCUpES51;<3nz..UQU! [ B!%U -s$ظrԗ 0/;1t^Ir=0#*` ytp|c뱺=Juy C6_! 08 M-qgk WoZ}"MU⣋G ƻV佨xg.4.~4_`[@RN @4Vg$z0=pFW@MgD[u[6/d!'Eא\^5<\.kϢ߆LSҸVN\N$Q2]iJ4'y_X'zQ?QN$N.\#Q+@'4GuiÞH wЃ]'g]i MqrRmH \9o )k;iAaWc X~ЉSp#qQ2bc!0ytnV^F8B-ϱ 4:kSG.<&q*1*ޘ'I&se:\saú4$D'Z0--͆CHt}dCTXIl9& ]ZD-I.DWyOj:&1\K,M{*rYݠ?P爋p Oܿ!!Ե uVot3⅝Iu~T:DI  1OpxR8!Z,Bg s.!*5pΜEBCIks\RbGHbIuX: 2M#!wIM^4mX 2bX~.+#4;mIx8.Tk̽_s8.aq(/d_\nM"<S.{Z.N&ث3MRlYvPbC(8=-*#cWD⻌@ M6$ӵ;EfdBlw%zN1즼1Kcը`?2F3Ȱ= 6(Ŗtf^M@<j p&d3ݡ_@hՃkJ@vHؼuƌc0mY[jN@nb9ڇ:H}lB梕BFMk:%+|# U\$!>-4BB, f]8i[܏kב-}2H.fn?iBM"ergu +DLTGIup<9LlrՒxB截?iɈV|љw L2%/݃'(^/WjBv$ͣ^FWf>FmVu5Xx[cR.'oaF欝E7c\c7 ^=FچR;M56a5I Jtn[maLo1Q5W;6n4| 6W vf HBSZԝy:禀Y0ϻhhq,2uѦl,r#yRi ͢\G;|+Ml[W\ 92S +eh;9ƅfˆ!`jHdx A_=ii<~4"ɴO$ꎼ~dk[A@#m*9g܌ %%Y'| mRA 9n,PR>W|Ԓށ(ő~/v}MC%KO_OPFG?׷U#}܏,>7LPtu|Я h}5}b-FzTZv"q:Bod}镫'R" 9Hc ޛsj#ӑH#AE:⇩jo@p`)E,\>nӪ'FS u$Ng6 >T?^?O&fًLH{"t%ђ^ OgOē>=c >l\#G,cF`.;"rK8O9?ѭ1@Mr (3?m@h&Us83.=f@fQs⨫Q׌`7,tZfḚdANǑ8*H hFʜ)-|իHL'a oG^=˳Ӈ1ClͲ'_#_ %yޝ#tOso?&ӯyS%;T'"n)U\sFїzYR [G ʎ @,?2d3tF]GdBlotpd,7le zXji(nsh3ϱUc:$0)q>b86f6L'4o%2yFȵ"_"ueL9+һRz׉Vg":DS.We:FD2ٚDz@݇4RR3uՙh8:Q'r:tazv7T' >cQbu"FI'Z!Dkx.fHkxX<׉N$u *Dчd=NXYճN/N/u"d)YNŝ#5ˬe,Zsq=Rmfa:[wSVc:J@^P>+S` iU[KI[o%nm5wMy'<& x"gں{]H,n.I&: IRfqJN]h9Z/M Q[s݂nxjU.=^!kS :|>v\,jp{-" h(v!E3&?lCBhߚ 4k$>"2#ڮ^͂<"b̐BT"ju$&sAqXKlRbDOVz }1:D˴Сiwmnx7TNƲ>Fۙh_ZX[2=WDS4Gh#Dl2f2*k8w5K;ǒ6^Ti69pXCi$u4afO".jÆo#OFn׊if>ƸM1ز}. K\}af!RG̲K#ZC%v[ǽ7bd,eٲbb.EFUp>2=BFRSR0;!ui9|7_S_֋ǍEjY>2d[\ܹS+U佚Xnž>ØΖoZ!SPo4!3VCBn%Zg;A \hF޸ ;PQ7Iu  -u*$-}b[eжp_ĺI84:\3:=X';#ubZiY[x5b2ƙ*˾]];u7IE:1u6vbB\w/k5P, endstream endobj 5 0 obj 65033 endobj 3 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> >> endobj 2 0 obj << /Type /Page % 1 /Parent 1 0 R /MediaBox [ 0 0 390.100189 365.990875 ] /Contents 4 0 R /Group << /Type /Group /S /Transparency /I true /CS /DeviceRGB >> /Resources 3 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 2 0 R ] /Count 1 >> endobj 6 0 obj << /Producer (cairo 1.16.0 (https://cairographics.org)) /Creator /CreationDate (D:20230329200011+08'00) >> endobj 7 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 8 0000000000 65535 f 0000065453 00000 n 0000065221 00000 n 0000065149 00000 n 0000000015 00000 n 0000065125 00000 n 0000065518 00000 n 0000065801 00000 n trailer << /Size 8 /Root 7 0 R /Info 6 0 R >> startxref 65853 %%EOF context-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/slides-3.pdf0000644000175000017500000003104714411653175030071 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 645 >> stream xKo1p!5%TMU)>g}$MrN{jZ>3ҵKqy(cPJIhXKY/KIϻ]b)|ߐ[FJXR$>US/œֿ6G;<ȦVCcVkqڦRi;ܰ}v-prϞăoN=jXLdttMPA6#jr`:\OpJ-pck Np^w)BrGˉ"Q4qyf˿gq6pMѫ\>G0}ZN`'o^GyDhNK4#BDp:ɺS8."rxr{!#h9rgUv!7k;)ʡ )dv92Fr"*;﹇zl1dQwfϑY?lӠMQFGkLa6tl 86};4WEg(l endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1775 >> stream application/pdfslidesslides | 2023-03-28T00:58:48+08:00slides2023-03-28T00:58:48+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:0061f67e-4b8b-9379-1187-ef92b0b91df0uuid:b31ee0d6-4232-8b38-13f9-32de9bd0f44d endstream endobj 11 0 obj << /Filter /FlateDecode /Length 7490 >> stream xڍz lU9g~֫vuWsp˕ ""A22qQcH&"1 c8(0YY5IFT@@`et} fWujPB'&:!n_=+@hGЦT8V}s]״ÄP[nZbw8[=__$Dk2y=k?ѯ!dgw|qbYꜨKx%I\uo_xç6CIƩ vPOo>M)6G׷l }з[O]y{+;¼>uBb|@{#/\; x4<ǿv !~HH$!ILH=B ɯD{@G&BS! ldUOgz' G]z}+?乕&@m;:yTvJ%Vu3(Ze2cf1KdE{ygwiZ,[)K澩՛V1+1yhBWh-[G)MRzOف<Z;pH<];^䘚J\BZ&uQٺQii8!nkpZ-D3{iDMamӰr8᧱_Na-yiy ӦI2 FK0;F3*8,5swGq^j".՟RzB[>&5VQѴGojk~F 5ݮdXA9in8RG$.SL$F4_V`}}wl}ثcPzŽK~ |JkBiLxhkaH/L'pNҐֱ MهRQ ێh4.l!l^#!lކykgjla# ҆*"t{L]Yżw֫IWתuF]W[[ҝ<&u\vb٭RYZHDv5n w9"n{S=0=ic=@=f6,9ycg[]a_l{v]X< ,KQ2 qV18 <`Z,`48ӌHL99yV4X(lǵt8 /OemA E-baJAu{c &m~yGдɋyrr:r("~6rl+6v8Гy8]od?]oz-OCe{P~NsemEJ8ik/S,_߈Ƽ\Ww4U/?̌#c۾||;Qwg} ([[:EN.lSвm[|gaj05 =9[H;tniV05qmfKfICtpof[p؜MUy%F#g2дKԣVd}f2nlk[kKb[Jdw~'t[oYDf>f}/6CPRU~}yvgιlBfX9]I('&#j5Np&1viDjD^Gۃ? c10XER5pǸ0Ɖ3-B;yZErO;AK߫%n-߿Y8}LN`?!ZL3?|5ǜt`-nfyi?HOn? (j^ClPW :ɅJ{G9\~whdBip#nUSGk?&8(Z# \)eindEJFcX[fdԋj[u?ی 2Yixo mt!4x}oܝy%A_&c0)dy|bS o$x_`%GG|BƳ{Y}zIY\9Ye,(#*E SkwrA:#m;3\$ܬcƅ+r ƭ" "?>Z\wn!ܿ_wĪiɉ 5˲נU>m/@!E@I.^-nnwz^ro N<.k=CsLr8Τt/tZ4׮ؐ.Lv+K/LVGno0~ U߰*E: >:ܴw!O錙=y$%{Wܮ13OBbn;1ߜtk u3 |_2'@p=O<[\8Qc&4`2TN6-2<vrO#x&=@V"ȱvFY%Jp4qS^:*-L!>#w?9tPo>]Z7Id, مEݷo~~_V8o9Lrr7Gyr >Tz(rg(7 K\ek*%eN~&=v2-d e3`񗥥*h!;HOPb +{4Z|닡nqV+9ri 0\2}+@)_./3`ȥ>64dS FFr6+J-8DE x, 3c¢-pKq>O)0Ëdk8!x ut֙։ώ&Զӆ,yFmd$rXrqy\5;! [bz5o)@ZxBoҪƠZ?,C8[p.>QѯUBZZL7) PZ3Q M{\'aAuB!=uv<bBQ^4yy<,KF0O͓KITbTrU`1BB2dئRCBC-*Rar3J轡MW6}C[ji7 ^yh~;0p@`sa0}/3hu8*WfPd7,+ =2a!9y⟆@B 'gԀK fA1U.GF1C{ פ2sfvts:Z1>as&.H_SB"/V.1>υFŝYo/(/N=Jw<>wÝTH֐}<kp#8Cutnk]+}ƳI16Js[.\]\K{@@*͹޺#+ ۭjg\5HH#j.G$KpY] qtU>>2\C\6TXB-RP'aԮ^V:ڥ_( Ζ(L "tS,1m,=ptS4.;l&N:S²,meGLO+;K(2/> d8An)JS7@~" ֭\:n^x 4lMQV~05"l'fVްFK:,IJuj2QՄgX:R*V4^],0z݆ RlGȫҶIyC-< Y~Kez:ۧD"Ӟ4}Rx[jnX*c#] 5 ~ϟ 4<3J`NH= \P^5nɶڷ0 e>`o,I ݮ=3F.X',Q:Q397i310uކrKp Sq ~0-Ք۰MdN;̗VxϰZ5F}:J7 6݀|YHk#l NW4RL*ۼOڋѴ)D_0oР;47pԩ q ,zRs9z(سFc,!(g}3rjhZ j|ئ"ڥ` r.6@pZXqيSۛ+=(=#EiZST?;lTg CG=5C󍎀 cK4gl`kK5>"=e3izn;|/ȟUedl*RH~3Z|) |E;/pN#h#yjhb2'a)?~6plYzw{еܼ=^@!9F*  +-pGvܮyvRݲu%mMaX B6OFS?MxBɸAn -a{gvhƢҸҿ5E6cMA= c22p Ftgj8 ; c|@ߢa6N2D%\M8MWMZk<7{l\Wkdڲ/u >ۚ-!woLRB1O:EA;*'\'Ȳav8.'n7/ܝ ԈӱMƌnڒ$0)| Ο!U.#)yuMz^^tJ+ºx2]? UEeru/(+OP6z vȾ$J $>$q_7TB?GxSr? 0Ai[]ʎ~'y^vn/Vٙ'-y9KHsއ#' 3f/y-Sm\6h6͏fIR-Ջ| .`S$ӶIeZ"0:\^ ݂g^K u!\:UX#F4̂-7 );g(iF.ǰgaА\7,Xj;Rםs!k>E^G^ [pá*Ը~>>̅WߑL~ 5z8(\w2@,TI=d*V9=xn"v`.BoڸakDaM4Yp;=MP?"~qvE[d#X-DC"Sh5uЖ8=ѻjrGht|m>?7~]FuGѱ;玞>SZ83zTx}!c_f"DTN{OI~,9?kOWW}^3_E%\=g4 |מ2>O㧨^(^E R#="~}s?Xj endstream endobj 12 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 683 >> stream xmTj@+fX3(ćMB]98+%#~N?䬉 oyRwovo=bWv}gWWyWvm=U;wڎ:[嫶oyVNˤԾ7'Wk{U>X6s8}g߄wt흐E[gL  IڶiՈ76B*Q7x‚v.?>ݭmX.Q?xk7>*~aA=Oą$]G3#zv/ƺMeM_{,oRg";04m[3h/D!1!@A8h  "@LPzL 0SɜP}iXʡ$ 3K@%II3I}RcMq \r!3Ct? @Q.Ÿ!% !CdJB9qJNEsQ2Ft~T uz4E?sQ/*RM&"Ҁt* iH(F%V 5<8 _,9Ab_N L#   eZ!ҔFaNSdfĔT4+`Ms _.ߝM ӄnrTmr) endstream endobj 3 0 obj << /First 62 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 846 >> stream xTnH }߯[b{n b[l4Q54_RXE Ú yHA )<DqLR T x I__U/l/Ku9a`H(4MHH iw菈?{ڪ1T[Uh99ˆ{ ՚cS8m<ӕelo%+ iA565O4ڪjY[Bg'20Y[JzjVvj1q!Ed8A>6Jm?wNn7Q?&w0pƌi\KKC0Dtߍ8g戱@c> >}zVx dgא qF>M9;~'<]^1倉i0G?k Mϯ/j`vs<ԕx|1Mfms3Td 4_Bm endstream endobj 17 0 obj << /ID [ ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 67 >> stream x @Yw# iq汰="YQsVelUOt{ endstream endobj startxref 12541 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/slides-1.pdf0000644000175000017500000002231514411653175030065 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 4750 >> stream xڍ]ˎ-9W~?$ !b,DV8=f΍,; |Ͽ|?};JZnw?_?~|tWj.y_Jo刽a(` K6W{==q #WLRm%!G+Pó n?$%EF`xvK2ǵoG >.RcR1Eu$==k)8١qUXֿ汆ZʾTbYUgf? }kE_p 5n?bhvxa>֣ꭶcWg|/T{<~Ek 5ުd[ .v$3 xRO~l6bQKos?|oɃ~BleiƓv8RN=kmUr]Myd]L]-gi“+Δ3-@8m%r#wa#}z l'O?5gR? j&W7^I~BCo@Y ' tl7eY$gV[Z T^Gi!U'GAm < Č2U:\WY^Op>KFԾKȯAٟāA KHhjR?8|GkSa $7x(6%fVngn~ͣ4@q\ =U_0 M $fR05~Aw… iͬ5g*w8 /C7+Ѵ*CoU+p?>],_ɡl謱k?|f(2_cOS7m“7ۡT0B]m: ؿ',Z.O*{mx!waJ4O璃 ٿJ2{((;D }A)/hhx^mC 1Zp6n%yAf#2xyABF@-x^^_[C558TCAxU 3A7;Kv˖ WrC0_ZBd#MJu X(hiL{^p{9SzP>&o-|aEϲ,w6FG:3uxa[XhBvϿ& `@rcJKVFR Mi( Z{ x}' E\sσWY.x98|j}'g& 30&?٢5:tJf>4z6!dR^#aj)q3Y@b(ZJUl³ 8Jn頝>؇K .i  B&z)el"  N{ӪȂ'WXFш@y .{}Oe& Q86'X}B˛3WXr<9`Ry+)Ju'\X/$i&o؂3kU D{~>F³ѿJ*N2i=V&^ RŐIJAfqS"ZQvb7~7d^x*\.4~9Q^JxGg˜v#=BC ٯvUj+]̊9,V] 7w쀵89 WXCW.!d)W7^bl۲gM|zLMlQI09J6ջ[&~)5&L(Ϳ[SMJnJDV@/9IMf+`=1_9(WJ({\߁W\Fd*_!DATr3ϓD Pwł}a'=(;kRw&u盰fbJo`@RX[l/ӥn2@C%5LI=ʷ&V\JBیJ.>rԄ'{T1E^o傋@)S܈wyiv! PT2_ [06&aѦn2@iSPX{;F)Ԅp1L!$. KM&Y{6xU|D ]ug^ R0IgFT&OElV8f'UWDvaGHrM*cۑ/%{Bj}}}k`듘B7/A.w8'{W ` >k{367Lj]ih!  }k;* 3"ߟR$)ihk3~Al6{zdZO!l`W3Na.7=p(eRVG 7+]]i'}DwY`jǷ8v`"`E]>Nݿ/|r"ٗ*xasl-WxyiqwAV%`&P\#4gGXh*JL76 po x06a-0%RM,.&'iByp[kդ}p,CͥāW\sbIL@`(!lE;,”B7I^xAc(GJK3A2 vr9}D dWZڂ-Ch!}Hqhƿ:p‰о~n& 30ͱ\BXTX r/#[ aPF@G㑗g>?e0!Rcf7AAG ;]ޡ_$J3)˨}4wfE9CEbB9T<{Ш,夣`!  #H;k~_Ax<`7zZ)svֆ#݇ݾ~u*ƠG=хTcͭ9Dg9ڦw{ ՁAD݉xBOd a7Nd]oL@ P\:_ЫB@idhӾ&O9 X\J#D!}h2@ G1?_\Sg+J4@^ |OGY=~LS_!s埉d5a;^~$'T%W7\Xnf^I"3 W ]VLOͷ YWuo26|l/-s~\1 o>(a;u&آ&P\ąïO C3~WC--"Y6l&wcb7fl*l>}ת`{wMnaO endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-26T12:50:40+08:00foo2023-03-26T12:50:40+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:d6270293-4ab2-9ecc-1eaa-273ced7dcba3uuid:0d950079-4978-bfd9-9862-6b51476f192f endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Length 368 >> stream DVIOVL+LMRoman10-RegularR  "B  &    ` $ %' &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityDVIOVL+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈uCn To  ! &' endstream endobj 12 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 13 0 obj << /Filter /FlateDecode /Length 365 >> stream xڅR]k0}W=klߊ[/j){4%ZL9'瞛)_8c#[E_ڛL6 }@d\YII:$'-Cz zÂ; ~kr,L?cі]. $2<+}+KpN1eel`p s`nּ.q=ʄBih 0vxU73*. >sn@i[%Z@ Ax U8^بf\wO3{,t&ڕ :2Q񑉕mrFQAO2 ,_̡t\ȮcR~"}k VK0\~ l endstream endobj 3 0 obj << /First 59 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 821 >> stream xڍTao<TSl@TEjZڴ4C"8#~eƾ;! BB?oooQ *ـڬ_[)f\զ4lM \yөRGB|iڬ)OF7$ƒI,bGRϑBYrٳj34AA*DPʝYJ-.~a0),8I7eH~xYϝ5̊^5/0FICki(za!p8}[lwFAaF0>ΎDHhUYg_0~{ңFA9z3MsNqy/LLSYMM8Tm'RKc:mϳaMaݥoΠC%M/)x endstream endobj 17 0 obj << /ID [ <851E1B78D1E807DDC5B16F1BD2D09D7D> <851E1B78D1E807DDC5B16F1BD2D09D7D> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 66 >> stream x 0D;FA-W H80sy4l#lb,UGlUoj endstream endobj startxref 9125 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/slides-finished.pdf0000644000175000017500000010430414411653175031515 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 300 >> stream xڍ=N@ '0XBH,,+с!JC EI%<@> stream xMoE+M}BHbH!`B}ڝl&z1gGMU[Gz/՝̦Oo?wg!)k@ዮlX= AujBaohaaÖU,!@j22,9I[.1-R8bDC̉hӁ%CD -" rl>LM"M m2QAD} l0 0&QAR϶D\p!%FU+.̈́o2ҰbPK)i"2XIO ~ݓћyu.6W//t;@;^> %R' |1]L| L:][ EE_^-c yph/LYxd}96BȈ,pAQV_y#a ܞEEngDQ#E #jIzyl\.,LvB٧Y?,GJW:5np,n-N\l}Sl=ٍZ'Z T*ud19$0It |=Z[ endstream endobj 10 0 obj << /Filter /FlateDecode /Length 1755 >> stream xn7k#YAk9-!Q8~&GuM-}ϔSNE\rRXYVM_ߦwkt@gt])\JC_ҙ{K_M+Cc-37/xhv2fJM*sk*E-[)'m1LEMjMs-ZvJ%J GZd>[%.l6/\5\5{&rIbd6&%L`MMrT`fѝ<3I4 S_Mү+󼇖h8ܼ_^Mn0eX n(V:dDy04U׫ЍbcHXS~cێۛ߼E}^(r01)Ot԰>6]/Op5mȷw5 > 7_{ꔛX.F|WVqSsC#@,;nͱ{8m.ë"G?Dj3*#>Y_t"ڦ –hwY e~TCTvۤ=~1 K Җ}b46Y--O.l;ʋ]?/ϳMӣS8E⴬IVs*;HpM˺Z~TT-Qm/{'UuU:Pe9h1nVU U+gT;~?]S.a`^Btͻ*Aն]=Xa" endstream endobj 12 0 obj << /Filter /FlateDecode /Length 1747 >> stream xrD)fCFQTHEw 0IS!,x}d^HȔGz8sDj˕5i鹖Bf0C9PNbb-Z9]]HMo?ϿWozOUDƍ(Ϗ'΃ MLs*E\:IK'Yx[ nQ4x N2wVEMSd ɵGUՒ0&mc_jN,5LKTHa6$+za&`᎔.hPO֒ܽ:~^7 v|R #@̂jM3c镰"+n&1U^!1Q *ayX#%xci2LNߢ 7'Z.=5hTfQ+eU,S,fJتe3F$FCcVs,<"8w |)VrMp@w{s 12ԨJBiMzH\BÏ .a(>}r hm YњlN)g1z^>R$F Վ#)vD%*q fz߃ 5{{\^`UK&d1 *jhs(|glf#ԛZ [-WhhDZG)fʾBihD㚱6 nL/t>MipX-3o&fbEpB߅C#mxjC}k1}7qyc*v+Zʇ ԥ1!#[E*YEP̊$BmP{ic/;dCB ZlwǪxB!a+\}73'D1|Ro|~'!EH|HDh.;lCx˃8iq"9]bzvy.JoN޸|z" l$7uk_w\ԅ4FG|չlxZم(V|^X3FM#,Ml|? a->ϖ1߹S<_20?^=9wTIlu/ Ęxzw}~;Ύss-z[;v=>o:91g|z!Z[~ǵ|eB42O22gde^|1X%k2}+c{OU;T(U;Ψ6偢xDk|kSDx;6ߞǨZ_;Ud@R.&sr._;a endstream endobj 14 0 obj << /Filter /FlateDecode /Length 1739 >> stream xnF| ^rSk/A Nr[Cx ,q~Eΐ#jd%@ ^>U]͡oG_iLD4)fx 8ÕpQuR6)2^ ߌ7~ӻףƿ^}1zc|!Ekx1TY}L'52^4'tq3X<)š-6I*^fRfcY?z0Ԍ6e̞E8GVFhڍt,6܋^(SUQhs`Y#|aʸFM,NNʆNn ]x6ݚnmE~Jj!yAĔ&\a xx )̢1̍RÆWĽgrbRq TIԐzkIX$IU}[*dLG1Ӓ Ccmay,X& 䥃XY7X1&fgƺ1ܼ:ڛyV& -"aeXnXP/+0 dc5 GQHT)!UXYr C1ݓ\R /YSVTRVQji%DLĖVFA#`zZ03e,ɼ"7Z&CdBO[,B9ը(*?y|^bGAƒ|01;[9np RΗPY>> QϱpbXm8͎~p]-_pϙ/;sЕ/w{\.z|E$̻PjKBgHXl .Z <ŦGYB~> stream xMܶHht**˖R-Cd.[>mGYy o7Xʞ>%NM(5ܨ{kIkϭV*%}>NєS4多$.8{=}_[O?=&u1~"J~vܺic*x]u%N7*{MSz #tTKnmn(nMճYe~()kظI\ٹh`Q3YZ3[WV2lT4wia1q&شr=0(FnYӞ~H^_- 1Q61\F̜iAb|GRJa IF5#'&LJ6PLKgSHyVK2Q̡ $26:r:*n|JE|DWi~ؙUS:e]EeK%/_q/PC>;=}|84_#{8@0xRIF.ŴH\x βfEgX:;Y I3*'ls.xjc/Z&ed^7ZҸ١ԍI~TLލH,xepsWLJhP,lRh0tefƘOȨ0|ER/u UN -[4e##+­jolYz0x#vhju*o†s_qEG r&KHW1º+02C (?8 ;rZsm!”2W+cV _򂹡: cmx]=U]!$\3a7^G_煂 /e_UbND5Pt&|j sT6 c<7^ SJ-7`1&'c=[sٕ ΐ7^bc?t~/yyF9ߖa7:f{u; JJ'TP^/y(St{wo}:GKՎryhl}mEZv\-'O9/hyQTmڝ^&[ثn۫S> stream xnܜxK;,hd( g_=3ݤYki1YbC"ׁ-W^ks-w 1rT3WĖI-nnI>|_~I&K?1BR-> 9trkU{M\KT,J%l lעM+Lɣeqޒd ݗέtԳFբexC3c-)q \%8ݻY+hEjO:Yf޸;<~I߭HO81jnxMve̹vx#070P ci>@ZzWc.#Z׾QZꬭyofqB;$N{̉-mEuU46JUFNUxgN07b8Xj'T+Ha( %U8Ȋ .Šn v.{&\B%b'  u .1Lsw6^a,.μFtCR Z|B"RW^#/!ܛačZ֮u7˼ 񜨤4pUAhYhUnzi}c1C 8:Hd3𽛲V4эVtS:Q1 盷i6Sl#GvljA*P'\1F\OFq5H\p: 3"1jTpECm0!՘jG[yΑ'^f.CꏆNt1ڛe\H/*.lŤ1 5ǒ02+&\$ [u0u#!# ⍼ն w m“+ZC:_{sWXf\d34VЫW+"L+H#.c:tepUk}XK#TVX2) Ś_U^d,*sZ$r*ҭpe,-ziubnCQ/Vɥ;T"^q3FȞa@pVZ(3c%5ݩϴsP\6Zmu׋_aKFA2Rz#e0Ft}?)tPQi}+ӱur7ՍP.S8ߴH`t_垟u5>(Hẜ~GAo6_5>/O S\„+q vd'T&˜'\w۫;ݼtËJ߽2 !(קw8燜ow csxvݱ=l9wsͅ9>fov{\f|F$錰4BGl%,@H BN_cXHGXȋd$Oeޞe$e.|#eqht^~듴_2uik^Q'1#,')~g> stream xYMoϯ%G1"ֻv9-!Ql9W=j5ΒVwWͪ|)=@kNcmzkdV~*єK4ZuHU6M/_?*_bҖQ_\'Ѭv0]\|QIXFh5Ƴ4Tg[ln:fq2z0Lwsh3ʕ԰G;jC'dajq4XfJSF6̤+& /{>,&{ wnHmh5C\z>cVd)!bj4IBY*7i3F@6q G qn"SSy.9um a4)07:=!ez1+/cTNsBiEV!䍀T$PbM +#f* c9 c+ZpIHԓ {y$4=02gvc "r V[V"\ܳr F}+Ppi+llF19)qq;:p)IYaD"SMJ0%=N@QAMv.#fUd1֬KžMbکFeYFC_s#rO\{e>^e*8#ZE3r{rax0Dlm3,ŋ<Ѱ1'LaU1>Ǣ),/Pa$b$Ƃ )-..*XH;<FAεnjz%4^Oe1j]1,Lj›y:@]xC.g8៥<:V \iQ%%)i FLPcaCRnBEoذ71=+a;e[b Kb%!FW x v-%d̈sjqG:`,ĆbdjIѰ7-YqoSeuAqn]fw8\>(-tA!ˡ!\ߖ_Y?U!as+ӱspo0*%q DF2t w>;+mDZxn 8{?x{;"S\+q}dI;"[]tFw *Ww,E]N?8w/;ίo}㝷ӆãm;]}m.\3!ֳ,W\m JM:cGhƭRE[%%Q(CQ! y͡kR/v/BvҊ,d *#Kw'zGdk}1_9oJIs@ _IY6HY*> stream x E eK eoAZmx [>Ltq;= hM7d}Y,rK)工ʰ֒MԚ>Hw01L))%4fڨ/ӧ/Bn*_O.j'J,U2t32n~g\~(*ZܺDYݢ]UͺZ;X {! /Kч׭ F`(Uw3|H5j`+*)c=Bn,6^ӞwgLsL ea!*-1!8I:qdtmR8@rCmhDJT4怉Jɐ ]7 PF}8Y Ήjˆ(L6D"(G>j҄iP}(5r[FP0BgP@$R+o0r kƢET?FdĊ1uSH񭨘4~QyqQ)QyQẙLXS ` ]a*6тGFMZBkuZc-wiVClSTBʽ^/x5gxm/M#/!}ⅦxK(bڪ/.^nKy:"”y!pag(R#d@zLNO$5a9ATyudfH;"/7`j)BKX*E^Ct E^ggApO#/XR=RbY"/eʮ J S{!xm=ЖN1g9R"𯵀;?:7py) uB%}nga@p~ۄliv3;>?WW)ַR?n>PH1TU_ߞzV: I!6"FEl$#સWppp}j-p^ R-gN101*= |r[.ЭKz!?߯??/ϗlGNEkx~A~*_͕~w;<-7z{v2H+q Kg٦dr0m t ʑJ 8-cZdyUDmT^d,eNWd>2>dΈ*AoZ\ mriN|H_,K{ӤMO-k"4EZRFoVy |G]y}e݊tG"g)s"I/O9Nl\8˛dk  뺧gzEQ.O-8't<Dc_RgZI/O-Z,|VDŽj%[u'ֶ>A͟8eu endstream endobj 24 0 obj << /Filter /FlateDecode /Length 1767 >> stream xˎD~ oXNquA)!0$ >qwOf=#qU?Pj߉fg;hhs4Y5Qn:%|oo~~/j?R_:_?q85V<L$wWv$pj"evK-l&xΔ<׌0e'j ,^I /dN2[ܫ UQOdMf)<[M 6˒یgMmZFx3Ld18ID{~\yrkNȇ5ͥ2h',I[3'qq:i)H):>j ZAԼ~^r{;n~t͹w3osfgNmzeV/ ?SEVL kуź t vDG/p -}2_%ߧ2O22deX+㻣_ 2yikqCis]E#$G)v^[y HW'-G[HQZ=; Z}JՎryh#2dQD=_WQ> stream xOs5 )|cIl3 3Zf:á%74R.Nۯir*Ғ..TƮ!_,1mi(&u[do]Q6j^Je1:P4.Ү/(zOD G6Qš8G¹5dq<۷Ǐ8\ٷ !1Н|)]w'!#![\7Wx}{;V* |~y}3osxza8>|O7l;{]-w9sr)x>Yl_2"|Ar 2a)袤^ {kL }7-cZ0Ǽa|s}Qbg0xy X;as35Gy.SM!& Gݍ`/;+6fe_]]Heool-?> stream application/pdfslidesslides | 2023-03-28T01:33:24+08:00slides2023-03-28T01:33:24+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:0061f67e-4b8b-9379-1187-ef92b0b91df0uuid:b31ee0d6-4232-8b38-13f9-32de9bd0f44d endstream endobj 32 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1175 >> stream xu PTeݻ/{5& +$E %- ΅`aaFڠ`[`y(̂8C5;t1i7g}gߙ98&c8{:x`chXdl-ޛ"OMMY|~%KWxZ<K, K,)BHR0SwE+sQc2*5/l 1c)Gcv>pBSOjTa&$arsZ#E b 7"{b5qYTfxoӒ$^|6S$/MqL9ְzb;3mj6[)cMNV5c̪:-d(dɋzZR{zwZ=U_oc>)5|Nf/Zp lU~rCK7 zy\2[Ooe Cu('NBeӂZqۂK:8JOY ӊO .<,##/B E|BT,`ixӝp@ .(E:TDZ !;IffHAfk&@5D7sf =c; e Rnw]- 0UW 䰽!2c3~aqimpMuYT>َY䉤OO r r .ZeMohGD2% -T4MyQǿP[.я4r_j Æ'ơ4F\g^M|ʏtYQ嘝]{=2S]8/rzFzҧo_|@,ݰ_2PmmP? Ӆ_`rA`^51!;odlyb;RZPḏE;CW}6Gq$)mj9f_߷ۮm҅hX!읐}ק;Њ ^w+Ү7.,fq5}/DAp $Y\PXI.afU Wm61= endstream endobj 33 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}]k0g^tMܐs +]6)i{!/_tB='yoi0arAKY+-+ZuzGdȚJ+LDʼna,z=g:+s(#,q_2SA^+@ߺUɥx_6l&Ly5[QՉ=\'2cYa/c^VhGB8W {\15i]4@~ wtYBStgu,}z4V2,PI 㙾(Eu[mwK1Ql: GKÁ:sk#Grds88?9;mjw>Z)=6Kx:A4en{?|f endstream endobj 38 0 obj << /Filter /FlateDecode /Length 9018 >> stream xڍ{ dGyf2{>ꮪ{9Z#^a !! $` ,/`m!d *YKBĚ ]$@B^=ꝙ6NJTBw3mL*r*{['{h7z(WO#~܁{ @}'MqB>慿(U7'ON \P|%'_'Ƿ>gݢrUkΦ/'O]ʻ.3ۮkNrQM&D_C3BwnFl4 X'ľq^vڟ⽛ B.GH}!i G>!z4'dJoaj2JH\tFBڸ1L9L_!o~fo%dE߄K›ў'd[x eIkоT5vY mvϏ<~X~=шyi8q Q/#\َ۽j``Q|z}|[l=Y֓4՝{FBJ/Sw+3bۙui)Em]/T_T5[>2H/р:MSS[3_HR|K&dywqT9`e(Ƅ;#4l30VX e/R431^>15%-l4R-UHY(},n\6:3&&Kt lz%dJ?#ַŶ8PtiwH~fGM膖8p ;j=}{l).:[&/0:`||A.!jًRNroGEVi C zY 7 #ރeNSF{o(Ҙҵ@`,͒Ǒ&i(Cf Nsj I!$]- nhVT~aX/v"߿ra=2K6mGp"e4ҝ hL-ױ0]|s$7i_j]EfTBKu['`sz8S 6#OvZ_9 /&P"`z0olT2廖iцt|]g;ݰ܆gHkި:m S,zlUS[7&:*\8i*\:Jh-2XXF݉A`6 TGN+8ʾ;P&&qgžDOԤ31 GSPV41(VКǢ锋wFyL^`aмNU-b+`4)"nPǁW11] ԡ=LaIzNXoKa7=7%?u@8xZhLS.$"^$}P$ e J:J! wlCCObwdk"9Z5*A-OTkit·mja߫zl':Z1SPSMY p$l :JHN(L0?*.Tԋ'/`!vcydYKuZRG;5&<6m?\GĜ\5=M?TDeul&3p^]~}xm\}K= \w3΄- bv (5iLwHEO-r|EU[_ڙ\Ö{}D֕/sԊ'a Hv*EWzM@:+MUIgN1A YYJو}[PE[FK0stT./c =@9%vd g y4+,o /ķvGT`1v҅gvYk| !'xv1'JLO8qܼ3i Dlh@Lx\,V( ?$?]B @XLrPt3^$mv;ok(MKuTsR NM*vը{Y#2 'Lf$xsܖqd:pU* RJ4/븮Ӆ^ϻÔG,'qd_yi%-MX@52D2! ,]Qm0+\HCj11S@Qu25i1jHQ8qVkif˪\'=bor("ȿ=a/]&E%zFG+,Tj ?_T*]Yf{UX't5\!Pݎ[&-G-KQ~FCг"B:k=hMcD5V4ZlflȆn!_!!|ܻzo!KxšVmcP$DvSW/ YEċ+Mk>0GɣGphnGҟÄL4foEų.3$f~%G6 CC \`fX%#88^b<6;U,Q,Vr+lZ6ZA+2FQSAhŧf$;Az9Uwyۜ{FWNu] yWua:S]5'3fVZwu2Uc5:usSiUaa +0/Wڎ}#9 Mb C/8gܤLY98F8R/L6x0Bͽ{۱a{^DP YҕϖٟYzG[aO g9rr:r"d۔q6øbdS}u2|8ޒA *Z9Oݡ642<0ja Z$kaXSm˽6ϐ!~WCe6MWSM>:-Eڣ_}l8 OI:~/W؞R+;30汄.$"1;njlu" ! @?A#l0[0i Z-pQ>Uڑ@gZfUR6O5LD Epsx1̲LE2ǫrn3fL"5ז"fxN{g .yńŸkg^fvk}! 6P52 C5l<g0@G4c+;ڊý/iC/8vSΘpgˑiď5fٺ@2p%)Lבol3 }\nhoýiAnn}*5+!¦-kfSzsj4ͶeZ, ڶi.ơ+|Sf:K迄Qw} @Uso}eLNTLg9wNLQ pl4Pb9O_#D^IF-tތO<$ߘ(dʱ=Qw٤T@5W߸];}DN`7!}Z[jA' Y\ I"[o%-nsȿ%V?\v}ϻ "ɋPhq܂ "y@(r+\_G$oMTSS[-Ē>Bxn'Hy96( ؔcFe-mieTC̄ӗqpp,a4^+ArW0McGg㆕uox1\T1te8ms)A1@N0%vq | l?PbfP37( fk|}'hR$;|â(L~m@}Up ΍7P xNjf*SYDn\dyO3lPqvՄv.nHUQ QBK&q xt<9斊aGj Gݢ71ӣ[b'Ĉ haP1<_==JB v6xB0Żh@Yu"Mij~T?'4.&l^)&yTV 2HgM5.}eM M`<QĿdzJ6)Thx@͟bgjY ^maA~$vU ݲ= Y{J"PUǻI QfUB3.q]T% LI8;܂D+65*3вJI ~ ܢq ޭ`Tqӝu &,c~C}F\6AN6矾1Ҙ]])nK-nWәQwI&l+{Ae>[_;W@2W} S;,8R"ݸgG_ HQnܴ{a=TB 1A{ضwg0pj7 A4#paB͓"v-E` E:QވKN&dSaeq-\ 7&(vL l,j{vVu24Yܿs&n'п<, LՓ_EϱcIKê,Uߜ4pYJ,$2U Iδ`ZUGd8Y/fRp-`leL^)6/ F D#B0fLK7euN)Nk,CŴ`2. Gt(CyU\ aI.qzȑ O|р،U ֘twIԩE 4Dsn^jLG(aO.d\Hdm?ςv*`ãz=3.d~۶'ZKaM&gY`F }Zе{g0peIEXLLx_/0HؒQ*'l[-kbeV>W'I.?(F\)RJ!G4Vb9J &4,RD{,XQkF}L9qEv8C.7N :xBTs_,ٚV#e]HŖbEy'l6(؝MǹȡbeI tmuE0YS<8RF>(W9u)itf3K;+ݷd|҃*Bd)Gգs@T#k,u6Wk 4pڮxTὰ-$EÅb[E3Et*Nf8SCdrn%vW,XFJ8UBulKf $䯐-bnAy28{g[UcsO:EPt])//~8KP6 Q}ȋB/M?ETaXf7 btPśc| O# ^V{ ?J'>J}$20 6x#`RC^ q pta,`=g+Ç[{[Hg([UoTNf*ku{⓫f9y`n2^f,P##/,XrhUޡU=Dn`U ِN)@nc6_ b q*[lzb'hy4=j;!EʯX|$!Z׹#LAxLNv Mqn4sMZ\isyC+TL~-m̫0+ ܂a '@)[c`/67@*8$M7IARVYC|>I^G\ T@F늶/XoAr5x;no/@Y=?3WB!<(BIa+]GQ?\<_Y>93]F=A-UujaXV ("dl s&V2DF9]QF=)! kE15eڔ<0e!ffeV;SMY|?i)^hkZJukW*7uYWԐ Mᷖ_U} 4&#Uht iUD8 =^7{$ȋH[SRk_^눗 ae==3V33!lM4 9@S=o 4jcbxMmiXDRbyt|# ==\\CRKï_0G$=g>^~|-?wlȓ) J=cx%Aykxjg],L|zǞF~<#;xx7}*8sx]Y/i4& endstream endobj 39 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 40 0 obj << /Filter /FlateDecode /Length 755 >> stream xmKkP~;BW^E.-3 ɵĸ=(e9xe=]ݻ{)^ݡ;f7MUǝk'jWÃxjqU wyVڍ^םRѴ#nܯUc=]7GL%5çfLȻ>M>u/κ@&3nDֶM[܍x&B(-ZЯjg"֧vvC!s1{?awb׮oq]oYO ) Rfg0U#u$ףNKG1XW~S~~\~r!ݹJl *$^^2H@Ǥ,xj 3#RRɰ$6"xF DKR),%rZR9zJgq(FlBےD|TO_}* 3˞-pܒUJJpJ*'|QZ|*fϜk+$ǕlZ'i|Z \QF>'?('+Ӓf/ULoS'X'/(c&>fz/{,Ԑ13giҔ_I]aΈ+_d4 |)K4WHiO%6;4uœX$OK䭦wKb866K3ErI]ۈi 8 e/x895Q3v_<࢜ endstream endobj 4 0 obj << /First 175 /N 24 /Type /ObjStm /Filter /FlateDecode /Length 1112 >> stream xXNH}߯ BBH@%"vG<8IؑH )wBm:P `ƒct?J+{R pxݳAWRtt9KKcUy?/ZNlS'6q|೪.s8)Fr9p|6ԳոuQrf]1nT?.lc!CqitG)ڇ՘EUf5! \Wt2KQ8u5\$20G8fQk.ҹBpu:Ƈtf?u:I^3oZoW̍1kFF|`s|\L87:7Vױ- @K8h+()P)߿rz=dsTهiXM*NmO=÷3H]`qY&ټ+zנ_IIV2[*JV[Yj+]mevM~;[kS{ټX00aG;Î|Cw(as>n^ɷQ:YƖUVK/jEnhokbSͲv63|*ʚ:cC=MqY˽-0J(⡐{Z)+=!ZrFiV^q1Z5fsOhM*=1i^Zzo!BXH>o0c!"j&'A,mVKYbQF5r">ߛ5cǁ67Eeᓮ0 [/%WCOc[Rlr#+]I^My˩WSVg5`G8!D @PEq` endstream endobj 44 0 obj << /ID [ ] /Info 43 0 R /Root 42 0 R /Size 45 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 141 >> stream x+ uvhlmAAo!+x#x /35UV"G MFObm?sNF8>p W7@f#UQU*UC^r* endstream endobj startxref 34639 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/slides-2.pdf0000644000175000017500000003413714411653175030073 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 644 >> stream xMo0 Ma@& -a-kuue·Dd!C[+/5~/+s'1]sNLj.D4d\J~?NxԉlBhɼ%)f^,Jp*iVXm!b!! {}'d m!3<lyǔ'f2Ѳ-($x#ra)uzxN]C.|?lFJXR$s(6oek:iJl XjK1vx`)k[o)یt;Q˻C_wae2rDI6At6` .'G~6O"oQ#`\ 5Wy Y:gpϰ\+j8.rxr{!#h9rgUCn8kz%ʡ )̺ Ȭaˉ2vUcju8mfsd֏0;4hST({ٗ,5:^&vo&el~y1* endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1775 >> stream application/pdfslidesslides | 2023-03-28T00:56:39+08:00slides2023-03-28T00:56:39+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:0061f67e-4b8b-9379-1187-ef92b0b91df0uuid:b31ee0d6-4232-8b38-13f9-32de9bd0f44d endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Length 341 >> stream ARWVYX+LMSans10-RegularS  "8  &    E $ % $)1H2.004LMSans10LMSans10-RegularNormalAdobeIdentityARWVYX+LMSans10-Regular1wp<wPN8[QQuPW To Ę  ! &  endstream endobj 13 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}R]k0}ﯸ{(ؾva{4%{ɹftH%WXFQV۴kI!2dZ/$MPdcԀcAC` b /~xo$u@#M*X։ ƒ*9  !U,mmg\0{u>f8~hinY5d;֪ZW 9L7G El΄KKnmN13 G9MgJuRToЄJ"7f9(]ttbAd/f_u:.b0F)e7ξCe~ݼ㳻k endstream endobj 18 0 obj << /Filter /FlateDecode /Length 7461 >> stream xڍz{mUyZ{~gw}N>ݧ{/4WoD^@Aà@ƊQf$VF1*FCq#h%Q5cԌ " [ӏJW_k:B8 9yõ׿yZ$NK ?6y:4þ3kﺝ& ru,x/toSdO5_W kg^ }s7|l'Y Ad_hsx~o}Sz ӷ[O]znK;pIӥh#D$Nu1]h! !8{CN;!lBq4<h^yB?!$S5$!ٯî~JHT0ABjS:؇mBLL IB7`02u'˄t!]*`M nJ&;2eN7;u=;^vfZi-eyV>ź_v]t9-s+M0J7.^nXSGvdIYt fbYa13\%"<;4--Υesj WVav=4K4|ѣK)/@y5C8pc{./rLMw\q!-èl](44ې5f8Mh=4&0Qi؎mg9>nE#S=b?W~̅22M/Oa4)gřp yoz\aп*LV4s_$<_V(.5]8?*G#ݷ}WHt0[mGGEpC!9hYJ^XIvd&øQp{"uD ? >Nb;c{;𕶺#|k?=B~?2Wј&,vWБ^$6OépFҐ0!M=]ێh4*l!l O lގ+؆F@ ⡩ vTDtiy:\Y-_b4[0xu%;f970Frv3)fTYBBDcm(XC|<`M-?F40`RDuέNش+TbVw40M hlX\N_GnFdˆmgxr' ^zW/fSO1,Ly&W4.Q,G4Zfci'uryceq\՘ZҀCcqm7tpG3jȖT@ej{ Z/#ۓzDqg"l'Ax,ӅZt[֐~ Z8NL: ^!v7'?AcyukkQ|L4CW*!ruF#PʫԮI!*) yyt-e5sF9B jv:>Hceq>aVH!iR`:L8}d]vk3V:1 z>=MCG+㡫ʽ?8&μ(j= \)fifdxfZoTtʻ]ǴĆm?:f%4# 炱3˙}k: "x\Zn= -ێn;F EDŽ͝בg^ 3~my&*Jn Xsl}$(Mĕ3.[zFiUEq]dmtwneREU-*uʉ?ی 2љix Et!4xmoy%A_&cR.r2,@* IL(V9K֏i3rh»Jknd Л~hl 8jO"5H1;v˕鈾ypsrq |fADŅn0Ri*oCfLâ5PPp9+G ݦ'^I(:x$ARUA`݊Q'@w)^u)jׂX}@3>RqMҭS*"_&In%QaNy)L:v !Ϯd{qƥx>ТvŚdv߷-gXeřj<c7T}öMppڙ{<=b"YN8Xqd6  ga~cܭ֙mr"7,<ﲐ9yű='}7Z:7+4raяVa ~S,g %sd2K9h{e7O!7U۪ihfkCBvh>&[fQM3큹OL!|g?̓OՑێ"ǎqƩ p༂QtEa &oǫ[NQi ,tTŚe')sbq"RfJxhY·zƙ\˕ a8e&x0fYS \'S}64dS FYDr6+ JM(DFE x,3c¢MpK>O)0G25V<ݯwZ9ͦ5㳢,-&.iyzld$rXr~q\U;!1[%1y jQTaUO2jޠF laG]|_$׵o#Rf*2;OîB0{jx!bu:ϽP,at? /T3GwJab65a_fNGqTʱ`υ&ܣgLFk^pBVab0,OKH&{5i3'CW=<]ESB59xYT:DطbF2bpglw8AM|bɆF(ۜtbjs.M~]+{ [H-O+K' 4G;Nwsp jL䄒5ϯIY|I}7x`(msE:Fi '1m%.=a[^7v,G +s#v JG j"$ AD;R-SUy_U@iRs#?6Os\Of^IA>݌/ = 3-C $`,--}"AH`O*]cSx8nTk}P;qM*aA+g+f{lMfz:i%Pԙ =pqD/~F>SV\Z{ ?m5;(JQDQ^*uSZnܩwR#a[CeJlmHTVÍT0_6iZխiw9fJ{gɑq1:J}웱.\]\ {@@*͹޼#Ku5'U{Q 5'hrcQItt1JV,K]1qT>ZZP.g!\BV$qtatRQjWt+R^F/U{sSH&tnrR)GuҶY[HtCVh88AnUR!ULݘKcXry}3Ӱ4YLj!f;i F||5k8d!f!UPWДB&8uב7(M1Y, )dr.GRu[Rz.^{k7A?Y;ix,5f:'X6 \P^5\jɶڷ0 e>`w$I ݮ53btQA^sf3Z52<0`?9Q'+J8TH;XWW \햕 \]fĝEͮz`pB]ᶺȖ8n_zvD ;Mr8ƙpym$.3e *J89kZBXI0p)dW5e[S4HĵUzT]ڻCۓRL{ˍ?©Γ:j^M40;]dϮ?T!3Gz]Ƀm:NjA7!sPlO7f;i5xiv{-pl{jR_!G52L+CYgKVON$O CL55y£bc ^= z%veP3\Y),n/O͖ bqP.ZAQ{1 (c-R8-;-IVdшޗ,+av1l]IdsV hXcnH>Y=1 AaYTLI |AH-]`.NlA-2`.Lw*S-~uBEwJdOkcvJ3(,_ lh-qu<(PJj w. NeGIk> t8.  (뼓Ms'O<Ap MbGJr'5WjV=g*JzoQE _Ka[o{XkTViK> ņW/:8)Vi@f wDW|?u(M+rӀ5`WaЭ(`M l- (M)>ؚRV2O7l*MIxa6MF/@!(d7Ùzϗs#|8Œͦ)fW\HkI&O 'ޥ;ZZnޚTEzЁu:&`[3ܑkTql]JCz5  ci2.sЦ|;HaSZ314oG f@GwP1&O6gf%` Ftkn9 *a|@?av2@%!M?q|7]FV6iU~b}~]k+=xK]׬䃰oym|g \8߻{d-9><>|) DV9:AGP7n52v[~T0Fex:P7tՖ, Hp1* w!mmmy6yg QDkBvP?TY.=x[PӇ'Q'q u՟DP iN)}KvVBJ{VvLOxJy9rO-_2KOb)O'gFXB>d9fx1}Ϊery0 7]v onK#a]I>^iE)@L̪;F*꡸>rh5iG42BK|j!ԝ(Hl֚bh2"ePo%하Rհ*bghyۡ4?z%EίJT/B1Z߻oB& HڦMmW p-(y浔p\¥c_Y9iTH,7f=mI < {I#r<5 S䂸G׳bH]wb<ωS&yy*, 6?v.lS*[} ?؉C8kF!p P:dK?X֓kFT=Mbn;.z\dELޤq húWLÌ!iR[4vJP=qCC e~ty]QV?5DC!hu4MhmE4f?ܪ&wގގy|x.>^;|?2l~g|)4{X":@!cwq`a4gϛ+b9@O/c=[?Yy|.jܧ_p~ e1Wq>5 {/Nxu|{)Rm_GH]#_G\/?e endstream endobj 19 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 20 0 obj << /Filter /FlateDecode /Length 679 >> stream xmTMo0+J|8Bʧa۪tWİ AI8 _όJ$$gwVӸj?T=rnؕf~_&wwY[^L5V'ֵ >]f˦,yٔceFmRbusva~M/?zʁQ;˹Ufv]14]_s7UD?9!l6JM95MUu91fV~0ei"c9[j?t'f]eٲ+:;gۥ2zo ee;t-p3V?Kӭ?ՙCsSYwhU{Q@$-XR)XDY+- @瘡Ea4)HŰ 'Bܼ ЎNT0='8I5!I}BbMәp}Oی r!Mp5)N  &$tA(>@rr2}B#Ҕ.y. ;" \ %)_-ߗ޳ucnݘuhNz- o] endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 974 >> stream xVNF}W췓#{RE$phx؃ĎR?k옘E}C25^x` I~$B eD"DJ"b$<Op 0G"fWr&!wR>ގ'qJ‹$D-FW rUOvw~1Se#x|RL'մ|^t]9.Ma> |јFGYؙm^ɵ&Ibm1][seVuPr}z9ܬl.f%νieU>3'y?e*)\D8?WҶҨYn>N|(>\AvSj3 {WeָÞ.>GSkep8Q'O̟z:A?<0)saCҶמ] lshσOWb"4tבWܡųMkoXTe,ackɝvalɎ,H2Ly?0i= endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 82 >> stream xȹ 0Dљ\6GDdH[*WI_ Z3XQbR1`zI#-0Qyo(#L( endstream endobj startxref 14118 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/layout-1.pdf0000644000175000017500000002326414411653175030123 0ustar hillehille%PDF-1.7 % 7 0 obj << /Filter /FlateDecode /Length 5158 >> stream xڭ]˲$7߯#`A8;`v{>'tSЎ<9'SRJ[T[_9֜`)y\,MA&v4g(Tcvs{_{m5Ӗ(SS l^z|l}^hŎ{y!d}Oȝ-#qon`2S5- df b8ON5Mvo苽,}CI`;;Fo?~Ԏ*f-[/~sۗ>V})?-p;ۃL!ܾUD4iK`V|[ti8 C9 PRm%X]VǒC<>3\V}q[@n  wkdT TOkJօ5=@mz .Lc!l.rfXpBn]B\ pBأ96ෞC4&Ņ;õ m͹5!(cM$v͕@%wpځ[梄%Pi(N .]^5I hb8 kC)v }01pBcB#qbpB)l$k.]  >.RcRуHXkΛX|pW8zzO81^چZ*7TCy7~cوM ?K[xSƺ+eUr y rK2L+A@q+"Js@ pb Yoـ;τ^Dh6j|b^@[YK rFkOWz դ-'qEdaO^\5X<1QMֽ&#]~&kVL= 6'yxb1:>N?@̨ S5,&q A+ū92 nQ:i%xÁA@!¶jM@Q*mpҨb-{$j^W'{G)Ye&j]WmFC|'RhُfVP8'j~h YOhcxBچ2R0kQr6 *9^!5OC7+əaY3p?.V}i;U tMiK;&uk89>2ҩ7W-gsbCoܾoC39Y(} 7kJ,,8 Қ_ԸO.tQ)Y>\r`.l :CTRGNt 8`E@-Z`?:p$=)yă3Bv:i\`' x&p9Ph*48LX!deqv;` f] vƯ3 BzQiLxc xAL/K\sTFAP[s=HPA@M` `zjpW);a2+/&IRlYvCk64~Cwۼe3ElW{?kiRM.rUS*J)9(%ڥ33!& K T.8Zhh^>Ex`T`Sźu?&gI.-$?ʉjR g Ež$(h3H#Ѓj?v:'"XF$`9~ Lxk:Ka/?Z!auO Ńbc٨v 囫bAUڊwDWD` `P\5a Mupa.j΁mG):ib(ka ]?L\RPPMzQ\(xf:C}73M IH7ۏM~21<7h܅ &'SǢD-tL`0M nbltKb .!+&~ib:=( L_lњ9ItR4~gXUpCQ4br}aj)qbHZ|RRUL Ln頝^؇G ULCБNHŔ1E`d+c8""6וx*\]u?Nc~}?L*N2| S;%) rWLXa1gzA??Lr\~%L%*-{+O>OK&+hV0kpa-zߐzA`??L &`|[S)OA7H% 5 %'Lu <'p[g@.bh¯3`"^ o4DItU{" 1S%k̶u$2 vW, ;"GY+k =Q˳~큁O9tcT+,?y$0z`0}z;ޡFJp:'Rv/qeSsgAO8 &0A4Y`0}9G<(H<xN.Nk.0L6^䤨YՄvOWYHll<5m;t3eуcI> stream application/pdffoofoo | 2023-03-26T13:05:55+08:00foo2023-03-26T13:05:55+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:d6270293-4ab2-9ecc-1eaa-273ced7dcba3uuid:0d950079-4978-bfd9-9862-6b51476f192f endstream endobj 14 0 obj << /Subtype /CIDFontType0C /Length 368 >> stream DVIOVL+LMRoman10-RegularR  "B  &    ` $ %' &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityDVIOVL+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈uCn To  ! &' endstream endobj 15 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 16 0 obj << /Filter /FlateDecode /Length 365 >> stream xڅR]k0}W=klߊ[/j){4%ZL9'瞛)_8c#[E_ڛL6 }@d\YII:$'-Cz zÂ; ~kr,L?cі]. $2<+}+KpN1eel`p s`nּ.q=ʄBih 0vxU73*. >sn@i[%Z@ Ax U8^بf\wO3{,t&ڕ :2Q񑉕mrFQAO2 ,_̡t\ȮcR~"}k VK0\~ l endstream endobj 2 0 obj << /First 82 /N 13 /Type /ObjStm /Filter /FlateDecode /Length 894 >> stream xڍTn8}߯:(, EQ 0ֻvN@ZUhP4;%VE[ogfB"X@,b48V x*@@b!4FXiJ\qsj Y5 {mq ??VZfg_DnO(;¨ ( 5E?;~4I\$^$4[ o ;lԝ)yyqyGY3>\IC,WkcqU4/&W rUҾ^O&+ٞOJ Af3]j2S6GV N DsA&si(J>a!J8]DugS^ɢ3`ri"g, q:]Y)>숹{yT?SgeeUfuQ) 7\Z^#uF_{!kd.1!GTg:w;#uS]P蘎,%:^sV9*qmaɝtˍK9Z?HLb=Q5l2Jr]ў1}P"vv<\h,wLMḧu.@PkWUG|tz`ؒ:-5oSupڂjTzV)u >③;z}pr^6&S^eʎ@)iFq-GLG'S(uX6 Hc1JZ:\: 'kADhK@0f1}"FFaa bHhT4Fea}7'#]<8qq>:-ek" ?sWQL5+Y2 <851E1B78D1E807DDC5B16F1BD2D09D7D> ] /Info 19 0 R /Root 18 0 R /Size 21 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 71 >> stream x @Cd^밤a#"IGWanQ-9f_ 9! endstream endobj startxref 9607 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/slides-4.pdf0000644000175000017500000006345614411653175030103 0ustar hillehille%PDF-1.7 % 8 0 obj << /Filter /FlateDecode /Length 1042 >> stream xMs6hdwGә82ɡU'+ڇ $y0\`ϻa2꿊q%憣Uedj,Շ ސu9zci٠^cDѼ޽TXs*ybH;ւL.kZSXy=ap|R3>s206$\ׁUc=%ajk(OÜzQh%Z_'naZ+b6a\ЧZ?=Y9$BBgW㭵PNZWx:@3b<>{M|Sd9gI8,>xs oukP o?|) , 'r`ԘY݀Įc\Ջ, mSY;ޱ>sھ2|EubOWлeSSrM@H=fE(f-V+p?CK_݆~Z B1ȡꐃ \!Dȥ-ZNc̜\@^3-X\ʯE;}[ 𒎀)T'} }``or ;Fngܒ!K 2ܕ emQ8Yg~qbI>v W/r-'B:YB\w(Ƕؕ=KdV{r"hl6}Ȓ%2^"-ZN6' %4,.1]Ieס{]ھs8C6jYMKj$s,F(mԎa=r8 ;f%Tޗ/ endstream endobj 11 0 obj << /Filter /FlateDecode /Length 1046 >> stream xM6̐Ï(M!oAlRtW6-k[--RCyGMy[W1dpqWٛŲ?.'5?WO,M"kh=ջ֜ q[%/1[##޲R iZeXx k0pQ15 Ojc=g.X@&qUÆ:0rj1L\m-iSo7JDm#XkE&Ü:X'K>'Dc6TtaQ* Pt:`Oh]옧's aYou,,:gw#n PG rƭ3!‰յ'`Kz5cd_*r$bL ` yAaG3UrOR+Y]^_lUd笚7 ;#^bNyϣ$;c z͞DJJS`\Gn,0RK"J*Qɝz,_ܢAs2[nGKpݏo<ؐئy,0̵l_?}R ĔQvEG0jnobWz~ߝllʼn, mSY9wĢ:xϡc{z*=>=V_͗&BvOf:z!͈ȋQ\+@ZV~8suB7kQ0@gg C. %Bz ߢD /cR꩹5"-RR1tlN:]K;{for=+ -5 C]_fOvu;V4lr+Hy=1DUk]̝+"آ_rZR{r]\NVP A͢Zr=ʕڋVz4lsQBUT[V $~#ץ;[4d1Ob;c4@)gov|[~wxʑ(34lo;GP}|0 endstream endobj 13 0 obj << /Filter /FlateDecode /Length 1044 >> stream xMo81̐Ïbn}+zغm".пW6-ɉ,˶nIICyCΐy]W2l8ZUv8M֫bY{Qn Y_7& 5FkN8筒oY)ZeXx k0pQ15Ojc=3,S aCrIu|A_5S&AI4̩VuvTkE&rÜzOO|N06Zr΢q\|Fjx:rcѡ H"J*Qɝz,_\B> stream xMs6hdwGә82ɡU'+ڇ (x0\`ϻa2꿊q%憣Uedj,Շ ސu9zci٠^cDѼ޽TXs*yabH;ւL.kZSXy=at|R3i`QU Ob 0 rHJaNE(M@Z+b6a\0~zsI:2fcz]ot\ƊtԺ"F'Xa4)vSׄa,O:EsD3R;בFZFEhG3jvFN{O_oyjƆ̿Tl%B/i=H,ՙhK7Fq4n^Q% )eHͦ!PEzΪy3+Sydg[ٓH @itJ+ȍEQD#ܩr5-?3w(uv}ea)>c2۔8mpb??~[ο>?|) ' rhԜYĮ&c{\Ջ,mSYXT{wm_?ޢ@ec|i"g?l2B ?#$q1kY ¡ ]ϐW!yuxvs:9b.t1}/[99ZxH_v@%@SNm}h~y9mf;޳nR{[YZJ2[궃,308ʤ f\0HU'l]̝+FߒsGR{Ժj *lA/>*m,mI=+IvɂG YMXJj.dD}砆lԲ:Is爌F?,5P!ma=rxwf%Tm1 endstream endobj 17 0 obj << /Filter /FlateDecode /Length 1048 >> stream xMs6hdwGә82ɡU'+ڇ (x0\`ϻa2꿊q%憣Uedj,Շ ސu9zci٠^cDѼ޽TXs*yabH;ւL.kZSXy=at|R3i`QU Ob 0 rHJaNE(M@Z+b6a\0~zsI:2fcz]ot\ƊtԺ"F'Xa4)vSׄa,O:EsD3R;בFZFEhG3jvFN{O_oyjƆ̿Tl%B/i=H,ՙhK7"((f~_+*! )V4$^[Y5ouUGĜrϫ$;sܚ F͞DJJS`^Gn,:Fj)"JTr((oP(ܡA<q7lHlSھ2~EʢǧD]Ϻ1jqe ~$GH4"2cJXC+!ΥnC \f-  )uAs<\1H[99ZxH_v@%@SNxE"ю8v2*{ %KKmCdi+YlpØ*&|b_$i-^__uVܹlTm<-i;}+Imˑ !⣲v AK2ޖK+Hm{8lsQB{V֠RmڲKp ;ѽ.m9!,}59" x r=g~gu-(w09eYyD 2 endstream endobj 19 0 obj << /Filter /FlateDecode /Length 1044 >> stream xMs6hdwGә83ɡU'+ڇEIIH.]0{Cm_ŸasѪi^5foGrgȺ\2lP1`WYs*,9o0nxJ1ւL.kZSXy=ar|R3鐹`QU bȍ0 rHJaNE(ʹ3@קZ+b6a\0Ӎu~zsY:1fSz}ntZԦt"FgXa 4)vs׆a,9EsE3Q;דF:&EhNGvB[{_oE Y|J^fȦH,ՙh+7"J((fqW,**! )V6$^[Y57n~D/1<*ɋ9nfO"%)Q0#G#({XFFyGyvĺ]_X3q|ACFb籍2׾_ǓoKWoC2AQ31?+dry8溪ufifme5зcY|f׵{exj3#OWлuScr%@H>hEd(u͂p$F3mHwld@!݇9tr0 g`ˁ~K 5E:̥H]r /iڜMuh gۍ6/Ͱ9xf#Fdi.}Ԃ,-7%}궃,l288ʤ f/1s?/b:ac\A6*6؝!jBYR#q9ZAU4قV}Tێ1hYے jϒ0B/a6SmڲKp ;ѽ.m;!,nSھZ<|J93|mYF pG~SO2CiVQB[1 endstream endobj 21 0 obj << /Filter /FlateDecode /Length 1048 >> stream xMs6hdwGә83ɡU'+ڇEIIH.]0{Cm_ŸasѪi^5foGrgȺ\2lP1`WYs*,9o0nxJ1ւL.kZSXy=ar|R3鐹`QU bȍ0 rHJaNE(ʹ3@קZ+b6a\0Ӎu~zsY:1fSz}ntZԦt"FgXa 4)vs׆a,9EsE3Q;דF:&EhNGvB[{_oE Y|J^fȦH,ՙh+7BXPQ⮺YTTv#CJRduysmHT"jnuכ_uK)Jb[ٓH @ittJ+ȭEQH-%(D%r &u2g`1փ6%/ce}Տ'sߖ_?}SX ʔaEC4jpbWz~_4Fzњٶ@e]-όT>=T_͗6BOݏQ6/#8BN :  )p.}uR7Y0PgHoa]4<`ˁ~K 5E:̥H]r /iڜMuh gvލ6/Ͱ9xn[^>djAŁn@uAN6s[e҄O{`~-^__uVܹmTm<-i;CڳGr h>lcВ% P+jϒZvðɂG YM؀Nj.dD}lԲMkj(wDF(gu-(_aO9r< M;pYyD է 2 endstream endobj 23 0 obj << /Filter /FlateDecode /Length 1046 >> stream xMo81̐Ïb&n}+zu۴hC~_ٴ$',ۺF$% 9S {CMb\ɰhUE4Y7enD3d]Nj~XD6z0覆Ϭ9㜷J^bFFe kAl&5Nb)E\L(L Ɂ'1ud}XOIcZ$%0"n&Z FSf0~fs.rZ?=Y9$BB=ϮNOz:.jcE:j]NZG,Bu;)Ik°[h"9N"qHx#["4Vx# r;!΍[GBսG`K7z5cd+r$bL `yFFq~0v^Q% )eHͦ!PEzΪy3Y#^bNUsܚ F͞DJJS`^Gn,:Fj)QDI%*S~k3(uv}ea)>c2۔8mpfߟ߿|]~7} La1D;+SXoѨ9]MVS/y]ww1.gYkq3ۦ߱v>ھ2~EʢǧDmϺ1jqe ~$GH4"2cJXC+!ΥnC \suxs:9`/%~-^Ĝ̜\`^S-X\/E;}@[ )T'~߃^>Ku7ۼ6N}[eYAdi.}Ԃ,-%}@uANs[e҄O gy|1Ww1w ;}|KZ}BYRr h>lCВ%P.Ԟ%i-^6' %g5a *N-]nQnXWG1O#2@)s9_Vт?\#Ǔиþw6+( =20 endstream endobj 25 0 obj << /Filter /FlateDecode /Length 1045 >> stream xM6̐Ï(M!oAlRtW6-kYm-RCyGMy[W1dpqWٛŲ?.'5?WO,M"kh=ջ֜ q[%/1 [##޲R iZeXx k0pQ15Ojc=3,S aCrIu|A_5C&AI4̩fuv\kE&ÜzOO|NlfŎy }!06Zr΢q\|Fjt:2۔8epb??~[5|~La2D;3SOѨ9]MVS/e}w19.'4fMesE}- T=>=V_͗&BzO˨fJ|!шȌQwkA8X R\mHgެe@!9h+]1Dyߋ/GbNx!3' 1i1&hAhs 6ՉW/mޏ6/ǡͰ9x,V{V-YZj|o9djAŁk '?92i§.r"1̷x9s|} [}s P9Q^$n..GB+ [ꋏf1-9xZRJER8lsQBUT[V $~'ץ;5d1Ob;[d4@)г_;Wނ.<,34nǝ#J>pf2 endstream endobj 27 0 obj << /Filter /FlateDecode /Length 1049 >> stream xMo81̐ÏbM C=m".пW6Xe[7!gc!soȼ~V+6W*h&Ucf(wIͯ #Z]5bVK oY)a-I=T_6BoR:/#F\Dv:)kւp$D3mHw^d@!݇9tr05^Ĝ̜\j0^a,a.@ꢽ>-yI{l@;^>Kvy9 mvK޷ݒ!S ܔ,vp1U&M<<]0?Kx9s| [}s QٷQ/Ԟ%y}\VP A֠gc,mIP{뾕5^EQBwVV.SmڲKp ;ѽ,m;!,nSھ=|J9smyF rc? )G'q~4+(^3 endstream endobj 29 0 obj << /Subtype /XML /Type /Metadata /Length 1775 >> stream application/pdfslidesslides | 2023-03-28T01:08:02+08:00slides2023-03-28T01:08:02+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:0061f67e-4b8b-9379-1187-ef92b0b91df0uuid:b31ee0d6-4232-8b38-13f9-32de9bd0f44d endstream endobj 33 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1265 >> stream xuTkPWM(+᪳Rk Ql 1VQ EEE6Amъ.=~h,fа ;t;QT. G DVza]MS&?UǓm͎3kƮ B2B{Hm͍tiO[Qr]-)=m|%[s=`L.s!|B\gee}U 'WQ_ N0_iCq1S{Y>=ty&t5 s-N _Q5<2lP* $(gz_bb oU.tKsRZdr+=8@*f[<}#uAN  I=6nD'Z3cptrյ:6! wkm4px偧m\s ٌD/uz]s&/<+^2i83^N{W/je/`|&s;Lz^8gЛ[whL\Ɣo6l`W֘&3Xu 5(q.hP,MY2f^riTRM+bxhՆkߨi5wǺWA٥>$8 :h6oeBV}F]P"ze)NoaE`)i0,б^Ϻ%ɧӘڢ%}}%3<.'rLBK@dʼn 93VI21#a$cb{,8n> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}_k0w>tM#&6+=6)i /mu0]_s͹ijx#7 ,ЕӼh^e)@ѮO07'XBoJ}+W[y3:I>[->Vk=IU0oj,V*\X}Vh ׌1U܈EolJ%L6y AH^g61/(9%f%p#Qό@#z[MRG`EM?v6iq' [!åYS&h> stream xڍzylGy_ݪUwz陞?ޓ}@II YN0(!X#81:Jl#Q v HEq ZIHB1v,񜩾k߮~%LjNȉ_Jqh8A/c[U{&?pi7tqb?8ko5scM2nOY؇o݊; dqE} ߯NS>?u,d_h}x~==΍.}瞧׶B; 7 ?A9tjBBB%ĎоJs(N"DVBrCc +O.ء0˱<4G0Gihg1bFNe-$4M4J:vm/8+Բ6"snu¦]1xh6VwN?CEhZ`,s1 %vi/fzk[qɝ7o?fnLϚ,7qqW%d,Jz2|6+EM8k,]U\W{W !) h> ?GN۶}C w4掎lI{P6=!%D?Y@yb{RϜ(LW$Et.9mkTi{-P '&ZCHOgBur ucm=J<2/fJ%DhJ횤l2 +КG/`.C0șez^Pe˘+ vF nXK00)~#vۭឩPЉIl8R#+ 9݆C7 }4v+k FlC?J[n K 8iOS!1?Bf\7C˶m}38|Hn] CYĵ-%Mv˸{ ܀dn+1ҦH{q(MpzԌ uόTXf؉ tmum{XlKn1o'n⭿yAG;xʾuߺ-~x=V᷂?q9c \(L4K)-Bl<F`S!7K %/,3pG.$xg-8|tbuJUA'ɴ خ$O林:J+WM"ݚ}d9A4?  LVj1ho`H-7@s҆!7L[[Jqt0 o?90.DW2Bz6vXAu^'O!K #&sVFa>>=MCG+㡫ʽqM 04yQz)R^j͐xEI3zިԕwi Ӊ BAg2 ӌ@3, N.gfHJoa7lqbhC;Dl;xh,7jx,z<,lDر|б9㷀ږg2䖀5'MHO7rtv˃C(m(!Y0'izs{{L713zQvC]r6`ztJ[at,0]M;R٭6wgyEI h" EH^&CÔ;e85#9*gɡ8mNn-_^xgR)M]zӏ/3MGYIDA)fwu nr?!4snXn69LT4Ѝ]*yQŲ4d;,Z ]egݜñxHmjXыWE JBC$ ޶⬗ K_VwF, ݟD|R\w+B8A|+USc4+.+:5.oy)eOJHw{mu3t;<{RtqYB^$KB} Es5bo[xl3Րy[L|T7lmф7w@S#&re$sŮ[f&IXh<m%ntn{&7dY ̨/9xչ1 X ' ~H ;E{gMPoҎǒ0Ә=J,,DR4 ?<`SҊ]VsNiih,Km ? LΜo ғݚ] K/.^*t'3&ud/7PLϠf:z+t 7/JI/}3J!v*.53+=c3>Peñy4tK6t62Ek7Wso=W C1qCʵ4(Id !l LvppZdyg37{XQc''yvMzL" $%ƓCQՌ5l=.҉"Oؠ\8%8i+TAHucr[y"l {>W:bRUN JP$O#2{* J} ^&EZ/97cs47Yɕj4u(ˊuOLAX&4xNa,a3P ؿDU y iXìabHV;-Gf muYeuMzh`LF!RtWZaHAJeh<e#a Z H,WQ-YxY~Ce8{^'kD"^4}` ѲfVdžQ5k ~ן4<3cJ`NH`YITUkZ(/adS`t2P;nۚrGQP( HvmңЧ`7g_NV/4ٻvᯮVA'-+2A̈[m{r߅xTC;+lnac;PL/9L!;Dz@=A@EdUs6 ](707YU u۴Nd ع|i YE*i&cpzKy@`! Pa~@@6ȆitMZ3ΘŻ .*G"['ㄻAB|5'p꣧tbغlA,@ )#ԍj ib%CEl]ՔmL V5SujׇJ'¥xT@$eE[bΦ Z,gw#cz,7~"O{vT 4o`|vZs|vO S+/!@J!xrk 0C)1ƒf^OkiE/8^dՙWf;ܼ&)Mw@ 8%MCkcgSӕ*- 9AamJ8c^bިeu}&"9}5t_ZӘg)<*<Ѡaap0{=9B178F_@&bXnKVPE׉`q ɱWDOw[|$MD+EԎs 2hDBM`: &2mF06ڡ5JJSU/5E6cXMA= m2JAč@2o9Q;c UC? @ݕ$Jug-_dJ8ޏ~<.#+ZӪyn ?w>PڌJ]Rb+=dA99y[A2~<ߌ w,?GЛ':EA;*\'Ȳav'j8TLSjIX&j ucJI7Qm OpmHʏy YgiڸM'D"Y 'ÛB*"u-#/_|qIq_x;Pw'Q'q =4? t%?ӜR!ُAvVAJ{FvLF[ȕ3JtZHUKkfR$'g1sf,!Y3<Ϙ>ggղLp^iy)@LȪ;F*꡸*rh#5i42ӻCK|]j!ԝ(_Cnl֚bh2"ePo$͕-Rհ*bghwCGi~4K_j^(cwFB& HڦMmW p9-(yqJH8 ұ/ì4*aGg=mI < {I#r<5 S䂸Gd9RۑxX;̧%L*eX"lz[6qz>ȅ+P&Q=;5ҏc $3+|Oӿێ|֋]fWWiU-gVs]ȩHp s_>6j( 4oQǍyWdӘpNjS-5&ji Նe7ew%(jSaaZ 6vRn8)Izh!2@ 5[ᾷ~oѵ\6|;};a w}{o3< +ȣ>8i8iϔ U➷7p)?U*s_ {K8lydy[x_ 试}|mW.c.+͗q,{/T?~-M0o7}{?P7)> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 41 0 obj << /Filter /FlateDecode /Length 697 >> stream xmTj@+@pcL@OEtHTKF~|>sFs=IݽٹċC_y}]]]uv|sUk;lfqU[}j;.R޴#_Uc=_7=6\ N_CӵwBz^mu;13CQRb%dJ(J2KÂP1~ iYZaQTc'5@%>23D9铠/ " uXRS>>!;dLI(B}iQmIS|_qg|Q/B}/xN L"  ɴByœhQ}yҹөhWrK3E2uJUH *}j_wMrKӾաݒ%{|Ӧwrg%9d@O?7z endstream endobj 2 0 obj << /First 189 /N 26 /Type /ObjStm /Filter /FlateDecode /Length 1163 >> stream xW[O8~_1o5-"]"Z8&'RT+?~g┆۹4ǟ=  "BxArRAa AF 8gd9q6\WgwF?;z"ab8?`|wub*蝯5,F/ ] /Info 44 0 R /Root 43 0 R /Size 46 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 138 >> stream x=aXk*$PH4Wph(EQ:+ɓ_O"//T%"/[Lntᶙ_ݜv8ں7in[X\H dl endstream endobj startxref 26044 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/13/slides.pdf0000644000175000017500000010360114411653175027725 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 270 >> stream xڍJ@yy{DU(W=yvn0 !IGUu`^?_o/ys4${ DM R="RSQD.BG}Xi UaU>"0㈞ K-~1b X@:ٸSm^KgDb!kZrgFκ#uJo("yL9?]ys-:c$#RA"ǪAD.mA/@<T endstream endobj 8 0 obj << /Filter /FlateDecode /Length 1711 >> stream xKoE)M=)7 y8 _35z3կ_CӛviI4V6]쾘n>;Ƿﮧ_o}CRQSTt5#.vytJS6lV^7JF,lQFm6Xܧ]>zx c FݸMRjiNt!ޗE+R5Z1HeBg=>6fS/*fQԬޯ(sdۉ_NA@L,&Վ`f` lXmkZ" QHóA,ȫ'Dnb2 ?Q8CvFx.C,蒬:2&z v &v֖0yLltNeNEy{^Sd56`#шb;lm[Ṣrlɽ@A36G+0)먒`F/ ЯDK5b*X {q y*u4%N(*lC`Jh υ=pwM(Am\YHzϬN<+q*NfWf%fj=fZS8ږn2-ip &S1 r$Z*ڡCV̰=bNy ֩$E2,UTYyA{ $XaF. r/|aL +uIx.O7@ ;ut$\.l8<*cFdd\"(a\l{[WCpѪj\h W엮=myo,mh9ZÕ<iyZlRn-lh`h2ݕrUוV8*L+b$}BSր]٤ 4>z`)k{>4-X4Xa5C6Bc !ddX0Zs]b61>Z"p\YΉ+lyKfk@pe[D։|0*D6/dD&L`d_ZanM#%0*mQB>JV\= daRҰEdOwOF}3(S ?gu9e}y;Pz&ĖH1btu350]~tꞢJo1>Ne:}ym:,EZG0eR#<53FKxZzw8<|񼜿% >xA2##8!0 f9fq|i4Ǵ ,zdY?woS+92,xrszw}"~3/'~sR]*Z>cO~2.E Du!@Ԣ X4 ~!{?, X!sd]˳ȟ7jyHܱq"Dj~$C6'aj;Q> ) [V-6EYa뜂@3im!dDhvw Rw(/ȑUwEn""3"ߨ"C$r<6.pP{&;YSԬl#%\7KQrI8IC'.uh>k)jF--G*\}դY:krrh^R endstream endobj 10 0 obj << /Filter /FlateDecode /Length 1726 >> stream xnF| ^rSk/A`;9ķ ę-&C^?Q-ld-6_K4iy`GIR*)lZۻ˿|?0?MI•Q,4^ 'Qy%tuֶ%rq=o;y0J ӽfҮG5U 4W^>ܷY{\ SO~ako:\H:0\"`\oD)7?hOK]4Z1 QE@(&{TPIMƻUѪĚ+Wx4Nz}b_qe}I·o֝fzmkTio 0D2THԏվ=SѢQOLeNYH`H ) iv JhYApAX wizyS ]os46y7RFg;y%b;6ߟyX$G)s>#N/9?"񶬑^o%kdKm+^vs첎U+O}3m@ mU55>P.m9$ccVT(UgTa?]SIm> stream xnFNmAo ` ;9$2_$Eǜu!kd-Mn/ ~=L\ϸabxr+ &l&1 VVmB̜ )aVD>V:]&-0b*d<{D՜)nsIu ф08}DiC7ܞ_/)gǶԠ!RJ-W\r`+X*X-6ͪK 6*!Hg `[ʍYGpR,&Znw>Qm\ !*-$.G}06uY:7 ֑,s]i6D@ j-d/P.H hu\jC 1FdLa%[Z&IbVj#,Y *@c`ܔ[bR^aa>FvYaIF,rk/4NdCjo֮a)IxB!JTLri/eEQr=KSٯ"g$$IPZ".62_dCO#q;pfw`+>,JND,FV_=CE\ v0,Ђ̔c$ZUT@ akcJ -X+-eHk ńv[^! h\&ʹIvކ ..4ۤpV\MC,hN0ybhn/Xz,%wBBAŪ- v5"*&".3RX܏!ƪd1 @1+ u/CnچAWV ]"=ϳ(?h! y@B =@ ZpAP<̊Q,5!dm++؁JlIH!}F(_!ZlpK(Ǝ5Pfc$jg_qc}I}ź켞^DEۃ79]+?k!"fG|"u!ޥ4]jqn3WDdrJf Qo yl>O§K7zQ%ս@.~cn8s{Ña-}og6\N9^ϻ>szǧҫu`]rV/ F@3Q $a5\رLY9BC6 yzץˣorO l(׳Z~d~9ejuusAvvs؎룴iior?iGƛˋunD ]SRF'}>ǵbeB4;2o22ogd=e}1X^N5 ƃm=ת폪}gTrO` 5>T.m9$ގ'=!j7zlTdjTA4u ky'ZE,X endstream endobj 14 0 obj << /Filter /FlateDecode /Length 1711 >> stream xnF| ^rSk/A Nr[Cx ,q~#jd%@ ^>U]͡H/?0e\[&'Q'eCps.D34Ȏm$ϳ( 7I_hqL5 +r ๲ Q\ȼe>XdQl-?/~5͍ ְ=P\ۑ=IQJvIKFUViR@,Қ[HYZ\.rC?/sTxՀIR~F^(=ď Y&WxoSmzRTm:V.-8mEk|\ˎsKliG|F^&[JZ_ 9jZ:T xk>r./jU endstream endobj 16 0 obj << /Filter /FlateDecode /Length 1728 >> stream xMs$5+GkCTnll31|#80]ݥ)gP,$=z3i~?fUS+>Ok~?~nV}s#_|/_q:=U|B^*S%{M#tjiPPŽz{oԨ+I7Z8(״,8j`Q# I(ULLtZ4ﰸwljܹf :ڍ`l޴{㽛~hA~I.Z DJ7k:2bj"8F\m 1 摺ԁRZ[13#'&/LJWPL\jgW_Ij^GT0G \ ~C7?EeRkQY/&-;jj\YZX:GV-guD& ۠JTiU*B^IVXi MX{C _0Զ81-aB7C+-8BRY;WcipDtb6i#lkRυJ+^H 2yVth;GhaƢLmN*yw#iV\VnԶ`u&q~Ҵ>k Wj`zp!PU,S>u`Kvza1q,`MIJ7>f_#ԩJ<W6԰*۰XBh &ZR:ȸ9 "L$lo*k 3-,j1aձzH- @בWomt6jdؕ]I {q 9gnb%1r_y :/$QԺ Ɂ ^b": }>JA+ SljX)+{B6)!5+K"_l} jg?$Öݺ Ya7ثo|ӄc >3FxX-*d1o>PUކYLǪoσ"95!Nd3%/bsH*.ղ%\> \z^/Hh)JޟGpQ_{PцWrûNo ܴc#~m|tvN9OgSx~nzCkOonz̕1Ifڙtֳ[rKՎryh8l}mM9&ZO2_gzE> stream xMo6hv>Q&)=n8HC~J#}X4KG 4ogiY5xfK\$W7緟l?NLxrXneß>e#%?t*~y1)!0 b: w;t奐Ԣ;e-6[Yl*}c4d|.F"@RЅKX6yEi)ax] ݹ7#}dǦ:R :ʌx+~2D@₀W! W%W4Dl.K CRWҐV^rd.ڥh؈.z\{s? Ih 52Ұ$tL"b6 !XnuHHHi]űx#oB۪/(Pv +{2L}ea2q"Bª1V;\y]ֺ WƺڷjZO+ju(+,ca:Xhb X:cD\E@%RVQ*on\ *55] .aJ cbly VD⾣;˝ey\6_b~=}-͗o&IHl/ 1|/߾G=?>_"TTJm+ӡur7H]p) ~e==A-j|Pr)ݵGAo'6?g~ұ .Pa•^gp]V+zPamo^}EU%^eׇ0tð>'o׋݆6}o]~6g.va(^5,7\zH4a? lA(÷Ph m!:B{.#KG?H32rOczdkyzNZC m ;~PC\3DD{U\)Z8N{Te9dCZ~TT-Qɶ!Q&yIکUL>|{yP?Z endstream endobj 20 0 obj << /Filter /FlateDecode /Length 1715 >> stream xYKoDWx-_=3H#` }N>\N:\n?NS]K&yV-G v|??o7O~۟*,1N\pLK*WVco'q ;٭_lմR޼ʀ{7R+o6ю@ E8LމgKeD_+T>RdWLtj3|JDc7ƬqcY+j43ᇒXzދfuv#wq^|oa ﹋%j1b.-ctKp RZ[Qf$ })\l az 6TW` /#֊y[<"`>AHC=CUܬ 0SxBc%]ij6jB+TRBޫ!be V4ld*ڍ(*̺U`n'L f ZaѳX]` Wņl'h!mFIỈ3XF3Vhu`U2V{_ )+ #䋬BHVT,7*50esR!fxW"IᒐhM* $8S֖t MmY3\_KIn9rk j+d\=+.ynYnSFpኦ\Z Qb!7NJ\\ V ܏0"&%FJ܍\Ghû؃W.SEU/bYڰmĴQNݳ,!DW`jueLb՚d$p36,0*3TpFν ]B_a/x0DmѨK iŏX] %jb-ChODg?KW) endstream endobj 22 0 obj << /Filter /FlateDecode /Length 1693 >> stream xKo6hv>@p=$u* MϮv5lPV"?C3ͿLiY5+9uo>7wg+?~DGvͿkz1q+eʚ6_֬f=e5\drRwe)υIvjdMJβkc`%f|fsCkus;6sKE-9D7qͨGZeM\TͿM ?%-QCFBLT:X 1Z LboDČ Ƒζ(IVp,K_9}t'qm^u-s\RGiT#(khG>*T**<*޴QV1 r)L,+'Llh0BB{ ecQ"M`[j܋ԁ`XTˁ0a$T–Z5L#*/(GT^3PO}P>VǼQbd,2U\?OK w5=eſ*m QZQ\ /T,B\^h+/1ءRV#.8 5}rcߎq#}n.]Ű {r5}|fBi>>WWm7oW7?Ջ[>f}*ӾsCojNezRQ!m>~ $72.U%\5~dy˳^"7Hl?zp8=a]:C ˍqz\.F|L=;wH+Q: kѽ%SK(GnNH~! ~?-cZȓdyU֩?Aʜ|=e}~c?S9\"AHnezzRsqX]'>7-~Җۥ=~'O|%tQzҺEnhȎw2n\e egd>2lj+ sK6Sw%P%X-G>H3rhq$8d9qmM18'Z2SתG>Hzl*gQdz'̻PA2ou,5[ endstream endobj 24 0 obj << /Filter /FlateDecode /Length 1741 >> stream xϏ4+rf~x<6BHH8P8ԭJ9;yoc5m+5?ΌffUrәsmWoD;_p85V2&9k<ͷSnI &^Za҈BJ-8 S16Lp╚qT[%e#1rܫI*%M%Ϟe55Jrfx\rmh\)93]в0R$'F{354ё)щT0qBE;!fIGB̜Ĩ ث(lnU;&&J6j ZAԬ2peN ( j`:YArTQ|3shRAduC =dH%+\vR=)6 +(hSu 7WZcW8k55BYq Q4s%\U7ɡKؒy&WH4;q.i#qp؂'iլ8yV<W`h 8'-Ti)2B @ +<Ѣ\XG(Vފ࣌S^WXaCvps;˰$I-`)a.:,eEibズ36k)WNFpE[%hE{&(:3̊+G˂uťF{k93ƌ[\Y|yU ǝu+DM[6h$!ڡ@ 9".V,< $W\nqq2LDQPheF /iA) ' -nθXQv\a\6f އ0y@̹"ymfKA6L`+g?֑pw:|8lCŒFx(­F2-<1o> =YkC& Yej*^E7jC [|||bv4gX7&)<QU:f#%zSN o6eÆeg %Aʝa „2 +ވt^ ?W^qgǻ߃\N_U_]+gӗ/1 )^/$'5rj{};5<ՙG0/Gqyulok˄%2 DC#K";o*Qtn"bb|{.xh89p8^KZvh:;ΕQ#(tOW/^m!Ϗ̈́;?NOlN'ov=ݱoζ9nm.#Vרr3"!шg4Kk(@֢ K!%1-':J~FhHܯxa!9SX}*$G)zA> stream xn6z m4;/EQIH]E{[iX>B>҈g~}e421̳jjʪ}朴tmL7}_o}4;Q*bW</'NZNYi&EK7S)S+Y狊ܹΦ83PZzhnV͛ɍ|RcohϒB&L*R 1sj$([k4rvnG;SJGk-GQnpA*KGcxA Ź,*Q)`j(TT6VRR FaSeǁ6TQC)5u`ʭTe-RZj5{hr/#WB{5\ aLB IrVrҴ. \HDZWKwT =ⴊZ\b,eK Wm‰DJMb)(+SpI)-vMMm \C. ߫.2(jk5j)Ibf#\J;A-EAD{R[Z F#\ S.oX Sr W\Z\B 13865ȵ=r¦z _\3sTRj-sZ]"\nD:FZ=UQ=p!D$0ͣXX3;_r+5pͳj~^쫜rX0#\)MЫcY reTrrkrtW`wGj`+\HrafP<`qY\ |+O*<*HW.hmP愩Tm˭ٲqˍŪ@arceXj PgpF~"N&a<&Htx t"j&kS)IU*XD%ҷԼad@G2TP[\R#`5jgQ[ {{wQ{ezori}Y\N_w_Űzv=}뷓'+Ӿ}$xKL[|}3#`]Q6^ʴzy}nv aб%d'"U0ޣo80GQù7gvmxrwWHskCǑC{RN2CFB%snw; _ T|q:>kN ҷ>qfva3coo3f%C{}o ؾ$,x">q*ʬ[%{1_15i!bH̷1'%vb16m [ˋڗmV hqC=hsCM+h'%nG^6>{ٙ1ۣBm4vФugs; >G_fc?i^Ƽ>a(1g0xy GY\f ƒؿߦ=Q(mg<Z|N v6ɦPvֿ c)+,GIm?Cð):ȶ`^Rji[%dl}b.k9P?apXp endstream endobj 28 0 obj << /Subtype /XML /Type /Metadata /Length 1775 >> stream application/pdfslidesslides | 2023-03-28T01:18:57+08:00slides2023-03-28T01:18:57+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:0061f67e-4b8b-9379-1187-ef92b0b91df0uuid:b31ee0d6-4232-8b38-13f9-32de9bd0f44d endstream endobj 32 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1175 >> stream xu PTeݻ/{5& +$E %- ΅`aaFڠ`[`y(̂8C5;t1i7g}gߙ98&c8{:x`chXdl-ޛ"OMMY|~%KWxZ<K, K,)BHR0SwE+sQc2*5/l 1c)Gcv>pBSOjTa&$arsZ#E b 7"{b5qYTfxoӒ$^|6S$/MqL9ְzb;3mj6[)cMNV5c̪:-d(dɋzZR{zwZ=U_oc>)5|Nf/Zp lU~rCK7 zy\2[Ooe Cu('NBeӂZqۂK:8JOY ӊO .<,##/B E|BT,`ixӝp@ .(E:TDZ !;IffHAfk&@5D7sf =c; e Rnw]- 0UW 䰽!2c3~aqimpMuYT>َY䉤OO r r .ZeMohGD2% -T4MyQǿP[.я4r_j Æ'ơ4F\g^M|ʏtYQ嘝]{=2S]8/rzFzҧo_|@,ݰ_2PmmP? Ӆ_`rA`^51!;odlyb;RZPḏE;CW}6Gq$)mj9f_߷ۮm҅hX!읐}ק;Њ ^w+Ү7.,fq5}/DAp $Y\PXI.afU Wm61= endstream endobj 33 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}]k0g^tMܐs +]6)i{!/_tB='yoi0arAKY+-+ZuzGdȚJ+LDʼna,z=g:+s(#,q_2SA^+@ߺUɥx_6l&Ly5[QՉ=\'2cYa/c^VhGB8W {\15i]4@~ wtYBStgu,}z4V2,PI 㙾(Eu[mwK1Ql: GKÁ:sk#Grds88?9;mjw>Z)=6Kx:A4en{?|f endstream endobj 38 0 obj << /Filter /FlateDecode /Length 9018 >> stream xڍ{ dGyf2{>ꮪ{9Z#^a !! $` ,/`m!d *YKBĚ ]$@B^=ꝙ6NJTBw3mL*r*{['{h7z(WO#~܁{ @}'MqB>慿(U7'ON \P|%'_'Ƿ>gݢrUkΦ/'O]ʻ.3ۮkNrQM&D_C3BwnFl4 X'ľq^vڟ⽛ B.GH}!i G>!z4'dJoaj2JH\tFBڸ1L9L_!o~fo%dE߄K›ў'd[x eIkоT5vY mvϏ<~X~=шyi8q Q/#\َ۽j``Q|z}|[l=Y֓4՝{FBJ/Sw+3bۙui)Em]/T_T5[>2H/р:MSS[3_HR|K&dywqT9`e(Ƅ;#4l30VX e/R431^>15%-l4R-UHY(},n\6:3&&Kt lz%dJ?#ַŶ8PtiwH~fGM膖8p ;j=}{l).:[&/0:`||A.!jًRNroGEVi C zY 7 #ރeNSF{o(Ҙҵ@`,͒Ǒ&i(Cf Nsj I!$]- nhVT~aX/v"߿ra=2K6mGp"e4ҝ hL-ױ0]|s$7i_j]EfTBKu['`sz8S 6#OvZ_9 /&P"`z0olT2廖iцt|]g;ݰ܆gHkި:m S,zlUS[7&:*\8i*\:Jh-2XXF݉A`6 TGN+8ʾ;P&&qgžDOԤ31 GSPV41(VКǢ锋wFyL^`aмNU-b+`4)"nPǁW11] ԡ=LaIzNXoKa7=7%?u@8xZhLS.$"^$}P$ e J:J! wlCCObwdk"9Z5*A-OTkit·mja߫zl':Z1SPSMY p$l :JHN(L0?*.Tԋ'/`!vcydYKuZRG;5&<6m?\GĜ\5=M?TDeul&3p^]~}xm\}K= \w3΄- bv (5iLwHEO-r|EU[_ڙ\Ö{}D֕/sԊ'a Hv*EWzM@:+MUIgN1A YYJو}[PE[FK0stT./c =@9%vd g y4+,o /ķvGT`1v҅gvYk| !'xv1'JLO8qܼ3i Dlh@Lx\,V( ?$?]B @XLrPt3^$mv;ok(MKuTsR NM*vը{Y#2 'Lf$xsܖqd:pU* RJ4/븮Ӆ^ϻÔG,'qd_yi%-MX@52D2! ,]Qm0+\HCj11S@Qu25i1jHQ8qVkif˪\'=bor("ȿ=a/]&E%zFG+,Tj ?_T*]Yf{UX't5\!Pݎ[&-G-KQ~FCг"B:k=hMcD5V4ZlflȆn!_!!|ܻzo!KxšVmcP$DvSW/ YEċ+Mk>0GɣGphnGҟÄL4foEų.3$f~%G6 CC \`fX%#88^b<6;U,Q,Vr+lZ6ZA+2FQSAhŧf$;Az9Uwyۜ{FWNu] yWua:S]5'3fVZwu2Uc5:usSiUaa +0/Wڎ}#9 Mb C/8gܤLY98F8R/L6x0Bͽ{۱a{^DP YҕϖٟYzG[aO g9rr:r"d۔q6øbdS}u2|8ޒA *Z9Oݡ642<0ja Z$kaXSm˽6ϐ!~WCe6MWSM>:-Eڣ_}l8 OI:~/W؞R+;30汄.$"1;njlu" ! @?A#l0[0i Z-pQ>Uڑ@gZfUR6O5LD Epsx1̲LE2ǫrn3fL"5ז"fxN{g .yńŸkg^fvk}! 6P52 C5l<g0@G4c+;ڊý/iC/8vSΘpgˑiď5fٺ@2p%)Lבol3 }\nhoýiAnn}*5+!¦-kfSzsj4ͶeZ, ڶi.ơ+|Sf:K迄Qw} @Uso}eLNTLg9wNLQ pl4Pb9O_#D^IF-tތO<$ߘ(dʱ=Qw٤T@5W߸];}DN`7!}Z[jA' Y\ I"[o%-nsȿ%V?\v}ϻ "ɋPhq܂ "y@(r+\_G$oMTSS[-Ē>Bxn'Hy96( ؔcFe-mieTC̄ӗqpp,a4^+ArW0McGg㆕uox1\T1te8ms)A1@N0%vq | l?PbfP37( fk|}'hR$;|â(L~m@}Up ΍7P xNjf*SYDn\dyO3lPqvՄv.nHUQ QBK&q xt<9斊aGj Gݢ71ӣ[b'Ĉ haP1<_==JB v6xB0Żh@Yu"Mij~T?'4.&l^)&yTV 2HgM5.}eM M`<QĿdzJ6)Thx@͟bgjY ^maA~$vU ݲ= Y{J"PUǻI QfUB3.q]T% LI8;܂D+65*3вJI ~ ܢq ޭ`Tqӝu &,c~C}F\6AN6矾1Ҙ]])nK-nWәQwI&l+{Ae>[_;W@2W} S;,8R"ݸgG_ HQnܴ{a=TB 1A{ضwg0pj7 A4#paB͓"v-E` E:QވKN&dSaeq-\ 7&(vL l,j{vVu24Yܿs&n'п<, LՓ_EϱcIKê,Uߜ4pYJ,$2U Iδ`ZUGd8Y/fRp-`leL^)6/ F D#B0fLK7euN)Nk,CŴ`2. Gt(CyU\ aI.qzȑ O|р،U ֘twIԩE 4Dsn^jLG(aO.d\Hdm?ςv*`ãz=3.d~۶'ZKaM&gY`F }Zе{g0peIEXLLx_/0HؒQ*'l[-kbeV>W'I.?(F\)RJ!G4Vb9J &4,RD{,XQkF}L9qEv8C.7N :xBTs_,ٚV#e]HŖbEy'l6(؝MǹȡbeI tmuE0YS<8RF>(W9u)itf3K;+ݷd|҃*Bd)Gգs@T#k,u6Wk 4pڮxTὰ-$EÅb[E3Et*Nf8SCdrn%vW,XFJ8UBulKf $䯐-bnAy28{g[UcsO:EPt])//~8KP6 Q}ȋB/M?ETaXf7 btPśc| O# ^V{ ?J'>J}$20 6x#`RC^ q pta,`=g+Ç[{[Hg([UoTNf*ku{⓫f9y`n2^f,P##/,XrhUޡU=Dn`U ِN)@nc6_ b q*[lzb'hy4=j;!EʯX|$!Z׹#LAxLNv Mqn4sMZ\isyC+TL~-m̫0+ ܂a '@)[c`/67@*8$M7IARVYC|>I^G\ T@F늶/XoAr5x;no/@Y=?3WB!<(BIa+]GQ?\<_Y>93]F=A-UujaXV ("dl s&V2DF9]QF=)! kE15eڔ<0e!ffeV;SMY|?i)^hkZJukW*7uYWԐ Mᷖ_U} 4&#Uht iUD8 =^7{$ȋH[SRk_^눗 ae==3V33!lM4 9@S=o 4jcbxMmiXDRbyt|# ==\\CRKï_0G$=g>^~|-?wlȓ) J=cx%Aykxjg],L|zǞF~<#;xx7}*8sx]Y/i4& endstream endobj 39 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 40 0 obj << /Filter /FlateDecode /Length 755 >> stream xmKkP~;BW^E.-3 ɵĸ=(e9xe=]ݻ{)^ݡ;f7MUǝk'jWÃxjqU wyVڍ^םRѴ#nܯUc=]7GL%5çfLȻ>M>u/κ@&3nDֶM[܍x&B(-ZЯjg"֧vvC!s1{?awb׮oq]oYO ) Rfg0U#u$ףNKG1XW~S~~\~r!ݹJl *$^^2H@Ǥ,xj 3#RRɰ$6"xF DKR),%rZR9zJgq(FlBےD|TO_}* 3˞-pܒUJJpJ*'|QZ|*fϜk+$ǕlZ'i|Z \QF>'?('+Ӓf/ULoS'X'/(c&>fz/{,Ԑ13giҔ_I]aΈ+_d4 |)K4WHiO%6;4uœX$OK䭦wKb866K3ErI]ۈi 8 e/x895Q3v_<࢜ endstream endobj 4 0 obj << /First 175 /N 24 /Type /ObjStm /Filter /FlateDecode /Length 1112 >> stream xXNH}߯ BBH@%"vG<8IؑH )wBm:P `ƒct?J+{R pxݳAWRtt9KKcUy?/ZNlS'6q|೪.s8)Fr9p|6ԳոuQrf]1nT?.lc!CqitG)ڇ՘EUf5! \Wt2KQ8u5\$20G8fQk.ҹBpu:Ƈtf?u:I^3oZoW̍1kFF|`s|\L87:7Vױ- @K8h+()P)߿rz=dsTهiXM*NmO=÷3H]`qY&ټ+zנ_IIV2[*JV[Yj+]mevM~;[kS{ټX00aG;Î|Cw(as>n^ɷQ:YƖUVK/jEnhokbSͲv63|*ʚ:cC=MqY˽-0J(⡐{2 ] B^3Lr䍋l׵¯I7{B{hR퉈1MkL{{ ZBʸ1AkC^3"!fϑqr`B(f5ň9-6:YoQ#7(B ^3?vxmc_[v^> 0uRRP=;d9%uΖ)1UxܔGzE9euV㺺 vBD'oq endstream endobj 44 0 obj << /ID [ ] /Info 43 0 R /Root 42 0 R /Size 45 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 135 >> stream xȽaᙵX˲Jt: BT$T"DQܧ[QyTYU3f% endstream endobj startxref 34322 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/0000755000175000017500000000000014613513621025745 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/hibert-2.pdf0000644000175000017500000005665014411653175030075 0ustar hillehille%PDF-1.7 % 1 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 170 /Subtype /Image /Type /XObject /Width 313 /Filter /FlateDecode /Length 74 >> stream x1 g_(x tH endstream endobj 2 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 7 0 obj << /Filter /FlateDecode /Length 206 >> stream xڍM 1 =E.01IӦBAwBwJ c8 0WH~QJp}`  dc,:g$K})ڱ%d!ZJXh|`q6puFk]bK3ЄX1 Gɫ ԣ#dl$L!S$CО¥”}^$ʕVw3U%u $Oo>k endstream endobj 10 0 obj << /Subtype /XML /Type /Metadata /Length 1746 >> stream application/pdfaa | 2023-03-19T11:00:44+08:00a2023-03-19T11:00:44+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:52710a5a-44ad-95b3-f16c-92d62603ef06uuid:33912920-47ca-8834-e4a1-b025c082b4d6 endstream endobj 14 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 964 >> stream x}ToL[U}ƳoEi{萈dAc iKdY L^(edэk: l-=VkQ$[f [It';=bl'9~zݯ׽\ʶKjt5D$Nq I 7 R+ o2H>s/a6-D %2 e}aߡq;"W xݼ2 &SzA:h}soVFЄ? Y"֐8ڤ45w(c Л`H)dNzy|RK3AeiiO$q 3b%䚴,n',,͢&E|dƥs 嶊R. Kb]žDe.Ǘ=)~Ywt##MyTξ3 9߃E4EevkKaXVB'=xZEe\~U0vKYac.C4dy,+9.}݇7cSjWp!_Uzה endstream endobj 15 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 16 0 obj << /Filter /FlateDecode /Length 406 >> stream xڅR]k0}W=5{"M'Beǚ\]&%m壭) zr=$ͧ{e^3Y(tfs&iW YUưQ04EmM +}Qh[,2E@-K> stream x]UIURoW{3ݓv2R$DD E$\*EA1ɋ'َ%z0 .'!{/ ?)F>F+cg探O|Z/|z [A?tν?8o_zu&܉_OWx':{ީ?8e^F zv`o\4IH.lX>qxfFsl/~7ujkWW8 !t`n=JLDJ L&e/,ʲQI!밐iY4\W ٥' Or۵)< FWa4/yۛ1eYC-&ᅫ"N> m쭸e&Kiʹ=gf-/TòYK3wgDx;`< Oa4V'%(1=Y UeIIt9$Nkg1ᶭndr\֮ 7c}Ol01P)ozV G+d#ON;<{oT"O!KUcݖ)'2 R+ck}O> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 22 0 obj << /Filter /FlateDecode /Length 397 >> stream xmR]k0}ﯸ{Cm9a~ASEZ ؤ탰~({NI:O~3Uh#NNgX7y&ӊ"XR]"] 4dzw~ڋhwxM(kȑ/DjnTԙPrTXIP9Gf9pw'! سp% l^@T]N54g9j!ă_jE^Xfz h'x0N _.])Y3Ա)Gz5+G_ > stream xڭV]o6}߯ouX")+$zM v2Eh4X!H^}jtkQy.=!>1|G!! A`)h~AH2@Jg|fz R?YpgEWNrC0  +C '00j@JEC)֗D)TVg̦bV>YTWyh\絭atƞn4uR[k*R-y&,PҝggMuBF,Yj^_hlc7*A\\'g,=cIQqo4JQ\[̬ym4NrU m3]uK{?9i7*5n I|_Ĥ@^]sW6ҁI#Ho^h'sK/8(Q qA?1;lpp?)q|h7x{li5pR-f Hs5hߨ!Zߣj\jbh*xCw ]qre:ig { aU^ x_).ǟQfJk+H4Jkm`&MݻZME~-96t:7O!zeͺ$Ѿ,f d@˜ &1"]r~؉,yWm`l+jR$ C0V" 1~3YCw=M~p(a n, X%Cٶ}ٶ1/1z_-F,@@65I 97lP;`6Ť? KK6tyKt"kbBpD5V{/]*p:ov endstream endobj 26 0 obj << /ID [ ] /Info 25 0 R /Root 24 0 R /Size 27 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 90 >> stream xȻ @D?/-B3ALV\k t^prhA$p=8l(:DRN8s`|=/L{ endstream endobj startxref 23655 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/ctxnotes-2.png0000644000175000017500000004660314411653175030477 0ustar hillehillePNG  IHDR9d8sBIT|dtEXtSoftwaregnome-screenshot>-tEXtCreation TimeSun 19 Mar 2023 07:15:03 AM CSTȇo IDATx%uګ, dQt(f/ E !IB!CRشaɔ(X),=wuo|ffuU׻~oP_DGUw|{9}J)p3c 8p3#w3c3#w3c3#w3c3#w3c3#w3c3#w3c3#w3c3#w3c Gqì/AQ?9a.8qOM( Eՠ{{頹񢴱II"]Dp2D!Be6F::_Asy8Mh5z"7qg VO`«0ih2BxHi!h (*4Â04C" i8D 'm ϽƋN81 n@Q5NQ"Mh Ͱv {G.Ǔ{B3lXt.RcMI"pHIBMb5n@3oI"7TV5݄XƅYzPN{Ngfî`R5A7PmmxmD{g s7N7ۆ{``q>+ѹ^w;?:4K;Uӡd+-3NkNgtw0n!Mc$Qu.ݪitk/ש& ݮð g{VTpgׯ^芢"Mmn#!z[En`؍OzӰP?p27j+sVcef@U5$qp!$]47'ǞO14 dT̀ق>yGp{AjxK417,UXe$"!ǧ~_|-4{1u'1ҥOpZdA O R8`{;Hq89)f? Wr0Ma[S/6ǮϬaM(Fƒ"<#$QDކn:X:5.= 0>|!w޹*-Yi}_^gMЭZaE{g+#B#B#}ISi&oԃW3+0: wDbEaa8mZV} fM73(n"GdP}NFU`C}QD`!ds\e{ i#w1>|[?y[e8MحU؍hU>C;HӔ )kul+W>8Loi#<`o {?:ίqpgݬ}W`: nGqJl( Zvk4Kxp;;83D`xRWX |?"s*ԭ2 wOH ԗ/rО"W&Q`1ܻ眦4r:5rlo^C{inRZق4(cR_vk NS}OK[B z'Kw"Vg;x˿9u?34Fo}$}[e8SsrsqVTBͰX)K{?49#Ԗ/csGspL͵\{^; -W5-㓥4F掑N]#MAPteBQuح5ح5h A'^益nz=' o-\i8:/R`g<]Q:PO&`7tsGY( n?nwksd2lG|dFng~fjX{SIWe gIQEոlqi})ɑieVذuƽ N (Y30rIEFMo{S^BB$OfTZvL-]L Ȃ>D/({,UL:97Ch:=~fL\\jiH1O,k9'(*hZiZдxiV=z3zVpcR4r_W9'Z0/BL8뭀+=P 5goHUgy){@nZ}A_5s^<Ļy- 4rt|wX82'g&PW PdŝG'e9bdH*sDURh#Xs}sa6^iPBēcFϰW MU-xY sO1rR}l>C9_EZ5Z0C?3\ {Ϭ`$fU05$C:U9ٸp ha9t ĶRL*Ԗ2UnE9Cxl;WLha(9οKKHV&qUS,hYf`YX,xrJXY 3+O<9>KrD FjO.8F֚dIy"VxD- 9{ȼk^a~D%lV1TlkͦE!άFZ'W.ai9(X2yYbg"ȕ{[C'\sZPDtʀr e2VѦU@0UmG<9]dw$Bqb!Ntgy%=("I̽0ȴʂN8et@{lTŪH$f9-踈#pB)Yg9 YR< \Y@7kPui˔?s.\ugw6MSL߃BkE,]ygNr&qrD^3U_B'X|j'Cޕ#Ɂ*Eؽ#$qEՠvFO̺.7ă j06gL^&V1}x]O;$ nֻa2cNNRSyT&\ݹtRE$~}k 0*`u$&3]Ca揈nB8 !oh2*^[8wP(=9F( uN }!܃?:d:`eib>ҭΤ<{Nn3DYQk!SB]9ٽ;׿Ǩr\Y_auZ;_"&2G&=M9o05robDLU0ܽo4r`7~6ZɤH( 32TqU:UBxHT.ށY`ѮQOnqNk׾u6n!'&uӁn7a:M"Jd֠[4Ӂ\&b,_r_?%^$|q1)US|ڸyhq6,p@AEM$\-gD$zWl 'C!Fw~:YM;M 0ƞn:\B\-bJb3U9 :_!;mx]xL](@"(eV@~WXi~Ѧt[DD8Ci&K?9]7ia /16sih:tF}fna>8pHaڶݘyGj0kɟa;0ڛ^h.v>PKY@3āG< dHLAd(RWcy&%$ Mto/SJġyġ{/_khh[ r{HtHCZEQaaIID" M5Ȗ@xUH: ű#Y34ןAqȸXb2(*o`sqڛ>&=sRj? `=ϒ'O+>A\!VEbDX3d.bNn1="gn_#B%f-XX|L_yF&klq"h3{-]*E5QCl,8g-^Nm,dV}K↫bU/e@b޶r#,!9A.(FD( ,'W 4aƂ5S8q Eԗ/M!Ƈ`7V=Y@@3Ӑ2L7DDndA/l4Mz;Mbġt in,K"ENn8t/9]{0>6c`՗ ݄4j4F{܌Y bjx Cm(ẪðЭ r´T۰K\Q5Ӕ<@XF 1i(_[L&q)i}?XM&~>H&-(ퟢSï$ 0ܻ쀄n>7ژ^Ц(z 7ίF1{éI7Α =65ݬqK }w1ܻp"~98=(p/cQ3@'zKЭ: ݪ1.8^{Gx˿ @+p3 Çp[Df,|R5(0ڿ+.lC oDO#GWӐ DL7?:ÇLvs9 Xe$QK瑄xG໹dwн.?F҃L; Č͵P[:ށᐰTMq$zC.qzes,TU7=mCsŁ[??145"[5hC ;A{ BS;V*VŃ$ ry\b2=b/\[TV_(dt`|$fs̀fhm\Z5k3#'s$yB{Ik + H+iCt,1V Uh][ȃ<z[i Ͱr ,]ԉVc͵[?1>|66J!M#L{wpx-ġom4E;_Ec&T͚QT ~Wnxgu,शr;N 󯠱Fi=`Le^9pPiD+E43wM| 1gMK(x .  xA l$|ɔ䫔Xȗ{r5@IKԊ7_0O|l4?SIO^œԓKcBz&ŢHm^󁅫>nVT;D% ~*}.ۢэPtr|sM'D#P6rܬ㛰Eϱ*I=9qNb?dщvyPȄ^Ub 4ǧ|qpUГ+(0_Dzq`? IDAT믎g`fJlO&qļ073v KsşWKw:6 $s<9:YDJ1䘑9pT:kXF4@+h=9w,G&VqO.7P7~˯5$C"8GEyr)r(*4߁ATt%E |]~#G 'HBqU>#("2B6CW7tXe85Ή+G%UMf`X5hf퉫'DH3;ؾ t4M͌7d +x/ l{HbڍQe߳fOkG"1P뜃f؈ v;7~b׫TUCN{vk *ɥ)B}'7^I h؜@)&S~+DthՓ$Oj 0hpZu"c8: ?x'B&Rs.wQu,.v ̴1NcdOCqU޿S:|Pu 1ڻ$.F{w0$5OXU^Uu^b&1[X8B鏻l1^q8:J2֖qi#ܞjX0kni勚OGHȬw\`2> %f~~KH/(j~T[ g-c/& "Njsx !F1>u 08Bx\X v>*nR+ph\.}%I `{t[uXe8 W.6A1'S.M{kdt##IBJ2M C1zrDD0:: ݪCj4%OwZNЪZgvEŵ 1~ethVkC:AY-ksuW^XeEkh^YI.h=s컨kNhӄX\}$ BDq=7jݲF|]|o1PT K\ͰXJEF[}n}e<)XNpý;&q֭:^@1(i Etaj=T5f`qڂsTJqFNNJlӬzҗjzϡK_NHtGݪ oʹwEQ``ְvGSxZ npWM T%K:`y@QTV1bNF(9tGWg֐7r|gx2t݈*¤FN`Ci`fFNW yr;g?(I(*< i4k;rz;X0 X_%A*YBUD?_A Ol7̓E$8xrlJHg/ IJ^g A*Δ𫈲+_͎GuOΓ3Gآ>I3<,R^%m<gSXjs08,m(B' &,E$F =SCFmޙN b]P2r dЍ'h J$T7 lf`+?uY`_҅N(JQ@t;߆{tԓ!n ``#*nC/~qÒgU=m1عEȠ( *dp2̜!O c Nkn8 z}Bڗ :qϬw{V+c|<Q0&+Mfֶnn,lrI=4{Ĭu`;0l"g8Mh:Q"z?h!AIʏB3lԖΣt&* ">ܽt恪CI$ֻJYcU#jUvvs +'Svl=B0~3*2ZVr:TwLJty)8B8 I]xyˍjN;n8Æn  ||9bhn~a[u8{]g!w|>:q_zrٖo&6@KX񋨯^U@rVc{‚0^& 7Xq.m U7Pu,B~ʧq^pɗ0r]馃`՗a՗`֦銆i[a"XESbiOW ޛ@) ɵ înj,?kYVuAFEHQ8M!),T|iio#G)tkppK>ɸM <~#  V .~ ըl{owš(p}ז/ܫ_=q2ϰ| .ɥ)[W6EJbC?)дHDi0EղH(:4![6is awK.7|0Un1E<-+FŲ'2xrE6aBy3WdK:s, &ܛy,?HEyK\ݽAQWD,&1T$!(5F Nf+߲Yng*)L P>e(Zlo!B%HO)'tɸ ]NPlĝOVy gB  FC/WQ_16۾NnF{w}^ 4V/s3#&?*e<9W2y~'f nM ͬA3,La|I4M1(*+Y~p& EѠ[5vvsN{ $X^ j'gNFؿc?4UxPT(8pS3!,DH91Gp2{bXL=$s:5di`;2JO|Y"-* (NKF靖(p1:ȥ0(v)$26N{뢈C"K7r 'A(_pͬAf=cVXXNFL@\/yz֯>c?sT$GQ5ԗ/}e6 >i#|Dh2F.#? |h,Mq0&ڛ0ؽ43)}/܂) 4M> ݪ;e~hb#qS@x˰+$+$< dHn͵繯hC7Bn/ 7"D* 'njb}5Gm}u 1,_~]Jn4[p:0kmNlLba[||嫰[kSg{g5|d\l3n'oi0-:V#QFW&14Âna7WQ_#7q!nOXI`ΔYn7T5$QmCmjK sMɈaìFػN /BXQ˯?UM5In B) .6n:*$34^ۢ&H.lԿ2:x j( ^ugh.70޿4M0ܻU7q{֗KRE(ȺYf:D5˰&($?b ;=ERO%CX51<9 DϪC3,( i)Pus/}eK In61ʠ64#,H/%RʂGmˬ|u,_~Q_SD%vDo=Q_icfTMsDa᥋џU_/LKOz1"\q{z({r1rPuUc!"AQUjSzgFDU(:,"l@uzA|( eE-" zAZU."T/qΉ+ϓK+AQ"Tzrx&[#6Ĉ<@q,A>$ Dq<8`FAp,gż(;E _5 zH?#5f`rw`Fxe1rZq؋-bg|''X- 2s86V@w/BQxXpU"~L<9\PD` puuϛ[Şt8œ(= @Ş\ib9Qte@a2]*39sҶ"~F prEf/c, gP:Hs>ge5YP"tx'(J<+]I$;`bAbPDGr _dP/ۋ_BT[x֐,O}6/IIC0fcF\G;pZ mtǞw N%)Q:8٬[uhQ(Rϛ.'c$qU6zej$*NFq-m'Aȥi&k aلYd\$&b#8$4_:zl=tf#G`tHnN0ISџogj\-NtvU'#d^F:uQqtpcwg܋_}:~[T 6E( Wm_"M,|LJ㎜Sɮf f"qP%5zFDdRg5b6UgĥS浩Ksf<}q?BGPuvk +.&ۆ1`3@̓/_tT ]K}/}/tt؆Y(X)ƇoCn/qx_Ս@cQ-49voX+a54n'Lb8-+l o2\vRj j`~kgm՗= McDiN3An&wᏻ]n> o>¤\p2z+հ:S9J"'A7kê`ճUށU_ISr7^&2BN ]]@!l˗>ۏ16G$'3MwY$sIdhm\pCp"EuGHD _QTN VCU6rà {wvJ3aEfb-5'i՗( 4dC{U?vY8o/t54ןS`t;LJsPqzע[М k1> ՛N(wՄBe$q3x+X{SZ0ܻCi Z[&戸P$ ˚nq>3Q"0xiɎf²zoFiluޖU\q @gpF2^ ]4J&1 {Ddd` P''+L.boaI%*Hy'(I; |؂l506J<9pEӛ+DI%%ЁpE˵f=lsSs.s{*c9[(ycP#wVhZ֪RUc(yǜ]ʓ+y",ZE#G5["* N*rrTTƓ4\'iUj5Txr@ n'>'EQJ^*+~K[N[(UfhDNyrEU~d׹iVH3 }G CT2$W3wvқ=~z|nlJ0G}p:xaKdR!>x$c/%|7D0=d(pX "E0bDͿkB= ݪ!`|`^_2CS'uf:-Gc岴 '3VQT$I8 f{E|؄`#j^Lm$3F Uc҈EqJ%hu U/՜E5yH:ls;ě] woz.Mh:So$aO.3jI?A7(ʞiXx+B箯\Bc}KO"4 6S |f$ tx}MB 4V.sS-/C(hO/Aa5=I`vvk&:!q$qa|p8RghJ=Ht- EQu}n`'HѠ?_ =:GcpqBZґYDIxEQ蹃'tƑDGC\m<4FN&ѩ$M"lm} l.|hm `-kQN{W@+b-ǡx̓c{m8']ImՖΡ9],Ig0wZH4Æ2肰^ vHA(Pu U4V`5 I:~[ 5O vXQ ttMP[:i&q&TPT tZPT IT`']{ NTT (IQØ&1"u[}H`s#)<.6tގ^\DsΟyO {WDO8Bq^?,j,o1]bnA7lhyƵ#{> stream xڭSJA)H į mLaC)W DzGwq Q{&CkTtxdQ_n n䣟#Ȏa?:P_@씳\‰ٗiA}!jK){jsce6 l{TZUpwQ&"^a Sfj#3*Z=0+(SЂWUqhYoŮx endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-21T03:42:05+08:00foo2023-03-21T03:42:05+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:074e2b11-4562-a8fe-8ad3-f48eb75452aauuid:e515f6c2-4835-8bd4-cbbe-c7c2a0d2c1b6 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 991 >> stream xmTkLW0fRKDRP֥5V+Ų- R-@V" P)?M٤\rGwicssɗ|i4a#i&S.SFf3o&Zr db^j巓h5QI㯢?DG5絘g0z8y!1_1`ȿ0W#0֘NLLEM)(?nO*c i8u X QmhicPRyTTذbU b[ص̀Sdf]kx0 nj͒"+0ffS,;lX%k3$FT$dAvpZ5ss-@9\ZȚcXVe{$,7$.Jݠ ݅G@ 5^D6/UTy8hZy'@)KM/RMSw is I1wY]쨗Zj&Mכ[%]8`wyA0Z)qv8Bkz1vrpFDt8}$>OOWVpz Z]a E335 Ba Ya8`ՄF)\<)ѣ=ڬY ?J \쯟5g@ p5>0lSZN\˱HK;7e% r  lIIF}dz%'^GXvh!:KV򤂁 <@XҚF|VL6rC&uܘרl\x0l`kܞV /C1>r9&GK<+ͷip69;\u-8> endstream endobj 13 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 14 0 obj << /Filter /FlateDecode /Length 400 >> stream x}Rj@}WL}HѪT$Po% Rhn$B?{IЅ@Ι3goL=a.KEџkf)bȐ|[% hOY,xXkɰf5&xA1}}O8_.ri"BOxqhc5>P\τ}1l*S3\@jg.Th.0N;GSc oyi,β!ij^F1T\\([3e](QTUcx7歓}Pt/nV5W9ܲGNX *YBQ%$BZ% J3Jg2xDu-:shЋEþC}  -ꅿTkm-Ҿdd\|v56hK endstream endobj 18 0 obj << /Subtype /CIDFontType0C /Length 578 >> stream QDSMQY+LMRoman10-RegularR  "B  &    2 $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityQDSMQY+LMRoman10-Regularz廡cԤ~wrSQrj\gdY[9F\Imz]d2fXELm@irW_:r͹Bcaș;,Ci^Zbµ9ȵơfIl)=`\y{$lѓZtY 8fOn^lvejUf^gs}bò“qebRbuCn To  ! & endstream endobj 19 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 20 0 obj << /Filter /FlateDecode /Length 374 >> stream xڅRMk@+@r0z"IBi(vAweՃ]B 8;o޼y}>3yFqNlEwI+g2YIږ(-"CfJ.U,x3XТehQA/sq>0={X%ç92>qE\bN)4$4K}kwT5b/^[LY;ޠ<=ォA.xqڌ1\hM,c rxݨfN1T\0\ 4"@ 6r8U1zvUWƕ *R_񡶕DBQtb*> stream xڵU]OH}_qT%3!$ eR*&ĵx"{"?~ 1mWי{=Q`J"F$G$E1!NcE"a`'$1J2%I"!I/_(_R07Z|7^  e4#9b)C x/DEtɤYurBͥ-oWvKs(g3IQe*ʜz̔pGܚ]H. vffe@)>iUlӭ-4*xW6m mȻޕiiv93EQK>gWJW?(xD?{)S?/\ŕҸh^RY򘣷< <11F5D9AAF88D081DC02D41C9C14F053D> ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 82 >> stream x @0E{(*"bS1@×p j2' nAi9e(#] endstream endobj startxref 7153 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/hibert-3.pdf0000644000175000017500000005765614411653175030105 0ustar hillehille%PDF-1.7 % 1 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 170 /Subtype /Image /Type /XObject /Width 313 /Filter /FlateDecode /Length 74 >> stream x1 g_(x tH endstream endobj 2 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 7 0 obj << /Filter /FlateDecode /Length 266 >> stream xڍJCA y$d@ ?N;q%誈1WKZ.n;3Cf*{& #='dnћWrEDWR@DPr kC TiMg{VAK oU*7O{C;~H * 9kudvs~RX{[xaI0XQX)3?eXSqa?tSљ~_fUchO<굧@{N endstream endobj 10 0 obj << /Subtype /XML /Type /Metadata /Length 1746 >> stream application/pdfaa | 2023-03-19T12:03:15+08:00a2023-03-19T12:03:15+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:52710a5a-44ad-95b3-f16c-92d62603ef06uuid:33912920-47ca-8834-e4a1-b025c082b4d6 endstream endobj 14 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 964 >> stream x}ToL[U}ƳoEi{萈dAc iKdY L^(edэk: l-=VkQ$[f [It';=bl'9~zݯ׽\ʶKjt5D$Nq I 7 R+ o2H>s/a6-D %2 e}aߡq;"W xݼ2 &SzA:h}soVFЄ? Y"֐8ڤ45w(c Л`H)dNzy|RK3AeiiO$q 3b%䚴,n',,͢&E|dƥs 嶊R. Kb]žDe.Ǘ=)~Ywt##MyTξ3 9߃E4EevkKaXVB'=xZEe\~U0vKYac.C4dy,+9.}݇7cSjWp!_Uzה endstream endobj 15 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 16 0 obj << /Filter /FlateDecode /Length 406 >> stream xڅR]k0}W=5{"M'Beǚ\]&%m壭) zr=$ͧ{e^3Y(tfs&iW YUưQ04EmM +}Qh[,2E@-K> stream xeVMG~]U]??3;3ٙq֎IJ㘐%%6mEv!d!@"rKH#D2'HpHLr 3UҫWj}}U /s|)|et(?7(sWP'wq~_>ܳqQq陯2ꋨp_kn]_xuku ZWPyԕ՛@abP7oܿC`c}6lh"X?~s6;ïi5 :CI;mg8@ 8<pe&d0,2aJEy(Fe%b0iS]bBL)}yt߫uJǭKFQsIZ5 O0NU=圍jh,vԮ8r|rܮaILu_u_l߇[~Va! rxT0߆&KlQmwNk>!OD R:v)m6 vT421{1e;YI-&_,dqj(cߌQi_WLYX8h/h ;iɚYKkL9 mL8I.OEqVGe B Wf"qMmJ^n03ut'zZU$HȪ#{Ztn?~ӽe2MgპΎ>tIGLS*Έ{>d噙Uf.pMqx5$VG?ښu.SYG6'؜<*'rw`pnYEpq@rQH1RMЉ n'tb^U$xb+J:h*̑dtєp,f<*/#5ßFr;pauRzx]K 1Fw5&}#֜`A{&֣Xp˩ O:v;c '[KX'oX' ZЁ.v]X/؝d0 Tlvj{!b ꓺS@cQZ\pBogAQ㯡)oޫ xk|Ek0a3~E>SMO endstream endobj 21 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 22 0 obj << /Filter /FlateDecode /Length 422 >> stream xmRMk0W;kIݤ@0ڔwuM*%#ۇ@|W#gwf5ig b_Ko0Xi-@)pLVȉFc&=Q+wooSY%g>fߋzCSI gQaR^ pR   JUE/f͹5>4R)o~6eyBk .6/A`H)d}myv.'쏦Vex(B6نJd?xVa:-,7јuhLq:ZtPĢCeܔGBӵM.O:4x3~j 1m/M&%^^H垳E/Om endstream endobj 6 0 obj << /First 94 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 987 >> stream xڭVao6_q DR,A^VNZb4 dH4ZMn-@H>={G8HB# >8'" p%. )/^YR}ٶsd >3 Ga8j0>D(l@J< KU뫲UV̦˗|V<@>V",х jS")7GnsD sp)TqLYz n 1/;d" ; h,?Hw7/†,Uj^g_ܐGoUZq./gg(=C1)@,*jԙ"j\^kep w_l'nKw{?5L2FdBGR>ǯE\&T}ONсiOodb}^o5YX.Y?OiU6^aom6lG|e4'[M25G'> kk{vUяJcr,SX ^v[MTNrG*IzUQ== hW1X oVx7.x wqYwv$^\uqҿX2s[kItX*u%kԽ,>Ӧ`mUXOzB86P'A:Xee`&Ux ЦZeL0 늋1?eᘱU*P%ډ˼6CyHJ+Se0tL |SwphGȘ_<-$l{$mߗ <| -y0u~wm`1bc[` )_3[4ُg>T fS,ߪdC'XW0Y 2Xc}٧NY4~ZN'_z( endstream endobj 26 0 obj << /ID [ ] /Info 25 0 R /Root 24 0 R /Size 27 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 93 >> stream x;@PDza QHDE" Jfl_| `أH 9iߋs753)q endstream endobj startxref 24170 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/floatcomb.pdf0000644000175000017500000001310114411653175030407 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 235 >> stream xڭNC1 <_c?q$ !U@p&^+@jw8J,'} G\ %́j vMFhˌmNj"]jUPgE>Y0r6 !9 P`L!"NՔ4e)_].V[TDlػQh4_NT endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1746 >> stream application/pdfbb | 2023-03-19T19:31:41+08:00b2023-03-19T19:31:41+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:c2ddb079-44c5-b626-50d9-656ad9094099uuid:a906cf24-43e0-a240-907c-25e1861b6fc6 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1108 >> stream xmTkLW +0BhQ1MM$Z%T -jGtcs5kX*]Fj=PP]64}k9T}cDfgѳMʃ|Ey{`SɁ9㕻l[IGTWxqgO{Hp!),~x J{Ckhc;C+żWF@YJ]cQzt~ӈϓc9:>Ǿ#n& 7BWACWãvg ;(l%A깂* g% 9i7T_;nİH _/)8a@5T^a (z#o$alNªT[%M6e5Z:1M3;h^3` "L n5g_onTZ:j*Uh?%L=̎9늰;r`toazWe70> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 13 0 obj << /Filter /FlateDecode /Length 405 >> stream x}R]k0}ﯸ{kZ7݆NV kru}㗏V+ zr=$e~ Y)d^3PKD/Vn$&=MN=W V;i'.n3;??_ldcyf>1=;^5?րUx7 #L.`<{aLgv(1KQ֛M-JuAR '֌mg4@j a:euN`J=v%D8a}PɰS*%1fz5.QVS:W<Fa[Y4xvС=:94p̺6:P[=q\`(J)m >\ϾQO endstream endobj 3 0 obj << /First 60 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 835 >> stream xڅTn6}W:XX")fbA:i8iEhi DwZ.̙3# `BB q1$ 8<.! Dx#H77ÂUa]^ Oܓ"IY\FI78XB(vZ %k|uuwkp6_*<~m]hʦ6Ɩ,֚O]y<ք %.̔G )]"ؓH3u岣|f.h"7X[2]xw6穤ە*Z}J.sIHAI -:uY!5Nl)*-Z+0~(eR2R}y"kκdTMsf(~jJ"F{|oи.Nhca9%?lj/5D0g/$ʒc䓩`*j5W9z'ac*T7RA"< x c_F 1&3␱>Pv0&cv qz8$gD9#1םg=w69g pj'4 5 MdQONM&5d.9ς=6sAH,i7 endstream endobj 17 0 obj << /ID [ ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 64 >> stream xȻ CkȇQ*]a*fa`# wC@Sj7KU:T?V endstream endobj startxref 5403 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/ctxnotes.png0000644000175000017500000007707114411653175030343 0ustar hillehillePNG  IHDRhgZrsBIT|dtEXtSoftwaregnome-screenshot>-tEXtCreation TimeSun 19 Mar 2023 07:22:46 AM CST. IDATxyU>^u}$BBME@4#*HYęDBa؆0 $(3,!BBrnUo[Uio߾uꜺ<=yRix!@~*R.+B?pAϡ|bw~Ѳ5~0e᥈M) ]a>LĴYEO. ?xrd;v[@9x҅Թo}0Of98t%kJK|RJPsȪ9d\ev}S?V*1Gs&OuqT^}G h0qxzm/uYpR_;t^4R@3pym+)C@% '='F=w EB`*@zvdg\5-/bS~fyHzHUl"AS4EQ/CNANu~i@W2j P=k9j!0$ wC5@8X!]PP (n(.(AXͣ95ˇCqpR b.2t%T^_e !R1lsRbꮍϒ-']]BS05fy0,ל1ZHw" >d-c({Yq `8QֆYz((8)V( Z Bս\RujhHU]X*[u%C2 !aYտj&Tw(>+0u %ϛ_,_?gZlS:9>qY{7:H:zK }fI0LS'D#5P%aE8!cC+tN8%r9$\}e56,P9p)h &a--h1bT3vfX{PKaVy-8\V@B!赠 zX"*Ï AB~Q. aC(1/1gȁWF{hG;ZpiЕe|$4]J_Tj/-IΨqA5GʌT 6iB A+JnQ0b7/1+82*#757u, g\g<qf3ΌVTlSP A5j&$ `yY -θ# = e}8N#E{}kY. zk/qT4F{98 -L]F #ӏ$ 텂nHQ+AE>jbH`\{&TFh/FxqMhJ~͉A>yA%m )aDMD-+F}S`]BrqO/a|帝uKqХl@` 1!:@Q4N+D*~ս̾]Nf{pཿTHgh2KQc.u^`F4ÁfX0N| +;2݇n9Վ)VR37C !Z!\7?[!Ӏi0 $%QOu"TI+kLXB bŀB7݇!(M3f '{6}NyiiPY4ÃDМ&)4 3EQ4(r`p z04 @azb)ԩA04K"VA C Dk}TҝP2ݮ(rhR?@@LJ}qprd68ayY4 Yy s'QlȚXRbRK!Ą)Е \JD+rvqx>T?!3]&h=Ea@߬+Bȗㅇɩ>jqVPA nN}ɖ]ݏu7J%Z=ߐ¨23N+~)2R+W{qܩ~*8)p8$ZvY+kҌ/ ZW2h-O]X, .A.ъ7vC*{0oR5y9%]Psa8) >}Ó8'~ߊkM CW9KcЕ,{Axv(F"y Zj`* JENWFafyjjqf79|Z4͑u+؝WvF a@etttⲤ nw$]س둠G{ *Q hB0 Q rLD4:qU'shMkG B\(_3Fk[g "Џi9<)FB2 LlNN Q(AY ,m+EmYD bvDT/m3ϲ3Dp{D+>#3X ib:e(~NpEKOk*ĺvk:8:gy!e\5}ZtAAxfAS]ˠ,_lhSK0kN'g.I!  1mJʣaDX1ޞpeEgNK4>17dQOB[su4CEQE H փyHqu :b(v0]/Q6ڈ Đr Қ]/I<zeP晧hП!07+3gHe>ajXUnFE.GJ?'pK B8<'iEQV"OŲMYNWمbe$qhby ,^A}ϔzI<]Cy< 腶Ig֒ g4it_ubLtlmK3]Y04},hÑ ӫ"D|'(B8u58{xN!\BCʢ]`$E^zLrv9XwH C#Yٲy"Kȷ-zN1Q3H< 0к: 1; N8. mܙܳRHW8x"^l0~DQ K#;rq|w\ל譼|&MNAWRe̝ՠ({{94͔MxbVxShF#C6|fv` |(uh:TPex$ޕXGHIUq$1eE+)GĹi5TӰ' /rBƧd [WH$8}Bap.0#!#;AWbE>N7:JnO{p~_唓пK/יRɨ9[>$d%>OYϾ u$k e482xp]sr}lӂGNm(CcAxt`,phڌy0orK*td3:QV>36|MӥAC9 ڧłvI,hs| (Uo87HA6V(D|3QSi8형8֠dKS4פ1,h c]P-]vm:sw[>6GY0tS p>'}(4'Z.ဝ6A t1iA-ǃpO:9"+{ g(*i7GĂ]`ޗBx Q;erq2惠]OXsNlj0JWs5]VAMur$,Hx^U?ᐽbD6 Ql Js9@Q,=*ב2Y87u{ ¹X0N 1ڵqÂ.C4O>W٣,BcE8: > LCˇ%laP%Hhf}tpR&׼䏠Dlkp=g?;n߇HdTM"wū["0AirYP:  Ts0YVֶ-dkoP4d;tvzP`X!N[(PP|(nY[&dfr)h݇W"c)-ClZ }JZ8ZCu%5큚MB&k2L]!eQ"c F Ƭ` 'fXb04&4j:HÉ`85QJ4Dl9mi >_\ӽg]q?S=H'@S&M 6Ӆy7BMg=*.(.O7wBNz>\ 5pGd+h:f! H~ihr &fdd\!XW~@ j&UbdjZ. ]ɀf8kiiI8!N@joD. sR½;8JΧ$C[HLOUP3>}]W2P2=m JwS6[_@/!4fJֺG.ǯu"Z;ɞ'al7~P4mOB /ƣ^K1p5X!썠uSpYH49? %"z׌&t!z&'+9jUKLٞfd{ѹ}c-Iiږ Ntӂj ]ZB{D c"Iyn1},pRt߈tC83#] E#Z5Xq/^NPrh+1vy#] TwL|,pW=EVA AW0*ӂ `TiA>N~UPA9B(\6 *-~t#ŒU B[4Ȃ#vH4Mlڴ +V1xlEk< IDATU0*@TlL#뫃7wFWW4:::܌ݻwcΝؼy32+RӃnsۨtGpxj*_w}7iԠ  &$AebS\{طo /~ 455AEpY,X/խ ނfeZ;QmsPd+W0 ,kir?XQpb+Ú5kϧu( &K.Tߡy| _wrXp!0/_K.3f@]]6l؀K.ӧK|r^]w~^z%;A+7S+T̑NӟD" 3ܹs( ֭[n z+^|E\z饶] A)/_oc̙~~ĉw{4mmmJ.Cgw1̨ͽK/7*l2t\wuEXx衇JPO=L)Sc>\pذa{1}X|9$4Mßg7ve]W_}O=xǶmpmaΜ9og7oތN; =hƆ z@VEE(CtvvE,[ߢ48)S@:2 dYFCC10WWA@8XNqq r9ݻIVP3 #Eԧ\{xWcN32nAk׮;3f[===Xd ߏ &Ԏp 7l~;-Zo֤p7_?+MMMKo"㬳wV\T*K/gEhmmŝwމzP+W… qb8s`Μ9XA֭*0 c[`G„ j*|;# `ؾ};rn&|tp>1a455O?x9d2̟?~;Aep ذaN<r?;vgӱe9aTv<hjjv;>XѻEsj---%UVtpiUUU`Y{.͛}!"]k_G:+hjjµ^UVc)(P1ށى Ǐc/a[o3qaȲ+Wӟ4/^ 7;wbժUظq#mf?o,,XrCۻwoRzk=~ZjW0vɸ+7իWG5\~;5[n֠yO´i0i$tvvbڵ8餓pWbĉhllu]˗㳟,B~i޽~z֭C&y,#H ]]Rh!&\ Jjb~H1m*2]lW99g\v0DGhu6ASE)k&M?uOs HCH1 L^9;s @NANu@@&fVTUӰך&ka-_}@AA95̀S,Xl.b:=|y'[7o{""c8^KrEU%}`+t5 5鶳>;IYW޽{XsOtvvKo/9:杇|;/~fA=,i3>z có+tg}t\YL<|lǁR>~&ߝ(0'xK,ʕ+Bf{ :Lr0u&UjO pq'4!kY bt{|bU(V5z(d'[k549 &`)8!&>Zz≈MEzR#9Չ\ HwY:웠#ն=#ձH4M㦯\1(.??R 13bB?<1i$ 'a`Wh4iӦyk#1!:Lfgc?nZ&u]hnnիq4p,Yjp XYo{߿یl6K}kkAX>R1_aΝ-byȩzZc!<%/M7i:>uI8YCY{|cܛfXе}tdX.^`(E!Д 49MNC˥mDiXϟ,[D}/][ Ąɞ 44<E34ˋ-CayP V#otB T'L\cE3`X4ǃa0AsV'EQ3$_DKzpA G b=ؽ!):05ŶV mh2v;h䠟Y,'ZϘ a|Ӱ).|f=zi5j. 6mݸ'˾=o= fA.'3_ŎEtpR N{uxJd8b|uJgw^477ۑ~3lذϮ)ʲ؛6> ]?7D&`w$*gt [0_>+ndI A}7! $ EՑY!!&49 G &m/YzjGdDϡm8i!pPIDjDa-JapX!N hLV*M9 LYP ] A AS<ߜח#2a% ONԠjdH^!"$IB8F85XtTo#!Y |n3Nh;kr3É^>T>b;gḏ[o> ;f%Z'3R oo yX8g2XyV|?1|@&кo+nd28qw$ W-hs3i.Ɲp~5(w\qXb{9\oƎm08Թ܆c$JzyDB"^q x5<;ėƺ*tގiӦҥK]:s}}=hF4!~:>`͚58묳"[$Z:>ڽX'y0 Sn{ {bUUсЩhz mop8+V\O}#̘fO^}=ҙ" haSOPst,4xEݘ>x9D{.?yX8cX&۵-1sL߰uV|ӟp 'xW[Żヒf|}N͛?x , q_` K`ڵ8b?~<A" 'P%ӍdLrhmbIZgp8w':>jaٲee^x!b٭0r kr#2:k?9E)9xQH)?? ڪ\V V(J ߇vvT  1hA3%+!8Jp]1T$4?v[ХOMMM2eJ#n6bӷ\-ؖ v*#EķlұfA;g'|_=4Hld^%~ׂ$1mDse* AE J{,.{HBW)c#|i5vzstx;:Hz3ғB g1M];-h<62( i;:@ee(ɯ,\/XQȜg`E; g{ƂveF" ER ‚ ,ʅѯtW_8N2wʚ@3 A{pEYiP/(D}|c%e"=岠E(X_Gm4˲,hġ;}łoK>Aᶠyr* : )rcGwYe@n :8 \ nki\mcfqwr!h:@R-O : m/MC ZΥ9Xn#8 $ g0OqR,g<܆G,+舁! CnxQ2A6|wss4'AUbx(rA!H_qg gऑsマY!i,oM#tv&~;ˋC+/+qNAQ]?d4 hN*+(7 RC.~34e<9Jntڹy\8^cB]fk9VLCd pzdD=dKI5նwD|I1+CMBg[ ~8jlOمC{MC.g۱2.Z IDAT 5#44i 68gW$[w#ٲ At>B'DIQpb9@WsSt6!նL:bN O[-)|F T>0,1Zyc=CF齵` )!R1Z>\='D٦P4 ^@!Rc u5 u%lO 2$0$`h )Ąp(ҕ l@ (uSg}9~57BLhlL/"qxPB| , e !@OIUVepT҂SG.َlaXE!T=׽X]>G߆\򒭻}4*ʒӝv1 栫Yk2d C+iYx {ߵf0h-x)6?qb, `X43?vt8$ozCSu! ߑ1ZS邒>ȉQHUP3ݎ1SO_ uT -gK2EL &hf88yOÉjڜ_XKi36۟ey&)XȫM}6g=-ʡhՑcC)Q?d<zަM@&G χo =uSp9W# % 9 %QJUENމ᝾dE~mo] =6gHl-Vc!ٲ :`.JU5B7"T=I%ׁm8L$\2;PMNAkq/ h!\?mz.44ȩbyʈOC~t%;j݃L>ī9`'BdXEd:/1 ﴰ;c&Eq͐ЕKh4c0p"XN& G󶗑:hI4BL~㏞\=5 1Z NCP=x)@5EEX3Za"3 mfѢFaAqsuP(aCK=Y!T6Ne AFCs4FDH:ʱ†%Ée.H85ir6(,hutМEFD=U芵Liң h.m Dž|Z ֠}JN.[Aо6X,/rI 4\R^+QAθ~Е I>`z& (X|Ua9Mn3 A?.|4<]GFY 5hJc|FfsC m h8,ˠ|3̂Awwwcɒ%9cٻO<Đ;Jц3i$3| gmGMܰ郝hݽ4E &\z 7]4 g}6`Ϟ=ַ@4~ {xؼc?ڻ8̳0w\̝;k֬ƍ&M7|]t.r\~;6oތK78a(d~ 7{T<S.w-q.^n0 -x7`&*̚5 &Mf6A7//b͚5r<>yx+pޢkL2,bҥO3f`8ky:}XpK8g =w[go,% sȕE`}/,իWv}QEvTew2  Dm+(.Ю{SBm]ж*bm!$2Ș`rsonpSs?T]w'|]E7ngr]ױn:Q*pi!IbZ־w믿~͛a9r_#`ʕ9眃磫 ]]]Xj{DŽ ٩ǧmhd zJXМ0u \ц5/_o +wy'n݊w~}!I֬Y%K`׮]P+k+W\q.]|_x7q7bӦM#"2lR&B2`%ٔ h~skWΧ>Q;@r..R,_?,gw>xl2r/`cwP#fɣ&O5ǔ hnJKd:{n|+6b-l߾'x"n6eY/~q\pq8Xm۶!GN+W%\C=4g{ク˰g|CŽ;1Zs'! zJ(B#h2׵4| hґfO1ς p;{8:\ry| g6t]GKK- ߎЇ>qpE!Spqg.l,A͛q#JAQ_7o>LP, G-$]M5^NmJ4)qSx/H8Lx<9̚]1o޼1s]7p`N?t\{p`E\g_l6" G0 :;MB)9%O^۪%۔ 詚/^)DC_Xp{饗[o'@&m#_ ô`*5m=V^NWTu! 7܀3gvIm SSЂQFU,b1)A/@c UBs?D\&ۄ?9JUH,,mU΋1/ ~\Y31իWc˖-+Wʕ+>y+.Kh 5Y,!<؍J0\ׁ&" ێnA;Q)XiUBJ J JJ(\E;j~J.W: vڈϚzg7E)lSCinp<Υ<ΎhAWrك\,8W#2;&m0JfS+(aTrg+ gj;QXWqx u]8?,gS/B GQf9P:̹qdC:Fuai%H:ehAwuP?bƭ$!Rty;ۨ cV<1",C\+_&lcޅowuz aC$dWv>l˟0L Īhm0+3yXz*5pL6lއcx/xc!2T':"gs7 S]I^ t 9fImpm[ZVD3!'ZѾ`pX"B4p^/\Zf!չc] 29xp8lnF%Xy8 6a7 U''RZ ω$81BrF%V@yrv3@tV SAA!H*xANjHv.ZuĞԼbgQqG 'ӈ!xׂhp`\NDU@Z9󁏠4p!0'(.H*dbHEm.>8IMF Ւ@CmfrsVV^^^V/\ׁ^@Ϯgv [ӼP"h$Wu<=z8p}Etcv7G;&!( ^; ڬ8Gcqs Z?X%F\@$ g!xI$ ҐԔ' ҐciL]Z#O8#>$C  AR2LҖ+1'H1)UU*bTEgzPK#6v uD,3gTz!YsR#D'E$ QeC8 --N>VAw7yp|$#TrwC9P{ܓ!ހ H1 ATDະ-J%͊"Xlohl lO)/Q69oIMS̘Q%II2k2eG'Lf`Z}#+K *2m2$F)Ue%cZ&s^P~YZСxq!N҂fa%:VJ~RsD#hMCDt0Knkdf2S`͎x2_ 2J Yi0ՈQ:tE&'/K1+}w2-"%sOaШ(ɬYCipTA.K'tʑU` V+8/it ='pVMC#L&}ڞ*ߒI;BL~4!J5 FGfE "-F@:hC$I(`ͷ7W]J+XZD?r(8S& jlʼ5cձYh!RO_9 0eTN>n3GX⠵Y;f:?z ݻwcݺuHjڼبza6>3_u6|wqǨ9A<ߏ/ ICО4Mzh rM#q& AiA^Z=!/Ţ|)fN óhI'R0͘3g.ryNZuO_G:Ƨ?itvB* }QQl\m㷿-v܉V|S73}/60 ]]]miBUU8b5k?ѵ"6m3Ŭ`3'i8?|377߃nzշcӦMx嗱pBwy3g΄s=Gm֭뿮M d_jj*4M3H4IՎFp]'i5!gl-h6N,Ari3_!n:_ /Ij*e+E4|S¹3OvCq˯aۮw V8ukݷo?r1>ջ\Wub,3DWW^{5HSɾZ$c'?LK-qH5~iФǖf;P#h4,AFDe7X  $,׉ƵX}Y^3֙$Ix8sd2|r,Emo~SN9'Fo _8gݭXx>b#Xf lFTQ_+r^8?{mK. Icbg/\t)>Ć p\zW, 41sr^x]vوsf0AR:.l8\8vZ@7x_Wo3aƇo*$Ѷ'TzTRYU$Dr ( aNT$n8ܲ v5!C=7x[nł ?pu]Wa -Wg oDq h,$&4jdhiE:cÇYۢIO= ^xn&,ZP*մnMӂ}<]sfu⦛nq%gx ^|+Vu_t7~]]]+ڵkrJXZa bZe "K=_)lذƊ+zj̞=we]˲pA\pg<߼ 9cصkz)\p袋p߮Xbv\s5>\ǂlòfLc|+_5x8xA W0;q|eݿںÝw U oOO>hM/]9a7MzC{{{|㤿, C8端Yn$7pf#' E#KWfD#huXe Z}h6u|ġ>x~ZutCMK/6* 'DP 7*|Iŗe3o 5=#XγXzNjXzgQolcܩq8adH`Tr0QìaT o:ipII@DcAOQnjѾ`߁] {i"BMwBg )ϲwdjE<s/:qNk]ǂQ)TW^mh^4UUlomV`V0bUz-2n, x,$rSH]QUŐHgNcIGCh(=lgr.VH!/1 HGjb$CI~#!'Z 'Wd98>HJZf9ױGTt,> ςQ?8q |Ӈm# 3$bY E%{ չNjPLtױ2Cl- tj H I/*DW! 3KeɰR+.;ffe~(BUUX,D"5hr4!M3c.@e&XɎLBqtڡ. IMu^}R/Ijj-$wvJy'9q<:?&c}Xnofr ΜfL(NYeNЍ$/ 6+i Ϧ\?(XEhCMȲUܼáK.Mp4ql͞7;BWb2qK t9rև?Im47-`tlf49iLca1iLITHMdӘƔPGDS iLcX&5^"SU;41(8c;զ&lݳ;Qp'6 ZZN5&9Ә}O>Upbg(yAȲI&H$u>>h0zXЊ~e MӚz^琙xfiLhQe8. gAn&4%A@*Y(Jp]"$±<_p jMcp2뗲$@Q*p](q\SmzkZ<8mö㊠Yyԏz!E>\E_xyEAn4I&1۶=,êZ*Bi}h>/UEFl_V $ (6% x骈K4ΛPdΝh %B_*4/ RIғ゠ NCeh6aDG3JePZ*k"NJ>ɇȐ} Ze,"dYem76x q:$hDL g8#hx'[^4g: 2Q1i_!<Ijʫ0*tڹ`sgNXձ =( v<؍r. N8M6aؖ!H*x)z<*èc򯐞t{Oŕ]y ?EȴZQF(6-򘕆X riWȮc2*r 1r,;[fCMwBICT#+K/A+8>{CR3x)ajEAA+¬ajE ױ z/^IBN"2 ֹ㒨eTP^T/HvﮞM<^Uw};˨sGh_]/;lS>8 9zt}%xGׅhh ű '7XzF9 Ho8-#kS<|8mrEW`hJL$#չ i:zvO~mj(u<ԍox R3Cg[^,:aY A$7|^Ә8xQp]6Gn֋7}['&9)6vH4[<} $[#pD]&%W㽕E$":J»B;AAWr˯F H㠤:KwBRS%pX-lo@ ^FϮg0ΫX*ȉm!rh,؇ KuB@,3L+FE8Խ+xFzq.Cd< myGR8 fT`Q|8VK h~,,(ñ--ciȱ4msh@Qz Ғdf-Ce& ȱV0ʹ`9[;:'q}r+H#$D ̓JK~ 񸮃w_&h0yp :(-%$bS 1Ox PmPm^0+zoꀒllm8ZҊrn .qq/UKX塞~jvp<3 =s 2zw?}NCWE>āS5B/ XϿ^XxA &nAT ӣWr"PnJ#3Q'9ZpMl NqcW@˜>LcHu.Ds!f.8peԁ#l҅ї[R,ElIvx 4RFGs<^r٤h4vQ ڨ5F]yQ8A4dO?42' TB23`=Wnu3m8 ǐ< _ u:#o1hª.X8|gH#]J'%E3j!3b3iɥBM+q-蓢I4d;,dh Nu@Δ`!qI,zg΂&iPg-h"mX y#0+5)Ho 3 `XBTjϘ@ 'yS\W'.ev95 ,gN*j@t=WPLd,d, eZKHf ҧE͂Dyt"Pk @JKu@qVrhD#MaR¸!ZD4xN~o<  bɏ7P400hKI$R: Y6&i\t!ͻ; o3"z DKDh@ oYKf 0tr`#'XjRE'ڜrp4)I4^X , &7I`a5FeV%x0s;mXN><|h zR B=` 9S݌4KXM: 5"7hy< ɔYa ::ѳ8I!o‚fv>Fx,h:X%ANǥzQ"h~> stream x1 g_(x tH endstream endobj 2 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 8 0 obj << /Filter /FlateDecode /Length 207 >> stream xڍˊ0 E @T]E~J< xW*P)JZKk,t"@$thI0KP Ck{8r ]p6},Nݪ{a P= F>rI)[! u j1\抮4vܪySsГC<~+ rZeбӲ]Ҿ! }| _',b endstream endobj 11 0 obj << /Subtype /XML /Type /Metadata /Length 1746 >> stream application/pdfaa | 2023-03-19T10:33:30+08:00a2023-03-19T10:33:30+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:52710a5a-44ad-95b3-f16c-92d62603ef06uuid:33912920-47ca-8834-e4a1-b025c082b4d6 endstream endobj 15 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 990 >> stream xmTkLW0fRKDRPV]`XEaQ %]*<["S4v51%)TK.?Kssɗ|i4a#22v;]nۉgH:I$~; W4pH U4Wb> !65F7^JݱqI_f߄3)*TH4HXĩ}PjACL+ʭº+Ы@(#Gugh/Ls|OfSB {dFMlBy=¾xxM`{U1y~ؐ?! ~SRNOk&naS++Yչ-cfb6Y1$!o 4\ohYƠˡ*U!Qʱ*S%WW*Nw'āyåredM}bY> iivfQI0FET75RZM7q&9g 3kVnkg ͉b>J#Nh77tvgKoX<⣟ endstream endobj 16 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 17 0 obj << /Filter /FlateDecode /Length 399 >> stream x}Rj@}WL}HJE^j *k Aw/93s^{+T*ɼVk!i(ֈ YǰU<^ĂM kV3iW.<8?W;&"$LޘOL΁7:1 o]*R!|%w25^P |ႩJ%f x`p4^="K慺1:lCڍ5c_f B EU5G3m:I'0LglUs={Vՠa%U"ODJ",U`쑫tЯDy&3L0k͡C# :4t*6RSuOV[TJfZbKIs=ؠ endstream endobj 21 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 899 >> stream x}SmL[e}.Ҳ{C".q4"NCX"!2sKE7:p^0A(֐Čh [248-Qb99'>ɡ)ipuV?`mgSi 5D&^K%["*Oћ4gxswl(꧂\&6/Z/;MsޒmtGY JysWk W)b)e8 Vir0ajNf杫=؀9 `f]mlt=L(^Z}Xk$FyĜ#wYK"4GP8m*>9-%!1n9n(W\>R7 2a0kz#v}f}7`ύ0ցWi lV 2e偷kfw" |CKƵZuAHF@A(]6^91Pz]@ލ_A-%}ޟ'6&tߗ@3n%3MZMI^ ],KvAxW}'z7*G=u ˁOq61Npby/fx?i`OUP(G9(~4NRn|DD(x E 1lCL%yCpSqߔlD݁3KߝTq*wu7{cZz^\7C)pZTT⟇%0`anj$qH0ͳ;}eWS' C`\M MyzLj줪jx>W㚦ߍbyr?_i Z endstream endobj 22 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 23 0 obj << /Filter /FlateDecode /Length 402 >> stream xڅRMk@+A1?[@~R1v! n6*]yvOAS+|&v{!i6 YMS0 \(txr6j{#y*#"M : @ߺK1GelL[nZ *p6[^YX1Ea.f3pf(邻U W> stream x]TMlTU>ϻL;3mgy[(t:aHDJBDhDc qc…&Fq%;7l5RvZu JfxsOrwϹ@@59| #oL_AL~_|ė\}ø~ 6KzGHJjahV1RGKR8''!J/}h),MIazkR+)Q)u0Ts3*R5E{sdnb3\Y+ MВv 5]2C!9CB"+H1dHyɢpQ -8/eio6f2;{eTmvRi'c.65-fx _逾qL)RhpDɑRoSڑlF>ɋG $VUĝ6VDOٲ6fI{"m4v/pU=Q{<IJ)/U˳̞W"-ba)ŭ {["3UpNf7 MhA8/PĽ>>٨BG5"_*ݽ ݛ~FR%U+S" N@}le帚e]wSQ©pX}XNCQ4 x(-s̉Vl9b@ vئ. [_"/{^ôm"/\|j,8Q*'TJXuqRa8S's-ER?AHyBRIhLpfL\Rծ-BgUKFm]75q'( I֬$m*0/_0n`ZM=*53- )EچbB[1 *F&9;(JϖxX_.l?^֙ endstream endobj 28 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 29 0 obj << /Filter /FlateDecode /Length 390 >> stream xmRj@}WLVD7*&H_hn$B?Y,23̜9}`quB{sဩ5C{%VR,Qf[DSky|).}ɮ9ZE;́?e?6qK5PdWցM#T(9~u]J%_ZNZYH+Ap2,\c11[a˳8»4G-䅌xK O+i|^xnA(fc91DvJ;=%wӯVS$b#ygd;نN-%oEN3e}bWo^DEko\F^ᤌ9Tȑ'V]E˵&S[+6+ &0kx;4nt endstream endobj 7 0 obj << /First 126 /N 18 /Type /ObjStm /Filter /FlateDecode /Length 1094 >> stream xڵnF.2 p5 T'j]/FXe!I6Ї?\"Z8H.Μz($qA"t%s!yG`9 $E,zh=NTx>'Ɉ! $$I 7s'${Ts}ִMb~ / w,!}ᇕ / c$$x0BRdBg) N?^ߟ^\fKr?1كpRz9J32[XI:(i/dyR Nl13^V =9!ۘ"ʓU&nܬ|Yʒ`jvOS#|rR9}ZDFmP \M^w %={ }@zp^#6= !n7!~!!3c;4^xLli} /jӛT g?Mb& -g'}03ɔijs&℗i;W{! +m[1N$.ֲ7x pZjK V&K'3Q)U"[]US kzPgXz꽣%^VNd`C…2d߹P3=Z/MFX5 5c4 }_F\"Cu^$J-҉,5fҜ,/?sZ.;BlL>N'Iy$! H ===Y\͗bmEٲ#zX8E"x`drJ,U {##Ù}h~|d̉<\HN}ߩǮS݀1JOhXl3'V6j1[̃MOmUQYN oT@hѿ%J(בΩwVM/P:ݰPVtR&jqs"b% endstream endobj 33 0 obj << /ID [ ] /Info 32 0 R /Root 31 0 R /Size 34 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 110 >> stream xK E{졽kР4$Ig܉{rnƩ$ Stg+[(;q-cnulū=~fKKy_gEkk!CDh  endstream endobj startxref 25713 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/floatcomb-2.pdf0000644000175000017500000001310114411653175030546 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 236 >> stream xڭJC1yyM& ]*t'fWRt]z"7pdə x*_s'`R#QMsT6L@=+&`vT[RZh:8DEf0&ғm4a"aWF-2Z#Һ׼ 6 V[^/( L0 #wnsŐܺ籎lSҔ> stream application/pdfbb | 2023-03-19T19:48:36+08:00b2023-03-19T19:48:36+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:c2ddb079-44c5-b626-50d9-656ad9094099uuid:a906cf24-43e0-a240-907c-25e1861b6fc6 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1108 >> stream xmTkLW +0BhQ1MM$Z%T -jGtcs5kX*]Fj=PP]64}k9T}cDfgѳMʃ|Ey{`SɁ9㕻l[IGTWxqgO{Hp!),~x J{Ckhc;C+żWF@YJ]cQzt~ӈϓc9:>Ǿ#n& 7BWACWãvg ;(l%A깂* g% 9i7T_;nİH _/)8a@5T^a (z#o$alNªT[%M6e5Z:1M3;h^3` "L n5g_onTZ:j*Uh?%L=̎9늰;r`toazWe70> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 13 0 obj << /Filter /FlateDecode /Length 405 >> stream x}R]k0}ﯸ{kZ7݆NV kru}㗏V+ zr=$e~ Y)d^3PKD/Vn$&=MN=W V;i'.n3;??_ldcyf>1=;^5?րUx7 #L.`<{aLgv(1KQ֛M-JuAR '֌mg4@j a:euN`J=v%D8a}PɰS*%1fz5.QVS:W<Fa[Y4xvС=:94p̺6:P[=q\`(J)m >\ϾQO endstream endobj 3 0 obj << /First 60 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 834 >> stream xڅTn6}W:XX")fbA:i8iEhi DwZ.̙3# `BB q1$ 8<.! Dx#H77ÂUa]^ OHH TD]hLCi3>:[K5q[}2s:݆>t-)I3Nbҕx$PNSޝjW!Gص>;o\Sw^XB}M)*M?iK݀Ͻx_>4nf}%XeN[(A;KwM0Y@B& ʒc䓩`*j5W9z'ac*T7RA"5%]/}q4ėoƘC"NVDzCa˜`#V: k051Я._w44~MS.|al744%?F9?eh`;)7Ԑ\< Tx]Zz^#᩹4 endstream endobj 17 0 obj << /ID [ ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 64 >> stream xȻ CkȇQ*ea*fa_# wC@Sj7KU:T?W endstream endobj startxref 5403 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/floatcomb-4.pdf0000644000175000017500000014117714411653175030567 0ustar hillehille%PDF-1.7 % 1 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 210 /Subtype /Image /Type /XObject /Width 360 /Filter /FlateDecode /Length 95 >> stream x   9 endstream endobj 2 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 210 /Length 26171 /SMask 1 0 R /Subtype /Image /Type /XObject /Width 360 >> stream x^}%E A$ "|'?JA$(UD ~H JXwٜs9ggv9}vзfΝO=P]9=ct?vq( _"EKb;s֠8nVme"?hĬ掊 8YeX6l[s*VeXt=\)F:Tmj_/A@%\eh-O;v7q@Ǘ}5R\`c.CtAtg.T^,n]Iɴ AxI߃$Um0m.5kZa6\@׃րi*E_ SŮ:c༉q. zȚ}\'0-LAݨJNeq.؛zhS"b.c'We*cKi"a 7FPR}ssODg2cbM=Sw[l&8]LvZaM^*2eL,Jc.OXˊkVsy1:G7#Hv5n!F`| *ZvC~xm~-e@G˃LD WpSm"9\$ @Cj*b$K1I}L[ LUn*@ECmW}!nCoBQ;8 6ĆA:Te#Kv)|a Tl1{񄸾Z^R."W0%PW Й&c/,{"1 !#f{ ᳠5\* SsԐe1a;{ 'p}o.`me1QVyQC]e¾ʷ62xqŭ=Fϩఄ!o.:c6y 9:o tqPs|}IJx Q>N&c=eT$nyCE\I;1С };,}VgO>=o0I"?a &oiyC:aVet/s'q~f̖yԝMuᬆOttBo622cV` >2Ѭ@Sޗ,`@UOOª9ۦ0D 9ᠯ4 :ocABso+`ZJ#I9\} ˨ͲML{i!n̾ hRz`̪py0P2yT yaZ0ѡP;j^gܷC}N6-:U?݄ʏ/jlo)5M o~kMW|߫KvW؂(vT*ڲ槽9 1o suзF%ɤC£ӫl+\5٩^:o~czcE.[_]w6<4Zz{cWG= PR:d ե[ߖ|E&_..ݍ[;j~}7~-ށi`_ 2oƄl'_ }6t:wtR(|iuI஑N[tɘtOcUܵ܀P M 6HY.dEz.^?Ӵp-RHܵu *~ad2߶c=?Tɭz$wd 7w-7xMT,v0vAtY=c%?T;x PIz`Ki,3j EKI MfMz l;8HO[uOSIGM97I/|EaKbAgѿk=V??IWVVp'ύ= wygI([e|OӞ>SXXXQQa:0ib SmSl[5?ӴEfff@룾F^b{H@N ]awEn CZ?zC@ /]v=uiPݗ[x<7Ȳ[<9-iz5;< ~xȀT0=-L#o䎻GB!RAiI\)S˰ֲw= oWOչ4C*XE+⡐vo4bRc"w-AJcCFR$.=!0AQI8;nlt.bE=+(*ȥ;&l2#39J&tǼ,.T*9j/a,bqG=!>p#=gQQ]&59o4GpWjS!W+1&LI ݽ)?3t(.=*+*HJ.2Ң O߿@IQ1=rE9)T$;!˰ ;%ET*#ab,WsG=!1pJ]Bn ⍪5q[m!xk7mV0766f%7S5hjj-JI74zԗfj P qP_i{$.MT0~!b*[eGW{ )eXtǮ.eT ˰ YKqeQO R)e"QSJ)l׆iu* tjQPyQ{oʜ*"e빣Ve5.Cl408(Y ɺ'ёA.6#{ua#=PBnCk{ax*/x됦j:A2tYq-% TFWC C7t02LAEWN=MzH }mTJJ%t+T m. ;j< aNJa˰ {.A+ѿa9u"QE!IMw<.^x:uyҊWpXzu*K2La:\!^ B6R)︔W %T C\}A ogoH9O3xM20,8oQܡnTeŠM@&mQ0.7JƠryH_l)xðKJtbsmA(M!l0^5txwrY79EH:)uH9u(I2L5SY)^0Li,2,oEaږ却 ⍡f^'MY' a79#,C}Tpz@ S(@M –IkFaX7}Dx1QTk-K7A(IO!E`3"xc| L׈Dh nWM.,]PSV28l/I ԡ{/& byf{䍢=#QvM\Ԡ@A<A}>50)"p`5"9&Ye* :u#\)ZJ8.2<˹RO)LE!E.%#99Po+a uO MTOIbzj^@o)q ;JIfPJJ *udЬ.Z,Q M Oh,۪EB`+$f*HG71%Rͫ)59In[<׮m÷8!^jkVn\zg尶Pj6@ ]DLJ9%D2>R {۫C㣣Rb2cS RrW}r3ʌX ՘$!lnI 1iS_^ C%F0&sИq_ZUZ0$jU!ZvBCJ͊%k{$UНU`m <{UvB—m*g1Ҥe=і`@΅Bgᛋ%b/ʒPw319nI'V֬_܃^[-hw.ٽ8ao˙0d-09 )`Z  |hl{IGE`Gۅ\fѪfb{@;y X'[˓1?a-P -@`65{RY`^b C!e׋RAY}*7SظL6+/*i˰4ęXn ?H_fg|t ѡ>Epfݢڔy#'pxX$T1MVĈun0<xp5Vp:1Ə]zHsDUMEpLzjrԤq\e{#vņI N*Kmm9xq5[j%P\yLRq}W6N`E cdoF k"y :Z2 $E>HosF2& Ĝlj^!2i 7P}oCwiT{}n(:Bwc14Y˸>%&}mUhc^{_׿\/VD9s75]Ce2W_}5Î;^y|SO~p7x7@ /v\o"o6O{_~5Wؾ};Wx o ><ڵkIZFK裏**6C;]ZիW\r͚5x~`%xǯ<\vZ|9rh"\yU'?{恴4tfK]CCC]V믿< {m|k駟s:ꨢ"/M^y0~?M+|?> wt7JJJ.4B ah\޿K/go~_E=xP.\~r7N,/ zl[زLa G 1; @C뮻polܸFšk7bqBo}kxeLx_1SqBbVST?} s.؏c~yc9u(:8d#`P?y9`b;Vs1t}A1;;'FR[CK t/|#&@O;4: 'y(0ϟd(((3hEBPU`G"/+/u0$doe T=?Bg]>B. 0lov4#هTqo^IB88%&k~@oyjl tT 3S1@yt_ gBomÆ xe@]a; NRA0^a(Guo:hsLӠn 7f/oDх ORѹN9G`,X#,3fdd &Vm@LL POKnggve(89\)(C(Ha\Kgb2A ® 01 b8|5H卹sRWB[0;B6Fx˘TN:!`_.{ o t1z6mئg~}qǜvT`<j]j,Y$;;{os=tmй`6j#<[.p2<Ŭ7F]mu{SMwSԄƂH0M&&E~ugXh)T8V` ,30"oڶͯ)o:mB)^Mt7Įaݥ+W4coR08)$F@ ^W]uL=jhkÁ7EB3)l86NoEwqIh޼{ +vTg6cZȡ} o=g[mٻ:f҄_`8$cIϽ}wo[GB)UX$j% 駜@ǑҘխ)}U&>;~SG}Q9Y6xø2,v M^Pģ'."!/2y9Bgƫ/@Wx%P^4d3QQ9qߞ*OH/,^ŨY z벃 PD)5z 9x^w>?^s5  cmld*(>'x2toiF4Ąbw}TTa2i  #28~+0HsVu~돗o ھg˫ 8,5ID#j`0OAwwH!G\vxI mT)-&Gtqp41 Hq-{ۏso1?ui*cqW]}sPv~/+\2@h3ɚ沁{~ hsF;oݼ,n6Ƴtj~v%.//o!Nc8}J ~晇oiû/Mw-?4j>1ndLP(QK{e:reP+Ah Bg bLn,Ր %5{1 J='좰%;R}nec3sވڳ"1pMFĦ 1TB8ryPTF5&'ǭGm <ԏ^z>EBVy'2]|sIGk)C W^y=Gހχs*~FMW\  (,0&((j7=tz}uqM_xWO?rw]Wyc7PokxEK+/;T]_$ϗ4>ShH x _=W-uwC!<.b-!ABd8b9NX7jK2(>$YqrH緞)$)1!;˭]t chQ|G,oaBM{.#?bOwAqۭ6. ]E#Dh|¤8~LݟHCic=#\s [ }",Gݻy9Z<򜚢ʜ۫rcjSXfBavQyx{@\wχFf|x]X);N)QA?=//Eߞ_[}q1: L ĮꪓO:[VWXk+0F 84y#=x ~MZW4%`a//—Rc|B9=t +U-D&,m4ި.ޢ*v#T0'0xv/73NYgr򉿺ڨ ,e:ӿqQo|K.dƥv: &VA1p`Ї*\'߄b& g`$d\܂._W.xCb)'sx`<Ne|&[ UV'qs׿{橿O<s!H{1)LCCCptuuiw2E[LZj@Ÿ'd𧧖pGy/b tR`&~4RUm)bA]mLPGCBG)6 oTo@Ab V Rz ,\xBĪR%JPAH`^Iw m椂`!.C 0ca}.cRIe81"GIXEexKހ3@D,< xLsUe?CD裏y[aJH1D 0#un8 !0~ ./5w߭/Wk(TK Ӳ3)0пKZ0^mF@h;j tj ;T ORA\j{ƈg OpF:,HS̤2L='E@u]P&F]Z@e61<8Pii)8::KFY-/?A\xHQ@+ѿQMEx^c! \Pc^ hatǃ{? 59TP0eםPD/s@C0_%C{I\$C0DFFF,.yFIUDY%tԂ*6R +Yj酂JHT& `Kc IRAhv\,F~eRU;$ A/knn}ރYY2!TE6aF^qʀPcпQFVm ն@([Ow nP‚1A0ހVex0jjjlgLcPzH)U&DK-v8cO/fJcпQem6F^SbU0#}aT'>0B92ez%"j 9!XM :oXߘ=#mPmްYUVѽ0}exɨ & _[ (0Dsր08&8y3 m k  ^K/-"!d 3>+3۔Pg ܁p 8rZ7vѶ*fZq6;Z ˣ{uTgqR>v[#WM tT^l'y#Z7|g>EM'& jpoC<5TKx½Z'2.,6ՠ8oT6#`[lvEѼռa_f"=5M,SvƛuQ&7C)58ayҗ֋)d5o* P1?SvdWCImʕ|dt`:}mI]uxI' )c>z7C!٨ \5G5ϛ w +Kc_STW j>zhƫl9վ{j0[gŸ kИ}g eea痢P6+F j> ЈW#ՃV@~!aDp@,6uwǠL) * J١wtKv䍦"⍦") BMHn.zk7۪^Z bql *@y%9ڧy6*E2kl:sӂRWAqɥmiT EV-+MUxZ.Lѽ*7G(r&xs31vLݡmJ m̻ o5oW>\'K۫2 e٨{aԴ{A7 9{7}Me8LN%92O;TPy6QexBkY2JA؝oːV2q`Xj}8z oP6sQՐex}t~ռH7x_H6RbN%@Gl,2AKi"ݮE#VwS7Jf3q&}+VkK# ռapJ,L1? 9bx50i!q6)eԾ%Y2FU⩧db ³.W7z>tp "]RN7M"xRe[P =&(9CVnTݐV jgDBu).V)aLtOH/!J#FҨ| (0h ]-:31<o=mc#C#DOڝ0~GY&Z="ڪ`RاE6XG;GXHk{}Ug݇CB"Y!{2Y2;0yCeBR<-Lsw[)hF(cO.-b94t.OR)lCvk`VJq*^BP^H5-,59ZWj%R] `Łːt @&k'-i.k!̽w(1 兑DWn Bԕ&='t+.C$rht ;.B2| *PA lZeXeNkռ[ Z>r_!e ޥM^!)ІϢ8V}Ou7}[ qpy'`S eKaҔkho:xTC8eXv+/12O/=ʛ`+g;`Ӳ\'@Ͼ,M SɍF/V+OYqj.Ki*ert*#cj7]k"獁n۶,ߵwVC*lmF*.0Jyv]:kz7p7:\ME>Æ񊮮r&MEڰ"|V 7fIΰ7 ^EczۮwIxcPѵKݽzg/l׋ۢ8d_{o͛7Uo{-ܒ-T۵kכ6,_۾] q~qε^kWvZ-Uռau2^; ͺ `>js _3?tWwǵ#<_{w<3OM%ɯ=}'}sϡ|+_ȳ:W^IJJb ,!!{Y?<Ν; q Z tNo8OmJԣXŖK!=AOJ8ZSN>ߣزf +F@@U^|ų>Ned?00O?}⏏o7/0=n]/+~;1 lx0ޮ;~_ >\Swc=P[BC^[>6o?d|4\<, qїzQd^}ak _v~JXVV։'vE)--ӝ p OKK[0ރ+OΟ?Tq_veknnʌA{)/b7fXVC7]3ʱPî&u_C7yG1㏃ΝcLn-DSS[[ `7`n /@kkXʘ-UwzK0Gy_6G CSl`\egg?0nv'QGuG̤cǎ!>s/ k`>m~{4RwpBFY \^s˶e3þհyyyniiaZaԝ+tvck+xǰi)iC۝ж2%okC@Lxpr\DvFrYI!28WOM@wJٮi1/4T$l"8bÝduQS[9lW5{`=mNex=,Qj $y8p48r8mٛ o VBc+rs(M hU5ik3dÿѫ8W7}XvIAƺ/FT@{ ! \Y[srB jE &|Y| &1z`ӔEk|jgTBߡgaқ\Nֲd)kۊ "@0wJvbm.LJvL"QYVPPFcx)c M]5?h8. fSIFFА.-Aq1kT-K"/bcBT6MC `t'HLcY]DJ-r+)u7Ueh.B"!u߂W3°!fH܀F>=ccb9%7DGH؛5%poڻ+'CE82ee,2.'KaPAnHC3:@v<%w+QAH\'epYS\ mL`1w,Ps Y+D*shQk"@72#yC4zUeҖ@|V\BLfyMFpdi9ahvvuu7W$wDmt)'t)"AmpЅסR S@R ؎)I8޸3$DrsL*`9C+Mn&wbum'`ĝưeEtΡ6䆂G2K`dPATo'o@pZZۛ/ =&uy"AvQb^c<(Ǻdbx]\dش+MFeQ^C`*KXjm@騇.E4)Qn%!vPёub<3!AG.CRvђ  BjPsLFصRU`"~f6(s$%wT3eL[ՉR *hG۔='8ǰ፪ Y3¡J  ҤF:[/%XVr^)HT.֑}e5mJexY|"Yp6uB%Z{?k"ռASrҫzT39TڽF HVLdY2^\R)YYCd'}| :`obA _ wn=8 (XQ)| CtK2~a.RrqDri4{N SHQDj  S(K09M#Bd(xT`}oP4 abm>KePJ>l5oTٽr+Do$D/*9^njc먲a ^!rNӊoKk۲'iAAecXy.+5exBMUȺl.+S-OMq0KsJ[[[+'22o^Qk^/W73É7ډE_0cVFc*p`@\)?F8vG!.S~e7^s w'p.r/:|ɇŝ .ycַܹnqUWtItBkȂP p{y*?xCV j5ZlO &ɺb`_8wG+Wd1G-Z-+244aÆ~mA-ڵ>/?򕯜ηѯ+?ڋ/駟N5a}}&ͽKٿ}xoⰸCxx8q,KX`o~{I$''L7]R =ˆ𺻩dH FMq:ƌxW3m5oCiHZ R.DJwƏ}f+.O^p\7p2g N \tEm$0[:D+.>dh+2ֺ@Üsn'7V0h>Kp x[oJ~LeO1(}K,9vF-q~$?>묳`10iDΏO8ڶ#.o`ڽ_x>p?i ;>}{z<p xSO ]N,][n;yMNyc}͞ e8/O⍺ zVgyP pi_`# , L}^pK(L7ښ7jfç٤WMI)lϸloH\O?0{7F=mYݻvǵ0'lh%I(xeo0"߿;Gu?8)d T fN1U3x '@FzꩧG`9Sn'wC{zz/]:hPV0 ko$V{F,0Ahm&ޘq'K{ͼjCA`ޖ ;6a8ka3s ccc'tu: t_C tgf"7,, q4t,oR_@twq [p J7Z%&* vr~(Xj::DqV=+kFjp#,-3L97a6%"`dbС"9k_%b&%%%ab<< \QQqG: s='@{ 4AAA7d?ǯ<N;4Ks _ ͆sx!`zRc=/Sqc…g}6 0GN=T:0&={$A.,A$ިHp!LzvvaX_`K8VL`o&ˇg\rׂѽ={DB&^P.B ƃUUUJ/~  =pɲ8Ν묧ddd0a벤%Ae?}#) ODRHwkĮ^Ck!?pG=+ښAK+3]սTIuBN]Ew~ ¾F[n'rAp@&+!Gc~۾c_@9AMx7ԕPQ) GjBS*)/ ^PRp^i)#^58oE *3ò9 -k값Y!';e楼!m&Zw ¾pD j}_|;(Uj̠R>1؂dU S([[ BSYjpLy$'U,P6 0mOLf@(I&I B$d2 ^6 ntD$B] 3PmX ʤ-q' wWHe騖\C^Tf`F| +3} ;d511\&h0ږ0|p@xZ #ɺV=Y+&k*jDašyEUuU!˹ՠZ̸ofVDUw22Vl8M{8HYMFR6Hu?p!N=My.&)iUy—ǹ>Yd"Aviu>1 x0xc@O'IkN” 29%o1zN-.4/Z2LBHa,B*?.+I,-?sw]⵹z'(> ţ_)(/{6l2U&4]efL ĜyL4Lrǣql%06*uXuT߸u\Tj_Qqr""\MS }DmoH܂NGRݕ򘘟qmL>*>$ⅉHRq1@ fi߇vp+eILmLi`$þ#(QhG[> V}:84i',Yѕ?A`$)r0#1 <-Mc¾Dr>%m3Ay:od˹$cl-K2|~0 do,[6m MZ[V֜QꝔWsRO#%Gx洛~''?o?l??ɦÞ7ėy'J ?yc%?TC3+oXO$^RSRoy_WWG*Y2"˘ͅQTTTYYxߏ[,v\eq"51xrL1 Aa,njj9y,c^eq"'-xvr1;HF[[wxf{>G*K28LQO_(#˘hnnnmm2888>.oy6bxx/9s.JKݷ270EuQ*}$.c֢KsG c#42*7D*84:ChzZ𽤢Dmt0 xsI<k$2[Jk2o@SLϋ#Ů\ˏB $P5x$) &?p(!/4"DSQ ^fpw9UEQb|ޖ򩄓kw:PAnFi*L26~h!M%QZ/e!ԝ/+69Z˒;:F;% T4)8s‡v`Pok_[6GTa:ǐxAb8'4Ӎ#`AqDk-D[<5'&t/\R4-羉#8壖'lCv7|\;jCc#T2i h?te~Aӹ  A&n 1E]G*ʝ l }sX{(4IEߗsx"X(ڿm, DW2L11>F)#&>h'=euyFeТ+F0Lʢx+AB8F(08U^=6"eaU&m2D211Avc ǚo< ;`W# /9a^R37K=F*JXFGНz$)t|'{aX #_VZ\'x9KV0 4z)٣/QeB*C㎚z"4 hT oSAi60Fg[RJH} 1*!˰00 exr/vdNUr;*;j oH`M].P0 *Dx) $pWL@DyX9S2&T "1ZCv5hhC @wEБ%zڀD{j$¬FC vH); S`O2 *lڥ@r}wxG7 T. [%e̷Ϩ̌`zJI `7͡lNȼI'ۨePfUa6#u-!$ P2(eM)b$!Ljb$S7$V\)8 Rbo*%@أ S&F喙AYǧVRAveS>)7˺dL42LFjF۰TIz[f氯PTx%CkR⻊|*(%9(/3SZl1)@Eɬ^c!..?٥PW!y%Uv 7; ӴA`2 {/0$={aJ2<.; dan';SQc$%ۃ5=vWmW&/Ny-TxA 5]`RKBKq`ۑwa8@S>tNy7 `سVˎjPՌUºnX!8@cڃɶncQ&jP)m0 v5(C) qVc1Ԕm~6SEˣR5\)' u Jet4En4J$SmJbq沩Hibu5qPc`7QˠlRCGuzam#f`'P B.lpa 8.2Ԥ)em>Ve¾BZ SFJ]#\)ZW`:-Rm"0<)\{=R;5&RmOb3]r# 0]ywښ1FkXS-19^^MVTOC6wtcQmp*`BQPy09Jc֨"厬ARyښ1-jզ5>znz q.ߔ݋ E * }W^gb)uh-H,me>[r8 0) 6}e]x@i*0:Go!ދU)yőa_?,cW[c7e0} "Y%0ɭpPMFnC2 xGGn endstream endobj 3 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 170 /Subtype /Image /Type /XObject /Width 313 /Filter /FlateDecode /Length 74 >> stream x1 g_(x tH endstream endobj 4 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 3 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 9 0 obj << /Filter /FlateDecode /Length 233 >> stream x}QKJ1uoRމ+AWxIzZfDB^^^ͬJ'sihԝZPf̏+gzngb/XX>D¤(#]YT!# A昄8 Ӆ%彉$X-R^n-^ayS"uGm=T܁ Å팼{|TgFp$~C` endstream endobj 12 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-21T03:55:35+08:00foo2023-03-21T03:55:35+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:074e2b11-4562-a8fe-8ad3-f48eb75452aauuid:e515f6c2-4835-8bd4-cbbe-c7c2a0d2c1b6 endstream endobj 16 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 991 >> stream xmTkLW0fRKDRP֥5V+Ų- R-@V" P)?M٤\rGwicssɗ|i4a#i&S.SFf3o&Zr db^j巓h5QI㯢?DG5絘g0z8y!1_1`ȿ0W#0֘NLLEM)(?nO*c i8u X QmhicPRyTTذbU b[ص̀Sdf]kx0 nj͒"+0ffS,;lX%k3$FT$dAvpZ5ss-@9\ZȚcXVe{$,7$.Jݠ ݅G@ 5^D6/UTy8hZy'@)KM/RMSw is I1wY]쨗Zj&Mכ[%]8`wyA0Z)qv8Bkz1vrpFDt8}$>OOWVpz Z]a E335 Ba Ya8`ՄF)\<)ѣ=ڬY ?J \쯟5g@ p5>0lSZN\˱HK;7e% r  lIIF}dz%'^GXvh!:KV򤂁 <@XҚF|VL6rC&uܘרl\x0l`kܞV /C1>r9&GK<+ͷip69;\u-8> endstream endobj 17 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 18 0 obj << /Filter /FlateDecode /Length 400 >> stream x}Rj@}WL}HѪT$Po% Rhn$B?{IЅ@Ι3goL=a.KEџkf)bȐ|[% hOY,xXkɰf5&xA1}}O8_.ri"BOxqhc5>P\τ}1l*S3\@jg.Th.0N;GSc oyi,β!ij^F1T\\([3e](QTUcx7歓}Pt/nV5W9ܲGNX *YBQ%$BZ% J3Jg2xDu-:shЋEþC}  -ꅿTkm-Ҿdd\|v56hK endstream endobj 22 0 obj << /Subtype /CIDFontType0C /Length 578 >> stream QDSMQY+LMRoman10-RegularR  "B  &    2 $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityQDSMQY+LMRoman10-Regularz廡cԤ~wrSQrj\gdY[9F\Imz]d2fXELm@irW_:r͹Bcaș;,Ci^Zbµ9ȵơfIl)=`\y{$lѓZtY 8fOn^lvejUf^gs}bò“qebRbuCn To  ! & endstream endobj 23 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 24 0 obj << /Filter /FlateDecode /Length 374 >> stream xڅRMk@+@r0z"IBi(vAweՃ]B 8;o޼y}>3yFqNlEwI+g2YIږ(-"CfJ.U,x3XТehQA/sq>0={X%ç92>qE\bN)4$4K}kwT5b/^[LY;ޠ<=ォA.xqڌ1\hM,c rxݨfN1T\0\ 4"@ 6r8U1zvUWƕ *R_񡶕DBQtb*> stream xڵTnF}W[dNI0 XRԨǒSVaArr@?Dt7I2³3gΜP|T@(rP )F@ Rb #j GFQ"B`!_>ApXB5U3ky;a#:aD\$cX%C#dQte~|^|.(lC0_-6O3[Gޕ)"*6K&I+W>2;;ᐙHfaLΖ^7sOSg-.P5{EM|1I>6ؓ`ę#2r@ } 9Q#if!wun^ftFE<\c4а Ujܷ]aFS^+*,]aoƾ/Aח۞Hh=FcIHa>11O8q 1p❂^P;Ϝ?:/3 __&dnƵ'h7tU'pvu^ڃכ6CeT7nt*{,# 4 dZF㠽v9 nW9m4s8ѕצ8_|1NZLp>^R/6 I_y\d]M9,)Qؓuk7+{kN ?D,Fq=6a|H-S)\&)!=] InjoVlɐ?ӓ712۩wUZ}C endstream endobj 28 0 obj << /ID [ <11F5D9AAF88D081DC02D41C9C14F053D> <11F5D9AAF88D081DC02D41C9C14F053D> ] /Info 27 0 R /Root 26 0 R /Size 29 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 100 >> stream xȻ `Es5&iRfҺ. +/>8Fj%Au쮦 }bvԗv74ÿÞZ endstream endobj startxref 49459 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/hibert-1.pdf0000644000175000017500000005667114411653175030077 0ustar hillehille%PDF-1.7 % 1 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 170 /Subtype /Image /Type /XObject /Width 313 /Filter /FlateDecode /Length 74 >> stream x1 g_(x tH endstream endobj 2 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 1 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 7 0 obj << /Filter /FlateDecode /Length 220 >> stream xڍj1 E{~`!.. $jaa#ca_@xM;g&bL kOUhm7IvĈXzI0WY4V4 F뱥 !٬f$YI.LN !I !A(T#ı \LwLTh;qSq=c}*BV&.YQ]mG@[О[9n endstream endobj 10 0 obj << /Subtype /XML /Type /Metadata /Length 1746 >> stream application/pdfaa | 2023-03-19T10:48:35+08:00a2023-03-19T10:48:35+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:52710a5a-44ad-95b3-f16c-92d62603ef06uuid:33912920-47ca-8834-e4a1-b025c082b4d6 endstream endobj 14 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 964 >> stream x}ToL[U}ƳoEi{萈dAc iKdY L^(edэk: l-=VkQ$[f [It';=bl'9~zݯ׽\ʶKjt5D$Nq I 7 R+ o2H>s/a6-D %2 e}aߡq;"W xݼ2 &SzA:h}soVFЄ? Y"֐8ڤ45w(c Л`H)dNzy|RK3AeiiO$q 3b%䚴,n',,͢&E|dƥs 嶊R. Kb]žDe.Ǘ=)~Ywt##MyTξ3 9߃E4EevkKaXVB'=xZEe\~U0vKYac.C4dy,+9.}݇7cSjWp!_Uzה endstream endobj 15 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 16 0 obj << /Filter /FlateDecode /Length 406 >> stream xڅR]k0}W=5{"M'Beǚ\]&%m壭) zr=$ͧ{e^3Y(tfs&iW YUưQ04EmM +}Qh[,2E@-K> stream x]UIURoW{3ݓv2R$DD E$\*EA1ɋ'َ%z0 .'!{/ ?)F>F+cg探O|Z/|z [A?tν?8o_zu&܉_OWx':{ީ?8e^F zv`o\4IH.lX>qxfFsl/~7ujkWW8 !t`n=JLDJ L&e/,ʲQI!밐iY4\W ٥' Or۵)< FWa4/yۛ1eYC-&ᅫ"N> m쭸e&Kiʹ=gf-/TòYK3wgDx;`< Oa4V'%(1=Y UeIIt9$Nkg1ᶭndr\֮ 7c}Ol01P)ozV G+d#ON;<{oT"O!KUcݖ)'2 R+ck}O> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 22 0 obj << /Filter /FlateDecode /Length 397 >> stream xmR]k0}ﯸ{Cm9a~ASEZ ؤ탰~({NI:O~3Uh#NNgX7y&ӊ"XR]"] 4dzw~ڋhwxM(kȑ/DjnTԙPrTXIP9Gf9pw'! سp% l^@T]N54g9j!ă_jE^Xfz h'x0N _.])Y3Ա)Gz5+G_ > stream xڭV]o6}߯ouX 5q<}%F`D# K}jtkQy.=B^ C󀱐3`>bb*B,cTr/;?b0i/^TOY!3uѕg!XQȉXp8|0n0 >Ha"0j@AE#)V$.dp|FVNfsmT1+4YTUyh\絩at굢nݨiʷFWV=[[j,dI $16?|v}^'v%Ue ǯeS@^]}WT6ҁI#d7_]4YXyؕ?;R6^~c-m)R!K#^ haSMǡ8p|驗Z$ξIKAr5r|h7t{li [k%#}#+,T]rv&B7t'<&W:Y(!]}\vƬZʋ>>+iʣ>L]ɵڴqwƂ`:sᯭ]"Rϖ~BM WUk'sK2z]ZѾ,]%V'I:S*3-s;#Edx"?q60z||t 9r] }r9',JICSiozb!豘wzA=< nHN)TEE#DNG/1}^_z]/mI 3P_m 978caNv\0RV%%<%NZkRBƜpdj^0UfsCOs  v endstream endobj 26 0 obj << /ID [ ] /Info 25 0 R /Root 24 0 R /Size 27 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 91 >> stream x=@@ZP)$!8qwp2O2y3I[[Q XDpKY_ n\Jx\_* endstream endobj startxref 23671 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/08/metapost.pdf0000644000175000017500000002051014411653175030277 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 410 >> stream xڍAOA )z񸵝N;1/DMH<f< t<a!:ί` JPG$a7\\:ٝ"ׄ|Iߌ0ajVLP*1L,X6wLhȜmE&FIfԅXuu• endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-21T07:02:39+08:00foo2023-03-21T07:02:39+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:348c6c27-432d-b608-e05c-254b752b11cauuid:d628e304-413c-8434-fe79-0ec5fa9a050a endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 991 >> stream xmTkLW0fRKDR@,Uh Jl¢iK%лU@ykEhF!jbJ}GS69]bژss%99A b&"%hVZgJތ=\a"2Ƽ$j"WMdߍԜb^YE!~C^ Cðۣbb/쁛TXZp³%埖W R# "qj :ri +Ч0 v D)ͷ19i}~:'a8#+w9o9IV`&՛wK9,Oeg H%4^k[qL1q 8?u2a6[,f힘pKY.^@U j"Z'믞ȭ15Z%qzLoOJ-Y0Z.ZlUkOOK_6&W= RWo?N>{ e N;I"o8{iFʢraK554bBwPp~I|hݏ޹<m“4ggk#)ú P+xJ&5{U,Sɉ?J \5WfC@J p5>0r LcK0v ntJp <}hh_4A3 kIz.ꦆ6飊5rOׁ-ܕ]9b FϽ-ǁ^GYǔvXa;K򤒁 OhᎲ&|NL4 C&ߘ}רl3x0h`oގNV ќ(1:tf{k+-it5;:6u->qH endstream endobj 13 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 14 0 obj << /Filter /FlateDecode /Length 400 >> stream x}Rj@}WLfUHhJ`wG`v&yK.rv̜9;m2yDD`EJsәKZe(5"CD1l 8eWcA/ÆN♋;==y;R*/'&gˋGR!|"苅`3 /BH>qTFqZ0?iS(%f8`2`Ev.Pqq֌ @ j OfڼuO`ݪ*k~ A%"O)T6D0YӨDZ#Wx_LfȢEzh4phPϡcֱE𗚺cyBR73>x[\ Om? endstream endobj 18 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1402 >> stream xڍU LW=NΒNqÏ9N7L(k+H }wT(4(GeME]2?LwpݲSLO{ S(0LnLO֥n9=!#3O&Iz?,&+ M#"I$})H1 7/" .n/zIɈq!SzwˑGa^^Iސ$=cKϥ* 1c0_˥mi(yd}VOQp5 TӂG60ds1B#pq+t#/F[y.FuB/n/1\m$pLc909gA~F.?|*Ri X &HSi{SݚO1S*Xy }}ͱIGnPPwC';w!IpωQ+(~U264> P ]&SkQYWqn wZI?ɣ; - K+zuTjbuNz;6js" @u}zg2b8(̱ @͗ /Qzjf pZ]WU\A|6P⤧ `.6+nA o.6c3hYRp@^R ,e%PjYΙˈjzpOcSq<0mՙjt8*TYT.(.]FGGTAΪWT5D̈oOf)"k^fД4'S=_\OxaBGo:piU /*SS~@Cl+RϦ Ÿ R1cFŤewЅ Wmp<7K%S2q=Oo+ŕK‚:fl;˱Vp$]+gX,ֽX8_)L"<,dޡ endstream endobj 19 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 20 0 obj << /Filter /FlateDecode /Length 421 >> stream xڅS]k0}W=5u~M'*&WIIa?~I`so=MO7b3 fP"NkT"A/Vn1$FM-= +}O\$hp}~$6x*α)(A֝Qe\τ1l"3eVS+G.rv`0N+F4^HvxK9Lb8As-izFckx=O囨"+x~yFKzk ܸaU,N7PJB`wՁku8/mƔО%j۱DEmul]עUU,[oѫy#Ɩ9x?B)yy=,Mn\TښyW? endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 959 >> stream xڵV]OF}ﯸoJ<D$("auĞOdOH=c;ĴݭT:s1HbL3%%$IB' `ű$c@`>C}'@G|#fzNB?Yfq7NqF1E0HP#2 oDP Aڏ| DԬ:9!oj}nJ$|U^D !Z"? 1yhk*3j]geָ]i2eUѾЫZz{og6-/S Xr`A |*Sx /zu5weZ=AuN:^2{<H 1Ų](~IG3q17I܄s&n[ZtMTfn]B7rMKyjRs̈́a+ε%M/ߞޥrvQEJ/R׻59v=l f ڔ/JiObmЅ/ SGQOfY: V1AT}‹+G=ТprP8G3CUk<>>7j2=JͦslߊSieq8U¤,%؇=>YՊ1?e,w(g1v:!Fg~|?-F,ױ] <5CC8B972EBD24967C0BFAA2056D38883> ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 83 >> stream xȹ 0]cE"b.h4pAZj2ڋ \^p{e31 endstream endobj startxref 8207 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/11/0000755000175000017500000000000014613513621025737 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/11/vbox-and-hbox.pdf0000644000175000017500000001623714411653175031124 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 214 >> stream xڥJ1yy8Bobn'E/]B% |KYr! YbX@JrJ{DN$ч=y G 2u_,IB^5X,<&)y"UXd\WNēdOɑVqo>>O>-`zϑox+ǒJlU2wR=Q^Aoɕ>Zu endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-22T17:33:20+08:00foo2023-03-22T17:33:20+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:695fc73f-43f1-8026-d0b9-275f19685e7buuid:a1277223-4c19-b268-bbce-6c1ea9ced272 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 2637 >> stream xmWiGꪮsYOwwvv^8ɮ($q;!  ~?/@D -!HLp HNC=c{e} !C3:uk7KKhc^WS>dBxo?tw@Y/9ȣ;tw򳘝pE']W?_É_+е+h #x6Fp8/W5OE@vFJ)Xx^=B;.@!~ B҇X pl \dž= r_Fow$xGytxc=u2x6oG)_.<O<$v xzm_}xPZl nkyꪲE Ss)]#h9 'N%v=<=aF[ Pk)N'&C"%Fa,C&Gfɸ3iɹRmN sozZkR1"Ү"+5!o_5tZDQ1@҅,M!Zʆ0NTz'nvj$xL8IIk;8qɻ|E6,0(O۞p;Gw6Fy7j/grc[RŶkYa_zߥowT\ *t=M JolU/۽{Mn|Kn(,ZCD#2tȃ7X| v <]C$NeG>> ;;aU6^xs+Nv-~t[mWZDV9v i0V:Db*X;z}G noqݒbw8UK". +iX`~٦A(;8Wvx2\$2+i6m1VVF-ZYSگHZy`ЏNt"N8NӛkuIƌٻ[.k &3a~/5pcލrЈlsvFoY@7_tP2R.ϸZўVE2~xD&8X˭*QYnr8R`ΑCn;$N~p*!q?.od^,A 4LJ'sC40 oX#rV푊,.hS\]V`<1dPL<Ì ߍ]n>|\μȮAZ'^7J!7s؝5<3;{0S(/j63e,[HiziRT-fmLjhg۶"^0\q_vHBuqt DӇ8;De,b 'xܓbi)QWiYcG:`P.+һI'[ihe² {vhYVpki6[(QQIi =*h(3޵lLڣFΖ'a Hj7v V&-UNDX%/5zU;/HW`}ݥQ5ǍLMOj]{ۦkFe[n(#*8%]'ї4P89>sSҸΛś=+!$. *@ g(q&BK5nxcӓMY.g@N6}+“Ү8 U|DM[[rRSԧ+׊o> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 13 0 obj << /Filter /FlateDecode /Length 471 >> stream xm]0&z:1&psp7{ttI&㷥C}ga㐙!Oh/ޱ{Qc6E_! ٴ۾AEt[HqʋkpR=Ex)CC+JBsUs(Rt"|^']Qe_BBY\Wa5Uw.9cApRt ,;**(V)?"z ֻ /z E/0\* l6c{٠}^=2(ۗ<oþjm(r~yײd|򐳧jPs7Ri( N-iPJoM#\}ɓz|)8G%Xgj]:v*?ƤuR:(5yبSۦ^yð nxȦV5; (z`4 endstream endobj 3 0 obj << /First 61 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 831 >> stream xڵTMo0 WCl}# MҮڮhҮЃb+ lhݸvH$O|#- BcC,3ฌ@F#8b6!!2?vqZX{Yu Oc28 0Fs?{BSgdoWO7| 굲z,Lu .ln_OY^ghaSim>/W'څ2?XS ƾE5 lM߱5N] gUB\#3kpB4^>QF狝*`yA2O8y&1ܨ]U<9+FJUE[@c6 s_zRrSx0"1)uMeOR4}#PM=u[u :b )6/́t Ns;ߪ[L]&b?x4J[ou{1YuI])T]w dJmT!s LkFaG5Wow%4sAUnU܋{MAC4sr47cJ |o m{uNrP5'RNFzr,K;].Ǥ'ٛ0V e}1!B(G>v8ӭn ␱ qМà9#F +$;dv/vˆMh3c'Ms;~x\^1Tq* D ͿND0*d( ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 64 >> stream x 0O8eP=<솞he,Fê]z; lN endstream endobj startxref 7033 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/14/0000755000175000017500000000000014613513621025742 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/14/toc.pdf0000644000175000017500000001364614411653175027241 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 1211 >> stream xڥY;7}b}HP`6f#r׻3auiR0>S,>{iw/[:T mTĭ5ܨຽ|꧿o7TfJoRmTzź Ϸ?"j܇|;zR/Ю^K=O|VG#J#3!p` (E HR 3C`pmA{i]HVPDZ 'õ"ƌgZZ 'õҽZ[jafX6pi+M-. T1-LApmQDFT#f'õ5lHŭ[ *  i$Gk| 1;"!K8 + %[E6+GfKU0մfg'A^IuDzL AU  (߁YOԕ VK 'qԀ@izLgwT[3>h7w&%GI;V`g@ ܄pE9 (JHw03݌xEam\ Q*rQGa'ZR/?Id@q_Bzhb H`g$>Z33 H`Aas&?xC'ڊwvVOMUY^jL88}DZ1?%fZ;>ry\NV`&*p'xv:9L>o'%~glV;n vtmg%%#[Vx9̲N'>2m.8jR{u&XYRb@bPV苣7i!4?+fAU߳]c{L8dy%kWkDAX^qybM=2@2_w$&ba1Gb"_C5 endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-28T14:20:18+08:00foo2023-03-28T14:20:18+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:c6591c0f-491c-90a0-87ee-7583a70d20eauuid:25b2407b-428a-aaf4-0ae6-8a46220b1680 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Length 523 >> stream YKYZRI+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityYKYZRI+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈FUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 13 0 obj << /Filter /FlateDecode /Length 380 >> stream xڅRMk@WL`\-Jӛʪ?~Є.Λ7oYL^Z.XZQLIEu@dȆl4 f`^584LALú^>zۇ2C:ELٙWGi oRYBV͔=hO` W#~8?kӠ=(j @$<^Vi}T ))נ. H =!d짍<9lcUt':7ōqq%ò)X7m%>x;}(]c&Kk1oFn]l#wz Z+-hՎfǕTډ0Nw?a endstream endobj 3 0 obj << /First 59 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 824 >> stream xڍT]o: }oK1Ħ&X"M=(p@؏%ۋ #:!is@ $ŐOR`fB@E X Y |6oú |#Z,xEb! Y%i BK_Vި~vna8ʲY?F7A.fB62/j~UF}WL? kE2&dKE1t|TǿM DQ\T>ӉC&+Ց_#)z_{6FT>J;;YTbb?mV9\nÀ m+Z8yjLVŤ1ɘ@)o^=}w3I`9=z;\S+U}E"?HVyDdԾc5;(uqv۷EijlJAoY5L@^ȃ9sX`[L䓮aVV{ru_E ~08 R:\ C녅`Srtoߌ8˃<Ü>Fʼn Zi*iϾ`\aJ/5ױ-;ٔsd?qy%Tl֮~? G]t0턝Ujɜ{^y6LWzJ] JPaI. endstream endobj 17 0 obj << /ID [ <5EF9BCF5E6D5B4FB4524294AD9B77861> <5EF9BCF5E6D5B4FB4524294AD9B77861> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x 0I~D.7dɲ _VTkb endstream endobj startxref 5759 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/14/bookmarks.png0000644000175000017500000026227214411653175030460 0ustar hillehillePNG  IHDRiЇsBITOtEXtSoftwaremate-screenshotȖJ IDATxy]Eϩ{[HH B0 10ÇEeGD" ʪ (dCBB $,^^[Vui;!diL$Or]NթWNS/1>JI%\G/H,7NnQ)d-%只$d؛%V57HA62lP ͺB^WBtʀɥ =ǎ]Oұ=-A)MDXJej*rڱkҩ-&%d- @ڒ}Ǐvjd (( P'lni11(xo,-KD@ (W7fls]JXv,BE( F ,P4F76K'RaoisZe'` Q(A+EBHЂ`Y"2 RC4]ӡ*00 2*X䓭QTL60`H֎J$xnGT(Eɪrײt dGQ\kd}1v* Ĉ X" ^ Zʜ&`@X,0/QJ!J$XٷZkBenz.Vfl+,D%%̈(٘А SgDmEXDú" tь_!e;QJYLњ*: `&D`"`Fb``f@ H!A $Dbhi|,T"ZJ9P=_JQ )4hB%)C¤MMIMEFC*Q)WCOMa%RI٬Sb* 4 20G@M"2w@+ ZܜErC'u ޺JTMtBtMw/`LRD PJ &^sNӺ3 DZIG!  (&ԣSrj[I}iτ=\?0 ,aL&K $R]"%`OkB ILBǝ05WkI~R1@ FS 7e}`FiպQKd[d BKG)u&bJI~kl-`RbgIsN bȪ1$](,G0 !H3o[jYX2 4$ J-!|Ru*)5UM5pWX( !I%I滂T*tww%I"ٶH\"Bm;{: 騄E_Y1sT&<``&($12G/" @ U*a{{=A&Hi%|O J( HD,@٪od9BZ JD:YLV=˷ҁВYl{@"d% mʠr.2USդR!Z PFxZ0t-4:beBT1cK'L&v반jhIUU-͵bdCdhA 9u1J@.U XL0 cYBJ BRbf&0] "4\/;$+M6+Hm9RkfmD59 }%2nP_M;v2>N7X!YRUv- cBb$p@L(!AA~1G-33l*@R"ׄȨz)tw^dXQ.D^ud~ό @IynP,T%W"IꐴJM)%,AhL"5HJ{LzdsZ$4 $ѫð](Qa, `Գ@9jXa/EU][B[ս.v[y\ kɌ{_ ]b#۹2뻃΢h2(Y$R6 酦k/TUj" B%HB3" `2F`_P2 g@ÆxL(L4 FQ2D_po!A8-&-]|5rlf!@ ɰ0i6BIF`@DdL"7N҄H ӒҀ\eldV,)mAĄ Ph9 R* {a*]/ <$&2)SlJ ঩CAk!L#m ̆AD7 4B!32"DzF%X dQX. BH4@@T]I!1ZV !Q@i( 6yW0U*XpP5uM|yɤdT®XK hd`@MA1 zIqA{P! f(%wqGfBi0L4_ѐ02Af02 &d B&$`@Sr,S0 BU!  Q"Hf@D0FY& df`!*a¶H ɨ隬-ޔv2E_x훀Q  [(@yJ3  @ D n%ϤS"jo/ߐ00"d)S,.g96! fybEƯ"D1 A 6ľ*,FUAQ3LP ѻI}1$ >W/+`q5BZ'!sޒRdJ`tՐ`pbo{H$\&)U'Qi#"3 k̥,c۾fn[յdHiJxe[d!h4@ c|I@R$И KJ 䔪GB fQ+dD+6wYUTE]um(J:k $DeLe5Bd "T `X&Fvpc+|L@DQ =A,1xnf`p޿AtM+ dSSw#tM6ݕϣ*bbbbbb>((d IN!u6!Pkp~7eʔl63QKT*=T RB(Ў҉=9m4˲jTyٙ(J^R@"M`z(.d֯+$5B誦rej֭[7iҤJΦDXT4iҎwŋ?ɓ']?3m뮻6l07QG+O<Ĵizw}?-jcǎG}y6lX*}G_`ҥsַu}C~֢' E2ƊƀkTQ#ֱ;댉Yb~yg?{/]_\h뺏>GQ*.䒃:Hq9455?8rȖx7ooÇs1˖-|~{ĉBk֬YoF9r(3js1bO~'|gXx7+W~,XQG[[FQTR!fՉ26Hh={o͚5_T"M5>6k֬)S̙3;N*kN[nommV\'>|iyaxM7~+V7oފ+?GyX,FhLZ픪lIھ ؜$۶-UB٩xmLP*no|{l"XnM7t嗟r)rH\~/^p/#G,'x⡇4iRoomvEr!/k暁r/_~_~{ǯ~|}]zߟ|c5k\ve_}}}{tУ>뮻QGյ[cǎu'J=0 yD}R<?ѿ4=3g}S?p:::"9SLygK/T*ٶ~Zn׾V(x?3f̘8qxޡQA-ڬ2&U,:t)Y<|\3KuegL̿*;|>]]]DT*6 /ko/Bri?7xcҤI&M7n܁|򦦦~9z[[y=>a„O>׿z^gqFTjll?rʎ8`񽽽'tƘJ2puY[ַN 3+6 Q lV>xS7[4cLOOO2t]M 9css/~7ɴe2%K$ !7uϟ 'uYRJ駟.ݲ1 * [@VKۇ9Vw 11;E"C⺮b, IDAT1FQ*0 fÐ6?j5lE7r!?я3JT*u]O?>mڴoT*BKR*2H)#P(D~oo`gٲƘGcƌy衇 BMMMtFkڂ:ߴ6մgڵ~]|ŋ-8?h۶-:#.r",P(̚5/j:w?֭A?11ʱV5'];,IJ5 u {gg5&_ &̛7o&Lx=Xqlnkk=zt*;.҇z߷*QOZCDO~Sz뭷^{>_WGy1c~槭mu;vqn3f=z͚5?3OM՟M5=γ>?og}d 1,Z~C0~'t:|׮];c 舜ژeK!\۾z͈lgۂ5ڲ՘Irowu>9q㏿~#F^F9sE]tf2>ff_~Yf͚5bĈ+"Lc\x_|ܹs{{{p.HN .\lي+?/YdΜ9~ӧOBtttDcV^ b8&<u;oM0M..$Ia-LM ϞrGD?dmmRT*EfT0 R]]]JaÆѨQZ/$ ^Lӹ\.y!DSSmAtuuI)=;~\.gbl6EKr֭3455U kkkSh hSu*;t*8PZq6l]Nt[oMR'OR>{'>?|kk3xwygʕ-ȑ#.x©+{C%ga5~sZ#/wq;;111CCd;Ν3hnnfۑd (Ad2T*A4q˲0ʍQIݽ-M! G47堔TYK(Dlbbbv5Cw+}S7Tmt\V#G<&f Ы"| `q v,/:&fGPF[ Y˯ɮ*˶N% a&tb3T$;<-B\H zJcZ;ݐ\6[jJ}r4K7`LLLLL.%B3t231|rN:cbbbbbqQފ`ROim{=UQjg0&&&&&fB[2ij*EMRl*!SiToɛ_kuMlvM&#ðDʔK;;111111yTۺ|qQR`}C]cqefmNf2;;111111jlKjz](uU)QP"g[kMcbbbbb^~D߯P[:pB;{! J2sL*?/rJOOOC+CSTN<]Y֧O111-*Ҷ l+ %$xR߀%\r1̞=vdׅ-t:% s̙+bҤIӦM>gz뭣F3w[zu&93>̨Є#F8s90}oqԨQoqܸq'|ULLn⚴P+5􆞢t ]P[zmه6_rĉIC3Cը{7'LP.x8`Ĉ;.yÆ ?gΜ팉EϯK]{EQQ\{ #_7i}틥mh7({W?/}KW]u  ̜9sڴif͊VO{ޫz5|zvXWW{}|gO8A R+|g7<]o뿶>5kꪫNJ/¦&x.N;{饗^@1B'Y[H_/]~iӦW꫿/^qAзOs#6*38#?3o޼K/O;wnGG>SO=g߬;3Nw޹z#*8SV|߷,_2툴~ƏH$.]wTT6}Atwtرcڳ:묳κ+q&v,C{6+s 544Xop'!C(WgϞo|㤓Nkf lii={>{מs9'CAl?t]_F~` j厫 i6lX.é>q%KK?3wD,Xdu^cOm{ՅBa[%wq?yzƛUC{>`Tccm&L7xr x`ro1ymU/Rww1c6+s ]xᅽ/&+V4667m 8Kp |PO\͘9r/Yd3&&&f \Mے3",Ͻ]X#F|;ߙ3gΌ3-[s>Ƿ=_O~o~tzSNxGnmM{W6ݬ ze"{yAۚ_~^ӦMY.{1cƼyo3gzͻ7+s ).e˖mMTdT:묳^|Žk 8iҤGydz궪Y>Yugy]tQss$;—2i UW?wծ|"BڠStG|lJeڴiO=HLLG @Sejxe}w@^VuQe zՎ0RY39j-Ue}PLLLLLe܀6*B:ZG.g)oLŇxRb̿0t: 9EnmaF՜Ð35;46&&&&&棇JdlEIŠ$`111111%UxD&ܓ%Sx5M]fC~&zC'TgI'iˈٝPuX@=)0\OV201+3Z nDqroTMÞu\(KRвWѥޒSYjI!111111P- FB|VCb3eJ:^٭z1-Ѐ0FK C <[f^zU6Fm>| 5,eоf!˗[naۍ8#G7nb%jkk=bbbb=*QIr(eU%b-bmmmp@2B뿭xbŊa\faÆmoի1J/df}^֮붴l+LiX &D!"n`;{c>xĈ۷ne2B ƘΎgڵ8Tlk׮7nܠK!I(&&&f #VX1$B,DeYjРZCH)kjj֮]~*jԐ H$juDc2\Ui-fBcQpMb)@ЖwwbbbbRW͂QYSщdUT$~' ␻ϖbhmg$m~f&&&&fQe²tm@@Ұ{Avlcbb>1˗/trW_}z:::W^yP(r>SNinne%+&̤]W4,y=lg̐~nIAD_|-ܲg/MYcm禆|XxM7ԿX>ӟ /\tE'O5%+dr+\¶](Mx׿>T 7p9455 @; /)Io~󛝝݋ȼM2K_ȑ#׭[+7| 7ܰWvd%wi fHH~'=w{PuޙW^YtSO=uH֩d;x{^xO/O}S(s{I&566ZjÆ EXbҥASNݚ7xexrr,XPV;0q^}T*vNvpТE|>w<蠃#111e]k.na=̙3DWzh$+boh m F"alU̙;D7߾_7]mG .8VX1s=7qjժt:HD/KR|>xc9&Lo~2]=z@,_裏m^Zlٔ)S8zq+bױ[_߶p@>3gwܱYy.\vڠN[`EUTrt0$vHl.˞ֆu7?O>$<_oGv:0 \jc93ؑec<쳫W7oަl[˗/:u*!>T*tuu_Ac…b1JMw]%Trt0$A]!KZ]<`X e(.\xwwuumG"zg.\8}O|' :yq՝tI?яl@c*Jd6K.[lYPHRW?:|οg>~{3&:6lk6$3&&&fr|~|{/GI1cFt0$cєJhxCK^ªFg¶\C;Ry7{o*u-;---ƍfW7550|掎L&r,YbYVRjl]211CA3<#1#<'O7nSɑ!FaYK*#$+^׵)QBzm66u]O>Zo~)m}G}gH$[Dd۶rӦM{?i'NT-[^bfrDӬ\=# ڡ25b3|-Ztןvi#G\vc=p¨m7nsC%Y\*Pk[P2Rv6%ds6l{caY֩}lܹovtꟍ}9@DguVtz9-6mg;. GoJ{C<1ޣ&51kk,1%{Ď QPeǼ~Dϲ;3;;7>3<1o޼e˖Ç// / Ȭh$IqqqJJJS^wwyxx= ܹf{hkUG mB`<8P5Gf/d'eԩ6mJLLLLLd=۷o_`u3.HZGꌨT,z!ͤP e1__~M?x>Ņ(SXXؕ+WBƍQFB8D"V8|0:ܧO7L&L&S*2vDұcĻw:88|Gvf瓙YPPPXXwoPTTL0a׮]uܣ2a„J͛7_jչs*++ryVw}ܟ~i…NNNT8 ,;XpZh N%%4JL|GM6ݿݣҦM1c( t*zgYYYkM6mڴgiiiP9rd b'O/////*'kOF5jT$0kkE6m/^z˦M-Gqqq;vv WZbŊ q ̈́AF 0y$b-BUڃ\.f5ojAʰ78c~ʜlqƓ'Oߔ˧7;mʅz'F9O"J͛jժ׿Aү3T$Hx,Z>  Hnv-?-ZxZW9s&{<}/dw]̭? rׯ&o$g708 hRORT&zY+^}ٰaۮ4o޼67oL?k94Mp 0L8O5D>MX-1py;9888.8i>zi $&3AQD(QgY;9888p Eq!I$CYHf0 ahaNnN\]RI@J$B^<pfxzEP`Ҕ$|j0|z7rmz'Gi KĒlu g IDATe(^'` A,YE0jxv #7@QA5rpp+CLb)D$**k%zEۙƴF{hР{"""^'*Mu+|$kaɤV{tvvh4FibLw$JnVg2 !ɬDw陖f|xr\.q\ (++ uvv?^[.IрY[5ts+L4., $?٩tEQFQ*PYu̍.G uF.DN$ʗV A D)Z:(d'0FѼpppppg !$1KQP(  LoNQ2'SGYq#_w ,ʊ*Ӌ6uBYx<5tErGVHRrpppppC43a2>jW' ';988888lИHFŸS58`'Ozrppppp+fT$McuP|=EԢ) qFI3`oΝci XQQ1`?"AB%H.mא#! I PPiջ̧4\ތ  8Ft\I֌FS{2(ȡ~Zz 8KR\v]888886xЗ q/{KX%ֵu#<QQQ! ۷o/ 뭜wɔXYYvu88888xc9r+2I^H5$i0|>MWл@ hٲe2';9888;pDF:2T%a|;@ʄ4 $" ^oe3 CP('D($mxbdYH샛)!ъ< m|1?G׀gX1`kݙ)#0i|\[a%hW, |z+Dh%PjZDb--;PZ"i\5N |0111111!!!99V?)2o@%VgcL4N̫}]llH$ׂꃷ%;fҥKWXxŋ/_.Je,Vuuu[I5aX^^^mC1cƅ lO̘1#;;o!sÆ ~Bpvv H$Z[ځ QN  GDPCPﲓWSu:`0x={.YdӦM<o…:tܽ{wӦMeee}oܸm۶/RT7o=ztddo+0e@yS'64ࠠ+W.ZH/\(l2NpVAm߾=**gϞ֭ׯKsm۶E]zuǏ-XA7oތ={6@VO>$Ik4͛7i0... :uFQtرr)TOe.I9JʀIP` Fb%CV,,,=z͛)))Yx9snݺK>>,,]vfyԨQ[li:...33?i͘1eѢE-F1Ǐgf˖-I(8F߮$*xɓ99976 uIMӧNJLLiZm۶ P(NNN~~~wލضm۞={䐔&N $[j1eB!:tP={-Z#F!\nbL( 00v(G_Պ8z(XPΝEJd4@Ql6Y8a@"8[ϟ?sNNNpnѢE˗/C,!..nذaDRtݺu/MT*  ib~G/_g1YfU^l駟&N윘>h 65//oÆ 3fxaw6 IOLEH4R!w)$7oaÆƍݻ([nvSNݸqC,GDD,YdժUv:~_z?X,qdgzz +(?>\\jiˑ#G&NXXX₢hYY`̙#FxIطo<z Y̙Rl3 # \rUlңGvJ.]#sppąchfCtFH(0>zY*++ǏI4b6lpK.EdȑpˡQ>}Ν:wѣGGDDxxxBe øqA]['(((==}ٲe 6\Zx{{* 4h̘1/^ [tj={lfͪ'%C8Q$0o޸qcÆ ݻ7}M3}'77Zk$CQH$ܬ绳 2hpoDx~.P8(O3o׮]lјשS(jqrrͭ/bX"$Iii)MBifV+J1 h4)r7R4&&G,oU1yyy*fzzP(cΝ8p`]i XQQ1`Wl61F˛6mZXXȞݻwDDZݽ{wJJJ\\m߿ΝwE4psӧO5۷o駟֯_g#spp.5;&>iFʀiy:fR?ipΏ>d{T*}[%;,E{H &F4M10/^FA87 nF$CR6;,!i^s=ݱ'"8 GCk܀MIHLrL^5d'02((%(a $"2(_c'b_|d 8 rQHgeҹK)>~+/'(F$vrLHv\& x804܂b4%CEy Mb2u5Xxe^{pAP J| ` i!fh+IR&>Rs|z+8xG@aC@qY ` zB0ł ?>5ax@2 Ah, rhlDO< 4&$I>yD$x x( 8Fe|^6 9M988888P{ 1Il.(*JmO! h xz񯧊)N{Ym'''`0TTTVQj[cVϟ?iii5ŋ*'5Mzz:}ڧOAU*l00 A1!p$Z*acǎiz 8v(8rsjz„ aaa aaa~Szz͛77dȐk2DT#{DDD6m7oT*4~x( **77Splj#FP*J޽{۷W*ӦMcM?nX:uꔒ1 /BBBfs>}V+8ڵk͚5 4hѢEXXXn0$˻vڮ];@IIɓ'zU*ӫ+Ba`XT*UEEEnnnV~7ViF#wޱcG  ոqs//^ xexo߾7n0 s >}j6-[V\\\vsZZLdIK߾͞\W~ Rk$33S>ǎc {u~B ޽;aZz۷ݞvҥѣG|}}ϓ5ɠ:tرiӦ76l؃EyyӦMN>ԩS^zY,SNUN?VkVVk^|ﯯd0CaJ ELF56ѣGߔJJJ=zV̀?Bv:4!!pVN~nݺ8cƌw&ETTԸqiiiw>{lbb}8`;Ce2:tT*}}}*4Mk4JuȑG:uJR]xΪ%''4EQa2225kVZZ Ba;wfZQݾ}L&$yƍfee%&&4իWẩ?o߾Pd|>w rTARSS>|HQsƍA&H$ʊ;0 SQQQTTm;MߩS'ggm^vUVJ/ڵkll,l+ABa-g+ mtzZ']ƍ :}`ϗ(v*&4i8hР;wXVV{QVx(*ju||lFQSP+++oݺ_\. J$I6n8,,VbU'..O>Z-԰$8a˗݇SX ?@=ڵk ;gΜ?~xK.}wo[li{ivpp(((8t@*Xbĉݺu߿֭[U۵kWP7oT* {  O0hTI>B  ɧ|oƣG=z;%))ҥKH_v߿=cۋE"х Zn [QQLZ ,8z(\'XreuC3g^tiɒ%Zvĉyyy'N4h޽{߄F9rȑ#3qTյe˖7vwwGAH@~~Gݡ)SFcttX,fF͚5 !!!͛7wvv/mWt:ӧOr[nJ2..}fm۶ӧO3T'N/VZ^ "##>|wGEEI$6mڄj أG777@aa}Ξ=0LIIɱc +ӵkW2i$(BR1bD)zy= W2ԩSUqL"<|5??6 Ν;¡T*222wݫW0o# A֭]ƍ111b855UV+ V t:5kV}||^xѠAΝ;&''ϙ3EG;$$>jrrrJm۶uttaaa?$AjZ C޺u $,bl6$|}iӧ)))}icǎUl<<<ł IDATry@@H$ҥK۶myl.]6lعs*^[srr hݻ*v&*dG@ag(>m3&;/رcЮ>8yvݰaOl[n} mZ~$I;vSNnnnNrttܱcB۷˗ٞq1cٳC?3v)n߾eƏ@?'Obcc/@?doooF_dxD"ٳg:qF[j>~55 PSǎ!;!۷o?~@ 8py yK9++ ݹsGVGEEt!,,,,,,000<<<,,l̘1ڵ2d$T*wTlVۮ]f͚x<;FFFFDD=ztCݼyS(>~[z5;\f ?B; ̣iA)T/ 66vo.g_}4;;eĈ;w8p`ӧO_z3g,Xj͛tғ'O._u{ꫯ֬Yc4/_>iҤYf}'Ul6mjJ.Zyo.ϟd~T*=~Ih(*66ڿu5ZRvSl޳gܹsrN?~|II `ػwoLL A&LXfM\\ba[X,P["Iѣ]vm֬Aϟ2e caÆ={֭7o<`6P%8b1 )J8o&"""Zhɓ_޳gσΝ;wܹmW`lժ޵kgϞ4]XX`>x`׮]w׭[3h9}:77d2AsYF׮]KHH);v֭[,Y٪U]p_d͛!+TEx<^HHUvJZuϞ=ŋ/Mrpp A.$P{χϚ5kժUpqѢENnٲ;wҞ>}}\vO>P"_}T*mݺ rssz}zz:}zcbX,/^] C#XP "@hd2˃dA/xv(//N:]zu֭k׮=z ⧟~3.K6mӧOwssr /nj6mDGG^z…7nܶm[ffٯ׌qUpxqHHPX7G@ qd50 Ӯ]:8mbt$X=k֬T<== ޺u+##O?gz+WUQQѧ~ G XɓlU|/< Fq߾}U&h>~ɓ<חE"QPPh:thJJԩSqwvvNLLq-$$8%%sʔ)fyݺupb *ZNHH9s&`ڵ ?88}:Hqqqrrr߾} `|VfvvV`E k׮nzW^8qԩS۴il^aAy:*f> F$0^} TV1bg}V[ .1[*++ x}z{{ 0SYYY|׭V+'sN?S ^)pFvFh Ov}oܹk֬iذ@ XzcP~D]rvU$8.*ʮ$iRMzToBLd%toizTe 4J'OQQQ/k׮ŋϞ=jժ W^t)K.}#~`]sppppT'Tj~csJ-d_6j4&bqww`elqvv>{LliYl ͛7g`@1 VVltuyTh,t4'+#~ $8kcȑ,ݻO<E]U  %%%ˣGF ü4ډX[t4#AS*h4۝U[c=^WTOS,>l#ׅٱ@U~Dv~S"FX?ƗRێϟ>/ʳb-:4 vf- cA0U=&sp|P /ܹscKJJbbbsyݸq#>>… p:phA&(ȑ#5kte?L<ֶoٲŎ c'O7d-V٫n0Clf&99zStЗ'|~yyUlڨ10֜9s~[n͛7/>>>..n0 @xZm2?Vj5`+yҥGo߾Vk얞] n:8s֭}ݺuĉ;w6E^IT,O1jA !(J#hqp|Qݻt߿^1 tuuԩSXXXF;鰰#GB$IΞ=;))ťgϞ7odoذe˖?# /..( :N;xlU[,L4]e}v^$<۷OVN0j>ѣGpbѱK.VU( 6,֭[8p <SRRb6>LC&Lp$\U˗/}#F;v,Ϋ/--{\ҵkױc.ZA oo ڦM`M`<;Jb (>g2]j/iӦʼ۷ð25Ν;'N00.]<~8<<WCÀnȑ#v(\ND P\\T*`c!:cb *[fFsuux;w{E^^^jjj^^P(.r 6f3|eW\ &J۴ii,ZcǤ >mV898؉U^^~ƍ-Z`{j*VV*0tÇ:}ppdi08;99$ (--5.]gXZ#08 A&x^ݻÈǮpPS'@Q|G}d9::vY.[ ر# `Μ9}F!k0uEHLL_[0 b)///))vӧOL :uX,8oٲqBѧOa=zxE^p߿;7ְaC㸯Y_v^nR4((痖x*Šy @ HKKҥKfffͫ 'J%ƦFDD|WG&588M6Zj۶mqq1h4?ډg#gff&&&&&&\p!99Y$={$""SN!!!Ϟ=1btpwwxnݤRRLJJرKo4>( ~Id-ZDEE͜9)''tF`hPNF1i `e&2{Eqp{KPt599ynR*ݺu;v,tcԳgOϤIݛ(JlU&M5jx7o+iV'++KQ}UQ 3dY,'N5jWXX#A|f'ېOOp r-ɼy?>uݻwzIfx͛7atb[sϯk׮b8""bڴi-i?005:nnnP]x;㕕w޵m9rdРAF=`0©ENCz;TL&cv&Iܹs+Wߴ\__l6X K@@nZU*UDh^^^ǎ?n^'SOOFs6ɓ'GOwߺنF[dknbtR\\{ ,~`sES3g6@YYa$I|޽{~%/4N*J$޽{兄ؾ^nAz}||<ĶM}3f`6sLۨݺu;qDJJJu#2m۶JrڴiX~Cg̘ϟ6mخhHdij(ZRRҺukiqEQ___^x1l0պxb×k~D0Ж_PPБ#G`p.]5I&aaa߇}"hPà*AM98}؉uر_~ɓ0GXXX֭z'H [7nm۶m="##.\WPP~엗3je2rrr PZZ^9ѣG|JJJrtt)==޽{;w0L%%%W^dݺu;~ҥKw]YY9vX8 poEUVV(j/_{.a/M0`R3ur|޽p! +_PNHgjZѰ):ubcTԬYW$Ν;ϰ&KOe͚5lQF]t A!C?8.eӦM޽X3..]4###00ˋu(f'04&IM6;wܹ3gVkaaaxxה)S.^rJFC?P(?~\XX2 oPV۰aزɓ'Ϝ9СC[n;w.k{#5l7Wv'4MC &&&?^*vwiii͛`kٲ%\1Г;vwD"+W<|pVV|#5Ƴ5jP(^l` IڵkSN1a'(j\:|5k֬AQ4$$$##mW_ۍ5͛7OHHHOO8p Z`KJJڲeSSS; î^lZ74LA49DF 5asWA)EEEǏ߰aֿɓ'%<[AV>qp;J MZ0AXY#uf} IDAT۶m;}tzz:ǃV,֭[i6Ϳks8k֬1cư>\H,--~ӦMϜ9c2&Nfnݺ'O* .={>xƸuoqss!-[hѢ?c>x Yb/2a„2_~6l8|046L&Mڸq#=q'O._|˖-$I:ud2EGGwO?ӧϙ3gT*Uyyܹs?f̘̟? p].]駟Bd&¢6`݇RZZ w)T899%Ju vbW¾k*c 2QT.ڨ睢(v-Ű}jmú1FEEE/++mUPP`<dZ?^[1Nm6c' ]/{6gfgvi"bbymEDE_b=[$ ]5"DX"t38|Vb4h>sX9ss'6Q9u5X^J%旗+ڀ^0Uz6l &Oׯ_WnO>=44ð/XaƹhV:$ID2t e/1bԩS&KK}9;")))22޽{-HqС%KJ|">_XXf[6mIߍj[~^WWW?y򤸸xԨQ111Zdh ]ppQaaaIIc^^ǶhѢiӦs?x' :t(upQΝ;ױcGWYY)jjj|||JWW 16m.;wܲeʵ BUXXʕ+P:>\$edd8::4ߞ>}z۶m|>$--M ؠcbb|}}Qjۼy3D43Q__۷o e7|]NN*gϮXM60 %駟fΜYBŢxq/..NIIi߾#G;2svyĉe˖EQh&kii)J5gϞ [ ĉo^__͕?~بH$7nݺիL>7ojkk!/^`1dgggddmVWWXձ\A=!իWA!$ ڶjժtV q Y\(zS[XZA<#CB>o=Es<$I~wͭ[Xn߾qf̘!n߾oooPhbbrĉ:hii3խWaa! & cccMMMQΝ;mۖ kEEEhjGCJ7|sN&gȻ),pAk۶mϟ?HNNV*555յ:ub8ۣ}ZQcSQCwb󱱱ݻw5k͸7͡P@0aڵk}||>|8`;w c_x18+**n߾~n۶ 5cccϟ??bĈ ##~i9V$X[[x6mڠoަ<@mbcc&Or]6...??ٳg/^xBŻvb...R4$$$66رcށTa8ުU+ɓ'?~ 4CCC5OS@jjjN:w\WWN|FGG76KizSMX:mmMgۜjҤIfffgΜi8<<ׯ_6llnww͛7UTT 4H"ggg;w}(BMEݾ} H$O<ӧOEEEB939`ǎNNN,wSXaԨQ/_lժ\.wwwpqq}7YXXڪwMCC vc64*y7!ze7n6la``кue˖ǯ\H|1cMٱcGlllnn.?=N__ͭo߾<}Q-_͠do޼ʼnfff}}ʕr&CC7.===jX[[_~}РA}1770jW^m߾=3ѣHxbLkffVNSaXmm-dn7ESt73dddH$!ؤ*III(cFjjFyCBN!pРZBBZ'!5x7{fͩ8 888,,lڵ"H$͝;5''͛7vvvϟ0`S^:~fJ}ё#GVVVzP>DD \vmڴi6lw; "##Û7on@Zh333CCØ۷{yy<`ÿgqյFm*MFnB 6? PXCJX,VyKҨ%11qѦcǎӧӬJU*bQtvY8nggd~G@T"j4_ų_|ߩS &0yz`ƌTKHp=-)31zw17kјTd̊$Id?~g o߾ӧO;;;ϟ?޼yQQQBիׯwvvDR d!pss;>0>>(СC[Chhh <U~3gD ٳg@ee# .\0j(GGǙ3gĘ;88BT斖H04i0z}} W^l"~xݨ j鱰hJғcaaannnnn(+!C>|cbbҷoٳgcnn*|̣h'Z+ 4(0\W )ޫaY7|+ijʧQ>l?/5 P(B|޼yZ:v ?/ { w^@@O?P(ڶm۫W/266F | gΜ9uE!_#:[S>9J޽;MӨwiiܰ:݉m 04ROOsEM8^M}ݨ jAOBm۶Cid} ** 1c(JKKK77ѣGʧ)LLL=R*^VmRIUvkeǿwVX'E0H$w~hǑ#G0 ?~|UU՝;wVXbO?eԠ=z4AB022xlقV6eS&%0 pppիAW^-,,D1}<>F_/_l9# Ri۶m555W\}v]]]Eٻw>}wf'%%uam۶Ǐ̀a`LvuuEfFc5ʧOChnfff~ @w33398^@ ߎzNS㸍 a|>=???990кˁ 'ϳc|e&w/pppppp4di(V_]C*,1="45"B9AhiYE'PӢx-h%ꭻt8IaEUw?QjBM 0:Hsqppppp[!?JJi鉄4O+QraU[kg'[Iոf=Η]+P@a<:me_rp0MYBfffYYaΦa7S LfN6|l*wRSST܆3T&|8;+ҠRRYfϠOHHhXhMnn./5T)q|ZՄf5_*WSr %cJ[βM̖@iu a޽iӦ޽Ν;7n@UVC_eeewލ߽{w|||pp/LBBQv/_^zUTkmܸٺc5g !!!hn֭[IJJJccc??^h]/XBCC nܸq֭{ -ZԔ~fQS"l}fŋCׯ_WI&TCfeqq֭[mvňt_J*^5$ɘS:t)O. dH%.`mDlg4<|C5i\{_~zԨQt;)pp|Pn8={Μ9W^(!APijj&j Y f͚z( _~9~ɓ' EQC J4Ml@ yŮ]۷owppXnJM^RRj _B*ޭGZYY'Io޼yS.cǎYLMM R2d9sTr|T8 1 j LGQZVfD~~~*Tmڴٶm… fXXXwؑYΙ䨪 d}EobR#A-'V"L0A[[;&&f˖-...uuuLe֔Ҩ"J&®]JKKgΜ)--usssuuEV///&==],#_|qXxKM6UJR5:###ccco߾iӦF9>p0a"ذ:-@ T>gϞ=wM:QfXX22$** ecܹ͛7 >>ܹs(T\\ڵkQ/ Dj+W?x رc ,ػw_~yFYu 366.//711i۶MLLLLL***RRRPE-a󳲲P=WXXkkkKKK1 d!={ֿXdHTUU}UVI$v)Þ>}j``eee*JS'MdllP(޼y#J{}MB4Xݻ...111&*rvvNOOgWXX˛7oW~~>{Լ|rjӧ"MKK )f͚T*ߡ)^i:""bիWQQQb{ٶ򋅅ayy˗R=~egg_jRd G[ ;Rpyy4sN)S@SgS'&&%֭[BBܿ%>}:u 19IPPD"ٻwo׮]s0,---77wѢE-^KKPo߾o611(q(j1,Y:4i$ %ԧUhJhRz^mm;v@qq1Cm۶x*R._v&&&)Eξ욚$|o5|K 5UDDu).]PJGK.1$qtt.--f0$I"իW}}} |2zڬ7nܘ;w˗/ ᗚUSJ("7hM4)-xfƠO).S8kjД}lʔ)MUpIX|x-`6E/ H$Ieeu묬,XwӧO;u~nnnK,aßHls4cƌ^zxΝ;077666\WQe*mFFFZJe777ێZZZv\t/gg+V0u4b.p * Z -;vǏ߾}{JJ Dϯ`/**:})~1せ*޷ҝ;w؆2 իNbhqMS%7}=I IDAT1 [oyΚ5+55u̙:::555<]]]W^6:K&ݹs#8Jbb_paxxoUQ~ #JWnHj*:ڵkF555Ae6 Gtaa!a[l7ojJҋ/ իWϛ6mBxcS ׅ  wܹw޶mیFemmݶm[FCqtcpH~z---ǥR)SfR" 3j)L&۹sŋ_~.%$$L2cii# ׯ_}vB;v옯o]]]JJ cbA¯UV/;w{ĉO8MR*))Yz5TTT<)GKA zg6mdVKɪW0BCT1S4ۚ2eFpp04@ 888xxxĨUVau)Sx<WWW|훒fs4$ʴFzZ0Qƍkjjv'Cx,v/X,.++CJKLMM Ð!C ]QQNnݺF]]!5j jW?~uN"2|}WCzE;RAAAjjE*""bϞ=Je///@ݻkiikN.+ww֭[''':tQC~/FK)???%%eը3gΉ'x<5ehA0.|@{^+Rr4<\Z"/ҔٳG3T ~~~^^^/d0o޼ ̙3+WԩӧmY6l߾}hW^{a7n8y${gA񙃋¨󌜗9E!pR4ZIgʔ)o8ɩb̘1SNU8ryXX&NxGy{{0رc*-LV^^=GЄ2s {СchߪG;7 OSįkN() kF7%''/''wwwoذ!33sӦMhO[[nݺ+/^88888B8uP`7<,Rq"i$]vV{G'N׷oѣ5iii:BFuJZC dRTR-Q\.}V@ab!Ք^)Q$c|rppppp|\q5Q#iA$Ib8ƽ_SIrLI8@c( O?ATP4 (Z4hGEq;988888Qǣhq(ijWJY=E4s5'gE Y#I- :!q|>?J>@Aʹ41(pxFSRP ((pBIR[+/h8>DBi+mNKJHJ Hh qEN&1L <O|رc'-˗SLH$lo0Qdر 7?zzzUia/ec׳SkCݿ%x+b-ӟ?xl,ڨZN9Z\ @I`R>Vˣ< i0 k^ۈkkkccc??2u 0ၿ,--í5:t۷oppD"YnZSoaad#$ɩwBBB<==O:Ŭ9sÇ[0<  q x1Jhwͨ(&L_@fffIA(jݺuPPPnnuЦnݺ۷oڵk=î]%N<)Pz%[[[bŊ[4+W>{ ;`<{{3gδ`x4PMԩظqX,>p@^Z0Fz<s8wި^yRڬ/fNȮ#}||x($,ycEXXXPPA"ܹsӧOiiw}׺ucǎ7nɺ +VqUV[lٷө?d7Peccr͛7GEEuZd>bŊ3fL>}РA?Caa!VTTp6mڤǣ.]jaa1vK.s ?߿6777$$ۛǏD"&LƎ\|? •+W饤DDDd2???@ءΟ?_X~}hh(l޼:t_N:>|v9>E(h)Gca@4xTO>+((pʟ_s8yǏ/_}-'G߿)))EM8P$mٲ;6l߾}VVV*>}ѣҥK={s玍 $HJJ={69sp71{ M鷵_y]9MC퇺;LF ؛/8!'!0"^a; &ِ¨(_"CG8ϯȿwy˯[RSٗHױKS7jL9q{BS=SÇD )[nghe˖=z(((hܸq-Zl?```wR++ۣC 4CBBƌ3nܸEx{{۷o֬Y*78n8Dݻ3L>m Xn;̘1#&&f۶m</''ޞ9Jzz={9rCb͛)q}#L<*d>߷o߱cSU%+WN(Bu$IKySqԾ (:L)s{O˸}f>=^{fsz><1#Vlwn%LLev@4" M =8accc Ą)J >}:Ϸsr2FڴV( $IemD]]tܹs3gΔ|+\.@&qQTttB`S%cZZZv999YPﮪ*Tʾԕ7a ._*++IdJ쓒Ξ=~H"8>r 111h pmgϞ͘1G'N\v-zf4iҁ|||.]m6H$gttɓ'V\Nekkۭ[7333f зo_'AFFFÕ/~0P[C?ڛ؋5Z0Dc:ƞ={<,f쾽wf>V}{RR.$^cؓaaWK{ZL-Jͯj?qc/^,c_iI[#s.]pbOq_7*=轣RtǏ1dȐsϙ3ήs·?{ݻwO>}$;t˗/yfԨQVVZVVzi===}}}\ҦMkk 6;88}޼yL+gvt񩇢(BQ___QQQ NQ\I݈ioӭC#/Nŝd3DDI)SVhf' Q)ҋ#LۃL?yԝƺW/Hd4 ƅ8bx$ku6|ժULC =5\% Bn.HsB9vիWd<|ٵkY:lzUQӗe?YpJMJ)y#qƧ1J-!*s=_@ߡ]~{ۋ/LTN2痢 c7Z ˗5{J}lɩ~|>y_\SM< ykɄϬR ĉsaf1ΞuMA "\F(@@4rΤqkoSw>2 zвȠOBLhT+hh RLA9k{9m\q#S>&H@'"O E-I\FA( -X㣄( B 4b4+h  B# $@IMAOIu񺷞s|PSJ~_FQ$Ab$ H&y8Nٷ3r'QI)C4**6dJήyϹiPBЂIk֬! _Jp8M8E;q4o98> zT\:\J=-ѮIl2y>cJi-5FC4x/W|+* |w(Ϲs444V\O??CC((%)) W`EZL[:=Q?{T+g|]loؓ8iؿhAȂ">>~b2c:v74nSL:Y8m}XS6ZPPb`T!E 'Rtҥj„ r(//gKNԠ"NyE3},_a'9~xUU{͛7t}ǎ.\P#rQMֶoߎؘ nݺr:\@8S#11Bވ/:I)[:¿EIIرcn?~>g)e[ö;* ._=,,vf7 ,X>|9蚜wn߶8o=ăû v~E~Zq×shơ'TTT ̌T!ǎ+))߿6mۇ\JvZOO3f8;;o۶ }4g>7:uZlY.]P;[[m۶D'"˄ KKK5F}\=ƪF%6[V9AIII;wؽ{_|t(<ǿ"J 8FPS8ӴFfREDDX[[5ԛDFF:88?)88B,,,Ñ*Z999uuuZ5+TjdpҥK{f>|95$7n܆ bĉy !++ۣnݺCEЍ=>>-7YEUUU!!!ŵkט;8Th HD.-6?zbHRT >VE aĤnX>m},hWV%rU\( D>>..͛QQQ*[ҥL>?l]v1vڅv8y򤧧' K.ڢ+V=zUÆ KKKKKKA;gdooF/.accs Riii9lذ$BctQQKV#O>=mڴ7oޠ3/_ܹshY07Yrgvg|1n?ٛo},? T_Ο??$$?<==Ϝ9뫭}޽K.! I:::I[t)0RF9~8;wNMM=y򤊏ɓ':t())|rhh@ 79;$S<==}ʕO>zJmڴ7nk׎U&ihh###O8rxϞ=٪<pww?wt588f͚aXTT&=zlɒ%fͲqttDj׷oǧ9W_ 2xҥk׮uYYYA4v?#!;wvvv :899ckmӦʹin 'N ǎcG^ݻפ:thΝiii*&L駟V^w^[[ۖSΝ;lg.À(R6SDWfH iGcX;r9IRSS>Օ݌~zDDD۶mя={Gϧ/^ Eu53 vƍ$33 TT4{ pvvFW[ڼy >}xMM $-]9g4 hvgaaСCu^ļmV)HJJbםr\KKKCCcZZ\֘3 q#98EM[nvXL4zXպo"a=}MOOpB>}[&Mdffv̙f\nӧO=z>+ٳ 6$&&6ðgjkk@dd$ ,((`1p;v 6=śkU500PkΟ?___onnѣRLNN.**z/}*u+rssKJJ/^<`}38AK:w֔TeRסtZGɩb̘1SNǏ֮]+D"KD62їwܙ2eʦMPes!4eR^^```PPPgnn>nܸJf@/8lһwo>EQT޽wލ*Wv/;&ˇO?ds^z555VVV̋[$+++MINN8p 3ɩgϞ_|񅆆Ƒ#Gy*XW0Q[^+/iMZKI*|R#p-3 OBQ筟3D ݺukĘ1c8[6}۷ѣG7nȌٳg>}>vҥ˖-9scǾxJr̘1hv@@@iiippɓ'NuRPP`kk}IfSIIǍuƍ˗/?zUe#kk:| WN6y0eQ %|Rd.H)z)BQa0f3Q-t5%eB9& y>A*1 [:O gKE}ppp൅|%P8(0Eu}mD 88s'xR#S<9)pVF)q9T`MH0z2BW e M@Q_IRhNr}vz_j SR_l~FiܦZYcKkK iQeT00/@qRFB)h1i M 凃ajj! >}|mW^WNP,lyNC.):sr*T'NCOk1!qRJ$OS#uqЦhWRq|><\NAӢ, 뮬}I?x8- 33Yyqn;lB (ER$Q8$ihĕڔR@3988?^)ҟŌ&^z|Y7{S, ,pbOq_a:ƞ=3J2_d}kkhqpp4 BNbJ@ @c@QSZC@mg@klMw|D o2_v^>|9L?֢[ƺ>pB'4Qy-w7!0EQͣRC;98Xx9.A'CSf/=iÙn$0>jq`@h "qHZ2su';3]Qspp|<n>[=okiak.]KUC_`W刹_4/{A2)IL|պܸOߒ':X__QZ}ǻnfΒe\u:X>~K A`MSEc4ф@SIIA >=|iM֔BQEYS'~PfUWTG3rZ v0qK c\IQU; }Vɉy,_OS ꊊn~5C"aN@`>es^z@TVVjJ(6(pD0[n(88>m0 i ))PRIiwZ r9!)?9[)?צ/@1!u&M-**KIgڳ(l,bŠ"SKn.}5 YgݱWn&;ڂ}<<}T__˗/tqqapȑݻ#ݺ{˗ BUW[[/J\jգG_R={9rl\.D7nܰ{IaT*NӴl+b;wn߾}g$>xK.s ޻wo0 ~EThbbBXRi]]ǟIVKb߿wɹsZf4=wܠ̬|'|bbbbffױcGcccMkgccdOOOL& WZvŋb R‡@*ꅅ98^-$M'p#p0!64Pr)\FvIv$ڡRs>o)%P3|4Ӡ7_B"Mu̝}G]ɿvESi !Ϲ,sݦ`ho '_JwΝ;CCClҡCCCCH駟2,??۰a/BJJHH߿qpp͛WZRܭ[76P{2ɓ'ώ9rPxĉE$F=&Of͚?!daaammmllb ++#G@FFszyy͛9ɓ'HW\i]<{{{abdd4x^zm۶-00ǧcǎl ^^^K._Fңiqn ɹli?`98 XD{F j5 &f*D4_Q㝈hk99 j?>x èÇׂ*Ts9s.޽&;;(GGGCCCsM6M;w-@d2Q>|P"888XY5]l.FbbR|I]֡CggV4Cvيx"ˋjE}}Ń>>N?pWwhoYOjlL tZT-ɤr-UIL%𶖓 >x们;5ZwNwi(J' *QQQ0`rpp8R(6*5.kT񐜦a( a{ualZTIZ-a#COʱF9I?rrAR4RWG@$%NYqpppppS4nb(Ch$X#|RBPoD7\Lazi@ 1#a4">%xevg m+ ˀ0<.`]h@BR88j͛7ϝ;?8p@; &&&22rԩ׮]κ{.PwߵlttX,N_sss@۝ ZgѢEyyy͛ѳgϖH$ڹ^WWP(rss:zjwܖi8..n۶mMɓ'_qp $8p P#5CayxYz9Phaa߽{wMTznݺ9s?>v&wΝڵ322zqTT2Ҳw ֳZuI711i[[[K.dLi__~tpph✶9Eݼy .R*6lXtiǎ80v&%88(p}]# `0\W@"z<8~e=lڴ)7nh IPoɰ{0~ee%{z3gz 6mZvv6{hѢFCx=н{={:--ml˗_~9{>}ZP^&L0LFFƂ 577ݻw```@@뾕ɓ'ҥKFFFVZARmڴ366vƌ*A\vsjZ4?vڅ j'$~#GPJ:p˗Ν;oߞ$QFd q`hU<h6qrr;w.9oݗex!w }ӅBޤ… 5$++K[5.\0$$Dߟyʕ[6tbAAB|kS 555B; HN8Z644p.# 'Ol`` 1 344$Iܜ$k۷ɓ.]"cǎ*J,&&&틍l8qb֭jZ;"tDDDNra<<<4VZBT:u߿~Ϟ=8@YYم LMM ٳVPܺu˷o vچ ی MJ5dȐFWWW''A"@]]݅ u_/&LϷ[vI^88R&S2 D8N3p ชf6,:::55U"6˼tRaaaP>?g+VL׳gϞ={MBBBnݺoܸqFVP?))oСClByyy۷o9sfDDĄ ؽK$$$|7l ǫgcccׯ_?zZ733VWWO0!''j-Զ IDATool2L}}}~g...nnn4MoܸĉƬwJ5vvj ?XYYyĉ-[LVKI&d/ja棏>:w\qqH$222lhh(//wss355ܹs~WJj"0 +((`fܸa166 Ś RԩS&MH$˖-;x𠯯i\]]_846WU8x<Ćuf0400 E|~H" mz|| ,2l0ygddYd2YTTԬY233@3l2SD=zˏ?(=zvڹs';+]d@ ۰asNNNU_M̊WBXX؊+Yr 8g,4Mo߾=...&& h046 a!Ծ}:™3gj<}4))رcњP!O>-//7o?~J[䏋wh׮]UUI>}5 M@41I`ѣ[ŅՎڌ?̙3M{N4i߾})3glիW^΢iyyycƌ122RdW_hrqqS{رxGPտ_~x|||PPPk׮iTɓ'|XaÆ7j<1b :*tԉJ6nܸ، RX[[=,v"1R<$I ,i޽y|a̲OZXXYo߾mmmmjj]%cQy ibR(4 R6b/0;PT|>wuܸqں344b۶mP(222jPG2ܹs…¦Mv7nh[~mii)j_ B ,[lӦM*ٳgo۶|ga'k׮2ޭ4bllRV v~%ux 22O>ڹ`mm-r޽{?dݻwMMM_seee6wMݻ1 ;yd.]R Ri4?Z/IOOlݺǧo߾#6pf { p0`T$q OMMMG1av4##E'mNJ>|IwRYRR">v-[L.SǾGFF^|y…Ǐpss={3g~ X,NKKk{=&ogggP=`v 8O?Ž888'~:z Y1* FfHHDcƍ5@XSttt^9={ӧ_)SH$>}9swFFF;vXdɓ'ܹs7n_re`` |7nfΜcǎ6˼yΘ1رc<oȐ!MVRRR;Jos v^! %TN P#BF~VB U*~5M[!6Mqh&UZɢ(JsuҊH,My0M$a-tA89888^/^d᱾Vnݺu&eW^]SSsaBIJcƌy&NJJtRTTT|||TT_R+WILLLs-a„ iQCUJDr9Om.*Gkt… ;w(++#bǎ_|.[YY988=zt̘1ܹi-++='H ߣG_R5k}t]tٲe1 CM6m͚5VZp={ٖ1 .))b98iVmZmMi+"M.\X~oֽ{;={ pajM1&}̋2@ZGR#.wkϊ͋ 8֭tVY;V8\Ͻ-Ҿ,׏ShhhUUU~~~UUmzzzMMСCutt:t0h ???[[[???+**>c##˗/1cƍ7KQ葢(ِy-|.cO1hXZIsa޽|+//gZ0 `lC4MB 44;Bħ 5e ^#CS] ;GEg_x`w>:h'NBp簥Ö jE|~;z/ jZ}~ϟzm O *?p@ {niT5 5l/屙?t=:tЕ+WFG-^QS,==V^^~Eggg\STvڵÇ744hr#URV*o6I~m 'O={ٳ$` @q\pF`{`gzeb A]`ũOSw~ $1d΀98"*-0Kk#FN9AͲ:Ϝ뛓ɾ#7`´ИP}oDbĬv=Fo88;Ξ=۳gǏ~7{^PPz)߶mۮ]H/,,IMXlKkg 5;{{zxx jjjB!8~==,LVUU*ׯY*++5 Ǐ/_i6Uӧ>|xĉ`nn>`EGG?A0@8C*%C@IzmMdCU}sw~5窀|{Q73su'S>zMԚ#F@xbxtvGaM;! Nj?Ԗ r+9WTձW~e+`8^DbDqt%>0555>>~ء> ZV/i5h5S #0^#N0TooW;!")"s PGVBV181;?wg+jg ۬OT 4CsU"N7n͛7v 'Odc=}T%_q}'lnBBBNN=##ё PjժEuЁ-PCUUUvv=ŋ3{lL֒HSN533={L6b)!a8!hhBk9ɡ;;._D| 6rvd.btvģRhxyt; `B841FC<#0zOWVVΜ9s׮]MF;vuegg6]wC< O%?'h0Pn3Wv111NNNsҷo_M@K.ig=zTվ}WBX4A1 6n8n8MQFAH$'NDDD)jP;Yddd ihT=hhOjUxiPWS/qm! 1G V8ÀRӍ2ONMMH$AAA jR ))=Ӝ+W.Yy}$IHH_122ZѣGvK.511IHH`Oǫgcccׯ_?zuC`aEV'GǗ(e>~nI.]w޶uCH Q|*%ϧ ɿ?cܹWI]t 6rgoYW$ITUVŻy '==(j۶mk>x )D3JM LO)h%TjݝuIDFFG;WT~W$///<<\{B nݒkMKKcL& wrC^P έ[h spppphqRcW29Y/'$RR"%| JY d.\P*3gdKҪ*GG.3A$$Ip0դ RPPp޽SNegggggGDD?|0++kϞ=UBaΝkkkR)rmOOOcc㄄:𰱱prrVVVA޿LJU@u^^Յ -,,RSS֮]˖,,,.))uVFFƑ#G222  E=ڵkx̤RiBBB:::))) ׮]{c9vdNirppt!--tĉ:::ɷO69/%%%lte4ii޽[ꨬ,;;";;;77Wgi``#\䲾>33C7oތmhh`'O|ĉaÆ%۷oNLLҧOB󳳳޽}mmm%N.]0 H$ϟwppٳaT,\Gb81NrppDDDǨLLL.]foo#Gobnnk׮icbb.\PO>𰲲֭[tww 6h㪪$I\"k077xǎ_}UDDĦM4]|yu]]Çsrr\]]%MLL BDff#0Fy  y110 G ^^988:P(mӧgff0>3f aӧO׎ \YYYRR"Hw.9s+W|qK999&$I!+(p”)SN>}ԩR(++رcjH$D2Դ{]vo v*V ::233qOMMݱcT*422wF}? )ɪ69^-lBٌ96---566ǧO666l?F,|A]]q 1c^;wwwueeeiiСC|ݻwo߾=nܸ]gggcW_DÇgCsslsss"J:S?qP( V(ݺuqsscg>EEE ܹsGcC B3 b]"`8Јfh h RB_!w?Ϩ`afh@0p C ! ۭ;{イ ?~IH$>|xf-QYY999˗/gl￿Lwmv>ӝb7"6ӝ111NNNsgQT .d WdMsi IDATN;wtIrU`ȑ?RѣGjÆ [|ѣG5)۷z*eӦM/, eee7n7nQ^3~D"9qDHHHDD&h֞S7Z `fSSS\$w噙nzѐ!CN4I<Νܹ˗)СYWw$W\駟***qqq)\]l߾e HKK.],Zh2gϞsYt{4W(ÇI)akl@JVΝ;kg=z4==Ʀy^zmnܸ0`ٳgǍm68|`` k̽|:i^^^iii;wɓGn?88ԩS 5j̙3 )..̙{n5ҡC&%%inwswwݻ73,,LJٷoߠA 33`߾}VVVE8qb|||\\\~;P( Cuuu=ua$?ݻrF9vX5M88888@sFEB !aA R|>ڵq'|VVV۷ )Sܹy ݻwOJJb hX~^tգWXaǏO_W@@@JJJY_榧zF$U*ժUf B0a¡C^iӻw﮹eGgͯS7N  G9YYY֭J[lYpp0[~[f ZTTuF-hyw>k֬-[$IغuH$Zn O>wם8 D*f y44xtgK0 a\`W;988qp YNahvhg#fϰ a$C g( u4$ O?| I@jf888888LpVw28 E3j ihhk)W,7IH$-IZ !$pÇokkk[oINNn˚=txK6$Cs4C(,,lR7]JKKgG؛1f/ ^ըYRRRJAM͹{.M?gS[[+Zy/?(_HLLs+=MNNZ.,,ФC @3J QA#\dr GGrr4K Xs!BU(--̬ 344dlll(}vuu|ɓ'y<ލ7C666bxŊC4X]]]XXxi@pҥΝ;feeeeeeEEENNNlż]vݺuc۷ܰa,;w q|ٲe&&&lz+iiiX,.//}.X}b͛'Npuuvww?vXaaaeeeAAj~m9'NꜜB?:FÇOϜ|PIDGKmWbIJVVlmmًF_.5JOO/>>~ڵ2ʪ@CCH$vrrMNNVTRveeޣG 8]ta%i;67===11},2 222?^UU5p__߉'jOў BgϞի>v8qZ,Q;w<䲲2 I?~z.\ڳgO;;;]}Jv틈9r|STTT```mMؼyWV?ʫW>|811Xv駟>}:88onRO>swwҥ˨Qr!m۶ggg4 g',-- RD"yW_}5{lso049HnaXBBB0={:>//O$]rgϞпʚ>iLի$I$4dkk;ƍ޾SL0`$$$Gttt;9>bɘ1tiӜΟUio4vZ]]]P(zu62: ;wNII޽o߾{Y[[KҌ >_YY{]6oK\.ӧ/N@G]t)//MMMDGttt-,,***RiEEߺu+<~8$$A__?88٨5MMHffٲe[J|}} ?~ܫW4蹁z9sTee'OeAծ]#F5L&cI+**؋F0RTRkӧ [Gg``khhN<<<<==LLL<== }||ڵk7`!'' l߾}}}BsQ*>>>>>>ެܹguuٳ/^lٲz7orHd630@Ϧ}C!07hEm gϞ e_788Z'%%ʪ|ر 8::;%%?vvvuVPP_|ѵkׂ%KӳW^4 `bb3aÇW^9rĉ'թS'===[[&VK:εO#6UƣGW?;,kgfvH^еhXcXcKQEAAD{gxo7wsy||vN9sf8gsa{nI޽{' kkkXO]fzW6|p'* )GKK %N8p 1l0~}Yƻ}vPPPmmm{jffR{YwҥK zճgOCCC//j~-AV]PuuӧOJKKSSSMLLuDGGWCCcŊcvM$ 8\`F34BH.3v' ,66VꊊTqu!KKK\nii9tP[[[ww3f899ןϟo``.JX"˥RiYYVVV&&&GZ[[GGG|IښLLLtRRRq ++;wq5kkjr`絶qFޣG777777O><~O3`3PGiϟ?x` ;wq%i*oرc啔7xzzv0""P2f̘iӦ!^h"SSS---ww/}xOVVVdd$TJKKaJ`J \ Ba`|ҿ~hD4`> >ꫯZZZO~!b;v^~|x_~>۷o_z]hh̙vZ;vYXX,\p…gΜٷoB( `˖-~:BСČ˗f+hll\nݍ7455RͫV 3008toNjq0ijjvĉCBBlmmB`遜;,!Q\\6jԨXBA8%޸qCMM˗6lPSSc;wS25֭[YYق KIIdw"HD@IR'-S(6ǏD0?!T\B fPɕ37Z͝1cl3j( w!oooA&&&0^N8>AŹڞ:u 1c$''KRٳ'M}q|RUPuȑɓ'3%YYY01Q ,$I._!А ׯ_BBB(''gРA 3tҥhРӧO8qf͚eaa~ƍl)o.<ߖ/_Ξ={׮]_PP?gwl C4!x;aXaa@ h466޸q͛79s lĉe=sΝ;wn[[_~yKٳ{aaaoq|ɒ%c!l9畖l޼%w//^HOO "bĉux'훛g_c&xha!Í/ {e%8wܤI:|Jx"cN:޽{Ǐ#nܸѣG~Ń ۧ>: y˖-?#]6oBNOO7o,±!I2 q oooTH xٮ]`6''?((m:tPѣGÇ#.]4eʔYf޽̙36H_JCCϼye<66vݺuSRRDspppp8!BD'BF80t/\]]gΜxpM;;;&3Ð!C>wy𡅅|r&BhΝ355 [f ???ʕ+Ǐׯߋ/wBŋfm8qe|}} R!~ 8I# [ IDATa4"hDP)8FbM ɻw4:rŋۗ?{= <855 s>TrB={v=|]nR( c1ʼn⊊CN:A,+!IѣL)UXXXccxGϠIT 3! d4MCc{TYPՙ!B5??}{S44409n`AI$ JsrrBLP#9orrR M &AW*HI}C;lXS?Vg($''+Eb&P^^sU :L* t#ryWVii !"QB4# >Q[[kee5iҤYfAmRR9_]]^A TZWWtKH”|ggvU؝a\. ڵk׷~g17ᅡ0sƾܱcݻwmmm/].B\rNcvGݻw/>>ڵknzQyy9䘅<{g ֲ߿Հ555O> %(m۶{>|8::ÇJB?~<;;>d2&$!$!޽{w5JnBOAAAY&ڵ-::R9rvTQü<ՃLw%&&w8bqNNNnncrrr=ZTTt9&G D={իWIIIPz\O>%I|***bbb~֭[4OG{˗i dGLB3gB]kk+;j.::zÆ qqqwkw'OTnjjb6bbbn޼"K_tt-[?jժ_tT<׮]{urrgbcc###/\{u+ׯ_>}#rrr ]__IB2MScA4M8Dzo>xܘ[OOz 1: /_`&\`zʔ)֭[мtBhذa>>>ǏӧOHH-ݻ5j6m+d||0JUUUs #P  ={f Tl^xvh-P]]݈X)0,!!ʕ+~iaaaLLL}}ѣ۷olllNNN}}}uuuuuAD={@$gϞqƉ'> X\SSciiiccӦMۼyv\|y<|Mmmmvvc׮]9rdJJʎ;0 &I722*((7n$h LJ r…;v`ֽ{wP|&&ka@+--x۶mHNNѰ0#"":3'O@~OOO@p/e?IH355mL԰,&&&_~ԩSikk'fffڎOfgeS\\lnnaB(&%%<==! o*֤H 3###---@vvvvvv+BŗHiB&IDhc4B()u̜9QPSSx䉚fuu5, ggg;wn  #g@΂q%媫3 ~O8EuV__^UUUSScPqaKFTWW3JSRRΝ/rrrRSSՙdCuuuYYY555 ֭VTTzyyd2---H j6r 38+%oB"H3EEEA\z/Yʪ*;;;??]v9::>} ''7o޸wڵ>333;;;++KGG;wi&;;zӦM[lQWWg<$ ԰_]gyz @Lbdd^ɓSNի-//Ɂg$B<3gMIIIRRR=$ Q3G{P(urr߿?MVPRRb2x`'''OA|>VsU<ƺfSS3f#UTR5]I:aEcB@L#DN(_'h^*:d2HA@bJ2| gǏW$I2/8 _; 1K.MLLLKKѣ #O2cƌvj4P566z|{{l߾#vx[[ے/^謆32eʓ'Oڳr劫+3f̀+W[YYT]]-A !m6??;wnذaϞ= Pgⶶ6sss%0,!OBH @ÇnݺU<힞sb2*C;Do]I\A!qOPL8!)Qԡy撒&,B^`*,(lֶ0fgg׷o_szzz`]bbb"Mֽ{pMM͊ɓ'XQB1}ǫx#G.YDKKkSNٳg[[O?7kgmm|L̄H7o؞{Q `<}t=tի{Fb\nݺuҥ%Kݻ~ocuf[ⶶ}3R#G!IףGH${ BG{͕H$$I^r*+V]hllT(i/..޽1ꫯbcc`?$,=JhD 5m!'HH <S l9>^:Z[[jii|~ّiWWWڸ{STTT@QTjj*;BIҔ+JezzzL.&@ŋ111uuuGS0fSUUTF,8.ɮ]tҐ;wC Ԕ0~kX]]l֡ O>ҲgϞ7n0M"DYǏ'I}ڢΝ;WSSs…+VΞ=3B 00Sg$EEEL5,B(77СC&Mz1AW\D#I( Fx|||߾} K.͟??""Ҩ߬C:|*`&11իW7nذaìYi722ͅr{KgpbӧOgfޣ<5.K\&ACB#aɏ7:㣧3ӧSUYY9rHP(dO^tbLL tZ΢k׮}S- .t( .ӦMcgZ۷ѣGBГ͜9S]]=** >Xd4`/^,Y 3f;w.%%ke$/^7߼K !5Cgb&!555GGG8QyyyFF&]tfW$1x>}8q"==]*󳳳ѕAQ&ׯa wkkΝ VT.]{T)((hjjϟxO>3qtT 80..NSSs…]v]||;|a366x1'߻d229|\ eD|QIFIJAA!T*@988888>&x$Ep 4c<\8m9888888x$EapģqW(( GSФ)ho(OE#F4A "ix8A1ssppppp|T4Q0h Q(Fn5jjjkkkk ֋f9f4h=}CÇud%]\\t2iҤw^recc#pmll\xq׮]mll \2{ >Tn-CgVM*,,L 쏢N˗o߾充lIwIbbbA臨JC ; a>7{CligvX,iii8W%ͥBajl?V*dHiibef% ݼ>9]0aiERZy&$"""߿v .}gΜy͛7PYYɓ'B?#r1.ՁG*uC臨֔8sLff&Bh } .nJJʙ3g`KhOAAAdddFFFyyQw5%;yf6ohhضm[iii\fꖁTBpǎP rrr?yf8ړ'OIH$$33"""@+!:Gcgp񄄄˗/3;zɓJY^~H7440Oa|.\E%׮] eݻw/22+W;iB0JlD~~~ZZZ ёaB[ϲQRR рcǞ9sZԩS|ҥKNdwB7QyѣG ݻ3qƆ&cիWꖇAL>[H$De˖8(C;99Ar|kkk;Ϥ(***((HMMݹsgvvvjj.\/d2YPP`ޡC@',,I 0@$u0 5 R ڶ 06**J.+ ]]]]]]ȨE*jkkC:EQEZll?n޼{UTTtz"PS;wBuvD"2Ƀckk+<<>>fffuLMM===3226m<#IQXUUUcL@ xh$3<<eǍ䤥hooO1N;F4008 4M``W\$Ə?zh> !gϞ/RMM)]jq_~ժU{ QPdlݻ$fffNNNMMMuuuNCtΜ9_~ѣGW^}E{e2Hjnn ڶm6l_}nݺ 4EGGGSSѱw3gd+...FFFSN}Uگ>|8,,,55uc;IؘlٲMLL___?d YB斘cccO<T]]啙 jkwa͟?_+FS2 zӧOٳLuB>Ϟ۵kWBBB@@)_~%BL椤$fVV}||Bƍc~j?Stז-[Ƃi&JCCCWZZ駟ѣ3g422*//WWW(ѣ> h?&--˫vС"}ݐQ _q| ϟG9888;;Fvvvqq1š&(DVJ 7&$$'$$@Z$wܹu}͙3gʕ* so޼5\ޯ_v.ߧmUTR*hkk'&&@~ǂ[nVWW744A7)F4!Lx͊2Ǐ;vYr 4}ϟ3SO@jjOLL|y\\O?T]]=o޼ݻw  ӧO7o[*11, eoo[PM(޺u tܽ{> V$?~㢢aÆ~:!!A&=zٳzzzyyyUUU.3֭(JGG 6ڹs?O}҆ ҳg+ vG0~x/^޽{wڵ[lB=zVmmm!81N$3jky3?ƨ1O 2C&*ZUlkk5TLᡩ0lhkk2ZZZNNN ,`L%PTTT޽}ZnnŋO8q}//%K-ˠޞ7`Er###>}J kP?~ IDAT}|eG&Nl2___vׯ?ѣG7nխ;Jnzxx6lᦦ9޼yӥK<ugj@nlmmBСC$I:88`1cFIIIIIÇۯ8>mڴOڵkGQXX󝝝?)44t}.\P^^޵kWP[+((7o^lll[[[{5ː]tILL<|||Vckڬݽptt~zttvLeSCCCSSqjdxm$ރ7۷;O>iiiVVVE 8[nJ+j8]:t"TI__=<< >OӴ9{Ⅹ)3a2oGGGfyxҤI`vPz?-7jԨ~ݿW^"殮ӦMKOOsuUb1jjj޽[8p!JAssQfffCCC.] "~QF򖖖3}Xbiqq1S{:T ={W_}cddpiѣG:f̘*&HLq\*¬/aJ. 4~.]yPr(qcii s*3f ̔%!!\f߿ҥK~-P*_ T :D"o{{{__ߙ3gB9#fҞ544|uuE]F?+]UxؓNNNwev/..}mqq1)B1H%Z30sVVV&M5kt"III BM0aʔ)#FNHH駟:;Nsss]]!zM6o/3a&?OXXضmBCCy}:vX&$JZXXxzz{[n_ #N[[[BB¼yf͚rJSSS$yh$h!ip9N߹o߾}K-ðݻw޽[UUUvvvE :RZ=pŒ3೒<ӦM?`% Q[__Z[[ufhhسgGAO.c\ZYY-Z&M{qƎ /͛ øbXkhh$Dt׮]###?3}}}==UTT466.X6#IrA{OjrVcc atq|ƍЪ0x3W{֭@~U1c9rsss]]]2{" bw z㴵ákgΜQ2:+++nZSSs5>/H`5j^xNDQ\F vȱ566OԙZEEȑ#?߼y3//aZZZp.g&޽{...JTRidW^^ÇKRkW;PݰaCkk+>B9rȐ!gJKK s=崂F8p$H)(h'A0"sN Aw˗g޵kNnnnAA?+p7NE aAQPh )_&%;[Q777Cׂ?q$WX'44m4݆Bϖo i)iDQ4B8oxj}  B4(D#0^ ܜ-ǿcGh0F"HFZ xjd88>U$~G؊RRR”4551UKt#"TZZZ[[˔$H$\,j`dLikl&L2@K{:0a 7h/{UVV©ry 7sDӈ(#Q8P3"hHch˗/1蓦ipH$q[lqppHKK+///))9uTKJJ `W={jiiyEF߹sD"ٺugiiU^^ioo!6n8lذOOOz'O6lB(>>#6lؠsNCCබ6GB m޼y„  XQQ͛*"+##رcp={?zhƍ111VVVNw36xh׮˕;4iTTԜ9sǎ 1L%ȀT|2,99pҥ dqԳ9bĈ$ vgA\paذa۷oߴivWvvvZZZee%EQuر9xQ8EQ4!ax=Eiq9r|-]tܹOfgzAeeөSN:~_+++H&H | ={^|ɩ866^GGO>g޸qĉ?NX,j-//)((%z-BEYZZD0HTSSÞ KJJ /vSSDgeeYZZ:ʕ+^^^iii۶mJ\YYׯgy37 ):#;+ooCʤ8;;655]rۛ^8WWWuu >onn:X$""חiUc$=z#44t666ՇGC4A8McaCbWM \@P8@ cCPhkkslx<{{{P]l/HB$#gll\SS6|pfIMM8p a. {衫;qĘLtUXq\OO/!!"!!A"4]___YYYXXȬw o6˗/E"699R32LGG'88XGGG(_~!TRRS,bccB5##ҥKRUVVfddDEE)-K*DDDs_i"Ec#)&A!߇iv-[u.\x;T}})ST'z~W\.Yhs23222l=zIP?NNNǎcfA`hkk?\CC#33@GG ={>۷橩fbbQii)sL֯__O:5i̙3GH[[x{YYի;SMګW/eDf_G8F9_D"xND"ѨQ >aEEE4MWVVJ$֜ .،1-z[nd:P#9ThE#5)6OaFֱy?p#.''^<ل2MMM#""444˗/3[6662D;BeJB 666o߾%`S3IݹuV󅅅R.O<Ϟ={ `Μ9ŽĘ8н$I333sssf-iڵW\ڵkDD?uTLƬl)TNt0@Vzرyyy׋b ôG8lذ 33s2w} қ_}D"Νۺu+ !^^^rl֞={NSS='Np--r9ufNrWaT(\؝N'Ottty<^vvvRRR{9)))122rqqqqqinn{fz~ǽN ɷMLLfL}vPPݚhhR JWqN}^zd+WdP6k֬a' {{{\.2eX,~ٳAuԨQEEEbxK.1[n񺺺gĈgϞe=x̌)9z(BСC[p!N6m׮]]NϗH$"DXXnϟ9sf```aa-/Y455mٲu֭}Pq]va^:,j׮]~~~eeeرc啔Ċ &LeK.xkFEEeddhhhdeeijjAve:fA`fddT&<#**[l!Ir޼yǎۼy3?ҥKSN1Pnn˗/<<<̲444mhK,A͛7Otu |w} /~$S*WqEIas7E/_^__/J [Ĉ$I2")))ƷH$tgg~iѢE ޘ ijjbKt\.'Iq}}}&5Njۀ#pΠӳL{qBߟ~y83dikk+?ڵkWF(Cf͚bM! ǩhF͛7wX??})zxx쳙3gСC . ;Kl۶k׮=rү*(\d;w\l|}}[n͘1cƍ3g\f滜bb"B| KOOH$jjj{qz޽>M\\ĉ-[뫺!ģ)Q44FO"@4z78BLTD"WZdΝqǎdɒ+V03#2ٳg_8tL6n߾.YfԩSӧϟ8zhmmAf̘  rKKf qiӦ1gE!$ ?Lb 8I#> 6\Hi9( #hP]wܹs7o3fL۷ãիWqƱxWf!dnݺl &'eee[l9x?u˗/gggWl `l٧{ꕁ9[R)= ۶m[hhɓ;+`eR#1B8cI4ͧ;'zS]]Ca_|񅍍P( 9s&|sQWW{XWki8Xj| (7Gs']C~`IDATVSSTWJmHNiiƇ" ^9"4#))Tlb~9)C]smpy88888>fpEBt "siE,# 7 K: zj{cƍJawfΜOHP_ڦM”*`Ba "x(D`OГ"(֓ "%"^첺nk!euVs{/I7N B!QUgcUtA͞(M(N9UЮFZ̩1gqL&Ō֙5LZ7gggvȔN^ouu" WUUB**Bd)+ )e.GUpzKא)x<y$3 f$i}}¼)[sQ|>uӌBF`*4FO&SSS!]HZ Dɲ<===SeEExÜG~F44-8MPSSc暝p0Y{{{A DBU=/)cTU͊)?Ⱥfvk<@ PYYD٬]e\WWws ĉ0&NQ'''GFFƙe[[[ !@*.T߼-S'eݴ ]r{Ύ sss]>h4ʲl؎<;o@e{{{xzz:444$BBEny6-jί>~>r~l0*;?+*9NB>::MRKKK<+ lViii}}}0XYYI$~CCCcccmmmFK(Z\\lll΂ֈBEf~Mh~IENDB`context-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/14/toc-2.pdf0000644000175000017500000001373114411653175027373 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 1262 >> stream xY7f WH p]*S߿'iZ vg~D!)Z[hiyx)Z -nĴ]L)X缼~Z__/_hԊZ>]GF* M:O,)+38Y#md85GQ~ǟg.b_UɭGws p?JTUC #cpnTP* k 0Y-$Qf`T~_E_ұGhU)7ɩ` R꾴'6K6P9YcUa4G;A,)SsI"~jF$L4?zY"ձY ?oH'8 n*a:4{h`7xް#yɯF;͉$Eɏ^"Et+ۛ{_A]4q'>t4Kh8\>p'- AכG8VEo<3ޝ t*osRǢ(F?sL-5I<$ 50@098|36zEU p3KdVGz.+:ЮH.O3a pgo@]KEUa p OdRÁ)00}, ?#؈ <wR [l^/p_OJ\wXA|+C*e߾b?dlj$%zלZJGTz{&8A;jpXµ:L6() 2a Ku;7|/ڤc@ߎq &AWmZ; \S8#F$!L5+AXp=1ߢʼn5L6s=#7gGF!1Ss7$&__~̼ endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-28T15:24:29+08:00foo2023-03-28T15:24:29+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:c6591c0f-491c-90a0-87ee-7583a70d20eauuid:25b2407b-428a-aaf4-0ae6-8a46220b1680 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Length 523 >> stream YKYZRI+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityYKYZRI+LMRoman10-RegularIgwp7k1tKM3klƋg1kl⋳⋈TsnnssnnsFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 13 0 obj << /Filter /FlateDecode /Length 381 >> stream xڅRMk@WL`\-Jӛʪ?~Є.Λ7oYL^Z.XZQLIEu@dȆl4 f`^584LALú^>zۇ2C:ELٙWGi oRYBV͔=hO` W#~8?kӠ=(j @$<^Vi}T ))נ. H =!d짍<9lcUt':7ōqq%ò)X7m%>x;}(]c&Kk1oFn.Zv9k_90VJ[n͌+-еax&:~a endstream endobj 3 0 obj << /First 59 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 824 >> stream xڍT]o: }oK1Ė&X"M=(p@؏)ۋ E#:!) `AAIAC "ICoq xȀǐ%⟯?oߩg (Ku=a71"O$Q1HCiDI91iKent?ey{{Gp6ߪY?V7ATM M[ٗ _ּ{tr >1UdAl /'Ca'#r鲾js /;U-*Olγoײl!\_ga "CC"A9⦪U>/ˣ6+*jZ%NYYH+6f"iH= Xt/1"[,3LJu亠co&ꧦBN2Y  x8XE}';;UTrb?HCMzZݙQ,pC ~yv:Nb44&(խܫT!s# L GrOͯzRL[|%vjvעYNZ>R+kF hWED0g\;-D[. L ߻*hMc.OI,!QZZd_/H coFA9~ks> {; {;Ja4\x/`g?aľ_Q9c:6ρΦMWr$8k"uOp] n;I- uܞgvMI7gP:K endstream endobj 17 0 obj << /ID [ <5EF9BCF5E6D5B4FB4524294AD9B77861> <5EF9BCF5E6D5B4FB4524294AD9B77861> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 64 >> stream x 0DbUMf$r1TD/T؋%:vLS  endstream endobj startxref 5811 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/0000755000175000017500000000000014613513621025740 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/tex-root.png0000644000175000017500000007301214411653175030237 0ustar hillehillePNG  IHDRִzTXtRaw profile type exifxڥYvE1pZ5~dVKl"#mN;?w)Vz)S_?y >=O0/s|}9|qs^r̟?l  E{}e[y^_aCϡ>l~;U3DC$.ȩ}OJD_>kf#B]ދX&ChZKۨX/?]#]77ygftu[d2;~õ{ܱ=EKx~g;p.8ݟpZ!ŲlA'( fEY- |]b ȁW D LdC d#A[L6@6j44jx>`F&r,tX#Cd54r)\r-c<8{pfif7ˬ>Ǣ|VZyUW[}m;nc]w}tɧzg\JFwͷzw|f~ k5{2gx֏KIVHxU (hS| )2lL2+g;(cd0`9{eTWys57o3町?y.k[4PA&cG 1cQv(D B[5]9y;-kunz]Jn5Dνs|;k,ݷާyJ,?z:/e VlѕgNVMj-u7s\.*OLtxn;b[{x]g!knq!Ks{x't-9T-Vdd5ug8 _q[%Wxn/0mzY: 卐D͹JYP# aB)WRm:?B#g:\%.hjl:௎**؏JePg*[#]_)K*!u0VA}|u RV&dgs^Tl:qEqǁ gA{N~~OsM#_ussshK&R4qa`jռ.v|,+ݪQ\MpI))D臖eCh9iN FYǒ U:kɵGmq[M** [aޏ둃|V^Ѐ=,S>3f~ʷ=+οLkt|o#i 1]4PC"ebvʃm0ؤЋA{xp@ 3Q]{vQ(!.:T{֣P?=VnE8Gjs]rXDHÈh^m ds݇+egs.K=It)'>Xtky,A4\(%SQ=,*P4 /@P4FDOI &XPi]t 5'et N]u ⵁ(:.Xc%7t 6C6\*JeA)]I Nn׳x WM;s]+>t, 0[Q EQO_2JDeiT40e_@} LgYԎa%\x2گD7yuv+k"-(3LS82 ˁ|1=P9V\f>r.[C#یC({!><}F!sH ©}og 咛h{8u}q/gPA,d0?GoCey@DTꈬͥ(tGBy2E6K`*R =z@6 lQ);yAOΰBъj9B̍nz}7UrG)3% bL-=mjQ50:ǺxhE 6mAR31@2CНGsQ;G@ /7ye+Og뽟NuG׻ ]tX#i>6}2-@:@TǴɭ -=Kl\KS0%nY#WSzZp*HE8K4Ż}jGԾBH,@{V$ҩўxYJGv{0y-W &=4gλ-4\ir~]bDi> }"CiH>TU& iH r勨"E1hsP#cm4'~<#\E{VpD;(Y;p@j$ 1 $%?G Yq WazXDm7TBЈ~-lo[JD\ Ny5|{ x,HԈ@}egZuj&ϡ68CQ[e6P" -R(zU:Ry0yy-2K/X,97Њb?͖\ V:.EY8 J҆:57BVzFq9TQ|F6D-fX 8T cd%.X"NK!ڗ7 C^@,S)MSّB@,g TA!,(:tgC 4?_ZDd?@2qRFuS$!l+:,#3SWm[ŰdmBhi).amT6̺p{4 f^4v`L#]>u+T)]y[&f68fsJzAf XdOdz:nr$gh{> L>G8& $j@J@DTֶY}V9CR|:X<>;p Vx}nn{*`΍ϩ7Ѐ9p~NebtSV_@$ɛ#;&i01~-8k>D,JA@4rfΫjoॺK)݊=WgJ~NhLr-~v-'bwZ@R{} 3' .'zjT$N?7Q GnZB[cMDmP^GHHY2M:\H#F^{-J7.sGM[/>vP=MmDKYc) 綈 S?T\:Y3m@C:p#Dp!uxYv!U,^=8ETWuU4)d>9쫾XA֗;>2 l>F$IA_>cF>9QAK_"*Jkͧb& xP:6u܃dp%5z(Ya0@|k+q2BSn:UtN O;DK 0q"eKx \&*TeYTQְ&diE_|P]. WIhE,aN?2A 'Jfb~{o=o[\/GJ)9@ R AKr믳 2S?Y;Q\bQiTk?̅(_yvGiCCPICC profilex}=H@_["- v):Yq*BZu0 4$).kŪ "%/)=Ff8jN&lnU"~ŰL}NS_.γ9JdO eaoOoZ:}+I 9A$~~12yP`YPcQ?yZ= Cyme4HbK!@F eT`!NF4' j# bKGD pHYsttfxtIME /I;, IDATx{x},oҮ `r đC*i Tvwb8URH=U [b_4IגQ.!6dhmnƻZlcK]3?f/Wʺzs93sy|E4 AAɐ,A!$ ȉ'$AD<BzYF2Aa"  xAAă  "AA  AA  xAAă  "AA  AA%/s/O ў3=g/~y%gT>;wur py،ҐD8< ONKMSPUMUд T|o}6czҥ}vm;w.0(r7300#<(TUUNX#|S#"ҧ|+Itexx~Z_ᐗ@^^޴ ih.$TMaĿ߲\Mo*zDZǵt\ٵo'].-iwލaٲe1yfgϢi֭[q8up8b(=zM8p?pq&"//??&?007LUUUEZ7F9 L3҂BL"''[nvqÕW^ɝw wɕW^9BO?+ti\釋CdKyv3o,,\K y'/Zw}tMxtz'vs=ܹscAKkȞF!22Ž&ۘ޽;Z1E7-AFFj޽޽;KGqq1oǏGjRXX8a uDZ@ #Qa$Hx(pP{,Ͻ;k׮g 5:p~wuW3p}پ};>l\rYL&S… Yp!IY~iV\[ ʕ+y~\s s}}}cn<Ȳe˸CyzdӦM1i׸m6}Q>K/aZC'~zT- xټy=\m4Bo5v3l|.֮]˕W^ɭ믿۹ꪫBܹsq8Xֈq1t{QSSWU6n܈Ixk.]̝;[5jߎ-nN:Eqq1>l|31ݷkײc}Qoi~a뮈ƶ8vwGcqq1<{sz=tҤSOΛGCCVNٻw/7n Ňk?x)y)@sss ,.0Dž fLoIΠP6%/3wܔ o^^_yw0A jPTbX7 <@N Ÿlܸ=Caa!>SNQXX[n/~ |K455Et=#=z4a>4iNvڴ}ѢE17Ѽk-|>կ()) ۽{wA~׮]K__OyD_C"A]K.СCtM X S-,>~ZjF<o1Μ9Css3ׯnkݶma…zޱ+rHp*>%x `#q-ܹsx0L1]y׀GuSO=ŭފf޽l8uѢraZMMH磱GR^^'?$M)/.!oof޽曳AMdÌF 3Dyůy%d_u͛wɢhk~62;9&2/;olI8cVm8p{_~1ϝ;Geeeĺ`cPln7K.e``g>QL3QwQ F0[o oE:&Rz̍]0.anI޽|L^?PHtEMMM =yF&MYz+)]"fv&#+'[u Eue%}^!Rg'llq,\./S1K^{mc7FML&Ξ=;j7a,Y%K\w}]6wuW'ਔdޙDbj{P\IP\ϱu֐?1/b(BHd0Qqy(;2addzJCN8}>[fMr/C(hh(Z [7)^۷{n6o_zA zϟ͢EDP Lynظq%O-d3U8"F!8|Sܑx=]oayaσ %C@A  xAAă  "AA   AA  xAAă  "AA  ,ar Ai|USAn AAD<  AA  xAAă  AAD<  AA  t Qrd0oO  AAD<  AA  zd BLup1]GAAH p >]8dJ 0{XP<*  AAD<  AA  xAA  ˜o[ q4-c3llyB pnlv/#kK'\le;_ }P%P4 h FҷoY[p<)A-~ob~n;]̿'L_ƽۢ]杮eq{dfPF𑁏LŇ__'C񑉏^];oO# Ks2+vO<|+K-%-3QY{Wj%´daEgy~_ˈ=rJDt#~E_O)J `RxA~dNݻ&A1{e"4GD%#o40;p|& ^}fghNe>N~ L&zKH ӎLW ?(톊H@cz 3+XjqwpcfV6WeAA 99s9gNr>As7o99vo./!{ aTɼ 9Mtn(JU,Câ:_GAEb>N4|v1N:Kʟ "ؽEj?hzO5},ܔkK *S) "ZƟ1MӢwdD*`M_*9~9Nh8HMq?5QcYݿ?CFb)- \vo{B|&$7!裿"} ,{{b zȾx_p._Wj:XE ,à à:E,_,%8-\vD􈘇ۢsrߖ1NZ :.|9)ڽ|ާ (ٷ \o (~boEG{1 mb.+σOdhEeFWY7J&dӃ TaƠcP$/O/3;3L8RCQeꠐ(`NZT6tiv*Tcۤ 4ݻÜ7AwRc<ءk?QĖO_{k w?՜OTfN]^!sy6{]W\cBo,}zlF7]v|x!zM ?!Zv=F*Q@SH\l_ZۆT#AA^Nx~ׄ!w?n?cw_7ۛcAomN%fOR,e'2V@z.UA 3ET_(j5c8 96aIAqd EA7l^GE ٦"PƃqO<(kM*q\l.8nu\&9vE- ķ{ؽ!#0f%InM  ^,ZTtcP UGE}lL tFj~(ŵ {\u:G $]7$ÃBJ;A%/̩TT*qRJ*vh}8e'aWvI N v/F(loRQh7gڊx{xHiOքU辳"R'Lk[<7^65N@:6]Y뿁TVh֐A0ekE~ ,g{s-l1=@@6;`."#.3Vw]9F OI-7AX+̘P/zeAwbxgo[w}y͏7O,`σq Tv`x1F"Sj2 u'\FLLFT҈m[4RRU%H ba=o7^ےUxsGA'yH6kYtĺ)( 獛 =AX1f%O&QZjhRA'+vl=mjTvܩ^UR[A { wH^NKԯ7JKe vO&C JKqӂ ba=I~ÞjpJ(8/%HRA'SyHUl3#Qb~GA{0ulQ]rIŨt =AXEϑ$j KJs'<2lEʊ I~rr~v5tSH%8g8Mă FevO1 {^T@b .qǮfzC3nx?>u߈'%E\9{33,vOL+½ Hb@jՂᎀQ5@є# ZfL:rBנ1Tp d!'wA*<l$GvO5,#vOD񐑑u7|IM+6!.4%I s`RJA,,}=ghd^**n{v/ \(vOddraA.-'\&Y@A  xAAă  "AA   AA  xAAă  xOd {t&]Uwa''!7Ko]R2J"]/  L S{~yAAă  "AA  LD4MlA!U  AAD<  AA.0qijc~D1>?~ jU EF[ L<YYdG@Qdff( A㲲2C򗇹C&MWwQ֠uNu lС I]xOv9Sk(CcGs 4@+kq$'I.0udd(v9}o~{{:4ûVO96fa .VWv̠:WfmVΝ;? b6ٽx睈Lsc{"Af'p|7mdJqL@2BUU^}y*"XN-;*5yx9ɾ-Elhs7( >4k-BV?Ymprߖ1 ΀)vTD9V-E5¶1cϛzA uGx#pæy_1vol+J=Dk|HMP-;Q*.kj(0aE<Nn]vۉ(prCФҊ-# wNM8-ElYIϛzA:qe<^z͛K 4;5o3 -/LI!=[`kR8lo{LCNc&Bx$ґ_x,[|V,K.坷d޼x9'vo|W ;+S)0Q!M[>.5l{yy/(LB4Mc<$}S IDATj*590*z/o'N¶t^A&~<^ydbO6M%ۯ8'Lc$b\<͟!/X8Ω"y;(;RClєP͚ih͓рOyA[Ë/"p*دi'K8,Gjx(O'짌p}P9 0lZ/c~^؉qǀ \C`4[:9~dr>v.eY# QYN3z?u-;;bt)vxKe``1m /3_)7^K[8RS9DNj9c8RS1GL4aiqqpOPm<ּ&8t1:QNDY;(HETS@o("mKWj xg3'k) u~{alvo]D - c#)Q(R Iñd\>ā;jB.pxd}*YY,Gviwor gy͛K;7oӾxw ^|1+V,SZw*1yhӀsJLCax 韰4pR23EE;ssXpd0)L4MES5TMp޾yr :~u}Μwӧs h#w{P5UUB_w4 /ORٳxΆ~Ȉ/bMӸpbUUw&imn&99/eyʃj'|,Ν]  t#WVa{9s<}}>}+\AvvLjRowja,+;6#5-CNW7Oa!+boڏ|G#OCww/gΜ```/EӴ4 .CC#qX8} s⊅'< 1 Z}É7TA ߏ}&{pp9煼##>Μ =13E CW#''[2[WU(dcvO9:jTة,\MؚMA h5cCy~&38#< ^OffFAG\ʔk .m|SQga|ž"mT~_)InsUR% O$nX_b\<(B^nv4~?ñ?;/7w&MfFCm]LC}[ٺ)yl䀵=?J"FgpCD 7췧8U((zK~`\g>`ߣoq;X,JVJ<~Fץm0,8uo*ŌvT@>o2nk,ۙTj6q @!0Z(g?˩q;`zƉM[G`6S~dx/.OA87aolnnSY0( IͺBw $t[%v{5gc(=v-zTYNm6l6MfaRƼ8inF9sqZ*F(vJ$.!ܹc4M.&g޼IpҗP}M0HTnoBFj (vpիQw5C΁;NO6uLJکAR/OK84y(,ȧ`N{Иyyx; 4z s ޿Moo׬`r~?CƜ4~(5;hBݣ];lhÍ `DOG6_`AŔXEeq1^@@W mͥTh4> @4`Sl62{=n,յ>8Tk1quS.G[އn @J=:VSp{Hy9(.y̼܄Av%y&ŠAFΜEdee¼ ‘ooE֒%d-kXH{7` #bJ}]u֦phsڣ</[cͧTN5 ҿxP(&:bⅬXEQxNEQnTUw=~jz.^o5ۋ]{dO ð hY05}pXoƕ55S.h7՗KM;2m:²XW*bݲ%W6zL=j|ឪ  Mz,D0v!pK .f[z=pӡcyHwS(0qA;(|tC sD62~.6! (, ksus}ېG[$1`ŕZkt`֦,nL~¬b]yoJ\۩mK}ZPwMVX-j^N9F@п''Lt.KXZTTUEQtQ0?; u{x~Tկ2<4=ɧxÓtc. ԅg+kL'n]X &WdG\h(5{p[J@PgssdV(.44v[uۤI0J8xW8x[՘ulz g|;mɕqq웫zY~yV5V\M8}(eܴS̓uϹ1 WYӹ(-YJx02:--Cۑ_xn)rx<?N4Ŀ' z˗.ϓqsGndJP募KC?mo ≯dg5袢( Xn}8|Lq<\JO;޲t< ȚẵXAa4UˆB>cAZ_`5կ¹sz_^.&n~cw9#`߾H/3._xKz'(C###<~/+Wʓa8v ~s}ypc}8yRQy3lG|00 .3}|ܩ_ c{߃608O<_M3g&xEjv/%;ExzxQ)vOC,X0 BFjXG= {hnqok=uu`X&lo¿˔^Z*vot;hw@V{"esmnDH{[|rt#.KoQcp0|LpxQFSl{]Ѩjxsx`(.ۓx7aK4Mbof'Rrܖj"B[{{R@u֦sPXj OaQ dfFR_X*h"%'%s<FMLbfxXu54_7}̌YQ~O)*ZVs6[Mڇ極`LwJS\8iPo"UHƑECKhb/⠱`𣷕w AތnWy7:ڵױn)֟@1 'q-|rñ6;EW[DU_Gc)D\^mm\ B*v/};W\i6g؞U[B7Ń(\~A][Ҍ =T{l4,.tO8c= I=ѕ=91SaF <a^#̥)4bx¸~1ƗD&JںP..KٔR!/֊A]SJq D>08î3^R'Eπ=3C:-O:P]4}zeKuq">@=y8X^/gO[c#6TP5Ea"B$}W_Mf͵əoC70o {ٹhzn n`6 vOôۅp7ڈ(68Z>&s2f#܍g%[%zl{-R\"y= &pKtAy^K޵ע]%̝7W9ߍ*nڽT\m m6lF 7yF4MAa|y(,'7wδ΋xs:V xAƇ3;3ZW  L 2=  "AA  AAD<  AAAă  "AA  AAD<  AAAă  "AA  AAD<  Ai٩lI-8)' AAASQH 0ҟ-$ xAa\DTUW h2Eĺף((oѬ6RTÑ:b5prj[*e ޵ lJ;"O-EԄwY{m<>c}O|M ,j_=?k2%##?\5׭ޢ_l؞T8kD 4~-qr.hىRqNëÍjt0.= E*4=RTB>!h WlYZ+lDV%tlJpM[և%] 0;KG~W5;rEw~y򐝕xb^:r8x8yc5vۮ]ogGFz5A8xrlؐES( -mczcWvPSqN`h ]65ec~M ܽQ3M&av>WVCM~Cw#p$fC*-izOfp'a[ #ذ&|IAvKygp=aIXͮZgeGj(RbAѬiQ wLyxM ”!ZCpve/` NcK ⋌TmI~c@wӮ qH!=PN5 "fSNjPE_*y8za:_>m<ּ#5z:[b0?r("ӯ.$'eqVO5 Si%Oā;jB.pxd}*YY,G}f!ٰIAA/bxći-dfDAiw2<? VFti^}P8FJr/)%/u8L+婰SY 5;6lwdkT8y\gF Bdə|M쉽+0M6C5KU&/_i.$A4V}pZW WLJF}7Ncjty@&v' jh+v-`b V)YmqXߊwitS~(cK8A5R3x7wKIqXX(Mn$]NwyB1%pWw1PU=ގ6F0pF[J#\Mzq-j=7Z( đ{/^Z]Q-od]+qiVS`{{BY´T(&:bⅬXEQxNEQnTUw=~jz.^o5ۋ]{DQTMBh@~} ;d. tE1]]1xܘK` 0KQgsD46Kjzwŕ@>Y5rXI?ȕb* /g۪=꡺F=qaq΀ȸ#6VACźU-"451\wddpa~?oNt2844؁Cm.54}c{8R}!/ql(^<Ƙ HR̎6:\ MJi6?N[h rMKksPX|:17qrh$+SlM}Gq%v{eAp,b>< ˖\O,JN1]W37/:YuJ޴e28`VE4 %htČ[@7]Mѳ'u: :K9_ vnKI`} 4ul2 CE`(d)VؘJƭau;< 1bRkR xxe7adx,>p9sn>"~巨_xQ8~=b'C1:֬vՃި;0C8nRTiu6f{؃ [< /8bĉ: P~9%614h KJ"qc6Gx ,v.l6lᖉ!BKiJЈ =N"xJzQ \(8D>q;|񎿚 k{144 PFp5E1])9* " zΈྛ:TNGQX|#\q1[8P17WC-A0̹< Osci CCC'?/ կ~TUl*ࡺ9Ră p1S/|%Ty2Q~T>r#?TJFB^Yqөc˒nӭ=vET4Jv:Gr~ % :&Cd 2%#1ǖ'IvYk/M<'|ku+ڴabp ֛=ÊOAN[W跷kKW.^6mQUégtr8 o޼ QǟK8bx:볯֭ʦY'N\L6>D/ϕܜ޿?'X%:cjmg]V09}q>Xo9O{kͩ+`XyX٩C^.wʻr*C-t,ޡG^ЊIzt Yөg our.Wwy[Y8]}zmuZ f[:__igOOrzCڶuGh3-wےi>3)Sּ?Ê7_=:|2j=UZ|+sl<.T{[CPm;v\뺒ϧ1rmirs& 4A 9{.{@TVw6zriT֑  f4X22UH+9a@D:BuU Y>9Q|Eכ؍KYeޚ4tVὓq)2xb?x %&L 'Qy+,WxuU?!WI ƕ1b{VLU%) ogb0*ÔN̛x+Cw =Gmʹ9M2ޝkTȈXƸɔK ckl< <8' FF|.ļ'ǖ5p݀09'KPϟӟ/JZ}׮?uؒif n(+5Q4TYk7):%֜N(Td:x/#i?->1gZg31^F<Uvx* A[f2Sؖi UU ,U8H(53}V\AkPy2 ):2+4Uپ`({N;Ú2M/*K u6STƽN ͧ<@ [Xy{ r-h{VC .2ѥIENDB`context-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/fallbacks.pdf0000644000175000017500000004614614411653175030375 0ustar hillehille%PDF-1.7 % 10 0 obj << /Filter /FlateDecode /Length 237 >> stream xڥJC1yyq&sIBP;1ҕ•`ilsR!˗0!t#hM)!8N;)*DđoȬ溆Xkɪ0XV'eWpdmN6;Z[ncY]]ZǮe Ӫ=}%#Ubf.V" V  `-H*V$R[!#ӨJ#UU\Cʥ4ő endstream endobj 13 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T20:02:29+08:00foo2023-03-17T20:02:29+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 17 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1096 >> stream x}{L[um{/s+fy/&,\Ybp-cP\x*J>~RP:Z@ 2pd&F%:b\.az8}c xԵ7]=J,lܳ/KrJ x R@Qjy4J' CJ&PUJaHH9a恰߈ yE:P|'#Ǟ>ܙso Ub:7?)/?ސ c HyH,ld rr =oQVR<K6 obFbi,3Yjk5Lz+'XF5]z'Ţm9NkE=a)aZ,l5im(/e^3]N9/Hd5sٞ5m L5vt(i{餕H4# {}BHzpWK>! u̹~OmolR uN Vy :xUԾ}VMQNچ"I "Jbvgȟy endstream endobj 18 0 obj << /Filter /FlateDecode /Length 562 >> stream xڅTn0SM6$JM]Ȧ&]wk6vG+$N6&!sy|Ֆ$ZS!MXҟ,XOSOۊ.U]Gغ/ƭeAȹډEbROϻmlu0 {^MLøiRCpgk-7\a1<7TF+5 E&e8i\]@(,E.qj~Ԕ~9`i1 ukw,pL+Gس|]I&T$3A k*Trj;r.@dx#Qn*fʟfs?kdkp @eVGҌ V;RCZ2&XќIcyL+PW0g咂mHJ\]8߃$ٗʞMo[Z rLL )X\ d46'M)ҊD1yAzqw8?CvusRPuRHyB^_H- ʵ?f endstream endobj 19 0 obj << /Filter /FlateDecode /Length 401 >> stream xڅR]k0}ﯸ{kؐUBekM.&%M%M zsϽ$fr~ Y*x^*iKD9-`$ݢ8~CMK :\\(w͟/62KDHX')>;SS? n0t;K=!lL-ā ao]xa̤ղBS1A֛C-:U:C77m)9@՚ &e[`3t+ZS~ᄵiɰ* d%f5`WC?ЯDy2@U[C=&+shPߡc~{44DTUn5@.mWY[K endstream endobj 23 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 857 >> stream xmSmlSeECw{7-94:TXMcViX\e4eJt.LA;^@ $s眓9X86ukMo4?z*ӛݸ ("XUF(4zXOcK#mL3s!sdBq7c~jj8 F눩m2VH͠J¸*;=kzC ?*cu8}QBI2>'sb"p0Gk ϲV]1FV_K/|OʗNRiU\rI2$,Vq)-u[[T,[O+EAfNTgemQJp`^n7"{zOw?cېsg&돪PR Gvޮ4RVn{CMMϼ)e!}@0"]$ت1^h'(]'/#}phNM =e@:\*_0$xU L~Wa9 ֬5 96mU42T ~V |ltB: oPXax[ f'q24\xmbǖjfYŵPe'ȷ(2>MNV 'Vš^t ^OH͵pKh.%ch89OcLOt'$x)YAYa;,88 endstream endobj 24 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 25 0 obj << /Filter /FlateDecode /Length 395 >> stream x}Rj0+@rp-UyA>IddWlPS#ΎԹEGtBQt8u:E" 2di64p 49R0YQL}{YDz/Xĝ s9@A޷xGq)&BRLpU-`r G8 &:+(YI(NNkjk9Fb8CնfDE^8AP1<5tx8g =v5pjP0Kc*%LWz.QV*O+V#0%hhE= ,Y4hl_ЀJ-C0s͵TZ|勩ANK endstream endobj 29 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1114 >> stream xuTkLWaw5>63:hJZHhhLkfyFeaae]ξf0t&<EрM&mMI-5mbMsim&|rrPD.GP}3bJPfŤhJT9"#=2qoH3=Xџk P@Il "}#r86`dۘQ ) qqe?}ZiV\uv^Jn^VzPH"C&dS؋U( s6- ?[Ӳ$:`5lzZ SKw;y2o4j24V >IC 9^@Xu9u mXsA n!_zNl3&[}89gG#QxTyгzXK #AL6Q׵NF,{8g~j;B / ϟ>~*,h0 ]j)h 2i;ldWgowgפ-75G<˾sF9BeoPZ\\R\ѩ Њ}/΅{2ThXMd:u{<}LϝO|ՍTAsi|\j V`͍&+iv~\%n\鯿왺Wƨ+C>.Z!+0vnha-]$zWG͹>j̤]5:9="mɎ΃ڡFz `v`w.5.mt;W3$+x4,C-Q0os/3 P#PC4& PXk,s6RMyAf?|;LRr_'vWG_: hOLR5*FQ!I>XnpzpaBg&Нs.K!zv+7!'"^Ge endstream endobj 30 0 obj << /Filter /FlateDecode /Length 555 >> stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 31 0 obj << /Filter /FlateDecode /Length 397 >> stream x}Rj0+@rp-UyK IKIddWlФG/L=b. Eџ.kf) Bd|%5,\w 9\0YI'smi"B:9s[lS o*R |$`Ss/lBP?rTֹvq &1(]ri,!jեZ1T\}Ǹ,;cxlڙWIM3S^`u a%z+_M-Z/~ endstream endobj 35 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 925 >> stream xu}lerWI֎NXMP| utaFTBx]l3Qnot+m'u kXۛQ!q#!Q fw[b7>ϓI Ie{;n;kk5y[,^6i@ `&֜rc6"DW1P1m"E\ZPUhc_(ڔI*uTUw?nihtW E:BO#A P4Anwy)rUW˙oF*\TWTإP3TZ*HZE oNQB)F%_~WH=$ [ZħX)6ւ3B `\(K}+KZnIOp U *R5*|䟖[d@tC0>iv;$@Ag$tQL(<ͳHO|cӣ93knKY ɳd!YMyhW*r؝^olWa_`;0c CFvIhF٥/8WFIY9U-S:g5`y;:665']#fΝ_]VH_!U:9 {Cifo,O ^6d߿Qo{] ˯q#CSh87үd,I9YFٴ\8cWxV&)xe)-X{ b ]B8Pa7)RG-ASfe> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 37 0 obj << /Filter /FlateDecode /Length 397 >> stream xڅRj0+@rp,Uyb> stream x]Tke?g㛙fnUk[{T)m!`" _%aФU(}ܹ'ʢ ]( n$Yԍ,*ڍ J{oҁ|} tsgvkZ9?x@:~^aZ+W?5d[xfWȮ|*~@ei0|d]g[ U-IN{olU9~:~br J" Jn[B(w*GyK 9c0Э{MR# N,F]i,__o;*`r3;S,cxO;vg&/FZ$'n^$iNXQ,~%@NR,$v12ڝȒ[~E%&Wel|*хsC%)GA#!1-kqS_w]dX>˛M iǼ4ʽq!wi yuz6]MSIJ1Ԅ14}_c4GM=mO DpP U8EPwݦ&}|jU!nYl=دn7S! 7"fMkaTąƞP5\ƍkc6ZLj$ݔNÕi!lGaS*۫䠸ȜQ1"U}D#v3H$iA\ӊ/C:m8~ > stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 43 0 obj << /Filter /FlateDecode /Length 382 >> stream xmRM0W=Ԧ~'êXYcMF7`aNj[WBg潙7/iCw.~S#JVkyʶEUM'7A{%o ZU'΁~y8P(]fGTKX8hR.ck%:KW vJR 6> stream x]TˋE]Ulznloa%&$D4A⚬!#zPě@ A >.Omz@}]QU_}5@@{NonAG8  q,o34ƅs*8g^?#^Fnx9f'm**r:Vb|u}Rr7a$.,Q)j^5˺UGu]FJz }RX$*hUWp9~qW StV}$L$8K\@}Gz҅RSJh)Je:\0~(QTΒZ DJhBø,2h ]baC$Qq$#+L(YF˥ B9{ M! =ȋGz54PF*7+j EUG%6VuۅJlx @>8Ш⠘Sad3V qȍ&x 1IS. !R_!#LTOhBJ6s|R=ؘzVwxldk X9j)S󌦝 ˶:IARd 6 xU$+-Sr/r=X7+lK &eUU |R1jʤ$NèCI/(u*gMwd 50.Q"H, dKKIz[$qa9xB*3VV[xJG(.ٳ,&1_^r9<0.E^f{eBgT*w`9TJ6u}D4qD yUSFTaYiM}lϺTIp 0q)=]87{m$"2Z,eA vD3YPSV;x%8^/"gBĞص-d y* 4fDnWʴkc&o~*zpp %Խ?8x꼉 s_ ^_ endstream endobj 48 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7 CWln\mI:v/JdeQ "=~Of^aI~|p'XezmAgPf"0:^M0Ͳ2;)m<7nUb0,>#~XX5z2^,LfYȭZۄri"z> stream xmRM0W=Ԧ~EVEEdt6)i{虜e(tfޛyvN>m3a3ѝ}h5"TQ(F=М@ɴE@[&DՃ*b@:U(ez 5U~qDHFcX(1ӑ qBxTRl9~iGd6ߓ@]t4I=oc|UK}7€dR4xf10ªgm1dzG=p?_&qфď>6N)E2}b;]G{D]lm8(KK?gƐ ڥ"cmu엿hLؘ endstream endobj 53 0 obj << /Filter /FlateDecode /Length 933 >> stream x]T݋Eٝbng}9"(z1IԈѧԀ7AyɃ$I<AbP|']wWHCW $\vwNѲ@%=FDL~qk_GPX߆iȾQCWO5qEw)`v}I3#(c϶=>q67q8 GIXz^+M oMdq.,ᢝsQt{)uLؐ,nt.=LG1sVF%TW\N:Y +@e ](AsJ¨H}&}šg#3~}I)Qz„LHuqǃ0xq&?N8w3U=n);Ra(rH3(8.9l[p & tN KV̇53^RDJD@vbTU+(&>FE*|Akn=a>FsŐG~IfPt\-+S}ffLQ^? #_2Ul;pS=0 &?+F2H S-d.as[R-S՚t'*UJ'uDI*+[Fq@+E̢|汦aut\7pu˾!ĐB:v;C1`LiW1ɒ$\oo䒯ư_E 6iV*ϙkONK9?Q(C75^y1}_) endstream endobj 54 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 55 0 obj << /Filter /FlateDecode /Length 384 >> stream xmRM0W=Ԧ~=Edt6)i{虜umЙyoKZoН }FeT熣ZjǨ @QU !f^@ɬC@[.B5*b@Gx:Kw8̕, @IxM|M*eQbBvJ-U.R S =gu ?-P(Ɓ2 0'h{!4R]Ja$7ҀlVxA(zg1dvJ3pO?_IDOB6N%hD2}b{}VD={D}F lm<Q&VWύ!{*KIe&2دx˳v endstream endobj 9 0 obj << /First 251 /N 34 /Type /ObjStm /Filter /FlateDecode /Length 1452 >> stream xŘmOHߧwBI6)8P0ɒؑEb%@(^vO8')8+H F1 1 !@ ~\A҄CR$ q_z$!PY!("4AGJ2h=$7p z1KCh%ZF҃S5dD}))9i<33vlbHym6|򘗋pB H5C|Ļws{İrx"1gn2p s]>3; #F#gQM ;Y@[br1Mwo:X·i4˒хf6D`C>V8xhp{{S3YF32>.wp<'UvKK#-Hq;P"&a4HW8F©Ev?O,֩Q@\!MObCxa8Xx\:,+^F9#ZAl%pf 6 ʽ5(].V Do\$nI DBB*>Pdb#t363BSj'[W+#&xG>{.SpZi Nsl3xW&k_?ǃiW}O9u|>t+$L#?Rlor[+뵇cg Y16 s:_xŃ4DQVD ;O܏iYQWsBhy(4^Z0cdFӪCZ.$tx,Ixg'g/."}ȟw,plLdMQdW d]0ܺOa4KlbfA&⋒l1@]&vE]*W鄶}֞x‘miEbc.従Imf/`D`Ldϥ{{Ϙ2i ESŵVŵ5L:]-I8&,2hqLe6} ܽͪ>R.,>8?_@C"tx"%-ls74dq;In8PHS~| M endstream endobj 59 0 obj << /ID [ <0A521D18E0E0CA8BD886C1937BE22229> <0A521D18E0E0CA8BD886C1937BE22229> ] /Info 58 0 R /Root 57 0 R /Size 60 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 166 >> stream x;{QBBD#q J$jhW?!$;RGҐDܼA8tɽ툄$z`n=!1x X{XHJl>=$'y)I8z]Rtp~ޖ<-Ywœw_e` endstream endobj startxref 19160 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-2.pdf0000644000175000017500000001711214411653175031416 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 218 >> stream xڥjA}y.@L4`XE +_ E,>[X1Y o !a Q80M&jVGT;Z34@;dP8ǚϢwKb0 RPCPClA)~k8d@-;wadQK6:/v$D,⸧{%fe=cۈ>TY< /#}i endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T08:53:51+08:00foo2023-03-17T08:53:51+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 3042 >> stream x]XYkggfgwwg]_"9bC尃"R AA9@K.CEID$!!lTUU_0BH Щ;n=}s`P``/hJ ǯwzw!^@[o|" '?{cr>8ݝ 0B.щ/@X8}ˢwW#3@W??k/KеA yKƯ4ѫ5ѥFsJhM=AZh  w)(O 0o!B)OɣP-F G؇ ?Tr]k]tlQv5Q/PIo0Y+~&0>LZ!kQZnxw0lno5yhYuDMKX?dN7!8o#G~Dx# uHn1MJtI)MY'y1GBc" BG qhWcM6RHW'0'T|74}al{ ņRӹ5CXf-qJϡ͎G)˖۾6&Վ[mq0皆LPjTWy0G]&`< A cg BY `t7tvn"SSKe\vRsdjAڦ͛X&mhL jNRU 4LnؿDvQYmbލS-up|&9. 6r^F=^A zh:ӫ-2XJY.vi$ 6X:/5nPO޾omҎLViUpbr|AWsji4?s<Ȳy鏠ŀ.L@=egVx7o8!S;=xYENo-g2oE=Cm530gkm ݈#1]ntr鴚,{ǘp\`lEOpw.cgqg*9y 7<8(i00jfYau7uyiLtcpNtuS\D2o; J7ط a_7H:ܷ]=Ю#L8>!]s >mCxX7AӤ5ٔ63L Z| 8 > d]_#0~nùAa.znncpC^tZ lW`uN1e2WܵAI(ػ4QD<[աzI,- t,|m.Dwrz~n|\4n-JG|+Mwc1[V}¶I"@ϣ>:ɷ^ ÜTEZ8Kf̮:JoqWҾ>,꣭׽]gEpt.Q`#VG BqZ@*Mٲ8jkH}:LGo8Pq3,`JaŢRJ$; :q{6 (M}0r7[ 9oTS{Ɋ,Ncgxm֊c:uRGr"t6hTt=H#ˎBA37!1!Lc0/Vh 4^)74֕p}z,,CI0e].Q5i/{ry)=Ӷ'K؟v,&K62.حTj R Hv68^4MMcҎj^vlʩn cRݖJ=0iQa;ȃ܍)2d#cx={70V'E۷D9(ꅴl+$eۍ؈?]\5h& ҫƅ6y8\B020djP8˯\5&dWb&B5d2֠Xg^.7* *B/mDʒc+b]F簫vNKlˏCi:&A)E:A`_6.IFwW1}x9&'&Jq6wudz|EtY g A׽^@11t; /b|/ c/v0ΎFzyGN҉֘U!h %.uXyMoݤpy-”ךZ,E_w7n_[4Tږ\\mO < vT7\\H/y2X5$&7O*','=~),يoҔr>$x 2JFxr(VqDBkgWpB? Q׬[ u )Bk@uw#Oe=ӺxczKnr\Q"W S>7UN{I:;b}HB@!Ep#k8qR r_Fu`lF:B EVVfTR".`R6m'\9:!mmYtDhۄR(j%mm,>R<5\ŬPq>R&Wx勋h:/XP@;`~>g0kx\_^bC>d/Cyx<<1y+?LbA<B߆}rÜ?wYM endstream endobj 12 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 499 >> stream xmM@À2v'FA<0e N$aVuwte >[_̼ ^|ɦt.+jߥR|*d dުxK'dz.ZsÝreEuc5Ϯ z~IzÃT*f0v/T(]5pQK eצV*w0 M?Pg>7YWIEtKy?L tq$ݻk}wiku8@:SPSdhndaG7ql)@ } K4A~d)D `h 4#߬WF0K)|KwVD? MҚ&|e)%Z.2i0 -qeZM)[;"QaƴoM~n@i aּsz+rw@?A/  endstream endobj 3 0 obj << /First 61 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 836 >> stream xڽUn6}W:XXE7nn4m"D,Ѡh$XEݷ!Ι930A`i C GJ i<@X'k7AUqя+xAxD&,N"&;|c?^V_xz~~\~^W@X- жjJ ݸʽA˪u&j^׈ZުXmupƢ ֽtw\T@v>2lsY1u/I&B)l!ή?0 At9N?BWeS5"[T.Pïsavԇ2CN[M0:nh0柛T_F=Ea  oUA@ 8MDš.*5Z+K=AhstG Xaت4)xR jU۶2X*Gm ~5ۆZh3d/X|s/ FMEr䔧 8lrҘoiqqƘGKhqOMØx1Bcos9;~6c=N `÷j=ᰝc-LnK2X3Cy:u;%+Kt_[N endstream endobj 17 0 obj << /ID [ <071F6DC81BFF65E754ECDDD79ACC9B58> <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream xȻ 0COA!2L9~ő ȫ#]c/,4tt;~LZ endstream endobj startxref 7459 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-1.pdf0000644000175000017500000001707014411653175031420 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 203 >> stream xڥ 1 E|AMmANNfY`A\h4L7bڹeq0/L"nƠlJ-hJC3 @A L\ dK`F ؐCNTnSI?hK2ksN52'ѳ+lH*QCHNGwx` 篎RHCMU8ʯp/_P endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T08:39:20+08:00foo2023-03-17T08:39:20+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 3042 >> stream x]XYkggfgwwg]_"9bC尃"R AA9@K.CEID$!!lTUU_0BH Щ;n=}s`P``/hJ ǯwzw!^@[o|" '?{cr>8ݝ 0B.щ/@X8}ˢwW#3@W??k/KеA yKƯ4ѫ5ѥFsJhM=AZh  w)(O 0o!B)OɣP-F G؇ ?Tr]k]tlQv5Q/PIo0Y+~&0>LZ!kQZnxw0lno5yhYuDMKX?dN7!8o#G~Dx# uHn1MJtI)MY'y1GBc" BG qhWcM6RHW'0'T|74}al{ ņRӹ5CXf-qJϡ͎G)˖۾6&Վ[mq0皆LPjTWy0G]&`< A cg BY `t7tvn"SSKe\vRsdjAڦ͛X&mhL jNRU 4LnؿDvQYmbލS-up|&9. 6r^F=^A zh:ӫ-2XJY.vi$ 6X:/5nPO޾omҎLViUpbr|AWsji4?s<Ȳy鏠ŀ.L@=egVx7o8!S;=xYENo-g2oE=Cm530gkm ݈#1]ntr鴚,{ǘp\`lEOpw.cgqg*9y 7<8(i00jfYau7uyiLtcpNtuS\D2o; J7ط a_7H:ܷ]=Ю#L8>!]s >mCxX7AӤ5ٔ63L Z| 8 > d]_#0~nùAa.znncpC^tZ lW`uN1e2WܵAI(ػ4QD<[աzI,- t,|m.Dwrz~n|\4n-JG|+Mwc1[V}¶I"@ϣ>:ɷ^ ÜTEZ8Kf̮:JoqWҾ>,꣭׽]gEpt.Q`#VG BqZ@*Mٲ8jkH}:LGo8Pq3,`JaŢRJ$; :q{6 (M}0r7[ 9oTS{Ɋ,Ncgxm֊c:uRGr"t6hTt=H#ˎBA37!1!Lc0/Vh 4^)74֕p}z,,CI0e].Q5i/{ry)=Ӷ'K؟v,&K62.حTj R Hv68^4MMcҎj^vlʩn cRݖJ=0iQa;ȃ܍)2d#cx={70V'E۷D9(ꅴl+$eۍ؈?]\5h& ҫƅ6y8\B020djP8˯\5&dWb&B5d2֠Xg^.7* *B/mDʒc+b]F簫vNKlˏCi:&A)E:A`_6.IFwW1}x9&'&Jq6wudz|EtY g A׽^@11t; /b|/ c/v0ΎFzyGN҉֘U!h %.uXyMoݤpy-”ךZ,E_w7n_[4Tږ\\mO < vT7\\H/y2X5$&7O*','=~),يoҔr>$x 2JFxr(VqDBkgWpB? Q׬[ u )Bk@uw#Oe=ӺxczKnr\Q"W S>7UN{I:;b}HB@!Ep#k8qR r_Fu`lF:B EVVfTR".`R6m'\9:!mmYtDhۄR(j%mm,>R<5\ŬPq>R&Wx勋h:/XP@;`~>g0kx\_^bC>d/Cyx<<1y+?LbA<B߆}rÜ?wYM endstream endobj 12 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 499 >> stream xmM@À2v'FA<0e N$aVuwte >[_̼ ^|ɦt.+jߥR|*d dުxK'dz.ZsÝreEuc5Ϯ z~IzÃT*f0v/T(]5pQK eצV*w0 M?Pg>7YWIEtKy?L tq$ݻk}wiku8@:SPSdhndaG7ql)@ } K4A~d)D `h 4#߬WF0K)|KwVD? MҚ&|e)%Z.2i0 -qeZM)[;"QaƴoM~n@i aּsz+rw@?A/  endstream endobj 3 0 obj << /First 61 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 833 >> stream xڽUo0~篸7:&Tik1ݘ&nĕj]AxCUb.@g'HECH1$I <@Xz/*YnuC'X$H%i*Rq c?3٨s]cw˲Zkg򥱪Z breʺ"W-7(k^`tBrmUL~:m=RP(:WMfʝgpCeSXBҭkFɈ+&^*4bʢ9;;ϨX!"|in[F+Y߄ZX-Ӻ*D\Z \twsa߅FXM.1:nii0usϫAзu@#(ԅ\W!kK ѱ#ou )S)5 F+uoOz]S 6Zhca϶^*`"`̓Kɱ`pyk0zzzvF\y>֝ǰV<%Q\Zvt~F1FX@{CΡ Xx<>X۲[ S%sϔ^RwbIKpD(nӦ sir锎.'` endstream endobj 17 0 obj << /ID [ <071F6DC81BFF65E754ECDDD79ACC9B58> <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream xȻ 0CO(@*d Wɾz;/ۥ?bɲJC@OYCQ endstream endobj startxref 7441 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/fontsize-level.pdf0000644000175000017500000001170014411653175031405 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 265 >> stream xڥJ1 }5I4كĹ-{Rc]4)f@[8mc\:U&nJԚK(91>P$ E,J0)=~w;IzfZDXE0p_w endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T15:37:04+08:00foo2023-03-17T15:37:04+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Length 485 >> stream XZZZAD+LMSans10-RegularS  "8  &     $ %$)1H2.004LMSans10LMSans10-RegularNormalAdobeIdentityXZZZAD+LMSans10-RegularM/v`FwJ3J``)#f"#ƪ}rIip' *( = GPAFC ׼W v[w2TZl]EVjuPW To Ę  ! & endstream endobj 12 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}R]k0}W=kc"B׮ 2JlruM$ꃰĪ]@&{IFO^0yA{6%pR֊ą5$s!O9앤V0^PjYͰGa b't>+cŢt}be:*O)ɷDUr)N !z]͈t6'\0yqn0Nub.#5ey(m>8/+մL)kLTE#Na2!nN)dQ`uMq`nXɰ,b* PIZ' v=*]g7h+^jV/ՎZ+h͌ZH\|[v{@ endstream endobj 3 0 obj << /First 59 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 825 >> stream xڍTQo6 ~߯ۥ8ئ,[N"@lmW4x+GYr;D#R3AC Be =K@ps0'5DB>R]_J0ga:MS$X S 䢃0Bd"'+y//! ~yyZ}Ȧe <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream xȻ 0CO@Myf*~ő ȫ{ ]c/,Ttvt}7+viL: endstream endobj startxref 4761 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/indenting-2.pdf0000644000175000017500000001775014411653175030570 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 244 >> stream xڥJ1{b^8`zVzR> stream application/pdffoofoo | 2023-03-17T15:55:14+08:00foo2023-03-17T15:55:14+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 3430 >> stream xuXYy9vgv'wvf%7)RD2+ cʢh:"D vd%$CI !C` <Sq"Fq|D*C{l7P]_ ы"tǮ k`І``Ch+z|칧[aO=Boa+C0~Ϯ=2#qD)Q{z1] {^oӅ_ͷam:rA޿67F2^/MчWk*WbLo/'mZA ڛYhyqv BK̫CH} GȜE?8ѮlzBGioEo8tڢׇp8ʸH^&?:iS4y&+ǺNXF 7z0VsŚ^Px@;e3&bV{ɆdR{9LM%"&f%JTHʾYh +teIx$\M۸v_Geh: z`ܪaaѨ:4=;")= ۞+<}{ɰBgF^NcZH*?}Qĺk&G鄇upܰ)q~)QBCvQ2R>!b8( Emơ*`34YLęuS&MXqOa2)wK:"B%AS I_.;TGMؤzhwuy1oO6߀Z&JOFi*M|Zׯ]Cr7Ao[ ZC?W:D$y Cz9gu3!S$|d?@G .)}P9}up{66/!CJmtӨ[6VllD_0g f3Hx1B*SY8KlvD ]rēZ5CkI "m;HFT5WG[( p ?+h'sna- kDJPp }X})bgm#$-w_'#" ]q7&6eLvުZG@'!^B"x(B{=%-֊dRnҘ(0’~*L'.;epry00C2Ѥ1X#u\: ר+ZQ97D6G(\`H>w'd<w]d~,# |A1; @A)ZIRbf 1(A)t#;Q=Qkx(]8pi FQyJ?UP ׃׿، k|rGEd A0AJ*I&R އOgEF>is7i.:kG:#t2T@*?jW;\љ&|S#ϥ>@nH ][9\& ' M[AV?Aa&Ѳ֌လd,|LU<W`.. K_v>gA-a™I}ERzs: ԔWb9)ZJxi"3:?V9ښv7,;dDpY.v^5큒oO*-mh C5o/")={6"v0B9A6_]6pSFI/|ʳ{k:k?rד3nBk x*y =: |E~Bi_5?;E- 7B܆o@p~ڷѻ'l endstream endobj 12 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 500 >> stream xmM@ڃiP>&DQ;3f %4p0UݠcF^Z(,ņOTʅx} >DWPU&QMdNQq16\Ȼd/ZiQlga3x8{s|b6$hF~ U? isy{c0=PڴLK}iU=ٻB q1vu}4ذZU8ݚ9oY)ngD1h<_{C*.:˅_ 1>tBj5oF0s[ir|wcr#wЂ\72*kCBk(^WY#V)eDJzT%Yv0uLP#3`1MV&m!#/5-txa M_S7{G;8 ;B 9Bۭ+1|D}*J endstream endobj 3 0 obj << /First 61 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 835 >> stream xڽUn< wK1ĖE6ekIC/[ V +h GZvav$ꈇ< "&0$΀O&!1bHx68+7 قdλqލKxD/D*b@yaqxDSe.ti?<<-ޮju/ƪjYo5ɕ)F\ն/'ߪlyY7 -~S"0٬+GqB5)VԞ-ؗjOb J6ag6x!,Y' b'B\?c O6ECj]`dE2;B̥Ejv9 p(xo%FM;- *@P(]]"P\m;>̉#)9bk(y'U#Ry)iCߪFLWC; ^-kSVǨ.%OH u)7j(e }t숿"F]5>>GF?+ӔKo@F[Ofzc0Hg[H|jVvZtP0Y0ɚG(-K wf'oodQɱ̕jcly o1)a7"bJGQԒaM>ݪ햱0c,v sqnn ||#h 1;ظ1Dc7C-?̇'y}\e`M8l)˃ĒP`MA)]Y endstream endobj 17 0 obj << /ID [ <071F6DC81BFF65E754ECDDD79ACC9B58> <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x[ Y hCҤ=CfqH[w|)؛%*=?3a.}P endstream endobj startxref 7873 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/indenting-1.pdf0000644000175000017500000001775014411653175030567 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 244 >> stream xڥJ1{b^8`zVzR> stream application/pdffoofoo | 2023-03-17T13:38:21+08:00foo2023-03-17T13:38:21+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 3430 >> stream xuXYy9vgv'wvf%7)RD2+ cʢh:"D vd%$CI !C` <Sq"Fq|D*C{l7P]_ ы"tǮ k`І``Ch+z|칧[aO=Boa+C0~Ϯ=2#qD)Q{z1] {^oӅ_ͷam:rA޿67F2^/MчWk*WbLo/'mZA ڛYhyqv BK̫CH} GȜE?8ѮlzBGioEo8tڢׇp8ʸH^&?:iS4y&+ǺNXF 7z0VsŚ^Px@;e3&bV{ɆdR{9LM%"&f%JTHʾYh +teIx$\M۸v_Geh: z`ܪaaѨ:4=;")= ۞+<}{ɰBgF^NcZH*?}Qĺk&G鄇upܰ)q~)QBCvQ2R>!b8( Emơ*`34YLęuS&MXqOa2)wK:"B%AS I_.;TGMؤzhwuy1oO6߀Z&JOFi*M|Zׯ]Cr7Ao[ ZC?W:D$y Cz9gu3!S$|d?@G .)}P9}up{66/!CJmtӨ[6VllD_0g f3Hx1B*SY8KlvD ]rēZ5CkI "m;HFT5WG[( p ?+h'sna- kDJPp }X})bgm#$-w_'#" ]q7&6eLvުZG@'!^B"x(B{=%-֊dRnҘ(0’~*L'.;epry00C2Ѥ1X#u\: ר+ZQ97D6G(\`H>w'd<w]d~,# |A1; @A)ZIRbf 1(A)t#;Q=Qkx(]8pi FQyJ?UP ׃׿، k|rGEd A0AJ*I&R އOgEF>is7i.:kG:#t2T@*?jW;\љ&|S#ϥ>@nH ][9\& ' M[AV?Aa&Ѳ֌လd,|LU<W`.. K_v>gA-a™I}ERzs: ԔWb9)ZJxi"3:?V9ښv7,;dDpY.v^5큒oO*-mh C5o/")={6"v0B9A6_]6pSFI/|ʳ{k:k?rד3nBk x*y =: |E~Bi_5?;E- 7B܆o@p~ڷѻ'l endstream endobj 12 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 500 >> stream xmM@ڃiP>&DQ;3f %4p0UݠcF^Z(,ņOTʅx} >DWPU&QMdNQq16\Ȼd/ZiQlga3x8{s|b6$hF~ U? isy{c0=PڴLK}iU=ٻB q1vu}4ذZU8ݚ9oY)ngD1h<_{C*.:˅_ 1>tBj5oF0s[ir|wcr#wЂ\72*kCBk(^WY#V)eDJzT%Yv0uLP#3`1MV&m!#/5-txa M_S7{G;8 ;B 9Bۭ+1|D}*J endstream endobj 3 0 obj << /First 61 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 835 >> stream xڽUn< wK1֏떭&݊Pl3[-iٍaĒ#V0AN`qL A Kq<@Xkl_*8%<"CO"! (O ??~<")4oWE:TϗKcut]T9la_NyFghNgڼ[.鎂O ݤuF}!ָtks~v6k38kRJ‰1(^>Q;78g D?Aڴ9wZVw*SV]Fg90Hۿ B>Ve)wZ*5UDOQ@.]m;9Ȉ#)9b+)yfOnyB 7j}sStG &]i ղrUԥ6ɠq@/F YXT0׸W$kSߧH3g]7R[?hl*j֘S[iWi; :(c&<^s9T,26@;===yZL{)>֝ǰVSBY[L $IK7=t[Ƃ8d,%pyuu0&Gܓh(y?F#6n !gM|~b!a,én`,m;)9;AQwbIKpB(n3uN)E]>M endstream endobj 17 0 obj << /ID [ <071F6DC81BFF65E754ECDDD79ACC9B58> <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x[ Y hCҤ=CfqH[w|)؛%*=?3a.}P endstream endobj startxref 7873 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/msfonts.png0000644000175000017500000017207414411653175030157 0ustar hillehillePNG  IHDRν zTXtRaw profile type exifxڭivcr`J)**[JL2n ;_}.'W ?cBuu??_u#|z' seۅO 1Y@ҿǐ^u18R_-+?-[z{rzI-?~߅_2ߟ ϊ~ݻ}S\ uzu-tXZKwSՋR~y #DuC;pyWX,1b7{jqE&CnlpNK{NZ»˽u/{׋bil#/##~5(E% D'^X.,&$2@B*bl!N&K)G#Yd̉.jGݚ^KێfdHV΅iSCK)(k*P-Zih{鵷sđ2h1䞓+O=y-YZn|V^eV_cwǮǞ'JSN=3μM[n;ZZ| Ϭ~\"NrF¢ˁ7ʙ!)g~DY12OsQe)ooy9_fySֶhh}PA-qԞVP^4Ԋ>B@k|cÓC7F-}:5pSn}U1Jjh)~WeͣԴR%,^w32m ,ゃSܤK8LjyuEfq=-3lOS mc/뭠גEi=%^uN4ϊRLJ T^Mo& ԵJA+e֮,+ED2)x$~m$j:,c1hߍ|RnNܛ^v>-s,662 WmJ9%Z%7(d˥MZ#̚{ɑ u+V+ٳɛ.<eANRج.轛y|l):) dݜ#;#<H \,R%%) lJu9i|sLI n/%vZJ;/? Io!$k J P$JR? < k@j+%|ctn=v闶ƽZ,ʟ<7^zڇ%MQE 7 sg||+ Tu f1TJjqb5lB8OIDg~YVGC3=W E;P#6e@9HfqBzp Dĝ,vEtQ{5طƧJTFZ+`x.K@3E/L].òuF]sEXFp:~ ʏۻew$I|{rA@fs cZN'8hHVb?{T~pY EL$l k;k:C kß?ʕ/Zy|?O.RnTF$19@\ z!vUZ(Xau Aob5jH']sօHrR!>h,RnK \?pK U"-H.֑A>l17ox ?5*q( bTa<aZpG^"t?O߯ERO !ҍ;՚dunƗH'Ɇ\1r_>"|,g.?إą*bDnj6 EיZ}ӯ\!h=x1,khcˎ _C #-yw%ÎC h\hpk2tGDHEZQTЗGפֿF HS1p Ck`OwN=DPI_n[TE˶ǔ%M /PZ75YuЅW()pk\t}ۭרwHYoX%Z;e/W߮~[C ad5 2WjC, $(HɌEL=mCUi0:%4G(uJ_HR$X@ Խ5Aܒ]!;¥hSxhF{PgMV,kz*|Dաw-Ry, u,x`a#`- 1o5APd'mOuBK=]"mulί]:I}5Ls`]ȹ F.'"|i~#h/aK[p8~;(ɔĤЭ1 K^jLH!5Pu4 Ez &3X5ꨉ(\) ԹI'IɃ y@0g1L$_ENrm2!B< zBCP#ot 1ؓ;{$ H:L%ڨl O!Z7bo/ddY qԋwZ ZA1`%*T! t)9S}JP5s(i4@+/ ]Q t΃|*ѡ|=aXpV]5͌jrm#;b[IA@[,\EH]Z,$N'ޖkiR Ȇ df)=™h%MS.ς4V# 1?mC8ZkrЗP[u$:|Д'rfq-_ >|LGύ$[Z Fx+yd'Kkp]2Oǿd6XzU:~ѮrѯWCG sox={ ЈUQ\GEJRk$~QVFt3DYp(gi>聑Kvtd d%oC>#$em ͈qMEXǨ>v#Mܴ+ J`)SS]]Uھ``,X+0pu0hVvF]$9[R_~y:W}^(MrpS"5/UFɥx:\=E(T Q\!('""#7J@|i%ɝjT׾ }eumiPBj&O,,48}º (aaN !BHYNP_T6R+ DPf 5*H @;pRP *Ғ!O#Ԭ=Ԁbu&hok]kkC71_R<vEI֛PD E DU~,@npƃ  /y+6P%\^%H|DK`)--9/Fu5BĄic?Z[`&[y!2'?: 8 MFxJG&Uߐ#/2Wa]%٩2Jl+YCAiy` DU)Yr38Ԧ ygS ~\"hM%6M*D1*^~$ ^)]}:H#'A뗛9i^yU׏4 q OҴF"ܽB -9S/+] D0r,A̼.}lW{{qXAe=GYm"Zde:˳:r̅(/B\Qij}* UfDHC;p+^N3 ώ6FHl@GSh#yvD8`/hpO|ob>g.:6MiT]tFTJƅ$|$?y)5d빣I81C(HqUZr&уp:YBpH(|Cv5=NM:?`Apf㜞z%H0i 5JE*aΧUot/jq:q*`-u )UJDHV{$dT &ux;u]Ԟ-sڲ=y̹'e&7F^\ryS Pg1uq71 1O\Y"D)cDC(Q_qW'N/Ԃ !:P)t ƢjPDSkf">?5rd Q!-%X9.v6jNvyt(:@oEiIֿc||+QE 3h ^cɔ G@Fºo[`>1ثċ_q8!)CׁO^^jKm*LߥٵX֙UvSՃ ~ ڛHePհΐZ<%b 7 k{,KAl49Z2+ -m3upQ$:i%A ӫiMsn~eBI 4F90M[W#ud!Bq>c{MO3P@@4C-D+$FIoH…J6|1( q%w6t6/i\OAyM݊N;Yk:R5愺{6z4O>0ZtD/\GEh/i!7 k^Dn{ߢET *fJޔƥ>s*xOM__;p0`ĤZYВBm[W ܱ zP\j{[.v[ :fi¥ މK0119sJ##VoETx&.XlwYBFhUW:1>9tRMgfN|G(r\HBI- 64ЄzLDfWLY$My,BR?Eg_*d%pf̚Hh5zg;YuQE]e%x]x=ڤϪA9.o:u&!ǘ, 7 Bzm!7LGmvu_]C#``rC"n)i;7DsMנZtVFƊ05xʂ>voqB&>:$wG,0hkmiHq:N"l5~*BF`^ =x@9 PoY;~o‹.YFVcEBF=ui=k6@Ρ `4aE$ ̻d@Ӱ~ ~"@+NQvMqO d@1"V5v+=--X#r {HFZcrTxf*[rUO{h0F7$Vvf%zq42>MQl=;@Wm zdv>;R:se;~-VߏY!V!켏\ۀSG;k~67raeӦ;Ԫp&)J##F2n"(BQS"h3QQ`n29jn\MEڠE3Hh]s^'SZA~YBvҠgc `q1q:14՚$ |BĨ%IkiRPュ@KQȻuH~Ĩ#;48l%2+HHngMUI#E7MFPǝQD ^vDkF7-uLt_tI$\`һ % m`CSt-47%L < 6~oedf7&94Ы/h_Y IZ;A]w%u~hMitĉx0~Ӗ֐KhVˈ ^-xL[- p:zgP`]d,MO‹wvأ8Ȏ˭$Ŗ5԰N,wضL%ew~vFE: ٱ|䧔Y;OчA B, k>;0J(G@rJHzZ;}'R2K6#SoZAc~ u~P|ϥʎ~stڕqIZO?ߎ46p1ɏXu>2nTa;ACpCrش9 i,jX~M-a0tfHC4ǡXv>ofÍN FztiUBg`P訑`" HM{\jH,@ vJ~\{!N~JL.7{1vN}e2^.Yz^Z&]y k-#UΆVK.٪o/p6C'G8xȤnV ᭩3mU::u (=P}#0 $!M3ZxQtxnw H3f3M&IUkWp5 o,|f?{@QMӵQ-7t&FL36~VbQB\~?eAhܿM,<;"A4BP/xp"~4}[-$OjRG, \'"W/>piCCPICC profilex}=H@_["- v):Yq*BZu0 4$).kŪ "%/)=Ff8jN&lnU"~ŰL}NS_.γ9JdO eaoOoZ:}+I 9A$~~12yP`YPcQ?yZ= Cyme4HbK!@F eT`!NF4' r]bKGD pHYs  tIME !kC IDATx{\T?י@/ W5hDm h5\&@7YZäfM6ƪiiZZamW_h|(1cj Q  0939sԙ|87guޟDV :DDx&x^Ƿ~ &k"66~~~nQ\э\u[A~9 }Ͻ׮]CMM nݺe|L >j w&:M׵N`|tnΝ;_cǎOgy>>>\8DtOeWUU'|mUUDQĠA~e*nv>oם*ƿsՅnܸ`DGG_#";|7F!Cxx ttnµzćxG+x|kk]xptvBii)C;:;;g$"bbbbW^ň#T_҂fL<mWRww7Z-υ`"/:*544ի9r$n2Acz~~~vƍp7KFEDGG&UTT[5qyP+ b޼y}ޜ9sa(.^/֭{,›o/"44l/ȑ#s=,?w$pi1&+W`ҤIn_nll%DQ C_)-~;womc'nt_Q: Ŝ8T}t577[noŊX~= w'?-ZWqM`ExTT{u יtoS~8P~000---NիƋYw~V?9~_d>&L`?`OMgZΝ;۬feeaΝ;V<@XXZZZPWWpxyyg.#;>\ʖ;FzqQ;r6 đK\;ʛf>MMM&]|MMM 5=ڤlup裏,aL7f==Zʕ+]bVXa|W^ + ~;w"++ V򲲲LœrhӧO# &Mrѽdz|ݥ]n:yGoa>Yҋ(؁B|l;ܺǑ0O\p䱣G3xpB>>><F{{{?C OTh͜9sehիM/--EDD[7wuhX'N L~Wn=iѣŴi<#RNCee%[o6_dG+wđƀxۻ|C|49q&|[Mosspذap`M0X 3;S &j|}}q0R8pb?M}9b_7%4wںh†Zcmcgh&`})/Q<2~0a.?~jhh@xxj0J v8@^-kvKLL~75%e?MG£3yǏ.}kXu$1z^c0}Aҝ.v㋺ ȏ#k1MA~=WVVbС~{|瀀#F ::o$5"}:{1׶ `n݊˗/|ͤI_=g+1gu]6Q~ucj1vu@YDm<g=]z6vq wOÍ70|>}N{{}=;CS={^[ZZ |+9ĉ8r'lbׇ߲ґg??pC_Kӯscǎ5^eX7L`h 5^\Uhh(jjjpUM%&^ݸqMUVEGGGswMl˕+W<򧶝?H/KSp9?ĦMl;v Unn)F4?ؚXEytEAKmsu0lqq1'%a(؁.*Bj`6o1c`maxx#5((UUUTvtttJz؝0X'O}V'}žF7h늟 :n76PM8nUeׅކG}ß ҡUFttZ wɬG?QUUx<=Apu\vq{kP ?/P``aÆ noqKD{gtK7 ~ȑhii۷~ubb" {nL8k+**PYY C=dgNm /#MkkIUnuC'.SEb(]TUU!??y 266Tݾ}UUU~z*СCq|w:7-`oϙg߹h4: .r_|>V#55݋6vᏈ?; DDDD DDDDGDDDD DDDDGDDDD DDDDGDDDDt:(qhz""""rml%"""b#""""?""""b#""""?""""b#""""?""""b#""""?""""b#""""?""""b#"""htMMM\ DDDD @DDD40ٗᏈᏈᏈᏈt\Ν;j=}эk\DDdp`cZDWMeN##OA\DDd7 1{[ 2?mso\}U4f#""=8znvsA11111\ņ \ OB ""?"""Ou-|gp.^ #<#((ΝF;|Gߧ>7OB@74GBAh!!fr #""}g(((D;v?wzcYh|bWDAzEDDDZcǐ'|TcA$((c6eq^=p(5$&Syː4l]<ţ5a~___O±c7C΂pz(B!""(D+F"ϟ+&B|q(DDV۷ǎU;wMMMŅ ~:\[oii[jD6 jYimmŐ!C =~!337oPD6@D'!"D3O@Z" &k{'G"+(Q|4m]N!oY.`z(++3y :K34"33cǎM@/hh-[,Av'?~ #h_>7EY>(<؄ޘ|hoĠypvi~{ ɑO"]%XI#F`Tc#zF413_~r6,[e?y&26,òS\A*=NJo(l%ȳfΝk ۷o7sޓo7{-^)~[LS؆V 7v83?kCfANw !{v5bϷ@lpOX0 8jYT6i P3^G! [BuO|J@\r-MaO 9Th₁ӭ046~`CPwudUˏ|>77x֭UUUXnx ]/=$!qƀ3qqN!YT{[~1rMv"0 '+'QɫǤ[nKa"\/^u2songǪ(|kwr]; Mk_Ь%nBx!@cJn A,:y DZ`9P E`Iujlס  hrъT(+xbHyA,LsNe$l^d]Z>֪v7YTT֮]k oڵoر{! h}Ƽwgvg#ߧzxL1-^rM*urO`_A޿~xF_No_n%!{Bdˁ)h߹sb̙?YԛRyŸ\|(ш|o º/^|?yP׭&}W0/L ?i h`?bЉ2{Sg_W 0H7%{6aqcʃU01Ʀj.DO6a&ee:&/F^^K?@[PPT IN"]u0~I#~8 W}uƒh7\ƨԟLco=)d-޺{Ć_^BS8 P f7:%4\ 됣cbo22"Yg l6+?]t~9?c/`OYvsGs yiQ7hCremrm=Ӎ@ UNJUnʞh+[P12G[T_FMD?L`[\\{;&?3e{'H8 kצ"11Xv-~.{ix> ɫ1{e˰l;䈞&_@?[q X6uhM~Pf YGC߹5O#J'N͝*UOm4t~>?ґA)*RǢC1o\Z,: &4U7\Ag | šMDsrr\&R77ۼyL3Iw#0bDqq{r/rh`.7\pT2Vo݊iӀ)i^a2o*pS9s" Ӂ?nGU F**HNwI>:rNt}UcL{U̎4:5TP*cLJsAUN(HV2N0 }o"tO>$}Qlٲ_|}gزe }Qj7,/Ktg[&"ϗ ___l߾x衇/\`ڽ\ۨ::L 24iӰ,X3X| IDATK˰lW~ }sa˖-Dll=&Vj4"j N {h}FNV}0+b/p/}/ND6!lo2O #rZ?w8 ~}4166=ób8rs`oc v;..m//=b#3|3opG?|݂ߞYpi>8T݂įEs aVV !((>nk]vTjl$#ylc.Ǝ7 HGW{fUij^`җG5\AWx2"""rO|r9YrVK2NBDDDGDDDD DDDDGDDDD DDDDGDDDD DDDDGDDDD DDDD?69䛆rA[TJ\ ""kܹs[ot(,f_""""?""""b#""""?""""b#""""?""""b#""""?""""b#""""?""""b#""""?""""?""""b#""""?""""b#""""?""""b#""""?""""b#""""?""""b#""""?""""?""""b#""""?""""b#""""?""""b#""""?""""b#""""?""""r֓U٫Щk6(c .>W|ׁu8[(.C""""ٳɷ_ԧGDDDfc-~!e"#|߅OUA\DDDD.}#3l>$"""ᏈFkxLȪ"/ 'Qa1U-kZӋQȗ:\ az2ޯ$f:l~vlϿדקE3 0ptҲw<\bH7u Wũ#!pn-ySijoy8J&@yV>r#xpL50?J݌HShQd}.^eDTzbOX0&@,M8Xq`L2*N"ˠ ˔3PqqᵱM_E^>RJ'<#blݗpMrDL8qI|$*ͪ1ZUՆ +B-`X51IlNM{E^>b1/\Z){z!3DXuS|T{ '1u bnݏ̅$f\XE!$f/C>\tXVܛ¬ytVT)2"ӑv@n0޳Z@3RWڸ@rBZ23wmq8vy8VQ"E8d}..T#cz&a|9NK>̕5u6GZV{49HQ;Q;[QS n; $bMw"=sWmo}}f$,MB2$+J6}Z(yLx%#6kwDhBl-> G9hqP)WpGJĮȱ(t*9\d[P;\S^b:{b"tmU~3P^j /v}HT%D&u0z8-=[oh4ܺeh[&OY $,7gtiaM/wR,PQ0ʗ#va2q+TEHj 7;-ScStltb?+! lWMv|J~gH]!IcoFEQkגּ:ObYw9&j<e/DEǬYP=a2=ܬTbZbr{:}SR/kCN@xM7/^@`z׻xyv=h] !]hn1M?B{%<˳ M}̛ETr x *;=W@I{zb sxΎf߻\̚7=.l҇>EɄ@$Uf̈́6֯#˰0+oGg2u=aM%0kVP=r07۟3{g| ,}E $ѱㆱ&yVR~d#`h,Zڂ[][.oNƺ]6ޅ4C$ryX~v-ұF(råa'¬ľ PbOJA{,^0,c':_C`O L+JOV[{}WͿw d!5/Z!:IX,֘lgVIyؕOжT7TֹmM|oTZmZVfK@j 1~2Y,Ĭsbs%5#a4{؉֓x-wlں8~V탕(? y8L FNv *1^^$}S:X, #]Meyu f9l !;+S`|ld Pn45C/{ȊQo]_}lLeٟU iF U0~yQFOũ"/%Xȃ|,CE],lrp8X{rɻٿ]H 7:=kOd՛5#hB3|_]\K$f_~b}\ZlHPbWxjeEY)1A#.d{R]2V 1=!D@{6r寶BC6TT6͌_a #d-NlCUf$$ߛ]SE„@@us]9Ti [m v<΅f+#C-X>q]W,]LXEH,)Uc &c#0WfpR?(9hP2B|v4?.Y*َHͷA2s^ʟOƚX8e.~M.l=V4:}5#٩ &'cJdfĪ_I[S~L7).'eITW7#1kļ6qn/"J)l4<Tc#BJs~j)4#G{*GwFvb@ TnҶaJM"G&andPt r_8P,-z?uT2Nؽ! n*۷J6'`#vmÙnvM܇z/P~ !؅ Dƙڥrr8ٌjlԞ̅Xr ǻ;ۿDVJ'X``Dof<8 >E'1t?:/On~8ʷ?Á *ʯ5\rbw7m|VOǛ}#pR1sw0L־4Z/ɢt_?oh|<80+G?F&0yN§*O럹;.@컏^#ImUir~-!]ʝ4 | 6>xܥ  Tƀc8P4sV㻕((Ehy5}m5hdpm4Ks "gqc>c#ѯhs0yӳ˖%Hk6rm vj&늖F4KM:p12˪bq- .Ne=̀CSVMktc98$̏VJ` nlN%;q4" >-4Lcw;b#ӯ&,YZԧgQ 0Y+̃զWy`Sq%r?G* @DNgG GF>*GbcfȻ|06O2Wiv )&hhz"`~+sr Gn*fEJsG#`A5OR{3W aBs万!dڞ{s4_VbgE6(vN(m[!9Q2g1<Gw9H1,+ŭs{#eo4xض,cO* D.CJ ?ASM=CYd'^3mP],D 6O8ny+^N$ ɖ'f vZ|[|bHØ@+h(ӟrƃ<䌻ݤ*= VƬ.$l.*Ʈj&6Cp IJa.sU:[(WiEߦf)8@OޔUUe U/>k{t`>4]*?cB0vG2ۗь-R=9^ԔW7׃LTG3C%!}Pd _^C @wrpH9>+) sP֗-/ȣqQaJFpY ysjYl. hAE\͛?ARμl Ģ+_}f `}ԠmuG'w䐧[ټ^٭jjdG\{hwPzS# " UEC4 H@t0oɲwq06OTQMhJ#U;(G[,ǞRMX>pezT."/fґ^Ԏd ͻT=wq 4`^ *S$&A,Blٝ#Ӄصz2ͪGAJ*R>Up1RD pi[3"5?aY{ST!eU|bB9[hZɰE_ayPsjqCGzVTr8 ?!TzQx=,c`ꗎf}JmϠJ5߷?};}S:D3C@)FVw1Yb:\ 0ɩ^Mv {w QE fW}ݕ;'ޞ'Pt# ObIpfz'b#"""{@E@DDDGDDDD DDDDGDDDD DDDDGDDDD DDDDGDDDD DDDDGDDDD DDDDGDDDGDDDD DDDDGDDDD DDDDGDDDD DDDDGDDDD DDDDK:.7oB ""r11111}ՕlCܛů`07NBs!= HZ, ;7>_31DDD D%|%k,B WV. ê?U]/zR;! 2ܮLǻV31 Q2D\ -הOluLϹ۲t).Lx#ů`L/ar۩+@K{ڐW~ +>Ꮸjv`[71XKbck(KK?@۬չnizӱx,yΰ|!./)0 ͶLrW1)-?~RlHoL^7KAQY|6(1ɇjT3y𗈛YE>TmY~H{K>KU=sjY6ĽpyG! .V+;<ex mᏨ?NRGۊ:MmFԜ}Ii}歵(wpO>ހ#\jZjBEuϼg9Z4kZlB`HRn"Nq"<(?%_bR[(3WP~gJr~ T6#J>a)/kskQ%򘏘m8D DNxn-{&>3 :z*gZko"5& @$Lǂ7?(+^ECq )TX&(; G'[x: s".ڧ㝷A\^ܽ;K?'NBAQݘ$By&A1 +ߚ8㶓q>D D_9OK͌2GAr( VG>:Y .ϦR 5 upP8i_¶ِX|uߤ8%,$ɕ?cWc0;%ېz~T+@A%]Bf`#')͊vKx$0T4 @⑞7]'VO^e 7x%lmzI^klԚ}tR8o@/wh! C0yK_;7ލ\[6<ҐR]G\[x)tnl89롏w,2tzad\r]BU50~\H/C4*)@j6JC9N>3 P,~ OkX`\~ QXsш +@jF]D.?rf"NʊG㣌7I- "IbiÔa$ͻ&cL}d|K:l{^SEo**lPcxZelCNin<9#[ܐ מX,ن(%Q?"?6N3]/󐪟2MJax왷rMІ4mx f^C^;q*Xz'CĂŹِa#XP=aHM-Qbra!,T))R!&Yo*omwjDDDDnE9Y>c{2oU٫=H~bf32Ƙ eE?[WaE)lEñxDDDwa_(Uh!7!IEzja[ }[Bm rE3:,x: _# ϟEa.#=jwxy,/+"""" 6+= MU13n6<#DZ,xUe‹gaŗ؃gfskp<}d"Uۅ[0G?؊ 5uf4)O*z"7^=U_sO>؁BbD=z'DDDDnLK0ta;цʘajqP^m^LJE4.v`+؊#M1}4fE?ڂ$"""+,~}#~R:c*JwZ{yy!00\ފ&twwcС4媒2CqN???<8I<͛7Q]]A ƍ2ܑLwp毃qrgv"b5>>!en%@/H1Faʽl$  ;NkAbQoܸsΡn۷!|}}Nb HE/q:~z3\Z nu5s86c^ȳK*d.zzZ@-\xXqVũS hZtvvFtt4 yY5L8qYճ3&Cl jc^Csh>&ZlPl03D]&W'aÆ__aE]]]ĭ[Ԅ/"**s=a@CD ʋY01:!*OےVEll,BBB V Fnttt͛ŝ;w0~xcs$ cwgDZn~qd}^\}US{ҼX}؁|vv-iT0t&*5L$jehܼy}L^P__WÊOӚhT'V`C' ';w ((hllDHH c|sbWѷ[SlFQ[ v,‹qlD10]}0D^mT7+5o5)PUvv&} syyyAq- VE+(hfq Z#r %e3z1(hnnvcbwј!V\ū.Ldx4lSEvG ry\g*8NB5RHQI@,!bĈ" B,OQA"@ Q$"$H,!N($ylwn Ef~Gܽw2g~s3r (2ཬ1zrX V!())³7a3޼P S)P)RS]lȍF]Z FN8!yH;vWxF۾*N!8xf>m8D$#pt. o8/|PxYфXWW{XDR/&[K Z: ղF! &BiYE"/1Űf# Fv%GU=;x[?ٳAk*l1{Va ߚGI@ݙ2`cɇc&3CǪZym=*N6t,}` Duv4B]ekVx7=ϕٚs2ݯHh( SH^q; HN*G*n`Fm&=Ru)>rRm@Zn6=7k+!cOiͤ6e]˽?{35IMLz3?6?Hj5y O~4AJp(W Bm&7Yr^loEbd{NѤٳclǚo g<12ӷ:M+hm)慩ϐ_;U79E a [t**'uydUQεZf=2 ix}_eO4owLi'X[x14SVYg˞+ςKY Eԩ9,_)[2ү/:\zR a*ŋ#2{{ .U)NOaMl혳֖‰d v8v;IZx ϲXJ9_ko}@}Ҏ3^E_Ġ7`.+#/$99}v MA^xL}x 9y`*Sj6s3.egj:,%m-Fۺ,xd| m@XƱqSny$)$1'O ܭ싺K)iBrD2;'p[d&q;oW70fP4VrxzJvn&CPr=NM\{ mE{=N A${Q3|(1 FBʳ`2#n,z]}IS)\|Gh /sm`#1yK2i_yq*,}I!>ߚG֦5^yb_! a \ƛKә0`Ov2Ꭱ8ϗy9[;_O;1l.?3qٳMdnvˎݞ([_7??wQgO2v jK;[^/zu`>]@vA))1[.nN۶yrxQW'9@mE!߿gOVc=CϴKc>ԝ)3?a6{Ixh K8THXnʸMvZ2-U޿4b^oš4bz.eK63;"iMukH? јTRփ=VH{- | ?b\OzZR?Ig=*V^Ze⒃zBU[>d0ڳ.ʻɻ2,a2hYDՎ(K%f1dMQfWu9ӈ9?[KpUل }GH,wfb\'Kg1tpس%0ty1w 7˻m\!2yqUfnb1)|c /ᢋXOs%<1)""hpXqr@-iWnmU~A4/yVMy,yW^I9KަSH (z 2m*Ki boM!x3u#a,aGNucEt6Nn{ͨ8SG]II=f/<"YF?UkrMHpZ›_Ǩ@'XbXA(9]LAAf*kR?ޣ|O藗AW=LfHUq`ܩkY1H[p/-hʬW^,hsM_f<5ޙ~Ƌz/7vnN@p6 ATYUy)-8J#FN[o Z0?vdU nwY?fppMf -ѥ[v!7j3}clKBBv7MҺeS0~X ^OesxMбc/?~?M,6\x ~# m;v?p?caۀtᢋb2Wc"jS(0د7yM5#9}&^O/RaGJ\ _۶/[-X><[5N㴹YcI%.t 6痿ѩy}[]~yn|EoԄ1L yLf/yسgoK=iP>>nW sjw)7 bVJgC?̢٧p:Z1ZGf 9^ZH҃0Ç+Pt|V6s-Kn1>ZdE?.L?[Bp:yc爗C{xm;Hu4hڜ5pa0w w;WT爷#Hą4:=M'3~5BY|-q[nj[}n&[s_q7mջ-nr$_| . /r`V8kRV`Ww}yGҔYV,Ery(轅_NzBsdΆ_-&Ly rB~P{\l?]W9^f͛:\pʞi2k%$Ll Sf//!q}4iذ;FZI#qFҳ]#W?yir'=AYIϊoѽ ; /aSya~*c惟Ol .oLrvLAAX zp*CzuZtG()%LKY1]7ӭ-# Įt3[(}@;^'i}cҎ;;z];~e³sx;mCWm7Wˡ@ ]]awk<: U2:DPE8M{j D-?ݠr YH.eР~]dz Koz-!^xsӝoXhЯgaoN'N[KCG-R͈{:EZZhJ:/ǘgt '2?HM~;7tP|voGFb-dF317nCڲemĠ8* g2oRu;&q 9Jst1%1:l>MɤkǴZyuqwEr>_cggKޤ|CGԪs!4tϾNFnmX4k\ ^K,~\we y1 !?x7ߚ>IL@IqV\YU&c<&J2O VBm{'N9Wqx1H:۶pU߯Miib ~>D-g=%]}f ikϑ\rvNf-뇢( uUBO }/" fp.9pEkkG*?G)w}:~> F6<|h7le}UۼB͗kα9wp-iΜ-njOtSgƃLx`S&刷jnΆDt6z-\umރ-߮U!/|CʂODL"=>ժPtMmZͥ|  XJлeT] TUmqбs'֗_-6PjgPe / ^}}ob4ڵ[O`Nv?tV\v!xEX/6+n!~eE/ͿYd1-dXa^ȎC8?Ui,]*ϨFd\5`4׵cϴnb~|6,[F`rO%f;^Y8>m 2sb)+cʏ Qzwj`6l1n/RIk*Z 8fVǁ|z Bǖ•chk?#s\4aUMF߳5ԋnAH6r|f&AXH l, ]ψ{'*+0T^<8ETa?͑-ʌT2j/><<4]#c [̟n@rd\_xgNޜGOҽ?y+ pw=#8#> tE;&RU;蛁 #;~"fO~lE&+vev:WW7{stjw-EL84: i=.!/ Oms_o6گ擏?&X wꝗ>&My.7'1z"şjr^O[%xp 8 ܏_[֣MP[;_ ѽIC릺&2Isj闡 1>ur]Xr/~Գy'=̐_./'V=9wè="ş?;@5>EX]ܜnmqw;SEACn㝴 Zɸ7nI03ϚNi` YR;&;|׼ltؕ;ロ/=s Oͨe͑^ --71(7ɢ_3~tkl? ݫN 瀗cPqۦ8^Tooe9 gDuO];yiAq?H(M/䜜MkH'p{wga EDZR-YфCd&4Ԝ87RPpm)sU?7z/}5Oh wGSxi)6WςǿFp^ftԶW;ΟU,E#ќsesv"xL/RI(>ΙI3 "+sI֥̅U\=N"@>۴hp@#{Ŏ={ݘ>;)B,z u9PNGB*.̫pl+j^#P(.Rݷ~%/ҎUю^Q3Ue"ħ] zפw oƐc'[~ٌ #">>7M.*7MQ Fx >:1MTGg|+[Tz9"yW"X옮i|)$|^9IS 3k^C5j7yoyTO'ӮVI]^A} E%PesSHNqV ɋcg`tvWxO‡`lBaa q{msִb23f0hڴiTi$RN()0^9U(,g[[Πi^]g9̐H;&XME? ׯOHHuz\Uņϑgv 22dyV%Ћr{v '+wM-΋yH^{H'O{h$$$ +-6ʏʍ\ՖWeW~Bj׮JC *n11 {֍Vv MkIiǤIH'88XUc[ԃQoU,Td4.'!!TggO࢜1b١qՐ4i2H^ɋ> !dggSXX:GT~P6QqͽǏQFѶm[ SI/!"h΅\1\*8h$/ҎI;VSxOgBf0 /[*3ZyM\M5\h1G7[Tf'fz8Xi(ɋc5Uw^Y *q,UUR8 *}UV+C Zu,oINPݼOnث:H^};VyOp.0YUMq֩ojݯx[ Bw"E" `~og 7Ops3)` wՆW}0_Q}1 vDK"혴c5)$| u*e ʔ8ϏK.Ď;,[A?WһGS^*} )$|]I"C f(Dʺb6ɇ>B6?,;D,e((}U/>})$|}鍟UfBb\_Qﷱ3˽S2SWiG$7ĆDJ>Ʒq4!(0]gL'93EgfE(.BvB&X~kӗyOg<:6%"LRWeiVɫR3ILI!*s;N&Qm%NQ9ɉ<]ebִ8g02h )^D^ )Q ]oR&W"Zrws;bT2fE{_m8K6[}Eo6.$mGi3hۯ5<i *~uzJA,mGngɏG*R3HW[لJTʢ q/o`AotcH~*Egz&"c1dΟM#2*e|&_Ӊ"}%|5X~_o|?W="wJ&Lڢ 6}mYco]apm\0]ߏ(ض3 m+#_*۶XgO1f <ۘ2Vm oO,ؕU~ӌƃj烼H'_+Vs%gZM-$vA"鎶6]ݺ=,k' 6iorgBb}U>~A vL,^:l_mE? ZZͫblM{3zb{Z(RvwNYU-tu. e\"d2}z*/]_aAZUe>ܳTqKV,?glvx68{f23 o$?g.%lU晐喭Z~s؛JxW Փ3'/l)/$.Z\"lKczjY~Y06if&@Pd˶rS*-ˬYH>\vcH~D)Ѻ=*HZ@ݥQ^_F3IL>{3Oɋ!<"ϟ -GٵH'aR?PqMxlx >GWt>W`nxbܟql)\k#1s 2kE(mXT=ƾ鉙$rݛ u}ke{.;8#zĪ8]KTN@&k+ϙ~ʴ9Tϸ]>^_ .`?sZvz{M(Pxtje~z"ɭtKTI:}fZ\ 󨎼(k뾹xAOOȌ6^igdϟ;U^%3̈́N#>Gy)WBJ# s,fE"},{AGB)Ư"yh9;Kr)IOrtzԔ)Lg,-P ĭΔm{/BBB ,[%>:&ԀHH8aZ:2Mug[]5!0Զx^<2޻$Gzrvov6%MJeuÖ{5I hF = Z%¢o뾑HHT 䤺 }+Zı&'}⊙ ڝ%9qq:= ظ*U{k^_k2r"HkZIq)!!!B LNRPՋr;BɏDBS%ϟvUȪnv%%'wlY=w4xeG4c ;` #:.ԾHH##=^ӣ<Rdp$n|HE\IhۅvN2'=*k^_JۇRilʰw4L#LAHNE J$M8?hUH'ƑhDۢgy&ƘӉa3f6_kǣm♽.)O/ݺلϬGw%%g$L%E%*,1㑤bnfG~OM6u hZBBBBBBBG`8gI>7Q3CLt Q=)Y5v6㞅LWZBBCF:)$2=uhHҼ5+ZSXUS}HHHT]]POReqdJ 5s/M5HH\;H6*5]WΖ$#:GLH^$/U^Cy[d1+Z^F$lz^VF%-k7sڑΑJlHΑ$'!q^W}er+ۻ@QL+%"e,VJxxѝv.EBwJb%|دM~6;KdD $)m/Nk>eJ]*yPBv`_Ӧ$$$$K Z%)ĢW\$m)pAvD́RIHHHHHHHHH'!!!!!!!!q~m,n IDAToOBBBBBBBU(.wv=28_ln%A/VjĽ>\֬hM$8A\BDEi4HgdIH^YA2?Xb)Yѱ,Ja9? @,ǀ."_ɐ%Nw(Rvy֨ڹMEB_F_]L+籆/gXd?󶪕?} S"fE*8qFB@ )` ɋ)$a6RAnJHHHHHHHH'!!!!!!!!!şRIHHHHHHHHH'!!!!!!!!!şyGb80*yHC^$$.tHϟ9{X,9rD"y8ǼHHH'!QE+qE"![B? $Vɋg!!!!!!Q `Z/g=o(  H^.p^)SXXjՊ(D@@FQ"y`^!''dQ(Nh0`4Q$/0/RIKUV VbPRR©S8y$AAAK^$/ʋcvG~~>m۶uBJ:yT>-aXf3fdeeq饗\Y_E? Chh(k׾'2&0X,ġCBPTTsE"y9..쿃 @Q1P QPрτb4PVZ&)B󝓜E⛼Hnn.M6Ź >SoۆtSԼ'Q 0n]/(?E? :LxH MҎL3Es PHHH0f!lnkRY ɋ&b+g@˖-ɾ]4iUEeZ}eڹSP'o<ćKAA;wbP\\ӧQ gfu+KH'Q3#VwҪrs6fVc"wNhcݰ$yH^|g4} ^BD/MƩO8ח󖑪(U???F#[n՜RZZʑ#Gطo-[e˖J^^a5鈊; $SaLW0U؄FZjEFh4b0KHH}ɋE⛼ŁG!`jrJ1gNЗ.hW%8BGyqZ!V^U9ji6y;4Rp Q+r a>F}3`Z1I^$/EՆ{bPT+F_a/ŋGJ |Wqnj`0`>c25+/B݆^\n-)k;ԫ2g.IgjPZV*yH^|v¥1GOxA-_N욮+X}|XQ0Ml)$5D:';I>x5g3 ZuBSlKXVɋEüE:̖`U۞[ŠC8QT[B[JL&@A$y9$|:RG3/qγuY]wkK%tVpvߕ3~ FɋE⣼8ˉ81g^P{XO;yW&_9*j.eGnr1,ֳqv=lTIOߛ;Ӵ@ouVo=6CWq{h&5ov߿H^$/bh&rE0kzTqqum̘dlV[Mnj7/H[7M@_lb`> xN{4V΋}2T?",eL}^ c1l9r$J1ԓ~M^yqˮ͋:E/jxᷲhvrW·]NX7?|݄m"Q ؾmKV݌Ԧtk]}NѬI#k8x^G {iʉ0*H^<߶Ӗt^si*m4nކ Y;Y65-X{nGX:1<ajʴ&`}GhI3׭uYԮehMs Q6ё,np6D x)8qIe&>0yy^gpߓ3%MßW{^\3_zMܟǨQ~0G@嶯c:cB`v[J xxhnBBr^^7tcOP_ϙ\f6lvM,%љGWísɋEٚoP7i,l[U 2N{Ըo J-/+zt= e;-/?Nǵ=旝+NjO?5p0؃/Mc9W\xQzcOh>Xܽ tstܙQSnRwյ3;uv߹sgVd㳬|Gt=7ьCo۔B\Sxg/p4j{ Jظq秬CuP^}*|>3_e櫯o;N~6`~k|iKJ O/=ksld~w~1Љ1cpiPFIu`[z$|\{/۠]L6e3moY2iLsykJ6Yϼ_;3whZh۱r=m"+7W<[GS{z{1]dv$.;ʻoM}:?v1Ԅ{< *^5N6c?u|V-H|zO?8w^^|93>(--aR F_γ^']S[vyf=W6"m/$= C]eСcW^b[=9ŞGm5 >~%avuD]ƎC~ø>|٧e(!&Cdge_һ(B9D(\9/[v ψ,_<}oKGP$=ϟC'~t^Í8IE}+>x@3\=JY) 9z( G#?/C=+n Mܐ6c@ݾ|Xry㺛zhsӟXA3o1ڴm\xM<'Dz~" )\i߮Rգ3~sBk/7o 㷣t6FMX$t$뾤Cx0OpIF sۮEË=;(0io":'y1~1M4m{5. \&سKo8`mE99lR?&aZz^y~FŃW}LYXsƍ1^ ~{+Cnyc3_ÌX>F!p(ysgQۚ OLpA?x ?EQkkxNj)G3ۿ0tFe)w&[?ԉ,o/ /d=e<39&o6zl=1WBj X|w%'+d‡zm0gBuksY۶j>xR`oFҨnsksaWy1*#;$Ev̨;ЬCw;Wң n{+Oe;a]m,,?>6-_zS-kҘ0e .|'@.]ƪ4bhFL7p罏СgӟWkY;3fUH`Z#Ù99yѭ%5.Xj>]vM,xq{'s?Ep1Lz!Rvťi ҋk8©o Bջ ~ro8t#2ۑ5Ki!/*,&<~Gksr^{ ok Ћ3+BM)ڱw0kY<%YY:f+3Yxj=}I/#׶E%TܻDFA(-0lP,~g&7_ۣjkm O%(W2`0i fтyʲu?ҭȎ=xC1ck .>~x3pqͥ=]^w0uG!7g7ΰ ;`?yYk7eov-#ړk/;΃-_ësxOib`?o {w^U 8{/x1JZ^ޜ: #ZPOFulތMZR',0N$C:s0Mۿ?O~ E12*1^aISm t!ȳs8;<wڵk5if[}9s)0%w܄MZuqXGbc1L'Av֭$OCq߶LZݗ~E$ ]%ӢX%\;1<6PT>,n59f1|>h?.`AA3y9S6,%ɨb\ё+pf-7?)3,^xoWtkss۱ry .jv%c'={WL}vy3~ m˯6'N^wxLe'yIy>:_/ٿ|/) SX#rRNLqEar.lOp!/[LQ)rZS/ajI,Jy' {' R̼ t?~qyji][yB-j/"*c4.Zs罓Xr-!&̧OcA`43 m pqK|D33pԝyO(k_R? ߄Dm<>3"ɂ\DQh"+FFbƢ WM1`TKD`$ZHQ^dA);Y&csf|B=3/gyJ韞eb$/^Fim ?4"bm÷~ Sٺc/ܥܛк&_Iܙp-~O4 ] uEGdLJXY^3 $ؽg/&pH.BRnc\Ou&gle~qmQNf=FeE8L`m#!CM>7u<y53OG'L5Kא}{׳<)\FpdR<-*IgrgfKDOĸ!_YRSU5vILb 6@,;9ȖU洤DO4a6; gz=s.I#씭mS1Fzu` 71gٳ|3rgчsK؂e6tQ .cSs 1NFhTÎ?3,fCFxTfϕ2,Pw~T~NZ}vDPJ_XDݿᕷ>3JǬi!ެKDh֟7Lm9Ms/ػs;OTnd͚51|eg:p)\Y:_*n&LKI 1Ժʮa=-Kf;ZINah󠅼W01J5wj<+ 2~uz{<.Vu4TEsfu=߁l0Ë螹 8YS=;T5t+܍=/}4wF2$BU,}b7_Z%O̟0W IDATLg2f2"ˆj C8kYWsoru Lp>syuGs'~y9#ϻKn~̓9Ob6鶷|3͂U7vLm KaM޽{;gj>}½[~cݳl;<b?HĀXEݫF**`yWq5i?˒ܛY} @BضF?ɨ"˫d hwu0C߰C-JuR);~KXl1 #By~%@Of)2}A@17q_uzX(1/b;Pv }cF_pWO<3s`t@y*t_W<_h6SWٰ&^ƵMz酄Yt"w=w`43Mu<4j0T(DWjñξGOUk>;k?s,O~f5vl~D.| o !KGfY,|i9hHeVp=XDܐX.p~,Q2_7.swŻ{C!$bz{;i?99=qiy{F6ּȖ73j aCmTLqoe(|d,!ީWE|e Epo1>qb؊굓)y~5g ]8B\ 8QZv<\_;hWwE<[!Q.0ۿ?f :2 6v]f&'o!_˗?Nsıl_-&Ϟ\q55Rv=a{>jlvR &bI:k q%W"¬i#+f\"?w@ON3.w d_}jN_ Aytp ʞ^ϐ<[VO$*& eog!;7j*4 Lѱ{ m@wĺ(߻E۾(Xx?mQ\34Nٵ1!l/]P_AɄm: ܗw6k]?"Ə>ϜJ? [U&{(?|^O>i`N';}atdO/aȄk0i uuua;.[Z? GuoxRƝ1$t5Jwk||q)'0W0Djdi OL8b^^7/'\49=]coG`]]۶|˶W cg۶^ ukyܙ[oͯ~NHVIu?3p$C}|;cRm(":>g޽ 9%F G7!,Z̟OLPGl^M)Ωj8-M'yjd&oQ1p/_xvg0kkkur{s/k*xZ>ghʮ=~QAWt?Kd8`kXw#ԺWֽg;vtr編ӆ7tExmBF3-& S:ƺu[XcǸ ;)KuhoؿwmuXi;g( sbcO&l6iÇsd+'B;8jtPT0TM gq ]϶;T_}٥@`TAD᩻hJ3x f%_V%ޤ56F ;o.!sU7sU|lh{߁Nq\h` ˠVG1g…)OJgRs? .0<燹<{%M',?<*_lsBC,TgιW3E:j+C1jD?C V]R|RA,r?sX_֬[Ih١ Kfb7_}E%bh>LG{'kEGFԼ ggA)ŀaujƚ?:I&{˾[wq7| uỞm#s Wͮf1߲D_ӷ̏|]fwHLJ):/GP3md"d2$*HFPd1 (;Fb|ļB@ttТ^MӘ4im3(>n *2hӸw4׮hfesdpQTgsűѪ]ɼrߌ&{,Z0h90k/'RMT+͆aߐG5'c&\҂J%jb5;'PSSOgZG41B8UYôK|9Ɇ*${uɵno9Mho;r{)PNv4,^`ӇR9gL.S]r9C3uQJqu38z]F9w}5]P뺁Cep|1B'}@z >5>Cx>:4]rqt XYVHwo2 [Wƣi7xM8.CNK0қ0k̟.~6<\ɘzelE.ZG9_La1ȾN{?/F1}ڥ^ 856ү.h9gtş薡7̳|?*p.joZz=[1BЦ W>san d*U _?2Ȉ0O&]L WPk4!old6 Vq^SYu_vEY{yh:]4h"z.oÝq#f~8tA3Q {(X3X,!J嵵d:Fak<&Ǚ`E̟OwONNӓx#cO>ؓAO`}< L4B,cr'OҔZk跜.xUE.q#Gv|0X0|4 =budd$7o&cq\֜CAGG}!""8??!W`7Cy1 eM>uk P%.2 XjNw(gA@^wcyfY޽{'$$??!6ng^wS'>hX&.KoE)Ehh(| L8[hG̚0s2dѣG.a] A{wvBSYs }[IhX0's~+Et]z.QQQ >#ݴǔa %ߓqU'lg„ ;/t'-l@ [X{sw?{t༿krV fdOK1BP·~|NmCql?Θf'.KʡC裏R_uem, C%t'111[ B4Msl+.Kرcikk B"O*;C]Dj0.?s_AAE~  bAA1  ?AAA̟   OAA'  AA  bΦ|Q@ ~ߔORF9-~/lA6gox-?G"_[mDSri8%f-L =fbZ35k- l34Ն=[1)~ ?)~n|o֭4 w1B1.?eNŲױէ3;3 +)rhE~Ri6+5the@M޸ 5^FPtH-(#~ +DmfU@L48̈m-[bⵔf/ 'h2B\ZKPJ(Qx͜ʖrr9ԪlMЙ=E49pTM6Ն)Ns@n] Fܸ@Zaī?~Sb=~ #-&򓲠|%WƧId>gPZH[KҒp2@gȫ`-7o\eVcffH?qTע AΗb Fm$EJ@|0iX_UGvjci9XA8o]-5)l`3) lfl-Mf\Qg: T4u+!&RHHD)dŤ$RήFM[K.E4))s{bdk~'@=iI^]Va\1W8 XԓHz6ڍ '{bȅW3;H-h4lVg%C1fчog8?cŌ.'jKCuΌ? c(;\\Ȗr9MZsq&c&c4Gecbu<?2aK{]. V;RcrQp#{5D[ d/PNkzY`=N.O>y fXNbd8A-htv0V6AjӎT48 W#֤ulP_F5TN=d%Ml`{D?l!YdL{( l͖f`+uɣIpfzabOi}{;f i+uu:1$STͅ1pd<Θt U`K!u,(tmrˮxy?!Lt5.4Lv[:i+|#&Yi_NKj'dx,tOjFHܓ/P>;$ =Ok*(hh;܋.'Nr|9 ?j-(ؖRG6 !>5OjYl1߶RJ=IˮvdpYsɩU%(UkX+eInW}%.k:~Cδ%'C4j-iuu `:B@̜YԂ R YBVc5RNLbL>)}81D58|$ΦJGJEͭy \1D&2wmPKdvE>]Nq-w|"c4:Y \`ִJb+5`Sْ| I3L=R;FRO|W?Q.O*.ayMV%ƍ3Xt25\@).PU-2 U68 Sz۞HYA*nG-Vl. m㳉4֚lO#YQN\V]Y ME&l5hR+Leji6%]n6T4}Oþ3ee=뚛 U9~.Oet,k5!IJgđ 1=t=oC%0rEI{e >C-\!It-PWJBaMdBrTf737WhPԔC|<,֘ZĶ,1Վxݭa-Q.ktsܫVj,p<mj92]NfZpN^\fF*.?ιeM[6e -S$%XC!Ҧ]|ZD$ IDAT8ˎYKT`CRK(Kn7]SJ) 8cXKKjllILL]D8r"#=bRT?{J)'  7ɩu?Z:S"'sAAzbAA  bAA1  ?AAA̟   O,oEt1pB4h|lРA"g]᧎T~R#! '  AA  bAA1  ?AAA̟   OAA'  RC8a|'  ?1$'  OAA'  AA  ?14nAAHOAA̟   OAA'  AA  bAA1  ?AAA̟   OAA'  OAA'  AA  bAA1  ?AAA̟   OAA'  AA'  AA*;UIENDB`context-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-5.pdf0000644000175000017500000003147314411653175031427 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 449 >> stream xڝTn1 +aЋ@`^] W &WZq.ãN!)-Lg a1`X`?2HXc\ WRr O lC4$C~x+b\dmbP ăSHi|v8ϝ ə9:'ߧ^-78Wg?76GgסM'xg#(0: mMr6lasjh׬sZAV& xu ԃVumKtڂkBHuX[ދv[o!'TFB.sދҸIb͗/, -mOM쩉U b(Y`T9r2 5ʗe=Qm Q(oR Ag5PAR 7K˿2@,OR%4(EZepyk9? endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T16:15:03+08:00foo2023-03-17T16:15:03+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 7949 >> stream xuzyy;ݙ=   IH$-RDҲ#(I%ۺӇL*㸬G$Y)ؕKeI4T*J=[f_w~}C(!$ KwxІ4@z+|:mIB}o|Dq MG^z%B/]W>@ӄ8ΓxOP+?|GޡޟMr_!!ȸz)JpOoc翏O]L)׸}'S3]X;Yh=!9KBğ`aў!D6ɺڋ>7B܇ ⯢}7v?!1F!)4_d_!$HH!eEe*ֿuBj3h_#kk|槰=!ڝt6Bxs̽bzjwN?J|G>r!QXݎx8ʅkuF+:(EY,ź޵E6d5K:fj֚QsbgֹN5aw~zOJ4q˝t\Mz\ibOLoY+)шtrFOO#5$DB#?+(B oln zUs00xx!Ñz5 K{ vF>^x1p1=r0-MvJ2 ;CTNCN 3_8)3(&Ls_9tk~eii# RߕdRۥ9˖^qCʩkE9YR^ljնiRzK͐Uɜw%dD5aݚJ~[X(]QA7~RL2y eZ$b{v[(-fVض~fCۗL^+g:[&n44c'Nx˔ىk{]}[y(Ԅ%11U1"3$:SLjӬCKƳ9e%ӘPRkj=_YXX8r,,ݮ]MK't鹕rėC ˣ3KKf6ly<%WZoXjQpVυ~[?k7PiUiٳ ^s}/Eetڞؕ75Qݝ:\a~^ZI[$1Ž7\Y~5ħcܣnױ皖ǦA*d,`^vOagR nGF}Q ZN .M< MNT&-47iޤqIkĴy4Mxf0odIyJ{7 +\}ŲJJP(l[Ӝ q+ҝۯ|k]3_3NRgFʇF,X*Pq aL0bbm10Q9wyYN9]fu<*>1^MwMۋK&+5~/̚;/K%߬6S- >"&Gi5haH#^#V@چɭ 1O+ C)rM#̶yA>V]W&,35ϑ~j\ᾑxPY Vr_M7>Xrf0FX>%]q1=؍埑_"d/9'xXU1oX6,9R[7;P Li-L$\CV[~[kR:ҬJL5nB ud_LKNh] mI!CCJXZ@_g׭~زĚKaãb8!jߓgMl9Qh8!M? 6Wj. :GԧyIJ=Nv;we5r lF3pϦ,<ȍ.Cb ۯ~z~a\wÜE\1l)Loeb*tmnLoط}Jܷ\\)%1;^MosMf j~qZy7'Wi%x@$9<`8R6T 1t+49s"H]k Rkn9\c[B s1mb"X:*x鄾 cN*q-xcjz٧鹵L[.Q?vNz[mXn4Þ>>p:|S\l׀Z8pV_I\D:m [ J;EPSf`F39V`57זZD˥VtOyCim$gljh.O#ipٰb[܊I{cp/'Yr07nji+6b[>Z1,]REQ1~-]b`6{m?V,%7qQB۩mSL,Wt.p.U? yfĜ1gy\. y>7uDݶw-ٌѰZk .•nz4S=/wv!|CL%'^7U~KȠ +ȸ).wRH}cz=K4W$qGEx?~wTZ<Ӷ1wulsJ-x't) A}:lF ZtfgE3NvS$#=&m#҂"/?C5 3VODWs}.*Y$"`&2.h(ϚXଢ<[c6ب_Ҟ;vNp"-m9DwY, Ee ƚv5}5;_~(#i.t묙ʗ4G:ApC c/k '[՚ls$qg{u'АB0t_䲋՚YE3/_F67BVru;F,dh~PRif,ɂ{?G#m?6*oI G[Ӧ2n~@kG\xȳ*=^4Bz+E7?z;xo3B=}2->+`whm=&ln[:gg/‰} c?^ A8z ׉T6I6cϊ U1szan磶?~`I-y{kMF`Ydv;Sn?Y4ՑFa_e JS=h`rrt;]1t߲f 3۰< az# eKTn|ј3z=.A+4D2/ J3ƚ?w?ͤJui+ 6oup'2z1dzl!|N4^+ }~rs۝v˶_7WnbrT(?p->B-Yp,xB>um7]L(,Y6?SلV`v ?5[)4wNJĬT,Y:=XK`ҝj&"ƎR^pd +Pbk ;bq9(Dq:~tA` KάjZ,i=j6y4ixr$MJI#FI@gArid"6הC-;8nhv6{y9dp)E^l-Z>"kyR";IԺU0{@@BYc~zX;!$M;{awi3SW[5gWӡr@{oW5.1B/ȷ&hrn:$`25JÆE7? ܇qgy WOݻ~`+2_&uY똸ɵ4wga? ӿ Mu+yԺwu9qVT.e+x[~-J@uo@p3C sk]X\}}V ]^5^7g遈!8ʷ@Bⱍ @,Add4^ || UF¸Kjwh9ϗby ӆ`~X<@ׯq{5=|OI0)|\f6KuK)f:31 ljN"tZ#YfBP!{p Vs[ R3mz'J탼ٌS•5ȗyz+(- wgH lѪQe"EbP,5,HoA:B|N;FQÀ.1=WT;:(G駽f( P[]i2Z›%)kQu*~kvJ졋RuGy@--$h&sNJ.2+*\4R_OFϨ Fgޱw٠$;ߛ7$6Z"1$ߥ'&, (GiU -)} J[62 pC,fۥn7tƪG`+ ^r /9Dzm#[*)Х W󊕙y#/&z,RPZ>;7yiiA)f=.XT_OÿcI$`y^W)~/o0?)ۡz`cFQ?G2deٚgI̦@?j,,x"[PvYU8XοlDžVF̒5s*zkF1Mw4߶xnB>0q"h=ly&;٭bg6$L{IL-f2 fr.AoiLpiN)0<-7 ⺧/7xݎ8f`mz\׺ɉiZPX9J)Lelo(>@ Wұ5[7aEmWH z! .r,S7\t6JJL~ -oN0S]v/n2}nttpX+B*A uiQwE.4z{Pj.rZ"(RL|m*KZΪr@8.eh0wc:{Lʵ5oֱH}QXfQ[IWnR|2BaJLnH.6WBfkKa;Q&"ŧJҜG7h*6mq]+_8pgG3^Tyޚ[H=mB':i~,ӪFe:#=7 la恸? ߷P]BJWr,Q@`;HUD&罾$TF!ݫٸ,Q)99Y ypQh@7ǥeG>* iY?ŰuI vgajGQᶤS٪g2ӔUsI{J̟*!AO -03w[ZD&ޙ l(K:#uh.Fs9a|Hou'.o#ϑ5lF NVUaE6I.#칃אGdhi6-ems g Ξ!BoVBfeQ<3{t]]xFسfr aBF1 ,5Dxj;e$l' Ϥ_nt긟GBMB@zx%u_iZ.YyYi4X.Nt_4JT UUV9oŽ\uRUU>@HeUccLj(1,"db8uNKE=(v- f)ٵyaCތ$Ǔc V{bǃ7802ʬ^Ton75"d7o/?,{V*f2JT D%LJ~q=A\GLġ ӄeOu5U9A&VV RհoОS^RX L2+lVg!"ibE۳ka50!Ltc& Hd%pxOӖNKK:JZM3QhN~EhM4~ݚ[VA9>3i᤿ΛkOQg}`y>ZrrޛNOc_5^or\ A'-D0~{EU:ӎCSPJU܋/1yJD_< {PBQUu-_)cq͓(| ɳ+>?[8TY{19ڧ1ο}+)EŢY8r7_Ck'w endstream endobj 12 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 711 >> stream xmj0y ͢.bKv _!iKS]j+CcYG90 [͏<;Wء;g?MUǽmGkk[O{jcGvuیw.xV_NQ׃Rٴ!Їݾڷ{7~slb_\;fxCӵLs݃nlai]ֽ}l3ƄduSgj#&|B8YAg<|i\> o(3 |L}319! ޻U/, J ?C>-}kF'3tidD>*xED Ot * 6&Sx tHWg }?[$TmQ,)zCTNP*I|3cvִKXu{@pᎀ}дd5/os endstream endobj 3 0 obj << /First 62 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 845 >> stream xUn:}_1ouPX"QH[&i;m"D,ѐh$!Ι 9 D!pb8Č`""P08ppF\(goͳY̜w0?1Eq$db)K%X60+;=\–؉U^%bR;S,˭~RSeejJoM׮zYj7-~3"Yim[.XN|lapK7eoSXBX['ag&:!8xw&Ͼ8PDAc0Z_tVC:;?ϨT B|զټwHyYua~(] ҿ2Ni{#swx/fjF oؔZAAwe@\jyJh7Gl SUvye\7n}kj{tG ~]Heq ^-*/>QA]j)O2s7fR^ ʐ5 eG˿͵-_ShHXs^4;)IB'G3}1r0J.^i`BhՔS&߲xyW`+zS% wCm!<&LeͅvȷIqÆ coz tk[Ƃ/N(haЮCox)I| #Iv~ݼUv ШS}_1ސsg0t7QE6 *OC9T0 <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 66 >> stream xȻ 03?HHHTAF .ͭz/xe64đ_*ܓ]6zwY endstream endobj startxref 12818 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/setupbodyfont.pdf0000644000175000017500000001774614411653175031364 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 234 >> stream xڝJC1ELI@ V[;1ҕ•\!vqsLsOa힀{EP*"iLM%UHPAx33;Tgu6s|pO0Yk%WFYc=v9.6P2e\6N&1qv=|Z2"u Ǔ1=N`.jc~Kx6?1hEcAbV3\kK/˗r endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T17:12:47+08:00foo2023-03-17T17:12:47+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 3430 >> stream xuXYy9vgv'wvf%7)RD2+ cʢh* D vd%$CI !C` <Sq"Fq|D*C{b7P]_ K"tǮ̗ GpЦ1>\??ϐfן~1xW>u`*B^{g_G(:/?0~=|/V*H}w m;0 DP |Mc Q&裫5+ho1&G˷?O6vS-X4 'H%ll'Q6)=g|^:,ӿ_7?֠ү'S*QyJkאw[ϕI6x#%\Seó ؊~䭷㥭 y\т8zl/Ww;.'O| ֹN8&djG];ڞUٶU?n}Q;B>v{պ19b BZJG2Rk_ZG|qa蕣_ހ`UilaKq28R⳯V3- ;Ϭ^t=1t`}u[^" 2}l>ak<h!sSZj9W}lj@oJm."]I"PHyR %qiښ͚Q *h)P{Xjj0IVl9rԩ#NI`/_Zб:ZN9o[Vɘ4Wτ𨳹.!(`œOVG۾ٍ:zꍽ؇v{뎗\iTF-y66"x3/n3׳f lEL/vK[a75!w[yxn8 zDT<>~ = v;)K^]5Ά CԻRλ9W\~dJFSx}OY^y=OY )ڂP´ch\q*Bkΐ$#VDC,I; 4f +n:+B_e\ek d$;TUVs#3vڜ6KϸV~ cfnՔk;E5͡Ee5JnQ\IW+w`XEhr?DF/Z%=W+KF܈ ۻtc9Y#~-0ث8ous=cWMi(֭?3?|+nf؞K}+t~YLǣfSJBq[C3`P$uK!B^)uܬJT6t~q~ s~v|l{o9)mW֤AgF|${fl+^cm8gq `mܟl9g-u"%M8_Wq>Cپ \GsO/H+ʄ8nzB@J}a2wg|oUq-c/X? < LkEx2)`x^iLa ?p}Sq8<sEP!hs:.vNKKEZkeB׬ܨt P"S{A L 0$w~2.WR2 ?>Рg VT$)1h}XN ;p̝(؞Hr@$M|#ȨA*fjEMk`JzP~QoxE_S۸oRL%g~1vr~Ch"1Q (v[ekA_jT5`>"|P2sl@ %s$ed DzYa '`"#G۴gC#d~_ OUE0vt&I#TasP?9;ۆRBVWhvIl `VO_Il5G8 '뻶2<0 2_.xe (4PK"G9H-3]&τY{gaXpuRa^55eFx 7^ڨ"GՀ}{ͪN%4,\VASW `{.ٖ6w47xAݔ|^ Nx=;͜ ei8li)#̤ ]>ٽAI97 @scm ZZ M`|r<n|>|y" y?񏠴/šn6[V`nڷ S\ ;Vl endstream endobj 12 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 13 0 obj << /Filter /FlateDecode /Length 502 >> stream xmM@ڃiP>&DQLxCuI! LoU7Ύ$&>]o}4冀IX : +գx[])d >DWxWU&QMdNQq16Rȇ >Z(NZ6E{E8!|={~ |b6$hF~ ӝ U?hsy{g0mPִLK}iM>ٛBb(*h4apqwAY) fdF1ho> stream xڽUMo8ﯘ[HꃒHֻI6nEDkX!H(*°>Λy30 H!gt1CA1H  /w+7ՂT/uѯ+xFc2"NSAűLX1,A81K+ScOOOˏZkZ;uSLVmiE &j^W.Zި_h͚`M3[v-Bl(usM#|ޕpfĕD5u? qx1DAS2h!t./+6`*` " ;*H͹K<*j_fuoU KB?ɩQco~_\=Ƨ3Se~IJyKjpnϿ0G489qሷ'lm5hHș7:/ȾS {ݚca8m8x1Z[MSV F CV[wNJ*dFcnt;oH.շ~(/boPϺiKiяlkΘXd->kWk;mJ(,rr,Y2cl|h0yyy**5U2SC]8AxBF+Keo9# ď>0anX1&#b|9Q˜O?Bg;a #n #gM|yr18~Fq.ǩ~]QpR~&s~t룢ĖLSO`gܥŷKt8__ Y endstream endobj 17 0 obj << /ID [ <071F6DC81BFF65E754ECDDD79ACC9B58> <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x 0D;A&2oq`$j=W|.؋%* ?zF͊:Ki endstream endobj startxref 7871 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-3.pdf0000644000175000017500000001716114411653175031423 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 259 >> stream xڥN0~}]?DE [.g D[753ݺ-!Ge}`"z., _朠FDVp`FQGL?mw,* [tJ!N(n{EݝH׌)dKX7fMO8bU2zwGZ'.uK4A<kg7xt?]b /_*.O疗 endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T09:01:33+08:00foo2023-03-17T09:01:33+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 3042 >> stream x]XYkggfgwwg]_"9bC尃"R AA9@K.CEID$!!lTUU_0BH Щ;n=}s`P``/hJ ǯwzw!^@[o|" '?{cr>8ݝ 0B.щ/@X8}ˢwW#3@W??k/KеA yKƯ4ѫ5ѥFsJhM=AZh  w)(O 0o!B)OɣP-F G؇ ?Tr]k]tlQv5Q/PIo0Y+~&0>LZ!kQZnxw0lno5yhYuDMKX?dN7!8o#G~Dx# uHn1MJtI)MY'y1GBc" BG qhWcM6RHW'0'T|74}al{ ņRӹ5CXf-qJϡ͎G)˖۾6&Վ[mq0皆LPjTWy0G]&`< A cg BY `t7tvn"SSKe\vRsdjAڦ͛X&mhL jNRU 4LnؿDvQYmbލS-up|&9. 6r^F=^A zh:ӫ-2XJY.vi$ 6X:/5nPO޾omҎLViUpbr|AWsji4?s<Ȳy鏠ŀ.L@=egVx7o8!S;=xYENo-g2oE=Cm530gkm ݈#1]ntr鴚,{ǘp\`lEOpw.cgqg*9y 7<8(i00jfYau7uyiLtcpNtuS\D2o; J7ط a_7H:ܷ]=Ю#L8>!]s >mCxX7AӤ5ٔ63L Z| 8 > d]_#0~nùAa.znncpC^tZ lW`uN1e2WܵAI(ػ4QD<[աzI,- t,|m.Dwrz~n|\4n-JG|+Mwc1[V}¶I"@ϣ>:ɷ^ ÜTEZ8Kf̮:JoqWҾ>,꣭׽]gEpt.Q`#VG BqZ@*Mٲ8jkH}:LGo8Pq3,`JaŢRJ$; :q{6 (M}0r7[ 9oTS{Ɋ,Ncgxm֊c:uRGr"t6hTt=H#ˎBA37!1!Lc0/Vh 4^)74֕p}z,,CI0e].Q5i/{ry)=Ӷ'K؟v,&K62.حTj R Hv68^4MMcҎj^vlʩn cRݖJ=0iQa;ȃ܍)2d#cx={70V'E۷D9(ꅴl+$eۍ؈?]\5h& ҫƅ6y8\B020djP8˯\5&dWb&B5d2֠Xg^.7* *B/mDʒc+b]F簫vNKlˏCi:&A)E:A`_6.IFwW1}x9&'&Jq6wudz|EtY g A׽^@11t; /b|/ c/v0ΎFzyGN҉֘U!h %.uXyMoݤpy-”ךZ,E_w7n_[4Tږ\\mO < vT7\\H/y2X5$&7O*','=~),يoҔr>$x 2JFxr(VqDBkgWpB? Q׬[ u )Bk@uw#Oe=ӺxczKnr\Q"W S>7UN{I:;b}HB@!Ep#k8qR r_Fu`lF:B EVVfTR".`R6m'\9:!mmYtDhۄR(j%mm,>R<5\ŬPq>R&Wx勋h:/XP@;`~>g0kx\_^bC>d/Cyx<<1y+?LbA<B߆}rÜ?wYM endstream endobj 12 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 499 >> stream xmM@À2v'FA<0e N$aVuwte >[_̼ ^|ɦt.+jߥR|*d dުxK'dz.ZsÝreEuc5Ϯ z~IzÃT*f0v/T(]5pQK eצV*w0 M?Pg>7YWIEtKy?L tq$ݻk}wiku8@:SPSdhndaG7ql)@ } K4A~d)D `h 4#߬WF0K)|KwVD? MҚ&|e)%Z.2i0 -qeZM)[;"QaƴoM~n@i aּsz+rw@?A/  endstream endobj 3 0 obj << /First 61 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 833 >> stream xڽUn< wK1ĖE6ekIC/[ V +h GZvav7$ꈇ< "&0$΀ORH CB!n$D-Fdkl_VP8%<"ᏇK!Rc,J#.uklvUVC |X4VUzLLY0Z檶}9Vec rQhYf~\\=jXLڠ nƾU{k\@`;5q ܿWeB^ >Q;Y4:g 1Aڴ9wZVV.v 2V]Fg90Hۿ }N&n7m4usϫAwu@#(ԥܨ>T!k+ ѱ#u)vLSj,~zm>9(#-m!KZh]AD0f'k62> ,26@ޙE%2W^u1l<Ĕ1JZ\H|)AX6a%{؛ |U-caX18< : :JtK(9]G[ЏA7aƍ!cϾ\ 7o`>w8S-|?;oa;L]$u'd,'r{( <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 66 >> stream xȻ 0COA؂*d Wɾz:/ۥ?bɲJC@wYCu endstream endobj startxref 7497 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-4.pdf0000644000175000017500000001714014411653175031421 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 239 >> stream xڥJ1y{ss' Hj+t'fWRt,\IM(|w&|9 FLn]VH/L0!zj6 Tg0CDٺ!#o=x iu;l:lA h> stream application/pdffoofoo | 2023-03-17T21:46:51+08:00foo2023-03-17T21:46:51+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 11 0 obj << /Filter /FlateDecode /Length 3042 >> stream x]XYkggfgwwg]_"9bC尃"R AA9@K.CEID$!!lTUU_0BH Щ;n=}s`P``/hJ ǯwzw!^@[o|" '?{cr>8ݝ 0B.щ/@X8}ˢwW#3@W??k/KеA yKƯ4ѫ5ѥFsJhM=AZh  w)(O 0o!B)OɣP-F G؇ ?Tr]k]tlQv5Q/PIo0Y+~&0>LZ!kQZnxw0lno5yhYuDMKX?dN7!8o#G~Dx# uHn1MJtI)MY'y1GBc" BG qhWcM6RHW'0'T|74}al{ ņRӹ5CXf-qJϡ͎G)˖۾6&Վ[mq0皆LPjTWy0G]&`< A cg BY `t7tvn"SSKe\vRsdjAڦ͛X&mhL jNRU 4LnؿDvQYmbލS-up|&9. 6r^F=^A zh:ӫ-2XJY.vi$ 6X:/5nPO޾omҎLViUpbr|AWsji4?s<Ȳy鏠ŀ.L@=egVx7o8!S;=xYENo-g2oE=Cm530gkm ݈#1]ntr鴚,{ǘp\`lEOpw.cgqg*9y 7<8(i00jfYau7uyiLtcpNtuS\D2o; J7ط a_7H:ܷ]=Ю#L8>!]s >mCxX7AӤ5ٔ63L Z| 8 > d]_#0~nùAa.znncpC^tZ lW`uN1e2WܵAI(ػ4QD<[աzI,- t,|m.Dwrz~n|\4n-JG|+Mwc1[V}¶I"@ϣ>:ɷ^ ÜTEZ8Kf̮:JoqWҾ>,꣭׽]gEpt.Q`#VG BqZ@*Mٲ8jkH}:LGo8Pq3,`JaŢRJ$; :q{6 (M}0r7[ 9oTS{Ɋ,Ncgxm֊c:uRGr"t6hTt=H#ˎBA37!1!Lc0/Vh 4^)74֕p}z,,CI0e].Q5i/{ry)=Ӷ'K؟v,&K62.حTj R Hv68^4MMcҎj^vlʩn cRݖJ=0iQa;ȃ܍)2d#cx={70V'E۷D9(ꅴl+$eۍ؈?]\5h& ҫƅ6y8\B020djP8˯\5&dWb&B5d2֠Xg^.7* *B/mDʒc+b]F簫vNKlˏCi:&A)E:A`_6.IFwW1}x9&'&Jq6wudz|EtY g A׽^@11t; /b|/ c/v0ΎFzyGN҉֘U!h %.uXyMoݤpy-”ךZ,E_w7n_[4Tږ\\mO < vT7\\H/y2X5$&7O*','=~),يoҔr>$x 2JFxr(VqDBkgWpB? Q׬[ u )Bk@uw#Oe=ӺxczKnr\Q"W S>7UN{I:;b}HB@!Ep#k8qR r_Fu`lF:B EVVfTR".`R6m'\9:!mmYtDhۄR(j%mm,>R<5\ŬPq>R&Wx勋h:/XP@;`~>g0kx\_^bC>d/Cyx<<1y+?LbA<B߆}rÜ?wYM endstream endobj 12 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 499 >> stream xmM@À2v'FA<0e N$aVuwte >[_̼ ^|ɦt.+jߥR|*d dުxK'dz.ZsÝreEuc5Ϯ z~IzÃT*f0v/T(]5pQK eצV*w0 M?Pg>7YWIEtKy?L tq$ݻk}wiku8@:SPSdhndaG7ql)@ } K4A~d)D `h 4#߬WF0K)|KwVD? MҚ&|e)%Z.2i0 -qeZM)[;"QaƴoM~n@i aּsz+rw@?A/  endstream endobj 3 0 obj << /First 61 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 836 >> stream xڽUn< wK1ĖE6ekIC/[ V +h GZvav7$ꈇ< "&0$΀O&!1bHx68+7 قdλqލKxDD*b@zQʒIB8ǯG$?=\6BטVrziVA?\.`UmKr*ƚzв:;U!ZOkn{; >.TroA}٫!ָtks~v6k38k2J1⛅8 |1/vh t3?0b>i7/Rs#˵/B-ܕY]"+ee..Pϴsa߅F~[M.1:nii0LTW=E xheNqO7[[E=K9XHCV5`2tG jYMM-4j}r4QFZ>BV{к`̂1OւOx,26@ޙE%2W^u1l<Ĕ1JZ\H|)AXø%{؛ |U-caX18< : />& %-Ǡc0b1rgg.rl0;)rі ßj7ᰝC .K2XC?v=6KKtwog_?J endstream endobj 17 0 obj << /ID [ <071F6DC81BFF65E754ECDDD79ACC9B58> <071F6DC81BFF65E754ECDDD79ACC9B58> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 66 >> stream xȻ 0COA=*d IWɾz:/ۥ?bɲJC@wYChb endstream endobj startxref 7480 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/defaultfonts.pdf0000644000175000017500000007457114411653175031154 0ustar hillehille%PDF-1.7 % 16 0 obj << /Filter /FlateDecode /Length 511 >> stream xڭn1~ 㙑HRU=Bx}t[lgoLr:P/XNqQmȠ!Jr<D ΐK ?}byj᛹2:ېߙ\!# *]W:hAicjhkC)V\L!8(WXGMQ[ F5q4 j^VV߉H}q^Fw pn$kZ)b3y!4jPPy7<ٯ6b4Q9\10- }rs#+gץ)ծ#K5 S~ˆ.LCLpX1ʚ1XZkXsLץeB.v uCIݐq1ь!|X|>M9%>K/Ó5,˧KJJ,#c?QpѲq38jJ˅ endstream endobj 19 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T14:41:08+08:00foo2023-03-17T14:41:08+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 23 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1545 >> stream xڅU{l#N.Gh^U-|NCaJlPHa (+u7!y8qIcIq@ӌ t-Q!ӤN:2M m~->[tsRP*w;"S>SݸŤO؜%QEErv~3r7UeX`C"0 JluxiNwP5 RAK/ #Nbhm4D[p@OhtC4}mL-Zbl:NJM:iܽuDZugMٻHd9%8r0@{d Ԙa.)H?<>~|-\MZ2(CAwLGxW5</DkW5`k.8W9 žf?`ϱ7\w3#ѩk&#*벚5hvº4t+k7iAp oN8]NSlt-AƇ,l^I^ߡ;~q+a`𚯤[DoL׺ 1:α/cbqW,zaBY{3"掚cc<&n}=A\pW8+N]~D=MZ/Z%>36ҖJ#IueGQCs1ESi6S-:dC ZdCp/^SdcEfu/9NeB&QØ$iG(mi}QKt-mkJ؈\}3BwT`vu0x\.I#a˕=u\_Џ`ۣތeZRkkfN ~RO+hv6ZvXbDVNu) 0;JW.]z$I-''x{w%=^~m*OǫLtԳo:yZƶb|e@!`T&oʍ5gt3R} OhfQm2LaaYeCg}|YvSYN[Uʭh=M>!vz=㢾^|nri66f89n÷>! endstream endobj 24 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍSMo0+fHpHAB"-T.-*hkjؑ;q(jk)Rgkpu@or dpX4Oy[V+C$]R1Sǖuē=Ş=z!7̼y/xΙ+ s&я@$G] %! ۹ˁx($p `bzFKi0OQ5 b>їz1Ϛ y*M[T )˱;зᥜ\IzE8a3:u+/( ŚVk%ʞN#{#/V2e\WUdJnȃCn;d:q4&C~f>tȼйoX5^ߐ:B]BYio`y: U endstream endobj 29 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 672 >> stream xuRKLAiwGC I+@L=c#рDix.`S,*h룠&DIł/41Agu8K;/7 2?SP 5J-KU"*) (M٣Wunv2'#E(bb0FVvUkdefИw,?J- 9URe^cw*c pz2P%`و#!e6HJ'Nq0ЄDjMVA- >'erԸfU 1{S.0qp#]b BE5weu_pJTgnƄ#b͋goJB'i> stream x}n0yf;*4ZvMu'H,vbWD[Mbsl$ц*i,`z ь}Ut[&ֵ^[U"kEH=0 Vq}LVTa4 jHT)vGv߷5a-W|cT QJnLBQe2Nړ:hDAUoҍ_5eG3?|y\A pNE|IO:ǡdBE?4 B%(gGn$mLc3xG- cG XFGՙ4#y"5 V.;IhDV4Dj TFj s,XD`R0'tYf$:{uwVA"*;`Ds},c1J֡ \9l8-EZ2cQ(Ƶ0K_/% +󜓂ӴK!Eg3w4~7l w)>Toyr;ߍ6?v]+ endstream endobj 31 0 obj << /Filter /FlateDecode /Length 390 >> stream x}Rj0+@rp,QJ622*2. !!l[Η9^ jpSbhbrY4&z`>hVE9bB۷DyZAP1L8gC #nSeF8~=d1E?7k(X'{Z)/3V+0y J4*B -*4кBV?:֪MbJp[,Ƕ#rUVZ~+iޫE7" endstream endobj 35 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 588 >> stream xuR]HQ;;NVV̙ZV-%6H B0TulA *lF#[TVCQFS݇fbk+{8~sCUZZZ^5v趶*t5rUZSY`opQ#y;X"˫9{kĪ| doӾRnBKаn{5=С6wjG;;=#iq<a=-<ýEuȏF]Ą!M& Y=R$(4dSILaNNe2uCjL)F.8 ]: A7 3y(7Kh' J/9}vxT>8VtuP[LAU0g:VKHPy!@䃻ng LV|8VAbj,#F1[fgɤ~ۃ&Þng&0YF_ kjn=~a񓇻ap;EFJfuU=<~uHd8H\6 igsѰ#QόG&‰pε^I/Kt S endstream endobj 36 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G \{O*'r/QJeR~;pPLH'QA6T,4YᣐՍD,tvAzo#3%ja@x wKQ(&f$O@$ߡRFR)RAΘZ VҜEcxL%‡kXrEu`TW( ur.>n[ rll )X.h|ς6n)U6py-$eƢ2ьqS"a$_J}.w+usN :c:[J^V=:GWgu{W͞'SnL^7_ endstream endobj 37 0 obj << /Filter /FlateDecode /Length 391 >> stream x}Rj0+@rp-QJ604lSڣ#]->JI4;;;X/L^К?𱐕hmQ>VȐ JKl'x9dOдbسn^1J1}`uiRHX>&U)fO} wNL;K7vmdfF,FvgxSW#grL'2BA]y"&z ËR(SO"Ty\ct(ámre}/:a_uf8N7dXE_P ^O&{*]bJ5gA=-[4oѦE[llcﯦ hNfl3"8\v.My'5& endstream endobj 41 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 673 >> stream x}R]HSa>ggg_jWIfa(DE!]xf'*F,Jgُsҋ~P Krڲ]V~//h ˲#*f&V:,v4U7tX*㸌-^hmr>'hdvN~~KB -;A $7y)[ɜj2i, r;w-.))] <$64mv` 1ZR pgYv)'81sWJ\rpZ?蒜od ? Qi*tkq{3F@'5D=-nxhY>ഥI% h\qnq׋uOnLbAuIQHӌ4=+d"n 'fG!lFsIQ›^]VBu`Y-,: U?|?VL_ 6=$)(OTp`׳\D8D8¯8Z*>\//=G/VVܑ|~#mnFWvݻ 㬳!> stream xڅTn0SM6$JM]H%]wk6vG+$N*!ssy|і$ZS!MXҟ,XSOۊ.U]GغƭeAȹډEbROϻmlu0 z530XRq4#Q^[n"bx*V*&8tkZM,ːqٹDP$ Y]Vgn՜)rb4\}).;?u0:~=ϗdBE?4 B%(g#woD7bia=CDp/M4r̀nѻ LB<~Zj~H+QU$4Z+S"i 5i*~ ,\RmI)UuDc$ ;?{vXbyT ĺX.)T)8!7Þăhq֑/-hmL endstream endobj 43 0 obj << /Filter /FlateDecode /Length 397 >> stream xڍR]k0}ﯸ{6c ¬P7Z I~~`" zsϽ$}enK`,E7\řjM%-RzȐ5J=jh4\w 94)6 Qlh]]VRȥ; UKl9@:FUΥ%`Lk`֋q? \Vh58z`<ogVVb8C/,A;)ZԄSlr3\_Gx_pnj?6.YLQ|M$ܬfZ.{X)O3V+0x J+B Th^az_kզsMM\@ LF坖E.zֱ_f'mf$ endstream endobj 47 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 580 >> stream xuR]HSa>v״Q MV(zP:DC?s;%m;ǖ"bXH+tFE`=/bf!Tst5z{es/ "z s cDs9EH&ځ/<9ר[z5%apz1%q&ǩG[qӍsbP8.&u İUp?3Lգ M@lkq"Źu`"-Bgx9$ƨG aJxQ" Mb*ڦ5(K'GԩL`R8XmOϋtH$ H#`?m|{(C#OWj7mQQF$ =h!kԝrAnq8.5/xh쵆63p>ZvZZh5 l.UB<>N}nouC)`Gp,d?FG^珒Iv#J:D9'2[u^D5p{)2qjVUuvwA]{Hol &pcay~ endstream endobj 48 0 obj << /Filter /FlateDecode /Length 558 >> stream x}Sn0SM6$JMm]Ȧ%]wk6vG+$ڪ9sWmI5UҔYp8A9rXEu4+`zmQThKX$!3ci`'ʔ*=AM*p8NzFrim.sCeTR1;PjbY%%"Q΃]ﲺw'WMY F_y.ukc?|?+ -&*\pT5*A9 }C| 2(7K3O;9N}5;-5cC XF[ՙ4#y" V.;IhDV4Dj TFr3YD`R0/t׬Dc$ {be?Oo[Z srLL )XtϮv:4Μ6H+Rf,:ŸU099)Y!<礠utx)O+.OatvjGGSuhAD4_r endstream endobj 49 0 obj << /Filter /FlateDecode /Length 390 >> stream x}Rj0+@rp,QJHBiIdd`W+п^­[w!c[t:6y`˨ʸ3l);_xG7.v0Nu eE1 M֛9x'Cʹ*ACݾ 圧i"ZfG <RLiu\!3Q%,(H0ߘD:JzrlXKPQWhYI6hѱVm74WʄSb9 l::+_I^-:lFx endstream endobj 53 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 761 >> stream xڕS[Hagvb4T;:4a!Q2LL)2V3הgw5/e mIY%EԃЙ}h7"*<΅;>p<7x\8eqwygtY_ATW鑬e%n"HH0"@c0ϏbcD( f6G)Yݹ:vC-QICJIܟiʳKo0c`Xcl $zaXim]Bˏf %U%RZJejJ#U,J,V7ioic`s6Ǿ|\5s+Ū,W b1/ǎ!C-HK$G[ W MLlwO 5WK++&mO!Eb{㦯GF@ $i 4ѥte^1gX~{]aq;{ād i: 3,Burڤ2,V8eX?5U*Ǫ) /7(Wlm!%*5+ ܜwj:Ff>Z >˞XFDO0HX4^8hINϞpO:{Gއ{2.Q.79xN  ֱ1-涟I?eKBPyi!w,/ 8L[)LsvPoo0wt]j ["!Ca}%Vb endstream endobj 54 0 obj << /Filter /FlateDecode /Length 562 >> stream xڅTn0SM6$JM]Ȧ&]wk6vG+$N6&!sy|Ֆ$ZS!MXҟ,XOSOۊ.U]Gغ/ƭeAȹډEbROϻmlu0 {^MLøiRCpgk-7\a1<7TF+5 E&e8i\]@(,E.qj~Ԕ~9`i1 ukw,pL+Gس|]I&T$3A k*Trj;r.@dx#Qn*fʟfs?kdkp @eVGҌ V;RCZ2&XќIcyL+PW0g咂mHJ\]8߃$ٗʞMo[Z rLL )X\ d46'M)ҊD1yAzqw8?CvusRPuRHyB^_H- ʵ?f endstream endobj 55 0 obj << /Filter /FlateDecode /Length 395 >> stream xڅRj0+@rp,QJ̓$$7Gڤ[2|+BC*0xٝZO ~3+tN54OP"CVf#(Iw= gcȡqΰf'Mōb@{<˭L"w"c(%rul*'aη;ʸ#1l*k7sjdjg.憓u=`CG $gYmm 5ZXꀷV h?vyhAPi2<7-M(g3 (Zkzi0K#*l%fճ`wRt_rlXKP^%hZA%7ձRWT4W$TgaZKO0R?d֋F endstream endobj 59 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 621 >> stream xmR]HSaٙ?_[MsGI%I( $GbRn7&7Lo;ʭ Q:uc:RHW&te^ yϋv$ޗyxa!aZ[7o v]vl^M, mץRH0CVcvsS\Ϸ4LJ|UtxW59};;o1[ 2 qfl7l{w 0BJ@ T2TE*E* 4%SKdDt;[M:Qe Je0k44Oi&]ȵ$BbGOs-%,#Ч9iű&\:~#PNH*IL椟ȍbX2QUսP93HmL֏tmz%^ikml4kKfvQZ vpڠG1g- 8bvZZyIGęǙ!KN] N|+{RP8ZX<"1"6br\'IC endstream endobj 60 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 61 0 obj << /Filter /FlateDecode /Length 389 >> stream x}R]k0}W=gmAX?e6vM$ꃰį& s=oLО=8c.KEQfFIEq@dȺ| '%i`^L494)va\<(/iOzgF%Z&&‹Ds>3 o*R,}&荭`Lp,\0պlS`=揦:+ 4l7V+pΚǘsT w֌̲C yøo;D)}Pt/ᨆU.UPaEU$JJ> stream xڕSKLavo& h @x"J*J< BY@[h)P 5P[h*уr1јckԃ&$yd}31q|'_J;t&=KW_//) ֲ$N "0B WHr3W #KIpr, f(c˻Ya{-8Nb&i /O 4ڢڒ#S`H"(ŏ:*E-tE7v~7O@h!+l򤹽bg5w. j^)P!u#7,i9R^J_G"~6KEe+sr/3bqDL>^> stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 67 0 obj << /Filter /FlateDecode /Length 392 >> stream x}Rj0+@rp,g)%C54 q\i bЏ-&7os[lS o*RLBBL숙6k` 8-&&1(Lc7SviU(to7(O3Z@ j=Ƕ q'vlN!3\/ҋǯ 4bq&TtiVWJ#c+  Jt?аB *иDůjӿ&(R&˱\`{٩ֱ_NGkf endstream endobj 71 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1963 >> stream xڍV PgM٠!*kr^O3VGz*r~B" $D# @XWԟʍU{f?7͍:Q[P|3<|8&a8`[3Ib6դK2?nX!( aTx]"0Uل)"J V8(cf522Ql 5a$˧E]wYp$ 0t)SƽWR`RL#1MbJ,SaӰ ,L*QZ\k𳒍Hel?'#%גW;UcEa ұY|6 ^sfܚ v%p:/yȌC󏆌{T}&['w~ :莿k+V!*apo b8U}0WRd+>lc"BzgrS6 l{I#4)~)oCzͮjT(*ZGt 5%Y"آFpu ۛz:o6#au#,#}*}IP< s(c2  4yJfȠ' < zXAJsyyqt>J8o' gIw^v6Ok k n(P}ɰb(+)g` :SۙΔ5k''JN6w=b^ ʲӽnZ\֐K_;oϻJ ^< 9a#C>0l'=?j7y&@RK rr}ļR( GyFk/{ Hv%4,F>-W^)5a9F"PD]ulePb ѰY1H aחwPD?+eg_hm[X°0d>L[<^-gU\ `W̙_) J xY\N*T\.`dF7ut{|[WuC,=9̬"m|M~5L\XxaVbÿp7O:nm ߲km?#9? rVG5+7"*-UŚv1'i5/39#>+v;?1/OOpx3Ӷ܅AJ+xEkg9lKOhQzZ}z1KP-6KCuǛTG6eҴs= _q"}0g]y(Ϧzq^qcpna;Tg죖q8S}At92R͵V()_G M(wd-8j)CfZZXTjU4jw4RimKh0Y7 -O5;Ғ?TYeekd8*w8nwҭH:c!yMq]@mF`]jpԐɢL9 | 8ZMJwy/SGC5l ]4:Y[וGfs9֕ň9P=0=G("bFzS5yMVrH =Dq[Y܌4Lvpzi  #8y*=5cɬNj&9jh# "۞ ʩ8Qs^Q*}] tW)CLʔgŠ_v endstream endobj 72 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 73 0 obj << /Filter /FlateDecode /Length 456 >> stream xڅ]0g/蘪3 U(| lRBINLAy{>v}lW{ F XFįYv7 #o3|ho^&u߈SB^%|vE~]"! xlNMۊd?(^XqJ>C3/ǪSVm!6E^__^{\XKQ]sBws#4eyB$0"opgx)5JnmhMqǪrԙ<^sV|eQ:50ihhDVDK'rI& &c|ь{Ɣ |%\9-FD4߄|ٗE]kkT{7ZSuН=!rKKe3Lno?8Kt endstream endobj 77 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 657 >> stream x}]HSavx[u;cR` ^9K0Hԥ(#ubNwm22,L( /J Y(Bd(Wys3I)ДJE47ʫJ2ϔU4_1JZMV[%WJ"dJJ)I!%]dJիѝHAҐ Ry+$DrV#+::GYMjZf)'`=/h{Rk9e4Z[WRPJJE1JXAmt= 0it;CN]޺<Y#' c{OU#n{w:7_x A d]w/@4#RA #9(B0>[bF=n߼-p ե&W#O{~١矿˞sENA}v<$B,\dݮ^_u-8(+[!<)!ǭo/Q5N8Paaq8jnQ 2#Bvt!h} -2abvzݴbw_d}tq#^&ǩZP#q?a>/G~{<^/'#0Jy;(2 endstream endobj 78 0 obj << /Filter /FlateDecode /Length 567 >> stream xڅn0Gf I*-$RfkiI0`lM!y] 3I;s}˶$ц*i~,`zь}Ut[&֥^[U"kEH==az=7MLøi RF#qok–[Hksƨk* ݜVS2e'u.> w;E.ޤy5g?jbg8~/u+a7O: /+3Ȅ9h8dCJPBᇋ> Hۊgg{ 2 cC XF2x# iFDkj!D]wЈj[ќIcyL+P5W`咂mHJ%8?@wv~VA"*u1\"9?pB oEكЬJ֡YnѮ y3ږ"HN&1gyׁW\GecS e?d*ENĦO otǔf endstream endobj 79 0 obj << /Filter /FlateDecode /Length 394 >> stream xڅRj0+@rp,QJAJNЏW fgwF<sY*zf`LQD;pRXpo|&&%Îu+7 ~؇o KL1JW61^$2h<`}kwT9b7ejӎ Ng"悩vn 144APPe \sԼPUmiQ1T\\a`x ,K > stream xmR]HQwg-m6H8caZk?O)Q>IɪG͝&w-W,Lí(|@]zr}h6ZB9;;#Gcrz]ªNwr`(F%6$ȶ2u{(XX(ٕ K֕fL$X#G'aS&b,JnNgqj> stream xun0Gf I*-$Rf[iI0`lM!y] 3t#!lg-I B2>? XmMrim.sMeTR1PjjYF%oE vѠUoҍ_5eG3}_p: 3yz}ǡCdBE?4 B%(gGn$mLc3xGpVߕh1",E Ꝅ4#y"5 V.;IhDV4Dj TFj s,XD`R0tUf$]=\ۋϳVA"*+`Ds},C1J֡ 8˻> stream x}Rj0+@rp,QJE"mIdd`W+ ivvv)_=8c*sE^V1Ȑ5 NJ3//x6d_(gذI s>п৽w7{B^ȈĔ\xi?,GudQ\CBX ,8Lj [Y e"0M֛98gMM3UC 9*;\kB'I Z;1mtϊΜE.EaU(\I> stream xuRMhAYdԍM5-664P%ɔ niKO T5 T<C\*/eA%0 Z}3} !l;89;<:4z#jԱ4ݼΙyZrUp^2XqS;jq17,QŻ^[;Eӵgwwɋq6N$b͂2@ SE "g3( Fpo#z - Z+ F DbH2CsEr8OEhF&~zT^P(OQ*m>v+==WTPFB9t״J2OOʫ+U\L73pFysL1EɎܑԮ)Gkٺ4+wʩGdj<+xyì4Z3dЕ6PrISY3tKYcNkYf3$S.0^~L4vtlv  endstream endobj 90 0 obj << /Filter /FlateDecode /Length 557 >> stream x}Sn08?4lHRi! 6[NKVfWۏ=^a&q*!l}ݝ}-I B2>? X<.'(g4cw]hFu&eAȹکEbRO;3:Vq}>MLøi RF#qok-\a1 }|Iqwx:D[󜓂K!a_zEh핊OR9O\kb _ endstream endobj 91 0 obj << /Filter /FlateDecode /Length 393 >> stream x}Rj0+@rp-QJ4bL8`& E^l |ȐJs//x>d_и`زŅb@}_7A(2ػS̿ :> stream JUIEBE+LMSans10-RegularS  "8  &     $ %$)1H2.004LMSans10LMSans10-RegularNormalAdobeIdentityJUIEBE+LMSans10-Regular+XvwJ22JP=2odbNg1!" ģWLIt;Kכi/vJw0J@Jip' *( = GPAFC ׼W H88uPW To Ę  ! & endstream endobj 96 0 obj << /Filter /FlateDecode /Length 554 >> stream x}n0G$b'm'ѿV`4IjbYҾ<ӺR?>7nJmO?Oǫ ǝr6 vq3l@S\ Cbҡa촘e o3i]1=$d`.v]Cj5i\^YsCU$YЎI(*=q+^IsR B(p;}kѰGEY<">?.G`E=UN_vʤ0vhue;БO#l YhwճG!r+Y؃޶GpgKjÀ6QM&!HH`MC>RTz`109%PJ5װ`劂(Jm%Q8?@ ]|.WH7!!6 rقR|;]О;mR mZq m)RIʌEGe@~%R,{p_cMUsR?iP9?5[j> stream x}Rj0+@rp-QJ&qyWGZ[2}0+B ivvv1^5}$p\ޅ`8HZ(="C֝ 8*I,`7X}AaǺMZaŕb茟v[\eW+YHQ":TrWɞ7J~i/q٭ѤFOMnЬAk4~ulUtA-XmFΤе{?n endstream endobj 15 0 obj << /First 443 /N 58 /Type /ObjStm /Filter /FlateDecode /Length 1994 >> stream xڽ]SۺϯݦI"Yߝ3| PILvfI̴9?v| ,/˯,b ˤg`V `3)P0Mw,3N1+P漆B(&% CveЈ~Գp1kK˨L)RTȻCIQRd2 A#v%Y#Hma1#%ahQCxK jeqaGon|hJ5(JByJt(bHDѯQC XK6y:\ 7G5!u 3139pZWǬՉ~~ ~QeϦ5t:aɛs;%Ef#rlx8DG?`#k80I/aO:?ko~?$Vvڽ(Nw8f;{>B0ze-wSQή>eȤ dmyw7fԭC*[i4fktxǀ%g?450kHn&`lF-c,p8a?m]Di D1H$ V)h:1}!BD1EbLGq7\&s8-|60b9}ēqs$No&GfuSa(qdHy82'8*YRS%ǧlܪH.6םoQnHAntb7RrSUGuZFrsz{qp|Zy"d|?9&=nz85. b6 ŻLafIcI筊I)ȭ:fl[oy4 "^%hLE2&~1͵n蘕EY - tCzHe-I꥽߿YFcAްySٗ`-g+">;u݀ZͮemKЧ]>O$]^~] Λ0k[4 0og8㸠w&hz -)VZzF+km}~wv:qˈl'6ȏ?UD-=N|U^ʢ-{55Wek_r2 ##;zMNr7 kAgeqźݶKan_eĵD'xAGWq]ǛuZǯ,\iM$ϸO/pW8iDb-/ ,7\#&_Яq8!Qҽ ˣzM$3!=(QD>棾|~DLΏ<y(]2_fa|  %IZiK3Չͳ>&wk3=(e;]_i?7(-udˆ>(}dy;?6Fa1lMK\6i‘(p)~ .J_5!zx\u9Ƕz%VZG80%kL䤔E}R&KlOMM<WY?Kr, lآ9)J=w9 OLI#JCo&>5RuE)F 62= endstream endobj 101 0 obj << /ID [ ] /Info 100 0 R /Root 99 0 R /Size 102 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 278 >> stream x+qklf̘l13,G-\II9rq_{IIHNA Ol@?eNq{+= V:y> }-ˀW~&ldo0{ ɨYK~h}B%X́o)nj'X+ZpwugI{=x൞,l<"O~:xe$KB;WR5^ߠ&H' endstream endobj startxref 30584 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/qian.pdf0000644000175000017500000002672014411653175027377 0ustar hillehille%PDF-1.7 % 6 0 obj << /Filter /FlateDecode /Length 213 >> stream xڥjC1 w?,WRhJL-;t7BBB,ٜO3}KZt,$L3I07LsQ5Қ5ef(ԗ+իv<mbg,-sIN4Kq?d}L5`I5H9jSEMou?3G1Of f l|Eσ\ Ow endstream endobj 9 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T08:38:36+08:00foo2023-03-17T08:38:36+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 13 0 obj << /Filter /FlateDecode /Length 1176 >> stream x]TME~?5[Uݳf'38ovf f]EeY4fDE' QEă? f@1z*!FM"`wfbz^OWG] /eDo(3Ja q]ǗN>EcO>PvcWG|ۘ+:jd܆xy ۱29}T) NUɬN:Tzl[*I"z}Pe"["V!o9O4>ڤ=·{q]Ta<|9Q ޞ1;nniPT5Ko8HZ}}29EV.-tt3$;dY!mUlbsDp婅IJqfc|:iѹL㰚xz+EMC. -^Q zYD B wLS _L^6j5I]ZLHLx=2Gga ký(aB Y)sQ289Rd8%5 s^>$(Yki'D$(iƾϏXGa[3G^]̊8S>s%Jc =p5C"\ 2\ب x~El(X"'! B3#ޒˉPUe9 {?4O@#u+2wbp =p'#=()hQlG\PWef<} WL[2DbtڍD.SGYQ?DZE,rbw+J?f}g^ZVˈwi-䖜 p_;DiCʶ,sH֤䎱@맞FX3 +U5M9wZ#,@ n@PjCvi7f']-4'$v}ݶ_˯"L9zThIZLLt#NM2.a3,1G؈*"C6ih6z/`!K endstream endobj 14 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 15 0 obj << /Filter /FlateDecode /Length 414 >> stream xmR]k0}ﯸ{kZCͭX{lRA؏M?B9wNgwlЕFiz/Wr(Pt ЏXr@Xc%c& Յb@[4[Qr<6P jBSHgQUHgFu;g (mXu[N(ͩ=oeпK;IG΀lv?piM":)=X)GÅ? Z;T&;l:'5U?Q@(\aF`ҠBѐ5hTOdQ-3Zآ07hBuܠ8mtb^CYw]e "VAZ~[ꞮE_ endstream endobj 19 0 obj << /Filter /FlateDecode /Length 2263 >> stream x]VKeEϹ}oϹ`z{6 % 3#81De 111!a ƅ+E & \H "`FMD{{bԭ aB"Ѕ{}\~fm~&~_Pބ=5 y !`<1__[672O^=B!_կa|&QMN 8ЯnO⟋?`^C kh#Xm.b?MA|sgҍ/B[ O#osg_Ku&Efzj_N/^T</G QC@DC_浘N{!k.2no~0M`<7`&XmqHY0]i,(g4Y[~nxRiZQk#YMeY#uuP$&$vwU_q60 ah!.cY+od p y t"F n!"m{Hڶ21^rZ8k;`U<昍2yww;Yv''C#p`v}gQMۣ !q^Hr62BM+W+V]Zց]))f=0ogcXƬd\ajT*/M<)FB^ӼND/SNĉI)9z98?RN.5iLVZNReI-nM[h%8c4诪߷B{i ,GϢ "Њ U 5K Qy;U 3#C))!]ij}oؽz{pX[ 2-~T`j{x'ѱc#`UQy}2Qzzr ]@\޽m#Đu$(?:{ vi]%[Jܪ,nft4zz=t@!/HQRtCׁL+MBlt )}p7E:AĸYyY/u5 .wr{V=`R򝝦*5bֶPԬ |xK1A[E,=^z"1ĚB>UY5yT<夔Iia!nHb;:ɰV1Йd ?a:A%7ok!+$%qa8:KoB}=O/e}Ynlk["5/U&jP\9Y{T[fɚͭE(oK_ 66#_܄1#*ݼSi͂2̂V'53tp 2eRT>H,PD=EC"%Bo+)K*Fzk!^/uB%Y@o}>: PpĤ=mEYibPټJ^+.0B%34Z-yܑ/",N@_p^}}yy}]> stream x}Tn0 +!Yk7 CWln\mI:v/JdeQ "=~Of^aI~|p'XezmAgPf"0:^M0Ͳ2;)m<7nUb0,>#~XX5z2^,LfYȭZۄri"z> stream xmRj@}+>ccJTcA. I>wWY!Џ&-͂=g~mv3 T*M3+Qm`b-lINqOB(ύ7pE{&ʝ[| |/FT Rɓ4g\g}X6Sh@tݥi2A-QV]zG% _Ů3jc`2I85h0yCI!˷y/M> stream x]T=lT>Ǿ{_~SJK?*&$FB SPZ -RhY`;; C" "q^JJ-sw~߽@@_ۼrソ-|Tm "n"&+|}sw?q|Mwď"z koJP?q1+y &)BOtv@alp=l~CBaLShc|Аu3T? ^ux= ܂wC/JE /eꋪZ-ePӡ"Hњ{܌/8 endstream endobj 26 0 obj << /Filter /FlateDecode /Length 615 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤ jm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bq'뻠fž5:R[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<^@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͕kL1ACيմkl 2nq*fjgBU)VYoM(~b|G-ojERl{ )m[*jF uҨ endstream endobj 27 0 obj << /Filter /FlateDecode /Length 389 >> stream xmRMk@WLشUDZ!)-vMrw6Hț}oم* WXZ%_4ZNmUHk7p1,\Pf1"0UAQL8;Q y] $q.,u׶ gw$N #WS{811M":? o4P^_e\O-u%M7i&|d5ЛW'41b߬\kImӢ.6QFAZ|hA% endstream endobj 5 0 obj << /First 125 /N 18 /Type /ObjStm /Filter /FlateDecode /Length 1013 >> stream xVNF}Wb7HR8H8P0'َ߽m-Um^<8@xH's!|>D⸒ h%S pcw-2qjBD#y$#;5N͠mm;;1Eʗ""+Lgn;<wKsbsv:^OW;&ee|n)<81yU{^4+zljWY">:-MxtWU\b2.Ue 9+>WF)樞k|y@Jm?kp9cΦ+U^WR_S|D{KOkW77#z&$K8|Ս^EsI:|W8/v#ԧ58YBOl,ؼ2J+jk$/uAIPiEVCy6̴ȖG4{ERsgfѸq^RԬL0TFw ;)ui.lMX )ef| :yrUonv#[TЋ)U˝T4 gσ) $^>v Uӥ8]vksC1Y!xH GBA eX}a>13gJ~2&Hx[\l;'7lo0bִ '}sWǍگY8CxT *rNֱ)w֤N,I_` fj:Hi:i3m#_% endstream endobj 31 0 obj << /ID [ ] /Info 30 0 R /Root 29 0 R /Size 32 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 99 >> stream xȹ ]L1DlD۰0/N3>$WkOq`k?@B~`w$78 r1 endstream endobj startxref 11398 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/03/bad-latin.pdf0000644000175000017500000002016714411653175030301 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 217 >> stream xڥAJ1E9E +IS #Nn{5 .^ө/B =* /!\Y%ͪ)J*}%dRO8T5z`1RD'7_uMV͊i8&XI.ރ."6g'VA8KtA1,| endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-17T19:16:20+08:00foo2023-03-17T19:16:20+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:af479ebe-440c-83ee-f411-6e5ff356c38duuid:2f904035-44bf-9f51-fe9d-dad6bc6302b6 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 925 >> stream xu}lerWI֎NXMP| utaFTBx]l3Qnot+m'u kXۛQ!q#!Q fw[b7>ϓI Ie{;n;kk5y[,^6i@ `&֜rc6"DW1P1m"E\ZPUhc_(ڔI*uTUw?nihtW E:BO#A P4Anwy)rUW˙oF*\TWTإP3TZ*HZE oNQB)F%_~WH=$ [ZħX)6ւ3B `\(K}+KZnIOp U *R5*|䟖[d@tC0>iv;$@Ag$tQL(<ͳHO|cӣ93knKY ɳd!YMyhW*r؝^olWa_`;0c CFvIhF٥/8WFIY9U-S:g5`y;:665']#fΝ_]VH_!U:9 {Cifo,O ^6d߿Qo{] ˯q#CSh87үd,I9YFٴ\8cWxV&)xe)-X{ b ]B8Pa7)RG-ASfe> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 397 >> stream xڅRj0+@rp,Uyb> stream x]U]EٝwOAvgWADQ1IT1&5IO<GϓZ={:U]]?_t ػ__+C^PKՋȓGK)#?vywp/wnI "m[l,no7ټ >?vՇq,J"ώj'G|3Y kMt49 WW<-?ӾDÍw!*?8HbȻlp\mp<;IpͲλsr\?rE1\,O\Ñ+pϜ(2VȲ(z4C\G3›a\z}cynSFPٹn*&՟ d¹ÏՕJPcJ4q共l*&PN\?I 0DE.,X].t3\Sar4T7m#5EE(|Me}м+ !7HNP tҨ)S[Ys] a,bדF8%aNc8p?n U!x5`yU%,%5 e[(2έ[{dG2)%Xʎ-l٫ŚqN2Nµt&4v{u' x.SC$tZ@覍wo-'.(&j6/cڧ 2hv`6xEFUJ+}s$1+=<EY4di 70ʖDސuuZ%Ġ~.znwivD?[V (+=ܖ86ee&]5-71XЂ3*cMt!"9tmk?p-x&Ə"A]ޑg.sÞ`= LOVUz+_3`ԑUċ#kQy&qvl䞗$Oo_ߌsbaF6?tg{ :ɫB7[ zEHI JF(=%uZ`SOB#JLDtH`PM3@2E'1Ĩ -> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 420 >> stream xmn0y; $Xqi"1HY 4X"v$ >|Hs}= Ob_Ko0Xi-@ѯVOb4ϰ2]J#Ild5gVDwׁ&$;UCSI |`Z.9*/@л;J%Lg֞AH^_/(h(T5:n`>Um.Fï~i)k0Hnk hxm0RA|K~R?4aw4-*s&W~N=T:dnÑύgKC*'aҘ(ф(GS6cGQb;O#GqK񣣙-&M-2d>f1m{mz6)BJm+ֳ_lyj3 endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 977 >> stream xڭV[OF~ﯘlE"IH8E7R|g|!E"oͷ 7 sD9i@~!s3̹ 8h"yEOTy!35촳sxD?͘1c|pAI>@qz D\׋V̺Un#+p6k t*UU^f04y9ymzpen7@&;CfN|kt1%ʼlUK0Yk&xܤ}V'5bۯ*0X =cFf5xD?#'2D=GhFa'D\B<9+CΕ22F-yo0w{.k'-iL%fBQ<2)5c}ܳ Ih3ጔf׋XSHi/+ݗ]y L|XpH`~l{$fCye&rx`Cᝏ+=W*w]G;ICzS Ga)x Boq(J[r0C%T];  ~J' e}]YVy1ϯORhUy4hMԧKR6ZY3Y ԻVƏmt_q]uD_L}!6MUuil-սѫ4Zk}_+X}6{Wڥ22 b%Oxp"1N m%BZ2Uvϱqg3 >G49N\M/}qӵZk.a,w&GK8ڹs?bLPhqe5n7mbĪ)^90 \x8BgMOQP)G9%N:%.urns endstream endobj 24 0 obj << /ID [ <292028D54C461A9091F84B39EDCB42E6> <292028D54C461A9091F84B39EDCB42E6> ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 81 >> stream xA@0D*ZJlH-D:K^8(GڣmIb?H'= n?I2zPk endstream endobj startxref 8000 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/0000755000175000017500000000000014613513621025737 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/aligned-2.pdf0000644000175000017500000001636014411653175030207 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 2416 >> stream xڥ4}y"Y l o&(-';p9K ~@ߜ.x-Ϗ9R}BOmЃhcܒv)ocL?}~#=[Ρ*)ݡZ[v6TsCo珿c)eO!1jxIA!Nwpx(ZTBM_O~A*uGAw*l We`G!;oZ?E| IF# / Oj"%{O02/O@ 3y=OKcF>_'0Gڛk竱3p "Jk=mGT*ہ0RObOkOJi9qꂵ+[v>af-p2©ؤeVJKS/!Jx#rF?VUI3ǯInq߾~}sJxOqD;}3}=5I^Jn?x9=}Q៼t#]vN=9 w7FBNc^=l'Q?qԨ<Z26ǀ)yv?h"qf)6GYv\681"y*XSvٜ&,e=EW~n% l6*w\eh|4HbɣWL+t8l>ipʜ8UG?$nUP?ͪj`vWE[7R3߸9Ze J?a"i[ixRNmY酓i¹G=Vdvb7ܨ/;M;[ۉ?pIBLls@&o6mcO:la`^*3ɻT}S;=Bkȗn,6 M,.)CֈGE{P0QNXBc%H9jsY<h0q7YJ9q:!i.p&KHQG<1w߁_՟4sY60H,P,^;a< ž8̾VA38:Mxs/&:t2mQ Z5DlmtGR0RCm9ai\ѫ 5kARkk|U^0 TZ*ŝ>5P9i;M5Oc33[)p3sWE\ҙFEzgL3o{\<"R4pp#ęh(/o]͂FFI U|L}1Nyhʉs~༞ 0Y8I˛zړ7˾xpu>=V+~x]sc`%YƬuQGӰUAcn/lWQhK=pgN|46:D#[Q_8Y~sŹ5h!s⋦ qg7o_qo8QG(^Q.ɉ6ܨ/Ć3v/Eqtn% KhUPE$.Ky:Q5ElU35G]fߨppN!Z(9Hb7oQ_8}(;*wWBw~gsȭ&V~ *'~_8SWG{S_;qTĝe{}y~v6h-W^`g+{"'uʸhf=3`-( [a{A㌫R&9| UY_g1;N|nZcg> stream application/pdffoofoo | 2023-03-16T17:18:49+08:00foo2023-03-16T17:18:49+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:4fa40203-4b78-a22e-ef6d-b54f7bc7d5c8uuid:a75819bc-467e-bc6a-65f5-bfebe417067a endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Length 678 >> stream ITWWHC+LMRoman10-RegularR  "B  &     $ %] &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityITWWHC+LMRoman10-RegularIgpwp7k1tKM3klƋg1kl⋳⋈TsnnssnnsFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 13 0 obj << /Filter /FlateDecode /Length 385 >> stream xڅRMk@WL`]MN!I|vAweՃ]RhBg͛7ovt &h- hLIEu@dȆl4 f~  }+\ "ryYpuƴbeS*( d>P\8τ}̗ؽR LrjOCGsmMYaD5Z/+մ>*fkPXEF$𼞐a2FVvkjzv(jJeSTHox3E5_Zt> stream xڍTNH}߯ ٮEdAF xFt5qÐ?"A4,(sEeaic|g>?I+ѵj-fQ5wȏ1ϱ-_ٜs|E89Sͺ/w\sҰ=J۝\ٷ̱t.ve-3:c%׿ endstream endobj 17 0 obj << /ID [ ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 66 >> stream xȻ 0C_:$Bbb^ RƯ8}y6t3lU'Kwt4t}۬~ endstream endobj startxref 7112 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/pars-4.pdf0000644000175000017500000001106014411653175027543 0ustar hillehille%PDF-1.7 % 3 0 obj << /Filter /FlateDecode /Length 1822 >> stream xڥ9$7E>E`'diGcHϮLJF`0Fw˟Acc㇏?'Gq&Ѣ^S,o_?g\mE]J:'|>& UU$9V#;)z=Ťrhq^[K;_E4?gMϵ=h]\(%kKp%V͑O.>Y eW.ЈB\c(S)-_?W)^EC=\|L}7?Wf AexӨA yR2_MD_>z1{s^(~'!*!Z&3Q_=֜8Q>%sɳhޟqQ"j')4 _4 8JkK)1__}Oh#@%8I2W m&n?WOДOFl(Q_pcO6 m;LxpIf)#,RKhZGZh[xkEH0Du&޳,&%Co2m落\l7Dy45^.^0Ok؅h7'1\ ‹6}7NRȿAU˹ԅ~$Jԇ&:ܚ?C0?7ؐQjx$o09ixrsC̞%~|BZw p/7AoSWq0Jr޴M} KĭU?qҪ"-j hwuVj/x:2Y5KO( z4f^ 94oPhVٵ!9Nz4\zrumZF ѥ#dUS~I J!nBb⻷_8P j|7VYUd렣эnj_KCvP5/E䒝&%a]7`ZEMzڡ 71=FK_0VܦB.=hӢmI;h }4hprmx~lBg miNí#Jph6_pNd|T[% }7ܢ.zLmHww3uvg\Ƌ~m'oX,!>G5 &ⲵ(W"n| <ԝ8/Α_䗋o\V]Mia1i^a4cCxv }4/C-40pޕKŸxzD%I(HҤ7/AhG]Ŭ^M|gsL%л4,~(7~93rwA/Ds8-{xdg]YjcsɁϞ_V$k#+#?W 9Ww/R<?1=) x g_0z/_W p endstream endobj 6 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T17:14:04+08:00foo2023-03-16T17:14:04+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:e9c82018-4d14-b0af-0090-85edb7f6ceaeuuid:2a8b8878-4705-96b4-9df0-06828d6a3ec9 endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 536 >> stream xڅߋ0ﯘUI[VćUsYca!l#i8/:3od ccDGwp̀.D&;$CzGyĽ0:1rcd>wWVN<8P?I$VbiK#KS߈ܥVGu6Ls1BD/RN-*I łx:/=}# F[0žɍ8s[.Q vm($̡aYJ ZgU?(—D8 RW*e^:0:)5/EidBtJi}n?'OXg|Ƃ1! \ 1tU r{3YPr% V3+A= >:a~b )bOɒσ6m<=DIކ;6ŐX|aDG4U6 嫋iNDjmjaZ2cݧԙtfssMawӂB  endstream endobj 10 0 obj << /ID [ <3EFEF49DBE256B33F76C79B12B7CCC13> <3EFEF49DBE256B33F76C79B12B7CCC13> ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BFe 6#33׀L@Ĭ 'A endstream endobj startxref 4387 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/pars-5.pdf0000644000175000017500000001110614411653175027545 0ustar hillehille%PDF-1.7 % 3 0 obj << /Filter /FlateDecode /Length 1843 >> stream xڥK$E罊Z~\  Xm_2|ɨ[% u7 Ə%ˏGyXȭ4\rc|)n1tnZ.!jEv<VG݂و'N-$dQ,7/]_W &sk-u"wVbNVz *$+~[ϡZl?$w G*'Z_&^ R$J^7 o5x?Ke_`D?T%e7$]}gPXxY7(3!@+;=<3H Y.4MTi_k *RƼo7ɓ_CTWgapj?ĉ8^i]uOl+1Q ѼVx? O(Hʵٛ~HJO{L/fQC]o3 'A14hJ]MI1$ʣىDwqØ@"i.>iݑS,!Ԍmo+8a! F ٛ#w~$Ώ4.:VG'a⓾kQ_ N"K:%, @ԴdqKmQMi.GYiKvw nkɓpړ&*Egs*K i+1PO-%މ&~ҼE]H(24'~W8+F꩗,tg]WT3㠉ړPӫ&oƝ'197Ez 'Yq똆8|4l7?J,p6Z*qӅ=uɺ1-mDMz D~Pk; -YRM}$1EeGWn7& =5:W_}˟0+=ǘJKKOd31ݴQDnv=irpMC6܅|6pzΆڲt"v}ԆiM,*#d-|vw3uw#mK2&ge4^Mӻwra%j\c]>­-Vr`Qq7_si _8/2.`KG]F_ͷ7N|S80-F&-]|$1cn:a?qo1dٳ$֫.]|DU]Ow=$6]pO٬0V XM|<(ʡ1.Zޤ=`5 TQW(E'zՄ9Y/f>lWߝϾ)ǵd_dE ߭w| 'KQFF<$G`g> stream application/pdffoofoo | 2023-03-16T17:15:12+08:00foo2023-03-16T17:15:12+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:e9c82018-4d14-b0af-0090-85edb7f6ceaeuuid:2a8b8878-4705-96b4-9df0-06828d6a3ec9 endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 537 >> stream xڅM0s,%Ȳ-'66M,,9(bdߑ?ѼGҌ ' @DcH #Oė7o͂*d: $Cz@E"x2ab1JH3uiUA@WS_E(*W|iKJ[oD˓vYe'97ҐDҵI+1:*vxT >{Z9THVfJ{RmpG&؂0:#[^tb_s*St >.vzQ\0Jݝl.MJTv ڝ܇||SMY)@f0^ȼc)/@)!u?iKi: r봁Qa("Ę%_mm%"rz,8xoy6n5!-Čտɧ\no8{aNv~BcZ6mР|vq4Y*u-pRKiui=;qNd U endstream endobj 10 0 obj << /ID [ <3EFEF49DBE256B33F76C79B12B7CCC13> <3EFEF49DBE256B33F76C79B12B7CCC13> ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BF 6#33OY-+ endstream endobj startxref 4409 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/letter.pdf0000644000175000017500000002537314411653175027750 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 6389 >> stream xڥ]ɮ,q߯/(s  ߝmi6}EVYŬ~қω f&Y{׏{Wh[M1o-!?m[魅*oiBٯXb- [%J5B>)bPa ~Oۖ<`/[ N=W_ӿ{yo?CEO?Q7ǂny(ĭ\x%0.[c[I'4j[>0[5F}kW}RwZ)B~{k[ E^ goe!fەo7X+>Wv:\ت/_L߷ֶX{ựJimA$? 4#[44J_0H+l] D򎾉2֪c,ךO=yO0z{=u _z}=(C/v݋g}~BU0Ɣmes̺_|}/3=@k8O]1,{+ē`j0ؐ L+~[5+NZC֚uǶ?ᄾCc3} !ҥ_cƸנDڀ1<)@_]sWj?>-;=$64Z 'o9vz8Z%BQJBF)t ) -j:XerQ<9B99Z?ZK)r[ ج})J':r$[Gs4~x"uMb}e_?LࠋS].*x.zKZQD_ 0񌿋jX>V~KI\( '8Q ŞL8' H rb,C'-'0v3VV x(qC ,-0 0APmvdai a86gal8w*~OXZL%[ >AM,8 0&ND\wu_ 0L_&ߣ#W:L&@Ŧ8cR6]y8 ēE:o]TDoL|é=-uo(Y2Qx+CaԾDҿLr]T9}5lb4XïNH=Ĕrtd¯N3r❶] O}iR}n5- O8ͪ/;d;jO2&fe]fo<gci&9b1+>DT ܞCVCK gFhN{eR0GaɊ nW"Wςy{ao9%+B}D/?ϿFHȷA^eja+|j1%5@X}$í[IގhY6l1ߞJ?4= ǟQ{"hz@NwAm(0<ߒy\iJmB8F56@l"!>ȣkRi!ɊQ 2*6`0P/ !ehaw.6m. L Ur]_Q!``iuO[\2_'_<PJ] ҿL ɓylNBs NxbSSc%I(1$\k1K_ ɰòZ\4G"n\}I ,+OTPmwlwE {NEK 7:>^dԄ/OHR1:ȖB_'y PKM%CgMoi}PJxY5N _?(7/! o'ÉףJ? _3#pz2#~~|%q2lJ= s/K7z~`Zo>#jZgRV˛g!fjڑ"71ΗTi BБ'qa[4|_-W 6}XUrw?įok<wFn} ~IDۣW !?$}zxc <[@yoӨS\pAJUR(F . RL%` k0J0 0PI(0qk&B&ma+ MUb/[܌wOgcrzdT+쉔7ѹJ×4-A8ݝ\ _p~8ŽmD^d(0"tx1Gɀ1~-ąb m0 <$F&5_V"u@Q=y2`0OqU9ZqnLΓ"d {$A~ʉ+ijs\qf ikQɭj[LH܉t_ 0<%;hG3wx5~ _i7zngkKL<'_ݞnۻ:~/E0VacuCԍfyBKy*ܯh=$<rT@ei^+o`}d\K9~pِ5Ks y׮prD_~yC]&R"!sx%l0Fw8.d:_ܿOMź J7<$b~j!U0ϱjYL3 0%gѵпbGsAú7|}ο{ rcj\&>!o]SRi?ǒr m0 0gzsY?=pUGF_8`Oc($uA<2#@/-|1"VoiS{ݠdG.+Ls7 g֚y0/5x+Jq"qpl~Yo<}W<$f-7F?dO=aOPkOп\8yf-o<`y,'Cj@0`aC;_x>@"ҋ'Ͻ?򜝿ʆ@mha_%\N+8$/ <-2={4?#2f ³/5`B%Wj`: Xka+0A{ֿ@x[&|F¾,c4pD}OgtݯCW74J?"ᐜn˹hy$,uwҼI O4¥& 9F}~ǧAjS I ƌ+].\<|`)7L l˅^>)KzB?郙Y}9< {E2_W<4Mx )9 k{*"jܬ1WmZTd[˛A>,?@_'.yHM,Hп68,H].[]_'OB9~ \B4 O8ϟi~]kG=~'AZ-cOoF<P^6S4`̿a m~<8}-~-EJp`n'Q~¬^U%^ jz۠̿DFx=ama3 X8 ģv J:u< %PȞ\և1M\< 0OݎVq揱Mh~YVCV ήF8Y}CONzl 'h( ~ D%cNSI,a=p8nW@'TeʂO&'/pwL#!qzJw ~%Uw: n7HoAa(Ng."^sWv4j~AJM^ꍽ#C-oR &-E(Wnqrw[J=S5y&weOy<5A{m+m4 1" xzCi.IY/Hf.E.s?_'$~i?CSq7~siA[g#|*ϹqyV={$p/'9_7Â*%yҽy6O {~ /ɊE~E} endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T16:50:04+08:00foo2023-03-16T16:50:04+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:a479919f-45b3-81cb-8646-b73b7b2fb5d6uuid:4fb06883-4fd3-b07a-0654-3f528a33cb88 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 298 >> stream xuPJP'I Bhԟ8kAvF*>чwQsڮUf[kqkYP((IBUS WP~Dcx2J-?D8|KBg@:_T7Wk?c[Mo{ѽp@&lHV.02C !r),J}+|?P2r<9.wǹqqͰB؁p endstream endobj 12 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 13 0 obj << /Filter /FlateDecode /Length 367 >> stream xڅR]k0}W=glߊ]7aW\]@ /qֲ`r99Lb k*zVd-Q4{DV% 60]ǛXfEТ"̹A=0=ŽDQNLOm*ڙ7]Ge /R,&ֲ4]֎78zϸ`j Wc8m=R2BIW7X"!@Q] baȹ%mUhL0f}:}Zxgf{}sW݄0ЮdXW)Et$`5EJ׌~j/F`Vdžl;*'7Vql4 uOܾ@;l endstream endobj 3 0 obj << /First 59 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 824 >> stream xڍTn6}W:XHEd#0M6IX䁖hU$$@?CQZk_v3gb@ >9 P2`) clDʁ&1T\$}as N[,jøWO0e$$PԵn1ݣndKIS- D飳ٶ ߦPjKm ~\@fW+y:jʖKFuV4QD|=/a^UxIoTUkAd"ޝtZ>j1 6'h:MR=⺪O.s/#oVU~ՖKѝVeCnh. =tW*,$*FdIQa.\m6\VT@W:{P'\P !F }*'%F݉_ީ4Ht@?NL\^C?q×?) T$Y(VUŤ0(TrjOyj\_sM9{~2O'y}eG5Nq)Wf'K0,ҿPmW2B _/κ endstream endobj 17 0 obj << /ID [ ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 66 >> stream xȻ 0CO!D&,Wɾ<z>_cO,l*+ Y  endstream endobj startxref 10706 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/fakewords.pdf0000644000175000017500000000666214411653175030436 0ustar hillehille%PDF-1.7 % 3 0 obj << /Filter /FlateDecode /Length 673 >> stream xڥ0 @|@ )/(ЭXtkڥ_&U&Zt9:ć[Ԯ qE3V>״(~ALL/]ʣc2j3Z*SD=gN_ nlUD>g_ۛ!iocse,OY.U r:ZvDag>}ǯg6ZHNue/h(CqbžIT}WQgn^QkmbF|4Q<97? 5'~z/ Q-gY?koxbo\E'ۚ%U4|Vix$ }(3ݼ ς P9XFv}6tYGCF=AO:.!Rn1.wP[~ ,'~,lb 8SNsŻ-Se6O֣,^|Ҫ mq?j:R>ʵ't/r:&<'^dDy:Og3Gw!)hlýQ=_۩z[MGKAl"}^}?x.KUQ VV5x G endstream endobj 6 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T12:19:07+08:00foo2023-03-16T12:19:07+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:badfedc8-4e7d-9a61-024e-829af0977af1uuid:758e7c52-4eb1-9692-2645-a46e20df63ab endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 536 >> stream xڅM0s,%Ȳe'66M,,9(bdߑ?ѼGҌ 'CB%@0/oߩU\=uvI8aD( ^qd6)x.HTӖVވї'}6Nro!5^UkR5WjctU9̩||,sё̤ zRmpG&؂0:#[^t YT:|Ńةw}ׇR FGr(uwv4*Rفhwr11;LdWL9zz#BeTEǦc|*8QRr)-S'A ؤ= >:m`vT#b"`gdɏ669Erk{+ZMphmHB[|ad'4e6  gGӜթ20Z 'dP o~[6[>ٳoZ9F 6 endstream endobj 10 0 obj << /ID [ <19B4B4E81CD14C92BB82466F39032C7C> <19B4B4E81CD14C92BB82466F39032C7C> ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BF. FQL@Ĭ> stream xڥ9$E>Ew,fH4JQQ `?sl?_ㇿBn%9Ĩ%?4M>$,Xy~ǻ$ i-h|O QXޞoqZZBދt!6sUFߵ'M-$dԖ,7/.UIvPU[D|~m)ĜtgTZI7X__gG=je_C$[ʱ'_oԤ| H?y58C&VwTBSPw|&~ƚ '5=|,sOKELZUbw '>L devh )A_K+V+hk0m1IGk*«shvekZ) `'Qw aVD~מ4(H͇zH#Fğ0 *Gz<†V_YTA9QyT_M},CZ힩jam[h{H5T;&TkQ .?.U?p&ٮR4 '.RQlz RRgGч&~*ݲxn)l}]hU`$^s12, ^)6<2oN_;LJixIf1N,Ssfg@4m 56;oqƝ.Di~Ygޣ8׆U '΂8.oAjͼl_]II0x⇺ Y6 vSn*ퟤBDy45Q)nH5F'M{R5gf7XX W0Hi~;zξ_8˩6կ:/.>vdʈB-SQ`A>2& 49NDR[kGvt })Gii;6Cz¤Za F\=i-OKTY^NюzR}EO0tiƛFR!mzAɴRN+cq@xIړPݫgs&of 1ɞ"6x⎧_8+Sp2j|m?lt1}mE1S+ɺ1,mDCz䤄!=ZhpG=aC n~Ow|Q_3CIR5*wQsAG Ӽz9q 7IV1#CU~AfNwI{+k8(Br:D'rYF.y M;ųa)Gm˗g}T✣1$k㶅'm\fW9Ę_<.1lО^g/2z`+tڸ` 6fbLV>*Cz|4[ 'EmkI Ռ'~OtMӖd#Շ3v}4myLJk{Tpo8޾JbF'M[Et Ѷiю}$(0opGԕl~OE94&3ERӛOp>bMqh~3a}w%6c[ox}읺G_&{w䝳xk1~6w#~VQå}ӿ2Z/_'Sj(e5#5jj(wmbzM_. " endstream endobj 6 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T14:11:00+08:00foo2023-03-16T14:11:00+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:e9c82018-4d14-b0af-0090-85edb7f6ceaeuuid:2a8b8878-4705-96b4-9df0-06828d6a3ec9 endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 535 >> stream xڅM0s,%vl'66M,,9(b+2I?#4AѼGҌ O!( C ^8v = Bfegp`'"t0#/N8S=1cE0bc7}zu.Zf˔DE&#LVIajf%PB4ć^4Ot:! b4A Yly? Z#z[x_{wކ;6Ő!xҞƆa,nsWM7(=wsZ'amN.< 33/O ? endstream endobj 10 0 obj << /ID [ <3EFEF49DBE256B33F76C79B12B7CCC13> <3EFEF49DBE256B33F76C79B12B7CCC13> ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BFm 6#33L@ĬF * endstream endobj startxref 4402 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/starting-area.pdf0000644000175000017500000001342514411653175031205 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 212 >> stream xڥj1 D @ݑl%( J} 9~&B!ɚ/UOL Ꟊ3*B20H6V/'<*$(񮔲NhnLBڪ GY4h5Tk~j'2(bV}JmT>5!7D^]b E9l`RO,͛*>/4i endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1746 >> stream application/pdfaa | 2023-03-15T20:28:29+08:00a2023-03-15T20:28:29+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:8f141e5d-4ce0-a077-6ad8-db34621e4295uuid:9237d9b1-4eee-83db-8d05-e68fe0315272 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1320 >> stream x}kLWgvvfPƵK R%XPF#?4EZ)bqqYpa"(Aͮ *6-hkl&ش6~t[r~|ə;yCZ-Ad۹Eyi+*733eVfKg"*IsJ$jA;$Ў'F8 NS1J$HfZ_.v8`I6s22濔~^r){KՇ[ڭsTu-A Q$b2MiԐoG4:Mj6QkӅ#aH&!aFǩpq\.uCgC.M/3ldːT.ML{(ߖ ?[-jLt:ُ/ Fq׿lBfZ߫1)j 2y8f !n+K6X@2yqeҬ(++AOy_WHPNVwo^B89l8wH> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 13 0 obj << /Filter /FlateDecode /Length 421 >> stream xڅSj0+@rp-gF04Ց& ljsRhB?͛7rn ^aн'BVb0yKZe("CVWX)I7XBk˶&'+5:i..sg[0ek> stream xڍUMo6Wm,, I} $vuAX@K*@ F?CQZk/^:cUE%'{i\؀~P>¹X}tQY?<{S5Ƥvҍj/&IJU{ʻS*~H}섿urO<(jMUt ! ҉F{l?uc5gV0˝ﶔA5\QYْ/>cD L hdȹ,Tf3(Za7f (XL6>!~q4ǗLVu}}!rDY:xъa=c[1!DM9{~'uFSPUhJK6+Iɤ95 ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x D;YBBRBjkpH#j|)}7KU:zZÊ]Sd endstream endobj startxref 5614 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/pars.pdf0000644000175000017500000000666214411653175027416 0ustar hillehille%PDF-1.7 % 3 0 obj << /Filter /FlateDecode /Length 673 >> stream xڥ0 @|@ )/(ЭXtkڥ_&U&Zt9:ć[Ԯ qE3V>״(~ALL/]ʣc2j3Z*SD=gN_ nlUD>g_ۛ!iocse,OY.U r:ZvDag>}ǯg6ZHNue/h(CqbžIT}WQgn^QkmbF|4Q<97? 5'~z/ Q-gY?koxbo\E'ۚ%U4|Vix$ }(3ݼ ς P9XFv}6tYGCF=AO:.!Rn1.wP[~ ,'~,lb 8SNsŻ-Se6O֣,^|Ҫ mq?j:R>ʵ't/r:&<'^dDy:Og3Gw!)hlýQ=_۩z[MGKAl"}^}?x.KUQ VV5x G endstream endobj 6 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T13:42:47+08:00foo2023-03-16T13:42:47+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:badfedc8-4e7d-9a61-024e-829af0977af1uuid:758e7c52-4eb1-9692-2645-a46e20df63ab endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 536 >> stream xڅM0s,%Ȓ?BPH]&[[1 LR{bh^#i    $f YWSg]dHCY,BpaB K !ž("Q N[ZU x#F_vۄ*;At&zUMJ\V9K3bײaGG2VBԓrunԅ; 6%-7,*˿:2I3/N[>P0:jx_֗6FͥTD0Yc|*b2E(Fջr,3奺(=6<S8QRr)-S'A"Ez60;Qq13ǢCa "WR}w~oVZ+h1"fxM>mrC~ǁ? tղi峋iTk醓Z27}OsO-Y7Es?K : endstream endobj 10 0 obj << /ID [ <19B4B4E81CD14C92BB82466F39032C7C> <19B4B4E81CD14C92BB82466F39032C7C> ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BF. FQL@Ĭ> stream xڥK45 w( ! `9] eF !sO;q|b-n|%odPzcl4=խѡo j` 1Q‚ybn(^_koEjKZzj/]_g|KVA.>ڥsoΪ$f n"kAS^I Mc/L}_k yTGf~F}{ E4gucUhD}_EnHI٪Kb/]|G$f4d&G}m9p._qH+;~D?]'_q{g*XMreYΉ;p^c詌ܵWԱn坵?xrO9tSX'q3>FsAR䪶k{o&=H7`B^h&Ƣ!ÑQt&Œړ~-P{Y/MdIPDiNjCc ~zQZ81[qZѴ-fn4iNT{⬜5?nҨ]=OIъy:L#8v.Tx4 [խʍm=lPjϚuzV-8I0$vCj F KIt/ܨO*bqqYS9a.H\Қs]1PXI304]O?p*(Tݪy4i#>im S*%~h=i2DEd#{~W+dh[=3ch+~$?a<PSў4i4vEb7ȋ4\2Q6$1)7;h=i9 [nBNG lPKFaz\:څ;#]Φ>0P7y8q'κ%vouyhupg%0KjQwqϩo1d&6T}bk ̝G4qQVI[q\ktwFRosB1tҽwfI}ה>j-]zJ\162;h }מ4q4ܹmd~B' n{ֈkxI'΂Ѱ>V]y.}yX"Zg2RKO ~8SwKKhA;<6XP%+3]'nno'ϧ u|\WiSw_^$?o= eMcWTQK3oB'Mw\\/ڋISSU}|@%ނ m02m.ڄ|[p BWC0CpO endstream endobj 6 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T14:05:52+08:00foo2023-03-16T14:05:52+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:e9c82018-4d14-b0af-0090-85edb7f6ceaeuuid:2a8b8878-4705-96b4-9df0-06828d6a3ec9 endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 535 >> stream xڅM0s,%H!M(.a- KClY&)wƽt1xf44c>x Dc1}7pf]"O]v !=,B8a0*8 F3LH2TMej +$Ua赕kER˓nYf[IMhWYFT͖jbA<]UY=Z0ˍ8sW)Q vm($̡eYVU=h4/pV9? U˜ht{nXR}y\.Jn&:SI3 !GMћpx8R3L׫s"/TdIU9R {l99g,-JfV A {@|tJ$O'D?EĐ%?889"z, <3EFEF49DBE256B33F76C79B12B7CCC13> ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BFjFQAl& fbVF *) endstream endobj startxref 4343 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/lines.pdf0000644000175000017500000000754514411653175027564 0ustar hillehille%PDF-1.7 % 3 0 obj << /Filter /FlateDecode /Length 1107 >> stream xڥ;n-7 {bV   RjrX:a>CO7zaE1FEE|˗o^pvB6loo?Do0c4as].mGgD7IfW2ڵIsD7.xCv'Mo~V\*5,MVoT>3'-ݪk~_ΆF ؉Ai/h>҅ZZ#=Q]}IZشR g/&?L} )"6s>\xN,gPHQ3|۳_ /x̠^0_g8Zhpl*g7Y=鴯:چXG\_+ h,iY[=/:(R7L;q9f@O[G೚N(v(mPO;ڂ93u;Ӂ֣S#4 Y?Ǧ CR7.B]ӳ_;YH/+OFQD.i.CjdV~ӟ'& 6T 2 (UyvԆƻ8[gjDh"%S^-𤓉 _V`?DQ #I[,vOfVFu4@+.%قoOf llב5_zwE'چC-aegOf1pnwV_tb =J4񎫏tM=.<)/M7m"}/x;> stream application/pdffoofoo | 2023-03-16T13:24:32+08:00foo2023-03-16T13:24:32+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:52b20ce6-481a-ba92-7c45-30580ab5bb84uuid:c508e4cb-42d0-bf40-dd4c-7d3e7d866d0f endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 536 >> stream xڅM0s,%Hrl'66M,,9(b dߑ?ѼGҌ  A!0_>߮W7 z첳k8 y8xS@80)G.H2ui#O+ +"U`败U@4"iIhM\4c4ѫtmJmNvʁ]r ɋw|O2*TZ aOFչ-R(;WаYxԋ.4—D8 T.g^4zw},e`t񾼫/m,wg7I+5cb=3 q|3g]WbdVȱLbؔPx (i)x`!^XWM74(]MsZ'hSK7Ԓ1<> <3F2A61007772A5AE0144322C58DC6EF5> ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BF 6#33lY"1B endstream endobj startxref 3672 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/aligned-1.pdf0000644000175000017500000000640514411653175030205 0ustar hillehille%PDF-1.7 % 3 0 obj << /Filter /FlateDecode /Length 501 >> stream xڥ;1 @{B'H邔Al4~8ݙ!laD  ڻۯ74l"CW1}ymk5܇4haaSt0F cul'N_ g7R7\|Ùdk\(=w֝cBU||ǯƢ] +[Ch8b}g_]3Hi,EC /칇`x3:*,1&wѭG!O ȫ>Hm1|vg՘9H"s V~;]WHh(ڜ:wS$O|MeU\g'@ˇ ^+ҬDM/xe[i|we'|3~m&[mB>>}_}N7>54!Ѡl |w:]ϻm<@l(# endstream endobj 6 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T15:07:50+08:00foo2023-03-16T15:07:50+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:788b9a7f-44e8-9a82-e576-ba8bd37a7ae0uuid:66e0c03a-4780-860a-27bb-e2e51af35075 endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 535 >> stream xڅMk0+ք%HL94a!i MJClY&Y#lK3y=3@B0C a ^~{w^ Bdή@2E`G4x+4M"+U넪R[`\,b7`$˱% # I܈<ş`ކB?|VFCg[*W%̉wo($NJ˻rQ(wv3Щ,Rh9roބ{0@0^EJ'Q@)0j>j+aY z,dF ) <mCF~Joo FыKކ[bHP~myM>i`sC~ǁ? tciz@4u"56I-pjoi0u(ܜea؝BK / endstream endobj 10 0 obj << /ID [ ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BFFQ@l& fbVF C endstream endobj startxref 3064 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/true-words.pdf0000644000175000017500000001376014411653175030561 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 213 >> stream xڥ 0 }5iuēw뛹1CvA~p[f7B9"+* r" 6|̳^%:(kM}u}r~ʔ|Ap)CWƺ  fp)J .;s5x}g"jb j; 5QϢ'F]gz endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T13:53:47+08:00foo2023-03-16T13:53:47+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:6b8659c4-4c19-8f5b-42fd-0f30cd9aa6a7uuid:de6c4390-4aab-a829-c25d-32590e250d2e endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1505 >> stream x}U{PTUwwォ\MڽhfiػB5> XPbwweWve T0Rgr4q!i0DNiΝ=~sHB!Htq KYҬg=hʰӲ7eAE,"ORˏd^34Da $bUxne5"K#V8AQ\b;u7nK&#cyf=?mٖ4s [i 5wu,PjBCPM0G'"@ʦ"HՈ[.q|Wū/453TJ$Kd8Uנ*3nDk 0w}g "6Wzf5ʟ/7ӞQ6r rf ,LY"ve;ܥ NJ ^0rG%fq6jt C9g}d샌 iU C5L%f(h$8P 'ΜNNq}>$RPK=\ ?dcgUnǒ~ܠeu-{͞溆y_ʓBܣ 01.Kcv>iEUZvQuŽ ->P6|Yq5B+35 ҢR6Δhn^ДPr!_]^aɪ辺to)2m./+zyQDbWv3y$X=ЛCW}wvo1L@ ~B&|6~;Tkg8*8g?TZ|0O6\<"6_J6f"' 'l&A[7p>;U;OP{0QhQsx{6 %w-'{Pw\ttpt1r#BF<(z1\[ǧJl =Ij#`+q=N9 ]{t򤑔 q2!G̡ < ctžӴj= 0jC"tfl&~w{P5VH]g8*E6lx%ƅGddߠz5'j Ctw}l9]%.~•Ə0r{!Yb)0d5j{k8YLGp̭C۔NG@5+jsCSxz q0&J2'e5Bat2l8;`*dP;=iomJn}f&lM &+l21ws:g:{uXs?S)9BVͰ_6K[7HBzZg5`xMi|oL,ŲJQd@Bx<[ (8VN}- endstream endobj 12 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 13 0 obj << /Filter /FlateDecode /Length 439 >> stream xڅj0!I=g9$Ē@FN MO蟑ys&nXc-[UPv,Sn`6_u!/bkε(k$Ǯ i?=VUtoWgvX E4kW2@Y?c bE.1wmƤ0ǖ"K;=hB򦤜MϹw)͉D"G ܞ ђhiW7~tE>!{͔Ӎй=<^V q endstream endobj 3 0 obj << /First 61 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 850 >> stream xڍUn6}W:XHMnn4MEhVHAH;e0 r3gΌdbsC*@1 | H2 cR4A$M~zmYa] ^FGyr"894 1O)OP)q,EsBsWpy ѵԍnۧϷw-%*O46GgUiܭLLՖ0Ug̮ WٞZ5bK\rS6(GۏbA'b;rY_u /UXC»M-DZd6w)PR#nZahye~ʺʯڲVx)SVJl e ?T3 z N~#}Dƈ(J|>6ׅM4&2xW?Yt"dOhP #SmrTDme**9qMQudr by~Cm+F[e}LLbYnQ^LJu+SޟW!vώ;'Wԩ{~,ϾF*UDzzߺ8ۢY|ķ [e'].2x@x@勘/Dd B&'S-<Y62 sL#G.$89a?Ia~ט$3Q?vyspgӜ>?\耓>9ج}_YpRO8+ۓtӉ- 9Pҹ+_A$?,q}vX endstream endobj 17 0 obj << /ID [ <4573CE17DF716E394A4C8E8776FD5337> <4573CE17DF716E394A4C8E8776FD5337> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 63 >> stream x 0q'\ T'Pě_vJ͊U~XKd? endstream endobj startxref 5835 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/02/parindentcolor.pdf0000644000175000017500000001107414411653175031465 0ustar hillehille%PDF-1.7 % 3 0 obj << /Filter /FlateDecode /Length 1835 >> stream xڥKdE罊\~\  Xm_/I1f B~uMg㧇ikњ*4,\@ix/]bV /&# OQqH3uSMqY K5beYj)-MhBNɳR:8¸(/w,@{ڰyY׀-H틾 OTP[={#ÔbjCcME?;){j0&QMM$z&i wI$TY8B; ?V>q:B mo?Υ^NDcrm+󋾋O-g(O'eq[ń!?Ճ&/5_vl_89đV=}6a>'L%O+Eړ& =DK{{~F-%}^)y2{K|Qd|h?/P8+FdL냉{O_Q&/О4h^=s70Ѽp/F؎L7wȟ0+ܜLjJ۲KOd1d[]~L%o6H&/Yo?&5;q⿑_F"ryq&LGu|H5f _]|$ȸc-Iu}_xIׄlI6]}8hwIܖ|7+ѫ VĉE\XpVU7.>i*▧Mv I6ÔFQWo!>qcИǜ-JMR ?-`5 Tkg\'zc[mE*O_w}݋w7"Fb"m7"~WQU}MO׿2Zǯ_3z)525#5j;j(Fwfm]ڟzM.R endstream endobj 6 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-16T17:11:11+08:00foo2023-03-16T17:11:11+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:e9c82018-4d14-b0af-0090-85edb7f6ceaeuuid:2a8b8878-4705-96b4-9df0-06828d6a3ec9 endstream endobj 2 0 obj << /First 32 /N 6 /Type /ObjStm /Filter /FlateDecode /Length 535 >> stream xڅߋ0ﯘUI[VćUsYca!l#i8/(̷I2S1pL"b;pf]"]vv !GyĽ0:1rcd>wWVN<8P?I$VbiK#KS߈ܥVGu6Ls1BD/RN-*I łx://=}# F[0žɍ8s[.Q vi($̡aYJ ZgU?(—D8 RW*e^:0:)5/EidBtJi}n_'OXg|c4C(_Fչhb"R$(=6Ff,-JfV> g= >:a~b )bOɒσ6m<=DIކ;6ŐX|aDG4U6 嫋iNDjmjaZ2cݧԙtfssMawӂ endstream endobj 10 0 obj << /ID [ <3EFEF49DBE256B33F76C79B12B7CCC13> <3EFEF49DBE256B33F76C79B12B7CCC13> ] /Info 9 0 R /Root 8 0 R /Size 11 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 41 >> stream xc````BF 6#33wL@Ĭ ) endstream endobj startxref 4399 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/10/0000755000175000017500000000000014613513621025736 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/10/colors.png0000644000175000017500000005551514411653175027765 0ustar hillehillePNG  IHDRJsBITOtEXtSoftwaremate-screenshotȖJ IDATx{> ÓPqqqYYw}'..>gΜ?w"a +: `ݻ!X_bg>}zAAA1)S ^Mliio{=))6l3n8UUZuuuFQQW755|L"f̘!""c2L&AQQH$H$M6ϯ}Ȗ|E=}+;JJJُ `SSTYY޽{݃9\eǕ+W^Z^^~lhCCC[[BHBB"558//o۶mQiӦ_W\qssÚƍ5B]p>ISS/;թTǏ'sVVVH˗/T/._M0|8tPaam߿̙5k`ӍB"""Oeȑ#w433#H֭ {EƵ0uT?]mڴIWWw촴477P(C܀Nkxe|@(;%PvK@.\2.op Znx;S`޼y:ozj pf(;%PvK@.\ezÇmmm9YYYC?40"qHQMM]=f%]TTܲePg ɓ'oYY'ˎ>۳y`Dᐢ>_= DLL̳g>Umg| 33\11/VVV8$0|}#7y=0|/n3o Jnٲe9|0B/33s͚5߿033SRR׿>Bb-_<((ﭶVVVJlyFYYYirrܹsw]ʕ+'NFyyyY[[3LlflMmmm2LLLvܩjggRYYsNeee|N=BIIĤǡwyQ,E}h666***"  \]]"##&*쬣pBgggMOHH055޾}y󺺺;wqq~M^z%++wd2caQv455YZZ.\0777$$H$xxx`999$i֭ׯ_WWW߳gO}}=@066waVVԩS-ؒRPP`ee%&&^|mΝW\@999۷H$d2,''9 ԩS&&&ᯪF__ɓwvvv666>qD^^ޅ z͛7!<<͛쭧N 0a6]ssXllݡC( TD!]ڱcGAA7Bazqiii` ""b}bWk=ҥC$sarss?|B$_h"D"͞={"suuqFvv/\ٳ9s  V*BFbYYYTTT={ [8h4yyylקȨ +KKK `,05,MMM~~STTB&㣫$ ,,GiF@ hjjry),Bu)S,X9Ǎbl V.U"gh4d=h4"8 ^g޽޽C(kt/ZcccWWGZZ_ݘvvvc2eҥKteff.^xĉ԰82ydQQ`ʔ]PPLNKK2e Bիxuuuvv6oe0TUUgΜy1:>w܋/N0s; q"""]$""d2 '⦦=rrrnݢ Hݻw6mž~D"1,,lڴi~~~Wt^377_#Ű8`0:::mkk޺f͚*UUɓ'skcQWWWTTT&&& cݺuK.]dw؁_ޟy޽;&&f׮]吁1n…aaaeee۷oOII|2ygϞ:|5Kii;wtvvZZZS(lG5 ؜9sQYYkRTTtqqv횵5Fn &ݻŋ4mҵ~OZ+w#w7eee߼ySHHjOܮ-[fee.5l@@7oB999>>>/<;賎&+ JD1 Xիy;ikBg_f{;uuukfϞ=/8777͛7C0FЯ8*??ĉ?wA"H`֭[vo8 c)))/юm۶ 7oP'Nlڴ O 3fDEEt۷o<(%%bŊ2Gz\0dFŕ,L&ֶoUVVuܹsåKVZ ٳqWWnLLguC# tٳN;88ovp0t0ted dop aq-k7xA)uT!]W8e3x邽(;%PvK@.\2 ˎ//z^dLmmm㈈777{yyUWW #=|0 z{{ac9 ]PooA 琏쨯nmm@33˗/c?^^^ywEGGZ[[[VV \RT^^ cbb={=f堃t>_N_x1#a,. SN}e)))у20}}(Aknn~ ʵ}:>#:÷h---nnn ,GQ(SSS%%͛7WTT3?BII? {d2-[&?td2.]|lڵk/\#++JHH055޾}y󺺺d`drssƍ/^|Iн{6lؠ믿 =E?XEEe׮]t:϶6WWW555==HAA޽@Ƹ)JMM՗-[N??5kְ~y&']ѫWVUUuttd!-;0gϞUPPϷZvdsssPܛ7oLMM Bxx=o;w.!!!<<<''gѢEZZZ?2e ֺo>AAAeeeFХKTUUdrZZ6gmmADD!#WJJ쬭/]dkkgϞ;v\x1;;K222### !bvQPPMPU_fk Nttt"##Ξ={}000ݝ>8::^ #]Ν ۿk>|{nl6!߷ Haݿ!pƍUVa$i=:}zUU琏V}o^B0ڢh 0޸qcݺu&M [r%{ف#O*) =@${g!$))g5555 klNoݺu̙Yf3L / G80yt555&<]=vȵqh5B(..NEEG`]ƍ ҥK]_ 20 l6ٜqt>)L>~իWB555gSYYO?oٲe|Iۏ_G?GBBBFFݻd2};s挕Uzzz~~~PPɓ*AAA@"!!!""OaBNN`0w_f>'kNdVs :::8w5ṣGXBMM D7%%9Ո);B!!!} }}}[[[xOZB6muww?p@U?d`Lsttv횵u]]]`` $,,occsGGG)X ]cum6WWWww3g ~aÆ 'NW/nhhx1n1'Ux;5B6mڲeƍB.]:wgΜaA)uT!]W8e3xI{;HǏcO'M¯06A8??Y,VeeѣGMLL$$$x=4Yh|?}tܸqRRR?9~;@,`茦,Pvp-2Pv38.\2`op /h",dzx 2RtZp^dHep (;%PvK_{{;FڵK~h`D✢k׮À1{,۷?gφbHeRSSǭO6c @p%%%޽!],rrr_ىuTT 8"h{;P(E {EM|g8^Q__pB^!`jjZ]]}yuuu!(͛ h4CCd|lcc@] IDATҥK/_OC dgg+))ܹ !D"Bfff/^I^zcss3>>&~C4446oɓVwww555ccOωbhjj=z?XEEe׮]t:wc/^d2/33s͚5̟ׯ_޽{…FFFT*up>J0H8DfffJJJǦcliiqss[`ArVjooGQ-[̟?OÇppttljjw^RRKbb"T[[l``1~|++kK,177hnn611;tB755WVVhllڢV_YYOQQB:::W\A;wL&O;鑁s΅߿ڵk>|ؽ{76[@LBB"88{ݶmOO>_rԩP++ &Mꑑ]vQ;w!]/HWUUfHH+g͚URR==}5k֍7׭[믿O7lbNA 1R(շ~V쩻ƍճf***ž<?CFFI^^b 7akװiiifJIIvvv7Euuu.]ٱc#o:ELOO_`۷o .d}*sy ҅ Ʀ'$$̚5ǂo}j=8Gbk455͚5+!!_8ٰ)%%% )%%e?~Ğnٲ%00{̽t]@嫧.CDqƏ>Ï?=`0T*oRPPB阹sb$%%jaΫOJJoKKK<?& 'O>}zUUl` 4{l쁴4b𥤤X,V]Meee֭çe7aiBaO8KII kΜ9 ҆Ÿfdd\~]@@͛7xi޺}!"H LD~~~|~Hҕ,"""ϟ?}t}}}\\cիW!333V,OS~/@ X,Ѓ擫G$y汷qFnF$]MM BHRRU]]8ػΘ1CKOCBL&711qɒ%?~[{AzSSS?""b׮]EEEA ]{nٲWWW@ lڴi۶m}Ά游8M⦦C>VWߠt"...((ɓaQDDDL&8qb&v22gbbb˖-N5fqB(((L&M2!tUνQԄɓ'GDDϟ?B{eٳg?KHHܽ{ݳo,:\}_2N:;;C6'''222BXI&!$$$DDD5~?;;w{:!]ch!dVs0Nν=ztܺum~ᇚ۷o?~G1k 7̬v"yzzFGG<׷ !K'''*ŋ˗/pmc(B˗pbbb"""_x'ӧOpwwOLL|B9}4_6'''|r//b''2@ XYY]x̙33cibb2sL++zݻL!]ch!$$$yyy۶m믢"444tuuO8b0<nc Ν^dzRRRs^ҥKd2``7rsNgg9B~O]WH$TVVZXXH_~ 744&//~k׬Ob%v+Wә!]chyzzXZZ>}v7wwwDа]lvȪU$.vWWWyK.agyxxTTTq1ֱH=KhPVd s"]żN*kHdee߼ySHHj . :]6..$~fahPVd H:񺺺BBB!>>ٳgϟ?ŸTvL>JL&d .pWCSRR*QQQ_v5@\;Ȃ5k+5eAFt9ާ R]]]$oUVV_o  `@h*;(;%c x vKpO'#8s0tbR!y;k{;%PvK@.\edXO곩ڶs~IRRRTT 5S]TTgӵkFssWuuut:m#{~.33s˖-C(;KKKl:y򤣣#zc_oYY'ˎܴ>۳٧@)yYMxxwEGGjffvx>7P/0,0抉}qϟ?!S88ÇgX;v(((P(N:jee6a„>ߔsᇈ+V8p ##㳖5rqϥK޾}o߾(BGGGQQѳg*((O?qDww7>+ӕoeev}ɒ%歭_#pSpǎCEFF۷/ !rrrњC8bB(77Ç...D"999-Zׯ7>z!4yd {WQz֭!{{###GWWOKK+--MNN?>BHSSs޼yXNڿBHEE寿M9ԩSk֬z(--AF(9p¦8pG$))))!!AHH:y򤅅?rrrLJJb2 cMMwyyyA;A" H$WH$ RRRX́nhhd`Ԙ={6@ZZ!bX=/..j :;;׭[׻`OעEL?s~ ׿]OVSSh4yyy_.AR )>]eo;aaaPss3ꀀ@|ԩSdpijjGDDڵ+77}I$YсH$?7 NMMdM4H$䂗@XX~Y`XᜟCQT]]]Df?>nggg>>ݻwW~n^z233c^'>ñ>}z B⦦C>8&Ol``!**AQQњ>DDDL&8q"NiӦN ;_5BqΏw}G&ǍGт8tޞdhhx 69 +TTTH#p9;D"͘1;NDD {ZRR7)++߻w)`ܾ}޽{iii 9d2=*++ /.3;زXn80?c…DEE1ttt8䧵dƍN]İiӦy/HݻwdFRv\rիAAAǦ644`AQUU}}@@@AAv~"˗NNNT*ŋ/_f |=`ttt&//omm7gC/]diiGmݺ5##_7olhhxر[OAFC$o OL0a޽/^hh0ҵzK.d^>7ty󦐐PwwwUU544N>2PX:B8ob VWeouuuKfϞ=h0@SRR*QQQ؁^ p4/#3ɴmiiooݺwR=c `` p:ނ(;%cZ^_ĀhW•,S2fW(;%PvK@.\ejkkwUQQgwQQQM׮]777hÀ}۷ogϞ Ő&(;\ɓo&>===;;{|IGGǡ"u:;;KJJ޽{7CÁ\~~>G F~'̡ O /;⌍7o\PP+YYٜ|D&IO8vZl/^`3h4YYF//K._Y,VhhѣG9arr2{oaLLL^~{ Q?UTTvE߿033SRR׿>ޤM&555CBBztjժvЇ|}}WX@n޼9|#2صkBJ:;;,\ٙ``3t 9zqttŋ?>}tee{deeK.}v߾}QQQ,ɉ+SSSAAAeeeF/ cDppݻm۶>88ÇgX;v(((P(xSBCC&L^+knn611;tBk SUUeii?d2<88Jꑑ?GsrrH$֭[_g3###)ʩSLLL;}6D:wBhΝo޻woxx`ss5kX,փ+W"?.--3s;tzXXؾ}bPYY~Ǐ1Ǐ#8u}mm6eΝ3gH$*Ń` ޺u+B>$$!dee5~xJKKϟԜ7oDӣߏ}UTT>4,,LFFLJ@ UTTDGGkjj`ϙ3!dkk{3`_r#GB***mmmQQQXʕ+uuu.7nƋ/_  h46իW>r䈜B޽{ %11QQQ![bEjjڵkBo޼ʎX<]k׮MOO?|0t{;JKK;;;MMM{L722jjj.+--e0!l)))YYY!fsHJJ544pg)ٳgc۷RJJbY\\,++|YYYgguz7g``*((TUU`+S9_C Z[[322_. 9p]]]NNNJJJ?6pXnYYY߿Geff*))^QQ3Cc,],;^~/**c)S.]\xĉB666?#B -@ ,yxH$?7555}6h4"(&&{bׇh - laPb2>>>III?~[{Cz?SSS+V7Lé%%%Ʈ󏴴4۱ e!))һiiiil| doo 6pu! **gϼ@\\o6=` 3 KWPPLNKK JbS$%%{2ǏZ !`iiiffF"8hѢZe"HLIIݴzꖖrXkkkIIƍb 699JXw0`Gб!g')s-X&!!!""!~2Lӛ2e Bdvvvrѣg>x`|||yy9BHYY[ۭ_222aGc6mf.xyJi}}}D2BC \ɓ)]'N~?ÑiHH;::rrr˗/"QQQeee222Xhiii[[7|b``dkk;a2[@ XYYϘ1cѢEW\oV T]]ΐO! ]]'NƮ_>22≉3gNИ0aBHH{;oY&;;;44t(}Gٽ{wdd$?}_mD"188HIIF.aaX~~~3g8::כ Ξ=ua777yyykkkȮ2<IDATȨ 0AZZΝ; ?0ck׬#!OOOKKӧOGwwGH$"h"OOϟn<|||؍jw...Hh4wIG{ׯutt+oP7L?hƤJ?_5nݺ[PP/F~…w)ϭ[fϞ=X[`[0t׮];X5(3ׯ?~ooo^0 gϞeffRT,"p,;C- "aaa3fp{nǠs;CClPvKA@.0d [lvZ||{%K:c/^:ujFFǏ$$!dee5~xJKKϟԜ7oDӣoaaRQQ믿|S_la߿manܸj*Ddaa! @ ddd|||\EEEtt&;wĆ=sLDRN*,,ގoa8o֬kkkgem=p@I$RRRRBB>5||F1{l~+$$4g)444`Oٳgo޼D"C BQSS6C!EE榦&3g~OZZBkkkQQӧOBsŞJIIXƩS_\\,++mv1sݺuzedUTTtttt|:&|||'//Bff&>$|%%%`=ᅬ=CQ7qOԴGo4A^^}:k?|?n!JJJ9d2Cn?saaL`Puuuvv6z[[[-Q7ߥ&뛘dEEEaa?~٢0?0_mv555}6h4"|֗[Μ93k,555qqqCC7n[nҤIaaa+W^X]]wأСCT*UWW+_s~8=uww;;;edd޽[_Xv۳5Μ9رct:}ܹ/^0aBHLLlٲeW\ ŽM2!tկ]QQњ>DDDL&8q"NN&?~UeeePMMM]]ִqhssst#G`MMMMBvvv}L7nF ;O=))6l@c/-))yݦMxӝ;w$$$޽[TTSQQ)..e lkkÞd===`20UVVS CeeeaOY,˾SȱBxә3g󃂂&OMWVVwk$((Ԅ=nmm-))ٸq#+M㐟DbXXشilmmHw r!!!b~ʋ/zjkk{Yyyy]]N6d̙VVV>|ݻwr[\\xxxEEEKKDjjjqqq^^޶mU :SSI&988cw-_ :99߁QTT!K_vvSN}QVV~|[[[AA˗/tz}}=^|ɉJkPWPP[DZpUKՆ "UTXGZDZW@k@ "EQ_/Dni;o$A}ݳ OvY3gTVV{YfgggWVVjhhhjjeee ':m4B2I>? cKKM6555%&&M>>>===...ի{zzLfZZ͎rIIIZZZÞ|ݺuiii۶m8tPHH2fLCC~PSSO>JRH9zktt-[̂&;;;CMgg_vI~axxxDD1bBի/_0{ݻwB 333/_.Շ=ҥK=<<"""n};w\_=qİ`D&>I&mܸɓ#{@.r˨kmmݻw/!8((h~~~QI(K~'/&tuu:u*>>>??X>29Pbb;0)jjj㾬9w^UU˥Vx ///BBktɯxwdmmmrW,KMM-11O,)kCt.=dinn޳g@ D!!!p39C񫬬nRUU500Xdˇz ,!8OYWv( ;x]=vPv(CP(9Ar"?c 0l62̸G-pe  '(;@NPvZkjjRl`mMII9MW^eG$յ-Yݻ---ԲdJ_R999TWW͛7mxbQQѠMtE"?28&?w̙3Բdua Cׯ_Wt/`L+w;`|c0|͢&a!~^/2); ___-;y$w͟?fvvv{''gϞBD"ٳҨ}_nbbE^xܼ4 @Y|ww x77sfffR5557wܹ777Ԑ!Q`[[[//[%UTTСˋر͛7xbݺu%WZURRW_ L0ֶڭL__ZVSS(;wZXXDEE666޽"22rccc;6iҤb>p8OvssKOO555qqq999FI+Vr8 6H<}@ "hkkx***|>O޾};!DɣK&c;\\\ttt.\rJBȥKf̘vtt|Guww':99כu쪪 .L>bnnO?988n˗/ΦV+**eqiÄKKˌ ##;wB~Z[ZZ7oL%۷oӭRMwwwrrOZPPPUUUXXK  CQrRÃzEÇsss !l۷Sq|ݻwgΜI),,b0CE~9rDSS311dr8 u֭YDK&w;LErrrK.yzzB =|ʔ)ӦMCQb"ɩe``jٲe|͛7dqiiƌ›o9yd*#B !ٿۛB?sdH QYbiiSde6l0TuuVR5M$YYYQ[LMMMMMD%%%ԍQJWBL&9a„J%,<?8qbiiNyQ__tA=~bInaXKKɓ' BCCC###5srKkkk\U *MMML&ђԩS=ѣGf͚%y.mmmd%=~曌 gggKKK /_ҭ&LlhhDtx 62 GGG"5jSSUammmddeeeEaX'Ny&] @(Jnioo744$7n477s8B}yyɓGUikk hjj"D9sބ ρ\[oBΞ=+h5557o޿={\.w߾}TF C100|X,@tpw~~k<==`VVV~[[۷o744PO>---Vnݺu fggWYYY[[;P}c˗/Sb렧M7Bobcc# ϕ+Wc``` 1113f̈<|mm-АQEmbK.xƆZUmQ\\|E!dڴi+Whhhttt:::ĤCy!!?Xv@ (++ 622Zléq>SSӹs~999B0,,jb0Ν;yduuÇ%^z!++Ke0IzQ!w5agPB=<s'OHq߶m?p;vS-Z$vvv'::rY[[M6mذܹseKK/^0 }}}BԩS/Sd'Ï@ #*8ð0iΜ9k֬QtG!$$DZtndzgx> stream xڵN0w?Ž-!$ L>״E"Q!J?bcLw挕X i /۴׸V@fGlbn<_qDd*QYi]Z,#{Krm3S.IՃ6 tНSH%԰fW*staWC*X7Z.XDו㎶bR}NY`Q&clZ٠\BiW::iU/U+\(S27 /Ps5ݟM&:+bS%d6EId,SR g?; endstream endobj 9 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-21T13:19:43+08:00foo2023-03-21T13:19:43+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:348c6c27-432d-b608-e05c-254b752b11cauuid:d628e304-413c-8434-fe79-0ec5fa9a050a endstream endobj 13 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 806 >> stream xmS[HaˌZή3i*mAAwvh,- SV`+nV^$Kn8jVJ䃑Tb!ߠ݈(;8e#-,[Hں͒u${iy}ikdFőh-I7}vEsuYzX44iΉ8BbW*(>HޡA,˅&.ސ899\g9z|xS.c XFhg8mgxͯnf T;VɰTqPjJH)˹\j׫o{>Ciz Z'WV ag<{TfoD8A!=@wDA&?q.PÍe[k}UNQBzd|XL݅4!J%#jN֞ߥ.~i&%iIZ;=.0%ؽ]I0a3dΛ`+MX ;~et0גE7a \74هEOgӨo a9<Aqg_mKHö":霓z<@X@,R_=gm%ZdYs<>WwwI-vO`+';oáZO9'A3 kqg~ҏZSVU,w؈MA$%>p endstream endobj 14 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 15 0 obj << /Filter /FlateDecode /Length 393 >> stream x}R]k0}W=kC)ڮX?ثMn&A؏_b& s=tv;0nq [IEq@d| '% nm(x1PФdزIks>0d k0 / zπKL/mdj1^kSK?ia4YAй LCq&j^yzxGPqqam8YqQcxq]$2]?~K=T&8~3dg1EҁV;Z(X/{a7+TςMj-Z4hfƢEs57=Z7%-I7Z`kϤе>\nly endstream endobj 19 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1028 >> stream xuT{Le߽+TzKRX9ԄG_`A"'`ysǕǁ<w}ܶk6@j"P4V61iEY@k0b8_2_f&o2c*#;w?)32%5l+G=^Pd1UEV )AmÕ&Tp)A)(" لaCdFm]3fǿR(F89"2f_Us)Ϙo~ 9KSajPʆ,$F*8UT( 9(·8:R|!s8IzKetO1v$Y5A34~v-͍o=+wѕDm%f4jdha$?( e"3RNx&z(+ڡWz''cYKY/g)C*U77C{N$ :Q4hk/ G #EΦ|~4yGl̗qiqnϙу\;1 _U䰦ҡqX69Zt|B}R S=U #9Q{`ODLuXb61tCWQ6Y4Z6wEP#S9<Gq B ``]VĉFb1reysͧk<|mRͭ疐A۠EAP\$iucP5 w`Mbhvs@/< t:e YbV + LbT=K;xɜy#6Kl|SH4 !nBGP‚y^EtI03xIBx@!:9 I*$7җ_FV߮͆YE dhfRL'[ٺ)s ]T*tw<TeH W> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 21 0 obj << /Filter /FlateDecode /Length 395 >> stream xڅRj0+@sp,uA]q(:ؒ탡_ɲB*0xّOyaxH,Eg^LQ;D=pPX2XMMJ->c.nOxv|l2G#e)/M |kOT9bސ7ւ-ej{n p1{ET2Ba*M\m煪aCEcz\24&7 ]?.Jk嚨+xQ=ЩnB?W2̳D|/tćF( v=J+^LhdȢEc&M,Z4hfWG립67R:^\`w4gݴؠs endstream endobj 25 0 obj << /Filter /FlateDecode /Length 1106 >> stream x]TKTE>UzGUALΐٯ`@b7"&"N01$Fnt#q΅?HXuPJJSCfsΣs .?9z>A鯣ߠD?\u>t !Wߺ>C{;];?|)+oy/xa|Mݺ{ k/Sw377ѻf Vo7a&^l+qh8$0 1kiLY (8_v#a^wYWw,ej"^9˫Π9^MQn+g1kGmW\^8O4!SpW*FŚ%$֋=T/,b`ڳ\요ˁ98#ԡT:vt=ju62u˙RB恧9I_#!W.:asrpډr-99F9qcWCx M|j ګAҫva%6bcboվZrpl/1L$./sk'p^IfqsDxXx٠RSh Z&Z$phBrz0Z|[WG}n7"ѾOr?uhIyf=$u4%u>_]=y9b}r6 K7h~zFxɔNz)]>'X  Gu<[X ܖ*/t2_d87tYɱ(SK^'8jov5^dO>1FrVi#'9Țy҉6F^11Q-s\p5FgǍ(5% a,^)V>QZ;JD$)nMT&<ޕZIf4&_)fK1O xOxx4S RIh6R{z27N07'c-dQOj9РTL_ ]~\=%DiH2zpWt4O?uȨ endstream endobj 26 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 27 0 obj << /Filter /FlateDecode /Length 392 >> stream xmRMk@WLҬADBU1Joqw f7l|hm]ͼ7fv[Oȝ }@`. GwNмHP+Df##̡=yȡB`zLI~H&Q\f;0 7dRtcxUb;GxwG s=W Oh-P[(d9&::0%jKi4R}RQgրdRxv aПXWm7xa -rl;TxT[iy?6 endstream endobj 5 0 obj << /First 125 /N 18 /Type /ObjStm /Filter /FlateDecode /Length 1069 >> stream xڵ[OF+ BBH,%]C,}qt/Zmݥ W٪4¨,6;~}]ܷ Or 9S r:-99{CNMG#{x{Oˮ}z,FP/79+i4 &/rOΛwbv)A] oZDtv`=15a,㵣bT5T5u/Xh0d5ٌnF҈jĹ|[_yR`}Y u_HQs:WkmDK-8]N qJ~|c3 / endstream endobj 31 0 obj << /ID [ ] /Info 30 0 R /Root 29 0 R /Size 32 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 101 >> stream x EDz"Њ XNʰ`ŗp+ఀSr#?`vV/ج$f; L )9>@ endstream endobj startxref 9979 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/09/three-line-table.pdf0000644000175000017500000002166514411653175031601 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 366 >> stream xڭN1 Ec;vlKJjnx V>  !it77&?DžN XIes\ǿmafBA*$k^FJOgdg0AJ#}#"v9c56Ϟ)C.e 恕92zLǤH; :[%þ(z=gsq=gsW;wq=Z(@I؊q<' Pz)_OZGeZF:Umo|[ElĩߡHb1fi\u}gR1=U_%OR-#,tL5̈́ m,tQD+eg(x endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-21T19:00:12+08:00foo2023-03-21T19:00:12+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:3cbc16cd-4296-8f12-90ae-4b78c815e1afuuid:f42f254c-442d-8401-b2dc-87d45f3a35e5 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1878 >> stream x}{PGg؝EEߞb<\)i0x"% HYXP( DRc41+hHg6,D՝ꪞU~IB%H<ߞpQtyuZX诣,hETF!P2BSm_$Aٟb I6֩^7  T{ ~n &Gĥn3:ї^0:)w7MhIgPN!Yd;z mVZ{C $BmnJ>rUtV\^(J01@@+Q2eEa^:s᫪e}!2(z\tk`is؋lv!$9 +hQBwVM Q{$`)h `0;wb~hPY dxO: 1~DPo2ߖ3hl%: q3^`xsBʻdrϓ͓JQf4R:i\oB BT;ܾèN1eN+uEӺ۾mX^Te2:j,{Iͮj)Z`o*ekRֲ_;Dot5J: 3grgg-Npfoվۗ:;O`G)dl15G&E G.Dy3a0a'=roNp #+o#^սS"\&nm75I5y--`M7/$+2;]P.!${[;k_FAexAɷglW:]e'=݉u+dxjaݦč|dsܹQ46~IM.WgL-K# ZHp mLA=RgYZt= g*(FC+~zBAh endstream endobj 13 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 445 >> stream xڅk0+n>tMu6DU59]&%mKz,'7} bпe`+1yݞi^e%@DG04J]+?Te3:K>Y&L%x}Kt CjֲRGncvaTgE+N!lۅ3z $/O 34+:%fi0ChȢ40]ߍ@#:ל[Ѫ:`2NF. O[U<^Bc~.q"O9Tm+xaGcTj_֌K&Ц:͉DFwDѐD#)6$zcv>3ŽzZS?"s>тEh!M{\${{Co݀Txzv6f] endstream endobj 18 0 obj << /Filter /FlateDecode /Length 1059 >> stream x]S]hU>wܝ33w63NC8!&VM/Zm\j%Ģ4",ŗJAE`QQ|2PZP&>ݤi{wwι@  @ꇧ@ۈ=p}#G_ Y]/=? P؇| 3t~ؼp@9l4C/JuG8`X$^MNހ7]/%@b?#|a@:XEC-g0 pT8]cy[,Y%(2 )6=Xs 3;_(}cӆMOJ+'`j7Ow5O\=a:'|%.g9ӡ46/=x *m|E#Az ( B2'DQŵ+AVZ["zG74b;n*YmLv뺡i3Uaa?X,-0PWeWDFXh<աXq(Dɲb}er'x\X8lXeB8{A5PYwn+`ՠ&Z$QY$z*P`~l^0:٥[:RW)(N>p.Syzf:d h}>y%qo+I)_> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 416 >> stream xmRn0); !~Z*DJ9|"5 DIH}ԖHQ23ؽYz+^J@Uo[=«<t*Y*~jvۤ'J|w.'nVex(B63==T&;f~?sXiLњ&88h{SFƓՓGcכ<]o[43c& }[o6bCٺw٤ )U6\u endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 983 >> stream xڭUko6_qE`= @b7$ l' P-Ӫ[4$HJr<ڭ`$/#JdJQ,sAD)I0FDQ)0ØF{s$!!qJ߾3 -y7qB1D=!"AQOĒ 7 0(@|HW4k ,j#yU/L/GWSQ%géwkU?gO՛I2NY-uU9 &K]>}$ Ζfa۵NOwƺΪbkMfMla s,jlmr_]KIΜ#Ek$ο4k Z? h(R|4b/&,jFĪuZZ*8vG/1wk7-i\*d d Vu|*3t~gܖ$F&8V~ﭰ_?ggG׳b3ەin~PPf̢d^Jh^ԗZ] ʈE!X_g:{ՕB齣QU_U%{rGf'bbqPJVc1>g`8haЮÄ1IOhؓ`Qvsy;X#>,BH5Yo޼+ƣ:L ULM/YG"^2]rVђ;Av{ʝu:~u endstream endobj 24 0 obj << /ID [ <05434789DC3DE151B5EC57EB4F8688D2> <05434789DC3DE151B5EC57EB4F8688D2> ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 85 >> stream x 0Dљ$~B6ʥ]XFJHS8p4d2:%eV:~p2C̞ endstream endobj startxref 8826 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/09/04.pdf0000644000175000017500000002057114411653175026676 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 315 >> stream xڥN1 <_XB(HlH!&D: +~}B;q; 5BVb9>Mի 0FHn|! L0#E13rh R )#oazR*XղkX1L깃m,ŋk`vc)H%BM=i ?l 6E.L9i=N=DCF|޺ ֪+&6شZozY'NF*ICeYC[ =cKz-A[h-ʒ V$BB-< l?Rbp]`L_/Q= endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-21T14:29:47+08:00foo2023-03-21T14:29:47+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:3cbc16cd-4296-8f12-90ae-4b78c815e1afuuid:f42f254c-442d-8401-b2dc-87d45f3a35e5 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1878 >> stream x}{PGg؝EEߞb<\)i0x"% HYXP( DRc41+hHg6,D՝ꪞU~IB%H<ߞpQtyuZX诣,hETF!P2BSm_$Aٟb I6֩^7  T{ ~n &Gĥn3:ї^0:)w7MhIgPN!Yd;z mVZ{C $BmnJ>rUtV\^(J01@@+Q2eEa^:s᫪e}!2(z\tk`is؋lv!$9 +hQBwVM Q{$`)h `0;wb~hPY dxO: 1~DPo2ߖ3hl%: q3^`xsBʻdrϓ͓JQf4R:i\oB BT;ܾèN1eN+uEӺ۾mX^Te2:j,{Iͮj)Z`o*ekRֲ_;Dot5J: 3grgg-Npfoվۗ:;O`G)dl15G&E G.Dy3a0a'=roNp #+o#^սS"\&nm75I5y--`M7/$+2;]P.!${[;k_FAexAɷglW:]e'=݉u+dxjaݦč|dsܹQ46~IM.WgL-K# ZHp mLA=RgYZt= g*(FC+~zBAh endstream endobj 13 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 445 >> stream xڅk0+n>tMu6DU59]&%mKz,'7} bпe`+1yݞi^e%@DG04J]+?Te3:K>Y&L%x}Kt CjֲRGncvaTgE+N!lۅ3z $/O 34+:%fi0ChȢ40]ߍ@#:ל[Ѫ:`2NF. O[U<^Bc~.q"O9Tm+xaGcTj_֌K&Ц:͉DFwDѐD#)6$zcv>3ŽzZS?"s>тEh!M{\${{Co݀Txzv6f] endstream endobj 18 0 obj << /Filter /FlateDecode /Length 570 >> stream x]ROhP6Y4kVuc "z *J;c좨"¼ yPDГVPx(v^tK[g]}0]ٯۤ> ;?#VOH/!/M\>G^L%S9Uc+_ 3(pޒ?U%/Frw>܀ [ͫc`=Z#B@+ ^dh> ư9# ?4&$y#N&&$ܥ"}ao~ %1I^2Hڢi/9TWnhMUqSO5eV3tw:cnd%Kѭ"N5U_6엪[@8X T̤4`.%|>ڢd$wv.xC>3J[viLc{*GE.ELd)ygtkBtwĔo)l3 &83/?sC:m2꒗" ^+!;"ee8fl4NR[1NJ> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 386 >> stream xmRMk@WLįRE5 9THkܝ6!|Y,fޛy3c`=~vᄩ5C{&V)(="Gd9bf/E6 /-ذIk y>?}z"ri|ٍHy <|u*u] l%ߨ̑ZN]$$׵!{p\P1"0e bΉi樅B/> stream xڭV[oH~_qJa(BJMH`% {,%=Kpn ܾ9|x@)PO@`hA |N"s`زʉ +wkpWـ;T]mg01>  7OFyaG 8 ~=Oh+YkcHBdNpj+ p'4j77쮿DY`d \g)^`p™eox 4Ue\d{ ejGA&/&<a_bD?,f6\k߮ iLK;WWzX!,XJJ@>juUX0fgr~Dm_V&VH#QmrIǀ؆qJ$H%&j0y[+S]}gTHBio%S?qwN _#cOt _Yb}hwxln {kS%#do|' [H%TꪈќUPw@ngzBKeάl׳~ FZѪW %U7ryzDm?5ksK5+]2 jƒ*LcѨ#zlԣq>un4h}v. bI%w+2Ƈ]QoĢ'I8"/0H3Z;޹ov6+RBISitd!3]T@ȇʾب͆/&D%b_xdaw-o0o1lݴx7}m^Zg~=?u\bb6*/PI7ZŒ ݎ݃6L:Htfi6/} endstream endobj 24 0 obj << /ID [ <05434789DC3DE151B5EC57EB4F8688D2> <05434789DC3DE151B5EC57EB4F8688D2> ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 82 >> stream x 0Dљg .µ `Y)([.  H(b0fpxIϤ}Y^*i endstream endobj startxref 8257 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/09/01.pdf0000644000175000017500000014116414411653175026675 0ustar hillehille%PDF-1.7 % 1 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 210 /Subtype /Image /Type /XObject /Width 360 /Filter /FlateDecode /Length 95 >> stream x   9 endstream endobj 2 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 210 /Length 26171 /SMask 1 0 R /Subtype /Image /Type /XObject /Width 360 >> stream x^}%E A$ "|'?JA$(UD ~H JXwٜs9ggv9}vзfΝO=P]9=ct?vq( _"EKb;s֠8nVme"?hĬ掊 8YeX6l[s*VeXt=\)F:Tmj_/A@%\eh-O;v7q@Ǘ}5R\`c.CtAtg.T^,n]Iɴ AxI߃$Um0m.5kZa6\@׃րi*E_ SŮ:c༉q. zȚ}\'0-LAݨJNeq.؛zhS"b.c'We*cKi"a 7FPR}ssODg2cbM=Sw[l&8]LvZaM^*2eL,Jc.OXˊkVsy1:G7#Hv5n!F`| *ZvC~xm~-e@G˃LD WpSm"9\$ @Cj*b$K1I}L[ LUn*@ECmW}!nCoBQ;8 6ĆA:Te#Kv)|a Tl1{񄸾Z^R."W0%PW Й&c/,{"1 !#f{ ᳠5\* SsԐe1a;{ 'p}o.`me1QVyQC]e¾ʷ62xqŭ=Fϩఄ!o.:c6y 9:o tqPs|}IJx Q>N&c=eT$nyCE\I;1С };,}VgO>=o0I"?a &oiyC:aVet/s'q~f̖yԝMuᬆOttBo622cV` >2Ѭ@Sޗ,`@UOOª9ۦ0D 9ᠯ4 :ocABso+`ZJ#I9\} ˨ͲML{i!n̾ hRz`̪py0P2yT yaZ0ѡP;j^gܷC}N6-:U?݄ʏ/jlo)5M o~kMW|߫KvW؂(vT*ڲ槽9 1o suзF%ɤC£ӫl+\5٩^:o~czcE.[_]w6<4Zz{cWG= PR:d ե[ߖ|E&_..ݍ[;j~}7~-ށi`_ 2oƄl'_ }6t:wtR(|iuI஑N[tɘtOcUܵ܀P M 6HY.dEz.^?Ӵp-RHܵu *~ad2߶c=?Tɭz$wd 7w-7xMT,v0vAtY=c%?T;x PIz`Ki,3j EKI MfMz l;8HO[uOSIGM97I/|EaKbAgѿk=V??IWVVp'ύ= wygI([e|OӞ>SXXXQQa:0ib SmSl[5?ӴEfff@룾F^b{H@N ]awEn CZ?zC@ /]v=uiPݗ[x<7Ȳ[<9-iz5;< ~xȀT0=-L#o䎻GB!RAiI\)S˰ֲw= oWOչ4C*XE+⡐vo4bRc"w-AJcCFR$.=!0AQI8;nlt.bE=+(*ȥ;&l2#39J&tǼ,.T*9j/a,bqG=!>p#=gQQ]&59o4GpWjS!W+1&LI ݽ)?3t(.=*+*HJ.2Ң O߿@IQ1=rE9)T$;!˰ ;%ET*#ab,WsG=!1pJ]Bn ⍪5q[m!xk7mV0766f%7S5hjj-JI74zԗfj P qP_i{$.MT0~!b*[eGW{ )eXtǮ.eT ˰ YKqeQO R)e"QSJ)l׆iu* tjQPyQ{oʜ*"e빣Ve5.Cl408(Y ɺ'ёA.6#{ua#=PBnCk{ax*/x됦j:A2tYq-% TFWC C7t02LAEWN=MzH }mTJJ%t+T m. ;j< aNJa˰ {.A+ѿa9u"QE!IMw<.^x:uyҊWpXzu*K2La:\!^ B6R)︔W %T C\}A ogoH9O3xM20,8oQܡnTeŠM@&mQ0.7JƠryH_l)xðKJtbsmA(M!l0^5txwrY79EH:)uH9u(I2L5SY)^0Li,2,oEaږ却 ⍡f^'MY' a79#,C}Tpz@ S(@M –IkFaX7}Dx1QTk-K7A(IO!E`3"xc| L׈Dh nWM.,]PSV28l/I ԡ{/& byf{䍢=#QvM\Ԡ@A<A}>50)"p`5"9&Ye* :u#\)ZJ8.2<˹RO)LE!E.%#99Po+a uO MTOIbzj^@o)q ;JIfPJJ *udЬ.Z,Q M Oh,۪EB`+$f*HG71%Rͫ)59In[<׮m÷8!^jkVn\zg尶Pj6@ ]DLJ9%D2>R {۫C㣣Rb2cS RrW}r3ʌX ՘$!lnI 1iS_^ C%F0&sИq_ZUZ0$jU!ZvBCJ͊%k{$UНU`m <{UvB—m*g1Ҥe=і`@΅Bgᛋ%b/ʒPw319nI'V֬_܃^[-hw.ٽ8ao˙0d-09 )`Z  |hl{IGE`Gۅ\fѪfb{@;y X'[˓1?a-P -@`65{RY`^b C!e׋RAY}*7SظL6+/*i˰4ęXn ?H_fg|t ѡ>Epfݢڔy#'pxX$T1MVĈun0<xp5Vp:1Ə]zHsDUMEpLzjrԤq\e{#vņI N*Kmm9xq5[j%P\yLRq}W6N`E cdoF k"y :Z2 $E>HosF2& Ĝlj^!2i 7P}oCwiT{}n(:Bwc14Y˸>%&}mUhc^{_׿\/VD9s75]Ce2W_}5Î;^y|SO~p7x7@ /v\o"o6O{_~5Wؾ};Wx o ><ڵkIZFK裏**6C;]ZիW\r͚5x~`%xǯ<\vZ|9rh"\yU'?{恴4tfK]CCC]V믿< {m|k駟s:ꨢ"/M^y0~?M+|?> wt7JJJ.4B ah\޿K/go~_E=xP.\~r7N,/ zl[زLa G 1; @C뮻polܸFšk7bqBo}kxeLx_1SqBbVST?} s.؏c~yc9u(:8d#`P?y9`b;Vs1t}A1;;'FR[CK t/|#&@O;4: 'y(0ϟd(((3hEBPU`G"/+/u0$doe T=?Bg]>B. 0lov4#هTqo^IB88%&k~@oyjl tT 3S1@yt_ gBomÆ xe@]a; NRA0^a(Guo:hsLӠn 7f/oDх ORѹN9G`,X#,3fdd &Vm@LL POKnggve(89\)(C(Ha\Kgb2A ® 01 b8|5H卹sRWB[0;B6Fx˘TN:!`_.{ o t1z6mئg~}qǜvT`<j]j,Y$;;{os=tmй`6j#<[.p2<Ŭ7F]mu{SMwSԄƂH0M&&E~ugXh)T8V` ,30"oڶͯ)o:mB)^Mt7Įaݥ+W4coR08)$F@ ^W]uL=jhkÁ7EB3)l86NoEwqIh޼{ +vTg6cZȡ} o=g[mٻ:f҄_`8$cIϽ}wo[GB)UX$j% 駜@ǑҘխ)}U&>;~SG}Q9Y6xø2,v M^Pģ'."!/2y9Bgƫ/@Wx%P^4d3QQ9qߞ*OH/,^ŨY z벃 PD)5z 9x^w>?^s5  cmld*(>'x2toiF4Ąbw}TTa2i  #28~+0HsVu~돗o ھg˫ 8,5ID#j`0OAwwH!G\vxI mT)-&Gtqp41 Hq-{ۏso1?ui*cqW]}sPv~/+\2@h3ɚ沁{~ hsF;oݼ,n6Ƴtj~v%.//o!Nc8}J ~晇oiû/Mw-?4j>1ndLP(QK{e:reP+Ah Bg bLn,Ր %5{1 J='좰%;R}nec3sވڳ"1pMFĦ 1TB8ryPTF5&'ǭGm <ԏ^z>EBVy'2]|sIGk)C W^y=Gހχs*~FMW\  (,0&((j7=tz}uqM_xWO?rw]Wyc7PokxEK+/;T]_$ϗ4>ShH x _=W-uwC!<.b-!ABd8b9NX7jK2(>$YqrH緞)$)1!;˭]t chQ|G,oaBM{.#?bOwAqۭ6. ]E#Dh|¤8~LݟHCic=#\s [ }",Gݻy9Z<򜚢ʜ۫rcjSXfBavQyx{@\wχFf|x]X);N)QA?=//Eߞ_[}q1: L ĮꪓO:[VWXk+0F 84y#=x ~MZW4%`a//—Rc|B9=t +U-D&,m4ި.ޢ*v#T0'0xv/73NYgr򉿺ڨ ,e:ӿqQo|K.dƥv: &VA1p`Ї*\'߄b& g`$d\܂._W.xCb)'sx`<Ne|&[ UV'qs׿{橿O<s!H{1)LCCCptuuiw2E[LZj@Ÿ'd𧧖pGy/b tR`&~4RUm)bA]mLPGCBG)6 oTo@Ab V Rz ,\xBĪR%JPAH`^Iw m椂`!.C 0ca}.cRIe81"GIXEexKހ3@D,< xLsUe?CD裏y[aJH1D 0#un8 !0~ ./5w߭/Wk(TK Ӳ3)0пKZ0^mF@h;j tj ;T ORA\j{ƈg OpF:,HS̤2L='E@u]P&F]Z@e61<8Pii)8::KFY-/?A\xHQ@+ѿQMEx^c! \Pc^ hatǃ{? 59TP0eםPD/s@C0_%C{I\$C0DFFF,.yFIUDY%tԂ*6R +Yj酂JHT& `Kc IRAhv\,F~eRU;$ A/knn}ރYY2!TE6aF^qʀPcпQFVm ն@([Ow nP‚1A0ހVex0jjjlgLcPzH)U&DK-v8cO/fJcпQem6F^SbU0#}aT'>0B92ez%"j 9!XM :oXߘ=#mPmްYUVѽ0}exɨ & _[ (0Dsր08&8y3 m k  ^K/-"!d 3>+3۔Pg ܁p 8rZ7vѶ*fZq6;Z ˣ{uTgqR>v[#WM tT^l'y#Z7|g>EM'& jpoC<5TKx½Z'2.,6ՠ8oT6#`[lvEѼռa_f"=5M,SvƛuQ&7C)58ayҗ֋)d5o* P1?SvdWCImʕ|dt`:}mI]uxI' )c>z7C!٨ \5G5ϛ w +Kc_STW j>zhƫl9վ{j0[gŸ kИ}g eea痢P6+F j> ЈW#ՃV@~!aDp@,6uwǠL) * J١wtKv䍦"⍦") BMHn.zk7۪^Z bql *@y%9ڧy6*E2kl:sӂRWAqɥmiT EV-+MUxZ.Lѽ*7G(r&xs31vLݡmJ m̻ o5oW>\'K۫2 e٨{aԴ{A7 9{7}Me8LN%92O;TPy6QexBkY2JA؝oːV2q`Xj}8z oP6sQՐex}t~ռH7x_H6RbN%@Gl,2AKi"ݮE#VwS7Jf3q&}+VkK# ռapJ,L1? 9bx50i!q6)eԾ%Y2FU⩧db ³.W7z>tp "]RN7M"xRe[P =&(9CVnTݐV jgDBu).V)aLtOH/!J#FҨ| (0h ]-:31<o=mc#C#DOڝ0~GY&Z="ڪ`RاE6XG;GXHk{}Ug݇CB"Y!{2Y2;0yCeBR<-Lsw[)hF(cO.-b94t.OR)lCvk`VJq*^BP^H5-,59ZWj%R] `Łːt @&k'-i.k!̽w(1 兑DWn Bԕ&='t+.C$rht ;.B2| *PA lZeXeNkռ[ Z>r_!e ޥM^!)ІϢ8V}Ou7}[ qpy'`S eKaҔkho:xTC8eXv+/12O/=ʛ`+g;`Ӳ\'@Ͼ,M SɍF/V+OYqj.Ki*ert*#cj7]k"獁n۶,ߵwVC*lmF*.0Jyv]:kz7p7:\ME>Æ񊮮r&MEڰ"|V 7fIΰ7 ^EczۮwIxcPѵKݽzg/l׋ۢ8d_{o͛7Uo{-ܒ-T۵kכ6,_۾] q~qε^kWvZ-Uռau2^; ͺ `>js _3?tWwǵ#<_{w<3OM%ɯ=}'}sϡ|+_ȳ:W^IJJb ,!!{Y?<Ν; q Z tNo8OmJԣXŖK!=AOJ8ZSN>ߣزf +F@@U^|ų>Ned?00O?}⏏o7/0=n]/+~;1 lx0ޮ;~_ >\Swc=P[BC^[>6o?d|4\<, qїzQd^}ak _v~JXVV։'vE)--ӝ p OKK[0ރ+OΟ?Tq_veknnʌA{)/b7fXVC7]3ʱPî&u_C7yG1㏃ΝcLn-DSS[[ `7`n /@kkXʘ-UwzK0Gy_6G CSl`\egg?0nv'QGuG̤cǎ!>s/ k`>m~{4RwpBFY \^s˶e3þհyyyniiaZaԝ+tvck+xǰi)iC۝ж2%okC@Lxpr\DvFrYI!28WOM@wJٮi1/4T$l"8bÝduQS[9lW5{`=mNex=,Qj $y8p48r8mٛ o VBc+rs(M hU5ik3dÿѫ8W7}XvIAƺ/FT@{ ! \Y[srB jE &|Y| &1z`ӔEk|jgTBߡgaқ\Nֲd)kۊ "@0wJvbm.LJvL"QYVPPFcx)c M]5?h8. fSIFFА.-Aq1kT-K"/bcBT6MC `t'HLcY]DJ-r+)u7Ueh.B"!u߂W3°!fH܀F>=ccb9%7DGH؛5%poڻ+'CE82ee,2.'KaPAnHC3:@v<%w+QAH\'epYS\ mL`1w,Ps Y+D*shQk"@72#yC4zUeҖ@|V\BLfyMFpdi9ahvvuu7W$wDmt)'t)"AmpЅסR S@R ؎)I8޸3$DrsL*`9C+Mn&wbum'`ĝưeEtΡ6䆂G2K`dPATo'o@pZZۛ/ =&uy"AvQb^c<(Ǻdbx]\dش+MFeQ^C`*KXjm@騇.E4)Qn%!vPёub<3!AG.CRvђ  BjPsLFصRU`"~f6(s$%wT3eL[ՉR *hG۔='8ǰ፪ Y3¡J  ҤF:[/%XVr^)HT.֑}e5mJexY|"Yp6uB%Z{?k"ռASrҫzT39TڽF HVLdY2^\R)YYCd'}| :`obA _ wn=8 (XQ)| CtK2~a.RrqDri4{N SHQDj  S(K09M#Bd(xT`}oP4 abm>KePJ>l5oTٽr+Do$D/*9^njc먲a ^!rNӊoKk۲'iAAecXy.+5exBMUȺl.+S-OMq0KsJ[[[+'22o^Qk^/W73É7ډE_0cVFc*p`@\)?F8vG!.S~e7^s w'p.r/:|ɇŝ .ycַܹnqUWtItBkȂP p{y*?xCV j5ZlO &ɺb`_8wG+Wd1G-Z-+244aÆ~mA-ڵ>/?򕯜ηѯ+?ڋ/駟N5a}}&ͽKٿ}xoⰸCxx8q,KX`o~{I$''L7]R =ˆ𺻩dH FMq:ƌxW3m5oCiHZ R.DJwƏ}f+.O^p\7p2g N \tEm$0[:D+.>dh+2ֺ@Üsn'7V0h>Kp x[oJ~LeO1(}K,9vF-q~$?>묳`10iDΏO8ڶ#.o`ڽ_x>p?i ;>}{z<p xSO ]N,][n;yMNyc}͞ e8/O⍺ zVgyP pi_`# , L}^pK(L7ښ7jfç٤WMI)lϸloH\O?0{7F=mYݻvǵ0'lh%I(xeo0"߿;Gu?8)d T fN1U3x '@FzꩧG`9Sn'wC{zz/]:hPV0 ko$V{F,0Ahm&ޘq'K{ͼjCA`ޖ ;6a8ka3s ccc'tu: t_C tgf"7,, q4t,oR_@twq [p J7Z%&* vr~(Xj::DqV=+kFjp#,-3L97a6%"`dbС"9k_%b&%%%ab<< \QQqG: s='@{ 4AAA7d?ǯ<N;4Ks _ ͆sx!`zRc=/Sqc…g}6 0GN=T:0&={$A.,A$ިHp!LzvvaX_`K8VL`o&ˇg\rׂѽ={DB&^P.B ƃUUUJ/~  =pɲ8Ν묧ddd0a벤%Ae?}#) ODRHwkĮ^Ck!?pG=+ښAK+3]սTIuBN]Ew~ ¾F[n'rAp@&+!Gc~۾c_@9AMx7ԕPQ) GjBS*)/ ^PRp^i)#^58oE *3ò9 -k값Y!';e楼!m&Zw ¾pD j}_|;(Uj̠R>1؂dU S([[ BSYjpLy$'U,P6 0mOLf@(I&I B$d2 ^6 ntD$B] 3PmX ʤ-q' wWHe騖\C^Tf`F| +3} ;d511\&h0ږ0|p@xZ #ɺV=Y+&k*jDašyEUuU!˹ՠZ̸ofVDUw22Vl8M{8HYMFR6Hu?p!N=My.&)iUy—ǹ>Yd"Aviu>1 x0xc@O'IkN” 29%o1zN-.4/Z2LBHa,B*?.+I,-?sw]⵹z'(> ţ_)(/{6l2U&4]efL ĜyL4Lrǣql%06*uXuT߸u\Tj_Qqr""\MS }DmoH܂NGRݕ򘘟qmL>*>$ⅉHRq1@ fi߇vp+eILmLi`$þ#(QhG[> V}:84i',Yѕ?A`$)r0#1 <-Mc¾Dr>%m3Ay:od˹$cl-K2|~0 do,[6m MZ[V֜QꝔWsRO#%Gx洛~''?o?l??ɦÞ7ėy'J ?yc%?TC3+oXO$^RSRoy_WWG*Y2"˘ͅQTTTYYxߏ[,v\eq"51xrL1 Aa,njj9y,c^eq"'-xvr1;HF[[wxf{>G*K28LQO_(#˘hnnnmm2888>.oy6bxx/9s.JKݷ270EuQ*}$.c֢KsG c#42*7D*84:ChzZ𽤢Dmt0 xsI<k$2[Jk2o@SLϋ#Ů\ˏB $P5x$) &?p(!/4"DSQ ^fpw9UEQb|ޖ򩄓kw:PAnFi*L26~h!M%QZ/e!ԝ/+69Z˒;:F;% T4)8s‡v`Pok_[6GTa:ǐxAb8'4Ӎ#`AqDk-D[<5'&t/\R4-羉#8壖'lCv7|\;jCc#T2i h?te~Aӹ  A&n 1E]G*ʝ l }sX{(4IEߗsx"X(ڿm, DW2L11>F)#&>h'=euyFeТ+F0Lʢx+AB8F(08U^=6"eaU&m2D211Avc ǚo< ;`W# /9a^R37K=F*JXFGНz$)t|'{aX #_VZ\'x9KV0 4z)٣/QeB*C㎚z"4 hT oSAi60Fg[RJH} 1*!˰00 exr/vdNUr;*;j oH`M].P0 *Dx) $pWL@DyX9S2&T "1ZCv5hhC @wEБ%zڀD{j$¬FC vH); S`O2 *lڥ@r}wxG7 T. [%e̷Ϩ̌`zJI `7͡lNȼI'ۨePfUa6#u-!$ P2(eM)b$!Ljb$S7$V\)8 Rbo*%@أ S&F喙AYǧVRAveS>)7˺dL42LFjF۰TIz[f氯PTx%CkR⻊|*(%9(/3SZl1)@Eɬ^c!..?٥PW!y%Uv 7; ӴA`2 {/0$={aJ2<.; dan';SQc$%ۃ5=vWmW&/Ny-TxA 5]`RKBKq`ۑwa8@S>tNy7 `سVˎjPՌUºnX!8@cڃɶncQ&jP)m0 v5(C) qVc1Ԕm~6SEˣR5\)' u Jet4En4J$SmJbq沩Hibu5qPc`7QˠlRCGuzam#f`'P B.lpa 8.2Ԥ)em>Ve¾BZ SFJ]#\)ZW`:-Rm"0<)\{=R;5&RmOb3]r# 0]ywښ1FkXS-19^^MVTOC6wtcQmp*`BQPy09Jc֨"厬ARyښ1-jզ5>znz q.ߔ݋ E * }W^gb)uh-H,me>[r8 0) 6}e]x@i*0:Go!ދU)yőa_?,cW[c7e0} "Y%0ɭpPMFnC2 xGGn endstream endobj 3 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 170 /Subtype /Image /Type /XObject /Width 313 /Filter /FlateDecode /Length 74 >> stream x1 g_(x tH endstream endobj 4 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 170 /Length 15252 /SMask 3 0 R /Subtype /Image /Type /XObject /Width 313 >> stream x^흉sDZyyv#V8Xcl,.%}")-zw`݋LՔJ,stwAtAtAtAtAtAtAtAtA\lz6曭%W6|{J ֧_l/P'޽=`2nN|f,'|“Ln-ijv޽-ȥQnE٘_|ƃ-ݝ{ysُ1c/ܜ=>+1O՘tw'o"siٞ}qcO`h^ngm깵C8ivViukx~ȃW?GkoQÔYG¤WbomGgyVژyfG6{u)L_L=̯WiFXw/5-ȝ?- 1W *Z0/أW?M}~f_{˘PGޯfWk~c+:tka".\a .<;z!g֦~E2 hbá4A, ޞx;˧2{e0Ƙ㔑;Ebѕuš;{>k]mvMRXx$dv达];૙g]6c`}楈 :=1P#2n^1Əuǖ9oN. tMW]KG'.*΅ b bÌmLF2w#-neYڼ_m`R=:gCQ-aj#0x#0Vz+%VmX6D R)C>1Y _ *.t"FD'ҶulI}~Q3o- CmG@CEV>DN?G~NSDktץ#_m`g.!pG+FQdA,LD kC'<|E)2K/ W32)?:} MbлE#0r"v'x~]..6h#SՋhL4qn2΃Gn׹j/vצh\_*.Z L/gݙ\OS\1`e- щy}l\ϒ嶋w!/,40֨t;fVo! ZMEk6@Jȕ\%*4N# >6 I^mXЫ5WYwPx~F)샸ܫ& be+hb&V5oW6J\<;}C4Y}@d#X6 :Z۾US*bdiD%"HMYVjB˕g +W8jKX,v9Y>^mI0&Se Ֆl|X|20pwՖ{!W Ѡ]24-6z _,ܸWn{X ˓RL`EjaZT6`$Wl.fmjK}1F@QY`qj3^mI8 ]3vx8u'j3.5vg̫pmb'@lbzq<o}l@X :*W[L]t_q+OT-D/:Md5ثi5ƊXhV f^Z%8 `啋&?&݊Ej}gܜs2 ɱQ &*Vq}6q p$~n3/oڲW[8E朶xkX%a  &n4`&ƴ^mI0NrBՖLܜE6 +D+W8W 4^j3 ]-ea n>W q@zxjpVdwpW)ɝqՖ~Xɂ/z]J7d}j3 5Lm"*ڒ ~K.^:s^9uҟ{@4[6Nf- Eư榪{Y_E[UMV/ L Ћ/ 9?ժ!S7jW[LǂMbԫ̀I[1zUkU8jR; ;j |l $RWeB4G'ǭ0jylJ |Ο $ $$;D8YI- NS+Lfp ppq x!18`aLV7`\MkLO"1>U˄5imN|ɪ!#-0Vϊ-nU+OboBHN=TAjJgI]װŶ¨G,|ū-]hj_}߫0U (x(:'gzW =P1XatTyjK8ՔoV2Atryqɝ,d!XhjPbn->BVOTӆ{\!´:EShs ,ućw%>fMdO%*Stl뿫!sah%?B "M;sTAt"H-p[~MJAIn4.Ǝj QNX1ǢճQ^yW )BŶ<¬hѠӍӻ `廁wבF "l J|%R$^pNcׅ@Vz#Z07*<" gk$DǓ0,o.T*QHdG+Q߷CuRz[@ML-"N {!@D*QqXe¾Ev` okucv^ u܈չY*m0{#Y#0 åy1zrw-6xv\0yU>d ̾4qGإXә\z=(ąR UaODXtZ$ M z8R6d(҅#q`-/&}pwn#%bE7r9]y. e)X&(MP}#>jN DIו% jh=0=+Mp3MtAz՞ضǚyCM4U@?DPNL.-Gs)ӫ wymLA!"A`lB54ra;g}hOq8s"v Uj)0(Bՠ}eI"^M͙>ֶ1&$aM][0z2 &bА69 |.o`R Lp=siHO3GlkS,Vs_@+4 3 Mpƪxtze"5#~$z&0&HHE$!( IC* RS8c#YFGP8mEp>},AJdn! A*h ,=:oש +k..(b*x]a"B} ~*^9!( 4A*tAg8+[P@(Ӌl{ W{N08!!(1yg٫J.vX>@ظKĝ'Ih\+`4ɻ1BB`yW{k"ꀝ5 bʮ,7 -&ěY?'޽=k S*%S/^ ۃ6]6S \ >-ƫqJ2i.a031τH4ao6 UD:m \dn)WכSnդ`TYY/v-ZeѴ%g}ޑUj衄~đK!W"+y2_57fh"y)6CItΌ2:\Fcv<ԓaAP0biša g1_jFZ9 ;cE:.8e#kG\>e+I[( eG9N͑xd!VE` exu%USX4 syge`gՔVB\qYЅxΈI.6&y dO'O3b*3l֢IG1K.6(B .$ԓfwD4ȝc#^U⨎7R(Yh݌6]2πAߜBwg_uj&RaKjVEjM1Ҧ $jh/kſBoeXݻkXFJG5 &/+g+k -epg񬭌XAKza1:F$W$KI0m:YLHL()ɱܤq&"+I"OJmWi<~]i^[&V/ZM tL&[T S$sf$V:LUԞ@A{&qaIј{!.[W9d=[xSJnqeWq&e$̷XZacX+,NeҸM>JIHK=)tgȠ196T5udb$6-DXyhb!H+ XƼorɁJ[#[M7SvB+f.4|nf`Y tL,#MNJe)2O^. -ZH+ۙfS|ڎ*!JGØ`l%F I-B)9x0=?JƼš ,yWCLAau1Ǭ/6d\)y͟2ڒ`ɱ%J q#Qz|YOM@,Z<ߺc@`0-ju0[( Ģ˰jar(FDLc +_5)EMgΞToMz BL~9I찭X`Ex4B t9]Aj=LGQyr,; `j:FF LS$Q?a)7iռ? ١+t9]&$2PwzK wVnG%2n:zt=r+yaVF]9-]g)S|nݐ *,XYKaBMaMgy!}VӨy#vX)`G;s>`鉒bBQF8Xq"Y8A+k裕+8j&s{*<0_%GylL}҉=R2◿yuhaM"Ks?&a!wj qH oesn`cnyA&(=|W- KvA’7+&j Lÿ xJ.%@v=CdT#L^z'{9v-/9dFDLS-%jDq=+ JNyM6NGZ艘KJaN U'Sf":&ltjOu]!ي tQ¼08E>E3qO͋2z8:P9(X\idYF41PB3tN8vj3rœ#wEqY_2) rKja6$6D, .$*"c5)\W]`c.KQ5U;@~zc%?\̪ӻn#8>z3z.M!4"&԰yˊyҹ(cP)?m<͋w/Fq9H YFҞڙ9F5qq.D4aE+󾟍u/FO.QJQn>sGmYXYxH:n,U{k3maMtwP &E* ˩hn2wLJa$ȒJ~'^ti! jb0CJoRXeoRb2F5-C[+4iI3GZ،JFDaT0%"O[D Rn~ 09=^y!@$ K+nr^T8 Y*TEn#B'iD^y@!y=$ ߫B/.d >ۦ2 a Vޱz!-4LV3"5 SaqsH˵Q'Xyw"S%(@fAG[HI]PTa g " "U'D|qa8KXL."rqws<AU"y5@^ B:5gE;[ .(BW{J_> EF”"aoG+ @p)Ú$"aMn![q0-\NW Y9/&!5$g +5N50唿)K| @f%NJ5mӇf8vKfhz:4JnΊσ ތKJk\n/1> B}+vbEiLO[*q"tmp^l_i=%+z2 vEl֗V2DLJ{t/)RS4i[^ k#teͶYyJF2IA]E iG p"АrTjOE#t:t(FS$ ֻ)Z+ ?DjBSѰNIjcF5L kM^ԓ"̌L~#yM=+kp< fga Ȼnοɸ5Gִ #4Fon "Pl5ʹjvfJ#h ,鋭gLsձJWh1Kw%}q 3@65)C, ^zN`;̿n)N-* ?S75iP / d?_O3X7xgmPNU_eEh]_d.ּhk kq*kjd렪VapgV6&i4P^4nׇͅ- c}^ml{ [HS)Luq%2lfJ Zw{0`RMMu+vykz(uGᦌn;OW4,M uZ*d5SugyBh5V$y)7jqzCrgN 6r_V%ΦS5ЪҖ [(f:2QBaz'y/-]=+&m_$&%3jsO(k;+bXqQvfTuGAy/K.$0&T .)ΧӫF|9i=39%jXD&z2/ӕY0>vjr*n? ikMt$ؗM_i zW VIgid^s=kW['ī̀b+KJ&qRxŶP(Vxj ʓ>4=O#sLS#i"}p/+|f (Q+cV8ZTӦaDe|YF猡+=hJij%&qe]ȩHv' j@bVIs4[TmV$2봚T_\A&I $>p]X,D)8 ,zDRj 5џ0WXi_\^DgUcL0Y'jI\oQt>Lp.?!3P]x# 2A\xi@g @ /F:"2wlީ ]'Hd󢤻gƳ YDDQ$5Cd_&ZA!Bz? Y2)XJm'2 d=)!dGGddFխkA!GDxC+/J6}[3x*51w{wFh.A3/+('>cF zZ-P'dx{h:4ca:0sNRw& S_Zv) ah`aaoنYMlٮ>gpLe&s(Z *0Gs>hAAׄdqNJ{zX S҉,tp@*CP+E`ݲ`Jz60EG(Y[I`s5D}6:@/:R{a Ln9dH7JvV@H遪du'O8KTW|Ţp.^>8TuΖ)0FFo!: ɫ`kpVlB5SVڗ8chb,8^d_R-±YaM3 3c^ɗD 3LC`gCɧCOOjɻc)e#_vIBN<ݜ^;iKd|SLsRh ZAR"2Ui[PXU4xN)t?ijۯCV"xL=ϊ~9E# ?uFk?=E"]Ѹ/2k42Cq Tԃz7T)*\rϯfH'{fcK{Z' T9f|)Oݓc f7(@+7QHo`gMXYyX69o%O1xyff_5b:+}Њ'I/ 3L73(T`0]OeR\zκP%0mCFh3&Tv 3Nr7}PL6~;7seAdն U8Pӓ F^蝲`Iz3%5Yhب*n%maB H'{xTѹAArĉ/{bbߎj1#΄?Nt8cT; VS)CB$2I0&orL=+#%@SЂT, :ʖ8pNf} Qb1+ybǛA8ߢ"bq`Z. CRSRX<9n [ĩ+ǔ~T ƼZ5pD0oK~{ m.PP+JWGo$ ¶g?TiSAI5yXnX RCֲ=9.&ALUSr<*iq>\m nbf}u$&Hλ^+ ?%'2kU`}5R{>|W!2$FWfj.Xa`QF qL&RAIHDP@ze@dY5 :($g[o* Jwk [e Łvz!B(MlZfk2pE7f28,EMqvJǰf6W(ef$N``U;\Ԇ&HvUJ5po@Zi.zͫ- .E7>Ȁ8$sՖSDϕCر '.®^մ6Ʈ3ifjͧ#ځXMS5euX e-+ķ_yNO:9*@&йXuƫ-EBlubB 4UU*Vcg?Fmۿ%14e 󉟏ʹcvk؉.LxX>Q9 Ywz$6L`(=:)QTUqs*]ey4JbbJ`;i_Wٮ=ت9C8ic }mR; KJP hSR~B9}bB^4qiTu.{[(aqƨ0H0qU߀č'iŮS]4+*zJm + *)鱖{e`a DRJK+Lq0R` 7UO˝Y.=e5+y˕ʼ<*铏q,aItCÄĄ/ӯ}LJ{lhUz ]?&}9]&52T(\ ;{ˍFx_XDSyA)?N B+`FGl$c4P *zLS;9pBG,ޡfMudRl"}5," +l_ O*pO9XGA$)B fwLOQ{>z96{G&Oy8 jpܾS6NONbة,Kj/(c+r#gy fGEqȝʽKs䌴lC7V5٪ 1p%xgyALLfQVW?EBJK,4#λPc}hъ;V4AvNU"ݦlvP#"*2VzcKg.m&@(&So{iU UÛ dDvQVwC~᪊v:Ss[f$+02>Ԏğq>EҫOgUhȄɿ*7R$yZ<{=sI;=7Ǩje[ y᥉7ZYdUUz Ѳ̨scBWD r'oVE8ҳx LȊ)l껂^Qi4s z&Fĉ3b }M AAMG^"gxOx"rRje4h4` $3Qlԣ&Tt@}Z:S 6~ endstream endobj 9 0 obj << /Filter /FlateDecode /Length 231 >> stream x}QKJ1u_*YN蝸tՈXݡGG*IK>p ނZWx[Walcv7XF9l/s^&[YΒ Kq1tqgÅ۹L(Y83jh^n0?]S"J$1WΆ*,?+*{}ݴ֎ls߼!_ endstream endobj 12 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-21T13:15:55+08:00foo2023-03-21T13:15:55+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:348c6c27-432d-b608-e05c-254b752b11cauuid:d628e304-413c-8434-fe79-0ec5fa9a050a endstream endobj 16 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 991 >> stream xmTkLW0fRKDR@,Uh Jl¢iK%лU@ykEhF!jbJ}GS69]bژss%99A b&"%hVZgJތ=\a"2Ƽ$j"WMdߍԜb^YE!~C^ Cðۣbb/쁛TXZp³%埖W R# "qj :ri +Ч0 v D)ͷ19i}~:'a8#+w9o9IV`&՛wK9,Oeg H%4^k[qL1q 8?u2a6[,f힘pKY.^@U j"Z'믞ȭ15Z%qzLoOJ-Y0Z.ZlUkOOK_6&W= RWo?N>{ e N;I"o8{iFʢraK554bBwPp~I|hݏ޹<m“4ggk#)ú P+xJ&5{U,Sɉ?J \5WfC@J p5>0r LcK0v ntJp <}hh_4A3 kIz.ꦆ6飊5rOׁ-ܕ]9b FϽ-ǁ^GYǔvXa;K򤒁 OhᎲ&|NL4 C&ߘ}רl3x0h`oގNV ќ(1:tf{k+-it5;:6u->qH endstream endobj 17 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 18 0 obj << /Filter /FlateDecode /Length 400 >> stream x}Rj@}WLfUHhJ`wG`v&yK.rv̜9;m2yDD`EJsәKZe(5"CD1l 8eWcA/ÆN♋;==y;R*/'&gˋGR!|"苅`3 /BH>qTFqZ0?iS(%f8`2`Ev.Pqq֌ @ j OfڼuO`ݪ*k~ A%"O)T6D0YӨDZ#Wx_LfȢEzh4phPϡcֱE𗚺cyBR73>x[\ Om? endstream endobj 22 0 obj << /Subtype /CIDFontType0C /Length 578 >> stream ZWXDFA+LMRoman10-RegularR  "B  &    2 $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityZWXDFA+LMRoman10-Regularz廡cԤ~wrSQrj\gdY[9F\Imz]d2fXELm@irW_:r͹Bcaș;,Ci^Zbµ9ȵơfIl)=`\y{$lѓZtY 8fOn^lvejUf^gs}bò“qebRbuCn To  ! & endstream endobj 23 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 24 0 obj << /Filter /FlateDecode /Length 375 >> stream xڅRMk@+@rz"IBA mvAweՃ]B 8;o޼y}.0=8 mse*|0oTĔySh?Hi2Lj.GBxl)K3exR p6?i3p6 cnE&K0Ou~x;Pqr Jڪ*ЈQ42~mZ3VLWmcW]?W2JE~ŇVA En 9_Z#CG}\πr;?V)=t~# XISkD^ endstream endobj 8 0 obj << /First 96 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 970 >> stream xڵV]o6}߯ouPX") @l׈$ b5V䁖hM$$~.EVfmCs=$J @&# FAt1qDeD&lCbXGMo/_'vk0?BN$ayAPJx !•9HV mq1? lBWprNdNeycg]zpfu U"鞟oUFyHA9GU܂[MbQL&*4 bvmL&Yܝ3'Te7F FX‚ GR*"O.PÿVFHQ^2t9}b߭K/a .0wUS[r or*9Pi8넄@oOb@ +(d+2 0#N ~)Nkϩu ޝNaNy]‚3K@6Q >M//Lp@=O[O~᰷t5GpeUuV՛¡2i.ubF4` :Z'+eۿTv,K|dп0uC<4N3u%poUVYDؿoԍH0F^Uz@ֵV֊'i{tm`XL&nV^FFX0&5 NixoI|Jy_0z||J9]=8JI)-V\7?0|i{Cț?۩ݎ$(Slq71!< [-8mV8 ۺ>Sgxz8صam|2'~>X۲_5@|O8t}zHT Ē`N_Ni!w:cPv endstream endobj 28 0 obj << /ID [ <5CC8B972EBD24967C0BFAA2056D38883> <5CC8B972EBD24967C0BFAA2056D38883> ] /Info 27 0 R /Root 26 0 R /Size 29 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 102 >> stream xȻ `Es54)f52 n`a!6.`@({<&"д즪}b55jWԥ'v/4¿?Ɇ endstream endobj startxref 49446 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/09/03.pdf0000644000175000017500000001777614411653175026712 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 329 >> stream xڵJ@yyu΀xTM̭> stream application/pdffoofoo | 2023-03-21T13:39:28+08:00foo2023-03-21T13:39:28+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:348c6c27-432d-b608-e05c-254b752b11cauuid:d628e304-413c-8434-fe79-0ec5fa9a050a endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1028 >> stream xuT{Le߽Be9Z+U@MiIA"bʣ'`ysǕǁ<w}ܶk6@j"P4V61iEY@k0bO23f~S(0ޗLIM7+tQϦ[UtBtۄpE&Zx>\i+*!CR&FaR$UTo0췇O!V J|9#p\5"2foΨ]`\e7 &VԔ?TIpL1Trɐن;ӲJٿ yaG />—:k/tր16i?ά'f(78L/@vYOsk(i6: ]mRlMj-Zhqꟿ( -Rf`Q.1 |4__bC .MM/2ԥW^HbXlij@ r*R}(>J/ (N3r^0ԕ_s1DFĥŕy;Ż=&p =rѢkY˘rJ*ahhնtjnhbxREn^|t 3{i+FLF8 >,WB9; ]YlZ҈>E[VrdңaZBodD^#* ʍFl)reyУ/Ozб/,# *lķAbWD,'}msQ1{Pda; e)vٻrC= x֏;?`YV * tBtC;8Ey C%6Cn~3Hwn! l!lBG~ѼHI *(]SrM_{GJ=|mtܯ^DZԈo2E$uhr`VC1H3k6K8{B{b0'`f6^A]. *2d$Agtrߑos9]u!aP~Hq2Y endstream endobj 13 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 395 >> stream xڅR]k0}ﯸ{(دR]AX?hVf h"Q%F`- s=IprL^?8b.KEYmì%-S!kO9',` ցPAa˺Oz/eY:oۣLCq!̋Da>G@ZUΥLdj{n{S]=oӢ`hCzS"&bBU0Cp"#t*,Ac~#0 wa]+D0]afUvx͸aU(c%>,6zFQUFK{1oƞ_E#-X4hjԢE_܀J{C0sgTڞwӾc7 endstream endobj 18 0 obj << /Filter /FlateDecode /Length 1106 >> stream x]T=lE~3;;?9vޟȉЀ"@"!X)@TD4tPF@:pB 7w66ޛ3}fvoc}*(p%mɏYڥ;7Ck?vK޼p?]v,;F߭>^p;y_={ t0.zc0'ǶjCBUFކ#Bp&w)o1=}8Xl)bP0^{= /;][< ֎ʋy1nܥ IK2{(9rDufK'tNgWn'Űz.LFډ[ +>Mxlr@VLvP-ynk&%1ݱ 1wJ_/ܤ:#.O"r>WWt'`ND襳Q~or 5!oըhX~=F|fx4 v=աwjpMqz9ZxnՄHie\}HCիG&!K]ӧWn͊,/3x/Z,ެofEfn4R:u$vi\P_?^(/m{"6jG7eTArHͲ$)^ãiLx+ajp\s2upa.)}`MaOI&^KAPio*`2\i==ˎх*&Z>_=*d#@D1(J4$ick,ɧ endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 392 >> stream xmRMk@WLB=YADQi U1R.ݰIB|gu!7fiG;s{sLR̒8n(A`oDKF{bQ`DSGxZuisz} OmHt5/̹oedč^JeJIF2 Z&)^x֌HP,\_=g?NYM ̳IlV*qםV2B}B/Ӏh@~mn<'4 ᯉMv~{?KcȔ֪Rj3m+ֱ_*whj endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 962 >> stream xڭVn8}߯:$"QHfn b5-ZhH;%V{AaX$Gs9sH| @ȁR06& @+ h"B@QF90>BDDWԳoT]t0ƄT]b,PJA+>" YK]`?7:%νJ,-˗ʨ|Ql5]*""Q x*S<eTu:F*.%RF6e@A[˵OMUlFD.RYiΡcdZȉsEhNa#X\,>/ҝMލ22F]qg޺K累ߴ-21"+, UhaX'9^j@rϮ~(2*$t7fʇʱ{>~Z^OoYҿ.7rxʾ&NM☚ѓ+] `x#C9-W(vD<#ct oYbchwxUlaM{k%#`}'KJ%T麌ѝLg~RKeZVeӻV8&SIյܨ]mY,jۻVƏmtX⼇J╉6 C4v*LcӨZq?Ma4j}r0KزlRp eUf72¸C OXtJ !Cӓ/eKG&ʍu>@96\KMhd1_Υx(|@ȇZ>۪?&$)oׁ߮wS8;N6ޏh1lӎk@[6^>ns1d0B;`1ozJ'PIF׵Ė8 [pbCj0u2=1-DWvo endstream endobj 24 0 obj << /ID [ <5CC8B972EBD24967C0BFAA2056D38883> <5CC8B972EBD24967C0BFAA2056D38883> ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 83 >> stream xȹ 0]c"!AytBJ@d\O 8AZbGڋ~Nz7'G%Q4 endstream endobj startxref 7877 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/0000755000175000017500000000000014613513621025742 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-6.pdf0000644000175000017500000002172314411653175030530 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 451 >> stream xS=o1+:@tE`(\%Pywˉ6[3GQY|,Yob-9q+vSM0>>hk/VBDR_ckB' ߔ9c9,بzYgmnnuˠtۏnzͱb/14,UD*S͒><^ YT[hm~x/J\]5҇=OSϰfLw%䲫֚9 h8ơlWԭQ/G%6ǴDJKn%@2Pw;nM¾sY"9$)uyh N9>=zxL) &=0  |%\kǕ =JN?[hK pm幏ٯ endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-22T11:35:37+08:00a2023-03-22T11:35:37+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:e5ef0d62-4130-afd6-4e78-a95b4ed35d2duuid:f4bc0fb9-4316-9fef-d2de-f69f4f034248 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Length 576 >> stream IUDCOL+LMRoman10-RegularR  "B  &    0 $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularIwp7k1tKM3klƋg1kl⋳⋈FUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 379 >> stream xڅRMk@WL`]ZӀ/bZz5]]Y wׯy͛?c Z#VQp|-iS ٘VpTX"֑R#Aሺ zŌ+?}vwE"b0kDYĔyk?HiL*. GBx,كRG)L rbCG mtmUcTëZ0K"=7e ` dNYtۻ&:qq%êL(DdWm%}F(M3]RJ'0tGny]u{ (-ՍfTڙ0N6?O] endstream endobj 18 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 461 >> stream xmM@C 98q&a3a ^] V[ݭ AzُCnoxsBa]3gZYڔC#r䓷{l{'Y_8u8RDՁۛcn>|6Sc_IdF` eW5 'M,gs%jp=UWYZ@?*Q~z3qnF#j'I^t p>$GY ̿K|h+րz=xWSD}{48Zñke!.Vְ3?UIu: iPB5yDK?x5,134JPāH<2jz%xg(V(_Mїl(HiT})4JW-c̐/ hjEM7f:H()΢xm"(Rc-+ endstream endobj 4 0 obj << /First 92 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 959 >> stream xڭUn8}ouX6L=At y%F`KD 0?Zb%q;mQû{DKbgz9a!ow@ JAܧ6 K % S< 7KrѐةD_tÏ{Q{q‘#o$ث!XȀ=gg^R_7}\.n8ڪbz*-쩏E4KhufRtB.ii'FòSrm."ݛOn-lcdk,ʮmMrX~-x:>/#uR:M F\ 9Jw/*)k\\aIFC1/=52j/ĬZYM,jrQ2 moE9=m]m?ҒX!c Kx}m5gGrn~jd4 zݯ;_oNWnUeSq\̯Ǜ6%ǔFQ= ʀGq!^K5WK_G;"W'1‚w! n͌=t |ĩoTa!*s'[qM"Vڐ|t~ȯKohuvkͨK%K&uzնw_YܻR_3]1MBlst.4GӸZ+dVNur0گ'/ "Iɴ֩=&C&B9H"S60C[$Zm(߹/v˷v0@ {qB<ńbҿ~@3GW.h)21=(T57NsPzS endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 82 >> stream x 0DљgĨQDĒRU،=Xd!<?JAL* Ni9AF^/ &O endstream endobj startxref 8859 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-5.pdf0000644000175000017500000002161014411653175030522 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 594 >> stream xڥNAEM;B H Y=81,!eմo=kb4~$'$L-}Ny(2}O 5JORQW,$7f:uJ"T, >D'Sd=/.I܁ /$*{5b.ss [y0+T ' endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-22T10:26:13+08:00a2023-03-22T10:26:13+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:e5ef0d62-4130-afd6-4e78-a95b4ed35d2duuid:f4bc0fb9-4316-9fef-d2de-f69f4f034248 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Length 375 >> stream IUDCOL+LMRoman10-RegularR  "B  &    g $ %. &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularPq<h> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 366 >> stream xڅR]k0}ﯸ{(eEͮ ڍH~g`- &szL{'pFoz2$m+zȐj4E 8Y%'-Cz ~x*o(L;bі򈥝. $2*wT b =! vL){S]8[`S=V&4JFc\a9{PqQsJۺ.њQ42L*̮ " v%æ(L|hb%kQ*zP:x OC鸐]@[LDz*8aw/o~ endstream endobj 18 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 461 >> stream xmM@C 98q&a3a ^] V[ݭ AzُCnoxsBa]3gZYڔC#r䓷{l{'Y_8u8RDՁۛcn>|6Sc_IdF` eW5 'M,gs%jp=UWYZ@?*Q~z3qnF#j'I^t p>$GY ̿K|h+րz=xWSD}{48Zñke!.Vְ3?UIu: iPB5yDK?x5,134JPāH<2jz%xg(V(_Mїl(HiT})4JW-c̐/ hjEM7f:H()΢xm"(Rc-+ endstream endobj 4 0 obj << /First 92 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 954 >> stream xڭUn8}߯:,񢛍@b5[:i;EhQآ!Q@.ݶ( p.gi  B8( o!D@@\>XpoKpтةL_tp0yN D#/d5_@quv)]<<]^ݚ*8ު"^=UVŃ:Lu.lnNE|^ Fh~wf3p)R֔[m^7r[?+g&*!γHKio̱dr ŅyǞd0" qo5.rv{,ym5rU ;} p?w{HK"S#¢Pqx_$&}s$욻"GFL|c&T8c:ߜ^ݪ.~Ǜ6u%ǔO`F%^{>J_sMN~NtHu# UxşܿbL+Bh139bTS.OY4el+0r8ٹ/Ϸq0@x8e!aJ,nbxJ&LMwq0x)8v{ڏ.IGܓ`(< #6*,~5I c7`>Wu5/| ։.a28=(֙cʌ̹93Tx endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 83 >> stream xȹ 0Dљ P e9Px6xCR D{T?pZwH n/<.S endstream endobj startxref 8783 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-3.pdf0000644000175000017500000002143214411653175030522 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 242 >> stream xڥJAEU5] 8p{ga4$dqz郘ҲOk!aߓd7p\Ĩxf*{1]'깱4Jn4CP@*h !ZFjǴs<*?XO;UUJG!MèZ+> ߲O ah$fٵb8~KzmIh>S ~5>Vt endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-22T09:24:26+08:00a2023-03-22T09:24:26+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:e5ef0d62-4130-afd6-4e78-a95b4ed35d2duuid:f4bc0fb9-4316-9fef-d2de-f69f4f034248 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 568 >> stream xuRKhQbk mڙ*M$ j6ME mbp%DLl>HA0"_fl\D1fFS+Z*XčX"(-ҕH<;q#==.= 8'Nw/ovɰ7ݘp?#qƆC[[ @РY YFyoۛlpeO@XdžX.x#eWS; IfEP햓!ʛ@ǻcre02kaKTx50ᦍ i*JIUPIy>y9^,rM־gj?ڷ+Fߎ\uezƉf,]IV}Wm5FT!8Fwvryżx׹zb5vJP:ދaR#PT׻I.9,3RZڑ#)ȅ LUJ܌z*zb~Zݎ9e4jD.۔wm=Q^CxAʊYIfwnu>h{?+ endstream endobj 13 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 386 >> stream xڅRj0+@rp-;4C"NKvdd`W)4W;;;;)r^3{&pR֊h<^KZ("CgV0YPjYͰGa b䂟N^wny,<1X9Ĕ]xi?Hix2LJ.gBRp{ Lurjď<CGsmc0E"K\-j0Sp"#E #d 8ǡkbWC]FxݸaYU,~m%,BQytMb*̼FMڜFs_~x:zoJiCf(.pXp!MϾ endstream endobj 18 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 461 >> stream xmM@C 98q&a3a ^] V[ݭ AzُCnoxsBa]3gZYڔC#r䓷{l{'Y_8u8RDՁۛcn>|6Sc_IdF` eW5 'M,gs%jp=UWYZ@?*Q~z3qnF#j'I^t p>$GY ̿K|h+րz=xWSD}{48Zñke!.Vְ3?UIu: iPB5yDK?x5,134JPāH<2jz%xg(V(_Mїl(HiT})4JW-c̐/ hjEM7f:H()΢xm"(Rc-+ endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 961 >> stream xڭUn8}߯:,QHf]' b[-1[2$ H=%Va%G"$`($rhsa9 Op0Oܜ/dDdգ&{y7.0㺖r,@tq?hF9t3/d.ĸ˫b'soUZoeI|*v sc2S-L? |VFIQ~v@ ٌl)RU\f{]ѭm^5 bC鍭MCfMUl)&ƿ;(߾ʴ"sqQ<+yhCo|4l&f,rGBmV}LjWxD/0`Rw#-iL$2BQ:q}s$wy mI+([흯*ۭw*şJ|i^o*QwLr_ijtY#1>q)o 09NuDLyQcw!Z n͵2t=v |$odijrh&;98\Jiϖu-O TRm_;S+k+Pmz!ξu?3F#Ķ@> 4ͱ[kY[i$OFQl8}ԩ[[:38bĘ5 ܝrSȻrK4_;~56-&,7RIHjD^Mwqكzx`̍p F}]Ov= 㸗\aĞ`Gn0|ӎ01=ҷmfos迉A&/a|hb/}a'uJ-kit*Ԙ3sfP&{4 endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 84 >> stream x @0E{(x`"Ʊ%La z/99[<~=J$/k/N^A:9Z?$gFn endstream endobj startxref 8672 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-2.pdf0000644000175000017500000002413614411653175030525 0ustar hillehille%PDF-1.7 % 6 0 obj << /Filter /FlateDecode /Length 241 >> stream xڥj@ { @,NP M2K=tWI8>O!cZt% (kxp sgDj:)""h~\k+XH%wq?Uwg&NyLIݤ^]q0޴hJZ ^?ē`WH6E%.S2Fqa6e4YtBȐf endstream endobj 9 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-22T09:13:08+08:00a2023-03-22T09:13:08+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:e5ef0d62-4130-afd6-4e78-a95b4ed35d2duuid:f4bc0fb9-4316-9fef-d2de-f69f4f034248 endstream endobj 13 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 336 >> stream xڅJ`%1ib!M(:SARhn.Z t YcISBD^@.ɛEڊUM,)M&GD0G;?5IEWַsrvm#dFZBV(^կya44E#D$6}艐 O =5!iHC7\C\דNp75Dsw=~lI6D-Q?q[}r|n98m~KBo_͂( endstream endobj 14 0 obj << /Filter /FlateDecode /Length 520 >> stream xڍn0GfNRUZPJK}(I}8mvG+']Md?>?jJPC)3׏s3z.{&h;W,PSh+94!fޅaq_/-fV3'Ӻ ګ/> stream xڍR]k0}ﯸ{(NKBgWE^mrM$a?~7N`[@09soYruFу#V pxX]4;DpЊh`FH 3%p$Y^sQA/ y:09$Fȭ61Y',$LN@pTQWB9*ljvӤBr3g3XAmvY LUwQݴ592}ZNc:Tn> stream ATDDEP+LMRoman10-RegularR  "B  &    g $ %. &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityATDDEP+LMRoman10-RegularPq<h> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 21 0 obj << /Filter /FlateDecode /Length 367 >> stream xڅR]k0}W=g"BW[Ha?~3v{ɹfpJ5t nYf]= 2dڬ$M&bۅǂC zł+?uEۓ?*>qXte\bh)oK  @_ZUåXH[62]67:zϹ`j c8m=J2BIߴX"!@Ub(`~Ϲ%]]hL0}:CVtgf𶿛mB?lW2lꌢDq:VBEnGKN?C#9V v SJ9Ldorjio}fw}@ endstream endobj 25 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 26 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 27 0 obj << /Filter /FlateDecode /Length 463 >> stream xmM@ڃa4a`v"]$Ґ&㷺4# O[L|d֚G'ֽ,Њf2&uW("G>zua8MRQvsGc+Kq:0:~~[^XLew!C?R/mYpcdוC/`ݝJU{^ݍ|e׶*z0,`U7>]r8kj VC[Z.VVH9E<_{M &/P|/il-=c{(CTS'Pq&hφ<ņ| XF t7*KFMDm EkCk <Ы0b !I4m2o5Fe,BR>r_0ƌ E/%^|YowUNԫ(za endstream endobj 5 0 obj << /First 124 /N 18 /Type /ObjStm /Filter /FlateDecode /Length 1056 >> stream xڽVnH}oMa EH t&@: ;R+8첔HsKpLO/j!S۩{eP `A < |>"20\c@Epd ѶmB,F<+7Kpـ;D]4i'0?*0 aEP 3p/d.ufލGSilW*fz9 }o /8$<KPpNWǫk ^eCizkym*m=Xm%T2ќUPuVoǻqh+fr:M.6ЩUIHQTrufMIUP{GB+Ե^9iӪZc=>H5:A7_zYanҞ#ŖgH<)-R[h@$Ak%y*N7o㭌;;x,h0 oPAぅ'o3!Z*Q=>"bB_Ab-Q=Q= 8M--O_mUq]گN㧊+G651c zfE {U*޴VX>sݎݝ2L8:Otj!*_2f endstream endobj 31 0 obj << /ID [ ] /Info 30 0 R /Root 29 0 R /Size 32 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 96 >> stream x @PDKDl,4݈h@U2KNxK %p~A)5yX ,DAG=In.8i [g endstream endobj startxref 10007 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-7.pdf0000644000175000017500000002247714411653175030540 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 307 >> stream xڥN0 y vؖ$nަ@paN>ƦuU'v@xJ.. {O<> b\Q,wH!}UxW\h`0#bs0D [dO!КY]X/Pe37)E-Y1^ ɚInΘKXCy!ZL@cQR> stream application/pdfaa | 2023-03-22T13:09:59+08:00a2023-03-22T13:09:59+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:e5ef0d62-4130-afd6-4e78-a95b4ed35d2duuid:f4bc0fb9-4316-9fef-d2de-f69f4f034248 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Length 775 >> stream IUDCOL+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularyFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 384 >> stream xڅR]k0}ﯸ{(X"fWE^mruM$ꃰįֲI=ܓLN-wAE+d:HZ("C6k8)I#`PjɡYp`'bōb삟V ;k?<ΘY,b.4&cxt d>P\58 Bx,ؽS LvjO%0NCGsEMYaDJ50s"#E1 |dt8DZFt4MhJeSTHo|OJ|z FQUtMb*KEr;jW^g8\ǐ Z)H{wf(.pB ];1_6jq endstream endobj 18 0 obj << /Filter /FlateDecode /Length 2656 >> stream xeW[WwWsgv׳3;3ڰ3; ;k08($:D%H %HDmO(AZ~ Oԋy>F {ely0Z OLJlI(/f]rY}ossz]AǠ_t8/ygmX4 b%H){R VHg5Sa6\[:'' OB;S:6IJ! E= 4LYr PX,K$Zu]h֊A/PFH~qs7X(W=kh<0[G6 ?]?-=Tb&hLfLم0:I,ɂ9CRJnygM6}.VeqIAK8%7mLY.h(QPfճ5l] }ӳS.fk36 °MǤ.U-6DݵIcCtuCHASL(jZ'9Z y9|(mbİXRdAK5Ұ-kumb} 1Q˱u]WփS7 ї%Td6芳a7YnnTL\鷧]: l8oϥYA:${ʤHkk7ZY7dP:[WwÅ*/lh n,c~[I5czH(=#frb6ngGejpWP>TH,K<^y(@uitCO lT,Fhˇt@mL=4U"Qحžx-m7VyDvq0B;1R%Ħɨ{J@ l1!Evu9'j-la2Æa ӰSs-mJiڼE;BMԊ-Kx 2KE&a%THJ9/Gp)K CO&V $b?^q"+ R3'Z"H?rŁf3+IE$P+>С3es )ԩ+cEfbwxam^τRd.)r^*U䇹BrI4$8a9)* -WP*9-G@f g$qVd[uU5ŮW:-i.!W((#V~BxQ8N@v:cWʴ䐁 \r[v}nwnSJ:M+8*٬[ytθ\n)'i݂ܙƭV|[awčH,(p$yVc 1'f$C犴?lhծ؂漭G];@T,- Gs' ױL('%A/s Ķ~"eLR}#zR%7!fg^E:2 V {Uo,mKAmz@~>u.@b*xyS~_5uy;zW endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 485 >> stream xmM@ڃ/'L8c+ҭK" i`?~HBg$A‰d:MrBpGkՔagI&~LׁQ\..|H(̎ⷳ=&IzpyUtUES;!|=6^FÃT򸩩nb\IlAp&*;*k 差u&ύ=XaҮW7] U ̾֋|h۫ҀfcpqgZ,hG7[pi\ZEP  endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 965 >> stream xڭUn8}߯:,ezI(@K* `?~gtEaX$33G# pAb"@9"E$!.e^S2 7%kh]T/qލ G<'q'b,&a5_0{9;BU.\.nNouVoU |*wX̋ FT6O'">ll4ZV~;D`)UR{kJ-6i@X[?D2g&*!)쫅w?y*Z?{XDDֆs" 2jh#˵j'ExȽV*jw9΀s'y)I{TaƈR(?x_$&}q$욻"GFL|c&lPl_~qzVu;EE|ToSgpL~xCzG%*`,lN|75&}QhG;E?75.8)xBo!Vla5p^=V Hs5Xߨ!7%TLjrh&ذ;⩉åIVڂ||7~ȯOoH8fҧm]YX!TVmt_q]MD6Cl V.`ѸZl H(!Nm+Bh139bES?:e)c]QۯI}_ }sI) Sjeq3VS0),jBc]C]=Ƽ?l<^Ov{ڟ0&/I|#Iv~\v 0f_x~@{ØCM|64yW&DM,b,! ߫jhCauK-kE:ł8Nʰu2#snt<| V~ endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 82 >> stream xȱ D;DAEcCcblȭ!Q(Q(3Z{q1`؏2Hv{$I^ K endstream endobj startxref 9223 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list.pdf0000644000175000017500000002250014411653175030357 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 307 >> stream xڥN0 y ؉-I 6M;x}\ƦuU'vw@xL.ݬ{K<> b\*I*t;""Y[#^Er!bVm`z &+ )fM2FG5cE1K.gq͆d ig͙KXCwE>ZN@\vGJHB:efDqܫ ތs٥D^( (f^CkcH$WxNO6Y#ƅ̣@zv a-777O endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-22T09:13:34+08:00a2023-03-22T09:13:34+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:e5ef0d62-4130-afd6-4e78-a95b4ed35d2duuid:f4bc0fb9-4316-9fef-d2de-f69f4f034248 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Length 775 >> stream IUDCOL+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularyFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 384 >> stream xڅR]k0}ﯸ{(X"fWE^mruM$ꃰįֲI=ܓLN-wAE+d:HZ("C6k8)I#`PjɡYp`'bōb삟V ;k?<ΘY,b.4&cxt d>P\58 Bx,ؽS LvjO%0NCGsEMYaDJ50s"#E1 |dt8DZFt4MhJeSTHo|OJ|z FQUtMb*KEr;jW^g8\ǐ Z)H{wf(.pB ];1_6jq endstream endobj 18 0 obj << /Filter /FlateDecode /Length 2656 >> stream xeW[WwWsgv׳3;3ڰ3; ;k08($:D%H %HDmO(AZ~ Oԋy>F {ely0Z OLJlI(/f]rY}ossz]AǠ_t8/ygmX4 b%H){R VHg5Sa6\[:'' OB;S:6IJ! E= 4LYr PX,K$Zu]h֊A/PFH~qs7X(W=kh<0[G6 ?]?-=Tb&hLfLم0:I,ɂ9CRJnygM6}.VeqIAK8%7mLY.h(QPfճ5l] }ӳS.fk36 °MǤ.U-6DݵIcCtuCHASL(jZ'9Z y9|(mbİXRdAK5Ұ-kumb} 1Q˱u]WփS7 ї%Td6芳a7YnnTL\鷧]: l8oϥYA:${ʤHkk7ZY7dP:[WwÅ*/lh n,c~[I5czH(=#frb6ngGejpWP>TH,K<^y(@uitCO lT,Fhˇt@mL=4U"Qحžx-m7VyDvq0B;1R%Ħɨ{J@ l1!Evu9'j-la2Æa ӰSs-mJiڼE;BMԊ-Kx 2KE&a%THJ9/Gp)K CO&V $b?^q"+ R3'Z"H?rŁf3+IE$P+>С3es )ԩ+cEfbwxam^τRd.)r^*U䇹BrI4$8a9)* -WP*9-G@f g$qVd[uU5ŮW:-i.!W((#V~BxQ8N@v:cWʴ䐁 \r[v}nwnSJ:M+8*٬[ytθ\n)'i݂ܙƭV|[awčH,(p$yVc 1'f$C犴?lhծ؂漭G];@T,- Gs' ױL('%A/s Ķ~"eLR}#zR%7!fg^E:2 V {Uo,mKAmz@~>u.@b*xyS~_5uy;zW endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 485 >> stream xmM@ڃ/'L8c+ҭK" i`?~HBg$A‰d:MrBpGkՔagI&~LׁQ\..|H(̎ⷳ=&IzpyUtUES;!|=6^FÃT򸩩nb\IlAp&*;*k 差u&ύ=XaҮW7] U ̾֋|h۫ҀfcpqgZ,hG7[pi\ZEP  endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 966 >> stream xڭUn8}߯:,zI(@K* `?~uE3<9%1 HN3 }NS8 ߀OiK̓bQH\ iHBb~BmtEZ?r;nwゾ= $=!y6,Þe?VɽT*r>\.9ު"Z=UFCAv2e4Z$:7y:!2.bYV@6S(A; ۘnY_[_e ͚/Fo$ƷkczݫJ+8#{XL-sh" *j@Yύ0jy^ke}0~J$_Z2Q Bm>}m7ga@rnqgjV: z9|/:ߞެݪi]@ћ~W8cJN0Ǭ}T !P|w59sDbZmyQ%6sz:`sm)]e]I*m?D{ lf#^e!YnP__RYdКI_JjmzgcmZmms+}SLiϑb[ tYeƝpZ6&rޞ44-&Uuk33M0!LXg;e3rK43;Ez3ZLb Gg$?6;8A?<0Ōx<<^kmkm˜$#$;d?n.~v 3/c|z`׆9l0i :LM,"7 줎uIeNѐpݎANL;3xq:> ~ endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 82 >> stream xȱ 0;cH !*+2*FZ-VDG;J)ߤn_$y*L endstream endobj startxref 9224 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-8.pdf0000644000175000017500000002247614411653175030540 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 307 >> stream xڥN0 yvĖ$nަ@paN>ƦuU'T_Q0dOiޥ%eܽ't51!J$Y[6B{/MVVQB4;( VoIԡ6l6䀧8h\]MqafnZ.1:B %!Ymi~f̥,<z -&X#lY;O[k[JHB:efD<6hK_%.˯۴ē*G1p\Tb_)ȝ5Qg\j;C|aWPhbp\ s endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-22T13:05:49+08:00a2023-03-22T13:05:49+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:e5ef0d62-4130-afd6-4e78-a95b4ed35d2duuid:f4bc0fb9-4316-9fef-d2de-f69f4f034248 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Length 775 >> stream IUDCOL+LMRoman10-RegularR  "B  &     $ % &+3K2.004LMRoman10LMRoman10-RegularNormalAdobeIdentityIUDCOL+LMRoman10-RegularyFUBrm_|IuH01A/2Syh̢:9;Y> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 384 >> stream xڅR]k0}ﯸ{(X"fWE^mruM$ꃰįֲI=ܓLN-wAE+d:HZ("C6k8)I#`PjɡYp`'bōb삟V ;k?<ΘY,b.4&cxt d>P\58 Bx,ؽS LvjO%0NCGsEMYaDJ50s"#E1 |dt8DZFt4MhJeSTHo|OJ|z FQUtMb*KEr;jW^g8\ǐ Z)H{wf(.pB ];1_6jq endstream endobj 18 0 obj << /Filter /FlateDecode /Length 2656 >> stream xeW[WwWsgv׳3;3ڰ3; ;k08($:D%H %HDmO(AZ~ Oԋy>F {ely0Z OLJlI(/f]rY}ossz]AǠ_t8/ygmX4 b%H){R VHg5Sa6\[:'' OB;S:6IJ! E= 4LYr PX,K$Zu]h֊A/PFH~qs7X(W=kh<0[G6 ?]?-=Tb&hLfLم0:I,ɂ9CRJnygM6}.VeqIAK8%7mLY.h(QPfճ5l] }ӳS.fk36 °MǤ.U-6DݵIcCtuCHASL(jZ'9Z y9|(mbİXRdAK5Ұ-kumb} 1Q˱u]WփS7 ї%Td6芳a7YnnTL\鷧]: l8oϥYA:${ʤHkk7ZY7dP:[WwÅ*/lh n,c~[I5czH(=#frb6ngGejpWP>TH,K<^y(@uitCO lT,Fhˇt@mL=4U"Qحžx-m7VyDvq0B;1R%Ħɨ{J@ l1!Evu9'j-la2Æa ӰSs-mJiڼE;BMԊ-Kx 2KE&a%THJ9/Gp)K CO&V $b?^q"+ R3'Z"H?rŁf3+IE$P+>С3es )ԩ+cEfbwxam^τRd.)r^*U䇹BrI4$8a9)* -WP*9-G@f g$qVd[uU5ŮW:-i.!W((#V~BxQ8N@v:cWʴ䐁 \r[v}nwnSJ:M+8*٬[ytθ\n)'i݂ܙƭV|[awčH,(p$yVc 1'f$C犴?lhծ؂漭G];@T,- Gs' ױL('%A/s Ķ~"eLR}#zR%7!fg^E:2 V {Uo,mKAmz@~>u.@b*xyS~_5uy;zW endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 485 >> stream xmM@ڃ/'L8c+ҭK" i`?~HBg$A‰d:MrBpGkՔagI&~LׁQ\..|H(̎ⷳ=&IzpyUtUES;!|=6^FÃT򸩩nb\IlAp&*;*k 差u&ύ=XaҮW7] U ̾֋|h۫ҀfcpqgZ,hG7[pi\ZEP  endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 964 >> stream xڭUn8}߯:,ezI(@K* `?~gtEaH$33Gc pAb"@9"E$!.e^S2 7%kh]T/qލ G<'Q#L=?2p;gg^J_bխ٩*/SenQ<STyh\-`tF˪zLr6"źJ|oM\1%>uk\0zckH&l֤}^%u<t} .1<1y\}SiҗUvDjQcZsSゃwR-buVS*] m4W*PBݑ&f #x[o<\d-g˺wDAi&}*^޶ݕ5RMke|FGULi1`> ;ိl̦ 9H_)-f )9L1c!\N?S626@ޕ[eZo^8wtP <0V7ce1z<%Bp&;8ك~x`K xG^vOؗ$$;d?n.vˆM; 0f_x~@{ØCM|64y&15:%"bAte:sL9q:>C~ endstream endobj 24 0 obj << /ID [ ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 82 >> stream xȱ D;DDEcCcblȭ!Q(Q(3Z{q1`؏dv{$I^ J endstream endobj startxref 9222 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-4.pdf0000644000175000017500000002164514411653175030531 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 244 >> stream xڥJAEU5]]F!;qv!+E7f e4$8Pso7JLiէ덐0/I2,;)dٽ+,@ASGOxsci^-4M 87ǸjkƵH+מVvVfJ9X/CFQ{i= iViǛg%@4I)ٵU+x|ݒ%B Ih>S 24/WK7Ӎ{x endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1760 >> stream application/pdfaa | 2023-03-22T09:31:07+08:00a2023-03-22T09:31:07+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:e5ef0d62-4130-afd6-4e78-a95b4ed35d2duuid:f4bc0fb9-4316-9fef-d2de-f69f4f034248 endstream endobj 12 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 699 >> stream xuR]HSa>gg;ӥKMcQi!"Re.pim:5MV];Bm7Ÿ44  t]REV $"z/}/jҼ¢gUYɘQbhpE% "`()*7-d,Y hT$ 0#@-m)E-E6O`O,S:Oq4jSҳ 2YWU)w^۪ջk5<4JMibU[KTNJqhjL3x%HHIs8C-؂8>FJI; /U3a$@]:ewH|" Y_5Ҹd'v$xeGb=,(Bv{<͇\lv+ ,2gXJXp+@->4bx}S$UGvxxfVucfQq7yX&Ǐ݆R- uݪ-MZQb|`#_5'Ds 8zG`e\дaea^7wZ\׸wCp"yiKr-g J ʬPiF6CI#ȅ$wmlBh4MCۃ^FNh9mto.흢(ɨ$w%Dj ] w[4 endstream endobj 13 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 14 0 obj << /Filter /FlateDecode /Length 392 >> stream xڅRMk@+A1PEVkӅd7lC? Uy' :#T6zJ2EQ6$=ae / [}+\( ~lGF#2CLڙGa o*RBś`K.8~傩.\04C{Щ LCq%bBU!{PqsM:Y1 dxARйnB״+YDQE"z$Z( v=.WL/0s`oثѸj4c~Mf*6mv9JMڶM\`L 3})5h endstream endobj 18 0 obj << /Filter /FlateDecode /Length 2382 >> stream xeW[lW>sٹڻv׻cדּqzԗusq7iꔔ QЊHS $/HRD"B^U)JP^`gvm'Hs9{.?0BHEhWOn\x\3.#mhO{ *C{7?Tyh_@_PB8D C= yk1gD[? 4mDРC^^_Ac4<_}}|5tW&H=' ~ K`F^k=e`."ď?CH~ƣ;z *JEN6%XutEAu-~ t%:ֳFaz6V3Uj)!ot®ӣg)g\ws G]p,P9R<^ jmQ!FYq8`A{.'pl+D Olڱb Tҥ U~o)Ϝ d<1nw| hڮ Q\hCͣ5$ZW96a6aiZm@w-,H1( ٘ fFtW3qIs:v bbbq۬Ek-1bHT%1l4-sD^_Y\\<[a/n6UL FFVO9$LMc3{ِl|4yURi}尦O~6dZSu`#o^/BpnAdil2֋ I["h6[ڝװw-Y?ntaUZ sOq C{D_i>]i6KJ#44/axh冞l\Tj 66DQ,z}%IbBС{7GC\9f3DaZo)37@o(/bH܍Ș?Z08ӣ+%I F6#,#2x4OyvَZuԡTz'9,'5sWlK{\Z vguc )QfGX`yc栲*73y!m^/J:u' -**0EEh=ߩnOqB2f LŔg)=57>*ߍ:V *З8Xf[}*no@z7'uZ~W> [ ޗ? endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 461 >> stream xmM@C 98q&a3a ^] V[ݭ AzُCnoxsBa]3gZYڔC#r䓷{l{'Y_8u8RDՁۛcn>|6Sc_IdF` eW5 'M,gs%jp=UWYZ@?*Q~z3qnF#j'I^t p>$GY ̿K|h+րz=xWSD}{48Zñke!.Vְ3?UIu: iPB5yDK?x5,134JPāH<2jz%xg(V(_Mїl(HiT})4JW-c̐/ hjEM7f:H()΢xm"(Rc-+ endstream endobj 4 0 obj << /First 93 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 960 >> stream xڭUkOH~k=?Bl("[\Kc {b Us$Fɘ8#(&gxx>댸O I30"E.ܛ%KhȝmU/vҵ3{FHq5N_HF1Rb6tSr/T/M'brƷ:7$w2.* ce4un2tD.Ye'̢6z =;#2Mu%btka+ E,1`8~3&ڂΚϫFX]jAgWCA$ɵژCrҊ6E=ƞd4hF M\836YrM6jBeAO8]~$! YP9Iq? D- @ Lz#:/{".w:şxStx^y n H 6"._kM?g@_:,_5`g'E'lm9)Z nj͍t5V z35ߨC ,Tu tpCw~e,!<, >>Ѡ4QJj7-uge`mZ߷_YܻJ_aZ (6IUVh j-gUrk:Oڷ( I޺ɵ&c&B,Y|" YtyWnhfkrb뾈ڏ>&ä-`q ا'd ;8A?<0%x5Z=nƾ׎1{I!4ZI}+[X-*,g_ƶ|z`׆ ? ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 85 >> stream xȹ 0]c` !  j 7B?xh x V{H>^T ?8-4reAF/ 7 endstream endobj startxref 8810 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/06/0000755000175000017500000000000014613513621025743 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/06/bibtex-example-04.pdf0000644000175000017500000002653414411653175031604 0ustar hillehille%PDF-1.7 % 7 0 obj << /Filter /FlateDecode /Length 456 >> stream xڥTn1 Wr(Qrk ͥ>~ϸ(aJ͈=9r]}:\'6An%$!Q?["7\8A67NϪ1K焆dȆbka5JakصFVJ9 Ez(Dtwi6$)dI&JF ա'pIR9xac^8Pc>^ƋEyf+ϫ& 4o,2O!%3g/M~TNi72}#r԰[z VxáIj[rʍZz+H9Q%'8N cmasc2V1T~}s{*={A}?u@*b># oݗsUr &\P ̙?BT^_ endstream endobj 9 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-24T12:19:08+08:00foo2023-03-24T12:19:08+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:c75cd450-4262-bf0f-ddb7-fc55179d4407uuid:8c4f8ef8-4526-baf5-e66d-bd7f67a1a11e endstream endobj 13 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3381 >> stream xڍW TWBiZ('Ta1F Q&`4.nQMTVFDtɦ4Q+QG3 .1D+Fc23g>ݒ !-{|#\'<y&I.9E>J!F lPi%2DZ#-h)86o't; !AsCB%a%#9 kb1!Ԅ-!vPž&"^# ` 'b8K;HhJmXzZQ4:e+y\I됷d&PCxORO|vbfR pDhOkH9?qG6I~&O 9MqPϹL3; &']Z30fnݡ%=#CzoJ9 avVet~+:۸^|t%y`oǥ0,7*|GJWl$>B`_K-Ku232bd/ t}Zf:]d1YiaEcaH5ԎJVW~O.!ʽg\[ê^v)-1g!IM%-eGّCwpG) fk6PHkUx6 djUf~*=PU"\8Wءo;b~oVEC\D9*xM].9C=p1uy]X^w]ܝ5[4Ec;E[99&^Dbn4y)_6-.}zZ🷒Q/Sp)A1aB8/lųd 2q>rClY9=&)\wQ r8IN=?s &59/{=|0 WgoXďb|bG=ORf=欚YhY|޶#d\_??zzM^Hl,K({C'`aGc$m48j? ~N;Xu$g)] Low3ovgWej+6.,KpC³< y' ^YBQ9rҔ `nK%lXӴ$3N^:=``vd}%Ɗkzp=WA}`wz|Z\ _P/&L_d[Vs$N~c-~1R!vw|R3A@.nb،N1gЉfރōKyʚ( ϞwYz$OʥXMcʤy-kn;<1q4FU\aJּzq1?x?w?q'8l}J[\lWOӞ3yϺ}mI |"r3 #xIGba/Z-~,_nv=JI(l&KǞBl過}18U)-fo܀9OO>}}C~%M띑;RZ혋Yz&wcT0iId*m,:\X.-3goL﬘}N2cTQ^[I޹ %3[Gbk4PaMfqyUmAM{v],.ͻYVat̿ɤ"ѱi. kR*#NԷ5An Ja1̀A!0+ab2L驮`j[`fF!+9<ܝ lSaH,[_PJr*G1 2a{.9e܂_9VE \XA m%j~/MW|8 sT`ozRlYFcVh:Vr&)'7[mmyWGxq7w endstream endobj 14 0 obj << /Filter /FlateDecode /Length 555 >> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 15 0 obj << /Filter /FlateDecode /Length 535 >> stream xڅK@; AiSݍ>tۨZTL%OU2/u\of"?H/xi+)-.ɤߥR+}y52RiJ΍m<bPo/x7˯??{_޶y+{[yjq&mgHo],4WĞ|/VJ,̸:cD1N"M+%]Zf:%dB-'bi),Su#:hYt yӃ|3ym50HÙ/BBVE2V[D՟dVTnt0B1ŘT65%n)\KhF|Fc5]3^, 4@뷴ĝ5Xb>ѝ9ǜ?_//NN5'u8P#GM쯵p|$ jי,fwaNй׹{1Y> stream x]VMG~]?;L;;3mzW%Y(&'flcd" H(Hqd%A""!'!1`zfޤW]Uޫ&\ sb\!`4(Kw]W^/ b^KϞ_A}#Ͽo_9^dKX*t(|1:8cwA ~kO74B xkx =eh8$>n5Q:,t 3|[(|5 g<˓hyDwRAI[ 'Zi>MdqL; 9t'/wcd+!Ӻ`*ӡiyqɫUCr?d9a).oLW,J_i(իZDp/ٔ\'qrj 7m. :Ä[I,>/dx Qȳq!,w#n7)lTs3I9UZ3Sӊ!yj <~;g,fA~R0 Lj[M'΄|q/7V J5")B^ʨbˡp-Cwb3jMER|L|6y^$LJ5*?/PC%^[یdn d@C:"*ZʁD"tGC/ǡYH(qv^ޑ >\SRf*Qq7)⒠UB2,Xp [~reeG]/ TtSz<0z/a aj/FT`kdKڐ:<>IA֨P3/^_ܾx/XJR.^.F1R35˹#Z3je.v5AyyK纵C)Œ ܁7 CKb@#c6ѢG |uN愿e'%o5)'wMUBY'(3D=\`=!xC8>|SAZ endstream endobj 20 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 21 0 obj << /Filter /FlateDecode /Length 438 >> stream xmO@|ڃѝ@M8Nҥۉt&᷺?zѣoquD7xbjun#hD9ZVE tJLHrTE1K90>ow'D.eJA4=-E`u-|1F U9j뽀7; uoƞO1t_EI}FٵnLI%xo$}'5G-R)k0Xm8nP@ #!Tս}E)usy![rK`%VS7׎iu)QMGfvljżþͷ~OsC;Z-ͺ"rl)" ̱b;K:J F hŰɚ^Ǽ W~ endstream endobj 3 0 obj << /First 116 /N 17 /Type /ObjStm /Filter /FlateDecode /Length 1094 >> stream xڭV]o6}ﯸouX")$xbVAiW-$~))Vۊ!PHޏs) bQG&b⌤瑤JHảG0V|`CNBp2N>rvEpvFܫTӌ?|%atET=krd.;lf1 tBB0/_D1-"C?r&Pi)d `0X)%y։x"P"]gŶ~ћr:_ԥMO" 246%[KNCrn*:VFA8?/8Iʂixte\}w Ώy 9'N23>*;A}GDWqCr= t{F;g%1}76{s<lprj7+8.+}ֆ~]VwOuw&CRfxTe^ 3lMSspW7"_L:3-m>6=4 ]IhK)QIG jmkuզjĻҩOѬN[7TwyJ\[{79DIeC3 ;N3*O慦4Yɔوg^_)XtʢcS:ߪȷo398C<` h,裁0OH.xlCdc:[Պ1`,G6'xe=e=#`, ] /Info 26 0 R /Root 25 0 R /Size 28 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 86 >> stream xȹ @Й]N@[27 -<]3)`ET$ 8~t$ o+Nz ~)T endstream endobj startxref 11295 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/06/bibtex-example-03.pdf0000644000175000017500000004500114411653175031571 0ustar hillehille%PDF-1.7 % 9 0 obj << /Filter /FlateDecode /Length 598 >> stream xڥV1 +(a pUTP+ik@hHe;8q8^0 %g8X2k+3s{% f8mx}ә㬗D׸fBd Q?ç9$rEH@IMR6W]< endstream endobj 11 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-24T11:12:13+08:00foo2023-03-24T11:12:13+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:c75cd450-4262-bf0f-ddb7-fc55179d4407uuid:8c4f8ef8-4526-baf5-e66d-bd7f67a1a11e endstream endobj 15 0 obj << /Subtype /CIDFontType0C /Length 531 >> stream CNGBBL+LMRoman10-BoldS  "zGm  &     $ %!&.C2.004LMRoman10LMRoman10-BoldBoldAdobeIdentityCNGBBL+LMRoman10-BoldӋ!$ r\wK}@{'˺#! -M1P|a|G@FeGED]a~wyAӕvwU`t'}v\hט܋=yuxvyu+C(EËΠƮ/HP^ To   ! & endstream endobj 16 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 17 0 obj << /Filter /FlateDecode /Length 371 >> stream x}RMk@+@s0PA)BjvtAweՃ]B ͛7;{:+Wt ge(>l#i[h +8)ISl9N6\AEM"q>|O7>Gϲ̄OH%›Bcd[s|+}&X,K3\x@ p5?i3p cҮnLD.K֍1CM3%[#Ҷ 4 @l 68C 馭ftՃ%A%ú(L6cU`tWS釆`}ܣ_<ֲZ@[fap.p\_%Muo>@?חߧ endstream endobj 21 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2193 >> stream xڭV POA".S=w}ZvDC@y#@$$^$$!B! (gQNC{ֶ>gδtN׳ӻڛ۝ٝ~g2L&sMdT'^;z,:/'9w3REpFe."*j8l Z`0X99yOV10+>{Ν{DOyygg}Q`2,F aKA`RFXe,g`dKccU+L>AO,IH,r$x)(8h(R=q{ϳo{W@.ܤYxLx,ñjBLxzD(Z>|Z>j|7".11-;mO"3A3g@cqOƆ<8L?}bpBd,{_DF'ŧ,D= ˖)SUkVݦmmTzZ`H 6UZt6! 2a [ j96_q>6j00 4=ḷBrZXO]eSu*S *b p[ fh%>MZEͲy TҵyܜD,|ck0:V;:MڑNWXu~: chK/.5+Y&NC&1 mD/58eɍɌJF>gj'z6{~ŲsDNH/S^bcqա-R>_z9hǣG%-اm϶g/ 6ELdew` %|@TJ4ޅ0J!?qo C35:}{}k>'3ƒЪzPע35xp{Mavc tBF ΄ؤ > stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 23 0 obj << /Filter /FlateDecode /Length 448 >> stream x}Q0)}6U)hU(ܪgeך^&%mtZ=8B?Loԟ }D` G? [j^稪 @3XA?N/NXTw;o~nҝcLO"\AVZv>hJ;/1R"ֹ+6MOR GAH^c<(:v`6`oeeM)F '[MZ] Z?q,IS"lp->4a[XG]?MeD%)YOwf<Fa54lhF4"Dk ђhД.߉DC̉bђ($ZDkrCF{R}?iPwkc56܏ 6v6so3h . endstream endobj 27 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4630 >> stream xڍX TW.TD,'T-c{QM(qgٚdodl 444(nqI1M₣1͹\^Ϋ%9ݧ{_}_aoOd2 kyomH9x+U^"/Nq8^.N>8`:ʠ(t78*:FLdۭ/9L5qyΞ3gs;Qۃ"BU##9aOb1A8# 'b1C841`qğ%8b<1OL$^$&/)Tb1A$fɥKWWL4&eyowA&n% "k_ǩ!/n~oDڈ;'Gy˩QhEcvO ' V Cʭq;!PS}܋O~w(ML8悽1WR¸]lJffV6 ] @Є .h 4zASZ_@Ral |5KE[ƣr@vh%% wN`#DHēPIAmvFvQeYl\ݠ{u)ZG =7"҈5@yaVStOW޿p ߬"%jZ8*Y~+ES5e¼#'nStדסf.gPnp+E/q]z"D.,6SA;j+f75e檃z ;CB-g$&);$7"K&El"mP 6}rc5ۘ_T $Y!Ϙa3tC:^ Z~MCPnDofCVJaOI4H%v¤sƪֲ,-iźSg/oj5Ʋ"=O {ɭ]ya7>&N@MCSa5At)ܔ'[(z^J Lsl}ddlldd}lss}}3XVW\ InSQXR oD!'Gc ʾQJJ%( ,EzYeb=s{[OP4s`) Wo 6ZUv#czmAP"y(>< wHf~x;#ڪ֋3q Q躘k,+[D-0˚n]<4)2diWm GXԢ0aCRLN3zįD. T酷,K0w? /='8iQ6y{dg<5@5=aݿ4Č66\m)kѨwr ^jĻuZU:,T7n7Un/ߺ2&,w6=x;ַ}.ڨyK:aIj/K_{:p=p* 4gs@7B4,iǗQMzX g#X&L4 ;DEL0>񾑛8?Ѽ=5),U `Mr_ z䄆{5wchzo-|SA}6 DutiL˗mm'5,FP3SQ0DSU #+.*5[Xxnpl){O>~>P#{@j&đ~cǬCJ魯y/5ϱo]]pR@j9#4$W<9y@hˠs2]W`]e`B֭<RGcg6'?Lj"2$e+on՝oŹ^=4褸 `S]9/aOG纺ԁp mma48T\%OصTmH5~, 1HE WI1;ӽf,k#ƾψ2}˚GInۛ=w Aq_a jɀ7c4}]llsj;ŵv|i2&N֍Rt̨CjMt#ʣU̝şcyx`|3Ϋ7Wtrw<n16/r_Fp&lܞ.E?\7@FWDaCpۚ'o} !{g[١] Aa'=E K+빞z! moA+8n=b8(m\./KJU&L67L:,Gf2D6CELCF t=j!<1(SKZꝼ_ldvV%ƧGt?W2M|C.gAfn[#m(u1V\9c49W &u̩m.^nŴmE |I whʹ*CAEb]$:mݎ=S!KnT Wxr c) o27V_h<yϜ7;s0.q]]3kc|-AtٺLV]!ō呾~K>[s-&26iF'a?qmF)j+[$Y/.l޷? Ga6:Ou\"송`d u:g/wFy4 qDP k{>; L:MlB{PWgFvS@]R64KM'n=Ppd0[OGyMO# vpR):HR?xE> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 29 0 obj << /Filter /FlateDecode /Length 566 >> stream xڅ[0ًؤDO3.k݂MKM~ՅU 4I>|z+/xFE[ʛ%ea^mtT[_GU[հl5_NOT]:fbN_~m<6؞m.kN&?,{6 BY[˺7IٰiYѸlo1Y\_McQJ x̆fnẒMnmYl2R.F'ڭZI5{v\^ b8Re*kl?a㥹A7ƦN'h #P A#D>"G#; 8 ks3;ubjPE戤#As.A3GG$g'?t05_-Ab"q 8p  ʃ_[$S #_~D~ /_Lk0߈/Hz)^vmU;dZ]ea3LnǤYZ/ZY endstream endobj 33 0 obj << /Filter /FlateDecode /Length 2197 >> stream xeV[lW>993s>{zwc'v:M/P&jK+hx@KEHBB~-fO z6ȧAwA'wo|^W};)>@)zBG:B^;ZfJ~KwLipn-E> bt=pN|$rzzJ8 KA`!IfoO hh*G3&j7Cc ߍփ, ] KMɼG:dz6ut]B`\G--sT#Y|>4A?}$sS U^>J?g2b iTE!:CiJ l0|s%OՈǫs5eVї,mO[:ԼK{)ݗCf}9.M7a+o{uLp p F-'bW"9Iq ,,j$3;v^º<Y-Igy)IK"Ml'H%n(fBWaYɉ 9U5{b.5RU H#*h7Z_L%$ g_pu8;[2X!uxhM&7[yIҡ R9^N+W`.5/D b+GXZĿWmQ/ Z kH[VHƿl4v~gmXHG_Uegm2ygWU+:X7t|bZ8"{kK-B$ap;[.Sc^܆6ww16ԴWtKۭE]骪\a)@r'-XY~;y,8!U Tӯ;A0Y6P.i}$ liyto_ȝjxQ X(!wX7UVLjWQݸ/#qI:5M8![NYcƔSpO&rD˶)3[DGdYX/V<!sh̻~涶4rOI%2<3pV}k @fm<1^ eđ6]x0&c/31%o ; |h?)(CI~Q'3 PFI 2:X0y;F[c?kS7+#=> stream xm͎0<"R`00 (įĢhڪ;oR`E>|}$$$>k3>hO ް{Yc6ꢯPt;D|m_UE4JE-8ť8<.u`~>]VVY/LFC]ZYҝJGgn WQPvXTA7%m;y/Kg̫i.Hрvp> stream xڵmoHߧw%}6"piK\ m謁0FHt6~^q*E&{ea!#> +?O MN&ʽM#knQSGQS+`taZ2!\keJ2p2XOr[HqgK!6tv+=#**t~]A6 s}w,!{`;WI>=}<;P{=v`GGi?g|J&h4{Wbkq?˟󣖷C`k PQ/X|T(Q$wv{vn:PwՏCd8QPNGlu P,״^h<[d|Y_F7-,[<[pdΕ$q]p\v]v1 5{/MSuT`=Ky2,{j KA}L:1({շT:GvVFpsʄ -w_.W\^gsB=g`e02G6JClļ׳ƘXLci+EMiDB77#UG"QӼgԘ&ŗը5-^Mbg%t [W0۸`/.a'q_ j]><ፅZ8& Z^C!NQebLL[]덜uԨl|v6sr ] /Info 40 0 R /Root 39 0 R /Size 42 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 129 >> stream x9`7\bceb70_d&/8x~(;YLH]i;O&{0aeݗ,%$)oe#_ ~^r+0n w endstream endobj startxref 18584 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/06/bibtex-example-01.pdf0000644000175000017500000004166414411653175031602 0ustar hillehille%PDF-1.7 % 8 0 obj << /Filter /FlateDecode /Length 643 >> stream xڥVˎ0 +UE% 'qm9/MCؑ43r2 @Bg6Xd.W3ƀ1g+An./6h8>]Jt(a4%X"[Eg(qpcp64cAh FyD9:ss 0V/ƮĠC` -GSO݈ ?ɱw&hQ;t sEEXy#-kHcd}j hP7u) @iO #gLKXkj$"$ۢ'  !a 岑]k6n9]J8K.KDϡJ@AE1:(ݲsF],ӌ)\]z pucӑc,.ljv@?Ocu ((` 7`Ɯ6eT1D7lO{̙dT\T()߸GcLjpJcDzA\zPʽ.טͿ;&e3@i&d@}oeyŬAn\u!Ft򼉑yvDwfYo1Q4 endstream endobj 10 0 obj << /Subtype /XML /Type /Metadata /Length 1766 >> stream application/pdffoofoo | 2023-03-24T10:27:00+08:00foo2023-03-24T10:27:00+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:c75cd450-4262-bf0f-ddb7-fc55179d4407uuid:8c4f8ef8-4526-baf5-e66d-bd7f67a1a11e endstream endobj 14 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2193 >> stream xڭV POA".S=w}ZvDC@y#@$$^$$!B! (gQNC{ֶ>gδtN׳ӻڛ۝ٝ~g2L&sMdT'^;z,:/'9w3REpFe."*j8l Z`0X99yOV10+>{Ν{DOyygg}Q`2,F aKA`RFXe,g`dKccU+L>AO,IH,r$x)(8h(R=q{ϳo{W@.ܤYxLx,ñjBLxzD(Z>|Z>j|7".11-;mO"3A3g@cqOƆ<8L?}bpBd,{_DF'ŧ,D= ˖)SUkVݦmmTzZ`H 6UZt6! 2a [ j96_q>6j00 4=ḷBrZXO]eSu*S *b p[ fh%>MZEͲy TҵyܜD,|ck0:V;:MڑNWXu~: chK/.5+Y&NC&1 mD/58eɍɌJF>gj'z6{~ŲsDNH/S^bcqա-R>_z9hǣG%-اm϶g/ 6ELdew` %|@TJ4ޅ0J!?qo C35:}{}k>'3ƒЪzPע35xp{Mavc tBF ΄ؤ > stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 16 0 obj << /Filter /FlateDecode /Length 448 >> stream x}Q0)}6U)hU(ܪgeך^&%mtZ=8B?Loԟ }D` G? [j^稪 @3XA?N/NXTw;o~nҝcLO"\AVZv>hJ;/1R"ֹ+6MOR GAH^c<(:v`6`oeeM)F '[MZ] Z?q,IS"lp->4a[XG]?MeD%)YOwf<Fa54lhF4"Dk ђhД.߉DC̉bђ($ZDkrCF{R}?iPwkc56܏ 6v6so3h . endstream endobj 20 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4632 >> stream xڍX Xڞ&=cu֊RwV-a d%9Id⠀,.j]Zkmuj[=K{M$s2w}HGGB"]zFRD~;8DPoz 0:n80A8R׏I,x,N B(J|2B'rk+AI$&Ϙrάٳ=7R(K߈5#t#ّQ GJ}.63m^ݑO|A%={ jpx:gl QbaƊ^O@rӖqiwVAUsmmvܶ A9=rm>%VTtYGy;@XMZeh~h[Uu\M.1buԉ H4<j;9>qBU ˫򀱤Y4cw8_ι!}7e X D'xN~Ba?5/p5ߝ+>=u'MuuMMuuM^c Za"?|lgPhbtLLet`|#=-Nz}._W.6R,a*Xj/_ ˚T< /eOC߃ mOQZ%mUEK7NġmM#YrE2%=>j;;8QnS? XQvvN{i$hpݭNVu2U;Ep~'_6}.+1y+<ౣIx k_DiDުOJCcRї7䭚.&xemG_d;{k][@Izʚ&rک̋?yo ,E?ɽm^ ȯɭ{rU2g/t]r~P3 {,^hon>K5#11~.)fQY$L dg(ocaubP=ER^2<Sѻ2_g"]xDXAFxiX"}Vnɑ14In߬U!cNmo'f< {O-])(&ڊ,U7E]7n!_$)]\>'KW$ .'Lz,E2XԷAEDKFJQ1rM'שd9qjY*q 4oWȱsu-"*XQ.m%ff-6"Hbݕ8&Sx@<^+r^hev]LW_0`ї~rGa4s(VUa젤U}^Pјx*jW#8dI1UxY'բ?~lYA=-U^Ns}3&pˎ&tl LGel)[nMU,6S`4]o[> [翸P%gZ#c#Rf[$o [$1|":pFI dmvjO~2!N!Uz`NWHC1;Q>he]4Yx <w^h R޼(imWi9)B 曹JX4ؙuj ),v ZZՠc?OuXr'/a6/齵iylJ T*7f`4Bc)`EԡO>G>UIQZ-?P.e"/V޵?П %:|ʹ@1x?t @%`dkO]WvA_E]bϮ3~Gј)W#8~foBj֜8vl.0n!. EXR"K ,20q]<zi`4Bti*0L> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 22 0 obj << /Filter /FlateDecode /Length 567 >> stream xڅ]0ًؤDXagMt 6-oTVYa`Ħ>ޫ, }QuVfoI{xi+ݼ+%VQV5?[W:k&驕KM1׈;)Dsۨc{J*ϷvYs2$Yf?m*}SUG -gEn-ސ&enCeE㲽Lfisas[h{/ЌMuv26\WRU>MhۖI!&*({K=4;|nڝk!On!U]&}X /ͧTiy3(?0v+ tH8Q<4B 9QQAOXATݩkTs*4G- s 9>DA~Ё/~_/A8B~D ( ~HG5Fp.~A_w''߈/$E=uhwҶ r { 2.o;ޞs/fiZY endstream endobj 26 0 obj << /Filter /FlateDecode /Length 2326 >> stream xeW[l\ۙ93s׽x7{c'6+ [B!E@A-Iڇ *PJ}᭨}*VH}hTZEHǦHAxj];sgfofF9D:|!H4t>Af@ '=MA[Ю=S'zUhǞ_x ҏ~;|?tϝ_ dP(;z囟x4-DX!// /`K&W`p1ڭ5 hy&CKz S ['~; [^O{MwX@j)E FG&Bn3H!N)]I\ZYsmNX!hYʲp_Z>#85S;bRKJx)fA@Mȟf1&uc*gR*ᦟFaTJP̩;TnpxVF?~>C{Vr˜8h;%bdq*o҉nӕ_st|@Y>qGZ'b P3b3mRJodͮέtt ^Xe[8(]d}a`  6 ntG Ï`@ hqI2v%̈́CNR $_ -.~613 Q :I 5 LwTܞĺy'}\0ź<8+$V~ig;diij n.#vTпY2pA3CZ8&]1NKaƤU[KyblYt ZsXt''D_s+4]퉹m?SR!vV7~hP=}g @֓N2gߕ2-x`L&_g9ƣz΄D Zo,"JK~y, t|JJ>*7t /Uܧ]摼fQ)!|kd_c4wzx8/[(s9ۍ/H8B o (F(eO< jSM\M)g}Cz㑒v u)KK)j,$s\`Y!8)1aD2f*Ĝ*mr䀗r}"/TVPA9n"<<LȄ.݁g8$6ny@Ld|iA%)o6yoD|U؍O )rE(a]] x ǿUItv_Up1S%3.0E%k24*| \ iy? Emjz&q StSb!8P} fXfL>5OlΒҺ9QnpVi'VӾ370D57up ] 09t ?ed{zm׋$3en ڻ/c1.XE?@oݨ +7ۇycwǺ6Nʤ4Wv_Ԧ B"nBo{Tgfw͇,A8 ;yK=x}24A΁4@6G;"0ϯ}C/࿀ˣ@'}}[7SV endstream endobj 27 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 28 0 obj << /Filter /FlateDecode /Length 463 >> stream xm͎0yEd$(&!jIA& !\_y}D}bmGLӨ. EC^e]d,LT\SQ\z(s)Zfmeeb$>E΃'ʶ O15 ,LXN#śn T[`xPvm;Rq f7%m;yae)0WMe}\֔x+-f\9+ks;_4Zͱme.wFmag?T۞.u<s9!K/9uUZ=MϤ V+MKE^bZ,Y3Mk"I4}* 3s>ٚR015#82UbE.(Q0;f"M&]kF7f> stream xڵVnF}W[dF.)lnڎkIVH@Q {fIZ-M@wwvv.g^ j$:6$)IS YiI CQDiriLH* I 0 cRƤ)ɶH),Ѭk THZ@d^}K!}+꟦%ԿRJVIݎj?ڞaP6H4H҄!Onm"¶UB<58ٸuҭ fV2/NvZޯ* *\aVff#bU~ŗH`2YlTv;5AD]:b7it+Er_j#2'eB(Ou5'&/,suMuZ 7Y EG`'@(bYI2 !`lXyoKT lۮ卞oy_kVc$NGV)_Flⵒ/{C{Ėdџ=ǿ\xH$u4ilN;/J̸w"2W&)/ĻPw*3b@7"·y],H/io6~7*aٲNäUVW_ {{no03!pS'EߚjjP885>ʡŜ;nZ]N:jZD{lYϵ}{oq!Y: }oZEa:gۄtUOrtw(^^,X8kðlpv endstream endobj 34 0 obj << /ID [ <9D8675E57225D301F84AC1EC73BE996B> <9D8675E57225D301F84AC1EC73BE996B> ] /Info 33 0 R /Root 32 0 R /Size 35 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 105 >> stream x;F`wDZD46aڥ]h)p2@bʚœ,B:#K|뉤K!%  endstream endobj startxref 16995 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/06/bibtex-example-02.pdf0000644000175000017500000004502714411653175031600 0ustar hillehille%PDF-1.7 % 9 0 obj << /Filter /FlateDecode /Length 624 >> stream xڥVM WJQJUjOKS~MLfCT{xR&dzLƨ_ʨ/}@Qh)DY0>;m%˓A룺1g+pE8q1:ksB[B8M 5 YQpvic@64cfh FyD::c#N[X` Zv R|\䍘KSJO{{5!4{L>v\Us4=9~$7\O 5"ǃD(*+"%(քnU1e>9F'89|;FJT(8TUnJ8hM՞&Kʹa&g,&8>uATyץ%cpإI6qߌ p-گ6LAf>m&_nolfN|7Y{pCGj!-V[? JrKqiLy؜G[t9k0kƧf5 Յ3Ge0^kX.ĩr삨龾 g8&=v޺?Re\3߻7yC𢌶iwC o:g#> stream application/pdffoofoo | 2023-03-24T10:55:21+08:00foo2023-03-24T10:55:21+08:00github.com/contextgarden/contextcontextgarden.net2023.03.20 17:07tug.org2.10202303205.4linux-64LuaMetaTeX 2.10 20230320 + ConTeXt LMTX 2023.03.20 17:07LuaMetaTeX-2.10Falseuuid:c75cd450-4262-bf0f-ddb7-fc55179d4407uuid:8c4f8ef8-4526-baf5-e66d-bd7f67a1a11e endstream endobj 15 0 obj << /Subtype /CIDFontType0C /Length 531 >> stream CNGBBL+LMRoman10-BoldS  "zGm  &     $ %!&.C2.004LMRoman10LMRoman10-BoldBoldAdobeIdentityCNGBBL+LMRoman10-BoldӋ!$ r\wK}@{'˺#! -M1P|a|G@FeGED]a~wyAӕvwU`t'}v\hט܋=yuxvyu+C(EËΠƮ/HP^ To   ! & endstream endobj 16 0 obj << /Filter /FlateDecode /Length 553 >> stream xuSn08?4lHRi! 6ۺMMVfWۏ=^a&q$>\%6TAHSƧ֟_gEfӮr6(.ڢ,"9^;H,B}gV*N빁ʔ*=A*h4NFrim.sMeTR1;PjjY%'"Q΃]4MWs,q/"c_<&VR'?p2LHGpqA6T,~?\ FV,͔?;8WnuD#7 A`)meVgҌ RCZ3&ZќIcyL+P5W`咂mHJ<}8?$^|,W7H QAǀrR|/ؿ:A:4'M9 JmKVXt%q.n0//9O}rsN :F'AB4?w~&#5l(>)Tx:Zڍ_Z endstream endobj 17 0 obj << /Filter /FlateDecode /Length 371 >> stream x}RMk@+@s0PA)BjvtAweՃ]B ͛7;{:+Wt ge(>l#i[h +8)ISl9N6\AEM"q>|O7>Gϲ̄OH%›Bcd[s|+}&X,K3\x@ p5?i3p cҮnLD.K֍1CM3%[#Ҷ 4 @l 68C 馭ftՃ%A%ú(L6cU`tWS釆`}ܣ_<ֲZ@[fap.p\_%Muo>@?חߧ endstream endobj 21 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2193 >> stream xڭV POA".S=w}ZvDC@y#@$$^$$!B! (gQNC{ֶ>gδtN׳ӻڛ۝ٝ~g2L&sMdT'^;z,:/'9w3REpFe."*j8l Z`0X99yOV10+>{Ν{DOyygg}Q`2,F aKA`RFXe,g`dKccU+L>AO,IH,r$x)(8h(R=q{ϳo{W@.ܤYxLx,ñjBLxzD(Z>|Z>j|7".11-;mO"3A3g@cqOƆ<8L?}bpBd,{_DF'ŧ,D= ˖)SUkVݦmmTzZ`H 6UZt6! 2a [ j96_q>6j00 4=ḷBrZXO]eSu*S *b p[ fh%>MZEͲy TҵyܜD,|ck0:V;:MڑNWXu~: chK/.5+Y&NC&1 mD/58eɍɌJF>gj'z6{~ŲsDNH/S^bcqա-R>_z9hǣG%-اm϶g/ 6ELdew` %|@TJ4ޅ0J!?qo C35:}{}k>'3ƒЪzPע35xp{Mavc tBF ΄ؤ > stream x}Sn0ߧ8?4lHRi! 6[MMVfWۏ=^a&q*!l}w-I B2>? X</'(4c]nhu_[-ʂ*ms"wflu0 Ļ>MLøiRCpgk-7\a1J ߖf  .r`8*Ț ڏ˾!>H#;.5cC XF[ՙ4#y"V.;IhDV4Dj TFr3YD`R0Ot׭Dc$ 8{uӛVA"* \"S>SpB oyw1H00Yp֖ԦiEʌEf@:pv?A<礠7RHע.daDvRG;\j _ endstream endobj 23 0 obj << /Filter /FlateDecode /Length 448 >> stream x}Q0)}6U)hU(ܪgeך^&%mtZ=8B?Loԟ }D` G? [j^稪 @3XA?N/NXTw;o~nҝcLO"\AVZv>hJ;/1R"ֹ+6MOR GAH^c<(:v`6`oeeM)F '[MZ] Z?q,IS"lp->4a[XG]?MeD%)YOwf<Fa54lhF4"Dk ђhД.߉DC̉bђ($ZDkrCF{R}?iPwkc56܏ 6v6so3h . endstream endobj 27 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4630 >> stream xڍX TW.TD,'T-c{QM(qgٚdodl 444(nqI1M₣1͹\^Ϋ%9ݧ{_}_aoOd2 kyomH9x+U^"/Nq8^.N>8`:ʠ(t78*:FLdۭ/9L5qyΞ3gs;Qۃ"BU##9aOb1A8# 'b1C841`qğ%8b<1OL$^$&/)Tb1A$fɥKWWL4&eyowA&n% "k_ǩ!/n~oDڈ;'Gy˩QhEcvO ' V Cʭq;!PS}܋O~w(ML8悽1WR¸]lJffV6 ] @Є .h 4zASZ_@Ral |5KE[ƣr@vh%% wN`#DHēPIAmvFvQeYl\ݠ{u)ZG =7"҈5@yaVStOW޿p ߬"%jZ8*Y~+ES5e¼#'nStדסf.gPnp+E/q]z"D.,6SA;j+f75e檃z ;CB-g$&);$7"K&El"mP 6}rc5ۘ_T $Y!Ϙa3tC:^ Z~MCPnDofCVJaOI4H%v¤sƪֲ,-iźSg/oj5Ʋ"=O {ɭ]ya7>&N@MCSa5At)ܔ'[(z^J Lsl}ddlldd}lss}}3XVW\ InSQXR oD!'Gc ʾQJJ%( ,EzYeb=s{[OP4s`) Wo 6ZUv#czmAP"y(>< wHf~x;#ڪ֋3q Q躘k,+[D-0˚n]<4)2diWm GXԢ0aCRLN3zįD. T酷,K0w? /='8iQ6y{dg<5@5=aݿ4Č66\m)kѨwr ^jĻuZU:,T7n7Un/ߺ2&,w6=x;ַ}.ڨyK:aIj/K_{:p=p* 4gs@7B4,iǗQMzX g#X&L4 ;DEL0>񾑛8?Ѽ=5),U `Mr_ z䄆{5wchzo-|SA}6 DutiL˗mm'5,FP3SQ0DSU #+.*5[Xxnpl){O>~>P#{@j&đ~cǬCJ魯y/5ϱo]]pR@j9#4$W<9y@hˠs2]W`]e`B֭<RGcg6'?Lj"2$e+on՝oŹ^=4褸 `S]9/aOG纺ԁp mma48T\%OصTmH5~, 1HE WI1;ӽf,k#ƾψ2}˚GInۛ=w Aq_a jɀ7c4}]llsj;ŵv|i2&N֍Rt̨CjMt#ʣU̝şcyx`|3Ϋ7Wtrw<n16/r_Fp&lܞ.E?\7@FWDaCpۚ'o} !{g[١] Aa'=E K+빞z! moA+8n=b8(m\./KJU&L67L:,Gf2D6CELCF t=j!<1(SKZꝼ_ldvV%ƧGt?W2M|C.gAfn[#m(u1V\9c49W &u̩m.^nŴmE |I whʹ*CAEb]$:mݎ=S!KnT Wxr c) o27V_h<yϜ7;s0.q]]3kc|-AtٺLV]!ō呾~K>[s-&26iF'a?qmF)j+[$Y/.l޷? Ga6:Ou\"송`d u:g/wFy4 qDP k{>; L:MlB{PWgFvS@]R64KM'n=Ppd0[OGyMO# vpR):HR?xE> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 29 0 obj << /Filter /FlateDecode /Length 566 >> stream xڅ[0ًؤDO3.k݂MKM~ՅU 4I>|z+/xFE[ʛ%ea^mtT[_GU[հl5_NOT]:fbN_~m<6؞m.kN&?,{6 BY[˺7IٰiYѸlo1Y\_McQJ x̆fnẒMnmYl2R.F'ڭZI5{v\^ b8Re*kl?a㥹A7ƦN'h #P A#D>"G#; 8 ks3;ubjPE戤#As.A3GG$g'?t05_-Ab"q 8p  ʃ_[$S #_~D~ /_Lk0߈/Hz)^vmU;dZ]ea3LnǤYZ/ZY endstream endobj 33 0 obj << /Filter /FlateDecode /Length 2197 >> stream xeV[lW>993s>{zwc'v:M/P&jK+hx@KEHBB~-fO z6ȧAwA'wo|^W};)>@)zBG:B^;ZfJ~KwLipn-E> bt=pN|$rzzJ8 KA`!IfoO hh*G3&j7Cc ߍփ, ] KMɼG:dz6ut]B`\G--sT#Y|>4A?}$sS U^>J?g2b iTE!:CiJ l0|s%OՈǫs5eVї,mO[:ԼK{)ݗCf}9.M7a+o{uLp p F-'bW"9Iq ,,j$3;v^º<Y-Igy)IK"Ml'H%n(fBWaYɉ 9U5{b.5RU H#*h7Z_L%$ g_pu8;[2X!uxhM&7[yIҡ R9^N+W`.5/D b+GXZĿWmQ/ Z kH[VHƿl4v~gmXHG_Uegm2ygWU+:X7t|bZ8"{kK-B$ap;[.Sc^܆6ww16ԴWtKۭE]骪\a)@r'-XY~;y,8!U Tӯ;A0Y6P.i}$ liyto_ȝjxQ X(!wX7UVLjWQݸ/#qI:5M8![NYcƔSpO&rD˶)3[DGdYX/V<!sh̻~涶4rOI%2<3pV}k @fm<1^ eđ6]x0&c/31%o ; |h?)(CI~Q'3 PFI 2:X0y;F[c?kS7+#=> stream xm͎0<"R`00 (įĢhڪ;oR`E>|}$$$>k3>hO ް{Yc6ꢯPt;D|m_UE4JE-8ť8<.u`~>]VVY/LFC]ZYҝJGgn WQPvXTA7%m;y/Kg̫i.Hрvp> stream xڵmo6S](JF [fv+BW- $>Gɱ6]@x<~8 Lp(&B&2 "IάL,SIfxsD "!{ǟlˊHp#Wo=$/Enm6Sl6<- 7)˓tKx:a[7MEgl C+;=ELpsq,,:PQp ʥ} 2B+8[l̊\2R DXSDgtti^SFn-Z!^"9b@rxaF$.bح"C>Xj?UZf5&1 %3D{:&T.wݥ \f-8aC!H+P%A}H/&~>\njA/,AfBܐi!bɩcD7I2pdv>j(jR}5 =*|+Iƹo- B^f Vji )4mR7&n%{~gy[/+Va4<†}?C/[-O߹l-ćfl ;@e>[ps~$*0{]ŋMq.JD-C`k 9R(Y.XtTH^$wvJ ;Zo))s7o1*;鈓_VetM GV;<T^&lvKO[^*p]#7+#^)ewtg喻/ +*rn鮳9jv |p2hZ҇S#~!N6bY^ƘXLci+uEMiD\5 1#kv8i3֘&ŗը5-^MboU [W`/.!z؅oz9><1'hnu7원sSTG:S|#SVUj#'9*[|x۶M\}{^eĕ/"}"[n.gUL$M46մS'N*APEp 5` endstream endobj 41 0 obj << /ID [ ] /Info 40 0 R /Root 39 0 R /Size 42 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 126 >> stream x=asf?'kV$ehm@oVb!jkxo޼͑LyOD[M+n9Z. .M~0DUޟ/S0§ Y endstream endobj startxref 18609 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/04/0000755000175000017500000000000014613513621025741 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu-3.pdf0000644000175000017500000002440514411653175030117 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 395 >> stream xڝT=O1 Wlñ*EꆸL};Jo/>pS=:׿w pƢ;এg(a`O"4Fȫ1qGb!HZ4 hbc!H5g*g8WwaeH0&l1|4 #"ܼZkS(KڄM4=hz \oq=E:v2yҩ֫jA"3BRCȴjmΒø֦PKBK{xF(M7/d>@庿=P x:Pq^W#I$^0.Oqp:_RN2xT7GJУc|΁:܅%? Lbzi?K endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-18T12:54:39+08:00foo2023-03-18T12:54:39+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:25339776-42c4-ba2c-3f1b-1fac29c95971uuid:211162e4-4d3f-a182-950d-ae271c9efc9c endstream endobj 11 0 obj << /Filter /FlateDecode /Length 5497 >> stream xڍY{Gy鞞vowvn]t,ɖ_-a#Y~bca11RP@(\ ^yUPC6U"epzvtMUgvzgv}0BF#[n;y/)1[`h>?c4\|>u{k!ru|gn뷜z3x/BG9 [KiYpD'H ɋ:tz,r7ϣ h43?_c.kxOmϯ KWFF[s` !OЍy1߀"D'a|!v 'ApY]0!%BH!0> `.8PQ?MkJRώ"TwCJ0#T{d?G#b Nte,2e~1uX^3 _jga<(M9m L1=8xB?E0Vw]w}U8I9Mq#,M NX9 ܥSq*,J.zEbgezMET^j4,m6挥A3 M)m6ڭj Vl>Aޕ',]i&$pW # VYʄpE[ >|~vg K8Him9l.ҽ"8JDŽ4=W%`=c ڽtx`I$`LC4zJe3mqK 1B wc-&1}foޙ/02f EZ2XwB/զ"S톔[<`M`MՈ%J&iaI"lP;Ai ݞĄډ+ Y_WPCC{@U#\9ȿ73r-->sMݴg$<[N/7J10&I, 6azس/sx#tvHkB(v͵|۲¥a`2Nj_D?@ FX.7l ,Mbdb@~X[T˗_ ozǻXZqՌc,Ui.޴\,۝r3ĨFPA@~sa?"Ft(@\WH^;}+FI8 QՂ&0~Bs 'D@:Dv3| yê`11IJjwI QQ<sJ7N]LpiM(#nJve\%nJ } YTC;@ 7:@~6$s?w'YlTęݒ ^(qI+7IjCP%=//O\RBA|\ i_CU @5BxEpC&P)ù),eƆ/ACT1sIZrE%pf1R!4X^J>W C}|!Mt/@H(T@yXiHftnZ4_X#;V+ T.زæŊѾQf&iH)C*nƮM˙#RI^ljcufҸ  Xzy0a#eH G<@9K-c=j",cZk?ö}{߻"$cG)i/@ 0,g'e2+qRi\Ãᡲ揃 2 њŅ.06f88!ᢃYҝ2j픏{ 2,,air"AHjSSUBl84]U0}T,VZAk t0F;:`@h@ϡaSC?pO>HE=&I2@R$:V7ڊ}|mz *1x>%_Š=*J,+Ytc^1l iא"Sz6xg-$&8_>Egb ;v<4au97A Cx¾ NҊnw'cW,EAY!0gs#ܭ6<]蝋7!t~7 Ie:. Rtu(@OqL9]5yp_5&E3eprڷ]6,%Z{lp5uzBdrzM۴LςlqhBŤaQLLɶ1ot!݆1kC{^'yl} \ˤ.jo~ֱ=ѡaْG2`砨\삯)8pe{NHXqJmAJk!v u/!gbgًϨʝwytZd,/̀+5%n_%Ws*|0 M% Y 6DْÐJܿU o#'^EB=9)n):&fPA*dL=pDJ\K_B799Ccޥ]|-aWzp_܁ɂcإKEP&\_G7>kiVـqq5UcYpʤ(ǏOm: 杈2{y_o.?%`Yu/[arv66uM l~:Eg:ݿP~Trے %s{͍& jJx -9-nwN!iPe*3!#y3⍊zy4Z06U }nm5߮)-`䋠\b%1!j+PgrǙI`L{luR½@PϋS.hl!J)-3o f '0mtedtYa DcN/Jri \ȱ&) :DۑJag-6 ?/} [ՐmQX , {Oe} Jۭ |72P0L vFRZ;|\(oŚBAAw[p r[LܭD5N{" ձ,$W|? bl%`iÂPGU*Kʤ֛v}*`E!N{>)˒Q 9 wl%~r\f3ױ߽efff۽)uIc,XTͦV;5c0i:P5CKX 4<: ams3 D&3*Qonȟ&9eM&RV*$q\ p*BՂlB9Ƅ7>V]kpV"2:f֪hIXB9+V2z WCǖf>,نlk8:~H%cr n v:=mrsژ7_WIy&ȖQҚO]]HVr|s~][{wͻ6uV{!<Anb.uҭfKDY&X_Fq]L~kunxJŸ;; 4cǜC4/v&B6 rzZet]ah7&ro%oV׻ӝw1Ӏsw;R|~Zޟ9Nsh\%lc> ӫ.^ l@KWd՝U;蕎0=v_Uaa%trC!gA#`\z/^yq(&װs;s`/Y?{[ [oA<8lA%k*93A:7{*BlMhq~+E͗=PsV\xڇhE àI,YBG-r|wl3e䢶4֍Lt b>ongxC٘AN#Rmds\#by|x~d71ȯT|C0qRl"jۥӭ {Sqqے '␖pps-e %-z |ߴDmcG;= C;ǟ4Dq>HRM 0a;Rv7B?Jضkٝ 텉j ~x_av)-\hJ XS b"H=Ok4e+,oy8Gمy\Ay!5jJMbML6@}$_717[qXj4#5,!7`:M~Ұ޽҉F BlFFY^O]lJs]~\ɍmlpa.8K0~otV=7r;:{p45ݣx.HNd_AgEHìO=w'_s͘`UxFVs_,J> V w3OY^B%{p3y ~-^0-P-y<* endstream endobj 12 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 13 0 obj << /Filter /FlateDecode /Length 608 >> stream xmO0~BЅ$M\vZ&B Z Ķs"mm0*A A ܀!>OP[s̚y>QF1&90Qcys2'BUhA>6>vFXY݁//A 7|G> qnj 7 _$x')9⯃gp 8\MI/|g>>Gd endstream endobj 3 0 obj << /First 62 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 838 >> stream xUn:߯]Hi#0ͭ vڠED,Ѡh$XEv_93s%Z L 3R pHb BD</.ߨg y.a ̉#)愭PBmn9qR[iCߩFMWCO21:[+ U1e5yZҠlАPrXQX`Gǎ˿oԍ_SpskGeRc jQOokN볓m,2-$~kW+;mJ:(` (,26@ޛ=E%2W^u1<Ĕ1JZ4.EŔ ,)QؒaM >ߩݎ0c, s\qNB'G)c_B኶tAݾ_c[3V?&֞6o`?w8Sm|'OqΏ20>JNlX` /4 Xx.-.]~7Y] endstream endobj 17 0 obj << /ID [ <357A1EF09416DEC30CF9B59D0B015CC2> <357A1EF09416DEC30CF9B59D0B015CC2> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 66 >> stream xȻ 0C+;?@ m<ǰ^q@z_K#bɲʉ}Êpr endstream endobj startxref 10204 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu-4.pdf0000644000175000017500000003134414411653175030120 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 403 >> stream xڝTN1+0$HtT hHAc߭r(PX3g;3];op?rC@@.FJeppbFu\ga *Τ3Y,^`|(MGT5SىOBEor~W5k*Ns@ &KP3a2̆7+[;õfFSy9}WϔfXEX)f56R0l3P[ZnDg)aܢ~ ~ؽa>>S0bOЊ8| 4Q`fx]z))sPr񻌣9~RcvbCNt`? endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-18T13:09:27+08:00foo2023-03-18T13:09:27+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:25339776-42c4-ba2c-3f1b-1fac29c95971uuid:211162e4-4d3f-a182-950d-ae271c9efc9c endstream endobj 12 0 obj << /Filter /FlateDecode /Length 1180 >> stream xeT]hU>w~?wfLMݨKƝMMiZSBiEMmk,-Aj͋OE > Q B EJ M,B}MkZ/s=ٽ;ߙ8*ԱɣeMQCikp vEgr\t6;<=~pq\{ݕЅE4mPEh讠]ؽ?0r떃_}IzM\ _a<~:9>̧wXM)p} &, xON {)؏%g)KznSleY'Nb{u{ml5֎ݝ\(KNnwϗ(#dxjě=!t7 ODw}G(߫U/ N,J I0C7q~E"=yp\6.λ  ‰cDA7+RLWc(mV ԝ?KzּyBF'y"0%}gI3 /M֏ CveN$#WᮄEYv 7t:egUB-?GF#8N hb FɲV3ܣANF o5mV-$m4]d e]nڞn(\9I%t*a X 7%dvЩ! 4c k7P黺n%umI"4MFMUKp!:(Z>ЧEu< EY0nZDHFTt5ה$a#'l',"UhЩ`, KxHؕgp)5]&i\t΁vڹpD3|4SH,D4& )iXĪe<(zeըҺj-L);-|VQ>#?)SrFŽi endstream endobj 13 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 14 0 obj << /Filter /FlateDecode /Length 397 >> stream xmRn0+rHPHiJ5`/#'9 ΃Hx*v_ޢ` G7|Osכk^eD/2X}#%>#u4ýTg ~&IB7JYn"qnjX44m,ufQ8^kN*aZ7BecQbn7&D-Jsm4T{J.U*h"pwB|{6HBHnc~Vq`Z`MgdS,iuP8V9 AFYР!`)X endstream endobj 18 0 obj << /Filter /FlateDecode /Length 5499 >> stream xڍY{Gy鞞Iw$Y-b[Fdv  )(RH '6S***ql?._N2Tzvg~0BF!Лn;yo 3&00ڀØ< ?Ϝ^?Bp>q=D=8w?p9Mgz,2ދPg|xauY#-ռZ{ =>yC's0 \d}|n94 zW kcpicct6~ڞG qᔑʖu;`< D!dO#D[0;㓠\Xo!~AHoopGRmga|!?B ?P0P|B50P Q ³Pi_!4F{?C LoYk5($/z%D[z۠zUܓV%'09dǰ?¾=M8۶/%SUiqR͋Skp0 z͢%9hx6vsL?{ BkҔ6f+K?̶gGm&nWE$YImGj&#İʑ[!'~B`.3/49MQ7ZN@Vw,δ+HGYcĘ˪ tc')ƪveN7 o 86;8Ә{wL;s%v$w،6K6^%R?cBMK+St$}8>)'0/GfC7PS@M׍ ;x~Ct hITv*1np9!Y|Ncܣcܤ2& "m3;3y\Fa]']PNŧm*RnqenH;ְtX4Y`v ueSTML"̐~Y ʨ>e63r--rMknyyYbou:AQzBqI*SX cIJ`/={.=o^x@-KCeSxƞ=1?GϣP2 A~Um4QҡT>?p^%y&4DFW F8R >X7ܐ4x/`L%"qz$~g@=n.Ck 0!{=m>drnhD*%u87Eذr_U87^yU gƄ7> O(++_SJaO56p;h:p/}LP-P+W3C>N=e1$>+H<7OҚ}G.Yʱw)VQ,௷P\͢:,R~ I'BZ/ygnFn"|+ǸL-B(dbmǎ';o&5a蓸v1ŢG˞/uDYUˑ'D0HNcsYV#'O7A`ћo7+\L]0PpoLƒ*1I& / e2}H'g}۵Am} c`rsYO[Z/a_iv9 rZ$cv0[Ee,ld&xbrnLaG^НX{ebLi 3c)Zwa1=ѡp~SQ7չE 18(|{vH:h JmAJ&A+ra󄺏Ơsqyt*^as`3'Q;&fXY5WjJ.a} \qʩAaZ?-돶Dٲ*PNߪ߬#}'ދEc![FZO3v;6 2.ܞ}8"h&ˀǧ&1LF;lXpiG@>dؕ^D)K?0U0:{ rMh&ԃe}i1m6u@KbsϢT&D9~fxj6Iށ谲י8/SVCOBPaN.ȬiS7 ЀOLܡ÷7pcuÏJn[ $4vnєvAr)T5ےvw|J2Zk?>i:"Wiifg ]:jw ;f?u[{:kV0%ԗnsj5mę`lHj]6šb)^ )Iq%ʔyAۖ|W? @sИښAAv Z~bЁ[۶o>mcfڜ]npUMϣX XO"𕘡X"Yt%˨gs2}$ I  N Mw >$uɘn[xOm]ۏ9mxޠ`b4^GkXó,oi]V#H{skܟJHT|¶(X@lxqԂīMQSIiyQ&-_l7 `v&Y@mRZ'B\(oźB'AH'!;+MG8SE-Y`WRVt=xīɪx>4QwB\S dzsaOAh3c8SO>iYC@[o&y0>; =BP%C~1 wn%~r\Vk:;;ܒź$%=8SLOkP4]J躁m?͆,ԡ]a7M*֣FhdVT1ԁo*ۧIu^Yӥ IKJC*AvKЙ3̂Jfly5̮[^Ie=#@/0/qq{[lXdVZlȳUfkA<Anb>uҭ%,HLA/On 58.՚&?7A%@.[3 @#MZDܚMyqd 9yvie9Hykz#[/zˡQI^pJ(oyOc4`Ki%C yŐ8rqɋw̖6PC1RvӨF ,R?m<d-Pj @ [HY6j84剹 y(XE!lwj N(SoB͜p^n4kۆ( ( [R{ǷS7&P֥ 5èw+n\҅2aے#a뙖fI s9 h s+7:P۲%[Z܏ﴓP*Ӵ}累<rxoΤ[]6tAA&~DW44#8-^ z=^NwbL'uHi?q<4`^n8ÇazM_[ڵAq- D}IVY^clU`3Mzqijyxr31p\ݙ{EE753Mj-|E䠮0 _oq{+*Bi@ޅ:mܦǾjx=;9/~*9:CVҔU:_E!s\CKl4JaPj `Pנ#V- 5>(cht)یDs.j+/Ca".(nɘY&[Ab`ձ=s#bD*lfqa?*X$! ?+9/͜V!cm/2v=,'Dc3뗽%6YNE IH][FCGux jK;v?i fBuHRM0a;<\`~~Jk⹝u텉~"6etp\x.r+ᵟ\//P2aUXm1/J>4ۃ[O9^F%8C{:/lu TrO<. endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 609 >> stream xmTM0+: ]lPx1&xjf2BuH>&㧷IL<{z9m;0rQ)۪o29>NhTwrh,DVT7oUvs9tnZk-0L#>f(^(4^։~I$t[˦-*NTUU%hGsuBD oD$/ J 1,N[uKBK2ԭm܍)\6Wu} PZeryyLN| C\3O*{zV岭OlN_, _v/8.udNLS=7+Fn9Phh5}DFA3DF~t"_# DN[4BA͉F8bXShA L" D ja&Ge y>1&s Q̌?㨓fB M.̌ ϵ֬GtK#? qB 2G#|jfB?2T=p/ 1 N I<{c8ᚐo}75Nz04w?q>GGd endstream endobj 4 0 obj << /First 94 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 937 >> stream xV[OF~ﯘbEГ8PԊq-%; q>TwfBd AC |x!İĉ0| ϋAD 9~.*g8#(AsH.c cG gDm̎.p/jrm_LWEho:/j[=43++n[D`i)1?.jtG%ֹӪYS }!TYk@)N,csj[%NA6*kGj,aa}B4h3+կZX)2hDڪLY\v%s(bP{ץa_ѻMik5u7$25Y񗁞DN9@F Exx_P w8>%9Ch_jﴼtkӿd{u`ogfEF-/-T*#].YkUQ?DjR GU=+.Tv_ޅ"hКO%j7-~KfDw[v_pMLD_L>C.. 6;@DY'*N1Ge~Lea6WݕNtP0!Lyp9aD,06@T=<<8J[5VvR pC%!&<"L͹7IqczzdkƼg,pk1wć8d5ُ{ǠňU;z ǵ ?sNu`1oO¡}+][2؂#S\Xg:~=E  endstream endobj 24 0 obj << /ID [ <365310169E3A2794E6F1929B2B1EA09B> <365310169E3A2794E6F1929B2B1EA09B> ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 81 >> stream xȹ @&V %ؗY`   mbOHoKfԃ; +5h9_[kb endstream endobj startxref 12716 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/04/style-file.png0000644000175000017500000034011214411653175030532 0ustar hillehillePNG  IHDR^zTXtRaw profile type exifxڥi\7lsYgxNv绬dRb'jT>_y].W'[8xxǧO6C>^N /8xWr?a/}](3-_NaeӯX]O'ؒ:A^/9c {wyN?ߞpJ!շV+F-6PÈH_Z⚈`*DK~ AzNXx`h,. &$"@B*bl! SRf1T ĭ9wh,fDJu"4V΅iCK)ҋQS͵Z[(ZvZ^zn}Xh֬spكƘqgq69*5vi=N8ɧzθM[nkw|WX/_t`5>m%(f,xSH記rb K%2Ȣ|B,7|*r[F)t2rECESZT>\Wܷ\ηY: @N:EjZ&o1[յsFsI|c:Q͖8C:fC_JL11Úܻkõbj% 2oq R|"EVߋ0CF`ٵ pc?=M> 7Jgm]<`QF򶔩">&H#P&*#o>E'tD# f4KucU 7p2ZX.s\ʵK}=Xqr9p6%OoWhƟK+TsN3B4wnvVoZ3A88a/} ɍ^j##:"Ec e*/ˎ|Ҭpw%7>b!XNLbPs'F пʆ )glJ>:6,0jfc@ Wͪ'ܫc`1f.qy I{la0kMm;e #\";A=gbxT¤X d"\X./$b\\H'byB̥j@ "ıY[U,/7{v-Ϟ{*]{ |uߊ'v$X0WR$;˪'²{z\]IBl(+QktBK ,d=J 5~}3hRJ j+A`[5 eIUN]hE"05^]*ߩM@HzdP|]A6tU͈ѯ75Q 3^@0)1wn5HI;Bo@ɋS'ª3 0\HڕG\v _[M$ I4Tv=nWh.BRQy=GQN{IXi`htX:mO9uHlsEhRw-2[B  _dA c&\82W -7ȝ3/Ar&ޝ '7`vNr! /JĥDAȤѻ\7[}eF";fJ-C,}Gs:b@) [m2H\KyM!Ȑۦ+T=0ĊKl%gs\pՅȕ *a$@[ E@fiPi$૚y{?Ǽ|9 ;ux{Ġm LQW3B/Admч@eu|Wihp`ALB=BxϷFmNr w|JvhDB|d,JB'~w P= Ee` n#!lbN3AssF*>|-^FXό^s&.ꐈ!-=d5nXn69\ 3fĜ_x0M\!n@Eu".Psb-&CL+,0a *m^Ɉm+l9 P+@pG\]J Orb0mYs#sA:wVM70{B+T i(TS)ȹ P45KǝM.;Sx@"G=A3JQSyRtjJ[v\bM{9]>=?y3(z=0hjP stu[2Gj|;pZ`K<D"qN8- (e(_$ p3HAw4)ّDULWBEY7CGfFܢZ?\-a$ka5#Pn-PN4eZ YM. d4Gx#*yyZ!vBu9e;eJ['vŇ ZgɫL V &{8be{Ĥ -`IOI+8VCTBazan l^ :B6{ہn\q)*ڇÛs!0{X|G}W=;2"鰹n/V|9.@S͊%ٹz2[ 4M~#]Ai<"acOE()3؜j09a)<"Ω?fp4"V*)SLu@HҎ*8#EFlF' 6J@6R@doNTǥh! S9 @>i;Y3Iظ^xVOR biC >- Ub8;2q)\<5$$C[ɹGR Qs H x!bZ k,B*{%/br<)A&0)tL4\(;I㳄ّ]$:ADQ"|9ADPfDN+ɔ?<[635L\+c_ *jR)̓M+)}z(_ΠʼnHa0K\̌?VУo+df(~atTaPXN0ǐ ?Hixp.Dg6 CZR3/H iG{ÈjȄZ: "a0 f!Ԏ ]R8r0Ija?$o!RM!Mr^[Jk-ȍD+M& 2 HSVqF x$R3(Q~6<3Lx= Dn 嘷ڕ L)ՉcJ3g46,N9L|&AJhFEfFPFdDiHy="wl !t;w߉J}HQ-MKeЎIxR ;N]ʅiAbNnÜ8"&Q-g ]{ TE8'c_"ăDPԫT ZE"V % vW0g8/MuϘ._gdpDXyE\~v~,IVH rȷzB3 koH!sxNR Ml  zQsah3?HIǬ3BJÐ3Y%y2EѢyHM3Ek3`?6tWD;sմP".8@ ?lu@@EHp,F&KQ+P }({r\bm8_rV+TfZ*(b?7X6;Isխ@2AMr֦?`4qfTɋ$e@H,TcGQhbQ*VTh]ikL}nm8x5&󳚠BשYZ(ڴØĕe3a'eW{/J޷47wե7&?aj]0LܱA7FBY(;@w_V.K@(P;,=jǀ$L5AY=$?_V˵ _HkWzP!P- Bnmeī[Ro˓%ebj,KԦL*@ _<6ScQx'.m$i{AjGlVQui;M ̰\K@j+hmг`zeS4Pi MU3ґT]>gvZ͢ > 0 6@y'.+F ?@id݊w5@QլX/e*+tT^ A^g*xM{jq[{*9*gyLLvi ᢖ>Xn`6rs( {xkkۆ#" e3Guݕ w x*JUoASyC j@pAm.P6Xl_P F%z̒R_,8֥>6PEc, 2!=rnrv(;JDm$9k[&q6ys0E+m7䴍UwS@=Q4Yl+d(3q-ݐM;'LzL.F*AJ4ن`o@Q _Ey%)BN?!&"@BAk&I=\S2 ?a<hcΉr#kW1=ZK6l?x'q+ DI#,74srL"K7>XyaTMWr.gq[N$3̚F4&*b^!]%"CAhkbීܷ We I*4O8` &p i=VGіP>HQHq,d)7A=[glIh! =m)=4&$"t}e"R2oQ{d׎-B _ _P!шy<-ʌy.lOg=B(Ddp>=[LH\IHg AWYj6 Gm ϰu=Vv51J{##zur5!ܸ!#={BCkAѧ]&`H1)ˣͳPuSWݐkXůMA.D H<c\) ꭩ5!6y(}ʪ0rGrkSmC{c{pRNm_{J H<#JJd hژHX}lArz= DI.H(vgiy#^.A,bljөJQSG{ś7oH w0bYp{`Z@up(lkrGlK+E܃A*^ 8FlS]0`,= „8l`?Ar8T-7+&F4VA[%A$ $~&U S&,zTTU0T98TTH?z%mClbZ`G0@ݞaDO-zJj0axfY,6on[1jbP{{R |{hK($> `CQ+v8@21z d7=elhec.@+Uc%tki_6)V$ӫ{I])/V`o 5XTi]6hOL5 !~=V-(#"Od˝CHr3t$xM(lC w_g N o^6Y#6?|-w.ORQY"TG|H-EC t@A yAO\}w]}^!7-(4&=M }ƛ &:'}Npd8zx_@f;st@,·WB7xkӍLoiCCPICC profilex}=H@_S"A+8NDE EjVL.& IZpc⬫ ~8)HK -b=8ǻ{wP-2j46JWы _f1'Iq_.³Zst>xMAv Tf>I4г \\74e ٔ]OSf34w tyq$ pp({Ż;{L>r|_ xiTXtXML:com.adobe.xmp 72bKGD pHYs  tIME%R IDATxwLSwŮz[F"HDBH_%zaE(E]bL?Lfwgf%;w0u\EDD/^… >}SNq]ڷoϚ5klqy6m2epI s='"ynzS8S <1'Oe˖ܸqHq裏^3~l 3c Xt)Æ `TT '''߿MfQQQ:u}ݹs'NNN|9aaaΝ;DEEq 4׳l2za5]˲w\/O:Çj%KIV&[**%6ҋ {G\Ax"CyUT7ްvÆ l۶rq1^&M?9}Yʕ+@9?|z-ʗ/oۢN:fذam۶fܸq3:u_ [zu>L>}Xxq%EQeߟ… _ `f딵4Ϟ=KHHj)TP)S3f +V? /Y2 [߳9+iC3uTFN^cɒ%Z ѣ3gNDA?8uO|َ#%%gToo\О™3g4I +vEFFK 4(ۢ#VZ+7o^G)Pi1},Kq\zjؠ, 6nD0uT2 VzZuU &d8zjP%j_Νvä( zf,E-{ϖ0fc)RRR̂&"Cޚ{z=1{F 9bر;.]̘1c_>!!J*pqnX/f„ 6]N5KCzuv{N> Z6Sqb'&&ǧ~cݻ[%KmQլYyiܸq4,!3ϙ3 fQhQ;3888X)))t:)TPh@ ‹.<2 k9/Z m>s_N6mر#3g4wÐl|Qk׮>qdfn^*TZO?777v Xaɞ&𢋌ć-aKt? Sg.((5kd8@ժU8rNҥK8qw} )_<7n4/)))F+FDDÝ%+K%%%1zhӧ ,+Oڵs,ϐ!Cܹ3UTɒprrdfTPTVݬ $&&7o^}c:o) z='O4[rB֭3gADxd"<2Y}ݮDxcL#111lٲ%y;v찺iIYk L >GGG731 Jfh$11H]JѐcQ`/P_~?/PT)ϟoWt7?,hT78q"򿦆Қajf),7ܹ3jJz(M$DlA \\\VfǑ#G>eʔdɒl߾@hhyD+^!\j:w{%>DxcLVk׮1|paGeǍg|u0̓X~}3gKFDD5upMM$;<|+W2c h $**/ҭ[7V\iu"I3f CFMvZ:C aܹl۶FzHo-gU\X1bJszG`` ?S|wԉӻwotZ3fL=Vz}. B$+9 EQΚ4ArG}İar%iHMVݒLM,bbbtݵkزe aaal߾l5(VG7 ,,;vZoիWcfcNcǎzK5jƝʔw4R=2+2,߭ rn@,Uzު$-A5axVEhL#@LR|MZږC Y̙3L2///<==0Mw*T_~9nyٻw Kz8qDʕ?gϞ888#~G~zoyf իWqqqaٙNOO ܹ3wfϞ=ϛ\άe7o4qwwGQFٳsՋVZY:pǏϰ pll1f'OΝ;Ҽ~zkA^V1^p'''WWWs`)Ba  V d۷ohѢg֛oc@{z È#hԨ>mڴ1?H7ovElٲl߾#G~znjC=9 fΆ;ȹs8qU`z8.XjbÖuJQ .ѣi׮fJf 80{a=zdpA 7 $%%qIK"E(Z(feZ -Yny"s\la0tǓ?cZJ*J"))ǏSjU=Jʕ3tNBBڵKUDD#Gdٓ3gb4 ÇlݺE2l0>6nHRRR6.{Vx Z͐!C:t([l!<< _W;,9{,eʔ1709+uaڵf*իW9{,ZNg^6111S c\jTB͚5s[llٲ-ZfoVZ -GߓL~6lHӦMsM-[3gΰtRVʈ#(RsI3R=zK:u*'%%… Ӷm[ uŇJgϞŅ+Vp,Y~nЧOFEBBӦMc 湘שS(]Y`XN4 .^H||>^D  (Bll,f˷H%BDxD 헩SkmbteT .ܹs֭*T0wuuEšRh۶-_%00w2`4iBdd$o67e˖@DEEb͟?w}n0arаgry5kPA=iժΝ#662,j%ariҤIēKn۶޽{gc9:^Ջ;w0j(eӻwoj5ժUlٲ@3gdDGGϼyw'˥b{ڵk СC,Z-.\A(XXLaXZu֭R],ڵk4o\D K(>5kƹs 'HzagArÇ'Ol_rJ_x7͛3f ʕ3\2;wn#FaÆQ`Aaz +W;w.s!::F8qb%&|kT*-[F-ؿ?bŊ;|iVt/!+rWQƍgm;wΰ ӧꫯ:A Ӧ&W ӳX`s uG(B>>"8qss| 8q ڪbቈ6?X޽QSZDj.]:̈́pwww Ƽyضmǎ3?lz=qqqY˻ロ\bEʤIZ*_~%mڴp]ѢEYf 7o4W+WLjeF?߶Y@||U3VRJ?>%K2{l)ax֭`02GզD&666K.IIIh4f:.H#vAr̝;w̟Z 0 6}РA.]???)Rq1n8 DFFr]#11NgU;j]vW_}Ef2X$,qpp{ԯ_~-Zdvh6 [a?n7vF`` *UYfԍ-E||| @h4Y>WuMzCզ&l_LDH!`z=Ir+f_GRXXFnz7Lniχu"<Atٲj=s-^|T*6mDjjh4ZeĮVSܶ < ˎs#:r"RZY~C8 γt0~`xr'Ü[2w]tFe[me9]AV,"w1@5N~۴.&Aq=)4hExkL|c:%@ag/ u~jt*#Xy*Z<Ԝ^w Z(Ǚ?rNyPJ1掚EBo^,^ΖgPkr4ҟ"f~3e3&x>Φpsu݊Q 4/3M\[yf7ok.\a4oY&i8p?|Ĭ#Nz![[vMٵ0XaZu~Y!.*-56=F)q THfUatTޔMa9TFs&I~v ~,άɭ%TnfUF*O=DN4{37_!֭:Gx^-w.cí7t.fTg6R m3Kml~ |oƔS[9=ߴjn32ˇ5q(|jj֬ҥK4j,:.]J=l.Y>ҷDAHhd|fDxy0;#6I~TjӟA4`mjqofN=pdRφYKy1ײ65ʻ@ت,u[1:|Ӽt I9Ī+~D5{ۡ,_^gqZ9Qsp! /cM)hћqHˁ[??0_0gJG_d0wf_Ow`u 꽙MWɳ,2&U;z[cQ~wMa?؀OycaҠhqLz5V($^]y76!=Wy$M@p(JȣC4H-s1" spiG[x"S[CZRM Z-L}^A!8<{`x._ȇұtR E$:LB$'60emJ, "Bgf2~=*'Mg~)_ 0q>w3YP巉t[]zjHޙ4b^ 7w}K)9=j:^b39^a(___u W/=0[ƒ?SB e:xa14ބhNyޚ&5pJ IDATSܕ,\ܟĝx= Ϝw\gfDπL.AxGz`MHdf^qqVKqPWέ9w8jOjҚw ~U: hPsjW/k'֤j3Q"g0\͞t^N*T^+[,u>V&.3hp+M<*{' wA*`α 2wD{,:#0,t^Ў4_-/Q7z:Z&bpzǗ_9G_;uIճvgز* ^:ҶcERyPXcYBêHd㌕ K&d.K5{Ӣ`nD 'sT8;;ARIxx)۔̬!65 E<;OY'-H *<=LY-<<#Zz= XcF)IV0&<$Ƨ8V|t4y V܄UZ㍎FUwƒQ%W('GRK`EzqRINT*dpv.Vs\!s:LVs>rX9dr `W3xyP{>C|ނ!<[qn`4 uCcO#"P{p|Ibmf.ì8=z@»H!VB”QGU 6g̵:?-J|v$w,E\vzxzCS11 _y5j ̛0yVՙLosx(lX EBS\uoMQɱ$!W6?D^7@s=.ۥ!yFh4s)Ǔ-7a):,ʖ,i+d9]AvG, / i:VW彎#:,R"%&씗BРsro 49jRkyU\2Eq:qT)W/]PըQ.n9E 8;DUeIؿ_kc؀%`%*La#>j_RTmghJWxk7;C3[G[UfrWԪ뾏LI}(p=3Ʊ<%}А@q@Vpsjv6rkƞk`20svoFޛ[XOCr%,21Wa49x`9AVÚ#"<AL /!ڒ6a"Aqۿ,EHvEL Ƽ#gѲ?My,aSHѦj5LQ\"5ncP;[{G歝w*hJ2ucĨVYyjgFrh>adkUǩGkZ$[mqCAvc"ᑣ َxxxH>r!Ym'! "sn%󌛛$&&f:\DnMq9 "8h <Ϙ&9 RRR0  j4 9Z5J;AA / |{AqaA!mC   O /bADx "VA!  SG )bA}tAlq A!ۈAEBy+"$?Nkvϟ;8JAAX<A\gowe=0捌rUq!Sy7q;\1G5U Ig1{iN1MnVzOr;=b8)+Ndc,چj4Ǚk4"xUwO]=Gfm0ӗSZH7KhV?*'=}D};ߡYKٯ3 ?^L rD *}7wD+:odT* UA}G|"bǞyxh~z6ES=>o>|Ab>7JCn%~Ji[Tã{ =Q]Gb(\Yh:6 yUwzp-Ә׻8ST_='r^ve^zuf-,sZ d:q"6W2eKWJ~GT*-n^n4WIV.٤)$&$e[ӡۀw7}#>"~D|[JQ,=PHqpNj„xf}Pg}lM>udőJ=FRlkIa҆ҳ+Շ7dzik#3wUBӷ{kPC^جA?2{f3{'3ܯ$pLo͢-8Τ#3(/gtHlL<^FD.nfƧ,-C:P?vei;g- ,<2vx# iswk9Q_L~9oE06y_?m?XJ#Xm^3[@:bFe]1z|%'ߍzPR7Jl#<+4>LO(V KUrK+)7ًt^OVCǿ{)gDNlZ3o)P_טZP.Y?X44wB y`+= `M~j5/1Lą|2][<ٙ܀T./iVOYd,b*P>STpyS7[`1וamn-6Er^-s|){af~Fn IJJ WxN?jyhog׼E{s~B)!*CFl=u5׋UVIqfeI\8zɯV;wPGgĴ3{5Jإ&+9 ~M'SLzOco\ɪQmn</&8~nO+^^"&#',|931 ILJ8;5 'Mol[aUbJG/F5inrG]r.v=!AmO9V7Gw|6f;ã.:'&)<3,Qy/u,h'ʽܯV>j1Ogx8n,K͏\/fܗg/= `bio>ێTOMTs='}%=U8`9g\>~Nj(\ys>"ꕂqY"7 ̩ 4-LEGJ wcxNVc`/*p,Veu׳x'l]>Pգ Z7J}7 ʻ?OwSyQN@Neq?+ i*lKz`ُFXSΧ)W5q>%ij|&' bG[lqc{=Z2YUԙ573}9ztJvͰ>BCcYř<>\?:(ȗrOP*3.Tvsr( jQ]/)Os|i;NcEOL|OPK_X}umKzN'gȯ\oLEp㽽ϓZSE h\h=N$Ҷ .A*W7͡;~`7[Qv-LSkydxȡ38!فI(8iM1ʹ?^Z cS酧ۍ۱M-O:>˫AΐQbkEOEp~|5욚rQ=v۫'({g'vtT0OR>UiJVBQ۹T0 luf* FݛKpxb f~μd_W1kWm):(^aբHVP8Wt/| ATF 1Q*JVXuKQm'9nnoHѸH96zN؇cP'>X~4\X~۰Q{S}7@tA&v-ߎKB^ڝze;uk#ܽ8ZNбCaX6-Lc~6y@5(WH.+UӔrY聨J<͚ه(fojXn?ԾM}|5t3&Ϲ v7Kers~BBBj888_Z6KѠhPbA4m7;@PU`XTf~*E옽Ku1z=ϷG?`` t)-\/Yx `Cȹǟ mg 7ն!RcF cQ;($U-;bAG[ 8:J :}IZ0m'"<A &UP'o.v3ocݝ wd1jjbqR=zYn%~Ji[Tã{ =QX1|z.fd\( \}!fB|f7[J\A?ҿ}7if-Jfѿ&Rul㝨A  dsiе"2 n$nB7/\n=N|^,ju|βxc>g!%-- ,R3x7̜D™e?M@JFnkA! GJMrx;/J6 ./.Kƨv»|KZO(78q#{&ѡ[wuvۻ4&)=[kѬo7lHӹEiG yof=ڽ0!-^Yy 8~X F*(5ڻ*Bӷ{kPC I8sɲ: GP}pEnǫȓ#cΌq~,Í3y?5Ʒ L&IEy8;%FbcqLg!PH3WWd@}w8Eۙg9bq\wvkuA:OJRض`w}ên%p1{fy; d(ʼFy'0MI W+_!^)eUuVߍ>~ԀNV֞p|}?e~&1$+-A  <18|L>GqrQNCŢ^o$+VI P1~G^T>x~>):6N2.o}Q0z>]10G8Gòp:n4 L7AԮ5/PSYqJABZyre80.ӴcBq;BӶ;*ŃM\o;bCٖWߍױrOS:5~=Bk}m'J-?NtUMN4珘g(-٬*pLϚ=:J %;fXT!Er䡂_۱kmcLG hKbOrW*$$$兣r]Rf8FIH f IDATc*EIiػg>{ L2*ŗmS>AxɐeAʕMkþ+M^ L#[NEC+f0utN[¾P즓IC^WRh@R9ѱ=4<݈E+ۮ)e-aGJԪǙ{h$&QC(ow^@SrF?RTT vFg*Ҝױ{{\pSB}ѽWo{ЖAՠрNIT5ë<$l[}ߔ:H \ jGb_JS @~6PTQ{IVBQ#V`A=|Ҽ?I6qTN5LP8Nu+yx9Tq]SQ% QkP ;9sH^k-' Uϓq|./ ccg5GyzR LksuJIݧLҸwJQ/Y&UȤ9RVXNJ?{ݫeH >hzyẘxa=Q[尷@uj+\jQnc.XlxMg<|JRiΟqnޜbs'aL9ŢoO#T}TU 6$jcǰ*INXW_ʮ(-:PKD9"d̰ jd|B V S\`//6p2)J=J[*1D&NvSP9tUq*S u]>T+!wy?vᣚɬ_2AƐpQX8s^XVv)E㡟Ne=:AFdru/L|{:Tǘn4tI;.dي)) |n oӧO֭[xzzKKKc߾}ԯ_?w``ǎ1~x,-6cǎxb\\ Qa{)\~sqQvÇ`ذaEQe9o`0`0m:.w8q6GE=6V'F,rP}Sm&}A~p#Esyͥ0,; GjTM~}^X\Zp=;F,wh4mjZJ-@,}Νcׯ_eԩ 0e˖=vΝ;̚5 6ԵUTaȐ! 222a„ 9ݻ*c{`}Nƭpv *%:<M@kEqUa4[l+`k-:Fbn':~Ü=ǧ˭]d ?b8_C)Ç=׻ܯ_?&MDΝwdӴiSJ,ykMYv-+V2&g{wA[2*>A~>}̞K֥C]5a| >,tnbf_%Fgt՜ߴV ebm_! Ƀptt|&LݻwiݺSǾKә0aju]dÇEd*R]szϨFGXQ;%Œ7/&XĈ({Ƌ>K &w>OONNUVKeGM/|)WM~=&--k֏bQ;@ .: Dc޽0wܖZ֮]K.]e;wrE;w.W^eӦMF[kx,t:/_͚5c֬YՋy!I0o`֬Y\]]Y~=:ur4nܘL˜ peCz=WޢERZLd֪4(Y yޤ MB0ݾa(i8 NXyѴ#-2%Ft,r;Nq3@`t fč\йԤ_xdzȷv0e~ se(Rmf=%dY9g4@OƂ=NޗA=96W&b͹N=WP Ƕ#ܧu\gX8]+9e;isUv=G`5zBrtT.;'Xᅢ(ܲZ^,n{ SIZs(1]# Gc똰1D4$鑯of1ޟՆp' d ,4O؃w>?\@7Z$: 3?h^_,--4* 1ILڒ$ƌ<)?-KR!< wc'ņ,ˤp B 899ammZ*^z%Iaņ^jjzt:h)1m ާmN}{?vxl~^ArR>vn9G!82yp"w)GcnEZzW`&pzzUtx]& qrUڝg%+[z4sB\!=逄sBxY'Ek8~8t{zॖ[\d G~9kr ?j:'*aV]Ń h.ߌjl mف5hV/E!97d\Zq3PzvxتEgiOa#KG/6D!cc҆!KS,4lK@eGU=י7byjV rofcICYSm*{~9]&Č?Y7ms[ זҿJ aJWG "$Eyfal\(hZbbb8w]tylK@ xGNzNGufMJA{V-?Of8_[X\ p=;F,wh4mjZJ-/^f0֭[tg *%:=hv`( k,jse,֜KFoF d't*$ZMکSYt:,|g0{*ҡ=OAC8ps C\[80놸fmƱIt·;R"#[4(#qi*+3f gbXY{HIuzCq' WXWII<]h%MH|J:t;2}~{+k<Ħ$iܿRTί^̚tR;`Njw"L|Vh,TL]ЗL{ فVѬ\mi Zj6le40bKg*اrf|vdT]ǮIRlĬ_p 肯M*~HLAa7 SSxwz~&f8^aڰyNLLu|hX5gG[Z;~:r J}EFk932Gw5*B۱?є-)F׆OOӈ7;f$SA*|5􊕬\4@*GƣHȖY[t𐸸Ll'^7 ϲ~*$iJjґKks\L2x(ޫg+tو+ ƪW9jm:, ;k9sL -٩.$qv<~d 36ƾ*RN-ePg\Z޻2#׿!uV/tb2z"ɩH%=xүlfЗwJe; Jk0eב[$xX(d6rS`u*F]Q[ҶX8ۗXz->- :-*n@]?r#.r4H9]ԢE=̼Q*WBAW"UJfչT,|2Aיl9NJNdnisUv=G`5zBrtT.?CN0m]# Gc}dO@Y#m;b0arGSzWVYF>mC~5@1,Ta1DD{ #'dNG:L@ٯ_+U:^9t:&S#r?BkϋcMf@~󷺑< IDATshه=QS+ԣMͅ|?u!a/H\oܖږ8;{dnI7@ k$BL-&(ު#-3g_ϷN:isX6'-v?㧫!44c8V)ː"U<EZV=;f747KvCqR peN~AF @gGT^7#\?eob|T7ws>#;?-{2+'Lg0VL9[qkM1se]XW!MmG9}6fnupPA\b/I!Bwq5SGi"< !ypNEèג\)W'%"7%QkYNyJ=Q2/w]U+Im<~ '8KbXJ`V#Æz{8|- aNߺ8v[ҵ P-׷!6-TY]E+c> ss3i+"KNhP8w]'i :m BZs?;`KQqWQQrbD';.-kŊQ[ҏ+(CtsOqEF6rk8{SFU:;F^+Eu\; u-PxfY㿠L% $#˅L<@I9' lR dzDx33hӻ!Jb?HOŎ屓@.SPjtH]q4E&:@ +. sh)I$^`јoCbd* Yck-.4f*ls\٠M n[J1 I2AL9!)EqɧQy7[5_9Mw%kj ]"XXcmT<"\qrΩWxgF,мՁQRxpxE֯@k>}s˦ڔZRP0by?"?*&6,1Wh1Zyj֧Ĵ-OxZ.9u!x烳ez!Jع%ܱ͋ $d]IZ/i $]V{L47%3oD(A9cWfb"%p|U/u1+E♾C'bϮ Gyh%3WD ~gaMܳUHiQnf%jQq+mRY%ɉ 'yTvHƎަ{ a5Uq*ST|{^U΄ese$ nygSɽð[.eXS{mewzdK5^]HHաҨ/Q!]xĉ@.QJVSX1n K(2׵)=3.VPHwdu TĺuxF$rC}J84OBJ`ii*I95zPxe|ޮ8-uڡ?2ʡ4âg0]݇>x񉠴2}P-=bTr|Jnvb[VJmvlk9$VUOJ(:t:TjT]|Cedәv;r?9Nh0%#w9bK®Le4+ײ 匝iYmzSG-iep^qgX]Y͙j7*JyvXS\یۢx(}^tؖ+9YsY {A˲ }֌ =M,˚ o:_9?|99ꓟhԓLܻ.Ce3\'{^OX7.->y |^!ʥxbKӢaDQ[ǣ @ b+i]X/t;O*Ev ELmZa7cu?OƇƽ;_; VmgxKzza Yt7 Yes`u: @̙l?ޯJf"OӬRб?Oc/jI?4^~d&{l[ʙ{8<:;+`Hݎ~d y;]lX+r{6Q-g$3kl'B  ll,XаVb޸ dX%Պqxm^U.LJ|Z<Vǒ}͖o}JXh&y4 fffFylSըjT*hxu@Fl j>mlLޫ$vPCOD<("&C x)Z %B 7^@D@ @ C @ _Dt@ @ BxL֩L5SI>ĬQK8* U8;[:6~4jEr7"eOt=3Wwd"hMfB596;MגM$>g`:||k~X{hudSF} a<蹾GzEq|{<'{!Ta;^~Õy2B+oNM#E<û fKhxM]DvϘMbzP5aݟ\XDcOy.C+Hԩngy$Ľk} X??e_Bf`ʺ#IllZܿ?OHT@ EBMz[<fȑu7ؾ};ݻwcǎm֭ۖ[ >/XǏѵáL=]+o? Xf1* ѭUi%P29~=H7$I:aTNŴ(gur93fqZ;fw-3PB 6 .zCR4m Bѱe8.l q6LŜ2Qh]Nm\˶SW?WWp$. YeG|?&qG 8ׄ_7=/$vۉU0ʟY?'򋽔u,=-KkƁl'w2Γihe:ү~4Lt%\gU̞?OhoudZ ?Y yI2ykΥY7ƫ0KbȡnsrrI5o]29z%-f|ˌ,t*$Z8J6~SfE=?dDJ.Ǩ̞|pvr>AG! 62q2]OAT=ѣJLm߸5w)7:4lݺ6m{`x(DGG3}tZjEfXv-\t 222ѣ۷o/І#GPLرX&jw*7mVrb?GjXJ ؙZw 瓎~ĭ[df4vĥprXF诧=ٺJݩ,#+vQƳk^e3oC\/oeu [PR8r>;h0F~ٗ^ٟS% xǏVhT N!al3utGjK6c@rneX5.R3$<ߒkͼ%, N¦0$e|V%+ndFdNF(\(zzQ0˟˾˜w6cFa23*K=r* Kޭؼf" VD{tdWLQOf,eڹ #b ?v 3{rOcEt!{HAqm +9$;M+ѻc*_gcwkQG` m_kiGgnt;!og}tZJzQ,]Krn7,7 Nקi>Z}7o&88777n߾ر/ҫW/V\IRԩS899í[8uT5biiN2e;v,zz;բ( ԭ[NGzz:椦r!~|,>5:-Z)[; bNpַ ahBxXXY\p exx 퐵:uAHy}쏻 (:cthMē6E򤍂d#:Wc%hjtFU,ީCv*k%=n#YIq#2w]7iJ8}#ZOtxu‹I=vT8XsL'5g\iBZ^ ^IXͿf67Fx\xGJFwҾ]^4 T׈P%? #&S%d4=3 $IT[e&PA/RR6*T* YQMؒ=~8Q5.߽E6lQfATdɑ1;^L#k,e%y\bKBy$=g29=#_aH&)OWgK-RR/1p-s7rOM05-5j5tPT)aؒPqW2 -[Hʆ %kɩ#]F-RIµb5B[J!ss}  WwG瑉-\dt'o]1TL rT\9 fС,^3gzj4 vʸq㈍Xb133CeP(‚ 8q"׮]Cen@Q;\x -Kp zzN^IHlS99] jZs@p#N[BjwzV-F܏z8RweqT$E\UjTE;Nq ]<7n[U׌(WP X 8 (l0q0c<$*IFs\rͲ4A#JVũy(5:$8~ "6iʻ!Jb?HOŎ屓7 zS`G~Sc2@mMnxP~zQ=W xЋ/#tp{/.Q2)L14&I5+nmBvE*Ջ۩5R,6qVI964:%--^d0j'hL{;fLeKKGXöbΞܭU֠(痱)xڪ dnkaE8q;zApp_ O3`*؅ ظq#}w-rX={>Յ+~OZQFOkc/xzR|9 .os-MCx7~b<࿍kaGC0+A4xoF o5H@uj+\jQnc.XlxMg<|JRiΟqnޜbs'M9ŢoO#T}TU`}-**{fpζv"/zNl|eg36m3 (kۓEi IDATѹU*jZ 0\[J6+6Ń+aV̢k_ufxINh8S2D5v-6m߫,'C1w%Q_B4 eXS{mewz;yeaȓ?8:ZmX~)HxT˧eF떓[ լ m.Wv`v;T1Չct.Kt/}5r5M.^6}d |@ya-R\35% ve"'}Fihp:hP+ӖBO]gW~p#Escͥ0,; j~k {fp|wgE:2k?L޳͗L\M<@DD33MmL@JJ\LOZseh_{{1|ٺ5~aX3MVMtGKO\{OK cBJuL˧#@<#UO}ȼ<Lfr;Ϣ W[ V06 ~/ mV Wm)Z3#`z-}ts9؇ kոITy%Z}/}xa2Y6x>dzj֬{4ҨY&>>>|н{,CRRSNe&ea giٲ%˜Yq#b>08Hv. dž:X42a f˚eҋT;Vp 3)op`GoTë{h㟴/}@i_FzQ5x_>hC&sTҒ;wk.6}~֭[j(Q]yprr޾M[@ xRпL(P!qyPtik9[as5q*nŴ@@ ^Tjժ1|pM_eL87`Z[[3ydn߾ҥKsNw,iڴicLyZ}RQʘe~I'Oƌ mYҜaRD X5}=w,'(;9dovTm!7?Ǩ`:Ng_urpڶlGP<#}M\AѢYqTMALSI=ڴ6b@ K 2|+o^z9tP_@-?}3] 7{u9}z iQՆQYL% &rt.o=|>$?vΆ$3Y8:18Ҹa- e&K I&gCFPS0v;IF=ƒ}X[z#^48s/(փ@߿ s_@ x -*ߍ.ؑ5k.q>Uz"aYڵ̳90YOu:N=-򖯚q)G> bɠϸyC*{Ĭ~Y*޻^ۏq>&eH8e5ZKy|GbB29P*0/jygԎd`⫢p;gbTd1ڐrn5?÷RUVɷk)PY?sw_nbI3zQ[,(qy/o[><ܱvgua”]x4%皴WݧU?ȖvGER+Xa,Ja#|w+֤pTP!`<>ȥ:d#eJe'MaKʜ=Ek\RϢ{!$lNVʵ+;n3dtzT޸]; il)[ ?Mɉ:]3TI9˂/2+a۲XJjj:#hQ K!ZgD"xm#17Nm 3`@:eqvs{V {|+M-_5HӞtj+\|JPQHfBߔ+V0qL*[O{ԮɲE?s̹8u7{"dw'Y2!Y6ǥhUuc/]|Ҫ5 Sjz?6emQj՚"gq P{) UGx.+ \RN2Cwe_/Llż!M1$gM.82q"[&v*JˏG_QPٹ>]@ߒ^a¤[$lV=@?j>LV8!A¥l94 >jԅOӲt3zneW|AIǽ(fzYYQŌoDݏ?}::M!UcWjU)UӧӨQ#7zhzꅇ3=rH|||ѣj:x=RY5s/!֋e*͗}=@"{2u ƴEɄg}c6} NQuz8:X湱S`~E6R4w^2d \.xju֥bŊٳo*VHrt666OիWtY#/RSSqrr"C|ʕPn]dYիkZYQ/n=Ev @o0^͆XOYJmM)JsLTBf,xhvoZJ٨ QˉN_ ^Ac_sƇ|Tei}5>c:Q$a\^ ^+QxqJ.ɓ'M6Zjgm;u");+++Fի 6ȟgemlSkstJے*nnR}:xexh$:z)Y]̙sy}̛{E!9:c+nOAW:7"2Sef x cQS?RDmV Wm)Z3#<7R fm?Bx<,X7)))̟?EQPeshܸ1spMƍVZwONjժ4i$m)<<(`S)rҪf@WcǬe46^iG|H†)FᡅL5T0GMZ7̕ Y{!;ajZh"`G=> -sM:P?L/'^2Bx<=4o777-iKLLӓhA₧',m6J,1 DEEaeeTL6Ж`ZGuko+AUoW  #7Cwg"WfU*cA*- 4/b݀^U]Q/f @ xޤw^Ea׮]$''?Idd$eʔ:v۶mԩS;;Nrr2qq;g}ڵkh4RX1ڶm,,_EBB|O2m=g|߼kƧZ RP9_%+?8(3@ x GGGu$7nёsҩSgٱcGwEQ6lo~Bxh4Ͽ&VC/U2<dz6ĞLs2a"UTR.e%<+sgJAš'@ eSV- }D#;+VחnݺNTTmڴyk+Ww}77K˗Hjj32#֌-}:.1<[H 2m]BR5#ы7H "%8C!\=4&R%h/۷ƯYN*-nUI8q 缛~b; ]o|'{Z%s {oO@W 777~WhذS/^YS-Zl4V[wǰ|,NQq'BN`B eD0+] yH6 [Qy5M%@ @Q>̙3ggҥ888k8q#aW=3Tx+L@ײӧ,jOXGeTb+a N>ҋP\잏ͼ z鬦9}zULjC(0_K"I Ⱦ8cn_|0 gI7 mY׀9C_F~$mO.}4b@NG߾})]4DӢE j׮͞={}abqT+@ x -*ߍ.(_< s2Ԯeˋ:lR&x|Pyb5~8V~ XY()\{~ 9мV S#G}Tz=Ĭzf|G{ Ν;Y. IDAT̯\رcyQfff,[U2w\>×2J ^s$ ׭(ծ4vxdCʾvk|#F\M 7Jyqt+{1W £lݺѣGөS'1c̜9 So<|\[Qҽ.e^%˲h=@LYhhGE{s?BYec&toY { m4ׯgWT,f)ޚP'Lrf,H P11;u>.-Ja@.[F<*M 쒎xF]jӿ_]3^+3*&ff]K)4-ː_ ssT,뷝C#Aйy3%w^13{ Ȇ <MVQ1Lǡ-%7a9]a5@ +#/N$ۚ=c>@O%"kOgk$ZӰ+ĩ}YՋ]SXkކ]2f%c!B7Ax$$$2yd5j… 駟8uxzzbiiFAet:z˗Jőe\HMM!V2S}GHٳćhի?~YIJJ̙3ܽ{Z-/^$heCFFAܸ^u|( ߴ=vac)J2gV/f6?Ý[c>:i鐗|i 9SG$]cqnO(V.^_hUqPwyJU=*waXUȱ؟:= :( IqbuXak=:V)[$Ŏ@ \LGyQ*JeCjȍPhS1Q:*>&x])̴efiP8jWQ:0c*B.gBuBJf$BJ6M @Oz#&"9y&L}{>,c<)\^<|pQ/rp!5nkaؾtGb_j22J | CS8;I!:7M4@ ȣ/v@2X0$ WB!v"j精3H [IJR*R3!*V% 飹cg%gs<2YPWy܇LJRPF2 9+ !oЃ*!W-`.Z49j+<~IT@ ^j %-\{bۿ]ȔJ9v}HX8r E+,hbH&b?WU x-'s+/'Q xn8e;zc9Ċ=xf=ߦ$[BiOuv :.>%(3 7L֓j;^8Dls.Nް;FhILDq)ZvkX!b}Vɿg#/MLW=Q gi>%u!D;cXjmظ!'p0! ':Y؜(cIfs}z1c#X+cԦ?ԗUp @670e2f)Zlô׹+=u8QaOΠNSHUm"a%~}! Oc,Y_qС|Z%`sHҙA|ŅO|IhlpOOd"c߳;jUk'1n!n$+w֞ ITQ~4O?)g\Q|]jeu^7ogʌe>o.Sv`rOWHJՒ%>!{}4ܪV3%՟A[7w"Qo$~_ۇeև[2Fh@7`0 "##iܬz2u ƴEɄgru*fz3 {W^Z%ֱTOH\*S x^܊5z+WFYGjj5*JxJ/rK,ъ qF׻tm`iߡ?՛!ÆS9 g3}A/rxv&^785:9#ʒ3P+;wL=OWI鸛^ z?F5 . 1=ZŒi-.gp'j505H+ #:}6FFұy>`n;sl-qG;,uZ_~{8bee}G>ؘec1Ը"|,G@ x8TwIri}[Gz4s#s=VH ZեK|e ;1^T5i\J:ݠWX;u 3Υ䅥($ݽ ųhi)ݱ!T Ш{UM8ʍj.' . C?f)5x'>1bEwNQnٚ~ y(&icYR&S{'&ahɂ ScUl^o>hMf66X(@u1M͕_+8E[%ZPit7/5d@Q$.aԤDS>963gI2+IЧ!!.=@uE%Ҹw3l]*BtJWĢ-LK.@Mx3+Od_wjq`.&=3*k(CYSTJf7>+~|Mu*>76iԀ4v/m[pRϫf|d9zD;=?q%Z](SQ c-e\ E52wvCR0. a P tW_vpi(=6dO,Lr%=+H>L;?łl]D*SQ0Р4.N)^uRYYTIi$%]\EGRxɑBTIxP"@A+8r96—@ ! ?-1K1Dx2`{Ibݛ2 xz>_Ĭv*,4Fz5,ot.Ɇ5"[M<߾ލԫ)Ӽ?4YDdǙ3]0fe@ WTxL44zsϛ2e ԭ[h4<== t|ٲe4iuyڣe~mv?qIJz }p5F~iK a$}żTjJeGV)?ϊd⮴QiF&svgº[]A-oe1eIֵuv-~t=Π?.p@1|2W3GkގÛS X*tԄ;A":`'ClOa^7}gNxm\ (<\’%KxݻSX1-Zv3f0c ʖ- @jj*?8h4rm07cܹٱr'ˍ˗/SdvQ4leU*:67/&X SrC>ӧy'=&Rz5&5z%;Z4u퉸 |09/#JQTE@N(8߆&nn0oL93,;e2w} X @ (0ZNk֭_|={ҥKԮ] *닅8VVV <kk']n3fȑ#Oշoߧ*[f0:]R{g$;6c~DQ J݅91'U(=+g2_{뉧F_7&|B OߦnV6w),s6riRJdI3"9sM|lC2"ܴ)ծi.$8Ӳuc~)aEHBafX,_壁\dwXIFb<>$l9l%DC,x bS>߆9G d N^Q@D@] "!! bbb(\pYb&L`Ȑ!XYYV)UsMtl޼Yf*`La0rF1kݻ5kCyѓ%l92 ~o5%S癅b\nUm6Kё>ҥK駟ѣ}p9ۗoDGGk׮*Tge ?2dYc4s|:DP r5DT*1]JjxeKdFр^o`g5 DFFҸYCѯ 9boܿ{~ʕ+F,hr|20TgHKK#::5k~l̰/knnnh gϞ,Zvǎ;{n־TSr8::(C )y&qq(J(Tiq}vؑ-!! T'Pdd$,h4rԩӯܹCΝ1b}-G @ xcӦM4nIhӦ &L`}CVcii#Fy͝;wHIIyb*T(k|&vvv^g&@ QPdYfɒ%̙3&MsyM`X[[Shh4>yV4hk Dxx8k@ @P0zqqq!,,,=O?ݻ `@eҲ>67"7n*Ub888W֯_Ohh(SN-J @ 5iUݻw`00x}6{'..@E6[[n1ymw!""Ν͛l߾](@   RƜ9s\rֶrQX|G͛URR?ݨIbN2XKNxd KpLI l!\3>Y~L (kI6VUl@jd6S9'Dne l9e J&<lťL >v&W%zو@ xF^zr++@(W^ EGniJ%anmmtBM`Y>KFqjfzrbˏcYd0dș(U IzhA3],@9fr`HHBs@ xCш*g2 (d)/y`fB#WNaO&xÚ0:7гy> U^>e#Wz.߯.ٍZ]Nn\_'oh@ , IDATihȆ <MVQ1Lǡ-wsP׋e5ZS`$s'_RĬ̡k8ӱeUh9~=bI5+Lք:ί jP+Ws.J4{/0BigÇ^%]hUz ֩ħ 0y]cck gEEʎmPKfBxEBhYUqzo.TvIkvuڄgwS~HvEֿ6(fe#A5@֠/-M]/=:V)[$Ŏ@ \LTPNq ʚJ}*nv:*&;A!<2BL[qQq›f3sM>4VE^µs\ӚAeO+aK[;zt ƬkB!"hG.']XZ+yF:\߾V *sʶaGa"^Y 8)F=rP;~Z')}nnD%QH|攒p\EG(u[M:SH:6q޿ױ>k}xU)٠w I7^=xc.'E,wqsXko8z #REB&M.%%^vwclv><;sy9#'}Aʃ,Xx^GF̭DQ;$p:.@֔Wc꘯/r4xҍ2M:ѧ?ɹ_s?uKsr}k2MX}-0P>}م2fL}jѮ i*ZOdX-:RV꯳b 4d ;kOeqv?6qUhZ2ۏ?Ya,^O>.ErX.}v>" VO~AtpQC~]lDtsJYhsp }SOMwk(MₕHT \wA 4w#>~Qo令M\Èt'ejхfѵD̃|t'3?E PAg&[y3aW)Go\k0_$Z ,s n}Dg2{?A:#8F;HP@L%<..ϐYyޡXY"mٗ-҃el7j9lj _2bWnߟFjXJS.TސFՏEҡ@;'Xӑ{ILHRaao2)O]%E,Өǧ|\}O8qIЁʶK78,(X4 z#>Pa]=RcRmdϐ+ٔzF\Y>ܙ.Pmgts>YGh0nm5oEqJeTkJJUWbe!%N/ڇ>X;j8ϱha-ayM2mT~rмeߐ944NJPi6 - SKOUwE%Pm |?O'HܟD (2l>D ~Y&'ߺ_KËB>J:er}! <'=9>1#?aG>%|аY~8=O.v􋋫~R(H~T*QxKG.bpfHMOгb~yt p'ZC^Y<}s~*v~ǹ$㹰~9[JĔSdmD>{jvjIE{ ;ƚ-Y0Zu*^Һ-߼&Gr/5ھKm.N}7KרJ\96W_Dv!ixzmo45{l(_,+Wy˾|5;3z" y7q2]!\&6f+˵&}8Dj6T7.Co<P,o+| 1x+ytpztۆ eĠx+Noet ;2zOZj]Q7˾RRKIa=`'AW1*V^93r}CMx ě[|^Q (n P[X2iixG, .ؓ#=>Hά͡Ӝ6=v{#vMcaH_XbbIև)5@ʻ6{{ hQ+Ţ@fu(jhgάdhPWэUO~$'J}~{H&GK68SS}JQs?z,Ek|4~؍DꈱI}̱H;p2cIpi8U LxȑǙm,WokyQf՛ġL6-7\Sjw)]y=*1!E+qaܯև~Vyŵcqm3_$''ۿEdެ"8|ɖSQJx(Wo^-+@WYRpw{-tt.T߃deYF paԪ\gu2r) f m:eh3kkrsJt֐3y\+s0:\pǯfg:OnLϬ5;+*v^wz+CZ.,Q{CMmyWvc4:(h()@d &DEqaV'-c$UPaU㻧K Re!dIBeeKԮ8T@*$n˞=?˥ȋU>AT2sWWl`)G"dd".:4 W[nu+Fw+`DL\3W/Fpɘ,YCddHNeK‡PXy,XXjqhaj<_ݎJ%Qƅ,JRjT};vޫ˥#bZ DG%':2kA@!LpvZgB͉8;j\i@e(<Ƭ=T.mQIvP(ZQ_ޣ(HHY~fbгg7XQYk=ˍU7@\H`>?Ehy{SYca9({H0=y_, bG)9$\JoZ}_)ۡdm3&j.4=%sQZy}<ٳgѣ+Wdʕ4i҄Kr%ZjҡC6oZm6x)ժU5Tkh4J8Q24ڟ&0yxFU Yo\EŪ@/L2ac6jSUJ6OAv\PG;Sfթm>XpB ɤ?`K&'z4NJ{lҰ},O/XzEl6p$O.og8I ' ͗I WY@ ۣݡR2v8+EJM%%Űhf:@*}ػ2ai2>TiٻZR޾0?N]ncO :x,y 琀Z&66pAԩCpp0ޙg`Ԯ]8 [[[ts+d!-2z{{ӬY3z=ؐɓ'~z$eqcǎkkk$IB$dY\>%K(L !u?]yz oɺ{8n:ecq~)mKkr_bt5z'~ѧdDn* 5#dMR XQ}'}31萀E4&R)쾦M)zuJ 7ZQGXӻaFfR t׊_<`KJY:O>*4lgL]}Z3m\C f)_nLN̸ͩ g*F&]Ve+-Ӛ5H!&>csլRkcY X]lV|=-*\þ'EmG߱"vrª1kbl~@;l2\rb'{.>Yslx"3gd׮]mۖS̎;Xvm4h)Vk))W#..3m4J,Iɒ%qVVVNų_Z5ZnMRRޜϏ⦂mmmٸq#C EEL,\Y(P@wN3X(Bps7o}|Z\%\ ?T H<$H;[a߾9woC{f2#%$Ib޽ 4֬YCJJ z*UЪU+/^LF"--$25SUգ]v94%\B!dT{.[= {w  }J~|Z#sk֬T`HAZݰa#F֭[ЧO.\gSSSMÔ#55qqi+/^xsRr(PMN0"&H (o/,qʓ!ȲLHHHfpyHHHEӧ+Vȴoߞ9s0cƌ9>^IIIӳgOn_@cBB$*kf6m ԩSɓ'n:zIJ"5xxRQ>#[Hc7_lNC*zUR'WytxD]cQIOРJDW~̘YHkїǦy-q5Jpf1682~y/)^Ҳ>|~(=KB+Nߵ_Sq}SHr(P@B:}i2/ٙ5kf+ܩDGG#2| nnn<|RJecȑ:6,,#Gk׮L+z-<+ڶmˍ7=)Wn#|8˗oɜ*+t:_5aaam6߉\]]}lW?}5Ycd}]f#VIIIf_D/Xa݋|{&:_کhHH(x; FVFѫN@ +"_#/kkk*Udt,[jժQjU @Ŋ_[v%8rGQ^y\\\KHHάl޽˅ ṙ/IwGA |q .h9!.)T ۭ*-sf0Z%Yj?N@tiWUKlRO^ޅuIp554Y ;Rόs L^?xOIy 6}LMbP]ʷ@+wwJD@ 0?ONǣGXr%+WѣG9g2n8 Ė-[L^'88*U`ii ,Y#իٶ"YBjj*feh KKlKxܩٴ$! k|L_'pcL2FY`oʝ:9piv裮}Q+)mc׌渘{|?wM'nyo^@W+pg/]W ; [>;x(P@^x:(Z(W\޽{у>}ömhܸ1+V`lqss֖ f͚eׯ_B׳~ .PvsvHjYxLrv=nBbnc!u[BɄ4wT*KRo<@- =wp= m/]0(.J" (P޿D;úu23]FHH7nhѢ-[tBxx8III8 IDATģXb]V\Zmm___6msc͛j^zeZ#)VX9ŋ'**nݺq-[eYv-(5 J7~ %l^hW@Q7-8H"1sʛ2 QJ$n'"TuZui Z*T*jH!B;?9m%ŒA}(s˕

 (P`H-Y+)K{ÔBТE j׮c9}ٸJ*eSNk2h\(߹s粹@ :4"_jUCtt4*U2V,B*4pA/G̓PK<9xȲד!]X $Wp}#uog|Cev)U9_<kod[a0 d%\ dyZtGn0V5km^Aprr5b|u>>>TT ? M(vg-$Oa_ھ\B8G Vΰu%-dt|Gi1TkDKo"uiS![FpK$q>*_1YցFr@d ,meqk_H8}TRY:uq2GY)F+Poj$fEJT~ :c+m"d@*V^/!I/b@$II> r"e%ɜ[@A~~[P*Dy;@pH9ak*v#?^x(P@d2gʘu="},IIbbxH&vfI W5.Y]@iBn#+0g0eB<(P?@2mDD1ܬ ñuQ%I82\^X:ݫY)CA>Z~F/(czhsn( IH~ȇ11&cP ;l*6Gf3NjxaHB6xR@is' ߉8c‘U (t:"/(I(% $LtZ2$ق3p(/Eʴ%⑳MϿ&o9t(3GRzȭ= t(k0jO8qwNqA2{1{@'cIFҦAGܹywVYݷN9!~ON.;iYl\KBD\t$ѤBkn:.SZ~,~Ћr+DytP;{i %M#29ڻ8&~Ǜx#Ll'O7S%^ް||l15ҕQB~mhW&"j J]]Ԩj':ը2 Qqh b \ i44MyYUo, aEgfl`n~f_z5Nʧ,&uK_&)su7an1ܜ#z&oݠI4Gr2Tѱ&K4sSNV(mc+tiZ9f'rN<`Lr$'(LK+-iiFZH^̿ aai-vv888H'' x`kTߘq eiD)4Q$K\/GbbUFL^XKORAJY;RWLRTq>y!!LRdvXQ[Zbmi}:kG #3:;ڙƆm((z-Z 8N͖:@&1$CԼq"j# Na Ȼ\Xo+O=G`Uort#!2#I8dexG{|E7Jnü3ԝ(o<_#=MXiiT4Op~3-qRˑ!n2MlAwg;S^ !kM %(J[5uG^{Y,7@d[O_B$=ȲڷStrzG&& ,Pޣ[R<3\tŒe9`xہZD 1LETj jC=' (*RHFT!GiOtA} wm j pW \;dv1I6*`rTOo?>M@~yW_YsVCsqC:2V.מҐqwdVcMAF2ڴnR 2mmHKb!fD0 ] !&}ʶ8[Z/K2q/LrTC`VCh>}+ze߿tmJƴ.gha,u5/uzDk./L}BI!pf-dUkw@` fEi5Hyҷw{)A9P.G~Ȟse&?\ kTtv 웆DLWU9~H)ߏhl1lښt. DZ^"1bM:vӳ\y163rJSVN廫aѱp ƴu%–C9p{[lQk,*#jZ!ţN?_%QY>j׾Pt},ޑ|NXUfͻz;s~'64Y3Yѩ5G TѨAR ݋'1?qbiOwԀB%h4&GFҨy_|4Jy=؋LGISU_œ߯a~"ӢxoٷJb׎mJlbL0r:=P,p)0/xia5 Grrtmzۻx%3#OHJ Ixv1^h+Bۡ3 9l\ e!شf}ϞlO/:`c1Q#b64}xKkFd(!ɗ)ct]ݛl>B9{pl #8~.5'mdB-[]bHR*CpEܡ9 ֈjm2E/cJPىߒA,͉DZPا>~tǘ0}P*H,zSC0A7e77pr1'DxlYF/M7!'W͟r(]F[g׆cy© z\*k{TYb5l@@^q{񥌿Uq* ň4 ŧ 慵CN!a(8a%{=qp8;Vw _ʹg+jT?nFKz̖ɻQըTp3GB0י;߬μk2[=0]jąU7ˀ.,Vӡ[=ZQxǛx.eSIl ȿ,mén9M3:N9[5!PuGJdpQ=:wGnݫԩ4jROppF1b ׋h2[ʶA7w+" 鿸YB<)+]UJ8 %SƷ U2>.x;ݪB,g @ji ◺onk2`B;J$R,r>W鳄5U1\=4cnp{3-7sұ6$yFU3H) lJ.nAZضK.}VnT9Dz"-bUwTh^|4g\Y685 Zǥc9|86kHkH~j@?*nNv8.&%֓J`+~q9kF&ohSH峑5Xټd3CN!sVYKOC,ߝyëI}dMYAw/3*=MfʾP.|9 Y0%nja1:c+}4nT> I: .qusQIhS䦓Qwb{%)W-8QE@ YNEl l)Y>5Z%~HA<~D*Ԣ!Jؽh*LZE*>:Te:2OyiO=6ì)it7X5TU^}@Z|!.?!ߟr#[;ɠ*fZVJxe0δlJ! AeɈV@"ץ,>Djˁ H#aX#N%(Lc[Qx{$8\«d t`6/.*:ЧMKNģ?Ǡՙ= *=:FYB-(UbZSXv:`t.qcy^p?P3GiW>anxz4ʗ@8Ŝ+kҚfE[ıDuy\Tu԰P"(g'9:KıG4g5`dڍ#z/ik bM3L&~)x# fm ʝ9ȽН1%GxʓxUSdYn.*] _= ^ўˡ;3JDW%+jMB9U2׾2}?jض2V|y9"AЬ,pѥszu§x [1` wز;B Y2Og9=5;bCͭ ]` :5oF\ L\GbznKXWkf= ]0eW@65?&LG8*⯜LǭT83sv `Ig.uX8"uRFr A0KuihNF`R}= ֚YDb#JDujj{q` Eb%ĺn'֝ӽ5_.eM dTf| ހ## XsZ)1 D$?s$㌯:gppG h$9; Xڨxf͢nhut4R,ll.C$SCLa0_0r݌Z,0~f=йOZ@r 6ՋLqL]IKˮئTM'[$_;|Yi\G>Np4ȮƝJMȝM:"#*(%DKNf/Q,e d-[ǠA[rJ &yN~ Ul>1kPmlL%2ȯė֏3H&0*˾0_Ҹ6VIFǡZ.%yZ"+N|0c;$xה(?$[ɨ7 |z~!Ps`skة)Q~fw(c4w2Yq:ųyFyu~1~781 dnG ;|ߖLYʊs9?e?2d,3bB -n}9k.s:w+IA5I?`hueVf0R:ET*T"(^d&-$ 8ER/Ms̝>m,!Q^=M.u:%>e:1*ͻKCmѡ>.GV.a򹚴ډrzF9UQ$dO2.(TYKCrL,X+qb"=#kBeNRNgj4OgQek 5^,a,j˱ҋ!Ea^5fLS޹k2}fuE`N6l⾕rg+kC]/{ݬ:ZNri_+O@T5ń-{  K z5&$_Ċ: <%&,h]0o~6N$G>㉕?Am]gR&9~h#'q]y4 :A#qݹԙR^Y<@&tD% T"\.:H逭 /0 R/** @쉯4SmL N5|};e@/ɸFhI!p K7{ہ0BhQ0^|0r2Nogql,ђUiS1%A*!}oa;UgȱGҕ[xSyx(CB>E.rŠF3B bQ]w*#tYξ \Vob |= T nZ`i! '=^ ]_IҞ_dͤB9 N؇oDϭkWbz;M+P`X. hVs$_ ]ži(sl,媅+2 H÷L: ೓ZuxFWL#Ʈwߎ\÷NǨcA(RQ;ւzlJYa6:{@  91f1Ia5:s;’ncxqy6~6n&3ZZU¸XT銏N'#ωD_|},.}{HIIETvE\F^iY#crry.X 'fnE\8j;OȿCrYt4ӳƧh!ZxpH .,K' g- V[5t+ΑRv!'e=r$ȩ) yׇPO^Yw(mzӱ(efXʎ2p* zҬ bO DbxSQ>r=vO tj ָ^I2O,_+{]L9a25^'Ε.j6ԝ#hWOa󑆍jm$I֜s'q w-Ѹ\O xҾʧ5Sf2xN%$kiԋ9uf/KVRJBSl>Iztw+}Zth,(fnk܋S  .DM->XOZNcf A:GKwBGxw*xW}{p2V[q_>E>ͳ+IM'\cՌ\5cJ^ޮ6c%IzR]eɟ$d+%|Cc.%_됏ijwUmXHw("K( ݊;[8 w'!N܏~IH 澮\I6;3+38G&:y)'B[d[޸]i1e9d}Tl٬[aepa̖) ǧ1>ɪp}<'C ߚ[ZgsxL~ȯNqCSL譛gIے)^XiL:͛A`Pߺ )N4۪ TFVZV#a_=ˤ=PaZ8kN~Wo#U}=dh2o5%@9:(G:M&L t/\Vk}1<{;C0D|Ti= Z`W]&1YQd͙e*841$%vo'CL5h%% L;ysyψ9@7lGõj hΈ)M вtx-d9K- 5C=%JV%&$7וee]璘{ǝ6gP!<meL|g%0 M4'}Oe2R|]tBrK YJt ,YS]F~߽|+VLXx!"jZm& i>3v^@קYY>Kf!6iJz%-޷4K Ȕ}"@F@ dx ɈIKl|$|@y! @ %SyOhg?@ IK =@ }R+@<"@ @#f<@ 1!@ @ Bx@ @ @@ @ @ @ !@ @ !<@ @ @@ @ C @ !@ @ !<@ @ @ @ @ C @ !|$ɮb4bvĿx/9eE'F S?[aZ@ Ǘ 3܎NYˁ'A 1DE|^!,|b~}nbo/1Cg6/Gf,ax(g}<}q/ؓQ#LN"wũ#Rȝ5kQqi.UӃu0g^|`n?4\mzY9*'RB3w.dԓ(89cP% -b Gחg_~"bd\{}@v6ߴěn_ ~aLCxݼl럱K`!>AhD~> IJR9JR$~WEH9;y?HdpNXRBWI `=(ӄs44HZT8b)A%kVnLTJUֶh2>w)•cBd$FkloVlƴ9)s 4yI-Lx^CfR}nH~`=6y[jMϒɚQ,?Kٰ|h1hS7"R՗(sL_P@)S|qs*E!K>X$^"fcmݿ)K~7k_Xb`yr1  6Sna8,u8f%PK _'êh6̋.zN) 9wyŐHGmaЭFa1[ EfxuM DsZC1{?3ZۻD.Jޚ6KdOp<պQo,ӕhxt~{}ɑ7 '5Zjy`xOö:y2|> xx4I:dZ)S0/ux'-]{(dGUGX2=(qrq?Yf Tm6$ԧP#lgMI!2[k_E'(:YSlx͋Or3bn#䫼ݹy8Ôҭi5MFL6`Fk^^XfF=z`MY=(-_dHSLKߐ37$-W y'E;ҵ}+2| ,%\ flY[|_[3ѹKn^% @xk<"caxsHzUvFy k.ﳤ?oGKbZ3#poϚ1=cxUCPjP`t6p?!wvI.tL*S;^] .΄qaD_=KBՙie2:3()"/D|]:h#KҪ/g֌c%'LO3W`Mތ9?\e:Pyu\pq.Ea,H P$ڍFg!QGٴ i} lQϹa,ĞeQ=Y4r3_Etk`} \E?_ RìIhѦuĻ!'wbgHOE4g^'6Нo;;kjvثШagN;1egV`ҸHA8{}9:w+ć@ }o7Uv2xi &`KMsa טWN,*۾Д#VTd s3;Ҍt'N*8 ,zWbƄMMIQ29<+Pwnq,d^g xOGEG_5\=|a{]dV^/:؟a}&N^n-E[by̛1CݿvϭbGϽK'ٚFGunl(U &1&~ U~/k$c$sC"ufηq&D;tθICgㄻ8ޖetuAIȡ8pǁبx4vVi;'!Y#ArM+n9]]$WkW.,(؉R.+:VP>͌TsIZƩ\gf-ťP'C=+X2|DZ`ɏZi/cUUOU 29&g3ʾ4) YWnCaB"{:1UT..uۻu3O-7Itj$*(?y } U@o/?1p:IWj黧)ʁ#oz[Bw@dY"&wft&ݸH':-K?s/%LD~(?Ϋę '(;h5vX7f4I$$0i1QA6`:I|HػXq9/;#ox*6Y9`:xǣo'֧q.֙ӭ?/[R]ҹK_# @AFQ;UH[oY=gbSx3 < Xb$H8K cƂsb0ji|ql.GY=6+nWjNߦxK N"Mi@ƥ6C'M S7nʸ>)-e: [>f`%Ub yE\%glXž1s0M Dª@una!9=݃-3ȣ:Q0LHfFw7w/eGFoѼ:8G<;t|k}<{+پ.(vZ.`7aUڌ_ًGg2ndmٕNdu6_v%׌ՙ* Ԋ]jFncvRL5y{:sUaGc-È@T+%Em. BlJsPE?WmI]q*V#~~aW@Ԫ̒wZe~\OTd/ój)HZͻ3 $DeΡ2}qvݷ 'w1nzA?armDXs0H; G"NE#(&X!)2S:xΠ`| xLD4ws IDAT% tZ3$LqfsR,|M i;0%w7Hk#+@ CD?1谝LAP+S]\ =WuҫHʭ< ,x\[5/nw8Z0(~yzln#؍b_e8Qk\'I*-3kfC1saLoc+ijŌPyȂ~o=X66s3r)VQ;,5]Y2KJb[Tޝs#zee.kшQYQ0(Vi>}}'ec iyn1=N>FO%Uo׆Mf?whQ[R¡Bu>hyh2w8 y@_/M~HL<{cѼ2Ŝn|^U[ E1KyBkV4Nءl~ip|K qWLɏs)^M˓M_‰è16p-v٫swWƫGFb0^G07ا6@ޞ3*J2DGAϢB䊫<ՈoM0M-hjAf7Y;Eϻ3-$(مmf2jd^x *9S]蹺j( e^7^dbsI<l߲}z)Ό;s<^;1A)DH_X~#wr6=%_,aY_Փ^?w9}7ѡEst0YJEMHP[a TÃ99+ SlR νB8"u,=jE-%y]1iW~5Gڻrɡ*F_G!,J*#nMV\NF,~cgJKj Rd89ol4=rVE oUnS~ /̖CZG!*2&l^#TCJیaJfLtO4`*[f4 =q`e{Ud D+:ylqss#Q;ѣ]MHf/~ٵ3 5L_֞-\qnDZX}cwR1_}bM ;ؙ :SGﬡĪe4;2sjKv xHeн?x5hc37@^c~`rB|CSZ]N}W5\K[Y60=exoC1Lj0⩏<2v K;&F&N뗖 nN~\)x=*G/ٞ3@ 02mpϾfvmo6+YҤ|15*h޾)< a{e-?E\RtԽ{\8sԮ8 _(1ff4Sd̏'GGh֢b/S\YտՉ>qT ψXj-QI@ wP"@ Bx@ !<@ @@ @ @ @ C @ >r\FQ dD/|.cL$1_z=}Ĕ eY"BxpymG 8W;*cE%*t{#3|~eޜ5|z/=$/i>7]#wLbŕh__X`&=#e qDN¿P=WcH~Ko7(ͥd0^>x3&o1("y~ UPB3PN^Ȁra6\۶eBn/;Fft fn 1W(boa) `R^gP6?CxAqJ纼iKHAZks3i6 2Ws/H8<8 com%ˇ-Ha@iD^giK yԝ}5l c1t#r-&4 զ41x_zkE^(c8qƒLz.Ik;僉gɃ_d?Klzrj\Tɗ+w)%?ZoԬ 0lM҆^KQD'`d]MEWпU4)Б Xv䷈ y=N~ƭh69=$(R!.4DۜdҠ,%hckJ@ =xaov`%2lӒa J#'2`7Tcj{(9~1 Į,a)4IO!2Jb[ldj k`ZoX_\g3Xwl%;٥ aukp5imȏ]+b/e|o˟<àqiJ(N ()-\WLxOέZ rc1wZ .LENY\vZŀ-.xy5M'}kr0b z.e@ ;1kITLk~%h5י 86jJYkvyMZуc2tb}>ך_cyRuuCv+QKɄVcք S"!g.*gJtk>`݈$FqgI#[=ZQ51R2]G'2hfu̟f't2OG 'Dxuh u Gaƫ; d$ =9$5$X&WɤQD%y儢'&Zf˨ Оd_wM`2|g.ox̲^b#.tQN%ܝcŒN ez9p??J ?+ʆs)roC0oB|+ Y1s;?gT5.ǟC@ ߤs)>oݼ*=Ǐ SyX5Ssׇ$s7cꔖ~= o|[=95ex IJX['KB!a5edT+LQ1NRKW*iɂ9;A6N$gyBF8sAI.v0lLVZhb0Z82cidFkJ .W捪*" u⺴ߝ z9#Z@zIp/CX =*K'ھ}>4+%: Y2OݰY{؎V=g1#r7+^L8*܏ X8%=daȯ+UI%زucK7yFĝF*\emS8XhK#&/"96dd7\JR[ )5x:+]<2EaBCxڼ$ndA ?:CrL(JNO^œx-Qo]zwD lYGA,o+a0.W@\l,'R${ y5g2.%Džl|*ʵ?5wq|_]b٤<:Kb]7Fy1E= a[1mv4GWmEߑ_ eU?,s3pRc8%2HQ%ׇI7CyP?9 !׃=2U>r)VCG91WT J :H"۳fL5BveX7G2gՐ#=*~;*6 6UuTQ4LN*G&1JȝlNq'1& 1) 9(pJ8tX|P9r;_wX4fT5Hloʸ}*\^QH~# M&nl'D:'eRI] ҡ D|n єι߳ /2i{-LݛY 9>W)NJ[Xzt?NպЯ'nSyE yRj ^Hkw$K;0q~Bjk҈Gcѣ7yĪ}w餤6'k<#~ܸh.O w.\@er!]ĔK1i\;y W3lp]\2l2/e)~l q,,*k x%=̚zVgw Va3O€{md{kݦ'{d#0wϔCE&O>nՎ"dR$}1mFp\B7]o6e_V@!:2QxInhwxŪ=b"E‰OcW8 U:kg$ڡq 02WbX r}_2N*Ky jL yyx;r koGSCtQ~0jjB?~&q.~;u8 OV/#vz28_S= k30|k_ՠ:NYɦyD6B\@(]$rz :a+mЂFyS7k+Q qA/NdGVC(`3V!UHbZ0lTW^˛ bVb+ksA'\V:pl(ȀWPf/ @V6 ćx[&-뤽pc=_ V^pI4SQeBwJe6*Ѩa*qaOԓH.e'=S 3Xp#?g3qwYq?ص:Ƥ.T2qʹ cƴ/1 D -`U<ż*PyDn[I. ]UsLV{QiI Mry FjL9jvgW)g WV1TaL9*I_5T͔yTBٿғۭ63Z5wLyf1V6T93W4ww8 e&w+ ̈=7Ϟ1%N*8 ,zWbƄMMZH[`CҶED(܏?0W;wK.}2np>!<yII|޽O)e춍yR "ȁٺy SOTrNWW2I9kBTC:BEU/1;cNl>J !\6m5d|k1`֔}5bSxmyYNcz=gϨqoҙk1Ik57Kjc;3I6vepZS9%=/ R!Ixr.7.2lsPGMŀ hw+ZPg¹j! `aKXªR ,5kϙkg46Nɝm IDAT{I( $ֶX[ESLs~+{SD֐S9<'*ӝk'=DVL,`DT8[,ZY ,ҳ$?X='.:ao(bӬu)EE; d&}P4-E۰sz~>n+Q\]c]Y䕅㦳q:~%Kg:[ %+`yFjoľ24fҠo~/,L;\B"rڢ #ΔHmY=dq5K`'+N_#,MFiBi׸d&CS \_b=DTE]# jG1p@\L]_V r9Vx?#/LF±N_\67|QNA@6~F{@WY@ C|O\VrȪ%fARSx,A](~Pu rէ)=i@ =YFqI+noeօ U>k_c(]JzӁ 娓#f3xAGܥXn:>TOGegO׮\M?w$&3i xJؙ |.h6d>ʬECGo8 q@cLxƀ[m  ӍZ_g@jЄ{p|;N)49w:5OT=&ɝ_3Li#%bԥQadAau8iɈដ_ 8,]gѲ[0=ȱo3H*,m̛uh,jԶv۫RĻ{bcO2zn<gw$gգ7I97q~S~ DG DѼAc7}z7:euo ;sJdm2>4Gu}P>z~K٬zRqj/1tlfN|}ژ>ǒuO^ UZ ڊ< K_3rɆ"uҡC<pK@F7U@ 3n^DK_C-qW&Hrb&d#zIZ;HU#nMj:1^e ]ͬf8gJc7lUػ2fzB`>Ɔ[~ɬS RW1_|h>of]C}in۔M0GnYZ׭Vw&d"ڃy3L~8ͦWHw)JSB&He"HW(W=tFzOG$! cO/s)VX:q/᫷_3[96gF8K\_FvຍfY:2wh, \ ٶ6%{jp7/|cܿHD?Oa*щ~|Ъ]fV&~xKjkjU ,\NcW^ZG3H@Q;?_>V=<$|OƯLMLê>:;_@㾭rSy_wՓƪ!ǹSYkǬEҏf/-e+O"9( Ϻ3+O\*܊cQ %|ߴ| 9(DB]d˄+BiCQnL%0UଛˇZim1-ŀz['`^-_jAfoLG@Z[63z1̵z3gut#55 ubы̝y>ql;hij=3.t8g?BɣLZ@p~[3vHm_iP`4gˬaѻ,Yߙ]&\5go7yfP~]K0!͍-{xDzQd냫:O7j`4ZЦkР%kk'2Wǵa<_gUp5SzeșTEde~+1;ob:ԬSw–)K˩yWUI}HGV^ĶAh nuaj]Py){DqseFbL&{ICKϿv`diyOd:ʹN07% ,=2[H]3o& wnGIj !1lv֨;izl:Z!xD>a?it(\ūV x̚Pi[_4IhP2Te=fzsizbNA%bLFn긊_J^o5ֶ6xLbU%e2?<;S7ofǔm햁t8Pz5*PXAza} ghmrh9t{t36_qF)` GFLntl 0_IQ ɤ*[̤2i;~S"QL$ħz.`Yqxs' cb(k9y#rעȅ4/`*.L  Fl*|IaJ[*wIZ"La>n֦"%Bp݋ףjt6ܨF5E;k1:N-S^|2t*BWs%MxfQUafì|j_>Y.1pݼr6NYǭX h[upˬ> ["3}?٠5ٔ6Ts3Ө2"0Zcg5&*_1g&$ZO͘bH<ܛ6)DD)Cr>RBo6Ƌ|9 b~pRx.ήxuNLQPk ڷ]sMJatI8~y~d;L|pJńZ53G}CM|iBBM,I)^v3fCk%++;( YN.K}VA~f/|o^v_5!Ǿ9K0j鶌+-.#&x5`VX#}rMhѰ[ݗ/ ='Ҍç^prydk|I9F&3fU`h/2h/|?O#6Ƅ=V99 =6Q>sW3^\LUYܯViqZp}&Zl-Ïr luU|>_`4aR-DŽ偐pe}_U]߂[Z*Z6Cdy(YɘB gf6?k( !+cIEH=?Hd4)_Yhxߎu:ِ撚"B!BHB!BHB!B B!B B!B B!B!CULMexQ͘':~J%)$KQd ;,&_:aL3dJGlNB!CpOI|\C5,>k1LKr",󠁬}hɱam<~րJ;Ϸs8ϚNIxI`JlQ`/{ŭK6FMEьpIC7b6a0Y<腧I:\]ڋk25H^՗n??oW$=LKҫH5Hlts3Ns~vM$^}/nX9q)XyÐiӴ\Someɖ󫆱a@W\~R1C<%Gi ]w ?ˇbx 농es?Mq* ۏv弭'PxW6]MOTۮI_З{yQiZǵ f~n!ˏquYOA#o7~I=.=oLmWuY՝U7ucɓ:RYh˜aH}:>O"(-a>w ԙ8{WӽEa8uު5D董H9[{d?ΑC)iMtCƈBgÚa-%x5^|k(_Y0,}yˆX+3f@j4]cy&4Ŗ?K(>\n9,Έ*\};x2nε|9l<$n=NNL[q*gV/f˩|e1mSqlUG}9SrO'HjX[[CB(){;;pr%-84HoTG3iXG`׈Δ)oŷ[7S|swț]bS2$;a0[ (9߱:rFxNs zMu|.rr\ϲ<$35ma“bQq`0Đ8k,EaO#w|#&9Ē%'FŃVYӫX:g ;6n S=y4=xaڌK=Qp$LM-yV!_8zSxBBU~ϋqs~bS1>[bӔBA:4t=dbӬp3NN6(hpk8eO3a}`R &x*)9,wU~:n*UP~;l0cO7oZ2B{m F㫕c̅E]sy6'bt!Mǣ cƸ*o6?ѩ|L>$k"";t,PrH8ߣn' ٖqV˨ͷX5p&ii6\eBb N\ʅnەBюĆx{ϘJgIȞH]:Fbdt̺͡7>{)ϾN݉yь9]'qBkX_/l:AUH;#X.;tuw0dtYs\6BWK}^Ms e`f%m}u'mCF.ɑٿbTďnq95g AvXk\o]v3 S7MNa4nSn6p\'*&ann_V4R\Eե_ĵ?˃wT< F{ (%\XO'ŗ£kf-g^KO4<1a.4(YmڌE+lH$.Wof FcٖkØT,ǞW>hqQ?-K(u]_JDGbm;z]ѢG1uH q4ՓjN &2fC _W[[Ӗ6o~i?DO^JıE %=СdI ;k !/긒p1s- @̣8vC_*=no; ;Q F=PK&o,6-ˆԙ#_xn!_ɷm>_LjM25- P1qkʴrܱ)[>ާ* {'-&U v8ɓrP7V[ެ~ {F.F]wYwuu6Z*0 s@oHuK؛8+  `Ns pd(OV 9M&]O6ijA!+͸:u[ |1]JLo1c uZJ+9mss*mb1aÔݵZFVB߲~3cɠ3f[@V%0QŹe.s,zt=}|Mn1#ŗ[ [%M[at8YoW Ӷi9r9ےz Ky"x8;1PthKn L: wjIגo[?p*!%gtڳ,xb%,}7nPi֬^Xrݪ5 \N!>v7͏ޡDȂ6Y'HMVJ+;')爻O0k/ q-.01g~RRRIM3r`H㧵[P91zZO~F|-4kCE1@{#keꊺIJY) ><ݿ?'9̀,G/s•('dw~}go\-=a<ɔ/`jpm4.? ۙ,ތ9 (T:YיL_Cϱj\ᛏ\|&Vx"PfyĤ f8_F3kh+q@ӷbESYFwfޔyۇ_UA)aveA UMC=wBcH /Iq#c @q\:cr\\MVkj/oÔ]Wo @(.lΓBkb q2f0C 㓘DJ\DEtd^ cĤ:7pcFrd:b>OBR v SLTiފ&?r~ڵ)0]Y˭ iӦ$:HHTp퍝v"_ͭYkxTt~6˴,='x|:PJnWhDSDyB~ `+7t@%>|βnngI*M@ /)$z5?SOTPulFo_v&x*o! :c'F_QAX$>0ZкSo"ܣ0^]/R;gQR F pg9ӔܲI|݂m6LQlGg6glbF0.9Kh+Ƶ+&]/ T 7gjT~ 5~zY[{P@~4iN<_ ?4'(k\+ς QDx?.U3"LyMY)\Žn= :81:xt9=b,I°fvM(YOT*dydž Ņ8̏tGw {ą6Kt>@`C:N^#h]$٣K~/GB$T6x-L&nfܜR"ߦ~3q,<Elh\>ix^ޮUkDlЅC1#aIX3mo0?f gd9[_ <QNlÍXԵ.40xtx Ӗݤt44Ttk3̡AJ_ yQj_ 1LBH~Tpq=)ĤF_q57&\0rKf ᑑ/Fyأw'OnR3~gPx/| SgRhv͍ZIֵ8qMtH8јb f)!H:n˺vXĢ$++Zо}ahf4L=wqʱgQ=NUN' WKP_T21w,.zkc|)~>!N0'|1C9`kT\I%pxmMVO DR9_ȵ;t{d"9ߧ7kwbWW>6rVעkCIʦ_캷eҴ w}nOB)aK֬kGqyM (akOՓ8|ƁMCє~TIq?<EFQ lcQΧEmW[{J> E ť3?nyMhEXxMG]8 2`2-_8WaؤZbɬPU;0fxe1k&:m bL[xU.+l$Lw|hRZKl=XDku*ygnʐj7K~U!C@\~LMY @~3jRDA3\ShS&}{XINŠpRp-W 簇EU}wpՅ%w#N68@q] \x۩ I3Za˂KJ$Io-@GbL5T#7qt6,֭} @C*Nͺ\|jhAp VgM-\>yy`~E|;~9m 1W]gbr( g{h}km!3ĴL\yH`}Xxn^'l, XkhpvXKxS_F6~VH_ .,Q9z F7e^BL>>sS ,!`e, .;ʢA~+EJOAIQ҃Ϗ;q#cye@mhui_u2IE>ߐ+/[a@EL178y+@ w-13dSGLJA5榨mzbӿ{*/fU+FK.[( F3.i^5IY=nfJBؼ"4G3H@Q;hή_ɯwݾ#h4Z emg - f _Tj` rkۥxzzP Lz@/hBdlzUΰX0E\ak}ViaI[@՘)pZ%d*ɧ:X6k(a*]eZٺK?\ kbiL mgԫFT偌Wu1;òYyěj ,۟L.)ea_Oxb<܂jIƎyl~ѯqn4,ZEOf=0<3cE8 F&*p((po ֶdر9cN`YR3̏NKNG;v*6cѲ u0b8:=*1.^)uDO3X|DDqfw%8*]8{ĖN_bߔ$5Cx&aٻ>e/]oBFf[Ye`:?eW0_˄ (MF}0vuxrJŢyQ.3b8o4D7ȃqpW'L"FfϮމ=,ׯSnAtFzqV}1>xvM8|[%u_縊[QPdl[zBB6/kW9VZOZӱ]LTZv1igvڼ4>f7-> aG` HG&{L8Nq`Lis,w?wKp> U';6tڌXPD`Vm[0d9华5xOBHc8Qh_Xpq|׉<6űS2g}LrCZ>i?춝5N6|G9Z[[Y|&7=>eѺV&LC!/>>%F ^ɣ#UD5S+{>.(q|:Si!G\@,o''/8p]yl?L4z7?%;D&T_͜oXH 1}'󓴘w%B=r=ie)~qp5}ڿG1us8Пug2c^yQw (e}U#s{4+dYiD{t᷉<]SA!{2m>dĀ p u5fu?ȗm I)`m&csVOj V[Nג:09~Ts?lYb.Az<ΝZN b׷Hk&B0n!CNoS\ʗN-(]}ZC,XN:lqZnٖ/mC* Eqt`]=[`rdt@R2̗3Vs;w'zʳd{Wd\hm̘1h֓W9eh4϶ǩ`-.C6(@]b.LFoVޥ`,C Cy'XAܸiM:(sJZP)lǩ^~Ҹsd'~[&hrV,hlvaVpS*oI#4 }qSߣ٭,[z8 ?mXk0dzP+K,l9j&hXݚ$'xeq6KuPIz6b`7[AFT>p'džDVFo@[JVl¾J/zeۿ2`ԉ&$#־4ikυٳyQBɟW@-D:[H4*25}e1߽%mQҐ&rxNO.=?fkf{-l zSrɒpMFFՎħA Sz%5/p7=6M9K5sRʒMy]NZ!_~令J1`Fd~VU9l6gy:u% ;=}0Ϯf˕r-ߧ*DT偐pe}_UV- 2xzKUI`ka! VTb_УbQSa 'ɓ\VJ1[ sӠfo!h؏`f~'aO~7LO.Y-d kμSFj1ah2ݕɃk1&'b0[HI.FNe[8X|)t>^F>_j,[G"<rROdozB+.F]&MIm??|o/~C'!#!xsu\5k.bplu㓡Vf缎̩$t8޼~3eB@>Y:߰[UUQrܖ\яhjςǟ'8K߿xUj<4M(OEg!g#wCUd& Xt?"5 h4U$xKZ ~ AcGب"B!BB!BB!BHB!BHB!BHB!B B!B B!B!C!B!C!BN_,_*@ E!BkH?:B!)tHB!79dB!!B!M/!Vj4ge 2H !B [[Y|&7ͪƳfiRB!6^6J u2ՋB!9-IiK $B!!B!!B!!B!!B!!B!!B!<B!<B!BB!BB!BB!BHB!BHB!BHB!B B!B B!B!C!B!C!B!C!B!$x!B!$x!B!$x!B!!B!!B!!B!!B!!B!<B!<B!<B!BB!BB!BHB!BHB!BHB!B kwo.L9'o>!B!Cbh6a2[o`{B!UUU=O&󳪪X,ϙf9ԩS-QO Z!xM_{TZVh<Ey(Jz(۳%=B!B B!B B!B!C!B!C!B!C!B!s:)O~ ;B!!9!BIZ]̢(B!W݀p*llifeB!Bx}MQ׶+$RB!'9㟏8kH3?qnqJڣl"Ӱhq)!ZIfAIDATy4UBΰ}aqiT%t?߮NQݺfTV}4AM  'ʋ}G]QC۶;Mb8ΊW(KUL!BHM8!#s~~Jvep]/d(*V uS7jtA}l[sC ӃC^C.ݩ nhݶ dM^~~4Mگk8VN* +l\TSO%`v uIcPh=B! V-RB!x h&_j A5y_i igT9)jCx|p3GtWi !B9._EKޚ(p{` &QxʏބрWqqCU0'gxJ$e 䠣@ >hT3&9%[sٱ5 [dfkΣ>;I@$lVQTTqMyE=0n,n : 0`dQAEaa" d]5Hb!2 tsNj]OU{:MhU$kIJ"vv';`ϲE==Y[l|O)?4i|#c<ӾBpȼ 8 jt}$|ipW͛;ea ASN/g*֤yGX'Jgێirۆ[/ܼg@x%E8hH{s!q)DmH =6 R_ð4ŭ][i뼋ʷlܸz "w2OYLW"}0b?/""r,H{we˖|f˷ιϱZDJZ)tGy4;󊃈\~B """""Jm CcC=[h̬4VMxoblq+UF2u"#/S\.y'ny$ն#FO!(Vʿ?Y4/'a2Ѡ}OԳ U~%]Zwb`ӑupy>ںc8e.2cc/97u5'Y$2nQm;'}"ʊ'ct 5ȷ38i>^#M :Őټ,V4ay}eDDDGy:W#yJxf3mħb@huh OYc8->#xݖ]P+0+? Is= ; NY>EW3VG>K:7dei`63cPzùXՑہvD~#^͓˟\U D1h۱5I˜/iظ;}c{8>vd^GY3/'06_ހa`ϖ\l|tZ;-C4q?Q,!nёp{CjWWK,rT; 9}K )-2vW L6ז&K.zGeАwvfN\Ğ4h} Sl6/;r9;rO<>]`ow<3>)z3]M&f~ƏDZd{]dL3لt{]+'GѪGkwiRX;6'*{k?aAw6*+Jjb;ϱk&G&*Mce+]JKeGwV|/MŨڭ -ynD{?)֯ mMhIkewoxWwZVrwcGgR ē((ue7*3G;|/jQDtO&:mvjZ>zƘ8ϰj ekAH2m,"5*dfLEϠ-,UܧM $uw6w=ʀ&օ;|Ox9gnqn6D5iH=bŽ-pK*8 d y=\W YC]8 ˳vۘ]e| `{cr,@^g?257!f[b"<ґs; Vv*7qO1""Rj4z+d2bϲ4%$dEubnDگ;gaz;! UlvCܗ gρ7e;!0SNqڙ< F?KeT!޼'.5OHyH lO8L#aLclR:K);%0b\~EږE,Lnu Yց& o,ήʀ{zBѯ^ї L2vncoDޚ.Ӧ˴)lM8LL7iExv'_aV*$VQ1ĈۉWfuňtub6NˠB:TK8>XY? ,zs!qwc,@re;-G8⹉yAV}[|ߟ2(ZR&x\F@4a6ˉwPmb?ƽ䄦 ˉeؔGG<8U6Yޕ"41z4 %{B˺绛ֿ#g}8u'2:iz …3bG/̿f)r`I,?mxֱ kb'x/ܕ h[8?`S܇,LJHDtgԑ:v,`jt[Aۘ8Ľqi.Q߉ǝ}q`EJ*GN Z ̅Yys,~ssjnFVjEDWjy+:Uh"""7QQ操*0w\j^MF Vn6 MKoqQQfF;DDD<.kK!(~%fYyy#N`YibYVc4ٳ3 rO^-""r%yG6 (쵅mK5:-j7<KNrwqa/ %""R¦5\㢒+%$"R4QBdl6i^yli掎CDD> stream xڝTn1 W؎*u.RoU=8xv)҃TStZz3<}@D!-Ba~ 2E$36p+hDExDFVbFp^T%rbMĖďӊWo6ڤXkW(PCRݾ'nM:%:6 zKEMfxVFmIFrda]9WGBc0Vx$u$r=*!wۿN8}`x<:H"se^8ӯV%DJezc[#`<R'|>MSwn_Xp#bݺ\.vupZr endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-18T12:37:02+08:00foo2023-03-18T12:37:02+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:25339776-42c4-ba2c-3f1b-1fac29c95971uuid:211162e4-4d3f-a182-950d-ae271c9efc9c endstream endobj 11 0 obj << /Filter /FlateDecode /Length 5497 >> stream xڍY{Gy鞞vowvn]t,ɖ_-a#Y~bca11RP@(\ ^yUPC6U"epzvtMUgvzgv}0BF#[n;y/)1[`h>?c4\|>u{k!ru|gn뷜z3x/BG9 [KiYpD'H ɋ:tz,r7ϣ h43?_c.kxOmϯ KWFF[s` !OЍy1߀"D'a|!v 'ApY]0!%BH!0> `.8PQ?MkJRώ"TwCJ0#T{d?G#b Nte,2e~1uX^3 _jga<(M9m L1=8xB?E0Vw]w}U8I9Mq#,M NX9 ܥSq*,J.zEbgezMET^j4,m6挥A3 M)m6ڭj Vl>Aޕ',]i&$pW # VYʄpE[ >|~vg K8Him9l.ҽ"8JDŽ4=W%`=c ڽtx`I$`LC4zJe3mqK 1B wc-&1}foޙ/02f EZ2XwB/զ"S톔[<`M`MՈ%J&iaI"lP;Ai ݞĄډ+ Y_WPCC{@U#\9ȿ73r-->sMݴg$<[N/7J10&I, 6azس/sx#tvHkB(v͵|۲¥a`2Nj_D?@ FX.7l ,Mbdb@~X[T˗_ ozǻXZqՌc,Ui.޴\,۝r3ĨFPA@~sa?"Ft(@\WH^;}+FI8 QՂ&0~Bs 'D@:Dv3| yê`11IJjwI QQ<sJ7N]LpiM(#nJve\%nJ } YTC;@ 7:@~6$s?w'YlTęݒ ^(qI+7IjCP%=//O\RBA|\ i_CU @5BxEpC&P)ù),eƆ/ACT1sIZrE%pf1R!4X^J>W C}|!Mt/@H(T@yXiHftnZ4_X#;V+ T.زæŊѾQf&iH)C*nƮM˙#RI^ljcufҸ  Xzy0a#eH G<@9K-c=j",cZk?ö}{߻"$cG)i/@ 0,g'e2+qRi\Ãᡲ揃 2 њŅ.06f88!ᢃYҝ2j픏{ 2,,air"AHjSSUBl84]U0}T,VZAk t0F;:`@h@ϡaSC?pO>HE=&I2@R$:V7ڊ}|mz *1x>%_Š=*J,+Ytc^1l iא"Sz6xg-$&8_>Egb ;v<4au97A Cx¾ NҊnw'cW,EAY!0gs#ܭ6<]蝋7!t~7 Ie:. Rtu(@OqL9]5yp_5&E3eprڷ]6,%Z{lp5uzBdrzM۴LςlqhBŤaQLLɶ1ot!݆1kC{^'yl} \ˤ.jo~ֱ=ѡaْG2`砨\삯)8pe{NHXqJmAJk!v u/!gbgًϨʝwytZd,/̀+5%n_%Ws*|0 M% Y 6DْÐJܿU o#'^EB=9)n):&fPA*dL=pDJ\K_B799Ccޥ]|-aWzp_܁ɂcإKEP&\_G7>kiVـqq5UcYpʤ(ǏOm: 杈2{y_o.?%`Yu/[arv66uM l~:Eg:ݿP~Trے %s{͍& jJx -9-nwN!iPe*3!#y3⍊zy4Z06U }nm5߮)-`䋠\b%1!j+PgrǙI`L{luR½@PϋS.hl!J)-3o f '0mtedtYa DcN/Jri \ȱ&) :DۑJag-6 ?/} [ՐmQX , {Oe} Jۭ |72P0L vFRZ;|\(oŚBAAw[p r[LܭD5N{" ձ,$W|? bl%`iÂPGU*Kʤ֛v}*`E!N{>)˒Q 9 wl%~r\f3ױ߽efff۽)uIc,XTͦV;5c0i:P5CKX 4<: ams3 D&3*Qonȟ&9eM&RV*$q\ p*BՂlB9Ƅ7>V]kpV"2:f֪hIXB9+V2z WCǖf>,نlk8:~H%cr n v:=mrsژ7_WIy&ȖQҚO]]HVr|s~][{wͻ6uV{!<Anb.uҭfKDY&X_Fq]L~kunxJŸ;; 4cǜC4/v&B6 rzZet]ah7&ro%oV׻ӝw1Ӏsw;R|~Zޟ9Nsh\%lc> ӫ.^ l@KWd՝U;蕎0=v_Uaa%trC!gA#`\z/^yq(&װs;s`/Y?{[ [oA<8lA%k*93A:7{*BlMhq~+E͗=PsV\xڇhE àI,YBG-r|wl3e䢶4֍Lt b>ongxC٘AN#Rmds\#by|x~d71ȯT|C0qRl"jۥӭ {Sqqے '␖pps-e %-z |ߴDmcG;= C;ǟ4Dq>HRM 0a;Rv7B?Jضkٝ 텉j ~x_av)-\hJ XS b"H=Ok4e+,oy8Gمy\Ay!5jJMbML6@}$_717[qXj4#5,!7`:M~Ұ޽҉F BlFFY^O]lJs]~\ɍmlpa.8K0~otV=7r;:{p45ݣx.HNd_AgEHìO=w'_s͘`UxFVs_,J> V w3OY^B%{p3y ~-^0-P-y<* endstream endobj 12 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 13 0 obj << /Filter /FlateDecode /Length 608 >> stream xmO0~BЅ$M\vZ&B Z Ķs"mm0*A A ܀!>OP[s̚y>QF1&90Qcys2'BUhA>6>vFXY݁//A 7|G> qnj 7 _$x')9⯃gp 8\MI/|g>>Gd endstream endobj 3 0 obj << /First 62 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 839 >> stream xU]o: }oK1ĖE6YroM؊g YA[`?~e7mCHxC `H" $  bHO8 +7قd.uޭKxDOǒ4d1n쥡xEe]?X9QWFV6>߾YX?_./Uղi +Smi_SEX\o^U@ug6F\ﮂO d̉#)愭TBmntRy)4ޡT&p͡uz1e5yʪOZҠlАOPrXQ5(0u̍cGu)LSjlF`!>;3QFZ>BV{Ц`̂1O7\Ld[N FOOOȢc+/؆NĔ1JZt.EŔ ,)AҒaM >ߩݎ0c,> ΎR Wtk5vuk1r3-?쇹'}s\moI8)룤ĖN`MAǥŷKtwf8_( endstream endobj 17 0 obj << /ID [ <357A1EF09416DEC30CF9B59D0B015CC2> <357A1EF09416DEC30CF9B59D0B015CC2> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x; D;^[{w )Y\D^ ?/ۥ{dYDwCOaE_gq endstream endobj startxref 10207 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu-5.pdf0000644000175000017500000003133614411653175030122 0ustar hillehille%PDF-1.7 % 5 0 obj << /Filter /FlateDecode /Length 395 >> stream xڝTN1 )$q"!$ -6L>N9U' q8:P( A*nQxdfb͒Y|hyŘQi}kXBsEy'T\@%hq&g09fGu,qxxvLHxLXK!q."%KwTwtדtFd%ӚIjyvNjH楓Y1kjMw>L2[HwId Jvir^~}

Y}Ւswr PrO@r2(ǔM%.ZY_ v endstream endobj 8 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-18T13:35:37+08:00foo2023-03-18T13:35:37+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:25339776-42c4-ba2c-3f1b-1fac29c95971uuid:211162e4-4d3f-a182-950d-ae271c9efc9c endstream endobj 12 0 obj << /Filter /FlateDecode /Length 1180 >> stream xeT]hU>w~?wfLMݨKƝMMiZSBiEMmk,-Aj͋OE > Q B EJ M,B}MkZ/s=ٽ;ߙ8*ԱɣeMQCikp vEgr\t6;<=~pq\{ݕЅE4mPEh讠]ؽ?0r떃_}IzM\ _a<~:9>̧wXM)p} &, xON {)؏%g)KznSleY'Nb{u{ml5֎ݝ\(KNnwϗ(#dxjě=!t7 ODw}G(߫U/ N,J I0C7q~E"=yp\6.λ  ‰cDA7+RLWc(mV ԝ?KzּyBF'y"0%}gI3 /M֏ CveN$#WᮄEYv 7t:egUB-?GF#8N hb FɲV3ܣANF o5mV-$m4]d e]nڞn(\9I%t*a X 7%dvЩ! 4c k7P黺n%umI"4MFMUKp!:(Z>ЧEu< EY0nZDHFTt5ה$a#'l',"UhЩ`, KxHؕgp)5]&i\t΁vڹpD3|4SH,D4& )iXĪe<(zeըҺj-L);-|VQ>#?)SrFŽi endstream endobj 13 0 obj << /Filter /FlateDecode /Length 605 >> stream x}Tn0 +!Yk7aCwS$&jK$Ih߰À~aT*'K 0,||LN/VG YO~2 5>n Kyvx|~c]Oɺ5~eBN;,rrw>x7(ڶܸUq6bUbI<#h{0MeY"jޱkoʥ)4&o S}4- γ |p+!G2}H_IKi]28Iz2yp0ಪ`G*))FE-IgY!@-6xPߚ!E(:bd*jdA<bL'@ڒdWf-UP7) v W\He/w\o8%V X[#VUՕzTq K 03bJaEsԛ„\9鎻+M75qO&[Bf wj*jo祥Ң#ΚPTb|']+G:Hn@nΠZ endstream endobj 14 0 obj << /Filter /FlateDecode /Length 397 >> stream xmRn0+rHPHiJ5`/#'9 ΃Hx*v_ޢ` G7|Osכk^eD/2X}#%>#u4ýTg ~&IB7JYn"qnjX44m,ufQ8^kN*aZ7BecQbn7&D-Jsm4T{J.U*h"pwB|{6HBHnc~Vq`Z`MgdS,iuP8V9 AFYР!`)X endstream endobj 18 0 obj << /Filter /FlateDecode /Length 5499 >> stream xڍY{Gy鞞Iw$Y-b[Fdv  )(RH '6S***ql?._N2Tzvg~0BF!Лn;yo 3&00ڀØ< ?Ϝ^?Bp>q=D=8w?p9Mgz,2ދPg|xauY#-ռZ{ =>yC's0 \d}|n94 zW kcpicct6~ڞG qᔑʖu;`< D!dO#D[0;㓠\Xo!~AHoopGRmga|!?B ?P0P|B50P Q ³Pi_!4F{?C LoYk5($/z%D[z۠zUܓV%'09dǰ?¾=M8۶/%SUiqR͋Skp0 z͢%9hx6vsL?{ BkҔ6f+K?̶gGm&nWE$YImGj&#İʑ[!'~B`.3/49MQ7ZN@Vw,δ+HGYcĘ˪ tc')ƪveN7 o 86;8Ә{wL;s%v$w،6K6^%R?cBMK+St$}8>)'0/GfC7PS@M׍ ;x~Ct hITv*1np9!Y|Ncܣcܤ2& "m3;3y\Fa]']PNŧm*RnqenH;ְtX4Y`v ueSTML"̐~Y ʨ>e63r--rMknyyYbou:AQzBqI*SX cIJ`/={.=o^x@-KCeSxƞ=1?GϣP2 A~Um4QҡT>?p^%y&4DFW F8R >X7ܐ4x/`L%"qz$~g@=n.Ck 0!{=m>drnhD*%u87Eذr_U87^yU gƄ7> O(++_SJaO56p;h:p/}LP-P+W3C>N=e1$>+H<7OҚ}G.Yʱw)VQ,௷P\͢:,R~ I'BZ/ygnFn"|+ǸL-B(dbmǎ';o&5a蓸v1ŢG˞/uDYUˑ'D0HNcsYV#'O7A`ћo7+\L]0PpoLƒ*1I& / e2}H'g}۵Am} c`rsYO[Z/a_iv9 rZ$cv0[Ee,ld&xbrnLaG^НX{ebLi 3c)Zwa1=ѡp~SQ7չE 18(|{vH:h JmAJ&A+ra󄺏Ơsqyt*^as`3'Q;&fXY5WjJ.a} \qʩAaZ?-돶Dٲ*PNߪ߬#}'ދEc![FZO3v;6 2.ܞ}8"h&ˀǧ&1LF;lXpiG@>dؕ^D)K?0U0:{ rMh&ԃe}i1m6u@KbsϢT&D9~fxj6Iށ谲י8/SVCOBPaN.ȬiS7 ЀOLܡ÷7pcuÏJn[ $4vnєvAr)T5ےvw|J2Zk?>i:"Wiifg ]:jw ;f?u[{:kV0%ԗnsj5mę`lHj]6šb)^ )Iq%ʔyAۖ|W? @sИښAAv Z~bЁ[۶o>mcfڜ]npUMϣX XO"𕘡X"Yt%˨gs2}$ I  N Mw >$uɘn[xOm]ۏ9mxޠ`b4^GkXó,oi]V#H{skܟJHT|¶(X@lxqԂīMQSIiyQ&-_l7 `v&Y@mRZ'B\(oźB'AH'!;+MG8SE-Y`WRVt=xīɪx>4QwB\S dzsaOAh3c8SO>iYC@[o&y0>; =BP%C~1 wn%~r\Vk:;;ܒź$%=8SLOkP4]J躁m?͆,ԡ]a7M*֣FhdVT1ԁo*ۧIu^Yӥ IKJC*AvKЙ3̂Jfly5̮[^Ie=#@/0/qq{[lXdVZlȳUfkA<Anb>uҭ%,HLA/On 58.՚&?7A%@.[3 @#MZDܚMyqd 9yvie9Hykz#[/zˡQI^pJ(oyOc4`Ki%C yŐ8rqɋw̖6PC1RvӨF ,R?m<d-Pj @ [HY6j84剹 y(XE!lwj N(SoB͜p^n4kۆ( ( [R{ǷS7&P֥ 5èw+n\҅2aے#a뙖fI s9 h s+7:P۲%[Z܏ﴓP*Ӵ}累<rxoΤ[]6tAA&~DW44#8-^ z=^NwbL'uHi?q<4`^n8ÇazM_[ڵAq- D}IVY^clU`3Mzqijyxr31p\ݙ{EE753Mj-|E䠮0 _oq{+*Bi@ޅ:mܦǾjx=;9/~*9:CVҔU:_E!s\CKl4JaPj `Pנ#V- 5>(cht)یDs.j+/Ca".(nɘY&[Ab`ձ=s#bD*lfqa?*X$! ?+9/͜V!cm/2v=,'Dc3뗽%6YNE IH][FCGux jK;v?i fBuHRM0a;<\`~~Jk⹝u텉~"6etp\x.r+ᵟ\//P2aUXm1/J>4ۃ[O9^F%8C{:/lu TrO<. endstream endobj 19 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 20 0 obj << /Filter /FlateDecode /Length 609 >> stream xmTM0+: ]lPx1&xjf2BuH>&㧷IL<{z9m;0rQ)۪o29>NhTwrh,DVT7oUvs9tnZk-0L#>f(^(4^։~I$t[˦-*NTUU%hGsuBD oD$/ J 1,N[uKBK2ԭm܍)\6Wu} PZeryyLN| C\3O*{zV岭OlN_, _v/8.udNLS=7+Fn9Phh5}DFA3DF~t"_# DN[4BA͉F8bXShA L" D ja&Ge y>1&s Q̌?㨓fB M.̌ ϵ֬GtK#? qB 2G#|jfB?2T=p/ 1 N I<{c8ᚐo}75Nz04w?q>GGd endstream endobj 4 0 obj << /First 94 /N 14 /Type /ObjStm /Filter /FlateDecode /Length 937 >> stream xV[OF~ﯘbŷD($A'Vp>L@\//Bx8 py,!~zqn-Beݸ{1!sX"L8q$ cG gDm̏WyE8].VOŲ *U^f0Z}:VO0:MZjmuLt6k"R(ĺuR;k*ԑ7:O;ݜ"D4kmP<5% Ea(t|pǨ`jhggK{EǾ8yEn.hJRKyrZf[HR[*ˮ$vE vt=?+z)m-p.3\&&`K)H׶KGZU~hQ&C`~$+mA>U^ ӻPdZ] ZdB%T+k&+zeG% ʔJŴs­`ӸԊu~24stXTF h3]@qNrG1SOex̢)cMÃTVJbsl9 =0V7"bJ&yĥO}q响lB//C^;#EB{d?#bklk6r7l>̅w8սGit? vN`tWNlX` >sLrn ' endstream endobj 24 0 obj << /ID [ <365310169E3A2794E6F1929B2B1EA09B> <365310169E3A2794E6F1929B2B1EA09B> ] /Info 23 0 R /Root 22 0 R /Size 25 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 83 >> stream x; 0Dљ?Qp"XX/bkl e.|VڣLoIÐX?H'= ngy~ endstream endobj startxref 12708 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu.pdf0000644000175000017500000002361714411653175027763 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 373 >> stream xڝTN0 )q,IE ۴.muh*u_f6;t}kEWP&ړ;<ZPjI-/+ Ff#"q]9 0Fd . WkÍp7Kg(Kƪa؏M'NuӋ2FS%3u5z[3BHM91DWMuuxF(UM87d '>{Au.v恖G6:Piky۶lp ,\ͽQCj{>HI<9dyIQ79j$]q`_Xb(ǁ ғ endstream endobj 7 0 obj << /Subtype /XML /Type /Metadata /Length 1752 >> stream application/pdffoofoo | 2023-03-18T11:41:55+08:00foo2023-03-18T11:41:55+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:25339776-42c4-ba2c-3f1b-1fac29c95971uuid:211162e4-4d3f-a182-950d-ae271c9efc9c endstream endobj 11 0 obj << /Filter /FlateDecode /Length 5162 >> stream xڍYi$GuΣ*2鞣wfwٝjwu`$KZV")  9me;0a pp Dxb++;W#<[nɇ7߆v |~  |>}˃S|!zncp݃uCwdp k^zw=E B_=oYYΝpDH >bo/B  [/) U53hOyMP6뤠|'(ƹƛ yv@(w!AS U0ƿ ڏކ.Grg˫ {^UƻkkEyiWۙnrJ8{gNju$=c8ImO=ð O\A]pp=%l,q%7]F3&BAJk>-LKU\z͢et Z[Q˃MVY3v)1t@ɏa_Zi8O=#$ nO\N}SRU'b RE!*`GH]^dt*H)s\J7%O|=n}vl`v)jtVWke1kTt)!eEC~{<`a:j wabi7>*E\ʸOq1 G⩘ 7M "dۥX3MTkXU 3:֥'[Q&GzjO SeJrQs?Os0h>rkCy@J-->Kmtwh෾s?M75i:p%fx ?x.:)/_[Xm4M冞Oҥqp?H_BAFX4l,kMlf@~؟@/,|Lkc_Z?9 y:ٸzQ,yqA.<1z=" k:CP(O/j@ ̆R _*>ELp*XHH7*$|-+qD _&1vU.jf)z`yD{ )ц6QAW%Ef bQ؃B§>e)i܍ #*L5fP_)ZcĐ_[ohm֬ݲ#ДtD⪘ ɉ]p츼L2iKk3y[#U+|jfayA4>179"Ko@t@~  ?<16|G>;qbpCjt$v@wM=a ϻz,r&s] yhFʩ&&F^1:E4`,adAh6CG9Q1z3D]2JH N"{DHhXoG7ܯL&A/j&ڇ61t@;fgCɴL$m; ~vz5j"U|D4yU'\ZVilnm=iszxVhf RZV#'bN脊>k|w|o .= +|k.˅SU)aWA dȘl 3T@w8>J64a'WK)WAYϛpqH3,_ʨ(h,doi{-&kd:J8e2Yil]4ɆHNAÝ h;ys(X{챑BpB9C4{6"gf:-?i`\NOSDA >dpL<=]Y[oB8PxNm4XaYw֖k8ϓgԖWѱH8A! @,`HgbHXNlU74/XЕл7Ś KU8;*5*w/4LUHnu4J1U-g^{CLnmPa/m3}#wׁh,b*'p|y|/h^U}Zzk\9DɏhptCN#&= , ^ <Ŷze9@!Ef-ǔ͇L,-W͒\ItUĤ1-,㜉QT&c<as>ѱ"AjLE(\ ҽa~zښQ, YKG! \ R?m< dе;vs Q6(/SQa ny5hte]ILV07{~0@ΜP }̖W1sIDe v5c~*XLV& iFhxѶ7JW>\)7iN|T8O@k[u WN-Xp,FFc`/Qdh|؎Rn!(ሉ@\zЬ$QFyR5SMhU,\8$7MQp#L<5uY {z)惔 =£G۷=oS1pYM)p@)ݴںi8ptkb{u wdHzWvu]'AA=iKn'YdY6:^>kILNv%ݵH 둎 Gh@oF'J3]T[6X(Lyhs%t-98uv`&R--ɗb8Yb\Ň* [n9&շi+EMQTj2A`s:)|FzGmi,T>x iߔ0掳q g3|n;֩998 p?(Ӻː ׯ@ux1t_ZѲןUhV?ϯA^x晲|*סdyk < +w~jZX S endstream endobj 12 0 obj << /Filter /FlateDecode /Length 617 >> stream x}Tn1)F˥Hn$jrhZ*7Ǟd?ݾޤjm|}=0j g_ϮKyd3z/fMA[WMyƄ^\dF@+V FyVzoE4Mޜڮd2)b<>!ĉgrKDǭ4^jq͖:y%r#V]|Pu]DO1OcVG%bqs'뻠fž9:[|y,%hJHMg?_O7?» ZIN(S%9*kɭvzc*VZuu/ۘkLź0%XI^N90hk=-;GH@~ 8F.c}A|YCR*쵪:8%岃Tk輕<އ@ rTXhˬ$UUi&ǞK6nG7͈)2<R}Jsθ?Zx u_͝kL1ACيմ{ 2nq*fjgBU)V![oN0~8\< !6mڶ'TԐ<im0 endstream endobj 13 0 obj << /Filter /FlateDecode /Length 592 >> stream xmM0 !qBH!$AU$F"NR|=-<v,̫9o|ʶL΢S=7U֗Ru;)s*KeG&vUE7[\YZg !1.-ʴW3 Ǣ餗qEBuwٴE {XQUv4Z|Pw)TXA F0N"LWVFdU.\NmnO|)ԕLաinˣTG9 c늢3{,0ke[2ٜ#+L3ȓ*:5#(e4|25I"9CZh@r!1$$q4B RiǶ:e(-Adm(`VYc=9dy 1ܓ?LZ:=KC8d:HLio\`jAvl=\p[D(l]bb a?ZGN 8.Ce@B#:N ke'Y4ě+i4Bǽ+е#+?d> endstream endobj 3 0 obj << /First 62 /N 10 /Type /ObjStm /Filter /FlateDecode /Length 839 >> stream xU]o: }oK1ĖE6YroM؊g YA[`?~e7mCHxC `H" D x)!4f &#oWoԳYB]v[00%i"Ʉ'DA_(:s/etm>|}{.\_e@&W -sUҾF*^U@9g6F\O dkIAC>B]˭;ʛcEX17+˿oԍ_Kpsk2MUKmԃۚhgF |gjeMIcn8|EoY:el7{===y#JeLWDcc8ybS(ip!--aO9yK7='|v;Œ$b,L$tv:;J G(\,`'_ЯAa֭!:cՏ=\t6o`?̅w8Sm|'O8L]%M'd,g'p{, <357A1EF09416DEC30CF9B59D0B015CC2> ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream xȻ Ckȇ 2RDR[0~ő Ȼw|)؛%*= 5a.}?  endstream endobj startxref 9832 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/04/pagenumber.png0000644000175000017500000005342714411653175030614 0ustar hillehillePNG  IHDRa"7sBIT|dtEXtSoftwaregnome-screenshot>-tEXtCreation TimeSat 18 Mar 2023 04:27:16 PM CSTl} IDATxyxLd& IdEDRZ"ĒXZK-bZ RJX#%RAHeADȞss$hNsxdξwzDDDDT̤^"""ˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDT(Jܽ{&MBjjԋCDTe aDTdee!>>^zqL!U3"U Kˆ$FDDD$0"""" 0I!H aDT+i4jˆVIHHu`ee˗̙3R/Ql퐈Ʊ$H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""CQ->ieZUUXXPh4I&z^ +,,D߾}uaĈUVxx8^uСC%͟9@.WibccѡCѣGcpm|:t(Lbr333ѣGL8ptt, 梬߳hڴ)6m&MI&>܌U(J.?<<<*\!$$D3 %nݺ#GΝ;6mLC"446m>[nEHH-Z[[[Qoh\VF9킂,[B~ az>ft:aСe0سgOOVPdP2h_PPv)6d ?Rmw>ij 33&CJJBAAAGD>VVVm`kk;w^zaܹ.]N𙝝]peh4(((@ӦMaii)3=6md"*SID5!jƍ>}:ڷo]vq1pEaÆ ~ґ6QCԳny#??P(HMMERR_VZ֡k׮xQp~^^^߿߷~+ |rO?t %G B+RzWDttt~QFennoS֭BիWW_}׿D=z7oKLLD-`aa:u@P@.#55/`eeB!ԫp1(JbرJJ,?fpEsaԨQ@,Xt`kk[ Xr%lmm1sLӷJS*J -]UQ[Ű.s_~| P(,2)JX[[?24ˆjC85 ptt4gzL6668q"իBu %Z8|0 ˅[QQQRPZdGe 00?t:}2Xdd$2UCCeiӦA@EֵpU\\ =6AݺuѰaCԭ[rHNNFΝagg۷o􄹹ˆ`#d2\\\pe\|٨ BCCjuׯ`֭[ % mK,g}u uzPVTTTuplق;v@T 1117|S4΅ ###o6]f}}'NC#@Ϟ=pB7oF@@ƍ  :k֬;w.fϞ̆U'MQXoCd(,,Ē%KvZT,@Æ o{^Eׯҍ&$$@&y敞31C͙3}`kk[n=P*EFM+75h<(bb" 43f@~<7c XZZBT⭷–-[d2\t ]tвjZ[>Cpp01ocl߾ P-M7osb{{r_d`hB2cŊF k۶m8|0fϞ]iˆj^ɓ'C.LQT(**ºu c/mذaowΝ;y&~m?^&//DHHN:^!C`ժUhѢ_7| prrBff&ѡC+عs'>m۶J_]o߾1b * .p{OcҤIwz ooo!|۷/2֭[HQe~"gc5Q-`aaBΝ;ɓ'zj֓|:VBXϞ= Bk׮q7nХK?~DfͰxbxxxN0[x1j5ɓ*CYN:?PogxT+((ٳgann=zXU!C`ǎ^d`ӧO"##ѭ[76"cIQ-aiixTxw؋5LC,S ;vqqqڵ+ƌ#{WpBaԩ8p ĉ1cnݺÇcӦMprr嘙 Yѣ޽;v-4`kZu` 5كbxyymqkmm=z… 8x Zn-vԩprr8mРƍE"<[jR oeh4;w.~AtG9s&:vhrǥK|rL<٨rY0k,hZ8p˖-ŋѸqc/ Kr۶mիܹΝ;cڴi;w.a eРAeky-!LV KLCKMMP|Z0w\L4䓔0aB:tˆj Nv!,,?~1b wwwܹ;v W_}:uB߾}-W̙AB8ܹx֭9s>255Uhltӧ1dDFFo^BRI&e;p222,3v`ff&4Aa_ &&666&) h*U!e)&cy蟃!P*.DCO7PXX>} ** 8q >sL:BDDhB!j?KA@VnEDD!lƍ4i0{g A))) ~)RRRpk׮޽hލ7ٳg1{la322220dhZÇ¡V31n8Q!tСB;OfXF Xш}f$"i1t3 剎Ç^-deeɓ'>î]zD8x bbbp!\zx1_unݺ pa888`xDû"** o߆9|r@uڵkMjٲ%co ///nj֬v hѢF?\4\.ԩS1i$` UPqm}1xvv4J͚5 AAAB8%&2VH BӦMWx۷o#<bhBRAVCA ׫WNNNPr0++ >>>8ք($''_ -rttD߾}9|jj*аaC-GDD )) {VIXbb"/QFUˆ$vˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0?NTTTpjG#..!" @DcÆ hܸ1ORRr9EEE駟0g 0t֮] J???a:hD ;;NܸqϟÇjo]v*IR/_iӦx+4|BB @Q_C쿅+WDJJ ڵkRG͍BQMՇ$;; 0sLcǎ-sێiiiصky޽P(駟x{j ZlO?Z&M29LVV̄bƌ?~|֮] {{{v$]"JH"L\\E%c8:: ,??'Oӱl2QFE~Wzxxȑ#[x"jb;If=ztOMMŜ9sO>HLLشi<<<ʝѣѣGC&Uu񉈪!$;vҥKسgQ˗/k׮8pEEE㏱d Ѻur盐FaÆXn>ckЩS'2"1 aD$3g"((&_~]tAAARRR{A&J*#&&;wDϞ=M6Gpttرcq1X#"a#U\\sbСd2t4hÇcǎBwV\ܼyhh4n?ڵkѭ[7YFߤIaȐ!8v'H"1Q9{,.]ٳgI&B={?o\FB4jhju19}wwwJݻw Νk4 /Wbٲe J߈j Z- _UR !˟ӒwO]ˆ$vˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0I!H aDDDD`#"""Cˆ$FDDD$0"""" 0IVѣG'''IIIӧ+4NTTBCCEݒqJͻ4NphZۃ_yyyؿ]eW֯}6VZ~QXXXfׯ#33ӨÇ);w4O?g ׯGTTTǏ>ᅦZu믿p2[yfJhP\\7ou7\*ڵk:خwܩp9c޽[5i5y zÇؽ{7ΝkOC& q9r/_'w}GXd &NMٳg???ɓ'qFA0ތJpqqAqqn߾ !!ӧtRL4uoTh[%//W^аEEE={6Xb0|pjƙ3g&N1cƈgddƍF^^+++T*8::Yf7,k׮Evv6Zj%V1o<ܸq丧OFFFkQxXXX6mڈԩS ggg_~ ___ԩSFE_5wMk@ɾݺu+!|1=z&M@&!//W={T*vڅ>@Iw\\\ARĖ-[;\~N˗c̘1FUu J%F@QCTs\T;wNt=zz ͫ;ХKxzzbϞ=pppPr 7 IDATU)))pvie"luTw_~ 3c0r~Qͪ5!ҥK(**>߿^^^thÇ###[l_l¯cǎ>|8tk׮I&´rssaeetptt%ߏu  χL&CK/4pssq= =z/⫯BRRRKS^=ٹ 11۶mÙ3gkxx8/|BL֭[M]v5d2T*^z%_(%%$мys#-- 6Pq2Ûڶm  Ebb"KKKڵ }`Ϟ=kaĈHMME\\␛Ν;E@&G:>iu:t:lmmZBVh*<ԩCAosssaۗ&˅5k@VctLYXX-[~qGFF_o4~ܹsѵkWÕ^ԩSxbdddԩBCCE~ 0{Ett4d2GGGL:UjݻwEaGE)[^^9|`h۶-_///#..v… CRyyyh4طo:vVZ!''+WDZZRSSQXXo׿UmTuP(eth޼𾾾@j(9^u&|K][j7pܹsXdq{Vڗ1117obڵuѵ&@jZ^z%ﯿSNEf|GFFJ,C0Pri׮]{c8y$ׯ$dh} ""c┘ݻw\?uJIIokhpbu9rǎC=ԭMY SNŏ?(|...FݺuM;~x={`ŊxWnJ~)曢-ïH$u޽DLL accɓ'c֬Yxj*899(>e4jH4 Ʉ[aaaB8.KmHJJ8pE%@ɱ7ߠW^jEZZ Bcǎ[nP^=<@ƍrJ#-- >a@AA.\pVHMM-sÇ [iF͛7EQ~m۶xW瘭/ Nܾ}7<==qQK5q "iԚ򈈈+Wg ݝPrS 'Lrr2<~*+&&:tT}(L+++>nnn0  KKK\pHKKCQQ-Nx^r9mV Gn݄F%%%?3\\\`ff۷o#77 jQXXhK^z{=yDt;Tec[[[r>>>ػw/ԩDGG/^7z j*̘1Cɓ'qe%uvڅA fј;w.N<)2J궍1mffGرcoV^q(]8tvvۑ8(J|'Fsի-[@&G駟pM}:u꘼w~:BBBBQu|ǂJBAA6a^2 Ú5kо}{o߾ t-v>Nݻwŋdtԩ[n!==<(w=rVޗ:* 033III&9i]jUKMMň#p \zU8! ^W]:666P fȑrR^^^={6/^ KKKT*h`cc#T6piȮ]l2#%%E􅱺WEPL& "999F7n,ܮشiV\iVCCCo;PrL\rݺufnnݻի'ڶm+QP933˗믣cǎBYݺuѭ[7 6 /&99k֬иqcCTu5yLv4i&MFaʕjؼy3lmmqE( xzz(un5 ""SL_~;PTؼy3-J#!!/bjjXnѱe8׬Yp޽[tnt Ν;b \z7ov:-Mn͛cڴiwbcc!ɐ7bӦMEÆ qoBJeY)N֭[P(VeDDPw(k/j 1q@K aꫯдiS4l % p /4Yt[nnn߿?j5t:f͚]vr@ݺuŋ/R4D#|a„ * +Wa2h%KW*$GETg Eǎ€,ٕ[)((7oիW(_B)PC!??ͅJpUܹS+PpSL1/::;wƝ;w|rh4t'N@^^<<<1j(5J/77* VVVXx1.\{{{;ݻZQpUu[:$t7o6m$ 7d 2ZVh4pwwGbb"v؁P7D 0{l 4#F@affViJAAAoP((~~~HOOG^)\rJ/(mZ7n^ucjZNXVVBBB %ݺuCV&~~~M#FcǎF=KB)̰aÄR4"*JMMȑ#E ''2XNNPSڙ3gN񈋋{4jk.9sR#?~3ge˖pqqPҦw8p7F.]`eeѿ:u `P~}+r :uB!<=ӂe177 -((PKo߾B]CV~[xѭQ+++8px1"##W_N:dFȑe)]8::cƌQe,]&Lnw^|;stXt),Y\ y:tĉq)ǘ1c|qWU]Gm۶ŝ;wyf4k M6 pss鈈lٲƍ09sFSN'NŋH]u:8 ?K*?~< $<]c*/sY 23fo!*cqPԊ0\.j`o֬zj[jjP1Tz9B.}? Ϻdڵk1sLa8j\rt\JKR*u3Sal۶MO!?Ķm ˑ ''' ]v$Khh(/^\:U?*Ca„ ¾.V233䄢"lRtknpuuŰað~zvvvoaޮfffx7ϥ3Xt𷳳sz^4V J޽{ O`Fm*1T8XlZ-D*3ՊVVʲn* ( /F֭qmTDGGL92UBye[ѦM ///;w'OFzDK ʊjӦؾG“y q!aرXt)^{5曈,LMME֭rz/^4U4S ]={B&:t( ,^uCDD mٲ=z0jĵ"d2'VZerxC>}E˗1k,aѣGtvvF-CۥKh0j(daÆaŊ[ot:awww4o޼zsUc'޽zA_ѣG4iĨ(u OfddÇpuuE6mp̙2K)$ٮ)))X~=ڴi#0h*URcǾ|M'D1T8Pϱn:=גHg!iǏGJJ _1yyy ž={ЦMz$''Jxի@ӦM1j( 8'ND-D%!Zw}=!?ۇ~ ݸqBQvnnQBT*Q7N233233˽=]㮲: .w}  44ǏGvv6]KFT~HKK?3gѣGС&O,ܮ0`1qD4i7 cZZ "+leUw_d2*((͛VZ1T8ҥKQTT?V0I٫W/XZZ O)] ^&?{g_mڴ+;;;Ә3g,X3g -,kZG~zzp7X~=ԩS'6^Ƃ(,,yO@u+,,Dfлw2ǫ KKKtSLV^=x!ڵkݻw*;;;_~)Vő#G~&&&ĉpwww}'t5j>sرCfoo/z2TZ !??_(yKMM½JBhh(<==ѲeK_޻* B ʕ+|LV@Cqq1LP^NR  mCFi4jlmm~ f2Y2򼏻:j4YK,4C~o>Z 111HNNFVV^|Eٳ麶mۢm۶2e ?~+WbĈFͫoMmFĉ-t___ &&111HKKÓ'OT*jѡC 1[UU=^ ΝYfۈ74h 1`XӦMZQZD鳲4G:aJ>66Vh9lpzJUeLOOק]VyV:UFTT31&?~it:}ZZQ\}LLQrUNN>22wkrTeJ߶999-۵UU*: kq@?^G/jZh Cˆ$FDDD$0"""" 0I!H&ڵkFݣ]vy,(..6PQd;,ˆ V1OSLciغusݶqLJ)7nMw)oj5.]j$%%!22RxfeܸqWg-77WW<_QQQwFZ]xw6o\~ϊ\;~;wK.wԾ5P*8z3 ţGk֬AAABBBr<2hxb;wZ2xIE666Xl[>|[矣uرؼy3ann.t+z͎᝔8ph:gϞE~~>n'OƍW׀toїJvv6{ (+,,B^o>c۶m+VNXYY_ɓ'n/~W_=~XxKi1118u:w/֭[GEE!==]eu/..Jɓ'Xjv)Zsss+ ̙3E]_~U… 8r._ OOOtC=dL8Qz6l؀VZtahذpdgg###/"WOx1tPa܃dž  qQ:u z,Z{ˢhh"Fn޼vډ]hժZƼyp ۋt:L4 s֫4JSNaڴiFs-h4طoZ- 6Ğ={ ^oWz~Ue=k'P~ r\?M4y޽;> oooXZZx ƌSx .ҥKwjn߾&M֭[1vX?~=%pEt@ɱ5kzJhzcǎŸqp)[~~>;̟?戉3g`ooZ F##(9~zx{{c…fe5! {=8p@tW>#t8y$|}}˝Ÿ4'''|'nXr%ƎktQ.3WǏؿ?֭['999Vakk KKKdff зo_ڵK~qq16oތիWSNUgi={p>}:z-Ի`ҥmimm-ZB7Nl޼dp,l޼M4\.V (99Ž;.* ͚5PpZ-5kf͚ 舀 `ԨQ&M$JޫYz@ll,E/ׯ#;;8Pax.]ڵk&/ׯҥK􏑲ԭ[Pը_> ,, n_|/qaӦM;}XIDAT`m۶Yr w^a?ۅs(yl4]7n4:ׁLj#0c :tȨ\.AZ\\:uWZfnn. 1:t@ǎqq3FzyU ε\?zj :qΟ?/ FǪ)탿?n}„ CӦMѽ{wddd(^@.#777oD˖-*+Z 6`ŊJwPP`}jm6#//4fϞիW㥗^Baa! puuEVвeKc׮]G`` QQQ׊U!_~RĦM3338::",, Dnpe+&dV[nm۶SNテ腱/_FfDNdd$6l؀>}`Ϟ=kaĈHMME\\␛Ν;ɓwq5`ʔ)xw/ ?~hy:Od/ܺu ׯ_~ٳFB*իjeU#fϞ-|^h{=t:nj3L.\.w}={… c?~%J їӥJn 4** ݻwǰaê5L+2J[.Z-}XvPr5i>>>h4tqj1{l|¯Z;;;?1:w,駟⫯J%r9 BCCb{%ԩSjݻwEaGEMtIܹsѵkW777ܽ{OB'#)) {5kb Ѷ;wVErr2affVZyh47o^z%Z gϞ?,U6:תsʵӰj ܊ׯpXW޹GEU3.4%4I3]^*RKE^Z-udeiaBZh"cd3 V آЖE.3Ľ"35{q~~93s9w?yv[HJJbԨQ9Rl6uV+4h4773l01:\Nzz:,X?H\.*'l6?K,_II vbٲe=:wmm-L4Ir_$22p֬YCYYׯwΎ2m4x NPpxb233yٺu+FgZk׮Օ~ѣGSZZJii)Кo?0 VѲ7oT*۷_|GGGIKKg_~_III/``xyy1||W\NɓVcǎ%'';w̜9s1c*JDl!$$ɓ'#aȐ!$$$j`,^3gZ/..r4-Slk8v예" pegVKDD'bϞ=L6Ct3O}t?VFNgx">`ƥ-n{1<<a͚563 ] sssc466ߊʦMprr"))ӧOw뼳gϾg"At[KgggywAD"<<*(--l63zh^yv JOLNNNR]]]Ūo֭@+)Jˉ矷S(q}QXXkijjxxxBnnݻ7|zKTݵ#JO>[B_~)&7ns1e|Itmd2Q]]J"22j=z4444=-dY1rss;w.YYYݷotZdL&cʔ)$%%Kqq1?#  ;w?gԨQ$''3UUUr ^x2cշE eJb6~,&L@~l:annnQ[[ÇΎBCC%:4[m{eǎ{a,^Zn޼I]]rnl'cOo?9sCRg%--Mj~!::3fH Z5W۷oGf멩aV d2qDT$ڍq%L·~ :C]{HIIx@:puuu|7BիWmݼyS|nhhݝ*U+ΰl2f̘BP*"o>w텰 K.WTTDpp0}aСDDDNSSDΝݝO? hTí}B-a̙Xʕ+ё t:&LХKۅQNNNP__ObbDzi-ZjA>@Ԏ9B^^޼,\gϒFZZǏ-a{FNʇ~`:V_nz=5550d +V !!AFx{]PP@]]>۷[9ktTTXF~g8 ާM6ZbTTT0vX'A0qDa[lܸGfҤI|]%NlfȑAeff̚5KT555`0PZZ󉍍姟~",, ooo{="""gܹ}vPTh4^0zK;u$ueKcAII faÆuz=a2زedk5wJno߾^ڪ]OQ*Hrr2%%%btl޼RFj1a3x`\]]rooX BͨT*qvv^T h ZVJ"'''|<\;wN8n2ftÆ ȑ#bر(J<==]~%V\v.]ʊ+5jbbr Ca4ٰa;vSoNş]N=Zxezs)Ίd ;m< gFPpQI$ Ze? 庺:D'6lyyyqu>#Q!9~x4d2}]qTҥK)((t1<<Vb؎ ˹뮻HNNJEii)Ge={EYegtvL&R7nUӧihh}wǨo߾zj5V^^^\r͛7cm+,h+PE2޷ &j*l"G!>>ZMllU[d2ٌ~t D.\HppؔS.;.EKKduub 3aIҢuqq!;;|O`UoN$wDFFb4ihhY]fFR|r&OlSw N#lѣGm&˅OTر#Gʕ+YjU{Y*1 >|}!Xj< SL6 -(..ۉVXXZˋtZ-ϗKJvvBh) 0--E*z>D1bΞ=;vDXXvd6rHy-ZqF3UP[[+pkjj}ٳg9s=' ݑ-f3ϟ㟗wsvwJ%QQQVǛ'?? &MDUU999VNlr9AAAl۶jʣ>%L&n5 ZG[*33fFű~zl.cԩ: RB0nSlOs'V^MLLxyy㉏'00Ӫ-[dYZh Z kz}-MMMg u@&a68q"> 6m;e˖a[ZݭhxO>{{IENDB`context-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/01/0000755000175000017500000000000014613513621025736 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/01/foo.pdf0000644000175000017500000001342214411653175027223 0ustar hillehille%PDF-1.7 % 4 0 obj << /Filter /FlateDecode /Length 209 >> stream xڥMj1 >.PWdق2@[ȮԻUC,BX3a?a7!uH3 lRTi-zX| "9#ҽ1ChWǺtKh;"%ɡ>SX&3әM_-MKB6>,~rn_3LJ=Tu_J^Fb7.03WDɯ> stream application/pdfaa | 2023-03-15T20:04:36+08:00a2023-03-15T20:04:36+08:00www.pragma-ade.comcontextgarden.net2023.03.10 12:18tug.org2.10202303065.4linux-64LuaMetaTeX 2.10 20230306 + ConTeXt LMTX 2023.03.10 12:18LuaMetaTeX-2.10Falseuuid:8f141e5d-4ce0-a077-6ad8-db34621e4295uuid:9237d9b1-4eee-83db-8d05-e68fe0315272 endstream endobj 11 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1320 >> stream x}kLWgvvfPƵK R%XPF#?4EZ)bqqYpa"(Aͮ *6-hkl&ش6~t[r~|ə;yCZ-Ad۹Eyi+*733eVfKg"*IsJ$jA;$Ў'F8 NS1J$HfZ_.v8`I6s22濔~^r){KՇ[ڭsTu-A Q$b2MiԐoG4:Mj6QkӅ#aH&!aFǩpq\.uCgC.M/3ldːT.ML{(ߖ ?[-jLt:ُ/ Fq׿lBfZ߫1)j 2y8f !n+K6X@2yqeҬ(++AOy_WHPNVwo^B89l8wH> stream x}n0G$b'm'It+0ڎq$Nb5,i_ WiV)~slG7MI Ҕ/9xxA9t[& ` ,&9WfXt`4vZ̀2NۙhdZFu bc;rMWVRIVj&8cJNJqҜԹBP$ ܮ`u۬FhPq,ty.iZD%kcT&ɷC +ɄydCNPB޻> YH[LOt<={s_Vp @edҌ ;TC*EU7SP JSh QZLp sQ(.*_Wbpξ,nCѐ y ,WȖ{=îϼa~'ÚMO86qa endstream endobj 13 0 obj << /Filter /FlateDecode /Length 421 >> stream xڅSj0+@rp-gF04Ց& ljsRhB?͛7rn ^aн'BVb0yKZe("CVWX)I7XBk˶&'+5:i..sg[0ek> stream xڍUn< wK1ئl'AMbҮhӭ V= {Qx7yxH)! ai )d!}9$I !KAp`'_ Frn`Hyܱȟy³,f=7Hc9i1"aq6Xe~NCp):yZ ~>^ߩF ;Yk!Xmoͦ}V`O}օU[lST Wo0(^peC\B`#e`&,lod; ү9r_I_].{]nf!q #JC=9Ewn./+ THJ['jIUd]6#*hZҡZQ# H/[6ǁ:ؘۿT%YbLȎbǣ>NS.laQlT4udV.0L*Ṟ.retNؒz'qr endstream endobj 17 0 obj << /ID [ ] /Info 16 0 R /Root 15 0 R /Size 18 /Type /XRef /W [ 1 2 1 ] /Filter /FlateDecode /Length 65 >> stream x D;YB6RBjpH#j|)}7KU:zZÊ]Ql endstream endobj startxref 5611 %%EOFcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/01/cmd-window.png0000644000175000017500000005612114411653175030526 0ustar hillehillePNG  IHDR**sRGBgAMA a pHYs%%IR$[IDATx^}l]}9lrbS<馒,6]ʞ"nmFYKPLG](t 4nZ&Mז3JlbRT7Rb y=/sG{yޒTؖ"JE$7ul]ݐ}㺙i[*v6y;ehqߎ̲ua5;.;oPsヒJIfTot/S:8.CebROq_+n_Ρe6kVʯˉyg"i[e쌞.g=Kg*F7ZUlnW+[.ϝ[tzMilm9~eu-W6N XmCeQr2}\';([qAR{/tu礸tl vF~:ۺtjoTUXY y?\^upχn#a7q&57L ˕hUf#a;bם]&{2<4$w5+\~Cܔ]Ʒ-&$/{ krWl$r?*?q9<~jo`]տh?{ϻm,\-ޑKߵX93ic;ڍ-W,CQ[ETVNj'G)vO%6/}Onߺ"my~`.e}E*۶Q/ ZRXnu^]~v}޳O>e\R11Juml$ qy1}Ax T;n_fˀȎA8c+o%զվ! pIgf_Wv\;iݿ?<3{5͹3JE~;ߘ}uXlr`mIޑt49.w(o]y[ ~3S~moV=$:Ǵ?x[^yeߝr__u^W/!ylQyZ|WEyR>be^/7K?6%/췳, [ܯҡd,/ f7֎\xY̎8 RUY_rd,8{pZ[[/o1۷O>я[O|ȇ?ǴkO}ʏ}!GeϿuTWG޵oHo\k{HdK޻ݲ{G-'O$=)z#!^+Y g٫Q)&Frfu]܂MYzeՄ+~7N˙ 9ɨYKd>d];t}qyԓ1_䕯"cʦA>%O|ã\x+ʅTF9n({p?[Z'~'}o[|[ߒk5]vM֖~lc|ozA_z-P*+o_k=||]_/}܍Oɣ}x.9/H"Ϭ>8 ˗VٿC.&!_ͥWdu}8l=RT絯K_ 2AoÅ8 %9l(,6KUN9M"կ~)?m W^o6 w+`C >Z+!H&x{G\ש3g^cn /"ZyV+T;z}ι"yV@4/9;*/N]gM+) FHv\oF1*MmAh0RfACsTVސ+~Lo?hF9*^OWetڱcwyǏk\׿*LepFԊ ] Kge$榭ZICNYZ+fyYS P?*)꭬SǴ>¨-t\y5W-]^F!1j]+L04 "lӳÙ+CFuhv^-{BT"w~ 9l&5[ψ-nF<%ȓzB>he[o$-Nmf~] ]Lc Od˳m&Z֮Cb>$h"u&azF=">4Α `>G1[|x3!ٟG;P~ ,sss~0Ac>,i1(hڱ{MFc] \;8N͢v]{lszstLUM¹5t]%j:iÓՄM 9)Odcn}ޛE^>jsdvM&`PZ+)ڨ}_Dy?Ƚwk__.P ծg|P6)K;Y7 A݄قO @>hMi]kM/e];_̹ 6AX,v 9={emC3ډbɗuţvA8Ֆ[IU{/i'Su9)ݛE7ᗆuR~Z ,`H5byFŽ_x_UwTbB]9#eŔ|=M_Os%eB=P+{~N'u\tgp9j1GmUw`:B}lr]=zP'JVcۇ:!9hNFGjsk,p?R}U^^X)7:+ V|h%Żʊ~}{ߓuVb`VjA^YAVbwjr]'>oRI'Ss#$Ąa  9uQ,[ K-Ns? Jԝ~_fQiC7AiUYD; T4@EW^tW )<{]F_skPWߖOhZn, bdItRYj=ޠnN<Iuĭ45lZdM\07>\<N˩)M*v5ՖizU^-zU[ʝ#C]VV/IӖDC{k=}_/{S_mڻf5/S].`ׇk moowfAJC%'vޏ _4'ߖ~E"a`iΈ>/ٶÛ }U52Ji#[BD~,j?{d5yzlK2)y`Yz:76sSrUU=Ce\ˬ?yug]Qn#^;X6Ih3|So;fH>,S@u״c௟ud;!\ZsRڼ7 Y__|j)o~rwO^k~V4;x𠟲̿Il_6}\_2۟{?ʟ-M>.r_ܓ` jn &bɶj޸whdmmM/ڷo|kb|~?7{74//17f׾v_+ghXhڸ:hEx<֠i^q[Վ÷޸]=o "sSFYYo~ξv|_vG:*UJA g枳>&@e@v*=N N$ G@tl؄Z): xhɯmJ~sVX~Իr{~X9*C :*miSN=#O~ɪ,194O .e:,0YY٬ f(WezzI, E9UcVͰ&'ennC=9"`@%o{caz&rs+2}ԝptUN7HMy:sIыҫßvԈLaf~TͰ|D+2p ߗŁ"uyqnþ[ikgV%_Ew7MhPnf3GRyOv̚LallHU9992>9V:8xR5=߯lgebȒLZovLwӯe* K|q5/ ؎ǧ;}v105*><^"0ش^9!(-1>3䭬)uw!<'ǴțM5~F{g;?Vx(!s'Wew{7tw ehr;=;ǠM9kߘ9oDf]4}]\*-Daq܆jPH Ma9ѓ?MYYX4 vh圽ߧQp玕=\_rQ6ۘ-59^|H2F7ӯe:ݽ3ɘڗouط򆦖k]iJI/ut%!E7ts*9%dp= R6p3Z nZ$GeD/\s`~LVivuz}6zlqr|6 PP&:D6zxi5,vڥuXu?Dz]﨨ø T}`Z=T_9n²Zy3'7nk}hnus>~rC&fSvĈ ,GI}s4Q;7/bYaD>c_->ߪFsڎe!=5q=YxLWwz.=}0߉c6JُQp3+-ZXOAz}ܗ}{Mh>@x˗K$/ O; 1j֯Mt%V2Vp/*֭zmyFODߛ\\F|Aקo^tqI=>ٵma Ei2òM krNO) [5l@+ ,>GmG/ONNR ub`IPw8b*y Y )+}zd^qOĈ<>6$>deW/%rQjV7jb#2+c0 KW&yb&T'O1e[^>PRgZ,'3l3i0?HqaW{ f.t5ffϝK y[+m*DRVN90 uMy&wADz0EL\IjPdWz1_$(&u#P+[L@49kea RX@&\?T4ϳ>PBT9_f"n'Jcѕ7L"q nS|xݘ}Ү 5W˜*- .O$uzDźjzҢ6 sgљJܱ oA |߰Lc ׯ4QMky x`>|;*27"_D)n! Ny|>Q}&J~vLY}=O~O5Z nŜBk}ʮONuzm: jQս-MuO MPE>>X ODRs!X5Ie 4ǰh8eWNJ7lN9V^>,bl=ӯTiqŐnL`n_ ^Y\qͥ1<7g9f|E^@%4owlD2 }.SzQD ffXB~ݘnO8!7'E߯wbXrމo}Ν!y)sTͧpˊ|"`\#}$!aBuϾ2&RnLִZ2U֊动wD{Uns\f|5Q&TҊ7 t۔t=SZp0Ќ9l7Z1ψ18`  "qn;.4H ǩ6Ay>X$()IO(V֞-k;\QJMܷ4e9~-38ZtPEݙV)fׂ"_nEjWxE>փ ijTL-_АL{o@Ldzezt{qbS>6oF'~EB$sE0o@`qv>U"[X9_!h<sܓ6k悔#%;Ja-VE> .g#NV}:2ODI]2rSu=b ,]3tO}%W%w(QHp+PGז5?w)XBϷӑ e_稹z1(7(_%(>EWs`hxĥgt_Yyn; pll? W>Jk;NGVgtsc3Y-emg'j>xז̏-f5Gaɍ;Wɰz-UꭘcbvLN꟔p&r7Ʋ*&ڈ)n޶fg3?kը!9qV4M#tAf_fYr[ӿu>K[zjٯvbus4Ң-$qAxtR<|ij6YbBI@gס?Id=mTuȧ o<*>d?L.ӽLKU<+gw>{srl] ő MbC;>1 =01kv|'uźB >&cas>HIfKG}M1Q ծrm4ۈmن*^[逳e;~-S#in0eNMd*hv739{XDa泶2Ջ'ocX&C>-GeoewH_r7ֹ)p;H~󳟫hѯ_OQnWhScۥOFR-AY~z$M3}aM"\?̺5bwlNP[&EZ7>jmʕ+l5t}XƘzzDh}lڬjȆ-zG+B`cp;uG3؋Fd?`HN~XP9'nZF-5Jnr(fEk퓟W_z~C;4WE&4"%fUMВ+YAn h/rTĈ@@tTD@@tTඳ)++:º^Kr49s u9* +~Ԏu&G/JV WcS뻐uvrNuXcVܺ-nvªGk5,ɩ; .ʴ jbzOqOjڜn-ʰ߆ଡ଼Zhz6Kl@LL}N6̛atHpv2+2,f2??*Gzּt؟lP&s&(ZԈȼj:{|n>3@͙FPR³k6xjdwn;K` 6e]AہLH>;ZT-&z~Fie~onE=ay!7b7LJrXN6̞8 &A?9ӵO#23#|Svh@d)͘hD˥uiO:PfOd#Z%3s-+kf`\/39{IPQm*܆i?n6geqn@Esj?C)aY,Klĩ Z=e<Ң$<}5͋I?^ AqEC&EL0v8aE'L@4i ̲NI=aԮ\0*a9/ 4 vMf6;o5`a[PZ߶RF&0qP{֙`e7`Պ%|Hް|P(-AoZcGsjayy.&ag&hvM%ynM=}t{Mo9[nW*X~Q YҋP@aHT1v@Ng[jCsNfޝz>d:z:ʦS 4Z59eEvϸ=G&kcC *R|gFe{i<7Oe򆦖5ܼڊZgq4O9+.ҺJ~4;N!e-m-;^+XJYqƺ;N'3JSnK͸i wUL|&$rvpM;9І'hEm3V5+&`[;[e\SD+gi}|Cy6ߕůJ=mZ-eqBp [\ؼ>L!N_m(O+6T\_uUTBQ6Ov+o~&N؈M8,:_m#ێݵFOwNAݹ>qV=]D(b5uw^#V[ʶZ7"L P<(O`O6rـH;;U߬ fk)fQyʎoT/Ъd "OKY 8jW7Ol9۵o! k$侘dD:UhV[$kchg@u:3iqZbSn>'A0O/b;fBCNm:ڻ.I\̵@-:;<ևE[%MBruʚɭʋ~np玵(5Q8Cd2or/6DMZp9zEއE#Xp;iPQh'퓳8A˟A-d }UrPNIo䙹J拧:ꗵnDp_@+ybXVhشCOȪ}x.hPyԮ~fjMWj6ФWo pz{Ў~׬3yjfE,㴰s aSڙGe$n`R>TpHݜQj@?G`l|R!G@D|ѯ Y*"`E? ~  QTF(F#PW_"PIDby(f P 8E{OI}x$G@tT"P [G ix@TD$q'/DAkS @TDDK|U\B51 y*b5N!V*^Q`*7 h$R ΀uNHʂvϭɱgwz0ϯK;q´ F>`yT"S#2i~mG &?~l(Se~a3= Gdy$Ywd<=e^xSIa{ϜcvGI}?*2mkj$ ؤ7ɏz6drhn'~ٔSGdzzuoFd'&aW|uѤɃ2v~ʦtocj64k VǗf:8o\ +M_(&*ۢ}3O;m+3m|toF۩2w9f~* /ܔ./z-J<*-CS]9|]ɱ6f7 >,s~u96O3Y,,k;iV7y=3b?kXfGsI>iP:fUA]n;]\rl{smCLbgݻ)[ Wn6R]9|EKdyaQ>DZʴ5Y9ܭۤ/O͖6+/f7 EDξQH epSN6v0LB蒌bU-"MJ,@kڷ:v9צ{Gխ픡 Y~rT{W)zV^S a$d*]%;LeL[ϛx`|wu?A.GAL/mkF; ;͟,ݭTOm}ЄVn@پ伙tܿNf[@MxOmDVoD dĨ>} [r ŚnFv۷2W>AV}}srQ͵>םݾ5] h#H-֍߈Û׋ؔw'|MZZܐe; ŚYMT'lN]g}Q[+ݾ5@孤gEBJ.e)+ eT&A7A*WBډOʰk~;eB m :-og?%cFˋɘDg'ך(J}ejU~o/3l9\+ǣ?U׎ϑ}+켙v pw\B2Nƾ9uסk*&(?z-S+WwGߤ2}hLAL"?]t׼rxy~M8ƒOϯR{&aZmkasq2t]SS#M;clWWVyRp1moێ,{}H7trDi)osh3i?j“o[̦N#5@h*TruT( _SP*0`D@@tTD@@tTC[$6 @D'1( :*)B :*C 2=EĈ@@4*՞ DB7i<樐 QWڋ@@D\i/!P!P#>=%MTōʵE ~T(`_+ :*0xJ'4O *H/A/C ~AE*m Th @Ll )bBbQ2=h.G:*-~:*}8_)P-_jz iӧB᪨MLѰE| D1o,D'.G_"$\B PG@tT×"PVV JE?EJ~DD3Ql B N*HeRQQ.TLBg]&G@L}*ZPG@T=@\TD@@tlGķE NZTD9*&I":؄!P[ b/ѡx$"B :*k @ŽX h^> TD#4e+@LRED'*d9*?ѱS JU(P @tL)duTD'MLRAE$PG@|R~9*C :VO!PJ$Il*C ǣ@@tTD@@tTD@@tTD@@tTD#1)q Z  hT@@4L ZYq+0X?IQ:1 :h0E*TLmzgED'uy)B_bB/I%I9*V+R.=Z싢_bB/ѱP @l 9*c;| h$ 9*RP @lTuEh @dL ڼPG@tl/ARq) o@@tRzJ!P!PT{~*0h$4O F*C :$_ M><P @tRmKX :*JfĢb“ ~Gb[GX@LRjNķE v@,m+J57ڍ# ^uC޼?o#׮?Kr:E#}o*"\vMhڅJo߰lnG{Ҋlo]`pB_ի2|>&&X1ʦh=E)ۡb5[TtM QQ]2r߻GtrC/)7n\`H}cۏKygStT+ޑ%PAHnlt "}w˞=4O 2<4?%bIom]~, ^z ~TmGP}=z esT=$)9*O#Je[H,{Rl0xZSe{T*rU'Hl0HJWJ "6uㆋZ`E*N= ZC={bl=wG :*wuKT={ի(- Vyֶu TEOSٻ⑦i"mztOG]2=x[[[-!ݳ'@,ҽ{;?׮Q?@DDһm?/~qG}TR'1I*IB Ib_RC*O >6!;@tmIRro`46!MLĢĂ2_c~H EfЍ (DvH X%u Y*"'=xhJ҄D%րJ*"h}c`IkHGAj#(h&Pږm't֦8؞) 6{4IUDvI_B`U'P0x.rT &L!C@BT_K fo $T MLo} ")]M*&RlGgIS*C$noo`46!@E$q9*Q9*ZGEv( *"b~i04b_T-U1J" ZKcN1"lW /b_wAuT\?*Qtk{K+G@]z֟SE;(q2ŵv$ ˗޽{%{hV } K:t]O.?gy7󁊾s^ywٳ OZ]]wy)2qj"]E;wro6GEKz{ョ2}T4Zw߳_/.[? AsRΞ=+.\GFFlnJSfxh+׮]9#^ vқ/g^o~ru{eݒJ"IE$/Pںa{޶ʕޒm^\=Gdhx6ss7nܰ\t9IMrܽoIMbb; WBYxR֖!Wg+1ӷ+&qDQf{lWNY1Hƻ'k~݌ ]9vܢnY}i[[n_u|7m8='s,)Й4_ =snmnhשl?#4j~0;#,'KuqssqIr7l]s~u֡v½hqDflN >Yft>=vv7̽GE.]ߎ竞f֥ͺ*vp_q:3wseD=g֌tdXw`߻R^ɿ#sv_ݶkjjӊb?d֧{˨cuszo M?.o?~62u9=ͼTݨ퓛斫q F"cى~㭮g0{]T]NO֤~QX}w~}ͻ~~'=۬N3_tٷy-y3۪VqGe&x] 믟v_xuJv~UݤQ]8{~P2{ GPVVWr;](WVٸz\a^w״lu筭3)8 "l^USXGs:[NS'\=2e;_e¼n+v?~DK_zn5U:9Ņ2 o몽_݋w}w{O{/\jT1 X^.W_kׯ@C/]twr$Lu°c%pn+7ͽ ojlWי7WO/u7ٲ7쫝ǭNWz(=v}u/wri_݂vy^]N׭sWeV].93-k_&rjnXߜ]wm!tǑc&DVh+7c7"!]W=&Cח ^NǮI~*jSlL&qy{=Jy dϺ]W7ǧBf 8ab_>"u{N7泟̸?gËefgocٙu=uS=n+̧d{躳;㱓:—rv}~a\mt8Ͼrxjf:nfeU:Ӎ]{7c~i^xxeѿ/.{Ήgz='fNqoa.쾕*et9Yswa{Enzv7jeFԦC?Vt[?>. -[86r\Au\uxzƅ4M=)}ϮR6a5{֩33Iݯ[Ɨ͛W&+hCXWF|Caz2de՝wl2aھ?{|vܫӲ#21teח m}X&/LR[BkhhHj^z4(,IIENDB`context-modules-20240428/doc/context/third/context-notes-zh-cn/src/figures/01/win-r.jpg0000644000175000017500000044476214411653175027522 0ustar hillehilleJFIFHH0ExifII*  (1 2i%XiaomiRedmi 3SHHGIMP 2.10.322023:03:13 17:59:19,4"' 0220<P dl t  |&0100@$  d2023:03:13 17:53:512023:03:13 17:53:51;dd146261146261146261{"sensor_type":"rear","mirror":false}  512023:03:13 v|M-JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|i_ss^\l3݇z"h94 #fjQ C4FF|ڬ'YyYZ}*cM{?-KbHi:޳sbZh/fsΣrַZ{n6c^y>䐍Zg-ч@3Ɣx힕3F(B\G֨b4Qƥ*Izͼ2\Sӯ#!]иqw3Ij:mkݷ9֓c3e7 "LW<ʽGKVx>Kw1 yK2ݸs^sb1T8;IKp=+cc,JAT=G}iA~4wCүcˋ,<9[+4/Ҷ5։I|'چJ \U+Ɩ~mv̲`9aj:mk8(_9bOC+=7ⷈ4MeC HQo9wl?>^h{BRzӃSYKK rNj(}+_CSJR[:hϾHT*+)RȠD[ uZnfIIe֟$'1>W<7GkC=Zl6;4vfL׋ wNe/'8l'Zv>ϭ"2 ՈdLV恓=h)}xb+51wv >0)Xe}j6~wqT~cTֶ=ȍ` `ȷnJI?J(}.W2h#:<j^ڦvcT<|?X-qdRAb%Wzmx=YZ!erC}ь DjbG(k [o+0(Xw.YJw({G<2đEm*p҆ bط%@u=5(@ʻM7]桡Yjk:=LKu3#uQV̖ڞ}Ac@Zs/J!O+?HH'`/4rkҒDti*`(*Oy qt0X]´ѹ tNٿ3FB[9~HSVXJ4(Ox=Y*F"Ot<*h*u+h uZ~ߋ+' e1K{~B&O:ypsFau)G r(Ρc{=@xO+BTJ(kR-븏XpaJR.jt'8R%{އt +0jFկ*"zG'+}/Ķ_#2DYk#¿C~G5Qºx_H!|Em\ {Lxy5mcnf;?YPMxyާpb:[FV^. +M6X)V^:[oº |F^9-  g~M> kvz&Mr09$Vdv ITXV-vZ"lWtA?rZP'P\vL ێ+X|[j$$9 rHOaج4F:(&s,|ߥq_O 7N_xku>"{gW{ *'*/Ue:$D"MZVRq@>T˦m> gO. ?: |(xK!o)B#9gywo޸qĥ~7X.-ezWY-K!EՎme򧸔ȫ'3n.7+ Re23NrxQ O4iH 8-EF?q, \F3 gKtnvO/Í,|qjy?CZ㞕,! =֑d⻏DsOT :P(9-286G\6"g?wWEgid-cRI5ˌLOFr)T/D+1#M0 i =^~I'׊63/Gkh,GZQ V7:GBߝMseYpqU>Ejg!8 nV'#htD`=*6<*.r +Y̐,)DGRG+lըGrsX(}OEFfPʑIkF3aL-ڱyg'3Ee"oYAC5SZFuIYz;kz XxI#$}Z6n JX7~tX ^ڣڤ2&l}k(3EMϖ iXw5巁1AS&%C4>2A$%bJ!yD#¢s 5'SwRQzM4eQwĊ*li8'5ͣj>ԡƪ T@#?Z .:i8?aZج?崜\]=._ Nf](þ}xJA9b,~ڛ"O-=2)!Kȭi.bUJmbED$a_]367x8+5]R{[-7LGuG 1mGP楤]چx3ȬPR|6V*Wۡ٧|m+c3+[JÚ]WӦ?JaP@=i .9\SqGo'V[b9!Lk2$U:Է RĐq9"8AC3$ 2jL[ 1?WcVX5Y|!Ewqȋ rzj8Fq(yDaj-d2JOkkT/>ƱF@?yk׊7'ϊlMYcb0AQ4ĸJZ k 5'ze/ k?;Ζpy9?'5n_@8g5GÇ т5OYGo="'Q㵞9W ~T WWQi| kIY 6:gy"Fgf܈r3n|{?He$՚C* D uf^+ ]{RҜ) (i>_Mj>(Y~3+ރ?e)mG5 ׭zƹqrj,wyǎTy#_?^{߆ڕͿ#?l1>_Ƽ7-Nj r8|[.<1i 0a 1^+5C1Qa#953(ZaP*I!h~KsQ1E+$4x {hP]0=AGOm|MLj5m/!c5o$3FdM::)>*x>m.QBA܎y ^sH9ӉM߮[H;Q$kǮ ܱTN kB&) b \p)Ƭ\ɴH-av hi{MT\l|#8Bz ;)2I+v&RsU*2 PD\c,jsW5_OXǜ M Ƒ[HX/ke׼+=|!w8D¹bkB+{9c% D!=/F/u<+U_=׆p6ONtsUKFƲ׃uwQ< P:e>a'U;)m)0F2k[)%EYsҮhjN\ JYC-եo+=JEPS6)FoM q@¨{Ա铱ZmF*jn9'Rm,^#8*ˆG@+;'5kq?0+"Xҙ-FEC*iuO 1By!o躲]P)V@qk̥$-+}Zjku^+:<{CA$ xzLN D n2zWw7ѺZ["NG'iEZaQ rt>ҒoU:jJRlxf9#VL chCi>Q~aQ#k Q]} +Kb !_\q]1+պoFIֺPȞ!?sݜ&{bGNqYm?Z FS$taFKTY60 &_)Bcߥnj{o/qaSx⼫W{vօm+ +``Vpb22c]^~}m%tk\6?V,V." p*J~Ž3Q]Fy`Ftcdz/!Kyoʱfז9jŇgkKc{C~#][xq#`#szsok[{<2@r3ZVY\Onń,:2CŒ w~7|5vC}+3])hs=GpDLg&%Ba58A=|f3Ov[65F㍎G>?N{nKr8 <-uȕ9d>W_¼Qo$1-#tQ{W|]I>k w6GQc fI z `$b{aҥ#i` S^xR(`"?p뎴-SWL4 wbW澔~#!'tOLSgιq>E8n[(-}/ne7JZEtNSNa{\#Xv+Frsp+%du)$A;`jYW> 0:9@ ҷ|D6ht:h?JQ5 ي̣dr?B)09S'›(B9#Q`0=i( F(5eݪL8Jz# }J\~ K@i099jFm'< E \]Nyt1ڞ(_jpZk>=JL[i15oi6ltjHD+gp4d-vh:q=(l '-N k:;G$Sߕ/G?J.Mgg%"ffS3 qr}Jue6\8Skcwk-^H۔D =`uH}!>GW%ZpkFߪ<ջ^K|UĻf DdQ&Bž5)౱f"1ׂ¹\g7+O5lsw/Yʞ2SS|^LeG*/]ⶖ; JI@Է~ӭ͘H,]ɪKToe 5K.>w(Yb>ӖK]DXM W&G*8=B_(2IPN5O?:O~td[wp{ а[']}+ RPG݈)$p!p۳ ūg9sQ]9j͜gE؊)9( { (ލ4pD6ʧK! $TֆYn#𾖺.9\cPǿnnrMzݰƙ0|θh# _<(+B$+o۵VC~Wqs~0 (Ѯ;ϱA-3sFHg?(WJ.4t6+=M$kS2w On=| З%!KCZܻSkCncQ.zs\&kTsh7lDJP<>bHp3W@j Eٯm]*w3?4{{Tď?0mK|ȶVYڜWꖺSϪ5Ŷiha qɁ^f'uGe q1MW8hNDPM *Ќk4$ys3zɦt-b 0<5sc% HY!aJdHBJH=\W'5T4$>bf,Ae*QmiJaby#!_zFl}) YK$2"L+yK'ރڣ)gb+sZabr) BxV[Ŏ$^:#h p=-GjzƠdsБעr5[;kvr8 rn7h?:5%ri_ ]G)0@ >q^k5蛇101рU>>O[J[QB?)biv#X8|]oh~_b9j͸j󦯀YV7Ϳp3 i 'wÌj=/ nA*?1 ߃9?JTݩI,A nl8u:5I,m|N uo[[}?frn寊Zt29ҍ7v3!x2񚇁VͧIyTzU,|%s'!~TQTYlOʞ--~QH?SkKpOJ([K+>Lyj m"Oʊ)`!'oC#1EƄX"'y1d-*(Ÿ-qJ giQE hU/柕;c>RuC{4;8Nݢ [ !?tMXϔPm?t oQE:Kh~T" 簢} [ kPaקP c http://ns.adobe.com/xap/1.0/ ICC_PROFILElcms0mntrRGB XYZ  7/acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBCCX    o?GemthLɏ,>l52..r~@9<]UAO9=4`MՖYپ_3Q \5'wx4{eǮgW!`Ej"o ǏB87=Y{-+&]sߚV7.qu7{2PK+#ǖf|]|gq>pw/ILrtkT0 T LrbLZUa"q:f%q}H̩v.oV]*J9K㹸1ܢRkzr4NBD9YU3ėCw./1tdj+Ck%Ҕҥ3cY>?&GIf/Zձp7)8~;{E'p⬊e HIظ-yUs#9%q]KTXnP;5۬/LcLql:*0,W :"&o:|. oWclR:nJ]-:.a󳯋jj:kc;WWKFwaU-QfUk,Ԝ'(2$mg|5m閭KΦnu 9OzvRccZzEBk$\Lo/}fc&8j urW/\V'2˼\a|r7AP6kꩉ9`I{~%#OQ3}:%՞(Ú4UR,]y>Xo}9Y =-|kh3(QGiN&&㕛(mL~pqwGK\i1gM)jÞkj{5ȓ+H;%4Gm3@rTIZKcR-uxE` 7MϞE4Jh),L4t[%3>D%<4{+s5]\HNGA jN_l/Cnrqy#[pW^Z]>c:}{#-W@e ,fEP!Ԍm꧍RQvVGnVVhN%.)ҩMLȧLl8m \o#/1w_﷝|}Hҝ|2@ hJN^jrҲyT=82 jinBF%̴Q 'Q#Y<~xwjKΕFuHe 4̢oyKrQ4cJPVlևMяK7Ӭ6K:K%|zaAsGȵg͊V xDۇLlChߩBj#ԑ\&9:&R&{A !H%Kk+3${,UAhE; LL}W}zkG֥Ω:*,q.w;ut)o_5zP:*>2Tk[O\pZoHCGE8!Kԗw-Mt5>E,jUyx23?ByտvJ5Mi.]t;*I$?au n`tT r<<pՋVpYasFMKN'Niю؈ C4ץU\o&u3M9/_Ts1Nqy&leMꃘFg[$|Lw b1? ٦$Kn>>t3Ӿzgǹiف(2~+Rz$achxk h6y]epc=s\ϚhgVvyryަ(6`AC1N˝]&etC_6ЙTldHOb5'PWggsMeKgQF3رtd|o>QF;YlYCҁC6U)IdrsVj>uXՎM@hz՛n rs4z 4 ]UP@͸nv fA`hFY exJ`r8tc cp6u~[^i}~EhL!iZڻבM[ Mj*@,A@1~d W!Hbm$@7^TA[,V,+35V-:yL`8k:_I }c)5 -%B\&QsnXU ISH6q=4%.O2>iДX0z:+D]_sLyMJP4^iȌWѨ2XKh^{3]kn|6]gGCydC3M4u`iGikq*e.y3C`'Ft>:L"y:؝cO|e_j7Tr[qiZiyiս~@&:l]|}Wf_ϱ^XbLpEvȉXRk?j 6{ C Gi*8aC8Or+W㿽M_4x]xNo:8z? xCW;3ǯϧߐ|!/i\<0=C0^AInj*J&rbk~;*PK="r IPKmGO[~mAyޠoW,>Ͽ ּ߰ze"> !!xW N:!sSqT_ꮃ) ϰ={Ӛؽ-˼ =}'4-@;kɠ,M[Hf ?Ii)Gʹik qSJMhW{(WL UEWI|(o/uEm^Sn远<g7~N/?_??pW#cmo8a]W} p" ~erO Q- dzWv"L6 +w^΢!QH栉{Adl*];Xn"τ3+7Nig;>wڰA'V&m29![9bᷫg)9|-L܋<0 !n'3&Iq.KGxn蛕 6HJG[v{9z}_`;97a_1=}Ԛ}2vg:{\{9|^L =tΫ\.@ pu{:Ke!RrSbmEt\k.38Ue!TKO&C=AT>~b\lk4MQA@$ 'a/N}I, H94)T'$)r jqZANp,,S4IȓE qIZ}CI)xjVvq)|t$R¡Q9E[̕x9 |*^]uNzE I-')¯_ɢmOϓz7 ^~hgd y*/5w5gog ;)0=OT@ngsfwr1=q-ukbb%!b΅ 5PC̓tVҺUY2W̮e>yLKH"͈뎧^=C9OlҭDr)Q]CAVާܭ1=T{&'W2@|U[jLcS -y2cl$%˕T] h'Eĝ[&TDN=\ N,7''.a Qk>_?Dho}z(MLSL֠4dzAbl:6Wѹ9NA`{h++\xқR5@Pmu5e 'RR9_B2i*8`@7H(zӇ\MR4 4{ vf(R*ulex'ܢe`tQmʼna6$4QdH\hF E48)P -s&Z#5).Z8 AFʘ%iMF i2^쫝mp$|g_pI5Qe!15-jJCߘٞM.B(=Mb}̻hR`f&A^9=ߚ^V;*r"a "uȑ4 ų4=6.%&*8AhڐD@.*NBl|դ= 7|#D'R 4jRA"yw:ӔLoFekm0Zb?%NVw2٣ァ.o:ҡI9rUڹXꚷk$>3a1)T;%Fu9[U1"[2V ][(Hw꧐=L1]hk4VAXRhI"Tױ^!GpUltͭghT rNÆ>(\C!.5pm(HfXbQ AgD)ǩIs93PҁȕOjТIKD.h}4OGq[3:\S!,E^xwc>#/ hwJU5$iHeD&Nr14YJ2d)^Tx~%TR;D`QZmI55IabE ^*Fm%p-`(,ڪ@I`cEt7T2Z4p({p$\/"x}٬5^(EV΋ZPyMNxk^5/<H&tP{Ggv6ȹBIγl(THPEMCշݠzĂnͷa ՃZtmnxWn )gG}K;xQvd}^LFzZFMez4Zn:z'U ~n>E%za`ئZRT:ZovсE}9y8fHRGAq,RRwQn4K87Mk3rMiոr׉2Ҍu}Ԙ{)q]cꟉٍ3Eŭg#j7 G?l_O6YZuͬNX<;`#k:21t2zG2J7A^) xÌIOS\[7ĵi4khMpjRzz[\F n%toQiƸ̮.:D"xy/}m~m1ǿc{ 0s|֬mH* d"Rr\ eA`IP(ձ!8@=hE^71̛vuLg{0&BPEf+:)h}GK3'Ofo,I;? ,K}[(t>ջruhzvÿ<73:΅PhL) *Ņޘ-W9,..rڎԥQy4)-PB]Ldhܻl)c\(Sҥ]5|7<^%Nk\t&E)4CvLαx.vc k;gPIvfĈ:gsBdLcm/o( VR ܹ|b@SmSr$XҚ1Юl~yٸ{lrSMS*D霨ACcYW7_~nsמMطycmBO$O Jg{d%HŚ +HKwfJft4M$8jŔCR͞!ޘQ8[l Q!m-b .zjc*G~ײl&.aPzC'-Bi2]ΩBe'8Dz]9.hJY+]QgpR4:bo+4$RD?(5fܴ hGr) qtuѰ*ͧ+;-ImžƖNg:Fx4rpa}ɠ~WObll S::wȀjӚN2S! $bp.,(ƴViw Gwh;D[I=;$cÜP˗eV;-[ 4 MPs"5r4rQu2FOvj\(7:mJd ؀.x/i f ܦLCi}=G:KWI֎ksngJjtbH/6ɝuY_<()S3G姝ϒpڝ/08W{MaMr¡Cdͥ6*YJɁ5Nh' ƫCMkD4sވ }#$lvnU+VsӺSԾSެRUVcnFqtRNcTOEyXP2۩Paar%1F^f2†B-`y:E"]5M,aI0l|"9нPRL[jq@}:8S҅ :r% p:L¥-M OrۊJhEM=$?4G=iO/zy~"j_,+EITrG4w`:@ %VfM^O\˄UK&k5QWsZ//hqOBwwX=yzUlc7YDzԋ'(^LK֪#sugj@)Sj#Nޥ)/zz@srV ׯe2׻mj:q5SaO&2}v\.E槐U#y&j ؛gj:bvi$2sUsiٳeyNWXB]Mʻ&,8p(QLGSdd RFWnE;}< c^^": J%*Jx=7?66cŸME\NeTުME[+FVAAv֭8&\Z8UkR^t[ڍ]QZxv*k)4n:xSD'?i!# `vO@Uw/ISTȬctCX# j3ݳ{u֌6+-_IJ^3ϰw[ |SOF[{팪lZ}%;; -džQ^mQSƢ*lS߹.\Z]#rܫHq]GB~sUnM_\C49py4/u{+cLZˇw4oa1aZWÆv]uEv! 9+U]"~][Vntܔ| >F7gtaُ,H!GoF޾^\zIgL˵'[Tx5N!/PJ%l}?g&GqhpOrj~Xv+~+'I;>u-/GwMJڻ:cn3jd܍̭ѻyRs9|!8mĆu ᨼ66w)[Trߺsŗ=߻Arxy-yUGn=w'B8=AWI~_O@%NK+y0Z`2];|RKxUݫ᪭SM=O-;qۭǾmrj]~"ufiKX1AٖdV9o-7{kW;02^SUzݍe|r{k+``u]Hݵ+"wvc,uP?yg=]fq5rLNt޵j(+f#Pz'I҇e'~鿶,,WYA Lъew%|."82\xh?{h˒pX_(;ɠ(݅ws_:=.,M7l6CS q˽с&r þ1(:7bڻJ韧3!ZC~2@{K˘ҡ̜!$ (;iv֎΢?ܩX;#V;,gӵoF= ϐ(\L|ޡw$ɰ:~TL?QNǷih_mk{4(]{a夿jj~2r|!|";;鰺-X|1Sja 3u=3򱏡 C6 >D羬ͿwO+Amlk"ĒB?A8JX+5>ҽ? -,,=Q`C `1[n-˳CΓ5(YE9D|QqچM;Iմ5J3hݙ]N X@\L=HofNK*$TRw%e|0j'\xm?9_Uo$GG4BfI'5grߧ;>Z]w[wS[2hwӘ]SRdJ$юV[uLHYfrO .dP1 NX3Z"!&VOWi/QA^4I2(,TT"Q ZJixZik)1gd5ܙC\-YQZ)XzXnZ`~.i&Ghu!Tmv)Y: wWYݷ 6qj!nkE#j4>Ū )z^j"j8R[cɵ(jmU/smu('&jA"PA<}/(%4#' V<[U/2||y"쬄w2/FsCJ5CZAmkLØt йOrjeHZ2Alԟpy_ptGpp?q4p_qtr6 `1?C/ } n}GYMYs GG)LQWrip&FJ *3k7$ښQ Dܺj|ʌ5 '#Tںj7Qj.רztΘ,6I T.R'^~!]XԵ̪r3Ygk櫺CBm~em?Sj5~-5pq&"Y'vq?KnܽQw?Ee[5 s/' o]}vj)Ƕeitgt}-G kBo<яmNx0 û>(Fj=P]t<\S;+`-7 ѴRq;v3ƻũ?oDwS>cܾP$&|muj^XȈ4U%U[rƅr W`w.ݪ$s]Gܞ~f;M],G$ {-ݫ*زLc9;NmXo~}ǸufK]M邸q\S~qq<"H_%,m^KH/pAegbϧZ - n@σj:[wNw>zFlUAo>v505S܋#^{ ~P< j nij;Vܫ£}Lg-nMsjɶ*O#tzޭMW$lZԕ}2/* ~5Hnx{C<3nηƢiݷ{{f'i¯z*KSW\D xX5f*q'F9UAĢXVvurڮ~M|q6Ky,9|wY..[x_p行#}<]1&Ǩn~{W%+Ȣy'M+sčm'k ~P:Kٯ.Wk' =݌tyj|K)T<:-XNnK+. Pr) ܖE7bEMTnٴv~ :Pd,) }nKltN=c74WawSrQYZne٩`|.ev7'sTTnE˻\VJ2m?g͎'C$:DS09c nc_"5LBu[P+rE/$\0ߛdm#<~v 9CX8 nY-`Y& ~{ˏfE6;};~"5[R`+ut5mmK;qMҕ-n`#,Ҵa56OX"O!JۉZ=:CUzcRJS]9{.韪K qTa ,e+m>fb E+ Y#msm^ `u1A_OYG-gj 纚[U./8'F 6MwRS\[*,}\1 \NKֵj*IJwJ5mש~jZi誊 (h9+' nu\\;N{ Mod{'?JJkFԐOѺi]kQ8?G|14")gm%Woe<.yٻPMKڷum٭C.7^oo?R-/JAM.ϝ?e[/Wp쎙 蝰>h"V8ceգ&䎢TmV8>vEz`JCD L[UXj]ڊfU#4{dOoM+]tfG ,9ɚ`krq \,k4a6JV &m Lasb\'Dž%H%:Vp¢k|X&'5˦J 9@T`sBG"&0.+xa OM{5K^*7{,8&>2|,eEO,8,4ZM9ozjwv6ҳm5g}՛ ;f,A%5nh qcT4W۝l6d>"6J.v~?qa~̕Ym%7Tx6I}f=6>T٪`)~ %SVV0sQōqH19ژ4u}wvp A.MQi%ٽ_W].vLPSLy\6=#|߈͸ _hٍt2rܹnDrgWxQS]7n\dOo::r W$O=lU?N.|9+ޢPg*tƪs6ʤ9?@3; $MD(B'*2B3J/I.Cdvz@a,lR߷Q؁6 FfjZy%[aڛC I!n]d*Hhw ٺFFѓ_p!\3G-z-x6wŎK޲3Ç˒p9n~4B쿖̨ pKev&ךT wǔD"Gts8STu=WEz6m(Qqo U5~"]Rg mCk}muYN~ji[jZCRVKd;icL[|Wo~i-'%~ZQ9w/{rҼCSOU-ZA_KV %d>>d8v&#18>z=Ot~jM[~puU|עA[Yf}[ضHrC]i\fYZ;.zOgb(N#eo5}EZUS>w9rVGѡi8̻YN=!PBec秔>p{q"d'?+f ";uA=6 Q)ǰl6R,zެۛ}q7RSue~,|;O[2ΰFG.ܾw_{{f(?Fr?,4 d,aIWpq*2px-Octcj3 \JG4['ͽaR]>@FSB:ͣݲ:<0T;}ܱG}mdAT~p4 L1IkIBed- xf4e1ܸ85v!$ ;YM)L (šg+j잭&l K{mZJI[# }ང3+ZrцĠd,>> [2T^ʚ[n=<ಢJš#ƞYKY茷*ƞ*zrIsIXs@ew {Վz՗hU.$ v>riITVz#cvN^%Q) × vEUUGmҖE<Fh%2E4Vʙ_lbN>'9ĂKR(Y_Oim54BG_mZm%]֭yڽwSڝ{Z;j5CjuOmQTjJ}ܶs}4ʚ).} Tc&2{J"l3„*\IuT斖8e8cmUFۅlsRW&J04@sj.ZkgciDOr"}}ig[-4>aOļڶj+_+S)QLs .in<#m[\U}99r ^X5=~KBZa-upC_i"<}+_pt]WMw G7GGzj+ෘjKyu#/!JShic.w6,1|W$zeR)\|2m;Scc ]M,Bz@>Fe \])w6oq~mCJdHU^N.PL_ ^z>ot:WԣˮHԮFHʶHvLY:^N)xr2x!6.S96OY+iɆO-0s5OM5n0=Xtp. e׉|:ȶ&ՐG%-F=Xդ\۫2iHS/w9/&ݜ[ޤj7 .rmZ'^SoڌB~sHOs׽'2'r*#s9c 纎icv{5MD&[om$BAGѡc_~~ov|TcPmB7NwŸrocܫ_HԼk~ 7DoF.mxseZq?S2nhT [)#s$I-^~ѹgK[;LWt;"I0χ+]T߯;U3mIß5w=C LM_4WZsޣPUP:6Gm*ljmuu\9^&?/ 2K.) xis$4Ɇn]{{ܜ`r\Y =o]=aќ2$G%֔e(|#q ⁥ikq˸80W]~)cs?A RKj^[q+a4d;8@Wd~2OǍ"F=lL%t6!4FpGQcퟒO9؉B9G cd,`ܜa &._qC{c?68uC݊sZ@%g.8nrJcҭ/,ƴ\V0#ŭGx&\62:F-KxE'E8q!*`q1,'HoCL:o'ҜޘH4H$IfdxX2PEerҁw\~;FYvۄ;cۑo}F1 f%rqqT+ ޘey۪)CH﷫xXSZVFs˚r㆞?#rYj++7P7T]k[裢n&#ÑyRDešƾ<`\x#(-04"عa<Ǐ$#DS@@gɽ2[1:*wrFm[r/]of61dEX&M,[gζe- ^b |4׋ЦK7E&Z'+i0DcGZ֯햘(de=V0s FWQՔ5zeՏ0ُ=C]m OhtZe6koIkHx,|pckf_-F*EISlr14wYԴU.kikXM\!pZ V ]vH b(Zh_ںDnבо^vRIWu_S'(l(l!V[;[f]cn/`m}s9T[h^=S,tz2paCgbe4 cxm8^`ND  tT+ctͷi{_OD)nc ڋ Z[G5%i1hkm%>? ZYmmhgWY>WJ i|OҖn yM^KeP .ִ{ΡaCPZDЎiU_|4>i5J/W?{ݥ޽.P,P0Q.wLA} V_z¼jۿin]nm&u%[tגTrK1uD}-Qo_uQ^8so]oxE}Wc[]|Nj`R뮢Q/uvsESK7J}k֥uO!-HScELZr4傎)AKS84[i9 R6|0{-`696Si`%t X1<H8l4ZX84iؤI_ kZIjx/68c x`;̈́>&豊 Xyc+c *hq&9B.Lyvqlm ״pY  !1"67ATqs2QSUar&'0R#BCDb35cdt%4E?DH'"L4pOVq@BTi(2̉BvrkS  (BJ `$( BGwS0Czrz  #J4"ḂRRD(("!ȕN%YCE6!BxNv%%FfМ@("iP!M&C( '"BQ EJjk^D d(V+J5Ѝ "bZE454nE:4@9 Ve2)lrM'dQ6"&-  RUʃPjEșFFMYَ.qwqܽ`,>|a!0WZrPs' g9 u!a||a|1FlFl #O[gG`,>a/o8+ g9qPsb['1A kT@AMF*pSBVDEB 8:ހA͊؄\؅+]mY_<*rtXͥւI 66>^ѱTjOWLo}ZsW\m}ZsWlm}?Ӛ㏓ӚcӚӚӚӚco|oO{ {Z {I˓j"Tf B.Dj )XB@#ABVef@ͻhSѠ*VeMeJiZa||769'P!9ы2s(Ls׶p#G .M^eˢm%gCz*T2!J@S0R"(!BR6'ʱjSvn~Sz%JIRZxP#\s׶?:?YzvZ@ %JJiRJuB̥6)SG9HP5kZsn+1A(SѠ4Xm!}w, V^hx"],ġ;J ހMjM8 4*Q'(!CAI@-(T ]}ObԿdW+Hʙ!o<=偺j˅ b6Ee@N@M(PYdDN u!4RTPF\*F-uv4y>UR~SzUQurb{ ( Ag u|=(G6\SP (J%B(5eD!HYQ@J悜B Lnl",*555Bwbl֪tX}%3ɂblѹ$v׆{nGk]:]ݾטvj}1vjû=1ujû}1tՏvz;^bի.vӣV}yFNXg.:GkM^GkC]GkXuxy3gikhA߿°'X;XmN ̈́E` Pp%qQ(i!MB`Nj-k4tD-3C9,quFy.2c>+r))ĩC&SNc-A NB) 6wj@.wʜ:Z6 4<E'2uJ@HMMMJ]{@(E {WZd46V6VW{&ٰCZ w> A(A]R( E#d5 T(Q(+IR *h)9{^Yr8/c}}O6*v3)ہXݴT(kEfB5M(TSY8BVO 9VC>=H @o(lNĔTQHQ6oX odǷ6w*b-,̵WG͵8]۶bpф;CMhm o;g$-4.\r90L-cOn>,Arx۶#6n<7RhHG!"{y?(X}k9a+ ]//g}q5+z<*v؄ l*TZmcѺٍwKO|w.3z`_lm ] 3Lf=hq&rKw#Ɛ:LD+^N0̳/O5 uYb/ taZ}:Sb-3nqu]9}z2wGTUwF[cp?1* (hHEv F#OdV}Ḵ'-WKWˁ?h=WP_Masu$' Z_0N!kTܵ1j'3'wc1 <-XWD 8fƃߎ핬}it z '1X{wкTDf%te'Ώzn'67rbz1 | hɰVB؏x{eP6GEJ4oXxN#sitZ½Y؈iOJor.?u(j,P(xP4"`!AGP&أ")_, ;꿤x֦4`6fhn,3rn8Z`2[`_T-sv-^첼~Ƀ$cVz~ ޯsqJ! Wz ot#8s)\eQߦG[7iꕣY]?c0Npmp=^7Xެdq"?w³i]s]<s{_:{/BцZ dDnN}m*QZYYb+aђO3(Зw8^ESHtX3[[sGkGx@X?@Xkɳnw$ŽF& 9v-E50 TqE+ er )va]if}w.Vvm,6?i PZ$sKX̟W+%pZ{FV/֘sYv6Vβw| ?[oT~ܫ顿 7&eIz!{#w?Yj~+UV ?Ů&X2aXf}]6z[QҺ'FYFF?:zuo ;g>yOWӯWZUz/F6\&~n)B4¹\t=xI1{y֟vV1{͖k!9|ZbE^_2NR{Y`(fVRӝ)ȠPlTQjʲ hEB%@4Gu v51ԟTxD]nٿs6g7k颿כj&qȭj\pֳ-lKjJ#zbgdfͶA;Mj]#yw쎤"|h/d2髙CeVoޱ3?&cR8ʹw9Z||?7OgꅟzQ:޵_!B M#L2*.RllFZwx-f \ee"]N{kV ^]MeNj;2)YYt* :/YxYdJ.YMBT@z'qyo^6ꅫm\;y}YpG/;07+{H[4ˡ֏Z) ݮc6507_;1gXv+OTNU˾Q\gY'1aIOgꅙfYr 0Zdx-V V`Ѵ+.!Yּ0Dُo,i_ ?3~c,t@hJ4e. RؓBCJsG iqC|pgt|{0S]=gݦlp~(\np`pwR@2~Z;PX/G_ŎA0㫎-[7>ge o BefX33?cXh }yZZ4قB~kš;Qqγ b7K-!p4"Ԟnakjm,fs#Fp,ӖBkj-747x\.VZ:gwfٴ4O74*L-zNnӢFfe͛7LOeJJt ^lkii3*BvW*m.͓002wvf.l{k6ɤT ⳕ3XD"E JEJ'r:uChp?U?c]gEhJ&*jPPPhMDRT( )܍(FoRגvWō[C h$YkGϴ/=G 2qPBjҥ(RKۍXPc@vRu!B(RT;'k2TO#iu~>}{{{ƒx7wlt!ISp(o4+}w ɦ*v" h P%Mf#z(*(ZtqlU0 XToO lB#`joxN;9m4"VHPDQN)Qm/ֶI+AƗֶΎAv EBbw J1C*(k~(:Z@! |# \kOWm 58u ;yvӣV]yFNZwg!Zwg,m ptj-G;| Ssa=%m{7Vw&Cwp]:5gݞטuj˻=1t՟vz;^bՏvz;^b۫vq]bf4!A߿őeAB"0J- €,ePQ(ZBDB4ei'1h]WE|ݳؾ` qpIWOhŕ%=/'|Mϼ^|6k>d> 5xMϼ^L6k>{0_y_mB`Y{!pXg!Co5x8'-}El{O=x-?XHiEzkhq"x N\P怈ʲ Ơ)Ek(!'4"P ] t2 D@P*nN (YVUY9O}kd,2qtc[aG½8|:ݯs49v8|(/, /g7a~epL|W/,1_xϊ t/g|½6G^e;{;Őcx#M%(pAv+2&QU ZuQqYʒQE$TRTУ\*VO-W[n,X^'LS~S;_|=_51GCLS~S;_|=_51GCLQ~St;_|_51GCLS~S;_ZZZgjw>rHR6Ր"aBŜxOl$[")*SJh S RY6lWS@*Sxme (DFù 6uP^gj`yun@T,M{eaj\U}@QFQ 54zr coF(`aJ ;+0W>b|xŪ~|v8oEJo.h`D1g:6+R8!ƍSDQ! C* i*hxDPB܃PBJ֠CyU|]ޙsm=Tx?`#%} {]`T/r,D"С;@ D(QZZoRoM)!ŜxOl%KD(M0v8"*'fTŒBՔA6QB-"JEu+יWۯB%e26 R8[Ϋ獴<Թx?`U²PrP$ Js(-7lޜfP(#)Ch-jO;יXc]|v)vvLYΫ獴<Թx?`T-ݰB"pR45(4aXPlx-js {-V"8H,M{ea~jܼU) ehh(T׎jB 24S 5;י[ϻ܀&!nX7i필yrV~P+ ۅRw)4vFmB#a+;δz=VyvۓOtq,M{ea8RQƎ(HTY x b*) (wS]^qy#y=Vc܃3Ea+M{eaF?`VdJsN(9&)4!C@aJ(N(J Tؔs8{ƭYo?ݹ5Y/Yp"|XIߪ?g =PT•(@P|.ʻ"gf 8]gEЂTpE:VrhQq(YJ\d^|xՁClۚNŎUrOi\nZuW*XUʖ>UrzOiCZxzUʮ>UrOiN֦?}KN:'Դ꣬}KN:'ϩiZzc}ӗk3,{GVn*(:~#h;"ՕJ@TE!e+$(AQCHPF!eXDߴ]`H߁.KF˒uѽ{>to^Ϭ0=׳.L1F˒uѽ{>j\ζ$|?ZAi\Az;< @\c%z}en;޽Yr[7g\c%z}eɆ9޽Yraz7gXzoqWkQmT( "ҡJkY PK%eܡEIE +",+r֬A@((1e (YB, &听!YHZҟ'~Z Ԧ6w[kvɼDPaY ȋVU T[  Y QMXPHqCrEg`j vbVP"Qd&PRSwЅGq&kJ#epo,Ɔ{Y>o>%NÚIY :hEeѾPaBk](#yf+2dl  M I<(Mj{,`l.?doFCnM(lP"Sb܍6fv&BNPZ$`b?i!KV G?A(PerwǸ W:3@P55i߳;qK.*{ni ]c߬n-;3 ~kW+|bOϝՍ*E)vU &#(hL.5o;ODJJ7BSHuh#pB h7ZIEo " ⢀D",ABࠅe)P BȀNXK/D nL4K~.J-6J  wm Ž*v(R*Scl5o4/n 98?E{$TTpDlv%Dѽ((i4.ޤ*hva˝Y/h#JavXq$R16 ;;ݓwIBT"[E覃ymZPѭir:<0V:'̻Օ8'q/ /"'7m3an^3⛋p?/gX\9nw2 Rh'2} \j*bTqh1weXv-W_pe'Tr_pʮ ŝwCB6[^J)NͳwVt_xTۑj?XW=/VVv<>V _4(NJ Vh*v/÷m8n&19&ɄSa`MȦ*/KIi؃?g—>W[ͅk3,px("5oNVB8E%NZݛEcZ|?+R:N?IQ+]O;evug/ h`7x]Z)`;"I56. xj?AX]b242ΰe쬿GXJ؛f+NF+k|b 5et7\vI>bmt].6GYB?ϐ !7^87mceu ev;qœ~K05 KOqVa o˅GcK,4üjO D̋2);*w,U9Ҧ5"ar;L!yCs7gM2w>X|=hR8X.h2--r~kl%j3IכOXIƘX#F|.$H'u'Z[~ۖyoJm{mmXSW ܚf--N+M.b _p^*9?!Y2=މ@tȴȁqJesa7ae)#K8w|?/Gb[e[WnnX_D.}7IOm\Rנ 0ʝi)B)ِӜ̓_m!{V/J;0ɘyGk3vcɤOkJl7?^>!j6g˸zе˥EWCw*ԎjF6^ndkSoraZe5)SZcl?At%d)A4Zv8ksyFZWK7gߜӚ|Z-X?u(N˜͚!Q "T+lI'/KNK ُi<= TA]4ZصN.,Ov@;9EFrYz%f}6gS4 P+9YyYe(B]ph>QڟZOmTXXn]ρ,R;kk7GM5vxѝ-+[rKi+,h,ÿeZџ^FWJׇ;?ߴ姌KVD{˔ϛϙ5h/wdlJ%iAX"̳2*VaZY2̱Zxo_10?Grbl>rDIRJMa&9*ʲ]z3h e8(-wSڂOA`}^Ywpm;7̫[k{dZG nhP74w+?3[KVc{.-h{> 셔B XH[(Yw,hsf "ʵ[ÆكKx?z77Z|X쭻SYVUQj *ʡ kh𲬡v4PT")-?nXE>o983ACRXTulz8]ȟ\5.W[;) l{AbQuZ8[ڷ4ް$Z/6eDp&촼@@V,1E'^bzw- =н$8Gy~ZY{K@lnw~\n]` z,5eyVi6f#+1@+omevu5O-ck/'Pt+I (( uNFA i韒0Z{{^_qGh\w};ҎT0B;Np0Pp;`(q j {z)ҡk4b"aBV7;gro !; WhL'aeN(DSJoB4(#ᾒMqt"Rw (B΄ HKC@TR5X'֏.?g(x'EJS;IRA8YN (%SDLB9HAЃuD-)0:yhؑ爞HP֎>UrzOi\`nZuP֦}KNWRӪU'ԴUpJ-:l}KN[RӨfp× Gkh?B~nky[/>gjx雋o7k n98!r_7g\c%z}ev:޽Yr]7g\c%z}en;޽Yr[7g\c%z}e~:޽Yr]7g\coq>CH#a^kU(B )wCL)4}E* ,ZUƻy R `PbtWӌYΫ獴 |Թx?`l5`AJ4v lP({lB߲vZmZ%`SqXWi필yrV~RvgbQ-@%@B 6"Vy=VyuI;,ȹf@ŋ}XG/gYQ۞4h7mL%JN 6blZ%Mf hɣbu|mVY 6Հ *J,>t "-js{-V6p@ (ަP8PPXwi필yrV~)AɎ(Vl6aBi CAGJ P)ThJ(N.}|vժa]|xhQ4iA7h70w:6+KIRd'j*(sw"Ҁ@oMl M'`NZmZBr"SP ›.]{ea.j\U(APA {(QCFh@Ț@#x&RיڵW+'Y²0bu|mVYV@ B`6 6!B bEе^vŪa|x)!9e&6 [λ<Թx?`&E!Gp*PJϽ;(P (S֗>>gjco?9J$mHLYΛ獴<Թx?`l);YPढ"n`"+\6 "DXi필Y5SI/^Qr&ԔL]4wY+6/ރܳ,P(?Y`,!E<4֏>>gj8{ ٚ`67.YZC\X3ekg]r݅κ Uuv_C:-Vuf?g]rׅκ Uu^_C:떬/Vu-8[} Z0ZZneͽ៳h8O.'z|ֹ?`Prγ(8ТT*PyYJ5=fRfYRJ4!f*SL*TB숾Ve*Ve4Z[_,m,3Ni>Ȧ*/KLU^"l/.EOz_\b?[eQr+~[mEȶ)/KlS^"اl/.EOz_\b?[eQr-~[mE.V7CX]VlkLp7(RJS2p@E2̥J\T. T!J0R%IDRTT"YTDN嚀QEJ.@*T¤Tԩ4s :iw*T %f%Og !1A"2Qaq# 3BRb$5Crs0ctv%46Su&DTdUVefEFG?U̙G8j]c̿_B$3761"U4*LF?C^h_9|_\ٯe=m}LՕu52Ǽmeڰz"{)+48u`UD<] v⨶3l:\/j+dhŨdNoR":NUՑvvzQ2zoמ*r*畤M4B],l5Tv79U4U9yI'Tdyq7ym +SaܼgsmE?=)fWvġs_Ұ{Lhk"7C#{@e1epގ]i m$-Ubg_fxcpJ /{3np+̒Np<l֯P{y4PY+@v/gD=`e{&][ 4D.eD +HZܣm:G;M]UKanM>D3x.uފӂM!w٩p T& #wj5N?c:,R6!Qw>Y= ob|bl7Y=MY!-i!%ڷww\i+=79:bfsG(ͣcoX;+ZEYH -ﭗޮ Z5CymL&,.^UQcAm!WrYe.ixVky#;ЫPMNъ?)-l4nHui=8Mѻw+^m6;\H]3]iM5`;2tZ-ⅆgTzsT7!]ڪ`9_.fxtgNG]_|8+4{VF/zś5d/#|wЀu؝358$୕tXOYoW=|.ҝHڙHr_nwݫ]R˞t|oȥjFQM~n$FZl7_o;%ch&ǘ{ MOd5N'Z`ä⾜>O̞`'`:8f6ssAЌ*O̿э?c ~ne@Y{Xw.Z-蛋_%n€7ԽHYUÓ^(pF17 YK~\[tYcU @-h N.54ZRȘ׷,?`z}ETAQ(cIV7i󯻸7kqu{7}'ZcAģ%_v(:ǎ'_w_H:hddJ襍kwV=j9wº,oXnWpׅ9G~vy t4<Z|^{<طqV {_j=u7a{UҎkʭ[҉{3N{ձ]KfīejbW@^ö́ޜ-Yw=b_֛Vl^<V]Ucеed\`M|q?68][k{MjoV o]z"@.!n87ہ}VЗj9T?\rv6]{-=#rv[Eܗ͸&_k[r[* =hz V#N`b uYKjW8؝RիՁu[h.rX4.>*YǺ7e<<4[.zc¿6= jWQܚ.B6<ٖXE+Ѻ"ob:@8G3Z[+|ԺMotXգG~GuZ0K}l f4DմFXƹXɭ ir']AW@V-^ԺJꕚYӷ7ԑ|؍ BԻDZtPC%MMC8[rW(*6'#p"DS2Y5 jx&wM95\W_ 캤R{1ڧC)HzL^GCP^h#3HARl".0c@ac~#;s16╍L||A.Y҆B#kiɍaO!⊨F.q6һd0spu/lxZ7_/w.N: lV;?(3MlB6LќH#fXs{#nw6xzk?GM[Kg) Eۇb=\Eײ\X^\*aQ*u/;9mL-qՂb5-hox,T4oa}4s."B۬ZVRLש0}vGh;} /c)8U&ӚFc%B7yA^4;{Q>^L5یu^Db1DQ4n5R1vGUQPy7H wOeJO-Sh?pͿ!JJ<&7ſ/YOtpG`';Ӓ㖃.aP~d⊥yw'i%tRV7ݶ#**n:O 栧k^NxSۜpT8E)M-O=ݽEsY[U_sp6Nbtz6XfC-7M8{{xF[/~>O'10͵)fye/ݤߓZ.+oE۲]Ⱥܧ<*SHwHW|ogCR_kCqcqTuUFl:'2IVh-%{.aՁ_?/j-o9İڙ)+STDzLxT3m65[IJsV;VWYP>ueIn-7C%~K"䲷.[ndx*sKo˻`p88j=oصQ^V5zy>{(D>dMSkr&iicl~蚶K[DBܴ%²a>RZ2tǽ3Frdgv[^NMxvd "e+w5RoN e|s ufֱ%?(ʱA`hޥxmKl5=Jƙ r[Est_6衯%>1uI5hXdX)8H3[n>Oi9EMrѶO"vym^>0 䴆_Cl~H?򚶔8aAnE9{u\"y49ϿTꪜ37f9d{qriwFY5Ҽnmdٹ:kt_{VW+(VrXq]' ; hdiB',cǚ\8ذdB+zetCvݜSb#ޱL< crT dBx\{^Ffmr RTse9fE%頜l> XK~q͞Ƚb÷f'N6o؟%MS⌾o'd`n kֵ,phYctl^"rfqrކ魀S0\isa$fjapAلS}X'Ra=!;Y;N0+>R 7؛yx AIβḵ96&9oes,s8A>%L׹4n !k#nPNn-XW朲<~UN=2۵Y;nT_\;^3D97KV\l[f,E#'0tkt֎.v+;&q ~!Iͼq,(rD2͋'CKN%ouEsݧ5a>>dqW x .N3s:%]4z?/U4qss\Yoiw/l_]#I~{~\8dǑcq\ÖMB簙17GSe\0*YR *1KM.vl0!k*: .|s v.bl-ѵt޼ 롟 w(Al﯇롗 k-~˞'" %@+}Zzι*fo,.]~g + v R/q\'҅zAf ٬j˝5YoߓUE]Z]fq Vf]W&u+-\Pna=$<;.R^'y ?M0/Fo`/_j*d &Mxf/V:gJ׹uxgEuEuE8EqfβfLmQ[٘8y$Ubu<>|BWٚ\H(/hZ!do4+L(;zY\f=78ܺ[[[޷{{޵ђD+.COMֆsqylϧ.bt]oR°{Fj*=gɛ֏\w.-iᄏo}U|\:fVsr8u qZ]p[-ޮYIcw/+MM=h=^ښf nwQ#M-94 wJ!b7fQ֬ܜUZ,ޫ)LI,yF;]J\9]o.u}[ ~:-[+M{&y3^ئcQAUݢ`]~'%mtz1 i!|rnM--Ow̾M3)N܀>5b5x\&% 9߽OyQu3&$fWɧ'z7干ٿ6c#gňiBTXVNB8lW죴S11)i;ixi#q$xl9t φb2̞?p{9Bڼnv Z7|ĵNƸOUV3-W1϶4)pwQII+r'uYǶiBw8ό>Om~I𚗊zq HE]WK5/#y|8/*4ecGS8[ w+ YA#}4bU/"Y؎qccs`xd yrYɁF7[Ɇtgp4#78^y![1d]詶cgpJjU&ˏGlɆNoNNxH>{uSk$jt5 dayٺFwRw8ޠ}+JwO}iXceˁ`LSdijMT-Xy:O3CiذL3f%vݺ*,QؖTY:7hwx,pC{娬rs@zB}ذB0>yϽ˘uDDnLlÚH/3w2G5ٍ{Ga4sQ&cċ;_a2 ħ.Gr]LFk ]Q0wcwXaXj.Ǥ*E7IVԲO)ԫ+YUGVac&̇=V-$BhTC&|+{+,z.fl./-4IWֿ(ݧ]@;GQOq{x*]o$lXfqВ>w[9ikh\x# U.oζ]CrmsSUR^5i] ]e|Jc@13=+zqZoW0αU#4&lʟ)0F(fG9Hl}J٭y0uVM:x+ZN cb,"J58f!fZ- є|oyZ@z\'x{悦v-+)q7KU# UVlS`]0P? vA~ G~gEl֒J>-UFltprk&?p] vOLxE1`XF%ut5Bs2s.npQ[fi)KUI+o6/_<m M,2GY]H]$;$Aݳ8r!ErMܯ4tࢷO*dq]oBm$1hcGTyjq;~tƅeEwrn(_0`Ӟq+uf Zt+USVBǺ6"1l.sMPO8rښ[B:QGRQܬ7[lrn풣"ݿzS|U%j'N!EAcyLVR֎P;N h0u5v+[UV:U^}F3hvQ#P#ޛmlukڽ~mG ,XT2Wnז#v X:~s-Mq>q*jue6EOZ,&@s 8WZ[acԍw:GG.ky rE]%EuKI俶דP[*J2d"{t+w~kUn nrߝᜭ k[]N.xS[:6yrGF\TC5%-57\:trrYwMQr5w4#/n<&>Ks*GH7ey@pR:דC+d*0#͔l PZ;–|S!lJ̮kG5=B[C&Y#'CRnrj:-MɈe (s(ńP1od;,*oas9l- ~1^A8yޯ D4W}^cDfGqwG[EGY90*lnf^v'Nus}{o\8MNyiu:x*(64ؿj>U+i1ljPgf:9i޵։|&acn ܇r;O(togqhaU6נٿ]t{ii cvoi*fs&PG-ΜC"5uL&;V Yiq /o(ˆOd%sjYq~ek["Shcp{`Oha}H'+K]_#$[ߡ[*f='k0o) [RKV1#7eG<1qX>Јy#fhğNUyxV,CYՓQɩZ-e:職9FJfA Gí;,{ R>FD-q8דUZJcA8^pjƺ"aŪ|ҿb+]%Zpz_.M|W6G;oA1iqXngDIO3~\5`XZ ӻgq`^\V~nƻ{h;7>N~W+,{_S ֦@ΗK7-Ԯƒȥ'C۬U=e!U DÜs8vca{v9 FS˸=u亢ŷui}SU%E4ϺW*IC kZ.I-Y[[~dș@Zg;Y[3QaT~m/>$ UVLm#Qї ׊9 ;(EELW3U=$"Xi;T;( .+ukX_yL*0_[9IQ9w79x'egecI@ cG3F}?Dx, qR Xr >xi՚{2SYX_ ;6&}Eϧʲtndn Bdž6%a}-g17reYXk߱Q QϿ{YGO-68[^h 큲T1u<^f]Z$ʭ)=Ϙ C7/`F 3_ #w'!#vTKXsŔvv eZ4ZH}+@LJ{Ȇioܭ!h~x.LM߇>=H{XW69|3ðz4t']IK0kI(:6-3+Tb[/Bu06D7gwI-V8ٳWD-Baw9qJr/acV(?޵]e`gW\hJ7U](Cts7hU"?Wqr]0zֽ/J=&93WGo}0/{<=^m6Ev3C3nZ2 @m!XF5G#o-4r{Kr7ۓntZZe1eZ8[=Eb@ܚ.2>E@nґ̬ݨҷ⍜nZ9C޽٨qę]3'ԆzHǿⴒtLg ct]֧kbI<\K}dB{ٟYݏ]Pnm}X(UÜB +M)?z#! V 5s՜u;!uJե_!*ã4򲥤C#9lt6k*swuJ~)CM,t.79WD S>'MMK(mޤRI*%@&UQ82Q,lȪY(|';,VEK CkKiC,U-lMΎsMf YC2>A Ũ+wʩ0: ZZ.s !r$\x*Y"8ۻU~U/\=hQlG)2nBw\uW׽Aӎv>1\-o7cgL^ήGuڴuw:(IUq2a,&t[U2Z ӊEkmÖv"yx+[y^+h%| )nXF{T4V֙C23H2m/m?QSC+*&xl0APqXa9@* xmmt; WMTj)o$Nf(jdൎ9:~n=ښYd|?8c.5Gbv ee\ ݧzחE'Ë.;׷~wH4NEa CKvO}E/:זxx۴aX)f)R?d20aWO?}[YtZrj[6o Ӹoʦ \Y$CUaxU}-5n~H#{:3FoQ:;KxE'IMG6Vf=?[ISQaH%"8YkUmˢ~My5גPɳv]~bM޵)cw)dOZ3-+tZG_q#Ol7v~@7VЪ9$nz|-\\u>>s|kH`#Uu%5P . VDmZ{XV%E,T\KTEKP4wUIT׺C'wqNy.V^3Q,AeR_ۣ[4l\"i7HH`?* {;K =,YzKA[~TN1 C$ag۵(k~MBL5(%ea1+6ޕ/:\LO a},ƿ37Pb2GOX688Tˉ'Kr9z-Ax Z1r> ݶS&Z(6i)|>aD.X5@t}|FwrnÙsNXG.kNc郇}+hKC?7, 66<8U)qV6Y]"c{@Pv}`l~v=}E2q2ǷIj!V{ަ=qjzgxO´`Ψ棛۹,/tY$vZ.ηDtnw,iy|j].|E1Gd1wc)C V!==ݧ؎NKZ,iٮ7mwoOfڪRmʥ旚if^:x?8~A>Zg:ǵ8gqMBW;W)MoyѸVm}MX}1ܒ}+hqݚJ:,+\M}rŎpY|T)9|&7îʏp /i}U&mN!_Je~V/`O]D٣`Q?Yj*=р*]]BPn ܢj9Cڜv lN`à$l9$jg׆bǴ /eO%^}Sp{GWhȇ%ajf7^9`hʪ{koucsC zPU瓵;+@_o%w.kɪG&\R[#@]_7-RqZNXG^8"=ϥlIU!q7,L>]&RwoZo'2kgũ!m7d?lX0~ ST7$9pleo ,XVtymشܷĎznE>&I>t[s+GS6n6-ڛoZugu<&`10qtov!JjGj)59s,2(pIY۹7+ Ihi%4tL޽T\tӿ ,uSQ!q̬jԵai[p!#reW;fVBNjX=2e7Tpw I-n3E*15-l%GȲ5 |Rwv5t͐ XѶJ (Ў+ ?W)+f/=H\\jBoſQ}7_uM3}Eof?M>o`-1}E_ Qk`/& wT ~[]cO5?HP=U~ F^m/rjZ0ouonM,Esӿjrt\нž*&E݈ݢ[Ekء\Sf+ nun۳෍UD\0eW|,@e^сr豺q ,,ibߍ啧7bD։7lGY]}ftYY%EuX;>˜@Mh_ZI7[ʾ[B[+ Yg3{sH׊ہ}V7O{Yn M JU|WQ\N}{ۮ~T:&üIZEvZ-pESڅe+VYKr[#@YH>[8qKը&se.jlkZf07@mVWE?;<%Nw7kDƜroVukiq y|9oDjh+WUZzԴaZܴi lDմ\uwuJܴ*K;ܷۘ-B+qDn*.5\X.P9rbB:Xu x i@.EpVW5jˬ] zw#;Gbp\=IĺT-n#Dʊb>+?MӸȃ](5մt -sXGyY}H|ە u:*6)rُеmM̀r><˱h=_a}>!`8}iʅtwJB,9mbEYfukή>F ɡޏ!TsslG .STi#ǹJ*D2X~G٩|&^Y)jY.Anu5Ί7Y#ro >O-Md&6n%VaUmWAT MQ~u}+WҶW2,pw~OB91 g&pTIu ֱC/E+h &c7jI\ڰ?*Skchv[1br>*8i|5hJd]W=M5ΰc䟞9ĶĨjWK0a0nnm)lw/.H@# 8 Gr ⻊ BV3#woWVvpYN X! Z [q[՝;/]ê lnig͖3l?i]E rINVֈehp6J6n.v>:Jx''ăŵ^ ak9io{%ļ=dXߍ7bYf= ͠7 FR5nwnXdqO˿l,aD"۲u!fY`G? ۷[D~EaNjζc=E-[Og/,9"(p]~dp>&왂m,p`8ָ/E5UGMWO$V4i~5 ;)&y\٪jic|r!rhvw-!9ݽl;]vZ`¿(cK᫉,3qZY\[B{}Շ0d_qp>V{0tNǹxW'+swȞէ_Q-'u?Noxrf˛gFWIĮw&uEK4|8,m)А]SIp޴>O޵[;ݸu<9Xqlgsʷ>DTBHZQRnAz6.˪nXRnýlT[`¿)c~Oށ**\3 lq]?(ﺪfclӽ̬6ax~!KC-5q>V0]_1)#_6G1~bxOp+ͼ?[1ULZioma/`4)oMG}۔w겁q gs`lQ47pDWi[TwT+_tNy/q6nG.`U~+Cg&lPj+!eCsa l|f ԬW2,l OXV\ ڳ`X+W$ŕm\Jٟеm?vW+ rא ~8o[U!`.+.;v,u؇=].)ur\ipn8rZAis4\$qubg/E].ג09Ϫ`nQgnL8 eZDIw!h'r͵Zf\ [ܣ')"u$n>IuyuǓ2N _y޲|V/\Ke:ܧsqfz癈;+mcSf;iLX˧Xۺj/L4@sw: .V35E oi^-⵨wKq؜m#-MCdzG񫎨mn%0zMFj7,IR})ÁҢSp 3dDk](}GoFͩveNۧ~y+,ꀒA0j"snSw}?mۜgTn-5=RE]|{ZuR7ɨ2/ݹpqBH²bGdUq3 vs +1B#u7@BozKjo_Zu[EKWVI C7@ܯ?nrZY 4_f%aユZSl;F ^O-NDf»ҳ ԶO54²:Oo٤p~b2}EwVPH~5CL#ο+2l WXXQ+Ͽ* I LQG!ahصE)^[uЌD-@'x &ͯW.9J17N{Erވ8DU,'_L^c }Ν;=97f,=\;̘m$G;dLﻵ%x eK.R2=!"0'fk+o{\ߟ̳sogAυθ_9n6mP(EtP#~KmRkxeMcŭG%uKr|n xt]za%Q Y'y7^c$-WY|{VcD20 ;_ܘ4+'5~ELvb=~*qq^&棷fU<ef3^&{4;6.LooE;Gb&n(Uoyv<زofctX-XӧBߪclafn@@TMP, ڋ+ioԺ׹{n\8 \p@ n܃l˚,qZi{8^.(ݭ⫑pGWk@+puE޲_ 9;Q;{p[޷/&!1AQaq?!En"U &5~R s`\N=ĥ 'pxxK%6mAbx>!OvKh0[SX?ZƯ:Ø&9%m \S .1(&Ra& y_fw]bNWZuΦ7ǥh,,k"\32C8"an(V:s \ƑgJTBc7"AJb9"pEqi% C q2 `3wRq+$kО=x{A\M%ȻeIWpvYEMx PhUXc}F?8A c~="SVN?kûr.,0;3DzG+~y{UZT]1Ogq˗rrbi,$R`Ni ^eIBG#Q裈2MRt9/l{Os`Z*?jg[nl[xBlHk\Pe.WC0*A;2Am5D}7]*Rb3Y5r@}UbKa{}/h"S8 cN2#! 0ݕ svE"lCHc$TQ?Ge x.|V7 F0*J0nW{(#B rBi+<1*.4 ۘ x7`:FPMnfUsB%W ˥p|* ,Los1`8 4)]f8 3j_SŪx}Ҡ9c4쌻q8l"%jaV4p\_/j+/0&T`h˚8@9Ʀ`L#ӸSU.g|ՠa|3M£Aw+(f(Yu&e*,CXsn9TH .qqYM]٬y†ޡe(4 Pv(c|ZH AJGQ1P-Cv጗6rQp[JAg3"}L"LTX EU![)l[N6&ݖ^䳥3ɝ;f} t@;Ǹn~d eDr3UDLh\'(e{ݳ!U:L$R88eh"`_D ;bE)0&D(np0C FHLT2&#,5y#d!HzE`!76cgXa]a㋝p[)6b5P%cRpe;-eKg&*g<`5#G?`2?ُ -jٟg?#Y(^]=!vl4 Dl)zPTr}RbR8@rrbYu3 -p gv^a.E CW0?]׋Lm-T, 3tB,miv%|u Z\ \ jEl8x#]xd]~cӼ}n`#3oYzSIخ-L|LѼEAX$vte݄1nXjUz/$ܮ(cW{uv m77exyi:. 05[pz EV _ņ=]&¸[ 0/B`>Qn]h@;n8Թ68=͐PFYU/H1Pֹr6ܢ4MŘyf2"j:ieFxJ!QD@@*,-"@ Zay5+; *(Vۇ@m&"nl>o7%_Yc!2y Qw?ӊeԯb~+md6؝\DGkUa'-znDycC<'dz대{gűg9ig. "XGcwWTޣ FhǸ)^ WlVd4\H%Q ˊ҅/qG̻NF:Ա@\*c.eVo8>Dg+!Ò>3P;T ܨ ˺lrCݴF\nD']7S)Q: x-Z#X 1MKG,_2kwb+-K_zTYPMPfpj|ڨR(,.j{Buqp7yI> Fq%)Fyq+aR/qp!¦]'LUdMu}w2<+9.(Q S]͉Д|&TY+e|.YGDB- )]6=!KNߓܹP'pzSL昛N[ gSwyŻË~9ِio5b/)2+rP]#ԛ|%c-eαf_POf@NP_)v-\%@࡬RySp4SG9bh `2N'mr [5dl&"|"Ejpޥ\ 2XpVKc3=8-^-R';/ b]>/ <q:蚏m5*EfR`cFXQ}Jն'A5VH[Y\be@䄳憩ˉ+7̺^fcjyNOL6> <(;$gdsZk2U>:% `WR7TqX$b=:9yao4ˏ Yw#88J3A+@3֝(05XH*[N7h!Ft`Ԣnh.% > 5.Uҕ.w2oP[0zUO+ qw`] LGo5e$H!ZDPsWfOScF q܅9Mxصy,hTs~. AlZPJq!g4N>bdJ ^l1 %-,wd,¥1+-|V C}EYAָha>Au({=EZ{gQI#nDvf \W9cvRvs1q4ĩMx'X僢$2w /3јopжXGWA(5MjVWz af^G,]r*i2+eRեןdGfrQse9MY lQ{iU(6G`aQPEV"͘MFJ>dGV"O˸u-UD0iL  i/1,-|keJݔz.^zJJo3Fݯd!'ܸ cPhSLʟf.{fan 6Dzv gLanVyjN@ FR!&B e+>&fi͂%h8^lb#^cyJ-/s7ܖ]c^#t͕4ضzU,sĵyF7K2QDJ+_92u[cdQĨ:~%H(ٶXɨʰ\|FyW*х\q4Si`VK3SќHEɳ>s0|@s7 -8?|Pט: E2c<ؒ~-Z<9t07F >1]8E[p0.#\2ݘ߯CYXZTj]sī[y0t.u5PVI@oY}gE4ZTW .gf )P C|$9pj\o(Ө.^Űm?f\0er-Cǐ"0w73jm5) >y:vp:K`OcyzdR@o˴RkP,DVcaPKe7:KFqiPI>t&QPɝL(OS%,iTcĹ+` /jd,bc3C[+\1`xE1وX!Rɋ @nZMX`n,RY|K[9Eչj.;ODqZ2B[e@t #]Amʼn`N̡c`M]+F 6SF7h MZ\ʛZHr #AD񁔲zRc1]20-?"2YP"teq&.h録iԮ2 )P$^jguLXcPq'1--bN6#x &bR҂ED+q}n_Qq\t"`*1YZK\ 04Xp/g'|LS;j]CބA D@%fЪ9fg2$9:NPjHxXZ<[g2bKXLf\)U)Kf? ǁ׸ۢrv#QsQ SdE d+KY5wH(PfT<*HdTn" e*ͷ.gYw_l&4-/]ЅˇWSuZ /6r-2 X $ۏbق XSIeʰxRSfh8\ ^-mr?lAy`;6qxTŘr:U +F5mڽfgj\tC> k"őUpɨX 3 ;tP@̠LssO(%y@(t)o`"$_hS'J!Rp ĨEJ9MM`uWަPr* 5n,072d'lbVKh|F"0(w,e`|t@txU*h& K7㬪ł(rz&w Y5vs% 1q\,l j1h"4? /L.S@C.-t)~&L`PgI+ ?pp7vhۈ%c0 2wV0ٷR8S&>VqG ӘsP^G1u2|U*BEeWp n̮JNA `Regd!w |χmsj7TYP\EOIG*s\ؠPPq,ۗwBA4J7yoRX:Wٙqݔ ZT=`6HTAL c3eעhKp6jR!QYXLJ@!̘yT(oAA(7CA>qYF-G9Hg}"֠j #pxb: >+4Al=`GKWj~.msF i.E5**!jL@=ck, rz^Ogw Os DXArm^tW%=%'(pB>P)b&j+{s/tUZf2dk[%4y4Ӏ3$@,гbMFkܶÏ!VV>3=QɊpy &(+pss eRJ(J(XrCM+Q ^Nw6Ò}npT!^ v`aE2wKvW05*Mm|YE% Ons7+Jg0ubYq#GҒAޟ̺ORL/Ḍ1\Ȋ%^BoOX&J3xrQ;X rF"ȷ rG98X: -XkB8$9"/⺻똃 gbO3 7OB㹃Np Q8o{lv6EU)`yQ́S5Ɂ/my]M1°)ߢgX'"+*v7{n^#d Vd1FW2++Qێ*`w('L[3 YNeTaU0˙zlZbRuBQqf(/|ƭeFS, .>ʅXʪ`Nhӥ5@ò:R]%y/2µ02esiet T~¢a#~a׏-9MKwgm&䲯g2˓Υڊ%V8RrkPm7khF%&1A5nfHDc,8傊i|b u.!*]BXY\ِ-G]f͘-6ҁ*c+u-ps^&eS 0c]UoD@x )WUxPޥ B#= g3dz`K  5t Ƃ}Ml9(.8.䟙ȪS YL1_YWTo;eq(/heC]n#-d%SUe| U|TuWZB.`p,J2)j,]Mʞd~Dpvx!r#)ܩe`@@n@ѨV=eA=Jf0 س19hTmyK1b%3tԲZ(ahY[,y,Tj8PQV2΃.. l5PеD kv%>SRBKZ3dGI6\~#l  ł9ˡЭgJ%\ϭpʬAKc|5qXG~㧴t0[5p܆鎯S\or(Y%sh}=L#D'iV8nU431pok%1LG\tNp>xeasiyfn'+AŔa\҉A>cSv^"Z{r79 y5IUfϖRDVvRg!'<}w*y(F*7Jl;U|I[)i;XAz!rtB.+Ԣ͟eYG"A}WeAmMXHY?1C0{k%b_ ꥏ;Y* ^Q4"iY`bicdd_'ﻆ؆NJ^!A߸`T^j48xʼ`"󾬥&,{ 4icL"pΥG3bvp5-h. TBZk n෿dxj:l~ E`U_pBҠ~DWwO>cdtnsN#:@ep(d?iesfa/JJHW#Q{ f,3ʅ,bVyg6UXoP:Tk6@<0FZiR2 ŧ 8Z x%ѳ8]0 Jf J%%]Y]/<`UxNtY=_E{|Sx\Vpϔ0bfM 鋲ZEbܡP< WV-f~i%xSErmtVQ2m6_0t akxӺ/oI#%»rkחj6 nMk1 Ϋy[A9@\YKKE:ܶjj5ܿ$F ]8}Y*Rx6#y\L ʑ[2)CMVE[leť #]ҕ[{ہ[nKaDŽIh'b*@(Wܿ`"s?,  z?U+3ўhw~W;jhu*v3)4㨸MZ:'u@Oq# 8F 'ba \K? L3ϚL;q؋ܹ~_z2TKi'%Yxi-BK%, !Dޮ {Q棩_lo 4 Fg\r&x6vjW-Idf UmtOCNJ7j3&_'wt? QXa8@-,BAa+ċ3SVt"/>Z"[q^`j%+ı0^"`,yE (,pdD/%/:nl[Yj)@>T[Xn-tTqs` HRS 7cUiV4ȴo2˹ĕ}O`8@cGNRAػA.agQp 2[8pz`0=%氺-xYvE|نUR'2..]GlnbqRp@/L;wXOmCNaPs210W*+4HѬx:|.W7љf̾B^#6U*x1ObQ8 -CmL+&o@YeJ)ÉXmqƵhnRWH9w'Kx1lf٥aOl)b4Tn]#'$7K)y%,ߩpk9OQD%6^鄬6At]4S_@2J5:1<2PfD,(ZRּu/掛B Uӈcqv's k%,Ĩ9Xo0w8^M,hQKbiW!\dA//dʾ G'<0,mԩЋA, tKXT|K>7U(4+}K--+HӸ(c%]Ѐ;QYG(Nj`V?GPT읩 Z!cU?.2NmosJZ{ĸ7@x4+v4q::PyLfH \[帕8&p6 msRo b9kh7>HkZ' A)M;mT91"o3g`YAAN9u4 *fQ&JwK -m(K.:e ZyRsX8p,\\.[8; 7gܢ 1 M1ǐ@ʶy>F2q"܇&N%}|܈՚?$Z 9 MPUAjwa# KxU k=ZF"klHA%]ZeZJFLN*UR"\kˉ*"KBQ_3Pǩvr`eq"״n˙n5#^e.jv airQ`=9juTVsk-iU1bTɢYvc[4γDfp^ $ئP+ַ1e^q8bʇZbUY5`1:(U2 } m{qB9a,j N\ 5[1J~~F殼\"ˊb;S47Vnvfʰ4Q2V [`KkVZCոnd*:Sc4/ lDY<KeW&N$p n $z| iU[+T`lo} P R7ZS%.+KnhD#.ڙ惇1BhV_!QSe|7g,K"[Y E{bjgRQT@M;Mۺ"m3 %-7'@|2Lf^ք f%|oR ))%>J .Lm Z` Tu1ҡ);@^ 'QVRl)aULp5 tX fcYT7'M^VS噽ַqA@8u^fPlN!gY+@'R5B0;QH؈i!AGL!-*WcApe-Y$ HmQaϞb[Kv"Y{l#uѦԑ;K`͸a.}17bp=-78 ;_ )}oK%߀ULEPw;ckzKrTQ?JRG 8/p+ Z i/Q.XT+%>@8cY+ɈJ!_;U\\:v<6s'b)]/3Nk&0"YQЪNAS[SZnJֳDTji{J"ӌ ].cqZS1)˓x@z0%`(:4?#@hZ/rJ@K(oJLCtn/31L7.?nrW2_ޢU\:CsAoV<ʐl J3[+K8#"E,>Վ|sk g2otLyY̛rjKYPYX@[`eC̘5'71,@긐l˸@hPY()AU-3~`c\%'k`@02n+U%lD~{K4W- -ɵ7Ң Z2:J<֌428& S :1e3~YĴ'6X PGQW[%?J2Ƌ^B6C0iXw2)7 7WP ;N i 'ܼs݃9elXѲٹ"՘)s%sa-0C iMolts 稴7a@}֢yp0-#3-b+psj4M.+87+cӅQTs@t1ө'yDd,:]b]\`|mw~Yoa.&NJU2͹%V4b6f&3N{&!p\vC0tNe(ܪYcjSjT1nn-p:NV94UƷ#23mZmVSP,PQ Mâ93 7SH=0,w**X5FZ\o3^yůZߔ{z[IxTj_iBZ%hT[[_5AGx'o!1Ot?0NAXwvPoqxGzB.s @ZG7qr0JܫЯAU(7/X ĥ7rؠ0*Cփٲ u} |AK hPVJZlgZmV;NTrJF. ~n`Ԙ\O8\x)F#"lw48u7<ᔣB`q]@-hi!ۚ`仇hZxAao7+^=vՅ d0&eH a=c 68dp-gC+$j$kW=dUobN}1FJfwstq,q @J*Ca]3u:#2!3tܵZ*Tr`f *ookpe/S$rES`zSZogCUEq ۿ_%{ULP-"n%* yaoaF*_Q*-وk8DF@@WkGpn_TF4tj X 2+bs # gZX-X=EyA1=c=Er|Z_`X}F5/E5R6G/V-Qc1bSf7j7( q-z&.<ǔ^)0xWXR+,Z{ vBˢAqcUeEmF^[F0`nFr/X99yG|#&bTeɬ+tK0k[# yzKyk(aI3[9XK8Zk}ɷYmR/(SmI Z&?aqOMз gqe$hAj,*ȿ&8x}ͽ^o0o!pU̪V>u*_Bq,PDf (E]63p4y! ;/+ u]g,SS|}A5dkdu4T3xz! ,>&QC%gD7\e A69_ZJ44q U1ܭ>VE:@36\sr3;885HX{c1,5c4[확)h~%0¿X2|&n'f5#D-=j0.ʱ{r֚3gKwF>'E3d=L 2&Yr(0nJ~-oS%CT2cYYWnF1səF3fmdB9 "k-"z.{ īsld5Eƺl31i<_* a1QM_@@v49} 0ym8^$x5IEU"4FR$Mk=|Mu)dB',J<3H2rˮҁ'tPqC]D VU{ 13Gx`h _L&9ϙ UWFPTy6ڙх!ň:X=avJ[c4U UMNPxaҐl25D p2k ׁ8[d+GYmYQ҇zpFLjH͖$"pƲ?riusx"f&(P3րJF\gMȣ*!pZ3GYV9o~OsY?V!Ee]Id14ڠ+4^7 @!wѩd!bYFPJ &- O%Q Į $.RfJ@%C 01ס+l'a-y<ôޟ@nhHy/_L+Tʙ] ς< }h@F'4LH$Q:cpX5`(9eF7 I%$$Q>d0gZF'H 查.PAh)4&B4Ey0l ($F&h32?T3OMt4,#8h}RNA"Y]IƢjblthPiAYإ&M1EXt-1 0:.7 fҵb$7~eoHZM 2. g%>LRMB{ŖS +{@V8n -iҸ>s'hҥoi\%uI>MPR|V&0P3P/ST+bPIAH` Wۨ)6 ȹdI3G dh)K:b!$@@,.Qr MfDI,tLٚRb,?#tr(O{=A>PUg^ȾDW$.C# (.A|m Hq >o$Z hlVQDE >bt2)a!7B*;M+:UT"PRd0 x8k}w{* (d֯LcKFO#i JM2Jҁ9r 9hRahu:tΥtVoXo_'!1AQ aq0?QmhX;v nDM k---,E_YN#g:E;uΘ;1R!SPM%;b\'J[.ùoS3m#o^Y5BKYǃggeeRa6͏,wN[ ܶ`~OR]JF@;Aٰremo"G͉bCHwůœNԡ$=LRԖqr^d, `G3V?Rc>KΡNX:-A܂XZ+SM,oPdtXANO!tݬ_76u!#2nIP Vȣ ic^2u9eƖ0-;",2x.6$Nsեo 唬Ԍ=&Wvw8Yg&b>/m%G#XIDX;g@:Oi o\ Zd9ǴUp4ՍpcݍvIÜ'嶖%ria '[8 MY,*%s%Z[hO&o=)}KۦDeDGklpg&=g Xc}F%è:`Hl,x TE  (|@I!-ps`ZBM&q)8Me[6]ŤI7hfݏ8M9hZvXn;a&D# Xm20*] wgh;YGe:8 2; d4=ylo8^ Y8n-Ź ]Y6X 8 O2ޡY9dI 뎍}JoVv8.v^ԸFuh٣_$v63[,,K-2șw s£;?z[K3eY݆&Mx2egŌ6Ld-Wofcl. ko`O8<$]2Pk'lgdo.`:Nn 9 Sz˪ط~7 ?BǢp'=D-_) ڏ0˻03Or v@Lެëyh6 رfoY8sﮔzPl^W^ jP;x*{Nji°&sE."Fp,XOY6:cI ڐ~l϶P&w-`{jpvP0{5poQ=D)XاM6${|ۂ~\ R\'}7Wa|%[o%>xǎs-夏]?RJy8@B)d~'Eͦ6u^>cϐyNR^n v<0':A[c.,e#og!Kr:ۢj]A/ #~:ϻ%Gy" =;<>IZ϶oR BܢFp3rrb(a^N9#+ -:QCz@dN 2tߟ{γatF_|YX!^@9q?6P k Iuj6FK;k"H?'hOqW<{np&A;㣏Xoh9]i `>^J BȓvOlyȉx)pM`, d[x= rv`sG @1XD>}^^`w2׆vrPnwV/Ko@Xp9nβW0|Nwa8~-BLoaDq_> *#`m\(K`Bk A1 wfszy{ `i4fn齝/Q2v`c, `IVʘt.'> ϗv#`r$8cr]El&} y\,@B $hHvG ߈˂voLpR9.:3}Ds&@Sssqc_پ97o>ZS2a-[nDk3c<`ξ ?7`:ǹ5zS49l,`su|VO,GŸci?A?^HyyZ?74w9ܙ'__HkCz =}, lxAC[> {?#{g۫N|$L!.k  Ljyx\:z0S_3wS=zDenׅCrulZ}X(l&oں=}d|5?[}hܫg0w~"g;թmiSJkMHgf̷翵xo3َnffU^nJpDѺdRV6vL)Z^d0. gMSy.OUܐ/~/ \jKO 3gy wǞIi8I=C:QBïҌOš>|/0Ō>qb0>}Xvg_C7kS;l#4=>zg}R>E%TAu <i`N4t?DCxH:8B>Gmot*p^\@띍#ךЦ`D4~>vY c0uFNX,KxFtt"xqKbwi θDwI݁oy=#lGDAýQ@*Kw\:ߗ1H?u=N>Ux)LeoǮ78.żvЏ\>\*^zАQfxg2@0lz`ijG\b`Erj$wo?wn.ݶ{Sn`Ì:GLY= =u&ΏA<gy8;z퍽cws>xFy/qY!<$p{aNc1x\v[ ##C l’ۓ8YjsP'.B1&M`1egxq2/y˼Z^:]k/FںYglš߃IYǑ>! `I, Y>p8dcݲwAb-a,'] [{b9mVla}a>Ẏn8&).ߏZ0iw1D45 sw/LL@=]qbm,m6z˾`e`B!k̿ X=~0>moQ'K[!D["]^0_ ||zqb%Bi!udl~^>%d0Be2(tw۵{V/IZĴ͇Jazg,j$2%|b{HaKUNl.8.JbBK`Ke _Su[yVYxpi :0_\8A0 Il]a̙{R ]9@pܻmg"t=ogz}Mo6l Q1%>#3R՘$̘dp,`m_s@Bd mgcoe&Gx`X8ݶeg ;:Bl-‹7eKk+\#8C@lKIՔы2I&Ā,:H0F=liy"xtw/ 7l(}h4>)݉F{`;ػ`RM&î{3l0׉6Y0@}"C oP2};g2'h33.q荎s>tnَa[`ԩi"RCՄapьG?rE%vv[#2M%ޥBݰс@,,u2$  8R A#j(!1 AQaq0? 2nÌy{GUя _)~,-8GRB9y{.5\, ;Omٌ{u/ݐbH:ldϝ@ @&$0D = $<%0@;2ؑrXckFKnѩޣ^sR9*SocXC$,n؛:{:>y73 Րo3/E۠-IR .bG 10mM67C[JK>IzxYul!F㥏Q,9z]͹(ݽZw@T8A%DFu@'op(A嚉ul a `%XͷueM@ǃpB,lNiEs+hFqb˻0d5=OU!B9ٕb @5@׵^4Se֋YEG/vpImJ*8'HvJweg>෫ dri`],f!}O%IrCiũj]I%`W/1NYW\pÚ6r(v6r(PB͗^8c5;ԦMI:CnSuð$ 㳨7a:f:7mل9^!F}}HYId9f1wI!&<+" /X܃M=m

[:- 1`">JJN:z1ic'J)hԋ `%AX|Ic$#cޭݙ/[ I=۹ 8 >ktp+7&Đ܃  a:H-JS-a#V8\Q̹i^ȹVnI=rF Shp#kts䛉Ι cDXpqē TȆr8yǝ*䳍Yoxl'7Hїn~Cft,{ ;46M{ e<#jҕ~rH!2N!Hg6f$BI|1쁺m1IAqvɲ:XWfpFGa&v@fv`P3 zm6{ ԃn{&G $y0q -I p՞$q%ڦŽe0 P7H#-q>;[{"u~l= HoK1ܼ0KYq^Hh,fXɥw6N (,hg)B3d2|Y  C#Ro=-ÀW0D!$?V0&S0y')'ZyĠh^&b 8}&q }/|c~I#r͆ )Xce "6`G4>RUm${O0-YNOCHMWY* p* ;{P;mxPI,9'(&?Oe-CGv$\!>Ns$J,S/b+nAM ?+k`ۢNuȍjn~OⅾGBA S{/zٷx/?PG/dIcߵm ~lE쟿!H,.cԁ(q寁 0 uk8HV +윹4cO}GF>SK_ 9Ƃ%ܡ.A7aHjfFA/NI#? ݔV^@}`ˬi.؀cп7p=;vPpijϻzZJ -vGSrOy݉a= ohLȅufv`6}װZ|KRL#?Hcž}y: b>x28NrZpxl ag|1\$bܐ} }O6 DZ-;,%fMif3_6cy !He3[| A`Zz`/^܍00?IgBxzƸI.ޮMӌJrLz>adlrl(N1q7!e#-LtKV{ݗ` 2Y.X>۷}ݒR,x]mDػݻ'o_,llL152o̐Hq2'rL:%mb`;G#fv%בhrL{J}[Q1B 9{i!"gBE4!'HywxJVghhv?à`C*؊nls͙Oڛs};1ݾ|?/(K~ r=8&Ӽ6 x6)5YMϔmǍ}p;}M,6ӂؿg){OP+j>wԟ{ݍo,_\g:nlHy-c#ٱmHu+ 2oH^p Ȝ`Gu,,wa>5$ ^> 7~PXlYܵ7OZɰiw䗅atzNâiwCd[Y,{/HdX@W ;ĢC1 R{uNm֒8S dO~;ϩZt?4.+W8,e0F>OSn@&ݡ i_`N; (:vӊFA*l{r?pTto٣:߷;/0ƼYm,ad咎>Cݙa|pv#dak=Ja_-gS;j`OjAN) ߣ ~(C%&촻|K(602I ,< b[-get>=H!{ya_]w|B' wQaz8n9u_z퇃 e=h2in3[>ذ<|DOpRZq !@> 3L>ýZfthη.4o|}Odbv=a\!fmn48uXpw[in"q`OjAZX`R7s Go[p:J:qcwy<h.=N y]Gϲ]I1< Ooh!=0w|&"?n@;Rl3/4e> 2xh@J?88) VRȹB˺k{zHzɘrw|C3z#[1%:6^-&a95Ya3&$#$u< @Dhi.K>Ըveެsc}XdB?Rx&4{ %fq)}}q`a5٧{dkAMnI4M1A>F2NXEm'U7f_ԓܹSo-c,s!ͭG_>zel U CNI$H$i%:{ *(&?JC87$䵵{ ;KB$XKEƥ#kuL FEnQ"d,Ei,{ 4ܻ{Ý`q1ٶNJ~{ݲe@VWNb]_Olr]tYN}tͅ9c#򷼴H0 P|N!sF`&$U\]ː! @[ۖK]|߆Dx;{e'GonpC Lxl d婉ǔw%J D%G m$9A Oq1vZ;X>ZZ6 l Yۤ{(es#q!6iE1`{!!$2+Իܙ;8F,miaܧ'J~ ԜS<Be 38ɤd fxjGy{fٯ c8;6_s9 HJB\D8K1 ,,olfY13Yx|Ii#e$vdy3%.%݇\(K랣3Pr,\ {DmFGŁ&r͑^ upueIN ~Xn̠wѸd>?WD7ó ?>Z6 \ޮVq}"""B#u&eOբBl~~%cw9|&bzT>J&3=e%gē~Ju8aڲ FRmon ly^؈cׁŌ&`{$n>dg=CK@]ּ9֑Ll6ztaᙶ6Cu'ݬk7\[cll)%=]lRba-2NAv.1.I};o}>N g7 AL<@|u2%IPV6вlN^]B˴2Ȉd䛶 !nu^Lb?x7G{JP;PR/EU5 )/&XdY+gm}Z2v=a`䓝_>ýK@dxk Eǖԋ ޑqY ]g_!VuYD7.Yf♥(R iփś#pל-op"[RP'%aE[PP62Vݒd[%R$=%O Fέl"-e%d>ֲFn y&FA.HCZ% vk#I?kahJY76^\2E/&!1AQaq?-O\ NۅWlK 6 ao'9R&&t%z8hHxck(@-pBn` Ӳ&h 4-y ^ =׼Q3N\mi%1lؔlvIĪL"M%NLNL〃)w,3Ҫw>ꈬPr6:]N kZ[vp,eY:ٗgGnfM]Z8"h^y¾ ($&?1(4XAh^J-hAs̓yy0$U#yR-IbP4⑅!+3[Y_.Ǽb^+KD|Jy`r%|1(#I;2wC$!jfC ʃ~XH7 \T$AEakǴW|\ u/nq RԾ~榌.D]j|>pXmW{V,t3"BPd{c>:\9Vhipc䬘Uxǰ]gtEP\b akپ`) A wOwi81Eh;ƾ ɵublnKl:1(>xV a(t<@02X5$<7"McK5IG'b*F۱֔xD F$N9qS;8:#PW&<Qᬧ ;W4F2};+gc%,/A<+U YWG.KmΒ Mu>2[]؍y݋/q[FB.5v!0(E%G-]w%Kz[HAô@8[<(fvru.p5o(=p` "Р @ۮ7 A'8*a#i-  9t}ocpCVCt_ܤd $2"&) !ߎkΆṂ'B: #[q3 'A2N_n=BlXP5nSl6;1hd’weW;2I rb"bNT. @mhFo8E{3~m1^1#fH@1{:'@y N .VeHS^A!Y bSw@`%/vcѴhfV`a!*0n}Oeu3?xFI+ְm9rU!FBBb51n7>`W[SODaLVA>cd'H CS C'ُmfhYttAp+9x hN9ah]K@.pݎ> mncگj-É|\9Yqviq1A,սezs$=L56saA0h9*$pPs(o ϟA )fөp_ qX&;:⨣ɀ9`Mǔ#a"2\Ztiα;!'E؆8+;:$wL YE`)@(87(ҘSp"tīGÑ7Ϳ^UN8I6qx1<xݏGM1DU$&klí(9WC95'a IaD JF񳼈4f۟!drj-Eq,K~bʻ ~[6*D$[VEȋ w)eL JZ%m"αh(x #+\`KOV"B;C1gImMdDܒOd rψƪxuәAdWXU0eJS0~EZa=gTp Ls?Pڮ?.p3h D]Td4O&"3Ai4&(i:I4mIXE g3+VI(7t<by)gkBOGL^\ kpo)(;°e1_nE^~aa̔XR#/M81@وP k|`A1ʌ`]aXNNDvz1ʮӃǏD. -Em;L&b7(J.`J(ߜR6p2YӡI,RW|)\(ZwˇEydù@]q]ÏT`H6rvFgy Nf]%AXv.H/lY{|\d#D-{%--cuR2勽"| e E;9d?ZQ3tFFşj(rxЖX h8(X.zak$baA\Y)[U9՝Bm[`8JKу0'6hxMpTC^o Qe{>N `DM.l"N LBֹvl1WR`( p>`9_!3V1$D^oɗ}A z/(₈ADs5L9” ҆Cg (xӕ^a\0[rB*=ذqh|XA8qT0!-gD I3(jّle xg{7cHt-?lC{QؙAmX{ 9< ̨P N<8Lv;`I _ &S}6ayR =}eicP;cd4 L`,3 T"g0` 6f^W@3a\OK;RJ;ϓ\B^4-{T0 L:ȱP)y.9n3nC]{q Ao&J/Y}hm(9g.v.QqǢ0ې Mq^9?+ %unĝ7&CV;$g>08 - kޛa9'/و 74 "d0VW#u, fᇂ^VU@289<GäjEBvW놯One;8_@ )g' #gN*0^5 kYPXkI74bfqxw2#!tB!0ٴr  { 8O$eja (n7sBh<+ w vae M\%!߳R*6^PğX-CϖbfF%h2kqh-{A#18u=rL)553p8OҐeS8J%TRd C nj FLk}qgQ\(Xlբцa֮ZH%b HD:$b:+CohĊF`ɧEcU-=L궭JUV%!,p&LGS.:bp:&Z`OyhXCS @#4 {X44vY*E ekY{,Ʌ4U;VŰCdq01"Mb N!I7K%wVyʋ۷/8`w(T ux!Pp (ל'D6*0Y- &#!l<=~Ё&g> ?#X:@)؃];J=j<iye.yH;u7i$+䩄tK0(&W @fizS #q'֭(FJ@Ё,T@pڙd-*gO8Άn>a1eHrv 8Dby6vK:ٱ4_ԆӉE[Aى{ETl|̄b%(}Uٺyoo<ͧl fXGWx=T3/!iP qgG r"t[ K9fEBE}d@;52R6-9H;c $}?Y 㥤 -Fr8@I2c`fw>Lj, ujldN54gFYllƄ޻ʼn>@Iwq*rx C8hp7ՊB\ J j .pIf|Gj9SC#eBpbr?XtgeL!bCJ8n.zKEq 1iT. ]:KR\0 +\l>8G$(Mj㬶r`KQu҈(>?`)T'# J:"9وǑQHY@O@#N˕3 & Y&#@_v~lU h+\0H3Mn Zb1G67R/X"Ȣ`٠ N`r9wsiM LqhNC ޅ v?Di<ռPn߈ɗi˽qzd HȍGe ߔ]NND!w*q6ƚRƲQ\V~ ~f5ڈ"|PŊX W $%LaB$6P+kYMCa%Shjl'ri$DN58:ôCy#=4C0+p9fڗ-jbP0U%hxDR5vAad~?af?+?nWx&T*G:*H91!& .iD4jrgbÈ毙c"wtdtjNr `{ʑ*0- uJr\7=QHCe6qtf9(kAǡqtKp-ɽ.ȒIsb]`%C&&QYY@%&g( ]/zz0qjBTCU0`wq%S:L"1Ei,E(k5-!NN %K8%\C.x wS^k_qpw $-)vg, F㬷(:q\y@D(6S ,"nayĨAqHCX4Ku@0fJ睰gƐ#%s}>BTtnjX]bxSN !JkuǚM.FPi&(&Mv=܆U^6%yQR#mN'pPl_8H=e_&0n&)FNިm Jb Q[6hyr ɁGIneS b(r"N w0V 0»$TW @z7hHLpwgba\V{M]XzEpqhv!/p `B,Lw׬4 70Q m3q@!&ܪORJV9`\b5YDD42LDLE? Y3!2\M đWsnלv9+- R8H EUTzsj!wq*a9{N7οkA}40R(gyqtZjJ;ב ̦i/px޲I^̃*Wm<*">G{X 4k!T'"=c\jz&BK yQzGr /4cT5,M4.wq kxwY=KhTfkPm@Ӥѭ~0āDdeѯe֕Gr_H)Ǵ-Wd)(O~wُL/m o/$5'30.ʅH%_pfߋɠ2fC\+ưj :qv >fۑw,J )i ʛ>HNt#zwNs LX6JxthCca+UC𝫊`+OYvӏL+L-I?Lzr<FNJ/#`R*|`.ʀq,+=a}NSxNrqErY#n :)8b @f8Dxe%7}6=gi, ! 4Re \n^L:Pp?G~댌Eo~3cpKuảbZ}dhl1"aby`qmyPܨ|͝&.1 *aa'h!6aw7) @_1Ԗ3؟zd9n/`Z&⧒Y~<rF|bP D N!BRПVuk:4m6^)ĢkA/93}.ԁ<@Ai68X=Xϰ <-qEFE@vjiD H<oB<9̟d3 OuCçHD\N kC,gVMZ0$ 9pX t8 pX .X]Nvon1r.XDl'F(5JB3*4Fg6M5Qy5 ߥ1b(՚q Vrj_1{Wsl64 ;;Ûт{59@^ƣ ,ZHnl'p"~1a:LSSXe}A1J5sI93c;JM8lEPO HD&JˁH~zZsuІlzp֬4^:d:܌:# I^pE;4|0aZp mCp2/c`a0<{.! aLtYwJ(h^UCA9rsK(G ;.H# Uބ;F:*HH{֝̃nVͮY.Sken A. ’avӳG8BIk^:uVK ge$ F =e\-@LJDjfvYp^94RHW(BXz@a&ax t!jJVo_(J M%pD^ʂu0Xm}9Mi0:٬SFMC&ٸbMǶ =yPVXE ۽`*`(%K$ @ && )u'abtf#%c4Qu)Ե@XWs&H;X6&FJ 6JI"DiLcɦ-)ՆB඀v|`2^EQSp:` Ac$Q|fyz0HL_@Z#h3mCT(ǔJ;^0#WjS% ͩJP۷ZU`ś~dC]"::2q6g ّe$H#Z0Py(H%*G݆ˠ@q9."S`𹨘񄾎^SqJgUcY Blx3`Q;r7]&xarw5Cl0qpB-yް c) &'`EMfm3Yen'r00s[W!6WǧFB5_2nMy3nE\{[yo?.tŭRdHԌT]`Uň-#7@.yTyCzBf9+mrHS48`E1Wp7Pp \6P;cn+Pꄀ1W(~rhg 1ٰɜ]滁Iz4"r85Ba6J"YJ=H g bY3 D!\Ш3_'-b!cW{h yE+zʐ۷N0s"*Z.ֽ{*@8qEح+3x.y~05PrGC$BdoC`K]_eZu "]a9U$`u>(ƘC[>L0z\A.!ُĠB8ngRdlc]Ձ05KC2P.pUn X>,PO(7zC^, hPq5=eW5xrc$9h5'xD5Rd@ Ps`mec f9  dv€)wL =`S*q.S e~|.7Y2L-~f$f X] b/;ٔ[rQFt]ڽ㲍938۹C"1)]3c^VSƔk 5ujjd,/Qi!?1L7ky 8)]c(QoIɁq bPz]ܩp)!u}6;wrl3;1f]h jNQIq8-_2` _CEW$zjס$]Fš-E7T mn뛇(pj`YB%1zx9yQ|4NZPDUxaۗG*{9 z 3HR #fyA U)(=aHp1LP'᱀iSH+SGGc@ Wqq9 A8,a"P*8@(Qـy]拀'K&+yջ{D~9?h&Tʫ`g.%qB@΃N8aX2j$g|^f\[ (|uC{IDB A n!rB7ʘ*"wsN. Yyl]-YJz]4!qu%sd5kᄽ;\ci%ŔZ!n,P;Ű$|.4L@9|P6MwQ93Pyq 7/Q&hS`c J4w ǡ^i)_6?XH C^gFbvBP<2 r;*4GzY彭9S 9p:r !4{O7'%6_–'YtDoE#Z {@ڮDD8BW6uXm1 BGy˃yX 7 @x#4YEj߸Ji#8 W4UT<,)[l"sHĎKȝqC[-˦p\Kd#up5%'.sB<3N˓ PuHW͌$nc@pn2l7x9bA",n,LHygJ U@':;=UNŪ3r}"Irq%`x lB'A:' r'\鼒0' XB62/"`y{3 S=ԕON̈E>x5i8q݀! XLuӪr|3EMLJN\ X3N+jKŠ%t AJ}șs$pZ+ zA(CmIFZU&P8^!?;s&[w(UF\+i` iL*Ըc*s*+o6@ eʚGPVkTX&"&(E`3iݜ89+1NbS!e1<<550ȚqTƓJaa%0.o',GM|ci (9Oq5gr a b|O8Y7tZ.lAH"qq(ʓZGDYC8_x#6Oy˰<>aOXN'^ ܊ ?_qIgKͷn"Y;8".s =Oej9^3i޵U& (`'.TzqwmMNrӲY1= ri7Cs踙hoyJ4S \N6B˖r#lg+'>VPpl\|x+8'C&JGc"nyOrB`CE>CVgכ3@گ7y"dե/ Z @. p!^̕3ߦ2CV0Y  !1nh+ȺIR_R>.XOKĐ> *sAIT,TbcFɂlnqㆦ7yz2 5=0NFu]d2 F,,>#?4YwZk`Z D^24*twIҀ= ]0ySw2|"ŸJOsyB+; .3$ ^l&-ўN1tED0I @pW"E`OY1&ĸXJ\^:eړ)nFըW $@b5Rq3D )kG:Ӟ1lknHn7{aՅ @*HDdp]9ZSpX%^C,;p}O&˯81a䃗1Cc ԈKr u"MC=;˒g}ŮtK_ՐJQ|y+::!C® b}HaeNJ.S H8h@*u^EqAXENE9IJzrq@lTt0"<;qY13%1NgZcm'7E) 2)DN7 cjB+7EFr%"s[KDOlLAjp1u7 YA"xh8Kc>/&XyNk)#6מQ܊qQL)\ AM ^pQܪT׳ۨ kW+saT+W C`9"+i^ )ZlQ ~ 0FN;~"LɆ z'X3j}-ƈ=v?a@J4sW ?&ZDrM /TBJӋ 7\=9)N{Z ) &8+7Sb+:Ҋ62LJRUU(D&kͧS'E4(QL-E0n\JJy1ΧdB+ً `8π7Hb;ve!G;;f5٭>8 j'Uw'EQ :u S4\{S49` V&M6S&P+~Z +;saR-@ýIQGE`"pxiFDT}$t;[ fe6V*D$ڪ`$݁O`q973&K &rI9~(PW( bi"a$ybGTӗ:"4-a"p` @w.D]&D,*I}Gu3:z fkK[JX17@1^7UW$; S&4"vT)`a4`3m Z-3h%C\p'$71 *G7fli09- rl-G&HM:x1חiaE R="LŘ8 >ŜbAWzprN1^ ᅩٜD':2…@aK5Cſc8d pnGXb|&3T41X8&'N<wK#R0H[[A/im2$'Fo;t$~s\ ]y`Q]A{w2Ј cNNn8z-肝CQ!*ؼb2nmEJ&l6G"X-887LDܫowdc@ #A+7p:T kbmlt(i7/r {\=p=HA!МJ!F38D)AJ^ ivb%kx8J(27xjm\XM \FXJQ+NMV $:ׅ8AꚽBTZ]a}^%6 #U,Vż%c\#Uwx.NQqb[٫nXj)*%ŷ.LĽ"vc tQr=z|3@)\kuFd`27wÍ6 v"k2U)|kNr-K7*.O)1 槾)֯` -4fAGR-Ewͤӳ`-—4KXwY=\4ݛs^aa+s#NW@َ Ux)7M_5%{CBtqh '# -$p*ARʒȭG8t|PRlx!=N,NLaKbc-4ӷUa{܇u8Eqٳ/j)* -U0㺴2Mk z,`Cxjp.<yҔKDC$\AS/4D;[#k ,)lO([&z.Z([ұ>[3B#JtQe4yͱpn& #NX,|! ˅[IS& b0hK/&xDQVI$upv5IvFnx |}۩͂՚hщtM6Ty _P+?XȚ%ij|#sRi@pꜫ?_gh0dbJUuQ*Th7౎YðsS;s1Fz5 t#FF@qiSlԝ6]$9d0SXꙨїqƱE@yѡFX ]hˋ!X( s%cqQ;Q TUkcGc~-*Z 9B ADU.ð֊Jp!jE)yV<]ihap-u*s7fp9Y\畮4:Z:. ^wÚ@SHWe/0s+wP@)hWwi؎yuP'o.eO/ְ*G]gx͖ˍ(rV%c QR`G(ht.*8&nFbvgd_YKQa 4.'Lbs[K Ox$[:8<д-8*xqAt1]v:$p )V(5pC=NAxs@Aqt:RbR45 6њTJq 4)gP X+7mS5XlA`*awj |Pl3R%ᬩk9:A`ۧ⡡q | "j;̴- /K0";i2[WGD[mElD5, S(^Ή8'1 1 Q G sx$ 'qM#g%2_H>#l1(Fx% a92""]/TQ1Sx3(VK|8"*rme^Oí`ѵ0b>b91(PdZ[R;{ʗXpa&)}byl҂ /4BPq0Z|X[f倵^N0WAF2 s1%P #  РvK:[Gb׵ ߜr2iT99CON@wS0:e;rI|`X0kggCL&́j6tL/Z8 ,d" 5jlYvcB)хWĔ Wj7! ;\̌N [3(֘=ICQ9=a&vS)sS2 jEHpcif,\%+,rgP/12A/@恛yq.k+x9MZ]v@+47 J`5ۋԺLgyvIvةiȩ(v㆖py@LS-+s^QcA.9 18 (0ٹ XeP񛷑4'*_CU"KBYUP $w&[}.Kj=kpXG>p<< zs8OH]4.Ou,p ]`0;2P1SctDӚj,Y8L@:.nׅ^\*IӖ_%<=JRֱZMG;^sy(-T Q2rɉ ΂_ab6Ę114W1GXUC8]KGe:{=*Q"@piń%]`f$A-^F@a^&h0 ~(m dLݥn%]*Mp!6sD of2reT7!iR]J@se!c Vt9/K?I(sX*ch&00r;uXuy\R*xz svxa,ELێ;/(+ *LȚ..;O8G,wۏp8) yBafхcF(A9q{~\+'$ 8 tjT鰃bzHݑ0CD->AM.klź W9\3fBůĠ466sҾRI/8gY(N6rl.aD%9rvh O% 8l>/08$؂"\kIw^ &jc9+0UXnl h }"/ oƲ\%}3dіmdɄBV3gx4~tP[=[IoG8,9?xGTqK"HՊR,!BP(' k%xë= eœo13V&]i/@q%c|o7vK "1XAkȢ5I/ǂs Mq5;a0A^\!u:=bH:u <X>PM/.N*;NQe%r(sE"隚 mP!ːL3Ot\مd:qmNWtbjeB@hca:+RJ%bEkmx[4ryjuxޒ!iۻ ; 8("aC]tƲu78ҵ4̢wsy:wL5 _wʮpӔ~䒸nrup`XV{]oPG(_:Y>L|X^9կ o5\a?X@aۧ>0m^TS*a$NHb;3-X!@~v E=Gm<: Ѣ&b$лqxؼ9߀Q(hssئ D9]S!5=+ .l6v5"A$`:~0%)HL;O `]0d﷬Jf#h_S4(r' |FbX`^Zn,] T09hSiZr=s,E[U+vߓeɄn!!+C;ĻL,_zUc8TwX7@LYV8|W891n$l´-6kUq?4k=NC!FzYS9(5VL! +rIy)%*l"gQUyh~r+/-a g{}in8x@clLjwɉW hwu$Gcq Ӱ]-`u5C=FXaEp/Nom4C<`x0WD) Sԋo ;хlv1J*9(Px0ѺmV'JN!EB@&F< ߬(1Vjub T.C hZDH&cATGtنÁ!h?&ŭ 1 ӱ<؞3(pF ٵ8B뉗µNP%U5Ȑ)NZ|* Ftvi0%\;m)JVt6 9D;n4ސ'xA-08Œ,kL'kM ɷ©n۳f'[q.PoW2l!<]ːtA1U%kCֱvadk:9I?FS))J'+rb'fXBcu+M:uoeLڄ2*mG.x &q$6 *-qՠ1X^F'#cl<L$tހ-;H%"m8; =4 <@'?ohX.D2 v-)/Cwe |g>-:\zlX ',F"qkJƶDaՠ gK@WԠ݋2#BvJ1*- s XS:2C{͓K\E ]={eE#GLK* +CwprMCXFvQ`;]H6&Qobzy8?ybɖ M#@MbHUۯ8vW|ӯ$IL` a  pIQ 1!Hy R).F3"HX-HDB1:(н"F6k/`CrQZ#u\@Qjxŏ'ʺA6~F DɅM,[k\čTkJxOzO)-?, (ۅ{َ+AkUp/}K>7i3`QEu ZYwbCˣ@!9qwBJE,H@fmJA'/kyYB3S RQLHr\`D(#.ͷsL )B gg ٌ# lXAXM2yo1(d5qJew(V%ڂg1F}!A^ B9wRv=!KJdDk.iUs4poTtpjo+(s # ^$ b]<✰ mR%^gD#Ϝ=9/zbE* YaȘPNCx@DXVF !7Xv&`E2dryDh@IBg6Lmn1>(H{"0VSL)CGԄ+_6P7 D.q6d=鎊9@n8we"PYWo8B9{1)9SoN!wCaG6ST0Ū Ȑ) :z('DFW7=`6ŢYEUU\AxN(0! p2-h^Xo/KKpaJ\$&F~aB(X2+٭ɉ?dMyqi6W]Ƞˊ 84E_b bi[\ĐtFKyy(4t&?h!dB%Urq0z-TQC -[+En(c H AQ1JC Vj:,/ӧT6HجEk̛d$'/D"&P.}ha;!M&9)nN<rފ9Dн搁{eŸrBfFl:Ȯh*7=swȱS XmU1 Cb˃qOWi4$WxgmuZ8[E%YQ@P 23 &n^ p{A0]Uү 7T}2C,@/uDuC6XtW\a!8VK ½يKl%/iZ-&um~ HHJ3; %R$_$#k\a u1Q򪚽޲4YmiUg-); ])@[#E< ;Rf{-z`2S4.6󍀇 snSN2H.q$!1aJ5kSlD;ŰC6mŬ( p5.mG9ml7: 1;s g*svGtd/zE6[0݀td~1H툚{ea\TxI<_,uC]lA0(+ pM玱-DGƨ`kICpY,B-8g @8tlpkPo/N X`8bC^!dXJ!y3V@ ę O4kj NPMk7*y}O4ɦa8߷q%65a%U6%K:fbWKU 8Tn``o0 pެ̠[aW{€|N(]I)"j_ta[2=H%AԓqѤ p-QIRe/[bhN7DMcNc!z8ӭI\t4fpxكx9EJO , Aw׍&OX _p * )z rC5[E0.RFPOL01 !|D*kd?N.]鈰~rꍓM<6S汊v(و'Lrd;..xƮۜ=.q*L-0Eolp.c-qzqU)M'O8AeJ7qI^=bFJac$/ 3RnBҾ!Kn /y>~,ݝᲩZUç8PFd$)<_l-khہMOO}8Dr\ZaL!O2? hLjc'1Na'w!|]FkrL8$C|.ǜ8EC=iK 0@GaS:Of+4Mk2qjzhVf9UKD MtD?ءIK~r%'⁰1֏Ajy1="h#8uAݹYưh(OHdBq?_.?F%XEzv2;A_ )G& Bfj!c" LDTc I(#!@R3n4Jjph/context-modules-20240428/doc/context/third/context-notes-zh-cn/src/14.tex0000644000175000017500000002355614411653175025040 0ustar hillehille\chapter{写一本书?} 至此,你所掌握的关于 \CONTEXT\ 的所有知识,无论是用于撰写书信,随笔,论文,还是制作幻灯片,皆已游刃有余。现在再掌握 \ConTeXt\ 对文档逻辑结构的划分以及为文档添加目录等功能,便可写书了,这是 \TEX\ 系统一直以来最为擅长的事情,也是 \TEX\ 系统为何复杂到令很多人畏惧的原因,他们从未想过自己有一天会写一本书。 \section{书的内容结构} 一本书,通常是由一组文章构成的,可分为序、前言、目录、正文篇章、跋、参考文献、索引、附录等内容,再加上封面,衬页、扉页等页面。对于书籍制作,\CONTEXT\ 对 \type{text} 环境进行了更为细致的划分: \starttyping[option=TEX] \starttext \startfrontmatter % 封面、扉页、序、前言、目录等内容 \stopfrontmatter \startbodymatter % 正文篇章 \stopbodymatter \startbackmatter % 跋,参考文献列表、索引等内容 \stopbackmatter \startappendices % 附录 \stopappendices \stoptext \stoptyping \section{文件结构} 将一本书的内容全部放在一份 \CONTEXT\ 源文件中并不违法,但是数十万甚至上百万字的内容,无论是撰写还是修改必定极为不便。通常是将按照内容结构,将每部分内容制作为单独的 \type{.tex} 源文件,然后使用 \type{\input} 载入到主文件中。例如,主文档的主文件内容如下: \starttyping[option=TEX] \starttext \startfrontmatter \input cover % cover.tex:封面 \input preface % preface.tex:序 \stopfrontmatter \stoptyping \starttyping[option=TEX] \startbodymatter \input 01 % 01.tex:第一章 \input 02 % 02.tex:第二章 % ... ... \stopbodymatter \startbackmatter \title{参考文献} \placelistofpublications % 参考文献列表 \stopbackmatter \startappendices \null % 暂时为空 \stopappendices \stoptext \stoptyping \noindent 主文件 \type{\input} 的所有文件皆与主文件在同一目录。 \section{样式} 原则上,书籍的所有排版样式皆应在单独的文件中设定,然后使用 \type{\input} 或 \type{\environment} 命令在 \type{text} 环境之前将其载入。例如 \starttyping[option=TEX] \environment book-style % 载入book-style.tex \starttext % ... ... ... \stoptext \stoptyping \section{目录} \type{\placecontent} 可将全文章节标题及其所在页码等信息汇总为一个列表,以方便读者查阅。例如 \starttyping[option=TEX] \usemodule[visual] \starttext \title{\fakewords{3}{5}} \placecontent \section{\fakewords{3}{5}} ... ... ... \section{\fakewords{3}{5}} ... ... ... \stoptext \stoptyping \midaligned{% \clip[width=\textwidth,height=6cm,voffset=3cm]{% \externalfigure[14/toc.pdf][width=\textwidth,frame=on]% }% } 使用 \type{\setupcombinedlist} 可设定目录样式,例如设定可在目录中出现的标题级别以及列表样式。若得到常见的目录样式,只需作以下设定: \starttyping[option=TEX] \setupcombinedlist[content][alternative=c] \stoptyping \midaligned{% \clip[width=\textwidth,height=6cm,voffset=3cm]{% \externalfigure[14/toc-2.pdf][width=\textwidth,frame=on]% }% } \blank \noindent 目录列表样式参数 \type{alternative} 有 \type{a},\type{b},\type{c},\type{d} 四个值可选,默认是 \type{b}。本文档目录使用的是 \type{d}。 \type{\setupcombinedlist} 亦可用于指定可出现在目录列表中的标题级别,例如 \starttyping[option=TEX] \setupcombinedlist[content][list={chapter,section}] \stoptyping 注意,当 \type{\placecontent} 出现在 \type{\chapter} 之后时,生成的目录仅针对该章之内的各节。若是写书,需将 \type{\placecontent} 放在 \type{frontmatter} 环境,例如: \starttyping[option=TEX] \startfrontmatter \title{目录} \placecontent \stopfrontmatter \stoptyping \noindent 可对全篇被列入目录列表的章节生成目录。 使用 \type{\setuplist} 可对出现在目录列表中相应级别的标题样式分别予以设定,例如 \starttyping[option=TEX] \setuplist[chapter] [alternative=a, before={\blank[halfline]},after={\blank[halfline]},style=bold] \setuplist[section] [alternative=d,style=normal,pagestyle=smallbold] \stoptyping \section{让无编号标题进入目录} \CONTEXT\ 默认不允许无编号标题出现在目录中,但是倘若对无编号标题,例如 \type{\title} 作以下设定 \starttyping[option=TEX] \setuphead[title][incrementnumber=list] \stoptyping \noindent 之后便可将 \type{\title} 添加到目录列表,即 \starttyping[option=TEX] \setupcombinedlist[content][list={title,chapter,section}] \stoptyping 需要注意的是,在 \type{frontmatter} 环境中放置目录列表时,若使用以下代码 \starttyping[option=TEX] \startfrontmatter \title{目录} \placecontent \stopfrontmatter \stoptyping \noindent 由于此时 \type{\title} 已被列入目录列表,因此 \type{\title{目录}} 本身会出现在目录列表中。为避免这一问题,需要为目录页单独定义一个标题。\CONTEXT\ 支持我们定义自己的标题,例如 \starttyping[option=TEX] \definehead[TOC][title] \stoptyping \noindent 定义了一个新的标题 \type{\TOC},它与 \type{\title} 的样式相同。在 \type{frontmatter} 环境中使用 \type{\TOC}: \starttyping[option=TEX] \startfrontmatter \TOC{目录} \placecontent \stopfrontmatter \stoptyping \noindent 由于我们并未将 \type{\TOC} 列入目录列表,因此上述问题得以解决。 \section{书签} 对于内容较多的 PDF 文档,提供书签(Bookmark)可更加便于他人阅读。书签通常显示于 PDF 阅读器的侧栏,如图 \in[13-bookmarks] 所示,点击某个书签便可跳转至其关联的页面。 \placefigure[here][13-bookmarks]{PDF 书签}{\externalfigure[14/bookmarks.png][width=.6\textwidth]} 为 \ConTeXt\ 生成的 PDF 文件制作书签,非常简单,只需在样式文件中添加以下语句, \starttyping[option=TEX] \setupinteraction[state=start,focus=standard] \setupinteractionscreen[option=bookmark] \placebookmarks[title,chapter,section][title,chapter] \stoptyping \noindent 其中,\type{\setupinteraction} 用于开启 PDF 的用户交互特性。\type{\setupinteractionscreen} 用于设定 PDF 文件被阅读器打开后,以何种形式如何呈现在屏幕上,若其 \type{option} 值为 \type{bookmark},则文件打开后,会自动开启阅读器的侧边栏并显示书签;若设置 \type{option} 为 \type{max},则文件在被打开后会全屏显示。上述 \type{\placebookmarks} 语句的用途是设置可出现在书签栏的标题级别,且仅允许 \type{\title} 和 \type{\chapter} 级别的标题,其子标题列表可被展开。 需要注意的是,\CONTEXT\ 同样默认无编号标题不被列入书签,但是倘若做以下设定 \starttyping[option=TEX] \setuphead[title][incrementnumber=list] \stoptyping \noindent 则 \type{\title} 亦可出现在书签列表中。 还需要注意一点, 书签功能取决于你所用的 PDF 阅读器是否支持。此外,你的 PDF 阅读器可能会将 \ConTeXt\ 生成的书签视为索引(Index),而其本身则提供了另一个叫作书签的功能,允许用户手动在侧边栏为文档的某一页建立链接,与 \CONTEXT\ 的书签原理相同。 \section[reference]{引用} 在本文档的插图、表格、数学公式等章节中,已简略介绍了 \CONTEXT\ 引用的用法。\CONTEXT\ 的标题和列表也支持引用。例如,本节的标题对应的排版命令是 \starttyping[option=TEX] \section[reference]{引用} \stoptyping 可以在文章几乎任何一个位置,像下面这样引用本节: \starttyping[option=TEX] 我在 \at[reference] 页 \in[reference] 节\about[reference]中的一些内容。 \stoptyping \noindent 结果为 \blank[line] \blueframed{我引用了本文档 \at[reference] 页 \in[reference] 节\about[reference]中的一些内容。} \blank[line] 使用 \type{\textreference} 可在文档几乎任何位置插入引用。例如 \starttyping[option=TEX] 我在此处放置了一个引用\textreference[myref]{一个引用}。 \stoptyping \blank[line] \blueframed{我在此处放置了一个引用\textreference[myref]{一个引用}。} \blank[line] \noindent 注意,一个引用,其内容是不会显示在排版结果中的。然后在文档某处使用该引用, \starttyping[option=TEX] 我在此处使用一个引用,它是 \at[myref] 的「\in[myref]」。 \stoptyping \blank[line] \blueframed{我在此处使用一个引用,它是第 \at[myref] 页的「\in[myref]」。} \blank[line] 如果你希望一个引用,其内容不仅出现在排版结果中,且想给他加个外框,只需定义一个宏来帮助你实现这一需求。例如 \starttyping[option=TEX] \def\framedref[#1]#2{\inframed{#2}\textreference[#1]{#2}} \stoptyping \starttyping[option=TEX] 我在此处放置了一个引用\textreference[myref]{一个引用}。 \stoptyping \blank[line] \def\framedref[#1]#2{\inframed{#2}\textreference[#1]{#2}} \blueframed{我在此处放置了\framedref[myref]{一个引用}。} \blank[line] \section{索引} 索引通常放在 \type{backmatter} 环境,即附在书的正文之后, \starttyping[option=TEX] \startbackmatter \title{索引} \placeindex \stopbackmatter \stoptyping \noindent 以便检索在正文某页检索一些关键词这些关键词在正文中需由 \type{\index} 给出。例如 \starttyping[option=TEX] 我在此演示 \type{\placeindex}\index[placeindex]{\type{\placeindex}} 和 \type{\index}\index[index]{\type{\index}} 的用法。 \stoptyping \blank[line] \blueframed{我在此演示 \type{\placeindex}\index[placeindex]{\type{\placeindex}} 和 \type{\index}\index[index]{\type{\index}} 的用法。} \blank[line] \noindent \tex{placeindex} 产生的结果为 \blank[line] \blueframed{\placeindex} \blank[line] \section{小结} 用 \CONTEXT\ 排版一本书并不难,难的是书该如何写。context-modules-20240428/doc/context/third/context-notes-zh-cn/src/doc-env.tex0000644000175000017500000001470114411653175026137 0ustar hillehille\startenvironment doc-env \usemodule[zhfonts] \definefont[kaiti][name:kaiti] \usecolors[svg] %\showgrid \setupinteraction[state=start, focus=standard, color=darkblue, title={ConTeXt 蹊径}, author={李延瑞 (lyr.m2@live.cn)}, keyword={TeX, ConTeXt MkIV, ConTeXt LMTX, LuaTeX, LuaMetaTeX}] % 书签 \setupinteractionscreen[option=bookmark] \placebookmarks[title,chapter,section][chapter] % 版式 \setuppapersize[A4][A4] \setuplayout[backspace=2.5cm,width=16.5cm, topspace=1.5cm,header=1.5cm, height=27.2cm,footer=1cm] %\showframe % 段落首行缩进、行间距 \setupindenting[first,always,2em] \setupinterlinespace[line=3.7ex] % 关闭页码,后面会在页眉设置页码 \setuppagenumbering[location=] % 丑度 %\setuptolerance[horizontal,stretch] % 图片目录 \setupexternalfigures[directory={./figures}] % 标题设置 \setupheads[indentnext=yes] \setuphead[title][incrementnumber=list] \setuphead [title,chapter] [style=\bfb,header=empty,footer=empty,before=,after={\blank[2*line]},align=center] \setuphead[chapter][alternative=inmargin] \setuphead[subject,section][style=\bfa,before={\blank},after={\blank}] \setuphead[subsubject,subsection][style=\bf,before={\blank},after={\blank}] \definehead[TOC][title] \setuphead[TOC][before={\blank[quarterline]},after={\blank[quarterline]}] % 目录列表 \setupcombinedlist[content][list={title,chapter,section},criterium=text] \def\PageNumber#1{\underbars{#1}.} % 给页码增加下划线 \setuplist [title] [alternative=a, before={\blank[halfline]}, after={\blank[halfline]}, style=bold, pagecommand=\PageNumber, pagestyle=smallbold, width=fit] \def\ChapterNumber#1{\doiftext{#1}{第 #1 章\quad}} % 若 #1 是存在,则将其中文化 \setuplist [chapter] [alternative=a, before={\blank[halfline]}, after={\blank[halfline]}, style=bold, width=fit, pagenumber=no, numbercommand=\ChapterNumber] \def\PageNumber#1{\underbars{#1}.} \setuplist [section] [alternative=d, style=normal, numberstyle=bold, pagecommand=\PageNumber, pagestyle=smallitalic] % 页眉:通用 \startsetups HeaderFooter \setupheadertexts[][pagenumber][pagenumber][] \setupheader[style=\tfx] \stopsetups % 页眉:body 部分 \startsetups BodyHeaderFooter \def\CurrentChapter{% 第 \headnumber[chapter]\ 章\kern 1em\getmarking[chapter]% } \def\CurrentSection{% \headnumber[section]% \hbox to 2em{}% \getmarking[section]% } \setupheadertexts[\CurrentChapter][pagenumber][pagenumber][\CurrentSection] \setupheader[style=\tfx] \stopsetups % 脚注里的中文断行 \startsetups footnote:hanzi \setscript[hanzi] \stopsetups \setupnote[footnote][textstyle=\bold,setups={footnote:hanzi}] \setupnotation[footnote][way=bypage] % 来自 wolfgang 的 tip % 汉化 \setuplabeltext[en][chapter={第 , 章\kern.5em}] \setuplabeltext[en][figure={图 }] \setuplabeltext[en][table={表 }] \setupheadtext[en][pubs={\bfc 参考文献}] \setupheadtext[en][content={\bfc 目录}] %---- 列表 ---- \setupfloats[indentnext=yes] \setupcaptions[style=\tfx, headstyle=\normal, align=center] %\setupitemize[each][packed,serried,inmargin][margin=2em] \setupitemize[each][distance=.4em] \setupinmargin[left,right][style=\tfx] \definedescription [definition] [location=top,hang=20,width=broad,indenting=always,style=\ss,headstyle=\bf] % 表格标题 \setupcaption [table] [headstyle=normal,style=small,location=top] % 抄录 \setuplinenumbering[style=small] %\setuptyping[option=color,palet=graypretty, % before={\blank[.5em]\setupinterlinespace[line=1.2em]}, % after={\blank[.5em]}] \startuniqueMPgraphic{blue box} path p, q; w := \overlaywidth; h := \overlayheight; p := (3mm, 0) -- (0, 0) -- (0, h) -- (3mm, h); q := (w - 3mm, 0) -- (w, 0) -- (w, h) -- (w - 3mm, h); pickup pencircle scaled 2pt; draw p withcolor \MPcolor{lightsteelblue}; draw q withcolor \MPcolor{lightsteelblue}; \stopuniqueMPgraphic \defineoverlay[blue box][\uniqueMPgraphic{blue box}] \defineframedtext [blueframe] [frame=off,background={blue box}, offset=0pt,loffset=.5em,roffset=.5em,before={\blank},after={\blank[.95em]}] \setuptyping [before={\startblueframe[width=\textwidth]},after={\stopblueframe},escape=yes] \startuniqueMPgraphic{blue box2} path p; numeric s; w := \overlaywidth; h := \overlayheight; p := (0, 0) -- (0, h) -- (w, h) -- (w, 0) -- cycle; pickup pencircle scaled 2pt; s := .1 * h; if s < 2mm: s := 2mm; fi draw p randomized s withcolor \MPcolor{lightsteelblue}; \stopuniqueMPgraphic \defineoverlay[blue box2][\uniqueMPgraphic{blue box2}] \def\bluebox#1{% \kern.25em% \inframed[frame=off,background={blue box2},offset=0pt,loffset=.25em,roffset=.25em]{#1}% \kern.25em% } \def\blueframed#1{% \kern.25em% \framed[frame=off,background={blue box2},offset=0pt,loffset=.25em,roffset=.25em]{#1}% \kern.25em% } \defineframedtext[blueframedtext][offset=0pt,frame=off,background={blue box2},width=\textwidth] % 红色背景框 \def\redbox#1{% \inframed[frame=off,background=color,backgroundcolor=indianred,offset=4pt]{#1}% } % ---------- sample ---------------------- \definebuffer[sample] \definefloat[Sample][Samples] \setuplabeltext[en][Sample={示例 }] % 参数为一个放在页面右侧的盒子,基于该盒子的宽度,计算其左侧空间宽度 \def\defineLeftWidth#1{% \newdimen\LeftWidth \LeftWidth=\textwidth \newdimen\RightObjectWidth \RightObjectWidth=\wd#1 \ifdim\RightObjectWidth>0pt \advance\LeftWidth by -\RightObjectWidth \advance\LeftWidth by -1em \fi } \def\sample[#1][#2]#3#4{% \setbox\scratchbox\hbox{#4}% \defineLeftWidth{\scratchbox}% \placeSample[here][#2]{#3}{% \hbox to \textwidth{% \hbox{\typesample[#1, before={\startblueframe[width=\LeftWidth]}, after={\stopblueframe}]}\hss\unhbox\scratchbox}% }% } \def\simplesample[#1]#2{% \setbox\scratchbox\hbox{#2}% \defineLeftWidth{\scratchbox}% \placeSample[here,none][]{}{% \hbox to \textwidth{% \hbox{\typesample[#1, before={\startblueframe[width=\LeftWidth]}, after={\stopblueframe}]}\hss\unhbox\scratchbox}% }% \blank[back] } % 修改 MPcode 代码部分高亮颜色 \definestartstop [MetapostSnippetName] [color=darkblue, style=boldface] \definestartstop [MetapostSnippetNamePrimitive] [color=darkgreen, style=boldface] \def\BibTeX{B\scale[height=.5em]{IB}\TeX} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 参考文献 GB \input bib-style \stopenvironment context-modules-20240428/doc/context/third/context-notes-zh-cn/src/basis.tex0000644000175000017500000000025314411115111025661 0ustar hillehille\chapter{让 \CONTEXT\ 工作起来} \startitemize[columns,n,joinedup] \item a \item b \stopitemize \startitemize[continue,columns,joinedup] \item a \item b \stopitemize context-modules-20240428/doc/context/third/context-notes-zh-cn/src/11.tex0000644000175000017500000002767014411653175025036 0ustar hillehille\chapter{盒子} 在 \in[item-sym-diy] 节中,你已经见过盒子了,只是那时可能你还不知其究竟,本章将揭开它们的一些端倪。也有可能你早已钻研过 Knuth 的《The \TeX\ Book》,对盒子的研究之深已经让我望风而拜,但是未必熟悉 \ConTeXt\ 的盒子,故而本章仍有部分内容值得一睹。 \section{\TeX\ 盒子} 前面已经多次暗示和明示,\TeX\ 系统是 \ConTeXt\ 的底层,二者的关系犹如引擎(发动机)和汽车的关系。对 \TeX\ 引擎丝毫不懂,并不影响你学习和使用 \ConTeXt\ 排版一份精致的文档,但是懂一些引擎层面工作原理,未必会有用处,但是你现在也并不能确定将来会不会成为一名 \TeX\ 黑客,如同你从前也从未想过有一天会学习 \ConTeXt。 在 \TeX\ 系统中,盒子是很重要的部件。例如,在 \ConTeXt\ 的排版的每一个段落,是一个竖向盒子,即 \type{\vbox},该盒子之内又有一些横向盒子,即 \type{\hbox},它们是段落的每一行。我们可以直接用这两种盒子构造一个不甚规整的段落: \startsample \vbox{ \hbox{离离原上草}\hbox{一岁一枯荣}\hbox{野火烧不尽}\hbox{春风吹又生} } \stopsample \sample[option=TEX][todo-list]{竖向盒子和横向盒子}{\externalfigure[11/vbox-and-hbox.pdf]} 横向盒子可以指定它的长度,竖向盒子可以指定它的高度。例如, \starttyping[option=TEX] \hbox to 5cm {赋得古原草送别} \vbox to 3cm { \hbox{离离原上草}\hbox{一岁一枯荣}\hbox{野火烧不尽}\hbox{春风吹又生} } \stoptyping 在示例 \in[rsquare] 中,\type{\hbox} 用于包含一副使用 \METAPOST\ 语言绘制的矢量插图,关键代码如下: \starttyping[option=TEX] \startuseMPgraphic{foo} ... ... ... \stopuseMPgraphic \lower.2ex\hbox{\useMPgraphic{foo}} \stoptyping \noindent 其中 \type{useMPgraphic} 环境中的 \METAPOST\ 代码会被 \type{\useMPgraphic{foo}} 提交给 \TeX\ 引擎。\TeX\ 引擎会调用 metapost 程序将 \METAPOST\ 代码编译成 PDF 格式的图片,然后交给 \ConTeXt。最后由 \ConTeXt\ 将图片插入到 \type{\useMPgraphic{foo}} 所在的横向盒子里。\type{\lower .2ex} 可令位于其后的横向盒子下沉 0.2 ex。长度单位 ex 类似于 em,也是一个相对尺寸,它是当前所用字体中的字母 x 对应的字形的高度。从现在开始要记住,横向距离用 em,竖向距离用 ex,不过这只是建议,并非 \TeX\ 世界的法律。 还有一种横向盒子 \type{\line},它的宽度是当前段落的宽度,可让其中的文字向两边伸展并与边界对齐,例如 \starttyping[option=TEX] \line{\darkred\bf 我能吞下玻璃而不伤身体。} \stoptyping \line{\darkred\bf 我能吞下玻璃而不伤身体。} 看到上述示例,想必你想起了之前我们曾在文章标题的样式设定时,用 \type{{middle,broad}} 抑制的 \ConTeXt\ 触发汉字间隙的伸长特性,该特性与\type{\line} 的效果非常相似。 使用 \type{\hfill} 或 \type{\hss} 可对横向盒子里的内容进行挤压。例如 \starttyping[option=TEX] \line{\hfill 我能吞下玻璃而不伤身体。} \line{我能吞下玻璃而不伤身体。\hfill} \line{\hfill 我能吞下玻璃而不伤身体。\hfill} \line{\hss 我能吞下玻璃而不伤身体。} \line{我能吞下玻璃而不伤身体。\hss} \line{\hss 我能吞下玻璃而不伤身体。\hss} \stoptyping \blueframed{ \vbox{ \line{\hfill 我能吞下玻璃而不伤身体。} \line{我能吞下玻璃而不伤身体。\hfill} \line{\hfill 我能吞下玻璃而不伤身体。\hfill} \line{\hss 我能吞下玻璃而不伤身体。} \line{我能吞下玻璃而不伤身体。\hss} \line{\hss 我能吞下玻璃而不伤身体。\hss} } } \type{\hfill} 和 \type{\hss},都是可无限伸缩的粘连,还有一个伸缩能力弱于 \type{\hfill} 的 \type{\hfil}。竖向的可无限伸缩的粘连有 \type{\vfil},\type{\vfill} 和 \type{\vss}。 \section{\ConTeXt\ 盒子} 在 \ConTeXt\ 层面,通常很少使用 \TeX\ 盒子,而是使用 \type{\inframed} 和 \type{\framed}——前者是后者的特例。与 \TeX\ 盒子相比,\ConTeXt\ 层面的盒子可以显示边框,且有非常多的参数可以定制它们的外观。 \type{\inframed} 用于正文,可用于给一行文字增加边框,例如 \starttyping[option=TEX] \type{\inframed{\type{\inframed{...}}}} \stoptyping \noindent 结果为 \inframed{\type{\inframed{...}}}。倘若使用 \type{\framed},例如 \starttyping[option=TEX] \type{\framed{\type{\framed{...}}}} \stoptyping \noindent 结果为 \framed{\type{\framed{...}}}。可以发现,\type{\inframed} 更适合在正文中使用,因为它能与文字基线对齐。事实上,\type{\inframed} 与 \type{\framed[location=low]} 等效,故而前者是后者的特例。例如 \starttyping[option=TEX] \framed[location=low]{\type{\framed[location=low]{...}}} \stoptyping \noindent 结果为 \framed[location=low]{\type{\framed[location=low]{...}}}。 如果不希望 \type{\framed} 显示边框,只需 \type{\framed[frame=off]{...}},也可以单独显示某条边线,并设定边线粗度和颜色: \starttyping[option=TEX] \line{ \framed[frame=off,leftframe=on,rulethickness=4pt,framecolor=red]{foo} \framed[frame=off,topframe=on,rulethickness=4pt,framecolor=green]{foo} \framed[frame=off,rightframe=on,rulethickness=4pt,framecolor=blue]{foo} \framed[frame=off,bottomframe=on,rulethickness=4pt,framecolor=magenta]{foo} } \stoptyping \line{ \framed[frame=off,leftframe=on,rulethickness=4pt,framecolor=red]{foo} \framed[frame=off,topframe=on,rulethickness=4pt,framecolor=green]{foo} \framed[frame=off,rightframe=on,rulethickness=4pt,framecolor=blue]{foo} \framed[frame=off,bottomframe=on,rulethickness=4pt,framecolor=magenta]{foo} } \blank 可以设定盒子的宽度和高度,例如宽 10cm,高 2 cm 的盒子: \starttyping[option=TEX] \hbox to \textwidth{\hfill\framed[width=10cm,height=2cm]{foo}\hfill} \stoptyping \hbox to \textwidth{\hfill\framed[width=10cm,height=2cm]{foo}\hfill} \section{对齐} \ConTeXt\ 盒子的内容默认居中,即 \type{align=center},此外还有 8 种对齐方式: \starttyping[option=TEX] \line{ \setupframed[width=1.95cm,height=1.95cm] \framed[align={flushleft,high}]{A} \framed[align={middle,high}]{A} \framed[align={flushright,high}]{A} \framed[align={flushright,lohi}]{A} \framed[align={flushright,low}]{A} \framed[align={middle,low}]{A} \framed[align={flushleft,low}]{A} \framed[align={flushleft,lohi}]{A} } \stoptyping \line{ \setupframed[width=1.95cm,height=1.95cm] \framed[align={flushleft,high}]{A} \framed[align={middle,high}]{A} \framed[align={flushright,high}]{A} \framed[align={flushright,lohi}]{A} \framed[align={flushright,low}]{A} \framed[align={middle,low}]{A} \framed[align={flushleft,low}]{A} \framed[align={flushleft,lohi}]{A} } \type{\setupframed} 所作的设定会影响到其后的所有 \type{\framed},但是不会影响到其所处编组\footnote{还记得 \TeX\ 编组吗?即 \type[escape=no]{{...}}。}之外的 \type{\framed}。 \section{背景} 可将颜色作为 \type{\framed} 的背景。例如 \starttyping[option=TEX] \inframed [background=color, backgroundcolor=lightgray, width=2cm, frame=off]{\bf foo} \stoptyping \noindent 结果为 \inframed[background=color,backgroundcolor=lightgray,width=2cm,frame=off]{\bf foo}。 通过 overlay,可将一些代码片段的排版结果作为 \type{\framed} 的背景。例如 \starttyping[option=TEX] \defineoverlay [foo] [{\framed[width=3cm,frame=off,bottomframe=on]{}}] \midaligned{\inframed[background=foo,frame=off]{你好啊!}} \stoptyping \defineoverlay [foo] [{\framed[width=3cm,frame=off,bottomframe=on]{}}] \midaligned{\inframed[background=foo,frame=off]{你好啊!}} \blank 通过上述示例,现在你应该能有有七八分明白 \in[item-sym-diy] 节中带圈数字是如何实现的了,其关键代码如下: \starttyping[option=TEX] \startuseMPgraphic{foo} path p; p := fullcircle scaled 12pt; draw p withpen pencircle scaled .4pt withcolor darkred; \stopuseMPgraphic \defineoverlay[rsquare][\useMPgraphic{foo}] \def\fooframe#1{% \inframed[frame=off,background=rsquare]{#1}% } \stoptyping \startuseMPgraphic{foo} path p; p := fullcircle scaled 12pt; draw p withpen pencircle scaled .4pt withcolor darkred; \stopuseMPgraphic \defineoverlay[rsquare][\useMPgraphic{foo}] \def\fooframe#1{% \inframed[frame=off,background=rsquare]{#1}% } \noindent 无非是将一个圆圈图形作为 \type{\inframed} 的背景罢了,而且对圈内的文字的长度有限制,字数略多一些,便出圈了,例如 \type{\fooframe{123}},结果为 \fooframe{123}。不过,只需对上述代码略加修改, \starttyping[option=TEX] p := fullcircle scaled \overlaywidth; \stoptyping \startuseMPgraphic{foo} path p; p := fullcircle scaled \overlaywidth; draw p withpen pencircle scaled .4pt withcolor darkred; \stopuseMPgraphic \defineoverlay[rsquare][\useMPgraphic{foo}] \def\fooframe#1{% \inframed[frame=off,background=rsquare]{#1}% } \noindent 便可解除该限制。技巧是,用 overlay 的实际宽度作为单位圆的放大倍数,故而可保证圆圈的直径即圈内文字的长度,例如 \type{\fooframe{我有一个大房子}},结果为 \fooframe{我有一个大房子}。 \section{盒子的深度} 如果你仔细观察,\ConTeXt\ 盒子里的内容在水平方向是精确居中的,但是在并非如此。例如 \starttyping[option=TEX] \inframed{ajk\framed{我看到一棵樱桃树}}。 \stoptyping \noindent 结果为 \inframed{\framed{我看到一棵樱桃树}}。可见 \type{\inframed} 内部的 \type{\framed} 的底部有着看似多余的空白。使用盒子的参数 \type{depth} 可以消除这些空白,但问题在于这处空白从何而来及其高度是多少。该问题与底层 \TeX\ 的西文排版机制有关。 首先,我们需要明白,西文排版,一行文字是有基线的,但基线并非位于该行文字的最底端,而是距最底端有一段较小的距离,否则所有西文字母都在同一条线上了。在上述示例中,\type{\framed} 的底线便是其外围的 \type{\inframed} 所在行的基线。西文字体在设计时,每个字形(Glyph)是有基线位置,因此在排版时可根据实际的基线位置对字形进行对齐。一行文字的基线到该行的最底端的这段距离称为深度。一行文字的基线到该行最顶端的这段距离称为高度。因此,一行文字的真正高度等于深度 + 高度;在 \ConTeXt\ 中,它等于我们使用 \type{\setupinterlinespace} 设定的尺寸。 无论是 \TeX\ 还是 \ConTeXt\ 盒子,它们本身是没有深度的,但是当它们里面的文字或盒子有深度时,它们便有了深度。至于深度值具体是多大,可以借助 \TeX\ 的盒子寄存器进行测量。例如,定义一个盒子寄存器 box0: \starttyping[option=TEX] \setbox0\hbox{\inframed{\framed{我看到一棵樱桃树}}} \stoptyping \setbox0\hbox{\inframed{\framed{我看到一棵樱桃树}}} \noindent 现在我们有了一个 0 号盒子,使用 \type{\wd},\type{\ht} 和 \type{\dp} 可分别测量该盒子的宽度、高度和深度……顺便复习一下表格的用法: \startsample \starttabulate[|c|c|c|] \HL \NC 宽度 \NC 高度 \NC 深度 \NC\NR \HL \NC \the\wd0 \NC \the\ht0 \NC \the\dp0 \NC\NR \HL \stoptabulate \stopsample \simplesample[option=TEX]{\getsample} 将上述所得深度信息取负作为 \type{\inframed} 的参数 \type{depth} 的值,即 \starttyping[option=TEX] \inframed[depth=-\dp0]{\framed{我看到一棵樱桃树}} \stoptyping \noindent 便可消除深度,结果为 \inframed[depth=-\dp0]{\framed{我看到一棵樱桃树}}。 \section{小结} \TeX\ 盒子是无形的。\ConTeXt\ 盒子是有形的。老子曾说过,恒无欲,以观其妙;恒有欲,以观其所徼。故而,\TeX\ 要懂一些,\ConTeXt\ 也要懂一些。 context-modules-20240428/doc/context/third/context-notes-zh-cn/src/05.tex0000644000175000017500000001300114411653175025020 0ustar hillehille\chapter{列表} 若是帮领导起草并排版一份会议讲话稿,须知天下没有领导不偏爱含有列表的文章。大可以相信,\ConTeXt\ 列表绝对不会让领导失望。 \section{Todo List} 在偷偷使用 ChatGPT 给领导起草讲稿之前,先用 \ConTeXt\ 列表安排一下今日待办事项: \startsample 2023 年 3 月 22 日 \startitemize \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals[2] \stopitemize \stopsample \sample[option=TEX][todo-list]{待办事项}{\externalfigure[05/todo-list.pdf]} 现在你已经学会了列表的用法了,剩下的,仅仅是设定它的样式。此外,你也学到了如何写大写的罗马数字,至于小写的,将 \type{\Romannumerals} 换成 \type{\romannumerals} 即可。 \section{无序号列表} 示例 \in[todo-list] 已经展示了样式最为简单的无序号列表,列表项符号是实心圆点。该示例中的列表实际上省略了列表项符号的设定,其完整形式为 \starttyping[option=TEX] \startitemize[1] \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals[2] \stopitemize \stoptyping 将上述代码中的数字 1 换成 2~9 的任何一个数字,可更换另一种列表项符号。例如 \startsample \startitemize[8] \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals[2] \stopitemize \stopsample \sample[option=TEX][]{改变列表项符号}{\externalfigure[05/todo-list-2.pdf]} \section{有序号列表} 将无序号列表的数字参数换为 n,便可得到有序号列表。例如 \startsample \startitemize[n] \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals[2] \stopitemize \stopsample \sample[option=TEX][]{有序号列表}{\externalfigure[05/todo-list-3.pdf]} 有时,需要序号形式是带括号的数字,可作以下设定: \startsample \startitemize[n][left=(,right=),stopper=] \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals[2] \stopitemize \stopsample \sample[option=TEX][]{数字带括号的有序号列表}{\externalfigure[05/todo-list-4.pdf]} \noindent 其中「\type{stopper=}」是将参数 \type{stopper} 置空,达到的效果是消除列表项序号的西文句号后缀「\type{.}」。 若将列表项序号参数设定为 a,A,r,R,对应的序号形式分别为小写英文字母、大写英文字母、小写罗马数字、大写罗马数字。 \section[item-sym-diy]{自定义符号列表} 你可能会觉得 \ConTeXt\ 为无序号列表提供的列表项符号无法体现你的气质,\ConTeXt\ 说,Do it yourself! 下面我用 \METAPOST\ 代码绘制了一个小正方形,并令其边线略微受到随机扰动,然后将该图形定义为列表项符号: \startsample \startuseMPgraphic{foo} path p; p := fullsquare scaled 8pt randomized 1pt; draw p withpen pencircle scaled 2pt withcolor darkred; \stopuseMPgraphic \definesymbol [10][{\lower.2ex\hbox{\useMPgraphic{foo}}}] \startitemize[10] \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals{2} \stopitemize \stopsample \sample[option=TEX][rsquare]{自定义符号的无序号列表}{\externalfigure[05/todo-list-5.pdf]} \noindent 现在你不懂上述代码的具体细节也无妨,观其大略即可,知道有一种可以画画的语言,叫 \METAPOST,它的代码可嵌入 \ConTeXt\ 环境作为插图使用,便已足够。 对于有序号列表,有时会需要使用带圈的数字作为序号。虽然 Unicode 有相应的带圈字符的码位,例如 \char"2460,\char"2461……对应的 \TeX\ 命令是 \starttyping[option=TEX] \char"2460,\char"2461…… \stoptyping \noindent 但是这些带圈数字都是文字,并非数字。带圈的数字,无非是数字外面画个圆圈。画圆圈,用 \METAPOST\ 做此事,完全是不费吹灰之力,然后借助 \ConTeXt\ 的 overlay 机制\cite[overlay],将圆圈作为 inframed\cite[framed] 的背景,再用 inframed 套住列表项序号即可,详见 \startsample \startuseMPgraphic{foo} path p; p := fullcircle scaled 12pt; draw p withpen pencircle scaled .4pt withcolor darkred; \stopuseMPgraphic \defineoverlay[rsquare][\useMPgraphic{foo}] \def\fooframe#1{% \inframed[frame=off,background=rsquare]{#1}% } \defineconversion[foo][\fooframe] \startitemize[foo][stopper=] \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals{2} \stopitemize \stopsample \sample[option=TEX][number-in-circle]{数字带圆圈的有序号列表}{\externalfigure[05/todo-list-6.pdf]} \noindent 你可能依然不知道上述代码具体细节,不必着急,以后会经常和它们打交道,逐渐便可熟悉。 \section{间距调整} 消除列表项之间的空白,只需 \startsample 2023 年 3 月 22 日 \startitemize[1,packed] \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals{2} \stopitemize \stopsample \sample[option=TEX][]{消除列表项之间的空白}{\externalfigure[05/todo-list-7.pdf]} 消除列表前后以及列表项之间的空白,只需 \startsample 2023 年 3 月 22 日 \startitemize[1,nowhite] \item 中午,晒十五分钟太阳 \item 晚上,看流浪地球 \Romannumerals{2} \stopitemize \stopsample \sample[option=TEX][]{消除列表项之间的空白}{\externalfigure[05/todo-list-8.pdf]} \section{小结} 真正让你的领导失望并抱怨的应该是,他想要一份 Microsoft Word 文件,而你提交给他的却是只能看不能随手改动的 PDF 文件。 context-modules-20240428/doc/context/third/context-notes-zh-cn/src/03.tex0000644000175000017500000005157114411653175025034 0ustar hillehille\chapter[chinese-fonts]{汉字} 让 \TeX\ 系统支持汉字,这个任务曾经很容易对新手学习和使用 \TeX\ 的热情造成毁灭性打击。后来,随着 \XeTeX\ 和 \LuaTeX\ 等现代 \TeX\ 引擎的出现,这项任务的难度已经大幅降低了。\ConTeXt\ LMTX 所用的 \TeX\ 引擎是 \LuaMetaTeX,对 \LuaTeX\ 进行了精简并作为它的继任者而继续发展。可能你现在并不理解这些术语,但也不必担心,如同驾驶一辆 \ConTeXt\ 汽车,无需知道它的引擎(发动机)是哪个工厂生产的,其性能参数又是如何。 \section[fonts-installation]{安装字体} 首先,需要找到一款汉字字体文件,否则只有学仓颉,自己造字。倘若你或你的朋友的计算机中装有 Windows 系统,可从如图 \in[msfonts] 所示的 \type{C:\Windows\Fonts} 目录下获得宋体(simsun.ttc)、黑体(simhei.ttf)和楷体(simkai.ttf)等字体文件。有了它们,足以胜任常规的排版工作。 \placefigure [here,force] [msfonts] {\type{C:\Windows\Fonts}} {\externalfigure[03/msfonts.png][width=.6\textwidth]} 在开始安装字体之前,需要给出一个术语,\TeX\ 根目录。以 Windows 系统为例,若 \ConTeXt\ 安装在 \type{D:\context} 目录,则该目录中的子目录和文件当如图 \in[tex-root] 所示。在这种情况下,\type{D:\context\tex} 目录即为 \TeX\ 根目录。同理,对于 Linux 和 macOS 系统,若 \ConTeXt\ 安装在 \type{$HOME/context} 目录,则 \type{$HOME/context/tex} 为 \TeX\ 根目录。 \placefigure [here,force] [tex-root] {\TeX\ 根目录} {\externalfigure[03/tex-root.png][width=.6\textwidth]} 为了便于描述,从现在开始,以虚构的类 Unix 环境变量风格的 \type{$TEXROOT} 指代 \TeX\ 根目录,不再使用具体路径,因为后者严重依赖于操作系统和用户偏好而缺乏一致性。此外,路径中的目录间隔符也统一使用类 Unix 风格进行表示,即使用「\type{/}」而非 Windows 风格的「\type{\}」,例如 \type{$TEXROOT/texmf} 表示 \TeX\ 根目录的子目录 \type{texmf}。 以上关于 \TEX\ 根目录的讨论,仅针对 \CONTEXT\ 开发者提供的 \CONTEXT\ 包。对于 \TEX\ Live 而言,可将 \type{texmf-local} 目录的上级目录作为 \type{$TEXROOT}。 为 \ConTeXt\ 安装宋体(simsun.ttc)、黑体(simhei.ttf)和楷体(simkai.ttf)的具体过程如下: \startitemize[n,packed][stopper=,left=(,right=)] \item 将上述字体文件复制到 \type{$TEXROOT/texmf-local/fonts/truetype/msfonts} 目录,若该目录不存在,则自行创建; \item 执行「\type{context --generate}」命令,刷新 \ConTeXt\ 的文件数据库: \item 执行「\type{mtxrun --script fonts --reload --force}」命令,载入新添加的字体: \stopitemize 字体安装完毕后,可以通过查询字体文件名确认字体是否安装成功,例如查询 simhei.ttf: \starttyping $ mtxrun --script fonts --list --file simhei.ttf familyname weight style width variant fontname filename ... simhei normal normal normal normal simhei simhei.ttf \stoptyping \noindent 查询结果中的 \type{fontname} 栏很重要,因为在排版时,通常要使用字体名字指代某个字体。上述命令也可用于查询 simkai.ttf 的信息,但是无法用于查询 TTC 字体 simsun.ttc,可能是因 TTC 字体文件较为特殊,但无论如何,这是 \type{mtxrun} 的 \type{fonts} 脚本的一个 bug,希望日后能被修复。 查询 simsun.ttc 对应的字体名,可以使用以下命令: \starttyping $ mtxrun --script fonts --list --all simsun identifier familyname fontname filename subfont instances nsimsunnormal nsimsun nsimsun simsun.ttc 2 nsimsunregular nsimsun nsimsun simsun.ttc 2 simsun simsun simsun simsun.ttc 1 simsunnormal simsun simsun simsun.ttc 1 simsunregular simsun simsun simsun.ttc 1 \stoptyping \noindent\type{subfont} 栏表明 simsun.ttc 里包含了两种字体,一种是 \type{simsun}(宋体),另一种是 \type{nsimsun}(新宋体)。此外,请对 \type{identifier} 和 \type{familyname} 栏略加留意,\in[define-family] 节需要这些信息。 需要注意,上述过程安装的字体都是有版权的,倘若作商业用途,需要向开发这些字体的公司支付授权费用。本文档之所以选择使用它们,主要是为了兼容国内在文档字体选用上的积习。网络上能够找到 Google 公司开发的一系列免费的汉字字体,例如 Noto 系列,其安装方式可参考上述过程,无须赘述。此外,若安装扩展名为「\type{.otf}」的字体,即 OpenType 字体,建议将它们安装到 \type{$TEXROOT/texmf-local/fonts/opentype} 目录,若无该目录,可自行创建。 \section{字体的定义与使用} 示例 \in[hello-hanzi] 演示了如何在新手村里为 \ConTeXt\ 定义大小为 12 pt 的宋体,黑体和楷体等字体切换命令,并使用它们各排版一行文字。 \startsample \startTEXpage[frame=on,offset=4pt] \definefont[songti][name:simsun at 12pt] \definefont[heiti][name:simhei at 12pt] \definefont[kaiti][name:kaiti at 12pt] \songti 潜龙勿用。\\ \heiti 见龙在田,利见大人。\\ \kaiti 君子终日乾乾,夕惕若厉,无咎。 \stopTEXpage \stopsample \sample[option=TEX][hello-hanzi]{三种汉字字体}{\externalfigure[03/qian.pdf]} 需要注意的是,第一次在 \ConTeXt\ 中使用新安装的汉字字体,源文件编译过程会较为缓慢,因为 \ConTeXt\ 需要解析字体文件中的一些编码信息并将解析结果存到它的字体缓存目录。待下一次使用经过缓存后字体时,编译速度便会正常,因此不应急切宣判 \ConTeXt\ 不适合处理中文文档。我的计算机 CPU 是 \type{Intel i5-4300U @ 1.90GHz}。这份文档写至此处,已有 20 页内容,其源文件单次编译时间不到 3 秒。我感觉 \ConTeXt\ 处理中文文档,并不是很慢,但是应当承认,肯定是比基于 \pdfTeX 或 \XeTeX 等引擎的 \TeX\ 要慢一些。 \section[breaking-lines]{中文断行} 现在尝试用宋体字排版一段中文,见示例 \in[无法断行]。结果表明,仅仅能在 \ConTeXt\ 中使用汉字字体是不够的,因为 \ConTeXt\ 此刻尚不知在限定宽度的版面内如何对汉字进行断行,以致文字超出版面。究其原因,是汉字之间不像西文单词以空格作为间隔,因此在 \ConTeXt\ 看来,一段汉字文字等同于一个很长的西文单词,是一个无法分隔的单元。 \startsample \startTEXpage[frame=on,width=5cm,offset=4pt] \definefont[songti][name:simsun at 12pt] \songti 潜龙勿用。见龙在田,利见大人。% 君子终日乾乾,夕惕若厉,无咎。 \stopTEXpage \stopsample \sample[option=TEX][无法断行]{中文段落无法断行}{\externalfigure[03/breakinglines-1.pdf]} 需要注意示例 \in[无法断行] 中的注释符的用法。虽然注释内容为空,但注释符可令 \TeX\ 引擎忽略其后的所有空白字符(包括换行符)。倘若将该示例中的注释符去掉,第一行汉字和第二行汉字之间的换行符会被 \TeX\ 引擎视为空白字符,从而让 \ConTeXt\ 觉得,它面对的是两个较长的单词,它们之间可以断行,结果见示例 \in[将错就错],可以断行,但属于误打误撞。 \startsample \startTEXpage[frame=on,width=5cm,offset=4pt] \definefont[songti][name:simsun at 12pt] \songti 潜龙勿用。见龙在田,利见大人。 君子终日乾乾,夕惕若厉,无咎。 \stopTEXpage \stopsample \sample[option=TEX][将错就错]{中文段落无法断行}{\externalfigure[03/breakinglines-2.pdf]} 现在,我们可以灵机一动,既然换行符被 \TeX\ 引擎视为空白字符从而使得 \ConTeXt\ 误打误撞对汉字进行了一次断行,那么倘若在汉字之间手工插入空格字符,\ConTeXt\ 能否实现汉字断行呢?答案是,可行,见源文档显现了空格字符(以 \type[space=on]{ } 表示)的示例 \in[手工断行],只是空格的存在,导致排版结果中的汉字分布较为蓬松。 \startsample \startTEXpage[frame=on,width=5cm,offset=4pt] \definefont[songti][name:simsun at 12pt] \songti 潜 龙 勿 用。 见 龙 在 田, 利 见 大 人。 君 子 终 日 乾 乾, 夕 惕 若 厉, 无 咎。 \stopTEXpage \stopsample \sample[option=TEX,space=on][手工断行]{中文段落手工插入空格进行断行}{\externalfigure[03/breakinglines-3.pdf]} 位于 \ConTeXt\ 底层的 \TeX\ 系统提供了粘连(Glue)机制,我们可以用它定义给定宽度且有些许弹性的空格。例如,定义一个宽度为 0,最大可伸展 2 pt 且不可收缩的粘连: \starttyping[option=TEX] \def\foo{\hskip 0pt plus 2pt minus 0pt} \stoptyping \noindent 然后用该粘连代替空格,插入到汉字之间,便基本可实现汉字断行,结果见示例 \in[手工插入粘连断行],需要注意的是,\TeX\ 会自动忽略排版命令之后尾随的空格,因此 \type{\foo} 之后虽然有一个空格,但该空格不会在排版结果里出现。 \startsample \startTEXpage[frame=on,width=5cm,offset=4pt] \definefont[songti][name:simsun at 12pt] \def\foo{\hskip 0pt plus 2pt minus 0pt} \songti 潜\foo 龙\foo 勿\foo 用。% \foo 见\foo 龙\foo 在\foo 田,\foo 利\foo 见% \foo 大\foo 人。% \foo 君\foo 子\foo 终\foo 日\foo 乾\foo 乾,% \foo 夕\foo 惕\foo 若\foo 厉,\foo 无\foo 咎。 \stopTEXpage \stopsample \sample[option=TEX,space=on][手工插入粘连断行]{中文段落手工插入粘连进行断行}{\externalfigure[03/breakinglines-4.pdf]} 由于没有人愿意像示例 \in[手工插入粘连断行] 那样排版汉字,因此 \ConTeXt\ 提供了一个可以自动在汉字之间插入粘连的命令,即 \starttyping[option=TEX] \setscript[hanzi] \stoptyping \noindent 上述过程大费周章,仅仅是让你明白 \type{\setscript[hanzi]} 的原理。此外,你甚至学会了如何定义一个 \TeX\ 宏,即 \type{\foo},从而避免了像下面这样输入繁琐的排版命令: \starttyping[option=TEX] 潜\hskip 0pt plus 2pt minus 0pt 龙\hskip 0pt plus 2pt minus 0pt 勿…… \stoptyping \noindent 倘若你擅长定义你所需要的 \TeX\ 宏,便可以自己创造一个可与 \ConTeXt\ 媲美的宏包。现在,已经隐隐知道了\ConTeXt\ 的一些真相了吧。 \section{写一封真正的信} \startsample \startTEXpage[frame=on,width=6cm,offset=6pt] \definefont[songti][name:simsun at 10.5pt] \setscript[hanzi] % 中文断行支持 \songti \setupindenting[always,first,2em] \setupinterlinespace[1.5] \noindent 亲爱的朋友:\par 你们好吗?\par 现在工作很忙吧,身体好吗?我现在五指山挺好的。 虽然我很少写信,其实我很怀念花果山。\par 五百年后的春节,我一定回山。 好了,先写到这吧。\par 此致\par \noindent 敬礼\par \rightaligned{孙悟空} \rightaligned{2035.10.1} \stopTEXpage \stopsample \sample[option=TEX][孙悟空的信]{孙悟空的信}{\externalfigure[03/breakinglines-5.pdf]} 从现在开始,在提供示例时,为了节省篇幅,我有时会省略一部分经常重复使用的代码,仅给出关键代码以突出重点,在有兴致动手试验这些代码时,需要你自己动手添加被省略的代码。 \section{字族} 如同我们习惯于将汉字分为许多书体,诸如常用的宋体、楷体、仿宋、隶书、幼圆、黑体等,西方人对他们的字体也是有着一套分类体系。\TeX\ 系统原本是针对西方文字排版而设计和开发的,因此我们需要先了解西方人对字体的分类,然后将汉字字体按自己的需要与之相应。 回忆一下,在学会安装和使用汉字字体之前,用 \ConTeXt\ 排版英文内容,我们并未设置任何西文字体,\ConTeXt\ 依然能完成排版。这意味着 \ConTeXt\ 已经为用户定义了一套西文字体,且在排版环境中默认启用了。这套字体由十多种字体组成,统称为 Computer Modern Roman(简称 cmr)字体,可分为四族:衬线(Serif)、无衬线(Sans Serif)、等宽(Monospace)以及数学。前三个字族基本上又分别细分为正体(Regular 或 Normal)、粗体(Bold)、斜体(Italic)和粗斜体(BoldItalic)。 \ConTeXt\ 默认启用的正文字体是衬线字族中的正体。\type{\rm},\type{\ss} 和 \type{\tt} 可分别用于将字体切换为衬线、无衬线和等宽字族的正体。\type{\tf},\type{\bf},\type{\it} 和 {\type{\bi}} 可分别用于切换每个字族中的正体、粗体、斜体和粗斜体等字体。示例 \in[默认字体] 演示了如何切换各种字体以及 \type{{...}} 的用法。在默认情况下,\TeX\ 引擎将一对花括号所包含的内容视为一个整体,\TeX\ 术语称之为编组(Group)。编组内部的排版命令不会对编组外部产生任何影响,但编组外部的排版命令会影响编组内部。 \startsample % 衬线字体 Hello. {\bf Hello.} {\it Hello.} {\bi Hello.}\\ % 无衬线字体 \ss Hello. {\bf Hello.} {\it Hello.} {\bi Hello.}\\ % 等宽字体 \tt Hello. {\bf Hello.} {\it Hello.} {\bi Hello.}\\ % 将字体切换为衬线字体 \rm % 数学字体 Math in text mode: $\int_a^b f(x)dx$\\ Math in display mode: \startformula \int_a^b f(x)dx \stopformula \stopsample \sample[option=TEX][默认字体]{\ConTeXt\ 默认字体}{\externalfigure[03/defaultfonts.pdf]} \ConTeXt\ 默认正文字体的大小为 12 pt,并以该尺寸为基准,定义了 6 种不同级别的字体尺寸,从小到大依序为:\type{xx},\type{x},\type{a},\type{b},\type{c},\type{d}。\type{x} 级比正文字体小,\type{a} 级比正文字体大。示例 \in[fontsize-level] 演示了无衬线字族的正体字体 7 种大小级别的切换。 \startsample \ss {\tfxx A} {\tfx A} A or {\tf A} {\tfa A} {\tfb A} {\tfc A} {\tfd A} \stopsample \sample[option=TEX][fontsize-level]{字体大小的 7 种级别}{\externalfigure[03/fontsize-level.pdf]} 此外,还需要注意的是,尺寸单位 em 的含义。之前我对它给出解释是字母 \type{M} 宽度,恰好等于 1 个汉字的宽度,这是针对当前所的字体环境而言的。例如,在示例 \in[em-1] 和 \in[em-2] 中,段落首行缩进设定命令出现的位置不同,导致段落缩进距离产生了差异。这是因为,在示例 \in[em-1] 中,设定段落首行缩进时,em 的值是基于 \ConTeXt\ 默认的正文字体尺寸确定的,其值为 12 pt,而在 示例 \in[em-1] 中,em 的值是基于我们自定义的字体 \type{\songti} 的尺寸确定的,其值为 9 pt。 \startsample \setscript[hanzi] \definefont[songti][name:simsun at 9pt] \setupindenting[always,first,2em] \songti 我现在五指山挺好的。 虽然我很少写信,其实我很怀念花果山。 \stopsample \sample[option=TEX][em-1]{段落缩进距离是 24 pt}{\externalfigure[03/indenting-1.pdf]} \startsample \setscript[hanzi] \definefont[songti][name:simsun at 9pt] \songti \setupindenting[always,first,2em] 我现在五指山挺好的。 虽然我很少写信,其实我很怀念花果山。 \stopsample \sample[option=TEX][em-2]{段落缩进距离是 18 pt}{\externalfigure[03/indenting-2.pdf]} \section[define-family]{定义汉字字族} 使用 \type{\definefontfamily} 可将你喜欢的一些汉字字体定义为字族,用以代替 \ConTeXt\ 的默认字族,然后使用 \type{\setupbodyfont} 启用你定义的字族。示例 \in[setupbodyfont] 将 10.5 pt 的宋体作为正文默认字体\footnote{10.5 pt 可对应 MicroSoft Word 中的五号字。}。注意,字族的定义和启用,需在新手村之外进行,否则无效。不过,\type{\setupindenting} 却只能在新手村之内起效,这让我有些不解,但是这就是新手村的规矩,只能接受。 \startsample \definefontfamily[myfonts][rm][nsimsun] \setupbodyfont[myfonts,10.5pt] \setscript[hanzi] \startTEXpage[frame=on,width=6cm,offset=6pt] \setupindenting[always,first,2em] 我现在五指山挺好的。 虽然我很少写信,其实我很怀念花果山。 \stopTEXpage \stopsample \sample[option=TEX][setupbodyfont]{定义正文字体并启用}{\externalfigure[03/setupbodyfont.pdf]} 示例 \in[setupbodyfont] 仅定义了 \type{myfonts} 的衬线字族(\type{rm})为 \type{nsimsun},且需要注意的是,此处的 \type{nsimsun} 并非字体名,而是字族名。在 \in[fonts-installation] 节中,将 simsun.ttc 安装至 \ConTeXt\ 环境之后,我们曾查询过它的相关信息,其中有一栏信息是 \type{familyname},其中罗列的便是字体所属的字族名。\ConTeXt\ 会根据字族名自动搜索字体的 \type{identifier} 信息,若某字体,其 identifier 的末尾是 \type{regular} 或 \type{normal}\footnote{identifier 名的末尾为 regular 和 normal 的字体通常是同一个字体。},则该字体会被 \ConTeXt\ 自动作为该字体所属字族的正体。同理,若某字体的 identifier 的末尾是 \type{bold},\type{italic} 或 \type{bolditalic},则该字体会被 \ConTeXt\ 自动作为该字体所属字族的粗体、斜体或粗斜体。 由于我们的 \ConTeXt\ 环境里的 \type{nsimsun} 字族只有正体 \type{nsimsunregular},没有其他字体,因此倘若在示例 \in[setupbodyfont] 中,使用 \type{\bf} 切换字体时,即 \starttyping[option=TEX] \bf 我现在五指山挺好的。 虽然我很少写信,其实我很怀念花果山。 \stoptyping \noindent \ConTeXt\ 会因找不到相应的字体而排出空页。若要解决该问题,需要使用 \type{\definefontfamily} 的第四个参数,通过字体名指定其他字体以补充字族缺失的字体。例如,可以使用黑体和楷体作为来补充 \type{nsimsun} 字族的缺失字体: \starttyping[option=TEX] \definefontfamily[myfonts][rm][nsimsun][bf=simhei,it=kaiti,bi=simhei] \stoptyping 同理,也可以用宋体,黑体和楷体定义非衬线和等宽字族: \starttyping[option=TEX] \definefontfamily[myfonts][ss][simhei][bf=simhei,it=simhei,bi=simhei] \definefontfamily[myfonts][tt][kaiti][bf=simhei,it=kaiti,bi=simhei] \stoptyping 为汉字定义字族还有一种传统方法,使用 \ConTeXt\ 的 typescript 机制,但是需要写许多代码,但以前只有这一种方法。现在我们可以对它说,再见,typescript! \section[fallback-fonts]{字形替换} 也许你现在觉得自己在新手村里已经脱胎换骨,可以扬眉吐气了,因为你已经能够自由地在 \ConTeXt\ 世界里使用汉字。是的,你可以如此觉得,只要你的排版内容没有西方文字。 排版内容里有西方文字会怎样的?图 \in[bad-latin] 给出了选项,在排版结果中,是上面那行文字里的英文单词美观,还是下面那行?前者是 simsun.ttc 中的西文字形,后者是 \ConTeXt\ 默认的 cmr 字体里的衬线正体中的西文字形。若你选择前者,则本节内容可至此完全忽略,否则请继续阅读。 \placefigure [here,force][bad-latin] {英文字形比较} {\externalfigure[03/bad-latin.pdf][width=.4\textwidth]} \type{\definefallbackfamily} 可用一种字体中的部分字形替换另一种字体的相应字形。示例 \in[fallbacks] 使用 latinmodernroman 字族里的每种字体的 Unicode 码位区间 $[0\mathrm{x}0000, 0\mathrm{x}0400]$ 中的所有字形强行替换 nsimsun 字族中每种字体(包括替补字体)的相应字形。也可以使用 \ConTeXt\ 已经定义了名字的 Unicode 码位区间代替 16 进制数字形式的区间。例如, \starttyping[option=TEX] \definefallbackfamily[myfonts][rm][latinmodernroman] [range={basiclatin,latinsupplement},force=yes] \stoptyping \noindent 指定了 Unicode 码位区间 $\mathrm{[0x0000, 0x00FF]}$ 中的字形作为替换字形。Unicode 码位区间的名字见文档「List of Unicode blocks」\cite[unicode-blocks]。 \startsample \definefallbackfamily [myfonts][rm][latinmodernroman] [range={0x0000-0x0400},force=yes] \definefontfamily [myfonts][rm][nsimsun] [bf=simhei,it=kaiti,bi=simhei] \setupbodyfont[myfonts,16pt] \setscript[hanzi] \startTEXpage[frame=on,offset=4pt] 爱因斯坦 Einstein\\ \bf 爱因斯坦 Einstein\\ \it 爱因斯坦 Einstein\\ \bi 爱因斯坦 Einstein \stopTEXpage \stopsample \sample[option=TEX][fallbacks]{字形替换}{\externalfigure[03/fallbacks.pdf]} \section{小结} 当你读到此处,我想悄悄告诉你,\ConTeXt\ 里最难的知识,你已基本掌握。现在,你完全可以在新手村的春天里扬眉吐气了。 这部分知识有多难呢,难到 Hans Hagen 需要为之撰写一本长达 228 页的手册,若有兴趣,不妨拜读。我可以很诚实地说,该手册我只读过寥寥数页。由于你已经安装了 \ConTeXt,这份手册就在你的 \ConTeXt\ 环境里,执行以下命令可以找到它: \starttyping $ mtxrun --script base --find-file fonts-mkiv.pdf \stoptyping \noindent 请顺便浏览一番这份手册所在的目录里的其他 PDF 文件吧。 context-modules-20240428/doc/context/third/context-notes-zh-cn/src/license.tex0000644000175000017500000000076214411653175026230 0ustar hillehille\startstandardmakeup[align=center] {\tfd \CONTEXT\ 蹊径} \blank[2*line] {\tfa 李延瑞(lyr.m2@live.cn)} \blank[line] \useURL[ctx-notes][https://github.com/liyanrui/ConTeXt-notes] {\tfa 项目主页:\from[ctx-notes]} \vfill Copyright \copyright\ 2023 李延瑞 \blank Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. \stopstandardmakeupcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/12.tex0000644000175000017500000006763214411653175025041 0ustar hillehille\chapter{学一点 \METAPOST} 想必你已迫不及待想学习 \METAPOST\ 了。这大概是来自人类上古基因的冲动。人类先学会的是绘画,而后才是文字。只是不要妄图通过这区区一章内容掌握 \METAPOST,因为关于它的全部内容,足够写一本至少三百多页的书籍了。不过,本章内容足以给你打开一扇窗户,让 \METAPOST\ 的优雅气息拂过时常过于严肃的 \ConTeXt\ 世界。 \section{作图环境} \METAPOST\ 是一种计算机作图语言,与 \TeX\ 一样,皆为宏编程语言。使用 \METAPOST\ 语言编写的代码可被 mpost 程序编译成 PS 格式的图形文件。自 \LuaTeX\ 开始,mpost 的核心功能集成到了 \LuaTeX\ 中,从此以后,在 \TeX\ 环境中使用 \METAPOST\ 语言作图便不需依赖外部程序了。 \ConTeXt\ 为 \METAPOST\ 代码提供了五种环境: \starttyping \startMPcode ... \stopMPcode \startMPpage ... \stopMPpage \startuseMPgraphic{name} ... \stopuseMPgraphic \startuniqueMPgraphic{name} ... \stopuniqueMPgraphic \startreusableMPgraphic{name} ... \stopreusableMPgraphic \stoptyping \noindent 第一种环境用于临时作图,生成的图形会被插入到代码所在位置。第二种环境是生成单独的图形文件,以作其他用途。后面三种环境,生成的图形可根据环境的名称作为文章插图随处使用,但它们又有三种不同用途: \startitemize[nowhite] \item useMPgraphic:每被使用一次,对应的 \METAPOST\ 代码便会被重新编译一次。 \item uniqueMPgraphic:只要图形所处环境不变,\METAPOST\ 代码只会被编译一次。 \item reusableMPgraphic:无论如何使用,其 \METAPOST\ 只会被编译一次。 \stopitemize \noindent 大多数情况下,建议选用 uniqueMPgraphic,但若图形中存在一些需要每次使用时都要有所变化的内容,可选用 useMPgraphic。 另外需要注意,在 \ConTeXt\ 中使用 \METAPOST\ 时,通常会使用 \ConTeXt\ 定义的一些 \METAPOST\ 宏,这些宏构成的集合,名曰 \MetaFun。 \section{画一个盒子} \METAPOST\ 作图语句遵守基本的英文语法,理解起来颇为简单。例如,用粗度为 2 pt 的圆头笔用暗红色绘制一条经过 $(0, 0)$,$(3\,{\rm cm}, 0)$,$(3\,{\rm cm}, 1\,{\rm cm})$,$(0, 1\,{\rm cm})$ 的封闭路径, \startsample \startMPcode pickup pencircle scaled 2pt; draw (0, 0) -- (3cm, 0) -- (3cm, 1cm) -- (0, 1cm) -- cycle withcolor darkred; \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \noindent 上述代码中,\type{(0, 0) -- ... -- cycle} 构造的是一条封闭路径,可将其保存于路径变量: \starttyping[option=MP] path p; p := (0, 0) -- (3cm, 0) -- (3cm, 1cm) -- (0, 1cm) -- cycle; pickup pencircle scaled 2pt; draw p withcolor darkred; \stoptyping \noindent 将路径保存在变量中,是为了更便于对路径进行一些运算,例如 \startsample \startMPcode path p; p := (0, 0) -- (3cm, 0) -- (3cm, 1cm) -- (0, 1cm) -- cycle; pickup pencircle scaled 2pt; draw p withcolor darkred; draw p shifted (2cm, .5cm) withcolor darkblue; \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \noindent 路径 \type{p} 被向右平移了 2 cm,继而被向上平移动了 0.5 cm。 还有一种构造矩形路径的方法:先构造一个单位正方形,然后对其缩放。例如 \startsample \startMPcode pickup pencircle scaled 2pt; draw fullsquare xscaled 3cm yscaled 1cm withcolor darkred; \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \MetaFun\ 宏 \type{randomized} 可用于对路径随机扰动。例如,对一个宽为 3 cm,高为 1cm 的矩形路径以幅度 2mm 的程度予以扰动: \startsample \startuseMPgraphic{随机晃动的矩形} pickup pencircle scaled 2pt; draw (fullsquare xscaled 3cm yscaled 1cm) randomized 2mm withcolor darkred; \stopuseMPgraphic \useMPgraphic{随机晃动的矩形} \stopsample \simplesample[option=MP]{\getsample} 还记得 overlay 吗?只要将上述 useMPgraphic 环境构造的图形制作为 overlay,便可将其作为 \type{\framed} 的背景,从而可以得到一种外观颇为别致的盒子。 \startsample \defineoverlay[晃晃][\useMPgraphic{随机晃动的矩形}] \framed[frame=off,background=晃晃,width=3cm]{光辉岁月} \stopsample \simplesample[option=TEX]{\getsample} 在 \ConTeXt\ 为 \METAPOST\ 提供的作图环境里,可分别通过 \type{\overlaywidth} 和 \type{\overlayheight} 获得 overlay 的宽度和高度。在将 overlay 作为 \type{\framed} 的背景时,\type{\framed} 的宽度和高度便是 overlay 的宽度和高度。基于这一特性,便可实现 \METAPOST\ 绘制的图形能够自动适应 \type{\framed} 的宽度和高度的变化。例如 \startsample \startuseMPgraphic{新的随机晃动的矩形} path p; p := fullsquare xscaled \overlaywidth yscaled \overlayheight; pickup pencircle scaled 2pt; draw p randomized 2mm withcolor darkred; \stopuseMPgraphic \defineoverlay[新的晃晃][\useMPgraphic{新的随机晃动的矩形}] \framed [frame=off,background=新的晃晃] {今天只有残留的躯壳,迎接光辉岁月,风雨中抱紧自由。} \stopsample \typesample[option=MP] \midaligned{\getsample} 对于需要重复使用的盒子,为了避免每次重复设置其样式,可以将它定义为专用盒子。例如 \starttyping[option=TEX] \defineframed[funnybox][frame=off,background=新的晃晃] \funnybox{今天只有残留的躯壳,迎接光辉岁月,风雨中抱紧自由。} \stoptyping \METAPOST\ 可以为一条封闭路径填充颜色。在此需要明确,何为封闭路径。例如 \starttyping[option=MP] path p, q, r; p := (0, 0) -- (1, 0) -- (1, 1) -- (0, 0) -- (0, 0); q := (0, 0) -- (1, 0) -- (1, 1) -- (0, 0) -- cycle; r := fullsquare; \stoptyping \noindent 其中路径 \type{p} 的终点的坐标恰好是其起点,但它并非封闭路径,而路径 \type{q} 和 \type{r} 皆为封闭路径。下面示例,为封闭路径填充颜色: \startsample \startMPcode path p; p := (fullsquare xscaled 3cm yscaled 1cm) randomized 2mm; pickup pencircle scaled 2pt; fill p withcolor darkgray; draw p withcolor darkred; \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \noindent 注意,对于封闭路径,应当先填充颜色,再绘制路径,否则所填充的颜色会覆盖一部分路径线条。 \section{颜色} \METAPOST\ 以含有三个分量的向量表示颜色。向量的三个分量分别表示红色、绿色和蓝色,取值范围为 [0, 1],例如 \type{(0.4, 0.5, 0.6)}。可将颜色保存到 color 类型的变量中,以备绘图中重复使用。例如定义一个值为暗红色的颜色变量: \starttyping[option=MP] color foo; foo := (0.3, 0, 0); \stoptyping 由于 METAPOST 内部已经定义了用于表示红色的变量 \type{red},因此 \type{foo} 的定义也可写为 \starttyping[option=MP] color foo; foo := 0.3 * red; \stoptyping \noindent 小于 1 的倍数,可以忽略前缀 0,且可以直接作用于颜色: \starttyping[option=MP] foo := .3red; \stoptyping 使用 \type{transparent} 宏可用于构造带有透明度的颜色值。例如 \startsample \startMPcode path p; p := fullsquare scaled 1cm; color foo; foo := .3red; pickup pencircle scaled 4pt; draw p withcolor transparent (1, 0.3, foo); draw p shifted (.5cm, .5cm) withcolor transparent (1, 0.25, blue); \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \noindent \type{transparent} 的第一个参数表示选用的颜色透明方法,共有 12 种方法可选: \startitemize[n,packed,columns,four] \item normal \item multiply \item screen \item overlay \item softlight \item hardlight \item colordodge \item colorburn \item darken \item lighten \item difference \item exclusion \stopitemize \noindent 第二个参数表示透明度,取值范围 [0, 1],其值越大,透明程度越低。第三个参数为颜色值。需要注意的是,\METAPOST\ 并不支持以 \type{color} 类型的变量保存带透明度的颜色值,而且 \METAPOST\ 里也没有与之对应的变量类型。 \section{文字} 使用 \MetaFun\ 宏 \type{textext} 可在 \METAPOST\ 图形中插入文字,且基于 \METAPOST\ 图形变换命令可对文字进行定位、缩放、旋转。例如 \startsample \startMPcode string s; % 字符串类型变量 s = "\color[darkred]{\bf 江山如此多娇}"; draw textext(s); draw textext(s) shifted (4cm, 0); draw textext(s) scaled 1.5 shifted (8cm, 0) ; draw textext(s) scaled 1.5 rotated 45 shifted (12cm, 0); \stopMPcode \stopsample \typesample[option=MP] \midaligned{\getsample} 也可使用 \type{\thetextext} 宏直接对文字进行定位,从而可省去 \type{shifted} 变换。例如 \startsample \startMPcode string s; s = "{\bf 江山如此多娇}"; draw (0, 0) withpen pensquare scaled 11pt withcolor darkred; draw thetextext(s, (4cm, 0)) withcolor darkred; \stopMPcode \stopsample \typesample[option=MP] \getsample \section{方向路径} \METAPOST\ 宏 \type{drawarrow} 可绘制带箭头的路径。例如 \startsample \startMPcode path p; p := (0, 0) -- (4cm, 0) -- (4cm, 2cm) -- (0, 2cm) -- (0, 1cm); pickup pencircle scaled 2pt; drawarrow p withcolor darkred; drawarrow p shifted (6cm, 0) dashed (evenly scaled .5mm) withcolor darkred; \stopMPcode \stopsample \typesample[option=MP] \midaligned{\getsample} \noindent 上述代码也给出了虚线路径的画法。 \METAPOST\ 的任何一条路径,从起点到终点可基于取值范围为 [0, 1] 的参数选择该路径上的某一点。基于该功能可实现路径标注。例如选择路径参数 0.5 对应的点,在该点右侧放置 \ConTeXt\ 旋转 90 度的文字: \startsample \startMPcode path p; p := (0, 0) -- (4cm, 0) -- (4cm, 2cm) -- (0, 2cm) -- (0, 1cm); pair pos; pos := point .5 along p; pickup pencircle scaled 2pt; drawarrow p withcolor darkred; draw pos withpen pensquare scaled 4pt withcolor darkgreen; draw thetextext.rt("\rotate[rotation=-90]{路过}", pos shifted (1mm, 0)); \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \noindent 上述代码中出现了 \type{thetextext} 的后缀形式。除了默认形式,\type{thetextext} 还有 4 种后缀形式,后缀名为 \inframed{\type{.lft}},\inframed{\type{.top}},\inframed{\type{.rt}} 和 \inframed{\type{.bot}},分别表示将文字放在指定位置的左侧、上方、右侧和下方。 \section{画面} \METAPOST\ 有一种变量类型 \type{picture},可将其用于将一组绘图语句合并为一个图形,然后予以绘制。使用 \METAPOST\ 宏 \type{image} 可构造 \type{picture} 实例。例如 \startsample \startMPcode path a; a := fullsquare xscaled 4cm yscaled 1cm; picture p; p := image( fill a withcolor darkgray; draw a withpen pencircle scaled 2pt withcolor darkblue; ); draw p; \stopMPcode \stopsample \simplesample[option=MP]{\getsample} 使用 \METAPOST\ 宏 \type{center} 可以获得 \type{picture} 实例的中心坐标,结果可保存于一个 \type{pair} 类型的变量。例如 \startsample \startMPcode picture p; p := image(draw textext("密云不雨,自我西郊");); pair c; c := center p; draw c withpen pensquare scaled 4pt withcolor darkred; draw p withcolor darkblue; \stopMPcode \stopsample \simplesample[option=MP]{\getsample} 使用 \MetaFun\ 宏 \type{bbwidth} 和 \type{bbheight} 可以获得 \type{picture} 实例的宽度和高度。使用这两个宏,可为任何图形和文字构造边框。例如 \startsample \startMPcode picture p; p := image(draw textext("归妹愆期,迟归有时")); numeric w, h; w := bbwidth(p); h := bbheight(p); path q; q := fullsquare xscaled w yscaled h; fill q withcolor darkgray; draw q withpen pencircle scaled 2pt withcolor darkred; draw p; \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \noindent 上述实例为文字构造的边框太紧了,利用现有所学,让它宽松一些并不困难: \startsample \startMPcode picture p; p := image(draw textext("归妹愆期,迟归有时")); numeric w, h; w := bbwidth(p); h := bbheight(p); numeric offset; offset := 5mm; path q; q := fullsquare xscaled (w + offset) yscaled (h + offset) shifted center p; fill q withcolor darkgray; draw q withpen pencircle scaled 2pt withcolor darkred; draw p; \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \section[macro]{宏} 定义一个宏,令其接受一个字符串类型的参数,返回一个矩形框,并令文字居于矩形框中心: \startsample \startMPcode vardef framed (expr text, offset) = picture p; p := image(draw textext(text)); numeric w, h; w := bbwidth(p); h := bbheight(p); path q; q := fullsquare xscaled (w + offset) yscaled (h + offset) shifted center p; image(fill q withcolor lightgray; draw q withpen pencircle scaled 2pt withcolor darkred; draw p;) enddef; draw framed("{\bf 亢龙有悔}", 5mm); \stopMPcode \stopsample \simplesample[option=MP]{\getsample} \METAPOST\ 的 \type{vardef} 用于定义一个有返回值的宏,宏定义的最后一条语句即返回值,该条语句不可以分号作为结尾。\METAPOST\ 还有其他几种宏定义形式,但是对于大多数作图任务而言,\type{vardef} 已足够应付。 \section[sec:flow-chart]{画一幅简单的流程图} 现在,请跟随我敲击键盘的手指,逐步画一幅描述数字求和过程的流程图,希望这次旅程能让你对 \METAPOST\ 的基本语法有一些全面的认识。 首先,构造一个结点,表示数据输入“” \starttyping[option=MP] string f; f := "\framed[frame=off,align=center]"; picture a; a := image( % 符号 & 用于拼接两个字符串 draw textext(f & "{$i\leftarrow 1$\\$s\leftarrow 0$}"); ); \stoptyping 然后,用 \in[macro] 节定义的 \type{framed} 宏构造两个运算过程结点: \starttyping[option=MP] numeric offset; offset := 5mm; picture b; b := framed(f & "{$s\leftarrow s + i$}", offset); picture c; c := framed(f & "{$i\leftarrow i + 1$}", offset); \stoptyping 还需要定义一个宏,用它构造菱形的条件判断结点: \starttyping[option=MP] vardef diamond (expr text, offset) = picture p; p := image(draw textext(text)); numeric w, h; w := bbwidth(p); h := bbheight(p); path q; q := fulldiamond xscaled (w + offset) yscaled (h + offset) shifted center p; image(fill q withcolor darkgray; draw q withpen pencircle scaled 2pt withcolor darkred; draw p withcolor white;) enddef; picture d; d := diamond(f & "{$i > 100$}", 3 * offset); \stoptyping 最后,再构造一个结点表示程序输出: \starttyping[option=MP] picture e; e := image(draw textext(f & "{$s$}");); \stoptyping 保持结点 \type{a} 不动,对 \type{b},\type{c},\type{d} 和 \type{e} 进行定位: \starttyping[option=MP] b := b shifted (0, -2cm); c := c shifted (4cm, -4.5cm); d := d shifted (0, -4.5cm); e := e shifted (0, -7cm); \stoptyping 现在可以画出所有结点了,即 \starttyping[option=MP] draw a; draw b; draw c; draw d; draw e; \stoptyping \midaligned{\externalfigure[12/flowchart-1.pdf][frame=on]} \blank 现在开始构造连接各结点的路径。首先构造结点 \type{a} 的底部中点到 \type{b} 的顶部中点的路径: \starttyping[option=MP] path ab; ab := .5[llcorner a, lrcorner a] -- .5[ulcorner b, urcorner b]; \stoptyping \noindent 其中 \type{llcorner} 用于获取路径或画面实例的最小包围盒的左下角顶点坐标。同理,\type{ulcorner},\type{urcorner} 和 \type{lrcorner} 分别获取包围盒的左上角、右上角和右下角顶点坐标。\type{.5[..., ...]} 用于计算两个点连线的中点。 用类似的方法可以构造其他连接各结点的路径: \starttyping[option=MP] path bd; bd := .5[llcorner b, lrcorner b] -- .5[ulcorner d, urcorner d]; path dc; dc := .5[lrcorner d, urcorner d] -- .5[ulcorner c, llcorner c]; path cb; cb := .5[ulcorner c, urcorner c] -- (4cm, -2cm) -- .5[urcorner b, lrcorner b]; path de; de := .5[llcorner d, lrcorner d] -- .5[ulcorner e, urcorner e]; \stoptyping 画出所有路径: \starttyping[option=MP] drawarrow ab withcolor darkred; drawarrow bd withcolor darkred; drawarrow cb withcolor darkred; drawarrow dc withcolor darkred; drawarrow de withcolor darkred; \stoptyping \midaligned{\externalfigure[12/flowchart-2.pdf][frame=on]} \blank 最后一步,路径标注: \starttyping[option=MP] pair no; no := point .4 along dc; pair yes; yes := point .5 along de; draw thetextext.top("否", no); draw thetextext.rt("是", yes); \stoptyping \midaligned{\externalfigure[12/flowchart-3.pdf][frame=on]} \section{代码简化} \in[sec:flow-chart] 节中用于绘制程序流程图的代码存在许多重复。我们可以尝试使用条件、循环,宏等形式对代码进行简化,但我对它们给出的讲解并不会细致,为的正是走马观花,观其大略。 首先,观察宏 \type{framed} 和 \type{diamond} 的定义,发现二者仅有的不同是前者用 \type{fullsquare} 绘制盒子,后者用 \type{fulldiamond}。因此,可以重新定义一个更为灵活的宏,用于制作结点: \starttyping[option=MP] vardef make_node(expr text, shape, offset) = picture p; p := image(draw textext(text)); numeric w, h; w := bbwidth(p); h := bbheight(p); if path shape: path q; q := shape xysized (w + offset, h + offset) shifted center p; image(fill q withcolor lightgray; draw q withpen pencircle scaled 2pt withcolor darkred; draw p;) else: image(draw p;) fi enddef; \stoptyping \noindent 由于上述代码使用了 \METAPOST\ 的条件判断语法,以 \type{path shape} 判断 \type{shape} 是否为路径变量,从而使得 \type{make_node} 能构用于构造有无边框和有边框的结点: \starttyping[option=MP] numeric offset; offset := 5mm; string f; f := "\framed[frame=off,align=center]"; picture a, b, c, d, e; a := make_node(f & "{$i\leftarrow 1$\\$s\leftarrow 0$}", none, 0); b := make_node(f & "{$s\leftarrow s + i$}", fullsquare, offset); c := make_node(f & "{$i\leftarrow i + 1$}", fullsquare, offset); d := make_node(f & "{$i > 100$}", fulldiamond, offset); e := make_node(f & "{$s$}", none, 0); \stoptyping 在 \type{vardef} 宏中使用条件语句时需要注意,通常情况下不要条件结束语句 \type{fi} 后面添加分号,否则 \type{vardef} 宏的返回值会带上这个分号。在其他情境下,通常需要在 \type{fi} 加分号。还要注意,我在 \type{make_node} 宏中使用 \type{xysized} 取代了之前的 \type{xscale} 和 \type{yscale},可直接指定路径或画面的尺寸。之所以如此,是因为我们无法确定 \type{make_node} 宏的第 2 个参数对应的路径是否为标准图形。 在绘制结点和路径时,存在重复使用 \type{draw} 语句的情况,例如 \starttyping[option=MP] drawarrow ab withcolor darkred; drawarrow bd withcolor darkred; drawarrow cb withcolor darkred; drawarrow dc withcolor darkred; drawarrow de withcolor darkred; \stoptyping \noindent 可使用循环语句予以简化: \starttyping[option=MP] for i = ab, bd, cb, dc, de: draw i withcolor darkred; endfor; \stoptyping 为了便于获得路径或画面的包围盒的四边中点,定义以下宏: \starttyping[option=MP] vardef left(expr p) = .5[llcorner p, ulcorner p] enddef; vardef top(expr p) = .5[ulcorner p, urcorner p] enddef; vardef right(expr p) = .5[lrcorner p, urcorner p] enddef; vardef bottom(expr p) = .5[llcorner p, lrcorner p] enddef; \stoptyping \noindent 以绘制结点 \type{b} 的四边中点为测试用例 \starttyping[option=MP] for i = left(b), top(b), right(b), bottom(b): draw i withpen pensquare scaled 4pt withcolor darkblue; endfor; \stoptyping \midaligned{\externalfigure[12/flowchart-4.pdf]} 基于上述宏,可以更为简洁地构造连接各结点的路径: \starttyping[option=MP] path ab; ab := bottom(a) -- top(b); path bd; bd := bottom(b) -- top(d); path dc; dc := right(d) -- left(c); path cb; cb := top(c) -- (xpart center c, ypart center b) -- right(b); path de; de := bottom(d) -- top(e); \stoptyping \noindent \type{center} 是 \METAPOST\ 宏,可用于获取路径或画面的包围盒中心点坐标。\type{xpart} 和 \type{ypart} 也皆为 \METAPOST\ 宏,用于获取点的坐标分量。 路径标注也可以通过定义一个宏予以简化: \starttyping[option=MP] vardef tag(expr p, text, pos, loc) = if loc = "left": thetextext.lft(text, point pos along p) elseif loc = "right": thetextext.rt(text, point pos along p) elseif loc = "top": thetextext.top(text, point pos along p) elseif loc = "bottom": thetextext.bot(text, point pos along p) else thetextext(text, point pos along p) fi enddef; \stoptyping \noindent 其用法为 \starttyping[option=MP] draw tag(dc, "否", .5, "top"); draw tag(de, "是", .5, "right"); \stoptyping \section{层层叠叠} \ConTeXt\ 有一个以 overlay 为基础的层(Layer)机制。利用层机制,我们可将 \METAPOST\ 图形绘制在页面上的任何一个位置。在学习层之前,我们需要对 overlay 的认识再加深一些。 \subsection{overlay} 实际上 overlay 环境是一个图形「栈」。通过它,可实现图形(包括文字)的叠加。例如,对于以下 \METAPOST\ 图形: \startsample \startuseMPgraphic{一个矩形} path p; p := fullsquare xscaled 4cm yscaled 1cm; draw p randomized 3mm withcolor transparent (1, .5 randomized .25, red) withpen pencircle scaled 2pt; \stopuseMPgraphic \startoverlay {\useMPgraphic{一个矩形}} {\useMPgraphic{一个矩形}} {\useMPgraphic{一个矩形}} \stopoverlay \stopsample \simplesample[option=MP]{\getsample} \noindent 上述代码中,\type{transparent (1, .5 randomized .3, red)} 用于构造在一定程度上不确定透明度的红色,透明度在 [0.2, 0.8] 之间,亦即 \type{randomized} 不仅可作用于路径,也可作用于数字或颜色值。由于上述 \METAPOST\ 图形环境包含着随机内容,将其作为插图,在一个 overlay 中多次使用,每次使用都会产生不同的结果,在 overlay 中它们会被叠加到一起。 之前在为 \type{\framed} 定义 overlay 时,overlay 中只有单个图形,亦即我们并未充分利用 overlay 的特性。以下代码定义的 \type{\framed} 的背景便包含了三个叠加的 overlay: \startsample \defineoverlay [叠叠] [\startoverlay {\useMPgraphic{一个矩形}} {\useMPgraphic{一个矩形}} {\useMPgraphic{一个矩形}} \stopoverlay] \defineframed [foo] [frame=off,background={叠叠},width=4cm] \foo{迎接光辉岁月} \stopsample \simplesample[option=TEX]{\getsample} \noindent \type{\framed} 的背景支持多个 overlay 叠加,以下代码与上例等效: \starttyping[option=TEX] \defineoverlay[叠叠-1]{\useMPgraphic{一个矩形}} \defineoverlay[叠叠-2]{\useMPgraphic{一个矩形}} \defineoverlay[叠叠-3]{\useMPgraphic{一个矩形}} \defineframed[foo][frame=off,background={叠叠-1,重叠-2,重叠-3}] \foo{迎接光辉岁月} \stoptyping \noindent 这意味着,\type{\framed} 的背景,本质上也是一个 overlay。 基于 overlay,也可为文档设置水印。例如,若在 \type{\starttext} 之前添加以下代码: \starttyping[option=TEX] \startuseMPgraphic{square} path p; p := fullsquare xscaled 4cm yscaled 1cm; draw p randomized 3mm withcolor transparent (1, .5 randomized .3, red) withpen pencircle scaled 2pt; \stopuseMPgraphic \defineoverlay[watermark][\useMPgraphic{square}] \setupbackgrounds[page][background=watermark] \stoptyping \midaligned{\externalfigure[12/watermark.png][width=.6\textwidth]} \subsection[layer]{层} \ConTeXt\ 的层,本质上是一个可作为全页背景的 overlay,可使用绝对坐标或相对坐标对排版元素在页面上定位放置。例如,定义一个层 foo,在三个不同位置分别放置一幅 \METAPOST\ 图形,并将其作用于当前页面: \starttyping[option=TEX] \definelayer[foo] \setlayer[foo][x=0cm,y=0cm]{\useMPgraphic{一个矩形}} \setlayer[foo][x=6cm,y=1cm]{\useMPgraphic{一个矩形}} \stoptyping \starttyping[option=TEX] \setlayer [foo] [x=\textwidth,y=2cm,hoffset=-4cm,vhoffset=-.5cm]{\useMPgraphic{一个矩形}} \flushlayer[foo] \stoptyping \definelayer[test] \setlayer[test][x=0cm,y=0cm]{\useMPgraphic{一个矩形}} \setlayer[test][x=6cm,y=1cm]{\useMPgraphic{一个矩形}} \setlayer [test] [x=\textwidth,y=2cm,hoffset=-4cm,voffset=-3cm]{\useMPgraphic{一个矩形}} \flushlayer[test] \noindent 上述代码定义的层 foo,其坐标原点是层被投放的位置,亦即在本行文字的左上角。$x$ 坐标向右递增,$y$ 坐标向下递增。 \definelayer[foo] \setlayer[foo][x=0cm,y=0cm]{\useMPgraphic{circle}} \setlayer[foo][preset=rightbottom]{\useMPgraphic{circle}} \setupbackgrounds[page][background=foo] 如果将层的宽度和高度分别设为页面的宽度和高度,并将其设为页面背景,则坐标原点在页面的左上角,且可使用一些预定义位置投放内容。例如以下代码可在当前页面的左上角和右下角位置各放一个圆圈: \starttyping[option=TEX] \startuniqueMPgraphic{circle} draw fullcircle scaled 2cm withpen pencircle scaled 2pt withcolor darkgreen; \stopuniqueMPgraphic \definelayer[foo][width=\paperwidth,height=\paperheight] \setlayer[foo][x=0cm,y=0cm]{\uniqueMPgraphic{circle}} \setlayer[foo][preset=rightbottom]{\uniqueMPgraphic{circle}} \setupbackgrounds[page][background=foo] \stoptyping \startuniqueMPgraphic{circle} draw fullcircle scaled 2cm withpen pencircle scaled 2pt withcolor darkgreen; \stopuniqueMPgraphic \definelayer[foo][width=\paperwidth,height=\paperheight] \setlayer[foo][x=0cm,y=0cm]{\uniqueMPgraphic{circle}} \setlayer[foo][preset=rightbottom]{\uniqueMPgraphic{circle}} \setupbackgrounds[page][background=foo] \noindent 需要注意的是,层被使用一次后,便会被清空,因而将其作为页面背景,仅对当前页有效。 通过 \type{preset} 参数可调整层的坐标原点和坐标方向。在上述代码中,\type{rightbottom} 可将层的坐标原点定位于层的右下角,同时 $x$ 坐标方向变为向左递增,$y$ 坐标方向变为向上递增。 \ConTeXt\ 预定义的 \type{preset} 参数值有 \startitemize[packed,columns,five] \item lefttop\item righttop\item leftbottom\item rightbottom\item middle\item middletop \item middlebottom\item middleleft\item middleright\item lefttopleft\item lefttopright \stopitemize \noindent 使用这些参数值时,要注意坐标方向。例如,若 \type{preset=middleright},其 $x$ 坐标方向变为向左递增,而 $y$ 坐标方向依然保持向上递增,以下代码可予以验证: \starttyping[option=TEX] \definelayer[bar][width=\paperwidth,height=\paperheight] \setlayer[bar][preset=middleright]{ \startMPcode draw (0, 0) withpen pensquare scaled 12pt withcolor darkred; \stopMPcode } \stoptyping \starttyping[option=TEX] \setlayer[bar][preset=middleright,x=2cm,y=2cm]{ \startMPcode draw (0, 0) withpen pensquare scaled 12pt withcolor transparent (1, .3, darkred); \stopMPcode } \setupbackgrounds[page][background=bar] \stoptyping \definelayer[bar][width=\paperwidth,height=\paperheight] \setlayer[bar][preset=middleright]{ \startMPcode draw (0, 0) withpen pensquare scaled 12pt withcolor darkred; \stopMPcode } \setlayer[bar][preset=middleright,x=2cm,y=2cm]{ \startMPcode draw (0, 0) withpen pensquare scaled 12pt withcolor transparent (1, .3, darkred); \stopMPcode } \setupbackgrounds[page][background=bar] \section{小结} 也许你意犹未尽,甚至觉得我语焉不详。切莫怪我,我原本仅仅是介绍如何使用 \METAPOST\ 绘制一个边框受随机扰动的盒子。不过,在大致掌握了本章所述的内容的基础上,关于 \METAPOST\ 更多的知识,特别本章所有你觉得语焉不详之处,皆可阅读它的手册\cite[mpman]以增进认识。此外,\ConTeXt\ 开发者 Hans Hagen 所写的 \MetaFun\ 手册除了讲述 \MetaFun\ 之外也大量介绍了 \METAPOST\ 的基本知识和技巧,该手册在你的 \ConTeXt\ 系统中,使用以下命令查找: \starttyping $ mtxrun --script base --search metafun-s.pdf \stoptypingcontext-modules-20240428/doc/context/third/context-notes-zh-cn/src/07.tex0000644000175000017500000001342414411115111025012 0ustar hillehille\chapter{数学环境} \TeX\ 原本是 Knuth 专为排版数学类书籍而开发的,亦即排版数学公式是 \TeX\ 最擅长的任务,这也是我对数学的唯一兴趣了。希望你是因为喜欢数学而喜欢 \TeX。 \section{两种模式} \TeX\ 数学公式有两种模式,一种是正文模式(text mode),一种是显摆模式(display mode),在 \ConTeXt\ 中,自然也是如此。当然,可能你觉得显摆模式这个称谓不够严肃,于是随了它的俗称「行间模式」,并无不可,而且后文我也如此称谓它。 正文模式里的数学公式放在一对美元符号之间,意思是有钱人都精通数学。例如 \type{$a^2 + b^2 = c^2$} 便是正文模式的数学公式,其排版结果为 $a^2 + b^2 = c^2$。\TeX\ 数学公式的行间模式是放在一对双美元符号之间,例如 \starttyping[option=TEX] $$ \int_0^{+\infty}f(x) {\rm d}x $$ \stoptyping \noindent 其排版结果为 $$ \int_0^{+\infty}f(x) {\rm d}x $$ \noindent 但是,在 \ConTeXt\ 里,行间模式建议用以下形式的语法 \starttyping[option=TEX] \startformula \int_0^{+\infty}f(x) {\rm d}x \stopformula \stoptyping \startformula \int_0^{+\infty}f(x) {\rm d}x \stopformula \noindent 至于原因为何,想必你已经知道了,\ConTeXt\ 对 \type{\startformula ... \stopformula} 环境的行间公式默认提供了居中对齐以及前后空白支持。为什么 \ConTeXt\ 不对 \type{$$...$$} 提供类似的支持呢?因为 \ConTeXt\ 需要以一种统一的方式控制行间公式前后的空白大小,例如消除行间公式前后空白,只需 \starttyping[option=TEX] \setupformulas[spacebefore=0pt,spaceafter=0pt] \startformula \int_0^{+\infty}f(x) {\rm d}x \stopformula \stoptyping \setupformulas[spacebefore=0pt,spaceafter=0pt] \startformula \int_0^{+\infty}f(x) {\rm d}x \stopformula \noindent 若基于 \type{$$...$$} 标记则很难实现该方式。 \section{公式编号} 如同插图和表格,行间数学公式也有一个放置命令 \type{\placeformula}。例如 \starttyping[option=TEX] \placeformula \startformula \int_0^{+\infty}f(x) {\rm d}x \stopformula \stoptyping \placeformula[math-example] \startformula \int_0^{+\infty}f(x) {\rm d}x \stopformula \ConTeXt\ 行间公式支持引用,例如 \starttyping[option=TEX] \placeformula[math-example] \startformula \int_0^{+\infty}f(x) {\rm d}x \stopformula \stoptyping \noindent 类似插图和表格,使用 \type{\in[...]} 进行引用。例如 \type{\in[math-example]},结果为「\in[math-example]」。 \section{定理和证明} \ConTeXt\ 未提供可直接用于排版数学定理和证明的命令,但是我们可以借助枚举环境定义它们。我们对枚举环境事实上并不陌生,因为早已见识过它的一个特例:列表。 使用 \type{\defineenumeration} 可以定义一种新的枚举特例。例如 \starttyping[option=TEX] \defineenumeration[theorem][text=定理] \stoptyping 然后便可使用该特例: \starttyping[option=TEX] \starttheorem 凡人皆有一死,凡人皆须侍奉。 \stoptheorem \stoptyping \noindent 结果为 \startblueframedtext \defineenumeration[theorem][text=定理] \starttheorem 凡人皆有一死,凡人皆须侍奉。 \stoptheorem \stopblueframedtext 接下来,让定理序号与定理内容的第一行处于同一行,让版面更加紧凑(serried): \starttyping[option=TEX] \defineenumeration[theorem][text=定理,alternative=serried] \starttheorem 凡人皆有一死,凡人皆须侍奉。 \stoptheorem \stoptyping \startblueframedtext \defineenumeration[theorem][text=定理,alternative=serried] \starttheorem 凡人皆有一死,凡人皆须侍奉。 \stoptheorem \stopblueframedtext 现在,只需将定理的宽度设为 \type{broad} 或 \type{\textwidth},便可让定理编号和定理内容不至于如此隔阂,顺便将定理内容的字体切换为粗体: \starttyping[option=TEX] \defineenumeration[theorem][text=定理,alternative=serried,width=broad,style=\bf] \starttheorem 凡人皆有一死,凡人皆须侍奉。 \stoptheorem \stoptyping \noindent 结果为 \startblueframedtext \defineenumeration[theorem][text=定理,alternative=serried,width=broad,style=\bf] \starttheorem 凡人皆有一死,凡人皆须侍奉。 \stoptheorem \stopblueframedtext 由于枚举环境皆支持引用,因此上述定义的定理可免费继承该功能。例如 \starttyping[option=TEX] \starttheorem[千面神定理] 凡人皆有一死,凡人皆须侍奉。 \stoptheorem 如定理 \in[千面神定理] 所述…… \stoptyping \startblueframedtext \defineenumeration[theorem][text=定理,alternative=serried,width=broad,style=\bf] \starttheorem[千面神定理] 凡人皆有一死,凡人皆须侍奉。 \stoptheorem 如定理 \in[千面神定理] 所述…… \stopblueframedtext 类似地,也基于枚举环境定义证明,只需去掉序号,并在证明结尾居右放置 $\square$ 符号。例如 \starttyping[option=TEX] \defineenumeration [proof] [text=证明,alternative=serried,width=broad, number=no,closesymbol={$\square$}] \startproof 因为人的生命是有限的,为人民服务是无限的。我们应当将有限的生命投入到无限的为人民服务中去。 \stopproof \stoptyping \startblueframedtext \defineenumeration [proof] [text=证明,alternative=serried,width=broad, number=no,closesymbol={$\square$}] \startproof 因为人的生命是有限的,为人民服务是无限的。我们应当将有限的生命投入到无限的为人民服务中去。 \stopproof \stopblueframedtext \section{小结} 现在你已经基本学会了 \ConTeXt\ 数学公式排版。与 \ConTeXt\ 数学排版专家相比,你缺乏的可能主要是如何熟练地输入具体的数学公式。若想在这方面能有所精进,可参考 \ConTeXt\ Wiki 的「Math」页面\cite[math]。context-modules-20240428/doc/context/third/context-notes-zh-cn/README.md0000644000175000017500000000166114411653175024553 0ustar hillehilleThis is an introductory tutorial on ConTeXt in Chinese written by Li Yanrui. This tutorial is completely rewritten fourteen years later after its predecessor was released. Now it comprehensively introduces how to use ConTeXt (>= MkIV) to typeset Simplified Chinese documents, mainly including the installation of ConTeXt LMTX, how to use Chinese fonts, and how to typeset lists, references, figures, tables, verbatim text and framed text. Furthermore, it is described how to use the MetaPost language for drawing in ConTeXt. Finally, how to make slides and books is introduced. This package is licensed in GPL v3 (The GNU General Public License v3.0). The document ctxnotes.pdf is licensed in GFDL (The GNU Free Documentation License). If you are interested in the process of development you may observe https://github.com/liyanrui/ConTeXt-notes Report or give feedback to https://github.com/liyanrui/ConTeXt-notes/issues or lyr.m2@live.cn context-modules-20240428/tex/0000755000175000017500000000000014613513620014670 5ustar hillehillecontext-modules-20240428/tex/context/0000755000175000017500000000000014613513620016354 5ustar hillehillecontext-modules-20240428/tex/context/third/0000755000175000017500000000000014613513621017467 5ustar hillehillecontext-modules-20240428/tex/context/third/simpleslides/0000755000175000017500000000000014613513621022164 5ustar hillehillecontext-modules-20240428/tex/context/third/simpleslides/s-simpleslides-RainbowStripe.tex0000644000175000017500000001717414264357620030452 0ustar hillehille%D \module %D [ file=simpleslides-t-RainbowStripe, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module RainbowStripe, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{RainbowStripe} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading RainbowStripe style} \startmodule[simpleslides-s-RainbowStripe] \unprotect %D First, we provide the page layout. \setuplayout [width=fit, margin=1.5cm, height=fit, header=11mm, footer=0cm, topspace=15mm, backspace=2cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=11mm] \setuplayout [simpleslides:layout:vertical] [header=0mm] \setuplayout [simpleslides:layout:title] [header=0mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} \setuplayer [simpleslides:layer:slidetitle] [y=12mm, x=20mm] %D We define our colorscheme: \definecolor [simpleslides:backgroundcolor] [s=.88] \definecolor [simpleslides:itemize:color] [s=0] \definecolor [simpleslides:rainbowone] [r=.5,g=0,b=.5] \definecolor [simpleslides:rainbowtwo] [b=1] \definecolor [simpleslides:rainbowthree] [g=1,b=1] \definecolor [simpleslides:rainbowfour] [g=1] \definecolor [simpleslides:rainbowfive] [r=1,g=1] \definecolor [simpleslides:rainbowsix] [r=1] %D In a first attempt to achieve the rainbow effect, I produced the rainbow %D background with asymptote and then converted it to a pdf file which was then %D used as a background. In that case, it was necessary to instruct \CONTEXT\ %D to look in the default \TeX\ input paths for figures. The background spans %D the entire height of the page and the width of the text area; the gray %D background was then calculated so that the two stripes at the top and at the %D bottom were left unfilled so the rainbow background would then be visible. %D Here is the code: %\setupexternalfigures[location={global}] %\defineoverlay[rainb][{\externalfigure[rainbow.pdf][width=1.05\textwidth,height=1.4\textheight]}] % \startuniqueMPgraphic{gray} % StartPage ; % pair zf[] ; % path gr[] ; % numeric a; a = 2cm ; % numeric b; b = 0.8cm ; % z.f1 = ulcorner Page shifted (a,0) ; % z.f2 = urcorner Page shifted (-a,0) ; % z.f3 = lrcorner Page shifted (-a,0) ; % z.f4 = llcorner Page shifted (a,0) ; % z.f5 = z.f1 shifted (0,-b) ; % z.f6 = z.f2 shifted (0,-b) ; % z.f7 = z.f3 shifted (0,b) ; % z.f8 = z.f4 shifted (0,b) ; % z.f9 = z.f5 shifted (0,-b) ; % z.f10 = z.f6 shifted (0,-b) ; % z.f11 = z.f7 shifted (0,b) ; % z.f12 = z.f8 shifted (0,b) ; % gr[1] = ulcorner Page -- urcorner Page -- lrcorner Page -- llcorner Page -- z.f8 -- z.f7 -- z.f6 -- z.f5 -- z.f4 -- llcorner Page -- cycle ; % gr[2] = z.f9 -- z.f10 -- z.f11 -- z.f12 -- cycle ; % gr[2] := gr[2] enlarged (.5cm,0cm) ; % fill gr[1] withcolor \MPcolor{a} ; % fill gr[2] withcolor \MPcolor{a} ; % StopPage ; % \stopuniqueMPgraphic %D However, it seemed more portable to let Metapost calculate the background. %D The rainbow effect takes some lines of code, but it's not too bad: \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; pair zf[] ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; path gr[] ; numeric a; a = 2cm ; numeric b; b = 0.4cm ; numeric c; c = 0.7cm ; z.f1 = ulcorner Page shifted (a,-c) ; z.f2 = urcorner Page shifted (-a,-c) ; z.f3 = z.f2 shifted (0,-b) ; z.f4 = z.f1 shifted (0,-b) ; gr[1] = z.f1 -- z.f2 ; gr[2] = z.f4 -- z.f3 ; z.f5 = point .2 along gr[1] ; z.f6 = point .2 along gr[2] ; z.f7 = point .4 along gr[1] ; z.f8 = point .4 along gr[2] ; z.f9 = point .6 along gr[1] ; z.f10 = point .6 along gr[2] ; z.f11 = point .8 along gr[1] ; z.f12 = point .8 along gr[2] ; gr[3] = z.f1 -- z.f5 -- z.f6 -- z.f4 -- cycle ; gr[4] = z.f7 -- z.f5 -- z.f6 -- z.f8 -- cycle ; gr[4] := gr[4] enlarged (.02cm,0) ; gr[5] = z.f9 -- z.f7 -- z.f8 -- z.f10 -- cycle ; gr[5] := gr[5] enlarged (.02cm,0) ; gr[6] = z.f11 -- z.f9 -- z.f10 -- z.f12 -- cycle ; gr[6] := gr[6] enlarged (.02cm,0) ; gr[7] = z.f11 -- z.f2 -- z.f3 -- z.f12 -- cycle ; linear_shade(gr[3],0,\MPcolor{simpleslides:rainbowone},\MPcolor{simpleslides:rainbowtwo}) ; linear_shade(gr[4],0,\MPcolor{simpleslides:rainbowtwo},\MPcolor{simpleslides:rainbowthree}) ; linear_shade(gr[5],0,\MPcolor{simpleslides:rainbowthree},\MPcolor{simpleslides:rainbowfour}) ; linear_shade(gr[6],0,\MPcolor{simpleslides:rainbowfour},\MPcolor{simpleslides:rainbowfive}) ; linear_shade(gr[7],0,\MPcolor{simpleslides:rainbowfive},\MPcolor{simpleslides:rainbowsix}) ; z.f21 = llcorner Page shifted (a,c) ; z.f22 = lrcorner Page shifted (-a,c) ; z.f23 = z.f22 shifted (0,b) ; z.f24 = z.f21 shifted (0,b) ; gr[21] = z.f21 -- z.f22 ; gr[22] = z.f24 -- z.f23 ; z.f25 = point .2 along gr[21] ; z.f26 = point .2 along gr[22] ; z.f27 = point .4 along gr[21] ; z.f28 = point .4 along gr[22] ; z.f29 = point .6 along gr[21] ; z.f30 = point .6 along gr[22] ; z.f31 = point .8 along gr[21] ; z.f32 = point .8 along gr[22] ; gr[23] = z.f21 -- z.f25 -- z.f26 -- z.f24 -- cycle ; gr[24] = z.f27 -- z.f25 -- z.f26 -- z.f28 -- cycle ; gr[24] := gr[24] enlarged (.02cm,0) ; gr[25] = z.f29 -- z.f27 -- z.f28 -- z.f30 -- cycle ; gr[25] := gr[25] enlarged (.02cm,0) ; gr[26] = z.f31 -- z.f29 -- z.f30 -- z.f32 -- cycle ; gr[26] := gr[26] enlarged (.02cm,0) ; gr[27] = z.f31 -- z.f22 -- z.f23 -- z.f32 -- cycle ; linear_shade(gr[23],0,\MPcolor{simpleslides:rainbowone},\MPcolor{simpleslides:rainbowtwo}) ; linear_shade(gr[24],0,\MPcolor{simpleslides:rainbowtwo},\MPcolor{simpleslides:rainbowthree}) ; linear_shade(gr[25],0,\MPcolor{simpleslides:rainbowthree},\MPcolor{simpleslides:rainbowfour}) ; linear_shade(gr[26],0,\MPcolor{simpleslides:rainbowfour},\MPcolor{simpleslides:rainbowfive}) ; linear_shade(gr[27],0,\MPcolor{simpleslides:rainbowfive},\MPcolor{simpleslides:rainbowsix}) ; StopPage ; \stopuniqueMPgraphic \startuseMPgraphic{simpleslides:MP:ornament} StartPage path p[] ; p[1] := unitsquare xyscaled(MakeupWidth,.4cm) shifted (2cm,0.7cm) ; numeric i; if NOfPages <= 1 : i = (RealPageNumber - 1) ; else : i = (RealPageNumber - 1)/(NOfPages - 1) ; fi ; p[2] = ulcorner p[1] -- urcorner p[1] ; p[3] = llcorner p[1] -- lrcorner p[1] ; pair o[] ; o[1] := point i along p[2] ; o[2] := point i along p[3] ; p[4] = o[1] -- o[2] ; p[4] := p[4] enlarged (0,-1pt) ; pickup pensquare scaled 2pt ; draw p[4] ; StopPage \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] %D We set up our SlideTitles: \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!align=\v!center, \c!height=1.5cm] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][inmargin] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Embossed.tex0000644000175000017500000001125114264357620027411 0ustar hillehille%D \module %D [ file=simpleslides-s--Embossed, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- Embossed style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{embossed} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading module embossed} \startmodule[simpleslides-s-Embossed] \unprotect %D The page layout: \setuplayout [width=fit, margin=1.3cm, height=fit, header=1cm, footer=1cm, topspace=10mm, backspace=2cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=1cm] \setuplayout [simpleslides:layout:vertical] [header=0cm] \setuplayout [simpleslides:layout:title] [header=0cm] %D These macros are used for placing figures/pictures: \define\NormalHeight{.94\textheight} \define\NormalWidth{.476\textwidth} \define\PictureFrameHeight{.94\textheight} \define\PictureFrameWidth{.476\textwidth} %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=20mm,y=2mm] %D Next we define a generic frame \defineframed[simpleslides:framed] [frame=off,offset=0pt, top=\vss,bottom=\vss] \defineframed[simpleslides:framed:big] [frame=off,offset=0pt,strut=no, width=\textwidth,height=2cm, top=\vss,bottom=\vss] %D We define our color scheme: \definecolor [simpleslides:backgroundcolor] [r=1,g=1,b=.8] \definecolor [simpleslides:variantcolor] [r=.6,g=.2,b=.2] \definecolor [simpleslides:specialcolor:1] [r=.4,g=.2,b=.2] \definecolor [simpleslides:specialcolor:2] [r=.7,g=.2,b=.2] \definecolor [simpleslides:contrastcolor] [r=.2,g=.2,b=.5] \definecolor [simpleslides:framecolor] [s=.4] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D This module write "Made with ConTeXt" in bold at the bottom. We first define %D a font for it. \definefontsynonym [Embossed] [name:texgyreherosbold] \definefont[EmblemFont] [Embossed at 30pt] %D Some strings are configurable. \setuplabeltext [\s!en] [simpleslidesemblem={Made with \CONTEXT},of=of] \setuplabeltext [\s!de] [simpleslidesemblem={Gesetzt mit \CONTEXT},of=von] \definetextext[simpleslides:sometxt:left] {\TaspresentSometxtLeft} \definetextext[simpleslides:sometxt:right]{\TaspresentSometxtRight} \unexpanded\def\TaspresentSometxtLeft#1% {\getvalue{simpleslides:framed:big} {\EmblemFont\color[simpleslides:specialcolor:1] {#1}}} \unexpanded\def\TaspresentSometxtRight#1% {\getvalue{simpleslides:framed:big} {\EmblemFont\color[simpleslides:specialcolor:2] {#1}}} \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save a, b; numeric a; a = 2cm ; numeric b; b = 0.9cm ; z1 = llcorner Page shifted (0,a) ; z2 = lrcorner Page shifted (0,a) ; save bottom ; path bottom ; bottom = llcorner Page -- z1 -- z2 -- lrcorner Page -- cycle ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; fill bottom withcolor \MPcolor{simpleslides:variantcolor} ; draw Page withcolor \MPcolor{simpleslides:framecolor} withpen pencircle scaled 12pt ; draw topboundary bottom withcolor \MPcolor{simpleslides:framecolor} withpen pencircle scaled 6pt ; draw \sometxt[simpleslides:sometxt:left]{\labeltext{simpleslidesemblem} \hfill \pagenumber\ \labeltext{of} \lastpage} shifted (1.96cm,0.04cm) ; draw \sometxt[simpleslides:sometxt:right]{\labeltext{simpleslidesemblem} \hfill \pagenumber\ \labeltext{of} \lastpage} shifted (2cm,0) ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:ornament}] %D We want the presentation title to be in color \setupTitle[\c!title\c!color=simpleslides:contrastcolor] %D We also want the slide title in a framed box. \setupSlideTitle [\c!after=, \c!alternative=layer, \c!color={simpleslides:contrastcolor}, \c!width=\textwidth, \c!height=2cm, \c!align=\v!middle] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-fontsdefault.mkiv0000644000175000017500000001507714416606660030526 0ustar hillehille%D \module %D [ file=simpleslides-f-default, %D version=2023.04.13 %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module simpleslides --- Default font setup, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C Maintained by Henning Hraban Ramm since 2022. %C This file may be distributed under the GNU General Public License v. 2.0. \writestatus{simpleslides}{loading default font setup} \startmodule[s-simpleslides-fontsdefault] \unprotect \setupbodyfontenvironment[default][em=italic] %D The fontsize is set via the \type{size}||key; it will be used in numerous %D setup||commands. In earlier versions, I had used the \tex{processaction} %D mechanism to define the \tex{NormalSize} and \tex{TitleSize}, but Aditya %D rightly pointed out that this is somewhat inflexible. I now set the font %D dimensions directly; \tex{TitleSize} is calculated from \tex{NormalSize}. I %D do a few tests to get nice sizes. \newdimen\simpleslidesNormalSize \newdimen\simpleslidesTitleSize \newdimen\simpleslidesSlideTitleSize \simpleslidesNormalSize=\moduleparameter{simpleslides}{size}\relax \ifdim\simpleslidesNormalSize<16pt% \simpleslidesTitleSize=1.6\simpleslidesNormalSize\relax% \else% \ifdim\simpleslidesNormalSize<20pt% \simpleslidesTitleSize=1.4142\simpleslidesNormalSize\relax% \else% \simpleslidesTitleSize=30pt\relax% \fi% \fi% \simpleslidesSlideTitleSize = \simpleslidesTitleSize \def\NormalSize {\the\simpleslidesNormalSize} \def\TitleSize {\the\simpleslidesTitleSize} \def\SlideTitleSize {\the\simpleslidesSlideTitleSize} %D The bodyfont needs to be defined so \CONTEXT\ can calculate size switches, %D math formulas, etc. \starttypescript [serif] [default] [size] \definebodyfont [14pt,15pt,16pt,17pt,20pt,25pt,\NormalSize,\TitleSize] [rm] [default] \stoptypescript \starttypescript [sans] [default] [size] \definebodyfont [14pt,15pt,16pt,17pt,20pt,25pt,\NormalSize,\TitleSize] [ss] [default] \stoptypescript \starttypescript [mono] [default] [size] \definebodyfont [14pt,15pt,16pt,17pt,20pt,25pt,\NormalSize,\TitleSize] [tt] [default] \stoptypescript \definebodyfontenvironment[\NormalSize] \definebodyfontenvironment[\TitleSize] %D Setups define which font will be used. The module provides simple keywords %D for using a small set of predefined fonts: Latin Modern, Latin Modern Sans, %D Adventor (the TeXGyre clone of Gothic), Schola (the TeXGyre clone of %D Schoolbook), Bonum (the TeXGyre clone of Bookman), Termes (the TeXGyre clone %D of Times), Pagella (the TeXGyre clone of Palatino), Heros (the TeXGyre clone %D of Helvetica), Chancery (the TeXGyre clone of Chancery), and IBM Plex(Sans). %D Since the definition of typescripts etc. varies according to the \TeX-engine %D used, we have to branch the code here. This is awkward, but for the time being, %D I see no other way. \startsetups simpleslides:font:LatinModern \setupbodyfont[\NormalSize] \stopsetups \startsetups simpleslides:font:LatinModernSans \setupbodyfont[ss,\NormalSize] \stopsetups %\usetypescriptfile[type-otf] %Isn't this included by default? %AM: For all the fonts, I have used traditional names rather than TeX Gyre %names. %D It is difficult to write a typescript that will work with both \MKII\ and %D \MKIV. If the sixth argument is absent, \CONTEXT\ does the right thing. When %D the sixth argument is present, e.g., \type{rscale=1.1}, then we also need %D \type{encoding=something} for the style to work in \MKII. We hope that \MKIV\ %D simply ignores the \type{encoding} setting. \startsetups simpleslides:font:Bookman \starttypescript[bookman] \definetypeface [bookman] [rm] [serif] [bookman] [default] \definetypeface [bookman] [ss] [sans] [adventor] [default] \definetypeface [bookman] [tt] [mono] [modern] [default] [rscale=1.075] \definetypeface [bookman] [mm] [math] [pagella] [default] \stoptypescript \usetypescript[bookman] \setupbodyfont[bookman,\NormalSize] \stopsetups %AM: Was Chorus \startsetups simpleslides:font:Chancery \starttypescript[serif] [chancery] \definefontsynonym [ChanceryRoman] [file:texgyrechorus-mediumitalic] [features=default] \stoptypescript \starttypescript [serif] [chancery] \definefontsynonym [Serif] [ChanceryRoman] [features=default] \definefontsynonym [SerifItalic] [Serif] \definefontsynonym [SerifBold] [Serif] \definefontsynonym [SerifBoldItalic] [Serif] \definefontsynonym [SerifCaps] [Serif] \stoptypescript \starttypescript [chancery] \definetypeface [chancery] [rm] [serif] [chancery] [default] \stoptypescript \usetypescript[chancery] \setupbodyfont[chancery,\NormalSize] \stopsetups \startsetups simpleslides:font:Gothic \starttypescript[gothic] \definetypeface [gothic] [rm] [serif] [schola] [default] \definetypeface [gothic] [ss] [sans] [adventor] [default] \definetypeface [gothic] [tt] [mono] [modern] [default] [encoding=\defaultencoding,rscale=1.075] \definetypeface [gothic] [mm] [math] [palatino] [default] \stoptypescript \usetypescript[gothic] \setupbodyfont[gothic,ss,\NormalSize] \stopsetups \startsetups simpleslides:font:Helvetica \usetypescript[postscript] \setupbodyfont[postscript,ss,\NormalSize] \stopsetups %AM: Was Pagella \startsetups simpleslides:font:Palatino \usetypescript[palatino] \setupbodyfont[palatino,\NormalSize] \stopsetups \startsetups simpleslides:font:Schoolbook \starttypescript[schoolbook] \definetypeface [schoolbook] [rm] [serif] [schola] [default] \definetypeface [schoolbook] [ss] [sans] [adventor] [default] \definetypeface [schoolbook] [tt] [mono] [modern] [default] [rscale=1.075] \definetypeface [schoolbook] [mm] [math] [pagella] [default] \stoptypescript \usetypescript[schoolbook] \setupbodyfont[schoolbook,\NormalSize] \stopsetups \startsetups simpleslides:font:Times \usetypescript[postscript] \setupbodyfont[postscript,\NormalSize] \stopsetups \startsetups simpleslides:font:Plex \setupbodyfont[plex,\NormalSize] \stopsetups \startsetups simpleslides:font:PlexSans \setupbodyfont[plex,ss,\NormalSize] \stopsetups \doifsetupselse{simpleslides:font:\moduleparameter{simpleslides}{font}} {\setups{simpleslides:font:\moduleparameter{simpleslides}{font}}} {\setups{simpleslides:font:LatinModern}% \writestatus{simpleslides}{There is no setup for "font=\moduleparameter{simpleslides}{font}". Latin Modern Sans will be used as a fallback}} \protect \stopmodule context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-FuzzyFrame.tex0000644000175000017500000001642014264357620027755 0ustar hillehille%D \module %D [ file=simpleslides-s-SideToc, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- SideToc style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2010 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{SideToc} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading Fuzzy Frame style} \startmodule[simpleslides-s-FuzzyFrame] \unprotect %D We create different layouts for the title page, horizontal, and vertical %D slides. \setuplayout [simpleslides:layout:vertical] [leftmargin=0cm, rightmargin=0cm, header=0.1cm, headerdistance=1.7cm, header=0cm, headerdistance=0cm, footer=0cm, topspace=1cm, backspace=1cm, bottomspace=0cm, bottom=0pt, location=middle] \setuplayout [simpleslides:layout:horizontal] [width=fit, leftmargin=0cm, rightmargin=0cm, height=fit, header=0.1cm, headerdistance=1.7cm, footer=0cm, topspace=1cm, backspace=1cm, bottomspace=0cm, bottom=0pt, location=middle] \setuplayout [simpleslides:layout:title] [width=fit, leftmargin=0cm, rightmargin=0cm, height=fit, header=0cm, headerdistance=0cm, footer=0cm, topspace=1cm, backspace=1cm, bottomspace=0cm, bottom=0pt, location=middle] \setupcombinations[distance=0.75cm] %D This is basically the same as the FuzzyTopic style, minus the "Topic" list; %D I just wanted something with a randomized border and took that style as %D template. %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} \setuplayer [simpleslides:layer:slidetitle] [x=1cm,y=0mm] %D We define our color scheme \definecolor [simpleslides:contrastcolor] [r=0.23,g=0.31,b=0.59] \definecolor [simpleslides:backgroundcolor] [s=0.9] \definecolor [simpleslides:altcontrastcolor] [s=0.95] \definecolor [simpleslides:textcolor] [s=0] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D We use \METAPOST to draw the background. \startuseMPgraphic{simpleslides:MP:title} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; for i=1 upto 20 : draw Page enlarged -5pt randomized 15pt withcolor \MPcolor{simpleslides:contrastcolor} ; endfor ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:horizontal} StartPage ; pickup pencircle scaled .5pt ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; for i=1 upto 20 : draw Page enlarged -5pt randomized 15pt withcolor \MPcolor{simpleslides:contrastcolor} ; endfor ; z[1] = ulcorner Page shifted (1cm, -2.2cm) ; z[2] = urcorner Page shifted (-1cm, -2.2cm) ; path sep ; sep = z[1] -- z[2] ; for i=1 upto 20 : draw sep randomized 15pt withcolor \MPcolor{simpleslides:contrastcolor} ; endfor ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:vertical} StartPage ; pickup pencircle scaled .5pt ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; for i=1 upto 20 : draw Page enlarged -5pt randomized 15pt withcolor \MPcolor{simpleslides:contrastcolor} ; endfor ; z[1] = 1/2[ulcorner Page, urcorner Page] shifted (0, -8mm) ; z[2] = 1/2[llcorner Page, lrcorner Page] shifted (0, 15mm) ; path sep ; sep = z[1] -- z[2] ; for i=1 upto 20 : draw sep randomized 15pt withcolor \MPcolor{simpleslides:contrastcolor} ; endfor ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:ornament2} StartPage ; save d, s, r ; numeric d, s, r ; d = 4mm ; s = 0.33 * PaperWidth ; z[1] = (0,0) shifted (s, 1.5*d) ; z[2] = z[1] shifted (0, d) ; save p ; path p[] ; p[1] = z[1] -- z[2] ; pickup pencircle scaled 0.5pt ; r = 150*(RealPageNumber/NOfPages) ; z[3] = z[1] shifted (r, -4pt) ; for i=1 upto 150 : draw p[1] shifted (i*s/150, 0) randomized 2pt withcolor (if i < r : \MPcolor{simpleslides:contrastcolor} else : \MPcolor{simpleslides:altcontrastcolor} fi) ; endfor ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save v, s, l, r ; numeric v, s, l, r ; save p ; path p ; v = 0.8cm ; s = 0.33*PaperWidth ; z[1] = (0,0) shifted (s,v) ; z[2] = (PaperWidth,0) shifted (-s,v) ; l = arclength (z[1] --z[2]) ; r = (l*RealPageNumber/NOfPages) ; z[3] = z[1] shifted (-5mm, -3mm) ; z[4] = z[1] shifted (-5mm, 3mm) ; if RealPageNumber = NOfPages : z[5] = z[1] shifted (r+5mm,-3mm) ; z[6] = z[1] shifted (r+5mm,3mm) ; else: z[5] = z[1] shifted (r,-3mm) ; z[6] = z[1] shifted (r,3mm) ; fi ; pickup pencircle scaled 3pt ; p = z[1] -- z[2] ; pickup pencircle scaled .5pt ; for i=1 upto 15 : draw p randomized 12pt withcolor \MPcolor{simpleslides:altcontrastcolor} ; endfor ; picture old ; old := currentpicture ; clip old to z[3] -- z[4] -- z[6] -- z[5] -- cycle ; draw old withcolor \MPcolor{simpleslides:contrastcolor} ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:title}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament2}] %D We want the title to placed in color. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor={simpleslides:contrastcolor}, \c!align=\v!middle, \c!before=\vfill, \c!after=\vfill, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=simpleslides:contrastcolor, \c!title\c!align=\v!middle, \c!author\c!style=, \c!author\c!color={simpleslides:contrastcolor}, \c!author\c!align=\v!middle, \c!date\c!style=, \c!date\c!color={simpleslides:contrastcolor}, \c!date\c!align=\v!middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] %D We want the slide title on the top \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!height=2.5cm, \c!color=black] %D The symbol for the first level of itemizations. \startuseMPgraphic{simpleslides:itemize:square} save p ; path p[] ; save d ; numeric d ; d := 4mm ; p[1] := unitsquare xyscaled(d,d) ; p[2] := ulcorner p[1] -- llcorner p[1] ; pickup pencircle scaled (d/100) ; for i=1 upto 15 : draw p[2] shifted (i*d/15, 0) randomized (d/12.5) withcolor \MPcolor{simpleslides:itemize:color} ; endfor ; \stopuseMPgraphic \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color=simpleslides:itemize:color] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-SideSquares.tex0000644000175000017500000001055114264357620030102 0ustar hillehille%D \module %D [ file=simpleslides-s-SideSquares, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module SideSquares, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{SideSquares} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading SideSquares style} \startmodule[simpleslides-s-SideSquares] \unprotect %D First, we define the page layout. \setuplayout [width=fit, height=middle, margin=1.5cm, height=fit, leftmargindistance=.4cm, rightmargindistance=0cm, header=1.5cm, footer=0cm, topspace=1cm, backspace=2.5cm, cutspace=1.5cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=15mm] \setuplayout [simpleslides:layout:vertical] [header=0mm] \setuplayout [simpleslides:layout:title] [header=0mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.5\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.5\textwidth} \setuplayer [simpleslides:layer:slidetitle] [x=25mm, y=2mm] %D We define our color scheme: \definecolor[simpleslides:contrastcolor] [r=0,g=0,b=.92] \definecolor[simpleslides:altcontrastcolor] [r=0,g=0,b=.4] \definecolor[simpleslides:backgroundcolor] [s=.98] \definecolor[simpleslides:itemize:color] [r=0,g=0,b=.92] %D We let Metapost calculate the background: \startuseMPgraphic{simpleslides:MP:horizontal} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; z1 = ulcorner Page ; z5 = llcorner Page ; path q ; q = z1 -- z5 ; t := arclength (q) ; u := t/15 ; if NOfPages = 0 : v := RealPageNumber ; else : v := (RealPageNumber/NOfPages) ; fi ; z4 = (x1+1cm, y1-1cm) ; z3 = (x4, y1) ; z2 = (x1, y4) ; path m[] ; m[1] = z1 -- z2 -- z4 -- z3 -- cycle ; m[2] = m[1] shifted (0, -2*u) ; m[3] = m[1] shifted (0, -4*u) ; m[4] = m[1] shifted (0, -6*u) ; m[5] = m[1] shifted (0, -8*u) ; m[6] = m[1] shifted (0, -10*u) ; m[7] = m[1] shifted (0, -12*u) ; m[8] = m[1] shifted (0, (-14*u-0.5mm)) ; for i=1 upto 8: fill m[i] withcolor\MPcolor{simpleslides:contrastcolor} ; endfor; if RealPageNumber=1: fill m[1] withcolor \MPcolor{simpleslides:altcontrastcolor} ; elseif (v>.001) and (v<.167) : fill m[2] withcolor \MPcolor{simpleslides:altcontrastcolor} ; elseif (v>.166) and (v<.334): fill m[3] withcolor \MPcolor{simpleslides:altcontrastcolor} ; elseif (v>.333) and (v<.501): fill m[4] withcolor \MPcolor{simpleslides:altcontrastcolor} ; elseif (v>.5) and (v<.667): fill m[5] withcolor \MPcolor{simpleslides:altcontrastcolor} ; elseif (v>.666) and (v<.834): fill m[6] withcolor \MPcolor{simpleslides:altcontrastcolor} ; elseif (v>.833) and (v<1): fill m[7] withcolor \MPcolor{simpleslides:altcontrastcolor} ; elseif v=1: fill m[8] withcolor \MPcolor{simpleslides:altcontrastcolor} ; fi ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:horizontal}] %D We want the title to placed in color. \setupTitle[\c!headcolor={simpleslides:contrastcolor}] %D This sets up the SlideTitle: \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!align=\v!center, \c!height=2.5cm, \c!color=simpleslides:contrastcolor] %D We set up the titlepage: \setupTitle [\c!title\c!color={simpleslides:contrastcolor}, \c!author\c!color={simpleslides:contrastcolor}, \c!date\c!color={simpleslides:contrastcolor}] \setupcombinations[distance=0cm] %D The symbol for the first level of itemizations. \definesymbol[1][$\square$] \setupitemize[1][inmargin][color=simpleslides:itemize:color] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-HorizontalStripes.tex0000644000175000017500000001304714264357620031360 0ustar hillehille%D \module %D [ file=simpleslides-s-HorizontalStripes, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module HorizontalStripes, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \filename{HorizontalStripes} style for the %D presentation module. It is loaded at runtime. The look of this style was %D inspired by the \quotation{Copenhagen} theme of the \LaTeX\ {\tt beamer} %D package. \writestatus{simpleslides}{loading HorizontalStripes style} \startmodule[simpleslides-s-HorizontalStripes] \unprotect %D The page layout: \setuplayout [width=fit, margin=0cm, height=fit, header=2.73cm, footer=0.9cm, topspace=0cm, backspace=1cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=2.73cm] \setuplayout [simpleslides:layout:vertical] [header=0.75cm] \setuplayout [simpleslides:layout:title] [header=0cm] %D Some strings are configurable. \setuplabeltext [\s!en] [of=of] \setuplabeltext [\s!de] [of=von] %D In this style, we don't want the ornament background for vertical slides: \startsetups simpleslides:background:vertical \setuplayout[simpleslides:layout:vertical] \setupbackgrounds[\v!page] [background={simpleslides:background:vertical}] \stopsetups %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [width=\paperwidth, height=\paperheight, x=10mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} %D This module has three color schemes, blue, green and red. \startsetups simpleslides:setups:blue \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:framecolor] [r=.58,g=.58,b=.82] \definecolor [simpleslides:contrastcolor] [r=.2,g=.2,b=.73] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] \stopsetups \startsetups simpleslides:setups:red \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:framecolor] [r=.82,g=.58,b=.58] \definecolor [simpleslides:contrastcolor] [r=.73,g=.2,b=.2] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] \stopsetups \startsetups simpleslides:setups:green \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:framecolor] [r=.58,g=.82,b=.58] \definecolor [simpleslides:contrastcolor] [r=.2,g=.73,b=.2] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] \stopsetups %D Now we choose the scheme that the user asked for \doifsetupselse{simpleslides:setups:\moduleparameter{simpleslides}{color}} {\setups{simpleslides:setups:\moduleparameter{simpleslides}{color}}} {\setups{simpleslides:setups:blue}} %D We let Metapost calculate the background: \startuseMPgraphic{simpleslides:MP:common} save a ; numeric a ; a = 1.5mm ; save p; path p[] ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; z1 = ulcorner Page shifted (0,-a) ; z2 = urcorner Page shifted (0,-a) ; z3 = llcorner Page shifted (0,a) ; z4 = lrcorner Page shifted (0,a) ; p[1] = ulcorner Page -- z1 -- z2 -- urcorner Page -- cycle ; p[3] = llcorner Page -- z3 -- z4 -- lrcorner Page -- cycle ; p[4] = p[3] shifted (0,.75cm) ; fill p[1] withcolor \MPcolor{simpleslides:framecolor} ; fill p[3] withcolor \MPcolor{simpleslides:framecolor} ; fill p[4] withcolor \MPcolor{simpleslides:framecolor} ; \stopuseMPgraphic \startuniqueMPgraphic{simpleslides:MP:vertical} StartPage ; \includeMPgraphic{simpleslides:MP:common} ; StopPage ; \stopuniqueMPgraphic \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; \includeMPgraphic{simpleslides:MP:common} ; p[2] = p[1] shifted (0,-2cm) ; fill p[2] withcolor \MPcolor{simpleslides:framecolor} ; StopPage ; \stopuniqueMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:vertical}] %D We define the footer \setupfooter[\c!color=simpleslides:contrastcolor, \c!style={\switchtobodyfont[10pt]}, \c!strut=\v!yes] \setupfootertexts[{\framed[\c!frame=\v!off, \c!height=0.65cm, \c!width=\textwidth] {\simpleslidestitleparameter{title} \hfill \pagenumber\ \labeltext{of} \lastpage}}] %D this sets up the title page: \setupTitle [\c!title\c!color={simpleslides:contrastcolor}, \c!author\c!color={simpleslides:contrastcolor}, \c!date\c!color={simpleslides:contrastcolor}] %D The slide title is typeset in a layer \setupSlideTitle [\c!color={simpleslides:contrastcolor}, \c!alternative=layer, \c!align=\v!center, \c!width=\textwidth, \c!height=2.2cm, \c!after=] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-default.tex0000644000175000017500000007761714264357620027316 0ustar hillehille%D \module %D [ file=simpleslides-s-default, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module simpleslides --- Default style setup, %D author=Thomas A. Schmitz \& Aditya Mahajan, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. \writestatus{simpleslides}{loading default style setup} \startmodule[simpleslides-s-default] \unprotect %D This module is the first sub-module that is loaded by %D \filename{simpleslides}. This sets up the style macros for the module. We %D choose a rather plain style as the default; separate style sub-modules %D redefine some internal macros to achieve fancier effects. %D We start with the page layout. S6 has the 3:4 ratio of a traditional computer screen. \setuppapersize[S6][S6] %D We do not want page numbers, but we sometimes want to use the page numbering %D mechanism, so we make sure pages are counted, but the numbers are not %D displayed. \setuppagenumbering[location=] %D As for the page layout: most of the numbers have been reached by %D trial and error; I have just taken what seemed to produce the best output. \setuplayout [width=middle, margin=0.6cm, height=middle, header=0.15cm, footer=1.35cm, footerdistance=0.5cm, topspace=0.5cm, backspace=1cm, location=singlesided] %D We define some other layouts which can be used to change the layout of %D specific kinds of pages. This module defines three kinds of pages: %D horizontal, vertical, and title, and we allow the possibility of changing the %D layout of all three page styles. \definelayout [simpleslides:layout:horizontal] \definelayout [simpleslides:layout:vertical] \definelayout [simpleslides:layout:title] \definelayout [simpleslides:layout:page] \setuplayout [simpleslides:layout:page] [topspace=0cm, header=0cm, footer=0cm, bottomspace=0cm, backspace=0cm, cutspace=0cm, width=middle, height=middle] %D We want colored presentations \setupcolors[state=start] %D And colored typesetting for \TEX\ code. % HR: outdated! \definetype[typeTEX][option=color] %D Presentations have relatively dense lines, we do not care about underfull %D lines, but allow emergency stretch. \setuptolerance[\v!verytolerant,\v!stretch] %D We use combinations for placing vertical pictures and text side by side, and %D we want a distance of 3em between both. \setupcombinations[distance=0.9cm] %D Next we define some dimensions that are used as nominal values by other %D macros and the user. \define\NormalHeight {.830\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {.830\textheight} \define\PictureFrameWidth {.476\textwidth} %D As we said before, the presentation consists of three kinds of pages: title, %D horizontal, and vertical. Each page can have a different background; we can %D switch to a specific background using %D \starttyping %D \setupPageBackground[horizontal] %D \stoptyping \def\setupPageBackground% {\dosingleargument\dosetupPageBackground} \def\dosetupPageBackground[#1]% {\setups{simpleslides:background:#1}} %D The backgrounds in all the styles are very similar. So, we define overlays to %D capture the different features of the backgrounds, and then simply define the %D overlays in different styles. \defineoverlay[simpleslides:background:horizontal] \defineoverlay[simpleslides:background:title] \defineoverlay[simpleslides:background:vertical] \defineoverlay[simpleslides:background:ornament] \defineoverlay[simpleslides:background:page] \defineoverlay[simpleslides:background:highlight] [\useMPgraphic{simpleslides:MP:highlight}]% \definelayer[simpleslides:layer:slidetitle] [\c!width=\paperwidth, \c!height=\paperheight] \definelayer[simpleslides:layer:page] [\c!width=\paperwidth, \c!height=\paperheight] \definelayer[simpleslides:layer:extras] [\c!width=\paperwidth, \c!height=\paperheight] \definelayer[simpleslides:layer:highlight] [\c!width=\paperwidth, \c!height=\paperheight] %D A generic frame which is used for titles and other commands \defineframed[simpleslides:framed] [\c!frame=\v!off,\c!offset=\zeropoint, \c!top=\vss,\c!bottom=\vss] \defineframed[simpleslides:framed:page] [\c!frame=\v!off,\c!offset=3mm, \c!top=\vss,\c!bottom=\vss, \c!width=fit, \c!corner=\v!round, \c!background=\v!color, \c!backgroundcolor=simpleslides:backgroundcolor] %D Now we define setups for specific backgrounds \startsetups simpleslides:background:title \setuplayout[simpleslides:layout:title] \setupbackgrounds[\v!page] [background={simpleslides:background:title, foreground, simpleslides:layer:highlight}] \stopsetups \startsetups simpleslides:background:horizontal \setuplayout[simpleslides:layout:horizontal] \setupbackgrounds[\v!page] [background={simpleslides:background:horizontal, simpleslides:background:ornament, simpleslides:layer:extras, simpleslides:layer:slidetitle, foreground, simpleslides:layer:highlight}] \stopsetups \startsetups simpleslides:background:vertical \setuplayout[simpleslides:layout:vertical] \setupbackgrounds[\v!page] [background={simpleslides:background:vertical, simpleslides:layer:extras, simpleslides:background:ornament}] \stopsetups \startsetups simpleslides:background:page \page \setuplayout[simpleslides:layout:page] \setupbackgrounds[\v!page] [background={simpleslides:background:page, foreground, %simpleslides:background:ornament, simpleslides:layer:extras, simpleslides:layer:page}] \stopsetups %D We also define some fallbacks for presentation backgrounds. \startsetups simpleslides:background:default \setups{simpleslides:background:horizontal} \stopsetups \startsetups simpleslides:background:none \setupbackgrounds[\v!page] [background=] \stopsetups \startsetups simpleslides:background:empty \message{I don't know the name of the background you have provided.} \setups{simpleslides:background:horizontal} \stopsetups %D Now we move on to specific components of the presentation. The first thing in %D any presentation is the title page, so we start with that. We define a macro %D that stores values for the title, author and date of the presentation. These %D are input as %D \starttyping %D \setupTitle[title={How to write a sub module for simpleslides}, %D author={Aditya Mahajan}, %D date={\currentdate[d=10,m=7,y=2008]}] %D \stoptyping %D This setup command can also setup the color and style for the title, author, %D and date. \enabletrackers[interfaces.namespaces] \definenamespace [simpleslidestitle] [ \c!type=module, \c!name=simpleslidestitle, setup=list, \c!style=\v!yes, \s!parent=simpleslidetitle, ] \let\setupTitle\setupsimpleslidestitle \def\simpleslidestitlecomponent#1% {\simpleslidestitleparameter{\c!before#1} \startalignment[\simpleslidestitleparameter{#1\c!align}] \usesimpleslidestitlestyleandcolor{#1\c!style}{#1\c!color}% \simpleslidestitleparameter{#1}% \stopalignment \simpleslidestitleparameter{\c!after#1}} %D \macros{placeTitle} %D %D The macro \tex{placeTitle} produces a title page with the author, the %D title of the presentation, and the date. Using it is not mandatory. \define\placeTitle {\page \setupPageBackground[title] \null \simpleslidestitleparameter\c!before \startalignment[\simpleslidestitleparameter\c!align] \usesimpleslidestitlestyleandcolor\c!style\c!color \simpleslidestitlecomponent\c!title \simpleslidestitlecomponent\c!author \simpleslidestitlecomponent\c!date \stopalignment \simpleslidestitleparameter\c!after \page} %D If a sub-module wants to display more information about the presentation %D (e.g., institute of the author), it can be simply input as %D \starttyping %D \setupTitle[institute={Some University}] %D \stoptyping %D This parameter can be accessed inside the module as %D \type{\simpleslidestitleparameter{institute}}, and the module writer %D can redefine \type{\placeTitle} to display the institute at the appropriate %D place. %D Now we setup some default values for the title page. Other modules will %D redefine these values later. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!style=, \c!color=red, \c!align=\v!middle, \c!before=\vfill, \c!after=\vfill, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=, \c!title\c!align=\simpleslidestitleparameter\c!align, \c!author\c!style=,%{\switchtobodyfont[\SlideTitleSize]}, \c!author\c!color=, \c!author\c!align=\simpleslidestitleparameter\c!align, \c!date\c!style=,%{\switchtobodyfont[\SlideTitleSize]}, \c!date\c!color=, \c!date\c!align=\simpleslidestitleparameter\c!align, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[2*line]}, \c!after\c!author={\blank[3*line]}, \c!after\c!date=] %D \macros{SlideTitle} %D \tex{SlideTitle}: well, the name says it all. The %D argument is typeset as the title, but the implementation and the result %D (alignment, size, distance to text, color etc.) vary from module to module, %D so this macro is defined in each of the submodules. \definenamespace [SlideTitle] [ \c!type=module, \c!name=SlideTitle, \c!command=\v!yes, setup=list, \c!style=\v!yes, \s!parent=SlideTitle, ] \def\defineSlideTitleAlternative {\dodoubleargument\dodefineSlideTitleAlternative} \def\dodefineSlideTitleAlternative[#1][#2]% #3 {\setvalue{simpleslides:slidetitle:#1}} \defineSlideTitleAlternative[\v!normal]#1% {\page[\SlideTitleparameter\c!page]% \SlideTitleparameter\c!before \startalignment[\SlideTitleparameter\c!align] \useSlideTitlestyleandcolor\c!style\c!color #1% \stopalignment \SlideTitleparameter\c!after} %D The layered alternative is adapted from a sample document that Brooks Moses %D published on the wiki: \defineSlideTitleAlternative[layer]#1% {\page[\SlideTitleparameter\c!page]% \SlideTitleparameter\c!before \setlayer[simpleslides:layer:slidetitle]% {\getvalue{simpleslides:framed} [\c!width=\SlideTitleparameter\c!width, \c!height=\SlideTitleparameter\c!height, \c!align=\SlideTitleparameter\c!align] {\useSlideTitlestyleandcolor\c!style\c!color #1}}% \SlideTitleparameter\c!after} \defineSlideTitleAlternative[page]#1% {\page[\SlideTitleparameter\c!page]% %\SlideTitleparameter\c!before \setlayer[simpleslides:layer:page]% [\c!preset=\SlideTitleparameter\c!preset, \c!hoffset=\SlideTitleparameter\c!hoffset, \c!voffset=\SlideTitleparameter\c!voffset] {\getvalue{simpleslides:framed:page} [\c!align=\SlideTitleparameter\c!align] {\let\\\crlf \useSlideTitlestyleandcolor\c!style\c!color #1}}} %\SlideTitleparameter\c!after} %D Now the main user command \def\SlideTitle{\dowithpargument\doSlideTitle} \def\doSlideTitle% #1 {\getvalue{simpleslides:slidetitle:\SlideTitleparameter\c!alternative}} \setupSlideTitle [\c!page=\v!yes, \c!style={\switchtobodyfont[\SlideTitleSize]}, \c!before={\setupPageBackground[horizontal]}, \c!after={\blank[0.75cm]}, \c!width=\textwidth, \c!height=2\lineheight, \c!align=\v!middle, \c!alternative=\v!normal] %AM: Clean this up later. %D \macros{IncludePicture} %D The macros for placing pictures. This section has been entirely rewritten in %D order to provide a cleaner user interface and to make the code easier to %D maintain. We now have just one macro, \tex{IncludePicture}, which %D automatically inserts page breaks and adjusts the background and margins, if %D necessary. This macro takes four arguments: %D \setup{IncludePicture} %D The first argument decides whether the picture will be place in a horizontal %D or vertical arrangement; the second argument is the filename of the picture %D you want to include; the third argument does some setup, and the fourth %D argument (in braces) is the text accompanying the picture, which will be %D placed either in a \tex{SlideTitle} environment (for horizontal pictures) or %D opposite the picture, centered horizontally and vertically, for vertical %D pictures. %D The user macro takes three arguments in brackets + an additional argument %D for typeset content. So we define it in two steps: \def\setupPicture {\dosingleargument\dosetupPicture} \def\dosetupPicture[#1]% {\setvariables[simpleslides:picture] [highlight=\v!no, steps=5, opacity=0.4, \c!x\c!scale=couple, \c!y\c!scale=couple, \c!width=,\c!height=,#1]} \setupPicture [highlight=\v!no,%yes|no|default=no \c!alternative=\v!none,%none|circle|arrow|focus|default=none \c!grid\c!color=darkgreen, \c!grid=\v!no, \c!sub\c!grid=\v!no, steps=5,%controls the number of subdivisions of the subgrid \c!rulethickness={OverlayWidth/100},%for circle and arrow \c!color=orange,% should this be called highlightcolor? \c!x=5, \c!y=5, \c!x\c!scale=couple, \c!y\c!scale=couple, length=2cm, direction=0, opacity=0.4, shadow=\v!no, shadow\c!color=gray, verticalbackground=none, verticalbackgroundcolor=simpleslides:backgroundcolor, verticalforegroundcolor=simpleslides:textcolor, ] \def\simpleslidesPictureParameter%#1 {\getvariable{simpleslides:picture}} \newconditional\simpleslidesHighlight \setfalse\simpleslidesHighlight \newconditional\simpleslidesGrid \setfalse\simpleslidesGrid \newconditional\simpleslidesSubGrid \setfalse\simpleslidesSubGrid \chardef\simpleslidesHighlightAlternative\zerocount %0=none, 1=circle, %2=arrow, 3=focus \chardef\simpleslidesShadow\zerocount %0=no, 1=topleft, 2=topright, %3=bottomright, 4=bottomleft \def\IncludePicture% {\dotripleargument\doIncludePicture} \def\doIncludePicture[#1][#2][#3]#4% dir graphic options text {\begingroup % Else the settings of \setupPicture are global \setupPicture[#3]% \processaction [\simpleslidesPictureParameter{highlight}] [ \v!yes=>\settrue\simpleslidesHighlight, \v!no=>\setfalse\simpleslidesHighlight, \v!default=>\setfalse\simpleslidesHighlight, \v!unknown=>\setfalse\simpleslidesHighlight] % \processaction [\simpleslidesPictureParameter\c!grid] [ \v!yes=>\settrue\simpleslidesGrid, \v!no=>\setfalse\simpleslidesGrid, \v!default=>\setfalse\simpleslidesGrid, \v!unknown=>\setfalse\simpleslidesGrid] % \processaction [\simpleslidesPictureParameter{\c!sub\c!grid}] [ \v!yes=>\settrue\simpleslidesSubGrid, \v!no=>\setfalse\simpleslidesSubGrid, \v!default=>\setfalse\simpleslidesSubGrid, \v!unknown=>\setfalse\simpleslidesSubGrid] % \processaction [\simpleslidesPictureParameter{shadow}] [ \v!no=>\chardef\simpleslidesShadow\zerocount, \v!yes=>\chardef\simpleslidesShadow\plusthree, \v!top\v!left=>\chardef\simpleslidesShadow\plusone, \v!top\v!right=>\chardef\simpleslidesShadow\plustwo, \v!bottom\v!right=>\chardef\simpleslidesShadow\plusthree, \v!bottom\v!left=>\chardef\simpleslidesShadow\plusfour, \v!default=>\chardef\simpleslidesShadow\zerocount, \v!unknown=>\chardef\simpleslidesShadow\zerocount] % \edef\simpleslidesGridColor{\simpleslidesPictureParameter{\c!grid\c!color}}% \doifnothing{\simpleslidesGridColor}{\edef\simpleslidesGridColor{green}}% % \processaction [\simpleslidesPictureParameter\c!alternative] [ circle=>\chardef\simpleslidesHighlightAlternative\plusone \simpleslidesSetEllipseDimensions, arrow=>\chardef\simpleslidesHighlightAlternative\plustwo, focus=>\chardef\simpleslidesHighlightAlternative\plusthree \simpleslidesSetEllipseDimensions, \v!default=>\chardef\simpleslidesHighlightAlternative\zerocount, \v!unknown=>\chardef\simpleslidesHighlightAlternative\zerocount] % \processaction[#1] [\v!horizontal=>{\doIncludePictureHorizontal[#2]{#4}}, \v!vertical=>{\doIncludePictureVertical[#2]{#4}}, \v!page=>{\doIncludePicturePage[#2]{#4}}, \v!default=>{\doIncludePictureHorizontal[#2]{#4}}, \v!unknown=>{\doIncludePictureHorizontal[#2]{#4}}% \message{Keywords for positioning pictures are "horizontal" or "vertical." Please specify one of them!}] \endgroup} %D We have to set the width or height for vertical and horizontal pictures %D separately. We test if the user has supplied values for the "width" and %D "height" key. If they have been set, these are used for the width/height of %D the picture. If not, we determine the ratio of the picture and let it fill %D the available space. Small pictures will be enlarged, big pictures will be %D fit. This code was suggested by Wolfgang Schuster on the mailing list. \def\setPictureDimensionsTo#1#2#3% graphic height width {\doifelsenothing{\simpleslidesPictureParameter\c!width} {\doifelsenothing{\simpleslidesPictureParameter\c!height} {\setbox\scratchbox\hbox{\externalfigure[#1] [\c!page=\simpleslidesPictureParameter\c!page]} % Courtsey Wolfgang Schuster \ifdim\dimexpr#3*100/\wd\scratchbox\relax < \dimexpr#2*100/\ht\scratchbox\relax % \setvalue{simpleslides:picture:width}{#3}% \setvalue{simpleslides:picture:height}{}% \else \setvalue{simpleslides:picture:width}{}% \setvalue{simpleslides:picture:height}{#2}% \fi} {\setvalue{simpleslides:picture:width}{}% \setvalue{simpleslides:picture:height}{\simpleslidesPictureParameter\c!height}}} {\setvalue{simpleslides:picture:width}{\simpleslidesPictureParameter\c!width} \setvalue{simpleslides:picture:height}{}}}% not \simpleslidesPictureParameter\c!height %D This macro places the picture centered both vertically and horizontally. \def\doplacePictureFrame[#1]#2% {\framed[\c!frame=\v!off, \c!framecolor=green, \c!align=\v!middle, \c!top=\vss, \c!bottom=\vss, \c!strut=\v!no, \c!offset=\zeropoint,#1] {\framed[\c!frame=\v!off, \c!framecolor=red, \c!strut=\v!no, \c!offset=\zeropoint, \c!width=\v!fit, \c!height=\v!fit, \c!background={foreground,simpleslides:background:highlight}] {#2}}} %D This macro places the picture in horizontal mode. \def\doIncludePictureHorizontal[#1]#2% graphic text {\setPictureDimensionsTo{#1}\PictureFrameHeight\textwidth \SlideTitle{#2}% \doplacePictureFrame [\c!width=\textwidth, \c!height=\PictureFrameHeight] {\externalfigure[#1] [\c!height=\getvalue{simpleslides:picture:height}, \c!width=\getvalue{simpleslides:picture:width}, \c!page=\simpleslidesPictureParameter\c!page]}% \page}% Otherwise last page is not correct in \MKII. %D This macro places the picture in vertical mode. \def\doIncludePictureVertical[#1]#2% graphic text {\page \setPictureDimensionsTo{#1}\PictureFrameHeight\PictureFrameWidth \setupPageBackground[vertical] \startcombination[2] {\doplacePictureFrame [\c!height=\textheight, \c!width=\PictureFrameWidth] {\externalfigure[#1] [\c!height=\getvalue{simpleslides:picture:height}, \c!width=\getvalue{simpleslides:picture:width}, \c!page=\simpleslidesPictureParameter\c!page]}}{} {\framed[\c!frame=\v!off, \c!framecolor=blue, \c!height=\textheight, \c!width=\PictureFrameWidth, background=\simpleslidesPictureParameter{verticalbackground}, backgroundcolor=\simpleslidesPictureParameter{verticalbackgroundcolor}, foregroundcolor=\simpleslidesPictureParameter{verticalforegroundcolor}, \c!top=\vss, \c!bottom=\vss, \c!align=\v!middle, \c!strut=\v!no]{#2}}{} \stopcombination \page}% Otherwise last page is not correct in \MKII. %D This macro places the picture in full page mode \def\doIncludePicturePage[#1]#2% graphic text {%\setPictureDimensionsTo{#1}{0.95\paperheight}{0.95\paperwidth} \getvalue{simpleslides:slidetitle:page}{#2}% \setupPageBackground[page]% \doplacePictureFrame [\c!width=\paperwidth, \c!height=\paperheight] {\externalfigure[#1] [\c!height=\paperheight, \c!width=\paperwidth, \c!page=\simpleslidesPictureParameter\c!page]}% \page}% Otherwise last page is not correct in \MKII. %D Now, we define the main \METAPOST\ graphic to highlight the picture. It first %D checks if the user has asked for a grid, and if so, draws a grid and a %D subgrid. Then it checks which alternative (arrow, circle, focus) is requested %D and draws that. Notice that we have intermixed \TEX\ and \METAPOST, %D exploiting the power of the MP-TEX interaction provided by \CONTEXT. \startuseMPgraphic{simpleslides:MP:highlight} \ifconditional \simpleslidesHighlight \ifconditional \simpleslidesGrid \includeMPgraphic{simpleslides:MP:highlight:grid} \ifconditional \simpleslidesSubGrid \includeMPgraphic{simpleslides:MP:highlight:subgrid}% \fi \fi \ifcase \simpleslidesHighlightAlternative \or \includeMPgraphic{simpleslides:MP:highligh:circle} \or \includeMPgraphic{simpleslides:MP:highligh:arrow} \or \includeMPgraphic{simpleslides:MP:highligh:focus} \fi \fi setbounds currentpicture to OverlayBox ; \stopuseMPgraphic %D Metapost graphic to draw a 10x10 grid on a picture. The width of the grid %D line is 1/250th of the width of the picture, so smaller picture have smaller %D grid lines. \startuseMPgraphic{simpleslides:MP:highlight:grid} save xaxis, yaxis ; path xaxis, yaxis ; xaxis := leftboundary OverlayBox ; yaxis := bottomboundary OverlayBox ; for i = 0 upto 10 : draw xaxis shifted (i/10*OverlayWidth, 0) withpen pencircle scaled (OverlayWidth/250) withcolor \MPcolor\simpleslidesGridColor ; draw yaxis shifted (0,i/10*OverlayHeight) withpen pencircle scaled (OverlayWidth/250) withcolor \MPcolor\simpleslidesGridColor ; label.bot(textext("\switchtobodyfont[9pt]\startcolor[simpleslides:textcolor]" & decimal i & "\stopcolor"), (i/10*OverlayWidth, 0)) ; label.top(textext("\switchtobodyfont[9pt]\startcolor[simpleslides:textcolor]" & decimal i & "\stopcolor"), (i/10*OverlayWidth, OverlayHeight)) ; label.lft(textext("\switchtobodyfont[9pt]\startcolor[simpleslides:textcolor]" & decimal i & "\stopcolor"), (0, i/10*OverlayHeight)) ; label.rt(textext("\switchtobodyfont[9pt]\startcolor[simpleslides:textcolor]" & decimal i & "\stopcolor"), (OverlayWidth, i/10*OverlayHeight)) ; endfor ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic %D The Metapost graphic draws a fine grid on the picture. The number of grid %D lines is controlled by \type{steps} parameter of \type{\setupPicture}. Each %D grid box of the 10x10 grid drawn above is subdivided into \type{steps} number %D of finer lines. \startuseMPgraphic{simpleslides:MP:highlight:subgrid} save xaxis, yaxis ; path xaxis, yaxis ; xaxis := leftboundary OverlayBox ; yaxis := bottomboundary OverlayBox ; save stepSize ; numeric stepSize ; stepSize := \simpleslidesPictureParameter{steps} + epsilon ; for i = 0 step 10/stepSize until 100 : if i mod 10 <> 0 : draw xaxis shifted (i/100*OverlayWidth, 0) withpen pencircle scaled (OverlayWidth/500) withcolor \MPcolor\simpleslidesGridColor ; draw yaxis shifted (0,i/100*OverlayHeight) withpen pencircle scaled (OverlayWidth/500) withcolor \MPcolor\simpleslidesGridColor ; fi endfor ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic %D This is a helper macro to get the dimensions for the circle. Taking care of %D expansion inside Metapost is tricky, so we define an external macro to set %D the x and y scales correctly. This macro does not check if both x and y are %D equal to 'couple'. We should probably catch that error inside Metapost, and %D give an error message on the terminal if that is the case. \def\simpleslidesSetEllipseDimensions% {\edef\simpleslidesCurrentXscale{\simpleslidesPictureParameter{\c!x\c!scale}} \edef\simpleslidesCurrentYscale{\simpleslidesPictureParameter{\c!y\c!scale}} \doifelse{\simpleslidesCurrentXscale}{couple} {\doifelse{\simpleslidesCurrentYscale}{couple} {\edef\simpleslidesCurrentXscale{1} \edef\simpleslidesCurrentYscale{1}} {\dosimpleslidesSetEllipseDimensions}} {\dosimpleslidesSetEllipseDimensions}} \def\dosimpleslidesSetEllipseDimensions% {\processaction [\simpleslidesCurrentXscale] [ couple=>\edef\simpleslidesCurrentXscale{\simpleslidesCurrentYscale*OverlayHeight/5}, \v!unknown=>\edef\simpleslidesCurrentXscale{\simpleslidesCurrentXscale*OverlayWidth/5}] \processaction [\simpleslidesCurrentYscale] [ couple=>\edef\simpleslidesCurrentYscale{\simpleslidesCurrentXscale}, % no *OverlayWidth/5, it has already been scaled \v!unknown=>\edef\simpleslidesCurrentYscale{\simpleslidesCurrentYscale*OverlayHeight/5}]} %D Metapost graphic to draw a circle. The circle is centered at (x,y) with a %D x-radius equal to \type{xscale} and y-radius equal to \type{yscale}. If %D either \type{xscale} or \type{yscale} equals \type{couple}, a circle is drawn %D with radius equal to the other (non-couple) scale parameter. The thickness of %D the circle is \type{rulethickness} and the color is \type{color}. The %D circle is rotated by an angle \type{direction} \startuseMPgraphic{simpleslides:MP:highligh:circle} save p; path p; p := fullcircle xyscaled % The dimensions are divided by 5 rather than 10, since the scale % measures the radius, rather than the diameter. (\simpleslidesCurrentXscale, \simpleslidesCurrentYscale) rotated (\simpleslidesPictureParameter\c!direction) shifted (\simpleslidesPictureParameter\c!x *OverlayWidth/10, \simpleslidesPictureParameter\c!y *OverlayHeight/10) ; \ifcase \simpleslidesShadow \else save shadow_direction ; pair shadow_direction ; shadow_direction =\simpleslidesPictureParameter\c!rulethickness * \ifcase \simpleslidesShadow \or (-1,1) \or (1,1) \or (1,-1) \or (-1,-1) \fi ; save shadow_thickness ; numeric shadow_thickness ; shadow_thickness := 1.5 * \simpleslidesPictureParameter\c!rulethickness ; def shadow_draw = draw enddef ; \includeMPgraphic{simpleslides:MP:highligh:shadow} \fi draw p withcolor \MPcolor{\simpleslidesPictureParameter\c!color} withpen pencircle scaled (\simpleslidesPictureParameter\c!rulethickness); \stopuseMPgraphic %D Metapost graphic to draw an arrow. The arrow's tip is at \type{(x,y)}, and it %D is \type{length} long in the direction specified by \type{direction}. The %D arrow is \type{2×rulethickness} thick (the factor of 2 is there so that the %D same default works for both circle and arrows) and is on \type{color} color. \startuseMPgraphic{simpleslides:MP:highligh:arrow} autoarrows := true ; % so that arrow heads are scaled correctly. z1 = (\simpleslidesPictureParameter\c!x *OverlayWidth/10, \simpleslidesPictureParameter\c!y *OverlayHeight/10) ; z2 = z1 + \simpleslidesPictureParameter{length} * dir(\simpleslidesPictureParameter{direction}) ; save p ; path p ; p := z2 -- z1 ; \ifcase \simpleslidesShadow \else save shadow_direction ; pair shadow_direction ; shadow_direction = 2*\simpleslidesPictureParameter\c!rulethickness * dir(%\simpleslidesPictureParameter{direction} + \ifcase \simpleslidesShadow \or 135 \or 45 \or -45 \or -135 \fi ) ; save shadow_thickness ; numeric shadow_thickness ; shadow_thickness := 2*\simpleslidesPictureParameter\c!rulethickness ; def shadow_draw = drawarrow enddef ; \includeMPgraphic{simpleslides:MP:highligh:shadow} \fi drawarrow p withcolor \MPcolor{\simpleslidesPictureParameter\c!color} withpen pencircle scaled (2*\simpleslidesPictureParameter\c!rulethickness); \stopuseMPgraphic %D Metapost graphic to focus on a particular area. The coordinates of the focus %D area are equivalent to that of \type{alternative=circle}. The "unfocussed" %D area is covered with \type{shadowcolor} made transparent by %D \type{opacity} amount. \startuseMPgraphic{simpleslides:MP:highligh:focus} save p; path p; p := fullcircle xyscaled % The dimensions are divided by 5 rather than 10, since the scale % measures the radius, rather than the diameter. (\simpleslidesCurrentXscale, \simpleslidesCurrentYscale) rotated (\simpleslidesPictureParameter\c!direction) shifted (\simpleslidesPictureParameter\c!x *OverlayWidth/10, \simpleslidesPictureParameter\c!y *OverlayHeight/10) ; fill OverlayBox -- reverse p -- cycle withcolor transparent (1, \simpleslidesPictureParameter{opacity}, \MPcolor{\simpleslidesPictureParameter{shadow\c!color}}) ; \stopuseMPgraphic %D The next Metapost graphic draws an arrow. To ensure code re-usability, we %D assume that the shape of the shadow is stored as a path \type{p}, it is %D shifted by amount \type{shadow_direction} and its thickness is %D \type{shadow_thickness}. It is the responsibility of the calling function to %D ensure that this is done. There are four options for the shadow, %D \type{topleft}, \type{topright}, \type{bottomright}, and \type{bottomleft}. %D (TODO: Keep this thickness configurable). The shadow is drawn in color %D \type{shadowcolor}. The arrow is drawn with a transparent color whose opacity %D is given by \type{opacity}. \startuseMPgraphic{simpleslides:MP:highligh:shadow} %% I hope there were a better way to do this. for i = 1 upto 20 : shadow_draw p shifted shadow_direction withcolor transparent (1, \simpleslidesPictureParameter{opacity}/10, % 0.1, \MPcolor{\simpleslidesPictureParameter{shadow\c!color}}) withpen pencircle scaled (i*shadow_thickness/20) ; endfor \stopuseMPgraphic %D This is a small square which will be used for itemizations; it will be %D placed in the margin. \startuniqueMPgraphic{simpleslides:itemize:triangle} fill (0,0) -- (0,0.4cm) -- (0.6cm,0.2cm) -- cycle withcolor \MPcolor{simpleslides:itemize:color} ; \stopuniqueMPgraphic \startuniqueMPgraphic{simpleslides:itemize:square} fill unitsquare xyscaled(0.4cm,0.4cm) withcolor \MPcolor{simpleslides:itemize:color} ; \stopuniqueMPgraphic %D Sometimes we want an image as a background of a page. For that, we use the %D following macro. You need to set a transparent image foreground color for %D this to work. TODO: This macro should be combined with \type{\SlideTitle} \def\SlideBackground#1% {\setlayer[simpleslides:layer:extras] {\externalfigure [#1] [width=\paperwidth,height=\paperheight, background={foreground,color},backgroundcolor=simpleslides:imageforegroundcolor]}} \protect \stopmodule context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Framed.tex0000644000175000017500000001360114264357620027047 0ustar hillehille%D \module %D [ file=simpleslides-s-Framed, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- Framed Style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{Framed} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading style Framed} \startmodule[simpleslides-s-Framed] \unprotect %D The page layout: \setuplayout [width=fit, margin=0.6cm, height=fit, header=2.1cm, footer=1.35cm, footerdistance=0.5cm, topspace=0.5cm, backspace=1cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=2.1cm,backspace=1cm] \setuplayout [simpleslides:layout:vertical] [header=0cm,backspace=1cm] \setuplayout [simpleslides:layout:title] [header=0cm,backspace=0.5cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=10mm,y=3mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {.975\textheight} \define\NormalWidth {.485\textwidth} \define\PictureFrameHeight {.975\textheight} \define\PictureFrameWidth {.485\textwidth} %D We define our colors: \definecolor [simpleslides:backgroundcolor] [r=.85, g=.85, b=.85] \definecolor [simpleslides:framecolor] [r=.42, g=.42, b=.7] \definecolor [simpleslides:contrastcolor] [r=0, g=0, b=.5] \definecolor [simpleslides:variantcolor] [r=0, g=0, b=1] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D We let \METAPOST\ calculate the background. This style have two options for %D ornaments, square or stripes. We define both, and then choose one depending %D on the user's choice. \startuseMPgraphic{simpleslides:MP:ornament:square} StartPage; save a,b,c,p; numeric a; a = 0.955cm ; numeric b; b = 0.52cm ; numeric c; c = 0.8cm ; path p[] ; for i=1 upto 11: p[i] = unitsquare xyscaled (a,a) shifted (b+2*(i-1)*a, c) ; fill p[i] withcolor ((i-1)/10)[\MPcolor{simpleslides:contrastcolor}, \MPcolor{simpleslides:variantcolor}] ; endfor ; if NOfPages >= 12: save n ; numeric n ; n := (10*(RealPageNumber - 1) div (NOfPages - 1)) + 1; draw llcorner p[n] -- urcorner p[n] withpen pencircle scaled 2pt withcolor \MPcolor{simpleslides:backgroundcolor} ; fi ; StopPage; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:ornament:stripe} StartPage; save p ; path p[] ; p[1] := unitsquare xyscaled(0.95*OverlayWidth,1cm) shifted (0.52cm,0.8cm) ; linear_shade(p[1],0, \MPcolor{simpleslides:backgroundcolor}, \MPcolor{simpleslides:contrastcolor}) ; save i ; numeric i; if NOfPages = 0 : i = RealPageNumber ; else : i = RealPageNumber/NOfPages ; fi ; p[2] = ulcorner p[1] -- urcorner p[1] ; p[3] = llcorner p[1] -- lrcorner p[1] ; save o; pair o[] ; o[1] := point i along p[2] ; o[2] := point i along p[3] ; p[4] = ulcorner p[1] -- o[1] -- o[2] -- llcorner p[1] -- cycle ; clip currentpicture to p[4] ; StopPage; \stopuseMPgraphic \startuniqueMPgraphic{simpleslides:MP:vertical} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; draw Page enlarged (-.2cm) withpen pencircle scaled 4pt withcolor \MPcolor{simpleslides:framecolor} ; draw unitsquare xyscaled(0.448*PaperWidth,0.815*PaperHeight) shifted (0.528*PaperWidth, 0.15*PaperHeight) withpen pencircle scaled 2pt withcolor \MPcolor{simpleslides:framecolor} ; StopPage ; \stopuniqueMPgraphic \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; draw Page enlarged (-.2cm) withpen pencircle scaled 4pt withcolor \MPcolor{simpleslides:framecolor} ; draw unitsquare xyscaled(0.95*PaperWidth,0.7*PaperHeight) shifted (0.025*PaperWidth, 0.15*PaperHeight) withpen pencircle scaled 2pt withcolor \MPcolor{simpleslides:framecolor} ; StopPage; \stopuniqueMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] %D We define the ornament according to user's choice. \startsetups simpleslides:alternative:square \defineoverlay [simpleslides:background:ornament] [\uniqueMPgraphic{simpleslides:MP:ornament:square}] \stopsetups \startsetups simpleslides:alternative:stripe \defineoverlay [simpleslides:background:ornament] [\uniqueMPgraphic{simpleslides:MP:ornament:stripe}] \stopsetups \startsetups simpleslides:alternative:empty \setups{simpleslides:alternative:square} \stopsetups %D Now we activate the user's choice \setups{simpleslides:alternative:\moduleparameter{simpleslides}{alternative}} %D The title is typed in a slightly larger font. \setupTitle [\c!title\c!color={simpleslides:contrastcolor}, \c!title\c!style=\tfc, \c!author\c!color={simpleslides:contrastcolor}, \c!author\c!style=\tfa, \c!date\c!color={simpleslides:contrastcolor}, \c!date\c!style=\tfa] %D The slide title is typeset in a layer \setupSlideTitle [\c!color={simpleslides:contrastcolor}, \c!alternative=layer, \c!align=\v!center, \c!width=\textwidth, \c!height=2.1cm, \c!after=] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-ThickStripes.tex0000644000175000017500000001016114264357620030263 0ustar hillehille%D \module %D [ file=simpleslides-s-ThickStripes, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- Thick Stripes style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{ThickStripes} style for the presentation %D module. It is loaded at runtime. The theme for this style is inspired by the %D \quotation{Berkeley} theme of the \LaTeX\ Beamer package. \writestatus{simpleslides}{loading Thick Stripes style} \startmodule[simpleslides-s-ThickStripes] \unprotect %D First, we change the page layout to have more space on the top and the %D left. \setuplayout [width=fit, leftmargin=1.5cm, rightmargin=0cm, leftmargindistance=.9cm, rightmargindistance=0pt, height=fit, header=2.5cm, footer=0cm, topspace=.4cm, backspace=2.9cm, cutspace=2.8cm, bottomspace=0cm, bottom=0pt, location=singlesided] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} \setuplayer [simpleslides:layer:slidetitle] [x=29mm] %D We define our color scheme \definecolor [simpleslides:backgroundcolor] [s=.9] \definecolor [simpleslides:variantcolor] [r=.15,g=.15,b=.525] \definecolor [simpleslides:contrastcolor] [r=.2,g=.2,b=.7] \definecolor [simpleslides:altcontrastcolor] [s=.4] \definecolor [simpleslides:itemize:color] [simpleslides:backgroundcolor] %D We use \METAPOST to draw the background. The background consists of two %D stripes and a "clock" at the bottom. \startuseMPgraphic{simpleslides:MP:title} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save a, b, theta; numeric a, b, theta ; save t ; pair t[] ; a = 2.5cm ; b = 1.5cm ; z[1] = ulcorner Page shifted (a,0) ; z[2] = llcorner Page shifted (a,0) ; z[3] = ulcorner Page shifted (0,-a) ; z[4] = urcorner Page shifted (0,-a) ; z[5] = ulcorner Page shifted (a,-a) ; save p ; path p[] ; p[1] = ulcorner Page -- z[1] -- z[2] -- llcorner Page -- cycle ; p[2] = ulcorner Page -- urcorner Page -- z[4] -- z[3] -- cycle ; p[3] = ulcorner Page -- z[1] -- z[5] -- z[3] -- cycle ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[1] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[2] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[3] withcolor \MPcolor{simpleslides:variantcolor} ; pickup pencircle scaled 5pt ; if NOfPages > 1: theta = (RealPageNumber - 1)/(NOfPages - 1) ; p[4] = unitcircle scaled b rotated 90 shifted (b + ((a-b)/2),(a-b)/2) ; fill p[4] withcolor \MPcolor{simpleslides:backgroundcolor} ; t[0] = center p[4] ; t[1] = point 1 along p[4] ; t[2] = point -theta along p[4] ; t[3] = point -theta/2 along p[4] ; p[5] = t[0] -- t[1] .. t[3] .. t[2] -- cycle ; fill p[5] withcolor \MPcolor{simpleslides:altcontrastcolor} ; fi ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:ornament}] %D We want the title to placed in color. \setupTitle[\c!headcolor={simpleslides:contrastcolor}] %D We want the slide title on the top \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!height=2.5cm, \c!color=simpleslides:backgroundcolor] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:triangle}] \setupitemize[1][inmargin][color=simpleslides:backgroundcolor] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-SideToc.tex0000644000175000017500000002221712353131551027174 0ustar hillehille%D \module %D [ file=simpleslides-s-SideToc, %D version=2010.02.09, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- SideToc style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2010 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{SideToc} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading Side Toc style} \startmodule[simpleslides-s-SideToc] \unprotect %D We create different layouts for the title page, horizontal, and vertical %D slides. \setuplayout [simpleslides:layout:vertical] [width=fit, leftmargin=3.5cm, rightmargin=0cm, leftmargindistance=1cm, rightmargindistance=0pt, height=fit, header=0cm, footer=0cm, topspace=1cm, backspace=5cm, % cutspace=4cm, bottomspace=0cm, bottom=0pt, location=middle] \setuplayout [simpleslides:layout:horizontal] [width=fit, leftmargin=3.5cm, rightmargin=0cm, leftmargindistance=1cm, rightmargindistance=0pt, height=fit, header=0.1cm, headerdistance=1.7cm, footer=0cm, topspace=1cm, backspace=5cm, % cutspace=4cm, bottomspace=0cm, bottom=0pt, location=middle] \setuplayout [simpleslides:layout:title] [width=fit, leftmargin=0cm, rightmargin=0cm, height=fit, header=0cm, footer=0cm, topspace=1cm, backspace=1cm, bottomspace=0cm, bottom=0pt, location=middle] \setupcombinations[distance=0.75cm] %D The interesting part of this presentation style is the "Topic" list which is %D typeset in the left margin. It is inspired by something Hans did in %D s-pre-19. The Difference is that I wanted the Topic to be independent from %D SlideTitle macro. This way, several slides can be combined into one Topic. % \definelayer % [Topiclayer] % [width=2.5cm, % height=\paperheight] % % \defineoverlay % [simpleslides:background:ornament] % [\setlayer[Topiclayer]{\completelist[MyTopic]} % \startsetups tlayer % \setlayer[Topiclayer]{\completelist[MyTopics]} %\stopsetups %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} \setuplayer [simpleslides:layer:slidetitle] [x=5cm] %D We define our color scheme \enablemode[\moduleparameter{simpleslides}{color}] \startmode[dark] \definecolor [simpleslides:backgroundcolor] [s=.9] \definecolor [simpleslides:altcontrastcolor] [b=.6] \definecolor [simpleslides:contrastcolor] [s=.3] \definecolor [simpleslides:itemize:color] [simpleslides:altcontrastcolor] \define[3]\FancyEntry{% \doifelse \rawstructurelistfirst \MyMark% {\framed[width=3.5cm, height=4ex, align=middle, frame=off, framecolor=red, background=color, backgroundcolor=simpleslides:altcontrastcolor, foregroundcolor=simpleslides:backgroundcolor] {\switchtobodyfont[13pt]#1}}% fancy layout {\framed[width=3.5cm, height=4ex, align=middle, frame=off, framecolor=red, foregroundcolor=simpleslides:backgroundcolor] {\switchtobodyfont[13pt]#1}}% normal layout } \stopmode \startmode[light] \definecolor [simpleslides:altcontrastcolor] [r=1,g=0.5,b=0] \definecolor [simpleslides:contrastcolor] [s=0.95] \definecolor [simpleslides:textcolor] [s=0] \definecolor [simpleslides:itemize:color] [simpleslides:altcontrastcolor] \define[3]\FancyEntry {\doifelse{#1}{\MyMark} % {\framed[width=3.5cm, height=4ex, frame=off, align=middle, foregroundcolor=simpleslides:altcontrastcolor] {\switchtobodyfont[13pt]\bf Y #1}}% fancy layout {\framed[width=3.5cm, height=4ex, align=middle, frame=off, framecolor=red, foregroundcolor=simpleslides:altcontrastcolor] {\switchtobodyfont[13pt] X #1}}% normal layout } \stopmode %D Here are the main macros for defining and typesetting the Topic list: \definelist[MyTopics][criterium=all] \def\MyMark{} \def\Topic% %{\relax} {\dosingleargument\doTopic} \def\doTopic[#1]{ \gdef\MyMark{#1}% \writetolist[MyTopics][location=none]{#1}{}% } \setuplist[MyTopics] [pagenumber=no, alternative=command, command=\FancyEntry] \setuptexttexts[margin][\vbox{\placelist[MyTopics]}][] %D We use \METAPOST to draw the background. \startuseMPgraphic{simpleslides:MP:title} StartPage ; save middle ; path middle ; fill Page withcolor \MPcolor{simpleslides:contrastcolor} ; middle = Page enlarged -1.5cm ; fill middle withcolor \MPcolor{simpleslides:altcontrastcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:horizontal} StartPage ; save a, b, c ; numeric a, b, c ; a = 4.5cm ; b = 0.5cm ; c = 2.2cm ; z[1] = ulcorner Page shifted (a,0) ; z[2] = llcorner Page shifted (a,0) ; z[3] = ulcorner Page shifted (0,-c) ; z[4] = urcorner Page shifted (0,-c) ; z[5] = llcorner Page shifted (0,b) ; z[6] = lrcorner Page shifted (0,b) ; z[7] = ulcorner Page shifted (a,-c) ; z[8] = llcorner Page shifted (a,b) ; save p ; path p[] ; p[1] = ulcorner Page -- z[1] -- z[2] -- llcorner Page -- cycle ; p[2] = ulcorner Page -- urcorner Page -- z[4] -- z[3] -- cycle ; p[3] = llcorner Page -- lrcorner Page -- z[6] -- z[5] -- cycle ; p[4] = ulcorner Page -- z[1] -- z[7] -- z[3] -- cycle ; p[5] = llcorner Page -- z[5] -- z[8] -- z[2] -- cycle ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[1] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[2] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[3] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[4] withcolor \MPcolor{simpleslides:altcontrastcolor} ; fill p[5] withcolor \MPcolor{simpleslides:altcontrastcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:vertical} StartPage ; save a, b ; numeric a, b ; a = 4.5cm ; b = 0.5cm ; z[1] = ulcorner Page shifted (a,0) ; z[2] = llcorner Page shifted (a,0) ; z[3] = ulcorner Page shifted (0,-b) ; z[4] = urcorner Page shifted (0,-b) ; z[5] = llcorner Page shifted (0,b) ; z[6] = lrcorner Page shifted (0,b) ; z[7] = ulcorner Page shifted (a,-b) ; z[8] = llcorner Page shifted (a,b) ; save p ; path p[] ; p[1] = ulcorner Page -- z[1] -- z[2] -- llcorner Page -- cycle ; p[2] = ulcorner Page -- urcorner Page -- z[4] -- z[3] -- cycle ; p[3] = llcorner Page -- lrcorner Page -- z[6] -- z[5] -- cycle ; p[4] = ulcorner Page -- z[1] -- z[7] -- z[3] -- cycle ; p[5] = llcorner Page -- z[5] -- z[8] -- z[2] -- cycle ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[1] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[2] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[3] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[4] withcolor \MPcolor{simpleslides:altcontrastcolor} ; fill p[5] withcolor \MPcolor{simpleslides:altcontrastcolor} ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:title}] %D We want the title to placed in color. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor={simpleslides:backgroundcolor}, \c!align=middle, \c!before=\vfill, \c!after=\vfill, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=simpleslides:backgroundcolor, \c!title\c!align=middle, \c!author\c!style=, \c!author\c!color=simpleslides:backgroundcolor, \c!author\c!align=middle, \c!date\c!style=, \c!date\c!color=simpleslides:backgroundcolor, \c!date\c!align=middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] %D We want the slide title on the top \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!height=2.5cm, \c!color=simpleslides:backgroundcolor] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] %\setupitemize[1][inmargin][color=simpleslides:backgroundcolor] \protect \stopmodule \endinput % Write Macro "Topic" % This macro takes a keyword and appends it to a list (a LUA table?), at the same % time, it puts the keywords into a MPvariable. The complete list is written in % MP to the left of the slide; the current Topic written white on blue, the % others black on gray. context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Shaded.tex0000644000175000017500000001133214264357620027040 0ustar hillehille%D \module %D [ file=simpleslides-s-Shaded, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- Shaded style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{Shaded} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading Shaded style} \startmodule[simpleslides-s-Shaded] \unprotect %D The page layout: \setuplayout [width=fit, margin=1.5cm, leftmargindistance=0pt, rightmargindistance=0pt, height=fit, header=0pt, footer=0pt, topspace=.8cm, backspace=1.5cm, bottomspace=1cm, bottom=1cm, location=singlesided] %D These macros are used for placing figures/pictures: \define\NormalHeight {.88\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {.88\textheight} \define\PictureFrameWidth {.476\textwidth} %D This module has three color schemes, blue, green and bluered. \startsetups simpleslides:setups:bluered \definecolor [simpleslides:textcolor] [white] \definecolor [simpleslides:interactioncolor] [b=.2] \definecolor [simpleslides:contrastcolor] [b=.8] \definecolor [simpleslides:itemize:color] [s=1] \definecolor [simpleslides:backgroundcolor] [r=0.5,g=0,b=0] \definecolor [simpleslides:variantcolor] [r=0,g=0,b=0.5] \stopsetups \startsetups simpleslides:setups:blue \definecolor [simpleslides:textcolor] [white] \definecolor [simpleslides:interactioncolor] [b=.2] \definecolor [simpleslides:contrastcolor] [r=.72,g=.77,b=.94] \definecolor [simpleslides:itemize:color] [s=1] \definecolor [simpleslides:backgroundcolor] [r=0,g=0,b=1] \definecolor [simpleslides:variantcolor] [r=0,g=0,b=0.05] \stopsetups \startsetups simpleslides:setups:green \definecolor [simpleslides:textcolor] [white] \definecolor [simpleslides:interactioncolor] [s=.2] \definecolor [simpleslides:contrastcolor] [s=.5] \definecolor [simpleslides:itemize:color] [s=1] \definecolor [simpleslides:backgroundcolor] [r=0,g=.8,b=0] \definecolor [simpleslides:variantcolor] [r=0,g=0.05,b=0] \stopsetups %D Now we choose the scheme that the user asked for \setups{simpleslides:setups:blue} \setups{simpleslides:setups:\moduleparameter{simpleslides}{color}} \setupcolors[textcolor={simpleslides:textcolor}] \setupTitle[color=white] %D This module shades the background in a gradient. We use \METAPOST\ to draw %D the background. \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save p ; path p[] ; save a ; if NOfPages <= 15: a = 0.7cm ; elseif NOfPages <= 30: a = 0.45cm ; else : a = 0.25cm ; fi ; save factor ; numeric factor ; factor = (TextWidth - a)/(NOfPages - 1) ; linear_shade(Page, 6, \MPcolor{simpleslides:backgroundcolor}, \MPcolor{simpleslides:variantcolor}) ; if RealPageNumber >1: for i = 1 upto NOfPages : p[i] = unitcircle scaled a shifted (BackSpace + (i-1)*factor, (2cm - a)/2) ; if i = RealPageNumber : % p[i] := p[i] zscaled (1.2,1.5) ; pickup pencircle scaled 5pt ; drawfill p[i] withcolor \MPcolor{simpleslides:variantcolor} ; else : circular_shade(p[i],2,\MPcolor{simpleslides:backgroundcolor}, \MPcolor{simpleslides:variantcolor}) ; fi endfor ; fi ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:ornament}] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color={simpleslides:itemize:color}] % %D The \quotation{Shaded} style uses \CONTEXT's interactionbar: % % \setupsubpagenumber[way=bytext,state=start] % % \setupinteraction % [page=yes, % color=simpleslides:interactioncolor, % contrastcolor=simpleslides:contrastcolor, % menu=on, % state=start] % % %\setupinteractionbar % %\startinteractionmenu[bottom] % \setupbottomtexts[XXX{\interactionbar[state=start,alternative=e,width=8cm,height=0.2cm,step=small,frame=on]}YYY] % %\stopinteractionmenu %\setupbottomtexts[\useMPgraphic{shaded:counter}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Boxed.tex0000644000175000017500000001131414264357620026711 0ustar hillehille%D \module %D [ file=simpleslides-s-Boxed, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- Boxed Style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{Boxed} style for the presentation %D module. It is loaded at runtime. The look of this style was inspired by the %D screen version of the Metafun manual. \writestatus{simpleslides}{loading style Boxed} \startmodule[simpleslides-s-Boxed] \unprotect %D The page layout: \setuplayout [width=fit, margin=2cm, height=fit, leftmargindistance=1cm, rightmargindistance=0cm, header=2.8cm, footer=1cm, topspace=.7cm, backspace=2cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=2.8cm] \setuplayout [simpleslides:layout:vertical] [header=1.4cm] \setuplayout [simpleslides:layout:title] [header=1.4cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=20mm, y=15mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} %D We define our colorscheme: \definecolor [simpleslides:backgroundcolor] [s=.75] \definecolor [simpleslides:altbackgroundcolor] [s=.2] \definecolor [simpleslides:contrastcolor] [r=.55, g=0, b=.04] \definecolor [simpleslides:variantcolor] [yellow] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D We let Metapost calculate the background: \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; save p; path p[] ; save a ; numeric a ; a := 1.5cm ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; z1 = ulcorner Page shifted (a,0) ; z2 = urcorner Page shifted (-a,0) ; z3 = urcorner Page shifted (0,-a); z4 = lrcorner Page shifted (0,a) ; z5 = (x2,0) ; z6 = (x1,0) ; z7 = (0,y4) ; z8 = (0,y3) ; z9 = (x1,y3) ; z10 = (x2,y3) ; z11 = (x2,y4) ; z12 = (x1,y4) ; p[1] = z9 -- z12 -- z7 -- z8 -- cycle ; p[2] = z10 -- z3 -- z4 -- z11 -- cycle ; p[3] = z12 -- z11 -- z5 -- z6 -- cycle ; p[4] = z9 -- z10 -- z2 -- z1 -- cycle ; fill p[1] withcolor \MPcolor{simpleslides:altbackgroundcolor} ; fill p[2] withcolor \MPcolor{simpleslides:altbackgroundcolor} ; fill p[3] withcolor \MPcolor{simpleslides:altbackgroundcolor} ; fill p[4] withcolor \MPcolor{simpleslides:altbackgroundcolor} ; pickup pencircle scaled 8 pt ; draw z1 -- z6 withcolor \MPcolor{simpleslides:contrastcolor} ; draw z2 -- z5 withcolor \MPcolor{simpleslides:contrastcolor} ; draw z7 -- z4 withcolor \MPcolor{simpleslides:contrastcolor} ; draw z8 -- z3 withcolor \MPcolor{simpleslides:contrastcolor} ; StopPage ; \stopuniqueMPgraphic \startuseMPgraphic{simpleslides:MP:ornament} StartPage save a; numeric a; a := 1.5cm ; save factor, allpages, shift ; numeric factor, allpages, shift ; factor :=(NOfPages div 18) + 1 ; allpages := if NOfPages <= 18 : NOfPages elseif odd NOfPages : NOfPages + 1 else : NOfPages fi ; shift := factor * (PaperWidth -2a)/allpages ; save p ;path p ; p := fullcircle scaled 4mm shifted (a + shift/2, a/2) ; for i = 1 upto allpages/factor : fill p shifted ( (i-1)*shift, 0) if i - 1 = floor ((RealPageNumber - 1)/factor) : withcolor \MPcolor{simpleslides:variantcolor} ; else : withcolor \MPcolor{simpleslides:backgroundcolor} ; fi ; endfor ; StopPage \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] %D The title page: \setupTitle [\c!headcolor={simpleslides:contrastcolor}] %D The slide title is typeset in a layer \setupSlideTitle [\c!color={simpleslides:contrastcolor}, \c!alternative=layer, \c!align=\v!center, \c!width=\textwidth, \c!height=2.3cm, \c!after=] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][inmargin][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-FuzzyTopic.tex0000644000175000017500000003301312353131551027764 0ustar hillehille%D \module %D [ file=simpleslides-s-SideToc, %D version=2010.02.09, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- SideToc style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2010 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{SideToc} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading Fuzzy Topic style} \startmodule[simpleslides-s-FuzzyTopic] \unprotect %D We create different layouts for the title page, horizontal, and vertical %D slides. \setuplayout [simpleslides:layout:vertical] [leftmargin=0cm, rightmargin=3cm, leftmargindistance=0cm, rightmargindistance=1.85cm, header=0.1cm, headerdistance=0cm, footer=0cm, topspace=1cm, backspace=8mm, cutspace=5.5cm, bottomspace=0cm, bottom=0pt, location=middle] \setuplayout [simpleslides:layout:horizontal] [leftmargin=0cm, rightmargin=3cm, leftmargindistance=0cm, rightmargindistance=1.85cm, header=0.1cm, headerdistance=1.7cm, footer=0cm, topspace=1cm, backspace=8mm, cutspace=5.5cm, bottomspace=0cm, bottom=0pt, location=middle] \setuplayout [simpleslides:layout:title] [width=fit, leftmargin=0cm, rightmargin=0cm, height=fit, header=0cm, footer=0cm, topspace=1cm, backspace=1cm, bottomspace=0cm, bottom=0pt, location=middle] \setupcombinations[distance=0.75cm] %D The interesting part of this presentation style is the "Topic" list which is %D typeset in the left margin. It is inspired by something Hans did in %D s-pre-19. The Difference is that I wanted the Topic to be independent from %D SlideTitle macro. This way, several slides can be combined into one Topic. % \definelayer % [Topiclayer] % [width=2.5cm, % height=\paperheight] % % \defineoverlay % [simpleslides:background:ornament] % [\setlayer[Topiclayer]{\completelist[MyTopic]} % \startsetups tlayer % \setlayer[Topiclayer]{\completelist[MyTopics]} %\stopsetups %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} \setuplayer [simpleslides:layer:slidetitle] [x=1cm,y=2mm] %D We define our color scheme \definecolor [simpleslides:contrastcolor] [r=0.6,g=0,b=0] \definecolor [simpleslides:backgroundcolor] [s=0.9] \definecolor [simpleslides:altcontrastcolor] [s=0.92] \definecolor [simpleslides:textcolor] [s=0] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D Here are the main macros for defining and typesetting the Topic list: \define[3]\FancyEntry{% \doifelse \rawstructurelistfirst \MyMark% {\framed[width=3cm,height=1cm,frame=off,top=\vss,bottom=\vss,background=simpleslides:current,offset=1mm,align=center]{\switchtobodyfont[11pt]#1}}% {\framed[width=3cm,height=1cm,frame=off,top=\vss,bottom=\vss,offset=1mm,align=center]{\switchtobodyfont[11pt]#1}}} \definelist[MyTopics][criterium=all] \def\MyMark{} \definemargindata [TopicMargin] [right] [style=small] \def\Topic% %{\relax} {\dosingleargument\doTopic} \def\doTopic[#1]{% \gdef\MyMark{#1}% \writetolist[MyTopics][location=none]{#1}{}}% %\def\Topic% % {\dosingleargument\doTopic} %\def\doTopic[#1]{% % \gdef\MyMark{#1}% % \writetolist[MyTopics]{#1}{}% %} \setuplist[MyTopics] [pagenumber=no, expansion=yes, alternative=command, command=\FancyEntry] \setuptexttexts[margin][][\vbox{\placelist[MyTopics]}] %D We use \METAPOST to draw the background. \startuseMPgraphic{simpleslides:MP:title} StartPage ; def fuzzy (expr p,dx,dy) = (xpart p +dx-uniformdeviate dx,ypart p+dy-uniformdeviate dy) enddef ; save a, b, c ; a := 4.7cm ; b := 0.2cm ; c := 4.1cm ; save dd ; dd := 7 ; StartPage ; save ll ; pair ll ; ll := (b, b) ; save ul ; pair ul ; ul := (b, PaperHeight - b) ; save ur ; pair ur ; ur := (PaperWidth - b, PaperHeight - b) ; save lr ; pair lr ; lr := (PaperWidth - b, b) ; save ple, pto, pri, pbo ; path ple, pto, pri, pbo ; fill Page withcolor black ; pickup pencircle scaled 8pt ; ple := ul.. for i=.1 step .1 until .9 : fuzzy (i[ul,ll],+dd,0).. endfor ll ; pbo := ll.. for i=.1 step .1 until .9 : fuzzy (i[ll,lr],0,+dd).. endfor lr ; pri := lr.. for i=.1 step .1 until .9 : fuzzy (i[lr,ur],-dd,0).. endfor ur ; pto := ur.. for i=.1 step .1 until .9 : fuzzy (i[ur,ul],0,-dd).. endfor ul ; fill ple & pbo & pri & pto -- cycle withcolor \MPcolor{simpleslides:backgroundcolor} ; draw pri withcolor \MPcolor{simpleslides:contrastcolor} ; draw pbo withcolor \MPcolor{simpleslides:contrastcolor} ; draw pto withcolor \MPcolor{simpleslides:contrastcolor} ; draw ple withcolor \MPcolor{simpleslides:contrastcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:horizontal} def fuzzy (expr p,dx,dy) = (xpart p +dx-uniformdeviate dx,ypart p+dy-uniformdeviate dy) enddef ; save a, b, c ; a := 4.7cm ; b := 0.2cm ; c := 4.1cm ; save dd ; dd := 7 ; StartPage ; save ll ; pair ll ; ll := (b, b) ; save ul ; pair ul ; ul := (b, PaperHeight - b) ; save ur ; pair ur ; ur := (PaperWidth - a, PaperHeight - b) ; save lr ; pair lr ; lr := (PaperWidth - a, b) ; save tll ; pair tll ; tll := (PaperWidth - c, b) ; save tlr ; pair tlr ; tlr := (PaperWidth - b, b) ; save tul ; pair tul ; tul := (PaperWidth - c, PaperHeight - b) ; save tur ; pair tur ; tur := (PaperWidth - b, PaperHeight - b) ; save ple, pto, pri, pbo, sep ; path ple, pto, pri, pbo, sep ; save tle, tto, tri, tbo ; path tle, tto, tri, tbo ; fill Page withcolor black ; pickup pencircle scaled 8pt ; ple := ul.. for i=.1 step .1 until .9 : fuzzy (i[ul,ll],+dd,0).. endfor ll ; pbo := ll.. for i=.1 step .1 until .9 : fuzzy (i[ll,lr],0,+dd).. endfor lr ; pri := lr.. for i=.1 step .1 until .9 : fuzzy (i[lr,ur],-dd,0).. endfor ur ; pto := ur.. for i=.1 step .1 until .9 : fuzzy (i[ur,ul],0,-dd).. endfor ul ; tle := tul.. for i=.1 step .1 until .9 : fuzzy (i[tul,tll],+dd,0).. endfor tll ; tbo := tll.. for i=.1 step .2 until .9 : fuzzy (i[tll,tlr],0,+dd).. endfor tlr ; tri := tlr.. for i=.1 step .1 until .9 : fuzzy (i[tlr,tur],-dd,0).. endfor tur ; tto := tur.. for i=.1 step .2 until .9 : fuzzy (i[tur,tul],0,-dd).. endfor tul ; fill ple & pbo & pri & pto -- cycle withcolor \MPcolor{simpleslides:backgroundcolor} ; fill tle & tbo & tri & tto -- cycle withcolor \MPcolor{simpleslides:backgroundcolor}; draw textext("\switchtobodyfont[55pt]\color[simpleslides:altcontrastcolor]{\pagenumber}") shifted (19cm, 1.5cm) ; draw pri withcolor \MPcolor{simpleslides:contrastcolor} ; draw pbo withcolor \MPcolor{simpleslides:contrastcolor} ; draw pto withcolor \MPcolor{simpleslides:contrastcolor} ; draw ple withcolor \MPcolor{simpleslides:contrastcolor} ; draw tle withcolor \MPcolor{simpleslides:contrastcolor} ; draw tbo withcolor \MPcolor{simpleslides:contrastcolor} ; draw tri withcolor \MPcolor{simpleslides:contrastcolor} ; draw tto withcolor \MPcolor{simpleslides:contrastcolor} ; z[1] = point 0.14 along ple shifted (8mm, 0) ; z[2] = point 0.86 along pri shifted (-8mm, 0) ; sep := z[1].. for i=.1 step .1 until .9 : fuzzy (i[z[1],z[2]],0,+dd).. endfor z[2] ; draw sep withcolor \MPcolor{simpleslides:contrastcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:vertical} def fuzzy (expr p,dx,dy) = (xpart p +dx-uniformdeviate dx,ypart p+dy-uniformdeviate dy) enddef ; save a, b, c ; a := 4.7cm ; b := 0.2cm ; c := 4.1cm ; save dd ; dd := 7 ; StartPage ; save ll ; pair ll ; ll := (b, b) ; save ul ; pair ul ; ul := (b, PaperHeight - b) ; save ur ; pair ur ; ur := (PaperWidth - a, PaperHeight - b) ; save lr ; pair lr ; lr := (PaperWidth - a, b) ; save tll ; pair tll ; tll := (PaperWidth - c, b) ; save tlr ; pair tlr ; tlr := (PaperWidth - b, b) ; save tul ; pair tul ; tul := (PaperWidth - c, PaperHeight - b) ; save tur ; pair tur ; tur := (PaperWidth - b, PaperHeight - b) ; save ple, pto, pri, pbo, sep ; path ple, pto, pri, pbo, sep ; save tle, tto, tri, tbo ; path tle, tto, tri, tbo ; fill Page withcolor black ; pickup pencircle scaled 8pt ; ple := ul.. for i=.1 step .1 until .9 : fuzzy (i[ul,ll],+dd,0).. endfor ll ; pbo := ll.. for i=.1 step .1 until .9 : fuzzy (i[ll,lr],0,+dd).. endfor lr ; pri := lr.. for i=.1 step .1 until .9 : fuzzy (i[lr,ur],-dd,0).. endfor ur ; pto := ur.. for i=.1 step .1 until .9 : fuzzy (i[ur,ul],0,-dd).. endfor ul ; tle := tul.. for i=.1 step .1 until .9 : fuzzy (i[tul,tll],+dd,0).. endfor tll ; tbo := tll.. for i=.1 step .2 until .9 : fuzzy (i[tll,tlr],0,+dd).. endfor tlr ; tri := tlr.. for i=.1 step .1 until .9 : fuzzy (i[tlr,tur],-dd,0).. endfor tur ; tto := tur.. for i=.1 step .2 until .9 : fuzzy (i[tur,tul],0,-dd).. endfor tul ; fill ple & pbo & pri & pto -- cycle withcolor \MPcolor{simpleslides:backgroundcolor} ; fill tle & tbo & tri & tto -- cycle withcolor \MPcolor{simpleslides:backgroundcolor} ; draw textext("\switchtobodyfont[55pt]\color[simpleslides:altcontrastcolor]{\pagenumber}") shifted (19cm, 1.5cm) ; draw pri withcolor \MPcolor{simpleslides:contrastcolor} ; draw pbo withcolor \MPcolor{simpleslides:contrastcolor} ; draw pto withcolor \MPcolor{simpleslides:contrastcolor} ; draw ple withcolor \MPcolor{simpleslides:contrastcolor} ; draw tle withcolor \MPcolor{simpleslides:contrastcolor} ; draw tbo withcolor \MPcolor{simpleslides:contrastcolor} ; draw tri withcolor \MPcolor{simpleslides:contrastcolor} ; draw tto withcolor \MPcolor{simpleslides:contrastcolor} ; z[1] = point 0.5 along pto shifted (0, -8mm) ; z[2] = point 0.5 along pbo shifted (0, 8mm) ; sep := z[1].. for i=.1 step .1 until .9 : fuzzy (i[z[1],z[2]],+dd,0).. endfor z[2] ; draw sep withcolor \MPcolor{simpleslides:contrastcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{FancyFrame} save p ; path p ; z[1] = (0, 0) ; z[2] = z[1] shifted (OverlayWidth, -3pt randomized 6pt) ; p := z[1].. for i=.1 step .1 until .8 : fuzzy (i[z[1],z[2]],+dd,0).. endfor z[2] ; pickup pencircle scaled 5pt ; draw p withcolor \MPcolor{simpleslides:contrastcolor} ; setbounds currentpicture to boundingbox OverlayBox ; \stopuseMPgraphic \startuseMPgraphic{FancyFrame_2} save p ; path p ; z[0] = (0, OverlayHeight/2) ; z[1] = z[0] shifted (-2.5mm randomized 5mm, -2.5mm randomized 5mm) ; z[2] = (OverlayWidth/2, OverlayHeight) ; z[3] = (OverlayWidth, OverlayHeight/2) ; z[4] = (OverlayWidth/2, 0) ; z[5] = z[0] shifted (-2.5mm randomized 5mm, -2.5mm randomized 5mm) ; pickup pencircle scaled 5pt ; draw z[1] .. z[2] .. z[3] .. z[4] .. z[5] withcolor \MPcolor{simpleslides:contrastcolor} ; setbounds currentpicture to boundingbox OverlayBox ; \stopuseMPgraphic \startuseMPgraphic{FancyFrame_3} w := OverlayWidth; width := 100; wfactor := w/width; h := OverlayHeight; height := 100; hfactor := h/height; color lightred; lightred := (.90,.50,.50); color lightgray; lightgray := (.95,.95,.95); color gray; gray := (.50,.50,.50); % def random_delta (expr d) = d-(uniformdeviate 2d) enddef; % z1 = (0,height); z2 = (0,0); z3 = (width,0); z4 = (width,height); % z5 = (width+random_delta(.2width),height+random_delta(.2height)); z6 = (.5width+random_delta(.1width),height+random_delta(.1height)); % pickup pencircle xscaled (15pt/wfactor) yscaled (15pt/(2*hfactor)) rotated 30; % draw z5..z1..z2..z3..z4..z6 withcolor \MPcolor{simpleslides:contrastcolor}; % newwidth := (xpart (urcorner currentpicture)) - (xpart (llcorner currentpicture)); newheight := (ypart (urcorner currentpicture)) - (ypart (llcorner currentpicture)); % currentpicture := currentpicture xscaled (w/newwidth) yscaled (h/newheight); \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:title}] \defineoverlay[simpleslides:current][\useMPgraphic{FancyFrame_3}] %D We want the title to placed in color. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor={simpleslides:contrastcolor}, \c!align=\v!middle, \c!before=\vfill, \c!after=\vfill, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=simpleslides:contrastcolor, \c!title\c!align=\v!middle, \c!author\c!style=, \c!author\c!color={simpleslides:contrastcolor}, \c!author\c!align=\v!middle, \c!date\c!style=, \c!date\c!color={simpleslides:contrastcolor}, \c!date\c!align=\v!middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] %D We want the slide title on the top \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!height=2.5cm, \c!color=black] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] %\setupitemize[1][inmargin][color=simpleslides:backgroundcolor] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-PlainCounter.tex0000644000175000017500000001123614264357620030256 0ustar hillehille%D \module %D [ file=simpleslides-s-PlainCounter, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- Plain Counter, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2009 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{PlainCounter} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading Plain Counter style} \startmodule[simpleslides-s-PlainCounter] \unprotect %D First, we change the page layout to have more space all around \setuplayout [\c!topspace=2\lineheight, \c!top=2\lineheight, \c!topdistance=0cm, \c!header=0cm, \c!headerdistance=0cm, \c!height=middle, \c!footerdistance=\lineheight, \c!footer=1.25\lineheight, \c!bottomspace=0.25\lineheight, \c!bottom=0.25\lineheight, \c!bottomdistance=0cm, \c!backspace=0.5in, \c!leftmargin=0.25cm, \c!leftmargindistance=.15cm, \c!width=middle, \c!cutspace=0.5in, \c!rightmargin=.25cm, \c!rightmargindistance=.15cm, \c!grid=on, \c!columndistance=5pt, \c!columns=6, ] %D This module has two color schemes: dull and bright \startsetups simpleslides:setups:dull \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:variantcolor] [s=.8] \definecolor [simpleslides:contrastcolor] [b=.5] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] \definecolor [simpleslides:altcontrastcolor] [r=.95] \definecolor [simpleslides:imp:background] [r=1,g=1,b=0.85] \stopsetups \startsetups simpleslides:setups:bright \definecolor [simpleslides:backgroundcolor] [white] \definecolor [simpleslides:variantcolor] [s=.9] \definecolor [simpleslides:contrastcolor] [b=.65] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] \definecolor [simpleslides:altcontrastcolor] [r=.95] \definecolor [simpleslides:imp:background] [r=1,g=1,b=0.85] \stopsetups %D Now we choose the scheme that the user asked for \doifsetupselse{simpleslides:setups:\moduleparameter{simpleslides}{color}} {\setups{simpleslides:setups:\moduleparameter{simpleslides}{color}}} {\setups{simpleslides:setups:dull}} \simpleslidesTitleSize=1.73\simpleslidesNormalSize\relax \simpleslidesSlideTitleSize =1.44\simpleslidesNormalSize \relax \setupTitle [\c!before={\vfill\vfill}, \c!align=\v!middle, \c!titlecolor=simpleslides:contrastcolor, \c!after\c!title=\vfill, afterauthor={\vfill\vfill}, \c!after={\vfill}] \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; StopPage \stopuniqueMPgraphic \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save a, b; numeric a,b; b = PaperWidth/2 - NOfPages*5pt/2 ; save p,q ; path p, q; p =((0,15bp) -- (3bp,30bp)) shifted (b,0); q =((-22bp,15bp) -- (0,30bp) ) shifted (b,0); for i := NOfPages-1 downto 1: draw (if i mod 5 = 0 : q else : p fi) randomized 1bp shifted (i*5pt,0) withcolor (if i < RealRealPageNumber : \MPcolor{simpleslides:contrastcolor} else : \MPcolor{simpleslides:variantcolor} fi) withpen pencircle scaled (1bp randomized .5bp) ; endfor ; StopPage ; \stopuseMPgraphic \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \setupSlideTitle [align=flushleft, style={\switchtobodyfont[\SlideTitleSize]\bolditalic}, color=simpleslides:contrastcolor] % \setuphead % [subsubject] % [numberstyle=bolditalic, textstyle=bolditalic,color=darkblue,style=\tfb, % before=\blank,after=\blank] \setupalign[\v!flushleft,\v!nothyphenated,\v!verytolerant] \setupinterlinespace[\v!auto,\v!medium] \setupcombinations[\c!distance=3em] \setupitemize[\c!color=simpleslides:itemize:color, \c!headstyle=\tfa, \c!headcolor=simpleslides:itemize:color] \setupitemize[\v!autointro] \setupitemize[2][\v!packed] \setupitemize[2][\c!headstyle=\v!bold, \c!headcolor=] \definesymbol[2][\useMPgraphic{simpleslides:itemize:triangle}] \definesymbol[1][{\symbol[circle]}] \definesymbol[2][{\symbol[triangle]}] \definesymbol[3][{\symbol[dash]}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/t-simpleslides.mkiv0000644000175000017500000000541112353131551026010 0ustar hillehille%D \module %D [ file=t-simpleslides, %D version=2012.02.12 %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module simpleslides, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %M \usemodule[int-load] %M \setupcolors[state=start] %M \loadsetups[cont-en.xml] %M \loadsetups[t-simpleslides.xml] %D This module is meant to facilitate writing presentations in \CONTEXT. It %D provides a consistent interface and macros; there are different styles which %D give different output. The module has been written for projector||based %D presentations, so elements which are typical for screen presentations (such %D as interactive hyperlinks or tables of contents) are not included. The %D module is meant for an academic environment, specifically in the humanities. %D Hence, it has the following characteristics: %D %D \startitemize %D %D \item The look is rather sober. In academia, presentations are not meant to %D showcase fancy \TeX\ effects; nothing should divert the audience's attention %D from the content. %D %D \item The module is written for slides which exhibit text and/or images. %D From my own experience with \TeX||based presentations, I have provided a %D setup for horizontal (landscape) pictures and for vertical (portrait) %D pictures, which are accompanied by an area for explanatory text. %D %D \item A simple switch in the module setup command will produce different %D output. %D %D \item It is easy to customize the module or to add more styles. %D %D \stopitemize %D %D The macros are commented rather extensively to give users (especially users %D relatively new to \CONTEXT) the chance to understand the mechanisms and %D create their own styles. Of course, I did not invent this code on my own. My %D thanks are due, as always, to Hans Hagen, whose presentation modules in the %D \CONTEXT\ core have been a wonderful source of inspiration, to Mojca %D Miklavec, who provided help with Metapost, and to Aditya Mahajan, who helped %D tremendously in cleaning up the code and making the user interface more %D consistent. \writestatus{loading}{module simpleslides} \startmodule[simpleslides] \unprotect \setupmodule [style=, font=LatinModernSans, size=17pt, color=blue, alternative=square] \usemodule [simpleslides-fontsdefault] \usemodule [simpleslides-default] % \usemodule % [simpleslides-c] % [default] \doiffileelse{s-\currentmoduleparameter\c!style} {\ReadFile{s-\currentmoduleparameter\c!style}} {\expanded{\usemodule[simpleslides-\currentmoduleparameter\c!style]}} \protect \stopmodule context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Sunrise.tex0000644000175000017500000001370514264357620027306 0ustar hillehille%D \module %D [ file=simpleslides-s-Sunrise, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module Sunrise %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{Sunrise} style for the presentation %D module. It is loaded at runtime. The look of this style was inspired by the %D \quotation{husky} theme of the \LaTeX\ {\tt powerdot} package, created by %D Jack Stalnaker. \writestatus{simpleslides}{loading Sunrise style} \startmodule[simpleslides-s-Sunrise] \unprotect %D The page layout: \setuplayout [width=fit, margin=0cm, height=fit, header=2.75cm, footer=1.5cm, footerdistance=0.4cm, topspace=0cm, backspace=1cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=2.75cm] \setuplayout [simpleslides:layout:vertical] [header=0.4cm] \setuplayout [simpleslides:layout:title] [header=2.75cm] \setuplayer [simpleslides:layer:slidetitle] [x=10mm] %D Some strings are configurable. \setuplabeltext [\s!en] [of=of] \setuplabeltext [\s!de] [of=von] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} %D We define our color scheme: \definecolor [simpleslides:variantcolor] [s=.97] \definecolor [simpleslides:backgroundcolor] [s=.88] \definecolor [simpleslides:contrastcolor] [r=.75] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D We let \METAPOST\ calculate the background: %D Both horizontal and vertical group share this part of the background. \startuseMPgraphic{simpleslides:MP:common} save a, b ; numeric a; a=2.1cm ; numeric b; b=1.5cm ; fill Page withcolor \MPcolor{simpleslides:variantcolor} ; z1 = llcorner Page shifted (0,2*a) ; z2 = z1 shifted (0,2*a) ; z3 = lrcorner Page shifted (0,b) ; z4 = z3 shifted (0,b) ; z5 = z2 shifted (0,b) ; z6 = ulcorner Page shifted (.1cm,0) ; z7 = z4 shifted (0,b/2) ; z8 = z7 shifted (0,b) ; z9 = ulcorner Page shifted (.1cm+a,0) ; z10 = z9 shifted (3*a,0) ; z11 = z8 shifted (0,b/2) ; z12 = z11 shifted (0,b) ; z13 = z10 shifted (a,0) ; z14 = z13 shifted (3*a,0) ; z15 = z12 shifted (0,b/2) ; z16 = z15 shifted (0,b) ; z17 = llcorner Page shifted (0,b) ; save p ; path p[] ; p[1] = z1 -- z2 -- z4 -- z3 -- cycle ; p[2] = z5 -- ulcorner Page -- z6 -- z8 -- z7 -- cycle ; p[3] = z9 -- z10 -- z12 -- z11 -- cycle ; p[4] = z13 -- z14 -- z16 -- z15 -- cycle ; p[5] = llcorner Page -- z17 -- z3 -- lrcorner Page -- cycle ; fill p[1] withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[2] withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[3] withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[4] withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[5] withcolor \MPcolor{simpleslides:contrastcolor} ; \stopuseMPgraphic \startuniqueMPgraphic{simpleslides:MP:vertical} StartPage ; \includeMPgraphic{simpleslides:MP:common} ; StopPage ; \stopuniqueMPgraphic \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; \includeMPgraphic{simpleslides:MP:common} ; z18 = ulcorner Page shifted (0,-1.5*b) ; z19 = z18 shifted (0,-1pt) ; z20 = urcorner Page shifted (0,-1.5*b) ; z21 = z20 shifted (0,-1pt) ; p[6] = z18 -- z19 -- z21 -- z20 -- cycle ; linear_shade(p[6],0, \MPcolor{simpleslides:contrastcolor}, \MPcolor{simpleslides:variantcolor}) ; p[7] = p[6] shifted (0,-3pt) ; linear_shade(p[7],0, \MPcolor{simpleslides:contrastcolor}, \MPcolor{simpleslides:variantcolor}) ; StopPage ; \stopuniqueMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] %D We define the footer \setupfooter[\c!color=simpleslides:variantcolor, \c!style={\switchtobodyfont[10pt]}, \c!strut=\v!yes] \setupfootertexts[{\framed[\c!frame=\v!off, \c!height=1cm, \c!width=\textwidth] {\simpleslidestitleparameter{title} \hfill \pagenumber\ \labeltext{of} \lastpage}}] %D We want the title to placed in a framed box. We redefine all the keys of %D \type{\setupTitle}, so that the module is easier to maintain. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor=simpleslides:contrastcolor, \c!align=\v!middle, \c!before={\vfill\getvalue{simpleslides:framed} [\c!width=\textwidth,\c!height=.75\textheight, \c!align=\v!middle, \c!strut=\v!no] \bgroup}, \c!after={\egroup\vfill}, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=, \c!title\c!align=,%\v!middle, \c!author\c!style=, \c!author\c!color=, \c!author\c!align=,%\v!middle, \c!date\c!style=, \c!date\c!color=, \c!date\c!align=,%\v!middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!height=2.25cm, \c!color={simpleslides:contrastcolor}] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-BottomSquares.tex0000644000175000017500000001162614264357620030466 0ustar hillehille%D \module %D [ file=simpleslides-s-BottomSquares, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- BottomSquares style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate | update , %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{BottomSquares} style for the presentation %D module. It is loaded at runtime. This minimalistic design is inspired by a %D presentation Taco gave at EuroTeX 2006. \writestatus{simpleslides}{loading module BottomSquares} \startmodule[simpleslides-s-BottomSquares] \unprotect %D The page layout: \setuplayout [width=fit, height=middle, margin=0cm, height=fit, margindistance=0cm, header=0cm, footer=0cm, topspace=1cm, bottomspace=2cm, backspace=1.5cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=1.4cm] \setuplayout [simpleslides:layout:vertical] [header=0cm] \setuplayout [simpleslides:layout:title] [header=0cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=15mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.5\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.5\textwidth} % %D We define a generic frame that is used by the slide title. % % \defineframed[simpleslides:framed] % [frame=off,offset=0pt, % top=\vss,bottom=\vss] %D We define our color scheme: \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:contrastcolor] [r=.7,g=.1,b=.3] \definecolor [simpleslides:variantcolor] [s=.3] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D We let \METAPOST\ calculate the background: %AM: Why not implement this as an interaction bar? \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; save diff ;numeric diff; diff = .3cm ; save w; numeric w; w = xpart (lrcorner Field[Text][Text] - llcorner Field[Text][Text]) - diff ; save factor; numeric factor; if NOfPages <= 1 : factor = w ; else : factor = w/(NOfPages - 1) ; fi ; save p; path p ; p = unitsquare xyscaled (diff,diff) shifted (xpart llcorner Field[Text][Text],0.85cm) ; for i = 1 upto NOfPages: if RealPageNumber = i: fill p xyscaled (0,2) shifted ( (i-1)*factor,-diff-0.85cm) withcolor \MPcolor{simpleslides:contrastcolor} ; else : fill p shifted ( (i-1)*factor, 0) withcolor \MPcolor{simpleslides:variantcolor} ; fi ; endfor ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:ornament}] %D We want the title information to be colored \setupTitle [color=simpleslides:contrastcolor] %D The slide title is typeset in a layer \setupSlideTitle [\c!color={simpleslides:contrastcolor}, \c!alternative=layer, \c!align=\v!center, \c!width=\textwidth, \c!height=3cm, \c!after=] %D attempt! \startuniqueMPgraphic{Important} save p, q ; path p[], q[] ; p[1] = unitsquare xyscaled (\overlaywidth,\overlayheight) ; z[1] = ulcorner p[1] ; z[2] = llcorner p[1] ; save a ; numeric a ; a = arclength (z[1] -- z[2])/15 ; z[3] = ulcorner p[1] shifted (a,0) ; z[4] = urcorner p[1] shifted (-a,0) ; z[5] = urcorner p[1] shifted (0,-a) ; z[6] = lrcorner p[1] shifted (0,a) ; z[7] = lrcorner p[1] shifted (-a,0) ; z[8] = llcorner p[1] shifted (a,0) ; z[9] = llcorner p[1] shifted (0,a) ; z[10] = ulcorner p[1] shifted (0,-a) ; z[11] = z[8] shifted (5mm,0) ; z[12] = z[5] shifted (0,-5mm) ; p[2] = z[3] --- z[4] .. z[5] --- z[6] .. z[7] --- z[8] .. z[9] --- z[10] .. cycle ; q[1] = z[11] --- z[7] .. z[6] --- z[12] ; for i = 3 upto 22: pickup pencircle scaled (i*0.5mm) ; draw q[1] withcolor transparent ("normal", 0.01, black) ; endfor pickup pencircle scaled 2pt ; fill p[2] withcolor \MPcolor{simpleslides:contrastcolor} ; %draw z[8] withcolor red ; \stopuniqueMPgraphic \defineoverlay[VImportant][\useMPgraphic{Important}] \define[1]\Important% {\blank[line]\midaligned{{\framed[height=5cm,width=0.9\textwidth,frame=off,background=VImportant,align=middle,offset=0pt,top=\vss,bottom=\vss,strut=no,foregroundcolor=simpleslides:backgroundcolor]{#1}}}} %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Ellipse.tex0000644000175000017500000000716114264357620027252 0ustar hillehille%D \module %D [ file=simpleslides-s-Ellipse, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module Ellipse, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{Ellipse} style for the presentation %D module. The design is inspired by Hans's "funny" presentation module %D (s-pre-03). It is loaded at runtime. \writestatus{simpleslides}{loading Ellipse style} \startmodule[simpleslides-s-Ellipse] \unprotect %D First, we change the page layout. \setuplayout [width=fit, height=fit, margin=0cm, header=1.2cm, footer=0cm, topspace=1.8cm, backspace=1.5cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=15mm] \setuplayout [simpleslides:layout:vertical] [header=0mm] \setuplayout [simpleslides:layout:title] [header=0mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.5\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.5\textwidth} \setuplayer [simpleslides:layer:slidetitle] [y=8mm, x=15mm] %D We define our color scheme: \definecolor[simpleslides:variantcolor] [s=0] \definecolor[simpleslides:backgroundcolor] [s=.8] \definecolor[simpleslides:contrastcolor] [r=.5,g=0,b=0] \definecolor[simpleslides:altcontrastcolor] [r=.9,g=0,b=0] \definecolor[simpleslides:itemize:color] [r=.5] %D We let Metapost calculate the background: \startuseMPgraphic{simpleslides:MP:horizontal} StartPage ; fill Page withcolor \MPcolor{simpleslides:variantcolor} ; save p ; path p ; p := Page enlarged (-15pt,-15pt) superellipsed .9 ; fill p withcolor \MPcolor{simpleslides:backgroundcolor} ; pickup pencircle scaled 20pt ; draw p withcolor \MPcolor{simpleslides:contrastcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save p ; path p ; p := Page enlarged (-15pt,-15pt) superellipsed .9 ; pickup pencircle scaled 20pt ; save pa, pb; pair pa, pb ; if RealPageNumber>1: pa := point (3 + (6*RealPageNumber) / NOfPages) of p ; pb := point (3 + (6*(RealPageNumber-1)) / NOfPages) of p ; draw (p cutafter pa) cutbefore pb withcolor \MPcolor{simpleslides:altcontrastcolor} ; fi ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] %D We want the title to placed in color. \setupTitle[\c!headcolor={simpleslides:contrastcolor}] %D We want the slide title on the top \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!align=\v!center, \c!height=3.5cm, \c!color=simpleslides:contrastcolor] \setupcombinations[distance=0cm] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][\c!color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Split.tex0000644000175000017500000001414214264357620026745 0ustar hillehille%D \module %D [ file=simpleslides-s-Split, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- Split style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{Split} style for the presentation %D module. It is loaded at runtime. The look of this style was inspired by the %D \quotation{Copenhagen} theme of the \LaTeX\ \filename{beamer} package. \writestatus{simpleslides}{loading Black Blue style} \startmodule[simpleslides-s-Split] \unprotect %AM: NOTE: The black and blue colors can be made configurable. %D First, we change the page layout to have more space on the top and the %D bottom. \setuplayout [width=fit, margin=0cm, height=fit, header=3.2cm, footer=.5cm, topspace=.6cm, backspace=1cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=3.2cm] \setuplayout [simpleslides:layout:vertical] [header=0.5cm] \setuplayout [simpleslides:layout:title] [header=0.5cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=10mm,y=12mm] %D Some strings are configurable. \setuplabeltext [\s!en] [of=of] \setuplabeltext [\s!de] [of=von] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} %D Next we define a few generic frames, which will be used by other macros to %D get a consistent look and feel. \setupframed[simpleslides:framed] [corner=round, background=color,backgroundcolor={simpleslides:contrastcolor}] \defineframed[simpleslides:framed:small] [frame=off,offset=0pt,strut=no, width=0.5\textwidth,height=0.5cm, top=\vss,bottom=\vss] %D We define our color scheme: \definecolor [simpleslides:backgroundcolor] [s=.9] \definecolor [simpleslides:contrastcolor] [r=.2, g=.2, b=.72] \definecolor [simpleslides:variantcolor] [s=0] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D We use \METAPOST\ to draw backgrounds. First, we define a few helper macros %D to place text inside \METAPOST \definetextext[simpleslides:sometxt:left] {\SimpleSlidesSometxtLeft} \definetextext[simpleslides:sometxt:right]{\SimpleSlidesSometxtRight} \unexpanded\def\SimpleSlidesSometxtLeft#1% {\getvalue{simpleslides:framed:small}[align=left] {\switchtobodyfont[9pt]\color[simpleslides:backgroundcolor] {#1\quad\strut}}} \unexpanded\def\SimpleSlidesSometxtRight#1% {\getvalue{simpleslides:framed:small}[align=right] {\switchtobodyfont[9pt]\color[simpleslides:backgroundcolor] {\strut\quad#1}}} %D Now we use \METAPOST\ to draw a page ornament, which will then be inherited %D by different backgrounds. \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save p, Main, a ; path p[] ; path Main ; numeric a; a=.5cm ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; z1 = ulcorner Page shifted (0,-a) ; z2 = urcorner Page shifted (0,-a) ; z3 = llcorner Page shifted (0,a) ; z4 = lrcorner Page shifted (0,a) ; z5 = 1/2[ulcorner Page,urcorner Page] ; z6 = 1/2[z1,z2] ; z7 = 1/2[llcorner Page,lrcorner Page] ; z8 = 1/2[z3,z4] ; p[1] = ulcorner Page -- urcorner Page -- z2 -- z1 -- cycle ; p[2] = ulcorner Page -- z5 -- z6 -- z1 -- cycle ; p[3] = llcorner Page -- lrcorner Page -- z4 -- z3 -- cycle ; p[4] = llcorner Page -- z7 -- z8 -- z3 -- cycle ; fill p[1] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[2] withcolor \MPcolor{simpleslides:variantcolor} ; fill p[3] withcolor \MPcolor{simpleslides:variantcolor} ; fill p[4] withcolor \MPcolor{simpleslides:contrastcolor} ; draw \sometxt[simpleslides:sometxt:left]{\getvariable{simpleslides:title}{date}} shifted (1cm,y1) ; draw \sometxt[simpleslides:sometxt:right]{\pagenumber\ \labeltext{of} \lastpage} shifted (x5,y1) ; draw \sometxt[simpleslides:sometxt:left]{\getvariable{simpleslides:title}{author}} shifted (1cm,0) ; draw \sometxt[simpleslides:sometxt:right]{\getvariable{simpleslides:title}{title}} shifted (x5,0) ; StopPage ; \stopuseMPgraphic %D We use this ornament in different backgrounds. \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:ornament}] %D We want the title to placed in a framed box. We redefine all the keys of %D \type{\setupTitle}, so that the module is easier to maintain. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor={simpleslides:backgroundcolor}, \c!align=\v!middle, \c!before={\vfill\getvalue{simpleslides:framed} [\c!width=\textwidth,\c!height=.75\textheight, \c!align=\v!middle, \c!strut=\v!no] \bgroup}, \c!after={\egroup\vfill}, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=, \c!title\c!align=,%\v!middle, \c!author\c!style=, \c!author\c!color=, \c!author\c!align=,%\v!middle, \c!date\c!style=, \c!date\c!color=, \c!date\c!align=,%\v!middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] %D We also want the slide title in a framed box. \setupSlideTitle [\c!after=, \c!alternative=layer, \c!height=2.1cm, \c!width=\textwidth, \c!color=simpleslides:backgroundcolor] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][\c!color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Rounded.tex0000644000175000017500000001371212353131551027242 0ustar hillehille%D \module %D [ file=simpleslides-s-Rounded, %D version=2009.03.30 %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module Rounded, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{Rounded} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading style Rounded} \startmodule[simpleslides-s-Rounded] \unprotect %D The page layout: \setuplayout [width=fit, leftmargin=1.5cm, rightmargin=0cm, leftmargindistance=1.2cm, rightmargindistance=0pt, height=fit, header=5.3cm, footer=0cm, topspace=.4cm, backspace=2.5cm, cutspace=3.2cm, bottomspace=0cm, bottom=0pt, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=5.3cm] \setuplayout [simpleslides:layout:vertical] [header=2.3cm] \setuplayout [simpleslides:layout:title] [header=2.3cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [y=23mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} %D We define our color scheme: \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:contrastcolor] [r=.58,g=.81,b=.58] \definecolor [simpleslides:textcolor] [r=.09,g=.2,b=.41] \definecolor [simpleslides:variantcolor] [r=.04,g=.4,b=.4] \definecolor [simpleslides:itemize:color] [simpleslides:textcolor] \setupcolors[textcolor=simpleslides:textcolor] %D We let \METAPOST\ calculate the background: \startuseMPgraphic{simpleslides:MP:common} save a,b,c,d; numeric a,b,c,d ; a = 2cm ; b = 0.7cm ; c = 6cm ; d = .7cm ; save p ; path p[] ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; z1 = llcorner Page shifted (a,0) ; z2 = ulcorner Page shifted (a,-a-b) ; z3 = ulcorner Page shifted (a+b/4,-a-b/4) ; z4 = ulcorner Page shifted (a+b,-a) ; z5 = urcorner Page shifted (0,-a) ; z6 = ulcorner Page shifted (c,0) ; z7 = ulcorner Page shifted (c,-a) ; p[1] = llcorner Page -- z1 -- z2 .. z3 .. z4 -- z7 -- z6 -- ulcorner Page -- cycle ; fill p[1] withcolor \MPcolor{simpleslides:contrastcolor} ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:vertical} StartPage ; \includeMPgraphic{simpleslides:MP:common} ; % The pagenumber cannot be part of MP:common otherwise pdftex ignores it. draw \sometxt{\framed[frame=off,width=2cm,height=2cm]% {\color[simpleslides:backgroundcolor]{\pagenumber}}} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:horizontal} StartPage; \includeMPgraphic{simpleslides:MP:common} ; draw \sometxt{\framed[frame=off,width=2cm,height=2cm]% {\color[simpleslides:backgroundcolor]{\pagenumber}}} ; z8 = ulcorner Page shifted (a/2,-2.2*a) ; z9 = z8 shifted (0,-d) ; z10 = urcorner Page shifted (-a,-2.2*a-d) ; z11 = z10 shifted (0,d) ; z12 = z8 shifted (-d/2,-d/2) ; p[2] = z8 .. z12 .. z9 -- z10 -- z11 -- cycle ; fill p[2] withcolor \MPcolor{simpleslides:textcolor} ; StopPage ; \stopuseMPgraphic \startuniqueMPgraphic{simpleslides:MP:title} StartPage ; save a,b,c,d; numeric a,b,c,d; a = 4cm ; b = 3cm ; c = 8cm ; d = .7cm ; save p; path p[] ; p[1] = ulcorner Page -- ulcorner Page shifted (PaperWidth/2,0) -- llcorner Page shifted (PaperWidth/2,0) -- llcorner Page -- cycle ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[1] withcolor \MPcolor{simpleslides:contrastcolor} ; z1 = ulcorner Page shifted (PaperWidth/2,-b) ; z2 = z1 shifted (-c,0) ; z3 = z2 shifted (0,-a) ; z4 = z3 shifted (c,0) ; z5 = z2 shifted (-1.5cm,-a/2) ; p[2] = z1 -- z2 .. z5 .. z3 -- z4 -- cycle ; fill p[2] withcolor \MPcolor{simpleslides:backgroundcolor} ; z6 = llcorner Page shifted (PaperWidth/2,0) ; z7 = 1/2[z6,z4] ; z8 = z7 shifted (-.75*b,d/2) ; z9 = z8 shifted (0,-d) ; z10 = z9 shifted (1.3*c,0) ; z11 = z10 shifted (0,d) ; z12 = z10 shifted (d/2,d/2) ; p[3] = z8 -- z9 -- z10 .. z12 .. z11 -- cycle ; fill p[3] withcolor \MPcolor{simpleslides:textcolor} ; StopPage ; \stopuniqueMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:title}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] %D The title page: \setupTitle [\c!before=\strut{\blank[0.25cm]}, \c!author\c!align=\v!right, \c!before\c!author={\blank[3.1cm]\setupnarrower[left=9cm] \startnarrower[left]}, \c!after\c!author={\stopnarrower}, \c!date\c!align=\v!right, \c!before\c!date={\blank[3.7cm]\setupnarrower[left=9cm] \startnarrower[left]}, \c!after\c!date={\stopnarrower}, \c!headcolor={simpleslides:textcolor}] %D The slide title is typeset in a layer \setupSlideTitle [\c!color={simpleslides:variantcolor}, \c!alternative=layer, \c!align=\v!center, \c!width=\textwidth, \c!style={\switchtobodyfont[\TitleSize]\bf}, \c!height=2cm, \c!after=] % \definelayer[presauthor] % [width=.5\paperwidth, % height=.5\paperheight, % x=104mm, % y=118mm] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][inmargin][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-BoxedTitle.tex0000644000175000017500000001327714264357620027725 0ustar hillehille%D \module %D [ file=simpleslides-s-BoxedTitle, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- FramedTitle style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\PRESTITdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2009 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{BoxedTitle} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading style BoxedTitle} \startmodule[simpleslides-s-BoxedTitle] \unprotect %D The page layout: \setuplayout [width=fit, margin=0cm, height=fit, header=0cm, footer=0cm, topspace=1.35cm, backspace=1cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=1.75cm] \setuplayout [simpleslides:layout:vertical] [header=0cm] \setuplayout [simpleslides:layout:title] [header=0cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=10mm,y=5mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.45\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.45\textwidth} \setupframed[simpleslides:framed] [background={BoxedTitle:Title}] %D We define our color scheme: \definecolor [simpleslides:backgroundcolor] [s=.98] \definecolor [simpleslides:variantcolor] [r=0.05,g=0.06,b=0.5] \definecolor [simpleslides:contrastcolor] [r=.46,g=0.67,b=0.84] \definecolor [simpleslides:itemize:color] [simpleslides:variantcolor] %D We let Metapost calculate the background: \startuniqueMPgraphic{MyShade} save p ; path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight smoothed 3mm ; linear_shade(p,6,\MPcolor{simpleslides:variantcolor},\MPcolor{simpleslides:contrastcolor}) ; \stopuniqueMPgraphic \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; save q ; path q ; q = unitsquare xscaled \overlaywidth yscaled \overlayheight smoothed 7mm ; fill Page withcolor black ; fill q withcolor \MPcolor{simpleslides:backgroundcolor} ; StopPage ; \stopuniqueMPgraphic \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save a, b ; numeric a, b ; save p ; path p ; a = 3.5mm ; z0 = (0,5mm) ; z1 = z0 shifted (a * NOfPages,0) ; b = arclength (z0 --z1) ; z2 = z0 shifted (PaperWidth/2 - b/2,0) ; z3 = z1 shifted (PaperWidth/2 - b/2,0) ; z4 = z3 shifted (0,a) ; z5 = z2 shifted (0,a) ; pickup pencircle scaled 0.5pt ; p = z2 -- z3 -- z4 -- z5 -- cycle ; pair za[] ; pair zb[] ; z.a1 = z2 ; z.b1 = z5 ; for i = 2 upto (NOfPages + 1): z.a[i] = z.a[(i - 1)] shifted (a,0) ; z.b[i] = z.b[(i - 1)] shifted (a,0) ; for k = 2 upto (RealPageNumber + 1) : z.a[k] = z.a[(k - 1)] shifted (a,0) ; z.b[k] = z.b[(k - 1)] shifted (a,0) ; path q[] ; q[k] = z.a[(k -1 )] -- z.a[k] -- z.b[k] -- z.b[(k - 1)] -- cycle ; circular_shade(q[k],0,\MPcolor{simpleslides:contrastcolor},\MPcolor{simpleslides:variantcolor}) ; endfor ; pickup pencircle scaled 1pt ; draw z.a[i] -- z.b[i] withcolor \MPcolor{simpleslides:variantcolor} ; endfor ; draw p withcolor \MPcolor{simpleslides:variantcolor} ; StopPage ; \stopuseMPgraphic \startuniqueMPgraphic{FilledSquare} save p ; path p ; p = unitsquare xyscaled(0.4cm,0.4cm) ; circular_shade(p,0,\MPcolor{simpleslides:contrastcolor},\MPcolor{simpleslides:variantcolor}) ; \stopuniqueMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [BoxedTitle:Title] [\uniqueMPgraphic{MyShade}] %D We want the title to placed in a framed box. We redefine all the keys of %D \type{\setupTitle}, so that the module is easier to maintain. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor={simpleslides:backgroundcolor}, \c!align=\v!middle, \c!before={\vfill\getvalue{simpleslides:framed} [\c!width=\textwidth,\c!height=.75\textheight, \c!align=\v!middle, \c!strut=\v!no] \bgroup}, \c!after={\egroup\vfill}, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=simpleslides:backgroundcolor, \c!title\c!align=,%\v!middle, \c!author\c!style=, \c!author\c!color=simpleslides:backgroundcolor, \c!author\c!align=,%\v!middle, \c!date\c!style=, \c!date\c!color=simpleslides:backgroundcolor, \c!date\c!align=,%\v!middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] %D We also want the slide title in a framed box. \setupSlideTitle [\c!after=, \c!alternative=layer, \c!height=2.1cm, \c!width=\textwidth, \c!color=simpleslides:backgroundcolor] %D In this style, the space opposite vertical pictures has the same shaded %D frame as the slide title. \setupPicture[verticalbackground=BoxedTitle:Title, verticalforegroundcolor=simpleslides:backgroundcolor] %D The symbol for the first level of itemizations. \definesymbol[1][\uniqueMPgraphic{FilledSquare}] \setupitemize[1][color=simpleslides:variantcolor] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-Swoosh.tex0000644000175000017500000002151514264357620027136 0ustar hillehille%D \module %D [ file=simpleslides-s-Swoosh, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module -- Swoosh Style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2009 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{Swoosh} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading Swoosh style} \startmodule[simpleslides-s-Swoosh] \unprotect %D The "counter" parameter controls which kind of counter will be used: \startsetups simpleslides:setup:randomizeyes \startuseMPgraphic{simpleslides:MP:randomize} if condition = 1: qw := qw shifted (-5pt - c*0.1*uniformdeviate(10), 0) ; elseif condition = 2: qw := qw shifted (0, c*0.1*uniformdeviate(10)) ; fi ; \stopuseMPgraphic \stopsetups \startsetups simpleslides:setups:dot \setuplayout [simpleslides:layout:horizontal][header=3cm,footer=0cm] \startuseMPgraphic{simpleslides:MP:counter} if NOfPages > 1: numeric prog ; prog = RealPageNumber/NOfPages - 0.005 ; fi ; if RealPageNumber > 1: if condition = 1: z11 = (prog * PaperWidth, PaperHeight) ; z12 = (x11, 0) ; z13 = (z11 -- z12) intersectionpoint qw ; draw z13 withcolor \MPcolor{simpleslides:altcontrastcolor} ; elseif condition = 2: z14 = (0, (PaperHeight - prog * PaperHeight)) ; z15 = (PaperWidth, y14) ; z16 = (z14 -- z15) intersectionpoint qw ; draw z16 withcolor \MPcolor{simpleslides:altcontrastcolor} ; fi ; fi ; \stopuseMPgraphic \stopsetups \startsetups simpleslides:setups:circle \setuplayout [simpleslides:layout:horizontal][header=3cm] \startuseMPgraphic{simpleslides:MP:counter} save b, s, t, p, circcenter, theta, pic ; path p[] ; pair t[] ; pair s[] ; pair circcenter ; circcenter = lrcorner Page shifted (-1cm, 1cm) ; pair zt, zr, zb, zl ; picture pic ; b = 1.5cm ; if RealPageNumber > 1: theta = (RealPageNumber - 1)/(NOfPages - 1) ; p[4] = fullcircle scaled b rotated 90 ; p[4] := p[4] shifted circcenter ; fill p[4] withcolor \MPcolor{simpleslides:altcontrastcolor} ; t[0] = center p[4] ; t[1] = point 1 along p[4] ; t[2] = point -theta along p[4] ; t[3] = point -theta/2 along p[4] ; p[5] = t[0] -- t[1] .. t[3] .. t[2] -- cycle ; fill p[5] withcolor \MPcolor{simpleslides:contrastcolor} ; for i = 1 upto NOfPages : s[i] = point i/(NOfPages -1) along p[4] ; pickup pencircle scaled 1pt ; draw s[i] -- t[0] withcolor \MPcolor{simpleslides:backgroundcolor} ; endfor ; zt = t[0] shifted (0, b * 0.2) ; zr = t[0] shifted (b * 0.2, 0) ; zb = t[0] shifted (0, -b * 0.2) ; zl = t[0] shifted (-b * 0.2, 0) ; p[3] = zt .. zr .. zb .. zl .. cycle ; fill p[3] withcolor \MPcolor{simpleslides:contrastcolor} ; draw p[3] withcolor \MPcolor{simpleslides:backgroundcolor} ; label(textext("\switchtobodyfont[10pt]\startcolor[simpleslides:backgroundcolor]\pagenumber\stopcolor"),center p[3]) ; fi ; \stopuseMPgraphic \stopsetups \doifsetupselse{simpleslides:setups:\moduleparameter{simpleslides}{counter}} {\setups{simpleslides:setups:\moduleparameter{simpleslides}{counter}}} {\setups{simpleslides:setups:circle}} \doif% {\moduleparameter{simpleslides}{randomize}} {yes} {\setups{simpleslides:setup:randomizeyes}} %D First we change the page layout, adding more space on the top. \setuplayout [width=fit, margin=0cm, height=fit, header=3cm, footer=0.8cm, topspace=.6cm, backspace=1cm, location=singlesided] \setuplayout [simpleslides:layout:vertical] [header=0.8cm] \setuplayout [simpleslides:layout:title] [header=0.8cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=10mm,y=2mm] \setupcombinations[distance=1.85cm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.45\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.45\textwidth} \defineframed[simpleslides:framed] [frame=off,offset=0pt, top=\vss,bottom=\vss] %D We define our color scheme: \definecolor [simpleslides:backgroundcolor] [r=.88,g=.92,b=.95] \definecolor [simpleslides:contrastcolor] [r=.4,g=.6,b=.8] \definecolor [simpleslides:altcontrastcolor] [r=.1,g=.1,b=.4] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] \definecolor [simpleslides:textcolor] [simpleslides:altcontrastcolor] \setupcolors[textcolor=simpleslides:textcolor] %D We use \METAPOST\ to draw backgrounds. \startuseMPgraphic{simpleslides:MP:horizontal} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; numeric c ; c = PaperWidth * 0.4 ; numeric d ; d = 2.2cm ; numeric e ; e = PaperWidth / 46.9 ; numeric condition ; condition = 1 ; save ql, qr, qt, qw, qnw, qc ; path ql, qr, qt, qw, qnw, qc ; ql = ulcorner Page -- llcorner Page ; qr = lrcorner Page -- urcorner Page ; qt = urcorner Page -- ulcorner Page ; pickup pencircle scaled 4pt ; z1 = ulcorner Page ; z2 = (x1, y1 - d - 2*e) ; z3 = (x1 + 4pt, y2) ; z4 = (x3 + c, y2 + 2*e) ; z5 = (x4 + c, y2) ; z6 = (x5 + c, y2 + 2*e) ; z7 = (x6 + c, y2) ; z8 = (x7, y1) ; qw = z2 .. z3 .. z4 .. z5 .. z6 .. z7 ; \includeMPgraphic{simpleslides:MP:randomize} ; z9 = ql intersectionpoint qw ; z10 = qr intersectionpoint qw ; qw := qw cutbefore z9 cutafter z10 ; fill qr & qt & ql -- qw -- cycle withcolor \MPcolor{simpleslides:contrastcolor} ; draw qw withcolor white ; \includeMPgraphic{simpleslides:MP:counter} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:vertical} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; numeric c ; c = PaperHeight * 0.4 ; numeric d ; d = 2.2cm ; numeric e ; e = PaperHeight / 46.9 ; if NOfPages > 1: numeric prog ; prog = RealPageNumber/NOfPages - 0.005 ; fi ; numeric condition ; condition = 2 ; save ql, qr, qt, qw, qc, qu, qb ; path ql, qr, qt, qw, qc, qu, qb ; pickup pencircle scaled 4pt ; z1 = ulcorner Page ; z3 = center Page ; z4 = (x3 - 2*e, y1) ; z6 = (x3 + 2*e, y4 - c) ; z7 = (x3 - 2*e, y6 - c) ; z8 = (x3 + 2*e, y7 - c) ; z9 = (x3 - 2*e, y8 - c) ; qw = z4 .. z6 .. z7 .. z8 .. z9 ; qt = ulcorner Page -- urcorner Page ; ql = llcorner Page -- ulcorner Page ; qb = llcorner Page -- lrcorner Page ; \includeMPgraphic{simpleslides:MP:randomize} ; z10 = qt intersectionpoint qw ; qu = ulcorner Page -- z10 ; z11 = qb intersectionpoint qw ; qr = z11 -- llcorner Page ; qw := qw cutbefore z10 cutafter z11 ; fill qw -- qr & ql & qu -- cycle withcolor \MPcolor{simpleslides:contrastcolor} ; draw qw withcolor white ; \includeMPgraphic{simpleslides:MP:counter} ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \setupTitle [\c!headcolor={simpleslides:altcontrastcolor}] %D We want the title to placed in a framed box. We redefine all the keys of %D \type{\setupTitle}, so that the module is easier to maintain. \setupSlideTitle [\c!alternative=layer, \c!color=white, \c!align=\v!center, \c!width=\textwidth, \c!height=2cm, \c!after=] \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor={simpleslides:altcontrastcolor}, \c!align=\v!middle, \c!before=\vfill, \c!after=\vfill, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=simpleslides:altcontrastcolor, \c!title\c!align=\v!middle, \c!author\c!style=, \c!author\c!color=simpleslides:altcontrastcolor, \c!author\c!align=\v!middle, \c!date\c!style=, \c!date\c!color=simpleslides:altcontrastcolor, \c!date\c!align=\v!middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] % % %D We want the title to be of a specific height % % \setuphead[SlideTitle] % [\c!after=, % \c!alternative=\v!text, % \c!color=white, % \c!command=\doSlideTitle] % % \define[2]\doSlideTitle % {\setlayer[simpleslides:layer:slidetitle]% % {\getvalue{simpleslides:framed}[\c!width=\textwidth,\c!height=1.1cm, % \c!align=\v!right] % {#1#2}}} %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color=simpleslides:itemize:color] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-FramedTitle.tex0000644000175000017500000001105014264357620030045 0ustar hillehille%D \module %D [ file=simpleslides-s-FramedTitle, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- FramedTitle style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{FramedTitle} style for the presentation %D module. It is loaded at runtime. The most interesting part is the scratch %D counter at the bottom of the page, which is explained in the metafun manual. \writestatus{simpleslides}{loading style FramedTitle} \startmodule[simpleslides-s-FramedTitle] \unprotect %D The page layout: \setuplayout [width=fit, margin=0cm, height=fit, header=2.2cm, footer=.8cm, topspace=.6cm, backspace=1cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=2.2cm] \setuplayout [simpleslides:layout:vertical] [header=0.5cm] \setuplayout [simpleslides:layout:title] [header=0.5cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=10mm,y=2mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} \setupframed[simpleslides:framed] [corner=round, background=color,backgroundcolor={simpleslides:contrastcolor}] %D We define our color scheme: \definecolor [simpleslides:backgroundcolor] [s=.9] \definecolor [simpleslides:variantcolor] [s=.7] \definecolor [simpleslides:contrastcolor] [r=.5] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D We let Metapost calculate the background: \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; StopPage ; \stopuniqueMPgraphic \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save a,b ; numeric a,b ; a = 7mm ; b = PaperWidth/2 - NOfPages * 2.5pt ; save p,q; path p,q ; p =((0,5mm) -- (1mm,11mm)) shifted (b,0) ; q =((-8mm,5mm) -- (0,11mm) ) shifted (b,0) ; pickup pencircle scaled 3pt ; for i := NOfPages-1 downto 1: draw (if i mod 5 = 0 : q else : p fi) shifted (i*5pt, 0pt) withcolor if i < RealPageNumber : \MPcolor{simpleslides:contrastcolor} else : \MPcolor{simpleslides:variantcolor} fi ; endfor ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] %D We want the title to placed in a framed box. We redefine all the keys of %D \type{\setupTitle}, so that the module is easier to maintain. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor={simpleslides:backgroundcolor}, \c!align=\v!middle, \c!before={\vfill\getvalue{simpleslides:framed} [\c!width=\textwidth,\c!height=.75\textheight, \c!align=\v!middle, \c!strut=\v!no] \bgroup}, \c!after={\egroup\vfill}, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=simpleslides:backgroundcolor, \c!title\c!align=\v!middle, \c!author\c!style=, \c!author\c!color=simpleslides:backgroundcolor, \c!author\c!align=\v!middle, \c!date\c!style=, \c!date\c!color=simpleslides:backgroundcolor, \c!date\c!align=\v!middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] %D We also want the slide title in a framed box. \setupSlideTitle [\c!after=, \c!alternative=layer, \c!height=2.1cm, \c!width=\textwidth, \c!color=simpleslides:backgroundcolor] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color=simpleslides:contrastcolor] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-NarrowStripes.tex0000644000175000017500000001234314264357620030475 0ustar hillehille%D \module %D [ file=simpleslides-s-NarrowStripes, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module NarrowStripes, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{NarrowStripes} style for the presentation %D module. It is loaded at runtime. The theme for this style is inspired by the %D \quotation{Berkeley} theme of the \LaTeX\ Beamer package. \writestatus{simpleslides}{loading NarrowStripes style} \startmodule[simpleslides-s-NarrowStripes] \unprotect %D First, we change the page layout. \setuplayout [width=fit, leftmargin=1.5cm, rightmargin=0cm, leftmargindistance=1.8cm, rightmargindistance=0pt, height=fit, header=2.5cm, footer=0cm, topspace=.4cm, backspace=3.2cm, cutspace=3.7cm, bottomspace=0cm, bottom=0pt, location=singlesided] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [width=\paperwidth, height=\paperheight, x=32mm] %D These macros are used for placing figures/pictures: \define\NormalHeight{\textheight} \define\NormalWidth{.476\textwidth} \define\PictureFrameHeight{\textheight} \define\PictureFrameWidth{.476\textwidth} %D This module has three color schemes, blue, green and red. \startsetups simpleslides:setups:blue \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:altcontrastcolor] [r=0,g=0,b=1] \definecolor [simpleslides:variantcolor] [r=.69,g=.69,b=.97] \definecolor [simpleslides:contrastcolor] [b=.8] \definecolor [simpleslides:itemize:color] [b=.8] \stopsetups \startsetups simpleslides:setups:red \definecolor [simpleslides:itemize:color] [r=.8] \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:altcontrastcolor] [r=1] \definecolor [simpleslides:variantcolor] [b=.69,g=.69,r=.97] \definecolor [simpleslides:contrastcolor] [r=.8] \stopsetups \startsetups simpleslides:setups:green \definecolor [simpleslides:itemize:color] [g=.4] \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:altcontrastcolor] [g=.4] \definecolor [simpleslides:variantcolor] [b=.68,r=.68,g=.79] \definecolor [simpleslides:contrastcolor] [g=.4] \stopsetups %D Now we choose the scheme that the user asked for \doifsetupselse{simpleslides:setups:\moduleparameter{simpleslides}{color}} {\setups{simpleslides:setups:\moduleparameter{simpleslides}{color}}} {\setups{simpleslides:setups:blue}} %D We let Metapost calculate the background: \definetextext[simpleslides:sometxt:text] {\TaspresentSometxtText} \unexpanded\def\TaspresentSometxtText#1% {\framed[\c!frame=\v!off, \c!width=2.25cm, \c!height=2.25cm] {\switchtobodyfont[12pt]\color[simpleslides:contrastcolor]{#1}}} \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save a,b,c ; numeric a,b,c ; a = 2.25cm ; b = 0.4 cm ; c = PaperHeight - a/2 ; z1 = ulcorner Page shifted (0,-a) ; z2 = ulcorner Page shifted (0,-a-b) ; z3 = urcorner Page shifted (0,-a-b) ; z4 = urcorner Page shifted (0,-a) ; z5 = ulcorner Page shifted (a,0) ; z6 = ulcorner Page shifted (a+b,0) ; z7 = llcorner Page shifted (a+b,0) ; z8 = llcorner Page shifted (a,0) ; z9 = ulcorner Page shifted (a,-a) ; z10 = ulcorner Page shifted (a+b,-a) ; z11 = ulcorner Page shifted (a+b,-a-b) ; z12 = ulcorner Page shifted (a,-a-b) ; save p; path p[] ; p[1] = z1 -- z2 -- z3 -- z4 -- cycle ; p[2] = z5 -- z6 -- z7 -- z8 -- cycle ; p[3] = z9 -- z10 --z11 -- z12 -- cycle ; linear_shade(p[1],1, \MPcolor{simpleslides:backgroundcolor}, \MPcolor{simpleslides:altcontrastcolor}) ; linear_shade(p[2],2, \MPcolor{simpleslides:altcontrastcolor}, \MPcolor{simpleslides:backgroundcolor}) ; fill p[3] withcolor \MPcolor{simpleslides:variantcolor} ; if RealPageNumber > 1: draw \sometxt[simpleslides:sometxt:text]{\pagenumber} shifted (0,PaperHeight-a) ; fi ; StopPage ; \stopuseMPgraphic \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:ornament}] %D this sets up the title page: \setupTitle [\c!title\c!color={simpleslides:contrastcolor}, \c!author\c!color={simpleslides:contrastcolor}, \c!date\c!color={simpleslides:contrastcolor}] %D The slide title is typeset in a layer \setupSlideTitle [\c!color={simpleslides:contrastcolor}, \c!alternative=layer, \c!align=\v!center, \c!width=\textwidth, \c!height=2.25cm, \c!after=] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][inmargin][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-BigNumber.tex0000644000175000017500000001463314264357620027531 0ustar hillehille%D \module %D [ file=simpleslides-s-BigNumber, %D version=2022.07.13, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- Big Number Style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{BigNumber} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading Big Number style} \startmodule[simpleslides-s-BigNumber] \unprotect %D First, we change the page layout to have more space all around \setuplayout [width=fit, margin=2cm, height=fit, leftmargindistance=.8cm, rightmargindistance=0cm, header=18mm, footer=0cm, topspace=.8cm, backspace=1.9cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=18mm] \setuplayout [simpleslides:layout:vertical] [header=0mm] \setuplayout [simpleslides:layout:title] [header=0mm] \setuplayer[simpleslides:layer:slidetitle] [width=\paperwidth, height=\paperheight,x=20mm] %D Next we define generic frames, which will be used by other macros to %D get a consistent look and feel. \defineframed[simpleslides:framed:small] [frame=off,offset=0pt, width=1.7cm,align=middle] \setupcombinations[distance=2.5em] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.46\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.46\textwidth} %D This module has two color schemes, a blue one and a red one. \startsetups simpleslides:setups:blue \definecolor [simpleslides:contrastcolor] [r=0.8,g=0.8,b=0.9] \definecolor [simpleslides:backgroundcolor] [s=.88] \definecolor [simpleslides:textcolor] [s=0] \stopsetups \startsetups simpleslides:setups:red \definecolor [simpleslides:contrastcolor] [r=0.4] \definecolor [simpleslides:backgroundcolor] [s=.35] \definecolor [simpleslides:textcolor] [s=1] \stopsetups %D Now we choose the scheme that the user asked for \doifsetupselse{simpleslides:setups:\moduleparameter{simpleslides}{color}} {\setups{simpleslides:setups:\moduleparameter{simpleslides}{color}}} {\setups{simpleslides:setups:blue}} \setupcolors[textcolor={simpleslides:textcolor}] %D The characteristic feature of this module is that the page number is drawn in %D big letters on the slide. First we define the font used to draw the number. \definefontsynonym [BigNumberFont] [name:texgyreherosbold] \definefont [NumberFont] [BigNumberFont at 30pt] %D We use \METAPOST\ to draw backgrounds. First, we define a few helper macros %D to place text inside \METAPOST \definetextext[simpleslides:sometxt:left] {\TaspresentSometxtLeft} \definetextext[simpleslides:sometxt:right]{\TaspresentSometxtRight} \unexpanded\def\TaspresentSometxtLeft#1% {\getvalue{simpleslides:framed:small} {\color[simpleslides:contrastcolor] {\NumberFont #1}}} \unexpanded\def\TaspresentSometxtRight#1% {\getvalue{simpleslides:framed:small} {\NumberFont \color[simpleslides:backgroundcolor]{#1}}} %D Now we define a \METAPOST| graphic that draws the number. The exact %D dimensions have been found by trial and error. \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; save Left, Right ; picture Left, Right ; Left := textext("\NumberFont \color[simpleslides:contrastcolor]{\pagenumber}") ysized 4cm ; Right := textext("\NumberFont \color[simpleslides:backgroundcolor]{\pagenumber}") ysized 4cm ; save LeftBox, RightBox ; path LeftBox, RightBox ; save split ; numeric split ; split := if RealPageNumber < 10 : 1/2 else : 3/4 fi ; %split := 1/2 ; LeftBox := llcorner Left -- split[llcorner Left, lrcorner Left] -- split[ulcorner Left, urcorner Left] -- ulcorner Left --cycle ; RightBox := lrcorner Right -- split[lrcorner Right, llcorner Right] -- split[urcorner Right, ulcorner Right] -- urcorner Right --cycle ; save shft ; numeric shft ; shft = arclength(llcorner Right -- lrcorner Right) ; if RealPageNumber >= 10 : RightBox := RightBox shifted (shft/2, 0) ; fi; clip Left to LeftBox ; clip Right to RightBox ; save corner; pair corner ; corner := lrcorner Field[Text][Text] shifted (.2cm,0.3cm) ; % same as x2 labeloffset := 0bp; label.ulft(Left, corner) ; label.urt (Right, corner) ; StopPage ; \stopuseMPgraphic %D We also use \METAPOST\ to draw the horizontal and vertical page backgrounds. \startuniqueMPgraphic{simpleslides:MP:horizontal} StartPage ; fill Page withcolor \MPcolor{simpleslides:contrastcolor} ; fill Field[Text][Text] enlarged 0.2cm withcolor \MPcolor{simpleslides:backgroundcolor} ; StopPage ; \stopuniqueMPgraphic \startuniqueMPgraphic{simpleslides:MP:vertical} StartPage ; fill Page withcolor \MPcolor{simpleslides:contrastcolor} ; z1 = urcorner Field[Text][Text] shifted (.2cm,0) ; z2 = lrcorner Field[Text][Text] shifted (.2cm,-.2cm) ; z3 = z1 shifted (-8.05cm,0) ; z4 = (x3,y2) ; save Main ; path Main ; Main := z1 -- z2 -- z4 -- z3 --cycle ; fill Main withcolor \MPcolor{simpleslides:backgroundcolor} ; StopPage ; \stopuniqueMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] %D The slide title is placed on the top of the text area. The layer takes care %D of the positioning. \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!height=2.5cm, \c!command=\doSlideTitle] \setupTitle [\c!headcolor=simpleslides:textcolor, \c!title\c!color=simpleslides:textcolor, \c!date\c!color=simpleslides:textcolor, \c!author\c!color=simpleslides:textcolor] %D Squares are used as the first level of itemizations \definesymbol[1][$\square$] \setupitemize[1][inmargin] %\setupitemize[each][joinedup,unpacked] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/simpleslides/s-simpleslides-BlackBoard.tex0000644000175000017500000001056512353131551027631 0ustar hillehille%D \module %D [ file=simpleslides-s-BottomSquares, %D version=2009.03.30 %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- BottomSquares style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate | update , %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2007 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{BottomSquares} style for the presentation %D module. It is loaded at runtime. This minimalistic design is inspired by a %D presentation Taco gave at EuroTeX 2006. \writestatus{simpleslides}{loading module BottomSquares} \startmodule[simpleslides-s-BottomSquares] \unprotect %D The page layout: \setuplayout [width=fit, height=middle, margin=0cm, height=fit, margindistance=0cm, header=0cm, footer=0cm, topspace=1cm, bottomspace=2cm, backspace=1.5cm, location=singlesided] \setuplayout [simpleslides:layout:horizontal][header=1.4cm] \setuplayout [simpleslides:layout:vertical] [header=0cm] \setuplayout [simpleslides:layout:title] [header=0cm] %D We also specify the position of the slidetitle. \setuplayer[simpleslides:layer:slidetitle] [x=15mm] %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.5\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.5\textwidth} % %D We define a generic frame that is used by the slide title. % % \defineframed[simpleslides:framed] % [frame=off,offset=0pt, % top=\vss,bottom=\vss] %D We define our color scheme: \definecolor [simpleslides:backgroundcolor] [s=.95] \definecolor [simpleslides:contrastcolor] [r=.7,g=.1,b=.3] \definecolor [simpleslides:variantcolor] [s=.3] \definecolor [simpleslides:itemize:color] [simpleslides:contrastcolor] %D We let \METAPOST\ calculate the background: %AM: Why not implement this as an interaction bar? \startuseMPgraphic{simpleslides:MP:ornament} StartPage ; picture p ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; p := image (externalfigure "/tmp/blackboard.jpg") ; addto currentpicture also p ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:ornament] [\useMPgraphic{simpleslides:MP:ornament}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:ornament}] %D We want the title information to be colored \setupTitle [color=simpleslides:contrastcolor] %D The slide title is typeset in a layer \setupSlideTitle [\c!color={simpleslides:contrastcolor}, \c!alternative=layer, \c!align=\v!center, \c!width=\textwidth, \c!height=3cm, \c!after=] %D attempt! \startuniqueMPgraphic{Important} save p, q ; path p[], q[] ; p[1] = unitsquare xyscaled (\overlaywidth,\overlayheight) ; z[1] = ulcorner p[1] ; z[2] = llcorner p[1] ; save a ; numeric a ; a = arclength (z[1] -- z[2])/15 ; z[3] = ulcorner p[1] shifted (a,0) ; z[4] = urcorner p[1] shifted (-a,0) ; z[5] = urcorner p[1] shifted (0,-a) ; z[6] = lrcorner p[1] shifted (0,a) ; z[7] = lrcorner p[1] shifted (-a,0) ; z[8] = llcorner p[1] shifted (a,0) ; z[9] = llcorner p[1] shifted (0,a) ; z[10] = ulcorner p[1] shifted (0,-a) ; z[11] = z[8] shifted (5mm,0) ; z[12] = z[5] shifted (0,-5mm) ; p[2] = z[3] --- z[4] .. z[5] --- z[6] .. z[7] --- z[8] .. z[9] --- z[10] .. cycle ; q[1] = z[11] --- z[7] .. z[6] --- z[12] ; for i = 3 upto 22: pickup pencircle scaled (i*0.5mm) ; draw q[1] withcolor transparent ("normal", 0.01, black) ; endfor pickup pencircle scaled 2pt ; fill p[2] withcolor \MPcolor{simpleslides:contrastcolor} ; %draw z[8] withcolor red ; \stopuniqueMPgraphic \defineoverlay[VImportant][\useMPgraphic{Important}] \define[1]\Important% {\blank[line]\midaligned{{\framed[height=5cm,width=0.9\textwidth,frame=off,background=VImportant,align=middle,offset=0pt,top=\vss,bottom=\vss,strut=no,foregroundcolor=simpleslides:backgroundcolor]{#1}}}} %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] \setupitemize[1][color={simpleslides:itemize:color}] \protect \stopmodule \endinput context-modules-20240428/tex/context/third/letter/0000755000175000017500000000000014613513620020765 5ustar hillehillecontext-modules-20240428/tex/context/third/letter/style/0000755000175000017500000000000014613513620022125 5ustar hillehillecontext-modules-20240428/tex/context/third/letter/style/letter-imp-blockstyle.mkiv0000644000175000017500000000306013713611553027253 0ustar hillehille%D \module %D [ file=letter-imp-blockstyle, %D version=2011.12.24, %D title=\CONTEXT\ Letter Style, %D subtitle=Blockstyle basics, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[default] \setuplettersection [\v!head,\v!date,\v!reference,\v!specialnotation,\v!address] [\c!alternative=\v!blockstyle] \setupletteroptions [\c!marking=\v!no] \setupletterelements [\v!layer] [\v!lettermain, \v!letternext, \v!nexthead, \v!lefthead, \v!righthead, \v!foot, \v!nextfoot, \v!topmark, \v!botmark, \v!cutmark] \setupletterelements [\v!section] [\v!head, \v!date, \v!reference, \v!specialnotation, \v!address, \v!title, \v!opening, \v!subject, \v!content, \v!closing, \v!appendices] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-dina.mkiv0000644000175000017500000000244513713611553026021 0ustar hillehille%D \module %D [ file=letter-imp-dina, %D version=2011.10.29, %D title=\CONTEXT\ Letter Style, %D subtitle=DIN 676 A, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[dinb] \setupletterlayout [\v!firstpage] [\c!topspace=97.4mm] \setupletterlayer [\v!topmark] [\c!y=87mm] \setupletterlayer [\v!botmark] [\c!y=192mm] \setupletterframe [\v!head] [\c!height=10.1mm] \setupletterlayer [\v!address] [\c!y=32mm] \setupletterlayer [\v!reference] [\c!y=80.4mm] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-classic-blue.mkiv0000644000175000017500000000276713713611553027464 0ustar hillehille%D \module %D [ file=resume-imp-classic-blue, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Classic style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[classic] \definecolor [resume:forename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:surename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:title] [r=0.35,g=0.35,b=0.35] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.25,g=0.50,b=0.75] \definecolor [resume:rule] [r=0.25,g=0.50,b=0.75] \definecolor [resume:section] [r=0.20,g=0.40,b=0.65] \definecolor [resume:subsection] [r=0.20,g=0.40,b=0.65] \definecolor [resume:separator] [r=0.00,g=0.00,b=0.00] \endinputcontext-modules-20240428/tex/context/third/letter/style/resume-imp-casual-blue.mkiv0000644000175000017500000000276513713611553027311 0ustar hillehille%D \module %D [ file=resume-imp-casual-blue, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Casual style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[casual] \definecolor [resume:forename] [r=0.65,g=0.65,b=0.65] \definecolor [resume:surename] [r=0.45,g=0.45,b=0.45] \definecolor [resume:title] [r=0.00,g=0.00,b=0.00] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.35,g=0.35,b=0.35] \definecolor [resume:rule] [r=0.25,g=0.50,b=0.75] \definecolor [resume:section] [r=0.20,g=0.40,b=0.65] \definecolor [resume:subsection] [r=0.20,g=0.40,b=0.65] \definecolor [resume:separator] [r=0.25,g=0.50,b=0.75] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-modified.mkiv0000644000175000017500000000302113713611553026655 0ustar hillehille%D \module %D [ file=letter-imp-modified, %D version=2011.12.24, %D title=\CONTEXT\ Letter Style, %D subtitle=Modified block style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[blockstyle] \setupletterlayout [\v!firstpage,\v!secondpage] [\c!backspace=1in, \c!width=\v!middle, \c!topspace=1in, \c!header=0in, \c!footer=0in, \c!height=\v!middle] \setupletterlayout [\v!secondpage] [\c!header=1in] \setuplettersection [\v!head,\v!reference,\v!date,\v!specialnotation,\v!closing] [\c!leftmargin=.5\textwidth] \setuplettersection [\v!closing] [\c!spaceafter={2*\v!line}] \setupletterlayer [\v!nexthead] [\c!alternative=\v!hanging] \setupletteroptions [\c!whitespace=\v!line] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-french.mkiv0000644000175000017500000000410013713611553026341 0ustar hillehille%D \module %D [ file=letter-imp-french, %D version=2013.06.21, %D title=\CONTEXT\ Letter Style, %D subtitle=French style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[dinb] \setupletterlayout [\v!firstpage,\v!secondpage] [\c!backspace=25mm, \c!width=\v!middle, \c!topspace=95mm, \c!bottomspace=25mm, \c!height=\v!fit] \setupletterlayout [\v!secondpage] [\c!topspace=15mm, \c!header=10mm] \setupletterlayer [\v!cutmark,\v!botmark] [\c!state=\v!stop] \setupletterlayer [\v!head] [\c!x=\backspace, \c!y=25mm] \setupletterlayer [\v!backaddress] [\c!state=\v!stop] \setupletterlayer [\v!address] [\c!x=107mm, \c!y=55mm] \setupletterlayer [\v!location] [\c!x=107mm, \c!y=30mm, \c!alternative=\v!french] \setupletterlayer [\v!reference] [\c!state=\v!stop] \setuplettersection [\v!closing] [\c!spaceinbetween={\v!samepage,2*\v!line}] \setupletterdescription [\v!enclosure] [\c!location=\v!left, \c!width=\v!fit, \c!headstyle=\tf] \setuplettersection [\v!opening] [\c!spaceafter={2*\v!line}] \setuplettersection [\v!content] [\c!spaceafter={\v!samepage,2*\v!line}] \setuplettersection [\v!opening,\v!closing] [\c!alternative=\v!french] \setupletteroptions [\c!whitespace=\v!line] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-simplified.mkiv0000644000175000017500000000315413713611553027231 0ustar hillehille%D \module %D [ file=letter-imp-simplified, %D version=2011.12.24, %D title=\CONTEXT\ Letter Style, %D subtitle=Simplified style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[blockstyle] \setupletterlayout [\v!firstpage,\v!secondpage] [\c!backspace=1in, \c!width=\v!middle, \c!topspace=1in, \c!header=0in, \c!footer=0in, \c!height=\v!middle] \setupletterlayout [\v!secondpage] [\c!header=.5in] \setuplettersection [\v!closing] [\c!spaceafter={2*\v!line}] \setuplettersection [\v!nexthead,\v!closing] [\c!alternative=\v!simplified] \setupletteroptions [\c!whitespace=\v!line] \setupletterelements [\v!section] [\v!head \v!date, \v!reference, \v!specialnotation, \v!address, \v!title, \v!subject, \v!content, \v!closing, \v!appendices] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-semiblock.mkiv0000644000175000017500000000307513713611553027056 0ustar hillehille%D \module %D [ file=letter-imp-semiblock, %D version=2011.12.24, %D title=\CONTEXT\ Letter Style, %D subtitle=Semiblock style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[blockstyle] \setupletterlayout [\v!firstpage,\v!secondpage] [\c!backspace=1in, \c!width=\v!middle, \c!topspace=1in, \c!header=0in, \c!footer=0in, \c!height=\v!middle] \setupletterlayout [\v!secondpage] [\c!header=.5in] \setuplettersection [\v!head,\v!reference,\v!date,\v!specialnotation,\v!closing] [\c!leftmargin=.5\textwidth] \setuplettersection [\v!closing] [\c!spaceafter={2*\v!line}] \setupletterlayer [\v!nexthead] [\c!alternative=\v!semiblock] \setupletteroptions [\c!whitespace=\v!line, \c!indenting={\v!yes,\v!medium,\v!first}] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-swissleft.mkiv0000644000175000017500000000261413713611553027127 0ustar hillehille%D \module %D [ file=letter-imp-swissleft, %D version=2011.10.29, %D title=\CONTEXT\ Letter Style, %D subtitle=Swiss left style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[dinb] \setupletterlayer [\v!head] [\c!y=8mm] \setupletterlayer [\v!address] [\c!x=20mm, \c!y=40.5mm] \setupletterlayer [\v!backaddress] [\c!x=20mm] \setupletterframe [\v!address,\v!backaddress] [\c!width=100mm] %\setupletterlayer % [\v!reference] % [\c!y=89mm, % \c!spaceafter=\v!line] \setupletterlayer [\v!reference] [\c!y=89mm] \setupletteroptions [\c!marking=\v!no] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-default.mkiv0000644000175000017500000000575013713611553026534 0ustar hillehille%D \module %D [ file=letter-imp-default, %D version=2012.06.10, %D title=\CONTEXT\ User Module, %D subtitle=Default letter style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \setupletter [\c!date=\currentdate] \setupletterlayer [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!x=\backspace, \c!y=\topspace] \setupletterframe [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!width=\textwidth] \setupletterlayer [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!preset=\v!left\v!bottom, \c!x=\backspace, \c!y=\bottomspace] \setupletterframe [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!width=\textwidth, \c!height=\footerheight] %\setupletterlayer % [\v!head] % [\c!rulewidth=\hsize, % \c!fromrule=\v!no, % \c!rulecolor=\v!black, % \c!alternative=\v!left] \setupletterlayer [\v!nexthead,\v!nextfoot] [\c!state=\v!next] \setupletterlayer [\v!lefthead,\v!leftfoot] [\c!state=\v!left] \setupletterlayer [\v!righthead,\v!rightfoot] [\c!state=\v!right] \setupletterlayer [\v!backaddress] [\c!alternative=\v!auto, \c!separator={, }] \setupletterlayer [\v!reference] [\c!alternative=\v!a, \c!list=\c!date] \setuplettersection [\v!closing] [\c!spaceafter=\v!line, \c!spaceinbetween={\v!samepage,2*\v!line}] \defineletterelements [\v!layer] [\v!lettermain, \v!letternext, \v!head, \v!nexthead, \v!lefthead, \v!righthead, \v!foot, \v!nextfoot, \v!topmark, \v!botmark, \v!cutmark, \v!endmark, \v!usermark, \v!backaddress, \v!address, \v!reference, \v!location] \defineletterelements [\v!section] [\v!title, \v!subject, \v!opening, \v!content, \v!closing, \v!appendices] \defineletterelements [\v!description] [\v!copy, \v!enclosure, \v!postscript] \setupletterdescription [\c!copy] [\c!headcommand=\lettertext\v!copy, \c!textcommand=\correspondenceparameter\c!copy] \setupletterdescription [\c!enclosure] [\c!headcommand=\lettertext\v!enclosure, \c!textcommand=\correspondenceparameter\c!enclosure] \setupletterdescription [\c!postscript] [\c!headcommand=\lettertext\v!postscript, \c!textcommand=\correspondenceparameter\c!postscript] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-knuth.mkiv0000644000175000017500000000325413713611553026236 0ustar hillehille%D \module %D [ file=letter-imp-knuth, %D version=2011.12.26, %D title=\CONTEXT\ User Module, %D subtitle=Knuth letter style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[default] \setupletterstyle [\v!firstpage,\v!secondpage] [\c!backspace=1in, \c!cutspace=1in, \c!width=\v!middle] \setupletterstyle [\v!firstpage] [\c!header=0pt, \c!topspace=2.2in, \c!bottomspace=1.5in, \c!height=\v!middle] \setupletterlayer [\v!nexthead] [\c!alternative=\v!knuth] \setuplettersection [\v!address] [\c!alternative=\v!knuth] \setuplettersection [\v!closing] [\c!alternative=\v!knuth, \c!spaceinbetween=1cm] \setupletteroptions [\c!whitespace=\v!line] \setupletterelements [\v!layer] [\v!lettermain, \v!letternext, \v!nexthead] \setupletterelements [\v!section] [\v!address, \v!opening, \v!content, \v!closing] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-casual-grey.mkiv0000644000175000017500000000276513713611553027330 0ustar hillehille%D \module %D [ file=resume-imp-casual-grey, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Casual style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[casual] \definecolor [resume:forename] [r=0.65,g=0.65,b=0.65] \definecolor [resume:surename] [r=0.45,g=0.45,b=0.45] \definecolor [resume:title] [r=0.00,g=0.00,b=0.00] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.35,g=0.35,b=0.35] \definecolor [resume:rule] [r=0.75,g=0.75,b=0.75] \definecolor [resume:section] [r=0.35,g=0.35,b=0.35] \definecolor [resume:subsection] [r=0.35,g=0.35,b=0.35] \definecolor [resume:separator] [r=0.35,g=0.35,b=0.35] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-dutch.mkiv0000644000175000017500000000346213713611553026215 0ustar hillehille%D \module %D [ file=letter-imp-dutch, %D version=2011.11.01, %D title=\CONTEXT\ Letter Style, %D subtitle=Dutch style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[dinb] \setupletterlayout [\v!firstpage,\v!secondpage] [\c!topspace=105mm, \c!bottomspace=30mm, \c!backspace=33mm, \c!width=\v!middle, \c!height=\v!middle] \setupletterlayout [\v!secondpage] [\c!topspace=20mm, \c!header=15mm, \c!headerdistance=15mm, \c!height=\v!middle] \setupletterlayer [\v!topmark,\v!cutmark] [\c!state=\v!repeat, \c!x=3.5mm] \setuplettersection [\v!subject] [\c!spaceafter=\v!line] \setuplettersection [\v!closing] [\c!spaceinbetween=\v!line] \setupletterlayer [\v!address] [\c!y=55mm] \setupletterframe [\v!address] [\c!height=35mm, \c!width=80mm] \setupletterlayer [\v!backaddress] [\c!y=50mm] \setupletterframe [\v!backaddress] [\c!width=80mm, \c!height=5mm, \c!bottomframe=\v!on] \setupletterlayer [\v!botmark] [\c!state=\v!stop] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-default.mkiv0000644000175000017500000000655313713611553026537 0ustar hillehille%D \module %D [ file=resume-imp-default, %D version=2012.02.04, %D title=\CONTEXT\ Resume Style, %D subtitle=Default style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \setupresumelayout [\v!firstpage,\v!secondpage] [\c!topspace=2.5cm, \c!header=0mm, % 2.0cm, \c!headerdistance=0pt, \c!height=\v!middle, \c!footerdistance=0pt, \c!footer=0mm, % 2.0cm, \c!backspace=2.5cm, \c!width=\v!middle, \c!cutspace=3.5cm, \c!grid=\v!no] \setupresumelayer [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!x=\backspace, \c!y=\topspace] \setupresumeframe [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!width=\textwidth] \setupresumelayer [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!preset=\v!left\v!bottom, \c!x=\backspace, \c!y=\bottomspace] \setupresumeframe [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!width=\textwidth, \c!height=\footerheight] \setupresumelayer [\v!nexthead,\v!nextfoot] [\c!state=\v!next] \setupresumelayer [\v!lefthead,\v!leftfoot] [\c!state=\v!left] \setupresumelayer [\v!righthead,\v!rightfoot] [\c!state=\v!right] \setupresumesection [\v!closing] [\c!spaceafter=\v!line, \c!spaceinbetween={\v!samepage,2*\v!line}] \setupresumeparagraph [\v!two\v!columns] [\c!n=2, \c!alternative=\v!columns, \c!distance=\emwidth] \setupresumeparagraph [\v!two\v!columns:1] [\c!alternative=\c!lefttext, \c!width=6\emwidth] \setupresumeparagraph [\v!two\v!columns:2] [\c!alternative=\v!default, \c!width=\dimexpr\textwidth-\namedresumeparagraphparameter{\v!two\v!columns:1}\c!width-\namedresumeparagraphparameter{\v!two\v!columns}\c!distance\relax] \setupresumeparagraph [\v!three\v!columns] [\c!n=3, \c!alternative=\v!columns, \c!distance=\emwidth] \setupresumeparagraph [\v!three\v!columns:1] [\c!alternative=\c!lefttext, \c!width=6\emwidth] \setupresumeparagraph [\v!three\v!columns:2] [\c!alternative=\v!default, \c!width=\dimexpr\textwidth-\namedresumeparagraphparameter{\v!three\v!columns:1}\c!width-\namedresumeparagraphparameter{\v!three\v!columns:3}\c!width-\namedresumeparagraphparameter{\v!three\v!columns}\c!distance*2\relax] \setupresumeparagraph [\v!three\v!columns:3] [\c!alternative=\c!righttext, \c!width=6\emwidth] \defineresumeelements [\v!layer] [\v!resumemain, \v!resumenext, \v!head, \v!nexthead, \v!lefthead, \v!righthead, \v!foot, \v!nextfoot, \v!topmark, \v!botmark, \v!cutmark, \v!endmark, \v!usermark] \defineresumeelements [\v!section] [\v!head, \v!content, \v!closing] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-classic-green.mkiv0000644000175000017500000000277013713611553027627 0ustar hillehille%D \module %D [ file=resume-imp-classic-green, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Classic style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[classic] \definecolor [resume:forename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:surename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:title] [r=0.35,g=0.35,b=0.35] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.30,g=0.65,b=0.15] \definecolor [resume:rule] [r=0.55,g=0.85,b=0.35] \definecolor [resume:section] [r=0.30,g=0.65,b=0.15] \definecolor [resume:subsection] [r=0.30,g=0.65,b=0.15] \definecolor [resume:separator] [r=0.00,g=0.00,b=0.00] \endinputcontext-modules-20240428/tex/context/third/letter/style/memo-imp-default.mkiv0000644000175000017500000000422113713611553026162 0ustar hillehille%D \module %D [ file=memo-imp-default, %D version=2012.02.04, %D title=\CONTEXT\ User Module, %D subtitle=Default memo style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \setupmemo [\c!date=\currentdate] \setupmemooptions [\c!marking=\v!no] \setupmemolayer [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!x=\backspace, \c!y=\topspace] \setupmemoframe [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!width=\textwidth] \setupmemolayer [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!preset=\v!left\v!bottom, \c!x=\backspace, \c!y=\bottomspace] \setupmemoframe [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!width=\textwidth, \c!height=\footerheight] \setupmemolayer [\v!nexthead,\v!nextfoot] [\c!state=\v!next] \setupmemolayer [\v!lefthead,\v!leftfoot] [\c!state=\v!left] \setupmemolayer [\v!righthead,\v!rightfoot] [\c!state=\v!right] \definememoelements [\v!layer] [\v!memomain, \v!memonext, \v!head, \v!nexthead, \v!lefthead, \v!righthead, \v!foot, \v!nextfoot, \v!leftfoot, \v!rightfoot, \v!topmark, \v!botmark, \v!cutmark, \v!endmark, \v!usermark] \definememoelements [\v!section] [\v!head \v!date, \v!reference, \v!specialnotation, \v!address, \v!title, \v!opening, \v!subject, \v!content, \v!closing, \v!appendices] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-casual.mkiv0000644000175000017500000001060513713611553026354 0ustar hillehille%D \module %D [ file=resume-imp-casual, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Casual style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[default] % The colors are black by default, use one of the color styles to change them. \definecolor [resume:forename] [black] \definecolor [resume:surename] [black] \definecolor [resume:title] [black] \definecolor [resume:quote] [black] \definecolor [resume:address] [black] \definecolor [resume:rule] [black] \definecolor [resume:section] [black] \definecolor [resume:subsection] [black] \definecolor [resume:separator] [black] % Values for the margins etc. \definemeasure [resume:margin] [.150\textwidth] \definemeasure [resume:distance] [.025\textwidth] % Layout % \setupresumelayout % [\v!firstpage,\v!secondpage] % [\c!backspace=20mm, % \c!width=168mm, % \c!header=0pt, % \c!footer=0pt, % \c!topspace=30mm, % \c!bottomspace=40mm, % \c!height=\v!fit] % Section commands \define[1]\ResumeSectionCommand {\hbox to \hsize\bgroup \blackrule[\c!width=\measure{resume:margin},\c!height=1\exheight,\c!depth=-.5\exheight,\c!color=resume:rule]% \hskip\measure{resume:distance}\relax \vtop\bgroup \hsize\dimexpr\hsize-\measure{resume:margin}-\measure{resume:distance}\relax #1% \egroup \egroup} \setupresumehead [\v!resume\v!section] [\c!align=\v!flushleft, \c!style=\tfb, \c!color=modern:section, \c!textcommand=\ResumeSectionCommand] \define[1]\ResumeSubsectionCommand {\hbox to \hsize\bgroup \hskip\dimexpr\measure{resume:margin}+\measure{resume:distance}\relax \vtop\bgroup \hsize\dimexpr\hsize-\measure{resume:margin}-\measure{resume:distance}\relax #1% \egroup \egroup} \setupresumehead [\v!resume\v!subsection] [\c!align=\v!flushleft, \c!style=\tfa, \c!color=modern:subsection, \c!textcommand=\ResumeSubsectionCommand] % Paragraphs \setupresumeparagraph [\v!two\v!columns] [\c!distance=\measure{resume:distance}] \setupresumeparagraph [\v!two\v!columns:1] [\c!width=\measure{resume:margin}] % Layer \setupresumesection [\v!head] [\c!alternative=\v!casual] \setupresumeframe [\v!head] [\c!height=3.5cm, \c!frame=\v!off, \c!align={\v!wide,\v!middle}] % Layer \setupresumelayer [\v!foot] [\c!alternative=\v!casual, \c!preset=\v!left\v!bottom, \c!x=\backspace, \c!y=2cm, \c!state=\v!repeat, \c!list={mobile,phone,fax,email,info}] \setupresumeframe [\v!foot] [\c!frame=\v!off, \c!width=\textwidth, \c!height=2cm, \c!align={\v!middle,\v!low}] \setupresumelayer [\v!nextfoot] [\c!alternative=\v!casual, \c!preset=\v!left\v!bottom, \c!x=\backspace, \c!y=2cm, \c!state=\v!repeat] \setupresumeframe [\v!nextfoot] [\c!frame=\v!off, \c!width=\textwidth, \c!height=2cm, \c!align={\v!flushright,\v!low}] % Font and color settings \setupresumestyle [firstname] [\c!style=\tfd,\c!color=resume:forename] \setupresumestyle [familyname][\c!style=\tfd,\c!color=resume:surename] \setupresumestyle [quote] [\c!style=\tf, \c!color=resume:quote] \setupresumestyle [street] [\c!style=\it, \c!color=resume:address] \setupresumestyle [town] [\c!style=\it, \c!color=resume:address] \setupresumestyle [mobile] [\c!style=\it, \c!color=resume:address] \setupresumestyle [phone] [\c!style=\it, \c!color=resume:address] \setupresumestyle [fax] [\c!style=\it, \c!color=resume:address] \setupresumestyle [email] [\c!style=\it, \c!color=resume:address] \setupresumestyle [info] [\c!style=\it, \c!color=resume:address] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-classic-grey.mkiv0000644000175000017500000000277013713611553027475 0ustar hillehille%D \module %D [ file=resume-imp-classic-grey, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Classic style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[classic] \definecolor [resume:forename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:surename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:title] [r=0.35,g=0.35,b=0.35] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.35,g=0.35,b=0.35] \definecolor [resume:rule] [r=0.75,g=0.75,b=0.75] \definecolor [resume:section] [r=0.35,g=0.35,b=0.35] \definecolor [resume:subsection] [r=0.35,g=0.35,b=0.35] \definecolor [resume:separator] [r=0.00,g=0.00,b=0.00] \endinput context-modules-20240428/tex/context/third/letter/style/memo-imp-table.mkiv0000644000175000017500000000252013713611553025625 0ustar hillehille%D \module %D [ file=memo-imp-table, %D version=2012.02.04, %D title=\CONTEXT\ Memo Style, %D subtitle=Table style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \usememostyle[default] \setupmemolayout [\v!firstpage,\v!secondpage] [\c!header=0in] \setupmemosection [\v!head] [\c!alternative=\v!table] \setupmemolayer [\v!foot] [\c!state=\v!repeat, \c!alternative=\v!pagenumber] \setupmemooptions [\c!whitespace=\v!line] \definememoelements [\v!section] [\v!head, \v!content, \v!closing, \v!appendices] \endinput context-modules-20240428/tex/context/third/letter/style/memo-imp-margin.mkiv0000644000175000017500000000264713713611553026025 0ustar hillehille%D \module %D [ file=memo-imp-margin, %D version=2012.06.10, %D title=\CONTEXT\ Memo Style, %D subtitle=Margin style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \usememostyle[default] \setupmemolayout [\v!firstpage,\v!secondpage] [\c!header=0in] \setupmemosection [\v!head] [\c!alternative=\v!margin] \setupmemolayer [\v!foot] [\c!state=\v!repeat, \c!alternative=\v!pagenumber] \setupmemooptions [\c!whitespace=\v!line] \setupmemostyle [\c!fromname,\c!date,\c!toname,\c!subject] [\c!titlestyle=\tx] \definememoelements [\v!section] [\v!head, \v!content, \v!closing, \v!appendices] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-swiss.mkiv0000644000175000017500000000255513713611553026260 0ustar hillehille%D \module %D [ file=letter-imp-swiss, %D version=2011.10.29, %D title=\CONTEXT\ Letter Style, %D subtitle=Swiss style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[dinb] \setupletterlayer [\v!head] [\c!y=8mm] \setupletterlayer [\v!address,\v!backaddress] [\c!preset=\v!right\v!top, \c!x=8mm] \setupletterframe [\v!address,\v!backaddress] [\c!width=90mm] %\setupletterlayer % [\v!reference] % [\c!y=98.5mm, % \c!spaceafter=\v!line] \setupletterlayer [\v!reference] [\c!y=98.5mm] \setupletteroptions [\c!marking=\v!no] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-dinb.mkiv0000644000175000017500000000602213713611553026015 0ustar hillehille%D \module %D [ file=letter-imp-dinb, %D version=2011.10.29, %D title=\CONTEXT\ Letter Style, %D subtitle=DIN 676 B, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[default] \setupletterlayout [\v!firstpage,\v!secondpage] [\c!topspace=114.3mm, \c!bottomspace=30mm, % unknown value! \c!backspace=24.1mm, \c!header=0mm, \c!footer=0mm, % unknown value! \c!width=\v!middle, \c!height=\v!middle] \setupletterlayout [\v!secondpage] [\c!topspace=20mm, \c!bottomspace=20mm, \c!header=10mm, \c!footer=10mm] \setuplettersection [\v!title,\v!subject,\v!opening,\v!appendices] [\c!spacebefore=, \c!spaceafter=\v!line] \setuplettersection [\v!title] [\c!align=\v!middle, \c!style=\v!bold] \setuplettersection [\v!subject] [\c!spaceafter={2*\v!line}, \c!style=\v!bold] \setuplettersection [\v!content] [\c!spaceafter={\v!samepage,\v!line}] \setuplettersection [\v!closing] [\c!spaceafter={3*\v!line}] \setupletterlayer [\v!topmark,\v!botmark,\v!cutmark] [\c!state=\v!start, \c!x=5mm, \c!symbol=\v!cutmark] \setupletterframe [\v!topmark,\v!botmark,\v!cutmark] [\c!strut=\v!no] \setupletterlayer [\v!topmark] [\c!y=105mm] \setupletterlayer [\v!botmark] [\c!y=210mm] \setupletterlayer [\v!cutmark] [\c!y=.5\paperheight] \setupletterlayer [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!x=\backspace, \c!y=16.9mm] \setupletterframe [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!width=\textwidth, \c!height=28.1mm] \setupletterlayer [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!y=20mm] \setupletterframe [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!height=10mm] \setupletterlayer [\v!address] [\c!x=\backspace, \c!y=50mm] \setupletterframe [\v!address] [\c!width=85mm, \c!height=40mm] \setupletterlayer [\v!backaddress] [\c!x=\backspace, \c!y=\dimexpr\namedletterlayerparameter\v!address\c!y-\namedletterframeparameter\v!backaddress\c!height\relax, \c!style=\tfxx] \setupletterframe [\v!backaddress] [\c!height=5mm, \c!width=85mm] \setupletterlayer [\v!reference] [\c!x=\backspace, \c!y=93.2mm] \setupletterframe [\v!reference] [\c!width=\textwidth, \c!height=8.4mm] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-casual-red.mkiv0000644000175000017500000000276413713611553027133 0ustar hillehille%D \module %D [ file=resume-imp-casual-red, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Casual style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[casual] \definecolor [resume:forename] [r=0.65,g=0.65,b=0.65] \definecolor [resume:surename] [r=0.45,g=0.45,b=0.45] \definecolor [resume:title] [r=0.00,g=0.00,b=0.00] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.35,g=0.35,b=0.35] \definecolor [resume:rule] [r=1.00,g=0.30,b=0.30] \definecolor [resume:section] [r=0.95,g=0.20,b=0.20] \definecolor [resume:subsection] [r=0.95,g=0.20,b=0.20] \definecolor [resume:separator] [r=0.95,g=0.20,b=0.20] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-hanging.mkiv0000644000175000017500000000315413713611553026517 0ustar hillehille%D \module %D [ file=letter-imp-hanging, %D version=2011.12.24, %D title=\CONTEXT\ Letter Style, %D subtitle=Hanging indented style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[blockstyle] \setupletterlayout [\v!firstpage,\v!secondpage] [\c!backspace=1in, \c!width=\v!middle, \c!topspace=1in, \c!header=0in, \c!footer=0in, \c!height=\v!fit] \setupletterlayout [\v!secondpage] [\c!header=1in] \setuplettersection [\v!head,\v!reference,\v!date,\v!specialnotation,\v!closing] [\c!leftmargin=.5\textwidth] \setuplettersection [\v!content] [\c!leftmargin=1.5em, \c!indenting={\v!yes,-1.5em}] \setuplettersection [\v!closing] [\c!spaceafter={2*\v!line}] \setupletterlayer [\v!nexthead] [\c!alternative=\v!hanging] \setupletteroptions [\c!whitespace=\v!line] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-setups.mkiv0000644000175000017500000000360313713611553026426 0ustar hillehille%D \module %D [ file=letter-imp-setups, %D version=2012.01.01, %D title=\CONTEXT\ User Module, %D subtitle=Setups style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \setupletterlayer [\v!head,\v!nexthead,\v!lefthead,\v!righthead] [\c!alternative=\v!setups] \setupletterlayer [\v!foot,\v!nextfoot,\v!leftfoot,\v!rightfoot] [\c!alternative=\v!setups] \setupletterlayer [\v!address,\v!backaddress] [\c!alternative=\v!setups] \setupletterlayer [\v!reference,\v!location] [\c!alternative=\v!setups] % \setupletterlayer % [\v!topmark,\v!botmark,\v!cutmark,\v!endmark,\v!usermark] % [\c!alternative=\v!setups] \setupletterlayer [\v!lettermain,\v!letternext] [\c!alternative=\v!setups] \setuplettersection % only used for blockstyle layouts [\v!head,\v!date,\v!reference,\v!specialnotation,\v!address] [\c!alternative=\v!setups] \setuplettersection % default sections [\v!title,\v!subject,\v!opening,\v!content,\v!closing,\v!appendices] [\c!alternative=\v!setups] % \setuplettersection % otherwise no text is shown % [\v!content] % [\c!alternative=\s!default] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-fullblock.mkiv0000644000175000017500000000263213713611553027061 0ustar hillehille%D \module %D [ file=letter-imp-fullblock, %D version=2011.12.24, %D title=\CONTEXT\ Letter Style, %D subtitle=Fullblock style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[blockstyle] \setupletterlayout [\v!firstpage,\v!secondpage] [\c!backspace=1in, \c!width=\v!middle, \c!topspace=1in, \c!header=0in, \c!footer=0in, \c!height=\v!fit] \setupletterlayout [\v!secondpage] [\c!header=.5in] \setuplettersection [\v!closing] [\c!spaceafter={2*\v!line}] \setupletterlayer [\v!nexthead] [\c!alternative=\v!fullblock] \setupletteroptions [\c!whitespace=\v!line] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-casual-green.mkiv0000644000175000017500000000276513713611553027462 0ustar hillehille%D \module %D [ file=resume-imp-casual-blue, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Casual style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[casual] \definecolor [resume:forename] [r=0.65,g=0.65,b=0.65] \definecolor [resume:surename] [r=0.45,g=0.45,b=0.45] \definecolor [resume:title] [r=0.00,g=0.00,b=0.00] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.35,g=0.35,b=0.35] \definecolor [resume:rule] [r=0.55,g=0.85,b=0.35] \definecolor [resume:section] [r=0.30,g=0.65,b=0.15] \definecolor [resume:subsection] [r=0.30,g=0.65,b=0.15] \definecolor [resume:separator] [r=0.30,g=0.65,b=0.15] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-classic-orange.mkiv0000644000175000017500000000277113713611553030003 0ustar hillehille%D \module %D [ file=resume-imp-classic-orange, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Classic style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[classic] \definecolor [resume:forename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:surename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:title] [r=0.35,g=0.35,b=0.35] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.95,g=0.55,b=0.15] \definecolor [resume:rule] [r=1.00,g=0.65,b=0.20] \definecolor [resume:section] [r=0.95,g=0.55,b=0.15] \definecolor [resume:subsection] [r=0.95,g=0.55,b=0.15] \definecolor [resume:separator] [r=0.00,g=0.00,b=0.00] \endinputcontext-modules-20240428/tex/context/third/letter/style/resume-imp-casual-orange.mkiv0000644000175000017500000000276713713611553027637 0ustar hillehille%D \module %D [ file=resume-imp-casual-orange, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Casual style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[casual] \definecolor [resume:forename] [r=0.65,g=0.65,b=0.65] \definecolor [resume:surename] [r=0.45,g=0.45,b=0.45] \definecolor [resume:title] [r=0.00,g=0.00,b=0.00] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.35,g=0.35,b=0.35] \definecolor [resume:rule] [r=1.00,g=0.65,b=0.20] \definecolor [resume:section] [r=0.95,g=0.55,b=0.15] \definecolor [resume:subsection] [r=0.95,g=0.55,b=0.15] \definecolor [resume:separator] [r=0.95,g=0.55,b=0.15] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-classic.mkiv0000644000175000017500000001022113713611553026517 0ustar hillehille%D \module %D [ file=resume-imp-classic, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Classic style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[default] % The colors are black by default, use one of the color styles to change them. \definecolor [resume:forename] [black] \definecolor [resume:surename] [black] \definecolor [resume:title] [black] \definecolor [resume:quote] [black] \definecolor [resume:address] [black] \definecolor [resume:rule] [black] \definecolor [resume:section] [black] \definecolor [resume:subsection] [black] \definecolor [resume:separator] [black] % Values for the margins etc. \definemeasure [resume:margin] [.150\textwidth] \definemeasure [resume:distance] [.025\textwidth] % Layout % \setupresumelayout % [\v!firstpage,\v!secondpage] % [\c!backspace=20mm, % \c!width=168mm, % \c!header=0pt, % \c!footer=0pt, % \c!topspace=30mm, % \c!bottomspace=40mm, % \c!height=\v!fit] % Section commands \define[1]\ResumeSectionCommand {\hbox to \hsize\bgroup \blackrule[\c!width=\measure{resume:margin},\c!height=1\exheight,\c!depth=-.5\exheight,\c!color=resume:rule]% \hskip\measure{resume:distance}\relax \vtop\bgroup \hsize\dimexpr\hsize-\measure{resume:margin}-\measure{resume:distance}\relax #1% \egroup \egroup} \setupresumehead [\v!resume\v!section] [\c!align=\v!flushleft, \c!style=\tfb, \c!color=modern:section, \c!textcommand=\ResumeSectionCommand] \define[1]\ResumeSubsectionCommand {\hbox to \hsize\bgroup \hskip\dimexpr\measure{resume:margin}+\measure{resume:distance}\relax \vtop\bgroup \hsize\dimexpr\hsize-\measure{resume:margin}-\measure{resume:distance}\relax #1% \egroup \egroup} \setupresumehead [\v!resume\v!subsection] [\c!align=\v!flushleft, \c!style=\tfa, \c!color=modern:subsection, \c!textcommand=\ResumeSubsectionCommand] % Paragraphs \setupresumeparagraph [\v!two\v!columns] [\c!distance=\measure{resume:distance}] \setupresumeparagraph [\v!two\v!columns:1] [\c!width=\measure{resume:margin}] % Layer \setupresumesection [\v!head] [\c!alternative=\v!classic] \setupresumeframe [\v!head] [\c!height=3.5cm, \c!frame=\v!off, \c!align={\v!wide,\v!middle}] % Layer \setupresumelayer [\v!nextfoot] [\c!alternative=\v!classic, \c!preset=\v!left\v!bottom, \c!x=\backspace, \c!y=2cm, \c!state=\v!repeat] \setupresumeframe [\v!nextfoot] [\c!frame=\v!off, \c!width=\textwidth, \c!height=2cm, \c!align={\v!flushright,\v!lohi}] % Font and color settings \setupresumestyle [firstname] [\c!style=\tfd,\c!color=resume:forename] \setupresumestyle [familyname][\c!style=\tfd,\c!color=resume:surename] \setupresumestyle [quote] [\c!style=\tf, \c!color=resume:quote] \setupresumestyle [title] [\c!style=\it, \c!color=resume:title] \setupresumestyle [street] [\c!style=\it, \c!color=resume:address] \setupresumestyle [town] [\c!style=\it, \c!color=resume:address] \setupresumestyle [mobile] [\c!style=\it, \c!color=resume:address] \setupresumestyle [phone] [\c!style=\it, \c!color=resume:address] \setupresumestyle [fax] [\c!style=\it, \c!color=resume:address] \setupresumestyle [email] [\c!style=\it, \c!color=resume:address] \setupresumestyle [info] [\c!style=\it, \c!color=resume:address] \endinput context-modules-20240428/tex/context/third/letter/style/memo-imp-memo.mkiv0000644000175000017500000000261613713611553025501 0ustar hillehille%D \module %D [ file=memo-imp-memo, %D version=2012.02.04, %D title=\CONTEXT\ Memo Style, %D subtitle=Memo style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \usememostyle[default] \setupmemolayout [\v!firstpage,\v!secondpage] [\c!header=0in] \setupmemosection [\v!head] [\c!alternative=\v!memo] \setupmemolayer [\v!foot] [\c!state=\v!repeat, \c!alternative=\v!pagenumber] \setupmemosection [\v!closing] [\c!leftmargin=.5\textwidth] \setupmemooptions [\c!whitespace=\v!line] \definememoelements [\v!section] [\v!head, \v!content, \v!closing, \v!appendices] \endinput context-modules-20240428/tex/context/third/letter/style/letter-imp-gbrief.mkiv0000644000175000017500000000267713713611553026353 0ustar hillehille%D \module %D [ file=letter-imp-gbrief, %D version=2011.11.01, %D title=\CONTEXT\ Letter Style, %D subtitle=g-brief, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useletterstyle[dinb] \setupletterlayer [\v!reference] [\c!alternative=\v!a] \setupletterlayer [\v!backaddress] [\c!separator={~\mathematics\cdot~}] \setupletterframe [\v!backaddress] [\c!bottomframe=\v!on] \setupletterlayer [\v!head,\v!foot,\v!nexthead] [\c!alternative=\v!gbrief] \setupletterlayer [\v!head] [\c!style={\switchtobodyfont[20pt]\sc}] \setupletterlayer [\v!foot] [\c!style=\txx] \setupletterlayer [\v!nexthead] [\c!style=\v!smallcaps] \endinput context-modules-20240428/tex/context/third/letter/style/resume-imp-classic-red.mkiv0000644000175000017500000000276613713611553027306 0ustar hillehille%D \module %D [ file=resume-imp-classic-red, %D version=2014.10.31, %D title=\CONTEXT\ Resume Style, %D subtitle=Classic style, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \useresumestyle[classic] \definecolor [resume:forename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:surename] [r=0.00,g=0.00,b=0.00] \definecolor [resume:title] [r=0.35,g=0.35,b=0.35] \definecolor [resume:quote] [r=0.35,g=0.35,b=0.35] \definecolor [resume:address] [r=0.95,g=0.20,b=0.20] \definecolor [resume:rule] [r=1.00,g=0.30,b=0.30] \definecolor [resume:section] [r=0.95,g=0.20,b=0.20] \definecolor [resume:subsection] [r=0.95,g=0.20,b=0.20] \definecolor [resume:separator] [r=0.00,g=0.00,b=0.00] \endinputcontext-modules-20240428/tex/context/third/letter/base/0000755000175000017500000000000014613513620021677 5ustar hillehillecontext-modules-20240428/tex/context/third/letter/base/s-cor-02.mkvi0000644000175000017500000003346514133105703024040 0ustar hillehille%D \module %D [ file=s-cor-02, %D version=2012.12.09, %D title=\CONTEXT\ User Module, %D subtitle=Memos, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \unprotect \startmodule[memo] \usemodule[cor-00] \setupmodule [\c!style=memo] % Namespaces \installnamespace {memolayerrenderings} \installnamespace {memosectionrenderings} % Commands \definecorrespondence[\v!memo] \def\definememolayer {\dodoubleargument\correspondence_layer_define [\v!memo]} \def\definememosection {\dodoubleargument\correspondence_section_define [\v!memo]} \def\definememodescription {\dodoubleargument\correspondence_description_define [\v!memo]} \def\definememohead {\dodoubleargument\correspondence_head_define [\v!memo]} \def\definememolayeralternative {\doquadrupleempty\correspondence_layer_alternative_define [\v!memo]} \def\definememosectionalternative {\doquadrupleempty\correspondence_section_alternative_define [\v!memo]} \def\definememoelements {\dotripleargument\correspondence_elements_define [\v!memo]} \def\setupmemoelements {\dotripleargument\correspondence_elements_define [\v!memo]} \def\setupmemostyle {\dotripleargument\correspondence_style_setup [\v!memo]} \def\setupmemolayer {\dotripleargument\correspondence_layer_setup [\v!memo]} \def\setupmemoframe {\dotripleargument\correspondence_frame_setup [\v!memo]} \def\setupmemolayout {\dotripleargument\correspondence_layout_setup [\v!memo]} \def\setupmemosection {\dotripleargument\correspondence_section_setup [\v!memo]} \def\setupmemodescription {\dotripleargument\correspondence_description_setup [\v!memo]} \def\setupmemohead {\dotripleargument\correspondence_head_setup [\v!memo]} \def\setupmemooptions {\dodoubleargument\correspondence_option_setup [\v!memo]} \def\setupmemolayeralternative {\dotripleargument\correspondence_layer_alternative_setup [\v!memo]} \def\setupmemosectionalternative {\dotripleargument\correspondence_section_alternative_setup [\v!memo]} \def\usememostyle {\dodoubleargument\correspondence_file_load [\v!memo]} \def\definememoelement {\doquadrupleargument\correspondence_element_define [\v!memo]} \def\memoelement {\doquadrupleargument\correspondence_element_place [\v!memo]} \def\namedmemolayerparameter #element{\namedcorrespondencelayerparameter {\v!memo:#element}} \def\namedmemoframeparameter #element{\namedcorrespondenceframeparameter {\v!memo:#element}} \def\namedmemosectionparameter#element{\namedcorrespondencesectionparameter{\v!memo:#element}} % Heading \definememohead [\v!memo\v!section] \definememohead [\v!memo\v!subsection] % Layers \definememolayer [\v!head] \definememolayer [\v!nexthead] \definememolayer [\v!lefthead] \definememolayer [\v!righthead] \definememolayer [\v!foot] \definememolayer [\v!nextfoot] \definememolayer [\v!leftfoot] \definememolayer [\v!rightfoot] \definememolayer [\v!topmark] \definememolayer [\v!botmark] \definememolayer [\v!cutmark] \definememolayer [\v!endmark] \definememolayer [\v!usermark] \definememolayer [\v!memomain] \definememolayer [\v!memonext] % Section \definememosection [\v!head] \definememosection [\v!date] \definememosection [\v!reference] \definememosection [\v!specialnotation] \definememosection [\v!address] \definememosection [\v!title] \definememosection [\v!opening] \definememosection [\v!subject] \definememosection [\v!content] \definememosection [\v!closing] \definememosection [\v!appendices] % Descriptions \definememodescription [\v!copy] \definememodescription [\v!enclosure] \definememodescription [\v!postscript] % Setups % layer: head % setups -> see s-cor-00.mkvi % layer: nexthead % setups -> see s-cor-00.mkvi % layer: lefthead % setups -> see s-cor-00.mkvi % layer: righthead % setups -> see s-cor-00.mkvi % layer: foot \definememolayeralternative[\v!foot:\v!pagenumber][\c!renderingsetup=\????memosectionrenderings:\v!foot:\v!pagenumber] \startsetups[\????memosectionrenderings:\v!foot:\v!pagenumber] \centerbox{\hbox{\begstrut\leftmemotext\c!pagenumber\subpagenumber\rightmemotext\c!pagenumber\lastsubpagenumber\endstrut}} \stopsetups % layer: topmark % setups -> see s-cor-00.mkvi % layer: botmark % setups -> see s-cor-00.mkvi % layer: cutmark % setups -> see s-cor-00.mkvi % layer: endmark % setups -> see s-cor-00.mkvi % layer: usermark % setups -> see s-cor-00.mkvi % layer: memomain % setups -> see s-cor-00.mkvi % layer: memonext % setups -> see s-cor-00.mkvi % section: head \definememosectionalternative[\v!head:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!head:\s!default] \definememosectionalternative[\v!head:\v!memo ][\c!renderingsetup=\????memosectionrenderings:\v!head:\v!memo ] \definememosectionalternative[\v!head:\v!table ][\c!renderingsetup=\????memosectionrenderings:\v!head:\v!table ] \definememosectionalternative[\v!head:\v!margin ][\c!renderingsetup=\????memosectionrenderings:\v!head:\v!margin ] \startsetups[\????memosectionrenderings:\v!memo:\v!head:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!fromaddress \stopsetups \startsetups[\????memosectionrenderings:\v!head:\v!memo] \def\\{\correspondencesectionparameter\c!separator} \startpacked \doifsomething{\correspondenceparameter\c!fromname}{\memotext\c!fromname \correspondenceparameter\c!fromname \par} \doifsomething{\correspondenceparameter\c!date }{\memotext\c!date \correspondenceparameter\c!date \par} \doifsomething{\correspondenceparameter\c!toname }{\memotext\c!toname \correspondenceparameter\c!toname \par} \doifsomething{\correspondenceparameter\c!subject }{\memotext\c!subject \correspondenceparameter\c!subject \par} \stoppacked \stopsetups \unexpanded\def\correspondence_memo_head_table#element% {\doifsomething{\correspondenceparameter#element} {\NC % label \def\currentcorrespondencestyle{\v!memo:#element}% \usecorrespondencestylestyleandcolor\c!titlestyle\c!titlecolor \memotext#element \EQ % text \def\currentcorrespondencestyle{\v!memo:#element}% \usecorrespondencestylestyleandcolor\c!textstyle\c!textcolor \correspondenceparameter#element \NC\NR}} \startsetups[\????memosectionrenderings:\v!head:\v!table] \def\\{\correspondencesectionparameter\c!separator} \starttabulate[|l|p|] \correspondence_memo_head_table\c!fromname \correspondence_memo_head_table\c!date \correspondence_memo_head_table\c!toname \correspondence_memo_head_table\c!subject \stoptabulate \stopsetups \unexpanded\def\correspondence_memo_head_margin#element% {\doifsomething{\correspondenceparameter#element} {\def\currentcorrespondencestyle{\v!memo:#element}% \dontleavehmode\llap\bgroup % label \usecorrespondencestylestyleandcolor\c!titlestyle\c!titlecolor \memotext#element \hskip\leftmargindistance \egroup \bgroup \usecorrespondencestylestyleandcolor\c!textstyle\c!textcolor \correspondenceparameter#element \egroup \par}} \startsetups[\????memosectionrenderings:\v!head:\v!margin] \def\\{\correspondencesectionparameter\c!separator} \startpacked \correspondence_memo_head_margin\c!fromname \correspondence_memo_head_margin\c!date \correspondence_memo_head_margin\c!toname \correspondence_memo_head_margin\c!subject \stoppacked \stopsetups % section: date \definememosectionalternative[\v!date:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!date:\s!default] \startsetups[\????memosectionrenderings:\v!date:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!date \stopsetups % section: reference \definememosectionalternative[\v!reference:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!reference:\s!default] \startsetups[\????memosectionrenderings:\v!reference:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!reference \stopsetups % section: specialnotation \definememosectionalternative[\v!specialnotation:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!specialnotation:\s!default] \startsetups[\????memosectionrenderings:\v!specialnotation:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!dispatch \stopsetups % section: address \definememosectionalternative[\v!address:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!address:\s!default] \startsetups[\????memosectionrenderings:\v!address:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!toname \doifsomething{\correspondenceparameter\c!toname}\\ \correspondenceparameter\c!toaddress \stopsetups % section: title \definememosectionalternative[\v!title:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!title:\s!default] \startsetups[\????memosectionrenderings:\v!title:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!title \stopsetups % section: opening \definememosectionalternative[\v!opening:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!opening:\s!default] \startsetups[\????memosectionrenderings:\v!opening:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!opening \stopsetups % section: subject \definememosectionalternative[\v!subject:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!subject:\s!default] \startsetups[\????memosectionrenderings:\v!subject:\s!default] \def\\{\correspondencesectionparameter\c!separator} \memotext\c!subject\correspondenceparameter\c!subject \stopsetups % section: content \definememosectionalternative[\v!content:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!content:\s!default] \startsetups[\????memosectionrenderings:\v!content:\s!default] \getbufferdata[\????correspondencebuffer\v!memo] \stopsetups % section: closing \definememosectionalternative[\v!closing:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!closing:\s!default] \startsetups[\????memosectionrenderings:\v!closing:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!closing \doifsomething{\correspondenceparameter\c!signature} {\blank[\correspondencesectionparameter\c!spaceinbetween] \correspondenceparameter\c!signature} \stopsetups % section: appendices \definememosectionalternative[\v!appendices:\s!default][\c!renderingsetup=\????memosectionrenderings:\v!appendices:\s!default] \startsetups[\????memosectionrenderings:\v!appendices:\s!default] \def\\{\correspondencesectionparameter\c!separator} \startpacked \normalexpanded{\processcommalistwithparameters[\correspondence_elements_access\v!memo\v!description]}{\correspondence_description_place[\v!memo]} \stoppacked \stopsetups % for backwards compatibility \startsetups[\v!memo:\v!place] \placecorrespondence[\v!memo] \stopsetups % Extras \appendtoks \ifx\currentcorrespondence\v!memo \processallactionsinset [\correspondenceoptionparameter\c!option] [ \v!test=>{\usememostyle[test]}, \v!setups=>{\usememostyle[setups]}]% \fi \to \t_correspondence_before \appendtoks \ifx\currentcorrespondence\v!memo \doif{\correspondenceoptionparameter\c!marking}\v!no{\setupmemolayer[\v!topmark,\v!botmark,\v!cutmark,\v!endmark,\v!usermark][\c!state=\v!stop]}% \fi \to \t_correspondence_before % Labels \definelabelclass[memo] % pagenumber: \setupmemotext[\s!en][\c!pagenumber={Page , of }] \setupmemotext[\s!nl][\c!pagenumber=] \setupmemotext[\s!de][\c!pagenumber={Seite , von }] \setupmemotext[\s!fr][\c!pagenumber=] \setupmemotext[\s!it][\c!pagenumber=] \setupmemotext[\s!es][\c!pagenumber=] % date: \setupmemotext[\s!en][\c!date=Date: ] \setupmemotext[\s!nl][\c!date=Datum: ] \setupmemotext[\s!de][\c!date=Datum: ] \setupmemotext[\s!fr][\c!date=Date\thinspace: ] \setupmemotext[\s!it][\c!date=Data: ] \setupmemotext[\s!es][\c!date=Fecha: ] % fromname: \setupmemotext[\s!en][\c!fromname=From: ] \setupmemotext[\s!nl][\c!fromname=Van: ] \setupmemotext[\s!de][\c!fromname=Von: ] \setupmemotext[\s!fr][\c!fromname=De\thinspace: ] \setupmemotext[\s!it][\c!fromname=Da: ] \setupmemotext[\s!es][\c!fromname=De: ] % toname: \setupmemotext[\s!en][\c!toname=To: ] \setupmemotext[\s!nl][\c!toname=Aan: ] \setupmemotext[\s!de][\c!toname=An: ] \setupmemotext[\s!fr][\c!toname=À\thinspace: ] \setupmemotext[\s!it][\c!toname=A: ] \setupmemotext[\s!es][\c!toname=A: ] % subject: \setupmemotext[\s!en][\c!subject=Subject: ] \setupmemotext[\s!nl][\c!subject=Onderwerp: ] \setupmemotext[\s!de][\c!subject=Betrifft: ] \setupmemotext[\s!fr][\c!subject=Concernant\thinspace: ] \setupmemotext[\s!it][\c!subject=Oggetto: ] \setupmemotext[\s!es][\c!subject=Asunto: ] % Files \usememostyle[default,\currentmoduleparameter\c!style] \stopmodule \protect \endinput context-modules-20240428/tex/context/third/letter/base/s-cor-00.lua0000644000175000017500000002057714133105703023651 0ustar hillehilleif not modules then modules = { } end modules ['s-mod-00'] = { version = 1.000, comment = "companion to mult-aux.mkiv", author = "Wolfgang Schuster", copyright = "Wolfgang Schuster", license = "GNU General Public License" } thirddata = thirddata or { } thirddata.correspondence = thirddata.correspondence or { } local concat, toks, settings_to_array, settings_to_hash = table.concat, tex.toks, utilities.parsers.settings_to_array, utilities.parsers.settings_to_hash local correspondence = thirddata.correspondence local constants = interfaces.constants local variables = interfaces.variables local c_titlestyle = constants.titlestyle local c_titlecolor = constants.titlecolor local c_textcolor = constants.textcolor local c_textstyle = constants.textstyle local c_separator = constants.separator local v_correspondence = variables.correspondence local v_letter = variables.letter local v_memo = variables.memo local v_resume = variables.resume local v_frames = variables.frames local v_stop = variables.stop local v_layer = variables.layer local v_section = variables.section local v_color = variables.color local v_singlesided = variables.singlesided local v_reset = variables.reset local v_line = variables.line local v_top = variables.top local v_bottom = variables.bottom local v_off = variables.off local v_right = variables.right local v_page = variables.page local v_paper = variables.paper local v_text = variables.text local v_start = variables.start local v_list = variables.list -- create synonyms for the default styles local patterns = { [v_letter] = { "letter-imp-%s.mkiv", "letter-imp-%s.tex", "letter-%s.mkiv", "letter-%s.tex" }, [v_memo] = { "memo-imp-%s.mkiv", "memo-imp-%s.tex", "memo-%s.mkiv", "memo-%s.tex" }, [v_resume] = { "resume-imp-%s.mkiv", "resume-imp-%s.tex", "resume-%s.mkiv", "resume-%s.tex" }, [v_frames] = { "frames-imp-%s.mkiv", "frames-imp-%s.tex", "frames-%s.mkiv", "frames-%s.tex" }, } local function action(name,foundname) context.startreadingfile() context.pushendofline() context.unprotect() context.input(foundname) context.protect() context.popendofline() context.stopreadingfile() end function correspondence.file(environment,name) local environment = environment local name = name resolvers.uselibrary { name = name, patterns = patterns[environment], action = action, } end correspondence.letter = { } local function reference_a(environment,value) local environment = environment local value = value local style = nil context.vbox( function() style = concat({environment,value},":") context.setevalue("currentcorrespondencestyle",style) context.framed( { frame = v_off, location = v_bottom, align = v_right, offset = "0pt" }, function() context.usecorrespondencestylestyleandcolor(c_titlestyle,c_titlecolor) context.setupinterlinespace() context.lettertext(value) context.par() end ) context.framed( { frame = v_off, location = v_top, align = v_right, offset = "0pt" }, function() context.usecorrespondencestylestyleandcolor(c_textstyle,c_textcolor) context.setupinterlinespace() context.correspondenceparameter(value) context.par() end ) end ) end function correspondence.letter.reference_a(environment,list) local environment = environment local list = settings_to_array(list) local style = nil if #list == 1 then local value = list[1] context.rightaligned( function() reference_a(environment,value) end ) else context.maxaligned( function() for index, value in next, list do if value == "" or value == v_line then -- ignore empty entries and the “line” keyword else if index ~= 1 then context.hfill() end reference_a(environment,value) end end end ) end end function correspondence.letter.reference_b(environment,list) local environment = environment local list = settings_to_array(list) local style = nil context.vtop( function() for _, value in next, list do if value == "" then -- ignore empty entries in the list elseif value == v_line then context.blank{v_line} else context.hbox( function() style = concat({environment,value},":") context.setevalue("currentcorrespondencestyle",style) context.begingroup() context.usecorrespondencestylestyleandcolor(c_titlestyle,c_titlecolor) context.lettertext(value) context.correspondencestyleparameter(c_separator) context.endgroup() context.begingroup() context.usecorrespondencestylestyleandcolor(c_textstyle,c_textcolor) context.correspondenceparameter(value) context.endgroup() end ) end end end ) end function correspondence.letter.reference_c(environment,list) local environment = environment local list = settings_to_array(list) local style = nil for _, value in next, list do if value == "" or value == v_line then -- ignore empty entries and the “line” keyword else style = concat({environment,value},":") context.setvalue("currentcorrespondencestyle",style) context.usecorrespondencestylestyleandcolor(c_textstyle,c_textcolor) context.correspondenceparameter(value) end end end function correspondence.letter.reference_d(environment,list) local environment = environment local list = settings_to_array(list) local style = nil context.vtop( function() context.starttabulate( { "|l|l|" }, { before = "", after = "" } ) for _, value in next, list do if value == "" then -- ignore empty entries in the list elseif value == v_line then context.TB() else style = concat({environment,value},":") context.NC() context.setvalue("currentcorrespondencestyle",style) context.usecorrespondencestylestyleandcolor(c_titlestyle,c_titlecolor) context.lettertext(value) context.correspondencestyleparameter(c_separator) context.NC() context.setvalue("currentcorrespondencestyle",style) context.usecorrespondencestylestyleandcolor(c_textstyle,c_textcolor) context.correspondenceparameter(value) context.NC() context.NR() end end context.stoptabulate() end ) end function correspondence.letter.reference_e(environment,list) local environment = environment local list = settings_to_array(list) local style, settings = nil context.leftaligned( function() for _, value in next, list do if value == "" or value == v_line then -- ignore empty entries and the “line” keyword else context.unprotect() context.correspondence_style_width( environment, value, function() reference_a(environment,value) end ) context.protect() end end end ) end function correspondence.description_split(list) local format, items = nil, nil if string.find(list,":") then format, items = string.splitup(list,":") if format ~= v_list then items = list end else items = list end -- the macros are empty be default, change this only when necessary context.unprotect() if format then context.setvalue("m_correspondence_description_format",format) end if items then context.setvalue("m_correspondence_description_items" ,items ) end context.protect() endcontext-modules-20240428/tex/context/third/letter/base/s-cor-01.mkvi0000644000175000017500000010407614133105703024034 0ustar hillehille%D \module %D [ file=s-cor-01, %D version=2013.07.31, %D title=\CONTEXT\ User Module, %D subtitle=Letters, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \unprotect \startmodule[letter] \usemodule[cor-00] \usemodule[cor-06] \setupmodule [\c!style=dinb] % Namespaces \installnamespace {letterlayerrenderings} \installnamespace {lettersectionrenderings} % Commands \definecorrespondence[\v!letter] \def\defineletterlayer {\dodoubleargument\correspondence_layer_define [\v!letter]} \def\definelettersection {\dodoubleargument\correspondence_section_define [\v!letter]} \def\defineletterdescription {\dodoubleargument\correspondence_description_define [\v!letter]} \def\defineletterhead {\dodoubleargument\correspondence_head_define [\v!letter]} \def\defineletterlayeralternative {\doquadrupleempty\correspondence_layer_alternative_define [\v!letter]} \def\definelettersectionalternative {\doquadrupleempty\correspondence_section_alternative_define [\v!letter]} \def\defineletterheadalternative {\doquadrupleempty\correspondence_head_alternative_define [\v!letter]} \def\defineletterelements {\dotripleargument\correspondence_elements_define [\v!letter]} \def\setupletterelements {\dotripleargument\correspondence_elements_define [\v!letter]} \def\setupletterstyle {\dotripleargument\correspondence_style_setup [\v!letter]} \def\setupletterlayer {\dotripleargument\correspondence_layer_setup [\v!letter]} \def\setupletterframe {\dotripleargument\correspondence_frame_setup [\v!letter]} \def\setupletterlayout {\dotripleargument\correspondence_layout_setup [\v!letter]} \def\setuplettersection {\dotripleargument\correspondence_section_setup [\v!letter]} \def\setupletterdescription {\dotripleargument\correspondence_description_setup [\v!letter]} \def\setupletterhead {\dotripleargument\correspondence_head_setup [\v!letter]} \def\setupletteroptions {\dodoubleargument\correspondence_option_setup [\v!letter]} \def\setupletterlayeralternative {\dotripleargument\correspondence_layer_alternative_setup [\v!letter]} \def\setuplettersectionalternative {\dotripleargument\correspondence_section_alternative_setup [\v!letter]} \def\setupletterheadalternative {\dotripleargument\correspondence_head_alternative_setup [\v!letter]} \def\useletterstyle {\dodoubleargument\correspondence_file_load [\v!letter]} \def\defineletterelement {\doquadrupleargument\correspondence_element_define [\v!letter]} \def\letterelement {\doquadrupleargument\correspondence_element_place [\v!letter]} \def\namedletterlayerparameter #element{\namedcorrespondencelayerparameter {\v!letter:#element}} \def\namedletterframeparameter #element{\namedcorrespondenceframeparameter {\v!letter:#element}} \def\namedlettersectionparameter#element{\namedcorrespondencesectionparameter{\v!letter:#element}} % Heading \defineletterhead [\v!letter\v!section] \defineletterhead [\v!letter\v!subsection] % Layers \defineletterlayer [\v!head] \defineletterlayer [\v!nexthead] \defineletterlayer [\v!lefthead] \defineletterlayer [\v!righthead] \defineletterlayer [\v!foot] \defineletterlayer [\v!nextfoot] \defineletterlayer [\v!leftfoot] \defineletterlayer [\v!rightfoot] \defineletterlayer [\v!address] \defineletterlayer [\v!backaddress] \defineletterlayer [\v!reference] \defineletterlayer [\v!location] \defineletterlayer [\v!topmark] \defineletterlayer [\v!botmark] \defineletterlayer [\v!cutmark] \defineletterlayer [\v!endmark] \defineletterlayer [\v!usermark] \defineletterlayer [\v!lettermain] \defineletterlayer [\v!letternext] % Section \definelettersection [\v!head] \definelettersection [\v!date] \definelettersection [\v!reference] \definelettersection [\v!specialnotation] \definelettersection [\v!address] \definelettersection [\v!title] \definelettersection [\v!subject] \definelettersection [\v!opening] \definelettersection [\v!content] \definelettersection [\v!closing] \definelettersection [\v!appendices] % Descriptions \defineletterdescription [\v!copy] \defineletterdescription [\v!enclosure] \defineletterdescription [\v!postscript] % Setups % layer: head \defineletterlayeralternative[\v!head:\s!default][\c!renderingsetup=\????letterlayerrenderings:\v!head:\s!default] \defineletterlayeralternative [\v!head:\v!generic] [\c!renderingsetup=\????letterlayerrenderings:\v!head:\v!generic, \c!rule=\correspondencelayerparameter\c!rule, \c!rulewidth=\correspondencelayerparameter\c!rulewidth, \c!rulecolor=\correspondencelayerparameter\c!rulecolor, \c!rulethickness=\correspondencelayerparameter\c!rulethickness] \defineletterlayeralternative[\v!head:\v!left ][\v!head:\v!generic][\c!align=\v!flushleft ] \defineletterlayeralternative[\v!head:\v!middle ][\v!head:\v!generic][\c!align=\v!middle ] \defineletterlayeralternative[\v!head:\v!right ][\v!head:\v!generic][\c!align=\v!flushright] \defineletterlayeralternative[\v!head:\v!gbrief ][\c!renderingsetup=\????letterlayerrenderings:\v!head:\v!gbrief ] \startsetups[\????letterlayerrenderings:\v!head:\s!default] \def\\{\correspondencelayerparameter\c!separator} \correspondenceparameter\c!fromname \doifsomething{\correspondenceparameter\c!fromname}\\ \correspondenceparameter\c!fromaddress \stopsetups \startsetups[\????letterlayerrenderings:\v!head:\v!generic] \edef\p_rulewidth {\correspondencelayeralternativeparameter\c!rulewidth } \edef\p_rulethickness{\correspondencelayeralternativeparameter\c!rulethickness} \edef\p_rulecolor {\correspondencelayeralternativeparameter\c!rulecolor } \startframed[\c!frame=\v!off,\c!align=\correspondencelayeralternativeparameter\c!align,\c!width=\v!broad,\c!offset=\zeropoint] \begingroup \def\currentcorrespondencestyle{\v!letter:\c!fromname}% \usecorrespondencestylestyleandcolor\c!style\c!color \correspondenceparameter\c!fromname \endgroup \endgraf \doifcommonelse{\correspondencelayeralternativeparameter\c!rule}{\v!top,\c!before,\v!yes}\donetrue\donefalse \ifdone \vskip-.5\lineheight \dontleavehmode \blackrule [ \c!width=\ifx\p_rulewidth \empty\hsize \else\p_rulewidth \fi, \c!height=\ifx\p_rulethickness\empty\linewidth\else\p_rulethickness\fi, \c!color=\ifx\p_rulecolor \empty\s!black \else\p_rulecolor \fi] \fi \endgraf \begingroup \def\currentcorrespondencestyle{\v!letter:\c!fromaddress}% \usecorrespondencestylestyleandcolor\c!style\c!color \correspondenceparameter\c!fromaddress \doifsomething{\correspondenceparameter\c!fromphone}{\\\correspondenceparameter\c!fromphone}% \doifsomething{\correspondenceparameter\c!fromfax }{\\\correspondenceparameter\c!fromfax }% \doifsomething{\correspondenceparameter\c!frommail }{\\\correspondenceparameter\c!frommail }% \doifsomething{\correspondenceparameter\c!fromurl }{\\\correspondenceparameter\c!fromurl }% \endgroup \endgraf \doifcommonelse{\correspondencelayeralternativeparameter\c!rule}{\v!bottom,\c!after,\v!yes}\donetrue\donefalse \ifdone \vskip-.5\lineheight \dontleavehmode \blackrule [ \c!width=\ifx\p_rulewidth \empty\hsize \else\p_rulewidth \fi, \c!height=\ifx\p_rulethickness\empty\linewidth\else\p_rulethickness\fi, \c!color=\ifx\p_rulecolor \empty\s!black \else\p_rulecolor \fi] \fi \stopframed \stopsetups \setupcorrespondencelayeralternative [\c!commandbefore=\correspondencelayerparameter\c!commandbefore, \c!commandafter=\correspondencelayerparameter\c!commandafter] \startsetups[\????letterlayerrenderings:\v!head:\v!gbrief] \def\\{\correspondencelayerparameter\c!separator} \correspondenceparameter\c!fromname \hrule \stopsetups % layer: nexthead \defineletterlayeralternative[\v!nexthead:\v!gbrief ][\c!renderingsetup=\????letterlayerrenderings:\v!nexthead:\v!gbrief ] \defineletterlayeralternative[\v!nexthead:\v!fullblock ][\c!renderingsetup=\????letterlayerrenderings:\v!nexthead:\v!fullblock] \defineletterlayeralternative[\v!nexthead:\v!hanging ][\c!renderingsetup=\????letterlayerrenderings:\v!nexthead:\v!hanging ] \defineletterlayeralternative[\v!nexthead:\v!semiblock ][\c!renderingsetup=\????letterlayerrenderings:\v!nexthead:\v!semiblock] \defineletterlayeralternative[\v!nexthead:\v!simplified][\c!renderingsetup=\????letterlayerrenderings:\v!nexthead:\v!fullblock] \defineletterlayeralternative[\v!nexthead:\v!modified ][\c!renderingsetup=\????letterlayerrenderings:\v!nexthead:\v!hanging ] \defineletterlayeralternative[\v!nexthead:\v!knuth ][\c!renderingsetup=\????letterlayerrenderings:\v!nexthead:\v!knuth ] \startsetups[\????letterlayerrenderings:\v!nexthead:\v!gbrief] \maxaligned {\rlap{\correspondenceparameter\c!fromname} \midaligned{\leftlettertext\c!pagenumber\subpagenumber\rightlettertext\c!pagenumber\lastsubpagenumber} \llap{\correspondenceparameter\c!date}} \hairline \stopsetups \startsetups[\????letterlayerrenderings:\v!nexthead:\v!fullblock] \maxaligned {\rlap{\correspondenceparameter\c!toname} \midaligned{\subpagenumber} \llap{\framed[\c!frame=\v!off,\c!location=\v!top,\c!align=\v!left] {\correspondenceparameter\c!date \\ \correspondenceparameter\c!reference}}} \stopsetups \startsetups[\????letterlayerrenderings:\v!nexthead:\v!hanging] \maxaligned {\framed[\c!frame=\v!off,\c!location=\v!top,\c!align=v!right] {\correspondenceparameter\c!toname \\ \correspondenceparameter\c!date \\ \correspondenceparameter\c!reference \\ \lettertext\c!page\subpagenumber}} \stopsetups \startsetups[\????letterlayerrenderings:\v!nexthead:\v!semiblock] \maxaligned {\rlap{\correspondenceparameter\c!toname} \midaligned{\subpagenumber} \llap{\correspondenceparameter\c!date}} \stopsetups \startsetups[\????letterlayerrenderings:\v!nexthead:\v!knuth] \maxaligned {\rlap{\correspondenceparameter\c!toname} \midaligned{\currentdate} \llap{\lettertext\c!page\subpagenumber}} \stopsetups % layer: lefthead % setups -> see s-cor-00.mkvi % layer: righthead % setups -> see s-cor-00.mkvi % layer: foot \defineletterlayeralternative[\v!foot:\v!gbrief ][\c!renderingsetup=\????letterlayerrenderings:\v!foot:\v!gbrief] \defineletterlayeralternative[\v!foot:\v!pagenumber][\c!renderingsetup=\????letterlayerrenderings:\v!foot:\v!pagenumber] \startsetups[\????letterlayerrenderings:\v!foot:\v!gbrief] \bTABLE[\c!frame=\v!off,\c!width=.25\hsize,\c!offset=\zeropoint] \bTR[\c!style=\bfxx,\c!topframe=\v!on] \bTD \lettertext\c!address \eTD \bTD \lettertext\c!phone \eTD \bTD \lettertext\c!email \eTD \bTD \lettertext\c!bank \eTD \eTR \bTR \bTD \correspondenceparameter\c!street \\\correspondenceparameter\c!city \eTD \bTD \correspondenceparameter\c!phone \eTD \bTD \correspondenceparameter\c!email \eTD \bTD \correspondenceparameter\c!bankname\\\correspondenceparameter\c!banknumber\\\correspondenceparameter\c!accountnumber \eTD \eTR \eTABLE \stopsetups \startsetups[\????letterlayerrenderings:\v!foot:\v!pagenumber] \centerbox{\hbox{\begstrut\leftlettertext\c!pagenumber\subpagenumber\rightlettertext\c!pagenumber\lastsubpagenumber\endstrut}} \stopsetups % layer: nextfoot % setups -> see s-cor-00.mkvi % layer: leftfoot % setups -> see s-cor-00.mkvi % layer: rightfoot % setups -> see s-cor-00.mkvi % layer: address \defineletterlayeralternative[\v!address:\s!default][\c!renderingsetup=\????letterlayerrenderings:\v!address:\s!default] \defineletterlayeralternative[\v!address:\v!a ][\c!renderingsetup=\????letterlayerrenderings:\v!address:\v!a ] \startsetups[\????letterlayerrenderings:\v!address:\s!default] \def\\{\correspondencelayerparameter\c!separator} \doifsomething{\correspondenceparameter\c!dispatch}{\correspondenceparameter\c!dispatch\\} \doifsomething{\correspondenceparameter\c!toname }{\correspondenceparameter\c!toname \\} \correspondenceparameter\c!toaddress \stopsetups \startsetups[\????letterlayerrenderings:\v!address:\v!a] \def\\{\correspondencelayerparameter\c!separator} \doifsomethingelse{\correspondenceparameter\c!dispatch} {\correspondenceparameter\c!dispatch\\} % check number of lines! {\blank[2*\v!line]} \doifsomething{\correspondenceparameter\c!toname}{\correspondenceparameter\c!toname\\} \correspondenceparameter\c!toaddress \stopsetups % layer: backaddress \defineletterlayeralternative[\v!backaddress:\s!default][\c!renderingsetup=\????letterlayerrenderings:\v!backaddress:\s!default] \defineletterlayeralternative[\v!backaddress:\v!auto ][\c!renderingsetup=\????letterlayerrenderings:\v!backaddress:\v!auto ] \startsetups[\????letterlayerrenderings:\v!backaddress:\s!default] \def\\{\correspondencelayerparameter\c!separator} \correspondenceparameter\c!fromname \doifsomething{\correspondenceparameter\c!fromaddress}\\ \correspondenceparameter\c!fromaddress \stopsetups \startsetups[\????letterlayerrenderings:\v!backaddress:\v!auto] \def\\{\correspondencelayerparameter\c!separator} \doifsomethingelse{\correspondenceparameter\c!backaddress} {\correspondenceparameter\c!backaddress} {\correspondenceparameter\c!fromname \doifsomething{\correspondenceparameter\c!fromaddress}\\ \correspondenceparameter\c!fromaddress} \stopsetups % layer: reference \defineletterlayeralternative[\v!reference:\s!default][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\s!default] \defineletterlayeralternative[\v!reference:\v!a ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!a ] %defineletterlayeralternative[\v!reference:\v!top ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!a ] \defineletterlayeralternative[\v!reference:\v!b ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!b ] %defineletterlayeralternative[\v!reference:\v!block ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!b ] \defineletterlayeralternative[\v!reference:\v!c ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!c ] %defineletterlayeralternative[\v!reference:\v!line ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!c ] \defineletterlayeralternative[\v!reference:\v!d ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!d ] %defineletterlayeralternative[\v!reference:\v!table ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!d ] \defineletterlayeralternative[\v!reference:\v!e ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!e ] %defineletterlayeralternative[\v!reference:\v!width ][\c!renderingsetup=\????letterlayerrenderings:\v!reference:\v!e ] \startsetups[\????letterlayerrenderings:\v!reference:\s!default] \correspondenceparameter\c!reference \stopsetups \startsetups[\????letterlayerrenderings:\v!reference:\v!a] \ctxlua{thirddata.correspondence.letter.reference_a("\v!letter","\correspondencelayerparameter\c!list")} \stopsetups \startsetups[\????letterlayerrenderings:\v!reference:\v!b] \ctxlua{thirddata.correspondence.letter.reference_b("\v!letter","\correspondencelayerparameter\c!list")} \stopsetups \startsetups[\????letterlayerrenderings:\v!reference:\v!c] \ctxlua{thirddata.correspondence.letter.reference_c("\v!letter","\correspondencelayerparameter\c!list")} \stopsetups \startsetups[\????letterlayerrenderings:\v!reference:\v!d] \ctxlua{thirddata.correspondence.letter.reference_d("\v!letter","\correspondencelayerparameter\c!list")} \stopsetups \startsetups[\????letterlayerrenderings:\v!reference:\v!e] \ctxlua{thirddata.correspondence.letter.reference_e("\v!letter","\correspondencelayerparameter\c!list")} \stopsetups % layer: location \defineletterlayeralternative[\v!location:\v!french][\c!renderingsetup=\????letterlayerrenderings:\v!location:\v!french] \startsetups[\????letterlayerrenderings:\v!location:\v!french] \def\\{\correspondencelayerparameter\c!separator} \doifsomething{\correspondenceparameter\c!place}{\correspondenceparameter\c!place\\} \correspondenceparameter\c!date \stopsetups % layer: topmark % setups -> see s-cor-00.mkvi % layer: botmark % setups -> see s-cor-00.mkvi % layer: cutmark % setups -> see s-cor-00.mkvi % layer: endmark % setups -> see s-cor-00.mkvi % layer: usermark % setups -> see s-cor-00.mkvi % layer: lettermain % setups -> see s-cor-00.mkvi % layer: letternext % setups -> see s-cor-00.mkvi % section: head \definelettersectionalternative[\v!head:\v!blockstyle][\c!renderingsetup=\????lettersectionrenderings:\v!head:\v!blockstyle] \startsetups[\????lettersectionrenderings:\v!head:\v!blockstyle] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!fromaddress \stopsetups % section: date \definelettersectionalternative[\v!date:\v!blockstyle][\c!renderingsetup=\????lettersectionrenderings:\v!date:\v!blockstyle] \startsetups[\????lettersectionrenderings:\v!date:\v!blockstyle] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!date \stopsetups % section: reference \definelettersectionalternative[\v!reference:\v!blockstyle][\c!renderingsetup=\????lettersectionrenderings:\v!reference:\v!blockstyle] \startsetups[\????lettersectionrenderings:\v!reference:\v!blockstyle] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!reference \stopsetups % section: specialnotation \definelettersectionalternative[\v!specialnotation:\v!blockstyle][\c!renderingsetup=\????lettersectionrenderings:\v!specialnotation:\v!blockstyle] \startsetups[\????lettersectionrenderings:\v!specialnotation:\v!blockstyle] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!dispatch \stopsetups % section: address \definelettersectionalternative[\v!address:\v!blockstyle][\c!renderingsetup=\????lettersectionrenderings:\v!address:\v!blockstyle] \definelettersectionalternative[\v!address:\v!knuth ][\c!renderingsetup=\????lettersectionrenderings:\v!address:\v!blockstyle] \startsetups[\????lettersectionrenderings:\v!address:\v!blockstyle] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!toname \doifsomething{\correspondenceparameter\c!toname}\\ \correspondenceparameter\c!toaddress \stopsetups % section: title \definelettersectionalternative[\v!title:\s!default][\c!renderingsetup=\????lettersectionrenderings:\v!title:\s!default] \startsetups[\????lettersectionrenderings:\v!title:\s!default] \def\\{\correspondencesectionparameter\c!separator} \doifsomethingelse{\correspondenceparameter\c!title} {\correspondenceparameter\c!title} {\lettertext\c!attention\correspondenceparameter\c!attention} \stopsetups % section: subject \definelettersectionalternative[\v!subject:\s!default][\c!renderingsetup=\????lettersectionrenderings:\v!subject:\s!default] \startsetups[\????lettersectionrenderings:\v!subject:\s!default] \def\\{\correspondencesectionparameter\c!separator} \lettertext\c!subject\correspondenceparameter\c!subject \stopsetups % section: opening \definelettersectionalternative[\v!opening:\s!default][\c!renderingsetup=\????lettersectionrenderings:\v!opening:\s!default] \definelettersectionalternative[\v!opening:\v!french ][\c!renderingsetup=\????lettersectionrenderings:\v!opening:\v!french ] \startsetups[\????lettersectionrenderings:\v!opening:\s!default] \def\\{\correspondencesectionparameter\c!separator} \doifsomethingelse{\correspondenceparameter\c!opening} {\correspondenceparameter\c!opening} {\correspondenceparameter\c!salutation} \stopsetups \startsetups[\????lettersectionrenderings:\v!opening:\v!french] \def\\{\correspondencesectionparameter\c!separator} \doifsomething{\correspondenceoptionparameter\c!indenting}{\setupindenting[\correspondenceoptionparameter\c!indenting]} \doifsomethingelse{\correspondenceparameter\c!opening} {\correspondenceparameter\c!opening} {\correspondenceparameter\c!salutation} \stopsetups % section: content \definelettersectionalternative[\v!content:\s!default][\c!renderingsetup=\????lettersectionrenderings:\v!content:\s!default] \startsetups[\????lettersectionrenderings:\v!content:\s!default] \getbufferdata[\????correspondencebuffer\v!letter] \stopsetups % section: closing \definelettersectionalternative[\v!closing:\s!default ][\c!renderingsetup=\????lettersectionrenderings:\v!closing:\s!default ] \definelettersectionalternative[\v!closing:\v!french ][\c!renderingsetup=\????lettersectionrenderings:\v!closing:\v!french ] \definelettersectionalternative[\v!closing:\v!simplified][\c!renderingsetup=\????lettersectionrenderings:\v!closing:\v!simplified] \definelettersectionalternative[\v!closing:\v!knuth ][\c!renderingsetup=\????lettersectionrenderings:\v!closing:\v!knuth ] \startsetups[\????lettersectionrenderings:\v!closing:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!closing \doifsomething{\correspondenceparameter\c!signature} {\blank[\correspondencesectionparameter\c!spaceinbetween] \correspondenceparameter\c!signature} \stopsetups \startsetups[\????lettersectionrenderings:\v!closing:\v!french] \def\\{\correspondencesectionparameter\c!separator} \doifsomething{\correspondenceoptionparameter\c!indenting}{\setupindenting[\correspondenceoptionparameter\c!indenting,\v!first]} \correspondenceparameter\c!closing \doifsomething{\correspondenceparameter\c!signature} {\blank[\correspondencesectionparameter\c!spaceinbetween] \raggedcenter\doadaptleftskip{.5\textwidth} \correspondenceparameter\c!signature\endgraf} \stopsetups \startsetups[\????lettersectionrenderings:\v!closing:\v!simplified] \def\\{\correspondencesectionparameter\c!separator} \doifsomething{\correspondenceparameter\c!signature}{\blank[\correspondencesectionparameter\c!spaceinbetween]} \correspondenceparameter\c!signature \stopsetups \startsetups[\????lettersectionrenderings:\v!closing:\v!knuth] \def\\{\correspondencesectionparameter\c!separator} \doadaptleftskip{\dimexpr\textwidth/13*8\relax} \correspondenceparameter\c!closing \doifsomething{\correspondenceparameter\c!signature} {\blank[\correspondencesectionparameter\c!spaceinbetween] \correspondenceparameter\c!signature} \stopsetups % section: appendices \definelettersectionalternative[\v!appendices:\s!default][\c!renderingsetup=\????lettersectionrenderings:\v!appendices:\s!default] \startsetups[\????lettersectionrenderings:\v!appendices:\s!default] \def\\{\correspondencesectionparameter\c!separator} \startpacked \processcommacommand[\correspondence_elements_access\v!letter\v!description]{\correspondence_description_place\v!letter} \stoppacked \stopsetups % for backwards compatibility \startsetups[\v!letter:\v!place] \placecorrespondence[\v!letter] \stopsetups % Extras \appendtoks \ifx\currentcorrespondence\v!letter \edef\p_correspondence_option_option{\correspondenceoptionparameter\c!option}% \ifx\p_correspondence_option_option\empty \else \processallactionsinset [\correspondenceoptionparameter\c!option] [ \v!test=>{\useletterstyle[test]}, \v!setups=>{\useletterstyle[setups]}]% \fi \fi \to \t_correspondence_before \appendtoks \ifx\currentcorrespondence\v!letter \edef\p_correspondence_option_marking{\correspondenceoptionparameter\c!marking}% \ifx\p_correspondence_option_marking\v!yes \setupletterlayer[\v!topmark,\v!botmark,\v!cutmark,\v!endmark,\v!usermark][\c!state=\v!start]% \else\ifx\p_correspondence_option_marking\v!no \setupletterlayer[\v!topmark,\v!botmark,\v!cutmark,\v!endmark,\v!usermark][\c!state=\v!stop ]% \fi\fi \fi \to \t_correspondence_before \appendtoks \ifx\currentcorrespondence\v!letter \edef\p_correspondence_option_position{\correspondenceoptionparameter\c!position}% \ifx\p_correspondence_option_position\v!yes % low level code, I need a better solution for this! \setbox\scratchbox\vbox {\edef\currentcorrespondencelayer {\v!letter:\v!reference}% \edef\currentcorrespondenceenvironment{\v!letter}% \correspondence_layer_alternative_place}% \normalexpanded {\setupletterlayout [\v!firstpage] [\c!topspace=\dimexpr\namedletterlayerparameter\v!reference\c!y+\ht\scratchbox+\namedletterlayerparameter\v!reference\c!distance\relax]}% \fi \fi \to \t_correspondence_before \appendtoks \ifx\currentcorrespondence\v!letter \edef\p_correspondence_option_indenting{\correspondenceoptionparameter\c!indenting}% \ifx\p_correspondence_option_indenting\empty \else \setuplettersection[\v!content][\c!indenting=\p_correspondence_option_indenting]% \fi \fi \to \t_correspondence_before \appendtoks % provide this also for the other modules \ifx\currentcorrespondence\v!letter \edef\p_correspondence_addressentry{\correspondenceparameter\c!addressentry}% \ifx\p_correspondence_addressentry\empty \else \let\currentaddressentry\p_correspondence_addressentry \fi \fi \to \t_correspondence_before % Labels \definelabelclass [letter] % name: \setuplettertext[\s!en][\c!name=Name] \setuplettertext[\s!nl][\c!name=] \setuplettertext[\s!de][\c!name=Name] \setuplettertext[\s!fr][\c!name=Nom] \setuplettertext[\s!it][\c!name=] \setuplettertext[\s!es][\c!name=] % room: \setuplettertext[\s!en][\c!room=Room] \setuplettertext[\s!nl][\c!room=] \setuplettertext[\s!de][\c!room=Zimmer] \setuplettertext[\s!fr][\c!room=Salle] % Salle or Pièce \setuplettertext[\s!it][\c!room=] \setuplettertext[\s!es][\c!room=] % yourref: \setuplettertext[\s!en][\c!yourref=Your ref.] \setuplettertext[\s!nl][\c!yourref=Uw kenmerk] \setuplettertext[\s!de][\c!yourref=Ihr Zeichen] \setuplettertext[\s!fr][\c!yourref=Vos références] \setuplettertext[\s!it][\c!yourref=Vs./Rif.] \setuplettertext[\s!es][\c!yourref=Su ref.] % yourmail: \setuplettertext[\s!en][\c!yourmail=Your letter of] \setuplettertext[\s!nl][\c!yourmail=Uw brief van] \setuplettertext[\s!de][\c!yourmail=Ihre Nachricht vom] \setuplettertext[\s!fr][\c!yourmail=Votre lettre du] \setuplettertext[\s!it][\c!yourmail=Vs.~lettera del] \setuplettertext[\s!es][\c!yourmail=Su carta de] % myref: \setuplettertext[\s!en][\c!myref=Our ref.] \setuplettertext[\s!nl][\c!myref=Ons kenmerk] \setuplettertext[\s!de][\c!myref=Unser Zeichen] \setuplettertext[\s!fr][\c!myref=Nos références] \setuplettertext[\s!it][\c!myref=Ns./Rif.] \setuplettertext[\s!es][\c!myref=Nuestra ref.] % mymail: \setuplettertext[\s!en][\c!mymail=Our letter of] \setuplettertext[\s!nl][\c!mymail=Ons brief van] \setuplettertext[\s!de][\c!mymail=Unsere Nachricht vom] \setuplettertext[\s!fr][\c!mymail=Notre lettre du] \setuplettertext[\s!it][\c!mymail=] \setuplettertext[\s!es][\c!mymail=] % customer: \setuplettertext[\s!en][\c!customer=Customer no.] \setuplettertext[\s!nl][\c!customer=Klant No.] \setuplettertext[\s!de][\c!customer=Kundennummer] \setuplettertext[\s!fr][\c!customer=Numéro de client] \setuplettertext[\s!it][\c!customer=Nr.~cliente] \setuplettertext[\s!es][\c!customer=No. de cliente] % invoice: \setuplettertext[\s!en][\c!invoice=Invoice no.] \setuplettertext[\s!nl][\c!invoice=Rekening No.] \setuplettertext[\s!de][\c!invoice=Rechnungsnummer] \setuplettertext[\s!fr][\c!invoice=Numéro de facture] \setuplettertext[\s!it][\c!invoice=Nr.~fattura] \setuplettertext[\s!es][\c!invoice=No. de factura] % attention: \setuplettertext[\s!en][\c!attention=] % Attention \setuplettertext[\s!nl][\c!attention=] \setuplettertext[\s!de][\c!attention=] \setuplettertext[\s!fr][\c!attention=] \setuplettertext[\s!it][\c!attention=] \setuplettertext[\s!es][\c!attention=] % subject: \setuplettertext[\s!en][\c!subject=] % Subject \setuplettertext[\s!nl][\c!subject=] % Onderwerp \setuplettertext[\s!de][\c!subject=] % Betrifft \setuplettertext[\s!fr][\c!subject=] % Concernant or Sujet \setuplettertext[\s!it][\c!subject=] % Oggetto \setuplettertext[\s!es][\c!subject=] % Asunto % copy: \setuplettertext[\s!en][\c!copy=cc: ] \setuplettertext[\s!nl][\c!copy=Kopie aan: ] \setuplettertext[\s!de][\c!copy=Kopien an: ] \setuplettertext[\s!fr][\c!copy=Copieà: ] \setuplettertext[\s!it][\c!copy=Per conoscenza: ] \setuplettertext[\s!es][\c!copy=Copias: ] % enclosure: \setuplettertext[\s!en][\c!enclosure=encl: ] \setuplettertext[\s!nl][\c!enclosure=Bijlage(n): ] \setuplettertext[\s!de][\c!enclosure=Anlagen: ] \setuplettertext[\s!fr][\c!enclosure=Annexes: ] \setuplettertext[\s!it][\c!enclosure=Allegato: ] \setuplettertext[\s!es][\c!enclosure=Adjunto: ] % to: \setuplettertext[\s!en][\c!to=To] \setuplettertext[\s!nl][\c!to=Aan] \setuplettertext[\s!de][\c!to=An] \setuplettertext[\s!fr][\c!to=À] \setuplettertext[\s!it][\c!to=A] \setuplettertext[\s!es][\c!to=A] % toname: \setuplettertext[\s!en][\c!toname=To] \setuplettertext[\s!nl][\c!toname=Aan] \setuplettertext[\s!de][\c!toname=An] \setuplettertext[\s!fr][\c!toname=À] \setuplettertext[\s!it][\c!toname=A] \setuplettertext[\s!es][\c!toname=A] % from: \setuplettertext[\s!en][\c!from=From] \setuplettertext[\s!nl][\c!from=Van] \setuplettertext[\s!de][\c!from=Von] \setuplettertext[\s!fr][\c!from=De] \setuplettertext[\s!it][\c!from=Da] \setuplettertext[\s!es][\c!from=De] % fromname: \setuplettertext[\s!en][\c!fromname=From] \setuplettertext[\s!nl][\c!fromname=Van] \setuplettertext[\s!de][\c!fromname=Von] \setuplettertext[\s!fr][\c!fromname=De] \setuplettertext[\s!it][\c!fromname=Da] \setuplettertext[\s!es][\c!fromname=De] % date: \setuplettertext[\s!en][\c!date=Date] \setuplettertext[\s!nl][\c!date=Datum] \setuplettertext[\s!de][\c!date=Datum] \setuplettertext[\s!fr][\c!date=Date] \setuplettertext[\s!it][\c!date=Data] \setuplettertext[\s!es][\c!date=Fecha] % phone: \setuplettertext[\s!en][\c!phone=Phone] \setuplettertext[\s!nl][\c!phone=Telefoon] \setuplettertext[\s!de][\c!phone=Telefon] \setuplettertext[\s!fr][\c!phone=Téléphone] \setuplettertext[\s!it][\c!phone=Telefono] \setuplettertext[\s!es][\c!phone=Teléfono] % fax: \setuplettertext[\s!en][\c!fax=Fax] \setuplettertext[\s!nl][\c!fax=Fax] \setuplettertext[\s!de][\c!fax=Fax] \setuplettertext[\s!fr][\c!fax=Téléfax] % or Fax \setuplettertext[\s!it][\c!fax=Fax] \setuplettertext[\s!es][\c!fax=Fax] % email: \setuplettertext[\s!en][\c!email=Email] \setuplettertext[\s!nl][\c!email=E–mail] \setuplettertext[\s!de][\c!email=E-Mail] \setuplettertext[\s!fr][\c!email=Courriel] % Adresse électronique \setuplettertext[\s!it][\c!email=Email] \setuplettertext[\s!es][\c!email=Email] % url: \setuplettertext[\s!en][\c!url=Url] \setuplettertext[\s!nl][\c!url=URL] \setuplettertext[\s!de][\c!url=URL] \setuplettertext[\s!fr][\c!url=Site web] \setuplettertext[\s!it][\c!url=Sito Web] \setuplettertext[\s!es][\c!url=URL] % bank: \setuplettertext[\s!en][\c!bank=Bank account] \setuplettertext[\s!nl][\c!bank=Bankrekening] \setuplettertext[\s!de][\c!bank=Bankverbindung] \setuplettertext[\s!fr][\c!bank=Compte en banque] \setuplettertext[\s!it][\c!bank=Conto bancario] \setuplettertext[\s!es][\c!bank=Cuenta bancaria] % organization: \setuplettertext[\s!en][\c!organization=Organization] \setuplettertext[\s!nl][\c!organization=] \setuplettertext[\s!de][\c!organization=Organisation] \setuplettertext[\s!fr][\c!organization=] \setuplettertext[\s!it][\c!organization=] \setuplettertext[\s!es][\c!organization=] % city: \setuplettertext[\s!en][\c!city=City] \setuplettertext[\s!nl][\c!city=] \setuplettertext[\s!de][\c!city=Stadt] \setuplettertext[\s!fr][\c!city=] \setuplettertext[\s!it][\c!city=] \setuplettertext[\s!es][\c!city=] % zip: \setuplettertext[\s!en][\c!zip=Zip] \setuplettertext[\s!nl][\c!zip=] \setuplettertext[\s!de][\c!zip=PLZ] \setuplettertext[\s!fr][\c!zip=] \setuplettertext[\s!it][\c!zip=] \setuplettertext[\s!es][\c!zip=] % country: \setuplettertext[\s!en][\c!country=Country] \setuplettertext[\s!nl][\c!country=] \setuplettertext[\s!de][\c!country=Land] \setuplettertext[\s!fr][\c!country=] \setuplettertext[\s!it][\c!country=] \setuplettertext[\s!es][\c!country=] % street: \setuplettertext[\s!en][\c!street=Street] \setuplettertext[\s!nl][\c!street=] \setuplettertext[\s!de][\c!street=Straße] \setuplettertext[\s!fr][\c!street=] \setuplettertext[\s!it][\c!street=] \setuplettertext[\s!es][\c!street=] % page: \setuplettertext[\s!en][\c!page=Page~] \setuplettertext[\s!nl][\c!page=] \setuplettertext[\s!de][\c!page=Seite~] \setuplettertext[\s!fr][\c!page=] \setuplettertext[\s!it][\c!page=] \setuplettertext[\s!es][\c!page=] % pagenumber: \setuplettertext[\s!en][\c!pagenumber={Page , of }] \setuplettertext[\s!nl][\c!pagenumber=] \setuplettertext[\s!de][\c!pagenumber={Seite , von }] \setuplettertext[\s!fr][\c!pagenumber=] \setuplettertext[\s!it][\c!pagenumber=] \setuplettertext[\s!es][\c!pagenumber=] % address: \setuplettertext[\s!en][\c!address=Address] \setuplettertext[\s!nl][\c!address=] \setuplettertext[\s!de][\c!address=Adresse] \setuplettertext[\s!fr][\c!address=] \setuplettertext[\s!it][\c!address=] \setuplettertext[\s!es][\c!address=] % Files \useletterstyle[default,\currentmoduleparameter\c!style] \stopmodule \protect \continueifinputfile{s-cor-01.mkvi} \startletter \input lorem \stopletter context-modules-20240428/tex/context/third/letter/base/s-cor-00.mkvi0000644000175000017500000014132114133105703024025 0ustar hillehille%D \module %D [ file=s-cor-00, %D version=2015.08.24, %D title=\CONTEXT\ User Module, %D subtitle=Correspondence, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \unprotect % Lua functions for the core and also for the frontend modules \ctxloadluafile{s-cor-00} % Constants and variables \startinterface all \setinterfaceconstant {whitespace} {whitespace} \setinterfaceconstant {backgroundimage} {backgroundimage} \setinterfaceconstant {fromname} {fromname} \setinterfaceconstant {fromaddress} {fromaddress} \setinterfaceconstant {attention} {attention} \setinterfaceconstant {subject} {subject} \setinterfaceconstant {closing} {closing} \setinterfaceconstant {signature} {signature} \setinterfaceconstant {copy} {copy} \setinterfaceconstant {enclosure} {enclosure} \setinterfaceconstant {postscript} {postscript} \setinterfaceconstant {dispatch} {dispatch} \setinterfaceconstant {toname} {toname} \setinterfaceconstant {toaddress} {toaddress} \setinterfaceconstant {backaddress} {backaddress} \setinterfaceconstant {opening} {opening} \setinterfaceconstant {fromphone} {fromphone} \setinterfaceconstant {fromfax} {fromfax} \setinterfaceconstant {frommail} {frommail} \setinterfaceconstant {fromurl} {fromurl} \setinterfaceconstant {salutation} {salutation} \setinterfaceconstant {language} {language} \setinterfaceconstant {leftalign} {leftalign} \setinterfaceconstant {rightalign} {rightalign} \setinterfaceconstant {datestyle} {datestyle} \setinterfaceconstant {datecolor} {datecolor} \setinterfaceconstant {subtitlestyle} {subtitlestyle} \setinterfaceconstant {subtitlecolor} {subtitlecolor} \setinterfaceconstant {street} {street} \setinterfaceconstant {city} {city} \setinterfaceconstant {phone} {phone} \setinterfaceconstant {email} {email} \setinterfaceconstant {bankname} {bankname} \setinterfaceconstant {banknumber} {banknumber} \setinterfaceconstant {accountnumber} {accountnumber} \setinterfaceconstant {room} {room} \setinterfaceconstant {yourref} {yourref} \setinterfaceconstant {yourmail} {yourmail} \setinterfaceconstant {myref} {myref} \setinterfaceconstant {mymail} {mymail} \setinterfaceconstant {customer} {customer} \setinterfaceconstant {invoice} {invoice} \setinterfaceconstant {fax} {fax} \setinterfaceconstant {url} {url} \setinterfaceconstant {bank} {bank} \setinterfaceconstant {organization} {organization} \setinterfaceconstant {zip} {zip} \setinterfaceconstant {country} {country} \setinterfaceconstant {addressentry} {addressentry} \setinterfaceconstant {rulewidth} {rulewidth} \stopinterface \startinterface all % all \setinterfacevariable {correspondence} {correspondence} \setinterfacevariable {nexthead} {nexthead} \setinterfacevariable {lefthead} {lefthead} \setinterfacevariable {righthead} {righthead} \setinterfacevariable {foot} {foot} \setinterfacevariable {nextfoot} {nextfoot} \setinterfacevariable {leftfoot} {leftfoot} \setinterfacevariable {rightfoot} {rightfoot} \setinterfacevariable {topmark} {topmark} \setinterfacevariable {botmark} {botmark} \setinterfacevariable {cutmark} {cutmark} \setinterfacevariable {endmark} {endmark} \setinterfacevariable {usermark} {usermark} % letter \setinterfacevariable {letter} {letter} \setinterfacevariable {lettermain} {lettermain} \setinterfacevariable {letternext} {letternext} \setinterfacevariable {address} {address} \setinterfacevariable {backaddress} {backaddress} \setinterfacevariable {location} {location} \setinterfacevariable {opening} {opening} \setinterfacevariable {closing} {closing} \setinterfacevariable {secondpage} {secondpage} \setinterfacevariable {copy} {copy} \setinterfacevariable {enclosure} {enclosure} \setinterfacevariable {french} {french} \setinterfacevariable {specialnotation} {specialnotation} \setinterfacevariable {e} {e} \setinterfacevariable {place} {place} \setinterfacevariable {gbrief} {gbrief} \setinterfacevariable {fullblock} {fullblock} \setinterfacevariable {semiblock} {semiblock} \setinterfacevariable {simplified} {simplified} \setinterfacevariable {modified} {modified} \setinterfacevariable {blockstyle} {blockstyle} \setinterfacevariable {knuth} {knuth} \setinterfacevariable {generic} {generic} % memo \setinterfacevariable {memo} {memo} \setinterfacevariable {memomain} {memomain} \setinterfacevariable {memonext} {memonext} % resume \setinterfacevariable {resume} {resume} \setinterfacevariable {resumemain} {resumemain} \setinterfacevariable {resumenext} {resumenext} \setinterfacevariable {casual} {casual} \setinterfacevariable {classic} {classic} % frames \setinterfacevariable {frames} {frames} \setinterfacevariable {framesmain} {framesmain} \setinterfacevariable {framesnext} {framesnext} \stopinterface % Messages \definemessageconstant {correspondence} \startinterface all \setinterfacemessage{correspondence}{title}{correspondence} \setinterfacemessage{correspondence}{1} {Undefined layer '--' for the '--' environment} \setinterfacemessage{correspondence}{2} {Undefined section '--' for the '--' environment} \setinterfacemessage{correspondence}{3} {Undefined description '--' for the '--' environment} \stopinterface % Namespaces \installnamespace {correspondence} \installnamespace {correspondencebuffer} \installnamespace {correspondenceoverlay} \installnamespace {correspondencelayer} \installnamespace {correspondencelayerrenderings} \installnamespace {correspondencelayeralternative} \installnamespace {correspondencelayerstate} \installnamespace {correspondenceframe} \installnamespace {correspondencesection} \installnamespace {correspondencesectionrenderings} \installnamespace {correspondencesectionalternative} \installnamespace {correspondenceoption} \installnamespace {correspondencedescription} \installnamespace {correspondencedescriptionlocation} \installnamespace {correspondencedescriptionformat} \installnamespace {correspondencestyle} \installnamespace {correspondenceelement} \installnamespace {correspondenceelements} \installnamespace {correspondencelayout} \installnamespace {correspondencehead} \installnamespace {correspondenceheadbuffer} \installnamespace {correspondenceheadrenderings} \installnamespace {correspondenceheadalternative} \installnamespace {correspondenceparagraph} \installnamespace {correspondenceparagraphbuffer} \installnamespace {correspondenceparagraphrenderings} \installnamespace {correspondenceparagraphalternative} \installnamespace {correspondenceparagraphsetups} % Itemgroup \defineitemgroup[\v!correspondence] % Environment \installcommandhandler \????correspondence {correspondence} \????correspondence \unexpanded\def\correspondence_start[#environment]% {\starttext \begingroup \def\currentcorrespondence{#environment}% \dosingleempty\correspondence_start_parameters} \def\correspondence_start_parameters[#parameters]% {\iffirstargument \setupcurrentcorrespondence[#parameters]% \fi \grabbufferdatadirect{\????correspondencebuffer\currentcorrespondence}{\e!start\currentcorrespondence}{\e!stop\currentcorrespondence}} \unexpanded\def\correspondence_stop[#environment]% {\correspondence_place[#environment]% \endgroup \stoptext} \appendtoks \setuevalue{\e!start\currentcorrespondence}{\correspondence_start[\currentcorrespondence]}% \setuevalue{\e!stop \currentcorrespondence}{\correspondence_stop [\currentcorrespondence]}% \to \everydefinecorrespondence \unexpanded\def\correspondence_content_start[#environment]% {\begingroup \edef\currentcorrespondence{#environment}% \grabbufferdatadirect{\????correspondencebuffer\currentcorrespondence}{\e!start\currentcorrespondence\v!content}{\e!stop\currentcorrespondence\v!content}} \unexpanded\def\correspondence_content_stop[#environment]% {\endgroup} \unexpanded\def\correspondence_content_get[#environment]% {\edef\currentcorrespondence{#environment}% \getbufferdata[\????correspondencebuffer\currentcorrespondence]} \appendtoks \setuevalue{\e!start\currentcorrespondence\v!content}{\correspondence_content_start[\currentcorrespondence]}% \setuevalue{\e!stop \currentcorrespondence\v!content}{\correspondence_content_stop [\currentcorrespondence]}% \setuevalue{\e!get \currentcorrespondence\v!content}{\correspondence_content_get [\currentcorrespondence]}% \to \everydefinecorrespondence \unexpanded\def\correspondence_parameters#environment#element% {\edef\currentcorrespondenceenvironment{#environment}% \edef\currentcorrespondenceelement {#element}% \edef\currentcorrespondencelayer {#environment:#element}% \edef\currentcorrespondenceframe {#environment:#element}% \edef\currentcorrespondencesection {#environment:#element}% \edef\currentcorrespondencedescription{#environment:#element}% \edef\currentcorrespondencehead {#environment:#element}% \edef\currentcorrespondenceparagraph {#environment:#element}} % Setup \unexpanded\def\correspondence_setup[#environment]% {\edef\currentcorrespondence{#environment}% \setupcurrentcorrespondence} \appendtoks \setuevalue{\e!setup\currentcorrespondence\e!endsetup}{\dodoubleargument\correspondence_setup[\currentcorrespondence]}% \to \everydefinecorrespondence % Placement \newtoks\t_correspondence_before \newtoks\t_correspondence_between \newtoks\t_correspondence_after \unexpanded\def\correspondence_place[#environment]% {\begingroup \edef\currentcorrespondence{#environment}% \let \currentcorrespondenceoption\currentcorrespondence \the\t_correspondence_before \page \setuplayout[\c!method=\v!correspondence]% \setupheader[\c!state=\v!stop]% \setupfooter[\c!state=\v!stop]% \edef\p_correspondence_bodyfont {\correspondenceoptionparameter\c!bodyfont }% \edef\p_correspondence_whitespace {\correspondenceoptionparameter\c!whitespace }% \edef\p_correspondence_interlinespace {\correspondenceoptionparameter\c!interlinespace }% \edef\p_correspondence_language {\correspondenceoptionparameter\c!language }% \edef\p_correspondence_backgroundcolor{\correspondenceoptionparameter\c!backgroundcolor}% \ifx\p_correspondence_bodyfont \empty \else \setupbodyfont [\p_correspondence_bodyfont ]\fi \ifx\p_correspondence_whitespace \empty \else \setupwhitespace [\p_correspondence_whitespace ]\fi \ifx\p_correspondence_interlinespace \empty \else \setupinterlinespace[\p_correspondence_interlinespace]\fi \ifx\p_correspondence_language \empty \else \mainlanguage [\p_correspondence_language ]\fi \the\t_correspondence_between \ifx\p_correspondence_backgroundcolor\empty \else \setupbackgrounds[\v!paper][\c!background=\v!color,\c!backgroundcolor=\p_correspondence_backgroundcolor]% \fi \setupbackgrounds[\v!page ][\c!background={\????correspondenceoverlay\c!backgroundimage,\????correspondenceoverlay\c!background,\????correspondenceoverlay\v!layer}]% \setuppagenumbering[\c!alternative=\v!singlesided,\c!location=]% \setupsubpagenumber[\c!way=\v!text,\c!state=\v!start]% \resetsubpagenumber \normalexpanded{\processcommalist[\correspondence_elements_access\currentcorrespondence\v!section]}{\correspondence_section_place\currentcorrespondence}% \page \resetsubpagenumber \setuplayout[\v!reset]% \the\t_correspondence_after \endgroup} %D Besides the normal letter environment there are three different ways to flush %D the content of a letter after the text was set with a buffer etc. %D %D \startitemize %D \item \type{\setups[letter:place]} %D \item \type{\placeletter} %D \item \type{\placecorrespondence[letter]} %D \stopitemize \let\placecorrespondence\correspondence_place \appendtoks \global\c_correspondence_page\zerocount \to \t_correspondence_before \appendtoks \setuevalue{\e!place\currentcorrespondence}{\correspondence_place[\currentcorrespondence]}% \to \everydefinecorrespondence % Layers \installsimplecommandhandler \????correspondencelayer {correspondencelayer} \????correspondencelayer \installsimpleframedcommandhandler \????correspondenceframe {correspondenceframe} \????correspondenceframe \installcommandhandler \????correspondencelayeralternative {correspondencelayeralternative} \????correspondencelayeralternative \unexpanded\def\correspondence_layer_define[#environment][#element]% {\def\currentcorrespondencelayer{#environment:#element}% \let\currentcorrespondenceframe\currentcorrespondencelayer \checkcorrespondencelayerparent \checkcorrespondenceframeparent} \unexpanded\def\correspondence_layer_setup[#environment][#elements][#parameters]% {\def\correspondence_layer_command#element% {\edef\currentcorrespondencelayer{#environment:#element}% \setupcurrentcorrespondencelayer[#parameters]}% \processcommacommand[#elements]\correspondence_layer_command} \unexpanded\def\correspondence_frame_setup[#environment][#elements][#parameters]% {\def\correspondence_frame_command#element% {\edef\currentcorrespondenceframe{#environment:#element}% \setupcurrentcorrespondenceframe[#parameters]}% \processcommacommand[#elements]\correspondence_frame_command} \setvalue{\????correspondencelayerstate }{\!!doneafalse \!!donebfalse \!!donecfalse} \setvalue{\????correspondencelayerstate\v!start }{\!!doneatrue \!!donebfalse \!!donecfalse} \setvalue{\????correspondencelayerstate\v!stop }{\!!doneafalse \!!donebfalse \!!donecfalse} \setvalue{\????correspondencelayerstate\v!next }{\!!doneafalse \!!donebtrue \!!donectrue } \setvalue{\????correspondencelayerstate\v!repeat}{\!!doneatrue \!!donebtrue \!!donectrue } \setvalue{\????correspondencelayerstate\v!left }{\!!doneafalse \!!donebfalse \!!donectrue } \setvalue{\????correspondencelayerstate\v!right }{\!!doneafalse \!!donebtrue \!!donecfalse} \setvalue{\????correspondencelayerstate\v!even }{\!!doneafalse \!!donebfalse \!!donectrue } \setvalue{\????correspondencelayerstate\v!odd }{\!!doneafalse \!!donebtrue \!!donecfalse} \definelayer [\????correspondenceoverlay\v!layer][\c!width=\overlaywidth,\c!height=\overlayheight ] \defineoverlay[\????correspondenceoverlay\v!layer][\correspondence_layer_place\currentcorrespondence] \unexpanded\def\correspondence_layer_place#environment% {\def\correspondence_layer_state#element% {\correspondence_parameters{#environment}{#element}% \expandcheckedcsname\????correspondencelayerstate{\correspondencelayerparameter\c!state}\v!stop \ifnum\c_correspondence_page=\plusone \if!!donea\correspondence_layer_direct\fi \else\ifodd\c_correspondence_page \if!!doneb\correspondence_layer_direct\fi \else \if!!donec\correspondence_layer_direct\fi \fi\fi}% \processcommacommand[\correspondence_elements_access\currentcorrespondence\v!layer]\correspondence_layer_state \tightlayer[\????correspondenceoverlay\v!layer]} \unexpanded\def\correspondence_layer_direct {\setlayer [\????correspondenceoverlay\v!layer] [ \c!x=\correspondencelayerparameter\c!x, \c!y=\correspondencelayerparameter\c!y, \c!preset=\correspondencelayerparameter\c!preset] {\inheritedcorrespondenceframeframed {\doifsomething{\correspondencelayerparameter\c!bodyfont }{\switchtobodyfont [\correspondencelayerparameter\c!bodyfont ]}% \doifsomething{\correspondencelayerparameter\c!interlinespace}{\setupinterlinespace[\correspondencelayerparameter\c!interlinespace]}% \usecorrespondencelayerstyleandcolor\c!style\c!color \doadaptleftskip {\correspondencelayerparameter\c!leftmargin }% \doadaptrightskip{\correspondencelayerparameter\c!rightmargin}% \doifsymboldefinedelse{\correspondencelayerparameter\c!symbol}% {\symbol[\correspondencelayerparameter\c!symbol]} {\correspondence_layer_alternative_place}}}} \unexpanded\def\correspondence_layer_check[#environment][#element]% {\def\currentcorrespondencelayer{#environment:#element}% \ifcsname\currentcorrespondencelayerhash\s!parent\endcsname \else \showmessage\m!correspondence{2}{#element,#environment}% \fi} \unexpanded\def\correspondence_layer_alternative_define[#environment][#self][#parent][#parameters]% {\iffourthargument \definecorrespondencelayeralternative[#environment:#self][#environment:#parent][#parameters]% \else \definecorrespondencelayeralternative[#environment:#self][#parent]% \fi} \unexpanded\def\correspondence_layer_alternative_setup[#environment][#name][#parameters]% {\setupcorrespondencelayeralternative[#environment:#name][#parameters]} \unexpanded\def\correspondence_layer_alternative_place {\edef\p_correspondence_layer_alternative{\correspondencelayerparameter\c!alternative}% \ifcsname\namedcorrespondencelayeralternativehash{\currentcorrespondencelayer:\p_correspondence_layer_alternative}\s!parent\endcsname \edef\currentcorrespondencelayeralternative{\currentcorrespondencelayer:\p_correspondence_layer_alternative}% \else\ifcsname\namedcorrespondencelayeralternativehash{\currentcorrespondenceenvironment:\p_correspondence_layer_alternative}\s!parent\endcsname \edef\currentcorrespondencelayeralternative{\currentcorrespondenceenvironment:\p_correspondence_layer_alternative}% \else \let\currentcorrespondencelayeralternative\p_correspondence_layer_alternative \fi\fi \edef\p_correspondence_layer_renderingsetup{\correspondencelayeralternativeparameter\c!renderingsetup}% \autosetups\p_correspondence_layer_renderingsetup} \definecorrespondencelayeralternative[\v!setups][\c!renderingsetup=\????correspondencelayerrenderings:\v!setups] \startsetups[\????correspondencelayerrenderings:\v!setups] \autosetups{\currentcorrespondenceenvironment:\v!layer:\currentcorrespondenceelement} \stopsetups \setupcorrespondencelayer [ \c!state=\v!start, \c!x=\zeropoint, \c!y=\zeropoint, \c!alternative=\s!default, \c!distance=\lineheight, \c!separator=\crlf] \setupcorrespondenceframe [ \c!frame=\v!off, \c!offset=\zeropoint, \c!align=\v!flushleft] % Sections \installsimplecommandhandler \????correspondencesection {correspondencesection} \????correspondencesection \installcommandhandler \????correspondencesectionalternative {correspondencesectionalternative} \????correspondencesectionalternative \unexpanded\def\correspondence_section_define[#environment][#element]% {\def\currentcorrespondencesection{#environment:#element}% \checkcorrespondencesectionparent} \unexpanded\def\correspondence_section_setup[#environment][#elements][#parameters]% {\def\correspondence_section_command#element% {\edef\currentcorrespondencesection{#environment:#element}% \setupcurrentcorrespondencesection[#parameters]}% \processcommacommand[#elements]\correspondence_section_command} \unexpanded\def\correspondence_section_place#environment#element% {\begingroup \correspondence_parameters{#environment}{#element}% \ifcsname\currentcorrespondencesectionhash\s!parent\endcsname \doifsomethingelse{\correspondencesectionparameter\c!spacebefore}{\blank[\correspondencesectionparameter\c!spacebefore]}\endgraf \correspondencesectionparameter\c!before \doadaptleftskip {\correspondencesectionparameter\c!leftmargin }% \doadaptrightskip{\correspondencesectionparameter\c!rightmargin}% \doifsomething{\correspondencesectionparameter\c!align }{\setupalign [\correspondencesectionparameter\c!align ]}% \doifsomething{\correspondencesectionparameter\c!indenting}{\setupindenting[\correspondencesectionparameter\c!indenting]}% \usecorrespondencesectionstyleandcolor\c!style\c!color \correspondence_section_alternative_place \correspondencesectionparameter\c!after \doifsomethingelse{\correspondencesectionparameter\c!spaceafter }{\blank[\correspondencesectionparameter\c!spaceafter ]}\endgraf \else \showmessage\m!correspondence{2}{#element,#environment}% \fi \endgroup} \unexpanded\def\correspondence_section_alternative_define[#environment][#self][#parent][#parameters]% {\iffourthargument \definecorrespondencesectionalternative[#environment:#self][#environment:#parent][#parameters]% \else \definecorrespondencesectionalternative[#environment:#self][#parent]% \fi} \unexpanded\def\correspondence_section_alternative_setup[#environment][#name][#parameters]% {\setupcorrespondencesectionalternative[#environment:#name][#parameters]} \unexpanded\def\correspondence_section_alternative_place {\edef\p_correspondence_section_alternative{\correspondencesectionparameter\c!alternative}% \ifcsname\namedcorrespondencesectionalternativehash{\currentcorrespondencesection:\p_correspondence_section_alternative}\s!parent\endcsname \edef\currentcorrespondencesectionalternative{\currentcorrespondencelayer:\p_correspondence_section_alternative}% \else\ifcsname\namedcorrespondencesectionalternativehash{\currentcorrespondenceenvironment:\p_correspondence_section_alternative}\s!parent\endcsname \edef\currentcorrespondencesectionalternative{\currentcorrespondenceenvironment:\p_correspondence_section_alternative}% \else \let\currentcorrespondencesectionalternative\p_correspondence_section_alternative \fi\fi \edef\p_correspondence_section_renderingsetup{\correspondencesectionalternativeparameter\c!renderingsetup}% \autosetups\p_correspondence_section_renderingsetup} \definecorrespondencesectionalternative[\v!setups][\c!renderingsetup=\????correspondencesectionrenderings:\v!setups] \startsetups[\????correspondencesectionrenderings:\v!setups] \autosetups{\currentcorrespondenceenvironment:\v!section:\currentcorrespondenceelement} \stopsetups \setupcorrespondencesection [ \c!spacebefore=\v!line, \c!spaceafter=\v!line, \c!spaceinbetween={\v!samepage,\v!line}, \c!alternative=\s!default, \c!separator=\crlf] % Options \installsimplecommandhandler \????correspondenceoption {correspondenceoption} \????correspondenceoption \unexpanded\def\correspondence_option_setup[#environment]% {\edef\currentcorrespondenceoption{#environment}% \setupcurrentcorrespondenceoption}% \defineoverlay [\????correspondenceoverlay\c!backgroundimage] [\doifsomething{\correspondenceoptionparameter\c!backgroundimage} {\overlayfigure{\correspondenceoptionparameter\c!backgroundimage}}] \defineoverlay [\????correspondenceoverlay\c!background] [\correspondenceoptionparameter\c!background] % Descriptions \installsimplecommandhandler \????correspondencedescription {correspondencedescription} \????correspondencedescription \installcommandhandler \????correspondencedescriptionalternative {correspondencedescriptionalternative} \????correspondencedescriptionalternative \let\m_correspondence_description_format\empty \let\m_correspondence_description_items \empty \unexpanded\def\correspondence_description_define[#environment][#element]% {\def\currentcorrespondencedescription{#environment:#element}% \checkcorrespondencedescriptionparent} \unexpanded\def\correspondence_description_setup[#environment][#elements][#parameters]% {\def\correspondence_description_command#element% {\edef\currentcorrespondencedescription{#environment:#element} \setupcurrentcorrespondencedescription[#parameters]}% \processcommacommand[#elements]\correspondence_description_command} \unexpanded\def\correspondence_description_place#environment#element% {\begingroup \correspondence_parameters{#environment}{#element}% \ifcsname\currentcorrespondencedescriptionhash\s!parent\endcsname \doifsomethingelse{\correspondencedescriptionparameter\c!textcommand}\donetrue\donefalse \ifdone \doifsomethingelse{\correspondencedescriptionparameter\c!spacebefore}{\blank[\correspondencedescriptionparameter\c!spacebefore]}\endgraf \correspondencedescriptionparameter\c!before \setbox\scratchbox\hbox {\usecorrespondencedescriptionstyleandcolor\c!headstyle\c!headcolor \correspondencedescriptionparameter\c!headcommand}% \assignwidth {\correspondencedescriptionparameter\c!width} {\scratchdimen} {\unhcopy\scratchbox} {\correspondencedescriptionparameter\c!distance}% \ctxlua{thirddata.correspondence.description_split(\!!bs\correspondencedescriptionparameter\c!textcommand\!!es)}% \expandcheckedcsname\????correspondencedescriptionlocation{\correspondencedescriptionparameter\c!location}\v!left \correspondencedescriptionparameter\c!after \doifsomethingelse{\correspondencedescriptionparameter\c!spaceafter}{\blank[\correspondencedescriptionparameter\c!spaceafter]}\endgraf \fi \else \showmessage\m!correspondence{3}{#element,#environment}% \fi \endgroup} % \unexpanded\def\correspondence_description_alternative_define[#environment][#self][#parent][#parameters]% % {\iffourthargument % \definecorrespondencedescriptionalternative[#environment:#self][#environment:#parent][#parameters]% % \else % \definecorrespondencedescriptionalternative[#environment:#self][#parent]% % \fi} % % \unexpanded\def\correspondence_description_alternative_setup[#environment][#name][#parameters]% % {\setupcorrespondencedescriptionalternative[#environment:#name][#parameters]} % % \unexpanded\def\correspondence_description_alternative_place % {\edef\p_correspondence_description_alternative{\correspondencedescriptionparameter\c!alternative}% % \ifcsname\namedcorrespondencedescriptionalternativehash{\currentcorrespondencedescription:\p_correspondence_description_alternative}\s!parent\endcsname % \edef\currentcorrespondencedescriptionalternative{\currentcorrespondencedescription:\p_correspondence_description_alternative}% % \else\ifcsname\namedcorrespondencedescriptionalternativehash{\currentcorrespondenceenvironment:\p_correspondence_description_alternative}\s!parent\endcsname % \edef\currentcorrespondencedescriptionalternative{\currentcorrespondenceenvironment:\p_correspondence_description_alternative}% % \else % \let\currentcorrespondencedescriptionalternative\p_correspondence_description_alternative % \fi\fi % \edef\p_correspondence_description_renderingsetup{\correspondencedescriptionalternativeparameter\c!renderingsetup}% % \autosetups\p_correspondence_description_renderingsetup} \setvalue{\????correspondencedescriptionlocation\v!left}% {\doadaptleftskip\scratchdimen \setbox\scratchbox\hbox to \scratchdimen{\box\scratchbox\hss}% \noindent\llap{\box\scratchbox}\correspondence_description_place_text} \setvalue{\????correspondencedescriptionlocation\v!top}% {\noindent\box\scratchbox \doifsomethingelse{\correspondencedescriptionparameter\c!spaceinbetween} {\blank[\correspondencedescriptionparameter\c!spaceinbetween]} {\nobreak\endgraf}% \doadaptleftskip {\correspondencedescriptionparameter\c!leftmargin }% \doadaptrightskip{\correspondencedescriptionparameter\c!rightmargin}% \correspondence_description_place_text} \setvalue{\????correspondencedescriptionlocation\v!text}% {\noindent\box\scratchbox\correspondence_description_place_text} \unexpanded\def\correspondence_description_place_text {\expandcheckedcsname\????correspondencedescriptionformat\m_correspondence_description_format\v!none} \setvalue{\????correspondencedescriptionformat\v!list}% todo: use a simplified version of the itemize code {\def\correspondence_description_format_item#text{\startitem#text\stopitem}% \dontleavehmode\vtop\bgroup \leftskip\zeropoint % prevent additional offset when “location=left” is used \doif{\correspondencedescriptionparameter\c!symbol}\v!none{\setupitemgroup[\v!correspondence][\v!each][\c!width=\zeropoint,distance=\zeropoint]}% \startitemgroup[\v!correspondence][\v!packed,\correspondencedescriptionparameter\c!symbol]% \processcommacommand[\m_correspondence_description_items]\correspondence_description_format_item \stopitemgroup \egroup} \setvalue{\????correspondencedescriptionformat\v!none}% {\m_correspondence_description_items} % \def\correspondence_description_item#text% % {\begingroup % \setbox\scratchbox\hbox % {\usecorrespondencedescriptionstyleandcolor\c!symbolstyle\c!symbolcolor % \symbol{\correspondencedescriptionparameter\c!symbol}}% % \assignwidth % {\correspondencedescriptionparameter\c!symbolwidth} % {\scratchdimen} % {\unhcopy\scratchbox} % {\correspondencedescriptionparameter\c!symboldistance}% % \endgroup} \setupcorrespondencedescription [ \c!width=\v!fit, \c!distance=1em, \c!symbol=dash] % Paragraphs \installsimplecommandhandler \????correspondenceparagraph {correspondenceparagraph} \????correspondenceparagraph \installcommandhandler \????correspondenceparagraphalternative {correspondenceparagraphalternative} \????correspondenceparagraphalternative % \newtoks\t_correspondence_paragraphs % % \appendtoks % \the\t_correspondence_paragraphs % \to \t_correspondence_before % % \unexpanded\def\correspondence_paragraph_define[#environment][#element]% % {\def\currentcorrespondenceparagraph{#environment:#element}% % \checkcorrespondenceparagraphparent % \t_correspondence_paragraphs\expandafter{\the\t_correspondence_paragraphs\correspondence_paragraph_commands[#environment][#element]}} \unexpanded\def\correspondence_paragraph_define[#environment][#element]% {\def\currentcorrespondenceparagraph{#environment:#element}% \checkcorrespondenceparagraphparent \correspondence_paragraph_commands[#environment][#element]} \unexpanded\def\correspondence_paragraph_setup[#environment][#elements][#parameters]% {\def\correspondence_paragraph_command#element% {\edef\currentcorrespondenceparagraph{#environment:#element}% \setupcurrentcorrespondenceparagraph[#parameters]}% \processcommacommand[#elements]\correspondence_paragraph_command} \unexpanded\def\correspondence_paragraph_commands[#environment][#element]% {\setuevalue{\e!start#element}{\correspondence_paragraph_start[#environment][#element]}% \setuevalue{\e!stop #element}{\correspondence_paragraph_stop [#environment][#element]}} % \unexpanded\def\correspondence_paragraph_start[#environment][#element]% % {\begingroup % \correspondence_parameters{#environment}{#element}% % \dodoubleempty\correspondence_paragraph_start_parameters}% % % \unexpanded\def\correspondence_paragraph_start_parameters[#parameters][#dummy]% #dummy removes the linebreak before the first line % {\iffirstargument % \setupcurrentcorrespondenceparagraph[#parameters]% % \fi % \grabbufferdatadirect{\????correspondenceparagraphbuffer\currentcorrespondenceparagraph}{\e!start\currentcorrespondenceelement}{\e!stop\currentcorrespondenceelement}} \unexpanded\def\correspondence_paragraph_start[#environment][#element]% {\begingroup \correspondence_parameters{#environment}{#element}% \dosingleempty\correspondence_paragraph_start_parameters}% \unexpanded\def\correspondence_paragraph_start_parameters[#parameters]% {\iffirstargument \setupcurrentcorrespondenceparagraph[#parameters]% \fi \grabbufferdatadirect{\????correspondenceparagraphbuffer\currentcorrespondenceparagraph}{\e!start\currentcorrespondenceelement}{\e!stop\currentcorrespondenceelement}} \unexpanded\def\correspondence_paragraph_stop[#environment][#element]% {\doifsomethingelse{\correspondenceparagraphparameter\c!spacebefore}{\blank[\correspondenceparagraphparameter\c!spacebefore]}\endgraf \correspondence_paragraph_alternative_place \doifsomethingelse{\correspondenceparagraphparameter\c!spaceafter }{\blank[\correspondenceparagraphparameter\c!spaceafter ]}\endgraf \endgroup} \unexpanded\def\correspondence_paragraph_alternative_define[#environment][#self][#parent][#parameters]% {\iffourthargument \definecorrespondenceparagraphalternative[#environment:#self][#environment:#parent][#parameters]% \else \definecorrespondenceparagraphalternative[#environment:#self][#parent]% \fi} \unexpanded\def\correspondence_paragraph_alternative_setup[#environment][#name][#parameters]% {\setupcorrespondenceparagraphalternative[#environment:#name][#parameters]} \unexpanded\def\correspondence_paragraph_alternative_place {\edef\p_correspondence_paragraph_alternative{\correspondenceparagraphparameter\c!alternative}% \ifcsname\namedcorrespondenceparagraphalternativehash{\currentcorrespondenceparagraph:\p_correspondence_paragraph_alternative}\s!parent\endcsname \edef\currentcorrespondenceparagraphalternative{\currentcorrespondenceparagraph:\p_correspondence_paragraph_alternative}% \else\ifcsname\namedcorrespondenceparagraphalternativehash{\currentcorrespondenceenvironment:\p_correspondence_paragraph_alternative}\s!parent\endcsname \edef\currentcorrespondenceparagraphalternative{\currentcorrespondenceenvironment:\p_correspondence_paragraph_alternative}% \else \let\currentcorrespondenceparagraphalternative\p_correspondence_paragraph_alternative \fi\fi \edef\p_correspondence_paragraph_renderingsetup{\correspondenceparagraphalternativeparameter\c!renderingsetup}% \autosetups\p_correspondence_paragraph_renderingsetup} \definecorrespondenceparagraphalternative[\s!default ][\c!renderingsetup=\????correspondenceparagraphrenderings:\s!default ] \definecorrespondenceparagraphalternative[\v!columns ][\c!renderingsetup=\????correspondenceparagraphrenderings:\v!columns ] \definecorrespondenceparagraphalternative[\c!lefttext ][\c!renderingsetup=\????correspondenceparagraphrenderings:\c!lefttext ] \definecorrespondenceparagraphalternative[\c!middletext][\c!renderingsetup=\????correspondenceparagraphrenderings:\c!middletext] \definecorrespondenceparagraphalternative[\c!righttext ][\c!renderingsetup=\????correspondenceparagraphrenderings:\c!righttext ] \startsetups[\????correspondenceparagraphrenderings:\s!default] \ifdefined\currentparentcorrespondenceparagraph \getbufferdata[\????correspondenceparagraphbuffer\currentparentcorrespondenceparagraph] \else \getbufferdata[\????correspondenceparagraphbuffer\currentcorrespondenceparagraph ] \fi \stopsetups \newbox \b_correspondence_paragraph \newcount\c_correspondence_paragraph \unexpanded\def\correspondence_paragraph_columns_start {\begingroup \global\c_correspondence_paragraph\zerocount \edef\p_correspondence_paragraph_n {\correspondenceparagraphparameter\c!n }% \edef\p_correspondence_paragraph_distance{\correspondenceparagraphparameter\c!distance}% \letcorrespondenceparagraphparameter\c!alternative\v!default \dontleavehmode\hbox\bgroup} \unexpanded\def\correspondence_paragraph_columns_stop {\egroup \endgroup} \unexpanded\def\correspondence_paragraph_columns_place {\begingroup \global\advance\c_correspondence_paragraph\plusone \let\currentparentcorrespondenceparagraph\currentcorrespondenceparagraph \chaintocurrentcorrespondenceparagraph{\currentparentcorrespondenceparagraph:\number\c_correspondence_paragraph}% \edef\currentcorrespondenceparagraph {\currentparentcorrespondenceparagraph:\number\c_correspondence_paragraph}% \edef\p_correspondence_columns_width {\correspondenceparagraphparameter\c!width}% \setbox\b_correspondence_paragraph\vtop\bgroup \ifx\p_correspondence_columns_width\empty \else \hsize\p_correspondence_columns_width \fi \usealignparameter\correspondenceparagraphparameter \begstrut \usecorrespondenceparagraphstyleandcolor\c!style\c!color \correspondence_paragraph_alternative_place \endstrut \egroup \ifzeropt\p_correspondence_columns_width \else \ifnum\c_correspondence_paragraph>\p_correspondence_paragraph_n % more columns are used than specified \else\ifnum\c_correspondence_paragraph=\p_correspondence_paragraph_n \box\b_correspondence_paragraph \else \box\b_correspondence_paragraph \hskip\p_correspondence_paragraph_distance \fi\fi \fi \endgroup} \startsetups[\????correspondenceparagraphrenderings:\v!columns] \correspondence_paragraph_columns_start \dorecurse\p_correspondence_paragraph_n\correspondence_paragraph_columns_place \correspondence_paragraph_columns_stop \stopsetups \startsetups[\????correspondenceparagraphrenderings:\c!lefttext] \correspondenceparagraphparameter\c!lefttext \stopsetups \startsetups[\????correspondenceparagraphrenderings:\c!middletext] \correspondenceparagraphparameter\c!middletext \stopsetups \startsetups[\????correspondenceparagraphrenderings:\c!righttext] \correspondenceparagraphparameter\c!righttext \stopsetups \setupcorrespondenceparagraph [\c!spacebefore=\v!line, \c!spaceafter=\v!line, \c!alternative=\s!default, \c!distance=\zeropoint, \c!width=\zeropoint, \c!n=3] % Heading \installframedcommandhandler \????correspondencehead {correspondencehead} \????correspondencehead \installcommandhandler \????correspondenceheadalternative {correspondenceheadalternative} \????correspondenceheadalternative \appendtoks \definelist [\currentcorrespondencehead]% \definelist [\????correspondenceheadlist \currentcorrespondencehead] \definemarking[\currentcorrespondencehead]% \definemarking[\????correspondenceheadmarking\currentcorrespondencehead] \to \everydefinecorrespondencehead % \newtoks\t_correspondence_headings % % \appendtoks % \the\t_correspondence_headings % \to \t_correspondence_before % % \unexpanded\def\correspondence_head_define[#environment][#element]% % {\def\currentcorrespondencehead{#environment:#element}% % \checkcorrespondenceheadparent % \t_correspondence_headings\expandafter{\the\t_correspondence_headings\correspondence_head_commands[#environment][#element]}} \unexpanded\def\correspondence_head_define[#environment][#element]% {\def\currentcorrespondencehead{#environment:#element}% \checkcorrespondenceheadparent \correspondence_head_commands[#environment][#element]} \unexpanded\def\correspondence_head_setup[#environment][#elements][#parameters]% {\def\correspondence_head_command#element% {\edef\currentcorrespondencehead{#environment:#element}% \setupcurrentcorrespondencehead[#parameters]}% \processcommacommand[#elements]\correspondence_head_command} \unexpanded\def\correspondence_head_commands[#environment][#element]% {%setuevalue {#element}{\correspondence_head_direct[#environment][#element]}% \setuevalue{\e!start#element}{\correspondence_head_start [#environment][#element]}% \setuevalue{\e!stop #element}{\correspondence_head_stop [#environment][#element]}} % \unexpanded\def\correspondence_head_direct[#environment][#element]% % {\begingroup % \correspondence_parameters{#environment}{#element}% % \doifnextbgroupelse{\dosinglegroupempty\correspondence_head_direct_argument}{\dosingleempty\correspondence_head_direct_parameters}} % % \unexpanded\def\correspondence_head_direct_argument#title% % {\setcorrespondenceheadparameter\c!title{#title}% % \correspondence_head_alternative_place % \endgroup} % % \unexpanded\def\correspondence_head_direct_parameters[#parameters]% % {\iffirstargument % \setupcurrentcorrespondencehead[#parameters]% % \fi % \correspondence_head_alternative_place % \endgroup} \unexpanded\def\correspondence_head_start[#environment][#element]% {\begingroup \correspondence_parameters{#environment}{#element}% \dodoubleempty\correspondence_head_start_parameters} \unexpanded\def\correspondence_head_start_parameters[#parameters][#dummy]% {\iffirstargument \setupcurrentcorrespondencehead[#parameters]% \fi \correspondenceheadparameter\c!beforesection \correspondence_head_alternative_place} \unexpanded\def\correspondence_head_stop[#environment][#element]% {\correspondenceheadparameter\c!aftersection \endgroup} \unexpanded\def\correspondence_head_alternative_define[#environment][#self][#parent][#parameters]% {\iffourthargument \definecorrespondenceheadalternative[#environment:#self][#environment:#parent][#parameters]% \else \definecorrespondenceheadalternative[#environment:#self][#parent]% \fi} \unexpanded\def\correspondence_head_alternative_setup[#environment][#name][#parameters]% {\setupcorrespondenceheadalternative[#environment:#name][#parameters]} \unexpanded\def\correspondence_head_alternative_place {\edef\p_correspondence_head_alternative{\correspondenceheadparameter\c!alternative}% \ifcsname\namedcorrespondenceheadalternativehash{\currentcorrespondencehead:\p_correspondence_head_alternative}\s!parent\endcsname \edef\currentcorrespondenceheadalternative{\currentcorrespondencehead:\p_correspondence_head_alternative}% \else\ifcsname\namedcorrespondenceheadalternativehash{\currentcorrespondenceenvironment:\p_correspondence_head_alternative}\s!parent\endcsname \edef\currentcorrespondenceheadalternative{\currentcorrespondenceenvironment:\p_correspondence_head_alternative}% \else \let\currentcorrespondenceheadalternative\p_correspondence_head_alternative \fi\fi \edef\p_correspondence_section_renderingsetup{\correspondenceheadalternativeparameter\c!renderingsetup}% \autosetups\p_correspondence_section_renderingsetup} \unexpanded\def\correspondenceheadtitle {\begingroup \usecorrespondenceheadstyleandcolor\c!style\c!color \correspondenceheadparameter\c!textcommand{\begstrut\correspondenceheadparameter\c!title\endstrut}% \endgroup} \definecorrespondenceheadalternative[\s!default ][\c!renderingsetup=\????correspondenceheadrenderings:\s!default ] \definecorrespondenceheadalternative[\v!margin ][\c!renderingsetup=\????correspondenceheadrenderings:\v!margin ] \definecorrespondenceheadalternative[\v!inmargin][\c!renderingsetup=\????correspondenceheadrenderings:\v!inmargin] \startsetups[\????correspondenceheadrenderings:\s!default] \edef\p_spacebefore{\correspondenceheadparameter\c!spacebefore} \edef\p_spaceafter {\correspondenceheadparameter\c!spaceafter } \ifx\p_spacebefore\empty \else \blank[\p_spacebefore] \fi \vbox\bgroup \usealignparameter\correspondenceheadparameter \correspondenceheadtitle \egroup \ifx\p_spaceafter\empty \else \blank[\p_spaceafter] \fi \stopsetups \startsetups[\????correspondenceheadrenderings:\v!margin] \dontleavehmode\llap\bgroup \vtop\bgroup \hsize\leftmarginwidth \usealignparameter\correspondenceheadparameter \correspondenceheadtitle \egroup \hskip\leftmargindistance \egroup \blank[\v!overlay] \stopsetups \setupcorrespondencehead [ \c!spacebefore=\v!line, \c!spaceafter={\v!samepage,\v!line}, \c!alternative=\s!default, \c!align=\v!middle, \c!style=\v!bold] % Elements \unexpanded\def\correspondence_element_define[#environment][#type][#element][#name]% {\edef\m_correspondence_element_type{#type}% \ifx\m_correspondence_element_type\v!section \expandafter\correspondence_element_define_section \else \expandafter\correspondence_element_define_layer \fi[#environment][#type][#element][#name]} \def\correspondence_element_define_section[#environment][#type][#element][#name]#content% {\definecorrespondencesectionalternative[#environment:#element:#name][\c!renderingsetup=\????correspondencesectionrenderings:\v!command]% \setvalue{\????correspondenceelement:#environment:#type:#element:#name}{#content}} \def\correspondence_element_define_layer[#environment][#type][#element][#name]#content% {\definecorrespondencelayeralternative[#environment:#element:#name][\c!renderingsetup=\????correspondencelayerrenderings:\v!command]% \setvalue{\????correspondenceelement:#environment:#type:#element:#name}{#content}} \startsetups[\????correspondencesectionrenderings:\v!command] \correspondence_element_place[\currentcorrespondenceenvironment][\v!section][\currentcorrespondenceelement][\correspondencesectionparameter\c!alternative] \stopsetups \startsetups[\????correspondencelayerrenderings:\v!command] \correspondence_element_place[\currentcorrespondenceenvironment][\v!layer][\currentcorrespondenceelement][\correspondencelayerparameter\c!alternative] \stopsetups \unexpanded\def\correspondence_element_place[#environment][#type][#element][#name]% {\expandcheckedcsname{\????correspondenceelement:#environment:#type:#element:}{#name}\s!default} % Files \unexpanded\def\correspondence_file_load[#environment][#names]% {\def\correspondence_file_command#name% {\ctxlua{thirddata.correspondence.file("#environment","#name")}}% \processcommacommand[#names]\correspondence_file_command} % Style \installsimplecommandhandler \????correspondencestyle {correspondencestyle} \????correspondencestyle \unexpanded\def\correspondence_style_setup[#environment][#elements][#parameters]% {\def\correspondence_style_command#element% {\edef\currentcorrespondencestyle{#environment:#element}% \setupcurrentcorrespondencestyle[#parameters]}% \processcommacommand[#elements]\correspondence_style_command} \unexpanded\def\correspondence_style_width#environment#element#content% {\edef\currentcorrespondencestyle {#environment:#element}% \edef\p_correspondence_style_width{\correspondencestyleparameter\c!width}% \hbox \ifx\p_correspondence_style_width\empty \else to \p_correspondence_style_width \fi{#content\hss}} \unexpanded\def\formattedcorrespondenceparameter#element% {\begingroup \edef\currentcorrespondenceelement{#element}% \edef\currentcorrespondencestyle {\currentcorrespondence:#element}% \usecorrespondencestylestyleandcolor\c!style\c!color \correspondenceparameter\currentcorrespondenceelement \endgroup} %D \section{Layout} %D %D \startitemize[packed] %D \item firstpage, %D \item secondpage, %D \item leftpage and %D \item rightpage. %D \stopitemize \newcount\c_correspondence_page \installlayoutmethod \v!correspondence {\global\advance\c_correspondence_page\plusone \ifnum\c_correspondence_page=\plusone \changetolayout{\????correspondencelayout\currentcorrespondence\v!firstpage}% \else\ifodd\c_correspondence_page \changetolayout{\????correspondencelayout\currentcorrespondence\v!rightpage}% \else \changetolayout{\????correspondencelayout\currentcorrespondence\v!leftpage }% \fi\fi} \unexpanded\def\correspondence_layout_define {\dotripleempty\correspondence_layout_define_indeed} \unexpanded\def\correspondence_layout_define_indeed[#environment][#self][#parent]% {\def\m_correspondence_layout_self {#environment#self}% \def\m_correspondence_layout_parent{#environment#parent}% \ifthirdargument \definelayout[\????correspondencelayout\m_correspondence_layout_self][\????correspondencelayout\m_correspondence_layout_parent]% \else \definelayout[\????correspondencelayout\m_correspondence_layout_self]% \fi} \unexpanded\def\correspondence_layout_setup[#environment][#elements][#parameters]% {\def\correspondence_layout_command#element% {\def\m_correspondence_layout_current{#environment#element}% \setuplayout[\????correspondencelayout\m_correspondence_layout_current][#parameters]}% \processcommacommand[#elements]\correspondence_layout_command} \appendtoks \correspondence_layout_define[\currentcorrespondence][\v!firstpage ]% \correspondence_layout_define[\currentcorrespondence][\v!secondpage]% \correspondence_layout_define[\currentcorrespondence][\v!leftpage ][\v!secondpage]% \correspondence_layout_define[\currentcorrespondence][\v!rightpage ][\v!secondpage]% \to \everydefinecorrespondence % Lists \def\correspondence_elements_define[#environment][#name][#list]% {\setvalue{\????correspondenceelements#environment:#name}{#list}} \def\correspondence_elements_access#environment#name% {\begcsname\????correspondenceelements#environment:#name\endcsname} % Extras \definesymbol[\v!cutmark][{\blackrule[\c!width=4mm,\c!height=\linewidth]}] \protect \endinput context-modules-20240428/tex/context/third/letter/base/s-cor-06.mkvi0000644000175000017500000000314113713611553024040 0ustar hillehille%D \module %D [ file=s-cor-06, %D version=2012.09.21, %D title=\CONTEXT\ User Module, %D subtitle=Address entries, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \unprotect \installnamespace {addressentry} \installcommandhandler \????addressentry {addressentry} \????addressentry \appendtoks \addressentryparameter\c!reset \to \everypresetaddressentry \appendtoks \addressentryparameter\c!set \to \everydefineaddressentry \unexpanded\def\addressentry {\dodoubleempty\addressentry_cmd} \def\addressentry_cmd[#id][#key]% {\begingroup \ifsecondargument \edef\currentaddressentry {#id}% \edef\currentaddressentrykey{#key}% \else \edef\currentaddressentrykey{#id}% \fi \addressentryparameter\currentaddressentrykey \endgroup} \stopmodule \protect \endinput context-modules-20240428/tex/context/third/letter/base/s-cor-03.mkvi0000644000175000017500000003121514133105703024030 0ustar hillehille%D \module %D [ file=s-cor-03, %D version=2012.12.13, %D title=\CONTEXT\ User Module, %D subtitle=Resume, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \unprotect \startmodule[resume] \usemodule[cor-00] \setupmodule [\c!style=] % Namespaces \installnamespace {resumelayerrenderings} \installnamespace {resumesectionrenderings} % Commands \definecorrespondence[\v!resume] \def\defineresumelayer {\dodoubleargument\correspondence_layer_define [\v!resume]} \def\defineresumesection {\dodoubleargument\correspondence_section_define [\v!resume]} \def\defineresumedescription {\dodoubleargument\correspondence_description_define [\v!resume]} \def\defineresumehead {\dodoubleargument\correspondence_head_define [\v!resume]} \def\defineresumeparagraph {\dodoubleargument\correspondence_paragraph_define [\v!resume]} \def\defineresumelayeralternative {\doquadrupleempty\correspondence_layer_alternative_define [\v!resume]} \def\defineresumesectionalternative {\doquadrupleempty\correspondence_section_alternative_define [\v!resume]} \def\defineresumeheadalternative {\doquadrupleempty\correspondence_head_alternative_define [\v!resume]} \def\defineresumeparagraphalternative {\doquadrupleempty\correspondence_paragraph_alternative_define [\v!resume]} \def\defineresumeelements {\dotripleargument\correspondence_elements_define [\v!resume]} \def\setupresumeelements {\dotripleargument\correspondence_elements_define [\v!resume]} \def\setupresumestyle {\dotripleargument\correspondence_style_setup [\v!resume]} \def\setupresumelayer {\dotripleargument\correspondence_layer_setup [\v!resume]} \def\setupresumeframe {\dotripleargument\correspondence_frame_setup [\v!resume]} \def\setupresumelayout {\dotripleargument\correspondence_layout_setup [\v!resume]} \def\setupresumesection {\dotripleargument\correspondence_section_setup [\v!resume]} \def\setupresumedescription {\dotripleargument\correspondence_description_setup [\v!resume]} \def\setupresumehead {\dotripleargument\correspondence_head_setup [\v!resume]} \def\setupresumeparagraph {\dotripleargument\correspondence_paragraph_setup [\v!resume]} \def\setupresumeoptions {\dodoubleargument\correspondence_option_setup [\v!resume]} \def\setupresumelayeralternative {\dotripleargument\correspondence_layer_alternative_setup [\v!resume]} \def\setupresumesectionalternative {\dotripleargument\correspondence_section_alternative_setup [\v!resume]} \def\setupresumeheadalternative {\dotripleargument\correspondence_head_alternative_setup [\v!resume]} \def\setupresumeparagraphalternative {\dotripleargument\correspondence_paragraph_alternative_setup [\v!resume]} \def\useresumestyle {\dodoubleargument\correspondence_file_load [\v!resume]} \def\defineresumeelement {\doquadrupleargument\correspondence_element_define [\v!resume]} \def\resumeelement {\doquadrupleargument\correspondence_element_place [\v!resume]} \def\namedresumelayerparameter #element{\namedcorrespondencelayerparameter {\v!resume:#element}} \def\namedresumeframeparameter #element{\namedcorrespondenceframeparameter {\v!resume:#element}} \def\namedresumesectionparameter #element{\namedcorrespondencesectionparameter {\v!resume:#element}} \def\namedresumeparagraphparameter#element{\namedcorrespondenceparagraphparameter{\v!resume:#element}} % Heading \defineresumehead [\v!resume\v!section] \defineresumehead [\v!resume\v!subsection] % Paragraphs \defineresumeparagraph [\v!resume\v!paragraph] \defineresumeparagraph [\v!two\v!columns] \defineresumeparagraph [\v!three\v!columns] % Layers \defineresumelayer [\v!head] \defineresumelayer [\v!nexthead] \defineresumelayer [\v!lefthead] \defineresumelayer [\v!righthead] \defineresumelayer [\v!foot] \defineresumelayer [\v!nextfoot] \defineresumelayer [\v!leftfoot] \defineresumelayer [\v!rightfoot] \defineresumelayer [\v!topmark] \defineresumelayer [\v!botmark] \defineresumelayer [\v!cutmark] \defineresumelayer [\v!endmark] \defineresumelayer [\v!usermark] \defineresumelayer [\v!resumemain] \defineresumelayer [\v!resumenext] % Section \defineresumesection [\v!head] \defineresumesection [\v!content] \defineresumesection [\v!closing] % Setups % layer: head % setups -> see s-cor-00.mkvi % layer: nexthead % setups -> see s-cor-00.mkvi % layer: lefthead % setups -> see s-cor-00.mkvi % layer: righthead % setups -> see s-cor-00.mkvi % layer: foot \defineresumelayeralternative[\v!foot:\v!casual][\c!renderingsetup=\????resumelayerrenderings:\v!foot:\v!casual] \def\resumefootalternativecasual[#1][#2]% Can I make a generic version? {\bgroup \def\resumefootalternativecasual##1% {\doifresumevalue{##1}{\advance\scratchcounter\plusone}}% \def\doresumefootsingleelement##1% {\doifresumevalue{##1}{\attributedresumevalue{#1}}}% \def\doresumefootmultipleelement##1% {\doifresumevalue{##1} {\advance\scratchcounter\plusone \attributedresumevalue{##1} \unless\ifnum\scratchcounter=\resumefootvalues #2% \fi}}% \scratchcounter\zerocount \processcommalist[#1]\resumefootalternativecasual \edef\resumefootvalues{\number\scratchcounter}% \scratchcounter\zerocount \ifnum\resumefootvalues>0 \ifnum\resumefootvalues=1 \processcommalist[#1]\doresumefootsingleelement \else \processcommalist[#1]\doresumefootmultipleelement \fi \fi \egroup} \def\m_correspondence_resume_foot_casual#element% {\ifvoid\scratchboxone \doifsomething{\correspondenceparameter{#element}}{\setbox\scratchboxone\hbox{\formattedcorrespondenceparameter{#element}}}% \else \doifsomething{\correspondenceparameter{#element}} {\setbox\scratchboxtwo\box\scratchboxone \setbox\scratchboxone\hbox{\copy\scratchboxtwo \quad\color[resume:separator]{\symbol[bullet]}\quad \formattedcorrespondenceparameter{#element}}% \ifdim\wd\scratchboxone>\hsize \unhbox\scratchboxtwo\endgraf \setbox\scratchboxone\hbox{\formattedcorrespondenceparameter{#element}}% \fi}% \fi} \startsetups[\????resumelayerrenderings:\v!foot:\v!casual] \doifsomething{\correspondenceparameter{street}} {\formattedcorrespondenceparameter{street} \doifsomething{\correspondenceparameter{town}}{\quad\color[resume:separator]{\symbol[dash]}\quad}} \doifsomething{\correspondenceparameter{town}}{\formattedcorrespondenceparameter{town}} \par \setbox\scratchboxone\box\voidbox %\processcommalist[mobile,phone,fax,email,info]\m_correspondence_resume_foot_casual \processcommacommand[\correspondencelayerparameter\c!list]\m_correspondence_resume_foot_casual \unhbox\scratchboxone \stopsetups % layer: nextfoot \defineresumelayeralternative[\v!nextfoot:\v!casual ][\c!renderingsetup=\????resumelayerrenderings:\v!nextfoot:\v!casual ] \defineresumelayeralternative[\v!nextfoot:\v!classic][\c!renderingsetup=\????resumelayerrenderings:\v!nextfoot:\v!classic] \startsetups[\????resumelayerrenderings:\v!nextfoot:\v!casual] \color[resume:address]{\it\subpagenumber/\lastsubpagenumber} \stopsetups \startsetups[\????resumelayerrenderings:\v!nextfoot:\v!classic] \color[resume:quote]{\it\subpagenumber/\lastsubpagenumber} \stopsetups % layer: topmark % setups -> see s-cor-00.mkvi % layer: botmark % setups -> see s-cor-00.mkvi % layer: cutmark % setups -> see s-cor-00.mkvi % layer: endmark % setups -> see s-cor-00.mkvi % layer: usermark % setups -> see s-cor-00.mkvi % layer: resumemain % setups -> see s-cor-00.mkvi % layer: resumenext % setups -> see s-cor-00.mkvi % section: head \defineresumesectionalternative[\v!head:\s!default][\c!renderingsetup=\????resumesectionrenderings:\v!head:\s!default] \startsetups[\????resumesectionrenderings:\v!head:\s!default] \def\\{\correspondencesectionparameter\c!separator} \correspondenceparameter\c!fromaddress \stopsetups \defineresumesectionalternative[\v!head:\v!casual][\c!renderingsetup=\????resumesectionrenderings:\v!head:\v!casual] \startsetups[\????resumesectionrenderings:\v!head:\v!casual] \hbox to\hsize\bgroup \doifsomething{\correspondenceparameter{image}} {\framed[\c!offset=2\points,\c!strut=\v!no,\c!framecolor=resume:forename]{\correspondenceparameter{image}}} \hfill \hbox\bgroup \formattedcorrespondenceparameter{firstname} \space \formattedcorrespondenceparameter{familyname} \egroup \egroup \vskip-\baselineskip \blank[\v!medium] \blackrule[\c!height=2\linewidth,\c!width=\hsize,\c!color=resume:1] \doifsomething{\correspondenceparameter{quote}} {\blank[\v!line] \midaligned{\formattedcorrespondenceparameter{quote}}} \stopsetups \defineresumesectionalternative[\v!head:\v!classic][\c!renderingsetup=\????resumesectionrenderings:\v!head:\v!classic] \startsetups[\????resumesectionrenderings:\v!head:\v!classic] \hbox to \hsize\bgroup \vbox\bgroup \hbox{\formattedcorrespondenceparameter{firstname}\space\formattedcorrespondenceparameter{familyname}} \doifsomething{\correspondenceparameter{title}} {\blank[\v!medium] \hbox{\formattedcorrespondenceparameter{title}}} \egroup \hfill \startframed[\c!location=\v!bottom,\c!align=\v!left,\c!width=\v!fit,\c!frame=\v!off] \doifsomething{\correspondenceparameter{street}}{\formattedcorrespondenceparameter{street}\\} \doifsomething{\correspondenceparameter {town}}{\formattedcorrespondenceparameter {town}\\} \doifsomething{\correspondenceparameter{mobile}}{\formattedcorrespondenceparameter{mobile}\\} \doifsomething{\correspondenceparameter {phone}}{\formattedcorrespondenceparameter {phone}\\} \doifsomething{\correspondenceparameter {fax}}{\formattedcorrespondenceparameter {fax}\\} \doifsomething{\correspondenceparameter {email}}{\formattedcorrespondenceparameter {email}\\} \doifsomething{\correspondenceparameter {info}}{\formattedcorrespondenceparameter {info}\\} \stopframed \doifsomething{\correspondenceparameter{image}} {\quad \framed[\c!offset=2\points,\c!strut=\v!no]{\correspondenceparameter{image}}} \egroup \stopsetups % section: content \defineresumesectionalternative[\v!content:\s!default][\c!renderingsetup=\????resumesectionrenderings:\v!content:\s!default] \startsetups[\????resumesectionrenderings:\v!content:\s!default] \getbufferdata[\????correspondencebuffer\v!resume] \stopsetups % section: closing % setups -> see s-cor-00.mkvi % paragraph: % Extras \appendtoks \ifx\currentcorrespondence\v!resume \doif{\correspondenceoptionparameter\c!marking}\v!no{\setupresumelayer[\v!topmark,\v!botmark,\v!cutmark,\v!endmark,\v!usermark][\c!state=\v!stop]}% \fi \to \t_correspondence_before \appendtoks \ifx\currentcorrespondence\v!resume \edef\p_correspondence_option_position{\correspondenceoptionparameter\c!position}% \ifx\p_correspondence_option_position\v!yes % low level code, I need a better solution for this! \setbox\scratchbox\vbox {\edef\currentcorrespondencelayer {\v!resume:\v!head}% \edef\currentcorrespondenceenvironment{\v!resume}% \correspondence_layer_alternative_place}% \normalexpanded {\setupresumelayout [\v!firstpage] [\c!topspace=\dimexpr\namedresumelayerparameter\v!head\c!y+\ht\scratchbox+\namedresumelayerparameter\v!head\c!distance\relax]}% \fi \fi \to \t_correspondence_before % Labels \definelabelclass[resume] % Files \useresumestyle[default,\currentmoduleparameter\c!style] \stopmodule \protect \endinput context-modules-20240428/tex/context/third/transliterator/0000755000175000017500000000000014613513621022544 5ustar hillehillecontext-modules-20240428/tex/context/third/transliterator/t-transliterator.mkiv0000644000175000017500000001457314147266523026774 0ustar hillehille%D \module %D [ file=t-transliterator, %D version=2021-11-21 18:19:24+0100, %D title=\CONTEXT\ User Module, %D subtitle=The Transliterator, %D author=Philipp Gesang, %D date=\currentdate, %D copyright=Philipp Gesang, %D license=2-clause BSD, %D email={pgesang at ix dot urz dot uni-heidelberg dot de}] %D This module is licensed under the conditions of the BSD license with %D two clauses, there is a copy it in a file named "COPYING" in the %D transliterator source tree. \writestatus{loading}{Transliteration from non-Latin scripts} \unprotect \definenamespace [TRL] [ name=transliterate, type=module, setup=list, parent=TRL, style=no, version=2021, comment=Transliteration from non-Latin scripts., ] \ctxlua{environment.loadluafile ("transliterator")} %D Use the Transliterator by adding \type{\usemodule[transliterator]} somewhere %D before \type{\starttext}. Adjust the Transliterator through the %D \type{\setuptransliterate} command. As a first argument it accepts a set of %D key-value options; at present you may configure \type{mode} and %D \type{hyphenate}. \def\set_serbian_exceptions{% \doifelse{\transliterateparameter{sr_exceptions}}\v!yes {\ctxlua{thirddata.translit.sr_except = true}} {\ctxlua{thirddata.translit.sr_except = false}}% } \def\set_hinting{% \doifelse{\transliterateparameter{hinting}}\v!yes {\ctxlua{thirddata.translit.hinting = true}} {\ctxlua{thirddata.translit.hinting = false}}% } \appendtoks \set_serbian_exceptions \to \everysetuptransliterate \appendtoks \set_hinting \to \everysetuptransliterate %D At first we'll set some defaults: \setuptransliterate[% debug=\v!false, hinting=\v!yes, hyphenate=cz, mode=ru_old, sr_exceptions=\v!yes, deficient_font=\v!no, ] %D Possible values for \type{mode} are by the time of this writing: %D \type{ru}, \type{ru_transcript_de}, \type{ru_transcript_en}, \type{ru_old}, %D \type{all}, \type{iso9_ocs}, \type{ocs}, \type{ocs_gla}, \type{ru_cz}, %D \type{ocs_cz}, \type{gr} and \type{gr_n}. %D As not all fonts, even the expensive ones, support some of the most frequent %D unicode signs used in ISO~9, there are fallbacks for the transliterations of %D the weak and hard sign. %D They work with the modes \type{iso9_ocs}, \type{all} and %D \type{ru_old} only and can be triggered by setting the %D variable \type{deficient_font} to the value {\em yes}. %D This will transliterate {\em ь} and {\em ъ} (both upper and %D lower case) to the more common, but non-ISO characters {\em ’} and {\em ”} %D respectively. %D Possible values for \type{hyphenate} are all valid \CONTEXT\ language code, for an %D overview see \type{http://wiki.contextgarden.net/Language_Codes}. %D In praxi you may want to choose either Czech (the default) or Slovak %D (\type{sk}) for most transliterations from cyrillic scripts. I've not yet %D made up my mind concerning Greek transliteration, any suggestions are %D welcome. %D The following will help debugging and reviewing tables. Make sure your %D typescript can handle the characters, in general it's no use with Latin %D Modern which unfortunately provides only a restricted set of the unicode %D range. %D %D The user-level command to output a single substitution table is %D \type{\showOneTranslitTab{#1}}. \define[1]\showOneTranslitTab{% \startluacode environment.loadluafile ("trans_tables_iso9") environment.loadluafile ("trans_tables_trsc") environment.loadluafile ("trans_tables_scntfc") environment.loadluafile ("trans_tables_trsc") environment.loadluafile ("trans_tables_glag") environment.loadluafile ("trans_tables_gr") thirddata.translit.gen_rules_en() thirddata.translit.gen_rules_de() thirddata.translit.show_tab(translit["\luaescapestring{#1}"]) \stopluacode } %D The user-level command to output all defined tables is %D \type{\showTranslitTabs}. \define\showTranslitTabs{% \ctxlua{thirddata.translit.show_all_tabs()}% } \def\translitDebug#1{% \doif{\transliterateparameter{debug}}{yes}{% {\ss\inmargin{\ctxlua{thirddata.translit.debug_next()}} #1}% }% } %D The user-level command \type{\transliterate[#1]{#2}} does the job of %D switching to a given language (for hyphenation) and adjusting the %D substitution method locally. It takes an optional list \type{[#1]} of %D key-value arguments to allow ad-hoc specification of either two that deviate %D from the defaults set initially by means of \type{\setuptransliterate}. %D %D Internally, \type{\dotransliterate} is called according to the \CONTEXT\ %D coding style and in case the user provides \type{hyphenate=} or %D \type{mode=} those will be used instead of the globals. Note that this %D leaves the latter unchanged. Thus, in order to permanently switch to %D another transliteration style the user would have to set it by calling %D \type{\setuptransliterate} again. %D % All credits for rewriting the TeX code go to Wolfgang as well. % http://www.ntg.nl/pipermail/ntg-context/2010/047816.html \def\dotransliterate[#1]#2{% \bgroup\iffirstargument \setuptransliterate[#1]% \fi \language[\transliterateparameter{hyphenate}]% \ctxlua{ thirddata.translit.deficient_font = "\transliterateparameter{deficient_font}" thirddata.translit.transliterate("\transliterateparameter{mode}","\luaescapestring{#2}") }% \egroup% } \unexpanded\def\transliterate{\dosingleempty\dotransliterate} \def\expandabletransliterate#1{% %\bgroup %\setuptransliterate[#1]% %\language[\transliterateparameter{hyphenate}]% \ctxlua{ thirddata.translit.deficient_font = "\transliterateparameter{deficient_font}" thirddata.translit.transliterate("\transliterateparameter{mode}","#1") }% %\egroup% } \unexpanded\def\starttransliterate{% \bgroup% \dosingleempty\dostarttransliterate% } \let\stoptransliterate\relax \def\dostarttransliterate[#1]#2\stoptransliterate{% \iffirstargument \setuptransliterate[#1]% \fi \language[\transliterateparameter{hyphenate}]% \ctxlua{thirddata.translit.transliterate("\transliterateparameter{mode}","\luaescapestring{#2}")}% \egroup% } \newconditional\transliterate_useexpanded \setfalse\transliterate_useexpanded \def\transliterate_conditional[#1]#2{% \ifconditional\transliterate_useexpanded \transliterate[#1]{#2}% \else \expandabletransliterate{#2}% \fi% } \protect \endinput % vim:ft=context context-modules-20240428/tex/context/third/transliterator/transliterator.lua0000644000175000017500000002631514147266523026343 0ustar hillehille#!/usr/bin/env texlua -------------------------------------------------------------------------------- -- FILE: transliterator.lua -- USAGE: to be called by t-transliterator.mkiv -- DESCRIPTION: basic lua environment for the Transliterator module -- REQUIREMENTS: latest ConTeXt MkIV -- AUTHOR: Philipp Gesang (Phg), -- CREATED: 2010-12-23 22:12:31+0100 -------------------------------------------------------------------------------- -- thirddata = thirddata or { } thirddata.translit = thirddata.translit or { } local translit = thirddata.translit translit.tables = translit.tables or { } translit.methods = translit.methods or { } translit.deficient_font = "no" translit.parser_cache = { } local utf8 = unicode and unicode.utf8 or utf8 local utf8byte = utf8.byte local utf8len = utf8.len -------------------------------------------------------------------------------- -- Predefining vowel lists -------------------------------------------------------------------------------- -- If you haven't heard of cyrillic scripts until now you might want to read -- at least the first 15 pages of -- http://www.uni-giessen.de/partosch/eurotex99/berdnikov2.pdf -- before you continue reading this file. translit.ru_vowels = {"а", "е", "ё", "и", "й", "о", "у", "ы", "э", "ю", "я", "А", "Е", "Ё", "И", "Й", "О", "У", "Ы", "Э", "Ю", "Я"} translit.ru_consonants = {"б", "в", "г", "д", "ж", "з", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "Б", "В", "Г", "Д", "Ж", "З", "К", "Л", "М", "Н", "П", "Р", "С", "Т", "Ф", "Х", "Ц", "Ч", "Ш", "Щ"} -- Substitution tables are the very heart of the Transliterator. Due to the -- nature of languages and scripts exhaustive substitution is the simplest -- method for transliterations and transcriptions unless they are one-to-one -- mappings like those defined in ISO~9. -- -- To achieve better reusability we split the tables into segments, the most -- obvious being the \type{*_low} and \type{*_upp} variants for sets of lowercase -- and uppercase characters. Another set is constituted by e.~g. the -- \type{ru_old*} tables that allow adding transcription of historical -- characters if needed; by the way those are included in the default -- transliteration mode \type{ru_old}. -- Tables can be found in separate Lua files. -- See {\tt -- trans_tables_glag.lua -- trans_tables_gr.lua -- trans_tables_iso9.lua -- trans_tables_scntfc.lua -- and -- trans_tables_trsc.lua.} -------------------------------------------------------------------------------- -- Metatables allow for lazy concatenation. -------------------------------------------------------------------------------- do -- This returns the Union of both key sets for the “+” operator. -- The values of the first table will be updated (read: overridden) by -- those given in the second. local Dict_add = { __add = function (dict_a, dict_b) assert (type(dict_a) == "table" and type(dict_b) == "table") local dict_result = setmetatable({}, Dict_add) for key, val in pairs(dict_a) do dict_result[key] = val end for key, val in pairs(dict_b) do dict_result[key] = val end return dict_result end } translit.make_add_dict = function (dict) return setmetatable(dict, Dict_add) end end -------------------------------------------------------------------------------- -- Auxiliary Functions -------------------------------------------------------------------------------- -- Generate a rule pattern from hash table. do local P, R, V = lpeg.P, lpeg.R, lpeg.V -- multi-char rules first translit.addrules = function (dict, rules) local by_length, occurring_lengths = { }, { } for chr, _ in next, dict do local l = utf8len(chr) if not by_length[l] then by_length[l] = { } occurring_lengths[#occurring_lengths+1] = l end by_length[l][#by_length[l]+1] = chr end table.sort(occurring_lengths) for i=#occurring_lengths, 1, -1 do local l = occurring_lengths[i] for _, chr in next, by_length[l] do rules = rules and rules + P(chr) or P(chr) end end return rules end -- Modified version of Hans’s utf pattern (l-lpeg.lua). translit.utfchar = P{ V"utf8one" + V"utf8two" + V"utf8three" + V"utf8four", utf8next = R("\128\191"), utf8one = R("\000\127"), utf8two = R("\194\223") * V"utf8next", utf8three = R("\224\239") * V"utf8next" * V"utf8next", utf8four = R("\240\244") * V"utf8next" * V"utf8next" * V"utf8next", } end -- We might want to have all the table data nicely formatted by \CONTEXT\ -- itself, here's how we'll do it. \type{translit.show_tab(t)} handles a -- single table \type{t}, builds a Natural TABLE out of its content and -- hands it down to the machine for typesetting. For debugging purposes it -- does not only print the replacement pairs but shows their code points as -- well. -- handle the input chars and replacement values local strempty = function (s) if s == "" then return "nil" else -- add the unicode positions of the replacements (can be more -- than one with composed diacritics local i = 1 local r = "" repeat r = r .. utf8byte(s,i) .. " " i = i + 1 until utf8byte(s,i) == nil return r end end function translit.show_tab (tab) -- Output a transliteration table, nicely formatted with natural tables. -- Lots of calls to context() but as it’s only a goodie this doesn’t -- really matter. local cnt = 0 context.setupTABLE({"r"}, {"each"}, {style="\\tfx", align="center"}) context.setupTABLE({"c"}, {"each"}, {frame="off"}) context.setupTABLE({"r"}, {"each"}, {frame="off"}) context.setupTABLE({"c"}, {"first"}, {style="italic"}) context.setupTABLE({"r"}, {"first"}, {style="bold", topframe="on", bottomframe="on"}) context.setupTABLE({"r"}, {"last"}, {style="bold", topframe="on", bottomframe="on"}) context.bTABLE({split="yes", option="stretch"}) context.bTABLEhead() context.bTR() context.bTH() context("number") context.eTH() context.bTH() context("letters") context.eTH() context.bTH() context("n") context.eTH() context.bTH() context("replacement") context.eTH() context.bTH() context("n") context.eTH() context.bTH() context("bytes") context.eTH() context.bTH() context("repl. bytes") context.eTH() context.eTR() context.eTABLEhead() context.bTABLEbody() for key, val in next,tab do cnt = cnt + 1 context.bTR() context.bTC() context(cnt) context.eTC() context.bTC() context(key) context.eTC() context.bTC() context(string.len(key)) context.eTC() context.bTC() context(val) context.eTC() context.bTC() context(string.len(val)) context.eTC() context.bTC() context(strempty(key)) context.eTC() context.bTC() context(strempty(val)) context.eTC() context.eTR() end context.eTABLEbody() context.bTABLEfoot() context.bTR() context.bTC() context("number") context.eTC() context.bTC() context("letters") context.eTC() context.bTC() context("n") context.eTC() context.bTC() context("replacement") context.eTC() context.bTC() context("n") context.eTC() context.bTC() context("bytes") context.eTC() context.bTC() context("repl. bytes") context.eTC() context.eTR() context.eTABLEfoot() context.eTABLE() end -- Having to pick out single tables for printing can be tedious, therefore we -- let Lua do the job in our stead. \type{translit.show_all_tabs()} calls -- \type{translit.show_tab} on every table that is registered with -- \type{translit.table} -- and uses its registered key as table heading. function translit.show_all_tabs () environment.loadluafile ("trans_tables_iso9") environment.loadluafile ("trans_tables_trsc") environment.loadluafile ("trans_tables_scntfc") environment.loadluafile ("trans_tables_sr") environment.loadluafile ("trans_tables_trsc") environment.loadluafile ("trans_tables_glag") environment.loadluafile ("trans_tables_gr") translit.gen_rules_en() translit.gen_rules_de() -- Output all translation tables that are registered within translit.tables. -- This will be quite unordered. context.chapter("Transliterator Showing All Tables") for key, val in pairs(translit.tables) do context.section(key) translit.show_tab (val) end end -- for internal use only translit.debug_count = 0 function translit.debug_next () translit.debug_count = translit.debug_count + 1 context("\\tfxx{\\bf translit debug msg. nr.~" .. translit.debug_count .. "}") end -------------------------------------------------------------------------------- -- User-level Function -------------------------------------------------------------------------------- -- \type{translit.transliterate(m, t)} constitutes the -- metafunction that is called by the \type{\transliterate} command. -- It loads the transliteration tables according to \type{method} and calls the -- corresponding function. -- Those supposedly are the most frequently used so it won’t hurt to preload -- them. The rest will be loaded on request. environment.loadluafile ("trans_tables_iso9") function translit.transliterate (method, text) local methods = translit.methods if not methods[method] then -- register tables and method if method == "ru_transcript_de" or method == "ru_transcript_de_exp" or -- experimental lpeg method == "ru_transcript_en" or method == "ru_transcript_en_exp" or method == "ru_cz" or method == "ocs_cz" then environment.loadluafile ("trans_tables_trsc") elseif method == "iso9_ocs" or method == "iso9_ocs_hack" or method == "ocs" or method == "ocs_gla" then environment.loadluafile ("trans_tables_scntfc") elseif method:match("^sr_") then environment.loadluafile ("trans_tables_sr") elseif method:match("^bg_") then -- only bg_de for now environment.loadluafile ("trans_tables_bg") elseif method == "gr" or method == "gr_n" then environment.loadluafile ("trans_tables_gr") end end if translit.__script then return methods[method](text) end context ( methods[method](text) ) end -- vim:sw=4:ts=4:expandtab:ft=lua context-modules-20240428/tex/context/third/transliterator/trans_tables_trsc.lua0000644000175000017500000006421312131046154026764 0ustar hillehille--===================================================================-- -- Legacy national transliterations -- --===================================================================-- local translit = thirddata.translit local addrules = translit.addrules local utfchar = translit.utfchar local lpegmatch = lpeg.match local tablepack = table.pack -- lua 5.2 precaution --------------------------------- -- German simple transcription -- --------------------------------- -- Reference: „DUDEN. Rechtschreibung der deutschen Sprache“; -- 20. Aufl., -- Mannheim et. al. 1991. if lpeg.version() == "0.9" and not translit.done_ru_trsc_de then -------------------------------------------------------- -- Lowercase German simple transcription---first pass -- -------------------------------------------------------- translit.ru_trsc_low_first = translit.make_add_dict{ [" е"] = " je", ["ъе"] = "je", ["ье"] = "je", [" ё"] = " jo", ["ъё"] = "jo", ["ьё"] = "jo", ["жё"] = "scho", ["чё"] = "tscho", ["шё"] = "scho", ["щё"] = "schtscho", ["ье"] = "je", ["ьи"] = "ji", ["ьо"] = "jo", ["ий"] = "i", ["ый"] = "y", ["кс"] = "x" } translit.tables["German transcription first pass lowercase"] = translit.ru_trsc_low_first -------------------------------------------------------- -- Uppercase German simple transcription---first pass -- -------------------------------------------------------- translit.ru_trsc_upp_first = translit.make_add_dict{ [" Е"] = " Je", ["Ъe"] = "Je", -- Pedantic, isn't it? ["Ье"] = "Je", [" Ё"] = "Jo", ["Ъё"] = "Jo", ["Ьё"] = "Jo", ["Жё"] = "Scho", ["Чё"] = "Tscho", ["Шё"] = "Scho", ["Щё"] = "Schtscho", ["Кс"] = "ks" } translit.tables["German transcription first pass uppercase"] = translit.ru_trsc_upp_first ------------------------------------------- -- Lowercase German simple transcription -- ------------------------------------------- translit.ru_trsc_low = translit.make_add_dict{ ["а"] = "a", ["б"] = "b", ["в"] = "w", ["г"] = "g", ["д"] = "d", ["е"] = "e", ["ё"] = "jo", ["ж"] = "sch", ["з"] = "s", ["и"] = "i", ["й"] = "i", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ф"] = "f", ["х"] = "ch", ["ц"] = "z", ["ч"] = "tsch", ["ш"] = "sch", ["щ"] = "schtsch", ["ъ"] = "", ["ы"] = "y", ["ь"] = "", ["э"] = "e", ["ю"] = "ju", ["я"] = "ja" } translit.tables["German transcription second pass lowercase"] = translit.ru_trsc_low ------------------------------------------- -- Uppercase German simple transcription -- ------------------------------------------- translit.ru_trsc_upp = translit.make_add_dict{ ["А"] = "A", ["Б"] = "B", ["В"] = "W", ["Г"] = "G", ["Д"] = "D", ["Е"] = "E", ["Ё"] = "Jo", ["Ж"] = "Sch", ["З"] = "S", ["И"] = "I", ["Й"] = "J", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "U", ["Ф"] = "F", ["Х"] = "Ch", ["Ц"] = "Z", ["Ч"] = "Tsch", ["Ш"] = "Sch", ["Щ"] = "Schtsch", ["Ъ"] = "", ["Ы"] = "Y", ["Ь"] = "", ["Э"] = "E", ["Ю"] = "Ju", ["Я"] = "Ja" } translit.tables["German transcription second pass uppercase"] = translit.ru_trsc_upp translit.ru_trsc_iy = {"и", "ы", "И", "Ы"} function translit.gen_rules_de() -- The following are more interesting than the previous tables -- because they implement various rules. For instance the -- table \type{translit.ru_trsc_irule} holds a substitution -- dictionary for all possible combinations (including nonsense -- galore) of a vowel preceding an “й” (Russian short i) -- preceding a consonant; here we access the sets of Russian -- vowels as well consonants that were defined earlier. -- The й-rule, VйC -> ViC translit.ru_trsc_irule = translit.make_add_dict{} for _, vow in ipairs(translit.ru_vowels) do for _, cons in ipairs(translit.ru_consonants) do local new_ante = vow .. "й" .. cons local new_post = vow .. "i" .. cons translit.ru_trsc_irule[new_ante] = new_post end end translit.tables["German transcription i-rule"] = translit.ru_trsc_irule -- The second й-rule, йV -> jV && [иы]йC -> [иы]jC translit.ru_trsc_jrule = {} for _, vow in ipairs(translit.ru_vowels) do local new_ante = "й" .. vow local new_post = "j" .. vow translit.ru_trsc_jrule[new_ante] = new_post end for _, cons in ipairs(translit.ru_consonants) do for _, iy in ipairs(translit.ru_trsc_iy) do local new_ante = iy .. "й" .. cons local new_post = iy .. "j" .. cons translit.ru_trsc_jrule[new_ante] = new_post end end translit.tables["German transcription j-rule"] = translit.ru_trsc_jrule -- The с-rule, VсV -> VssV translit.ru_trsc_srule = translit.make_add_dict{} for i, vow_1 in ipairs(translit.ru_vowels) do for j, vow_2 in ipairs(translit.ru_vowels) do local new_ante = vow_1 .. "с" .. vow_2 local new_post = vow_1 .. "ss" .. vow_2 translit.ru_trsc_srule[new_ante] = new_post end end translit.tables["German transcription s-rule"] = translit.ru_trsc_srule -- The sharp-s-rule, Vсх -> Vßх translit.ru_trsc_sharpsrule = translit.make_add_dict{} for i, vow in ipairs(translit.ru_vowels) do local new_ante = vow .. "сх" local new_post = vow .. "ßх" translit.ru_trsc_sharpsrule[new_ante] = new_post end translit.tables["German transcription sharp-s-rule"] = translit.ru_trsc_sharpsrule -- The е-rule, Vе -> Vje translit.ru_trsc_jerule = translit.make_add_dict{} for i, vow in ipairs(translit.ru_vowels) do local new_ante = vow .. "е" local new_post = vow .. "je" translit.ru_trsc_jerule[new_ante] = new_post end translit.tables["German transcription je-rule"] = translit.ru_trsc_jerule -- The ё-rule, Vё -> Vjo -- This should be redundant as [жцчшщ]ё -> o, else ё -> jo . -- Somebody should teach those DUDEN-guys parsimony. translit.ru_trsc_jorule = translit.make_add_dict{} for i, vow in ipairs(translit.ru_vowels) do local new_ante = vow .. "ё" local new_post = vow .. "jo" translit.ru_trsc_jorule[new_ante] = new_post end translit.tables["German transcription (redundant) jo-rule"] = translit.ru_trsc_jorule end translit.gen_rules_de() translit.done_ru_trsc_de = true end if lpeg.version() == "0.10" and not translit.done_ru_trsc_de then -- This is about *eight* times as fast as the old pattern. Just -- waiting for v0.10 to make it into luatex. local de_tables = { } -------------------------------------------------------- -- Lowercase German simple transcription---first pass -- -------------------------------------------------------- de_tables[1] = { -- lowercase initial [" е"] = " je", ["ъе"] = "je", ["ье"] = "je", [" ё"] = " jo", ["ъё"] = "jo", ["ьё"] = "jo", ["жё"] = "scho", ["цё"] = "scho", ["чё"] = "zo", ["шё"] = "scho", ["щё"] = "schtscho", ["ье"] = "je", ["ьи"] = "ji", ["ьо"] = "jo", ["ий"] = "i", ["ый"] = "y", ["кс"] = "x" -- Extraordinarily stupid one. } translit.tables["German transcription first pass lowercase"] = de_tables[1] -------------------------------------------------------- -- Uppercase German simple transcription---first pass -- -------------------------------------------------------- de_tables[2] = { -- uppercase initial [" Е"] = " Je", ["Ъe"] = "Je", ["Ье"] = "Je", [" Ё"] = "Jo", ["Ъё"] = "Jo", ["Ьё"] = "Jo", ["Жё"] = "Scho", ["Чё"] = "Tscho", ["Шё"] = "Scho", ["Щё"] = "Schtscho", ["Кс"] = "ks" } translit.tables["German transcription first pass uppercase"] = de_tables[2] ------------------------------------------- -- Lowercase German simple transcription -- ------------------------------------------- de_tables[3] = { -- lowercase ["а"] = "a", ["б"] = "b", ["в"] = "w", ["г"] = "g", ["д"] = "d", ["е"] = "e", ["ё"] = "jo", ["ж"] = "sch", ["з"] = "s", ["и"] = "i", ["й"] = "i", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ф"] = "f", ["х"] = "ch", ["ц"] = "z", ["ч"] = "tsch", ["ш"] = "sch", ["щ"] = "schtsch", ["ъ"] = "", ["ы"] = "y", ["ь"] = "", ["э"] = "e", ["ю"] = "ju", ["я"] = "ja" } translit.tables["German transcription second pass lowercase"] = de_tables[3] ------------------------------------------- -- Uppercase German simple transcription -- ------------------------------------------- de_tables[4] = { -- uppercase ["А"] = "A", ["Б"] = "B", ["В"] = "W", ["Г"] = "G", ["Д"] = "D", ["Е"] = "E", ["Ё"] = "Jo", ["Ж"] = "Sch", ["З"] = "S", ["И"] = "I", ["Й"] = "J", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "U", ["Ф"] = "F", ["Х"] = "Ch", ["Ц"] = "Z", ["Ч"] = "Tsch", ["Ш"] = "Sch", ["Щ"] = "Schtsch",["Ъ"] = "", ["Ы"] = "Y", ["Ь"] = "", ["Э"] = "E", ["Ю"] = "Ju", ["Я"] = "Ja" } translit.tables["German transcription second pass uppercase"] = de_tables[4] local B, P, Cs = lpeg.B, lpeg.P, lpeg.Cs -- All chars are 2-byte. local Co = P{ P"б" + "в" + "г" + "д" + "ж" + "з" + "к" + "л" + "м" + "н" + "п" + "р" + "с" + "т" + "ф" + "х" + "ц" + "ч" + "ш" + "щ" + "ъ" + "ь" + "Б" + "В" + "Г" + "Д" + "Ж" + "З" + "К" + "Л" + "М" + "Н" + "П" + "Р" + "С" + "Т" + "Ф" + "Х" + "Ц" + "Ч" + "Ш" + "Щ" + "Ъ" + "Ь" } local Vo = P{ P"а" + "е" + "ё" + "и" + "й" + "о" + "у" + "ы" + "э" + "я" + "ю" + "А" + "Е" + "Ё" + "И" + "Й" + "О" + "У" + "Ы" + "Э" + "Я" + "Ю" } local iy = P"и" + P"ы" + P"И" + P"Ы" ------------------------------------------- -- Pattern generation. ------------------------------------------- local p_transcript for _, set in next, de_tables do for str, rep in next, set do if not p_transcript then -- it’ll be empty initially p_transcript = P(str) / rep else p_transcript = p_transcript + (P(str) / rep) end end end local irule = B(Vo,2) * Cs(P"й") * #Co / "i" local iyrule = B(iy,2) * Cs(P"й") * #Co / "j" local jrule = Cs(P"й") * #Vo / "j" local srule = B(Vo,2) * Cs(P"с") * #Vo / "ss" local ssrule = B(Vo,2) * Cs(P"с") * #P"х" / "ß" local jerule = B(Vo,2) * Cs(P"е") / "je" local jorule = B(Vo,2) * Cs(P"ё") / "jo" translit.future_ru_transcript_de = Cs((iyrule + jrule + irule + jerule + srule + ssrule + jorule + p_transcript + 1)^0 ) end if not translit.done_ru_trsc_en then --------------------------------------------------------- -- Lowercase English simple transcription---first pass -- --------------------------------------------------------- translit.ru_trsc_en_low_first = translit.make_add_dict{ [" е"] = " ye", ["ъе"] = "ye", ["ье"] = "ye", ["ье"] = "ye", ["ьи"] = "yi", } translit.tables["English transcription lowercase first pass"] = translit.ru_trsc_en_low_first --------------------------------------------------------- -- Uppercase English simple transcription---first pass -- --------------------------------------------------------- translit.ru_trsc_en_upp_first = translit.make_add_dict{ [" Е"] = " Ye", ["Ъe"] = "Ye", ["Ье"] = "Ye", } translit.tables["English transcription uppercase first pass"] = translit.ru_trsc_en_upp_first -------------------------------------------- -- Lowercase English simple transcription -- -------------------------------------------- translit.ru_trsc_en_low = translit.make_add_dict{ ["а"] = "a", ["б"] = "b", ["в"] = "v", ["г"] = "g", ["д"] = "d", ["е"] = "e", ["ё"] = "e", ["ж"] = "zh", ["з"] = "z", ["и"] = "i", ["й"] = "y", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ф"] = "f", ["х"] = "kh", ["ц"] = "ts", ["ч"] = "ch", ["ш"] = "sh", ["щ"] = "shsh", ["ъ"] = "", ["ы"] = "y", ["ь"] = "", ["э"] = "e", ["ю"] = "yu", ["я"] = "ya" } translit.tables["English transcription lowercase second pass"] = translit.ru_trsc_en_low -------------------------------------------- -- Uppercase English simple transcription -- -------------------------------------------- translit.ru_trsc_en_upp = translit.make_add_dict{ ["А"] = "A", ["Б"] = "B", ["В"] = "V", ["Г"] = "G", ["Д"] = "D", ["Е"] = "E", ["Ё"] = "E", ["Ж"] = "Zh", ["З"] = "Z", ["И"] = "I", ["Й"] = "Y", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "U", ["Ф"] = "F", ["Х"] = "Kh", ["Ц"] = "Ts", ["Ч"] = "Ch", ["Ш"] = "Sh", ["Щ"] = "Shsh", ["Ъ"] = "", ["Ы"] = "Y", ["Ь"] = "", ["Э"] = "E", ["Ю"] = "Yu", ["Я"] = "Ya" } translit.tables["English transcription uppercase second pass"] = translit.ru_trsc_en_upp function translit.gen_rules_en () -- The english е-rule, Vе -> Vye translit.ru_trsc_en_jerule = translit.make_add_dict{} for i, vow in ipairs(translit.ru_vowels) do local new_ante = vow .. "е" local new_post = vow .. "ye" translit.ru_trsc_en_jerule[new_ante] = new_post end translit.tables["English transcription ye-rule"] = translit.ru_trsc_en_jerule end translit.gen_rules_en() translit.done_ru_trsc_en = true end if not translit.done_ru_trsc_cz then ----------------------------------- -- Lowercase Czech transcription -- ----------------------------------- translit.ru_trsc_cz_low = translit.make_add_dict{ ["а"] = "a", ["б"] = "b", ["в"] = "v", ["г"] = "g", ["д"] = "d", ["е"] = "e", ["ё"] = "ë", ["ж"] = "ž", ["з"] = "z", ["и"] = "i", ["й"] = "j", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ф"] = "f", ["х"] = "ch", ["ц"] = "c", ["ч"] = "č", ["ш"] = "š", ["щ"] = "šč", ["ъ"] = "ъ", ["ы"] = "y", ["ь"] = "ь", ["э"] = "è", ["ю"] = "ju", -- Maybe we should do things like ню -> ňu and ["я"] = "ja", -- тя -> ťa, but that would complicate things a } -- bit and linguists might not agree. translit.tables["Czech transcription lowercase"] = translit.ru_trsc_cz_low ----------------------------------- -- Uppercase Czech transcription -- ----------------------------------- translit.ru_trsc_cz_upp = translit.make_add_dict{ ["А"] = "A", ["Б"] = "B", ["В"] = "V", ["Г"] = "G", ["Д"] = "D", ["Е"] = "E", ["Ё"] = "Ë", ["Ж"] = "Ž", ["З"] = "Z", ["И"] = "I", ["Й"] = "J", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "U", ["Ф"] = "F", ["Х"] = "Ch", ["Ц"] = "C", ["Ч"] = "Č", ["Ш"] = "Š", ["Щ"] = "Šč", ["Ъ"] = "Ъ", ["Ы"] = "Y", ["Ь"] = "Ь", ["Э"] = "È", ["Ю"] = "Ju", ["Я"] = "Ja" } translit.tables["Czech transcription uppercase"] = translit.ru_trsc_cz_upp ---------------------------------------------- -- Lowercase Additional Czech Transcription -- ---------------------------------------------- translit.ru_trsc_cz_add_low = translit.make_add_dict{ ["ѕ"] = "dz", ["з"] = "z", ["ꙁ"] = "z", ["і"] = "ï", ["ѹ"] = "u", ["ѡ"] = "ō", ["ѣ"] = "ě", ["ѥ"] = "je", ["ѧ"] = "ę", ["ѩ"] = "ję", ["ѫ"] = "ǫ", ["ѭ"] = "jǫ", ["ѯ"] = "ks", ["ѱ"] = "ps", ["ѳ"] = "th", ["ѵ"] = "ÿ", } translit.tables[ "Czech transcription for OCS and pre-1918 lowercase"] = translit.ru_trsc_cz_add_low ---------------------------------------------- -- Uppercase Additional Czech Transcription -- ---------------------------------------------- translit.ru_trsc_cz_add_upp = translit.make_add_dict{ ["Ѕ"] = "Dz", ["З"] = "Z", ["Ꙁ"] = "Z", ["І"] = "Ï", ["Ѹ"] = "U", ["Ѡ"] = "Ō", ["Ѣ"] = "Ě", ["Ѥ"] = "Je", ["Ѧ"] = "Ę", ["Ѩ"] = "Ję", ["Ѫ"] = "Ǫ", ["Ѭ"] = "Jǫ", ["Ѯ"] = "Ks", ["Ѱ"] = "Ps", ["Ѳ"] = "Th", ["Ѵ"] = "Ÿ", } translit.tables[ "Czech transcription for OCS and pre-1918 uppercase"] = translit.ru_trsc_cz_add_upp translit.done_ru_trsc_cz = true end --===================================================================-- -- End Of Tables -- --===================================================================-- local function transcript (mode, text) local P, R, S, V, Cs = lpeg.P, lpeg.R, lpeg.S, lpeg.V, lpeg.Cs local trsc_parser, p_rules, capt, p_de local function tab_subst (s, ...) local sets = { ... } local p_tmp, tmp = nil, translit.make_add_dict{} for n=1, #sets do local set = sets[n] tmp = tmp + set end p_tmp = addrules(tmp, p_tmp) local fp = Cs((Cs(P(p_tmp) / tmp) + utfchar)^0) return lpegmatch(fp, s) end if mode == "ru_transcript_en" then text = tab_subst(text, translit.ru_trsc_en_jerule) text = tab_subst(text, translit.ru_trsc_en_low_first, translit.ru_trsc_en_upp_first) text = tab_subst(text, translit.ru_trsc_en_low, translit.ru_trsc_en_upp) return text elseif mode == "ru_transcript_en_exp" then local en_low_upp = translit.make_add_dict{} en_low_upp = translit.ru_trsc_en_low + translit.ru_trsc_en_upp local twochar local tworepl = translit.make_add_dict{} twochar = addrules( translit.ru_trsc_en_low_first, twochar) twochar = addrules( translit.ru_trsc_en_upp_first, twochar) tworepl = translit.ru_trsc_en_low_first + translit.ru_trsc_en_upp_first -- The е-rule, Vе -> Vye local function V_je (s) local ante = utf.sub(s, 1, 1) return en_low_upp[ante] .. "ye" end local jerule = Cs((vow * "е") / V_je) local dvoje = Cs(twochar / tworepl) local other = Cs((utfchar) / en_low_upp) local g = Cs((dvoje + jerule + other + utfchar)^0) text = g:match(text) return text elseif mode == "ru_cz" or mode == "ocs_cz" then text = tab_subst(text, translit.ru_trsc_cz_low, translit.ru_trsc_cz_upp) if mode == "ocs_cz" then text = tab_subst(text, translit.ru_trsc_cz_add_low, translit.ru_trsc_cz_add_upp) end return text end if mode == "ru_transcript_de_exp" then local vow, con, iy vow = addrules(translit.ru_vowels, vow) con = addrules(translit.ru_consonants, con) iy = addrules(translit.ru_trsc_iy, iy ) local de_low_upp = translit.make_add_dict{} de_low_upp = translit.ru_trsc_upp + translit.ru_trsc_low local twochar local tworepl = translit.make_add_dict{} twochar = addrules( translit.ru_trsc_low_first, twochar ) twochar = addrules( translit.ru_trsc_upp_first, twochar ) tworepl = translit.ru_trsc_low_first + translit.ru_trsc_upp_first -- The й-rule, VйC -> ViC local function V_i_C (s) local ante = utf.sub(s, 1, 1) local post = utf.sub(s, 3, 3) return de_low_upp[ante] .. "i" .. de_low_upp[post] end -- The second й-rule, йV -> jV && [иы]йC -> [иы]jC local function iy_j_C (s) local ante = utf.sub(s, 1, 1) local post = utf.sub(s, 3, 3) return de_low_upp[ante] .. "j" .. de_low_upp[post] end local function j_V (s) local post = utf.sub(s, 2, 2) return "j" .. de_low_upp[post] end -- The с-rule, VсV -> VssV local function V_ss_V (s) local ante = utf.sub(s, 1, 1) local post = utf.sub(s, 3, 3) return de_low_upp[ante] .. "ss" .. de_low_upp[post] end -- The sharp-s-rule, Vсх -> Vßх local function V_sz_ch (s) local ante = utf.sub(s, 1, 1) return de_low_upp[ante] .. "ßch" end -- The е-rule, Vе -> Vje local function V_je (s) local ante = utf.sub(s, 1, 1) return de_low_upp[ante] .. "je" end -- Reapplying V_je on its result + next char would make the -- following two rules obsolete. local function V_jeje (s) local ante = utf.sub(s, 1, 1) return de_low_upp[ante] .. "jeje" end local function V___je (s) local ante = utf.sub(s, 1, 1) return de_low_upp[ante] .. "jeje" end -- The ё-rule, Vё -> Vjo -- This should be redundant as [жцчшщ]ё -> o, else ё -> jo . -- Somebody should teach those DUDEN guys parsimony. local function V_jo (s) local ante = utf.sub(s, 1, 1) return de_low_upp[ante] .. "jo" end local iyrule = Cs((iy * "й" * con) / iy_j_C) local jrule = Cs(("й" * vow) / j_V) local irule = Cs((vow * "й" * con) / V_i_C) local ssrule = Cs((vow * "с" * vow) / V_ss_V) local szrule = Cs((vow * "сх") / V_sz_ch) --local _jrule = Cs((vow * "ее") / V___je) local jjrule = Cs((vow * "ее") / V_jeje) local jerule = Cs((vow * "е") / V_je) local jorule = Cs((vow * "ё") / V_jo) local dvoje = Cs(twochar / tworepl) local other = Cs((utfchar) / de_low_upp) local izhe = iyrule + jrule + irule local slovo = ssrule + szrule local jest = jjrule + jerule + jorule local g = Cs((izhe + slovo + jest + dvoje + other + utfchar)^0) text = g:match(text) return text elseif mode == "ru_transcript_de" then if lpeg.version() == "0.9" then text = tab_subst(text, translit.ru_trsc_jrule) text = tab_subst(text, translit.ru_trsc_irule) text = tab_subst(text, translit.ru_trsc_jerule) text = tab_subst(text, translit.ru_trsc_srule) text = tab_subst(text, translit.ru_trsc_sharpsrule) text = tab_subst(text, translit.ru_trsc_jorule) text = tab_subst(text, translit.ru_trsc_upp_first, translit.ru_trsc_low_first) text = tab_subst(text, translit.ru_trsc_upp, translit.ru_trsc_low) return text elseif lpeg.version() == "0.10" then return translit.future_ru_transcript_de:match(text) end end end translit.methods ["ru_transcript_de"] = function (text) return transcript("ru_transcript_de" , text) end translit.methods ["ru_transcript_de_exp"] = function (text) return transcript("ru_transcript_de_exp", text) end translit.methods ["ru_transcript_en"] = function (text) return transcript("ru_transcript_en" , text) end translit.methods ["ru_transcript_en_exp"] = function (text) return transcript("ru_transcript_en_exp", text) end translit.methods ["ru_cz"] = function (text) return transcript("ru_cz" , text) end translit.methods ["ocs_cz"] = function (text) return transcript("ocs_cz" , text) end -- vim:sw=4:ts=4:expandtab:ft=lua context-modules-20240428/tex/context/third/transliterator/trans_tables_scntfc.lua0000644000175000017500000002040512131046154027264 0ustar hillehille--===========================================================================-- -- Other transliterations -- --===========================================================================-- local translit = thirddata.translit local pcache = translit.parser_cache local lpegmatch = lpeg.match -- The following are needed because ISO 9 does not cover old Slavonic -- characters that became obsolete before the advent of гражданский шрифт. -- Please note that these mappings are not bijective so don't expect the result -- to be easily revertible (by machines). -- Source p. 77 of -- http://www.schaeken.nl/lu/research/online/publications/akslstud/as2_03_kapitel_c.pdf if not translit.done_ocs then ----------------------------------------------------------------------- -- Lowercase and uppercase letter Uk -- “scientific transliteration” -- ----------------------------------------------------------------------- translit.ocs_uk = translit.make_add_dict{ ["oу"] = "u", ["оу"] = "u", ["Оу"] = "U", } ----------------------------------------------------------------------------- -- Lowercase pre-Peter cyrillic characters -- “scientific transliteration” -- ----------------------------------------------------------------------------- translit.ocs_low = translit.make_add_dict{ ["а"] = "a", ["б"] = "b", ["в"] = "v", ["г"] = "g", ["д"] = "d", ["є"] = "e", ["ж"] = "ž", ["ꙃ"] = "ʒ", -- U+0292, alternative: dz U+01f3 ["ѕ"] = "ʒ", ["ꙁ"] = "z", ["з"] = "z", ["и"] = "i", ["і"] = "i", ["ї"] = "i", ["ћ"] = "g’", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ѹ"] = "u", ["ꙋ"] = "u", ["ф"] = "f", ["х"] = "x", ["ѡ"] = "o", --"ō", ["ѿ"] = "ot", -- U+047f ["ѽ"] = "o!", -- U+047d ["ꙍ"] = "o!", -- U+064D ["ц"] = "c", ["ч"] = "č", ["ш"] = "š", ["щ"] = "št", ["ъ"] = "ъ", ["ы"] = "y", ["ꙑ"] = "y", -- Old jery (U+a651) as used e.g. by the OCS Wikipedia. ["ь"] = "ь", ["ѣ"] = "ě", ["ю"] = "ju", ["ꙗ"] = "ja", ["ѥ"] = "je", ["ѧ"] = "ę", ["ѩ"] = "ję", ["ѫ"] = "ǫ", ["ѭ"] = "jǫ", ["ѯ"] = "ks", ["ѱ"] = "ps", ["ѳ"] = "th", ["ѵ"] = "ü", } translit.tables["OCS \\quotation{scientific} transliteration lowercase"] = translit.ocs_low ----------------------------------------------------------------------------- -- Uppercase pre-Peter cyrillic characters -- “scientific transliteration” -- ----------------------------------------------------------------------------- translit.ocs_upp = translit.make_add_dict{ ["А"] = "A", ["Б"] = "B", ["В"] = "V", ["Г"] = "G", ["Д"] = "D", ["Є"] = "E", ["Ж"] = "Ž", ["Ꙃ"] = "Ʒ", -- U+01b7, alternative: Dz U+01f2 ["Ѕ"] = "Ʒ", ["Ꙁ"] = "Z", ["З"] = "Z", ["И"] = "I", ["І"] = "I", ["Ї"] = "I", ["Ћ"] = "G’", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "u", ["Ѹ"] = "U", --["ꙋ"] = "U", ["Ф"] = "F", ["Х"] = "X", ["Ѡ"] = "Ō", ["Ѿ"] = "Ot", -- U+047c ["Ѽ"] = "O!", -- U+047e ["Ꙍ"] = "O!", -- U+064C ["Ц"] = "C", ["Ч"] = "Č", ["Ш"] = "Š", ["Щ"] = "Št", ["Ъ"] = "Ŭ", ["Ы"] = "Y", ["Ꙑ"] = "Y", -- U+a650 ["Ь"] = "Ĭ", ["Ѣ"] = "Ě", ["Ю"] = "Ju", ["Ꙗ"] = "Ja", ["Ѥ"] = "Je", ["Ѧ"] = "Ę", ["Ѩ"] = "Ję", ["Ѫ"] = "Ǫ", ["Ѭ"] = "Jǫ", ["Ѯ"] = "Ks", ["Ѱ"] = "Ps", ["Ѳ"] = "Th", ["Ѵ"] = "Ü", } translit.tables["OCS \\quotation{scientific} transliteration uppercase"] = translit.ocs_upp -- Note on the additional tables: these cover characters that are not defined -- in ISO 9 but have a “scientific” transliteration. You may use them as -- complementary mapping to ISO 9, trading off homogenity for completeness. ---------------------------------------------------------------------------------------- -- Lowercase additional pre-Peter cyrillic characters -- “scientific transliteration” -- ---------------------------------------------------------------------------------------- translit.ocs_add_low = translit.make_add_dict{ ["ѕ"] = "dz", -- Mapped to ẑ in ISO 9 (Macedonian …) ["ѯ"] = "ks", ["ѱ"] = "ps", ["ѡ"] = "ô", ["ѿ"] = "ot", -- U+047f ["ѫ"] = "ǫ", -- Mapped to ǎ in ISO 9. ["ѧ"] = "ę", ["ѭ"] = "jǫ", ["ѩ"] = "ję", ["ѥ"] = "je", ["ѹ"] = "u", -- Digraph uk. ["ꙋ"] = "u", -- Monograph uk, U+a64b. (No glyph yet in the "fixed" font in February 2010 …) ["ꙑ"] = "y", -- U+a651 } translit.tables["OCS \\quotation{scientific} transliteration additional lowercase"] = translit.ocs_add_low ---------------------------------------------------------------------------------------- -- Uppercase additional pre-Peter cyrillic characters -- “scientific transliteration” -- ---------------------------------------------------------------------------------------- translit.ocs_add_upp = translit.make_add_dict{ ["Ѕ"] = "Dz", ["Ѯ"] = "Ks", ["Ѱ"] = "Ps", ["Ѡ"] = "Ô", ["Ѿ"] = "ot", ["Ѫ"] = "Ǫ", ["Ѧ"] = "Ę", ["Ѭ"] = "Jǫ", ["Ѩ"] = "Ję", ["Ѥ"] = "Je", ["Ѹ"] = "U", -- Digraph uk. --["Ꙋ"] = "U", -- Monograph Uk, U+a64a. ["Ꙑ"] = "Y", -- U+a650 } translit.tables["OCS \\quotation{scientific} transliteration additional uppercase"] = translit.ocs_add_upp translit.done_ocs = true end --===========================================================================-- -- End Of Tables -- --===========================================================================-- local function scientific (mode) local P, Cs = lpeg.P, lpeg.Cs local utfchar = translit.utfchar local addrules = translit.addrules local cyr = translit.make_add_dict{} local cyruk, p_cyruk, p_cyr, scientific_parser if mode == "iso9_ocs" or mode == "iso9_ocs_hack" then environment.loadluafile("trans_tables_iso9") cyr = translit.ocs_add_low + translit.ocs_add_upp + translit.ocs_low + translit.ru_upp + translit.ru_low + translit.ru_old_upp + translit.ru_old_low + translit.non_ru_upp + translit.non_ru_low + translit.ocs_upp if translit.deficient_font == "yes" then cyr = cyr + translit.ru_jer_hack end p_cyr = addrules(cyr, p_cyr) scientific_parser = Cs((p_cyr / cyr + utfchar)^0) elseif mode == ("ocs") then cyr = translit.ocs_low + translit.ocs_upp p_cyruk = addrules(translit.ocs_uk, cyruk) p_cyr = addrules(cyr, p_cyr) scientific_parser = Cs((p_cyruk / translit.ocs_uk + p_cyr / cyr + utfchar)^0) elseif mode == ("ocs_gla") then environment.loadluafile( "trans_tables_glag") cyr = translit.ocs_gla_low + translit.ocs_gla_upp p_cyr = addrules(cyr, p_cyr) scientific_parser = Cs((p_cyr / cyr + utfchar)^0) end return scientific_parser end translit.methods["iso9_ocs"] = function (text) local pname = "iso9_ocs" .. translit.deficient_font local p = pcache[pname] if not p then p = scientific("iso9_ocs") pcache[pname] = p end return lpegmatch(p, text) end translit.methods["ocs"] = function (text) local p = pcache["ocs"] if not p then p = scientific("ocs") pcache["ocs"] = p end return lpegmatch(p, text) end translit.methods["ocs_gla"] = function (text) local p = pcache["ocs_gla"] if not p then p = scientific("ocs_gla") pcache["ocs_gla"] = p end return lpegmatch(p, text) end -- vim:ft=lua:ts=4:sw=4 context-modules-20240428/tex/context/third/transliterator/trans_tables_sr.lua0000644000175000017500000001734214147266523026453 0ustar hillehille --===========================================================================-- -- Serbian -- --===========================================================================-- local translit = thirddata.translit local pcache = translit.parser_cache local lpegmatch = lpeg.match -- Special thanks to Mojca Miklavec and Arthur Reutenauer for their -- assistance in creating these transliteration routines. if not translit.done_serbian then -------------------------------------------- -- Lowercase Serbian (Cyrillic -> Latin) -- -------------------------------------------- translit.sr_tolt_lower = translit.make_add_dict{ ["а"] = "a", ["б"] = "b", ["в"] = "v", ["г"] = "g", ["д"] = "d", ["ђ"] = "đ", ["е"] = "e", ["ж"] = "ž", ["з"] = "z", ["и"] = "i", ["ј"] = "j", ["к"] = "k", ["л"] = "l", ["љ"] = "lj", ["м"] = "m", ["н"] = "n", ["њ"] = "nj", ["о"] = "o", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["ћ"] = "ć", ["у"] = "u", ["ф"] = "f", ["х"] = "h", ["ц"] = "c", ["ч"] = "č", ["џ"] = "dž", ["ш"] = "š", } translit.tables["Serbian Cyr->Lat Transliteration lowercase"] = translit.sr_tolt_lower -------------------------------------------- -- Uppercase Serbian (Cyrillic -> Latin) -- -------------------------------------------- translit.sr_tolt_upper = translit.make_add_dict{ ["А"] = "A", ["Б"] = "B", ["В"] = "V", ["Г"] = "G", ["Д"] = "D", ["Ђ"] = "Đ", ["Е"] = "E", ["Ж"] = "Ž", ["З"] = "Z", ["И"] = "I", ["Ј"] = "J", ["К"] = "K", ["Л"] = "L", ["Љ"] = "Lj", ["М"] = "M", ["Н"] = "N", ["Њ"] = "Nj", ["О"] = "O", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["Ћ"] = "Ć", ["У"] = "U", ["Ф"] = "F", ["Х"] = "H", ["Ц"] = "C", ["Ч"] = "Č", ["Џ"] = "Dž", ["Ш"] = "Š", } translit.tables["Serbian Cyr->Lat Transliteration uppercase"] = translit.sr_tolt_upper local function __inverse_tab (t) local result = { } for k,v in next,t do result[v] = k end return result end translit.sr_tocy_lower = translit.make_add_dict(__inverse_tab(translit.sr_tolt_lower)) translit.sr_tocy_upper = translit.make_add_dict(__inverse_tab(translit.sr_tolt_upper)) --- Good reading up front: --- --- local except = { ["konjug"] = "конјуг", ["konjunk"] = "конјунк", ["injekc"] = "инјекц", ["injunkt"] = "инјункт", ["panjelin"] = "панјелин", ["tanjug"] = "танјуг", ["vanjezič"] = "ванјезич", ["vanjadransk"] = "ванјадранск", ["nadžanj"] = "наджањ", ["nadždrel"] = "надждрел", ["nadžet"] = "наджет", ["nadživ"] = "наджив", ["nadžnj"] = "наджњ", ["nadžup"] = "наджуп", ["odžal"] = "оджал", ["odžar"] = "оджар", ["odživ"] = "оджив", ["odžubor"] = "оджубор", ["odžur"] = "оджур", ["odžvak"] = "оджвак", ["podžanr"] = "поджанр", ["podže"] = "подже", -- “поджећи” } local P = lpeg.P local utf8 = unicode and unicode.utf8 or utf or utf8 local sub = utf8.sub local toupper = lpeg.patterns.toupper local upper = function (s) return lpegmatch (toupper, s) end local p_tocy, p_i_tocy, p_tolt, p_i_tolt for left, right in next, except do -- generating exception patterns for both sides local Left = upper(sub(left, 1, 1)) .. sub(left, 2) local Right = upper(sub(right, 1, 1)) .. sub(right, 2) local LEFT, RIGHT = upper(left), upper(right) local p_i_left = P(left) / right + P(Left) / Right + P(LEFT) / RIGHT local p_i_right = P(right) / left + P(Right) / Left + P(RIGHT) / LEFT local p_left = P" " * p_i_left local p_right = P" " * p_i_right if not p_tocy then p_tocy = p_left p_i_tocy = p_i_left p_tolt = p_right p_i_tolt = p_i_right else p_tocy = p_tocy + p_left p_i_tocy = p_i_tocy + p_i_left p_tolt = p_tolt + p_right p_i_tolt = p_i_tolt + p_i_right end end local _p_hintchar = P"*" / "" local hintme = "dln" local _p_tocy_hint, _p_tolt_hint for left in hintme:utfcharacters() do local right = translit.sr_tocy_lower[left] local LEFT, RIGHT = upper(left), upper(right) if not _p_tocy_hint then _p_tocy_hint = P(left) / right + P(LEFT) / RIGHT _p_tolt_hint = P(right) / left + P(RIGHT) / LEFT else _p_tocy_hint = _p_tocy_hint + P(left) / right + P(LEFT) / RIGHT _p_tolt_hint = _p_tolt_hint + P(right) / left + P(RIGHT) / LEFT end end translit.serbian_exceptions = { } translit.serbian_exceptions.p_tocy = p_tocy translit.serbian_exceptions.p_tolt = p_tolt translit.serbian_exceptions.p_tocy_init = p_i_tocy translit.serbian_exceptions.p_tolt_init = p_i_tolt translit.serbian_exceptions.p_tocy_hint = _p_tocy_hint * _p_hintchar translit.serbian_exceptions.p_tolt_hint = _p_tolt_hint * _p_hintchar translit.done_serbian = true end --===========================================================================-- -- End Of Tables -- --===========================================================================-- local t = translit local function sr (mode) local P, R, Cs = lpeg.P, lpeg.R, lpeg.Cs local utfchar = translit.utfchar local modestr = "p_" .. mode:match("to..$") local _p_sre = t.serbian_exceptions[modestr] local _p_sre_i = t.serbian_exceptions[modestr .. "_init"] local trl_sr = translit.make_add_dict{} trl_sr = t[mode.."_upper"] + t[mode.."_lower"] -- transliteration from latin script requires macro handling … local _p_macro = P[[\]] * R("az", "AZ")^1 -- assuming standard catcodes local _p_sr = translit.addrules (trl_sr, _p_sr) / trl_sr if translit.hinting then _p_sr = t.serbian_exceptions[modestr .. "_hint"] + _p_sr end local p_sr if translit.sr_except then p_sr = Cs(_p_sre_i^-1 * (_p_macro + _p_sre + _p_sr + utfchar)^0) else p_sr = Cs((_p_macro + _p_sr + utfchar)^0) end return p_sr end translit.methods["sr_tolt"] = function (text) local pname = "sr_tolt" .. tostring(translit.hinting) .. tostring(translit.sr_except) local p = pcache[pname] if not p then p = sr("sr_tolt") pcache[pname] = p end return lpegmatch(p, text) end translit.methods["sr_tocy"] = function (text) local pname = "sr_tocy" .. tostring(translit.hinting) .. tostring(translit.sr_except) local p = pcache[pname] if not p then p = sr("sr_tocy") pcache[pname] = p end return lpegmatch(p, text) end -- vim:ft=lua:sw=4:ts=4 context-modules-20240428/tex/context/third/transliterator/trans_tables_gr.lua0000644000175000017500000004101312131046154026412 0ustar hillehille--===========================================================================-- -- Greek -- --===========================================================================-- local translit = thirddata.translit local pcache = translit.parser_cache local lpegmatch = lpeg.match -- Note that the Greek transliteration mapping isn't bijective so transliterated -- texts won't be reversible. (Shouldn't be impossible to make one up using -- diacritics on latin characters to represent all possible combinations of -- Greek breathings + accents.) -- Good reading on composed / precombined unicode: -- http://www.tlg.uci.edu/~opoudjis/unicode/unicode_gaps.html#precomposed ------------------------------------------------- -- Lowercase Greek Initial Position Diphthongs -- ------------------------------------------------- if not translit.done_greek then translit.gr_di_in_low = translit.make_add_dict{ [" αὑ"] = " hau", [" αὕ"] = " hau", [" αὓ"] = " hau", [" αὗ"] = " hau", [" εὑ"] = " heu", [" εὕ"] = " heu", [" εὓ"] = " heu", [" εὗ"] = " heu", [" ηὑ"] = " hēu", [" ηὕ"] = " hēu", [" ηὓ"] = " hēu", [" ηὗ"] = " hēu", [" οὑ"] = " hu", [" οὕ"] = " hu", [" οὓ"] = " hu", [" οὗ"] = " hu", [" ωὑ"] = " hōu", [" ωὕ"] = " hōu", [" ωὓ"] = " hōu", [" ωὗ"] = " hōu" } translit.tables["Greek transliteration initial breathing diphthongs lowercase"] = translit.gr_di_in_low ------------------------------------------------- -- Uppercase Greek Initial Position Diphthongs -- ------------------------------------------------- translit.gr_di_in_upp = translit.make_add_dict{ [" Αὑ"] = " Hau", [" Αὕ"] = " Hau", [" Αὓ"] = " Hau", [" Αὗ"] = " Hau", [" Εὑ"] = " Heu", [" Εὕ"] = " Heu", [" Εὓ"] = " Heu", [" Εὗ"] = " Heu", [" Ηὑ"] = " Hēu", [" Ηὕ"] = " Hēu", [" Ηὓ"] = " Hēu", [" Ηὗ"] = " Hēu", [" Οὑ"] = " Hu", [" Οὕ"] = " Hu", [" Οὓ"] = " Hu", [" Οὗ"] = " Hu", [" Ωὑ"] = " Hōu", [" Ωὕ"] = " Hōu", [" Ωὓ"] = " Hōu", [" Ωὗ"] = " Hōu" } translit.tables["Greek transliteration initial breathing diphthongs uppercase"] = translit.gr_di_in_upp --------------------------------------- -- Lowercase Greek Initial Position -- --------------------------------------- translit.gr_in_low = translit.make_add_dict{ [" ἁ"] = " ha", [" ἅ"] = " ha", [" ἃ"] = " ha", [" ἇ"] = " ha", [" ᾁ"] = " ha", [" ᾅ"] = " ha", [" ᾃ"] = " ha", [" ᾇ"] = " ha", [" ἑ"] = " he", [" ἕ"] = " he", [" ἓ"] = " he", [" ἡ"] = " hē", [" ἥ"] = " hē", [" ἣ"] = " hē", [" ἧ"] = " hē", [" ᾑ"] = " hē", [" ᾕ"] = " hē", [" ᾓ"] = " hē", [" ᾗ"] = " hē", [" ἱ"] = " hi", [" ἵ"] = " hi", [" ἳ"] = " hi", [" ἷ"] = " hi", [" ὁ"] = " ho", [" ὅ"] = " ho", [" ὃ"] = " ho", [" ὑ"] = " hy", [" ὕ"] = " hy", [" ὓ"] = " hy", [" ὗ"] = " hy", [" ὡ"] = " hō", [" ὥ"] = " hō", [" ὣ"] = " hō", [" ὧ"] = " hō", [" ᾡ"] = " hō", [" ᾥ"] = " hō", [" ᾣ"] = " hō", [" ᾧ"] = " hō", } translit.tables["Greek transliteration initial breathing lowercase"] = translit.gr_in_low --------------------------------------- -- Uppercase Greek Initial Position -- --------------------------------------- translit.gr_in_upp = translit.make_add_dict{ [" Ἁ"] = " Ha", [" Ἅ"] = " Ha", [" Ἃ"] = " Ha", [" Ἇ"] = " Ha", [" ᾉ"] = " Ha", [" ᾍ"] = " Ha", [" ᾋ"] = " Ha", [" ᾏ"] = " Ha", [" Ἑ"] = " He", [" Ἕ"] = " He", [" Ἓ"] = " He", [" Ἡ"] = " Hē", [" Ἥ"] = " Hē", [" Ἣ"] = " Hē", [" Ἧ"] = " Hē", [" ᾙ"] = " Hē", [" ᾝ"] = " Hē", [" ᾛ"] = " Hē", [" ᾟ"] = " Hē", [" Ἱ"] = " Hi", [" Ἵ"] = " Hi", [" Ἳ"] = " Hi", [" Ἷ"] = " Hi", [" Ὁ"] = " Ho", [" Ὅ"] = " Ho", [" Ὃ"] = " Ho", [" Ὑ"] = " Hy", [" Ὕ"] = " Hy", [" Ὓ"] = " Hy", [" Ὗ"] = " Hy", [" Ὡ"] = " Hō", [" Ὥ"] = " Hō", [" Ὣ"] = " Hō", [" Ὧ"] = " Hō", [" ᾩ"] = " Hō", [" ᾭ"] = " Hō", [" ᾫ"] = " Hō", [" ᾯ"] = " Hō", } translit.tables["Greek transliteration initial breathing uppercase"] = translit.gr_in_upp --------------------------------- -- Lowercase Greek Diphthongs -- --------------------------------- translit.gr_di_low = translit.make_add_dict{ ["αυ"] = "au", ["αύ"] = "au", ["αὺ"] = "au", ["αῦ"] = "au", ["αὐ"] = "au", ["αὔ"] = "au", ["αὒ"] = "au", ["αὖ"] = "au", ["αὑ"] = "au", ["αὕ"] = "au", ["αὓ"] = "au", ["αὗ"] = "au", ["ευ"] = "eu", ["εύ"] = "eu", ["εὺ"] = "eu", ["εῦ"] = "eu", ["εὐ"] = "eu", ["εὔ"] = "eu", ["εὒ"] = "eu", ["εὖ"] = "eu", ["εὑ"] = "eu", ["εὕ"] = "eu", ["εὓ"] = "eu", ["εὗ"] = "eu", ["ηυ"] = "ēu", ["ηύ"] = "ēu", ["ηὺ"] = "ēu", ["ηῦ"] = "ēu", ["ηὐ"] = "ēu", ["ηὔ"] = "ēu", ["ηὒ"] = "ēu", ["ηὖ"] = "ēu", ["ηὑ"] = "ēu", ["ηὕ"] = "ēu", ["ηὓ"] = "ēu", ["ηὗ"] = "ēu", ["ου"] = "u", ["ου"] = "u", ["ου"] = "u", ["ού"] = "u", ["οὺ"] = "u", ["οῦ"] = "u", ["οὐ"] = "u", ["οὔ"] = "u", ["οὒ"] = "u", ["οὖ"] = "u", ["οὑ"] = "u", ["οὕ"] = "u", ["οὓ"] = "u", ["οὗ"] = "u", ["ωυ"] = "ōu", ["ωύ"] = "ōu", ["ωὺ"] = "ōu", ["ωῦ"] = "ōu", ["ωὐ"] = "ōu", ["ωὔ"] = "ōu", ["ωὒ"] = "ōu", ["ωὖ"] = "ōu", ["ωὑ"] = "ōu", ["ωὕ"] = "ōu", ["ωὓ"] = "ōu", ["ωὗ"] = "ōu", ["ῤῥ"] = "rrh", } translit.tables["Greek transliteration diphthongs lowercase"] = translit.gr_in_low --------------------------------- -- Uppercase Greek Diphthongs -- --------------------------------- translit.gr_di_upp = translit.make_add_dict{ ["Αυ"] = "Au", ["Αύ"] = "Au", ["Αὺ"] = "Au", ["Αῦ"] = "Au", ["Αὐ"] = "Au", ["Αὔ"] = "Au", ["Αὒ"] = "Au", ["Αὖ"] = "Au", ["Αὑ"] = "Au", ["Αὕ"] = "Au", ["Αὓ"] = "Au", ["Αὗ"] = "Au", ["Ευ"] = "Eu", ["Εύ"] = "Eu", ["Εὺ"] = "Eu", ["Εῦ"] = "Eu", ["Εὐ"] = "Eu", ["Εὔ"] = "Eu", ["Εὒ"] = "Eu", ["Εὖ"] = "Eu", ["Εὑ"] = "Eu", ["Εὕ"] = "Eu", ["Εὓ"] = "Eu", ["Εὗ"] = "Eu", ["Ηυ"] = "Ēu", ["Ηύ"] = "Ēu", ["Ηὺ"] = "Ēu", ["Ηῦ"] = "Ēu", ["Ηὐ"] = "Ēu", ["Ηὔ"] = "Ēu", ["Ηὒ"] = "Ēu", ["Ηὖ"] = "Ēu", ["Ηὑ"] = "Ēu", ["Ηὕ"] = "Ēu", ["Ηὓ"] = "Ēu", ["Ηὗ"] = "Ēu", ["Ου"] = "U", ["Ου"] = "U", ["Ου"] = "U", ["Ού"] = "U", ["Οὺ"] = "U", ["Οῦ"] = "U", ["Οὐ"] = "U", ["Οὔ"] = "U", ["Οὒ"] = "U", ["Οὖ"] = "U", ["Οὑ"] = "U", ["Οὕ"] = "U", ["Οὓ"] = "U", ["Οὗ"] = "U", ["Ωυ"] = "Ōu", ["Ωύ"] = "Ōu", ["Ωὺ"] = "Ōu", ["Ωῦ"] = "Ōu", ["Ωὐ"] = "Ōu", ["Ωὔ"] = "Ōu", ["Ωὒ"] = "Ōu", ["Ωὖ"] = "Ōu", ["Ωὑ"] = "Ōu", ["Ωὕ"] = "Ōu", ["Ωὓ"] = "Ōu", ["Ωὗ"] = "Ōu", } translit.tables["Greek transliteration diphthongs uppercase"] = translit.gr_in_upp -- The following will be used in an option that ensures transcription of -- nasalization, e.g. Ἁγχίσης -> “Anchises” (instead of “Agchises”) translit.gr_nrule = translit.make_add_dict{ ["γγ"] = "ng", ["γκ"] = "nk", ["γξ"] = "nx", ["γχ"] = "nch", } translit.tables["Greek transliteration optional nasalization"] = translit.gr_nrule -------------------------------------- -- Lowercase Greek Transliteration -- -------------------------------------- translit.gr_low = translit.make_add_dict{ ["α"] = "a", ["ά"] = "a", ["ὰ"] = "a", ["ᾶ"] = "a", ["ᾳ"] = "a", ["ἀ"] = "a", ["ἁ"] = "a", ["ἄ"] = "a", ["ἂ"] = "a", ["ἆ"] = "a", ["ἁ"] = "a", ["ἅ"] = "a", ["ἃ"] = "a", ["ἇ"] = "a", ["ᾁ"] = "a", ["ᾴ"] = "a", ["ᾲ"] = "a", ["ᾷ"] = "a", ["ᾄ"] = "a", ["ᾂ"] = "a", ["ᾅ"] = "a", ["ᾃ"] = "a", ["ᾆ"] = "a", ["ᾇ"] = "a", ["β"] = "b", ["γ"] = "g", ["δ"] = "d", ["ε"] = "e", ["έ"] = "e", ["ὲ"] = "e", ["ἐ"] = "e", ["ἔ"] = "e", ["ἒ"] = "e", ["ἑ"] = "e", ["ἕ"] = "e", ["ἓ"] = "e", ["ζ"] = "z", ["η"] = "ē", ["η"] = "ē", ["ή"] = "ē", ["ὴ"] = "ē", ["ῆ"] = "ē", ["ῃ"] = "ē", ["ἠ"] = "ē", ["ἤ"] = "ē", ["ἢ"] = "ē", ["ἦ"] = "ē", ["ᾐ"] = "ē", ["ἡ"] = "ē", ["ἥ"] = "ē", ["ἣ"] = "ē", ["ἧ"] = "ē", ["ᾑ"] = "ē", ["ῄ"] = "ē", ["ῂ"] = "ē", ["ῇ"] = "ē", ["ᾔ"] = "ē", ["ᾒ"] = "ē", ["ᾕ"] = "ē", ["ᾓ"] = "ē", ["ᾖ"] = "ē", ["ᾗ"] = "ē", ["θ"] = "th", ["ι"] = "i", ["ί"] = "i", ["ὶ"] = "i", ["ῖ"] = "i", ["ἰ"] = "i", ["ἴ"] = "i", ["ἲ"] = "i", ["ἶ"] = "i", ["ἱ"] = "i", ["ἵ"] = "i", ["ἳ"] = "i", ["ἷ"] = "i", ["ϊ"] = "i", ["ΐ"] = "i", ["ῒ"] = "i", ["ῗ"] = "i", ["κ"] = "k", ["λ"] = "l", ["μ"] = "m", ["ν"] = "n", ["ξ"] = "x", ["ο"] = "o", ["ό"] = "o", ["ὸ"] = "o", ["ὀ"] = "o", ["ὄ"] = "o", ["ὂ"] = "o", ["ὁ"] = "o", ["ὅ"] = "o", ["ὃ"] = "o", ["π"] = "p", ["ρ"] = "r", ["ῤ"] = "r", ["ῥ"] = "rh", ["σ"] = "s", ["ς"] = "s", ["τ"] = "t", ["υ"] = "y", ["ύ"] = "y", ["ὺ"] = "y", ["ῦ"] = "y", ["ὐ"] = "y", ["ὔ"] = "y", ["ὒ"] = "y", ["ὖ"] = "y", ["ὑ"] = "y", ["ὕ"] = "y", ["ὓ"] = "y", ["ὗ"] = "y", ["ϋ"] = "y", ["ΰ"] = "y", ["ῢ"] = "y", ["ῧ"] = "y", ["φ"] = "ph", ["χ"] = "ch", ["ψ"] = "ps", ["ω"] = "ō", ["ώ"] = "ō", ["ὼ"] = "ō", ["ῶ"] = "ō", ["ῳ"] = "ō", ["ὠ"] = "ō", ["ὤ"] = "ō", ["ὢ"] = "ō", ["ὦ"] = "ō", ["ᾠ"] = "ō", ["ὡ"] = "ō", ["ὥ"] = "ō", ["ὣ"] = "ō", ["ὧ"] = "ō", ["ᾡ"] = "ō", ["ῴ"] = "ō", ["ῲ"] = "ō", ["ῷ"] = "ō", ["ᾤ"] = "ō", ["ᾢ"] = "ō", ["ᾥ"] = "ō", ["ᾣ"] = "ō", ["ᾦ"] = "ō", ["ᾧ"] = "ō", } translit.tables["Greek transliteration lowercase"] = translit.gr_low -------------------------------------- -- Uppercase Greek Transliteration -- -------------------------------------- translit.gr_upp = translit.make_add_dict{ ["Α"] = "A", ["Ά"] = "A", ["Ὰ"] = "A", --["ᾶ"] = "A", ["ᾼ"] = "A", ["Ἀ"] = "A", ["Ἁ"] = "A", ["Ἄ"] = "A", ["Ἂ"] = "A", ["Ἆ"] = "A", ["Ἁ"] = "A", ["Ἅ"] = "A", ["Ἃ"] = "A", ["Ἇ"] = "A", ["ᾉ"] = "A", --["ᾴ"] = "A", -- I’d be very happy if anybody could explain to me --["ᾲ"] = "A", -- why there's Ά, ᾌ and ᾼ but no “A + iota subscript --["ᾷ"] = "A", -- + acute” …, same for Η, Υ and Ω + diacritica. ["ᾌ"] = "A", ["ᾊ"] = "A", ["ᾍ"] = "A", ["ᾋ"] = "A", ["ᾎ"] = "A", ["ᾏ"] = "A", ["Β"] = "B", ["Γ"] = "G", ["Δ"] = "D", ["Ε"] = "E", ["Έ"] = "E", ["Ὲ"] = "E", ["Ἐ"] = "E", ["Ἔ"] = "E", ["Ἒ"] = "E", ["Ἑ"] = "E", ["Ἕ"] = "E", ["Ἓ"] = "E", ["Ζ"] = "Z", ["Η"] = "Ē", ["Η"] = "Ē", ["Ή"] = "Ē", ["Ὴ"] = "Ē", --["ῆ"] = "Ē", ["ῌ"] = "Ē", ["Ἠ"] = "Ē", ["Ἤ"] = "Ē", ["Ἢ"] = "Ē", ["Ἦ"] = "Ē", ["ᾘ"] = "Ē", ["Ἡ"] = "Ē", ["Ἥ"] = "Ē", ["Ἣ"] = "Ē", ["Ἧ"] = "Ē", ["ᾙ"] = "Ē", --["ῄ"] = "Ē", --["ῂ"] = "Ē", --["ῇ"] = "Ē", ["ᾜ"] = "Ē", ["ᾚ"] = "Ē", ["ᾝ"] = "Ē", ["ᾛ"] = "Ē", ["ᾞ"] = "Ē", ["ᾟ"] = "Ē", ["Θ"] = "Th", ["Ι"] = "I", ["Ί"] = "I", ["Ὶ"] = "I", --["ῖ"] = "I", ["Ἰ"] = "I", ["Ἴ"] = "I", ["Ἲ"] = "I", ["Ἶ"] = "I", ["Ἱ"] = "I", ["Ἵ"] = "I", ["Ἳ"] = "I", ["Ἷ"] = "I", ["Ϊ"] = "I", --["ΐ"] = "I", --["ῒ"] = "I", --["ῗ"] = "I", ["Κ"] = "K", ["Λ"] = "L", ["Μ"] = "M", ["Ν"] = "N", ["Ξ"] = "X", ["Ο"] = "O", ["Ό"] = "O", ["Ὸ"] = "O", ["Ὀ"] = "O", ["Ὄ"] = "O", ["Ὂ"] = "O", ["Ὁ"] = "O", ["Ὅ"] = "O", ["Ὃ"] = "O", ["Π"] = "P", ["Ρ"] = "R", --["ῤ"] = "R", ["Ῥ"] = "Rh", ["Σ"] = "S", ["Σ"] = "S", ["Τ"] = "T", ["Υ"] = "Y", ["Ύ"] = "Y", ["Ὺ"] = "Y", --["ῦ"] = "Y", --["ὐ"] = "Y", --["ὔ"] = "Y", --["ὒ"] = "Y", --["ὖ"] = "Y", ["Ὑ"] = "Y", ["Ὕ"] = "Y", ["Ὓ"] = "Y", ["Ὗ"] = "Y", ["Ϋ"] = "Y", --["ΰ"] = "Y", --["ῢ"] = "Y", --["ῧ"] = "Y", ["Φ"] = "Ph", ["Χ"] = "Ch", ["Ψ"] = "Ps", ["Ω"] = "Ō", ["Ώ"] = "Ō", ["Ὼ"] = "Ō", --["ῶ"] = "Ō", ["ῼ"] = "Ō", ["Ὠ"] = "Ō", ["Ὤ"] = "Ō", ["Ὢ"] = "Ō", ["Ὦ"] = "Ō", ["ᾨ"] = "Ō", ["Ὡ"] = "Ō", ["Ὥ"] = "Ō", ["Ὣ"] = "Ō", ["Ὧ"] = "Ō", ["ᾩ"] = "Ō", --["ῴ"] = "Ō", --["ῲ"] = "Ō", --["ῷ"] = "Ō", ["ᾬ"] = "Ō", ["ᾪ"] = "Ō", ["ᾭ"] = "Ō", ["ᾫ"] = "Ō", ["ᾮ"] = "Ō", ["ᾯ"] = "Ō", } translit.tables["Greek transliteration uppercase"] = translit.gr_upp ------------ -- Varia -- ------------ translit.gr_other = translit.make_add_dict{ ["ϝ"] = "w", ["Ϝ"] = "W", ["ϙ"] = "q", ["Ϙ"] = "Q", ["ϡ"] = "ss", ["Ϡ"] = "Ss", } translit.tables["Greek transliteration archaic characters"] = translit.gr_other translit.done_greek = true end --===========================================================================-- -- End Of Tables -- --===========================================================================-- local function greek (mode, text) local P, V, Cs = lpeg.P, lpeg.V, lpeg.Cs local addrules = translit.addrules local utfchar = translit.utfchar if mode == "gr" or mode == "gr_n" then local gr_di_in, gr_in, gr_di, gr = translit.make_add_dict{}, translit.make_add_dict{}, translit.make_add_dict{}, translit.make_add_dict{} gr_di_in = gr_di_in + translit.gr_di_in_low + translit.gr_di_in_upp gr_in = gr_in + translit.gr_in_low + translit.gr_in_upp gr_di = gr_di + translit.gr_di_low + translit.gr_di_upp gr = gr + translit.gr_low + translit.gr_upp + translit.gr_other if mode == "gr_n" then gr_di = gr_di + translit.gr_nrule end local p_di_in, p_in, p_di, p p_di_in = addrules( gr_di_in, p_di_in ) p_in = addrules( gr_in, p_in ) p_di = addrules( gr_di, p_di ) p = addrules( gr, p ) local g = P{ -- 2959 rules Cs((V"init_diph" + V"init" + V"diph" + V"other" + utfchar )^0), init_diph = Cs(p_di_in / gr_di_in ), init = Cs(p_in / gr_in ), diph = Cs(p_di / gr_di ), other = Cs(p / gr ), } return g end end translit.methods["gr"] = function (text) p = pcache["gr"] if not p then p = greek("gr") pcache["gr"] = p end return lpegmatch(p, text) end translit.methods["gr_n"] = function (text) p = pcache["gr_n"] if not p then p = greek("gr_n") pcache["gr_n"] = p end return lpegmatch(p, text) end -- vim:ft=lua:sw=4:ts=4 context-modules-20240428/tex/context/third/transliterator/t-transliterator.tex0000644000175000017500000000004012131046154026571 0ustar hillehille\loadmarkfile{t-transliterator} context-modules-20240428/tex/context/third/transliterator/t-transliterator.mkii0000644000175000017500000000011112131046154026721 0ustar hillehille% Suggested by Taco \message{Module is unsupported under mkii} \endinput context-modules-20240428/tex/context/third/transliterator/trans_tables_iso9.lua0000644000175000017500000002637212131046154026700 0ustar hillehille--===========================================================================-- -- ISO 9.1995(E) standardized transliteration for cyrillic -- --===========================================================================-- local translit = thirddata.translit local pcache = translit.parser_cache local lpegmatch = lpeg.match if not translit.done_iso9 then ----------------------------------------- -- Lowercase russian cyrillic alphabet -- ----------------------------------------- translit.ru_low = translit.make_add_dict({ ["а"] = "a", -- U+0430 -> U+0061 ["б"] = "b", -- U+0431 -> U+0062 ["в"] = "v", -- U+0432 -> U+0076 ["г"] = "g", -- U+0433 -> U+0067 ["д"] = "d", -- U+0434 -> U+0064 ["е"] = "e", -- U+0435 -> U+0065 ["ё"] = "ë", -- U+0451 -> U+00eb ["ж"] = "ž", -- U+0436 -> U+017e ["з"] = "z", -- U+0437 -> U+007a ["и"] = "i", -- U+0438 -> U+0069 ["й"] = "j", -- U+0439 -> U+006a ["к"] = "k", -- U+043a -> U+006b ["л"] = "l", -- U+043b -> U+006c ["м"] = "m", -- U+043c -> U+006d ["н"] = "n", -- U+043d -> U+006e ["о"] = "o", -- U+043e -> U+006f ["п"] = "p", -- U+043f -> U+0070 ["р"] = "r", -- U+0440 -> U+0072 ["с"] = "s", -- U+0441 -> U+0073 ["т"] = "t", -- U+0442 -> U+0074 ["у"] = "u", -- U+0443 -> U+0075 ["ф"] = "f", -- U+0444 -> U+0066 ["х"] = "h", -- U+0445 -> U+0068 ["ц"] = "c", -- U+0446 -> U+0063 ["ч"] = "č", -- U+0447 -> U+010d ["ш"] = "š", -- U+0448 -> U+0161 ["щ"] = "ŝ", -- U+0449 -> U+015d ["ъ"] = "ʺ", -- U+044a -> U+02ba <- That's somewhat ambiguous as 0x2ba is ["ы"] = "y", -- U+044b -> U+0079 used for uppercase, too. ["ь"] = "ʹ", -- U+044c -> U+02b9 <- Same here with 0x2b9. ["э"] = "è", -- U+044d -> U+00e8 ["ю"] = "û", -- U+044e -> U+00fb ["я"] = "â" -- U+044f -> U+00e2 }) translit.tables["russian lowercase ISO~9"] = translit.ru_low ----------------------------------------- -- Uppercase russian cyrillic alphabet -- ----------------------------------------- translit.ru_upp = translit.make_add_dict({ ["А"] = "A", -- U+0410 -> U+0041 ["Б"] = "B", -- U+0411 -> U+0042 ["В"] = "V", -- U+0412 -> U+0056 ["Г"] = "G", -- U+0413 -> U+0047 ["Д"] = "D", -- U+0414 -> U+0044 ["Е"] = "E", -- U+0415 -> U+0045 ["Ё"] = "Ë", -- U+0401 -> U+00cb ["Ж"] = "Ž", -- U+0416 -> U+017d ["З"] = "Z", -- U+0417 -> U+005a ["И"] = "I", -- U+0418 -> U+0049 ["Й"] = "J", -- U+0419 -> U+004a ["К"] = "K", -- U+041a -> U+004b ["Л"] = "L", -- U+041b -> U+004c ["М"] = "M", -- U+041c -> U+004d ["Н"] = "N", -- U+041d -> U+004e ["О"] = "O", -- U+041e -> U+004f ["П"] = "P", -- U+041f -> U+0050 ["Р"] = "R", -- U+0420 -> U+0052 ["С"] = "S", -- U+0421 -> U+0053 ["Т"] = "T", -- U+0422 -> U+0054 ["У"] = "U", -- U+0423 -> U+0055 ["Ф"] = "F", -- U+0424 -> U+0046 ["Х"] = "H", -- U+0425 -> U+0048 ["Ц"] = "C", -- U+0426 -> U+0043 ["Ч"] = "Č", -- U+0427 -> U+010c ["Ш"] = "Š", -- U+0428 -> U+0160 ["Щ"] = "Ŝ", -- U+0429 -> U+015c ["Ъ"] = "ʺ", -- U+042a -> U+02ba ["Ы"] = "Y", -- U+042b -> U+0059 ["Ь"] = "ʹ", -- U+042c -> U+02b9 ["Э"] = "È", -- U+042d -> U+00c8 ["Ю"] = "Û", -- U+042e -> U+00db ["Я"] = "Â" -- U+042f -> U+00c2 }) translit.tables["russian uppercase ISO~9"] = translit.ru_upp ---------------------------------------------------------- -- Lowercase pre-1918 russian cyrillic additional chars -- ---------------------------------------------------------- -- cf. http://www.russportal.ru/index.php?id=oldorth.decret1917 translit.ru_old_low = translit.make_add_dict{ ["ѣ"] = "ě", -- U+048d -> U+011b -- 2-byte ["і"] = "ì", -- U+0456 -> U+00ec -- 2-byte ["ѳ"] = "f", -- U+0473 -> U+0066 -- 2-byte ["ѵ"] = "ỳ", -- U+0475 -> U+1ef3 -- 3-byte } translit.tables["russian pre-1918 lowercase ISO~9 2 byte"] = translit.ru_old_low translit.ru_old_upp = translit.make_add_dict{ ["Ѣ"] = "Ě", -- U+048c -> U+011a -- 2-byte ["І"] = "Ì", -- U+0406 -> U+00cc -- 2-byte ["Ѳ"] = "F", -- U+0424 -> U+0046 -- 2-byte ["Ѵ"] = "Ỳ", -- U+0474 -> U+1ef2 -- 3-byte } translit.ru_jer_hack = translit.make_add_dict{ ["ь"] = "’", ["Ь"] = "’", ["ъ"] = "”", ["Ъ"] = "”", } translit.tables["russian magkij / tverdyj znak hack"] = translit.ru_jer_hack translit.tables["russian pre-1918 uppercase ISO~9 2 byte"] = translit.ru_old_upp --------------------------------------------------------- -- Lowercase characters from other cyrillic alphabets -- --------------------------------------------------------- translit.non_ru_low = translit.make_add_dict{ ["ӑ"] = "ă", -- U+04d1 -> U+0103 ["ӓ"] = "ä", -- U+04d3 -> U+00e4 ["ә"] = "a̋", -- u+04d9 -> U+0061+030b ["ґ"] = "g̀", -- u+0491 -> U+0067+0300 ["ҕ"] = "ğ", -- U+0495 -> U+011f ["ғ"] = "ġ", -- U+0493 -> U+0121 ["ђ"] = "đ", -- U+0452 -> U+0111 ["ѓ"] = "ǵ", -- U+0453 -> U+01f5 ["ӗ"] = "ĕ", -- U+04d7 -> U+0115 ["є"] = "ê", -- U+0454 -> U+00ea ["ҽ"] = "c̆", -- U+04bd -> U+0063+0306 ["ҿ"] = "ç̆", -- U+04bf -> U+00e7+0306 ["ӂ"] = "z̆", -- U+04c2 -> U+007a+0306 ["ӝ"] = "z̄", -- U+04dd -> U+007a+0304 ["җ"] = "ž̧", -- U+0497 -> U+017e+0327 ["ӟ"] = "z̈", -- U+04df -> U+007a+0308 ["ѕ"] = "ẑ", -- U+0455 -> U+1e91 -- Mapped to dz in old cyrillic non-ISO. ["ӡ"] = "ź", -- U+04e1 -> U+017a ["ӥ"] = "î", -- U+04e5 -> U+00ee ["і"] = "ì", -- U+0456 -> U+00ec ["ї"] = "ï", -- U+0457 -> U+00ef ["ј"] = "ǰ", -- U+0458 -> U+01f0 ["қ"] = "ķ", -- U+049b -> U+0137 ["ҟ"] = "k̄", -- U+049f -> U+006b+0304 ["љ"] = "l̂", -- U+0459 -> U+006c+0302 ["њ"] = "n̂", -- U+045a -> U+006e+0302 ["ҥ"] = "ṅ", -- U+04a5 -> U+1e45 ["ң"] = "ṇ", -- U+04a3 -> U+1e47 ["ӧ"] = "ö", -- U+04e7 -> U+00f6 ["ө"] = "ô", -- U+04e9 -> U+00f4 ["ҧ"] = "ṕ", -- U+04a7 -> U+1e55 ["ҫ"] = "ç", -- U+04ab -> U+00e7 ["ҭ"] = "ţ", -- U+04ad -> U+0163 ["ћ"] = "ć", -- U+045b -> U+0107 ["ќ"] = "ḱ", -- U+045c -> U+1e31 ["у́"] = "ú", -- U+0443+ -> U+00fA ["ў"] = "ŭ", -- U+045e -> U+016d ["ӱ"] = "ü", -- U+04f1 -> U+00fc ["ӳ"] = "ű", -- U+04f3 -> U+0171 ["ү"] = "ù", -- U+04af -> U+00f9 ["ҳ"] = "ḩ", -- U+04b3 -> U+1e29 ["һ"] = "ḥ", -- U+04bb -> U+1e25 ["ҵ"] = "c̄", -- U+04b5 -> U+0063+0304 ["ӵ"] = "c̈", -- U+04f5 -> U+0063+0308 ["ҷ"] = "ç", -- U+04cc -> U+00e7 ["џ"] = "d̂", -- U+045f -> U+0064+0302 ["ӹ"] = "ÿ", -- U+04f9 -> U+00ff ["ѣ"] = "ě", -- U+048d -> U+011b ["ѫ"] = "ǎ", -- U+046b -> U+01ce -- Mapped to ǫ in non-ISO old cyrillic. ["ѳ"] = "f̀", -- U+0473 -> U+0066+0300 -- This is mapped to ‘f’ in ru_old. ["ѵ"] = "ỳ", -- U+0475 -> U+1ef3 ["ҩ"] = "ò", -- U+04a9 -> U+00f2 ["Ӏ"] = "‡" -- U+04cf -> U+2021 } translit.tables["cyrillic other lowercase ISO~9"] = translit.non_ru_low --------------------------------------------------------- -- Uppercase characters from other cyrillic alphabets -- --------------------------------------------------------- translit.non_ru_upp = translit.make_add_dict{ ["Ӑ"] = "Ă", -- U+04d0 -> U+0102 ["Ӓ"] = "Ä", -- U+04d2 -> U+00c4 ["Ә"] = "A̋", -- U+04d8 -> U+0041+030b ["Ґ"] = "G̀", -- U+0490 -> U+0047+0300 ["Ҕ"] = "Ğ", -- U+0494 -> U+011e ["Ғ"] = "Ġ", -- U+0492 -> U+0120 ["Ђ"] = "Đ", -- U+0402 -> U+0110 ["Ѓ"] = "Ǵ", -- U+0403 -> U+01f4 ["Ӗ"] = "Ĕ", -- U+04d6 -> U+0114 ["Є"] = "Ê", -- U+0404 -> U+00ca ["Ҽ"] = "C̆", -- U+04bc -> U+0043+0306 ["Ҿ"] = "Ç̆", -- U+04be -> U+00c7+0306 ["Ӂ"] = "Z̆", -- U+04c1 -> U+005a+0306 ["Ӝ"] = "Z̄", -- U+04dc -> U+005a+0304 ["Җ"] = "Ž̦", -- U+0496 -> U+017d+0326 ["Ӟ"] = "Z̈", -- U+04de -> U+005a+0308 ["Ѕ"] = "Ẑ", -- U+0405 -> U+1e90 ["Ӡ"] = "Ź", -- U+04e0 -> U+0179 ["Ӥ"] = "Î", -- U+04e4 -> U+00ce ["І"] = "Ì", -- U+0406 -> U+00cc ["Ї"] = "Ï", -- U+0407 -> U+00cf ["Ј"] = "J̌", -- U+0408 -> U+004a+030c ["Қ"] = "Ķ", -- U+049a -> U+0136 ["Ҟ"] = "K̄", -- U+049e -> U+004b+0304 ["Љ"] = "L̂", -- U+0409 -> U+004c+0302 ["Њ"] = "N̂", -- U+040a -> U+004e+0302 ["Ҥ"] = "Ṅ", -- U+04a4 -> U+1e44 ["Ң"] = "Ṇ", -- U+04a2 -> U+1e46 ["Ӧ"] = "Ö", -- U+04e6 -> U+00d6 ["Ө"] = "Ô", -- U+04e8 -> U+00d4 ["Ҧ"] = "Ṕ", -- U+04a6 -> U+1e54 ["Ҫ"] = "Ç", -- U+04aa -> U+00c7 ["Ҭ"] = "Ţ", -- U+04ac -> U+0162 ["Ћ"] = "Ć", -- U+040b -> U+0106 ["Ќ"] = "Ḱ", -- U+040c -> U+1e30 ["У́"] = "Ú", -- U+0423 -> U+00da ["Ў"] = "Ŭ", -- U+040e -> U+016c ["Ӱ"] = "Ü", -- U+04f0 -> U+00dc ["Ӳ"] = "Ű", -- U+04f2 -> U+0170 ["Ү"] = "Ù", -- U+04ae -> U+00d9 ["Ҳ"] = "Ḩ", -- U+04b2 -> U+1e28 ["Һ"] = "Ḥ", -- U+04ba -> U+1e24 ["Ҵ"] = "C̄", -- U+04b4 -> U+0043+0304 ["Ӵ"] = "C̈", -- U+04f4 -> U+0043+0308 ["Ҷ"] = "Ç", -- U+04cb -> U+00c7 ["Џ"] = "D̂", -- U+040f -> U+0044+0302 ["Ӹ"] = "Ÿ", -- U+04f8 -> U+0178 ["Ѣ"] = "Ě", -- U+048c -> U+011a ["Ѫ"] = "Ǎ", -- U+046a -> U+01cd ["Ѳ"] = "F̀", -- U+0472 -> U+0046+0300 ["Ѵ"] = "Ỳ", -- U+0474 -> U+1ef2 ["Ҩ"] = "Ò", -- U+04a8 -> U+00d2 ["’"] = "‵", -- U+2035 -> U+2019 ["Ӏ"] = "‡" -- U+04c0 -> U+2021 } translit.tables["cyrillic other uppercase ISO~9"] = translit.non_ru_upp translit.done_iso9 = true end --===========================================================================-- -- End Of Tables -- --===========================================================================-- local function iso9 (mode) local P, R, S, V, Cs = lpeg.P, lpeg.R, lpeg.S, lpeg.V, lpeg.Cs local addrules = translit.addrules local utfchar = translit.utfchar local iso9 = translit.make_add_dict{} iso9 = translit.ru_upp + translit.ru_low if mode == "ru_old" or mode == "all" then iso9 = iso9 + translit.ru_old_upp + translit.ru_old_low if mode == "all" then iso9 = iso9 + translit.non_ru_upp + translit.non_ru_low end if translit.deficient_font == "yes" then iso9 = iso9 + translit.ru_old_upp + translit.ru_old_low + translit.ru_jer_hack end end local p_iso9 = addrules (iso9, p_iso9) local iso9_parser = Cs((p_iso9 / iso9 + utfchar)^0) return iso9_parser end translit.methods["all"] = function (text) local pname = "all" .. translit.deficient_font local p = pcache[pname] if not p then p = iso9("all") pcache[pname] = p end return lpegmatch(p, text) end translit.methods["ru"] = translit.methods["all"] translit.methods["ru_old"] = function (text) local pname = "ru_old" .. translit.deficient_font local p = pcache[pname] if not p then p = iso9("all") pcache[pname] = p end return lpegmatch(p, text) end -- vim:ft=lua:sw=4:ts=4 context-modules-20240428/tex/context/third/transliterator/trans_tables_glag.lua0000644000175000017500000001440512131046154026721 0ustar hillehille --===========================================================================-- -- Glagolica -- --===========================================================================-- local translit = thirddata.translit ------------------------------------------- -- Lowercase Glagolitic Transliteration -- ------------------------------------------- if not translit.done_glagolica then translit.ocs_gla_low = translit.make_add_dict{ ["ⰰ"] = "a", -- GLAGOLITIC SMALL LETTER AZU ["ⰱ"] = "b", -- GLAGOLITIC SMALL LETTER BUKY ["ⰲ"] = "v", -- GLAGOLITIC SMALL LETTER VEDE ["ⰳ"] = "g", -- GLAGOLITIC SMALL LETTER GLAGOLI ["ⰴ"] = "d", -- GLAGOLITIC SMALL LETTER DOBRO ["ⰵ"] = "e", -- GLAGOLITIC SMALL LETTER YESTU ["ⰶ"] = "ž", -- GLAGOLITIC SMALL LETTER ZHIVETE ["ⰷ"] = "ʒ", -- GLAGOLITIC SMALL LETTER DZELO ["ⰸ"] = "z", -- GLAGOLITIC SMALL LETTER ZEMLJA ["ⰹ"] = "i", -- GLAGOLITIC SMALL LETTER IZHE ["ⰺ"] = "i", -- GLAGOLITIC SMALL LETTER INITIAL IZHE ["ⰻ"] = "i", -- GLAGOLITIC SMALL LETTER I ["ⰼ"] = "g’", -- GLAGOLITIC SMALL LETTER DJERVI ["ⰽ"] = "k", -- GLAGOLITIC SMALL LETTER KAKO ["ⰾ"] = "l", -- GLAGOLITIC SMALL LETTER LJUDIJE ["ⰿ"] = "m", -- GLAGOLITIC SMALL LETTER MYSLITE ["ⱀ"] = "n", -- GLAGOLITIC SMALL LETTER NASHI ["ⱁ"] = "o", -- GLAGOLITIC SMALL LETTER ONU ["ⱂ"] = "p", -- GLAGOLITIC SMALL LETTER POKOJI ["ⱃ"] = "r", -- GLAGOLITIC SMALL LETTER RITSI ["ⱄ"] = "s", -- GLAGOLITIC SMALL LETTER SLOVO ["ⱅ"] = "t", -- GLAGOLITIC SMALL LETTER TVRIDO ["ⱆ"] = "u", -- GLAGOLITIC SMALL LETTER UKU ["ⱇ"] = "f", -- GLAGOLITIC SMALL LETTER FRITU ["ⱈ"] = "x", -- GLAGOLITIC SMALL LETTER HERU ["ⱉ"] = "o", -- GLAGOLITIC SMALL LETTER OTU ["ⱊ"] = "?", -- GLAGOLITIC SMALL LETTER PE ["ⱋ"] = "št", -- GLAGOLITIC SMALL LETTER SHTA ["ⱌ"] = "c", -- GLAGOLITIC SMALL LETTER TSI ["ⱍ"] = "č", -- GLAGOLITIC SMALL LETTER CHRIVI ["ⱎ"] = "š", -- GLAGOLITIC SMALL LETTER SHA ["ⱏ"] = "ъ", -- GLAGOLITIC SMALL LETTER YERU ["ⱐ"] = "ь", -- GLAGOLITIC SMALL LETTER YERI ["ⱑ"] = "ě", -- GLAGOLITIC SMALL LETTER YATI ["ⱒ"] = "x", -- GLAGOLITIC SMALL LETTER SPIDERY HA ["ⱓ"] = "ju", -- GLAGOLITIC SMALL LETTER YU ["ⱔ"] = "ę", -- GLAGOLITIC SMALL LETTER SMALL YUS ["ⱕ"] = "y̨", -- GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL ["ⱖ"] = "??", -- GLAGOLITIC SMALL LETTER YO ["ⱗ"] = "ję", -- GLAGOLITIC SMALL LETTER IOTATED SMALL YU ["ⱘ"] = "ǫ", -- GLAGOLITIC SMALL LETTER BIG YUS ["ⱙ"] = "jǫ", -- GLAGOLITIC SMALL LETTER IOTATED BIG YUS ["ⱚ"] = "th", -- GLAGOLITIC SMALL LETTER FITA ["ⱛ"] = "ü", -- GLAGOLITIC SMALL LETTER IZHITSA ["ⱜ"] = "??", -- GLAGOLITIC SMALL LETTER SHTAPIC ["ⱝ"] = "??", -- GLAGOLITIC SMALL LETTER TROKUTASTI A ["ⱞ"] = "m", -- GLAGOLITIC SMALL LETTER LATINATE MYSLITE } translit.tables["Glagolica transliteration for OCS lowercase"] = translit.ocs_gla_low ------------------------------------------------ -- Uppercase (?!) Glagolitic Transliteration -- ------------------------------------------------ translit.ocs_gla_upp = translit.make_add_dict{ ["Ⰰ"] = "A", -- GLAGOLITIC CAPITAL LETTER AZU ["Ⰱ"] = "B", -- GLAGOLITIC CAPITAL LETTER BUKY ["Ⰲ"] = "V", -- GLAGOLITIC CAPITAL LETTER VEDE ["Ⰳ"] = "G", -- GLAGOLITIC CAPITAL LETTER GLAGOLI ["Ⰴ"] = "D", -- GLAGOLITIC CAPITAL LETTER DOBRO ["Ⰵ"] = "E", -- GLAGOLITIC CAPITAL LETTER YESTU ["Ⰶ"] = "Ž", -- GLAGOLITIC CAPITAL LETTER ZHIVETE ["Ⰷ"] = "Ʒ", -- GLAGOLITIC CAPITAL LETTER DZELO ["Ⰸ"] = "Z", -- GLAGOLITIC CAPITAL LETTER ZEMLJA ["Ⰹ"] = "I", -- GLAGOLITIC CAPITAL LETTER IZHE ["Ⰺ"] = "I", -- GLAGOLITIC CAPITAL LETTER INITIAL IZHE ["Ⰻ"] = "I", -- GLAGOLITIC CAPITAL LETTER I ["Ⰼ"] = "G’", -- GLAGOLITIC CAPITAL LETTER DJERVI ["Ⰽ"] = "K", -- GLAGOLITIC CAPITAL LETTER KAKO ["Ⰾ"] = "L", -- GLAGOLITIC CAPITAL LETTER LJUDIJE ["Ⰿ"] = "M", -- GLAGOLITIC CAPITAL LETTER MYSLITE ["Ⱀ"] = "N", -- GLAGOLITIC CAPITAL LETTER NASHI ["Ⱁ"] = "O", -- GLAGOLITIC CAPITAL LETTER ONU ["Ⱂ"] = "P", -- GLAGOLITIC CAPITAL LETTER POKOJI ["Ⱃ"] = "R", -- GLAGOLITIC CAPITAL LETTER RITSI ["Ⱄ"] = "S", -- GLAGOLITIC CAPITAL LETTER SLOVO ["Ⱅ"] = "T", -- GLAGOLITIC CAPITAL LETTER TVRIDO ["Ⱆ"] = "U", -- GLAGOLITIC CAPITAL LETTER UKU ["Ⱇ"] = "F", -- GLAGOLITIC CAPITAL LETTER FRITU ["Ⱈ"] = "X", -- GLAGOLITIC CAPITAL LETTER HERU ["Ⱉ"] = "O", -- GLAGOLITIC CAPITAL LETTER OTU ["Ⱊ"] = "?", -- GLAGOLITIC CAPITAL LETTER PE ["Ⱋ"] = "Št", -- GLAGOLITIC CAPITAL LETTER SHTA ["Ⱌ"] = "C", -- GLAGOLITIC CAPITAL LETTER TSI ["Ⱍ"] = "Č", -- GLAGOLITIC CAPITAL LETTER CHRIVI ["Ⱎ"] = "Š", -- GLAGOLITIC CAPITAL LETTER SHA ["Ⱏ"] = "Ъ", -- GLAGOLITIC CAPITAL LETTER YERU ["Ⱐ"] = "Ь", -- GLAGOLITIC CAPITAL LETTER YERI ["Ⱑ"] = "Ě", -- GLAGOLITIC CAPITAL LETTER YATI ["Ⱒ"] = "X", -- GLAGOLITIC CAPITAL LETTER SPIDERY HA ["Ⱓ"] = "Ju", -- GLAGOLITIC CAPITAL LETTER YU ["Ⱔ"] = "Ę", -- GLAGOLITIC CAPITAL LETTER SMALL YUS ["Ⱕ"] = "Y̨", -- GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL ["Ⱖ"] = "??", -- GLAGOLITIC CAPITAL LETTER YO ["Ⱗ"] = "Ję", -- GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS ["Ⱘ"] = "Ǫ", -- GLAGOLITIC CAPITAL LETTER BIG YUS ["Ⱙ"] = "Jǫ", -- GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS ["Ⱚ"] = "Th", -- GLAGOLITIC CAPITAL LETTER FITA ["Ⱛ"] = "Ü", -- GLAGOLITIC CAPITAL LETTER IZHITSA ["Ⱜ"] = "??", -- GLAGOLITIC CAPITAL LETTER SHTAPIC ["Ⱝ"] = "??", -- GLAGOLITIC CAPITAL LETTER TROKUTASTI A ["Ⱞ"] = "M", -- GLAGOLITIC CAPITAL LETTER LATINATE MYSLIT } translit.tables["Glagolica transliteration for OCS uppercase"] = translit.ocs_gla_upp translit.done_glagolica = true end --===========================================================================-- -- End Of Tables -- --===========================================================================-- context-modules-20240428/tex/context/third/transliterator/trans_tables_bg.lua0000644000175000017500000000614712131046154026403 0ustar hillehille--===========================================================================-- -- Bulgarian -- --===========================================================================-- local translit = thirddata.translit local pcache = translit.parser_cache local lpegmatch = lpeg.match if not translit.done_bg then --------------------------------------------------------------------------- -- Uppercase Bulgarian -> „scientific“ transliteration -- --------------------------------------------------------------------------- translit.bg_upp = translit.make_add_dict{ ["А"] = "A", ["Б"] = "B", ["В"] = "V", ["Г"] = "G", ["Д"] = "D", ["Е"] = "E", ["Ж"] = "Ž", ["З"] = "Z", ["И"] = "I", ["Й"] = "J", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "U", ["Ф"] = "F", ["Х"] = "Ch", ["Ц"] = "C", ["Ч"] = "Č", ["Ш"] = "Š", ["Щ"] = "Št", ["Ъ"] = "Ă", ["Ь"] = "′", ["Ю"] = "Ju", ["Я"] = "Ja", } translit.tables["Bulgarian \\quotation{scientific} transliteration uppercase"] = translit.bg_upp --------------------------------------------------------------------------- -- Lowercase Bulgarian -> „scientific“ transliteration -- --------------------------------------------------------------------------- translit.bg_low = translit.make_add_dict{ ["а"] = "a", ["б"] = "b", ["в"] = "v", ["г"] = "g", ["д"] = "d", ["е"] = "e", ["ж"] = "ž", ["з"] = "z", ["и"] = "i", ["й"] = "j", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ф"] = "f", ["х"] = "ch", ["ц"] = "c", ["ч"] = "č", ["ш"] = "š", ["щ"] = "št", ["ъ"] = "ă", ["ь"] = "′", ["ю"] = "ju", ["я"] = "ja", } translit.tables["Bulgarian \\quotation{scientific} transliteration lowercase"] = translit.bg_low translit.done_bg = true end local P, Cs = lpeg.P, lpeg.Cs local addrules = translit.addrules local utfchar = translit.utfchar local function bulgarian (mode) local bulgarian_parser if mode == "de" then local bg = translit.bg_upp + translit.bg_low local p_bg = addrules(bg) bulgarian_parser = Cs((p_bg / bg + utfchar)^0) else return nil end return bulgarian_parser end translit.methods["bg_de"] = function (text) local p = pcache["bg_de"] if not p then p = bulgarian("de") pcache["bg_de"] = p end return p and lpegmatch(p, text) or "" end -- vim:ft=lua:sw=4:ts=4 context-modules-20240428/tex/context/third/collating-marks/0000755000175000017500000000000014613513620022555 5ustar hillehillecontext-modules-20240428/tex/context/third/collating-marks/t-collatingmarks.mkiv0000644000175000017500000001315714422277152026734 0ustar hillehille%D \module %D [ file=t-collatingmarks, %D version=2023.04.15, %D title=Collating Marks \CONTEXT\ User Module, %D subtitle=Environment for collating marks, %D author={W. Egger}, %D date=\currentdate, %D copyright={W. Egger}, %D email=w.egger@boede.nl, %D license=Public Domain] %D %D The documentation can be generated with: %D mtxrun --script modules --process t-collatingmarks.tex \startmodule[collatingmarks] \writestatus{loading}{Context Module for Collating Marks} %D\enablemode[demo] %D \startsubject[title={Introduction}] %D %D This code is based on the work of Thomas A. Schmitz, who created the module for %D different crop marks. %D %D If a book consists of multiple sections, each section should be marked %D along the spine with a collating mark. This mark moves down along the spine %D according to the number of the section. After collating the book it becomes %D easy tho check whether the sequence of the sections is correct. One should %D see a \quotation{stair case} on the spine of the book. %D \stopsubject %D %D \startsubject[title={Using the module}] %D %D If the collating marks should be placed, then the system should be setup with %D \type{\setupMPvariables[pages=8,sheets=2,shift=0mm,frenchdoors=false,wickel=false]} Note that the %D collating marks-setup needs to know how many pages are placed on a %D doublesided printed sheet of paper and how many such sheets result in a %D section i.e. these values depend on the \type{\setuparranging} command. The %D shift-option is 0mm if no horizontal page shifting is issued during %D imposition. If a horizontal page shifting is used, then the shift option is %D used to position the collating mark precisely on the spine. %D %D The two keys \quotation{frenchdoors} and \quotation{wickel} are used for %D special purposes. These are not intended for general use. %D For the preparation of a binding called %D French doors, where there is a left (normal) and a right book, which opens %D from left to right the MPvariable \quotation{frenchdoors} must be set to true %D (boolean). %D For preparing a section with parallelfolding/letterfolding/Wickelfalz the %D MPvariable \quotation{wickel} must be set to true (boolean). %D\stopsubject %D \startsubject[title={Vocabulary}] %D %D EN: Collating mark, DE: Kollationiermarke, NL: collationeerblokje %D \stopsubject \unprotect \setupmodule[Collatingmarks=yes] \setupMPvariables [Collatingmarks] [pages=16, %pages per sheet doublesided sheets=1,% number of sheets forming one section horpageshift=0, frenchdoors=false, wickel=false] %D We prepare collating marks: \processaction[\currentmoduleparameter{Collatingmarks}] [yes=>\def\Collatingmarks{Collatingmarks}, no=>\def\Collatingmarks{}, \v!unknown=>\def\Collatingmarks{}, \v!default=>\def\Collatingmarks{}] %D The newly prepared macros go into the page background: \setupbackgrounds[page][state=repeat,background={\Collatingmarks}] %D We define an overlay for the collating marks. \defineoverlay[Collatingmarks][\useMPgraphic{Collatingmarks}] %D We let \METAPOST do the calculations and draw de collating marks. \startusableMPgraphic{Collatingmarks} StartPage; numeric offset, sectionno, pages, sheets, factor, correction, offset, pageshift; path p,q; boolean frenchdoors,wickel; pages := \MPvar{pages}; sheets := \MPvar{sheets}; pageshift := \MPvar{horpageshift}; frenchdoors := \MPvar{frenchdoors}; wickel := \MPvar{wickel}; z5colm = ulcorner Page; z6colm = (x5colm, y5colm-10mm); p := unitsquare xscaled 1mm yscaled 7mm; if \realpagenumber mod 2 = 1 : % on uneven pages only sectionno := \realpagenumber div (sheets*pages)+1; label.lrt(textext("\switchtobodyfont[5pt]"& decimal sectionno &""),llcorner Page shifted (1mm,-2mm)); if \realpagenumber mod (sheets*pages) = 1 : % on the first page of a section only nofmarkings := (y6colm-7mm) div 7mm; offset := y6colm-sectionno*7mm; if sectionno > nofmarkings : correction := sectionno div nofmarkings; offset := y6colm-(sectionno-correction*nofmarkings)*7mm; fi; if frenchdoors or wickel : p := p shifted ((PaperWidth),offset); else : p := p shifted (-1mm-2pageshift,offset); fi; fill p withcolor black; if sectionno < 9 : label.rt(textext("\switchtobodyfont[3pt] \white "& decimal sectionno &""), center p shifted (-1.3mm,0)); else : label.rt(textext("\switchtobodyfont[3pt] \white "& decimal sectionno &""), center p shifted (-1.5mm,0)); fi; fi; fi; \stopusableMPgraphic \protect \stopmodule \doifnotmode{demo}{\endinput} %D Example: %D \usemodule[collatingmarks][Collatingmarks=yes] %D \setuppapersize[A5][A2] %D \setuplayout[location=middle,marking=on] %D \setuppagenumbering[alternative=doublesided] %D \setuparranging[2*4] %D %D \setupMPvariables %D [pages=8, % pages per sheet of paper doublesided %D sheets=1, % sheets of paper used per section %D horpageshift=0mm, % used for correction if horizontal page-shifting is used %D frenchdoors=false, %D wickel=false] %D %D \starttext %D \dorecurse{10}{\section{Text \recurselevel}\input tufte \par\subject{Ward} \input ward\par} %D \stoptext \usemodule[collatingmarks][Collatingmarks=yes] \setuppapersize[A5][A2] \setuplayout[location=middle,marking=on] \setuppagenumbering[alternative=doublesided] \setuparranging[2*4*2] \setupMPvariables [pages=8, % pages per sheet of paper doublesided sheets=2, % sheets of paper used per section horpageshift=0mm, % used for correction if horizontal page-shifting is used frenchdoors=false, wickel=false] \starttext \dorecurse{10}{\section{Text \recurselevel}\input tufte \par\subject{Ward} \input ward\par} \stoptext context-modules-20240428/tex/context/third/vim/0000755000175000017500000000000014613513621020262 5ustar hillehillecontext-modules-20240428/tex/context/third/vim/t-vim.tex0000644000175000017500000002212314204014405022030 0ustar hillehille%D \module %D [ file=t-vim, %D version=2022.02.17, %D title=\CONTEXT\ User Module, %D subtitle=Vim syntax highlighting, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Vim syntax highlighting (ver: 2022.02.17)} \startmodule [vim] \usemodule [filter] % loads module catcodes \usemodule [syntax-highlight] % loads syntax-groups and filter module \unprotectmodulecatcodes \startinterface all \setinterfaceconstant {vimrc} {vimrc} \setinterfaceconstant {vimcommand} {vim\c!command} \stopinterface \def\vimtyping@id {vimtyping} \def\vimtyping@namespace {@@@@\vimtyping@id} \def\vimtyping@name {} \def\vimrc@id {vimrc} \installparameterhandler \vimtyping@namespace \vimtyping@id \installsetuphandler \vimtyping@namespace \vimtyping@id \appendtoks % \setupvimtyping[...][...] does not call % \setupsyntaxhighlighting[...][...], % So, the line numbering options are not reset. Reset them explicitly here \syntaxhighlighting@set_linenumbers\vimtyping@id \to\everysetupvimtyping \def\definevimtyping {\dodoubleargument\vimtyping@define} \starttexdefinition vimtyping@define [#1][#2] \setupvimtyping[#1][\s!parent=\vimtyping@namespace,#2] \definesyntaxhighlighting[#1][\s!parent=\vimtyping@namespace#1] \setupsyntaxhighlighting [#1][#2] \stoptexdefinition % Mode to testing the dev version of 2context script. \doifmodeelse{vim-dev,dev-vim} {\def\vimtyping@script_name{2context.vim}% \doifmode\s!mkiv{\def\vimtyping@css_name{vimtyping-default.css}}} {\doifmodeelse\s!mkiv {\ctxlua{context.setvalue("vimtyping@script_name",resolvers.resolve("full:2context.vim"))}% \ctxlua{context.setvalue("vimtyping@css_name", resolvers.resolve("full:vimtyping-default.css"))}} {\def\vimtyping@script_name{kpse:2context.vim}}} \def\vimtypingcssfile{\vimtyping@css_name} \def\vimtyping@filter_command {\externalfilterparameter\c!vimcommand\space -u \vimrc_filename\space % read global config file % --startuptime log % -V3log -X % dont connect to X server -i NONE % dont use viminfo file --noplugin % dont load plugins -es % run in ex mode in silent % -C % set compatible -n % no swap file -c "syntax manual" % don't load filetype detection -c "set syntax=\externalfilterparameter\c!syntax" % -c "set tabstop=\externalfilterparameter\c!tab" % % vim only accepts 10 -c commands, so we combine a few let statements -c "let contextstartline=\externalfilterparameter\c!start \letterbar\space % let contextstopline=\externalfilterparameter\c!stop \letterbar\space % let strip=\getvalue{\vimtyping@id-\c!strip-\externalfilterparameter\c!strip}" % -c "let escapecomments=\getvalue{\vimtyping@id-\c!escape-\externalfilterparameter\c!escape}" -c "let highlight=[\externalfilterparameter\c!highlight]" % \vimrc_extras\space -c "source \vimtyping@script_name" % -c "qa" % \externalfilterinputfile\space \externalfilteroutputfile} \setvalue{\vimtyping@id-\c!strip-\v!off}{0} \setvalue{\vimtyping@id-\c!strip-\v!on}{1} \setvalue{\vimtyping@id-\c!escape-}{0} % Empty value \setvalue{\vimtyping@id-\c!escape-\v!off}{0} \setvalue{\vimtyping@id-\c!escape-\v!on}{1} \setvalue{\vimtyping@id-\c!escape-\v!comment}{1} \setvalue{\vimtyping@id-\c!escape-\v!command}{2} % Undocumented ... but useful if the user makes a mistake \setvalue{\vimtyping@id-\c!strip-\v!no}{0} \setvalue{\vimtyping@id-\c!strip-\v!yes}{1} \setvalue{\vimtyping@id-\c!escape-\v!no}{0} \setvalue{\vimtyping@id-\c!escape-\v!yes}{1} \setupvimtyping [\c!vimcommand={vim}, % \c!tab=4, % \c!start=1, % \c!stop=0, % \c!syntax=context, % \c!alternative=pscolor, % \c!before=, % \c!after=, % \c!style=\tttf, % \c!color=, \c!strip=\v!yes, \c!escape=\v!off, % \c!highlight=, % \c!highlightcolor=lightgray, \c!filtercommand=\vimtyping@filter_command, % \c!continue=yes, % All options that effect the call to vim. When syntax highlighting % external files, changing any one of these options will result in a new % call to vim and the result will be saved in a different file \c!cache\c!option={\externalfilterparameter\c!start \externalfilterparameter\c!stop \externalfilterparameter\c!syntax \externalfilterparameter\c!strip \externalfilterparameter\c!escape \externalfilterparameter\c!highlight}, % \c!read=\v!yes, % \c!readcommand=\syntaxhighlighting@read_command, \c!output=\externalfilterbasefile.vimout, %\c!setups=syntaxhighlighting@setup, \c!filter\c!setups=vimrc@setup, % \c!option=\v!packed, % Could be a list \s!parent=\syntaxhighlighting@namespace, \c!vimrc=, % % Numbering options % \c!numbering=\v!no, % \c!number\c!start=1, % \c!number\c!step=1, % \c!number\c!continue=\v!no, % \c!numberconversion=\v!numbers, % \c!number\c!method=\v!first, % \c!number\c!location=\v!left, % \c!numberstyle=\ttx, % \c!numbercolor=, % \c!number\c!width=2em, % \c!number\c!left=, % \c!number\c!right=, % \c!number\c!command=, % \c!number\c!distance=0.5em, % \c!number\c!align=\v!flushright, ] \def\currentvimtyping {\vimtyping@name} \defineexternalfilter [\vimrc@id] [\c!continue=\v!no, \c!read=\v!no, \c!purge=\v!no, \c!filtercommand=\empty] \def\vimrcfile_name{NONE} \def\vimrc_extras{} \startsetups vimrc@setup \doifelsenothing{\externalfilterparameter\c!vimrc} {\def\vimrc_filename{NONE}} {\begingroup \expanded{\setupexternalfilter[\vimrc@id][\c!name=\externalfilterparameter\c!vimrc]} \edef\externalfilter@name{\vimrc@id} \edef\currentexternalfilter{\vimrc@id} \externalfilter@set_filenames \global\xdef\vimrc_filename{\externalfilter@input_file} \endgroup } \doifelsenothing{\externalfilterparameter\c!extras} {\def\vimrc_extras{}} {\begingroup \expanded{\setupexternalfilter[\vimrc@id][\c!name=\externalfilterparameter\c!extras]} \edef\externalfilter@name{\vimrc@id} \edef\currentexternalfilter{\vimrc@id} \externalfilter@set_filenames \global\xdef\vimrc_extras{-c "source \externalfilter@input_file"} \endgroup } \stopsetups \defineframed[vimtodoframed] [ \c!location=\v!low, \c!frame=\v!off, \c!background=\v!color, \c!backgroundcolor=vimtodoyellow, ] \definecolor[vimtodoyellow] [h={E0E090}] \startsetups[vim-minor-groups] \definesyntaxgroup [SpecialComment] [Comment] \definesyntaxgroup [String,Character,Number,Boolean,Float] [Constant] \definesyntaxgroup [Function] [Identifier] \definesyntaxgroup [Conditional,Repeat,Label,Operator,Keyword,Exception] [Statement] \definesyntaxgroup [Include,Define,Macro,PreCondit] [PreProc] \definesyntaxgroup [StorageClass,Structure,Typedef] [Type] \definesyntaxgroup [SpecialChar,Delimiter,Debug] [Special] \stopsetups \startcolorscheme[pscolor] % Vim Preferred groups \definesyntaxgroup [Constant] [\c!color={h=007068}] \definesyntaxgroup [Identifier] [\c!color={h=a030a0}] \definesyntaxgroup [Statement] [\c!color={h=2060a8}] \definesyntaxgroup [PreProc] [\c!color={h=009030}] \definesyntaxgroup [Type] [\c!color={h=0850a0}] \definesyntaxgroup [Special] [\c!color={h=907000}] \definesyntaxgroup [Comment] [\c!color={h=606000}] \definesyntaxgroup [Ignore] \definesyntaxgroup [Todo] [\c!color={h=800000}, \c!command=\vimtodoframed] \definesyntaxgroup [Error] [\c!color={h=c03000}] \definesyntaxgroup [Underlined] [\c!color={h=6a5acd}, \c!command=\underbar] \setups{vim-minor-groups} \definesyntaxgroup [Number] [\c!color={h=907000}] \stopcolorscheme \startcolorscheme[blackandwhite] \definesyntaxgroup [Constant] \definesyntaxgroup [Identifier] \definesyntaxgroup [Statement] [\c!style=bold] \definesyntaxgroup [PreProc] [\c!style=bold] \definesyntaxgroup [Type] [\c!style=bold] \definesyntaxgroup [Special] \definesyntaxgroup [Comment] [\c!style=italic] \definesyntaxgroup [Ignore] \definesyntaxgroup [Todo] [\c!command=\inframed] \definesyntaxgroup [Error] [\c!command=\overstrike] \definesyntaxgroup [Underlined] [\c!command=\underbar] \setups{vim-minor-groups} \stopcolorscheme \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/vim/2context.vim0000644000175000017500000001537613660571267022574 0ustar hillehille" Author : Aditya Mahajan " version : 2020.05.17 " license : Simplified BSD License " This script is part of the t-vim module for ConTeXt. It is based on 2html.vim. " This script is invoked by the `t-vim` module with the options " vim -c "syntax manual" -c "set syntax=name" ... " The option `syntax manual` loads `$VIMRUNTIME/syntax/manual.vim`, which " loads `$VIMRUNTIME/syntax/synload.vim`, which in turn loads, " `$VIMRUNTIME/syntax/syncolo.vim`, which defines syntax highlighting for " `preffered groups` and maps `minor groups` to `preffered groups`. See `:he " group-name` for details. We want the minor groups to appear in the output, " so we define a simple mapping for them: " Minor group of Constant hi String cterm=NONE hi Character cterm=NONE hi Number cterm=NONE hi Boolean cterm=NONE hi Float cterm=NONE " Minor group of Identifier hi Function cterm=NONE " Minor group of Statement hi Conditional cterm=NONE hi Repeat cterm=NONE hi Label cterm=NONE hi Operator cterm=NONE hi Keyword cterm=NONE hi Exception cterm=NONE " Minor group of PreProc hi Include cterm=NONE hi Define cterm=NONE hi Macro cterm=NONE hi PreCondit cterm=NONE " Minor group of Type hi StorageClass cterm=NONE hi Structure cterm=NONE hi Typedef cterm=NONE " Minor group of Special hi Tag cterm=NONE hi SpecialChar cterm=NONE hi Delimiter cterm=NONE hi SpecialComment cterm=NONE hi Debug cterm=NONE " Since this script is called by the t-vim module, we assume that Two buffers " are open. The first buffer is the input buffer, and the second buffer is the " output buffer. The script parses content line-by-line from the first buffer " and pastes the modified result on the second buffer. " Split screen and go to the second buffer, ensure modifiable is set, and the " buffer is empty. sblast set modifiable %d " Go to first buffer wincmd p " If contextstartline and contextstartline are set, use them. if exists("contextstartline") let s:lstart = max([1, min([line("$"), contextstartline]) ]) else let s:lstart = 1 endif if exists("contextstopline") if contextstopline <= 0 let contextstopline = line("$") + contextstopline endif let s:lstop = min([line("$"), max([s:lstart, contextstopline]) ]) else let s:lstop = line("$") endif " Set highlight if !exists("highlight") let highlight=[] endif " Set escapecomments if exists("escapecomments") let s:escapecomments=escapecomments " 0=off, 1=comments, 2=command else let s:escapecomments=0 endif " Add a new syntax region to detect ConTeXt tags if s:escapecomments==2 syntax region vimtypingTEXcomment start="/BTEX" end="/ETEX" transparent oneline containedin=ALL contains=NONE " Find the id of /BTEX ... /ETEX syntax region let s:texcommentid = hlID("vimtypingTEXcomment") else let s:texcommentid = -1 " Assuming that all ids are positive. Not documented end let s:strip = strlen( matchstr( getline(s:lstart), '^\s*' ) ) " Find the smallest leading white space if exists("strip") && strip && (s:strip != 0) echo "Calculating amount of leading whitespace" for s:lnum in range(s:lstart, s:lstop) let s:line = getline(s:lnum) if (match(s:line, '^\s*$')) == -1 " line is not empty let s:space = matchstr(s:line, '^\s*') let s:len = strlen(s:space) " echo s:len let s:strip = min([s:strip, s:len]) if s:strip == 0 break end end endfor " echo "Strip amount:" . s:strip else let s:strip = 0 endif let s:lines = [] " Loop over all lines in the original text. let s:buffer_lnum = 1 let s:lnum = s:lstart while s:lnum <= s:lstop " Get the current line let s:line = getline(s:lnum) let s:len = strlen(s:line) let s:new = '' " Loop over each character in the line let s:col = s:strip + 1 while s:col <= s:len let s:startcol = s:col " The start column for processing text " Check if the next transprarent syntax is "vimtypingTEXcomment". If not, " find the next non-transparent syntax id. let s:id = synID (s:lnum, s:col, 0) if s:id == s:texcommentid let s:texcomment = 1 else let s:texcomment = 0 let s:id = synID (s:lnum, s:col, 1) endif let s:col = s:col + 1 " Speed loop (it's small - that's the trick) " Go along till we find a change in synID while s:col <= s:len " If there is a "vimtypingTEXcomment" inside another syntax id, " "vimtypingTEXcomment" should get preference let s:nextid = synID(s:lnum, s:col, 0) if !s:texcomment && s:nextid != s:texcommentid let s:nextid = synID(s:lnum, s:col, 1) endif if s:nextid != s:id break endif let s:col = s:col + 1 endwhile " Output the text with the same synID, with class set to {s:id_name} let s:id = synIDtrans (s:id) let s:id_name = synIDattr (s:id, "name", "gui") if s:texcomment " Remove /BTEX and /ETEX which are 5 characters wide let s:temp = strpart(s:line, s:startcol + 5 - 1, s:col - s:startcol - 5 - 5) else let s:temp = strpart(s:line, s:startcol - 1, s:col - s:startcol) end " Remove line endings (on unix machines reading windows files) let s:temp = substitute(s:temp, '\r*$', '', '') " It might have happened that that one has been the last item in a row, so " we don't need to print in in that case if strlen(s:temp) > 0 " Change special TeX characters to escape sequences. if !(s:texcomment || (s:escapecomments == 1) && s:id_name == "Comment") let s:temp = escape( s:temp, '\{}') endif if !(s:texcomment || empty(s:id_name)) let s:temp = '\SYN[' . s:id_name . ']{' . s:temp . '}' endif let s:new = s:new . s:temp endif " Why will we ever enter this loop " if s:col > s:len " break " endif endwhile " Expand tabs let s:pad = 0 let s:start = 0 let s:idx = stridx(s:line, "\t") while s:idx >= 0 let s:i = &ts - ((s:start + s:pad + s:idx) % &ts) " let s:new = substitute(s:new, '\t', strpart(s:expandedtab, 0, s:i), '') let s:new = substitute(s:new, '\t', '\\tab{' . s:i . '}', '') let s:pad = s:pad + s:i - 1 let s:start = s:start + s:idx + 1 let s:idx = stridx(strpart(s:line, s:start), "\t") endwhile " Remove leading whitespace " let s:new = substitute(s:new, '^\s\{' . s:strip . '\}', "", "") " Highlight line, if needed. if (index(highlight, s:lnum) != -1) let s:new = '\HGL{' . s:new . '}' endif " Add begin and end line markers let s:new = "\\SYNBOL{}" . s:new . "\\SYNEOL{}" call add(s:lines, s:new) " Increment line numbers let s:lnum = s:lnum + 1 let s:buffer_lnum = s:buffer_lnum + 1 endwhile " Go to previous buffer wincmd p echo s:lines call setline(1,s:lines) unlet s:lines write context-modules-20240428/tex/context/third/vim/t-syntax-groups.mkii0000644000175000017500000000751313677173273024265 0ustar hillehille%D \module %D [ file=t-syntax-groups, %D version=2020.06.25, %D title=\CONTEXT\ User Module, %D subtitle=Syntax highlighting support, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Syntax highlighting groups (ver: 2020.06.25)} \startmodule [syntax-group] \usemodule [module-catcodes] \unprotectmodulecatcodes % Colors are specified in hex; in MkII the hex mode needs to be activated. \doifmode\s!mkii {\setupcolor[hex]} \def\colorscheme@name {} \def\syntaxgroup@id {syntaxgroup} \def\syntaxgroup@namespace {@@@@\syntaxgroup@id} \def\syntaxgroup@name {} \edef\t!syntaxgroup {\syntaxgroup@id} \installparameterhandler \syntaxgroup@namespace \syntaxgroup@id \installsetuphandler \syntaxgroup@namespace \syntaxgroup@id \def\m!syntaxgroup{t-syntax-group} \def\definesyntaxgroup {\dodoubleargument\syntaxgroup@define} \starttexdefinition syntaxgroup@define [#1][#2] % #1 list name % #2 options \doifassignmentelse{#2} { \def\syntaxgroup@get_parameters##1% { \edef\syntaxgroup@name {\colorscheme@name##1} \setupsyntaxgroup[\syntaxgroup@name] [\s!parent=\syntaxgroup@namespace,\c!color=,\c!style=,\c!command=,#2] \doifsomething{\syntaxgroupparameter\c!color} { \expanded{\definecolor[\syntaxgroup@namespace-\syntaxgroup@name-color] [\syntaxgroupparameter\c!color]} \expanded{\setupsyntaxgroup[\syntaxgroup@name][\s!parent=\syntaxgroup@namespace,\c!color=\syntaxgroup@namespace-\syntaxgroup@name-color]} } } }{ \def\syntaxgroup@get_parameters##1% { \edef\syntaxgroup@name {\colorscheme@name##1} \expanded{\setupsyntaxgroup[\syntaxgroup@name] [\c!color=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!color, \c!style=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!style, \c!command=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!command, ]} % In MkII, \expanded messes up the definition of \currentsyntaxgroup \def\currentsyntaxgroup {\syntaxgroup@name} } } \processcommalist[#1]\syntaxgroup@get_parameters \stoptexdefinition \def\startcolorscheme% {\dosingleargument\colorscheme@start} \starttexdefinition colorscheme@start [#1] \pushmacro\colorscheme@name \setcolorscheme{#1} %\setupsyntaxgroup[\c!color=,\c!style=,\c!command=] \stoptexdefinition \def\stopcolorscheme {\popmacro\colorscheme@name} \def\setcolorscheme#1% {\edef\colorscheme@name{#1}} \starttexdefinition syntaxgroup [#1]#2 % #1 = style % #2 = content \begingroup \edef\syntaxgroup@name{\colorscheme@name#1}% \syntaxgroupparameter\c!before \iftracesyntaxgroups \syntaxgroup@show_values \fi \syntaxgroupparameter\c!command { \externalfilter@attributes_start\syntaxgroup@id\c!style\c!color #2 \externalfilter@attributes_stop } \syntaxgroupparameter\c!after \endgroup \stoptexdefinition %D Tracing macros \newif\iftracesyntaxgroups \let\tracesyntaxgroups\tracesyntaxgroupstrue \def\currentsyntaxgroup {\syntaxgroup@name} \starttexdefinition syntaxgroup@show_values \writestatus\m!syntaxgroup{color scheme : \colorscheme@name} \writestatus\m!syntaxgroup{current group: \syntaxgroup@name} \writestatus\m!syntaxgroup{command : \syntaxgroupparameter\c!command} \writestatus\m!syntaxgroup{style : \syntaxgroupparameter\c!style} \writestatus\m!syntaxgroup{color : \syntaxgroupparameter\c!color} \stoptexdefinition \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/vim/t-syntax-highlight.mkii0000644000175000017500000002054612133356032024674 0ustar hillehille%D \module %D [ file=t-syntax-highlight, %D version=2013.04.15, %D title=\CONTEXT\ User Module, %D subtitle=Code syntax highlighting, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Code syntax highlighting (ver: 2013.04.15)} \startmodule [syntax-highlight] \usemodule [syntax-groups] \usemodule [filter] % loads module-catcodes \unprotectmodulecatcodes \startinterface all \setinterfaceconstant {syntax} {syntax} \setinterfaceconstant {highlight} {highlight} \setinterfaceconstant {highlightcolor} {highlightcolor} \stopinterface %D Name space \def\syntaxhighlighting@id {syntaxhighlighting} \def\syntaxhighlighting@namespace {@@@@\syntaxhighlighting@id} \def\syntaxhighlighting@name {} \edef\t!syntaxhighlighting {\syntaxhighlighting@id} \installparameterhandler \syntaxhighlighting@namespace \syntaxhighlighting@id \installsetuphandler \syntaxhighlighting@namespace \syntaxhighlighting@id %D Helper macro \def\syntaxhighlighting@yes{\v!yes,\v!on} \def\definesyntaxhighlighting {\dodoubleargument\syntaxhighlighting@define} \starttexdefinition syntaxhighlighting@define [#1][#2] \setupsyntaxhighlighting[#1][\s!parent=\syntaxhighlighting@namespace,#2] \edef\syntaxhighlighting@name{#1} \defineexternalfilter[#1][\s!parent=\syntaxhighlighting@namespace#1] \doifmode\s!mkiv{\setups{syntaxhighlighting@setup_line_number_mkiv}} \setvalue{type#1file}{\getvalue{process#1file}} \stoptexdefinition \startsetups syntaxhighlighting@setup \edef\syntaxhighlighting@name{\currentexternalfilter} \edef\colorscheme@name{\externalfilterparameter\c!alternative} \let\SYN\syntaxgroup \edef\HGL{\externalfilterparameter{\c!highlight\c!command}} \let\\\textbackslash \let\{\textbraceleft \let\}\textbraceright \let\SYNBOL\donothing \let\SYNEOL\donothing \def\tab##1% {\dorecurse{##1}{\obeyedspace}}% \setups{syntaxhighlighting@setup_line_number_mkii}% \forgetall \doifinset{\externalfilterparameter\c!option}{\v!packed} {\setupwhitespace[\v!none,\v!flexible]}% \doifnotinset{\externalfilterparameter\c!option}{\v!hyphenated} {\language\minusone}% \setcatcodetable\externalfilter@minimal_catcodes \expandafter\def\activeendoflinetoken{\strut\par} \activatespacehandler{\syntaxhighlighting@namespace\externalfilterparameter\c!space} \raggedright \stopsetups \startsetups syntaxhighlighting@setup_line_number_mkiv \definelinenumbering [#1] \setuplinenumbering [#1] [\c!conversion=\externalfilterparameter\c!numberconversion, \c!start=\externalfilterparameter{\c!number\c!start}, \c!step=\externalfilterparameter{\c!number\c!step}, \c!method=\externalfilterparameter{\c!number\c!method}, \c!location=\externalfilterparameter{\c!number\c!location}, \c!style=\externalfilterparameter\c!numberstyle, \c!color=\externalfilterparameter\c!numbercolor, \c!width=\externalfilterparameter{\c!number\c!width}, \c!left=\externalfilterparameter{\c!number\c!left}, \c!right=\externalfilterparameter{\c!number\c!right}, \c!command=\externalfilterparameter\c!numbercommand, \c!distance=\externalfilterparameter{\c!number\c!distance}, \c!align=\externalfilterparameter{\c!number\c!align}, ] \stopsetups \doifmode\s!mkii {\newcount\syntaxhighlighting@linenumber} \startsetups syntaxhighlighting@setup_line_number_mkii \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {% setuplinenumbering resets \linenumber. So we save the value of linenumber and % revert it back. \syntaxhighlighting@linenumber=\linenumber \setuplinenumbering [\c!conversion=\externalfilterparameter\c!numberconversion, \c!start=\externalfilterparameter{\c!number\c!start}, \c!step=\externalfilterparameter{\c!number\c!step}, \c!method=\externalfilterparameter{\c!number\c!method}, \c!location=\externalfilterparameter{\c!number\c!location}, \c!style=\externalfilterparameter\c!numberstyle, \c!color=\externalfilterparameter\c!numbercolor, \c!width=\externalfilterparameter{\c!number\c!width}, \c!left=\externalfilterparameter{\c!number\c!left}, \c!right=\externalfilterparameter{\c!number\c!right}, \c!command=\externalfilterparameter\c!numbercommand, \c!distance=\externalfilterparameter{\c!number\c!distance}, \c!align=\externalfilterparameter{\c!number\c!align}, ] \linenumber=\syntaxhighlighting@linenumber} \stopsetups \starttexdefinition syntaxhighlighting@read_command #1 \syntaxhighlighting@linenumbering_start \ReadFile{#1} \syntaxhighlighting@linenumbering_stop \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_stop \dostoptagged \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\stoplinenumbering} \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_start \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\doifelse{\externalfilterparameter{\c!number\c!continue}}\syntaxhighlighting@yes {\startlinenumbering[\v!continue]} {\startlinenumbering}} \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_stop \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\stoplinenumbering} \stoptexdefinition \setupsyntaxhighlighting [\c!tab=4, \c!space=\v!off, \c!lines=\v!split, \c!start=1, \c!stop=0, % \c!syntax=context, \c!alternative=pscolor, \c!before=, \c!after=, \c!spacebefore=\v!none, \c!spaceafter=\v!none, \c!location=\v!paragraph, \c!style=\tttf, \c!color=, \c!align={\v!flushleft,\v!nothyphenated}, %Does not work due to \forgetall \c!filtercommand=echo, % placeholder \c!continue=yes, \c!read=\v!yes, \c!readcommand=\syntaxhighlighting@read_command, \c!output=\externalfilterinputfile, % placeholder \c!setups=syntaxhighlighting@setup, \c!option=\v!packed, % \v!hyphenated \s!parent=\externalfilter@namespace, % Numbering options \c!numbering=\v!no, \c!number\c!start=1, \c!number\c!step=1, \c!number\c!continue=\v!no, \c!numberconversion=\v!numbers, \c!number\c!method=\v!first, \c!number\c!location=\v!left, \c!numberstyle=\ttx, \c!numbercolor=, \c!number\c!width=2em, \c!number\c!left=, \c!number\c!right=, \c!numbercommand=, \c!number\c!distance=0.5em, \c!number\c!align=\v!flushright, %Highlight options \c!highlight=, \c!highlightcolor=lightgray, \c!highlight\c!command=\syntaxhighlightline, ] \def\currentsyntaxhighlighting {\syntaxhighlighting@name} % Space handler % % The space handing code for MkII and MkIV is not consistent. So, we provide our % own versions. \setvalue{\syntaxhighlighting@namespace @\c!lines @\v!split}{\hskip} \setvalue {\syntaxhighlighting@namespace @\c!lines @\v!fixed}{\dontleavehmode\kern} % default \setvalue{\syntaxhighlighting@namespace @\c!lines @}{\hskip} \def\syntaxhighlighting@split% {\getvalue{\syntaxhighlighting@namespace @\c!lines @\externalfilterparameter\c!lines}} % Visible space \installspacehandler {\syntaxhighlighting@namespace\v!on} {\obeyspaces \unexpanded\def\obeyedspace {\syntaxhighlighting@split\zeropoint\relax \hbox{\normalcontrolspace}% \syntaxhighlighting@split\zeropoint\relax}}% % Invisible space \installspacehandler {\syntaxhighlighting@namespace\v!off} {\obeyspaces \unexpanded\def\obeyedspace {\syntaxhighlighting@split\interwordspace\relax}} % Default \installspacehandler {\syntaxhighlighting@namespace} {\activatespacehandler {\syntaxhighlighting@namespace\v!off}} % Line highlighting \definetextbackground[syntaxhighlightline] [\c!location=\v!text, %% location=paragraph causes a spurious line break \c!alternative=0, \c!frame=\v!off, \c!background=\v!color, \c!backgroundcolor=\externalfilterparameter\c!highlightcolor, \c!before=, \c!after=, ] \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/vim/vimtyping-default.css0000644000175000017500000004117213677173273024467 0ustar hillehille/* author : Aditya Mahajan and Christoph Hintermüller, license : Simplfied BSD License, version : 2020.06.29 */ /* TODO: * Inline environments * Export of TODO has an extra space * Line numbering in the margin */ vimtyping, .vimtyping { font-family:monospace; display:block; white-space:pre-wrap; } inlinevimtyping, .inlinevimtyping { font-family:monospace; display:inline; white-space:pre-wrap; } vimtyping verbatimline, inlinevimtyping verbatimline, .vimtyping .verbatimline, .inlinevimtyping .verbatimline { display:inline; white-space:pre-wrap; } vimtyping syntaxgroup, inlinevimtyping syntaxgroup, .vimtyping .syntaxgroup, .inlinevimtyping .syntaxgroup { display:inline; } /* `pscolor` color scheme */ vimtyping[detail=pscolor] syntaxgroup[defail=vimConstant], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimConstant], .vimtyping.pscolor .syntaxgroup.vimConstant, .inlinevimtyping.pscolor .syntaxgroup.vimConstant, vimtyping[detail=pscolor] syntaxgroup[defail=vimString], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimString], .vimtyping.pscolor .syntaxgroup.vimString, .inlinevimtyping.pscolor .syntaxgroup.vimString, vimtyping[detail=pscolor] syntaxgroup[defail=vimCharacter], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimCharacter], .vimtyping.pscolor .syntaxgroup.vimCharacter, .inlinevimtyping.pscolor .syntaxgroup.vimCharacter, vimtyping[detail=pscolor] syntaxgroup[defail=vimBoolean], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimBoolean], .vimtyping.pscolor .syntaxgroup.vimBoolean, .inlinevimtyping.pscolor .syntaxgroup.vimBoolean, vimtyping[detail=pscolor] syntaxgroup[defail=vimFloat], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimFloat], .vimtyping.pscolor .syntaxgroup.vimFloat, .inlinevimtyping.pscolor .syntaxgroup.vimFloat { color:#007068; } vimtyping[detail=pscolor] syntaxgroup[defail=vimNumber], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimNumber], .vimtyping.pscolor .syntaxgroup.vimNumber, .inlinevimtyping.pscolor .syntaxgroup.vimNumber { color:#907000; } vimtyping[detail=pscolor] syntaxgroup[defail=vimIdentifier], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimIdentifier], .vimtyping.pscolor .syntaxgroup.vimIdentifier, .inlinevimtyping.pscolor .syntaxgroup.vimIdentifier, vimtyping[detail=pscolor] syntaxgroup[defail=vimFunction], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimFunction], .vimtyping.pscolor .syntaxgroup.vimFunction, .inlinevimtyping.pscolor .syntaxgroup.vimFunction { color:#a030a0; } vimtyping[detail=pscolor] syntaxgroup[defail=vimStatement], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStatement], .vimtyping.pscolor .syntaxgroup.vimStatement, .inlinevimtyping.pscolor .syntaxgroup.vimStatement, vimtyping[detail=pscolor] syntaxgroup[defail=vimCondition], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimCondition], .vimtyping.pscolor .syntaxgroup.vimCondition, .inlinevimtyping.pscolor .syntaxgroup.vimCondition, vimtyping[detail=pscolor] syntaxgroup[defail=vimRepeat], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimRepeat], .vimtyping.pscolor .syntaxgroup.vimRepeat, .inlinevimtyping.pscolor .syntaxgroup.vimRepeat, vimtyping[detail=pscolor] syntaxgroup[defail=vimLabel], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimLabel], .vimtyping.pscolor .syntaxgroup.vimLabel, .inlinevimtyping.pscolor .syntaxgroup.vimLabel, vimtyping[detail=pscolor] syntaxgroup[defail=vimOperator], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimOperator], .vimtyping.pscolor .syntaxgroup.vimOperator, .inlinevimtyping.pscolor .syntaxgroup.vimOperator, vimtyping[detail=pscolor] syntaxgroup[defail=vimKeyword], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimKeyword], .vimtyping.pscolor .syntaxgroup.vimKeyword, .inlinevimtyping.pscolor .syntaxgroup.vimKeyword, vimtyping[detail=pscolor] syntaxgroup[defail=vimException], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimException], .vimtyping.pscolor .syntaxgroup.vimException, .inlinevimtyping.pscolor .syntaxgroup.vimException { color:#2060a8; } vimtyping[detail=pscolor] syntaxgroup[defail=vimPreProc], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimPreProc], .vimtyping.pscolor .syntaxgroup.vimPreProc, .inlinevimtyping.pscolor .syntaxgroup.vimPreProc, vimtyping[detail=pscolor] syntaxgroup[defail=vimInclude], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimInclude], .vimtyping.pscolor .syntaxgroup.vimInclude, .inlinevimtyping.pscolor .syntaxgroup.vimInclude, vimtyping[detail=pscolor] syntaxgroup[defail=vimDefine], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDefine], .vimtyping.pscolor .syntaxgroup.vimDefine, .inlinevimtyping.pscolor .syntaxgroup.vimDefine, vimtyping[detail=pscolor] syntaxgroup[defail=vimMacro], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimMacro], .vimtyping.pscolor .syntaxgroup.vimMacro, .inlinevimtyping.pscolor .syntaxgroup.vimMacro, vimtyping[detail=pscolor] syntaxgroup[defail=vimPreCondit], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimPreCondit], .vimtyping.pscolor .syntaxgroup.vimPreCondit, .inlinevimtyping.pscolor .syntaxgroup.vimPreCondit { color:#009030; } vimtyping[detail=pscolor] syntaxgroup[defail=vimType], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimType], .vimtyping.pscolor .syntaxgroup.vimType, .inlinevimtyping.pscolor .syntaxgroup.vimType, vimtyping[detail=pscolor] syntaxgroup[defail=vimStorageClass], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStorageClass], .vimtyping.pscolor .syntaxgroup.vimStorageClass, .inlinevimtyping.pscolor .syntaxgroup.vimStorageClass, vimtyping[detail=pscolor] syntaxgroup[defail=vimStructure], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStructure], .vimtyping.pscolor .syntaxgroup.vimStructure, .inlinevimtyping.pscolor .syntaxgroup.vimStructure, vimtyping[detail=pscolor] syntaxgroup[defail=vimTypedef], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimTypedef], .vimtyping.pscolor .syntaxgroup.vimTypedef, .inlinevimtyping.pscolor .syntaxgroup.vimTypedef { color:#0850a0; } vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecial], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecial], .vimtyping.pscolor .syntaxgroup.vimSpecial, .inlinevimtyping.pscolor .syntaxgroup.vimSpecial, vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialChar], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialChar], .vimtyping.pscolor .syntaxgroup.vimSpecialChar, .inlinevimtyping.pscolor .syntaxgroup.vimSpecialChar, vimtyping[detail=pscolor] syntaxgroup[defail=vimDelimiter], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDelimiter], .vimtyping.pscolor .syntaxgroup.vimDelimiter, .inlinevimtyping.pscolor .syntaxgroup.vimDelimiter, vimtyping[detail=pscolor] syntaxgroup[defail=vimDebug], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDebug], .vimtyping.pscolor .syntaxgroup.vimDebug, .inlinevimtyping.pscolor .syntaxgroup.vimDebug { color:#907000; } vimtyping[detail=pscolor] syntaxgroup[defail=vimComment], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimComment], .vimtyping.pscolor .syntaxgroup.vimComment, .inlinevimtyping.pscolor .syntaxgroup.vimComment, vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialComment], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialComment], .vimtyping.pscolor .syntaxgroup.vimSpecialComment, .inlinevimtyping.pscolor .syntaxgroup.vimSpecialComment { color:#606000; } vimtyping[detail=pscolor] syntaxgroup[defail=vimIgnore], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimIgnore], .vimtyping.pscolor .syntaxgroup.vimIgnore, .inlinevimtyping.pscolor .syntaxgroup.vimIgnore { color:unset; } vimtyping[detail=pscolor] syntaxgroup[defail=vimTodo], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimTodo], .vimtyping.pscolor .syntaxgroup.vimTodo, .inlinevimtyping.pscolor .syntaxgroup.vimTodo { color:#800000; background-color:#e0e090; } vimtyping[detail=pscolor] syntaxgroup[defail=vimError], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimError], .vimtyping.pscolor .syntaxgroup.vimError, .inlinevimtyping.pscolor .syntaxgroup.vimError { color:#c03000; } vimtyping[detail=pscolor] syntaxgroup[defail=vimUnderlined], inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimUnderlined], .vimtyping.pscolor .syntaxgroup.vimUnderlined, .inlinevimtyping.pscolor .syntaxgroup.vimUnderlined { color:#6a5acd; text-decoration:underline; } /* `blackandwhite` color scheme */ vimtyping[detail=blackandwhite] syntaxgroup[defail=vimConstant], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimConstant], .vimtyping.blackandwhite .syntaxgroup.vimConstant, .inlinevimtyping.blackandwhite .syntaxgroup.vimConstant, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimString], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimString], .vimtyping.blackandwhite .syntaxgroup.vimString, .inlinevimtyping.blackandwhite .syntaxgroup.vimString, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimCharacter], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimCharacter], .vimtyping.blackandwhite .syntaxgroup.vimCharacter, .inlinevimtyping.blackandwhite .syntaxgroup.vimCharacter, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimBoolean], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimBoolean], .vimtyping.blackandwhite .syntaxgroup.vimBoolean, .inlinevimtyping.blackandwhite .syntaxgroup.vimBoolean, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimFloat], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimFloat], .vimtyping.blackandwhite .syntaxgroup.vimFloat, .inlinevimtyping.blackandwhite .syntaxgroup.vimFloat { } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimNumber], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimNumber], .vimtyping.blackandwhite .syntaxgroup.vimNumber, .inlinevimtyping.blackandwhite .syntaxgroup.vimNumber { } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimIdentifier], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimIdentifier], .vimtyping.blackandwhite .syntaxgroup.vimIdentifier, .inlinevimtyping.blackandwhite .syntaxgroup.vimIdentifier, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimFunction], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimFunction], .vimtyping.blackandwhite .syntaxgroup.vimFunction, .inlinevimtyping.blackandwhite .syntaxgroup.vimFunction { } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStatement], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStatement], .vimtyping.blackandwhite .syntaxgroup.vimStatement, .inlinevimtyping.blackandwhite .syntaxgroup.vimStatement, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimCondition], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimCondition], .vimtyping.blackandwhite .syntaxgroup.vimCondition, .inlinevimtyping.blackandwhite .syntaxgroup.vimCondition, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimRepeat], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimRepeat], .vimtyping.blackandwhite .syntaxgroup.vimRepeat, .inlinevimtyping.blackandwhite .syntaxgroup.vimRepeat, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimLabel], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimLabel], .vimtyping.blackandwhite .syntaxgroup.vimLabel, .inlinevimtyping.blackandwhite .syntaxgroup.vimLabel, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimOperator], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimOperator], .vimtyping.blackandwhite .syntaxgroup.vimOperator, .inlinevimtyping.blackandwhite .syntaxgroup.vimOperator, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimKeyword], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimKeyword], .vimtyping.blackandwhite .syntaxgroup.vimKeyword, .inlinevimtyping.blackandwhite .syntaxgroup.vimKeyword, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimException], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimException], .vimtyping.blackandwhite .syntaxgroup.vimException, .inlinevimtyping.blackandwhite .syntaxgroup.vimException { font-weight:bold; } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreProc], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreProc], .vimtyping.blackandwhite .syntaxgroup.vimPreProc, .inlinevimtyping.blackandwhite .syntaxgroup.vimPreProc, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimInclude], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimInclude], .vimtyping.blackandwhite .syntaxgroup.vimInclude, .inlinevimtyping.blackandwhite .syntaxgroup.vimInclude, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDefine], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDefine], .vimtyping.blackandwhite .syntaxgroup.vimDefine, .inlinevimtyping.blackandwhite .syntaxgroup.vimDefine, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimMacro], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimMacro], .vimtyping.blackandwhite .syntaxgroup.vimMacro, .inlinevimtyping.blackandwhite .syntaxgroup.vimMacro, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreCondit], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreCondit], .vimtyping.blackandwhite .syntaxgroup.vimPreCondit, .inlinevimtyping.blackandwhite .syntaxgroup.vimPreCondit { font-weight:bold; } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimType], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimType], .vimtyping.blackandwhite .syntaxgroup.vimType, .inlinevimtyping.blackandwhite .syntaxgroup.vimType, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStorageClass], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStorageClass], .vimtyping.blackandwhite .syntaxgroup.vimStorageClass, .inlinevimtyping.blackandwhite .syntaxgroup.vimStorageClass, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStructure], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStructure], .vimtyping.blackandwhite .syntaxgroup.vimStructure, .inlinevimtyping.blackandwhite .syntaxgroup.vimStructure, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimTypedef], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimTypedef], .vimtyping.blackandwhite .syntaxgroup.vimTypedef, .inlinevimtyping.blackandwhite .syntaxgroup.vimTypedef { font-weight:bold; } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecial], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecial], .vimtyping.blackandwhite .syntaxgroup.vimSpecial, .inlinevimtyping.blackandwhite .syntaxgroup.vimSpecial, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialChar], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialChar], .vimtyping.blackandwhite .syntaxgroup.vimSpecialChar, .inlinevimtyping.blackandwhite .syntaxgroup.vimSpecialChar, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDelimiter], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDelimiter], .vimtyping.blackandwhite .syntaxgroup.vimDelimiter, .inlinevimtyping.blackandwhite .syntaxgroup.vimDelimiter, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDebug], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDebug], .vimtyping.blackandwhite .syntaxgroup.vimDebug, .inlinevimtyping.blackandwhite .syntaxgroup.vimDebug { } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimComment], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimComment], .vimtyping.blackandwhite .syntaxgroup.vimComment, .inlinevimtyping.blackandwhite .syntaxgroup.vimComment, vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialComment], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialComment], .vimtyping.blackandwhite .syntaxgroup.vimSpecialComment, .inlinevimtyping.blackandwhite .syntaxgroup.vimSpecialComment { font-style:italic; } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimIgnore], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimIgnore], .vimtyping.blackandwhite .syntaxgroup.vimIgnore, .inlinevimtyping.blackandwhite .syntaxgroup.vimIgnore { } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimTodo], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimTodo], .vimtyping.blackandwhite .syntaxgroup.vimTodo, .inlinevimtyping.blackandwhite .syntaxgroup.vimTodo { border:0.6px solid; } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimError], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimError], .vimtyping.blackandwhite .syntaxgroup.vimError, .inlinevimtyping.blackandwhite .syntaxgroup.vimError { text-decoration:line-through; } vimtyping[detail=blackandwhite] syntaxgroup[defail=vimUnderlined], inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimUnderlined], .vimtyping.blackandwhite .syntaxgroup.vimUnderlined, .inlinevimtyping.blackandwhite .syntaxgroup.vimUnderlined { text-decoration:underline; } context-modules-20240428/tex/context/third/vim/t-syntax-highlight.mkiv0000644000175000017500000002076214156205526024721 0ustar hillehille%D \module %D [ file=t-syntax-highlight, %D version=2021.12.13, %D title=\CONTEXT\ User Module, %D subtitle=Code syntax highlighting, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Code syntax highlighting (ver: 2021.12.13)} \startmodule [syntax-highlight] \usemodule [syntax-groups] \usemodule [filter] % loads module-catcodes \unprotectmodulecatcodes \startinterface all \setinterfaceconstant {syntax} {syntax} \setinterfaceconstant {highlight} {highlight} \setinterfaceconstant {highlightcolor} {highlightcolor} \stopinterface %D Name space \definenamespace [syntaxhighlighting] [\c!type=module, \c!name=syntaxhighlighting, \c!command=\v!yes, setup=\v!list, \c!style=\v!no, \s!parent=syntaxhighlighting] \appendtoks \defineexternalfilter[\currentsyntaxhighlighting] [\s!parent=\????syntaxhighlighting\currentexternalfilter, \c!taglabel=\vimtyping@id, \c!tagdetail={\externalfilterparameter\c!alternative}, ]% \normalexpanded{\definelinenumbering [\currentsyntaxhighlighting]}% \setevalue{type\currentsyntaxhighlighting file}{\getvalue{process\currentsyntaxhighlighting file}}% \to\everydefinesyntaxhighlighting \define[1]\syntaxhighlighting@set_linenumbers {\def\syntaxhighlighting@linenumbering{\getvalue{current#1}}% \def\syntaxhighlighting@parameter{\getvalue{#1parameter}}% \normalexpanded{\setuplinenumbering[\syntaxhighlighting@linenumbering] [ \c!method=\syntaxhighlighting@parameter{\c!number\c!method}, \c!conversion=\syntaxhighlighting@parameter\c!numberconversion, \c!location=\syntaxhighlighting@parameter{\c!number\c!location}, \c!style=\syntaxhighlighting@parameter\c!numberstyle, \c!color=\syntaxhighlighting@parameter\c!numbercolor, \c!width=\syntaxhighlighting@parameter{\c!number\c!width}, \c!left=\syntaxhighlighting@parameter{\c!number\c!left}, \c!right=\syntaxhighlighting@parameter{\c!number\c!right}, \c!command=\syntaxhighlighting@parameter\c!numbercommand, \c!distance=\syntaxhighlighting@parameter{\c!number\c!distance}, \c!align=\syntaxhighlighting@parameter{\c!number\c!align}, ]}} \appendtoks \syntaxhighlighting@set_linenumbers\syntaxhighlighting@id \to\everysetupsyntaxhighlighting \def\syntaxhighlighting@id {syntaxhighlighting} %D Helper macro \def\syntaxhighlighting@yes{\v!yes,\v!on} \startsetups syntaxhighlighting@setup \edef\currentsyntaxhighlighting{\currentexternalfilter} \edef\colorscheme@name{\externalfilterparameter\c!alternative} \let\SYN\syntaxgroup \edef\HGL{\externalfilterparameter{\c!highlight\c!command}} \let\\\textbackslash \let\{\textbraceleft \let\}\textbraceright \let\SYNBOL\donothing \let\SYNEOL\donothing \setupbar[syntaxhighlightline][color=\externalfilterparameter\c!highlightcolor] \def\tab##1% {\dorecurse{##1}{\obeyedspace}}% \forgetall \the\everyinitializeverbatim \usealignparameter\externalfilterparameter \doifinset{\v!packed}{\externalfilterparameter\c!option} {\setupwhitespace[\v!none,\v!flexible]}% \doadaptleftskip{\externalfilterparameter\c!margin}% \doifinsetelse{\v!hyphenated}{\externalfilterparameter\c!option} {\setbreakpoints[compound]} {\language\minusone \resetbreakpoints}% \def\obeyedline{\strut\par}% \activatespacehandler{\????syntaxhighlighting\externalfilterparameter\c!space:\externalfilterparameter\c!lines} \setcatcodetable\externalfilter@minimal_catcodes% \letcharcode\endoflineasciicode\obeyedline \letcharcode\spaceasciicode\obeyedspace \raggedright \stopsetups \starttexdefinition syntaxhighlighting@read_command #1 \syntaxhighlighting@linenumbering_start \ReadFile{#1} \syntaxhighlighting@linenumbering_stop \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_start \doifinsetelse{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\let\SYNBOL=\syntaxhighlighting_begin_number_lines \let\SYNEOL=\syntaxhighlighting_end_number_lines \startlinenumbering [\currentsyntaxhighlighting] [ \c!method=\v!type, \c!start=\externalfilterparameter{\c!number\c!start}, \c!step=\externalfilterparameter{\c!number\c!step}, \c!continue=\externalfilterparameter{\c!number\c!continue}, ]} {\let\SYNBOL=\syntaxhighlighting_begin_lines \let\SYNEOL=\syntaxhighlighting_end_lines} \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_stop \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\stoplinenumbering} \stoptexdefinition \newcount\nofsyntaxhighlightinglines \starttexdefinition syntaxhighlighting_begin_lines \dostarttaggednodetail\t!verbatimline \stoptexdefinition \starttexdefinition syntaxhighlighting_end_lines \dostoptagged \stoptexdefinition \starttexdefinition syntaxhighlighting_begin_number_lines \global\advance\nofsyntaxhighlightinglines\plusone \dostarttaggednodetail\t!verbatimline \attribute\verbatimlineattribute\nofsyntaxhighlightinglines \stoptexdefinition \starttexdefinition syntaxhighlighting_end_number_lines \attribute\verbatimlineattribute\attributeunsetvalue \dostoptagged \stoptexdefinition \setupsyntaxhighlighting [\c!tab=4, \c!space=\v!off, \c!lines=\v!fixed, \c!margin=\zeropoint, \c!start=1, \c!stop=0, % \c!syntax=context, \c!alternative=pscolor, \c!before=, \c!after=, \c!spacebefore=\v!none, \c!spaceafter=\v!none, \c!location=\v!paragraph, \c!style=\tttf, \c!color=, \c!align={\v!flushleft,\v!nothyphenated}, \c!filtercommand=echo, % placeholder \c!continue=yes, \c!read=\v!yes, \c!readcommand=\syntaxhighlighting@read_command, \c!output=\externalfilterinputfile, % placeholder \c!setups=syntaxhighlighting@setup, \c!option=\v!packed, % \v!hyphenated \s!parent=\????externalfilter, % Numbering options \c!numbering=\v!no, \c!number\c!start=1, \c!number\c!step=1, \c!number\c!continue=\v!no, \c!numberconversion=\v!numbers, \c!number\c!method=\v!type, \c!number\c!location=\v!left, \c!numberstyle=\ttx, \c!numbercolor=, \c!number\c!width=2em, \c!number\c!left=, \c!number\c!right=, \c!numbercommand=, \c!number\c!distance=0.5em, \c!number\c!align=\v!flushright, %Highlight options \c!highlight=, \c!highlightcolor=lightgray, \c!highlight\c!command=\syntaxhighlightline, ] % Space handler % Invisible space, don't split \installspacemethod {\????syntaxhighlighting\v!off:\v!fixed} {\def\obeyedspace{\mathortext\normalspace\explicitfixedspace}} % Invisible space, allow split \installspacemethod {\????syntaxhighlighting\v!off:\v!split} {\def\obeyedspace{\mathortext\normalspace\explicitobeyedspace}} % Visible space, don't split \installspacemethod {\????syntaxhighlighting\v!on:\v!fixed} {\def\obeyedspace{\mathortext\normalspace\optionalcontrolspace}} % Visible space, allow split \installspacemethod {\????syntaxhighlighting\v!on:\v!split} {\def\obeyedspace{\mathortext\normalspace\explicitcontrolspace}} % Default: line=empty \installspacemethod {\????syntaxhighlighting\v!off:} {\activatespacehandler {\????syntaxhighlighting\v!off:\v!fixed}} \installspacemethod {\????syntaxhighlighting\v!on} {\activatespacehandler {\????syntaxhighlighting\v!on:\v!fixed}} % space=empty, line=something \installspacemethod {\????syntaxhighlighting:\v!fixed} {\activatespacehandler {\????syntaxhighlighting\v!off:\v!fixed}} \installspacemethod {\????syntaxhighlighting:\v!split} {\activatespacehandler {\????syntaxhighlighting\v!off:\v!split}} % Both empty \installspacemethod {\????syntaxhighlighting:} {\activatespacehandler {\????syntaxhighlighting\v!off:\v!fixed}} \definebar[syntaxhighlightline] [\c!order=\v!background, \c!rulethickness=2.5, \c!method=0, \c!offset=1.375, \c!continue=\v!yes, \c!color=\externalfilterparameter\c!highlightcolor, ] % For backward compatibility \def\syntaxhighlighting@namespace {\????syntaxhighlighting} \def\syntaxhighlighting@name {\currentsyntaxhighlighting} \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/vim/t-syntax-groups.mkiv0000644000175000017500000000766714115502470024273 0ustar hillehille%D \module %D [ file=t-syntax-groups, %D version=2021.09.05, %D title=\CONTEXT\ User Module, %D subtitle=Syntax highlighting support, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Syntax highlighting groups (ver: 2021.09.05)} \startmodule [syntax-group] \usemodule [module-catcodes] \unprotectmodulecatcodes \def\colorscheme@name {} \def\syntaxgroup@id {syntaxgroup} \def\syntaxgroup@namespace {@@@@\syntaxgroup@id} \def\syntaxgroup@name {} \edef\t!vimsyntaxgroup {\syntaxgroup@id} \setelementbackendtag[\t!vimsyntaxgroup] \setelementnature [\t!vimsyntaxgroup][inline] \installparameterhandler \syntaxgroup@namespace \syntaxgroup@id \installsetuphandler \syntaxgroup@namespace \syntaxgroup@id \installstyleandcolorhandler \syntaxgroup@namespace \syntaxgroup@id \def\m!syntaxgroup{t-syntax-group} \def\definesyntaxgroup {\dodoubleargument\syntaxgroup@define} \starttexdefinition syntaxgroup@define [#1][#2] % #1 list name % #2 options \doifassignmentelse{#2} { \def\syntaxgroup@get_parameters##1% { \edef\syntaxgroup@name {\colorscheme@name##1} \setupsyntaxgroup[\syntaxgroup@name] [\s!parent=\syntaxgroup@namespace,\c!color=,\c!style=,\c!command=,#2] \doifsomething{\syntaxgroupparameter\c!color} { \expanded{\definecolor[\syntaxgroup@namespace-\syntaxgroup@name-color] [\syntaxgroupparameter\c!color]}% \expanded{\setupsyntaxgroup[\syntaxgroup@name][\s!parent=\syntaxgroup@namespace,\c!color=\syntaxgroup@namespace-\syntaxgroup@name-color]}% } } }{ \def\syntaxgroup@get_parameters##1% { \edef\syntaxgroup@name {\colorscheme@name##1} \expanded{\setupsyntaxgroup[\syntaxgroup@name] [\c!color=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!color, \c!style=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!style, \c!command=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!command, ]} % In MkII, \expanded messes up the definition of \currentsyntaxgroup \def\currentsyntaxgroup {\syntaxgroup@name} } } \processcommalist[#1]\syntaxgroup@get_parameters \stoptexdefinition \def\startcolorscheme% {\dosingleargument\colorscheme@start} \starttexdefinition colorscheme@start [#1] \pushmacro\colorscheme@name \setcolorscheme{#1} %\setupsyntaxgroup[\c!color=,\c!style=,\c!command=] \stoptexdefinition \def\stopcolorscheme {\popmacro\colorscheme@name} \def\setcolorscheme#1% {\edef\colorscheme@name{#1}} \starttexdefinition syntaxgroup [#1]#2 % #1 = style % #2 = content \begingroup \edef\syntaxgroup@name{\colorscheme@name#1}% \syntaxgroupparameter\c!before \iftracesyntaxgroups \syntaxgroup@show_values \fi \dostarttagged\t!vimsyntaxgroup{vim#1} \syntaxgroupparameter\c!command { \externalfilter@attributes_start\syntaxgroup@id\c!style\c!color #2 \externalfilter@attributes_stop } \dostoptagged \syntaxgroupparameter\c!after \endgroup \stoptexdefinition %D Tracing macros \newif\iftracesyntaxgroups \let\tracesyntaxgroups\tracesyntaxgroupstrue \def\currentsyntaxgroup {\syntaxgroup@name} \starttexdefinition syntaxgroup@show_values \writestatus\m!syntaxgroup{color scheme : \colorscheme@name} \writestatus\m!syntaxgroup{current group: \syntaxgroup@name} \writestatus\m!syntaxgroup{command : \syntaxgroupparameter\c!command} \writestatus\m!syntaxgroup{style : \syntaxgroupparameter\c!style} \writestatus\m!syntaxgroup{color : \syntaxgroupparameter\c!color} \stoptexdefinition \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/vim/t-syntax-highlight.mkxl0000644000175000017500000002102614156205526024720 0ustar hillehille%D \module %D [ file=t-syntax-highlight, %D version=2021.12.13, %D title=\CONTEXT\ User Module, %D subtitle=Code syntax highlighting, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Code syntax highlighting (ver: 2021.12.13)} \startmodule [syntax-highlight] \usemodule [syntax-groups] \usemodule [filter] % loads module-catcodes \unprotectmodulecatcodes \startinterface all \setinterfaceconstant {syntax} {syntax} \setinterfaceconstant {highlight} {highlight} \setinterfaceconstant {highlightcolor} {highlightcolor} \stopinterface %D Name space \definenamespace [syntaxhighlighting] [\c!type=module, \c!name=syntaxhighlighting, \c!command=\v!yes, setup=\v!list, \c!style=\v!no, \s!parent=syntaxhighlighting] \appendtoks \defineexternalfilter[\currentsyntaxhighlighting] [\s!parent=\????syntaxhighlighting\currentexternalfilter, \c!taglabel=\vimtyping@id, \c!tagdetail={\externalfilterparameter\c!alternative}, ]% \normalexpanded{\definelinenumbering [\currentsyntaxhighlighting]}% \setevalue{type\currentsyntaxhighlighting file}{\getvalue{process\currentsyntaxhighlighting file}}% \to\everydefinesyntaxhighlighting \define[1]\syntaxhighlighting@set_linenumbers {\def\syntaxhighlighting@linenumbering{\getvalue{current#1}}% \def\syntaxhighlighting@parameter{\getvalue{#1parameter}}% \normalexpanded{\setuplinenumbering[\syntaxhighlighting@linenumbering] [ \c!method=\syntaxhighlighting@parameter{\c!number\c!method}, \c!conversion=\syntaxhighlighting@parameter\c!numberconversion, \c!location=\syntaxhighlighting@parameter{\c!number\c!location}, \c!style=\syntaxhighlighting@parameter\c!numberstyle, \c!color=\syntaxhighlighting@parameter\c!numbercolor, \c!width=\syntaxhighlighting@parameter{\c!number\c!width}, \c!left=\syntaxhighlighting@parameter{\c!number\c!left}, \c!right=\syntaxhighlighting@parameter{\c!number\c!right}, \c!command=\syntaxhighlighting@parameter\c!numbercommand, \c!distance=\syntaxhighlighting@parameter{\c!number\c!distance}, \c!align=\syntaxhighlighting@parameter{\c!number\c!align}, ]}} \appendtoks \syntaxhighlighting@set_linenumbers\syntaxhighlighting@id \to\everysetupsyntaxhighlighting \def\syntaxhighlighting@id {syntaxhighlighting} %D Helper macro \def\syntaxhighlighting@yes{\v!yes,\v!on} \startsetups syntaxhighlighting@setup \edef\currentsyntaxhighlighting{\currentexternalfilter} \edef\colorscheme@name{\externalfilterparameter\c!alternative} \let\SYN\syntaxgroup \edef\HGL{\externalfilterparameter{\c!highlight\c!command}} \let\\\textbackslash \let\{\textbraceleft \let\}\textbraceright \let\SYNBOL\donothing \let\SYNEOL\donothing \setupbar[syntaxhighlightline][color=\externalfilterparameter\c!highlightcolor] \def\tab##1% {\dorecurse{##1}{\obeyedspace}}% \forgetall \the\everyinitializeverbatim \usealignparameter\externalfilterparameter \doifinset{\v!packed}{\externalfilterparameter\c!option} {\setupwhitespace[\v!none,\v!flexible]}% \doadaptleftskip{\externalfilterparameter\c!margin}% % FIXME: after looking at hyphenation settings %\doifinsetelse{\v!hyphenated}{\externalfilterparameter\c!option} % {\setbreakpoints[compound]} % {\language\minusone % \resetbreakpoints}% \def\obeyedline{\strut\par}% \activatespacehandler{\????syntaxhighlighting\externalfilterparameter\c!space:\externalfilterparameter\c!lines} \setcatcodetable\externalfilter@minimal_catcodes% \letcharcode\endoflineasciicode\obeyedline \letcharcode\spaceasciicode\obeyedspace \raggedright \stopsetups \starttexdefinition syntaxhighlighting@read_command #1 \syntaxhighlighting@linenumbering_start \ReadFile{#1} \syntaxhighlighting@linenumbering_stop \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_start \doifinsetelse{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\let\SYNBOL=\syntaxhighlighting_begin_number_lines \let\SYNEOL=\syntaxhighlighting_end_number_lines \startlinenumbering [\currentsyntaxhighlighting] [ \c!method=\v!type, \c!start=\externalfilterparameter{\c!number\c!start}, \c!step=\externalfilterparameter{\c!number\c!step}, \c!continue=\externalfilterparameter{\c!number\c!continue}, ]} {\let\SYNBOL=\syntaxhighlighting_begin_lines \let\SYNEOL=\syntaxhighlighting_end_lines} \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_stop \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\stoplinenumbering} \stoptexdefinition \newcount\nofsyntaxhighlightinglines \starttexdefinition syntaxhighlighting_begin_lines \dostarttaggednodetail\t!verbatimline \stoptexdefinition \starttexdefinition syntaxhighlighting_end_lines \dostoptagged \stoptexdefinition \starttexdefinition syntaxhighlighting_begin_number_lines \global\advance\nofsyntaxhighlightinglines\plusone \dostarttaggednodetail\t!verbatimline \attribute\verbatimlineattribute\nofsyntaxhighlightinglines \stoptexdefinition \starttexdefinition syntaxhighlighting_end_number_lines \attribute\verbatimlineattribute\attributeunsetvalue \dostoptagged \stoptexdefinition \setupsyntaxhighlighting [\c!tab=4, \c!space=\v!off, \c!lines=\v!fixed, \c!margin=\zeropoint, \c!start=1, \c!stop=0, % \c!syntax=context, \c!alternative=pscolor, \c!before=, \c!after=, \c!spacebefore=\v!none, \c!spaceafter=\v!none, \c!location=\v!paragraph, \c!style=\tttf, \c!color=, \c!align={\v!flushleft}, \c!filtercommand=echo, % placeholder \c!continue=yes, \c!read=\v!yes, \c!readcommand=\syntaxhighlighting@read_command, \c!output=\externalfilterinputfile, % placeholder \c!setups=syntaxhighlighting@setup, \c!option=\v!packed, % \v!hyphenated \s!parent=\????externalfilter, % Numbering options \c!numbering=\v!no, \c!number\c!start=1, \c!number\c!step=1, \c!number\c!continue=\v!no, \c!numberconversion=\v!numbers, \c!number\c!method=\v!type, \c!number\c!location=\v!left, \c!numberstyle=\ttx, \c!numbercolor=, \c!number\c!width=2em, \c!number\c!left=, \c!number\c!right=, \c!numbercommand=, \c!number\c!distance=0.5em, \c!number\c!align=\v!flushright, %Highlight options \c!highlight=, \c!highlightcolor=lightgray, \c!highlight\c!command=\syntaxhighlightline, ] % Space handler % Invisible space, don't split \installspacemethod {\????syntaxhighlighting\v!off:\v!fixed} {\def\obeyedspace{\mathortext\normalspace\explicitfixedspace}} % Invisible space, allow split \installspacemethod {\????syntaxhighlighting\v!off:\v!split} {\def\obeyedspace{\mathortext\normalspace\explicitobeyedspace}} % Visible space, don't split \installspacemethod {\????syntaxhighlighting\v!on:\v!fixed} {\def\obeyedspace{\mathortext\normalspace\optionalcontrolspace}} % Visible space, allow split \installspacemethod {\????syntaxhighlighting\v!on:\v!split} {\def\obeyedspace{\mathortext\normalspace\explicitcontrolspace}} % Default: line=empty \installspacemethod {\????syntaxhighlighting\v!off:} {\activatespacehandler {\????syntaxhighlighting\v!off:\v!fixed}} \installspacemethod {\????syntaxhighlighting\v!on} {\activatespacehandler {\????syntaxhighlighting\v!on:\v!fixed}} % space=empty, line=something \installspacemethod {\????syntaxhighlighting:\v!fixed} {\activatespacehandler {\????syntaxhighlighting\v!off:\v!fixed}} \installspacemethod {\????syntaxhighlighting:\v!split} {\activatespacehandler {\????syntaxhighlighting\v!off:\v!split}} % Both empty \installspacemethod {\????syntaxhighlighting:} {\activatespacehandler {\????syntaxhighlighting\v!off:\v!fixed}} \definebar[syntaxhighlightline] [\c!order=\v!background, \c!rulethickness=2.5, \c!method=0, \c!offset=1.375, \c!continue=\v!yes, \c!color=\externalfilterparameter\c!highlightcolor, ] % For backward compatibility \def\syntaxhighlighting@namespace {\????syntaxhighlighting} \def\syntaxhighlighting@name {\currentsyntaxhighlighting} \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/cyrillicnumbers/0000755000175000017500000000000014613513620022674 5ustar hillehillecontext-modules-20240428/tex/context/third/cyrillicnumbers/t-cyrillicnumbers.mkii0000644000175000017500000000024212132362214027207 0ustar hillehille\writestatus{loading}{Cyrillic Number Support for ConTeXt} \writestatus{ERROR} {The module “Cyrillic Numbers” does not support ConTeXt MkII.} \bye \endinput context-modules-20240428/tex/context/third/cyrillicnumbers/t-cyrillicnumbers.mkvi0000644000175000017500000004323112132362214027231 0ustar hillehille%D \module %D [ file=t-cyrillicnumbers.mkvi, %D version=2013-03-28 00:11:33+0100, %D title=\CONTEXT\ User Module, %D subtitle=Cyrillic Numbers, %D author=Philipp Gesang, %D date=\currentdate, %D copyright=Philipp Gesang, %D license=2-clause BSD, %D email={phg42 dot 2a at gmail dot com}] %D This module is licensed under the conditions of the BSD license with %D two clauses. There is a copy in a file named "COPYING" in the %D t-cyrillicnumbers source tree. %M \definehead[docsection] [chapter] %M \setuphead [docsection] [page=no,style=\tf\bold\WORD,color=darkmagenta,alternative=inmargin,before={\blank[3*line]}] %M \definehead[doctitle] [coupling=docsection,default=docsection,incrementnumber=no,page=no] %M \setuplist [docsection] [alternative=b,textstyle=\tf] %M \setupinteraction[focus=standard,color=darkmagenta] %D \doctitle{Overview}\placelist[docsection][criterium=all]\page[yes] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D \docsection{Global strings and namespace initialization} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \writestatus{loading}{Cyrillic Number Support for ConTeXt} \unprotect \startinterface all \setinterfacevariable {cyrillicnumerals} {cyrillicnumerals} \setinterfacevariable {Cyrillicnumerals} {Cyrillicnumerals} \setinterfacevariable {cyrnum} {cyrnum} \setinterfacevariable {dots} {dots} \setinterfacevariable {dotsymbol} {dotsymbol} \setinterfacevariable {penwidth} {penwidth} \setinterfacevariable {preferhundredk} {preferhundredk} \setinterfacevariable {titlolocation} {titlolocation} \setinterfacevariable {titlocolor} {titlocolor} \setinterfacevariable {titlomode} {titlomode} \setinterfacevariable {titlospan} {titlospan} \setinterfacevariable {titlo} {titlo} \stopinterface \definenamespace [cyrnum] [ \v!command=\v!yes, comment=cyrillic numbers, \s!name=\v!cyrnum, \s!parent=\v!cyrnum, setup=\v!list, style=\v!no, type=module, version=hg-tip, ] %D Loading the \LUA\ conversion routines. \registerctxluafile{cyrillicnumbers} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D \docsection{Setup command} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D The\reference[setupdef]{} autogenerated setup command needs to %D be extended to pass values on to the \LUA\ end. \def\cyrnumsetvariables{% \startluacode local tc = thirddata.cyrnum tc.placetitlo = "\cyrnumparameter{\v!titlo}" tc.titlolocation = tc.position_synonyms["\cyrnumparameter{\v!titlolocation}"] or "f" tc.prefer100k = tc. yes_synonyms["\cyrnumparameter{\v!preferhundredk}"] or false tc.drawdots = tc. yes_synonyms["\cyrnumparameter{\v!dots}"] or false tc.dotsymbol = "\luaescapestring{\cyrnumparameter{\v!dotsymbol}}" local span = "\cyrnumparameter{\v!titlospan}" local num = tonumber(span) if num then tc.titlotype = true tc.titlospan = num elseif span == "all" then tc.titlotype = false end \stopluacode% } \appendtoks \setuevalue{\currentcyrnum}{\cyrnum_cmd[\currentcyrnum]} \to \everydefinecyrnum \appendtoks \cyrnumsetvariables \to \everysetupcyrnum %D This allows the module to be loaded with a second set of %D key-value arguments. If initialized as follows, additional debug %D information will be output on the terminal. %D %D \starttyping %D \usemodule[cyrillicnumbers][test=yes] %D \stoptyping \startmoduletestsection \ctxlua{thirddata.cyrnum.debug = true} \stopmoduletestsection %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D \docsection{Titlo variants} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D The {\em Cyrillic Numbers} module allows the titlo, if requested, %D to be drawn in two different ways. If the setup parameter %D \type{titlo} has the value {\em mp}, then the variant employing %D \METAPOST\ is selected. As there are a couple of different %D styles, it will be necessary that the user determine one by %D setting the parameter \type{titlomode} to an integer. %D Additionally it is possible to manipulate the pen width that %D \METAPOST\ uses when executing the titlo code. {\em NB} as the %D drawing routines differ, the \type{penwidth} parameter lead to %D different results with different modes as well, ymmv. %D %D \starttyping %D \setupcyrnum[ %D titlo=mp, %D titlomode=4, %D penwidth=4, %D ] %D \stoptyping \startuniqueMPgraphic{cyrnum-titlo1} path titlo ; save High, Low ; save Vfactor ; Vfactor = .15 ; save Hfactor ; Hfactor = .90 ; titlo := ( 0.00, -Vfactor) .. ( 0.05, .4*Vfactor) .. ( 0.95, -.4*Vfactor) .. ( 1.00, Vfactor) ; pickup pensquare yscaled \cyrnumparameter{penwidth} xscaled 1 rotated -30 ; draw titlo xysized (Hfactor*OverlayWidth,Vfactor*OverlayHeight) shifted (.5*(OverlayWidth-Hfactor*OverlayWidth),OverlayHeight-Vfactor*OverlayHeight) withcolor \MPcolor{\cyrnumparameter{titlocolor}}; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic \startuniqueMPgraphic{cyrnum-titlo2} path titlo ; save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .15 ; save Hfactor ; Hfactor = .80 ; titlo := ( 0.05, -Vfactor) -- ( 0.07, .7*Vfactor) .. ( 0.09, .8*Vfactor) .. ( 0.91, -.8*Vfactor) .. ( 0.93, -.7*Vfactor) -- ( 0.95, Vfactor) ; pickup pensquare yscaled penwidth xscaled 1 rotated 70 ; draw titlo xysized (Hfactor*OverlayWidth,Vfactor*OverlayHeight) shifted (.5*(OverlayWidth-Hfactor*OverlayWidth)-.5*penwidth,OverlayHeight-Vfactor*OverlayHeight) withcolor \MPcolor{\cyrnumparameter{titlocolor}}; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic \startuniqueMPgraphic{cyrnum-titlo3} path titlo ; save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .15 ; save Hfactor ; Hfactor = .80 ; titlo := ( 0.05, -Vfactor) -- ( 0.07, 0.70*Vfactor) .. ( 0.09, 0.90*Vfactor) .. { dir 00 } ( 0.49, -0.00*Vfactor) -- ( 0.49, -0.90*Vfactor) -- ( 0.51, 0.90*Vfactor) -- ( 0.51, 0.00*Vfactor) { dir 00 } .. ( 0.91, -0.90*Vfactor) .. ( 0.93, -0.70*Vfactor) -- ( 0.95, Vfactor) ; pickup pensquare yscaled penwidth xscaled 1 rotated 70 ; draw titlo xysized (Hfactor*OverlayWidth,Vfactor*OverlayHeight) shifted (.5*(OverlayWidth-Hfactor*OverlayWidth)-.5*penwidth,OverlayHeight-Vfactor*OverlayHeight) withcolor \MPcolor{\cyrnumparameter{titlocolor}}; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic %%% Same as 2 with inner vertical stroke \startuniqueMPgraphic{cyrnum-titlo4} path titlo, stroke ; save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .15 ; save Hfactor ; Hfactor = .80 ; titlo = ( 0.05, -1.00*Vfactor) -- ( 0.07, 0.70*Vfactor) .. ( 0.09, 0.90*Vfactor) { dir 00 } .. { dir 00 } ( 0.91, -0.90*Vfactor) .. ( 0.93, -0.70*Vfactor) -- ( 0.95, 1.00*Vfactor) ; stroke = ( 0.49*Hfactor*OverlayWidth+.5*penwidth, -0.30*Vfactor*OverlayHeight ) -- %% this is a mess ( 0.51*Hfactor*OverlayWidth+.5*penwidth, 0.50*Vfactor*OverlayHeight ) ; pickup pensquare yscaled penwidth xscaled 1 rotated 80 ; draw titlo xysized (Hfactor*OverlayWidth,Vfactor*OverlayHeight) shifted (.5*(OverlayWidth-Hfactor*OverlayWidth)-.5*penwidth,OverlayHeight-Vfactor*OverlayHeight) withcolor \MPcolor{\cyrnumparameter{titlocolor}}; draw stroke % xysized (Hfactor*OverlayWidth,Vfactor*OverlayHeight) %% doesn’t work as expected somehow shifted (.5*(OverlayWidth-Hfactor*OverlayWidth)-.5*penwidth,OverlayHeight-Vfactor*OverlayHeight) withcolor \MPcolor{\cyrnumparameter{titlocolor}} ; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic \startuniqueMPgraphic{cyrnum-titlo5} path titlo ; save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .20 ; save Hfactor ; Hfactor = .75 ; titlo := ( 0.00, -0.8*Vfactor) {dir 90} .. {dir 90} ( 1.00, 1.2*Vfactor) ; pickup pensquare yscaled penwidth xscaled 2 rotated 85 ; draw titlo xysized (Hfactor*OverlayWidth-penwidth,Vfactor*OverlayHeight) shifted (.5*(OverlayWidth-Hfactor*OverlayWidth),OverlayHeight-Vfactor*OverlayHeight) withcolor \MPcolor{\cyrnumparameter{titlocolor}} ; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic \startuniqueMPgraphic{cyrnum-titlo6} path titlo ; save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .20 ; save Hfactor ; Hfactor = .85 ; titlo := ( 0.03, -0.80*Vfactor) -- ( 0.03, 0.15*Vfactor) -- ( 0.00, 0.20*Vfactor) {right} .. {right} ( 1.00, -0.20*Vfactor) -- ( 0.97, -0.15*Vfactor) -- ( 0.97, 0.80*Vfactor) ; pickup pensquare yscaled penwidth xscaled sqrt(2) rotated 90 ; draw titlo xysized (Hfactor*OverlayWidth-.5*penwidth,Vfactor*OverlayHeight) shifted (.5*(OverlayWidth-Hfactor*OverlayWidth),OverlayHeight-(0.5*Vfactor*OverlayHeight)) withcolor \MPcolor{\cyrnumparameter{titlocolor}} ; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic \startuniqueMPgraphic{cyrnum-titlo7} path titlo ; save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .20 ; save Hfactor ; Hfactor = .85 ; titlo := ( 0.05, -0.80*Vfactor) -- ( 0.05, -0.30*Vfactor) {up} .. {right} ( 0.07, -0.00*Vfactor) -- ( 0.93, 0.00*Vfactor) {right} .. {up} ( 0.95, 0.30*Vfactor) -- ( 0.95, 0.80*Vfactor) ; pickup pensquare yscaled (0.66*penwidth) xscaled penwidth ; draw titlo xysized (Hfactor*OverlayWidth-2*penwidth,Vfactor*OverlayHeight) shifted ((.5*penwidth+.5*(OverlayWidth-Hfactor*OverlayWidth)), (OverlayHeight-(0.7*Vfactor*OverlayHeight))) withcolor \MPcolor{\cyrnumparameter{titlocolor}} ; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic \startuniqueMPgraphic{cyrnum-titlo8} path titlo, stroke ; save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .20 ; save Hfactor ; Hfactor = .85 ; titlo := ( 0.15, -0.10*Vfactor) {dir 25} ..% tension 8 .. controls (0.40, 0.50) and (0.00, 0.35) .. ( 0.00, -0.00*Vfactor) {down} .. controls (0.00, -0.30) and (0.10, -0.25) .. % ( 0.10, -0.20*Vfactor) {right} .. tension 4 .. {dir -120} ( 0.30, -0.90*Vfactor) .. controls ( 0.70, 0.20*Vfactor) and ( 0.97, 0.08*Vfactor) .. ( 0.97, -0.30*Vfactor) .. tension 6 .. {dir -140} ( 0.95, -0.90*Vfactor) ; stroke := ((0.45*Hfactor*OverlayWidth),-0.20*Vfactor*OverlayHeight) .. ((0.54*Hfactor*OverlayWidth), 0.35*Vfactor*OverlayHeight) --- ((0.65*Hfactor*OverlayWidth), 0.90*Vfactor*OverlayHeight) {dir -120} .. {dir 30} % ((0.54*Hfactor*OverlayWidth), 0.35*Vfactor*OverlayHeight) .. ((0.45*Hfactor*OverlayWidth), 0.90*Vfactor*OverlayHeight) ; pickup pensquare yscaled 2 xscaled (0.5*penwidth) rotated 10; % pickup pensquare yscaled 1 xscaled 2 ; draw titlo xysized (Hfactor*OverlayWidth,Vfactor*OverlayHeight) shifted ((.5*(OverlayWidth-Hfactor*OverlayWidth)), (OverlayHeight-(0.7*Vfactor*OverlayHeight))) withcolor \MPcolor{\cyrnumparameter{titlocolor}} ; pickup pensquare yscaled 2 xscaled (0.5*penwidth) rotated 70; draw stroke % xysized (Hfactor*OverlayWidth,Vfactor*OverlayHeight) shifted ((.6*(OverlayWidth-Hfactor*OverlayWidth)), (OverlayHeight-Vfactor*OverlayHeight)) withcolor \MPcolor{\cyrnumparameter{titlocolor}} ; ; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic \startuniqueMPgraphic{cyrnum-titlo9} path titlo ; save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .10 ; save Hfactor ; Hfactor = .85 ; titlo := ( 0.05, -0.40*Vfactor) -- ( 0.05, 0.00*Vfactor) -- ( 0.95, 0.00*Vfactor) -- ( 0.95, -0.40*Vfactor) ; pickup pensquare yscaled (2*penwidth/3) xscaled penwidth ; draw titlo xysized (Hfactor*OverlayWidth-2*penwidth,Vfactor*OverlayHeight) shifted ((.5*penwidth+.5*(OverlayWidth-Hfactor*OverlayWidth)), (OverlayHeight-(0.7*Vfactor*OverlayHeight))) withcolor \MPcolor{\cyrnumparameter{titlocolor}} ; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic %D The \METAPOST\ titlo is drawn as an overlay which in turn %D serves as the background for a dedicated \type{\framed} macro. %D This titlo command is accessible in protected mode as %D \type{\cyrnumdrawtitlo}, which is also called by the %D \LUA\ functions. \defineoverlay[cyrnum-titlo-overlay1][\uniqueMPgraphic{cyrnum-titlo1}] \defineoverlay[cyrnum-titlo-overlay2][\uniqueMPgraphic{cyrnum-titlo2}] \defineoverlay[cyrnum-titlo-overlay3][\uniqueMPgraphic{cyrnum-titlo3}] \defineoverlay[cyrnum-titlo-overlay4][\uniqueMPgraphic{cyrnum-titlo4}] \defineoverlay[cyrnum-titlo-overlay5][\uniqueMPgraphic{cyrnum-titlo5}] \defineoverlay[cyrnum-titlo-overlay6][\uniqueMPgraphic{cyrnum-titlo6}] \defineoverlay[cyrnum-titlo-overlay7][\uniqueMPgraphic{cyrnum-titlo7}] \defineoverlay[cyrnum-titlo-overlay8][\uniqueMPgraphic{cyrnum-titlo8}] \defineoverlay[cyrnum-titlo-overlay9][\uniqueMPgraphic{cyrnum-titlo9}] \defineframed[cyrnum_titloframe][ location=low, frame=off, background=cyrnum-titlo-overlay\cyrnumparameter{titlomode}, ] %D \macros %D {cyrnumdrawtitlo} %D %D The macro \type{\cyrnumdrawtitlo} allows for arbitrary titlo %D placement which might be useful for other text elements besides %D plain numbers, e.~g. abbreviations {\italic\letterampersand}c. \let\cyrnumdrawtitlo\cyrnum_titloframe %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D \docsection{User level interface} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D \macros %D {definecyrnum} %D %D User interface to the main conversion routines. The definition %D macro autogenerates the primary user-level macro, which in turn %D relies \type{\setupcyrnum} for argument processing (see above on %D \at{page}[setupdef]). %D %D Example usage: %D %D \starttyping %D \definecyrnum[titlofree] %D \setupcyrnum [titlofree][titlo=no] %D \starttext %D \titlofree{42} %D \stoptext %D \stoptyping \unexpanded\def\cyrnum_cmd[#id]{% \edef\currentcyrnum{#id}% \dosingleempty\cyrnum_cmd_parms% } \def\cyrnum_cmd_parms[#parms]{% \begingroup \setupcyrnum[\currentcyrnum][#parms]% \cyrnumparameter{command}\begingroup \cyrnum_cmd_content% } \def\cyrnum_cmd_content#num{% \ctxcommand{cyrillicnumerals(\number#num)}% \endgroup \endgroup% } %D \macros %D {setupcyrnum} %D %D The \type{\setupcyrnum} and \type{\definecyrnum} macros are %D autogenerated via the namespace. \setupcyrnum[ \v!dots=\v!yes, % yes|no \v!dotsymbol=·, \v!penwidth=.66pt, \v!preferhundredk=no, \v!command=, \v!titlocolor=black, \v!titlolocation=\v!middle, % final|middle -- only effective if using the font’s titlo \v!titlomode=5, \v!titlospan=3, % n|all \v!titlo=\v!mp, % font|mp|no ] %D \macros %D {cyrnum} %D %D The default user macro is defined as \type{\cyrnum}. \definecyrnum[\v!cyrnum] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D \docsection{Conversion routines} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D \macros %D {cyrillicnumerals,Cyrillicnumerals} %D %D Conforming to the standard \CONTEXT\ naming scheme as employed %D with number conversion macros, we define two macros for use with %D conversions. As there is no definition for uppercase conversion, %D the macro \type{\Cyrillicnumerals} exists only for compatibility %D reasons. %D %D Also, we setup two corresponding conversions \type{cyr} and %D \type{Cyr} for use with e.g. enumerations, headings, counters %D {\italic\letterampersand}c. Instead of these predefined ones %D the user may consider defining a dedicated conversion routine %D for each purpose: %D \starttyping %D \definecyrnum [mycyrnum] [titlo=mp,titlomode=7,titlospan=all,penwidth=2] %D \defineconversion[myconversion][\mycyrnum] %D %D \setuphead[section][conversion=myconversion] %D \stoptyping \definecyrnum[\v!cyrillicnumerals] \definecyrnum[\v!Cyrillicnumerals] \defineconversion[cyrillicnumerals][\cyrillicnumerals] \defineconversion[Cyrillicnumerals][\Cyrillicnumerals] \defineconversion[cyr] [\cyrillicnumerals] \defineconversion[Cyr] [\Cyrillicnumerals] % \protect \endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Fun %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\peano#num{\ctxcommand{peanonumerals(\number#num)}} \defineconversion[peano][\peano] \def\church#num{\ctxcommand{churchnumerals(\number#num)}} \defineconversion[church][\church] \protect \endinput % vi:ft=context:fo=co:ts=2:expandtab:sw=2 context-modules-20240428/tex/context/third/cyrillicnumbers/cyrillicnumbers.lua0000644000175000017500000002271312132362214026605 0ustar hillehille#!/usr/bin/env texlua -------------------------------------------------------------------------------- -- FILE: cyrillicnumbers.lua -- USAGE: called by t-cyrillicnumbers.mkvi -- DESCRIPTION: part of the Cyrillic Numbers module for ConTeXt -- REQUIREMENTS: recent ConTeXt MkIV and LuaTeX -- AUTHOR: Philipp Gesang (phg), -- VERSION: hg tip -- CHANGED: 2013-03-28 00:10:47+0100 -------------------------------------------------------------------------------- -- --[[ldx--

read this first:

Жолобов, О. Ф.: Числительные. In: Историческая грамматика древнерусского языка, vol. 4, Moskva 2006, pp. 58--63

Trunte, Nikolaos H.: Altkirchenslavisch. In: Словѣньскъи ѩꙁъікъ. Ein praktisches Lehrbuch des Kirchenslavischen in 30 Lektionen. Zugleich eine Einführung in die slavische Philologie, vol. 1, München ⁵2005, pp. 161ff.

or have a glance at these:

http://www.pravpiter.ru/zads/n018/ta013.htm http://www.uni-giessen.de/partosch/eurotex99/berdnikov2.pdf http://ru.wikipedia.org/wiki/Кириллическая_система_счисления --ldx]]-- local iowrite = io.write local mathceil = math.ceil local mathfloor = math.floor local stringformat = string.format local tableconcat = table.concat local tableinsert = table.insert local tostring = tostring local type = type local utf8char = unicode.utf8.char local utf8len = unicode.utf8.len local cyrnum = { placetitlo = "font", prefer100k = false, titlolocation = "final", -- above final digit titlospan = 3, -- only with mp drawdots = true, debug = false, } thirddata = thirddata or { } thirddata.cyrnum = cyrnum local dbgpfx = "[cyrnum]" local dbg = function (...) if cyrnum.debug then local args = {...} if type(args[1]) == "table" then args = args[1] end iowrite(dbgpfx) for i=1, #args do local this = args[i] local tthis = type(this) iowrite" " if tthis == "number" or tthis == "string" then iowrite(this) else iowrite(tostring(this)) end end iowrite"\n" end end local cyrillic_numerals = { { "а", "в", "г", "д", "е", "ѕ", "з", "и", "ѳ", }, { "і", "к", "л", "м", "н", "ѯ", "о", "п", "ч", }, { "р", "с", "т", "у", "ф", "х", "ѱ", "ѡ", "ц", }, } local cyrillic_1k = "҂" local cyrillic_100k = utf8char(0x488) -- combining hundred thousands sign local cyrillic_1m = utf8char(0x489) -- combining million sign local cyrillic_titlo = utf8char(0x483) -- combining titlo --[[ldx--

Some string synonyms for user convenience.

--ldx]]-- cyrnum.yes_synonyms = { yes = true, yeah = true, ["true"] = true, } cyrnum.no_synonyms = { no = true, nope = true, ["false"] = true, } --[[ldx--

m for rounded down middle position, l for final position. Will default to initial position otherwise.

--ldx]]-- cyrnum.position_synonyms = { final = "l", last = "l", right = "l", rightmost = "l", ["false"] = "l", middle = "m", center = "m", ["true"] = "m", } --[[ldx--

Digits above the thirds require special markers, some of which need to be placed before, others after the determined character.

--ldx]]-- local handle_plus1k = function (digit) local before, after if digit == 7 then after = cyrillic_1m elseif cyrnum.prefer100k and digit == 6 then after = cyrillic_100k elseif digit > 3 then -- insert thousand sign before = cyrillic_1k end return before, after end -- digit list = { -- [1] = character to be printed -- [2] = real digit of character -- [3] = print this before character (e.g. thousand signs) -- [4] = print this after character (e.g. million signs) -- } --[[ldx--

The base list of digits denotes empty (zero) digits with "false" values instead of characters. The function digits_only will extract only the nonempty digit values, returning a list.

--ldx]]-- local digits_only = function (list) local result = { } for i=1, #list do local elm = list[i] if type(elm) == "string" then local before, after if i > 3 then before, after = handle_plus1k(i) end result[#result+1] = { elm, i, before, after } -- i contains the real digit end end return result end --[[ldx--

The different ways for drawing the titlo are stored inside a table. Basically, the options are to use the titlos symbol that is provided by the font or to draw the titlo in .

--ldx]]-- local lreverse = function(list)local r={}for i=#list,1,-1 do r[#r+1]=list[i]end return r end local start_titlo, stop_titlo = [[\cyrnumdrawtitlo{]], "}" local titlofuncs = { font = function (list) local result, titlopos = { }, #list if cyrnum.titlolocation == "l" then titlopos = 1 elseif cyrnum.titlolocation == "m" then titlopos = mathceil(#list/2) end for i=#list, 1, -1 do local char, digit, before, after = list[i][1], list[i][2], list[i][3], list[i][4] if before then result[#result+1] = before end result[#result+1] = char if after then result[#result+1] = after end if i == titlopos then result[#result+1] = cyrillic_titlo end end return result end, mp = function (list) local result = { } local titlospan = cyrnum.titlospan local titlotype = cyrnum.titlotype local titlostart = #list -- default to “all” if titlotype == true then -- number titlostart = (#list >= titlospan) and titlospan or #list end for i=#list, 1, -1 do local char, digit, before, after = list[i][1], list[i][2], list[i][3], list[i][4] --local char, digit, before, after = unpack(list[i]) if i == titlostart then result[#result+1] = start_titlo end if before then result[#result+1] = before end result[#result+1] = char if after then result[#result+1] = after end end result[#result+1] = stop_titlo return result end, no = function (list) local result = { } for i=#list, 1, -1 do local char, digit, before, after = list[i][1], list[i][2], list[i][3], list[i][4] if before then result[#result+1] = before end result[#result+1] = char if after then result[#result+1] = after end end return result end, } --[[ldx--

Concatenation of the digit list has to take into account different conditions: whether the user requests the dot markers to be added, whether a titlo is requested etc.

--ldx]]-- local concat_cyrillic_nums = function (list) local result = "" local digits = digits_only(list) -- strip placeholders local nlist, ndigits = #list, #digits dbg(list) --dbg(digits) local titlo = titlofuncs[cyrnum.placetitlo] if titlo then result = tableconcat(titlo(digits)) if cyrnum.drawdots then local sym = cyrnum.dotsymbol result = sym .. result .. sym end end dbg(result) return result end local do_tocyrillic do_tocyrillic = function (n, result) if n < 1000 then local mod100 = n % 100 if #result == 0 and mod100 > 10 and mod100 < 20 then result[#result+1] = "і" result[#result+1] = cyrillic_numerals[1][mod100%10] or false else result[#result+1] = cyrillic_numerals[1][mathfloor(n%10)] or false result[#result+1] = cyrillic_numerals[2][mathfloor((n%100)/10)] or false end result[#result+1] = cyrillic_numerals[3][mathfloor((n%1000)/100)] or false else result = do_tocyrillic(n%1000, result) result = do_tocyrillic(mathfloor(n/1000), result) end return result end local tocyrillic = function (n) local chars = do_tocyrillic(n, { }) return concat_cyrillic_nums(chars) end local Tocyrillic = function (n) local chars = do_tocyrillic(n, { }) return concat_cyrillic_nums(chars, true) end converters.tocyrillic = tocyrillic converters.cyrillicnumerals = tocyrillic converters.Cyrillicnumerals = Tocyrillic function commands.cyrillicnumerals (n) context(tocyrillic(n)) end function commands.Cyrillicnumerals (n) context(Tocyrillic(n)) end --- Fun --------------------------------------------------------- local f_peano = [[suc(%s)]] local do_topeano = function (n) n = tonumber(n) or 0 if n == 0 then return "0" end local result = stringformat(f_peano, 0) if n == 1 then return result end for i=2, n do result = stringformat(f_peano, result) end return result end local s_churchp = [[λf.λx.\;]] local s_church0 = [[x]] local s_church1 = [[f\,x]] local f_church = [[f(%s)]] local do_tochurch = function (n) if n == 0 then return s_churchp .. s_church0 elseif n == 1 then return s_churchp .. s_church1 end local result = stringformat(f_church, s_church1) for i=2, n do result = stringformat(f_church, result) end return s_churchp .. result end converters.topeano = do_topeano converters.tochurch = do_tochurch commands.peanonumerals = function (n) context(do_topeano(n)) end commands.churchnumerals = function (n) context.mathematics(do_tochurch(n)) end -- vim:ft=lua:ts=2:sw=2:expandtab:fo=croql context-modules-20240428/tex/context/third/handlecsv/0000755000175000017500000000000014613513620021435 5ustar hillehillecontext-modules-20240428/tex/context/third/handlecsv/t-handlecsv.tex0000644000175000017500000000211114541124246024364 0ustar hillehille%D \module %D [ file=t-handlecsv.tex, %D version=2023.12.20, %D title=HandleCSV module, %D subtitle=CSV file handling, %D author=Jaroslav Hajtmar, %D date=\currentdate, %D copyright=Jaroslav Hajtmar, %D email=hajtmar@gyza.cz, %D license=GNU General Public License] % %C Copyright (C) 2018 Jaroslav Hajtmar %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \usemodule[handlecsv.lua] \usemodule[handlecsv-extra.lua] \usemodule[handlecsv-tools.lua] context-modules-20240428/tex/context/third/handlecsv/t-handlecsv-extra.lua0000644000175000017500000001364413475311147025506 0ustar hillehille-- %D \module -- %D [ file=t-handlecsv-extra.lua, -- %D version=2019.05.27, -- %D title=HandleCSV extra, -- %D subtitle=CSV file analysis - extended functions and macros, -- %D author=Jaroslav Hajtmar, -- %D date=2019-05-27, -- %D copyright=Jaroslav Hajtmar, -- %D license=GNU General Public License] -- -- %C Copyright (C) 2019 Jaroslav Hajtmar -- %C -- %C This program is free software: you can redistribute it and/or modify -- %C it under the terms of the GNU General Public License as published by -- %C the Free Software Foundation, either version 3 of the License, or -- %C (at your option) any later version. -- %C -- %C This program is distributed in the hope that it will be useful, -- %C but WITHOUT ANY WARRANTY; without even the implied warranty of -- %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- %C GNU General Public License for more details. -- %C -- %C You should have received a copy of the GNU General Public License -- %C along with this program. If not, see . thirddata = thirddata or { } thirddata = thirddata or { } thirddata.handlecsv = thirddata.handlecsv or { -- next global variables } -- Initialize global variables etc. -- Utility and documentation function and macros function thirddata.handlecsv.addleadingcharacters(character, tonumberortext, width) -- Add leading characters to number to align with the width local strcharacter=tostring(character) local strnumberortext=tostring(tonumberortext) strnumberortext = string.rep(strcharacter, width-#strnumberortext)..strnumberortext return strnumberortext -- It returns a strange result unless the leading character is just one. end function thirddata.handlecsv.addleadingzeros(tonumberortext, width) -- Add leading zeros to number to align with the width return thirddata.handlecsv.addleadingcharacters(0, tonumberortext, width) end function thirddata.handlecsv.addzeros(tonumber) -- Add leading zeroes depending on the number of rows local width=string.len(tostring(thirddata.handlecsv.numrows())) return thirddata.handlecsv.addleadingzeros(tonumber, width) end -- function thirddata.handlecsv.cr_lines(s) -- return s:gsub('\r\n?', '\n'):gmatch('(.-)\n') -- end function thirddata.handlecsv.file2Array(filename) -- read CSV file into line array local linesarray={} for line in io.lines (filename) do linesarray[#linesarray+1]=line end return linesarray end function thirddata.handlecsv.writefileinreverseorder(inpfilename,outfilename) -- write CSV file into reverse order CSV file local tLines = thirddata.handlecsv.file2Array(inpfilename) local outfile = io.open(outfilename, "w") local ifrom=#tLines local ito=1 if thirddata.handlecsv.gCSVHeader then -- when CSV file is with header, then header line is first line outfile:write(tLines[1]) outfile:write("\r\n") ito=2 end for i = ifrom, ito, -1 do -- write rest of lines in reverse order outfile:write(tLines[i]) outfile:write("\r\n") end outfile:flush() outfile:close() end function thirddata.handlecsv.deletefile(filename) -- remove file from disk os.remove(filename) end function thirddata.handlecsv.varreverseorder(csvfilename) -- CSV file is stored in variable array gTableRows['csvfilename'][row][column] -- this function rearrange gTableRows into reverse order local templine={} for i = 1, math.floor(thirddata.handlecsv.gNumRows[csvfilename]/2) do templine=thirddata.handlecsv.gTableRows[csvfilename][i] thirddata.handlecsv.gTableRows[csvfilename][i]=thirddata.handlecsv.gTableRows[csvfilename][thirddata.handlecsv.gNumRows[csvfilename]-i+1] thirddata.handlecsv.gTableRows[csvfilename][thirddata.handlecsv.gNumRows[csvfilename]-i+1]=templine end end -- ConTeXt source: local string2print=[[% \def\addleading#1#2#3{\ctxlua{context(thirddata.handlecsv.addleadingcharacters('#1','#2','#3'))}} \def\addzeros#1#2{\ctxlua{context(thirddata.handlecsv.addleadingzeros('#1','#2'))}} \def\zeroed#1{\ctxlua{context(thirddata.handlecsv.addzeros('#1'))}} % \def\zeroedlineno{\ctxlua{context(string.rep( "0",(tostring(thirddata.handlecsv.numrows())):len() - (tostring(thirddata.handlecsv.linepointer())):len()) .. thirddata.handlecsv.linepointer())}}% from Pablo \def\zeroedlineno{\zeroed{\lineno}}% from Pablo (and simplified by him) \def\writefileinreverseorderfromto#1#2{\ctxlua{thirddata.handlecsv.writefileinreverseorder('#1','#2')}}% \def\writecurrfileinreverseorderto#1{\ctxlua{thirddata.handlecsv.writefileinreverseorder(thirddata.handlecsv.gCurrentlyProcessedCSVFile,'#1')}}% \def\deletefile#1{\ctxlua{thirddata.handlecsv.deletefile('#1')}}% \def\reverseorderof#1{\ctxlua{thirddata.handlecsv.varreverseorder('#1')}} \def\reverseorder{\ctxlua{thirddata.handlecsv.varreverseorder(thirddata.handlecsv.gCurrentlyProcessedCSVFile)}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Complete listing macros and commands that can be used (to keep track of all defined macros): %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \addleading{}{}{}, \addzeros{}{}, \zeroed{}, \zeroedlineno (from Pablo) % \writefileinreverseorderfromto{}{} % create file in reverse order of file % \writecurrfileinreverseorderto{} % create file in reverse order % \deletefile{} % close and delete file % \reverseorderof{} % reverse order of opened CSV file % \reverseorder % reverse order of currently processed CSV file %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ]] -- write definitions into ConTeXt: thirddata.handlecsv.string2context(string2print) context-modules-20240428/tex/context/third/handlecsv/t-handlecsv-tools.lua0000644000175000017500000001766313244110473025521 0ustar hillehille-- %D \module -- %D [ file=t-handlecsv-tools.lua, -- %D version=2015.07.08, -- %D title=HandleCSV tools, -- %D subtitle=CSV file analysis, -- %D author=Jaroslav Hajtmar, -- %D date=\currentdate, -- %D copyright=Jaroslav Hajtmar, -- %D license=GNU General Public License] -- -- %C Copyright (C) 2015 Jaroslav Hajtmar -- %C -- %C This program is free software: you can redistribute it and/or modify -- %C it under the terms of the GNU General Public License as published by -- %C the Free Software Foundation, either version 3 of the License, or -- %C (at your option) any later version. -- %C -- %C This program is distributed in the hope that it will be useful, -- %C but WITHOUT ANY WARRANTY; without even the implied warranty of -- %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- %C GNU General Public License for more details. -- %C -- %C You should have received a copy of the GNU General Public License -- %C along with this program. If not, see . -- use a feature that is part of the /texmf-dist/tex/context/base/util-prs.lua thirddata = thirddata or { } thirddata = thirddata or { } thirddata.handlecsv = thirddata.handlecsv or { -- next global variables } -- Initialize global variables etc. -- Utility and documentation function and macros function thirddata.handlecsv.csvreport(anyfilename) -- Listing report informations about opening a CSV file local actualopenfile=thirddata.handlecsv.gCurrentlyProcessedCSVFile thirddata.handlecsv.opencsvfile(anyfilename) local coldelim = thirddata.handlecsv.gUserCSVSeparator or "" local quot = thirddata.handlecsv.gUserCSVQuoter or "" local currcoldelim = thirddata.handlecsv.gCSVSeparator or "" local currquot = thirddata.handlecsv.gCSVQuoter or "" infomakra=[[\crlf ]] for i = 1, thirddata.handlecsv.gNumCols do -- for all fields in header local makroname=[[{\bf\backslash ]]..thirddata.handlecsv.tmn(thirddata.handlecsv.gColumnNames[i])..[[}]] headercolnames = [[{\bf\backslash c]]..thirddata.handlecsv.ar2colnum(i)..[[}=]]..makroname..[[, ]] infomakra=infomakra..headercolnames -- list generating end -- for i=1, #gCSV -- Kvůli nastavení na zač. infomakra=infomakra..'\\par' -- infomakra=infomakra..'\par' -- closing of opened group local string2print=[[\title{Current CSV file report} Input CSV file: {\bf ]]..'\\csvfilename'..[[} \crlf Existing header of CSV file (ie first no data line) : {\tt ]]..tostring(thirddata.handlecsv.gCSVHeader)..[[}\crlf Settings default CSV separator (see Lua variable {\tt gUserCSVSeparator}) : ]]..coldelim..[[\crlf Settings default CSV field "quoter" (see Lua variable {\tt gUserCSVQuoter}) : ]]..quot..[[\crlf Settings current CSV separator : ]]..currcoldelim..[[\crlf Settings current CSV field "quoter" : ]]..currquot..[[\crlf Current settings of delimiters and quoters: {\tt ]]..currquot..[[field1]]..currquot..currcoldelim..currquot..[[field2]]..currquot..currcoldelim..currquot..[[field3]]..currquot..currcoldelim..[[ } ... etc.\crlf Using hooks (default is off) : {\tt ]]..tostring(thirddata.handlecsv.gUseHooks)..[[}\crlf Number of columns in a table: {\bf]]..'\\numcols'..[[}\crlf Number of rows in the table: {\bf ]]..'\\numrows'..[[}\crlf Macros supplying columns data in each row of table: ]]..infomakra..[[ \crlf Additional predefined macros: \crlf {\bf\backslash csvfilename} -- name of open CSV file ({\bf]]..'\\csvfilename'..[[})\crlf {\bf\backslash numcols} -- number of table columns ({\bf]]..'\\numcols'..[[})\crlf {\bf\backslash numrows} -- number of table lines ({\bf]]..'\\numrows'..[[})\crlf {\bf\backslash numline} -- number of the currently loaded row (for use in print reports) \crlf {\bf\backslash lineno} -- serial number of the actual loaded line of CSV table \crlf {\bf\backslash csvreport} -- prints the report on file open \crlf {\bf\backslash printline} -- lists the current CSV row table in a condensed form \crlf {\bf\backslash printall} -- CSV output table in a condensed form \crlf {\bf\backslash setfiletoscan}\{{\it filename}\} -- setting of name of CSV file\crlf {\bf\backslash opencsvfile}{\{\it filename}\} -- open CSV table\crlf {\bf\backslash setheader} -- set a header flag\crlf {\bf\backslash resetheader} -- unset a header flag\crlf {\bf\backslash nextrow} -- next row of CSV table (with test of EOF)\crlf {\bf\backslash setsep}{\{\it delimiter}\} -- set delimiter of columns\crlf {\bf\backslash resetsep} -- unset to default values\crlf {\bf\backslash setld}\{{\it delimiter}\} -- set left quoter\crlf {\bf\backslash resetld} -- unset left quoter to default values\crlf {\bf\backslash setrd}\{{\it delimiter}\} -- set right quoter\crlf {\bf\backslash resetrd} -- unset right quoter to default values\crlf {\bf\backslash blinehook} -- begin line hook macro (process before first column value of each row)\crlf {\bf\backslash elinehook} -- end line hook macro (process after last column value of each row)\crlf {\bf\backslash bfilehook} -- begin file hook macro (process before whole file processing)\crlf {\bf\backslash efilehook} -- end file hook macro (process after whole file processing)\crlf \vfill\break ]] thirddata.handlecsv.string2context(string2print) thirddata.handlecsv.opencsvfile(actualopenfile) end -- thirddata.handlecsv.csvreport() function thirddata.handlecsv.xprintline() -- lists the current CSV row table (needed to define macro \printline) for i=1,thirddata.handlecsv.gNumCols do context([[\csvcell]]..'['..i..','..thirddata.handlecsv.gCurrentLinePointer..']'..thirddata.handlecsv.gCSVSeparator..[[ ]]) end end function thirddata.handlecsv.xprintall() -- lists all the csv table (necessary to define macros \printall) -- http://www.pragma-ade.nl/general/manuals/hybrid.pdf thirddata.handlecsv.opencsvfile() local basespec = { framecolor = "blue", split="yes", align= "middle", style = "sans", offset="2pt", } context.bTABLE(basespec) for i=1, thirddata.handlecsv.gNumRows do context.bTR() for j=1,thirddata.handlecsv.gNumCols do context.bTD() context([[\csvcell]]..'['..j..','..i..']') -- Writing real values ... -- context(thirddata.handlecsv.gTableRows[j][i]..' ') -- Writing real values ... context.eTD() end context.eTR() end -- of for context.eTABLE() end -- ConTeXt source: local string2print=[[% % CSV file report. Syntax: \csvreport or \csvreport{filename}. \def\csvreport{\dosingleempty\docsvreport}% \def\docsvreport[#1]{\dosinglegroupempty\dodocsvreport}% \def\dodocsvreport#1{\iffirstargument\ctxlua{thirddata.handlecsv.csvreport("#1")}\else\ctxlua{thirddata.handlecsv.csvreport()}\fi}% %\def\xprintline{\ctxlua{context(thirddata.handlecsv.printline())}} % Původní verze: % \def\xprintall{\ctxlua{context(thirddata.handlecsv.xprintall())}} \def\printline{\dorecurse{\numcols}{\csvcell[\recurselevel,\linepointer], }\crlf} \def\printall{% \setuppapersize[A3,landscape][A3,landscape] \catcode`\#=12 %CSV file contains # characters (i.e. TeX problematic character) \switchtobodyfont[10pt] \setupTABLE[background=color,backgroundcolor=yellow] \setupTABLE[row][first][background=color,backgroundcolor=lightgray] \bTABLE[offset=2pt, split=yes] \dorecurse{\numexpr(\numrows+1)} {\bTR \dorecurse{\numcols} {\bTD \csvcell[\currentTABLEcolumn,\currentTABLErow-1] \eTD} \eTR} \eTABLE } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Complete listing macros and commands that can be used (to keep track of all defined macros): %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \csvreport, \csvreport{} % \printline % \printall %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ]] -- write definitions into ConTeXt: thirddata.handlecsv.string2context(string2print) context-modules-20240428/tex/context/third/handlecsv/t-handlecsv.lua0000644000175000017500000020233113450747701024360 0ustar hillehille-- %D \module -- %D [ file=t-handlecsv.lua, -- %D version=2019.03.30, -- %D title=HandleCSV module, -- %D subtitle=CSV file handling, -- %D author=Jaroslav Hajtmar, -- %D date=\currentdate, -- %D copyright=Jaroslav Hajtmar, -- %D email=hajtmar@gyza.cz, -- %D license=GNU General Public License] -- -- %C Copyright (C) 2019 Jaroslav Hajtmar -- %C -- %C This program is free software: you can redistribute it and/or modify -- %C it under the terms of the GNU General Public License as published by -- %C the Free Software Foundation, either version 3 of the License, or -- %C (at your option) any later version. -- %C -- %C This program is distributed in the hope that it will be useful, -- %C but WITHOUT ANY WARRANTY; without even the implied warranty of -- %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- %C GNU General Public License for more details. -- %C -- %C You should have received a copy of the GNU General Public License -- %C along with this program. If not, see . -- use a feature that is part of the /texmf-dist/tex/context/base/util-prs.lua thirddata = thirddata or { } thirddata.handlecsv = { -- Global variables -- gCSVSeparator gUserCSVSeparator=';', -- the most widely used field separator in CSV tables -- gCSVQuoter gUserCSVQuoter='"', -- -- gCSVHeader gUserCSVHeader=false, -- CSV file is by default considered as a CSV file without the header (in header are treated as column names of macros gUserUseHooks=false, -- In default setting is not use "hooks" when process CSV file gUserColumnNumbering='XLS', -- Something other than the XLS or undefined variable value (eg commenting that line) to set the Roman numbering ... gCurrentlyProcessedCSVFile=nil, gMarkingEmptyLines=false, gUserMarkingEmptyLines=false, -- if true, then module mark empty rows in CSV file else module accept empty lines as regular lines gTableEmptyRows={}, -- array of indexes of empty lines of CSV table -> gTableEmptyRows['csvfilename'][1]= 3 etc gTableNotEmptyRows={}, -- array of indexes of nonempty lines of CSV table -> gTableNotEmptyRows['csvfilename'][1]= 3 etc gCSVHandleBuffer={}, -- temporary buffer -- NEW variables gOpenFiles={}, -- array of all opened files gNumLine={}, -- global variable - gNumLine['csvfilename.csv']=0 gNumRows={}, -- global variable - save number of rows of csv table: gNumRows['csvfilename']=0 gNumEmptyRows={}, -- global variable - save number of empty rows of csv table: gNumEmptyRows['csvfilename']=0 gNumNotEmptyRows={}, -- global variable - save number of empty rows of csv table: gNumNotEmptyRows['csvfilename']=0 gNumCols={}, -- global variable - save number of columns of csv table: gNumCols['csvfilename']=0 gCurrentLinePointer={}, -- ie. CSV line number ie. number of the currently processed row: gCurrentLinePointer['csvfilename']=0 gColumnNames={}, -- array with column names (readings from header of CSV file): gColumnNames['csvfilename'] gColNames={}, -- associative array with column names for indexing use f.e. gColNames['csvfilename']['Firstname']=1, etc... gTableRows={}, -- array of contents of cells of CSV table -> gTableRows['csvfilename'][row][column] gTableRowsIndex={}, -- array of flags of lines of CSV table -> gTableEmptyRowsIndex['csvfilename'][i]= true or false gSavedLinePointerNo=1, -- global variable to keep the line number } local setmacro = interfaces.setmacro or "" -- Initialize global variables etc. -- Default value is saved in glob. variable gUseHooks (default is FALSE) if thirddata.handlecsv.gUseHooks == nil then thirddata.handlecsv.gUseHooks = thirddata.handlecsv.gUserUseHooks end -- Default value is saved in glob. variable gUserCSVHeader (default FALSE) if thirddata.handlecsv.gCSVHeader == nil then thirddata.handlecsv.gCSVHeader = thirddata.handlecsv.gUserCSVHeader end -- Default value is saved in glob. variable gCSVSeparator (default COMMA) if thirddata.handlecsv.gCSVSeparator == nil then thirddata.handlecsv.gCSVSeparator = thirddata.handlecsv.gUserCSVSeparator end -- Default value is saved in glob. variable gCSVSeparator (default ") if thirddata.handlecsv.gCSVQuoter == nil then thirddata.handlecsv.gCSVQuoter = thirddata.handlecsv.gUserCSVQuoter end -- Default value is saved in glob. variable gMarkingEmptyLines (default is FALSE) if thirddata.handlecsv.gMarkingEmptyLines==nil then thirddata.handlecsv.gMarkingEmptyLines = thirddata.handlecsv.gUserMarkingEmptyLines end -- Tools block: Contain auxiliary functions and tools function thirddata.handlecsv.texmacroisdefined(macroname) -- check whether macroname macro is defined in ConTeXt -- function is used to test whether the user has defined the macro \macroname. If not, it needs to define any default value return token.get_cmdname(token.create(macroname)) ~= "undefined_cs" end function thirddata.handlecsv.ParseCSVLine(line,sep) -- tool function ParseCSVLine is defined for compatibility. Parsing string (or line). local mycsvsplitter = utilities.parsers.rfc4180splitter{ separator = sep, quote = '"', strict=true, -- add 15.2.2016 } local list = mycsvsplitter(line) inspect(list) return list[1] end function thirddata.handlecsv.tmn(s) -- TeX Macro Name. Name of TeX macro should not contain forbidden characters if string.len(s) == 0 then s='nil' end -- When the parameter 's' does not contain any character that is not the separator character, it is necessary to create macro name maxmacrolength=50 -- if the first string in line longer "than is healthy, so about 50 characters is sufficient -- ATTENTION! In the case that 1st CSV table row header that is a different column for content, which coincides with the first 'maxmacrolength' characters, the names of macros in different columns are the same (ie, the macro will give the correct result for the column) diachar= {"á","ä","č","ď","é","ě","í","ň","ó","ř","š","ť","ú","ů","ý","ž","Á","Ä","Č","Ď","É","Ě","Í","Ň","Ó","Ř","Š","Ť","Ú","Ů","Ý","Ž"} asciichar={"a","a","c","d","e","e","i","n","o","r","s","t","u","u","y","z","A","A","C","D","E","E","I","N","O","R","S","T","U","U","Y","Z"} for i=1, 32 do s=string.gsub(s, diachar[i], asciichar[i]) -- change diakritics chars end --s=string.gsub(s, "%d", "n") -- replace the numbers in name -- For 0-9 to replace the letter O or Roman numerals s=string.gsub(s, "0", "O") -- replace the numbers in name s=string.gsub(s, "1", "I") -- replace the numbers in name s=string.gsub(s, "2", "II") -- s=string.gsub(s, "3", "III") -- s=string.gsub(s, "4", "IV") -- s=string.gsub(s, "5", "V") -- s=string.gsub(s, "6", "VI") -- s=string.gsub(s, "7", "VII") -- s=string.gsub(s, "8", "VIII") -- s=string.gsub(s, "9", "IX") -- s=string.gsub(s, "%A", "x") -- Finally still removes all nealfabetic characters that were left there if string.len(s) > maxmacrolength+1 then s=string.sub(s, 1, maxmacrolength) end -- to limit the maximum length of a macro return s end function thirddata.handlecsv.xls2ar(colname) -- convert Excel column name (like A, B, ... AA, AB, ...) into serial number of column (A->1, B->2, ...) -- No for more than 702 columns (ie last column parametr for this function is ZZ) -- for example Excel 2003 can handle only up to the column IV! local colnumber=0 local colname=colname:upper() for i=1, string.len(colname) do local onechar = string.sub(colname,i,i) colnumber=26*colnumber + (string.byte(onechar) - string.byte('A') + 1) end return colnumber end function thirddata.handlecsv.ar2xls(arnum) -- convert number to Excel name column -- For more than 703 columns (ie column A to ZZ) should be a function to modify -- Excel 2003 can handle only up to the column IV! local part=math.floor(arnum/26) local remainder = math.mod(arnum,26) part = part - (math.mod(arnum,26)==0 and 1 or 0) remainder = remainder + (math.mod(arnum,26)==0 and 26 or 0) local ctl ='' if arnum < 703 then if part > 0 then ctl=string.char(64+part) end ctl = ctl .. string.char(64+remainder) else ctl = 'overZZ' end return ctl end function thirddata.handlecsv.ar2colnum(arnum) -- According to the settings glob. variable returns the column designation of TeX macros -- generated TeX macros referring to values in columns are numbered a`la EXCEL ie cA, cB, ..., cAA, etc -- or a`la roman number ie. cI, cII, cIII, cIV, ..., cXVIII, etc -- if it is "romannumbers" setting, then columns wil numbered by Romna else ala Excel if string.lower(thirddata.handlecsv.gUserColumnNumbering) == 'xls' then return thirddata.handlecsv.ar2xls(arnum) -- a la EXCEL else return string.upper(converters.romannumerals(arnum)) -- a la big ROMAN - convert Arabic numbers to big Roman. Used for "numbering" column in the TeX macros end end function thirddata.handlecsv.substitutecontentofcellof(csvfile,column,row,whattoreplace,substitution) -- Substitute text in cell content of specified CSV file with other text local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) local column=thirddata.handlecsv.gColNames[csvfile][column] local whattoreplace=tostring(whattoreplace) local substitution=tostring(substitution) return thirddata.handlecsv.getcellcontentof(csvfile,column,row):gsub(whattoreplace,substitution) end function thirddata.handlecsv.substitutecontentofcell(column,row,whattoreplace,substitution) -- Substitute text in cell content of current CSV file with other text local csvfile=thirddata.handlecsv.getcurrentcsvfilename() local column=thirddata.handlecsv.gColNames[csvfile][column] return thirddata.handlecsv.substitutecontentofcellof(csvfile,column,row,whattoreplace,substitution) end function thirddata.handlecsv.substitutecontentofcellofcurrentrow(column,whattoreplace,substitution) -- Substitute text in cell content of current row of current CSV file with other text local row=thirddata.handlecsv.linepointer() return thirddata.handlecsv.substitutecontentofcell(column,row,whattoreplace,substitution) end function thirddata.handlecsv.processinputvalue(inputparameter,replacingnumber) -- when inputparameter is not correct, then return replacingnumber local returnparameter=inputparameter if type(inputparameter)~= 'number' then returnparameter=replacingnumber end -- return returnparameter end -- Main functions and macros: function thirddata.handlecsv.hookson() thirddata.handlecsv.gUseHooks=true end function thirddata.handlecsv.hooksoff() thirddata.handlecsv.gUseHooks=false end function thirddata.handlecsv.setfiletoscan(filetoscan) local inpcsvfile=thirddata.handlecsv.handlecsvfile(filetoscan) thirddata.handlecsv.gCurrentlyProcessedCSVFile=inpcsvfile end function thirddata.handlecsv.setheader() thirddata.handlecsv.gCSVHeader=true context([[\global\issetheadertrue%]]) context([[\global\notsetheaderfalse%]]) end function thirddata.handlecsv.unsetheader() thirddata.handlecsv.gCSVHeader=false context([[\global\issetheaderfalse%]]) context([[\global\notsetheadertrue%]]) end function thirddata.handlecsv.setsep(sep) thirddata.handlecsv.gCSVSeparator=sep end function thirddata.handlecsv.unsetsep() thirddata.handlecsv.gCSVSeparator=thirddata.handlecsv.gUserCSVSeparator end function thirddata.handlecsv.indexofnotemptyline(sernumline) local csvfilename=thirddata.handlecsv.getcurrentcsvfilename() return thirddata.handlecsv.gTableNotEmptyRows[csvfilename][sernumline] end function thirddata.handlecsv.indexofemptyline(sernumline) local csvfilename=thirddata.handlecsv.getcurrentcsvfilename() return thirddata.handlecsv.gTableEmptyRows[csvfilename][sernumline] end function thirddata.handlecsv.notmarkemptylines() local csvfilename=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.gMarkingEmptyLines=false for row=1,thirddata.handlecsv.gNumRows[csvfilename] do thirddata.handlecsv.gTableNotEmptyRows[csvfilename][row]=row end thirddata.handlecsv.gTableEmptyRows[csvfilename]={} thirddata.handlecsv.gNumEmptyRows[csvfilename]=0 thirddata.handlecsv.gNumNotEmptyRows[csvfilename]=thirddata.handlecsv.gNumRows[csvfilename] context([[\global\emptylinefalse%]]) context([[\global\notemptylinetrue%]]) context([[\global\emptylinesmarkingfalse%]]) context([[\global\emptylinesnotmarkingtrue%]]) end function thirddata.handlecsv.markemptylines() local csvfilename=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.gTableEmptyRows[csvfilename]={} thirddata.handlecsv.gTableNotEmptyRows[csvfilename]={} thirddata.handlecsv.gMarkingEmptyLines=true local counteremptylines=0 local counternotemptylines=0 for row=1,thirddata.handlecsv.gNumRows[csvfilename] do if thirddata.handlecsv.testemptyrow(row) then counteremptylines=counteremptylines+1 thirddata.handlecsv.gTableEmptyRows[csvfilename][counteremptylines]=row else counternotemptylines=counternotemptylines+1 thirddata.handlecsv.gTableNotEmptyRows[csvfilename][counternotemptylines]=row end end -- for thirddata.handlecsv.gNumEmptyRows[csvfilename]=counteremptylines thirddata.handlecsv.gNumNotEmptyRows[csvfilename]=counternotemptylines context([[\global\emptylinesmarkingtrue%]]) context([[\global\emptylinesnotmarkingfalse%]]) end function thirddata.handlecsv.resetmarkemptylines() -- do following lines only when file contain completely empty rows and is requiring testing empty lines local csvfilename=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.gMarkingEmptyLines = thirddata.handlecsv.gUserMarkingEmptyLines if thirddata.handlecsv.gMarkingEmptyLines then thirddata.handlecsv.markemptylines() else thirddata.handlecsv.notmarkemptylines() end -- if thirddata.handlecsv.gMarkingEmptyLines end function thirddata.handlecsv.testemptyrow(lineindex) local csvfilename=thirddata.handlecsv.getcurrentcsvfilename() local linecontent="" local isemptyline=false for column=1,thirddata.handlecsv.gNumCols[csvfilename] do linecontent=linecontent..thirddata.handlecsv.gTableRows[csvfilename][lineindex][column] end if linecontent=="" or linecontent==nil then isemptyline=true -- thirddata.handlecsv.gNumEmptyRows[csvfilename]=thirddata.handlecsv.gNumEmptyRows[csvfilename]+1 end thirddata.handlecsv.gTableRowsIndex[csvfilename][lineindex]=isemptyline return isemptyline end function thirddata.handlecsv.emptylineevaluation(lineindex) if thirddata.handlecsv.gTableRowsIndex[thirddata.handlecsv.getcurrentcsvfilename()][lineindex] then context([[\global\emptylinetrue%]]) context([[\global\notemptylinefalse%]]) else context([[\global\emptylinefalse%]]) context([[\global\notemptylinetrue%]]) end return thirddata.handlecsv.gTableRowsIndex[thirddata.handlecsv.getcurrentcsvfilename()][lineindex] end function thirddata.handlecsv.removeemptylines() -- This function remove empty rows only from field of variables thirddata.handlecsv.gTableRows! -- The field is only re-indexed and function does not affect onto the physical input CSV file! -- When the physical CSV file is reopened by using \open macro, the global field variable -- thirddata.handlecsv.gTableRows[csvfile] is reset into original state! thirddata.handlecsv.markemptylines() local csvfilename=thirddata.handlecsv.getcurrentcsvfilename() for i=1,thirddata.handlecsv.gNumNotEmptyRows[csvfilename] do local indexofnotemptyrow=thirddata.handlecsv.gTableNotEmptyRows[csvfilename][i] -- i<--indexofnotemptyrow thirddata.handlecsv.gTableRows[csvfilename][i]=thirddata.handlecsv.gTableRows[csvfilename][indexofnotemptyrow] end for i=thirddata.handlecsv.gNumNotEmptyRows[csvfilename]+1,thirddata.handlecsv.gNumRows[csvfilename] do thirddata.handlecsv.gTableRows[csvfilename][i]=nil end thirddata.handlecsv.gNumRows[csvfilename]=thirddata.handlecsv.gNumNotEmptyRows[csvfilename] thirddata.handlecsv.markemptylines() thirddata.handlecsv.gTableEmptyRows[csvfilename]={} thirddata.handlecsv.gTableNotEmptyRows[csvfilename]={} end function thirddata.handlecsv.hooksevaluation() for i=1,#thirddata.handlecsv.gColumnNames[thirddata.handlecsv.getcurrentcsvfilename()] do if not thirddata.handlecsv.texmacroisdefined('bch'..thirddata.handlecsv.gColumnNames[thirddata.handlecsv.getcurrentcsvfilename()][i]) then context.setgvalue('bch'..thirddata.handlecsv.gColumnNames[thirddata.handlecsv.getcurrentcsvfilename()][i],'\\relax') end if not thirddata.handlecsv.texmacroisdefined('ech'..thirddata.handlecsv.gColumnNames[thirddata.handlecsv.getcurrentcsvfilename()][i]) then context.setgvalue('ech'..thirddata.handlecsv.gColumnNames[thirddata.handlecsv.getcurrentcsvfilename()][i],'\\relax') end end end function thirddata.handlecsv.setgetcurrentcsvfile(filename) -- In the absence of the file name to use the global variable thirddata.handlecsv.gCurrentlyProcessedCSVFile = (filename ~= nil) and filename or thirddata.handlecsv.gCurrentlyProcessedCSVFile thirddata.handlecsv.gCurrentlyProcessedCSVFile = (thirddata.handlecsv.gCurrentlyProcessedCSVFile == nil) and filename or thirddata.handlecsv.gCurrentlyProcessedCSVFile local filename = filename ~= nil and filename or thirddata.handlecsv.gCurrentlyProcessedCSVFile -- thirddata.handlecsv.gCurrentlyProcessedCSVFile = tostring(filename) return tostring(filename) end function thirddata.handlecsv.handlecsvfile(filename) -- not used yet local filename = tostring(filename) filename = string.gsub(filename, '"', '') filename = string.gsub(filename, "'", "") if not (thirddata.handlecsv.isopenfile(filename)) then filename = (filename ~= nil) and filename or thirddata.handlecsv.gCurrentlyProcessedCSVFile filename = (thirddata.handlecsv.gCurrentlyProcessedCSVFile == nil) and filename or thirddata.handlecsv.gCurrentlyProcessedCSVFile filename = filename ~= nil and filename or thirddata.handlecsv.gCurrentlyProcessedCSVFile filename = filename ~= '' and filename or thirddata.handlecsv.gCurrentlyProcessedCSVFile end return filename end function thirddata.handlecsv.getcurrentcsvfilename() -- return current (actual) CSV file return tostring(thirddata.handlecsv.gCurrentlyProcessedCSVFile) end function thirddata.handlecsv.isopenfile(csvfilename) -- testing of opening CSV files local retval=(thirddata.handlecsv.gOpenFiles[csvfilename] ~= nil) return retval end function thirddata.handlecsv.closecsvfile(csvfilename) -- manual closing of CSV files thirddata.handlecsv.gOpenFiles[csvfilename] = nil end function thirddata.handlecsv.getnumberofopencsvfiles() -- get the number of open files local count = 0 for k, v in pairs(thirddata.handlecsv.gOpenFiles) do count = count + 1 end return count end function thirddata.handlecsv.setpointersofopeningcsvfile(inpcsvfile) thirddata.handlecsv.gCurrentLinePointer[inpcsvfile]=1 thirddata.handlecsv.gNumLine[inpcsvfile]=1 -- set numline counter of file inpcsvfile thirddata.handlecsv.resetlinepointerof(inpcsvfile) -- set pointer to begin table (first row) thirddata.handlecsv.setnumlineof(inpcsvfile,1) context([[\global\EOFfalse%]]) context([[\global\notEOFtrue%]]) thirddata.handlecsv.resetmarkemptylines() end function thirddata.handlecsv.opencsvfile(filetoscan) -- Open CSV tabule, inicialize variables -- open the table and load it into the global variable thirddata.handlecsv.gTableRows[filetoscan] -- if the option thirddata.handlecsv.gCSVHeader==true is enabled, then into glob variable thirddata.handlecsv.gColumnNames[filetoscan] -- sets the column names from the title, if not then sets XLS notation, ie. cA, cB, cC, ... -- into global variables thirddata.handlecsv.gNumRows[filetoscan] and thirddata.handlecsv.gNumCols[filetoscan] it saves the number of rows and columns of the table -- if the file header and the header line does not count the number of rows in the table -- Additionally, they can defined ConTeXt macros \csvfilename, \numrows a \numcols local inpcsvfile=thirddata.handlecsv.setgetcurrentcsvfile(filetoscan) -- set filetoscan as current processed csv file if thirddata.handlecsv.isopenfile(inpcsvfile) then -- if file is open, then set needed pointers at first line of file only thirddata.handlecsv.setpointersofopeningcsvfile(inpcsvfile) else -- if CSV file is not open, then open it and set all needed variables local inpcsvfile=thirddata.handlecsv.setgetcurrentcsvfile(inpcsvfile) thirddata.handlecsv.gOpenFiles[inpcsvfile]=inpcsvfile -- memory opening file thirddata.handlecsv.gColNames[inpcsvfile]={} thirddata.handlecsv.gColumnNames[inpcsvfile]={} thirddata.handlecsv.gTableRowsIndex[inpcsvfile]={} thirddata.handlecsv.gTableRows[inpcsvfile]={} thirddata.handlecsv.gTableEmptyRows[inpcsvfile]={} thirddata.handlecsv.gTableNotEmptyRows[inpcsvfile]={} local currentlyprocessedcsvfile = io.loaddata(inpcsvfile) local mycsvsplitter = utilities.parsers.rfc4180splitter{ separator = thirddata.handlecsv.gCSVSeparator, quote = thirddata.handlecsv.gCSVQuoter, strict = true, } if thirddata.handlecsv.gCSVHeader then thirddata.handlecsv.gTableRows[inpcsvfile], thirddata.handlecsv.gColumnNames[inpcsvfile] = mycsvsplitter(currentlyprocessedcsvfile,true) inspect(thirddata.handlecsv.gTableRows[inpcsvfile]) inspect(thirddata.handlecsv.gColumnNames[inpcsvfile]) else -- if thirddata.handlecsv.gCSVHeader thirddata.handlecsv.gTableRows[inpcsvfile], thirddata.handlecsv.gColumnNames[inpcsvfile] = mycsvsplitter(currentlyprocessedcsvfile) inspect(thirddata.handlecsv.gTableRows[inpcsvfile]) thirddata.handlecsv.gColumnNames[inpcsvfile]={} -- ad now set column names for withoutheader situation: for i=1,#thirddata.handlecsv.gTableRows[inpcsvfile][1] do -- OK, but not used: thirddata.handlecsv.gColumnNames[inpcsvfile][i]=thirddata.handlecsv.tmn(thirddata.handlecsv.gTableRows[inpcsvfile][1][i]) thirddata.handlecsv.gColumnNames[inpcsvfile][i]=tostring(thirddata.handlecsv.ar2xls(i)) -- set XLS notation (fill array with XLS names of columns like 'cA', 'cB', etc.) end -- for end -- if thirddata.handlecsv.gCSVHeader for i=1,#thirddata.handlecsv.gTableRows[inpcsvfile][1] do thirddata.handlecsv.gColNames[inpcsvfile][tostring(thirddata.handlecsv.tmn(thirddata.handlecsv.gColumnNames[inpcsvfile][i]))] = i -- for indexing use (register names of macros ie 'Firstname' etc...) thirddata.handlecsv.gColNames[inpcsvfile][tostring(thirddata.handlecsv.gColumnNames[inpcsvfile][i])] = i -- for indexing use (register names of macros ie 'Firstname' etc...) thirddata.handlecsv.gColNames[inpcsvfile][tostring(thirddata.handlecsv.ar2xls(i))] = i -- for indexcolname macro (register names of macros ie 'A', 'B', etc...) thirddata.handlecsv.gColNames[inpcsvfile][tostring('c'..thirddata.handlecsv.ar2xls(i))] = i -- for indexcolname macro (register names of macros ie 'cA', 'cB', etc...) thirddata.handlecsv.gColNames[inpcsvfile][tostring(i)] = i -- for indexcolname macro (register names of macros ie 'cA', 'cB', etc...) thirddata.handlecsv.gColNames[inpcsvfile][i] = i -- for indexcolname macro (register names of macros ie 'cA', 'cB', etc...) end -- for local j=#thirddata.handlecsv.gTableRows[inpcsvfile][1] for i=1,#thirddata.handlecsv.gTableRows[inpcsvfile][1] do j=j+1 thirddata.handlecsv.gColumnNames[inpcsvfile][j]=tostring('c'..thirddata.handlecsv.ar2xls(i)) -- set XLS notation (fill array with XLS names of columns like 'cA', 'cB', etc.) end -- for if thirddata.handlecsv.gCSVHeader then for i=1,#thirddata.handlecsv.gTableRows[inpcsvfile][1] do j=j+1 thirddata.handlecsv.gColumnNames[inpcsvfile][j]=tostring(thirddata.handlecsv.ar2xls(i)) -- set XLS notation (fill array with XLS names of columns like 'cA', 'cB', etc.) end -- for for i=1,#thirddata.handlecsv.gTableRows[inpcsvfile][1] do j=j+1 thirddata.handlecsv.gColumnNames[inpcsvfile][j]=tostring(thirddata.handlecsv.tmn(thirddata.handlecsv.gColumnNames[inpcsvfile][i])) -- maybe TeX incorect names of columns end -- for end -- if thirddata.handlecsv.gCSVHeader then thirddata.handlecsv.gNumRows[inpcsvfile]=#thirddata.handlecsv.gTableRows[inpcsvfile] -- Getting number of rows thirddata.handlecsv.gNumCols[inpcsvfile]=#thirddata.handlecsv.gTableRows[inpcsvfile][1] -- Getting number of columns thirddata.handlecsv.gNumEmptyRows[inpcsvfile]=0 thirddata.handlecsv.gNumNotEmptyRows[inpcsvfile]=#thirddata.handlecsv.gTableRows[inpcsvfile] thirddata.handlecsv.setpointersofopeningcsvfile(inpcsvfile) -- set pointers if thirddata.handlecsv.gUseHooks then thirddata.handlecsv.hooksevaluation() end end -- if thirddata.handlecsv.isopenfile(inpcsvfile) then return end -- of thirddata.handlecsv.opencsvfile(file) function thirddata.handlecsv.readlineof(inpcsvfile,numberofline) -- -- Main function. Read data from specific line of specific file, parse them etc. local inpcsvfile=thirddata.handlecsv.handlecsvfile(inpcsvfile) local numberofline=numberofline local returnpar=false if type(numberofline)~= 'number' then if numberofline==nil then numberofline=thirddata.handlecsv.gCurrentLinePointer[inpcsvfile] returnpar=true else numberofline = 0 end -- if numberofline==nil end -- if type(numberofline) if (numberofline > 0 and numberofline <=thirddata.handlecsv.gNumRows[inpcsvfile]) then thirddata.handlecsv.addtonumlineof(inpcsvfile,1) thirddata.handlecsv.gCurrentLinePointer[inpcsvfile]=numberofline returnpar=true thirddata.handlecsv.assigncontentsof(inpcsvfile,thirddata.handlecsv.gTableRows[inpcsvfile][numberofline]) context([[\global\EOFfalse\global\notEOFtrue%]]) else thirddata.handlecsv.assigncontentsof(inpcsvfile,'nil_line') if numberofline > thirddata.handlecsv.gNumRows[inpcsvfile] then context([[\global\EOFtrue\global\notEOFfalse%]]) end end -- if (numberofline > 0 --řešit thirddata.handlecsv.emptylineevaluation(numberofline) return returnpar -- return true if numberofline is regular line, else return false end -- function thirddata.handlecsv.readlineof(inpcsvfile,numberofline) -- function thirddata.handlecsv.readline(numberofline) -- -- Main function. Read data from specific line of specific file, parse them etc. local csvfile=thirddata.handlecsv.getcurrentcsvfilename() if type(numberofline) == 'number' then thirddata.handlecsv.readlineof(csvfile,numberofline) -- else thirddata.handlecsv.readlineof(csvfile,thirddata.handlecsv.gCurrentLinePointer[csvfile]) -- end end function thirddata.handlecsv.createxlscommandof(xlsname,csvfile) local inpcsvfile=thirddata.handlecsv.handlecsvfile(csvfile) local cxlsname=tostring('col'..xlsname) local docxlsname=tostring('docol'..xlsname) local xlsname=tostring(''..xlsname) -- context([[\def\definice]]..xlsname..[[#1{\ctxlua{context(thirddata.handlecsv.getcellcontentof(']]..inpcsvfile..[[',']]..xlsname..[[','#1'))}}]]) interfaces.definecommand (docxlsname, { arguments = { { "option", "string" } }, macro = function (opt_1) if #opt_1>0 then context(thirddata.handlecsv.getcellcontentof(inpcsvfile,xlsname,tonumber(opt_1))) else context(thirddata.handlecsv.getcellcontentof(inpcsvfile,xlsname,thirddata.handlecsv.gCurrentLinePointer[inpcsvfile])) end end }) interfaces.definecommand(cxlsname, { macro = function () context.dosingleempty() context[docxlsname]() end }) -- interfaces.definecommand ("column"..xlsname, { -- arguments = { { "option"} }, -- macro = function (opt_1) -- if opt_1~="" then -- context(thirddata.handlecsv.getcellcontentof(inpcsvfile,xlsname,tonumber(opt_1))) -- else -- context(thirddata.handlecsv.getcellcontentof(inpcsvfile,xlsname,thirddata.handlecsv.gCurrentLinePointer[inpcsvfile])) -- end -- end -- }) end function thirddata.handlecsv.createxlscommand(xlsname) local inpcsvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.createxlscommandof(xlsname,inpcsvfile) end function thirddata.handlecsv.assigncontentsof(inpcsvfile,line) -- put data into columns macros -- after read of line this function put content of columns into specific TeX macros... --if tex.modes['XXL'] then context("XXL mode") else context("not XXL mode") end local inpcsvfile=thirddata.handlecsv.handlecsvfile(inpcsvfile) local cutoffinpcsvfile=thirddata.handlecsv.ParseCSVLine(inpcsvfile,".")[1] -- cut filename extension for i=1,thirddata.handlecsv.gNumCols[inpcsvfile] do content='nil' -- 1.10.2015 if line ~= 'nil_line' then content = line[i] end local puremacroname=thirddata.handlecsv.gColumnNames[inpcsvfile][i] -- local macroname=cutoffinpcsvfile..thirddata.handlecsv.gColumnNames[inpcsvfile][i] local macroname=thirddata.handlecsv.gColumnNames[inpcsvfile][i] -- context("macroname: "..macroname.."\\crlf") local purexlsname=thirddata.handlecsv.ar2colnum(i) -- context("purexlsname: "..purexlsname.."\\crlf") local xlsname='c'..purexlsname -- context("xlsname: "..xlsname.."\\crlf") local xlsfilename=thirddata.handlecsv.tmn(cutoffinpcsvfile)..'c'..purexlsname -- context("xlsfilename: "..xlsfilename.."\\crlf") local hookxlsname='h'..xlsname local macroname=thirddata.handlecsv.tmn(macroname) local puremacroname=thirddata.handlecsv.tmn(puremacroname) -- context("macroname: "..macroname.."\\crlf") local hookmacroname='h'..macroname -- if content == ' ' then tex.print('space') end -- if content == '' then tex.print('empty') content=[[\empty]] end context.setgvalue(xlsname, content) -- defining automatic TeX macros \cA, \cB, atd. resp. \cI, \cII, ... containing the contents of the line. Macros with names of the headers are updated automatically context.setgvalue(xlsfilename, content) -- defining automatic TeX macros \filenamecA, \filenamecB, atd. resp. \cI, \cII, ... containing the contents of the line. Macros with names of the headers are updated automatically -- was context.setgvalue(macroname,'\\'..xlsname) -- ie for example \let\Name\cA -- context.setgvalue(macroname,content) -- defining automatic TeX macros \Name, \Date, etc. (names gets from header), containing the contents of the line. Macros with names of the headers are updated automatically context.setgvalue(puremacroname,content) -- defining automatic TeX macros \Name, \Date, etc. (names gets from header), containing the contents of the line. Macros with names of the headers are updated automatically -- experimental version in next two lines: -- this define variants of macros \colA, \colA[8], ... and \colFirstname, \colFirstname[11] etc. thirddata.handlecsv.createxlscommandof(''..purexlsname,inpcsvfile) -- create macros \colA, \colB, etc. and their variants \colA[row], ... --if tex.modes['XXX'] then --context("XXX-"..macroname.."-XXX") --end context.setgvalue('col'..macroname,'\\col'..purexlsname) -- and create fullname macros \colFirstname, \colFirstname[5], etc... -- context.setgvalue(''..macroname,'\\col'..purexlsname) -- and create fullname macros \colFirstname, \colFirstname[5], etc... -- context.setgvalue(''..macroname,'\\col'..purexlsname) -- and create fullname macros \colFirstname, \colFirstname[5], etc... -- interfaces.definecommand ("column"..purexlsname, { arguments = { { "string"} }, macro = function (opt_1) if opt_1~="" then context(thirddata.handlecsv.getcellcontentof(inpcsvfile,xlsname,tonumber(opt_1))) else context(thirddata.handlecsv.getcellcontentof(inpcsvfile,xlsname,thirddata.handlecsv.gCurrentLinePointer[inpcsvfile])) end end }) -- -- and now create hooks macros: if thirddata.handlecsv.gUseHooks then context.setgvalue(hookxlsname,'\\bch\\bch'..xlsname..'\\'..xlsname..'\\ech'..xlsname..'\\ech') -- defining automatic TeX macros \hcA, \hcB, atd. resp. \hcI, \hcII, ... containing 'hooked' contents of the line. Macros with names of the headers are updated automatically) context.setgvalue(hookmacroname,'\\bch\\bch'..macroname..'\\'..xlsname..'\\ech'..macroname..'\\ech ') -- defining automatic TeX macros \hName, \hDate, etc. (names gets from header), containing 'hooked' contents of the line. Macros with names of the headers are updated automatically) end end -- for i=1, end -- function thirddata.handlecsv.assigncontentsof(inpcsvfile,line) -- put data into columns macros function thirddata.handlecsv.assigncontents(line) -- put data into columns macros thirddata.handlecsv.assigncontentsof(thirddata.handlecsv.getcurrentcsvfilename(),line) end function thirddata.handlecsv.getcellcontentof(csvfile,column,row) -- Read data from specific cell of specific the csv table -- local returnparametr='nil' -- 1.10.2015 local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) local returnparametr='' -- 9.1.2016 local column=column local row=row if type(column)=='string' then local testcolumn=thirddata.handlecsv.gColNames[csvfile][column] if testcolumn==nil then column=thirddata.handlecsv.xls2ar(column) else column=testcolumn end else testcolumn=tonumber(column) if testcolumn==nil then column=0 else column=testcolumn end end if column<=0 then column=1 end if column>thirddata.handlecsv.gNumCols[csvfile] then column=thirddata.handlecsv.gNumCols[csvfile] end if type(row)=='string' then local testrow=tonumber(row) if testrow==nil then row=0 else row=testrow end end if type(column)=='number' and type(row)=='number' then if row>0 and row <=thirddata.handlecsv.gNumRows[csvfile] and column>=0 and column<=thirddata.handlecsv.gNumCols[csvfile] then returnparametr=thirddata.handlecsv.gTableRows[csvfile][row][column] elseif row==0 then returnparametr=thirddata.handlecsv.gColumnNames[csvfile][column] end end return returnparametr end function thirddata.handlecsv.getcellcontent(column,row) -- Read data from specific cell of current open csv table local csvfile=thirddata.handlecsv.getcurrentcsvfilename() local returnparametr=thirddata.handlecsv.getcellcontentof(csvfile,column,row) return returnparametr end function thirddata.handlecsv.nextlineof(csvfile) -- Move line pointer to next line. local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) if thirddata.handlecsv.gCurrentLinePointer[csvfile] > thirddata.handlecsv.gNumRows[csvfile] then thirddata.handlecsv.gCurrentLinePointer[csvfile]=thirddata.handlecsv.gNumRows[csvfile] context([[\global\EOFtrue%]]) context([[\global\notEOFfalse%]]) else thirddata.handlecsv.gCurrentLinePointer[csvfile]=thirddata.handlecsv.gCurrentLinePointer[csvfile]+1 context([[\global\EOFfalse%]]) context([[\global\notEOFtrue%]]) end end function thirddata.handlecsv.nextline() -- Move line pointer to next line. local csvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.nextlineof(csvfile) end function thirddata.handlecsv.previouslineof(csvfile) -- Move line pointer to previous line. local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) if thirddata.handlecsv.gCurrentLinePointer[csvfile] < 2 then thirddata.handlecsv.gCurrentLinePointer[csvfile] = 1 else thirddata.handlecsv.gCurrentLinePointer[csvfile]=thirddata.handlecsv.gCurrentLinePointer[csvfile] - 1 end context([[\global\EOFfalse%]]) context([[\global\notEOFtrue%]]) end function thirddata.handlecsv.previousline() -- Move line pointer to previous line. local csvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.previouslineof(csvfile) end function thirddata.handlecsv.setlinepointerof(csvfile,numberofline) local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) local numberofline = thirddata.handlecsv.processinputvalue(numberofline,thirddata.handlecsv.gCurrentLinePointer[csvfile]) if numberofline < 1 then numberofline = 1 end if numberofline > thirddata.handlecsv.gNumRows[csvfile] then numberofline=thirddata.handlecsv.gNumRows[csvfile] end thirddata.handlecsv.gCurrentLinePointer[csvfile]=numberofline thirddata.handlecsv.readlineof(csvfile,numberofline) end function thirddata.handlecsv.setlinepointer(numberofline) local csvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.setlinepointerof(csvfile,numberofline) end function thirddata.handlecsv.savelinepointer() local csvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.gSavedLinePointerNo = thirddata.handlecsv.gCurrentLinePointer[csvfile] end function thirddata.handlecsv.setsavedlinepointer() thirddata.handlecsv.setlinepointer(thirddata.handlecsv.gSavedLinePointerNo) end function thirddata.handlecsv.resetlinepointerof(csvfile) -- Take pointer to first row of table local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) thirddata.handlecsv.setlinepointerof(csvfile,1) end function thirddata.handlecsv.resetlinepointer() -- Take pointer to first row of table local csvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.setlinepointerof(csvfile,1) end function thirddata.handlecsv.linepointerof(csvfile) local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) return thirddata.handlecsv.gCurrentLinePointer[csvfile] end function thirddata.handlecsv.linepointer() local csvfile=thirddata.handlecsv.getcurrentcsvfilename() -- return thirddata.handlecsv.gCurrentLinePointer[csvfile] -- cause problem with decimal point for higher versions of Lua -- return math.tointeger(thirddata.handlecsv.gCurrentLinePointer[csvfile]) -- cause incompatibility for lower version of Lua return math.floor(tonumber(thirddata.handlecsv.gCurrentLinePointer[csvfile])) -- compatible with lower and higher versions of Lua end function thirddata.handlecsv.getcurrentlinepointer() -- for compatibility return thirddata.handlecsv.linepointer() end function thirddata.handlecsv.getlinepointer() -- for compatibility return thirddata.handlecsv.linepointer() end function thirddata.handlecsv.setnumlineof(csvfile,numline) local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) thirddata.handlecsv.gNumLine[csvfile]=numline end function thirddata.handlecsv.setnumline(numline) local csvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.setnumlineof(csvfile,numline) end function thirddata.handlecsv.resetnumlineof(csvfile) local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) thirddata.handlecsv.setnumlineof(csvfile,0) end function thirddata.handlecsv.resetnumline() local csvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.resetnumlineof(csvfile) end function thirddata.handlecsv.addtonumlineof(inpcsvfile,numline) local inpcsvfile=thirddata.handlecsv.handlecsvfile(inpcsvfile) thirddata.handlecsv.gNumLine[inpcsvfile]=thirddata.handlecsv.gNumLine[inpcsvfile]+numline end function thirddata.handlecsv.addtonumline(numline) local inpcsvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.addtonumlineof(inpcsvfile,numline) end function thirddata.handlecsv.numlineof(csvfile) local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) return thirddata.handlecsv.gNumLine[csvfile] end function thirddata.handlecsv.numline() local csvfile=thirddata.handlecsv.getcurrentcsvfilename() return thirddata.handlecsv.gNumLine[csvfile] end function thirddata.handlecsv.nextnumlineof(csvfile) -- Move numline pointer to next number. local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) thirddata.handlecsv.gNumLine[csvfile]=thirddata.handlecsv.gNumLine[csvfile]+1 end function thirddata.handlecsv.nextnumline() -- Move numline pointer to next number. local csvfile=thirddata.handlecsv.getcurrentcsvfilename() thirddata.handlecsv.gNumLine[csvfile]=thirddata.handlecsv.gNumLine[csvfile]+1 end function thirddata.handlecsv.numrowsof(csvfile) local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) -- context(thirddata.handlecsv.gNumRows[csvfile]) return thirddata.handlecsv.gNumRows[csvfile] end function thirddata.handlecsv.numrows() local csvfile=thirddata.handlecsv.getcurrentcsvfilename() -- context(thirddata.handlecsv.gNumRows[csvfile]) return thirddata.handlecsv.gNumRows[csvfile] end function thirddata.handlecsv.numemptyrows() return thirddata.handlecsv.gNumEmptyRows[thirddata.handlecsv.getcurrentcsvfilename()] end function thirddata.handlecsv.numnotemptyrows() return thirddata.handlecsv.gNumRows[thirddata.handlecsv.getcurrentcsvfilename()]-thirddata.handlecsv.gNumEmptyRows[thirddata.handlecsv.getcurrentcsvfilename()] end function thirddata.handlecsv.numcolsof(csvfile) local csvfile=thirddata.handlecsv.handlecsvfile(csvfile) context(thirddata.handlecsv.gNumCols[csvfile]) end function thirddata.handlecsv.numcols() local csvfile=thirddata.handlecsv.getcurrentcsvfilename() context(thirddata.handlecsv.gNumCols[csvfile]) -- thirddata.handlecsv.numcolsof(csvfile) end function thirddata.handlecsv.resethooks() -- initialize ConTeXt hooks context([[% \letvalue{blinehook}=\relax% \letvalue{elinehook}=\relax% \letvalue{bfilehook}=\relax% \letvalue{efilehook}=\relax% \letvalue{bch}=\relax% \letvalue{ech}=\relax% ]]) end function thirddata.handlecsv.string2context(str2ctx) -- for safety writen local s=str2ctx s=string.gsub(s, "%%(.-)\n", "\n") -- remove TeX comments from string. From % character to the end of line -- s=string.gsub(s, '\n', "") context(s) -- texsprint(s) -- for debugging ... end function thirddata.handlecsv.doloopfromto(from, to, action) context[[\opencsvfile]] context[[\edef\tempnumline{\numline}]] -- 23.6.2017 context[[\resetnumline]] -- uncommented 23.6.2017 if thirddata.handlecsv.gUseHooks then context[[\bfilehook]] end context[[\removeunwantedspaces]] local csvfile=thirddata.handlecsv.getcurrentcsvfilename() local gnumrows=thirddata.handlecsv.gNumRows[csvfile]+0 local from=from+0 local to=to+0 local step=1 local docycle=true if (from>gnumrows and to>gnumrows) then docycle=false end if docycle then if from>to then step=-1 if from>gnumrows then from=gnumrows end if to<0 then to=0 end else -- if from<=to if to>gnumrows then to=gnumrows end if from<0 then from=1 end end for i=from, to, step do if thirddata.handlecsv.gUseHooks then context[[\blinehook]] end context([[\readline{]]..i..[[}]]) -- context(action) if thirddata.handlecsv.gUseHooks then context[[\elinehook]] end end end -- docycle -- context[[\removeunwantedspaces]] if thirddata.handlecsv.gUseHooks then context[[\efilehook]] end context[[\setnumline{\tempnumline}]] -- 23.6.2017 end -- function thirddata.handlecsv.doloopfromto function thirddata.handlecsv.doloopfornext(numberofrows, action) if thirddata.handlecsv.gUseHooks then context[[\bfilehook]] end context[[\removeunwantedspaces]] local csvfile=thirddata.handlecsv.getcurrentcsvfilename() local gnumrows=thirddata.handlecsv.gNumRows[csvfile]+0 local from=thirddata.handlecsv.gCurrentLinePointer[csvfile]+0 local to=thirddata.handlecsv.gCurrentLinePointer[csvfile]+numberofrows local step=1 local docycle=true if from>to then step=-1 if from>gnumrows then from=gnumrows end if to<0 then to=0 end else -- if from<=to if to>gnumrows then to=gnumrows end if from<0 then from=1 end end for i=from, to-step, step do if thirddata.handlecsv.gUseHooks then context[[\blinehook]] end context([[\readline{]]..i..[[}]]) -- context(thirddata.handlecsv.readline(i)) context(action) if thirddata.handlecsv.gUseHooks then context[[\elinehook]] end end thirddata.handlecsv.addtonumline(-1) context[[\removeunwantedspaces]] if thirddata.handlecsv.gUseHooks then context[[\efilehook]] end context[[\nextrow]] end -- function thirddata.handlecsv.doloopfornext -- ConTeXt source: local string2print=[[% % library newifs for testing during processing CSV table \newif\ifissetheader% \newif\ifnotsetheader% \newif\ifEOF% \newif\ifnotEOF% \newif\ifemptyline% \newif\ifnotemptyline% \newif\ifemptylinesmarking% setting by macros \markemptylines and \notmarkemptylines \newif\ifemptylinesnotmarking% setting by \markemptylines and \notmarkemptylines % Macros defining above in source text: \let\lineaction\empty% set user define macro into default value \def\resethooks{\ctxlua{context(thirddata.handlecsv.resethooks())}} \resethooks % -- DO IT NOW !!! \def\hookson{\ctxlua{thirddata.handlecsv.hookson()}} \let\usehooks\hookson % -- synonym only \def\hooksoff{\ctxlua{thirddata.handlecsv.hooksoff()}} \def\setheader{\ctxlua{thirddata.handlecsv.setheader()}} \def\unsetheader{\ctxlua{thirddata.handlecsv.unsetheader()}} \let\resetheader\unsetheader % -- for compatibility \def\setsep#1{\ctxlua{thirddata.handlecsv.setsep('#1')}} \def\unsetsep{\ctxlua{thirddata.handlecsv.unsetsep()}} \let\resetsep\unsetsep % -- for compatibility \def\setfiletoscan#1{\ctxlua{thirddata.handlecsv.setfiletoscan('#1');thirddata.handlecsv.opencsvfile()}} \def\setcurrentcsvfile[#1]{\ctxlua{thirddata.handlecsv.setgetcurrentcsvfile('#1')}} \def\numrows{\ctxlua{context(thirddata.handlecsv.numrows())}} \def\numrowsof[#1]{\ctxlua{context(thirddata.handlecsv.numrowsof('#1'))}} \def\numcols{\ctxlua{context(thirddata.handlecsv.gNumCols[thirddata.handlecsv.gCurrentlyProcessedCSVFile])}} \def\numcolsof[#1]{\ctxlua{context(thirddata.handlecsv.gNumCols['#1'])}} \def\currentcsvfile{\ctxlua{context(thirddata.handlecsv.getcurrentcsvfilename())}} \let\csvfilename\currentcsvfile % for compatibility using \def\numemptyrows{\ctxlua{context(thirddata.handlecsv.numemptyrows())}} \def\numnotemptyrows{\ctxlua{context(thirddata.handlecsv.numnotemptyrows())}} % usefull tool macros : % Pass the contents of the macro into parameter \def\thenumexpr#1{\the\numexpr(#1+0)} % Add content (#2) into content of macro #1 \long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}} % Expanded version of previous macro \long\def\eaddto#1#2{\edef#1{#1#2}} % Get content of specific cell of CSV table. Calling: \csvcell[column number,row number] OR \csvcell['ColumnName',row number] \def\getcsvcell[#1,#2]{\ctxlua{context(thirddata.handlecsv.getcellcontent(#1,#2))}}% %%%%%\def\getcsvcell[#1,#2]{\if!#2!\ctxlua{context(thirddata.handlecsv.getcellcontent(#1,thirddata.handlecsv.gCurrentLinePointer[thirddata.handlecsv.getcurrentcsvfilename()]))}\else\ctxlua{context(thirddata.handlecsv.getcellcontent(#1,#2))}\fi}% % Get content of specific cell of CSV table. Calling: \csvcell[column number,row number] OR \csvcell['ColumnName',row number] \def\getcsvcellof[#1][#2,#3]{\ctxlua{context(thirddata.handlecsv.getcellcontentof("#1",#2,#3))}}% % Get content of specific cell of CSV table. Calling: \csvcell[column number,row number or row number getting from macro] OR \csvcell['ColumnName',row number or row number getting from macro] \def\csvcell[#1,#2]{\getcsvcell[#1,\the\numexpr(#2+0)]}% %\def\csvcell\getcsvcell % Get content of specific cell of current line of CSV table. Calling: \currentcell{column number} OR \currentcell{'ColumnName'} \def\currentcsvcell#1{\getcsvcell[#1,\thenumexpr{\linepointer}]}% \let\currcell\currentcsvcell % Get content of specific cell of next line of CSV table. Calling: \nextcell{column number} OR \nextcell{'ColumnName'} \def\nextcsvcell#1{\ifnum\linepointer<\numrows{\getcsvcell[#1,\thenumexpr{\linepointer+1}]}\fi}% \let\nextcell\nextcsvcell % Get content of specific cell of previous line of CSV table. Calling: \previouscell{column number} OR \previouscell{'ColumnName'} \def\previouscsvcell#1{\ifnum\linepointer>1{\getcsvcell[#1,\thenumexpr{\linepointer-1}]}\fi}% \let\prevcell\previouscsvcell % Get column name of n-th column of CSV table. When is set header, then get headername else get XLSname \def\colnameof[#1][#2]{\ctxlua{context(thirddata.handlecsv.gColumnNames['#1'][#2])}}% \def\colname[#1]{\ctxlua{context(thirddata.handlecsv.gColumnNames[thirddata.handlecsv.getcurrentcsvfilename()][#1])}}% % Get index (ie serrial number) of strings columns names (own name or XLS name) \def\indexcolnameof[#1][#2]{\ctxlua{context(thirddata.handlecsv.gColNames['#1'][#2])}}% \def\indexcolname[#1]{\ctxlua{context(thirddata.handlecsv.gColNames[thirddata.handlecsv.getcurrentcsvfilename()][#1])}}% % Get (alternative) XLS column name (of n-th column) \def\xlscolname[#1]{\ctxlua{context(thirddata.handlecsv.ar2colnum(#1))}}% % Get (alternative) XLS column name (of n-th column) \def\cxlscolname[#1]{\ctxlua{context('c'..thirddata.handlecsv.ar2colnum(#1))}}% % Get column TeX name of n-th column of CSV table. When is set header, then get headername else get XLSname \def\texcolname[#1]{\ctxlua{context(thirddata.handlecsv.tmn(thirddata.handlecsv.gColumnNames[thirddata.handlecsv.getcurrentcsvfilename()][#1]))}}% % Get content of n-th column of current row \def\columncontent[#1]{% \getcsvcell[#1,\ctxlua{context(thirddata.handlecsv.linepointer())}] % %\getcsvcell[#1,\linepointer]% %\getcsvcell[#1,\ctxlua{context(thirddata.handlecsv.linepointer())}]% %\ctxlua{context(tostring(thirddata.handlecsv.getcellcontent(#1,8)))} }% % Substitution of text #2 in cell content by text #3. Substitution is done in the current column of column #1 (number, XLS name or cX name) \def\replacecontentin#1#2#3{\ctxlua{context(thirddata.handlecsv.substitutecontentofcellofcurrentrow('#1','#2','#3'))}}% % Get number from XLS column name (ie n-th column) \def\numberxlscolname[#1]{\ctxlua{context(thirddata.handlecsv.xls2ar(#1))}}% %%%\def\columncontent[#1]{\ctxlua{context(thirddata.handlecsv.getcellcontent(#1,thirddata.handlecsv.linepointer()))}} %%%\def\columncontent[#1]{\ctxlua{context(thirddata.handlecsv.getcellcontent(thirddata.handlecsv.gColNames[#1],thirddata.handlecsv.linepointer()))}} \def\columncontentof[#1][#2]{\ctxlua{context(thirddata.handlecsv.getcellcontentof('#1',thirddata.handlecsv.gColNames['#1'][#2],thirddata.handlecsv.linepointerof('#1')))}} \def\columncontent[#1]{\ctxlua{context(thirddata.handlecsv.getcellcontent(thirddata.handlecsv.gColNames[thirddata.handlecsv.getcurrentcsvfilename()][#1],thirddata.handlecsv.linepointerof(thirddata.handlecsv.getcurrentcsvfilename())))}} \def\resetlinepointer{\ctxlua{context(thirddata.handlecsv.resetlinepointer())}} \def\resetlinepointerof[#1]{\ctxlua{context(thirddata.handlecsv.resetlinepointerof('#1'))}} \let\resetlineno\resetlinepointer \let\resetsernumline\resetlinepointer \def\setnumline#1{\ctxlua{thirddata.handlecsv.setnumline(#1)}} \def\resetnumline{\ctxlua{context(thirddata.handlecsv.resetnumline())}} \resetnumline % DO IT NOW \def\linepointer{\ctxlua{context(thirddata.handlecsv.linepointer())}} \def\linepointerof[#1]{\ctxlua{context(thirddata.handlecsv.linepointerof('#1'))}} \let\lineno\linepointer \let\sernumline\linepointer \def\numline{\ctxlua{context(thirddata.handlecsv.numline())}} \def\addtonumline#1{\ctxlua{thirddata.handlecsv.addtonumline(#1)}} %\def\setlinepointer#1{\ctxlua{thirddata.handlecsv.setlinepointer(#1);thirddata.handlecsv.readline(#1)}} \def\setlinepointerof[#1]#2{\ctxlua{thirddata.handlecsv.setlinepointerof('#1',#2)}} \def\setlinepointer#1{\ctxlua{thirddata.handlecsv.setlinepointer(#1)}} \def\savelinepointer{\ctxlua{thirddata.handlecsv.savelinepointer()}} \let\savelineno\savelinepointer % synonym \def\setsavedlinepointer{\ctxlua{thirddata.handlecsv.setsavedlinepointer()}} \let\setsavedlineno\setsavedlinepointer % synonym \def\indexofnotemptyline#1{\ctxlua{context(thirddata.handlecsv.indexofnotemptyline(#1))}} \def\indexofemptyline#1{\ctxlua{context(thirddata.handlecsv.indexofemptyline(#1))}} \def\notmarkemptylines{\ctxlua{thirddata.handlecsv.notmarkemptylines()}} \def\markemptylines{\ctxlua{thirddata.handlecsv.markemptylines()}} \def\resetmarkemptylines{\ctxlua{thirddata.handlecsv.resetmarkemptylines()}}% \def\removeemptylines{\ctxlua{thirddata.handlecsv.removeemptylines()}}% \def\nextlineof[#1]{\ctxlua{thirddata.handlecsv.nextlineof('#1')}} % -- macro for skip to next line. \nextlineof no read data from current line unlike \nextrow macro. \def\nextline{\ctxlua{thirddata.handlecsv.nextline()}} % -- macro for skip to next line. \nextline no read data from current line unlike \nextrow macro. \def\prevlineof[#1]{\ctxlua{thirddata.handlecsv.previouslineof('#1')}} % -- macro for skip to previous line. \prevlineof no read data from current line unlike \prevrowof macro. \def\prevline{\ctxlua{thirddata.handlecsv.previousline()}} % -- macro for skip to previous line. \prevline no read data from current line unlike \prevrow macro. \def\nextnumline{\ctxlua{thirddata.handlecsv.nextnumline()}} % -- macro for add numline counter. %\def\nextrow{\readline\nextline} % -- For compatibility \def\nextrow{\nextline\readline} % -- For compatibility (changed 2015-09-22) \def\nextrowof[#1]{\nextlineof[#1]\readlineof[#1]{\ctxlua{context(thirddata.handlecsv.linepointerof('#1'))}}} % -- For compatibility (changed 2015-09-22) %\def\nextrowof[#1]{\nextlineof[#1]\readlineof[#1]{\ctxlua{context(thirddata.handlecsv.gCurrentLinePointer['#1'])}}} % -- For compatibility (changed 2015-09-22) \def\prevrow{\prevline\readline} \def\prevrowof[#1]{\prevlineof[#1]\readlineof[#1]{\ctxlua{context(thirddata.handlecsv.linepointerof('#1'))}}} \def\exitlooptest{\ifEOF\exitloop\else\nextrow\fi} % MAIN CONTEXT MACRO DEFINITIONS % Open CSV file. Syntax: \opencsvfile or \opencsvfile{filename}. \def\opencsvfile{% \dosingleempty\doopencsvfile% }% \def\doopencsvfile[#1]{% \dosinglegroupempty\dodoopencsvfile% }% \def\dodoopencsvfile#1{% \iffirstargument% \ctxlua{thirddata.handlecsv.opencsvfile("#1")}% \doifnot{\env{MainLinePointer}}{}{\setlinepointer{\env{MainLinePointer}}}% added by Pablo \else% \ctxlua{thirddata.handlecsv.opencsvfile()}% \fi% }% % manual closing of CSV file \def\closecsvfile#1{\ctxlua{thirddata.handlecsv.closecsvfile("#1")}} % Read data from n-th line of CSV table. Calling without parameter read current line (pointered by global variable) \def\readline{\dosingleempty\doreadline}% \def\doreadline[#1]{\dosinglegroupempty\dodoreadline}% % They must remain in such a compact form, otherwise it returns unwanted gaps !!!! \def\dodoreadline#1{\iffirstargument\ctxlua{thirddata.handlecsv.readline(#1)}\else\ctxlua{thirddata.handlecsv.readline(thirddata.handlecsv.gCurrentLinePointer[thirddata.handlecsv.gCurrentlyProcessedCSVFile])}\fi}% \def\readlineof[#1]#2{\ctxlua{thirddata.handlecsv.readlineof('#1',#2)}} %\def\readline{\ctxlua{thirddata.handlecsv.readline(thirddata.handlecsv.gCurrentLinePointer[thirddata.handlecsv.gCurrentlyProcessedCSVFile])}}% \def\readandprocessparameters#1#2#3#4{% \edef\firstparam{#1}% \edef\secondparam{#2}% \edef\thirdparam{#3}% \def\fourthparam{#4}% \edef\paroperator{#2}% % operator '==' is for strings comparing converted to 'eq' operator; a blank space before the percent sign is strictly required!!! \ctxlua{if '#2'=="==" and not(type(tonumber('#1'))=='number' and type(tonumber('#3'))=='number') then context('\\def\\paroperator{eq}') end}% % operator '~=' is for strings comparing converted to 'neq' operator; a blank space before the percent sign is strictly required !!! \ctxlua{if '#2'=="~=" and not(type(tonumber('#1'))=='number' and type(tonumber('#3'))=='number') then context('\\def\\paroperator{neq}') end}% }% % MACROS FOR CYCLES PROCESSING. DO ACTIONS IN CYCLES % In this function to remove unwanted gaps % 1. \doloopfromto{from}{to}{action} % do action "action" from line "from" to line "to" of open CSV file \def\doloopfromto#1#2#3{\ctxlua{thirddata.handlecsv.doloopfromto([==[\thenumexpr{#1}]==],[==[\thenumexpr{#2}]==],[==[\detokenize{#3}]==])}}% %\def\doloopfromto#1#2#3{\ctxlua{thirddata.handlecsv.doloopfromto([==[\thenumexpr{#1}]==],[==[\thenumexpr{#2}]==],[==[\expanded{#3}]==])}}% \def\Doloopfromto#1#2#3{% deprecated - old version - no longer recommended {\opencsvfile}% {\resetnumline}% \bfilehook% \removeunwantedspaces% \ifnum#1<#2\dostepwiserecurse{#1}{#2}{1}{\blinehook{\readline{\recurselevel}}#3\elinehook}% \else\dostepwiserecurse{#1}{#2}{-1}{\blinehook{\readline{\recurselevel}}#3\elinehook}% \fi% \removeunwantedspaces% \efilehook% }% % 2. \doloopforall % implicit do \lineaction for all lines of open CSV table % \doloopforall{\action} % do \action macro for all lines of open CSV table \def\doloopforall{\dosinglegroupempty\doloopforAll}% \def\doloopforAll#1{% \doifsomethingelse{#1}{%1 args. \doloopfromto{1}{\numrows}{#1}% }{% \doloopfromto{1}{\numrows}{\lineaction}% }% }% % 3. \doloopaction % implicit use \lineaction macro % \doloopaction{\action} % use \action macro for all lines of open CSV file % \doloopaction{\action}{4} % use \action macro for first 4 lines % \doloopaction{\action}{2}{5} % use \action macro for lines from 2 to 5 \def\doloopaction{\dotriplegroupempty\doloopAction} \def\doloopAction#1#2#3{% \opencsvfile% % \resetnumline % commented 22.6.2017 \doifsomethingelse{#3}{%3 args. \doloopfromto{#2}{#3}{#1}% if 3 arguments then do #1 macro from #2 line to #3 line }{% \doifsomethingelse{#2}{%2 args. \doloopfromto{1}{#2}{#1}% if 2 arguments then do #1 macro for first #2 lines }% {\doifsomethingelse{#1}{% 1 arg. \doloopfromto{1}{\numrows}{#1}% }{% if without arguments then do \lineaction macro for all lines \doloopfromto{1}{\numrows}{\lineaction}% }% }% }% }% % 4. \doloopif{value1}{[compare_operator]}{value2}{macro_for_doing} % [compareoperators] <, >, ==(eq), ~=(neq), >=, <=, in, ~in, until, while % actions for rows of open CSV file which are responded of condition \def\doloopif#1#2#3#4{% \edef\tempnumline{\numline}% 23.6.2017 \readandprocessparameters{#1}{#2}{#3}{#4}% \removeunwantedspaces% 25.3.2019 % \resetnumline % 22.6.2017 \bfilehook% % and now process actual operator \processaction[\paroperator][% <=>{% {number1}{<}{number2} ... Less \doloopfromto{1}{\numrows}{\ctxlua{if #1<#3 then context('\\blinehook\\fourthparam\\elinehook') else thirddata.handlecsv.addtonumline(-1) end}}% },% end < ... Less >=>{% {number1}{>}{number2} ... Greater \doloopfromto{1}{\numrows}{\ctxlua{if #1>#3 then context('\\blinehook\\fourthparam\\elinehook') else thirddata.handlecsv.addtonumline(-1) end}}% },% end > ... Greater ===>{% {number1}{==}{number2} ... Equal \doloopfromto{1}{\numrows}{\ctxlua{if #1==#3 then context('\\blinehook\\fourthparam\\elinehook') else thirddata.handlecsv.addtonumline(-1) end}}% },% end == ... Equal ~==>{% {number1}{~=}{number2} ... Not Equal \doloopfromto{1}{\numrows}{\ctxlua{if #1~=#3 then context('\\blinehook\\fourthparam\\elinehook') else thirddata.handlecsv.addtonumline(-1) end}}% },% end ~= ... Not Equal >==>{% {number1}{>=}{number2} ... GreaterOrEqual \doloopfromto{1}{\numrows}{\ctxlua{if #1>=#3 then context('\\blinehook\\fourthparam\\elinehook') else thirddata.handlecsv.addtonumline(-1) end}}% },% end >= ... GreaterOrEqual <==>{% {number1}{<=}{number2} ... LessOrEqual \doloopfromto{1}{\numrows}{\ctxlua{if #1<=#3 then context('\\blinehook\\fourthparam\\elinehook') else thirddata.handlecsv.addtonumline(-1) end}}% },% end <= ... LessOrEqual eq=>{% command {string1}{==}{string2} is converted to command command {string1}{eq}{string2} ... string1 is equal string2 \doloopfromto{1}{\numrows}{\doifelse{#1}{#3}{\blinehook\fourthparam\elinehook}{\addtonumline{-1}}}% 23.06.2017 %%%%%\doloopfromto{1}{\numrows}{\ctxlua{if '#1'=='#3' then context('\\blinehook\\fourthparam\\elinehook') else thirddata.handlecsv.addtonumline(-1) end}}% },% end eq neq=>{% command {string1}{~=}{string2} is converted to command command {string1}{neq}{string2} ... string1 is not equal string2 \doloopfromto{1}{\numrows}{\doifelse{#1}{#3}{\ctxlua{thirddata.handlecsv.addtonumline(-1)}}{\blinehook\fourthparam\elinehook}}% 23.06.2017 %%%%%\doloopfromto{1}{\numrows}{\ctxlua{if '#1'~='#3' then context('\\blinehook\\fourthparam\\elinehook') else thirddata.handlecsv.addtonumline(-1) end}}% },% end neq in=>{% {substring}{in}{string} ... substring is contained inside string \doloopfromto{1}{\numrows}{\doifinstringelse{#1}{#3}{\blinehook\fourthparam\elinehook}{\addtonumline{-1}}}% \doifincsnameelse },% end in ~in=>{% {substring}{~in}{string} ... substring is not contained inside string \doloopfromto{1}{\numrows}{\doifinstringelse{#1}{#3}{\addtonumline{-1}}{\blinehook\fourthparam\elinehook}}% \doifincsnameelse },% end notin repeatuntil=>{% {substring}{until}{string} ... % Repeats the action until the condition is met. If it is not never met, will list all record \doloop{\ctxlua{if '#1'=='#3' then context('\\exitloop') else context('\\ifEOF\\exitloop\\else\\blinehook\\fourthparam\\elinehook\\nextrow\\fi') end}}% },% end until % the comma , is very important here!!! whiledo=>{% {substring}{untilneq}{string} ... % Repeat action when the condition is met. When the condition is not met for the first line, the action will NOT BE performed! \doloop{\ctxlua{if '#1'~='#3' then context('\\exitloop') else context('\\removeunwantedspaces\\blinehook\\fourthparam\\elinehook\\ifEOF\\exitloop\\else\\nextrow\\fi') end}}% },% end untilneq % the comma , is very important here!!! ]% end of \processaction% \efilehook% \setnumline{\tempnumline}% \removeunwantedspaces% 30.3.2019 } % end of \doloopif % specific variations of previous macro \doloopif \letvalue{doloopifnum}=\doloopif %\doloopifnum{value1}{[compare_operator]}{value2}{macro_for_doing}% [compareoperators] ==, ~=, >, <, >=, <= % FOR COMPATIBILITY ONLY \def\doloopuntil#1#2#3{\doloopif{#1}{repeatuntil}{#2}{#3}}% \doloopuntil{\Trida}{3.A}{\tableaction}% REPEAT-UNTIL loop: Repeats the action until the condition is met. \letvalue{repeatuntil}=\doloopuntil% \def\doloopwhile#1#2#3{\doloopif{#1}{whiledo}{#2}{#3}}% \doloopwhile{\Trida}{3.A}{\tableaction}% Repeat action when the condition is met. \letvalue{whiledo}=\doloopwhile% % 5. \filelineaction % implicit do \lineaction for all lines of current open CSV table % \filelineaction{filename.csv} % do \lineaction macro for all lines of specific CSV table (filename.csv) \def\filelineaction{\dotriplegroupempty\dofilelineaction}% \def\dofilelineaction#1#2#3{% \doifelsenothing{#1}% {\opencsvfile\doloopaction%0 parameter - open actual CSV file and do action }% {\doifelsenothing{#2}% {\opencsvfile{#1}\doloopaction%1 parameter - parameter = filename }% {\doifelsenothing{#3}% {\opencsvfile{#1}\doloopaction{\lineaction}{#2}%2 parameters, 1st parameter = filename, 2nd parameter = num of lines }% {\opencsvfile{#1}\doloopaction{\lineaction}{#2}{#3}%3 parameters, 1st parameter = filename, 2nd parameter = from line, 3rd parameter = to line }}}% }% % 6. \doloopfornext{}{} % do action for next of rows from current line of open CSV file \def\doloopfornext#1#2{\ctxlua{thirddata.handlecsv.doloopfornext([==[\thenumexpr{#1}]==],[==[\detokenize{#2}]==])}}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Complete listing macros and commands that can be used (to keep track of all defined macros): %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \ifissetheader, \ifnotsetheader % \ifEOF, \ifnotEOF % \ifemptyline, \ifnotemptyline % \ifemptylinesmarking, \ifemptylinesnotmarking (they can be set by macros \markemptylines, \notmarkemptylines and \resetmarkemptylines) % \hookson, \hooksoff % \resethooks % user defined hooks macros: \bfilehook, \efilehook, \blinehook, \elinehook, % \setheader, \unsetheader, (\resetheader - compatibility synonym) % \setsep{}, \unsetsep, (\resetsep - compatibility synonym) % \setfiletoscan{} % \numrows, \numemptyrows, \numnotemptyrows % \numcols % \csvfilename % \thenumexp{} % \addto\anymacro{}, \eaddto\anymacro{} % \getcsvcell[,], \csvcell[,] % \currentcell{], \cxlscolname[], \texcolname[] % \indexcolname[<'columnname' or 'xlsname'>] % \columncontent[ or <'columnname'> or <'xlsname'>] % \numberxlscolname[<'xlsname'>] % \linepointer, (\lineno, \sernumline are synonyms), \resetlinepointer, \resetlinepointerof[], (\resetlineno, \resetsernumline are synonyms), \setlinepointer{} % \savelineno=\savelinepointer, \setsavedlineno=\setsavedlinepointer % \numline, \setnumline{}, \resetnumline % \addtonumline{} % \indexofnotemptyline{}, \indexofemptyline{} % \markemptylines, \notmarkemptylines, \resetmarkemptylines, \removeemptylines % \nextlineof[csvfile], \prevlineof[csvfile], \nextline, \prevline % \nextnumline % \nextrowof[csvfile], \prevrowof[csvfile], \nextrow, \prevrow % \exitlooptest % \opencsvfile, \opencsvfile{}, \closecsvfile{} % \readline, \readline{} % \readandprocessparameters#1#2#3#4 -- for internal use only % \replacecontentin{}{}{} % % Module predefined cycles for processing of lines CSV table: % \doloopfromto{}{} % \doloopforall, \doloopforall{<\actionmacro>} % \doloopaction, \doloopaction{<\actionmacro>}, \doloopaction{<\actionmacro>}{}, \doloopaction{<\actionmacro>}{}{} % \doloopif{}{}{value2}{<\actionmacro>}, (\doloopifnum{}{}{value2}{<\actionmacro>} is synonym) % \doloopuntil{}{}{<\actionmacro>} = \repeatuntil{}{}{<\actionmacro>} % \doloopwhile{}{}{<\actionmacro>} = \doloopwhiledo{}{}{<\actionmacro>} % \filelineaction, \filelineaction{} % \doloopfornext{<+/-numberofrows>}{<\actionmacro>} % use \setlinepointer, \resetlinepointer (and then set it up \setnumline) to set line pointer. Opening of CSV file automatically reset line pointer. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ]] -- write definitions into ConTeXt: thirddata.handlecsv.string2context(string2print) context-modules-20240428/tex/context/third/pocketdiary/0000755000175000017500000000000014613513621022005 5ustar hillehillecontext-modules-20240428/tex/context/third/pocketdiary/t-calendar.lua0000644000175000017500000004423514422277326024541 0ustar hillehilleif not modules then modules = { } end modules ['t-calendar'] = { version = "2023.04.15", comment = "Date calculation collection", author = "Willi Egger", copyright = "Willi Egger", email = "w.egger@boede.nl", license = "Public Domain" } thirddata = thirddata or { } thirddata.calendar = { } local calendar = thirddata.calendar local report = logs.reporter("Calendar") -- Determine whether the year is a leap year function calendar.isleapyear(year) local yeardays if (year % 4 == 0) and (year % 100 ~= 0 or year % 400 == 0) then yeardays = 366 else yeardays = 365 end -- report("Days in the year in function calendar.isleapyear: %d",yeardays) return yeardays end -- Lua calculates day 1 = sunday, day 0 = saturday -- -- Calculate the weekday of 1st of january according to S. Babwani -- w = floor(5*year/4)+f(m)+d- 2 * mod(cn,4) -- where w is the week day -- where year is the last two digits of the full year. -- where f(m) is 0 for january (See table 3 of Babwani's congruence) -- where d is the day: 1 for january -- where cn is the century function calendar.janfirst(y) local year = y -- report("Working in function: calendar.janfirst") -- report("Year in function: calendar.janfirst: %d",year) local cn = math.floor(year/100) -- century local yr = math.fmod(year,100) -- year without century local leap_year = calendar.isleapyear(year) -- returns values 365 or 366 -- report("Century %d",cn) -- report("Year without century %d",yr) -- report("Result of check for leapyear (days) %d",leap_year) local janfirst if leap_year == 365 then janfirst = math.fmod((math.floor((5 * yr) / 4) + 0 + 1 - (2 * (math.fmod(cn,4)))),7) else janfirst = math.fmod((math.floor((5 * yr) / 4) + 6 + 1 - (2 * (math.fmod(cn,4)))),7) end --report("Weekday of January 1st in function calendar.janfirst: %d",janfirst) return janfirst end -- Calculate the ordinal number of a given day of the year from the weeknumber function calendar.wknrordinal(wkdjf,wk,yr) local weekdayjanfirst = wkdjf local weeknumber = wk local year = yr report("Working in calendar.wknrordinal") --report("Weeknumber %d, Year: %d", weeknumber,year) -- This table contains the offset of the first monday after the 1st of -- january, -- as used in the calculation of the ordinal number of a day of the year local dyearbegin = {1,0,6,5,4,3,2} local ordinalday = (weeknumber - 1) * 7 + dyearbegin[weekdayjanfirst] --report("Ordinal day in calendar.wknrordinal: %d", ordinalday) leapyear = calendar.isleapyear(year) if ordinalday > leapyear then ordinalday = ordinalday - 7 end return ordinalday end -- Calculate the first day of a week calendar based on the week day of the 1st -- of january, date calculations based on the OS-timestamp function calendar.weekcalendar(wk,mn,yr) local weeknumber = wk local month = mn local year = yr report("Working in function: calendar.weekcalendar") --report("Week number: %d Year: %d",weeknumber,year) --report("Week number in function calendar.weekcalendar %d", weeknumber) if month == 1 and weeknumber > 51 then year = year -1 end local weekdayjanfirst = calendar.janfirst(year) --report("Weekday of January 1st from function calendar.weekcalendar: %d",weekdayjanfirst) if weekdayjanfirst == 0 then weekdayjanfirst = 7 end local janfirsttimestamp = os.time({year=year,month=1,day=1}) -- report("January 1st timestamp: %d", janfirsttimestamp) local startday = janfirsttimestamp local ordinalday = calendar.wknrordinal(weekdayjanfirst,weeknumber,year) --report("Ordinal day (function: calendar.weekcalendar): %d",ordinalday) if weekdayjanfirst > 1 and weekdayjanfirst <= 5 and weeknumber == 1 then startday = janfirsttimestamp - (weekdayjanfirst-1) * 24 * 60 * 60 elseif weekdayjanfirst == 3 or weekdayjanfirst == 4 or weekdayjanfirst == 5 and weeknumber ~= 1 then startday = janfirsttimestamp + (ordinalday-8) * 24 * 60 * 60 else startday = janfirsttimestamp + (ordinalday-1) * 24 * 60 * 60 end if ordinalday > 360 then startday = janfirsttimestamp + (ordinalday-1) * 24 * 60 * 60 end -- local q = os.date("%x",startday) -- --report("Start day of chosen week from function calendar.janfirst: %s", q) return startday end -- Select a weekday from the os.date table and return the day name value to ConTeXt function calendar.select_dayname(d,wk,mn,y) local weekday = d local weeknumber = wk local month = mn --not used but necessary for calendar.weekcalendar local year = y local startday = calendar.weekcalendar(weeknumber,month,year) local d = startday + weekday * 24 * 60 * 60 local s = string.lower(os.date("%a",d)) -- report("Working in function: calendar.select_dayname") local t = os.date("%d-%m-%Y",d) -- report("Startday+day! : %s", t) -- report("Day name: %s", s) return s end -- Select a date from the os.date table and return the value to ConTeXt function calendar.select_fulldate(weeknumber,year,day) local month = 5 --not used but necessary for calendar.weekcalendar local startday = calendar.weekcalendar(weeknumber,month,year) local d = startday + day * 24 * 60 * 60 local s = os.date("%d-%m-%Y",d) -- report("Working in function: calendar.select_fulldate") return context(s) end -- Select an ordinal day from the os.date table and return the day name value to ConTeXt function calendar.select_dayofmonth(d,wk,mn,y) local day = d local weeknumber = wk local month = mn local year = y -- report("Working in function: calendar.select_dayofmonth") -- report("Weeknumber: %s , Year: %s, Day: %s", weeknumber,year,day) local startday = calendar.weekcalendar(weeknumber,month,year) local d = startday + day * 24 * 60 * 60 local s = os.date("%d",d) local b = string.lower(os.date("%a",d)) local t = os.date("%d-%m-%Y",d) -- report("Asked day : %s", t) -- report("B Dayname: %s", b) s = tonumber(s) -- report("B Day number of month: %d", s) return s end -- Select the month number from the os.date table and return the value as a number function calendar.select_month(d,wk,y) local weeknumber = wk local year = y local day = d local month = 5 -- this is not used, but necessary for using calendar.weekcalendar -- report("Working in function: calendar.select_month") -- report("Day: %s, Weeknumber %s, Year: %s", day,weeknumber,year) local startday = calendar.weekcalendar(weeknumber,month,year) local d = startday + day * 24 * 60 * 60 local s = os.date("%m",d) -- report("select month: %s", s) return s end -- Select the month name from the os.date table and return the name of the month function calendar.select_monthname(d,wk,mn,y) local day = d local weeknumber = wk local month = mn -- this is not used, but necessary for using calendar.weekcalendar local year = y -- report("Working in function: calendar.select_monthname") -- report("Day: %s, Week: %s, Year: %s", day,weeknumber,year) local startday = calendar.weekcalendar(weeknumber,month,year) local t = startday + day * 24 * 60 * 60 local s = string.lower(os.date("%B",t)) return s end -- Select the fullyear from the os.date table and return the value function calendar.select_fullyear(weeknumber,year,day) local month = 5 --not used, but necessary for using calendar.weekcalendar local startday = calendar.weekcalendar(weeknumber,month,year) local d = startday + day * 24 * 60 * 60 local s = os.date("%Y",d) -- report("Working in function: calendar.select_fullyear") return s end -- Select the monthname (long) based on month-number from os.date function calendar.select_nameofmonth(mon,y) -- report("Working in function: calendar.select_nameofmonth") local monthnumber = mon local year = y local d = 1 local m = string.lower(os.date("%B", os.time{year=year,month=monthnumber,day=d})) -- report("Month name %s",m) return m end -- Select the monthname (long) based on monthnumber from os.date and return it as a labeltext function calendar.select_nameofmonthlabel(mon,y) -- report("Working in function: calendar.select_nameofmonthlabel") local monthnumber = mon local year = y local d = 1 local m = string.lower(os.date("%B", os.time{year=year,month=monthnumber,day=d})) -- report("Month name %s",m) return context.labeltext(m) end -- Select the year from the os.date table and return the value to ConTeXt function calendar.select_year(weeknumber,year,day) local month = 5 --not used but necessary for calendar.weekcalendar local startday = calendar.weekcalendar(weeknumber,month,year) local d = startday + day * 24 * 60 * 60 local s = os.date("%y",d) -- report("Working in function: calendar.select_year") return s --context(s) end --[[ EASTER DATE CALCULATION FOR YEARS 1583 TO 4099 y is a 4 digit year 1583 to 4099 d returns the day of the month of Easter m returns the month of Easter Easter Sunday is the Sunday following the Paschal Full Moon (PFM) date for the year This algorithm is an arithmetic interpretation of the 3 step Easter Dating Method developed by Ron Mallen 1985, as a vast improvement on the method described in the Common Prayer Book Because this algorithm is a direct translation of the official tables, it can be easily proved to be 100% correct This algorithm derives values by sequential inter-dependent calculations, so ... DO NOT MODIFY THE ORDER OF CALCULATIONS! All variables are integer data types It's free! Comment: Translated from a BASIC-source into lua by W. Egger, 11-2010 --]] function calendar.eastercalculation(y) local year = y local FirstDig = math.floor(year / 100) --first 2 digits of year local Remain19 = math.fmod(year,19) --remainder of year / 19 local temp local a = {} local tA local tB local tC local tD local tE local m local d -- calculate Paschal Full Moon (PFM) date temp = math.floor((FirstDig - 15) / 2) + 202 - 11 * Remain19 a = {21, 24, 25, 27, 28, 29, 30, 31, 32, 34, 35, 38} for val in pairs(a) do if val == FristDig then temp = temp - 1 break end end a = {33, 36, 37, 39, 40} for val in pairs(a) do if val == FirstDig then temp = temp - 2 break end end temp = math.fmod(temp, 30) tA = temp + 21 if temp == 29 then tA = tA - 1 end if (temp == 28 and Remain19 > 10) then tA = tA - 1 end --find the next Sunday tB = math.fmod((tA - 19), 7) tC = math.fmod((40 - FirstDig), 4) if tC == 3 then tC = tC + 1 end if tC > 1 then tC = tC + 1 end temp = math.fmod(year, 100) tD = math.fmod(temp + math.floor(temp/ 4), 7) tE = math.fmod((20 - tB - tC - tD), 7) + 1 d = tA + tE -- return the date if d > 31 then d = d - 31 m = 4 else m = 3 end -- return context("Year: " ..year .." month:" ..m .. " day: " ..d) local odes = calendar.ordinalday(d,m,year) -- report("Easter ordinal day: %s", odes) return odes end -- Calculate the ordinal daynumber from a given date with os.date and os.time function calendar.ordinalday(day,month,year) -- report("Working in function: calendar.ordinalday") local t = os.date("*t",os.time{year=year,month=month,day=day}) local od = t.yday return od end --Check a date whether it is a Christian feast function calendar.checkchristianfeast(d,m,y) --report("Working in function: calendar.checkchristianfeast") --report("Check Christian Feast: Day: %s, Month: %s, Year: %s", d,m,y) local daynumber = d local month = m local year = y local odes = calendar.eastercalculation(year) local od = calendar.ordinalday(daynumber,month,year) -- report("Result easter calculation: %s", odes) -- report("Ordinal day to be checked: %s", od) local s = nil if month == 1 and od == 1 then s = "nyd" end if month == 1 and od == 6 then s = "epi" end if month < 7 then -- Easter depending feasts are never later than june if od == odes - 46 then s = "ashw" elseif od == odes - 7 then s = "palms" elseif od == odes - 2 then s = "gfri" elseif od == odes then s = "esun" elseif od == odes + 1 then s = "esmo" elseif od == odes + 39 then s = "ascd" elseif od == odes + 49 then s= "pcst" elseif od == odes + 50 then s= "pcstmo" end end if month == 12 and daynumber == 25 then s = "xmas" end if month == 12 and daynumber == 26 then s = "bxd" end if s == nil then s = "" end -- report("Result of christian holiday: %s", s) return s end --Create a table with the number of days per month, accounting for leapyears and return the number of days to the calling function local dayspermonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } local nofdays = 0 function calendar.nofdays_month(month,year) -- report("Working in function: calendar.nofdays_month") if month == 2 and calendar.isleapyear(year) ~= 365 then nofdays = dayspermonth[month] + 1 else nofdays = dayspermonth[month] end return nofdays end -- Create a table with the number of days per month, accounting for leapyears -- and return the number of weeks of the given month to the calling function function calendar.month(month,year) report("Working in function: calendar.month") local month = tonumber(month) if month == 2 and calendar.isleapyear(year) ~= 365 then nofdays = dayspermonth[month] + 1 else nofdays = dayspermonth[month] end -- report ("Number of days : %s",nofdays) monthtable = {} local s = os.date("*t", os.time{year=year,month=month,day=1}) -- report("os.date: week day : %s",s.wday) --Correcting the fact that lua starts the week on sunday local wday = s.wday - 1 if wday == 0 then wday = 7 end -- report("Week day : %s",wday) local beginmonth = wday-1 for i = 1, beginmonth do table.insert(monthtable, 0) end for i = wday, (nofdays + beginmonth) do table.insert(monthtable, i - wday + 1) end for i = (nofdays + beginmonth + 1), 42 do --a month table is max. 7 x 6 fields table.insert(monthtable, 0) end local wkf = calendar.weeknumber(1,month,year) local wkl = calendar.weeknumber(nofdays,month,year) -- report("monthtable nofdays : %s",nofdays) -- report("monthtable wkf : %s",wkf) -- report("monthtable wkl : %s",wkl) local b = wkl - wkf + 1 if month > 1 and month < 12 then b = wkl - wkf + 1 elseif month == 12 and wkl == 1 then wkl = 53 b = wkl - wkf + 1 elseif month == 1 and wkf > 51 then b = wkl + 1 end --report("number of weeks %s in month %s",b,month) return b end --Select a day from the month table return value to context function calendar.dayselectofmonth(day) -- report("Working in function calendar.dayselectofmonth") -- report("Selected day : %s",day) local s = monthtable[day] -- report("Selected day from the monthtable: %s", s) if s == 0 then s = "" return s --context(s) else return s --context(s) end end --Generate the month name with os.date and os.time function calendar.monthname(mon,y) local month = mon local year = y if month > 12 then month = month - 12 year = year + 1 end local s = string.lower(os.date("%B",os.time{year=year,month=month,day=1})) -- report("month name : %s",s) return s end -- http://www.irt.org/script/914.htm, Java, Ferry van Schaik -- Get the ISO week number from a given date for Europe --USA --[[ function calendar.weeknumber(day,month,year) local when = os.time({year=year,month=month,day=day}) local modDay = tonumber(os.date("%w",os.time({year=year,month=1,day=1}))) report("modDay in US calendar.weeknumber: %s",modDay) local offset = 7 + 1 - modDay if offset == 8 then offset = 1 end local daynum = math.round((when - os.time({year=year,month=1,day=1})) /60/60/24) + 1 report("daynum in US calendar.weeknumber: %s",daynum) local weeknum = math.floor((daynum-offset+7)/7); report("Week number in calendar.weeknumber %s", weeknum) if weeknum == 0 then year = year - 1 local prevNewYear = tonumber(os.date ("%w",os.time({year=year,month=1,day=1}))) local prevOffset = 7 + 1 - prevNewYear if prevOffset == 2 or prevOffset == 8 then weeknum = 53 else weeknum = 52 end end return weeknum end --]] -- EUROPA function calendar.weeknumber(d,month,year) local day = d -- report("Working in function calendar.weeknumber") -- report("Daynumber in function calendar.daynumber: %s", day) local when = os.time({year=year,month=month,day=day}) local modDay = tonumber(os.date("%w",os.time({year=year,month=1,day=1}))) if modDay == 0 then modDay = 6 else modDay = modDay - 1 end local daynum = math.round((when - os.time({year=year,month=1,day=1})) /60/60/24) + 1 local weeknum = 0 if modDay < 4 then weeknum = math.floor((daynum+modDay-1)/7)+1 else weeknum = math.floor((daynum+modDay-1)/7) if weeknum == 0 then local prevmodDay = tonumber(os.date("%w",os.time({year=year-1,month=1,day=1}))) if prevmodDay == 0 then prevmodDay = 6 end if prevmodDay < 4 then weeknum = 53 else weeknum = 52 end end end return weeknum end -- Calculate the week number of a given monday of the year from the ordinal day number function calendar.ordinaltowknr(ordinalday,year) -- This table contains the offset of the first monday after the 1st of -- january, -- as used in the calculation of the ordinal number of a day of the year local dyearbegin = {1,0,6,5,4,3,2} local weekdayjanfirst = calendar.janfirst(year) if weekdayjanfirst == 0 then weekdayjanfirst = 7 end local wknumber = math.div(ordinalday - dyearbegin[weekdayjanfirst],7) + 1 return wknumber end context-modules-20240428/tex/context/third/pocketdiary/Solar/0000755000175000017500000000000014613513621023065 5ustar hillehillecontext-modules-20240428/tex/context/third/pocketdiary/Solar/sun-MP.mkiv0000644000175000017500000000636514422556403025111 0ustar hillehille%D \module %D [ file=t-pocketdiary, %D version=2023-04-15, %D title=PocketDiary \CONTEXT\ User Module, %D subtitle=Sun pictogrammes, %D author=Willi Egger, %D date=\currentdate, %D copyright=Willi Egger, %D email=w.egger@boede.nl, %D license=Public Domain] % \setupbodyfont[plex,ss,14pt] \defineMPinstance [Sun] [metafun] [] \startMPinclusions[]{Sun} numeric w,h; path p[]; pair ip[]; w = OverlayWidth; h = OverlayHeight; p[1] := fullcircle scaled h; p[100] := tcircle scaled 0.5h; %h p[2] := tcircle scaled 0.6h; %1.2h; p[3] := tcircle scaled 0.75h; %1.6h; p[4] := tcircle scaled h; %2h; p[5] := (0,0)--point 1 of p[4] ; p[6] := p[5] cutbefore point .3 of p[5]; p[7] := p[6] rotatedaround (center p[1],18); ip[1] := p[2] intersectionpoint p[7]; ip[2] := p[3] intersectionpoint p[7]; p[10] := ip[1]--ip[2]; ip[3] := ip[1]; ip[4] := point 1 of p[7]; p[11] := ip[3]--ip[4]; drawoptions (withpen pencircle scaled 0.25pt withcolor red); \stopMPinclusions \startreusableMPgraphic{Sun::Sunrise} drawoptions (withpen pencircle scaled 0.25pt withcolor red); draw p[100]; for i = 36 step 36 until 154 : draw p[10] rotatedaround (center p[1],i-18); endfor; for i = 18 step 36 until 180 : draw p[11] rotatedaround (center p[1],i-18); endfor; drawarrow ((0,0)--(0,h)) shifted (0,-0.05h); \stopreusableMPgraphic \startreusableMPgraphic{Sun::Sunset} drawoptions (withpen pencircle scaled 0.25pt withcolor red); draw p[100]; for i = 36 step 36 until 154 : draw p[10] rotatedaround (center p[1],i-18); endfor; for i = 18 step 36 until 180 : draw p[11] rotatedaround (center p[1],i-18); endfor; drawarrow ((0,h)--(0,0)) shifted (0,-0.05h) xscaled 0.5; \stopreusableMPgraphic \startreusableMPgraphic{Sun::Light} h := OverlayHeight; w := OverlayWidth; drawoptions (withpen pencircle scaled 0.15pt withcolor red); p[11] := ip[3]--ip[4]; p[1] := fullcircle scaled 0.25h; p[2] := tcircle scaled 0.35h; p[3] := tcircle scaled 0.5h; p[4] := tcircle scaled 0.8h; p[5] := (0,0)--point 1 of p[4] ; p[6] := p[5] cutbefore point .3 of p[5]; p[7] := p[6] rotatedaround (center p[1],18); ip[1] := p[2] intersectionpoint p[7]; ip[2] := p[3] intersectionpoint p[7]; p[10] := ip[1]--ip[2]; ip[3] := ip[1]; ip[4] := point 1 of p[7]; p[11] := ip[3]--ip[4]; draw p[1]; for i = 36 step 36 until 360 : draw p[10] rotatedaround (center p[1],i-18); endfor; for i = 18 step 36 until 360 : draw p[11] rotatedaround (center p[1],i-18); endfor; currentpicture := currentpicture rotatedaround(center p[1],18); \stopreusableMPgraphic \defineoverlay[Sunrise][\useMPgraphic{Sun::Sunrise}] \defineoverlay[Sunset][\useMPgraphic{Sun::Sunset}] \defineoverlay[Light][\useMPgraphic{Sun::Light}] \defineframed [SunA] [strut=yes, height=\lineheight, width=\emwidth, frame=off, offset=0pt] \defineframed [SunB] [strut=yes, height=\lineheight, width=\emwidth, frame=off, offset=0pt, location=depth] % \starttext % \setupbodyfont[8pt] % This is the minimal size which looks still ok. % % Sunrise: {\SunA[background=Sunrise]{\strut}} % Sunset: \SunA[background=Sunset]{\strut} % Light hours: \SunB[background=Light]{\strut} Sunshine % % \stoptextcontext-modules-20240428/tex/context/third/pocketdiary/Solar/t-solar.lua0000644000175000017500000001567614422277326025177 0ustar hillehilleif not modules then modules = { } end modules ['t-solar'] = { version = "2023.04.15", comment = "Sun rise and sun set calculation", author = "Alexander Yakushev, edited by Willi Egger", copyright = "Willi Egger", email = "w.egger@boede.nl", license = "CC0 http://creativecommons.org/about/cc0" } thirddata = thirddata or { } thirddata.srss = { } local srss = thirddata.srss local report = logs.reporter("Solar data") --[[ Module for calculating sunrise/sunset times for a given location Based on algorithm by United States Naval Observatory, Washington Link: http://williams.best.vwh.net/sunrise_sunset_algorithm.htm @author Alexander Yakushev @license CC0 http://creativecommons.org/about/cc0 --]] local rad = math.rad local deg = math.deg local floor = math.floor local mcos = math.cos local msin = math.sin local mtan = math.tan local macos = math.acos local masin = math.asin local matan = math.atan local frac = function(n) return n - floor(n) end local cos = function(d) return mcos(rad(d)) end local acos = function(d) return deg(macos(d)) end local sin = function(d) return msin(rad(d)) end local asin = function(d) return deg(masin(d)) end local tan = function(d) return mtan(rad(d)) end local atan = function(d) return deg(matan(d)) end function srss.fit_into_range(val,min,max) local range = max - min if val < min then return val + (floor((min - val) / range) + 1) * range elseif val >= max then return val - (floor((val - max) / range) + 1) * range else return val end end function srss.day_of_year(date) local n1 = floor(275 * date.month / 9) local n2 = floor((date.month + 9) / 12) local n3 = (1 + floor((date.year - 4 * floor(date.year / 4) + 2) / 3)) return n1 - (n2 * n3) + date.day - 30 end function srss.sunturn_time( date,rising,latitude,longitude,zenith,local_offset,DST) local n = srss.day_of_year(date) -- report("working in function: srss.sunturn_time") -- report("Day: %s Month: %s Year: %s", date.day, date.month, date.year) -- report("Latitude: %s Longitude %s Timeoffset %s", latitude, longitude, -- local_offset) -- Convert the longitude to hour value and calculate an approximate time local lng_hour = longitude / 15 --report("longitude hour %s", lng_hour) local t if rising then -- Rising time is desired t = n + ((6 - lng_hour) / 24) else -- Setting time is desired t = n + ((18 - lng_hour) / 24) end -- Calculate the Sun's mean anomaly local M = (0.9856 * t) - 3.289 -- Calculate the Sun's true longitude local L = srss.fit_into_range(M + (1.916 * sin(M)) + (0.020 * sin(2 * M)) + 282.634, 0, 360) -- Calculate the Sun's right ascension local RA = srss.fit_into_range(atan(0.91764 * tan(L)), 0, 360) -- Right ascension value needs to be in the same quadrant as L local Lquadrant = floor(L / 90) * 90 local RAquadrant = floor(RA / 90) * 90 RA = RA + Lquadrant - RAquadrant -- Right ascension value needs to be converted into hours RA = RA / 15 -- Calculate the Sun's declination local sinDec = 0.39782 * sin(L) local cosDec = cos(asin(sinDec)) -- Calculate the Sun's local hour angle local cosH = (cos(zenith) - (sinDec * sin(latitude))) / (cosDec * cos(latitude)) if rising and cosH > 1 then -- return "N/R" -- The sun never rises on this location on the specified -- date report("Sun does not rise") return ("\\labeltext{sunrise}: --") elseif cosH < -1 then -- return "N/S" -- The sun never sets on this location on the specified date report("Sun does not set") return ("\\labletext{sunset}: --") end -- Finish calculating H and convert into hours local H if rising then H = 360 - acos(cosH) else H = acos(cosH) end H = H / 15 -- Calculate local mean time of rising/setting local T = H + RA - (0.06571 * t) - 6.622 -- Adjust back to UTC local UT = srss.fit_into_range(T - lng_hour, 0, 24) -- Convert UT value to local time zone of latitude/longitude local LT = UT + local_offset -- Include daylight saving -- report("UT: %s", UT) -- report("LT: %s", LT) if DST == true then -- report("DST is on") LT = LT + 1 end -- report("DST: %s", LT) return LT end function srss.get(d,mon,yr,lat,lon,offset,dst_start,dst_stop) local date = { year = yr, month = mon, day = d } -- os.date("*t") local lat = lat local lon = lon local offset = offset local zenith = 90.83 local dst_start = dst_start local dst_stop = dst_stop -- report("Latidude : %s",lat) -- report("Longitude : %s",lon) -- report("Offset : %s",offset) -- report("Zenith : %s",zenith) -- report("Datum : %02i-%02i-%02i",date.year,date.month,date.day) -- report("DST begin in srss.get : %s",dst_start) -- report("DST end in srss.get : %s",dst_stop) -- determine whether the day for sun rise/set is with daylight saving local DST if dst_start ~= "none" then local dst_startday = tonumber(srss.ordinalday(dst_start)) local dst_endday = tonumber(srss.ordinalday(dst_stop)) local calendarday = srss.ordinalday(date.year.."/" ..date.month.."/"..date.day) --report("Ordinal calendar day: %s", calendarday) if (calendarday <= dst_endday) and (calendarday >= dst_startday) then DST = true else DST = false end else DST = false end local rise_time = srss.sunturn_time(date,true,lat,lon,zenith,offset,DST) local set_time = srss.sunturn_time(date,false,lat,lon,zenith,offset,DST) if type(rise_time) ~= "number" then return rise_time end if type(set_time) ~= "number" then return set_time end local hourfraction = srss.minutes(rise_time) local rise_hour = floor(rise_time)..":"..hourfraction local hourfraction = srss.minutes(set_time) local set_hour = floor(set_time)..":"..hourfraction local length = (set_time - rise_time) local hourfraction = srss.minutes(length) local light_hours = floor(length)..":"..hourfraction --report("Sun rise : %s",rise_hour) --report("Sun set : %s",set_hour) --report("Light hours : %s",light_hours) return rise_hour, set_hour, light_hours end function srss.minutes(time) return string.formatters["%02i"](floor((time - floor(time))*60)) end function srss.ordinalday(inputstr) --report("Input : %s",inputstr) local sep = "%-%s/" if sep == nil then sep = "%s" end local t={} i=1 for str in string.gmatch(inputstr, "([^"..sep.."]+)") do t[i] = str i = i + 1 end --report("Datum strings: %s, %s, %s", t[1],t[2],t[3]) local daynumber = os.date("*t",os.time{year=t[1],month=t[2],day=t[3]}) local ordinalday = daynumber.yday --report("Day of year : %s",ordinalday) return ordinalday end function srss.sundata(...) local r, s, l = srss.get(...) report("Working in function: srss.sundata") if r and s and l then return r, s, l else return r end end context-modules-20240428/tex/context/third/pocketdiary/Moonphase/0000755000175000017500000000000014613513621023736 5ustar hillehillecontext-modules-20240428/tex/context/third/pocketdiary/Moonphase/t-moonphase.lua0000644000175000017500000000636714422277326026716 0ustar hillehilleif not modules then modules = { } end modules ['t-moonphase'] = { version = "2023.04.15", comment = "Moonphase calculation", author = "SubSystems www.subsystems.us edited by Willi Egger", copyright = "Willi Egger", email = "w.egger@boede.nl", license = "Public Domain" } thirddata = thirddata or { } thirddata.moonphase = { } local moonphase = thirddata.moonphase local report = logs.reporter("Lunar") --[[ From an article published by SubSystems www.subsystems.us: Let’s calculate the phase of the moon on 3/1/2017: 1) Express the date as Y = 2017, M = 3, D = 1. 2) If the month is January or February, subtract 1 from the year and add 12 to the month Since the month March (M=3), we don’t need to adjust the values. 3) With a calculator, do the following calculations: a. A = Y/100 A = 20 b. B = A/4 and then record the integer part B = 5 c. C = 2-A+B and then record the integer part C = -13 d. E = 365.25 x (Y+4716) record the integer part E = 2459228 e. F = 30.6001 x (M+1) record the integer part F = 122 f. JD = C+D+E+F-1524.5 JD = 2457813.5 Now that we have the Julian day, let’s calculate the days since the last new moon: Day since New = 2457813.5 - 2451549.5 = 6264 days If we divide this by the period, we will have how many new moons there have been: New Moons = 6264 / 29.53 = 212.123 cycles Now, multiply the fractional part by 29.53: Days into cycle = 0.123 x 29.53 = 3.63 days since New Moon --]] function moonphase.julianday(y,m,d) local year = y local month = m local day = d if month == 1 or month == 2 then year = year - 1 month = month + 12 end local a = year/100 local b = math.floor(a/4) local c = math.floor(2-a+b) local e = math.floor(365.25*(year+4716)) local f = math.floor(30.6001*(month+1)) local jd = c + day + e + f - 1524.5 return jd end function moonphase.lunardays(y,m,d) local year = y local month = m local day = d report("Working in function: moonphase.lunardays") local JD = moonphase.julianday(year,month,day) local days = JD - 2451549.5 --2451549.5 is Julian date of 06-01-2000, a new moon date local cycles = days / 29.53 --29.53 is lunar month local moonphasedays = (cycles-math.floor(cycles)) moonphasedays = moonphase.round(moonphasedays*29.53) --report("Tage im Mondzyclus: %s", moonphasedays) if moonphasedays == 29 then moonphasedays = 0; end if moonphasedays == 0 then report("New Moon") return ("\\Moon[background=newmoon]{}") elseif moonphasedays == 7 then report("Quarter Moon") return ("\\Moon[background=growingmoon]{}") elseif moonphasedays == 15 then report("Full Moon") return ("\\Moon[background=fullmoon]{}") elseif moonphasedays == 22 then report("Three Quarter Moon") return ("\\Moon[background=waningmoon]{}") else return (moonphasedays); end ---return moonphasedays end --Lua does not have a round function. From the Internet: function moonphase.round(num) local under = math.floor(num) local upper = math.floor(num) + 1 local underV = -(under - num) local upperV = upper - num if (upperV > underV) then return under else return upper end end context-modules-20240428/tex/context/third/pocketdiary/Moonphase/moons-MP.mkiv0000644000175000017500000000352514422277326026307 0ustar hillehille%D \module %D [ file=t-pocketdiary, %D version=2023-04-15, %D title=PocketDiary \CONTEXT\ User Module, %D subtitle=Moon pictogrammes, %D author=Willi Egger, %D date=\currentdate, %D copyright=Willi Egger, %D email=w.egger@boede.nl, %D license=Public Domain] % \setupbodyfont[plex,ss,14pt] \defineMPinstance [Moon] [metafun] [] \startMPinclusions[]{Moon} numeric w,h; path p[]; pair ip[]; w = OverlayWidth; h = OverlayHeight; p[1] := fullcircle scaled h; p[2] := p[1] shifted (0.2 w,0); ip[1] := p[1] intersectionpoint p[2]; ip[2] := reverse p[1] intersectionpoint p[2]; p[3] := p[1] cutbefore ip[1] cutafter ip[2]; p[4] := p[2] cutbefore ip[1] cutafter ip[2]; drawoptions (withpen pencircle scaled 2pt); \stopMPinclusions \startuniqueMPgraphic{Moon::Waning_moon} draw p[3] ; draw p[4] ; \stopuniqueMPgraphic \startuniqueMPgraphic{Moon::Growing_moon} draw p[3] ; draw p[4] ; currentpicture := (currentpicture reflectedabout (ip[1],ip[2])); \stopuniqueMPgraphic \startuniqueMPgraphic{Moon::Fullmoon} draw p[1]; \stopuniqueMPgraphic \startuniqueMPgraphic{Moon::Newmoon} fill p[1] withcolor 0.625 white; draw p[1]; \stopuniqueMPgraphic \defineoverlay[waningmoon][\useMPgraphic{Moon::Waning_moon}] \defineoverlay[growingmoon][\useMPgraphic{Moon::Growing_moon}] \defineoverlay[newmoon][\useMPgraphic{Moon::Newmoon}] \defineoverlay[fullmoon][\useMPgraphic{Moon::Fullmoon}] \defineframed [Moon] [height=\bodyfontsize, width=\bodyfontsize, frame=off] % \starttext % Results with \type{framed} % % \blank % % Heute ist abnehmender Mond {\Moon[background=waningmoon]{\strut}} % % Heute ist Vollmond \Moon[background=fullmoon]{} % % Heute haben wir Neumond \Moon[background=newmoon]{} % % Und heute haben wir zunehmenden Mond \Moon[background=growingmoon]{} % % \stoptextcontext-modules-20240428/tex/context/third/pocketdiary/PocketDiary.mkiv0000644000175000017500000000521514422277326025125 0ustar hillehille%D \module %D [ file=t-pocketdiary.tex, %D version=2023.04.15, %D title=PocketDiary, %D subtitle=User file for PocketDiary,, %D author=W. Egger, %D date=\currentdate, %D copyright=W. Egger, %D license=Public Domain] %D This is the base for the compilation of a PocketDiary. %D Please refer to the documentation of the module to see %D which options you have to make up your own layout for the PocketDiary %D This module is built for usage withKIV and LUAMETATEX (LMTX) %D Load the PocketDiary module \usemodule[pocketdiary] %D Choose and setup the desired font to be used \setupbodyfont[ibmplex,rm,8pt] \definefontfeature[f:tabular][tnum=yes] \addfeature[f:tabular] %D Set the main language, which sets the interface to be used. Supported interfaces: EN,DE,NL,FR,IT,ES,PL \mainlanguage[en] %D setup the paper size and mapping onto the print paper \setuppapersize[A6][A4,landscape] %D Setup of the different variable sets of the PocketDiary \setvariables [PocketDiary] [WeekDay=1, Week=15, Month=4, Year=2023, Nextyear=yes, Daybyday=no] %D If "Daybyday = yes" then the first 6 pages are filled with 5 times a single %D day and the weekend is 1 page. The pages 7 and 8 are filled with what is set %D in PockedDiaryLayout for page 7 and 8. \setvariables [PocketDiaryLayout] [Page1=Dayplan, Page2=Weekendplan, Page3=Weekcurrentplan, Page4=Weeknextplan, Page5=Monthcurrentplan, Page6=Monthnextplan, Page7=Yearcurrentplan, Page8=Lost-Returnto] %D Names of included templates: You are allowed to use the same template %D on multiple pages. %D \startlines %D Dayplan %D Weekcurrentplan %D Weekendplan %D Weeknextplan %D Monthcurrentplan %D Monthnextplan %D Yearcurrentplan %D Yearnextplan %D Lines %D Blank %D Caro %D Todo %D Contact %D Lost-Returnto %D \stoplines \setvariables [PocketDiaryAddress] [Familyname={YourFamilyName}, Forename={YourFirstName}, Street=Pine Lane Zipcode=2080, City=YourTown, Country=YourCountry, Phone={\dots}, Mobile={\dots}, E-mail={\dots}, Web={\dots}] \setvariables [PocketDiaryFooter] [Lefttext={\getvariable{PocketDiaryAddress}{Forename}~ \getvariable{PocketDiaryAddress}{Familyname}}, Centertext=, Righttext=\pagenumber] \setvariables [PocketDiaryColors] [Separatorline=blue, Gridline={s=0.55}] \setvariables %Dreifelden [PocketDiaryGeoPosition] [lat=52.467860, lon=16.981240, timezoneoffset=1, continent=US] % EU, US or leave empty for no DST %D Setup the document \starttext \setuparranging[1*8] % this can be uncommented in t-pocketdiary.tex \getbuffer[Pocketdiary] \stoptextcontext-modules-20240428/tex/context/third/pocketdiary/t-pocketdiary.lua0000644000175000017500000005642414422277326025311 0ustar hillehilleif not modules then modules = { } end modules ['t-pocketdiary'] = { version = "2023.04.15", comment = "Layouts of diary pages", author = "Willi Egger", copyright = "Willi Egger", email = "w.egger@boede.nl", license = "Public Domain" } thirddata = thirddata or { } thirddata.diary = { } local diary = thirddata.diary local report = logs.reporter("Diary pages") function diary.data(wd,wk,mn,yr,la,lo,to,cont) report("Working in function: diary.data") local weekday = wd local weeknumber = wk local month = mn local year = yr local lon = lo local lat = la local timeoffset = to local continent = cont local moon = "" local srise,sset,lhours local dayofmonth = thirddata.calendar.select_dayofmonth( weekday,weeknumber,month,year) local dayname = thirddata.calendar.select_dayname(weekday,weeknumber,month,year) local holiday = thirddata.calendar.checkchristianfeast( dayofmonth,month,year) local monthname = thirddata.calendar.select_monthname( weekday,weeknumber,month,year) local moondata = thirddata.moonphase.lunardays(year,month,dayofmonth) local dst_start, dst_stop,srise,sset,lhours if continent ~="" then local dst_start,dst_stop = diary.DST(year,continent) report("DST start: %s DST stop: %s",dst_start,dst_stop) srise,sset,lhours = thirddata.srss.sundata( dayofmonth,month,year,lat,lon,timeoffset,dst_start,dst_stop) else dst_start = "none" dst_stop = 0 report("No DST is applied") end return weekday, weeknumber, month, year, lat, lon, timeoffset, dst_start, dst_stop, dayofmonth, dayname, holiday, monthname, moondata, srise, sset, lhours end function diary.DST(year,continent) local report = logs.reporter("DST date") report("Working in function DST") local dstmonth_start local dstmonth_stop local dstday_start local dstday_stop local dst_start local dst_stop if continent ~= "" then if continent == "EU" then dstmonth_start = 3 dstmonth_stop = 10 dstday_start = diary.DSTday(dstmonth_start,year,continent) dstday_stop = diary.DSTday(dstmonth_stop,year,continent) else if continent == "US" then dstmonth_start = 3 dstmonth_stop = 11 dstday_start = diary.DSTday(dstmonth_start,year,continent) dstday_stop = diary.DSTday(dstmonth_stop,year,continent) end end -- report("DSTday start: %s",dstday_start) -- report("DSTday stop: %s",dstday_stop) dst_start = year.."-"..dstmonth_start.."-"..dstday_start dst_stop = year.."-"..dstmonth_stop.."-"..dstday_stop else report("No DST to be taken in to account") dst_start = "none" dst_stop = 0 end --report("DST start date: %s", dst_start) --report("DST stop date: %s", dst_stop) return dst_start, dst_stop end function diary.DSTday(month,year,continent) report("Working in function DSTday") local DSTday = {} local dayname if continent == "EU" then -- the last Sunday of March and October can only be between 25. and 31. of the month for i=25,31 do dayname = string.lower(os.date ("%a",os.time{day=i,month=month,year=year})) DSTday[dayname] = i end else -- for the US the second Sunday in March can be between 8. and 14. of March, first Sunday of November can be between 1. and 8. of November if month == 3 then for i=8,14 do dayname = string.lower(os.date ("%a",os.time{day=i,month=month,year=year})) DSTday[dayname]=i end else for i=1,7 do dayname = string.lower(os.date ("%a",os.time{day=i,month=month,year=year})) DSTday[dayname]=i end end end return DSTday.sun end function diary.dayplan(...) --8 parameters report("Working in function: diary.dayplan") if weekday == 0 then weekday = 1 end local weekday, weeknumber, month, year, lat, lon, timeoffset, dst_start, dst_stop, dayofmonth, dayname, holiday, monthname, moondata, srise, sset, lhours = diary.data(...) context.setupheadertexts{ function() context.bTABLE({setups="table:topinfo"}) context.bTR() context.bTD() if dayname == "sun" or holiday ~= "" then context.color({"red"}, function() context(dayofmonth) end) context("~") context.color({"red"}, function() context.labeltext(dayname) end) else context(dayofmonth) context("~") context.labeltext(dayname) end context.eTD() context.bTD() context.labeltext(holiday) context.eTD() context.bTD() context.labeltext(monthname) context("~") context(year) context.eTD() context.eTR() context.bTR({style="\\switchtobodyfont[5pt]"}) context.bTD() if tonumber(moondata) then context.labeltext("moondays") else context.labeltext("moon") end context(": ") context(moondata) context.eTD() context.bTD({nx="2"}) context.dontleavehmode() context("\\SunA[background=Sunrise,height=7pt]{\\strut}") context("~~~") context(srise) context("\\quad") context("\\SunA[background=Sunset,height=7pt]{\\strut}") context("~~~") context(sset) context("~~") context("\\SunB[background=Light,height=7pt]{\\strut}") context("~~") context(lhours) context.eTD() context.eTR() context.eTABLE() end} context.strut() context.page() end function diary.weekplan(weekday,weeknumber,month,year,lat,lon, timeoffset,continent) --8 parameters report("Working in function: diary.weekplan") context.setupheadertexts{ function() context.bTABLE({setups="table:topweekplan"}) context.bTR() context.bTD() context("\\bf") context.labeltext("weekagenda") context.eTD() context.bTD() context.labeltext("month") context("~") context(month) context("\\quad") context.labeltext("week") context("~") context(weeknumber) context("\\quad") context(year) context.eTD() context.eTR() context.eTABLE() end} diary.thisweek(weeknumber,month,year,lat,lon,timeoffset,continent) context.page() end function diary.nextweekplan(...) local weekday, weeknumber, month, year, lat, lon, timeoffset, dst_start, dst_stop, dayofmonth, dayname, holiday, monthname, moondata, srise, sset, lhours = diary.data(...) report("Working in function: diary.nextweekplan") context.setupheadertexts{ function() context.bTABLE({setups="table:topinfo"}) context.bTR() context.bTD() context("\\bf\\labeltext{weekagenda}") context.eTD() context.bTD() context.strut() context.eTD() context.bTD() context.labeltext("week") context("~") context(weeknumber) context("\\quad") context(year) context.eTD() context.eTR() context.eTABLE() end} diary.thisweek(weeknumber,month,year,lat,lon,timeoffset,continent) context.page() end function diary.weekendplan(weekday,weeknumber,month,year,lat, lon,timeoffset,continent) local weekday, weeknumber, month, year, lat, lon, timeoffset, dst_start, dst_stop, dayofmonth, dayname, holiday, monthname, moondata, srise, sset, lhours = diary.data(weekday,weeknumber,month,year,lat,lon,timeoffset,continent) report(" Working in function: diary.weekendplan") context.setupheadertexts{ function() context.bTABLE({setups="table:topinfo"}) context.bTR() context.bTD() context(dayofmonth) context("~") context.labeltext(dayname) context.eTD() context.bTD() context.labeltext(holiday) context.eTD() context.bTD() context.labeltext(monthname) context("~") context(year) context.eTD() context.eTR() context.bTR({style="\\switchtobodyfont[5pt]"}) context.bTD() if tonumber(moondata) then context.labeltext("moondays") else context.labeltext("moon") end context(": ") context(moondata) context.eTD() context.bTD({nx="2"}) context.dontleavehmode() context("\\SunA[background=Sunrise,height=7pt]{\\strut}") context("~~~:~") context(srise) context("\\quad") context("\\SunA[background=Sunset,height=7pt]{\\strut}") context("~~~") context(sset) context("~~") context("\\SunB[background=Light,height=7pt]{\\strut}") context("~~") context(lhours) context.eTD() context.eTR() context.eTABLE() end} local wday = 7 local weekday, weeknumber, month, year, lat, lon, timeoffset, dst_start, dst_stop, dayofmonth, dayname, holiday, onthname,moondata,srise,sset, lhours = diary.data(wday, weeknumber, month, year, lat, lon, timeoffset, continent) -- report("Working in function: diary.weekendplan: Sunday" context.strut() context("\\godown[.4\\textheight]") context.bTABLE({setups="table:topinfo"}) context.bTR() context.bTD() context.color({"red"}, function() context(dayofmonth) end) context("~") context.color({"red"}, function() context.labeltext(dayname) end) context.eTD() context.bTD() context.labeltext(holiday) context.eTD() context.bTD() context.labeltext(monthname) context("~") context(year) context.eTD() context.eTR() context.bTR({style="\\switchtobodyfont[5pt]"}) context.bTD() if tonumber(moondata) then context.labeltext("moondays") else context.labeltext("moon") end context(": ") context(moondata) context.eTD() context.bTD({nx="2"}) context.dontleavehmode() context("\\SunA[background=Sunrise,height=7pt]{\\strut}") context("~~~~") context(srise) context("\\quad") context("\\SunA[background=Sunset,height=7pt]{\\strut}") context("~~~") context(sset) context("~~") context("\\SunB[background=Light,height=7pt]{\\strut}") context("~~") context(lhours) context.eTD() context.eTR() context.eTABLE() context.par() context("\\godown[3pt]") context.blackrule({"color=\\getvariable{PocketDiaryColors}{Separatorline},height=0.5pt,width=\\textwidth"}) context.page() end function diary.monthcurrentplan(mon,y) local month = mon local year = y report("Working in function: diary.monthcurrentplan") local month_name = thirddata.calendar.select_nameofmonth(month,year) context.setupheadertexts{ function() context.bTABLE({setups="table:topweekplan"}) context.bTR() context.bTD() context.labeltext(month_name) context.eTD() context.bTD() context(year) context.eTD() context.eTR() context.eTABLE() end} diary.monthtableH(month,year) context.page() end function diary.monthnextplan(mn,yr) report("Working in function: diary.monthnextplan") local month = mn local year = yr month = month + 1 if month > 12 then month = 1 year = year + 1 end local month_name = thirddata.calendar.select_nameofmonth(month,year) context.setupheadertexts{ function() context.bTABLE({setups="table:topweekplan"}) context.bTR() context.bTD() context.labeltext(month_name) context.eTD() context.bTD() context(year) context.eTD() context.eTR() context.eTABLE() end} diary.monthtableH(month,year) context.page() end function diary.yearplan(yr,nxt) report("Working in function: diary.yearplan") local year = yr local next = nxt if next == "yes" then year = year + 1 end context.setupheadertexts{ function() context.bTABLE({setups="table:topinfo"}) context.bTR() context.bTD() context(year) context.eTD() context.bTD() context.strut() context.eTD() context.bTD() context.strut() context.eTD() context.eTR() context.eTABLE() end} context.start() context.switchtobodyfont({"4pt"}) diary.yearcalendar(year) context.stop() context.page() end function diary.daybydayplan(weekday,weeknumber,month,year,lat,lon, timeoffset,continent) --8 parameters report("Working in function: diary.daybyday") --Working days for i = 1,5 do thirddata.diary.dayplan(i,weeknumber,month,year,lat,lon, timeoffset, continent) end -- Weekend thirddata.diary.weekendplan(6, weeknumber,month,year,lat,lon, timeoffset, continent) context.page() end -- Generate a Context table containing the days of a given month, -- topline weeknumber function diary.monthtableH(mn,yr) local month = mn local year = yr report("Working in function: diary.monthtableH") if month > 12 then month = month - 12 year = year + 1 end context.bTABLE({setups="table:month"}) context.bTR() local w = {"mon","tue","wed","thu","fri","sat","sun"} for a,d in ipairs(w) do context.bTD({align="middle,lohi"}) context.labeltext(d) context.eTD() end context.eTR() ----returns number of weeks in a given month local c = thirddata.calendar.month(month,year) for i = 1, c do context.bTR() for j=(i-1)*7+1,(i-1)*7+7 do local day = thirddata.calendar.dayselectofmonth(j) local holiday if day ~= "" then holiday = thirddata.calendar.checkchristianfeast( day,month,year) end context.bTD() if holiday ~= "" then context.color({"red"}, function() context(day) end) else context(day) end context.eTD() end context.eTR() end context.eTABLE() end -- Generate a Context table containing the days of a given month, topline -- weekday names function diary.monthtableV(month,year) report("Working in function diary.monthtableV") local c = thirddata.calendar.month(month,year) --returns number of weeks in a given month local wkf = thirddata.calendar.weeknumber(1,month,year) local nofdays = 1 if month == 2 and thirddata.calendar.isleapyear(year) ~= 365 then nofdays = thirddata.calendar.nofdays_month(month,year) + 1 else nofdays = thirddata.calendar.nofdays_month(month,year) end local wkl = thirddata.calendar.weeknumber(nofdays,month,year) context.bTABLE({setups="table:year"}) context.bTR({align="flushright"}) context.bTD() context.strut() context.eTD() if month == 1 and wkf > 51 then context.bTD() context(wkf) context.eTD() wkf = 1 for i = wkf, c - 1 do context.bTD() context(i) context.eTD() end else for i = wkf, wkf + c - 1 do context.bTD() context(i) context.eTD() end end context.eTR() local w = {"mon","tue","wed","thu","fri","sat","sun"} local row = 0 for a,d in ipairs(w) do if a == 7 then context.bTR({align="flushright",style="red"}) else context.bTR({align="flushright"}) end context.bTD({align="flushleft"}) context.labeltext(d) context.eTD() for i=1,c*7,7 do local day = i + row local dayofmonth = thirddata.calendar.dayselectofmonth(day) --report("Day of month in monthtableV: %s",dayofmonth) local holiday if dayofmonth ~= "" then holiday = thirddata.calendar.checkchristianfeast( dayofmonth,month,year) end context.bTD() if holiday ~= "" then context.color({"red"}, function() context(dayofmonth) end) else context(dayofmonth) end context.eTD() end row = row + 1 context.eTR() end context.eTABLE() end function diary.yearcalendar(year) report("Working in function: diary.year") context.startcombination({"4*3"}) for i= 1,12 do local monthname = string.lower(os.date( "%B",os.time{year=year,month=i,day=1})) context.framedtext({frame="off", style="bold", width=number.todimen(0.23*tex.dimen.textwidth), offset="0.5pt", align="middle"}, function() context.labeltext(monthname) end, function() diary.monthtableV(i,year) end ) end context.stopcombination() end function diary.thisweek(wk,mn,yr,lat,lon,timeoffset,continent) report("Working in function: diary.thisweek") --report("Year %d", yr) --report("weeknumber in diary.thisweek %s",wk) local weeknumber = wk local year = yr local month = mn local mondaytimestamp = thirddata.calendar.weekcalendar(weeknumber,month,year) --report("Month based on mondaytimestamp: %s", m) local d = tonumber(os.date("%d",mondaytimestamp)) -- day part of date -- The following line will be deleted if it works local y = tonumber(os.date("%Y",mondaytimestamp)) --report("Year: %d",y) --report("Now in diary.thisweek at day %s",d) diary.weektable(mondaytimestamp,month,year, lat,lon,timeoffset,continent) end function diary.nextweek(wk,mn,year,lat,lon,timeoffset,dst_start,dst_stop) report("Working in function: diary.nextweek") local weeknumber = wk + 1 local mondaytimestamp = thirddata.calendar.weekcalendar(weeknumber,mn,year) diary.weektable(mondaytimestamp,mn,year, lat,lon,timeoffset,continent) end function diary.weektable(mondaytimestamp,mn,year, lat,lon,timeoffset,continent) local year = year local s = mondaytimestamp local dst_start,dst_stop = diary.DST(year,continent) report("Working in function: diary.weektable") local x = os.date("%x",mondaytimestamp) --report("Actual date: %s",x) context.bTABLE({setups="table:week"}) local yeardays = thirddata.calendar.isleapyear(year) -- returns 365 or 366 for i = 1,5 do local daystamp = s + i * 24 * 60 * 60 local d = tonumber(os.date("%d",daystamp)) -- day part of date --report("Year in week-loop: %d",year) --report("Day in week-loop: %s",d) local n = string.lower(os.date("%a",daystamp)) -- day name --report("Day name in week loop: %s",n) local m = tonumber(os.date("%m",daystamp)) -- month number --report("Month number in week-loop %d",m) local f = thirddata.calendar.checkchristianfeast(d,m,year) local t = os.date("*t",os.time{year=year,month=m,day=d}) -- This returns a table! local moondata = thirddata.moonphase.lunardays(year,m,d) if not f then f = "" end context.bTR() context.bTD({nx=2}) if f ~= "" and f ~= "ashw" then context.color({"red"}, function() context(d) end) context("~") context.color({"red"}, function() context.labeltext(n) end) else context(d) context("~") context.labeltext(n) end context.bgroup() context.switchtobodyfont({"6pt"}) context("~") context(t.yday) context("/") context(yeardays) if not tonumber(moondata) then context("~") context(moondata) end if n == "tue" then local srise,sset,lhours = thirddata.srss.sundata(d,m,year,lat,lon, timeoffset,dst_start,dst_stop) --report("Sun data %s,%s,%s", srise,sset,lhours) context("\\quad") context("\\SunA[background=Sunrise,height=7pt]{\\strut}") context("\\quad ~") context(srise) context("~~~") context("\\SunA[background=Sunset,height=7pt]{\\strut}") context("\\quad ~") context(sset) context("~~~") context("\\SunB[background=Light,height=7pt]{\\strut}") context("~~") context(lhours) end context.egroup() context("~") context.labeltext(f) context.eTD() context.eTR() end context.bTR() local daystamp = s + 6 * 24 * 60 * 60 local d = tonumber(os.date("%d",daystamp)) local n = string.lower(os.date("%a",daystamp)) local m = tonumber(os.date("%m",daystamp)) local f = thirddata.calendar.checkchristianfeast(d,m,year) local t = os.date("*t",os.time{year=year,month=m,day=d}) -- This returns a table! --report("Weekend day in loop: %s",d) if not f then f = "" end context.bTD() if f ~= "" then context.color({"red"}, function() context(d) end) context("~") context.color({"red"}, function() context.labeltext(n) end) else context(d) context("~") context.labeltext(n) end context.bgroup() context("\\tfxx") context("~") context(t.yday) context("/") context(yeardays) context.egroup() context("~") context.labeltext(f) context.eTD() local daystamp = s + 7 * 24 * 60 * 60 local d = tonumber(os.date("%d",daystamp)) local n = string.lower(os.date("%a",daystamp)) local m = tonumber(os.date("%m",daystamp)) local f = thirddata.calendar.checkchristianfeast(d,m,year) local t = os.date("*t",os.time{year=year,month=m,day=d}) -- This returns a table! --report("Weekend day in loop: %s",d) if not f then f = "" end context.bTD() context.color({"red"}, function() context(d) end) context("~") context.color({"red"}, function() context.labeltext(n) end) context.bgroup() context("\\tfxx") context("~") context(t.yday) context("/") context(yeardays) context.egroup() context("~") context.labeltext(f) context.eTD() context.eTR() context.eTABLE() context.page() endcontext-modules-20240428/tex/context/third/pocketdiary/t-pocketdiary.mkiv0000644000175000017500000014543014422277326025472 0ustar hillehille%D \module %D [ file=t-pocketdiary, %D version="2023-04-15", %D title=PocketDiary \CONTEXT\ User Module, %D subtitle=PocketDiary, %D author=Willi Egger, %D date=\currentdate, %D copyright=Willi Egger, %D email=w.egger@boede.nl, %D license=Public Domain] \startmodule[pocketdiary] \writestatus{loading}{ConTeXt User Module / PocketDiary} %D \startsubject[title={Introduction}] %D %D It is already some time ago, that my brother Heinz asked me to prepare him a %D special page-arrangement scheme. %D This scheme is suitable to form a section with a single-sided printed sheet %D of paper. %D He wanted to use it for special kind of greeting-cards. By coincidence I %D detected an article by U. Ziegenhagen in de \TEX nische %D Kommödie nr. 3/2010. This article deals with the preparation of a PocketMod, %D which is a personal organizer %D based on the mentioned arranging scheme. In the article there is also a %D link mentioned to an online %D version of the PocketMod. (http://www.pocketmod.com/). %D -- After reading the article and visiting the web-site I got %D intrigued by the fact, that \CONTEXT\ has built in arranging capabilities %D and %D due to the \LUATEX\ engine and herewith the possibility to perform %D calculations in Lua it %D should be possible to build such a personal organizer in \CONTEXT. %D %D The result is contained in this module. I would like to thank Hans Hagen %D and Taco Hoekwater for the great %D \LUATEX\ machinery and Wolfgang Schuster for supporting me in tackling %D the multi-lingual interface. %D %D After the first version in 2011, we are now 11 years older, a lot %D has changed in and around the \CONTEXT %D -machinery. We are now using \LMTX\ (\LUAMETATEX ) the latest development. %D %D During the \CONTEXT -meeting 2021 Thomáš Hála presented his solution %D for generating an agenda, while the shops were closed during the Covid-19 %D pandemic. Discussing issues with calendars revealed, that it could be %D interesting to integrate into a calendar also data concerning the moon %D phase and possibly information on the sun rise and sun set time. %D %D I thought, that I would like to do such calculations and give it a try. %D After having found information how to perform such astronomical %D calculations, slowly two new modules appeared. The calculations of the %D moon phases is quite straight forward and this can be considered the %D easy part of the new development. The only remark must be made, that %D those calculations are not super accurate. A deviation of about 1 day has %D to be accepted. %D %D Finding a way to calculate the sun rise and sun set times is much more %D tedious. Collecting articles on such calculations and building the %D formulas in Lua is not the issue, but that the given information in those %D articles looks %D incomplete for a layman like me. -- Finally I found a Lua-module written for %D an %D application for presenting the required data on screen (the reference %D to the authors is given in the Lua-file for the sun data calculations). %D I adapted %D this to Lua/\CONTEXT\ and it looks like it works fine. -- I have a Raspberry %D Pi Nano with a screen attached where I display weather information together %D with the sun data, which are fetched from the Open Weather Map %D (https://openweathermap.org). Due to the fact that the development of the %D solar data module took a long time I was able to compare the calculated %D results with those displayed on the Raspberry Pi screen. Happily they are %D completely congruent. %D %D \blank[big] %D %D Without the help of Hans Hagen, this module would not have been finished. I %D would like to thank him for all the support and patience with my struggles! %D \stopsubject %D \startsubject[title={Subpaths}] %D In order to keep the hole module clearly organized the moon phase %D as well as the sun rise/set calculation files are situated in %D separate folders. %D We tell \CONTEXT\ where to find the requested files \usepath[{Moonphase,Solar}] %D \stopsubject %D \startsubject[title={Lua-files}] %D All calculations for dates are performed with Lua functions. %D The functions are contained in \type{t-calendar.lua} %\ctxloadluafile{t-calendar}{} \ctxloadluafile{t-calendar}{} %D The calculations for the moon phase are done by Lua functions. %D The functions are contained in \type{t-moonphase.lua} %D in the folder \quotation{Moonphase} \ctxloadluafile{t-moonphase}{} %D The calculations for the sun rise and set time are calculated in Lua too. %D The %D functions are contained in the file \type{t-solar.lua} in the folder %D \quotation{Solar} \ctxloadluafile{t-solar}{} %D \stopsubject %D \startsubject[title={International interface}] %D %D The PocketDiary is aware of different languages. The language to be used is %D selected with \type{\mainlanguage[en]}. The following interfaces %D are available %D %D \startitemize[2,packed] %D \item Englisch interface %D \item Dutch interface %D \item German interface %D \item Italian interface %D \item French interface %D \item Spanish interface %D \item Polish interface %D \stopitemize %D \stopsubject %D English interface \setuplabeltext[en][calendar=Calendar] \setuplabeltext[en][weekagenda=Week calendar] \setuplabeltext[en][week=Week] \setuplabeltext[en][month=Month] \setuplabeltext[en][contact=Contact] \setuplabeltext[en][name=Name] \setuplabeltext[en][address=Address] \setuplabeltext[en][zip=Zip] \setuplabeltext[en][place=Place] \setuplabeltext[en][country=Country] \setuplabeltext[en][phone=Phone] \setuplabeltext[en][mail=e-mail] \setuplabeltext[en][notes=Notes] \setuplabeltext[en][todo=Todo] \setuplabeltext[en][found={If found\textcomma\ please return to:}] \setuplabeltext[en][nyd={New Year's Day}] \setuplabeltext[en][epi={Epiphany}] \setuplabeltext[en][ashw={Ash Wednesday}] \setuplabeltext[en][palms={Palm Sunday} ] \setuplabeltext[en][gfri={Good Friday} ] \setuplabeltext[en][esun={Easter Sunday}] \setuplabeltext[en][esmo={Easter Monday}] \setuplabeltext[en][ascd={Ascension Day}] \setuplabeltext[en][pcst=Pentecost] \setuplabeltext[en][pcstmo={Pentecost Monday}] \setuplabeltext[en][xmas=Christmas] \setuplabeltext[en][bxd={Boxing Day}] \setuplabeltext[en][day=Day] \setuplabeltext[en][mon=Mon] \setuplabeltext[en][tue=Tue] \setuplabeltext[en][wed=Wed] \setuplabeltext[en][thu=Thu] \setuplabeltext[en][fri=Fri] \setuplabeltext[en][sat=Sat] \setuplabeltext[en][sun=Sun] \setuplabeltext[en][january=January] \setuplabeltext[en][february=February] \setuplabeltext[en][march=March] \setuplabeltext[en][april=April] \setuplabeltext[en][may=May] \setuplabeltext[en][june=June] \setuplabeltext[en][july=July] \setuplabeltext[en][august=August] \setuplabeltext[en][september=September] \setuplabeltext[en][october=October] \setuplabeltext[en][november=November] \setuplabeltext[en][december=December] \setuplabeltext[en][moondays=Lunar days] \setuplabeltext[en][moon=Moon] \setuplabeltext[en][sunrise=Sunrise] \setuplabeltext[en][sunset=Sunset] \setuplabeltext[en][lighthours=Lighthours] \setuplabeltext[en][sunstar=Sun] %D German interface \setuplabeltext[de][calendar=Planer] % Terminkalender, Kalender \setuplabeltext[de][weekagenda=Wochenagenda] \setuplabeltext[de][week=Woche] \setuplabeltext[de][month=Monat] \setuplabeltext[de][contact=Kontakt] \setuplabeltext[de][name=Name] \setuplabeltext[de][address=Adresse] \setuplabeltext[de][zip=Postleitzahl] \setuplabeltext[de][place=Ort] \setuplabeltext[de][country=Land] \setuplabeltext[de][phone=Telefon] \setuplabeltext[de][mail=e-Mail] \setuplabeltext[de][notes=Notizen] \setuplabeltext[de][todo={Zu erledigen}] \setuplabeltext[de][found={Wenn gefunden\textcomma\ bitte retournieren an:}] \setuplabeltext[de][nyd=Neujahr] \setuplabeltext[de][epi=Dreikönigstag] \setuplabeltext[de][ashw=Aschermittwoch] \setuplabeltext[de][palms=Palmsonntag] \setuplabeltext[de][gfri=Karfreitag] \setuplabeltext[de][esun=Ostern] \setuplabeltext[de][esmo=Ostermontag] \setuplabeltext[de][ascd=Himmelfahrt] \setuplabeltext[de][pcst=Pfingsten] \setuplabeltext[de][pcstmo=Pfingstmontag] \setuplabeltext[de][xmas=Weihnachten] \setuplabeltext[de][bxd=Stephanstag] \setuplabeltext[de][day=Tag] \setuplabeltext[de][mon=Mo] \setuplabeltext[de][tue=Di] \setuplabeltext[de][wed=Mi] \setuplabeltext[de][thu=Do] \setuplabeltext[de][fri=Fr] \setuplabeltext[de][sat=Sa] \setuplabeltext[de][sun=So] \setuplabeltext[de][january=Januar] \setuplabeltext[de][february=Februar] \setuplabeltext[de][march=März] \setuplabeltext[de][april=April] \setuplabeltext[de][may=Mai] \setuplabeltext[de][june=Juni] \setuplabeltext[de][july=Juli] \setuplabeltext[de][august=August] \setuplabeltext[de][september=September] \setuplabeltext[de][october=Oktober] \setuplabeltext[de][november=November] \setuplabeltext[de][december=Dezember] \setuplabeltext[de][moondays=Mondtage] \setuplabeltext[de][moon=Mond] \setuplabeltext[de][sunrise=Sonnenaufgang] \setuplabeltext[de][sunset=Sonnenuntergang] \setuplabeltext[de][lighthours=Taglichtstunden] \setuplabeltext[de][sunstar=Sonne] %D Dutch interface \setuplabeltext[nl][calendar=Kalender] \setuplabeltext[nl][weekagenda=Weekagenda] \setuplabeltext[nl][week=Week] \setuplabeltext[nl][month=Maand] \setuplabeltext[nl][contact=Kontakt] \setuplabeltext[nl][name=Naam] \setuplabeltext[nl][address=Adres] \setuplabeltext[nl][zip=Postcode] \setuplabeltext[nl][place=Plaats] \setuplabeltext[nl][country=Land] \setuplabeltext[nl][phone=Tel.] \setuplabeltext[nl][mail=e-mail] \setuplabeltext[nl][notes=Notities] \setuplabeltext[nl][todo=Todo] \setuplabeltext[nl][found={Wanneer gevonden\textcomma\ aub sturen naar:}] \setuplabeltext[nl][nyd={Nieuw jaar}] \setuplabeltext[nl][epi=Driekoningen] \setuplabeltext[nl][ashw=Aswoensdag] \setuplabeltext[nl][palms=Palmpasen] \setuplabeltext[nl][gfri={Goede vrijdag}] \setuplabeltext[nl][esun=Pasen] \setuplabeltext[nl][esmo={2\high{de} Paasdag}] \setuplabeltext[nl][ascd=Hemelvaart] \setuplabeltext[nl][pcst=Pinksteren] \setuplabeltext[nl][pcstmo={2\high{de} Pinksterdag}] \setuplabeltext[nl][xmas=Kerst] \setuplabeltext[nl][bxd={2\high{de} Kerstdag}] \setuplabeltext[nl][day=Dag] \setuplabeltext[nl][mon=Ma] \setuplabeltext[nl][tue=Di] \setuplabeltext[nl][wed=Woe] \setuplabeltext[nl][thu=Do] \setuplabeltext[nl][fri=Fr] \setuplabeltext[nl][sat=Za] \setuplabeltext[nl][sun=Zo] \setuplabeltext[nl][january=Januari] \setuplabeltext[nl][february=Febrari] \setuplabeltext[nl][march=Maart] \setuplabeltext[nl][april=April] \setuplabeltext[nl][may=Mei] \setuplabeltext[nl][june=Juni] \setuplabeltext[nl][july=Juli] \setuplabeltext[nl][august=Augustus] \setuplabeltext[nl][september=September] \setuplabeltext[nl][october=October] \setuplabeltext[nl][november=November] \setuplabeltext[nl][december=December] \setuplabeltext[nl][moondays=Maandagen] \setuplabeltext[nl][moon=Maan] \setuplabeltext[nl][sunrise=Zonsopg.] \setuplabeltext[nl][sunset=Zonsonderg.] \setuplabeltext[nl][lighthours=Lichturen] \setuplabeltext[nl][sunstar=Zon] %D French interface \setuplabeltext[fr][calendar=Calendrier] \setuplabeltext[fr][weekagenda={Cal. de la semaine}] \setuplabeltext[fr][week=Sem.] \setuplabeltext[fr][month=Mois] \setuplabeltext[fr][contact=Contact] \setuplabeltext[fr][name=Nom] \setuplabeltext[fr][address=Adresse] \setuplabeltext[fr][zip=CP] \setuplabeltext[fr][place=Lieu] \setuplabeltext[fr][country=Pays] \setuplabeltext[fr][phone=Tél.] \setuplabeltext[fr][mail=e-mail] \setuplabeltext[fr][notes=Observations] \setuplabeltext[fr][todo=Tâches] \setuplabeltext[fr][found={Si trouvé\textcomma\ retourner s.v.p. à: }] \setuplabeltext[fr][nyd={Jour de l'an}] \setuplabeltext[fr][epi={Épiphany}] \setuplabeltext[fr][ashw={Mercredi des Cendres}] \setuplabeltext[fr][palms={Dimanche des Rameaux}] \setuplabeltext[fr][gfri={Vendredi saint}] \setuplabeltext[fr][esun={Pâques}] \setuplabeltext[fr][esmo={Lundi de Pâques}] \setuplabeltext[fr][ascd={Jour de l'ascension}] \setuplabeltext[fr][pcst=Pentecôte] \setuplabeltext[fr][pcstmo={Lundi de Pentecôte}] \setuplabeltext[fr][xmas=Noël] \setuplabeltext[fr][bxd=] \setuplabeltext[fr][day=Jour] \setuplabeltext[fr][mon=Lun] \setuplabeltext[fr][tue=Mar] \setuplabeltext[fr][wed=Mer] \setuplabeltext[fr][thu=Jeu] \setuplabeltext[fr][fri=Ven] \setuplabeltext[fr][sat=Sam] \setuplabeltext[fr][sun=Dim] \setuplabeltext[fr][january=Janvier] \setuplabeltext[fr][february=Février] \setuplabeltext[fr][march=Mars] \setuplabeltext[fr][april=Avril] \setuplabeltext[fr][may=Mai] \setuplabeltext[fr][june=Juin] \setuplabeltext[fr][july=Juillet] \setuplabeltext[fr][august=Août] \setuplabeltext[fr][september=Septembre] \setuplabeltext[fr][october=Octobre] \setuplabeltext[fr][november=Novembre] \setuplabeltext[fr][december=Décembre] \setuplabeltext[fr][moondays=Jours lun.] % jours lunaires \setuplabeltext[fr][moon=Lune] \setuplabeltext[fr][sunrise=Lever du s.] %soleil \setuplabeltext[fr][sunset=Coucher du s.] %soleil \setuplabeltext[fr][lighthours=Heures de l.] %lumière \setuplabeltext[fr][sunstar=Soleil] % Italian interface \setuplabeltext[it][calendar=Calendario] \setuplabeltext[it][weekagenda=Calendario di settimana] \setuplabeltext[it][week=Sett.] %Settimana \setuplabeltext[it][month=Mese] \setuplabeltext[it][contact=Contatto] \setuplabeltext[it][name=Nome] \setuplabeltext[it][address=Indirizzo] \setuplabeltext[it][zip=C.A.P.] \setuplabeltext[it][place=Luogo] \setuplabeltext[it][country=Paese] \setuplabeltext[it][phone=Tel.] \setuplabeltext[it][mail=e-mail] \setuplabeltext[it][notes=Osservazioni] \setuplabeltext[it][todo=Compiti] \setuplabeltext[it][found={Se trovato\textcomma\ prego speditelo à:}] %D Italian interface \setuplabeltext[it][nyd=Capodanno] \setuplabeltext[it][epi={Epifania}] \setuplabeltext[it][ashw={Giorno delle Ceneri}] \setuplabeltext[it][palms={Domenica delle Palme}] \setuplabeltext[it][gfri={Venerdi santo}] \setuplabeltext[it][esun=Pasqua] \setuplabeltext[it][esmo={Lunedì dell'Angelo}] \setuplabeltext[it][ascd=Ascensione] \setuplabeltext[it][pcst=Pentecoste] \setuplabeltext[it][pcstmo={Lunedì di Pentecoste}] \setuplabeltext[it][xmas=Natale] \setuplabeltext[it][bxd={Giorno di S. Stefano}] \setuplabeltext[it][day=Giorno] \setuplabeltext[it][mon=Lun] \setuplabeltext[it][tue=Mar] \setuplabeltext[it][wed=Mer] \setuplabeltext[it][thu=Gio] \setuplabeltext[it][fri=Ven] \setuplabeltext[it][sat=Sab] \setuplabeltext[it][sun=Dom] \setuplabeltext[it][january=Gennaio] \setuplabeltext[it][february=Febbraio] \setuplabeltext[it][march=Marzo] \setuplabeltext[it][april=Aprile] \setuplabeltext[it][may=Maggio] \setuplabeltext[it][june=Giugno] \setuplabeltext[it][july=Luglio] \setuplabeltext[it][august=Agosto] \setuplabeltext[it][september=Settembre] \setuplabeltext[it][october=Ottobre] \setuplabeltext[it][november=Novembre] \setuplabeltext[it][december=Dicembre] \setuplabeltext[it][moondays=Giorni lun.] %Giorni lunari \setuplabeltext[it][moon=Luna] \setuplabeltext[it][sunrise=Albo] \setuplabeltext[it][sunset=Tramonto] \setuplabeltext[it][lighthours={O. di luce}] %Ore di luce \setuplabeltext[it][sunstar=Sole] %D Spanish interface \setuplabeltext[es][calendar=Agenda] \setuplabeltext[es][weekagenda=Agenda semanal] \setuplabeltext[es][week=Sem.] %Semana \setuplabeltext[es][month=Mes] \setuplabeltext[es][contact=Contacto] \setuplabeltext[es][name=Nombre] \setuplabeltext[es][address=Dirección] \setuplabeltext[es][zip=C.P.] \setuplabeltext[es][place=Población] \setuplabeltext[es][country=País] \setuplabeltext[es][phone=Tel.] \setuplabeltext[es][mail=Correo-e] \setuplabeltext[es][notes=Observaciones] \setuplabeltext[es][todo=Pendiente] \setuplabeltext[es][found={Por favor\textcomma\ devuélvalo a:}] \setuplabeltext[es][nyd=Año Nuevo] \setuplabeltext[es][epi={Reyes Magos}] \setuplabeltext[es][ashw={Miércoles de Ceniza}] \setuplabeltext[es][palms={Domingo de Palmas}] \setuplabeltext[es][gfri={Viernes santo}] \setuplabeltext[es][esun=Domingo de Pascua] \setuplabeltext[es][esmo={Lunes de Pascua}] \setuplabeltext[es][ascd=Ascensión] \setuplabeltext[es][pcst=Pentecostes] \setuplabeltext[es][pcstmo={Lunes de Pentecostes}] \setuplabeltext[es][xmas=Navidad] \setuplabeltext[es][bxd={San Esteban}] \setuplabeltext[es][day=Día] \setuplabeltext[es][mon=Lu] \setuplabeltext[es][tue=Ma] \setuplabeltext[es][wed=Mi] \setuplabeltext[es][thu=Ju] \setuplabeltext[es][fri=Vi] \setuplabeltext[es][sat=Sá] \setuplabeltext[es][sun=Do] \setuplabeltext[es][january=Enero] \setuplabeltext[es][february=Febrero] \setuplabeltext[es][march=Marzo] \setuplabeltext[es][april=Abril] \setuplabeltext[es][may=Mayo] \setuplabeltext[es][june=Junio] \setuplabeltext[es][july=Julio] \setuplabeltext[es][august=Agosto] \setuplabeltext[es][september=Septiembre] \setuplabeltext[es][october=Octubre] \setuplabeltext[es][november=Noviembre] \setuplabeltext[es][december=Diciembre] \setuplabeltext[es][moondays=Días lunares] \setuplabeltext[es][moon=Luna] \setuplabeltext[es][sunrise=Alba] \setuplabeltext[es][sunset=Ocaso] \setuplabeltext[es][lighthours={Horas de luz}] \setuplabeltext[es][sunstar=Sol] %D Polish interface \setuplabeltext[pl][calendar=Kalendarz] \setuplabeltext[pl][weekagenda={Kalendarz tygodniowy}] \setuplabeltext[pl][week=Tydzień] \setuplabeltext[pl][month=Miesiąc] \setuplabeltext[pl][contact=Kontakt] \setuplabeltext[pl][name=Nazwisko] \setuplabeltext[pl][address=Adres] \setuplabeltext[pl][zip=Kod pocztowy] \setuplabeltext[pl][place=Miejsce zamieszkania] \setuplabeltext[pl][country=Kraj] \setuplabeltext[pl][phone=Telefon] \setuplabeltext[pl][mail=e-mail] \setuplabeltext[pl][notes=Notatki] \setuplabeltext[pl][todo=Do zrobienia] \setuplabeltext[pl][found={W przypadku znalezienia proszę o odesłanie na adres}] \setuplabeltext[pl][nyd={Nowy Rok}] \setuplabeltext[pl][epi={Trzech Króli}] \setuplabeltext[pl][ashw={Środa Popielcowa}] \setuplabeltext[pl][palms={Niedziela Palmowa} ] \setuplabeltext[pl][gfri={Wielki Piątek} ] \setuplabeltext[pl][esun={Niedziela Wielkanocna}] \setuplabeltext[pl][esmo={Pn. Wielkanocny}] \setuplabeltext[pl][ascd={Wniebowstąpienie}] \setuplabeltext[pl][pcst={Zesłanie Ducha Świętego}] \setuplabeltext[pl][pcstmo={}] \setuplabeltext[pl][xmas=Święta] %Święta Bożego Narodzenia . \setuplabeltext[pl][bxd={Drugi dzień świąt}] \setuplabeltext[pl][day=Dzień] \setuplabeltext[pl][mon=Pn.] \setuplabeltext[pl][tue=Wt.] \setuplabeltext[pl][wed=Śr.] \setuplabeltext[pl][thu=Czw.] \setuplabeltext[pl][fri=Pt.] \setuplabeltext[pl][sat=Sob.] \setuplabeltext[pl][sun=Ndz.] \setuplabeltext[pl][january=Styczeń] \setuplabeltext[pl][february=Luty] \setuplabeltext[pl][march=Marzec] \setuplabeltext[pl][april=Kwiecień] \setuplabeltext[pl][may=Maj] \setuplabeltext[pl][june=Czerwiec] \setuplabeltext[pl][july=Lipiec] \setuplabeltext[pl][august=Sierpień] \setuplabeltext[pl][september=Wrzesień] \setuplabeltext[pl][october=Październik] \setuplabeltext[pl][november=Listopad] \setuplabeltext[pl][december=Grudzień] \setuplabeltext[pl][moondays=Dzień lunarny] \setuplabeltext[pl][moon=Księżyc] \setuplabeltext[pl][sunrise={Wschód słońca}] \setuplabeltext[pl][sunset={Zachód słońca}] \setuplabeltext[pl][lighthours=Długość dnia] \setuplabeltext[pl][sunstar=Słońce] %D \startsubject[title={PocketDiary layout}] %D %D This module uses different page templates, whereof one uses a symbol %D out of the set 2 of the Martin Vogel collection. So we load these symbols: \usesymbols[mvs] \setupsymbolset[martinvogel 2] %D The placement of the page numbers is switched off for the moment. \setuppagenumbering[location=] %D Because we will place 8 pages on an A4 landscape, we define our own pagesize \definepapersize[Arrangingformat][width=7.42cm, height=10.5cm] \setuppapersize[Arrangingformat][A4,landscape] %D In the templates a light gray color for (grid)lines is used. Separator %D lines can have %D an individual color too. We define the two colors with arbitrary values. %D These preset colors can be adjusted in the user file \type{PocketDiary.tex}. \definecolor[Grid][s=.75] \definecolor[Separatorline][blue] %D The page of the PocketDiary has a fairly simple layout. We use a %D header- and a footer-space. %D The header has a rule beneath and the footer one on top. %D %D The preset body-font is Pagella at 10pt %D %D We will also use tabular figures throughout the typesetting: %D \stopsubject \setuplayout [topspace=.6cm, backspace=.6cm, header=3\bodyfontsize, headerdistance=.5\bodyfontsize, footer=1.2\bodyfontsize, footerdistance=.5\bodyfontsize, margin=0pt, height=middle, width=middle] \setupbackgrounds [header] [text] [state=repeat, frame=off, bottomframe=on, framecolor=\getvariable{PocketDiaryColors}{Separatorline}] \setupbackgrounds [footer] [text] [state=repeat, frame=off, topframe=on, framecolor=\getvariable{PocketDiaryColors}{Separatorline}] \setupbodyfont[pagella,rm,10pt] \definefontfeature[f:tabular] [tnum=yes] \definefontfeature[f:smallcaps][smcp=yes] \addfeature[f:tabular] %D \startsubject[title={\METAFUN\ drawings}] %D %D There are three templates which are made up in \METAPOST. The drawings are %D used as backgrounds to the typesetting area in the form of an overlay. So the %D drawings adapt themselves to the actual dimensions %D \stopsubject \startuniqueMPgraphic{Caro} numeric w; w:= floor(OverlayWidth/4mm); numeric h; h:= floor((OverlayHeight)/4mm); path p,q; p := unitsquare xscaled (4mm*w) yscaled (4mm*h); q:= ulcorner p -- llcorner p; for i = 0 upto w : draw q shifted (i*4mm,0) withpen pencircle scaled .5pt withcolor \MPcolor{Grid}; endfor; q:= llcorner p -- lrcorner p; for i = 0 upto h : draw q shifted (0,i*4mm) withpen pencircle scaled .5pt withcolor \MPcolor{Grid}; endfor; \stopuniqueMPgraphic \startuniqueMPgraphic{Lines} numeric w; w:= OverlaytWidth; numeric h; h:= floor(OverlayHeight/7mm); path p,q; p := unitsquare xscaled OverlayWidth yscaled (7mm*(h-1)); q:= llcorner p -- lrcorner p; for i = 1 upto (h-1) : draw q shifted (0,i*7mm) withpen pencircle scaled .5pt withcolor \MPcolor{Grid}; endfor; \stopuniqueMPgraphic \startuniqueMPgraphic{Todo} numeric w; w:= OverlayWidth; numeric h; h:= floor(OverlayHeight/8mm); path p,q; p := unitsquare xscaled OverlayWidth yscaled OverlayHeight; q:= llcorner p -- lrcorner p; for i = 0 upto h : draw q shifted (0,i*7mm) withpen pencircle scaled .5pt withcolor \MPcolor{Grid}; label.top(textext("\tfd \symbol[HollowBox]"), point 0 of q shifted (2mm,i*7mm)); endfor; \stopuniqueMPgraphic %D \startsubject[title={The moon phase}] %D %D The moon phase calculation from SubsySTEMs, an American education institute, %D for this module is based on a simple calculation. %D The consequence is, that the results give a good idea only of the moon phase %D but this is most probably precise enough for the purpose of the diary. %D The return value of the moon phase calculation can be either a number, %D representing the day number in the lunar month, or a command to put a %D \METAFUN -graphic (New moon, growing moon, full moon, waning moon). %D These little graphics are stored in the file \type{moons-MP.tex}. \input moons-MP %D In this file 4 overlays are defined which are used in a dedicated %D \type{\framed[]{}} to typeset the pictograms. %D %M \input ./Moonphase/moons-MP %M \defineoverlay[waningmoon][\useMPgraphic{Moon::Waning_moon}] %M \defineoverlay[growingmoon][\useMPgraphic{Moon::Growing_moon}] %M \defineoverlay[newmoon][\useMPgraphic{Moon::Newmoon}] %M \defineoverlay[fullmoon][\useMPgraphic{Moon::Fullmoon}] %M \defineframed %M [Moon] %M [height=1.5\bodyfontsize, %M width=1.5\bodyfontsize, %M frame=off] %D %D \starttabulate[|l|r|l|] %D \NC \bf Moon phase %D \NC \bf Lunar day %D \NC \bf Macro %D \NC \bf Pictogram \NC\NR %D \NC New moon %D \NC 0 %D \NC \type{\Moon[background=newmoon]{}} %D \NC \Moon[background=newmoon]{} \NC\NR %D \NC Growing moon %D \NC 7 %D \NC \type{\Moon[background=growingmoon]{}} %D \NC \Moon[background=growingmoon]{} \NC\NR %D \NC Full moon %D \NC 15 %D \NC \type{\Moon[background=fullmoon]{}} %D \NC \Moon[background=fullmoon]{} \NC\NR %D \NC Waning moon %D \NC 22 %D \NC \type{\Moon[background=waningmoon]{}} %D \NC \Moon[background=waningmoon]{} \NC\NR %D \stoptabulate %D \stopsubject %D \startsubject[title=Sun pictograms] %D %D The calculations for the sun rise and sun set times is based on work of %D Alexander Yakushev. The results of his calculations nicely correspond with %D results obtained from the Open Weather Map website. %D %D For sunrise, sunset and light hours exist three \METAFUN\ drawings. %D These are included in the directory \type{Solar} in the file %D \type{sun-MP.tex}. \input sun-MP %D In this file 3 overlays are defined which can then be used as a %D background in a dedicated framed environment. %M \input ./solar/sun-MP %M \defineoverlay[Sunrise][\useMPgraphic{Sun::Sunrise}] %M \defineoverlay[Sunset][\useMPgraphic{Sun::Sunset}] %M \defineoverlay[Light][\useMPgraphic{Sun::Light}] %M \defineframed %M [SunA] %M [strut=yes, %M height=\lineheight, %M width=\emwidth, %M frame=off, %M offset=0pt] %M %M \defineframed %M [SunB] %M [strut=yes, %M height=\lineheight, %M width=\emwidth, %M frame=off, %M offset=0pt, %M location=depth] %D %D \starttabulate[|l|l|l|] %D \NC \bf Sun %D \NC \bf Macro %D \NC \bf Pictogram \NC\NR %D \NC Sunrise %D \NC \type{\SunA[background=Sunrise,height=8pt]{\strut}} %D \NC \SunA[background=Sunrise,height=8pt]{\strut} \NC\NR %D \NC Sunset %D \NC \type{\SunA[background=Sunset,height=8pt]{\strut}} %D \NC \SunA[background=Sunset,height=8pt]{\strut} \NC\NR %D \NC Light hours %D \NC \type{\SunB[background=Light,height=8pt]{\strut}} %D \NC \SunB[background=Light,height=8pt]{\strut} \NC\NR %D \stoptabulate %D \stopsubject %D \startsubject[title={The variable sets}] %D %D The module uses six sets of variables. The first set contains %D the information on the %D calendars to be calculated. %D First of all it has to be stated, that the whole idea behind %D this module is to prepare a personal organizer with as few %D parameters as possible. After the initial setup of the variables %D it is sufficient to adapt the values in the first set and once %D every year the information on the dates of the Day Light Saving %D Time in the last set must be adjusted. %D %D \startsubsubject[title={Variable set \bf PocketDiary}] %D %D \starttabulate[|l|l|p|] %D \NC \bf Variable \NC \bf Value \NC \bf Comment \NC\NR %D \NC WeekDay \NC number \NC Values between 1 and 7. \NC\NR %D \NC Week \NC number \NC Values between 1 and 53 \NC\NR %D \NC Month \NC number \NC Values between 1 and 12 \NC\NR %D \NC Year \NC number \NC Year numbers in the range 1900 and 4099. %D The lower limit is computer dependent (OS-timestamp), the upper limit %D is depending on the Easter Sunday calculation.\crlf %D (http://www.assa.org.au/edm.html, R.W. Mallen, 1985).\NC\NR %D \NC Nextyear \NC yes/no \NC The testing is done on \quote{yes}. If set %D to \quote{yes} the next year instead of the current year is used for %D the calculation of the year calendar. \NC\NR %D \NC Daybyday \NC yes/no \NC The testing is done on \quote{yes}. If this %D variable is set to \quote{yes} then a diary is typeset with 1 page per %D day and the weekend is typeset with Saturday and Sunday on one page. %D This uses 6 pages and we can freely choose what should be typeset on %D the pages 7 and 8. \NC\NR %D \stoptabulate %D \stopsubsubject \setvariables [PocketDiary] [WeekDay=1, Week=17, Month=5, Year=2011, Nextyear=no, Daybyday=no] %D \startsubsubject[title={Variable set \bf PocketDiaryLayout}] %D %D The PocketDiary can be given a layout according to your own ideas. %D There are 8 variables (Page1 up to Page %D 8) which can be given different values. %D %D \starttabulate[|l|p|] %D \NC \bf Variable \NC \bf Comment \NC\NR %D \NC Dayplan \NC The weekday indicated in the variable \quote{WeekDay} %D in the previous section is used to make a PocketDiary page. \NC\NR %D \NC Weekendplan \NC The weekend of the chosen week (variable \quote{Week}) %D is typeset on a single page \NC\NR %D \NC Weekcurrentplan \NC A week calendar based on the variable %D \quote{Week} %D in the previous section is used for the presentation of a week table. %D \NC\NR %D \NC Weeknextplan \NC A week calendar based on the variable \quote{Week} %D $+$ 1 in the previous section is used for the presentation of the nexts %D week's table. \NC\NR %D \NC Monthcurrentplan \NC A month table based on the value in the variable %D \quote{Month} in the previous section is typeset. \NC\NR %D \NC Monthnextplan \NC A month table of the next month based on the %D value %D in the variable \quote{Month} of the previous section is typeset. %D \NC\NR %D \NC Yearcurrentplan \NC A complete year calendar of the year given in the %D variable \quote{Year} in the previous section is typeset. \NC\NR %D \NC Yearnextplan \NC If the \quote{Nextyear} %D variable in the previous section is \quote{yes}, then a complete year %D calendar for the next year indicated in the %D variable \quote{Year} of the previous section is typeset. \NC\NR %D \NC Lost-Returnto \NC A page with the indicated information in the %D PocketDiaryAddress variable set is used to compose and typeset %D a lost and return page (see next section). \NC\NR %D \NC Blank \NC This page carries a header and a footer but is %D empty for the rest. \NC\NR %D \NC Todo \NC A todo-list template is typeset. \NC\NR %D \NC Caro \NC A page with full-grid-paper is typeset. \NC\NR %D \NC Lines \NC A page with grid lines is typeset. \NC\NR %D \NC Contact \NC A form with two sets of preprinted fields %D for marking down contact information is typeset. \NC\NR %D \stoptabulate %D %D A basic setup could look as follows: \setvariables [PocketDiaryLayout] [Page1=Lost-Returnto, Page2=Weekplan, Page3=Dayplan, Page4=Monthcurrentplan, Page5=Blank, Page6=Lines, Page7=Caro, Page8=Contact] %D \stopsubsubject %D %D \startsubsubject[title={Variable set \bf PocketDiaryAddress}] %D %D The third section of variables contains information used for the footer %D and the lost-return form. %D \stopsubsubject \setvariables [PocketDiaryAddress] [Familyname=Egger, Forename=Willi, Street={Townstreet 3B}, Zipcode=5000, City={New Beach}, Country=TEX-world, Phone={+22 444 55 88 66}, Mobile={+22 6 19 19 1717}, E-mail={info at pocketdiary.org}, Web=www.pocketdiary.org] %D \startsubsubject[title={Variable set \bf PocketDiaryColors}] %D %D The PocketDiary uses some color. The header and footer separator lines can %D be given a color. Standard color is blue. %D %D For those who want gridlines other than light gray can set a %D color for the gridlines too. %D \stopsubsubject \setvariables [PocketDiaryColors] [Separatorline=blue, Gridline={s=.55}] %D \startsubsubject[title={Variable set \bf PocketDiaryFooter}] %D %D The footer is filled with three fields. These fields may contain the contents %D of variables or \TEX\ commands. The setup of the footer is done with a buffer %D in order to be able to call it later on. %D \stopsubsubject %D \stopsubject %D %D \startsubject[title={Footer setup}] %D \stopsubject \setvariables [PocketDiaryFooter] [Lefttext=PocketDiary, Centertext=\pagenumber, Righttext={\getvariable{PocketDiaryAddress}{Forename},~\currentdate[year]}] %{\currentdate[year]} \startbuffer[Footertext] \setupfootertexts[% \tfx \getvariable{PocketDiaryFooter}{Lefttext} \hfill \getvariable{PocketDiaryFooter}{Centertext} \hfill \getvariable{PocketDiaryFooter}{Righttext}] \stopbuffer \getbuffer[Footertext] %D \startsubject[title={Variable set \bf PocketDiaryGeoPosition}] %D %D For the sun data calculations you need to know the latitude and longitude of %D your location. %D %D For correct calculations you need also to pass the timezone offset to Lua. %D %D The dates for the begin and end of the day light saving time (DST) %D are calculated based on the continent information. Possible values are %D \quote{EU} and \quote{US}. If the field is empty, then no DST is calculated. %D %D For the US (except for Arizona and Hawaii) currently the DST starts on the %D second Sunday of March and ends on the first Sunday of November. %D %D for Europe currently the DST starts on the last Sunday of March and ends on %D the last Sunday of October. %D %D Sun data are typeset on the \quote{Dayplan} and \quote{Weekendplan} as well %D as on Tuesdays in the week-calendar. %D \stopsubject \setvariables %Koziegłowy [PocketDiaryGeoPosition] [lat=52.467860, lon=16.981240, timeoffset=1, continent=EU] %D \startsubject[title={The various calendar pages}] %D %D Most of the activities for creating the contents and layout of the %D different pages like day, weekend, week, month and year calendars %D is delegated to Lua. Those pages are made-up as %D \CONTEXT -Lua-documents (cld). %D We preload the Lua -file with \ctxloadluafile{t-pocketdiary}{} %D \startsubsubject[title={Day plan}] %D %D \startplacefigure %D [location={middle,here}, %D reference=fig:Singleday, %D title={Example Day-calendar}] %D {\externalfigure[docu-figures][page=1,width=.4\textwidth,frame=on]} %D \stopplacefigure %D %D The day calendar looks as in \in{figure}[fig:Singleday]. %D %D Next to the day number of the selected month the day name is given. If the %D day is a christian feast day, its name is following after the day name. %D To the right the week number and the year is typeset. %D %D The configuration of the page looks as follows: \startsetups table:topinfo \setupTABLE[each][each][frame=off] \setupTABLE[r][1][offset=0pt,loffset=1pt,roffset=1pt,align=lohi] % Date row \setupTABLE[r][2][height=1.3\bodyfontsize,frame=off,offset=0pt] % Astronomy row \setupTABLE[c][1][style=bold,width=0.25\textwidth] % Day \setupTABLE[c][2][width=0.35\textwidth,align=lohi] % Feastname column \setupTABLE[c][3][width=0.4\textwidth, align={flushright,lohi}] % Month / year column \stopsetups \startsetups table:topweekplan \setupTABLE[each][each][frame=off] \setupTABLE[r][1][offset=0pt,loffset=3pt,roffset=3pt,align=lohi] % Date row \setupTABLE[c][1][style=bold,width=0.5\textwidth,align=lohi] % Name \setupTABLE[c][2][style={\switchtobodyfont[6pt]},width=0.5\textwidth, align={flushright,lohi}] % Week, year \stopsetups %D For the creation of the page a command with 8 parameters is defined: \define[8]\Dayplan{\ctxlua{thirddata.diary.dayplan(#1,#2,#3,#4,#5,#6,#7,#8)}} %D The Dayplan-command with the collected parameters is placed in a buffer. This buffer is later called from the user-file \type{PocketDiary.tex} . \startbuffer[Dayplan] \Dayplan %Weekday,Week,Month,Year,lat,lon,timeoffset,continent {\getvariable{PocketDiary}{WeekDay}} {\getvariable{PocketDiary}{Week}} {\getvariable{PocketDiary}{Month}} {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \stopbuffer %D \stopsubsubject %D \startsubsubject[title={Weekend}] %D %D The weekend calendar shows Saturday and Sunday on one page %D (see \in{figure}[fig:Weekend]). %D %D The typeset data are identical to those of the \quote{Dayplan} %D %D \startplacefigure %D [location={middle,here}, %D reference=fig:Weekend, %D title={Example Weekend-calendar}] %D {\externalfigure[docu-figures][page=2,width=.4\textwidth,frame=on]} %D \stopplacefigure %D Comparable to the Dayplan the Weekendplan command is defined with 8 parameters. \define[8]\Weekendplan{\ctxlua{thirddata.diary.weekendplan(#1,#2,#3,#4,#5,#6,#7,#8)}} %D Again this command with the collected information of the 8 parameters is placed in a buffer which is called then from the user-file \type{PocketDiary.tex} . \startbuffer[Weekendplan] \Weekendplan %Weekday,Week,Month,Year,lat,lon,timeoffset,continent {6} {\getvariable{PocketDiary}{Week}} {\getvariable{PocketDiary}{Month}} {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \stopbuffer %D \stopsubsubject %D \startsubsubject[title={Week plan and next week plan}] %D %D The week calendar is a one-column table for working days. %D Saturday and Sunday are placed next to each other in the last table row. An %D example is given %D in \in{figure}[fig:Week]. %D %D In the \quote{Weekplan} header appears \quote{Weeek agenda} or its %D correspondent name in the supported languages. To the right the month's %D number, weeknumber and year are typeset. %D \startplacefigure %D [location={middle,here}, %D reference=fig:Week, %D title={Example Week-calendar}] %D {\externalfigure[docu-figures][page=3,width=.4\textwidth,frame=on]} %D \stopplacefigure %D By means of a setups-sequence the table is defined as follows: \startsetups table:week \setupTABLE[r][each][height=.158\textheight,align=flushleft] %.165 \setupTABLE[r][even][background=color,backgroundcolor=.5s] \setupTABLE[c][1][width=.5\textwidth] \setupTABLE[c][2][width=.5\textwidth] \stopsetups %D Again the Weekcurrentplan-command is defined with 8 parameters \define[8]\Weekcurrentplan{\ctxlua{thirddata.diary.weekplan(#1,#2,#3,#4,#5,#6,#7,#8)}} %D And the command together with the gathered parameters is stored in a buffer, which will be used by the user-file \type{PocketDiary.tex} . \startbuffer[Weekcurrentplan] \Weekcurrentplan %Weekday,Week,Month,Year,lat,lon,timeoffset,continent {1} {\getvariable{PocketDiary}{Week}} {\getvariable{PocketDiary}{Month}} {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \page[yes] \stopbuffer %D Similar to the week plan the next week plan is built. \define[8]\Weeknextplan{\ctxlua{thirddata.diary.weekplan(#1,#2,#3,#4,#5,#6,#7,#8)}} \startbuffer[Weeknextplan] \Weeknextplan %Weekday,Week,Month,Year,lat,lon,timeoffset,dst_start,dst_stop {1} {\directlua{tex.print{\getvariable{PocketDiary}{Week}+1}}} {\getvariable{PocketDiary}{Month}} {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \page[yes] \stopbuffer %D \stopsubsubject %D \startsubsubject[title={Month current and month next}] %D %D The month calendar looks as in \in{figure}[fig:Month]. %D %D Left in the header appears the month name in the chosen language. To the %D right the year is typeset. %D %D \startplacefigure %D [location={middle,here}, %D reference=fig:Month, %D title={Example Month-calendar}] %D {\externalfigure[docu-figures][page=4,width=.4\textwidth,frame=on]} %D \stopplacefigure %D In the same fashion as the previous items also the month and %D next month calendars are defined respectively setup: \startsetups table:month \setupTABLE[column][each][width=.143\textwidth,align=flushright,offset=3pt] \setupTABLE[column][7][style=\red] \stopsetups %D For the Month-calendars we need only two parameters: month and year. \define[2]\Monthcurrentplan{\ctxlua{thirddata.diary.monthcurrentplan(#1,#2)}} %D The command is kept together with the gathered parameters in a buffer again. %D This will be called from the user-file \type{PocketDiary.tex} . \startbuffer[Monthcurrentplan] \Monthcurrentplan {\getvariable{PocketDiary}{Month}} {\getvariable{PocketDiary}{Year}} \stopbuffer \define[2]\Monthnextplan{\ctxlua{thirddata.diary.monthnextplan(#1,#2)}} \startbuffer[Monthnextplan] \Monthnextplan {\getvariable{PocketDiary}{Month}} {\getvariable{PocketDiary}{Year}} \stopbuffer %D \stopsubsubject %D \startsubsubject[title={Year current and year next}] %D %D The year calendar looks as in \in{figure}[fig:Year]. %D %D In the header the year only is typeset. %D %D \startplacefigure %D [location=middle, %D reference=fig:Year, %D title={Example Year-calendar}] %D {\externalfigure[docu-figures][page=5,width=.4\textwidth,frame=on]} %D \stopplacefigure %D The year table(s) are prepared as the week tables with a table-setup %D sequence, a custom command which resides with the parameters assigned in a %D buffer, which will again be called from the user-file \type{PocketDiary.tex} \startsetups table:year \setupTABLE[column] [each] [width=.032\textwidth,align=flushright,offset=1pt,frame=off] \setupTABLE[column][1][width=.052\textwidth,align=flushleft] \setupTABLE[row][each][offset=1pt,height=1.5\bodyfontsize] \stopsetups \define[2]\Yearcurrentplan{\ctxlua{thirddata.diary.yearplan(#1,#2)}} \define[2]\Yearnextplan{\ctxlua{thirddata.diary.yearplan(#1,#2)}} \startbuffer[Yearcurrentplan] \Yearcurrentplan {\getvariable{PocketDiary}{Year}} {"no"} \stopbuffer \startbuffer[Yearnextplan] \Yearnextplan {\getvariable{PocketDiary}{Year}} {"\getvariable{PocketDiary}{Nextyear}"} \stopbuffer %D \stopsubsubject %D \startsubsubject[title= {One week\dots}] %D %D As mentioned before, the result will be 5 pages with one working day per %D page and the weekend on one page i.e. 6 pages. For the pages 7 and 8 the %D values defined in the \quote{PocketDiaryLayout} variable set is used. %D As for the Dayplan we need a command carrying 8 parameters: \define[8]\Daybyday{\ctxlua{thirddata.diary.daybydayplan(#1,#2,#3,#4,#5,#6,#7,#8)}} %D A buffer contains the command just defined with the gathered information for the parameters. The buffer then is called from the user-file \type{PocketDiary.tex} . \startbuffer[Daybyday] \Daybyday {1} %Weekday {\getvariable{PocketDiary}{Week}} {\getvariable{PocketDiary}{Month}} {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \stopbuffer %D \stopsubsubject %D \startsubsubject[title={Templates}] %D %D The PocketDiary comes with a couple of templates for writing down %D information: %D For the pages with (grid)lines we use an overlay in the background of %D the text area which will contain the \METAPOST -graphic. %D %D \startplacefigure %D [location={middle,here}, %D title={The set of available templates}] %D {\startcombination[3*2] %D {\externalfigure %D [docu-figures] %D [page=6,width=.25\textwidth,frame=on]}{The blank page} %D {\externalfigure %D [docu-figures] %D [page=7,width=.25\textwidth,frame=on]}{Caro paper} %D {\externalfigure %D [docu-figures] %D [page=8,width=.25\textwidth,frame=on]}{Lines} %D {\externalfigure %D [docu-figures] %D [page=9,width=.25\textwidth,frame=on]}{Todo} %D {\externalfigure %D [docu-figures] %D [page=10,width=.25\textwidth,frame=on]}{Contact information} %D {\externalfigure %D [docu-figures] %D [page=11,width=.25\textwidth,frame=on]}{Lost-return-to information} %D \stopcombination} %D \stopplacefigure %D \stopsubsubject %D The setups for the Contacts page look as follows: \startsetups table:contacts \setupTABLE[r][each][frame=off,bottomframe=on,height=2\lineheight] \setupTABLE[c][1][width=.3\textwidth] \setupTABLE[c][2][width=.5\textwidth] \setupTABLE[c][3][width=.2\textwidth] \stopsetups %D The setups for the Lost-Returnto page is setup in the following way: \startsetups table:returnto \setupTABLE[r][each][frame=off] \setupTABLE[c][each][width=\textwidth] \stopsetups %D Another setups covers the reset of the used Background \startsetups Background:stop \defineoverlay [Textarea] [\resetMPdrawing] \setupbackgrounds[text][text][background=] \stopsetups %D All templates for these pages are contained in buffers in order to call them from the user-file \type{PocketDiary.tex} \startbuffer[Contact] \setupheadertexts[{\bf \labeltext{contact}\hfill}] \switchtobodyfont[6pt] \dorecurse{2}{\bTABLE[setups=table:contacts] \bTR \bTD \labeltext{name}: \eTD \bTD \eTD \bTD \eTD \eTR \bTR \bTD \labeltext{address}:\eTD \bTD \eTD \bTD \eTD \eTR \bTR \bTD \strut\eTD \bTD \eTD \bTD \eTD \eTR \bTR \bTD \labeltext{zip}:\eTD \bTD \labeltext{place}:\eTD \bTD \labeltext{country}:\eTD \eTR \bTR \bTD \labeltext{phone}:\eTD \bTD \eTD \bTD \eTD \eTR \bTR \bTD \labeltext{mail}:\eTD \bTD \eTD \bTD \eTD \eTR \eTABLE \blank} \page[yes] \stopbuffer \startbuffer[Caro] \setupheadertexts[{\bf \labeltext{notes}\hfill}] \defineoverlay [Textarea] [\useMPgraphic{Caro}] \setupbackgrounds[text][background=Textarea] \strut \page[yes] \setups{Background:stop} \stopbuffer \startbuffer[Lines] \setupheadertexts[{\bf \labeltext{notes}\hfill}] \defineoverlay [Textarea] [\useMPgraphic{Lines}] \setupbackgrounds[text][text][background=Textarea] \strut \page[yes] \setups{Background:stop} \stopbuffer \startbuffer[Todo] \defineoverlay [Textarea] [\useMPgraphic{Todo}] \setupbackgrounds[text][text][background=Textarea] \setupheadertexts[\bf \labeltext{todo}\hfill] \strut \page[yes] \setups{Background:stop} \stopbuffer \startbuffer[Blank] \setupheadertexts[{\bf \labeltext{notes}\hfill}] \strut \page[yes] \stopbuffer \startbuffer[Lost-Returnto] \strut \setupheadertexts[{\bf \labeltext{calendar}}] \setupfooter[state=empty] \setupbackgrounds[footer][text][topframe=off] \setups{Background:stop} \strut \blank[2*line] \framed[width=\textwidth, frame=off, bottomframe=on, align=flushleft, rulethickness=1pt, foregroundcolor=\getvariable{PocketDiaryColors}{Separatorline}, framecolor=\getvariable{PocketDiaryColors}{Separatorline}] {\labeltext{found}} \bTABLE[setups=table:returnto] \bTR \bTD \getvariable{PocketDiaryAddress}{Forename}~ \getvariable{PocketDiaryAddress}{Familyname} \eTD \eTR \bTR \bTD \getvariable{PocketDiaryAddress}{Street} \eTD \eTR \bTR \bTD \getvariable{PocketDiaryAddress}{Zipcode} {\addff{f:smallcaps}\getvariable{PocketDiaryAddress}{City}}\eTD \eTR \bTR \bTD Tel: \getvariable{PocketDiaryAddress}{Phone}\eTD \eTR \bTR \bTD Mob: \getvariable{PocketDiaryAddress}{Mobile}\eTD \eTR \bTR \bTD E-mail: \getvariable{PocketDiaryAddress}{E-mail} \eTD \eTR \bTR \bTD Web: \getvariable{PocketDiaryAddress}{Web} \eTD \eTR \eTABLE \page[yes] \getbuffer[Footertext] \setupbackgrounds[footer][text][topframe=on] \stopbuffer %D \stopsubject %D %D \startsubject[title={The setup of the PocketDiary}] %D %D When filling the 8 pages we can do two things. Either we let \CONTEXT\ %D typeset the pages as we choose them in the section \quote{PocketDiaryLayout} %D or we set the variable \quote{Daybyday} in the variable set %D \quote{PocketDiary} to \quote{yes}. This leads to the typesetting of 5 pages %D with each a working day and the weekend on one page. The remaining two pages %D are typeset according to the values given in \quote{PocketDiaryLayout.} \startbuffer[Pocketdiary] \definecolor[Grid][\getvariable{PocketDiaryColors}{Gridline}] \definecolor[Separatorline][\getvariable{PocketDiaryColors}{Separatorline}] \doifelse{\getvariable{PocketDiary}{Daybyday}}{yes} {\Daybyday %creates 6 pages {1} {\getvariable{PocketDiary}{Week}} {\getvariable{PocketDiary}{Month}} {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \getbuffer[\getvariable{PocketDiaryLayout}{Page7}] \getbuffer[\getvariable{PocketDiaryLayout}{Page8}] } {\getbuffer[\getvariable{PocketDiaryLayout}{Page1}] \getbuffer[\getvariable{PocketDiaryLayout}{Page2}] \getbuffer[\getvariable{PocketDiaryLayout}{Page3}] \getbuffer[\getvariable{PocketDiaryLayout}{Page4}] \getbuffer[\getvariable{PocketDiaryLayout}{Page5}] \getbuffer[\getvariable{PocketDiaryLayout}{Page6}] \getbuffer[\getvariable{PocketDiaryLayout}{Page7}] \getbuffer[\getvariable{PocketDiaryLayout}{Page8}] } \stopbuffer %D \stopsubject %D \startsubject[title={Arranging the pages}] %D %D For the arrangement of the 8 pages on the paper we need a %D special arranging scheme, which is included in the distribution. %D Invoking the scheme is performed with %D %D \type{\setuparranging[1*8]} %D %D The arrangement of the 8 pages is not switched on in this file. For the %D purpose of experimenting it is better to keep this command in the user file %D \type{\type{PocketDiary.tex} } %D %D \stopsubject %D \startsubject[title={How to fold the PocketDiary}] %D %D The eight printed pages are folded in such a way, that the PocketDiary %D presents itself as a small booklet. %D There are no empty pages visible. %D %D \startplacefigure %D [location=middle, %D reference=fig:schemeA, %D title={The basic folding scheme}] %D {\externalfigure[docu-figures][page=12,width=.6\textwidth]} %D \stopplacefigure %D %D First make two mountain-folds as indicated with the straight lines in %D \in{figure}[fig:schemeA]. %D Unfold the paper and turn it face up and \unit{90 Degrees} to the left. %D Make a valley-fold with the lower part %D of the sheet on the previously made mountain-fold. Unfold and turn the %D sheet \unit{180 Degrees}. %D Make another valley-fold as described before. Unfold the sheet. %D %D Take a sharp knife and a ruler. Slit the paper open between Cuttingpoint A %D and B (see \in{figure}[fig:schemeA]). %D %D Now we can fold the booklet. First fold the paper again in the length. Then %D hold the double folded paper %D with the mountain-fold up. Push from both sides towards the center in order %D to get a form similar %D to \in{figure}[fig:schemeB]. Fold then the upper double-page in direction B, %D the lower double-page %D in direction C and finally the lefthand double-sided page in direction D. %D %D \startplacefigure %D [location=middle, %D reference=fig:schemeB, %D title={The basic folding scheme}] %D {\externalfigure[docu-figures][page=13,width=.6\textwidth]} %D \stopplacefigure %D %D Before creasing the booklet at the spine it is worthwhile to put the section %D on table and adjust %D folds where needed. Finally the spine is creased with preference with a %D bone-folder. %D \stopsubject \stopmodulecontext-modules-20240428/tex/context/third/visualcounter/0000755000175000017500000000000014613513621022372 5ustar hillehillecontext-modules-20240428/tex/context/third/visualcounter/t-visualcounter.mkvi0000644000175000017500000003467012463521402026435 0ustar hillehille%D \module %D [ file=t-visualcounter, %D version=2013.04.01, %D title=\CONTEXT\ User Module, %D subtitle=Visual Counter, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Visual Counter (ver: 2013.04.01)} \startmodule [visualcounter] \unprotect \startinterface all \setinterfaceconstant {palette} {palette} \setinterfaceconstant {path} {path} \stopinterface %D \section{Color Palettes} %D %D The color of the visual counters is control using color palettes. \definepalet [visualcounter:bright] [active=orange, past=blue, future=gray] \definenamespace [visualcounter] [ \c!type=module, \c!name=visualcounter, \c!command=\v!yes, setup=\v!list, \c!style=\v!yes, \s!parent=visualcounter, ] \setupvisualcounter [ \s!counter=, \c!n={\rawcountervalue[\visualcounterparameter\s!counter]}, \c!text={\convertedcounter[\visualcounterparameter\s!counter]}, \c!max\c!text={\lastcounter[\visualcounterparameter\s!counter]}, \c!last={\lastcountervalue[\visualcounterparameter\s!counter]}, \c!style=, \c!color=, \c!palette=visualcounter:bright, \c!mp=visualcounter::countdown, \c!width=1EmWidth, \c!height=1ExHeight, \c!rulethickness=1bp, \c!distance=0.5EmWidth, % Parameters passed to scale \c!maxwidth=\maxdimen, \c!maxheight=\maxdimen, ] %% TODO: shaded=yes|no randomized=yes|no %D \section {MP instance} %D %D To prevent interference with other MP commands, we define a separate metapost %D instance \defineMPinstance [visualcounter] [\s!format=metafun, \s!extensions=\v!no, \s!initializations=\v!yes] \setupMPinstance [visualcounter] [\c!textcolor=\visualcounterparameter\c!color, \c!textstyle=\visualcounterparameter\c!style] %D \section {usevisualcounter} \unexpanded\def\usevisualcounter {\dosingleargument\usevisualcounter_indeed} \def\usevisualcounter_indeed[#options]#name% {\bgroup \edef\currentvisualcounter{#name}% \setupvisualcounter[#name][#options]% \setuppalet[\visualcounterparameter\c!palette]% \scale [ \c!maxwidth=\visualcounterparameter\c!maxwidth, \c!maxheight=\visualcounterparameter\c!maxheight, ]{\expanded{\useMPgraphic{\visualcounterparameter\c!mp}}}% \egroup} \startuseMPgraphic{visualcounter::initialization} newnumeric current_counter, last_counter; current_counter := \visualcounterparameter\c!n; last_counter := max(\visualcounterparameter\c!last, 1); newnumeric width ; width := \visualcounterparameter\c!width; newnumeric height ; height := \visualcounterparameter\c!height; newnumeric distance ; distance := \visualcounterparameter\c!distance; newnumeric rulethickness; rulethickness := \visualcounterparameter\c!rulethickness; newcolor past_color; past_color := \MPcolor{past}; newcolor active_color; active_color := \MPcolor{active}; newcolor future_color; future_color := \MPcolor{future}; \stopuseMPgraphic %D \section {The counters} %D %D \subsection {markers} \definevisualcounter [markers] [ \c!mp=visualcounter::markers, \c!width=1EmWidth, \c!distance=\visualcounterparameter\c!width/4, \c!mp\c!setups=visualcounter::markers:circle, ] \startuseMPgraphic{visualcounter::markers:circle} def show_past_marker(expr shift) = fill fullcircle xyscaled(width, width) shifted (shift, 0) withcolor past_color enddef; def show_active_marker(expr shift) = fill fullcircle xyscaled(width, width) shifted (shift, 0) withcolor active_color enddef; def show_future_marker(expr shift) = fill fullcircle xyscaled(width, width) shifted (shift, 0) withcolor future_color enddef; \stopuseMPgraphic \startuseMPgraphic{visualcounter::markers:square} def show_past_marker(expr shift) = fill fullsquare xyscaled(width, width) shifted (shift, 0) withcolor past_color enddef; def show_active_marker(expr shift) = fill fullsquare xyscaled(width, width) shifted (shift, 0) withcolor active_color enddef; def show_future_marker(expr shift) = fill fullsquare xyscaled(width, width) shifted (shift, 0) withcolor future_color enddef; \stopuseMPgraphic \startuseMPgraphic{visualcounter::markers:star} % Copied from http://tug.org/pracjourn/2012-1/hefferon.html def fullstar = hide ( z0 = origin; z1 = (x0, 0.5); z2 = ((z1 - z0) rotated ( 360/5)) + z0 ; z3 = ((z1 - z0) rotated (2*360/5)) + z0 ; z4 = ((z1 - z0) rotated (3*360/5)) + z0 ; z5 = ((z1 - z0) rotated (4*360/5)) + z0 ; z6 = whatever[z1, z3] = whatever[z2, z5]; z7 = whatever[z1, z3] = whatever[z2, z4]; z8 = whatever[z2, z4] = whatever[z3, z5]; z9 = whatever[z1, z4] = whatever[z3, z5]; z10 = whatever[z1, z4] = whatever[z2, z5]; ) (z1 -- z6 -- z2 -- z7 -- z3 -- z8 -- z4 -- z9 -- z5 -- z10 -- cycle) enddef; def show_star(expr shift, fill_color) = newpath p; p := fullstar xyscaled(width, width) shifted (shift, 0); fill p withcolor fill_color; draw p withcolor 0.5*fill_color; enddef; def show_past_marker(expr shift) = show_star(shift, past_color); enddef; def show_active_marker(expr shift) = show_star(shift, active_color); enddef; def show_future_marker(expr shift) = show_star(shift, future_color); enddef; \stopuseMPgraphic \startuseMPgraphic{visualcounter::markers} begingroup ; \includeMPgraphic{visualcounter::initialization} \includeMPgraphic{\visualcounterparameter{\c!mp\c!setups}} pickup pencircle scaled \visualcounterparameter\c!rulethickness ; for i := 1 upto last_counter : if i < current_counter : show_past_marker(i*(width + distance)); elseif i > current_counter : show_future_marker(i*(width + distance)) fi ; endfor ; %% Write the current marker at the end (incase the markers overlay each other) show_active_marker(current_counter*(width + distance)) \stopuseMPgraphic %D \subsection {countdown} \definevisualcounter [countdown] [ \c!mp=visualcounter::countdown, \c!width=1EmWidth, \c!height=1ExHeight, \c!distance=3EmWidth, ] \startuseMPgraphic{visualcounter::countdown} begingroup ; \includeMPgraphic{visualcounter::initialization} % label newpicture countertext ; countertext := textext("\visualcounterparameter\c!text"); newpicture max_countertext ; max_countertext := textext("\visualcounterparameter{\c!max\c!text}"); newnumeric inner_diameter, outer_diameter ; inner_diameter := 1.5 * max(bbwidth(max_countertext), bbheight(max_countertext)); outer_diameter := inner_diameter + max(\visualcounterparameter\c!width, \visualcounterparameter\c!height) ; newpath inner_circle, outer_circle ; % make the circle start at 12 o'clock and go clockwise inner_circle := reverse (fullcircle scaled inner_diameter) rotated 90; outer_circle := reverse (fullcircle scaled outer_diameter) rotated 90; % boundary distance newnumeric inner_boundary, outer_boundary ; inner_boundary := \visualcounterparameter\c!distance/last_counter * (inner_diameter)/(outer_diameter) ; outer_boundary := \visualcounterparameter\c!distance/last_counter ; % step size newnumeric inner_time, outer_time ; inner_time := arclength (inner_circle)/last_counter ; outer_time := arclength (outer_circle)/last_counter ; newpath slice ; newpair pt_inner_left, pt_inner_right ; newpair pt_outer_left, pt_outer_right ; for i = 1 upto last_counter : pt_inner_left := point ((i-1)*inner_time) on inner_circle ; pt_inner_right := point (i*inner_time - inner_boundary) on inner_circle ; pt_outer_left := point ((i-1)*outer_time) on outer_circle ; pt_outer_right := point (i*outer_time - outer_boundary) on outer_circle ; slice := inner_circle cutbefore pt_inner_left cutafter pt_inner_right --- reverse (outer_circle cutbefore pt_outer_left cutafter pt_outer_right ) --- cycle ; fill slice withcolor if i < current_counter : past_color elseif i = current_counter : active_color else : future_color fi ; endfor ; label (countertext, origin) ; endgroup ; \stopuseMPgraphic %D \subsection {pulseline} \definevisualcounter [pulseline] [ \c!mp=visualcounter::pulseline, \c!path={origin -- (((current_counter-1)*width, 0) .. ((current_counter-0.5)*width, -0.2height) -- (current_counter*width, height) -- ((current_counter+0.5)*width, -0.2height) .. ((current_counter+1)*width,0)) -- ((last_counter+1)*width, 0) randomized 0.3width}, \c!width=0.5EmWidth, \c!height=3ExHeight, \c!rulethickness=1bp, ] \startuseMPgraphic{visualcounter::pulseline} begingroup ; \includeMPgraphic{visualcounter::initialization} newpath pulse ; pulse := \visualcounterparameter\c!path ; newpath helper_line ; helper_line := (0,-height) -- (0,height) ; newpair start_pulse, stop_pulse ; start_pulse := pulse intersectionpoint (helper_line shifted ((current_counter-1)*width, 0)) ; stop_pulse := pulse intersectionpoint (helper_line shifted ((current_counter+1)*width, 0)) ; newpath past_pulse, active_pulse, future_pulse ; past_pulse := pulse cutafter start_pulse ; active_pulse := pulse cutbefore start_pulse cutafter stop_pulse ; future_pulse := pulse cutbefore stop_pulse ; pickup pencircle scaled \visualcounterparameter\c!rulethickness ; draw past_pulse withcolor past_color ; draw active_pulse withcolor active_color ; draw future_pulse withcolor future_color ; endgroup ; \stopuseMPgraphic %D \subsection {scratchmarks} \definevisualcounter [scratchmarks] [ \c!mp=visualcounter::scratchmarks, \c!width=3bp, \c!height=3ExHeight, \c!distance=0.5EmWidth, angle=75, ] \startuseMPgraphic{visualcounter::scratchmarks} begingroup ; \includeMPgraphic{visualcounter::initialization} linecap := rounded ; newnumeric theta ; theta := \visualcounterparameter{angle} ; newpath left_marker, right_marker ; left_marker := origin -- height*dir(theta) ; right_marker := (-4*distance, height*sind(theta)) -- origin ; save marker ; def marker (expr i) = (if i mod 5 = 0 : right_marker else : left_marker fi) shifted (i*distance, 0) withcolor if i < current_counter : past_color elseif i = current_counter : active_color else : future_color fi ; enddef ; pickup pencircle scaled \visualcounterparameter\c!width ; for i := last_counter downto 1 : draw marker(i) ; endfor ; draw marker(current_counter) ; endgroup ; \stopuseMPgraphic %D \subsection {mayanumbers} \definevisualcounter [mayanumbers] [ \c!mp=visualcounter::mayanumbers, \c!width=1EmWidth, \c!height=1ExHeight, \c!distance=\visualcounterparameter\c!width/4, ] \startuseMPgraphic{visualcounter::mayanumbers} begingroup ; \includeMPgraphic{visualcounter::initialization} newnumeric linewidth ; linewidth := 4width + 5distance ; newnumeric linedistance ; linedistance := 2distance ; newpath marker; marker := ((0,0.5height) .. (0.5width,-0.1height) .. (0.5width, -0.4height) .. (0,-0.8height) .. (-0.5width,-0.4height) .. (-0.5width, -0.1height) .. cycle) ; newpath line ; line := (-0.5width - distance, 0) .. (0.1width,0.8height) --- (3.1width + 3distance, 0.8height) .. (3.5width + 4distance, 0) .. (3.1width + 3distance, -0.8height) --- (0.1width, -0.8height) .. cycle ; newnumeric total_lines; total_lines := floor(last_counter/5); newnumeric remaining_markers; remaining_markers := last_counter - total_lines*5; newnumeric start_offset; start_offset := linewidth - 0.5distance; newnumeric total_width; total_width := total_lines*(linewidth+linedistance) + remaining_markers*(width+distance); newpath boundary ; boundary := (0, 0.9height) -- (total_width, 0.9height) -- (total_width, -0.9height) -- (0, -0.9height) -- cycle; boundary := boundary shifted (start_offset, 0); % Draw the filled solid lines newnumeric linecount ; linecount := floor ((current_counter - 1) / 5) ; for i = 1 upto linecount : fill line shifted (i*(linewidth + linedistance), 0) withcolor past_color ; endfor % Draw the filled dots newnumeric offset ; offset := (linecount + 1)*(linewidth + linedistance) ; newnumeric markercount ; markercount := current_counter - linecount*5 ; if markercount = 5 : fill line shifted (offset,0) withcolor active_color ; else : for i = 1 upto markercount : fill marker shifted (offset + (i-1)*(width+distance), 0 ) withcolor if i = markercount : active_color ; else : past_color ; fi endfor fi % Draw the empty dots newnumeric markermax ; markermax := min(last_counter - linecount*5, 4) ; if markercount < 4 : for i = markercount + 1 upto markermax : fill marker shifted (offset + (i-1)*(width+distance),0) withcolor future_color ; endfor fi for blockcount = linecount + 1 upto ceiling(last_counter/5) : offset := (blockcount + 1)*(linewidth + linedistance) ; markercount := min(4, last_counter - blockcount*5) ; for i = 1 upto markercount : fill marker shifted (offset + (i-1)*(width+distance),0) withcolor future_color ; endfor endfor setbounds currentpicture to boundary ; endgroup ; \stopuseMPgraphic %D \section {progressbar} \definevisualcounter [progressbar] [ \c!mp=visualcounter::progressbar, \c!width=\the\dimexpr\textwidth/2\relax, \c!height=2ExHeight, ] \startuseMPgraphic {visualcounter::progressbar} begingroup; \includeMPgraphic{visualcounter::initialization} newpath boundary; boundary := unitsquare xyscaled (width, height); newpath progressbar; progressbar := unitsquare xyscaled (current_counter*width/last_counter, height); fill boundary withcolor future_color; fill progressbar withcolor past_color; setbounds currentpicture to boundary ; endgroup; \stopuseMPgraphic \protect \stopmodule context-modules-20240428/tex/context/third/filter/0000755000175000017500000000000014613513620020753 5ustar hillehillecontext-modules-20240428/tex/context/third/filter/t-module-catcodes.mkiv0000644000175000017500000000653014133105651025156 0ustar hillehille%D \module %D [ file=t-module-catcodes, %D version=2018.04.16, %D title=\CONTEXT\ User Module, %D subtitle=Module Catcodes, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] %D %D MkII and MkIV use different names and values for commonly used catcode %D tables. So, I define a private copy of the catcode tables that are needed %D by the filter and vim modules. \writestatus{loading}{Module Catcodes (ver: 2018.04.16)} \startmodule [module-catcodes] \newcatcodetable \modulecatcodes \startcatcodetable \modulecatcodes % same as \prtcatcodes \catcode\tabasciicode \spacecatcode \catcode\endoflineasciicode \endoflinecatcode \catcode\formfeedasciicode \endoflinecatcode \catcode\spaceasciicode \spacecatcode \catcode\endoffileasciicode \ignorecatcode \catcode\circumflexasciicode \superscriptcatcode %catcode\underscoreasciicode \subscriptcatcode \catcode\underscoreasciicode \lettercatcode \catcode\ampersandasciicode \alignmentcatcode \catcode\backslashasciicode \escapecatcode \catcode\leftbraceasciicode \begingroupcatcode \catcode\rightbraceasciicode \endgroupcatcode \catcode\dollarasciicode \mathshiftcatcode \catcode\hashasciicode \parametercatcode \catcode\commentasciicode \commentcatcode \catcode\atsignasciicode \lettercatcode \catcode\exclamationmarkasciicode \lettercatcode \catcode\questionmarkasciicode \lettercatcode \catcode\tildeasciicode \activecatcode \catcode\barasciicode \activecatcode \stopcatcodetable \def\unprotectmodulecatcodes {\pushcatcodetable \setcatcodetable\modulecatcodes} \def\protectmodulecatcodes {\popcatcodetable} \unprotectmodulecatcodes %D The following catcode tables are used for reading %D and writing to files \newcatcodetable \externalfilter@read_catcodes \newcatcodetable \externalfilter@minimal_catcodes \newcatcodetable \externalfilter@verb_catcodes \startcatcodetable \externalfilter@read_catcodes % same as typcatcodesa \catcode\tabasciicode = \othercatcode \catcode\endoflineasciicode = \othercatcode \catcode\formfeedasciicode = \othercatcode \catcode\spaceasciicode = \othercatcode \catcode\endoffileasciicode = \othercatcode \catcode\leftbraceasciicode = \begingroupcatcode \catcode\rightbraceasciicode = \endgroupcatcode \stopcatcodetable \startcatcodetable \externalfilter@minimal_catcodes % for reading t-vim output \catcode\backslashasciicode = \escapecatcode \catcode\leftbraceasciicode = \begingroupcatcode \catcode\rightbraceasciicode = \endgroupcatcode \catcode\endoflineasciicode = \activecatcode \catcode\formfeedasciicode = \othercatcode \catcode\spaceasciicode = \activecatcode \stopcatcodetable \startcatcodetable \externalfilter@verb_catcodes % same as vrbcatcodes \catcode\tabasciicode = \othercatcode \catcode\endoflineasciicode = \othercatcode \catcode\formfeedasciicode = \othercatcode \catcode\spaceasciicode = \othercatcode \catcode\endoffileasciicode = \othercatcode \stopcatcodetable \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/filter/t-filter.mkxl0000644000175000017500000005052614204014367023406 0ustar hillehille%D \module %D [ file=t-filter, %D version=2022.02.17, %D title=\CONTEXT\ User Module, %D subtitle=Filter, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Filter (ver: 2022.02.17)} \startmodule [filter] \usemodule [module-catcodes] \unprotectmodulecatcodes % \f!temporaryextension was removed from the core in July 2012. \ifx\f!temporaryextension\undefined \def\f!temporaryextension{tmp} \fi %D \subject {Interface} %D %D Using interface constants allows one to use \type{\c!filter} etc. in %D the module definition, and thereby reduces the risk of a typo. %D Currently, only English names are provided. If someone wants a %D multi-lingual interface, let me know and I will add other language %D names as well, \startinterface all \setinterfaceconstant {filter} {filter} \setinterfaceconstant {filtercommand} {filtercommand} \setinterfaceconstant {output} {output} \setinterfaceconstant {purge} {purge} \setinterfaceconstant {read} {read} \setinterfaceconstant {write} {write} \setinterfaceconstant {readcommand} {readcommand} \setinterfaceconstant {taglabel} {taglabel} \setinterfaceconstant {tagdetail} {tagdetail} \stopinterface %D \subject {Name space} %D %D We use logical names to easily catch typos. \def\externalfilter@id {externalfilter} \def\externalfilter@temp_prefix {temp} \def\externalfilter@count {\????externalfilter-\currentexternalfilter-counter} \definenamespace [externalfilter] [\c!type=module, \c!name=externalfilter, \c!command=\v!yes, setup=\v!list, \c!style=\v!yes, \s!parent=externalfilter] \appendtoks \externalfilter@show_status{defining filter : \currentexternalfilter}% \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\ifcsname\externalfilter@count\endcsname \else \expandafter\newcounter\csname\externalfilter@count\endcsname\fi}% \setuevalue{\e!start\currentexternalfilter}{\externalfilter@start[\currentexternalfilter]}% \setuvalue {\e!stop\currentexternalfilter}{}% \setuevalue{process\currentexternalfilter file}{\externalfilter@process_file[\currentexternalfilter]}% \setuevalue{process\currentexternalfilter buffer}{\externalfilter@process_buffer[\currentexternalfilter]}% \setuevalue{inline\currentexternalfilter}{\externalfilter@inline[\currentexternalfilter]}% \setelementbackendtag[\externalfilterparameter\c!taglabel] \setelementnature [\externalfilterparameter\c!taglabel][display] \setelementbackendtag[inline\externalfilterparameter\c!taglabel] \setelementnature [inline\externalfilterparameter\c!taglabel][inline] \to \everydefineexternalfilter % For backward compatibility \let\setupexternalfilters \setupexternalfilter %D \subject {Messages} \def\m!externalfilter{t-filter} \setinterfacemessage\m!externalfilter{title} {\m!externalfilter} \setinterfacemessage\m!externalfilter{notfound} {file -- cannot be found} \setinterfacemessage\m!externalfilter{missing} {output file missing} \setinterfacemessage\m!externalfilter{missing_cache} {cached output file -- missing. Rerunning filter} \setinterfacemessage\m!externalfilter{forbidden} {Fatal Error: Cannot use absolute path -- as directory} \setinterfacemessage\m!externalfilter{unwriteable} {Fatal Error: Cannot write to file --} \setinterfacemessage\m!externalfilter{slash} {Appending / to directory -- } \setinterfacemessage\m!externalfilter{reuse} {\c!state=\v!stop : Not running filter on file --} \setinterfacemessage\m!externalfilter{writedisabled} {\c!write=\v!no : Not writing output for filter --} %D \subject {Tracing Macros} \newif\iftraceexternalfilters \unexpanded\def\traceexternalfilters {\traceexternalfilterstrue \enabletrackers[graphic.runfile]} \starttexdefinition externalfilter@show_filenames \writestatus\m!externalfilter{current filter : \currentexternalfilter} \writestatus\m!externalfilter{base file : \externalfilter@base_file} \writestatus\m!externalfilter{input file : \externalfilter@input_file} \writestatus\m!externalfilter{output file : \externalfilter@output_file} \stoptexdefinition \starttexdefinition externalfilter@show_status #1 \iftraceexternalfilters \writestatus\m!externalfilter{#1} \fi \stoptexdefinition \starttexdefinition externalfilter@show_filtercommand \writestatus\m!externalfilter{command : \externalfilterparameter\c!filtercommand} \writestatus\m!externalfilter{state : \externalfilterparameter\c!state} \stoptexdefinition %D \section {The main user macros} \unexpanded\def\externalfilter@start {\bgroup\obeylines\dodoubleargument\externalfilter@start_indeed} \starttexdefinition externalfilter@start_indeed [#1][#2] % #1 = filter % #2 = options \egroup %\bgroup in \externalfilter@start \begingroup % to keep assignments local \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!name=,#2] \externalfilter@set_filenames % Capture the contents of the buffer \edef\p_strip{\getvalue{\externalfilter@id-\c!strip-\externalfilterparameter\c!strip}} \buff_pickup{\externalfilter@buffer_name}{\e!start#1}{\e!stop#1}{}{\externalfilter@process_filter}{\p_strip} \stoptexdefinition \setvalue{\externalfilter@id-\c!strip-}{\zerocount} \setvalue{\externalfilter@id-\c!strip-\v!off}{\zerocount} \setvalue{\externalfilter@id-\c!strip-\v!on}{\plusone} \setvalue{\externalfilter@id-\c!strip-\v!no}{\zerocount} \setvalue{\externalfilter@id-\c!strip-\v!yes}{\plusone} \unexpanded\def\externalfilter@process_file {\dodoubleargument\externalfilter@process_file_indeed} \starttexdefinition externalfilter@process_file_indeed [#1][#2]#3 % #1 = filter % #2 = options % #3 = filename \begingroup \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!name=,#2] \processcommacommand[\externalfilterparameter{\c!filter\c!setups}]\directsetup \externalfilter@set_directory \edef\externalfilter@input_file{\externalfilter@any_filename{#3}} \startluacode context.setevalue("externalfilter@hash", md5.hex("#3\externalfilterparameter{\c!cache\c!option}"):sub(1,8)) \stopluacode \splitfilename{#3} %NOTE: \edef doesn not work because \splitoffbase is not expandable \def\externalfilter@base_file {\splitoffbase-\splitofftype-\externalfilter@hash} % The output is always in the directory specified by % \c!directory; even if the input is from some other directory \def\externalfilter@output_file{\externalfilter@get_directory\externalfilterparameter\c!output} \iftraceexternalfilters \externalfilter@show_filenames \fi \externalfilter@execute_filter \externalfilter@read_processed_file \endgroup \stoptexdefinition \unexpanded\def\externalfilter@process_buffer {\dotripleargument\externalfilter@process_buffer_indeed} \starttexdefinition externalfilter@process_buffer_indeed [#1][#2][#3] % #1 = filter % #2 = options % #3 = buffer \begingroup \edef\currentexternalfilter{#1} \ifthirdargument \setupexternalfilter[#1][\c!name=,#2] \fi \processcommacommand[\externalfilterparameter{\c!filter\c!setups}]\directsetup \externalfilter@set_directory \ifthirdargument \edef\externalfilter@buffer_name{#3} \else \edef\externalfilter@buffer_name{#2} \fi \externalfilter@set_filenames_extras \iftraceexternalfilters \externalfilter@show_filenames \fi \externalfilter@process_filter \stoptexdefinition \unexpanded\def\externalfilter@inline {\dodoubleargument\externalfilter@inline_indeed} \starttexdefinition externalfilter@inline_indeed [#1][#2] \begingroup % to keep assignments local \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!escape=\v!off,\c!numbering=,\c!name=,\c!location=\v!text,#2] \externalfilter@set_filenames \doifelse{\externalfilterparameter\c!write}\v!no \externalfilter@inline_write_disabled \externalfilter@inline_write_enabled \stoptexdefinition \starttexdefinition externalfilter@inline_write_disabled \iftraceexternalfilters \showmessage\m!externalfilter{writedisabled} \currentexternalfilter \fi \externalfilter@execute_filter \endlinechar\minusone %to prevent line break after reading file \externalfilter@read_processed_file % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \endgroup \stoptexdefinition \starttexdefinition externalfilter@inline_write_enabled \pushcatcodetable \futurelet\next\externalfilter@inline_grabcontent \stoptexdefinition %D \subsubject {Write argument to file verbatim} %D %D Surprisingly, there is nothing in the core to define a function that write its %D argument to a file verbatim. I basically copied the \type{\type} macro. \starttexdefinition externalfilter@inline_grabcontent \ifx\next\bgroup \expandafter\externalfilter@inline_group \else \expandafter\externalfilter@inline_other \fi \stoptexdefinition \starttexdefinition externalfilter@inline_group \setcatcodetable \externalfilter@read_catcodes \externalfilter@process_inline \stoptexdefinition \starttexdefinition externalfilter@inline_other #1 \setcatcodetable \externalfilter@verb_catcodes \def\next##1#1{\externalfilter@process_inline{##1}} \next \stoptexdefinition \newwrite\externalfilter@write \starttexdefinition externalfilter@process_inline #1 \immediate\openout \externalfilter@write\externalfilter@input_file \immediate\write \externalfilter@write{\detokenize{#1}} \immediate\closeout\externalfilter@write \popcatcodetable \externalfilter@execute_filter \endlinechar\minusone %to prevent line break after reading file \externalfilter@read_processed_file \iftraceexternalfilters \else \doif{\externalfilterparameter\c!purge}\v!yes {\ctxlua{os.remove(\!!bs\externalfilter@input_file\!!es)}} \fi % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \endgroup \stoptexdefinition %D \section {Helper Functions} %D %D \subsubject {First and last character of a string} \def\externalfilter@get_first_character#1% {\externalfilter@get_first_character_indeed#1\relax} \def\externalfilter@get_first_character_indeed#1#2\relax{#1} \def\externalfilter@get_last_character#1% {\expandafter\externalfilter@get_last_character_indeed#1\relax} \def\externalfilter@get_last_character_indeed#1#2% {\ifx#2\relax#1\else\expandafter\externalfilter@get_last_character_indeed\expandafter#2\fi} %D \subsubject {Setting font and color attributes} %D I want to use the same interface for MkII and MkIV \starttexdefinition externalfilter@attributes_start #1#2#3 % id style color \getvalue{use#1styleandcolor}{#2}{#3} \stoptexdefinition \def\externalfilter@attributes_stop{} %D \subsubject {Set the name of output directory} \starttexdefinition externalfilter@set_directory \edef\externalfilter@get_directory{\externalfilterparameter\c!directory} \doifsomething{\externalfilter@get_directory}\externalfilter@set_directory_indeed \stoptexdefinition \starttexdefinition externalfilter@set_directory_indeed \doif{\externalfilter@get_first_character\externalfilter@get_directory}{/} {\writeline \showmessage\m!externalfilter{forbidden}\externalfilter@get_directory \batchmode \errmessage{} \normalend} \doifnot{\externalfilter@get_last_character\externalfilter@get_directory}{/} {\iftraceexternalfilters \showmessage\m!externalfilter{slash}\externalfilter@get_directory \fi \edef\externalfilter@get_directory{\externalfilter@get_directory/}} \stoptexdefinition %D \subsubject {Check if file is writeable} \starttexdefinition externalfilter@check_writable #1 \ctxcommand{doifnot(file.is_writable("#1"))} {\showmessage\m!externalfilter{unwriteable}{#1} \batchmode \errmessage{} \normalend} \stoptexdefinition %D \subsubject {Find file name (with search in \usepath)} %D %D The `\locfilename` macro does not search in the path specified by `\usepath`. %D So, we define a macro that is based on `\readfile`. \def\externalfilter@any_filename#1% {\clf_getreadfilename{any}{.}{#1}} %D \subsubject {Set file names} %D %D \type{\externalfilter@base_file} is the name of the temporary file without %D extension. Its actual value depends on the state of \type{cache} key as %D well as the value of \type{name} key. \starttexdefinition externalfilter@set_filenames \processcommacommand[\externalfilterparameter{\c!filter\c!setups}]\directsetup \externalfilter@set_directory % Set the name of temp file for the filter \doifinsetelse{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\csname\externalfilter@count\endcsname}} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter}} \doifsomething{\externalfilterparameter\c!name} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\externalfilterparameter\c!name}} \doif{\externalfilterparameter\c!write}\v!no {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\externalfilterparameter{\c!cache\c!option}}} \externalfilter@set_filenames_extras \iftraceexternalfilters \externalfilter@show_filenames \fi \stoptexdefinition \starttexdefinition externalfilter@set_filenames_extras % The following macros are useful for filter= and filtercommand= options % The basename of the external file \edef\externalfilter@base_file {\jobname-\externalfilter@buffer_name} % Append directory name to the name of the input file \edef\externalfilter@input_file {\externalfilter@get_directory\externalfilter@base_file.\f!temporaryextension} % Append directory name to the name of the output file \edef\externalfilter@output_file{\externalfilter@get_directory\externalfilterparameter\c!output} \stoptexdefinition %D \subsubject {Process Filter} %D %D Execute filter, read the output and do book-keeping if needed. \starttexdefinition externalfilter@process_filter % By defualt, buffers are in memory in MkIV. So, we save them to disk % % \savebuffer[\externalfilter@buffer_name][\externalfilter@input_file] % % We can also save a list of buffers to a file. The empty % elements of the list are ignored. So, instead we use the following % % \savebuffer[\externalfilterparameter{\c!buffer\c!before}, % \externalfilter@buffer_name, % \externalfilterparameter{\c!buffer\c!after}] % [\externalfilter@input_file]} % % but using this method we cannot save the file in another directory. % So, we use the key-value interface for \savebuffer. \externalfilter@check_writable \externalfilter@input_file \savebuffer [ \c!list={\externalfilterparameter{\c!buffer\c!before}, \externalfilter@buffer_name, \externalfilterparameter{\c!buffer\c!after}}, \c!file={\externalfilter@input_file}, \c!prefix=\v!no, ] \externalfilter@execute_filter \externalfilter@read_processed_file \iftraceexternalfilters \else \doif{\externalfilterparameter\c!purge}\v!yes {\ctxlua{os.remove(\!!bs\externalfilter@input_file\!!es)}} \fi % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \doif{\externalfilterparameter\c!location}\v!paragraph {\useindentnextparameter\externalfilterparameter \aftergroup\dorechecknextindentation} \endgroup \stoptexdefinition %D \subsubject {Execute Filter} % In MkIV, we use job.files.run to check if a file has changed. This function % writes the md5 sum to the tuc file rather than to an external file. So, we % must not check for the \type{*first} mode (otherwise the md5 sum is overridden % in the next run. \starttexdefinition externalfilter@execute_filter \externalfilter@check_writable \externalfilter@output_file \iftraceexternalfilters \externalfilter@show_filtercommand \fi \doifelsenothing{\externalfilter@input_file} {\showmessage\m!externalfilter{missing}\externalfilter@input_file} {\doifelse{\externalfilterparameter\c!cache}\v!yes {\doifelse{\externalfilterparameter\c!state}\v!stop {\showmessage\m!externalfilter{reuse}\externalfilter@input_file} {\doiffileelse{\externalfilter@output_file} {\doifnot{\externalfilterparameter\c!write}\v!no % When write=no is selected, % base_name=....-cacheoption... % Since there is no input, caching is simply achieved % using the filename. {\ctxlua{job.files.run{ filename = \!!bs\externalfilter@input_file\!!es, result = \!!bs\externalfilter@output_file\!!es, runner = \!!bs\externalfilterparameter\c!filtercommand\!!es, }}}} {\showmessage\m!externalfilter{missing_cache}\externalfilter@output_file \executesystemcommand {\externalfilterparameter\c!filtercommand}}}} {\executesystemcommand {\externalfilterparameter\c!filtercommand}}} \stoptexdefinition %D \subsubject {Read output} \starttexdefinition externalfilter@read_processed_file \doif{\externalfilterparameter\c!read}\v!yes {\doiffileelse{\externalfilter@output_file} {\externalfilter@read_processed_file_indeed} {\showmessage\m!externalfilter{notfound}\externalfilter@output_file \externalfilter@show_filenames \blank {\tttf [[\getmessage\m!externalfilter{missing}]]} \blank}} \stoptexdefinition \starttexdefinition externalfilter@read_processed_file_indeed \doifelse{\externalfilterparameter\c!location}\v!paragraph {\blank[\externalfilterparameter\c!spacebefore] \usealignparameter\externalfilterparameter \externalfilterparameter\c!before \dostarttagged{\externalfilterparameter\c!taglabel}{\externalfilterparameter\c!tagdetail}} {\externalfilterparameter\c!left \dostarttagged{inline\externalfilterparameter\c!taglabel}{\externalfilterparameter\c!tagdetail}} \begingroup \useexternalfilterstyleandcolor\c!style\c!color \processcommacommand[\externalfilterparameter\c!setups]\directsetup \externalfilterparameter\c!readcommand\externalfilter@output_file \endgroup \dostoptagged \doifelse{\externalfilterparameter\c!location}\v!paragraph {\externalfilterparameter\c!after \par\blank[\externalfilterparameter\c!spaceafter]} {\externalfilterparameter\c!right} \stoptexdefinition %D \section {Default Values} \setupexternalfilters [ \c!location=\v!paragraph, \c!before=, \c!after=, \c!left=, \c!right=, \c!spacebefore=, \c!spaceafter=, \c!style=, \c!color=, \c!indentnext=\v!auto, \c!align=, \c!setups=, \c!continue=\v!no, \c!cache=\externalfilterparameter\c!continue, % for backward compatibility \c!cache\c!option=, \c!read=\v!yes, \c!strip=\v!yes, \c!readcommand=\ReadFile, \c!directory=, \c!purge=\v!yes, \c!output=\externalfilterbasefile.tex, \c!filter=, \c!filtercommand={\externalfilterparameter\c!filter\space \externalfilter@input_file}, \c!buffer\c!before=, \c!buffer\c!after=, \c!taglabel=\externalfilter@id, \c!tagdetail=\currentexternalfilter, ] \def\externalfilterbasefile {\externalfilter@base_file} \def\externalfilterinputfile {\externalfilter@input_file} \def\externalfilteroutputfile{\externalfilter@output_file} % t-syntax-groups still uses this. \def\externalfilter@name {\currentexternalfilter} % Default value \def\externalfilter@input_file {} \def\externalfilter@output_file{} \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/filter/t-filter.mkiv0000644000175000017500000004775114133105651023405 0ustar hillehille%D \module %D [ file=t-filter, %D version=2021.10.15, %D title=\CONTEXT\ User Module, %D subtitle=Filter, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Filter (ver: 2021.10.15)} \startmodule [filter] \usemodule [module-catcodes] \unprotectmodulecatcodes % \f!temporaryextension was removed from the core in July 2012. \ifx\f!temporaryextension\undefined \def\f!temporaryextension{tmp} \fi %D \subject {Interface} %D %D Using interface constants allows one to use \type{\c!filter} etc. in %D the module definition, and thereby reduces the risk of a typo. %D Currently, only English names are provided. If someone wants a %D multi-lingual interface, let me know and I will add other language %D names as well, \startinterface all \setinterfaceconstant {filter} {filter} \setinterfaceconstant {filtercommand} {filtercommand} \setinterfaceconstant {output} {output} \setinterfaceconstant {purge} {purge} \setinterfaceconstant {read} {read} \setinterfaceconstant {write} {write} \setinterfaceconstant {readcommand} {readcommand} \setinterfaceconstant {taglabel} {taglabel} \setinterfaceconstant {tagdetail} {tagdetail} \stopinterface %D \subject {Name space} %D %D We use logical names to easily catch typos. \def\externalfilter@id {externalfilter} \def\externalfilter@temp_prefix {temp} \def\externalfilter@count {\????externalfilter-\currentexternalfilter-counter} \definenamespace [externalfilter] [\c!type=module, \c!name=externalfilter, \c!command=\v!yes, setup=\v!list, \c!style=\v!yes, \s!parent=externalfilter] \appendtoks \externalfilter@show_status{defining filter : \currentexternalfilter}% \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\ifcsname\externalfilter@count\endcsname \else \expandafter\newcounter\csname\externalfilter@count\endcsname\fi}% \setuevalue{\e!start\currentexternalfilter}{\externalfilter@start[\currentexternalfilter]}% \setuvalue {\e!stop\currentexternalfilter}{}% \setuevalue{process\currentexternalfilter file}{\externalfilter@process_file[\currentexternalfilter]}% \setuevalue{process\currentexternalfilter buffer}{\externalfilter@process_buffer[\currentexternalfilter]}% \setuevalue{inline\currentexternalfilter}{\externalfilter@inline[\currentexternalfilter]}% \setelementbackendtag[\externalfilterparameter\c!taglabel] \setelementnature [\externalfilterparameter\c!taglabel][display] \setelementbackendtag[inline\externalfilterparameter\c!taglabel] \setelementnature [inline\externalfilterparameter\c!taglabel][inline] \to \everydefineexternalfilter % For backward compatibility \let\setupexternalfilters \setupexternalfilter %D \subject {Messages} \def\m!externalfilter{t-filter} \setinterfacemessage\m!externalfilter{title} {\m!externalfilter} \setinterfacemessage\m!externalfilter{notfound} {file -- cannot be found} \setinterfacemessage\m!externalfilter{missing} {output file missing} \setinterfacemessage\m!externalfilter{missing_cache} {cached output file -- missing. Rerunning filter} \setinterfacemessage\m!externalfilter{forbidden} {Fatal Error: Cannot use absolute path -- as directory} \setinterfacemessage\m!externalfilter{unwriteable} {Fatal Error: Cannot write to file --} \setinterfacemessage\m!externalfilter{slash} {Appending / to directory -- } \setinterfacemessage\m!externalfilter{reuse} {\c!state=\v!stop : Not running filter on file --} \setinterfacemessage\m!externalfilter{writedisabled} {\c!write=\v!no : Not writing output for filter --} %D \subject {Tracing Macros} \newif\iftraceexternalfilters \unexpanded\def\traceexternalfilters {\traceexternalfilterstrue \enabletrackers[graphic.runfile]} \starttexdefinition externalfilter@show_filenames \writestatus\m!externalfilter{current filter : \currentexternalfilter} \writestatus\m!externalfilter{base file : \externalfilter@base_file} \writestatus\m!externalfilter{input file : \externalfilter@input_file} \writestatus\m!externalfilter{output file : \externalfilter@output_file} \stoptexdefinition \starttexdefinition externalfilter@show_status #1 \iftraceexternalfilters \writestatus\m!externalfilter{#1} \fi \stoptexdefinition \starttexdefinition externalfilter@show_filtercommand \writestatus\m!externalfilter{command : \externalfilterparameter\c!filtercommand} \writestatus\m!externalfilter{state : \externalfilterparameter\c!state} \stoptexdefinition %D \section {The main user macros} \unexpanded\def\externalfilter@start {\bgroup\obeylines\dodoubleargument\externalfilter@start_indeed} \starttexdefinition externalfilter@start_indeed [#1][#2] % #1 = filter % #2 = options \egroup %\bgroup in \externalfilter@start \begingroup % to keep assignments local \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!name=,#2] \externalfilter@set_filenames % Capture the contents of the buffer \edef\p_strip{\getvalue{\externalfilter@id-\c!strip-\externalfilterparameter\c!strip}} \buff_pickup{\externalfilter@buffer_name}{\e!start#1}{\e!stop#1}{}{\externalfilter@process_filter}{\p_strip} \stoptexdefinition \setvalue{\externalfilter@id-\c!strip-}{\zerocount} \setvalue{\externalfilter@id-\c!strip-\v!off}{\zerocount} \setvalue{\externalfilter@id-\c!strip-\v!on}{\plusone} \setvalue{\externalfilter@id-\c!strip-\v!no}{\zerocount} \setvalue{\externalfilter@id-\c!strip-\v!yes}{\plusone} \unexpanded\def\externalfilter@process_file {\dodoubleargument\externalfilter@process_file_indeed} \starttexdefinition externalfilter@process_file_indeed [#1][#2]#3 % #1 = filter % #2 = options % #3 = filename \begingroup \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!name=,#2] \processcommacommand[\externalfilterparameter{\c!filter\c!setups}]\directsetup \externalfilter@set_directory \edef\externalfilter@input_file{\externalfilter@any_filename{#3}} \splitfilename{#3} %NOTE: \edef doesn not work because \splitoffbase is not expandable \def\externalfilter@base_file {\splitoffbase-\splitofftype} % The output is always in the directory specified by % \c!directory; even if the input is from some other directory \def\externalfilter@output_file{\externalfilter@get_directory\externalfilterparameter\c!output} \iftraceexternalfilters \externalfilter@show_filenames \fi \externalfilter@execute_filter \externalfilter@read_processed_file \endgroup \stoptexdefinition \unexpanded\def\externalfilter@process_buffer {\dotripleargument\externalfilter@process_buffer_indeed} \starttexdefinition externalfilter@process_buffer_indeed [#1][#2][#3] % #1 = filter % #2 = options % #3 = buffer \begingroup \edef\currentexternalfilter{#1} \ifthirdargument \setupexternalfilter[#1][\c!name=,#2] \fi \processcommacommand[\externalfilterparameter{\c!filter\c!setups}]\directsetup \externalfilter@set_directory \ifthirdargument \edef\externalfilter@buffer_name{#3} \else \edef\externalfilter@buffer_name{#2} \fi \externalfilter@set_filenames_extras \iftraceexternalfilters \externalfilter@show_filenames \fi \externalfilter@process_filter \stoptexdefinition \unexpanded\def\externalfilter@inline {\dodoubleargument\externalfilter@inline_indeed} \starttexdefinition externalfilter@inline_indeed [#1][#2] \begingroup % to keep assignments local \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!escape=\v!off,\c!numbering=,\c!name=,\c!location=\v!text,#2] \externalfilter@set_filenames \doifelse{\externalfilterparameter\c!write}\v!no \externalfilter@inline_write_disabled \externalfilter@inline_write_enabled \stoptexdefinition \starttexdefinition externalfilter@inline_write_disabled \iftraceexternalfilters \showmessage\m!externalfilter{writedisabled} \currentexternalfilter \fi \externalfilter@execute_filter \endlinechar\minusone %to prevent line break after reading file \externalfilter@read_processed_file % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \endgroup \stoptexdefinition \starttexdefinition externalfilter@inline_write_enabled \pushcatcodetable \futurelet\next\externalfilter@inline_grabcontent \stoptexdefinition %D \subsubject {Write argument to file verbatim} %D %D Surprisingly, there is nothing in the core to define a function that write its %D argument to a file verbatim. I basically copied the \type{\type} macro. \starttexdefinition externalfilter@inline_grabcontent \ifx\next\bgroup \expandafter\externalfilter@inline_group \else \expandafter\externalfilter@inline_other \fi \stoptexdefinition \starttexdefinition externalfilter@inline_group \setcatcodetable \externalfilter@read_catcodes \externalfilter@process_inline \stoptexdefinition \starttexdefinition externalfilter@inline_other #1 \setcatcodetable \externalfilter@verb_catcodes \def\next##1#1{\externalfilter@process_inline{##1}} \next \stoptexdefinition \newwrite\externalfilter@write \starttexdefinition externalfilter@process_inline #1 \immediate\openout \externalfilter@write\externalfilter@input_file \immediate\write \externalfilter@write{\detokenize{#1}} \immediate\closeout\externalfilter@write \popcatcodetable \externalfilter@execute_filter \endlinechar\minusone %to prevent line break after reading file \externalfilter@read_processed_file \iftraceexternalfilters \else \doif{\externalfilterparameter\c!purge}\v!yes {\ctxlua{os.remove(\!!bs\externalfilter@input_file\!!es)}} \fi % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \endgroup \stoptexdefinition %D \section {Helper Functions} %D %D \subsubject {First and last character of a string} \def\externalfilter@get_first_character#1% {\externalfilter@get_first_character_indeed#1\relax} \def\externalfilter@get_first_character_indeed#1#2\relax{#1} \def\externalfilter@get_last_character#1% {\expandafter\externalfilter@get_last_character_indeed#1\relax} \def\externalfilter@get_last_character_indeed#1#2% {\ifx#2\relax#1\else\expandafter\externalfilter@get_last_character_indeed\expandafter#2\fi} %D \subsubject {Setting font and color attributes} %D I want to use the same interface for MkII and MkIV \starttexdefinition externalfilter@attributes_start #1#2#3 % id style color \getvalue{use#1styleandcolor}{#2}{#3} \stoptexdefinition \def\externalfilter@attributes_stop{} %D \subsubject {Set the name of output directory} \starttexdefinition externalfilter@set_directory \edef\externalfilter@get_directory{\externalfilterparameter\c!directory} \doifsomething{\externalfilter@get_directory}\externalfilter@set_directory_indeed \stoptexdefinition \starttexdefinition externalfilter@set_directory_indeed \doif{\externalfilter@get_first_character\externalfilter@get_directory}{/} {\writeline \showmessage\m!externalfilter{forbidden}\externalfilter@get_directory \batchmode \errmessage{} \normalend} \doifnot{\externalfilter@get_last_character\externalfilter@get_directory}{/} {\iftraceexternalfilters \showmessage\m!externalfilter{slash}\externalfilter@get_directory \fi \edef\externalfilter@get_directory{\externalfilter@get_directory/}} \stoptexdefinition %D \subsubject {Check if file is writeable} \starttexdefinition externalfilter@check_writable #1 \ctxcommand{doifnot(file.is_writable("#1"))} {\showmessage\m!externalfilter{unwriteable}{#1} \batchmode \errmessage{} \normalend} \stoptexdefinition %D \subsubject {Find file name (with search in \usepath)} %D %D The `\locfilename` macro does not search in the path specified by `\usepath`. %D So, we define a macro that is based on `\readfile`. \def\externalfilter@any_filename#1% {\clf_getreadfilename{any}{.}{#1}} %D \subsubject {Set file names} %D %D \type{\externalfilter@base_file} is the name of the temporary file without %D extension. Its actual value depends on the state of \type{cache} key as %D well as the value of \type{name} key. \starttexdefinition externalfilter@set_filenames \processcommacommand[\externalfilterparameter{\c!filter\c!setups}]\directsetup \externalfilter@set_directory % Set the name of temp file for the filter \doifinsetelse{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\csname\externalfilter@count\endcsname}} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter}} \doifsomething{\externalfilterparameter\c!name} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\externalfilterparameter\c!name}} \doif{\externalfilterparameter\c!write}\v!no {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\externalfilterparameter{\c!cache\c!option}}} \externalfilter@set_filenames_extras \iftraceexternalfilters \externalfilter@show_filenames \fi \stoptexdefinition \starttexdefinition externalfilter@set_filenames_extras % The following macros are useful for filter= and filtercommand= options % The basename of the external file \edef\externalfilter@base_file {\jobname-\externalfilter@buffer_name} % Append directory name to the name of the input file \edef\externalfilter@input_file {\externalfilter@get_directory\externalfilter@base_file.\f!temporaryextension} % Append directory name to the name of the output file \edef\externalfilter@output_file{\externalfilter@get_directory\externalfilterparameter\c!output} \stoptexdefinition %D \subsubject {Process Filter} %D %D Execute filter, read the output and do book-keeping if needed. \starttexdefinition externalfilter@process_filter % By defualt, buffers are in memory in MkIV. So, we save them to disk % % \savebuffer[\externalfilter@buffer_name][\externalfilter@input_file] % % We can also save a list of buffers to a file. The empty % elements of the list are ignored. So, instead we use the following % % \savebuffer[\externalfilterparameter{\c!buffer\c!before}, % \externalfilter@buffer_name, % \externalfilterparameter{\c!buffer\c!after}] % [\externalfilter@input_file]} % % but using this method we cannot save the file in another directory. % So, we use the key-value interface for \savebuffer. \externalfilter@check_writable \externalfilter@input_file \savebuffer [ \c!list={\externalfilterparameter{\c!buffer\c!before}, \externalfilter@buffer_name, \externalfilterparameter{\c!buffer\c!after}}, \c!file={\externalfilter@input_file}, \c!prefix=\v!no, ] \externalfilter@execute_filter \externalfilter@read_processed_file \iftraceexternalfilters \else \doif{\externalfilterparameter\c!purge}\v!yes {\ctxlua{os.remove(\!!bs\externalfilter@input_file\!!es)}} \fi % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \doif{\externalfilterparameter\c!location}\v!paragraph {\useindentnextparameter\externalfilterparameter \aftergroup\dorechecknextindentation} \endgroup \stoptexdefinition %D \subsubject {Execute Filter} % In MkIV, we use job.files.run to check if a file has changed. This function % writes the md5 sum to the tuc file rather than to an external file. So, we % must not check for the \type{*first} mode (otherwise the md5 sum is overridden % in the next run. \starttexdefinition externalfilter@execute_filter \externalfilter@check_writable \externalfilter@output_file \iftraceexternalfilters \externalfilter@show_filtercommand \fi \doifelsenothing{\externalfilter@input_file} {\showmessage\m!externalfilter{missing}\externalfilter@input_file} {\doifelse{\externalfilterparameter\c!cache}\v!yes {\doifelse{\externalfilterparameter\c!state}\v!stop {\showmessage\m!externalfilter{reuse}\externalfilter@input_file} {\doiffileelse{\externalfilter@output_file} {\doifnot{\externalfilterparameter\c!write}\v!no % When write=no is selected, % base_name=....-cacheoption... % Since there is no input, caching is simply achieved % using the filename. {\ctxlua{job.files.run(\!!bs\externalfilter@input_file\!!es, \!!bs\externalfilterparameter\c!filtercommand\!!es)}}} {\showmessage\m!externalfilter{missing_cache}\externalfilter@output_file \executesystemcommand {\externalfilterparameter\c!filtercommand}}}} {\executesystemcommand {\externalfilterparameter\c!filtercommand}}} \stoptexdefinition %D \subsubject {Read output} \starttexdefinition externalfilter@read_processed_file \doif{\externalfilterparameter\c!read}\v!yes {\doiffileelse{\externalfilter@output_file} {\externalfilter@read_processed_file_indeed} {\showmessage\m!externalfilter{notfound}\externalfilter@output_file \externalfilter@show_filenames \blank {\tttf [[\getmessage\m!externalfilter{missing}]]} \blank}} \stoptexdefinition \starttexdefinition externalfilter@read_processed_file_indeed \doifelse{\externalfilterparameter\c!location}\v!paragraph {\blank[\externalfilterparameter\c!spacebefore] \usealignparameter\externalfilterparameter \externalfilterparameter\c!before \dostarttagged{\externalfilterparameter\c!taglabel}{\externalfilterparameter\c!tagdetail}} {\externalfilterparameter\c!left \dostarttagged{inline\externalfilterparameter\c!taglabel}{\externalfilterparameter\c!tagdetail}} \begingroup \useexternalfilterstyleandcolor\c!style\c!color \processcommacommand[\externalfilterparameter\c!setups]\directsetup \externalfilterparameter\c!readcommand\externalfilter@output_file \endgroup \dostoptagged \doifelse{\externalfilterparameter\c!location}\v!paragraph {\externalfilterparameter\c!after \par\blank[\externalfilterparameter\c!spaceafter]} {\externalfilterparameter\c!right} \stoptexdefinition %D \section {Default Values} \setupexternalfilters [ \c!location=\v!paragraph, \c!before=, \c!after=, \c!left=, \c!right=, \c!spacebefore=, \c!spaceafter=, \c!style=, \c!color=, \c!indentnext=\v!auto, \c!align=, \c!setups=, \c!continue=\v!no, \c!cache=\externalfilterparameter\c!continue, % for backward compatibility \c!cache\c!option=, \c!read=\v!yes, \c!strip=\v!yes, \c!readcommand=\ReadFile, \c!directory=, \c!purge=\v!yes, \c!output=\externalfilterbasefile.tex, \c!filter=, \c!filtercommand={\externalfilterparameter\c!filter\space \externalfilter@input_file}, \c!buffer\c!before=, \c!buffer\c!after=, \c!taglabel=\externalfilter@id, \c!tagdetail=\currentexternalfilter, ] \def\externalfilterbasefile {\externalfilter@base_file} \def\externalfilterinputfile {\externalfilter@input_file} \def\externalfilteroutputfile{\externalfilter@output_file} % t-syntax-groups still uses this. \def\externalfilter@name {\currentexternalfilter} % Default value \def\externalfilter@input_file {} \def\externalfilter@output_file{} \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/filter/t-filter.mkii0000644000175000017500000004330012133356017023354 0ustar hillehille%D \module %D [ file=t-filter, %D version=2013.04.15, %D title=\CONTEXT\ User Module, %D subtitle=Filter, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] \writestatus{loading}{Filter (ver: 2013.04.15)} \ifx\undefined\normalexpanded \let\normalexpanded\expanded \fi % Make \doifinset expandable in MkII \def\p!doifinsetelse#1#2#3#4% {\donefalse \edef\!!stringa{#3}% \ifx\!!stringa\empty \else \processcommacommand[#4]\p!docheckiteminset \fi \ifdone\expandafter#1\else\expandafter#2\fi} \startmodule [filter] \usemodule [module-catcodes] \unprotectmodulecatcodes %D \subject {Interface} %D %D Using interface constants allows one to use \type{\c!filter} etc. in %D the module definition, and thereby reduces the risk of a typo. %D Currently, only English names are provided. If someone wants a %D multi-lingual interface, let me know and I will add other language %D names as well, \startinterface all \setinterfaceconstant {filter} {filter} \setinterfaceconstant {filtercommand} {filtercommand} \setinterfaceconstant {output} {output} \setinterfaceconstant {purge} {purge} \setinterfaceconstant {read} {read} \setinterfaceconstant {write} {write} \setinterfaceconstant {readcommand} {readcommand} \stopinterface %D \subject {Name space} %D %D We use logical names to easily catch typos. \def\externalfilter@id {externalfilter} \def\????externalfilter {@@@@\externalfilter@id} \def\externalfilter@temp_prefix {temp} \def\externalfilter@count {\????externalfilter-\currentexternalfilter-counter} \installparameterhandler \????externalfilter \externalfilter@id \installparameterhashhandler \????externalfilter \externalfilter@id \installsetuphandler \????externalfilter \externalfilter@id \installdefinehandler \????externalfilter \externalfilter@id \????externalfilter \ifx\undefined\setuvalue \def\setuvalue #1{\normalprotected\expandafter \def\csname#1\endcsname} \def\setuevalue #1{\normalprotected\expandafter\edef\csname#1\endcsname} \fi \appendtoks \externalfilter@show_status{defining filter : \currentexternalfilter}% \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\ifcsname\externalfilter@count\endcsname \else \expandafter\newcounter\csname\externalfilter@count\endcsname\fi}% \setuevalue{\e!start\currentexternalfilter}{\externalfilter@start[\currentexternalfilter]}% \setuvalue {\e!stop\currentexternalfilter}{\externalfilter@process_filter}% \setuevalue{process\currentexternalfilter file}{\externalfilter@process_file[\currentexternalfilter]}% \setuevalue{process\currentexternalfilter buffer}{\externalfilter@process_buffer[\currentexternalfilter]}% \setuevalue{inline\currentexternalfilter}{\externalfilter@inline[\currentexternalfilter]}% \to \everydefineexternalfilter % For backward compatibility \let\setupexternalfilters \setupexternalfilter %D \subject {Messages} \def\m!externalfilter{t-filter} \setinterfacemessage\m!externalfilter{title} {\m!externalfilter} \setinterfacemessage\m!externalfilter{notfound} {file -- cannot be found} \setinterfacemessage\m!externalfilter{missing} {output file missing} \setinterfacemessage\m!externalfilter{missing_cache} {cached output file -- missing. Rerunning filter} \setinterfacemessage\m!externalfilter{forbidden} {Fatal Error: Cannot use absolute path -- as directory} \setinterfacemessage\m!externalfilter{slash} {Appending / to directory -- } \setinterfacemessage\m!externalfilter{reuse} {\c!state=\v!stop : Not running filter on file --} \setinterfacemessage\m!externalfilter{writedisabled} {\c!write=\v!no : Not writing output for filter --} %D \subject {Tracing Macros} \newif\iftraceexternalfilters \unexpanded\def\traceexternalfilters {\traceexternalfilterstrue} \starttexdefinition externalfilter@show_filenames \writestatus\m!externalfilter{current filter : \currentexternalfilter} \writestatus\m!externalfilter{base file : \externalfilter@base_file} \writestatus\m!externalfilter{input file : \externalfilter@input_file} \writestatus\m!externalfilter{output file : \externalfilter@output_file} \stoptexdefinition \starttexdefinition externalfilter@show_status #1 \iftraceexternalfilters \writestatus\m!externalfilter{#1} \fi \stoptexdefinition \starttexdefinition externalfilter@show_filtercommand \writestatus\m!externalfilter{command : \externalfilterparameter\c!filtercommand} \writestatus\m!externalfilter{state : \externalfilterparameter\c!state} \stoptexdefinition %D \section {The main user macros} \unexpanded\def\externalfilter@start {\bgroup\obeylines\dodoubleargument\externalfilter@start_indeed} \starttexdefinition externalfilter@start_indeed [#1][#2] % #1 = filter % #2 = options \egroup %\bgroup in \externalfilter@start \begingroup % to keep assignments local \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!name=,#2] \externalfilter@set_filenames % Capture the contents of the buffer \dostartbuffer[\externalfilter@buffer_name][\e!start#1][\e!stop#1] \stoptexdefinition \unexpanded\def\externalfilter@process_file {\dodoubleargument\externalfilter@process_file_indeed} \starttexdefinition externalfilter@process_file_indeed [#1][#2]#3 % #1 = filter % #2 = options % #3 = filename \begingroup \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!name=,#2] \processcommacommand[\externalfilterparameter{\c!filter\c!setups}]\directsetup \externalfilter@set_directory \locatefilepath{#3} \ifx\locatedfilepath\empty % FIXME: Should we declare an error? \edef\externalfilter@input_file{#3} \else \edef\externalfilter@input_file{\pathplusfile\locatedfilepath{#3}} \fi \splitfilename{#3} %NOTE: \edef doesn not work because \splitoffname is not expandable \def\externalfilter@base_file {\splitoffname} % The output is always in the directory specified by % \c!directory; even if the input is from some other directory \def\externalfilter@output_file{\externalfilter@get_directory\externalfilterparameter\c!output} \iftraceexternalfilters \externalfilter@show_filenames \fi \externalfilter@execute_filter \externalfilter@read_processed_file \endgroup \stoptexdefinition \unexpanded\def\externalfilter@process_buffer {\dotripleargument\externalfilter@process_buffer_indeed} \starttexdefinition externalfilter@process_buffer_indeed [#1][#2][#3] % #1 = filter % #2 = options % #3 = buffer \begingroup \edef\currentexternalfilter{#1} \ifthirdargument \setupexternalfilter[#1][\c!name=,#2] \fi \externalfilter@set_directory \ifthirdargument \edef\externalfilter@buffer_name{#3} \else \edef\externalfilter@buffer_name{#2} \fi \externalfilter@set_filenames_extras \iftraceexternalfilters \externalfilter@show_filenames \fi \externalfilter@process_filter \stoptexdefinition \unexpanded\def\externalfilter@inline {\dodoubleargument\externalfilter@inline_indeed} \starttexdefinition externalfilter@inline_indeed [#1][#2] \begingroup % to keep assignments local \edef\currentexternalfilter{#1} \setupexternalfilter[#1][\c!numbering=,\c!name=,\c!location=\v!text,#2] \externalfilter@set_filenames \pushcatcodetable \doifelse{\externalfilterparameter\c!write}\v!no \externalfilter@inline_write_disabled \externalfilter@inline_write_enabled \stoptexdefinition \starttexdefinition externalfilter@inline_write_disabled \iftraceexternalfilters \showmessage\m!externalfilter{writedisabled} \currentexternalfilter \fi \externalfilter@execute_filter \endlinechar\minusone %to prevent line break after reading file \externalfilter@read_processed_file % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \endgroup \stoptexdefinition \starttexdefinition externalfilter@inline_write_enabled \futurelet\next\externalfilter@inline_grabcontent \stoptexdefinition %D \subsubject {Write argument to file verbatim} %D %D Surprisingly, there is nothing in the core to define a function that write its %D argument to a file verbatim. I basically copied the \type{\type} macro. \starttexdefinition externalfilter@inline_grabcontent \ifx\next\bgroup \expandafter\externalfilter@inline_group \else \expandafter\externalfilter@inline_other \fi \stoptexdefinition \starttexdefinition externalfilter@inline_group \setcatcodetable \externalfilter@read_catcodes \externalfilter@process_inline \stoptexdefinition \starttexdefinition externalfilter@inline_other #1 \setcatcodetable \externalfilter@verb_catcodes \def\next##1#1{\externalfilter@process_inline{##1}} \next \stoptexdefinition \newwrite\externalfilter@write \starttexdefinition externalfilter@process_inline #1 \immediate\openout \externalfilter@write\externalfilter@input_file \immediate\write \externalfilter@write{\detokenize{#1}} \immediate\closeout\externalfilter@write \popcatcodetable \externalfilter@execute_filter \endlinechar\minusone %to prevent line break after reading file \externalfilter@read_processed_file % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \endgroup \stoptexdefinition %D \section {Helper Functions} %D %D \subsubject {First and last character of a string} \def\externalfilter@get_first_character#1% {\externalfilter@get_first_character_indeed#1\relax} \def\externalfilter@get_first_character_indeed#1#2\relax{#1} \def\externalfilter@get_last_character#1% {\@EA\externalfilter@get_last_character_indeed#1\relax} \def\externalfilter@get_last_character_indeed#1#2% {\ifx#2\relax#1\else\@EA\externalfilter@get_last_character_indeed\@EA#2\fi} %D \subsubject {Setting font and color attributes} \starttexdefinition externalfilter@attributes_start #1#2#3 % id style color \edef\externalfilter@attributes_style{\getvalue{#1parameter}{#2}} \edef\externalfilter@attributes_color{\getvalue{#1parameter}{#3}} \expandafter\startcolor\expandafter[\externalfilter@attributes_color] \expandafter\doconvertfont{\externalfilter@attributes_style} \stoptexdefinition \def\externalfilter@attributes_stop{\stopcolor} %D \subsubject {Set the name of output directory} \starttexdefinition externalfilter@set_directory \edef\externalfilter@get_directory{\externalfilterparameter\c!directory} \doifsomething{\externalfilter@get_directory}\externalfilter@set_directory_indeed \stoptexdefinition \starttexdefinition externalfilter@set_directory_indeed \doif{\externalfilter@get_first_character\externalfilter@get_directory}{/} {\writeline \showmessage\m!externalfilter{forbidden}\externalfilter@get_directory \batchmode \errmessage{} \normalend} \doifnot{\externalfilter@get_last_character\externalfilter@get_directory}{/} {\iftraceexternalfilters \showmessage\m!externalfilter{slash}\externalfilter@get_directory \fi \edef\externalfilter@get_directory{\externalfilter@get_directory/}} \stoptexdefinition %D \subsubject {Set file names} %D %D \type{\externalfilter@base_file} is the name of the temporary file without %D extension. Its actual value depends on the state of \type{cache} key as %D well as the value of \type{name} key. \starttexdefinition externalfilter@set_filenames \processcommacommand[\externalfilterparameter{\c!filter\c!setups}]\directsetup \externalfilter@set_directory % Set the name of temp file for the filter \doifinsetelse{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\csname\externalfilter@count\endcsname}} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter}} \doifsomething{\externalfilterparameter\c!name} {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\externalfilterparameter\c!name}} \doif{\externalfilterparameter\c!write}\v!no {\edef\externalfilter@buffer_name{\externalfilter@temp_prefix-\currentexternalfilter-\externalfilterparameter{\c!cache\c!option}}} \externalfilter@set_filenames_extras \iftraceexternalfilters \externalfilter@show_filenames \fi \stoptexdefinition \starttexdefinition externalfilter@set_filenames_extras % The following macros are useful for filter= and filtercommand= options % The basename of the external file \edef\externalfilter@base_file {\jobname-\externalfilter@buffer_name} % Append directory name to the name of the input file \edef\externalfilter@input_file {\externalfilter@get_directory\externalfilter@base_file.\f!temporaryextension} % Append directory name to the name of the output file \edef\externalfilter@output_file{\externalfilter@get_directory\externalfilterparameter\c!output} % In MkII, the buffer output is written to \TEXbufferfile{buffername}. So we % redefine \TEXbufferfile to \edef\TEXbufferfile##1{\externalfilter@input_file} \stoptexdefinition %D \subsubject {Process Filter} %D %D Execute filter, read the output and do book-keeping if needed. \starttexdefinition externalfilter@process_filter \externalfilter@execute_filter \externalfilter@read_processed_file % Finalization \doifinset{\externalfilterparameter\c!cache}{\v!yes,\v!force} {\doglobal\incrementvalue\externalfilter@count} \doif{\externalfilterparameter\c!location}\v!paragraph {\expanded{\checknextindentation[\externalfilterparameter\c!indentnext]}% \dorechecknextindentation} \endgroup \stoptexdefinition %D \subsubject {Execute Filter} \starttexdefinition externalfilter@execute_filter \iftraceexternalfilters \externalfilter@show_filtercommand \fi \doifelse{\externalfilterparameter\c!cache}\v!yes {\doifelse{\externalfilterparameter\c!state}\v!stop {\showmessage\m!externalfilter{reuse}\externalfilter@input_file} {\doifmode{*first} {\doiffileelse{\externalfilter@output_file} {\doifnot{\externalfilterparameter\c!write}\v!no {\executesystemcommand {mtxrun --ifchanged=\externalfilter@input_file\space --direct \externalfilterparameter\c!filtercommand}}}} {\showmessage\m!externalfilter{missing_cache}\externalfilter@output_file \executesystemcommand {mtxrun --direct \externalfilterparameter\c!filtercommand}}}} {\doifelse{\externalfilterparameter\c!cache}\v!force {\doifmode{*first} {\executesystemcommand {mtxrun --direct \externalfilterparameter\c!filtercommand}}} {\executesystemcommand {\externalfilterparameter\c!filtercommand}}} \stoptexdefinition %D \subsubject {Read output} \starttexdefinition externalfilter@read_processed_file \externalfilter@show_filenames \doif{\externalfilterparameter\c!read}\v!yes {\doiffileelse{\externalfilter@output_file} {\externalfilter@read_processed_file_indeed} {\showmessage\m!externalfilter{notfound}\externalfilter@output_file \externalfilter@show_filenames \blank {\tttf [[\getmessage\m!externalfilter{missing}]]} \blank}} \stoptexdefinition \starttexdefinition externalfilter@read_processed_file_indeed \doifelse{\externalfilterparameter\c!location}\v!paragraph {\blank[\externalfilterparameter\c!spacebefore] \doifsomething{\externalfilterparameter\c!align} {\setupalign[\externalfilterparameter\c!align]} \externalfilterparameter\c!before} {\externalfilterparameter\c!left} \begingroup \externalfilter@attributes_start \externalfilter@id \c!style \c!color \processcommacommand[\externalfilterparameter\c!setups]\directsetup \externalfilterparameter\c!readcommand\externalfilter@output_file \externalfilter@attributes_stop \endgroup \doifelse{\externalfilterparameter\c!location}\v!paragraph {\externalfilterparameter\c!after \par\blank[\externalfilterparameter\c!spaceafter]}% {\externalfilterparameter\c!right} \stoptexdefinition %D \section {Default Values} \setupexternalfilters [ \c!location=\v!paragraph, \c!before=, \c!after=, \c!left=\externalfilterparameter\c!before, \c!right=\externalfilterparameter\c!after, \c!spacebefore=, \c!spaceafter=, \c!style=, \c!color=, \c!indentnext=\v!auto, \c!align=, \c!setups=, \c!continue=\v!no, \c!cache=\externalfilterparameter\c!continue, % for backward compatibility \c!cache\c!option=, \c!read=\v!yes, \c!readcommand=\ReadFile, \c!directory=, \c!output=\externalfilterbasefile.tex, \c!filter=, \c!filtercommand={\externalfilterparameter\c!filter\space \externalfilter@input_file}, \c!buffer\c!before=, \c!buffer\c!after=, ] \def\externalfilterbasefile {\externalfilter@base_file} \def\externalfilterinputfile {\externalfilter@input_file} \def\externalfilteroutputfile{\externalfilter@output_file} % t-syntax-groups still uses this. \def\externalfilter@name {\currentexternalfilter} \def\externalfilter@namespace {\????externalfilter} % Default value \def\externalfilter@input_file {} \def\externalfilter@output_file{} \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/filter/t-module-catcodes.mkii0000644000175000017500000000722413272122364025145 0ustar hillehille%D \module %D [ file=t-module-catcodes, %D version=2011.12.17, %D title=\CONTEXT\ User Module, %D subtitle=Module Catcodes, %D author=Aditya Mahajan, %D date=\currentdate, %D copyright=Aditya Mahajan, %D email=adityam ieee org, %D license=Simplified BSD License] %D %D MkII and MkIV use different names and values for commonly used catcode %D tables. So, I define a private copy of the catcode tables that are needed %D by the filter and vim modules. \writestatus{loading}{Module Catcodes (ver: 2011.12.17)} \startmodule [module-catcodes] \newcatcodetable \modulecatcodes \startcatcodetable \modulecatcodes % same as \prtcatcodes \catcode\tabasciicode \spacecatcode \catcode\endoflineasciicode \endoflinecatcode \catcode\formfeedasciicode \endoflinecatcode \catcode\spaceasciicode \spacecatcode \catcode\endoffileasciicode \ignorecatcode \catcode\circumflexasciicode\superscriptcatcode % \catcode\underscoreasciicode\subscriptcatcode \catcode\underscoreasciicode\lettercatcode \catcode\ampersandasciicode \alignmentcatcode \catcode\backslashasciicode \escapecatcode \catcode\leftbraceasciicode \begingroupcatcode \catcode\rightbraceasciicode\endgroupcatcode \catcode\dollarasciicode \mathshiftcatcode \catcode\hashasciicode \parametercatcode \catcode\commentasciicode \commentcatcode \catcode`\@ \lettercatcode \catcode`\! \lettercatcode \catcode`\? \lettercatcode \catcode\tildeasciicode \activecatcode \catcode\barasciicode \activecatcode \stopcatcodetable \def\unprotectmodulecatcodes {\pushcatcodetable \setcatcodetable\modulecatcodes} \def\protectmodulecatcodes {\popcatcodetable} \unprotectmodulecatcodes %D The following catcode tables are used for reading %D and writing to files \newcatcodetable \externalfilter@read_catcodes \newcatcodetable \externalfilter@minimal_catcodes \newcatcodetable \externalfilter@verb_catcodes \startcatcodetable \externalfilter@read_catcodes % same as typcatcodesa \catcode\tabasciicode = \othercatcode \catcode\endoflineasciicode = \othercatcode \catcode\formfeedasciicode = \othercatcode \catcode\spaceasciicode = \othercatcode \catcode\endoffileasciicode = \othercatcode \catcode\leftbraceasciicode = \begingroupcatcode \catcode\rightbraceasciicode = \endgroupcatcode \stopcatcodetable \startcatcodetable \externalfilter@minimal_catcodes % for reading t-vim output \catcode\backslashasciicode = \escapecatcode \catcode\leftbraceasciicode = \begingroupcatcode \catcode\rightbraceasciicode = \endgroupcatcode \catcode\endoflineasciicode = \activecatcode \catcode\formfeedasciicode = \activecatcode \catcode\spaceasciicode = \activecatcode \stopcatcodetable \startcatcodetable \externalfilter@verb_catcodes % same as vrbcatcodes \catcode\tabasciicode = \othercatcode \catcode\endoflineasciicode = \othercatcode \catcode\formfeedasciicode = \othercatcode \catcode\spaceasciicode = \othercatcode \catcode\endoffileasciicode = \othercatcode \stopcatcodetable \ifdefined \activeendoflinetoken \else % from catc-ini.mkiv \bgroup \catcode \tabasciicode \activecatcode \gdef\activetabtoken {^^I} \gdef\outputnewlinechar {^^J} \catcode \formfeedasciicode \activecatcode \gdef\activeformfeedtoken {^^L} \catcode \endoflineasciicode \activecatcode \gdef\activeendoflinetoken{^^M} \egroup \fi \protectmodulecatcodes \stopmodule context-modules-20240428/tex/context/third/calendar-examples/0000755000175000017500000000000014613513620023053 5ustar hillehillecontext-modules-20240428/tex/context/third/calendar-examples/Photocalendar.mkiv0000644000175000017500000001214014422276371026533 0ustar hillehille%D \module %D [ file=t-calendar-examples.tex %D version=2023.04.14 %D title=Calendar examples based on PocketDiary %D subtitle=Photo calendar, %D author=W. Egger, %D date=\currentdate %D copyright=W. Egger %D license=Public Domain %D Mind you that Thomas Schmitz put on the \CONTEXT -wiki a lua-script, which %D creates a tex-file which can be compiled with \CONTEXT\ already back in 2007 %D for the preparation of a photo-calendar. %D The nice thing about it is, that it uses a small number of formulae. Nice is, %D that it also uses the Sohael Babwani formulae. See: %D https://wiki.contextgarden.net/Calendar_script %D This eaxmple creates a photo calender. It has a front page with a photo and %D the year. The following pages have a photo at the top and at the bottom a %D month table. On top of the month table there is the month name and the year. %D This photo calendar is based on the PocketDiary. %D Load the PocketDiary module % This example file creates a photo calendar based on the PocketDiary-module. % In order to use this example you need to have the PocketDiary-module % installed from: % https://modules.contextgarden.net/cgi-bin/module.cgi/action=view/id=132 % The calendar is typeset on A4 portrait. The calendar is a flip-over type, % where in the top-part is a photo and thereunder the month-table with % indication of the month name and year. % The pictures to be used are placed in a subdirectory. Each picture gets % a symbolic name (number) to be used in the \dorecurse loop. % For completing the calendar we need 13 pictures. The picture 13 is used on % the title page. % This file supports 6 languages, which are selected through the \mainlanguage[] %D Load the PockeDiary module \usemodule[pocketdiary] %D Choose and setup the font to be used \setupbodyfont[ibmplex,ss,12pt] %D Switch off the page numbering \setuppagenumbering[location=] %D Setup the paper size \setuppapersize[A4,portrait][A4,portrait] %D Adjust the layout of the page \setuplayout [topspace=20mm, backspace=8.6mm, header=0pt, footer=0pt, height=middle, width=middle] %% Supported languages: EN,DE,NL,FR,IT,ES \mainlanguage[en] %D Setup the path where to find the calendar pictures \setupexternalfigures [directory=./MyPhotoDirectory] % Give pictures symbolic names for using in a loop \useexternalfigure [1] [A.jpg] \useexternalfigure [2] [B.jpg] \useexternalfigure [3] [C.jpg] \useexternalfigure [4] [D.jpg] \useexternalfigure [5] [E.jpg] \useexternalfigure [6] [F.jpg] %[TV-Kasten-Flurin.jpg] \useexternalfigure [7] [G.jpg] \useexternalfigure [8] [H.jpg] \useexternalfigure [9] [I.jpg] \useexternalfigure [10] [J.jpg] \useexternalfigure [11] [K.jpg] \useexternalfigure [12] [L.jpg] \useexternalfigure [13] [M.jpg] %D Setup the variables for the Pocket diary, only year is used for the %D calculations. \setvariables [PocketDiary] [Year=2023] %D Let the header and the footer be empty: \setupheadertexts[][] \setupfootertexts[][] %D Add some label texts for the international interfaces: \setuplabeltext[en][fotocal={Photo Calendar}] \setuplabeltext[nl][fotocal=Fotokalender] \setuplabeltext[de][fotocal=Fotokalender] \setuplabeltext[fr][fotocal={Calendrier photo}] \setuplabeltext[it][fotocal={Calendario fotografico}] \setuplabeltext[es][fotocal={Calendario fotográfico}] %D Let lua is perform the magic: \startluacode local report = logs.reporter("Photo calendar") function thirddata.calendar.Photo_calendar_page(y) report("Working in function: calendar.Foto_calendar_page") local year = y --local path = file.dirname("./Fotokalender-fotos/") for i = 1,12 do local monthname = string.lower(os.date("%B", os.time{year=year,month=i,day=1})) context.startplacefigure({number="",title=""}) context.externalfigure({i}, {width = "0.8\\textwidth"}) context.stopplacefigure() context.strut() context("\\vfill") context.startalign({"middle"}) context("\\bfa") context.labeltext(monthname) context("~") context(year) context.stopalign() context.blank() thirddata.diary.monthtableH(i,year) context.page() end end \stopluacode % Setup of the month table \startsetups table:month \setupTABLE[c] [each] [width=\dimexpr\textwidth/7, frame=on, style=\tfa] \setupTABLE[r][each][height=1.8\lineheight,align={center,lohi}] \setupTABLE[c][7][foregroundcolor=red] \stopsetups %D Define the macro for calling lua \define[1]\Photocalendarpages {\ctxlua{thirddata.calendar.Photo_calendar_page(#1)}} %D Setup the \TEX\ side of the document \starttext %D Add a title page \startstandardmakeup[page=yes,doublesided=yes] \startplacefigure [location=middle, title=, number=] {\externalfigure[13][width=\paperwidth]} \stopplacefigure \midaligned{\bfc \labeltext{fotocal}~\getvariable{PocketDiary}{Year}} \stopstandardmakeup %D Call the defined macro \Photocalendarpages{\getvariable{PocketDiary}{Year}} \stoptext context-modules-20240428/tex/context/third/calendar-examples/Menu-calendar.mkiv0000644000175000017500000001723314422276371026433 0ustar hillehille%D \module %D [ file=t-calendar-examples.tex %D version=2023.04.15 %D title=Calendar examples based on PocketDiary %D subtitle=Menu calendar, %D author=W. Egger, %D date=\currentdate %D copyright=W. Egger %D license=Public Domain %D This is an example of how to use the PocketDiary-module outside the built-in %D structure of a PocketDiary. %D In order to use this example you need to have the PocketDiary-module %D installed from: %D https://modules.contextgarden.net/cgi-bin/module.cgi/action=view/id=132 %D %D If you want collating marks placed on the outermost sheet of a section, %D then you need to install also the Collatingmarks-module from: %D https://modules.contextgarden.net/cgi-bin/module.cgi/action=view/id=129 %D The used imposition scheme is contained in the \CONTEXT\ distribution. %D Load the PocketDiary module \usemodule[pocketdiary] %D Load the Collating marks module \usemodule[collatingmarks][Collatingmarks=yes] %% Choose and setup the desired font \setupbodyfont[ibmplex,ss,10pt] %D Add a path to the picture placed on page 3: \setupexternalfigures [directory=/Path-to-the-picture/] %D Choose the main language which determines the interface: \mainlanguage[en] %D This document will be doublesided, the pagenumber will be placed in the %D footer by means of \type{\setupfootertexts}: \setuppagenumbering[alternative=doublesided,location=] %D The calendar has a pagesize of A6 and with the imposition 4 pages recto and %D verso are placed on a A4. Two sheets of A4 form one section: %D Setup paper size and map it on the size of the print paper \setuppapersize[A6][A4] %D Invoke the arranging of the pages \setuparranging[2*4*2] %D Setup the appropriate information for the collating marks module: \setupMPvariables [pages=8, % pages per sheet of paper doublesided sheets=2, % sheets of paper used per section horpageshift=0mm] %D Adapt the layout of the page to the size of the page: \setuplayout [topspace=.6cm, backspace=.6cm, header=2\bodyfontsize, headerdistance=.5\bodyfontsize, footer=1.2\bodyfontsize, footerdistance=.5\bodyfontsize, margin=0pt, height=middle, width=middle, location=middle] %D Setup the variable sets from the PocketDiary module to be set: \setvariables [PocketDiary] [Year=2023] \setvariables [PocketDiaryFooter] [Lefttext=\labeltext{menu}-\labeltext{calendar}, Centertext=\pagenumber, Righttext=\getvariable{PocketDiary}{Year}] \setvariables [PocketDiaryColors] [Separatorline=blue, Gridline={s=.75}] %D The data are presented in table form. The setup of the table is %D as follows: \startsetups table:week \setupTABLE[split=yes] \setupTABLE[c][1][width=.35\textwidth,frame=off] \setupTABLE[c][2][width=.65\textwidth,frame=off] \setupTABLE[r][height=2\lineheight,align=lohi] \setupTABLE[r][2,3,5,6,8,9,11,12,14,15,17,18,20,21][bottomframe=on] \stopsetups %D There are currently 6 interfaces supported: EN,DE,NL,FR,IT,ES %D Create some label texts for each language %D English interface \setuplabeltext[en][menu=Menu] \setuplabeltext[en][comment=Comment] %D German interface \setuplabeltext[de][menu=Menü] \setuplabeltext[de][comment=Kommentar] %D French interface \setuplabeltext[fr][menu=Menu] \setuplabeltext[fr][comment=Commentaire] %D Dutch interface \setuplabeltext[nl][menu=Menu] \setuplabeltext[nl][comment=Commentaar] %D Italian interface \setuplabeltext[it][menu=Menu] \setuplabeltext[it][comment=Commento] %D Spanish interface \setuplabeltext[es][menu=Menú] \setuplabeltext[es][comment=Comentario] %D Let lua perform all the magic: \startluacode local report = logs.reporter("Menu calendar") function thirddata.calendar.menuweektable(mondaytimestamp,year,w) local stamp = mondaytimestamp local year = year local week = w local daynumber,dayname,monthname,holiday local day = stamp + 1 * 24 * 60 * 60 report("Working in function: thirddata.calendar.menuweektable") local monthname = string.lower(os.date("%B",day)) --report("Month: %s Week: %s", monthname,week) thirddata.calendar.myheadertext(monthname,week) context.bTABLE({setups="table:week"}) for i = 1,7 do local day = stamp + i * 24 * 60 * 60 --report("Day-inloop: %s", day) daynumber = tonumber(os.date("%d",day)) --day number dayname = string.lower(os.date("%a",day)) -- day name short monthnumber = tonumber(os.date("%m",day)) -- month name holiday = thirddata.calendar.checkchristianfeast(daynumber,monthnumber,year) -- Christian holida if holiday ~= "" then report("Holiday (before table row): %s", holiday) report("Day number (before table row): %s", daynumber) report("Day name (before table row): %s",dayname) end context.bTR() context.bTD({style="bfa"}) if dayname == "sun" or holiday ~= "" and f ~= "ashw" then local dnu = daynumber local dna = dayname context.color({"red"},function() context(dnu) end) context("~") context.color({"red"},function() context.labeltext(dna) end) else context(daynumber) context("~") context.labeltext(dayname) end context.eTD() context.bTD() context.labeltext(holiday) context.eTD() context.eTR() context.bTR() context.bTD({nx="2"}) context.labeltext("menu") context.eTD() context.eTR() context.bTR() context.bTD({nx="2"}) context.labeltext("comment") context.eTD() context.eTR() end context.eTABLE() context.page({"yes"}) end function thirddata.calendar.myheadertext(monthname,week) report("Working in function myheadertext") context.setupheadertexts{ function() context("\\bgroup\\bfa") context.labeltext(monthname) context("\\egroup") context("\\hfill") context.labeltext("week") context(": ") context(week) return true end} end function thirddata.calendar.week(weeknumber,year) local w = weeknumber local year = year local month = thirddata.calendar.select_month(1,w,year) local mondaytimestamp = thirddata.calendar.weekcalendar(w,month,year) report("Working in function: thirddata.calendar.week") --report("Mondaytimestamp %s", mondaytimestamp) thirddata.calendar.menuweektable(mondaytimestamp,year,w) end \stopluacode %D We need a macro to call the lua-code: this macro has two parameters %D week number and year \define[2]\MenuWeektable{\ctxlua{thirddata.calendar.week(#1,#2)}} % \showframe %D The setup of the document at the TeX-side: \starttext %D Add a title page \startstandardmakeup[page=yes,doublsided=yes] \strut \godown[.3\textheight] \startalignment [middle] {\bfc \labeltext{menu}-\labeltext{calendar}} \vfill {\tfa \getvariable{PocketDiary}{Year}} \stopalignment \vfil \stopstandardmakeup %D Add a picture on page 3 \setupheadertexts[][] \strut\vfil \startplacefigure [number=, title=, location=middle] {\externalfigure[YourPicture.jpg][width=0.75\textwidth]} \stopplacefigure \vfill \page %D Call the footer text setups \setups{Footertext} %D Place the week tables for the indicated year \dorecurse{52} {\setvariables [PocketDiary] [Week=\recurselevel] \MenuWeektable{\recurselevel}{\getvariable{PocketDiary}{Year}}\page} \page %D Add some empty pages for notes \setupheadertexts[\bf \labeltext{notes}] \dorecurse {3} {\strut\page} \stoptext context-modules-20240428/tex/context/third/calendar-examples/Sundata-calendar.mkiv0000644000175000017500000003144214422276371027124 0ustar hillehille%D \module %D [ file=t-calendar-examples.tex, %D version=2023.04.15, %D title=Calendar examples based on PocketDiary, %D subtitle=Sun and moon data calendar, %D author=W. Egger, %D date=\currentdate, %D copyright=W. Egger, %D license=Public Domain] %D This examples creates a small calendar, containing the sunrise and %D sunset time as well as the lunar days for each day of a given year. %D In order to create this calendar the PocketDiary module must be installed %D on the computer %D For placing collating marks on the outside of the sections, the %D Collating Marks module is required. %D Load the PocketDiary module \usemodule[pocketdiary] %D Load the Collating Marks module \usemodule[collatingmarks][Collatingmarks=yes] %D Setup the main language. This determines the interface to be used \mainlanguage[en] % Setup of the variable sets for the PocketDiary module \setvariables [PocketDiary] [Year=2023, Week=1, Day=1, Month=1, Nextyear=no, Place=Koziegłowy, Country=PL] \setvariables [PocketDiaryFooter] [Lefttext={\jobname .pdf}, Centertext=\pagenumber, Righttext=] \setvariables [PocketDiaryColors] [Separatorline=blue, Gridline={s=.75}] \setvariables [PocketDiaryGeoPosition] [lat=52.464588, lon=16.981689, timezoneoffset=1, continent=EU] %EU, US or empty for no DST %D Choose and setup the desired font to be used \setupbodyfont[ibmplex,ss,10pt] %D Make the document doublesided and switch off automatic page number placement \setuppagenumbering[alternative=doublesided,location=] %D Setup paper size \setuppapersize[A6][A4] %D Setup the layout of the page \setuplayout [topspace=.6cm, backspace=.6cm, header=2\bodyfontsize, headerdistance=.5\bodyfontsize, footer=1.2\bodyfontsize, footerdistance=.5\bodyfontsize, margin=0pt, height=middle, width=88mm, location=middle] %D Setup page arrangement \setuparranging[2*4*2] % Setup the variables for the Collating Marks module \setupMPvariables % for collatingmarks [pages=8, % pages per sheet of paper doublesided sheets=2, % sheets of paper used per section horpageshift=0mm] %D Let lua do the calculations \startluacode local report = logs.reporter("Sundata calendar") function thirddata.diary.year_of_monthtables( year,lat,lon,timeoffset,continent) report("Working in function: diary.year_of_monthtables") local dst_start,dst_stop = thirddata.diary.DST(year,continent) report("DST start: %s, DST stop: %s",dst_start,dst_stop) -- for i= 1,12 do for i= 4,4 do local monthname = string.lower(os.date ("%B",os.time{year=year,month=i,day=1})) context.setupheadertexts( { function() context("\\bf") context.labeltext(monthname) return true end }, { function() context(year) return true end }, { function() context("\\bf") context.labeltext(monthname) return true end }, { function() context(year) return true end }) thirddata.diary.monthblock(i,year,lat,lon,timeoffset,dst_start,dst_stop) end end function thirddata.diary.monthblock( month,year,lat,lon,timeoffset,dst_start,dst_stop) report("Working in function diary.monthblock") local c = thirddata.calendar.month(month,year) --returns number of weeks in a given month local wkf = thirddata.calendar.weeknumber(1,month,year) --report("Weeks in the selected month: %s", c) --report("Week number : %s", wkf) local nofdays = 1 if month == 2 and thirddata.calendar.isleapyear(year) ~= 365 then nofdays = thirddata.calendar.nofdays_month(month,year) + 1 else nofdays = thirddata.calendar.nofdays_month(month,year) end report("Number of days in month: %s", nofdays) local wkl = thirddata.calendar.weeknumber(nofdays,month,year) local monthname = thirddata.calendar.select_nameofmonth(month,year) context.bTABLE({setups="table:monthblock"}) for i = 1,nofdays do local ordinalday = thirddata.calendar.ordinalday(i,month,year) local weeknumber = thirddata.calendar.weeknumber(i,month,year) local holiday = thirddata.calendar.checkchristianfeast(i,month,year) local moondata = thirddata.moonphase.lunardays(year,month,i) local sunrise,sunset,lighthours = thirddata.srss.sundata( i,month,year,lat,lon,timeoffset,dst_start,dst_stop) context.bTR() context.bTD() local dayname = string.lower(os.date ("%a",os.time{day=i,month=month,year=year})) --report("Dayname: %s",dayname) context.starttabulate{"|lw(0.1\\textwidth)|lw(0.06\\textwidth)|l|"} context.NC() if dayname == "sun" or holiday ~= "" and holiday ~= "asw" then local dnu = i local dna = dayname context.color({"red"}, function() context(dnu) end) --day number context("~") context.color({"red"}, function() context.labeltext(dna) end)--dayname else context(i) --day context("~") context.labeltext(dayname) --dayname end context.NC() context.switchtobodyfont{"6pt"} context.labeltext("week") context(": ") context(weeknumber) context.NC() context.switchtobodyfont{"6pt"} context.labeltext("day") context(": ") context(ordinalday) context.NC() context.NR() context.stoptabulate() context.eTD() context.bTD() context.starttabulate{"|lw(0.2\\textwidth)|l|l|l|l|"} context.NC() if holiday == "" then context.strut() context.NC() context.NC() context.NC() context.NC() else context.labeltext(holiday) context.NC() context.NC() context.NC() context.NC() end context.NR() context.NC() if tonumber(moondata) then context.labeltext("moondays") else context.labeltext("moon") end context(":~") context(moondata) context.NC() --context.labeltext("sunrise") context("\\SunA[background=Sunrise]{}") context("\\quad :~") context(sunrise) context.NC() context("\\SunA[background=Sunset]{}") context("\\quad :~") context(sunset) context.NC() context("\\SunB[background=Light]{}") context("~:~") context(lighthours) context.NC() context.NR() context.stoptabulate() context.eTD() context.eTR() end context.eTABLE() context.page() end \stopluacode %D Setup the table for the months \startsetups[table:monthblock] \setupTABLE[split=yes] \setupTABLE[each][each][frame=on] \setupTABLE[r][each][offset=0pt,loffset=3pt,roffset=3pt,align=lohi] \setupTABLE[c][1][width=0.35\textwidth,align=lohi] \setupTABLE[c][2][style={\switchtobodyfont[6pt]},width=0.65\textwidth] \stopsetups %D Define the macro to call lua \define[5]\Yearofmonthtables{\ctxlua{thirddata.diary.year_of_monthtables(#1,#2,#3,#4,#5)}} %D Create a buffer containing all required variables for the calculations \startbuffer[Yearofmonthtables] \Yearofmonthtables %Year,lat,lon,timeoffset,dst_start,dst_stop {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \stopbuffer %D Setup label texts for the different interfaces \setuplabeltext[en][week=Wk.~] \setuplabeltext[de][week=Wo.~] \setuplabeltext[en][title=Title] \setuplabeltext[nl][title=Titel] \setuplabeltext[de][title=Titel] \setuplabeltext[fr][title=Titre] \setuplabeltext[it][title=Titolo] \setuplabeltext[es][title=Título] \setuplabeltext[en][author=Author] \setuplabeltext[nl][author=Auteur] \setuplabeltext[de][author=Autor] \setuplabeltext[fr][author=Auteur] \setuplabeltext[it][author=autore] \setuplabeltext[es][author=Autor] \setuplabeltext[en][typography=Typography] \setuplabeltext[nl][typography=Typografie] \setuplabeltext[de][typography=Typographie] \setuplabeltext[fr][typography=Typographie] \setuplabeltext[it][typography=Tipografia] \setuplabeltext[es][typography=Tipografía] \setuplabeltext[en][compilation=Compilation date] \setuplabeltext[nl][compilation=Compilatie datum] \setuplabeltext[de][compilation=Kompilationsdatum] \setuplabeltext[fr][compilation=Date de compilation] \setuplabeltext[it][compilation=Dato di compilazione] \setuplabeltext[es][compilation=Fecha de compilación] %D Setup the document at the \TEX\ side \starttext %D Add a title page \startstandardmakeup[page=yes,doublesided=no] \strut \startalignment [middle] \godown[.3\textheight] \startmode[**en] {\bfc \labeltext{sunstar}- and \labeltext{moon}-\labeltext{calendar}} \stopmode \startmode[**nl] {\bfc \labeltext{sunstar}- en \labeltext{moon}-\labeltext{calendar}} \stopmode \startmode[**de] {\bfc \labeltext{sunstar}n- und \labeltext{moon}-\labeltext{calendar} } \stopmode \startmode[**fr] {\bfc \labeltext{calendar} du \labeltext{sunstar} et de la \labeltext{moon}} \stopmode \startmode[**it] {\bfc \labeltext{calendar} di \labeltext{sunstar} e della \labeltext{moon}} \stopmode \startmode[**es] {\labeltext{calendar} del \labeltext{sunstar} y la \labeltext{moon}} \stopmode \blank {\bfb \getvariable{PocketDiary}{Place}} \vfill {\tfa \getvariable{PocketDiary}{Year}} \stopalignment \vfil \stopstandardmakeup %D Add an editorial and info page \startstandardmakeup[page=yes,doublesided=no] \starttabulate[|l|p|] \NC \labeltext{title} \EQ \startmode[**en] {\labeltext{sunstar}- and \labeltext{moon}-\labeltext{calendar}} \stopmode \startmode[**nl] {\labeltext{sunstar}- en \labeltext{moon}-\labeltext{calendar}} \stopmode \startmode[**de] {\labeltext{sunstar}n- und \labeltext{moon}-\labeltext{calendar} } \stopmode \startmode[**fr] {\labeltext{calendar} du \labeltext{sunstar} et de la \labeltext{moon}} \stopmode \startmode[**it]] {\labeltext{calendar} di \labeltext{sunstar} e della \labeltext{moon}} \stopmode \startmode[**es] {\labeltext{calendar} del \labeltext{sunstar} y la \labeltext{moon}} \stopmode \NC\NR \NC \labeltext{author} \EQ \getvariable{PocketDiaryAddress}{Forename}~ \getvariable{PocketDiaryAddress}{Familyname} \NC\NR \NC \labeltext{typography} \EQ \CONTEXT\ with \LUAMETATEX \NC\NR \NC \labeltext[compilation] \EQ \currentdate \NC\NR \stoptabulate \vfil \startmode[**en] This calendar is generated for \getvariable{PocketDiary}{Place}, \getvariable{PocketDiary}{Country} \stopmode \startmode[**de] Dieser Kalender ist berechnet für \getvariable{PocketDiary}{Place}, \getvariable{PocketDiary}{Country} \stopmode \startmode[**nl] Deze kalender is opgemaakt voor \getvariable{PocketDiary}{Place}, \getvariable{PocketDiary}{Country} \stopmode \startmode[**fr] Ce calendrier est fait pour \getvariable{PocketDiary}{Place}, \getvariable{PocketDiary}{Country} \stopmode \startmode[**it] Questo calendario è prodotto per \getvariable{PocketDiary}{Place}, \getvariable{PocketDiary}{Country} \stopmode \startmode[**es] Este calendario está calculado para \getvariable{PocketDiary}{Place}, \getvariable{PocketDiary}{Country} \stopmode \starttabulate[|l|r|] \NC Longitude \EQ \getvariable{PocketDiaryGeoPosition}{lon} \NC\NR \NC Latitude \EQ \getvariable{PocketDiaryGeoPosition}{lat} \NC\NR \stoptabulate \stopstandardmakeup %D Call the buffer for creating the contents of the calendar \getbuffer[Yearofmonthtables] \stoptextcontext-modules-20240428/tex/context/third/calendar-examples/A5-day_per_page.mkiv0000644000175000017500000003056614422276371026646 0ustar hillehille%D \module %D [ file=t-calendar-examples.tex %D version=2023.04.15, %D title=Calendar examples based on PocketDiary, %D subtitle=A5 format 1 day per page calendar, %D author=W. Egger, %D date=\currentdate, %D copyright=W. Egger, %D license=Public Domain] %D This is an example of how to use the PocketDiary-module outside the built-in %D structure of a PocketDiary. %D In order to use this example you need to have the PocketDiary-module %D installed from: %D https://modules.contextgarden.net/cgi-bin/module.cgi/action=view/id=132 %D If you want collating marks placed on the outermost sheet of a section, %D then you need to install also the Collatingmarks-module from: %D https://modules.contextgarden.net/cgi-bin/module.cgi/action=view/id=129 %D The used imposition scheme is contained in the \CONTEXT\ distro. %D This is an example how to prepare a calendar, where each page contains one %D day. On the left side there is a time-schedule starting at 06:00 ending %D at 22:00. The header contains left the month and right the year. Below the %D header there is a table showing left the day and the short dayname followed %D by %D the weeknumber and the daynumber of the year. If the day in question is a %D Chrstian holiday, then the name of it is stated in the center. %D To the right astronomical data %D are shown: Lunar days/moonphase, sun rise, sun set and light hours. %D In order to have complete sections a number of pages with lines are added. \usemodule[pocketdiary] \usemodule[collatingmarks][Collatingmarks=yes] %D Setup the language to be used: EN,DE,NL,FR,IT,ES \mainlanguage[en] %D The variable sets for the PocketDiary module: \setvariables [PocketDiary] [Year=2023, Week=1, Day=1, Month=1, Nextyear=yes, Yearnext=2024] \setvariables [PocketDiaryFooter] [Lefttext={\jobname .pdf}, Centertext=\pagenumber, Righttext=] \setvariables [PocketDiaryColors] [Separatorline=blue, Gridline={s=.75}] \setvariables %Koziegłowy 52.467860 16.981240 [PocketDiaryGeoPosition] [lat=52.467860, lon=16.981240, timezoneoffset=1, continent=US] % EU, US or empty for no Daylight Saving Time (DST) \setvariables [PocketDiaryAddress] [Familyname={\bf YourFamilyName}, Forename=YourName, Street=YourStreet and Number, Zipcode=YourPostalCode, City=YourPlace, Country=YourCountry, Phone=YourPhoneNumber, Mobile=YourMobilePhoneNumber, E-mail=YourEmail@YourProvider, Web=YourWWW] \setupbodyfont[ibmplex,ss,10pt] \definefontfeature[f:Tabular][tnum=yes] \addfeature[f:Tabular] %D The document is double sided printed, the page number will be set in the %D \setupfootertexts: \setuppagenumbering[alternative=doublesided,location=] \setuppapersize[A5][A4,landscape] % \setuppapersize[A5][A5] %D Adapt the page layout to the size of the page: \setuplayout [topspace=.6cm, backspace=1.5cm, header=2\bodyfontsize, headerdistance=.5\bodyfontsize, footer=1.2\bodyfontsize, footerdistance=.5\bodyfontsize, margin=0pt, height=middle, width=middle, location=middle] %D Enable the imposition: 2 pages recto and verso using 4 sheets of A4 for forming one section \setuparranging[2*2*4] %D Setup of the Collating marks module: \setupMPvariables % for collatingmarks [pages=8, % pages per sheet of paper doublesided sheets=2, % sheets of paper used per section horpageshift=-0.5mm] % \showframe %D Let Lua do the work: \startluacode local report = logs.reporter("Calendar-1-day-per-page") function thirddata.diary.year_of_monthtables( year,lat,lon,timeoffset,continent) report("Working in function: diary.year_of_monthtables") for i = 1,12 do local monthname = string.lower(os.date ("%B",os.time{year=year,month=i,day=1})) thirddata.diary.header_text(monthname,year) thirddata.diary.monthblock(i,year,lat,lon,timeoffset,continent) end end function thirddata.diary.monthblock(month,year,lat,lon,timeoffset,continent) report("Working in function diary.monthblock") local nofdays = 1 local monthname = thirddata.calendar.select_nameofmonth(month,year) local yeardays = thirddata.calendar.isleapyear(year) if month == 2 and yeardays == 366 then nofdays = thirddata.calendar.nofdays_month(month,year) + 1 else nofdays = thirddata.calendar.nofdays_month(month,year) end --report("Number of days in month: %s", nofdays) for i = 1,nofdays do local ordinalday = thirddata.calendar.ordinalday(i,month,year) local weeknumber = thirddata.calendar.weeknumber(i,month,year) local dayname = string.lower(os.date ("%a",os.time{day=i,month=month,year=year})) local holiday = thirddata.calendar.checkchristianfeast(i,month,year) local moondata = thirddata.moonphase.lunardays(year,month,i) local dst_start,dst_stop = thirddata.diary.DST(year,continent) local sunrise,sunset,lighthours = thirddata.srss.sundata( i,month,year,lat,lon,timeoffset,dst_start,dst_stop) if holiday ~= "" then report("Holiday: %s", holiday) report("Day number: %s", i) end context.bTABLE({setups="table:dayblock"}) context.bTR() context.bTD() context.starttabulate{"|lw(0.1\\textwidth)|p(0.06\\textwidth)|p|"} context.NC() context("\\bf") --report("Daynumber: %s Month %s", i,month) if dayname == "sun" or holiday ~= "" and holiday ~= "ashw" then local dnu = i local dna = dayname context.color({"red"}, function() context(dnu) end) --day number context("~") context.color({"red"}, function() context.labeltext(dna) end)--dayname else context(i) --day context("~") context.labeltext(dayname) --dayname end context.NC() context.switchtobodyfont{"6pt"} context.labeltext("week") context(":") context.par() context(weeknumber) context.NC() context.switchtobodyfont{"6pt"} context.labeltext("day") context(":") context.par() context(ordinalday) context("/") context(yeardays) context.NC() context.NR() context.stoptabulate() context.eTD() context.bTD() context.starttabulate{"|lw(0.2\\textwidth)|p|p|p|p|"} context.NC() if holiday == "" then context.strut() else context.labeltext(holiday) end context.NC() if tonumber(moondata) then context.labeltext("moondays") else context.labeltext("moon") end context(":~") context.par() context(moondata) context.NC() context("\\SunA[background=Sunrise]{}") context.par() context(sunrise) context.NC() context("\\SunA[background=Sunset]{}") context.par() context(sunset) context.NC() context("\\SunB[background=Light]{}") context.par() context(lighthours) context.NC() context.NR() context.stoptabulate() context.eTD() context.eTR() context.eTABLE() context.page() end end function thirddata.diary.header_text(monthname,year) context.setupheadertexts( {function() context("\\bf") context.labeltext(monthname) return true end }, {function() context(year) return true end }, {function() context("\\bf") context.labeltext(monthname) return true end }, {function() context(year) return true end }) end \stopluacode %D Setup the tab;e for the day page \startsetups[table:dayblock] \setupTABLE[each][each][frame=off] \setupTABLE[r][each][offset=0pt,loffset=3pt,roffset=3pt,align=lohi] \setupTABLE[c][1][width=0.35\textwidth,align=lohi] \setupTABLE[c][2][style={\switchtobodyfont[6pt]},width=0.65\textwidth] \stopsetups %D Define the macro for invoking the lua calculations \define[5]\Yearofmonthtables{% \ctxlua{thirddata.diary.year_of_monthtables(#1,#2,#3,#4,#5)}} %D Create a buffer containing the contents of the variables to be used \startbuffer[Yearofmonthtables] \Yearofmonthtables %Year,lat,lon,timeoffset,continent {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \stopbuffer %D Create a time-table in \METAFUN\ as a background to the page \startreusableMPgraphic{Time-Lines} numeric w; w:= OverlaytWidth; numeric h; h:= (OverlayHeight-2cm)/18; numeric t; path p,q; p := unitsquare xscaled OverlayWidth yscaled (OverlayHeight-2cm); q:= llcorner p -- lrcorner p; draw q withpen pencircle scaled .5pt withcolor \MPcolor{Grid}; for i = 1 upto 17: draw q shifted (0,i*h) withpen pencircle scaled .5pt withcolor \MPcolor{Grid}; t := 24 - 1 - i ; label.top(textext(""& decimal t & ":00"),point 0 of q) shifted (15pt,((i-1)*h)+1pt); endfor; \stopreusableMPgraphic %D Make the timetable available as a background on the page \defineoverlay[Textbackground][\reuseMPgraphic{Time-Lines}] %D Implement international interface: \setuplabeltext[en][title=Title] \setuplabeltext[nl][title=Titel] \setuplabeltext[de][title=Titel] \setuplabeltext[fr][title=Titre] \setuplabeltext[it][title=Titolo] \setuplabeltext[es][title=Título] \setuplabeltext[en][author=Author] \setuplabeltext[nl][author=Auteur] \setuplabeltext[de][author=Autor] \setuplabeltext[fr][author=Auteur] \setuplabeltext[it][author=autore] \setuplabeltext[es][author=Autor] \setuplabeltext[en][typography=Typography] \setuplabeltext[nl][typography=Typografie] \setuplabeltext[de][typography=Typographie] \setuplabeltext[fr][typography=Typographie] \setuplabeltext[it][typography=Tipografia] \setuplabeltext[es][typography=Tipografía] \setuplabeltext[en][compilation=Compilation date] \setuplabeltext[nl][compilation=Compilatie datum] \setuplabeltext[de][compilation=Kompilationsdatum] \setuplabeltext[fr][compilation=Date de compilation] \setuplabeltext[it][compilation=Dato di compilazione] \setuplabeltext[es][compilation=Fecha de compilación] %D Setup the TeX side of the document: \starttext %D Create the title pages \startstandardmakeup[page=yes,doublesided=no] \strut \startalignment [middle] \godown[.3\textheight] {\bfa \labeltext{calendar}} \vfil {\bf \getvariable{PocketDiary}{Year}} \stopalignment \stopstandardmakeup \startstandardmakeup[page=yes,doublesided=no] \starttabulate[|l|p|] \NC \labeltext{title} \EQ {\bf \labeltext{calendar}} \NC\NR \NC \labeltext{author} \EQ \getvariable{PocketDiaryAddress}{Forename} \getvariable{PocketDiaryAddress}{Familyname} \NC\NR \NC \labeltext{typography} \EQ \CONTEXT\ with \LUAMETATEX \NC\NR \NC \labeltext{compilation} \EQ \currentdate \NC\NR \stoptabulate \stopstandardmakeup %D Load the Lost-Returnto template \getbuffer[Lost-Returnto] \setupbackgrounds[text][background=] \setupbackgrounds[text][background=Textbackground] %D Insert all day pages \getbuffer[Yearofmonthtables] \setupbackgrounds[text][background=] %D Add a year table with all months \getbuffer[Yearcurrentplan] \setupheadertexts[\bfa \getvariable{PocketDiary}{Yearnext}] %D Insert a year table with all months of the following year \getbuffer[Yearnextplan] %D Add some todo-lists \dorecurse {3} {\getbuffer[Todo]} %D Add notes pages \dorecurse {10} {\getbuffer[Lines]} \stoptext context-modules-20240428/tex/context/third/calendar-examples/A6-1week_per_2pages.mkiv0000644000175000017500000002524614422276371027352 0ustar hillehille%D \module %D [ file=t-calendar-examples.tex, %D version=2023.04.15, %D title=Calendar examples based on PocketDiary, %D subtitle=A5/A6 format, 1 week per 2 facing pages, %D author=W. Egger, %D date=\currentdate, %D copyright=W. Egger, %D license=Public Domain] %D This is an example of how to use the PocketDiary-module outside the built-in %D structure of a PocketDiary. %D In order to use this example you need to have the PocketDiary-module %D installed from: %D https://modules.contextgarden.net/cgi-bin/module.cgi/action=view/id=132 %D If you want collating marks placed on the outermost sheet of a section, %D then you need to install also the Collatingmarks-module from: %D https://modules.contextgarden.net/cgi-bin/module.cgi/action=view/id=129 %D The used imposition scheme is contained in the \CONTEXT\ distro. %D This is an example how to prepare a calendar, where two facing pages carry %D one week as a table. Saturday and Sunday are placed together in one row. %D The header contains the month name to the left and the week number and the %D year to the right. %D The footer contains three fields. The first contains the job-name, the center %D field shows the page number, the right field is not filled. -- However %D this can easily be changed in the variable set "PocketDiaryFooter". %D Each row of the week-table shows top left the day number followed by the short %D name of the day. Next to this the ordinal day number of the year is typeset. %D If the day in question is a Christian holiday, then its name is placed next %D to the general information. %D This example supports 6 languages i.e. English, German, Dutch, French, %D Italian and Spanish. The respective interface is activated by enabling the %D respective mode %D The original idea was to have an A6 calendar, where 4 pages are print on the %D A4 paper. This is activated by enabling the mode "A6". By activating the mode %D "A5" the calendar is prepared A5 sized on a A4 landscape paper. %D Because there are astronomical data concerning the sun rise, sun set times it %D is necessary to fill in the correct geo-positional data in the variable set %D "PocketDiaryGeoPosition". %D Load the PocketDiary module \usemodule[pocketdiary] %D Load the Collating marks module \usemodule[collatingmarks][Collatingmarks=yes] %D Define the modes for the different formats \definemode[A5,A6][keep] %D Enable the desired format of the calendar \enablemode[A5] %D Set the interface language which includes EN,DE,NL,FR,IT,ES \mainlanguage[en] %D Setup the variable sets for the PocketDiary module \setvariables [PocketDiary] [Year=2020, Week=1, Day=1, Month=1, Nextyear=yes] \setvariables [PocketDiaryFooter] [Lefttext={\jobname .pdf}, Centertext=\pagenumber, Righttext=] \setvariables [PocketDiaryColors] [Separatorline=blue, Gridline={s=.75}] \setvariables %Koziegłowy 52.467860 16.981240 [PocketDiaryGeoPosition] [lat=52.467860, lon=16.981240, timezoneoffset=1, continent=EU] % Eu, US or empty for no Daylight Saving Time (DST) \setvariables [PocketDiaryAddress] [Familyname=YourFamilyName, Forename=YourName, Street=YourStreet and Number, Zipcode=YourPostalCode, City=YourPlace, Country=YourCountry, Phone=YourPhoneNumber, Mobile=YourMobilePhoneNumber, E-mail=YourEmail@YourProvider, Web=YourWWW] %D Setup the desired font to be used \setupbodyfont[ibmplex,ss,10pt] \definefontfeature[f:Tabular][tnum=yes] \addfeature[f:Tabular] %D Make the document doublesided, switch off the page numbering. The latter %D is done in the PocketDiary footer setup \setuppagenumbering[alternative=doublesided,location=] \setuplayout [topspace=.6cm, backspace=1cm, header=2\bodyfontsize, headerdistance=.5\bodyfontsize, footer=1.2\bodyfontsize, footerdistance=.5\bodyfontsize, margin=0pt, height=middle, width=middle, location=middle, marking=on] %D Elaborate the definitions for the A6 format \startmode[A6] \definepapersize[Agenda][width=100mm,height=140mm] \setuppapersize[Agenda][A4,portrait] % \setuppapersize[Agenda][Agenda] % The vertical page-shift enables to make a 2.5mm cut at the head of the % section \definepageshift [ver] [vertical] [2.5mm,2.5mm,2.5mm,2.5mm,2.5mm,2.5mm,2.5mm,2.5mm, 2.5mm,2.5mm,2.5mm,2.5mm,2.5mm,2.5mm,2.5mm,2.5mm] \setuppageshift[paper][ver] \setuparranging[2*4*2] \setupMPvariables % for collatingmarks [pages=8, % pages per sheet of paper doublesided sheets=2, % sheets of paper used per section horpageshift=-0.5mm] \stopmode %D Elaborate the definition for the A5 format \startmode[A5] \definepapersize[Agenda][width=148mm,height=210mm] \setuppapersize[Agenda][A4,landscape] \setuparranging[2SIDE] %\setuparranging[2*2*4] \setupMPvariables % for collatingmarks [pages=4, % pages per sheet of paper doublesided sheets=4, % sheets of paper used per section horpageshift=0mm] \stopmode %D Let Lua the main work: \startluacode local report = logs.reporter("Calendar-1-week-per-2-pages") function thirddata.diary.year_of_weektables(year, lat,lon,timeoffset,continent) local year = year local lat = lat local lon = lon local timeoffset = timeoffset local continent = continent report("Working in function: diary.year_of_weektables") for calendarmonth = 1,12 do --for calendarmonth = 1,12 do thirddata.diary.monthblock (calendarmonth,year,lat,lon,timeoffset,continent) end end function thirddata.diary.monthblock(month,year, lat,lon,timeoffset,continent) report("Working in function diary.monthblock: %s", month) local c = thirddata.calendar.month(month,year) --returns number of weeks in a given month local wkf = thirddata.calendar.weeknumber(1,month,year) --weeknumber of 1st day of a given month report("First week in month %s of year %s is %s",month,year,wkf) local wkl = wkf + c - 1 -- last week of a given month based on wkf and c, is wrong for January report("Weeks in the selected month: %s", c) report("First week of month: %s", wkf) if month == 1 and wkf > 51 then --report("Calculating in week number %s", wkf) calcyear = year - 1 thirddata.diary.setup_header_texts(wkf,month,calcyear) thirddata.diary.thisweek(wkf,month,year,lat,lon,timeoffset,continent) report("Week %s - Year %s",wkf,year) --year = year + 1 wkf = 1 wkl = wkf + c - 2 for i = wkf, wkl do thirddata.diary.setup_header_texts(i,month,year) thirddata.diary.thisweek(i,month,year,lat,lon,timeoffset,continent) end else for i = wkf, wkl do report("Calculating in week number %s", i) thirddata.diary.setup_header_texts(i,month,year) thirddata.diary.thisweek(i,month,year, lat,lon,timeoffset,continent) end end end function thirddata.diary.setup_header_texts(week,month,year) local monthname = string.lower(os.date ("%B",os.time{year=year,month=month,day=1})) context.setupheadertexts( {function() context("\\bf") context.labeltext(monthname) return true end }, {function() context.labeltext("week") context(": ~") context(week) context("\\quad") context(year) return true end }, {function() context("\\bf") context.labeltext(monthname) return true end }, {function() context.labeltext("week") context(": ~") context(week) context("\\quad") context(year) return true end }) end \stopluacode %D Setup the table for the week calendar \startsetups[table:week] \setupTABLE[split=yes] \setupTABLE[each][each][frame=on] \setupTABLE [r] [each] [offset=0pt, loffset=3pt, roffset=3pt, height=0.23\textheight] \setupTABLE[c][1][width=0.5\textwidth] \setupTABLE[c][2][width=0.5\textwidth] \stopsetups %D Define the macro for invoking the calculations \define[5]\Yearofweektables{\ctxlua{thirddata.diary.year_of_weektables(#1,#2,#3,#4,#5)}} %D Create a buffer containing all variables for the calculations \startbuffer[Yearofweektables] \Yearofweektables %Year,lat,lon,timeoffset,continent {\getvariable{PocketDiary}{Year}} {\getvariable{PocketDiaryGeoPosition}{lat}} {\getvariable{PocketDiaryGeoPosition}{lon}} {\getvariable{PocketDiaryGeoPosition}{timeoffset}} {"\getvariable{PocketDiaryGeoPosition}{continent}"} \stopbuffer %D Setup the \TEX\ side of the document \starttext %D Establish the content for the title pages \startstandardmakeup[page=yes,doublesided=no] \strut \godown[.3\textheight] \startalignment [middle] {\bfa \labeltext{calendar}} \vfil {\bf \getvariable{PocketDiary}{Year}} \stopalignment \stopstandardmakeup \startstandardmakeup[page=yes,doublesided=no] \starttabulate[|l|p|] \NC \translate[en=Title, nl=Titel, de=Titel, fr=Titre, it=Titolo] \EQ {\bf \labeltext{calendar}} \NC\NR \NC \translate[en=Author, nl=Auteur, de=Autor, fr=Auteur, it=autore, es=Autor] \EQ \getvariable{PocketDiaryAddress}{Forename} \getvariable{PocketDiaryAddress}{Familyname} \NC\NR \NC \translate[en=Typography, nl=Typografie, de=Typographie, fr=Typographie, it=Tipografia, es=Tipografía] \EQ \CONTEXT\ with \LUAMETATEX \NC\NR \NC \translate[en=Compilation date, nl=Compilatie datum, de=Kompilationsdatum, fr=Date de compilation, it=Dato di compilazione, es=Fecha de compilación] \EQ \currentdate \NC\NR \stoptabulate \stopstandardmakeup %D Insert a page with lost-return-to information (PocketDiary %D template) \getbuffer[Lost-Returnto] %D Add a year table with all months \getbuffer[Yearcurrentplan] \setupheadertexts[\bfa \getvariable{PocketDiary}{Yearnext}+1] %D Add a year table of the next year with all months \getbuffer[Yearnextplan] \setupheadertexts[] %D Insert all weektables by loading the buffer \getbuffer[Yearofweektables] %D Add pages for notes \dorecurse {4} {\getbuffer[Lines]} \stoptextcontext-modules-20240428/tex/context/third/gnuplot/0000755000175000017500000000000014613513620021156 5ustar hillehillecontext-modules-20240428/tex/context/third/gnuplot/t-gnuplot.mkii0000644000175000017500000011262512134236345023773 0ustar hillehille%D \module %D [ file=t-gnuplot.mkii, %D version=2013.04.19, %D title=\CONTEXT\ Extra Modules, %D subtitle=\GNUPLOT\ Inclusion, %D author={Mojca Miklavec, Marco Patzer, Hans Hagen, Taco Hoekwater, Aditya Mahajan}, %D date=\currentdate, %D copyright=\PRAGMA] % begin info % % title : Gnuplot module % % comment : simplifies inclusion of gnuplot-generated graphs into ConTeXt documents % status : stable, supports both MKII and MKIV % % end info %D This module is used for creating gnuplot graphs on-the-fly and including them %D into documents. %D %D Known Bugs: %D %D \startitemize %D \item spurious space \& page %D \stopitemize %D %D TODO (Optimisations): %D %D \startitemize %D \item optimize the number of gnuplot runs (if possible, gnuplot should be run only once) %D \item optimize the number of times for loading/converting an already used graphic %D \item pstopdf is a bit slow %D \stopitemize %D %D TODO (Handle things that may go wrong): %D - gnuplot executable doesn't exist %D - context terminal isn't available or some other failure in gnuplot script (no file created) %D - write18 disabled (you may call gnuplot later - create a script) %D %D TODO (Missing functionality): %D %D - a lot ... \writestatus{loading}{Gnuplot module} \startmodule[gnuplot] \unprotect \def\c!terminal {terminal} \def\c!options {options} \def\c!pointset {pointset} \def\c!purge {purge} %D MPextensions %D %D XXX %D if possible, they should be specific to \type{\startGNUPLOTgraphic}, %D so unvisible to \type{MPcode} %D (probably something like \type+\appendtoks ... to\everyGNUPLOTgraphic+) \startMPextensions % load metapost macros (only once) input mp-gnuplot.mp ; % number of points defined with \setupGNUPLOTterminal[pointset=...] %gp_num_points_with_tex := \gp:num:pointswithtex; gp_num_points_with_tex := 3; % main color should be set equal to the current text color gp_color_foreground := \MPcolor{currentcolor}; gp_color_lt[-2] := gp_color_foreground; % TODO: is there any chance to make this local to gnuplot? % linejoin & linecap linejoin := \@@GNUPLOT@term@context@linejoin; % linecap := \gp:term:context:linecap; % dashes or solid? (true/false) gp_use_dashed := \@@GNUPLOT@term@context@is@dashed; % dashlength scale % gp_scale_dashlength := \gp:term:context:dashlength; % linewidth scale gp_scale_linewidth := \@@GNUPLOT@term@context@linewidth; gp_scale_text := \@@GNUPLOT@term@context@fontscale; % linejoin := \gp:term:context:linejoin; % linecap := \gp:term:context:linecap; % % dashes or solid? (true/false) % gp_use_dashed := \gp:term:context:dashed; % % dashlength scale % gp_scale_dashlength := \gp:term:context:dashlength; % % linewidth scale % gp_scale_linewidth := \gp:term:context:linewidth; gp_points_with := gp_points_with_\@@GNUPLOT@term@context@points; \stopMPextensions %D (hopefully) temporary solution for handling the color in expressions like %D \type+draw \sometxt{...} withcolor red+ \chardef\TeXtextcolormode\zerocount %D We need a \type{\strut} in front of labels for better vertical centering. %D This might still fail for Zapfino and alike where \type{\strut} might be smaller %D than the actual font height. %D %D TODO (optional improvement): instead of placing \type{\strut} in front, %D create a \type{\hbox} and adjust it's dimensions to \type{\strut}'s height and depth. %D Aditya, thanks a lot for requesting it! %D Hans, thanks a lot for implementing this! \definetextext[gp]{\strut} %D TODO (feature request): %D \starttyping %D \sometxt[gp][ss,20pt]{abc} %D \stoptyping %D should become equivalent to %D \starttyping %D \sometxt{\switchtobodyfont[ss,20pt]\strut abc} %D \stoptyping %D %D Or, even more drastic perhaps, I would love to implement %D \starttyping %D \sometxt[gp][iwona,bold,c]{abc} %D \stoptyping %D meaning: iwona, bold typeface, size \quote{c} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %D The following patch has been written by Aditya and seems to work OK, %D however it would be more clean to have this functionality in the core. %D Redefining low-level macros might be a bit dangerous, esp. since %D they tend to change over time. %D %D At the moment the hack only works in MKII; for MKIV it needs to be fixed %D %D TODO: remind Hans to implement it in core ;) %D and remove this patch from the module %D \long\def\redofiltersometxt[#1]% {\doifnextcharelse[{\reredofiltersometxt[#1]}{\redodofiltersometxt[#1]}} \long\def\redodofiltersometxt[#1]#2% {\increment\txtcounter \TeXtext[#1]\txtcounter{#2}% \filtersometxt} \long\def\reredofiltersometxt[#1][#2]#3% {\increment\txtcounter \TeXtext[#1]\txtcounter{\switchtobodyfont[#2]\strut#3}% \filtersometxt} %D In MKII we have to make sure that runtime MP graphics are enabled, %D otherwise sizes of labels created by \type+\sometxt{}+ would be wrong %D if user didn't enable that option in \type{cont-usr.tex}. %D (Taco says it might be a bug, but let's not worry too much about it. %D If it will be resolved, we may delete this.) \runMPgraphicstrue %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcounter\GNUPLOTnumber \newdimen\GNUPLOThcharsize \newdimen\GNUPLOTvcharsize \newcounter\tikzGNUPLOTnumber % macro to calculate true character size from current font % (However it is not 100 % that it gets the job properly done % in case that other font settings are used inside the picture.) \def\calculateGNUPLOTcharsize{% \global\GNUPLOThcharsize=1.05\fontcharwd\font`0% \global\GNUPLOTvcharsize=1.05\fontcharht\font`0% \global\advance\GNUPLOTvcharsize by 1.05\fontchardp\font`g% } %D \macros %D {startGNUPLOTinclusions, resetGNUPLOTinclusions} %D %D For those who want to have two or more graphs with similar options, %D these options may be included inside \type{\startMPinclusions ... \stopMPinclusions} %D and will be place on the top of the created \GNUPLOT\ script. %D %D \starttyping %D \startGNUPLOTinclusions %D set xlabel '$x$' %D set ylabel '$y$' %D set format y "%.1f" %D \stopGNUPLOTinclusions %D %D \startGNUPLOTscript[sin] %D plot sin(x) %D \stopGNUPLOTscript %D \startGNUPLOTscript[cos] %D plot cos(x) %D \stopGNUPLOTscript %D \stoptyping \long\def\startGNUPLOTinclusions {\def\stopGNUPLOTinclusions{\ifx\savebuffer\undefined \else \savebuffer[gnuplot-inclusions]\fi}% \dostartbuffer[gnuplot-inclusions][startGNUPLOTinclusions][stopGNUPLOTinclusions]} % \def\resetGNUPLOTinclusions{\let\GNUPLOTinclusions\empty} % creates an empty file (there must be a cleaner way to do it) \def\resetGNUPLOTinclusions {\immediate\openout\scratchwrite=\jobname-gnuplot-inclusions.tmp \immediate\closeout\scratchwrite} %\startbuffer[gnuplot-inclusions]\stopbuffer\ifx\savebuffer\undefined \else \savebuffer[gnuplot-inclusions]\fi} \resetGNUPLOTinclusions %D On the other hand, one can probably achieve the same effect %D when drawing two plots inside the same script, like that: %D %D \starttyping %D \startGNUPLOTscript[sin and cos] %D set xlabel '$x$' %D set ylabel '$y$' %D set format y "%.1f" %D plot sin(x) %D plot cos(x) %D \stopGNUPLOTscript %D \stoptyping %D %D and then recall the graphics using \type{\useGNUPLOTgraphic[sin and cos][1]}. %D \macros %D {startGNUPLOTscript} %D %D \starttyping %D \startGNUPLOTscript{some name} %D plot sin(x) %D \stopGNUPLOTscript %D \stoptyping \def\startGNUPLOTscript {\bgroup\dosingleempty\dostartGNUPLOTscript} % \def\redostartGNUPLOTscript#1 % {\obeylines % \catcode`\%=\@@letter % \catcode`\|=\@@letter % \catcode`\$=\@@letter % \dodostartGNUPLOTscript{#1}% % %\dostartGNUPLOTscript[#2] % } % % \def\dostartGNUPLOTscript[#1]% % {\iffirstargument % \obeylines % \catcode`\%=\@@letter % \catcode`\|=\@@letter % \catcode`\$=\@@letter % \dodostartGNUPLOTscript{#1}% % \else % \redostartGNUPLOTscript % \fi % } \def\dostartGNUPLOTscript[#1]% {%\iffirstargument \dodostartGNUPLOTscript{#1}% %\else % \dodostartGNUPLOTscript %\fi } % gps:n:{name} = gnuplotscript : number : {name} - number of script with name {name} \long\def\dodostartGNUPLOTscript#1%#2\stopGNUPLOTscript {\doglobal\increment\GNUPLOTnumber \letgvalue{gps:n:#1}\GNUPLOTnumber % in case of LuaTeX we need to write the buffer into file explicitely \def\stopGNUPLOTscript{\egroup \ifx\savebuffer\undefined \else \savebuffer[gnuplot-\GNUPLOTnumber]\fi}% \dostartbuffer[gnuplot-\GNUPLOTnumber][startGNUPLOTscript][stopGNUPLOTscript]% } % When are the graphics processed/read? % % - \gps:n:{name} (gnuplot script:name:{name}) holds the number of gnuplot script; % - that number was defined if we created the plot using \startGNUPLOTscript{name} % - and most probably undefined if we only issued \processGNUPLOTfile[name][filename] % => if, at the time of issuing \processGNUPLOTfile[name][filename], \gps:n:{name} is not defined, % it should be defined at that time % - \gpe:{name}:{terminal} (gnuplot graphic executed:{name}:{terminal}) % is defined if we executed the command for that specific name and for that terminal % (once it will probably be 0 for a failed run and 1 for a successful one) % \useGNUPLOTgraphic[name] has three different ways of working: % - it can be called after \processGNUPLOTfile[name][filename] % which defined MP graphics that are now used % - it can be called for the first time under the current terminal % in that case it compiles the graphic and includes it % - it can be called for the second, third, ... time % in which case it only includes files without compiling it %D \macros %D {useGNUPLOTgraphic} % 5 ways of calling it: % - \useGNUPLOTgraphic{name} % - \useGNUPLOTgraphic[name] % - \useGNUPLOTgraphic[name][1,2,5] % - \useGNUPLOTgraphic[name][width=.8\textwidth] % - \useGNUPLOTgraphic[name][1,2,5][width=.8\textwidth] % this code takes care of reading arguments \def\useGNUPLOTgraphic {\dotripleempty\douseGNUPLOTgraphic} \def\douseGNUPLOTgraphic[#1][#2][#3]% {\doifelse{#3}{}{% % < 3 arguments \doifelse{#2}{}% % 1 argument % as in \useGNUPLOTgraphic[name] {\dodouseGNUPLOTgraphic[#1][][]}% % % as in \useGNUPLOTgraphic{name} % {\redouseGNUPLOTgraphic[][][]}% % 2 arguments {\doifassignmentelse{#2}% % as in \useGNUPLOTgraphic[name][width=.8\textwidth] {\dodouseGNUPLOTgraphic[#1][][#2]}% % as in \useGNUPLOTgraphic[name][1,2,5] {\dodouseGNUPLOTgraphic[#1][#2][]}% }% }% % as in \useGNUPLOTgraphic[name][1,2,5][width=.8\textwidth] {\dodouseGNUPLOTgraphic[#1][#2][#3]}% } \def\redouseGNUPLOTgraphic[#1][#2][#3]#4% {\dodouseGNUPLOTgraphic[#4][][]} % and this code actually does something with it %D \doifundefined {string} {...} %D \doifdefined {string} {...} %D \doifundefinedelse {string} {then ...} {else ...} %D \doifdefinedelse {string} {then ...} {else ...} % \doifGNUPLOTscriptdefined{name}{...} % if gnuplot script with {name} and current terminal has already been processed % \doifGNUPLOTscriptprocessed{name}{...} % \letGNUPLOTscriptprocessed[optional terminal]{name} signals that the gnuplot script named {name} % has already been processed with the current terminal % TODO: currently it is always defined to be one as soon as one tries to process it, % even if en error is produced; in future it would be helpful if it would be set to zero % if it was unsuccessfully executed; % that is needed, since scripts are processed only when one first asks for including the graphic \def\letGNUPLOTscriptprocessed {\dosingleempty\doletGNUPLOTscriptprocessed} %\def\doletGNUPLOTscriptprocessed[#1]#2% %{\letgvalue{gpe:#1:\@@GNUPLOTterminal}\plusone} \def\doletGNUPLOTscriptprocessed[#1]#2% {\iffirstargument % terminal has been specified \letgvalue{gpe:#2:#1}\plusone \else % no terminal specified - use the current one \letgvalue{gpe:#2:\@@GNUPLOTterminal}\plusone \fi} % Although that should preferably not happen, one might come to an idea of defining % a gnuplot script with the same name as already defined. % In that case the old script cannot be referenced any more, but we can still try % to do out best to make it work anyway. We have to do two things: % - claim that script with that name hasn't been defined yet, so that processing will happen again % (TODO: do it in a more elegant way for all known terminals) % - undefine any metapost graphics (TODO: I have no idea yet how it can be done) % % \resetGNUPLOTscriptprocessed{name} \def\resetGNUPLOTscriptprocessed#1% {\bgroup % claim that the script with {name} (#1) hasn't been processed with {terminal} (##1) yet \def\undefineGNUPLOTscriptforterminal##1{\letbeundefined{gpe:#1:##1}}% % TODO: the list of available terminals should be generated automatically \processcommalist[context,postscript,ps,eps,pdf,metapost,mp,png]\undefineGNUPLOTscriptforterminal \resetGNUPLOTgraphics{#1}% \egroup} % \resetGNUPLOTgraphics{name} undefines any gnuplot graphic defined with \startGNUPLOTgraphic[name][number] \def\resetGNUPLOTgraphics#1% {\doloop {\doifMPgraphicelse{gpg:#1:\recurselevel}% % TODO: be aware - @@MPG is low-level ConTeXt variable which might change without notice, % it would be better to call this \undefineMPgraphic{gpg:#1:\recurselevel} or something similar {\letbeundefined{@@MPGgpg:#1:\recurselevel}}% {\exitloop}}% \doloop {\doifdefinedelse{TKZp:#1:\recurselevel}% {\letbeundefined{TKZp:#1:\recurselevel}}% {\exitloop}}% }% % TODO: this can probably be done in a better way \def\doifGNUPLOTscriptprocessed#1#2% {\doifdefined {gpe:#1:\@@GNUPLOTterminal}{#2}} \def\doifGNUPLOTscriptprocessedelse#1#2#3% {\doifdefinedelse {gpe:#1:\@@GNUPLOTterminal}{#2}{#3}} \def\doifGNUPLOTscriptnotprocessed#1#2% {\doifundefined {gpe:#1:\@@GNUPLOTterminal}{#2}} \def\doifGNUPLOTscriptnotprocessedelse#1#2#3% {\doifundefinedelse{gpe:#1:\@@GNUPLOTterminal}{#2}{#3}} % private % \writeandprocessGNUPLOTscript{name} \def\writeandprocessGNUPLOTscript#1% % TODO: if gps:n:#1 (holding the script content) is not defined, % error or warning should be issued % % only process the script if it has been defined and not processed before for the current terminal {\doifdefined{gps:n:#1}{\doifGNUPLOTscriptnotprocessed{#1}{% % \gpe:{name}:{terminal} is defined %\setgvalue{gpe:#1:\@@GNUPLOTterminal}{#2} \letGNUPLOTscriptprocessed{#1}% % call to gnuplot and processing/converting the graphics is only needed in the first ConTeXt run \doifmode{*\v!first}{% (perhaps also: if files haven't changed) \bgroup % for TikZ we want to calculate character size, so that it gets printed % to inclusions with \@@GNUPLOToptions \calculateGNUPLOTcharsize % catcodes trickery & alike %\the\everyGNUPLOTscript % open file for writing \immediate\openout\scratchwrite=\GNUPLOTfile.plt % TODO: terminal-specific options (default or provided by the user) \immediate\write\scratchwrite{\letterhash\space Do not modify this file - all changes will be overwritten}% \immediate\write\scratchwrite{\letterhash\space Change \jobname.tex instead.}% \immediate\write\scratchwrite{set terminal \@@GNUPLOToutput\space\@@GNUPLOToptions}% % add common inclusions in scripts for multiple similar plots %\doifnotempty % {\GNUPLOTinclusions}{\immediate\write\scratchwrite{\GNUPLOTinclusions}}% % include common gnuplot 'inclusions' \immediate\write\scratchwrite{load '\jobname-gnuplot-inclusions.tmp'}% % output file \immediate\write\scratchwrite{set output "\@@GNUPLOTresult"}% % write main contents of the script, like "plot sin(x)" %\immediate\write\scratchwrite{\getvalue{gps:d:\GNUPLOTnumber}}% \immediate\write\scratchwrite{load '\GNUPLOTfile.tmp'}% \immediate\closeout\scratchwrite \egroup % TODO: % - check the state of write18 and warn the user if it's disabled, % otherwise just everyone will start complaining that the module doens't work % - check if execution was successful; possible pitfalls: % - gnuplot doesn't exist as a binary % - gnuplot doesn't support context terminal % or some other error in script which results in empty output file % % run gnuplot & execute the script that has just been written % \executesystemcommand{mtxrun --ifchanged=\GNUPLOTfile.plt\space % --direct \@@GNUPLOTprogram\space\GNUPLOTfile.plt}% \executesystemcommand{mtxrun --direct \@@GNUPLOTprogram\space\GNUPLOTfile.plt}% \writestatus{aaa}{mtxrun --direct \@@GNUPLOTprogram\space\GNUPLOTfile.plt}% \convertGNUPLOTgraphic }% % for ConTeXt terminal only - read the result \doif{\@@GNUPLOTterminal}{context}{\processGNUPLOTfile[#1][\@@GNUPLOTresult]}% \doif{\@@GNUPLOTterminal}{tikz} {\processGNUPLOTfile[#1][\@@GNUPLOTresult]}% }}} % \dodouseGNUPLOTgraphic[name][numbers][options] \def\dodouseGNUPLOTgraphic[#1][#2][#3]% {\bgroup \doifdefinedelse{gps:n:#1} {\edef\GNUPLOTnumber{\getvalue{gps:n:#1}}% \edef\GNUPLOTfile {\jobname-gnuplot-\GNUPLOTnumber}% \writeandprocessGNUPLOTscript{#1}% % "ctxtools --purge" should delete the gnuplot script and other intermediate files % (but it seems that they are deleted automatically already; preferred or not?) % \registertempfile{\GNUPLOTfile.plt} % \registertempfile{\@@GNUPLOTresult} % \registertempfile{\@@GNUPLOTfinalresult} \doifelse{\@@GNUPLOTterminal}{context}% % for ConTeXt terminal only {\doifelse{#2}{}% % if no explicit figure number was specified, include all the figures {\doloop {\doifMPgraphicelse{gpg:#1:\recurselevel}% {\scale[#3]{\reuseMPgraphic{gpg:#1:\recurselevel}}}% {\exitloop}}}% % if numbers were specified, include the figures specified in the list only {\begingroup \def\useGNUPLOTgraphicN##1{\doifMPgraphicelse {gpg:#1:##1}% {\scale[#3]{\reuseMPgraphic{gpg:#1:##1}}}% % if graphic doesn't exist: draw a dummy frame instead and warn the user {\scale[#3]{\framed[frame=on,width=5in,height=3in,align={middle,lohi}]{GNUPLOT graphic #1, Nr. ##1 doesn't exist}}}}% \processcommalist[#2]\useGNUPLOTgraphicN \endgroup }% }{% % for TikZ terminal only \doifelse{\@@GNUPLOTterminal}{tikz}% {\doifelse{#2}{}% % if no explicit figure number was specified, include all the figures {\doloop {\doifdefinedelse{TKZp:#1:\recurselevel}% {\scale[#3]{\getvalue{TKZp:#1:\recurselevel}}}% {\exitloop}}}% % if numbers were specified, include the figures specified in the list only {\begingroup \def\useGNUPLOTgraphicN##1{\doifdefinedelse {TKZp:#1:##1}% {\scale[#3]{\getvalue{TKZp:#1:##1}}}% % if graphic doesn't exist: draw a dummy frame instead and warn the user {\scale[#3]{\framed[frame=on,width=5in,height=3in,align={middle,lohi}]{GNUPLOT graphic #1, Nr. ##1 doesn't exist}}}}% \processcommalist[#2]\useGNUPLOTgraphicN \endgroup }% }% % for all the other terminals % TODO: add more safety switches (if pages don't exist for example) {\doifelse{#2}{}% % if no explicite figure number was specified, include all the pages % TODO: properly handle METAPOST & PNG (only works for (E)PS & PDF) !!! {\getfiguredimensions[\@@GNUPLOTfinalresult]% \dorecurse{\noffigurepages}{\externalfigure[\@@GNUPLOTfinalresult][page=\recurselevel,#3]}}% % if numbers were specified, include the pages specified in the list only {\begingroup \def\useGNUPLOTgraphicN##1{\externalfigure[\@@GNUPLOTfinalresult][page=##1,#3]}% \processcommalist[#2]\useGNUPLOTgraphicN \endgroup }% }}% }% % else part - in case that graphic gets included with \processGNUPLOTfile[name][file] {\doifelse{\@@GNUPLOTterminal}{context} % TODO: this part has been literally copied from above; create a subroutine instead {\doifelse{#2}{}% % if no explicit figure number was specified, include all the figures {\doloop {\doifMPgraphicelse{gpg:#1:\recurselevel}% {\scale[#3]{\reuseMPgraphic{gpg:#1:\recurselevel}}}% {\exitloop}}}% % if numbers were specified, include the figures specified in the list only {\begingroup \def\useGNUPLOTgraphicN##1{\doifMPgraphicelse {gpg:#1:##1}% {\scale[#3]{\reuseMPgraphic{gpg:#1:##1}}}% % if graphic doesn't exist: draw a dummy frame instead and warn the user {\scale[#3]{\framed[frame=on,width=5in,height=3in,align={middle,lohi}]{GNUPLOT graphic #1, Nr. ##1 doesn't exist}}}}% \processcommalist[#2]\useGNUPLOTgraphicN \endgroup }% }% {\message{The gnuplot graphic #1 has not been defined.}}}% \egroup} %D \macros %D {setupGNUPLOT} \def\setupGNUPLOT % {\dodoubleempty\getparameters[@@GNUPLOT]} {\dosingleargument\dosetupGNUPLOT} \def\dosetupGNUPLOT[#1]% {\getparameters[@@GNUPLOT][#1]% % define all the necessary points according to the option "pointset" % % XXX: no idea why this is needed, but otherwise it complains that @@GNUPLOTpointset is undefined \edef\currentGNUPLOTpointset{\@@GNUPLOTpointset}% \startTeXtexts \doloop{\doifelseconversionnumber{\@@GNUPLOTpointset}{\recurselevel}% % +500 is a hack (hopefully the plot doesn't contain more than 500 labels) % otherwise the points would be overwritten by labels with another \TeXtext: % it might need a fix in ConTeXt core {\TeXtext{\numexpr\recurselevel+500\relax}{{\convertnumber{\currentGNUPLOTpointset}{\recurselevel}}}}% {\exitloop}}% \stopTeXtexts % \gp:num:pointswithtex is passed to metapost, so that it knows % how many points are defined and chooses the proper point % form a set of the defined ones % % for safety reasons define \gp:num:pointswithtex to be equal to 1 (it can only increase later), otherwise: % - (something mod 0) won't work % - if conversion is not defined, the number will retain its old value (not desirable) \edef\gp:num:pointswithtex{1}% \doloop{\doifelseconversionnumber{\@@GNUPLOTpointset}{\recurselevel}% {\edef\gp:num:pointswithtex{\recurselevel}}% {\exitloop}}% % in case of TikZ terminal we have to generate the needed style files first \doif{\@@GNUPLOTterminal}{tikz} {\executesystemcommand{gnuplot -e "set term tikz context createstyle"}\usemodule[gnuplot-lua-tikz]} % TODO: % - issue a warning if user wants to use points with TeX, % but pointset= is undefined (if the first point doesn't exist) % - no idea what happens if conversion is infinite, % so try to stop at some reasonable value (100?) % - current implementation redefines the points even if only terminal type % has been set to some other value (which is a stupid approach, but I % wanted to have a working version first and will consider efficiency later) % - it may be that the old points remain defined if conversion changes % (perhaps they should be undefined again?) } % Hans has written this piece of code, but: % - "start" and "/MIN" caused problems % - pgnuplot is not much more "portable" than gnuplot % best thing to do is to create a "gnuplot.bat" somewhere in PATH % %\def\processGNUPLOTscript % {\doifelse\operatingsystem{mswin} % {\executesystemcommand{start /MIN pgnuplot \GNUPLOTfile.plt}} % start is needed else gp fails % {\executesystemcommand{gnuplot \GNUPLOTfile.plt}}} %\def\processGNUPLOTscript % {\executesystemcommand{gnuplot \GNUPLOTfile.plt}} % TODO: check if write18 is enabled; if not, issue a command and warn the user that running the module might be pointless or that he/she has to run gnuplot on the produced files manually \def\convertGNUPLOTgraphic {\doifsomething\@@GNUPLOThandle{\writestatus{conversion}{\@@GNUPLOThandle}\executesystemcommand{\@@GNUPLOThandle}}} %D \macros %D {processGNUPLOTfile} %D It's needed to input a file resulting from a gnuplot run (with ConTeXt terminal). %D It reads the file and "saves" the metapost graphics defined in that file, %D so that they can be used with \usegnuplotgraphic (low level: \reuseMPgraphic) later %D % \processGNUPLOTfile[NAME][filename] \def\processGNUPLOTfile {\dodoubleargument\doprocessGNUPLOTfile} \def\doprocessGNUPLOTfile[#1][#2]% {\bgroup % for ConTeXt teminal %-------------------- % we first define two commands: \startGNUPLOTgraphic & \stopGNUPLOTgraphic to read the files in; % files that gnuplot creates in non-standalone mode look approximately like this: % % \startGNUPLOTgraphic[1] % ... metapost commands to draw the graph ... % \stopGNUPLOTgraphic % \startGNUPLOTgraphic[2] % ... metapost commands to draw the graph ... % \stopGNUPLOTgraphic % ... % % while reading the file in, metapost graphics named "gpg:{name}:{number}" are defined % % (we might need some additional arguments later on, but for now the figure number should suffice) \def\startGNUPLOTgraphic {%\obeyMPlines % <- no longer a problem \def\obeyedline{}% <- thanks to this \dosingleargument\dostartGNUPLOTgraphic}% \long\def\dostartGNUPLOTgraphic[##1]##2\stopGNUPLOTgraphic {\startreusableMPgraphic{gpg:#1:##1}##2\stopreusableMPgraphic}% %------------------ % for TikZ terminal %------------------ \newcounter\tikzGNUPLOTnumber \let\normalstarttikzpicture=\starttikzpicture \let\normalstoptikzpicture=\stoptikzpicture \long\def\starttikzpicture##1\stoptikzpicture% {\increment\tikzGNUPLOTnumber % \long\setgvalue{TKZp:#1:\tikzGNUPLOTnumber}{##1}} \long\setgvalue{TKZp:#1:\tikzGNUPLOTnumber}{\hbox{\starttikzpicture##1\stoptikzpicture}}} %--------- % for both %--------- % input the file % TODO: error / warning if the files doesn't exist \readlocfile{#2}{}{}% the third argument should be: if file not found % this file is known % TODO \letgvalue{gpf:#1}\plusone \egroup } %D \macros %D {startGNUPLOTpage} %D %D Used for standalone \GNUPLOT\ figures & written out by gnuplot in standalone mode. %D %D Instead of having to \type{\useGNUPLOTgraphic}, a figure is inserted directly using %D \type{\startMPpage ... }\type{\stopMPpage}. %D %D A high-level command is provided if some more advance features will %D be needed in the future and to be able to ensure backward compatibility. %D We need to preserve line breaks, otherwise metapost runs into troubles for longer input. \def\startGNUPLOTpage {\begingroup\dostartGNUPLOTpage} \long\def\dostartGNUPLOTpage#1\stopGNUPLOTpage {\endgroup\startMPpage#1\stopMPpage} % TODO: use a separate instance for MKIV % % \defineMPinstance[gnuplot] % \startTEXpage\startMPcode{gnuplot} % \stopMPcode\stopTEXpage % TODO: currently, the following definitions are used, % but the ones below would be preferred \def\defineGNUPLOThandle#1#2#3#4#5#6% name; output; suffix; conversion-method; gnuplot's result; final result {\setvalue{@@GNUPLOT-#1}{{#2}{#3}{#4}{#5}{#6}}} \def\@@GNUPLOToutput{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}51} \def\@@GNUPLOTsuffix{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}52} \def\@@GNUPLOThandle{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}53} \def\@@GNUPLOTresult{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}54} \def\@@GNUPLOTfinalresult{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}55} % name "set term" suffix conversion (system command) gnuplot's result final result % (suffix is probably not needed any more since full names were introduced) \defineGNUPLOThandle {postscript}{postscript color}{ps}{mtxrun pstopdf \GNUPLOTfile-ps.ps} {\GNUPLOTfile-ps.ps}{\GNUPLOTfile-ps.pdf} \defineGNUPLOThandle {ps}{postscript color}{ps}{mtxrun pstopdf -dAutoRotatePages=/PageByPage \GNUPLOTfile-ps.ps} {\GNUPLOTfile-ps.ps}{\GNUPLOTfile-ps.pdf} \defineGNUPLOThandle {eps}{postscript color eps}{ps}{mtxrun pstopdf -dEPSCrop \GNUPLOTfile-eps.eps} {\GNUPLOTfile-eps.eps}{\GNUPLOTfile-eps.pdf} \defineGNUPLOThandle {pdf}{pdf}{pdf}{} {\GNUPLOTfile-pdf.pdf}{\GNUPLOTfile-pdf.pdf} \defineGNUPLOThandle {pdfcairo}{pdfcairo}{pdf}{} {\GNUPLOTfile-pdfcairo.pdf}{\GNUPLOTfile-pdfcairo.pdf} \defineGNUPLOThandle {metapost}{mp}{mp}{mtxrun mptopdf \GNUPLOTfile-mp.mp} {\GNUPLOTfile-mp.mp}{\GNUPLOTfile-mp-0.pdf} \defineGNUPLOThandle {mp}{mp}{mp}{mtxrun mptopdf \GNUPLOTfile-mp.mp} {\GNUPLOTfile-mp.mp}{\GNUPLOTfile-mp-0.pdf} \defineGNUPLOThandle {png}{png}{png}{} {\GNUPLOTfile-png.png}{\GNUPLOTfile-png.png} \defineGNUPLOThandle {pngcairo}{pngcairo}{png}{} {\GNUPLOTfile-pngcairo.png}{\GNUPLOTfile-pngcairo.png} \defineGNUPLOThandle {tikz}{tikz context createstyle size \@@GNUPLOT@term@tikz@width,\@@GNUPLOT@term@tikz@height\space charsize \the\GNUPLOThcharsize,\the\GNUPLOTvcharsize\space fontscale \@@GNUPLOT@term@tikz@fontscale }{tex}{} {\GNUPLOTfile-tikz.tex}{\GNUPLOTfile-tikz.tex} \defineGNUPLOThandle {context}{context size \@@GNUPLOT@term@context@width,\@@GNUPLOT@term@context@height\space fontscale \@@GNUPLOT@term@context@fontscale }{tex}{} {\GNUPLOTfile-ctx.tex}{\GNUPLOTfile-ctx.tex} % \doifnotempty{\@@GNUPLOT@term@context@fontscale}{fontscale \@@GNUPLOT@term@context@fontscale} \def\defineGNUPLOTterminal {\dodoubleargument\dodefineGNUPLOTterminal} \def\dodefineGNUPLOTterminal[#1][#2]% {\doifassignmentelse{#2}% % define a proper terminal {}% TODO % only define a synonym for that terminal {}% TODO } %D {\sl terminal}: argument to be passed to gnuplot in the form of "set term {\sl terminal}" %D {\sl defaultoptions}: options to be passed to gnuplot after terminal name: %D set term {\sl teminal} {\sl defaultoptions} %D not to be touched by users %D {\sl suffix}: filename suffix %D {\sl result}: the file to which gnuplot should output the result %D set output {\sl result} %D {\sl convertwith}: command for conversion from gnuplot-generated file to a file that can be read by \CONTEXT; may be empty %D {\sl finalresult}: file resulting after the conversion to be read by \CONTEXT %D \POSTSCRIPT\ terminal \defineGNUPLOTterminal [postscript] [terminal=postscript, defaultoptions=color, % TODO: only if \setupcolors[state=start] suffix=ps, result=\GNUPLOTfile-ps.ps, % TODO: -dAutoRotatePages=/PageByPage or remove that option from the default ones convertwith={mtxrun pstopdf \GNUPLOTfile-ps.ps}, finalresult=\GNUPLOTfile-ps.pdf, ] %D Define \type{ps} as a synonym for \type{postscript} terminal \defineGNUPLOTterminal [ps] [postscript] %D \EPS\ terminal: %D - same terminal as for \POSTSCRIPT, but slightly different handling \defineGNUPLOTterminal [eps] [terminal=postscript, defaultoptions=eps color, suffix=eps, result=\GNUPLOTfile-eps.eps, % TODO: -dEPSCrop convertwith={mtxrun pstopdf -dEPSCrop \GNUPLOTfile-eps.eps}, finalresult=\GNUPLOTfile-eps.pdf, ] %D \PDF\ terminal \defineGNUPLOTterminal [pdf] [terminal=pdf, defaultoptions=, suffix=pdf, result=\GNUPLOTfile-pdf.pdf, convertwith=, finalresult=\GNUPLOTfile-pdf.pdf, ] \defineGNUPLOTterminal [pdfcairo] [terminal=pdfcairo, defaultoptions=, suffix=pdf, result=\GNUPLOTfile-pdfcairo.pdf, convertwith=, finalresult=\GNUPLOTfile-pdfcairo.pdf, ] %D \METAPOST\ terminal: %D - deprecated: use the \CONTEXT\ terminal instead, %D which was built starting from the \METAPOST\ one, %D but improved in many aspects \defineGNUPLOTterminal [mp] [terminal=mp, defaultoptions=, suffix=mp, result=\GNUPLOTfile-mp.mp, convertwith={mtxrun mptopdf \GNUPLOTfile-mp.mp}, % TODO: support for multiple graphics % one would need a switch in mptopdf, so that a single pdf would be created instead of multiple ones finalresult=\GNUPLOTfile-mp-0.pdf, ] \defineGNUPLOTterminal [metapost] [mp] %D png terminal: %D - bitmap %D - no conversion needed %D - new version pretty advanced \defineGNUPLOTterminal [png] [terminal=png, defaultoptions=, suffix=png, result=\GNUPLOTfile-png.png, convertwith=, finalresult=\GNUPLOTfile-png.png, ] \defineGNUPLOTterminal [pngcairo] [terminal=pngcairo, defaultoptions=, suffix=png, result=\GNUPLOTfile-pngcairo.png, convertwith=, finalresult=\GNUPLOTfile-pngcairo.png, ] %D \CONTEXT\ terminal (native) \defineGNUPLOTterminal [context] [terminal=context, defaultoptions=, suffix=tex, result=\GNUPLOTfile-ctx.tex, convertwith=, finalresult=\GNUPLOTfile-ctx.tex, ] \def\setupGNUPLOTterminal {\dodoubleargument\dosetupGNUPLOTterminal} \def\dosetupGNUPLOTterminal[#1][#2]% {% TODO \getparameters[@@GNUPLOT@term@#1@][#2] % TODO: width & height % linejoin, linecap - I have to improve this !!! % \edef\gp:term:context:linejoin{\@@GNUPLOT@term@context@linejoin} % \edef\gp:term:context:linecap{\@@GNUPLOT@term@context@linecap} % dashed or solid lines? \doifsamestringelse{\@@GNUPLOT@term@context@dashed}{yes}% yes or no {\edef\@@GNUPLOT@term@context@is@dashed{true}}% {\edef\@@GNUPLOT@term@context@is@dashed{false}}% \doifsamestring{\@@GNUPLOT@term@context@width}{default} {\edef\@@GNUPLOT@term@context@width{5in}} \doifsamestring{\@@GNUPLOT@term@context@height}{default} {\edef\@@GNUPLOT@term@context@height{3in}} % {\edef\gp:term:context:dashed{true}}% % {\edef\gp:term:context:dashed{false}}% % % dashlength scale % \edef\gp:term:context:dashlength{\@@GNUPLOT@term@context@dashlength} % % linewidth scale % \edef\gp:term:context:linewidth{\@@GNUPLOT@term@context@linewidth} % \doifsamestringelse{\@@GNUPLOT@term@context@points}{metapost}% tex or metapost } \setupGNUPLOTterminal [context] [width=default, % *default* (5in) | height=default, % *default* (3in) | linejoin=rounded, % mitered | *rounded* | beveled linecap=butt, % *butt* | rounded (in gnuplot: round) | squared dashed=yes, % *yes* | no dashlength=1, % scaling factor for dash lengths linewidth=1, % scaling factor for line widths (1.0 means 0.4bp) fontscale=1, % scaling factor for text labels points=metapost] % *metapost* | tex (Should points be drawn with MetaPost or TeX?) \setupGNUPLOTterminal [tikz] [width=5in, % *5in* | default (todo) | height=3in, % *3in* | default (todo) | fontscale=1, % scaling factor for text labels ] % TODO: better scaling \defineconversion [gnuplot:pointset] [{\scale[scale=800]{\mathematics{+}}}, {\scale[scale=800]{\mathematics{\times}}}, \mathematics{\ast}, {\scale[scale=700]{\mathematics{\square}}}, {\scale[scale=700]{\mathematics{\blacksquare}}}, \mathematics{\circ}, \mathematics{\bullet}, {\scale[scale=900]{\mathematics{\triangleup}}}, {\scale[scale=900]{\mathematics{\blacktriangle}}}, {\scale[scale=900]{\mathematics{\triangledown}}}, {\scale[scale=900]{\mathematics{\blacktriangledown}}}, {\scale[scale=800]{\mathematics{\lozenge}}}, {\scale[scale=800]{\mathematics{\blacklozenge}}}%, % {\rotate[rotation=45]{\mathematics{\square}}}, % {\rotate[rotation=45]{\mathematics{\blacksquare}}}, ] %\defineGNUPLOTcolor[red] [r=1] %\defineGNUPLOTcolor[green] [g=1] %\defineGNUPLOTcolor[blue] [b=1] %\defineGNUPLOTcolor[magenta][r=1,b=1] %\defineGNUPLOTcolor[cyan] [g=1,b=1] %\defineGNUPLOTcolor[yellow] [r=1,g=1] %\defineGNUPLOTcolor[black] [s=0] %\defineGNUPLOTcolor[orange] [r=1,g=.3,b=0] %\defineGNUPLOTcolor[gray50] [s=.5] %\defineGNUPLOTcolors % [default] % from PostScript % [red,green,blue,magenta,cyan,yellow,black,orange,gray50] % TODO: testset is here only temporary & for testing \setupGNUPLOT[program=gnuplot,\c!terminal=context,\c!purge=\v!yes,\c!options=,\c!pointset=gnuplot:pointset] % colors=postscript %D Some additional typescripts which enable us using font "Arial" and "Helvetica" %D Pretend the font to be serif as well, so that no "ss" switch is needed \starttypescript [serif] [helvetica] [name] \definefontsynonym [Serif] [Helvetica] \definefontsynonym [SerifBold] [Helvetica-Bold] \definefontsynonym [SerifItalic] [Helvetica-Oblique] \definefontsynonym [SerifSlanted] [Helvetica-Oblique] \definefontsynonym [SerifBoldItalic] [Helvetica-BoldOblique] \definefontsynonym [SerifBoldSlanted] [Helvetica-BoldOblique] \definefontsynonym [SerifCaps] [Helvetica] \stoptypescript \beginOLDTEX \starttypescript [gnuplot] [texnansi,ec] \definetypeface [Helvetica] [rm] [serif] [helvetica] [default] [encoding=\typescripttwo] \definetypeface [Helvetica] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo] \definetypeface [Arial] [rm] [serif] [helvetica] [default] [encoding=\typescripttwo] \definetypeface [Arial] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo] \stoptypescript \usetypescript[gnuplot][ec] \endOLDTEX \beginNEWTEX \starttypescript [gnuplot] \definetypeface [Helvetica] [rm] [serif] [helvetica] [default] \definetypeface [Helvetica] [ss] [sans] [helvetica] [default] \definetypeface [Arial] [rm] [serif] [helvetica] [default] \definetypeface [Arial] [ss] [sans] [helvetica] [default] \stoptypescript \usetypescript[gnuplot] \endNEWTEX \stopmodule \protect \doifnotmode{demo}{\endinput} \starttext \startGNUPLOTscript[exp] set key bottom set format x "%.1f" set format y "%.1f" set style fill solid 0.25 noborder plot [0:3] 2/sqrt(pi)*exp(-x**2) t '$\frac{2}{\sqrt{\pi}}e^{-x^2}$' with filledcurves x1 lt 3, erf(x) lc 3 lw 2 \stopGNUPLOTscript \useGNUPLOTgraphic[exp][width=.7\textwidth] \startGNUPLOTinclusions set title "trigonometry" \stopGNUPLOTinclusions \startGNUPLOTscript[sin] plot sin(x) \stopGNUPLOTscript \startGNUPLOTscript[cos] plot cos(x) \stopGNUPLOTscript \useGNUPLOTgraphic[sin] \endgraf \useGNUPLOTgraphic[cos] \endgraf \useGNUPLOTgraphic[cos] \endgraf \setupGNUPLOT[terminal=ps] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank %setupGNUPLOT[terminal=pdf] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank %setupGNUPLOT[terminal=png] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank \setupGNUPLOT[terminal=mp] \useGNUPLOTgraphic[sin][object=no,height=2cm,options=color] \blank \stoptext context-modules-20240428/tex/context/third/gnuplot/t-gnuplot.mkiv0000644000175000017500000010635012143265460024006 0ustar hillehille%D \module %D [ file=t-gnuplot.mkiv, %D version=2013.05.09, %D title=\CONTEXT\ Extra Modules, %D subtitle=\GNUPLOT\ Inclusion, %D author={Mojca Miklavec, Marco Patzer, Hans Hagen, Taco Hoekwater, Aditya Mahajan}, %D date=\currentdate, %D copyright=\PRAGMA] % begin info % % title : Gnuplot module % % comment : simplifies inclusion of gnuplot-generated graphs into ConTeXt documents % status : stable, supports both MKII and MKIV % % end info %D This module is used for creating gnuplot graphs on-the-fly and including them %D into documents. %D %D Known Bugs: %D %D \startitemize %D \item spurious space \& page %D \stopitemize %D %D TODO (Optimisations): %D %D \startitemize %D \item optimize the number of gnuplot runs (if possible, gnuplot should be run only once) %D \item optimize the number of times for loading/converting an already used graphic %D \item pstopdf is a bit slow %D \stopitemize %D %D TODO (Handle things that may go wrong): %D - gnuplot executable doesn't exist %D - context terminal isn't available or some other failure in gnuplot script (no file created) %D - write18 disabled (you may call gnuplot later - create a script) %D %D TODO (Missing functionality): %D %D - a lot ... \writestatus{loading}{Gnuplot module} \startmodule[gnuplot] \unprotect \def\c!terminal {terminal} \def\c!options {options} \def\c!pointset {pointset} \def\c!purge {purge} %D MPextensions %D %D XXX %D if possible, they should be specific to \type{\startGNUPLOTgraphic}, %D so unvisible to \type{MPcode} %D (probably something like \type+\appendtoks ... to\everyGNUPLOTgraphic+) \startMPinitializations % load metapost macros (only once) input mp-gnuplot.mp ; % number of points defined with \setupGNUPLOTterminal[pointset=...] %gp_num_points_with_tex := \gp:num:pointswithtex; gp_num_points_with_tex := 3; % main color should be set equal to the current text color gp_color_foreground := \MPcolor{currentcolor}; gp_color_lt[-2] := gp_color_foreground; % TODO: is there any chance to make this local to gnuplot? % linejoin & linecap linejoin := \@@GNUPLOT@term@context@linejoin; % linecap := \gp:term:context:linecap; % dashes or solid? (true/false) gp_use_dashed := \@@GNUPLOT@term@context@is@dashed; % dashlength scale % gp_scale_dashlength := \gp:term:context:dashlength; % linewidth scale gp_scale_linewidth := \@@GNUPLOT@term@context@linewidth; gp_scale_text := \@@GNUPLOT@term@context@fontscale; % linejoin := \gp:term:context:linejoin; % linecap := \gp:term:context:linecap; % % dashes or solid? (true/false) % gp_use_dashed := \gp:term:context:dashed; % % dashlength scale % gp_scale_dashlength := \gp:term:context:dashlength; % % linewidth scale % gp_scale_linewidth := \gp:term:context:linewidth; gp_points_with := gp_points_with_\@@GNUPLOT@term@context@points; \stopMPinitializations %D We need a \type{\strut} in front of labels for better vertical centering. %D This might still fail for Zapfino and alike where \type{\strut} might be smaller %D than the actual font height. %D %D TODO (optional improvement): instead of placing \type{\strut} in front, %D create a \type{\hbox} and adjust it's dimensions to \type{\strut}'s height and depth. %D Aditya, thanks a lot for requesting it! %D Hans, thanks a lot for implementing this! \definetextext[gp]{\strut} %D TODO (feature request): %D \starttyping %D \sometxt[gp][ss,20pt]{abc} %D \stoptyping %D should become equivalent to %D \starttyping %D \sometxt{\switchtobodyfont[ss,20pt]\strut abc} %D \stoptyping %D %D Or, even more drastic perhaps, I would love to implement %D \starttyping %D \sometxt[gp][iwona,bold,c]{abc} %D \stoptyping %D meaning: iwona, bold typeface, size \quote{c} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TODO: make \sometxt[gp][12pt]{text} work in MKIV %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcounter\GNUPLOTnumber \newdimen\GNUPLOThcharsize \newdimen\GNUPLOTvcharsize \newcounter\tikzGNUPLOTnumber % macro to calculate true character size from current font % (However it is not 100 % that it gets the job properly done % in case that other font settings are used inside the picture.) \def\calculateGNUPLOTcharsize{% \global\GNUPLOThcharsize=1.05\fontcharwd\font`0% \global\GNUPLOTvcharsize=1.05\fontcharht\font`0% \global\advance\GNUPLOTvcharsize by 1.05\fontchardp\font`g% } %D \macros %D {startGNUPLOTinclusions, resetGNUPLOTinclusions} %D %D For those who want to have two or more graphs with similar options, %D these options may be included inside \type{\startMPinclusions ... \stopMPinclusions} %D and will be place on the top of the created \GNUPLOT\ script. %D %D \starttyping %D \startGNUPLOTinclusions %D set xlabel '$x$' %D set ylabel '$y$' %D set format y "%.1f" %D \stopGNUPLOTinclusions %D %D \startGNUPLOTscript[sin] %D plot sin(x) %D \stopGNUPLOTscript %D \startGNUPLOTscript[cos] %D plot cos(x) %D \stopGNUPLOTscript %D \stoptyping \long\def\startGNUPLOTinclusions {\def\stopGNUPLOTinclusions{\ifx\savebuffer\undefined \else \savebuffer[gnuplot-inclusions]\fi}% \dostartbuffer[gnuplot-inclusions][startGNUPLOTinclusions][stopGNUPLOTinclusions]} % \def\resetGNUPLOTinclusions{\let\GNUPLOTinclusions\empty} % creates an empty file (there must be a cleaner way to do it) \def\resetGNUPLOTinclusions {\immediate\openout\scratchwrite=\jobname-gnuplot-inclusions.tmp \immediate\closeout\scratchwrite} %\startbuffer[gnuplot-inclusions]\stopbuffer\ifx\savebuffer\undefined \else \savebuffer[gnuplot-inclusions]\fi} \resetGNUPLOTinclusions %D On the other hand, one can probably achieve the same effect %D when drawing two plots inside the same script, like that: %D %D \starttyping %D \startGNUPLOTscript[sin and cos] %D set xlabel '$x$' %D set ylabel '$y$' %D set format y "%.1f" %D plot sin(x) %D plot cos(x) %D \stopGNUPLOTscript %D \stoptyping %D %D and then recall the graphics using \type{\useGNUPLOTgraphic[sin and cos][1]}. %D \macros %D {startGNUPLOTscript} %D %D \starttyping %D \startGNUPLOTscript{some name} %D plot sin(x) %D \stopGNUPLOTscript %D \stoptyping \def\startGNUPLOTscript {\bgroup\dosingleempty\dostartGNUPLOTscript} % \def\redostartGNUPLOTscript#1 % {\obeylines % \catcode`\%=\@@letter % \catcode`\|=\@@letter % \catcode`\$=\@@letter % \dodostartGNUPLOTscript{#1}% % %\dostartGNUPLOTscript[#2] % } % % \def\dostartGNUPLOTscript[#1]% % {\iffirstargument % \obeylines % \catcode`\%=\@@letter % \catcode`\|=\@@letter % \catcode`\$=\@@letter % \dodostartGNUPLOTscript{#1}% % \else % \redostartGNUPLOTscript % \fi % } \def\dostartGNUPLOTscript[#1]% {%\iffirstargument \dodostartGNUPLOTscript{#1}% %\else % \dodostartGNUPLOTscript %\fi } % gps:n:{name} = gnuplotscript : number : {name} - number of script with name {name} \long\def\dodostartGNUPLOTscript#1%#2\stopGNUPLOTscript {\doglobal\increment\GNUPLOTnumber \letgvalue{gps:n:#1}\GNUPLOTnumber % in case of LuaTeX we need to write the buffer into file explicitely \def\stopGNUPLOTscript{\egroup \ifx\savebuffer\undefined \else \savebuffer[gnuplot-\GNUPLOTnumber]\fi}% \dostartbuffer[gnuplot-\GNUPLOTnumber][startGNUPLOTscript][stopGNUPLOTscript]% } % When are the graphics processed/read? % % - \gps:n:{name} (gnuplot script:name:{name}) holds the number of gnuplot script; % - that number was defined if we created the plot using \startGNUPLOTscript{name} % - and most probably undefined if we only issued \processGNUPLOTfile[name][filename] % => if, at the time of issuing \processGNUPLOTfile[name][filename], \gps:n:{name} is not defined, % it should be defined at that time % - \gpe:{name}:{terminal} (gnuplot graphic executed:{name}:{terminal}) % is defined if we executed the command for that specific name and for that terminal % (once it will probably be 0 for a failed run and 1 for a successful one) % \useGNUPLOTgraphic[name] has three different ways of working: % - it can be called after \processGNUPLOTfile[name][filename] % which defined MP graphics that are now used % - it can be called for the first time under the current terminal % in that case it compiles the graphic and includes it % - it can be called for the second, third, ... time % in which case it only includes files without compiling it %D \macros %D {useGNUPLOTgraphic} % 5 ways of calling it: % - \useGNUPLOTgraphic{name} % - \useGNUPLOTgraphic[name] % - \useGNUPLOTgraphic[name][1,2,5] % - \useGNUPLOTgraphic[name][width=.8\textwidth] % - \useGNUPLOTgraphic[name][1,2,5][width=.8\textwidth] % this code takes care of reading arguments \def\useGNUPLOTgraphic {\dotripleempty\douseGNUPLOTgraphic} \def\douseGNUPLOTgraphic[#1][#2][#3]% {\doifelse{#3}{}{% % < 3 arguments \doifelse{#2}{}% % 1 argument % as in \useGNUPLOTgraphic[name] {\dodouseGNUPLOTgraphic[#1][][]}% % % as in \useGNUPLOTgraphic{name} % {\redouseGNUPLOTgraphic[][][]}% % 2 arguments {\doifassignmentelse{#2}% % as in \useGNUPLOTgraphic[name][width=.8\textwidth] {\dodouseGNUPLOTgraphic[#1][][#2]}% % as in \useGNUPLOTgraphic[name][1,2,5] {\dodouseGNUPLOTgraphic[#1][#2][]}% }% }% % as in \useGNUPLOTgraphic[name][1,2,5][width=.8\textwidth] {\dodouseGNUPLOTgraphic[#1][#2][#3]}% } \def\redouseGNUPLOTgraphic[#1][#2][#3]#4% {\dodouseGNUPLOTgraphic[#4][][]} % and this code actually does something with it %D \doifundefined {string} {...} %D \doifdefined {string} {...} %D \doifundefinedelse {string} {then ...} {else ...} %D \doifdefinedelse {string} {then ...} {else ...} % \doifGNUPLOTscriptdefined{name}{...} % if gnuplot script with {name} and current terminal has already been processed % \doifGNUPLOTscriptprocessed{name}{...} % \letGNUPLOTscriptprocessed[optional terminal]{name} signals that the gnuplot script named {name} % has already been processed with the current terminal % TODO: currently it is always defined to be one as soon as one tries to process it, % even if en error is produced; in future it would be helpful if it would be set to zero % if it was unsuccessfully executed; % that is needed, since scripts are processed only when one first asks for including the graphic \def\letGNUPLOTscriptprocessed {\dosingleempty\doletGNUPLOTscriptprocessed} %\def\doletGNUPLOTscriptprocessed[#1]#2% %{\letgvalue{gpe:#1:\@@GNUPLOTterminal}\plusone} \def\doletGNUPLOTscriptprocessed[#1]#2% {\iffirstargument % terminal has been specified \letgvalue{gpe:#2:#1}\plusone \else % no terminal specified - use the current one \letgvalue{gpe:#2:\@@GNUPLOTterminal}\plusone \fi} % Although that should preferably not happen, one might come to an idea of defining % a gnuplot script with the same name as already defined. % In that case the old script cannot be referenced any more, but we can still try % to do out best to make it work anyway. We have to do two things: % - claim that script with that name hasn't been defined yet, so that processing will happen again % (TODO: do it in a more elegant way for all known terminals) % - undefine any metapost graphics (TODO: I have no idea yet how it can be done) % % \resetGNUPLOTscriptprocessed{name} \def\resetGNUPLOTscriptprocessed#1% {\bgroup % claim that the script with {name} (#1) hasn't been processed with {terminal} (##1) yet \def\undefineGNUPLOTscriptforterminal##1{\letbeundefined{gpe:#1:##1}}% % TODO: the list of available terminals should be generated automatically \processcommalist[context,postscript,ps,eps,pdf,metapost,mp,png]\undefineGNUPLOTscriptforterminal \resetGNUPLOTgraphics{#1}% \egroup} % \resetGNUPLOTgraphics{name} undefines any gnuplot graphic defined with \startGNUPLOTgraphic[name][number] \def\resetGNUPLOTgraphics#1% {\doloop {\doifMPgraphicelse{gpg:#1:\recurselevel}% % TODO: be aware - @@MPG is low-level ConTeXt variable which might change without notice, % it would be better to call this \undefineMPgraphic{gpg:#1:\recurselevel} or something similar {\letbeundefined{@@MPGgpg:#1:\recurselevel}}% {\exitloop}}% \doloop {\doifdefinedelse{TKZp:#1:\recurselevel}% {\letbeundefined{TKZp:#1:\recurselevel}}% {\exitloop}}% }% % TODO: this can probably be done in a better way \def\doifGNUPLOTscriptprocessed#1#2% {\doifdefined {gpe:#1:\@@GNUPLOTterminal}{#2}} \def\doifGNUPLOTscriptprocessedelse#1#2#3% {\doifdefinedelse {gpe:#1:\@@GNUPLOTterminal}{#2}{#3}} \def\doifGNUPLOTscriptnotprocessed#1#2% {\doifundefined {gpe:#1:\@@GNUPLOTterminal}{#2}} \def\doifGNUPLOTscriptnotprocessedelse#1#2#3% {\doifundefinedelse{gpe:#1:\@@GNUPLOTterminal}{#2}{#3}} % private % \writeandprocessGNUPLOTscript{name} \def\writeandprocessGNUPLOTscript#1% % TODO: if gps:n:#1 (holding the script content) is not defined, % error or warning should be issued % % only process the script if it has been defined and not processed before for the current terminal {\doifdefined{gps:n:#1}{\doifGNUPLOTscriptnotprocessed{#1}{% % \gpe:{name}:{terminal} is defined %\setgvalue{gpe:#1:\@@GNUPLOTterminal}{#2} \letGNUPLOTscriptprocessed{#1}% % call to gnuplot and processing/converting the graphics is only needed in the first ConTeXt run \doifmode{*\v!first}{% (perhaps also: if files haven't changed) \bgroup % for TikZ we want to calculate character size, so that it gets printed % to inclusions with \@@GNUPLOToptions \calculateGNUPLOTcharsize % catcodes trickery & alike %\the\everyGNUPLOTscript % open file for writing \immediate\openout\scratchwrite=\GNUPLOTfile.plt % TODO: terminal-specific options (default or provided by the user) \immediate\write\scratchwrite{\letterhash\space Do not modify this file - all changes will be overwritten}% \immediate\write\scratchwrite{\letterhash\space Change \jobname.tex instead.}% \immediate\write\scratchwrite{set terminal \@@GNUPLOToutput\space\@@GNUPLOToptions}% % add common inclusions in scripts for multiple similar plots %\doifnotempty % {\GNUPLOTinclusions}{\immediate\write\scratchwrite{\GNUPLOTinclusions}}% % include common gnuplot 'inclusions' \immediate\write\scratchwrite{load '\jobname-gnuplot-inclusions.tmp'}% % output file \immediate\write\scratchwrite{set output "\@@GNUPLOTresult"}% % write main contents of the script, like "plot sin(x)" %\immediate\write\scratchwrite{\getvalue{gps:d:\GNUPLOTnumber}}% \immediate\write\scratchwrite{load '\GNUPLOTfile.tmp'}% \immediate\closeout\scratchwrite \egroup % TODO: % - check the state of write18 and warn the user if it's disabled, % otherwise just everyone will start complaining that the module doens't work % - check if execution was successful; possible pitfalls: % - gnuplot doesn't exist as a binary % - gnuplot doesn't support context terminal % or some other error in script which results in empty output file % % run gnuplot & execute the script that has just been written % \executesystemcommand{mtxrun --ifchanged=\GNUPLOTfile.plt\space % --direct \@@GNUPLOTprogram\space\GNUPLOTfile.plt}% \executesystemcommand{mtxrun --direct \@@GNUPLOTprogram\space\GNUPLOTfile.plt}% \writestatus{aaa}{mtxrun --direct \@@GNUPLOTprogram\space\GNUPLOTfile.plt}% \convertGNUPLOTgraphic }% % for ConTeXt terminal only - read the result \doif{\@@GNUPLOTterminal}{context}{\processGNUPLOTfile[#1][\@@GNUPLOTresult]}% \doif{\@@GNUPLOTterminal}{tikz} {\processGNUPLOTfile[#1][\@@GNUPLOTresult]}% }}} % \dodouseGNUPLOTgraphic[name][numbers][options] \def\dodouseGNUPLOTgraphic[#1][#2][#3]% {\bgroup \doifdefinedelse{gps:n:#1} {\edef\GNUPLOTnumber{\getvalue{gps:n:#1}}% \edef\GNUPLOTfile {\jobname-gnuplot-\GNUPLOTnumber}% \writeandprocessGNUPLOTscript{#1}% % "ctxtools --purge" should delete the gnuplot script and other intermediate files % (but it seems that they are deleted automatically already; preferred or not?) % \registertempfile{\GNUPLOTfile.plt} % \registertempfile{\@@GNUPLOTresult} % \registertempfile{\@@GNUPLOTfinalresult} \doifelse{\@@GNUPLOTterminal}{context}% % for ConTeXt terminal only {\doifelse{#2}{}% % if no explicit figure number was specified, include all the figures {\doloop {\doifMPgraphicelse{gpg:#1:\recurselevel}% {\scale[#3]{\reuseMPgraphic{gpg:#1:\recurselevel}}}% {\exitloop}}}% % if numbers were specified, include the figures specified in the list only {\begingroup \def\useGNUPLOTgraphicN##1{\doifMPgraphicelse {gpg:#1:##1}% {\scale[#3]{\reuseMPgraphic{gpg:#1:##1}}}% % if graphic doesn't exist: draw a dummy frame instead and warn the user {\scale[#3]{\framed[frame=on,width=5in,height=3in,align={middle,lohi}]{GNUPLOT graphic #1, Nr. ##1 doesn't exist}}}}% \processcommalist[#2]\useGNUPLOTgraphicN \endgroup }% }{% % for TikZ terminal only \doifelse{\@@GNUPLOTterminal}{tikz}% {\doifelse{#2}{}% % if no explicit figure number was specified, include all the figures {\doloop {\doifdefinedelse{TKZp:#1:\recurselevel}% {\scale[#3]{\getvalue{TKZp:#1:\recurselevel}}}% {\exitloop}}}% % if numbers were specified, include the figures specified in the list only {\begingroup \def\useGNUPLOTgraphicN##1{\doifdefinedelse {TKZp:#1:##1}% {\scale[#3]{\getvalue{TKZp:#1:##1}}}% % if graphic doesn't exist: draw a dummy frame instead and warn the user {\scale[#3]{\framed[frame=on,width=5in,height=3in,align={middle,lohi}]{GNUPLOT graphic #1, Nr. ##1 doesn't exist}}}}% \processcommalist[#2]\useGNUPLOTgraphicN \endgroup }% }% % for all the other terminals % TODO: add more safety switches (if pages don't exist for example) {\doifelse{#2}{}% % if no explicite figure number was specified, include all the pages % TODO: properly handle METAPOST & PNG (only works for (E)PS & PDF) !!! {\getfiguredimensions[\@@GNUPLOTfinalresult]% \dorecurse{\noffigurepages}{\externalfigure[\@@GNUPLOTfinalresult][page=\recurselevel,#3]}}% % if numbers were specified, include the pages specified in the list only {\begingroup \def\useGNUPLOTgraphicN##1{\externalfigure[\@@GNUPLOTfinalresult][page=##1,#3]}% \processcommalist[#2]\useGNUPLOTgraphicN \endgroup }% }}% }% % else part - in case that graphic gets included with \processGNUPLOTfile[name][file] {\doifelse{\@@GNUPLOTterminal}{context} % TODO: this part has been literally copied from above; create a subroutine instead {\doifelse{#2}{}% % if no explicit figure number was specified, include all the figures {\doloop {\doifMPgraphicelse{gpg:#1:\recurselevel}% {\scale[#3]{\reuseMPgraphic{gpg:#1:\recurselevel}}}% {\exitloop}}}% % if numbers were specified, include the figures specified in the list only {\begingroup \def\useGNUPLOTgraphicN##1{\doifMPgraphicelse {gpg:#1:##1}% {\scale[#3]{\reuseMPgraphic{gpg:#1:##1}}}% % if graphic doesn't exist: draw a dummy frame instead and warn the user {\scale[#3]{\framed[frame=on,width=5in,height=3in,align={middle,lohi}]{GNUPLOT graphic #1, Nr. ##1 doesn't exist}}}}% \processcommalist[#2]\useGNUPLOTgraphicN \endgroup }% }% {\message{The gnuplot graphic #1 has not been defined.}}}% \egroup} %D \macros %D {setupGNUPLOT} \def\setupGNUPLOT % {\dodoubleempty\getparameters[@@GNUPLOT]} {\dosingleargument\dosetupGNUPLOT} \def\dosetupGNUPLOT[#1]% {\getparameters[@@GNUPLOT][#1]% % define all the necessary points according to the option "pointset" % % XXX: no idea why this is needed, but otherwise it complains that @@GNUPLOTpointset is undefined \edef\currentGNUPLOTpointset{\@@GNUPLOTpointset}% % \gp:num:pointswithtex is passed to metapost, so that it knows % how many points are defined and chooses the proper point % form a set of the defined ones % % for safety reasons define \gp:num:pointswithtex to be equal to 1 (it can only increase later), otherwise: % - (something mod 0) won't work % - if conversion is not defined, the number will retain its old value (not desirable) \edef\gp:num:pointswithtex{1}% \doloop{\doifelseconversionnumber{\@@GNUPLOTpointset}{\recurselevel}% {\edef\gp:num:pointswithtex{\recurselevel}}% {\exitloop}}% % in case of TikZ terminal we have to generate the needed style files first \doif{\@@GNUPLOTterminal}{tikz} {\executesystemcommand{gnuplot -e "set term tikz context createstyle"}\usemodule[gnuplot-lua-tikz]} % TODO: % - issue a warning if user wants to use points with TeX, % but pointset= is undefined (if the first point doesn't exist) % - no idea what happens if conversion is infinite, % so try to stop at some reasonable value (100?) % - current implementation redefines the points even if only terminal type % has been set to some other value (which is a stupid approach, but I % wanted to have a working version first and will consider efficiency later) % - it may be that the old points remain defined if conversion changes % (perhaps they should be undefined again?) } % Hans has written this piece of code, but: % - "start" and "/MIN" caused problems % - pgnuplot is not much more "portable" than gnuplot % best thing to do is to create a "gnuplot.bat" somewhere in PATH % %\def\processGNUPLOTscript % {\doifelse\operatingsystem{mswin} % {\executesystemcommand{start /MIN pgnuplot \GNUPLOTfile.plt}} % start is needed else gp fails % {\executesystemcommand{gnuplot \GNUPLOTfile.plt}}} %\def\processGNUPLOTscript % {\executesystemcommand{gnuplot \GNUPLOTfile.plt}} % TODO: check if write18 is enabled; if not, issue a command and warn the user that running the module might be pointless or that he/she has to run gnuplot on the produced files manually \def\convertGNUPLOTgraphic {\doifsomething\@@GNUPLOThandle{\writestatus{conversion}{\@@GNUPLOThandle}\executesystemcommand{\@@GNUPLOThandle}}} %D \macros %D {processGNUPLOTfile} %D It's needed to input a file resulting from a gnuplot run (with ConTeXt terminal). %D It reads the file and "saves" the metapost graphics defined in that file, %D so that they can be used with \usegnuplotgraphic (low level: \reuseMPgraphic) later %D % \processGNUPLOTfile[NAME][filename] \def\processGNUPLOTfile {\dodoubleargument\doprocessGNUPLOTfile} \def\doprocessGNUPLOTfile[#1][#2]% {\bgroup % for ConTeXt teminal %-------------------- % we first define two commands: \startGNUPLOTgraphic & \stopGNUPLOTgraphic to read the files in; % files that gnuplot creates in non-standalone mode look approximately like this: % % \startGNUPLOTgraphic[1] % ... metapost commands to draw the graph ... % \stopGNUPLOTgraphic % \startGNUPLOTgraphic[2] % ... metapost commands to draw the graph ... % \stopGNUPLOTgraphic % ... % % while reading the file in, metapost graphics named "gpg:{name}:{number}" are defined % % (we might need some additional arguments later on, but for now the figure number should suffice) \def\startGNUPLOTgraphic {%\obeyMPlines % <- no longer a problem \def\obeyedline{}% <- thanks to this \dosingleargument\dostartGNUPLOTgraphic}% \long\def\dostartGNUPLOTgraphic[##1]##2\stopGNUPLOTgraphic {\startreusableMPgraphic{gpg:#1:##1}##2\stopreusableMPgraphic}% %------------------ % for TikZ terminal %------------------ \newcounter\tikzGNUPLOTnumber \let\normalstarttikzpicture=\starttikzpicture \let\normalstoptikzpicture=\stoptikzpicture \long\def\starttikzpicture##1\stoptikzpicture% {\increment\tikzGNUPLOTnumber % \long\setgvalue{TKZp:#1:\tikzGNUPLOTnumber}{##1}} \long\setgvalue{TKZp:#1:\tikzGNUPLOTnumber}{\hbox{\starttikzpicture##1\stoptikzpicture}}} %--------- % for both %--------- % input the file % TODO: error / warning if the files doesn't exist \readlocfile{#2}{}{}% the third argument should be: if file not found % this file is known % TODO \letgvalue{gpf:#1}\plusone \egroup } %D \macros %D {startGNUPLOTpage} %D %D Used for standalone \GNUPLOT\ figures & written out by gnuplot in standalone mode. %D %D Instead of having to \type{\useGNUPLOTgraphic}, a figure is inserted directly using %D \type{\startMPpage ... }\type{\stopMPpage}. %D %D A high-level command is provided if some more advance features will %D be needed in the future and to be able to ensure backward compatibility. %D We need to preserve line breaks, otherwise metapost runs into troubles for longer input. \def\startGNUPLOTpage {\begingroup\dostartGNUPLOTpage} \long\def\dostartGNUPLOTpage#1\stopGNUPLOTpage {\endgroup\startMPpage#1\stopMPpage} % TODO: use a separate instance for MKIV % % \defineMPinstance[gnuplot] % \startTEXpage\startMPcode{gnuplot} % \stopMPcode\stopTEXpage % TODO: currently, the following definitions are used, % but the ones below would be preferred \def\defineGNUPLOThandle#1#2#3#4#5#6% name; output; suffix; conversion-method; gnuplot's result; final result {\setvalue{@@GNUPLOT-#1}{{#2}{#3}{#4}{#5}{#6}}} \def\@@GNUPLOToutput{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}51} \def\@@GNUPLOTsuffix{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}52} \def\@@GNUPLOThandle{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}53} \def\@@GNUPLOTresult{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}54} \def\@@GNUPLOTfinalresult{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTterminal}55} % name "set term" suffix conversion (system command) gnuplot's result final result % (suffix is probably not needed any more since full names were introduced) \defineGNUPLOThandle {postscript}{postscript color}{ps}{mtxrun pstopdf \GNUPLOTfile-ps.ps} {\GNUPLOTfile-ps.ps}{\GNUPLOTfile-ps.pdf} \defineGNUPLOThandle {ps}{postscript color}{ps}{mtxrun pstopdf -dAutoRotatePages=/PageByPage \GNUPLOTfile-ps.ps} {\GNUPLOTfile-ps.ps}{\GNUPLOTfile-ps.pdf} \defineGNUPLOThandle {eps}{postscript color eps}{ps}{mtxrun pstopdf -dEPSCrop \GNUPLOTfile-eps.eps} {\GNUPLOTfile-eps.eps}{\GNUPLOTfile-eps.pdf} \defineGNUPLOThandle {pdf}{pdf}{pdf}{} {\GNUPLOTfile-pdf.pdf}{\GNUPLOTfile-pdf.pdf} \defineGNUPLOThandle {pdfcairo}{pdfcairo}{pdf}{} {\GNUPLOTfile-pdfcairo.pdf}{\GNUPLOTfile-pdfcairo.pdf} \defineGNUPLOThandle {metapost}{mp}{mp}{mtxrun mptopdf \GNUPLOTfile-mp.mp} {\GNUPLOTfile-mp.mp}{\GNUPLOTfile-mp-0.pdf} \defineGNUPLOThandle {mp}{mp}{mp}{mtxrun mptopdf \GNUPLOTfile-mp.mp} {\GNUPLOTfile-mp.mp}{\GNUPLOTfile-mp-0.pdf} \defineGNUPLOThandle {png}{png}{png}{} {\GNUPLOTfile-png.png}{\GNUPLOTfile-png.png} \defineGNUPLOThandle {pngcairo}{pngcairo}{png}{} {\GNUPLOTfile-pngcairo.png}{\GNUPLOTfile-pngcairo.png} \defineGNUPLOThandle {tikz}{tikz context createstyle size \@@GNUPLOT@term@tikz@width,\@@GNUPLOT@term@tikz@height\space charsize \the\GNUPLOThcharsize,\the\GNUPLOTvcharsize\space fontscale \@@GNUPLOT@term@tikz@fontscale }{tex}{} {\GNUPLOTfile-tikz.tex}{\GNUPLOTfile-tikz.tex} \defineGNUPLOThandle {context}{context size \@@GNUPLOT@term@context@width,\@@GNUPLOT@term@context@height\space fontscale \@@GNUPLOT@term@context@fontscale }{tex}{} {\GNUPLOTfile-ctx.tex}{\GNUPLOTfile-ctx.tex} % \doifnotempty{\@@GNUPLOT@term@context@fontscale}{fontscale \@@GNUPLOT@term@context@fontscale} \def\defineGNUPLOTterminal {\dodoubleargument\dodefineGNUPLOTterminal} \def\dodefineGNUPLOTterminal[#1][#2]% {\doifassignmentelse{#2}% % define a proper terminal {}% TODO % only define a synonym for that terminal {}% TODO } %D {\sl terminal}: argument to be passed to gnuplot in the form of "set term {\sl terminal}" %D {\sl defaultoptions}: options to be passed to gnuplot after terminal name: %D set term {\sl teminal} {\sl defaultoptions} %D not to be touched by users %D {\sl suffix}: filename suffix %D {\sl result}: the file to which gnuplot should output the result %D set output {\sl result} %D {\sl convertwith}: command for conversion from gnuplot-generated file to a file that can be read by \CONTEXT; may be empty %D {\sl finalresult}: file resulting after the conversion to be read by \CONTEXT %D \POSTSCRIPT\ terminal \defineGNUPLOTterminal [postscript] [terminal=postscript, defaultoptions=color, % TODO: only if \setupcolors[state=start] suffix=ps, result=\GNUPLOTfile-ps.ps, % TODO: -dAutoRotatePages=/PageByPage or remove that option from the default ones convertwith={mtxrun pstopdf \GNUPLOTfile-ps.ps}, finalresult=\GNUPLOTfile-ps.pdf, ] %D Define \type{ps} as a synonym for \type{postscript} terminal \defineGNUPLOTterminal [ps] [postscript] %D \EPS\ terminal: %D - same terminal as for \POSTSCRIPT, but slightly different handling \defineGNUPLOTterminal [eps] [terminal=postscript, defaultoptions=eps color, suffix=eps, result=\GNUPLOTfile-eps.eps, % TODO: -dEPSCrop convertwith={mtxrun pstopdf -dEPSCrop \GNUPLOTfile-eps.eps}, finalresult=\GNUPLOTfile-eps.pdf, ] %D \PDF\ terminal \defineGNUPLOTterminal [pdf] [terminal=pdf, defaultoptions=, suffix=pdf, result=\GNUPLOTfile-pdf.pdf, convertwith=, finalresult=\GNUPLOTfile-pdf.pdf, ] \defineGNUPLOTterminal [pdfcairo] [terminal=pdfcairo, defaultoptions=, suffix=pdf, result=\GNUPLOTfile-pdfcairo.pdf, convertwith=, finalresult=\GNUPLOTfile-pdfcairo.pdf, ] %D \METAPOST\ terminal: %D - deprecated: use the \CONTEXT\ terminal instead, %D which was built starting from the \METAPOST\ one, %D but improved in many aspects \defineGNUPLOTterminal [mp] [terminal=mp, defaultoptions=, suffix=mp, result=\GNUPLOTfile-mp.mp, convertwith={mtxrun mptopdf \GNUPLOTfile-mp.mp}, % TODO: support for multiple graphics % one would need a switch in mptopdf, so that a single pdf would be created instead of multiple ones finalresult=\GNUPLOTfile-mp-0.pdf, ] \defineGNUPLOTterminal [metapost] [mp] %D png terminal: %D - bitmap %D - no conversion needed %D - new version pretty advanced \defineGNUPLOTterminal [png] [terminal=png, defaultoptions=, suffix=png, result=\GNUPLOTfile-png.png, convertwith=, finalresult=\GNUPLOTfile-png.png, ] \defineGNUPLOTterminal [pngcairo] [terminal=pngcairo, defaultoptions=, suffix=png, result=\GNUPLOTfile-pngcairo.png, convertwith=, finalresult=\GNUPLOTfile-pngcairo.png, ] %D \CONTEXT\ terminal (native) \defineGNUPLOTterminal [context] [terminal=context, defaultoptions=, suffix=tex, result=\GNUPLOTfile-ctx.tex, convertwith=, finalresult=\GNUPLOTfile-ctx.tex, ] \def\setupGNUPLOTterminal {\dodoubleargument\dosetupGNUPLOTterminal} \def\dosetupGNUPLOTterminal[#1][#2]% {% TODO \getparameters[@@GNUPLOT@term@#1@][#2] % TODO: width & height % linejoin, linecap - I have to improve this !!! % \edef\gp:term:context:linejoin{\@@GNUPLOT@term@context@linejoin} % \edef\gp:term:context:linecap{\@@GNUPLOT@term@context@linecap} % dashed or solid lines? \doifsamestringelse{\@@GNUPLOT@term@context@dashed}{yes}% yes or no {\edef\@@GNUPLOT@term@context@is@dashed{true}}% {\edef\@@GNUPLOT@term@context@is@dashed{false}}% \doifsamestring{\@@GNUPLOT@term@context@width}{default} {\edef\@@GNUPLOT@term@context@width{5in}} \doifsamestring{\@@GNUPLOT@term@context@height}{default} {\edef\@@GNUPLOT@term@context@height{3in}} % {\edef\gp:term:context:dashed{true}}% % {\edef\gp:term:context:dashed{false}}% % % dashlength scale % \edef\gp:term:context:dashlength{\@@GNUPLOT@term@context@dashlength} % % linewidth scale % \edef\gp:term:context:linewidth{\@@GNUPLOT@term@context@linewidth} % \doifsamestringelse{\@@GNUPLOT@term@context@points}{metapost}% tex or metapost } \setupGNUPLOTterminal [context] [width=default, % *default* (5in) | height=default, % *default* (3in) | linejoin=rounded, % mitered | *rounded* | beveled linecap=butt, % *butt* | rounded (in gnuplot: round) | squared dashed=yes, % *yes* | no dashlength=1, % scaling factor for dash lengths linewidth=1, % scaling factor for line widths (1.0 means 0.4bp) fontscale=1, % scaling factor for text labels points=metapost] % *metapost* | tex (Should points be drawn with MetaPost or TeX?) \setupGNUPLOTterminal [tikz] [width=5in, % *5in* | default (todo) | height=3in, % *3in* | default (todo) | fontscale=1, % scaling factor for text labels ] % TODO: better scaling \defineconversion [gnuplot:pointset] [{\scale[scale=800]{\mathematics{+}}}, {\scale[scale=800]{\mathematics{\times}}}, \mathematics{\ast}, {\scale[scale=700]{\mathematics{\square}}}, {\scale[scale=700]{\mathematics{\blacksquare}}}, \mathematics{\circ}, \mathematics{\bullet}, {\scale[scale=900]{\mathematics{\triangleup}}}, {\scale[scale=900]{\mathematics{\blacktriangle}}}, {\scale[scale=900]{\mathematics{\triangledown}}}, {\scale[scale=900]{\mathematics{\blacktriangledown}}}, {\scale[scale=800]{\mathematics{\lozenge}}}, {\scale[scale=800]{\mathematics{\blacklozenge}}}%, % {\rotate[rotation=45]{\mathematics{\square}}}, % {\rotate[rotation=45]{\mathematics{\blacksquare}}}, ] %\defineGNUPLOTcolor[red] [r=1] %\defineGNUPLOTcolor[green] [g=1] %\defineGNUPLOTcolor[blue] [b=1] %\defineGNUPLOTcolor[magenta][r=1,b=1] %\defineGNUPLOTcolor[cyan] [g=1,b=1] %\defineGNUPLOTcolor[yellow] [r=1,g=1] %\defineGNUPLOTcolor[black] [s=0] %\defineGNUPLOTcolor[orange] [r=1,g=.3,b=0] %\defineGNUPLOTcolor[gray50] [s=.5] %\defineGNUPLOTcolors % [default] % from PostScript % [red,green,blue,magenta,cyan,yellow,black,orange,gray50] % TODO: testset is here only temporary & for testing \setupGNUPLOT[program=gnuplot,\c!terminal=context,\c!purge=\v!yes,\c!options=,\c!pointset=gnuplot:pointset] % colors=postscript %D Some additional typescripts which enable us using font "Arial" and "Helvetica" %D Pretend the font to be serif as well, so that no "ss" switch is needed \starttypescript [serif] [helvetica] [name] \definefontsynonym [Serif] [Helvetica] \definefontsynonym [SerifBold] [Helvetica-Bold] \definefontsynonym [SerifItalic] [Helvetica-Oblique] \definefontsynonym [SerifSlanted] [Helvetica-Oblique] \definefontsynonym [SerifBoldItalic] [Helvetica-BoldOblique] \definefontsynonym [SerifBoldSlanted] [Helvetica-BoldOblique] \definefontsynonym [SerifCaps] [Helvetica] \stoptypescript \starttypescript [gnuplot] \definetypeface [Helvetica] [rm] [serif] [helvetica] [default] \definetypeface [Helvetica] [ss] [sans] [helvetica] [default] \definetypeface [Arial] [rm] [serif] [helvetica] [default] \definetypeface [Arial] [ss] [sans] [helvetica] [default] \stoptypescript \usetypescript[gnuplot] \stopmodule \protect \doifnotmode{demo}{\endinput} \starttext \startGNUPLOTscript[exp] set key bottom set format x "%.1f" set format y "%.1f" set style fill solid 0.25 noborder plot [0:3] 2/sqrt(pi)*exp(-x**2) t '$\frac{2}{\sqrt{\pi}}e^{-x^2}$' with filledcurves x1 lt 3, erf(x) lc 3 lw 2 \stopGNUPLOTscript \useGNUPLOTgraphic[exp][width=.7\textwidth] \startGNUPLOTinclusions set title "trigonometry" \stopGNUPLOTinclusions \startGNUPLOTscript[sin] plot sin(x) \stopGNUPLOTscript \startGNUPLOTscript[cos] plot cos(x) \stopGNUPLOTscript \useGNUPLOTgraphic[sin] \endgraf \useGNUPLOTgraphic[cos] \endgraf \useGNUPLOTgraphic[cos] \endgraf \setupGNUPLOT[terminal=ps] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank %setupGNUPLOT[terminal=pdf] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank %setupGNUPLOT[terminal=png] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank \setupGNUPLOT[terminal=mp] \useGNUPLOTgraphic[sin][object=no,height=2cm,options=color] \blank \stoptext context-modules-20240428/tex/context/third/mathsets/0000755000175000017500000000000014613513620021316 5ustar hillehillecontext-modules-20240428/tex/context/third/mathsets/t-mathsets.tex0000644000175000017500000002775111546451110024142 0ustar hillehille%D \module %D [ file=t-mathsets, %D version=2011-01-22, %D title=Math Sets, %D subtitle=\CONTEXT\ port of \filename{braket.sty}, %D author={Aditya Mahajan}, %D email={adityam [at] umich [dot] edu}, %D date=\currentdate, %D license=Simplified BSD License] %D %M \usemodule[mathsets] %M \setuphead[section] [page=] %M \setupbodyfontenvironment[default][em=italic] %M \loadsetups[t-mathsets.xml] %D \section {Introduction} %D %D I write a lot of probability expressions which look like this. %D \startbuffer %D \startformula %D \mfunction{E} \left\{ \sum_{y} f(X,y) \,\middle|\, Z \right\} %D \stopformula %D \stopbuffer %D \getbuffer %D %D The usual way to input them is as follows %D \typebuffer %D %D We need to ensure that the delimiters and the {\em conditional} sign \type{|} %D scale properly, and the spacing around the conditional sign is correct. As a %D result, the input is markup heavy, and consequently difficult to read. %D %D In \LATEX, Donald Arseneau's \filename{braket.sty} can be used to input such %D expressions in a natural manner, and automatically takes care of the scaling %D of delimiters and the conditional signs. (The actual package only provides %D this functionality of bra and ket notation, hence the name, but can be easily %D extended to probability expressions also. This module is a partial port of %D \filename{braket.sty} to \CONTEXT. %D \section {Usage} %D %D To use this module add %D %D \starttyping %D \usemodule[mathsets] %D \stoptyping %D %D on the top of your file. This module defines one command %D \type{\definemathset} for defining new math-sets. The syntax of this command %D is: %D %D \setup{definemathset} %D %D The first argument is the name of the set to be defined. Thus, after %D %D \starttyping %D \definemathset[mathset] %D \stoptyping %D %D \type{\mathset} is available as a command. The second argument to %D \type{\definemathset} are optional assignments \type{text}, \type{left}, %D \type{middle}, \type{right}. For example, if we can use \type{text} to %D specify what comes at the beginning of the math-set. By default, %D \type{text=no} which causes no text to appear, but we can change that to any %D text that we want (Note that \type{\mfunction} tells \CONTEXT\ to use the %D current math text font) %D %D \startbuffer[EXP] %D \definemathset[EXP] [text=\mfunction{E}] %D \stopbuffer %D %D \typebuffer[EXP] \getbuffer[EXP] %D %D We can use \type{\EXP{X}} to get $\EXP{X}$ and \type{\EXP{X|Y}} to get %D $\EXP{X|Y}$. Scaling of the delimiters and conditional sign are take care %D automatically. For example %D %D \startbuffer %D \startformula %D \EXP{\sum_y f(X,y) | Z } %D \stopformula %D \stopbuffer %D %D \typebuffer %D %D gives %D %D \getbuffer %D %D Compare the above input with the one used in the first example. %D %D By default, the contents of the set are surrounded by curly brackets (or %D braces); we can change them by using \type{left} and \type{right} keys. For %D example. %D %D \startbuffer[PR] %D \definemathset[PR] [text={\mfunction{Pr}},left=(,right=)] %D \stopbuffer %D \startbuffer %D \startformula %D \EXP{ \sum_y f(X,y) | Z = z } = \sum_{x,y} \PR{x,y | Z=z} %D \stopformula %D \stopbuffer %D %D \typebuffer[PR] \typebuffer %D %D gives %D %D \getbuffer[PR] \getbuffer %D %D We also provide a mechanism for changing the conditional bar using the %D \type{middle} key, although I am not sure if this is needed by anyone. For %D example, consider the following contrived example %D %D \startbuffer %D \definemathset[VAR][text={\mfunction{Var}}, left=(, right=), middle=\Vert] %D \startformula %D \VAR{f(X,Y) | Y = y } %D \stopformula %D \stopbuffer %D %D \typebuffer %D %D gives %D %D \getbuffer %D %D This module also takes care of correct nesting of math-sets, so %D \startbuffer %D \startformula %D \EXP{ \sum_{Y} \EXP { \frac{1}{f(X)} | Y } } %D \stopformula %D \stopbuffer %D \typebuffer gives %D \getbuffer[EXP] \getbuffer %D %D If you do not want some \type{|} to be considered as conditional signs, nest %D them inside a group \type{{}}. For example, to get %D \startbuffer %D \startformula %D \mathset{ x\in {\bf R}^2 | 0<{|x|}<\frac {3}{16} } %D \stopformula %D \stopbuffer %D \getbuffer %D we typed %D \typebuffer %D %D We can also use limits after the command, for example: %D %D \startbuffer %D \startformula %D \EXP_X{F(X, Y) | Y = y } %D \stopformula %D \stopbuffer %D \typebuffer gives \getbuffer %D %D Only one set, \type{\mathset}, is predefined. It is relatively simple %D to define sets equivalent to those defined in \filename{braket.sty}. %D %D \startbuffer %D \definemathset[BRAKET][left=\langle,right=\rangle] %D %D \startformula %D \BRAKET{ \phi | \frac{\partial^2}{\partial t^2} | \psi } %D \stopformula %D \stopbuffer %D \typebuffer \getbuffer %D \section {Implementation} %D %D Most of the ideas are simply a \CONTEXT ified version of the code in %D \filename{braket.sty}. I mostly used \filename{bracket.sty} to define %D commands for probability and expectation. So, I have also added the %D option of declaring such operators using \type{text=no} option for %D \type|\definemathset|. \writestatus {loading} {ConTeXt Math Sets Module} \startmodule[mathsets] \unprotect %D Since two letter codes are reserved for system modules, and \CONTEXT\ %D seems to be running out of those, I choose a more verbose variable to %D store options. \definesystemvariable {mathset} % Math Set %D \macros{setupmathset} %D To specify the default values of text, left, middle, and right delimiters \def\setupmathset {\dosingleargument\getparameters[\??mathset]} %D \macros %D {definemathset} %D %D To define a new math set. \def\definemathset {\dodoubleargument\dodefinemathset} %D Now we define internal macros to take care of the formatting \let\currentmathset\empty \let\currentmathsetgrouplevel\empty \def\mathsetmiddle {\ifnum\currentmathsetgrouplevel=\currentgrouplevel \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi {\egroup\,\middle\mathsetparameter\c!middle\,\bgroup} {\mathsetparameter\c!middle}} \def\mathsetparameter#1% {\executeifdefined{\??mathset\currentmathset#1}{\executeifdefined{\??mathset#1}\empty}} \def\dodefinemathset[#1][#2]% {\getparameters[\??mathset#1][#2] \setvalue{#1}{\dododefinemathset[#1]}} %D Since \type{|} is already active, we do not have to make it active %D again. \def\dododefinemathset[#1]% {\begingroup \def\currentmathset{#1} \edef\currentmathsetgrouplevel{\the\numexpr\currentgrouplevel+2\relax} % Not here, else messes subscripts % \mathcode`\|32768 % \let|\mathsetmiddle \doifelsenothing{\mathsetparameter\c!text} {\dodododefinemathset!notext} {\doifelse{\mathsetparameter\c!text}{\v!no} {\dodododefinemathset!notext} {\docapturemathoplimits\dodododefinemathset!text}}} \def\setmathmiddle {\mathcode`\|32768 \let|\mathsetmiddle} %D \type|\docapturemathoplimits| is to capture limits that may follow %D the text command. This allows the following to work %D %D \startbuffer %D \startformula %D \PR^{f,g} {f(X) | g(Y)} %D \stopformula %D \stopbuffer %D %D \typebuffer %D %D \getbuffer[PR] \getbuffer %D We need to be a bit careful not to activate \type{|} to soon, as it can also %D occur in sub- and superscripts. For example %D \startbuffer %D \startformula %D \EXP_{X|Y}{f(X) | Y = y} %D \stopformula %D \stopbuffer %D %D \typebuffer %D %D gives %D %D \getbuffer[EXP] \getbuffer \def\dodododefinemathset!notext#1% {\setmathmiddle \mathopen{}\left\mathsetparameter\c!left {#1}% \right\mathsetparameter\c!right\mathclose{}% \endgroup} %D TODO. Keep the \type|\nolimits| to be configurable. \def\dodododefinemathset!text#1#2% {\mathop{\kern\zeropoint\mathsetparameter\c!text}\nolimits#1% \setmathmiddle \left\mathsetparameter\c!left {#2}% \right\mathsetparameter\c!right% \endgroup} %D The extra group in the definition of \type{dodododefinemathset!} is %D so that such expressions turn out correct %D \getbuffer[EXP] %D \startformula %D \EXP{ \left(\frac {a}{b}\right) | %D \left( \frac{a} {\frac{b}{\sum c}} \right) } %D \stopformula %D The \type{\left} and \type{\right} generate a math atom of type inner, %D while for math sets, we want a math math open atom. To see the difference, %D consider %D %D \startbuffer %D \startformula %D 2\left(\frac {3}{4} \right) \qquad \hbox{ vs } \qquad %D 2\biggl( \frac {3}{4} \biggr) %D \stopformula %D %D and %D %D \startformula %D \Pr\left(\frac {3}{4} \right) \qquad \hbox{ vs } \qquad %D \Pr\biggl( \frac {3}{4} \biggr) %D \stopformula %D \stopbuffer %D \typebuffer %D %D which gives (notice the spacing before the parenthesis) %D %D \getbuffer %D %D I will assume that if \type{text} is something, then %D the default behaviour is desirable, if \type{text} is empty, then I add %D \type{\mathopen} and \type{\mathclose}. Using \type{\mathopen} to correct %D the spacing is due to Frank Mittelbach, see %D \hyphenatedurl{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3853} %D %D Mathset module ensures that we get the correct spacing in both cases %D \startbuffer %D \definemathset[SET][left=(,right=)] %D \startformula %D 2\SET{\frac{3}{4}} \qquad \hbox{ and } \qquad %D \PR{ \frac{3}{4} } %D \stopformula %D \stopbuffer %D \getbuffer[PR] \getbuffer which was typed as \typebuffer %D %D Also, if its argument is a single character, \type{\mathop} centers it to %D with respect to the math||axis. Compare the outputs of %D %D \startbuffer %D \ruledhbox{$\mathop{y}\nolimits_x\left\{A\,\middle|\,B\right\}$} %D \ruledhbox{$\mathop{\kern\zeropoint y}\nolimits_x\left\{A\,\middle|\,B\right\}$} %D \stopbuffer %D %D \typebuffer %D \getbuffer %D %D I have added a \type{\kern\zeropoint} to prevent that. %D \macros %D {docapturemathoplimits} %D %D The next macro captures math limits. This should probably go to some %D general purpose module. There are three different valid inputs %D \startitemize[n,packed] %D \item An operator with neither subscript nor superscript. %D \item An operator with one subscript or superscript. %D \item An operator with both subscript and superscript. %D \stopitemize %D So we scan for four arguments, to capture the following situations %D \startitemize[packed] %D \item \type|_{sub}^{sup}| %D \item \type|^{sup}_{sub}| %D \item \type|_{sub}| %D \item \type|^{sup}| %D \item \type|| %D \stopitemize \def\docapturemathoplimits#1% {\doifnextcharelse _% {\dodocapturemathoplimits{#1}} {\doifnextcharelse ^% {\dodocapturemathoplimits{#1}} {#1{}}}} \def\dodocapturemathoplimits#1#2#3% {\doifnextcharelse _% {\redocapturemathoplimits{#1}{#2}{#3}} {\doifnextcharelse ^% {\redocapturemathoplimits{#1}{#2}{#3}} {#1{#2{#3}}}}} \def\redocapturemathoplimits#1#2#3#4#5% {#1{#2{#3}#4{#5}}} \setupmathset [ \c!left={\{}, \c!right={\}}, \c!middle=\vert, \c!text=no,] \definemathset[mathset] %D \section {Change log} %D %D \startitemize[n, reverse][headstyle=bold] %D %D \head \date[d=22,m=1,y=2011] %D %D Changed license to BSD %D %D \head \date[d=6,m=12,y=2008] %D %D Defined a new macro \type{setmathmiddle}. Now \type{|} is made active after %D the subscripts, so that things still work when \type{|} is used in the %D subscripts. %D %D \head \date[d=3,m=7,y=2008] %D %D Added \type{text=no} option, included an interface file, and cleaned up the %D documentation for \TEX live 2008. %D %D \head \date[d=17,m=6,y=2007] %D %D Added \type|\docapturemathoplimits| macro. This prevents a %D serious bug in the previous version, due to which things like %D \type{\mathset_{...}} did not work. %D %D \head \date[d=11,m=4,y=2007] %D %D This version provides some fine tuning of how the sets are displayed %D by working around two mis|-|features of \TEX\ math: \type|\left| %D \unknown \type|\right| always create a math inner atom and %D \type|\mathop| centers its argument if the argument is a single %D letter. %D %D \head \date[d=25,m=2,y=2007] %D %D First version of the module. %D %D \stopitemize \protect \stopmodule context-modules-20240428/tex/context/third/sudoku/0000755000175000017500000000000014613513621021001 5ustar hillehillecontext-modules-20240428/tex/context/third/sudoku/t-sudoku.lua0000644000175000017500000011065714437166222023276 0ustar hillehilleif not modules then modules = { } end modules ['t-sudoku'] = { version = "2023-05-15", comment = "Sudokus for ConTeXt", author = "Jairo A. del Rio", copyright = "Jairo A. del Rio", license = "MIT License" } -- Sources: -- https://norvig.com/sudoku.html -- https://naokishibuya.medium.com/peter-norvigs-sudoku-solver-25779bb349ce -- https://gist.github.com/neilalbrock/894520 local table, math, io = table, math, io local ipairs, pairs, tostring = ipairs, pairs, tostring local floor, ceil, random = math.floor, math.ceil, math.random local insert, concat, sort = table.insert, table.concat, table.sort -- ConTeXt goodies local context, buffers, inferfaces = context, buffers, interfaces local getcontent = buffers.getcontent local implement = interfaces.implement -- Take a look for definitions -- https://source.contextgarden.net/tex/context/base/mkiv/l-table.lua -- https://source.contextgarden.net/tex/context/base/mkiv/l-io.lua local contains, copy, unique = table.contains, table.copy, table.unique local loaddata = io.loaddata local rows = {"A", "B", "C", "D", "E", "F", "G", "H", "I"} local columns = {"1", "2", "3", "4", "5", "6", "7", "8", "9"} local rowsquare = { {"A", "B", "C"}, {"D", "E", "F"}, {"G", "H", "I"} } local columnsquare = { {"1", "2", "3"}, {"4", "5", "6"}, {"7", "8", "9"} } local digits = '123456789' -- Helper functions -- F#ck Python local shuffle, string_to_table shuffle = function(t) for i = #t, 2, -1 do local j = random(i) t[i], t[j] = t[j], t[i] end return t end string_to_table = function(s) local result = {} s = s:gsub("[.%d]", function(x) insert(result, x == "." and x or tostring(floor(x))) end) return result end -- Data local squares, units squares = { "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9", "H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8", "I9" } units = { ['A1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['A2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['A3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['A4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['A5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['A6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['A7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['A8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['A9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['B1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['B2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['B3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['B4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['B5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['B6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['B7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['B8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['B9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['C1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['C2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['C3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'} }, ['C4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['C5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['C6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A4', 'A5', 'A6', 'B4', 'B5', 'B6', 'C4', 'C5', 'C6'} }, ['C7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['C8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['C9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9'}, {'A7', 'A8', 'A9', 'B7', 'B8', 'B9', 'C7', 'C8', 'C9'} }, ['D1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['D2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['D3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['D4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['D5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['D6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['D7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['D8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['D9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['E1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['E2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['E3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['E4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['E5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['E6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['E7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['E8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['E9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['F1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['F2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['F3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D1', 'D2', 'D3', 'E1', 'E2', 'E3', 'F1', 'F2', 'F3'} }, ['F4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['F5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['F6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D4', 'D5', 'D6', 'E4', 'E5', 'E6', 'F4', 'F5', 'F6'} }, ['F7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['F8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['F9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9'}, {'D7', 'D8', 'D9', 'E7', 'E8', 'E9', 'F7', 'F8', 'F9'} }, ['G1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['G2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['G3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['G4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['G5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['G6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['G7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} }, ['G8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} }, ['G9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} }, ['H1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['H2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['H3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['H4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['H5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['H6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['H7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} }, ['H8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} }, ['H9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} }, ['I1'] = { {'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['I2'] = { {'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['I3'] = { {'A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3', 'I3'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G1', 'G2', 'G3', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3'} }, ['I4'] = { {'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['I5'] = { {'A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5', 'I5'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['I6'] = { {'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G4', 'G5', 'G6', 'H4', 'H5', 'H6', 'I4', 'I5', 'I6'} }, ['I7'] = { {'A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7', 'I7'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} }, ['I8'] = { {'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} }, ['I9'] = { {'A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9', 'I9'}, {'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'I8', 'I9'}, {'G7', 'G8', 'G9', 'H7', 'H8', 'H9', 'I7', 'I8', 'I9'} } } local peers = { ['A1'] = { 'C1', 'A5', 'A4', 'H1', 'A9', 'D1', 'E1', 'A7', 'A2', 'F1', 'B3', 'B1', 'G1', 'I1', 'C3', 'B2', 'A6', 'A3', 'A8', 'C2' }, ['A2'] = { 'C1', 'A5', 'A4', 'A9', 'I2', 'A7', 'F2', 'B3', 'H2', 'D2', 'B1', 'E2', 'C3', 'B2', 'A6', 'A1', 'A3', 'A8', 'C2', 'G2' }, ['A3'] = { 'C1', 'A5', 'A4', 'A9', 'I3', 'F3', 'D3', 'A7', 'A2', 'B3', 'B1', 'E3', 'C3', 'H3', 'B2', 'G3', 'A6', 'A1', 'A8', 'C2' }, ['A4'] = { 'A5', 'A9', 'H4', 'I4', 'A7', 'A2', 'A8', 'C4', 'B6', 'C5', 'C6', 'B5', 'A6', 'D4', 'G4', 'A1', 'E4', 'A3', 'F4', 'B4' }, ['A5'] = { 'A4', 'A9', 'H5', 'A7', 'A2', 'D5', 'C4', 'E5', 'F5', 'B6', 'C5', 'C6', 'B5', 'I5', 'A6', 'A1', 'A3', 'A8', 'G5', 'B4' }, ['A6'] = { 'A5', 'A4', 'A9', 'F6', 'G6', 'D6', 'I6', 'A2', 'A7', 'E6', 'H6', 'C4', 'B6', 'C6', 'C5', 'B5', 'A1', 'A3', 'A8', 'B4' }, ['A7'] = { 'B7', 'A4', 'A9', 'A5', 'C9', 'C7', 'E7', 'A2', 'F7', 'B9', 'D7', 'G7', 'I7', 'A6', 'C8', 'A1', 'A3', 'A8', 'B8', 'H7' }, ['A8'] = { 'A5', 'A4', 'A9', 'E8', 'F8', 'B7', 'C9', 'C7', 'A7', 'A2', 'B9', 'I8', 'H8', 'A6', 'C8', 'A1', 'A3', 'B8', 'G8', 'D8' }, ['A9'] = { 'A5', 'A4', 'B7', 'E9', 'C9', 'I9', 'C7', 'H9', 'A7', 'A2', 'F9', 'B9', 'G9', 'D9', 'A6', 'C8', 'A1', 'A3', 'A8', 'B8' }, ['B1'] = { 'C1', 'B7', 'H1', 'D1', 'E1', 'A2', 'F1', 'B3', 'B9', 'G1', 'B6', 'I1', 'C3', 'B2', 'B5', 'A1', 'A3', 'B8', 'C2', 'B4' }, ['B2'] = { 'C1', 'B7', 'I2', 'F2', 'A2', 'B3', 'H2', 'D2', 'B1', 'B9', 'B6', 'E2', 'C3', 'B5', 'A1', 'A3', 'B8', 'C2', 'G2', 'B4' }, ['B3'] = { 'C1', 'B7', 'I3', 'F3', 'D3', 'A2', 'B1', 'B9', 'B6', 'E3', 'C3', 'H3', 'B2', 'B5', 'G3', 'A1', 'A3', 'B8', 'C2', 'B4' }, ['B4'] = { 'B7', 'A4', 'A5', 'H4', 'I4', 'B3', 'C4', 'B1', 'B9', 'B6', 'C5', 'C6', 'B2', 'B5', 'A6', 'D4', 'G4', 'E4', 'B8', 'F4' }, ['B5'] = { 'A5', 'B7', 'A4', 'H5', 'B3', 'D5', 'C4', 'B1', 'B9', 'F5', 'E5', 'B6', 'C5', 'C6', 'B2', 'I5', 'A6', 'B8', 'G5', 'B4' }, ['B6'] = { 'B7', 'A4', 'A5', 'F6', 'G6', 'D6', 'I6', 'B3', 'E6', 'H6', 'C4', 'B1', 'B9', 'C6', 'C5', 'B2', 'B5', 'A6', 'B8', 'B4' }, ['B7'] = { 'A9', 'C9', 'C7', 'E7', 'A7', 'A8', 'B3', 'B1', 'B9', 'D7', 'G7', 'B6', 'I7', 'B2', 'B5', 'C8', 'F7', 'B8', 'H7', 'B4' }, ['B8'] = { 'B7', 'A9', 'E8', 'F8', 'C9', 'C7', 'A7', 'B3', 'B1', 'B9', 'B6', 'I8', 'B2', 'H8', 'B5', 'C8', 'A8', 'G8', 'D8', 'B4' }, ['B9'] = { 'B7', 'A9', 'E9', 'C9', 'I9', 'C7', 'H9', 'A7', 'B3', 'F9', 'B1', 'B6', 'G9', 'D9', 'B2', 'B5', 'C8', 'A8', 'B8', 'B4' }, ['C1'] = { 'H1', 'D1', 'E1', 'C9', 'C7', 'A2', 'F1', 'B3', 'B1', 'G1', 'C5', 'I1', 'C3', 'C6', 'B2', 'C8', 'A1', 'A3', 'C2', 'C4' }, ['C2'] = { 'C1', 'C9', 'C7', 'I2', 'F2', 'A2', 'B3', 'H2', 'D2', 'B1', 'E2', 'C5', 'C6', 'C3', 'B2', 'C8', 'A1', 'A3', 'G2', 'C4' }, ['C3'] = { 'C1', 'C9', 'I3', 'C7', 'F3', 'D3', 'A2', 'B3', 'B1', 'E3', 'C5', 'C6', 'H3', 'B2', 'G3', 'C8', 'A1', 'A3', 'C2', 'C4' }, ['C4'] = { 'C1', 'A5', 'A4', 'H4', 'C9', 'I4', 'C7', 'B6', 'C5', 'C6', 'C3', 'B5', 'A6', 'C8', 'D4', 'G4', 'E4', 'C2', 'F4', 'B4' }, ['C5'] = { 'C1', 'A5', 'A4', 'C9', 'H5', 'C7', 'D5', 'E5', 'F5', 'B4', 'B6', 'C6', 'C3', 'B5', 'I5', 'A6', 'C8', 'C2', 'G5', 'C4' }, ['C6'] = { 'C1', 'A5', 'A4', 'C9', 'C7', 'F6', 'G6', 'D6', 'I6', 'E6', 'H6', 'B4', 'B6', 'C5', 'C3', 'B5', 'A6', 'C8', 'C2', 'C4' }, ['C7'] = { 'C1', 'B7', 'A9', 'C9', 'E7', 'A7', 'A8', 'B9', 'D7', 'G7', 'C5', 'C6', 'C3', 'I7', 'C8', 'F7', 'B8', 'H7', 'C2', 'C4' }, ['C8'] = { 'C1', 'B7', 'A9', 'E8', 'F8', 'C9', 'C7', 'A7', 'B9', 'I8', 'C5', 'C3', 'C6', 'H8', 'A8', 'B8', 'G8', 'C2', 'D8', 'C4' }, ['C9'] = { 'C1', 'B7', 'A9', 'E9', 'I9', 'C7', 'H9', 'A7', 'F9', 'B9', 'G9', 'C5', 'C6', 'D9', 'C3', 'C8', 'A8', 'B8', 'C2', 'C4' }, ['D1'] = { 'C1', 'H1', 'E1', 'F3', 'D3', 'D6', 'F2', 'F1', 'D5', 'D2', 'B1', 'D7', 'G1', 'E2', 'E3', 'I1', 'D9', 'A1', 'D4', 'D8' }, ['D2'] = { 'D1', 'E1', 'F3', 'D3', 'I2', 'D6', 'F2', 'A2', 'F1', 'D5', 'H2', 'D7', 'E2', 'E3', 'D9', 'B2', 'D4', 'C2', 'G2', 'D8' }, ['D3'] = { 'D1', 'E1', 'I3', 'F3', 'D6', 'F2', 'F1', 'B3', 'D5', 'D2', 'D7', 'E2', 'E3', 'C3', 'H3', 'D9', 'G3', 'D4', 'A3', 'D8' }, ['D4'] = { 'A4', 'H4', 'D1', 'F4', 'I4', 'D3', 'F6', 'D6', 'D5', 'D2', 'E6', 'C4', 'D7', 'F5', 'E5', 'D9', 'G4', 'E4', 'D8', 'B4' }, ['D5'] = { 'A5', 'D1', 'F4', 'H5', 'D3', 'F6', 'D6', 'D2', 'E6', 'E5', 'F5', 'D7', 'C5', 'D9', 'B5', 'I5', 'D4', 'E4', 'G5', 'D8' }, ['D6'] = { 'D1', 'F4', 'D3', 'F6', 'G6', 'I6', 'D5', 'D2', 'E6', 'H6', 'D7', 'F5', 'E5', 'B6', 'C6', 'D9', 'A6', 'D4', 'E4', 'D8' }, ['D7'] = { 'B7', 'E8', 'F8', 'D1', 'E9', 'C7', 'D3', 'E7', 'A7', 'D6', 'D5', 'D2', 'F9', 'G7', 'D9', 'I7', 'D4', 'F7', 'H7', 'D8' }, ['D8'] = { 'E8', 'F8', 'D1', 'E9', 'D3', 'E7', 'D6', 'A8', 'D5', 'D2', 'F9', 'D7', 'I8', 'D9', 'H8', 'C8', 'D4', 'F7', 'B8', 'G8' }, ['D9'] = { 'A9', 'E8', 'F8', 'D1', 'E9', 'C9', 'I9', 'D3', 'E7', 'H9', 'D6', 'D5', 'D2', 'F9', 'B9', 'D7', 'G9', 'D4', 'F7', 'D8' }, ['E1'] = { 'C1', 'H1', 'E8', 'D1', 'E9', 'F3', 'D3', 'E7', 'F2', 'F1', 'D2', 'E6', 'B1', 'E5', 'G1', 'E2', 'E3', 'I1', 'A1', 'E4' }, ['E2'] = { 'E8', 'D1', 'E1', 'E9', 'F3', 'D3', 'E7', 'I2', 'F2', 'A2', 'F1', 'H2', 'D2', 'E6', 'E5', 'E3', 'B2', 'E4', 'C2', 'G2' }, ['E3'] = { 'E8', 'D1', 'E1', 'I3', 'E9', 'F3', 'D3', 'E7', 'F2', 'F1', 'B3', 'D2', 'E6', 'E5', 'E2', 'C3', 'H3', 'G3', 'A3', 'E4' }, ['E4'] = { 'A4', 'E8', 'H4', 'E1', 'E9', 'I4', 'E7', 'F6', 'D6', 'D5', 'E6', 'C4', 'E5', 'F5', 'E2', 'E3', 'D4', 'G4', 'F4', 'B4' }, ['E5'] = { 'A5', 'E8', 'E1', 'E9', 'H5', 'E7', 'F6', 'D6', 'D5', 'E6', 'F5', 'E2', 'E3', 'C5', 'B5', 'I5', 'D4', 'E4', 'G5', 'F4' }, ['E6'] = { 'E8', 'E1', 'E9', 'E7', 'F6', 'G6', 'D6', 'I6', 'D5', 'H6', 'E5', 'F5', 'B6', 'E2', 'E3', 'C6', 'A6', 'D4', 'E4', 'F4' }, ['E7'] = { 'B7', 'E8', 'F8', 'E1', 'E9', 'C7', 'A7', 'F9', 'E6', 'D7', 'E5', 'G7', 'E2', 'E3', 'D9', 'I7', 'E4', 'F7', 'H7', 'D8' }, ['E8'] = { 'F8', 'E1', 'E9', 'E7', 'A8', 'F9', 'E6', 'E5', 'D7', 'E2', 'E3', 'I8', 'D9', 'H8', 'C8', 'E4', 'F7', 'B8', 'G8', 'D8' }, ['E9'] = { 'A9', 'E8', 'F8', 'C9', 'E1', 'I9', 'E7', 'H9', 'F9', 'E6', 'B9', 'E5', 'D7', 'E2', 'G9', 'E3', 'D9', 'E4', 'F7', 'D8' }, ['F1'] = { 'C1', 'H1', 'F8', 'D1', 'E1', 'F3', 'D3', 'F6', 'F2', 'D2', 'F9', 'B1', 'G1', 'F5', 'E2', 'E3', 'I1', 'A1', 'F7', 'F4' }, ['F2'] = { 'F8', 'D1', 'E1', 'F3', 'D3', 'I2', 'F6', 'A2', 'F1', 'H2', 'F9', 'D2', 'F5', 'E2', 'E3', 'B2', 'F7', 'C2', 'G2', 'F4' }, ['F3'] = { 'F8', 'D1', 'E1', 'I3', 'D3', 'F6', 'F2', 'F1', 'B3', 'D2', 'F9', 'F5', 'E2', 'E3', 'C3', 'H3', 'G3', 'A3', 'F7', 'F4' }, ['F4'] = { 'A4', 'F8', 'H4', 'I4', 'F3', 'F6', 'D6', 'F2', 'F7', 'F1', 'D5', 'F9', 'E6', 'C4', 'E5', 'F5', 'D4', 'G4', 'E4', 'B4' }, ['F5'] = { 'A5', 'F8', 'H5', 'F3', 'F6', 'D6', 'F2', 'F1', 'D5', 'F9', 'E6', 'E5', 'C5', 'B5', 'I5', 'D4', 'E4', 'F7', 'G5', 'F4' }, ['F6'] = { 'F8', 'F3', 'G6', 'D6', 'F2', 'I6', 'F1', 'D5', 'F9', 'E6', 'H6', 'E5', 'F5', 'B6', 'C6', 'A6', 'D4', 'E4', 'F7', 'F4' }, ['F7'] = { 'B7', 'E8', 'F8', 'E9', 'F4', 'C7', 'F3', 'E7', 'F6', 'A7', 'F2', 'F1', 'F9', 'D7', 'F5', 'G7', 'D9', 'I7', 'H7', 'D8' }, ['F8'] = { 'E8', 'E9', 'F3', 'E7', 'F6', 'F2', 'F7', 'F1', 'F9', 'D7', 'F5', 'D8', 'I8', 'D9', 'H8', 'C8', 'A8', 'B8', 'G8', 'F4' }, ['F9'] = { 'A9', 'E8', 'F8', 'E9', 'C9', 'F4', 'I9', 'F3', 'E7', 'F6', 'H9', 'F2', 'F1', 'B9', 'D7', 'F5', 'G9', 'D9', 'F7', 'D8' }, ['G1'] = { 'C1', 'H1', 'D1', 'E1', 'I3', 'I2', 'G5', 'G6', 'F1', 'H2', 'B1', 'G7', 'G9', 'I1', 'H3', 'G3', 'A1', 'G4', 'G8', 'G2' }, ['G2'] = { 'H1', 'I3', 'I2', 'G5', 'G6', 'F2', 'A2', 'H2', 'D2', 'G1', 'G7', 'E2', 'G9', 'I1', 'H3', 'B2', 'G3', 'G4', 'G8', 'C2' }, ['G3'] = { 'H1', 'I3', 'F3', 'D3', 'I2', 'G5', 'G6', 'B3', 'H2', 'G1', 'G7', 'G9', 'E3', 'I1', 'C3', 'H3', 'G4', 'A3', 'G8', 'G2' }, ['G4'] = { 'A4', 'H4', 'I4', 'H5', 'G5', 'G6', 'I6', 'H6', 'C4', 'G1', 'G7', 'G9', 'G3', 'I5', 'D4', 'E4', 'G8', 'G2', 'F4', 'B4' }, ['G5'] = { 'A5', 'H4', 'I4', 'H5', 'G6', 'I6', 'D5', 'H6', 'G2', 'E5', 'F5', 'G1', 'G7', 'G9', 'C5', 'B5', 'G3', 'I5', 'G4', 'G8' }, ['G6'] = { 'H4', 'I4', 'H5', 'G5', 'F6', 'D6', 'I6', 'E6', 'H6', 'G1', 'G7', 'B6', 'G9', 'C6', 'G3', 'I5', 'A6', 'G4', 'G8', 'G2' }, ['G7'] = { 'B7', 'C7', 'I9', 'E7', 'G5', 'G6', 'H9', 'A7', 'G8', 'D7', 'G1', 'G9', 'I8', 'I7', 'H8', 'G3', 'G4', 'F7', 'H7', 'G2' }, ['G8'] = { 'E8', 'F8', 'I9', 'G5', 'H7', 'G6', 'H9', 'G1', 'G7', 'G9', 'I8', 'I7', 'H8', 'G3', 'C8', 'G4', 'A8', 'B8', 'G2', 'D8' }, ['G9'] = { 'A9', 'E9', 'C9', 'I9', 'H7', 'G6', 'H9', 'F9', 'B9', 'G2', 'G1', 'G7', 'I8', 'D9', 'I7', 'H8', 'G3', 'G4', 'G8', 'G5' }, ['H1'] = { 'C1', 'H4', 'D1', 'E1', 'I3', 'H5', 'I2', 'H9', 'F1', 'H2', 'H6', 'B1', 'G1', 'I1', 'H3', 'H8', 'G3', 'A1', 'H7', 'G2' }, ['H2'] = { 'H1', 'H4', 'I3', 'H5', 'I2', 'H9', 'F2', 'A2', 'D2', 'H6', 'G1', 'E2', 'I1', 'H3', 'H8', 'B2', 'G3', 'H7', 'C2', 'G2' }, ['H3'] = { 'H1', 'H4', 'I3', 'H5', 'F3', 'D3', 'I2', 'H9', 'B3', 'H2', 'H6', 'G1', 'E3', 'I1', 'C3', 'H8', 'G3', 'A3', 'H7', 'G2' }, ['H4'] = { 'A4', 'H1', 'I4', 'H5', 'G6', 'H9', 'I6', 'H2', 'H6', 'C4', 'H3', 'H8', 'I5', 'D4', 'G4', 'E4', 'H7', 'G5', 'F4', 'B4' }, ['H5'] = { 'A5', 'H1', 'H4', 'I4', 'G6', 'H9', 'I6', 'D5', 'H2', 'H6', 'E5', 'F5', 'C5', 'H3', 'H8', 'B5', 'I5', 'G4', 'H7', 'G5' }, ['H6'] = { 'H1', 'H4', 'I4', 'H5', 'F6', 'H9', 'D6', 'G6', 'I6', 'H2', 'E6', 'B6', 'C6', 'H3', 'H8', 'I5', 'A6', 'G4', 'H7', 'G5' }, ['H7'] = { 'B7', 'H1', 'H4', 'H5', 'C7', 'I9', 'E7', 'H9', 'A7', 'H2', 'H6', 'G8', 'D7', 'G7', 'G9', 'I8', 'I7', 'H3', 'H8', 'F7' }, ['H8'] = { 'H1', 'E8', 'F8', 'H4', 'H5', 'I9', 'H7', 'H9', 'H2', 'H6', 'G7', 'G9', 'I8', 'H3', 'I7', 'C8', 'A8', 'B8', 'G8', 'D8' }, ['H9'] = { 'A9', 'H1', 'H4', 'E9', 'C9', 'H5', 'I9', 'H2', 'F9', 'H6', 'B9', 'G8', 'G7', 'G9', 'I8', 'D9', 'H3', 'H8', 'I7', 'H7' }, ['I1'] = { 'C1', 'H1', 'D1', 'E1', 'I3', 'I4', 'I9', 'I2', 'I6', 'F1', 'H2', 'B1', 'G1', 'I8', 'I7', 'H3', 'G3', 'I5', 'A1', 'G2' }, ['I2'] = { 'H1', 'I3', 'I4', 'I9', 'I6', 'F2', 'A2', 'H2', 'D2', 'G1', 'E2', 'I8', 'I1', 'I7', 'H3', 'B2', 'G3', 'I5', 'C2', 'G2' }, ['I3'] = { 'H1', 'I4', 'I9', 'F3', 'D3', 'I2', 'I6', 'B3', 'H2', 'G1', 'E3', 'I8', 'I1', 'H3', 'I7', 'C3', 'G3', 'I5', 'A3', 'G2' }, ['I4'] = { 'A4', 'H4', 'I3', 'H5', 'I9', 'I2', 'G6', 'I6', 'H6', 'C4', 'I8', 'I1', 'I7', 'I5', 'D4', 'G4', 'E4', 'G5', 'F4', 'B4' }, ['I5'] = { 'A5', 'H4', 'I3', 'I4', 'H5', 'I9', 'I2', 'G6', 'I6', 'D5', 'H6', 'E5', 'F5', 'C5', 'I1', 'I8', 'I7', 'B5', 'G4', 'G5' }, ['I6'] = { 'H4', 'I3', 'I4', 'H5', 'I9', 'I2', 'F6', 'G6', 'D6', 'E6', 'H6', 'B6', 'C6', 'I1', 'I8', 'I7', 'I5', 'A6', 'G4', 'G5' }, ['I7'] = { 'B7', 'I3', 'I4', 'C7', 'I9', 'E7', 'I2', 'H9', 'A7', 'I6', 'G8', 'D7', 'G7', 'G9', 'I8', 'I1', 'H8', 'I5', 'F7', 'H7' }, ['I8'] = { 'E8', 'F8', 'I3', 'I4', 'I9', 'I2', 'H9', 'I6', 'G8', 'G7', 'G9', 'I1', 'I7', 'H8', 'I5', 'C8', 'A8', 'B8', 'H7', 'D8' }, ['I9'] = { 'A9', 'E9', 'C9', 'I4', 'I3', 'I2', 'H9', 'I6', 'F9', 'B9', 'G8', 'G7', 'G9', 'I8', 'I1', 'D9', 'I7', 'H8', 'I5', 'H7' } } local grid_chars, grid_values, parse_grid, assign, eliminate, solve, search, random_sudoku -- Input: a string representation -- Output: an association between squares and characters grid_values = function(grid) local result = {} local chars = string_to_table(grid) assert(#chars == 81, "Invalid grid") -- ipairs is necessary here for k, v in ipairs(squares) do result[v] = chars[k] end return result end -- Input: a table grid -- Output: return false if contradiction parse_grid = function(grid) local values = {} local gridvalues = grid_values(grid) -- Every square can be any digit for _, s in ipairs(squares) do values[s] = digits end for s, d in pairs(gridvalues) do if digits:find(d) and not assign(values, s, d) then return false end end return values end assign = function(values, s, d) -- Eliminate all the other values and propagate local result = true local other_values = string_to_table(values[s]:gsub(d,'')) for _, d2 in ipairs(other_values) do if not eliminate(values, s, d2) then result = false end end return result and values or false end eliminate = function(values, s, d) -- Eliminate d from values[s] if not values[s]:find(d) then return values --Already eliminated end values[s] = values[s]:gsub(d,'') -- 1. If a square s is reduced to one value d2, then eliminate d2 from the peers if #values[s] == 0 then return false elseif #values[s] == 1 then local check = true local d2 = values[s] for _, s2 in pairs(peers[s]) do if not eliminate(values, s2, values[s]) then check = false end end if not check then return false end end -- 2. If a unit u is reduced to only one place for a value d, then put it there for _, u in ipairs(units[s]) do local dplaces = {} for _, w in ipairs(u) do if values[w]:find(d) then insert(dplaces, w) end end if #dplaces == 0 then return false --contradiction elseif #dplaces == 1 then if not assign(values, dplaces[1], d) then return false end end end return values end solve = function(grid) return search(parse_grid(grid)) end search = function(values) local check = true local n = {} local s if not values then return false --Fail end for _, s in ipairs(squares) do if #values[s] ~= 1 then check = false end end if check then return values end --Solved! for _, x in ipairs(squares) do if #values[x] > 1 then insert(n, {#values[x], x}) end end sort(n, function(t1,t2) return t1[1] < t2[1] end) s = n[1][2] for _, d in ipairs(string_to_table(values[s])) do local result = search(assign(copy(values), s, d)) if result then return result end end return false end -- Unused until I find a handy way to interface with ConTeXt random_sudoku = function(N) local N = N or 17 local result = {} local values = {} for _, s in ipairs(squares) do values[s] = digits end for _, v in ipairs(shuffle(copy(squares))) do local r = random(#values[v]) if not assign(values, v, values[v]:sub(r, r)) then break end local ds = {} for _, s in ipairs(squares) do if #values[s] == 1 then insert(ds, values[s]) end end if #ds >= N and #unique(ds) >= 8 then for _, i in ipairs(rows) do for _, j in ipairs(columns) do insert(result, #values[i..j] == 1 and values[i..j] or "0") end end return concat(result) end end return random_sudoku(N) end -- ConTeXt functions local ctx_sudoku, ctx_solvesudoku, ctx_sudokufile, ctx_solvesudokufile, ctx_sudokubuffer, ctx_sudokusolvebuffer, ctx_randomsudoku, ctx_sudokufunction, ctx_typeset, ctx_error ctx_sudoku = function(grid, data) local ok, result = pcall(grid_values, grid) if ok then ctx_typeset(result, data) else ctx_error("a") -- Invalid sudoku end end ctx_sudokufile = function(file, data) local ok, result = pcall(grid_values, loaddata(file)) if ok then ctx_typeset(result, data) else ctx_error("b") -- "Invalid sudoku file" end end ctx_solvesudoku = function(grid, data) local ok, result = pcall(solve, grid) if ok then if result then ctx_typeset(result, data) else ctx_error("c") -- "Impossible to find a solution" end else ctx_error("a") -- "Invalid sudoku" end end ctx_sudokubuffer = function(buffer, data) local ok, result = pcall(grid_values, getcontent(buffer)) if ok then if result then ctx_typeset(result, data) else ctx_error("c") end else ctx_error("b") end end ctx_sudokusolvebuffer = function(buffer, data) local ok, result = pcall(solve, getcontent(buffer)) if ok then if result then ctx_typeset(result, data) else ctx_error("c") end else ctx_error("b") end end ctx_solvesudokufile = function(file, data) local ok, result = pcall(solve, loaddata(file)) if ok then if result then ctx_typeset(result, data) else ctx_error("c") -- "Impossible to find a solution" end else ctx_error("b") -- "Invalid sudoku file" end end ctx_error = function(nerror) local c = interfaces.constants local placeholder, label, command = c.placeholder, c.label, c.command c = context c.sudokuparameter(placeholder .. command, c.nested.sudokuparameter(placeholder .. label .. nerror) ) end local ctx_sudokufunctions = { sudoku = ctx_sudoku, sudokufile = ctx_sudokufile, sudokubuffer = ctx_sudokubuffer, sudokusolvebuffer = ctx_sudokusolvebuffer, solvesudoku = ctx_solvesudoku, solvesudokufile = ctx_solvesudokufile } ctx_sudokufunction = function(t) ctx_sudokufunctions[t.name](t.content, t) end ctx_randomsudoku = function(data) local n = tonumber(data.n) if n < 17 then ctx_error("d") return end local result = grid_values(random_sudoku(tonumber(n))) ctx_typeset(result, data) end ctx_typeset = function(grid, data) local alternatives = { {background = data.oddbackground, backgroundcolor = data.oddbackgroundcolor }, {background = data.evenbackground, backgroundcolor = data.evenbackgroundcolor} } for i, a in ipairs(rows) do context.bTR() for j, b in ipairs(columns) do local r = grid[a..b] context.bTD(alternatives[(ceil(i/3)+ceil(j/3))%2+1]) context(r == '0' and "" or r == '.' and "" or r) context.eTD() end context.eTR() end end --context.sudokuplaceholder = function(text) -- context.quitvmode() -- context.framed(context.nested.type(text)) --end implement{ name = "sudokufunction", arguments = {"hash"}, actions = ctx_sudokufunction } implement{ name = "randomsudoku", arguments = {"hash"}, actions = ctx_randomsudoku } context-modules-20240428/tex/context/third/sudoku/t-sudoku-test-02.txt0000644000175000017500000000015414432226052024507 0ustar hillehille000 000 620 106 230 040 900 600 001 200 400 803 090 000 010 708 009 004 600 005 008 020 048 905 045 000 000 context-modules-20240428/tex/context/third/sudoku/t-sudoku-test-03.txt0000644000175000017500000000013214432226052024504 0ustar hillehille043080250 600000000 000001094 900004070 000608000 010200003 820500000 000000005 034090710 context-modules-20240428/tex/context/third/sudoku/t-sudoku-test-01.txt0000644000175000017500000000020414432226052024502 0ustar hillehille003 010 008 000 400 030 870 003 020 010 009 605 300 867 002 906 500 040 020 900 074 090 006 000 500 070 100 context-modules-20240428/tex/context/third/sudoku/t-sudoku.mkvi0000644000175000017500000001542114437166222023454 0ustar hillehille%D \module %D [ file=t-sudoku, %D version=2023-06-03, %D title=\CONTEXT\ User Module, %D subtitle=Sudokus for ConTeXt, %D author=Jairo A. del Rio, %D date=\currentdate, %D copyright=Jairo A. del Rio, %D email=jairoadelrio6@gmail.com, %D license=MIT License] %C Copyright (c) 2021-2023 Jairo A. del Rio %C %C Permission is hereby granted, free of charge, to any person obtaining %C a copy of this software and associated documentation files (the %C "Software"), to deal in the Software without restriction, including %C without limitation the rights to use, copy, modify, merge, publish, %C distribute, sublicense, and/or sell copies of the Software, and to %C permit persons to whom the Software is furnished to do so, subject to %C the following conditions: %C %C The above copyright notice and this permission notice shall be %C included in all copies or substantial portions of the Software. %C %C THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, %C EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF %C MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. %C IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY %C CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, %C TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE %C SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. %D I'm not fond of sudokus. In fact, I seldom solve one or two in a row. %D However, they come in handy in puzzle books and existing packages are %D LaTeX or Python specific. Being so, a ConTeXt dedicated module is %D more comfortable and customizable. After all, ConTeXt is about control %D as Hans often says. \writestatus{loading}{Sudokus for ConTeXt} \writestatus{loading}{A Lua port of Peter Norvig's sudoku solver} \startmodule[sudoku] %D As always, Lua does the hard job \ctxloadluafile{t-sudoku} \unprotect %D \type{\definesudoku} is not really required \installnamespace {sudoku} \installsimplecommandhandler\????sudoku{sudoku}\????sudoku %D Some aliases \let\setupsudokus\setupsudoku %D Basic setups %D %D In order not to define new constants/variables, recycling existing %D ones looks better (trick learnt from Aditya Mahajan's modules). \setupsudokus [\c!size=1.5em, \c!align={\v!middle,\v!lohi}, \v!even\c!background=\v!color, \v!odd\c!background=\v!color, \v!even\c!backgroundcolor=white, \v!odd\c!backgroundcolor=gray, \c!n=42, \c!placeholder\c!label a=Invalid sudoku, \c!placeholder\c!label b=Invalid sudoku file, \c!placeholder\c!label c=Impossible to find a solution, \c!placeholder\c!command=\framed] %D A generic sudoku generator macro %D Yeah, I'm that lazy \unexpanded\def\sudokufunction_name{\dodoubleempty\sudokufunction_direct} %D Passing values to TABLE's is easier and unknown keys will be ignored. %D However, we need to enforce a square shape.Hence the need to passing %D values twice. \def\sudokufunction_direct[#name][#parameters]#content% {\begingroup% \ifsecondargument \setupTABLE[#parameters]% \setupsudokus[#parameters]% \fi \bTABLE [\c!align=\sudokuparameter\c!align, \c!width=\sudokuparameter\c!size, \c!height=\sudokuparameter\c!size]% \clf_sudokufunction [name =#name, content ={#content}, evenbackground =\sudokuparameter{\v!even\c!background}, oddbackground =\sudokuparameter{\v!odd\c!background}, evenbackgroundcolor =\sudokuparameter{\v!even\c!backgroundcolor}, oddbackgroundcolor =\sudokuparameter{\v!odd\c!backgroundcolor}] \eTABLE% \endgroup} %D Random sudokus \unexpanded\def\randomsudoku{\dosingleempty\randomsudoku_direct} \def\randomsudoku_direct[#parameters]% {\begingroup% \iffirstargument \setupTABLE[#parameters]% \setupsudokus[#parameters]% \fi \bTABLE [\c!align=\sudokuparameter\c!align, \c!width=\sudokuparameter\c!size, \c!height=\sudokuparameter\c!size]% \clf_randomsudoku [n =\sudokuparameter\c!n, evenbackground =\sudokuparameter{\v!even\c!background}, oddbackground =\sudokuparameter{\v!odd\c!background}, evenbackgroundcolor =\sudokuparameter{\v!even\c!backgroundcolor}, oddbackgroundcolor =\sudokuparameter{\v!odd\c!backgroundcolor}] \eTABLE% \endgroup} %D Sudoku macros \def\sudoku{\sudokufunction_name[sudoku]} \def\sudokufile{\sudokufunction_name[sudokufile]} \def\sudokubuffer{\sudokufunction_name[sudokubuffer]} \def\sudokusolvebuffer{\sudokufunction_name[sudokusolvebuffer]} \def\solvesudoku{\sudokufunction_name[solvesudoku]} \def\solvesudokufile{\sudokufunction_name[solvesudokufile]} %D More aliases \let\solvedsudoku\solvesudoku \let\solvedsudokufile\solvesudokufile \protect \stopmodule \continueifinputfile{t-sudoku.mkvi} %D Some examples \usecolors[svg] \setupsudokus[oddbackgroundcolor=paleturquoise,evenbackgroundcolor=aliceblue] \starttext \startsection[title={\type{\sudoku}}] \sudoku{ ......... ........1 .....2.3. ....1...4 ..3.5.... .26....7. 14...8... 5........ 7....6.2. } \blank[line] \sudoku{ 000000001 000002030 004056000 000004500 010700000 080000400 000030000 000100008 205000000 } \blank[line] \sudoku { 000000000 111111111 222222222 333333333 444444444 555555555 666666666 777777777 888888888 } \blank[line] \sudoku{666} \stopsection \startsection[title={\type{\solvesudoku}}] \solvesudoku[size=9mm,evenbackgroundcolor=gray,oddbackgroundcolor=white]{ .......... .......1 .....2.3. ....1...4. .3.5.... .26....7. 14...8...5 ........ 7....6.2. } \blank[line] \solvedsudoku{ 000000001 000002030 004056000 000004500 010700000 080000400 000030000 000100008 205000000 } \blank[line] \solvesudoku { 000000000 111111111 222222222 333333333 444444444 555555555 666666666 777777777 888888888 } \stopsection \startbuffer[lmao] .......... .......1 .....2.3. ....1...4. .3.5.... .26....7. 14...8...5 ........ 7....6.2. \stopbuffer \startsection[title={\type{\sudokubuffer}}] \sudokubuffer{lmao} \stopsection \startsection[title={\type{\sudokusolvebuffer}}] \sudokusolvebuffer{lmao} \stopsection \startsection[title={\type{\sudokufile}}] \sudokufile[evenbackgroundcolor=cornsilk,oddbackgroundcolor=pink]{t-sudoku-test-01.txt} \blank[line] \sudokufile{t-sudoku-test-03.txt} \blank[line] \sudokufile[rulethickness=2pt,evenbackgroundcolor=cornsilk]{t-sudoku-test-02.txt} \stopsection \startsection[title={\type{\solvesudokufile}}] \setupsudokus[oddbackgroundcolor=plum,evenbackgroundcolor=pink]% \solvesudokufile[oddbackgroundcolor=thistle]{t-sudoku-test-01.txt} \blank[line] \solvesudokufile{t-sudoku-test-02.txt} \blank[line] \solvesudokufile{t-sudoku-test-03.txt} \stopsection \startsection[title={\type{\randomsudoku}}] \randomsudoku[n=45] \stopsection \stoptextcontext-modules-20240428/tex/context/third/typescripts/0000755000175000017500000000000014613513621022060 5ustar hillehillecontext-modules-20240428/tex/context/third/typescripts/type-imp-miso.mkiv0000644000175000017500000000430614114515277025471 0ustar hillehille%D \module %D [ file=type-imp-miso, %D version=2011.09.21, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Miso Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . %D MISO is an architectural lettering font by Mårten Nettelbladt. It is %D available in three weights (light, regular, bold) and can be downloaded from %D \hyphenatedurl{http://www.fontsquirrel.com/fonts/Miso} \starttypescriptcollection [miso] \starttypescript [\s!sans] [miso-light,miso] \definefontsynonym [Miso-Light] [\s!file:misolight] [\s!features=\s!default] \definefontsynonym [Miso-Regular] [\s!file:miso] [\s!features=\s!default] \definefontsynonym [Miso-Bold] [\s!file:misobold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [miso-light] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Miso-Light] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Miso-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [miso] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Miso-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Miso-Bold] [\s!features=\s!default] \stoptypescript \starttypescript [miso-light,miso] \definetypeface [\typescriptone] [ss] [\s!sans] [\typescriptone] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-luxi.mkiv0000644000175000017500000000757414114515277025515 0ustar hillehille%D \module %D [ file=type-imp-luxi, %D version=2010.09.13, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Luxi Collection, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection[luxi] \starttypescript [\s!serif] [luxi] \definefontsynonym [LuxiSerif-Regular] [\s!file:luxirr] [\s!features=\s!default] \definefontsynonym [LuxiSerif-Italic] [\s!file:luxirri] [\s!features=\s!default] \definefontsynonym [LuxiSerif-Bold] [\s!file:luxirb] [\s!features=\s!default] \definefontsynonym [LuxiSerif-BoldItalic] [\s!file:luxirbi] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [luxi] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [LuxiSerif-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [LuxiSerif-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [LuxiSerif-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [LuxiSerif-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [luxi] \definefontsynonym [LuxiSans-Regular] [\s!file:luxisr] [\s!features=\s!default] \definefontsynonym [LuxiSans-Italic] [\s!file:luxisri] [\s!features=\s!default] \definefontsynonym [LuxiSans-Bold] [\s!file:luxisb] [\s!features=\s!default] \definefontsynonym [LuxiSans-BoldItalic] [\s!file:luxisbi] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [luxi] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [LuxiSans-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [LuxiSans-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [LuxiSans-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [LuxiSans-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!mono] [luxi] \definefontsynonym [LuxiMono-Regular] [\s!file:luximr] [\s!features=\s!default] \definefontsynonym [LuxiMono-Italic] [\s!file:luximri] [\s!features=\s!default] \definefontsynonym [LuxiMono-Bold] [\s!file:luximb] [\s!features=\s!default] \definefontsynonym [LuxiMono-BoldItalic] [\s!file:luximbi] [\s!features=\s!default] \stoptypescript \starttypescript [\s!mono] [luxi] \setups[\s!font:\s!fallback:\s!mono] \definefontsynonym [\s!Mono] [LuxiMono-Regular] [\s!features=\s!default] \definefontsynonym [\s!MonoItalic] [LuxiMono-Italic] [\s!features=\s!default] \definefontsynonym [\s!MonoBold] [LuxiMono-Bold] [\s!features=\s!default] \definefontsynonym [\s!MonoBoldItalic] [LuxiMono-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [luxi] \definetypeface [luxi] [rm] [\s!serif] [luxi] [\s!default] \definetypeface [luxi] [ss] [\s!sans] [luxi] [\s!default] \definetypeface [luxi] [tt] [\s!mono] [luxi] [\s!default] \definetypeface [luxi] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-tuffy.mkiv0000644000175000017500000000401714114515277025656 0ustar hillehille%D \module %D [ file=type-imp-tuffy, %D version=2010.09.15, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Tuffy Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [tuffy] \starttypescript [\s!sans] [tuffy] \definefontsynonym [Tuffy-Regular] [\s!file:tuffy] [\s!features=\s!default] \definefontsynonym [Tuffy-Italic] [\s!file:tuffyitalic] [\s!features=\s!default] \definefontsynonym [Tuffy-Bold] [\s!file:tuffybold] [\s!features=\s!default] \definefontsynonym [Tuffy-BoldItalic] [\s!file:tuffybolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [tuffy] \setup[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Tuffy-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Tuffy-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Tuffy-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [Tuffy-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [tuffy] \definetypeface [tuffy] [ss] [\s!sans] [tuffy] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-droid.mkiv0000644000175000017500000000660614114515277025630 0ustar hillehille%D \module %D [ file=type-imp-droid, %D version=2010.09.13, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Droid Collection, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . %D Droid is a font family created by Ascender Corporation for the %D Android platform, and licensed under the Apache license. They can be %D downloaded from the git snapshot of android: %D \hyphenatedurl{http://android.git.kernel.org/?p=platform/frameworks/base.git;a=snapshot;h=39b04dd27e6d20809f8ff26920d1e761a0005252;sf=tgz} \starttypescriptcollection[droid] \starttypescript [\s!serif] [droid] \definefontsynonym [DroidSerif-Regular] [\s!file:droidserifregular] [\s!features=\s!default] \definefontsynonym [DroidSerif-Italic] [\s!file:droidserifitalic] [\s!features=\s!default] \definefontsynonym [DroidSerif-Bold] [\s!file:droidserifbold] [\s!features=\s!default] \definefontsynonym [DroidSerif-BoldItalic] [\s!file:droidserifbolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [droid] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [DroidSerif-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [DroidSerif-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [DroidSerif-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [DroidSerif-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [droid] \definefontsynonym [DroidSans-Regular] [\s!file:droidsans] [\s!features=\s!default] \definefontsynonym [DroidSans-Bold] [\s!file:droidsansbold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [droid] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [DroidSans-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [DroidSans-Bold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!mono] [droid] \definefontsynonym [DroidMono-Regular] [\s!file:droidsansmono] [\s!features=\s!default] \stoptypescript \starttypescript [\s!mono] [droid] \setups[\s!font:\s!fallback:\s!mono] \definefontsynonym [\s!Mono] [DroidMono-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [droid] \definetypeface [droid] [rm] [\s!serif] [droid] [\s!default] \definetypeface [droid] [ss] [\s!sans] [droid] [\s!default] \definetypeface [droid] [tt] [\s!mono] [droid] [\s!default] \definetypeface [droid] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-junicode.mkiv0000644000175000017500000000412414114515277026320 0ustar hillehille%D \module %D [ file=type-imp-junicode, %D version=2011.09.18, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Junicode Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [junicode] \starttypescript [\s!serif] [junicode] \definefontsynonym [Junicode-Regular] [\s!file:junicoderegular] [\s!features=\s!default] \definefontsynonym [Junicode-Italic] [\s!file:junicodeitalic] [\s!features=\s!default] \definefontsynonym [Junicode-Bold] [\s!file:junicodebold] [\s!features=\s!default] \definefontsynonym [Junicode-BoldItalic] [\s!file:junicodebolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [junicode] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [Junicode-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [Junicode-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Junicode-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [Junicode-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [junicode] \definetypeface [junicode] [rm] [\s!serif] [junicode] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-charissil.mkiv0000644000175000017500000000451414114515277026504 0ustar hillehille%D \module %D [ file=type-imp-charissil, %D version=2010.09.14, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Charis SIL Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [charissil] \starttypescript [\s!serif] [charissil] \definefontsynonym [CharisSIL-Regular] [\s!file:charissilr] [\s!features=\s!default] \definefontsynonym [CharisSIL-Italic] [\s!file:charissili] [\s!features=\s!default] \definefontsynonym [CharisSIL-Bold] [\s!file:charissilb] [\s!features=\s!default] \definefontsynonym [CharisSIL-BoldItalic] [\s!file:charissilbi] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [charissil] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [CharisSIL-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [CharisSIL-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [CharisSIL-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [CharisSIL-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [charissil] \definetypeface [charissil] [rm] [\s!serif] [charissil] [\s!default] \definetypeface [charissil] [ss] [\s!sans] [modern] [\s!default] [\s!rscale=\v!auto] \definetypeface [charissil] [tt] [\s!mono] [modern] [\s!default] [\s!rscale=\v!auto] \definetypeface [charissil] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-pigiarniq.mkiv0000644000175000017500000000536114114515277026507 0ustar hillehille%D \module %D [ file=type-imp-pigiarniq, %D version=2010.09.14, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Pigiarniq Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [pigiarniq] \starttypescript [\s!sans] [pigiarniq,pigiarniq-thin,pigiarniq-bold] \definefontsynonym [Pigiarniq-Light] [\s!file:pigiarniqlight] [\s!features=\s!default] \definefontsynonym [Pigiarniq-Regular] [\s!file:pigiarniqregular] [\s!features=\s!default] \definefontsynonym [Pigiarniq-Italic] [\s!file:pigiarniqitalic] [\s!features=\s!default] \definefontsynonym [Pigiarniq-Bold] [\s!file:pigiarniqbold] [\s!features=\s!default] \definefontsynonym [Pigiarniq-Heavy] [\s!file:pigiarniqheavy] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [pigiarniq] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Pigiarniq-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Pigiarniq-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Pigiarniq-Bold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [pigiarniq-thin] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Pigiarniq-Light] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Pigiarniq-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [Pigiarniq-Italic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [pigiarniq-bold] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Pigiarniq-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Pigiarniq-Heavy] [\s!features=\s!default] \stoptypescript \starttypescript [pigiarniq,pigiarniq-thin,pigiarniq-bold] \definetypeface [\typescriptone] [ss] [\s!sans] [\typescriptone] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-vera.mkiv0000644000175000017500000000712014114515277025454 0ustar hillehille%D \module %D [ file=type-imp-vera, %D version=2010.09.14, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Bitstream Vera Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [vera] \starttypescript [\s!serif] [vera] \definefontsynonym [VeraSerif-Regular] [\s!file:veraserif] [\s!features=\s!default] \definefontsynonym [VeraSerif-Bold] [\s!file:veraserifbold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [vera] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [VeraSerif-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [VeraSerif-Bold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [vera] \definefontsynonym [VeraSans-Regular] [\s!file:vera] [\s!features=\s!default] \definefontsynonym [VeraSans-Italic] [\s!file:veraitalic] [\s!features=\s!default] \definefontsynonym [VeraSans-Bold] [\s!file:verabold] [\s!features=\s!default] \definefontsynonym [VeraSans-BoldItalic] [\s!file:verabolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [vera] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [VeraSans-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [VeraSans-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [VeraSans-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [VeraSans-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [mono] [vera] \definefontsynonym [VeraMono-Regular] [\s!file:veramono] [\s!features=\s!default] \definefontsynonym [VeraMono-Italic] [\s!file:veramonoitalic] [\s!features=\s!default] \definefontsynonym [VeraMono-Bold] [\s!file:veramonobold] [\s!features=\s!default] \definefontsynonym [VeraMono-BoldItalic] [\s!file:veramonobolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!mono] [vera] \setups[\s!font:\s!fallback:\s!mono] \definefontsynonym [Mono] [VeraMono-Regular] [\s!features=\s!default] \definefontsynonym [MonoItalic] [VeraMono-Italic] [\s!features=\s!default] \definefontsynonym [MonoBold] [VeraMono-Bold] [\s!features=\s!default] \definefontsynonym [MonoBoldItalic] [VeraMono-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [vera] \definetypeface [vera] [rm] [\s!serif] [vera] [\s!default] \definetypeface [vera] [ss] [\s!sans] [vera] [\s!default] \definetypeface [vera] [tt] [\s!mono] [vera] [\s!default] \definetypeface [vera] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-adobe.mkiv0000644000175000017500000001142714114515277025576 0ustar hillehille%D \module %D [ file=type-imp-adobe, %D version=2010.09.13, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Adobe Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \definetypescriptprefix [f:minion] [minionpro] \definetypescriptprefix [f:myriad] [myriadpro] \definetypescriptprefix [f:warnockpro] [warnockpro] \definetypescriptprefix [n:minion] [minion] \definetypescriptprefix [n:myriad] [myriad] \definetypescriptprefix [n:warnockpro] [warnockPro] \starttypescriptcollection [adobe] \starttypescript [\s!serif,\s!sans] [minion,myriad,warnockpro] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-\s!Regular] [\s!file:\typescriptprefix{f:\typescripttwo}-regular] [\s!features=\s!default] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-\s!Italic] [\s!file:\typescriptprefix{f:\typescripttwo}-it] [\s!features=\s!default] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-\s!Bold] [\s!file:\typescriptprefix{f:\typescripttwo}-bold] [\s!features=\s!default] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-\s!BoldItalic] [\s!file:\typescriptprefix{f:\typescripttwo}-boldit] [\s!features=\s!default] \stoptypescript % Minion \starttypescript [\s!serif] [minion] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [\typescriptprefix{n:\typescripttwo}-\s!Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [\typescriptprefix{n:\typescripttwo}-\s!Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [\typescriptprefix{n:\typescripttwo}-\s!Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-\s!BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [minion] \definetypeface [minion] [rm] [\s!serif] [minion] [\s!default] \definetypeface [minion] [ss] [\s!sans] [myriad] [\s!default] \definetypeface [minion] [tt] [\s!mono] [modern] [\s!default] \definetypeface [minion] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript % Myriad \starttypescript [\s!sans] [myriad] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [\typescriptprefix{n:\typescripttwo}-\s!Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [\typescriptprefix{n:\typescripttwo}-\s!Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [\typescriptprefix{n:\typescripttwo}-\s!Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-\s!BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [myriad] \definetypeface [myriad] [rm] [\s!serif] [minion] [\s!default] \definetypeface [myriad] [ss] [\s!sans] [myriad] [\s!default] \definetypeface [myriad] [tt] [\s!mono] [modern] [\s!default] \definetypeface [myriad] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript % Warnock \starttypescript [\s!serif] [warnockpro] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [\typescriptprefix{n:\typescripttwo}-\s!Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [\typescriptprefix{n:\typescripttwo}-\s!Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [\typescriptprefix{n:\typescripttwo}-\s!Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-\s!BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [warnockpro] \definetypeface [warnockpro] [rm] [\s!serif] [warnockpro] [\s!default] \definetypeface [warnockpro] [ss] [\s!sans] [modern] [\s!default] \definetypeface [warnockpro] [tt] [\s!mono] [modern] [\s!default] \definetypeface [warnockpro] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-tallys.mkiv0000644000175000017500000000275414114515277026037 0ustar hillehille%D \module %D [ file=type-imp-tallys, %D version=2010.10.27, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Tallys Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [tallys] \starttypescript [\s!serif] [tallys] \definefontsynonym [Tallys-Regular] [\s!file:tallys15] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [tallys] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [Tallys-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [tallys] \definetypeface [tallys] [rm] [\s!serif] [tallys] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-azuro.mkiv0000644000175000017500000000402014114515277025653 0ustar hillehille%D \module %D [ file=type-imp-azuro, %D version=2011.08.28, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Azuro Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [azuro] \starttypescript [\s!sans] [azuro] \definefontsynonym [Azuro-Regular] [\s!file:azuroregular] [\s!features=\s!default] \definefontsynonym [Azuro-Italic] [\s!file:azuroitalic] [\s!features=\s!default] \definefontsynonym [Azuro-Bold] [\s!file:azurobold] [\s!features=\s!default] \definefontsynonym [Azuro-BoldItalic] [\s!file:azurobolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [azuro] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Azuro-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Azuro-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Azuro-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [Azuro-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [azuro] \definetypeface [azuro] [ss] [\s!sans] [azuro] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-goudysans.mkiv0000644000175000017500000000406514114515277026540 0ustar hillehille%D \module %D [ file=type-imp-goudysans, %D version=2011.09.18, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Goudy Sans Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2012 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [goudysans] \starttypescript [\s!sans] [goudysans] \definefontsynonym [GoudySans-Regular] [\s!file:goudsrg_] [\s!features=\s!default] \definefontsynonym [GoudySans-Italic] [\s!file:goudsi__] [\s!features=\s!default] \definefontsynonym [GoudySans-Bold] [\s!file:goudsb__] [\s!features=\s!default] \definefontsynonym [GoudySans-BoldItalic] [\s!file:goudsbi_] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [goudysans] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [GoudySans-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [GoudySans-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [GoudySans-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [GoudySans-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [goudysans] \definetypeface [goudysans] [ss] [\s!sans] [goudysans] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-kontrapunkt.mkiv0000644000175000017500000000365614114515277027111 0ustar hillehille%D \module %D [ file=type-imp-kontrapunkt, %D version=2011.09.20, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Kontrapunkt Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [kontrapunkt] \starttypescript [\s!serif] [kontrapunkt] \definefontsynonym [Kontrapunkt-Regular] [\s!file:kontrapunktlight] [\s!features=\s!default] \definefontsynonym [Kontrapunkt-Italic] [\s!file:kontrapunktlightitalic] [\s!features=\s!default] \definefontsynonym [Kontrapunkt-Bold] [\s!file:kontrapunktbold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [kontrapunkt] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [Kontrapunkt-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [Kontrapunkt-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Kontrapunkt-Bold] [\s!features=\s!default] \stoptypescript \starttypescript [kontrapunkt] \definetypeface [kontrapunkt] [rm] [\s!serif] [kontrapunkt] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-ubuntu.mkiv0000644000175000017500000000400314114515277026036 0ustar hillehille%D \module %D [ file=type-imp-ubuntu, %D version=2011.09.23, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Ubuntu Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [ubuntu] \starttypescript [\s!sans] [ubuntu] \definefontsynonym [Ununtu-Regular] [\s!file:ubuntur] [\s!features=\s!default] \definefontsynonym [Ubuntu-Italic] [\s!file:ubuntui] [\s!features=\s!default] \definefontsynonym [Ubuntu-Bold] [\s!file:ubuntub] [\s!features=\s!default] \definefontsynonym [Ubuntu-BoldItalic] [\s!file:ubuntubi] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [ubuntu] \setup[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Ununtu-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Ubuntu-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Ubuntu-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [Ubuntu-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [ubuntu] \definetypeface [ubuntu] [ss] [\s!sans] [ubuntu] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-justus.mkiv0000644000175000017500000000431014114515277026052 0ustar hillehille%D \module %D [ file=type-imp-justus, %D version=2011.09.20, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Justus Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [justus] \starttypescript [\s!serif] [justus] \definefontsynonym [Justus-Regular] [\s!file:justusroman] [\s!features=\s!default] \definefontsynonym [Justus-Italic] [\s!file:justusitalic] [\s!features=\s!default] \definefontsynonym [Justus-Bold] [\s!file:justusbold] [\s!features=\s!default] \definefontsynonym [Justus-Caps] [\s!file:justusversalitas] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [justus] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [Justus-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [Justus-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Justus-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifCaps] [Justus-Caps] [\s!features=\s!default] \stoptypescript \starttypescript [justus] \definetypeface [justus] [rm] [\s!serif] [justus] [\s!default] \definetypeface [justus] [ss] [\s!sans] [modern] [\s!default] \definetypeface [justus] [tt] [\s!mono] [modern] [\s!default] \definetypeface [justus] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-fertigo.mkiv0000644000175000017500000000327214114515277026162 0ustar hillehille%D \module %D [ file=type-imp-fertigo, %D version=2010.10.27, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Fertigo Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [fertigo] \starttypescript [\s!sans] [fertigo] \definefontsynonym [FertigoPro-Regular] [\s!file:fertigopro] [\s!features=\s!default] \definefontsynonym [FertigoPro-Italic] [\s!file:Fertigoproitalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [fertigo] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [FertigoPro-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [FertigoPro-Italic] [\s!features=\s!default] \stoptypescript \starttypescript [fertigo] \definetypeface [fertigo] [ss] [\s!sans] [fertigo] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-fontin.mkiv0000644000175000017500000000642614114515277026024 0ustar hillehille%D \module %D [ file=type-imp-fontin, %D version=2010.10.27, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Fontin Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [fontin] \starttypescript [\s!serif] [fontin] \definefontsynonym [Fontin-Regular] [\s!file:fontinregular] [\s!features=\s!default] \definefontsynonym [Fontin-Italic] [\s!file:fontinitalic] [\s!features=\s!default] \definefontsynonym [Fontin-Bold] [\s!file:fontinbold] [\s!features=\s!default] \definefontsynonym [Fontin-Caps] [\s!file:fontinsmallcaps] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [fontin] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [Fontin-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [Fontin-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Fontin-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifCaps] [Fontin-Caps] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [fontin] \definefontsynonym [FontinSans-Regular] [\s!file:fontinsansr45b] [\s!features=\s!default] \definefontsynonym [FontinSans-Italic] [\s!file:fontinsansi45b] [\s!features=\s!default] \definefontsynonym [FontinSans-Bold] [\s!file:fontinsansb45b] [\s!features=\s!default] \definefontsynonym [FontinSans-BoldItalic] [\s!file:fontinsansbi45b] [\s!features=\s!default] \definefontsynonym [FontinSans-Caps] [\s!file:fontinsanssc45b] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [fontin] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [FontinSans-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [FontinSans-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [FontinSans-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [FontinSans-BoldItalic] [\s!features=\s!default] \definefontsynonym [\s!SansCaps] [FontinSans-Caps] [\s!features=\s!default] \stoptypescript \starttypescript [fontin] \definetypeface [fontin] [rm] [\s!serif] [fontin] [\s!default] \definetypeface [fontin] [ss] [\s!sans] [fontin] [\s!default] \definetypeface [fontin] [tt] [\s!mono] [modern] [\s!default] [rscale=1.1] \definetypeface [fontin] [mm] [\s!math] [palatino] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-vollkorn.mkiv0000644000175000017500000000443514114515277026373 0ustar hillehille%D \module %D [ file=type-imp-vollkorn, %D version=2010.09.15, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Vollkorn Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [vollkorn] \starttypescript [\s!serif] [vollkorn] \definefontsynonym [Vollkorn-Regular] [\s!file:vollkornregular] [\s!features=\s!default] \definefontsynonym [Vollkorn-Italic] [\s!file:vollkornitalic] [\s!features=\s!default] \definefontsynonym [Vollkorn-Bold] [\s!file:vollkornbold] [\s!features=\s!default] \definefontsynonym [Vollkorn-BoldItalic] [\s!file:vollkornbolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [vollkorn] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [Serif] [Vollkorn-Regular] [\s!features=\s!default] \definefontsynonym [SerifItalic] [Vollkorn-Italic] [\s!features=\s!default] \definefontsynonym [SerifBold] [Vollkorn-Bold] [\s!features=\s!default] \definefontsynonym [SerifBoldItalic] [Vollkorn-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [vollkorn] \definetypeface [vollkorn] [rm] [\s!serif] [vollkorn] [\s!default] \definetypeface [vollkorn] [ss] [\s!sans] [modern] [\s!default] \definetypeface [vollkorn] [tt] [\s!mono] [modern] [\s!default] \definetypeface [vollkorn] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-office.mkiv0000644000175000017500000001051214114515277025751 0ustar hillehille%D \module %D [ file=type-imp-office, %D version=2011.11.15, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Microsoft Office 2011 Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [office] \starttypescript [\s!sans] [calibri] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [\s!file:calibri] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [\s!file:calibribold] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [\s!file:calibriitalic] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [\s!file:calibribolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [cambria] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [\s!file:cambria] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [\s!file:cambriabold] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [\s!file:cambriaitalic] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [\s!file:cambriabolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [candara] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [\s!file:candara] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [\s!file:candarabold] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [\s!file:candaraitalic] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [\s!file:candarabolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!mono] [consolas] \setups[\s!font:\s!fallback:\s!mono] \definefontsynonym [\s!Mono] [\s!file:consolas] [\s!features=\s!none] \definefontsynonym [\s!MonoBold] [\s!file:consolasbold] [\s!features=\s!none] \definefontsynonym [\s!MonoItalic] [\s!file:consolasitalic] [\s!features=\s!none] \definefontsynonym [\s!MonoBoldItalic] [\s!file:consolasbolditalic] [\s!features=\s!none] \stoptypescript \starttypescript [\s!serif] [constantia] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [\s!file:constantia] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [\s!file:constantiabold] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [\s!file:constantiaitalic] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [\s!file:constantiabolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [corbel] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [\s!file:corbel] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [\s!file:corbelbold] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [\s!file:corbelitalic] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [\s!file:corbelbolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [meiryo] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [\s!meiryo] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [\s!meiryobold] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [\s!meiryoitalic] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [\s!meiryobolditalic] [\s!features=\s!default] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-uqammaq.mkiv0000644000175000017500000000464214114515277026167 0ustar hillehille%D \module %D [ file=type-imp-uqammaq, %D version=2011.09.21, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Uqammaq Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [uqammaq] \starttypescript [\s!sans] [uqammaq,uqammaq-light,uqammaq-bold] \definefontsynonym [Uqammaq-Light] [\s!file:uqammaqlight] [\s!features=\s!default] \definefontsynonym [Uqammaq-Regular] [\s!file:uqammaqregular] [\s!features=\s!default] \definefontsynonym [Uqammaq-Bold] [\s!file:uqammaqbold] [\s!features=\s!default] \definefontsynonym [Uqammaq-Heavy] [\s!file:uqammaqheavy] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [uqammaq] \setup[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Uqammaq-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Uqammaq-Bold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [uqammaq-light] \setup[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Uqammaq-Light] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Uqammaq-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [uqammaq-bold] \setup[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Uqammaq-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Uqammaq-Heavy] [\s!features=\s!default] \stoptypescript \starttypescript [uqammaq,uqammaq-light,uqammaq-bold] \definetypeface [\typescriptone] [ss] [\s!sans] [\typescriptone] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-museo.mkiv0000644000175000017500000000443014114515277025650 0ustar hillehille%D \module %D [ file=type-imp-museo, %D version=2010.10.27, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Museo Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [museo] \starttypescript [\s!serif] [museo] \definefontsynonym [Museo-300] [\s!file:museo300regular] [\s!features=\s!default] \definefontsynonym [Museo-500] [\s!file:museo500regular] [\s!features=\s!default] \definefontsynonym [Museo-700] [\s!file:museo700regular] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [museo] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [Museo-500] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Museo-700] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [museo] \definefontsynonym [MuseoSans-Regular] [\s!file:museosans500] [\s!features=\s!default] \definefontsynonym [MuseoSans-Italic] [\s!file:museosans500italic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [museo] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [MuseoSans-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [MuseoSans-Italic] [\s!features=\s!default] \stoptypescript \starttypescript [museo] \definetypeface [museo] [rm] [\s!serif] [museo] [\s!default] \definetypeface [museo] [ss] [\s!sans] [museo] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-calluna.mkiv0000644000175000017500000000633014114515277026140 0ustar hillehille%D \module %D [ file=type-imp-calluna, %D version=2011.01.01, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Calluna Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [calluna] \starttypescript [\s!serif] [calluna] \definefontsynonym [Calluna-Regular] [\s!file:callunaregular] [\s!features=\s!default] \definefontsynonym [Calluna-Italic] [\s!file:callunait] [\s!features=\s!default] \definefontsynonym [Calluna-Bold] [\s!file:callunabold] [\s!features=\s!default] \definefontsynonym [Calluna-BoldItalic] [\s!file:callunaboldit] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [calluna] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [Calluna-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [Calluna-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Calluna-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [Calluna-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [calluna] \definefontsynonym [CallunaSans-Regular] [\s!file:callunasansregular] [\s!features=\s!default] \definefontsynonym [CallunaSans-Italic] [\s!file:callunasansitalic] [\s!features=\s!default] \definefontsynonym [CallunaSans-Bold] [\s!file:callunasansbold] [\s!features=\s!default] \definefontsynonym [CallunaSans-BoldItalic] [\s!file:callunasansbolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [calluna] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [CallunaSans-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [CallunaSans-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [CallunaSans-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [CallunaSans-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [calluna] \definetypeface [calluna] [rm] [\s!serif] [calluna] [\s!default] \definetypeface [calluna] [ss] [\s!sans] [calluna] [\s!default] [\s!rscale=\v!auto] \definetypeface [calluna] [tt] [\s!mono] [modern] [\s!default] [\s!rscale=\v!auto] \definetypeface [calluna] [mm] [\s!math] [palatino] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollectioncontext-modules-20240428/tex/context/third/typescripts/type-imp-kaffeesatz.mkiv0000644000175000017500000000501314114515277026641 0ustar hillehille%D \module %D [ file=type-imp-kaffeesatz, %D version=2010.09.14, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Kaffeesatz Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [kaffeesatz] \starttypescript [\s!sans] [kaffeesatz,kaffeesatz-thin,kaffeesatz-light] \definefontsynonym [Kaffeesatz-Thin] [\s!file:yanonekaffeesatzthin] [\s!features=\s!default] \definefontsynonym [Kaffeesatz-Light] [\s!file:yanonekaffeesatzlight] [\s!features=\s!default] \definefontsynonym [Kaffeesatz-Regular] [\s!file:yanonekaffeesatzregular] [\s!features=\s!default] \definefontsynonym [Kaffeesatz-Bold] [\s!file:yanonekaffeesatzbold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [kaffeesatz] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Kaffeesatz-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Kaffeesatz-Bold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [kaffeesatz-thin] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Kaffeesatz-Thin] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Kaffeesatz-Light] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [kaffeesatz-light] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Kaffeesatz-Light] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Kaffeesatz-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [kaffeesatz,kaffeesatz-thin,kaffeesatz-light] \definetypeface [\typescriptone] [ss] [\s!sans] [\typescriptone] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-audimat.mkiv0000644000175000017500000000671214114515277026151 0ustar hillehille%D \module %D [ file=type-imp-audimat, %D version=2011.09.21, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Audimat Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [audimat] \starttypescript [\s!sans] [audimat] \definefontsynonym [Audimat-Regular] [\s!file:audimatregular] [\s!features=\s!default] \definefontsynonym [Audimat-Italic] [\s!file:audimatitalic] [\s!features=\s!default] \definefontsynonym [Audimat-Bold] [\s!file:audimatbold] [\s!features=\s!default] \definefontsynonym [Audimat-BoldItalic] [\s!file:audimatbolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [audimat] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Audimat-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Audimat-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Audimat-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [Audimat-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!mono] [audimat] \definefontsynonym [AudimatMono-Light] [\s!file:audiml__] [\s!features=\s!default] \definefontsynonym [AudimatMono-LightItalic] [\s!file:audimlo_] [\s!features=\s!default] \definefontsynonym [AudimatMono-LightCaps] [\s!file:audimscl] [\s!features=\s!default] \definefontsynonym [AudimatMono-Regular] [\s!file:audimrg_] [\s!features=\s!default] \definefontsynonym [AudimatMono-Italic] [\s!file:audimo__] [\s!features=\s!default] \definefontsynonym [AudimatMono-Smallcaps] [\s!file:audimsc_] [\s!features=\s!default] \definefontsynonym [AudimatMono-Bold] [\s!file:audimb__] [\s!features=\s!default] \definefontsynonym [AudimatMono-BoldItalic] [\s!file:audimbo_] [\s!features=\s!default] \definefontsynonym [AudimatMono-BoldCaps] [\s!file:audimscb] [\s!features=\s!default] \stoptypescript \starttypescript [\s!mono] [audimat] \setups[\s!font:\s!fallback:\s!mono] \definefontsynonym [\s!Mono] [AudimatMono-Regular] [\s!features=\s!default] \definefontsynonym [\s!MonoItalic] [AudimatMono-Italic] [\s!features=\s!default] \definefontsynonym [\s!MonoBold] [AudimatMono-Bold] [\s!features=\s!default] \definefontsynonym [\s!MonoBoldItalic] [AudimatMono-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [audimat] \definetypeface [audimat] [ss] [\s!sans] [audimat] [\s!default] \definetypeface [audimat] [tt] [\s!mono] [audimat] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-delicious.mkiv0000644000175000017500000000460514114515277026504 0ustar hillehille%D \module %D [ file=type-imp-delicious, %D version=2010.10.27, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Delicious Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [delicious] \starttypescript [\s!sans] [delicious] \definefontsynonym [Delicious-Regular] [\s!file:deliciousroman] [\s!features=\s!default] \definefontsynonym [Delicious-Italic] [\s!file:deliciousitalic] [\s!features=\s!default] \definefontsynonym [Delicious-Bold] [\s!file:deliciousbold] [\s!features=\s!default] \definefontsynonym [Delicious-BoldItalic] [\s!file:deliciousbolditalic] [\s!features=\s!default] \definefontsynonym [Delicious-Caps] [\s!file:delicioussmallcaps] [\s!features=\s!default] \definefontsynonym [Delicious-Heavy] [\s!file:deliciousheavy] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [delicious] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Delicious-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Delicious-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Delicious-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [Delicious-BoldItalic] [\s!features=\s!default] \definefontsynonym [\s!SansCaps] [Delicious-Caps] [\s!features=\s!default] \stoptypescript \starttypescript [delicious] \definetypeface [delicious] [ss] [\s!sans] [delicious] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-itccharter.mkiv0000644000175000017500000000657414114515277026663 0ustar hillehille%D \module %D [ file=type-imp-itccharter, %D version=2010.09.13, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Charter Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection[itccharter] \starttypescript [\s!serif] [itccharter,itc-charter,itccharter-bold,itc-charter-bold] \definefontsynonym [CharterITC-Regular] [\s!file:charteritcproregular] [\s!features=\s!default] \definefontsynonym [CharterITC-Italic] [\s!file:charteritcproitalic] [\s!features=\s!default] \definefontsynonym [CharterITC-Bold] [\s!file:charteritcprobold] [\s!features=\s!default] \definefontsynonym [CharterITC-BoldItalic] [\s!file:charteritcprobolditalic] [\s!features=\s!default] \definefontsynonym [CharterITC-Black] [\s!file:charteritcproblack] [\s!features=\s!default] \definefontsynonym [CharterITC-BlackItalic] [\s!file:charteritcproblackitalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [itccharter,itc-charter] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [CharterITC-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [CharterITC-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [CharterITC-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [CharterITC-BoldItalic] [\s!features=\s!default] \definefontsynonym [\s!SerifCaps] [CharterITC-Regular] [\s!features=\s!smallcaps] \stoptypescript \starttypescript [\s!serif] [itccharter-bold,itc-charter-bold] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [CharterITC-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [CharterITC-BoldItalic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [CharterITC-Black] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [CharterITC-BlackItalic] [\s!features=\s!default] \definefontsynonym [\s!SerifCaps] [CharterITC-Bold] [\s!features=\s!smallcaps] \stoptypescript \starttypescript [itccharter,itc-charter,itccharter-bold,itc-charter-bold] \definetypeface [\typescriptone] [rm] [\s!serif] [\typescriptone] [\s!default] \definetypeface [\typescriptone] [ss] [\s!sans] [modern] [\s!default] \definetypeface [\typescriptone] [tt] [\s!mono] [modern] [\s!default] \definetypeface [\typescriptone] [mm] [\s!math] [charter] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-anivers.mkiv0000644000175000017500000000401414114515277026165 0ustar hillehille%D \module %D [ file=type-imp-anivers, %D version=2011.08.28, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Anivers Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [anivers] \starttypescript [\s!sans] [anivers] \definefontsynonym [Anivers-Regular] [\s!file:aniversregular] [\s!features=\s!default] \definefontsynonym [Anivers-Italic] [\s!file:aniversitalic] [\s!features=\s!default] \definefontsynonym [Anivers-Bold] [\s!file:aniversbold] [\s!features=\s!default] \definefontsynonym [Anivers-Caps] [\s!file:aniverssmallcaps] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [anivers] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Anivers-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Anivers-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Anivers-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansCaps] [Anivers-Caps] [\s!features=\s!default] \stoptypescript \starttypescript [anivers] \definetypeface [anivers] [ss] [\s!sans] [anivers] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-verajja.mkiv0000644000175000017500000000635014114515277026145 0ustar hillehille%D \module %D [ file=type-imp-verajja, %D version=2010.09.14, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Verajja Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [verajja] \starttypescript [\s!serif] [verajja] \definefontsynonym [VerajjaSerif-Regular] [\s!file:verajjaserifregular] [\s!features=\s!default] \definefontsynonym [VerajjaSerif-Italic] [\s!file:verajjaserifitalic] [\s!features=\s!default] \definefontsynonym [VerajjaSerif-Bold] [\s!file:verajjaserifbold] [\s!features=\s!default] \definefontsynonym [VerajjaSerif-BoldItalic] [\s!file:verajjaserifbolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [verajja] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [VerajjaSerif-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [VerajjaSerif-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [VerajjaSerif-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [VerajjaSerif-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [verajja] \definefontsynonym [VerajjaSans-Regular] [\s!file:verajjaregular] [\s!features=\s!default] \definefontsynonym [VerajjaSans-Italic] [\s!file:verajjaitalic] [\s!features=\s!default] \definefontsynonym [VerajjaSans-Bold] [\s!file:verajjabold] [\s!features=\s!default] \definefontsynonym [VerajjaSans-BoldItalic] [\s!file:verajjabolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [verajja] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [VerajjaSans-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [VerajjaSans-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [VerajjaSans-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [VerajjaSans-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [verajja] \definetypeface [verajja] [rm] [\s!serif] [verajja] [\s!default] \definetypeface [verajja] [ss] [\s!sans] [verajja] [\s!default] \definetypeface [verajja] [tt] [\s!mono] [modern] [\s!default] \definetypeface [verajja] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-ernestine.mkiv0000644000175000017500000000643414114515277026522 0ustar hillehille%D \module %D [ file=type-imp-ernestine, %D version=2011.12.18, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Ernestine Pro Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [ernestine] \starttypescript [\s!serif] [ernestine,ernestine-light] \definefontsynonym [Ernestine-Light] [\s!file:ernestineprolight] [\s!features=\s!default] \definefontsynonym [Ernestine-LightItalic] [\s!file:ernestineprolightitalic] [\s!features=\s!default] \definefontsynonym [Ernestine-Demibold] [\s!file:ernestineprodemibold] [\s!features=\s!default] \definefontsynonym [Ernestine-DemiboldItalic] [\s!file:ernestineprodemibolditalic] [\s!features=\s!default] \definefontsynonym [Ernestine-Regular] [\s!file:ernestinepro] [\s!features=\s!default] \definefontsynonym [Ernestine-Italic] [\s!file:ernestineproitalic] [\s!features=\s!default] \definefontsynonym [Ernestine-Bold] [\s!file:ernestineprobold] [\s!features=\s!default] \definefontsynonym [Ernestine-BoldItalic] [\s!file:ernestineprobolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [ernestine-light] \definefontsynonym [\s!Serif] [Ernestine-Light] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [Ernestine-LightItalic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Ernestine-Demibold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [Ernestine-DemiboldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [ernestine] \definefontsynonym [\s!Serif] [Ernestine-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [Ernestine-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Ernestine-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [Ernestine-BoldItalic] [\s!features=\s!default] \stoptypescript \starttypescript [ernestine,ernestine-light] \definetypeface [ernestine] [rm] [\s!serif] [\typescriptone] [\s!default] \definetypeface [ernestine] [ss] [\s!sans] [modern] [\s!default] [\s!rscale=\v!auto] \definetypeface [ernestine] [tt] [\s!mono] [modern] [\s!default] [\s!rscale=\v!auto] \definetypeface [ernestine] [mm] [\s!math] [modern] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollectioncontext-modules-20240428/tex/context/third/typescripts/type-imp-axel.mkiv0000644000175000017500000000357714114515277025464 0ustar hillehille%D \module %D [ file=type-imp-axel, %D version=2011.08.28, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Axel Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [axel] \starttypescript [\s!sans] [axel] \definefontsynonym [Axel-Regular] [\s!file:axelregular] [\s!features=\s!default] \definefontsynonym [Axel-Bold] [\s!file:axelbold] [\s!features=\s!default] \definefontsynonym [Axel-Caps] [\s!file:axelscregular] [\s!features=\s!default] \definefontsynonym [Axel-BoldCaps] [\s!file:axelscbold] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [axel] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Axel-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Axel-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansCaps] [Axel-Caps] [\s!features=\s!default] \stoptypescript \starttypescript [axel] \definetypeface [axel] [ss] [\s!sans] [axel] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-sabon.mkiv0000644000175000017500000000457514114515277025634 0ustar hillehille%D \module %D [ file=type-imp-sabon, %D version=2010.09.14, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Sabon Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [sabon] \starttypescript [\s!serif] [sabon] \definefontsynonym [Sabon-Regular] [\s!file:sabonltstdroman] [\s!features=\s!default] \definefontsynonym [Sabon-Italic] [\s!file:sabonltstditalic] [\s!features=\s!default] \definefontsynonym [Sabon-Bold] [\s!file:sabonltstdbold] [\s!features=\s!default] \definefontsynonym [Sabon-BoldItalic] [\s!file:sabonltstdbolditalic] [\s!features=\s!default] \stoptypescript \starttypescript [\s!serif] [sabon] \setups[\s!font:\s!fallback:\s!serif] \definefontsynonym [\s!Serif] [Sabon-Regular] [\s!features=\s!default] \definefontsynonym [\s!SerifItalic] [Sabon-Italic] [\s!features=\s!default] \definefontsynonym [\s!SerifBold] [Sabon-Bold] [\s!features=\s!default] \definefontsynonym [\s!SerifBoldItalic] [Sabon-BoldItalic] [\s!features=\s!default] \definefontsynonym [\s!SerifCaps] [Sabon-Regular] [\s!features=\s!smallcaps] \stoptypescript \starttypescript [sabon] \definetypeface [sabon] [rm] [\s!serif] [sabon] [\s!default] \definetypeface [sabon] [ss] [\s!sans] [modern] [\s!default] [\s!rscale=\v!auto] \definetypeface [sabon] [tt] [\s!mono] [modern] [\s!default] [\s!rscale=\v!auto] \definetypeface [sabon] [mm] [\s!math] [palatino] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-aller.mkiv0000644000175000017500000000622014114515277025616 0ustar hillehille%D \module %D [ file=type-imp-aller, %D version=2011.08.28, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Aller Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2011 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [aller] \starttypescript [\s!sans] [aller,aller-light,aller-display] \definefontsynonym [Aller-Regular] [\s!file:allerrg] [\s!features=\s!default] \definefontsynonym [Aller-Italic] [\s!file:allerit] [\s!features=\s!default] \definefontsynonym [Aller-Bold] [\s!file:allerbd] [\s!features=\s!default] \definefontsynonym [Aller-BoldItalic] [\s!file:allerbdit] [\s!features=\s!default] \definefontsynonym [Aller-Display] [\s!file:allerdisplay] [\s!features=\s!default] \definefontsynonym [Aller-LightRegular] [\s!file:allerlt] [\s!features=\s!default] \definefontsynonym [Aller-LightItalic] [\s!file:allerltit] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [aller] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Aller-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Aller-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Aller-Bold] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [Aller-BoldItalic] [\s!features=\s!default] \definefontsynonym [\s!SansCaps] [Aller-Regular] [\s!features=\s!smallcaps] \stoptypescript \starttypescript [\s!sans] [aller-light] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Aller-LightRegular] [\s!features=\s!default] \definefontsynonym [\s!SansItalic] [Aller-LightItalic] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [Aller-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBoldItalic] [Aller-Italic] [\s!features=\s!default] \definefontsynonym [\s!SansCaps] [Aller-LightRegular] [\s!features=\s!smallcaps] \stoptypescript \starttypescript [\s!sans] [aller-display] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [Aller-Display] [\s!features=\s!default] \stoptypescript \starttypescript [aller,aller-light,aller-display] \definetypeface [\typescriptone] [ss] [\s!sans] [\typescriptone] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/typescripts/type-imp-diavlo.mkiv0000644000175000017500000000555014114515277026002 0ustar hillehille%D \module %D [ file=type-imp-diavlo, %D version=2010.10.27, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Diavlo Font Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright=Wolfgang Schuster, %D license=GNU General Public License] %C Copyright (C) 2010 Wolfgang Schuster %C %C This program is free software: you can redistribute it and/or modify %C it under the terms of the GNU General Public License as published by %C the Free Software Foundation, either version 3 of the License, or %C (at your option) any later version. %C %C This program is distributed in the hope that it will be useful, %C but WITHOUT ANY WARRANTY; without even the implied warranty of %C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %C GNU General Public License for more details. %C %C You should have received a copy of the GNU General Public License %C along with this program. If not, see . \starttypescriptcollection [diavlo] \starttypescript [\s!sans] [diavlo,diavlo-light,diavlo-medium,diavlo-bold] \definefontsynonym [DiavloLight-Regular] [\s!file:diavlolightii37] [\s!features=\s!default] \definefontsynonym [DiavloBook-Regular] [\s!file:diavlobookii37] [\s!features=\s!default] \definefontsynonym [DiavloMedium-Regular] [\s!file:diavlomediumii37] [\s!features=\s!default] \definefontsynonym [DiavloBold-Regular] [\s!file:diavloboldii37] [\s!features=\s!default] \definefontsynonym [DiavloBlack-Regular] [\s!file:diavloblackii37] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [diavlo] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [DiavloBook-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [DiavloMedium-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [diavlo-light] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [DiavloLight-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [DiavloBook-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [diavlo-medium] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [DiavloMedium-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [DiavloBlack-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [\s!sans] [diavlo-bold] \setups[\s!font:\s!fallback:\s!sans] \definefontsynonym [\s!Sans] [DiavloBold-Regular] [\s!features=\s!default] \definefontsynonym [\s!SansBold] [DiavloBlack-Regular] [\s!features=\s!default] \stoptypescript \starttypescript [diavlo,diavlo-light,diavlo-medium,diavlo-bold] \definetypeface [\typescriptone] [ss] [\s!sans] [\typescriptone] [\s!default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/tex/context/third/squares/0000755000175000017500000000000014613513621021152 5ustar hillehillecontext-modules-20240428/tex/context/third/squares/t-squares.mklx0000644000175000017500000001220014566451643024002 0ustar hillehille%D \module %D [ file=t-squares, %D version=20240223, %D title=\CONTEXT\ User Module, %D subtitle=Squares for ConTeXt, %D author=Jairo A. del Rio, %D date=\currentdate, %D copyright=Jairo A. del Rio, %D email=jairoadelrio6@gmail.com, %D license=MIT License] %C Copyright (c) 2023-2024 Jairo A. del Rio %C %C Permission is hereby granted, free of charge, to any person obtaining %C a copy of this software and associated documentation files (the %C "Software"), to deal in the Software without restriction, including %C without limitation the rights to use, copy, modify, merge, publish, %C distribute, sublicense, and/or sell copies of the Software, and to %C permit persons to whom the Software is furnished to do so, subject to %C the following conditions: %C %C The above copyright notice and this permission notice shall be %C included in all copies or substantial portions of the Software. %C %C THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, %C EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF %C MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. %C IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY %C CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, %C TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE %C SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \writestatus{loading}{Squares for ConTeXt!} \startmodule[squares] \registerctxluafile{t-squares}{autosuffix} \unprotect % Experiment: simpler setup command handler... \installnamespace {magicsquare} \installsetuponlycommandhandler\????magicsquare{magicsquare} \startsetups[\????magicsquare:\c!renderingsetup:\v!color] \cdef\c_n{\magicsquareparameter\c!n} \expandedrepeat\numexpr\c_n\relax{ \expandedrepeat\numexpr\c_n\relax{ \definecolor[\????magicsquare:\v!color:##P:##I] [h=\the\numexpr(360*\clf_magicsquarecell##P##I):(\c_n*\c_n)\relax,v=1,s=0.5]% \setupTABLE[##P][##I] [\c!background=\v!color, \c!backgroundcolor=\????magicsquare:\v!color:##P:##I]% } } \stopsetups \setupmagicsquare [\c!n=5, \c!size=2em, \c!align={\v!middle,\v!lohi}, \c!renderingsetup=\v!none] \permanent\tolerant\protected\def\magicsquare[#S#parameters]% {\begingroup% \setupmagicsquare[#parameters]% \clf_magicsquareinit\numexpr\magicsquareparameter\c!n\relax% \ifempty{\magicsquareparameter\c!renderingsetup}% \else \directsetup{\????magicsquare:\c!renderingsetup:\magicsquareparameter\c!renderingsetup}% \fi% \bTABLE [#parameters, \c!width=\magicsquareparameter\c!size, \c!height=\magicsquareparameter\c!size, \c!align=\magicsquareparameter\c!align]% \clf_magicsquare% \eTABLE% \clf_magicsquarereset% \endgroup} \installnamespace {latinsquare} \installsetuponlycommandhandler\????latinsquare{latinsquare} \startsetups[\????latinsquare:\c!renderingsetup:\v!none] \stopsetups \startsetups[\????latinsquare:\c!renderingsetup:\v!color] \expandedrepeat\numexpr\latinsquareparameter\c!n\relax{ \definecolor[\????latinsquare:\v!color:##I][h=\the\numexpr(360*##I):(\latinsquareparameter\c!n)\relax,v=1,s=0.5]% \expandedrepeat\numexpr\latinsquareparameter\c!n\relax{ \setupTABLE[##P][##I] [\c!background=\v!color, \c!backgroundcolor=\????latinsquare:\v!color:\clf_latinsquarecell##P##I]% } } \stopsetups \setuplatinsquare [\c!n=5, \c!size=2em, \c!align={\v!middle,\v!lohi}, \c!renderingsetup=\v!none] \permanent\tolerant\protected\def\latinsquare[#S#parameters]% {\begingroup% \setuplatinsquare[#parameters]% \clf_latinsquareinit\numexpr\latinsquareparameter\c!n\relax% \ifempty{\latinsquareparameter\c!renderingsetup}% \else \directsetup{\????latinsquare:\c!renderingsetup:\latinsquareparameter\c!renderingsetup}% \fi% \bTABLE [#parameters, \c!width=\latinsquareparameter\c!size, \c!height=\latinsquareparameter\c!size, \c!align=\latinsquareparameter\c!align]% \clf_latinsquare% \eTABLE% \clf_latinsquarereset% \endgroup} \protect \stopmodule \continueifinputfile{t-squares.mklx} \starttext \startsection[title=\type{\magicsquare}] % Magic squares \startbuffer \magicsquare[n=10,renderingsetup=color] \stopbuffer \typebuffer \getbuffer \startbuffer \magicsquare[n=3,renderingsetup=color] \stopbuffer \typebuffer \getbuffer \startbuffer \magicsquare[n=8,renderingsetup=color] \stopbuffer \typebuffer \getbuffer \startbuffer \magicsquare[n=2] \stopbuffer \typebuffer \getbuffer \startbuffer \magicsquare \stopbuffer \typebuffer \getbuffer \stopsection % Latin squares \startsection[title=\type{\latinsquare}] \startbuffer \latinsquare[n=7,renderingsetup=color] \stopbuffer \typebuffer \getbuffer \startbuffer \latinsquare[n=5,renderingsetup=color] \stopbuffer \typebuffer \getbuffer \stopsection \stoptext % vim: tw=80:ts=2:sts=2:expandtab:wrap:linebreak:breakindentcontext-modules-20240428/tex/context/third/squares/t-squares.lmt0000644000175000017500000001413714566451643023636 0ustar hillehilleif not modules then modules = {} end modules["t-squares"] = { version = 20240223, comment = "Magic and Latin squares", author = "Jairo A. del Rio", copyright = "Jairo A. del Rio", license = "MIT License", } local interfaces = interfaces local implement = interfaces.implement local magic_reporter = logs.reporter("squares", "magic") local latin_reporter = logs.reporter("squares", "latin") local random = math.random local context = context -- https://www.iupindia.in/910/IJCM_Magic_Square_Construction_Algorithms34.pdf -- https://arxiv.org/pdf/1402.3273.pdf -- https://en.wikipedia.org/wiki/Conway%27s_LUX_method_for_magic_squares -- Helpers local function init(s) local q = {} for j = 1, s do q[j] = {} local c = q[j] for i = 1, s do c[i] = 0 end end return q end -- Odd numbers local function magic_01(n) local res = init(n) local i, j = 1 + (n >> 1), 1 local k, l res[i][j] = 1 for key = 2, n * n do k = i % n + 1 l = 2 <= j and j - 1 or n if res[k][l] > 0 then j = j % n + 1 else i, j = k, l end res[i][j] = key end return res end -- LUX method local function magic_02(N) local res = init(N) local n = N // 2 local lux = init(n) local L, U, X = 1, 2, 4 local x1, x2, x3, x4 = 0, -1, 0, -1 for i = 1, n do for j = 1, n // 2 + 1 do lux[i][j] = L end end for i = 1, n do lux[i][n // 2 + 2] = U end for j = n // 2 + 3, n do for i = 1, n do lux[i][j] = X end end lux[n // 2 + 1][n // 2 + 1] = U lux[n // 2 + 1][n // 2 + 2] = L local i, j = 1 + (n >> 1), 1 local k, l res[2 * i + x1][2 * j - 1] = 1 res[2 * i + x2][2 * j] = 2 res[2 * i + x3][2 * j] = 3 res[2 * i + x4][2 * j - 1] = 4 for key = 2, n * n do k = i % n + 1 l = 2 <= j and j - 1 or n if res[2 * k][2 * l] > 0 then j = j % n + 1 else i, j = k, l end if lux[i][j] == L then x1, x2, x3, x4 = 0, -1, 0, -1 elseif lux[i][j] == U then x1, x2, x3, x4 = -1, -1, 0, 0 else x1, x2, x3, x4 = -1, 0, -1, 0 end res[2 * i + x1][2 * j - 1] = 4 * (key - 1) + 1 res[2 * i + x2][2 * j] = 4 * (key - 1) + 2 res[2 * i + x3][2 * j] = 4 * (key - 1) + 3 res[2 * i + x4][2 * j - 1] = 4 * key end return res end local function magic_03(n) local res = init(n) for x = 1, n, 4 do for y = 1, n, 4 do local q = 0 for i = x, x + 3 do q = q + 1 local q1 = 0 for j = y, y + 3 do q1 = q1 + 1 if i == j or i + j == 5 or q + q1 == 5 or q == q1 then res[i][j] = n * (i - 1) + j else res[i][j] = n * n - ((i - 1) * n + j) + 1 end end end end end return res end local currentsquare = nil local function magicsquare(n) local r = n & 3 if r == 0 then return magic_03(n) elseif r == 2 then return magic_02(n) end return magic_01(n) end local bTR, eTR = context.bTR, context.eTR local bTD, eTD = context.bTD, context.eTD implement({ name = "magicsquarecell", arguments = { "integer", "integer" }, actions = function(x, y) context(currentsquare and currentsquare[x][y] or "") end, }) implement({ name = "magicsquareinit", arguments = { "integer" }, actions = function(n) if n > 0 and n ~= 2 then currentsquare = magicsquare(n) else magic_reporter(("Invalid number %d: nothing will be provided"):format(n)) end end, }) implement({ name = "magicsquarereset", actions = function() currentsquare = nil end, }) implement({ name = "magicsquare", actions = function() local r = currentsquare if r then local n = #r for j = 1, n do bTR() for i = 1, n do bTD() context(r[i][j]) eTD() end eTR() end else magic_reporter("Magic square not initialized...") return end end, }) local function rand2(a, b) if random(2) == 1 then return a, b else return b, a end end local function latinsquare(n) local xy = {} local xz = {} local yz = {} for i = 1, n do xy[i] = {} xz[i] = {} yz[i] = {} for j = 1, n do xy[i][j] = 0 xz[i][j] = 0 yz[i][j] = 0 end end for i = 1, n do for j = 1, n do local k = (i + j - 2) % n + 1 xy[i][j] = k xz[i][k] = j yz[j][k] = i end end local mxy, mxz, myz = 0, 0, 0 local m = { 0, 0, 0 } local proper = true local minIter = n * n * n local iter = 0 while iter < minIter or not proper do local i, j, k, i2, j2, k2 local i2_, j2_, k2_ if proper then i, j, k = random(n), random(n), random(n) while xy[i][j] == k do i, j, k = random(n), random(n), random(n) end i2 = yz[j][k] j2 = xz[i][k] k2 = xy[i][j] i2_, j2_, k2_ = i, j, k else i, j, k = m[1], m[2], m[3] i2, i2_ = rand2(yz[j][k], myz) j2, j2_ = rand2(xz[i][k], mxz) k2, k2_ = rand2(xy[i][j], mxy) end proper = xy[i2][j2] == k2 if not proper then m = { i2, j2, k2 } mxy = xy[i2][j2] myz = yz[j2][k2] mxz = xz[i2][k2] end xy[i][j] = k2_ xy[i][j2] = k2 xy[i2][j] = k2 xy[i2][j2] = k yz[j][k] = i2_ yz[j][k2] = i2 yz[j2][k] = i2 yz[j2][k2] = i xz[i][k] = j2_ xz[i][k2] = j2 xz[i2][k] = j2 xz[i2][k2] = j iter = iter + 1 end return xy end local currentlatin = nil implement({ name = "latinsquarecell", arguments = { "integer", "integer" }, actions = function(x, y) context(currentlatin and currentlatin[x][y] or "") end, }) implement({ name = "latinsquareinit", arguments = { "integer" }, actions = function(n) if n > 0 then currentlatin = latinsquare(n) else latin_reporter(("Invalid number %d: nothing will be provided"):format(n)) end end, }) implement({ name = "latinsquarereset", actions = function() currentlatin = nil end, }) implement({ name = "latinsquare", actions = function() local r = currentlatin if r then local n = #r for j = 1, n do bTR() for i = 1, n do bTD() context(r[i][j]) eTD() end eTR() end else latin_reporter("Latin square not initialized...") return end end, }) context-modules-20240428/tex/context/interface/0000755000175000017500000000000014613513620020314 5ustar hillehillecontext-modules-20240428/tex/context/interface/third/0000755000175000017500000000000014613513621021427 5ustar hillehillecontext-modules-20240428/tex/context/interface/third/t-simpleslides.xml0000644000175000017500000002302614416606660025121 0ustar hillehille context-modules-20240428/tex/context/interface/third/t-memo.xml0000644000175000017500000003137413202427660023357 0ustar hillehille context-modules-20240428/tex/context/interface/third/t-cyrillicnumbers.xml0000644000175000017500000000630012132362214025611 0ustar hillehille context-modules-20240428/tex/context/interface/third/t-transliterator.xml0000644000175000017500000000412412131046154025463 0ustar hillehille context-modules-20240428/tex/context/interface/third/t-mathsets.xml0000644000175000017500000000210511043643004024231 0ustar hillehille context-modules-20240428/tex/context/interface/third/t-letter.xml0000644000175000017500000003434413202427660023721 0ustar hillehille context-modules-20240428/tlpkg/0000755000175000017500000000000014613513620015211 5ustar hillehillecontext-modules-20240428/tlpkg/tlpobj/0000755000175000017500000000000014613513621016504 5ustar hillehillecontext-modules-20240428/tlpkg/tlpobj/context-gnuplot.doc.tlpobj0000644000175000017500000000066213435643634023653 0ustar hillehillename context-gnuplot.doc category ConTeXt revision 47085 shortdesc doc files of context-gnuplot relocated 1 docfiles size=120 RELOC/doc/context/third/gnuplot/VERSION RELOC/doc/context/third/gnuplot/example.plt RELOC/doc/context/third/gnuplot/fullpage-example.pdf RELOC/doc/context/third/gnuplot/fullpage-example.tex RELOC/doc/context/third/gnuplot/gnuplot-context-doc.pdf RELOC/doc/context/third/gnuplot/gnuplot-context-doc.tex context-modules-20240428/tlpkg/tlpobj/context-texlive.tlpobj0000644000175000017500000000275714572207120023073 0ustar hillehillename context-texlive category Package revision 70437 shortdesc TL-specific helpers for ConTeXt (caches, papersize) longdesc TL distributes cont-sys.mkxl and cont-sys.mkiv files to update longdesc the ConTeXt filename cache if the system ls-R files are longdesc modified (typically by mktexlsr). It also sets the default longdesc paper size from the context-papersize.tex file which TeX Live longdesc creates/updates (in tlpkg/TLPaper.pm). TL also includes stubs longdesc to run the luatools, contextjit, and mtxrunjit scripts. depend context-texlive.ARCH runfiles size=16 texmf-dist/scripts/context-texlive/stubs-mkiv/unix/contextjit texmf-dist/scripts/context-texlive/stubs-mkiv/unix/luatools texmf-dist/scripts/context-texlive/stubs-mkiv/unix/mtxrunjit texmf-dist/scripts/context-texlive/stubs-mkiv/win64/contextjit.cmd texmf-dist/scripts/context-texlive/stubs-mkiv/win64/luatools.cmd texmf-dist/scripts/context-texlive/stubs-mkiv/win64/mtxrunjit.cmd texmf-dist/scripts/context-texlive/stubs/unix/ctxtools texmf-dist/scripts/context-texlive/stubs/unix/pstopdf texmf-dist/scripts/context-texlive/stubs/unix/texexec texmf-dist/scripts/context-texlive/stubs/unix/texmfstart texmf-dist/scripts/context-texlive/stubs/win64/ctxtools.cmd texmf-dist/scripts/context-texlive/stubs/win64/pstopdf.cmd texmf-dist/scripts/context-texlive/stubs/win64/texexec.cmd texmf-dist/scripts/context-texlive/stubs/win64/texmfstart.cmd texmf-dist/tex/context/texlive/cont-sys.mkiv texmf-dist/tex/context/texlive/cont-sys.mkxl context-modules-20240428/tlpkg/tlpobj/context-cyrillicnumbers.tlpobj0000644000175000017500000000124413435643633024621 0ustar hillehillename context-cyrillicnumbers category ConTeXt revision 47085 shortdesc Write numbers as cyrillic glyphs relocated 1 longdesc The package extends ConTeXt's system of number conversion, by longdesc adding numeration using cyrillic letters. depend context runfiles size=10 RELOC/tex/context/interface/third/t-cyrillicnumbers.xml RELOC/tex/context/third/cyrillicnumbers/cyrillicnumbers.lua RELOC/tex/context/third/cyrillicnumbers/t-cyrillicnumbers.mkii RELOC/tex/context/third/cyrillicnumbers/t-cyrillicnumbers.mkvi catalogue-ctan /macros/context/contrib/context-cyrillicnumbers catalogue-date 2016-06-24 19:18:15 +0200 catalogue-license bsd catalogue-topics cyrillic numbers context-modules-20240428/tlpkg/tlpobj/context-notes-zh-cn.tlpobj0000644000175000017500000000116214411672047023553 0ustar hillehillename context-notes-zh-cn category Package revision 66725 shortdesc Notes on using ConTeXt MkIV relocated 1 longdesc An introductory tutorial on ConTeXt, in Chinese. The document longdesc covers ConTeXt installation, fonts, layout design, longdesc cross-reference, project structure, metafun and presentation longdesc design. depend context catalogue-contact-bugs https://github.com/liyanrui/ConTeXt-notes/issues catalogue-contact-home https://liyanrui.github.io catalogue-contact-repository https://github.com/liyanrui/ConTeXt-notes catalogue-ctan /info/context-notes-zh-cn catalogue-license gpl3 catalogue-topics chinese-doc context-modules-20240428/tlpkg/tlpobj/context-collating-marks.tlpobj0000644000175000017500000000113514517576221024501 0ustar hillehillename context-collating-marks category ConTeXt revision 68696 shortdesc Environment to place collating marks on the spine of a section relocated 1 longdesc This module provides a possibility to place collating marks on longdesc the spines of sections when using imposition. Placing collating longdesc marks is a method to make the correct sequence of sections of a longdesc book block visible. depend context runfiles size=2 RELOC/tex/context/third/collating-marks/t-collatingmarks.mkiv catalogue-ctan /macros/context/contrib/context-collating-marks catalogue-license pd catalogue-topics book-pub context context-modules-20240428/tlpkg/tlpobj/context-letter.doc.tlpobj0000644000175000017500000000031114133133542023435 0ustar hillehillename context-letter.doc category ConTeXt revision 60787 shortdesc doc files of context-letter relocated 1 docfiles size=2 RELOC/doc/context/third/letter/README RELOC/doc/context/third/letter/VERSION context-modules-20240428/tlpkg/tlpobj/context-filter.doc.tlpobj0000644000175000017500000000031614204037647023440 0ustar hillehillename context-filter.doc category ConTeXt revision 62070 shortdesc doc files of context-filter relocated 1 docfiles size=10 RELOC/doc/context/third/filter/VERSION RELOC/doc/context/third/filter/filter.txt context-modules-20240428/tlpkg/tlpobj/context-simpleslides.doc.tlpobj0000644000175000017500000000427514427300346024654 0ustar hillehillename context-simpleslides.doc category ConTeXt revision 67070 shortdesc doc files of context-simpleslides relocated 1 docfiles size=2065 RELOC/doc/context/third/simpleslides/VERSION RELOC/doc/context/third/simpleslides/example.pdf RELOC/doc/context/third/simpleslides/example.tex RELOC/doc/context/third/simpleslides/simpleslides.pdf RELOC/doc/context/third/simpleslides/simpleslides.tex RELOC/doc/context/third/simpleslides/solutions/generic-talk-15min-45min.tex RELOC/doc/context/third/simpleslides/solutions/speaker_introduction-2min.tex RELOC/doc/context/third/simpleslides/solutions/style-template.tex RELOC/doc/context/third/simpleslides/styles/BigNumber-blue.pdf RELOC/doc/context/third/simpleslides/styles/BigNumber-red.pdf RELOC/doc/context/third/simpleslides/styles/BottomSquares.pdf RELOC/doc/context/third/simpleslides/styles/Boxed.pdf RELOC/doc/context/third/simpleslides/styles/Ellipse.pdf RELOC/doc/context/third/simpleslides/styles/Embossed.pdf RELOC/doc/context/third/simpleslides/styles/Framed-square.pdf RELOC/doc/context/third/simpleslides/styles/Framed-stripe.pdf RELOC/doc/context/third/simpleslides/styles/FramedTitle.pdf RELOC/doc/context/third/simpleslides/styles/HorizontalStripes-blue.pdf RELOC/doc/context/third/simpleslides/styles/HorizontalStripes-green.pdf RELOC/doc/context/third/simpleslides/styles/HorizontalStripes-red.pdf RELOC/doc/context/third/simpleslides/styles/NarrowStripes-blue.pdf RELOC/doc/context/third/simpleslides/styles/NarrowStripes-green.pdf RELOC/doc/context/third/simpleslides/styles/NarrowStripes-red.pdf RELOC/doc/context/third/simpleslides/styles/RainbowStripe.pdf RELOC/doc/context/third/simpleslides/styles/Rounded.pdf RELOC/doc/context/third/simpleslides/styles/Shaded-blue.pdf RELOC/doc/context/third/simpleslides/styles/Shaded-bluered.pdf RELOC/doc/context/third/simpleslides/styles/Shaded-green.pdf RELOC/doc/context/third/simpleslides/styles/SideSquares.pdf RELOC/doc/context/third/simpleslides/styles/SideToc.pdf RELOC/doc/context/third/simpleslides/styles/Split.pdf RELOC/doc/context/third/simpleslides/styles/Sunrise.pdf RELOC/doc/context/third/simpleslides/styles/Swoosh.pdf RELOC/doc/context/third/simpleslides/styles/ThickStripes.pdf context-modules-20240428/tlpkg/tlpobj/jmn.tlpobj0000644000175000017500000000073613435645505020522 0ustar hillehillename jmn category Package revision 45751 shortdesc special fonts for ConTeXt relocated 1 runfiles size=22 RELOC/fonts/afm/jmn/hans/hans-sh.afm RELOC/fonts/afm/jmn/hans/hans.afm RELOC/fonts/enc/dvips/jmn/hans.enc RELOC/fonts/map/dvips/jmn/hans.map RELOC/fonts/tfm/jmn/hans/hans-sh.tfm RELOC/fonts/tfm/jmn/hans/hans.tfm RELOC/fonts/type1/jmn/hans/hans-sh.pfb RELOC/fonts/type1/jmn/hans/hans-sh.pfm RELOC/fonts/type1/jmn/hans/hans.pfb RELOC/fonts/type1/jmn/hans/hans.pfm context-modules-20240428/tlpkg/tlpobj/context-typescripts.doc.tlpobj0000644000175000017500000000033514115003215024526 0ustar hillehillename context-typescripts.doc category ConTeXt revision 60422 shortdesc doc files of context-typescripts relocated 1 docfiles size=2 RELOC/doc/context/third/typescripts/README RELOC/doc/context/third/typescripts/VERSION context-modules-20240428/tlpkg/tlpobj/context-visualcounter.tlpobj0000644000175000017500000000121313435643643024313 0ustar hillehillename context-visualcounter category ConTeXt revision 47085 shortdesc Visual display of ConTeXt counters relocated 1 longdesc A typical document usually contains many counters: page longdesc numbers, section numbers, itemizations, enumerations, theorems, longdesc and so on. This module provides a visual display for such longdesc counters. depend context runfiles size=4 RELOC/tex/context/third/visualcounter/t-visualcounter.mkvi catalogue-contact-repository https://github.com/adityam/visualcounter catalogue-ctan /macros/context/contrib/context-visualcounter catalogue-date 2018-08-11 15:25:56 +0200 catalogue-license bsd2 catalogue-topics context context-modules-20240428/tlpkg/tlpobj/context-letter.tlpobj0000644000175000017500000000556114133133543022706 0ustar hillehillename context-letter category ConTeXt revision 60787 shortdesc ConTeXt package for writing letters relocated 1 longdesc A means of writing 'vanilla' letters and memos is provided, longdesc with support covering ConTeXt Mkii and Mkiv. The design of longdesc letters may be amended by a wide range of style specifications. depend context runfiles size=77 RELOC/tex/context/interface/third/t-letter.xml RELOC/tex/context/interface/third/t-memo.xml RELOC/tex/context/third/letter/base/s-cor-00.lua RELOC/tex/context/third/letter/base/s-cor-00.mkvi RELOC/tex/context/third/letter/base/s-cor-01.mkvi RELOC/tex/context/third/letter/base/s-cor-02.mkvi RELOC/tex/context/third/letter/base/s-cor-03.mkvi RELOC/tex/context/third/letter/base/s-cor-06.mkvi RELOC/tex/context/third/letter/style/letter-imp-blockstyle.mkiv RELOC/tex/context/third/letter/style/letter-imp-default.mkiv RELOC/tex/context/third/letter/style/letter-imp-dina.mkiv RELOC/tex/context/third/letter/style/letter-imp-dinb.mkiv RELOC/tex/context/third/letter/style/letter-imp-dutch.mkiv RELOC/tex/context/third/letter/style/letter-imp-french.mkiv RELOC/tex/context/third/letter/style/letter-imp-fullblock.mkiv RELOC/tex/context/third/letter/style/letter-imp-gbrief.mkiv RELOC/tex/context/third/letter/style/letter-imp-hanging.mkiv RELOC/tex/context/third/letter/style/letter-imp-knuth.mkiv RELOC/tex/context/third/letter/style/letter-imp-modified.mkiv RELOC/tex/context/third/letter/style/letter-imp-semiblock.mkiv RELOC/tex/context/third/letter/style/letter-imp-setups.mkiv RELOC/tex/context/third/letter/style/letter-imp-simplified.mkiv RELOC/tex/context/third/letter/style/letter-imp-swiss.mkiv RELOC/tex/context/third/letter/style/letter-imp-swissleft.mkiv RELOC/tex/context/third/letter/style/memo-imp-default.mkiv RELOC/tex/context/third/letter/style/memo-imp-margin.mkiv RELOC/tex/context/third/letter/style/memo-imp-memo.mkiv RELOC/tex/context/third/letter/style/memo-imp-table.mkiv RELOC/tex/context/third/letter/style/resume-imp-casual-blue.mkiv RELOC/tex/context/third/letter/style/resume-imp-casual-green.mkiv RELOC/tex/context/third/letter/style/resume-imp-casual-grey.mkiv RELOC/tex/context/third/letter/style/resume-imp-casual-orange.mkiv RELOC/tex/context/third/letter/style/resume-imp-casual-red.mkiv RELOC/tex/context/third/letter/style/resume-imp-casual.mkiv RELOC/tex/context/third/letter/style/resume-imp-classic-blue.mkiv RELOC/tex/context/third/letter/style/resume-imp-classic-green.mkiv RELOC/tex/context/third/letter/style/resume-imp-classic-grey.mkiv RELOC/tex/context/third/letter/style/resume-imp-classic-orange.mkiv RELOC/tex/context/third/letter/style/resume-imp-classic-red.mkiv RELOC/tex/context/third/letter/style/resume-imp-classic.mkiv RELOC/tex/context/third/letter/style/resume-imp-default.mkiv catalogue-ctan /macros/context/contrib/context-letter catalogue-license gpl catalogue-topics letter context-modules-20240428/tlpkg/tlpobj/context-gnuplot.tlpobj0000644000175000017500000000145413435643634023107 0ustar hillehillename context-gnuplot category ConTeXt revision 47085 shortdesc Inclusion of Gnuplot graphs in ConTeXt relocated 1 longdesc Enables simple creation and inclusion of graphs with Gnuplot. longdesc The package writes a script into temporary file, runs Gnuplot longdesc and includes the resulting graphic directly into the document. longdesc See the ConTeXt Garden package page for further details. depend context runfiles size=27 RELOC/metapost/context/third/gnuplot/mp-gnuplot.mp RELOC/tex/context/third/gnuplot/t-gnuplot.mkii RELOC/tex/context/third/gnuplot/t-gnuplot.mkiv catalogue-also gnuplottex catalogue-contact-home http://wiki.contextgarden.net/Gnuplot catalogue-ctan /macros/context/contrib/context-gnuplot catalogue-date 2017-04-18 05:31:40 +0200 catalogue-license gpl catalogue-topics graphics-inline context-modules-20240428/tlpkg/tlpobj/context-cyrillicnumbers.doc.tlpobj0000644000175000017500000000063513435643632025367 0ustar hillehillename context-cyrillicnumbers.doc category ConTeXt revision 47085 shortdesc doc files of context-cyrillicnumbers relocated 1 docfiles size=58 RELOC/doc/context/third/cyrillicnumbers/COPYING RELOC/doc/context/third/cyrillicnumbers/README.rst RELOC/doc/context/third/cyrillicnumbers/VERSION RELOC/doc/context/third/cyrillicnumbers/cyrillicnumbers.pdf RELOC/doc/context/third/cyrillicnumbers/cyrillicnumbers.tex context-modules-20240428/tlpkg/tlpobj/context-handlecsv.doc.tlpobj0000644000175000017500000000042014565765410024124 0ustar hillehillename context-handlecsv.doc category ConTeXt revision 70065 shortdesc doc files of context-handlecsv relocated 1 docfiles size=244 RELOC/doc/context/third/handlecsv/VERSION RELOC/doc/context/third/handlecsv/handlecsv.epub RELOC/doc/context/third/handlecsv/handlecsv.pdf context-modules-20240428/tlpkg/tlpobj/context-handlecsv.tlpobj0000644000175000017500000000130314565765410023361 0ustar hillehillename context-handlecsv category ConTeXt revision 70065 shortdesc Data merging for automatic document creation relocated 1 longdesc The package handles csv data merging for automatic document longdesc creation. depend context runfiles size=22 RELOC/tex/context/third/handlecsv/t-handlecsv-extra.lua RELOC/tex/context/third/handlecsv/t-handlecsv-tools.lua RELOC/tex/context/third/handlecsv/t-handlecsv.lua RELOC/tex/context/third/handlecsv/t-handlecsv.tex catalogue-contact-repository https://github.com/ousia/handlecsv catalogue-contact-support https://github.com/ousia/handlecsv/issues catalogue-ctan /macros/context/contrib/context-handlecsv catalogue-license gpl3 catalogue-topics context csv-support context-modules-20240428/tlpkg/tlpobj/context-sudoku.tlpobj0000644000175000017500000000133214437471523022723 0ustar hillehillename context-sudoku category ConTeXt revision 67289 shortdesc Sudokus for ConTeXt relocated 1 longdesc A port of Peter Norvig's sudoku solver to Lua/ConTeXt. It longdesc provides four basic commands for typesettings sudokus, as well longdesc as a command handler. depend context runfiles size=15 RELOC/tex/context/third/sudoku/t-sudoku-test-01.txt RELOC/tex/context/third/sudoku/t-sudoku-test-02.txt RELOC/tex/context/third/sudoku/t-sudoku-test-03.txt RELOC/tex/context/third/sudoku/t-sudoku.lua RELOC/tex/context/third/sudoku/t-sudoku.mkvi catalogue-contact-repository https://github.com/JairoAdelRio6/context-sudoku catalogue-ctan /macros/context/contrib/context-sudoku catalogue-license mit catalogue-topics context games context-modules-20240428/tlpkg/tlpobj/context-pocketdiary.doc.tlpobj0000644000175000017500000000062214422605362024466 0ustar hillehillename context-pocketdiary.doc category ConTeXt revision 66953 shortdesc doc files of context-pocketdiary relocated 1 docfiles size=58 RELOC/doc/context/third/pocketdiary/LICENSE RELOC/doc/context/third/pocketdiary/README.md RELOC/doc/context/third/pocketdiary/VERSION RELOC/doc/context/third/pocketdiary/t-pocketdiary-module-doc.pdf RELOC/doc/context/third/pocketdiary/t-pocketdiary-module-doc.tex context-modules-20240428/tlpkg/tlpobj/context-typescripts.tlpobj0000644000175000017500000000456714115003215023775 0ustar hillehillename context-typescripts category ConTeXt revision 60422 shortdesc Small modules to load various fonts for use in ConTeXt relocated 1 longdesc The package provides files offering interfaces to 33 publicly longdesc available fonts (or collections of fonts from the same longdesc foundry); each is available in a .mkii and a .mkiv version. depend context runfiles size=35 RELOC/tex/context/third/typescripts/type-imp-adobe.mkiv RELOC/tex/context/third/typescripts/type-imp-aller.mkiv RELOC/tex/context/third/typescripts/type-imp-anivers.mkiv RELOC/tex/context/third/typescripts/type-imp-audimat.mkiv RELOC/tex/context/third/typescripts/type-imp-axel.mkiv RELOC/tex/context/third/typescripts/type-imp-azuro.mkiv RELOC/tex/context/third/typescripts/type-imp-calluna.mkiv RELOC/tex/context/third/typescripts/type-imp-charissil.mkiv RELOC/tex/context/third/typescripts/type-imp-delicious.mkiv RELOC/tex/context/third/typescripts/type-imp-diavlo.mkiv RELOC/tex/context/third/typescripts/type-imp-droid.mkiv RELOC/tex/context/third/typescripts/type-imp-ernestine.mkiv RELOC/tex/context/third/typescripts/type-imp-fertigo.mkiv RELOC/tex/context/third/typescripts/type-imp-fontin.mkiv RELOC/tex/context/third/typescripts/type-imp-goudysans.mkiv RELOC/tex/context/third/typescripts/type-imp-itccharter.mkiv RELOC/tex/context/third/typescripts/type-imp-junicode.mkiv RELOC/tex/context/third/typescripts/type-imp-justus.mkiv RELOC/tex/context/third/typescripts/type-imp-kaffeesatz.mkiv RELOC/tex/context/third/typescripts/type-imp-kontrapunkt.mkiv RELOC/tex/context/third/typescripts/type-imp-luxi.mkiv RELOC/tex/context/third/typescripts/type-imp-miso.mkiv RELOC/tex/context/third/typescripts/type-imp-museo.mkiv RELOC/tex/context/third/typescripts/type-imp-office.mkiv RELOC/tex/context/third/typescripts/type-imp-pigiarniq.mkiv RELOC/tex/context/third/typescripts/type-imp-sabon.mkiv RELOC/tex/context/third/typescripts/type-imp-tallys.mkiv RELOC/tex/context/third/typescripts/type-imp-tuffy.mkiv RELOC/tex/context/third/typescripts/type-imp-ubuntu.mkiv RELOC/tex/context/third/typescripts/type-imp-uqammaq.mkiv RELOC/tex/context/third/typescripts/type-imp-vera.mkiv RELOC/tex/context/third/typescripts/type-imp-verajja.mkiv RELOC/tex/context/third/typescripts/type-imp-vollkorn.mkiv catalogue-ctan /macros/context/contrib/context-typescripts catalogue-license gpl2 catalogue-topics font-use context context-modules-20240428/tlpkg/tlpobj/context-pocketdiary.tlpobj0000644000175000017500000000211514422605362023721 0ustar hillehillename context-pocketdiary category ConTeXt revision 66953 shortdesc A personal organiser relocated 1 longdesc PocketDiary is a calendar module, enabling to prepare various longdesc calendars from day- to week, month- and year-calendars based on longdesc the ideas contained in PocketMods, having 8 pages arranged on a longdesc A4 single-sided printed sheet of paper. The module comes with longdesc different templates for notes etc. The module provides sun and longdesc moon data calculations depend context runfiles size=30 RELOC/tex/context/third/pocketdiary/Moonphase/moons-MP.mkiv RELOC/tex/context/third/pocketdiary/Moonphase/t-moonphase.lua RELOC/tex/context/third/pocketdiary/PocketDiary.mkiv RELOC/tex/context/third/pocketdiary/Solar/sun-MP.mkiv RELOC/tex/context/third/pocketdiary/Solar/t-solar.lua RELOC/tex/context/third/pocketdiary/t-calendar.lua RELOC/tex/context/third/pocketdiary/t-pocketdiary.lua RELOC/tex/context/third/pocketdiary/t-pocketdiary.mkiv catalogue-ctan /macros/context/contrib/context-pocketdiary catalogue-license pd catalogue-topics calendar calculation context context-modules-20240428/tlpkg/tlpobj/context-sudoku.doc.tlpobj0000644000175000017500000000036414437471522023472 0ustar hillehillename context-sudoku.doc category ConTeXt revision 67289 shortdesc doc files of context-sudoku relocated 1 docfiles size=3 RELOC/doc/context/third/sudoku/LICENSE RELOC/doc/context/third/sudoku/README.md RELOC/doc/context/third/sudoku/VERSION context-modules-20240428/tlpkg/tlpobj/context-squares.doc.tlpobj0000644000175000017500000000044714566757574023666 0ustar hillehillename context-squares.doc category ConTeXt revision 70128 shortdesc doc files of context-squares relocated 1 docfiles size=4 RELOC/doc/context/third/squares/CHANGELOG.md RELOC/doc/context/third/squares/LICENSE RELOC/doc/context/third/squares/README.md RELOC/doc/context/third/squares/VERSION context-modules-20240428/tlpkg/tlpobj/context-legacy.tlpobj0000644000175000017500000011213414567417115022661 0ustar hillehillename context-legacy category Package revision 70191 shortdesc The ConTeXt macro package, MkII longdesc In TeX Live, ConTeXt MkII is split from current ConTeXt (MkIV longdesc and newer.) See https://contextgarden.net and longdesc https://pragma-ade.com for information about ConTeXt. depend context depend context-legacy.ARCH depend metapost depend mptopdf depend pdftex depend xetex execute AddFormat name=cont-en engine=pdftex options="-8bit *cont-en.mkii" execute AddFormat name=cont-en engine=xetex options="-8bit *cont-en.mkii" runfiles size=4397 texmf-dist/bibtex/bst/context/mkii/cont-ab.bst texmf-dist/bibtex/bst/context/mkii/cont-au.bst texmf-dist/bibtex/bst/context/mkii/cont-no.bst texmf-dist/bibtex/bst/context/mkii/cont-ti.bst texmf-dist/context/data/texfont/type-buy.dat texmf-dist/context/data/texfont/type-fsf.dat texmf-dist/context/data/texfont/type-ghz.dat texmf-dist/context/data/texfont/type-tmf.dat texmf-dist/metapost/context/base/mpii/metafun.mpii texmf-dist/metapost/context/base/mpii/mp-back.mpii texmf-dist/metapost/context/base/mpii/mp-base.mpii texmf-dist/metapost/context/base/mpii/mp-butt.mpii texmf-dist/metapost/context/base/mpii/mp-char.mpii texmf-dist/metapost/context/base/mpii/mp-core.mpii texmf-dist/metapost/context/base/mpii/mp-figs.mpii texmf-dist/metapost/context/base/mpii/mp-fobg.mpii texmf-dist/metapost/context/base/mpii/mp-form.mpii texmf-dist/metapost/context/base/mpii/mp-func.mpii texmf-dist/metapost/context/base/mpii/mp-grid.mpii texmf-dist/metapost/context/base/mpii/mp-grph.mpii texmf-dist/metapost/context/base/mpii/mp-page.mpii texmf-dist/metapost/context/base/mpii/mp-shap.mpii texmf-dist/metapost/context/base/mpii/mp-spec.mpii texmf-dist/metapost/context/base/mpii/mp-step.mpii texmf-dist/metapost/context/base/mpii/mp-symb.mpii texmf-dist/metapost/context/base/mpii/mp-text.mpii texmf-dist/metapost/context/base/mpii/mp-tool.mpii texmf-dist/metapost/context/base/mpii/mp-txts.mpii texmf-dist/scripts/context/ruby/base/ctx.rb texmf-dist/scripts/context/ruby/base/exa.rb texmf-dist/scripts/context/ruby/base/file.rb texmf-dist/scripts/context/ruby/base/kpse.rb texmf-dist/scripts/context/ruby/base/kpse/drb.rb texmf-dist/scripts/context/ruby/base/kpse/soap.rb texmf-dist/scripts/context/ruby/base/kpse/trees.rb texmf-dist/scripts/context/ruby/base/kpsedirect.rb texmf-dist/scripts/context/ruby/base/kpsefast.rb texmf-dist/scripts/context/ruby/base/kpseremote.rb texmf-dist/scripts/context/ruby/base/kpserunner.rb texmf-dist/scripts/context/ruby/base/logger.rb texmf-dist/scripts/context/ruby/base/merge.rb texmf-dist/scripts/context/ruby/base/mp.rb texmf-dist/scripts/context/ruby/base/pdf.rb texmf-dist/scripts/context/ruby/base/state.rb texmf-dist/scripts/context/ruby/base/switch.rb texmf-dist/scripts/context/ruby/base/system.rb texmf-dist/scripts/context/ruby/base/tex.rb texmf-dist/scripts/context/ruby/base/texutil.rb texmf-dist/scripts/context/ruby/base/tool.rb texmf-dist/scripts/context/ruby/base/variables.rb texmf-dist/scripts/context/ruby/concheck.rb texmf-dist/scripts/context/ruby/ctxtools.rb texmf-dist/scripts/context/ruby/graphics/gs.rb texmf-dist/scripts/context/ruby/graphics/inkscape.rb texmf-dist/scripts/context/ruby/graphics/magick.rb texmf-dist/scripts/context/ruby/imgtopdf.rb texmf-dist/scripts/context/ruby/pdftools.rb texmf-dist/scripts/context/ruby/pstopdf.rb texmf-dist/scripts/context/ruby/rlxtools.rb texmf-dist/scripts/context/ruby/rscortool.rb texmf-dist/scripts/context/ruby/rsfiltool.rb texmf-dist/scripts/context/ruby/rslb/base.rb texmf-dist/scripts/context/ruby/rslibtool.rb texmf-dist/scripts/context/ruby/runtools.rb texmf-dist/scripts/context/ruby/texexec.rb texmf-dist/scripts/context/ruby/texmfstart.rb texmf-dist/scripts/context/ruby/textools.rb texmf-dist/scripts/context/ruby/texutil.rb texmf-dist/scripts/context/ruby/tmftools.rb texmf-dist/scripts/context/ruby/xmltools.rb texmf-dist/tex/context/base/mkii/anch-bar.mkii texmf-dist/tex/context/base/mkii/anch-pgr.mkii texmf-dist/tex/context/base/mkii/anch-pos.mkii texmf-dist/tex/context/base/mkii/anch-snc.mkii texmf-dist/tex/context/base/mkii/bibl-tra.mkii texmf-dist/tex/context/base/mkii/buff-ini.mkii texmf-dist/tex/context/base/mkii/buff-ver.mkii texmf-dist/tex/context/base/mkii/catc-act.mkii texmf-dist/tex/context/base/mkii/catc-ctx.mkii texmf-dist/tex/context/base/mkii/catc-def.mkii texmf-dist/tex/context/base/mkii/catc-ini.mkii texmf-dist/tex/context/base/mkii/catc-sym.mkii texmf-dist/tex/context/base/mkii/catc-xml.mkii texmf-dist/tex/context/base/mkii/colo-ema.mkii texmf-dist/tex/context/base/mkii/colo-ext.mkii texmf-dist/tex/context/base/mkii/colo-hex.mkii texmf-dist/tex/context/base/mkii/colo-ini.mkii texmf-dist/tex/context/base/mkii/colo-rgb.mkii texmf-dist/tex/context/base/mkii/colo-run.mkii texmf-dist/tex/context/base/mkii/colo-x11.mkii texmf-dist/tex/context/base/mkii/colo-xwi.mkii texmf-dist/tex/context/base/mkii/cont-cs.mkii texmf-dist/tex/context/base/mkii/cont-de.mkii texmf-dist/tex/context/base/mkii/cont-en.mkii texmf-dist/tex/context/base/mkii/cont-err.mkii texmf-dist/tex/context/base/mkii/cont-fil.mkii texmf-dist/tex/context/base/mkii/cont-fr.mkii texmf-dist/tex/context/base/mkii/cont-gb.mkii texmf-dist/tex/context/base/mkii/cont-it.mkii texmf-dist/tex/context/base/mkii/cont-log.mkii texmf-dist/tex/context/base/mkii/cont-new.mkii texmf-dist/tex/context/base/mkii/cont-nl.mkii texmf-dist/tex/context/base/mkii/cont-ro.mkii texmf-dist/tex/context/base/mkii/cont-sys.ori texmf-dist/tex/context/base/mkii/context.mkii texmf-dist/tex/context/base/mkii/core-con.mkii texmf-dist/tex/context/base/mkii/core-ctx.mkii texmf-dist/tex/context/base/mkii/core-def.mkii texmf-dist/tex/context/base/mkii/core-env.mkii texmf-dist/tex/context/base/mkii/core-fil.mkii texmf-dist/tex/context/base/mkii/core-fnt.mkii texmf-dist/tex/context/base/mkii/core-gen.mkii texmf-dist/tex/context/base/mkii/core-ini.mkii texmf-dist/tex/context/base/mkii/core-job.mkii texmf-dist/tex/context/base/mkii/core-mis.mkii texmf-dist/tex/context/base/mkii/core-par.mkii texmf-dist/tex/context/base/mkii/core-stg.mkii texmf-dist/tex/context/base/mkii/core-sys.mkii texmf-dist/tex/context/base/mkii/core-two.mkii texmf-dist/tex/context/base/mkii/core-uti.mkii texmf-dist/tex/context/base/mkii/core-var.mkii texmf-dist/tex/context/base/mkii/enco-032.mkii texmf-dist/tex/context/base/mkii/enco-037.mkii texmf-dist/tex/context/base/mkii/enco-acc.mkii texmf-dist/tex/context/base/mkii/enco-agr.mkii texmf-dist/tex/context/base/mkii/enco-ans.mkii texmf-dist/tex/context/base/mkii/enco-cas.mkii texmf-dist/tex/context/base/mkii/enco-chi.mkii texmf-dist/tex/context/base/mkii/enco-com.mkii texmf-dist/tex/context/base/mkii/enco-cyr.mkii texmf-dist/tex/context/base/mkii/enco-def.mkii texmf-dist/tex/context/base/mkii/enco-ec.mkii texmf-dist/tex/context/base/mkii/enco-ecm.mkii texmf-dist/tex/context/base/mkii/enco-el.mkii texmf-dist/tex/context/base/mkii/enco-fde.mkii texmf-dist/tex/context/base/mkii/enco-ffr.mkii texmf-dist/tex/context/base/mkii/enco-fpl.mkii texmf-dist/tex/context/base/mkii/enco-fro.mkii texmf-dist/tex/context/base/mkii/enco-fsl.mkii texmf-dist/tex/context/base/mkii/enco-grk.mkii texmf-dist/tex/context/base/mkii/enco-heb.mkii texmf-dist/tex/context/base/mkii/enco-ibm.mkii texmf-dist/tex/context/base/mkii/enco-il2.mkii texmf-dist/tex/context/base/mkii/enco-ini.mkii texmf-dist/tex/context/base/mkii/enco-l7x.mkii texmf-dist/tex/context/base/mkii/enco-lat.mkii texmf-dist/tex/context/base/mkii/enco-mis.mkii texmf-dist/tex/context/base/mkii/enco-pdf.mkii texmf-dist/tex/context/base/mkii/enco-pfr.mkii texmf-dist/tex/context/base/mkii/enco-pol.mkii texmf-dist/tex/context/base/mkii/enco-qx.mkii texmf-dist/tex/context/base/mkii/enco-raw.mkii texmf-dist/tex/context/base/mkii/enco-run.mkii texmf-dist/tex/context/base/mkii/enco-t5.mkii texmf-dist/tex/context/base/mkii/enco-tbo.mkii texmf-dist/tex/context/base/mkii/enco-uc.mkii texmf-dist/tex/context/base/mkii/enco-vis.mkii texmf-dist/tex/context/base/mkii/enco-vna.mkii texmf-dist/tex/context/base/mkii/enco-win.mkii texmf-dist/tex/context/base/mkii/enco-x5.mkii texmf-dist/tex/context/base/mkii/filt-bas.mkii texmf-dist/tex/context/base/mkii/filt-ini.mkii texmf-dist/tex/context/base/mkii/font-arb.mkii texmf-dist/tex/context/base/mkii/font-bfm.mkii texmf-dist/tex/context/base/mkii/font-chi.mkii texmf-dist/tex/context/base/mkii/font-heb.mkii texmf-dist/tex/context/base/mkii/font-ini.mkii texmf-dist/tex/context/base/mkii/font-jap.mkii texmf-dist/tex/context/base/mkii/font-run.mkii texmf-dist/tex/context/base/mkii/font-uni.mkii texmf-dist/tex/context/base/mkii/font-unk.mkii texmf-dist/tex/context/base/mkii/font-xtx.mkii texmf-dist/tex/context/base/mkii/grph-fig.mkii texmf-dist/tex/context/base/mkii/grph-inc.mkii texmf-dist/tex/context/base/mkii/grph-trf.mkii texmf-dist/tex/context/base/mkii/hand-def.mkii texmf-dist/tex/context/base/mkii/hand-ini.mkii texmf-dist/tex/context/base/mkii/java-ans.mkii texmf-dist/tex/context/base/mkii/java-exa.mkii texmf-dist/tex/context/base/mkii/java-fil.mkii texmf-dist/tex/context/base/mkii/java-fld.mkii texmf-dist/tex/context/base/mkii/java-ini.mkii texmf-dist/tex/context/base/mkii/java-stp.mkii texmf-dist/tex/context/base/mkii/lang-alt.mkii texmf-dist/tex/context/base/mkii/lang-ana.mkii texmf-dist/tex/context/base/mkii/lang-art.mkii texmf-dist/tex/context/base/mkii/lang-bal.mkii texmf-dist/tex/context/base/mkii/lang-cel.mkii texmf-dist/tex/context/base/mkii/lang-chi.mkii texmf-dist/tex/context/base/mkii/lang-ctx.mkii texmf-dist/tex/context/base/mkii/lang-cyr.mkii texmf-dist/tex/context/base/mkii/lang-dis.mkii texmf-dist/tex/context/base/mkii/lang-frd.mkii texmf-dist/tex/context/base/mkii/lang-frq.mkii texmf-dist/tex/context/base/mkii/lang-ger.mkii texmf-dist/tex/context/base/mkii/lang-grk.mkii texmf-dist/tex/context/base/mkii/lang-ind.mkii texmf-dist/tex/context/base/mkii/lang-ini.mkii texmf-dist/tex/context/base/mkii/lang-ita.mkii texmf-dist/tex/context/base/mkii/lang-jap.mkii texmf-dist/tex/context/base/mkii/lang-lab.mkii texmf-dist/tex/context/base/mkii/lang-mis.mkii texmf-dist/tex/context/base/mkii/lang-run.mkii texmf-dist/tex/context/base/mkii/lang-sla.mkii texmf-dist/tex/context/base/mkii/lang-spa.mkii texmf-dist/tex/context/base/mkii/lang-spe.mkii texmf-dist/tex/context/base/mkii/lang-ura.mkii texmf-dist/tex/context/base/mkii/lang-url.mkii texmf-dist/tex/context/base/mkii/lang-vn.mkii texmf-dist/tex/context/base/mkii/math-ams.mkii texmf-dist/tex/context/base/mkii/math-arr.mkii texmf-dist/tex/context/base/mkii/math-cow.mkii texmf-dist/tex/context/base/mkii/math-eul.mkii texmf-dist/tex/context/base/mkii/math-fou.mkii texmf-dist/tex/context/base/mkii/math-frc.mkii texmf-dist/tex/context/base/mkii/math-ini.mkii texmf-dist/tex/context/base/mkii/math-lbr.mkii texmf-dist/tex/context/base/mkii/math-pln.mkii texmf-dist/tex/context/base/mkii/math-run.mkii texmf-dist/tex/context/base/mkii/math-tex.mkii texmf-dist/tex/context/base/mkii/math-tim.mkii texmf-dist/tex/context/base/mkii/math-uni.mkii texmf-dist/tex/context/base/mkii/meta-clp.mkii texmf-dist/tex/context/base/mkii/meta-dum.mkii texmf-dist/tex/context/base/mkii/meta-fig.mkii texmf-dist/tex/context/base/mkii/meta-ini.mkii texmf-dist/tex/context/base/mkii/meta-mis.mkii texmf-dist/tex/context/base/mkii/meta-nav.mkii texmf-dist/tex/context/base/mkii/meta-pag.mkii texmf-dist/tex/context/base/mkii/meta-pdf.mkii texmf-dist/tex/context/base/mkii/meta-pre.mkii texmf-dist/tex/context/base/mkii/meta-tex.mkii texmf-dist/tex/context/base/mkii/meta-txt.mkii texmf-dist/tex/context/base/mkii/meta-xml.mkii texmf-dist/tex/context/base/mkii/mult-aux.mkii texmf-dist/tex/context/base/mkii/mult-chk.mkii texmf-dist/tex/context/base/mkii/mult-com.mkii texmf-dist/tex/context/base/mkii/mult-con.mkii texmf-dist/tex/context/base/mkii/mult-cs.mkii texmf-dist/tex/context/base/mkii/mult-de.mkii texmf-dist/tex/context/base/mkii/mult-def.mkii texmf-dist/tex/context/base/mkii/mult-en.mkii texmf-dist/tex/context/base/mkii/mult-fr.mkii texmf-dist/tex/context/base/mkii/mult-fst.mkii texmf-dist/tex/context/base/mkii/mult-ini.mkii texmf-dist/tex/context/base/mkii/mult-it.mkii texmf-dist/tex/context/base/mkii/mult-mcs.mkii texmf-dist/tex/context/base/mkii/mult-mde.mkii texmf-dist/tex/context/base/mkii/mult-men.mkii texmf-dist/tex/context/base/mkii/mult-mfr.mkii texmf-dist/tex/context/base/mkii/mult-mit.mkii texmf-dist/tex/context/base/mkii/mult-mnl.mkii texmf-dist/tex/context/base/mkii/mult-mno.mkii texmf-dist/tex/context/base/mkii/mult-mpe.mkii texmf-dist/tex/context/base/mkii/mult-mro.mkii texmf-dist/tex/context/base/mkii/mult-nl.mkii texmf-dist/tex/context/base/mkii/mult-pe.mkii texmf-dist/tex/context/base/mkii/mult-ro.mkii texmf-dist/tex/context/base/mkii/mult-sys.mkii texmf-dist/tex/context/base/mkii/norm-alo.mkii texmf-dist/tex/context/base/mkii/norm-ctx.mkii texmf-dist/tex/context/base/mkii/norm-etx.mkii texmf-dist/tex/context/base/mkii/norm-ltx.mkii texmf-dist/tex/context/base/mkii/norm-ptx.mkii texmf-dist/tex/context/base/mkii/norm-tex.mkii texmf-dist/tex/context/base/mkii/norm-xtx.mkii texmf-dist/tex/context/base/mkii/pack-box.mkii texmf-dist/tex/context/base/mkii/pack-lyr.mkii texmf-dist/tex/context/base/mkii/pack-obj.mkii texmf-dist/tex/context/base/mkii/pack-rul.mkii texmf-dist/tex/context/base/mkii/page-app.mkii texmf-dist/tex/context/base/mkii/page-bck.mkii texmf-dist/tex/context/base/mkii/page-flw.mkii texmf-dist/tex/context/base/mkii/page-imp.mkii texmf-dist/tex/context/base/mkii/page-ini.mkii texmf-dist/tex/context/base/mkii/page-ins.mkii texmf-dist/tex/context/base/mkii/page-lay.mkii texmf-dist/tex/context/base/mkii/page-lin.mkii texmf-dist/tex/context/base/mkii/page-log.mkii texmf-dist/tex/context/base/mkii/page-mak.mkii texmf-dist/tex/context/base/mkii/page-mar.mkii texmf-dist/tex/context/base/mkii/page-mis.mkii texmf-dist/tex/context/base/mkii/page-mul.mkii texmf-dist/tex/context/base/mkii/page-not.mkii texmf-dist/tex/context/base/mkii/page-one.mkii texmf-dist/tex/context/base/mkii/page-par.mkii texmf-dist/tex/context/base/mkii/page-plg.mkii texmf-dist/tex/context/base/mkii/page-run.mkii texmf-dist/tex/context/base/mkii/page-set.mkii texmf-dist/tex/context/base/mkii/page-sid.mkii texmf-dist/tex/context/base/mkii/page-spr.mkii texmf-dist/tex/context/base/mkii/page-str.mkii texmf-dist/tex/context/base/mkii/page-txt.mkii texmf-dist/tex/context/base/mkii/pdfr-def.mkii texmf-dist/tex/context/base/mkii/pdfr-ec.mkii texmf-dist/tex/context/base/mkii/pdfr-il2.mkii texmf-dist/tex/context/base/mkii/prop-ini.mkii texmf-dist/tex/context/base/mkii/prop-lay.mkii texmf-dist/tex/context/base/mkii/prop-mis.mkii texmf-dist/tex/context/base/mkii/regi-8859-1.mkii texmf-dist/tex/context/base/mkii/regi-8859-10.mkii texmf-dist/tex/context/base/mkii/regi-8859-13.mkii texmf-dist/tex/context/base/mkii/regi-8859-15.mkii texmf-dist/tex/context/base/mkii/regi-8859-16.mkii texmf-dist/tex/context/base/mkii/regi-8859-2.mkii texmf-dist/tex/context/base/mkii/regi-8859-3.mkii texmf-dist/tex/context/base/mkii/regi-8859-4.mkii texmf-dist/tex/context/base/mkii/regi-8859-5.mkii texmf-dist/tex/context/base/mkii/regi-8859-7.mkii texmf-dist/tex/context/base/mkii/regi-8859-9.mkii texmf-dist/tex/context/base/mkii/regi-cp1250.mkii texmf-dist/tex/context/base/mkii/regi-cp1251.mkii texmf-dist/tex/context/base/mkii/regi-cp1252.mkii texmf-dist/tex/context/base/mkii/regi-cp1253.mkii texmf-dist/tex/context/base/mkii/regi-cp1254.mkii texmf-dist/tex/context/base/mkii/regi-cp1257.mkii texmf-dist/tex/context/base/mkii/regi-cyp.mkii texmf-dist/tex/context/base/mkii/regi-cyr.mkii texmf-dist/tex/context/base/mkii/regi-def.mkii texmf-dist/tex/context/base/mkii/regi-ibm.mkii texmf-dist/tex/context/base/mkii/regi-ini.mkii texmf-dist/tex/context/base/mkii/regi-mac.mkii texmf-dist/tex/context/base/mkii/regi-syn.mkii texmf-dist/tex/context/base/mkii/regi-uni.mkii texmf-dist/tex/context/base/mkii/regi-utf.mkii texmf-dist/tex/context/base/mkii/regi-vis.mkii texmf-dist/tex/context/base/mkii/scrn-fld.mkii texmf-dist/tex/context/base/mkii/scrn-hlp.mkii texmf-dist/tex/context/base/mkii/scrn-int.mkii texmf-dist/tex/context/base/mkii/scrn-nav.mkii texmf-dist/tex/context/base/mkii/sort-def.mkii texmf-dist/tex/context/base/mkii/sort-ini.mkii texmf-dist/tex/context/base/mkii/sort-lan.mkii texmf-dist/tex/context/base/mkii/spac-gen.mkii texmf-dist/tex/context/base/mkii/spac-grd.mkii texmf-dist/tex/context/base/mkii/spec-def.mkii texmf-dist/tex/context/base/mkii/spec-dpm.mkii texmf-dist/tex/context/base/mkii/spec-dpx.mkii texmf-dist/tex/context/base/mkii/spec-dvi.mkii texmf-dist/tex/context/base/mkii/spec-fdf.mkii texmf-dist/tex/context/base/mkii/spec-ini.mkii texmf-dist/tex/context/base/mkii/spec-mis.mkii texmf-dist/tex/context/base/mkii/spec-pdf.mkii texmf-dist/tex/context/base/mkii/spec-ps.mkii texmf-dist/tex/context/base/mkii/spec-tpd.mkii texmf-dist/tex/context/base/mkii/spec-tr.mkii texmf-dist/tex/context/base/mkii/spec-tst.mkii texmf-dist/tex/context/base/mkii/spec-var.mkii texmf-dist/tex/context/base/mkii/spec-win.mkii texmf-dist/tex/context/base/mkii/spec-xet.mkii texmf-dist/tex/context/base/mkii/spec-xtx.mkii texmf-dist/tex/context/base/mkii/spec-yy.mkii texmf-dist/tex/context/base/mkii/strc-blk.mkii texmf-dist/tex/context/base/mkii/strc-des.mkii texmf-dist/tex/context/base/mkii/strc-flt.mkii texmf-dist/tex/context/base/mkii/strc-itm.mkii texmf-dist/tex/context/base/mkii/strc-lnt.mkii texmf-dist/tex/context/base/mkii/strc-lst.mkii texmf-dist/tex/context/base/mkii/strc-mar.mkii texmf-dist/tex/context/base/mkii/strc-mat.mkii texmf-dist/tex/context/base/mkii/strc-not.mkii texmf-dist/tex/context/base/mkii/strc-num.mkii texmf-dist/tex/context/base/mkii/strc-pag.mkii texmf-dist/tex/context/base/mkii/strc-ref.mkii texmf-dist/tex/context/base/mkii/strc-reg.mkii texmf-dist/tex/context/base/mkii/strc-sec.mkii texmf-dist/tex/context/base/mkii/strc-swd.mkii texmf-dist/tex/context/base/mkii/strc-syn.mkii texmf-dist/tex/context/base/mkii/supp-ali.mkii texmf-dist/tex/context/base/mkii/supp-box.mkii texmf-dist/tex/context/base/mkii/supp-dir.mkii texmf-dist/tex/context/base/mkii/supp-emp.mkii texmf-dist/tex/context/base/mkii/supp-eps.mkii texmf-dist/tex/context/base/mkii/supp-fil.mkii texmf-dist/tex/context/base/mkii/supp-fun.mkii texmf-dist/tex/context/base/mkii/supp-lat.mkii texmf-dist/tex/context/base/mkii/supp-mat.mkii texmf-dist/tex/context/base/mkii/supp-mis.tex texmf-dist/tex/context/base/mkii/supp-mpe.tex texmf-dist/tex/context/base/mkii/supp-mps.mkii texmf-dist/tex/context/base/mkii/supp-mrk.mkii texmf-dist/tex/context/base/mkii/supp-num.mkii texmf-dist/tex/context/base/mkii/supp-pat.mkii texmf-dist/tex/context/base/mkii/supp-pdf.tex texmf-dist/tex/context/base/mkii/supp-ran.mkii texmf-dist/tex/context/base/mkii/supp-spe.mkii texmf-dist/tex/context/base/mkii/supp-tpi.mkii texmf-dist/tex/context/base/mkii/supp-vis.mkii texmf-dist/tex/context/base/mkii/symb-cow.mkii texmf-dist/tex/context/base/mkii/symb-eur.mkii texmf-dist/tex/context/base/mkii/symb-glm.mkii texmf-dist/tex/context/base/mkii/symb-ini.mkii texmf-dist/tex/context/base/mkii/symb-jmn.mkii texmf-dist/tex/context/base/mkii/symb-mis.mkii texmf-dist/tex/context/base/mkii/symb-mvs.mkii texmf-dist/tex/context/base/mkii/symb-nav.mkii texmf-dist/tex/context/base/mkii/symb-run.mkii texmf-dist/tex/context/base/mkii/symb-uni.mkii texmf-dist/tex/context/base/mkii/symb-was.mkii texmf-dist/tex/context/base/mkii/syst-con.mkii texmf-dist/tex/context/base/mkii/syst-ext.mkii texmf-dist/tex/context/base/mkii/syst-fnt.mkii texmf-dist/tex/context/base/mkii/syst-gen.mkii texmf-dist/tex/context/base/mkii/syst-ini.mkii texmf-dist/tex/context/base/mkii/syst-new.mkii texmf-dist/tex/context/base/mkii/syst-pln.mkii texmf-dist/tex/context/base/mkii/syst-rtp.mkii texmf-dist/tex/context/base/mkii/syst-str.mkii texmf-dist/tex/context/base/mkii/tabl-com.mkii texmf-dist/tex/context/base/mkii/tabl-ltb.mkii texmf-dist/tex/context/base/mkii/tabl-ntb.mkii texmf-dist/tex/context/base/mkii/tabl-nte.mkii texmf-dist/tex/context/base/mkii/tabl-pln.mkii texmf-dist/tex/context/base/mkii/tabl-tab.mkii texmf-dist/tex/context/base/mkii/tabl-tbl.mkii texmf-dist/tex/context/base/mkii/tabl-tsp.mkii texmf-dist/tex/context/base/mkii/thrd-pic.mkii texmf-dist/tex/context/base/mkii/thrd-ran.mkii texmf-dist/tex/context/base/mkii/thrd-tab.mkii texmf-dist/tex/context/base/mkii/thrd-trg.mkii texmf-dist/tex/context/base/mkii/trac-vis.mkii texmf-dist/tex/context/base/mkii/type-def.mkii texmf-dist/tex/context/base/mkii/type-ini.mkii texmf-dist/tex/context/base/mkii/type-one.mkii texmf-dist/tex/context/base/mkii/type-otf.mkii texmf-dist/tex/context/base/mkii/type-run.mkii texmf-dist/tex/context/base/mkii/type-set.mkii texmf-dist/tex/context/base/mkii/type-siz.mkii texmf-dist/tex/context/base/mkii/type-tmf.mkii texmf-dist/tex/context/base/mkii/typo-ini.mkii texmf-dist/tex/context/base/mkii/unic-000.mkii texmf-dist/tex/context/base/mkii/unic-001.mkii texmf-dist/tex/context/base/mkii/unic-002.mkii texmf-dist/tex/context/base/mkii/unic-003.mkii texmf-dist/tex/context/base/mkii/unic-004.mkii texmf-dist/tex/context/base/mkii/unic-005.mkii texmf-dist/tex/context/base/mkii/unic-030.mkii texmf-dist/tex/context/base/mkii/unic-031.mkii texmf-dist/tex/context/base/mkii/unic-032.mkii texmf-dist/tex/context/base/mkii/unic-033.mkii texmf-dist/tex/context/base/mkii/unic-034.mkii texmf-dist/tex/context/base/mkii/unic-035.mkii texmf-dist/tex/context/base/mkii/unic-037.mkii texmf-dist/tex/context/base/mkii/unic-039.mkii texmf-dist/tex/context/base/mkii/unic-251.mkii texmf-dist/tex/context/base/mkii/unic-cjk.mkii texmf-dist/tex/context/base/mkii/unic-exp.mkii texmf-dist/tex/context/base/mkii/unic-ini.mkii texmf-dist/tex/context/base/mkii/unic-run.mkii texmf-dist/tex/context/base/mkii/verb-c.mkii texmf-dist/tex/context/base/mkii/verb-eif.mkii texmf-dist/tex/context/base/mkii/verb-ini.mkii texmf-dist/tex/context/base/mkii/verb-js.mkii texmf-dist/tex/context/base/mkii/verb-jv.mkii texmf-dist/tex/context/base/mkii/verb-mp.mkii texmf-dist/tex/context/base/mkii/verb-pas.mkii texmf-dist/tex/context/base/mkii/verb-pl.mkii texmf-dist/tex/context/base/mkii/verb-raw.mkii texmf-dist/tex/context/base/mkii/verb-sql.mkii texmf-dist/tex/context/base/mkii/verb-tex.mkii texmf-dist/tex/context/base/mkii/verb-xml.mkii texmf-dist/tex/context/base/mkii/xetx-chr.mkii texmf-dist/tex/context/base/mkii/xetx-cls.mkii texmf-dist/tex/context/base/mkii/xetx-ini.mkii texmf-dist/tex/context/base/mkii/xetx-utf.mkii texmf-dist/tex/context/base/mkii/xtag-cml.mkii texmf-dist/tex/context/base/mkii/xtag-ent.mkii texmf-dist/tex/context/base/mkii/xtag-exp.mkii texmf-dist/tex/context/base/mkii/xtag-ext.mkii texmf-dist/tex/context/base/mkii/xtag-hyp.mkii texmf-dist/tex/context/base/mkii/xtag-ini.mkii texmf-dist/tex/context/base/mkii/xtag-map.mkii texmf-dist/tex/context/base/mkii/xtag-mea.mkii texmf-dist/tex/context/base/mkii/xtag-meb.mkii texmf-dist/tex/context/base/mkii/xtag-mec.mkii texmf-dist/tex/context/base/mkii/xtag-meh.mkii texmf-dist/tex/context/base/mkii/xtag-men.mkii texmf-dist/tex/context/base/mkii/xtag-meo.mkii texmf-dist/tex/context/base/mkii/xtag-mer.mkii texmf-dist/tex/context/base/mkii/xtag-mmc.mkii texmf-dist/tex/context/base/mkii/xtag-mml.mkii texmf-dist/tex/context/base/mkii/xtag-mmp.mkii texmf-dist/tex/context/base/mkii/xtag-mxa.mkii texmf-dist/tex/context/base/mkii/xtag-mxb.mkii texmf-dist/tex/context/base/mkii/xtag-mxc.mkii texmf-dist/tex/context/base/mkii/xtag-mxh.mkii texmf-dist/tex/context/base/mkii/xtag-mxn.mkii texmf-dist/tex/context/base/mkii/xtag-mxo.mkii texmf-dist/tex/context/base/mkii/xtag-mxr.mkii texmf-dist/tex/context/base/mkii/xtag-pml.mkii texmf-dist/tex/context/base/mkii/xtag-pmu.mkii texmf-dist/tex/context/base/mkii/xtag-pre.mkii texmf-dist/tex/context/base/mkii/xtag-prs.mkii texmf-dist/tex/context/base/mkii/xtag-raw.mkii texmf-dist/tex/context/base/mkii/xtag-rng.mkii texmf-dist/tex/context/base/mkii/xtag-run.mkii texmf-dist/tex/context/base/mkii/xtag-stk.mkii texmf-dist/tex/context/base/mkii/xtag-utf.mkii texmf-dist/tex/context/base/mkii/xtag-xsd.mkii texmf-dist/tex/context/base/mkii/xtag-xsl.mkii texmf-dist/tex/context/bib/common/sample.bib texmf-dist/tex/context/bib/mkii/bibl-ams.tex texmf-dist/tex/context/bib/mkii/bibl-apa-de.tex texmf-dist/tex/context/bib/mkii/bibl-apa-fr.tex texmf-dist/tex/context/bib/mkii/bibl-apa-it.tex texmf-dist/tex/context/bib/mkii/bibl-apa.tex texmf-dist/tex/context/bib/mkii/bibl-aps.tex texmf-dist/tex/context/bib/mkii/bibl-num-fr.tex texmf-dist/tex/context/bib/mkii/bibl-num.tex texmf-dist/tex/context/bib/mkii/bibl-ssa.tex texmf-dist/tex/context/fonts/mkii/type-buy.mkii texmf-dist/tex/context/fonts/mkii/type-cbg.mkii texmf-dist/tex/context/fonts/mkii/type-cow.mkii texmf-dist/tex/context/fonts/mkii/type-exp.mkii texmf-dist/tex/context/fonts/mkii/type-fsf.mkii texmf-dist/tex/context/fonts/mkii/type-ghz.mkii texmf-dist/tex/context/fonts/mkii/type-hgz.mkii texmf-dist/tex/context/fonts/mkii/type-mac.mkii texmf-dist/tex/context/fonts/mkii/type-msw.mkii texmf-dist/tex/context/fonts/mkii/type-pre.mkii texmf-dist/tex/context/fonts/mkii/type-win.mkii texmf-dist/tex/context/fonts/mkii/type-xtx.mkii texmf-dist/tex/context/interface/mkii/cont-cs.xml texmf-dist/tex/context/interface/mkii/cont-de.xml texmf-dist/tex/context/interface/mkii/cont-fr.xml texmf-dist/tex/context/interface/mkii/cont-it.xml texmf-dist/tex/context/interface/mkii/cont-nl.xml texmf-dist/tex/context/interface/mkii/cont-pe.xml texmf-dist/tex/context/interface/mkii/cont-ro.xml texmf-dist/tex/context/interface/mkii/keys-cs.xml texmf-dist/tex/context/interface/mkii/keys-cz.xml texmf-dist/tex/context/interface/mkii/keys-de.xml texmf-dist/tex/context/interface/mkii/keys-en.xml texmf-dist/tex/context/interface/mkii/keys-fr.xml texmf-dist/tex/context/interface/mkii/keys-it.xml texmf-dist/tex/context/interface/mkii/keys-nl.xml texmf-dist/tex/context/interface/mkii/keys-pe.xml texmf-dist/tex/context/interface/mkii/keys-ro.xml texmf-dist/tex/context/modules/mkii/m-arabtex.mkii texmf-dist/tex/context/modules/mkii/m-chart.mkii texmf-dist/tex/context/modules/mkii/m-chemic.mkii texmf-dist/tex/context/modules/mkii/m-cweb.mkii texmf-dist/tex/context/modules/mkii/m-database.mkii texmf-dist/tex/context/modules/mkii/m-dratex.mkii texmf-dist/tex/context/modules/mkii/m-edtsnc.mkii texmf-dist/tex/context/modules/mkii/m-educat.mkii texmf-dist/tex/context/modules/mkii/m-format.mkii texmf-dist/tex/context/modules/mkii/m-graph.mkii texmf-dist/tex/context/modules/mkii/m-layout.mkii texmf-dist/tex/context/modules/mkii/m-level.mkii texmf-dist/tex/context/modules/mkii/m-narrowtt.mkii texmf-dist/tex/context/modules/mkii/m-obsolete.mkii texmf-dist/tex/context/modules/mkii/m-pdfsnc.mkii texmf-dist/tex/context/modules/mkii/m-pictex.mkii texmf-dist/tex/context/modules/mkii/m-pstricks.mkii texmf-dist/tex/context/modules/mkii/m-quest.mkii texmf-dist/tex/context/modules/mkii/m-r.mkii texmf-dist/tex/context/modules/mkii/m-steps.mkii texmf-dist/tex/context/modules/mkii/m-streams.mkii texmf-dist/tex/context/modules/mkii/m-subsub.mkii texmf-dist/tex/context/modules/mkii/m-tex4ht.mkii texmf-dist/tex/context/modules/mkii/m-units.mkii texmf-dist/tex/context/modules/mkii/m-visual.mkii texmf-dist/tex/context/modules/mkii/ppchtex.mkii texmf-dist/tex/context/modules/mkii/rlxcache.rlx texmf-dist/tex/context/modules/mkii/rlxtools.rlx texmf-dist/tex/context/modules/mkii/s-abr-01.mkii texmf-dist/tex/context/modules/mkii/s-abr-02.mkii texmf-dist/tex/context/modules/mkii/s-chi-00.mkii texmf-dist/tex/context/modules/mkii/s-fnt-01.mkii texmf-dist/tex/context/modules/mkii/s-fnt-02.mkii texmf-dist/tex/context/modules/mkii/s-grk-00.mkii texmf-dist/tex/context/modules/mkii/s-jap-00.mkii texmf-dist/tex/context/modules/mkii/s-mag-01.mkii texmf-dist/tex/context/modules/mkii/s-map-10.mkii texmf-dist/tex/context/modules/mkii/s-mod-00.mkii texmf-dist/tex/context/modules/mkii/s-mod-01.mkii texmf-dist/tex/context/modules/mkii/s-mod-02.mkii texmf-dist/tex/context/modules/mkii/s-pre-01.mkii texmf-dist/tex/context/modules/mkii/s-pre-02.mkii texmf-dist/tex/context/modules/mkii/s-pre-03.mkii texmf-dist/tex/context/modules/mkii/s-pre-04.mkii texmf-dist/tex/context/modules/mkii/s-pre-05.mkii texmf-dist/tex/context/modules/mkii/s-pre-09.mkii texmf-dist/tex/context/modules/mkii/s-pre-10.mkii texmf-dist/tex/context/modules/mkii/s-pre-11.mkii texmf-dist/tex/context/modules/mkii/s-pre-14.mkii texmf-dist/tex/context/modules/mkii/s-pre-15.mkii texmf-dist/tex/context/modules/mkii/s-pre-17.mkii texmf-dist/tex/context/modules/mkii/s-pre-19.mkii texmf-dist/tex/context/modules/mkii/s-pre-30.mkii texmf-dist/tex/context/modules/mkii/s-pre-60.mkii texmf-dist/tex/context/modules/mkii/s-pre-61.mkii texmf-dist/tex/context/modules/mkii/s-pre-62.mkii texmf-dist/tex/context/modules/mkii/s-pre-63.mkii texmf-dist/tex/context/modules/mkii/s-pre-64.mkii texmf-dist/tex/context/modules/mkii/s-pre-68.mkii texmf-dist/tex/context/modules/mkii/s-pre-71.mkii texmf-dist/tex/context/modules/mkii/s-ptj-01.mkii texmf-dist/tex/context/modules/mkii/s-syntax.mkii texmf-dist/tex/context/modules/mkii/x-calcmath.mkii texmf-dist/tex/context/modules/mkii/x-chemml.mkii texmf-dist/tex/context/modules/mkii/x-chemml.xsd texmf-dist/tex/context/modules/mkii/x-contml.mkii texmf-dist/tex/context/modules/mkii/x-contml.xsd texmf-dist/tex/context/modules/mkii/x-corres.mkii texmf-dist/tex/context/modules/mkii/x-corres.rng texmf-dist/tex/context/modules/mkii/x-dir-01.mkii texmf-dist/tex/context/modules/mkii/x-dir-02.mkii texmf-dist/tex/context/modules/mkii/x-dir-05.mkii texmf-dist/tex/context/modules/mkii/x-fdf-00.mkii texmf-dist/tex/context/modules/mkii/x-fe.mkii texmf-dist/tex/context/modules/mkii/x-fig-00.dtd texmf-dist/tex/context/modules/mkii/x-fig-00.mkii texmf-dist/tex/context/modules/mkii/x-fig-00.xsd texmf-dist/tex/context/modules/mkii/x-fig-01.mkii texmf-dist/tex/context/modules/mkii/x-fig-02.mkii texmf-dist/tex/context/modules/mkii/x-fig-03.mkii texmf-dist/tex/context/modules/mkii/x-fo.mkii texmf-dist/tex/context/modules/mkii/x-foxet.mkii texmf-dist/tex/context/modules/mkii/x-mathml.mkii texmf-dist/tex/context/modules/mkii/x-mathml.xsd texmf-dist/tex/context/modules/mkii/x-newcml.mkii texmf-dist/tex/context/modules/mkii/x-newmme.mkii texmf-dist/tex/context/modules/mkii/x-newmml.mkii texmf-dist/tex/context/modules/mkii/x-newmmo.mkii texmf-dist/tex/context/modules/mkii/x-newpml.mkii texmf-dist/tex/context/modules/mkii/x-om2cml.xsl texmf-dist/tex/context/modules/mkii/x-openmath.mkii texmf-dist/tex/context/modules/mkii/x-openmath.xsl texmf-dist/tex/context/modules/mkii/x-physml.mkii texmf-dist/tex/context/modules/mkii/x-physml.xsd texmf-dist/tex/context/modules/mkii/x-res-00.mkii texmf-dist/tex/context/modules/mkii/x-res-01.mkii texmf-dist/tex/context/modules/mkii/x-res-02.mkii texmf-dist/tex/context/modules/mkii/x-res-03.mkii texmf-dist/tex/context/modules/mkii/x-res-04.mkii texmf-dist/tex/context/modules/mkii/x-res-08.mkii texmf-dist/tex/context/modules/mkii/x-res-09.mkii texmf-dist/tex/context/modules/mkii/x-res-10.mkii texmf-dist/tex/context/modules/mkii/x-res-11.mkii texmf-dist/tex/context/modules/mkii/x-res-12.mkii texmf-dist/tex/context/modules/mkii/x-res-20.mkii texmf-dist/tex/context/modules/mkii/x-res-50.mkii texmf-dist/tex/context/modules/mkii/x-sch-00.mkii texmf-dist/tex/context/modules/mkii/x-sch-01.mkii texmf-dist/tex/context/modules/mkii/x-set-01.mkii texmf-dist/tex/context/modules/mkii/x-set-02.mkii texmf-dist/tex/context/modules/mkii/x-set-11.mkii texmf-dist/tex/context/modules/mkii/x-set-12.mkii texmf-dist/tex/context/modules/mkii/x-sm2om.xsl texmf-dist/tex/context/modules/mkii/x-steps.mkii texmf-dist/tex/context/modules/mkii/x-xml-01.mkii texmf-dist/tex/context/modules/mkii/x-xml-02.mkii texmf-dist/tex/context/modules/mkii/x-xml-11.mkii texmf-dist/tex/context/patterns/mkii/lang-af.hyp texmf-dist/tex/context/patterns/mkii/lang-af.pat texmf-dist/tex/context/patterns/mkii/lang-agr.hyp texmf-dist/tex/context/patterns/mkii/lang-agr.pat texmf-dist/tex/context/patterns/mkii/lang-ala.hyp texmf-dist/tex/context/patterns/mkii/lang-ala.pat texmf-dist/tex/context/patterns/mkii/lang-bg.hyp texmf-dist/tex/context/patterns/mkii/lang-bg.pat texmf-dist/tex/context/patterns/mkii/lang-bn.hyp texmf-dist/tex/context/patterns/mkii/lang-bn.pat texmf-dist/tex/context/patterns/mkii/lang-ca.hyp texmf-dist/tex/context/patterns/mkii/lang-ca.pat texmf-dist/tex/context/patterns/mkii/lang-cs.hyp texmf-dist/tex/context/patterns/mkii/lang-cs.pat texmf-dist/tex/context/patterns/mkii/lang-cy.hyp texmf-dist/tex/context/patterns/mkii/lang-cy.pat texmf-dist/tex/context/patterns/mkii/lang-da.hyp texmf-dist/tex/context/patterns/mkii/lang-da.pat texmf-dist/tex/context/patterns/mkii/lang-de.hyp texmf-dist/tex/context/patterns/mkii/lang-de.pat texmf-dist/tex/context/patterns/mkii/lang-deo.hyp texmf-dist/tex/context/patterns/mkii/lang-deo.pat texmf-dist/tex/context/patterns/mkii/lang-eo.hyp texmf-dist/tex/context/patterns/mkii/lang-eo.pat texmf-dist/tex/context/patterns/mkii/lang-es.hyp texmf-dist/tex/context/patterns/mkii/lang-es.pat texmf-dist/tex/context/patterns/mkii/lang-et.hyp texmf-dist/tex/context/patterns/mkii/lang-et.pat texmf-dist/tex/context/patterns/mkii/lang-eu.hyp texmf-dist/tex/context/patterns/mkii/lang-eu.pat texmf-dist/tex/context/patterns/mkii/lang-fi.hyp texmf-dist/tex/context/patterns/mkii/lang-fi.pat texmf-dist/tex/context/patterns/mkii/lang-fr.hyp texmf-dist/tex/context/patterns/mkii/lang-fr.pat texmf-dist/tex/context/patterns/mkii/lang-gb.hyp texmf-dist/tex/context/patterns/mkii/lang-gb.pat texmf-dist/tex/context/patterns/mkii/lang-gr.hyp texmf-dist/tex/context/patterns/mkii/lang-gr.pat texmf-dist/tex/context/patterns/mkii/lang-gu.hyp texmf-dist/tex/context/patterns/mkii/lang-gu.pat texmf-dist/tex/context/patterns/mkii/lang-hi.hyp texmf-dist/tex/context/patterns/mkii/lang-hi.pat texmf-dist/tex/context/patterns/mkii/lang-hr.hyp texmf-dist/tex/context/patterns/mkii/lang-hr.pat texmf-dist/tex/context/patterns/mkii/lang-hu.hyp texmf-dist/tex/context/patterns/mkii/lang-hu.pat texmf-dist/tex/context/patterns/mkii/lang-hy.hyp texmf-dist/tex/context/patterns/mkii/lang-hy.pat texmf-dist/tex/context/patterns/mkii/lang-id.hyp texmf-dist/tex/context/patterns/mkii/lang-id.pat texmf-dist/tex/context/patterns/mkii/lang-is.hyp texmf-dist/tex/context/patterns/mkii/lang-is.pat texmf-dist/tex/context/patterns/mkii/lang-it.hyp texmf-dist/tex/context/patterns/mkii/lang-it.pat texmf-dist/tex/context/patterns/mkii/lang-kn.hyp texmf-dist/tex/context/patterns/mkii/lang-kn.pat texmf-dist/tex/context/patterns/mkii/lang-la.hyp texmf-dist/tex/context/patterns/mkii/lang-la.pat texmf-dist/tex/context/patterns/mkii/lang-lt.hyp texmf-dist/tex/context/patterns/mkii/lang-lt.pat texmf-dist/tex/context/patterns/mkii/lang-lv.hyp texmf-dist/tex/context/patterns/mkii/lang-lv.pat texmf-dist/tex/context/patterns/mkii/lang-mk.hyp texmf-dist/tex/context/patterns/mkii/lang-mk.pat texmf-dist/tex/context/patterns/mkii/lang-ml.hyp texmf-dist/tex/context/patterns/mkii/lang-ml.pat texmf-dist/tex/context/patterns/mkii/lang-mn.hyp texmf-dist/tex/context/patterns/mkii/lang-mn.pat texmf-dist/tex/context/patterns/mkii/lang-nb.hyp texmf-dist/tex/context/patterns/mkii/lang-nb.pat texmf-dist/tex/context/patterns/mkii/lang-nl.hyp texmf-dist/tex/context/patterns/mkii/lang-nl.pat texmf-dist/tex/context/patterns/mkii/lang-nn.hyp texmf-dist/tex/context/patterns/mkii/lang-nn.pat texmf-dist/tex/context/patterns/mkii/lang-pl.hyp texmf-dist/tex/context/patterns/mkii/lang-pl.pat texmf-dist/tex/context/patterns/mkii/lang-pt.hyp texmf-dist/tex/context/patterns/mkii/lang-pt.pat texmf-dist/tex/context/patterns/mkii/lang-ro.hyp texmf-dist/tex/context/patterns/mkii/lang-ro.pat texmf-dist/tex/context/patterns/mkii/lang-ru.hyp texmf-dist/tex/context/patterns/mkii/lang-ru.pat texmf-dist/tex/context/patterns/mkii/lang-sa.hyp texmf-dist/tex/context/patterns/mkii/lang-sa.pat texmf-dist/tex/context/patterns/mkii/lang-sk.hyp texmf-dist/tex/context/patterns/mkii/lang-sk.pat texmf-dist/tex/context/patterns/mkii/lang-sl.hyp texmf-dist/tex/context/patterns/mkii/lang-sl.pat texmf-dist/tex/context/patterns/mkii/lang-sq.hyp texmf-dist/tex/context/patterns/mkii/lang-sq.pat texmf-dist/tex/context/patterns/mkii/lang-sr.hyp texmf-dist/tex/context/patterns/mkii/lang-sr.pat texmf-dist/tex/context/patterns/mkii/lang-sv.hyp texmf-dist/tex/context/patterns/mkii/lang-sv.pat texmf-dist/tex/context/patterns/mkii/lang-ta.hyp texmf-dist/tex/context/patterns/mkii/lang-ta.pat texmf-dist/tex/context/patterns/mkii/lang-te.hyp texmf-dist/tex/context/patterns/mkii/lang-te.pat texmf-dist/tex/context/patterns/mkii/lang-th.hyp texmf-dist/tex/context/patterns/mkii/lang-th.pat texmf-dist/tex/context/patterns/mkii/lang-tk.hyp texmf-dist/tex/context/patterns/mkii/lang-tk.pat texmf-dist/tex/context/patterns/mkii/lang-tr.hyp texmf-dist/tex/context/patterns/mkii/lang-tr.pat texmf-dist/tex/context/patterns/mkii/lang-uk.hyp texmf-dist/tex/context/patterns/mkii/lang-uk.pat texmf-dist/tex/context/patterns/mkii/lang-us.hyp texmf-dist/tex/context/patterns/mkii/lang-us.pat texmf-dist/tex/context/patterns/mkii/lang-zh.hyp texmf-dist/tex/context/patterns/mkii/lang-zh.pat texmf-dist/tex/context/user/mkii/cont-sys.rme context-modules-20240428/tlpkg/tlpobj/context-vim.tlpobj0000644000175000017500000000244614204037647022210 0ustar hillehillename context-vim category ConTeXt revision 62071 shortdesc Generate ConTeXt syntax highlighting code from vim relocated 1 longdesc ConTeXt has excellent pretty printing capabilities for many longdesc languages. The code for pretty printing is written in TeX, and longdesc due to catcode juggling, such verbatim typesetting is perhaps longdesc the trickiest part of TeX. This makes it difficult for a longdesc "normal" user to define syntax highlighting rules for a new longdesc language. This module takes the onus of defining syntax longdesc highlighting rules away from the user and uses ViM editor to longdesc generate the syntax highlighting. There is a helper longdesc 2context.vim script to do the syntax parsing in ViM. depend context depend context-filter runfiles size=21 RELOC/tex/context/third/vim/2context.vim RELOC/tex/context/third/vim/t-syntax-groups.mkii RELOC/tex/context/third/vim/t-syntax-groups.mkiv RELOC/tex/context/third/vim/t-syntax-highlight.mkii RELOC/tex/context/third/vim/t-syntax-highlight.mkiv RELOC/tex/context/third/vim/t-syntax-highlight.mkxl RELOC/tex/context/third/vim/t-vim.tex RELOC/tex/context/third/vim/vimtyping-default.css catalogue-also context-filter catalogue-ctan /macros/context/contrib/context-vim catalogue-license bsd catalogue-topics synt-hlt ext-code context context-modules-20240428/tlpkg/tlpobj/context-legacy.doc.tlpobj0000644000175000017500000000361114567417115023424 0ustar hillehillename context-legacy.doc category Package revision 70191 shortdesc doc files of context-legacy docfiles size=58 texmf-dist/doc/context/scripts/mkii/ctxtools.html texmf-dist/doc/context/scripts/mkii/ctxtools.man texmf-dist/doc/context/scripts/mkii/ctxtools.xml texmf-dist/doc/context/scripts/mkii/imgtopdf.html texmf-dist/doc/context/scripts/mkii/imgtopdf.man texmf-dist/doc/context/scripts/mkii/imgtopdf.xml texmf-dist/doc/context/scripts/mkii/pdftools.html texmf-dist/doc/context/scripts/mkii/pdftools.man texmf-dist/doc/context/scripts/mkii/pdftools.xml texmf-dist/doc/context/scripts/mkii/pstopdf.html texmf-dist/doc/context/scripts/mkii/pstopdf.man texmf-dist/doc/context/scripts/mkii/pstopdf.xml texmf-dist/doc/context/scripts/mkii/rlxtools.html texmf-dist/doc/context/scripts/mkii/rlxtools.man texmf-dist/doc/context/scripts/mkii/rlxtools.xml texmf-dist/doc/context/scripts/mkii/texexec.html texmf-dist/doc/context/scripts/mkii/texexec.man texmf-dist/doc/context/scripts/mkii/texexec.xml texmf-dist/doc/context/scripts/mkii/texmfstart.html texmf-dist/doc/context/scripts/mkii/texmfstart.man texmf-dist/doc/context/scripts/mkii/texmfstart.xml texmf-dist/doc/context/scripts/mkii/textools.html texmf-dist/doc/context/scripts/mkii/textools.man texmf-dist/doc/context/scripts/mkii/textools.xml texmf-dist/doc/context/scripts/mkii/texutil.html texmf-dist/doc/context/scripts/mkii/texutil.man texmf-dist/doc/context/scripts/mkii/texutil.xml texmf-dist/doc/context/scripts/mkii/tmftools.html texmf-dist/doc/context/scripts/mkii/tmftools.man texmf-dist/doc/context/scripts/mkii/tmftools.xml texmf-dist/doc/context/scripts/mkii/xmltools.html texmf-dist/doc/context/scripts/mkii/xmltools.man texmf-dist/doc/context/scripts/mkii/xmltools.xml texmf-dist/doc/man/man1/texexec.1 texmf-dist/doc/man/man1/texexec.man1.pdf texmf-dist/doc/man/man1/texmfstart.1 texmf-dist/doc/man/man1/texmfstart.man1.pdf context-modules-20240428/tlpkg/tlpobj/context-transliterator.tlpobj0000644000175000017500000000244114147306431024461 0ustar hillehillename context-transliterator category ConTeXt revision 61127 shortdesc Transliterate text from 'other' alphabets relocated 1 longdesc The package will read text in one alphabet, and provide a longdesc transliterated version in another; this is useful for readers longdesc who cannot read the original alphabet. The package can make longdesc allowance for hyphenation. depend context runfiles size=32 RELOC/scripts/context/lua/third/transliterator/mtx-t-transliterate.lua RELOC/tex/context/interface/third/t-transliterator.xml RELOC/tex/context/third/transliterator/t-transliterator.mkii RELOC/tex/context/third/transliterator/t-transliterator.mkiv RELOC/tex/context/third/transliterator/t-transliterator.tex RELOC/tex/context/third/transliterator/trans_tables_bg.lua RELOC/tex/context/third/transliterator/trans_tables_glag.lua RELOC/tex/context/third/transliterator/trans_tables_gr.lua RELOC/tex/context/third/transliterator/trans_tables_iso9.lua RELOC/tex/context/third/transliterator/trans_tables_scntfc.lua RELOC/tex/context/third/transliterator/trans_tables_sr.lua RELOC/tex/context/third/transliterator/trans_tables_trsc.lua RELOC/tex/context/third/transliterator/transliterator.lua catalogue-ctan /macros/context/contrib/context-transliterator catalogue-license bsd catalogue-topics enc-juggle context-modules-20240428/tlpkg/tlpobj/context-mathsets.tlpobj0000644000175000017500000000112313435643636023242 0ustar hillehillename context-mathsets category ConTeXt revision 47085 shortdesc Set notation in ConTeXt relocated 1 longdesc Typeset good-looking set notation (e.g., {x|x \in Y}), as well longdesc as similar things such as Dirac bra-ket notation, conditional longdesc probabilities, etc. The package is at least inspired by braket. depend context runfiles size=4 RELOC/tex/context/interface/third/t-mathsets.xml RELOC/tex/context/third/mathsets/t-mathsets.tex catalogue-ctan /macros/context/contrib/context-mathsets catalogue-date 2016-06-24 19:18:15 +0200 catalogue-license other-free catalogue-topics maths context-modules-20240428/tlpkg/tlpobj/context-collating-marks.doc.tlpobj0000644000175000017500000000066414517576221025253 0ustar hillehillename context-collating-marks.doc category ConTeXt revision 68696 shortdesc doc files of context-collating-marks relocated 1 docfiles size=39 RELOC/doc/context/third/collating-marks/LICENSE RELOC/doc/context/third/collating-marks/README.md RELOC/doc/context/third/collating-marks/VERSION RELOC/doc/context/third/collating-marks/t-collatingmarks-module-doc.pdf RELOC/doc/context/third/collating-marks/t-collatingmarks-module-doc.tex context-modules-20240428/tlpkg/tlpobj/context-vim.doc.tlpobj0000644000175000017500000000027714204037647022754 0ustar hillehillename context-vim.doc category ConTeXt revision 62071 shortdesc doc files of context-vim relocated 1 docfiles size=10 RELOC/doc/context/third/vim/VERSION RELOC/doc/context/third/vim/vim.txt context-modules-20240428/tlpkg/tlpobj/context-transliterator.doc.tlpobj0000644000175000017500000000046114147306431025225 0ustar hillehillename context-transliterator.doc category ConTeXt revision 61127 shortdesc doc files of context-transliterator relocated 1 docfiles size=56 RELOC/doc/context/third/transliterator/VERSION RELOC/doc/context/third/transliterator/transliterator.pdf RELOC/doc/context/third/transliterator/transliterator.tex context-modules-20240428/tlpkg/tlpobj/context-calendar-examples.doc.tlpobj0000644000175000017500000000055314422334646025544 0ustar hillehillename context-calendar-examples.doc category ConTeXt revision 66947 shortdesc doc files of context-calendar-examples relocated 1 docfiles size=4 RELOC/doc/context/third/calendar-examples/LICENSE RELOC/doc/context/third/calendar-examples/README.md RELOC/doc/context/third/calendar-examples/VERSION RELOC/doc/context/third/calendar-examples/calendar-examples.md context-modules-20240428/tlpkg/tlpobj/context-squares.tlpobj0000644000175000017500000000063514566757574023121 0ustar hillehillename context-squares category ConTeXt revision 70128 shortdesc Typesetting Magic and Latin squares relocated 1 longdesc The package provides typesetting of magic and latin squares. depend context runfiles size=4 RELOC/tex/context/third/squares/t-squares.lmt RELOC/tex/context/third/squares/t-squares.mklx catalogue-ctan /macros/context/contrib/context-squares catalogue-license mit catalogue-topics calculation context-modules-20240428/tlpkg/tlpobj/context-filter.tlpobj0000644000175000017500000000171514204037647022700 0ustar hillehillename context-filter category ConTeXt revision 62070 shortdesc Run external programs on the contents of a start-stop environment relocated 1 longdesc The filter module provides a simple interface to run external longdesc programs on the contents of a start-stop environment. Options longdesc are available to run the external program only if the content longdesc of the environment has changed, to specify how the program longdesc output should be read back, and to choose the name of the longdesc temporary files that are created. The module is compatible with longdesc both MkII and MkIV. depend context runfiles size=18 RELOC/tex/context/third/filter/t-filter.mkii RELOC/tex/context/third/filter/t-filter.mkiv RELOC/tex/context/third/filter/t-filter.mkxl RELOC/tex/context/third/filter/t-module-catcodes.mkii RELOC/tex/context/third/filter/t-module-catcodes.mkiv catalogue-ctan /macros/context/contrib/context-filter catalogue-license bsd2 catalogue-topics ext-code context-modules-20240428/tlpkg/tlpobj/context-companion-fonts.tlpobj0000644000175000017500000000144214566757574024545 0ustar hillehillename context-companion-fonts category Package revision 70149 shortdesc companion fonts with fixes for ConTeXt relocated 1 longdesc From longdesc https://github.com/contextgarden/context-distribution-fonts/tre longdesc e/main/fonts/data/cms/companion Should be on CTAN eventually. runfiles size=12 RELOC/fonts/opentype/public/context-companion-fonts/LatinModernMath-Companion.otf RELOC/fonts/opentype/public/context-companion-fonts/RalphSmithsFormalScript-Companion.otf RELOC/fonts/opentype/public/context-companion-fonts/TeXGyreBonumMath-Companion.otf RELOC/fonts/opentype/public/context-companion-fonts/TeXGyrePagellaMath-Companion.otf RELOC/fonts/opentype/public/context-companion-fonts/TeXGyreTermesMath-Companion.otf RELOC/fonts/opentype/public/context-companion-fonts/XITSMath-Companion.otf context-modules-20240428/tlpkg/tlpobj/context-notes-zh-cn.doc.tlpobj0000644000175000017500000002052314411672041024313 0ustar hillehillename context-notes-zh-cn.doc category Package revision 66725 shortdesc doc files of context-notes-zh-cn relocated 1 docfiles size=1064 RELOC/doc/context/third/context-notes-zh-cn/README.md RELOC/doc/context/third/context-notes-zh-cn/ctxnotes.pdf RELOC/doc/context/third/context-notes-zh-cn/src/01.tex RELOC/doc/context/third/context-notes-zh-cn/src/02.tex RELOC/doc/context/third/context-notes-zh-cn/src/03.tex RELOC/doc/context/third/context-notes-zh-cn/src/04.tex RELOC/doc/context/third/context-notes-zh-cn/src/05.tex RELOC/doc/context/third/context-notes-zh-cn/src/06.tex RELOC/doc/context/third/context-notes-zh-cn/src/07.tex RELOC/doc/context/third/context-notes-zh-cn/src/08.tex RELOC/doc/context/third/context-notes-zh-cn/src/09.tex RELOC/doc/context/third/context-notes-zh-cn/src/10.tex RELOC/doc/context/third/context-notes-zh-cn/src/11.tex RELOC/doc/context/third/context-notes-zh-cn/src/12.tex RELOC/doc/context/third/context-notes-zh-cn/src/13.tex RELOC/doc/context/third/context-notes-zh-cn/src/14.tex RELOC/doc/context/third/context-notes-zh-cn/src/basis.tex RELOC/doc/context/third/context-notes-zh-cn/src/bib-style.tex RELOC/doc/context/third/context-notes-zh-cn/src/cover.tex RELOC/doc/context/third/context-notes-zh-cn/src/ctxnotes.bib RELOC/doc/context/third/context-notes-zh-cn/src/ctxnotes.tex RELOC/doc/context/third/context-notes-zh-cn/src/doc-env.tex RELOC/doc/context/third/context-notes-zh-cn/src/example/slides.tex RELOC/doc/context/third/context-notes-zh-cn/src/example/style.tex RELOC/doc/context/third/context-notes-zh-cn/src/figures/01/cmd-window.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/01/foo.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/01/win-r.jpg RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/aligned-1.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/aligned-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/fakewords.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/letter.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/lines.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/parindentcolor.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/pars-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/pars-3.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/pars-4.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/pars-5.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/pars.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/starting-area.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/02/true-words.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/bad-latin.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-1.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-3.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-4.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/breakinglines-5.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/defaultfonts.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/fallbacks.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/fontsize-level.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/indenting-1.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/indenting-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/msfonts.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/qian.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/setupbodyfont.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/03/tex-root.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/04/pagenumber.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/04/style-file.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu-3.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu-4.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu-5.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/04/zaoshu.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-3.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-4.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-5.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-6.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-7.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list-8.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/05/todo-list.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/06/bibtex-example-01.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/06/bibtex-example-02.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/06/bibtex-example-03.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/06/bibtex-example-04.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/ctxnotes-2.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/ctxnotes.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/floatcomb-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/floatcomb-3.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/floatcomb-4.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/floatcomb.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/hibert-1.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/hibert-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/hibert-3.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/hibert.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/08/metapost.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/09/01.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/09/02.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/09/03.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/09/04.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/09/three-line-table.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/10/colors.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/11/vbox-and-hbox.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/12/flowchart-1.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/12/flowchart-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/12/flowchart-3.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/12/flowchart-4.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/12/watermark.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/ConTeXt-layout.svg RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/layout-1.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/m_k_i_v_ConTeXt-layout_svg_c60ccda70ef92e32d7a6334f31c23259.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/slides-1.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/slides-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/slides-3.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/slides-4.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/slides-finished.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/13/slides.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/14/bookmarks.png RELOC/doc/context/third/context-notes-zh-cn/src/figures/14/toc-2.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/14/toc.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/01.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/02.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/03.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/none-zhfonts.pdf RELOC/doc/context/third/context-notes-zh-cn/src/figures/zhfonts/zhfonts.pdf RELOC/doc/context/third/context-notes-zh-cn/src/license.tex RELOC/doc/context/third/context-notes-zh-cn/src/postscript.tex RELOC/doc/context/third/context-notes-zh-cn/src/preface.tex RELOC/doc/context/third/context-notes-zh-cn/src/zhfonts.tex context-modules-20240428/tlpkg/tlpobj/context-visualcounter.source.tlpobj0000644000175000017500000000041013435643643025610 0ustar hillehillename context-visualcounter.source category ConTeXt revision 47085 shortdesc source files of context-visualcounter relocated 1 srcfiles size=7 RELOC/source/context/third/visualcounter/p-documentation.tex RELOC/source/context/third/visualcounter/visualcounter.tex context-modules-20240428/tlpkg/tlpobj/context-calendar-examples.tlpobj0000644000175000017500000000200314422334646024770 0ustar hillehillename context-calendar-examples category ConTeXt revision 66947 shortdesc Collection of calendars based on the PocketDiary-module relocated 1 longdesc The module contains examples for creating calendars based on longdesc the PocketDiary-module in various page sizes. In this longdesc collection there are the following examples: Year calendar with longdesc 1 day per page Year calendar with 1 week per two facing pages longdesc Menu-Calendar for each week of the year Sun data and moon data longdesc calendar for the whole year Photo calendar depend context runfiles size=15 RELOC/tex/context/third/calendar-examples/A5-day_per_page.mkiv RELOC/tex/context/third/calendar-examples/A6-1week_per_2pages.mkiv RELOC/tex/context/third/calendar-examples/Menu-calendar.mkiv RELOC/tex/context/third/calendar-examples/Photocalendar.mkiv RELOC/tex/context/third/calendar-examples/Sundata-calendar.mkiv catalogue-ctan /macros/context/contrib/context-calendar-examples catalogue-license pd catalogue-topics calendar calculation context context-modules-20240428/tlpkg/tlpobj/context-texlive.doc.tlpobj0000644000175000017500000000054414572207120023627 0ustar hillehillename context-texlive.doc category Package revision 70437 shortdesc doc files of context-texlive docfiles size=20 texmf-dist/doc/man/man1/contextjit.1 texmf-dist/doc/man/man1/contextjit.man1.pdf texmf-dist/doc/man/man1/luatools.1 texmf-dist/doc/man/man1/luatools.man1.pdf texmf-dist/doc/man/man1/mtxrunjit.1 texmf-dist/doc/man/man1/mtxrunjit.man1.pdf context-modules-20240428/tlpkg/tlpobj/context-simpleslides.tlpobj0000644000175000017500000000506014427300351024075 0ustar hillehillename context-simpleslides category ConTeXt revision 67070 shortdesc A module for preparing presentations relocated 1 longdesc This ConTeXt module provides an easy-to-use interface for longdesc creating presentations for use with a digital projector. The longdesc presentations are not interactive (no buttons, hyperlinks or longdesc navigational tools such as tables of contents). Graphics may be longdesc mixed with the text of slides. The module provides several longdesc predefined styles, designed for academic presentation. Most longdesc styles are configurable, and it is easy to design new styles. depend context runfiles size=65 RELOC/scripts/context/lua/third/simpleslides/mtx-simpleslides.lua RELOC/tex/context/interface/third/t-simpleslides.xml RELOC/tex/context/third/simpleslides/s-simpleslides-BigNumber.tex RELOC/tex/context/third/simpleslides/s-simpleslides-BlackBoard.tex RELOC/tex/context/third/simpleslides/s-simpleslides-BottomSquares.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Boxed.tex RELOC/tex/context/third/simpleslides/s-simpleslides-BoxedTitle.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Ellipse.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Embossed.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Framed.tex RELOC/tex/context/third/simpleslides/s-simpleslides-FramedTitle.tex RELOC/tex/context/third/simpleslides/s-simpleslides-FuzzyFrame.tex RELOC/tex/context/third/simpleslides/s-simpleslides-FuzzyTopic.tex RELOC/tex/context/third/simpleslides/s-simpleslides-HorizontalStripes.tex RELOC/tex/context/third/simpleslides/s-simpleslides-NarrowStripes.tex RELOC/tex/context/third/simpleslides/s-simpleslides-PlainCounter.tex RELOC/tex/context/third/simpleslides/s-simpleslides-RainbowStripe.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Rounded.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Shaded.tex RELOC/tex/context/third/simpleslides/s-simpleslides-SideSquares.tex RELOC/tex/context/third/simpleslides/s-simpleslides-SideToc.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Split.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Sunrise.tex RELOC/tex/context/third/simpleslides/s-simpleslides-Swoosh.tex RELOC/tex/context/third/simpleslides/s-simpleslides-ThickStripes.tex RELOC/tex/context/third/simpleslides/s-simpleslides-default.tex RELOC/tex/context/third/simpleslides/s-simpleslides-fontsdefault.mkiv RELOC/tex/context/third/simpleslides/t-simpleslides.mkiv catalogue-ctan /macros/context/contrib/context-simpleslides catalogue-license gpl catalogue-topics context context-modules-20240428/tlpkg/tlpobj/context-visualcounter.doc.tlpobj0000644000175000017500000000036113435643643025062 0ustar hillehillename context-visualcounter.doc category ConTeXt revision 47085 shortdesc doc files of context-visualcounter relocated 1 docfiles size=68 RELOC/doc/context/third/visualcounter/VERSION RELOC/doc/context/third/visualcounter/visualcounter.pdf context-modules-20240428/tlpkg/tlpobj/context-mathsets.doc.tlpobj0000644000175000017500000000033513435643635024011 0ustar hillehillename context-mathsets.doc category ConTeXt revision 47085 shortdesc doc files of context-mathsets relocated 1 docfiles size=102 RELOC/doc/context/third/mathsets/VERSION RELOC/doc/context/third/mathsets/mathsets-doc.pdf context-modules-20240428/texmf-dist/0000755000175000017500000000000014613513620016154 5ustar hillehillecontext-modules-20240428/texmf-dist/doc/0000755000175000017500000000000014613513620016721 5ustar hillehillecontext-modules-20240428/texmf-dist/doc/man/0000755000175000017500000000000014613513620017474 5ustar hillehillecontext-modules-20240428/texmf-dist/doc/man/man1/0000755000175000017500000000000014613513621020331 5ustar hillehillecontext-modules-20240428/texmf-dist/doc/man/man1/texmfstart.man1.pdf0000644000175000017500000004760114567411714024100 0ustar hillehille%PDF-1.4 %쏢 %%Invocation: path/gs -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 -q -P- -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 - 5 0 obj <> stream xWMo6W(+V>Y n f-=+H^`B~tdˑH;͛y rqFS~lJr] 0 r;k ),gF73ǪR,˿g8&c-?.]-5K(#5ǔ@07! \x8\{c+c/Ytm^\ECE!8:\ %&C1ÌA: H"a@d=%_7;HG`՘r Lڤ>Y|] 1.DP$h]N]F)Mlz~D$cX[H> jl>^/>Xorl,Ec8UkB\Wm|Bh5>)+P`kCX!kCBv7i:bEq iܾTYԀ$\A열.'6ʼNcOi85/ I |y^ѐGT)D 8<*TdE.8@C誐ro9 Ic<ֹFZV/?yzlY )wUZ@#˭i_Dd+pЯK+Y|":P%Z$c^nm#bɅH;V\̖)d"_Oci$!q ֚nh'yRUTiQP=SSnR:cJGZ!r .L Vt*2b sҺ b4/+!g͸Nb4spP* WT?h>c>gS^!'0aȲIKWhq4'c'Cm$LD|++eРh|+j.pǒ0HVo7Q쥀^9t`$/ // zfj)3ob$55eW ~_qsh=0-TJL(oMwtVo4ӉcSqG]1ccn¼.;|Duf. /f;Ŀ/žO{czluX*4`* qM59Χ0c쪮8փU5 cTL6"2.d B5{VCCBOeȏnfMciu&e ˤY7i92]==h;[Y Ss3J*{R2ն|747k}Rho zƟXuzą_ F(endstream endobj 6 0 obj 1426 endobj 15 0 obj <> stream xWn8+xXCRԃ㲷3Emm$#҉[òby  խPg匒5OI/+oٗ|f3s ,gG~_f^izÜ|ߌ؏{583%?!R5i}j]3˽0-`> 9Y{w-s Qo˿L &%Yo^s@R"fυ=n?IY<:SxD$rKJ]+W}6F0E9ww,qwX|vW SĹ9( ϾؗFVi[@gmt])7Rj^NU`jd}wmmp77)q*iVD rM J)oAשtYy~f;¯Zj t9 r}) "U^֒TR%:?Qa}/Ǝ$bt2"g~e4`Tڎ}XMaF<<$E!>C@wNms[W`\+OW?7/tE"o҃д̑!IqpuVe^G·SنVXA> stream xUY0~ϯ[C8vRRUJS ;Q*H@231!{(ZDkkBh8RpgHq'嫈qIx?[w\>DL+|8!(5a'J.fUnS#4(Nd8qx7(*DM=b,RV`Z%! QLquCuP&4T/̤vS $Y(90lSaF0uS%dAMh^fY%q!  :Iӎ~}b( cY'}<oʡj!9iE)iI p#v%IEJq+)2`}dw37؝,r06дI;tFe55nJAt)T =̆$3T덯 x%r՛鏒lm3'/,}|?}]HͲs_ڢͫz՘̤v02,,p$" cGjeѾ cX4hLJXc(b1.M#xZ9 o&q%pdpP2Lڇ2n@ektch{+Nfaﮜ0ѯ1Ef]ff/w$$go0k.ͅ\ΜK] bàͬ;bv ԳL*XJv㝽qݬ'F} ew8zYz,\&c}[> /Contents 5 0 R >> endobj 14 0 obj <> /Contents 15 0 R >> endobj 18 0 obj <> /Contents 19 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 14 0 R 18 0 R ] /Count 3 >> endobj 1 0 obj <> endobj 13 0 obj <> endobj 17 0 obj <> endobj 21 0 obj <> endobj 11 0 obj <> endobj 9 0 obj <> endobj 25 0 obj <> endobj 7 0 obj <> endobj 26 0 obj <> endobj 12 0 obj <> endobj 22 0 obj <>stream x{LSgϱS,*V۩NW6/L& x A_ʥz9+B"nHt!-Yt̖;e|yX 9EeI[j;X™9}_>A,bcP`*2ơ)X ];{%KnT)NJI].S#O/.:Q.O> J+* kvV˳+ʎǻUWði7mٶ}G]9d {K`$,[`rlcq^|dœ qrk$1w%U{5jYJu ReF0KP%`g֟փA [)!hATh1jmue#\q";T**6d;$lqNH2vtfT)(՛upWMSy0Xv |t5\cA *k6`G`ΘjC ]HNIgoi3V˂֗\WK:e"{T31+/TF*IrY*/t AՒ~k' E{m T$ iUC]krV E[`u2ZVJD #] N肀ӋLI-sIc6xPP9e!o' ]0&7I)6+*KJ y \p3(qc.E'U]C?Fu9n!PԀTVEg&- Qa&{20 M}<3)kSuzS-h-SW(5/mӢm#[eOF[p}NVڪ?sIPڊjn3ަx_Sz$ ?BĽځdOp]x.wk w0O|'!R=K&8] V6f[S%$cL[2?wC C> endobj 23 0 obj <>stream xWkXSW1Z(Ubj6NZjժVUQC_.$$$$Y!$K `c-U{TV=iOάM+|5ik`@t0hZ0N㝼ʒf(@sh4(h {fN-ؓ%6N0JkW0n MQ47k-3̃5:Wk[m+#H<O۽'#W>r7ymd?F9( DE.Ŝ+f)qy|ks՞u.nAp\\<36=HA8KA]Ǥ1!ﺾ ҆MZ fPr@.'k[qnjNL;%  F,x*Ў1'9S&to]Zy6z3~&Z\ҸBp)v"̪:#>[MyCМנnD{gt_!Qh!w GBJS„8Tf: -b:~Ff3[HkZjĒ(*`]+y/L%"A.^8Zh6_M~c|ގvUQ!kkM E&s"^O F]:| iz߻_Ţ"jh&>xiX#=-usҦZ?6s/o]$EI󝘾kWFgoLX5dc%ᜨph`T(DYJS5TՀYvMzUsڡn5;+$ yI_1k|s*rL,uUڎh|7MGWqfn [C<#?CQGe$\#fN+I Q->@x4Apٻ0{ǎ<ﰿzpr@6S2x?UFW[1;Mߓxf3n/;p8SC[ VBdUX+M/˼u"hisu?@ 9~k2K3f"/%!4ُ_q6hTVEM%tvۆۅh/ <_Nbo} OAWޮUEhqxfU̹k,D1B\7^mA#da0n { $8W04|i1wk.3% {9I/?!jˎ*EB/q+S2 y廹{s%1,ilvt |˨yC͢W_9"~W&kN-yi&x r xA%UK֐TULb!i=ɠRVcP/RX&Xphǭ v6Lj=4 @Q4J'V5V/'g 󏦗7;&wВ<ϯW)`/`kOrMl)@C|z?>--!֗18LCIW $ע7)Cٴ&O[.#\DncL5y:]>^&}8nÞ"AމRO@8vI̡o-?{D  {'tu_^q_#Jsva᭨R9 wѳ#18PLO= 8iD#gд*0 Ue+9FOe t>Sλ JoB,+Txg6H } 3%OP&De覣+!8tG|تP,O(ܴ j/MWlhX;=-xwu-Ep9.6|)-@ʻu֡$paN*ކ8Gx[z畚IQ 32ao^ 36JMD̉o?oNjirzff7`G J{'cD{vbnon:JYONlsguӬ ~T$nf"މgsA{hBZt02UIJײ@k"bD#=)Cý=Câh!JI=3\7|b?M]BXu1?5nc!i[E™ɀw g\Mxgӫ4u&0nkmutA]Rn4zaJ$ѐ^6쓥1 eM21ͽn??M"_ġCQnḴAn\ +g9ljerz[Bx>bVd\\00A4C` 6C}<\KZ=>KP؃d endstream endobj 8 0 obj <> endobj 24 0 obj <>stream xWgtSǶ>BΡHq"An J0-\^.[H,r{ $@7咐Mޛ;~e{koI?Ό6pA091}S#Sߢ=3ט4۔E`q{uC7z6f'\l+|r]iyq¬%֭߸$*oɟ+Kb2RcRӒcR'G2woL()2_k?AK Nݕ敞%Ή̍;q0:&6N矘Wuq5k׭nx{#A&<#%"$`"E^b7K#oM7q8D0O$fKdb.J# 7N,$8zs…1\3eb\]"\.V.cF T̥33꙽lv9s͞zµuy_4{O  .زr߸6Jg|1 &51K*@/ɳm]mL/@1C$h;jQ #X^#Rm ʍWIybj.5T*@FpD))\bcj1= HUyqKf<గt[Z4K(6rzaVBY-yH\wΆ+?%Չ@yUAʅjbiY-\&CzGBJohe} +eB3AׯD| = wh@ʙ툎mIgN dB9EA|(be5ERZRrx-IwY E@zA/gϫk_~~Ѥotg.eG;R(&:inMB́pI܄)8;y/xsr lmbeh O7 l/O[G !TY'Ey $rj۳[_]HwOqlq0>dZA$_HVT bG_c)mhʤddY2o._ &zr3A/<15xE_UeE&= iZu&:+@ji#hh9s=a}fjɸcZBrބLo}6'ǧj$FYO}γ7G\oE|J[ 3Gqwdҙ8ZvI]bsAL^-@$Hd4Q"PщݧzSF+e0 Y7Pbm!U:Vs0t|^$; * TzNٸ`@MLQ[Ugހs פ16kM"k.mf'o6v#%ej RM2m=nY3 /Xp)٧)YiFx 㮀2}(ぺ"klЗꃡkK* (Zp!=ƤXJ!̭9e8 #4K MXJ iۤވ#Z3;6Q_d}Xі!>#ʑŃ!+'Ʈ+-59'=A/~lE, P!Ai<g^6 ر@NU0ZOږ6{gGdLd@e$i5(}ڄ$BsُuJ&HRSV$hzUɆtixG|ϹU$ߣ#鞭S_ie<9BAtfgṷG%ήUbR@hәVl*^G o n.c9@VtU 6|C?{4P '0 z ryNU ^aPet& !h^LѨ4/I!MK8G*N+ hLH)wV?0^ube&K~UMUJMMCoxaqgctߡRz9%Y4+g]?0x^k VF(yʤh.g` d^jIԚ^kcn%3sB/[Qb+O JOT=l>5ѓ;`,UR[X7>0hhjsM 뤐zN#@}%X|ۆJgsLG8_+,?NP~cn<$ENC ;'Tk5ܥ`{y#ERk*2 %4g9MΩt"ߥ-Ux%IKA_C:^=unSn %^J_-$$n_1^rkrb9e)( s{s`Hޗsrs\|n| w;.f!GWXp{:~i-/ &"VdG 5+1W{L.vk*ߢ.uΌ6Xx )ߙ[H]qҲRSEmmY)zEw} e.v_EMmd_ ܻ*ccK<"A8!E a?r^؉R%dPC}8t gۑUv5*ZWƖ' < _G{/FqjTӧrzUG&+ <ŀL:Y$StyR:q=bPl ƚ֠mFvdUCD.d66;i49kǓL"(sfEI.ҚB^ʬZ*?_JanNܶT]v!# : r\z 3E+R}d'*F. IC`aeR?M2AmV.8Ũ,Uza&+&ˍ6#Ae2,ICLvP5H-wtz;Nag%A TRf65 Uj^ќL}UJ?'EdI? QBu֌bM#G4j ޔj'M ` gE_ϻ4gx ģ^sԳK%aTL2ojƗUB&4B&KdWpNrFFbJSF[Gsc{Gzs!yJ_snWn2zgڸ6+./0sN`}ʄg1jw&g(\La͢D[w޴_OZ^m7Ai=eݜxx_ ~u6>S!~"lѸ|x.L;v0)vepVWluAjνK\>9)}a|h.w=`tf}2C}{tj,6Z7 /%`'{ ttxt7}2/_s' \pZxwF+iONޞև}2RrRDiY9/hq4:dK`tIxxAoFU HԸr7P4U$8ՙO b,UCA+Q4 k*^0ҲmOzh 9JJ)7kກORέWep03+^Xg|%Ś؀X6 ,xC5dq"s/ L^c12Qc69q4O53ÊLhŋ R?08 Q#~}eNPuox?\ FKb~a:g4&1(&|ɦMai8šcZm@\n8K?&o ъN]4Qu[,n>z&2qnSyV9p{ʤSk%G>j6|z}ls˻$:O&z: ;vڃ|X 'z.bW'KAߐ-;35*ÈT-QɳMIȮϵEnu{+ׄɩX븃Ow^qRaF /|9\nm? g[>m%}`}9H͆j*Jv's<*3 g8 endstream endobj 27 0 obj <>stream 2024-02-27T17:54:10+01:00 2024-02-27T17:54:10+01:00 groff version 1.22.4 Untitled endstream endobj 2 0 obj <>endobj xref 0 28 0000000000 65535 f 0000004464 00000 n 0000019482 00000 n 0000004391 00000 n 0000003961 00000 n 0000000212 00000 n 0000001708 00000 n 0000005489 00000 n 0000012870 00000 n 0000004946 00000 n 0000007817 00000 n 0000004657 00000 n 0000006034 00000 n 0000004529 00000 n 0000004103 00000 n 0000001728 00000 n 0000003059 00000 n 0000004579 00000 n 0000004247 00000 n 0000003080 00000 n 0000003941 00000 n 0000004618 00000 n 0000006289 00000 n 0000008181 00000 n 0000013259 00000 n 0000005404 00000 n 0000005949 00000 n 0000018220 00000 n trailer << /Size 28 /Root 1 0 R /Info 2 0 R /ID [<41928260805A00B33DD26A2237EE1857><41928260805A00B33DD26A2237EE1857>] >> startxref 19639 %%EOF context-modules-20240428/texmf-dist/doc/man/man1/texmfstart.10000644000175000017500000000576014567411714022634 0ustar hillehille.TH "mtxrun" "1" "01-01-2024" "version 1.33" "ConTeXt TDS Runner Tool" .SH NAME mtxrun - ConTeXt TDS Runner Tool .SH SYNOPSIS .B mtxrun [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B ConTeXt TDS Runner Tool .SH OPTIONS .TP .B --script run an mtx script (lua prefered method) (--noquotes), no script gives list .TP .B --evaluate run code passed on the commandline (between quotes) (=loop) (exit|quit aborts) .TP .B --execute run a script or program (texmfstart method) (--noquotes) .TP .B --resolve resolve prefixed arguments .TP .B --ctxlua run internally (using preloaded libs) .TP .B --internal run script using built in libraries (same as --ctxlua) .TP .B --locate locate given filename in database (default) or system (--first --all --detail) .TP .B --tree=pathtotree use given texmf tree (default file: setuptex.tmf) .TP .B --path=runpath go to given path before execution .TP .B --ifchanged=filename only execute when given file has changed (md checksum) .TP .B --iftouched=old,new only execute when given file has changed (time stamp) .TP .B --makestubs create stubs for (context related) scripts .TP .B --removestubs remove stubs (context related) scripts .TP .B --stubpath=binpath paths where stubs wil be written .TP .B --windows create windows (mswin) stubs .TP .B --unix create unix (linux) stubs .TP .B --addbinarypath prepend the (found) binarypath to runners .TP .B --verbose give a bit more info .TP .B --trackers=list enable given trackers .TP .B --progname=str format or backend .TP .B --systeminfo=str show current operating system, processor, etc .TP .B --edit launch editor with found file .TP .B --launch launch files like manuals, assumes os support (--all,--list) .TP .B --timedrun run a script and time its run .TP .B --autogenerate regenerate databases if needed (handy when used to run context in an editor) .TP .B --usekpse use kpse as fallback (when no mkiv and cache installed, often slower) .TP .B --forcekpse force using kpse (handy when no mkiv and cache installed but less functionality) .TP .B --prefixes show supported prefixes .TP .B --generate generate file database .TP .B --variables show configuration variables .TP .B --configurations show configuration order .TP .B --directives show (known) directives .TP .B --trackers show (known) trackers .TP .B --experiments show (known) experiments .TP .B --expand-braces expand complex variable .TP .B --resolve-path expand variable (completely resolve paths) .TP .B --expand-path expand variable (resolve paths) .TP .B --expand-var expand variable (resolve references) .TP .B --show-path show path expansion of ... .TP .B --var-value report value of variable .TP .B --find-file report file location .TP .B --find-path report path of file .TP .B --pattern=string filter variables .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/man/man1/luatools.man1.pdf0000644000175000017500000004760114567414633023544 0ustar hillehille%PDF-1.4 %쏢 %%Invocation: path/gs -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 -q -P- -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 - 5 0 obj <> stream xWMo6W(+V>Y n f-=+H^`B~tdˑH;͛y rqFS~lJr] 0 r;k ),gF73ǪR,˿g8&c-?.]-5K(#5ǔ@07! \x8\{c+c/Ytm^\ECE!8:\ %&C1ÌA: H"a@d=%_7;HG`՘r Lڤ>Y|] 1.DP$h]N]F)Mlz~D$cX[H> jl>^/>Xorl,Ec8UkB\Wm|Bh5>)+P`kCX!kCBv7i:bEq iܾTYԀ$\A열.'6ʼNcOi85/ I |y^ѐGT)D 8<*TdE.8@C誐ro9 Ic<ֹFZV/?yzlY )wUZ@#˭i_Dd+pЯK+Y|":P%Z$c^nm#bɅH;V\̖)d"_Oci$!q ֚nh'yRUTiQP=SSnR:cJGZ!r .L Vt*2b sҺ b4/+!g͸Nb4spP* WT?h>c>gS^!'0aȲIKWhq4'c'Cm$LD|++eРh|+j.pǒ0HVo7Q쥀^9t`$/ // zfj)3ob$55eW ~_qsh=0-TJL(oMwtVo4ӉcSqG]1ccn¼.;|Duf. /f;Ŀ/žO{czluX*4`* qM59Χ0c쪮8փU5 cTL6"2.d B5{VCCBOeȏnfMciu&e ˤY7i92]==h;[Y Ss3J*{R2ն|747k}Rho zƟXuzą_ F(endstream endobj 6 0 obj 1426 endobj 15 0 obj <> stream xWn8+xXCRԃ㲷3Emm$#҉[òby  խPg匒5OI/+oٗ|f3s ,gG~_f^izÜ|ߌ؏{583%?!R5i}j]3˽0-`> 9Y{w-s Qo˿L &%Yo^s@R"fυ=n?IY<:SxD$rKJ]+W}6F0E9ww,qwX|vW SĹ9( ϾؗFVi[@gmt])7Rj^NU`jd}wmmp77)q*iVD rM J)oAשtYy~f;¯Zj t9 r}) "U^֒TR%:?Qa}/Ǝ$bt2"g~e4`Tڎ}XMaF<<$E!>C@wNms[W`\+OW?7/tE"o҃д̑!IqpuVe^G·SنVXA> stream xUY0~ϯ[C8vRRUJS ;Q*H@231!{(ZDkkBh8RpgHq'嫈qIx?[w\>DL+|8!(5a'J.fUnS#4(Nd8qx7(*DM=b,RV`Z%! QLquCuP&4T/̤vS $Y(90lSaF0uS%dAMh^fY%q!  :Iӎ~}b( cY'}<oʡj!9iE)iI p#v%IEJq+)2`}dw37؝,r06дI;tFe55nJAt)T =̆$3T덯 x%r՛鏒lm3'/,}|?}]HͲs_ڢͫz՘̤v02,,p$" cGjeѾ cX4hLJXc(b1.M#xZ9 o&q%pdpP2Lڇ2n@ektch{+Nfaﮜ0ѯ1Ef]ff/w$$go0k.ͅ\ΜK] bàͬ;bv ԳL*XJv㝽qݬ'F} ew8zYz,\&c}[> /Contents 5 0 R >> endobj 14 0 obj <> /Contents 15 0 R >> endobj 18 0 obj <> /Contents 19 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 14 0 R 18 0 R ] /Count 3 >> endobj 1 0 obj <> endobj 13 0 obj <> endobj 17 0 obj <> endobj 21 0 obj <> endobj 11 0 obj <> endobj 9 0 obj <> endobj 25 0 obj <> endobj 7 0 obj <> endobj 26 0 obj <> endobj 12 0 obj <> endobj 22 0 obj <>stream x{LSgϱS,*V۩NW6/L& x A_ʥz9+B"nHt!-Yt̖;e|yX 9EeI[j;X™9}_>A,bcP`*2ơ)X ];{%KnT)NJI].S#O/.:Q.O> J+* kvV˳+ʎǻUWði7mٶ}G]9d {K`$,[`rlcq^|dœ qrk$1w%U{5jYJu ReF0KP%`g֟փA [)!hATh1jmue#\q";T**6d;$lqNH2vtfT)(՛upWMSy0Xv |t5\cA *k6`G`ΘjC ]HNIgoi3V˂֗\WK:e"{T31+/TF*IrY*/t AՒ~k' E{m T$ iUC]krV E[`u2ZVJD #] N肀ӋLI-sIc6xPP9e!o' ]0&7I)6+*KJ y \p3(qc.E'U]C?Fu9n!PԀTVEg&- Qa&{20 M}<3)kSuzS-h-SW(5/mӢm#[eOF[p}NVڪ?sIPڊjn3ަx_Sz$ ?BĽځdOp]x.wk w0O|'!R=K&8] V6f[S%$cL[2?wC C> endobj 23 0 obj <>stream xWkXSW1Z(Ubj6NZjժVUQC_.$$$$Y!$K `c-U{TV=iOάM+|5ik`@t0hZ0N㝼ʒf(@sh4(h {fN-ؓ%6N0JkW0n MQ47k-3̃5:Wk[m+#H<O۽'#W>r7ymd?F9( DE.Ŝ+f)qy|ks՞u.nAp\\<36=HA8KA]Ǥ1!ﺾ ҆MZ fPr@.'k[qnjNL;%  F,x*Ў1'9S&to]Zy6z3~&Z\ҸBp)v"̪:#>[MyCМנnD{gt_!Qh!w GBJS„8Tf: -b:~Ff3[HkZjĒ(*`]+y/L%"A.^8Zh6_M~c|ގvUQ!kkM E&s"^O F]:| iz߻_Ţ"jh&>xiX#=-usҦZ?6s/o]$EI󝘾kWFgoLX5dc%ᜨph`T(DYJS5TՀYvMzUsڡn5;+$ yI_1k|s*rL,uUڎh|7MGWqfn [C<#?CQGe$\#fN+I Q->@x4Apٻ0{ǎ<ﰿzpr@6S2x?UFW[1;Mߓxf3n/;p8SC[ VBdUX+M/˼u"hisu?@ 9~k2K3f"/%!4ُ_q6hTVEM%tvۆۅh/ <_Nbo} OAWޮUEhqxfU̹k,D1B\7^mA#da0n { $8W04|i1wk.3% {9I/?!jˎ*EB/q+S2 y廹{s%1,ilvt |˨yC͢W_9"~W&kN-yi&x r xA%UK֐TULb!i=ɠRVcP/RX&Xphǭ v6Lj=4 @Q4J'V5V/'g 󏦗7;&wВ<ϯW)`/`kOrMl)@C|z?>--!֗18LCIW $ע7)Cٴ&O[.#\DncL5y:]>^&}8nÞ"AމRO@8vI̡o-?{D  {'tu_^q_#Jsva᭨R9 wѳ#18PLO= 8iD#gд*0 Ue+9FOe t>Sλ JoB,+Txg6H } 3%OP&De覣+!8tG|تP,O(ܴ j/MWlhX;=-xwu-Ep9.6|)-@ʻu֡$paN*ކ8Gx[z畚IQ 32ao^ 36JMD̉o?oNjirzff7`G J{'cD{vbnon:JYONlsguӬ ~T$nf"މgsA{hBZt02UIJײ@k"bD#=)Cý=Câh!JI=3\7|b?M]BXu1?5nc!i[E™ɀw g\Mxgӫ4u&0nkmutA]Rn4zaJ$ѐ^6쓥1 eM21ͽn??M"_ġCQnḴAn\ +g9ljerz[Bx>bVd\\00A4C` 6C}<\KZ=>KP؃d endstream endobj 8 0 obj <> endobj 24 0 obj <>stream xWgtSǶ>BΡHq"An J0-\^.[H,r{ $@7咐Mޛ;~e{koI?Ό6pA091}S#Sߢ=3ט4۔E`q{uC7z6f'\l+|r]iyq¬%֭߸$*oɟ+Kb2RcRӒcR'G2woL()2_k?AK Nݕ敞%Ή̍;q0:&6N矘Wuq5k׭nx{#A&<#%"$`"E^b7K#oM7q8D0O$fKdb.J# 7N,$8zs…1\3eb\]"\.V.cF T̥33꙽lv9s͞zµuy_4{O  .زr߸6Jg|1 &51K*@/ɳm]mL/@1C$h;jQ #X^#Rm ʍWIybj.5T*@FpD))\bcj1= HUyqKf<గt[Z4K(6rzaVBY-yH\wΆ+?%Չ@yUAʅjbiY-\&CzGBJohe} +eB3AׯD| = wh@ʙ툎mIgN dB9EA|(be5ERZRrx-IwY E@zA/gϫk_~~Ѥotg.eG;R(&:inMB́pI܄)8;y/xsr lmbeh O7 l/O[G !TY'Ey $rj۳[_]HwOqlq0>dZA$_HVT bG_c)mhʤddY2o._ &zr3A/<15xE_UeE&= iZu&:+@ji#hh9s=a}fjɸcZBrބLo}6'ǧj$FYO}γ7G\oE|J[ 3Gqwdҙ8ZvI]bsAL^-@$Hd4Q"PщݧzSF+e0 Y7Pbm!U:Vs0t|^$; * TzNٸ`@MLQ[Ugހs פ16kM"k.mf'o6v#%ej RM2m=nY3 /Xp)٧)YiFx 㮀2}(ぺ"klЗꃡkK* (Zp!=ƤXJ!̭9e8 #4K MXJ iۤވ#Z3;6Q_d}Xі!>#ʑŃ!+'Ʈ+-59'=A/~lE, P!Ai<g^6 ر@NU0ZOږ6{gGdLd@e$i5(}ڄ$BsُuJ&HRSV$hzUɆtixG|ϹU$ߣ#鞭S_ie<9BAtfgṷG%ήUbR@hәVl*^G o n.c9@VtU 6|C?{4P '0 z ryNU ^aPet& !h^LѨ4/I!MK8G*N+ hLH)wV?0^ube&K~UMUJMMCoxaqgctߡRz9%Y4+g]?0x^k VF(yʤh.g` d^jIԚ^kcn%3sB/[Qb+O JOT=l>5ѓ;`,UR[X7>0hhjsM 뤐zN#@}%X|ۆJgsLG8_+,?NP~cn<$ENC ;'Tk5ܥ`{y#ERk*2 %4g9MΩt"ߥ-Ux%IKA_C:^=unSn %^J_-$$n_1^rkrb9e)( s{s`Hޗsrs\|n| w;.f!GWXp{:~i-/ &"VdG 5+1W{L.vk*ߢ.uΌ6Xx )ߙ[H]qҲRSEmmY)zEw} e.v_EMmd_ ܻ*ccK<"A8!E a?r^؉R%dPC}8t gۑUv5*ZWƖ' < _G{/FqjTӧrzUG&+ <ŀL:Y$StyR:q=bPl ƚ֠mFvdUCD.d66;i49kǓL"(sfEI.ҚB^ʬZ*?_JanNܶT]v!# : r\z 3E+R}d'*F. IC`aeR?M2AmV.8Ũ,Uza&+&ˍ6#Ae2,ICLvP5H-wtz;Nag%A TRf65 Uj^ќL}UJ?'EdI? QBu֌bM#G4j ޔj'M ` gE_ϻ4gx ģ^sԳK%aTL2ojƗUB&4B&KdWpNrFFbJSF[Gsc{Gzs!yJ_snWn2zgڸ6+./0sN`}ʄg1jw&g(\La͢D[w޴_OZ^m7Ai=eݜxx_ ~u6>S!~"lѸ|x.L;v0)vepVWluAjνK\>9)}a|h.w=`tf}2C}{tj,6Z7 /%`'{ ttxt7}2/_s' \pZxwF+iONޞև}2RrRDiY9/hq4:dK`tIxxAoFU HԸr7P4U$8ՙO b,UCA+Q4 k*^0ҲmOzh 9JJ)7kກORέWep03+^Xg|%Ś؀X6 ,xC5dq"s/ L^c12Qc69q4O53ÊLhŋ R?08 Q#~}eNPuox?\ FKb~a:g4&1(&|ɦMai8šcZm@\n8K?&o ъN]4Qu[,n>z&2qnSyV9p{ʤSk%G>j6|z}ls˻$:O&z: ;vڃ|X 'z.bW'KAߐ-;35*ÈT-QɳMIȮϵEnu{+ׄɩX븃Ow^qRaF /|9\nm? g[>m%}`}9H͆j*Jv's<*3 g8 endstream endobj 27 0 obj <>stream 2024-02-27T18:12:58+01:00 2024-02-27T18:12:58+01:00 groff version 1.22.4 Untitled endstream endobj 2 0 obj <>endobj xref 0 28 0000000000 65535 f 0000004464 00000 n 0000019482 00000 n 0000004391 00000 n 0000003961 00000 n 0000000212 00000 n 0000001708 00000 n 0000005489 00000 n 0000012870 00000 n 0000004946 00000 n 0000007817 00000 n 0000004657 00000 n 0000006034 00000 n 0000004529 00000 n 0000004103 00000 n 0000001728 00000 n 0000003059 00000 n 0000004579 00000 n 0000004247 00000 n 0000003080 00000 n 0000003941 00000 n 0000004618 00000 n 0000006289 00000 n 0000008181 00000 n 0000013259 00000 n 0000005404 00000 n 0000005949 00000 n 0000018220 00000 n trailer << /Size 28 /Root 1 0 R /Info 2 0 R /ID [<1AB597DAB501DD54ACC1E129692814E4><1AB597DAB501DD54ACC1E129692814E4>] >> startxref 19639 %%EOF context-modules-20240428/texmf-dist/doc/man/man1/mtxrunjit.man1.pdf0000644000175000017500000004760114567414633023746 0ustar hillehille%PDF-1.4 %쏢 %%Invocation: path/gs -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 -q -P- -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 - 5 0 obj <> stream xWMo6W(+V>Y n f-=+H^`B~tdˑH;͛y rqFS~lJr] 0 r;k ),gF73ǪR,˿g8&c-?.]-5K(#5ǔ@07! \x8\{c+c/Ytm^\ECE!8:\ %&C1ÌA: H"a@d=%_7;HG`՘r Lڤ>Y|] 1.DP$h]N]F)Mlz~D$cX[H> jl>^/>Xorl,Ec8UkB\Wm|Bh5>)+P`kCX!kCBv7i:bEq iܾTYԀ$\A열.'6ʼNcOi85/ I |y^ѐGT)D 8<*TdE.8@C誐ro9 Ic<ֹFZV/?yzlY )wUZ@#˭i_Dd+pЯK+Y|":P%Z$c^nm#bɅH;V\̖)d"_Oci$!q ֚nh'yRUTiQP=SSnR:cJGZ!r .L Vt*2b sҺ b4/+!g͸Nb4spP* WT?h>c>gS^!'0aȲIKWhq4'c'Cm$LD|++eРh|+j.pǒ0HVo7Q쥀^9t`$/ // zfj)3ob$55eW ~_qsh=0-TJL(oMwtVo4ӉcSqG]1ccn¼.;|Duf. /f;Ŀ/žO{czluX*4`* qM59Χ0c쪮8փU5 cTL6"2.d B5{VCCBOeȏnfMciu&e ˤY7i92]==h;[Y Ss3J*{R2ն|747k}Rho zƟXuzą_ F(endstream endobj 6 0 obj 1426 endobj 15 0 obj <> stream xWn8+xXCRԃ㲷3Emm$#҉[òby  խPg匒5OI/+oٗ|f3s ,gG~_f^izÜ|ߌ؏{583%?!R5i}j]3˽0-`> 9Y{w-s Qo˿L &%Yo^s@R"fυ=n?IY<:SxD$rKJ]+W}6F0E9ww,qwX|vW SĹ9( ϾؗFVi[@gmt])7Rj^NU`jd}wmmp77)q*iVD rM J)oAשtYy~f;¯Zj t9 r}) "U^֒TR%:?Qa}/Ǝ$bt2"g~e4`Tڎ}XMaF<<$E!>C@wNms[W`\+OW?7/tE"o҃д̑!IqpuVe^G·SنVXA> stream xUY0~ϯ[C8vRRUJS ;Q*H@231!{(ZDkkBh8RpgHq'嫈qIx?[w\>DL+|8!(5a'J.fUnS#4(Nd8qx7(*DM=b,RV`Z%! QLquCuP&4T/̤vS $Y(90lSaF0uS%dAMh^fY%q!  :Iӎ~}b( cY'}<oʡj!9iE)iI p#v%IEJq+)2`}dw37؝,r06дI;tFe55nJAt)T =̆$3T덯 x%r՛鏒lm3'/,}|?}]HͲs_ڢͫz՘̤v02,,p$" cGjeѾ cX4hLJXc(b1.M#xZ9 o&q%pdpP2Lڇ2n@ektch{+Nfaﮜ0ѯ1Ef]ff/w$$go0k.ͅ\ΜK] bàͬ;bv ԳL*XJv㝽qݬ'F} ew8zYz,\&c}[> /Contents 5 0 R >> endobj 14 0 obj <> /Contents 15 0 R >> endobj 18 0 obj <> /Contents 19 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 14 0 R 18 0 R ] /Count 3 >> endobj 1 0 obj <> endobj 13 0 obj <> endobj 17 0 obj <> endobj 21 0 obj <> endobj 11 0 obj <> endobj 9 0 obj <> endobj 25 0 obj <> endobj 7 0 obj <> endobj 26 0 obj <> endobj 12 0 obj <> endobj 22 0 obj <>stream x{LSgϱS,*V۩NW6/L& x A_ʥz9+B"nHt!-Yt̖;e|yX 9EeI[j;X™9}_>A,bcP`*2ơ)X ];{%KnT)NJI].S#O/.:Q.O> J+* kvV˳+ʎǻUWði7mٶ}G]9d {K`$,[`rlcq^|dœ qrk$1w%U{5jYJu ReF0KP%`g֟փA [)!hATh1jmue#\q";T**6d;$lqNH2vtfT)(՛upWMSy0Xv |t5\cA *k6`G`ΘjC ]HNIgoi3V˂֗\WK:e"{T31+/TF*IrY*/t AՒ~k' E{m T$ iUC]krV E[`u2ZVJD #] N肀ӋLI-sIc6xPP9e!o' ]0&7I)6+*KJ y \p3(qc.E'U]C?Fu9n!PԀTVEg&- Qa&{20 M}<3)kSuzS-h-SW(5/mӢm#[eOF[p}NVڪ?sIPڊjn3ަx_Sz$ ?BĽځdOp]x.wk w0O|'!R=K&8] V6f[S%$cL[2?wC C> endobj 23 0 obj <>stream xWkXSW1Z(Ubj6NZjժVUQC_.$$$$Y!$K `c-U{TV=iOάM+|5ik`@t0hZ0N㝼ʒf(@sh4(h {fN-ؓ%6N0JkW0n MQ47k-3̃5:Wk[m+#H<O۽'#W>r7ymd?F9( DE.Ŝ+f)qy|ks՞u.nAp\\<36=HA8KA]Ǥ1!ﺾ ҆MZ fPr@.'k[qnjNL;%  F,x*Ў1'9S&to]Zy6z3~&Z\ҸBp)v"̪:#>[MyCМנnD{gt_!Qh!w GBJS„8Tf: -b:~Ff3[HkZjĒ(*`]+y/L%"A.^8Zh6_M~c|ގvUQ!kkM E&s"^O F]:| iz߻_Ţ"jh&>xiX#=-usҦZ?6s/o]$EI󝘾kWFgoLX5dc%ᜨph`T(DYJS5TՀYvMzUsڡn5;+$ yI_1k|s*rL,uUڎh|7MGWqfn [C<#?CQGe$\#fN+I Q->@x4Apٻ0{ǎ<ﰿzpr@6S2x?UFW[1;Mߓxf3n/;p8SC[ VBdUX+M/˼u"hisu?@ 9~k2K3f"/%!4ُ_q6hTVEM%tvۆۅh/ <_Nbo} OAWޮUEhqxfU̹k,D1B\7^mA#da0n { $8W04|i1wk.3% {9I/?!jˎ*EB/q+S2 y廹{s%1,ilvt |˨yC͢W_9"~W&kN-yi&x r xA%UK֐TULb!i=ɠRVcP/RX&Xphǭ v6Lj=4 @Q4J'V5V/'g 󏦗7;&wВ<ϯW)`/`kOrMl)@C|z?>--!֗18LCIW $ע7)Cٴ&O[.#\DncL5y:]>^&}8nÞ"AމRO@8vI̡o-?{D  {'tu_^q_#Jsva᭨R9 wѳ#18PLO= 8iD#gд*0 Ue+9FOe t>Sλ JoB,+Txg6H } 3%OP&De覣+!8tG|تP,O(ܴ j/MWlhX;=-xwu-Ep9.6|)-@ʻu֡$paN*ކ8Gx[z畚IQ 32ao^ 36JMD̉o?oNjirzff7`G J{'cD{vbnon:JYONlsguӬ ~T$nf"މgsA{hBZt02UIJײ@k"bD#=)Cý=Câh!JI=3\7|b?M]BXu1?5nc!i[E™ɀw g\Mxgӫ4u&0nkmutA]Rn4zaJ$ѐ^6쓥1 eM21ͽn??M"_ġCQnḴAn\ +g9ljerz[Bx>bVd\\00A4C` 6C}<\KZ=>KP؃d endstream endobj 8 0 obj <> endobj 24 0 obj <>stream xWgtSǶ>BΡHq"An J0-\^.[H,r{ $@7咐Mޛ;~e{koI?Ό6pA091}S#Sߢ=3ט4۔E`q{uC7z6f'\l+|r]iyq¬%֭߸$*oɟ+Kb2RcRӒcR'G2woL()2_k?AK Nݕ敞%Ή̍;q0:&6N矘Wuq5k׭nx{#A&<#%"$`"E^b7K#oM7q8D0O$fKdb.J# 7N,$8zs…1\3eb\]"\.V.cF T̥33꙽lv9s͞zµuy_4{O  .زr߸6Jg|1 &51K*@/ɳm]mL/@1C$h;jQ #X^#Rm ʍWIybj.5T*@FpD))\bcj1= HUyqKf<గt[Z4K(6rzaVBY-yH\wΆ+?%Չ@yUAʅjbiY-\&CzGBJohe} +eB3AׯD| = wh@ʙ툎mIgN dB9EA|(be5ERZRrx-IwY E@zA/gϫk_~~Ѥotg.eG;R(&:inMB́pI܄)8;y/xsr lmbeh O7 l/O[G !TY'Ey $rj۳[_]HwOqlq0>dZA$_HVT bG_c)mhʤddY2o._ &zr3A/<15xE_UeE&= iZu&:+@ji#hh9s=a}fjɸcZBrބLo}6'ǧj$FYO}γ7G\oE|J[ 3Gqwdҙ8ZvI]bsAL^-@$Hd4Q"PщݧzSF+e0 Y7Pbm!U:Vs0t|^$; * TzNٸ`@MLQ[Ugހs פ16kM"k.mf'o6v#%ej RM2m=nY3 /Xp)٧)YiFx 㮀2}(ぺ"klЗꃡkK* (Zp!=ƤXJ!̭9e8 #4K MXJ iۤވ#Z3;6Q_d}Xі!>#ʑŃ!+'Ʈ+-59'=A/~lE, P!Ai<g^6 ر@NU0ZOږ6{gGdLd@e$i5(}ڄ$BsُuJ&HRSV$hzUɆtixG|ϹU$ߣ#鞭S_ie<9BAtfgṷG%ήUbR@hәVl*^G o n.c9@VtU 6|C?{4P '0 z ryNU ^aPet& !h^LѨ4/I!MK8G*N+ hLH)wV?0^ube&K~UMUJMMCoxaqgctߡRz9%Y4+g]?0x^k VF(yʤh.g` d^jIԚ^kcn%3sB/[Qb+O JOT=l>5ѓ;`,UR[X7>0hhjsM 뤐zN#@}%X|ۆJgsLG8_+,?NP~cn<$ENC ;'Tk5ܥ`{y#ERk*2 %4g9MΩt"ߥ-Ux%IKA_C:^=unSn %^J_-$$n_1^rkrb9e)( s{s`Hޗsrs\|n| w;.f!GWXp{:~i-/ &"VdG 5+1W{L.vk*ߢ.uΌ6Xx )ߙ[H]qҲRSEmmY)zEw} e.v_EMmd_ ܻ*ccK<"A8!E a?r^؉R%dPC}8t gۑUv5*ZWƖ' < _G{/FqjTӧrzUG&+ <ŀL:Y$StyR:q=bPl ƚ֠mFvdUCD.d66;i49kǓL"(sfEI.ҚB^ʬZ*?_JanNܶT]v!# : r\z 3E+R}d'*F. IC`aeR?M2AmV.8Ũ,Uza&+&ˍ6#Ae2,ICLvP5H-wtz;Nag%A TRf65 Uj^ќL}UJ?'EdI? QBu֌bM#G4j ޔj'M ` gE_ϻ4gx ģ^sԳK%aTL2ojƗUB&4B&KdWpNrFFbJSF[Gsc{Gzs!yJ_snWn2zgڸ6+./0sN`}ʄg1jw&g(\La͢D[w޴_OZ^m7Ai=eݜxx_ ~u6>S!~"lѸ|x.L;v0)vepVWluAjνK\>9)}a|h.w=`tf}2C}{tj,6Z7 /%`'{ ttxt7}2/_s' \pZxwF+iONޞև}2RrRDiY9/hq4:dK`tIxxAoFU HԸr7P4U$8ՙO b,UCA+Q4 k*^0ҲmOzh 9JJ)7kກORέWep03+^Xg|%Ś؀X6 ,xC5dq"s/ L^c12Qc69q4O53ÊLhŋ R?08 Q#~}eNPuox?\ FKb~a:g4&1(&|ɦMai8šcZm@\n8K?&o ъN]4Qu[,n>z&2qnSyV9p{ʤSk%G>j6|z}ls˻$:O&z: ;vڃ|X 'z.bW'KAߐ-;35*ÈT-QɳMIȮϵEnu{+ׄɩX븃Ow^qRaF /|9\nm? g[>m%}`}9H͆j*Jv's<*3 g8 endstream endobj 27 0 obj <>stream 2024-02-27T18:12:59+01:00 2024-02-27T18:12:59+01:00 groff version 1.22.4 Untitled endstream endobj 2 0 obj <>endobj xref 0 28 0000000000 65535 f 0000004464 00000 n 0000019482 00000 n 0000004391 00000 n 0000003961 00000 n 0000000212 00000 n 0000001708 00000 n 0000005489 00000 n 0000012870 00000 n 0000004946 00000 n 0000007817 00000 n 0000004657 00000 n 0000006034 00000 n 0000004529 00000 n 0000004103 00000 n 0000001728 00000 n 0000003059 00000 n 0000004579 00000 n 0000004247 00000 n 0000003080 00000 n 0000003941 00000 n 0000004618 00000 n 0000006289 00000 n 0000008181 00000 n 0000013259 00000 n 0000005404 00000 n 0000005949 00000 n 0000018220 00000 n trailer << /Size 28 /Root 1 0 R /Info 2 0 R /ID [] >> startxref 19639 %%EOF context-modules-20240428/texmf-dist/doc/man/man1/luatools.10000644000175000017500000000002214567414633022262 0ustar hillehille.so man1/mtxrun.1 context-modules-20240428/texmf-dist/doc/man/man1/texexec.10000644000175000017500000000214214567411714022067 0ustar hillehille.TH "texexec" "1" "01-01-2024" "version 6.2.1" "TeXExec" .SH NAME texexec - TeXExec .SH SYNOPSIS .B texexec [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B TeXExec .SH OPTIONS .TP .B --make make formats .TP .B --check check versions .TP .B --process process file .TP .B --mptex process mp file .TP .B --mpxtex process mpx file .TP .B --mpgraphic process mp file to stand-alone graphics .TP .B --mpstatic process mp/ctx file to stand-alone graphics .TP .B --listing list of file content .TP .B --figures generate overview of figures .TP .B --modules generate module documentation .TP .B --pdfarrange impose pages (booklets) .TP .B --pdfselect select pages from file(s) .TP .B --pdfcopy copy pages from file(s) .TP .B --pdftrim trim pages from file(s) .TP .B --pdfcombine combine multiple pages .TP .B --pdfsplit split file in pages .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/man/man1/mtxrunjit.10000644000175000017500000000002214567414633022464 0ustar hillehille.so man1/mtxrun.1 context-modules-20240428/texmf-dist/doc/man/man1/contextjit.man1.pdf0000644000175000017500000006004014567414633024065 0ustar hillehille%PDF-1.4 %쏢 %%Invocation: path/gs -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 -q -P- -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 - 5 0 obj <> stream xX]o6}# L,?$Q,ˀ k~hG>\I]R%%^H{H+!j?wO(ZMN{8GoW$< *@ϐHhOpnf-5 l6:u(hcU q~v!v('RD;g~y`fA8 ./7]N9*B߼ Ygb7.Ӗ,ܒS|={ơ~vP SJ_*0PEkv*ݼ;JE:U?m݉Ae2'3c&f9P_oIˢ;"_)LvN\4R9V˲uSleϋBlOllʐqOH+&NǺKP %<8][>I+:3> D~4{]s2ު`.Du^$oq3E:#$PJrax$^#s.)DqV& 15S,x 5R7jܠ-U~v EXWɋ} h`p,:?қBg {>fl|h v$%궆XY[y&7 $2~Qեk*!QXbw\`T)ڦְee؂* {)=!R(dt1xDP_*Ms ;Gא3.н Xɦ-K ݝ6V@j׃+}CU}ұxU`;)ژ@6O[!C/ZP%=\#e]%4 `)O E*N N`{Lr{bGi*WK V|JKqIDڙ>f:-ysSoeqǜQGȎ/v^Y;^|86/"Rw$Pjɓ&sH&%Gh#1c%pIcsSpgv|;|BVendstream endobj 6 0 obj 1458 endobj 15 0 obj <> stream xXn6+YQ/JiMmE FmH"Rߐ!%Gv$Ė/='}OBH^Yd_1ʆY}'Zd[ $ 4R++6WIB8!ٮ NBɱ$9zЉ/K~t)! %^ Khҫ7g1\4%dg@^2?s+.hŠYLM%0eBn5Z}wrЎ3F֖SC%󻓎@A!B9Hnwk%}EG EIeWQR$R(2<:yqm?$@3vȋ"rK&rQ '=;R.<+~_@+!+wfi%sҔG| Wy)M_vZs]wye|Wy򱩗,%01[VOo-FӢ<T"5REYЖwylйYu^}9 14_")yvUd OK$3u+Oi;Դ`X]'~ADh UjStn1\9''sKcZLs՝#Q͝ܘJ4Xy"04ˋ*6h47L; 4y$NӼ`Ɍ2C6B&tʙ,Ż(ewiQquaq! #-M4l/j҈P)9\:! Jѫ,zs*l4I^0E%g&|qgZe7J"~ >~8Yد\![aŰqQ $ڏJ/_+u{FWD!ᑨ7zSN4A C~Çar}2h༕]S-Mϰ`}B8L ׬ [\Vxw7ԽEmoԶڧE((cɭ)Lhc|{t B=&yt9|8µk1N4> stream xWێ6}Wy\T(R@_Hn~H-qm%H^ )y} 9"̜s"LP~ϼEh=2#[4~5e1{X$hq= 1, -YPۻ07ڪӌ1ӌBԢ SA^j~5zKpȅ,wUסKZJy(' IaN iP^Vݹ3" CPP7~5Ɯf"1-Fn$tiKY_U p8A1*x؄%PaڴiM4 }aG'>E6趴))4A8,J*X)kUN7t $ V t+!eC2,Y,SʖB)Tj[i\5enq@V@^n#d}"EnW 6tm>?fϜ8) +Ʉw캷n9@ =nd;6پ՝}sFYJuٍB+;u$ OQ'.VjF (-Iuagknؗ= Q mKiVSj[F JVxP7 \I9CU/1U &=E Vj\ }pa6ˡO1/1~Qu74ajϤ2hUcZ :Wv.l-=;+]׃Gbd;vm*iD2N0: o7US8&zTF=;\>wpTu-p*;U|Ķn&yNYzJp5Nj>njD@#WfQwǑ'^a /9.GfE[*&: x}aJq /Uw9GP0F2"!!^/fϿ)endstream endobj 20 0 obj 1377 endobj 23 0 obj <> stream xWQF~ط`XòHMHM6iJyX,OOg8;\V>gXf prŧE订++я= 8fχ(mʅWUDA Bl 9G)M:c'19B_{MQ܂}.f2qU͗h\yZ/'_Hɚ5q>[R[(k(%$"zd(#5MY! hjq^{嘆6a>{7g:wF~]-OG 9(G8dJ,pulD8`4eΑϡDxQmExߊ (bN=9D:dQ&B,YTuҕǂkOOAWYS8}}?NϪӄwY(8-'aUax S0ۑFs a'-I0#|\=7?}ޘ|_ƦvT":o1[ MUCA|(HD^';6B9z''@8N;tv.b]SWLbpseW։ m5I .T{ɰmkxXe4M3@nm)+rxz/ "α$L2K.xɥyLsح^0#]{$,v/l)d@@x { BH@(ܫ7}"endstream endobj 24 0 obj 1372 endobj 4 0 obj <> /Contents 5 0 R >> endobj 14 0 obj <> /Contents 15 0 R >> endobj 18 0 obj <> /Contents 19 0 R >> endobj 22 0 obj <> /Contents 23 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 14 0 R 18 0 R 22 0 R ] /Count 4 >> endobj 1 0 obj <> endobj 13 0 obj <> endobj 17 0 obj <> endobj 21 0 obj <> endobj 25 0 obj <> endobj 11 0 obj <> endobj 9 0 obj <> endobj 29 0 obj <> endobj 7 0 obj <> endobj 30 0 obj <> endobj 12 0 obj <> endobj 26 0 obj <>stream x{LSgϱS,*V۩NW6/L& x A_ʥz9+B"nHt!-Yt̖;e|yX 9EeI[j;X™9}_>A,bcP`*2ơ)X ];{%KnT)NJI].S#O/.:Q.O> J+* kvV˳+ʎǻUWði7mٶ}G]9d {K`$,[`rlcq^|dœ qrk$1w%U{5jYJu ReF0KP%`g֟փA [)!hATh1jmue#\q";T**6d;$lqNH2vtfT)(՛upWMSy0Xv |t5\cA *k6`G`ΘjC ]HNIgoi3V˂֗\WK:e"{T31+/TF*IrY*/t AՒ~k' E{m T$ iUC]krV E[`u2ZVJD #] N肀ӋLI-sIc6xPP9e!o' ]0&7I)6+*KJ y \p3(qc.E'U]C?Fu9n!PԀTVEg&- Qa&{20 M}<3)kSuzS-h-SW(5/mӢm#[eOF[p}NVڪ?sIPڊjn3ަx_Sz$ ?BĽځdOp]x.wk w0O|'!R=K&8] V6f[S%$cL[2?wC C> endobj 27 0 obj <>stream xXy\Sg>1s*T6Nݵjmݗ+.ue K! @ @hDVZm3SG;}O17߁v?Bqryy#Ə2Ţ in8y^luGI)-D㛧O]M g@>/,߲b{[`<6:&mƫ_Y:#\5Ofl)bf&/2d )]{Òf_o(jٺCoHٸIHے5#3LC3rlwT@t}qNH\6UGA_}^vS+?Pԋj5GަQA:LmQGK&e-j1zBmPۨv5jIRj%VRjʇLQbYj9AOES_Tϸ-Eox2hh30oBGOy{₉E^]4Bgi3O'o;Ϸ޷S_/?L>3vX|u;٨bM%t5 3 08`A#Kyƈ559uե$da-=Zgju[k2t۴ٙɊ0O(*EU]L^ǩ UNwsp 851J9l ]]e6҅weUʊ4GYY HGAEǚGm'>Q;q' ,S? "X묲7-9[?'=~"^)W䢛ufDITk60GqsoqU/k{%G.z!.?cp7-pxKdy/_?x0f.xY9԰_<' O_eBn)rѭ%LM|j(~RSqQNsabj$. ߗӝE-JG,l_9tZ]{?7smE a\mn,%͋Rz&t`3 ;GI8C2ڊvt%Oz@5U~Iӹq&E@y($ݶy(bp 0,V^]ay{"a0a2;UgvwqvCmf҃.ĀgO`.X $HuGmP3RD@-8a7Ȣ {U 1睻T<)%`O\Rsz]ܓN`Y-xLRc)V_4́H.OEglsqouIZ֬GТ̥AGӶ!&XS}FʓA ZGu Gȹ/^J%lLN z;{5bP@ ߧX)3j<,. F|+z,A'ˢ6]e`}Z])iHkẢe_= tA6*a|ڇ^YAm( +.L+IC;o=(Tz;UMAgɐ$.QeSYY*E"[191|w朖n>BLGE$i̬TՆ0>#_pBą`\뵈m/_+3e9?YW+wj :|y D!ɚUm:pJNc rC#"F?򝜾^P.>ăg:٬'X6@p]t(Kkr6:bmUZs鸸L]bՎwPЧy<sF FT)lvi~I~% JGt;J=X`1!Rf% j:#MS_XѮmBVT]]-eD%E$G&'(yQUDw&i"{˩K>&ÖSgS[HC<0Jvnֻ,'VWÙ'Ug VC1HLvL U mށ+KoKq)!B_dDq2bãV!f|\]|+7jGk:Hً.r_;v(/uEyyxؙBJ(\U~N_ypBA?Ձx[+̨lKͥ9我{/vlj46;zg&~K{IƱ4/ ]bTvwkjޔ8p$r ^L.SPHi.v5/CFapq4|*R^#et^v j d\؉\ q>6ؒSN3tD{q+fYO|~n@>[*BjE,&3-C0˗: Y *G_~nC?I$eDkM7rʫZ.V\ h#/o:/-9Pzp/3D5*<0w` Xpa2~$Q"QR}F]QH"F_}Ix `CץְB6 5o,_ 6/$2q{68 s9x7P2 p¸kiwaf0 W RbwD!fQ#x$ )4uWk C$O]tLBuS˶TH2b5foE!K17`hU.hf,f F]EvQn)\WeGvheiEf\FSݾm'wZgS[ ~$ELo]SL64ʕ) W]Kc'wRß3 7zoOb62{(AZ]yj'1V`mɎ ڟ:wIPscye[T[.h*QUÇ'Tm!v1ztՁ=%Љ+yePfnSԸN abUHS[rX!p̽q&xGѺ| E,V" /l̢ZKY^B'B_خϐf1axxXll0$~5|%itCcb‚;;;c;CVxέt`T뜒Kf!1֧UdQZ2Xܫ /Joso Yp5$I蘨j/46e'+ܟmR<7z]h[gN+%1$6>P7(R cV. TFd:-N)Zl[mI1SqQryt/n_hj4[{ek=Р3}}1]7fsJtEI3D昨F,2 c:x,L*aFt]r^==W8C!OMqiuŀ PnJS?nޭM*s(E# &6'X^Xf`@D7;˴H9dIP%X:4sKU+ïCCXBϞV{hbe.oFsɿӷ brk<ǐk]aS߉3=- ܡدVQM>&ƣl{tNi$SeďDFC>ݱy̚ZߟL~Hx5ƹmG)݌xh邪ہB(Iǖhky.WW2i'kvmԨc}=\jo5ՑUШM+"ɂ6XLnxldrGڃx<a{L_a:58svχ}` Ny gaf ~ux;7],h:lӌǗkdfƨL|.hi=UqzkG ւ433S~.mnjDNd2BQK/%}qsۧDD^ H t g3o-&k~s=,Өc T_'v<]]4(~y#B!B/ 1"6 ^` m ?}zló? IH`%FX_K!a%' / 9v9Hq_x[f- ?DӅY(i x{yᮛ_|fFH"#3c2m"~ԩlʰ&u-D?ȡ1$-fҸˏ39&_؇0BBT'V"&:UsR̷&3lʄ ZQS Q OWPY9 endstream endobj 8 0 obj <> endobj 28 0 obj <>stream xWyTS׺?1pqBuVgTQQy$$aAFAE ٶR;zm[o{߻ݻo!>a3`XӼ"cC{qb1oMbf@qc2ilgς}3`L†ZϷdK.2oͪkdseKhrdxܼCZhL|Blh\ʁؐy O9n =%1)9ewjZьcGDFyE[aG-~kv+W^uqp&܈wbAx^7>C~'?XN. "A$vb/XGA);F"N ;b1ElC8p_"e `ݙuE*v5?mrm g+M>>YS:uԳtmn]33*g\cf&jցYnϲaCճgߘ X88OYvLb8XBQv#0za)a5xgbP(+"xL%4̤~ pL־]gB)(ޤ-tI @ZJ&ϣ@ؤ*֘g Dpdܣ#^$562.KPZ$O֫ "%xlwP;?85Q(O0Q `U /f[aZ )ܧa|)͇r&&Ssq1Z3'"v|eL2Xa1W>;GL9 ) 5gh3ZE]+I( 1X@8)B1u]H#qAWOyc#v>WY|*O*fcI%Bٖg SreQ w4)ʀ*'nQv=8 ruJBz.7_XjCnc*s#:E Ddij]SNJyxƈ Q]%*ؔT rò"u("V](N'nILav0’F, HjթgSy/_'*|eǸɮx 3:/0V9YbJEـR`H,K zKz]]uUMƠ1 &M!0ҍm5g(@<845] 0l] U];*:@uɉnVbƪi$qBN#;@7G,^3fC?s8lnhjQ)H$I1*$3;=+3ZXͥ-Z\c"ʳ["9džQy<\`⤆RcAiY=ԩ۝"7J=6f ֧06\>҅ټ[!UՃB@GThN™[^.:99T/˨i{o@üb XMD@UnWlvX j~bD8nr.G餙XJič20v. s5<` jF,PYUi6pyBTCn0 H-Ij &0 ”Y1 19LcfIQIwO_ . ,+m+.6꟰p'pGxW~/TZ$(H-̪jKgwiyOvk-M-#L3 J~)D:$dt( 2XÖRl&ڜ/VfQ0m M=q;RFCj{~vzBtKJp%@ 3|8Œy<'a J2u $o+bSV 1sX/`:V20'[&vCH_j .,DVQm V#V 7~/wW![*(4+=QޟÙ-ƵA,8[w%[ѦNkd-YsR[lj_eF Ip4_@$=8O;k.t-MMbn l5#RY\%ўF@/{B3ۤ2j>a GEgJ$x y V갍9h,:nPr7+[*zSC(\EP8|c_?}Oq=I󀆐գ^"]&RRov_AUԦ攚8u@׉%fsTɡٞVfٺg) lK+e111:VlºݓriQVs<~/Nƪ\rٌ㜟]^ ΪA,TͶH%l[GBVutF8 4Tc S=\ lq6*Ww\'bM-՚Y(O4>yy.8Z{(Jͤ^ZlԹ:?a״*֖hHi8XECk̤VX @2)fx1P-mg}2aSj7]7Sh zx0S_ϼ GxHCuH.y3$7T@=^:T1o$Uݱ^`,_"a|[k6lkxC9O`?Cq^]w.# ݫZXw6ݐӞA4{~{u{-~/nU }Y3~\Oݸ@]G0omWJuǦɨLIL*[];P4Z~`rM%ݳ?gDCUp2rDS,DNGt?GyhY" GʥPq8>S_nTT7SF+5 -&WPҚ+@柾ci,qk0Z͵y ,oΝSU\Dϑ蚌ncV[7@煵/pplg[@lRa %, lH.)~|#3a#y㵦-?7/hٖӟ}}Ck|$B箍M[vo l c¶㰲\GÖv=GϘsF\p6EeƾM3?]={!>tD3 ]I6Z4$e} ˆH_`ȵ'S|ѠA_­@g. !Z|\Ζ"@gNڜ>rO:D;OKMp Kip\GDUZ~T1ԣuTVl!tl-m+.n&μ׳~G٭:]TI4 Xph WkMSʜ? +ܢ%hcCIMW~hKB5wTk7oqO ĆHÔ;1*pU-C5WhCΠZ'+ì>sn،hc>|n KA\bZnkJ/YW͔w./8ղXǣ1 8-?g }3}oM( tL}Ź_^ZΏAs.᩶=/\(KpMfS=>stream 2024-02-27T18:12:58+01:00 2024-02-27T18:12:58+01:00 groff version 1.22.4 Untitled endstream endobj 2 0 obj <>endobj xref 0 32 0000000000 65535 f 0000006896 00000 n 0000023657 00000 n 0000006816 00000 n 0000006242 00000 n 0000000212 00000 n 0000001740 00000 n 0000007974 00000 n 0000016046 00000 n 0000007417 00000 n 0000010345 00000 n 0000007128 00000 n 0000008562 00000 n 0000006961 00000 n 0000006384 00000 n 0000001760 00000 n 0000003286 00000 n 0000007011 00000 n 0000006528 00000 n 0000003307 00000 n 0000004756 00000 n 0000007050 00000 n 0000006672 00000 n 0000004777 00000 n 0000006221 00000 n 0000007089 00000 n 0000008817 00000 n 0000010733 00000 n 0000016510 00000 n 0000007889 00000 n 0000008460 00000 n 0000022395 00000 n trailer << /Size 32 /Root 1 0 R /Info 2 0 R /ID [<0DAD0D2BC3A2AD210F013C300222324B><0DAD0D2BC3A2AD210F013C300222324B>] >> startxref 23814 %%EOF context-modules-20240428/texmf-dist/doc/man/man1/contextjit.10000644000175000017500000000002314567414633022614 0ustar hillehille.so man1/context.1 context-modules-20240428/texmf-dist/doc/man/man1/texexec.man1.pdf0000644000175000017500000004143314567411714023341 0ustar hillehille%PDF-1.4 %쏢 %%Invocation: path/gs -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 -q -P- -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -P- -dSAFER -dCompatibilityLevel=1.4 -sPAPERSIZE=a4 - 5 0 obj <> stream xVn6+bHAt)d&V,vXF?{)і%-ly_7D0E|oV8omO sp8qSJ rx`-T\tܝܵ04hP<;nvһJ$)1Μ?kTC֗UfM(3 $V`rL˹BL8Fq=/Kz1 n;Nhc.b5i!?Wן.긏ڏq@&mF4eS|L0q^N.c<@3pQtdCc"Ռ~Dzlx Ѹ" etsцݦbB(/nWb*Hda(e9u=Hg ABJU1ѡ[VǁBEQ8^d3:=80m,zj4CWMf@U=c*M>}E/9F5pO \AvQM0ߓVTSN]CiK/ݨR"k獂x5<Cg/lFzr#ԪRRObJeQ0IS->AF pEat?ՌXt> stream xn <G|b9UrɭJI8nfc~d KX3?% im{72{pmF~X`bg qw#//Vj::f(QvL,~Y2e(j,B]C-IS]Rb`wKюtE[꿶WJV͹R^ec;t&Q/CP1Ve/tyش$rJ6cd5C&V*~O$^$eGq xj-۝Ahb /~l83 iPZ,7Wc/V0M=|yvѭՆ Oy m⧷m$%ʏPb?8%ݝc Yendstream endobj 16 0 obj 399 endobj 4 0 obj <> /Contents 5 0 R >> endobj 14 0 obj <> /Contents 15 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 14 0 R ] /Count 2 >> endobj 1 0 obj <> endobj 13 0 obj <> endobj 17 0 obj <> endobj 11 0 obj <> endobj 9 0 obj <> endobj 21 0 obj <> endobj 7 0 obj <> endobj 22 0 obj <> endobj 12 0 obj <> endobj 18 0 obj <>stream x{LSgϱS,*V۩NW6/L& x A_ʥz9+B"nHt!-Yt̖;e|yX 9EeI[j;X™9}_>A,bcP`*2ơ)X ];{%KnT)NJI].S#O/.:Q.O> J+* kvV˳+ʎǻUWði7mٶ}G]9d {K`$,[`rlcq^|dœ qrk$1w%U{5jYJu ReF0KP%`g֟փA [)!hATh1jmue#\q";T**6d;$lqNH2vtfT)(՛upWMSy0Xv |t5\cA *k6`G`ΘjC ]HNIgoi3V˂֗\WK:e"{T31+/TF*IrY*/t AՒ~k' E{m T$ iUC]krV E[`u2ZVJD #] N肀ӋLI-sIc6xPP9e!o' ]0&7I)6+*KJ y \p3(qc.E'U]C?Fu9n!PԀTVEg&- Qa&{20 M}<3)kSuzS-h-SW(5/mӢm#[eOF[p}NVڪ?sIPڊjn3ަx_Sz$ ?BĽځdOp]x.wk w0O|'!R=K&8] V6f[S%$cL[2?wC C> endobj 19 0 obj <>stream xWiXS׺1**i&UZ:ψC<& $$$$YB @(PPVZOOvSܵsWb9Οdg%{ǢƏX,ヤ x۷,f8f:_na~cC-Ӹ4: 5D,-B>s`ygeKE)Iɹq? $e&/YД꤇4:Ɠ&kt IX̴fqhp*H]<l5zQseu2̃yrU^k @c:=AOq?s:7w` 7vu^*/.瞾 mQ@4N:Bn'rаffguԮ ByaVF'6"5E a b Kz+PЛ`5ltZ#pΈn]MqG:z(]tJPhj|SZR AC)T  ]tQVsކ ƻAYr94* ~}x'3Q 3f{yc:r>>~K (u%]:EZfyZN f㝁t&CTRZ AseqoDtUHAׁx@Y<.zEeU4ڋյ4:MA䮒Wܬh#{t ۙ&>$TjV+s8Bmkh BgrY8`QEu08 p,G,]T@؃cQ"3a= %(d 7;x AE!@>_3_Z'Ko;P. EDA4BNsDwCXXvIh"z 1^IRajIkHK#Tya=w.mtz%_$Mp[ԅf2Dg i>hLlOsN0EIn5'铥FCVL]ތ%=A[VWc"1ݪдmE!c4 pBfV K\h6G|<M½d\t:Xz0>k?uO;;k5r;_eՙ4ٻW\١u4M:$Ỉ(H1 LKg.m͒v{NS|/;@! #r__1Rb1'TRQb!H48l '^)(#YiL"o7+Ԙ;rRGz LNUe%dK*R'r$1+a9S^nTV5d[2BIxuh-%9S?;Rjv z Vه Th?ko!ڱbACq%桃eGl&CybNRR6}΂BKtۍZ[tfYUn83Pt41 R-UFXf,MFGsœaDoڥΣ&~S Z;L'PgEK)`Ghڳ#:,0ȳ@,A,*W\$]4Oib-1wU:ff#8tʋj``41}ZBocd#Ij[gܠ`}eJŇƇ~AM 7_~:] k=&u=<`>8k,F̦#;eY냓D c!PAmZbfIC3R&毲KCl<<4˳O pZ+G~ g K)l X=fu0LÉ8B2GsHB/uQC*_ 8.0NB(} tud 'gSf#bmswDi4|*AzuSKGgq='~1D+QDbLbf9M~⬪RWJΊ/;>{VV҆EyQ:XW20WrGcjBlҸ̭ oVd&ywOGYwi,AQ>(Ya\Z.ܡN͉{cV<3یK2lhoֹKUj۫>j-Lܗnd@SE- 6 ~[tɓ_y,x\֋Dd3N^'>Gx>2kȪ0VVJ ¸N␆lGkأ.Mŵ8^itUmӤ!Wvo;CVU߻h6h?AOA l#R!=u@mQJQŤ5MB(w@{` 3%G!NH,Ƞٚ),Gi;ob9pЦCѫ 'G>[-;I0%dkp/޶Ib73ٞ<H.ޒ M0NV:Y}QEHz;|McNZFY㜣 ,sgX=A9/5*tR_d]bNjLR&Pn#*K͆A8tGFȬ (dyNȝjU$QSϿ6Xg:;q Gw6u^s ٻ Ό#~m͗{}KcCh8E%_~ϚOi| I}E< ia̷xv%F$4?[ݗZz1aF^tF}z}IIvaTp}=~NP“^} 56dlz.wGa,Ir"a\ONBS'=CGhUhX"^Py;qp{pH!@ƓkQ{z z/27s6ht9XjLKe#`c/S.øvci2Vm_*jmp9T A'(UZzzڜݗ6waڽҤD~|,R_Ԓ*Kt2q'#qoǭKI"meɥ/LZВx.Goby璁oow1CN5P)^.r%Ll5' VW)XC endstream endobj 8 0 obj <> endobj 20 0 obj <>stream xWyTS׾>1䜣"Z06ZjU:8ZqAQdySfHNB0AQA㵵U9toz;ڷ[VGr>}ߏExL#X,gHJzB#˙,i1-FIO6hzͻW`l?`6. kŊ3rR|׭Y7; )IK̬􄌼)q\u}DiGr}A,ψڞ'/8RWttO|BbRrJHjZ-{k~k֮[O?b?&D,!!D(FGD$OD*b;I">!6b/1` b!Nx9+7CpaƒXQ[LewqA$ k=2}3;e_1k׬YW<-19 347hbʁ^`}3& `4m=ԙSn@J\UNK`2)1QOb/n;Vcה^)Ѣ""=ۯE^19 \E%ym (= qwG'A38Uz׈.R$ !d<[)(Bi# x( "ߞT "2EW:.gJI(:yp Cf#t1\alhds+x) +er'@#έCqt! I @'THST}dU lߓi4: 5 9~{UPQM8 w=4\|icS3#v$<i0B>5mqCv9pl<_$]v%(JL YyE][^ ,|Pc5v!f jX?*PV5J`\xYV?|HU :W6¼Qķ͸H/a&%x -ejPM5UxN բR6G)ϚV%&Pe:Q~B {Ac|30Yꆠk8i49p ~ pٷ8޿pry! ]*;ܸ+E569+t&Y誀vv593B{)roQQ4 6rifj(84Y{-{.H(9Ҭ|@'g +(Ց8R߱`2ZX)h(nƖOo(HFf~ ާU}jOlitu\sKK9-$ʞ2 1cࠨBa+=.i&4S9$0w8S]FʿBVfS/5μb9,!\N 0JjFM1.TM~2NP ]Y5GU@sקּ=TE9\:A+rJ%W*  =}uLL 0 R},mpn g\*PuiYzKٞӕw)DG# HmnÞkhʹ_z]nƂ{c٦he[PZbgf*MҽO~nڭJE;(씟QQ6^pq4X;Pb3wp3]imnfe|ZNT8Y} $abvr\0Y*jȵ:uV7j  ;.{/8 5-.^nYRЖxY>bcWhg[qz18JL>'3K!wuwT۹Y Ɲ$wADi1?}+,pUaT*tMi fL5Z:9Q?BEiJ<('.{NnT]&Ew*3! &`W~ kPm%ʏinV^^fFޞל!|bOgF_̪G3U)In%p3gF9d d5C@*'uJUwl<(#Fy)Uhc9JiT ]R %0NC+a݉%gM-RjPWSdD&c6QexyFI֦"NSf܈~`7̓ ;hTT.p8Qj%UvUKq˦tR2lx!q֣ 19v2B/ Ѱjxp}/GvS` ٩@Z Du w5MBDiUAj<(NeRM ;8 Έ9(";(TPt) ,٦}a#aX_vmqUR2ipxzÊLV."AE b~.Wz;Ñs9Sl\oUB W`'6šA_+hZ>UvaS]/ 7QSP٬o! _cb99s;Z;:҅y55o:XgMmQ9'/h:@sm6x̾{\;L=su&苿t&3]r1@gkkΚ` xC旵7kOZA8;uv;!=g}31parl'-h =tY86= Z8Fo- \+[f4+&-h d? )ai[6gi`iDleƙ1B?E{P,zFM[;cCƏ⠜gcRA(kAb^ק ]]Vwva7?u`w2H.Z;L+MuᡎSǓlnwh׵ G:7o ʎJ);H[0k؃u71Xwy1){4(.fbIt{*)hM.RPqLX5>stream 2024-02-27T17:54:10+01:00 2024-02-27T17:54:10+01:00 groff version 1.22.4 Untitled endstream endobj 2 0 obj <>endobj xref 0 24 0000000000 65535 f 0000002150 00000 n 0000016388 00000 n 0000002084 00000 n 0000001798 00000 n 0000000212 00000 n 0000001287 00000 n 0000003130 00000 n 0000010321 00000 n 0000002593 00000 n 0000005446 00000 n 0000002304 00000 n 0000003663 00000 n 0000002215 00000 n 0000001940 00000 n 0000001307 00000 n 0000001778 00000 n 0000002265 00000 n 0000003918 00000 n 0000005796 00000 n 0000010686 00000 n 0000003045 00000 n 0000003578 00000 n 0000015126 00000 n trailer << /Size 24 /Root 1 0 R /Info 2 0 R /ID [<2A3ED4593E459247EC6ECE75DB8D65F0><2A3ED4593E459247EC6ECE75DB8D65F0>] >> startxref 16545 %%EOF context-modules-20240428/texmf-dist/doc/context/0000755000175000017500000000000014613513620020405 5ustar hillehillecontext-modules-20240428/texmf-dist/doc/context/scripts/0000755000175000017500000000000014613513620022074 5ustar hillehillecontext-modules-20240428/texmf-dist/doc/context/scripts/mkii/0000755000175000017500000000000014613513620023025 5ustar hillehillecontext-modules-20240428/texmf-dist/doc/context/scripts/mkii/texexec.html0000644000175000017500000001516114536300415025364 0ustar hillehille TeXExec 6.2.1
TeXExec 6.2.1
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--makemake formats
--checkcheck versions
--processprocess file
--mptexprocess mp file
--mpxtexprocess mpx file
--mpgraphicprocess mp file to stand-alone graphics
--mpstaticprocess mp/ctx file to stand-alone graphics
--listinglist of file content
--figuresgenerate overview of figures
--modulesgenerate module documentation
--pdfarrangeimpose pages (booklets)
--pdfselectselect pages from file(s)
--pdfcopycopy pages from file(s)
--pdftrimtrim pages from file(s)
--pdfcombinecombine multiple pages
--pdfsplitsplit file in pages

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/texmfstart.html0000644000175000017500000002345014536300415026120 0ustar hillehille texmfstart 7.0.0
texmfstart 7.0.0
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--scriptrun an mtx script (lua prefered method) (--noquotes), no script gives list
--evaluaterun code passed on the commandline (between quotes) (=loop) (exit|quit aborts)
--executerun a script or program (texmfstart method) (--noquotes)
--resolveresolve prefixed arguments
--ctxluarun internally (using preloaded libs)
--internalrun script using built in libraries (same as --ctxlua)
--locatelocate given filename in database (default) or system (--first --all --detail)
--treepathtotreeuse given texmf tree (default file: setuptex.tmf)
--pathrunpathgo to given path before execution
--ifchangedfilenameonly execute when given file has changed (md checksum)
--iftouchedold,newonly execute when given file has changed (time stamp)
--makestubscreate stubs for (context related) scripts
--removestubsremove stubs (context related) scripts
--stubpathbinpathpaths where stubs wil be written
--windowscreate windows (mswin) stubs
--unixcreate unix (linux) stubs
--addbinarypathprepend the (found) binarypath to runners
--verbosegive a bit more info
--trackerslistenable given trackers
--prognamestrformat or backend
--systeminfostrshow current operating system, processor, etc
--editlaunch editor with found file
--launchlaunch files like manuals, assumes os support (--all,--list)
--timedrunrun a script and time its run
--autogenerateregenerate databases if needed (handy when used to run context in an editor)
--usekpseuse kpse as fallback (when no mkiv and cache installed, often slower)
--forcekpseforce using kpse (handy when no mkiv and cache installed but less functionality)
--prefixesshow supported prefixes
--generategenerate file database
--variablesshow configuration variables
--configurationsshow configuration order
--directivesshow (known) directives
--trackersshow (known) trackers
--experimentsshow (known) experiments
--expand-bracesexpand complex variable
--resolve-pathexpand variable (completely resolve paths)
--expand-pathexpand variable (resolve paths)
--expand-varexpand variable (resolve references)
--show-pathshow path expansion of ...
--var-valuereport value of variable
--find-filereport file location
--find-pathreport path of file
--patternstringfilter variables

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/texexec.man0000644000175000017500000000214214567411714025177 0ustar hillehille.TH "texexec" "1" "01-01-2024" "version 6.2.1" "TeXExec" .SH NAME texexec - TeXExec .SH SYNOPSIS .B texexec [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B TeXExec .SH OPTIONS .TP .B --make make formats .TP .B --check check versions .TP .B --process process file .TP .B --mptex process mp file .TP .B --mpxtex process mpx file .TP .B --mpgraphic process mp file to stand-alone graphics .TP .B --mpstatic process mp/ctx file to stand-alone graphics .TP .B --listing list of file content .TP .B --figures generate overview of figures .TP .B --modules generate module documentation .TP .B --pdfarrange impose pages (booklets) .TP .B --pdfselect select pages from file(s) .TP .B --pdfcopy copy pages from file(s) .TP .B --pdftrim trim pages from file(s) .TP .B --pdfcombine combine multiple pages .TP .B --pdfsplit split file in pages .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/texutil.man0000644000175000017500000000145514567411714025236 0ustar hillehille.TH "texutil" "1" "01-01-2024" "version 9.1.0" "TeXUtil" .SH NAME texutil - TeXUtil .SH SYNOPSIS .B texutil [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B TeXUtil .SH OPTIONS .TP .B --references convert tui file into tuo file .TP .B --figures generate figure dimensions file .TP .B --logfile filter essential log messages .TP .B --purgefiles remove most temporary files .TP .B --purgeallfiles remove all temporary files .TP .B --documentation generate documentation file from source .TP .B --analyzefile analyze pdf file .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/xmltools.xml0000644000175000017500000000156214536300415025434 0ustar hillehille xmltools XMLTools 1.2.2 generate directory listing generate graphic from mathml report entities and elements [ ] cleanup xml file [] enhance xml file (partial) filter elements from xml file [] generate ddirectory listing context-modules-20240428/texmf-dist/doc/context/scripts/mkii/texutil.xml0000644000175000017500000000150714536300415025250 0ustar hillehille texutil TeXUtil 9.1.0 convert tui file into tuo file generate figure dimensions file filter essential log messages remove most temporary files remove all temporary files generate documentation file from source analyze pdf file context-modules-20240428/texmf-dist/doc/context/scripts/mkii/textools.man0000644000175000017500000000226214567411714025416 0ustar hillehille.TH "textools" "1" "01-01-2024" "version 1.3.1" "TeXTools" .SH NAME textools - TeXTools .SH SYNOPSIS .B textools [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B TeXTools .SH OPTIONS .TP .B --removemapnames [pattern] [--recurse] .TP .B --restoremapnames [pattern] [--recurse] .TP .B --hidemapnames [pattern] [--recurse] .TP .B --videmapnames [pattern] [--recurse] .TP .B --findfile filename [--recurse] .TP .B --unzipfiles [pattern] [--recurse] .TP .B --fixafmfiles [pattern] [--recurse] .TP .B --mactodos [pattern] [--recurse] .TP .B --fixtexmftrees [texmfroot] [--force] .TP .B --replacefile filename [--force] .TP .B --updatetree fromroot toroot [--force --nocheck --merge --delete] .TP .B --downcasefilenames [--recurse] [--force] .TP .B --stripformfeeds [--recurse] [--force] .TP .B --showfont filename .TP .B --encmake afmfile encodingname .TP .B --tpmmake tpm file (run in texmf root) .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/tmftools.xml0000644000175000017500000000107314536300415025417 0ustar hillehille tmftools TMFTools 1.1.0 [ ] [pattern] act as kpse server context-modules-20240428/texmf-dist/doc/context/scripts/mkii/rlxtools.html0000644000175000017500000001311414536300415025601 0ustar hillehille RlxTools 1.0.1
RlxTools 1.0.1
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--manipulate[--test] manipulatorfile resourselog
--identify[--collect] filename

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/xmltools.html0000644000175000017500000001376214536300415025605 0ustar hillehille XMLTools 1.2.1
XMLTools 1.2.1
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--dirgenerate directory listing
--mmlpagesgenerate graphic from mathml
--analyzereport entities and elements [--utf --process]
--cleanupcleanup xml file [--force]
--enhanceenhance xml file (partial)
--filterfilter elements from xml file [--element]
--dirgenerate ddirectory listing

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/pstopdf.xml0000644000175000017500000000067214536300415025233 0ustar hillehille pstopdf PStoPDF 2.0.1 handles exa request file watch folders for conversions (untested) context-modules-20240428/texmf-dist/doc/context/scripts/mkii/xmltools.man0000644000175000017500000000145314567411714025417 0ustar hillehille.TH "xmltools" "1" "01-01-2024" "version 1.2.2" "XMLTools" .SH NAME xmltools - XMLTools .SH SYNOPSIS .B xmltools [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B XMLTools .SH OPTIONS .TP .B --dir generate directory listing .TP .B --mmlpages generate graphic from mathml .TP .B --analyze report entities and elements [--utf --process] .TP .B --cleanup cleanup xml file [--force] .TP .B --enhance enhance xml file (partial) .TP .B --filter filter elements from xml file [--element] .TP .B --dir generate ddirectory listing .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/ctxtools.man0000644000175000017500000000310314567411714025407 0ustar hillehille.TH "ctxtools" "1" "01-01-2024" "version 1.3.5" "CtxTools" .SH NAME ctxtools - CtxTools .SH SYNOPSIS .B ctxtools [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B CtxTools .SH OPTIONS .TP .B --touchcontextfile update context version .TP .B --contextversion report context version .TP .B --jeditinterface generate jedit syntax files [--pipe] .TP .B --bbeditinterface generate bbedit syntax files [--pipe] .TP .B --sciteinterface generate scite syntax files [--pipe] .TP .B --rawinterface generate raw syntax files [--pipe] .TP .B --translateinterface generate interface files (xml) [nl de ..] .TP .B --purgefiles remove temporary files [--all --recurse] [basename] .TP .B --documentation generate documentation [--type=] [filename] .TP .B --filterpages' ) # no help, hidden temporary feature .TP .B --dpxmapfiles convert pdftex mapfiles to dvipdfmx [--force] [texmfroot] .TP .B --listentities create doctype entity definition from enco-uc.tex .TP .B --brandfiles add context copyright notice [--force] .TP .B --platformize replace line-endings [--recurse --force] [pattern] .TP .B --dependencies analyze depedencies within context [--save --compact --filter=[macros|filenames] ] [filename] .TP .B --updatecontext download latest version and remake formats [--proxy] .TP .B --disarmutfbom remove utf bom [--force] .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/texmfstart.xml0000644000175000017500000001115714536300415025755 0ustar hillehille mtxrun ConTeXt TDS Runner Tool 1.33 run an mtx script (lua prefered method) (), no script gives list run code passed on the commandline (between quotes) (=loop) (exit|quit aborts) run a script or program (texmfstart method) () resolve prefixed arguments run internally (using preloaded libs) run script using built in libraries (same as ) locate given filename in database (default) or system ( ) use given texmf tree (default file: setuptex.tmf) go to given path before execution only execute when given file has changed (md checksum) only execute when given file has changed (time stamp) create stubs for (context related) scripts remove stubs (context related) scripts paths where stubs wil be written create windows (mswin) stubs create unix (linux) stubs prepend the (found) binarypath to runners give a bit more info enable given trackers format or backend show current operating system, processor, etc launch editor with found file launch files like manuals, assumes os support (,) run a script and time its run regenerate databases if needed (handy when used to run context in an editor) use kpse as fallback (when no mkiv and cache installed, often slower) force using kpse (handy when no mkiv and cache installed but less functionality) show supported prefixes generate file database show configuration variables show configuration order show (known) directives show (known) trackers show (known) experiments expand complex variable expand variable (completely resolve paths) expand variable (resolve paths) expand variable (resolve references) show path expansion of ... report value of variable report file location report path of file filter variables context-modules-20240428/texmf-dist/doc/context/scripts/mkii/texmfstart.man0000644000175000017500000000576014567411714025744 0ustar hillehille.TH "mtxrun" "1" "01-01-2024" "version 1.33" "ConTeXt TDS Runner Tool" .SH NAME mtxrun - ConTeXt TDS Runner Tool .SH SYNOPSIS .B mtxrun [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B ConTeXt TDS Runner Tool .SH OPTIONS .TP .B --script run an mtx script (lua prefered method) (--noquotes), no script gives list .TP .B --evaluate run code passed on the commandline (between quotes) (=loop) (exit|quit aborts) .TP .B --execute run a script or program (texmfstart method) (--noquotes) .TP .B --resolve resolve prefixed arguments .TP .B --ctxlua run internally (using preloaded libs) .TP .B --internal run script using built in libraries (same as --ctxlua) .TP .B --locate locate given filename in database (default) or system (--first --all --detail) .TP .B --tree=pathtotree use given texmf tree (default file: setuptex.tmf) .TP .B --path=runpath go to given path before execution .TP .B --ifchanged=filename only execute when given file has changed (md checksum) .TP .B --iftouched=old,new only execute when given file has changed (time stamp) .TP .B --makestubs create stubs for (context related) scripts .TP .B --removestubs remove stubs (context related) scripts .TP .B --stubpath=binpath paths where stubs wil be written .TP .B --windows create windows (mswin) stubs .TP .B --unix create unix (linux) stubs .TP .B --addbinarypath prepend the (found) binarypath to runners .TP .B --verbose give a bit more info .TP .B --trackers=list enable given trackers .TP .B --progname=str format or backend .TP .B --systeminfo=str show current operating system, processor, etc .TP .B --edit launch editor with found file .TP .B --launch launch files like manuals, assumes os support (--all,--list) .TP .B --timedrun run a script and time its run .TP .B --autogenerate regenerate databases if needed (handy when used to run context in an editor) .TP .B --usekpse use kpse as fallback (when no mkiv and cache installed, often slower) .TP .B --forcekpse force using kpse (handy when no mkiv and cache installed but less functionality) .TP .B --prefixes show supported prefixes .TP .B --generate generate file database .TP .B --variables show configuration variables .TP .B --configurations show configuration order .TP .B --directives show (known) directives .TP .B --trackers show (known) trackers .TP .B --experiments show (known) experiments .TP .B --expand-braces expand complex variable .TP .B --resolve-path expand variable (completely resolve paths) .TP .B --expand-path expand variable (resolve paths) .TP .B --expand-var expand variable (resolve references) .TP .B --show-path show path expansion of ... .TP .B --var-value report value of variable .TP .B --find-file report file location .TP .B --find-path report path of file .TP .B --pattern=string filter variables .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/pdftools.man0000644000175000017500000000157414567411714025374 0ustar hillehille.TH "pdftools" "1" "01-01-2024" "version 1.2.1" "PDFTools" .SH NAME pdftools - PDFTools .SH SYNOPSIS .B pdftools [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B PDFTools .SH OPTIONS .TP .B --spotimage filename --colorspec --colorname= [--retain --invert --subpath=] .TP .B --colorimage filename --colorspec [--retain --invert --colorname= ] .TP .B --convertimage filename [--retain --subpath] .TP .B --downsampleimage filename [--retain --subpath --lowres --normal] .TP .B --info filename .TP .B --countpages [--pattern --threshold] .TP .B --checkembedded [--pattern] .TP .B --analyzefile filename .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/texutil.html0000644000175000017500000001377014536300415025421 0ustar hillehille TeXUtil 9.1.0
TeXUtil 9.1.0
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--referencesconvert tui file into tuo file
--figuresgenerate figure dimensions file
--logfilefilter essential log messages
--purgefilesremove most temporary files
--purgeallfilesremove all temporary files
--documentationgenerate documentation file from source
--analyzefileanalyze pdf file

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/imgtopdf.man0000644000175000017500000000147314567411714025351 0ustar hillehille.TH "imgtopdf" "1" "01-01-2024" "version 1.1.2" "ImgToPdf" .SH NAME imgtopdf - ImgToPdf .SH SYNOPSIS .B imgtopdf [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B ImgToPdf .SH OPTIONS .TP .B --convert convert image into pdf .TP .B --compression level of compression in percent .TP .B --depth image depth in bits .TP .B --colorspace colorspace (rgb,cmyk,gray) .TP .B --quality quality in percent .TP .B --inputpath path where files are looked for .TP .B --outputpath path where files end up .TP .B --auto determine settings automatically .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/ctxtools.xml0000644000175000017500000000404614536300415025432 0ustar hillehille ctxtools CtxTools 1.3.5 update context version report context version generate jedit syntax files [ generate bbedit syntax files [ generate scite syntax files [ generate raw syntax files [ generate interface files (xml) [nl de ..] remove temporary files [ [basename] [filename] ) # no help, hidden temporary feature convert pdftex mapfiles to dvipdfmx [ [texmfroot] create doctype entity definition from enco-uc.tex add context copyright notice [ replace line-endings [ [pattern] [filename] download latest version and remake formats [ remove utf bom [ context-modules-20240428/texmf-dist/doc/context/scripts/mkii/pdftools.xml0000644000175000017500000000220314536300415025376 0ustar hillehille pdftools PDFTools 1.2.1 [ [ ] filename [ filename [ filename [ [ filename context-modules-20240428/texmf-dist/doc/context/scripts/mkii/rlxtools.xml0000644000175000017500000000072214536300415025436 0ustar hillehille rlxtools RlxTools 1.0.1 [ manipulatorfile resourselog [ filename context-modules-20240428/texmf-dist/doc/context/scripts/mkii/ctxtools.html0000644000175000017500000001616014536300415025576 0ustar hillehille CtxTools 1.3.5
CtxTools 1.3.5
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--touchcontextfileupdate context version
--contextversionreport context version
--jeditinterfacegenerate jedit syntax files [--pipe]
--bbeditinterfacegenerate bbedit syntax files [--pipe]
--sciteinterfacegenerate scite syntax files [--pipe]
--rawinterfacegenerate raw syntax files [--pipe]
--translateinterfacegenerate interface files (xml) [nl de ..]
--purgefilesremove temporary files [--all --recurse] [basename]
--documentation generate documentation [--type][filename]
--filterpages') # no help, hidden temporary feature
--dpxmapfilesconvert pdftex mapfiles to dvipdfmx [--force] [texmfroot]
--listentitiescreate doctype entity definition from enco-uc.tex
--brandfilesadd context copyright notice [--force]
--platformizereplace line-endings [--recurse --force] [pattern]
--dependencies analyze depedencies within context [--save --compact --filter[macros|filenames] ][filename]
--updatecontextdownload latest version and remake formats [--proxy]
--disarmutfbomremove utf bom [--force]

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/tmftools.man0000644000175000017500000000111714567411714025402 0ustar hillehille.TH "tmftools" "1" "01-01-2024" "version 1.1.0" "TMFTools" .SH NAME tmftools - TMFTools .SH SYNOPSIS .B tmftools [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B TMFTools .SH OPTIONS .TP .B --analyze [--strict --sort --rootpath --treepath --delete --force] [pattern] .TP .B --serve act as kpse server .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/textools.xml0000644000175000017500000000325714536300415025437 0ustar hillehille textools TeXTools 1.3.1 [pattern] [ [pattern] [ [pattern] [ [pattern] [ filename [ [pattern] [ [pattern] [ [pattern] [ [texmfroot] [ filename [ fromroot toroot [ [ [ [ [ filename afmfile encodingname tpm file (run in texmf root) context-modules-20240428/texmf-dist/doc/context/scripts/mkii/tmftools.html0000644000175000017500000001320314536300415025561 0ustar hillehille TMFTools 1.2.1
TMFTools 1.2.1
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--analyze[--strict --sort --rootpath --treepath --delete --force] [pattern]
--serveact as kpse server

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/pdftools.html0000644000175000017500000001414714536300415025554 0ustar hillehille PDFTools 1.2.1
PDFTools 1.2.1
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--spotimage filename --colorspec--colorname= [--retain --invert --subpath=]
--colorimage filename --colorspec[--retain --invert --colorname= ]
--convertimagefilename [--retain --subpath]
--downsampleimagefilename [--retain --subpath --lowres --normal]
--infofilename
--countpages[--pattern --threshold]
--checkembedded[--pattern]
--analyzefilefilename

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/pstopdf.html0000644000175000017500000001311414536300415025372 0ustar hillehille PStoPDF 2.0.1
PStoPDF 2.0.1
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--requesthandles exa request file
--watchwatch folders for conversions (untested)

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/pstopdf.man0000644000175000017500000000106514567411714025214 0ustar hillehille.TH "pstopdf" "1" "01-01-2024" "version 2.0.1" "PStoPDF" .SH NAME pstopdf - PStoPDF .SH SYNOPSIS .B pstopdf [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B PStoPDF .SH OPTIONS .TP .B --request handles exa request file .TP .B --watch watch folders for conversions (untested) .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/textools.html0000644000175000017500000001527514536300415025606 0ustar hillehille TeXTools 1.3.1
TeXTools 1.3.1
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--removemapnames[pattern] [--recurse]
--restoremapnames[pattern] [--recurse]
--hidemapnames[pattern] [--recurse]
--videmapnames[pattern] [--recurse]
--findfilefilename [--recurse]
--unzipfiles[pattern] [--recurse]
--fixafmfiles[pattern] [--recurse]
--mactodos[pattern] [--recurse]
--fixtexmftrees[texmfroot] [--force]
--replacefilefilename [--force]
--updatetreefromroot toroot [--force --nocheck --merge --delete]
--downcasefilenames[--recurse] [--force]
--stripformfeeds[--recurse] [--force]
--showfontfilename
--encmakeafmfile encodingname
--tpmmaketpm file (run in texmf root)

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/imgtopdf.html0000644000175000017500000001404614536300415025531 0ustar hillehille ImgToPdf 1.1.2
ImgToPdf 1.1.2
wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl

Command line options

flagvaluedescription
--convertconvert image into pdf
--compressionlevel of compression in percent
--depthimage depth in bits
--colorspace colorspace (rgb,cmyk,gray)
--qualityquality in percent
--inputpathpath where files are looked for
--outputpathpath where files end up
--autodetermine settings automatically

context-modules-20240428/texmf-dist/doc/context/scripts/mkii/rlxtools.man0000644000175000017500000000107114567411714025420 0ustar hillehille.TH "rlxtools" "1" "01-01-2024" "version 1.0.1" "RlxTools" .SH NAME rlxtools - RlxTools .SH SYNOPSIS .B rlxtools [ .I OPTIONS ... .B ] [ .I FILENAMES .B ] .SH DESCRIPTION .B RlxTools .SH OPTIONS .TP .B --manipulate [--test] manipulatorfile resourselog .TP .B --identify [--collect] filename .SH AUTHOR More information about ConTeXt and the tools that come with it can be found at: .B "maillist:" ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context .B "webpage:" http://www.pragma-ade.nl / http://tex.aanhet.net .B "wiki:" http://contextgarden.net context-modules-20240428/texmf-dist/doc/context/scripts/mkii/imgtopdf.xml0000644000175000017500000000156014536300415025362 0ustar hillehille imgtopdf ImgToPdf 1.1.2 convert image into pdf level of compression in percent image depth in bits colorspace (rgb,cmyk,gray) quality in percent path where files are looked for path where files end up determine settings automatically context-modules-20240428/texmf-dist/doc/context/scripts/mkii/texexec.xml0000644000175000017500000000261314536300415025216 0ustar hillehille texexec TeXExec 6.2.1 make formats check versions process file process mp file process mpx file process mp file to stand-alone graphics process mp/ctx file to stand-alone graphics list of file content generate overview of figures generate module documentation impose pages (booklets) select pages from file(s) copy pages from file(s) trim pages from file(s) combine multiple pages split file in pages context-modules-20240428/texmf-dist/tex/0000755000175000017500000000000014613513620016754 5ustar hillehillecontext-modules-20240428/texmf-dist/tex/context/0000755000175000017500000000000014613513621020441 5ustar hillehillecontext-modules-20240428/texmf-dist/tex/context/fonts/0000755000175000017500000000000014613513620021571 5ustar hillehillecontext-modules-20240428/texmf-dist/tex/context/fonts/mkii/0000755000175000017500000000000014613513620022522 5ustar hillehillecontext-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-buy.mkii0000644000175000017500000010023314536300610025147 0ustar hillehille%D \module %D [ file=type-buy, %D version=2003.07.08, % 2001.04.12, %D title=\CONTEXT\ Typescript Macros, %D subtitle=A Few Commercial Fonts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % fallback % todo \typescriptthree \starttypescriptcollection[commercial fonts] % Informal : Vulis \starttypescript [casual] [informal] [name] \definefontsynonym [Serif] [Informal-Regular] \definefontsynonym [SerifBold] [Informal-Bold] \definefontsynonym [SerifSlanted] [Informal-Oblique] \definefontsynonym [SerifItalic] [Informal-Oblique] \definefontsynonym [SerifBoldSlanted] [Informal-BoldOblique] \definefontsynonym [SerifBoldItalic] [Informal-BoldOblique] \definefontsynonym [SerifCaps] [Informal-Regular] \stoptypescript \starttypescript [math] [informal] [name] \definefontsynonym [MathRoman] [Informal-Regular] \definefontsynonym [MathExtension] [Informal-MathExtendedSymbols] \definefontsynonym [MathItalic] [Informal-MathItalics] \definefontsynonym [MathSymbol] [Informal-MathSymbols] \stoptypescript \starttypescript [casual] [informal] [default] \definefontsynonym [Informal-Regular] [ifrm10cm] \definefontsynonym [Informal-Bold] [ifrb10cm] \definefontsynonym [Informal-Oblique] [ifro10cm] \definefontsynonym [Informal-BoldOblique] [ifbo10cm] \loadmapfile[original-micropress-informal.map] \stoptypescript \starttypescript [math] [informal] [default] \definefontsynonym [Informal-Regular] [ifrm10cm] \definefontsynonym [Informal-MathExtendedSymbols] [ifex10] \definefontsynonym [Informal-MathItalics] [ifmi10] \definefontsynonym [Informal-MathSymbols] [ifsy10] \loadmapfile[original-micropress-informal.map] \stoptypescript % ITC Officina \starttypescript [serif] [officina] [name] \definefontsynonym [Serif] [OfficinaSerif-Book] \definefontsynonym [SerifItalic] [OfficinaSerif-BookItalic] \definefontsynonym [SerifSlanted] [OfficinaSerif-BookSlanted] \definefontsynonym [SerifBold] [OfficinaSerif-Bold] \definefontsynonym [SerifBoldItalic] [OfficinaSerif-BoldItalic] \definefontsynonym [SerifBoldSlanted] [OfficinaSerif-BoldSlanted] \definefontsynonym [SerifCaps] [OfficinaSerif-Caps] \stoptypescript \starttypescript [sans] [officina] [name] \definefontsynonym [Sans] [OfficinaSans-Book] \definefontsynonym [SansItalic] [OfficinaSans-BookItalic] \definefontsynonym [SansSlanted] [OfficinaSans-BookSlanted] \definefontsynonym [SansBold] [OfficinaSans-Bold] \definefontsynonym [SansBoldItalic] [OfficinaSans-BoldItalic] \definefontsynonym [SansBoldSlanted] [OfficinaSans-BoldSlanted] \definefontsynonym [SansCaps] [OfficinaSans-Caps] \stoptypescript \starttypescript [serif] [officina] [texnansi,ec,8r] \definefontsynonym [OfficinaSerif-Book] [\typescriptthree-ovbk] [encoding=\typescriptthree] \definefontsynonym [OfficinaSerif-BookItalic] [\typescriptthree-ovwi] [encoding=\typescriptthree] \definefontsynonym [OfficinaSerif-Bold] [\typescriptthree-ovb] [encoding=\typescriptthree] \definefontsynonym [OfficinaSerif-BoldItalic] [\typescriptthree-ovbi] [encoding=\typescriptthree] \definefontsynonym [OfficinaSerif-BookSlanted] [\typescriptthree-ovbk-slanted-167] [encoding=\typescriptthree] \definefontsynonym [OfficinaSerif-BoldSlanted] [\typescriptthree-ovb-slanted-167] [encoding=\typescriptthree] \definefontsynonym [OfficinaSerif-Caps] [\typescriptthree-ovbk-capitalized-800] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-itc-officina.map] \stoptypescript \starttypescript [sans] [officina] [texnansi,ec,8r] \definefontsynonym [OfficinaSans-Book] [\typescriptthree-owbk] [encoding=\typescriptthree] \definefontsynonym [OfficinaSans-BookItalic] [\typescriptthree-owwi] [encoding=\typescriptthree] \definefontsynonym [OfficinaSans-Bold] [\typescriptthree-owb] [encoding=\typescriptthree] \definefontsynonym [OfficinaSans-BoldItalic] [\typescriptthree-owbi] [encoding=\typescriptthree] \definefontsynonym [OfficinaSans-BookSlanted] [\typescriptthree-owbk-slanted-167] [encoding=\typescriptthree] \definefontsynonym [OfficinaSans-BoldSlanted] [\typescriptthree-owb-slanted-167] [encoding=\typescriptthree] \definefontsynonym [OfficinaSans-Caps] [\typescriptthree-owbk-capitalized-800] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-itc-officina.map] \stoptypescript % FontFont Meta \starttypescript [sans] [meta] [name] \definefontsynonym [Sans] [MetaNormal-Roman] \definefontsynonym [SansItalic] [MetaNormal-Italic] \definefontsynonym [SansSlanted] [MetaNormal-Italic] \definefontsynonym [SansBold] [MetaBold-Roman] \definefontsynonym [SansBoldItalic] [MetaBold-Italic] \definefontsynonym [SansBoldSlanted][MetaBold-Italic] \definefontsynonym [SansCaps] [MetaNormal-Caps] \stoptypescript \starttypescript [sans] [meta-medium] [name] \definefontsynonym [Sans] [MetaMedium-Roman] \definefontsynonym [SansItalic] [MetaMedium-Italic] \definefontsynonym [SansSlanted] [MetaMedium-Italic] \definefontsynonym [SansBold] [MetaBold-Roman] \definefontsynonym [SansBoldItalic] [MetaBold-Italic] \definefontsynonym [SansBoldSlanted][MetaBold-Italic] \definefontsynonym [SansCaps] [MetaMedium-Caps] \stoptypescript \starttypescript [sans] [meta-lf] [name] \definefontsynonym [Sans] [MetaBookLF-Roman] \definefontsynonym [SansBold] [MetaBoldLF-Roman] \definefontsynonym [SansItalic] [MetaBookLF-Italic] \definefontsynonym [SansBoldItalic] [MetaBoldLF-Italic] \definefontsynonym [SansCaps] [MetaBookLF-Caps] \stoptypescript \starttypescript [sans] [meta,meta-book] [texnansi,ec,8r] \definefontsynonym [MetaBook-Roman] [\typescriptthree-mtbk] [encoding=\typescriptthree] \definefontsynonym [MetaBook-Italic] [\typescriptthree-mtbki] [encoding=\typescriptthree] \definefontsynonym [MetaBook-Caps] [\typescriptthree-mtbkc] [encoding=\typescriptthree] \definefontsynonym [MetaBook-ItalicCaps] [\typescriptthree-mtbkic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta-lf,meta-book-lf] [texnansi,ec,8r] \definefontsynonym [MetaBookLF-Roman] [\typescriptthree-mtbkf] [encoding=\typescriptthree] \definefontsynonym [MetaBookLF-Italic] [\typescriptthree-mtbkfi] [encoding=\typescriptthree] \definefontsynonym [MetaBookLF-Caps] [\typescriptthree-mtbkfc] [encoding=\typescriptthree] \definefontsynonym [MetaBookLF-ItalicCaps] [\typescriptthree-mtbkfic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta,meta-bold] [texnansi,ec,8r] \definefontsynonym [MetaBold-Roman] [\typescriptthree-mtbd] [encoding=\typescriptthree] \definefontsynonym [MetaBold-Italic] [\typescriptthree-mtbdi] [encoding=\typescriptthree] \definefontsynonym [MetaBold-Caps] [\typescriptthree-mtbdc] [encoding=\typescriptthree] \definefontsynonym [MetaBold-ItalicCaps] [\typescriptthree-mtbdic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta-lf,meta-bold-lf] [texnansi,ec,8r] \definefontsynonym [MetaBoldLF-Roman] [\typescriptthree-mtbdf] [encoding=\typescriptthree] \definefontsynonym [MetaBoldLF-Italic] [\typescriptthree-mtbdfi] [encoding=\typescriptthree] \definefontsynonym [MetaBoldLF-Caps] [\typescriptthree-mtbdfc] [encoding=\typescriptthree] \definefontsynonym [MetaBoldLF-ItalicCaps] [\typescriptthree-mtbdfic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta-normal] [texnansi,ec,8r] \definefontsynonym [MetaNormal-Roman] [\typescriptthree-mtn] [encoding=\typescriptthree] \definefontsynonym [MetaNormal-Italic] [\typescriptthree-mtni] [encoding=\typescriptthree] \definefontsynonym [MetaNormal-Caps] [\typescriptthree-mtnc] [encoding=\typescriptthree] \definefontsynonym [MetaNormal-ItalicCaps] [\typescriptthree-mtnic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta-normal-lf] [texnansi,ec,8r] \definefontsynonym [MetaNormalLF-Roman] [\typescriptthree-mtnf] [encoding=\typescriptthree] \definefontsynonym [MetaNormalLF-Italic] [\typescriptthree-mtnfi] [encoding=\typescriptthree] \definefontsynonym [MetaNormalLF-Caps] [\typescriptthree-mtnfc] [encoding=\typescriptthree] \definefontsynonym [MetaNormalLF-ItalicCaps] [\typescriptthree-mtnfic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta-medium] [texnansi,ec,8r] \definefontsynonym [MetaMedium-Roman] [\typescriptthree-mtm] [encoding=\typescriptthree] \definefontsynonym [MetaMedium-Italic] [\typescriptthree-mtmi] [encoding=\typescriptthree] \definefontsynonym [MetaMedium-Caps] [\typescriptthree-mtmc] [encoding=\typescriptthree] \definefontsynonym [MetaMedium-ItalicCaps] [\typescriptthree-mtmic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta-medium-lf] [texnansi,ec,8r] \definefontsynonym [MetaMediumLF-Roman] [\typescriptthree-mtmf] [encoding=\typescriptthree] \definefontsynonym [MetaMediumLF-Italic] [\typescriptthree-mtmfi] [encoding=\typescriptthree] \definefontsynonym [MetaMediumLF-Caps] [\typescriptthree-mtmfc] [encoding=\typescriptthree] \definefontsynonym [MetaMediumLF-ItalicCaps] [\typescriptthree-mtmfic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta-black] [texnansi,ec,8r] \definefontsynonym [MetaBlack-Roman] [\typescriptthree-mtbl] [encoding=\typescriptthree] \definefontsynonym [MetaBlack-Italic] [\typescriptthree-mtbli] [encoding=\typescriptthree] \definefontsynonym [MetaBlack-Caps] [\typescriptthree-mtblc] [encoding=\typescriptthree] \definefontsynonym [MetaBlack-ItalicCaps] [\typescriptthree-mtblic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [sans] [meta-black-lf] [texnansi,ec,8r] \definefontsynonym [MetaBlackLF-Roman] [\typescriptthree-mtblf] [encoding=\typescriptthree] \definefontsynonym [MetaBlackLF-Italic] [\typescriptthree-mtblfi] [encoding=\typescriptthree] \definefontsynonym [MetaBlackLF-Caps] [\typescriptthree-mtblfc] [encoding=\typescriptthree] \definefontsynonym [MetaBlackLF-ItalicCaps] [\typescriptthree-mtblfic] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript \starttypescript [expert] [meta] % incomplete \definefontsynonym [MetaNormal-Expert] [mtnx] \loadmapfile [\typescriptthree-fontfont-meta.map] \stoptypescript %D Linotype Univers \starttypescript [sans] [univers,univers-light,univers-black] [name] \definefontsynonym [Sans] [Univers] \definefontsynonym [SansBold] [Univers-Bold] \definefontsynonym [SansSlanted] [Univers-Oblique] \definefontsynonym [SansBoldSlanted] [Univers-BoldOblique] \stoptypescript \starttypescript [sans] [univers-light] [name] \definefontsynonym [Sans] [Univers-Light] \definefontsynonym [SansSlanted] [Univers-LightOblique] \stoptypescript \starttypescript [sans] [univers-black] [name] \definefontsynonym [Sans] [Univers-Black] \definefontsynonym [SansSlanted] [Univers-BlackOblique] \definefontsynonym [SansBold] [Univers-Black] \definefontsynonym [SansBoldSlanted] [Univers-BlackOblique] \stoptypescript \starttypescript [sans] [univers,univers-black,univers-light] [texnansi,ec,8r] \definefontsynonym [Univers-Light] [\typescriptthree-lt50136] [encoding=\typescriptthree] \definefontsynonym [Univers-LightOblique] [\typescriptthree-lt50137] [encoding=\typescriptthree] \definefontsynonym [Univers] [\typescriptthree-lt50138] [encoding=\typescriptthree] \definefontsynonym [Univers-Oblique] [\typescriptthree-lt50139] [encoding=\typescriptthree] \definefontsynonym [Univers-Bold] [\typescriptthree-lt50140] [encoding=\typescriptthree] \definefontsynonym [Univers-BoldOblique] [\typescriptthree-lt50141] [encoding=\typescriptthree] \definefontsynonym [Univers-Black] [\typescriptthree-lt50142] [encoding=\typescriptthree] \definefontsynonym [Univers-BlackOblique] [\typescriptthree-lt50143] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-univers.map] \stoptypescript % mendoza \starttypescript [serif] [mendoza] [name] \definefontsynonym [Serif] [MendozaRoman-Book] \definefontsynonym [SerifCaps] [MendozaRoman-Book] \definefontsynonym [SerifSlanted] [MendozaRoman-BookItalic] \definefontsynonym [SerifItalic] [MendozaRoman-BookItalic] \definefontsynonym [SerifBold] [MendozaRoman-Bold] \definefontsynonym [SerifBoldSlanted] [MendozaRoman-BoldItalic] \definefontsynonym [SerifBoldItalic] [MendozaRoman-BoldItalic] \stoptypescript \starttypescript [serif] [mendoza] [ec,8r,texnansi] \definefontsynonym[MendozaRoman-Bold] [\typescriptthree-zab] [encoding=\typescriptthree] \definefontsynonym[MendozaRoman-BoldItalic] [\typescriptthree-zabi][encoding=\typescriptthree] \definefontsynonym[MendozaRoman-Medium] [\typescriptthree-zam] [encoding=\typescriptthree] \definefontsynonym[MendozaRoman-MediumItalic][\typescriptthree-zami][encoding=\typescriptthree] \definefontsynonym[MendozaRoman-Book] [\typescriptthree-zaw] [encoding=\typescriptthree] \definefontsynonym[MendozaRoman-BookItalic] [\typescriptthree-zawi][encoding=\typescriptthree] \loadmapfile[\typescriptthree-itc-mendoza.map] \stoptypescript % frutiger \starttypescript [sans] [frutiger] [name] \definefontsynonym [Sans] [Frutiger-Roman] \definefontsynonym [SansCaps] [Frutiger-Roman] \definefontsynonym [SansItalic] [Frutiger-Italic] \definefontsynonym [SansSlanted] [Frutiger-Italic] \definefontsynonym [SansBold] [Frutiger-Bold] \definefontsynonym [SansBoldItalic] [Frutiger-BoldItalic] \definefontsynonym [SansBoldSlanted] [Frutiger-BoldItalic] \stoptypescript \starttypescript [sans] [frutiger] [ec,8r,texnansi] \definefontsynonym[Frutiger-Bold] [\typescriptthree-ftb] [encoding=\typescriptthree] \definefontsynonym[Frutiger-BoldItalic] [\typescriptthree-ftbi] [encoding=\typescriptthree] \definefontsynonym[Frutiger-Black] [\typescriptthree-ftbl] [encoding=\typescriptthree] \definefontsynonym[Frutiger-BlackItalic][\typescriptthree-ftbli][encoding=\typescriptthree] \definefontsynonym[Frutiger-Italic] [\typescriptthree-fti] [encoding=\typescriptthree] \definefontsynonym[Frutiger-Light] [\typescriptthree-ftl] [encoding=\typescriptthree] \definefontsynonym[Frutiger-LightItalic][\typescriptthree-ftli] [encoding=\typescriptthree] \definefontsynonym[Frutiger-Roman] [\typescriptthree-ftr] [encoding=\typescriptthree] \definefontsynonym[Frutiger-UltraBlack] [\typescriptthree-ftubl][encoding=\typescriptthree] \loadmapfile[\typescriptthree-adobe-frutiger.map] \stoptypescript \starttypescript [frutiger] [texnansi,ec,8r,uc] \definetypeface [frutiger] [ss] [sans] [frutiger] [default] [encoding=\typescripttwo] % \loadmapfile [\typescripttwo-adobe-frutiger.map] \stoptypescript % kabel \starttypescript [sans] [kabel] [ec,8r,texnansi] \definefontsynonym [ItcKabel-Bold] [\typescriptthree-kbb] [encoding=\typescriptthree] \definefontsynonym [ItcKabel-Demi] [\typescriptthree-kbd] [encoding=\typescriptthree] \definefontsynonym [ItcKabel-Medium] [\typescriptthree-kbm] [encoding=\typescriptthree] \definefontsynonym [ItcKabel-Ultra] [\typescriptthree-kbu] [encoding=\typescriptthree] \definefontsynonym [ItcKabel-Book] [\typescriptthree-kbw] [encoding=\typescriptthree] \loadmapfile [\typescriptthree-itc-kabel.map] \stoptypescript % thesans \starttypescript [sans] [thesans] [name] \definefontsynonym [Sans] [TheSans-Plain] \definefontsynonym [SansItalic] [TheSans-Italic] \definefontsynonym [SansSlanted] [TheSans-Italic] \definefontsynonym [SansBold] [TheSansBold-Plain] \definefontsynonym [SansBoldItalic] [TheSansBold-Italic] \definefontsynonym [SansBoldSlanted] [TheSansBold-Italic] \definefontsynonym [SansCaps] [TheSans-Caps] \definefontsynonym [SansCapsItalic] [TheSans-CapsItalic] \definefontsynonym [SansCapsSlanted] [TheSans-CapsItalic] \definefontsynonym [SansCapsBold] [TheSansBold-Caps] \definefontsynonym [SansCapsBoldItalic] [TheSansBold-CapsItalic] \definefontsynonym [SansCapsBoldSlanted] [TheSansBold-CapsItalic] \stoptypescript \starttypescript [mono] [thesans] [name] \definefontsynonym [Mono] [TheSansTypewriter-Plain] \definefontsynonym [MonoCaps] [TheSansTypewriter-Plain] \definefontsynonym [MonoItalic] [TheSansTypewriter-Italic] \definefontsynonym [MonoSlanted] [TheSansTypewriter-Italic] \definefontsynonym [MonoBold] [TheSansTypewriter-Bold] \definefontsynonym [MonoBoldItalic] [TheSansTypewriter-BoldItalic] \definefontsynonym [MonoBoldSlanted] [TheSansTypewriter-BoldItalic] \stoptypescript \starttypescript [sans] [thesans] [ec,8r,texnansi] \definefontsynonym [TheSans-Plain] [\typescriptthree-tsan5] [encoding=\typescriptthree] \definefontsynonym [TheSans-Italic] [\typescriptthree-tsan5i] [encoding=\typescriptthree] \definefontsynonym [TheSansBold-Plain] [\typescriptthree-tsan7] [encoding=\typescriptthree] \definefontsynonym [TheSansBold-Italic] [\typescriptthree-tsan7i] [encoding=\typescriptthree] \definefontsynonym [TheSans-Caps] [\typescriptthree-tsan5c] [encoding=\typescriptthree] \definefontsynonym [TheSans-CapsItalic] [\typescriptthree-tsan5ci] [encoding=\typescriptthree] \definefontsynonym [TheSansBold-Caps] [\typescriptthree-tsan7c] [encoding=\typescriptthree] \definefontsynonym [TheSansBold-CapsItalic] [\typescriptthree-tsan7ci] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-lucas-thesans.map] \stoptypescript \starttypescript [mono] [thesans] [ec,8r,texnansi] \definefontsynonym [TheSansTypewriter-Plain] [\typescriptthree-tsaty5] [encoding=\typescriptthree] \definefontsynonym [TheSansTypewriter-Italic] [\typescriptthree-tsaty5i] [encoding=\typescriptthree] \definefontsynonym [TheSansTypewriter-Bold] [\typescriptthree-tsaty7] [encoding=\typescriptthree] \definefontsynonym [TheSansTypewriter-BoldItalic] [\typescriptthree-tsaty7i] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-lucas-thesans.map] \stoptypescript \starttypescript [expert] [thesans] \definefontsynonym [TheSans-Expert] [tsan5e] [encoding=\typescriptthree] \definefontsynonym [TheSans-ExpertItalic] [tsan5ei] [encoding=\typescriptthree] \definefontsynonym [TheSansBold-Expert] [tsan7e] [encoding=\typescriptthree] \definefontsynonym [TheSansBold-ExpertItalic] [tsan7ei] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-lucas-thesans.map] \stoptypescript % monotype sabon \starttypescript [serif] [sabon] [name] \definefontsynonym [Serif] [SabonMT] \definefontsynonym [SerifItalic] [SabonMT-Italic] \definefontsynonym [SerifSlanted] [SabonMT-Italic] \definefontsynonym [SerifBold] [SabonMT-SemiBold] \definefontsynonym [SerifBoldItalic] [SabonMT-SemiBoldItalic] \definefontsynonym [SerifBoldSlanted] [SabonMT-SemiBoldItalic] \definefontsynonym [SerifCaps] [SabonMT-RegularSC] \stoptypescript \starttypescript [serif] [sabon] [ec,8r,texnansi] \definefontsynonym[SabonMT] [\typescriptthree-sab] [encoding=\typescriptthree] \definefontsynonym[SabonMT-Italic] [\typescriptthree-sabi] [encoding=\typescriptthree] \definefontsynonym[SabonMT-ItalicOsF] [\typescriptthree-saboi][encoding=\typescriptthree] \definefontsynonym[SabonMT-SemiBoldOsF] [\typescriptthree-sabos][encoding=\typescriptthree] \definefontsynonym[SabonMT-SemiBold] [\typescriptthree-sabs] [encoding=\typescriptthree] \definefontsynonym[SabonMT-RegularSC] [\typescriptthree-sabsc][encoding=\typescriptthree] \definefontsynonym[SabonMT-SemiBoldItalic] [\typescriptthree-sabsi][encoding=\typescriptthree] \definefontsynonym[SabonMT-SemiBoldItalicOsF][\typescriptthree-sasio][encoding=\typescriptthree] \loadmapfile[\typescriptthree-monotype-sabon.map] \stoptypescript % itc stone \starttypescript [sans] [stone] [name] \definefontsynonym [Sans] [StoneSansITC-Medium] \definefontsynonym [SansItalic] [StoneSansITC-MediumItalic] \definefontsynonym [SansSlanted] [StoneSansITC-MediumItalic] \definefontsynonym [SansBold] [StoneSansITC-Bold] \definefontsynonym [SansBoldItalic] [StoneSansITC-BoldItalic] \definefontsynonym [SansBoldSlanted] [StoneSansITC-BoldItalic] \definefontsynonym [SansCaps] [StoneSansSCITC-Medium] \stoptypescript \starttypescript [serif] [stone] [name] \definefontsynonym [Serif] [StoneSerifITC-Medium] \definefontsynonym [SerifItalic] [StoneSerifITC-MediumItalic] \definefontsynonym [SerifSlanted] [StoneSerifITC-MediumItalic] \definefontsynonym [SerifBold] [StoneSerifITC-Bold] \definefontsynonym [SerifBoldItalic] [StoneSerifITC-BoldItalic] \definefontsynonym [SerifBoldSlanted] [StoneSerifITC-BoldItalic] \definefontsynonym [SerifCaps] [StoneSerifSCITC-Medium] \stoptypescript \starttypescript [sans] [stone-oldstyle] [name] \definefontsynonym [Sans] [StoneSansOSITC-Medium] \definefontsynonym [SansItalic] [StoneSansOSITC-MediumItalic] \definefontsynonym [SansSlanted] [StoneSansOSITC-MediumItalic] \definefontsynonym [SansBold] [StoneSansOSITC-Bold] \definefontsynonym [SansBoldItalic] [StoneSansOSITC-BoldItalic] \definefontsynonym [SansBoldSlanted] [StoneSansOSITC-BoldItalic] \definefontsynonym [SansCaps] [StoneSansSCITC-Medium] \stoptypescript \starttypescript [serif] [stone-oldstyle] [name] \definefontsynonym [Serif] [StoneSerifOSITC-Medium] \definefontsynonym [SerifItalic] [StoneSerifOSITC-MediumItalic] \definefontsynonym [SerifSlanted] [StoneSerifOSITC-MediumItalic] \definefontsynonym [SerifBold] [StoneSerifOSITC-Bold] \definefontsynonym [SerifBoldItalic] [StoneSerifOSITC-BoldItalic] \definefontsynonym [SerifBoldSlanted] [StoneSerifOSITC-BoldItalic] \definefontsynonym [SerifCaps] [StoneSerifSCITC-Medium] \stoptypescript \starttypescript [sans] [stone] [ec,texnansi] \definefontsynonym[StoneSansITC-Bold] [\typescriptthree-stosnb] [encoding=\typescriptthree] \definefontsynonym[StoneSansITC-BoldItalic] [\typescriptthree-stosnbi] [encoding=\typescriptthree] \definefontsynonym[StoneSansITC-Medium] [\typescriptthree-stosnm] [encoding=\typescriptthree] \definefontsynonym[StoneSansITC-MediumItalic] [\typescriptthree-stosnmi] [encoding=\typescriptthree] \definefontsynonym[StoneSansOSITC-Bold] [\typescriptthree-stosnob] [encoding=\typescriptthree] \definefontsynonym[StoneSansOSITC-BoldItalic] [\typescriptthree-stosnobi][encoding=\typescriptthree] \definefontsynonym[StoneSansOSITC-Medium] [\typescriptthree-stosnom] [encoding=\typescriptthree] \definefontsynonym[StoneSansOSITC-MediumItalic][\typescriptthree-stosnomi][encoding=\typescriptthree] \definefontsynonym[StoneSansSCITC-Medium] [\typescriptthree-stosnscm][encoding=\typescriptthree] \definefontsynonym[StoneSansSemITC-Semi] [\typescriptthree-stosns] [encoding=\typescriptthree] \definefontsynonym[StoneSansSemITC-SemiIta] [\typescriptthree-stosnsi] [encoding=\typescriptthree] \definefontsynonym[StoneSansSemOSITC-Semi] [\typescriptthree-stosnos] [encoding=\typescriptthree] \definefontsynonym[StoneSansSemOSITC-SemiIta] [\typescriptthree-stosnosi][encoding=\typescriptthree] \definefontsynonym[StoneSansSemSCITC-Semi] [\typescriptthree-stosnscs][encoding=\typescriptthree] \loadmapfile[\typescriptthree-itc-stone.map] \stoptypescript \starttypescript [serif] [stone] [ec,texnansi] \definefontsynonym[StoneSerifITC-Bold] [\typescriptthree-stosfb] [encoding=\typescriptthree] \definefontsynonym[StoneSerifITC-BoldItalic] [\typescriptthree-stosfbi] [encoding=\typescriptthree] \definefontsynonym[StoneSerifITC-Medium] [\typescriptthree-stosfm] [encoding=\typescriptthree] \definefontsynonym[StoneSerifITC-MediumItalic] [\typescriptthree-stosfmi] [encoding=\typescriptthree] \definefontsynonym[StoneSerifOSITC-Bold] [\typescriptthree-stosfob] [encoding=\typescriptthree] \definefontsynonym[StoneSerifOSITC-BoldItalic] [\typescriptthree-stosfobi][encoding=\typescriptthree] \definefontsynonym[StoneSerifOSITC-Medium] [\typescriptthree-stosfom] [encoding=\typescriptthree] \definefontsynonym[StoneSerifOSITC-MediumItalic][\typescriptthree-stosfomi][encoding=\typescriptthree] \definefontsynonym[StoneSerifSCITC-Medium] [\typescriptthree-stosfscm][encoding=\typescriptthree] \definefontsynonym[StoneSerifSemITC-Semi] [\typescriptthree-stosfs] [encoding=\typescriptthree] \definefontsynonym[StoneSerifSemITC-SemiIta] [\typescriptthree-stosfsi] [encoding=\typescriptthree] \definefontsynonym[StoneSerifSemOSITC-Semi] [\typescriptthree-stosfos] [encoding=\typescriptthree] \definefontsynonym[StoneSerifSemOSITC-SemiIta] [\typescriptthree-stosfosi][encoding=\typescriptthree] \definefontsynonym[StoneSerifSemSCITC-Semi] [\typescriptthree-stosfscs][encoding=\typescriptthree] \loadmapfile[\typescriptthree-itc-stone.map] \stoptypescript % linotype industria \starttypescript [sans] [industria] [ec,texnansi] \definefontsynonym[Industria-Solid][\typescriptthree-lt50545][encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-industria.map] \stoptypescript % itc bauhaus % % texfont --enc=texnansi --ven=itc --col=bauhaus type-buy.dat \starttypescript [sans] [bauhaus] [ec,texnansi] \definefontsynonym[Bauhaus-Light] [\typescriptthree-bhl] [encoding=\typescriptthree] \definefontsynonym[Bauhaus-Medium] [\typescriptthree-bhm] [encoding=\typescriptthree] \definefontsynonym[Bauhaus-Demi] [\typescriptthree-bhd] [encoding=\typescriptthree] \definefontsynonym[Bauhaus-Bold] [\typescriptthree-bhb] [encoding=\typescriptthree] \definefontsynonym[Bauhaus-Heavy] [\typescriptthree-bhh] [encoding=\typescriptthree] \definefontsynonym[Bauhaus-Bold-Slanted] [\typescriptthree-bhb-slanted-167][encoding=\typescriptthree] \definefontsynonym[Bauhaus-Demi-Slanted] [\typescriptthree-bhd-slanted-167][encoding=\typescriptthree] \definefontsynonym[Bauhaus-Heavy-Slanted] [\typescriptthree-bhh-slanted-167][encoding=\typescriptthree] \definefontsynonym[Bauhaus-Light-Slanted] [\typescriptthree-bhl-slanted-167][encoding=\typescriptthree] \definefontsynonym[Bauhaus-Medium-Slanted][\typescriptthree-bhm-slanted-167][encoding=\typescriptthree] \loadmapfile[\typescriptthree-itc-bauhaus.map] \stoptypescript % ef swift % % texfont --enc=texnansi --ven=ef --col=swift type-buy.dat \starttypescript [serif] [swift] [name] \definefontsynonym [Serif] [SwiftEF-Regular] \definefontsynonym [SerifItalic] [SwiftEF-RegularItalic] \definefontsynonym [SerifSlanted] [SwiftEF-RegularItalic] \definefontsynonym [SerifBold] [SwiftEF-Bold] \definefontsynonym [SerifBoldItalic] [SwiftEF-Bold] \definefontsynonym [SerifBoldSlanted] [SwiftEF-Bold] \definefontsynonym [SerifCaps] [SwiftSCEF-Regular] \stoptypescript \starttypescript [serif] [swift-light] [name] \definefontsynonym [Serif] [SwiftEF-Light] \definefontsynonym [SerifItalic] [SwiftEF-LightItalic] \definefontsynonym [SerifSlanted] [SwiftEF-LightItalic] \definefontsynonym [SerifBold] [SwiftEF-Regular] \definefontsynonym [SerifBoldItalic] [SwiftEF-RegularItalic] \definefontsynonym [SerifBoldSlanted] [SwiftEF-RegularItalic] \definefontsynonym [SerifCaps] [SwiftSCEF-Regular] \stoptypescript \starttypescript [serif] [swift] [ec,texnansi] \definefontsynonym[SwiftEF-Light] [\typescriptthree-swlt] [encoding=\typescriptthree] \definefontsynonym[SwiftEF-Regular] [\typescriptthree-swrg] [encoding=\typescriptthree] \definefontsynonym[SwiftEF-Bold] [\typescriptthree-swbd] [encoding=\typescriptthree] \definefontsynonym[SwiftEF-ExtraBold] [\typescriptthree-swxb] [encoding=\typescriptthree] \definefontsynonym[SwiftEF-LightItalic] [\typescriptthree-swlti][encoding=\typescriptthree] \definefontsynonym[SwiftEF-RegularItalic][\typescriptthree-swrgi][encoding=\typescriptthree] \definefontsynonym[SwiftEF-BoldCondensed][\typescriptthree-swbdc][encoding=\typescriptthree] \definefontsynonym[SwiftSCEF-Regular] [\typescriptthree-swrgs][encoding=\typescriptthree] \loadmapfile[\typescriptthree-ef-swift.map] \stoptypescript % linotype syntax \starttypescript [sans] [syntax] [name] \definefontsynonym [Sans] [SyntaxLT-Roman] \definefontsynonym [SansItalic] [SyntaxLT-Italic] \definefontsynonym [SansSlanted] [SyntaxLT-Italic] \definefontsynonym [SansBold] [SyntaxLT-Black] \definefontsynonym [SansBoldItalic] [SyntaxLT-Black] \definefontsynonym [SansBoldSlanted][SyntaxLT-Black] \stoptypescript \starttypescript [sans] [syntax] [ec,texnansi] \definefontsynonym [SyntaxLT-Roman] [\typescriptthree-lte50617] [encoding=\typescriptthree] \definefontsynonym [SyntaxLT-Italic] [\typescriptthree-lte50618] [encoding=\typescriptthree] \definefontsynonym [SyntaxLT-Bold] [\typescriptthree-lte50619] [encoding=\typescriptthree] \definefontsynonym [SyntaxLT-Black] [\typescriptthree-lte50620] [encoding=\typescriptthree] \definefontsynonym [SyntaxLT-UltraBlack] [\typescriptthree-lte50621] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-syntax.map] \stoptypescript % linotype linoletter \starttypescript [serif] [linoletter] [name] \definefontsynonym [Serif] [LinoLetterLT-Roman] \definefontsynonym [SerifItalic] [LinoLetterLT-Italic] \definefontsynonym [SerifSlanted] [LinoLetterLT-Italic] \definefontsynonym [SerifBold] [LinoLetterLT-Bold] \definefontsynonym [SerifBoldItalic] [LinoLetterLT-BoldItalic] \definefontsynonym [SerifBoldSlanted][LinoLetterLT-BoldItalic] \stoptypescript \starttypescript [serif] [linoletter] [ec,texnansi] \definefontsynonym[LinoLetterLT-Roman] [texnansi-lte51129] [encoding=\typescriptthree] \definefontsynonym[LinoLetterLT-Italic] [texnansi-lte51130] [encoding=\typescriptthree] \definefontsynonym[LinoLetterLT-Bold] [texnansi-lte51133] [encoding=\typescriptthree] \definefontsynonym[LinoLetterLT-BoldItalic] [texnansi-lte51134] [encoding=\typescriptthree] \definefontsynonym[LinoLetterLT-BlackItalic] [texnansi-lte51136] [encoding=\typescriptthree] \definefontsynonym[LinoLetter-MediumSC] [texnansi-llmsc] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-linoletter.map] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-fsf.mkii0000644000175000017500000001227114536300610025132 0ustar hillehille%D \module %D [ file=page-new, %D version=2000.10.20, %D title=\CONTEXT\ Page Macros, %D subtitle=Fontsite 500, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D I'm not sure how correct the fontsite cd is. These are probably %D mostly rip-offs. I no longer use these fonts. % run texfont from currentpath with the fonts on subpath fontsite/500 % texfont --en=texnansi --ve=fontsite --co=opus type-fsf.dat % texfont --en=texnansi --ve=fontsite --co=typewriter type-fsf.dat \starttypescriptcollection[font site 500] %D Please use the original Optima! \starttypescript [sans] [opus] [name] \definefontsynonym [Sans] [Opus] \definefontsynonym [SansCaps] [OpusSmCaps] \definefontsynonym [SansItalic] [Opus-Italic] \definefontsynonym [SansBold] [Opus-Bold] \definefontsynonym [SansBoldCaps] [OpusSmCaps-Bold] \definefontsynonym [SansBoldItalic] [Opus-BoldItalic] \definefontsynonym [SansSlanted] [Opus-Slanted] % faked \definefontsynonym [SansBoldSlanted] [Opus-BoldSlanted] % faked \stoptypescript \starttypescript [sans] [opus] [texnansi,ec,8r] \definefontsynonym [Opus] [\typescriptthree-opusrg] [encoding=\typescriptthree] \definefontsynonym [OpusSmCaps] [\typescriptthree-opusscrg] [encoding=\typescriptthree] \definefontsynonym [Opus-Italic] [\typescriptthree-opusi] [encoding=\typescriptthree] \definefontsynonym [Opus-Bold] [\typescriptthree-opusb] [encoding=\typescriptthree] \definefontsynonym [Opus-BoldItalic] [\typescriptthree-opusbi] [encoding=\typescriptthree] \definefontsynonym [OpusSmCaps-Bold] [\typescriptthree-opusscb] [encoding=\typescriptthree] \definefontsynonym [Opus-Slanted] [\typescriptthree-opusrg-slanted-167] [encoding=\typescriptthree] \definefontsynonym [Opus-BoldSlanted] [\typescriptthree-opusb-slanted-167] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-fontsite-opus.map] \stoptypescript \starttypescript [mono] [typewriter] [name] \definefontsynonym [Mono] [Typewriter] \definefontsynonym [MonoItalic] [Typewriter-Italic] \definefontsynonym [MonoBold] [Typewriter-Bold] \definefontsynonym [MonoBoldItalic] [Typewriter-BoldItalic] \definefontsynonym [MonoSlanted] [Typewriter-Slanted] % faked \definefontsynonym [MonoBoldSlanted] [Typewriter-BoldSlanted] % faked \stoptypescript \starttypescript [mono] [typewriter] [texnansi,ec,8r] \definefontsynonym [Typewriter] [\typescriptthree-typerg] [encoding=\typescriptthree] \definefontsynonym [Typewriter-Italic] [\typescriptthree-typei] [encoding=\typescriptthree] \definefontsynonym [Typewriter-Bold] [\typescriptthree-typeb] [encoding=\typescriptthree] \definefontsynonym [Typewriter-BoldItalic] [\typescriptthree-typebi] [encoding=\typescriptthree] \definefontsynonym [Typewriter-Slanted] [\typescriptthree-typerg-slanted-167] [encoding=\typescriptthree] \definefontsynonym [Typewriter-BoldSlanted] [\typescriptthree-typeb-slanted-167] [encoding=\typescriptthree] \definefontsynonym [TypewriterCond] [\typescriptthree-typecrg] \definefontsynonym [TypewriterCond-Bold] [\typescriptthree-typecb] \loadmapfile[\typescriptthree-fontsite-typewriter.map] \stoptypescript \starttypescript [serif] [garamond] [name] \definefontsynonym [Serif] [FSGaramond] \definefontsynonym [SerifCaps] [FSGaramondSmCaps] \definefontsynonym [SerifItalic] [FSGaramond-Italic] \definefontsynonym [SerifBold] [FSGaramond-Bold] \definefontsynonym [SerifBoldCaps] [FSGaramondSmCaps-Bold] \definefontsynonym [SerifSlanted] [FSGaramond-Slanted] \definefontsynonym [SerifBoldSlanted] [FSGaramond-BoldSlanted] \stoptypescript \starttypescript [serif] [garamond] [texnansi,ec,8r] \definefontsynonym [FSGaramond] [\typescriptthree-garamond] [encoding=\typescriptthree] \definefontsynonym [FSGaramondSmCaps] [\typescriptthree-garasc] [encoding=\typescriptthree] \definefontsynonym [FSGaramond-Italic] [\typescriptthree-garai] [encoding=\typescriptthree] \definefontsynonym [FSGaramond-Bold] [\typescriptthree-garab] [encoding=\typescriptthree] \definefontsynonym [FSGaramond-BoldItalic] [\typescriptthree-garabi] [encoding=\typescriptthree] \definefontsynonym [FSGaramondSmCaps-Bold] [\typescriptthree-garascb] [encoding=\typescriptthree] \definefontsynonym [FSGaramond-Slanted] [\typescriptthree-garamond-slanted-167] [encoding=\typescriptthree] \definefontsynonym [FSGaramond-BoldSlanted] [\typescriptthree-garab-slanted-167] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-fontsite-garamond.map] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-cbg.mkii0000644000175000017500000003000614536300610025103 0ustar hillehille%D \module %D [ file=type-cbg, %D version=2004.08.23, %D title=\CONTEXT\ Typescript Macros, %D subtitle=CB Greek, %D author={Giuseppe Bilotta, Hans Hagen}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % legend: % % g=greek % r=regular s=sansserif t=typewriter % m=medium x=boldextended t=monospaced % n=normal o=oblique i=italic u=uprightitalic c=smallcaps % ruby script to make small zip file: % % zipfile = 'cbsmall.zip' % % fontfiles = Array.new % % fontfiles.push(Dir.glob("fonts/{tfm,vf,afm,type1}/public/cb/{gr,gs,gt}{m,s,t}{n,o,i,u,c}{0800,1000,1200}.{tfm,afm,pfb}")) % fontfiles.push(Dir.glob("fonts/{map,enc,lig}/{dvips,pdftex,dvipdfm,dvipdfmx}/cb/{cbgreek,cbsmall}.{map,enc,lig}")) % % File.delete(zipfile) if FileTest.file?(zipfile) % system("zip -r -9 cbsmall #{fontfiles.join(' ')}") \starttypescriptcollection[cbgreek] \starttypescript [serif] [cbgreek] [name] \definefontsynonym [CBGreek-Regular-Medium-Normal] [grmn1000] \definefontsynonym [CBGreek-Regular-Medium-Oblique] [grmo1000] \definefontsynonym [CBGreek-Regular-Medium-Italic] [grmi1000] \definefontsynonym [CBGreek-Regular-Medium-UprightItalic] [grmu1000] \definefontsynonym [CBGreek-Regular-Medium-Caps] [grmc1000] \definefontsynonym [CBGreek-Regular-Medium-Leipzig] [grml1000] \definefontsynonym [CBGreek-Regular-Medium-Roman] [grmr1000] \definefontsynonym [CBGreek-Regular-BoldExtended-Normal] [grxn1000] \definefontsynonym [CBGreek-Regular-BoldExtended-Oblique] [grxo1000] \definefontsynonym [CBGreek-Regular-BoldExtended-Italic] [grxi1000] \definefontsynonym [CBGreek-Regular-BoldExtended-UprightItalic] [grxu1000] \definefontsynonym [CBGreek-Regular-BoldExtended-Caps] [grxc1000] \definefontsynonym [CBGreek-Regular-BoldExtended-Leipzig] [grxl1000] \definefontsynonym [CBGreek-Regular-BoldExtended-Roman] [grxr1000] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [sans] [cbgreek] [name] \definefontsynonym [CBGreek-Sans-Medium-Normal] [gsmn1000] \definefontsynonym [CBGreek-Sans-Medium-Oblique] [gsmo1000] \definefontsynonym [CBGreek-Sans-Medium-Italic] [gsmi1000] \definefontsynonym [CBGreek-Sans-Medium-UprightItalic] [gsmu1000] \definefontsynonym [CBGreek-Sans-Medium-Caps] [gsmc1000] \definefontsynonym [CBGreek-Sans-Medium-Leipzig] [gsml1000] \definefontsynonym [CBGreek-Sans-Medium-Roman] [gsmr1000] \definefontsynonym [CBGreek-Sans-BoldExtended-Normal] [gsxn1000] \definefontsynonym [CBGreek-Sans-BoldExtended-Oblique] [gsxo1000] \definefontsynonym [CBGreek-Sans-BoldExtended-Italic] [gsxi1000] \definefontsynonym [CBGreek-Sans-BoldExtended-UprightItalic] [gsxu1000] \definefontsynonym [CBGreek-Sans-BoldExtended-Caps] [gsxc1000] \definefontsynonym [CBGreek-Sans-BoldExtended-Leipzig] [gsxl1000] \definefontsynonym [CBGreek-Sans-BoldExtended-Roman] [gsxr1000] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [mono] [cbgreek] [name] \definefontsynonym [CBGreek-Typewriter-Medium-Normal] [gttn1000] \definefontsynonym [CBGreek-Typewriter-Medium-Oblique] [gtto1000] \definefontsynonym [CBGreek-Typewriter-Medium-Italic] [gtti1000] \definefontsynonym [CBGreek-Typewriter-Medium-UprightItalic] [gttu1000] \definefontsynonym [CBGreek-Typewriter-Medium-Caps] [gttc1000] \definefontsynonym [CBGreek-Typewriter-Medium-Leipzig] [gttl1000] \definefontsynonym [CBGreek-Typewriter-Medium-Roman] [gttr1000] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [serif] [cbgreek] [name] \definefontsynonym [Serif] [CBGreek-Regular-Medium-Normal] \definefontsynonym [SerifSlanted] [CBGreek-Regular-Medium-Oblique] \definefontsynonym [SerifItalic] [CBGreek-Regular-Medium-Italic] \definefontsynonym [SerifCaps] [CBGreek-Regular-Medium-Caps] \definefontsynonym [SerifBold] [CBGreek-Regular-BoldExtended-Normal] \definefontsynonym [SerifBoldSlanted] [CBGreek-Regular-BoldExtended-Oblique] \definefontsynonym [SerifBoldItalic] [CBGreek-Regular-BoldExtended-Italic] \definefontsynonym [SerifBoldCaps] [CBGreek-Regular-BoldExtended-Caps] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [sans] [cbgreek] [name] \definefontsynonym [Sans] [CBGreek-Sans-Medium-Normal] \definefontsynonym [SansSlanted] [CBGreek-Sans-Medium-Oblique] \definefontsynonym [SansItalic] [CBGreek-Sans-Medium-Italic] \definefontsynonym [SansCaps] [CBGreek-Sans-Medium-Caps] \definefontsynonym [SansBold] [CBGreek-Sans-BoldExtended-Normal] \definefontsynonym [SansBoldSlanted] [CBGreek-Sans-BoldExtended-Oblique] \definefontsynonym [SansBoldItalic] [CBGreek-Sans-BoldExtended-Italic] \definefontsynonym [SansBoldCaps] [CBGreek-Sans-BoldExtended-Caps] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [mono] [cbgreek] [name] \definefontsynonym [Mono] [CBGreek-Typewriter-Medium-Normal] \definefontsynonym [MonoSlanted] [CBGreek-Typewriter-Medium-Oblique] \definefontsynonym [MonoItalic] [CBGreek-Typewriter-Medium-Italic] \definefontsynonym [MonoCaps] [CBGreek-Typewriter-Medium-Caps] \loadmapfile [cbgreek.map] \stoptypescript % Please note that we use Bold Extended instead of Bold \starttypescript [serif] [cbgreek-all] [size] \definebodyfont [4pt,5pt] [rm] [tf=grmn0500 sa 1,sl=grmo0500 sa 1,it=grmi0500 sa 1, bf=grxn0500 sa 1,bs=grxo0500 sa 1,bi=grxi0500 sa 1, sc=grmc0500 sa 1] \definebodyfont [6pt] [rm] [tf=grmn0600,sl=grmo0600,it=grmi0600, bf=grxn0600,bs=grxo0600,bi=grxi0600, sc=grmc0600] \definebodyfont [7pt] [rm] [tf=grmn0700,sl=grmo0700,it=grmi0700, bf=grxn0700,bs=grxo0700,bi=grxi0700, sc=grmc0700] \definebodyfont [8pt] [rm] [tf=grmn0800,sl=grmo0800,it=grmi0800, bf=grxn0800,bs=grxo0800,bi=grxi0800, sc=grmc0800] \definebodyfont [9pt] [rm] [tf=grmn0900,sl=grmo0900,it=grmi0900, bf=grxn0900,bs=grxo0900,bi=grxi0900, sc=grmc0900] \definebodyfont [10pt] [rm] [tf=grmn1000,sl=grmo1000,it=grmi1000, bf=grxn1000,bs=grxo1000,bi=grxi1000, sc=grmc1000] \definebodyfont [11pt] [rm] [tf=grmn1095,sl=grmo1095,it=grmi1095, bf=grxn1095,bs=grxo1095,bi=grxi1095, sc=grmc1095] \definebodyfont [12pt] [rm] [tf=grmn1200,sl=grmo1200,it=grmi1200, bf=grxn1200,bs=grxo1200,bi=grxi1200, sc=grmc1200] \definebodyfont [14.4pt,17.3pt,20.7pt] [rm] [tf=grmn1440 sa 1,sl=grmo1440 sa 1,it=grmi1440 sa 1, bf=grxn1440 sa 1,bs=grxo1440 sa 1,bi=grxi1440 sa 1, sc=grmc1440 sa 1] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [sans] [cbgreek-all] [size] \definebodyfont [4pt,5pt] [ss] [tf=gsmn0500 sa 1,sl=gsmo0500 sa 1,it=gsmi0500 sa 1, bf=gsxn0500 sa 1,bs=gsxo0500 sa 1,bi=gsxi0500 sa 1, sc=gsmc0500 sa 1] \definebodyfont [6pt] [ss] [tf=gsmn0600,sl=gsmo0600,it=gsmi0600, bf=gsxn0600,bs=gsxo0600,bi=gsxi0600, sc=gsmc0600] \definebodyfont [7pt] [ss] [tf=gsmn0700,sl=gsmo0700,it=gsmi0700, bf=gsxn0700,bs=gsxo0700,bi=gsxi0700, sc=gsmc0700] \definebodyfont [8pt] [ss] [tf=gsmn0800,sl=gsmo0800,it=gsmi0800, bf=gsxn0800,bs=gsxo0800,bi=gsxi0800, sc=gsmc0800] \definebodyfont [9pt] [ss] [tf=gsmn0900,sl=gsmo0900,it=gsmi0900, bf=gsxn0900,bs=gsxo0900,bi=gsxi0900, sc=gsmc0900] \definebodyfont [10pt] [ss] [tf=gsmn1000,sl=gsmo1000,it=gsmi1000, bf=gsxn1000,bs=gsxo1000,bi=gsxi1000, sc=gsmc1000] \definebodyfont [11pt] [ss] [tf=gsmn1095,sl=gsmo1095,it=gsmi1095, bf=gsxn1095,bs=gsxo1095,bi=gsxi1095, sc=gsmc1095] \definebodyfont [12pt] [ss] [tf=gsmn1200,sl=gsmo1200,it=gsmi1200, bf=gsxn1200,bs=gsxo1200,bi=gsxi1200, sc=gsmc1200] \definebodyfont [14.4pt,17.3pt,20.7pt] [ss] [tf=gsmn1440 sa 1,sl=gsmo1440 sa 1,it=gsmi1440 sa 1, bf=gsxn1440 sa 1,bs=gsxo1440 sa 1,bi=gsxi1440 sa 1, sc=gsmc1440 sa 1] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [mono] [cbgreek-all] [size] \definebodyfont [4pt,5pt] [tt] [tf=gttn0500 sa 1,sl=gtto0500 sa 1,it=gtti0500 sa 1, sc=gttc0500 sa 1] \definebodyfont [6pt] [tt] [tf=gttn0600,sl=gtto0600,it=gtti0600, sc=gttc0600] \definebodyfont [7pt] [tt] [tf=gttn0700,sl=gtto0700,it=gtti0700, sc=gttc0700] \definebodyfont [8pt] [tt] [tf=gttn0800,sl=gtto0800,it=gtti0800, sc=gttc0800] \definebodyfont [9pt] [tt] [tf=gttn0900,sl=gtto0900,it=gtti0900, sc=gttc0900] \definebodyfont [10pt] [tt] [tf=gttn1000,sl=gtto1000,it=gtti1000, sc=gttc1000] \definebodyfont [11pt] [tt] [tf=gttn1095,sl=gtto1095,it=gtti1095, sc=gttc1095] \definebodyfont [12pt] [tt] [tf=gttn1200,sl=gtto1200,it=gtti1200, sc=gttc1200] \definebodyfont [14.4pt,17.3pt,20.7pt] [tt] [tf=gttn1440 sa 1,sl=gtto1440 sa 1,it=gtti1440 sa 1, sc=gttc1440 sa 1] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [serif] [cbgreek-medium] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt] [rm] [tf=grmn0800 sa 1,sl=grmo0800 sa 1,it=grmi0800 sa 1, bf=grxn0800 sa 1,bs=grxo0800 sa 1,bi=grxi0800 sa 1, sc=grmc0800 sa 1] \definebodyfont [10pt,11pt] [rm] [tf=grmn1000 sa 1,sl=grmo1000 sa 1,it=grmi1000 sa 1, bf=grxn1000 sa 1,bs=grxo1000 sa 1,bi=grxi1000 sa 1, sc=grmc1000 sa 1] \definebodyfont [12pt,14.4pt,17.3pt,20.7pt] [rm] [tf=grmn1200 sa 1,sl=grmo1200 sa 1,it=grmi1200 sa 1, bf=grxn1200 sa 1,bs=grxo1200 sa 1,bi=grxi1200 sa 1, sc=grmc1200 sa 1] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [sans] [cbgreek-medium] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt] [ss] [tf=gsmn0800 sa 1,sl=gsmo0800 sa 1,it=gsmi0800 sa 1, bf=gsxn0800 sa 1,bs=gsxo0800 sa 1,bi=gsxi0800 sa 1, sc=gsmc0800 sa 1] \definebodyfont [10pt,11pt] [ss] [tf=gsmn1000 sa 1,sl=gsmo1000 sa 1,it=gsmi1000 sa 1, bf=gsxn1000 sa 1,bs=gsxo1000 sa 1,bi=gsxi1000 sa 1, sc=gsmc1000 sa 1] \definebodyfont [12pt,14.4pt,17.3pt,20.7pt] [ss] [tf=gsmn1200 sa 1,sl=gsmo1200 sa 1,it=gsmi1200 sa 1, bf=gsxn1200 sa 1,bs=gsxo1200 sa 1,bi=gsxi1200 sa 1, sc=gsmc1200 sa 1] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [mono] [cbgreek-medium] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt] [tt] [tf=gttn0800 sa 1,sl=gtto0800 sa 1,it=gtti0800 sa 1, sc=gttc0800 sa 1] \definebodyfont [10pt,11pt] [tt] [tf=gttn1000 sa 1,sl=gtto1000 sa 1,it=gtti1000 sa 1, sc=gttc1000 sa 1] \definebodyfont [12pt,14.4pt,17.3pt,20.7pt] [tt] [tf=gttn1200 sa 1,sl=gtto1200 sa 1,it=gtti1200 sa 1, sc=gttc1200 sa 1] \loadmapfile [cbgreek.map] \stoptypescript \starttypescript [cbgreek-all] \definebodyfontenvironment [cbgreek] [default] [] \definetypeface [cbgreek] [rm] [serif] [cbgreek] [cbgreek-all] \definetypeface [cbgreek] [ss] [sans] [cbgreek] [cbgreek-all] \definetypeface [cbgreek] [tt] [mono] [cbgreek] [cbgreek-all] \stoptypescript \starttypescript [cbgreek-medium] % lowercase, patched HH \definebodyfontenvironment [cbgreek] [default] [] \definetypeface [cbgreek] [rm] [serif] [cbgreek] [cbgreek-medium] \definetypeface [cbgreek] [ss] [sans] [cbgreek] [cbgreek-medium] \definetypeface [cbgreek] [tt] [mono] [cbgreek] [cbgreek-medium] \stoptypescript \starttypescript [cbgreek] % lowercase, patched HH \definebodyfontenvironment [cbgreek] [default] [] \definetypeface [cbgreek] [rm] [serif] [cbgreek] [default] \definetypeface [cbgreek] [ss] [sans] [cbgreek] [default] \definetypeface [cbgreek] [tt] [mono] [cbgreek] [default] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-cow.mkii0000644000175000017500000001001414536300610025135 0ustar hillehille%D \module %D [ file=type-cow, %D version=2006.06.23, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Cow Fonts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D The cow fonts are a project of Duane Bibby, Hans Hagen and Taco %D Hoekwater. \starttypescriptcollection[cow] \starttypescript [math,serif] [cow,sheep] [default] \setups[font:fallback:serif] \usemathcollection[cow] \loadmapfile[koeieletters.map] \definefontsynonym [Serif] [Cows] [encoding=\typescriptthree] \definefontsynonym [SerifContour] [CowsContour] [encoding=\typescriptthree] \definefontsynonym [SerifLogo] [CowsLogo] [encoding=\typescriptthree] \definefontsynonym [SerifLogoContour][CowsLogoContour] [encoding=\typescriptthree] \definefontsynonym [MathRoman] [CowsMathRoman] [encoding=\typescriptthree] \definefontsynonym [MathItalic] [CowsMathItalic] [encoding=\typescriptthree] \definefontsynonym [MathSymbol] [CowsMathSymbol] [encoding=\typescriptthree] \definefontsynonym [MathExtension] [CowsMathExtensions][encoding=\typescriptthree] \stoptypescript \starttypescript [math,serif] [sheep] [default] \setups[font:fallback:serif] \usemathcollection[cow] \loadmapfile[koeieletters.map] \definefontsynonym [Serif] [Sheep] [encoding=\typescriptthree] \definefontsynonym [SerifContour] [SheepContour] [encoding=\typescriptthree] \definefontsynonym [SerifLogo] [SheepLogo] [encoding=\typescriptthree] \definefontsynonym [SerifLogoContour][SheepLogoContour] [encoding=\typescriptthree] \definefontsynonym [MathRoman] [SheepMathRoman] [encoding=\typescriptthree] \definefontsynonym [MathItalic] [SheepMathItalic] [encoding=\typescriptthree] \definefontsynonym [MathSymbol] [SheepMathSymbol] [encoding=\typescriptthree] \definefontsynonym [MathExtension] [SheepMathExtensions][encoding=\typescriptthree] \stoptypescript \starttypescript [all] [cow,sheep] [default] \definefontsynonym [Cows] [koeielett] \definefontsynonym [CowsContour] [koeielett-contour] \definefontsynonym [CowsLogo] [koeielogos] \definefontsynonym [CowsLogoContour] [koeielogos-contour] \definefontsynonym [CowsMathRoman] [koeielett] \definefontsynonym [CowsMathItalic] [koeieletter-mi] \definefontsynonym [CowsMathSymbol] [koeieletter-sy] \definefontsynonym [CowsMathExtensions][koeieletter-ex] \stoptypescript \starttypescript [all] [sheep] [default] \definefontsynonym [Sheep] [koeielett] \definefontsynonym [SheepContour] [koeielett-contour] \definefontsynonym [SheepLogo] [koeielogos] \definefontsynonym [SheepLogoContour] [koeielogos-contour] \definefontsynonym [SheepMathRoman] [koeielettx] \definefontsynonym [SheepMathItalic] [koeieletter-mi] \definefontsynonym [SheepMathSymbol] [koeieletter-syx] \definefontsynonym [SheepMathExtensions][koeieletter-ex] \stoptypescript \starttypescript [cow] [default] \definetypeface [cow] [rm][serif][cow] [default][encoding=default] \definetypeface [cow] [ss][serif][cow] [default][encoding=default] \definetypeface [cow] [mm][math] [cow] [default][encoding=default] \definetypeface [cow] [tt][mono] [modern][default][encoding=default,rscale=0.85] \stoptypescript \starttypescript [sheep] [default] \definetypeface [sheep][rm][serif][sheep] [default][encoding=default] \definetypeface [sheep][ss][serif][sheep] [default][encoding=default] \definetypeface [sheep][mm][math] [sheep] [default][encoding=default] \definetypeface [sheep][tt][mono] [modern][default][encoding=default,rscale=0.85] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-msw.mkii0000644000175000017500000000007114536300610025155 0ustar hillehille\input type-win.mkii \endinput % could be a file synonym context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-win.mkii0000644000175000017500000000540014536300610025145 0ustar hillehille%D \module %D [ file=type-msw, %D version=2005.02.04, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Microsoft Windows Fonts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % \usetypescriptfile[type-msw] % % \definetypeface[verdana][ss][sans] [verdana] [default][encoding=texnansi] % \definetypeface[verdana][rm][serif][palatino][default][encoding=texnansi,rscale=1.1] % \definetypeface[verdana][mm][math] [palatino][default][encoding=texnansi,rscale=1.1] % \definetypeface[verdana][tt][mono] [modern] [default][encoding=texnansi,rscale=1.25] % % \setupbodyfont[verdana] \showfontstrip % % \startlines % {\rm test {\sl test} {\it test} {\bf test} {\bs test} {\bi test}} % {\ss test {\sl test} {\it test} {\bf test} {\bs test} {\bi test}} % {\tt test {\sl test} {\it test} {\bf test} {\bs test} {\bi test}} % \stoplines \starttypescriptcollection[windows] % verdana \starttypescript [sans] [verdana] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Verdana] \definefontsynonym [SansBold] [Verdana-Bold] \definefontsynonym [SansItalic] [Verdana-Italic] \definefontsynonym [SansBoldItalic] [Verdana-BoldItalic] \stoptypescript \starttypescript [sans] [verdana] [texnansi,ec,qx] \definefontsynonym [Verdana] [\typescriptthree-verdana] [encoding=\typescriptthree] \definefontsynonym [Verdana-Bold] [\typescriptthree-verdanab] [encoding=\typescriptthree] \definefontsynonym [Verdana-Italic] [\typescriptthree-verdanai] [encoding=\typescriptthree] \definefontsynonym [Verdana-BoldItalic] [\typescriptthree-verdanaz] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-microsoft-verdana.map] \stoptypescript % arial \starttypescript [sans] [arial] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [ArialMT] \definefontsynonym [SansBold] [Arial-BoldMT] \definefontsynonym [SansItalic] [Arial-ItalicMT] \definefontsynonym [SansBoldItalic] [Arial-BoldItalicMT] \stoptypescript \starttypescript [sans] [arial] [texnansi,ec,qx] \definefontsynonym [ArialMT] [\typescriptthree-arial] [encoding=\typescriptthree] \definefontsynonym [Arial-BoldMT] [\typescriptthree-arialbd] [encoding=\typescriptthree] \definefontsynonym [Arial-ItalicMT] [\typescriptthree-ariali] [encoding=\typescriptthree] \definefontsynonym [Arial-BoldItalicMT] [\typescriptthree-arialbi] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-microsoft-arial.map] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-hgz.mkii0000644000175000017500000000006514536300610025142 0ustar hillehille\input type-ghz.mkii \endinput % can be file synonym context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-pre.mkii0000644000175000017500000001654114536300610025146 0ustar hillehille%D \module %D [ file=type-pre, %D version=2001.04.12, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Compatibility scripts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This file is obsolete. We now have latin modern and proper %D typescripts. Forget about this file. %D This file defines some typescripts that simulate the pre-typescript way %D of defining fonts. This file will not be extended. \starttypescriptcollection[previous] %D The Computer Modern Roman is derived from the Monotype~8a %D Times Roman. In this module, that is loaded by default, we %D define all relevant alternatives. \starttypescript [cmr] \usetypescript[modern][default] \setupbodyfont[modern] \stoptypescript %D This script remaps the default Computer Modern Font Files %D onto the EC ones, so that hyphenations work well. (The proper %D latin modern ec variants have replaed the ae ones.) \starttypescript [aer] \usetypescript[modern][ec] \setupbodyfont[modern] %\enableregime[ec] \stoptypescript %D This script defines the Computer Modern Roman with a pseudo kind %D of iso latin 2 encoding. \starttypescript [csr] \usetypescript[modern][ec] \setupbodyfont[modern] \enableregime[il2] \stoptypescript %D This script defines the Computer Modern Roman with a %D polish encoding. \starttypescript [plr] \usetypescript[modern][qx] \setupbodyfont[modern] \enableregime[pl0] \stoptypescript %D Vietnamese. \starttypescript [vnr] \usetypescript[modern][t5] \setupbodyfont[modern] \stoptypescript %D Cyrillic alternatives are available under the symbolic %D name \type {cyr}. \starttypescript [cyr] \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,cyr] \usemathcollection[default] \stoptypescript \starttypescript [lh-ec] \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,ec] \usemathcollection[default] \stoptypescript \starttypescript [lh-t2a] \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t2a] \usemathcollection[default] \stoptypescript \starttypescript [lh-t2b] \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t2b] \usemathcollection[default] \stoptypescript \starttypescript [lh-t2c] \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t2c] \usemathcollection [default] \stoptypescript \starttypescript [lh-x2] \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,x2] \usemathcollection [default] \stoptypescript \starttypescript [lh-lcy] \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,lcy] \usemathcollection [default] \stoptypescript %D Here we implement the symbol fonts as provided by the %D American Mathematical Society. The names of these symbols %D can be found in The Joy of \TeX\ by M.~Spivak. % \starttypescript [ams] % \usetypescript [math] [ams] [all] % \usemathcollection[default] % \stoptypescript %D The Concrete Modern Roman is just an alternative Computer %D Modern Roman. % \starttypescript [con] % \usetypescript [serif] [concrete] [all] % \usemathcollection[default] % \stoptypescript %D The Euler Fonts are designed by Herman Zapf and can be %D used with the Concrete Fonts defined elsewhere. % \starttypescript [eul] % \usetypescript [math] [euler] [all] % \usemathcollection[eul] % \stoptypescript %D The Lucida Bright fonts are both good looking and and %D complete. These fonts have prebuilt accented characters, %D which means that we use another encoding vector: \YandY\ %D texnansi. These fonts are a good illustration that a 12 %D point bodyfont is indeed never that size. The Lucida Bright %D fonts come in one design size. % \starttypescript [lbr] % \usetypescript [serif,sans,mono,math,calligraphy,handwriting] [lucida] [name,special,\defaultencoding] % \usetypescript [serif,sans,mono,math,calligraphy,handwriting] [default] [size] % \usemathcollection[lbr] % \usetypescript [all] [lucida] [\defaultencoding] % \stoptypescript \starttypescript [lbr] \usetypescript[lucida][\defaultencoding] \stoptypescript %D Times \starttypescript [tim] \usetypescript [times] [\defaultencoding] \setupbodyfont [times] \stoptypescript %D The Antikwa Torunska font family is a rather nice %D and subtle one. Although primary meant for the polish %D language, it can be used for other languages as well. \starttypescript [ant] \usetypescript [antykwa-torunska] [\defaultencoding] \setupbodyfont [antykwa,rm] \stoptypescript %D This script defines the Standard Adobe Courier fonts. % \starttypescript [pcr] % \usetypescript [mono] [courier] [name,\defaultencoding] % \usetypescript [mono] [default] [size] % \usetypescript [all] [courier] [\defaultencoding] % \stoptypescript \starttypescript [pcr] \usetypescript [postscript] [\defaultencoding] \setupbodyfont [postscript,tt] \stoptypescript %D This script defines the Standard Adobe Helvetica fonts. % \starttypescript [phv] % \usetypescript [sans] [helvetica] [name,\defaultencoding] % \usetypescript [sans] [default] [size] % \usetypescript [all] [helvetica] [\defaultencoding] % \stoptypescript \starttypescript [phv] \usetypescript [postscript] [\defaultencoding] \setupbodyfont [postscript,ss] \stoptypescript %D This script defines the Standard Adobe Times fonts. % \starttypescript [ptm] % \usetypescript [serif] [times] [name,\defaultencoding] % \usetypescript [serif] [default] [size] % \usetypescript [all] [times] [\defaultencoding] % \stoptypescript \starttypescript [ptm] \usetypescript [postscript] [\defaultencoding] \setupbodyfont [postscript,rm] \stoptypescript %D This script loads the Adobe Times Roman, Helvetica and %D Courier. % \starttypescript [pos] % \usetypescript [serif] [times] [name,\defaultencoding] % \usetypescript [sans] [helvetica] [name,\defaultencoding] % \usetypescript [mono] [courier] [name,\defaultencoding] % \usetypescript [serif,sans,mono] [default] [size] % \usetypescript [all] [times,helvetica,courier] [\defaultencoding] % \stoptypescript \starttypescript [pos] \usetypescript [postscript] [\defaultencoding] \setupbodyfont [postscript] \stoptypescript %D This script defines the Palatino font. \starttypescript [ppl] \usetypescript [palatino] [\defaultencoding] \setupbodyfont [palatino] \stoptypescript %D The following scripts fake the old \type {font-ber} and %D alike files. \starttypescript[fil] % fake to prevent loading font-fil.tex and signal 'done' \stoptypescript %D But for old time sake we provide: \starttypescript[ber] \usetypescript [berry] [ec,t5] % could be [all] \stoptypescript \stoptypescriptcollection %D Special scripts: \unprotect \starttypescriptcollection[special scripts] \starttypescript[chi] \readfile{\f!fontprefix chi}\donothing\donothing \stoptypescript \starttypescript[jap] \readfile{\f!fontprefix jap}\donothing\donothing \stoptypescript \starttypescript[arb] \readfile{\f!fontprefix arb}\donothing\donothing \stoptypescript \starttypescript[heb] \readfile{\f!fontprefix heb}\donothing\donothing \stoptypescript \stoptypescriptcollection \protect \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-ghz.mkii0000644000175000017500000005415014536300610025146 0ustar hillehille%D \module %D [ file=type-ghz, %D version=2005.06.07, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Hermann Zapf's Fonts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % \usetypescriptfile[type-ghz] % % \definetypeface[optima] [ss][sans] [optima-nova] [default] % \definetypeface[palatino][rm][serif][palatino-nova][default] % \definetypeface[aldus] [rm][serif][aldus-nova] [default] % % \starttext % \setupbodyfont[optima] \input zapf \blank % \setupbodyfont[palatino] \input zapf \blank % \setupbodyfont[aldus] \input zapf \blank % \stoptext \starttypescriptcollection[zapf collection] % zapfino \starttypescript [serif,handwriting] [zapfino] [texnansi,ec,8r] % todo: handwriting \definefontsynonym [ZapfinoOne] [\typescriptthree-lt54223] [encoding=\typescriptthree] \definefontsynonym [ZapfinoTwo] [\typescriptthree-lt54224] [encoding=\typescriptthree] \definefontsynonym [ZapfinoThree] [\typescriptthree-lt54225] [encoding=\typescriptthree] \definefontsynonym [ZapfinoFour] [\typescriptthree-lt54226] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-zapfino.map] \stoptypescript % \starttypescript [handwriting] [zapfino-1] \definefontsynonym [Handwriting] [ZapfinoOne] \stoptypescript % \starttypescript [handwriting] [zapfino-2] \definefontsynonym [Handwriting] [ZapfinoTwo] \stoptypescript % \starttypescript [handwriting] [zapfino-3] \definefontsynonym [Handwriting] [ZapfinoThree] \stoptypescript % \starttypescript [handwriting] [zapfino-4] \definefontsynonym [Handwriting] [ZapfinoFour] \stoptypescript % optima \starttypescript [sans] [optima] [name] \definefontsynonym [Sans] [OptimaLT] \definefontsynonym [SansItalic] [OptimaLT-Italic] \definefontsynonym [SansBold] [OptimaLT-Bold] \definefontsynonym [SansBoldItalic] [OptimaLT-BoldItalic] \definefontsynonym [SansSlanted] [SansItalic] \definefontsynonym [SansBoldSlanted] [SansBoldItalic] \definefontsynonym [SansCaps] [Sans] \stoptypescript \starttypescript [sans] [optima,optima-nova] [texnansi,ec,8r] \definefontsynonym [OptimaLT] [\typescriptthree-lte50019] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-Italic] [\typescriptthree-lte52401] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-Bold] [\typescriptthree-lte50021] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-BoldItalic] [\typescriptthree-lte54379] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-Medium] [\typescriptthree-lte53505] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-MediumItalic] [\typescriptthree-lte53506] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-DemiBold] [\typescriptthree-lte53507] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-DemiBoldItalic] [\typescriptthree-lte53508] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-Black] [\typescriptthree-lte53509] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-BlackItalic] [\typescriptthree-lte53510] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-ExtraBlack] [\typescriptthree-lte53511] [encoding=\typescriptthree] \definefontsynonym [OptimaLT-ExtraBlackItalic] [\typescriptthree-lte53512] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-optima.map] \stoptypescript \starttypescript [optima] [texnansi,ec,qx] \definetypeface[optima][ss][sans] [optima-nova][default][encoding=\typescripttwo] \definetypeface[optima][rm][serif][palatino] [default][encoding=\typescripttwo] \definetypeface[optima][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1] \definetypeface[optima][mm][math] [palatino] [default][encoding=\typescripttwo] \quittypescriptscanning \stoptypescript % optima nova % see antykwa, we could define variants for light and osf \starttypescript [sans] [optima-nova] [name] \definefontsynonym [Sans] [OptimaNovaLT-Regular] \definefontsynonym [SansItalic] [OptimaNovaLT-Italic] \definefontsynonym [SansBold] [OptimaNovaLT-Bold] \definefontsynonym [SansBoldItalic] [OptimaNovaLT-BoldItalic] \definefontsynonym [SansSlanted] [OptimaNovaLT-Italic] \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-BoldItalic] \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC] \definefontvariant [Serif][osf][OsF] \definefontvariant [Serif][sc][Caps] \definefontsynonym [SansOsF] [OptimaNovaLT-RegularOsF] \definefontsynonym [SansItalicOsF] [OptimaNovaLT-ItalicOsF] \definefontsynonym [SansBoldOsF] [OptimaNovaLT-BoldOsF] \definefontsynonym [SansBoldItalicOsF] [OptimaNovaLT-BoldItalicOsF] \definefontsynonym [SansSlantedOsF] [OptimaNovaLT-ItalicOsF] \definefontsynonym [SansBoldSlantedOsF] [OptimaNovaLT-BoldItalicOsF] \definefontsynonym [SansCapsOsF] [OptimaNovaLT-RegularSC] \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC] \definefontsynonym [SansItalicCaps] [OptimaNovaLT-ItalicSC ] \definefontsynonym [SansBoldCaps] [OptimaNovaLT-BoldSC] \definefontsynonym [SansBoldItalicCaps] [OptimaNovaLT-BoldItalicSC] \definefontsynonym [SansSlantedCaps] [OptimaNovaLT-ItalicSC] \definefontsynonym [SansBoldSlantedCaps] [OptimaNovaLT-BoldItalicSC] \definefontsynonym [SansCapsCaps] [OptimaNovaLT-RegularSC] \stoptypescript \starttypescript [sans] [optima-nova-os] [name] \definefontsynonym [Sans] [OptimaNovaLT-RegularOsF] \definefontsynonym [SansItalic] [OptimaNovaLT-ItalicOsF] \definefontsynonym [SansBold] [OptimaNovaLT-BoldOsF] \definefontsynonym [SansBoldItalic] [OptimaNovaLT-BoldItalicOsF] \definefontsynonym [SansSlanted] [OptimaNovaLT-ItalicOsF] \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-BoldItalicOsF] \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC] \stoptypescript \starttypescript [sans] [optima-nova-light] [name] % may change \definefontsynonym [Sans] [OptimaNovaLT-Light] \definefontsynonym [SansItalic] [OptimaNovaLT-LightItalic] \definefontsynonym [SansBold] [OptimaNovaLT-Medium] \definefontsynonym [SansBoldItalic] [OptimaNovaLT-MediumItalic] \definefontsynonym [SansSlanted] [OptimaNovaLT-LightItalic] \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-MediumItalic] \definefontsynonym [SansCaps] [OptimaNovaLT-LightSC] \stoptypescript \starttypescript [sans] [optima-nova-medium] [name] % may change \definefontsynonym [Sans] [OptimaNovaLT-Medium] \definefontsynonym [SansItalic] [OptimaNovaLT-MediumItalic] \definefontsynonym [SansBold] [OptimaNovaLT-Heavy] \definefontsynonym [SansBoldItalic] [OptimaNovaLT-HeavyItalic] \definefontsynonym [SansSlanted] [OptimaNovaLT-MediumItalic] \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-HeavyItalic] \definefontsynonym [SansCaps] [OptimaNovaLT-MediumSC] \stoptypescript \starttypescript [sans] [optima-nova,optima-nova-light,optima-nova-medium,optima-nova-os] [texnansi,ec,8r] \definefontsynonym[OptimaNovaLT-Light] [\typescriptthree-lt55476][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-LightSC] [\typescriptthree-lt55477][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-LightOsF] [\typescriptthree-lt55478][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-LightItalic] [\typescriptthree-lt55479][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-LightItalicSC] [\typescriptthree-lt55480][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-LightItalicOsF] [\typescriptthree-lt55481][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-LightCond] [\typescriptthree-lt55482][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-Regular] [\typescriptthree-lt55483][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-RegularSC] [\typescriptthree-lt55484][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-RegularOsF] [\typescriptthree-lt55485][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-Italic] [\typescriptthree-lt55486][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-ItalicSC] [\typescriptthree-lt55487][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-ItalicOsF] [\typescriptthree-lt55488][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-Condensed] [\typescriptthree-lt55489][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-Medium] [\typescriptthree-lt55490][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-MediumSC] [\typescriptthree-lt55491][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-MediumOsF] [\typescriptthree-lt55492][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-MediumItalic] [\typescriptthree-lt55493][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-MediumItalicSC] [\typescriptthree-lt55494][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-MediumItalicOsF][\typescriptthree-lt55495][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-MediumCond] [\typescriptthree-lt55496][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-TitlingInitials][\typescriptthree-lt55497][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-Demi] [\typescriptthree-lt55498][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-DemiSC] [\typescriptthree-lt55499][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-DemiOsF] [\typescriptthree-lt55500][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-DemiItalic] [\typescriptthree-lt55501][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-DemiItalicSC] [\typescriptthree-lt55502][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-DemiItalicOsF] [\typescriptthree-lt55503][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-DemiCond] [\typescriptthree-lt55504][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-Bold] [\typescriptthree-lt55505][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-BoldSC] [\typescriptthree-lt55506][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-BoldOsF] [\typescriptthree-lt55507][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-BoldItalic] [\typescriptthree-lt55508][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-BoldItalicSC] [\typescriptthree-lt55509][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-BoldItalicOsF] [\typescriptthree-lt55510][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-BoldCond] [\typescriptthree-lt55511][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-Heavy] [\typescriptthree-lt55512][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-HeavyItalic] [\typescriptthree-lt55513][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-Black] [\typescriptthree-lt55514][encoding=\typescriptthree] \definefontsynonym[OptimaNovaLT-BlackItalic] [\typescriptthree-lt55515][encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-optima-nova.map] \stoptypescript \starttypescript[optima-nova][texnansi,ec] % will change to more narrow tt \definetypeface[optima][ss][sans][optima-nova] [default][encoding=\typescripttwo] \definetypeface[optima][rm][sans][optima-nova] [default][encoding=\typescripttwo] \definetypeface[optima][tt][mono][latin-modern][default][encoding=\typescripttwo,rscale=1.1] \definetypeface[optima][mm][math][latin-modern][default][encoding=\typescripttwo,rscale=1.1] \quittypescriptscanning \stoptypescript \starttypescript[optima-nova-os][texnansi,ec] % will change to more narrow tt \definetypeface[optima-os][ss][sans][optima-nova-os] [default][encoding=\typescripttwo] \definetypeface[optima-os][rm][sans][optima-nova-os] [default][encoding=\typescripttwo] \definetypeface[optima-os][tt][mono][latin-modern] [default][encoding=\typescripttwo,rscale=1.1] \definetypeface[optima-os][mm][math][latin-modern] [default][encoding=\typescripttwo,rscale=1.1] \quittypescriptscanning \stoptypescript % palatino \starttypescript [serif] [palatino] [name] \definefontsynonym [Serif] [PalatinoLT-Roman] \definefontsynonym [SerifItalic] [PalatinoLT-Italic] \definefontsynonym [SerifBold] [PalatinoLT-Bold] \definefontsynonym [SerifBoldItalic] [PalatinoLT-BoldItalic] \definefontsynonym [SerifSlanted] [SerifItalic] \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic] \definefontsynonym [SerifCaps] [PalatinoSC] \stoptypescript \starttypescript [serif] [palatino] [texnansi,ec,8r] \definefontsynonym[PalatinoLT-Roman] [\typescriptthree-lte50001] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-Italic] [\typescriptthree-lte50002] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-Bold] [\typescriptthree-lte50003] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-BoldItalic] [\typescriptthree-lte50004] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-Light] [\typescriptthree-lte52168] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-LightItalic] [\typescriptthree-lte52169] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-Medium] [\typescriptthree-lte52170] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-MediumItalic] [\typescriptthree-lte52171] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-Black] [\typescriptthree-lte52172] [encoding=\typescriptthree] \definefontsynonym[PalatinoLT-BlackItalic] [\typescriptthree-lte52173] [encoding=\typescriptthree] \definefontsynonym[Palatino-BoldItalicOsF] [\typescriptthree-pobio] [encoding=\typescriptthree] \definefontsynonym[Palatino-BoldOsF] [\typescriptthree-pobos] [encoding=\typescriptthree] \definefontsynonym[Palatino-ItalicOsF] [\typescriptthree-poios] [encoding=\typescriptthree] \definefontsynonym[PalatinoSC] [\typescriptthree-posc] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-palatino.map] \stoptypescript % palatino nova \starttypescript [serif] [palatino-nova] [name] \definefontsynonym [Serif] [PalatinoNova-Regular] \definefontsynonym [SerifItalic] [PalatinoNova-Italic] \definefontsynonym [SerifBold] [PalatinoNova-Bold] \definefontsynonym [SerifBoldItalic] [PalatinoNova-BoldItalic] \definefontsynonym [SerifSlanted] [PalatinoNova-Italic] \definefontsynonym [SerifBoldSlanted] [PalatinoNova-BoldItalic] \definefontsynonym [SerifCaps] [PalatinoNova-RegularSC] \definefontvariant [Serif][sc][Caps] \definefontsynonym [SerifCaps] [PalatinoNova-RegularSC] \definefontsynonym [SerifItalicCaps] [PalatinoNova-ItalicSC] \definefontsynonym [SerifBoldCaps] [PalatinoNova-BoldSC] \definefontsynonym [SerifBoldItalicCaps] [PalatinoNova-BoldItalicSC] \definefontsynonym [SerifSlantedCaps] [PalatinoNova-ItalicSC] \definefontsynonym [SerifBoldSlantedCaps] [PalatinoNova-BoldItalicSC] \definefontsynonym [SerifCapsCaps] [PalatinoNova-RegularSC] \stoptypescript \starttypescript [serif] [palatino-nova-light] [name] % may change \definefontsynonym [Serif] [PalatinoNova-Light] \definefontsynonym [SerifItalic] [PalatinoNova-LightItalic] \definefontsynonym [SerifBold] [PalatinoNova-Regular] \definefontsynonym [SerifBoldItalic] [PalatinoNova-Italic] \definefontsynonym [SerifSlanted] [PalatinoNova-Regular] \definefontsynonym [SerifBoldSlanted] [PalatinoNova-Italic] \definefontsynonym [SerifCaps] [PalatinoNova-LightSC] \stoptypescript \starttypescript [serif] [palatino-nova-medium] [name] % may change \definefontsynonym [Serif] [PalatinoNova-Medium] \definefontsynonym [SerifItalic] [PalatinoNova-MediumItalic] \definefontsynonym [SerifBold] [PalatinoNova-Bold] \definefontsynonym [SerifBoldItalic] [PalatinoNova-BoldItalic] \definefontsynonym [SerifSlanted] [PalatinoNova-Bold] \definefontsynonym [SerifBoldSlanted] [PalatinoNova-BoldItalic] \definefontsynonym [SerifCaps] [PalatinoNova-MediumSC] \stoptypescript \starttypescript [serif] [palatino-nova,palatino-nova-light,palatino-nova-medium] [texnansi,ec,8r] \definefontsynonym[PalatinoNova-Light] [\typescriptthree-PalatinoNova-Light] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-LightItalic] [\typescriptthree-PalatinoNova-LightItalic] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-Regular] [\typescriptthree-PalatinoNova-Regular] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-Italic] [\typescriptthree-PalatinoNova-Italic] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-Medium] [\typescriptthree-PalatinoNova-Medium] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-MediumItalic][\typescriptthree-PalatinoNova-MediumItalic][encoding=\typescriptthree] \definefontsynonym[PalatinoNova-Bold] [\typescriptthree-PalatinoNova-Bold] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-BoldItalic] [\typescriptthree-PalatinoNova-BoldItalic] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-Imperial] [\typescriptthree-PalatinoNova-Imperial] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-Titling] [\typescriptthree-PalatinoNova-Titling] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-LightSC] [\typescriptthree-sc-PalatinoNova-Light] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-LightItalicSC] [\typescriptthree-sc-PalatinoNova-LightItalic] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-RegularSC] [\typescriptthree-sc-PalatinoNova-Regular] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-ItalicSC] [\typescriptthree-sc-PalatinoNova-Italic] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-MediumSC] [\typescriptthree-sc-PalatinoNova-Medium] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-MediumItalicSC][\typescriptthree-sc-PalatinoNova-MediumItalic][encoding=\typescriptthree] \definefontsynonym[PalatinoNova-BoldSC] [\typescriptthree-sc-PalatinoNova-Bold] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-BoldItalicSC] [\typescriptthree-sc-PalatinoNova-BoldItalic] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-ImperialSC] [\typescriptthree-sc-PalatinoNova-Imperial] [encoding=\typescriptthree] \definefontsynonym[PalatinoNova-TitlingSC] [\typescriptthree-sc-PalatinoNova-Titling] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-palatino-nova.map] \loadmapfile[\typescriptthree-sc-linotype-palatino-nova.map] \stoptypescript % aldusnova \starttypescript [serif] [aldus-nova] [name] \definefontsynonym [Serif] [AldusNova-Book] \definefontsynonym [SerifItalic] [AldusNova-BookItalic] \definefontsynonym [SerifBold] [AldusNova-Bold] \definefontsynonym [SerifBoldItalic] [AldusNova-BoldItalic] \definefontsynonym [SerifSlanted] [AldusNova-BookItalic] \definefontsynonym [SerifBoldSlanted] [AldusNova-BoldItalic] \definefontsynonym [SerifCaps] [AldusNova-BookSC] \definefontvariant [Serif][sc][Caps] \definefontsynonym [SerifCaps] [AldusNova-BookSC] \definefontsynonym [SerifItalicCaps] [AldusNova-BookItalicSC] \definefontsynonym [SerifBoldCaps] [AldusNova-BoldSC] \definefontsynonym [SerifBoldItalicCaps] [AldusNova-BoldItalicSC] \definefontsynonym [SerifSlantedCaps] [AldusNova-BookItalicSC] \definefontsynonym [SerifBoldSlantedCaps] [AldusNova-BoldItalicSC] \definefontsynonym [SerifCapsCaps] [AldusNova-BookSC] \stoptypescript \starttypescript [serif] [aldus-nova] [texnansi,ec,8r] \definefontsynonym[AldusNova-Book] [\typescriptthree-AldusNova-Book] [encoding=\typescriptthree] \definefontsynonym[AldusNova-BookItalic] [\typescriptthree-AldusNova-BookItalic] [encoding=\typescriptthree] \definefontsynonym[AldusNova-Bold] [\typescriptthree-AldusNova-Bold] [encoding=\typescriptthree] \definefontsynonym[AldusNova-BoldItalic] [\typescriptthree-AldusNova-BoldItalic] [encoding=\typescriptthree] \definefontsynonym[AldusNova-BookSC] [\typescriptthree-sc-AldusNova-Book] [encoding=\typescriptthree] \definefontsynonym[AldusNova-BookItalicSC] [\typescriptthree-sc-AldusNova-BookItalic] [encoding=\typescriptthree] \definefontsynonym[AldusNova-BoldSC] [\typescriptthree-sc-AldusNova-Bold] [encoding=\typescriptthree] \definefontsynonym[AldusNova-BoldItalicSC] [\typescriptthree-sc-AldusNova-BoldItalic] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-aldus-nova.map] \loadmapfile[\typescriptthree-sc-linotype-aldus-nova.map] \stoptypescript % melior \starttypescript [serif] [melior] [name] \definefontsynonym [MeliorLT-Roman] [MeliorLT] \definefontsynonym [Serif] [MeliorLT-Roman] \definefontsynonym [SerifItalic] [MeliorLT-Italic] \definefontsynonym [SerifBold] [MeliorLT-Bold] \definefontsynonym [SerifBoldItalic] [MeliorLT-BoldItalic] \definefontsynonym [SerifSlanted] [SerifItalic] \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic] \definefontsynonym [SerifCaps] [Serif] \stoptypescript \starttypescript [serif] [melior] [texnansi,ec,8r] \definefontsynonym [MeliorLT] [texnansi-lte50062] [encoding=\typescriptthree] \definefontsynonym [MeliorLT-Italic] [texnansi-lte50063] [encoding=\typescriptthree] \definefontsynonym [MeliorLT-Bold] [texnansi-lte50064] [encoding=\typescriptthree] \definefontsynonym [MeliorLT-BoldItalic] [texnansi-lte50065] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-linotype-melior.map] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-mac.mkii0000644000175000017500000006613614536300610025125 0ustar hillehille%D \module %D [ file=type-mac, %D version=2009.03.10, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Mac OS X Definitions, %D author=Wolfgang Schuster, %D date=\currentdate, %D copyright={Wolfgang Schuster}] %C %C This module is part of the \CONTEXT\ macro||package. See %C mreadme.pdf for details. \definetypescriptprefix [f:andalemono] [Andale Mono] \definetypescriptprefix [f:chalkboard] [Chalkboard] \definetypescriptprefix [f:cochin] [Cochin] \definetypescriptprefix [f:comicsans] [Comic Sans MS] \definetypescriptprefix [f:couriernew] [Courier New] \definetypescriptprefix [f:georgia] [Georgia] \definetypescriptprefix [f:lucidagrande] [Lucida Grande] \definetypescriptprefix [f:monaco] [Monaco] \definetypescriptprefix [f:tahoma] [Tahoma] \definetypescriptprefix [f:timesnewroman] [Times New Roman] \definetypescriptprefix [f:trebuchet] [Trebuchet MS] \definetypescriptprefix [f:verdana] [Verdana] \definetypescriptprefix [n:andalemono] [AndaleMono] \definetypescriptprefix [n:chalkboard] [Chalkboard] \definetypescriptprefix [n:cochin] [Cochin] \definetypescriptprefix [n:comicsans] [ComicSans] \definetypescriptprefix [n:couriernew] [CourierNew] \definetypescriptprefix [n:georgia] [Georgia] \definetypescriptprefix [n:lucidagrande] [LucidaGrande] \definetypescriptprefix [n:monaco] [Monaco] \definetypescriptprefix [n:tahoma] [Tahoma] \definetypescriptprefix [n:timesnewroman] [TimesNewRoman] \definetypescriptprefix [n:trebuchet] [Trebuchet] \definetypescriptprefix [n:verdana] [Verdana] \starttypescriptcollection [macosx] % American Typewriter \starttypescript [serif] [americantypewriter-light-condensed,americantypewriter-condensed,americantypewriter-light,americantypewriter] \definefontsynonym [AmericanTypewriter-Light] [name:American Typewriter Light] [features=default] \definefontsynonym [AmericanTypewriter-Regular] [name:American Typewriter] [features=default] \definefontsynonym [AmericanTypewriter-Bold] [name:American Typewriter Bold] [features=default] \definefontsynonym [AmericanTypewriter-LightCond] [name:American Typewriter Condensed Light] [features=default] \definefontsynonym [AmericanTypewriter-Condensed] [name:American Typewriter Condensed] [features=default] \definefontsynonym [AmericanTypewriter-BoldCond] [name:American Typewriter Condensed Bold] [features=default] \stoptypescript \starttypescript [serif] [americantypewriter-light-condensed] \setups[font:fallback:serif] \definefontsynonym [Serif] [AmericanTypewriter-LightCond] [features=default] \definefontsynonym [SerifBold] [AmericanTypewriter-Condensed] [features=default] \stoptypescript \starttypescript [serif] [americantypewriter-condensed] \setups[font:fallback:serif] \definefontsynonym [Serif] [AmericanTypewriter-Condensed] [features=default] \definefontsynonym [SerifBold] [AmericanTypewriter-BoldCond] [features=default] \stoptypescript \starttypescript [serif] [americantypewriter-light] \setups[font:fallback:serif] \definefontsynonym [Serif] [AmericanTypewriter-Light] [features=default] \definefontsynonym [SerifBold] [AmericanTypewriter-Regular] [features=default] \stoptypescript \starttypescript [serif] [americantypewriter] \setups[font:fallback:serif] \definefontsynonym [Serif] [AmericanTypewriter-Regular] [features=default] \definefontsynonym [SerifBold] [AmericanTypewriter-Bold] [features=default] \stoptypescript \starttypescript [americantypewriter-light-condensed,americantypewriter-condensed,americantypewriter-light,americantypewriter] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % Arial / Arial Narrow / Arial Rounded / Arial Unicode \starttypescript [sans] [arial-narrow,arial-condensed,arial,arial-rounded,arial-unicode] \definefontsynonym [Arial-Condensed] [name:Arial Narrow] [features=default] \definefontsynonym [Arial-ItalicCond] [name:Arial Narrow Italic] [features=default] \definefontsynonym [Arial-BoldCond] [name:Arial Narrow Bold] [features=default] \definefontsynonym [Arial-BoldItalicCond] [name:Arial Narrow Bold Italic] [features=default] \definefontsynonym [Arial-Regular] [name:Arial] [features=default] \definefontsynonym [Arial-Italic] [name:Arial Italic] [features=default] \definefontsynonym [Arial-Bold] [name:Arial Bold] [features=default] \definefontsynonym [Arial-BoldItalic] [name:Arial Bold Italic] [features=default] \definefontsynonym [Arial-Black] [name:Arial Black] [features=default] \definefontsynonym [Arial-Unicode] [name:Arial Unicode MS] [features=default] \definefontsynonym [Arial-Rounded] [name:Arial Rounded MT Bold] [features=default] \stoptypescript \starttypescript [sans] [arial-narrow,arial-condensed] \setups[font:fallback:sans] \definefontsynonym [Sans] [Arial-Condensed] [features=default] \definefontsynonym [SansItalic] [Arial-ItalicCond] [features=default] \definefontsynonym [SansBold] [Arial-BoldCond] [features=default] \definefontsynonym [SansBoldItalic] [Arial-BoldItalicCond] [features=default] \stoptypescript \starttypescript [sans] [arial] \setups[font:fallback:sans] \definefontsynonym [Sans] [Arial-Regular] [features=default] \definefontsynonym [SansItalic] [Arial-Italic] [features=default] \definefontsynonym [SansBold] [Arial-Bold] [features=default] \definefontsynonym [SansBoldItalic] [Arial-BoldItalic] [features=default] \stoptypescript \starttypescript [sans] [arial-rounded] \setups[font:fallback:sans] \definefontsynonym [Sans] [Arial-Rounded] [features=default] \stoptypescript \starttypescript [sans] [arial-unicode] \setups[font:fallback:sans] \definefontsynonym [Sans] [Arial-Unicode] [features=default] \stoptypescript \starttypescript [arial-narrow,arial-condensed,arial,arial-rounded,arial-unicode] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Baskerville \starttypescript [serif] [baskerville] \definefontsynonym [Baskerville-Regular] [name:Baskerville] [features=default] \definefontsynonym [Baskerville-Italic] [name:Baskerville Italic] [features=default] \definefontsynonym [Baskerville-Medium] [name:Baskerville SemiBold] [features=default] \definefontsynonym [Baskerville-MediumItalic] [name:Baskerville SemiBold Italic] [features=default] \definefontsynonym [Baskerville-Bold] [name:Baskerville Bold] [features=default] \definefontsynonym [Baskerville-BoldItalic] [name:Baskerville Bold Italic] [features=default] \stoptypescript \starttypescript [serif] [baskerville] \setups[font:fallback:serif] \definefontsynonym [Serif] [Baskerville-Regular] [features=default] \definefontsynonym [SerifItalic] [Baskerville-Italic] [features=default] \definefontsynonym [SerifBold] [Baskerville-Medium] [features=default] \definefontsynonym [SerifBoldItalic] [Baskerville-MediumItalic] [features=default] \stoptypescript \starttypescript [baskerville] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % Big Caslon \starttypescript [serif] [caslon,bigcaslon] \definefontsynonym [BigCaslon-Medium] [name:Big Caslon Medium] [features=default] \stoptypescript \starttypescript [serif] [caslon,bigcaslon] \setups[font:fallback:serif] \definefontsynonym [Serif] [BigCaslon-Medium] [features=default] \stoptypescript \starttypescript [caslon,bigcaslon] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % Copperplate \starttypescript [sans] [copperplate-light,copperplate] \definefontsynonym [Copperplate-Light] [name:Copperplate Light] [features=default] \definefontsynonym [Copperplate-Regular] [name:Copperplate] [features=default] \definefontsynonym [Copperplate-Bold] [name:Copperplate Bold] [features=default] \stoptypescript \starttypescript [sans] [copperplate-light] \setups[font:fallback:sans] \definefontsynonym [Sans] [Copperplate-Light] [features=default] \definefontsynonym [SansBold] [Copperplate-Regular] [features=default] \stoptypescript \starttypescript [sans] [copperplate] \setups[font:fallback:sans] \definefontsynonym [Sans] [Copperplate-Regular] [features=default] \definefontsynonym [SansBold] [Copperplate-Bold] [features=default] \stoptypescript \starttypescript [copperplate-light,copperplate] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Futura \starttypescript [sans] [futura-condensed,futura] \definefontsynonym [Futura-MediumCond] [name:Futura Condensed Medium] [features=default] \definefontsynonym [Futura-Medium] [name:Futura Medium] [features=default] \definefontsynonym [Futura-MediumItalic] [name:Futura Medium Italic] [features=default] \definefontsynonym [Futura-BoldCond] [name:Futura Condensed ExtraBold] [features=default] \stoptypescript \starttypescript [sans] [futura-condensed] \setups[font:fallback:sans] \definefontsynonym [Sans] [Futura-MediumCond] [features=default] \definefontsynonym [SansBold] [Futura-BoldCond] [features=default] \stoptypescript \starttypescript [sans] [futura] \setups[font:fallback:sans] \definefontsynonym [Sans] [Futura-Medium] [features=default] \definefontsynonym [SansItalic] [Futura-MediumItalic] [features=default] \stoptypescript \starttypescript [futura-condensed,futura] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Gill Sans \starttypescript [sans] [gillsans-light,gillsans] \definefontsynonym [GillSans-Light] [name:Gill Sans Light] [features=default] \definefontsynonym [GillSans-LightItalic] [name:Gill Sans Light Italic] [features=default] \definefontsynonym [GillSans-Regular] [name:Gill Sans] [features=default] \definefontsynonym [GillSans-Italic] [name:Gill Sans Italic] [features=default] \definefontsynonym [GillSans-Bold] [name:Gill Sans Bold] [features=default] \definefontsynonym [GillSans-BoldItalic] [name:Gill Sans Bold Italic] [features=default] \stoptypescript \starttypescript [sans] [gillsans-light] \setups[font:fallback:sans] \definefontsynonym [Sans] [GillSans-Light] [features=default] \definefontsynonym [SansItalic] [GillSans-LightItalic] [features=default] \definefontsynonym [SansBold] [GillSans-Regular] [features=default] \definefontsynonym [SansBoldItalic] [GillSans-Italic] [features=default] \stoptypescript \starttypescript [sans] [gillsans] \setups[font:fallback:sans] \definefontsynonym [Sans] [GillSans-Regular] [features=default] \definefontsynonym [SansItalic] [GillSans-Italic] [features=default] \definefontsynonym [SansBold] [GillSans-Bold] [features=default] \definefontsynonym [SansBoldItalic] [GillSans-BoldItalic] [features=default] \stoptypescript \starttypescript [gillsans-light,gillsans] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Helvetica Neuse \starttypescript [sans] [helvetica-neue-ultralight,helvetica-neue-light,helvetica-neue,helvetica-neue-boldcondensed] \definefontsynonym [HelveticaNeue-UltraLight] [name:Helvetica Neue UltraLight] [features=default] \definefontsynonym [HelveticaNeue-UltraLightItalic] [name:Helvetica Neue UltraLight Italic] [features=default] \definefontsynonym [HelveticaNeue-Light] [name:Helvetica Neue Light] [features=default] \definefontsynonym [HelveticaNeue-LightItalic] [name:Helvetica Neue Light Italic] [features=default] \definefontsynonym [HelveticaNeue-Regular] [name:Helvetica Neue] [features=default] \definefontsynonym [HelveticaNeue-Italic] [name:Helvetica Neue Italic] [features=default] \definefontsynonym [HelveticaNeue-Bold] [name:Helvetica Neue Bold] [features=default] \definefontsynonym [HelveticaNeue-BoldItalic] [name:Helvetica Neue Bold Italic] [features=default] \definefontsynonym [HelveticaNeue-BoldCond] [name:Helvetica Neue Condensed Bold] [features=default] \definefontsynonym [HelveticaNeue-BlackCond] [name:Helvetica Neue Condensed Black] [features=default] \stoptypescript \starttypescript [sans] [helvetica-neue-ultralight] \setups[font:fallback:sans] \definefontsynonym [Sans] [HelveticaNeue-UltraLight] [features=default] \definefontsynonym [SansItalic] [HelveticaNeue-UltraLightItalic] [features=default] \definefontsynonym [SansBold] [HelveticaNeue-Light] [features=default] \definefontsynonym [SansBoldItalic] [HelveticaNeue-LightItalic] [features=default] \stoptypescript \starttypescript [sans] [helvetica-neue-light] \setups[font:fallback:sans] \definefontsynonym [Sans] [HelveticaNeue-Light] [features=default] \definefontsynonym [SansItalic] [HelveticaNeue-LightItalic] [features=default] \definefontsynonym [SansBold] [HelveticaNeue-Regular] [features=default] \definefontsynonym [SansBoldItalic] [HelveticaNeue-Italic] [features=default] \stoptypescript \starttypescript [sans] [helvetica-neue] \setups[font:fallback:sans] \definefontsynonym [Sans] [HelveticaNeue-Regular] [features=default] \definefontsynonym [SansItalic] [HelveticaNeue-Italic] [features=default] \definefontsynonym [SansBold] [HelveticaNeue-Bold] [features=default] \definefontsynonym [SansBoldItalic] [HelveticaNeue-BoldItalic] [features=default] \stoptypescript \starttypescript [sans] [helvetica-neue-boldcondensed] \setups[font:fallback:sans] \definefontsynonym [Sans] [HelveticaNeue-BoldCond] [features=default] \definefontsynonym [SansBold] [HelveticaNeue-BlackCond] [features=default] \stoptypescript \starttypescript [helvetica-neue-ultralight,helvetica-neue-light,helvetica-neue,helvetica-neue-boldcondensed] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Hiragino Mincho \starttypescript [serif] [hiragino-mincho] \definefontsynonym [HiraginoMinchoPro-Regular] [name:Hiragino Mincho Pro W3] [features=japanese] \definefontsynonym [HiraginoMinchoPro-Bold] [name:Hiragino Mincho Pro W6] [features=japanese] \definefontsynonym [HiraginoMinchoProN-Regular] [name:Hiragino Mincho ProN W3] [features=japanese] \definefontsynonym [HiraginoMinchoProN-Bold] [name:Hiragino Mincho ProN W6] [features=japanese] \stoptypescript \starttypescript [serif] [hiragino-mincho] \setups[font:fallback:serif] \definefontsynonym [Serif] [HiraginoMinchoPro-Regular] [features=japanese] \definefontsynonym [SerifBold] [HiraginoMinchoPro-Bold] [features=japanese] \stoptypescript % \starttypescript [serif] [hiragino-mincho] % \setups[font:fallback:serif] % \definefontsynonym [Serif] [HiraginoMinchoProN-Regular] [features=japanese] % \definefontsynonym [SerifBold] [HiraginoMinchoProN-Bold] [features=japanese] % \stoptypescript \starttypescript [hiragino-mincho] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % Hiragino Maru \starttypescript [sans] [hiragino-maru] \definefontsynonym [HiraginoMaruGothicPro-Regular] [name:Hiragino Maru Gothic Pro W4] [features=japanese] \definefontsynonym [HiraginoMaruGothicProN-Regular] [name:Hiragino Maru Gothic ProN W4] [features=japanese] \stoptypescript \starttypescript [sans] [hiragino-maru] \setups[font:fallback:sans] \definefontsynonym [Sans] [HiraginoMaruGothicPro-Regular] [features=japanese] \stoptypescript % \starttypescript [sans] [hiragino-maru] % \setups[font:fallback:sans] % \definefontsynonym [Sans] [HiraginoMaruGothicProN-Regular] [features=japanese] % \stoptypescript \starttypescript [hiragino-maru] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Hiragino Kaku \starttypescript [sans] [hiragino-kaku] \definefontsynonym [HiraginoKakuGothicPro-Regular] [name:Hiragino Kaku Gothic Pro W3] [features=japanese] \definefontsynonym [HiraginoKakuGothicPro-Bold] [name:Hiragino Kaku Gothic Pro W6] [features=japanese] \definefontsynonym [HiraginoKakuGothicStd-Black] [name:Hiragino Kaku Gothic Std W8] [features=japanese] \definefontsynonym [HiraginoKakuGothicProN-Regular] [name:Hiragino Kaku Gothic Pron W3] [features=japanese] \definefontsynonym [HiraginoKakuGothicProN-Bold] [name:Hiragino Kaku Gothic ProN W6] [features=japanese] \definefontsynonym [HiraginoKakuGothicStdN-Black] [name:Hiragino Kaku Gothic StdN W8] [features=japanese] \stoptypescript \starttypescript [sans] [hiragino-kaku] \setups[font:fallback:sans] \definefontsynonym [Sans] [HiraginoKakuGothicPro-Regular] [features=japanese] \definefontsynonym [SansBold] [HiraginoKakuGothicPro-Bold] [features=japanese] \stoptypescript % \starttypescript [sans] [hiragino-kaku] % \setups[font:fallback:sans] % \definefontsynonym [Sans] [HiraginoKakuGothicProN-Regular] [features=japanese] % \definefontsynonym [SansBold] [HiraginoKakuGothicProN-Bold] [features=japanese] % \stoptypescript \starttypescript [hiragino-kaku] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Hoefler Text \starttypescript [serif] [hoefler] \definefontsynonym [HoeflerText-Regular] [name:Hoefler Text] [features=default] \definefontsynonym [HoeflerText-Italic] [name:Hoefler Text Italic] [features=default] \definefontsynonym [HoeflerText-Black] [name:Hoefler Text Black] [features=default] \definefontsynonym [HoeflerText-BlackItalic] [name:Hoefler Text Black Italic] [features=default] \definefontsynonym [HoeflerText-Ornaments] [name:Hoefler Text Ornaments] [features=default] \stoptypescript \starttypescript [serif] [hoefler] \setups[font:fallback:serif] \definefontsynonym [Serif] [HoeflerText-Regular] [features=default] \definefontsynonym [SerifItalic] [HoeflerText-Italic] [features=default] \definefontsynonym [SerifBold] [HoeflerText-Black] [features=default] \definefontsynonym [SerifBoldItalic] [HoeflerText-BlackItalic] [features=default] \stoptypescript \starttypescript [hoefler] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % Impact \starttypescript [sans] [impact] \definefontsynonym [Impact-Regular] [name:Impact] [features=default] \stoptypescript \starttypescript [sans] [impact] \setups[font:fallback:sans] \definefontsynonym [Sans] [Impact-Regular] [features=default] \stoptypescript \starttypescript [impact] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Andale Mono / Monaco \starttypescript [mono] [andalemono,monaco] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default] \stoptypescript \starttypescript [mono] [andalemono,monaco] \setups[font:fallback:mono] \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default] \stoptypescript \starttypescript [andalemono,monaco] \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default] \stoptypescript % Optima \starttypescript [sans] [optima,optima-bold] \definefontsynonym [Optima-Regular] [name:Optima Regular] [features=default] \definefontsynonym [Optima-Italic] [name:Optima Italic] [features=default] \definefontsynonym [Optima-Bold] [name:Optima Bold] [features=default] \definefontsynonym [Optima-BoldItalic] [name:Optima Bold Italic] [features=default] \definefontsynonym [Optima-Black] [name:Optima ExtraBlack] [features=default] \stoptypescript \starttypescript [sans] [optima] \setups[font:fallback:sans] \definefontsynonym [Sans] [Optima-Regular] [features=default] \definefontsynonym [SansItalic] [Optima-Italic] [features=default] \definefontsynonym [SansBold] [Optima-Bold] [features=default] \definefontsynonym [SansBoldItalic] [Optima-BoldItalic] [features=default] \stoptypescript \starttypescript [sans] [optima-bold] \setups[font:fallback:sans] \definefontsynonym [Sans] [Optima-Bold] [features=default] \definefontsynonym [SansItalic] [Optima-BoldItalic] [features=default] \definefontsynonym [SansBold] [Optima-Black] [features=default] \stoptypescript \starttypescript [optima,optima-bold] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Papyrus \starttypescript [sans] [papyrus] \definefontsynonym [Papyrus-Regular] [name:Papyrus] [features=default] \definefontsynonym [Papyrus-Condensed] [name:Papyrus Condensed] [features=default] \stoptypescript \starttypescript [sans] [papyrus] \setups[font:fallback:sans] \definefontsynonym [Sans] [Papyrus-Regular] [features=default] \stoptypescript \starttypescript [papyrus] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % STFangsong \starttypescript [serif] [stfangsong] \definefontsynonym [STFangsong-Regular] [name:STFangsong] [features=chinese] \stoptypescript \starttypescript [serif] [stfangsong] \setups[font:fallback:sans] \definefontsynonym [Serif] [STFangsong-Regular] [features=chinese] \stoptypescript \starttypescript [stfangsong] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % STHeiti \starttypescript [sans] [stheiti] \definefontsynonym [STXihei-Light] [name:STHeiti Light] [features=chinese] \definefontsynonym [STHeiti-Regular] [name:STHeiti Regular] [features=chinese] \stoptypescript \starttypescript [sans] [stheiti] \setups[font:fallback:sans] \definefontsynonym [Sans] [STXihei-Light] [features=chinese] \definefontsynonym [SansBold] [STKaiti-Regular] [features=chinese] \stoptypescript \starttypescript [stheiti] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % STKaiti \starttypescript [serif] [stkaiti] \definefontsynonym [STKaiti-Regular] [name:STKaiti] [features=chinese] \stoptypescript \starttypescript [serif] [stkaiti] \setups[font:fallback:sans] \definefontsynonym [Serif] [STKaiti-Regular] [features=chinese] \stoptypescript \starttypescript [stkaiti] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % STSong \starttypescript [serif] [stsong] \definefontsynonym [STSong-Regular] [name:STSong] [features=chinese] \stoptypescript \starttypescript [serif] [stsong] \setups[font:fallback:sans] \definefontsynonym [Serif] [STSong-Regular] [features=chinese] \stoptypescript \starttypescript [stsong] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % Chalkboard / Comic Sans / Tahoma \starttypescript [sans] [chalkboard,comicsans,lucidagrande,tahoma] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default] \stoptypescript \starttypescript [sans] [chalkboard,comicsans,lucidagrande,tahoma] \setups[font:fallback:sans] \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default] \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default] \stoptypescript \starttypescript [chalkboard,comicsans,tahoma] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] \stoptypescript % Cochin / Courier New / Georgia / Times New Roman / Trebuchet / Verdana \starttypescript [serif,sans,mono] [cochin,georgia,timesnewroman,trebuchet,verdana,couriernew] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [name:\typescriptprefix{f:\typescripttwo} Italic] [features=default] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [name:\typescriptprefix{f:\typescripttwo} Bold Italic] [features=default] \stoptypescript \starttypescript [serif] [cochin,georgia,timesnewroman] \setups[font:fallback:serif] \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default] \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default] \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default] \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default] \stoptypescript \starttypescript [cochin,georgia,timesnewroman] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] \stoptypescript % Courier New % \starttypescript [mono] [couriernew] % \setups[font:fallback:mono] % \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default] % \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default] % \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default] % \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default] % \stoptypescript % \starttypescript [couriernew] % \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default] % \stoptypescript % Trebuchet / Verdana % \starttypescript [sans] [trebuchet,verdana] % \setups[font:fallback:sans] % \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default] % \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default] % \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default] % \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default] % \stoptypescript % \starttypescript [trebuchet,verdana] % \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] % \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-xtx.mkii0000644000175000017500000005555614536300610025214 0ustar hillehille%D \module %D [ file=type-xtx, %D version=2004.11.15, % prereleased earlier %D title=\CONTEXT\ Typescript Macros, %D subtitle=\XETEX's font treasures, %D author=Adam T. Lindsay etc, %D date=\currentdate, %D copyright={Adam Lindsay \& Hans Hagen \& ...}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Note HH: this file probably needs to be adapted to the current names and %D so but as I don't use \XETEX\ myself others have to provide information. %D Here are some fonts definitions that can get you started with %D \XETEX\ (for more details see Adam's MyWay documents). %D %D Most typescripts in this file are mostly independent of the other %D typescript files. Generally, you can speed things up a lot by %D eliminating all but one of \CONTEXT's typescript files: %D %D \starttyping %D \usetypescriptfiles[reset] % HH: watch out, new feature, since %D \usetypescriptfiles[type-siz] % I disliked the low level redef. %D \stoptyping %D %D The exceptions are the \quotation {legacy} fonts Times, Palatino, %D Courier, and Helvetica, which also depend on \type {type-syn}. %D %D These following six typescripts call the basic four variants on any %D given font, given the name of the \quotation {Regular} variant in the %D name slot. These typescripts default to a Unicode encoding, %D accepts sizes \quotation {default} and \quotation {dtp}, and are %D activated with the identifiers \quotation {Xserif}, \quotation {Xsans}, %D and \quotation {Xmono}. They can have relative scaling within the %D typeface. Any of the following work: %D %D \starttyping %D \definetypeface[basic][rm][Xserif][Baskerville] %D \definetypeface[basic][ss][Xsans] [Optima Regular][default][features=default,rscale=0.87] %D \definetypeface[basic][tt][Xmono] [Courier] [default] %D \stoptyping %D %D Activate the typeface with: %D %D \starttyping %D \setupbodyfont[basic] %D \stoptyping %D This file is hacked by Taco Hoekwater in an attempt to figure out the right approach %D to font loading in \XeTeX. (jun19,2007) %D The General \XeTeX\ low-level font syntax is (at least) as follows. %D %D Named font: %D \starttyping %D \font\x = ":" %D \stoptyping %D \type{} = Font name as seen in a system font menu or the output of fc-list %D %D \type{} = \type{/B} or \type{/I} or \tupe{/BI}, and||or \type{/S=}. %D That last one selects an optical scaled variant for size \type{} %D (it is a bare number, the unit is points). %D %D \type{} = comma- or semicolon- separated list of font features. %D %D Opentype features are selected using \type{+}, and deselected using \type{-}, %D except that key||value pairs are used for \type{script=} and \type{language=} %D %D AAT features are always key||value pairs, often including spaces. %D %D \XETEX's own features are key||value pairs, and can be applied to both OpenType %D and AAT fonts: %D \type{mapping=} for glyph remapping %D \type{color=RRGGBB[TT]} for color (hex numbers, with optional transparancy), %D \type{letterspace=} to add \type{/} intercharacter spacing. %D %D Full example showing all parts of the syntax for an OTF font: %D \starttyping %D \font\f= "Warnock Pro/I/S=5:+smcp,-liga,mapping=tex-text,script=latn" %D \stoptyping %D Non-installed (filename-based) fonts : %D %D \starttyping %D \font\x = "[]:" %D \stoptyping %D %D Here, there are no \type{}, because there is no %D font discovery engine available to be queried. %D TH: This \type{\xetexcolon} definition seems needed because the name/file \ %D parser otherwise drops the rest of the argument into oblivion. \unexpanded\def\xetexcolon{:} \starttypescriptcollection[xetex] \starttypescript[Xserif][all][name] %D TH: I removed all single quotes because they don't seem to add anything. And I added %D the \type{name:} everywhere, because passing that information on \type{\typescripttwo} %D doesn't work either (maybe \type{\typescripttwo} is expanded incorrectly) %D %D And even if that would have worked, \type{file:} will not work properly anyway %D in this case since tricks like \type{/I} will never, ever work for local fonts, %D so there is really only one choice. %D HH: todo, define feature set switch mapping=tex-tex \definefontsynonym[Dummy] [name:\typescripttwo] [features=default] \definefontsynonym[DummyItalic] [name:\typescripttwo/I] [features=default] \definefontsynonym[DummyBold] [name:\typescripttwo/B] [features=default] \definefontsynonym[DummyBoldItalic][name:\typescripttwo/BI][features=default] \definefontsynonym[DummyCaps] [name:\typescripttwo] [features=smallcaps] \definefontsynonym[Serif] [Dummy] \definefontsynonym[SerifBold] [DummyBold] \definefontsynonym[SerifItalic] [DummyItalic] \definefontsynonym[SerifBoldItalic] [DummyBoldItalic] \definefontsynonym[SerifSlanted] [DummyItalic] \definefontsynonym[SerifBoldSlanted][DummyBoldItalic] \definefontsynonym[SerifCaps] [DummyCaps] \stoptypescript \starttypescript[Xsans][all][name] \definefontsynonym[DummySans] [name:\typescripttwo] [features=default] \definefontsynonym[DummySansItalic] [name:\typescripttwo/I] [features=default] \definefontsynonym[DummySansBold] [name:\typescripttwo/B] [features=default] \definefontsynonym[DummySansBoldItalic][name:\typescripttwo/BI][features=default] \definefontsynonym[DummySansCaps] [name:\typescripttwo] [features=smallcaps] \definefontsynonym[Sans] [DummySans] \definefontsynonym[SansBold] [DummySansBold] \definefontsynonym[SansItalic] [DummySansItalic] \definefontsynonym[SansBoldItalic] [DummySansBoldItalic] \definefontsynonym[SansSlanted] [DummySansItalic] \definefontsynonym[SansBoldSlanted][DummySansBoldItalic] \definefontsynonym[SansCaps] [DummySansCaps] \stoptypescript \starttypescript[Xmono][all][name] \definefontsynonym[DummyMono] [name:\typescripttwo] \definefontsynonym[DummyMonoItalic] [name:\typescripttwo/I] \definefontsynonym[DummyMonoBold] [name:\typescripttwo/B] \definefontsynonym[DummyMonoBoldItalic][name:\typescripttwo/BI] % TODO: smallcaps without other features \definefontsynonym[Mono] [DummyMono] \definefontsynonym[MonoBold] [DummyMonoBold] \definefontsynonym[MonoItalic] [DummyMonoItalic] \definefontsynonym[MonoBoldItalic] [DummyMonoBoldItalic] \definefontsynonym[MonoSlanted] [DummyMonoItalic] \definefontsynonym[MonoBoldSlanted][DummyMonoBoldItalic] \definefontsynonym[MonoCaps] [DummyMono] \stoptypescript \starttypescript[Xserif][default][size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [rm] [default] \stoptypescript \starttypescript[Xsans][default][size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [ss] [default] \stoptypescript \starttypescript [Xmono][default][size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [tt] [default] \stoptypescript \starttypescript[Xserif][dtp][size] \definebodyfont [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] [rm] [default] \stoptypescript \starttypescript[Xsans][dtp][size] \definebodyfont [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] [ss] [default] \stoptypescript \starttypescript[Xmono][dtp][size] \definebodyfont [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] [tt] [default] \stoptypescript %D The following are \quotation {legacy} named fonts. Times, Palatino, %D and Helvetica are familiar to most users of modern \TEX\ %D systems. These versions are accessed via the Unicode encoding %D enabled by \XETEX. There is no attempt to match metrics with %D the actual legacy fonts. These are simply familiar names. %D These typescripts, unlike others in this file, depend on those in %D \type{type-pre}. \starttypescript[serif][times][uc] \definefontsynonym[Times-Roman] [name:Times Roman] [features=default] \definefontsynonym[Times-Italic] [name:Times Italic] [features=default] \definefontsynonym[Times-Bold] [name:Times Bold] [features=default] \definefontsynonym[Times-BoldItalic][name:Times Bold Italic][features=default] \stoptypescript %D Book Antiqua is Mac OS X's Palatino clone. \starttypescript[serif][palatino][uc] \definefontsynonym[Palatino] [name:Book Antiqua] [features=default] \definefontsynonym[Palatino-Italic] [name:Book Antiqua Italic] [features=default] \definefontsynonym[Palatino-Bold] [name:Book Antiqua Bold] [features=default] \definefontsynonym[Palatino-BoldItalic] [name:Book Antiqua Bold Italic][features=default] \definefontsynonym[Palatino-Slanted] [Palatino-Italic] \definefontsynonym[Palatino-BoldSlanted] [Palatino-BoldItalic] \definefontsynonym[Palatino-Caps] [Palatino] \stoptypescript %D The default Helvetica doesn't have an oblique variant, so we'll %D go ahead and name Helvertica Neue here. \starttypescript[sans][helvetica][uc] \definefontsynonym[Helvetica] [name:Helvetica Neue] [features=default] \definefontsynonym[Helvetica-Oblique] [name:Helvetica Neue Italic] [features=default] \definefontsynonym[Helvetica-Bold] [name:Helvetica Neue Bold] [features=default] \definefontsynonym[Helvetica-BoldOblique][name:Helvetica Neue Bold Italic][features=default] \stoptypescript %D Courier, as delivered on MacOSX 10.3, doesn't have an oblique %D variant, either. Unfortunately, none of the default Mono fonts in %D MacOSX have oblique|/|italic versions! \starttypescript[mono][courier][uc] \definefontsynonym[Courier] [name:Courier] \definefontsynonym[Courier-Oblique] [Courier] \definefontsynonym[Courier-Bold] [name:Courier Bold] \definefontsynonym[Courier-BoldOblique][Courier-Bold] \stoptypescript %D The following fonts go beyond the usual four variants that %D are accessible via the above wildcard typescripts, so they %D get a more expanded treatment here\xetexcolon \starttypescript[serif][hoefler][uc] \definefontsynonym[Hoefler] [name:Hoefler Text\xetexcolon mapping=tex-text;% Ligatures=Diphthongs] [encoding=uc] \definefontsynonym[HoeflerItalic][name:Hoefler Text Italic\xetexcolon mapping=tex-text;% Ligatures=Diphthongs] [encoding=uc] \definefontsynonym[HoeflerBlack] [name:Hoefler Text Black\xetexcolon mapping=tex-text;% Ligatures=Diphthongs] [encoding=uc] \definefontsynonym[HoeflerBlackItalic][name:Hoefler Text Black Italic\xetexcolon mapping=tex-text;% Ligatures=Diphthongs] [encoding=uc] \definefontsynonym[HoeflerSmCap] [name:Hoefler Text\xetexcolon mapping=tex-text;% Ligatures=Diphthongs;% Letter Case=Small Caps][encoding=uc] \stoptypescript \starttypescript[serif][hoefler][name] \definefontsynonym[Serif] [Hoefler] \definefontsynonym[SerifBold] [HoeflerBlack] \definefontsynonym[SerifItalic] [HoeflerItalic] \definefontsynonym[SerifBoldItalic] [HoeflerBlackItalic] \definefontsynonym[SerifSlanted] [HoeflerItalic] \definefontsynonym[SerifBoldSlanted][HoeflerBlackItalic] \definefontsynonym[SerifCaps] [HoeflerSmCap] \stoptypescript \starttypescript[sans][lucidagrande][uc] \definefontsynonym[LucidaGrande] [name:Lucida Grande] [features=default] \definefontsynonym[LucidaGrandeBold][name:Lucida Grande Bold][features=default] \stoptypescript \starttypescript[sans][lucidagrande][name] \definefontsynonym[Sans] [LucidaGrande] \definefontsynonym[SansBold] [LucidaGrandeBold] \definefontsynonym[SansItalic] [LucidaGrande] \definefontsynonym[SansBoldItalic] [LucidaGrandeBold] \definefontsynonym[SansSlanted] [LucidaGrande] \definefontsynonym[SansBoldSlanted][LucidaGrandeBold] \definefontsynonym[SansCaps] [LucidaGrande] \stoptypescript \starttypescript[sans][optima][uc] \definefontsynonym[Optima] [name:Optima Regular] [features=default] \definefontsynonym[OptimaItalic] [name:Optima Italic] [features=default] \definefontsynonym[OptimaBold] [name:Optima Bold] [features=default] \definefontsynonym[OptimaBoldItalic][name:Optima Bold Italic][features=default] \definefontsynonym[OptimaBlack] [name:Optima ExtraBlack] [features=default] \stoptypescript \starttypescript[sans][optima][name] \definefontsynonym[Sans] [Optima] \definefontsynonym[SansBold] [OptimaBold] \definefontsynonym[SansItalic] [OptimaItalic] \definefontsynonym[SansBoldItalic] [OptimaBoldItalic] \definefontsynonym[SansSlanted] [OptimaItalic] \definefontsynonym[SansBoldSlanted][OptimaBoldItalic] \definefontsynonym[SansCaps] [Optima] \stoptypescript \starttypescript[sans][gillsans,gillsanslt][uc] \definefontsynonym[GillSans] [name:Gill Sans] [features=default] \definefontsynonym[GillSansItalic] [name:Gill Sans Italic] [features=default] \definefontsynonym[GillSansBold] [name:Gill Sans Bold] [features=default] \definefontsynonym[GillSansBoldItalic] [name:Gill Sans Bold Italic] [features=default] \definefontsynonym[GillSansLight] [name:Gill Sans Light] [features=default] \definefontsynonym[GillSansLightItalic][name:Gill Sans Light Italic][features=default] \stoptypescript \starttypescript[sans][gillsans][name] \definefontsynonym[Sans] [GillSans] \definefontsynonym[SansBold] [GillSansBold] \definefontsynonym[SansItalic] [GillSansItalic] \definefontsynonym[SansBoldItalic] [GillSansBoldItalic] \definefontsynonym[SansSlanted] [GillSansItalic] \definefontsynonym[SansBoldSlanted][GillSansBoldItalic] \definefontsynonym[SansCaps] [GillSans] \stoptypescript \starttypescript[sans][gillsanslt][name] \definefontsynonym[Sans] [GillSansLight] \definefontsynonym[SansBold] [GillSans] \definefontsynonym[SansItalic] [GillSansLightItalic] \definefontsynonym[SansBoldItalic] [GillSansItalic] \definefontsynonym[SansSlanted] [GillSansLightItalic] \definefontsynonym[SansBoldSlanted][GillSansItalic] \definefontsynonym[SansCaps] [GillSansLight] \stoptypescript \starttypescript[serif,handwriting][zapfino][uc] \definefontsynonym[ZapfinoOne] [name:Zapfino\xetexcolon mapping=tex-text] [encoding=uc] \definefontsynonym[ZapfinoTwo] [name:Zapfino\xetexcolon mapping=tex-text;% Stylistic Variants=First variant glyph set] [encoding=uc] \definefontsynonym[ZapfinoThree][name:Zapfino\xetexcolon mapping=tex-text;% Stylistic Variants=Second variant glyph set][encoding=uc] \definefontsynonym[ZapfinoFour] [name:Zapfino\xetexcolon mapping=tex-text;% Stylistic Variants=Third variant glyph set] [encoding=uc] \stoptypescript \starttypescript[handwriting][zapfino][name] \definefontsynonym[Handwriting][ZapfinoOne] \stoptypescript \starttypescript[serif][zapfino][name] \definefontsynonym[Serif] [ZapfinoOne] \definefontsynonym[SerifBold] [ZapfinoThree] \definefontsynonym[SerifItalic] [ZapfinoTwo] \definefontsynonym[SerifBoldItalic] [ZapfinoTwo] \definefontsynonym[SerifSlanted] [ZapfinoThree] \definefontsynonym[SerifBoldSlanted][ZapfinoThree] \definefontsynonym[SerifCaps] [ZapfinoOne] \stoptypescript \starttypescript[serif,calligraphy][applechancery][uc] \definefontsynonym[AppleChanceryOne] [name:Apple Chancery\xetexcolon mapping=tex-text;% Number Case=Old Styles] [encoding=uc] \definefontsynonym[AppleChanceryTwo] [name:Apple Chancery\xetexcolon mapping=tex-text;% Number Case=Old Styles;% Design Complexity=Elegant Design Level][encoding=uc] \definefontsynonym[AppleChanceryThree] [name:Apple Chancery\xetexcolon mapping=tex-text;% Number Case=Old Styles;% Design Complexity=Flourishes Set A] [encoding=uc] \definefontsynonym[AppleChanceryFour] [name:Apple Chancery\xetexcolon mapping=tex-text;% Number Case=Old Styles;% Design Complexity=Flourishes Set B] [encoding=uc] \definefontsynonym[AppleChanceryCaps] [name:Apple Chancery\xetexcolon mapping=tex-text;% Number Case=Old Styles;% Letter Case=Small Caps] [encoding=uc] \definefontsynonym[AppleChanceryCapsTwo][name:Apple Chancery\xetexcolon mapping=tex-text;% Number Case=Old Styles;% Letter Case=Small Caps;% Design Complexity=Flourishes Set B] [encoding=uc] \stoptypescript \starttypescript[calligraphy][applechancery][name] \definefontsynonym[Calligraphy][AppleChanceryOne] \stoptypescript \starttypescript[serif][applechancery][name] \definefontsynonym[Serif] [AppleChanceryOne] \definefontsynonym[SerifBold] [AppleChanceryThree] \definefontsynonym[SerifItalic] [AppleChanceryTwo] \definefontsynonym[SerifBoldItalic] [AppleChanceryFour] \definefontsynonym[SerifSlanted] [AppleChanceryThree] \definefontsynonym[SerifBoldSlanted][AppleChanceryFour] \definefontsynonym[SerifCaps] [AppleChanceryCaps] \stoptypescript % MS Office 2004 for Mac has impressive Unicode coverage in many of its fonts. \starttypescript[serif][timesnewroman][uc] \definefontsynonym[MSTimes] [name:Times New Roman] [features=default] \definefontsynonym[MSTimesItalic] [name:Times New Roman Italic] [features=default] \definefontsynonym[MSTimesBold] [name:Times New Roman Bold] [features=default] \definefontsynonym[MSTimesBoldItalic][name:Times New Roman Bold Italic][features=default] \stoptypescript \starttypescript[serif][timesnewroman][name] \definefontsynonym[Serif] [MSTimes] \definefontsynonym[SerifBold] [MSTimesBold] \definefontsynonym[SerifItalic] [MSTimesItalic] \definefontsynonym[SerifBoldItalic] [MSTimesBoldItalic] \definefontsynonym[SerifSlanted] [MSTimesItalic] \definefontsynonym[SerifBoldSlanted][MSTimesBoldItalic] \definefontsynonym[SerifCaps] [MSTimes] \stoptypescript \starttypescript[sans][arial][uc] \definefontsynonym[Arial] [name:Arial] [features=default] \definefontsynonym[ArialItalic] [name:Arial Italic] [features=default] \definefontsynonym[ArialBold] [name:Arial Bold] [features=default] \definefontsynonym[ArialBoldItalic][name:Arial Bold Italic][features=default] \stoptypescript \starttypescript[sans][arial][name] \definefontsynonym[Sans] [Arial] \definefontsynonym[SansBold] [ArialBold] \definefontsynonym[SansItalic] [ArialItalic] \definefontsynonym[SansBoldItalic] [ArialBoldItalic] \definefontsynonym[SansSlanted] [ArialItalic] \definefontsynonym[SansBoldSlanted][ArialBoldItalic] \definefontsynonym[SansCaps] [Arial] \stoptypescript %D MS Office comes with an installation of the Lucida family in TrueType form. It's nice, %D except\dots\ no math, no slanted, no caps and some other auxiliary fonts. \starttypescript [serif] [lucida] [uc] \definefontsynonym [LucidaBright] [name:Lucida Bright] [features=default] \definefontsynonym [LucidaBright-Demi] [name:Lucida Bright Demibold][features=default] \definefontsynonym [LucidaBright-DemiItalic] [name:Lucida Bright Demibold][features=default] \definefontsynonym [LucidaBright-Italic] [name:Lucida Bright] [features=default] \definefontsynonym [LucidaBrightSmallcaps] [LucidaBright] \definefontsynonym [LucidaBrightSmallcaps-Demi][LucidaBright-Demi] \definefontsynonym [LucidaBright-Oblique] [LucidaBright-Italic] \stoptypescript \starttypescript [sans] [lucida] [uc] \definefontsynonym [LucidaSans] [name:Lucida Sans Regular] [features=default] \definefontsynonym [LucidaSans-Demi] [name:Lucida Sans Demibold Roman] [features=default] \definefontsynonym [LucidaSans-DemiItalic][name:Lucida Sans Demibold Italic][features=default] \definefontsynonym [LucidaSans-Italic] [name:Lucida Sans Italic] [features=default] \definefontsynonym [LucidaSans-Bold] [LucidaSans-Demi] \definefontsynonym [LucidaSans-BoldItalic][LucidaSans-DemiItalic] \stoptypescript \starttypescript [mono] [lucida] [uc] \definefontsynonym [LucidaSans-Typewriter] [name:Lucida Sans Typewriter Regular] [encoding=uc] \definefontsynonym [LucidaSans-TypewriterBold] [name:Lucida Sans Typewriter Bold] [encoding=uc] \definefontsynonym [LucidaSans-TypewriterBoldOblique][name:Lucida Sans Typewriter Bold Oblique][encoding=uc] \definefontsynonym [LucidaSans-TypewriterOblique] [name:Lucida Sans Typewriter Oblique] [encoding=uc] \stoptypescript \starttypescript [calligraphy] [lucida] [uc] \definefontsynonym[LucidaCalligraphy-Italic][name:Lucida Calligraphy Italic][features=default] \stoptypescript % No casual that I know of \starttypescript[handwriting][lucida][uc] \definefontsynonym[LucidaHandwriting-Italic][name:Lucida Handwriting Italic][features=default] \stoptypescript \starttypescript[fax][lucida][uc] \definefontsynonym[LucidaFax] [name:Lucida Fax Regular] [features=default] \definefontsynonym[LucidaFax-Demi] [name:Lucida Fax Demibold] [features=default] \definefontsynonym[LucidaFax-DemiItalic][name:Lucida Fax Demibold Italic][features=default] \definefontsynonym[LucidaFax-Italic] [name:Lucida Fax Italic] [features=default] \stoptypescript %D Gentium is from SIL, the fine makers of \XETEX, and it's not only very complete with %D Roman and Italic Unicode support, but very attractive. \starttypescript [serif] [gentium] \definefontsynonym [Gentium-Roman] [file:GentiumPlus-R] [features=default] \definefontsynonym [Gentium-Italic] [file:GentiumPlus-I] [features=default] \definefontsynonym [Gentium-Bold] [file:GenBasB] [features=default] \definefontsynonym [Gentium-BoldItalic] [file:GenBasBI] [features=default] \definefontsynonym [Gentium-Slanted] [Gentium-Italic] \definefontsynonym [Gentium-BoldSlanted] [Gentium-BoldItalic] \definefontsynonym [Gentium-RomanCaps] [file:GentiumPlus-R] [features=smallcaps] \stoptypescript \starttypescript [serif] [gentium] [name] \definefontsynonym [Serif] [Gentium-Roman] \definefontsynonym [SerifItalic] [Gentium-Italic] \definefontsynonym [SerifBold] [Gentium-Bold] \definefontsynonym [SerifBoldItalic] [Gentium-BoldItalic] \definefontsynonym [SerifSlanted] [Gentium-Slanted] \definefontsynonym [SerifBoldSlanted] [Gentium-BoldSlanted] \definefontsynonym [SerifCaps] [Serif] \definefontsynonym [OldStyle] [Serif] \definefontsynonym [SerifCaps] [Gentium-RomanCaps] \stoptypescript \starttypescript [gentium] \definetypeface [gentium] [rm] [serif] [gentium] [default] [features=default] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/fonts/mkii/type-exp.mkii0000644000175000017500000001164614536300610025155 0ustar hillehille%D \module %D [ file=type-exp, %D version=2007.01.28, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Experimental Definitions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % \usetypescript[palatino-light] [texnansi] \setupbodyfont[palatino-light] \input zapf \par % \usetypescript[palatino-normal][texnansi] \setupbodyfont[palatino-normal] \input zapf \par % \usetypescript[palatino-medium][texnansi] \setupbodyfont[palatino-medium] \input zapf \par %D This file is used for \LUATEX\ experiments. \starttypescriptcollection[experiment] \starttypescript [sans] [palatino-sans-light] [name] \definefontsynonym [Sans] [PalatinoSans-Light] \definefontsynonym [SansItalic] [PalatinoSans-LightItalic] \definefontsynonym [SansBold] [PalatinoSans-Regular] \definefontsynonym [SansBoldItalic] [PalatinoSans-Italic] \definefontsynonym [SansSlanted] [PalatinoSans-Regular] \definefontsynonym [SansBoldSlanted] [PalatinoSans-Italic] \definefontsynonym [SansCaps] [PalatinoSans-Light] \stoptypescript \starttypescript [sans] [palatino-sans-normal] [name] \definefontsynonym [Sans] [PalatinoSans-Regular] \definefontsynonym [SansItalic] [PalatinoSans-Italic] \definefontsynonym [SansBold] [PalatinoSans-Bold] \definefontsynonym [SansBoldItalic] [PalatinoSans-BoldItalic] \definefontsynonym [SansSlanted] [PalatinoSans-Italic] \definefontsynonym [SansBoldSlanted] [PalatinoSans-BoldItalic] \definefontsynonym [SansCaps] [PalatinoSans-Regular] \stoptypescript \starttypescript [sans] [palatino-sans-medium] [name] \definefontsynonym [Sans] [PalatinoSans-Medium] \definefontsynonym [SansItalic] [PalatinoSans-MediumItalic] \definefontsynonym [SansBold] [PalatinoSans-Bold] \definefontsynonym [SansBoldItalic] [PalatinoSans-BoldItalic] \definefontsynonym [SansSlanted] [PalatinoSans-Bold] \definefontsynonym [SansBoldSlanted] [PalatinoSans-BoldItalic] \definefontsynonym [SansCaps] [PalatinoSans-MediumSC] \stoptypescript \starttypescript [sans] [palatino-sans-light,palatino-sans-normal,palatino-sans-medium] [texnansi,ec,8r] \definefontsynonym[PalatinoSans-Light] [\typescriptthree-palatinosanscom-light] [encoding=\typescriptthree] \definefontsynonym[PalatinoSans-LightItalic] [\typescriptthree-palatinosanscom-lightitalic] [encoding=\typescriptthree] \definefontsynonym[PalatinoSans-Regular] [\typescriptthree-palatinosanscom-regular] [encoding=\typescriptthree] \definefontsynonym[PalatinoSans-Italic] [\typescriptthree-palatinosanscom-italic] [encoding=\typescriptthree] \definefontsynonym[PalatinoSans-Medium] [\typescriptthree-palatinosanscom-medium] [encoding=\typescriptthree] \definefontsynonym[PalatinoSans-MediumItalic][\typescriptthree-palatinosanscom-mediumitalic][encoding=\typescriptthree] \definefontsynonym[PalatinoSans-Bold] [\typescriptthree-palatinosanscom-bold] [encoding=\typescriptthree] \definefontsynonym[PalatinoSans-BoldItalic] [\typescriptthree-palatinosanscom-bolditalic] [encoding=\typescriptthree] \stoptypescript \starttypescript[palatino-normal][texnansi,ec] \definetypeface[palatino-normal][ss][sans] [palatino-sans-normal] [default][encoding=\typescripttwo] \definetypeface[palatino-normal][rm][serif][palatino-nova] [default][encoding=\typescripttwo] \definetypeface[palatino-normal][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1] \definetypeface[palatino-normal][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1] \quittypescriptscanning \stoptypescript \starttypescript[palatino-medium][texnansi,ec] \definetypeface[palatino-medium][ss][sans] [palatino-sans-medium] [default][encoding=\typescripttwo] \definetypeface[palatino-medium][rm][serif][palatino-nova] [default][encoding=\typescripttwo] \definetypeface[palatino-medium][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1] \definetypeface[palatino-medium][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1] \quittypescriptscanning \stoptypescript \starttypescript[palatino-light][texnansi,ec] \definetypeface[palatino-light][ss][sans] [palatino-sans-light] [default][encoding=\typescripttwo] \definetypeface[palatino-light][rm][serif][palatino-nova] [default][encoding=\typescripttwo] \definetypeface[palatino-light][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1] \definetypeface[palatino-light][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1] \quittypescriptscanning \stoptypescript \stoptypescriptcollection context-modules-20240428/texmf-dist/tex/context/base/0000755000175000017500000000000014613513620021352 5ustar hillehillecontext-modules-20240428/texmf-dist/tex/context/base/mkii/0000755000175000017500000000000014613513620022303 5ustar hillehillecontext-modules-20240428/texmf-dist/tex/context/base/mkii/symb-mvs.mkii0000644000175000017500000002105114536300610024727 0ustar hillehille%D \module %D [ file=symb-mvs, %D version=2000.03.30, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Martin Vogels Symbole, %D author=Tobias Burnus \& Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module implements the Martin Vogel Symbole font %D (marvosym). The names are derived from the \LATEX\ package %D \type {marvosym} of Thomas Henlich. The symbols are %D available as Type~1 font and are included in \TETEX\ and %D \FPTEX\ distributions. %D %D This symbol font offers the signs of the zodiac, four %D alternative the euro signs, some general office signs and %D some more. %D %D The font was designed by Martin Vogel who can be reached at %D \hyphenatedurl {martin.vogel@fh-bochum.de}. More information %D can be found at \hyphenatedurl %D {http://www.fh-bochum.de/fb1/vogel/marvosym.html}. The %D conversion to Type~1 font was done by Thomas Henlich, who %D can be reached at \hyphenatedurl %D {thenlich@rcs.urz.tu-dresden.de}. %D %D This module is based on the current \CTAN\ version (as of %D March 30, 2000) and is older than the TrueType version at %D Martin Vogel's Homepage. The definitions in this module %D reflect the \CTAN\ version. The font conversion was done by %D Thomas Henlich using \type {ttf2pt1}, a program that can be %D found at \hyphenatedurl %D {http://www.netspace.net.au/~mheath/ttf2pt1/}. %D %D Using the new version of \type {marvosymb}, the MVzero will %D has a slash and the FHBOLOGO, (wo)manface, and (wo)manfront %D are replaced by other symbols. \loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol] \definefontsynonym [MartinVogel] [umvs] \def\MartinVogelSymbol#1{\getglyph{MartinVogel}{\char#1}} % Astro signs and signs of the zodiac \startsymbolset [astronomic] \definesymbol [Sun] [\MartinVogelSymbol{192}] \definesymbol [Moon] [\MartinVogelSymbol{193}] \definesymbol [Mercury] [\MartinVogelSymbol{194}] \definesymbol [Venus] [\MartinVogelSymbol{195}] \definesymbol [Mars] [\MartinVogelSymbol{196}] \definesymbol [Jupiter] [\MartinVogelSymbol{197}] \definesymbol [Saturn] [\MartinVogelSymbol{198}] \definesymbol [Uranus] [\MartinVogelSymbol{199}] \definesymbol [Neptune] [\MartinVogelSymbol{200}] \definesymbol [Pluto] [\MartinVogelSymbol{201}] \stopsymbolset \startsymbolset [zodiac] \definesymbol [Aries] [\MartinVogelSymbol{224}] \definesymbol [Taurus] [\MartinVogelSymbol{225}] \definesymbol [Gemini] [\MartinVogelSymbol{226}] \definesymbol [Cancer] [\MartinVogelSymbol{227}] \definesymbol [Leo] [\MartinVogelSymbol{228}] \definesymbol [Virgo] [\MartinVogelSymbol{229}] \definesymbol [Libra] [\MartinVogelSymbol{230}] \definesymbol [Scorpio] [\MartinVogelSymbol{231}] \definesymbol [Sagittarius] [\MartinVogelSymbol{232}] \definesymbol [Capricorn] [\MartinVogelSymbol{233}] \definesymbol [Aquarius] [\MartinVogelSymbol{234}] \definesymbol [Pisces] [\MartinVogelSymbol{235}] \stopsymbolset % Euro signs and CE \startsymbolset [europe] \definesymbol [EUR] [\MartinVogelSymbol{164}] \definesymbol [EURhv] [\MartinVogelSymbol {99}] \definesymbol [EURcr] [\MartinVogelSymbol{100}] \definesymbol [EURtm] [\MartinVogelSymbol{101}] \definesymbol [CEsign] [\MartinVogelSymbol {67}] \stopsymbolset \startencoding[default] \definecharacter texteuro {\symbol[europe][EUR]} \stopencoding \unexpanded\def\euro{\doiftextelse{\texteuro}{\texteuro}{\symbol[europe][EUR]}} % Numbers 0 to 9, @, A and p % taco: are these more general, like also in zapf dingbats? \startsymbolset [martinvogel 1] \definesymbol [MVZero] [\MartinVogelSymbol {48}] \definesymbol [MVOne] [\MartinVogelSymbol {49}] \definesymbol [MVTwo] [\MartinVogelSymbol {50}] \definesymbol [MVThree] [\MartinVogelSymbol {51}] \definesymbol [MVFour] [\MartinVogelSymbol {52}] \definesymbol [MVFive] [\MartinVogelSymbol {53}] \definesymbol [MVSix] [\MartinVogelSymbol {54}] \definesymbol [MVSeven] [\MartinVogelSymbol {55}] \definesymbol [MVEight] [\MartinVogelSymbol {56}] \definesymbol [MVNine] [\MartinVogelSymbol {57}] \definesymbol [MVAt] [\MartinVogelSymbol {64}] \definesymbol [MVA] [\MartinVogelSymbol{240}] \definesymbol [MVp] [\MartinVogelSymbol{241}] \stopsymbolset % Office signs, crosses, circles, arrows \startsymbolset [martinvogel 2] \definesymbol [CheckedBox] [\MartinVogelSymbol {86}] \definesymbol [CrossedBox] [\MartinVogelSymbol {88}] \definesymbol [PointingHand] [\MartinVogelSymbol {90}] \definesymbol [WritingHand] [\MartinVogelSymbol {98}] \definesymbol [Heart] [\MartinVogelSymbol{140}] \definesymbol [FlatSteel] [\MartinVogelSymbol{150}] \definesymbol [Squarepipe] [\MartinVogelSymbol{151}] \definesymbol [Rectpipe] [\MartinVogelSymbol{152}] \definesymbol [Lsteel] [\MartinVogelSymbol{153}] \definesymbol [TTsteel] [\MartinVogelSymbol{154}] \definesymbol [Circpipe] [\MartinVogelSymbol{155}] \definesymbol [Tsteel] [\MartinVogelSymbol{156}] \definesymbol [Stopsign] [\MartinVogelSymbol {33}] \definesymbol [Beam] [\MartinVogelSymbol {34}] \definesymbol [Bearing] [\MartinVogelSymbol {35}] \definesymbol [Loosebearing] [\MartinVogelSymbol {36}] \definesymbol [Fixedbearing] [\MartinVogelSymbol {37}] \definesymbol [Lefttorque] [\MartinVogelSymbol {38}] \definesymbol [Righttorque] [\MartinVogelSymbol {39}] \definesymbol [Force] [\MartinVogelSymbol {40}] \definesymbol [Lineload] [\MartinVogelSymbol {41}] \definesymbol [Circles] [\MartinVogelSymbol {46}] \definesymbol [Squaredot] [\MartinVogelSymbol{247}] \definesymbol [Correspondes] [\MartinVogelSymbol {61}] \definesymbol [Vectorarrowhigh] [\MartinVogelSymbol {80}] \definesymbol [Vectorarrow] [\MartinVogelSymbol{112}] \definesymbol [Rightarrow] [\MartinVogelSymbol {62}] \definesymbol [Lightning] [\MartinVogelSymbol {69}] \definesymbol [Snowflake] [\MartinVogelSymbol {42}] \definesymbol [Kross] [\MartinVogelSymbol {43}] \definesymbol [Cross] [\MartinVogelSymbol{134}] \definesymbol [Celtcross] [\MartinVogelSymbol{135}] \definesymbol [Ankh] [\MartinVogelSymbol{136}] \definesymbol [Yingyang] [\MartinVogelSymbol {77}] \definesymbol [Pickup] [\MartinVogelSymbol {0}] % ? \definesymbol [Letter] [\MartinVogelSymbol {66}] % ? \definesymbol [Mobilephone] [\MartinVogelSymbol {72}] \definesymbol [Telephone] [\MartinVogelSymbol {84}] \definesymbol [fax] [\MartinVogelSymbol{116}] \definesymbol [FAX] [\MartinVogelSymbol{117}] \definesymbol [Faxmachine] [\MartinVogelSymbol{118}] \definesymbol [Clocklogo] [\MartinVogelSymbol {85}] \definesymbol [Industry] [\MartinVogelSymbol {73}] \definesymbol [Coffeecup] [\MartinVogelSymbol {75}] \definesymbol [Info] [\MartinVogelSymbol{105}] \definesymbol [Football] [\MartinVogelSymbol{111}] \definesymbol [Frowny] [\MartinVogelSymbol{167}] \definesymbol [Smiley] [\MartinVogelSymbol{169}] \definesymbol [Bicycle] [\MartinVogelSymbol{174}] \definesymbol [Rightscissors] [\MartinVogelSymbol {81}] \definesymbol [Leftscissors] [\MartinVogelSymbol {83}] \definesymbol [Cutright] [\MartinVogelSymbol{113}] \definesymbol [Cutleft] [\MartinVogelSymbol{115}] \definesymbol [Kutline] [\MartinVogelSymbol {82}] % K ? \definesymbol [Cutline] [\MartinVogelSymbol{114}] \stopsymbolset % FHBO (Fachhochschule Bochum), face, humans, bat \startsymbolset [martinvogel 3] \definesymbol [FHBOlogo] [\MartinVogelSymbol {70}] \definesymbol [FHBOLOGO] [\MartinVogelSymbol{102}] \definesymbol [Womanside] [\MartinVogelSymbol{204}] \definesymbol [Manside] [\MartinVogelSymbol{205}] \definesymbol [Womanfront] [\MartinVogelSymbol{206}] \definesymbol [Manfront] [\MartinVogelSymbol{207}] \definesymbol [Bat] [\MartinVogelSymbol{253}] \definesymbol [Womanface] [\MartinVogelSymbol{254}] \definesymbol [MartinVogel] [\MartinVogelSymbol{255}] \stopsymbolset %D \showsymbolset[astronomic] %D \showsymbolset[zodiac] %D \showsymbolset[europe] %D \showsymbolset[martinvogel 1] %D \showsymbolset[martinvogel 2] %D \showsymbolset[martinvogel 3] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-vis.mkii0000644000175000017500000000015414536300610024676 0ustar hillehille% temporary module, needed for downward compatibility \input regi-vis.tex \enableregime[viscii] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-fun.mkii0000644000175000017500000005133414536300610024736 0ustar hillehille%D \module %D [ file=supp-fun, %D version=1995.10.10, %D title=\CONTEXT\ Support Macros, %D subtitle=Fun Stuff, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D This module implements some typographics tricks that can %D be fun when designing document layouts. The examples use %D macros that are typical to \CONTEXT, but non \CONTEXT\ %D users can use the drop caps and first line treatment %D macros without problems. This module will be extended %D when the need for more of such tricks arises. \ifx \undefined \writestatus \input supp-mis.tex \relax \fi \writestatus{loading}{ConTeXt Support Macros / Fun Stuff} \ifx\definefont\undefined \def\definedfont[#1]{\font\temp#1\relax\temp} \fi %D \macros %D {DroppedCaps, DroppedString, DroppedIndent, DroppedLines} %D %D \startbuffer %D \DroppedCaps %D {\color[green]} {cmbx12} %D {2.2\baselineskip} {2pt} {\baselineskip} {2} %D Let's start %D \stopbuffer %D %D \getbuffer with dropped caps, those blown up first %D characters of a paragraph. It's hard to implement a general %D mechanism that suits all situations, but dropped caps are so %D seldomly used that we can permit ourselves a rather user %D unfriendly implementation. %D %D \typebuffer %D %D As we will see, there are 7 different settings involved. The %D first argument takes a command that is used to do whatever %D fancy things we want to do, but normally this one will be %D empty. The second argument takes the font. Because we're %D dealing with something very typographic, there is no real %D reason to adopt complicated font switching schemes, a mere %D name will do. Font encodings can bring no harm, because the %D alphanumeric characters are nearly always located at their %D natural position in the encoding vector. %D %D \startbuffer %D \DroppedCaps %D {\color[red]} {cmbx12} %D {\baselineskip} {0pt} {0pt} {1} %D This simple %D \stopbuffer %D %D \getbuffer case shows us what happens when we apply minimal %D values. Here we used: %D %D \typebuffer %D %D \startbuffer %D \DroppedCaps %D {\color[red]} {cmbx12} %D {2\baselineskip} {0pt} {\baselineskip} {2} %D Is this ugly %D \stopbuffer %D %D \getbuffer example the third argument tells %D this macro that we want a dropped capital scaled to the %D baseline distance. The two zero point arguments are the %D horizontal and vertical offsets and the last arguments %D determines the hanging indentation. In this paragraph we %D set the height to two times the baselinedistance and use %D two hanging lines: %D %D \typebuffer %D %D Here, the first character is moved down one baseline. Here %D we also see why the horizontal offset is important. The %D first example (showing the~L) sets this to a few points and %D also used a slightly larger height. %D %D Of course common users (typist) are not supposed to see this %D kind of fuzzy definitions, but fortunately \TEX\ permits us %D to hide them in macros. Using a macro also enables us to %D garantee consistency throughout the document: %D %D \startbuffer %D \def\MyDroppedCaps% %D {\DroppedCaps %D {\color[green]} {cmbx12} %D {5\baselineskip} {3pt} {3\baselineskip} {4}} %D %D \MyDroppedCaps The implementation %D \stopbuffer %D %D \typebuffer %D %D \getbuffer of the general macro is rather simple and only %D depends on the arguments given and the dimensions of the %D strut box. We explicitly load the font, which is no problem %D because \TEX\ does not load a font twice. We could have %D combined some arguments, like the height, vertical offset %D and the number of lines, but the current implementation %D proved to be the most flexible. One should be aware of the %D fact that the offsets depend on the design of the glyphs %D used. \let\DroppedIndent\!!zeropoint \def\DroppedLines{0} \def\DroppedString{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \let\globaldropcaps\global % will be an option, but on by default \def\localdropcaps{\let\globaldropcaps\relax} \chardef\DroppedStatus = 0 % 0=done 1=starting 2=doing 3=error \chardef\DropMode = 0 % 1 == marginhang \ifx\keeplinestogether\undefined \let\keeplinestogether\gobbleoneargument \fi \def\DroppedCaps#1#2#3#4#5#6#7% does not yet handle accented chars {\defconvertedargument\asciia{#7}% \defconvertedcommand \asciib{\DroppedString}% \ExpandBothAfter\doifinstringelse\asciia\asciib {\noindentation \dontleavehmode \checkindentation % redo this one %\ifhmode\hskip-\parindent\fi % sensitive for context mechanism \keeplinestogether{#6}% \setbox0\hbox{\definedfont[#2 at #3]#1{#7}\hskip#4}% \ifdim\dp0>\strutdp % one of those Q's , will be option \setbox2\hbox{\raise\dp0\hbox{\lower\strutdp\copy0}}% \ht2\ht0 \dp0\strutdp \setbox0\box2 \fi \setbox0\hbox {\ifnum\DropMode=\plusone \hskip-\wd0\wd0\zeropoint \fi \lower#5\box0}% \ht0\strutht \dp0\strutdp \ifnum\DropMode=\plusone \globaldropcaps\let\DroppedIndent\!!zeropoint \globaldropcaps\edef\DroppedLines{\number\maxdimen}% \globaldropcaps\chardef\DroppedStatus\plusthree \else \globaldropcaps\edef\DroppedIndent{\the\wd0}% \globaldropcaps\edef\DroppedLines {\number#6}% \globaldropcaps\chardef\DroppedStatus\plustwo \globaldropcaps\hangindent\DroppedIndent \globaldropcaps\hangafter-\DroppedLines % \noindent \noindentation \checkindentation % redo this one \hskip-\DroppedIndent \fi \vbox{\forgetall\box0}% \nobreak \let\next\ignorespaces} % Could be a one character word ! {\globaldropcaps\let\DroppedIndent\!!zeropoint \globaldropcaps\edef\DroppedLines{\number\maxdimen}% \globaldropcaps\chardef\DroppedStatus\plusthree \def\next{#7}}% \let\globaldropcaps\global \next} %D Before we go to the next topic, we summarize this command: %D %D \starttyping %D \DroppedCaps %D {command} {font} %D {height} {hoffset} {voffset} {lines} %D \stoptyping %D %D Sometimes you need to make sure that the global settings are %D kept local, as in: %D % %D \startbuffer % %D \defineparagraphs[SomePar][n=2,rule=on] % %D \setupparagraphs [SomePar][1][width=.5\textwidth] % %D \setupparagraphs [SomePar][2][width=.5\textwidth] %D \startbuffer %D \defineparagraphs[SomePar][n=2,rule=on] %D \setupparagraphs [SomePar][1][width=.5\textwidth] %D \setupparagraphs [SomePar][2][width=.5\textwidth] %D %D \startSomePar %D \localdropcaps\NiceDroppedCaps{}{cmr12}{0pt}{2}Here we need %D to explicitly keep the hanging indentation local, like it or %D not. %D \SomePar %D \localdropcaps\NiceDroppedCaps{}{cmr12}{0pt}{2}Here we need %D to explicitly keep the hanging indentation local, like it or %D not. %D \stopSomePar %D \stopbuffer %D %D \typebuffer \getbuffer %D \macros %D {AutoDroppedCaps, CheckDroppedCaps} %D %D {\em To be documented.} % example usage % % \def\bpar{\ifvmode\CheckDroppedCaps\fi} % \def\epar{\ifhmode\par\fi\CheckDroppedCaps} \newcount\lastprevgraf \newcount\droppedlines \def\CheckDroppedCaps {\global\lastprevgraf\prevgraf} \def\AutoDroppedCaps % will be proper core stuff since it {\globaldropcaps\chardef\DroppedStatus\plusone \global\lastprevgraf\zerocount \global\droppedlines\zerocount \EveryPar{\doAutoDroppedCaps}} \let\AutoDroppedNext\relax \ifx\AutoDroppedCapsCommand\undefined \def\AutoDroppedCapsCommand{\NiceDroppedCaps{}{SerifBold}{.125em}{3}} \fi \def\doAutoDroppedCaps {\ifcase\DroppedStatus % done \let\next\relax \or % starting % \ifnum\lastprevgraf>0 % tricky, probably a wrong par % \globaldropcaps\chardef\DroppedStatus=3 % and inhibits dropped % \let\next\relax % caps after titles and more than once % \else % so let's nill this rubishly code fragment \let\next\AutoDroppedCapsCommand % \fi % and hope for the best \or % doing \global\advance\droppedlines \lastprevgraf \ifnum\droppedlines=\zerocount \globaldropcaps\chardef\DroppedStatus\zerocount \let\next\relax \else\ifnum\droppedlines>\zerocount \ifnum\droppedlines<\DroppedLines\relax \globaldropcaps\hangindent\DroppedIndent \globaldropcaps\hangafter-\DroppedLines \globaldropcaps\advance\hangafter \droppedlines \hskip-\parindent % brrr \let\next\AutoDroppedNext \else \globaldropcaps\chardef\DroppedStatus\zerocount \let\next\relax \fi \else \globaldropcaps\chardef\DroppedStatus\zerocount \let\next\relax \fi\fi \or % error \globaldropcaps\chardef\DroppedStatus\zerocount \let\next\relax \fi \next} %D \macros %D {LineDroppedCaps, NiceDroppedCaps} %D %D To save definitions, we also provide: %D %D \starttyping %D \LineDroppedCaps {command} {font} {hoffset} {lines} %D \NiceDroppedCaps {command} {font} {hoffset} {lines} %D \stoptyping %D %D The first command scales the font to the exact height, while %D the second command scales the font to a nice 2.5 times the %D line height, a value that gives a pleasant grayness. \def\DoLineDroppedCaps#1#2#3#4#5% compensation command font offset lines {\scratchcounter#5% \advance\scratchcounter \minusone \scratchdimen\scratchcounter\baselineskip \advance\scratchdimen #1% \NormalizeFontHeight\DummyFont{W}\scratchdimen{#3}% \DroppedCaps{#2}{#3}\TheNormalizedFontSize{#4} {\scratchcounter\baselineskip}{#5}} \def\LineDroppedCaps% command font offset lines {\DoLineDroppedCaps{\strutht}} \def\NiceDroppedCaps% command font offset lines {\DoLineDroppedCaps{.5\baselineskip}} %D \macros %D {TreatFirstLine} %D %D \startbuffer %D \TreatFirstLine {\sc} {} {} {} %D Instead of limiting its action to one token, the next macro %D treats the whole first line. This paragraph was typeset by %D saying: %D \stopbuffer %D %D \getbuffer %D %D \typebuffer %D %D \startbuffer %D \TreatFirstLine {\startcolor[red]\bf} {\stopcolor} {} {} %D The combined color and font effect is also possible, %D although one must be careful in using macros that accumulate %D grouping, but the commands used here are pretty save in that %D respect. %D \stopbuffer %D %D \getbuffer %D %D \typebuffer %D %D Before we explain the third and fourth argument, we show the %D implementation. Those who know a bit about the way \TEX\ %D treats tokens, will probably see in one glance that this %D alternative works all right for most text||only situations %D in which there is enough text available for the first line, %D but that more complicated things will blow. One has to live %D with that. A workaround is rather trivial but obscures the %D principles used. \def\TreatFirstLine#1#2#3#4% before, after, first, next {\leavevmode \bgroup \forgetall \bgroup #1% \setbox0\emptybox \setbox2\emptybox \def\grabfirstline##1 % {\setbox2\hbox {\ifvoid0 {#3{\ignorespaces##1}}% \else \unhcopy0\ {#4{##1}}% \fi}% \ifdim\wd2=\zeropoint \setbox0\emptybox \setbox2\emptybox \@EA\grabfirstline \else\ifdim\wd2>\hsize \hbox to \hsize{\strut\unhbox0}#2\egroup \break##1\ \egroup \else \setbox0\box2 \@EAEAEA\grabfirstline \fi\fi}% \grabfirstline} %D \startbuffer %D \gdef\FunnyCommand %D {\getrandomfloat\FunnyR{0}{1}% %D \getrandomfloat\FunnyG{0}{1}% %D \getrandomfloat\FunnyB{0}{1}% %D \definecolor[FunnyColor][r=\FunnyR,g=\FunnyG,b=\FunnyB]% %D \color[FunnyColor]} %D %D %\TreatFirstLine {\bf} {} {\FunnyCommand} {\FunnyCommand} %D The third and fourth argument can be used to gain special %D effects on the individual words. Of course one needs ... %D \stopbuffer %D %D \getbuffer %D to know a bit more about the macro package used to get real %D nice effects, but this example probably demonstrates the %D principles well. %D %D \typebuffer %D %D Like in dropped caps case, one can hide such treatments in a %D macro, like: %D %D \starttyping %D \def\MyTreatFirstLine% %D {\TreatFirstLine{\bf}{}{\FunnyCommand}{\FunnyCommand}} %D \stoptyping %D \macros %D {reshapebox} %D %D \startbuffer %D \beginofshapebox %D When using \CONTEXT, one can also apply this funny command %D to whole lines by using the reshape mechanism. Describing %D this interesting mechanism falls outside the scope of this %D module, so we only show the trick. This is an example of %D low level \CONTEXT\ functionality: it's all there, and it's %D stable, but not entirely meant for novice users. %D \endofshapebox %D %D \reshapebox{\FunnyCommand{\box\shapebox}} \flushshapebox %D \stopbuffer %D %D \getbuffer %D %D \typebuffer %D %D This mechanism permits hyphenation and therefore gives %D better results than the previously discussed macro %D \type{\TreatFirstLine}. %D \macros %D {TreatFirstCharacter} %D %D \startbuffer %D \TreatFirstCharacter{\bf\color[green]} Just to be %D \stopbuffer %D %D \getbuffer complete we also offer a very simple one %D character alternative, that is not that hard to understand: \def\TreatFirstCharacter#1#2% command, character {{#1{#2}}} %D A previous paragraph started with: %D %D \typebuffer %D \macros %D {StackCharacters} %D %D The next hack deals with vertical stacking. \def\StackCharacters#1#2#3#4% sequence vsize vskip command {\vbox #2 {\forgetall \baselineskip\zeropoint \def\StackCharacter##1{#4{##1}\cr\noalign{#3}}% \halign {\hss##\hss&##\cr \handletokens#1\with\StackCharacter\cr}}} %D \startbuffer %D \StackCharacters{CONTEXT}{}{\vskip.2ex}{\FunnyCommand} %D \stopbuffer %D %D Such a stack looks like: %D %D \startlinecorrection %D \hbox to \hsize %D {$\hss\bfd %D \vcenter{\StackCharacters{TEX} {}{\vskip.2ex}{\FunnyCommand}}% %D \hss %D \vcenter{\StackCharacters{CON} {}{\vskip.2ex}{\FunnyCommand}} %D \hss %D \vcenter{\StackCharacters{TEXT} {}{\vskip.2ex}{\FunnyCommand}} %D \hss %D \vcenter{\StackCharacters{CONTEXT}{}{\vskip.2ex}{\FunnyCommand}} %D \hss$} %D \stoplinecorrection %D %D and is typeset by saying: %D %D \typebuffer %D %D An alternative would have been %D %D \starttyping %D \StackCharacters {CONTEXT} {to 5cm} {\vfill} {\FunnyCommand} %D \stoptyping %D \macros %D {processtokens} %D %D At a lower level horizontal and vertical manipulations are %D already supported by: %D %D \starttyping %D \processtokens {begin} {between} {end} {space} {text} %D \stoptyping %D %D \startbuffer[a] %D \processtokens %D {\hbox to .5\hsize\bgroup} {\hfill} %D {\egroup} {\space} {LET'S HAVE} %D \stopbuffer %D %D \startbuffer[b] %D \processtokens %D {\vbox\bgroup\raggedcenter\hsize1em} %D {\vskip.25ex} {\egroup} {\strut} {FUN} %D \stopbuffer %D %D This macro is able to typeset: %D %D \leavevmode\hbox to \hsize %D {$\hfil\hfil %D \vcenter{\bf\getbuffer[a]}% %D \hfil %D \vcenter{\bfd\getbuffer[b]}% %D \hfil\hfil$} %D %D which was specified as: %D %D \typebuffer[a] %D \typebuffer[b] %D \macros %D {NormalizeFontHeight, NormalizeFontWidth, %D TheNormalizedFontSize} %D %D Next we introduce some font manipulation macros. When we %D want to typeset some text spread in a well defined area, it %D can be considered bad practice to manipulate character and %D word spacing. In such situations the next few macros can be %D of help: %D %D \starttyping %D \NormalizeFontHeight \name {sample text} {height} {font} %D \NormalizeFontWidth \name {sample text} {width} {font} %D \stoptyping %D %D These are implemented using an auxilliary macro: \def\NormalizeFontHeight{\NormalizeFontSize\ht} \def\NormalizeFontWidth {\NormalizeFontSize\wd} % \def\NormalizeFontSize#1#2#3#4#5% % {\bgroup % \dimen0=#4% #4 can be \ht0 or so % \setbox0\hbox{\definedfont[#5 at 10pt]#3}% % \ifdim\wd0>\zeropoint % \dimen2=#10 % #1 is \wd or \ht % \dimen4=10000pt % \divide\dimen4 \dimen2 % \divide\dimen0 \plusthousand % \dimen0=\number\dimen4\dimen0 % \xdef\TheNormalizedFontSize{\the\dimen0}% % \else % \dimen0\bodyfontsize % \fi % \definedfont[#5 at \the\dimen0]% % \expandafter % \egroup % \expandafter\font\expandafter#2\fontname\font\relax} % % the familiar struggle with accuracy forces us to use: \def\NormalizeFontSize#1#2#3#4#5% {\bgroup \dimen0=#4% #4 can be \ht0 or so \setbox0\hbox{\definedfont[#5 at 5pt]#3}% 10pt \ifdim\wd0>\zeropoint \dimen2=#10 % #1 is \wd or \ht \dimen4=\maxdimen % 10000pt \divide\dimen4 \dimen2 \divide\dimen0 1638 % 1000 \dimen0=\number\dimen4\dimen0 \divide \dimen0 \plustwo % ... \xdef\TheNormalizedFontSize{\the\dimen0}% \else \dimen0\bodyfontsize \fi % mkii % \definedfont[#5 at \the\dimen0]% % \expandafter % \egroup % \expandafter\font\expandafter#2\fontname\font\relax} % mkiv safe (file: prefix etc) \expanded{\egroup\def\noexpand#2{\definedfont[#5 at \the\dimen0]}}} %D Afterwards, we have access to the calculated size by: \let\TheNormalizedFontSize\!!zeropoint %D Extra: \def\WidthSpanningText#1#2#3% text width font {\hbox{\NormalizeFontWidth\temp{#1}{#2}{#3}\temp\the\everydefinedfont#1}} %D Consider for instance: %D %D \startbuffer %D \NormalizeFontHeight \tmp {X} {2\baselineskip} {cmr10} %D %D {\tmp To Be Or Not To Be} %D \stopbuffer %D %D \typebuffer %D %D This shows up as (we also show the baselines): %D %D {\showbaselines\getbuffer} %D %D The horizontal counterpart is: %D %D \startbuffer %D \NormalizeFontWidth \tmp {This Line Fits} {\hsize} {cmr10} %D %D \hbox{\tmp This Line Fits} %D \stopbuffer %D %D \typebuffer %D %D The calculated font scale is avaliable in the macro %D \type{\NormalizedFontSize}. %D %D \startlinecorrection %D \ruledhbox{\getbuffer} %D \stoplinecorrection %D %D One can of course combine these macros with the ones %D described earlier, like in: %D %D \starttyping %D \NormalizeFontHeight {text} \DroppedFont {2\baselineskip} {cmbx12} %D %D \def\NicelyDroppedCaps %D {\DroppedCaps %D {\color[green]} %D {\DroppedFont} %D {2pt} %D {\baselineskip} %D {2}} %D \stoptyping %D %D It's up to the reader to test this one. \unexpanded\def\FirstNCharacters#1#2% \FirstNCharacters{3}{fr{\"o}beln} {\bgroup \scratchcounter\zerocount \def\docommand##1% {\ifnum\scratchcounter=#1\else ##1\relax % catches ##1 = \"e and alike \advance\scratchcounter\plusone \fi} \handletokens#2\with\docommand \egroup} %D \macros %D {FittingText} %D %D First used in Pascal (demo-bbv): %D %D \startbuffer %D \ruledvbox{\FittingText{3cm}{1cm}{Serif}{24pt}{1pt}{1} %D {\veryraggedright %D \hangindent1em\hangafter1\relax %D \begstrut \dorecurse{8}{Bram Marta }\unskip \endstrut}} %D %D \ruledvbox{\FittingText{3cm}{1cm}{Serif}{24pt}{1pt}{1} %D {\raggedleft\begstrut Bram\\Marta \unskip\endstrut}} %D \stopbuffer %D %D \typebuffer %D %D \startlinecorrection %D \getbuffer %D \stoplinecorrection % #1 width #2 height #3 font #4 size #5 step #6 interlinie #7 text \long\def\FittingText#1#2#3#4#5#6#7% {\bgroup \forgetall \dontcomplain \setuptolerance[\v!verytolerant]% == \tolerance4500 \hsize#1% \def\\{\softbreak}% \!!heighta#4% \!!heightb#2% \doloop {\ifdim\!!heighta>\onepoint \expanded{\definefont[\s!dummy][#3 at \the\!!heighta][\c!interlinespace=#6]}% \getvalue\s!dummy \setbox\scratchbox\vbox{#7\endgraf}% \ifdim\ht\scratchbox>\!!heightb \advance\!!heighta-#5% \else \beginshapebox \unvcopy\scratchbox \endshapebox \global\dimen1\hsize \reshapebox {\setbox\shapebox\hbox{\unhbox\shapebox}% \ifdim\wd\shapebox>\dimen1 \global\dimen1\wd\shapebox \fi}% \ifdim\dimen1>\hsize \advance\!!heighta-#5% \else \exitloop \fi \fi \else \exitloop \fi}% %\writestatus{\strippedcsname\FittingText}{height: \the\!!heighta}% \unvbox\scratchbox \egroup} %D New: % \font width gap font spec text \def\NormalizeFontWidthSpread#1#2#3#4#5#6% {\global\setfalse\NFSpread \scratchdimen#3% \scratchdimen-.5\scratchdimen \advance\scratchdimen#2\relax \NormalizeFontWidth #1% {\def\+{\global\settrue\NFSpread\gobbleuntil\relax}% \def\\{\gobbleuntil\relax}% newline \setupspacing #6\relax}% {\scratchdimen}% {#4}% \ifconditional\NFSpread % de gap valt in de binding \else \definefont[\strippedcsname#1][#4 #5]% \fi} \def\SpreadGapText#1#2% {{\def\+{\kern#1}#2}} \def\GapText#1#2#3#4#5% width distance font spec title {\bgroup \NormalizeFontWidthSpread\DummyFont{#1}{#2}{#3}{#4}{#5}% \DummyFont\setupspacing\SpreadGapText{#2}{#5}\endgraf \egroup} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-def.mkii0000644000175000017500000001055314536300610024643 0ustar hillehille%D \module %D [ file=core-def, %D version=2002.05.07, %D title=\CONTEXT\ Core Macros, %D subtitle=Defaults, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Defaults} %D Here we collect settings that cannot be done earlier due to %D depedencies. More code will moved to this module later. \unprotect \usesymbols[mis,mvs] % 'glm' no longer needed due to lm \usesymbols[nav] \setupsymbolset[navigation 1] \setupinteraction[\c!symbolset=navigation 1] % initialization order: %appendtoks \initializeluainstances \to \everyjob \appendtoks \showcontextbanner \to \everyjob \appendtoks \initializenewlinechar \to \everyjob \appendtoks \checksystemcommandmode \to \everyjob \appendtoks \calculatecurrenttime \to \everyjob \appendtoks \loadsystemfiles \to \everyjob \appendtoks \loadoptionfile \to \everyjob % can load files ! \appendtoks \preloadfonts \to \everyjob \appendtoks \settopskip \to \everyjob \appendtoks \preloadlanguages \to \everyjob \appendtoks \preloadspecials \to \everyjob \appendtoks \openspecialfile \to \everyjob \appendtoks \openutilities \to \everyjob \appendtoks \splitjobfilename \to \everyjob \appendtoks \checknotes \to \everyjob % depends on bodyfont \appendtoks \initializeMPgraphics \to \everyjob % after loading system files \appendtoks \reportsystemcommandmode \to \everyjob \appendtoks \initializemainlanguage \to \everyjob \appendtoks \settrue\trackfilenames \to \everyjob \appendtoks \newbackgroundfalse \to \everyjob % global \ifdefined\initializepagecounters \appendtoks \initializepagecounters \to \everyjob \fi \appendtoks \directsetup{*runtime:options} \to \everyjob % we could erase them afterwards % order can change \appendtoks \directsetup{*runtime:modules} \to \everyjob % we could erase them afterwards % order can change \appendtoks \checkpreprocessor \to \everyjob %appendtoks \page[\v!last] \page \to \everybye % moved to core-job, we need to do this cleaner \appendtoks \ifarrangingpages\poparrangedpages\fi \to \everybye \appendtoks \registerfileinfo[end]\jobname \to \everybye \appendtoks \savenofpages \to \everybye \appendtoks \savenofsubpages \to \everybye \appendtoks \closeutilities \to \everygoodbye \appendtoks \stopcopyingblocks \to \everygoodbye \appendtoks \closespecialfile \to \everygoodbye \prependtoks \resetutilities \to \everystarttext % moved 28-02-2002 \prependtoks \loadtwopassdata \to \everystarttext % moved 28-02-2002 \appendtoks \checkreferences \to \everystarttext % new 04-12-1999 % \appendtoks\everyjob\expandafter{\the\everyjob\checkpreprocessor}\to\everydump % temporary here: % \in \at \about \from \over \unexpanded\def\arg{\mathortext\normalmatharg\normaltextarg} % brrr % normally one does not want this to happen nested, maybe there % is more; non public vars btw, will become conditionals \ifx\writetoregisterfalse\undefined \else \appendtoks \writetoregisterfalse \to \everybeforeutilityread \fi \ifx\writetolistfalse \undefined \else \appendtoks \writetolistfalse \to \everybeforeutilityread \fi \ifx\notesenabledfalse \undefined \else \appendtoks \notesenabledfalse \to \everybeforeutilityread \fi \def\synctexwarning {\ifdefined\synctex \ifnum\synctex=\zerocount \else \writeline \writestatus\m!systems{BEWARE: synctex functionality is enabled!}% \writeline \globallet\synctexwarning\relax \fi \fi} \prependtoks \synctexwarning \to \everyjob \prependtoks \synctexwarning \to \everystarttext \appendtoks \synctexwarning \to \everystoptext % last minute hacks \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-el.mkii0000644000175000017500000002334514536300610024504 0ustar hillehille%D \module %D [ file=enco-el, %D version=2005.08.24, %D title=\CONTEXT\ Encoding Macros, %D subtitle=EuroLetter, %D author={Several Users}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This EuroLetter encoding vector, also known as Dense Encoding is %D the result of discussion among users, most noticably Adam Lindsay, %D Mojka Miklavec, Patrick Gundlach, Taco Hoekwater and \unknown. %D It was a follow up of a thread started long ago where we %D discussed an encoding without the weird, never used symbols, but %D with as many characters as possible in order to support the utf-8 %D input regime. \startencoding[el] \definecasemaps 1 to 15 lc +16 uc 0 \definecasemaps 17 to 31 lc 0 uc -16 \definecasemaps 128 to 159 lc +32 uc 0 \definecasemaps 160 to 191 lc 0 uc -32 \definecasemaps 192 to 223 lc +32 uc 0 \definecasemaps 224 to 255 lc 0 uc -32 \definecasemap 92 92 124 \definecasemap 92 124 92 \definecharacter dotlessi 160 \definecharacter endash 32 \definecharacter emdash 16 \definecharacter aeligature 230 \definecharacter AEligature 198 \definecharacter oeligature 247 \definecharacter OEligature 215 \definecharacter ssharp 38 \definecharacter thorn 254 \definecharacter Thorn 222 \definecharacter eth 240 \definecharacter Eth 208 \definecharacter exclamdown 42 \definecharacter questiondown 43 \definecharacter quotedbl 35 \definecharacter quotedblbase 36 \definecharacter quotedblleft 34 \definecharacter quotedblright 35 \definecharacter quotesingle 39 \definecharacter quotesinglebase 0 \definecharacter quoteleft 96 \definecharacter quoteright 39 \definecharacter guilsingleleft 60 \definecharacter guilsingleright 62 \definecharacter leftguillemot 123 \definecharacter rightguillemot 125 \definecharacter Acircumflex 194 \definecharacter acircumflex 226 %definecharacter Ccircumflex {\buildtextaccent\textcircumflex C} %definecharacter ccircumflex {\buildtextaccent\textcircumflex c} \definecharacter Ecircumflex 202 \definecharacter ecircumflex 234 %definecharacter Gcircumflex {\buildtextaccent\textcircumflex G} %definecharacter gcircumflex {\buildtextaccent\textcircumflex g} %definecharacter Hcircumflex {\buildtextaccent\textcircumflex H} %definecharacter hcircumflex {\buildtextaccent\textcircumflex h} \definecharacter Icircumflex 206 \definecharacter icircumflex 238 %definecharacter Jcircumflex {\buildtextaccent\textcircumflex \dotlessJ} %definecharacter jcircumflex {\buildtextaccent\textcircumflex \dotlessj} \definecharacter Ocircumflex 212 \definecharacter ocircumflex 244 %definecharacter Scircumflex {\buildtextaccent\textcircumflex S} %definecharacter scircumflex {\buildtextaccent\textcircumflex s} \definecharacter Ucircumflex 219 \definecharacter ucircumflex 251 \definecharacter Wcircumflex 154 \definecharacter wcircumflex 186 \definecharacter Ycircumflex 156 \definecharacter ycircumflex 188 \definecharacter Agrave 192 \definecharacter agrave 224 \definecharacter Egrave 200 \definecharacter egrave 232 \definecharacter Igrave 204 \definecharacter igrave 236 \definecharacter Ograve 210 \definecharacter ograve 242 \definecharacter Ugrave 217 \definecharacter ugrave 249 \definecharacter Ygrave 155 \definecharacter ygrave 187 \definecharacter Atilde 195 \definecharacter atilde 227 %definecharacter Itilde {\buildtextaccent\texttilde \dotlessI} %definecharacter itilde {\buildtextaccent\texttilde \dotlessi} \definecharacter Ntilde 209 \definecharacter ntilde 241 \definecharacter Otilde 213 \definecharacter otilde 245 %definecharacter Utilde {\buildtextaccent\texttilde U} %definecharacter utilde {\buildtextaccent\texttilde u} %definecharacter Ytilde {\buildtextaccent\texttilde Y} %definecharacter ytilde {\buildtextaccent\texttilde y} \definecharacter Adiaeresis 196 \definecharacter adiaeresis 228 \definecharacter Ediaeresis 203 \definecharacter ediaeresis 235 \definecharacter Idiaeresis 207 \definecharacter idiaeresis 239 \definecharacter Odiaeresis 214 \definecharacter odiaeresis 246 \definecharacter Udiaeresis 220 \definecharacter udiaeresis 252 \definecharacter Ydiaeresis 223 \definecharacter ydiaeresis 255 \definecharacter Aacute 193 \definecharacter aacute 225 \definecharacter Cacute 4 \definecharacter cacute 20 \definecharacter Eacute 201 \definecharacter eacute 233 \definecharacter Iacute 205 \definecharacter iacute 237 \definecharacter Lacute 132 \definecharacter lacute 164 \definecharacter Nacute 136 \definecharacter nacute 168 \definecharacter Oacute 211 \definecharacter oacute 243 \definecharacter Racute 141 \definecharacter racute 173 \definecharacter Sacute 144 \definecharacter sacute 176 \definecharacter Uacute 218 \definecharacter uacute 250 \definecharacter Yacute 221 \definecharacter yacute 253 \definecharacter Zacute 157 \definecharacter zacute 189 \definecharacter Dstroke 8 \definecharacter dstroke 24 \definecharacter Hstroke 92 \definecharacter hstroke 124 %definecharacter Tstroke {T} %definecharacter tstroke {t} \definecharacter Cdotaccent 6 \definecharacter cdotaccent 22 \definecharacter Edotaccent 10 \definecharacter edotaccent 26 \definecharacter Gdotaccent 15 \definecharacter gdotaccent 31 \definecharacter Idotaccent 128 %definecharacter idotaccent {\buildtextaccent\textdotaccent \dotlessi} \definecharacter Zdotaccent 159 \definecharacter zdotaccent 191 \definecharacter Amacron 2 \definecharacter amacron 18 \definecharacter Emacron 11 \definecharacter emacron 27 \definecharacter Imacron 129 \definecharacter imacron 161 \definecharacter Omacron 140 \definecharacter omacron 172 \definecharacter Umacron 152 \definecharacter umacron 184 \definecharacter Ccedilla 199 \definecharacter ccedilla 231 \definecharacter Scedilla 146 \definecharacter scedilla 178 \definecharacter Gcommaaccent 14 \definecharacter gcommaaccent 30 \definecharacter Kcommaaccent 131 \definecharacter kcommaaccent 163 \definecharacter Lcommaaccent 135 \definecharacter lcommaaccent 167 \definecharacter Ncommaaccent 138 \definecharacter ncommaaccent 170 \definecharacter Rcommaaccent 143 \definecharacter rcommaaccent 175 %definecharacter Tcedilla 149 % there is no tcedilla in encoding %definecharacter tcedilla 181 \definecharacter Scommaaccent 147 \definecharacter scommaaccent 179 \definecharacter Tcommaaccent 149 \definecharacter tcommaaccent 181 \definecharacter Ohungarumlaut 139 \definecharacter ohungarumlaut 171 \definecharacter Uhungarumlaut 150 \definecharacter uhungarumlaut 182 \definecharacter Aogonek 3 \definecharacter aogonek 19 \definecharacter Eogonek 12 \definecharacter eogonek 28 \definecharacter Iogonek 130 \definecharacter iogonek 162 \definecharacter Uogonek 153 \definecharacter uogonek 185 \definecharacter Aring 197 \definecharacter aring 229 \definecharacter Uring 151 \definecharacter uring 183 \definecharacter Abreve 1 \definecharacter abreve 17 %definecharacter Ebreve {\buildtextaccent\textbreve E} %definecharacter ebreve {\buildtextaccent\textbreve e} \definecharacter Gbreve 13 \definecharacter gbreve 29 %definecharacter Ibreve {\buildtextaccent\textbreve \dotlessI} %definecharacter ibreve {\buildtextaccent\textbreve \dotlessi} %definecharacter Obreve {\buildtextaccent\textbreve O} %definecharacter obreve {\buildtextaccent\textbreve o} %definecharacter Ubreve {\buildtextaccent\textbreve U} %definecharacter ubreve {\buildtextaccent\textbreve u} \definecharacter Ccaron 5 \definecharacter ccaron 21 \definecharacter Dcaron 7 \definecharacter dcaron 23 \definecharacter Ecaron 9 \definecharacter ecaron 25 \definecharacter Lcaron 133 \definecharacter lcaron 165 \definecharacter Ncaron 137 \definecharacter ncaron 169 \definecharacter Rcaron 142 \definecharacter rcaron 174 \definecharacter Scaron 145 \definecharacter scaron 177 \definecharacter Tcaron 148 \definecharacter tcaron 180 %definecharacter Ycaron {\buildtextaccent\textcaron Y} %definecharacter ycaron {\buildtextaccent\textcaron y} \definecharacter Zcaron 158 \definecharacter zcaron 190 \definecharacter Lstroke 134 \definecharacter lstroke 166 \definecharacter Ostroke 216 \definecharacter ostroke 248 \stopencoding context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-def.mkii0000644000175000017500000011163014536300610024635 0ustar hillehille%D \module %D [ file=enco-def, %D version=2000.05.07, % 2000.20.12, % split from less verbose base file %D title=\CONTEXT\ Encoding Macros, %D subtitle=Default Character Definitions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Instead of overloading plain \TEX\ macros (and keeping them %D available as an escape), we now use the more verbose %D definitions in this file. Since memory is less a problem %D these days, this verbosity has only a small price, but we %D gain readability. The following definitions are based on %D usage of the the original \TEX\ fonts, where composed %D characters were not part of the design. So, occasionally %D we have to revert to hacks. Thanks to all those users who %D helped me to fill in the details. \startencoding[default] \definecharacter textcomma , \definecharacter textperiod . \definecharacter textacute 19 \definecharacter textbottomdot 46 \definecharacter textbreve 21 \definecharacter textcaron 20 \definecharacter textcedilla 24 \definecharacter textcircumflex 94 \definecharacter textdiaeresis 127 \definecharacter textdotaccent 95 \definecharacter textgrave 18 \definecharacter texthungarumlaut 125 \definecharacter textmacron 22 \definecharacter textogonek 24 % fake \definecharacter textring 23 \definecharacter texttilde 126 \definecharacter textat 64 % for mojca \definecharacter textbottomcomma {\hbox{\lower.35ex\hbox{\tx,}}} % for mojca \definecharacter dotlessi {\char"10 } \definecharacter dotlessj {\char"11 } \definecharacter dotlessI {I} \definecharacter dotlessJ {J} \definecharacter endash 123 \definecharacter emdash 124 \definecharacter aeligature {\char26 } % "1A \definecharacter AEligature {\char29 } % "1D \definecharacter ijligature {ij} \definecharacter IJligature {IJ} \definecharacter oeligature {\char27 } % "1B \definecharacter OEligature {\char30 } % "1E \definecharacter ssharp {\char25 } % "19 \definecharacter Ssharp {SS} \definecharacter thorn {\unknownchar} \definecharacter Thorn {\unknownchar} \definecharacter eth {\unknownchar} % mojca prefers this (was \dstroke) %definecharacter Eth {\unknownchar} \definecharacter Eth {\Dstroke} % mojca prefers this too \definecharacter exclamdown 60 \definecharacter questiondown 62 \definecharacter copyright {\encircled{\txx C}} \definecharacter registered {\encircled{\txx R}} \definecharacter trademark {\high{\txx TM}} \definecharacter sectionmark {\mathematics{\mathhexbox278}} \definecharacter paragraphmark {\mathematics{\mathhexbox27B}} \definecharacter onequarter {\vulgarfraction{1}{4}} \definecharacter onehalf {\vulgarfraction{1}{2}} \definecharacter threequarter {\vulgarfraction{3}{4}} \definecharacter onesuperior {\high{1}} \definecharacter twosuperior {\high{2}} \definecharacter threesuperior {\high{3}} \definecharacter textcent {c} \definecharacter textcurrency {\unknownchar} \definecharacter textdollar {\fakedollar} \definecharacter texteuro {E} \definecharacter textflorin {\fakeflorin} \definecharacter textsterling {\fakesterling} \definecharacter textyen {Y} \definecharacter ordfeminine {\high{\txx a}} \definecharacter ordmasculine {\high{\txx o}} \definecharacter percent {\fakepercent} \definecharacter perthousand {\fakeperthousand} \definecharacter softhyphen 45 \definecharacter periodcentered {\hbox{\mathematics\cdot}} \definecharacter compoundwordmark 23 \definecharacter textasciicircum 94 \definecharacter textasciitilde 126 \definecharacter textslash 47 \definecharacter textbackslash {\tex{}} % todo \definecharacter textbraceleft {\mathematics\{} \definecharacter textbraceright {\mathematics\}} \definecharacter textunderscore {\fakeunderscore} \definecharacter textvisiblespace {\fakevisiblespace} \definecharacter textbrokenbar {\mathematics\vert} \definecharacter textbullet {\mathematics\bullet} \definecharacter textdag {\mathematics\dag} \definecharacter textddag {\mathematics\ddag} \definecharacter textdegree {\mathematics{{}^{\circ}}} \definecharacter textdiv {\mathematics\div} \definecharacter textellipsis {\mathematics\cdots} \definecharacter textfraction {\mathematics/} \definecharacter textlognot {\mathematics\neg} \definecharacter textminus {\mathematics-} \definecharacter textmu {\mathematics\mu} \definecharacter textmultiply {\mathematics\times} \definecharacter textpm {\mathematics\pm} \definecharacter quotedbl {"} \definecharacter quotedblbase {,,} \definecharacter quotedblleft {``} \definecharacter quotedblright {''} \definecharacter quotesingle {`} \definecharacter quotesinglebase {,} \definecharacter quoteleft {`} \definecharacter quoteright {'} \definecharacter guilsingleleft {\fakeleftsubguillemot } \definecharacter guilsingleright {\fakerightsubguillemot} \definecharacter leftguillemot {\fakeleftguillemot } \definecharacter rightguillemot {\fakerightguillemot} \definecharacter Acircumflex {\buildtextaccent\textcircumflex A} \definecharacter acircumflex {\buildtextaccent\textcircumflex a} \definecharacter Ccircumflex {\buildtextaccent\textcircumflex C} \definecharacter ccircumflex {\buildtextaccent\textcircumflex c} \definecharacter Ecircumflex {\buildtextaccent\textcircumflex E} \definecharacter ecircumflex {\buildtextaccent\textcircumflex e} \definecharacter Gcircumflex {\buildtextaccent\textcircumflex G} \definecharacter gcircumflex {\buildtextaccent\textcircumflex g} \definecharacter Hcircumflex {\buildtextaccent\textcircumflex H} \definecharacter hcircumflex {\buildtextaccent\textcircumflex h} \definecharacter Icircumflex {\buildtextaccent\textcircumflex \dotlessI} \definecharacter icircumflex {\buildtextaccent\textcircumflex \dotlessi} \definecharacter Jcircumflex {\buildtextaccent\textcircumflex \dotlessJ} \definecharacter jcircumflex {\buildtextaccent\textcircumflex \dotlessj} \definecharacter Ocircumflex {\buildtextaccent\textcircumflex O} \definecharacter ocircumflex {\buildtextaccent\textcircumflex o} \definecharacter Scircumflex {\buildtextaccent\textcircumflex S} \definecharacter scircumflex {\buildtextaccent\textcircumflex s} \definecharacter Ucircumflex {\buildtextaccent\textcircumflex U} \definecharacter ucircumflex {\buildtextaccent\textcircumflex u} \definecharacter Wcircumflex {\buildtextaccent\textcircumflex W} \definecharacter wcircumflex {\buildtextaccent\textcircumflex w} \definecharacter Ycircumflex {\buildtextaccent\textcircumflex Y} \definecharacter ycircumflex {\buildtextaccent\textcircumflex y} \definecharacter Agrave {\buildtextaccent\textgrave A} \definecharacter agrave {\buildtextaccent\textgrave a} \definecharacter Egrave {\buildtextaccent\textgrave E} \definecharacter egrave {\buildtextaccent\textgrave e} \definecharacter Igrave {\buildtextaccent\textgrave \dotlessI} \definecharacter igrave {\buildtextaccent\textgrave \dotlessi} \definecharacter Ograve {\buildtextaccent\textgrave O} \definecharacter ograve {\buildtextaccent\textgrave o} \definecharacter Ugrave {\buildtextaccent\textgrave U} \definecharacter ugrave {\buildtextaccent\textgrave u} \definecharacter Ygrave {\buildtextaccent\textgrave Y} \definecharacter ygrave {\buildtextaccent\textgrave y} \definecharacter Atilde {\buildtextaccent\texttilde A} \definecharacter atilde {\buildtextaccent\texttilde a} \definecharacter Itilde {\buildtextaccent\texttilde \dotlessI} \definecharacter itilde {\buildtextaccent\texttilde \dotlessi} \definecharacter Ntilde {\buildtextaccent\texttilde N} \definecharacter ntilde {\buildtextaccent\texttilde n} \definecharacter Otilde {\buildtextaccent\texttilde O} \definecharacter otilde {\buildtextaccent\texttilde o} \definecharacter Utilde {\buildtextaccent\texttilde U} \definecharacter utilde {\buildtextaccent\texttilde u} \definecharacter Ytilde {\buildtextaccent\texttilde Y} \definecharacter ytilde {\buildtextaccent\texttilde y} \definecharacter Adiaeresis {\buildtextaccent\textdiaeresis A} \definecharacter adiaeresis {\buildtextaccent\textdiaeresis a} \definecharacter Ediaeresis {\buildtextaccent\textdiaeresis E} \definecharacter ediaeresis {\buildtextaccent\textdiaeresis e} \definecharacter Idiaeresis {\buildtextaccent\textdiaeresis \dotlessI} \definecharacter idiaeresis {\buildtextaccent\textdiaeresis \dotlessi} \definecharacter Odiaeresis {\buildtextaccent\textdiaeresis O} \definecharacter odiaeresis {\buildtextaccent\textdiaeresis o} \definecharacter Udiaeresis {\buildtextaccent\textdiaeresis U} \definecharacter udiaeresis {\buildtextaccent\textdiaeresis u} \definecharacter Ydiaeresis {\buildtextaccent\textdiaeresis Y} \definecharacter ydiaeresis {\buildtextaccent\textdiaeresis y} \definecharacter Aacute {\buildtextaccent\textacute A} \definecharacter aacute {\buildtextaccent\textacute a} \definecharacter Cacute {\buildtextaccent\textacute C} \definecharacter cacute {\buildtextaccent\textacute c} \definecharacter Eacute {\buildtextaccent\textacute E} \definecharacter eacute {\buildtextaccent\textacute e} \definecharacter Iacute {\buildtextaccent\textacute \dotlessI} \definecharacter iacute {\buildtextaccent\textacute \dotlessi} \definecharacter Lacute {\buildtextaccent\textacute L} \definecharacter lacute {\buildtextaccent\textacute l} \definecharacter Nacute {\buildtextaccent\textacute N} \definecharacter nacute {\buildtextaccent\textacute n} \definecharacter Oacute {\buildtextaccent\textacute O} \definecharacter oacute {\buildtextaccent\textacute o} \definecharacter Racute {\buildtextaccent\textacute R} \definecharacter racute {\buildtextaccent\textacute r} \definecharacter Sacute {\buildtextaccent\textacute S} \definecharacter sacute {\buildtextaccent\textacute s} \definecharacter Uacute {\buildtextaccent\textacute U} \definecharacter uacute {\buildtextaccent\textacute u} \definecharacter Yacute {\buildtextaccent\textacute Y} \definecharacter yacute {\buildtextaccent\textacute y} \definecharacter Zacute {\buildtextaccent\textacute Z} \definecharacter zacute {\buildtextaccent\textacute z} %definecharacter Dstroke {D} %definecharacter dstroke {d} \definecharacter dstroke {\pseudoencodeddj} \definecharacter Dstroke {\pseudoencodedDJ} \definecharacter Hstroke {H} \definecharacter hstroke {h} \definecharacter Tstroke {T} \definecharacter tstroke {t} \definecharacter Cdotaccent {\buildtextaccent\textdotaccent C} \definecharacter cdotaccent {\buildtextaccent\textdotaccent c} \definecharacter Edotaccent {\buildtextaccent\textdotaccent E} \definecharacter edotaccent {\buildtextaccent\textdotaccent e} \definecharacter Gdotaccent {\buildtextaccent\textdotaccent G} \definecharacter gdotaccent {\buildtextaccent\textdotaccent g} \definecharacter Idotaccent {\buildtextaccent\textdotaccent \dotlessI} \definecharacter idotaccent {\buildtextaccent\textdotaccent \dotlessi} \definecharacter Zdotaccent {\buildtextaccent\textdotaccent Z} \definecharacter zdotaccent {\buildtextaccent\textdotaccent z} \definecharacter Amacron {\buildtextaccent\textmacron A} \definecharacter amacron {\buildtextaccent\textmacron a} \definecharacter Emacron {\buildtextaccent\textmacron E} \definecharacter emacron {\buildtextaccent\textmacron e} \definecharacter Imacron {\buildtextaccent\textmacron \dotlessI} \definecharacter imacron {\buildtextaccent\textmacron \dotlessi} \definecharacter Omacron {\buildtextaccent\textmacron O} \definecharacter omacron {\buildtextaccent\textmacron o} \definecharacter Umacron {\buildtextaccent\textmacron U} \definecharacter umacron {\buildtextaccent\textmacron u} \definecharacter Ccedilla {\buildtextcedilla C} \definecharacter ccedilla {\buildtextcedilla c} \definecharacter Kcedilla {\buildtextcedilla K} \definecharacter kcedilla {\buildtextcedilla k} \definecharacter Lcedilla {\buildtextcedilla L} \definecharacter lcedilla {\buildtextcedilla l} \definecharacter Ncedilla {\buildtextcedilla N} \definecharacter ncedilla {\buildtextcedilla n} \definecharacter Rcedilla {\buildtextcedilla R} \definecharacter rcedilla {\buildtextcedilla r} \definecharacter Scedilla {\buildtextcedilla S} \definecharacter scedilla {\buildtextcedilla s} \definecharacter Tcedilla {\buildtextcedilla T} \definecharacter tcedilla {\buildtextcedilla t} \definecharacter Ohungarumlaut {\buildtextaccent\texthungarumlaut O} \definecharacter ohungarumlaut {\buildtextaccent\texthungarumlaut o} \definecharacter Uhungarumlaut {\buildtextaccent\texthungarumlaut U} \definecharacter uhungarumlaut {\buildtextaccent\texthungarumlaut u} \definecharacter Aogonek {\buildtextogonek A} \definecharacter aogonek {\buildtextogonek a} \definecharacter Eogonek {\buildtextogonek E} \definecharacter eogonek {\buildtextogonek e} \definecharacter Iogonek {\buildtextogonek I} \definecharacter iogonek {\buildtextogonek i} \definecharacter Uogonek {\buildtextogonek U} \definecharacter uogonek {\buildtextogonek u} \definecharacter Aring {\buildtextaccent\textring A} \definecharacter aring {\buildtextaccent\textring a} \definecharacter Uring {\buildtextaccent\textring U} \definecharacter uring {\buildtextaccent\textring u} \definecharacter Abreve {\buildtextaccent\textbreve A} \definecharacter abreve {\buildtextaccent\textbreve a} \definecharacter Ebreve {\buildtextaccent\textbreve E} \definecharacter ebreve {\buildtextaccent\textbreve e} \definecharacter Gbreve {\buildtextaccent\textbreve G} \definecharacter gbreve {\buildtextaccent\textbreve g} \definecharacter Ibreve {\buildtextaccent\textbreve \dotlessI} \definecharacter ibreve {\buildtextaccent\textbreve \dotlessi} \definecharacter Obreve {\buildtextaccent\textbreve O} \definecharacter obreve {\buildtextaccent\textbreve o} \definecharacter Ubreve {\buildtextaccent\textbreve U} \definecharacter ubreve {\buildtextaccent\textbreve u} \definecharacter Ccaron {\buildtextaccent\textcaron C} \definecharacter ccaron {\buildtextaccent\textcaron c} \definecharacter Dcaron {\buildtextaccent\textcaron D} \definecharacter dcaron {\buildtextaccent\textcaron d} \definecharacter Ecaron {\buildtextaccent\textcaron E} \definecharacter ecaron {\buildtextaccent\textcaron e} \definecharacter Lcaron {\buildtextaccent\textcaron L} \definecharacter lcaron {\buildtextaccent\textcaron l} \definecharacter Ncaron {\buildtextaccent\textcaron N} \definecharacter ncaron {\buildtextaccent\textcaron n} \definecharacter Rcaron {\buildtextaccent\textcaron R} \definecharacter rcaron {\buildtextaccent\textcaron r} \definecharacter Scaron {\buildtextaccent\textcaron S} \definecharacter scaron {\buildtextaccent\textcaron s} \definecharacter Tcaron {\buildtextaccent\textcaron T} \definecharacter tcaron {\buildtextaccent\textcaron t} \definecharacter Ycaron {\buildtextaccent\textcaron Y} \definecharacter ycaron {\buildtextaccent\textcaron y} \definecharacter Zcaron {\buildtextaccent\textcaron Z} \definecharacter zcaron {\buildtextaccent\textcaron z} \definecharacter Lstroke {\hsmash{\char32}L} \definecharacter lstroke {\hsmash{\char32}l} \definecharacter Ostroke {\char31 } % "1F \definecharacter ostroke {\char28 } % "1C \definecharacter aumlaut {\moveaccent{-.1ex}\adiaeresis} \definecharacter eumlaut {\moveaccent{-.1ex}\ediaeresis} \definecharacter iumlaut {\moveaccent{-.1ex}\idiaeresis} \definecharacter oumlaut {\moveaccent{-.1ex}\odiaeresis} \definecharacter uumlaut {\moveaccent{-.1ex}\udiaeresis} \definecharacter Aumlaut {\smashaccent\Adiaeresis} \definecharacter Eumlaut {\smashaccent\Ediaeresis} \definecharacter Iumlaut {\smashaccent\Idiaeresis} \definecharacter Oumlaut {\smashaccent\Odiaeresis} \definecharacter Uumlaut {\smashaccent\Udiaeresis} \definecharacter scommaaccent {\buildtextbottomcomma s} \definecharacter Scommaaccent {\buildtextbottomcomma S} \definecharacter tcommaaccent {\buildtextbottomcomma t} \definecharacter Tcommaaccent {\buildtextbottomcomma T} \definecharacter lcommaaccent {\buildtextbottomcomma l} \definecharacter Lcommaaccent {\buildtextbottomcomma L} \definecharacter Etilde {\buildtextaccent\texttilde E} \definecharacter etilde {\buildtextaccent\texttilde e} \definecharacter Ahook {A} \definecharacter ahook {a} \definecharacter Ehook {E} \definecharacter ehook {e} \definecharacter Ihook {I} \definecharacter ihook {i} \definecharacter Ohook {O} \definecharacter ohook {o} \definecharacter Uhook {U} \definecharacter uhook {u} \definecharacter Yhook {Y} \definecharacter yhook {y} \definecharacter Acircumflexgrave {\Acircumflex} \definecharacter Acircumflexacute {\Acircumflex} \definecharacter Acircumflextilde {\Acircumflex} \definecharacter Acircumflexhook {\Acircumflex} \definecharacter acircumflexgrave {\acircumflex} \definecharacter acircumflexacute {\acircumflex} \definecharacter acircumflextilde {\acircumflex} \definecharacter acircumflexhook {\acircumflex} \definecharacter Ecircumflexgrave {\Ecircumflex} \definecharacter Ecircumflexacute {\Ecircumflex} \definecharacter Ecircumflextilde {\Ecircumflex} \definecharacter Ecircumflexhook {\Ecircumflex} \definecharacter ecircumflexgrave {\ecircumflex} \definecharacter ecircumflexacute {\ecircumflex} \definecharacter ecircumflextilde {\ecircumflex} \definecharacter ecircumflexhook {\ecircumflex} \definecharacter Ocircumflexgrave {\Ocircumflex} \definecharacter Ocircumflexacute {\Ocircumflex} \definecharacter Ocircumflextilde {\Ocircumflex} \definecharacter Ocircumflexhook {\Ocircumflex} \definecharacter ocircumflexgrave {\ocircumflex} \definecharacter ocircumflexacute {\ocircumflex} \definecharacter ocircumflextilde {\ocircumflex} \definecharacter ocircumflexhook {\ocircumflex} \definecharacter Abrevegrave {\Abreve} \definecharacter Abreveacute {\Abreve} \definecharacter Abrevetilde {\Abreve} \definecharacter Abrevehook {\Abreve} \definecharacter abrevegrave {\abreve} \definecharacter abreveacute {\abreve} \definecharacter abrevetilde {\abreve} \definecharacter abrevehook {\abreve} \definecharacter Adotbelow {\buildtextbottomdot A} \definecharacter adotbelow {\buildtextbottomdot a} \definecharacter Edotbelow {\buildtextbottomdot E} \definecharacter edotbelow {\buildtextbottomdot e} \definecharacter Idotbelow {\buildtextbottomdot I} \definecharacter idotbelow {\buildtextbottomdot i} \definecharacter Odotbelow {\buildtextbottomdot O} \definecharacter odotbelow {\buildtextbottomdot o} \definecharacter Udotbelow {\buildtextbottomdot U} \definecharacter udotbelow {\buildtextbottomdot u} \definecharacter Ydotbelow {\buildtextbottomdot Y} \definecharacter ydotbelow {\buildtextbottomdot y} \definecharacter Ohorndotbelow {\buildtextbottomdot\Ohorn} \definecharacter ohorndotbelow {\buildtextbottomdot\ohorn} \definecharacter Uhorndotbelow {\buildtextbottomdot\Uhorn} \definecharacter uhorndotbelow {\buildtextbottomdot\uhorn} \definecharacter Acircumflexdotbelow {\buildtextbottomdot\Acircumflex} \definecharacter acircumflexdotbelow {\buildtextbottomdot\acircumflex} \definecharacter Ecircumflexdotbelow {\buildtextbottomdot\Ecircumflex} \definecharacter ecircumflexdotbelow {\buildtextbottomdot\ecircumflex} \definecharacter Ocircumflexdotbelow {\buildtextbottomdot\Ocircumflex} \definecharacter ocircumflexdotbelow {\buildtextbottomdot\ocircumflex} \definecharacter Abrevedotbelow {\buildtextbottomdot\Abreve} \definecharacter abrevedotbelow {\buildtextbottomdot\abreve} \definecharacter Ohorn {O} \definecharacter Ohorngrave {\Ograve} \definecharacter Ohornacute {\Oacute} \definecharacter Ohorntilde {\Otilde} \definecharacter Ohornhook {O} \definecharacter ohorn {o} \definecharacter ohorngrave {\ograve} \definecharacter ohornacute {\oacute} \definecharacter ohorntilde {\otilde} \definecharacter ohornhook {o} \definecharacter Uhorn {U} \definecharacter Uhorngrave {\Ugrave} \definecharacter Uhornacute {\Uacute} \definecharacter Uhorntilde {\Utilde} \definecharacter Uhornhook {U} \definecharacter uhorn {u} \definecharacter uhorngrave {\ugrave} \definecharacter uhornacute {\uacute} \definecharacter uhorntilde {\utilde} \definecharacter uhornhook {u} \stopencoding %D Needed for transliterated chinese (provided by Tobias Burnus). \startencoding[default] \definecharacter acaron {\buildtextaccent\textcaron a} % U+01CE \definecharacter icaron {\buildtextaccent\textcaron \dotlessi} % U+01D0 \definecharacter ocaron {\buildtextaccent\textcaron o} % U+01D2 \definecharacter ucaron {\buildtextaccent\textcaron u} % U+01D4 \stopencoding %D Greek (moved to here): \startencoding[default] % Uppercase Greek letters \definecharacter greekAlpha {\Alpha} \definecharacter greekBeta {\Beta} \definecharacter greekGamma {\Gamma} \definecharacter greekDelta {\Delta} \definecharacter greekEpsilon {\Epsilon} \definecharacter greekZeta {\Zeta} \definecharacter greekEta {\Eta} \definecharacter greekTheta {\Theta} \definecharacter greekIota {\Iota} \definecharacter greekKappa {\Kappa} \definecharacter greekLambda {\Lambda} \definecharacter greekMu {\Mu} \definecharacter greekNu {\Nu} \definecharacter greekXi {\Xi} \definecharacter greekOmicron {\Omicron} \definecharacter greekPi {\Pi} \definecharacter greekRho {\Rho} \definecharacter greekSigma {\Sigma} \definecharacter greekTau {\Tau} \definecharacter greekUpsilon {\Upsilon} \definecharacter greekPhi {\Phi} \definecharacter greekChi {\Chi} \definecharacter greekPsi {\Psi} \definecharacter greekOmega {\Omega} % Lowercase Greek letters \definecharacter greekalpha {\alpha} \definecharacter greekbeta {\beta} \definecharacter greekbetaalt {\beta} \definecharacter greekgamma {\gamma} \definecharacter greekdelta {\delta} \definecharacter greekepsilon {\varepsilon} \definecharacter greekepsilonalt {\epsilon} \definecharacter greekzeta {\zeta} \definecharacter greeketa {\eta} \definecharacter greektheta {\theta} \definecharacter greekthetaalt {\vartheta} \definecharacter greekiota {\iota} \definecharacter greekkappa {\kappa} \definecharacter greeklambda {\lambda} \definecharacter greekmu {\mu} \definecharacter greeknu {\nu} \definecharacter greekxi {\xi} \definecharacter greekomicron {\omicron} \definecharacter greekpi {\pi} \definecharacter greekrho {\rho} \definecharacter greeksigma {\sigma} \definecharacter greekfinalsigma {\varsigma} \definecharacter greektau {\tau} \definecharacter greekupsilon {\upsilon} \definecharacter greekphi {\varphi} \definecharacter greekphialt {\phi} \definecharacter greekchi {\chi} \definecharacter greekpsi {\psi} \definecharacter greekomega {\omega} % Accented Uppercase Greek letters \definecharacter greekAlphatonos {'A} \definecharacter greekEpsilontonos {'E} \definecharacter greekEtatonos {'H} \definecharacter greekIotatonos {'I} \definecharacter greekOmicrontonos {'O} \definecharacter greekUpsilontonos {'U} \definecharacter greekOmegatonos {'W} \definecharacter greekIotadialytika {"I} \definecharacter greekUpsilondialytika {"U} % Accented Lowercase Greek letters \definecharacter greekalphatonos {'a} \definecharacter greekepsilontonos {'e} \definecharacter greeketatonos {'h} \definecharacter greekiotatonos {'i} \definecharacter greekomicrontonos {'o} \definecharacter greekupsilontonos {'u} \definecharacter greekomegatonos {'w} \definecharacter greekiotadialytika {"i} \definecharacter greekupsilondialytika {"u} \definecharacter greekiotadialytikatonos {'"i} \definecharacter greekupsilondialytikatonos {'"u} % Miscellaneous Greek symbols \definecharacter greekleftquot {((} \definecharacter greekrightquot {))} \definecharacter greektonos {'} \definecharacter greekdialytikatonos {'"} \definecharacter greekapostrophos {''} \stopencoding %D Cyrillic (moved to here): \startencoding[default] \definecharacter cyrillicA {A} \definecharacter cyrillicB {B} \definecharacter cyrillicV {V} \definecharacter cyrillicG {G} \definecharacter cyrillicD {D} \definecharacter cyrillicE {E} \definecharacter cyrillicZH {ZH} \definecharacter cyrillicZ {Z} \definecharacter cyrillicI {I} \definecharacter cyrillicISHRT {ISHRT} \definecharacter cyrillicK {K} \definecharacter cyrillicL {L} \definecharacter cyrillicM {M} \definecharacter cyrillicN {N} \definecharacter cyrillicO {O} \definecharacter cyrillicP {P} \definecharacter cyrillicR {R} \definecharacter cyrillicS {S} \definecharacter cyrillicT {T} \definecharacter cyrillicU {U} \definecharacter cyrillicF {F} \definecharacter cyrillicH {H} \definecharacter cyrillicC {C} \definecharacter cyrillicCH {CH} \definecharacter cyrillicSH {SH} \definecharacter cyrillicSHCH {SHCH} \definecharacter cyrillicHRDSN {HRDSN} \definecharacter cyrillicERY {ERY} \definecharacter cyrillicSFTSN {SFTSN} \definecharacter cyrillicEREV {EREV} \definecharacter cyrillicYU {YU} \definecharacter cyrillicYA {YA} \definecharacter cyrillicGUP {GUP} \definecharacter cyrillicGHCRS {GHCRS} \definecharacter cyrillicDJE {DJE} \definecharacter cyrillicTSHE {TSHE} \definecharacter cyrillicSHHA {SHHA} \definecharacter cyrillicZHDSC {ZHDSC} \definecharacter cyrillicZDSC {ZDSC} \definecharacter cyrillicLJE {LJE} \definecharacter cyrillicYI {YI} \definecharacter cyrillicKDSC {KDSC} \definecharacter cyrillicKBEAK {KBEAK} \definecharacter cyrillicKVCRS {KVCRS} \definecharacter cyrillicAE {AE} \definecharacter cyrillicNDSC {NDSC} \definecharacter cyrillicNG {NG} \definecharacter cyrillicDZE {DZE} \definecharacter cyrillicOTLD {OTLD} \definecharacter cyrillicSDSC {SDSC} \definecharacter cyrillicUSHRT {USHRT} \definecharacter cyrillicY {Y} \definecharacter cyrillicYHCRS {YHCRS} \definecharacter cyrillicHDSC {HDSC} \definecharacter cyrillicDZHE {DZHE} \definecharacter cyrillicCHVCRS {CHVCRS} \definecharacter cyrillicCHRDSC {CHRDSC} \definecharacter cyrillicIE {IE} \definecharacter cyrillicSCHWA {SCHWA} \definecharacter cyrillicNJE {NJE} \definecharacter cyrillicYO {YO} \definecharacter cyrillicII {II} \definecharacter cyrillicJE {JE} \definecharacter cyrillicQ {Q} \definecharacter cyrillicW {W} \definecharacter cyrillica {a} \definecharacter cyrillicb {b} \definecharacter cyrillicv {v} \definecharacter cyrillicg {g} \definecharacter cyrillicd {d} \definecharacter cyrillice {e} \definecharacter cyrilliczh {zh} \definecharacter cyrillicz {z} \definecharacter cyrillici {i} \definecharacter cyrillicishrt {ishrt} \definecharacter cyrillick {k} \definecharacter cyrillicl {l} \definecharacter cyrillicm {m} \definecharacter cyrillicn {n} \definecharacter cyrillico {o} \definecharacter cyrillicp {p} \definecharacter cyrillicr {r} \definecharacter cyrillics {s} \definecharacter cyrillict {t} \definecharacter cyrillicu {u} \definecharacter cyrillicf {f} \definecharacter cyrillich {h} \definecharacter cyrillicc {c} \definecharacter cyrillicch {ch} \definecharacter cyrillicsh {sh} \definecharacter cyrillicshch {shch} \definecharacter cyrillichrdsn {hrdsn} \definecharacter cyrillicery {ery} \definecharacter cyrillicsftsn {sftsn} \definecharacter cyrillicerev {erev} \definecharacter cyrillicyu {yu} \definecharacter cyrillicya {ya} \definecharacter cyrillicgup {gup} \definecharacter cyrillicghcrs {ghcrs} \definecharacter cyrillicdje {dje} \definecharacter cyrillictshe {tshe} \definecharacter cyrillicshha {shha} \definecharacter cyrilliczhdsc {zhdsc} \definecharacter cyrilliczdsc {zdsc} \definecharacter cyrilliclje {lje} \definecharacter cyrillicyi {yi} \definecharacter cyrillickdsc {kdsc} \definecharacter cyrillickbeak {kbeak} \definecharacter cyrillickvcrs {kvcrs} \definecharacter cyrillicae {ae} \definecharacter cyrillicndsc {ndsc} \definecharacter cyrillicng {ng} \definecharacter cyrillicdze {dze} \definecharacter cyrillicotld {otld} \definecharacter cyrillicsdsc {sdsc} \definecharacter cyrillicushrt {ushrt} \definecharacter cyrillicy {y} \definecharacter cyrillicyhcrs {yhcrs} \definecharacter cyrillichdsc {hdsc} \definecharacter cyrillicdzhe {dzhe} \definecharacter cyrillicchvcrs {chvcrs} \definecharacter cyrillicchrdsc {chrdsc} \definecharacter cyrillicie {ie} \definecharacter cyrillicschwa {schwa} \definecharacter cyrillicnje {nje} \definecharacter cyrillicyo {yo} \definecharacter cyrillicii {ii} \definecharacter cyrillicje {je} \definecharacter cyrillicq {q} \definecharacter cyrillicw {w} \definecharacter cyrillicGJE {\'\cyrillicG} \definecharacter cyrillicgje {\'\cyrillicg} \definecharacter cyrillicKJE {\'\cyrillicK} \definecharacter cyrillickje {\'\cyrillick} \stopencoding \def\cyrillicio{\cyrillicyo} \def\cyrillicIO{\cyrillicYO} %D Hebrew: \startencoding[default] \definecharacter hebrewAlef {'} \definecharacter hebrewBet {b} \definecharacter hebrewGimel {g} \definecharacter hebrewDalet {d} \definecharacter hebrewHe {h} \definecharacter hebrewVav {w} \definecharacter hebrewZayin {z} \definecharacter hebrewHet {\hstroke} \definecharacter hebrewTet {\tcedilla} \definecharacter hebrewYod {y} \definecharacter hebrewKaffinal {k} \definecharacter hebrewKaf {k} \definecharacter hebrewLamed {l} \definecharacter hebrewMemfinal {m} \definecharacter hebrewMem {m} \definecharacter hebrewNunfinal {n} \definecharacter hebrewNun {n} \definecharacter hebrewSamekh {s} \definecharacter hebrewAyin {\gdotaccent} \definecharacter hebrewPefinal {p} \definecharacter hebrewPe {p} \definecharacter hebrewTsadifinal {\scedilla} \definecharacter hebrewTsadi {\scedilla} \definecharacter hebrewQof {q} \definecharacter hebrewResh {r} \definecharacter hebrewShin {\scaron} \definecharacter hebrewTav {th} \stopencoding %D A few goodies: \def\eszett{\ssharp} \def\Eszett{\Ssharp} \def\lslash{\lstroke} \def\Lslash{\Lstroke} \def\dslash{\dstroke} \def\Dslash{\Dstroke} \def\oslash{\ostroke} \def\Oslash{\Ostroke} \def\dcroat{\dstroke} \def\Dcroat{\Dstroke} % \startencoding [default] % % \definecharacter scommaaccent {\scedilla} % \definecharacter Scommaaccent {\Scedilla} % \definecharacter tcommaaccent {\tcedilla} % \definecharacter Tcommaaccent {\Tcedilla} % % \stopencoding % for plain tex's sake \def\S {\sectionmark } \def\P {\paragraphmark} % for latex users sake \def\textS {\sectionmark } \def\textP {\paragraphmark} % for old times sake \def\florin {\textflorin } \def\florijn{\textflorin} \def\dollar {\textdollar } \def\pound {\textsterling} \def\sterling{\textsterling} % idem \def\promille{\perthousand} \def\permille{\perthousand} \def\procent {\percent } \def\permine {\fakepermine} % some more \def\hyphen {\softhyphen} \def\cwm {\compoundwordmark} \def\nonbreakinghyphen {\hyphen} \def\breakinghyphen {\hyphen\prewordbreak} % quotes \def\lowerleftsingleninequote {\quotesinglebase} \def\lowerleftdoubleninequote {\quotedblbase} \def\lowerrightsingleninequote {\quotesinglebase} \def\lowerrightdoubleninequote {\quotedblbase} \def\upperleftsingleninequote {\quoteright} \def\upperleftdoubleninequote {\quotedblright} \def\upperrightsingleninequote {\quoteright} \def\upperrightdoubleninequote {\quotedblright} \def\upperleftsinglesixquote {\quoteleft} \def\upperleftdoublesixquote {\quotedblleft} \def\upperrightsinglesixquote {\quoteleft} \def\upperrightdoublesixquote {\quotedblleft} \def\leftsubguillemot {\guilsingleleft} \def\rightsubguillemot {\guilsingleright} %D A couple of fallbacks suggestion by users, slightly %D adapted and obscured by memory saving hacks. \unprotect \startencoding[default] \definecharacter textcent {c\rlap{\hskip-.2\s!em \vrule\!!width.2\s!pt\!!height1.2\s!ex\!!depth.2\s!ex}} \definecharacter texteuro {C\rlap{\hskip-.75\s!em \vrule\!!width.4\s!em\!!height.85\s!ex\!!depth-.8\s!ex}} \definecharacter textblacksquare {\dontleavehmode\hbox{% \vrule\!!width.3\s!em\!!height.4\s!em\!!depth-.1\s!em}} \definecharacter textbrokenbar {\dontleavehmode\hbox{\kern.05\s!em \vrule\!!width.4\s!pt\!!height1.8\s!ex\!!depth-.85\s!ex \llap{% \vrule\!!width.4\s!pt\!!height.35\s!ex\!!depth.6\s!ex}% \kern.05\s!em}} \stopencoding \protect %D We also use symbolic names for math accents. \startencoding[default] \definecharacter mathacute "7013 \definecharacter mathgrave "7012 \definecharacter mathddot "707F \definecharacter mathtilde "707E \definecharacter mathbar "7016 \definecharacter mathbreve "7015 \definecharacter mathcheck "7014 \definecharacter mathhat "705E \definecharacter mathvec "017E \definecharacter mathdot "705F \definecharacter mathwidetilde "0365 \definecharacter mathwidehat "0362 \stopencoding % \startencoding [default] % \definecommand prime {\mathematics{'}} % \definecommand doubleprime {\mathematics{''}} % \definecommand tripleprime {\mathematics{'''}} % \stopencoding \ifx\zdot\undefined \def\zdot{\zdotaccent} \fi \ifx\Zdot\undefined \def\Zdot{\Zdotaccent} \fi \ifx\greeklamda\undefined \def\greeklamda{\greeklambda} \fi \ifx\greekLamda\undefined \def\greekLamda{\greekLambda} \fi \ifx\leftguillemet \undefined \def\leftguillemet {\leftguillemot } \fi \ifx\rightguillemet\undefined \def\rightguillemet{\rightguillemot} \fi %D New: \startencoding[\s!default] \definecharacter schwa {\hbox{\rotate[\c!rotation=180,\c!location=\v!high]{\hbox{e}}}} \definecharacter schwagrave {\buildtextgrave\schwa} \stopencoding %D Also new, from Taco, for Mojca, who wanted another 8~regimes. \startencoding[\s!default] \definecharacter texthorizontalbar {{\endash\kern\zeropoint\endash}} \definecharacter textdong {\underbar{\dstroke}} \stopencoding %D Goodie (makes more sense): \def\normalcontrolspace {\getglyph{ComputerModernMono}{\char32}} \def\fakedcontrolspace % can be virtual in luatex {\dontleavehmode\hbox {\scratchdimen.1ex% \kern\scratchdimen \vrule \!!width\scratchdimen \!!height5.5\scratchdimen \!!depth3\scratchdimen \vrule \!!width\dimexpr.5em-4\scratchdimen\relax \!!height-2\scratchdimen \!!depth3\scratchdimen \vrule \!!width\scratchdimen \!!height5.5\scratchdimen \!!depth3\scratchdimen \kern\scratchdimen}} \def\fakecontrolspace{\let\normalcontrolspace\fakedcontrolspace} \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-fnt.mkii0000644000175000017500000004266014536300610024700 0ustar hillehille%D \module %D [ file=core-fnt, %D version=1995.10.10, %D title=\CONTEXT\ Core Macros, %D subtitle=Fonts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Fonts} \unprotect %D \macros %D {compound} %D %D We will overload the already active \type {|} so we have %D to save its meaning in order to be able to use this handy %D macro. %D %D \starttyping %D so test\compound{}test can be used instead of test||test %D \stoptyping \bgroup \catcode`\|=\@@active \gdef\compound#1{|#1|} \egroup %D Here we hook some code into the clean up mechanism needed %D for verbatim data. \appendtoks \disablecompoundcharacters \disablediscretionaries \to \everycleanupfeatures %D \macros %D {kap,KAP,Kap,Kaps,nokap,userealcaps,usepseudocaps} %D %D We already introduced \type{\cap} as way to capitalize %D words. This command comes in several versions: %D %D \startbuffer %D \cap {let's put on a \cap{cap}} %D \cap {let's put on a \nocap{cap}} %D \CAP {let's put on a \\{cap}} %D \Cap {let's put on a \\{cap}} %D \Caps{let's put on a cap} %D \stopbuffer %D %D \typebuffer %D %D Note the use of \type{\nocap}, \type{\\} and the nested %D \type{\cap}. %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D These macros show te main reason why we introduced the %D smaller \type{\tx} and \type{\txx}. %D %D \starttyping %D \cap\romannumerals{1995} %D \stoptyping %D %D This at first sight unusual capitilization is completely %D legal. %D %D \showsetup{smallcapped} %D \showsetup{notsmallcapped} %D \showsetup{CAPPED} %D \showsetup{SmallCapped} %D \showsetup{SmallCaps} %D %D The difference between pseudo and real caps is demonstrated %D below: %D %D \startbuffer %D \usepseudocaps \cap{Hans Hagen} %D \userealcaps \cap{Hans Hagen} %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D The \type {\bgroup} trickery below is needed because of %D \type {\groupedcommand}. \def\usepseudocaps {\def\cap@@uppercase{\the\everyuppercase\uppercased}% \def\cap@@lowercase{\the\everylowercase\lowercased}% \def\cap@@visualize{\tx}} \def\userealcaps {\let\cap@@uppercase\relax %\let\cap@@lowercase\relax % Definitely not! \def\cap@@visualize{\sc}} \usepseudocaps \unexpanded\def\smallcapped % else conflict with math {\futurelet\next\dosmallcapped} \def\disablepseudocaps {\let\smallcapped\donothing} \def\dosmallcapped {\ifx\next\bgroup \expandafter\dodosmallcapped\expandafter\relax \else \expandafter\dodosmallcapped \fi} \def\dodosmallcapped#1#2% {\ifmmode\hbox\fi \bgroup \cap@@visualize \cap@@uppercase{#1{#2}}% \egroup} \unexpanded\def\notsmallcapped#1% {\cap@@lowercase{#1}} \unexpanded\def\CAPPED#1% {{\def\\##1{\smallcapped{##1}}#1}} \unexpanded\def\SmallCapped#1% {\CAPPED{\\#1}} \unexpanded\def\SmallCaps {\let\processword\SmallCapped \processwords} %D Sure: \def\kap{\smallcapped} % for old times sake %D Some precautions for a \PLAIN\ \TEX\ definition. \unexpanded\def\normalcap{\dohandlemathtoken{cap}} \unexpanded\def\normalCap{\dohandlemathtoken{Cap}} \def\cap{\mathortext\normalcap\smallcapped} \def\Cap{\mathortext\normalCap\SmallCapped} \appendtoks \let\cap\firstofoneargument \let\Cap\firstofoneargument \to \simplifiedcommands %D \macros %D {setupcapitals} %D %D By default we use pseudo small caps in titles. This can be %D set up with: %D %D \showsetup{setupcapitals} \let\normalsmallcapped\smallcapped \def\setupcapitals {\dosingleempty\dosetupcapitals} \def\dosetupcapitals[#1]% {\getparameters[\??kk][#1]% \doifelse\@@kktitle\v!yes {\definealternativestyle[\v!capital][\normalsmallcapped][\normalsmallcapped]% \definealternativestyle[\v!smallcaps][\sc][\sc]% \unexpanded\def\smallcapped{\normalsmallcapped}} {\definealternativestyle[\v!capital][\normalsmallcapped][\uppercased]% \definealternativestyle[\v!smallcaps][\sc][\uppercased]% \unexpanded\def\smallcapped{\doconvertfont\v!capital}}% \doifelse\@@kksc\v!yes \userealcaps \usepseudocaps} \ifx\uppercased\undefined \let\uppercased\uppercase \fi \ifx\lowercased\undefined \let\lowercased\lowercase \fi % pretty tricky stuff: % % \usemodule[abr-01] \TEX \METAPOST \PPCHTEX \LATEX % \usemodule[abr-02] \TEX \METAPOST \PPCHTEX \LATEX %def\uppercased#1{{\forceunexpanded\xdef\@@globalcrap{\uppercase{#1}}}\@@globalcrap} %def\lowercased#1{{\forceunexpanded\xdef\@@globalcrap{\lowercase{#1}}}\@@globalcrap} \def\uppercased#1{{\forceunexpanded\xdef\@@expanded{\uppercase{#1}}}\@@expanded} \def\lowercased#1{{\forceunexpanded\xdef\@@expanded{\lowercase{#1}}}\@@expanded} \setupcapitals [\c!title=\v!yes, \c!sc=\v!no] %D \macros %D {Word, Words, WORD, WORDS, doprocesswords} %D %D This is probably not the right place to present the next set %D of macros. %D %D \starttyping %D \Word {far too many words} %D \Words{far too many words} %D \WORD {far too many words} %D \WORDS{far too many words} %D \stoptyping %D %D \typebuffer %D %D This calls result in: %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D \showsetup{Word} %D \showsetup{Words} %D \showsetup{WORD} %D \showsetup{WORDS} \def\doWord#1% {\bgroup \the\everyuppercase \uppercase{#1}% \egroup} \unexpanded\def\Word#1% {\doWord#1} \def\doprocesswords#1 #2\od {\ConvertToConstant\doifnot{#1}{} {\processword{#1} % \doprocesswords#2 \od}} \def\processwords#1% {\doprocesswords#1 \od\unskip} \let\processword\relax \unexpanded\def\Words {\let\processword\Word \processwords} \unexpanded\def\WORD#1% {\bgroup \let\smallcapped\firstofoneargument \let\WORD\firstofoneargument \douppercase{#1}% \egroup} \unexpanded\def\WORDS#1% {\WORD{#1}} %D \macros %D {stretched} %D %D Stretching characters in a word is a sort of typographical %D murder. Nevertheless we support this manipulation for use in %D for instance titles. %D %D \starttyping %D \hbox to 5cm{\stretched{murder}} %D \stoptyping %D %D \typebuffer %D %D or %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld %D %D \showsetup{stretched} \def\stretched#1% {\ifvmode\hbox to \hsize\else\ifinner\else\hbox\fi\fi \bgroup\processtokens\relax\hss\relax{\hss\hss}{#1}\egroup} %D \startbuffer %D \stretched{Unknown Box} %D \hbox to .5\hsize{\stretched{A Horizontal Box}} %D \vbox to 2cm{\stretched{A Vertical Box}} %D \hbox to 3cm{\stretched{sp{\'e}c{\`\i}{\"a}l}} %D \stopbuffer %D %D \getbuffer %D %D The first line of this macros takes care of boxing. Normally %D one will use an \type{\hbox} specification. The last line %D shows how special characters should be passed. %D %D \typebuffer %D \macros %D {stretchednormalcase, stretcheduppercase, stretchedlowercase} %D %D A convenient alternative is: %D %D \starttyping %D \stretcheduppercase{Is this what you like?} %D \stoptyping %D %D \typebuffer %D %D this one uses fixed skips and kerns. %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld %D %D The default skip can be set with: % \def\stretchedspacefactor{4} % \def\stretchedspaceamount{.25em} % % \unexpanded\def\stretcheduppercase#1% % {\bgroup % \the\everyuppercase % \uppercase{\def\textstring{#1}}% % \ifdim\stretchedspaceamount>\zeropoint % \def\textkern% % {\kern\stretchedspaceamount}% % \def\textskip% % {\scratchdimen=\stretchedspaceamount % \hskip\stretchedspacefactor\scratchdimen}% % \@EA\processtokens\@EA\relax\@EA\textkern\@EA\relax\@EA % \textskip\@EA{\textstring}% % \else % \textstring % \fi % \egroup} %D Given the following settings, the space is 1em by default: \def\stretchedspacefactor{4} \def\stretchedspaceamount{.25em} \def\stretchedbreaktokens{.@/} \unexpanded\def\stretchednormalcase {\stretchedsomecase\firstofoneargument} \unexpanded\def\stretcheduppercase {\stretchedsomecase{\the\everyuppercase\uppercase}} \unexpanded\def\stretchedlowercase {\stretchedsomecase{\the\everylowercase\lowercase}} \def\stretchedsomecase#1#2% {\bgroup #1{\def\textstring{#2}}% \ifdim\stretchedspaceamount=\zeropoint \textstring \else \def\textkern##1% {% beware: ##1 may not be \box\somebox -) \determinemidwordbreak{##1}{\stretchedbreaktokens}% \kern\stretchedspaceamount##1\domidwordbreak}% \def\textskip {\scratchdimen\stretchedspaceamount \hskip\stretchedspacefactor\scratchdimen}% \@EA\processtokens\@EA\relax\@EA\textkern\@EA\relax\@EA \textskip\@EA{\textstring}% \fi \egroup} %D An auxiliary macro, see for usage \type {\stretcheduppercase}. \let\domidwordbreak\relax \def\setmidwordbreaktoken#1% {\sfcode`#1=5000\relax} \def\determinemidwordbreak#1#2% {\edef\midwordbreaktokens{#2}% \ifx\midwordbreaktokens\empty \global\let\domidwordbreak\relax \else \setbox\scratchbox\hbox {\expandafter\handletokens\midwordbreaktokens\with\setmidwordbreaktoken a\space \!!dimena\lastskip #1\space\!!dimenb\lastskip \relax % needed \ifdim\!!dimena=\!!dimenb \globallet\domidwordbreak\relax \else \globallet\domidwordbreak\allowbreak \fi}% \fi} %D \macros %D {underbar,underbars, %D overbar,overbars, %D overstrike,overstrikes, %D setupunderbar} %D %D In the rare case that we need undelined words, for instance %D because all font alternatives are already in use, one can %D use \type{\underbar} and \type{\overstrike} and their plural %D forms. %D %D \startbuffer %D \underbars{drawing \underbar{bars} under words is a typewriter leftover} %D \overstrikes{striking words makes them \overstrike{unreadable} but %D sometimes even \overbar{top lines} come into view.} %D \stopbuffer %D %D \typebuffer %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D The next macros are derived from the \PLAIN\ \TEX\ one, but %D also supports nesting. The \type{$} keeps us in horizontal %D mode and at the same time applies grouping. %D %D \showsetup{underbar} %D \showsetup{underbars} %D \showsetup{overbar} %D \showsetup{overbars} %D \showsetup{overstrike} %D \showsetup{overstrikes} %D %D Although underlining is ill advised, we permit some %D alternatives, that can be set up by: %D %D \showsetup{setupunderbar} %D %D The alternatives show up as %D {\setupunderbar [alternative=a]\underbar{alternative a}}, %D {\setupunderbar [alternative=b]\underbar{alternative b}}, %D {\setupunderbar [alternative=c]\underbar{alternative c}} %D and %D {\setupunderbar [rulethickness=1pt]\underbar{1pt width}}, %D {\setupunderbar [rulethickness=2pt]\underbar{2pt width}}, %D or whatever. Because \type{\overstrike} uses the same %D method, the settings also apply to that macro. \newcount\underbarlevel \def\underbarmethoda#1#2#3% RULE {\hbox to #1{\vrule\!!width#1\!!height#2\!!depth#3}} \def\underbarmethodb#1#2#3% DASH {\hbox to #1 {\hskip-.25em \xleaders \hbox{\hskip.25em\vrule\!!width.25em\!!height#2\!!depth#3} \hfil}} \def\underbarmethodc#1#2#3% PERIOD {\hbox to #1 {\dimen4=#3 \advance\dimen4 .2ex \hskip-.25em \xleaders \hbox{\hskip.25em\lower\dimen4\hbox{.}} \hfil}} \def\dododounderbar#1#2#3% {\startmathmode \setbox0\hbox{#3}% \setbox2\hbox{\color[\@@onrulecolor]{\getvalue{underbarmethod\@@onalternative}{\wd0}{#1}{#2}}}% \wd0\zeropoint \ht2\ht0 \dp2\dp0 \box0\box2 \stopmathmode} \unexpanded\def\dodounderbar#1% {\bgroup \dimen0=\@@onbottomoffset \dimen0=\underbarlevel\dimen0 \ifdone \else \advance\dimen0 -\strutht \fi \dimen2\dimen0 \advance\dimen2 \@@onrulethickness \dododounderbar{-\dimen0}{\dimen2}{#1}% \egroup} \def\betweenunderbarwords {\bgroup \setbox0\hbox{\dodounderbar{\hskip\interwordspace}}% \nobreak \hskip\zeropoint\!!minus\interwordshrink \discretionary{}{}{\box0}% \egroup} \def\betweenunderbarspaces {\hskip\currentspaceskip} % \unexpanded\def\dounderbar#1#2% % {\let\betweenisolatedwords#1% % \processisolatedwords{#2}\dodounderbar % \egroup} \unexpanded\def\underbar {\bgroup \advance\underbarlevel\plusone \donetrue \dounderbar\betweenunderbarwords} \unexpanded\def\dounderbar#1% {\let\betweenisolatedwords#1% \dosingleempty\redounderbar} \unexpanded\def\redounderbar[#1]#2% {\iffirstargument\setupunderbar[#1]\fi \processisolatedwords{#2}\dodounderbar \egroup} \unexpanded\def\underbars {\bgroup \advance\underbarlevel\plusone \donetrue \dounderbar\betweenunderbarspaces} \unexpanded\def\overbar {\bgroup \advance\underbarlevel\minusone \donefalse \dounderbar\betweenunderbarwords} \unexpanded\def\overbars {\bgroup \advance\underbarlevel\minusone \donefalse \dounderbar\betweenunderbarspaces} \def\dooverstrike#1% {\bgroup \dimen0=\@@ontopoffset \dimen2=\dimen0 \advance\dimen2 \@@onrulethickness \dododounderbar{\dimen2}{-\dimen0}{#1}% \egroup} \def\betweenoverstrikewords {\bgroup \setbox0\hbox{\dooverstrike{\hskip\interwordspace}}% \nobreak \hskip\zeropoint\!!minus\interwordshrink \discretionary{}{}{\box0}% \egroup} \unexpanded\def\overstrike#1% {\bgroup \let\betweenisolatedwords\betweenoverstrikewords \processisolatedwords{#1}\dooverstrike \egroup} \unexpanded\def\overstrikes#1% {\bgroup \processisolatedwords{#1}\dooverstrike \egroup} \def\underbarparameter#1{\csname\??on#1\csname} \def\setupunderbar {\dodoubleargument\getparameters[\??on]} %D \macros %D {shiftedword, shiftedwords} %D %D Used as \type {\shiftedwords {10pt} {some text}} this macro will %D move % \def\shiftedword#1% #2% % {\raise#1\hbox} % {#2}} % officially: {\ifdim#1>\zeropoint\raise\else\lower\fi#1\hbox{#2}} % \def\shiftedwords#1#2% % {\processisolatedwords{#2}{\shiftedword{#1}}} %D \macros %D {low, high, lohi} %D %D Although \TEX\ is pretty well aware of super- and %D subscripts, its mechanism is mainly tuned for math mode. %D The next few commands take care of script texts both modes. %D %D \startbuffer %D The higher\high{one goes} the lower\low{one drops}, or\lohi{yes}{no}? %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D Note the different placement of \type {\lohi}, where we %D need a bit more space. The implementation looks a bit %D fuzzy, since some \type {\fontdimen}'s are involved to %D determine the optimal placement. \def\dodohighlow {\ifx\fontsize\empty \ifmmode \ifnum\fam<0 \tx \else \holamathfont \fi \else \tx \fi \else \tx \fi} \def\dohighlow#1#2#3#4#5% todo, named fontdimens {\dontleavehmode \bgroup \scratchdimen\ifdim\fontexheight\textfont2=1ex #2\textfont2\else #3ex\fi \advance\scratchdimen #4ex \kern.1ex \setbox\scratchbox\hbox{#1\scratchdimen\hbox{\dodohighlow#5}}% \ht\scratchbox\strutheight \dp\scratchbox\strutdepth \box\scratchbox \egroup} \unexpanded\def\high{\dohighlow\raise\mathsupnormal{.86}{0}} \unexpanded\def\low {\dohighlow\lower\mathsubnormal{.48}{0}} % \unexpanded\def\lohi#1#2% % {\dontleavehmode % \hbox % {\setbox4=\hbox{\dohighlow\lower\mathsubnormal{.48}{.1}{#1}}% % \setbox6=\hbox{\dohighlow\raise\mathsupnormal{.86}{.1}{#2}}% % \ifdim\wd4<\wd6 % \wd4=\zeropoint\box4\box6 % \else % \wd6=\zeropoint\box6\box4 % \fi}} \unexpanded\def\lohi {\dosingleempty\dolohi} \def\dolohi[#1]#2#3% {\dontleavehmode \hbox {\setbox4\hbox{\dohighlow\lower\mathsubnormal{.48}{.1}{#2}}% \setbox6\hbox{\dohighlow\raise\mathsupnormal{.86}{.1}{#3}}% \doif{#1}{\v!left} {\ifdim\wd4<\wd6 \setbox4\hbox to \wd6{\hss\box4}% \else \setbox6\hbox to \wd4{\hss\box6}% \fi}% \ifdim\wd4<\wd6 \wd4=\zeropoint\box4\box6 \else \wd6=\zeropoint\box6\box4 \fi}} %D You can provide an optional keyword \type {left}, in which %D case the super and subscripts will be aligned in a way that %D permits placement at the left of a word (which means that %D it will be right aligned). %D %D \startbuffer %D \lohi{aha}{ah} test \lohi{aha}{ah} test %D \lohi[left]{aha}{ah} test \lohi[left]{aha}{ah} test %D \lohi{aha}{ah} test\lohi{aha}{ah} test %D \lohi[left]{aha}{ah}test \lohi[left]{aha}{ah}test %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D \macros %D {setupinitial,placeinitial,checkinitial} %D %D {\em To be documented.} %D %D \starttyping %D \setupinitial[state=start] \placeinitial \input tufte %D \stoptyping %D %D and %D %D \starttyping %D \def\bpar{\ifvmode\checkinitial\fi} %D \def\epar{\ifhmode\par\fi\checkinitial} %D \stoptyping % to do: more fine tuning \def\setupinitial {\dodoubleempty\getparameters[\??dc]} \definefontsynonym[Initial][Regular] % prefered initial identifier \definefontsynonym[initial][Initial] % internal but accepted too \setupinitial [\c!state=\v!stop, \c!location=\v!text, \c!n=3, \c!distance=.125em, \c!command=, \s!font=initial] \def\AutoDroppedCapsCommand{\NiceDroppedCaps\@@dccommand\@@dcfont\@@dcdistance\@@dcn}% \def\placeinitial {\doifelse\@@dclocation\v!margin{\chardef\DropMode\plusone}{\chardef\DropMode\zerocount}% \doif \@@dcstate\v!start{\ifcase\@@dcn\else\AutoDroppedCaps\fi}} \let\checkinitial\CheckDroppedCaps %D This module has only a few setups: \setupunderbar [\c!alternative=a, \c!rulethickness=\linewidth, \c!bottomoffset=1.5pt, \c!topoffset=2.5pt, \c!rulecolor=] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/syst-con.mkii0000644000175000017500000002505214536300610024736 0ustar hillehille%D \module %D [ file=syst-con, %D version=2000.12.10, % actually very old -) %D title=\CONTEXT\ System Macros, %D subtitle=Conversions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt System Macros / Conversions} \unprotect %D When the number of conversions grew, it did no longer make %D sense to spread them over multiple files. So, instead of %D defining these in \type {font-ini}, we now have a dedicated %D module. \catcode127=12 % other, just to be sure %D \macros %D {lchexnumber,uchexnumber,lchexnumbers,uchexnumbers} %D %D In addition to the uppercase hex conversion, as needed in %D math families, we occasionally need a lowercase one, for %D instance when we want to compose gbsong fontnames. %D %D The ugly indirectness is needed to get rid of \TEX\ %D induced spaces and \type {\relax}'s. %D %D \starttyping %D [\uchexnumber{0}] %D [\uchexnumber\scratchcounter] %D [\uchexnumber\zerocount] %D [\uchexnumber{\number0}] %D [\uchexnumber{\number\scratchcounter}] %D [\uchexnumber{\number\zerocount}] %D [\uchexnumber{\the\scratchcounter}] %D [\uchexnumber{\the\zerocount}] %D [\expandafter\uchexnumber\expandafter{\number0}] %D [\expandafter\uchexnumber\expandafter{\number\scratchcounter}] %D [\expandafter\uchexnumber\expandafter{\number\zerocount}] %D [\expandafter\uchexnumber\expandafter{\the\scratchcounter}] %D [\expandafter\uchexnumber\expandafter{\the\zerocount}] %D \stoptyping %D %D These macros may look slow but are actually rather fast due to %D the fact that \TEX\ handles conditional pretty fast. We need %D a two step approach in order to stay relax clean in fully %D expandable macros. \def\dolchexnumber#1\relax {\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or a\or b\or c\or d\or e\or f\else 0\fi} \def\douchexnumber#1\relax {\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or A\or B\or C\or D\or E\or F\else 0\fi} \def\dolchexnumbers#1\relax {\ifcase#1 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or 0a\or 0b\or 0c\or 0d\or 0e\or 0f\or 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or 19\or 1a\or 1b\or 1c\or 1d\or 1e\or 1f\or 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 28\or 29\or 2a\or 2b\or 2c\or 2d\or 2e\or 2f\or 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or 39\or 3a\or 3b\or 3c\or 3d\or 3e\or 3f\or 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or 49\or 4a\or 4b\or 4c\or 4d\or 4e\or 4f\or 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or 59\or 5a\or 5b\or 5c\or 5d\or 5e\or 5f\or 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or 69\or 6a\or 6b\or 6c\or 6d\or 6e\or 6f\or 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or 79\or 7a\or 7b\or 7c\or 7d\or 7e\or 7f\or 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or 89\or 8a\or 8b\or 8c\or 8d\or 8e\or 8f\or 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or 99\or 9a\or 9b\or 9c\or 9d\or 9e\or 9f\or a0\or a1\or a2\or a3\or a4\or a5\or a6\or a7\or a8\or a9\or aa\or ab\or ac\or ad\or ae\or af\or b0\or b1\or b2\or b3\or b4\or b5\or b6\or b7\or b8\or b9\or ba\or bb\or bc\or bd\or be\or bf\or c0\or c1\or c2\or c3\or c4\or c5\or c6\or c7\or c8\or c9\or ca\or cb\or cc\or cd\or ce\or cf\or d0\or d1\or d2\or d3\or d4\or d5\or d6\or d7\or d8\or d9\or da\or db\or dc\or dd\or de\or df\or e0\or e1\or e2\or e3\or e4\or e5\or e6\or e7\or e8\or e9\or ea\or eb\or ec\or ed\or ee\or ef\or f0\or f1\or f2\or f3\or f4\or f5\or f6\or f7\or f8\or f9\or fa\or fb\or fc\or fd\or fe\or ff\fi} \def\douchexnumbers#1\relax {\ifcase#1 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or 0A\or 0B\or 0C\or 0D\or 0E\or 0F\or 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or 19\or 1A\or 1B\or 1C\or 1D\or 1E\or 1F\or 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 28\or 29\or 2A\or 2B\or 2C\or 2D\or 2E\or 2F\or 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or 39\or 3A\or 3B\or 3C\or 3D\or 3E\or 3F\or 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or 49\or 4A\or 4B\or 4C\or 4D\or 4E\or 4F\or 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or 59\or 5A\or 5B\or 5C\or 5D\or 5E\or 5F\or 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or 69\or 6A\or 6B\or 6C\or 6D\or 6E\or 6F\or 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or 79\or 7A\or 7B\or 7C\or 7D\or 7E\or 7F\or 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or 89\or 8A\or 8B\or 8C\or 8D\or 8E\or 8F\or 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or 99\or 9A\or 9B\or 9C\or 9D\or 9E\or 9F\or A0\or A1\or A2\or A3\or A4\or A5\or A6\or A7\or A8\or A9\or AA\or AB\or AC\or AD\or AE\or AF\or B0\or B1\or B2\or B3\or B4\or B5\or B6\or B7\or B8\or B9\or BA\or BB\or BC\or BD\or BE\or BF\or C0\or C1\or C2\or C3\or C4\or C5\or C6\or C7\or C8\or C9\or CA\or CB\or CC\or CD\or CE\or CF\or D0\or D1\or D2\or D3\or D4\or D5\or D6\or D7\or D8\or D9\or DA\or DB\or DC\or DD\or DE\or DF\or E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or E8\or E9\or EA\or EB\or EC\or ED\or EE\or EF\or F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or F8\or F9\or FA\or FB\or FC\or FD\or FE\or FF\fi} \def\lchexnumber #1{\@EA\dolchexnumber \number#1\relax} \def\uchexnumber #1{\@EA\douchexnumber \number#1\relax} \def\lchexnumbers#1{\@EA\dolchexnumbers\number#1\relax} \def\uchexnumbers#1{\@EA\douchexnumbers\number#1\relax} \let\hexnumber\uchexnumber %D \macros %D {octnumber} %D %D For unicode remapping purposes, we need octal numbers. \def\dooctnumber#1\relax {\ifcase#1 000\or 001\or 002\or 003\or 004\or 005\or 006\or 007\or 010\or 011\or 012\or 013\or 014\or 015\or 016\or 017\or 020\or 021\or 022\or 023\or 024\or 025\or 026\or 027\or 030\or 031\or 032\or 033\or 034\or 035\or 036\or 037\or 040\or 041\or 042\or 043\or 044\or 045\or 046\or 047\or 050\or 051\or 052\or 053\or 054\or 055\or 056\or 057\or 060\or 061\or 062\or 063\or 064\or 065\or 066\or 067\or 070\or 071\or 072\or 073\or 074\or 075\or 076\or 077\or 100\or 101\or 102\or 103\or 104\or 105\or 106\or 107\or 110\or 111\or 112\or 113\or 114\or 115\or 116\or 117\or 120\or 121\or 122\or 123\or 124\or 125\or 126\or 127\or 130\or 131\or 132\or 133\or 134\or 135\or 136\or 137\or 140\or 141\or 142\or 143\or 144\or 145\or 146\or 147\or 150\or 151\or 152\or 153\or 154\or 155\or 156\or 157\or 160\or 161\or 162\or 163\or 164\or 165\or 166\or 167\or 170\or 171\or 172\or 173\or 174\or 175\or 176\or 177\or 200\or 201\or 202\or 203\or 204\or 205\or 206\or 207\or 210\or 211\or 212\or 213\or 214\or 215\or 216\or 217\or 220\or 221\or 222\or 223\or 224\or 225\or 226\or 227\or 230\or 231\or 232\or 233\or 234\or 235\or 236\or 237\or 240\or 241\or 242\or 243\or 244\or 245\or 246\or 247\or 250\or 251\or 252\or 253\or 254\or 255\or 256\or 257\or 260\or 261\or 262\or 263\or 264\or 265\or 266\or 267\or 270\or 271\or 272\or 273\or 274\or 275\or 276\or 277\or 300\or 301\or 302\or 303\or 304\or 305\or 306\or 307\or 310\or 311\or 312\or 313\or 314\or 315\or 316\or 317\or 320\or 321\or 322\or 323\or 324\or 325\or 326\or 327\or 330\or 331\or 332\or 333\or 334\or 335\or 336\or 337\or 340\or 341\or 342\or 343\or 344\or 345\or 346\or 347\or 350\or 351\or 352\or 353\or 354\or 355\or 356\or 357\or 360\or 361\or 362\or 363\or 364\or 365\or 366\or 367\or 370\or 371\or 372\or 373\or 374\or 375\or 376\or 377\fi} \def\octnumber#1{\@EA\dooctnumber\number#1\relax} %D \macros %D {twodigits, threedigits} %D %D These macros provides two or three digits always: \def\twodigits #1{\ifnum #1<10 0\fi\number#1} \def\threedigits#1{\ifnum#1<100 \ifnum#1<10 0\fi0\fi\number#1} %D \macros{modulonumber} %D %D In the conversion macros described in \type {core-con} we %D need a wrap||around method. The following solution is %D provided by Taco. %D %D The \type {modulonumber} macro expands to the mathematical %D modulo of a positive integer. It is crucial for it's %D application that this macro is fully exandable. %D %D The expression inside the \type {\numexpr} itself is %D somewhat bizarre because \ETEX\ uses a rounding %D division instead of truncation. If \ETEX's division %D would have behaved like \TEX's normal\type{\divide}, then %D the expression could have been somewhat simpler, like %D \type {#2-(#2/#1)*#1}. This works just as well, but a bit %D more complex. \def\modulonumber#1#2% {\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax} %D \macros{modulatednumber} %D %D Modulo numbers run from zero to one less than the limit, %D but for conversion sets, we need a value between 1 and the %D limit. The \type{\modulatednumber} arranges that. This %D macro also needs to be fully expandable, resulting in %D two \type{\numexpr}s. \def\modulatednumber#1#2% {\ifnum\the\numexpr\modulonumber{#1}{#2}\relax=0 #1% \else \the\numexpr\modulonumber{#1}{#2}\relax \fi} %D \macros %D {hexstringtonumber} %D %D This macro converts a two character hexadecimal number into %D a decimal number, thereby taking care of lowercase characters %D as well. \dostepwiserecurse{0}{9}{1}{\setevalue{@@uc@@\recurselevel}{\recurselevel}} \setvalue{@@uc@@a}{A} \setvalue{@@uc@@A}{A} \setvalue{@@uc@@b}{B} \setvalue{@@uc@@B}{B} \setvalue{@@uc@@c}{C} \setvalue{@@uc@@C}{C} \setvalue{@@uc@@d}{D} \setvalue{@@uc@@D}{D} \setvalue{@@uc@@e}{E} \setvalue{@@uc@@E}{E} \setvalue{@@uc@@f}{F} \setvalue{@@uc@@F}{F} \def\hexstringtonumber#1% {FF} {\dohexstringtonumber#1} \def\dohexstringtonumber#1#2% FF {"\csname @@uc@@#1\endcsname\csname @@uc@@#2\endcsname} %D \macros %D {rawcharacter} %D %D The next conversion macro produces raw characters. We have to %D construct the macro in a special way to avoid problems with %D characters with special meanings. So, we revert to the %D lowercase conversion trick to bypass \TEX's input parser. %D %D This macro can be used to produce proper 8 bit characters %D that we sometimes need in backends and round||trips. \bgroup \catcode`\^^@=12 % ascii null == ignored in plain \catcode`\^^?=12 % ascii delete == invalid in plain \let\or\relax \xdef\rawcharacter{ ^^00\or} \dorecurse{255} {\lccode`a=\recurselevel \lowercase{\xdef\rawcharacter{\rawcharacter \string a\or}}} % string is needed for XeTeX \@EA\gdef\@EA\rawcharacter\@EA#\@EA1\@EA {\@EA\ifcase\@EA#\@EA1\rawcharacter\fi} \egroup \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-ffr.mkii0000644000175000017500000000357214536300610024661 0ustar hillehille%D \module %D [ file=enco-ffr, %D version=2002.05.07, %D title=\CONTEXT\ Encoding Macros, %D subtitle=French Input Filter, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % \definehspace[fr][:][.25em] % \definehspace[fr][;][.25em] % \definehspace[fr][!][.25em] % \definehspace[fr][?][.25em] \enablemode[activecolon] \usemodule[tryout] % for the moment \installactivecharacter : \installactivecharacter ; \installactivecharacter ? \installactivecharacter ! \unprotect \startlanguagespecifics[\s!fr] \definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{:}:} \definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{;};} \definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{?}?} \definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{!}!} \stoplanguagespecifics \startlanguagespecifics[\s!fr] \defineactivecharacter : {\mathortext{:}{\directdiscretionary{:}}} \defineactivecharacter ; {\mathortext{;}{\directdiscretionary{;}}} \defineactivecharacter ! {\mathortext{!}{\directdiscretionary{!}}} \defineactivecharacter ? {\mathortext{?}{\directdiscretionary{?}}} \stoplanguagespecifics \appendtoks % maybe everywhere \chardef\activecharactermode\zerocount \to\everyMPgraphic % maybe tricky due to possible name clashes: % % \def\ieme {\highordinalstr{e}} % \def\iemes{\highordinalstr{es}} % \def\ier {\highordinalstr{er}} % \def\iers {\highordinalstr{ers}} % \def\iere {\highordinalstr{re}} % \def\ieres{\highordinalstr{res}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-men.mkii0000644000175000017500000001631714536300610024703 0ustar hillehille% filtered from html files by Patrick Ion % % ISOAMSN Characters Extended % % Added Math Symbols: Negated Relations \defineMMLentity gnap E411 {unknown} greater, not approximate \defineMMLentity gnE 2269 {unknown} greater, not double equals \defineMMLentity gne 2269 {unknown} greater, not equals \defineMMLentity gnsim 22E7 {unknown} greater, not similar \defineMMLentity gvnE E2A1 {unknown} gt, vert, not double equals \defineMMLentity lnap E2A2 {unknown} less, not approximate \defineMMLentity lnE 2268 {unknown} less, not double equals \defineMMLentity lne 2268 {unknown} less, not equals \defineMMLentity lnsim 22E6 {unknown} less, not similar \defineMMLentity lvnE E2A4 {unknown} less, vert, not double equals \defineMMLentity nap 2249 {unknown} not approximate \defineMMLentity napE E2C7 {unknown} not approximately equal or equal to \defineMMLentity napid E2BC {unknown} not approximately identical to \defineMMLentity ncong 2247 {unknown} not congruent with \defineMMLentity ncongdot E2C5 {unknown} not congruent, dot \defineMMLentity nequiv 2262 {unknown} not identical with \defineMMLentity ngE 2271 {unknown} not greater, double equals \defineMMLentity nge E2A6 {unknown} not greater-than-or-equal \defineMMLentity nges 2271 {unknown} not gt-or-equals, slanted \defineMMLentity nGg E2CE {unknown} not triple greater than \defineMMLentity ngsim 2275 {unknown} not greater, similar \defineMMLentity nGt E2CA {unknown} not, vert, much greater than \defineMMLentity ngt 226F {unknown} not greater-than \defineMMLentity nGtv E2CC {unknown} not much greater than, variant \defineMMLentity nlE 2270 {unknown} not less, double equals \defineMMLentity nle E2A7 {unknown} not less-than-or-equal \defineMMLentity nles 2270 {unknown} not less-or-equals, slant \defineMMLentity nLl E2CD {unknown} not triple less than \defineMMLentity nlsim 2274 {unknown} not less, similar \defineMMLentity nLt E2C9 {unknown} not, vert, much less than \defineMMLentity nlt 226E {unknown} not less-than \defineMMLentity nltri 22EA {unknown} not left triangle \defineMMLentity nltrie 22EC {unknown} not left triangle, equals \defineMMLentity nLtv E2CB {unknown} not much less than, variant \defineMMLentity nmid 2224 {unknown} negated mid \defineMMLentity npar 2226 {unknown} not parallel \defineMMLentity npr 2280 {unknown} not precedes \defineMMLentity nprcue 22E0 {unknown} not curly precedes, equals \defineMMLentity npre E412 {unknown} not precedes, equals \defineMMLentity nrtri 22EB {unknown} not right triangle \defineMMLentity nrtrie 22ED {unknown} not right triangle, equals \defineMMLentity nsc 2281 {unknown} not succeeds \defineMMLentity nsccue 22E1 {unknown} not succeeds, curly equals \defineMMLentity nsce E413 {unknown} not succeeds, equals \defineMMLentity nsim 2241 {unknown} not similar \defineMMLentity nsime 2244 {unknown} not similar, equals \defineMMLentity nsmid E2AA {unknown} negated short mid \defineMMLentity nspar E2AB {unknown} not short par \defineMMLentity nsqsube 22E2 {unknown} not, square subset, equals \defineMMLentity nsqsupe 22E3 {unknown} not, square superset, equals \defineMMLentity nsub 2284 {unknown} not subset \defineMMLentity nsubE 2288 {unknown} not subset, double equals \defineMMLentity nsube 2288 {unknown} not subset, equals \defineMMLentity nsup 2285 {unknown} not superset \defineMMLentity nsupE 2289 {unknown} not superset, double equals \defineMMLentity nsupe 2289 {unknown} not superset, equals \defineMMLentity ntgl 2279 {unknown} not greater, less \defineMMLentity ntlg 2278 {unknown} not less, greater \defineMMLentity ntvgl 2279 {unknown} not, vert, greater, less \defineMMLentity ntvlg 2278 {unknown} not, vert, less, greater \defineMMLentity nvap E2C6 {unknown} not, vert, approximate \defineMMLentity nVDash 22AF {unknown} not double vert, double dash \defineMMLentity nVdash 22AE {unknown} not double vertical, dash \defineMMLentity nvDash 22AD {unknown} not vertical, double dash \defineMMLentity nvdash 22AC {unknown} not vertical, dash \defineMMLentity nvge 2271 {unknown} not, vert, greater-than-or-equal \defineMMLentity nvgt 226F {unknown} not, vert, greater-than \defineMMLentity nvle 2270 {unknown} not, vert, less-than-or-equal \defineMMLentity nvlt 226E {unknown} not, vert, less-than \defineMMLentity nvltrie E2D0 {unknown} not, vert, left triangle, equals \defineMMLentity nvrtrie E2CF {unknown} not, vert, right triangle, equals \defineMMLentity nvsim E415 {unknown} not, vert, similar \defineMMLentity parsim E2C8 {unknown} parallel, similar \defineMMLentity prnap 22E8 {unknown} precedes, not approx \defineMMLentity prnE E2B3 {unknown} precedes, not double equals \defineMMLentity prnsim 22E8 {unknown} precedes, not similar \defineMMLentity rnmid E2D1 {unknown} reverse nmid \defineMMLentity scnap 22E9 {unknown} succeeds, not approx \defineMMLentity scnE E2B5 {unknown} succeeds, not double equals \defineMMLentity scnsim 22E9 {unknown} succeeds, not similar \defineMMLentity simne 2246 {unknown} similar, not equals \defineMMLentity solbar E416 {unknown} solidus, bar through \defineMMLentity subnE 228A {unknown} subset, not double equals \defineMMLentity subne 228A {unknown} subset, not equals \defineMMLentity supnE 228B {unknown} superset, not double equals \defineMMLentity supne 228B {unknown} superset, not equals \defineMMLentity vnsub 2284 {unknown} not subset, variant \defineMMLentity vnsup 2285 {unknown} not superset, variant \defineMMLentity vsubnE E2B8 {unknown} subset not double equals, variant \defineMMLentity vsubne E2B9 {unknown} subset, not equals, variant \defineMMLentity vsupnE E2BB {unknown} super not double equals, variant \defineMMLentity vsupne E2BA {unknown} superset, not equals, variant context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-vna.mkii0000644000175000017500000001307214536300610024664 0ustar hillehille%D \module %D [ file=enco-vna, %D version=1999.12.12, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Vietnamese Accents, %D author=Han The Thanh & Adam Lindsay & Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module is originally derived from the some files Han The Thanh %D prepared for \LATEX. The dual accent support is still preliminary, %D but works ok. It's now adapted to named glyphs, and is activated by %D \type {\useencoding[thisfile]}. %D This was apparently buggy from the start: there is nothing to %D disambiguate \type {\ohorn} from \type {\ohook}. Both are entered %D with \type {\h{o}} (AL)! %D Once stable, this code will move to \type {enco-acc.tex}. \startencoding[default] \defineaccent h A {\Ahook} \defineaccent d A {\Adotbelow} \defineaccent ` ^A {\Acircumflexgrave} \defineaccent ' ^A {\Acircumflexacute} \defineaccent ~ ^A {\Acircumflextilde} \defineaccent h ^A {\Acircumflexhook} \defineaccent d ^A {\Acircumflexdotbelow} \defineaccent ` uA {\Abrevegrave} \defineaccent ' uA {\Abreveacute} \defineaccent ~ uA {\Abrevetilde} \defineaccent h uA {\Abrevehook} \defineaccent d uA {\Abrevedotbelow} \defineaccent h E {\Ehook} \defineaccent d E {\Edotbelow} \defineaccent ` ^E {\Ecircumflexgrave} \defineaccent ' ^E {\Ecircumflexacute} \defineaccent ~ ^E {\Ecircumflextilde} \defineaccent h ^E {\Ecircumflexhook} \defineaccent d ^E {\Ecircumflexdotbelow} \defineaccent h I {\Ihook} \defineaccent d I {\Idotbelow} \defineaccent h O {\Ohook} \defineaccent d O {\Odotbelow} \defineaccent ` ^O {\Ocircumflexgrave} \defineaccent ' ^O {\Ocircumflexacute} \defineaccent ~ ^O {\Ocircumflextilde} \defineaccent h ^O {\Ocircumflexhook} \defineaccent d ^O {\Ocircumflexdotbelow} %defineaccent h O {\Ohorn} % !!! conflict with \Ohook! \defineaccent ` hO {\Ohorngrave} \defineaccent ` {\Ohorn} {\Ohorngrave} \defineaccent ' hO {\Ohornacute} \defineaccent ' {\Ohorn} {\Ohornacute} \defineaccent ~ hO {\Ohorntilde} \defineaccent ~ {\Ohorn} {\Ohorntilde} \defineaccent h hO {\Ohornhook} \defineaccent h {\Ohorn} {\Ohornhook} \defineaccent d hO {\Ohorndotbelow} \defineaccent d {\Ohorn} {\Ohorndotbelow} \defineaccent h U {\Uhook} \defineaccent d U {\Udotbelow} %defineaccent h U {\Uhorn} % !!! conflict with \Uhook! honestly, people! \defineaccent ` hU {\Uhorngrave} \defineaccent ` {\Uhorn} {\Uhorngrave} \defineaccent ' hU {\Uhornacute} \defineaccent ' {\Uhorn} {\Uhornacute} \defineaccent ~ hU {\Uhorntilde} \defineaccent ~ {\Uhorn} {\Uhorntilde} \defineaccent h hU {\Uhornhook} \defineaccent h {\Uhorn} {\Uhornhook} \defineaccent d hU {\Uhorndotbelow} \defineaccent d {\Uhorn} {\Uhorndotbelow} \defineaccent ` Y {\Ygrave} \defineaccent ' Y {\Yacute} \defineaccent ~ Y {\Ytilde} \defineaccent h Y {\Yhook} \defineaccent d Y {\Ydotbelow} \defineaccent h a {\ahook} \defineaccent d a {\adotbelow} \defineaccent ` ^a {\acircumflexgrave} \defineaccent ' ^a {\acircumflexacute} \defineaccent ~ ^a {\acircumflextilde} \defineaccent h ^a {\acircumflexhook} \defineaccent d ^a {\acircumflexdotbelow} \defineaccent ` ua {\abrevegrave} \defineaccent ' ua {\abreveacute} \defineaccent ~ ua {\abrevetilde} \defineaccent h ua {\abrevehook} \defineaccent d ua {\abrevedotbelow} \defineaccent h e {\ehook} \defineaccent d e {\edotbelow} \defineaccent ` ^e {\ecircumflexgrave} \defineaccent ' ^e {\ecircumflexacute} \defineaccent ~ ^e {\ecircumflextilde} \defineaccent h ^e {\ecircumflexhook} \defineaccent d ^e {\ecircumflexdotbelow} \defineaccent h i {\ihook} \defineaccent d i {\idotbelow} \defineaccent h o {\ohook} \defineaccent d o {\odotbelow} \defineaccent ^ o {\ocircumflex} \defineaccent ` ^o {\ocircumflexgrave} \defineaccent ' ^o {\ocircumflexacute} \defineaccent ~ ^o {\ocircumflextilde} \defineaccent h ^o {\ocircumflexhook} \defineaccent d ^o {\ocircumflexdotbelow} %defineaccent h o {\ohorn} % !!! \defineaccent ` ho {\ohorngrave} \defineaccent ' ho {\ohornacute} \defineaccent ~ ho {\ohorntilde} \defineaccent h ho {\ohornhook} \defineaccent d ho {\ohorndotbelow} \defineaccent ` {\ohorn} {\ohorngrave} \defineaccent ' {\ohorn} {\ohornacute} \defineaccent ~ {\ohorn} {\ohorntilde} \defineaccent h {\ohorn} {\ohornhook} \defineaccent d {\ohorn} {\ohorndotbelow} \defineaccent h u {\uhook} \defineaccent d u {\udotbelow} %defineaccent h u {\uhorn} % !!! \defineaccent ` hu {\uhorngrave} \defineaccent ' hu {\uhornacute} \defineaccent ~ hu {\uhorntilde} \defineaccent h hu {\uhornhook} \defineaccent d hu {\uhorndotbelow} \defineaccent ` {\uhorn} {\uhorngrave} \defineaccent ' {\uhorn} {\uhornacute} \defineaccent ~ {\uhorn} {\uhorntilde} \defineaccent h {\uhorn} {\uhornhook} \defineaccent d {\uhorn} {\uhorndotbelow} \defineaccent ` y {\ygrave} \defineaccent ' y {\yacute} \defineaccent ~ y {\ytilde} \defineaccent h y {\yhook} \defineaccent d y {\ydotbelow} \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/tabl-com.mkii0000644000175000017500000000101014536300610024641 0ustar hillehille%D \module %D [ file=tabl-com, %D version=2009.08.22, %D title=\CONTEXT\ Table Macros, %D subtitle=Common Code, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Table Macros / Common Code} \unprotect \let\NC\relax \let\NR\relax \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/scrn-hlp.mkii0000644000175000017500000001124614536300610024705 0ustar hillehille%D \module %D [ file=scrn-hlp, %D version=1998.10.10, %D title=\CONTEXT\ Screen Macros, %D subtitle=Help (Experimental), %D author={Hans Hagen \& Ton Otten}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % todo : dedicated vide/hide voor helps \writestatus{loading}{ConTeXt Screen Macros / Help popups} %D This is an experimental and private module, so the interface %D and functionality can change. Pieces of code will be moved %D to other modules. More features are possible but will be %D interfaces later. See m-chart for an application as well %D as the second tno-tpd manual (graphic in margin, click %D on it, pop up big one, use menu with hides, as well as %D background, etc. etc. \unprotect \defineframedtext [\v!helptext] \setupframedtexts [\v!helptext] [\c!width=.75\textwidth, \c!align=\v!normal, \c!frame=\v!off, \c!background=\v!screen] \newcounter \nofhelpdataentries \newconditional \somehelpdatadefined \appendtoks \getpagehelpdata \to \beforeeverypage \appendtoks \synchronizepagehelpdata \to \aftereverypage % will be proper state variable \let\pagehelpdata\empty \def\dontresetpagedata {\let\synchronizepagehelpdata\relax} \def\resetpagehelpdata {\iflocation \let\synchronizepagehelpdata\resetpagehelpdata \global\let\pagehelpdata\empty \resetreference[HideHelp]% \fi} \let\synchronizepagehelpdata\resetpagehelpdata \resetreference[HideHelp] \def\getpagehelpdata {\iflocation\ifcase\nofhelpdataentries\else \let\pagehelpdata\empty \ifconditional\somehelpdatadefined \definetwopasslist{hlp:\realfolio}% \doloop {\gettwopassdata{hlp:\realfolio}% \iftwopassdatafound \addtocommalist\twopassdata\pagehelpdata \else \exitloop \fi}% \fi \ifx\pagehelpdata\empty \else \useJSscripts[fld]% \definereference[HideHelp][JS(Hide_Fields)]% for the moment \fi \fi\fi} \def\setpagehelpdata[#1]% {\iflocation\expanded{\dosetpagehelpdata{#1}}\fi} \def\dosetpagehelpdata#1% {\doglobal\increment\nofhelpdataentries \savetwopassdata{hlp:\realfolio}{\nofhelpdataentries}{#1}} \setvalue{\e!start\v!helptext}[#1]% {\iflocation \global\settrue\somehelpdatadefined \setvalue{\e!stop\v!helptext}% %{\definesymbol[helpinfo:#1][{\doframedtext[\v!helptext]{\getbuffer[\v!helptext]}}]% % \dopresetfieldsymbol{helpinfo:#1}}% {\definesymbol[\v!helptext:#1][{\doframedtext[\v!helptext]{\getbuffer[\v!helptext]}}]% \dopresetfieldsymbol{\v!helptext:#1}}% \else \letvalue{\e!stop\v!helptext}\relax \fi \dostartbuffer[\v!helptext][\e!start\v!helptext][\e!stop\v!helptext]} \long\def\helptext[#1]#2% {\iflocation \global\settrue\somehelpdatadefined %\definesymbol[helpinfo:#1][{\doframedtext[\v!helptext]{#2}}]% %\dopresetfieldsymbol{helpinfo:#1}% \definesymbol[\v!helptext:#1][{\doframedtext[\v!helptext]{#2}}]% \dopresetfieldsymbol{\v!helptext:#1}% \fi} \let\definehelptext\helptext % for backward compabilities sake \def\dohelpdata#1% {\setbox\scratchbox\hbox {\startoverlay {\box\scratchbox} %{\definemainfield[help:#1][check][helpsetup][helpinfo:#1][helpinfo:#1]% {\definemainfield[help:#1][check][helpsetup][\v!helptext:#1][\v!helptext:#1]% \fitfield[help:#1]} \stopoverlay}} \def\helpdata {\iflocation \bgroup %\getpagehelpdata \ifx\pagehelpdata\empty \else \setupfields[\v!reset]% \setupfield [helpsetup] [\c!width=\v!fit, \c!height=\v!fit, \c!frame=\v!off, \c!clickin=JS(Hide_Fields), \c!option={\v!readonly,\v!hidden}]% \setbox\scratchbox\emptybox \processcommacommand[\pagehelpdata]\dohelpdata \box\scratchbox \fi \egroup \fi} \def\helpbutton % also gobble spaces between [][] {\dodoubleempty\dohelpbutton} \def\dohelpbutton {\ifsecondargument \expandafter\donohelpbutton \else \expandafter\dodohelpbutton \fi} \def\dodohelpbutton[#1][#2]#3[#4]% #2 is space gobbling dummy {\iflocation \setpagehelpdata[#4]% \useJSscripts[fld]% \button[#1]{#3}[JS(Vide_Hide_Fields{help:#4})]% \fi} \def\donohelpbutton[#1][#2]% {\dodohelpbutton[#1][]{}[#2]} \def\doifhelpinfo#1#2% {\iflocation \doifsymboldefinedelse{helpinfo:#1}{#2}\donothing \fi} \def\doifelsehelpinfo#1#2#3% {\iflocation \doifsymboldefinedelse{helpinfo:#1}{#2}{#3}% \fi} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-8859-13.mkii0000644000175000017500000002635714536300610024752 0ustar hillehille%D \module %D [ file=regi-8859-13, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=iso-8859-13 (Baltic), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for iso-8859-13/Latin7 input encoding (regime) for Baltic languages, %D see also iso-8859-4 and cp1257. %D %D Usage: \type{\enableregime[8859-13]} (see \type {regi-syn} for %D alternatives calls). \startregime[iso-8859-13] \defineactivetoken 128 {\unknownchar} % 0080 \defineactivetoken 129 {\unknownchar} % 0081 \defineactivetoken 130 {\unknownchar} % 0082 \defineactivetoken 131 {\unknownchar} % 0083 \defineactivetoken 132 {\unknownchar} % 0084 \defineactivetoken 133 {\unknownchar} % 0085 \defineactivetoken 134 {\unknownchar} % 0086 \defineactivetoken 135 {\unknownchar} % 0087 \defineactivetoken 136 {\unknownchar} % 0088 \defineactivetoken 137 {\unknownchar} % 0089 \defineactivetoken 138 {\unknownchar} % 008A \defineactivetoken 139 {\unknownchar} % 008B \defineactivetoken 140 {\unknownchar} % 008C \defineactivetoken 141 {\unknownchar} % 008D \defineactivetoken 142 {\unknownchar} % 008E \defineactivetoken 143 {\unknownchar} % 008F \defineactivetoken 144 {\unknownchar} % 0090 \defineactivetoken 145 {\unknownchar} % 0091 \defineactivetoken 146 {\unknownchar} % 0092 \defineactivetoken 147 {\unknownchar} % 0093 \defineactivetoken 148 {\unknownchar} % 0094 \defineactivetoken 149 {\unknownchar} % 0095 \defineactivetoken 150 {\unknownchar} % 0096 \defineactivetoken 151 {\unknownchar} % 0097 \defineactivetoken 152 {\unknownchar} % 0098 \defineactivetoken 153 {\unknownchar} % 0099 \defineactivetoken 154 {\unknownchar} % 009A \defineactivetoken 155 {\unknownchar} % 009B \defineactivetoken 156 {\unknownchar} % 009C \defineactivetoken 157 {\unknownchar} % 009D \defineactivetoken 158 {\unknownchar} % 009E \defineactivetoken 159 {\unknownchar} % 009F \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK \defineactivetoken 162 {\textcent} % 00A2 CENT SIGN \defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN \defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN \defineactivetoken 165 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK \defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\Rcommaaccent} % 0156 LATIN CAPITAL LETTER R WITH CEDILLA \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\textlognot} % 00AC NOT SIGN \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN \defineactivetoken 175 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO \defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE \defineactivetoken 180 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK \defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN \defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE \defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE \defineactivetoken 186 {\rcommaaccent} % 0157 LATIN SMALL LETTER R WITH CEDILLA \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\onequarter} % 00BC VULGAR FRACTION ONE QUARTER \defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF \defineactivetoken 190 {\threequarter} % 00BE VULGAR FRACTION THREE QUARTERS \defineactivetoken 191 {\aeligature} % 00E6 LATIN SMALL LETTER AE \defineactivetoken 192 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK \defineactivetoken 193 {\Iogonek} % 012E LATIN CAPITAL LETTER I WITH OGONEK \defineactivetoken 194 {\Amacron} % 0100 LATIN CAPITAL LETTER A WITH MACRON \defineactivetoken 195 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE \defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS \defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE \defineactivetoken 198 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK \defineactivetoken 199 {\Emacron} % 0112 LATIN CAPITAL LETTER E WITH MACRON \defineactivetoken 200 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON \defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE \defineactivetoken 202 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE \defineactivetoken 203 {\Edotaccent} % 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE \defineactivetoken 204 {\Gcommaaccent} % 0122 LATIN CAPITAL LETTER G WITH CEDILLA \defineactivetoken 205 {\Kcommaaccent} % 0136 LATIN CAPITAL LETTER K WITH CEDILLA \defineactivetoken 206 {\Imacron} % 012A LATIN CAPITAL LETTER I WITH MACRON \defineactivetoken 207 {\Lcommaaccent} % 013B LATIN CAPITAL LETTER L WITH CEDILLA \defineactivetoken 208 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON \defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH ACUTE \defineactivetoken 210 {\Ncommaaccent} % 0145 LATIN CAPITAL LETTER N WITH CEDILLA \defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE \defineactivetoken 212 {\Omacron} % 014C LATIN CAPITAL LETTER O WITH MACRON \defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE \defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS \defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN \defineactivetoken 216 {\Uogonek} % 0172 LATIN CAPITAL LETTER U WITH OGONEK \defineactivetoken 217 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE \defineactivetoken 218 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE \defineactivetoken 219 {\Umacron} % 016A LATIN CAPITAL LETTER U WITH MACRON \defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS \defineactivetoken 221 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE \defineactivetoken 222 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON \defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S \defineactivetoken 224 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK \defineactivetoken 225 {\iogonek} % 012F LATIN SMALL LETTER I WITH OGONEK \defineactivetoken 226 {\amacron} % 0101 LATIN SMALL LETTER A WITH MACRON \defineactivetoken 227 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE \defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS \defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE \defineactivetoken 230 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK \defineactivetoken 231 {\emacron} % 0113 LATIN SMALL LETTER E WITH MACRON \defineactivetoken 232 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON \defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE \defineactivetoken 234 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE \defineactivetoken 235 {\edotaccent} % 0117 LATIN SMALL LETTER E WITH DOT ABOVE \defineactivetoken 236 {\gcommaaccent} % 0123 LATIN SMALL LETTER G WITH CEDILLA \defineactivetoken 237 {\kcommaaccent} % 0137 LATIN SMALL LETTER K WITH CEDILLA \defineactivetoken 238 {\imacron} % 012B LATIN SMALL LETTER I WITH MACRON \defineactivetoken 239 {\lcommaaccent} % 013C LATIN SMALL LETTER L WITH CEDILLA \defineactivetoken 240 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON \defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE \defineactivetoken 242 {\ncommaaccent} % 0146 LATIN SMALL LETTER N WITH CEDILLA \defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE \defineactivetoken 244 {\omacron} % 014D LATIN SMALL LETTER O WITH MACRON \defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE \defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS \defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN \defineactivetoken 248 {\uogonek} % 0173 LATIN SMALL LETTER U WITH OGONEK \defineactivetoken 249 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE \defineactivetoken 250 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE \defineactivetoken 251 {\umacron} % 016B LATIN SMALL LETTER U WITH MACRON \defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS \defineactivetoken 253 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE \defineactivetoken 254 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON \defineactivetoken 255 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-pdf.tex0000644000175000017500000000002514536300610024555 0ustar hillehille\input supp-pdf.mkii context-modules-20240428/texmf-dist/tex/context/base/mkii/anch-pos.mkii0000644000175000017500000006505414536300610024675 0ustar hillehille%D \module %D [ file=anch-pos, %D version=1999.08.01, %D title=\CONTEXT\ Anchoring Macros, %D subtitle=Positioning Support, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % needs a cleanup, things may change; we also need to move the mp % related code to meta-pos % shorter tags, ..:achtergrond:.. etc in pos actions % dubbele text- * pos's eruit % class pos -> als gelijk aan vorige, dan niet niet definieren % en erven, maw: % % 1 -> opslaan % 2 -> undef, dus == prev % 3 -> undef, dus == prev % 4 -> opslaan \writestatus{loading}{ConTeXt Anchoring Macros / Positioning} % todo: topskip als optie voor eerste regel achtergrond % todo: build pos layers on top of layers % todo: positionlayer pos van text-1 etc delen %D Although \TEX\ has a rather powerful channel to the outside %D world, called \type {\special}, real communication with %D other programs is complicated by the fact that no positional %D information is available. Mid 1999, I discussed this with %D \THANH, the author of \PDFTEX, and after some experiments, %D \PDFTEX\ was extended with a simple but effective mechanism, %D that provided positional information. The interesting %D thought is that, although \TEX\ is frozen, similar %D functionality could have been achieved with \type %D {\specials} and an additional \DVI\ postprocessor. %D %D Since we want to be as compatible as can be, \CONTEXT\ will %D support both methods, although the development is primarily %D driven by the \PDFTEX\ way of doing things. Since the %D mechanism is basically not limited to one application, for %D the moment we stick to building the functionality around one %D \CONTEXT\ special command, but at the same time we keep our %D eyes open for extensions in other directions. %D %D A question that may arise when one reads this module, is to %D what extend these macros are generic, in the sense that they %D could be collected in a support module instead of a core %D module. Since the mechanism described here will closely %D cooperate with the \METAPOST\ support built in \CONTEXT, %D which in turn will be tightly integrated with the \CONTEXT\ %D overlay mechanisms, I decided to write a core module instead %D of a support one. This makes even more sense, when one takes %D into account that this kind of support depends on special %D drivers. \unprotect %D The first application of positional information was embedded %D graphics. Since we are interacting with text, it made sense %D to take the current line height and depth into account too. %D This is why we have two basic position macros: one for %D simple positions, and one for boxes. %D %D We could have sticked to one special, and actually did so in %D earlier experiments, but for convenience, as well for %D clearness, we now have two alternatives. This approach will %D save us quite some bytes when storing large quantities of %D positional information. We save as less information as %D needed, that is, we save no dimensions, in a \METAPOST\ %D friendly way. %D %D The three specials involved are: %D %D \starttyping %D \dosetposition {identifier} %D \dosetpositionwhd {identifier} {width} {height} {depth} %D \dosetpositionplus {identifier} {width} {height} {depth} {list} %D \dosetpositionpapersize {width} {height} %D \stoptyping \newbox\positionbox \newif \ifpositioning \def\POSprefix{POS::} \def\setpospxy#1#2#3#4% {\@EA\xdef\csname\POSprefix#1\endcsname {\number#2,% \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,% \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax}} \def\setpospxywhd#1#2#3#4#5#6#7% {\@EA\xdef\csname\POSprefix#1\endcsname {\number#2,% \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,% \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax,% \the\dimexpr#5\relax,% \the\dimexpr#6\relax,% \the\dimexpr#7\relax}} \def\setpospxyplus#1#2#3#4#5#6#7#8% {\@EA\xdef\csname\POSprefix#1\endcsname {\number#2,% \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,% \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax,% \the\dimexpr#5\relax,% \the\dimexpr#6\relax,% \the\dimexpr#7\relax,% #8}} %D This is real tricky! The page anchor is applied to the %D page box and therefore flushed first. So, when present, it %D is applied to all positions except itself. \chardef\positionanchormode=0 % don't relocate page origin \chardef\positionanchormode=1 % relocate page origin once %D The core set macros. \def\pxypos {\pospxy} % obsolete \def\pxyposwhd {\pospxywhd} % obsolete \def\pxyposplus{\pospxyplus} % obsolete \def\resetpositions {\let\pospxy \gobblefourarguments \let\pospxywhd \gobblesevenarguments \let\pospxyplus\gobbleeightarguments} \def\setpositions {\let\pospxy \setpospxy \let\pospxywhd \setpospxywhd \let\pospxyplus\setpospxyplus} %D We need to initialize. \resetpositions \addutilityreset{positions} %D Sometimes we want to trick the position handler a bit: \def\replacepospxywhd#1#2#3#4#5#6#7% {\@EA\xdef\csname\POSprefix#1\endcsname {\number#2,% \the\dimexpr#3\relax,% \the\dimexpr#4\relax,% \the\dimexpr#5\relax,% \the\dimexpr#6\relax,% \the\dimexpr#7\relax}} %D For postprocessing purposes, we save the number of %D positions. \newcount\currentpositions % current number of positions \newcounter\totalnofpositions % total from previous run \appendtoks \expanded{\savecurrentvalue\noexpand\totalnofpositions{\the\currentpositions}}% \to \everybye %D The next switch can be used to communicate a special %D situation. Positioning and associated actions can be %D executed any time. However, in for instance backgrounds %D they can be collected in a layer, for instance the text %D layer (especially the hidden text layer). In the case of %D floats, we run into problems, since the page information is %D not applicable when the content floats indeed. In such %D situations one can treat positions and graphics local. \newif\iflocalpositioning %D Watch out: sometimes a pagebreak occurs inside a float %D placement, so there we need to disable local mode. \appendtoks \localpositioningtrue \to \everyinsidefloat \appendtoks \localpositioningfalse \to \everypagebody \def\checkpositions {\startnointerference \protectlabels \doutilities{positions}\jobname\empty\relax\relax \global\let\checkpositions\relax \stopnointerference} %D Since the positional values are to be fully expandable, we %D need to preload them as soon as possible, which is why we %D load the data when we start a text. \appendtoks \checkpositions \to \everystarttext %D Positions are either generated at a delayed write time %D (in \PDFTEX), or derived from the dvi file. The actual %D method is implemented in a special driver. If needed, the %D driver can fall back on the following macros. \def\dolazysaveposition#1#2#3#4% tag page x y {\expanded{\writeutilitycommand{\noexpand\pospxy {#1}{#2}{#3}{#4}}}} \def\dolazysavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d {\expanded{\writeutilitycommand{\noexpand\pospxywhd {#1}{#2}{#3}{#4}{#5}{#6}{#7}}}} \def\dolazysavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list {\expanded{\writeutilitycommand{\noexpand\pospxyplus {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}} \def\dosaveposition#1#2#3#4% tag page x y {\expanded{\immediatewriteutilitycommand{\noexpand\pospxy {#1}{#2}{#3}{#4}}}} \def\dosavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d {\expanded{\immediatewriteutilitycommand{\noexpand\pospxywhd {#1}{#2}{#3}{#4}{#5}{#6}{#7}}}} \def\dosavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list {\expanded{\immediatewriteutilitycommand{\noexpand\pospxyplus {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}} %D \macros %D {MPp, MPx, MPy, MPw, MPh, MPd, %D MPxy, MPll, MPlr, MPur, MPul, MPpos} %D %D Access to the positional information is provided by macros %D with short names that are clearly meant for \METAPOST. \def\MPp {\doMPxyhdwlr\doMPp } \def\MPx {\doMPxyhdwlr\doMPx } \def\MPy {\doMPxyhdwlr\doMPy } \def\MPw {\doMPxyhdwlr\doMPw } \def\MPh {\doMPxyhdwlr\doMPh } \def\MPd {\doMPxyhdwlr\doMPd } \def\MPxy {\doMPxyhdwlr\doMPxy } \def\MPll {\doMPxyhdwlr\doMPll } \def\MPlr {\doMPxyhdwlr\doMPlr } \def\MPur {\doMPxyhdwlr\doMPur } \def\MPul {\doMPxyhdwlr\doMPul } \def\MPpos{\doMPxyhdwlr\doMPpos} \def\doMPp #1,#2,#3,#4,#5,#6,#7\relax{#1} \def\doMPx #1,#2,#3,#4,#5,#6,#7\relax{#2} \def\doMPy #1,#2,#3,#4,#5,#6,#7\relax{#3} \def\doMPw #1,#2,#3,#4,#5,#6,#7\relax{#4} \def\doMPh #1,#2,#3,#4,#5,#6,#7\relax{#5} \def\doMPd #1,#2,#3,#4,#5,#6,#7\relax{#6} \def\doMPxy #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3)} \def\doMPll #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3-#6)} \def\doMPlr #1,#2,#3,#4,#5,#6,#7\relax{(#2+#4,#3-#6)} \def\doMPur #1,#2,#3,#4,#5,#6,#7\relax{(#2+#4,#3+#5)} \def\doMPul #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3+#5)} \def\doMPpos#1,#2,#3,#4,#5,#6,#7\relax{#1,#2,#3,#4,#5,#6} \def\doMPxyhdwlr#1#2% {\ifcsname\POSprefix#2\endcsname \@EA\@EA\@EA#1\csname\POSprefix#2\endcsname,0pt,0pt,0pt,0pt\relax \else #10,0pt,0pt,0pt,0pt,0pt,0pt\relax \fi} %D \macros %D {MPplus, MPrest, MPv, MPvv} %D %D Since we will probably keep on extending, we provide a %D general extension macro. The plus alternative takes an %D extra argument, denoting what additional parameter to pick %D up. So, the third extra is fetched with, %D %D \starttyping %D \MPplus{identifier}{3}{default} %D \stoptyping %D %D All extras (comma separated) are fetched with: %D %D \starttyping %D \MPrest{identifier} %D \stoptyping %D %D The extra parameters are not treated. \def\MPplus {\MPdoplus\doMPplus} \def\MPrest#1{\MPdoplus\doMPrest{#1}{}} \def\MPdoplus#1#2#3#4% {\ifcsname\POSprefix#2\endcsname \@EA\@EA\@EA#1\csname\POSprefix#2\endcsname,,,,,,,,,\relax{#3}% \else #4% \fi} \def\doMPplus#1,#2,#3,#4,#5,#6,% {\dodoMPplus} \def\dodoMPplus#1,#2,#3,#4,#5,#6,#7,#8\relax#9% {\ifcase#9\or#1\or#2\or#3\or#4\or#5\or#6\or#7\else\dododoMPplus#8\relax{#9}\fi} \def\dododoMPplus#1,#2,#3,#4,#5,#6,#7,#8\relax#9% {\ifcase#9\or\or\or\or\or\or\or\or#1\or#2\or#3\or#4\or#5\or#6\or#7\fi} \def\doMPrest#1,#2,#3,#4,#5,#6,#7,,#8\relax#9% {#7} %D \macros %D {MPanchor} %D %D For readability we define a few synonyms: \def\MPanchor{\MPpos} %D \macros %D {POSp, POSx, POSy, POSh, POSd, POSw} %D %D and: \def\POSp{\MPp} \def\POSx{\MPx} \def\POSy{\MPy} \def\POSh{\MPh} \def\POSd{\MPd} \def\POSw{\MPw} %D There are two low level positioning macros. Both store the %D position as well as execute an action associated with that %D position. \def\initializenextposition {\ifpositioning \else \global\positioningtrue \dosetpositionpapersize {\printpaperwidth }% {\printpaperheight}% \fi \global\advance\currentpositions\plusone} \def\setpositiononly#1% {\iftrialtypesetting % nothing \else \initializenextposition \def\currentposition{#1}% \dosetposition\currentposition \fi} \def\setposition#1% {\iftrialtypesetting % nothing \else \initializenextposition \def\currentposition{#1}% \dosetposition\currentposition \traceposstring\llap\green{\currentposition>}% \dopositionaction\currentposition \fi} \def\setpositiondata#1#2#3#4% {\iftrialtypesetting \else \initializenextposition \hbox {\def\currentposition{#1}% \dosetpositionwhd\currentposition {\the\dimexpr#2\relax}% {\the\dimexpr#3\relax}% {\the\dimexpr#4\relax}% \traceposstring\llap\green{\currentposition>}% \dopositionaction\currentposition \hss}% \fi} \def\setpositionbox#1% {\dowithnextbox {\iftrialtypesetting \flushnextbox \else \initializenextposition \hbox to \nextboxwd {\edef\currentposition{#1}% \dosetpositionwhd\currentposition {\the\nextboxwd}% {\the\nextboxht}% {\the\nextboxdp}% \traceposstring\llap\green{\currentposition>}% \setbox\positionbox\flushnextbox \dopositionaction\currentposition \box\positionbox \hss}% \fi}} \def\setpositiondataplus#1#2#3#4#5% {\iftrialtypesetting \else \initializenextposition \hbox % bug: to \nextboxwd {\edef\currentposition{#1}% \dosetpositionplus\currentposition {\the\dimexpr#2\relax}% {\the\dimexpr#3\relax}% {\the\dimexpr#4\relax}% {#5}% \traceposstring\rlap\magenta{<\currentposition}% \dopositionaction\currentposition \hss}% \fi} \def\setpositionplus#1#2% {\dowithnextbox {\iftrialtypesetting \flushnextbox \else \initializenextposition \hbox to \nextboxwd {\edef\currentposition{#1}% \dosetpositionplus\currentposition {\the\nextboxwd}% {\the\nextboxht}% {\the\nextboxdp}% {#2}% \traceposstring\rlap\magenta{<\currentposition}% \setbox\positionbox\flushnextbox \dopositionaction\currentposition \box\positionbox \hss}% \fi}} \let\currentposition\s!unknown %D A few more low level macros take care of defining and %D recalling actions. We could save this information in the %D position containers themselves, this would save hash %D entries, but at the cost of much more time consuming %D expansion. Actions are saved globally! \newtoks\everypositionaction \let\POSactionprefix\POSprefix \def\dosetpositionaction#1% {\setgvalue{\POSactionprefix#1::}} %D The lists can become quite long (also because there can %D be lots of parameters passed on) so we provide a hook %D to clean up the list afterwards. \let\cleanuppositionaction\gobbleoneargument \def\doifpositionaction#1% {\ifcsname\POSactionprefix#1::\endcsname \@EA\firstofoneargument \else \@EA\gobbleoneargument \fi} \def\doifpositionactionelse#1% {\ifcsname\POSactionprefix#1::\endcsname \@EA\firstoftwoarguments \else \@EA\secondoftwoarguments \fi} %D We can copy a position with: %D %D \starttyping %D \copyposition {to} {from} %D \stoptyping %D %D Again, this is a global action. \def\copyposition#1#2% {\ifcsname\POSprefix#2\endcsname \global\@EA\let\csname\POSprefix#1\@EA\endcsname\csname\POSprefix#2\endcsname \fi} %D The fact that handling positions is a two pass operation, is %D one of the reasons why we need to be able to test for %D existence, using: %D %D \starttyping %D \doifpositionelse {identifier} {found action} {not found action} %D \stoptyping \def\doifpositionelse#1% {\ifcsname\POSprefix#1\endcsname \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} %D We have now arrived at a few macros that would make sense as %D support macros, but ended up in the core. %D \macros %D {xypos} %D %D We have several macros available to save positions. Later %D we will see applications. %D %D \starttabulate[|l|l||] %D \NC \type {\xypos} \NC \NC simple position with no dimensions \NC \NR %D \NC \type {\hpos} \NC \NC position and characteristics of a \type {\hbox} \NC \NR %D \NC \type {\vpos} \NC \NC position and characteristics of a \type {\vbox} \NC \NR %D \NC \type {\bpos} \NC b: \NC begin point in a line \NC \NR %D \NC \type {\epos} \NC e: \NC end point in a line \NC \NR %D \NC \type {\fpos} \NC f: \NC begin point in a paragraph \NC \NR %D \NC \type {\tpos} \NC t: \NC end point in a paragraph \NC \NR %D \stoptabulate %D %D Each macro takes an identifier as argument, and the \type %D {\hpos} and \type {\vpos} also expect box content. % \def\xypos{\initializenextposition\dosetposition} \let\xypos\setpositiononly \def\hpos#1{\dontleavehmode\setpositionbox{#1}\hbox} \def\vpos#1{\setpositionbox{#1}\vbox} \def\bpos#1{\hpos{b:#1}{\strut}\ignorespaces} \def\epos#1{\removelastspace\hpos{e:#1}{\strut}} \def\fpos#1% {\setpositionplus{b:#1}{\number\parposcounter}\horizontalstrut \ignorespaces} \def\tpos#1% {\removelastspace \setpositionplus{e:#1}{\number\parposcounter}\horizontalstrut} \def\ffpos#1% {\setpositionplus{b:#1}{\number\parposcounter}\horizontalstrut\wpos{#1}% \ignorespaces} \def\ttpos#1% {\removelastspace \setpositionplus{e:#1}{\number\parposcounter}\horizontalstrut} \def\wpos#1% {\dontleavehmode\vadjust % may disappear if buried {\setbox0\hbox{\raise\strutdp\hbox{\rawwpos{#1}}}% \rlap{\smashedbox0}}} \def\wwpos#1% \hsmashed{\llap{\rawwpos{#1}}} {\rlap {\setbox0\hbox{\rawwpos{#1}}% \smashedbox0}} \def\rawwpos#1% {\hpos{w:#1} {\strut \hskip-\leftskip \hskip\hsize \hskip-\rightskip}} % the next macro disables par positions (in inner boxes) and % only registers the width \def\setinnerparpositions {\let\fpos\ffpos \let\tpos\ttpos \let\wpos\wwpos} % example of usage: (see for application "techniek") % % \appendtoks % \setinnerparpositions % \to \everytabulate %D When we want to calculate more complex backgrounds, we %D need to know what the current indentation scheme is. At %D the cost of many positions and memory, we can keep track %D of them. This mechanism is activated automatically %D based on information collected in the previous pass. \newcount\parposcounter \newif\ifpositioningpar % we can check for used entries, and if not, then not add one \def\enableparpositions % global {\global\positioningtrue \global\positioningpartrue} \def\disableparpositions % local {\positioningparfalse} \def\registerparoptions {\ifpositioningpar \ifpositioning \iftrialtypesetting \else \ifinpagebody \else \ifmmode \else \ifinformula \else \ifprocessingverbatim \iflinepar \doregisterparoptions \fi \else \doregisterparoptions \fi \fi \fi \fi \fi \fi \fi} \chardef\parposstrut=1 % 0 => no strut data, so fall backs used \newif\iftracepositions % \def\doregisterparoptions % {\global\advance\parposcounter\plusone % \begingroup % \leftskip 1\leftskip % \rightskip1\rightskip % \setpositiondataplus % {p:\number\parposcounter}% identifier % {\the\zeropoint}% % {\the\strutht}% % {\the\strutdp}% % {\the\hsize ,% 1 % \the\leftskip ,% 2 % \the\rightskip ,% 3 % \the\hangindent,% 4 % \the\hangafter ,% 5 (num) % \the\parindent }% 6 % %\normalhbox{\registerparsymbol}% % \registerparsymbol % \endgroup} \def\doregisterparoptions {\global\advance\parposcounter\plusone \setpositiondataplus {p:\number\parposcounter}% identifier {\the\zeropoint}% {\the\strutht}% {\the\strutdp}% {\the\hsize,\the\dimexpr\leftskip\relax,\the\dimexpr\rightskip\relax,\the\hangindent,\the\hangafter,\the\parindent}% %\normalhbox{\registerparsymbol}% \iftracepositions\registerparsymbol\fi} \def\traceposstring#1#2#3% {\iftracepositions \smashedhbox {#1{\infofont#2#3}% \scratchdimen.5\points \kern-2\scratchdimen \vrule\!!width4\scratchdimen\!!height\scratchdimen\!!depth\scratchdimen}% \fi} \def\registerparsymbol {\iftracepositions \smashedhbox to \zeropoint {\hss \startcolor[blue]% \llap{\infofont\number\parposcounter}% \scratchdimen\onepoint \vrule \!!width 4\scratchdimen \!!height2\scratchdimen \!!depth 2\scratchdimen \stopcolor \hss}% \fi} % \appendtoks \registerparoptions \to \everypar %D Eperimental code, don't use this yet: (must be sped up anyway) \def\@@noden{node:n:} \def\@@nodeo{node:o:} \def\@@nodep{node:p:} \def\doifelsenodelocation#1% {\ifcsname\@@noden#1\endcsname \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\nextnodelocation#1% {\ifcsname\@@noden#1\endcsname\pluscounter{\@@noden#1}\fi} \def\newnodelocation#1% {\ifcsname\@@noden#1\endcsname \setcounter{\@@noden#1}\zerocount \letgvalue {\@@nodeo#1}\!!zerocount \fi} \def\tagnodelocation#1% {\ifcsname\@@noden#1\endcsname\xypos{\@@nodep#1:\countervalue{\@@noden#1}}\fi} \def\getnodelocationp#1{\MPp{\@@nodep#1:\countervalue{\@@noden#1}}} \def\getnodelocationx#1{\MPx{\@@nodep#1:\countervalue{\@@noden#1}}} \def\getnodelocationy#1{\MPy{\@@nodep#1:\countervalue{\@@noden#1}}} \def\numnodelocationp#1#2{\MPp{\@@nodep#1:\number#2}} \def\numnodelocationx#1#2{\MPx{\@@nodep#1:\number#2}} \def\numnodelocationy#1#2{\MPy{\@@nodep#1:\number#2}} \def\getnodelocationn#1{\countervalue{\@@noden#1}} \def\getnodelocationo#1{\getvalue {\@@nodeo#1}} \chardef\nodelocationmode\plusone \def\analyzenodelocation#1% {\ifcsname\@@noden#1\endcsname \doanalyzenodelocation{#1}{\getnodelocationn{#1}}\zerocount \fi} \def\doanalyzenodelocation#1#2#3% class n default {\begingroup \donefalse \ifcase\nodelocationmode % do nothing \else \edef\nodelocationselfn{#2}% \edef\nodelocationselfp{\numnodelocationp{#1}\nodelocationselfn}% \edef\nodelocationselfx{\numnodelocationx{#1}\nodelocationselfn}% \edef\nodelocationselfy{\numnodelocationy{#1}\nodelocationselfn}% \scratchcounter\plusone \doloop {\ifnum\recurselevel=\nodelocationselfn\relax \donetrue \else \edef\nodelocationotherp{\numnodelocationp{#1}\recurselevel}% \edef\nodelocationotherx{\numnodelocationx{#1}\recurselevel}% \edef\nodelocationothery{\numnodelocationy{#1}\recurselevel}% \ifcase\nodelocationmode \or % ok for single column \ifcase\nodelocationotherp\relax \exitloop \else\ifnum\nodelocationotherp<\nodelocationselfp\relax \donetrue \advance\scratchcounter\plusone \else\ifnum\nodelocationotherp>\nodelocationselfp\relax % skip \else\ifdim\nodelocationothery>\nodelocationselfy\relax \donetrue \advance\scratchcounter\plusone \else\ifdim\nodelocationothery<\nodelocationselfy\relax % skip \else\ifdim\nodelocationotherx<\nodelocationselfx\relax \donetrue \advance\scratchcounter\plusone \fi\fi\fi\fi\fi\fi \or % acceptable for double column \ifcase\nodelocationotherp\relax \exitloop \else\ifnum\nodelocationotherp<\nodelocationselfp\relax \donetrue \advance\scratchcounter\plusone \else\ifnum\nodelocationotherp>\nodelocationselfp\relax % skip \else\ifnum\recurselevel>\nodelocationselfn\relax \donetrue \exitloop \else \donetrue \advance\scratchcounter\plusone \fi\fi\fi\fi \else \exitloop \fi \fi}% \fi \ifdone \else \scratchcounter#3\relax \fi \setxvalue{\@@nodeo#1}{\the\scratchcounter}% \endgroup} \unexpanded\def\shownodelocation#1% {\ifcsname\@@noden#1\endcsname \analyzenodelocation{#1}% (#1,% n:\getnodelocationn{#1},% p:\getnodelocationp{#1},% x:\getnodelocationx{#1},% y:\getnodelocationy{#1},% o:\getnodelocationo{#1})% \fi} %D \macros %D {doifoverlappingelse} %D %D A first application of positional information, is to %D determine if two boxes do overlap: %D %D \starttyping %D \doifoverlappingelse{point a}{point b} %D {action when overlapping} %D {action when not overlapping} %D \stoptyping \def\overlappingmargin{-2\scaledpoint} \def\doifoverlappingelse#1#2% {\begingroup \donefalse \edef\!!stringa{#1}\edef\!!stringb{#2}% \ifnum\MPp\!!stringa=\MPp\!!stringb\relax \!!dimena\MPx\!!stringa \!!dimenb\dimexpr\MPx\!!stringa+\MPw\!!stringa\relax \!!dimenc\dimexpr\MPy\!!stringa-\MPd\!!stringa\relax \!!dimend\dimexpr\MPy\!!stringa+\MPh\!!stringa\relax \!!dimene\MPx\!!stringb \!!dimenf\dimexpr\MPx\!!stringb+\MPw\!!stringb\relax \!!dimeng\dimexpr\MPy\!!stringb-\MPd\!!stringb\relax \!!dimenh\dimexpr\MPy\!!stringb+\MPh\!!stringb\relax \ifdim\overlappingmargin=\zeropoint\else \advance\!!dimena-\overlappingmargin \advance\!!dimenb+\overlappingmargin \advance\!!dimenc-\overlappingmargin \advance\!!dimend+\overlappingmargin \advance\!!dimene-\overlappingmargin \advance\!!dimenf+\overlappingmargin \advance\!!dimeng-\overlappingmargin \advance\!!dimenh+\overlappingmargin \fi % more often eh fb eg fg \def\checkone##1##2% {\ifdim##1<\!!dimena \else \ifdim##1>\!!dimenb \else \ifdim##2<\!!dimenc \else \ifdim##2>\!!dimend \else \donetrue \fi\fi \fi\fi}% \def\checktwo##1##2% {\ifdim##1<\!!dimene \else \ifdim##1>\!!dimenf \else \ifdim##2<\!!dimeng \else \ifdim##2>\!!dimenh \else \donetrue \fi\fi \fi\fi}% \checkone\!!dimene\!!dimeng \ifdone \else \checkone\!!dimene\!!dimenh \ifdone \else \checkone\!!dimenf\!!dimeng \ifdone \else \checkone\!!dimenf\!!dimenh \ifdone \else \checktwo\!!dimena\!!dimenc \ifdone \else \checktwo\!!dimena\!!dimend \ifdone \else \checktwo\!!dimenb\!!dimene \ifdone \else \checktwo\!!dimenb\!!dimenc \fi \fi \fi \fi \fi \fi \fi \fi \ifdone \endgroup\expandafter\firstoftwoarguments \else \endgroup\expandafter\secondoftwoarguments \fi} %D \macros %D {doifpositionsonsamepageelse, %D doifpositionsonthispageelse} %D %D Instead of letting the user handle fuzzy expansion, we %D provide a simple test on positione being on the same page. %D %D \starttyping %D \doifpositionsonsamepageelse{point a,point b} %D {action when on same page} %D {action when not on same page} %D \doifpositionsonthispageelse{point a,point b} %D {action when on this page} %D {action when not on this page} %D \stoptyping \def\dodoifpositionsonsamepageelse#1#2#3#4% {\bgroup \scratchcounter#1\donefalse \def\docommand##1% {\ifcase\scratchcounter \scratchcounter\MPp{##1}\donetrue \else \ifnum\scratchcounter=\MPp{##1}\relax\else\donefalse\fi \fi}% \rawprocesscommalist[#2]\docommand \ifdone\egroup#3\else\egroup#4\fi} \def\doifpositionsonsamepageelse{\dodoifpositionsonsamepageelse\!!zerocount} \def\doifpositionsonthispageelse{\dodoifpositionsonsamepageelse\realfolio } %D Plugins: \let\MPv \MPplus \let\MPvv\MPrest \let\MPanchor\MPpos \let\POSp\MPp \let\POSx\MPx \let\POSy\MPy \let\POSh\MPh \let\POSd\MPd \let\POSw\MPw \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/verb-sql.mkii0000644000175000017500000001404314536300610024710 0ustar hillehille%D \module %D [ file=verb-sql, %D version=2000.05.09, %D title=\CONTEXT\ Verbatim Macros, %D subtitle=Pretty \SQL\ Verbatim, %D author={Berend de Boer \& Hans Hagen}, %D date=\currentdate, %D copyright={Berend de Boer \& Hans Hagen}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Verbatim Macros / Pretty SQL Verbatim} %D \quotation {He, I want pretty pretting too!}, Berend cried out %D one day, \quotation {But now for \SQL.}. This query language %D shows code like: %D %D \startbuffer %D \startSQL %D select * -- some comment %D from tableA %D where 1 = 2 %D \stopSQL %D \stopbuffer %D %D \typebuffer %D %D and this should become something pretty like: %D %D \getbuffer %D %D or, with Berend's preferences: %D %D \startbuffer[setup] %D \setuptyping %D [SQL] %D [text=yes,palet=,icommand=\bf,vcommand=,ccommand=\it] %D \stopbuffer %D %D \getbuffer[setup] %D \getbuffer %D %D This kind of pretty printing is accomplished by: %D %D \typebuffer %D Like we did with the \JAVASCRIPT\ driver, we will borrow %D most of the macros from the \PERL\ driver. \ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi \unprotect %D \SQL\ has the one line comment sequence \type{--} and the %D multi line comment delimiters \type{/*} and \type{*/}. The %D next counter keeps track of multi line comment nesting. \newcount\SQLcommentlevel %D We need to handle \type{%}, \type{#} and \type{-} a bit %D different than in the \PERL\ driver. Compared to the %D \JAVASCRIPT\ driver |<|we copied most of the code from %D that one|>|, we now also have type~45. \gdef\SQLsetspecials% {\PLsetspecials \setpretty`\#=32 \setpretty`\:=41 \setpretty`\%=41 \setpretty`\/=43 \setpretty`\*=44 \setpretty`\-=45 } %D We need three additional handlers: \gdef\SQLsethandlers% {\PLsethandlers \installprettyhandler 43 \SQLtypefourthree \installprettyhandler 44 \SQLtypefourfour \installprettyhandler 45 \SQLtypefourfive } %D Next we have to do some general housekeeping. \gdef\SQLsetcontrols% {\PLsetcontrols \def\flushrestofverbatimline% {\endPLtypesix \ifcase\SQLcommentlevel \inPLcommentfalse \verbatimfont \fi \PLverbosefalse \PLverboseskipped=0}} \gdef\SQLsetvariables {\PLsetvariables \global\SQLcommentlevel=0 } \gdef\setupprettySQLtype% {\def\prettyidentifier{SQL}% \let\PLidentifiers=\SQLidentifiers \let\PLvariables=\SQLvariables \SQLsetvariables \SQLsetcontrols \SQLsethandlers \SQLsetspecials \PLsetdiagnostics} %D We have to look upto four characters ahead. If you don't %D grab the picture, just skip reading these macros. \gdef\SQLtypefourthree% {\handlenextnextpretty\doSQLtypefourthree\PLtypefourtwo} \gdef\doSQLtypefourthree#1#2% {\getprettydata{#2}% \ifnum\prettytype=43 \let\next=\dodoSQLtypefourthree \else\ifnum\prettytype=44 \global\advance\SQLcommentlevel by 1 \global\inPLcommenttrue \PLverbosecorrection \let\next=\SQLtogglecomment \else \let\next=\PLtypefourtwo \fi\fi \next{#1}#2} \gdef\SQLtogglecomment#1#2% {\ifnum\SQLcommentlevel=1 \prettynaturalfont \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty \else \getpretties{#1}{#2}% \fi} \gdef\dodoSQLtypefourthree% #1% {\endPLtypesix \handlenextnextpretty\dododoSQLtypefourthree\dodododoPLtypefourthree} \gdef\dododoSQLtypefourthree% {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoSQLtypefourthree} \gdef\dodododoSQLtypefourthree#1#2% {\ifinPLcomment \getpretties{#1}{#2}% \else \global\inPLcommenttrue \PLverbosecorrection \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty \fi} \gdef\SQLtypefourfour% {\handlenextnextpretty\doSQLtypefourfour\PLtypefourtwo} \gdef\doSQLtypefourfour#1#2% {\getprettydata{#2}% \ifnum\prettytype=43 \SQLtogglecomment{#1}#2% \global\advance\SQLcommentlevel by -1 \ifcase\SQLcommentlevel \global\inPLcommentfalse \prettyverbatimfont \fi \else \endPLtypesix \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \expandafter#2% \fi} %D Much of the indirect calls (\type {dodo..}) is due to %D looking ahead as well as midway pretty print changing. \gdef\SQLtypefourfive% {\handlenextnextpretty\doSQLtypefourfive\PLtypefourtwo} \gdef\doSQLtypefourfive#1#2% {\getprettydata{#2}% \ifnum\prettytype=45 \let\next=\dodoSQLtypefourfive \else \let\next=\PLtypefourtwo \fi \next{#1}#2} \gdef\dodoSQLtypefourfive% #1% {\endPLtypesix \handlenextnextpretty\dododoSQLtypefourfive\dodododoPLtypefourfive} \gdef\dododoSQLtypefourfive% {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoSQLtypefourfive} \gdef\dodododoSQLtypefourfive#1#2% {\ifinPLcomment \getpretties{#1}{#2}% \else \global\inPLcommenttrue \PLverbosecorrection \ifnaturaltextext \let\next\naturaltextext \else \prettynaturalfont \def\next{\beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty}% \fi \expandafter\next \fi} %D We need a different list of reserved words. This list %D replaces the \PERL\ one. \useprettyidentifiers \SQLidentifiers \SQLsetspecials add all alter and any as asc avg begin between break browse bulk by cascade case check close clustered coalesce column commit constraint contains count create cross cursor database default delete desc distinct drop else end exec execute exists exit fetch for foreign from grant group having if in index inner insert into is join key left like max min nocheck nonclustered not null of on open or order outer over plan prepare proc procedure public references return revoce right rollback rule select set sum table then to tran transaction trigger truncate uncommited union unique update use values varying view when where while with work primary \useprettyidentifiers \SQLvariables \SQLsetspecials not-yet-defined \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-mro.mkii0000644000175000017500000003152314536300610024733 0ustar hillehille\setinterfacemessage{references}{1}{referinta necunoscuta --} \setinterfacemessage{references}{30}{obiect necunoscut --} \setinterfacemessage{references}{3}{tip necunoscut de referinta --} \setinterfacemessage{references}{2}{referinta duplicat -- la pagina --} \setinterfacemessage{references}{5}{number of unknown references: --} \setinterfacemessage{references}{4}{referinta eronata --} \setinterfacemessage{references}{6}{number of illegal references: --} \setinterfacemessage{references}{25}{references from document '--' are not imported (export again)} \setinterfacemessage{references}{24}{references from document '--' are not exported} \setinterfacemessage{references}{title}{referinte} \setinterfacemessage{references}{26}{references from document '--' are imported} \setinterfacemessage{references}{31}{obiect duplicat --} \setinterfacemessage{references}{21}{documentul -- este incarcat} \setinterfacemessage{references}{22}{documentul -- nu este interactiv} \setinterfacemessage{references}{23}{referinta obscura -- (prefix=--)} \setinterfacemessage{documents}{1}{sheet --} \setinterfacemessage{documents}{title}{sheets} \setinterfacemessage{documents}{2}{number --} \setinterfacemessage{handlings}{1}{font handling --} \setinterfacemessage{handlings}{3}{unknown font handling --} \setinterfacemessage{handlings}{2}{font handling -- is loaded} \setinterfacemessage{handlings}{title}{handling} \setinterfacemessage{systems}{title}{sistem} \setinterfacemessage{systems}{41}{fisierul extern -- din grupul -- nu exista} \setinterfacemessage{systems}{9}{-- nu este gasit/procesat} \setinterfacemessage{systems}{91}{papertray --} \setinterfacemessage{systems}{8}{o noua versiune de fisier utilitar, este necesara o noua trecere} \setinterfacemessage{systems}{21}{nici o data utilitara nu este incarcata} \setinterfacemessage{systems}{20}{intelesul (ordinea) pentru -- incarcat} \setinterfacemessage{systems}{5}{macro-urile din modulul -- s-au incarcat} \setinterfacemessage{systems}{4}{comanda -- este deja definita} \setinterfacemessage{systems}{27}{Versiune} \setinterfacemessage{systems}{26}{Registri} \setinterfacemessage{systems}{25}{Referinte} \setinterfacemessage{systems}{24}{Blocuri} \setinterfacemessage{systems}{1}{se incarca utilitarul-fisierul este amanat (typemode)} \setinterfacemessage{systems}{23}{-- aranjat la --} \setinterfacemessage{systems}{22}{folositi un fisier utilitar valid} \setinterfacemessage{systems}{2}{-- s-a incarcat} \setinterfacemessage{systems}{19}{intelesul (sinonimele) pentru -- incarcat} \setinterfacemessage{systems}{18}{sinonimul -- -- nu exista} \setinterfacemessage{systems}{7}{macro-urile din modulul -- s-au incarcat deja} \setinterfacemessage{systems}{6}{nu s-au gasit macro-uri in modulul --} \setinterfacemessage{systems}{14}{s-a fortat trecere pa pagina noua in lista la --} \setinterfacemessage{systems}{15}{buffer salvat --} \setinterfacemessage{systems}{16}{buffer-ul -- s-a cules} \setinterfacemessage{systems}{17}{se culege buffer-ul verbatim --} \setinterfacemessage{systems}{13}{marcajul -- definit --} \setinterfacemessage{systems}{12}{fisierul utilitar nu este sortat, folositi texutil} \setinterfacemessage{systems}{11}{se creeaza un utilitar simplu} \setinterfacemessage{systems}{10}{nu folositi em in --} \setinterfacemessage{floatblocks}{1}{-- renumerotat / -- => --} \setinterfacemessage{floatblocks}{3}{-- mutat} \setinterfacemessage{floatblocks}{2}{-- salvat} \setinterfacemessage{floatblocks}{5}{ordinea adaptata} \setinterfacemessage{floatblocks}{4}{-- plasat} \setinterfacemessage{floatblocks}{7}{nr. blocurilor de jos limitat la --} \setinterfacemessage{floatblocks}{6}{nr. cadrelor de sus limitat la --} \setinterfacemessage{floatblocks}{9}{ordinea deranjata} \setinterfacemessage{floatblocks}{8}{mai putin de -- linii} \setinterfacemessage{floatblocks}{title}{Blocuri} \setinterfacemessage{floatblocks}{13}{there is nothing to split} \setinterfacemessage{floatblocks}{12}{nedefinit} \setinterfacemessage{floatblocks}{11}{nu este dat nici un bloc} \setinterfacemessage{floatblocks}{10}{-- limitat} \setinterfacemessage{interactions}{1}{aspectul -- x -- (b x h)} \setinterfacemessage{interactions}{3}{inactiv} \setinterfacemessage{interactions}{2}{activ} \setinterfacemessage{interactions}{5}{unknown attachment --} \setinterfacemessage{interactions}{4}{nu exista sincronizare pt. pagini (--) in hmode} \setinterfacemessage{interactions}{6}{attachment file -- does not exist} \setinterfacemessage{interactions}{title}{interactiuni} \setinterfacemessage{interactions}{21}{-- cod inserat} \setinterfacemessage{regimes}{1}{codificarea --} \setinterfacemessage{regimes}{3}{codificarea -- este necunoscuta} \setinterfacemessage{regimes}{2}{codificarea -- este Encarcata} \setinterfacemessage{regimes}{title}{codificari} \setinterfacemessage{structures}{1}{inceput de bloc sectiune --} \setinterfacemessage{structures}{title}{structuri} \setinterfacemessage{structures}{2}{sfarsit de bloc sectiune --} \setinterfacemessage{linguals}{1}{sablonul -- pentru -- s-a incarcat (n=--,e=--,m=--)} \setinterfacemessage{linguals}{3}{despartirea in silabe -- pentru -- s-a incarcat (n=--,e=--,m=--)} \setinterfacemessage{linguals}{2}{nu exista sabloane -- pentru -- (n=--,e=--,m=--) (--,--)} \setinterfacemessage{linguals}{5}{sabloanele pentru -- nu sunt incarcate} \setinterfacemessage{linguals}{4}{nu exista despartire in silabe -- pentru -- (n=--,e=--,m=--)} \setinterfacemessage{linguals}{7}{optiunile specifice ale limbii [--] introduc un spatiu --} \setinterfacemessage{linguals}{6}{limba -- nu este definita} \setinterfacemessage{linguals}{9}{limba -- este activa} \setinterfacemessage{linguals}{8}{optiunile specifice ale limbii [--] adaugate} \setinterfacemessage{linguals}{title}{limbi} \setinterfacemessage{linguals}{10}{sabloanele -- incarcate} \setinterfacemessage{verbatims}{1}{fisierul -- nu exista} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{filter -- is loaded} \setinterfacemessage{filters}{title}{filter} \setinterfacemessage{filters}{2}{unknown filter --} \setinterfacemessage{textblocks}{1}{o noua versiune, este nevoie de inca o trecere} \setinterfacemessage{textblocks}{3}{se citesc blocurile din --} \setinterfacemessage{textblocks}{2}{se scriu blocurile in --} \setinterfacemessage{textblocks}{5}{-- nu este ascuns} \setinterfacemessage{textblocks}{4}{este nevoie de inca o trecere} \setinterfacemessage{textblocks}{7}{-- ascuns} \setinterfacemessage{textblocks}{6}{-- ascuns si procesat} \setinterfacemessage{textblocks}{9}{-- nu este cules} \setinterfacemessage{textblocks}{8}{-- cules} \setinterfacemessage{textblocks}{title}{blocuri de text} \setinterfacemessage{textblocks}{12}{-- sarit peste} \setinterfacemessage{textblocks}{11}{-- incarcat si cules} \setinterfacemessage{textblocks}{10}{-- incarcat si procesat} \setinterfacemessage{encodings}{1}{codificarea --} \setinterfacemessage{encodings}{3}{codificarea -- este necunoscuta} \setinterfacemessage{encodings}{2}{codificarea -- este Encarcata} \setinterfacemessage{encodings}{title}{codificari} \setinterfacemessage{columns}{1}{este posibil numai -- coloane} \setinterfacemessage{columns}{3}{probleme, se dezactiveaza alinierea} \setinterfacemessage{columns}{2}{folositi \string\filbreak\space ca alternativa} \setinterfacemessage{columns}{5}{cadrele bottom (bottom float) nu sunt inca suportate} \setinterfacemessage{columns}{4}{cadrele top (top float) nu sunt inca suportate} \setinterfacemessage{columns}{7}{alinierea este oprita dupa 100 de incercari} \setinterfacemessage{columns}{6}{-- blocurile sunt amanate} \setinterfacemessage{columns}{9}{verificat alinierea} \setinterfacemessage{columns}{8}{aliniat in -- pas(i)} \setinterfacemessage{columns}{title}{coloane} \setinterfacemessage{columns}{13}{blocul lat este mutat in partea de sus a coloanelor} \setinterfacemessage{columns}{12}{blocul este mutat pe urmatoarea coloana / --} \setinterfacemessage{columns}{11}{blocul este prea lat pentru coloana} \setinterfacemessage{columns}{10}{a mai ramas (mai putin de) 1 linie} \setinterfacemessage{symbols}{1}{se incarca setul de simboluri --} \setinterfacemessage{symbols}{title}{simboluri} \setinterfacemessage{files}{1}{sinonimul fisierelor -- este folosit deja pentru --} \setinterfacemessage{files}{title}{fisiere} \setinterfacemessage{versions}{1}{lipseste @+} \setinterfacemessage{versions}{3}{pagini selectate: --} \setinterfacemessage{versions}{2}{pagini marcate} \setinterfacemessage{versions}{title}{versiuni} \setinterfacemessage{specials}{1}{-- incarcat} \setinterfacemessage{specials}{3}{-- s-a resetat} \setinterfacemessage{specials}{2}{nu este permis un nivel de imbricare mai mare --} \setinterfacemessage{specials}{5}{se incarca fisierul de definitii --} \setinterfacemessage{specials}{4}{comanda -- nu exista} \setinterfacemessage{specials}{7}{driver necunoscut --} \setinterfacemessage{specials}{6}{imbricarea nu este permisa} \setinterfacemessage{specials}{title}{specials} \setinterfacemessage{layouts}{1}{textheight adaptat cu -- la pagina --} \setinterfacemessage{layouts}{3}{textul amanat de -- ori} \setinterfacemessage{layouts}{2}{textul amanat de -- ori a fost plasat} \setinterfacemessage{layouts}{5}{blocuri marginale inactive} \setinterfacemessage{layouts}{4}{blocuri marginale active} \setinterfacemessage{layouts}{7}{se calculeaza spatiul pentru logo} \setinterfacemessage{layouts}{6}{setul -- de subpagini procesat (dimensiunea --)} \setinterfacemessage{layouts}{9}{acum nu se supota mai mult de -- nivele de adancime la iteratii} \setinterfacemessage{layouts}{8}{se calculeaza fundalurile} \setinterfacemessage{layouts}{title}{aranjamente} \setinterfacemessage{layouts}{11}{spatierea -- nu este permisa in gridmode} \setinterfacemessage{layouts}{10}{-- si -- nu se adauga pana la 1.0} \setinterfacemessage{fonts}{1}{codificarea --} \setinterfacemessage{fonts}{3}{varianta necunoscuta --} \setinterfacemessage{fonts}{2}{varianta -- este incarcata} \setinterfacemessage{fonts}{5}{stilul -- nu este definit} \setinterfacemessage{fonts}{4}{corpul de litere -- nu este definit} \setinterfacemessage{fonts}{7}{format necunoscut --} \setinterfacemessage{fonts}{6}{-- este incarcat} \setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)} \setinterfacemessage{fonts}{8}{stilul -- definit} \setinterfacemessage{fonts}{title}{corp de litere} \setinterfacemessage{fonts}{10}{fisier font necunoscut --} \setinterfacemessage{databases}{1}{--} \setinterfacemessage{databases}{3}{fisier global --} \setinterfacemessage{databases}{2}{fisier local --} \setinterfacemessage{databases}{4}{fisier necunoscut --} \setinterfacemessage{databases}{title}{baze de date} \setinterfacemessage{publications}{1}{file -- not found, unknown style ignored} \setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux} \setinterfacemessage{publications}{title}{publications} \setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex} \setinterfacemessage{publications}{4}{loading database from --} \setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno} \setinterfacemessage{publications}{6}{loading formatting style from --} \setinterfacemessage{javascript}{1}{se incarca scriptul --} \setinterfacemessage{javascript}{title}{javascript} \setinterfacemessage{javascript}{2}{preambul necunoscut --} \setinterfacemessage{check}{1}{lipseste '=' dupa '--' in linia --} \setinterfacemessage{check}{3}{-- -- inlocuieste un macro, folositi MAJUSCULE!} \setinterfacemessage{check}{2}{argumentul(ele) -- sunt asteptate in linia --} \setinterfacemessage{check}{title}{verificari} \setinterfacemessage{metapost}{1}{se incarca biblioteca metapost --} \setinterfacemessage{metapost}{title}{metapost} \setinterfacemessage{figures}{1}{figura -- nu poate fi gasita} \setinterfacemessage{figures}{3}{dimensions of -- are determined externally} \setinterfacemessage{figures}{2}{figura -- nu este presetata} \setinterfacemessage{figures}{5}{dimensions of -- are unknown} \setinterfacemessage{figures}{4}{dimensiunea figurii -- se incarca din fisierul insusi} \setinterfacemessage{figures}{6}{dimensiunea figurii -- este calculata de rlxtools} \setinterfacemessage{figures}{8}{obiectul figura -- este refolosit} \setinterfacemessage{figures}{title}{figuri} \setinterfacemessage{colors}{1}{sistem -- este activata global} \setinterfacemessage{colors}{3}{-- nu este definita --} \setinterfacemessage{colors}{2}{sistem -- este activata local} \setinterfacemessage{colors}{5}{sistem -- necunoscuta} \setinterfacemessage{colors}{4}{sistem -- este incarcata} \setinterfacemessage{colors}{7}{palette -- nu este disponibila} \setinterfacemessage{colors}{6}{paleta -- este disponibila} \setinterfacemessage{colors}{9}{spatiul de culoare -- nu este suportat} \setinterfacemessage{colors}{8}{specificatia -- la culoarea -- devine neagra} \setinterfacemessage{colors}{title}{culori} \setinterfacemessage{colors}{12}{-- is registered} \setinterfacemessage{colors}{11}{culoarea este convertita la gri} \setinterfacemessage{colors}{10}{spatiul de culoare -- este suportat} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/prop-lay.mkii0000644000175000017500000001004114536300610024712 0ustar hillehille%D \module %D [ file=prop-lay, %D version=2003.04.20, %D title=\CONTEXT\ Property Macros, %D subtitle=Layers, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Property Macros / Layers} %D Highly experimental, will probably change/evolve. Also, quite certainly %D we will no longer share code between mkii and mkiv. \unprotect \let\currentlayerproperty\empty \def\checklayerproperty {\doifelse{\checkedpropertyparameter\v!printable\currentproperty}\v!no {\def\printviewerlayer{0}} {\def\printviewerlayer{1}}% \dodefineviewerlayer \currentproperty % tag {\checkedpropertyparameter\c!title\currentproperty}% {\checkedpropertyparameter\c!state\v!start}% visible or hidden {0}% type (1=frozen) {\printviewerlayer}}% 1=printable \def\startlayerproperty {\let\currentlayerproperty\currentproperty \dostartviewerlayer\currentproperty} \def\stoplayerproperty {\dostopviewerlayer \let\currentlayerproperty\previousproperty} \def\domakelayerpropertylist {\iflocation \expandafter\domakeviewerlayerlist \else \expandafter\gobbleoneargument \fi} \setglobalsystemreference \rt!exec \v!HideLayer {hidelayer} \setglobalsystemreference \rt!exec \v!VideLayer {videlayer} \setglobalsystemreference \rt!exec \v!ToggleLayer {togglelayer} \setexecutecommandcheck {hidelayer} \domakelayerpropertylist \setexecutecommandcheck {videlayer} \domakelayerpropertylist \setexecutecommandcheck {togglelayer} \domakelayerpropertylist % \currentlayerproperty % \checklayerproperty % \startlayerproperty % \stoplayerproperty % \domakelayerpropertylist %D \starttext %D %D \setuppapersize[S4][S4] %D \setuplayout[middle] %D \setupcolors[state=start] %D \setupinteraction[state=start,color=,contrastcolor=] %D %D \defineproperty [L1] [layer] [title=layer 1] %D \defineproperty [L2] [layer] [title=layer 2] %D %D \button{HIDE L1}[HideLayer{L1}] %D \button{VIDE L1}[VideLayer{L1}] %D \button{TOGGLE L1}[ToggleLayer{L1}] %D %D \button{HIDE L2}[HideLayer{L2}] %D \button{VIDE L2}[VideLayer{L2}] %D \button{TOGGLE L2}[ToggleLayer{L2}] %D %D \noheaderandfooterlines \centerbox{\startoverlay %D {\definedfont[Mono at 150pt]% %D \startproperty[L1]\red TEST\stopproperty} %D {\definedfont[Mono at 150pt]% %D \startproperty[L2]\green TEST\stopproperty} %D \stopoverlay} \page %D %D \noheaderandfooterlines \centerbox{\startoverlay %D {\definedfont[Mono at 15pt]% %D \goto{\startproperty[L1]\red TEST\stopproperty}[CloseDocument]} %D {\definedfont[Mono at 15pt]% %D \goto{\startproperty[L2]\green TEST\stopproperty}[CloseDocument]} %D \stopoverlay} \page %D %D \startproperty[L1] %D level 1 \startproperty[L2]level 2 \stopproperty level 1 %D \stopproperty %D %D \startproperty[L1] %D level 1 \page \startproperty[L2]level 2 \stopproperty level 1 %D \stopproperty %D %D \stoptext %D Handy for tracing: \def\showlayoutcomponents {\let\startlayoutcomponent\dostartlayoutcomponent \let\stoplayoutcomponent \dostoplayoutcomponent} \def\dodefinelayoutcomponent#1#2% {\doifelsenothing{#2}% {\defineproperty[#1][\s!layer]}% {\defineproperty[#1][\s!layer][\c!title=#2]}} \def\dostartlayoutcomponent#1#2% {\doifelseproperty{#1}\donothing{\dodefinelayoutcomponent{#1}{#2}}% \startproperty[#1]} \def\dostoplayoutcomponent {\stopproperty} \let\startlayoutcomponent\gobbletwoarguments \let\stoplayoutcomponent \relax \protect \endinput % \def\remaplayering % {\dodoubleargument\doremaplayering} % % \def\remaplayering[#1][#2]% % {\setvalue{\??lm#1}{#2}} % % \def\remappedlayering#1% % {\ifcsname\??lm#1\endcsname % \@EA\remappedlayering\csname\??lm#1\endcsname\else#1% % \fi} % % \def\startshowlayering#1#2% % {\ifshowlayering % \defineproperty[\remappedlayering{#1}][\s!layer][\c!titel=#2]% % \startproperty[\remappedlayering{#1}]% % \fi} context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-spe.mkii0000644000175000017500000002056714536300610024673 0ustar hillehille%D \module %D [ file=lang-spe, %D version=2002.05.07, % 1996.01.25, %D title=\CONTEXT\ Language Macros, %D subtitle=Specifics, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This code was originally placed in the language %D initialization module, but isolating it is clearer. Language %D specifics evolved out of user demands for special features, %D like the german active quote. After a while I decided to %D associate them to languages in a more general way so that we %D could associate all kind of things with language switching. %D %D This is a typical example of functionality that occasionally %D gets improved based on user input and experience. Much of the %D code is pretty old and could probabbly be done in better ways. %D It's probably also the kind of code that has been and will be %D written over and over again by \TEX\ users around the world, %D so there are probably better implementations of similar %D functionality around. Therefore, users are invited to pop in %D their own handling as long as it does not interfere with %D existing code. Writing the more obscure macros that deal with %D this is a good learning experience (catcodes, lccodes, token %D lists, expansion, \unknown). \writestatus{loading}{ConTeXt Language Macros / Specifics} \unprotect %D \macros %D {everyresetlanguagespecifics,resetlanguagespecifics} %D %D Cleanup macros. \newevery \everyresetlanguagespecifics \relax \def\resetlanguagespecifics {\ifcase\protectionlevel \the\everyresetlanguagespecifics \else % to be translated % \writestatus\m!systems{don't change language in unprotected mode!}% \fi} \appendtoks \resetlanguagespecifics \to \everycleanupfeatures %D \macros %D {startlanguagespecifics,enablelanguagespecifics} %D %D Each language has its own typographic pecularities. Some of %D those can be influenced by parameters, others are handled by %D the interface, but as soon as specific commands come into %D view we need another mechanism. In the macro that activates %D a language, we call \type{\enablelanguagespecifics}. This %D macro in return calls for the setup of language specific %D macros. Such specifics are defined as: %D %D \starttyping %D \startlanguagespecifics[de] %D \installcompoundcharacter "a {\"a} %D \installcompoundcharacter "e {\"e} %D \installcompoundcharacter "s {\SS} %D \stoplanguagespecifics %D \stoptyping %D %D Instead of \type{[du]} we can pass a comma separated %D list, like \type{[du,nl]}. Next calls to this macro add the %D specifics to the current list. %D %D Before we actually read the specifics, we first take some %D precautions that will prevent spurious spaces to creep into %D the list. % We should use token registers, but alas, we run out of them and % \ETEX\ has a bug. Well, let's use a token register now (2006). \def\startlanguagespecifics% % we use double to {\bgroup \catcode`\^^I=\@@ignore \catcode`\^^M=\@@ignore \catcode`\^^L=\@@ignore \dodoubleempty\dostartlanguagespecifics} % get rid of spaces %D The main macro looks quite complicated but actually does %D nothing special. By embedding \type{\do} we can easily %D append to the lists and also execute them at will. Just to %D be sure, we check on spurious spaces. The second dummy %D argument gobbles spaces. \def\languageencoding {\ifx\characterencoding\nocharacterencoding \else \characterencoding-% \fi} \long\def\dostartlanguagespecifics[#1][#2]#3\stoplanguagespecifics {\egroup \processcommalist[#1]{\dosetlanguagespecifics{#3}}} % \long\def\dosetlanguagespecifics#1#2% % {\ifundefined{\??la\languageencoding#2\??la}\forgetlanguagespecifics[#2]\fi % % the next line catches the case that specifics are enabled *before* they are defined % \expandafter\ifx\csname\??la\languageencoding#2\??la\endcsname\relax\forgetlanguagespecifics[#2]\fi % \appendvalue{\??la\languageencoding#2\??la}{#1}% % \bgroup % \setbox\scratchbox\hbox{\enablelanguagespecifics[#2]}% % \ifdim\wd\scratchbox>\zeropoint % \showmessage\m!linguals7{\currentencoding-#2,\the\wd\scratchbox\space}\wait % \else % \showmessage\m!linguals8{\currentencoding-#2}% % \fi % \egroup % \doif{#2}\currentmainlanguage{\enablelanguagespecifics[#2]}} \def\languagespectag#1{\??la\languageencoding#1\??la} \long\def\dosetlanguagespecifics#1#2% {\edef\askedlanguagespecificstag{\languagespectag{#2}}% \ifcsname\askedlanguagespecificstag\endcsname \else \expandafter\newtoks\csname\askedlanguagespecificstag\endcsname \fi \csname\askedlanguagespecificstag\endcsname\@EA{\the\csname\askedlanguagespecificstag\endcsname#1}% \bgroup \setbox\scratchbox\hbox{\enablelanguagespecifics[#2]}% \ifdim\wd\scratchbox>\zeropoint \showmessage\m!linguals7{\currentencoding-#2,\the\wd\scratchbox\space}\wait \else \showmessage\m!linguals8{\currentencoding-#2}% \fi \egroup \doif{#2}\currentmainlanguage{\enablelanguagespecifics[#2]}} \def\forgetlanguagespecifics[#1]% {\csname\languagespectag{#1}\endcsname\emptytoks} %D Enabling them is rather straightforward. We only have to %D define \type{\do} in such a way that \type{{ }} is removed %D and the language key is gobbled. % \def\enablelanguagespecifics[#1]% % {\the\executeifdefined{\??la % \@EA\ifx\csname\??la#1\c!default\endcsname\relax % \languageencoding % \else % \csname\??la#1\c!default\endcsname % \fi % \??la}\emptytoks % \the\executeifdefined{\??la#1\??la}\emptytoks % \the\executeifdefined{\??la\languageencoding#1\??la}\emptytoks} % dup ? \def\enablelanguagespecifics[#1]% {\edef\askedlanguagespecificslanguage{\defaultlanguage{#1}}% \ifcsname\??la\askedlanguagespecificslanguage\??la\endcsname \the\csname\??la\askedlanguagespecificslanguage\??la\endcsname \fi \ifx\languageencoding\empty\else \ifcsname\??la\languageencoding\askedlanguagespecificslanguage\??la\endcsname \the\csname\??la\languageencoding\askedlanguagespecificslanguage\??la\endcsname \fi \fi} %D \macros %D {deactivatelanguagespecific} %D %D The next code makes it possible to disable the specifics. % \def\deactivatelanguagespecific#1% % {\ifundefined{l g s \string#1}% % \letgvalueempty{l g s \string#1}% signal to prevent dup def % \bgroup % \catcode`#1=\@@active % \uccode`~=`#1 % \uppercase{\doglobal\appendtoks\dodeactivatetoken{~}\to\everyresetlanguagespecifics}% % \egroup % \expanded{\doglobal\noexpand\appendtoks{#1}{\the\catcode`#1}}\to\everyresetlanguagespecifics % \fi} % \def\dodeactivatetoken#1#2#3% test needed to avoid clash with \unprotect % {\def#1{#2}\ifnum\catcode`#2=\@@active\catcode`#2=#3\relax\fi} %D We cannot hook this into the installer since language %D specifics can be anything. So far, we have the following %D potentially active characters. %D Beware, this should happen under an unprotected regime; %D thanks to Giuseppe Oblomov Bilotta, who first noticed %D that something was wrong. \protect % \deactivatelanguagespecific " % \deactivatelanguagespecific / % \deactivatelanguagespecific : % \deactivatelanguagespecific ; % \deactivatelanguagespecific ? % \deactivatelanguagespecific ! \unprotect % yes or no (taco wins: no) % \startlanguagespecifics[nl,cs,sk,fr] % \lccode`\'=`\' % \stoplanguagespecifics %D \macros %D {ordinaldaynumber, highordinalstr, ordinalstr} %D %D Efficient general ordinal number converters are sometimes %D difficult to implement. Fortunately dates never exceed the %D number~31. \ifx\high \undefined \let\high \firstofoneargument \fi % todo \ifx\notsmallcapped\undefined \let\notsmallcapped\firstofoneargument \fi % todo \def\highordinalstr#1{\high{\notsmallcapped{#1}}} \def\ordinalstr #1{\notsmallcapped{#1}} \def\ordinaldaynumber#1% \strippedcsname\ordinaldaynumber {\expanded{\executeifdefined{\currentlanguage ordinaldaynumber}% \noexpand\firstofoneargument{\number#1}}} %D Language specific converters have definitions like: %D %D \starttyping %D \def\enordinaldaynumber#1{...} %D \stoptyping %D %D Examples can be found in the other \type {lang} modules. % \ifprocessingXML is a nasty dependency \appendtoks \ifprocessingXML \else \resetlanguagespecifics \fi \to \everylanguage \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-fde.mkii0000644000175000017500000001047114536300610024636 0ustar hillehille%D \module %D [ file=enco-fde, %D version=2000.08.20, %D title=\CONTEXT\ Encoding Macros, %D subtitle=German Input Filter, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \installactivecharacter " \startlanguagespecifics[\s!de] \installcompoundcharacter "a {\aumlaut\midworddiscretionary} \installcompoundcharacter "e {\eumlaut\midworddiscretionary} \installcompoundcharacter "i {\iumlaut\midworddiscretionary} \installcompoundcharacter "o {\oumlaut\midworddiscretionary} \installcompoundcharacter "u {\uumlaut\midworddiscretionary} \installcompoundcharacter "s {\ssharp} \installcompoundcharacter "z {\ssharp} \installcompoundcharacter "A {\Aumlaut} \installcompoundcharacter "E {\Eumlaut} \installcompoundcharacter "I {\Iumlaut} \installcompoundcharacter "O {\Oumlaut} \installcompoundcharacter "U {\Uumlaut} \installcompoundcharacter "Z {SZ} \installcompoundcharacter "S {SS} \stoplanguagespecifics \startlanguagespecifics[\s!de] \installcompoundcharacter "ck {\discretionary {k-}{k}{ck}} \installcompoundcharacter "ff {\discretionary{ff-}{f}{ff}} \installcompoundcharacter "ll {\discretionary{ll-}{l}{ll}} \installcompoundcharacter "mm {\discretionary{mm-}{m}{mm}} \installcompoundcharacter "nn {\discretionary{nn-}{n}{nn}} \installcompoundcharacter "pp {\discretionary{pp-}{p}{pp}} \installcompoundcharacter "rr {\discretionary{rr-}{r}{rr}} \installcompoundcharacter "tt {\discretionary{tt-}{t}{tt}} \installcompoundcharacter "CK {\discretionary {K-}{K}{CK}} \installcompoundcharacter "FF {\discretionary{FF-}{F}{FF}} \installcompoundcharacter "LL {\discretionary{LL-}{L}{LL}} \installcompoundcharacter "MM {\discretionary{MM-}{M}{MM}} \installcompoundcharacter "NN {\discretionary{NN-}{N}{NN}} \installcompoundcharacter "PP {\discretionary{PP-}{P}{PP}} \installcompoundcharacter "RR {\discretionary{RR-}{R}{RR}} \installcompoundcharacter "TT {\discretionary{TT-}{T}{TT}} \stoplanguagespecifics \startlanguagespecifics[\s!de] \installcompoundcharacter "` {\startdelimitedtext[\v!quotation]} \installcompoundcharacter "' {\stopdelimitedtext} \installcompoundcharacter ". {\kern.1em\ignorespaces} %installcompoundcharacter "` {\languageparameter\c!leftquotation } %installcompoundcharacter "' {\languageparameter\c!rightquotation} \def\setupDElanguage {\setuplanguage [\s!de] [\c!leftsentence=\leftguillemot, \c!rightsentence=\rightguillemot, \c!leftsubsentence=\leftsubguillemot, \c!rightsubsentence=\rightsubguillemot]} \installcompoundcharacter "< {{\setupDElanguage|<|}} \installcompoundcharacter "> {{\setupDElanguage|>|}} \installcompoundcharacter "| {|*|} \stoplanguagespecifics % \hyphenatedword{hinauff|*|liegen} % \hyphenatedword{hinauff"|liegen} %D An experimental hack: % no {\simplifiedcompoundcharacter"} % \startencoding[pdfdoc] % \startlanguagespecifics[\s!de]% hm, a % is needed % \defineactivecharacter " {\"} % \stoplanguagespecifics % \stopencoding \startencoding[ec] \startlanguagespecifics[\s!de]% \installcompoundcharacter "a {\adiaeresis} \installcompoundcharacter "e {\ediaeresis} \installcompoundcharacter "i {\idiaeresis} \installcompoundcharacter "o {\odiaeresis} \installcompoundcharacter "u {\udiaeresis} \installcompoundcharacter "A {\Adiaeresis} \installcompoundcharacter "E {\Ediaeresis} \installcompoundcharacter "I {\Idiaeresis} \installcompoundcharacter "O {\Odiaeresis} \installcompoundcharacter "U {\Udiaeresis} \stoplanguagespecifics \stopencoding \startencoding[texnansi] \startlanguagespecifics[\s!de]% \installcompoundcharacter "a {\adiaeresis} \installcompoundcharacter "e {\ediaeresis} \installcompoundcharacter "i {\idiaeresis} \installcompoundcharacter "o {\odiaeresis} \installcompoundcharacter "u {\udiaeresis} \installcompoundcharacter "A {\Adiaeresis} \installcompoundcharacter "E {\Ediaeresis} \installcompoundcharacter "I {\Idiaeresis} \installcompoundcharacter "O {\Odiaeresis} \installcompoundcharacter "U {\Udiaeresis} \stoplanguagespecifics \stopencoding \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-ini.mkii0000644000175000017500000012617214536300610024655 0ustar hillehille %D \module %D [ file=page-ini, %D version=2000.10.20, %D title=\CONTEXT\ Page Macros, %D subtitle=Initializations, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Page Macros / Initializations} % still a dutch/english mess %D This class of modules implements the output routines and %D floating body support. Although the modules are relatively %D new, the code herein is rather old. This reordering was %D needed when column sets were implemented and sharing code %D started to make sense. %D The history shows from the code, since both column %D mechanism use a different way of looping over columns. \unprotect \def\m!otr{otr} \chardef\normalpagebox=255 \newbox\pagebox \ifx\recalculatelayout\undefined \let \recalculatelayout \relax \fi \ifx\recalculatelogos\undefined \let \recalculatelogos \relax \let \addlogobackground \gobbleoneargument % \fi \ifx\recalculatebackgrounds\undefined \let \recalculatebackgrounds \relax \let \addmainbackground \gobbleoneargument % \let \addtextbackground \gobbleoneargument % \let \addpagebackground \gobbleoneargument % \let \addprintbackground \gobbleoneargument % \let \addstatusinfo \gobbleoneargument % \fi \ifx\realpageno\undefined \countdef\realpageno = 0 \realpageno = 1 \countdef\userpageno = 1 \userpageno = 1 \countdef\subpageno = 2 \subpageno = 0 % !! \countdef\arrangeno = 3 \arrangeno = 0 % !! \let\pageno\userpageno \fi \ifx\realfolio\undefined \def\realfolio{\the\realpageno} \fi \newcount\nofshipouts \appendtoks \global\advance\nofshipouts\plusone \to \everyaftershipout % principle: % % multiple otr's % % (1) single column, simple routine (old one) % (2) multi column, collect and split routine (old one) % (3) multi column, page by page (new one, needed for taco) % (4) single column, spread handling (for fun) % (5) multi column, page by page, spread handling (as challenge) % % common components % % (1) float placement % (2) float flushing % (3) page body building % (4) ... % % ort % % + balancing % - mixed / one / multi / balancetofit % + backgrounds % + pre / post % + distances / heights % + ragged / baseline / normal % - pos sync % - last page % % - itemize / subtexts -> old mechanism % % floats % % - top / bottom / side / page / column / spead % - flush / packed flush / current page / next page / area % % footnotes % % + carry over pre column / local to column % + last column / pre last column / each column % - multiple classes % - area / page / end % % areas % % - top / bottom / mid in spread % % IMPORTANT % % switchtobodyfont in between ivm top % floats: % % tricky in balancing mode, a la huidige multi columns % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved \ifx\dosetuplayout\undefined % overloaded in page-lay ! \def\setuplayout{\dodoubleempty\getparameters[\??ly]} \fi \ifx\mkprocesscolumncontents\undefined\let\mkprocesscolumncontents\gobbleoneargument\fi \ifx\mkprocesspagecontents \undefined\let\mkprocesspagecontents \gobbleoneargument\fi \ifx\mkprocessboxcontents \undefined\let\mkprocessboxcontents \gobbleoneargument\fi \def\normalejectpenalty{-\plustenthousand } \let\ejectpenalty\normalejectpenalty \def\normalsuperpenalty{-\plustwentythousand} \let\superpenalty\normalsuperpenalty %D In case we're not running \ETEX, we need to bypass a %D couple of primitives. % ONE = single column % MUL = multi column % SET = columns sets \def\@@OTR{OTR} \let\OTRdefault\empty \def\OTRcommand#1% {\csname\@@OTR \ifcsname\@@OTR\OTRidentifier\strippedcsname#1\endcsname \OTRidentifier \else\ifcsname\@@OTR\OTRdefault\strippedcsname#1\endcsname % fallback \OTRdefault \fi\fi \strippedcsname#1\endcsname} % obsolete \def\installotr#1% andere naam, beter \connectotr of zo {\def\OTRidentifier{#1}} \def\activateotr#1#2% {\def\OTRidentifier{#1}% \def\OTRdefault {#2}} %D The initialization of the \type {\hsize} and \type {\vsize} %D depends on the OTR used. \def\setvsize {\OTRcommand\setvsize} \def\sethsize {\OTRcommand\sethsize} \def\finalsidefloatoutput {\OTRcommand\finalsidefloatoutput} \def\dopagecontents {\OTRcommand\dopagecontents} \def\dosettopinserts {\OTRcommand\dosettopinserts} \def\dosetbotinserts {\OTRcommand\dosetbotinserts} \def\dotopinsertions {\OTRcommand\dotopinsertions} \def\dobotinsertions {\OTRcommand\dobotinsertions} \def\dosetbothinserts {\OTRcommand\dosetbothinserts} \def\doflushfloats {\OTRcommand\doflushfloats} \def\flushfloatbox {\OTRcommand\flushfloatbox} \def\docheckiffloatfits {\OTRcommand\docheckiffloatfits} \def\someherefloat {\OTRcommand\someherefloat} \def\somefixdfloat {\OTRcommand\somefixdfloat} \def\somepagefloat {\OTRcommand\somepagefloat} \def\sometopsfloat {\OTRcommand\sometopsfloat} \def\somebotsfloat {\OTRcommand\somebotsfloat} \def\somesidefloat {\OTRcommand\somesidefloat} \def\flushsavedfloats {\OTRcommand\flushsavedfloats} \def\synchronizehsize {\OTRcommand\synchronizehsize} \def\gotonextpage {\OTRcommand\gotonextpage } \def\gotonextpageX{\OTRcommand\gotonextpageX} % will become obsolete % beter een \installotr#1 met #1 = macro en auto test \newif \iftraceotr \newif \ifinotr \newtoks \mainoutput \newcount\otrlevel % When issuing two \par\penalty-\plustenthousand's, only the first % triggers the otr; obscure feature or optimization? \def\outputcounter{-100010} % -10010 \def\doinvokeoutput {\iftraceotr \expandafter\dodotracedoutput \else \expandafter\dodoinvokeoutput \fi} \def\outputmessage#1#2#3% {\iftraceotr\writestatus\m!otr{#1 #2 \number#3}\fi} \def\dodoinvokeoutput#1% {\outputmessage+{special}{#1}% \bgroup\par\penalty#1\relax\egroup \outputmessage-{special}{#1}} \def\dodotracedoutput#1% {\outputmessage+{traced}{#1/\the\outputpenalty}% \writestatus\m!otr{c:\number\mofcolumns,v:\the\vsize,g:\the\pagegoal,t:\the\pagetotal}% \dodoinvokeoutput{#1}% \writestatus\m!otr{c:\number\mofcolumns,v:\the\vsize,g:\the\pagegoal,t:\the\pagetotal}% \outputmessage-{traced}{#1/\the\outputpenalty}} \def\installoutput#1#2% \invoke \action {\decrement\outputcounter \edef#1{\noexpand\doinvokeoutput{\outputcounter}}% \setvalue{\@@OTR\outputcounter}{#2}} \def\invokeoutputroutine {\outputmessage+{trying}\outputpenalty \executeifdefined{\@@OTR\the\outputpenalty}\dodonormaloutput \outputmessage-{trying}\outputpenalty} \def\dodonormaloutput {\outputmessage+{normal}\outputpenalty \the\OTRcommand\output \outputmessage-{normal}\outputpenalty} \mainoutput{\invokeoutputroutine} \output{\inotrtrue\the\mainoutput} %D Some hooks: \output{\inotrtrue\the\everybeforeoutput\the\mainoutput\the\everyafteroutput} \ifx\pagediscards\undefined \let\pagediscards\relax \fi \installoutput\synchronizeoutput % maybe add pagediscards {\ifvoid\normalpagebox\else \unvbox\normalpagebox \pagediscards % maybe not needed ? \fi} \installoutput\discardpage {\setbox\scratchbox\box\normalpagebox} %D In order to force consistent use of variables, we %D predefine a lot of them here. %D The next two registers can be used to store pre column %D material as well as footnotes or so. \newbox\precolumnbox \newdimen\precolumnboxheight \newbox\postcolumnbox \newdimen\postcolumnboxheight %D We reserve a counter for the number of columns as well as %D the current column. Both are not to be changed by users! \newcount\nofcolumns \nofcolumns = 1 \newcount\mofcolumns \mofcolumns = 1 \chardef\maxnofcolumns = 50 \chardef\allocatednofcolumns = 0 %D The next dimensions reports the final column height \newdimen\finalcolumnheights \newcount\finalcolumnlines %D During initialization the temporary boxes are allocated. %D This enables us to use as much columns as we want, without %D exhausting the pool of boxes too fast. We could have packed %D them in one box, but we've got enough boxes. %D %D Two sets of boxes are declared, the txtboxes are used for %D the text, the topboxes are for moved column floats. \def\@col@{@col@} \def\initializecolumns#1% {\ifnum#1>\maxnofcolumns \showmessage\m!columns1\maxnofcolumns \nofcolumns\maxnofcolumns \else \nofcolumns#1\relax \fi \ifnum\nofcolumns>\allocatednofcolumns \dorecurse\nofcolumns {\ifnum\recurselevel>\allocatednofcolumns\relax % \newbox\next \letgvalue{\@col@-\recurselevel-t}=\next \@EA\newbox\csname\@col@-\recurselevel-t\endcsname % text \@EA\newbox\csname\@col@-\recurselevel-f\endcsname % foot \@EA\newbox\csname\@col@-\recurselevel-h\endcsname % top insert \@EA\newbox\csname\@col@-\recurselevel-l\endcsname % top insert \fi}% \global\chardef\allocatednofcolumns=\nofcolumns \fi} \def\firstcolumnbox {\columntextbox\plusone} \def\currentcolumnbox {\columntextbox\mofcolumns} \def\lastcolumnbox {\columntextbox\nofcolumns} \def\firsttopcolumnbox {\columntopbox \plusone} \def\currenttopcolumnbox{\columntopbox \mofcolumns} \def\lasttopcolumnbox {\columntopbox \nofcolumns} \def\columntextbox#1{\csname\@col@-\number#1-t\endcsname} \def\columnfootbox#1{\csname\@col@-\number#1-f\endcsname} \def\columntopbox #1{\csname\@col@-\number#1-h\endcsname} \def\columnbotbox #1{\csname\@col@-\number#1-l\endcsname} \def\columnsettextbox{\global\setbox\columntextbox} \def\columnsetfootbox{\global\setbox\columnfootbox} \def\columnsettopbox {\global\setbox\columntopbox} \def\columnsetbotbox {\global\setbox\columnbotbox} \def\columngettextbox{\copy\columntextbox} \def\columngetfootbox{\copy\columnfootbox} \def\columngettopbox {\copy\columntopbox} \def\columngetbotbox {\copy\columnbotbox} \def\columnerasetextboxes{\dorecurse\allocatednofcolumns{\columnsettextbox\recurselevel\emptybox}} \def\columnerasefootboxes{\dorecurse\allocatednofcolumns{\columnsetfootbox\recurselevel\emptybox}} \def\columnerasetopboxes {\dorecurse\allocatednofcolumns{\columnsettopbox \recurselevel\emptybox}} \def\columnerasebotboxes {\dorecurse\allocatednofcolumns{\columnsetbotbox \recurselevel\emptybox}} %D Without going in details we present two macro's which handle %D the columns. The action which is transfered by the the first %D and only parameter can do something with \type %D {\currentcolumnbox}. In case of the mid columns, \type %D {\firstcolumnbox} and \type {\lastcolumnbox} are handled %D outside these macro's. \def\dohandlecolumn#1% {\mofcolumns\recurselevel \let\currentcolumn\recurselevel #1\relax} \def\dohandleallcolumns#1% {\dorecurse\nofcolumns{\dohandlecolumn{#1}}} \def\dohandlerevcolumns#1% {\dostepwiserecurse\nofcolumns\plusone\minusone{\dohandlecolumn{#1}}} \def\dohandlemidcolumns#1% {\dohandleallcolumns {\ifnum\recurselevel>\plusone \ifnum\recurselevel<\nofcolumns \dohandlecolumn{#1}% \fi \fi}} %D This register can be used as a temporary storage for page %D content. \newbox\restofpage %D Features. \newif\ifintermediatefootnotes \newif\ifcarryoverfootnotes %\carryoverfootnotestrue \newif\iflastcolumnfootnotes %\lastcolumnfootnotestrue \newif\ifbalancecolumns %\balancecolumnstrue \newif\ifbalancetoheight %\balancetoheighttrue \newif\ifforcecolumngrid \forcecolumngridtrue \newif\ifstretchcolumns \stretchcolumnsfalse \newif\ifinheritcolumns \inheritcolumnsfalse \newif\ifheightencolumns \heightencolumnsfalse \newif\ifbalancingcolumns \newif\ifcollectingcontent \newif\ifcolumnoverflow \newif\iffinalflushingfloats \newif\ifpackflushedfloats \packflushedfloatstrue % for the moment \newdimen\intercolumnwidth \newdimen\localcolumnwidth \newdimen\savedpagetotal \chardef\columndirection=0 % 0:lr 1:rl \def\minbalancetoplines {1} \def\minfreecolumnlines {2} \newif\ifrecentercolumnbox \recentercolumnboxtrue \newif\ifrerecentercolumnbox \rerecentercolumnboxtrue \newif\ifpackcolumnfloats \packcolumnfloatstrue \newbox\collectedpagefloats \newbox\collectedleftpagefloats \newbox\collectedrightpagefloats %D The \type {\ifdim} test is needed, because otherwise the %D last line of a text end up on top of the baseline instead of %D on the baseline, as is the case with preceding pages. %D Also, a \type {\vfil} better than a \type {\vfill}. % to be replaced by \page[now] \page[final] / merged % \def\eject {\par\penalty-\plustenthousand } % == {\par\break} % plain % \def\supereject {\par\penalty-\plustwentythousand} % also plain \def\eject {\par\ifvmode\penalty\ejectpenalty\fi\resetpagebreak} % == {\par\break} % plain \def\supereject {\par\ifvmode\penalty\superpenalty\fi\resetpagebreak} % also plain \def\doejectpage {\par\ifvmode\ifdim\pagetotal>\pagegoal\else\normalvfil\fi\fi} % pg set to \textheight \def\ejectpage {\doejectpage\eject} \def\superejectpage{\doejectpage\supereject} \ifx\bye\undefined \def\bye{\par\vfill\supereject\end} \fi % plain tex command % floats % % \def\ejectinsert % {\flushnotes % \bgroup % \noftopfloats\plusthousand % \nofbotfloats\zerocount % \doflushfloats % \egroup} \def\ejectinsert {\flushnotes \bgroup \noftopfloats\plusthousand \nofbotfloats\zerocount % this is needed in case a float that has been stored % ends up at the current page; this border case occurs when % the calculated room is 'eps' smaller that the room available % when just flushing; so now we have (maybe optional): \pagebaselinecorrection % alas, this is tricky but needed (first surfaced in prikkels) \doflushfloats \egroup} \def\ejectdummypage {\endgraf \ifvmode \ejectinsert \hardespatie % will be different \vfill \gotonextpage \fi} \def\beforefinaloutput {} \def\afterfinaloutput {\forgetall \vskip\zeropoint\relax \ifvoid\normalpagebox \else \unvbox\normalpagebox \penalty\outputpenalty \fi % not really needed, replaced by \flushsavedfloats \ifnum\outputpenalty>\superpenalty \else % better use a proper otr signal \dosupereject \fi % but does not hurt either (we're still in the otr!) \inpagebodytrue % needed for enabling \blank ! \flushsavedfloats % was \dosetbothinserts; only otr one ! \setvsize % this is needed for interacting components, like floats and multicolumns \adaptfuzzypagegoal} % watch this hack! \def\dofinaloutput#1#2% \vbox: prevents spurious spaces in every..pagebody {\beforefinaloutput \the\everybeforeshipout % brrr not in shipout \ifspecialbasedsettings \myshipout{\hbox{\hbox to \zeropoint{\the\pageboundsettings}% \hbox{\vbox{\dopagebody#1#2\setpagecounters}}}}% \else \the\pageboundsettings \myshipout{\hbox{\vbox{\dopagebody#1#2\setpagecounters}}}% \fi \the\everyaftershipout \afterfinaloutput \popproperties} % ... and here ... \def\donofinaloutput#1#2% {\beforefinaloutput \the\everybeforeshipout \setpagecounters \message{[-\the\realpageno]}% \setbox\scratchbox\hbox {%\the\everyshipout % still needed here ? \dopagebody#1#2}% \deadcycles\zerocount \gotonextrealpage \the\everyaftershipout \afterfinaloutput \popproperties} % ... and here % beware: \ifprocessingpages is in use \ifx\checkpageversion\undefined \let\checkpageversion\relax \fi % todo: hook into \everybeforeshipout \ifx\doflushspread \undefined \let\doflushspread \relax \fi % todo \def\finaloutput#1#2% {\checkpageversion \ifprocessingpages \ifpageselected \@EAEAEA\dofinaloutput \else \@EAEAEA\donofinaloutput \fi \else \ifpageselected \@EAEAEA\donofinaloutput \else \@EAEAEA\dofinaloutput \fi \fi#1#2% \resetselectiepagina \incrementpagenumber \checkpagedimensions \ifnum\outputpenalty>\superpenalty \else \dosupereject \fi \doflushspread \dopostponeblock} \def\dooutput {\finaloutput\unvbox\normalpagebox} \maxdeadcycles=1000 % will be installable tracer; better use chardef % this needs a real cleanup \def\doplaceversiontext#1#2% {\doifsomething{#2} {\defconvertedcommand\ascii{#2}% \space#1:\space\ascii\space \!!doneatrue}} \def\placeversioninfo % nog engels maken {\ifcase\conceptmode % 0 : nothing \or % 1 : simple \vskip\!!sixpoint \hbox to \makeupwidth {\infofont \v!concept:\space\currentdate \hss\reportpagedimensions}% \else % 2/3 : extensive \vskip\!!sixpoint \hbox to \makeupwidth {\infofont \getmessage\m!systems{27}:\space\currentdate\space \doplaceversiontext\v!project \currentproject \doplaceversiontext\v!product \currentproduct \doplaceversiontext\v!component\currentcomponent \if!!donea\else\space\v!file:\space\jobname\fi \hss\reportpagedimensions}% \fi} % tot hier \def\doversion[#1]% {\chardef\conceptmode\zerocount \overfullrule\zeropoint \processaction % \v!final=> [#1] [ \v!concept=>\chardef\conceptmode\plusone, % simple banner \v!file=>\chardef\conceptmode\plustwo, % full banner \v!temporary=>\chardef\conceptmode\plusthree % full banner plus \overfullrule5\points]} % info in the margin \def\version {\dosingleargument\doversion} \def\addstatusinfo {\ifcase\conceptmode \@EA\gobbleoneargument \else \@EA\doaddstatusinfo \fi} \def\doaddstatusinfo#1% {\setbox#1\vbox to \paperheight {\vsmashbox#1\box#1% \offinterlineskip \vskip\topspace \hsize\paperwidth \hfill\hbox{\placetestinfo\hskip.5cm}\vss \settexthoffset\hskip\texthoffset % brrrr %\tlap{\placeversioninfo}\vskip.5cm \vbox to 1cm{\vss\placeversioninfo\vss}}} \def\dotestinfo#1#2#3% {\ifinpagebody\else\ifnum\conceptmode=\plusthree \begingroup \defconvertedcommand\ascii{#3}% \xdef\extratestinfo {#2\space\ascii}% \gdef\totaltestinfo {\global\setbox#1\vbox {\unvbox#1\relax \infofont \setupinterlinespace \hbox {\strut \expanded{\doboundtext{\extratestinfo}{12em}{..}}% \quad}}}% \endgroup \ifinner \aftergroup\totaltestinfo \else \totaltestinfo \fi \fi\fi} % this will be inserts some day % \installinsertion\referenceinfobox % \installinsertion\registerinfobox % \installinsertion\floatinfobox \newbox\referenceinfobox \newbox\registerinfobox \newbox\floatinfobox \def\referenceinfo{\dotestinfo\referenceinfobox} \def\registerinfo {\dotestinfo\registerinfobox} \def\floatinfo {\dotestinfo\floatinfobox} \def\placetestinfo {\vbox to \makeupheight {\forgetall \infofont \hsize10em \ifvoid\floatinfobox\else \strut \getmessage\m!systems{24}% \vskip\!!sixpoint \unvbox\floatinfobox \vskip\!!twelvepoint \fi \ifvoid\referenceinfobox\else \strut \getmessage\m!systems{25}% \vskip\!!sixpoint \unvbox\referenceinfobox \vskip\!!twelvepoint \fi \ifvoid\registerinfobox\else \strut \getmessage\m!systems{26}% \vskip\!!sixpoint \unvbox\registerinfobox \fi \vss}} \version[\v!final] % bewaren tvb documentatie % % \hbox to \hsize % {\en % \switchnaarkorps[5pt]% % \emergencystretch2em % \dimen0=\baselineskip % \baselineskip=\dimen0 plus 1pt % \hsize=.2\hsize % \vsize=2\hsize % \ruledvbox to \vsize{\input tufte \par}\hss % \ruledvbox to \vsize{\input tufte \par\kern-\prevdepth}\hss % \ruledvbox to \vsize{\input tufte \par\kern0pt}\hss % \ruledvbox to \vsize{\input tufte \par\vfill}\hss % \ruledvbox to \vsize{\input tufte \par\kern-\prevdepth\vfill}} % % \hbox to \hsize % {\en % \switchnaarkorps[5pt]% % \emergencystretch2em % \dimen0=\baselineskip % \baselineskip=\dimen0 plus 1pt % \hsize=.18\hsize % \vsize=2.5\hsize % \setbox0=\vbox{\input tufte\relax}% % \ruledvbox to \vsize{\unvcopy0}\hss % \ruledvbox to \vsize{\unvcopy0\kern-\dp0}\hss % \ruledvbox to \vsize{\unvcopy0\kern0pt}\hss % \ruledvbox to \vsize{\unvcopy0\vfill}\hss % \ruledvbox to \vsize{\unvcopy0\kern-\dp0\vfill}} \newtoks\afterpage \newtoks\aftereverypage \newtoks\beforepage \newtoks\beforeeverypage \chardef\showgridstate=0 \def\showgrid {\dosingleempty\doshowgrid} \def\doshowgrid[#1]% {\chardef\showgridstate \plusone % downward compatible default \chardef\gridboxlinemode \plusone \chardef\gridboxlinenomode\plusone \processallactionsinset [#1]% [ \v!reset=>\chardef\showgridstate \zerocount, \v!bottom=>\chardef\showgridstate \plusone, \v!top=>\chardef\showgridstate \plustwo, \v!none=>\chardef\gridboxlinemode \zerocount, \v!all=>\chardef\gridboxlinemode \plusone, \v!lines=>\chardef\gridboxlinemode \plustwo, \v!frame=>\chardef\gridboxlinemode \plusthree, \v!nonumber=>\chardef\gridboxlinenomode\zerocount, \v!right=>\chardef\gridboxlinenomode\plusone, \v!left=>\chardef\gridboxlinenomode\plustwo]} \def\buildpagebox#1% {\setbox#1\vbox to \paperheight {\hsize\paperwidth \vskip\topspace \doifbothsides {\hskip\backspace} {\hskip\backspace} {\hskip\paperwidth \hskip-\backspace \hskip-\makeupwidth}% \box#1}% \dp#1\zeropoint} % \newif\ifpagebodyornaments \pagebodyornamentstrue % % \appendtoks % \global\pagebodyornamentstrue % \to \everyaftershipout \newif\ifarrangingpages \arrangingpagesfalse \chardef\pageornamentstate\zerocount % 0=on 1=one-off 2=always-off \def\pagebodyornamentstrue {\chardef\pageornamentstate\zerocount} % for a while \def\pagebodyornamentsfalse{\chardef\pageornamentstate\plusone} % for a while \appendtoks \ifcase\pageornamentstate\or \chardef\pageornamentstate\zerocount \fi \to \everyaftershipout \let\poparrangedpages\relax \let\pusharrangedpage\relax \ifx\shiftprintpagebox\undefined \let\shiftprintpagebox\gobbleoneargument \let\shiftpaperpagebox\gobbleoneargument \fi \ifx\registerpageposition\undefined \let\registerpageposition\gobbleoneargument \fi \def\reportarrangedpage#1% {\showmessage\m!systems {23}{\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,#1}} \newif\ifsavepagebody \newbox\savedpagebody % beware, \??ly is used before defined, i.e. bad module design \setuplayout[\c!method=\v!normal] \def\buildpagebody#1#2% {\ifsavepagebody\global\setbox\savedpagebody\fi \vbox {\beginrestorecatcodes \forgetall % igv problemen, check: \boxmaxdepth\maxdimen \boxmaxdepth\maxdimen % new \dontcomplain % the following plugin uses and sets pagebox; beware: this % will change and is for my (hh) personal experiments \executeifdefined{\??ly\c!method\@@lymethod}% {\getvalue{\??ly\c!method\v!normal}}#1#2% % the finishing touch \ifcase\pageornamentstate \addpagebackground \pagebox \fi \registerpageposition\pagebox \ifarrangingpages \shiftpaperpagebox \pagebox % \v!paper \else \clippagebox \pagebox \doifelse\@@lymarking\v!page {\replicatepagebox \pagebox \addpagecutmarks \pagebox} {\addpagecutmarks \pagebox \replicatepagebox \pagebox}% \scalepagebox \pagebox \mirrorpaperbox \pagebox \orientpaperbox \pagebox \addpagecolormarks \pagebox \centerpagebox \pagebox \addprintbackground\pagebox \mirrorprintbox \pagebox \orientprintbox \pagebox \shiftprintpagebox \pagebox % \v!page \offsetprintbox \pagebox \negateprintbox \pagebox \fi \box\pagebox \endrestorecatcodes}% \ifsavepagebody\copy\savedpagebody\fi} \setvalue{\??ly\c!method\v!normal}#1#2% {\setbox\pagebox\vbox {\offinterlineskip \ifcase\pageornamentstate \bgroup % else footnotes get inconsistent font/baseline \dostartattributes\??ly\c!style\c!color\empty \offinterlineskip \gettextboxes \dostopattributes \egroup \fi \getmainbox#1#2}% including footnotes \ifcase\pageornamentstate \addmainbackground \pagebox \addlogobackground \pagebox \fi \buildpagebox \pagebox \addstatusinfo \pagebox} \def\finishpagebox#1% {\ifarrangingpages \addpagecutmarks #1% \addpagecolormarks#1% \centerpagebox #1% \mirrorprintbox #1% \orientprintbox #1% \offsetprintbox #1% \negateprintbox #1% \fi} \appendtoks \restoreglobalbodyfont \to \everybeforepagebody \appendtoks \restorecolumnsettings \to \everybeforepagebody \ifx\nestednewbox\undefined \newbox\nestednextbox \fi \prependtoks \let\nextbox\nestednextbox \to \everybeforepagebody \def\dopagebody#1#2% {%\getallmarks % now in following token register \the\everybeforepagebody \starttextproperties \gotonextsubpage % nog eens: als in pagina (tbv standaard opmaak) \dontshowboxes % dan hier blokkeren en verderop resetten % \shipoutfacingpage \checkreferences \checkmargeblokken \the\beforeeverypage \flushtoks\beforepage \inpagebodytrue\buildpagebody#1#2% \flushtoks\afterpage \the\aftereverypage \resetpagebreak %updatelistreferences % now in aftereverypage \resetlayouttextlines % will go to \aftereverypage \stoptextproperties \the\everyafterpagebody} \newtoks\pageboundsettings \prependtoks \initializepaper \to \pageboundsettings % not here \newif\ifpagebreakdisabled \pagebreakdisabledfalse % \chardef\testpagemethod=0 % todo: \testnewpage[method=,lines=,voffset=] % % \def\testpage {\dotripleempty\dotestpage[\plusone]} % \def\testpageonly{\dotripleempty\dotestpage[\plustwo]} % % \def\dotestpage[#1][#2][#3]% % {%\relax % needed before \if % \endgraf % \ifpagebreakdisabled % % do nothing % \else % %ifnum#1=\plusone\synchronizeoutput\fi % \ifdim\pagegoal<\maxdimen \relax % \ifdim\pagetotal<\pagegoal \relax % \scratchdimen\lineheight % \multiply\scratchdimen#2\relax % \advance\scratchdimen \pagetotal % \ifdim\lastskip<\parskip % \advance\scratchdimen \parskip % \fi % \ifthirdargument % \advance\scratchdimen#3\relax % \fi % \ifcase\testpagemethod % \ifdim\scratchdimen>.99\pagegoal % \vfill\eject % \penalty-\!!tenthousand\relax % \fi % \or % \advance\scratchdimen-\pagegoal % \ifdim\scratchdimen>-\lineheight % \vfill\eject % \penalty-\!!tenthousand\relax % \fi % \or % \getnoflines\pagegoal % \advance\scratchdimen-\noflines\lineheight \relax % \ifdim\scratchdimen>-\lineheight % \vfill\eject % \penalty-\!!tenthousand\relax % \fi % \or % same as 0 but more accurate % \advance\scratchdimen-10\s!sp\relax % \ifdim\scratchdimen>\pagegoal % \vfill\eject % \penalty-\!!tenthousand\relax % \fi % \fi % \else % % force page break / new % % \vfill\eject % \penalty-\!!tenthousand\relax % \fi % \else % \ifnum#1=\plusone\goodbreak\fi % \fi % \fi} \chardef\testpagemethod \zerocount % todo: \testnewpage[method=,lines=,voffset=] \chardef\testpagetrigger\zerocount \def\testpage {\dotripleempty\dotestpage[\plusone ]} % \def\testpageonly{\dotripleempty\dotestpage[\plustwo ]} % no penalties added to the mvl \def\testpagesync{\dotripleempty\dotestpage[\plusthree]} % force sync \def\dotestpage[#1][#2][#3]% don't change, only add more methods {\relax % needed before \if \ifpagebreakdisabled \endgraf \else % new from here \ifcase\testpagetrigger \endgraf \or \ifvmode \dosomebreak\allowbreak \else % indeed? \vadjust{\allowbreak}% \endgraf \fi \fi % till here \ifdim\pagegoal<\maxdimen \relax \ifdim\pagetotal<\pagegoal \relax \scratchdimen\lineheight \multiply\scratchdimen#2\relax \advance\scratchdimen \pagetotal \ifdim\lastskip<\parskip \advance\scratchdimen \parskip \fi \ifthirdargument \advance\scratchdimen#3\relax \fi \ifcase\testpagemethod \ifdim\scratchdimen>.99\pagegoal \penalty-\!!tenthousand\relax \fi \or \advance\scratchdimen-\pagegoal \ifdim\scratchdimen>-\lineheight \penalty-\!!tenthousand\relax \fi \or \getnoflines\pagegoal \advance\scratchdimen-\noflines\lineheight \relax \ifdim\scratchdimen>-\lineheight \penalty-\!!tenthousand\relax \fi \or % same as 0 but more accurate \advance\scratchdimen-10\s!sp\relax \ifdim\scratchdimen>\pagegoal \penalty-\!!tenthousand\relax \fi \fi \else \ifnum#1=\plusthree \flushpagesofar \fi \fi \else \ifnum#1=\plusone\goodbreak\fi \fi \fi} \def\flushpagesofar {\endgraf \ifdim\pagetotal>\pagegoal \ifdim\dimexpr\pagetotal-\pageshrink\relax>\pagegoal \goodbreak % \penalty0 \else \page \fi \else \fi} \def\testcolumn {\dodoubleempty\dotestcolumn} \def\dotestcolumn[#1][#2]% {%\relax % needed before \if ! \endgraf \ifdim\pagegoal<\maxdimen \ifdim\pagetotal<\pagegoal % \relax \scratchdimen\pagegoal \advance\scratchdimen-\pagetotal \ifdim\lastskip<\parskip \advance\scratchdimen \parskip \fi \ifsecondargument \advance\scratchdimen#2% \fi \getrawnoflines\scratchdimen % raw ! % \message{[\number#1>\number\noflines ?}\wait \ifnum#1>\noflines \column \fi \else \penalty-\!!tenthousand % untested ! ! \column \fi \fi} \let\resetcurrentsectionmarks\relax % was: \resetsectionmarks\firstsection, zie \handlepagebreak \def\page{\pagebreak} % the short form of \pagebreak (mult-com one) \def\resetpagebreak {\global\pagebreakdisabledfalse} \def\simplifypagebreak {\def\dopagebreak[##1]{\goodbreak}} \def\disablepagebreaks {\def\dopagebreak[##1]{}} \def\executepagebreakhandler#1% {\edef\@@pagespecification{#1}% \doifdefinedelse{\??pe:\@@pagespecification} {\getvalue{\??pe:\@@pagespecification}} {\doifdefinedelse{\??pe::\@@pagespecification} {\executepagebreakhandlers{\getvalue{\??pe::\@@pagespecification}}} {\getvalue{\??pe:\s!unknown}}}} \long\def\installpagebreakhandler#1#2% {\long\setvalue{\??pe:#1}{#2}} % \definecomplexorsimple\pagebreak % \def\simplepagebreak % {\executepagebreakhandler\v!ja} % \def\complexpagebreak[#1]% if empty, do nothing and avoid processing, % {\flushnotes % see head's; watch how we group % \doifsomething{#1}{\bgroup\executepagebreakhandlers{#1}\egroup}} \unexpanded\def\pagebreak {\dosingleempty\dopagebreak} \def\dopagebreak[#1]% so, page ornaments are reset after a pagebreak command, unless set {\bgroup \edef\prevrealpageno{\the\realpageno}% \ifcase\pageornamentstate \or % disable reset after shipout \global\chardef\pageornamentstate\plustwo \fi \iffirstargument % or if empty i.e. [] \flushnotes\executepagebreakhandlers{#1}% \else % so, no pagebreak when \pagebreak[] ! ! ! \flushnotes\executepagebreakhandler\v!yes \fi \ifnum\prevrealpageno<\realpageno \global\chardef\pageornamentstate\zerocount \fi \egroup} \def\executepagebreakhandlers#1% {\processcommacommand[#1]\executepagebreakhandler} \installpagebreakhandler \s!dummy {\ejectinsert \gotonextpage \ejectdummypage} \installpagebreakhandler \v!frame {\page\bgroup\showframe\page[\v!empty]\egroup} \installpagebreakhandler \s!unknown {\doifinstringelse{+}\@@pagespecification {\ejectinsert \gotonextpage \dorecurse\@@pagespecification\ejectdummypage} {\doifnumberelse\@@pagespecification {\ejectinsert \gotonextpage \doloop {\ifnum\userpageno<\@@pagespecification\relax \ejectdummypage \else \exitloop \fi}} {}}} \installpagebreakhandler \s!default {} % do nothing if empty \installpagebreakhandler \v!reset {% better not: \global\chardef\pageornamentstate\zerocount \resetpagebreak} \installpagebreakhandler \v!disable {\global\pagebreakdisabledtrue} \installpagebreakhandler \v!yes {\ifpagebreakdisabled\else \ejectinsert \gotonextpage \ifinsidecolumns % this will move to MUL \ejectpage % anders soms geen overgang \fi \fi} \installpagebreakhandler \v!makeup % ?? {\ifpagebreakdisabled\else \eject \fi} \installpagebreakhandler \v!blank {\ifcase\pageornamentstate \global\chardef\pageornamentstate\plusone \fi} \installpagebreakhandler \v!no {\ifpagebreakdisabled\else \dosomebreak\nobreak \fi} \installpagebreakhandler \v!preference {\ifpagebreakdisabled\else \ifinsidecolumns % this will move to MUL \dosomebreak\goodbreak \else \testpage[3][\zeropoint]% \fi \fi} \installpagebreakhandler \v!bigpreference {\ifpagebreakdisabled\else \ifinsidecolumns % this will move to MUL \dosomebreak\goodbreak \else \testpage[5][\zeropoint]% \fi \fi} \installpagebreakhandler \v!empty {\ejectinsert \gotonextpage \doifnotvalue{\??tk\v!header\c!state}\v!stop{\setupheader[\c!state=\v!empty]}% \doifnotvalue{\??tk\v!footer\c!state}\v!stop{\setupfooter[\c!state=\v!empty]}% \ejectdummypage} \installpagebreakhandler \v!left {\ejectinsert \gotonextpageX % will become \gotonextpage \doifbothsidesoverruled{}{\resetcurrentsectionmarks\ejectdummypage}{}} \installpagebreakhandler \v!right {\ejectinsert \gotonextpageX % will become \gotonextpage \doifbothsidesoverruled{}{}{\resetcurrentsectionmarks\ejectdummypage}} \installpagebreakhandler \v!even {\page \doifoddpageelse{\resetcurrentsectionmarks\ejectdummypage}\donothing} \installpagebreakhandler \v!odd {\page \doifoddpageelse\donothing{\resetcurrentsectionmarks\ejectdummypage}} \installpagebreakhandler \v!quadruple % not yet ok inside columnsets {\ifdoublesided \!!counta\realpageno \!!countb\realpageno \divide\!!counta 4 \divide\!!countb 2 \ifnum\!!counta=\!!countb \else \executepagebreakhandler\v!yes \executepagebreakhandler\v!empty \executepagebreakhandler\v!empty \fi \fi} \installpagebreakhandler \v!last {\ejectinsert \gotonextpageX % will become \gotonextpage \relax \doifbothsidesoverruled {\shipoutfacingpage} {} {\noheaderandfooterlines \ejectdummypage}% \filluparrangedpages} \installpagebreakhandler \v!lastpage % handy for backpage preceded by empty pages {\executepagebreakhandler\v!yes \ifdoublesided \executepagebreakhandler\v!left \executepagebreakhandler\v!empty \executepagebreakhandler\v!empty \fi} \installpagebreakhandler \v!start {\globallet\shipout\normalshipout} \installpagebreakhandler \v!stop {\globallet\shipout\noshipout} % nb: \executepagebreakhandler\v!hoofd in other ones \installpagebreakhandler \v!header {\doifnotvalue{\??tk\v!header\c!state}\v!stop{\setupheader[\c!state=\v!empty]}} \installpagebreakhandler \v!footer {\doifnotvalue{\??tk\v!footer\c!state}\v!stop{\setupfooter[\c!state=\v!empty]}} % \definepagebreak % [chapter] % [yes,header,right] % % \setuphead % [chapter] % [page=chapter, % header=empty, % footer=chapter] % % \definepagebreak % untested % [lastpage] % [left,{empty,right},{empty,left}] % public page handler, beware: definepage already in use (core-ref) % % \definepagebreak[instance][forsure] % \definepagebreak[forsure][yes,+4] \def\definepagebreak {\dodoubleargument\dodefinepagebreak} \def\dodefinepagebreak[#1][#2]% non recursive, meant for simple mappings {\setvalue{\??pe::#1}{#2}} % hier nog uti blokkeren % don't change this / test case: % % \setupbackgrounds[state=repeat] % \setupbackgrounds[text][text][background=whatever] % \couplepage[chapter][before={\defineoverlay[whatever][ON]}] % \setuphead[chapter][before={\pagetype[chapter]}] % \chapter{First} \page test \chapter{second} \page test \long\def\installcolumnbreakhandler#1#2#3% #1=otr-id #2=tag {\long\setvalue{\??cn:#1:#2}{#3}} \def\definecolumnbreak {\dodoubleargument\dodefinecolumnbreak} \def\dodefinecolumnbreak[#1][#2]% non recursive, meant for simple mappings {\setvalue{\??cn::#1}{#2}} %\def\columnbreak % {\dosingleempty\docolumnbreak} % %\def\docolumnbreak[#1]% % {\expanded{\nextcolumn[\executeifdefined{\??cn::#1}{#1}]}} \definecomplexorsimple\columnbreak \def\simplecolumnbreak {\executecolumnbreakhandler\v!yes} \def\complexcolumnbreak[#1]% if empty, do nothing and avoid processing {\doifsomething{#1}{\executecolumnbreakhandlers{#1}}} \def\executecolumnbreakhandlers#1% {\processcommacommand[#1]\executecolumnbreakhandler} \def\executecolumnbreakhandler#1% here no commalist {\edef\@@columnspecification{#1}% \doifdefinedelse{\??cn:\OTRidentifier:\@@columnspecification} {\getvalue{\??cn:\OTRidentifier:\@@columnspecification}} {\doifdefinedelse{\??cn::\@@columnspecification} {\executecolumnbreakhandlers{\getvalue{\??cn::\@@columnspecification}}} {\getvalue{\??cn:\OTRidentifier:\s!unknown}}}} %let\nextcolumn\columnbreak \let\column \columnbreak % We don't want spurious last pages (due to left over marks): \def\noshipout {\writestatus\m!systems{ignoring further shipouts}% \global\advance\realpageno\minusone % else no flush of resources \dowithnextbox{\deadcycles\zerocount}} % \def\doignorerestoftext % {\ifarrangingpages \else \ifnum\textlevel>\zerocount \else % \globallet\shipout\noshipout % \fi \fi} % % better: \def\doignorerestoftext {\ifarrangingpages \else \ifnum\textlevel=\plusone \globallet\shipout\noshipout \fi \fi} \let\ignorerestoftext\donothing \prependtoks % only ignore in a symmetrical doc \globallet\ignorerestoftext\doignorerestoftext \to \everystarttext % \appendtoks % \ignorerestoftext % \to \everylastshipout \newif\ifpageselected \pageselectedtrue \newif\ifselectingpages \selectingpagesfalse \newif\ifprocessingpages\processingpagestrue \let\pageselection \empty \let\currentpageselection\empty \let\aftershipout \relax \let\beforeshipout \relax \def\dodobeforeshipout#1% {\global\let\beforeshipout\relax \getvalue{\??pg#1\c!before}} \def\dobeforeshipout {\doifsomething\currentpageselection {\processcommacommand[\currentpageselection]\dodobeforeshipout}} \def\dododoaftershipout#1% {\global\let\aftershipout\relax \global\let\currentpageselection\empty \getvalue{\??pg#1\c!after}} \def\dodoaftershipout#1% {\doifelsevalue{\??pg#1\c!option}\v!doublesided {\doifbothsidesoverruled {\dododoaftershipout{#1}} {\dododoaftershipout{#1}} {}} {\dododoaftershipout{#1}}} \def\doaftershipout {\doifsomething\currentpageselection {\processcommacommand[\currentpageselection]\dodoaftershipout}} % Dit wordt eigenlijk nooit en moet worden vervangen door % het meer algemene mechanisme. \def\dopagetype[#1]% {\edef\desoortpagina{#1}% \ifx\desoortpagina\empty \else \@EA\doglobal\@EA\addtocommalist\@EA{\desoortpagina}\currentpageselection \ifselectingpages \fullexpandtwoargsafter\doifcommon\desoortpagina\pageselection {\global\pageselectedtrue}% \fi \gdef\beforeshipout{\dobeforeshipout}% \gdef\aftershipout {\doaftershipout}% \fi} \def\pagetype {\dosingleargument\dopagetype} \def\docouplepage[#1][#2]% {\getparameters [\??pg] [\c!before=, \c!after=, \c!option=, #2]% \def\docommand##1% {\getparameters [\??pg##1] [\c!before=\@@pgbefore, \c!after=\@@pgafter, \c!option=\@@pgoption]}% \processcommalist[#1]\docommand}% \def\couplepage {\dodoubleargument\docouplepage} \def\doprocesspage[#1][#2]% {\processaction [#2] [\v!yes=>\global\processingpagestrue, \v!no=>\global\processingpagesfalse]% \gdef\pageselection{#1}% \global\selectingpagestrue \global\pageselectedfalse} \def\processpage {\dodoubleargument\doprocesspage} \def\resetselectiepagina {\ifselectingpages \doifbothsidesoverruled{\global\pageselectedfalse}{}{\global\pageselectedfalse}% \fi} \newif\ifregistertextareas \newif\iftracetextareas \newbox\registertextbox % \def\registeredtextarea#1#2#3% #1=lower-dp #2=correct-ht #3=box % {\hbox{\box#3}} \def\enabletextarearegistration{\global\registertextareastrue} \def\registeredtextarea#1#2#3% #1=lower-dp #2=correct-ht #3=box {\hbox\bgroup \ifregistertextareas \ifx\registerMPtextarea\undefined \else \setbox\registertextbox\null \wd\registertextbox\wd#3% \ht\registertextbox\ht#3% \dp\registertextbox\dp#3% \ifcase#1\or % 1 \setbox\registertextbox\hbox{\lower\strutdp\box\registertextbox}% \fi \ifcase#2\or % 1 \setbox\registertextbox\hbox{\raise\topskip\hbox{\lower\strutht\box\registertextbox}}% \dp\registertextbox\strutdp \fi \dp\registertextbox\strutdp % needed %\setbox\registertextbox\hbox % {\iftracetextareas\gray\boxrulewidth2pt\ruledhbox\fi % {\registerMPtextarea{\box\registertextbox}}}% \setbox\registertextbox\hbox {\registerMPtextarea{\box\registertextbox}}% \smashbox\registertextbox \box\registertextbox \fi \fi \box#3% \egroup} %D \macros %D {setupoppositeplacing,startopposite} %D %D \starttyping %D \starttext %D test \startopposite \blackrule[width=3cm,height=4cm] \stopopposite test %D test \startopposite \blackrule[width=3cm,height=4cm] \stopopposite test %D \stoptext %D \stoptyping % Moved from page-mar.tex, made english, cleaned up, but still to be % redesigned \newbox\facingpage \def\setupoppositeplacing {\dodoubleargument\getparameters[\??np]} \def\startopposite {\dowithnextboxcontent {\hsize\makeupwidth}% {\global\setbox\facingpage\vbox {\ifvoid\facingpage \@@npbefore \else \@@npinbetween \unvbox\facingpage \fi \box\nextbox}}% \vbox\bgroup} \def\stopopposite {\egroup} \def\finishfacingpage {\ifvoid\facingpage\else \global\setbox\facingpage\vbox to \makeupheight {\unvbox\facingpage \@@npafter \vss}% \fi} \def\shipoutfacingpage {\doif\@@npstate\v!start {\ifvoid\facingpage\else \ifnum\realpageno>\plusone \bgroup \chardef\pageornamentstate\plusone \finishfacingpage \myshipout{\buildpagebody\box\facingpage}% \egroup \else \global\setbox\facingpage\emptybox \fi \fi}} \setupoppositeplacing [\c!state=\v!start, \c!before=, \c!inbetween=\blank, \c!after=] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/math-tex.mkii0000644000175000017500000006647714536300610024726 0ustar hillehille%D \module %D [ file=math-tex, %D version=2001.04.12, %D subtitle=Plain Specials, %D author={Hans Hagen, Taco Hoekwater \& Aditya Mahajan}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % beware: in mkiv we will do it differently \unprotect \mathcode`\ ="8000 \mathcode`\_="8000 \mathcode`\'="8000 \definefamilysynonym [default] [calligraphic] [sy] \definefamilysynonym [default] [oldstyle] [mi] \definefamilysynonym [default] [blackboard] [mr] \definefamilysynonym [default] [gothic] [mr] \definefamilysynonym [default] [fraktur] [mr] \definefamilysynonym [default] [lcgreek] [mi] \definefamilysynonym [default] [ucgreek] [mr] \definefamilysynonym [default] [vargreek] [mi] %D \macros %D {\setupmathematics} %D %D Configuration for integrals. (If needed we can speed this up and make it %D installable; no processaction is needed then). \chardef\intlimitcode\zerocount % 0 nolimits 1 displaylimits 2 limits \def\intlimits {\ifcase\intlimitcode \nolimits \or \displaylimits \or \limits \fi} \def\setupmathematics {\dosingleargument\dosetupmathematics} \def\dosetupmathematics[#1]% {\getparameters[\??mo][#1] \processaction[\@@mointegral] [ nolimits=>\chardef\intlimitcode\zerocount, displaylimits=>\chardef\intlimitcode\plusone, limits=>\chardef\intlimitcode\plustwo]} %D \startbuffer %D $\int_a^b f(x) dx$ and also %D $\iint_a^b f(x,y) dxdy$, $\iiint_a^b f(x,y) dxdy$, %D $\iiiint_a^b f(x) dx$ %D \startformula %D \int_a^b f(x) dx \quad %D \iint_a^b f(x) dx \quad %D \iiint_a^b f(x) dx \quad %D \iiiint_a^b f(x) dx \quad %D \stopformula %D \stopbuffer %D %D Default: \getbuffer %D %D Displaylimits: \setupmathematics[integral=displaylimits] \getbuffer %D %D Limits: \setupmathematics[integral=limits] \getbuffer \startmathcollection [default] \definemathsymbol [alpha] [nothing] [lcgreek] ["0B] \definemathsymbol [beta] [nothing] [lcgreek] ["0C] \definemathsymbol [gamma] [nothing] [lcgreek] ["0D] \definemathsymbol [delta] [nothing] [lcgreek] ["0E] \definemathsymbol [epsilon] [nothing] [lcgreek] ["0F] \definemathsymbol [zeta] [nothing] [lcgreek] ["10] \definemathsymbol [eta] [nothing] [lcgreek] ["11] \definemathsymbol [theta] [nothing] [lcgreek] ["12] \definemathsymbol [iota] [nothing] [lcgreek] ["13] \definemathsymbol [kappa] [nothing] [lcgreek] ["14] \definemathsymbol [lambda] [nothing] [lcgreek] ["15] \definemathsymbol [mu] [nothing] [lcgreek] ["16] \definemathsymbol [nu] [nothing] [lcgreek] ["17] \definemathsymbol [xi] [nothing] [lcgreek] ["18] \definemathsymbol [omicron] [nothing] [lcgreek] ["6F] \definemathsymbol [pi] [nothing] [lcgreek] ["19] \definemathsymbol [rho] [nothing] [lcgreek] ["1A] \definemathsymbol [sigma] [nothing] [lcgreek] ["1B] \definemathsymbol [tau] [nothing] [lcgreek] ["1C] \definemathsymbol [upsilon] [nothing] [lcgreek] ["1D] \definemathsymbol [phi] [nothing] [lcgreek] ["1E] \definemathsymbol [chi] [nothing] [lcgreek] ["1F] \definemathsymbol [psi] [nothing] [lcgreek] ["20] \definemathsymbol [omega] [nothing] [lcgreek] ["21] \stopmathcollection \startmathcollection [default] \definemathsymbol [varepsilon] [nothing] [vargreek] ["22] \definemathsymbol [vartheta] [nothing] [vargreek] ["23] \definemathsymbol [varpi] [nothing] [vargreek] ["24] \definemathsymbol [varrho] [nothing] [vargreek] ["25] \definemathsymbol [varsigma] [nothing] [vargreek] ["26] \definemathsymbol [varphi] [nothing] [vargreek] ["27] \stopmathcollection \startmathcollection [default] \definemathsymbol [Alpha] [alpha] [ucgreek] ["41] % A \definemathsymbol [Beta] [alpha] [ucgreek] ["42] % B \definemathsymbol [Gamma] [alpha] [ucgreek] ["00] \definemathsymbol [Delta] [alpha] [ucgreek] ["01] \definemathsymbol [Epsilon] [alpha] [ucgreek] ["45] % E \definemathsymbol [Zeta] [alpha] [ucgreek] ["5A] % Z \definemathsymbol [Eta] [alpha] [ucgreek] ["48] % H \definemathsymbol [Theta] [alpha] [ucgreek] ["02] \definemathsymbol [Iota] [alpha] [ucgreek] ["49] % I \definemathsymbol [Kappa] [alpha] [ucgreek] ["4B] % K \definemathsymbol [Lambda] [alpha] [ucgreek] ["03] \definemathsymbol [Mu] [alpha] [ucgreek] ["4D] % M \definemathsymbol [Nu] [alpha] [ucgreek] ["4E] % N \definemathsymbol [Xi] [alpha] [ucgreek] ["04] \definemathsymbol [Omicron] [alpha] [ucgreek] ["4F] % O \definemathsymbol [Pi] [alpha] [ucgreek] ["05] \definemathsymbol [Rho] [alpha] [ucgreek] ["52] % R \definemathsymbol [Sigma] [alpha] [ucgreek] ["06] \definemathsymbol [Tau] [alpha] [ucgreek] ["54] % T \definemathsymbol [Upsilon] [alpha] [ucgreek] ["07] \definemathsymbol [Phi] [alpha] [ucgreek] ["08] \definemathsymbol [Chi] [alpha] [ucgreek] ["58] % X \definemathsymbol [Psi] [alpha] [ucgreek] ["09] \definemathsymbol [Omega] [alpha] [ucgreek] ["0A] \stopmathcollection % The \mfunction macro is an alternative for \hbox with a % controlable font switch. \startmathcollection[default] \definemathcommand [arccos] [nolop] {\mfunction{arccos}} \definemathcommand [arcsin] [nolop] {\mfunction{arcsin}} \definemathcommand [arctan] [nolop] {\mfunction{arctan}} \definemathcommand [arg] [nolop] {\mfunction{arg}} \definemathcommand [cosh] [nolop] {\mfunction{cosh}} \definemathcommand [cos] [nolop] {\mfunction{cos}} \definemathcommand [coth] [nolop] {\mfunction{coth}} \definemathcommand [cot] [nolop] {\mfunction{cot}} \definemathcommand [csc] [nolop] {\mfunction{csc}} \definemathcommand [deg] [nolop] {\mfunction{deg}} \definemathcommand [det] [limop] {\mfunction{det}} \definemathcommand [dim] [nolop] {\mfunction{dim}} \definemathcommand [exp] [nolop] {\mfunction{exp}} \definemathcommand [gcd] [limop] {\mfunction{gcd}} \definemathcommand [hom] [nolop] {\mfunction{hom}} \definemathcommand [inf] [limop] {\mfunction{inf}} \definemathcommand [injlim] [limop] {\mfunction{inj\,lim}} \definemathcommand [ker] [nolop] {\mfunction{ker}} \definemathcommand [lg] [nolop] {\mfunction{lg}} \definemathcommand [liminf] [limop] {\mfunction{lim\,inf}} \definemathcommand [limsup] [limop] {\mfunction{lim\,sup}} \definemathcommand [lim] [limop] {\mfunction{lim}} \definemathcommand [ln] [nolop] {\mfunction{ln}} \definemathcommand [log] [nolop] {\mfunction{log}} \definemathcommand [median] [limop] {\mfunction{median}} \definemathcommand [max] [limop] {\mfunction{max}} \definemathcommand [min] [limop] {\mfunction{min}} \definemathcommand [mod] [limop] {\mfunction{mod}} \definemathcommand [div] [limop] {\mfunction{div}} \definemathcommand [projlim] [limop] {\mfunction{proj\,lim}} \definemathcommand [Pr] [limop] {\mfunction{Pr}} \definemathcommand [sec] [nolop] {\mfunction{sec}} \definemathcommand [sinh] [nolop] {\mfunction{sinh}} \definemathcommand [sin] [nolop] {\mfunction{sin}} \definemathcommand [sup] [limop] {\mfunction{sup}} \definemathcommand [tanh] [nolop] {\mfunction{tanh}} \definemathcommand [tan] [nolop] {\mfunction{tan}} \stopmathcollection \let\normalmatharg\arg % todo: maybe automatically \startmathcollection[default] \definemathcommand [integers] {\mfunction{Z}} \definemathcommand [reals] {\mfunction{R}} \definemathcommand [rationals] {\mfunction{Q}} \definemathcommand [naturalnumbers] {\mfunction{N}} \definemathcommand [complexes] {\mfunction{C}} \definemathcommand [primes] {\mfunction{P}} \stopmathcollection \startmathcollection[default] \definemathcharacter [!] [close] [mr] ["21] \definemathcharacter [(] [open] [mr] ["28] \definemathcharacter [)] [close] [mr] ["29] \definemathcharacter [*] [bin] [sy] ["03] \definemathcharacter [+] [bin] [mr] ["2B] \definemathcharacter [,] [punct] [mi] ["3B] \definemathcharacter [-] [bin] [sy] ["00] \definemathcharacter [.] [ord] [mi] ["3A] \definemathcharacter [/] [ord] [mi] ["3D] \definemathcharacter [:] [rel] [mr] ["3A] \definemathcharacter [;] [punct] [mr] ["3B] \definemathcharacter [<] [rel] [mi] ["3C] \definemathcharacter [=] [rel] [mr] ["3D] \definemathcharacter [>] [rel] [mi] ["3E] \definemathcharacter [?] [close] [mr] ["3F] \definemathcharacter [91] [open] [mr] ["5B] % [ \definemathcharacter [92] [ord] [sy] ["6E] % \ \definemathcharacter [93] [close] [mr] ["5D] % ] \definemathcharacter [123] [open] [sy] ["66] % { \definemathcharacter [124] [ord] [sy] ["6A] % | \definemathcharacter [125] [close] [sy] ["67] % } \stopmathcollection \startmathcollection[default] \definemathcharacter [(] [nothing] [mr] ["28] [ex] ["00] \definemathcharacter [)] [nothing] [mr] ["29] [ex] ["01] \definemathcharacter [91] [nothing] [mr] ["5B] [ex] ["02] % [ \definemathcharacter [93] [nothing] [mr] ["5D] [ex] ["03] % ] \definemathcharacter [<] [nothing] [sy] ["68] [ex] ["0A] \definemathcharacter [>] [nothing] [sy] ["69] [ex] ["0B] \definemathcharacter [/] [nothing] [mr] ["2F] [ex] ["0E] \definemathcharacter [124] [nothing] [sy] ["6A] [ex] ["0C] % | \definemathcharacter [92] [nothing] [sy] ["6E] [ex] ["0F] % \ \stopmathcollection \def\PLAINangle {{\vbox{\ialign{$\mathsurround\zeropoint\scriptstyle##$\crcr \not\mathrel{\mkern14mu}\crcr \noalign{\nointerlineskip} \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}} \startmathcollection[default] \definemathsymbol [aleph] [nothing] [sy] ["40] \definemathsymbol [imath] [nothing] [mi] ["7B] \definemathsymbol [jmath] [nothing] [mi] ["7C] \definemathsymbol [ell] [nothing] [mi] ["60] \definemathsymbol [wp] [nothing] [mi] ["7D] \definemathsymbol [Re] [nothing] [sy] ["3C] \definemathsymbol [Im] [nothing] [sy] ["3D] \definemathsymbol [partial] [nothing] [mi] ["40] \definemathsymbol [infty] [nothing] [sy] ["31] \definemathsymbol [prime] [nothing] [sy] ["30] \definemathsymbol [emptyset] [nothing] [sy] ["3B] \definemathsymbol [nabla] [nothing] [sy] ["72] \definemathsymbol [top] [nothing] [sy] ["3E] \definemathsymbol [bot] [nothing] [sy] ["3F] \definemathcommand [hbar] {{\mathchar'26\mkern-9muh}} \definemathcommand [surd] {{\mathchar"1270}} % ? \definemathcommand [angle] {\PLAINangle} \stopmathcollection \startmathcollection[default] \definemathsymbol [triangle] [ord] [sy] ["34] \definemathsymbol [forall] [ord] [sy] ["38] \definemathsymbol [exists] [ord] [sy] ["39] \definemathsymbol [neg] [ord] [sy] ["3A] \definemathsymbol [flat] [ord] [mi] ["5B] \definemathsymbol [natural] [ord] [mi] ["5C] \definemathsymbol [sharp] [ord] [mi] ["5D] \definemathsymbol [clubsuit] [ord] [sy] ["7C] \definemathsymbol [diamondsuit] [ord] [sy] ["7D] \definemathsymbol [heartsuit] [ord] [sy] ["7E] \definemathsymbol [spadesuit] [ord] [sy] ["7F] \stopmathcollection \startmathcollection[default] \definemathcommand [square] {\hbox{\hsmash{$\sqcup$}$\sqcap$}} \stopmathcollection \startmathcollection[default] \definemathsymbol [coprod] [op] [ex] ["60] \definemathsymbol [bigvee] [op] [ex] ["57] \definemathsymbol [bigwedge] [op] [ex] ["56] \definemathsymbol [biguplus] [op] [ex] ["55] \definemathsymbol [bigcap] [op] [ex] ["54] \definemathsymbol [bigcup] [op] [ex] ["53] \definemathsymbol [intop] [op] [ex] ["52] \definemathsymbol [prod] [op] [ex] ["51] \definemathsymbol [sum] [op] [ex] ["50] \definemathsymbol [bigotimes] [op] [ex] ["4E] \definemathsymbol [bigoplus] [op] [ex] ["4C] \definemathsymbol [bigodot] [op] [ex] ["4A] \definemathsymbol [ointop] [op] [ex] ["48] \definemathsymbol [bigsqcup] [op] [ex] ["46] \definemathsymbol [smallint] [op] [sy] ["73] \stopmathcollection \startmathcollection[default] \definemathsymbol [triangleleft] [bin] [mi] ["2F] \definemathsymbol [triangleright] [bin] [mi] ["2E] \definemathsymbol [bigtriangleup] [bin] [sy] ["34] \definemathsymbol [bigtriangledown] [bin] [sy] ["35] \definemathsymbol [wedge] [bin] [sy] ["5E] \definemathsymbol [vee] [bin] [sy] ["5F] \definemathsymbol [cap] [bin] [sy] ["5C] \definemathsymbol [cup] [bin] [sy] ["5B] \definemathsymbol [ddagger] [bin] [sy] ["7A] \definemathsymbol [dagger] [bin] [sy] ["79] \definemathsymbol [sqcap] [bin] [sy] ["75] \definemathsymbol [sqcup] [bin] [sy] ["74] \definemathsymbol [uplus] [bin] [sy] ["5D] \definemathsymbol [amalg] [bin] [sy] ["71] \definemathsymbol [diamond] [bin] [sy] ["05] \definemathsymbol [bullet] [bin] [sy] ["0F] \definemathsymbol [wr] [bin] [sy] ["6F] \definemathsymbol [div] [bin] [sy] ["04] \definemathsymbol [odot] [bin] [sy] ["0C] \definemathsymbol [oslash] [bin] [sy] ["0B] \definemathsymbol [otimes] [bin] [sy] ["0A] \definemathsymbol [ominus] [bin] [sy] ["09] \definemathsymbol [oplus] [bin] [sy] ["08] \definemathsymbol [mp] [bin] [sy] ["07] \definemathsymbol [pm] [bin] [sy] ["06] \definemathsymbol [circ] [bin] [sy] ["0E] \definemathsymbol [bigcirc] [bin] [sy] ["0D] \definemathsymbol [setminus] [bin] [sy] ["6E] \definemathsymbol [cdot] [bin] [sy] ["01] \definemathsymbol [ast] [bin] [sy] ["03] \definemathsymbol [times] [bin] [sy] ["02] \definemathsymbol [star] [bin] [mi] ["3F] \stopmathcollection \startmathcollection[default] \definemathsymbol [propto] [rel] [sy] ["2F] \definemathsymbol [sqsubseteq] [rel] [sy] ["76] \definemathsymbol [sqsupseteq] [rel] [sy] ["77] \definemathsymbol [parallel] [rel] [sy] ["6B] \definemathsymbol [mid] [rel] [sy] ["6A] \definemathsymbol [dashv] [rel] [sy] ["61] \definemathsymbol [vdash] [rel] [sy] ["60] \definemathsymbol [nearrow] [rel] [sy] ["25] \definemathsymbol [searrow] [rel] [sy] ["26] \definemathsymbol [nwarrow] [rel] [sy] ["2D] \definemathsymbol [swarrow] [rel] [sy] ["2E] \definemathsymbol [Leftrightarrow] [rel] [sy] ["2C] \definemathsymbol [Leftarrow] [rel] [sy] ["28] \definemathsymbol [Rightarrow] [rel] [sy] ["29] \stopmathcollection \startmathcollection[default] \definemathcommand [lnot] {\neg} \definemathcommand [int] {\intop \intlimits} \definemathcommand [oint] {\ointop\intlimits} \definemathcommand [land] {\wedge} \definemathcommand [lor] {\vee} \definemathcommand [neq] {\not=} \definemathcommand [ne] {\neq} \definemathcommand [le] {\leq} \definemathcommand [ge] {\geq} \definemathcommand [eq] {=} \definemathcommand [gt] {>} \definemathcommand [lt] {<} \definemathcommand [gets] {\leftarrow} \definemathcommand [owns] {\ni} \definemathcommand [to] {\rightarrow} \definemathcommand [mapsto] {\mapstochar\rightarrow} \stopmathcollection \startmathcollection[default] \definemathsymbol [leq] [rel] [sy] ["14] \definemathsymbol [geq] [rel] [sy] ["15] \definemathsymbol [succ] [rel] [sy] ["1F] \definemathsymbol [prec] [rel] [sy] ["1E] \definemathsymbol [approx] [rel] [sy] ["19] \definemathsymbol [succeq] [rel] [sy] ["17] \definemathsymbol [preceq] [rel] [sy] ["16] \definemathsymbol [supset] [rel] [sy] ["1B] \definemathsymbol [subset] [rel] [sy] ["1A] \definemathsymbol [supseteq] [rel] [sy] ["13] \definemathsymbol [subseteq] [rel] [sy] ["12] \definemathsymbol [in] [rel] [sy] ["32] \definemathsymbol [ni] [rel] [sy] ["33] \definemathsymbol [gg] [rel] [sy] ["1D] \definemathsymbol [ll] [rel] [sy] ["1C] \definemathsymbol [not] [rel] [sy] ["36] \definemathsymbol [leftrightarrow] [rel] [sy] ["24] \definemathsymbol [leftarrow] [rel] [sy] ["20] \definemathsymbol [rightarrow] [rel] [sy] ["21] \definemathsymbol [mapstochar] [rel] [sy] ["37] \definemathsymbol [sim] [rel] [sy] ["18] \definemathsymbol [simeq] [rel] [sy] ["27] \definemathsymbol [perp] [rel] [sy] ["3F] \definemathsymbol [equiv] [rel] [sy] ["11] \definemathsymbol [asymp] [rel] [sy] ["10] \definemathsymbol [smile] [rel] [mi] ["5E] \definemathsymbol [frown] [rel] [mi] ["5F] \definemathsymbol [leftharpoonup] [rel] [mi] ["28] \definemathsymbol [leftharpoondown] [rel] [mi] ["29] \definemathsymbol [rightharpoonup] [rel] [mi] ["2A] \definemathsymbol [rightharpoondown] [rel] [mi] ["2B] \definemathsymbol [lhook] [rel] [mi] ["2C] \definemathsymbol [rhook] [rel] [mi] ["2D] \stopmathcollection \def\PLAINldots {\ldotp\ldotp\ldotp} \def\PLAINcdots {\cdotp\cdotp\cdotp} \def\PLAINvdots {\vbox{\baselineskip.4\bodyfontsize\lineskiplimit\zeropoint \kern.6\bodyfontsize\hbox{.}\hbox{.}\hbox{.}}} \def\PLAINddots {\mkern1mu\raise.7\bodyfontsize\vbox{\kern.7\bodyfontsize\hbox{.}}\mkern2mu \raise.4\bodyfontsize\hbox{.}\mkern2mu\raise.1\bodyfontsize\hbox{.}\mkern1mu} \startmathcollection[default] \definemathcommand [hookrightarrow] {\lhook\joinrel\rightarrow} \definemathcommand [hookleftarrow] {\leftarrow\joinrel\rhook} \definemathcommand [bowtie] {\mathrel\triangleright\joinrel\mathrel\triangleleft} \definemathcommand [models] {\mathrel|\joinrel=} \definemathcommand [iff] {\;\Longleftrightarrow\;} \definemathsymbol [ldotp] [punct] [mi] ["3A] \definemathsymbol [cdotp] [punct] [sy] ["01] \definemathsymbol [colon] [punct] [mr] ["3A] \definemathcommand [ldots] [inner] {\PLAINldots} \definemathcommand [cdots] [inner] {\PLAINcdots} \definemathcommand [vdots] [nothing] {\PLAINvdots} \definemathcommand [ddots] [inner] {\PLAINddots} \stopmathcollection \startmathcollection[default] \definemathsymbol [acute] [accent] [mr] ["13] \definemathsymbol [grave] [accent] [mr] ["12] \definemathsymbol [ddot] [accent] [mr] ["7F] \definemathsymbol [tilde] [accent] [mr] ["7E] \definemathsymbol [mathring] [accent] [mr] ["17] \definemathsymbol [bar] [accent] [mr] ["16] \definemathsymbol [breve] [accent] [mr] ["15] \definemathsymbol [check] [accent] [mr] ["14] \definemathsymbol [hat] [accent] [mr] ["5E] \definemathsymbol [vec] [accent] [mi] ["7E] % [ord] \definemathsymbol [dot] [accent] [mr] ["5F] \definemathsymbol [widetilde] [accent] [ex] ["65] % [ord] \definemathsymbol [widehat] [accent] [ex] ["62] % [ord] \stopmathcollection \startmathcollection[default] \definemathsymbol [lmoustache] [open] [ex] ["7A] [ex] ["40] \definemathsymbol [rmoustache] [close] [ex] ["7B] [ex] ["41] \definemathsymbol [lgroup] [open] [mr] ["28] [ex] ["3A] % ? \definemathsymbol [rgroup] [close] [mr] ["29] [ex] ["3B] % ? \definemathsymbol [arrowvert] [nothing] [sy] ["6A] [ex] ["3C] \definemathsymbol [Arrowvert] [nothing] [sy] ["6B] [ex] ["3D] \definemathsymbol [bracevert] [nothing] [ex] ["3E] % ? \definemathsymbol [Vert] [nothing] [sy] ["6B] [ex] ["0D] \definemathsymbol [vert] [nothing] [sy] ["6A] [ex] ["0C] \definemathsymbol [uparrow] [rel] [sy] ["22] [ex] ["78] \definemathsymbol [downarrow] [rel] [sy] ["23] [ex] ["79] \definemathsymbol [updownarrow] [rel] [sy] ["6C] [ex] ["3F] \definemathsymbol [Uparrow] [rel] [sy] ["2A] [ex] ["7E] \definemathsymbol [Downarrow] [rel] [sy] ["2B] [ex] ["7F] \definemathsymbol [Updownarrow] [rel] [sy] ["6D] [ex] ["77] \definemathsymbol [backslash] [nothing] [sy] ["6E] [ex] ["0F] \definemathsymbol [langle] [open] [sy] ["68] [ex] ["0A] \definemathsymbol [rangle] [close] [sy] ["69] [ex] ["0B] \definemathsymbol [lbrace] [open] [sy] ["66] [ex] ["08] \definemathsymbol [rbrace] [close] [sy] ["67] [ex] ["09] \definemathsymbol [lceil] [open] [sy] ["64] [ex] ["06] \definemathsymbol [rceil] [close] [sy] ["65] [ex] ["07] \definemathsymbol [lfloor] [open] [sy] ["62] [ex] ["04] \definemathsymbol [rfloor] [close] [sy] ["63] [ex] ["05] \definemathsymbol [sqrt] [radical] [sy] ["70] [ex] ["70] \stopmathcollection %D By request: \startmathcollection[default] \definemathsymbol [lvert] [open] [sy] ["6A] [ex] ["0C] \definemathsymbol [rvert] [close] [sy] ["6A] [ex] ["0C] \definemathsymbol [lVert] [open] [sy] ["6B] [ex] ["0D] \definemathsymbol [rVert] [close] [sy] ["6B] [ex] ["0D] \stopmathcollection %D For brooks: %D %D \starttyping %D $\sqrt[3]{10}$ %D \stoptyping \ifx\normalsqrt\undefined \let\normalsqrt\sqrt \fi % just set to: \dohandlemathtoken {sqrt} \def\notsosqrt[#1]{\root#1\of} \unexpanded\def\sqrt{\doifnextoptionalelse\notsosqrt\normalsqrt} \def\PLAINbig {\@@dobig{0.85}} \def\PLAINBig {\@@dobig{1.15}} \def\PLAINbigg{\@@dobig{1.45}} \def\PLAINBigg{\@@dobig{1.75}} \startrawmathcollection [default] \definemathcommand [bigl] [open] [one] {\big} \definemathcommand [bigm] [rel] [one] {\big} \definemathcommand [bigr] [close] [one] {\big} \definemathcommand [Bigl] [open] [one] {\Big} \definemathcommand [Bigm] [rel] [one] {\Big} \definemathcommand [Bigr] [close] [one] {\Big} \definemathcommand [biggl] [open] [one] {\bigg} \definemathcommand [biggm] [rel] [one] {\bigg} \definemathcommand [biggr] [close] [one] {\bigg} \definemathcommand [Biggl] [open] [one] {\Bigg} \definemathcommand [Biggm] [rel] [one] {\Bigg} \definemathcommand [Biggr] [close] [one] {\Bigg} \definemathcommand [big] {\PLAINbig} \definemathcommand [Big] {\PLAINBig} \definemathcommand [bigg] {\PLAINbigg} \definemathcommand [Bigg] {\PLAINBigg} \stoprawmathcollection \startmathcollection[default] \definemathsymbol [dag] [box] [sy] ["79] \definemathsymbol [ddag] [box] [sy] ["7A] \definemathsymbol [S] [box] [sy] ["78] \definemathsymbol [P] [box] [sy] ["7B] \definemathsymbol [Orb] [box] [sy] ["0D] \stopmathcollection \def\PLAINroot#1#2% {\setbox\zerocount\hbox{$\mathsurround\zeropoint#1\sqrt{#2}$}\dimen@\ht\zerocount \advance\dimen@-\dp\zerocount \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\box\zerocount} \def\PLAINmatrix#1% {\null\,\vcenter{\normalbaselines\mathsurround\zeropoint \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr \mathstrut\crcr\noalign{\kern-\baselineskip} #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} \startrawmathcollection[default] \definemathcommand [mathstrut] {\vphantom{(}} \definemathcommand [joinrel] {\mathrel{\mkern-3mu}} \definemathcommand [r@@t] {\PLAINroot} \definemathcommand [matrix] {\PLAINmatrix} \definemathcommand [over] {\normalover} % hack, to do \stoprawmathcollection \def\{{\lbrace} \def\}{\rbrace} %def\bbd{\fam\purefamily{blackboard}} %def\cal{\fam\purefamily{calfamily}} \def\mit{\fam\purefamily{mitfamily}} \def\Bbb{\blackboard} % conforming amstex \startmathcollection[default] \definemathsymbol [mathperiod] [ord] [mi] ["3A] \definemathsymbol [textperiod] [punct] [mi] ["3A] \definemathsymbol [mathcomma] [ord] [mi] ["3B] \definemathsymbol [textcomma] [punct] [mi] ["3B] \stopmathcollection \definemathpunctuation . mathperiod textperiod \definemathpunctuation , mathcomma textcomma %D The following colon related definitions are provided by Aditya %D Mahajan who derived them from \type {mathtools.sty} and \type %D {colonequals.sty}. %D \macros %D {centercolon, colonminus, minuscolon, colonequals, equalscolon, %D colonapprox, approxcolon, colonsim, simcolon, coloncolon, %D coloncolonminus, minuscoloncolon, coloncolonequals, %D equalscoloncolon, coloncolonapprox, approxcoloncolon, %D colonsim, simcoloncolon} %D %D In $a := b$ the colon is not vertically centered with the equal %D to. Also the distance between colon and equal to is a bit large. %D So, we define a vertically centered colon \tex {centercolon} and %D a few macros for colon and double colon relation symbols. %D %D \startlines %D \formula {A \centercolon B} %D \formula {A \colonminus B} %D \formula {A \minuscolon B} %D \formula {A \colonequals B} %D \formula {A \equalscolon B} %D \formula {A \colonapprox B} %D \formula {A \approxcolon B} %D \formula {A \colonsim B} %D \formula {A \simcolon B} %D \formula {A \coloncolon B} %D \formula {A \coloncolonminus B} %D \formula {A \minuscoloncolon B} %D \formula {A \coloncolonequals B} %D \formula {A \equalscoloncolon B} %D \formula {A \coloncolonapprox B} %D \formula {A \approxcoloncolon B} %D \formula {A \colonsim B} %D \formula {A \simcoloncolon B} %D \stoplines %D The next macros take care of the space between the colon and the %D relation symbol. \definemathcommand [colonsep] {\mkern-1.2mu} \definemathcommand [doublecolonsep] {\mkern-0.9mu} %D The next macro vertically centeres its contents. \def\@center@math#1% {\vcenter{\hbox{$\mathsurround\zeropoint#1$}}} \def\@center@colon {\mathpalette\@center@math{\colon}} %D Now we define all the colon relations. \definemathcommand [centercolon] [rel] {\@center@colon} \definemathcommand [colonminus] [rel] {\centercolon\colonsep\mathrel{-}} \definemathcommand [minuscolon] [rel] {\mathrel{-}\colonsep\centercolon} \definemathcommand [colonequals] [rel] {\centercolon\colonsep=} \definemathcommand [equalscolon] [rel] {=\centercolon\colonsep} \definemathcommand [colonapprox] [rel] {\centercolon\colonsep\approx} \definemathcommand [approxcolon] [rel] {\approx\centercolon\colonsep} \definemathcommand [colonsim] [rel] {\centercolon\colonsep\sim} \definemathcommand [simcolon] [rel] {\sim\centercolon\colonsep} \definemathcommand [coloncolon] [rel] {\centercolon\doublecolonsep\centercolon} \definemathcommand [coloncolonminus] [rel] {\coloncolon\colonsep\mathrel{-}} \definemathcommand [minuscoloncolon] [rel] {\mathrel{-}\colonsep\coloncolon} \definemathcommand [coloncolonequals] [rel] {\coloncolon\colonsep=} \definemathcommand [equalscoloncolon] [rel] {=\coloncolon\colonsep} \definemathcommand [coloncolonapprox] [rel] {\coloncolon\colonsep\approx} \definemathcommand [approxcoloncolon] [rel] {\approx\coloncolon\colonsep} \definemathcommand [colonsim] [rel] {\coloncolon\colonsep\sim} \definemathcommand [simcoloncolon] [rel] {\sim\coloncolon\colonsep} %D More integrals (AM): \def\dointkern{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}} \definemathcommand [iint] {\repeatintegral\plusone } \definemathcommand [iiint] {\repeatintegral\plustwo } \definemathcommand [iiiint] {\repeatintegral\plusthree} \def\repeatintegral#1% {\scratchtoks\emptytoks \let\dointlimits\donothing \let\dodointlimits\intlimits \dorecurse{#1}{\appendtoks \intop \dointkern \to \scratchtoks} \appendtoks \intop \dointlimits \dodointlimits \to \scratchtoks \edef\dodorepeatintegral{\the\scratchtoks}% \futurelet\next\dorepeatintegral} %D If the \type{\limits} option is used after \type{\iint}, use %D \type{\mathop} and fudge the left hand space a bit to make the %D subscript visually centered. \def\dorepeatintegral {\ifx\next\limits \dointlimitcorrection \else \ifx\next\displaylimits \dointlimitcorrection \else \ifx\next\nolimits \donothing \else \ifcase\intlimitcode\else \dointlimitcorrection \fi\fi\fi\fi \dodorepeatintegral} \def\dointlimitcorrection {\mkern-7mu\mathchoice{\mkern-2mu}{}{}{}% \mathop\bgroup \mkern7mu\mathchoice{\mkern2mu}{}{}{}% \let\dointlimits\egroup} \setupmathematics [integral=nolimits] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-lay.mkii0000644000175000017500000014077714536300610024672 0ustar hillehille%D \module %D [ file=page-lay, %D version=2000.10.20, % copied from main-001 %D title=\CONTEXT\ Page Macros, %D subtitle=Layout Specification, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Page Macros / Layout Specification} %D This module is now etex dependent. % to be translated into english % hoofdhoogte wordt bij status=hoog niet aangepast op outer % level, wel binnen bepaalde berekeningen %D Before you start wondering why some of the page related %D modules skip upward or left in order to place elements, you %D must realize that the reference point is the top left %D corner of the main typesetting area. One reason for this %D choice is that it suited some viewers that displayed page %D areas. Another reason is that margins, edges and top and %D bottom areas are kind of virtual, while the header, text %D and footer areas normally determine the text flow. \unprotect %D First we get rid of the funny \TEX\ offset defaults of one %D inch by setting them to zero. \voffset = 0pt % setting this to -1in let's go metapost crazy \hoffset = 0pt % setting this to -1in let's go metapost crazy %D The dimensions related to layout areas are represented by %D real dimensions. \newdimen\paperheight \paperheight = 297mm \newdimen\paperwidth \paperwidth = 210mm \newdimen\printpaperheight \printpaperheight = \paperheight \newdimen\printpaperwidth \printpaperwidth = \paperwidth \newdimen\makeupheight % calculated \newdimen\makeupwidth % calculated \newdimen\textheight % calculated \newdimen\textwidth % calculated \newdimen\topspace \topspace = 2cm \newdimen\backspace \backspace = \topspace \newdimen\cutspace \cutspace = 0pt \newdimen\bottomspace \bottomspace = 0pt \newdimen\headerheight \headerheight = 2cm \newdimen\footerheight \footerheight = \headerheight \newdimen\topoffset \topoffset = 0pt \newdimen\backoffset \backoffset = \topoffset \newdimen\leftmarginwidth \leftmarginwidth = 3cm \newdimen\rightmarginwidth \rightmarginwidth = \leftmarginwidth \newdimen\leftedgewidth \leftedgewidth = 3cm \newdimen\rightedgewidth \rightedgewidth = \leftedgewidth \newdimen\topheight \topheight = 0cm \newdimen\bottomheight \bottomheight = \topheight \newcount\layoutlines \layoutlines = 0 \newcount\layoutcolumns \layoutcolumns = 0 \newdimen\layoutcolumndistance \layoutcolumndistance = 0pt \newdimen\layoutcolumnwidth \layoutcolumnwidth = 0pt %D We can save some tokens and fuzzy parameters by using a %D symbolic name for the current set of layout parameters. \let\currentlayout\empty \def\layoutparameter#1% {\csname\??ly\ifcsname \??ly\currentlayout#1\endcsname\currentlayout \fi#1\endcsname} \def\namedlayoutparameter#1#2% {\csname\??ly\ifcsname\??ly #1#2\endcsname#1\else \ifcsname\??ly\currentlayout#2\endcsname\currentlayout \fi\fi#2\endcsname} %D Beause normal \TEX\ has at most 256 dimensions (of which a %D substantial part is already in use), we provide a way to %D generate a format with macro based alternatives. For a long %D time, this used to be the default case. Beware: only fixed %D dimensions can be used in calculations! By the way, the %D gain in speed can hardly be called impressive and is roughly %D 1 second on a 35 second run of 850 empty pages with a %D couple of backgrounds only (which is far less than one %D percent on a normal document). %D The next series of dimensions are complemented by left %D and rights ones. \newdimen \margindistance \newdimen \edgedistance \newdimen \marginwidth \newdimen \edgewidth %D Because a distance does not really makes sense when there %D is no area, we use a zero distance in case there is no %D area. \def\layoutdistance#1#2% {\ifdim\zeropoint<#1\layoutparameter#2\else\zeropoint\fi} %D The horizontal distances are: \newdimen \leftedgedistance \newdimen \rightedgedistance \newdimen \leftmargindistance \newdimen \rightmargindistance %D The vertical distances are: \newdimen \topdistance \newdimen \headerdistance \newdimen \footerdistance \newdimen \bottomdistance %D We need to calculate the extra distances: \def\setlayoutdimensions {\global\marginwidth \layoutparameter\c!margin \global\edgewidth \layoutparameter\c!edge \global\margindistance \layoutparameter\c!margindistance \global\edgedistance \layoutparameter\c!edgedistance \global\leftedgedistance \layoutdistance \leftedgewidth \c!leftedgedistance \global\rightedgedistance \layoutdistance \rightedgewidth \c!rightedgedistance \global\leftmargindistance \layoutdistance \leftmarginwidth \c!leftmargindistance \global\rightmargindistance\layoutdistance \rightmarginwidth \c!rightmargindistance \global\topdistance \layoutdistance \topheight \c!topdistance \global\headerdistance \layoutdistance \headerheight \c!headerdistance \global\footerdistance \layoutdistance \footerheight \c!footerdistance \global\bottomdistance \layoutdistance \bottomheight \c!bottomdistance} \def\setlayoutdistances % local in \setreducedvsize {\headerdistance\layoutdistance\headerheight\c!headerdistance \footerdistance\layoutdistance\footerheight\c!footerdistance} % these are wrong in the running text, assumes some swapping, needs a cleanup \def\outermarginwidth {\rightorleftpageaction\rightmarginwidth \leftmarginwidth } \def\innermarginwidth {\rightorleftpageaction\leftmarginwidth \rightmarginwidth} \def\outermargindistance{\rightorleftpageaction\rightmargindistance\leftmargindistance } \def\innermargindistance{\rightorleftpageaction\leftmargindistance \rightmargindistance} \def\outeredgewidth {\rightorleftpageaction\rightedgewidth \leftedgewidth } \def\inneredgewidth {\rightorleftpageaction\leftedgewidth \rightedgewidth} \def\outeredgedistance {\rightorleftpageaction\rightedgedistance\leftedgedistance } \def\inneredgedistance {\rightorleftpageaction\leftedgedistance \rightedgedistance} \def\outerspacewidth {\rightorleftpageaction\cutspace\backspace} \def\innerspacewidth {\rightorleftpageaction\backspace\cutspace} \newtoks\extralayoutcalculations \def\calculatelayoutextras{\the\extralayoutcalculations} % \appendtoks % non etex calculations used to go here % \to \extralayoutcalculations \newtoks\everyswapmargins % watch the order ! \appendtoks \swapdimens\leftmargindistance\rightmargindistance \swapdimens\leftedgedistance \rightedgedistance \swapdimens\leftmarginwidth \rightmarginwidth \swapdimens\leftedgewidth \rightedgewidth \to \everyswapmargins \appendtoks \swapmacros\leftmargintotal \rightmargintotal \swapmacros\leftedgetotal \rightedgetotal \swapmacros\leftsidetotal \rightsidetotal \swapmacros\leftcombitotal \rightcombitotal \swapmacros\innermargintotal\outermargintotal \swapmacros\inneredgetotal \outeredgetotal \swapmacros\innercombitotal \outercombitotal \swapmacros\innersidetotal \outersidetotal \to \everyswapmargins %D \macros %D {definepapersize} %D %D Before we start calculating layout dimensions, we will %D first take care of paper sizes. The first argument can be %D either an assignment (for defaults) or an identifier, in %D which case the second argument is an assignment. %D %D \showsetup{definepapersize} \def\definepapersize {\dodoubleempty\dodefinepapersize} \def\definepapersize {\dotripleempty\dodefinepapersize} \def\dodefinepapersize[#1][#2][#3]% {\ifsecondargument \doifsomething{#1} % to be sure {\doifassignmentelse{#2} {\getparameters [\??pp#1] % geen \c!scale, scheelt hash ruimte [\c!width=\@@ppwidth,\c!height=\@@ppheight,\c!offset=\@@ppoffset,#2]} {\setvalue{\??pp:1:#1}{#2}% \setvalue{\??pp:2:#1}{#3}}}% \else \getparameters[\??pp][#1]% \setuppapersize % hm. this will freeze ! \fi} %D For the moment we need to fake this macro. \ifx\setuppapersize\undefined \let\setuppapersize\relax \fi %D We set the defaults to the dimensions of an A4 sheet of %D paper. \definepapersize [\c!width=210mm,\c!height=297mm,\c!offset=\!!zeropoint] %D Yet undocumented, let's see if it gets noticed. %D %D \starttyping %D \definepapersize[main] [A4] [A4] %D \definepapersize[extra][A4,landscape][A4,landscape] %D %D \starttext %D \setuppapersize[main] %D Page 1. \page %D Page 2. \page %D \setuppapersize[extra] %D Page 2 \page %D \setuppapersize[main] %D Page 3. \page %D Page 4. \page %D \adaptpapersize[extra] %D Page 5. \page %D Page 6. \page %D \stoptext %D \stoptyping %D \macros %D {setuppaper,setuppapersize} %D %D When setting up the papersize on which to typeset and %D print, we can also determine some more characteristics. %D %D \showsetup{setuppapersize} %D %D We keep track of these features with the following %D variables. \chardef\papermirror =0 \chardef\printmirror =0 \chardef\paperorientation=0 \chardef\printorientation=0 % beware: later no chardef \chardef\paperreverse =0 \chardef\printreverse =0 \chardef\paperlandscape =0 \chardef\printlandscape =0 \let\papersize\empty \let\printpapersize\empty \def\paperscale{1} \newif\ifnegateprintbox \def\setuppaper[#1]% {\getparameters[\??pp][\c!paper=,\c!page=,#1]% \edef\@@ppxy{\the\numexpr\@@ppnx*\@@ppny\relax}% \doifelsenothing\@@pppage {\doifelsenothing\@@pppaper {} % {\setuppapersize} % added, removed, no need for, too tricky, mag-01 (fixed by freezing pp's) {\dodosetuppapersize[\papersize][\@@pppaper]}} {\doifelsenothing\@@pppaper {\dodosetuppapersize[\@@pppage][\printpapersize]} {\dodosetuppapersize[\@@pppage][\@@pppaper]}}} \def\setuppapersize {\dodoubleempty\dosetuppapersize} \def\dosetuppapersize[#1][#2]% {\doifassignmentelse{#1} {\setuppaper[#1]} {\doifelsenothing{#2} {\expanded{\dodosetuppapersize [\executeifdefined{\??pp:1:#1}{#1}]% [\executeifdefined{\??pp:2:#1}{\v!default}]}} {\doifassignmentelse{#2} {\getparameters[\??pp\executeifdefined{\??pp:1:#1}{#1}][#2]} {\expanded{\dodosetuppapersize [\executeifdefined{\??pp:1:#1}{#1}]% [\executeifdefined{\??pp:1:#2}{#2}]}}}}} \let\reinstatepapersize\relax \def\adaptpapersize {\global\let\reinstatepapersize\restorepapersize \setuppapersize} \appendtoks \reinstatepapersize \global\let\reinstatepapersize\relax \to \everyaftershipout \def\dodosetuppapersize[#1][#2]% {\ifsecondargument \expanded{\dododosetuppapersize[#1][#2]}% \calculatehsizes \calculatevsizes \recalculatelogos \recalculatebackgrounds \recalculatelayout \else\iffirstargument \setuppapersize[#1][#2]% \else\ifx\papersize\undefined\else \restorepapersize \fi\fi\fi} % dimen freeze is a bit tricky, but catches local redundant calls % with values where e.g width is defined in terms of \paperwidth \def\dododosetuppapersize[#1][#2]% {\xdef\restorepapersize{\noexpand\setuppapersize[#1][#2]}% \dosetuppaperorientation{#1}\paperlandscape\paperorientation\paperreverse\papermirror \dosetuppaperorientation{#2}\printlandscape\printorientation\printreverse\printmirror \def\docommand##1% {\doifsomething{##1}{\doifdefined{\??pp##1\c!width} {\global\paperwidth \getvalue{\??pp##1\c!width}% \global\paperheight\getvalue{\??pp##1\c!height}% \ifinpagebody \setevalue{\??pp##1\c!height}{\the\paperheight}% \setevalue{\??pp##1\c!width }{\the\paperwidth }% \fi \calculatepaperoffsets{##1}% \xdef\papersize{##1}}}}% \processcommacommand[#1]\docommand \doifdefinedelse{\??pp#1\c!scale} {\edef\paperscale{\getvalue{\??pp#1\c!scale}}} {\edef\paperscale{1}}% \def\docommand##1% {\doifsomething{##1}{\doifdefined{\??pp##1\c!width} {\global\printpaperwidth \getvalue{\??pp##1\c!width}% \global\printpaperheight\getvalue{\??pp##1\c!height}% \ifinpagebody \setevalue{\??pp##1\c!height}{\the\printpaperheight}% \setevalue{\??pp##1\c!width }{\the\printpaperwidth}% \fi \xdef\printpapersize{##1}}}}% \processcommacommand[#2]\docommand \global\setdimentoatleast\paperwidth \onepoint \global\setdimentoatleast\paperheight \onepoint \global\setdimentoatleast\printpaperwidth \onepoint \global\setdimentoatleast\printpaperheight\onepoint \ifcase\paperlandscape\else \doglobal\swapdimens\paperwidth\paperheight \fi \ifcase\printlandscape\else \doglobal\swapdimens\printpaperwidth\printpaperheight \fi % this check can be confusing, so we've added the possibility % to bypass this test: \setuppapersize[option=fit] \doif\@@ppoption\v!max % \v!fit is {\bgroup % we need to pre-swap else we get the wrong paper size \ifcase\paperorientation\else \doifinset\paperorientation{90,270}{\swapdimens\paperwidth\paperheight}% \fi \ifcase\printorientation\else \doifinset\printorientation{90,270}{\swapdimens\printpaperwidth\printpaperheight}% \fi \ifdim\paperheight>\printpaperheight \global\printpaperheight\paperheight \writestatus\m!systems{print height forced to paper height}% \fi \ifdim\paperwidth>\printpaperwidth \global\printpaperwidth\paperwidth \writestatus\m!systems{print width forced to paper width}% \fi \egroup}} \def\dosetuppaperorientation#1#2#3#4#5% {\global\chardef#2\zerocount \global\chardef#5\zerocount \globallet#3\!!zerocount \globallet#4\!!zerocount \global\negateprintboxfalse \processallactionsinset [#1] [ \v!landscape=>\global\chardef#2\plusone, \v!mirrored=>\global\chardef#5\plusone, \v!rotated=>\gdef#3{90}\gdef#4{270}, \v!negative=>\global\negateprintboxtrue, 90=>\gdef#3{90}\gdef#4{270}, 180=>\gdef#3{180}\gdef#4{0}, 270=>\gdef#3{270}\gdef#4{90}]} \ifx\calculatepaperoffsets\undefined \def\calculatepaperoffsets#1% {\scratchdimen\getvalue{\??pp#1\c!offset}% \global\advance\paperwidth -2\scratchdimen \global\advance\paperheight-2\scratchdimen} \fi \let\restorepapersize\relax \def\checkforems[#1]% {\def\docommand##1% {\beforesplitstring##1\at em\to\asciia \doifnot\asciia{##1} {\aftersplitstring\asciia\at=\to\asciia \doifsomething\asciia {\showmessage\m!systems{10}{##1}}}}% \processcommalist[#1]\docommand} \ifx\setups\undefined \def\setups[#1]{\setdefaultpenalties} \fi % \newtoks \everybeforelayout \relax % \newtoks \everyafterlayout \relax \def\recalculatelayout {\doifsomething{\layoutparameter\c!page\layoutparameter\c!paper} {\expanded{\dododosetuppapersize[\layoutparameter\c!page][\layoutparameter\c!paper]}}% \dorecalculatelayout} \def\dorecalculatelayout {%\the\everybeforelayout \setups[\layoutparameter\c!preset]% \global\leftmarginwidth \layoutparameter\c!leftmargin \global\rightmarginwidth\layoutparameter\c!rightmargin \global\leftedgewidth \layoutparameter\c!leftedge \global\rightedgewidth \layoutparameter\c!rightedge \global\headerheight \layoutparameter\c!header \global\footerheight \layoutparameter\c!footer \global\bottomheight \layoutparameter\c!bottom \global\topheight \layoutparameter\c!top \global\backspace \layoutparameter\c!backspace \global\topspace \layoutparameter\c!topspace \setlayoutdimensions % the rest of the `dimensions' \doifelse\@@lygrid\v!yes\gridsnappingtrue\gridsnappingfalse \ifgridsnapping \setsystemmode\v!grid \else \resetsystemmode\v!grid \fi \setups[\layoutparameter\c!setups]% depends on gridsnapping ! \simplesetupwhitespace \simplesetupblank \global\cutspace\layoutparameter\c!cutspace \relax \doifelse{\layoutparameter\c!width}\v!middle {\ifdim\cutspace=\zeropoint \global\cutspace\backspace \fi \global\makeupwidth\dimexpr\paperwidth-\backspace-\cutspace\relax} {\doifelse{\layoutparameter\c!width}\v!fit {\ifdim\cutspace=\zeropoint \global\cutspace\backspace \fi \global\makeupwidth\dimexpr\paperwidth-\cutspace\relax \scratchdimen\dimexpr\backspace -\leftedgewidth -\leftedgedistance -\leftmarginwidth-\leftmargindistance\relax \ifdim\scratchdimen<\zeropoint \scratchdimen\zeropoint \fi \global\advance\makeupwidth\dimexpr -\rightmargindistance-\rightmarginwidth -\rightedgedistance -\rightedgewidth -\scratchdimen\relax} {\global\makeupwidth\layoutparameter\c!width\relax \ifdim\cutspace=\zeropoint \global\cutspace\dimexpr\paperwidth-\makeupwidth-\backspace\relax % \else % A kind of inconsistent specification, but used % in for instance s-pre-19.tex; the cutspace is % used only for determining some kind of right % margin; don't use this in doublesided mode \fi}}% \scratchdimen\layoutparameter\c!bottomspace\relax %\ifdim\scratchdimen=\zeropoint % \scratchdimen\topspace %\fi \global\bottomspace\layoutparameter\c!bottomspace\relax \global\layoutlines0\number\layoutparameter\c!lines\relax % may be empty \ifcase\layoutlines \doifelse{\layoutparameter\c!height}\v!middle {\ifdim\bottomspace=\zeropoint \global\bottomspace\topspace \fi \global\makeupheight\dimexpr\paperheight-\topspace-\bottomspace\relax} {\doifelse{\layoutparameter\c!height}\v!fit {\ifdim\bottomspace=\zeropoint \global\bottomspace\topspace \fi \global\makeupheight\dimexpr\paperheight-\bottomspace\relax \scratchdimen\dimexpr\topspace-\topheight-\topdistance\relax \ifdim\scratchdimen<\zeropoint \scratchdimen\zeropoint \fi \global\advance\makeupheight\dimexpr-\bottomdistance-\bottomheight-\scratchdimen\relax} {\global\makeupheight\layoutparameter\c!height\relax \ifdim\bottomspace=\zeropoint \global\bottomspace\dimexpr\paperheight-\makeupheight-\topspace\relax \else % inconsistent specification \fi}}% \else % beware, when the bodyfont changes (switched) this will change as well; implementing % a global lineheight is tricky: should we take the bodyfont interlinespace or the one set % independent of the bodyfont (before or after a layout spec); way too fuzzy, so we % stick to the current method (after a night of experimenting ...2003/10/13) \global\makeupheight\dimexpr \layoutparameter\c!lines\lineheight-\strutheight+\topskip+ \headerdistance+\headerheight+\footerdistance+\footerheight\relax \fi \backoffset\layoutparameter\c!horoffset \topoffset \layoutparameter\c!veroffset \global\setdimentoatleast\makeupwidth\onepoint \global\setdimentoatleast\makeupheight \onepoint % \checkcurrentlayout % here ? % \the\everyafterlayout \calculatelayoutextras \calculatehsizes \calculatevsizes \calculatepseudocolumns \checkgridsnapping \recalculatelogos \recalculatebackgrounds} \def\calculatepseudocolumns {\global\layoutcolumns\layoutparameter\c!columns \global\layoutcolumndistance\layoutparameter\c!columndistance \global\layoutcolumnwidth\dimexpr\makeupwidth-\layoutcolumns\layoutcolumndistance+\layoutcolumndistance\relax \global\divide\layoutcolumnwidth\layoutcolumns \dorecurse\layoutcolumns {\setxvalue{\??ly:c:\recurselevel}% {\the\numexpr\recurselevel-\plusone\relax\dimexpr\layoutcolumnwidth+\layoutcolumndistance\relax}}} %\dorecurse\layoutcolumns % {\setxvalue{\??ly:c:\recurselevel}{\the\dimexpr % (\numexpr(\recurselevel-1)\dimexpr(\layoutcolumnwidth+\layoutcolumndistance))}} \def\layoutcolumnoffset#1% {\executeifdefined{\??ly:c:#1}\!!zeropoint} \def\checklayout {\ifdim\makeupheight=\layoutlines\lineheight \else \recalculatelayout \fi} \appendtoks \checklayout \to \everystarttext % document: % % \setuplayout[odd][state=stop] \setuplayout[even][state=stop] \setuplayout[page] % % \startstandardmakeup[page=blank] ... \stopstandardmakeup \def\changetolayout#1% {%\writestatus\m!layouts{changing to layout #1}% \xdef\currentlayout{#1}\recalculatelayout} \def\checkcurrentoddlayout {\ifcsname\??ly\v!odd\c!state\endcsname \doifvalue{\??ly\v!odd\c!state}\v!start{\changetolayout\v!odd}% \fi} \def\checkcurrentevenlayout {\ifcsname\??ly\v!even\c!state\endcsname \doifvalue{\??ly\v!even\c!state}\v!start{\changetolayout\v!even}% \fi} \ifx\lastpage\undefined \def\lastpage{1} \fi \def\reverserealfolio {\ifnum\lastpage>\plusone \ifnum\lastpage=\realfolio \v!last \else\ifnum\plusone=\realfolio \v!first \else \the\numexpr\realfolio-\lastpage\relax \fi\fi \else \!!zerocount \fi} \def\checkcurrentlayout % public and used in naw, so keep this name {\ifcsname\??ly\realfolio\c!state\endcsname \doifvalue{\??ly\realfolio\c!state}\v!start{\changetolayout\realfolio}% \else\ifcsname\??ly\reverserealfolio\c!state\endcsname \doifvalue{\??ly\reverserealfolio\c!state}\v!start{\changetolayout\reverserealfolio}% \else\ifcsname\??ly\v!current\c!state\endcsname \changetolayout\v!current % no start test ? \else \doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout \fi\fi\fi} % testcase % % \setuppagenumbering[alternative=doublesided] % % \setuplayout [width=11cm] % \definelayout [odd] [backspace=1cm] % \definelayout [even] [backspace=4cm] % \definelayout [5] [backspace=5cm] % \definelayout [6] [backspace=5cm] % \definelayout [-2] [backspace=0cm,cutspace=0cm] % \definelayout [last] [backspace=0cm,cutspace=0cm] % % \checkcurrentlayout \showframe % % \starttext % \dorecurse{20} {\input knuth \endgraf \input tufte \endgraf} % \stoptext %appendtoks \checkcurrentlayout \to \everyaftershipout % no \appendtoks \checkcurrentlayout \to \everystarttext \appendtoks \dochecknextlayout \to \everyaftershipout % \def\dochecknextlayout % {\ifx\currentlayout\v!current % % prevent redundant calculations % \else % \globallet\currentlayout\empty % \global\letbeundefined{\??ly\v!current\c!state}% % \checkcurrentlayout % \fi} % % this breaks after a standardmakeup \def\dochecknextlayout{\checkcurrentlayout} \newif\ifdoublesidedprint \def\presetcenterpagebox % in \setuplayout !!!!!!!!!!!!!!!! {\doublesidedprintfalse \ExpandFirstAfter\processallactionsinset [\@@lylocation] [ \v!middle=>{\setuppapersize[\c!left=\hss,\c!right=\hss,\c!top=\vss,\c!bottom=\vss]}, \v!left=>{\setuppapersize[\c!left=,\c!right=\hss]}, \v!right=>{\setuppapersize[\c!left=\hss,\c!right=]}, \v!bottom=>{\setuppapersize[\c!top=\vss,\c!bottom=]}, \v!top=>{\setuppapersize[\c!top=,\c!bottom=\vss]},% \v!doublesided=>\doublesidedprinttrue, \v!singlesided=>\doublesidedprintfalse]} \def\definelayout {\dodoubleargument\dodefinelayout} \def\dodefinelayout[#1][#2]% {\getparameters[\??ly#1][\c!state=\v!start,#2]} \def\dodosetuplayout[#1][#2]% {\ConvertToConstant\doifnot{#2}\v!reset % #2 ? {\getparameters[\??ly#1][#2]% \checkforems[#2]}} % global needed for non-doublesided standardmakeup \def\dosetuplayout[#1][#2]% {\globallet\currentlayout\empty % new, global \ifsecondargument \dodosetuplayout[#1][#2]% \else\iffirstargument \doifassignmentelse{#1} {\dodosetuplayout[][#1]} {\doifnot{#1}\v!reset{\xdef\currentlayout{#1}}}% new, global \fi\fi \recalculatelayout \checkcurrentlayout % here ? \presetcenterpagebox} \def\setuplayout {\dodoubleempty\dosetuplayout} \let\@@zaheight=\!!zeropoint \def\dopushpagedimensions {\xdef\oldtextheight {\the\textheight }% \xdef\oldfooterheight{\the\footerheight}% \global\let\@@zaheight\@@zaheight} \def\dopoppagedimensions {\global\textheight \oldtextheight \global\footerheight\oldfooterheight \recalculatelayout \global\let\pushpagedimensions\dopushpagedimensions \global\let\poppagedimensions\relax} \let\poppagedimensions = \relax \let\pushpagedimensions = \dopushpagedimensions % Elke \csname ... \endcsname wordt ook aangemaakt, dus ook % in een test met \doifdefined. Bij veel bladzijden kan dit % te veel macro's kosten. Vandaar de set \adaptedpages. Het % kost tijd, maar scheelt macro's. \let\adaptedpages\empty \def\adaptpagedimensions {\ifx\adaptedpages\empty\else \rawdoifinsetelse\realfolio\adaptedpages {\getvalue{\??za\realfolio}% \letbeundefined{\??za\realfolio}} \donothing \fi} \def\checkpagedimensions {\poppagedimensions \adaptpagedimensions} \def\reportpagedimensions {\ifx\poppagedimensions\relax \else \space\the\dimexpr\@@zaheight\relax\space-\space \fi \realfolio} \def\dodoadaptlayout[#1]% {\getparameters[\??za][\c!height=,\c!lines=0,#1]% \pushpagedimensions \ifcase\@@zalines\relax \showmessage\m!layouts1{\@@zaheight,\realfolio}% \else \showmessage\m!layouts1{\@@zalines\space\v!lines,\realfolio}% \def\@@zaheight{\@@zalines\openlineheight}% \fi \doifelse\@@zaheight\v!max {\balancedimensions\textheight\footerheight\footerheight} {\balancedimensions\textheight\footerheight\@@zaheight}% \ifdim\footerheight<\zeropoint \global\advance\textheight \footerheight \global\footerheight\zeropoint \global\xdef\@@zaheight{\layoutparameter\c!footer\space(\v!max)}% \fi \setvsize \global\pagegoal\vsize % nog corrigeren voor insertions ? \recalculatelogos \recalculatebackgrounds \global\let\pushpagedimensions\relax \global\let\poppagedimensions\dopoppagedimensions} \def\doadaptlayout[#1][#2]% {\doifelsenothing{#2} {\dodoadaptlayout[#1]} {\def\docommand##1% {\addtocommalist{##1}\adaptedpages \setgvalue{\??za##1}{\dodoadaptlayout[#2]}}% \processcommalist[#1]\docommand \adaptpagedimensions}} \def\adaptlayout {\dodoubleempty\doadaptlayout} % describe interface %D Centering the paper area on the print area is determined %D by the \type {top}, \type {bottom}, \type {left} and \type %D {right} parameters. \def\centerpagebox#1% {\printpaperwidth \paperscale\printpaperwidth \printpaperheight\paperscale\printpaperheight \setbox#1\vbox to \printpaperheight {\@@pptop \hbox to \printpaperwidth {\ifdoublesidedprint \doifbothsides {\@@ppleft \box#1\@@ppright} {\@@ppleft \box#1\@@ppright} {\@@ppright\box#1\@@ppleft }% \else \@@ppleft \box#1\@@ppright \fi}% \par \@@ppbottom}} \def\offsetprintbox#1% {\ifdim\topoffset=\zeropoint % \relax \ifdim\backoffset=\zeropoint \donefalse \else \donetrue \fi \else \donetrue \fi \ifdone \edef\next{\wd#1\the\wd#1\ht#1\the\ht#1\dp#1\the\dp#1}% \setbox#1\vbox {%\forgetall \offinterlineskip \vskip\topoffset \doifbothsides{\hskip\backoffset}{\hskip\backoffset}{\hskip-\backoffset}% \box#1}% \next \fi} \def\replicatepagebox#1% {\ifnum\@@lynx>\plusone \donetrue \else\ifnum\@@lyny>\plusone \donetrue \else \donefalse \fi\fi \ifdone \setbox#1\vbox {%\forgetall \offinterlineskip \dorecurse\@@lyny {\hbox{\dorecurse\@@lynx{\copy#1\hskip\@@lydx}\unskip}% \vskip\@@lydy} \unskip}% \fi} \def\orientpagebodybox#1#2#3% {\ifnum#2#3>\zerocount \setbox#1\vbox {\edef\somerotation{\ifdoublesided\ifodd\realpageno#2\else#3\fi\else#2\fi}% \dorotatebox\somerotation\hbox{\box#1}}% \fi} \def\orientpaperbox#1% {\orientpagebodybox{#1}\paperorientation\paperreverse} \def\orientprintbox#1% {\orientpagebodybox{#1}\printorientation\printreverse} \def\mirrorpagebodybox#1#2% {\ifcase#2\or \setbox#1\vbox {\domirrorbox\vbox{\box#1}}% \fi} \def\mirrorpaperbox#1% {\mirrorpagebodybox{#1}\papermirror} \def\mirrorprintbox#1% {\mirrorpagebodybox{#1}\printmirror} \def\scalepagebox#1% {\ifdim\@@lyscale\points=\onepoint \else \setbox#1\vbox {\scale[\c!sx=\@@lyscale,\c!sy=\@@lyscale]{\box#1}}% \paperwidth\@@lyscale\paperwidth \paperheight \@@lyscale\paperheight \fi} \def\negateprintbox#1% {\ifnegateprintbox \negatecolorbox{#1}% \fi} \def\pagecutmarksymbol {\the\realpageno} \def\pagecutmarklength {.5cm} \let\pagecutmarktoptext \empty \let\pagecutmarkbottomtext \empty \def\extrapagecutmarkbottomtext {\rlap{\jobname}\hfill\currentdate\space-\space\currenttime\hfill\llap{\realfolio}} \def\makepagecutbox % #1 {\let\cutmarksymbol \pagecutmarksymbol \let\cutmarklength \pagecutmarklength \let\cutmarktoptext \pagecutmarktoptext \let\cutmarkbottomtext\pagecutmarkbottomtext \makecutbox} \setvalue{\??ly:n:\c!marking:\v!on}% {\makepagecutbox} \setvalue{\??ly:n:\c!marking:\v!page}% only at outer when nx/ny > 0 {\makepagecutbox} \setvalue{\??ly:n:\c!marking:\v!empty}% {\let\pagecutmarksymbol\empty \let\pagecutmarktoptext\empty \let\pagecutmarkbottomtext\empty \makepagecutbox} \setvalue{\??ly:n:\c!marking:\v!text}% {\let\pagecutmarksymbol\empty \let\pagecutmarkbottomtext\extrapagecutmarkbottomtext \makepagecutbox} \setvalue{\??ly:c:\c!marking:\v!color}% {\doaddpagecolormarks\colormarkbox} \setvalue{\??ly:c:\c!marking:\v!screen}% {\doaddpagecolormarks\rastermarkbox} \def\addpagecutmarks % #1 {\executeifdefined{\??ly:n:\c!marking:\@@lymarking}\gobbleoneargument} \def\addpagecolormarks % #1 {\executeifdefined{\??ly:c:\c!marking:\@@lymarking}\gobbleoneargument} \def\doaddpagecolormarks#1#2% {\makepagecutbox{#2}% \ifnum\horizontalcutmarks>2 \chardef\colormarkoffset4 \fi \ifnum\verticalcutmarks >2 \chardef\colormarkoffset4 \fi #1{#2}} % NOG EENS NAGAAN WANNEER NU GLOBAL EN WANNEER NIET \ifx\doifelselayoutsomeline\undefined % defined in page-txt \let\doifelselayoutsomeline\secondofthreearguments \fi \def\calculatevsizes % global needed in \recalculatelayoutregel {\redoglobal\textheight\makeupheight \doifelselayoutsomeline \v!header {\redoglobal\advance\textheight-\dimexpr\headerheight+\headerdistance\relax}% \donothing \doifelselayoutsomeline \v!footer {\redoglobal\advance\textheight-\dimexpr\footerheight+\footerdistance\relax}% \donothing \ifzeropt\headerheight \resetsystemmode\v!header \else \setsystemmode\v!header \fi \ifzeropt\footerheight \resetsystemmode\v!footer \else \setsystemmode\v!footer \fi \resetglobal \setvsize} \def\calculatereducedvsizes {\textheight\makeupheight \doifelselayoutsomeline \v!header {\advance\textheight-\dimexpr\headerheight+\headerdistance\relax}% {\headerheight\zeropoint \setlayoutdistances}% \doifelselayoutsomeline \v!footer {\advance\textheight-\dimexpr\footerheight+\footerdistance\relax}% {\footerheight\zeropoint \setlayoutdistances}} \newdimen\innermakeupwidth % special purpose \newdimen\innermakeupmargin % special purpose \chardef\innermakeupcompensation\plusone \def\compensatedinnermakeupmargin {\dimexpr\ifnum\innermakeupcompensation=\plusone+\innermakeupmargin\else\zeropoint\fi\relax} \def\freezetextwidth % \makeupwidth may be set to \textwidth {\textwidth\makeupwidth % which is a tricky but valid value \doifsomething{\layoutparameter\c!textwidth} {\textwidth\layoutparameter\c!textwidth}% % local \global\innermakeupwidth\textwidth \doifelsenothing{\layoutparameter\c!textmargin} {\global\innermakeupmargin\zeropoint} {\global\innermakeupmargin\layoutparameter\c!textmargin}% \global\advance\innermakeupwidth-\dimexpr\innermakeupmargin+\innermakeupmargin\relax \advance\textwidth-\dimexpr\innermakeupmargin+\innermakeupmargin\relax} % local \def\calculatehsizes {\freezetextwidth \sethsize} % De onderstaande macro voert commando's uit, afhankelijk van % het karakter van het paginanummer. % % \doifoddpageelse{then-commando}{else-commando} %D When we start at an even page, we need to swap the layout %D differently. We cannot adapt the real page number, since %D it is used in cross referencing. The next switch is set %D when we start at an even page. \newif\ifshiftedrealpageno % \def\doifoddpageelse#1#2% % {\ifshiftedrealpageno % \ifodd\realpageno#2\else#1\fi % \else % \ifodd\realpageno#1\else#2\fi % \fi} \def\doifoddpageelse {\ifshiftedrealpageno \ifodd\realpageno \@EAEAEA\secondoftwoarguments \else \@EAEAEA\firstoftwoarguments \fi \else \ifodd\realpageno \@EAEAEA\firstoftwoarguments \else \@EAEAEA\secondoftwoarguments \fi \fi} \let\doifonevenpaginaelse\doifoddpageelse % what are those \relax'es doing there? % \def\doifbothsidesoverruled#1#2#3% % {\ifdoublesided % \doifoddpageelse{#2}{#3}\relax % \else % #1\relax % \fi} % \def\doifbothsides#1#2#3% % {\ifdoublesided % \ifsinglesided % #1\relax % \else % \doifoddpageelse{#2}{#3}\relax % \fi % \else % #1\relax % \fi} \def\redoifoddpageelse#1{\doifoddpageelse} \def\doifbothsidesoverruled {\ifdoublesided \@EA\redoifoddpageelse \else \@EA\firstofthreearguments \fi} \def\doifbothsides {\ifdoublesided \ifsinglesided \@EAEAEA\firstofthreearguments \else \@EAEAEA\redoifoddpageelse \fi \else \@EA\firstofthreearguments \fi} \newdimen\texthoffset \def\settexthoffset {\doifbothsides {\texthoffset\backspace} {\texthoffset\backspace} {\texthoffset\dimexpr\paperwidth-\backspace-\makeupwidth\relax}} \def\goleftonpage {\hskip-\dimexpr\leftmargindistance+\leftmarginwidth+\leftedgedistance+\leftedgewidth\relax} \def\doifmarginswapelse#1#2% {\doifbothsides{#1}{#1}{#2}} \def\swapmargins {\doifmarginswapelse\relax\doswapmargins} \def\doswapmargins {\let\swapmargins \relax % to prevent local swapping \let\doswapmargins\relax % to prevent local swapping \the\everyswapmargins} \def\rightorleftpageaction {\ifdoublesided \ifsinglesided \@EAEAEA\firstoftwoarguments \else \@EAEAEA\doifoddpageelse \fi \else \@EA\firstoftwoarguments \fi} \def\outermarginwidth {\rightorleftpageaction\rightmarginwidth \leftmarginwidth } \def\innermarginwidth {\rightorleftpageaction\leftmarginwidth \rightmarginwidth} \def\outermargindistance{\rightorleftpageaction\rightmargindistance\leftmargindistance } \def\innermargindistance{\rightorleftpageaction\leftmargindistance \rightmargindistance} \def\outeredgewidth {\rightorleftpageaction\rightedgewidth \leftedgewidth } \def\inneredgewidth {\rightorleftpageaction\leftedgewidth \rightedgewidth} \def\outeredgedistance {\rightorleftpageaction\rightedgedistance\leftedgedistance } \def\inneredgedistance {\rightorleftpageaction\leftedgedistance \rightedgedistance} \def\outerspacewidth {\rightorleftpageaction\cutspace \backspace } \def\innerspacewidth {\rightorleftpageaction\backspace\cutspace} \def\leftmargintotal {\dimexpr\leftmarginwidth +\leftmargindistance \relax} \def\rightmargintotal {\dimexpr\rightmarginwidth+\rightmargindistance\relax} \def\leftedgetotal {\dimexpr\leftedgewidth +\leftedgedistance \relax} \def\rightedgetotal {\dimexpr\rightedgewidth +\rightedgedistance \relax} \def\leftsidetotal {\dimexpr\leftmarginwidth +\leftedgetotal \relax} \def\rightsidetotal {\dimexpr\rightmarginwidth+\rightedgetotal\relax} \def\leftcombitotal {\dimexpr\leftmargintotal +\leftedgetotal \relax} \def\rightcombitotal {\dimexpr\rightmargintotal+\rightedgetotal\relax} \def\innermargintotal {\dimexpr\innermarginwidth+\innermargindistance\relax} \def\outermargintotal {\dimexpr\outermarginwidth+\outermargindistance\relax} \def\inneredgetotal {\dimexpr\inneredgewidth +\inneredgedistance \relax} \def\outeredgetotal {\dimexpr\outeredgewidth +\outeredgedistance \relax} \def\innercombitotal {\dimexpr\innermargintotal+\inneredgetotal\relax} \def\outercombitotal {\dimexpr\outermargintotal+\outeredgetotal\relax} \def\innersidetotal {\dimexpr\innermarginwidth+\inneredgetotal\relax} \def\outersidetotal {\dimexpr\outermarginwidth+\outeredgetotal\relax} %D \macros %D {startlocallayout} %D %D These macros should be used with care. They permit local %D layouts (as used in fitting pages, see \type {page-app.tex}). %D This is kind of obsolete now that we have \type %D {\definelayout}, so this hack will disappear in future %D versions. \def\startlocallayout {\globalpushmacro\restorepapersize \globalpushmacro\currentlayout} \def\stoplocallayout {\globalpopmacro\currentlayout \globalpopmacro\restorepapersize \restorepapersize \setuplayout} %D \macros %D {showprint, showframe, showlayout, showsetups} %D %D We predefine a couple of tracing macros. %D %D \showsetup{showprint} %D \showsetup{showframe} %D \showsetup{showlayout} %D \showsetup{showsetups} %D %showsetup{showmargins} \fetchruntimecommand \showprint {page-run} \fetchruntimecommand \showframe {page-run} \fetchruntimecommand \showlayout {page-run} \fetchruntimecommand \showsetups {page-run} \fetchruntimecommand \showmargins {page-run} %D The default dimensions are quite old and will not change. %D The funny fractions were introduced when we went from fixed %D dimensions to relative ones. Since \CONTEXT\ is a dutch %D package, the dimensions are based on the metric system. The %D asymmetrical layout is kind of handy for short %D quick||and||dirty stapled documents. %D %D Although valid, it is not a real good idea to use %D dimensions based on the \type {em} unit. First of all, %D since there are no fonts loaded yet, this dimension makes %D no sense, and second, you would loose track of values, %D since they could change while going to a new page, %D depending on the current font setting. \setuplayout [ \c!topspace=.08417508418\paperheight, % 2.5cm \c!top=\!!zeropoint, \c!topdistance=\!!zeropoint, \c!header=.06734006734\paperheight, % 2.0cm \c!headerdistance=\!!zeropoint, \c!height=.84175084175\paperheight, % 25.0cm \c!footerdistance=\layoutparameter\c!headerdistance, \c!footer=.06734006734\paperheight, % 2.0cm \c!bottomdistance=\layoutparameter\c!topdistance, \c!bottom=\!!zeropoint, \c!backspace=.11904761905\paperwidth, % 2.5cm \c!edge=\!!zeropoint, \c!edgedistance=\layoutparameter\c!margindistance, \c!margin=.12649983170\paperwidth, % snijwit-2*afstand \c!margindistance=.02008341748\paperwidth, % 12.0pt \c!leftedge=\layoutparameter\c!edge, \c!leftedgedistance=\layoutparameter\c!edgedistance, \c!leftmargin=\layoutparameter\c!margin, \c!leftmargindistance=\layoutparameter\c!margindistance, \c!width=.71428571429\paperwidth, % 15.0cm \c!rightmargindistance=\layoutparameter\c!margindistance, \c!rightmargin=\layoutparameter\c!margin, \c!rightedgedistance=\layoutparameter\c!edgedistance, \c!rightedge=\layoutparameter\c!edge, \c!veroffset=\!!zeropoint, \c!bottomspace=\!!zeropoint, \c!horoffset=\!!zeropoint, \c!cutspace=\!!zeropoint, \c!textwidth=, % dangerous option -> centered / local \c!textmargin=, % dangerous option -> both sides \c!textdistance=\!!zeropoint, % shift down on grid \c!style=, \c!color=, \c!marking=\v!off, \c!location=, % \v!singlesided, but empty is signal \c!scale=1, \c!nx=1, \c!ny=1, \c!dx=\!!zeropoint, \c!dy=\!!zeropoint, \c!grid=\v!no, \c!preset=, \c!setups=\systemsetupsprefix\s!default, \c!clipoffset=\!!zeropoint, \c!lines=0, \c!paper=, % for foxet \c!page=, % for foxet \c!columns=1, \c!columndistance=\!!zeropoint] %D First we define a whole range of (DIN) papersizes, %D of which the A-series makes most sense. We enable checking. %D We also set some of the parameters that will be used when %D positioning the typeset paper onto the print paper. \setuppaper % (size) % only used in XY imposition [\c!width=\zeropoint, \c!height=\zeropoint, \c!topspace=\zeropoint, \c!backspace=\zeropoint, \c!dx=\zeropoint, \c!dy=\zeropoint, \c!nx=1, \c!ny=1, \c!method=\v!normal] \setuppapersize [\c!option=\v!max, \c!top=, \c!bottom=\vss, \c!left=, \c!right=\hss] \definepapersize [A0] [\c!width=841mm,\c!height=1189mm] \definepapersize [A1] [\c!width=594mm,\c!height=841mm] \definepapersize [A2] [\c!width=420mm,\c!height=594mm] \definepapersize [A3] [\c!width=297mm,\c!height=420mm] \definepapersize [A4] [\c!width=210mm,\c!height=297mm] \definepapersize [A5] [\c!width=148mm,\c!height=210mm] \definepapersize [A6] [\c!width=105mm,\c!height=148mm] \definepapersize [A7] [\c!width=74mm,\c!height=105mm] \definepapersize [A8] [\c!width=52mm,\c!height=74mm] \definepapersize [A9] [\c!width=37mm,\c!height=52mm] \definepapersize [A10] [\c!width=26mm,\c!height=37mm] \definepapersize [B0] [\c!width=1000mm,\c!height=1414mm] \definepapersize [B1] [\c!width=707mm,\c!height=1000mm] \definepapersize [B2] [\c!width=500mm,\c!height=707mm] \definepapersize [B3] [\c!width=353mm,\c!height=500mm] % [\c!width=354mm,\c!height=500mm] \definepapersize [B4] [\c!width=250mm,\c!height=353mm] % [\c!width=250mm,\c!height=354mm] \definepapersize [B5] [\c!width=176mm,\c!height=250mm] % [\c!width=177mm,\c!height=250mm] \definepapersize [B6] [\c!width=125mm,\c!height=176mm] % [\c!width=125mm,\c!height=177mm] \definepapersize [B7] [\c!width=88mm,\c!height=125mm] \definepapersize [B8] [\c!width=62mm,\c!height=88mm] % [\c!width=63mm,\c!height=88mm] \definepapersize [B9] [\c!width=44mm,\c!height=62mm] % [\c!width=44mm,\c!height=63mm] \definepapersize [B10] [\c!width=31mm,\c!height=44mm] \definepapersize [C0] [\c!width=917mm,\c!height=1297mm] \definepapersize [C1] [\c!width=648mm,\c!height=917mm] % [\c!width=649mm,\c!height=917mm] \definepapersize [C2] [\c!width=458mm,\c!height=648mm] % [\c!width=459mm,\c!height=649mm] \definepapersize [C3] [\c!width=324mm,\c!height=458mm] % [\c!width=324mm,\c!height=459mm] \definepapersize [C4] [\c!width=229mm,\c!height=324mm] \definepapersize [C5] [\c!width=162mm,\c!height=229mm] \definepapersize [C6] [\c!width=114mm,\c!height=162mm] % [\c!width=115mm,\c!height=162mm] \definepapersize [C7] [\c!width=81mm,\c!height=114mm] % [\c!width=81mm,\c!height=115mm] \definepapersize [C8] [\c!width=57mm,\c!height=81mm] \definepapersize [C9] [\c!width=40mm,\c!height=57mm] \definepapersize [C10] [\c!width=28mm,\c!height=40mm] %D Per August 2004 the rounding of some (seldom used) sizes %D were corrected top the latest DIN specifications. Peter %D Rolf came up with these and a few more missing sizes. %D Watch out: spaces and slashes! \definepapersize [4 A0] [\c!width=1682mm,\c!height=2378mm] \definepapersize [2 A0] [\c!width=1189mm,\c!height=1682mm] \definepapersize [C6/C5] [\c!width=114mm,\c!height=229mm] %D Because there are no standardized screen sizes, we define %D a bunch of sizes with $4:3$ ratios. The \type {S6} size is %D nearly as wide as a sheet of \type {A4} paper. \definepapersize [S3] [\c!width=300pt,\c!height=225pt] \definepapersize [S4] [\c!width=400pt,\c!height=300pt] \definepapersize [S5] [\c!width=500pt,\c!height=375pt] \definepapersize [S6] [\c!width=600pt,\c!height=450pt] \definepapersize [S8] [\c!width=800pt,\c!height=600pt] \definepapersize [SW] [\c!width=800pt,\c!height=450pt] \definepapersize [SM] [\c!width=720pt,\c!height=450pt] %D These are handy too: \definepapersize [S33] [\c!width=300pt,\c!height=300pt] \definepapersize [S44] [\c!width=400pt,\c!height=400pt] \definepapersize [S55] [\c!width=500pt,\c!height=500pt] \definepapersize [S66] [\c!width=600pt,\c!height=600pt] %D One may wonder if \TEX\ should be used for typesetting %D \CDROM\ covers, but it does not hurt to have the paper size %D ready. \definepapersize [CD] [\c!width=120mm,\c!height=120mm] %D The next series is for our English speaking friends who %D decided to stick to non metric values. Thanks to Nelson %D Beebe for completing the inch based list. \definepapersize [letter] [\c!width=8.5in,\c!height=11in] \definepapersize [ledger] [\c!width=11in,\c!height=17in] \definepapersize [tabloid] [\c!width=17in,\c!height=11in] \definepapersize [legal] [\c!width=8.5in,\c!height=14in] \definepapersize [folio] [\c!width=8.5in,\c!height=13in] \definepapersize [executive] [\c!width=7.25in,\c!height=10.5in] \definepapersize [A] [\c!width=8.5in,\c!height=11in] % 1 sheet \definepapersize [B] [\c!width=11in,\c!height=17in] % 2 sheets \definepapersize [C] [\c!width=17in,\c!height=22in] % 4 sheets %D The next set is for Tobias Burnus, who gave me the sizes. \definepapersize [envelope 9] [\c!width=8.88in,\c!height=3.88in] \definepapersize [envelope 10] [\c!width=9.5in,\c!height=4.13in] \definepapersize [envelope 11] [\c!width=10.38in,\c!height=4.5in] \definepapersize [envelope 12] [\c!width=11.0in,\c!height=4.75in] \definepapersize [envelope 14] [\c!width=11.5in,\c!height=5.0in] \definepapersize [monarch] [\c!width=7.5in,\c!height=3.88in] \definepapersize [check] [\c!width=8.58in,\c!height=3.88in] \definepapersize [DL] [\c!width=110mm,\c!height=220mm] % [\c!width=220mm,\c!height=110mm] \definepapersize [E4] [\c!width=280mm,\c!height=400mm] %D The next three sets are supplied by Taco: \definepapersize [RA0] [\c!width=860mm,\c!height=1220mm] \definepapersize [RA1] [\c!width=610mm,\c!height=860mm] \definepapersize [RA2] [\c!width=430mm,\c!height=610mm] \definepapersize [RA3] [\c!width=305mm,\c!height=430mm] \definepapersize [RA4] [\c!width=215mm,\c!height=305mm] %D ISO SRA (supplementary raw A) sizes: \definepapersize [SRA0] [\c!width=900mm,\c!height=1280mm] \definepapersize [SRA1] [\c!width=640mm,\c!height=900mm] \definepapersize [SRA2] [\c!width=450mm,\c!height=640mm] \definepapersize [SRA3] [\c!width=320mm,\c!height=450mm] \definepapersize [SRA4] [\c!width=225mm,\c!height=320mm] %D Swedish thesis formats: \definepapersize [G5] [\c!width=169mm,\c!height=239mm] \definepapersize [E5] [\c!width=155mm,\c!height=220mm] %D Industry invention: \definepapersize [A3plus] [\c!width=329mm,\c!height=483mm] %D We can now default to a reasonable size. We match the print %D paper size with the typeset paper size. This setting should %D come after the first layout specification (already done). % not interfaced ! \definepapersize [oversized] [ \c!width=\dimexpr\paperwidth +1.5cm\relax, \c!height=\dimexpr\paperheight+1.5cm\relax] \definepapersize [doublesized] [ \c!width=\dimexpr \paperwidth \relax, \c!height=\dimexpr2\paperheight\relax] \definepapersize [doubleoversized] [ \c!width=\dimexpr \paperheight+1.5cm\relax, \c!height=\dimexpr2\paperwidth +1.5cm\relax] \definepapersize [\v!default] [ \c!width=\paperwidth, \c!height=\paperheight] \definepapersize [samesized] [ \c!width=\paperwidth, \c!height=\paperheight] \setuppapersize [A4][samesized] %D For orthogonality: \definepapersize [undersized] [ \c!width=\dimexpr\paperwidth -1.5cm\relax, \c!height=\dimexpr\paperheight-1.5cm\relax] \definelayout [\v!page] [\c!backspace=\zeropoint, \c!cutspace=\zeropoint, \c!topspace=\zeropoint, \c!bottomspace=\zeropoint, \c!margin=\zeropoint, \c!edge=\zeropoint, \c!header=\zeropoint, \c!footer=\zeropoint, \c!top=\zeropoint, \c!bottom=\zeropoint, \c!leftmargin=\zeropoint, \c!rightmargin=\zeropoint, \c!leftedge=\zeropoint, \c!rightedge=\zeropoint, \c!textdistance=\zeropoint, \c!width=\v!middle, \c!height=\v!middle, \c!lines=0, \c!grid=\v!no] \definelayout [\v!middle] [\c!width=\v!middle, \c!height=\v!middle] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-emp.mkii0000644000175000017500000003224614536300610024730 0ustar hillehille%D \module %D [ file=supp-emp, %D version=2000.08.09, %D title=\CONTEXT\ Support Macros, %D subtitle=\EMTEX\ specials to \PDF\ conversion, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %M \input supp-emp %D When \THANH, the author of \PDFTEX, and I were exchanging %D some emails on \PDFTEX\ functionality, positional %D information popped up as potential extension. Actually, it %D did not take that much time to cook up the basic %D functionality and the author had implemented it before I %D could even start to think about real advanced applications. %D %D I'm sure that \TEX\ programmers can spend many days on how %D and what kind of information is needed if you want to have %D access to positions, but since high level macros will %D probably be used anyway, even things like multiple reference %D points have proved to be rather unimportant at the system %D level. %D %D Therefore, \PDFTEX\ provides just these three primitives: %D %D \starttabulate[|l|l|] %D \NC \type {\pdfsavepos} \NC marks the current position \NC \NR %D \NC \type {\pdflastxpos} \NC the last marked horizontal position \NC \NR %D \NC \type {\pdflastypos} \NC the last marked vertical position \NC \NR %D \stoptabulate %D %D Based on these three primitives, very advanced systems can %D be build, and for some time now, \CONTEXT\ has such a %D system in its core. However, not everyone uses \CONTEXT, so %D we will demonstrate position tracking in generic applications. %D %D Because \PDFTEX\ produces its output directly, many of those %D nice tricks provided by back||ends by means of \type %D {\special} fail when producing \PDF\ code directly. Take for %D instance \EMTEX\ specials. When someone sent me a mail %D asking if \PDFTEX\ did support those specials, the original %D answer was \quotation {no}, but in the last few years I have learned %D that you must never underestimate \TEX's capabilities. %D %D I must admit that I never use those specials myself, but %D from the way they were used in the macros I was sent, I %D learned that they depend on the back||end's capability to %D access the current position. For those who know \TEX\ this %D may be bad news, since pure \TEX\ does not provide any %D positional information. So in order to use those specials, %D you must be sure that they are supported by every driver you %D use. However, the good news is that \PDFTEX\ does support %D position tracking, so here is our generic example. %D %D The two \EMTEX\ specials we need to implement are packaged %D into the macros \type {\EMmoveto} and \type {\EMlineto}, %D like: %D %D \starttyping %D \def\EMmoveto{\special{em:moveto}} %D \def\EMlineto{\special{em:lineto}} %D \stoptyping %D %D They are used in macro packages to draw lines, and the %D results are often boxes with content like the following: %D %D \startbuffer %D \vbox to 2cm %D {\offinterlineskip \EMmoveto %D \hskip 7cm \EMlineto %D \vskip 2cm \EMlineto %D \vskip-2cm \EMlineto} %D \stopbuffer %D %D \typebuffer %D %D This box will contain a triangle, and when typeset, it should %D look like: %D %D \startlinecorrection[blank] %D \getbuffer %D \stoplinecorrection \def\EMlinewd{.4} \ifx\dosetpositionpt\undefined % non context part %D These two macros can be implemented as follows. When moving %D to a position, we only have to register the new coordinates. %D Once they are known, we use them to draw a line and %D afterwards we save these end coordinates as starting point %D for the next line segment. So, at each point specified by %D \type {\EMlineto} we need to know the coordinates. \def\EMmoveto {\EMgetposition\EMlastmovex\EMlastmovey} %D The primitives \type {\pdflastxpos} and \type %D {\pdflastypos} return a number, representing the $x$ and %D $y$ coordinate in scaled points, \TEX's smallest unit of %D length. We need to convert this number into base points as %D used by \POSTSCRIPT\ and \PDF. When done, we insert some %D literal \PDF\ code into the text using \type {\pdfliteral}. %D Here, the \type {m} means \quote {moveto}, the \type {l} %D means \quote {lineto} and the \type {S} operator \quote %D {strokes} (draws) the line. The macro \type {\EMlinewd} %D holds the linewidth in basepoints. \def\EMlineto {\bgroup \EMgetposition\EMlastlinex\EMlastliney \count0=\EMlastmovex \advance\count0 -\EMlastlinex \count2=\EMlastmovey \advance\count2 -\EMlastliney \divide\count0 65536 \divide\count2 65536 \PDFcode{\EMlinewd\space w 0 0 m \the\count0 \space\the\count2 \space l S}% \global\let\EMlastmovex\EMlastlinex \global\let\EMlastmovey\EMlastliney \egroup} %D We need a fresh start, so we first set the current position %D to zero. \def\resetEMspecials {\gdef\EMlastmovex{0}\gdef\EMlastmovey{0}} %D Next comes the macro that keeps track of the position. The %D current position is marked with \type {\pdfsavepos} and its %D coordinates are written to a file whenever the page is %D shipped out, since \type {\write} postpones its action %D until that moment. The file has entries like: %D %D \starttyping %D \EMsetpos 1 4661756 46651918 %D \EMsetpos 2 5000359 46990521 %D \EMsetpos 3 4661756 46313315 %D \EMsetpos 4 5338962 46990521 %D \EMsetpos 5 4661756 45974712 %D \stoptyping %D %D These lines are written with the command: %D %D \starttyping %D \write\EMfile %D {\EMsetpos\number\EMcounter %D \space\number\pdflastxpos\space\number\pdflastypos}% %D \stoptyping %D %D In reality the argument to \type {\write} looks slightly %D more complicated, because we have to make sure that the %D number of the current position is frozen and \type %D {\EMsetpos} is not expanded. We do so by explicitly %D expanding the number beforehand and preventing expansion of %D \type {\EMsetpos}. \def\EMgetposition#1#2% {\bgroup \pdfsavepos \global\advance\EMcounter 1 \expandafter\write\expandafter\EMfile\expandafter {\expandafter\noexpand\expandafter\EMsetpos\number\EMcounter \space\number\pdflastxpos\space\number\pdflastypos}% \EMsetcounters \xdef#1{\the\count0}% \xdef#2{\the\count2}% \egroup} %D The counter mentioned a few lines ago needs to be %D declared before it can be used. \newcount\EMcounter %D We also need a dedicated file slot. \newwrite\EMfile %D Before we open the file for writing, we read in the data %D written in the previous pass, but only if the file is %D present. \def\EMfilename{\jobname.emp} \def\startEMspecials% {\resetEMspecials \openin\scratchread=\EMfilename \relax \ifeof\scratchread\else \input \EMfilename \relax \fi \closein\scratchread \immediate\openout\EMfile=\EMfilename\relax} \def\stopEMspecials {\closeout\EMfile} %D Just to be sure, we test if \type {\scratchread} is defined, %D and if not, we allocate a slot. \ifx\undefined\scratchread \newread\scratchread \fi %D This leaves us two commands. The \type {\EMsetpos} command %D that ends up in the file stores each position in a macro. %D When this macro is expanded, it assigns the coordinates to %D two scratch counters. \def\EMsetpos#1 #2 #3 % number x y {\expandafter\xdef\csname EM:#1\endcsname{\count0=#2 \count2=#3}} %D This position is recalled with its companion macro. First we %D set the counters to zero. When the position is unknown, %D nothing happens since the \type {\csname...} will expand to %D \type {\relax}. \def\EMsetcounters {\count0=0 \count2=0 \csname EM:\the\EMcounter\endcsname} %D These macros are rather independent of the macro package you %D use. For instance, in \CONTEXT\ the following works well: %D %D \startbuffer[pos-en] %D \setuppositioning[unit=ex] %D \startpositioning %D \dostepwiserecurse{-10}{10}{1} %D {\position(0,\recurselevel){\EMmoveto} %D \position(\recurselevel,0){\EMlineto}} %D \stoppositioning %D \stopbuffer %D %D \startbuffer[pos-nl] %D \setuppositioning[uniteenheid=ex] %D \startpositioning %D \dostepwiserecurse{-10}{10}{1} %D {\position(0,\recurselevel){\EMmoveto} %D \position(\recurselevel,0){\EMlineto}} %D \stoppositioning %D \stopbuffer %D %D \typebuffer[pos-en] %D %D Here, we hook the \EMTEX\ macros into an existing text %D positioning mechanism, which positions the commands %D using \TEX's skips and kerns. %D %D \startlinecorrection[blank] %D \getbuffer[pos-nl] %D \stoplinecorrection %D %D Of course one should start and end the file with: %D %D \starttyping %D \startEMspecials %D \stopEMspecials %D \stoptyping %D %D and, if needed, reset the begin position at each page using: %D %D \starttyping %D \resetEMspecials %D \stoptyping \fi % end of non context part \ifx\dosetpositionpt\undefined \else % context part % \edef\EMlinewd{\withoutpt\the\linewidth} %D A few pages ago, we mentioned that \CONTEXT\ has built||in %D position tracking. This means that when we want to implement %D this kind of trickery in this macro package, we can fall %D back on existing functionality. In the following alternative %D we will also use a few skips. This keeps the source readable %D and \CONTEXT\ has plenty of unused registers to accomodate %D this strategy. \newcount\EMcounter \def\EMvariable{EM:\the\EMcounter} \newskip \EMlastmovex \newskip \EMlastmovey \newskip \EMlastlinex \newskip \EMlastliney \def\resetEMspecials {\global\EMlastmovex=0pt \global\EMlastmovey=\EMlastmovex} \resetEMspecials \appendtoks\resetEMspecials\to\everyshipout %D Watch how we reset the specials after a page is flushed. We %D don't have to bother about files here, because saving and %D recalling is already implemented. Although not needed, we %D define the start||stop macros, so that \CONTEXT\ users who %D key them in are not confronted with error messages. \let\startEMspecials\relax \let\stopEMspecials\relax \def\EMgetposition#1#2% {\global\advance\EMcounter 1 \setposition\EMvariable \global#1=\POSx\EMvariable \global#2=\POSy\EMvariable} \def\EMmoveto {\EMgetposition\EMlastmovex\EMlastmovey} \def\EMlineto {\EMgetposition\EMlastlinex\EMlastliney \global\advance\EMlastmovex -\EMlastlinex \global\advance\EMlastmovey -\EMlastliney \ScaledPointsToBigPoints{\number\EMlastmovex}\EMx \ScaledPointsToBigPoints{\number\EMlastmovey}\EMy \PDFcode{\EMlinewd\space w 0 0 m \EMx \space \EMy \space l S}% \global\EMlastmovex\EMlastlinex \global\EMlastmovey\EMlastliney} %D The command \type {\setposition} registers a position by %D name (here \type {\EMvariable}), while \type {\POSx} and %D \type {\POSy} give you access to the coordinates. %D %D These three commands are containes in a suite of low level %D commands that can be used to register and get access to %D positional information. The current mechanism is not yet %D complete, but already provides enough hooks for advanced %D embedded graphics. Its functionality is a natural extension %D to the \METAPOST\ support already present in \CONTEXT. %D Therefore, more advanced examples can be found in the %D \METAFUN\ manual, since they fall beyond the scope of this %D module. \fi % end of context part %D As a bonus, I will now provide a few macros that will make %D this mechanism transparant to \DVI\ as well as \PDF\ %D output. We will use \type {\pdfiteral} as trigger. \ifx\PDFcode\undefined \ifx\pdfliteral\undefined \def\PDFcode#1{\special{PDF: #1}} \else \let\PDFcode\pdfliteral \fi \fi \ifx\PDFcode\undefined \def\EMpdfordvi#1#2{#2} \else\ifx\pdfoutput\undefined \def\EMpdfordvi#1#2{#2} \else \def\EMpdfordvi#1#2{\ifcase\pdfoutput#2\else#1\fi} \fi\fi %D We save some of the macros we defined previously: \let\pdfEMmoveto\EMmoveto \let\pdfstartEMspecials\startEMspecials \let\pdfEMlineto\EMlineto \let\pdfstopEMspecials \stopEMspecials %D We now redefine them to support \DVI\ and \PDF. \def\EMmoveto{\EMpdfordvi\pdfEMmoveto{\special{em:moveto}}} \def\EMlineto{\EMpdfordvi\pdfEMlineto{\special{em:lineto}}} \def\startEMspecials{\EMpdfordvi\pdfstartEMspecials\relax} \def\stopEMspecials {\EMpdfordvi\pdfstopEMspecials \relax} %D If there is any real demand for this in \CONTEXT, I will %D hook these macros in the special drivers, so that their %D support becomes more natural. %D You may want to change the default linewidth. The following %D macro does the job. Beware of the fact that \type %D {\special}'s may interfere with the typesetting process. %D %D \starttyping %D \setEMlinewidth{1pt} %D \stoptyping \def\setEMlinewidth#1% this could be done more efficient for {\bgroup % context alone, but it's a hack anyway \dimen0=#1\relax \count0=\dimen0 \divide\count0 65536 \pdfordvi\relax{\special{em:linewidth \the\dimen0}}% \xdef\EMlinewd{\the\count0}% \egroup} %D You may wonder to what extent positional tracking is %D \PDFTEX\ specific. In \CONTEXT, we also support position %D tracking in \DVI\ by using specials and analyzing the \DVI\ %D file afterwards using \DVIPOS. Since many of the advanced %D \TEX\ features depend on some kind of back||end, we don't %D consider it to be a disadvantage. Of course, the \PDFTEX\ %D way is not only cleaner, but also faster. It was more out %D of curiosity than out of need that we provided the \DVI\ %D methods as well. Also, it is always good to have more roads %D to reach the same goal. \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-ini.mkii0000644000175000017500000004170614536300610024672 0ustar hillehille%D \module %D [ file=spec-ini, %D version=1996.01.25, %D title=\CONTEXT\ Special Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % todo: make this one more plain so that i can use it in plain jobs % todo: no args, named vars instead % maybe also drop multiple drivers and make simplify the default, then simplier defs \newif\ifsimplifyspecials \simplifyspecialstrue % see later %D We will forbid loading specials after the first page is %D shipped out. \ifx\realpageno\undefined \countdef\realpageno=0 \realpageno=1 \fi %D Specials are \TEX's channel to the outside world. They make %D \TEX\ even more platform independant and permit easy %D adaption to new developments. One major drawback of specials %D is that they have to be supported by printer drivers. We've %D tried to overcome this problem by implementing specials as %D a sort of drivers themselves. \writestatus{loading}{ConTeXt Special Macros / Initialization} \unprotect %D \TEX\ produces files in the \DVI\ format. This format is %D well defined and stable. In this format one||byte commands %D are used which can optionally be followed by length %D specifiers and arguments. The \DVI||format incorporates a %D channel to the outside world. This channel is activated by %D the \TEX\ primitive \type {\special}. The sequence %D %D \starttyping %D \special{Hello here I am.} %D \stoptyping %D %D results in \DVI||codes: %D %D \starttyping %D xxx1 16 Hello here I am. %D \stoptyping %D %D The \type {xxx1} is represented in byte code 239 and the %D number of following bytes in a~1, 2, 3 or~4 byte number. So %D here we get $1+1+16$ bytes of code. %D %D Translating these codes is upto the \DVI\ driver. It's %D common use to ignore specials that cannot be interpreted, so %D the example string should have no consequences for the %D output. %D \macros %D {jobsuffix} %D %D By default, \TEX\ produces \DVI\ files which can be %D converted to other filetypes. Sometimes it is handy to %D know what the target file will be. In other driver %D modules we wil set \type {\jobsuffix} to \type {pdf}. \def\jobsuffix{dvi} \def\setjobsuffix#1% {\resetsystemmode\jobsuffix \edef\jobsuffix{#1}% \setsystemmode\jobsuffix} %D \macros %D {everyresetspecials} %D %D Now what will this one do? We'll see in a few lines. \newtoks \everyresetspecials \appendtoksonce \ifx\setjobsuffix\undefined\else\setjobsuffix{dvi}\fi \to \everyresetspecials %D A rather fundamental difference between special and direct %D settings is that the latter don't interfere with typesetting %D but must be set before the first shipout, while the specials %D must be packaged in the shipped out box in such a way that %D they don't interfere. \newif\ifspecialbasedsettings \specialbasedsettingstrue \appendtoksonce \specialbasedsettingstrue \to \everyresetspecials %D Because there is no standardization in the use of specials, %D more than one driver or program can be supported. The %D specials are grouped in libraries. Some of these are %D general, such as the \type{postscript} library, some are %D tuned to a special kind of program, like the \type{pdf} %D ones, and some support a specific driver, as we can see in %D the \type{yandy} library. A library is build with the %D commands: %D %D \starttyping %D \startspecials[name][inheritance] %D %D \definespecial\none{...} %D \definespecial\onlyone#1{...} %D \definespecial\alot#1#2#3#4{...} %D %D \stopspecials %D \stoptyping %D %D Because drivers can have overlap in low level macros, a %D mechanism of inheritance is implemented. The libraries %D defined as second argument are loaded first. %D %D Every special has to be predefined first. We do this with %D the command: %D %D \starttyping %D \installspecial [\none] [and] [0] %D \installspecial [\onlyone] [and] [1] %D \installspecial [\alot] [or] [4] %D \stoptyping %D %D This means as much as: there is a special names %D \type{\none} which has no arguments and has more than one %D appearance. The special \type{\alot} on the other hand has %D four arguments and is only defined once. Every instance in %D the libraries of a special of category \type{and} is %D executed when called upon, but only one special of %D category \type{or} can be active. Most of the %D \type{postscript}||specials are of category \type{or}, %D because they tend to interfere with driver specific ones. %D The interactive specials of \type{dviwindo} and \type{pdf} %D are an example of specials that can be called both. %D %D A library is defined in a file with the name %D \type{spec-...}. We load a library with the command: %D %D \starttyping %D \usespecials [list] %D \stoptyping %D %D where the list can contain one or more file tags, the %D \type{...} in the filename. The keyword \type{reset} %D resets all loaded specials. This is equivalent to %D \type{\resetspecials}. %D Although a mechanism of nesting can be implemented, we %D prefer to use a inheritance mechanism as mentioned. Calls %D upon \type{\usespecials} within a \type{\startspecials} %D would lead to confusion and errors. \newif\ifinheritspecials %D We define some local constants and variables. They look a %D bit horrible but we don't want conflicts. \def\@@specfil@@{@@spcfil@@} \def\@@speclst@@{@@spclst@@} \def\@@speccat@@{@@spccat@@} \def\@@specarg@@{@@spcarg@@} \def\@@specexc@@{@@spcexc@@} % not faster % % \def\@@specfil@@{@sp@f@} % \def\@@speclst@@{@sp@l@} % \def\@@speccat@@{@sp@c@} % \def\@@specarg@@{@sp@a@} % \def\@@specexc@@{@sp@e@} \let\currentspecial \empty \let\currentspecialfile\empty %D \macros %D {startspecials} %D %D Every library has a unique name, which is given as the first %D argument to \type{\startspecials}. When another library is %D defined with the same name, previous specials can be %D overruled. The name may differ from the file||tag. %D %D The optional second argument can consist of a list of %D libraries that are to be loaded first. \def\dostartspecials[#1][#2]% {\doifsomething{#2} {\processcommalist[#2]\dousespecials}% \doifelsenothing{#1} {\let\currentspecial\s!unknown} {\def\currentspecial{#1}}% \unprotect} \def\startspecials {\localpushmacro\currentspecial \dodoubleempty\dostartspecials} \def\stopspecials {\localpopmacro\currentspecial \protect} %D \macros %D {installspecial, %D resetspecials} %D %D We have to install specials before we can define and use %D them. The command itself is defined as a call to another %D command that executes one or more user||defined specials, %D depending of it's category: \type{or} versus \type{and}. %D %D The command \type{\installspecial} takes three %D (non||optional) arguments: the name of the command, the %D category it belongs to and the number of arguments it %D takes. %D %D With \type{\resetspecials} we can unload the predefined %D specials. Special reset actions |<|look in \type{spec-mis} %D for an example|>| can be assigned to the token register %D \type{\everyresetspecials}. \let\@@allspecials=\empty \def\doinstallspecial[#1][#2][#3]% {\letvalue{\@@speclst@@\string#1}\empty \setvalue{\@@speccat@@\string#1}{#2}% \setvalue{\@@specarg@@\string#1}{#3}% \addtocommalist{\string#1}\@@allspecials \def#1{\executespecial#1}} \def\installspecial {\dotripleargument\doinstallspecial} \def\resetspecials {\the\everyresetspecials \def\docommand##1% {\letvalue{\@@speclst@@##1}\empty}% \processcommacommand[\@@allspecials]\docommand} %D \macros %D {definespecial} %D %D The command \type{\definespecial} take the place of %D \type{\def} in the definition of a special. Just to be %D sure, we first check if the command is permitted, i.e. %D installed. If not, we give a warning and gobble the %D illegal command in an quite elegant way. %D %D If the command can be combined (\type{and}) with others, %D we append it to a list, otherwise (\type{or}) it becomes %D the only item in the list. \def\definespecial#1% {\ifx#1\undefined \showmessage\m!specials4{\string#1}% \def\next {\def\@@illegalspecial@@}% \else \def\next {\doifelsevalue{\@@speccat@@\string#1}{or} {\edef\@@newspeclst@@{\currentspecial}} {\edef\@@newspeclst@@{\getvalue{\@@speclst@@\string#1}}% \addtocommalist\currentspecial\@@newspeclst@@}% \setevalue{\@@speclst@@\string#1}{\@@newspeclst@@}% \setvalue{\currentspecial\string#1}}% \fi \next} %D \macros %D {usespecials} %D %D We use \type{\usespecials} to load a specific library. %D This command is only permitted outside the definition part. \def\dousespecials#1% {\doifelse{#1}\v!reset {\resetspecials} {\doifdefinedelse{\@@specfil@@#1} {\edef\currentspecialfile{\getvalue{\@@specfil@@#1}}} {\edef\currentspecialfile{#1}}% \makeshortfilename[\truefilename{\f!specialprefix\currentspecialfile}]% \startreadingfile \readsysfile{\shortfilename.mkii}{\showmessage\m!specials5\currentspecialfile}\donothing \stopreadingfile}} \def\usespecials[#1]% {\ifnum\realpageno<2 \doifelsenothing\currentspecial {\processcommalist[#1]\dousespecials} {\showmessage\m!specials6\empty}% \fi} %D \macros %D {executespecials} %D %D The command \type{\executespecials} is used to execute the %D defined specials. Once a special is installed, the special %D itself calls for this command, so it's not needed outside %D this module. One can use it if wanted. %D %D A former implementation grouped the execution. Recent %D additions however |<|like the specials that implement object %D handling|>| asked for non||grouped execution. %D \starttyping %D \def\executespecials#1#2% %D {\def\doonespecial##1% %D {\getvalue{##1\string#1}#2\relax}% %D \processcommacommand %D [\getvalue{\@@speclst@@\string#1}]\doonespecial} %D %D \def\executespecial#1% %D {\expandafter\ifcase\getvalue{\@@specarg@@\string#1}\relax %D \def\next% %D {\executespecials#1{}}% %D \or %D \def\next##1% %D {\executespecials#1{{##1}}}% %D \or %D \def\next##1##2% %D {\executespecials#1{{##1}{##2}}}% %D \or %D \def\next##1##2##3% %D {\executespecials#1{{##1}{##2}{##3}}}% %D \or %D \def\next##1##2##3##4% %D {\executespecials#1{{##1}{##2}{##3}{##4}}}% %D \or %D \def\next##1##2##3##4##5% %D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}}}% %D \or %D \def\next##1##2##3##4##5##6% %D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}{##6}}}% %D \or %D \def\next##1##2##3##4##5##6##7% %D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}{##6}{##7}}}% %D \or %D \def\next##1##2##3##4##5##6##7##8% %D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}}}% %D \or %D \def\next##1##2##3##4##5##6##7##8##9% %D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}{##9}}}% %D \else %D \def\next% %D {\message{illegal special: \string#1}}% %D \fi %D \next} %D \stoptyping %D %D Because specials happen quite often, we will use a bit more %D brute force. Keep in mind that we have to collect the %D arguments because we want to support more drivers at once. %D %D I tested this on the next test. Where the previous alternative %D took about 32 seconds, the new alternative takes 25 seconds. %D %D \starttyping %D \testfeature{10000}{\setbox0=\hbox{test \color[red]{oeps} test}} %D \stoptyping \def\@@exsp{exsp} \setvalue{\@@exsp0}{{}} \setvalue{\@@exsp1}#1{{{#1}}} \setvalue{\@@exsp2}#1#2{{{#1}{#2}}} \setvalue{\@@exsp3}#1#2#3{{{#1}{#2}{#3}}} \setvalue{\@@exsp4}#1#2#3#4{{{#1}{#2}{#3}{#4}}} \setvalue{\@@exsp5}#1#2#3#4#5{{{#1}{#2}{#3}{#4}{#5}}} \setvalue{\@@exsp6}#1#2#3#4#5#6{{{#1}{#2}{#3}{#4}{#5}{#6}}} \setvalue{\@@exsp7}#1#2#3#4#5#6#7{{{#1}{#2}{#3}{#4}{#5}{#6}{#7}}} \setvalue{\@@exsp8}#1#2#3#4#5#6#7#8{{{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}} \setvalue{\@@exsp9}#1#2#3#4#5#6#7#8#9{{{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}} %D \starttyping %D \def\executespecials#1% %D {\def\doonespecial##1% %D {\csname##1\xspecialcommand\endcsname#1\relax}% %D \@EA\rawprocesscommalist\@EA %D [\csname\@@speclst@@\xspecialcommand\endcsname]\doonespecial} %D %D \def\executespecial#1% %D {\def\xspecialcommand{\string#1}% %D \@EA\@EA\@EA\executespecials\csname\@@exsp\csname\@@specarg@@\xspecialcommand\endcsname\endcsname} %D \stoptyping %D Some more speed can be gained by using a dedicated string %D processing routine. Now we can bring down the execution %D time to 21 seconds, one third less than the original run time. \def\executespecials#1% {\@EA\let\@EA\speciallist\csname\@@speclst@@\xspecialcommand\endcsname \ifx\speciallist\empty\else \def\doonespecial##1% {\csname##1\xspecialcommand\endcsname#1\relax}% \@EA\dodoonespecial\speciallist,\end,% \fi} \def\executespecial#1% {\def\xspecialcommand{\string#1}% \@EA\@EA\@EA\executespecials\csname\@@exsp\csname\@@specarg@@\xspecialcommand\endcsname\endcsname} \def\dodoonespecial#1,% {\ifx\end#1\else \doonespecial{#1}\expandafter\dodoonespecial \fi} %D This kind of saving only shows up when making interative %D documents with lots of color switches. In such documents %D tens of thousands of special calls are rather normal. %D On a 650 Mhz Pentium, the previous test takes 15 seconds %D less (on about 65 seconds). When processing 2000 page %D interactive documents this saving can be neglected. %D In the previous macros, the \type{{{...}}} are needed %D because we pass all those arguments to the specials support %D macro. \let\openspecialfile \relax \let\closespecialfile \relax %D \macros %D {doifspecialavailableelse} %D %D For testing purposes (this was first needed when object %D support was implemented) we have: %D %D \starttyping %D \doifspecialavailableelse\specialcommand{true}{false} %D \stoptyping %D %D e.g: %D %D \starttyping %D \doifspecialavailableelse\doinsertobject{...}{...} %D \stoptyping \def\doifspecialavailableelse#1#2#3% {\doifelsevaluenothing{\@@speclst@@\string#1}{#3}{#2}} %D So far for the macros that deal with installing specials. %D In the file \type {spec-def} you will find the predefined %D specials. %D Now that we have seen the flexible way (permitting %D special chains) we will implement a faster and flat %D alternative. But only if flag si set. \ifsimplifyspecials \def\doinstallspecial[#1][#2][#3]% {\appendtoks\forgetspecial#1{#3}\to\everyresetspecials \@EA\chardef\csname\@@speclst@@\string#1\endcsname\zerocount \forgetspecial#1{#3}} \def\forgetspecial#1#2% {\ifcase#2\relax \let#1\relax \or \let#1\gobbleoneargument \or \let#1\gobbletwoarguments \or \let#1\gobblethreearguments \or \let#1\gobblefourarguments \or \let#1\gobblefivearguments \or \let#1\gobblesixarguments \or \let#1\gobblesevenarguments \or \let#1\gobbleeightarguments \or \let#1\gobbleninearguments \or \let#1\gobbletenarguments \fi} \def\resetspecials {\the\everyresetspecials} \def\definespecial#1% {\@EA\chardef\csname\@@speclst@@\string#1\endcsname=1 \def#1} \def\doifspecialavailableelse#1% {\ifcase\csname\@@speclst@@\string#1\endcsname \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} \fi %D For quite some time the \CONTEXT\ way of specifying the %D output format has been: %D %D \starttyping %D \usespecials[ps,yy,win,pdf] %D \stoptyping %D %D Because at \PRAGMA\ we use \DVIPSONE, this was a suitable %D setting, but with \CONTEXT\ going public, the next sequence %D is more suitable for \DVIPS\ users: %D %D \starttyping %D \usespecials[reset,ps,tr,pdf] %D \stoptyping %D %D On the other hand, for \PDFTEX\ we needed: %D %D \starttyping %D \usespecials[tpd] %D \stoptyping %D %D To simplify things, I decided to provide a higher level %D command. %D %D \starttyping %D \defineoutput[name][specials] %D \setupoutput[name,...] %D \stoptyping %D %D In a \type {spec-def} you can find some examples. \def\defineoutput {\dodoubleargument\dodefineoutput} \def\dodefineoutput[#1][#2]% {\setvalue{\??ui#1}{#2}} \def\dosetupoutput#1% {\doifdefinedelse{\??ui#1} {\processcommacommand[\getvalue{\??ui#1}]\dousespecials} {\doifdefinedelse{\@@specfil@@#1} {\dousespecials{#1}} {\showmessage\m!specials7{#1}}}} % Beware, from now on changing the (default) driver files demands % remaking the format (no big deal, since only i adapt the driver % and need delayed loading). \let\currentoutput\empty \def\setupoutput[#1]% {\doifnot{#1}{\currentoutput} {\ifnum\realpageno<\plustwo % new \resetspecials\processcommacommand[#1]\dosetupoutput \edef\currentoutput{#1}% \fi}} \def\preloadspecials % it's nicer to report this {\doifsomething\currentoutput {\showmessage\m!specials1\currentoutput}} \appendtoks \savecurrentvalue\usedoutputdriver\currentoutput \to \everyfirstshipout \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/symb-ini.mkii0000644000175000017500000001615414536300610024711 0ustar hillehille%D \module %D [ file=symb-ini, %D version=1998.07.20, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Basic Symbols Commands, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D The macros described here used to be part of the \type %D {core-con} module. I decided to move them here when %D symbolsets saw the light. Let their light shine. \writestatus{loading}{ConTeXt Symbol Libraries / Initialization} \unprotect %D \macros %D {definesymbol, symbol} %D %D Converting numbers or levels into a character, romannumeral, %D symbol or something else, is supported by many \CONTEXT\ %D commands. Therefore we need a mechanism for linking such %D numbers to their counterparts. %D %D First we take care of symbols. These are for instance used %D in enumerations and itemizations. We have: %D %D \showsetup{definesymbol} %D \showsetup{symbol} %D %D Symbols are simply linked to a tag. Such tags can be numbers %D or strings. %D %D \starttyping %D \definesymbol [1] [$\bullet$] %D \definesymbol [level 5] [$\star$] %D \stoptyping % ss:tag -> symbol % ss:set:tag -> symbol out of set % sstag -> list of symbols in set \def\definesymbol {\dotripleempty\dodefinesymbol} % \def\dodefinesymbol[#1][#2][#3]% class name meaning % {\ifthirdargument % \setvalue{\??ss:#1:#2}{#3}% % \doifsomething{#1}{\addvalue{\??ss*#1}{#2}}% % \else % \setvalue{\??ss:\currentsymboldef:#1}{#2}% % \fi} \def\dodefinesymbol[#1][#2][#3]% class name meaning {\ifthirdargument \setvalue{\??ss:#1:#2}{#3}% \doifsomething{#1}{\addvalue{\??ss*#1}{#2}}% \else \setvalue{\??ss:\currentsymboldef:#1}{#2}% \addvalue{\??ss*\currentsymboldef}{#1}% \fi} \def\doifinsymbolsetelse#1#2{\doifdefinedelse{\??ss:#1:#2}} \def\doifinsymbolset #1#2{\doifdefined {\??ss:#1:#2}} \def\doifsymbolsetelse #1{\doifdefinedelse{\??ss*#1}} \def\symbolset#1{\executeifdefined{\??ss*#1}\empty} % no [#1], to be used in commalists etc %D Since symbols are used frequently in interactive %D documents, we speed up this one. Well, that was history, %D since now we simplified things a bit, because the low %D level macros have been sped up now and then. \unexpanded\def\symbol % This one always gobbles spaces, {\dodoubleempty\dosymbol} % so never change it again! \newif\ifnosymbol \newtoks\everysymbol \def\dodosymbol#1#2% \relax's prevent lookahead problems {\nosymbolfalse{\the\everysymbol\csname\??ss:#1:#2\endcsname\relax}\relax} \def\directsymbol#1#2% no \relax, there can be an argument, see lists {\executeifdefined{\??ss:#1:#2}\firstofoneargument} % We support both: % % Test test \symbol[whatever]\ test \symbol[whatever]. % Test test \symbol{whatever} test \symbol{whatever}. \def\dosymbol % so we also handle \symbol{name} {\iffirstargument % which is nicer with following spaces \expandafter\donormalsymbol \else \expandafter\dospecialsymbol \fi} \def\dospecialsymbol[#1][#2]#3% {\firstargumenttrue \secondargumentfalse \donormalsymbol[#3][]} \def\donormalsymbol[#1][#2]% {\nosymboltrue \ifsecondargument \edef\currentsymbol{#2}% \doifinsymbolset{#1}{#2}{\dodosymbol{#1}{#2}}% \else \edef\currentsymbol{#1}% \fi \ifnosymbol \the\symbolsetups \ifnosymbol \redosymbol\currentsymbol \fi \fi} \def\fetchsymbol#1% {\ifnosymbol \doifinsymbolset{#1}\currentsymbol{\dodosymbol{#1}\currentsymbol}% \fi} \def\redosymbol#1% % {\doifinsymbolsetelse\empty{#1}{\dodosymbol\empty{#1}}{#1}} % more efficient: {\doifinsymbolsetelse\empty{#1}{\dodosymbol\empty}\firstofoneargument{#1}} % % % % % % this should go in symb-fig, to be loaded after core-fig %D \macros %D {definefiguresymbol} %D %D To simplify defining figure symbols, we offer: %D %D \showsetup{definefiguresymbol} %D %D By default, such symbols scale along the current bodyfont %D size or running font size (which is better). \def\defaultsymbolfactor{10} \def\defaultsymbolheight{1.25ex} \def\figuresymbol {\dodoubleempty\dofiguresymbol} \ifx\externalfigure \undefined \def\externalfigure[#1][#2]{#1} \fi \ifx\resetexternalfigures\undefined \let\resetexternalfigures\relax \fi \def\dofiguresymbol[#1][% #2]% {\externalfigure[#1][\c!reset=\v!yes,\c!symbol=\v!yes,\c!height=\defaultsymbolheight,}% #2]} \appendtoks \resetexternalfigures \to \everysymbol \def\definefiguresymbol {\dotripleempty\dodefinefiguresymbol} \def\dodefinefiguresymbol[#1][#2][#3]% {\ifsecondargument \definesymbol[#1][{\dofiguresymbol[#2][#3]}]% \fi} % but for the moment we keep it here % % % % % % %\def\objectsymbol[#1]% % {\dopresetfieldsymbol{#1}\dogetfieldsymbol{#1}} %D \macros %D {doifsymboldefinedelse} %D %D A handy private one: % a bit messy \def\xfetchsymbol#1% {\ifnosymbol \doifinsymbolset{#1}\currentsymbol\nosymbolfalse \fi} \def\xredosymbol#1% {\doifinsymbolset\empty\currentsymbol\nosymbolfalse} \def\doifsymboldefinedelse#1% {\bgroup \edef\currentsymbol{#1}% \let\fetchsymbol\xfetchsymbol \nosymboltrue \the\symbolsetups \ifnosymbol \xredosymbol\currentsymbol \ifnosymbol \egroup\@EAEAEA\secondoftwoarguments \else \egroup\@EAEAEA\firstoftwoarguments \fi \else \egroup\@EA\firstoftwoarguments \fi} %D \macros %D {setupsymbolset,startsymbolset} %D %D From these macro definitions one can deduce that symbols can %D be grouped in symbol sets: %D %D \starttyping %D \startsymbolset [navigation 1] %D \definefiguresymbol [Next] [mp-symb.1] %D \definefiguresymbol [Prev] [mp-symb.2] %D \stopsymbolset %D \stoptyping %D %D Such a symbol can be typeset with: %D %D \starttyping %D \setupsymbolset[navigation 1]\symbol[Next] %D \stoptyping %D %D or simply: %D %D \starttyping %D \symbol[navigation 1][Next] %D \stoptyping %D %D Formally: %D %D \showsetup{setupsymbolset} %D \showsetup{startsymbolset} \let\currentsymboldef\empty \def\startsymbolset[#1]% {\def\currentsymboldef{#1}} \def\stopsymbolset {\let\currentsymboldef\empty} \newtoks\symbolsetups \def\setupsymbolset[#1]% {\prependtoksonce\fetchsymbol{#1}\to\symbolsetups} \def\resetsymbolset {\symbolsetups\emptytoks} \def\forcesymbolset[#1]% {\symbolsetups{\fetchsymbol{#1}}} %D \macros %D {showsymbolset} %D %D \showsetup{showsymbolset} \fetchruntimecommand \showsymbolset {\f!symbolprefix\s!run} %D \macros %D {usesymbols} %D %D \showsetup{usesymbols} \def\dousesymbols#1% {\startreadingfile \readsysfile{\truefilename{\f!symbolprefix#1}.\mksuffix} {\showmessage\m!symbols1{#1}} {\readsysfile{\truefilename{\f!symbolprefix#1}} {\showmessage\m!symbols1{#1}} \donothing}% \stopreadingfile} \def\usesymbols[#1]% {\processcommalist[#1]\dousesymbols} %D As longs as symbols are linked to levels or numbers, we can %D also use the conversion mechanism, but in for instance the %D itemization macros, we prefer symbols because they can more %D easier be (partially) redefined. \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-exp.mkii0000644000175000017500000000463014536300610024713 0ustar hillehille%D \module %D [ file=xtag-exp, %D version=2001.08.20, %D title=\CONTEXT\ XML Macros, %D subtitle=Expansion, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / Expansion} \ifnum\texengine=\luatexengine \endinput \fi \unprotect %D Files \newcounter\XMLfilenesting \let\restoreXMLelements\relax \def\startXMLreading {\increment \XMLfilenesting \relax \ifcase\XMLfilenesting\or \ifprocessingXML \let\restoreXMLelements\relax \else \let\restoreXMLelements\disableXMLelements \enableXMLelements \fi \fi} \def\stopXMLreading {\ifcase\XMLfilenesting\or \restoreXMLelements \let\restoreXMLelements\relax \fi \decrement \XMLfilenesting \relax} \ifnum\texengine=\luatexengine \def\enableXMLfiledata {\prependtoks \enableXMLelements \to \mainoutput % brrr, will change \appendtoks \forcefileexpansiontrue \to \everyenableXML \let\enableXMLfiledata\relax} \else \def\enableXMLfiledata {\prependtoks \enableXMLelements \to \mainoutput % brrr, will change \appendtoks \startXMLreading \to \everybeforeutilityread \appendtoks \stopXMLreading \to \everyafterutilityread \appendtoks \forcefileexpansiontrue \to \everyenableXML \let\enableXMLfiledata\relax} \fi \setupXMLprocessing[\c!state=\v!start] \appendtoks \ifproductionrun \enableXMLfiledata \fi \to \aftersetupXMLprocessing %D Here we overload the mark handler. \ifnum\texengine=\luatexengine \else \def\XMLexpanded#1% {\bgroup \honorunexpanded \dontexpandencoding \xdef\@@globalexpanded{\noexpand#1}% why \noexpand? \egroup \@@globalexpanded} \let\normalsetnormalmark\setnormalmark \long\def\setnormalmark#1% overloaded {\ifprocessingXML \expandafter\setXMLexpandedmark \else \expandafter\normalsetnormalmark \fi#1} \def\setXMLexpandedmark#1#2% using a tok prevents unwanted expansion in mark {\XMLexpanded{\scratchtoks{\enableXMLelements#2}}% \setxvalue{\@@crk\string#1}{\the\scratchtoks}% \normalmarks#1{\the\scratchtoks}} \fi \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-imp.mkii0000644000175000017500000016253014536300610024661 0ustar hillehille%D \module %D [ file=page-imp, % was: core-pag, %D version=1998.01.15, %D title=\CONTEXT\ Page Macros, %D subtitle=Pagebody Building (Imposition), %D author=Hans Hagen & Willi Egger, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % much of this can more to run time loading ! \writestatus{loading}{ConTeXt Page Macros / Pagebody Building} \unprotect % sizing bug: % % \setuppapersize[A4][A4,landscape] \setuparranging[2UP] \showframe % % \starttext \dorecurse{10}{\input tufte \par} \stoptext % to be moved code: \newif\ifclipprintbox \clipprintboxtrue %newif\ifclippagebox \clippageboxtrue \def\clippedprintbox#1#2% can be made more efficient, see other clipper {\ifclipprintbox \!!widthc \pagebackgroundoffset \!!widtha \dimexpr\paperwidth + \!!widthc\relax \!!heighta\dimexpr\paperheight+2\!!widthc\relax \setbox#2\vbox to \paperheight{\vfill\box#2}% \ht#2\paperheight \wd#2\paperwidth \setbox#2\vbox {\framed [\c!offset=\!!widthc,\c!strut=\v!no,\c!frame=\v!off] {\box#2}}% \setbox#2\hbox to \paperwidth {\ifcase#1\relax \!!widthb\zeropoint \hskip-\!!widthc \else \!!widthb\!!widthc \fi \lower\!!widthc\hbox {\clip [\c!width=\!!widtha,\c!height=\!!heighta, \c!hoffset=\!!widthb,\c!voffset=\zeropoint] {\box#2}}}% \wd#2\paperwidth \ht#2\paperheight \fi \box#2\relax} \let\clippagebox \gobbleoneargument \let\clipprintbox\gobbleoneargument % \setuppagenumbering[alternative=doublesided] % \setupcolors[state=start] % \setuppapersize[A4][A4,oversized] % \setuplayout[location=middle,clipoffset=5mm] % \setupbackgrounds % [page] % [frame=on,rulethickness=1mm, % backgroundoffset=10mm,background=color,backgroundcolor=red] % \starttext \dorecurse{10}{\input tufte \par} \stoptext \def\clippagebox#1% {\ifdim\@@lyclipoffset>\zeropoint \!!widtha \wd#1% \!!heighta\ht#1% \!!deptha \dp#1% \setbox#1\hbox {\!!widthb \@@lyclipoffset \advance\!!heighta\dimexpr\!!deptha+2\!!widthb\relax \advance\!!widtha \!!widthb \doifbothsides {\advance\!!widtha\!!widthb \!!widthc-\!!widthb \hskip\!!widthc}% {\!!widthc\zeropoint} {\!!widthc-\!!widthb \hskip\!!widthc}% \lower\!!widthb\hbox {\clip [\c!hoffset=\!!widthc, \c!voffset=-\!!widthb, \c!width=\!!widtha, \c!height=\!!heighta]% {\box#1}}}% \wd#1\!!widtha \ht#1\!!heighta \dp#1\!!deptha \fi} %D \macros %D {starttextdata} %D %D This is a user macro (appending to every last shipout is not %D really user friendly. \newtoks \collectedtextdata \long\def\starttextdata#1\stoptextdata {\doglobal\appendtoks#1\to\collectedtextdata} \def\flushtextdata {\vsmashed{\the\collectedtextdata}% all dimensions zero \global\collectedtextdata\emptytoks \globallet\flushtextdata\donothing} \prependtoks \flushtextdata \to \everylastshipout % moved code: % \def\myshipout#1% % {\beforeshipout % voor de pagebody dus ! % \dontshowcomposition % \ifarrangingpages\@EA\actualarrange\else\@EA\actualshipout\fi % {\thisisrealpage\realfolio#1}% % \gotonextrealpage % \aftershipout} \def\installpagehandler#1#2% % a handler takes one argument: something to be boxed {\setvalue{\??pp:\c!method:#1}{#2}} % and shipped out (don't depend on the exact package) \installpagehandler\v!normal {\ifarrangingpages\expandafter\actualarrange\else\expandafter\actualshipout\fi} \def\myshipout#1% {\beforeshipout % voor de pagebody dus ! \dontshowcomposition \executeifdefined{\??pp:\c!method:\@@ppmethod}\gobbleoneargument{\thisisrealpage\realfolio#1}% \gotonextrealpage \aftershipout} \newbox\postponedcontent \def\flushatshipout {\dowithnextbox {\global\setbox\postponedcontent\hbox to \zeropoint {%\hskip-\maxdimen % niet hier, gaat mis in acrobat (clipt) \unhbox\postponedcontent\unhbox\nextbox}% \ht\postponedcontent\zeropoint \dp\postponedcontent\zeropoint \wd\postponedcontent\zeropoint}% \hbox} % \starttypen % \def\pagestoshipout{1,3,5} % \stoptypen \newcount\shippedoutpages \let\pagestoshipout\empty % {1,3,6} \chardef\whichpagetoshipout=0 % 0=all 1=odd 2=even \ifx\finalizeshipoutbox\undefined \let\finalizeshipoutbox\firstofoneargument \fi \def\actualshipout#1% {\global\advance\shippedoutpages\plusone % this is not resource safe! \ifx\pagestoshipout\empty \ifcase\whichpagetoshipout\relax \donetrue \or % 1 \ifodd\shippedoutpages\relax\donetrue\else\donefalse\fi \or % 2 \ifodd\shippedoutpages\relax\donefalse\else\donetrue\fi \else \donetrue \fi \else % testen, aangepast / expanded nodig ? \expanded{\doifinsetelse{\the\shippedoutpages}{\pagestoshipout}}% \donetrue\donefalse \fi \ifdone \shipout\vbox {\forgetall \offinterlineskip \dontcomplain \scratchdimen-1in \vskip\scratchdimen \hskip\scratchdimen \hbox % \setbox0=\box.. is nicer {\setbox0\hbox{\finalizeshipoutbox{#1}}% just in case there are objects there, hook for testing \setbox\scratchbox\hbox {% before the main one ! \ifcase\realfolio \or \the\everyfirstshipout \global\everyfirstshipout\emptytoks \fi % the main one \the\everyshipout\relax % always last (and after the main one) \ifnum\realpageno=\lastpage\relax \the\everylastshipout \global\everylastshipout\emptytoks \fi}% \smashbox\scratchbox \box\scratchbox \box\postponedcontent % evt ver naar links ! \box0}}% \else \message {[\ifarrangingpages arranged \fi page \ifarrangingpages\the\arrangeno\else\the\realpageno\fi\normalspace not flushed]}% \setbox0\hbox{#1}% \deadcycles\zerocount \fi} \def\actualarrange#1% {\setbox0\hbox{\thisisrealpage{\realfolio}#1}% \pusharrangedpage0% \deadcycles\zerocount} %D We need a couple of boxes for duplex printing \unknown \newbox\arrangedpageA \newbox\arrangedpageB %D \unknown\ and some for simulating big sheets. \newbox\arrangedpageC \newbox\arrangedpageD \newbox\arrangedpageE \newbox\arrangedpageF \newbox\arrangedpageG \newbox\arrangedpageH \newif\ifswaparranged \newif\ifnegatearranged \newif\ifmirrorarranged \newif\ifdoublearranged \newif\ifarrangingdisabled \def\arrangedrotationO{0} \def\arrangedrotationE{0} \newcounter\arrangedpageN \newcounter\arrangedpageM \chardef\arrangedpageT=1 \chardef\arrangedpageX=1 \chardef\arrangedpageY=1 \def\calculatepaperoffsets#1% {\scratchdimen\getvalue{\??pp#1\c!offset}% \divide\scratchdimen \arrangedpageX \global\advance\paperwidth -2\scratchdimen \scratchdimen\getvalue{\??pp#1\c!offset}% \divide\scratchdimen \arrangedpageY \global\advance\paperheight-2\scratchdimen} \newconditional\arrangedbackgroundokay % more ifs -> conditionals \def\setuparranging[#1]% {\ifarrangingdisabled \else \doifelse{#1}\v!disable {\global\arrangingdisabledtrue} {\global\arrangingdisabledfalse}% \global\arrangingpagestrue \global\negatearrangedfalse \global\mirrorarrangedfalse \global\doublearrangedfalse \gdef\arrangedrotationO{0}% \gdef\arrangedrotationE{180}% \processallactionsinset [#1] [ \v!mirrored=>\global\mirrorarrangedtrue, \v!doublesided=>\global\doublearrangedtrue, \v!negative=>\global\negatearrangedtrue, \v!rotated=>\gdef\arrangedrotationO {90}\gdef\arrangedrotationE{270}, 90=>\gdef\arrangedrotationO {90}\gdef\arrangedrotationE{270}, 180=>\gdef\arrangedrotationO{180}\gdef\arrangedrotationE{0}, 270=>\gdef\arrangedrotationO{270}\gdef\arrangedrotationE{90}, \s!reset=>\global\arrangingpagesfalse, \v!background=>\global\settrue\arrangedbackgroundokay, \s!unknown=>\checkinstalledpagearrangement\commalistelement]% % no \s!default=> we can have aaa,,bbb \ifx\handlearrangedpage\undefined \global\arrangingpagesfalse \fi \doifcommonelse{#1}{90,270,\v!rotated} {\swapmacros\horizontalcutmarks\verticalcutmarks}{}% ugly solution \setuppapersize \ifarrangingpages \abortutilitygeneration \fi \fi} \def\installpagearrangement #1 % {\setgvalue{\??pp\??pp#1}} \def\checkinstalledpagearrangement#1% can be empty: aaa,,bbb {\executeifdefined{\??pp\??pp#1}\donothing} \def\dosetuparrangement#1#2#3#4#5#6#7#8% {\global\chardef\arrangedpageX #1% \global\chardef\arrangedpageY #2% \global\chardef\arrangedpageT #3% \global\chardef\horizontalcutmarks#4% \global\chardef\verticalcutmarks #5% \global\let \pusharrangedpage #6% \global\let \poparrangedpages #7% \global\let \handlearrangedpage#8} \installpagearrangement {\v!normal} {\global\arrangingpagesfalse} \installpagearrangement 2*16 {\dosetuparrangement{4}{4}{16}{5}{5}% \pusharrangedpageTHIRTYTWO\poparrangedpagesAB\relax} \installpagearrangement 2*8 {\dosetuparrangement{4}{2}{8}{5}{3}% \pusharrangedpageSIXTEEN\poparrangedpagesAB\relax} \installpagearrangement 2*4 {\dosetuparrangement{2}{2}{4}{3}{3}% \pusharrangedpageEIGHT\poparrangedpagesAB\relax} \installpagearrangement 2*2 {\dosetuparrangement{2}{1}{2}{3}{2}% \pusharrangedpageFOURA\poparrangedpagesAB\relax} \installpagearrangement 2**2 {\dosetuparrangement{2}{1}{2}{3}{2}% \pusharrangedpageFOURB\poparrangedpagesAB\relax} \installpagearrangement 2SIDE {\dosetuparrangement{2}{1}{2}{3}{2}% \pusharrangedpageSIDETOP\poparrangedpagesTWO\handlearrangedpageSIDE} \installpagearrangement 2TOP {\dosetuparrangement{1}{2}{2}{2}{3}% \pusharrangedpageSIDETOP\poparrangedpagesTWO\handlearrangedpageTOP} \installpagearrangement 2UP {\dosetuparrangement{2}{1}{4}{3}{2}% \pusharrangedpageTWO\poparrangedpagesTWO\handlearrangedpageTWOUP} \installpagearrangement 2DOWN {\dosetuparrangement{1}{2}{4}{2}{3}% \pusharrangedpageTWO\poparrangedpagesTWO\handlearrangedpageTWODOWN} \installpagearrangement 2*4*2 % one defined by Willy Egger: {\dosetuparrangement{2}{2}{4}{3}{3}% \pusharrangedpageSIXTEENTWO\poparrangedpagesAtoD\relax} \installpagearrangement 2*2*4 % onother one of Willy Egger {\dosetuparrangement{2}{1}{8}{3}{2}% \pusharrangedpageSIXTEENFOUR\poparrangedpagesAtoH\relax} \installpagearrangement 2TOPSIDE {\dosetuparrangement{1}{2}{4}{2}{3}% \pusharrangedpageTWOTOPSIDE\poparrangedpagesTWOTOPSIDE\handlearrangedpageTOP} % \def\filluparrangedpages % beware: \realpageno is 1 ahead % {\ifarrangingpages % \scratchcounter-\realpageno % \divide\scratchcounter \arrangedpageT % \multiply\scratchcounter \arrangedpageT % \advance\scratchcounter \realpageno % \advance\scratchcounter \minusone % \dorecurse\scratchcounter{\noheaderandfooterlines\ejectdummypage}% % \fi} \def\filluparrangedpages % beware: \realpageno is 1 ahead {\ifarrangingpages \scratchcounter\numexpr\realpageno-\plusone\relax \dosetmodulo\scratchcounter\arrangedpageT\scratchcounter \ifcase\scratchcounter\else \advance\scratchcounter \plusone \dostepwiserecurse\scratchcounter\arrangedpageT\plusone {\noheaderandfooterlines\ejectdummypage}% \fi \fi} \def\handlearrangedpageXandY#1#2#3#4#5% {\global\setbox#5\hbox to \arrangedpageX\paperwidth {\setbox\scratchbox\vbox to \arrangedpageY\paperheight {\forgetall \offinterlineskip \dontcomplain \vskip#4\paperheight \hskip#3\paperwidth \dorotatebox{\ifcase#2 0\else180\fi}\hbox{\box#1}% \vfill}% \wd\scratchbox\zeropoint \box\scratchbox\box#5\hss}} \def\gotonextarrangepage {\global\advance\arrangeno \plusone \def\pagecutmarksymbol{\the\arrangeno}} \def\outputarrangedbox#1% {\bgroup \gotonextarrangepage \ifnum\arrangedrotationO\arrangedrotationE>\zerocount \setbox#1\vbox {\ifdoublearranged \ifodd\arrangeno \dorotatebox\arrangedrotationO\hbox{\box#1}% \else \dorotatebox\arrangedrotationE\hbox{\box#1}% \fi \else \dorotatebox\arrangedrotationO\hbox{\box#1}% \fi}% \fi \ifmirrorarranged \setbox#1\vbox{\domirrorbox\vbox{\box#1}}% \fi \ifnegatearranged \negatecolorbox{#1}% \fi \finishpagebox#1% \ifconditional\arrangedbackgroundokay\addprintbackground#1\fi \actualshipout{\box#1}% \egroup} %D The format file can be 16K smaller when we postpone the %D real arrangments. Some day ... % TOP % 32/16/8/4/SIDE \def\poparrangedpagesAB {\ifnum\arrangedpageN>\zerocount \dontcomplain \paperwidth\arrangedpageX\paperwidth \paperheight\arrangedpageY\paperheight \outputarrangedbox\arrangedpageA \outputarrangedbox\arrangedpageB \doglobal\newcounter\arrangedpageN \fi} \def\pusharrangedpageTHIRTYTWO#1% taco's challenge {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}033\arrangedpageA % 1 \or \handlearrangedpageXandY{#1}003\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}100\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}130\arrangedpageA % 4 \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5 \or \handlearrangedpageXandY{#1}130\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}033\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}003\arrangedpageA % 8 \or \handlearrangedpageXandY{#1}102\arrangedpageA % 9 \or \handlearrangedpageXandY{#1}132\arrangedpageB % 10 \or \handlearrangedpageXandY{#1}031\arrangedpageB % 11 \or \handlearrangedpageXandY{#1}001\arrangedpageA % 12 \or \handlearrangedpageXandY{#1}031\arrangedpageA % 13 \or \handlearrangedpageXandY{#1}001\arrangedpageB % 14 \or \handlearrangedpageXandY{#1}102\arrangedpageB % 15 \or \handlearrangedpageXandY{#1}132\arrangedpageA % 16 \or \handlearrangedpageXandY{#1}122\arrangedpageA % 17 \or \handlearrangedpageXandY{#1}112\arrangedpageB % 18 \or \handlearrangedpageXandY{#1}011\arrangedpageB % 19 \or \handlearrangedpageXandY{#1}021\arrangedpageA % 20 \or \handlearrangedpageXandY{#1}011\arrangedpageA % 21 \or \handlearrangedpageXandY{#1}021\arrangedpageB % 22 \or \handlearrangedpageXandY{#1}122\arrangedpageB % 23 \or \handlearrangedpageXandY{#1}112\arrangedpageA % 24 \or \handlearrangedpageXandY{#1}013\arrangedpageA % 25 \or \handlearrangedpageXandY{#1}023\arrangedpageB % 26 \or \handlearrangedpageXandY{#1}120\arrangedpageB % 27 \or \handlearrangedpageXandY{#1}110\arrangedpageA % 28 \or \handlearrangedpageXandY{#1}120\arrangedpageA % 29 \or \handlearrangedpageXandY{#1}110\arrangedpageB % 30 \or \handlearrangedpageXandY{#1}013\arrangedpageB % 31 \or \handlearrangedpageXandY{#1}023\arrangedpageA % 32 \poparrangedpages \fi} \def\pusharrangedpageSIXTEEN#1% changed to match the official way of doing {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}031\arrangedpageA % 1 \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}031\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}001\arrangedpageA % 4 \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5 \or \handlearrangedpageXandY{#1}130\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}100\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}130\arrangedpageA % 8 \or \handlearrangedpageXandY{#1}120\arrangedpageA % 9 \or \handlearrangedpageXandY{#1}110\arrangedpageB % 10 \or \handlearrangedpageXandY{#1}120\arrangedpageB % 11 \or \handlearrangedpageXandY{#1}110\arrangedpageA % 12 \or \handlearrangedpageXandY{#1}011\arrangedpageA % 13 \or \handlearrangedpageXandY{#1}021\arrangedpageB % 14 \or \handlearrangedpageXandY{#1}011\arrangedpageB % 15 \or \handlearrangedpageXandY{#1}021\arrangedpageA % 16 \poparrangedpages \fi} \def\pusharrangedpageEIGHT#1% changed to match the official way of doing {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}011\arrangedpageA % 1 \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}100\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}110\arrangedpageA % 4 \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5 \or \handlearrangedpageXandY{#1}110\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}011\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}001\arrangedpageA % 8 \poparrangedpages \fi} \def\pusharrangedpageFOURA{\pusharrangedpageFOURdo01} \def\pusharrangedpageFOURB{\pusharrangedpageFOURdo10} \def\pusharrangedpageFOURdo#1#2#3% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#3}010\arrangedpageA % 1 \or \handlearrangedpageXandY{#3}0{#1}0\arrangedpageB % 2/3 not {1} \or \handlearrangedpageXandY{#3}0{#2}0\arrangedpageB % 3/2 not {1} \or \handlearrangedpageXandY{#3}000\arrangedpageA % 4 \poparrangedpages \fi} \def\pusharrangedpageSIDETOP#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1 \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \poparrangedpages \fi} \def\handlearrangedpageSIDE {\wd\arrangedpageA\paperwidth \wd\arrangedpageB\paperwidth \global\setbox\arrangedpageA\hbox {\box\arrangedpageA\box\arrangedpageB}% \ht\arrangedpageA\paperheight} \def\handlearrangedpageTOP {\ht\arrangedpageA\paperheight \ht\arrangedpageB\paperheight \global\setbox\arrangedpageA\vbox {\forgetall\offinterlineskip\vskip\paperheight \box\arrangedpageA\box\arrangedpageB}% \global\setbox\arrangedpageB\box\scratchbox} % ? % 2UP/2DOWN / 1pt prevents overflow \def\splitoffarrangedpagesTWO {\splittopskip\zeropoint \global\setbox\arrangedpageA\vsplit\arrangedpageB to \onepoint \scratchdimen\dimexpr\ht\arrangedpageB-\onepoint\relax \ifdim\scratchdimen>\onepoint \setbox\scratchbox\vsplit\arrangedpageB to \scratchdimen \fi} \def\handlearrangedpageTWOUP {\splitoffarrangedpagesTWO \ifswaparranged \global\setbox\arrangedpageA\hbox {\clippedprintbox0\arrangedpageA \clippedprintbox1\arrangedpageB}% \swaparrangedfalse \else \global\setbox\arrangedpageA\hbox {\clippedprintbox0\arrangedpageB \clippedprintbox1\arrangedpageA}% \swaparrangedtrue \fi \ht\arrangedpageA\paperheight \global\setbox\arrangedpageB\box\scratchbox} \def\handlearrangedpageTWODOWN {\splitoffarrangedpagesTWO \ht\arrangedpageA\paperheight \ht\arrangedpageB\paperheight \ifswaparranged \global\setbox\arrangedpageA\vbox {\forgetall\offinterlineskip\vskip\paperheight \box\arrangedpageA\box\arrangedpageB}% \swaparrangedfalse \else \global\setbox\arrangedpageA\vbox {\forgetall\offinterlineskip\vskip\paperheight \box\arrangedpageB\box\arrangedpageA}% \swaparrangedtrue \fi \global\setbox\arrangedpageB\box\scratchbox} \def\poparrangedpagesTWO {\ifnum\arrangedpageN>\zerocount \dontcomplain \swaparrangedfalse \doloop {\handlearrangedpage \bgroup \paperwidth\arrangedpageX\paperwidth \paperheight\arrangedpageY\paperheight \ht\arrangedpageA\paperheight \wd\arrangedpageA\paperwidth \outputarrangedbox\arrangedpageA \egroup \ifdim\ht\arrangedpageB=\zeropoint \exitloop \fi}% \doglobal\newcounter\arrangedpageN \fi} \def\pusharrangedpageTWO#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \global\setbox\arrangedpageB\vbox {\forgetall \offinterlineskip \unvbox\arrangedpageB \allowbreak \ht#1\onepoint \dp#1\zeropoint \vbox{\box#1}}} \def\poparrangedpagesTWOTOPSIDE {\ifnum\arrangedpageN>\zerocount \bgroup \gdef\arrangedpageN{2}\poparrangedpagesTWO \let\arrangedpageA\arrangedpageC \let\arrangedpageB\arrangedpageD \gdef\arrangedpageN{2}\poparrangedpagesTWO \doglobal\newcounter\arrangedpageN \egroup \fi} \def\pusharrangedpageTWOTOPSIDE#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1 \or \handlearrangedpageXandY{#1}000\arrangedpageC % 2 \or \handlearrangedpageXandY{#1}000\arrangedpageB % 1 \or \handlearrangedpageXandY{#1}000\arrangedpageD % 2 \poparrangedpages \fi} %D Willy Egger's sheet simulations: \def\poparrangedpagesAtoH {\ifnum\arrangedpageN>\zerocount \dontcomplain \paperwidth\arrangedpageX\paperwidth \paperheight\arrangedpageY\paperheight \outputarrangedbox\arrangedpageA \outputarrangedbox\arrangedpageB \outputarrangedbox\arrangedpageC \outputarrangedbox\arrangedpageD \outputarrangedbox\arrangedpageE \outputarrangedbox\arrangedpageF \outputarrangedbox\arrangedpageG \outputarrangedbox\arrangedpageH \doglobal\newcounter\arrangedpageN \fi} % to arrange 16 pages on 2 sheets to form one booklet \def\poparrangedpagesAtoD {\ifnum\arrangedpageN>\zerocount \dontcomplain \paperwidth\arrangedpageX\paperwidth \paperheight\arrangedpageY\paperheight \outputarrangedbox\arrangedpageA \outputarrangedbox\arrangedpageB \outputarrangedbox\arrangedpageC \outputarrangedbox\arrangedpageD \doglobal\newcounter\arrangedpageN \fi} % to arrange 16 pages on 4 sheets to form one booklet \def\pusharrangedpageSIXTEENFOUR#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}010\arrangedpageC % 3 \or \handlearrangedpageXandY{#1}000\arrangedpageD % 4 \or \handlearrangedpageXandY{#1}010\arrangedpageE % 5 \or \handlearrangedpageXandY{#1}000\arrangedpageF % 6 \or \handlearrangedpageXandY{#1}010\arrangedpageG % 7 \or \handlearrangedpageXandY{#1}000\arrangedpageH % 8 \or \handlearrangedpageXandY{#1}010\arrangedpageH % 9 \or \handlearrangedpageXandY{#1}000\arrangedpageG % 10 \or \handlearrangedpageXandY{#1}010\arrangedpageF % 11 \or \handlearrangedpageXandY{#1}000\arrangedpageE % 12 \or \handlearrangedpageXandY{#1}010\arrangedpageD % 13 \or \handlearrangedpageXandY{#1}000\arrangedpageC % 14 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 15 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 16 \poparrangedpages \fi} % to arrange 16 pages on 2 sheets to form one booklet \def\pusharrangedpageSIXTEENTWO#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}011\arrangedpageA % 1 \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}011\arrangedpageC % 3 \or \handlearrangedpageXandY{#1}001\arrangedpageD % 4 \or \handlearrangedpageXandY{#1}100\arrangedpageD % 5 \or \handlearrangedpageXandY{#1}110\arrangedpageC % 6 \or \handlearrangedpageXandY{#1}100\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}110\arrangedpageA % 8 \or \handlearrangedpageXandY{#1}100\arrangedpageA % 9 \or \handlearrangedpageXandY{#1}110\arrangedpageB % 10 \or \handlearrangedpageXandY{#1}100\arrangedpageC % 11 \or \handlearrangedpageXandY{#1}110\arrangedpageD % 12 \or \handlearrangedpageXandY{#1}011\arrangedpageD % 13 \or \handlearrangedpageXandY{#1}001\arrangedpageC % 14 \or \handlearrangedpageXandY{#1}011\arrangedpageB % 15 \or \handlearrangedpageXandY{#1}001\arrangedpageA % 16 \poparrangedpages \fi} % % handy for stickers etc, this way we can treat them as page % % \setuppapersize [XY][A4] % \setuppaper [topspace=5mm,backspace=5mm,dx=1mm,dy=1mm,nx=2,ny=6] % \setuplayout [page] [topspace=5mm,backspace=5mm] % \setuplayout [page] % \setuplayout [location=middle] % \setuparranging [XY] % \showframe % % \starttext \dorecurse{30}{test \recurselevel \page} \stoptext \def\pusharrangedpageXY#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \doglobal\increment\arrangedpageM \global\setbox\arrangedpageB\hbox \ifdim\@@ppwidth>\zeropoint to \@@ppwidth \fi {\ifvoid\arrangedpageB\else \unhbox\arrangedpageB \ifdim\@@ppdx>\zeropoint \else \hss\fi \hskip\@@ppdx \ifdim\@@ppdx>\zeropoint \else \hss\fi \fi \box#1}% \ifnum\arrangedpageM<\arrangedpageX\else \global\setbox\arrangedpageA\vbox \ifdim\@@ppheight>\zeropoint to \@@ppheight \fi {\offinterlineskip \ifvoid\arrangedpageA\else \unvbox\arrangedpageA \ifdim\@@ppdy>\zeropoint \else \vss\fi \vskip\@@ppdy \ifdim\@@ppdy>\zeropoint \else \vss\fi \fi \box\arrangedpageB}% \doglobal\newcounter\arrangedpageM \fi \ifnum\arrangedpageN<\arrangedpageT\else \poparrangedpages \fi} \def\poparrangedpagesXY {\ifnum\arrangedpageN>\zerocount \dontcomplain \paperwidth\arrangedpageX\paperwidth \paperheight \arrangedpageY\paperheight \outputarrangedbox\arrangedpageA \doglobal\newcounter\arrangedpageN \doglobal\newcounter\arrangedpageM \fi} \installpagearrangement XY {\dosetuparrangement\@@ppnx\@@ppny\@@ppxy\!!zerocount\!!zerocount \pusharrangedpageXY\poparrangedpagesXY\relax} %D A crazy definition, don't guess who pushed me for the landscape option. \definepapersize [XY] [\c!height=\dimexpr\dimexpr\@@ppheight-\numexpr\@@ppny-1\relax\dimexpr\@@ppdy\relax\relax/\@@ppny\relax, \c!width =\dimexpr\dimexpr\@@ppwidth -\numexpr\@@ppnx-1\relax\dimexpr\@@ppdx\relax\relax/\@@ppnx\relax] \setuppaper [\c!width =\dimexpr\printpaperwidth -2\dimexpr\@@ppbackspace\relax\relax, \c!height=\dimexpr\printpaperheight-2\dimexpr\@@pptopspace \relax\relax] %D Might be used if a printer is printing from a rol or creating mini-books from A4: %D This section has 16 pages. The folding scheme is first a Z-fold and at the end %D a final fold in the spine. %D Coding: [2*8*Z] \installpagearrangement 2*8*Z {\dosetuparrangement{2}{4}{8}{3}{5}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageSIXTEENZ\poparrangedpagesAB\relax} \def\pusharrangedpageSIXTEENZ#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}101\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}111\arrangedpageA % 4 \or \handlearrangedpageXandY{#1}012\arrangedpageA % 5 \or \handlearrangedpageXandY{#1}002\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}103\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}113\arrangedpageA % 8 \or \handlearrangedpageXandY{#1}103\arrangedpageA % 9 \or \handlearrangedpageXandY{#1}113\arrangedpageB % 10 \or \handlearrangedpageXandY{#1}012\arrangedpageB % 11 \or \handlearrangedpageXandY{#1}002\arrangedpageA % 12 \or \handlearrangedpageXandY{#1}101\arrangedpageA % 13 \or \handlearrangedpageXandY{#1}111\arrangedpageB % 14 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 15 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 16 \poparrangedpages \fi} %D Another Z-folded section with 12 pages %D Coding: [2*6*Z] \installpagearrangement 2*6*Z {\dosetuparrangement{2}{3}{6}{3}{4}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageTWELVEZ\poparrangedpagesAB\relax} \def\pusharrangedpageTWELVEZ#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1: rotation (0=upright),x (0=first column),y (0=first row) \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}101\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}111\arrangedpageA % 4 \or \handlearrangedpageXandY{#1}012\arrangedpageA % 5 \or \handlearrangedpageXandY{#1}002\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}012\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}002\arrangedpageA % 8 \or \handlearrangedpageXandY{#1}101\arrangedpageA % 9 \or \handlearrangedpageXandY{#1}111\arrangedpageB % 10 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 11 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 12 \poparrangedpages \fi} %D For Heinz' special greeting cards folding. This scheme is also used for the PocketDiary (module): %D Coding: [1*8] \installpagearrangement 1*8 {\dosetuparrangement{4}{2}{8}{5}{3} % X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageEIGHTSINGLESIDEDFOLDED\poparrangedpagesTWO\relax} \def\pusharrangedpageEIGHTSINGLESIDEDFOLDED#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}020\arrangedpageA % 2 \or \handlearrangedpageXandY{#1}030\arrangedpageA % 3 \or \handlearrangedpageXandY{#1}131\arrangedpageA % 4 \or \handlearrangedpageXandY{#1}121\arrangedpageA % 5 \or \handlearrangedpageXandY{#1}111\arrangedpageA % 6 \or \handlearrangedpageXandY{#1}101\arrangedpageA % 7 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 8 \poparrangedpages \fi} %D This is not a section. \CONTEXT\ places 4 pages on a sheet of paper, singlesided %D Coding: [1*4] \installpagearrangement 1*4 {\dosetuparrangement{2}{2}{4}{3}{3} % X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageFOURSINGLESIDEDFOLDED\poparrangedpagesTWO\relax} \def\pusharrangedpageFOURSINGLESIDEDFOLDED#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}100\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}001\arrangedpageA % 2 \or \handlearrangedpageXandY{#1}011\arrangedpageA % 3 \or \handlearrangedpageXandY{#1}110\arrangedpageA % 4 \poparrangedpages \fi} %D This imposition scheme was requested by Hraban Ramm, by Willi Egger 21-07-2003 %D Coding: [3SIDE] \installpagearrangement 3SIDE {\dosetuparrangement{3}{1}{3}{4}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageTHREESIDE\poparrangedpagesAB\relax} \def\pusharrangedpageTHREESIDE#1% Willi's approach {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}010\arrangedpageA % 2 \or \handlearrangedpageXandY{#1}020\arrangedpageA % 3 \or \handlearrangedpageXandY{#1}000\arrangedpageB % 4 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 5 \or \handlearrangedpageXandY{#1}020\arrangedpageB % 6 \poparrangedpages \fi} %D FLYER in three parts and 6 pages 22-10-2010 %D Coding: [TRYPTICHON] \installpagearrangement TRYPTICHON {\dosetuparrangement{3}{1}{3}{4}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageFOLDERSIX\poparrangedpagesAB\relax} \def\pusharrangedpageFOLDERSIX#1% Willi's approach {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}020\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}020\arrangedpageB % 4 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 5 \or \handlearrangedpageXandY{#1}010\arrangedpageA % 6 \poparrangedpages \fi} %D FLYER in Z-fold with 8 pages 22-01-2010 %D Coding: [ZFLYER-8] \installpagearrangement ZFLYER-8 {\dosetuparrangement{4}{1}{4}{5}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageZFOLDEREIGHT\poparrangedpagesAB\relax} \def\pusharrangedpageZFOLDEREIGHT#1% Willi's approach {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}030\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}020\arrangedpageB % 4 \or \handlearrangedpageXandY{#1}030\arrangedpageB % 5 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 6 \or \handlearrangedpageXandY{#1}010\arrangedpageA % 7 \or \handlearrangedpageXandY{#1}020\arrangedpageA % 8 \poparrangedpages \fi} %D FLYER in Z-fold with 10 pages 04-08-2010 %D Coding: [ZFLYER-10] \installpagearrangement ZFLYER-10 {\dosetuparrangement{5}{1}{5}{6}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageZFLYERTEN\poparrangedpagesAB\relax} \def\pusharrangedpageZFLYERTEN#1% Willi's approach {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}040\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}020\arrangedpageB % 4 \or \handlearrangedpageXandY{#1}030\arrangedpageB % 5 \or \handlearrangedpageXandY{#1}040\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 7 \or \handlearrangedpageXandY{#1}010\arrangedpageA % 8 \or \handlearrangedpageXandY{#1}020\arrangedpageA % 9 \or \handlearrangedpageXandY{#1}030\arrangedpageA % 10 \poparrangedpages \fi} %D FLYER in Z-fold with 12 pages 04-08-2010 %D Coding: [ZFLYER-12] \installpagearrangement ZFLYER-12 {\dosetuparrangement{6}{1}{6}{7}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageZFLYERTWELVE\poparrangedpagesAB\relax} \def\pusharrangedpageZFLYERTWELVE#1% Willi's approach {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}050\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}020\arrangedpageB % 4 \or \handlearrangedpageXandY{#1}030\arrangedpageB % 5 \or \handlearrangedpageXandY{#1}040\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}050\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 8 \or \handlearrangedpageXandY{#1}010\arrangedpageA % 9 \or \handlearrangedpageXandY{#1}020\arrangedpageA % 10 \or \handlearrangedpageXandY{#1}030\arrangedpageA % 11 \or \handlearrangedpageXandY{#1}040\arrangedpageA % 12 \poparrangedpages \fi} %D FLYER folded as a map with 6 pages per side. %D Coding: [MAPFLYER-12] \installpagearrangement MAPFLYER-12 {\dosetuparrangement{3}{2}{6}{4}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageMFOLDERTWELVE\poparrangedpagesAB\relax} \def\pusharrangedpageMFOLDERTWELVE#1% Willi's approach {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}020\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}001\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 4 \or \handlearrangedpageXandY{#1}011\arrangedpageB % 5 \or \handlearrangedpageXandY{#1}020\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}021\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 8 \or \handlearrangedpageXandY{#1}001\arrangedpageA % 9 \or \handlearrangedpageXandY{#1}010\arrangedpageA % 10 \or \handlearrangedpageXandY{#1}011\arrangedpageA % 11 \or \handlearrangedpageXandY{#1}021\arrangedpageA % 12 \poparrangedpages \fi} %D FLYER folded as double window with 4 pages per side. %D Coding: [DOUBLEWINDOW] \installpagearrangement DOUBLEWINDOW {\dosetuparrangement{4}{1}{4}{5}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageDOUBLEWINDOWEIGHT\poparrangedpagesAB\relax} \def\pusharrangedpageDOUBLEWINDOWEIGHT#1% Willi's approach {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}020\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}030\arrangedpageA % 2 \or \handlearrangedpageXandY{#1}000\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 4 \or \handlearrangedpageXandY{#1}020\arrangedpageB % 5 \or \handlearrangedpageXandY{#1}030\arrangedpageB % 6 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 7 \or \handlearrangedpageXandY{#1}010\arrangedpageA % 8 \poparrangedpages \fi} %D Imposition as requested by Jan Pohanka 26-08-2010, 4 pages, two verso, two recto, %D uneven pages upright and down, even pages top and rotated 180. %D Implementation with 2 pages for conference-name-display %D Coding: [1*2-Conference] \installpagearrangement 1*2-Conference {\dosetuparrangement{1}{2}{4}{3}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageCONFERENCE2\poparrangedpagesAB\relax} \def\pusharrangedpageCONFERENCE2#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}001\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}100\arrangedpageA % 2 \poparrangedpages \fi} %D Implementation with 4 pages for conference-name-display %D Coding: [1*4-Conference] \installpagearrangement 1*4-Conference {\dosetuparrangement{1}{2}{4}{3}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageCONFERENCE4\poparrangedpagesAB\relax} \def\pusharrangedpageCONFERENCE4#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}001\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}100\arrangedpageA % 2 \or \handlearrangedpageXandY{#1}011\arrangedpageB % 3 \or \handlearrangedpageXandY{#1}110\arrangedpageB % 4 \poparrangedpages \fi} % There should be arrangements for section made of heavy and thick paper. i.e. the heavier the paper % the fewer pages per section: % Section with 8 pages put on to sheets of paper. Each sheet carries recto 2 and verso 2 pages. % Coding: [2*2*2] \installpagearrangement 2*2*2 {\dosetuparrangement{2}{1}{2}{3}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageEIGHTTWO\poparrangedpagesAtoD\relax} \def\pusharrangedpageEIGHTWO#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}010\arrangedpageC % 3 \or \handlearrangedpageXandY{#1}000\arrangedpageD % 4 \or \handlearrangedpageXandY{#1}010\arrangedpageD % 5 \or \handlearrangedpageXandY{#1}000\arrangedpageC % 6 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 7 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 8 \poparrangedpages \fi} % Section with 12 pages, built from three sheets of paper. % Each sheet carries 2 pages recto and verso. % Coding: [2*2*3] \def\poparrangedpagesAtoF {\ifnum\arrangedpageN>\zerocount \paperwidth \arrangedpageX\paperwidth \paperheight\arrangedpageY\paperheight \outputarrangedbox\arrangedpageA \outputarrangedbox\arrangedpageB \outputarrangedbox\arrangedpageC \outputarrangedbox\arrangedpageD \outputarrangedbox\arrangedpageE \outputarrangedbox\arrangedpageF \global\arrangedpageN\zerocount \fi} \installpagearrangement 2*2*3 {\dosetuparrangement{2}{1}{2}{3}{2}% X,Y,Total,hcutmarks,vcutmarks \pusharrangedpageTWELVETWO\poparrangedpagesAtoD\relax} \def\pusharrangedpageTWELVETWO#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 rot,hskip,vskip \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2 \or \handlearrangedpageXandY{#1}010\arrangedpageC % 3 \or \handlearrangedpageXandY{#1}000\arrangedpageD % 4 \or \handlearrangedpageXandY{#1}010\arrangedpageE % 5 \or \handlearrangedpageXandY{#1}000\arrangedpageF % 6 \or \handlearrangedpageXandY{#1}010\arrangedpageF % 7 \or \handlearrangedpageXandY{#1}000\arrangedpageE % 8 \or \handlearrangedpageXandY{#1}010\arrangedpageD % 9 \or \handlearrangedpageXandY{#1}000\arrangedpageC % 10 \or \handlearrangedpageXandY{#1}010\arrangedpageB % 11 \or \handlearrangedpageXandY{#1}000\arrangedpageA % 12 \poparrangedpages \fi} % \definepageshift[test][horizontal][10pt,20pt,30pt,40pt,50pt] % \definepageshift[test][vertical] [10pt,20pt,30pt,40pt,50pt] % % \setuppageshift[test] % \setuppageshift[test][test] % \setuppageshift[test][none] % \setuppageshift[none][test] % \setuppageshift[paper][test][test] % arrange only % \setuppageshift[paper][test] % arrange only % \setuppageshift[print][test][test] % % \showframe \dorecurse{100}{\input tufte \par} % #1=name #2=horizontal|vertical #3=shiftlist \def\definepageshift {\dotripleargument\dodefinepageshift} \def\dodefinepageshift[#1][#2][#3]% {\setvalue{\??pt#2:#1}{#3}} \letempty \hpageshifts \newcounter\nofhpageshifts \letempty \vpageshifts \newcounter\nofvpageshifts % \let\shiftprintpagebox\gobbleoneargument % \let\shiftpaperpagebox\gobbleoneargument \def\dogetpageshift#1#2#3% #1=\dimenx #2=\xpageshifts #3=\nofxpageshifts {\ifx#2\empty #1\zeropoint \else \doglobal\increment#3% \getfromcommacommand[#2][#3]% \ifx\commalistelement\empty \globallet#3\!!plusone \getfromcommacommand[#2][#3]% \fi \ifx\commalistelement\empty #1\zeropoint \else #1=\commalistelement \donetrue \fi \fi} \def\shiftpagebox#1% {\donefalse \dogetpageshift{\dimen0}\hpageshifts\nofhpageshifts \dogetpageshift{\dimen2}\vpageshifts\nofvpageshifts \ifdone % see also layout offsets, maybe \movebox \edef\next{\wd#1\the\wd#1\ht#1\the\ht#1\dp#1\the\dp#1}% \setbox#1\vbox % \forgetall already done {\offinterlineskip\vskip\dimen2\hskip\dimen0\box#1}% \next \fi} \def\setuppageshift {\dotripleempty\dosetuppageshift} \def\dosetuppageshift[#1][#2][#3]% page|paper horizontal vertical {\ifthirdargument % paper=arrange \let\hpageshifts\empty \let\vpageshifts\empty \let\shiftprintpagebox\gobbleoneargument \let\shiftpaperpagebox\gobbleoneargument \doifdefined{\??pt\v!horizontal:#2} {\edef\hpageshifts{\getvalue{\??pt\v!horizontal:#2}}}% \doifdefined{\??pt\v!vertical :#3} {\edef\vpageshifts{\getvalue{\??pt\v!vertical :#3}}}% \doif{#1}\v!page{\let\shiftprintpagebox\shiftpagebox}% \doif{#1}\v!paper{\let\shiftpaperpagebox\shiftpagebox}% \else\ifsecondargument \doifinsetelse{#1}{\v!page,\v!paper} {\setuppageshift[#1][#2][#2]} {\setuppageshift[\v!page][#1][#2]}% \else\iffirstargument \setuppageshift[\v!page][#1][#1]% \fi\fi\fi} %D One can (mis)use this mechanism, in close cooperation %D with \PDFTEX\ to arrange pages of already produced files. %D %D \starttyping %D \insertpages[file.pdf][1,3][n=30,width=18cm] %D \stoptyping %D %D The pages are inserted in the text area, and even pages %D are repositioned according to the width. In this example %D empty pages are added after page 1 and 3. %D %D Selecting pages can be accomplished by: %D %D \starttyping %D \filterpages[file.pdf][1,3,5][n=30,width=18cm] %D \stoptyping %D %D One may pass \type {odd} or \type {even} instead of a %D comma separated list. A third alternative is: %D %D \starttyping %D \copypages[file.pdf][n=30,scale=950] %D \stoptyping %D %D This macros inserts the page, according to the settings %D provided. \def\insertpages {\dotripleempty\doinsertpages} \def\doinsertpages[#1][#2][#3]% {\doifassignmentelse{#2} {\dodoinsertpages[#1][][#2]} {\dodoinsertpages[#1][#2][#3]}} \def\dodoinsertpages[#1][#2][#3]% {\bgroup \dontcomplain \getfiguredimensions[#1]% \getparameters[\??ip][\c!n=\noffigurepages,\c!width=\!!zeropoint,#3]% \doifinset0{#2}{\null\page}% \dorecurse\@@ipn {\dofilterpage{#1}\recurselevel \doifinset\recurselevel{#2}{\null\page}}% \egroup} \def\filterpages {\dotripleempty\dofilterpages} \def\dofilterpages[#1][#2][#3]% % \noffigurepages not yet supported {\bgroup \dontcomplain \getfiguredimensions[#1]% \getparameters[\??ip][\c!n=\noffigurepages,\c!width=\!!zeropoint,#3]% \doifelse{#2}\v!even {\dorecurse\@@ipn {\ifodd\recurselevel\relax\else\dofilterpage{#1}\recurselevel\fi}} {\doifelse{#2}\v!odd {\dorecurse\@@ipn {\ifodd\recurselevel\relax\dofilterpage{#1}\recurselevel\fi}} {\def\dodocommand##1% {\ifnum##1>\@@ipn\else\dofilterpage{#1}{##1}\fi}% \def\docommand##1% {\dowithrange{##1}\dodocommand}% \processcommalist[#2]\docommand}}% \egroup} \def\dofilterpage#1#2% {\hbox to \textwidth {\ifdoublesided\ifdim\@@ipwidth>\zeropoint\relax\ifodd\realpageno\else \hfill \def\dowithfigure{\hskip-\@@ipwidth}% \fi\fi\fi \setbox0\hbox {\externalfigure[#1][\c!page=#2,\c!height=\textheight]}% \wd0\zeropoint \box0} \page} \def\copypages {\dodoubleempty\docopypages} \def\docopypages[#1][#2]% {\bgroup \getfiguredimensions[#1]% \getparameters[\??ip] [\c!n=\noffigurepages, \c!marking=\v!off, \c!scale=\!!thousand, \c!offset=\!!zeropoint, #2]% \dorecurse\@@ipn {\vbox to \textheight {\hsize\textwidth \scratchdimen\@@ipoffset \centeredbox {\doifelse\@@ipmarking\v!on\cuthbox\hbox {\ifdim\scratchdimen>\zeropoint\relax \advance\vsize -2\scratchdimen \advance\hsize -2\scratchdimen \externalfigure[#1][\c!page=\recurselevel,#2,\c!scale=,\c!factor=\v!max,\c!offset=\v!overlay]% \else \externalfigure[#1][\c!page=\recurselevel,#2,\c!offset=\v!overlay]% \fi}}} \page} \egroup} %D \macros %D {combinepages} %D %D Yet another way of postprocessing is handles by \type %D {\combinepages}. This macro builds a matrix of pages from a %D file, for example: %D %D \starttyping %D \setuppapersize %D [A4][A4] % or [A4,landscape][A4,landscape] %D %D \setuplayout %D [header=0pt,footer=1cm, %D backspace=1cm,topspace=1cm, %D width=middle,height=middle] %D %D \setupfootertexts %D [presentation---\currentdate\space---\space\pagenumber] %D %D \starttext %D \combinepages[slides][nx=2,ny=3,frame=on] %D \stoptext %D \stoptyping %D %D One can influence the way the pages are combined. (This %D will be explained some time.) \def\combinepages {\dodoubleempty\docombinepages} \def\docombinepages[#1][#2]% a=perpag b=free {\bgroup \dontcomplain \getfiguredimensions[#1]% \getparameters [\??ip] [\c!alternative=\v!a, \c!n=\noffigurepages,\c!nx=2,\c!ny=2,\c!start=1,\c!stop=\!!maxcard, \c!distance=\bodyfontsize, \c!bottom=\vfill,\c!top=\vss, \c!left=\hss,\c!right=\hss, \c!before=\page,\c!after=\page,\c!inbetween=\blank, \c!frame=,\c!background=,\c!backgroundcolor=, #2]% \def\@@ipname{#1}% \@@ipbefore \executeifdefined{\strippedcsname\docombinepages\@@ipalternative}\docombinepagesb \@@ipafter \egroup} \def\docombinepagesa {\globallet\combinedpagescounter\@@ipstart \doloop {\vbox to \textheight {\hsize\textwidth % ? ? \scratchdimen\@@ipdistance \!!widtha \dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax \!!heighta\dimexpr(\vsize-\@@ipny\scratchdimen+\scratchdimen)/\@@ipny\relax \dorecurse\@@ipny {\hbox to \hsize {\dorecurse\@@ipnx {\vbox to \!!heighta {\hsize\!!widtha \vsize\!!heighta \@@iptop \hbox to \hsize {\@@ipleft \ifnum\combinedpagescounter>\@@ipstop\relax \globallet\@@ipn\!!zerocount \else\ifnum\combinedpagescounter>\@@ipn \else \externalfigure[\@@ipname] [\c!object=\v!no, \c!page=\combinedpagescounter, \c!factor=\v!max, \c!background=\@@ipbackground, \c!backgroundcolor=\@@ipbackgroundcolor, \c!frame=\@@ipframe]% \fi\fi \@@ipright} \@@ipbottom}% \doglobal\increment\combinedpagescounter \hfil}% \hfilneg} \vfil}% \vfilneg}% \page \ifnum\combinedpagescounter>\@@ipn \exitloop\fi}} \def\docombinepagesc {\globallet\combinedpagescounter\@@ipstart \doloop {\vbox to \textheight {\hsize\textwidth % ? ? \scratchdimen\@@ipdistance \!!widtha \dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax \!!heighta\dimexpr(\vsize-\@@ipny\scratchdimen+\scratchdimen)/\@@ipny\relax \hbox to \hsize {\dorecurse\@@ipnx {\@@ipleft \vbox to \textheight {\hsize\!!widtha {\dorecurse\@@ipny {\@@iptop \hbox to \hsize {\vbox to \!!heighta {\hsize\!!widtha \vsize\!!heighta \ifnum\combinedpagescounter>\@@ipstop\relax \globallet\@@ipn\!!zerocount \else\ifnum\combinedpagescounter>\@@ipn \else \externalfigure[\@@ipname] [\c!object=\v!no, \c!page=\combinedpagescounter, \c!factor=\v!max, \c!background=\@@ipbackground, \c!backgroundcolor=\@@ipbackgroundcolor, \c!frame=\@@ipframe]% \fi\fi}} \doglobal\increment\combinedpagescounter \@@ipbottom}% \vfil}% \vfilneg} \hfil}% \hfilneg}} \page \ifnum\combinedpagescounter>\@@ipn \exitloop\fi}} \let\docombinepageshorizontal\docombinepagesa \let\docombinepagesvertical \docombinepagesc \def\docombinepagesb {\globallet\combinedpagescounter\@@ipstart \doloop {\startbaselinecorrection \scratchdimen\@@ipdistance \!!widtha\dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax \hbox to \hsize {\dorecurse\@@ipnx {\doglobal\increment\combinedpagescounter \ifnum\combinedpagescounter>\@@ipn \else \expanded{\externalfigure[\@@ipname] [\c!page=\combinedpagescounter, \c!width=\the\!!widtha,% todo \freezedimenmacro \c!background=\@@ipbackground, \c!backgroundcolor=\@@ipbackgroundcolor, \c!frame=\@@ipframe]}% \hfill \fi}\hfillneg}% \stopbaselinecorrection \ifnum\combinedpagescounter<\@@ipn\relax \@@ipinbetween \else \exitloop \fi}} %D \macros %D {setuppagecomment,startpagecomment} %D %D This command is not yet documented. Usage: %D %D \starttyping %D \setuppagecomment[state=start,location=right] %D %D \startpagecomment %D \input knuth %D \stoppagecomment %D \stoptyping \def\setuppagecomment {\dosingleempty\dosetuppagecomment} \def\dosetuppagecomment[#1]% {\getparameters[\??pc][#1]% \doifelse\@@pcstate\v!start {\doifinsetelse\@@pclocation{\v!bottom,\v!top} {\setuppapersize[\c!left=\hskip\@@pcoffset]% \edef\@@pcpaperheight{\the\dimexpr\paperheight+\@@pcoffset+\@@pcoffset+\@@pcdistance+\@@pcheight\relax}% \edef\@@pcpaperwidth {\the\dimexpr\paperwidth+\@@pcoffset+\@@pcoffset\relax}% \defineoverlay[\v!pagecomment][\placepagecommentTB]} {\setuppapersize[\c!top=\vskip\@@pcoffset]% \edef\@@pcpaperheight{\the\dimexpr\paperheight+\@@pcoffset+\@@pcoffset\relax}% \edef\@@pcpaperwidth {\the\dimexpr\paperwidth+\@@pcoffset+\@@pcoffset+\@@pcdistance+\@@pcwidth\relax}% \defineoverlay[\v!pagecomment][\placepagecommentLR]}% \processaction [\@@pclocation] [ \v!bottom=>{\setuppapersize[\c!bottom =\vss,\c!top =\vskip\@@pcoffset]}, \v!top=>{\setuppapersize[\c!top =\vss,\c!bottom =\vskip\@@pcoffset]}, \v!left=>{\setuppapersize[\c!left =\hss,\c!right=\hskip\@@pcoffset]}, \v!right=>{\setuppapersize[\c!right=\hss,\c!left =\hskip\@@pcoffset]}]% \definepapersize [\v!pagecomment] [\c!height=\@@pcpaperheight, \c!width=\@@pcpaperwidth]% \let\@@pcprintpapersize\printpapersize \setuppapersize[\papersize][\v!pagecomment]% \setupbackgrounds[\v!paper][\c!background=\v!pagecomment]} {\doif\@@pcstate\v!stop % else initialization invokes backgrounds {% this should be tested first % \expanded{\setuppapersize[\papersize][\@@pcprintpapersize]}% \setupbackgrounds[\v!paper][\c!background=]}}} \def\@@pcprintpapersize{\printpapersize} \def\placepagecommentTB {\vbox to \printpaperheight {\forgetall \hsize\printpaperwidth \vskip\@@pcoffset \doifelse\@@pclocation\v!bottom{\vskip\dimexpr\paperheight+\@@pcdistance\relax}\vss \hskip\@@pcoffset \vbox to \@@pcheight {\forgetall \hsize\paperwidth \ifpagecomment \getbuffer[\v!pagecomment]% \global\pagecommentfalse \fi}% \hfill \doifelse\@@pclocation\v!bottom\vss{\vskip\dimexpr\paperheight+\@@pcdistance\relax}% \vskip\@@pcoffset}} \def\placepagecommentLR {\hbox to \printpaperwidth {\hskip\@@pcoffset \doifelse\@@pclocation\v!right{\hskip\paperwidth\hskip\@@pcdistance}\hss \vbox to \printpaperheight {\forgetall \vskip\@@pcoffset \hsize\@@pcwidth \ifpagecomment \getbuffer[\v!pagecomment]% \global\pagecommentfalse \fi \vss}% \doifelse\@@pclocation\v!right\hss{\hskip\paperwidth\hskip\@@pcdistance}% \hskip\@@pcoffset}} \newif\ifpagecomment \setvalue{\e!start\v!pagecomment}% {\global\pagecommenttrue \dostartbuffer[\v!pagecomment][\e!start\v!pagecomment][\e!stop\v!pagecomment]} \setuppagecomment [\c!state=, % \v!stop would invoke background calculation \c!location=\v!bottom, \c!offset=.5cm, \c!distance=.5cm, \c!height=5cm, \c!width=10cm] % This macro cuts a page into n parts that can be pasted % together. \def\slicepages {\dotripleempty\doslicepages} \def\doslicepages[#1][#2][#3]% {\ifthirdargument \dodoslicepages[#1][#2][#3]% \else \dodoslicepages[#1][#2][#2]% \fi} \newcounter\slicedpagenumber \def\dodoslicepages[#1][#2][#3]% {\bgroup \dontcomplain \globallet\slicedpagenumber\!!zerocount \getfiguredimensions[#1] \getparameters [\??ip] [\c!n=1, \c!offset=\!!zeropoint, \c!hoffset=\!!zeropoint,\c!voffset=\!!zeropoint, \c!width=\figurewidth,\c!height=\figureheight,#2] \ifnum\@@ipn>\zerocount \definepapersize [\s!dummy][\c!height=\@@ipheight,\c!width=\@@ipwidth] \setuppapersize [\s!dummy][\s!dummy] \setuplayout [\c!backspace=\!!zeropoint,\c!topspace=\!!zeropoint, \c!height=\v!middle,\c!width=\v!middle, \c!textdistance=\!!zeropoint, \c!header=\!!zeropoint,\c!footer=\!!zeropoint] \fi \dorecurse\noffigurepages {\global\let\slicedpagenumber\recurselevel \ifnum\@@ipn>\plusone \dorecurse\@@ipn {\let\xslice\recurselevel \dorecurse\@@ipn {\let\yslice\recurselevel \clip [\c!nx=\@@ipn,\c!ny=\@@ipn,\c!x=\xslice,\c!y=\yslice] {\scale [\c!scale=\@@ipn000] {\externalfigure[#1][\c!page=\slicedpagenumber]}} \page}} \else \ifodd\slicedpagenumber\relax \getparameters[\??ip][#2] \else \getparameters[\??ip][#3] \fi \hskip\@@ipoffset \clip [\c!hoffset=\@@iphoffset,\c!voffset=\@@ipvoffset, \c!height=\@@ipheight,\c!width=\@@ipwidth] {\externalfigure[#1][\c!page=\slicedpagenumber]} \page \fi} \egroup} % \starttext \slicepages[slice1.pdf][n=3] \stoptext \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-ent.mkii0000644000175000017500000000766414536300610024717 0ustar hillehille%D \module %D [ file=xtag-ent, %D version=2000.12.20, %D title=\CONTEXT\ XML Macros, %D subtitle=A bunch of Entities, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % We need this for French and Hungarian. \defineXMLentity [colon] {\directdiscretionary{:}} \defineXMLentity [semicolon] {\directdiscretionary{;}} \defineXMLentity [questionmark] {\directdiscretionary{?}} \defineXMLentity [exclamationmark] {\directdiscretionary{!}} % These will fall back to the raw encoding vector \defineXMLentity [Aacute] {\Aacute} \defineXMLentity [aacute] {\aacute} \defineXMLentity [Cacute] {\Cacute} % unofficial \defineXMLentity [cacute] {\cacute} % unofficial \defineXMLentity [Eacute] {\Eacute} \defineXMLentity [eacute] {\eacute} \defineXMLentity [Iacute] {\Iacute} \defineXMLentity [iacute] {\iacute} \defineXMLentity [Oacute] {\Oacute} \defineXMLentity [oacute] {\oacute} \defineXMLentity [Uacute] {\Uacute} \defineXMLentity [uacute] {\uacute} \defineXMLentity [Yacute] {\Yacute} \defineXMLentity [yacute] {\yacute} \defineXMLentity [Nacute] {\Nacute} \defineXMLentity [nacute] {\nacute} \defineXMLentity [Ccedil] {\Ccedilla} \defineXMLentity [ccedil] {\ccedilla} \defineXMLentity [AElig] {\AEligature} \defineXMLentity [aelig] {\aeligature} \defineXMLentity [Agrave] {\Agrave} \defineXMLentity [agrave] {\agrave} \defineXMLentity [Egrave] {\Egrave} \defineXMLentity [egrave] {\egrave} \defineXMLentity [Igrave] {\Igrave} \defineXMLentity [igrave] {\igrave} \defineXMLentity [Ograve] {\Ograve} \defineXMLentity [ograve] {\ograve} \defineXMLentity [Ugrave] {\Ugrave} \defineXMLentity [ugrave] {\ugrave} \defineXMLentity [THORN] {\Thorn} \defineXMLentity [thorn] {\thorn} \defineXMLentity [Aring] {\Aring} \defineXMLentity [aring] {\aring} \defineXMLentity [Oslash] {\Oslash} % stroke \defineXMLentity [oslash] {\oslash} \defineXMLentity [Lslash] {\Lslash} % unofficial \defineXMLentity [lslash] {\lslash} % unofficial \defineXMLentity [eth] {\eth} % ? \defineXMLentity [ETH] {\Eth} % ? \defineXMLentity [Atilde] {\Atilde} \defineXMLentity [atilde] {\atilde} \defineXMLentity [Etilde] {\Etilde} \defineXMLentity [etilde] {\etilde} \defineXMLentity [Itilde] {\Itilde} \defineXMLentity [itilde] {\itilde} \defineXMLentity [Ntilde] {\Ntilde} \defineXMLentity [ntilde] {\ntilde} \defineXMLentity [Otilde] {\Otilde} \defineXMLentity [otilde] {\otilde} \defineXMLentity [Utilde] {\Utilde} \defineXMLentity [utilde] {\utilde} \defineXMLentity [Auml] {\Adiaeresis} \defineXMLentity [auml] {\adiaeresis} \defineXMLentity [Euml] {\Ediaeresis} \defineXMLentity [euml] {\ediaeresis} \defineXMLentity [Iuml] {\Idiaeresis} \defineXMLentity [iuml] {\idiaeresis} \defineXMLentity [Ouml] {\Odiaeresis} \defineXMLentity [ouml] {\odiaeresis} \defineXMLentity [Uuml] {\Udiaeresis} \defineXMLentity [uuml] {\udiaeresis} \defineXMLentity [Yuml] {\Ydiaeresis} \defineXMLentity [yuml] {\ydiaeresis} \defineXMLentity [szlig] {\Ssharp} \defineXMLentity [Acirc] {\Acircumflex} \defineXMLentity [acirc] {\acircumflex} \defineXMLentity [Ecirc] {\Ecircumflex} \defineXMLentity [ecirc] {\ecircumflex} \defineXMLentity [Icirc] {\Icircumflex} \defineXMLentity [icirc] {\icircumflex} \defineXMLentity [Ocirc] {\Ocircumflex} \defineXMLentity [ocirc] {\ocircumflex} \defineXMLentity [Ucirc] {\Ucircumflex} \defineXMLentity [ucirc] {\ucircumflex} \defineXMLentity [ccaron] {\ccaron} % unofficial \defineXMLentity [rcaron] {\rcaron} % unofficial \defineXMLentity [scaron] {\scaron} % unofficial \defineXMLentity [zcaron] {\zcaron} % unofficial \defineXMLentity [dots] {\unknown} \defineXMLentity [amp] {\&} \defineXMLentity [nbsp] {\nonbreakablespace} context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-tpi.mkii0000644000175000017500000002674114536300610024746 0ustar hillehille%D \module %D [ file=supp-tpi, %D version=1997.07.05, %D title=\CONTEXT\ Support Macros, %D subtitle=\TPIC\ Conversion, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This modules implements the conversion of graphic \TPIC\ %D specials using \METAPOST. %D %D We reimplement the \TPIC\ specials using the special %D mimmicking mechanism implemented in the support module %D \type{supp-spe} as well as the \METAPOST\ run||time support %D implemented in \type{supp-mps}. \ifnum\texengine=\luatexengine \expandafter \endinput \fi \ifx\undefined\writestatus \input supp-mis.mkii \relax \fi \ifx\undefined\mimmickspecials \input supp-spe.mkii \relax \fi \ifx\undefined\MPgraphicbox \input supp-mps.mkii \relax \fi \ifx\undefined\dogetEPSboundingbox \input supp-eps.mkii \relax \fi \writestatus{loading}{ConTeXt Support Macros / TPIC Conversion} %D Beware: we haven't activated both mechanism yet. This is %D to be done in the calling module. \unprotect %D When we want to mimmick \TPIC\ specials in \PDFTEX, we need %D to map its graphic primitives into \PDF\ ones. The main %D problem in doing so is that \PDF\ does not support b-splines %D directly and also does not offer us something to draw arcs. %D Of course all this scan be implemented in \TEX, and the %D first implementation of this module did so, but the results %D were not that satisfying. Not having used these specials %D before, I had for instance to find out that the \TPIC\ %D specials were not that unambiguesly defined. %D %D Then, while discussing something else, Sebastian Ratz told %D me that the Web2c implementation that \PDFTEX\ is base upon, %D offers some rather discutable, but nevertheless handy %D feature: %D %D \starttyping %D \write18{execute program with arguments} %D \stoptyping %D %D Knowing this, I immediatelly decided to throw away the old %D conversion macros and use the marvelous \METAPOST, \TEX\ %D related, drawing program to do the conversion in as high a %D quality as possible. %D %D implementation we're going to present here, not only uses %D for drawing purposes, but also uses the more efficient %D \METAPOST\ features to store the path. %D %D \in{Table}[tab:TPIC specials] lists the \TPIC\ specials as %D mentioned in the \LATEX\ Graphics Companion and the %D relevant part of the \DVIPS\ source. This list shows us %D that we have to store the path before we can use it, simply %D because we don't know in advance what actions to apply on %D it. %D %D \placetable[here][tab:TPIC specials]{The \TPIC\ special syntax.} %D \starttable[|||l|] %D \HL %D \NC \bf tag \NC \bf arguments \NC \bf meaning \NC\SR %D \HL %D \NC pn \NC $w$ \NC set linewidth \NC\FR %D \NC pa \NC $x$ $y$ \NC add point to path \NC\MR %D \NC fp \NC \NC draw/fill path \NC\MR %D \NC ip \NC \NC fill path \NC\MR %D \NC da \NC $l$ \NC draw dashed path \NC\MR %D \NC dt \NC $l$ \NC draw doted path \NC\MR %D \NC sp \NC $d$ \NC draw spline \NC\MR %D \NC ar \NC $x$ $y$ $r_x$ $r_y$ $b$ $e$ \NC draw (partial) arc \NC\MR %D \NC ia \NC $x$ $y$ $r_x$ $r_y$ $b$ $e$ \NC fill (partial) arc \NC\MR %D \NC sh \NC $s$ \NC fill next path \NC\LR %D \HL %D \stoptable %D The first problem we have to take care of is the fact that %D there is no decent begin or end of the drawing process %D defined. We can however be quite sure that writers of %D packages using these specials will put them into a box, %D simply because else this is the most common used way to %D treat something \TEX\ as as a whole, like: %D %D \starttyping %D \hbox{\special{}\special{}...} %D \stoptyping %D %D We just start a picture as soon as the first special is %D encountered, so this becomes: %D %D \starttyping %D \hbox{\openpicture\newspecial{}\newspecial{}... %D \stoptyping %D The first step in opening the picture is to start a group. %D Now we can savely use the egroup that closes the box to also %D end the picture. % BETER: check for context and include mp-tool.mp \def\startTPICspecials {\bgroup \let\startTPICspecials\relax \aftergroup\stopTPICspecials \resetMPdrawing \startMPdrawing input mp-tool.mpii ; pair p[]; \stopMPdrawing} %D As soon as we begin a picture, we inhibit nesting by %D relaxing the start macro. The first \METAPOST\ action we %D take is declaring an array of pairs named $p$. %D Ending the picture is invoked by closing the current group. %D Because the \TPIC\ picture comes out mirrored, we have to %D reflect the current \METAPOST\ picture, stored in the system %D variable {\it currentpicture}, around the $x$-axis. \def\stopTPICspecials {\startMPdrawing currentpicture:=currentpicture reflectedabout ((0,0),(4095,0)); \stopMPdrawing \MPdrawingdonetrue \setbox\MPgraphicbox\hbox {\getMPdrawing}% \setbox\MPgraphicbox\hbox to \zeropoint {\kern-\wd\MPgraphicbox \vbox to \zeropoint{\box\MPgraphicbox\vss}\hss}% \ht\MPgraphicbox\zeropoint \wd\MPgraphicbox\zeropoint \dp\MPgraphicbox\zeropoint \box\MPgraphicbox \egroup} %D Here the macro \type{\stopwritingMPgraphic} has to take care %D of executing and including the \METAPOST\ code. %D We need to keep track of the number of elements that form %D the path. This is needed because we don't know in advance %D how the points are to be connected. \newcount\TPICcounter %D When a path is draw, we can connect the points using a %D smooth curve of drawing straight lines. A closed path can be %D drawn or filled. \newif\ifTPICdraw \newif\ifTPICfill \newif\ifTPICcurve %D The \TPIC\ specials permit specifying the line and fill %D color as well as the linetype, which can be solid, dashed or %D dotted. We'll save those specifications as a \METAPOST\ %D string, using: \let\TPIClinetype =\empty \let\TPICgrayscale=\empty %D The magic reduction factor $.07227$ is needed to map the %D \TPIC\ $1/1000$ of an inch to \POSTSCRIPT\ points. We cannot %D delegate this task to \METAPOST\ because this program does %D not accept values greater than 4095. %D I won't discuss all the specifics used in implementing %D the specials. The \METAPOST\ part is rather trivial. Many %D specials have much in common, so the amout of code is not %D that large. \redefinespecial pa \using#1 #2\endspecial {\startTPICspecials \bgroup \global\advance\TPICcounter 1 \dimen0=#1pt \dimen0=.07227\dimen0 \dimen2=#2pt \dimen2=.07227\dimen2 \startMPdrawing p[\the\TPICcounter]:=(\the\dimen0,\the\dimen2); \stopMPdrawing \egroup} \redefinespecial pn \using#1\endspecial {\startTPICspecials \bgroup \dimen0=#1pt \dimen0=.07227\dimen0 \startMPdrawing pickup pencircle scaled \the\dimen0; \stopMPdrawing \egroup} \redefinespecial sh \using#1\endspecial {\startTPICspecials \bgroup \edef\g{#1}% \edef\g{\ifx\g\empty.5\else#1\fi}% \xdef\TPICgrayscale{withcolor (\g,\g,\g)}% \egroup} \redefinespecial wh \using#1\endspecial {\mimmickspecial sh \using0\endspecial} \redefinespecial bk \using#1\endspecial {\mimmickspecial sh \using1\endspecial} \redefinespecial da \using#1\endspecial {\startTPICspecials \bgroup \edef\l{#1}% \ifx\l\empty \gdef\TPIClinetype{dashed evenly}% \else \dimen0=#1in \ifdim\dimen0<\!!zeropoint \dimen0=-\dimen0\fi \edef\f{\the\dimen0 \space}% \dimen0=.5\dimen0 \edef\h{\the\dimen0 \space}% \xdef\TPIClinetype{dashed dashpattern (on \h off \f on \h)}% \fi \egroup \TPICcurvefalse\TPICdrawtrue \drawTPICpath\using#1\endspecial} \redefinespecial dt \using#1\endspecial {\startTPICspecials \bgroup \edef\l{#1}% \xdef\TPIClinetype{dashed withdots \ifx\l\empty\else scaled #1in\fi}% \egroup \TPICcurvefalse\TPICdrawtrue \drawTPICpath\using#1\endspecial} \redefinespecial fp \using#1\endspecial {\startTPICspecials \TPICcurvefalse\TPICdrawtrue \ifdim0#1pt=\!!zeropoint \drawTPICpath\using#1\endspecial \else\ifdim0#1pt<\!!zeropoint \mimmickspecial dt\using#1\endspecial \else \mimmickspecial da\using#1\endspecial \fi\fi} \redefinespecial sp {\startTPICspecials\TPICdrawtrue\TPICcurvetrue\drawTPICpath} \redefinespecial ip {\startTPICspecials\TPICfilltrue\drawTPICpath} \redefinespecial ar {\startTPICspecials\TPICdrawtrue\drawTPICarc} \redefinespecial ia {\startTPICspecials\TPICfilltrue\drawTPICarc} %D These substitutes use two auxiliary macros that take care of %D actually drawing the shape or arc. Here we use the stored %D linetype (solid, dashed, dotted) and color (grayscale). \def\drawTPICpath\using#1\endspecial {\bgroup \ifTPICdraw \def\TPICgrayscale{}% \fi \startMPdrawing \ifTPICfill fill\fi\ifTPICdraw draw\fi\space for i:=1 upto \the\TPICcounter-1: p[i]\ifTPICcurve..\else--\fi endfor p[\the\TPICcounter] \ifTPICfill\ifTPICcurve..\else--\fi cycle \fi \TPIClinetype\space\TPICgrayscale; \stopMPdrawing \resetTPICvariables \egroup} %D I have to admit that at the moment I wrote this macro, I %D could not write this piece of \METAPOST. Fortunately %D Thortsen Ohl promptly answered the question I posted to the %D \METAFONT\ discussion list. \def\drawTPICarc\using#1 #2 #3 #4 #5 #6\endspecial {\bgroup \ifTPICdraw \def\TPICgrayscale{}% \fi \dimen 0=#1pt\dimen 0=.07227\dimen 0 \dimen 2=#2pt\dimen 2=.07227\dimen 2 \dimen10=#3pt\dimen10=.14454\dimen10 \dimen12=#4pt\dimen12=.14454\dimen12 \dimen20=#5pt \dimen22=#6pt \startMPdrawing \ifTPICfill fill\fi\ifTPICdraw draw\fi \space \ifTPICfill\else subpath 4/3.14159*(\the\dimen20,\the\dimen22) of \fi fullcircle xscaled \the\dimen10 \space yscaled \the\dimen12 \space shifted (\the\dimen0,\the\dimen2) \TPIClinetype \space \TPICgrayscale; \stopMPdrawing \resetTPICvariables \egroup} %D Resetting the variables need to be done globally because we %D cannot be sure if any further grouping is used by the %D envelopping macros. \def\resetTPICvariables {\global\TPICcounter\zerocount \global\TPICfillfalse \global\TPICdrawfalse \global\let\TPIClinetype\empty \global\let\TPICgrayscale\empty} %D I have to admit that by using the \METAPOST\ B‚zier cubics %D routines these implementation does produce better curves %D then most \DVI\ drivers do using the \TPIC\ prescribed %D b-splines. Take for instance the sequence: %D %D \starttyping %D \special{pa 2000 1000} %D \special{pa 1000 2000} %D \special{pa 0000 1000} %D \special{pa 1000 0000} %D \special{pa 2000 1000} %D \special{sp} %D \stoptyping %D %D One would expect that this code produced a closed circle, %D but the curve that comes out using b-splines is far from %D round. We can however savely asume that the arc producing %D specials will be used for drawing circle fragments, while %D the path specials will be used for arbitraty curves. And for %D b-splines to produce nice curves, one will often use many %D points to get the desired results. Therefore, using the %D \METAPOST\ B‚zier curves will certainly produce similar and %D even better graphics, except in those rare cases where one %D uses delinberately the not that accurate features of %D b-splines. Hereby the user is warned. \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/syst-str.mkii0000644000175000017500000000653514536300610024774 0ustar hillehille%D \module %D [ file=syst-str, %D version=2006.09.18, %D title=\CONTEXT\ System Macros, %D subtitle=String Processing, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D We need a convenient way to change lccode vectors. \dostepwiserecurse{0}{255}{1} {\@EA\chardef\csname-\recurselevel\endcsname\recurselevel} \newtoks\withminorcharacters \newtoks\withlowercharacters \newtoks\withuppercharacters \dostepwiserecurse{0}{31}{1} {\expanded {\appendtoks\noexpand\withcharacter\csname-\recurselevel\endcsname \noexpand\to\withminorcharacters}} \dostepwiserecurse{32}{127}{1} {\expanded {\appendtoks\noexpand\withcharacter\csname-\recurselevel\endcsname \noexpand\to\withlowercharacters}} \dostepwiserecurse{128}{255}{1} {\expanded {\appendtoks\noexpand\withcharacter\csname-\recurselevel\endcsname \noexpand\to\withuppercharacters}} \chardef\obeyedlccode=`. % so <32 and >127 chars become . %D \macros %D {retainlccodes} %D %D One way of manipulating characters is changing the their %D \type{\lccode} and applying \type{\lowcase}. An example of %D this can be found in \type{spec-mis}. \def\setownlccode #1{\lccode#1#1} \def\setobeyedlccode#1{\lccode#1\obeyedlccode} \def\obeylccodes {\let\withcharacter\setownlccode \the\withlowercharacters \let\withcharacter\setobeyedlccode \the\withminorcharacters \the\withuppercharacters \relax} \def\retainlccodes {\let\withcharacter\setownlccode \the\withlowercharacters \the\withminorcharacters \the\withuppercharacters \relax} %D I got tired of making dedicated clean up macros using the %D same mechanism again and again, so now we have: %D %D \starttyping %D \def\xxxx{abc.d} \replacecharacters\xxxx{a.}{-} \xxxx %D \stoptyping \def\replacecharacters#1#2#3% macro characters replacement {\bgroup \edef\ascii{#1}% \retainlccodes \def\docommand##1{\lccode\expandafter`\csname##1\endcsname=\expandafter`\csname#3\endcsname}% \handletokens#2\with\docommand \lowercase\@EA{\@EA\xdef\@EA\globalascii\@EA{\ascii}}% \egroup \dodoglobal\let#1\globalascii} % \bgroup % \catcode`\ =\@@other % needed in order to get it visible % \lccode`\ =`\- % \lowercase{\xdef\globalascii{aap noot}}% % \egroup % % [\globalascii] {\tttf [\globalascii]} % % interesting: % % \setvalue{xxx}{oeps} % \setvalue{test-test}{\getvalue{xxx}oeps} % \bgroup\lccode`\ =`\-\lowercase{\egroup\csname test test\endcsname} % % \setvalue{test\string~test}{\getvalue{xxx}oeps} % \bgroup\lccode`\ =`\~\lowercase{\egroup\csname test test\endcsname} % % \bgroup\catcode`\~=\@@letter\lowercase{\egroup\csname test~test\endcsname} \def\separatestring#1\to#2% {\bgroup \retainlccodes \lccode `\ =`\,% % when typesetting: \catcode`\ =\@@other \edef\ascii{#1}% \lowercase\@EA{\@EA\xdef\@EA\globalascii\@EA{\ascii}}% \egroup \let#2\globalascii} \def\unspacefilename#1\to#2% {\bgroup \def\obeyedspace{-}% \sanitizefilename#1\to\ascii \retainlccodes \lccode `\ =`\-% % when typesetting: \catcode`\ =\@@other \lowercase\@EA{\@EA\xdef\@EA\globalascii\@EA{\ascii}}% \egroup \let#2\globalascii} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-pre.mkii0000644000175000017500000000431314536300610024666 0ustar hillehille%D \module %D [ file=meta-pre, %D version=2001.03.21, %D title=\METAPOST\ Graphics, %D subtitle=Predefined Goodies, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D In this library, we define a couple of handy graphics. % todo: use the predefine grid macros, mp code will move to % mp-* file \startuseMPgraphic{pagegrid} StartPage ; drawoptions(withcolor .8white) ; fill Field[Text][Text] ; drawoptions(withcolor .65white) ; fill Field[Footer][Text] ; fill Field[Header][Text] ; fill Field[LeftMargin][Text] ; fill Field[RightMargin][Text] ; drawoptions(withcolor .65yellow) ; fill Field[LeftEdge][Text] ; fill Field[RightEdge][Text] ; fill Field[Bottom][Text] ; fill Field[Top][Text] ; drawoptions(withpen pencircle scaled .3pt withcolor .65white) ; for i=-3cm step 1cm until PaperWidth+3cm : draw (i,-3cm)--(i,PaperHeight+3cm) ; endfor ; for i=PaperHeight+3cm step -1cm until -3cm : draw (-3cm,i)--(PaperWidth+3cm,i) ; endfor ; drawoptions(withpen pencircle scaled .15pt) ; for i=.5cm-3cm step 1cm until PaperWidth+3cm : draw (i,-3cm)--(i,PaperHeight+3cm) ; endfor ; for i=PaperHeight-.5cm+3cm step -1cm until -3cm : draw (-3cm,i)--(PaperWidth+3cm,i) ; endfor ; drawoptions(withpen pencircle scaled .3pt withcolor .65red) ; for i=0 step 1cm until PaperWidth : draw (i,0)--(i,PaperHeight) ; endfor ; for i=PaperHeight step -1cm until 0 : draw (0,i)--(PaperWidth,i) ; endfor ; drawoptions(withpen pencircle scaled .15pt withcolor .65red) ; for i=.5cm step 1cm until PaperWidth : draw (i,0)--(i,PaperHeight) ; endfor ; for i=PaperHeight-.5cm step -1cm until 0 : draw (0,i)--(PaperWidth,i) ; endfor ; drawoptions(withpen pencircle scaled 5pt withcolor .65red) ; draw ulcorner Page ; StopPage ; \stopuseMPgraphic \defineoverlay[pagegrid][\useMPgraphic{pagegrid}] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spac-grd.mkii0000644000175000017500000010136714536300610024663 0ustar hillehille%D \module %D [ file=core-grd, %D version=1998.03.10, %D title=\CONTEXT\ Core Macros, %D subtitle=Grid Snapping (Experimental), %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Grid Snapping} \unprotect %D Moved from supp-box: %D \macros %D {startbaselinecorrection,baselinecorrection, %D showbaselinecorrection,offbaselinecorrection} %D %D Spacing around ruled boxes can get pretty messed up. The %D next macro tries as good as possible to fix this. %D %D \startbuffer[1] %D \startbaselinecorrection %D \ruledhbox{Rule Brittanica} %D \stopbaselinecorrection %D \stopbuffer %D %D \typebuffer[1] %D %D The macros put some white space around the box: %D %D \getbuffer[1] %D %D A simple alternative is \type {\baselinecorrection}, which %D only looks at the previous line. %D %D \startbuffer[2] %D \baselinecorrection %D \ruledhbox{Rule Brittanica} %D \baselinecorrection %D \stopbuffer %D %D \typebuffer[2] %D %D This time the last preceding line gets a correction,% %D dependant on the depth. %D %D \getbuffer[2] %D %D One can make the correction visible by saying \type %D {\showbaselinecorrection}. Part of the correction is %D calculated from the dimensions of a~(. One can disble the %D correction by calling \type {\offbaselinecorrection}. %D %D When visualize the first example looks like: %D %D {\showbaselinecorrection\getbuffer[1]} %D %D and the second one comes out as: %D %D {\showbaselinecorrection\getbuffer[2]} % \definecolor[GridLineColor][red] % \definecolor[GridTextColor][blue] \definepalet [grid] [ one=red, two=green, three=blue, four=gray] \def\setbaselinecorrections {\setbox0\hbox{\setstrut\strut}% \setbox2\hbox{(}% \dimen0\ht0\advance\dimen0 -\ht2 \ifdim\dimen0<\zeropoint\dimen0\zeropoint\fi \dimen2\dp0\advance\dimen2 -\dp2 \ifdim\dimen2<\zeropoint\dimen2\zeropoint\fi \edef\thetopbaselinecorrection {\the\dimen0}\dimen0-\dimen0 \edef\thebotbaselinecorrection {\the\dimen2}\dimen2-\dimen2 \edef\thenegtopbaselinecorrection{\the\dimen0}% \edef\thenegbotbaselinecorrection{\the\dimen2}} \def\dotopbaselinecorrection {\kern\thetopbaselinecorrection} \def\dobotbaselinecorrection {\kern\thebotbaselinecorrection} \def\donegtopbaselinecorrection{\kern\thenegtopbaselinecorrection} \def\donegbotbaselinecorrection{\kern\thenegbotbaselinecorrection} \def\showbaselinecorrection {\def\dobaselinecorrection % visualization is not watertight! {\bgroup \ifdim\prevdepth>\zeropoint\kern-\prevdepth\fi \setbox0\null \wd0\hsize \dp0\strutdp \nointerlineskip \forgetall \ruledvbox{\box0}% \egroup \prevdepth\strutdp}% \def\dotopbaselinecorrection {\hrule\!!height\thetopbaselinecorrection}% \def\dobotbaselinecorrection {\hrule\!!height\thebotbaselinecorrection}} \def\dobaselinecorrection {\ifdim\prevdepth>\zeropoint\kern-\prevdepth\fi \kern\strutdp \prevdepth\strutdp} % \def\baselinecorrection % {\endgraf % \ifvmode % \ifdim\prevdepth<\maxdimen % \ifdim\prevdepth<\zeropoint \else % \ifdim\prevdepth<\strutdp % \dobaselinecorrection % \fi % \fi % \fi % \fi} \def\baselinecorrection {\endgraf \ifvmode \ifdim\prevdepth<\maxdimen \ifdim\prevdepth<\zeropoint \else \ifdim\prevdepth<\strutdepth \relax \pushlastnode \dobaselinecorrection \poplastnode \fi \fi \fi \fi} \def\pagebaselinecorrection {\ifdim\pagegoal<\maxdimen \ifdim\pagetotal>\lineheight % or \topskip \scratchdimen\pagetotal \advance\scratchdimen\lineheight \ifdim\scratchdimen<\pagegoal \baselinecorrection \fi \fi \fi} % Beware, keep this one as it is, see for instance module % m-steps.tex, where we apply a \localhsize to the \vbox, in % order to follow narrower and side floats ! % \def\startbaselinecorrection % {\baselinecorrection % \ifvmode % \bgroup % \setbox\scratchbox\vbox\bgroup % \ignorespaces % \let\stopbaselinecorrection\dostopbaselinecorrection % \else % \let\stopbaselinecorrection\relax % \fi} % \def\dostopbaselinecorrection % I have to check columns yet. % {\endgraf % \egroup % \topbaselinecorrection % \box\scratchbox % \botbaselinecorrection % \egroup} % \let\stopbaselinecorrection=\relax \def\startbaselinecorrection {\bgroup \let\stopbaselinecorrection\egroup \ifcase\baselinecorrectionmode \or % normal \baselinecorrection \ifvmode \setbox\scratchbox\vbox\bgroup\ignorespaces \let\stopbaselinecorrection\donormalstopbaselinecorrection \fi \or % off \or % force \baselinecorrection \ifvmode \setbox\scratchbox\vbox\bgroup\ignorespaces \let\stopbaselinecorrection\doforcedstopbaselinecorrection \fi \fi} \let\stopbaselinecorrection\relax \def\donormalstopbaselinecorrection % I have to check columns yet. {\egroup \topbaselinecorrection \box\scratchbox \botbaselinecorrection \egroup} \def\doforcedstopbaselinecorrection % I have to check columns yet. {\egroup \forcedtopbaselinecorrection \box\scratchbox \forcedbotbaselinecorrection \egroup} %D We do a bit more checking than needed. The pageborder check %D is not needed, but I want to look the visualization as good %D as possible too. % \def\offbaselinecorrection % Can be used inside correction. % {\def\startbaselinecorrection{\bgroup\let\stopbaselinecorrection\egroup}} \chardef\baselinecorrectionmode\plusone \def\onbaselinecorrection {\chardef\baselinecorrectionmode\plusone } \def\offbaselinecorrection {\chardef\baselinecorrectionmode\plustwo } \def\forcebaselinecorrection{\chardef\baselinecorrectionmode\plusthree} %D \macros %D {topbaselinecorrection,botbaselinecorrection} %D %D The actual top and bottom corrections are implemented as: % \def\topbaselinecorrection % {\ifvmode \ifdim\pagegoal<\maxdimen % \bgroup % \setbaselinecorrections % \whitespace % \nointerlineskip % \dotopbaselinecorrection % \egroup % \fi \fi} \def\topbaselinecorrection {\ifvmode \ifdim\pagegoal<\maxdimen \forcedtopbaselinecorrection \fi \fi} \def\forcedtopbaselinecorrection {\ifvmode \bgroup \setbaselinecorrections \whitespace \nointerlineskip \dotopbaselinecorrection \egroup \fi} \def\botbaselinecorrection {\ifvmode \bgroup \setbaselinecorrections \dobotbaselinecorrection \allowbreak % new, otherwise problems when many in a row \prevdepth\strutdp \egroup \fi} \let\forcedbotbaselinecorrection\botbaselinecorrection %D Still very experimental and therefore undocumented. \newif\ifgridsnapping % UNDER DEVELOPMENT, USE WITH CARE \newif\ifforcepresnap \forcepresnaptrue % false in mixed single/double \newif\ifstrutsnapping \strutsnappingtrue % sometimes handy to be false \def\positiveextrasnap {\gdef\extrasnapsign{+}} \def\negativeextrasnap {\gdef\extrasnapsign{-}} \def\extrasnapreset {\global\chardef\@@extrasnap0 \positiveextrasnap} \def\extrasnapbefore {\global\chardef\@@extrasnap1 } \def\extrasnaparound {\global\chardef\@@extrasnap2 } \def\extrasnapafter {\global\chardef\@@extrasnap3 } \def\enablepresnapcorrection {\global\chardef\@@presnap\zerocount} \def\disablepresnapcorrection {\global\chardef\@@presnap\plusone} \extrasnapreset \enablepresnapcorrection \newif\iftracegridsnapping \newif\ifshowgridboxes \newif\ifshowfuzzyskips \let\showgridboxes\showgridboxestrue \def\showgridsnapping {\tracegridsnappingtrue \showgridboxestrue} \chardef\@@alignsnap =0 \chardef\@@alignsnapbox =0 \chardef\@@alignsnapmethod=0 \let\presnapskip \!!zeropoint \def\presnap {-} \let\postsnapskip\!!zeropoint \let\postsnap\presnap \newcount\currentgridsnap \def\tracedsnapping {\iftracegridsnapping \llap {\startlayoutcomponent{gridsnaps}{grid snaps}% \infofont \global\advance\currentgridsnap\plusone \color[grid:three]{\vl\presnapskip \vl\presnap \vl\postsnap \ifcase\@@alignsnapbox\relax \vl\ifcase\@@extrasnap 00\or \extrasnapsign0\or \extrasnapsign\extrasnapsign\or 0\extrasnapsign\fi \fi \vl\the\currentgridsnap\vl}% \stoplayoutcomponent}% \fi} \def\snaptogrid% [#1]#2 -> #2 == \hbox|\vbox {\dosingleempty\dosnaptogrid} % \def\dosnaptogrid[#1]% % {\ifgridsnapping % \iffirstargument\doifsomething{#1}{\verplaatsopgrid[#1]}\fi % \expandafter\dodosnaptogrid % \fi} % \def\dosnaptogrid[#1]% % {\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up % \ifgridsnapping % \iffirstargument\doifsomething{#1}{\moveongrid[#1]}\fi % \expandafter\dodosnaptogrid % \fi} \def\dosnaptogrid[#1]% {\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up \doifinsetelse\v!force{#1}% {\moveongrid[#1]% \dodosnaptogrid} {\ifgridsnapping \doifsomething{#1}{\moveongrid[#1]}% \expandafter\dodosnaptogrid \fi}} % \def\forcedpresnapcorrection % test this on 'details' % {\ifforcepresnap % \ifvmode \else \par \fi % new % % we don't want top of page space when 'top' option % %\verticalstrut\nobreak\vskip-\struttotal % %\verticalstrut\vskip-\struttotal % % nobreak really needed % \allowbreak\verticalstrut\nobreak\vskip-\struttotal % %\ifdim\pagetotal>\topskip \else % % eigenlijk signal % %\writestatus{grid}{removing dummy at top of page}% % %\bgroup % %\output{\setbox\scratchbox\box255}% % %\penalty\outputpenalty % %\egroup % %\fi % \fi} \def\forcedpresnapcorrection % test this on 'details' {\ifforcepresnap \ifvmode \else \par \fi % new % we don't want top of page space when 'top' option % \verticalstrut\nobreak\vskip-\struttotal % \verticalstrut\vskip-\struttotal % \nobreak really needed % \dosomebreak\allowbreak % no: spoils heads, so only under know situation, not in snapper \verticalstrut \nobreak \vskip-\struttotal %\ifdim\pagetotal>\topskip \else % eigenlijk signal %\writestatus{grid}{removing dummy at top of page}% %\bgroup %\output{\setbox\scratchbox\box255}% %\penalty\outputpenalty %\egroup %\fi \fi} \def\setgridtracebox#1[#2]% % maybe reverse the order {\setbox\nextbox#1% {\hbox {\hbox to \zeropoint {\startlayoutcomponent{gridsnaps}{grid snaps}% \color[grid:#2]{\ruledhbox{\fakebox\nextbox}}% \stoplayoutcomponent \hss}% \flushnextbox}}} \newif\ifboxedsnapping \boxedsnappingtrue \chardef\depthsnapmethod \plusone % downward compatible, minus one line \chardef\heightsnapmethod\plusone % downward compatible, minus one line \def\dodosnaptogrid {\dowithnextbox {\bgroup \ifcase\@@alignsnapmethod \or % we're dealing with text with a possible big depth/height \chardef\depthsnapmethod \plustwo \chardef\heightsnapmethod\plustwo \fi \ifdim\nextboxht<\textheight % handle special case (like page fig) \ifcase\@@alignsnapbox\relax \ifcase\@@alignsnap\else % 1=top 2=high 3=middle 4=low \ifshowgridboxes \setgridtracebox\hbox[two]% \fi %\getnoflines{\nextboxht}% \getnoflines\nextboxht \setbox\nextbox\vbox to \noflines\lineheight {\ifnum\@@alignsnap=1 \kern\lineheight\kern-\topskip\fi \ifnum\@@alignsnap>2 \vfill\fi \flushnextbox \ifnum\@@alignsnap<4 \vfill\fi}% \fi \ifshowgridboxes \setgridtracebox\hbox[three]% \fi \forgetall \par \ifvbox\nextbox \setbox\nextbox\hbox{\flushnextbox}% don't ask \fi \scratchskip\lastskip \edef\presnapskip{\the\lastskip}% % mixing single/double columns sometimes goes wrong, % check 'som' document \ifinsidecolumns \forcepresnaptrue \fi \forcedpresnapcorrection \ifdim\nextboxht>\strutht \scratchdimen\nextboxht \ifcase\@@presnap\relax \ifdim\scratchskip>\zeropoint\relax \scratchcounter\scratchskip \advance\scratchcounter -\openlineheight \ifnum\scratchcounter<0 \scratchcounter-\scratchcounter \fi \ifnum\scratchcounter<10 % \lastkip is about \openlineheight \advance\scratchdimen -\openstrutdepth \edef\presnapskip{*\presnapskip}% \else\ifdim\scratchskip>\openlineheight %<\openlineheight \else \advance\scratchdimen -\openstrutdepth \edef\presnapskip{*\presnapskip}% \fi\fi \fi \fi % \getnoflines\scratchdimen % maybe raw ? % \advance\noflines -1 \ifcase\heightsnapmethod % raw \or \advance\scratchdimen-\lineheight % tight (default) \or \advance\scratchdimen-\strutheight % fit (text) \or \advance\scratchdimen-\strutheight % tolerant \advance\scratchdimen-\roundingeps \fi \getnoflines\scratchdimen \ifnum\noflines>0 \scratchdimen\noflines\lineheight \else \scratchdimen\zeropoint \fi \else \scratchdimen\zeropoint \fi \ifnum\@@extrasnap=1 \advance\scratchdimen \extrasnapsign \lineheight \fi \ifnum\@@extrasnap=2 \advance\scratchdimen \extrasnapsign.5\lineheight \fi \edef\presnap{\the\scratchdimen}% \ifstrutsnapping \ifboxedsnapping \getrawnoflines\scratchdimen \advance\scratchdimen-\noflines\lineheight \vskip\scratchdimen % disappears at top of page \dorecurse\noflines{\verticalstrut\nobreak}% \else \ifdim\scratchdimen=\zeropoint % nothing to skip \else % disappears at top of page \vskip\scratchdimen \fi \fi \fi \ifdim\nextboxdp>\strutdp % \getnoflines\nextboxdp % \advance\noflines \minusone \scratchdimen\nextboxdp\relax \ifcase\depthsnapmethod % raw \or \advance\scratchdimen-\lineheight % tight (default) \or \advance\scratchdimen-\strutdepth % fit (text) \or \advance\scratchdimen-\strutdepth % tolerant \advance\scratchdimen-\roundingeps \fi \getnoflines\scratchdimen \ifnum\noflines>0 \scratchdimen\noflines\lineheight \else \scratchdimen\zeropoint \fi \else \scratchdimen\zeropoint \fi \ifnum\@@extrasnap=2 \advance\scratchdimen \extrasnapsign.5\lineheight \fi \ifnum\@@extrasnap=3 \advance\scratchdimen \extrasnapsign \lineheight \fi \edef\postsnap{\the\scratchdimen}% \ifstrutsnapping \nextboxht\strutht \nextboxdp\strutdp \else \scratchdimen\presnap \advance\scratchdimen \strutht \nextboxht\scratchdimen \scratchdimen\postsnap \advance\scratchdimen \strutdp \nextboxdp\scratchdimen \fi \hbox{\tracedsnapping\flushnextbox}% \ifstrutsnapping \ifdim\scratchdimen=\zeropoint\else\vskip\scratchdimen\fi \fi \else \scratchdimen\nextboxht\relax \ifcase\@@alignsnapbox % can't happen here \or \getrawnoflines\scratchdimen \else \getnoflines \scratchdimen \fi \scratchdimen\noflines\lineheight\relax \advance\scratchdimen-\strutdepth % spoils the whole game (fit/broad/line) % \ifnum\pagetotal>\zeropoint \else % disable this as option % \advance\scratchdimen-\strutheight % \advance\scratchdimen+\topskip % \fi \dimen0=\scratchdimen \dimen2=\strutdepth \ifshowgridboxes \setgridtracebox\hbox[two]% \fi \nextboxdp\strutdp \dimen4=\nextboxht \dimen6=\nextboxdp \iftracegridsnapping \setbox\scratchbox\hbox {\scratchdimen\@@alignsnapamount\relax \ifdim\scratchdimen<\zeropoint \tracedgridamount\zeropoint{-\scratchdimen}% \else \tracedgridamount\scratchdimen\zeropoint \fi}% \smashbox\scratchbox \setbox\nextbox\hbox{\box\scratchbox\flushnextbox}% \fi \setbox\nextbox\hbox {\scratchdimen\@@alignsnapamount\relax \ifcase\@@alignsnapdepth\or % don't change this ever ! \ifdim\dimen0<\lineheight % otherwise it is ok, but ending up inside % the next paragraph is seldom what we want, % so we move one line up \advance\scratchdimen-\lineheight \advance\scratchdimen\strutheight \else % otherwise we can move down to the % baseline \advance\scratchdimen\dimen6 % == \strutdepth \fi \fi \lower\scratchdimen\flushnextbox}% \nextboxht\dimen4 \nextboxdp\dimen6 \ifnum\@@alignsnap<4 % 4 = regel \setbox\nextbox\vbox to \scratchdimen {\forgetall \ifnum\@@alignsnap>2 \vfill\fi % 3 4 \flushnextbox \nointerlineskip % \offinterlineskip \ifnum\@@alignsnap<4 \vfill\fi % 2 3 \kern\zeropoint}% \fi \ifshowgridboxes \setgridtracebox\vbox[three]% \fi \scratchdimen\@@alignsnapamount \edef\presnapskip{\the\scratchdimen}% \ifnum\@@alignsnap>2 \def\presnap {+}\fi \ifnum\@@alignsnap<4 \def\postsnap{+}\fi \setbox\nextbox\hbox{\tracedsnapping\flushnextbox}% \par \nextboxht\dimen0 \nextboxdp\dimen2 \forcedpresnapcorrection \nointerlineskip \flushnextbox \fi \else \setbox\nextbox\vbox to \textheight {\ifdim\nextboxdp=\zeropoint \hbox{\lower\strutdepth\flushnextbox} \else % this branch is yet untested \vss \hbox{\lower\nextboxdp\flushnextbox} \vskip-\strutdepth \fi}% \nextboxdp\strutdepth \flushnextbox \fi \extrasnapreset \enablepresnapcorrection \global\chardef\@@alignsnap\zerocount \global\chardef\@@alignsnapbox\zerocount \egroup}} \def\tracedgridamount#1#2% {\startlayoutcomponent{gridsnaps}{grid snaps}% \color[grid:four]{\vrule\!!width\nextboxwd\!!height#1\!!depth#2}% \stoplayoutcomponent} \def\snaptomathgrid % probably not working ok, also kind of obsolete {\ifgridsnapping \dowithnextbox {\blank[\v!line]\snaptogrid\vbox{\flushnextbox}\blank[\v!line]} \vbox\bgroup \forgetdisplayskips \@EA\let\@EA\next \fi} \def\topsnaptogrid {\ifgridsnapping \dowithnextbox {\scratchdimen\nextboxht \advance\scratchdimen -\strutht \advance\scratchdimen \topskip \nextboxht\scratchdimen \nextboxdp\zeropoint \flushnextbox \kern\lineheight \kern-\topskip \nointerlineskip} \hbox \fi} % \def\centertogrid % meant for special situations % {\ifgridsnapping % \dowithnextboxcontent % {\ignorespaces} % {\bgroup % \par % \scratchdimen\nextboxht % \advance\scratchdimen \nextboxdp % \getnoflines\scratchdimen % \setbox\nextbox\vbox to \noflines\lineheight % {\forgetall % \vskip\zeropoint \!!plus \nextboxht % \copy\nextbox % \kern.5\strutdp % VOORLOPIGE WAARDE % \vskip\zeropoint \!!plus \nextboxdp}% % \noindent\snaptogrid\vbox{\flushnextbox}% % \egroup} % \vbox % was \hbox % \fi} % The next implementation is sub-optimal % % \def\centertogrid % usage: see ie pascal / stepcharts % {\snaptogrid[\v!midden,.5\strutdp]\vbox} \def\centertogrid % meant for special situations {\ifgridsnapping \dowithnextboxcontent {\ignorespaces} {\bgroup \par \scratchdimen\nextboxht \advance\scratchdimen \nextboxdp \getnoflines\scratchdimen \setbox\nextbox\vbox to \noflines\lineheight {\forgetall \vss \topbaselinecorrection \copy\nextbox \botbaselinecorrection \vss}% \setbox\nextbox\hbox{\lower\strutdp\flushnextbox}% \forgeteverypar % new per 3/4/2008, prevents duplicate pos nodes resulting in extra whitespace \noindent\snaptogrid\vbox{\flushnextbox}% \egroup} \vbox % was \hbox \fi} % testbed for \centertogrid % % \strut Bruggetje % \startlinecorrection % \startcombination % {\framed{test}} {} {\framed{test}} {} % \stopcombination % \stoplinecorrection % \strut Bruggetje % \startlinecorrection % \startcombination[2*2] % {\framed{test}} {} {\framed{test}} {} % {\framed{test}} {} {\framed{test}} {} % \stopcombination % \stoplinecorrection % \strut Bruggetje % \startlinecorrection[blank] % \startcombination % {\framed{test}} {} {\framed{test}} {} % \stopcombination % \stoplinecorrection % \strut Bruggetje % \startlinecorrection[blank] % \startcombination[2*2] % {\framed{test}} {} {\framed{test}} {} % {\framed{test}} {} {\framed{test}} {} % \stopcombination % \stoplinecorrection % \strut Bruggetje % \startlinecorrection % \startcombination % {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {} % \stopcombination % \stoplinecorrection % \strut Bruggetje % \startlinecorrection % \startcombination[2*2] % {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {} % {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {} % \stopcombination % \stoplinecorrection % \strut Bruggetje % \startlinecorrection[blank] % \startcombination % {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {} % \stopcombination % \stoplinecorrection % \strut Bruggetje % \startlinecorrection[blank] % \startcombination[2*2] % {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {} % {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {} % \stopcombination % \stoplinecorrection \ifx\startbaselinecorrection\undefined \wait \fi % change order \let\normalstartbaselinecorrection=\startbaselinecorrection \def\startbaselinecorrection {\ifgridsnapping \centertogrid\bgroup \let\stopbaselinecorrection\egroup \else \normalstartbaselinecorrection \fi} \chardef\gridboxlinenomode\plusone \chardef\gridboxlinemode \plusone % 0:nothing 1:all 2:lines 3:frame \def\gridboxvbox {\ifcase\gridboxlinemode\vbox\or\ruledvbox\or\vbox\or\ruledvbox\else\ruledvbox\fi} \def\gridboxwidth{\ifcase\gridboxlinemode0\or.5\or.5\or0\else.5\fi\testrulewidth} \def\setgridbox#1#2#3% {\setbox#1\gridboxvbox to #3 % given size {\forgetall \resetteststrut \offinterlineskip \hsize#2% \baselinerulefalse \gridboxvbox % calculated size {\getrawnoflines{#3}% \getnoflines{#3}% \vskip\topskip \vskip-\strutht \scratchdimen#2\advance\scratchdimen \lineheight \dorecurse\noflines {\strut \hskip-.5\lineheight \ifcase\gridboxlinenomode\or \rlap {\hskip.2\bodyfontsize\hskip\scratchdimen \infofont\hbox to 1em{\hss\recurselevel}}% \or \llap {\infofont\hbox to 1em{\hss\recurselevel}% \hskip.2\bodyfontsize}% \fi \vrule \!!height \gridboxwidth \!!depth \gridboxwidth \!!width \scratchdimen \par}} \vfill}} %D Some intervention macros: \def\gridwarning#1{\message{[beware of #1 extra snap]}} \global\let\@@alignsnapamount\!!zeropoint \global\chardef\@@alignsnapdepth0 \def\@@unknowngriddisplacement {\global\chardef\@@alignsnapbox\plusthree \global\let\@@alignsnapamount\commalistelement} \def\domoveongrid[#1]% {\ifgridsnapping\doifsomething{#1}{\dodomoveongrid[#1]}\fi} \def\dodomoveongrid[#1]% some day : speed up {\global\chardef\@@alignsnap\zerocount \global\chardef\@@alignsnapbox\zerocount \global\chardef\@@alignsnapdepth\zerocount \global\chardef\@@alignsnapmethod\zerocount \global\let\@@alignsnapamount\!!zeropoint \donefalse \expanded{\processallactionsinset[#1]} [\v!standard=>, \v!normal=>, % to be sure \v!yes=>, % to be sure \v!top=>\gridwarning+\positiveextrasnap\extrasnapbefore, \v!bottom=>\gridwarning+\positiveextrasnap\extrasnapafter, \v!both=>\positiveextrasnap\extrasnaparound, -\v!top=>\gridwarning-\negativeextrasnap\extrasnapbefore, -\v!bottom=>\gridwarning-\negativeextrasnap\extrasnapafter, -\v!both=>\negativeextrasnap\extrasnaparound, \v!text=>\global\chardef\@@alignsnapmethod\plusone, % accurate calculations \v!page=>\global\chardef\@@alignsnap\plusone, % topskip \v!high=>\global\chardef\@@alignsnap\plustwo, \v!middle=>\global\chardef\@@alignsnap\plusthree, \v!low=>\global\chardef\@@alignsnap\plusfour, \v!fit=>\global\chardef\@@alignsnapbox\plusone, % new \v!broad=>\global\chardef\@@alignsnapbox\plustwo, % new \v!depth=>\global\chardef\@@alignsnapdepth\plusone, % new \v!line=>\global\chardef\@@alignsnapbox\plusthree % \global\chardef\@@alignsnapdepth\plusone \global\chardef\@@alignsnap\plusfour, \v!reset=>\positiveextrasnap\extrasnapreset, \v!none=>\global\chardef\@@alignsnap\zerocount \global\chardef\@@alignsnapbox\zerocount, \v!force=>, % turns on grid snapping even when not on \s!default=>, \s!unknown=>\@@unknowngriddisplacement]} \def\moveongrid {\dosingleempty\domoveongrid} \def\doplaceongrid[#1]% {\domoveongrid[#1]\snaptogrid\vbox} \def\placeongrid {\dosingleempty\doplaceongrid} %D Snapping is rather robust as long as we use whole lines. %D Half lines of white space can however be handled when they %D come in pairs. The corrections needed when crossing page %D boundaries in the middle of such a pair, are handled by %D macros that are (named) sort of fuzzy. This fuzzy mechanism %D was written as an extension to the grid typesetting needed %D for typesetting (part of) the \MAPS. %D %D \starttyping %D \setuptyping %D [before={\blank[halfline]}, %D after={\blank[halfline]}] %D \stoptyping \newif \iffuzzyvskip \newif \iffuzzysnapdone \newif \iffuzzysnapping \newif \iffuzzysnapped \chardef \fuzzysnappedleft=0 % ==1 when fuzzybegin still open \newpersistentmark\fuzzymark % (!) \newcount \fuzzymarker \newbox \fuzzysnapbox \newbox \fuzzysnapsplit \def\dosyncfuzzyvskip {\ifvmode\ifdim\lastskip<\lineheight\ifdim\lastskip>\zeropoint \bgroup % - added 28/2/2003: check this, there was no - \endgraf\forgetall\verticalstrut\nobreak\vskip-\struttotal \egroup \fi\fi\fi} \def\fuzzyvskip#1% {\iffuzzysnapdone \dosyncfuzzyvskip % NEWER \endfuzzysnapping \vskip#1\relax \global\fuzzysnapdonefalse \else \vskip#1\relax \beginfuzzysnapping \global\fuzzysnapdonetrue \fi} \def\setfuzzymark#1#2#3% #1/#2 => error recovery {\ifgridsnapping \global\fuzzysnappingtrue \global\advance\fuzzymarker \ifodd\fuzzymarker#1\else#2\fi \nobreak \ifshowfuzzyskips \hbox{\color[grid:three] {\llap{\infofont#3\vl\the\fuzzymarker}\nobreak \vrule\!!width\hsize\!!height.1\lineheight}} \nobreak \fi %[\the\fuzzymarker] %\expandafter\fuzzymark\expandafter{\the\fuzzymarker}% \expandafter\rawsetmark\expandafter\fuzzymark\expandafter{\the\fuzzymarker}% \nobreak \fi} \def\beginfuzzysnapping{\setfuzzymark21\v!start} % odd \def\endfuzzysnapping {\setfuzzymark12\v!stop } % even \def\removelastfuzzyvskip {\ifgridsnapping \iffuzzysnapping \ifdim\lastskip<\openlineheight \else \removelastskip \fi \else \removelastskip \fi \else \removelastskip \fi} \def\docheckfuzzysnap#1% {\bgroup \dontcomplain \setbox\fuzzysnapbox\copy#1\relax \setbox\fuzzysnapsplit\vsplit\fuzzysnapbox to 1\lineheight \let\topfuzzymark\empty % indeed here ... no real mark \getsplitmarks\fuzzymark % \ifcase0\topfuzzymark \ifcase0\rawgetsplittopmark\fuzzymark \global\chardef\fuzzysnappedleft\zerocount \global\fuzzysnappedfalse % \else\ifodd\topfuzzymark \else\ifodd\rawgetsplittopmark\fuzzymark \global\chardef\fuzzysnappedleft\plusone \global\fuzzysnappedtrue \else \global\chardef\fuzzysnappedleft=2 \global\fuzzysnappedtrue \fi\fi \iffuzzysnapped \else \doloop {\ifvoid\fuzzysnapbox \exitloop \else \setbox\fuzzysnapsplit=\vsplit\fuzzysnapbox to \lineheight %\let\topfuzzymark=\empty % ... but not here \getsplitmarks\fuzzymark % \ifcase0\topfuzzymark \ifcase0\rawgetsplittopmark\fuzzymark % continue % \else\ifodd\topfuzzymark \else\ifodd\rawgetsplittopmark\fuzzymark \exitloop \else \global\chardef\fuzzysnappedleft\plusone \global\fuzzysnappedtrue \exitloop \fi\fi \fi}% \fi \egroup} \def\getfuzzysnapcorrection#1% {\global\let\presnapcorrection \relax \global\let\postsnapcorrection\relax \ifgridsnapping\iffuzzysnapping \docheckfuzzysnap{#1}% \iffuzzysnapped \iftracegridsnapping \gdef\presnapcorrection {\color[grid:four]{\hrule\!!height.5\openlineheight\!!width\hsize}}% \else \gdef\presnapcorrection{\kern.5\openlineheight}% \fi \gdef\postsnapcorrection{\kern-.5\openlineheight}% get the height ok \fi \fi\fi} \def\fuzzysnappedbox#1#2% \box \unvbox {\getfuzzysnapcorrection{#2}% \presnapcorrection #1#2% \postsnapcorrection} \def\adaptfuzzypagegoal {\ifgridsnapping\iffuzzysnapping\ifcase\fuzzysnappedleft\or % see dopagecontents \scratchdimen\pagegoal \advance\scratchdimen -.5\openlineheight \global\pagegoal\scratchdimen \global\advance\vsize -.5\openlineheight \global\chardef\fuzzysnappedleft0 \fi\fi\fi} %D New, experimental, used in caption snapping: %D %D \starttyping %D \startcolumnset %D %D \setupcaption[figure][style=\tfx\setupinterlinespace,inbetween=,grid=top] %D %D \placefigure [lrtb] {\dorecurse{5}{green gras}} %D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]} %D \placefigure [lrtb] {\dorecurse{15}{green gras}} %D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]} %D %D \setupcaption[figure][style=\tfx\setupinterlinespace,inbetween=,grid=bottom] %D %D \placefigure [rltb] {\dorecurse{5}{green gras}} %D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]} %D \placefigure [rltb] {\dorecurse{15}{green gras}} %D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]} %D %D \input thuan %D %D \stopcolumnset %D \stoptyping \def\moveboxontogrid#1#2#3% box method firstlineht % experimental ! ! ! {\doifsomething{#2} {\getnoflines{\ht#1}% no depth taken into account, depth preserved \scratchdimen\noflines\lineheight \advance\scratchdimen-\strutdp \bgroup \advance\scratchdimen-\onepoint % be a bit tolerant \ifdim\scratchdimen>\ht#1\relax \egroup \doif{#2}\v!top {\setbox#1\vbox to \scratchdimen{\vskip-#3\vskip\strutht\box#1\vfill}}% \doif{#2}\v!bottom{\setbox#1\vbox to \scratchdimen{\vfill\box#1\removedepth}}% \dp#1\strutdp \else \egroup \ht#1\scratchdimen \dp#1\strutdp \fi}} %D New: \let\checkgridsnapping\relax \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-cp1253.mkii0000644000175000017500000002605614536300610025025 0ustar hillehille%D \module %D [ file=regi-cp1253, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=cp1253 (Greek), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for cp1253 input encoding (regime) for Greek, %D see also iso-8859-7. %D %D Usage: %D \type{\enableregime[cp1253]} or \type{\enablereregime[windows-1253]} \startregime[cp1253] \defineactivetoken 128 {\texteuro} % 20AC EURO SIGN \defineactivetoken 129 {\unknownchar} % \defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK \defineactivetoken 131 {\fhook} % 0192 LATIN SMALL LETTER F WITH HOOK \defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK \defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS \defineactivetoken 134 {\textdag} % 2020 DAGGER \defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER \defineactivetoken 136 {\unknownchar} % \defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN \defineactivetoken 138 {\unknownchar} % \defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK \defineactivetoken 140 {\unknownchar} % \defineactivetoken 141 {\unknownchar} % \defineactivetoken 142 {\unknownchar} % \defineactivetoken 143 {\unknownchar} % \defineactivetoken 144 {\unknownchar} % \defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK \defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK \defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK \defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK \defineactivetoken 149 {\textbullet} % 2022 BULLET \defineactivetoken 150 {\endash} % 2013 EN DASH \defineactivetoken 151 {\emdash} % 2014 EM DASH \defineactivetoken 152 {\unknownchar} % \defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN \defineactivetoken 154 {\unknownchar} % \defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK \defineactivetoken 156 {\unknownchar} % \defineactivetoken 157 {\unknownchar} % \defineactivetoken 158 {\unknownchar} % \defineactivetoken 159 {\unknownchar} % \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\greekdialytikatonos} % 0385 GREEK DIALYTIKA TONOS \defineactivetoken 162 {\greekAlphatonos} % 0386 GREEK CAPITAL LETTER ALPHA WITH TONOS \defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN \defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN \defineactivetoken 165 {\textyen} % 00A5 YEN SIGN \defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\unknownchar} % \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\textlognot} % 00AC NOT SIGN \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN \defineactivetoken 175 {\texthorizontalbar} % 2015 HORIZONTAL BAR \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO \defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE \defineactivetoken 180 {\greektonos} % 0384 GREEK TONOS \defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN \defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\greekEpsilontonos} % 0388 GREEK CAPITAL LETTER EPSILON WITH TONOS \defineactivetoken 185 {\greekEtatonos} % 0389 GREEK CAPITAL LETTER ETA WITH TONOS \defineactivetoken 186 {\greekIotatonos} % 038A GREEK CAPITAL LETTER IOTA WITH TONOS \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\greekOmicrontonos} % 038C GREEK CAPITAL LETTER OMICRON WITH TONOS \defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF \defineactivetoken 190 {\greekUpsilontonos} % 038E GREEK CAPITAL LETTER UPSILON WITH TONOS \defineactivetoken 191 {\greekOmegatonos} % 038F GREEK CAPITAL LETTER OMEGA WITH TONOS \defineactivetoken 192 {\greekiotadialytikatonos} % 0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS \defineactivetoken 193 {\greekAlpha} % 0391 GREEK CAPITAL LETTER ALPHA \defineactivetoken 194 {\greekBeta} % 0392 GREEK CAPITAL LETTER BETA \defineactivetoken 195 {\greekGamma} % 0393 GREEK CAPITAL LETTER GAMMA \defineactivetoken 196 {\greekDelta} % 0394 GREEK CAPITAL LETTER DELTA \defineactivetoken 197 {\greekEpsilon} % 0395 GREEK CAPITAL LETTER EPSILON \defineactivetoken 198 {\greekZeta} % 0396 GREEK CAPITAL LETTER ZETA \defineactivetoken 199 {\greekEta} % 0397 GREEK CAPITAL LETTER ETA \defineactivetoken 200 {\greekTheta} % 0398 GREEK CAPITAL LETTER THETA \defineactivetoken 201 {\greekIota} % 0399 GREEK CAPITAL LETTER IOTA \defineactivetoken 202 {\greekKappa} % 039A GREEK CAPITAL LETTER KAPPA \defineactivetoken 203 {\greekLambda} % 039B GREEK CAPITAL LETTER LAMDA \defineactivetoken 204 {\greekMu} % 039C GREEK CAPITAL LETTER MU \defineactivetoken 205 {\greekNu} % 039D GREEK CAPITAL LETTER NU \defineactivetoken 206 {\greekXi} % 039E GREEK CAPITAL LETTER XI \defineactivetoken 207 {\greekOmicron} % 039F GREEK CAPITAL LETTER OMICRON \defineactivetoken 208 {\greekPi} % 03A0 GREEK CAPITAL LETTER PI \defineactivetoken 209 {\greekRho} % 03A1 GREEK CAPITAL LETTER RHO \defineactivetoken 210 {\unknownchar} % \defineactivetoken 211 {\greekSigma} % 03A3 GREEK CAPITAL LETTER SIGMA \defineactivetoken 212 {\greekTau} % 03A4 GREEK CAPITAL LETTER TAU \defineactivetoken 213 {\greekUpsilon} % 03A5 GREEK CAPITAL LETTER UPSILON \defineactivetoken 214 {\greekPhi} % 03A6 GREEK CAPITAL LETTER PHI \defineactivetoken 215 {\greekChi} % 03A7 GREEK CAPITAL LETTER CHI \defineactivetoken 216 {\greekPsi} % 03A8 GREEK CAPITAL LETTER PSI \defineactivetoken 217 {\greekOmega} % 03A9 GREEK CAPITAL LETTER OMEGA \defineactivetoken 218 {\greekIotadialytika} % 03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA \defineactivetoken 219 {\greekUpsilondialytika} % 03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA \defineactivetoken 220 {\greekalphatonos} % 03AC GREEK SMALL LETTER ALPHA WITH TONOS \defineactivetoken 221 {\greekepsilontonos} % 03AD GREEK SMALL LETTER EPSILON WITH TONOS \defineactivetoken 222 {\greeketatonos} % 03AE GREEK SMALL LETTER ETA WITH TONOS \defineactivetoken 223 {\greekiotatonos} % 03AF GREEK SMALL LETTER IOTA WITH TONOS \defineactivetoken 224 {\greekupsilondialytikatonos} % 03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS \defineactivetoken 225 {\greekalpha} % 03B1 GREEK SMALL LETTER ALPHA \defineactivetoken 226 {\greekbeta} % 03B2 GREEK SMALL LETTER BETA \defineactivetoken 227 {\greekgamma} % 03B3 GREEK SMALL LETTER GAMMA \defineactivetoken 228 {\greekdelta} % 03B4 GREEK SMALL LETTER DELTA \defineactivetoken 229 {\greekepsilon} % 03B5 GREEK SMALL LETTER EPSILON \defineactivetoken 230 {\greekzeta} % 03B6 GREEK SMALL LETTER ZETA \defineactivetoken 231 {\greeketa} % 03B7 GREEK SMALL LETTER ETA \defineactivetoken 232 {\greektheta} % 03B8 GREEK SMALL LETTER THETA \defineactivetoken 233 {\greekiota} % 03B9 GREEK SMALL LETTER IOTA \defineactivetoken 234 {\greekkappa} % 03BA GREEK SMALL LETTER KAPPA \defineactivetoken 235 {\greeklambda} % 03BB GREEK SMALL LETTER LAMDA \defineactivetoken 236 {\greekmu} % 03BC GREEK SMALL LETTER MU \defineactivetoken 237 {\greeknu} % 03BD GREEK SMALL LETTER NU \defineactivetoken 238 {\greekxi} % 03BE GREEK SMALL LETTER XI \defineactivetoken 239 {\greekomicron} % 03BF GREEK SMALL LETTER OMICRON \defineactivetoken 240 {\greekpi} % 03C0 GREEK SMALL LETTER PI \defineactivetoken 241 {\greekrho} % 03C1 GREEK SMALL LETTER RHO \defineactivetoken 242 {\greekfinalsigma} % 03C2 GREEK SMALL LETTER FINAL SIGMA \defineactivetoken 243 {\greeksigma} % 03C3 GREEK SMALL LETTER SIGMA \defineactivetoken 244 {\greektau} % 03C4 GREEK SMALL LETTER TAU \defineactivetoken 245 {\greekupsilon} % 03C5 GREEK SMALL LETTER UPSILON \defineactivetoken 246 {\greekphi} % 03C6 GREEK SMALL LETTER PHI \defineactivetoken 247 {\greekchi} % 03C7 GREEK SMALL LETTER CHI \defineactivetoken 248 {\greekpsi} % 03C8 GREEK SMALL LETTER PSI \defineactivetoken 249 {\greekomega} % 03C9 GREEK SMALL LETTER OMEGA \defineactivetoken 250 {\greekiotadialytika} % 03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA \defineactivetoken 251 {\greekupsilondiaeresis} % 03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA \defineactivetoken 252 {\greekomicrontonos} % 03CC GREEK SMALL LETTER OMICRON WITH TONOS \defineactivetoken 253 {\greekupsilontonos} % 03CD GREEK SMALL LETTER UPSILON WITH TONOS \defineactivetoken 254 {\greekomegatonos} % 03CE GREEK SMALL LETTER OMEGA WITH TONOS \defineactivetoken 255 {\unknownchar} % \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/norm-ptx.mkii0000644000175000017500000001657314536300610024753 0ustar hillehille%D \module %D [ file=norm-ptx, %D version=2009.03.19, %D title=\CONTEXT\ Norm Macros, %D subtitle=\PDFTEX, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Eventually most of these will be disabled in \MKIV. \let \normalefcode = \efcode \let \normalexpanded = \expanded \let \normalifincsname = \ifincsname \let \normalifpdfabsdim = \ifpdfabsdim \let \normalifpdfabsnum = \ifpdfabsnum \let \normalifpdfprimitive = \ifpdfprimitive \let \normalleftmarginkern = \leftmarginkern \let \normalletterspacefont = \letterspacefont \let \normallpcode = \lpcode \let \normalpdfadjustspacing = \pdfadjustspacing \let \normalpdfannot = \pdfannot \let \normalpdfcatalog = \pdfcatalog \let \normalpdfcolorstack = \pdfcolorstack \let \normalpdfcolorstackinit = \pdfcolorstackinit \let \normalpdfcompresslevel = \pdfcompresslevel \let \normalpdfcopyfont = \pdfcopyfont \let \normalpdfcreationdate = \pdfcreationdate \let \normalpdfdecimaldigits = \pdfdecimaldigits \let \normalpdfdest = \pdfdest \let \normalpdfdestmargin = \pdfdestmargin \let \normalpdfdraftmode = \pdfdraftmode \let \normalpdfeachlinedepth = \pdfeachlinedepth \let \normalpdfeachlineheight = \pdfeachlineheight \let \normalpdfendlink = \pdfendlink \let \normalpdfendthread = \pdfendthread \let \normalpdffirstlineheight = \pdffirstlineheight \let \normalpdffontattr = \pdffontattr \let \normalpdffontexpand = \pdffontexpand \let \normalpdffontname = \pdffontname \let \normalpdffontobjnum = \pdffontobjnum \let \normalpdffontsize = \pdffontsize \let \normalpdfforcepagebox = \pdfforcepagebox % obsolete \let \normalpdfgamma = \pdfgamma \let \normalpdfgentounicode = \pdfgentounicode \let \normalpdfglyphtounicode = \pdfglyphtounicode \let \normalpdfhorigin = \pdfhorigin \let \normalpdfignoreddimen = \pdfignoreddimen \let \normalpdfimageapplygamma = \pdfimageapplygamma \let \normalpdfimagegamma = \pdfimagegamma \let \normalpdfimagehicolor = \pdfimagehicolor \let \normalpdfimageresolution = \pdfimageresolution \let \normalpdfincludechars = \pdfincludechars \let \normalpdfinclusioncopyfonts = \pdfinclusioncopyfonts \let \normalpdfinclusionerrorlevel = \pdfinclusionerrorlevel \let \normalpdfinfo = \pdfinfo \let \normalpdfinsertht = \pdfinsertht \let \normalpdflastannot = \pdflastannot \let \normalpdflastlinedepth = \pdflastlinedepth \let \normalpdflastlink = \pdflastlink \let \normalpdflastobj = \pdflastobj \let \normalpdflastxform = \pdflastxform \let \normalpdflastximage = \pdflastximage \let \normalpdflastximagecolordepth = \pdflastximagecolordepth \let \normalpdflastximagepages = \pdflastximagepages \let \normalpdflastxpos = \pdflastxpos \let \normalpdflastypos = \pdflastypos \let \normalpdflinkmargin = \pdflinkmargin \let \normalpdfliteral = \pdfliteral \let \normalpdfmapfile = \pdfmapfile \let \normalpdfmapline = \pdfmapline \let \normalpdfminorversion = \pdfminorversion \let \normalpdfmovechars = \pdfmovechars % obsolete \let \normalpdfnames = \pdfnames \let \normalpdfnoligatures = \pdfnoligatures \let \normalpdfnormaldeviate = \pdfnormaldeviate \let \normalpdfobj = \pdfobj \let \normalpdfobjcompresslevel = \pdfobjcompresslevel \let \normalpdfoptionalwaysusepdfpagebox = \pdfoptionalwaysusepdfpagebox % obsolete \let \normalpdfoptionpdfinclusionerrorlevel = \pdfoptionpdfinclusionerrorlevel % obsolete \let \normalpdfoptionpdfminorversion = \pdfoptionpdfminorversion \let \normalpdfoutline = \pdfoutline \let \normalpdfoutput = \pdfoutput \let \normalpdfpageattr = \pdfpageattr \let \normalpdfpagebox = \pdfpagebox \let \normalpdfpageheight = \pdfpageheight \let \normalpdfpageref = \pdfpageref \let \normalpdfpageresources = \pdfpageresources \let \normalpdfpagesattr = \pdfpagesattr \let \normalpdfpagewidth = \pdfpagewidth \let \normalpdfpkmode = \pdfpkmode \let \normalpdfpkresolution = \pdfpkresolution \let \normalpdfprimitive = \pdfprimitive \let \normalpdfprotrudechars = \pdfprotrudechars \let \normalpdfpxdimen = \pdfpxdimen \let \normalpdfrandomseed = \pdfrandomseed \let \normalpdfrefobj = \pdfrefobj \let \normalpdfrefxform = \pdfrefxform \let \normalpdfrefximage = \pdfrefximage \let \normalpdfreplacefont = \pdfreplacefont \let \normalpdfrestore = \pdfrestore \let \normalpdfretval = \pdfretval \let \normalpdfsave = \pdfsave \let \normalpdfsavepos = \pdfsavepos \let \normalpdfsetmatrix = \pdfsetmatrix \let \normalpdfsetrandomseed = \pdfsetrandomseed \let \normalpdfstartlink = \pdfstartlink \let \normalpdfstartthread = \pdfstartthread \let \normalpdftexbanner = \pdftexbanner \let \normalpdftexrevision = \pdftexrevision \let \normalpdftexversion = \pdftexversion \let \normalpdfthread = \pdfthread \let \normalpdfthreadmargin = \pdfthreadmargin \let \normalpdftracingfonts = \pdftracingfonts \let \normalpdftrailer = \pdftrailer \let \normalpdfuniformdeviate = \pdfuniformdeviate \let \normalpdfuniqueresname = \pdfuniqueresname \let \normalpdfvorigin = \pdfvorigin \let \normalpdfxform = \pdfxform \let \normalpdfxformname = \pdfxformname \let \normalpdfximage = \pdfximage \let \normalpdfximagebbox = \pdfximagebbox \let \normalquitvmode = \quitvmode \let \normalrightmarginkern = \rightmarginkern \let \normalrpcode = \rpcode \let \normaltagcode = \tagcode \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-002.mkii0000644000175000017500000000543614536300610024420 0ustar hillehille%D \module %D [ file=unic-002, %D version=2006.08.02, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 2, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startunicodevector 2 \expandafter\strippedcsname \ifcase\numexpr#1\relax \Adoublegrave \or \adoublegrave \or \Ainvertedbreve \or \ainvertedbreve \or \Edoublegrave \or \edoublegrave \or \Einvertedbreve \or \einvertedbreve \or \Idoublegrave \or \idoublegrave \or \Iinvertedbreve \or \iinvertedbreve \or \Odoublegrave \or \odoublegrave \or \Oinvertedbreve \or \oinvertedbreve \or \Rdoublegrave \or \rdoublegrave \or \Rinvertedbreve \or \rinvertedbreve \or \Udoublegrave \or \udoublegrave \or \Uinvertedbreve \or \uinvertedbreve \or \Scommaaccent \or \scommaaccent \or \Tcommaaccent \or \tcommaaccent \or \unknownchar \or % Yogh \unknownchar \or % yogh \Hcaron \or \hcaron \or \unknownchar \or % n with long right leg \dcurl \or \unknownchar \or % Ou \unknownchar \or % ou \Zhook \or \zhook \or \Adotaccent \or \adotaccent \or \Ecedilla \or \ecedilla \or \Odiaeresismacron \or \odiaeresismacron \or \Otildemacron \or \otildemacron \or \Odotaccent \or \odotaccent \or \Odotaccentmacron \or \odotaccentmacron \or \Ymacron \or \ymacron \or \lcurl \or \ncurl \or \tcurl \or \dotlessj \or \unknownchar \or % db digraph \unknownchar \or % qp digraph \Astroke \or \Cstroke \or \cstroke \or \Lbar \else \ifcase\numexpr#1-83\relax \bhook \or \unknownchar \or % open o \ccurl \or \dtail \or \dhook \or \unknownchar \or % reversed e \schwa \or \schwahook \else \ifcase\numexpr#1-198\relax \textcircumflex \or \textcaron \else \ifcase\numexpr#1-216\relax \textbreve \or \textdotaccent \or \textring \or \textogonek \or \texttilde \or \texthungarumlaut \else \unknownchar \fi\fi\fi\fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/colo-hex.mkii0000644000175000017500000000715214536300610024676 0ustar hillehille%D \module %D [ file=colo-hex, %D version=2004.06.23, %D title=\CONTEXT\ Color Macros, %D subtitle=Hex Colors, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \ifdefined \hexcolorprefix \expandafter \endinput \fi \writestatus{loading}{ConTeXt Color Macros / Hexadecimal} % \edef\testcolor{\string#FFC0C0} % \edef\testcolor{\string#55} % % \setupcolors[state=start] % % \expanded{\definecolor[thehexcolor][\hexcolorspec\testcolor]} % % \checkhexcolor[\testcolor] % % \definecolor[thehexcolor][\testcolor] % % \starttext % % test \color[thehexcolor]{rood} % test \color[red]{rood} % test \color[\testcolor]{rood} % % \stoptext \unprotect % \definecolor[rgbtestcolor] [r=0.87843,g=0.87451,b=0.89020] % RGB(224,223,227) % \definecolor[hextestcolor] [h=E0DFE3] % % \startMPpage % path p ; % example by Peter Rolf % p := unitsquare xyscaled(5cm,5cm) ; % fill (point 0 of p -- point 1 of p -- point 2 of p --cycle) withcolor \MPcolor{rgbtestcolor} ; % bottom right part of the square % fill (point 0 of p -- point 3 of p -- point 2 of p --cycle) withcolor \MPcolor{hextestcolor} ; % top left part % \stopMPpage \newdimen\hexcolorfraction \hexcolorfraction=\dimexpr1pt/255\relax \chardef\hexcolorprefix=`# \def\hexcolorspec #1{\expandafter\dohexcolorspec #1\empty\empty\empty\empty\relax} \def\hexcolorpattern#1{\expandafter\dohexcolorpattern#1\empty\empty\empty\empty\relax} \ifx\dohexstringtonumber\undefined \def\dohexstringtonumber{"} \fi \def\hexcolorcomponent#1#2% {\ifnum\dohexstringtonumber#1#2=\zerocount0\else\ifnum\dohexstringtonumber#1#2=\plusone1\else \expandafter\withoutpt\the\dimexpr\dohexstringtonumber#1#2\hexcolorfraction\relax \fi\fi} \def\dohexcolorspec#1#2#3#4#5#6#7#8\relax {\ifx#4\empty s=\hexcolorcomponent#2#3% \else r=\hexcolorcomponent#2#3,g=\hexcolorcomponent#4#5,b=\hexcolorcomponent#6#7% \fi} \def\dohexcolorpattern#1#2#3#4#5#6#7#8\relax {0\ifx#4\empty S:\hexcolorcomponent#2#3% \else R:\hexcolorcomponent#2#3:\hexcolorcomponent#4#5:\hexcolorcomponent#6#7% \fi:0:0} \def\doifhexcolorelse#1% {\expandafter\dodoifhexcolorelse#10\od} % 0 is a dirty trick to catch an empty #1 \def\dodoifhexcolorelse#1#2\od {\ifnum`#1=\hexcolorprefix \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\docheckhexcolor#1% {\doifhexcolorelse{#1}{\doifundefined{#1}{\setxvalue{\??cr#1}{\hexcolorpattern{#1}}}}\donothing} \def\checkhexcolor[#1]% {\expanded{\docheckhexcolor{#1}}} \def\colorHpattern{\@EA\hexcolorpattern\@EA{\@EA*\@@cl@@h}} % * == dummy placeholder \let\dodododefinecolor\dododefinecolor % we will overload this one \def\dododefinecolor#1#2#3#4[#5][#6]% {\doifhexcolorelse{#6} {\setxvalue{\??cr#5}{\hexcolorpattern{#6}}} {\dodododefinecolor#1#2#3#4[#5][#6]}} %D For Adam Lindsay and his XeTeX special driver: % because we intercept the zero condition, the .23pt in 1.23pt will disappear in the % ifcase zero part branch \def\colorhexcomponent#1% {\ifdim#1\points<.005\points 00\else\lchexnumbers{\the\dimexpr255\dimexpr#1\points\relax+.5\points\relax}% \fi} % the faster one \newdimen\hex@color@a \hex@color@a=.005pt \newdimen\hex@color@b \hex@color@b=.5pt \chardef \hex@color@c =255 \def\colorhexcomponent#1% {\ifdim#1\points<\hex@color@a 00\else\lchexnumbers{\the\dimexpr#1\points*\hex@color@c+\hex@color@b\relax}% \fi} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/tabl-pln.mkii0000644000175000017500000000456514536300610024676 0ustar hillehille%D The following bunch of macros come from plain \TEX\ by %D Don Knuth and deal with basic alignment. We just include %D them here so that they can be used if needed. Normally, %D \CONTEXT\ users will fall back on one of the three table %D environments. %D %D The hidden names are somewhat adapted and we use other %D local variables. \writestatus{loading}{ConTeXt Table Macros / Plain Tabular} \unprotect \newif \if@@plnusetab \newif \if@@plncr \newbox \@@plntabs \newbox \@@plntabsyet \newbox \@@plntabsdone \newdimen \@@plntabdimen \def\cleartabs % visible {\global\setbox\@@plntabsyet\null \setbox\@@plntabs\null} \def\settabs % visible {\setbox\@@plntabs\null \futurelet\next\@@plnsettabs} \def\tabalign % visible {\@@plnusetabtrue\@@plnmaketabbox} \let\+\tabalign % no outer here (can be overloaded) \def\@@plnsettabs {\ifx\next\+% \def\nxt{\afterassignment\@@plnsettab\let\nxt}% \else \let\nxt\@@plnsetcols \fi \let\next\relax \nxt} \def\@@plnsettab {\let\nxt\relax \@@plnusetabfalse\@@plnmaketabbox} \def\@@plnsetcols#1\columns {\scratchcounter#1% \@@plntabdimen\hsize \loop \ifnum\scratchcounter>\zerocount \@nother \repeat} \def\@nother {\scratchdimen\@@plntabdimen \divide\scratchdimen\scratchcounter \setbox\@@plntabs\hbox{\hbox to\scratchdimen{}\unhbox\@@plntabs}% \advance\@@plntabdimen-\scratchdimen \advance\scratchcounter\minusone} \def\@@plnmaketabbox {\begingroup \global\setbox\@@plntabsyet\copy\@@plntabs \global\setbox\@@plntabsdone\null \def\cr {\@@plncrtrue\crcr\egroup\egroup \if@@plnusetab\unvbox\zerocount\lastbox\fi\endgroup \setbox\@@plntabs\hbox{\unhbox\@@plntabsyet\unhbox\@@plntabsdone}}% \setbox\zerocount\vbox\bgroup\@@plncrfalse \ialign\bgroup&\@@plnbegintabbox##\@@plnendtabbox\crcr} \def\@@plnbegintabbox {\setbox\zerocount\hbox\bgroup} \def\@@plnendtabbox {\if@@plncr \egroup % now \box\zerocount holds the column \else \hss\egroup \global\setbox\@@plntabsyet\hbox {\unhbox\@@plntabsyet\global\setbox\plusone\lastbox}% now \box\plusone holds its size \ifvoid\plusone \global\setbox\plusone\hbox to\wd\zerocount{}% \else \setbox\zerocount\hbox to\wd\plusone{\unhbox\zerocount}% \fi \global\setbox\@@plntabsdone\hbox{\box\plusone\unhbox\@@plntabsdone}% \fi \box\zerocount} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/symb-eur.mkii0000644000175000017500000000457114536300610024725 0ustar hillehille%D \module %D [ file=symb-eur, %D version=2000.06.22, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Adobe Euro Symbols, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \loadmapfile [original-adobe-euro.map] \definefontsynonym [EuroSerif] [eurose] \definefontsynonym [EuroSerifBold] [euroseb] \definefontsynonym [EuroSerifItalic] [eurosei] \definefontsynonym [EuroSerifSlanted] [eurosei] \definefontsynonym [EuroSerifBoldItalic] [eurosebi] \definefontsynonym [EuroSerifBoldSlanted] [eurosebi] \definefontsynonym [EuroSans] [eurosa] \definefontsynonym [EuroSansBold] [eurosab] \definefontsynonym [EuroSansItalic] [eurosai] \definefontsynonym [EuroSansSlanted] [eurosai] \definefontsynonym [EuroSansBoldItalic] [eurosabi] \definefontsynonym [EuroSansBoldSlanted] [eurosabi] \definefontsynonym [EuroMono] [euromo] \definefontsynonym [EuroMonoBold] [euromob] \definefontsynonym [EuroMonoSlanted] [euromoi] \definefontsynonym [EuroMonoItalic] [euromoi] \definefontsynonym [EuroMonoBoldItalic] [euromobi] \definefontsynonym [EuroMonoBoldSlanted] [euromobi] \definesymbol [euro] [\getglyph{Euro}{\char160}] \startencoding[default] \definecharacter texteuro {\symbol[euro]} \stopencoding \unexpanded\def\euro{\doiftextelse\texteuro\texteuro{\symbol[euro]}} % ok for one font series, but not for mixed sets % % \unexpanded\def\euro % {\doiftextelse \texteuro \texteuro % {\unexpanded\def\euro{\symbol[euro]}\euro} %D The next table shows the complete set of symbols: %D %D \starttabulate[|l|c|c|c|c|c|c|] %D \NC \NC \tex{tf} \NC \tex{bf} \NC \tex{sl} %D \NC \tex{it} \NC \tex{bs} \NC \tex{bi} \NC\NR %D \NC \rm Serif \NC \rm\tf\euro \NC \rm\bf\euro \NC \rm\sl\euro %D \NC \rm\it\euro \NC \rm\bs\euro \NC \rm\bi\euro \NC\NR %D \NC \ss Sans \NC \ss\tf\euro \NC \ss\bf\euro \NC \ss\sl\euro %D \NC \ss\it\euro \NC \ss\bs\euro \NC \ss\bi\euro \NC\NR %D \NC \tt Mono \NC \tt\tf\euro \NC \tt\bf\euro \NC \tt\sl\euro %D \NC \tt\it\euro \NC \tt\bs\euro \NC \tt\bi\euro \NC\NR %D \stoptabulate \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-mat.mkii0000644000175000017500000023772714536300610024727 0ustar hillehille%D \module %D [ file=strc-mat, %D version=2006.03.27, % 1998.12.07 %D title=\CONTEXT\ Structure Macros, %D subtitle=Math Fundamentals, %D author={Hans Hagen, Taco Hoekwater \& Aditya Mahajan}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % engels maken \writestatus{loading}{ConTeXt Structure Macros / Math Fundamentals} \unprotect % \startlines % $\mathopnolimits{\rm d}x$ % $\mathopnolimits{\kern\zeropoint \rm d}x$ % $\puremathcomm{nolop}{\rm d}x$ % $\puremathcomm{nolop}{\kern\zeropoint\rm d}x$ % \blank % $\puremathcomm{nolop}{\mr d}x$ % $\puremathcomm{nolop}{\kern\zeropoint\mr d}x$ % $\mathop{\kern\zeropoint\mr d}x$ % $\mathopnolimits{\kern\zeropoint d}x$ % \stoplines % \definemessageconstant{math} % % messages moved % \def\invalidmathcommand#1{\showmessage\m!math1{#1}} % \appendtoks % \def\eqno {\invalidmathcommand{\string\eqno }}% % \def\leqno{\invalidmathcommand{\string\leqno}}% % \to \everydisplay % \appendtoks % \let\eqno\normaleqno % \let\leqno\normaleqno % \to \everymath % \placeformula\startformula % H(K|M,C) = H(K|C) - H(M|C)\eqno{\hbox{(\in{}[eq:keyapp])}} % \stopformula \unexpanded\def\mathortext {\ifmmode \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} % \defineactivecharacter _ {\mathortext{_}{\_}} text_text $a^2$ % force text mode, will be overloaded later \ifx\text\undefined \let\text\hbox \fi \newdimen\lastlinewidth % does not work at all % % \def\setlastlinewidth % {\resetlastlinewidth % \ifmmode\else\ifhmode\else\ifoptimizedisplayspacing % \bgroup % \forgetdisplayskips % $$\global\lastlinewidth\predisplaysize$$ % \vskip-\baselineskip % \egroup % \fi\fi\fi} % test \par \dorecurse{10}{test } \moveformula \startformula test \stopformula test \endgraf % test \par \dorecurse{10}{test } \startformula test \stopformula test \endgraf % \dorecurse{30}{\bpar \dorecurse\recurselevel{test } \epar \startformula formula \stopformula} \def\setlastlinewidth {\resetlastlinewidth \ifoptimizedisplayspacing\ifmmode\else\ifhmode \bgroup \forgetdisplayskips \displaywidowpenalty\widowpenalty % brrr, else widowpenalty does not work \everymath \emptytoks \everydisplay\emptytoks $$\strut\global\lastlinewidth\predisplaysize$$ \vskip-\lineheight \vskip\zeropoint \egroup \fi\fi\fi} \def\resetlastlinewidth {\global\lastlinewidth\zeropoint\relax} % not here: \appendtoks \setlastlinewidth \to \everyendofpar %D moved from main-001 %\def\EveryMathPar{\EveryPar} % %\newevery \everymath \EveryMath \abovedisplayskip = \zeropoint \abovedisplayshortskip = \zeropoint % evt. 0pt minus 3pt \belowdisplayskip = \zeropoint \belowdisplayshortskip = \zeropoint % evt. 0pt minus 3pt \predisplaypenalty = \zerocount \postdisplaypenalty = \zerocount % -5000 gaat mis, zie penalty bij \paragraaf % we don't use the skip's \def\displayskipsize#1#2% obsolete {\ifdim\ctxparskip>\zeropoint #1\ctxparskip\!!plus#2\ctxparskip\!!minus#2\ctxparskip\relax \else #1\lineheight\!!plus#2\lineheight\!!minus#2\lineheight\relax \fi} \def\displayskipfactor {1.0} % obsolete \def\displayshortskipfactor {0.8} % obsolete \def\displayskipgluefactor {0.3} % obsolete \def\displayshortskipgluefactor {0.2} % obsolete \def\abovedisplayskipsize% obsolete {\displayskipsize\displayskipfactor\displayskipgluefactor} \def\belowdisplayskipsize% obsolete {\displayskipsize\displayskipfactor\displayskipgluefactor} \def\abovedisplayshortskipsize% obsolete {\displayskipsize\displayshortskipfactor\displayshortskipgluefactor} \def\belowdisplayshortskipsize% obsolete {\displayskipsize\displayshortskipfactor\displayshortskipgluefactor} \def\forgetdisplayskips % to do {\abovedisplayskip \zeropoint \belowdisplayskip \zeropoint \abovedisplayshortskip\zeropoint \belowdisplayshortskip\zeropoint} \definenumber % \definelabel [\v!formula] [\c!text=\v!formula, \c!way=\@@fmway, \c!blockway=\@@fmblockway, \c!location=\v!intext, \c!conversion=\@@fmconversion] \def\setupformulas {\dodoubleargument\getparameters[\??fm]} \newconditional\handleformulanumber \newconditional\incrementformulanumber \def\formuladistance{\formulaparameter\c!distance} \def\doformulareference#1#2% {\doifsomething{#1}{\doifnotinset{#1}{+,-}{\rawreference\s!for{#1}{#2}}}} \def\dododoformulanumber#1#2#3#4% (#1,#2)=outer(ref,sub) (#3,#4)=inner(ref,sub) {\hbox\bgroup \ifconditional\handleformulanumber \ifconditional\incrementformulanumber \incrementnumber[\v!formula]% \fi \makesectionnumber[\v!formula]% \setbox0\hbox{\ignorespaces#2\unskip}% \ifdim\wd0>\zeropoint \edef\hetsubnummer{\@@fnseparator#2}%AM: was \edef\hetsubnummer{#2}% \else \let\hetsubnummer\empty \fi \doformulareference{#1}{\composedsectionnumber\hetsubnummer}% \setbox0\hbox{\ignorespaces#4\unskip}% \ifdim\wd0>\zeropoint \edef\hetsubnummer{\@@fnseparator#4}%AM: was \edef\hetsubnummer{#4}% \fi \doformulareference{#3}{\composedsectionnumber\hetsubnummer}% \doflushformulalistentry{\composedsectionnumber\hetsubnummer}% \rm % nodig ? \doif{\formulaparameter\c!location}\v!right{\hskip\formuladistance}% \@@fmnumbercommand {\dostartattributes\??fm\c!numberstyle\c!numbercolor \strut \@@fmleft \preparefullnumber\??fm\composedsectionnumber\preparednumber \labeltexts\v!formula {\ignorespaces\preparednumber\ignorespaces\hetsubnummer\unskip}% \@@fmright \dostopattributes}% \doif{\formulaparameter\c!location}\v!left{\hskip\formuladistance}% \fi \egroup} \def\dodoformulanumber[#1][#2][#3]% {\doquadruplegroupempty\dododoformulanumber{#1}{#2}{#3}} \def\doformulanumber {\dotripleempty\dodoformulanumber} \setvalue{\e!start\v!formula}{\dostartformula{}} \setvalue{\e!stop \v!formula}{\dostopformula} \def\definieerformule {\dodoubleempty\dodefinieerformule} \def\dodefinieerformule[#1][#2]% {\doifsomething{#1} {\copyparameters [\??fm#1][\??fm] [\c!spacebefore,\c!spaceafter,\c!grid, \c!leftmargin,\c!rightmargin,\c!margin, \c!indentnext,\c!alternative, \c!strut,\c!align,\c!distance]% \setupformulas[#1][#2]% \setvalue{\e!start#1\v!formula}{\dostartformula{#1}}% \setvalue{\e!stop #1\v!formula}{\dostopformula}}} \newtoks \everysetupformulas \relax % we need a hook for extensions in modules \def\setupformulas {\dodoubleempty\dosetupformulas} \def\dosetupformulas[#1][#2]% {\ifsecondargument \getparameters[\??fm#1][#2]% \else \getparameters[\??fm][#1]% \fi \the\everysetupformulas} \def\formulaparameter#1% {\csname\??fm\currentformula#1\endcsname} \setupformulas [\c!way=\@@nrway, \c!blockway=, \c!sectionnumber=\@@nrsectionnumber, \c!conversion=\v!numbers, \c!location=\v!right, \c!left=(, \c!right=), \c!spacebefore=, \c!spaceafter=\@@fmspacebefore, \c!leftmargin=\!!zeropoint, \c!rightmargin=\!!zeropoint, \c!margin=, \c!indentnext=\v!no, \c!alternative=\s!default, \c!align=, \c!strut=\v!no, \c!separator=\@@koseparator, \c!distance=1em] \def\currentformula {} \def\predisplaysizethreshhold{2em} % was 3em \def\leftdisplayskip {\leftskip} \def\rightdisplayskip {\rightskip} \def\leftdisplaymargin {\formulaparameter\c!leftmargin} \def\rightdisplaymargin {\formulaparameter\c!rightmargin} \def\displaygridsnapping{\formulaparameter\c!grid} \def\beforedisplayspace {\doifnot{\formulaparameter\c!spacebefore}\v!none{\blank[\formulaparameter\c!spacebefore]}} \def\afterdisplayspace {\doifnot{\formulaparameter\c!spaceafter }\v!none{\blank[\formulaparameter\c!spaceafter ]}} \def\setpredisplaysize#1% {\predisplaysize#1\relax \ifdim\predisplaysize<\maxdimen \ifdim\predisplaysize>\zeropoint \advance\predisplaysize \predisplaysizethreshhold \fi \advance\predisplaysize \displayindent % needed ? \ifdim\predisplaysize>\hsize \predisplaysize\hsize \fi \else \predisplaysize\zeropoint \fi} \def\setdisplaydimensions {\displayindent\leftdisplayskip \advance\displayindent\leftdisplaymargin \displaywidth\hsize % \setlocalhsize % \displaywidth\localhsize \ifdim\hangindent>\zeropoint \advance\displayindent\hangindent \else \advance\displaywidth\hangindent \fi \advance\displaywidth-\displayindent \advance\displaywidth-\rightdisplayskip \advance\displaywidth-\rightdisplaymargin \hsize\displaywidth} % new, else overfull in itemize \newif\ifoptimizedisplayspacing \def\dostartformula#1% {\dodoubleempty\dodostartformula[#1]} \newskip\formulaparskip \newskip\formulastrutht \newskip\formulastrutdp % hm, invoke otr in hmode in order to move skips to mvl, could be an option %D \startbuffer %D \startformula[9pt] x = 1 \stopformula %D \startformula[7pt] x = 1 \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer \def\dodostartformula[#1][#2]% setting leftskip adaption is slow ! {% todo: test first % % \ifdim\lastskip>\zeropoint % \resetlastlinewidth % else problems with in between stuff without \epar % \fi \bgroup % HERE \the\everybeforedisplayformula \formulaparskip\parskip \formulastrutdp\strutdepth \formulastrutht\strutheight \switchtoformulabodyfont[#2]% \parskip\formulaparskip \def\currentformula{#1}% % may look better in itemizations \doif{\formulaparameter\c!option}\v!middle {\def\leftdisplayskip{\zeropoint}% \def\rightdisplayskip{\zeropoint}}% % this was an experiment \doifsomething{\formulaparameter\c!margin}% so we test first {\dosetleftskipadaption{\formulaparameter\c!margin}% \edef\leftdisplaymargin{\the\leftskipadaption}}% overloaded \long\def\dostartformula##1{\bgroup\let\dostopformula\egroup}% \freezedimenmacro\leftdisplayskip \freezedimenmacro\rightdisplayskip \freezedimenmacro\leftdisplaymargin \freezedimenmacro\rightdisplaymargin \freezedimenmacro\predisplaysizethreshhold \forgetdisplayskips \ifoptimizedisplayspacing \ifdim\lastlinewidth>\zeropoint \abovedisplayshortskip-\strutht\relax \fi \else \resetlastlinewidth \fi \getvalue{\e!start\formulaparameter\c!alternative\v!formula}} \def\switchtoformulabodyfont{\switchtobodyfont} \setvalue{\v!formula}{\dosingleempty\doformula} \def\doformula[#1]#2% {\begingroup \switchtoformulabodyfont[#1]% % not : \def\doformula[##1]##2{\mathematics{##2}}% \mathematics{#2}% \endgroup} \let\doplaceformulanumber\empty \def\dostopformula {\doplaceformulanumber \getvalue{\e!stop\formulaparameter\c!alternative\v!formula}% \resetlastlinewidth \nonoindentation \dochecknextindentation{\??fm\currentformula}% \egroup \hangafter\minusone % added for side floats \hangindent\zeropoint % added for side floats \setfalse\handleformulanumber \dorechecknextindentation} % here ? \newif\ifinformula \def\startdisplaymath {\ifgridsnapping \beforedisplayspace \snapmathtogrid\vbox \bgroup \informulatrue %\forgetall % breaks side floats \else \bgroup \parskip\formulaparskip % ! ! \informulatrue %\forgetall % otherwise backgrounds fail \ifdim\lastskip<\zeropoint\else \par \ifvmode \ifdim\parskip>\zeropoint\relax \whitespace \vskip-\parskip % kind of forces and cancels again \fi \fi \fi \doif\displaygridcorrection{-\v!top}{\kern-\strutht}% new, currently only option/default \beforedisplayspace \par \ifvmode \ifindentfirstparagraph % tricky, probably needs more testing \prevdepth-\maxdimen % texbook pagina 79-80 % otherwise problems at the top of a page, don't remove: \verticalstrut \vskip-\struttotal \vskip-\baselineskip \fi \fi \fi $$\setdisplaydimensions \setpredisplaysize\lastlinewidth \startinnermath} \def\stopdisplaymath {\stopinnermath $$% \ifgridsnapping \egroup \afterdisplayspace \else \par\ifvmode\ifdim\parskip>\zeropoint\whitespace\vskip-\parskip\fi\fi \afterdisplayspace \egroup \fi \globallet\displaylinecorrection\empty \gdef\displaygridcorrection{\displaygridsnapping}} \newif\ifclipdisplaymath \clipdisplaymathtrue \def\displaymathclipfactor{1.1} \def\snapmathtogrid % to do \dp {\dowithnextbox {\bgroup \donefalse \ifclipdisplaymath \ifdim\nextboxht<\displaymathclipfactor\lineheight \donetrue \fi \fi \ifdone \nextboxht\lineheight \else \getnoflines\nextboxht \setbox\nextbox\vbox to \noflines\lineheight {\vfill\flushnextbox\vfill}% \setbox\nextbox\hbox{\lower\strutdepth\flushnextbox}% \fi \snaptogrid[\displaygridcorrection]\hbox{\flushnextbox}% \egroup}} \def\displaygridcorrection{\displaygridsnapping} \let\displaygridcorrection\empty \def\moveformula {\dosingleempty\domoveformula} \def\domoveformula[#1]% brr gaat mogelijk fout {\iffirstargument \xdef\displaygridcorrection{#1}% \else \gdef\displaygridcorrection{-\v!top}% handy with short preline \fi \globallet\displaylinecorrection\displaygridcorrection} \let\startinnermath\empty \let\stopinnermath \empty \def\defineformulaalternative {\dotripleargument\dodefineformulaalternative} \def\dodefineformulaalternative[#1][#2][#3]% {\setvalue{\e!start#1\v!formula}{#2}% \setvalue{\e!stop #1\v!formula}{#3}} \defineformulaalternative[\s!default][\startdisplaymath][\stopdisplaymath] % sp = single line paragraph sd = single line display % mp = multi line paragraph md = multy line display \defineformulaalternative[single][\startdisplaymath][\stopdisplaymath] \defineformulaalternative[multi] [\startdisplaymath][\stopdisplaymath] \definieerformule [sp] [\c!spacebefore=\v!none,\c!spaceafter=\v!none, \c!indentnext=\v!no, \c!alternative=single] \definieerformule [sd] [\c!spacebefore=\v!none,\c!spaceafter=\v!none, \c!indentnext=\v!yes, \c!alternative=single] \definieerformule [mp] [\c!indentnext=\v!no, \c!alternative=multi] \definieerformule [md] [\c!indentnext=\v!yes, \c!alternative=multi] % \defineformulaalternative[multi][\begindmath][\enddmath] % % \fakewords{20}{40}\epar % \placeformula {a} $$ \fakespacingformula $$ % \fakewords{20}{40}\epar % \placeformula {b} \startformule \fakespacingformula \stopformule % \placeformula {b} \startformule \fakespacingformula \stopformule % \fakewords{20}{40}\epar % \placeformula {c} \startmdformule \fakespacingformula \stopmdformule % \placeformula {c} \startmdformule \fakespacingformula \stopmdformule % \fakewords{20}{40}\epar % \placeformula {d} \startmpformule \fakespacingformula \stopmpformule % \placeformula {d} \startmpformule \fakespacingformula \stopmpformule % \fakewords{20}{40}\epar % \placeformula {e} \startsdformule \fakespacingformula \stopsdformule % \placeformula {e} \startsdformule \fakespacingformula \stopsdformule % \fakewords{20}{40}\epar % \placeformula {f} \startspformule \fakespacingformula \stopspformule % \placeformula {f} \startspformule \fakespacingformula \stopspformule % \fakewords{20}{40} \def\placeformula {\settrue\incrementformulanumber \dodoubleempty\doplaceformula} \def\placesubformula {\setfalse\incrementformulanumber \dodoubleempty\doplaceformula} %D \macros %D {setupsubformulas, startsubformulas} %D %D New code (by Aditya Mahajan / cleaned up by HH, please check): % \setupsubformulas[conversion=romannumerals] % % \placeformula % \startsubformulas[Maxwell] % \startformulas % \startformula \startalign % \NC \nabla\cdot\bf E \NC = \frac{\rho}{\varepsilon_0} \NR[Maxwell 1] % \NC \nabla\times\bf E \NC = - \frac{\partial\bf B}{\partial t} \NR[Maxwell II] % \stopalign \stopformula % \startformula \startalign % \NC \nabla\cdot \bf B \NC = 0 \NR[Maxwell III] % \NC \nabla\times\bf B \NC = \mu_0{\bf j}+\varepsilon_0\mu_0\frac{\partial\bf E}{\partial t} \NR[Maxwell IV] % \stopalign \stopformula % \stopformulas % \stopsubformulas % % Maxwell : \in [Maxwell] and II : \in [Maxwell II] \def\setupsubformulas {\dodoubleargument\getparameters[\??fn]} \definenumber[\v!formula*] \def\subformulaconversion % #1 {\getnumber[\v!formula*]\@@fnseparator\convertnumber\@@fnconversion} % #1 \defineconversion[\v!subformula][\subformulaconversion] \def\startsubformulas {\dosingleempty\dostartsubformulas} \def\dostartsubformulas[#1]% {\incrementnumber[\v!formula]% \makesectionnumber[\v!formula]% \doflushformulalistentry{\composedsectionnumber}% \doformulareference{#1}\composedsectionnumber \expanded{\setupnumber [\v!formula*] [\c!start={\rawnumber[\v!formula]}, \c!way=\@@fmway, \c!conversion=\@@fmconversion]}% \bgroup \savenumber[\v!formula]% \setupformulas [\c!conversion=\v!subformula, \c!way=\v!by\v!text]% \resetnumber [\v!formula]} \def\stopsubformulas {\restorenumber[\v!formula]% \egroup \resetlastlinewidth \nonoindentation \dochecknextindentation\??fn \dorechecknextindentation} % here ? %D Named subformulas \def\startnamedsubformulas {\dosingleempty\dostartnamedsubformulas} \def\dostartnamedsubformulas[#1]#2% {\setformulalistentry{#2}% \startsubformulas[#1]} \def\stopnamedsubformulas {\stopsubformulas} \setupsubformulas [\c!conversion=\v!character, %\c!separator=\@@fmseparator, \c!separator=,% AM: for compatibility with \placesubformula \c!indentnext=\@@fmindentnext] %D Experimental goodie: %D %D \startbuffer %D \placelist[formula][criterium=text] \blank[2*big] %D \placenamedformula[one]{first} \startformula a = 1 \stopformula \endgraf %D \placeformula \startformula a = 2 \stopformula \endgraf %D \placenamedformula {second} \startformula a = 3 \stopformula \endgraf %D \stopbuffer %D %D \typebuffer \getbuffer \definelist[\v!formula] \global\let\doflushformulalistentry\gobbleoneargument \def\setformulalistentry#1% {\gdef\doflushformulalistentry##1% {\expanded{\writetolist[\v!formula]{##1}}{#1}% \global\let\doflushformulalistentry\gobbleoneargument}} \def\placenamedformula {\dosingleempty\doplacenamedformula} \def\doplacenamedformula[#1]#2% {\iffirstargument \def\next{\placeformula[#1]}% \else \let\next\placeformula \fi \setformulalistentry{#2}% \next} %D The implementation of placement is a bit ugly: \def\doplaceformula[#1][#2]% #2 = dummy, gobbles spaces {\def\redoplaceformula {\bgroup \ifx\next\bgroup \egroup \@EA\moreplaceformula % [ref]{} \else \let\nextnext$% no def \ifx\next\nextnext \egroup \@EAEAEA\dispplaceformula % [ref]$$ \else \egroup \@EAEAEA\dodoplaceformula % [ref]\start \fi \fi[#1]{}}% \futurelet\next\redoplaceformula} \long\def\moreplaceformula[#1]#2#3#4% #2 dummy #4 gobbles spaces {\def\redoplaceformula {\bgroup \let\nextnext$% no def \ifx\next\nextnext \egroup \@EA\dispplaceformula % [ref]$$ \else \egroup \@EA\dodoplaceformula % [ref]\start \fi [#1]{#3}}% \futurelet\next\redoplaceformula#4} \let\startplaceformula\placeformula \let\stopplaceformula \relax \def\startformulas#1\stopformulas % new / to be internationalized {\bgroup \forgetdisplayskips \startdisplaymath \setlocalhsize \long\def\startformula##1\stopformula {\advance\scratchcounter\plusone}% \scratchcounter\zerocount #1% preroll \ifcase\scratchcounter\else \divide \hsize \scratchcounter \fi \hbox to \localhsize \bgroup \hss \def\normalstartformula{\vskip-\strutdepth$$}% i hate this \def\normalstopformula {$$}% \def\startformula {$\vcenter\bgroup\normalstartformula}% \def\stopformula {\normalstopformula\egroup$\hss}% #1% \egroup \stopdisplaymath \egroup \hangafter\minusone % added for side floats \hangindent\zeropoint} % added for side floats \def\dispplaceformula[#1]#2$$#3$$% {\dodoplaceformula[#1]{#2}\dostartformula{}#3\dostopformula} \let\donestedformulanumber\gobbletwoarguments \def\dodoplaceformula[#1]#2% messy, needs a clean up {\doifelse{#1}{-} {\setfalse\handleformulanumber} {\doifelse{#2}{-} {\setfalse\handleformulanumber} {\settrue\handleformulanumber}}% \ifconditional\handleformulanumber \def\formulanumber {%\global\let\subformulanumber\doformulanumber % no, bug \doformulanumber[#1][#2]}% \def\donestedformulanumber##1##2% {\doifsomething{##1} {\doifelse{##1}{+}{\doformulanumber[#1]}{\doformulanumber[##1]}[##2][]{}}}% \def\subformulanumber {\setfalse\incrementformulanumber \formulanumber}% \gdef\doplaceformulanumber {\global\let\doplaceformulanumber\empty \doifelse\@@fmlocation\v!left {\normalleqno{\doformulanumber[#1][#2][]{}}} {\normalreqno{\doformulanumber[#1][#2][]{}}}}% \else \def\formulanumber{\doformulanumber[#1][#2]}% \let\donestedformulanumber\gobbletwoarguments \let\subformulanumber\doformulanumber % was \global \global\let\doplaceformulanumber\empty \fi} %D We need a hook into the plain math alignment macros %D %D \starttyping %D \displaylines %D \eqalignno %D \eqalignno %D \stoptyping %D %D Otherwise we get a missing \type {$$} error reported. \def\resetdisplaymatheq {\let\normalleqno\relax \let\leqno\relax \let\normalreqno\relax \let\eqno \relax \let\doplaceformulanumber\empty} %D The next code is derived from plain \TEX. \newcount\interdisplaylinepenalty \interdisplaylinepenalty=100 \newif\ifdt@p \def\displ@y {\global\dt@ptrue \openup\displayopenupvalue % was \openup\jot \everycr {\noalign {\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-\thousandpoint \vskip-\lineskiplimit \vskip\normallineskiplimit \fi \else \penalty\interdisplaylinepenalty \fi}}} \let\normaldispl@y\displ@y \def\displ@y{\resetdisplaymatheq\normaldispl@y} \def\m@th{\mathsurround\zeropoint} % obsolete %D Here we implement a basic math alignment mechanism. Numbers %D are also handled. The macros \type {\startinnermath} and %D \type {\stopinnermath} can be overloaded in specialized %D modules. \def\startinnermath {\getvalue{\e!start\??fm\formulaparameter\c!align}} \def\stopinnermath {\getvalue{\e!stop \??fm\formulaparameter\c!align}} \def\mathinnerstrut {\doif{\formulaparameter\c!strut}\v!yes\strut} \long\def\defineinnermathhandler#1#2#3% {\setvalue{\e!start\??fm#1}{#2}% \setvalue{\e!stop \??fm#1}{#3}} \newif\iftracemath \def\mathhbox {\iftracemath\ruledhbox\else\hbox\fi} \chardef\mathraggedstatus=0 % normal left center right \chardef\mathnumberstatus=0 % nothing normal shift_right \let\mathnumbercorrection\!!zeropoint \def\startmathbox#1% {\hsize\displaywidth \global\chardef\mathnumberstatus\plusone \chardef\mathraggedstatus#1\relax \let\mathnumbercorrection\!!zeropoint \global\let\@eqno \empty \def\eqno {\gdef\@eqno }% \global\let\@leqno\empty \def\leqno{\gdef\@leqno}% % added \let\normalreqno\eqno \let\normalleqno\leqno % added \doplaceformulanumber \setbox\scratchbox\mathhbox to \displaywidth\bgroup \mathinnerstrut $% \displaystyle \ifcase\mathraggedstatus\or\hfill\or\hfill\fi} \def\llappedmathno {\ifcase\mathraggedstatus\or \@eqno \or \llap{\@eqno}% \or \llap{\@eqno}% \fi} \def\rlappedmathno {\ifcase\mathraggedstatus\or \rlap{\@leqno}% \or \rlap{\@leqno}% \or \@leqno \fi} \def\stopmathbox {$% \ifcase\mathraggedstatus\or\or\hfill\or\hfill\fi \egroup \setbox0\hbox{\unhcopy\scratchbox}% \scratchdimen\wd0 \ifdim\scratchdimen>\displaywidth \donetrue \else \donefalse \fi \hbox to \displaywidth\bgroup \ifcase\mathnumberstatus \box\scratchbox \or \ifx\@leqno\empty \ifx\@eqno\empty \box\scratchbox \else \ifdone \vbox{\box\scratchbox\hbox to \displaywidth{\hss\llappedmathno}}% \else \hss\box\scratchbox\llappedmathno % hss makes room for number \fi \fi \else \ifdone \vbox{\hbox to \displaywidth{\rlappedmathno\hss}\box\scratchbox}% \else \rlappedmathno\box\scratchbox\hss % hss makes room for number \fi \fi \or \hskip\mathnumbercorrection \box\scratchbox \hss \else \box\scratchbox \fi \egroup} \defineinnermathhandler\v!left {\startmathbox\plusone }{\stopmathbox} \defineinnermathhandler\v!middle {\startmathbox\plustwo }{\stopmathbox} \defineinnermathhandler\v!right {\startmathbox\plusthree}{\stopmathbox} \defineinnermathhandler\v!flushleft {\startmathbox\plusthree}{\stopmathbox} \defineinnermathhandler\v!center {\startmathbox\plustwo }{\stopmathbox} \defineinnermathhandler\v!flushright{\startmathbox\plusone }{\stopmathbox} %D [The examples below are in english and don't process in the %D documentation style, which will be english some day.] %D %D Normally a formula is centered, but in case you want to %D align it left or right, you can set up formulas to behave %D that way. Normally a formula will adapt is left indentation %D to the environment: %D %D \startbuffer %D \fakewords{20}{40}\epar %D \startitemize %D \item \fakewords{20}{40}\epar %D \placeformula \startformula \fakeformula \stopformula %D \item \fakewords{20}{40}\epar %D \stopitemize %D \fakewords{20}{40}\epar %D \stopbuffer %D %D % \getbuffer %D %D In the next examples we explicitly align formulas to the %D left (\type {\raggedleft}), center and right (\type %D {\raggedright}): %D %D \startbuffer %D \setupformulas[align=left] %D \startformula\fakeformula\stopformula %D \setupformulas[align=middle] %D \startformula\fakeformula\stopformula %D \setupformulas[align=right] %D \startformula\fakeformula\stopformula %D \stopbuffer %D %D \typebuffer %D %D Or in print: %D %D % {\getbuffer} %D %D With formula numbers these formulas look as follows: %D %D \startbuffer %D \setupformulas[align=left] %D \placeformula \startformula\fakeformula\stopformula %D \setupformulas[align=middle] %D \placeformula \startformula\fakeformula\stopformula %D \setupformulas[align=right] %D \placeformula \startformula\fakeformula\stopformula %D \stopbuffer %D %D % {\getbuffer} %D %D This was keyed in as: %D %D \typebuffer %D %D When tracing is turned on (\type {\tracemathtrue}) you can %D visualize the bounding box of the formula, %D %D % {\tracemathtrue\getbuffer} %D %D As you can see, the dimensions are the natural ones, but if %D needed you can force a normalized line: %D %D \startbuffer %D \setupformulas[strut=yes] %D \placeformula \startformula \fakeformula \stopformula %D \stopbuffer %D %D \typebuffer %D %D This time we get a more spacy result. %D %D % {\tracemathtrue\getbuffer} %D %D We will now show a couple of more settings and combinations %D of settings. In centered formulas, the number takes no space %D %D \startbuffer %D \setupformulas[align=middle] %D \startformula \fakeformula \stopformula %D \placeformula \startformula \fakeformula \stopformula %D \stopbuffer %D %D \typebuffer % {\tracemathtrue\getbuffer} %D %D You can influence the placement of the whole box with the %D parameters \type {leftmargin} and \type {rightmargin}. %D %D \startbuffer %D \setupformulas[align=right,leftmargin=3em] %D \startformula \fakeformula \stopformula %D \placeformula \startformula \fakeformula \stopformula %D %D \setupformulas[align=left,rightmargin=1em] %D \startformula \fakeformula \stopformula %D \placeformula \startformula \fakeformula \stopformula %D \stopbuffer %D %D \typebuffer % {\tracemathtrue\getbuffer} %D %D You can also inherit the margin from the environment. %D %D \startbuffer %D \setupformulas[align=right,margin=standard] %D \startformula \fakeformula \stopformula %D \placeformula \startformula \fakeformula \stopformula %D \stopbuffer %D %D \typebuffer % {\tracemathtrue\getbuffer} %D %D The distance between the formula and the number is only %D applied when the formula is left or right aligned. %D %D \startbuffer %D \setupformulas[align=left,distance=2em] %D \startformula \fakeformula \stopformula %D \placeformula \startformula \fakeformula \stopformula %D \stopbuffer %D %D \typebuffer % {\tracemathtrue\getbuffer} %D \macros %D {big..} %D %D Because they are related to the bodyfontsize, we redefine %D some \PLAIN\ macros. \def\@@dobig#1#2% {{\hbox{$\left#2\vbox\!!to#1\bodyfontsize{}\right.\nulldelimiterspace\zeropoint\relax\mathsurround\zeropoint$}}} \def\big {\@@dobig{0.85}} \def\Big {\@@dobig{1.15}} \def\bigg{\@@dobig{1.45}} \def\Bigg{\@@dobig{1.75}} %D \macros %D {bordermatrix} %D %D We already redefined \type {\bordermatrix} in \type %D {font-ini}. %D \macros %D {setuptextformulas} %D %D This command sets up in||line math. Most features deals %D with grid snapping and are experimental. \newevery \everysetuptextformulas \relax \def\setuptextformulas {\dosingleempty\dosetuptextformulas} \def\dosetuptextformulas[#1]% {\getparameters[\??mt][#1]% \the\everysetuptextformulas} %D \macros %D {super, sub} %D %D \TEX\ uses \type{^} and \type{_} for entering super- and %D subscript mode. We want however a bit more control than %D normally provided, and therefore provide \type {\super} %D and \type{sub}. \global\let\normalsuper=^ \global\let\normalsuber=_ \newcount\supersubmode \newevery\everysupersub \EverySuperSub \appendtoks \advance\supersubmode \plusone \to \everysupersub \appendtoks \gridsupsubstyle \to \everysupersub \appendtoks \doifelse\@@mtsize\v!small {\let\gridsupsubstyle \scriptscriptstyle \let\gridsupsubbodyfont \setsmallbodyfont}% {\let\gridsupsubstyle \scriptstyle \let\gridsupsubbodyfont \relax}% \to \everysetuptextformulas \setuptextformulas [\c!size=\v!normal] \def\dogridsupsub#1#2% {\begingroup \setbox\nextbox\iftracegridsnapping\ruledhbox\else\hbox\fi {\gridsupsubbodyfont $\strut^{\the\everysupersub#1}_{\the\everysupersub#2}$}% \nextboxht\strutheight \nextboxdp\strutdepth \flushnextbox \endgroup} \def\gridsupsub {\ifconditional\crazymathsnapping \ifgridsnapping \@EAEAEA\dogridsupsub \else \@EAEAEA\normalsupsub \fi \else \@EA\normalsupsub \fi} \def\normalsupsub#1#2% {^{\the\everysupersub#1}_{\the\everysupersub#2}} \appendtoks \let\gridsupsubstyle \relax \let\gridsupsubbodyfont\relax \let\gridsupsub \normalsupsub \to \everydisplay \def\super#1{^{\the\everysupersub#1}} \def\suber#1{_{\the\everysupersub#1}} \def\supsub#1#2{\super{#1}\suber{#2}} \def\subsup#1#2{\suber{#1}\super{#2}} %\def\super#1{\gridsupsub{#1}{}} % %\def\suber#1{\gridsupsub{}{#1}} % % %\def\supsub#1#2{\gridsupsub{#1}{#2}} %\def\subsup#1#2{\gridsupsub{#2}{#1}} \def\gridsuper#1{\gridsupsub{#1}{}} \def\gridsuber#1{\gridsupsub{}{#1}} % \let\sup\super % math char % \let\sub\suber % test set: % % \startbuffer % \sform{x\frac{1}{2}} % \sform{x\sup{\frac{1}{2}} + x\sup{2} + 2} % \sform{x\supsub{\frac{1}{2}}{\frac{1}{2}} + x\sup{2} + 2} % \stopbuffer % % \typebuffer % % \startlines % \getbuffer % \stoplines % % \startbuffer % $x\frac{1}{2}$ % $x\sup{\frac{1}{2}} + x^2 + 2$ % $x\supsub{\frac{1}{2}}{\frac{1}{2}} + x^2 + 2$ % \stopbuffer % % \typebuffer % % \start % \enablesupersub % \enableautomath % \startlines % \getbuffer % \stoplines % \stop %D \macros %D {enablesupersub,enablesimplesupersub} %D %D We can let \type {^} and \type {_} act like \type {\super} %D and \type {\sub} by saying \type {\enablesupersub}. \bgroup \catcode`\^=\@@active \catcode`\_=\@@active \gdef\enablesupersub {\catcode`\^=\@@active \def^{\ifmmode\expandafter\super\else\expandafter\normalsuper\fi}% \catcode`\_=\@@active \def_{\ifmmode\expandafter\suber\else\expandafter\normalsuber\fi}} \egroup %D \macros %D {enableautomath} %D %D The next one can be dangerous, but handy in controlled %D situations. \bgroup \catcode`\$=\active \gdef\enableautomath {\catcode`\$=\active \def$##1${\snappedinlineformula{##1}}} % \gdef\enableautomath % {\catcode`\$=\active % \def${\doifnextcharelse$\doautodmath\doautoimath}% % \def\doautoimath##1${\snappedinlineformula{##1}}% % \def\doautodmath$##1$${\startformula##1\stopformula}} \egroup %D \macros %D {...} %D %D New and experimental: snapping big inline math! \newconditional\halfcrazymathlines % \settrue\halfcrazymathlines \newconditional\crazymathsnapping % \settrue\crazymathsnapping \appendtoks \doifelse\@@mtgrid\v!yes \settrue\setfalse\crazymathsnapping \doifelse\@@mtstep\v!halfline\settrue\setfalse\halfcrazymathlines \to \everysetuptextformulas \setuptextformulas [\c!grid=\v!yes, \c!step=\v!line] \newcount\crazymathhack \let\lastcrazymathline \!!zeropoint \let\lastcrazymathpage \!!zerocount \let\lastcrazymathprelines \!!zerocount \let\lastcrazymathpostlines\!!zerocount \def\crazymathtag{amh:\the\crazymathhack} \def\crazytexttag{\v!text:\lastcrazymathpage} \def\crazymathindent{\hskip\MPx\crazymathtag\hskip-\MPx\crazytexttag} \def\flushcrazymathbox {\nextboxht\strutheight \nextboxdp\strutdepth \hbox{\iftracegridsnapping\ruledhbox\fi{\flushnextbox}}} % possible pdftex bug: % % \dorecurse{100}{gest \vadjust {\strut} \par} \page % \dorecurse{100}{gest \vadjust pre {\strut} \par} \page % % duplicate depth compensation with pre \def\snappedinlineformula {\dosingleempty\dosnappedinlineformula} %D \starttabulate[|Tl|l|] %D \NC - \NC half lines \NC \NR %D \NC + \NC full lines \NC \NR %D \NC = \NC force \NC \NR %D \NC < \NC force, minus pre \NC \NR %D \NC > \NC force, minus post \NC \NR %D \stoptabulate \newif\if!!donee \newif\if!!donef \def\inlinemathmargin{1pt} \settrue\autocrazymathsnapping % FROM NOW ON, CHANGES AS OPTIONS % TODO: SKYLINE (PREV LINE POS SCAN) \def\dosnappedinlineformula[#1]#2% {\ifvmode\dontleavehmode\fi % tricky \strut % prevents funny space at line break \begingroup % interesting: \bgroup can make \vadjust disappear \ifconditional\crazymathsnapping \ifgridsnapping \ifx\pdftexversion\undefined \donefalse \else \checktextbackgrounds % we need pos tracking, to be made less redundant \donetrue \fi \else \donefalse \fi \else \donefalse \fi \!!doneafalse % forced or not auto \!!donebfalse % too heigh \!!donecfalse % too low \!!donedfalse % less before \!!doneefalse % less after \ifdone \setbox\nextbox\hbox{$#2$}% \iftracegridsnapping \setbox\nextbox\ruledhbox {\incolortrue\localcolortrue \backgroundline[gray]{\showstruts\strut\flushnextbox}}% \fi \def\docommand##1% {\doif{##1}-{\settrue \halfcrazymathlines}% \doif{##1}+{\setfalse\halfcrazymathlines}% \doif{##1}={\!!doneatrue}% \doif{##1}<{\!!donedtrue}% \doif{##1}>{\!!doneetrue}}% \processcommalist[#1]\docommand \if!!doneb \if!!donec \else \setfalse\halfcrazymathlines \fi \else \if!!donec \setfalse\halfcrazymathlines \fi \fi \donefalse \if!!donea \donetrue \scratchdimen \nextboxht \advance\scratchdimen .5\lineheight \nextboxht\scratchdimen \scratchdimen \nextboxdp \advance\scratchdimen .5\lineheight \nextboxdp\scratchdimen \else\ifdim\nextboxht>\strutht \donetrue \else\ifdim\nextboxdp>\strutdp \donetrue \fi\fi\fi \ifconditional\autocrazymathsnapping \else \if!!donea \else % don't compensate, just snap to strut \donefalse % signal for next else, snap line to strut \!!doneatrue \fi \fi \fi \ifdone % analyze height \scratchdimen\inlinemathmargin \advance\scratchdimen \strutht \ifdim\nextboxht<\scratchdimen \else \!!donebtrue \fi % analyze depth \scratchdimen\inlinemathmargin \advance\scratchdimen \strutdp \ifdim\nextboxdp<\scratchdimen \else \!!donectrue \fi % analyzed or forced \ifdone \global\advance\crazymathhack\plusone \donefalse \ifnum\MPp\crazymathtag=\lastcrazymathpage\relax \ifdim\MPy\crazymathtag=\lastcrazymathline\relax \donetrue \fi \fi \ifnum\MPp\crazymathtag=\zerocount \donefalse \fi \ifdim\MPy\crazymathtag=\zeropoint \donefalse \fi \ifdone % same page and same line \else \global\let\lastcrazymathprelines \!!zerocount \global\let\lastcrazymathpostlines\!!zerocount \xdef\lastcrazymathpage{\MPp\crazymathtag}% \xdef\lastcrazymathline{\MPy\crazymathtag}% \fi \if!!doneb % \getrawnoflines\nextboxht \scratchdimen\nextboxht \advance\scratchdimen-\strutht \getnoflines\scratchdimen \if!!doned \advance\noflines\minusone \fi \scratchcounter\noflines \advance\noflines-\lastcrazymathprelines\relax \ifnum\noflines>\zerocount \xdef\lastcrazymathprelines{\the\scratchcounter}% \scratchdimen\noflines\lineheight \ifconditional\halfcrazymathlines \advance\scratchdimen-.5\lineheight \fi \advance\scratchdimen-\strutdepth \setbox\scratchbox\null \wd\scratchbox2\bodyfontsize \ht\scratchbox\scratchdimen \dp\scratchbox\strutdepth %%% top correction code (see below) \normalvadjust pre {%\allowbreak % sometimes breaks spacing \forgetall \crazymathindent \iftracegridsnapping \setbox\scratchbox\hbox {\incolortrue\localcolortrue\green \ruledhbox{\box\scratchbox}}% \fi \box\scratchbox \endgraf \nobreak}% \else\ifnum\scratchcounter>\zerocount \normalvadjust pre {\nobreak}% \fi\fi \fi \if!!donec % \getrawnoflines\nextboxdp \scratchdimen\nextboxdp \advance\scratchdimen-\strutdp \getnoflines\scratchdimen \if!!donee \advance\noflines\minusone \fi \scratchcounter\noflines \advance\noflines-\lastcrazymathpostlines\relax \ifnum\noflines>\zerocount \donetrue \else\ifnum\lastcrazymathpostlines=\zerocount \donetrue \else \donefalse \fi\fi \else \donefalse \fi \ifdone \xdef\lastcrazymathpostlines{\the\scratchcounter}% \ifnum\lastcrazymathpostlines=\zerocount \global\let\lastcrazymathpostlines\!!plusone \fi \hbox{\setposition\crazymathtag\flushcrazymathbox}% \scratchdimen\noflines\lineheight \advance\scratchdimen-\lineheight \advance\scratchdimen+\strutheight \ifdim\scratchdimen>\zeropoint \else \scratchdimen=\strutheight % todo : test for half lines \fi \ifconditional\halfcrazymathlines \advance\scratchdimen-.5\lineheight \fi \setbox\scratchbox\null \wd\scratchbox2\bodyfontsize \ht\scratchbox\scratchdimen \dp\scratchbox\strutdepth \normalvadjust {\forgetall \crazymathindent \iftracegridsnapping \setbox\scratchbox\hbox {\incolortrue\localcolortrue\color[blue]{\ruledhbox{\box\scratchbox}}}% \fi \box\scratchbox \endgraf % precaution: else we stick below the text bottom \ifconditional\halfcrazymathlines \allowbreak \else \vskip-\lineheight \vskip \lineheight \fi}% \else \hbox{\setposition\crazymathtag\flushcrazymathbox}% \fi \else \flushcrazymathbox \fi \else\if!!donea \flushcrazymathbox \else \mathematics{#2}% \fi\fi \endgroup} %%% top correction code %%% %%% correct for fuzzy top of page situations % % \scratchdimen\lastcrazymathprelines\lineheight % \advance\scratchdimen\MPy\crazymathtag % \advance\scratchdimen\lineheight % \advance\scratchdimen\topskip % \advance\scratchdimen-\strutheight % \dimen0=\MPy\crazytexttag % \advance\dimen0 \MPh\crazytexttag % \advance\scratchdimen-\dimen0\relax % % do we need correction at all % \ifdim\scratchdimen>\strutdepth\relax % \donefalse % \else\ifdim\scratchdimen<\zeropoint % \donefalse % \else % \donetrue % \fi\fi % % analysis done % \donefalse % \ifdone % \edef\crazymathcorrection{\the\scratchdimen}% % \advance\scratchdimen-\dp\scratchbox % \dp\scratchbox-\scratchdimen % \else % \let\crazymathcorrection\zeropoint % \fi % %%% %%% keep the previous code %%% \let\tform\mathematics \let\gform\snappedinlineformula % test set: % % \startbuffer % Crazy math \gform {1+x} or \gform {\dorecurse {100} {1+} 1 = % 101} and even gore crazy \gform {2^{2^2}_{1_1}} % again\dorecurse {20} { and again} \gform {\sqrt {\frac % {x^{5^5}} {\frac {1} {2}}}} even gore\dorecurse {50} { and % gore} \tform {\dorecurse {12} {\gform {\sqrt {\frac % {x^{5^5}} {3}}}+\gform {\sqrt {\frac {x^{5^5}} {\frac {1} % {2}}}}+}x=10}\dorecurse{20} { super crazy math}: \tform % {\dorecurse {30} {\gform {\sqrt {\frac {x^{5^5}} {3}}}+ % \gform {\sqrt {\frac {x^{5^5}} {\frac {1} {2}}}}+ }x = 10}, % and we're\dorecurse {20} { done}! % \stopbuffer % % \setupcolors[state=start] \setuppapersize[S6][S6] % % \showgrid \tracegridsnappingtrue \showstruts % % \starttext % \setuplayout[grid=yes,lines=15]\getbuffer \page % \setuplayout[grid=yes,lines=16]\getbuffer \page % \setuplayout[grid=yes,lines=17]\getbuffer \page % \setuplayout[grid=yes,lines=18]\getbuffer \page % \setuplayout[grid=yes,lines=19]\getbuffer \page % \stoptext % % test % % \startregels % \gform[<]{35 \cdot p^{\frac{3}{4}} = 70} % \gform{12{,}4 \cdot d^3 = 200} % \gform{a \cdot x^b}. % \gform{12x^6 \cdot \negative 3x^4} % \gform{\frac{12x^6}{\negative 3x^4}} % \gform{(4x^2)^3} % \gform{4x \sqrt{x} \cdot 3x^2} % \gform{\frac{2x^4}{4x \sqrt{x}}} % \gform{y = a \cdot x^b}. % \gform{y_1 = \frac{15x^2}{x}} % \gform{y_2 = x \cdot \sqrt{x}} % \gform{y_3 = \frac{6x^3}{x^2}} % \gform[<]{y_4 = \left(2x^2\right)^{\frac{1}{2}}} % \gform{y_1 = \frac{4x^5}{x^2}} % \gform{y_2 = 4 \cdot \sqrt{x}} % \gform{y_3 = 4x^3} % \gform{y_4 = \frac{100x}{\sqrt{x}}} % \gform[<]{y_5 = 4 \cdot x^{\frac{1}{2}}} % \gform{y_6 = \frac{1}{2} x \cdot 4x^2} % \gform{y_7 = 2 \cdot x^3} % \gform{y_8 = 100 \cdot x^{\frac{1}{2}}} % \gform{4x^8 \cdot 8x^3} % \gform{\frac{4x^8}{8x^3}} % \gform{\left(\negative3x^4\right)^3} % \gform{x^3 \sqrt{x} \cdot 3x^2} % \gform{\frac{6x^3}{x^2 \sqrt{x}}} % \gform{\frac{6}{2x^4}} % \gform{\frac{1}{3x^6}} % \gform{\frac{12x^8}{4x^{10}}} % \gform{\frac{4}{\sqrt{x}}} % \gform{\frac{1}{2x \sqrt{x}}} % \gform{\frac{2{,}25}{p} = 0{,}35} % \gform{4{,}50 + \frac{300}{k} = 4{,}70} % \gform{\frac{1200}{k+12} - 42 = 6} % \stopregels %D \macros %D {restoremathstyle} %D %D We can pick up the current math style by calling \type %D {\restoremathstyle}. \def\restoremathstyle {\ifmmode \ifcase\supersubmode \textstyle \or \scriptstyle \else \scriptscriptstyle \fi \fi} %D \macros %D {mathstyle} %D %D If one want to be sure that something is typeset in the %D appropriate style, \type {\mathstyle} can be used: %D %D \starttyping %D \mathstyle{something} %D \stoptyping \def\mathstyle#1% {\mathchoice {\displaystyle #1}% {\textstyle #1}% {\scriptstyle #1}% {\scriptscriptstyle#1}} %D Something similar can be used in the (re|)|definition %D of \type {\text}. This version is a variation on the one %D in the math module (see \type{m-math} and|/|or \type %D {m-newmat}). \unexpanded\def\mathtext {\mathortext\domathtext\hbox} \def\domathtext#1% {\mathchoice {\dodomathtext\displaystyle \textface {#1}}% {\dodomathtext\textstyle \textface {#1}}% {\dodomathtext\scriptstyle \scriptface {#1}}% {\dodomathtext\scriptscriptstyle\scriptscriptface{#1}}} \def\dodomathtext#1#2#3% no \everymath ! %{\hbox{\everymath{#1}\switchtobodyfont [#2]#3}} % 15 sec {\hbox{\everymath{#1}\setcurrentfontbody{#2}#3}} % 3 sec (no math) %D Because we may overload \type {\text} in other (structuring) %D macros, we say: \appendtoks \let\text\mathtext \to \everymathematics %D \macros %D {\definemathalignment, setupmathalignment, startmathalignment} %D %D Modules may provide additional alignment features. The following %D mechanisms are provided by the core. % n>1 #### needed, strange # interaction in recurse \def\presetdisplaymath{\displ@y} % some day i will relocate the plain stuff \def\buildeqalign {\scratchtoks\emptytoks \dorecurse{\mathalignmentparameter\c!m} {\ifnum\recurselevel>\plusone \appendtoks \tabskip\mathalignmentparameter\c!distance&\tabskip\zeropoint \to\scratchtoks \fi \expanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}% \dorecurse{\numexpr\mathalignmentparameter\c!n-\plusone\relax} {\expanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}}% \expanded{\scratchtoks{\the\scratchtoks\the\!!toksc}}} \def\forgetalign {\tabskip\zeropoint\everycr\emptytoks} \let\firstineqalign\empty \let\nextineqalign \empty \let\leftofeqalign \empty \let\rightofeqalign\empty \def\mathineqalign#1{$\forgetalign\displaystyle{{}#1{}}$} \def\textineqalign#1{$\forgetalign#1$} \def\eqalign#1% why no halign here, probably because of displaywidth {\null\,\vcenter {\openup.25\bodyfontsize% was: \openup\jot \mathsurround\zeropoint \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##{}}$\hfil\crcr#1\crcr}% }\,} % preamble is scanned for tabskips so we need the span to prevent an error message \chardef\eqalignmode\plusone \def\preparereqalignno {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}% \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}% \ifnum\mathraggedstatus=\plusone \!!toksc{\hfil&\span\textineqalign{##}\tabskip\zeropoint}% \else\ifnum\mathraggedstatus=\plusthree \!!toksc{\hfil\tabskip\zeropoint\!!plus 1\!!fill&\span\textineqalign{##}\tabskip\zeropoint}% \else \!!toksc{\hfil\tabskip\centering&\llap{\span\textineqalign{##}}\tabskip\zeropoint}% \fi\fi \global\chardef\mathnumberstatus\zerocount \buildeqalign \presetdisplaymath \tabskip\centering} \def\prepareleqalignno {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}% \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}% % problem: number is handled after rest and so ends up in the margin \ifnum\mathraggedstatus=\plusone \!!toksc{\hfil&\kern-\displaywidth\rlap{\span\textineqalign{##}}\tabskip\displaywidth}% \else\ifnum\mathraggedstatus=\plusthree \!!toksc{\hfil\tabskip\zeropoint\!!plus 1\!!fill&\kern-\displaywidth\span\mrlap{\span\textineqalign{##}}\tabskip\displaywidth}% \else \!!toksc{\hfil\tabskip\centering&\kern-\displaywidth\rlap{\span\textineqalign{##}}\tabskip\displaywidth}% \fi\fi \global\chardef\mathnumberstatus\zerocount \buildeqalign \presetdisplaymath \tabskip\centering} \def\dobotheqalignno#1#2% {\ifmmode \displ@y % \let\doplaceformulanumber\relax % strange hack \vcenter\bgroup \let\finishalignno\egroup \else \let\finishalignno\relax \fi #1% \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA {\the\scratchtoks\crcr#2\crcr}% \finishalignno} \def\dobothaligneqalignno#1% {\ifmmode \displ@y \global\chardef\mathnumberstatus\plusone \ifcase\mathraggedstatus \def\finishalignno{\crcr\egroup}% \else % we're in a mathbox \vcenter\bgroup \def\finishalignno{\crcr\egroup\egroup}% \fi \fi #1% \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA \bgroup\the\scratchtoks\crcr} \def\mrlap#1% {\setbox\scratchbox\hbox{#1}% \ifdim\wd\scratchbox>\mathnumbercorrection \xdef\mathnumbercorrection{\the\wd\scratchbox}% \fi \box\scratchbox \global\chardef\mathnumberstatus\plustwo} % \def\dobothaligneqalignno#1% % {\ifmmode % \displ@y % \global\chardef\mathnumberstatus\plusone % we're in a mathbox % \vcenter\bgroup % \def\finishalignno{\crcr\egroup\egroup}% % \else % \def\finishalignno{\crcr\egroup}% % \fi % #1% % \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA \bgroup\the\scratchtoks\crcr} \def\reqalignno {\dobotheqalignno \preparereqalignno} \def\leqalignno {\dobotheqalignno \prepareleqalignno} \def\alignreqalignno{\dobothaligneqalignno\preparereqalignno} \def\alignleqalignno{\dobothaligneqalignno\prepareleqalignno} \def\finishalignno {\crcr\egroup} \let \equalignno \reqalignno \let\aligneqalignno\alignreqalignno %D Here we implement the user interface part. \def\setupmathalignment {\dodoubleempty\dosetupmathalignment} \def\dosetupmathalignment[#1][#2]% {\ifsecondargument \getparameters[\??eq#1][#2]% \else \getparameters[\??eq][#1]% \fi} \let\currentmathalignment\empty \def\mathalignmentparameter#1% {\executeifdefined{\??eq\currentmathalignment#1}{\executeifdefined{\??eq#1}\empty}} \setupmathalignment [\c!n=2, \c!m=1, \c!distance=1em] \def\numberedeqalign {\doifelse\@@fmlocation\v!left\alignleqalignno\alignreqalignno} \def\doxxdoubleempty#1#2% {\ifx#2[\expandafter\dodoxxdoubleempty\else\expandafter\noxxdoubleempty\fi#1#2} \def\dodoxxdoubleempty#1[#2]#3% {\ifx#3[\else\expandafter\nonoxxdoubleempty\fi#1[#2]#3} \def\noxxdoubleempty #1{#1[][]} \def\nonoxxdoubleempty#1[#2]{#1[#2][]} \newcount\eqaligncolumn \def\firstineqalign{\global\eqaligncolumn\plusone} \def\nextineqalign {\global\advance\eqaligncolumn\plusone} \def\leftofeqalign {\getvalue{\??eq:\v!left :\number\eqaligncolumn}} \def\rightofeqalign{\getvalue{\??eq:\v!right:\number\eqaligncolumn}} \def\doseteqaligncolumn#1% {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\empty \letvalue{\??eq:\v!right:\number\eqaligncolumn}\empty \doif{#1}\v!left {\letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfill}% \doif{#1}\v!right {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfill}% \doif{#1}\v!middle{\letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfill \letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfill}} \def\dodoalignNC {\gdef\doalignNC##1{&##1}} \def\doalignNR[#1][#2]% {\donestedformulanumber{#1}{#2}\crcr} %D \starttyping %D \placeformula[eqn0]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn0] %D \placeformula[eqn1]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn1] %D \placeformula \startformula \startalign[n=1] a\NR[eqn2] \stopalign \stopformula See \in[eqn2] %D \placeformula[eqn3]\startformula \startalign[n=1] a\NR[+] \stopalign \stopformula See \in[eqn3] %D \stoptyping % todo: pop in cell \def\dostartmathalignment[#1][#2]% {% \begingroup not permitted ($$...assignments...\halign... ) \pushmacro\doalignNC \edef\currentmathalignment{#1}% \doifassignmentelse{#2}{\setupmathalignment[#1][#2]}\donothing \def\NC{\doalignNC}% \global\let\doalignNC\dodoalignNC \def\EQ{&=}% \def\NR{&\global\let\doalignNC\dodoalignNC\doxxdoubleempty\doalignNR}% % amstex compatibility mode: (ugly, will disappear) \def\notag{\def\\{&\crcr}}% \doifelse{#2}{*}{\def\\{&\crcr}}{\def\\{&\doalignNR[+][]\crcr}}% % end of compatibility mode \eqaligncolumn\zerocount \processcommacommand [\mathalignmentparameter\c!align] {\advance\eqaligncolumn\plusone\doseteqaligncolumn}% takes argument % the real action \global\eqaligncolumn\plusone \numberedeqalign} \def\dostopmathalignment {\finishalignno \popmacro\doalignNC} \def\definemathalignment {\dodoubleempty\dodefinemathalignment} \def\dodefinemathalignment[#1]% [#2]% {\setvalue{\e!start#1}{\dodoubleempty\dostartmathalignment[#1]}% \setvalue{\e!stop #1}{\dostopmathalignment}% \setupmathalignment[#1]}% [#2] %D For the moment we only provide english commands. \definemathalignment[align] % default case (this is what amstex users expect) \definemathalignment[\v!mathalignment] % prefered case (this is cleaner, less clashing) %D \startbuffer %D \placeformula \startformula \eqalignno { %D a &= b & \formulanumber \cr %D c &= d \cr %D &= e \cr %D &= f & \formulanumber %D } \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign %D \NC a \EQ b \NR[+] %D \NC c \EQ d \NR %D \NC \EQ f \NR[for:demo-a-1] %D \NC \EQ g \NR[for:demo-a-2][a] %D \NC \EQ h \NR[for:demo-a-3][b] %D \NC \EQ i \NR %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign %D \NC a \EQ b \NR[+] %D \NC c \EQ d \NR %D \NC \EQ f \NR %D \NC \EQ g \NR %D \NC \EQ h \NR %D \NC \EQ i \NR[+] %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign %D a &= b \\ %D c &= d \notag \\ %D &= e \notag \\ %D &= f \\ %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign %D \NC a \NC \eq b \NR[+] %D \NC c \NC \neq d \NR %D \NC \NC \neq f \NR[for:demo-b-1] %D \NC \NC \geq g \NR[for:demo-b-2][a] %D \NC \NC \leq h \NR[for:demo-b-3][b] %D \NC \NC \neq i \NR %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign[*] %D a &= b \\ %D c &= d \\ %D &= e \\ %D &= f \\ %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign %D x &= y \\ %D a &= b \\ %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign[m=3] %D x &= y & x &= y & z &= t \\ %D a &= b & p &= q & w &= s \\ %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign[m=3,distance=0pt] %D x &= y &= x &= y &= z &= t \\ %D a &= b &= p &= q &= w &= s \\ %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign[n=5,distance=0pt] %D x &= yy &= xx &= yy &= zz \\ %D a &= b &= p &= q &= w \\ %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign[n=3,align={left,middle,right}] %D \NC l \NC = \NC r \NR %D \NC left \NC = \NC right \NR %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign[n=3,align={right,middle,left}] %D \NC l \NC = \NC r \NR %D \NC left \NC = \NC right \NR %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startalign[n=3,align={middle,middle,middle}] %D \NC l \NC = \NC r \NR %D \NC left \NC = \NC right \NR %D \stopalign \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula %D \startformula %D \startalign[n=3,align={middle,middle,middle}] %D \NC a \NC = \NC b \NR[+] %D \NC 2a \NC = \NC 2b \NR %D \stopalign %D \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula %D \startformulas %D \setupmathalignment[n=3,align={middle,middle,middle}]% %D \startformula %D \startalign %D \NC a \NC = \NC b \NR[+] %D \NC 2a \NC = \NC 2b \NR %D \stopalign %D \stopformula %D \startformula %D \startalign %D \NC a \NC = \NC b \NR[+] %D \NC 2a \NC = \NC 2b \NR %D \stopalign %D \stopformula %D \stopformulas %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula %D \startformulas %D \dorecurse{5}{\startformula %D \startalign[n=3,align={middle,middle,middle}] %D \NC a \NC = \NC b \NR[+] %D \NC 2a \NC = \NC 2b \NR %D \stopalign %D \stopformula} %D \stopformulas %D \stopbuffer %D %D \typebuffer \getbuffer %D \macros %D {definemathcases, setupmathcases, startmathcases} %D %D Another wish \unknown \def\setupmathcases {\dodoubleempty\dosetupmathcases} \def\dosetupmathcases[#1][#2]% {\ifsecondargument \getparameters[\??ce#1][#2]% \else \getparameters[\??ce][#1]% \fi} \let\currentmathcases\empty \def\mathcasesparameter#1% {\executeifdefined{\??ce\currentmathcases#1}{\executeifdefined{\??ce#1}\empty}} \setupmathcases [\c!distance=1em, \c!numberdistance=2.5em, \c!left={\left\{\,}, \c!right={\right.}] \def\dodocasesNC {\gdef\docasesNC{\endmath&}} \let\docasesNR\doalignNR \def\dostartmathcases[#1][#2]% {\begingroup \edef\currentmathcases{#1}% \doifassignmentelse{#2}{\setupmathcases[#1][#2]}\donothing \mathcasesparameter\c!left \vcenter\bgroup \pushmacro\docasesNC \let\endmath\relax \def\NC{\docasesNC}% \def\MC{\docasesNC\ifmmode\else$\def\endmath{$}\fi}% \global\let\docasesNC\dodocasesNC \def\NR{\unskip\endmath&\global\let\docasesNC\dodocasesNC\doxxdoubleempty\docasesNR}% \normalbaselines \mathsurround\zeropoint \everycr\emptytoks \tabskip\zeropoint \global\eqaligncolumn\plusone \halign\bgroup $\mathcasesparameter\c!style##$\hfil &\hskip\mathcasesparameter\c!distance\relax \popmacro\docasesNC##\hfil &\hskip\mathcasesparameter\c!numberdistance\relax \let\formuladistance\!!zeropoint \span\textineqalign{##}% \crcr} % todo: number \def\dostopmathcases {\crcr \egroup \popmacro\docasesNC \egroup \mathcasesparameter\c!right \endgroup} \def\definemathcases {\dodoubleempty\dodefinemathcases} \def\dodefinemathcases[#1]% [#2]% {\setvalue{\e!start#1}{\dodoubleempty\dostartmathcases[#1]}% \setvalue{\e!stop #1}{\dostopmathcases}% \setupmathcases[#1]}% [#2] \definemathcases[cases] \definemathcases[\v!mathcases] %D \startbuffer %D \placeformula \startformula \startcases %D \NC 2 \NC $ y > 0 $ \NR %D \NC 7 \NC $ x = 7 $ \NR[+] %D \NC 4 \NC otherwise \NR %D \stopcases \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula x \startcases %D \NC 2 \NC $ y > 0 $ \NR[+] %D \NC 7 \NC $ x = 7 $ \NR %D \NC 4 \NC otherwise \NR %D \stopcases \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula \startcases %D \NC 2 \NC $ y > 0 $ \NR %D \NC 7 \NC $ x = 7 $ \NR %D \NC 4 \NC otherwise \NR %D \stopcases \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \placeformula \startformula x \startcases %D \NC 2 \NC $ y > 0 $ \NR %D \NC 7 \NC $ x = 7 $ \NR %D \NC 4 \NC otherwise \NR %D \stopcases \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D \macros %D {definemathmatrix, setupmathmatrix, startmathmatrix} %D %D Yet another one \unknown \def\setupmathmatrix {\dodoubleempty\dosetupmathmatrix} \def\dosetupmathmatrix[#1][#2]% {\ifsecondargument \getparameters[\??mx#1][#2]% \else \getparameters[\??mx][#1]% \fi} \let\currentmathmatrix\empty \def\mathmatrixparameter#1% {\executeifdefined{\??mx\currentmathmatrix#1}{\executeifdefined{\??mx#1}\empty}} \setupmathmatrix [\c!distance=1em, \c!left=, \c!right=, \c!align=\v!middle] \def\dosetmatrixcolumn#1% hh: todo: \definematrixalign {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil \doif{#1}\v!left {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\relax \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil}% \doif{#1}\v!right {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil \letvalue{\??eq:\v!right:\number\eqaligncolumn}\relax }% \doif{#1}\v!middle{\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil}} \def\buildmathmatrix % beware: etex only {\scratchtoks\emptytoks \expanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}% \dorecurse{\numexpr\scratchcounter-\plusone\relax} {\expanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}% \expanded{\scratchtoks{\the\scratchtoks\the\!!toksc }}} \def\preparemathmatrix {\!!toksa{\strut \firstineqalign\leftofeqalign \span \textineqalign{\mathmatrixparameter\c!style ##}\rightofeqalign}% \!!toksb{&\hskip\mathmatrixparameter\c!distance \nextineqalign\leftofeqalign \span \textineqalign{\mathmatrixparameter\c!style ##}\rightofeqalign}% \!!toksc{&&\hskip\mathmatrixparameter\c!distance \leftofeqalign \span \textineqalign{\mathmatrixparameter\c!style ##}\rightofeqalign}% \buildmathmatrix \halign \@EA \bgroup\the\scratchtoks \crcr} \def\definemathmatrix {\dodoubleempty\dodefinemathmatrix} \def\dodefinemathmatrix[#1]% [#2]% {\setvalue{\e!start#1}{\dodoubleempty\dostartmathmatrix[#1]}% \setvalue{\e!stop #1}{\dostopmathmatrix}% \setupmathmatrix[#1]}% [#2] \definemathmatrix[matrix] \definemathmatrix[\v!mathmatrix] \def\dodomatrixNC {\gdef\domatrixNC{\endmath&}} \def\installmathmatrixhandler#1#2% {\setvalue{\??mx:#1}{#2}} % First alternative: % % \def\processlowhighmathmatrix#1% % {\def\mathmatrixleft % {\setbox\nextbox} % \def\mathmatrixright % {#1.5\dimexpr\nextboxdp-\nextboxht\relax % \hbox{$\mathmatrixparameter\c!left % \vcenter{\unvbox\nextbox}% % \mathmatrixparameter\c!right$}}% % \let\mathmatrixbox\vbox} % % \installmathmatrixhandler\v!high {\processlowhighmathmatrix\raise} % \installmathmatrixhandler\v!low {\processlowhighmathmatrix\lower} % % \installmathmatrixhandler\v!top {\processlowhighmathmatrix\raise} % \installmathmatrixhandler\v!bottom{\processlowhighmathmatrix\lower} % % \installmathmatrixhandler\v!lohi % {\def\mathmatrixleft {\mathmatrixparameter\c!left}% % \def\mathmatrixright{\mathmatrixparameter\c!right}% % \let\mathmatrixbox\vcenter} % % An alternative % % \let\mathmatrixleft \empty % \let\mathmatrixright\empty % % \def\processlowhighmathmatrix#1% % {\dowithnextbox % {#1.5\dimexpr\nextboxdp-\nextboxht\relax % \hbox{$\mathmatrixparameter\c!left % \vcenter{\unvbox\nextbox}% % \mathmatrixparameter\c!right$}}% % \vbox} % % \def\processlohimathmatrix % {\dowithnextbox % {\mathmatrixparameter\c!left % \vcenter{\unvbox\nextbox}% % \mathmatrixparameter\c!right}% % \vbox} % % \installmathmatrixhandler\v!high {\def\mathmatrixbox{\processlowhighmathmatrix\raise}} % \installmathmatrixhandler\v!low {\def\mathmatrixbox{\processlowhighmathmatrix\lower}} % \installmathmatrixhandler\v!top {\def\mathmatrixbox{\processlowhighmathmatrix\raise}} % \installmathmatrixhandler\v!bottom{\def\mathmatrixbox{\processlowhighmathmatrix\lower}} % \installmathmatrixhandler\v!lohi {\let\mathmatrixbox \processlohimathmatrix} % % Final version \let\mathmatrixleft \empty % experimental hook \let\mathmatrixright\empty % experimental hook \def\processlowhighmathmatrix#1#2% {\dowithnextbox {\scratchdimen\dimexpr(\nextboxdp-\nextboxht)/2 \ifcase#2\or+\mathaxisheight\textfont2\fi\relax \ifcase#1\relax\or\lower\scratchdimen\or\or\raise\scratchdimen\fi \hbox{$\mathmatrixparameter\c!left \vcenter{\unvbox\nextbox}% \mathmatrixparameter\c!right$}}% \vbox} \installmathmatrixhandler\v!top {\def\mathmatrixbox{\processlowhighmathmatrix\plusthree\plusone }} \installmathmatrixhandler\v!high {\def\mathmatrixbox{\processlowhighmathmatrix\plusthree\zerocount}} \installmathmatrixhandler\v!lohi {\def\mathmatrixbox{\processlowhighmathmatrix\plustwo \zerocount}} \installmathmatrixhandler\v!low {\def\mathmatrixbox{\processlowhighmathmatrix\plusone \zerocount}} \installmathmatrixhandler\v!bottom{\def\mathmatrixbox{\processlowhighmathmatrix\plusone \plusone }} \def\dostartmathmatrix[#1][#2]% {\begingroup \edef\currentmathmatrix{#1}% \doifassignmentelse{#2}{\setupmathmatrix[#1][#2]}\donothing \null \executeifdefined{\??mx:\mathmatrixparameter\c!location}{\getvalue{\??mx:\v!lohi}}% \mathmatrixleft \mathmatrixbox\bgroup \pushmacro\domatrixNC \let\endmath\relax \def\NC{\domatrixNC}% \def\MC{\domatrixNC\ifmmode\else$\def\endmath{$}\fi}% \global\let\domatrixNC\dodomatrixNC \def\NR{\endmath\global\let\domatrixNC\dodomatrixNC\crcr}% \normalbaselines \mathsurround\zeropoint \everycr\emptytoks \tabskip\zeropoint \eqaligncolumn\zerocount % could be \scratchcounter \processcommacommand[\mathmatrixparameter\c!align]{\advance\eqaligncolumn\plusone\dosetmatrixcolumn}% \scratchcounter=\ifnum\eqaligncolumn>\zerocount \eqaligncolumn \else \plusone \fi \global\eqaligncolumn\plusone \preparemathmatrix } % uses scratchcounter \def\dostopmathmatrix {\crcr \mathstrut\crcr \noalign{\kern-\baselineskip}% \egroup \popmacro\domatrixNC \egroup \mathmatrixright \endgroup} %D \startbuffer %D \placeformula \startformula[-] \startmatrix %D \NC 1 \NC x \NC a \NR %D \NC 2 \NC y \NC b \NR %D \NC 3 \NC z \NC c \NR %D \stopmatrix \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \definemathmatrix[bmatrix][left={\left[\,},right={\,\right]}] %D %D \startbuffer %D \placeformula \startformula[-] \startbmatrix %D \NC 1 \NC x \NC a \NR %D \NC 2 \NC y \NC b \NR %D \NC 3 \NC z \NC c \NR %D \stopbmatrix \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D Taco added some code (dedicated to Aditya Mahajan) that gives more %D control over aligments: %D \startbuffer %D \startformula %D \startmatrix %D \NC a + x \NC = \NC a + d \NR %D \NC y \NC = \NC d \NR %D \stopmatrix %D \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D \startbuffer %D \startformula %D \startmatrix [distance=3pt,align={right,left}] %D \NC a + x \NC = a + d \NR %D \NC y \NC = d \NR %D \stopmatrix %D \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D \startbuffer %D \startformula %D \startmatrix [left=\left(,right=\right)] %D \NC a + x \NR %D \NC y \NR %D \stopmatrix %D \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D A bit more complex code: %D %D \startbuffer %D \startformula %D \text{Let }{\cal R} = \bigcup_{P_{X_1},P_{X_2}} %D \left\{ (R_1, R_2) : %D \startmatrix[distance=1em,align={left,left,right}] %D \NC R_1 \NC < I(X_1 ; Y \mid X_2) \NC R_1 \NR %D \NC \hfill Q_2 \NC < I(X_2 ; Y \mid X_1) \NC R_2 \NR %D \NC R_1 + R_2 \NC < I(X_1 ; Y) \NC R_1 + R_2 \NR %D \stopmatrix %D \right\} %D \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D \macros %D {startmatrices} %D %D Just a handy keystroke safer: \def\startmatrices {\begingroup \setupmathmatrix} \def\stopmatrices {\endgroup} %D \startbuffer %D \startformula %D \startmatrix[left={\left(},right={\right)}] %D \NC A \NC B \NR \NC C \NC D \NR %D \stopmatrix %D = %D \startmatrix[left={\left(},right={\right)},location=low] %D \NC A \NC B \NR \NC C \NC D \NR %D \stopmatrix %D = %D \startmatrix[left={\left(},right={\right)},location=high] %D \NC A \NC B \NR \NC C \NC D \NR %D \stopmatrix %D \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \startformula %D \startmatrices[left={\left(},right={\right)}] %D \startmatrix %D \NC A \NC B \NR \NC C \NC D \NR %D \stopmatrix %D = %D \startmatrix[location=bottom] %D \NC A \NC B \NR \NC C \NC D \NR %D \stopmatrix %D = %D \startmatrix[location=top] %D \NC A \NC B \NR \NC C \NC D \NR %D \stopmatrix %D \stopmatrices %D \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D \macros %D {startintertext} %D %D Preliminary feature: %D %D {\em example code} \def\startintertext#1\stopintertext {\noalign{\dointertext{#1}}} \def\intertext#1% {\noalign{\dointertext{#1}}} \unexpanded\def\dointertext#1% {\penalty\postdisplaypenalty \afterdisplayspace \vbox{\forgetall\noindent#1\par}% \penalty\predisplaypenalty \beforedisplayspace} % %D \macros % %D {substack} % %D % %D Preliminary code: % %D % %D \starttyping % %D \startformula % %D \sum_{% % %D \startsubstack % %D i = 1 \NR % %D i \neq n \NR % %D i \neq m % %D \stopsubstack % %D }a_i % %D \stopformula % %D \stoptyping % \def\startsubstack % {\begingroup % \null % \vcenter\bgroup % \pushmacro\domatrixNC % \let\stopmathmode\relax % \def\NC{\domatrixNC}% % \def\MC{\domatrixNC\startmathmode}% % \global\let\domatrixNC\dodomatrixNC % \def\NR % {\stopmathmode % \global\let\domatrixNC\dodomatrixNC % \crcr\noalign{\nointerlineskip}}% % \mathsurround\zeropoint % \everycr\emptytoks % \halign\bgroup\hfil$\scriptstyle\mathstrut##$\hfil\crcr} % \def\stopsubstack % {\crcr % \egroup % \popmacro\domatrixNC % \egroup % \endgroup} %D \macros %D {substack} %D %D Preliminary code: %D %D \startbuffer %D \startformula %D \sum_{% %D \startsubstack %D i = 1 \NR %D i \neq n \NR %D i \neq m %D \stopsubstack %D }a_i %D \stopformula %D \stopbuffer %D %D \getbuffer which was typed as \typebuffer %D %D Notice that these macros give the correct spacing for %D subscripts. Compare for example %D %D \startbuffer %D \startformula %D \sum_{\startsubstack a \NR b \NR \stopsubstack} %D \text{ and } %D \sum_{\scriptstyle a \atop \scriptstyle} %D \stopformula %D \typebuffer which gives \getbuffer \def\startsubstack {\begingroup \vcenter\bgroup \baselineskip\mathstacktotal \lineskip\mathstackvgap \lineskiplimit\lineskip \let\stopmathmode\relax \def\NC{\domatrixNC}% \def\MC{\domatrixNC\startmathmode}% \global\let\domatrixNC\dodomatrixNC \def\NR {\stopmathmode \global\let\domatrixNC\dodomatrixNC \crcr}% \mathsurround\zeropoint \everycr\emptytoks \halign\bgroup\hfil$\scriptstyle##$\hfil\crcr} \def\stopsubstack {\crcr \egroup \egroup \endgroup} %D \macros %D {frac, xfrac, xxfrac} %D %D This is another one Tobias asked for. It replaces the %D primitive \type {\over}. We also take the opportunity to %D handle math style restoring, which makes sure units and %D chemicals come out ok. %D %D \starttyping %D \def\frac#1#2% %D {\relax %D \ifmmode %D {{\mathstyle{#1}}\over{\mathstyle{#2}}}% %D \else %D $\frac{#1}{#2}$% %D \fi} %D \stoptyping %D %D Better is: %D %D \starttyping %D \def\frac#1#2% %D {\relax\mathematics{{{\mathstyle{#1}}\over{\mathstyle{#2}}}}} %D \stoptyping %D %D The \type {\frac} macro kind of replaces the awkward \type %D {\over} primitive. Say that we have the following formulas: %D %D \startbuffer[sample] %D test $\frac {1}{2}$ test $$1 + \frac {1}{2} = 1.5$$ %D test $\xfrac {1}{2}$ test $$1 + \xfrac {1}{2} = 1.5$$ %D test $\xxfrac{1}{2}$ test $$1 + \xxfrac{1}{2} = 1.5$$ %D \stopbuffer %D %D \typebuffer[sample] %D %D With the most straightforward definitions, we get: %D %D \startbuffer[code] %D \def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}} %D %D \def\frac {\dofrac\mathstyle} %D \def\xfrac {\dofrac\scriptstyle} %D \def\xxfrac{\dofrac\scriptscriptstyle} %D \stopbuffer %D %D \typebuffer[code] \getbuffer[code,sample] %D %D Since this does not work well, we can try: %D %D \startbuffer[code] %D \def\xfrac #1#2{\hbox{$\dofrac\scriptstyle {#1}{#2}$}} %D \def\xxfrac#1#2{\hbox{$\dofrac\scriptscriptstyle{#1}{#2}$}} %D \stopbuffer %D %D \typebuffer[code] \getbuffer[code,sample] %D %D This for sure looks better than: %D %D \startbuffer[code] %D \def\xfrac #1#2{{\scriptstyle \dofrac\relax{#1}{#2}}} %D \def\xxfrac#1#2{{\scriptscriptstyle\dofrac\relax{#1}{#2}}} %D \stopbuffer %D %D \typebuffer[code] \getbuffer[code,sample] %D %D So we stick to the next definitions (watch the local %D overloading of \type {\xfrac}). \def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}} % \unexpanded\def\frac % {\dofrac\mathstyle} % % \chardef\mathfracmode=0 $\frac{1}{2}$ % \chardef\mathfracmode=1 $\frac{1}{2}$ % \chardef\mathfracmode=2 $\frac{1}{2}$ % \chardef\mathfracmode=3 $\frac{1}{2}$ % \chardef\mathfracmode=4 $\frac{1}{2}$ % \chardef\mathfracmode=5 $\frac{1}{2}$ \chardef\mathfracmode=0 % 0=mathstyle, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle \unexpanded\def\frac {\ifcase\mathfracmode \expandafter\dofrac\expandafter\mathstyle \or \expandafter\dofrac\expandafter\displaystyle \or \expandafter\dofrac\expandafter\textstyle \or \expandafter\dofrac\expandafter\scriptstyle \or \expandafter\dofrac\expandafter\scriptscriptstyle \else \expandafter\dofrac\expandafter\mathstyle \fi} \unexpanded\def\xfrac#1#2% {\begingroup \let\xfrac\xxfrac \dofrac\scriptstyle{#1}{#2}% \endgroup} \unexpanded\def\xxfrac#1#2% {\begingroup \dofrac\scriptscriptstyle{#1}{#2}% \endgroup} %D The \type {xx} variant looks still ugly, so maybe it's %D best to say: \unexpanded\def\xxfrac#1#2% {\begingroup \dofrac\scriptscriptstyle{#1}{\raise.25ex\hbox{$\scriptscriptstyle#2$}}% \endgroup} %D Something low level for scientific calculator notation: \unexpanded\def\scinot#1#2% {#1\times10^{#2}} %D The next macro, \type {\ch}, is \PPCHTEX\ aware. In %D formulas one can therefore best use \type {\ch} instead of %D \type {\chemical}, especially in fractions. \ifx\mathstyle\undefined \let\mathstyle\relax \fi \unexpanded\def\ch#1% {\ifx\@@chemicalletter\undefined \mathstyle{\rm#1}% \else \dosetsubscripts \mathstyle{\@@chemicalletter{#1}}% \doresetsubscripts \fi} %D \macros %D {/} %D %D Just to be sure, we restore the behavior of some typical %D math characters. \bgroup \catcode`\/=\@@other \global \let\normalforwardslash/ \catcode`\/=\@@active \doglobal\appendtoks\let/\normalforwardslash\to\everymathematics \egroup %D These macros were first needed by Frits Spijker (also %D known as Gajes) for typesetting the minus sign that is %D keyed into scientific calculators. % This is the first alternative, which works okay for the % minus, but less for the plus. % % \def\dodoraisedmathord#1#2#3% % {\mathord{{#2\raise.#1ex\hbox{#2#3}}}} % % \def\doraisedmathord#1% % {\mathchoice % {\dodoraisedmathord5\tf #1}% % {\dodoraisedmathord5\tf #1}% % {\dodoraisedmathord4\tfx #1}% % {\dodoraisedmathord3\tfxx#1}} % % \def\negative{\doraisedmathord-} % \def\positive{\doraisedmathord+} % % So, now we use the monospaced signs, that we also % define as symbol, so that they can be overloaded. \def\dodoraisedmathord#1#2#3% {\mathord{{#2\raise.#1ex\hbox{#2\symbol[#3]}}}} \def\doraisedmathord#1% {\mathchoice {\dodoraisedmathord5\tf {#1}}% {\dodoraisedmathord5\tf {#1}}% {\dodoraisedmathord4\tx {#1}}% {\dodoraisedmathord3\txx{#1}}} \def\dodonumbermathord#1#2% {\setbox\scratchbox\hbox{0}% \mathord{\hbox to \wd\scratchbox{\hss#1\symbol[#2]\hss}}} \def\donumbermathord#1% {\mathchoice {\dodonumbermathord\tf {#1}}% {\dodonumbermathord\tf {#1}}% {\dodonumbermathord\tx {#1}}% {\dodonumbermathord\txx{#1}}} \definesymbol[positive] [\getglyph{Mono}{+}] \definesymbol[negative] [\getglyph{Mono}{-}] \definesymbol[zeroamount][\getglyph{Mono}{-}] \def\negative {\doraisedmathord{negative}} \def\positive {\doraisedmathord{positive}} \def\zeroamount{\donumbermathord{zeroamount}} %D The following macros are used in the MathML interpreter, so %D there is a good change of them never being documented for %D other usage. \let\normalordelimiter\secondoftwoarguments \let\normalorfiller \firstoftwoarguments \def\enabledelimiter {\let\normalordelimiter\secondoftwoarguments} \def\disabledelimiter{\let\normalordelimiter\firstoftwoarguments} \def\enablefiller {\let\normalorfiller\secondoftwoarguments} \def\disablefiller {\let\normalorfiller\firstoftwoarguments} \def\mathopnolimits#1{\mathop{\mr#1}\nolimits} % was \rm, which follows text fonts (used in mml parser) \def\mathopdolimits#1{\mathop{\mr#1}} % was \rm, which follows text fonts (used in mml parser) %D \macros{overset, underset} %D %D The macros \type{\overset} and \type{\underset} are provided by %D \AMS\ packages in \LATEX. These macro allows you to place a symbol %D above or below another symbol, irrespective of whether the other %D symbol is a relation or something else, and without influencing the %D spacing. For most cases there is a better way to do such things %D (declaring a math command with limop option, or using accents), but %D occasionally these macros can be useful, for example: %D %D \startbuffer %D \startformula %D \overset{*}{X} \underset{*}{X} %D \stopformula %D \stopbuffer %D \typebuffer \getbuffer %D %D Use these macros sparingly. Remember, \TEX\ was designed for %D mathematics, so there is usually a proper method for typesetting %D common math notation. %D These macros are a clearer version of \type{\binrel@} and %D \type{\binrel@@} macros in \AMSTEX\ packages. \def\preparebinrel#1% {\begingroup \setbox\scratchbox\hbox {\thinmuskip 0mu \medmuskip -1mu \thickmuskip -1mu \setbox\scratchbox\hbox{$#1\mathsurround\zeropoint$}% \kern-\wd\scratchbox ${}#1{}\mathsurround\zeropoint$}% \expanded {\endgroup \let\noexpand\currentbinrel \ifdim\wd\scratchbox<\zeropoint \mathbin \else\ifdim\wd\scratchbox>\zeropoint \mathrel \else \relax \fi\fi}} \unexpanded\def\overset#1#2% {\preparebinrel{#2}% \currentbinrel{\mathop{\kern\zeropoint#2}\limits^{#1}}} \unexpanded\def\underset#1#2% {\preparebinrel{#2}% \currentbinrel{\mathop{\kern\zeropoint#2}\limits_{#1}}} %D \macros %D {boldsymbol} %D %D The math definition is inspired by amsmath. %D %D \startbuffer %D \definetypeface [boldmath] [mm] [boldmath] [latin-modern] [modern] [encoding=texnansi] %D %D $a \times b$ $a \boldsymbol{\times} b$ %D \stopbuffer %D %D \typebuffer \start \getbuffer \stop \def\mathboldsymbol#1% {\preparebinrel{#1}% \currentbinrel{\mathchoice {\hbox{\switchtoformulabodyfont [boldmath]$\mathsurround\zeropoint#1$}} {\hbox{\switchtoformulabodyfont [boldmath]$\mathsurround\zeropoint#1$}} {\hbox{\switchtoformulabodyfont [boldmath,script]$\mathsurround\zeropoint#1$}} {\hbox{\switchtoformulabodyfont[boldmath,scriptscript]$\mathsurround\zeropoint#1$}}}} \def\boldsymbol {\mathortext\mathboldsymbol\bold} %D Some encoding hackery (for Mojca. who else): %D %D \starttyping %D \startmathcollection[eul:texnansi] %D \definemathsymbol [breve] [accent] [tf] ["15] %D \stopmathcollection %D \startmathcollection[eul:ec] %D \definemathsymbol [breve] [accent] [tf] ["08] %D \stopmathcollection %D %D $\breve e$ %D \stoptyping \let\outerencoding\empty \def\checkoutermathencoding {\ifx\outerencoding\empty \ifx\outerencoding\s!default\else \edef\outerencoding{\currentencoding}% \fi \fi} \prependtoks \checkoutermathencoding \to \everymathematics %D More. (A temp hack, else no proper default fall back (like \type %D {\textmultiply}); todo: sync encoding. \def\dealwithmathtextencoding {\expanded{\everyhbox{\the\everyhbox\noexpand\fastenableencoding{\currentencoding}}}% \expanded{\everyvbox{\the\everyvbox\noexpand\fastenableencoding{\currentencoding}}}% \def\dealwithmathtextencoding{\let\characterencoding\nocharacterencoding}% \dealwithmathtextencoding} \appendtoks \dealwithmathtextencoding \to \everymathematics %D How negative such a symbol looks is demonstrated in: %D $\negative 10^{\negative 10^{\negative 10}}$. \setupformulas [\c!way=\@@nrway, \c!blockway=, \c!sectionnumber=\@@nrsectionnumber, \c!location=\v!right, \c!left=(, \c!right=), \c!numberstyle=, \c!numbercolor=, \c!numbercommand=, \c!spacebefore=\v!big, \c!spaceafter=\@@fmspacebefore, \c!grid=] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/syst-fnt.mkii0000644000175000017500000000324014536300610024741 0ustar hillehille%D \module %D [ file=syst-fnt, %D version=2006.08.11, %D title=\CONTEXT\ System Macros, %D subtitle=Font Things, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % formal names cf the tb \& tbt \unprotect \def\fontslantperpoint {\fontdimen\plusone } \def\fontinterwordspace {\fontdimen\plustwo } \def\fontinterwordstretch{\fontdimen\plusthree} \def\fontinterwordshrink {\fontdimen\plusfour } \def\fontexheight {\fontdimen\plusfive } \def\fontemwidth {\fontdimen\plussix } \def\fontextraspace {\fontdimen\plusseven} \def\slantperpoint {\fontdimen\plusone \font} \def\interwordspace {\fontdimen\plustwo \font} \def\interwordstretch {\fontdimen\plusthree\font} \def\interwordshrink {\fontdimen\plusfour \font} \def\exheight {\fontdimen\plusfive \font} \def\emwidth {\fontdimen\plussix \font} \def\extraspace {\fontdimen\plusseven\font} \def\mathsupdisplay {\fontdimen13 } \def\mathsupnormal {\fontdimen14 } \def\mathsupcramped {\fontdimen15 } \def\mathsubnormal {\fontdimen16 } \def\mathsubcombined {\fontdimen17 } \def\mathaxisheight {\fontdimen22 } \def\currentspaceskip {\interwordspace\!!plus\interwordstretch\!!minus\interwordshrink\relax} \def\mathstacktotal {\dimexpr\fontdimen10\scriptfont\plustwo+\fontdimen12\scriptfont\plustwo\relax} \def\mathstackvgap {\plusthree\fontdimen8\scriptfont\plusthree} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/colo-ini.mkii0000644000175000017500000024472214536300610024677 0ustar hillehille%D \module %D [ file=colo-ini, %D version=2007.08.08, %D title=\CONTEXT\ Color Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D We need to clean this up further but first we hav eto make sure that mkiv %D code works ok. \writestatus{loading}{ConTeXt Color Macros / Initialization} %D This module implements color. Since \MKII\ and \MKIV\ use a completely %D different approach, this module only implements a few generic mechanisms. \unprotect \chardef\colorversion=1 % temp, needed for tracing purposes, mkiv transition %D We use a couple of local registers. That way we don't have %D to group when converting colors. By the way, this is not %D really faster. We can sqeeze half a second runtime for 50K %D switches on a 1G machine, but the macros will become rather %D ugly then. To mention one such improvement: no colon %D after the key character (.25 sec). \newdimen\colordimen \newcount\colorcount %D When typesetting for paper, we prefer using the \cap{CMYK} %D color space, but for on||screen viewing we prefer \cap{RGB} %D (the previous implementation supported only this scheme). %D Independant of such specifications, we support some automatic %D conversions: %D %D \startitemize[packed] %D \item convert all colors to \cap{RGB} %D \item convert all colors to \cap{CMYK} %D \item convert all colors to gray scales %D \stopitemize %D %D We also support optimization of colors to gray scales. %D %D \startitemize[continue] %D \item reduce gray colors to gray scales %D \item reduce \cap{CMY} components to \cap{K} %D \stopitemize %D %D These options are communicated by means of: \newif\ifRGBsupported \newif\ifCMYKsupported \newif\ifSPOTsupported \newif\ifpreferGRAY \newif\ifGRAYprefered \newif\ifreduceCMYK \newif\ifconverttoGRAY \newif\ifweightGRAY \weightGRAYtrue \newif\ifconvertMPcolors \newif\ifreduceMPcolors \newif\ifforcegrayMPcolors %D The last boolean controls reduction of \cap{CMYK} to %D \cap{CMY} colors. When set to true, the black component %D is added to the other ones. %D %D Prefering gray is not the same as converting to gray. %D Conversion treats each color components in a different way, %D while prefering is just a reduction and thus a %D space||saving option. \newif\iffreezecolors \freezecolorsfalse \newif\ifincolor % true if colors enabled \newif\iflocalcolor \let\colorlist \empty \let\currentspotcolor \empty \let\allspotcolors \empty \let\usedspotcolors \empty \let\usedcolorchannels\empty \let\currentpalet \empty %D \macros %D {definecolor,defineglobalcolor,definenamedcolor,definespotcolor,definemultitonecolor} %D %D \startbuffer %D \definecolor [blue] [c=1,m=.38,y=0,k=.64] % pantone pms 2965 uncoated m %D \definecolor [yellow] [c=0,m=.28,y=1,k=.06] % pantone pms 124 uncoated m %D %D \definespotcolor [blue-100] [blue] [p=1] %D \definespotcolor [yellow-100] [yellow] [p=1] %D %D \definemultitonecolor [pdftoolscolor] [blue=.12,yellow=.28] [c=.1,m=.1,y=.3,k=.1] %D %D \useexternalfigure[demofig][mill.png][object=no] %D %D \startcombination[4*1] %D {\externalfigure[demofig]} {no color} %D {\externalfigure[demofig][color=pdftoolscolor]} {indexed duotone} %D {\externalfigure[demofig][color=blue-100]} {spot color} %D {\externalfigure[demofig][color=yellow-100]} {spot color} %D \stopcombination %D \stopbuffer %D %D \getbuffer \typebuffer \def\definecolor {\dodoubleargument\dodefinecolor} \def\defineglobalcolor {\dodoubleargument\dodefineglobalcolor} \def\definenamedcolor {\dodoubleargument\dodefinenamedcolor} \def\definespotcolor {\dotripleargument\dodefinespotcolor} \def\definemultitonecolor{\doquadrupleempty\dodefinemultitonecolor} % check: registerusedspotcolors % check: registerusedcolorchannels %D \macros %D {doifcolorelse, doifcolor} %D %D Switching to a color is done by means of the following %D command. Later on we will explain the use of palets. We %D define ourselves a color conditional first. \ifx\doifcolorelse\undefined \let\doifcolorelse\secondoftwoarguments \let\doifcolor \gobbleoneargument \fi %D \macros %D {localstartcolor,localstopcolor} %D %D Simple color support, that is without nesting, is provided %D by: \ifx\localstartcolor\undefined \let\localstartcolor\undefined \let\localstopcolor \undefined \fi %D \macros %D {faststartcolor,faststopcolor} %D %D No checking for arguments and such: \ifx\faststartcolor\undefined \def\faststartcolor[#1]{} \def\faststopcolor {} \fi %D These local ones may go away in future versions. %D \macros %D {startcolor,stopcolor} %D %D The more save method, the one that saves the current color %D state and returns to this state afterward, is activated by: %D %D \showsetup{startcolor} \ifx\startcolor\undefined \let\startcolor\undefined \let\stopcolor \undefined \fi %D \macros %D {startcurrentcolor,stopcurrentcolor} \def\startcurrentcolor{\startcolor[\outercolorname]} \def\stopcurrentcolor {\stopcolor} %D \macros %D {color,graycolor} %D %D This leaves the simple color command: %D %D \showsetup{color} %D \showsetup{graycolor} \ifx\color\undefined \def\color [#1]{} \def\graycolor[#1]{} \def\gray {\graycolor} \fi %D \macros %D {localstartraster,localstopraster, %D startraster,stopraster,raster} %D %D The previous conversions are not linear and treat each color %D component according to human perception curves. Pure gray %D (we call them rasters) has equal color components. In %D \CONTEXT\ rasters are only used as backgrounds and these %D don't cross page boundaries in the way color does. Therefore %D we don't need stacks and marks. Just to be compatible with %D color support we offer both 'global' and 'local' commands. \ifx\startraster\undefined \def\startraster [#1]{} \def\stopraster {} \def\raster [#1]{} \def\localstartraster[#1]{} \def\localstopraster {} \fi %D \macros %D {colorvalue, grayvalue} %D %D We can typeset the color components using \type{\colorvalue} and %D \type{\grayvalue}. The commands: %D %D \startbuffer %D color value of SomeKindOfRed: \colorvalue{SomeKindOfRed} \crlf %D gray value of SomeKindOfRed: \grayvalue{SomeKindOfRed} %D \stopbuffer %D %D \typebuffer %D %D show us: %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld \def\colorformatseparator{ } \ifx\colorvalue\undefined \let\colorvalue\gobbleoneargument \let\grayvalue \gobbleoneargument \fi % check: \currentcolorname % check: \outercolorname %D \macros %D {setupcolor} %D %D Color definitions can be grouped in files with the name: %D %D \starttyping %D \f!colorprefix-identifier.tex %D \stoptyping %D %D where \type{\f!colorprefix} is \unprotect {\tttf \f!colorprefix}. %D Loading such a file is done by \protect %D %D \showsetup{setupcolor} %D %D Some default colors are specified in \type{colo-rgb.tex}, %D which is loaded into the format by: %D %D \starttyping %D \setupcolor[rgb] %D \stoptyping \let\colorstyle\empty \def\setupcolor {\dosingleargument\dosetupcolor} \def\dosetupcolor[#1]% {\doifnot{#1}\colorstyle {\def\colorstyle{#1}% \processcommalist[#1]\dodosetupcolor}} \def\dodosetupcolor#1% {\makeshortfilename[\truefilename{\f!colorprefix#1}]% \startreadingfile \readsysfile{\shortfilename.\mksuffix} {\showmessage\m!colors4\colorstyle} {\readsysfile{\shortfilename.tex} {\showmessage\m!colors4\colorstyle} {\showmessage\m!colors5\colorstyle}}% \stopreadingfile} \let\usecolors\setupcolor % check: \chardef\currentcolorchannel=0 % check: \startcolormode % check: \newif\iffilterspotcolor \filterspotcolorfalse % check: \newif\ifdoingspotcolor \doingspotcolorfalse % check: \registercolorchannel %D \macros %D {definetransparency} %D %D This command numbers to names: \def\definetransparency {\dodoubleargument\dodefinetransparency} \def\setupcolors {\dosingleargument\dosetupcolors} \def\resetcolorsplitting {\chardef\currentcolorchannel\zerocount \let\currentspotcolor\empty \filterspotcolorfalse} \def\colorsplitsuffix{\ifcase\currentcolorchannel\else-\@@clsplit\fi} \def\colorsplitprefix{\ifcase\currentcolorchannel\else\@@clsplit-\fi} \def\setcolorsplitting {\resetsystemmode{\v!color\colorsplitsuffix}% \resetcolorsplitting \processaction [\@@clsplit] [ c=>\chardef\currentcolorchannel1,% m=>\chardef\currentcolorchannel2,% y=>\chardef\currentcolorchannel3,% k=>\chardef\currentcolorchannel4,% r=>\chardef\currentcolorchannel5,% g=>\chardef\currentcolorchannel6,% b=>\chardef\currentcolorchannel7,% s=>\chardef\currentcolorchannel8,% \v!no=>,% \currentcolorchannel0,% all colors \s!default=>,% \currentcolorchannel0,% all colors \s!unknown=>\filterspotcolortrue \edef\currentspotcolor{\commalistelement}]% \setsystemmode{\v!color\colorsplitsuffix}% \iffilterspotcolor \let\@@clrgb\v!no \fi} \ifx\dosetupcolormodel\undefined \let\dosetupcolormodel\relax \fi \def\dosetupcolors[#1]% some no longer make sense in MkIV {\getparameters[\??cl][#1]% \doifelse\@@clspot\v!yes \SPOTsupportedtrue \SPOTsupportedfalse \doifelsenothing\@@clsplit \resetcolorsplitting \setcolorsplitting \doifelse\@@clreduction\v!yes \reduceCMYKtrue \reduceCMYKfalse \doifelse\@@clexpansion\v!yes \freezecolorstrue \freezecolorsfalse \doifelse\@@clcriterium\v!all \hidesplitcolortrue \hidesplitcolorfalse \doifelse\@@clrgb\v!no {\ifRGBsupported \ifproductionrun\showmessage\m!colors {9}\v!rgb \fi\RGBsupportedfalse \fi} {\ifRGBsupported \else\ifproductionrun\showmessage\m!colors{10}\v!rgb \fi\RGBsupportedtrue \fi}% \doifelse\@@clcmyk\v!no {\ifCMYKsupported \ifproductionrun\showmessage\m!colors {9}\v!cmyk \fi\CMYKsupportedfalse\fi} {\ifCMYKsupported\else\ifproductionrun\showmessage\m!colors{10}\v!cmyk \fi\CMYKsupportedtrue \fi}% \doifelse\@@clmpcmyk\v!no {\ifMPcmykcolors \ifproductionrun\showmessage\m!colors {9}{\v!mp\v!cmyk}\fi\MPcmykcolorsfalse \fi} {\ifMPcmykcolors \else\ifproductionrun\showmessage\m!colors{10}{\v!mp\v!cmyk}\fi\MPcmykcolorstrue \fi}% \doifelse\@@clmpspot\v!no {\ifMPspotcolors \ifproductionrun\showmessage\m!colors {9}{\v!mp\v!spot}\fi\MPspotcolorsfalse \fi} {\ifMPspotcolors \else\ifproductionrun\showmessage\m!colors{10}{\v!mp\v!spot}\fi\MPspotcolorstrue \fi}% \preferGRAYfalse \processaction [\@@clconversion] [ \v!yes=>\preferGRAYtrue, \v!always=>\preferGRAYtrue\RGBsupportedfalse\CMYKsupportedfalse]% \ifRGBsupported \converttoGRAYfalse \forcegrayMPcolorsfalse \else\ifCMYKsupported \converttoGRAYfalse \forcegrayMPcolorsfalse \convertMPcolorstrue \ifreduceCMYK \reduceMPcolorstrue \fi \else \ifconverttoGRAY\else\showmessage\m!colors{11}\empty\fi \converttoGRAYtrue \forcegrayMPcolorstrue \convertMPcolorsfalse \reduceMPcolorsfalse \fi\fi \processaction [\@@clstate] [ \v!global=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi \incolortrue\localcolorfalse, \v!local=>\ifincolor\else\showmessage\m!colors2\colorstyle\fi \incolortrue\localcolortrue, \v!start=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi \incolortrue\localcolorfalse \let\@@clstate\v!global, \v!stop=>\incolorfalse\localcolorfalse \forcegrayMPcolorstrue]% \dosetupcolormodel \initializemaintextcolor} %D \macros %D {startregistercolor,stopregistercolor,permitcolormode} %D %D If you only want to register a color, the switch \type %D {\ifpermitcolormode} can be used. That way the nested %D colors know where to go back to. \ifx\startregistercolor\undefined \def\startregistercolor[#1]{} \def\stopregistercolor {} \fi %D We use these macros for implementing text colors %D (actually, the first application was in foreground %D colors). %D %D \starttyping %D \starttextcolor[red] %D \dorecurse{10}{\input tufte \color[green]{oeps} \par} %D \stoptextcolor %D \stoptyping %D %D This is more efficient than the alternative: %D %D \starttyping %D \setupbackgrounds[text][foregroundcolor=red] %D \startregistercolor[red] %D \dorecurse{10}{\input tufte \color[green]{oeps} \par} %D \stopregistercolor %D \stoptyping \def\maintextcolor {} \def\defaulttextcolor {black} \def\@@themaintextcolor{themaintextcolor} \ifx\initializemaintextcolor\undefined \def\starttextcolor [#1]{} \def\stoptextcolor {} \def\initializemaintextcolor {} \fi \ifx\restoretextcolor\undefined % to be redone \let\restoretextcolor \firstofoneargument \let\localstarttextcolor\relax \let\localstoptextcolor \relax \fi %D In this documentation we will not go into too much details %D on palets. Curious users can find more information on this %D topic in \from[use of color]. %D %D At the moment we implemented color in \CONTEXT\ color %D printing was not yet on the desktop. In spite of this lack our %D graphics designer made colorfull illustrations. When printed %D on a black and white printer, distinctive colors can come %D out equally gray. We therefore decided to use only colors %D that were distinctive in colors as well as in black and %D white print. %D %D Although none of the graphic packages we used supported %D logical colors and global color redefition, we build this %D support into \CONTEXT. This enabled us to experiment and %D also prepared us for the future. %D \macros %D {definepalet} %D %D Colors are grouped in palets. The colors in such a palet can %D have colorful names, but best is to use names that specify %D their use, like {\em important} or {\em danger}. As a sort %D of example \CONTEXT\ has some palets predefined, %D like:\footnote{At the time I wrote the palet support, I was %D reading 'A hort history of time' of S.~Hawkins, so that's %D why we stuck to quarks.} %D %D \starttyping %D \definepalet %D [alfa] %D [ top=rood:7, %D bottom=groen:6, %D up=blauw:5, %D down=cyaan:4, %D strange=magenta:3, %D charm=geel:2] %D \stoptyping %D %D It's formal definition is: %D %D \showsetup{definepalet} %D %D Visualized, such a palet looks like: %D %D \startbuffer[palet] %D \showpalet [alfa] [horizontal,name,number,value] %D \stopbuffer %D %D \startlinecorrection %D \getbuffer[palet] %D \stoplinecorrection %D %D This bar shows both the color and gray alternatives of the %D palet components (not visible in black and white print). %D %D When needed, one can copy a palet by saying: %D %D \starttyping %D \definepalet [TEXcolorpretty] [colorpretty] %D \stoptyping %D %D This saves us some typing in for instance the modules that %D deal with pretty verbatim typesetting. \def\definepalet {\dodoubleargument\dodefinepalet} \def\dodefinepalet[#1][#2]% {\doifassignmentelse{#2} {%\showmessage\m!colors6{#1}% \letvalue{\??pa#1}\empty \setevalue{\??pa\??pa#1}{#2}% \def\dodododefinepalet[##1=##2]% {\doifvaluesomething{\??pa#1} {\setevalue{\??pa#1}{\csname\??pa#1\endcsname,}}% \setevalue{\??pa#1}{\csname\??pa#1\endcsname##1}% \dodefinepaletcolor{#1}{##1}{##2}}% \def\dododefinepalet##1% {\dodododefinepalet[##1]}% \processcommalist[#2]\dododefinepalet} {\doifdefined{\??pa#2} {\expanded{\dodefinepalet[#1][\csname\??pa\??pa#2\endcsname]}}}} \ifx\dodefinepaletcolor\undefined \let\dodefinepaletcolor\gobblethreearguments \fi \let\paletsize\!!zerocount \def\getpaletsize[#1]% {\getcommacommandsize[\csname\??pa\??pa#1\endcsname]% \edef\paletsize{\number\commalistsize}} %D Instead of refering to colors, one can also directly specify %D a color: %D %D \starttyping %D \definepalet[test][xx=green] %D \definepalet[test][xx={y=.4}] %D \stoptyping %D \macros %D {setuppalet} %D %D Colors are taken from the current palet, if defined. %D Setting the current palet is done by: %D %D \showsetup{setuppalet} \let\currentpalet\empty \def\setuppalet {\dosingleempty\dosetuppalet} \def\dosetuppalet[#1]% {\edef\currentpalet{#1}% \ifx\currentpalet\empty % seems to be a reset \else\ifcsname\??pa\currentpalet\endcsname \edef\currentpalet{#1:}% \else \showmessage\m!colors7\currentpalet \let\currentpalet\empty \fi\fi} %D \macros %D {showpalet} %D %D The previous visualization was typeset with: %D %D \typebuffer[palet] %D %D This commands is defined as: %D %D \showsetup{showpalet} \fetchruntimecommand \showpalet {\f!colorprefix\s!run} %D \macros %D {showcolorcomponents} %D %D \starttyping %D \showcolorcomponents[color-1,color-2] %D \stoptyping \fetchruntimecommand \showcolorcomponents {\f!colorprefix\s!run} %D \macros %D {definecolorgroup} %D %D The naming of the colors in this palet suggests some %D ordening, which in turn is suported by color grouping. %D %D \starttyping %D \definecolorgroup %D [red] %D [1.00:0.90:0.90, %D 1.00:0.80:0.80, %D 1.00:0.70:0.70, %D 1.00:0.55:0.55, %D 1.00:0.40:0.40, %D 1.00:0.25:0.25, %D 1.00:0.15:0.15, %D 0.90:0.00:0.00] %D \stoptyping %D %D In such a color group colors are numbered from~$1$ to~$n$. %D %D \showsetup{definecolorgroup} %D %D This kind of specification is not only more compact than %D defining each color separate, it also loads faster and takes %D less bytes. \def\definecolorgroup {\dotripleempty\dodefinecolorgroup} \def\dododefinecolorgroupgray [#1][#2:#3]{\definecolor [#1:\the\colorcount][s=#2]} \def\dododefinecolorgrouprgb [#1][#2:#3:#4:#5]{\definecolor [#1:\the\colorcount][r=#2,g=#3,b=#4]} \def\dododefinecolorgroupcmyk[#1][#2:#3:#4:#5:#6]{\definecolor [#1:\the\colorcount][c=#2,m=#3=,y=#4,k=#5]} \def\dododefinecolorgroupspot [#1][#2:#3:#4]{\definespotcolor[#1:\the\colorcount][#2][p=#3]} \def\dododefinecolorgroup#1#2% {\advance\colorcount\plusone \getvalue{dododefinecolorgroup\currentcolorspace}[#1][#2:0:0:0:0]} \def\dodefinecolorgroup[#1][#2][#3]% obsolete, just use palets {\ifthirdargument \doifelsenothing{#2}{\let\currentcolorspace\v!rgb}{\def\currentcolorspace{#2}}% \colorcount\zerocount \processcommalist[#3]{\dododefinecolorgroup{#1}}% \else \doifinstringelse{:}{#2} {\definecolorgroup[#1][\v!rgb][#2]} {\doloop {\doifdefinedelse{\??cr#2:\recurselevel} {\setevalue{\??cr#1:\recurselevel}{\csname\??cr#2:\recurselevel\endcsname}} {\exitloop}}}% \fi} %D \macros %D {showcolorgroup} %D %D We can show the group by: %D %D \startbuffer %D \showcolorgroup [blue] [horizontal,name,number,value] %D \stopbuffer %D %D \typebuffer %D %D or in color: %D %D \startlinecorrection %D \getbuffer %D \stoplinecorrection %D %D which uses: %D %D \showsetup{showcolorgroup} \fetchruntimecommand \showcolorgroup {\f!colorprefix\s!run} %D There are ten predefined color groups, like %D \color[green]{\em groen}, \color[red]{\em rood}, %D \color[blue]{\em blauw}, \color[cyan]{\em cyaan}, %D \color[magenta]{\em magenta} and \color[yellow]{\em geel}. %D %D \startlinecorrection %D \hbox to \hsize %D {\hss %D \showcolorgroup [red] [vertical,name,number]\hss %D \showcolorgroup [green] [vertical,name]\hss %D \showcolorgroup [blue] [vertical,name]\hss %D \showcolorgroup [cyan] [vertical,name]\hss %D \showcolorgroup [magenta][vertical,name]\hss %D \showcolorgroup [yellow] [vertical,name]\hss} %D \stoplinecorrection %D %D These groups are used to define palets {\em alfa} upto {\em %D zeta}. As long as we don't use colors from the same row, we %D get ourselves distinctive palets. By activating such a palet %D one gains access to its members {\em top} to {\em charm} (of %D course one should use more suitable names than these). %D %D \startlinecorrection %D \hbox to \hsize %D {\showpalet [alfa] [vertical,name,number]\hss %D \showpalet [beta] [vertical,name]\hss %D \showpalet [gamma] [vertical,name]\hss %D \showpalet [delta] [vertical,name]\hss %D \showpalet [epsilon] [vertical,name]\hss %D \showpalet [zeta] [vertical,name]} %D \stoplinecorrection %D %D By using the keyword \type {value} the individual color %D components are shown too. When printed in color, these %D showcases show both the colors and the gray value. %D \macros %D {comparepalet} %D %D There are some more testing macros available: %D %D \startbuffer %D \comparepalet [alfa] %D \stopbuffer %D %D \typebuffer %D %D shows the palet colors against a background: %D %D \startlinecorrection %D \getbuffer %D \stoplinecorrection %D %D The formal definition is: %D %D \showsetup{comparepalet} \fetchruntimecommand \comparepalet {\f!colorprefix\s!run} %D \macros %D {comparecolorgroup} %D %D The similar command: %D %D \startbuffer %D \comparecolorgroup [blue] %D \stopbuffer %D %D \typebuffer %D %D shows color groups: %D %D \startlinecorrection %D \getbuffer %D \stoplinecorrection %D %D this commands are defined as: %D %D \showsetup{comparecolorgroup} \fetchruntimecommand \comparecolorgroup {\f!colorprefix\s!run} %D \macros %D {showcolor} %D %D But let's not forget that we also have the more traditional %D non||related colors. These show up after: %D %D \starttyping %D \showcolor [name] %D \stoptyping %D %D Where \type{name} for instance can be \type{rgb}. %D %D \showsetup{showcolor} \fetchruntimecommand \showcolor {\f!colorprefix\s!run} %D It would make sense to put the following code in \type %D {colo-mps}, but it it rather low level. %D \macros %D {negatecolorcomponent,negatedcolorcomponent} %D %D These speak for themselves. See \type {colo-ext} for usage. \def\negatecolorcomponent#1% #1 = \macro {\scratchdimen\onepoint\advance\scratchdimen-#1\onepoint \ifdim\scratchdimen<\zeropoint\scratchdimen\zeropoint\fi \edef#1{\withoutpt\the\scratchdimen}} \let\negatedcolorcomponent\firstofoneargument \def\negatedcolorcomponent#1% {\ifdim\dimexpr\onepoint-#1\onepoint\relax<\zeropoint \!!zerocount \else \expandafter\withoutpt\the\dimexpr\onepoint-#1\onepoint\relax \fi} \def\negatecolorcomponent#1% #1 = \macro {\edef#1{\negatedcolorcomponent{#1}}} %D \macros %D {ifMPgraphics, ifMPcmykcolors, MPcolor} %D %D A very special macro is \type{\MPcolor}. This one can be %D used to pass a \CONTEXT\ color to \METAPOST. %D %D \starttyping %D \MPcolor{my own red} %D \stoptyping %D %D This macro returns a \METAPOST\ triplet \type{(R,G,B)}. %D Unless \CMYK\ color support is turned on with \type %D {MPcmyk}, only \cap{RGB} colors and gray scales are %D supported. \newif\ifMPcmykcolors % \MPcmykcolorsfalse \newif\ifMPspotcolors % \MPspotcolorsfalse \ifx\MPcolor\undefined \def\MPcolor#1{(0,0,0)} \fi %D \macros %D {PDFcolor,FDFcolor} %D %D Similar alternatives are avaliable for \PDF: %D For the moment we keep the next downward compatibility %D switch, i.e.\ expanded colors. However, predefined colors %D and palets are no longer expanded (which is what I wanted %D in the first place). %D %D Well, in case we want to do color separation and use CMYK %D colors only, this is dangerous since unwanted remapping may %D take place. Especially when we redefine already defined %D colors in another color space (e.g. darkgreen is %D predefined in RGB color space, so a redefinition in CMYK %D coordinates before RGB mode is disabled, would give %D unexpected results due to the already frozen color spec.) %D %D So, from now on, colors are not frozen any more! \chardef\currentcolorchannel=0 \newif\iffilterspotcolor \filterspotcolorfalse \newif\ifdoingspotcolor \doingspotcolorfalse \def\registercolorchannel#1% {\ifdoingspotcolor \else \global\expandafter\chardef\csname\??cs#1\endcsname\zerocount \fi} \newif\ifhidesplitcolor \hidesplitcolortrue %D The next macro is for instance used in figure splitting: \def\doifseparatingcolorselse {\iffilterspotcolor \@EA\firstoftwoarguments \else\ifcase\currentcolorchannel \@EAEAEA\secondoftwoarguments \else \@EAEAEA\firstoftwoarguments \fi\fi} \def\doifcolorchannelelse#1% {\doifseparatingcolorselse {\doifelsenothing{#1} \secondoftwoarguments {\doifelse{#1}\@@clsplit \firstoftwoarguments \secondoftwoarguments}} \secondoftwoarguments} \def\resetcolorseparation {\filterspotcolorfalse \chardef\currentcolorchannel\zerocount} %D These can be used in selecting specific files (like %D figuredatabases). % we already have: % % \def\colorsplitsuffix{\ifcase\currentcolorchannel\else-\@@clsplitsen\fi} % \def\colorsplitprefix{\ifcase\currentcolorchannel\else\@@clsplitsen-\fi} \def\colorchannelprefix{\doifseparatingcolorselse\@@clsplit\empty-} \def\colorchannelsuffix{-\doifseparatingcolorselse\@@clsplit\empty} %D We now define the low level macros: \chardef\colorversion=1 %D Color support is not present in \TEX. Colorful output can %D however be accomplished by using specials. This also means %D that this support depends on the \DVI\ driver used. At the %D moment this module was written, still no decent standard on %D color specials has been agreed upon. We therefore decided to %D implement a mechanism that is as independant as possible of %D drivers. %D %D Color support shares with fonts that is must be implemented %D in a way that permits processing of individual \DVI\ pages. %D Furthermore it should honour grouping. The first condition %D forces us to use a scheme that keeps track of colors at %D page boundaries. This can be done by means of \TEX's %D marking mechanism (\type{\mark}). %D %D When building pages, \TEX\ periodically looks at the %D accumulated typeset contents and breaks the page when %D suitable. At that moment, control is transfered to the %D output routine. This routine takes care of building the %D pagebody and for instance adds headers and footers. The page %D can be broken in the middle of some colored text, but %D headers and footers are often in black upon white or %D background. If colors are applied there, they definitely %D are used local, which means that they don't cross page %D borders. %D %D Boxes are handled as a whole, which means that when we %D apply colors inside a box, those colors don't cross page %D boundaries, unless of course boxes are split or unboxed. %D Especially in interactive texts, colors are often used in %D such a local way: in boxes (buttons and navigational tools) %D or in the pagebody (backgrounds). %D %D So we can distinguish local colors, that don't cross %D pages from global colors, of which we can end many pages %D later. The color macros will treat both types in a different %D way, thus gaining some speed. %D %D This module also deals with gray scales. Because similar %D colors can end up in the same gray scale when printed in %D black and white, we also implement a palet system that deals %D with these matters. Because of fundamental differences %D between color and gray scale printing, in \CONTEXT\ we also %D differ between these. For historic reasons |<|we first %D implemented gray scales using patterns of tiny periods|>| %D and therefore called them {\em rasters}. So don't be %D surprised if this term shows up. %D \macros %D {definecolor} %D %D We will enable users to specify colors in \cap{RGB} and %D \cap{CMYK} color spaces or gray scales using %D %D \showsetup{definecolor} %D %D For example: %D %D \starttyping %D \definecolor [SomeKindOfRed] [r=.8,g=.05,b=.05] %D \stoptyping %D %D Such color specifications are saved in a macro in the %D following way: %D %D \starttyping %D \setvalue{\??cr name}{R:r:g:b} %D \setvalue{\??cr name}{C:c:m:y:k} %D \setvalue{\??cr name}{S:s} %D \stoptyping %D %D Gray scales are specified with the \type{s} parameter, %D where the \type {s} is derived from {\em screen}. %D %D Starting with \PDF\ 1.4 (2001) \CONTEXT\ supports %D transparent colors. The transparency factor is represented %D by a \type {t} and the transparency method by an \type {a} %D (alternative). Later we will implement more control %D (probably by symbolic methods. So, currently the data is %D stored as follows: %D %D \starttyping %D \setvalue{\??cr name}{R:r:g:b:a:t} %D \setvalue{\??cr name}{C:c:m:y:k:a:t} %D \setvalue{\??cr name}{S:s:a:t} %D \stoptyping % r g b : rbg % c m y k : cmyk % s : gray % p n d f : spot % h : hexadecimal % t a : transparency % e : equivalent (spotcolors) \def\@@cl@@z{0} \def\@@cl@@o{1} \def\@@resetcolorparameters {\let\@@cl@@r\@@cl@@z \let\@@cl@@g\@@cl@@z \let\@@cl@@b\@@cl@@z \let\@@cl@@c\@@cl@@z \let\@@cl@@m\@@cl@@z \let\@@cl@@y\@@cl@@z \let\@@cl@@k\@@cl@@z \let\@@cl@@s\@@cl@@z \let\@@cl@@p\@@cl@@o \let\@@cl@@n\empty \let\@@cl@@d\empty \let\@@cl@@f\@@cl@@o \let\@@cl@@h\empty \let\@@cl@@e\empty \let\@@cl@@t\@@cl@@z \let\@@cl@@a\@@cl@@z} \@@resetcolorparameters \def\@@cl@@A{\@@cl@@a} % a hook for symbolic conversion, see below %D Handling a few nested \type{\cs}'s is no problem (\type %D {\@EA\@EAEAEA\@EA}) but we need a full expansion, so I %D tried one of the fully expandable primitives using a sort %D of delimited thing. I tried \type {\number} first, but this %D does not work, but \type {\romannumeral} does. Actually, %D \type{\romannumeral0} returns nothing, so it's a perfect %D candidate for this kind of hackery. This reminds me that I %D have to look into David Kastrup's Euro\TeX\ 2002 article %D because he is using \type {\romannumeral} for loops %D (repetitive \quote {m} stuff). % \def\x{\y}\def\y{\z}\def\z{0:1:1:1} % % \def\bla #1:#2:#3\end{} % % \@EA\bla\romannumeral\x\end \def\colorXpattern{0S:\@@cl@@z:\@@cl@@z:\@@cl@@z} \def\colorZpattern{0S:\@@cl@@z:\@@cl@@A:\@@cl@@t} \def\colorSpattern{0S:\@@cl@@s:\@@cl@@A:\@@cl@@t} \def\colorCpattern{0C:\@@cl@@c:\@@cl@@m:\@@cl@@y:\@@cl@@k:\@@cl@@A:\@@cl@@t} \def\colorRpattern{0R:\@@cl@@r:\@@cl@@g:\@@cl@@b:\@@cl@@A:\@@cl@@t} %def\colorPpattern{0P:\@@cl@@n:\@@cl@@p:\@@cl@@A:\@@cl@@t} \def\colorPpattern{0P:\@@cl@@n:\@@cl@@f:\@@cl@@d:\@@cl@@p:\@@cl@@A:\@@cl@@t} %D The extra 0 catches empty colors specs (needed for the %D \type {\MPcolor} and \type {\PDFcolor} conversion (\type %D {\@@cr} equals \type {\relax}!). \def\handlecolorwith#1{\@EA#1\romannumeral0} %D Next comes the main definition macro. \def\dodefinecolor {\dododefinecolor\relax \setvalue \setevalue1} \def\dodefineglobalcolor{\dododefinecolor\doglobal\setgvalue\setxvalue1} \def\dodefinenamedcolor {\dododefinecolor\doglobal\setvalue \setevalue0} \let\colorlist\empty % not really used, only for colo-run \setfalse\collectcolorsinlist \def\collectcolorinlist#1{\doglobal\addtocommalist{#1}\colorlist} \def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value {\ifconditional\collectcolorsinlist\collectcolorinlist{#5}\fi \doifassignmentelse{#6} {\@@resetcolorparameters \getparameters[\??cl @@][#6]% \ifx\@@cl@@h\empty \doifelse{\@@cl@@r\@@cl@@g\@@cl@@b}{\@@cl@@z\@@cl@@z\@@cl@@z} {\doifelse{\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k}{\@@cl@@z\@@cl@@z\@@cl@@z\@@cl@@z} {\doifelse\@@cl@@s\@@cl@@z {\showmessage\m!colors8{{[#6]},#5}% #3{\??cr#5}{\colorZpattern}} {#3{\??cr#5}{\colorSpattern}}} {#3{\??cr#5}{\colorCpattern}}} {#3{\??cr#5}{\colorRpattern}}% \else \setxvalue{\??cr#5}{\colorHpattern}% \fi % new: e=external spot color name \ifx\@@cl@@e\empty \else \doregisterspotcolorname{#5}\@@cl@@e \fi} {\doifelsenothing\currentpalet \donefalse {\doifdefinedelse{\??cr\currentpalet#6}\donetrue\donefalse}% \ifdone \doifnot{#5}{#6} {#2{\??cr#5}{\paletcolorspec{#6}}}% \else \doifdefinedelse{\??cr#6} {\doifelse{#5}{#6} {% this way we can freeze \definecolor[somecolor][somecolor] % and still prevent cyclic definitions \iffreezecolors#3{\??cr#5}{\csname\??cr#6\endcsname}\fi} {\iffreezecolors\@EA#3\else\@EA#2\fi{\??cr#5}{\csname\??cr#6\endcsname}}} {\showmessage\m!colors3{#5 (def)}}% \fi}% \ifcase#4\or \unexpanded#2{#5}{\switchtocolor[#5]}% \unexpanded toegevoegd \fi} \def\paletcolorspec#1% {\csname\??cr\currentpalet#1\endcsname} %D Hex color support is not enabled by default. You need to say \type %D {\setupcolor [hex]} to get this working. \ifx\colorHpattern\undefined \let\colorHpattern\colorZpattern \fi %D New and experimental. \def\dodefinespotcolor[#1][#2][#3]% todo: always global {\doifnot{#1}{#2} {\@@resetcolorparameters \ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi \edef\@@cl@@n{#2}% \getparameters[\??cl @@][#3]% \doifnothing\@@cl@@p{\let\@@cl@@p\!!plusone}% \ifx\@@cl@@e\empty \else \doregisterspotcolorname{#2}\@@cl@@e \fi \doglobal\addtocommalist{#2}\allspotcolors \setxvalue{\??cr#1}{\colorPpattern}% was \setevalue \setgvalue{#1}{\switchtocolor[#1]}}} % was \setvalue \def\registerusedspotcolors {\ifx\allspotcolors\empty \else \bgroup \let\usedspotcolors\empty \def\docommand##1% {\doifdefined{\??cs##1}{\addtocommalist{##1}\usedspotcolors}}% \processcommacommand[\allspotcolors]\docommand \savecurrentvalue\usedspotcolors\usedspotcolors \egroup \fi} \def\registerusedcolorchannels {\bgroup \doifdefinedelse{\??cs c} {\def\usedcolorchannels{c,m,y,k}}% {\let\usedcolorchannels\empty}% \doifdefined{\??cs r} {\addtocommalist{r,g,b}\usedcolorchannels}% \doifdefined{\??cs s} {\ExpandBothAfter\doifnotinset{k}\usedcolorchannels {\addtocommalist{s}\usedcolorchannels}}% \savecurrentvalue\usedcolorchannels\usedcolorchannels \egroup} \prependtoks \registerusedspotcolors \registerusedcolorchannels \to \everylastshipout \def\registerusedspotcolor#1% {\global\@EA\chardef\csname\??cs#1\endcsname\zerocount} %D On top of spotcolors, we define multitone colors. You'd better know %D what you're doing because invalid definitions will lead to invalid %D documents (i.e.\ resources). % \definecolor [darkblue] [c=.5,m=.5] % \definecolor [darkyellow] [y=.5] % % \definemultitonecolor [whatever] [darkblue=.5,darkyellow=.5] [c=.25,m=.25,y=.25] [a=1,t=.5] % \definemultitonecolor [another] [darkblue=.5,darkyellow=.5] [c=.25,m=.25,y=.25] \def\dodefinemultitonecolor[#1][#2][#3][#4]% {\let\@@cl@@cl@@D\empty % n's \let\@@cl@@cl@@P\empty % p's \let\@@cl@@cl@@N\empty % name \scratchcounter\zerocount \processcommacommand[#2]\dododefinemultitonecolor \bgroup \lccode`\.=`\_% \lccode`\,=`\_% \lccode`\:=`\_% \lccode`\;=`\_% \lccode`\+=`\_% \lccode`\-=`\_% \lccode`\*=`\_% \lccode`\/=`\_% % \lccode`\_=`\_% % not needed, other attribute in driver: % % \@@resetcolorparameters % \getparameters[#4]% % \ifx\@@cl@@t\@@cl@@z\else % \edef\@@cl@@cl@@N{\@@cl@@cl@@N_\@@cl@@t_\@@cl@@a}% % \fi \lowercase\@EA{\@EA\xdef\@EA\@@cleancolor\@EA{\@@cl@@cl@@N}}% \egroup \setxvalue{\??cl\@@cleancolor\s!check}{\noexpand\docheckmultitonecolor{\@@cl@@cl@@D}}% \expanded{\defineglobalcolor[\@@cleancolor][#3,#4]}% \expanded{\definespotcolor[#1][\@@cleancolor][#4,f=\the\scratchcounter,p={\@@cl@@cl@@P},d={\@@cl@@cl@@D}]}} \def\docheckmultitonecolor#1% {\flushatshipout {\let\checkmultitonecolor\gobbleoneargument \def\docommand##1{\hbox{\definecolor[\s!dummy-100][##1][p=1]\color[\s!dummy-100]}}% \processcommalist[#1]\docommand}} \def\checkmultitonecolor#1% {\csname\??cl#1\s!check\endcsname\letgvalue{\??cl#1\s!check}\relax} \def\dodefinespotcolor[#1][#2][#3]% todo: always global (REDEFINED) {\doifnot{#1}{#2} {\@@resetcolorparameters \ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi \edef\@@cl@@n{#2}% \getparameters[\??cl @@][#3]% \doifnothing \@@cl@@p{\let\@@cl@@p\!!plusone}% \doifsomething\@@cl@@e{\doregisterspotcolorname{#2}\@@cl@@e}% \doglobal\addtocommalist{#2}\allspotcolors \setxvalue{\??cr#1}{\colorPpattern}% was \setevalue \setgvalue{#1}{\switchtocolor[#1]}}}% was \setvalue \def\dododefinemultitonecolor#1% {\advance\scratchcounter\plusone \splitstring#1\at=\to\!!stringa\and\!!stringb \ifx\@@cl@@cl@@D\empty \let\@@cl@@cl@@D\!!stringa \let\@@cl@@cl@@P\!!stringb \normalizecolor\!!stringb \edef\@@cl@@cl@@N{\!!stringa_\!!stringb}% \else \edef\@@cl@@cl@@D{\@@cl@@cl@@D,\!!stringa}% \edef\@@cl@@cl@@P{\@@cl@@cl@@P,\!!stringb}% \normalizecolor\!!stringb \edef\@@cl@@cl@@N{\@@cl@@cl@@N_\!!stringa_\!!stringb}% \fi} % \def\dododefinemultitonecolor#1% a/b safe % {\advance\scratchcounter\plusone % \splitstring#1\at=\to\@@cl@@one\and\@@cl@@two % \ifx\@@cl@@cl@@D\empty % \let\@@cl@@cl@@D\@@cl@@one % \let\@@cl@@cl@@P\@@cl@@two % \normalizecolor\@@cl@@two % \edef\@@cl@@cl@@N{\@@cl@@one_\@@cl@@two}% % \else % \edef\@@cl@@cl@@D{\@@cl@@cl@@D,\@@cl@@one}% % \edef\@@cl@@cl@@P{\@@cl@@cl@@P,\@@cl@@two}% % \normalizecolor\@@cl@@two % \edef\@@cl@@cl@@N{\@@cl@@cl@@N_\@@cl@@one_\@@cl@@two}% % \fi} %D The names of colors are stored in a comma separated list %D only for the purpose of showing them with \type {\showcolor}. %D %D \startbuffer %D \definecolor [SomeKindOfRed] [r=.8,g=.05,b=.05] %D \stopbuffer %D %D \typebuffer %D \getbuffer %D %D This color shows up as \color [SomeKindOfRed] {some kind %D of red}. %D %D \starttyping %D \setupcolors[state=start] %D %D \definecolor[mygreen][green] %D \definecolor[green][g=.5] %D %D \startcolor[mygreen]test\stopcolor %D %D \setupcolors[expansion=no] %D %D \definecolor[mygreen][green] %D \definecolor[green][g=.5] %D %D \startcolor[mygreen]test\stopcolor %D \stoptyping %D \macros %D {startcolormode,stopcolormode,permitcolormode} %D %D We use \type{\stopcolormode} to reset the color in %D whatever color space and do so by calling the corresponding %D special. Both commands can be used for fast color %D switching, like in colored verbatim, \newif\ifpermitcolormode \permitcolormodetrue \def\dowithcolor#1#2% #1=\action #2=color {\ifincolor\ifpermitcolormode \ifcsname\??cr\currentpalet#2\endcsname \handlecolorwith#1\csname\??cr\currentpalet#2\endcsname\od \else\ifcsname\??cr#2\endcsname \handlecolorwith#1\csname\??cr#2\endcsname\od \fi\fi \fi\fi} \def\startcolormode % includes \ifincolor\ifpermitcolormode {%\dostoptransparency % needed for: {test \trans test \notrans test} \conditionalstoptransparency \dowithcolor\execcolorRCSP} \def\stopcolormode {\ifincolor\ifpermitcolormode \supportedstoptransparency \dostopcolormode \fi\fi} \def\restorecolormode {\ifincolor\ifpermitcolormode \supportedstoptransparency \dostopcolormode \ifx\maintextcolor\empty \else \startcolormode\maintextcolor \fi \fi\fi} %D Color modes are entered using the next set of commands. %D The \type{\stop} alternatives are implemented in a way %D that permits non||grouped use. %D %D The, for this module redundant, check if we are in color %D mode is needed when we use these macros in other modules. \def\execcolorRCSP#1:% {\csname execcolor#1\endcsname} \def\execcolorR {\iffilterspotcolor \@EA\noexeccolorR \else \@EA\doexeccolorR \fi} \def\execcolorC {\iffilterspotcolor \@EA\noexeccolorC \else \@EA\doexeccolorC \fi} \def\execcolorS {\iffilterspotcolor \@EA\noexeccolorS \else \@EA\doexeccolorS \fi} \def\execcolorP {\iffilterspotcolor \@EA\doexeccolorPP \else\ifcase\currentcolorchannel \@EAEAEA\doexeccolorP \else \@EAEAEA\noexeccolorP \fi\fi} \def\doexeccolorR#1:#2:#3:% {\edef\@@cl@@r{#1}\edef\@@cl@@g{#2}\edef\@@cl@@b{#3}% \ifpreferGRAY\ifx\@@cl@@r\@@cr@@g\ifx\@@cl@@r\@@cl@@b \GRAYpreferedtrue \fi\fi\fi \ifincolor\else\RGBsupportedfalse\CMYKsupportedfalse\fi \ifGRAYprefered \registercolorchannel\c!s \let\@@cl@@s\@@cl@@r \normalizeGRAY \doexeccolorgray \else\ifRGBsupported \registercolorchannel\c!r \normalizeRGB \doexeccolorrgb \else\ifCMYKsupported \registercolorchannel\c!c \convertRGBtoCMYK\@@cl@@r\@@cl@@g\@@cl@@b \normalizeCMYK \doexeccolorcmyk \else \registercolorchannel\c!s \convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b \normalizeGRAY \doexeccolorgray \fi\fi\fi \exectransparency} \def\doexeccolorC#1:#2:#3:#4:% {\edef\@@cl@@c{#1}\edef\@@cl@@m{#2}\edef\@@cl@@y{#3}\edef\@@cl@@k{#4}% \ifpreferGRAY\ifx\@@cl@@k\@@cl@@z\ifx\@@cl@@c\@@cr@@m\ifx\@@cl@@c\@@cl@@y \GRAYpreferedtrue \fi\fi\fi\fi \ifincolor\else\RGBsupportedfalse\CMYKsupportedfalse\fi \ifGRAYprefered \registercolorchannel\c!s \let\@@cl@@s\@@cl@@c \normalizeGRAY \doexeccolorgray \else\ifCMYKsupported \registercolorchannel\c!c \ifreduceCMYK \convertCMYKtoCMY\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k \fi \normalizeCMYK \doexeccolorcmyk \else\ifRGBsupported \registercolorchannel\c!r \convertCMYKtoRGB\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k \normalizeRGB \doexeccolorrgb \else \registercolorchannel\c!s \convertCMYKtoGRAY\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k \normalizeGRAY \doexeccolorgray \fi\fi\fi \exectransparency} \def\doexeccolorS#1:% {\edef\@@cl@@s{#1}% \registercolorchannel\c!s \normalizeGRAY \doexeccolorgray \exectransparency} % \def\doexeccolorP#1:#2:% % {\edef\@@cl@@n{#1}% % \edef\@@cl@@p{#2}% % \registerusedspotcolor\@@cl@@n % \ifSPOTsupported % \dowithcolor\registerspotcolor\@@cl@@n % \dostartspotcolormode\@@cl@@n\@@cl@@p % \else % \doingspotcolortrue % \let\spotcolorfactor\@@cl@@p % \factorizecolortrue % using counter and array % \dowithcolor\execcolorRCSP\@@cl@@n % \factorizecolorfalse % \let\spotcolorfactor\@@cl@@o % \doingspotcolorfalse % \fi % \exectransparency} \def\doexeccolorP#1:#2:#3:#4:% {\edef\@@cl@@n{#1}% name \edef\@@cl@@f{#2}% fractions \edef\@@cl@@d{#3}% definitions \edef\@@cl@@p{#4}% \ifx\@@cl@@d\empty \let\@@cl@@d\@@cl@@n \fi \registerusedspotcolor\@@cl@@n \ifSPOTsupported \checkmultitonecolor\@@cl@@n \dowithcolor\registerspotcolor\@@cl@@n \dostartspotcolormode\@@cl@@n\@@cl@@p \else \doingspotcolortrue \normalizespotcolor\@@cl@@p \let\spotcolorfactor\@@cl@@p \factorizecolortrue % using counter and array \dowithcolor\execcolorRCSP\@@cl@@n \factorizecolorfalse \let\spotcolorfactor\@@cl@@o \doingspotcolorfalse \fi \exectransparency} \def\doexeccolorPindex#1:#2:#3:#4:% {\edef\@@cl@@n{#1}% \edef\@@cl@@f{#2}% \edef\@@cl@@d{#3}% \edef\@@cl@@p{#4}% \ifx\@@cl@@d\empty \let\@@cl@@d\@@cl@@n \fi \ifSPOTsupported \checkmultitonecolor\@@cl@@n \dowithcolor\registerindexcolor\@@cl@@n \fi \noexectransparency} \def\doexeccolorPP#1:#2:% {\edef\@@cl@@n{#1}% \edef\@@cl@@p{#2}% \registerusedspotcolor\@@cl@@n \ifx\@@cl@@n\currentspotcolor \normalizeSPOT \dostartgraycolormode\@@cl@@p % was spotcolormode \else \dovidecolor\@@cl@@p\@@cl@@o \fi \exectransparency} \def\doexeccolorrgb {\ifcase\currentcolorchannel \dostartrgbcolormode\@@cl@@r\@@cl@@g\@@cl@@b \or \or \or \or \or \dostartgraycolormode\@@cl@@r \or \dostartgraycolormode\@@cl@@g \or \dostartgraycolormode\@@cl@@b \fi} \def\doexeccolorcmyk {\ifcase\currentcolorchannel \dostartcmykcolormode\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k \or \negatecolorcomponent\@@cl@@c\dostartgraycolormode\@@cl@@c \or \negatecolorcomponent\@@cl@@m\dostartgraycolormode\@@cl@@m \or \negatecolorcomponent\@@cl@@y\dostartgraycolormode\@@cl@@y \or \negatecolorcomponent\@@cl@@k\dostartgraycolormode\@@cl@@k \fi} \def\doexeccolorgray {\ifcase\currentcolorchannel \dostartgraycolormode\@@cl@@s \or \or \or \or \dostartgraycolormode\@@cl@@s \or \or \or \or \dostartgraycolormode\@@cl@@s \fi} %D When filtering colors, we need to either erase %D the background, or ignore the foreground. % \newif\ifhidesplitcolor \hidesplitcolortrue % % \def\noexeccolor#1\od % {\dostartgraycolormode\@@cl@@o} % % \let\noexeccolorS\noexeccolor % \let\noexeccolorP\noexeccolor %D Well, here comes some real trickery. When we have the 100\% %D spot color or black color, we don't want to erase the %D background. So, instead we hide the content by giving it %D zero transparency. % todo : #1#2#3 met #2 > of < and #3 een threshold \def\dohidecolor#1#2% {\ifhidesplitcolor \ifx#1#2% \dostartgraycolormode\@@cl@@o \else \doregisternonecolor \dostartnonecolormode \fi \else \dostartgraycolormode\@@cl@@o \fi} \def\dovidecolor#1#2% {\ifhidesplitcolor \ifx#1#2% \doregisternonecolor \dostartnonecolormode \else \dostartgraycolormode\@@cl@@o \fi \else \dostartgraycolormode\@@cl@@o \fi} % \def\fullytransparentcolor % fails on floats % {\dostartgraycolormode\@@cl@@o % better than z % %\global\@EA\chardef\csname\@@currenttransparent\endcsname\plusone % %\global\intransparenttrue % \dostarttransparency10} \def\noexeccolorR#1:#2:#3:#4\od {\edef\@@cl@@r{#1}\edef\@@cl@@g{#2}\edef\@@cl@@b{#3}% \dohidecolor\@@cl@@s\@@cl@@o} \def\noexeccolorC#1:#2:#3:#4:#5\od {\edef\@@cl@@c{#1}\edef\@@cl@@m{#2}\edef\@@cl@@y{#3}\edef\@@cl@@k{#4}% \dohidecolor\@@cl@@s\@@cl@@o} \def\noexeccolorS#1:#2\od {\edef\@@cl@@s{#1}% \dohidecolor\@@cl@@s\@@cl@@o} \def\noexeccolorP#1:#2:#3:#4:#5\od {\edef\@@cl@@p{#4}% \dohidecolor\@@cl@@p\@@cl@@z} %D For the sake of postprocessing (i.e.\ color separation) %D we can normalize colors, which comes down to giving equal %D values an equal accuracy and format. This feature is %D turned off by default due to a speed penalty. This macro %D also handles spot color percentages. \newif\iffactorizecolor \newif\ifnormalizecolor \def\spotcolorfactor{1} % \def\normalizecolor#1% % {\colordimen#1\thousandpoint % \colordimen\spotcolorfactor\colordimen % \colorcount\colordimen % \advance\colorcount \medcard % \divide\colorcount \maxcard % \edef#1{\realcolorvalue\colorcount}} \def\normalizecolor#1% {\colorcount\numexpr(\dimexpr\spotcolorfactor\dimexpr#1\thousandpoint\relax\relax+\medcard)/\maxcard\relax \edef#1{\realcolorvalue\colorcount}} % \def\normalizespotcolor#1% % {\colordimen-#1\thousandpoint % \advance\colordimen\thousandpoint % \colorcount\colordimen % \advance\colorcount \medcard % \divide\colorcount \maxcard % \edef#1{\realcolorvalue\colorcount}} \def\normalizespotcolor#1% {\colorcount\numexpr(\dimexpr\thousandpoint-#1\thousandpoint\relax+\medcard)/\maxcard\relax \edef#1{\realcolorvalue\colorcount}} \def\donormalizeRGB {\normalizecolor\@@cl@@r \normalizecolor\@@cl@@g \normalizecolor\@@cl@@b} \def\normalizeRGB {\ifnormalizecolor \donormalizeRGB \else\iffactorizecolor \donormalizeRGB \fi\fi} \def\donormalizeCMYK {\normalizecolor\@@cl@@c \normalizecolor\@@cl@@m \normalizecolor\@@cl@@y \normalizecolor\@@cl@@k} \def\normalizeCMYK {\ifnormalizecolor \donormalizeCMYK \else\iffactorizecolor \donormalizeCMYK \fi\fi} \def\donormalizeGRAY {\normalizecolor\@@cl@@s} \def\normalizeGRAY {\ifnormalizecolor \donormalizeGRAY \else\iffactorizecolor \donormalizeGRAY \fi\fi} \def\normalizeSPOT {\normalizespotcolor\@@cl@@p} %D We need to register spot colors (i.e.\ resources need to %D be created. \def\registerspotcolor#1:% {\ifcsname\??cl:\c!p:\@@cl@@n\endcsname \@EA\dontregisterspotcolor \else \letgvalue{\??cl:\c!p:\@@cl@@n}\empty %\@EA\@EA\csname registerspotcolor#1\endcsname \csname registerspotcolor#1\@EA\endcsname \fi} % todo: convert to rgb if needed, will will do this in mkiv \def\dontregisterspotcolor #1\od{} \def\registerspotcolorR #1:#2:#3:#4\od{\doregisterrgbspotcolor \@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}} \def\registerspotcolorC#1:#2:#3:#4:#5\od{\doregistercmykspotcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}{#4}} \def\registerspotcolorS #1:#2\od{\doregistergrayspotcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}} \def\registerspotcolorP #1:#2:#3\od{\doregistergrayspotcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#2}} %D Experimental feature: % \definecolor [darkblue] [c=1,m=.38,y=0,k=.64] % pantone pms 2965 uncoated m % \definecolor [darkyellow] [c=0,m=.28,y=1,k=.06] % pantone pms 124 uncoated m % % \definecolor [darkblue-50] [darkblue] [p=.5] % \definecolor [darkyellow-50] [darkyellow] [p=.5] % \definecolor [darkblue-80] [darkblue] [p=.8] % \definecolor [darkyellow-80] [darkyellow] [p=.8] % % \definecolor [darkblue,darkyellow] [r=.8] % \definecolor [darkdull-5030] [darkblue,darkyellow] [p={.5,.3}] % % \setupcolors[state=start] % % \blackrule[width=4cm,height=3cm,color=darkblue-50] % \blackrule[width=4cm,height=3cm,color=darkblue-80] % \blackrule[width=4cm,height=3cm,color=darkyellow-50] % \blackrule[width=4cm,height=3cm,color=darkyellow-80] % \blackrule[width=4cm,height=3cm,color=darkdull-5030] %D Experimental too (special purpose code). \def\registerindexcolor#1:% {\ifcsname\??cl:i:\@@cl@@n\endcsname \@EA\dontregisterindexcolor \else \letgvalue{\??cl:i:\@@cl@@n}\empty % signal \showmessage\m!colors{12}\@@cl@@n \@EA\@EA\csname registerindexcolor#1\endcsname \fi} \let\dontregisterindexcolor\dontregisterspotcolor \def\registerindexcolorR #1:#2:#3:#4\od{\doregisterrgbindexcolor \@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}} \def\registerindexcolorC#1:#2:#3:#4:#5\od{\doregistercmykindexcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}{#4}} \def\registerindexcolorS #1:#2\od{\doregistergrayindexcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}} \def\registerindexcolorP #1:#2:#3\od{\doregistergrayindexcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#2}} \def\predefinecolor[#1]% {\bgroup \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% real ones \egroup} \def\predefineindexcolor[#1]% {\bgroup \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% real ones \let\doexeccolorP\doexeccolorPindex \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% index one \egroup} % \def\checkpredefinedcolor[#1]% % {\ifcase\internalspotcolorsize{#1}\relax % \@EA\predefinecolor\or\@EA\predefinecolor\else\@EA\predefineindexcolor % \fi[#1]} \let\checkpredefinedcolor\predefineindexcolor % we need an index in order to negate bitmaps %D Transparency is handled similar for all three color modes. We %D can turn transparency off with the following switch: \newif\iftransparencysupported \transparencysupportedtrue % only mkii \def\exectransparency {\iftransparencysupported \expandafter\doexectransparency \else \expandafter\noexectransparency \fi} \def\doexectransparency#1:#2\od {\ifcase#1\space \global\intransparentfalse \else \global\intransparentfalse %\dostarttransparency{#1}{#2}% \supportedstarttransparency{#1}{#2}% \global\intransparenttrue \fi} \def\noexectransparency#1\od {} %D Experimental: minimize transparency resets. \newif\ifintransparent \newif\ifoptimizetransparency \optimizetransparencytrue % under test \let\supportedstoptransparency\relax \def\conditionalstoptransparency {\ifoptimizetransparency \ifintransparent \global\intransparentfalse \supportedstoptransparency \fi \else \supportedstoptransparency \fi} \def\supportedstarttransparency {\iftransparencysupported \globallet\supportedstoptransparency\dostoptransparency \expandafter\dostarttransparency \else \expandafter\gobbletwoarguments \fi} %D We now use the \type {\@@cl@@A} hook to implement %D symbolic names. These are converted into numbers %D at definition time (which saves runtime). \def\dodefinetransparency[#1][#2]% {\@EA\chardef\csname\??cl-#1\endcsname#2\relax} \def\transparencynumber#1% {\number\executeifdefined{\??cl-#1}{#1}} %D Now we hook 'm into the patterns: \def\@@cl@@A{\transparencynumber\@@cl@@a} %D The next macro can be used to return to the (normal) %D page color. This macro is used in the same way as %D \type {\color}. \def\startregistercolor[#1]% {\permitcolormodefalse\startcolor[#1]\permitcolormodetrue} \def\stopregistercolor {\permitcolormodefalse\stopcolor\permitcolormodetrue} \def\starttextcolor[#1]% {\doifsomething{#1} {\bgroup \def\stoptextcolor % also goes ok with \page after {\let\maintextcolor\empty % this one because the top of \stopregistercolor % page sets the color right (side \egroup}% % effect) \def\starttextcolor[##1]% {\bgroup % \@@themaintextcolor==##1 is catched in \definecolor \definecolor[\@@themaintextcolor][##1]% \let\stoptextcolor\egroup}% \startregistercolor[\@@themaintextcolor]% \definecolor[\@@themaintextcolor][#1]% \let\maintextcolor\@@themaintextcolor}} \let\stoptextcolor\relax %D The following hook permits proper support at the text %D level. This definition actually belongs in another %D module. (May need a different \MKIV\ implementation.) % \ifx\initializemaintextcolor\undefined \let\@@clprevcolor\empty \def\initializemaintextcolor {% saveguard for setting text color to empty after % it has been set \doifnothing\@@cltextcolor {\ifx\@@clprevcolor\empty\else \let\@@cltextcolor\defaulttextcolor \fi}% \doifelsenothing\@@cltextcolor {\let\maintextcolor\empty} {\edef\@@clprevcolor{\@@cltextcolor}% \let\maintextcolor\@@themaintextcolor \doifelsenothing\@@cltextcolor % another saveguard {\definecolor[\@@themaintextcolor][\defaulttextcolor]}% {\definecolor[\@@themaintextcolor][\@@cltextcolor]}% \doinitializemaintextcolor}} \def\doinitializemaintextcolor {\appendtoks\starttextcolor[\@@themaintextcolor]\to\everystarttext \appendtoks\stoptextcolor \to\everystoptext \let\doinitializemaintextcolor\relax} % \fi \def\localstarttextcolor {\ifx\maintextcolor\empty \startcolormode\defaulttextcolor \else \startcolormode\maintextcolor \fi} % \def\localstoptextcolor % {\stopcolormode} % % better: \def\localstoptextcolor {\restorecolormode} \def\restoretextcolor {\ifx\maintextcolor\empty \expandafter\dorestoretextcolor \else % obey main text color \fi} \def\dorestoretextcolor {\color[\defaulttextcolor]} %D We use some reserved names for local color components. %D Consistent use of these scratch variables saves us %D unneccessary hash entries. %D %D \starttyping %D \@@cl@@r \@@cl@@g \@@cl@@b %D \@@cl@@c \@@cl@@m \@@cl@@y \@@cl@@k %D \@@cl@@s %D \stoptyping %D %D We implement several conversion routines. %D %D \starttyping %D \convertRGBtoCMYK {r} {g} {b} %D \convertRGBtoGRAY {r} {g} {b} %D \convertCMYKtoRGB {c} {m} {y} {k} %D \convertCMYKtoGRAY {c} {m} {y} {k} %D \convertCMYKtoCMY {c} {m} {y} {k} %D \stoptyping %D %D The relation between \cap{Gray}, \cap{RGB} and \cap{CMYK} %D is: %D %D \placeformula[-] %D \startformula %D G = .30r + .59g + .11b %D = 1.0 - \min(1.0,\ .30c + .59m + .11y + k) %D \stopformula %D %D When converting from \cap{CMYK} to \cap{RGB} we use the %D formula: %D %D \placeformula[-] %D \startformula %D \eqalign %D {r &= 1.0 - \min(1.0,\ c+k) \cr %D g &= 1.0 - \min(1.0,\ m+k) \cr %D b &= 1.0 - \min(1.0,\ y+k)} %D \stopformula %D %D In the conversion routine the color components are calculated %D in three digits precision. \def\realcolorvalue#1% {\ifnum#1>\zerocount % important, first encountered in --modu supp-mpe \ifnum#1<\plusten 0.00\the#1\else \ifnum#1<\plushundred 0.0\the#1\else \ifnum#1<\plusthousand 0.\the#1\else 1\fi\fi\fi \else 0\fi} % \def\doconvertCMYKtoRGB#1\k#2\to#3% % {\ifdim#2\points>#1\points% >= problem, repaired 2/12/2002 % \let#3\@@cl@@z % k >= color % \else % \colordimen\onepoint % \advance\colordimen -#1\points % \advance\colordimen -#2\points % \multiply\colordimen \plusthousand % \colorcount\colordimen % \advance\colorcount \medcard % \divide\colorcount \maxcard % \edef#3{\realcolorvalue\colorcount}% % \fi} \def\doconvertCMYKtoRGB#1\k#2\to#3% {\colorcount\numexpr(\dimexpr\plusthousand\dimexpr\onepoint-#1\points-#2\points\relax\relax+\medcard)/\maxcard\relax \ifnum\colorcount>\zeropoint \edef#3{\realcolorvalue\colorcount}% \else \let#3\@@cl@@z \fi} \def\convertCMYKtoRGB#1#2#3#4% {\doconvertCMYKtoRGB#1\k#4\to\@@cl@@r \doconvertCMYKtoRGB#2\k#4\to\@@cl@@g \doconvertCMYKtoRGB#3\k#4\to\@@cl@@b} % \def\doconvertRGBtoCMYK#1\to#2% % {\colordimen#1\points % \multiply\colordimen \plusthousand % \colorcount\colordimen % \advance\colorcount \medcard % \divide\colorcount \maxcard % \colorcount-\colorcount % \advance\colorcount \plusthousand % \edef#2{\realcolorvalue\colorcount}} \def\doconvertRGBtoCMYK#1\to#2% {\colorcount\numexpr\plusthousand-(\dimexpr\plusthousand\dimexpr#1\points\relax\relax+\medcard)/\maxcard\relax \edef#2{\realcolorvalue\colorcount}} \def\convertRGBtoCMYK#1#2#3% {\doconvertRGBtoCMYK#1\to\@@cl@@c \doconvertRGBtoCMYK#2\to\@@cl@@m \doconvertRGBtoCMYK#3\to\@@cl@@y \let\@@cl@@k\@@cl@@z} %D The following switch is mainly meant for (hidden) %D documentation purposes. \def\nGRAYfactor{333.333} \def\rGRAYfactor{\ifweightGRAY300\else\nGRAYfactor\fi} \def\gGRAYfactor{\ifweightGRAY590\else\nGRAYfactor\fi} \def\bGRAYfactor{\ifweightGRAY110\else\nGRAYfactor\fi} % \def\convertRGBtoGRAY#1#2#3% % {\colordimen#1\points % \colordimen\rGRAYfactor\colordimen % \colorcount\colordimen % \colordimen#2\points % \colordimen\gGRAYfactor\colordimen % \advance\colorcount \colordimen % \colordimen#3\points % \colordimen\bGRAYfactor\colordimen % \advance\colorcount \colordimen % \advance\colorcount \medcard % \divide\colorcount \maxcard % \edef\@@cl@@s{\realcolorvalue\colorcount}} \def\convertRGBtoGRAY#1#2#3% {\colorcount\numexpr (\dimexpr\rGRAYfactor\dimexpr#1\points\relax\relax+ \dimexpr\gGRAYfactor\dimexpr#2\points\relax\relax+ \dimexpr\bGRAYfactor\dimexpr#3\points\relax\relax+ \medcard)/\maxcard \relax \edef\@@cl@@s{\realcolorvalue\colorcount}} \def\convertCMYKtoGRAY#1#2#3#4% {\convertCMYKtoRGB{#1}{#2}{#3}{#4}% \convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b} % \def\doconvertCMYKtoCMY#1\k#2\to#3% % {\colordimen#1\points % \advance\colordimen #2\points\relax % \ifdim\colordimen>\onepoint % \colordimen\onepoint % %\else % % \colordimen\colordimen % \fi % \multiply\colordimen \plusthousand % \colorcount\colordimen % \advance\colorcount \medcard % \divide\colorcount \maxcard % \edef#3{\realcolorvalue\colorcount}} \def\doconvertCMYKtoCMY#1\k#2\to#3% {\colorcount\numexpr(\dimexpr\plusthousand\dimexpr#1\points+#2\points\relax\relax+\medcard)/\maxcard\relax \ifnum\colorcount>\plusthousand \let#3\@@cl@@o \else \edef#3{\realcolorvalue\colorcount}% \fi} \def\convertCMYKtoCMY#1#2#3#4% {\doconvertCMYKtoCMY#1\k#4\to\@@cl@@c \doconvertCMYKtoCMY#2\k#4\to\@@cl@@m \doconvertCMYKtoCMY#3\k#4\to\@@cl@@y \let\@@cl@@k\@@cl@@z} %D Before we present the color macros, we first define the %D setup command. This command takes care of setting up the %D booleans that control local and global behavior (more on %D that later) and conversion to other color spaces. \let\currentspotcolor \empty \let\previousspotcolor\empty %D The tests depend on the use of constants. If we use the \MKIV\ %D method we can share more. \def\doifcolorelse#1% {\ifcsname\??cr\ifcsname\??cr\currentpalet#1\endcsname\currentpalet\fi#1\endcsname \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\doifcolor#1% {\ifcsname\??cr\ifcsname\??cr\currentpalet#1\endcsname\currentpalet\fi#1\endcsname \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} %D There are a couple of different color switching macros, %D the local ones can be used to speed up things (only in \MKII). \def\localstartcolor {\ifincolor \localcolortrue \expandafter\doglobalstartcolor \else \expandafter\noglobalstartcolor \fi} \def\localstopcolor {\ifincolor \doglobalstopcolor \else \noglobalstopcolor \fi} \unexpanded\def\startcolor {\ifincolor \expandafter\doglobalstartcolor \else \expandafter\noglobalstartcolor \fi} \unexpanded\def\stopcolor {\ifincolor \doglobalstopcolor \else \noglobalstopcolor \fi} %D This macros call the global color switching ones. Starting %D a global, i.e. a possible page boundary crossing, color %D mode also sets a \type{\mark} in \TEX's internal list. \newcount\colorlevel \letvalue{\??cl0C}\empty % saved color \letvalue{\??cl0S}\empty % stop command %D We keep a positive color stack for foreground colors, and %D a negative one for backgrounds. Not that brilliant a %D solution, but it suits. The signs are swapped when the %D page ornaments are typeset. \let\@@colorplus \plusone \let\@@colorminus\minusone \def\@@currentcolorname {\??cl\the\colorlevel C} \def\@@currentcolorstop {\??cl\the\colorlevel S} %def\@@currenttransparent{\??cl\the\colorlevel T} \letvalue{\??cl*\s!black}\s!black \def\currentcolorname {\csname \ifcsname\@@currentcolorname\endcsname \expandafter\ifx\csname\@@currentcolorname\endcsname\empty \??cl*\s!black \else \@@currentcolorname \fi \else \??cl*\s!black \fi \endcsname} \def\outercolorname {\ifcsname\@@currentcolorname\endcsname \expandafter\ifx\csname\@@currentcolorname\endcsname\empty \s!black \else currentcolor% \fi \else \s!black \fi} % not the following, because we need a different tag in order to trick the stack % % \def\outercolorname{\executeifdefined\@@currentcolorname\s!black} % % \def\startcurrentcolor{\expanded{\startcolor[\s!black]\noexpand\startcolor[\outercolorname]}} % \def\stopcurrentcolor {\stopcolor\stopcolor} % % test case: % % \setupcolors[state=start,textcolor=red] % \starttext % red % \color[green]{green % \startMPcode % label(\sometxt{green\color[blue]{blue}green}, origin) withcolor red; % draw fullcircle scaled 1cm xscaled 2; % \stopMPcode % green} % red % \stoptext \def\dodoglobalstartcolor {\global\@EA\let\@EA\@@currentcolor\csname\@@currentcolorname\endcsname \global\advance\colorlevel \@@colorplus \global\@EA\let\csname\@@currentcolorname\endcsname\@@askedcolor %\debuggerinfo\m!colors % {start \@@askedcolor\space at level \the\colorlevel}% \ifx\@@askedcolor\empty \global\@EA\let\csname\@@currentcolorname\endcsname\@@currentcolor \global\@EA\let\csname\@@currentcolorstop\endcsname\donoglobalstopcolor \else\ifx\@@askedcolor\@@currentcolor \global\@EA\let\csname\@@currentcolorstop\endcsname\donoglobalstopcolor \else \doifcolorelse\@@askedcolor {%\docolormark\@@askedcolor \ifpermitcolormode\docolormark\@@askedcolor\fi \global\@EA\let\csname\@@currentcolorstop\endcsname\dodoglobalstopcolor \startcolormode\@@askedcolor} {\global\@EA\let\csname\@@currentcolorstop\endcsname\donoglobalstopcolor \showmessage\m!colors3\@@askedcolor\empty}% \fi\fi} \def\doglobalstartcolor[#1]% {\edef\@@askedcolor{#1}% \ifcase\colorlevel\relax \ifx\@@askedcolor\empty \global\@EA\let\csname\@@currentcolorstop\endcsname\empty \else \dodoglobalstartcolor \fi \else \dodoglobalstartcolor \fi \ignorespaces} \def\noglobalstartcolor[#1]% {} \def\dodoglobalstopcolor {\ifcase\colorlevel \else \donoglobalstopcolor \global\@EA\let\@EA\@@previouscolor\csname\@@currentcolorname\endcsname \ifcase\colorlevel\relax \ifpermitcolormode \docolormark\empty \conditionalstoptransparency \dostopcolormode \fi \else % let's do a bit redundant testing here \docolormark\@@previouscolor \ifx\@@previouscolor\empty \ifpermitcolormode \conditionalstoptransparency \dostopcolormode \fi \else \doifcolorelse\@@previouscolor {\ifx\@@currentcolor\@@previouscolor\else % alternatively we could let \startcolormode handle this \ifpermitcolormode \conditionalstoptransparency % really needed % more safe but less efficient: \dostopcolormode \fi \startcolormode\@@previouscolor \fi} {\ifpermitcolormode \conditionalstoptransparency \dostopcolormode \fi}% \fi \fi \fi} \def\donoglobalstopcolor {\ifcase\colorlevel \else \global\@EA\let\@EA\@@currentcolor\csname\@@currentcolorname\endcsname %\debuggerinfo{\m!colors} % {stop \@@currentcolor\normalspace at level \the\colorlevel}% \global\advance\colorlevel \@@colorminus \fi} \def\doglobalstopcolor {\csname\@@currentcolorstop\endcsname} \let\noglobalstopcolor\relax \let\faststartcolor\doglobalstartcolor \let\faststopcolor \doglobalstopcolor %D We don't use grouping and save each stop alternative. This %D permits be especially useful in for instance local color %D support in verbatim. Using \type{\bgroup}||\type{\egroup} %D pairs could interfere with calling commands %D This color mechanism takes care of nested colors, like in: %D %D \startbuffer %D \color[green]{groen \color[green]{groen \color[red]{rood}} groen} %D \color[green]{groen \color[]{groen \color[red]{rood}} groen} %D \color[green]{groen \color[red]{rood \color[red]{rood}} groen} %D \color[green]{groen \color[green]{groen \color[]{groen}} groen} %D \color[green]{groen \color[red]{rood} groen} %D \color[green]{groen \color[]{groen} groen} %D \color[]{zwart \color[red]{rood} zwart} %D \color[]{zwart} %D \stopbuffer %D %D \typebuffer %D %D or %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D Crossing page boundaries is of course also handled. %D Undefined or empty color specifications are treated as %D efficient as possible. %D %D \startbuffer %D \startcolor[green] %D [green] \input tufte [green] \par %D \startcolor[] %D [green] \input knuth [green] \par %D \startcolor[red] %D [red] \input tufte [red] \par %D \startcolor[yellow] %D [yellow] \input knuth [yellow] \par %D \stopcolor %D [red] \input tufte [red] \par %D \stopcolor %D [green] \input knuth [green] \par %D \stopcolor %D [green] \input tufte [green] \par %D \stopcolor %D \stopbuffer %D %D \startpacked %D \getbuffer %D \stoppacked %D %D These quotes are typeset by saying: %D %D \typebuffer %D We already mentioned that colors interfere with building %D the pagebody. This means that when the page is composed, %D the colors temporary have to be reset. After the page is %D shipped out, we have to revive the current color. %D %D We use \type{\mark}s to keep track of colors across page %D boundaries. Unfortunately standard \TEX\ supports only one mark, %D and using this one for color support only would be a waste. %D We therefore use an adapted version of J.~Fox's multiple mark %D mechanism as (re|)|implemented in \module{supp-mrk}. \doifdefinedelse{rawnewmark} {\rawnewmark\colormark} {\let\colormark\gobbleoneargument} %D Using this mark mechanism with lots of colors has one %D major drawback: \TEX's memory tends to overflow when %D very colorful text is stored in a global box. Even worse is that %D the processing time grows considerably. We therefore support %D local as well as global color switching. %D %D Of the next macros, \type {\popcolor} is to be used after %D the actual \type {\shipout} and \type {\startcolorpage} and %D \type {\stopcolorpage} are called when entering and leaving %D the \type {\pagebody} builder. In case of emergencies %D \type {\pushcolor} can be used to undo the current color, %D for instance when insertions are appended to the page. %D %D Out of efficiency we only use marks when needed. The next %D macro tries to find out if indeed a mark should be set. %D This macro uses the boolean \type {\ifinpagebody}, which can %D be defined and set in the module that handles the pagebody. \def\docolormark#1% {\iflocalcolor \else \ifinpagebody \else \ifinframed \else \dodocolormark{#1}% \fi \fi \fi} \let\lastcolormark=\empty \def\dodocolormark#1% {\edef\newcolormark{#1}% \ifx\newcolormark\lastcolormark\else \global\let\lastcolormark\newcolormark \@EA\rawsetmark\@EA\colormark\@EA{\lastcolormark}% \fi} %D \macros %D {pushcolor, popcolor} %D %D Pushing the current state in the output routine simply comes %D to resetting the color to black, while popping restores the %D color state to that of before the break. \def\topofpagecolor{\rawgetbotmark\colormark} % see postponing \def\pushcolor {\stopcolormode} \def\popcolor {\doifsomething{\rawgetbotmark\colormark} {%\debuggerinfo\m!colors{popping \getbotmark\colormark}% \startcolormode{\rawgetbotmark\colormark}}} \def\popsplitcolor {\getsplitmarks\colormark % hier wel \doifsomething{\rawgetsplitbotmark\colormark} {%\debuggerinfo\m!colors{split popping \getsplitbotmark\colormark}% \startcolormode{\rawgetsplitbotmark\colormark}}} \appendtoks\pushcolor \to\everypushproperties \appendtoks\popcolor \to\everypopproperties \appendtoks\popsplitcolor\to\everypopsplitproperties % Private macro: only needed in test cases (like multiple % seperations in one file); no user command! \def\resynccolor {\ifcase\pagetotal % \ifdim\pagetotal=\zeropoint \popcolor \else\ifx\@@currentcolor\empty \ifx\maintextcolor\empty\else \startcolormode\maintextcolor \fi \else \startcolormode\@@currentcolor \fi\fi} % weird stuff \def\pushpostponedpagecolor {\edef\savedtopofpagecolor{\topofpagecolor}% \doifsomething\savedtopofpagecolor\restorecolormode} % \stopcolormode \def\poppostponedpagecolor {\doifsomething\savedtopofpagecolor\startcolormode\savedtopofpagecolor} %D \macros %D {startcolorpage, stopcolorpage} %D %D Local use can be forced with the next two macros. Nesting %D is still supported but colors are no longer marked. %D %D The next implementation makes (simple) color separation more %D easy. It also supports nested colors in page backgrounds %D and texts. \def\startcolorpage {\bgroup \let\@@colorplus \minusone \let\@@colorminus\plusone \let\docolormark\gobbleoneargument \edef\savedcolorlevel{\the\colorlevel}% \global\colorlevel\zerocount % before \localstartcolor of \ifx\maintextcolor\empty % course, ugly bug removed \localstartcolor[\defaulttextcolor]% \else \localstartcolor[\maintextcolor]% \fi} \def\stopcolorpage {\localstopcolor \global\colorlevel\savedcolorlevel \egroup} \appendtoks \startcolorpage\to\everystarttextproperties \prependtoks\stopcolorpage \to\everystoptextproperties %D We want color support to be similar to font support and %D therefore implement \type{\color} using grouping. %D %D When \type {\somecolor} is issued, we can savely assume %D grouping. Using \type {\groupedcommand} here (i.e.\ the %D definition of \type {\color}) is unsafe because in %D interferes with for instance switching attributes. \unexpanded\def\color[#1]% {\groupedcommand{\startcolor[#1]}\stopcolor} %D This implementation enables use of defined colors like: %D %D \starttyping %D Look at the {\brightgreen bright} side of life and get %D yourself no \red{red} head! %D \stoptyping %D Also wrong, test in combinations: \type{...{}{\red test}} %D %D \def\switchtocolor[#1]% %D {\startcolor[#1]\aftergroup\stopcolor} \def\switchtocolor[#1]% grouping is realy needed, else migration {\bgroup\startcolor[#1]\aftergroup\stopcolor\aftergroup\egroup} \unexpanded\def\color[#1]% {\groupedcommand{\startcolor[#1]}\stopcolor} \unexpanded\def\graycolor[#1]% not \gray because this is a color {\groupedcommand{\RGBsupportedfalse\CMYKsupportedfalse\SPOTsupportedfalse\startcolor[#1]}\stopcolor} \unexpanded\def\colored[#1]% {\groupedcommand{\definecolor[@colored@][#1]\startcolor[@colored@]}\stopcolor} %D We can speed the following macros a bit up, but this %D hardly pays off; they are only used in the manual. \def\realcolorformat#1% {\ifnum#1<\plusten 0.00\the#1\else \ifnum#1<\plushundred 0.0\the#1\else \ifnum#1<\plusthousand 0.\the#1\else 1.000\fi\fi\fi} \def\dodoformatcolor#1% {\colordimen#1\points\relax \ifdim\colordimen>\onepoint \colordimen\onepoint \fi \multiply\colordimen \plusthousand \colorcount\colordimen \advance\colorcount \medcard \divide\colorcount \maxcard \relax \realcolorformat\colorcount} \def\doformatcolorR#1:#2:#3:#4:#5\od {\dodoformatcolor{#1}\colorformatseparator \dodoformatcolor{#2}\colorformatseparator \dodoformatcolor{#3}} \def\doformatcolorC#1:#2:#3:#4:#5:#6\od {\dodoformatcolor{#1}\colorformatseparator \dodoformatcolor{#2}\colorformatseparator \dodoformatcolor{#3}\colorformatseparator \dodoformatcolor{#4}} \def\doformatcolorS#1:#2:#3\od {\dodoformatcolor{#1}} \def\doformatcolorP#1:#2:#3:#4:#5:#6\od {#1\colorformatseparator \dodoformatcolor{#2}\colorformatseparator \dodoformatcolor{#3}\colorformatseparator \dodoformatcolor{#4}\colorformatseparator} \def\doformatcolor#1:% {\csname doformatcolor#1\endcsname} \def\colorvalue {\dowithcolor\doformatcolor} \def\doformatgrayR#1:#2:#3:#4:#5\od {\convertRGBtoGRAY{#1}{#2}{#3}% \dodoformatcolor\@@cl@@s} \def\doformatgrayC#1:#2:#3:#4:#5:#6\od {\convertCMYKtoGRAY{#1}{#2}{#3}{#4}% \dodoformatcolor\@@cl@@s} \def\doformatgrayS#1:#2:#3\od {\dodoformatcolor{#1}} % \def\doformatgrayP#1:#2:#3:#4:#5:#6\od % {\convertSPOTtoGRAY{#1}{#2}{#3}{#4}% % \dodoformatcolor\@@cl@@s} \def\doformatgrayP#1:#2:#3:#4:#5:#6\od {todo} \def\doformatgray#1:% {\csname doformatgray#1\endcsname} \def\grayvalue {\dowithcolor\doformatgray} %D \macros %D {localstartraster,localstopraster, %D startraster,stopraster} %D %D The previous conversions are not linear and treat each color %D component according to human perception curves. Pure gray %D (we call them rasters) has equal color components. In %D \CONTEXT\ rasters are only used as backgrounds and these %D don't cross page boundaries in the way color does. Therefore %D we don't need stacks and marks. Just to be compatible with %D color support we offer both 'global' and 'local' commands. %D %D \starttyping %D \def\localstartraster[#1]% %D {\doifelsenothing{#1} %D {\dostartgraymode\@@rsscreen} %D {\dostartgraymode{#1}}} %D %D \def\localstopraster %D {\dostopgraymode} %D %D \let\startraster\localstartraster %D \let\stopraster \localstopraster %D \stoptyping %D %D The next alternative is slower, since it works on top of the %D color (stack) mechanism, but it does provide nesting. \def\dosetrastercolor#1% {\edef\@@cl@@s{#1}% \ifx\@@cl@@s\empty \let\@@cl@@s\@@rsscreen \fi \let\@@cl@@t\@@cl@@z % else we get rogue \let\@@cl@@a\@@cl@@z % transpancies \setevalue{\??cr\??rs}{\colorSpattern}} % beware, don't add extra grouping, else color in tables % fails \def\localstartraster[#1]% {\ifincolor\dosetrastercolor{#1}\localstartcolor[\??rs]\fi} \def\startraster[#1]% {\ifincolor\dosetrastercolor{#1}\startcolor[\??rs]\fi} \def\localstopraster{\ifincolor\localstopcolor\fi} \def\stopraster {\ifincolor\stopcolor\fi} \def\raster[#1]{\groupedcommand{\startraster[#1]}{\stopraster}} %D Palets use an auxiliary macro: \def\dodefinepaletcolor#1#2#3% {\doifassignmentelse{#3} {% == \definepalet[test][xx={y=.4}] \definecolor[\??pa#1:#2][#3]% \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{\??cr#1:#2}{\csname\??cr\??pa#1:#2\endcsname}} {% == \definepalet[test][xx=green] \doifdefinedelse{\??cr#3} {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{\??cr#1:#2}{\csname\??cr#3\endcsname}} {\letvalue{\??cr#1:#2}\colorXpattern}}} %D \MP\ related conversions: \def\scaledMPcolor#1#2% {\ifMPgraphics \handlecolorwith\doMPcolor \csname\??cr \ifcsname\??cr\currentpalet#2\endcsname\currentpalet\fi #2\endcsname :::::::\end#1\end \else #2% \fi} \def\MPcolor{\scaledMPcolor1} %D Before we had transparency available, the following %D conversion macro was available: %D %D \starttyping %D \def\doMPcolor#1:#2:#3:#4:#5:#6:#7:#8\end %D {\if #1R(#2,#3,#4)% %D \else\if#1C\ifMPcmykcolors cmyk(#2,#3,#4,#5)\else(1-#2-#5,1-#3-#5,1-#4-#5)\fi %D \else\if#1S(#2,#2,#2)% %D \else (0,0,0)% %D \fi\fi\fi} %D \stoptyping %D %D In order to be useful, this macro is to be fully %D expandabele. \def\doMPcolor#1:% #1 can be \relax ! ! ! i.e. an empty color {\csname MPc\@EA\ifx\csname MPc\string#1\endcsname\relax B\else#1\fi\endcsname} \def\MPcR{\doMPrgb} \def\MPcC{\ifMPcmykcolors\@EA\doMPcmykY\else\@EA\doMPcmykN\fi} \def\MPcS{\doMPgray} \def\MPcP{\ifMPspotcolors\@EA\doMPspotY\else\@EA\doMPspotN\fi} \def\MPcB{\doMPblack} \def\transparentMP {transparent} \def\cmykMP {scaledcmyk} \def\cmykASrgbMP {scaledcmykasrgb} % not really needed any more \def\rgbMP {scaledrgb} \def\grayMP {scaledgray} \def\spotMP {spotcolor} \def\doMPtransparent#1#2:#3:#4\end {\ifcase#2\space(#1)\else\transparentMP(#2,#3,(#1))\fi} \def\doMPgray#1:#2\end#3\end {\doMPtransparent{\grayMP(#1,#3)}#2\end} \def\doMPrgb#1:#2:#3:#4\end#5\end {\doMPtransparent{\rgbMP(#1,#2,#3,#5)}#4\end} \def\doMPcmykY#1:#2:#3:#4:#5\end#6\end {\doMPtransparent{\cmykMP(#1,#2,#3,#4,#6)}#5\end} \def\doMPcmykN#1:#2:#3:#4:#5\end#6\end {\doMPtransparent{\cmykASrgbMP(#1,#2,#3,#4,#6)}#5\end} \def\doMPspotY#1:#2:#3:#4:#5\end#6\end % best make #3 same as #1 when empty {\doMPtransparent{multitonecolor("#1",#2,"#3","#4")}#5\end} \def\doMPspotN#1:#2:#3:#4:#5\end#6\end {\scaledMPcolor{#4}{#1}} \def\doMPblack#1\end#2\end {\unknownMPcolor} \def\unknownMPcolor {(0,0,0)} \let\processMP\spotMP % for some time, will become obsolete, brrr %D \PDF\ related conversions: \def\PDFcolor #1{\handlecolorwith\doPDFcolor \csname\??cr#1\endcsname:::::::\end} \def\PDFcolorvalue#1{\handlecolorwith\doPDFcolorvalue\csname\??cr#1\endcsname:::::::\end} \def\FDFcolor #1{\handlecolorwith\doFDFcolor \csname\??cr#1\endcsname:::::::\end} \def\doPDFcolor#1:#2:#3:#4:#5:#6:#7:#8\end {\if #1R#2 #3 #4 rg% \else\if#1C#2 #3 #4 #5 k% \else\if#1S#2 g% \else\if#1P#5 g% \else 0 g% \fi\fi\fi\fi} \def\doPDFcolorvalue#1:#2:#3:#4:#5:#6:#7:#8\end {\if #1R#2 #3 #4% \else\if#1C#2 #3 #4 #5% \else\if#1S#2% \else\if#1P#5% \else 0% \fi\fi\fi\fi} \def\doFDFcolor#1:#2:#3:#4:#5:#6:#7:#8\end {[\if #1R#2 #3 #4% \else\if#1C#2 #3 #4 #5% \else\if#1S#2% \else\if#1P#5% \else 0% \fi\fi\fi\fi]} \def\internalspotcolorname#1{\handlecolorwith\dointernalspotcolorname\csname\??cr#1\endcsname:::::::\end} \def\internalspotcolorsize#1{\handlecolorwith\dointernalspotcolorsize\csname\??cr#1\endcsname:::::::\end} \def\dointernalspotcolorname#1:#2:#3:#4:#5:#6:#7:#8\end{\if#1P\ifcase0#3 #1\else#2\fi\else#1\fi} \def\dointernalspotcolorsize#1:#2:#3:#4:#5:#6:#7:#8\end{\if#1P\ifcase0#3 0\else#3\fi\else 0\fi} %D Because it's a persitent issue, we also provide \def\pgf@context@registercolor#1% {\handlecolorwith\pgf@context@registercolor@indeed\csname\??cr#1\endcsname:::::::>#1\end} \def\pgf@context@registercolor@indeed#1:#2:#3:#4:#5:#6>#7\end {\setevalue{\string\color@#7}{\noexpand\xcolor@{}{}% \if#1R{rgb}{#2,#3,#4}\else \if#1C{cmyk}{#2,#3,#4,#5}\else \if#1S{gray}{#2}\else {gray}{0}\fi\fi\fi}} %D Slow but ok \unknown \def\colorcomponents#1% might be broken {\startnointerference \localcolortrue \globallet\thecolorcomponents\empty \def\doexeccolorR ##1:##2:##3:##4:##5\od{\gdef\thecolorcomponents{r=\twodigitrounding{##1} g=\twodigitrounding{##2} b=\twodigitrounding{##3}}}% \def\doexeccolorC##1:##2:##3:##4:##5:##6\od{\gdef\thecolorcomponents{c=\twodigitrounding{##1} m=\twodigitrounding{##2} y=\twodigitrounding{##3} k=\twodigitrounding{##4}}}% \def\doexeccolorS ##1:##2:##3\od{\gdef\thecolorcomponents{s=\twodigitrounding{##1}}}% \def\doexeccolorP##1:##2:##3:##4:##5:##6\od{\gdef\thecolorcomponents{p=\twodigitrounding{##4} n=##1}}% \let\doexeccolorPindex\doexeccolorP \backgroundline[#1]{}% \stopnointerference \thecolorcomponents} \def\transparencycomponents#1% {\startnointerference \localcolortrue \globallet\thetransparencycomponents\empty \def\doexeccolorR ##1:##2:##3:##4:##5\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##4} t=\twodigitrounding{##5}}}% \def\doexeccolorC##1:##2:##3:##4:##5:##6\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##5} t=\twodigitrounding{##6}}}% \def\doexeccolorS ##1:##2:##3\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##2} t=\twodigitrounding{##3}}}% \def\doexeccolorP##1:##2:##3:##4:##5:##6\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##5} t=\twodigitrounding{##6}}}% \let\doexeccolorPindex\doexeccolorP \backgroundline[#1]{}% \stopnointerference \thetransparencycomponents} %D \macros %D {everyshapebox} %D %D A terrible hack, needed because we cannot have marks in %D shape boxes. \appendtoks \localcolortrue \to \everyshapebox %D \macros %D {forcecolorhack} %D %D Awful \unknown \let\forcecolorhack\relax %D We default to the colors defined in \module{colo-rgb} and %D support both \cap{RGB} and \cap{CMYK} output. As you can %D see, color support is turned off by default. Reduction of %D gray colors to gray scales is turned on. \definecolor[black][s=0] \definecolor[white][s=1] \definetransparency [none] [0] \definetransparency [normal] [1] \definetransparency [multiply] [2] \definetransparency [screen] [3] \definetransparency [overlay] [4] \definetransparency [softlight] [5] \definetransparency [hardlight] [6] \definetransparency [colordodge] [7] \definetransparency [colorburn] [8] \definetransparency [darken] [9] \definetransparency [lighten] [10] \definetransparency [difference] [11] \definetransparency [exclusion] [12] \definetransparency [hue] [13] \definetransparency [saturation] [14] \definetransparency [color] [15] \definetransparency [luminosity] [16] \setupcolors [\c!state=\v!stop, \c!conversion=\v!yes, \c!reduction=\v!no, \c!rgb=\v!yes, \c!cmyk=\v!yes, \c!spot=\v!yes, \c!mp\c!cmyk=\@@clcmyk, \c!mp\c!spot=\@@clspot, \c!expansion=\v!no, \c!textcolor=, \c!split=\v!no, \c!criterium=\v!all] \setupcolor [\v!rgb] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-yy.mkii0000644000175000017500000000462114536300610024547 0ustar hillehille%D \module %D [ file=spec-yy, %D version=1996.01.25, %D title=\CONTEXT\ Special Macros, %D subtitle=\YandY's \DVIPSONE\ and \DVIWINDO, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D \macros %D {dostartgraymode,dostopgraymode, %D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode, %D doinsertfile} %D %D We implement a nice and simple figure||insertion special %D and make use of \YandY's color specials. Otherwise \DVIWINDO\ %D would not show colors. \startspecials[yandy] \def\@@insertpostscriptliteral {ps: } \def\@@insertpostscriptretain {" } % this was: {postscript} \definespecial\dostartgraymode#1% {\special{color gray #1}} \definespecial\dostopgraymode% {\special{color gray 0}} \definespecial\dostartrgbcolormode#1#2#3% {\special{color rgb #1 #2 #3}} \definespecial\dostartcmykcolormode#1#2#3#4% {\special{color cmyk #1 #2 #3 #4}} \definespecial\dostartgraycolormode#1% {\special{color gray #1}} \definespecial\dostopcolormode% {\special{color gray 0}} % \definefileinsertion{yy}{eps}% % {\PointsToBigPoints\@@DriverImageWidth \width % \PointsToBigPoints\@@DriverImageHeight\height % \special % {psfile=\@@DriverImageFile\space % %hscale=100\space % %vscale=100\space % hoffset=\width\space % voffset=\height}} \definefileinsertion{tr}{eps} {\bgroup \PointsToWholeBigPoints\@@DriverImageWidth \width \PointsToWholeBigPoints\@@DriverImageHeight\height \special {PSfile="\@@DriverImageFile"\space llx=\EPSllx\space lly=\EPSlly\space urx=\EPSurx\space ury=\EPSury\space \ifdim\@@DriverImageWidth >\zeropoint rwi=\width 0\space\fi \ifdim\@@DriverImageHeight>\zeropoint rhi=\height0 \fi}% \egroup} \definefileinsertion{yy}{mps} {\hbox {\includeMPfonts \@@DriverImageFile \convertMPcolors\@@DriverImageFile \dofileinsertion{yy}{eps}}} \definefileinsertion{yy}{tif} {\special{insertimage: \@@DriverImageFile \space \@@DriverImageWidth\space \@@DriverImageHeight}} \definespecial\doinsertfile {\dofileinsertion{yy}\@@DriverImageType} \def\MPprologues{1} \def\MPOSTdriver{dvipsone} \stopspecials \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-par.mkii0000644000175000017500000002177614536300610024700 0ustar hillehille%D \module %D [ file=core-par, %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=Paragraph Tricks, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Pararaph Tricks} \unprotect % \ifprocesspreviousparagraphs % % \nofskippedparagraphs % \paragraphnumber % \nofparagraphs % % \dosetparagraph % \doresetparagraph % \dobeforeparagraph % \doafterparagraph % \dobeforeskipparagraph % \doafterskipparagraph % % \pushparagraphs\endcommand alle alineas tot \endcommand laden % \pushmoreparagraphs\endcommand alle alineas tot \endcommand toevoegen % \popparagraphs alle alineas oproepen % \popparagraphs[a,b,c] enkele alineas oproepen [geen] % % tzt een optionele prefix: % % \pushparagraphs[xxx]\endcommand alle alineas tot \endcommand laden % \popparagraphs[xxx] alle alineas oproepen % \popparagraphs[xxx][a,b,c] enkele alineas oproepen % % \numberparagraphs % \numberparagraphlines % \resetparagraphlines \newif\ifprocesspreviousparagraphs % public \newif\ifprocessallparagraphs % private \newcounter\totalnofparagraphs % private \newcounter\globalparagraphnumber % private \newcounter\discardedparagraphs % private \newcounter\mostrecentparagraphtotal % public \let\dosetparagraph = \relax % public \let\doresetparagraph = \relax % public \let\dobeforeparagraph = \relax % public \let\doafterparagraph = \relax % public \let\dobeforeskipparagraph = \relax % public \let\doafterskipparagraph = \relax % public \def\paragraphnumber {} % public \def\nofparagraphs {} % public \def\nofskippedparagraphs {} % public \def\paragraphprefix {paragraph} % private % voorlopig, wordt nog class \def\resetparagraphlines {\global\linenumber\plusone} \def\numberparagraphs % instelbaar maken en slimmer ivm breedte regelnummer !!!!! {\processpreviousparagraphstrue \def\dosetparagraph {\bgroup \resetparagraphlines \EveryPar {\strut\inleftmargin{\tf{\tx\paragraphnumber}\kern2em}% \ignorespaces}}% \def\doresetparagraph {\resetparagraphlines \egroup}} \def\numberparagraphlines {\processpreviousparagraphstrue \def\dosetparagraph {\resetparagraphlines}% \def\doresetparagraph {\resetparagraphlines}% \def\dobeforeparagraph {\startlinenumbering[\v!continue]}% \def\doafterparagraph {\stoplinenumbering}% \def\dobeforeskipparagraph {\stoplinenumbering \let\paragraphnumber\relax}% \def\doafterskipparagraph {\startlinenumbering[\v!continue]}} \long\def\directpushparagraph#1% {\doglobal\increment\totalnofparagraphs \ifnum\totalnofparagraphs>0\nofskippedparagraphs\relax \setgvalue{\paragraphprefix\totalnofparagraphs}{#1}% \else \setgvalue{\paragraphprefix\totalnofparagraphs}{\skipparagraph#1\par}% \fi} \long\def\directskipparagraph#1% {\doglobal\increment\totalnofparagraphs \setgvalue{\paragraphprefix\totalnofparagraphs}{\skipparagraph#1\par}} \def\dopushparagraphs#1% {\global\let\mostrecentparagraphtotal\totalnofparagraphs \ifx#1\undefined \let#1\relax \fi \defconvertedargument\asciia{#1}% \defconvertedargument\asciib{ }% % lege regel \def\dopushparagraph##1\par {\defconvertedargument\asciic{##1}% \doifelse\asciic\asciia {#1} {\doifsomething\asciic % lege paragraaf {\doifnot\asciic\asciib {\directpushparagraph{#1}}}% \dopushparagraph}}% \dopushparagraph} \def\pushparagraphs {\doglobal\newcounter\totalnofparagraphs \dopushparagraphs} \def\pushmoreparagraphs {\dopushparagraphs} \def\dododopopparagraph#1% no grouping, i.v.m. sidefloats {\ifnum#1>\totalnofparagraphs\relax \else \let\paragraphnumber\globalparagraphnumber \decrement(\paragraphnumber,\discardedparagraphs)% \dobeforeparagraph \ifhmode\indentation\fi\getvalue{\paragraphprefix#1}\par \doafterparagraph \fi} \long\def\skipparagraph#1\par {\doglobal\increment\discardedparagraphs \ifprocessallparagraphs \dobeforeskipparagraph \ifhmode\indentation\fi#1\par \doafterskipparagraph \fi} \def\dodopopparagraph {\dododopopparagraph} \def\dodoprocessparagraph#1% {\ifprocesspreviousparagraphs \bgroup \setbox0\vbox{\dododopopparagraph{#1}}% \egroup \fi} \def\processpreviousparagraphs[#1]% process previous ones {\ifprocesspreviousparagraphs \bgroup \getfromcommacommand[#1][1]% tzt snelle \..command.. testen \let\totalnofparagraphs\commalistelement \decrement\totalnofparagraphs \let\dodopopparagraph\dodoprocessparagraph \popparagraphs \egroup \fi} \def\dopopparagraphs[#1]% {\doifnotinset{#1}{\v!none,0} {\dosetparagraph \doglobal\newcounter\globalparagraphnumber \doglobal\newcounter\discardedparagraphs \doifelse{#1}{} {\processallparagraphstrue} {\processallparagraphsfalse}% \def\dopopparagraph {\doglobal\increment\globalparagraphnumber \ifnum\globalparagraphnumber>\totalnofparagraphs\relax \let\dopopparagraph\relax \else\ifprocessallparagraphs \ifnum\globalparagraphnumber>\mostrecentparagraphtotal\relax \dodopopparagraph\globalparagraphnumber \else \dodoprocessparagraph\globalparagraphnumber \fi \else \let\paragraphnumber\globalparagraphnumber \decrement(\paragraphnumber,\discardedparagraphs)% \ExpandBothAfter\doifinsetelse{\paragraphnumber}{#1} {\dodopopparagraph\globalparagraphnumber} {\dodoprocessparagraph\globalparagraphnumber}% \fi\fi \dopopparagraph}% \dopopparagraph \doresetparagraph}} \def\popparagraphs {\dosingleempty\dopopparagraphs} \def\countparagraphs {\popparagraphs[\!!maxcard]% \global\let\nofparagraphs\totalnofparagraphs \doglobal\decrement(\nofparagraphs,\discardedparagraphs)} % \showframe % % \numberparagraphlines % \numberparagraphs % % \def\nofskippedparagraphs{1} % % \pushparagraphs\ThatsIt % % \ruledbaseline eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste % % \ruledbaseline eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste % % \ruledbaseline tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede % % \skipparagraph \ruledbaseline skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped % % \ruledbaseline derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % % \skipparagraph \ruledbaseline skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped % % \ruledbaseline vierde vierde vierde vierde vierde vierde % vierde vierde vierde vierde vierde vierde vierde vierde % vierde vierde vierde vierde vierde vierde vierde vierde % vierde vierde vierde vierde % % \ruledbaseline vijfde vijfde vijfde vijfde vijfde vijfde % vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde % vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde % vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde % vijfde vijfde vijfde % % \skipparagraph \ruledbaseline skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped % % \ThatsIt % % \popparagraphs % % \countparagraphs % % \blanko[2*groot] % % nofparagraphs:~\nofparagraphs % % \pagina % % \popparagraphs[1] % \popparagraphs[2] % \popparagraphs[3] % \popparagraphs[4] % \popparagraphs[5] % % \pagina % % \ruledvbox{\popparagraphs[1,2,3,4,5]} % % \pagina \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-hyp.mkii0000644000175000017500000000430214536300610024713 0ustar hillehille%D \module %D [ file=xtag-hyp, %D version=2003.11.24, %D title=\CONTEXT\ XML MAcros, %D subtitle=Hyphenation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / Hyphenation} %D This filter is kind of obsolete, since \UTF\ is not %D limited to \XML. So, here we only enable \UTF\ support. \ifnum\texengine=\luatexengine \defineXMLenvironment [hyphenations] [language=\currentlanguage,regime=utf,encoding=\defaultencoding] {\startnointerference \defineXMLargument [hyphenation] \hyphenation \language[\XMLop{language}]} {\stopnointerference} \else \defineXMLenvironment [hyphenations] [language=\currentlanguage,regime=utf,encoding=\defaultencoding] {\startnointerference \defineXMLargument [hyphenation] \hyphenation \language[\XMLop{language}]% \enableregime[\XMLop{regime}]% \enableencoding[\XMLop{encoding}]} {\stopnointerference} \fi \defineXMLsingular [hyphenate] {\-} \defineXMLgrouped [language] [code=\currentlanguage,scope=local] {\doifelse{\XMLop{scope}}{global}\mainlanguage\language[\XMLop{code}]} \defineXMLsingular [language] [code=\currentlanguage] {\doifelse{\XMLop{scope}}{global}\mainlanguage\language[\XMLop{code}]} \defineXMLsingular [compound] [token=-] {\expanded{\directdiscretionary{\XMLop{token}}}} \endinput % \mainlanguage[nl] \setupbodyfont[pos] \useXMLfilter[utf,hyp] % % \starttext % % \hyphenatedword{pati\ediaeresis nten} % \hyphenatedword{pati\ediaeresis ntenorganisatie} % \hyphenatedword{pati\ediaeresis ntenplatform} % % \startXMLdata % % pa-tiën-ten % pa-tiën-ten-or-ga-ni-sa-tie % pa-tiën-ten-plat-form % % \stopXMLdata % % \hyphenatedword{pati\ediaeresis nten} % \hyphenatedword{pati\ediaeresis ntenorganisatie} % \hyphenatedword{pati\ediaeresis ntenplatform} % % \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-grk.mkii0000644000175000017500000001603314536300610024660 0ustar hillehille%D \module %D [ file=lang-grk, %D version=2003.04.01, %D title=\CONTEXT\ Language Macros, %D subtitle=Uralic Languages, %D author=Apostolos Syropoulos %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % \endinput % something changed with greek but what \writestatus{loading}{ConTeXt Language Macros / Greek} %D The framework of this module is set up by Hans Hagen while %D all the translations have been done by Apostolos Syropoulos \unprotect \installlanguage [\s!gr] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\greekleftquot, \c!rightquote=\greekrightquot, \c!leftquotation=\greekleftquot, \c!rightquotation=\greekrightquot, % we're missing an encoding for greek \s!patterns=\s!agr, \s!mapping=\s!agr, \s!encoding=\s!agr, % but one can use mkiv / lmtx anyway \c!date={\v!day\ \v!month\ \v!year}] \installlanguage [greek] [\s!gr] \setupheadtext [\s!gr] [\v!content=\greekPi\greekepsilon\greekrho\greekiota\greekepsilon\greekchi\greekomicrontonos\greekmu\greekepsilon\greeknu\greekalpha] \setupheadtext [\s!gr] [\v!tables=\greekPi\greekiotatonos\greeknu\greekalpha\greekkappa\greekepsilon\greekfinalsigma] \setupheadtext [\s!gr] [\v!figures=\greekSigma\greekchi\greeketatonos\greekmu\greekalpha\greektau\greekalpha] \setupheadtext [\s!gr] [\v!graphics=\greekGamma\greekrho\greekalpha\greekphi\greekiota\greekkappa\greekalphatonos] \setupheadtext [\s!gr] [\v!intermezzi=\greekPi\greekalpha\greekupsilontonos\greeksigma\greekepsilon\greekiota\greekfinalsigma] \setupheadtext [\s!gr] [\v!index=\greekEpsilon\greekupsilon\greekrho\greekepsilon\greektau\greeketatonos\greekrho\greekiota\greekomicron] \setupheadtext [\s!gr] [\v!abbreviations=\greekSigma\greekupsilon\greeknu\greektau\greekomicron\greekmu\greekomicron\greekgamma\greekrho\greekalpha\greekphi\greekiotatonos\greekepsilon\greekfinalsigma] \setupheadtext [\s!gr] [\v!logos=\greekLambda\greekomicron\greekgamma\greekomicrontonos\greektau\greekupsilon\greekpi\greekalpha] \setupheadtext [\s!gr] [\v!units=\greekMu\greekomicron\greeknu\greekalphatonos\greekdelta\greekepsilon\greekfinalsigma] \setuplabeltext [\s!gr] [\v!table=\greekPi\greekiotatonos\greeknu\greekalpha\greekkappa\greekalpha\greekfinalsigma] \setuplabeltext [\s!gr] [\v!figure=\greekSigma\greekchi\greeketatonos\greekmu\greekalpha] \setuplabeltext [\s!gr] [\v!intermezzo=\greekPi\greekalpha\greekupsilontonos\greeksigma\greeketa] \setuplabeltext [\s!gr] [\v!graphic=\greekGamma\greekrho\greekalpha\greekphi\greekiota\greekkappa\greekomicrontonos] \setuplabeltext [\s!gr] [\v!chapter=\greekKappa\greekepsilon\greekphi\greekalphatonos\greeklambda\greekalpha\greekiota\greekomicron] \setuplabeltext [\s!gr] [\v!section=\greekEpsilon\greeknu\greekomicrontonos\greektau\greeketa\greektau\greekalpha] \setuplabeltext [\s!gr] [\v!subsection=\greekUpsilon\greekpi\greekomicrontonos\greekepsilon\greeknu\greekomicrontonos\greektau\greeketa\greektau\greekalpha] \setuplabeltext [\s!gr] [\v!subsubsection=] \setuplabeltext [\s!gr] [\v!subsubsubsection=] \setuplabeltext [\s!gr] [\v!appendix=\greekPi\greekalpha\greekrho\greekalphatonos\greekrho\greektau\greeketa\greekmu\greekalpha] \setuplabeltext [\s!gr] [\v!part=\greekMu\greekepsilontonos\greekrho\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!line=\greekGamma\greekrho\greekalpha\greekmu\greekmu\greeketatonos] \setuplabeltext [\s!gr] [\v!lines=\greekGamma\greekrho\greekalpha\greekmu\greekmu\greekepsilontonos\greekfinalsigma] \setuplabeltext [\s!gr] [\v!january=\greekIota\greekalpha\greeknu\greekomicron\greekupsilon\greekalphatonos\greekrho\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!february=\greekPhi\greekepsilon\greekbeta\greekrho\greekomicron\greekupsilon\greekalphatonos\greekrho\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!march=\greekMu\greekalphatonos\greekrho\greektau\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!april=\greekAlpha\greekpi\greekrho\greekiotatonos\greeklambda\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!may=\greekMu\greekalphatonos\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!june=\greekIota\greekomicron\greekupsilontonos\greeknu\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!july=\greekIota\greekomicron\greekupsilontonos\greeklambda\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!august=\greekAlpha\greekupsilontonos\greekgamma\greekomicron\greekupsilon\greeksigma\greektau\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!september=\greekSigma\greekepsilon\greekpi\greektau\greekepsilontonos\greekmu\greekbeta\greekrho\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!october=\greekOmicron\greekkappa\greektau\greekomegatonos\greekbeta\greekrho\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!november=\greekNu\greekomicron\greekepsilontonos\greekmu\greekbeta\greekrho\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!december=\greekDelta\greekepsilon\greekkappa\greekepsilontonos\greekmu\greekbeta\greekrho\greekiota\greekomicron\greekfinalsigma] \setuplabeltext [\s!gr] [\v!sunday=\greekKappa\greekupsilon\greekrho\greekiota\greekalpha\greekkappa\greeketatonos] \setuplabeltext [\s!gr] [\v!monday=\greekDelta\greekepsilon\greekupsilon\greektau\greekepsilontonos\greekrho\greekalpha] \setuplabeltext [\s!gr] [\v!tuesday=\greekTau\greekrho\greekiotatonos\greektau\greeketa] \setuplabeltext [\s!gr] [\v!wednesday=\greekTau\greekepsilon\greektau\greekalphatonos\greekrho\greektau\greeketa] \setuplabeltext [\s!gr] [\v!thursday=\greekPi\greekepsilontonos\greekmu\greekpi\greektau\greeketa] \setuplabeltext [\s!gr] [\v!friday=\greekPi\greekalpha\greekrho\greekalpha\greeksigma\greekkappa\greekepsilon\greekupsilon\greeketatonos] \setuplabeltext [\s!gr] [\v!saturday=\greekSigma\greekalphatonos\greekbeta\greekbeta\greekalpha\greektau\greekomicron] %D % \ShowAllLanguageValues [\s!gr] [\greekEpsilon\greeklambda\greeklambda\greeketa\greeknu\greekiota\greekkappa\greekalphatonos] {Greek} {love} \installlanguage [\s!agr] [\s!default=\s!gr, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \s!patterns=\s!agr, \s!mapping=\s!agr, % not needed for mkiv \s!encoding=\s!agr] % not needed for mkiv \installlanguage [ancientgreek] [\s!agr] \installlanguage [grk] [\s!agr] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/tabl-tab.mkii0000644000175000017500000021106014536300610024641 0ustar hillehille%D \module %D [ file=core-tab, %D version=1997.10.10, %D title=\CONTEXT\ Table Macros, %D subtitle=\TABLE\ Embedding, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Table Macros / TaBlE Embedding} % By now it makes more sense to merge the patches into the original % and clean that one up too. % \starttable[|||] % \HL % \VL test \VS test \VL \FR % \VL test \VD test \VL \MR % \VL test \VT test \VL \LR % \HL % \stoptable % Don't change the splitter: % % ... \NR % \TABLEnoalign{\page}\TABLEhead % \NC ... % e-tex: reverse rows or vadjust or ... in tables % \ifalign % \xhrule : calls for 'special' with width % BUG: % % \starttable[|l|l|] % \HL % \RL\FR \VL Head 1 \VL Head 2 \VL\FR % \RL\LR \VL Head A \VL Head B \VL\LR % niet grijs ?? % \HL % \VL 1 \VL 2 \VL\FR % \VL a \VL b \VL\LR % \HL % \stoptable % melden als in kleur conflict, uitgestelde test op \SR\SR % verengelsen % interface % footnotes flushen % \......TABLE........ namen % kolommen testen % unbreakable kop definieren % voetnoten % meldingen % als direct \use{max} dan fout % \BREAKPOINT % breedte lijn telt % errors: ook gray in handle % \AR -> als in DL dan \DR % nieuw: % % \NL / \NL[blanko] is skip, nog default? % geen \HL in a row % \HL[n] % \VL[n] + remembers % c{colorspec} key % \HC[color][width] % \VC[color] % meldingen row, column, use, advise % \AR: UITSTELLEN / EXPERIMENTEEL % WAARDELOZE ERROR HANDLER % THIS RENEWED MODULE WORKS OK BUT STILL LOOKS BAD %D We felt no need to write our own table building macros, %D simply because Michael Wichura made a terrific one. This %D package is quite complete and well documented. In \CONTEXT\ %D we provide a shell for consistent spacing as well as color %D support. Implementing these features without adapting the %D original macros is not trivial. One easilly gets conflicts %D with \type{\omit}, \type{\span} and \type{\noalign}, which %D means that we end up postponing and overloading macros, %D mostly global. Now, let's start with loading the main %D macros: \doifundefined{BeginTable}{\doinputonce{table.tex}} \unprotect %D \macros %D {inintable, ifsplittables} %D %D First we declare some variables. These show a bit what we %D are dealing with. First we introdoce some booleans that %D enable us, inside as well as outside this module, to %D determine in what mode we are. \newif\ifintable \newif\ifsplittables %D \macros %D {tracetablestrue} %D %D When I documented this module, I felt the need for tracing %D options. After implementing this feature, I also added %D warnings, error recovery and automatic spacing. \newif\iftracetables %D We show this feature in an eample that also shows some of %D the basic table typesetting commands. %D %D \startbuffer %D \starttable[|||] %D \HL %D \VL first \VL second \VL\AR %D \HL %D \VL alfa \VL 1 \VL\AR %D \VL beta \VL 2 \VL\AR %D \VL gamma \VL 3 \VL\AR %D \HL %D \stoptable %D \stopbuffer %D %D \startcombination %D {\tracetablesfalse\getbuffer} {\type{\tracetablesfalse}} %D {\tracetablestrue\getbuffer} {\type{\tracetablestrue}} %D \stopcombination %D %D This table is specified as: %D %D \typebuffer %D %D This examples shows about the minimum of commands needed to %D typeset such a table. In this table, the \type {\AR} is %D automatically translated into the more primitive (but more %D verbose) commands \type {\SR}, \type {\FR}, \type {\MR} and %D \type {\LR} commands. %D %D \startbuffer %D \starttables[|||] %D \HL %D \VL first \VL second \VL\AR %D \HL %D \VL alfa \VL 1 \VL\AR %D \VL beta \VL 2 \VL\AR %D \VL gamma \VL 3 \VL\AR %D \HL %D \stoptable %D \stopbuffer %D %D When we use the split table feature, we get a bit more %D information. %D %D {\tracetablesfalse\getbuffer} %D %D Sometimes in tables information shows up that is not typed %D in by the user. These messages give a cue in what aspect a %D table definition is wrong. %D %D \startbuffer %D \starttable[||||] %D \HL %D \VL first second \VL third \VL\AR %D \HL %D \VL alfa \VL 1 \VL a \VL\AR %D \VL beta \VL 2 \VL b \VL %D \VL gamma \VL \THREE{3} c \VL\AR %D \HL %D \stoptable %D \stopbuffer %D %D \typebuffer %D %D Those terrible table has three errors, which all show up in %D typeset messages. Errors cannot always recovered 100\% and %D therefore can result in two or more succesive messages, like %D in the last row. %D %D \getbuffer %D Bringing color into tables is complicated by the mere fact %D that color is not part of \TEX. The main complication is %D that we don't know in advance how wide a column will be. I %D implemented color support in tables in the early 90's %D because I needed it for some articles on color. I have to %D admit that I seldom use the mechanism. %D %D Most color support in \CONTEXT\ makes use of colored rules. %D At first sight, one is tempted to implement colors in tables %D in a similar way, but as said, we don't know the dimensions %D in advance. It turns out however that we don't have to, %D simply because alignments take care of stretching rules to %D the appropritate dimensions. This means that we can provide %D backgrounds by coloring rules with the height of a row, %D skipping upwards and finally drawing the content, like in: %D %D \gdef\ShowExample %D {\startfiguretext %D {none} %D {\getbuffer} %D \typebuffer %D \stopfiguretext} %D %D \startbuffer %D \starttable[|c|c|] %D \HL %D \BL[2] \SR %D \VL test \VL test \VL\SR %D \HL %D \VL test \VL test \VL\FR %D \VL test \VL test \VL\MR %D \VL test \VL test \VL\LR %D \HL %D \stoptable %D \stopbuffer %D %D \ShowExample %D %D Just to be complete we show how the other columns can be %D given a background. Later we will provide more details over %D the commands used. %D %D \startbuffer %D \starttable[|c|c|c|] %D \HL %D \BL[3] \SR %D \VL test \VL test \VL test \VL\SR %D \HL %D \stoptable %D \stopbuffer %D %D \ShowExample %D %D \startbuffer %D \starttable[|c|c|c|] %D \HL %D \BC \BL[2] \SR %D \VL test \VL test \VL test \VL\SR %D \HL %D \stoptable %D \stopbuffer %D %D \ShowExample %D %D \startbuffer %D \starttable[|c|c|c|] %D \HL %D \BC \BC \BL \SR %D \VL test \VL test \VL test \VL\SR %D \HL %D \stoptable %D \stopbuffer %D %D \ShowExample %D %D \startbuffer %D \starttable[|c|c|c|] %D \HL %D \BC \BL \SR %D \VL test \VL test \VL test \VL\SR %D \HL %D \stoptable %D \stopbuffer %D %D \ShowExample %D %D \startbuffer %D \starttable[|c|c|c|] %D \BL \BL \SR %D \HL %D \VL test \VL test \VL test \VL\SR %D \HL %D \stoptable %D \stopbuffer %D %D \ShowExample %D In these examples we can clearly see that for being a real %D background, the color or gray specification has to precede %D the content. Just to keep things simple, we can recall this %D specification later on: %D %D \startbuffer %D \starttable[|c|c|c|] %D \BC \BL \SR %D \HL %D \VL test \VL test \VL test \VL\SR %D \HL %D \BR\FR %D \VL test \VL test \VL test \VL\FR %D \BR\MR %D \VL test \VL test \VL test \VL\MR %D \BR\LR %D \VL test \VL test \VL test \VL\LR %D \HL %D \stoptable %D \stopbuffer %D %D \ShowExample %D %D Close study learns that we can put the specification %D before or after the \type{\HL}, whatever suits best. Keeping %D track of these specifications is taken care of by the next %D variables: \newif \ifTABLEgrayline % executing gray line \newif \ifTABLEgraydone % gray line executed \newtoks \TABLEgraytoks % gray line specification \newif\ifTABLEinbreak %D Nog vervangen: \def\c!Table{Table} \def\m!TABLE{TABLE} %D We already saw that the table macros report errors and %D provide automatic spacing. These features can only be %D implemented by keeping track of the state, often the last %D command on a row. \chardef\TABLEunknown = 0 \chardef\TABLEseparaterow = 1 \chardef\TABLEfirstrow = 2 \chardef\TABLEmidrow = 3 \chardef\TABLElastrow = 4 \chardef\TABLErule = 5 \chardef\TABLEskip = 6 \chardef\TABLEautorow = 7 \chardef\TABLEforcefirstrow = 1 \chardef\TABLEforcelastrow = 2 \chardef\TABLEmissingrow = 1 \chardef\TABLEmissingcolumn = 2 \chardef\TABLEspanoverflow = 3 \chardef\TABLEdivisionoverflow = 4 %D We store these states using efficient \type {\chardef}'s. %D Like most variables, these are global ones. When needed, %D especially when we flush the backgrounds, we can temporary %D disable the assignment. \newif\ifsetTABLEaction \def\setTABLEaction#1% {\ifsetTABLEaction\global\chardef\TABLEaction#1\fi} \def\setTABLEforce#1% {\ifsetTABLEaction\global\chardef\TABLEforce#1\fi} \def\setTABLEerror#1% {\global\chardef\TABLEerror#1} %D Before we come to using these variables, we redefine and/or %D adapt some \TABLE\ macros. Within \TABLE's the \type{|} and %D \type{"} have special meanings in templates and are active %D during. Their meaning can therefore conflict with those %D elsewhere defined. To be compatible with traditional \TABLE\ %D as well as \CONTEXT's \type{||} and the active \type{"} %D extensions for my german friends, we do some catcode magic. \newif\ifForgetTableBarAndQuote \ForgetTableBarAndQuotetrue % \bgroup % \catcode`\|=\@@active % \catcode`\"=\@@active % % \gdef\pushouterbarandquote % {\ifForgetTableBarAndQuote % \ifnum\catcode`\|=\@@active \let\outertablebar |\else\let\outertablebar \relax\fi % \ifnum\catcode`\"=\@@active \let\outertablequote"\else\let\outertablequote\relax\fi % \let|\letterbar % \let"\letterdoublequote % \fi} % % \gdef\popouterbarandquote % {\ifForgetTableBarAndQuote % \ifx\outertablebar \relax\else\let|\outertablebar \fi % \ifx\outertablequote\relax\else\let"\outertablequote\fi % \else % \redefinetablebarandquote % \fi} % % \egroup % % \def\ObeyTableBarAndQuote % {\ForgetTableBarAndQuotefalse % \ifintable % \redefinetablebarandquote % \fi} \let\ActivateBarAndQuote \relax \let\ObeyTableBarAndQuote\relax \let\pushouterbarandquote\relax \let\popouterbarandquote \relax %D \macros %D {ObeyTableBarAndQuote} %D %D As said, the \type{|} and \type{"} active characters are %D often used for other purposes. By default, the outside %D meanings are therefore preserved and available inside %D tables. If for some reason one wants to use the \TABLE\ %D primitives, one can say: %D %D \starttyping %D \ObeyTableBarAndQuote %D \stoptyping %D %D To keep things verbose, as well as to show what \TABLE\ %D commands we affect, we show some meanings. \def\normalTABLEshortrule {\!ttShortHrule} % \- \def\normalTABLElongrule {\!ttLongHrule} % \= \def\normalTABLEfullrule {\!ttFullHrule} % \_ \def\normalTABLEendofrow {\!ttEndOfRow} % \\ \def\normalTABLEsimplebar {\unskip\!ttRightGlue&&} % | \def\normalTABLEcomplexbar {\unskip\!ttRightGlue&\omit\!ttAlternateVrule} % \| \def\normalTABLEquote {\unskip\!ttRightGlue&\omit&} % " \def\normalTABLElineformat {\normalTABLEendofrow+} \def\normalTABLElineending {\normalTABLEendofrow0 } \def\normalTABLEsinglerule {&\normalTABLElongrule&} \def\normalTABLEmultirule#1{&\use{#1}\normalTABLElongrule&} %D The next hack is dedicated to Tobias, who found out that %D paragraph entries don't break well. \def\TABLEhack{\hskip\zeropoint} %D The first attemp to solve this problem was: %D %D \starttyping %D \def\normalTABLEquote% %D {\unskip\TABLEhack\!ttRightGlue&\omit&\TABLEhack} %D \stoptyping %D %D But, as usual, this interfered with \type {\omit}. %D %D The next attempt is redefining some core \TABLE\ macro:. %D This works ok, but breaks for instance the~\type{b} %D key handling. %D %D \starttyping %D \def\!tfAdjoinPriorColumn% %D {\ifnum\!taColumnNumber=0 %D \!taPreamble=\!taRuleColumnTemplate %D ... %D \if!taOnceOnlyTabskip %D \!thToksEdef\!taDataColumnTemplate= %D {\TABLEhack####\TABLEhack\tabskip\the\!taLastRegularTabskip} %D \else %D \!taDataColumnTemplate{\TABLEhack##\TABLEhack}% %D \fi %D ... %D \ReadFormatKeys} %D \stoptyping % \newdimen\TABLEparheight \def\BeginTableParBox#1% {\setbox\scratchbox\vtop\bgroup % \setbox added \hsize#1\relax \dontcomplain \restoretablelineskips \normalbaselines \let~\!ttTie \let\-\!ttDH \blank[\v!disable]% % added \the\EveryTableParBox} \def\EndTableParBox {\removelastskip % itemize or so \endgraf \ifnum\prevgraf>\zerocount % we want at least \verticalstrut \nowhitespace \vskip-\struttotal % one line of text \egroup \ifdim\dp\scratchbox>\lineheight % see (*) for an \getnoflines{\dp\scratchbox}% % example of where \dp\scratchbox\zeropoint % saving can go \setbox\scratchbox % terrible wrong \vtop to \noflines\lineheight{\box\scratchbox}% \fi % esp between rows \else % of paragraphs \egroup \fi % \getboxheight\scratchdimen\of\box\scratchbox\relax% compensate for % \ifdim\scratchdimen>\TABLEparheight % funny depth of % \global\TABLEparheight\scratchdimen % multi-line box % \fi % i.e. vtop \box\scratchbox} % We also need to patch away the interfering math switch: % \mathpunctuationtrue % test, test % \starttable[|c|] % \NC1,,10\NC\AR % \stoptable % test, test \def\!ttBeginTableA[#1]{% \if #1u% % "unboxed" table \ifmmode \def\!ttEndTable{% % user had better be in display math mode \relax}% % and have only one table at the outer level \else % user had better be in vertical mode \bgroup \def\!ttEndTable{% \egroup}% \fi \else %\hbox\bgroup $ %\def\!ttEndTable{% % \egroup % for the \vtop, \vbox, or \vcenter, yet to come % $% for math mode % \egroup}% for the \hbox %\if #1t% % \vtop %\else % \if #1b% % \vbox % \else % \vcenter % math mode was essential for this % \fi %\fi % \hbox\bgroup \def\!ttEndTable{\egroup\egroup}% \if#1t% \vtop \else\if#1b% \vbox \else \def\!ttEndTable{\egroup$\egroup}% %$\vcenter \scratchtoks\everymath\everymath\emptytoks$\everymath\scratchtoks\vcenter \fi\fi % \bgroup % for the \vtop, \vbox, or \vcenter \fi \advance\!taRecursionLevel 1 % RecursionLevel governs initialization \let\!ttRightGlue=\relax % This may be changed by \JustCenter, etc \everycr\emptytoks % ={} \ifnum \!taRecursionLevel=1 \!ttInitializeTable \fi} %D The next redefinition is more robust than the original: \def\SetTableToWidth#1% {\doifelsenothing{#1}{\!taTableSpread\emptytoks}{\!taTableSpread{to #1}}} % (*) Try this one with \type {direction} and {girection}; % the \PPCHTEX\ manual is a nice testcase. % % \startoverlay % {\starttable[ | l w(2cm) | w(8cm) | ] % \HL % \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR % \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \MR % \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \LR % \HL % \stoptable} % {\starttable[ | l w(2cm) | p(8cm) | ] % \HL % \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR % \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \MR % \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \LR % \HL % \stoptable} % \stopoverlay % \vskip2cm % \starttable[ | l w(2cm) | p(8cm) | ] % \HL % \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR % \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \LR % \HL % \stoptable % \vskip2cm % \starttable[ | l w(2cm) | p(8cm) | ] % \HL % \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \FR % \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \LR % \HL % \stoptable %D To give an impression of what the (well documented) source %D of \TABLE\ looks like, we first implement an alternative for %D the numeric keys. The quantity keys (\type{q} and \type{Q}) %D support the more european way of writing numbers: %D %D \startnarrower %D 100.000.000,00 instead of 100,000,000.00 %D \stopnarrower %D %D The next table shows how to use these keys. We use braces %D instead of brackets because we need brackets to specify the %D format. %D %D \startbuffer %D \starttable{|q[00,000]|Q[00,00]|} %D \HL %D \VL -1,2 \VL 12,35 \VL\FR %D \VL 11,203 \VL 2,4 \VL\LR %D \HL %D \stoptable %D \stopbuffer %D %D \ShowExample %D %D Although a more efficient implementation is possible |<|we %D can for instance share common macros|>| we just adapt a copy %D of the numeric ones. To permit double loading of this %D module, we check for the existence of one of the macros. \letvalue{!tk<\string q>}=\undefined \letvalue{!tk<\string Q>}=\undefined %D We just copy the original {\em comments}. %D %D \em Key \type{q}: quantity item, non||math mode. \NewFormatKey q% {\letempty\!tqStyle \futurelet\!tnext\!tqTestForBracket} %D \em Key \type{Q}: quantity item, math mode. \NewFormatKey Q% {\def\!tqStyle{$}% \futurelet\!tnext\!tqTestForBracket} %D \em Note: the space between a quantity entry and the %D following \type{|}, \type{"}, or \type{\|} is mandatory. %D empty quantity entries are not allowed: use \type{{}} or %D \type{\omit} instead. %D %D \em Test for bracket: invoked by the keys \type{q} and %D \type{Q}. \def\!tqTestForBracket {\ifx[\!tnext \!thx\!tqGetArgument \else \!thx\!tqGetCode \fi} %D \em Get code: e.g. \type{4}, or \type{4,0}, \type{0,4}, or %D \type{10,2}. \def\!tqGetCode#1 % note the blank {\!tqConvertCode #1,,!} %D \em Convert code: e.g. converts above to \type{[0000]}, %D \type{[0000,]}, \type{[,0000]}, \type{[0000000000,00]}. \def\!tqConvertCode #1,#2,#3!% {\begingroup \aftergroup\edef \aftergroup\!ttemp \aftergroup{% \aftergroup[% \!taCountA #1 \!thLoop \ifnum \!taCountA>\zerocount \advance\!taCountA \minusone \aftergroup0 \repeat \def\!ttemp{#3}% \ifx\!ttemp\empty \else \aftergroup, \!taCountA #2 \!thLoop \ifnum\!taCountA>\zerocount \advance\!taCountA \minusone \aftergroup0 \repeat \fi \aftergroup]\aftergroup}% \endgroup\relax \!thx\!tqGetArgument\!ttemp} %D \em Get argument: %D %D \starttyping %D %D \stoptyping \def\!tqGetArgument[#1]% {\!tqMakeQuantityTemplate\!tqStyle#1,,!} %D \em Make quantity template. \def\!tqMakeQuantityTemplate#1#2,#3,#4!% #1= or $ {\def\!ttemp{#4}% \ifx\!ttemp\empty \!taDimenC\zeropoint \else \setbox0\hbox{\mathsurround\zeropoint #1,#3#1}% \!taDimenC\wd0 \fi \setbox0\hbox{\mathsurround\zeropoint #1#2#1}% \!thToksEdef\!taDataColumnTemplate ={\noexpand\!tqSetQuantityItem{\the\wd0 }{\the\!taDimenC}{#1}% \the\!taDataColumnTemplate}% \ReadFormatKeys} %D \em Set numeric item. \def\!tqSetQuantityItem #1#2#3#4 % {\!tqSetQuantityItemA{#1}{#2}{#3}#4,,!} \def\!tqSetQuantityItemA #1#2#3#4,#5,#6!% {\def\!ttemp{#6}% \hbox to #1{\hss\mathsurround\zeropoint#3#4#3}% \hbox to #2{\ifx\!ttemp\empty\else\mathsurround\zeropoint#3,#5#3\fi\hss}} %D Here ends the Q||extension. Did you watch the clever use %D of aftergroup in \type{\!tqConvertCode}. % %D We also (have to) define a key for \type{\cap}: % % \letvalue{!tk<\string K>}=\undefined % % \NewFormatKey K% % {\ReadFormatKeys b\smallcapped} %D A few pages back we saw backgrounds, further on we will see %D colored rules, and here we provide a means to color the %D entries in a column. (We can of course always use the normal %D color commands for individual entries.) We could not use the %D lowercase~\type{c}, because that one is used to force {\em %D centering}. %D %D \startbuffer %D \starttable[|C{red}|C{green}|C{blue}|] %D \VL R(ed) \VL G(reen) \VL B(lue) \VL\SR %D \stoptable %D \stopbuffer %D %D \ShowExample \letvalue{!tk<\string C>}=\undefined \NewFormatKey C#1% {\ReadFormatKeys b{\localstartcolor[#1]} a{\localstopcolor}} %D So now we have three new keys: %D %D \starttable[|||] %D \HL %D \NC \bf key \NC \bf meaning \NC\AR %D \HL %D \NC Q[x,y] \NC math mode formatted numbers \NC\AR %D \NC q[x,y] \NC text mode formatted numbers \NC\AR %D \NC C{identifier} \NC column entry color \NC\AR %D \HL %D \stoptable %D To be compatible with the tabulate environment, we also %D support the \type {l}, \type {c} and \type {r} keys for %D paragraph entries. \letvalue{!tk<\string l>}=\undefined \letvalue{!tk<\string c>}=\undefined \letvalue{!tk<\string r>}=\undefined \letvalue{!tk<\string x>}=\undefined % not that needed \NewFormatKey c% {\prependtoks\raggedcenter\to\!taDataColumnTemplate \ReadFormatKeys \LeftGlue\hfil \RightGlue\hfil} \NewFormatKey l% {\prependtoks\raggedright\to\!taDataColumnTemplate \ReadFormatKeys \LeftGlue\empty \RightGlue\hfil} \NewFormatKey r% {\prependtoks\raggedleft\to\!taDataColumnTemplate \ReadFormatKeys \LeftGlue\hfil \RightGlue\empty} \NewFormatKey x% {\prependtoks\notragged\to\!taDataColumnTemplate \ReadFormatKeys \LeftGlue\hfil \RightGlue\empty} \appendtoks \TABLEparalignment \to \EveryTableParBox \def\!tfReFormat#1% {\the \!taLeftGlue \vbox{\forgetall\ialign{\span\the\!taDataColumnTemplate\cr#1\cr}}% \the \!taRightGlue \kern\zeropoint} % prevents \unskip / really needed %D Later on, we're going to implement multiple page table %D support, therefore the next \TABLE\ macro needs to be %D slightly adapted, i.c. the penalty is removed. We also %D add basic color support. \def\!ttFullHruleA {\!ttGetHalfRuleThickness \startglobalTABLEcolor % added \hrule\!thHeight\dimen0\!thDepth\dimen0 \stopglobalTABLEcolor % added %\penalty0 % removed \egroup} %D We'll see that when we want to give a vertical rule a color, %D we have to set and reset states. After heavy testing it %D proved most useful to extend a \TABLE\ primitive with some %D hooks. One thing to keep in mind is that \type{&} keeps %D assignments local. Again, we add basic color support. \let\TABLEbeforebar\empty \let\TABLEafterbar \empty \def\@VLn{1} \def\@VLd{.125em} \def\do!ttInsertVrule % will be merged in 2005 {\vrule \!thWidth \ifnum\!tgCode=\plusone \ifx\!tgValue\empty \LineThicknessFactor \else \!tgValue \fi \LineThicknessUnit \else \!tgValue \fi \hskip\@VLd} \def\!ttInsertVrule {\hfil \TABLEbeforebar % added \startglobalTABLEcolor % added % we could do without this speedup, some day merge 'm \ifcase\@VLn\or \do!ttInsertVrule \unskip \else \dorecurse\@VLn\do!ttInsertVrule \gdef\@VLn{1}% \unskip \fi \stopglobalTABLEcolor % added \TABLEafterbar % added \hfil &} %D The next two macros are only adapted to basis rule %D color support. \def\!tfSetVrule {\!thToksEdef\!taRuleColumnTemplate= {\noexpand\hfil \noexpand\startglobalTABLEcolor % added \noexpand\vrule \noexpand\!thWidth \ifnum\!tgCode=\plusone \ifx\!tgValue\empty \the\LineThicknessFactor \else \!tgValue \fi \!taLTU \else \!tgValue \fi ####% \noexpand\hfil \noexpand\stopglobalTABLEcolor % added \the\!taRuleColumnTemplate}% \!tfAdjoinPriorColumn} \def\!ttShortHruleA {\!ttGetHalfRuleThickness \startglobalTABLEcolor % added \leaders\hrule\!thHeight\dimen0\!thDepth\dimen0\hfill \stopglobalTABLEcolor % added \null \ignorespaces} %D We already showed the next one, but here we slightly adapt %D the macro by adding an \type{\expandafter}. The space after %D \type{#1} is crucial! \def\normalTABLEcomplexbar#1% {\unskip\!ttRightGlue&\omit\expandafter\!ttAlternateVrule#1 } %D To get rid of interfering \type{\omit}'s when we are %D checking the number of columns and reporting problems. The %D extensions concern the second level check, the first %D subbranch and advancing the column. \ifx\mscount\undefined \newcount\mscount \fi \def\!ttuse#1% {\ifnum#1>\plusone \omit \global\TABLEdivisionfalse \scratchcounter\currentTABLEcolumn % added \advance\scratchcounter #1% % added \advance\scratchcounter \minusone % added \ifnum\scratchcounter>\maxTABLEcolumn % added \def\next % added {\setTABLEerror\TABLEspanoverflow % added \handleTABLEerror}% % added \else % added \def\next % added {\global\advance\currentTABLEcolumn #1% % added \global\advance\currentTABLEcolumn \minusone % added \mscount#1% \mscount is in Plain \advance\mscount \minusone \advance\mscount \mscount \!thLoop \ifnum\mscount>\plusone \spanomit \advance\mscount\minusone \repeat \span}% \fi % added \else % added \def\next % conflicts with possible next \omit % added {\global\advance\currentTABLEcolumn \plusone}% % added \fi \next} % added % \starttable[|c|c|c|c|] % \HL % \VL {test} \VL \TWO{} \VL test \VL\FR % \DL \DC \DL\DR % \VL {test} \VL \TWO{} \VL test \VL\LR % \HL % \stoptable %D All commands that are executed between rows are to be put in %D \type {\noalign}. We can however not verify if we (that is %D \TABLE) does or did not enter this mode. A moderate dirty %D but useful trick is using our own alternative:\footnote{Once %D one has entered the stage of redefining \TEX\ primitives, %D such hacks become a second nature. However, redefining \type %D {\omit} and \type{\span} is not that easy.} \def\TABLEnoalign {\noalign\bgroup\let\noalign\relax\let\next=} %D \macros %D {starttable} %D %D The rest of this module is not easy to comprehend, mainly %D because we have to take care of: %D %D \startitemize[packed] %D \item \type{\startitemize[template]} %D \item \type{\startitemize{template}} %D \item \type{\startitemize[predefined]} %D \stopitemize %D %D as well as: %D %D \startitemize[continue] %D \item restart after table break %D \stopitemize %D %D The official specification of the start command is: %D %D \showsetup{starttable} \newconditional\tablerepeathead \newconditional\tablerepeattail \def\starttable {\bgroup \doif\@@tisplit\v!auto {\ifinsidesplitfloat\let\@@tisplit\v!yes\fi}% \doifinsetelse\@@tisplit{\v!yes,\v!repeat} {\def\stoptable{\stoptables\egroup}% \starttables} {\doifelsenothing\@@tiframe {\ifinsidefloat\else\startbaselinecorrection\fi} {\startframedcontent[\@@tiframe]}% \postponenotes \firststagestartTABLE}} \def\stoptable {\chuckTABLEautorow % before the tail, else noalign problem \insertTABLEtail \TABLEnoalign{\globalletempty\@@TABLEhead}% \TABLEnoalign{\globalletempty\@@TABLEtail}% \finishTABLE \doifelsenothing\@@tiframe {\ifinsidefloat\else \stopbaselinecorrection \goodbreak % compensates all the nobreaks \fi} \stopframedcontent \egroup} %D Before we can grab the argument, we have to make sure that %D the \CATCODES\ are set. The first stage takes care of that. \def\firststagestartTABLE {\bgroup % kan-ie weg? \global\intabletrue \pushouterbarandquote %catcode`\|=\@@other \complexorsimple\secondstagestartTABLE} \def\simplesecondstagestartTABLE#1% {\complexsecondstagestartTABLE[{#1}]} %D \macros %D {definetabletemplate} %D %D The complex (and main) start macro first takes care of the %D predefined case. Such a predefined setup looks like: %D %D \starttyping %D \definetabletemplate[test][|||] %D %D \starttable[test] %D \VL test \VL test \VL\AR %D \VL test \VL test \VL\AR %D \VL test \VL test \VL\AR %D \stoptable %D \stoptyping %D %D The implementation of the definition macro is not that %D complicated: \def\definetabletemplate % to be redone {\bgroup \catcode`\|=\@@other \doquadrupleempty\dodefinetabletemplate} \def\dodefinetabletemplate[#1][#2][#3][#4]% {\ifsecondargument \setgvalue{\c!Table#1}{\douseTABLEtemplate{#2}{#3}{#4}}% \fi \egroup} \def\douseTABLEtemplate#1#2#3% {\gdef\TABLEhead{\getvalue{@@TABLEhead#2}}% \gdef\TABLEtail{\getvalue{@@TABLEtail#3}}% \complexsecondstagestartTABLE[#1]} %D The optional third and fourth arguments define which table %D head and tail to use. %D %D \starttyping %D \definetabletemplate[test][|||][before][after] %D \stoptyping %D %D This also means that one can define table heads and tails %D by name! %D %D \starttyping %D \starttablehead[before] %D \HL \VL first \VL second \VL \SR \HL %D \stoptablehead %D \stoptyping %D %D Templates defined this way get protected names, that cannot %D conflict with existing commands. %D %D \showsetup{definetabletemplate} %D %D The second half of the next macro prepares table %D splitting. \def\insertTABLEhead {\TABLEnoalign{\global\settrue \preventTABLEbreak \global\setfalse\someTABLEhead}% \TABLEhead \TABLEnoalign{\global\setfalse\preventTABLEbreak}} \def\insertTABLEtail {\TABLEnoalign{\global\settrue \preventTABLEbreak \global\setfalse\someTABLEtail}% \TABLEtail \TABLEnoalign{\global\setfalse\preventTABLEbreak}} % \def\dorestartTABLE#1% % {\gdef\restartTABLE{#1}% % \restartTABLE % \insertTABLEhead % \ifsplittables \ifconditional \tablerepeattail % \TABLEnoalign{\goodbreak}% % \insertTABLEtail % \TABLEnoalign{\goodbreak}% % \fi \fi} \def\verysimpleTableHL {\TABLEnoalign{\expandafter\normalTABLEfullrule\@@tiHLheight}} \def\dorestartTABLE#1% {\gdef\restartTABLE{#1}% \restartTABLE \TABLEnoalign{\globalpushmacro\simpleTableHL\global\let\simpleTableHL\verysimpleTableHL}% \insertTABLEhead \ifsplittables \ifconditional \tablerepeattail \TABLEnoalign{\goodbreak}% \insertTABLEtail \TABLEnoalign{\goodbreak}% \fi \fi \TABLEnoalign{\globalpopmacro\simpleTableHL}} \bgroup \catcode`|=\@@other \catcode`"=\@@other \gdef\complexsecondstagestartTABLE#1[#2]% brr nested mess {\bgroup \@@useotherbar \@@useotherquote \global\setfalse\someTABLEhead \global\setfalse\someTABLEtail \expanded{\doifinstringelse{|}{#2}} {\xdef\restartTABLE{\noexpand\dorestartTABLE{\noexpand\thirdstagestartTABLE{#2}}}} {\doifdefinedelse{\c!Table#2} {\gdef\restartTABLE{\getvalue{\c!Table#2}}} {\gdef\restartTABLE{\dorestartTABLE{\getvalue{#2}}}}}% \egroup \restartTABLE} \egroup %D The third stage involves a lot of (re)sets, which we will %D explain later. %D The next definition is convenient and more in tune with %D \CONTEXT. \let \everytable \EveryTable %D We immediately use this register: \appendtoks \fixedspaces \let\_\normalunderscore \to \everytable %D Now we can start the table. \def\thirdstagestartTABLE#1% {\global\setTABLEactiontrue \setTABLEaction\TABLEunknown \setTABLEforce\TABLEunknown \setTABLEerror\TABLEunknown \global\TABLEgraylinefalse \global\TABLEgraydonefalse \globalletempty\TABLEgrayline \globalletempty\nextTABLEgrayline \globalletempty\TABLEgraylineerror \globalletempty\TABLEgraylinestatus \resetVLvalues \appendtoks\popouterbarandquote\to\EveryTable \appendtoks\localTABLEsetup\to\EveryTable \BeginTable[\ifsplittables u\else b\fi]% \defineTABLEunits \defineTABLEsteps \defineTABLErules \defineTABLEdivisions \defineTABLEshorthands \defineTABLEbackgrounds \defineTABLEendings \forgetall % added \doifsomething{#1} {\def\TABLEformat{#1}% \getTABLEnofcolumns\TABLEformat % more modern is to use catcode tables \expandafter\BeginFormat\TABLEformat\EndFormat}} \def\finishTABLE {\chuckTABLEautorow \unskip\crcr \EndTable \global\intablefalse \egroup} %D \macros %D {starttables} %D %D Split tables are specified using the plural form of the %D start and stop commands. %D %D \showsetup{starttables} %D %D For example: %D %D \starttyping %D \starttables[|||] %D \HL %D \VL element \VL atom weight \VL\AR %D \HL %D \VL ....... \VL ........... \VL\AR %D \VL ....... \VL ........... \VL\AR %D \HL %D \stoptables %D \stoptyping \newbox\tablecontentbox \def\starttables {\bgroup \splittablestrue \doifelse\@@tisplit\v!repeat {\settrue \tablerepeathead\settrue \tablerepeattail} {\setfalse\tablerepeathead\setfalse\tablerepeattail}% \flushnotes \setbox\tablecontentbox\vbox\bgroup \forgetall \global\TABLEinbreakfalse \firststagestartTABLE} % \def\stoptables % {\ifconditional\tablerepeattail\else\insertTABLEtail\fi % \finishTABLE % \egroup % \dosplittablebox\tablecontentbox % \flushnotes % \egroup} \def\stoptables {\chuckTABLEautorow % AM: before the tail, else noalign problem \ifconditional\tablerepeattail\else\insertTABLEtail\fi \finishTABLE \egroup \dontcomplain \dosplittablebox\tablecontentbox \flushnotes \egroup} \newdimen\TABLEcaptionheight % obsolete \def\dosplittablebox#1% {\resettsplit \def\tsplitminimumfreelines{2}% \def\tsplitminimumfreespace{\TABLEcaptionheight}% \setbox\tsplitcontent\box#1% \ifconditional\tablerepeathead \ifconditional\someTABLEhead \setbox\tsplithead\vsplit\tsplitcontent to \lineheight \setbox\tsplithead\vbox{\unvbox\tsplithead}% \fi \fi \ifconditional\tablerepeattail \ifconditional\someTABLEtail \setbox\tsplittail\vsplit\tsplitcontent to \lineheight \setbox\tsplittail\vbox{\unvbox\tsplittail}% \fi \fi \ifinsidefloat\else \def\tsplitbeforeresult{\startbaselinecorrection}% \def\tsplitafterresult {\stopbaselinecorrection}% \fi \handletsplit} %D When the table in the previous example is split across %D pages, only the first gets a head. We could have said %D something like: %D %D \starttyping %D \starttablekop %D \HL %D \VL element \VL atom weight \VL\AR %D \HL %D \stoptablekop %D %D \starttablestaart %D \HL %D \stoptablestaart %D %D \starttables[|||] %D \VL ....... \VL ........... \VL\AR %D \VL ....... \VL ........... \VL\AR %D \stoptables %D \stoptyping %D %D This time each split table gets a head line and ends with %D a rule. Keep in mind that such heads also apply to the %D unbroken ones and should be defined local (grouped) if %D needed. The rather complicated definition below is due to %D the fact that the stopcondition is interface language %D dependant. \let\@@TABLEhead\empty \def\TABLEhead{\@@TABLEhead} \let\@@TABLEtail\empty \def\TABLEtail{\@@TABLEtail} \letvalue{\e!start\v!tablehead}=\undefined \letvalue{\e!stop \v!tablehead}=\undefined \letvalue{\e!start\v!tabletail}=\undefined \letvalue{\e!stop \v!tabletail}=\undefined \expanded {\def\csname\e!start\v!tablehead\endcsname##1\csname\e!stop\v!tablehead\endcsname% {\noexpand\setTABLEhead##1\noexpand\end}} \expanded {\def\csname\e!start\v!tabletail\endcsname##1\csname\e!stop\v!tabletail\endcsname% {\noexpand\setTABLEtail##1\noexpand\end}} %D The second argument is a dummy one, by scanning for it, we %D get rid of interfering spaces. \def\setTABLEhead{\dodoubleempty\dosetTABLEhead} \def\setTABLEtail{\dodoubleempty\dosetTABLEtail} \newconditional\preventTABLEbreak \newconditional\someTABLEhead \def\dosetTABLEhead[#1][#2]#3\end{\setvalue{@@TABLEhead#1}{\TABLEnoalign{\global\settrue\someTABLEhead}#3}} \def\dosetTABLEtail[#1][#2]#3\end{\setvalue{@@TABLEtail#1}{\TABLEnoalign{\global\settrue\someTABLEtail}#3}} %D Redudant \type{\HL}'s are removed automatically, so %D mid||lines can be used without problems. %D We need an alternative for the normal complex or simple %D commands, because assignments in these system commands %D conflict with \type{\noalign}. This alternative is about %D as efficient as possible. \def\complexorsimpleTable#1#2% {\csname\if[\noexpand#2\s!complex\else\s!simple\fi\c!Table#1\endcsname#2} %D The next one is used in \type{\VL} cum suis and honours %D the next grouping. \def\docomplexorsimpleTable#1#2% {\ifx\next\bgroup\@EA#2\else\@EA\dodocomplexorsimpleTable\@EA#1\@EA#2\fi} \def\dodocomplexorsimpleTable#1#2#3% {\if[\noexpand#3\@EA#1\else\@EA#2\fi#3} %D The order of the next macros is more or less random. First %D we implement error recovery. Errors are reported to the %D screen and log file as well as visualized in the table in %D teletype. \def\handleTABLEerror {\ifTABLEgrayline \else \ifnum\TABLEerror=\TABLEunknown \else \setTABLEaction\TABLEunknown \globalletempty\checkTABLEautorow \globalletempty\chuckTABLEautorow \fi \ifcase\TABLEerror % no error \or % \TABLEmissingrow \tttf [missing row]% \writestatus\m!TABLE{missing row}% \SR \or % \TABLEmissingcolumn \fillTABLEcolumns \tttf [missing column]% \writestatus\m!TABLE{missing column}% \SR \or % \TABLEspanoverflow \fillTABLEcolumns \tttf [columnspan too large]% \writestatus\m!TABLE{columnspan too large}% \SR \or % \TABLEdivisionoverflow \fillTABLEcolumns \tttf [division line too long]% \writestatus\m!TABLE{division line too long}% \SR \fi \fi \ifnum\TABLEerror=\TABLEunknown \else \finishTABLErow \fi} \def\finishTABLErow {\crcr \TABLEnoalign {\nobreak \setTABLEaction\TABLEunknown \setTABLEerror\TABLEunknown \globalletempty\checkTABLEautorow \globalletempty\chuckTABLEautorow \global\currentTABLEcolumn\zerocount}} \def\fillTABLEcolumns {\ifnum\currentTABLEcolumn>\maxTABLEcolumn \else \global\advance\currentTABLEcolumn \plusone \normalTABLEquote \expandafter\fillTABLEcolumns \fi} %D Next we enter the more complicated area of column and row %D switching. I won't go into much detail from now on, but just %D mention the general principles. %D %D \startitemize[3*ruim] %D \sym{\type{\SR}} end a separate row (between rules) %D \sym{\type{\FR}} end a first row (after a rule) %D \sym{\type{\MR}} end a mid row (between text lines) %D \sym{\type{\LR}} end a last row (before a rule) %D \stopitemize %D %D and best of all: %D %D \startitemize[continue] %D \sym{\type{\AR}} end a row with automatic spacing %D \stopitemize %D %D As far as possible, we report confusing situations. In %D most cases one can use \type{\AR}, which transfigurates %D itself into one of the other types. %D %D \starttyping %D \starttable[||] %D \HL %D \VL a separate row \VL\SR %D \HL %D \VL a first row \VL\FR %D \VL a mid row \VL\MR %D \VL a last row \VL\LR %D \HL %D \stoptable %D \stoptyping %D %D In this example we could have used \type{\AR} without %D problems. %D %D Color or gray scale backgrounds precede the content. They %D are passed over horizontal (division) lines when needed. %D Errors in the color template are traced elsewhere. Here we %D only check for inconsistent spacing. Due to the way \TEX\ %D handles alignments, we cannot automate spacing for colored %D rows and columns. \chardef\TABLErowzero=0 \def\checkTABLErow#1% pure for message purposes {\unskip % added \ifTABLEgraydone \defconvertedargument\asciia{#1}% \defconvertedcommand \asciib\TABLEendBCL \ifx\asciia\asciib \else \writestatus\m!TABLE{confusing \asciia\space and \asciib}% \gdef\TABLEgraylineerror% {\globalletempty\TABLEgraylineerror [\asciia\unskip<->\asciib\unskip]}% \fi \global\TABLEgraydonefalse \fi} \def\defineTABLEendings {\let\SR\TableSR \let\FR\TableFR \let\MR\TableMR \let\LR\TableLR \let\AR\TableAR} \def\TableSR {\ifTABLEgrayline \else \ifnum\TABLEaction=\TABLEfirstrow \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}% \else\ifnum\TABLEaction=\TABLEmidrow \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}% \else\ifnum\TABLEaction=\TABLEmidrow \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}% \fi\fi\fi \fi \checkTABLErow\SR \endTABLErow\TABLEseparaterow\TABLErowfactor\TABLErowfactor} \def\TableFR {\ifTABLEgrayline \else \ifnum\TABLEaction=\TABLEmidrow \writestatus\m!TABLE{change \string\FR\space into \string\MR/\string\LR}% \else\ifnum\TABLEaction=\TABLElastrow \writestatus\m!TABLE{change \string\FR\space into \string\MR/\string\LR}% \fi\fi \fi \checkTABLErow\FR \endTABLErow\TABLEfirstrow\TABLErowfactor\TABLErowzero} \def\TableMR {\ifTABLEgrayline \else \ifnum\TABLEaction=\TABLErule \writestatus\m!TABLE{change \string\MR\space into \string\FR/\string\SR}% \else\ifnum\TABLEaction=\TABLElastrow \writestatus\m!TABLE{change \string\MR\space into \string\FR}% \fi\fi \fi \checkTABLErow\MR \endTABLErow\TABLEmidrow00} \def\TableLR {\ifTABLEgrayline \else \ifnum\TABLEaction=\TABLErule \writestatus\m!TABLE{change \string\LR\space into \string\FR/\string\SR}% \fi \fi \checkTABLErow\LR \endTABLErow\TABLElastrow\TABLErowzero\TABLErowfactor} %D \macros %D {ifcheckTABLEcolums} %D %D %D The next macros handle the actual row ending. This macro %D also take care of space corrections due to table splitting %D when \type{\MR} and collegues are used. When tracing is %D enabled, the corrections as well as the values used to %D determine the available space are shown (in color). By default %D checking is off. \newif\ifcheckTABLEcolumns \let\beforeTABLEline\empty \let\afterTABLEline \empty \def\doendTABLErow#1#2#3% {\handleTABLEbreak#2#3% \beforeTABLEline \ifcase#1\relax % unknown \or \endofTABLEline[blue][\SR->\SR]\TABLErowfactor\TABLErowfactor \or \endofTABLEline[red][\FR->\FR]\TABLErowfactor\TABLErowzero \or \ifnum\TABLEforce=\TABLEforcelastrow \endofTABLEline[red][\MR->\LR]\TABLErowzero\TABLErowfactor \else\ifnum\TABLEforce=\TABLEforcefirstrow \endofTABLEline[red][\MR->\FR]\TABLErowfactor\TABLErowzero \else \endofTABLEline[green][\MR->\MR]\TABLErowzero\TABLErowzero \fi\fi \or \endofTABLEline[red][\LR->\LR]\TABLErowzero\TABLErowfactor \fi \TABLEnoalign {\setTABLEforce\TABLEunknown \global\currentTABLEcolumn\zerocount}% \afterTABLEline} \def\endTABLErow#1#2#3% {\setTABLEaction#1% \ifTABLEgrayline \finishTABLErow \else \ifnum\currentTABLEcolumn>\maxTABLEcolumn \doendTABLErow{#1}{#2}{#3}% \else\ifcheckTABLEcolumns \setTABLEerror\TABLEmissingcolumn \handleTABLEerror \else \doendTABLErow{#1}{#2}{#3}% \fi\fi \fi} %D Handling \type{\AR} is postponed till the next row. The %D check takes care of the first and mid rows, the chuck macro %D |<|how about that name|>| handles the last row. \def\TableAR {\ifTABLEgraydone \globalletempty\checkTABLEautorow \globalletempty\chuckTABLEautorow \global\TABLEgraydonefalse \TABLEendBCL \else \globallet\checkTABLEautorow\docheckTABLEautorow \globallet\chuckTABLEautorow\dochuckTABLEautorow \fi} \let\checkTABLEautorow\empty \let\chuckTABLEautorow\empty \def\docheckTABLEautorow {\globallet\checkTABLEautorow\empty \ifnum\TABLEaction=\TABLErule \FR \else\ifnum\TABLEaction=\TABLEunknown \FR \else \MR \fi\fi} \def\dochuckTABLEautorow {\globalletempty\checkTABLEautorow \globalletempty\chuckTABLEautorow \ifnum\TABLEaction=\TABLErule \SR \else\ifnum\TABLEaction=\TABLEunknown \SR \else \LR \fi\fi} %D When a table is split, we also add a tail and when present %D we repeat the table head. \def\handleTABLEbreak#1#2% {\globalletempty\beforeTABLEline \gdef\afterTABLEline{\TABLEnoalign{\ifconditional\preventTABLEbreak\nobreak\else\goodbreak\fi}}} %D When tables are split, the spacing before and after a %D horizontal rule is corrected according to what we expect. \def\endofTABLEline[#1][#2->#3]#4#5% {\ifx#2#3\else \writestatus\m!TABLE{\string#2\space changed into \string#3}% \fi \iftracetables \bgroup \tttf\space \ifnum\TABLEerror=\TABLEunknown \ifx#2#3\else\string#2->\fi \else ->% \fi \color[#1]{\string#3}% \ifx\TABLEgraylineerror\empty \space\TABLEgraylinestatus \else \space\TABLEgraylineerror \fi \egroup \else\ifx\TABLEgraylineerror\empty \else % \bgroup % \tttf\space\TABLEgraylineerror % \egroup \fi\fi \globalletempty\TABLEgraylinestatus \globalletempty\TABLEgraylineerror \expandafter\normalTABLElineformat#4#5\crcr % \crcr nodig ? \TABLEnoalign{\nobreak\global\setTABLEactiontrue}} %D In order to prevent (as good as possible) alignment overflow %D and therefore \TEX\ error messages, we check the maximum %D number of columns. We keep track of the current column and %D maximum column by means of two \COUNTERS. Keep in mind that %D the number of \type{|}'s and \type{\VL}'s or alike is always %D one more than the number of columns. \newcount\currentTABLEcolumn \newcount\maxTABLEcolumn %D While defining this macro we change the \CATCODE\ of %D \type{|}. When counting the bars, we use a non active %D representation of the bar, simply because we cannot be sure %D if the bar is active or not.\footnote{Normally it is, but %D \TABLE\ changes the catcode when needed.} \bgroup \catcode`\|=\@@other \gdef\@@otherbar {|} \catcode`\"=\@@other \gdef\@@otherquote {"} \catcode`\|=\@@active \gdef\@@useotherbar {\let|\@@otherbar} \catcode`\"=\@@active \gdef\@@useotherquote{\let"\@@otherquote} \egroup \bgroup \catcode`\|=\@@other \gdef\getTABLEnofcolumns#1% {\bgroup \cleanupfeatures % needed ! \@@useotherbar \@@useotherquote \expanded{\defconvertedargument\noexpand\ascii{#1}}% \@EA\doglobal\@EA\counttoken\@EA|\@EA\in\ascii\to\maxTABLEcolumn \global\advance\maxTABLEcolumn \minusone % in case of & counting, divide by 2 \egroup} \egroup \def\!ttDoHalign {\edef\restoretablelineskips {\baselineskip \the\baselineskip \lineskiplimit\the\lineskiplimit \lineskip \the\lineskip \tabskip \the\tabskip}% \baselineskip \zeropoint \lineskiplimit\zeropoint \lineskip \zeropoint \tabskip \zeropoint % does not work in normal tex % \expanded{\getTABLEnofcolumns{\the\!taPreamble}}% added \halign \the\!taTableSpread \bgroup \span\the\!taPreamble \ifx \!tfRowOfWidths \empty \else \!tfRowOfWidths \cr \fi} %D \startitemize[3*ruim] %D \sym{\type{\VL}} a vertical line %D \sym{\type{\VC}} a vertical colored line %D \sym{\type{\HL}} a horizontal line %D \sym{\type{\HC}} a horizontal colored line %D \stopitemize % \def\defineTABLErules % {\let\VL\TableVL % \let\VC\TableVC % \let\HL\TableHL % \let\HC\TableHC} \def\defineTABLErules {\let\VL\TableVL \let\VC\TableVC \let\HL\TableHL \let\HC\TableHC \let\VS\TableVS \let\VD\TableVD \let\VT\TableVT \let\VN\TableVN} \def\TableVL {\checkTABLEautorow \nextTABLEgrayline \ifnum\currentTABLEcolumn>\maxTABLEcolumn \setTABLEerror\TABLEmissingrow \handleTABLEerror \else \global\advance\currentTABLEcolumn \plusone \expandafter\doTableVL \fi} \def\doTableVL {\futurelet\next\dodoTableVL} \def\dodoTableVL {\docomplexorsimpleTable\complexTableVL\simpleTableVL} \def\complexTableVL[#1]% {\scratchcounter=0#1% \multiply\scratchcounter \@@tiVLwidth \setxvalue{wVL\the\currentTABLEcolumn}{\the\scratchcounter}% \simpleTableVL} \def\simpleTableVL {\doifundefined{wVL\the\currentTABLEcolumn}% {\setgvalue{wVL\the\currentTABLEcolumn}{\@@tiVLwidth}}% \gdef\TABLEbeforebar {\getvalue{bVL\the\currentTABLEcolumn}% \letgvalueempty{bVL\the\currentTABLEcolumn}}% \gdef\TABLEafterbar {\getvalue{eVL\the\currentTABLEcolumn}% \letgvalueempty{eVL\the\currentTABLEcolumn}}% \edef\@@tiVLwidth{\getvalue{wVL\the\currentTABLEcolumn}}% \expanded{\normalTABLEcomplexbar\@@tiVLwidth\space}}% \relax breaks \use % \starttable[|||] % \HL % \VL test \VS test \VL \FR % \VL test \VD test \VL \MR % \VL test \VT test \VL \LR % \HL % \stoptable \def\TableVS {\VN1} \def\TableVD {\VN2} \def\TableVT {\VN3} \def\TableVN#1{\gdef\@VLn{#1}\VL} \def\resetVLvalues {\dostepwiserecurse\zerocount\maxTABLEcolumn\plusone {\setgvalue{wVL\recurselevel}{\@@tiVLwidth}% \letgvalueempty{bVL\recurselevel}% \letgvalueempty{eVL\recurselevel}}% \global\currentTABLEcolumn\zerocount} \def\TableVC {\checkTABLEautorow \nextTABLEgrayline \ifnum\currentTABLEcolumn>\maxTABLEcolumn \setTABLEerror\TABLEmissingrow \handleTABLEerror \else \global\advance\currentTABLEcolumn \plusone \expandafter\doTableVC \fi} \def\doTableVC {\futurelet\next\dodoTableVC} \def\dodoTableVC {\docomplexorsimpleTable\complexTableVC\simpleTableVC} \def\complexTableVC[#1]% {\global\setvalue{bVC\the\currentTABLEcolumn}{\localstartcolor[#1]}% \global\setvalue{eVC\the\currentTABLEcolumn}{\localstopcolor}% \simpleTableVC} \def\simpleTableVC {\global\setvalue{bVL\the\currentTABLEcolumn}% {\getvalue{bVC\the\currentTABLEcolumn}}% \global\setvalue{eVL\the\currentTABLEcolumn}% {\getvalue{eVC\the\currentTABLEcolumn}}% \doTableVL} \def\TableHL {\ifnum\currentTABLEcolumn>\maxTABLEcolumn \chuckTABLEautorow \else\ifnum\currentTABLEcolumn=\zerocount %\chuckTABLEautorow \TABLEnoalign {\globalletempty\checkTABLEautorow \globalletempty\chuckTABLEautorow}% \else \setTABLEerror\TABLEmissingcolumn \handleTABLEerror \fi\fi \complexorsimpleTable{HL}} \def\complexTableHL[#1]% {\TABLEnoalign {\scratchcounter0#1% \multiply\scratchcounter \@@tiHLheight \edef\@@tiHLheight{\the\scratchcounter}% \simpleTableHL}} \def\simpleTableHL {\TABLEnoalign {\nobreak \ifnum\TABLEaction=\TABLErule \writestatus\m!TABLE{skipping \string\HL}% \statusmessage \else \ifnum\TABLEaction=\TABLEmidrow \writestatus\m!TABLE{change \string\MR\space into \string\LR/\string\SR}% \else\ifnum\TABLEaction=\TABLEfirstrow \writestatus\m!TABLE{change \string\MR\space into \string\SR}% \fi\fi \startHLcommand \expandafter\normalTABLEfullrule\@@tiHLheight \stopHLcommand \globalletempty\startHLcommand \globalletempty\stopHLcommand \accountTABLElinewidth \fi \setTABLEaction\TABLErule \nobreak}} \let\startHLcommand\empty \let\stopHLcommand \empty \def\TableHC {\complexorsimpleTable{HC}} \def\complexTableHC[#1]% {\TABLEnoalign {\gdef\startHCcommand{\localstartcolor[#1]}% \gdef\stopHCcommand {\localstopcolor}}% \simpleTableHC} \def\simpleTableHC {\TABLEnoalign {\globallet\startHLcommand\startHCcommand \globallet\stopHLcommand \stopHCcommand}% \HL} %D \startitemize[3*ruim] %D \sym{\type{\NL}} a vertical skip %D \sym{\type{\NR}} goto the next row %D \sym{\type{\NC}} goto the next column %D \sym{\type{\FC}} a first column %D \sym{\type{\MC}} a mid column %D \sym{\type{\LC}} a last column %D \stopitemize % n+1 uitleggen \def\defineTABLEsteps {\let\NL\TableNL \let\NR\TableNR \let\NC\TableNC \let\FC\TableNC \let\MC\TableNC \let\LC\TableNC} \def\TableNL {\complexorsimpleTable{NL}} \def\complexTableNL[#1]% {\TABLEnoalign {\edef\@@tiNL{#1}% \simpleTableNL}}% \def\simpleTableNL {\TABLEnoalign {\nobreak \setbox0\vbox{\blank[\@@tiNL]}% \vskip\ht0 \nobreak}} \def\TableNR {\ifnum\currentTABLEcolumn>\maxTABLEcolumn \global\currentTABLEcolumn\zerocount \normalTABLElineending \else \setTABLEerror\TABLEmissingcolumn \handleTABLEerror \fi \TABLEnoalign {\nobreak \setTABLEaction\TABLEunknown}} \def\TableNC {\checkTABLEautorow \nextTABLEgrayline \ifnum\currentTABLEcolumn>\maxTABLEcolumn \setTABLEerror\TABLEmissingrow \handleTABLEerror \else \global\advance\currentTABLEcolumn \plusone \normalTABLEquote \fi} % \bgroup % \catcode`\|=\@@active % \catcode`\"=\@@active % \gdef\redefinetablebarandquote % {\def|{\VL}% % \normalTABLEsimplebar % \def\|##1{\VL[##1]}% % \normalTABLEcomplexbar % \def"{\NC}} % \normalTABLEquote % \egroup \let\redefinetablebarandquote\relax %D \startitemize[3*ruim] %D \sym{\type{\DL}} %D \sym{\type{\DV}} (\type{\VD}) %D \sym{\type{\DC}} %D \sym{\type{\DR}} %D \stopitemize \newif\ifTABLEdivision % \def\defineTABLEdivisions % {\global\TABLEdivisionfalse % in start % \let\DL\TableDL % \let\DC\TableDC % \let\DV\TableDV % \let\VD\TableDV % \let\DR\TableDR} \def\defineTABLEdivisions {\global\TABLEdivisionfalse % in start \let\DL\TableDL \let\DC\TableDC \let\DV\TableDV \let\DR\TableDR} \def\checkTABLEdivision {\ifTABLEdivision \else \chuckTABLEautorow \global\currentTABLEcolumn\zerocount \global\TABLEdivisiontrue \fi} \def\TableDL {\checkTABLEdivision \complexorsimpleTable{DL}} \def\simpleTableDL {\complexTableDL[1]} \def\complexTableDL[#1]% {\ifnum\TABLEaction=\TABLErule \writestatus\m!TABLE{skipping \string\DL}% \else \ifnum\TABLEaction=\TABLEmidrow \writestatus\m!TABLE{change \string\MR\space into \string\LR/\string\SR}% \else\ifnum\TABLEaction=\TABLEfirstrow \writestatus\m!TABLE{change \string\MR\space into \string\SR}% \fi\fi \setTABLEaction=\TABLEunknown \ifnum\currentTABLEcolumn>\maxTABLEcolumn \setTABLEerror\TABLEmissingrow \handleTABLEerror \fi %\startHLcommand \ifnum#1=\plusone \global\advance\currentTABLEcolumn \plustwo \let\next\normalTABLEsinglerule \else \ifnum#1<\maxTABLEcolumn \global\advance\currentTABLEcolumn \plusone \def\next{\normalTABLEmultirule{#1}}% \else \setTABLEerror\TABLEdivisionoverflow \let\next\handleTABLEerror \fi \fi \next %\stopHLcommand %\globalletempty\startHLcommand %\globalletempty\stopHLcommand \fi} \def\TableDV {\TableDCV\normalTABLEsimplebar} \def\TableDC {\TableDCV\normalTABLEquote} \def\TableDCV#1% {\checkTABLEdivision \checkTABLEautorow \ifnum\currentTABLEcolumn>\maxTABLEcolumn \setTABLEerror\TABLEmissingrow \handleTABLEerror \else \global\advance\currentTABLEcolumn \plusone #1% \fi} \def\TableDR {\ifnum\currentTABLEcolumn<\maxTABLEcolumn % silent recovery %\setTABLEerror\TABLEmissingcolumn % some day warning %\handleTABLEerror \finishTABLErow \else \global\currentTABLEcolumn\zerocount % nog check \normalTABLElineending \fi \TABLEnoalign {\nobreak \global\TABLEdivisionfalse \accountTABLElinewidth % temporary solution \setTABLEaction\TABLErule}} \def\accountTABLElinewidth {\scratchdimen\LineThicknessUnit} %D \startitemize[3*ruim] %D \sym{\type{\BC}} %D \sym{\type{\BR}} %D \sym{\type{\BACKGROUND}} %D \sym{\type{\CL}} %D \sym{\type{\RL}} %D \sym{\type{\BL}} %D \sym{\type{\RASTER}} %D \sym{\type{\COLOR}} %D \stopitemize % definieer: \BC \BL % herhaal: \BR % definieer: \CL \RL (eerste \CL[green] = hele row! / \CL[1,green]) % dus: \CL en \RL mix tussen \HL en \BL \def\defineTABLEbackgrounds {\let\BC \TableBC \let\BL \TableBL \let\BR \TableBR \let\BACKGROUND\TableBR \let\CL \TableCL \let\RL \TableRL \let\COLOR \TableCOLOR \let\RASTER \TableRASTER \globallet\lastTABLEc\@@tibackgroundcolor \globallet\lastTABLEr\@@tibackgroundscreen \doifinsetelse\@@tibackground{c,color} % \v!color {\global\chardef\TABLEcr\plusone} {\global\chardef\TABLEcr\plustwo}} \def\TableBC {\ifTABLEgrayline \normalTABLEquote \else \TABLEnoalign\bgroup \globallet\nextTABLEgrayline\executeTABLEgrayline \globalletempty\TABLEgrayline % new \let\BL\doTableBL \let\BC\doTableBC \expandafter\doTableBC \fi} \def\doTableBC {\addtoTABLEgrayline{\BC}% \gobbleTableBCL} \def\TableBL {\TABLEnoalign\bgroup \globallet\nextTABLEgrayline\executeTABLEgrayline \globalletempty\TABLEgrayline % new \let\BL\doTableBL \let\CL\doTableCL \let\RL\doTableRL \let\BC\doTableBC \doTableBL} \def\doTableBL {\complexorsimpleTable{BL}} \def\simpleTableBL {\complexTableBL[,]} \def\complexTableBL[#1]% {\analyzeTABLEcr[#1]% \handleTABLEcr} \def\TableBR#1% {\TABLEnoalign {\globallet\nextTABLEgrayline\executeTABLEgrayline \checkTABLEgrayline#1\BR \global\TABLEgraylinetrue}} \def\analyzeTABLEcr[#1]% {\doanalyzeTABLEcr[#1,,]} \def\doanalyzeTABLEcr[#1,#2,#3]% {\doifnumberelse{#1x} % Is the x still needed here? {\dodoanalyzeTABLEcr[#1,#2,#3]} {\dodoanalyzeTABLEcr[1,#1,#2]}} \def\dodoanalyzeTABLEcr[#1,#2,#3]% {\global\chardef\TABLEn#1\relax \processaction [#2] [ c=>\global\chardef\TABLEcr1,% color=>\global\chardef\TABLEcr1,% r=>\global\chardef\TABLEcr2,% raster=>\global\chardef\TABLEcr2]% \ifcase\TABLEcr \or \doifsomething{#3}{\xdef\lastTABLEc{#3}}% \or \doifsomething{#3}{\xdef\lastTABLEr{#3}}% \fi} \def\handleTABLEcr {\relax % else funny side effect \ifcase\TABLEcr % Can't happen! \or \addtoTABLEgrayline{\complexTableCOLOR[\the\TABLEn,\lastTABLEc]}% \else \addtoTABLEgrayline{\complexTableRASTER[\the\TABLEn,\lastTABLEr]}% \fi \gobbleTableBCL} \def\analyzeTABLEcrl#1[#2]% {\doanalyzeTABLEcrl#1[#2,,]} \def\doanalyzeTABLEcrl#1[#2,#3,#4]% {\doifnumberelse{#2x} % x ???????????????????? {\dodoanalyzeTABLEcr[#2,#1,#3]} {\dodoanalyzeTABLEcr[\ifTABLEgrayline1\else\maxTABLEcolumn\fi,#1,#2]}} \def\TableCL {\TABLEnoalign\bgroup \globallet\nextTABLEgrayline\executeTABLEgrayline \globalletempty\TABLEgrayline % new \let\BL\doTableBL \let\CL\doTableCL \let\RL\doTableRL \let\BC\doTableBC \doTableCL} \def\doTableCL {\complexorsimpleTable{CL}} \def\simpleTableCL% nog eens \'e\'en lijn van maken {\BL[\the\maxTABLEcolumn,c,\lastTABLEc]} \def\complexTableCL[#1]% {\analyzeTABLEcrl{c}[#1]% \handleTABLEcr} \def\TableRL {\TABLEnoalign\bgroup \globallet\nextTABLEgrayline\executeTABLEgrayline \globalletempty\TABLEgrayline % new \let\BL\doTableBL \let\CL\doTableCL \let\RL\doTableRL \let\BC\doTableBC \doTableRL} \def\doTableRL {\complexorsimpleTable{RL}} \def\simpleTableRL {\BL[\the\maxTABLEcolumn,r,\lastTABLEr]} \def\complexTableRL[#1]% {\analyzeTABLEcrl{r}[#1]% \handleTABLEcr} \def\checkTABLEgrayline#1#2% {\!!doneatrue \ifx#1\AR \!!doneafalse \else\ifx#1\SR\else\ifx#1\FR\else\ifx#1\MR\else\ifx#1\LR\else \!!doneafalse \fi\fi\fi\fi\fi \if!!donea \gdef\TABLEgraylinestatus {[\string#1]}% \gdef\TABLEendBCL {#1}% \else \gdef\TABLEgraylineerror {[\string#2\string#1->\string#2\string\SR]}% \gdef\TABLEendBCL {\SR}% \fi} \def\endTABLErowGL#1#2#3% {\ifcase#1\relax % unknown \or \doPreTableGL\TABLErowfactor\TABLErowfactor \or \doPreTableGL\TABLErowfactor\TABLErowzero \or \ifnum\TABLEforce=\TABLEforcelastrow \doPreTableGL\TABLErowzero\TABLErowfactor \else\ifnum\TABLEforce=\TABLEforcefirstrow \doPreTableGL\TABLErowfactor\TABLErowzero \else \doPreTableGL\TABLErowzero\TABLErowzero \fi\fi \or \doPreTableGL\TABLErowzero\TABLErowfactor \fi} \def\doPreTableGL#1#2% betere namen {\xdef\OldLineThicknessFactor{\the\LineThicknessFactor}% \xdef\OldLineThicknessUnit{\the\LineThicknessUnit}% \global\LineThicknessFactor\plusone \setbox0\hbox{\AugmentedTableStrut{#1}{#2}}% \getboxheight\dimen0\of\box0\relax \xdef\TABLEgraylineHeight{\the\dimen0}% \global\LineThicknessUnit\TABLEgraylineHeight} \def\doPostTableGL {\global\LineThicknessFactor\OldLineThicknessFactor \global\LineThicknessUnit \OldLineThicknessUnit} % kan simpeler \def\docomplexTableCOLOR[#1]% {\dodocomplexTableGL\localstartcolor \localstopcolor [#1,\lastTABLEc,,]} \gdef\docomplexTableRASTER[#1]% {\dodocomplexTableGL\localstartraster\localstopraster[#1,\lastTABLEr,,]} \def\dodocomplexTableGL#1#2[#3,#4,#5,#6]% {\doifelsenothing{#4}{#1[#5]}{#1[#4]}% \doPreTableGL\TABLEendofrowheight\TABLEendofrowdepth \ifnum#3=\plusone % else conflict with \omit in \= \let\next\normalTABLEsinglerule \else \def\next{\normalTABLEmultirule{#3}}% \fi \next \doPostTableGL #2} \def\TableBACKGROUND {\TableBR} \def\simpleTableRASTER #1{\docomplexTableRASTER[1]#1} \def\complexTableRASTER[#1]{\docomplexTableRASTER[#1]} \def\simpleTableCOLOR {\docomplexTableCOLOR [1]} \def\complexTableCOLOR [#1]{\docomplexTableCOLOR [#1]} \def\TableRASTER{\complexorsimpleTable{RASTER}} \def\TableCOLOR {\complexorsimpleTable{COLOR}} \def\addtoTABLEgrayline#1% {\TABLEgraytoks\expandafter{\TABLEgrayline}% \xdef\TABLEgrayline{\the\TABLEgraytoks\noexpand#1}} \def\setTableBCL#1#2% {\ifx#1#2% \gdef\TABLEgraylinestatus{[\string#1]}% \gdef\TABLEendBCL{#1}% \addtoTABLEgrayline{#1}% \else \gdef\TABLEgraylineerror{[\string#1->\string#2]}% \gdef\TABLEendBCL{#2}% \addtoTABLEgrayline{#2}% \fi} \def\gobbleTableBCL#1% {\ifx#1\BC \let\next\doTableBC \else \ifx#1\BL \let\next\doTableBL \else \ifx#1\SR \setTableBCL\SR\SR \let\next\egroup \else \ifx#1\FR \setTableBCL\FR\FR \let\next\egroup \else \ifx#1\MR \setTableBCL\MR\MR \let\next\egroup \else \ifx#1\LR \setTableBCL\LR\LR \let\next\egroup \else \setTableBCL #1\SR \let\next\egroup \fi\fi\fi\fi\fi\fi \next} \def\executeTABLEgrayline {\TABLEnoalign {\def\BC {\advance\currentTABLEcolumn \plusone}% \def\dodocomplexTableGL##1##2[##3,##4,##5,##6]% {\BC\advance\currentTABLEcolumn ##3 }% \let\endTABLErow\endTABLEgrayrow \currentTABLEcolumn\zerocount \TABLEgrayline\TABLEendBCL % determine n of columns and height \advance\currentTABLEcolumn \minusone \ifnum\currentTABLEcolumn>\maxTABLEcolumn % error message too long line \globalletempty\TABLEgrayline \else % \message{n of color columns: \the\currentTABLEcolumn}\wait \global\TABLEgraylinetrue % vanaf hier nog checken \fi \global\currentTABLEcolumn\zerocount}% \unskip\TABLEgrayline\TABLEendBCL \TABLEnoalign {\nobreak \vskip-\TABLEgraylineHeight \nobreak \global\setTABLEactiontrue \global\currentTABLEcolumn\zerocount \globalletempty\nextTABLEgrayline \global\TABLEgraydonetrue \global\TABLEgraylinefalse}} \def\endTABLEgrayrow#1#2#3% {\ifcase#1\relax \global\chardef\TABLEendofrowheight\TABLErowfactor \global\chardef\TABLEendofrowdepth \TABLErowfactor \or \global\chardef\TABLEendofrowheight\TABLErowfactor \global\chardef\TABLEendofrowdepth \TABLErowfactor \or \global\chardef\TABLEendofrowheight\TABLErowfactor \global\chardef\TABLEendofrowdepth \TABLErowzero \or \ifnum\TABLEforce=\TABLEforcelastrow \global\chardef\TABLEendofrowheight\TABLErowzero \global\chardef\TABLEendofrowdepth \TABLErowfactor \else\ifnum\TABLEforce=\TABLEforcefirstrow \global\chardef\TABLEendofrowheight\TABLErowfactor \global\chardef\TABLEendofrowdepth \TABLErowzero \else \global\chardef\TABLEendofrowheight\TABLErowzero \global\chardef\TABLEendofrowdepth \TABLErowzero \fi\fi \or \global\chardef\TABLEendofrowheight\TABLErowzero \global\chardef\TABLEendofrowdepth \TABLErowfactor \fi} \def\defineTABLEshorthands% {\def\SPAN##1{\use{##1}}% \def\TWO {\use2}% \def\THREE {\use3}% \def\FOUR {\use4}% \def\FIVE {\use5}% \def\SIX {\use6}% \def\REF {\ReFormat}} \def\defineTABLEunits {\processaction [\@@tidistance] [ \v!none=>\OpenUp00\def\LOW{\Lower6 }, \v!small=>\OpenUp00\def\LOW{\Lower6 }, % == baseline \v!medium=>\OpenUp11\def\LOW{\Lower7 }, \v!big=>\OpenUp22\def\LOW{\Lower8 }]% \doifelse\@@tidistance\v!none {\chardef\TABLErowfactor\zerocount} {\chardef\TABLErowfactor\plustwo }} \def\dohandlebar % here ? {\ifmmode \@EA\domathmodebar \else\ifintable \@EAEAEA\domathmodebar \else \@EAEAEA\dotextmodebar \fi\fi} % De macro's t.b.v. instellingen. \def\setuptables {\dosingleargument\dosetuptables} \def\dosetuptables[#1]% {\getparameters[\??ti][#1]% \processaction [\@@tialign] [ \v!right=>\def\TABLEparalignment{\raggedright}, \v!left=>\def\TABLEparalignment{\raggedleft}, \v!middle=>\def\TABLEparalignment{\raggedcenter}, \s!default=>\def\TABLEparalignment{\notragged}, \s!unknown=>\def\TABLEparalignment{\notragged}]% \assignalfadimension\@@tiVL\@@tiVLwidth 246% \assignalfadimension\@@tiHL\@@tiHLheight246} \def\localTABLEsetup {\@@ticommands\relax \expanded{\switchtobodyfont[\@@tibodyfont]}% \StrutHeightFactor 8 \StrutDepthFactor 4 \LineThicknessFactor4 \NormalTLTU {.1pt}% \NormalTSU {\normalbaselineskip\divide\StrutUnit 12 }% \NormalTableUnits} %D And then I wrote the tabulate environment. That %D alternative supports setting the rule thickness and color, %D so here is the table alternative. \let\startglobalTABLEcolor\empty \let\stopglobalTABLEcolor \empty \def\localTABLEsetup {\@@ticommands\relax % bodyfont \expanded{\switchtobodyfont[\@@tibodyfont]}% % linecolor \doifsomething\@@tirulecolor {\def\startglobalTABLEcolor{\localstartcolor[\@@tirulecolor]}% \def\stopglobalTABLEcolor {\localstopcolor}}% % linethickness \LineThicknessFactor4 \scratchdimen\@@tirulethickness \divide\scratchdimen \LineThicknessFactor \expanded{\NormalTLTU{\the\scratchdimen}}% % spacing, was depth=4 height=8 (counters, sigh, now macros) \doifelse\@@tiheight\v!strut {\let\StrutHeightFactor\@@itheight} {\let\StrutHeightFactor\@@tiheight}% \doifelse\@@tidepth\v!strut {\let\StrutDepthFactor\@@itdepth} {\let\StrutDepthFactor\@@tidepth}% \scratchdimen\StrutHeightFactor\points \multiply\scratchdimen 10% \edef\StrutHeightFactor{\withoutpt\the\scratchdimen}% \scratchdimen\StrutDepthFactor \points \multiply\scratchdimen 10% \edef\StrutDepthFactor{\withoutpt\the\scratchdimen}% % units \NormalTSU{\normalbaselineskip\divide\StrutUnit 12 }% \NormalTableUnits} \def\OpenUp#1#2% {\scratchdimen\StrutHeightFactor \points \advance\scratchdimen #1\points \edef\StrutHeightFactor{\withoutpt\the\scratchdimen}% \scratchdimen\StrutDepthFactor \points \advance\scratchdimen #2\points \edef\StrutDepthFactor{\withoutpt\the\scratchdimen}} %D As one can see, we didn't only add color, but also more %D control over spacing. %D %D \startbuffer[a] %D \starttable[|c|] %D \HL %D \VL \strut test \VL \FR %D \VL \strut test \VL \MR %D \VL \strut test \VL \MR %D \VL \strut test \VL \LR %D \HL %D \stoptable %D \stopbuffer %D %D \startbuffer[b] %D \starttabulate[|c|] %D \HL %D \NC test \NC \NR %D \NC test \NC \NR %D \NC test \NC \NR %D \NC test \NC \NR %D \HL %D \stoptabulate %D \stopbuffer %D %D In the next example, the first table is defined as: %D %D \typebuffer[a] %D %D and the second one as: %D %D \typebuffer[b] %D %D The first table is typeset using the default height and %D depth factors .8 and .4. The second table has both factors %D set to \type {strut}, and the third table shows what %D happens when we set the values to zero. The rightmost table %D is typeset using the tabulate environment. %D %D \startcombination[4*1] %D {$\vcenter{\getbuffer[a]}$} %D {\hbox{h=.8 d=.4}} %D {\setuptables[height=strut,depth=strut]$\vcenter{\getbuffer[a]}$} %D {\hbox{h=d=\type{strut}}} %D {\setuptables[height=0,depth=0]$\vcenter{\getbuffer[a]}$} %D {\hbox{h=d=0}} %D {$\vcenter{\getbuffer[b]}$} %D {\hbox{tabulate}} %D \stopcombination \setuptables [HL=\v!medium, VL=\v!medium, NL=\v!small, \c!frame=, \c!align=\v!right, \c!depth=.40, % \v!strut \c!height=.80, % \v!strut \c!rulethickness=\linewidth, \c!rulecolor=, \c!distance=\v!medium, \c!bodyfont=\the\bodyfontsize, \c!commands=, \c!background=\v!screen, \c!backgroundscreen=\@@rsscreen, \c!backgroundcolor=, \c!split=\v!auto] \def\ifintabel{\ifintable} % upward compatible \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/grph-inc.mkii0000644000175000017500000013152414536300610024670 0ustar hillehille%D \module %D [ file=grph-inc, % moved from core-fig %D version=2006.08.26, % overhaul of 1997.03.31 %D title=\CONTEXT\ Graphic Macros, %D subtitle=Figure Inclusion, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Graphic Macros / Figure Inclusion} % todo: directory : system -> \allinputpaths (so that we can \usesubpath) %D This is a reimplementation of the original module, which %D over time had evolved into a pretty complex whole. This %D was partly due to the fact that we needed to handle many %D formats, deal with substitute graphics, handle fallbacks %D and driver specifics (objects), etc. In the meantime we %D have more clever backends, moved away from texutil to %D rlxtools, can use runtime or betweentime runs etc. Also, %D more memory permits a cleaner implementation. Time to %D move on. We can now also assume that scaling is available. %D %D Another mess that can go is the llx/lly handling since %D drivers now automatically can determine such things. %D Messages 3 and 5 needs to be translated! \unprotect %D Due to the mere fact that \DVI|/|\PDF\ drivers differ in their %D needs for figure dimensions, we have to provide the width, %D height, horizontal and vertical scale. Also we want to %D specify at the user level either width and|/|or height, scale, %D or a factor related to the current document bodyfont size. %D Even better: we can also specify isometric scaling and %D automatically let \CONTEXT\ calculate the maximum possible %D dimensions. Whatever we calculate, the results will come %D available in the next registers. \letempty \@@DriverImageBox \letempty \@@DriverImageOptions \letempty \@@DriverImageWidth \letempty \@@DriverImageHeight \letempty \@@DriverImageFile \letempty \@@DriverImageLabel \letempty \@@DriverImageType \letempty \@@DriverImageMethod \letempty \@@DriverImagePage %D Because looking for dimensions can take many steps (locating %D the figure, maybe on more directories, scanning the figure %D on dimension, or when not found, trying to find them in the %D utility file, and again when not found, trying to generate %D such a file, and, as a last resort, trying to use the %D dimensions. Now when things do not work out the way we want, %D we can set a switch and get some information on what takes %D place. \newif\iftraceexternalfigures \let\traceexternalfigures\traceexternalfigurestrue \def\doshowfigurestate {\iftraceexternalfigures \expandafter\writestatus\expandafter\m!figures \else \expandafter\gobbleoneargument \fi} \def\doshowfiguremessage {\iftraceexternalfigures \expandafter\gobbletwoarguments \else \expandafter\showmessage\expandafter\m!figures \fi} %D Another switch tells \CONTEXT\ to locate and calculate a %D figure, but does not actually insert it. Especially when we %D use \PDFTEX\ this saves a lot of time on trialruns. (Keep %D in mind that \PDFTEX\ is both a \TEX\ pre|| and postprocessor.) \newif\ifskipexternalfigures % can be set elsewhere % \newif\ifrunutilityfile % \newif\ifconsultutilityfile % % Let's save two hash entries: \let\runutilityfiletrue \relax \let\runutilityfilefalse \relax \let\consultutilityfiletrue\relax \let\consultutilityfilefalse\relax %D Intermediate, private. \newdimen\determinedfigurewidth \newdimen\determinedfigureheight \let\naturalfigureheight\!!zeropoint \let\naturalfigurewidth \!!zeropoint \def\defaultfigurewidth {8\lineheight} \def\defaultfigureheight{6\lineheight} \def\defaultfigurepathsignal{(\v!default)} \def\checknaturalfiguredimensions {\edef\naturalfigurewidth{\the\dimexpr\ifzeropt\determinedfigurewidth \defaultfigurewidth \else\determinedfigurewidth \fi\relax}% \edef\naturalfigureheight{\the\dimexpr\ifzeropt\determinedfigureheight \defaultfigureheight\else\determinedfigureheight\fi\relax}} %D Locating figures. Dilemma: we do support eps and svg parsing but drivers %D don't always support it. \def\figuretypes{\c!mps,\c!pdf,\c!eps,\c!svg,\c!svg z,\c!png,\c!tif,jb2,\c!jpg} \def\supportedfiguretypes{\figuretypes} \def\checksupportedfiguretypes {\begingroup \global\let\supportedfiguretypes\empty \def\docommand##1% {\doiffileinsertionsupportedelse{##1} {\doglobal\addtocommalist{##1}\supportedfiguretypes} \donothing}% \processcommacommand[\figuretypes]\docommand \gdef\checksupportedfiguretypes{\let\figuretypes\supportedfiguretypes}% \endgroup \checksupportedfiguretypes} %D The next box is used to store the graphic. It's globally assigned. \newbox\foundexternalfigure \chardef\figurestatus\zerocount % nothing found \def\noffigurepages{\nofinsertpages} %D Variables. \newtoks\everyexternalfigureresets \def\resetfigurevariables {\the\everyexternalfigureresets} %D Example usage: \appendtoks \global\let\externalfigurelog\empty \to\everyexternalfigureresets %D Intermediate, private \def\resetprivatefigurevariables {\let \wantedfigurefull \empty \let \wantedfigurepath \empty \let \wantedfigurename \empty \let \wantedfigurebase \empty \let \wantedfiguretype \empty \let \wantedfigurefullname \empty \let \wantedfiguretypespec \empty \let \wantedfiguremethod \empty \let \wantedfigurepage \empty \let \wantedfigureoptions \empty \let \wantedfigureconversion\empty \let \wantedfigureprefix \empty \let \wantedfiguretypelist \figuretypes \let \figurepathlist \empty \chardef \figurestatus \zerocount \let \expandedfigurename \empty \global\let \analyzedfigurewidth \!!zeropoint % set by indentifying code \global\let \analyzedfigureheight \!!zeropoint % set by indentifying code \global\setbox\foundexternalfigure \emptybox \def \frozenfigurestamp {\externalfigurestamp}} % no edef \resetprivatefigurevariables \appendtoks \resetprivatefigurevariables \to\everyexternalfigureresets %D Private/public. \def\resetpublicfigurevariables {\let\figurewidth \!!zeropoint \let\figureheight \!!zeropoint \let\figurenaturalwidth \!!zeropoint \let\figurenaturalheight \!!zeropoint \let\figurelabel \empty \let\figurefileoriginal \empty \let\figurefileoptions \empty \let\figurefilename \empty \let\figurefiletype \empty \let\figurefilepage \!!zerocount \let\figurefileconversion\empty \let\figurefileprefix \empty \let\figurefilepath \empty \let\figurefilecache \empty} \resetpublicfigurevariables \appendtoks \resetpublicfigurevariables \to\everyexternalfigureresets \newcounter\figurenestinglevel \def\pushpublicfigurevariables {\ifcase\figurenestinglevel\else \doshowfigurestate{variables : push}% \globalpushmacro\figurewidth \globalpushmacro\figureheight \globalpushmacro\figurenaturalwidth \globalpushmacro\figurenaturalheight \globalpushmacro\figurelabel \globalpushmacro\figurefileoriginal \globalpushmacro\figurefileoptions \globalpushmacro\figurefilename \globalpushmacro\figurefiletype \globalpushmacro\figurefilepage \globalpushmacro\figurefileconversion \globalpushmacro\figurefileprefix \globalpushmacro\figurefilepath \globalpushmacro\figurefilecache \fi} \def\poppublicfigurevariables {\ifcase\figurenestinglevel\else \doshowfigurestate{variables : pop}% \globalpopmacro\figurefilecache \globalpopmacro\figurefilepath \globalpopmacro\figurefileprefix \globalpopmacro\figurefileconversion \globalpopmacro\figurefilepage \globalpopmacro\figurefiletype \globalpopmacro\figurefilename \globalpopmacro\figurefileoptions \globalpopmacro\figurefileoriginal \globalpopmacro\figurelabel \globalpopmacro\figurenaturalheight \globalpopmacro\figurenaturalwidth \globalpopmacro\figureheight \globalpopmacro\figurewidth \fi} \def\setpublicfigurevariables % todo: type vs typespec {\xdef\figurewidth {\the\wd\foundexternalfigure}% \xdef\figureheight {\the\ht\foundexternalfigure}% \xdef\figurenaturalwidth {\naturalfigurewidth}% \xdef\figurenaturalheight {\naturalfigureheight}% \xdef\figurelabel {\wantedfigurelabel}% \xdef\figurefilepath {\wantedfigurepath}% \xdef\figurefilename {\wantedfigurename}% \xdef\figurefiletype {\wantedfiguretypespec}% \xdef\figurefilepage {\wantedfigurepage}% \xdef\figurefileoptions {\wantedfigureoptions}% \xdef\figurefileconversion{\wantedfigureconversion}% \xdef\figurefilecache {\wantedconversioncache}% \xdef\figurefileprefix {\wantedconversionprefix}% \xdef\figurefileoriginal {\wantedconversionname}% \xdef\figurefullname {\wantedfigurepath/\wantedfigurename.\wantedfiguretypespec}% \ifcase\figurestatus \let\figurefiletype\empty % ? \fi} \def\setpublicfigurescalevariables {\edef\figurescalewidth {\finalscaleboxwidth }% \edef\figurescaleheight {\finalscaleboxheight}% \edef\figurescalexscale {\finalscaleboxxscale}% \edef\figurescaleyscale {\finalscaleboxyscale}} \def\resetpublicfigurescalevariables {\let\figurescalewidth \!!zeropoint \let\figurescaleheight \!!zeropoint \let\figurescalexscale \!!plusone \let\figurescaleyscale \!!plusone} \resetpublicfigurescalevariables \appendtoks \resetpublicfigurescalevariables \to \everyexternalfigureresets %D The next one is for instance used in symbols. Since %D we only need to reset some parameters, we can %D better use the fast alternative: %D %D \starttyping %D \def\resetexternalfigures %D {\getparameters[\??ef] %D [\c!option=,\c!maxwidth=,\c!maxheight=, %D \c!foregroundcolor=,\c!color=, %D %\c!conversion=,\c!prefix=,\c!splitcolor=, %D \c!frame=\v!off,\c!background=]} %D \stoptyping %D %D This one dropped the runtime of the \MAPS\ bibliography %D from over 110 seconds down to less than 105 seconds. The %D tremendously faster (but uglier) implementation is: \def\resetexternalfigures {\let\@@efoption \empty % \let\@@efprefix\empty \let\@@efmaxwidth \empty % \let\@@efcache \empty \let\@@efmaxheight \empty % \let\@@efframe \v!off \let\@@efforegroundcolor\empty \let\@@efcolor \empty \let\@@efconversion \empty \let\@@efbackground \empty} %D The following code will move: \appendtoks \resetexternalfigures \to \everyoverlay \appendtoks \resetexternalfigures \to \everybeforepagebody % not really needed %appendtoks \resetexternalfigures \to \everysymbol %D We need this one for bookkeeping: \newcounter\forcedMPSobject % better something \every %D Features: % converted -> prefix, suffix % alternative -> other suffix % buffer -> prefix %D Still messy: \newtoks\everyfiguretypepresets \def\presetfiguretypeprocessing {\the\everyfiguretypepresets} \def\presetspecialfigure#1% {\doif\wantedfiguretype{#1}% {\let\@@efobject\v!no \let\@@efpreset\v!no \ifx\@@efwidth \empty\def\@@efwidth {\defaultfigurewidth }\fi \ifx\@@efheight\empty\def\@@efheight{\defaultfigureheight}\fi}} \appendtoks \presetspecialfigure\c!mov \presetspecialfigure\c!avi \to \everyfiguretypepresets \def\checkformpsfigurefiles % to be checked {\doif\wantedfigurename{mprun} {\doshowfigurestate{type check : forcing mps (mprun)}% \doifnotinstring{^\bufferprefix}{^\wantedfigurename} {\edef\wantedfigurename{\bufferprefix\wantedfigurename}}% \let\wantedfiguremethod \c!mps \let\wantedfiguretypespec\c!mps}% \doifnumberelse\wantedfiguretype {\doshowfigurestate{type check : forcing mps (number)}% \let\wantedfiguremethod \c!mps \let\wantedfiguretypespec\c!mps} \donothing \doif\wantedfiguretypespec\c!mps {\let\wantedfiguretypelist\wantedfiguretypespec \ifcase\EPSspecial\else\ifinobject\else \doglobal\increment\forcedMPSobject \edef\externalfigurestamp{\c!mps::\forcedMPSobject}% \let\@@efobject\v!yes \fi\fi}} \appendtoks \checkformpsfigurefiles \to \everyfiguretypepresets \def\checkfortexfigurefiles % to be checked (brrr: c!) / brrr: eftype {\doifinset\wantedfiguretype{\c!tex,\c!tmp} {\let\wantedfiguretypespec \wantedfiguretype}% \doifinset\wantedfiguretypespec{\c!tex,\c!tmp,\v!buffer} {\doshowfigurestate{type check : forcing tex (\wantedfiguretypespec)}% \let\wantedfiguretypelist\wantedfiguretypespec \let\wantedfiguremethod \c!tex \let\@@efobject\v!no \doifnothing\wantedfiguretype{\let\wantedfiguretype\c!tmp}% % there can be a non buffer \jobname.tmp (made by texexec) \doifnotinstring{^\bufferprefix}{^\wantedfigurename} {\edef\wantedfigurename{\bufferprefix\wantedfigurename}}}} \appendtoks \checkfortexfigurefiles \to \everyfiguretypepresets \def\checkforunknownfigurefiles {\doifnothing\wantedfiguretype {\dogetcommacommandelement\plusone\from\@@eftype\to\commalistelement \edef\wantedfigurefullname{\wantedfigurename.\commalistelement}}} \appendtoks \checkforunknownfigurefiles \to \everyfiguretypepresets % note * : this is needed because reusable graphics % combined with funny page aspect aspect ratio's can lead to % strange side effects of preceding factor=max specs. This % surfaced in the metafun manual, where the two side by % side clipped cow heads [the second one was a reused object] % where the second one inherited some characteristics from % the factor=max one some 30 pages back. Sigh. \chardef\splitexternalfigure\zerocount % 0 nosplit 1 split/yes 2 split/no \def\checkfigurecolorsettings {% seperation, seldom used \doifseparatingcolorselse {\let\@@efforegroundcolor\empty \doifelsenothing\@@efsplit {\chardef\splitexternalfigure\zerocount} {\doifcolorchannelelse\@@efsplit {\let\@@efobject\v!no % why? \chardef\splitexternalfigure\plusone} {\chardef\splitexternalfigure\plustwo}}} {\chardef\splitexternalfigure\zerocount}% % fake color in gray bitmaps, assumes that % a transparent color is used \doifsomething\@@efforegroundcolor {\def\@@efbackground{\v!foreground,\v!color}% \def\@@efbackgroundcolor{\@@efforegroundcolor}}% \doifsomething\@@efcolor {\doifcolorelse\@@efcolor {\checkpredefinedcolor[\@@efcolor]% \doregisterfigurecolor\@@efcolor}}% \donothing} \def\setextrafiguredriveroptions {\let\@@DriverImageOptions\empty \doifsomething\@@efpage {\addtocommalist\@@efpage \@@DriverImageOptions}% \doif \@@efpreview \v!yes{\addtocommalist\v!preview \@@DriverImageOptions}% \doif \@@efcontrols\v!yes{\addtocommalist\v!controls\@@DriverImageOptions}% \doif \@@efrepeat \v!yes{\addtocommalist\v!repeat \@@DriverImageOptions}% \doifinsetelse\@@efsize{mediabox,cropbox,artbox,bleedbox,trimbox} {\let \@@DriverImageBox \@@efsize}% {\doifinsetelse\@@efsize{media,crop,art,bleed,trim} {\edef\@@DriverImageBox{\@@efsize box}}% {\let \@@DriverImageBox \empty}}% \let\wantedfigureoptions\@@DriverImageOptions} \def\checkiffigureobjectpresent {\doifnot\@@efobject\v!no {\doifobjectssupportedelse {\doifobjectfoundelse{FIG}\externalfigurestamp {\doshowfigurestate{object found : \externalfigurestamp}% \getobjectdimensions{FIG}\externalfigurestamp \edef\frozenfigurestamp{\externalfigurestamp}% \xdef\analyzedfigurewidth {\the\dimexpr\objectwidth \relax}% \xdef\analyzedfigureheight{\the\dimexpr\objectheight\relax}% \setanalyzedfiguredimensions\plusone} {\doshowfigurestate{unknown object: \externalfigurestamp}}} {}}} \def\checkifknownfigureobjectpresent {\ifx\wantedfiguretype\empty \let\savedwantedfiguretype\wantedfiguretype \def\docommand##1% {\ifcase\figurestatus \edef\wantedfiguretype{##1}% \checkiffigureobjectpresent \fi}% \processcommacommand[\figuretypes]\docommand \ifcase\figurestatus \let\wantedfiguretype\savedwantedfiguretype \fi \fi} \def\checkforfigurefile {\ifcase\figurestatus \ifconditional\externalfigureflush \analyzefigurefiles \fi \fi} \def\externalfigurestamp % needs \edef'd macros! {\ifx\wantedfigurepath\empty\else -\wantedfigurepath \fi \wantedfigurename \ifx\wantedfiguretype\empty\else \ifx\wantedfiguretype\s!unknown\else -\wantedfiguretype \fi \fi \ifx\wantedfiguretypespec\empty\else \ifx\wantedfiguretypespec\s!unknown\else \ifx\wantedfiguretypespec\wantedfiguretype\else -\wantedfiguretypespec \fi \fi \fi \ifnum\wantedfigurepage>\zeropoint -\wantedfigurepage \fi} \def\checkfigurerenderingoptions {\ifcase\figurestatus \let\@@efframe\v!on \fi \doif\@@exoption\v!frame {\let\@@efframe\v!on}% \doif\@@exoption\v!empty {\skipexternalfigurestrue \let\@@efframe\v!off}} \newtoks\externalfigurepostprocessors \def\resetfigureusersettings {\let\@@eftype \s!unknown \let\@@efmethod \empty \let\@@efpreset\v!yes \let\@@eflabel \empty \let\@@efsize \empty \let\@@efpage \!!zerocount \let\@@efobject \@@exobject \let\@@efdisplay \empty \let\@@efsplit \empty \let\@@efcolor \empty \let\@@efsymbol\v!no \let\@@efcontrols \v!no \let\@@efpreview \v!no \let\@@efrepeat\v!no \let\@@efhfactor \empty \let\@@efwfactor \empty \let\@@effactor\empty \let\@@efmaxwidth \@@exmaxwidth \let\@@efmaxheight\@@exmaxheight \let\@@efxscale \empty \let\@@efyscale \empty \let\@@efscale \empty \let\@@efsx \!!plusone \let\@@efsy \!!plusone \let\@@efwidth \empty \let\@@efheight \empty \let\@@eflines \empty \let\@@efgrid \empty \let\@@efconversion\@@exconversion \let\@@efprefix \@@exprefix \let\@@efcache \@@excache} %D Types and Methods are a bit history. Anyhow, user scan use the %D type to force the handler. So, what to do with the method. We can %D use that one to force a handler with a given suffix, so when no %D type is given, but a suffix is part of the name, the method will %D determine the handler. \def\checkfigureusersettings {\doif\@@efreset\v!yes\resetexternalfigures \doifelsenothing\@@eflabel {\doifnothing\wantedfigurelabel{\let\wantedfigurelabel\wantedfigurename}}% {\let\wantedfigurelabel\@@eflabel}% \doifsomething\@@eftype {\doifnot\@@eftype\s!unknown {\edef\wantedfiguretypespec{\@@eftype}% \let\wantedfiguremethod\wantedfiguretypespec}}% \doifnothing\wantedfigurepage % can be set by plug in {\let\wantedfigurepage\@@efpage}% \doif\wantedfigurepage\empty {\let\wantedfigurepage\!!zerocount}% 0 is signal ! \doifsomething\@@efmethod % rather untested misusage of the remapper {\doifsomething\wantedfiguretype {\definegraphictypesynonym[\wantedfiguretype][\@@method]}}} % #1 is now obsolete \def\calculateexternalfigure[#1][#2][#3][#4][#5][#6]% \cmd label filename parent_id preset current {\doshowfigurestate{begin}% \dontcomplain % let's limit the search, which means that e.g. svg has to be given explicitly \checksupportedfiguretypes % recently added; we presume local use \restorecatcodes % collected resets (token list) \resetfigurevariables \resetwantedconversionvariables % new here % analyze filename and set wanted variables \analyzefigurefilename{#3}{#2}% \doanalyzefiguredimensionsfromfile % handle user settings \resetfigureusersettings \dosetefparameters{#4}{#5}{#6}% \checkfigureusersettings \checkfigurecolorsettings % adapt settings based on suffix and/or type \presetfiguretypeprocessing % now we really start \checkiffigureobjectpresent % first guess, we may not yet know the typespec \checkifknownfigureobjectpresent \checkforfigurefilepresence \checkiffigureobjectpresent % to be sure, in case we now know the typespec \checkfigurerenderingoptions % was later, moved here \checknaturalfiguredimensions % inherit from global values and/or fallbacks % by now we know what we're dealing with (put in box and scale) \setextrafiguredriveroptions \prepackageexternalfigureobject % set public variables in case postprocessing needs them \pushpublicfigurevariables \setpublicfigurevariables \setpublicfigureconversionvariables \setpublicfigurescalevariables % package final graphic, only now we can apply backgrounds and such \doglobal\increment\figurenestinglevel \finishexternalfigure \doglobal\decrement\figurenestinglevel % restore variables \poppublicfigurevariables \doshowfigurestate{end}} \def\checkforfigurefilepresence {\checkforconvertedfigure \checkforfigurefile} %D Figure objects. \def\setfigureobject {\doshowfigurestate{object set : \externalfigurestamp}% \setobject{FIG}\externalfigurestamp} % \def\getfigureobject % {\doshowfigurestate{object used : \externalfigurestamp}% % \getobject{FIG}\externalfigurestamp} \def\getfigureobject {\doshowfigurestate{object used : \frozenfigurestamp}% \getobject{FIG}\frozenfigurestamp} \def\prepackageexternalfigureobject {\ifcase\figurestatus \doshowfiguremessage1\expandedfigurename \doshowfigurestate{state : figure not found (\expandedfigurename)}% \global\setbox\foundexternalfigure\naturalvbox {\doscalebox\??ef{\blackrule[\c!width=\naturalfigurewidth,\c!height=\naturalfigureheight]}}% \xdef\noffigurepages{0}% \or \doshowfiguremessage8\expandedfigurename \doshowfigurestate{state : reusing existing figure}% \global\setbox\foundexternalfigure\naturalvbox {\doscalebox\??ef{\dowithfigure{\getfigureobject}}}% \xdef\noffigurepages{\number\getvalue{\externalfigurestamp\c!n}}% \or \doshowfiguremessage2\expandedfigurename \doshowfigurestate{state : using special figure}% \setbox\scratchbox\naturalvbox % make a dummy {\doscalebox\??ef{\blackrule[\c!width=\naturalfigurewidth,\c!height=\naturalfigureheight]}}% \global\setbox\foundexternalfigure\naturalvbox to \finalscaleboxheight {\vfill \hsize\finalscaleboxwidth \dowithfigure{\insertscaledfiguredriverdata}}% \xdef\noffigurepages{\number\nofinsertpages}% \else \ifdim\naturalfigurewidth>\zeropoint \ifnum\figurestatus>\!!ten\relax \doshowfiguremessage3\expandedfigurename \else \doshowfiguremessage4\expandedfigurename \fi \else \doshowfiguremessage5\expandedfigurename \fi \doshowfigurestate{state : using found figure}% 3=self 4=rlx \doifelse\@@efobject\v!no {\donefalse} {\doifobjectssupportedelse\donetrue\donefalse}% \ifdone % make an object and use it \packageexternalfigureobject \setfigureobject\vbox{\box\foundexternalfigure}% \setxvalue{\externalfigurestamp\c!n}{\number\nofinsertpages}% \global\setbox\foundexternalfigure\naturalvbox {\doscalebox\??ef{\dowithfigure{\getfigureobject}}}% \xdef\noffigurepages{\number\getvalue{\externalfigurestamp\c!n}}% \else % maybe a tex figure \global\setbox\foundexternalfigure\naturalvbox {\doscalebox\??ef{\dowithfigure{\box\foundexternalfigure}}}% \xdef\noffigurepages{\number\nofinsertpages}% \fi \fi \wd\foundexternalfigure\finalscaleboxwidth \ht\foundexternalfigure\finalscaleboxheight \global\let\lastfigureobjectname\externalfigurestamp \doresetobjects} % clean up driver left overs \def\packageexternalfigureobject {\global\setbox\foundexternalfigure\vbox to \naturalfigureheight {\vfill \ifdim\wd\foundexternalfigure=\zeropoint \setextrafiguredriveroptions \insertunscaledfiguredriverdata \else\ifskipexternalfigures \ruledhbox{\backgroundline[\@@efsplitcolor]{\fakebox\foundexternalfigure}}% \else \box\foundexternalfigure \fi\fi}% \wd\foundexternalfigure\naturalfigurewidth \ht\foundexternalfigure\naturalfigureheight} \def\finishexternalfigure % here we use \figurevariables {\global\setbox\foundexternalfigure\vbox {\forgetall \ifcase\figurestatus \resetsystemmode\v!figure % todo, also: \v!resource \else \setsystemmode \v!figure % todo, also: \v!resource \fi \ifconditional\externalfigureflush \ifconditional\externalfigurelevel % probably background \ifskipexternalfigures % nothing \fakebox\foundexternalfigure \else\ifcase\figurestatus % nothing \else\ifnum\splitexternalfigure=\plustwo\else \the\externalfigurepostprocessors \box\foundexternalfigure \fi\fi\fi \else \iftrialtypesetting \else \feedbackexternalfigure \fi \settrue\externalfigurelevel \ifskipexternalfigures \ifcase\figurestatus \externalfigurereplacement\figurelabel\figurefilename{unknown}% \else \externalfigurereplacement\figurelabel\figurefullname{skipped}% \fi \else\ifcase\figurestatus \externalfigurereplacement\figurelabel\figurefilename{unknown}% \else\ifnum\splitexternalfigure=\plustwo \backgroundline[\@@efsplitcolor]{\fakebox\foundexternalfigure}% \else \the\externalfigurepostprocessors \doifelse\@@efreset\v!yes {\wd\foundexternalfigure\figurewidth \ht\foundexternalfigure\figureheight \dp\foundexternalfigure\zeropoint \box\foundexternalfigure} {\localframed % should also be applied to high res ! [\??ef] [\c!offset=\v!overlay, \c!width=\figurewidth, \c!height=\figureheight] {\vfilll \ifnum\splitexternalfigure=\plusone % hm, eigenlijk in dit geval achtergrondkleur \hidesplitcolorfalse % really needed \backgroundline[\@@efsplitcolor]{\box\foundexternalfigure}% \else % = 0, no split mode \box\foundexternalfigure \fi}}% \fi\fi\fi \fi \else % maybe also \the\externalfigurepostprocessors \iftrialtypesetting \else \feedbackexternalfigure \fi \fi}} \def\insertfiguredriverdata#1#2% {\lowercasestring\wantedfiguretypespec\to\lcwantedfiguretypespec \lowercasestring\wantedfiguremethod \to\lcwantedfiguremethod \edef\@@DriverImageWidth {\the\dimexpr#1\relax}% \edef\@@DriverImageHeight{\the\dimexpr#2\relax}% \let \@@DriverImageFile \wantedfigurefullname \let \@@DriverImageType \lcwantedfiguretypespec \let \@@DriverImageMethod \lcwantedfiguremethod \let \@@DriverImageLabel \wantedfigurelabel \let \@@DriverImagePage \wantedfigurepage \doinsertfile} \def\insertunscaledfiguredriverdata {\insertfiguredriverdata\naturalfigurewidth\naturalfigureheight} \def\insertscaledfiguredriverdata {\insertfiguredriverdata\finalscaleboxwidth\finalscaleboxheight} \ifx\externalfigurereplacement\undefined\let\externalfigurereplacement\gobblethreearguments\fi \ifx\externalfigureplaceholder\undefined\let\externalfigureplaceholder\gobblethreearguments\fi \def\registerexternalfigure % no placement, handy for preprocessing {\dotripleempty\doregisterexternalfigure} \def\doregisterexternalfigure[#1][#2][#3]% {\bgroup \setfalse\externalfigureflush \externalfigure[#1][#2][#3]% or \doexternalfigure \egroup} \let\feedbackexternalfigure\relax % \gobblefourarguments \let\dowithfigure \relax %D Conversion stuff: \newcount\nofconversionfigures \def\resetwantedconversionvariables {\let\wantedconversionpath \empty % these point to the to be converted graphic \let\wantedconversionname \empty \let\wantedconversiontype \empty \let\wantedconversioncache \empty \let\wantedconversionprefix\empty} \resetwantedconversionvariables \def\checkforconvertedfigure {\ifcase\figurestatus \resetwantedconversionvariables \doifsomething\@@efconversion {\global\advance\nofconversionfigures\plusone \doshowfigurestate{n-of-conversions : \number\nofconversionfigures}% \edef\wantedfigureconversion{\@@efconversion}% \edef\wantedconversioncache {\@@efcache}% \edef\wantedconversionprefix{\@@efprefix}% \doshowfigurestate{checking paths : \figurepathlist}% \processcommacommand[\figurepathlist]\dolocatefigureconversionfile \ifcase\figurestatus \doshowfigurestate{remark : no conversion file found}% \else \doshowfigurestate{remark : conversion file found}% \chardef\figurestatus\zerocount \fi \let\wantedconversionname\wantedfigurename \edef\wantedfigurename{\wantedconversionprefix\wantedfigurename}% \ifx\wantedconversioncache\empty \let \wantedfigurepath \wantedconversionpath \else \checkfilename\@@efcache \ifnum\kindoffile=\plusone \let\wantedfigurepath\@@efcache % root related path \else % brrr \edef\wantedfigurepath{\@@efcache,\wantedconversionpath/\@@efcache}% in case of explicit paths, what a mess \fi \fi \let\wantedfiguretype \empty \let\wantedfiguretypelist\figuretypes % hm, why needed \ifx\figurepathlist\empty \let\figurepathlist\wantedfigurepath \else \edef\figurepathlist{\wantedfigurepath,\figurepathlist}% \fi \doshowfigurestate{conversion path : \wantedconversionpath}% \doshowfigurestate{conversion name : \wantedconversionname}}% \doshowfigurestate{new figure path : \wantedfigurepath}% \fi} \def\dolocatefigureconversionfile#1% {\ifcase\figurestatus \setwantedfigurefullname{#1}\wantedfigurename\wantedfiguretype \doshowfigurestate{locating original : \wantedfigurefullname}% \doiffile\wantedfigurefullname {\def\wantedconversionpath{#1}% \let\wantedconversionname\wantedfigurename \let\wantedconversiontype\wantedfiguretype \chardef\figurestatus\plusfive}% \fi} \def\setpublicfigureconversionvariables % also prefix, cache {\doifsomething\@@efconversion {\doifmode{\systemmodeprefix\v!first} {\let\figurefilepath\wantedconversionpath \let\figurefilename\wantedconversionname \let\figurefiletype\wantedconversiontype \let\figurefileconversion\wantedfigureconversion \def\figurefullname {\ifx\wantedconversionpath\empty\else\wantedconversionpath/\fi \wantedconversionname \ifx\wantedconversiontype\empty\else.\wantedconversiontype\fi}}}} %D In \PDF\ one can specify an alternative graphic. This means %D that for instance a low resolution graphic can be used for %D viewing and a high res one for printing. Because this %D feature depends much on the driver, here we only take care %D of perparations. It is up to the special driver to handle %D the inclusion. The driver routines can change the content of %D box \type {\foundexternalfigure} if suitable. %D %D One complication is for instance that an alternative may %D not itself have an alternative, and these kind of situations %D are best handled by the driver. \let\lastfigureobjectname\empty %D The next macro does not work well with figure bases yet. \def\calculateexternalscreenfigure[#1][#2][#3][#4][#5][#6]% {\ifx\@@efdisplay\empty\else \doifnot\@@efobject\v!no {\doifobjectssupportedelse {\doifspecialavailableelse\doregisterfigure {\doshowfigurestate{screen alternative : start}% \bgroup \dosetefparameters{#4}{#5}{#6}% \doregisterfigure{FIG}{\lastfigureobjectname}% \let\@@ef@@scherm\@@efdisplay \calculateexternalfigure[#1][\@@ef@@scherm][\@@ef@@scherm][#4,\c!display=][#5][#6]% \doshowfigurestate{screen alternative : stop}% \egroup} {}} {}}% \fi} \def\getfiguredimensions {\dodoubleempty\dogetfiguredimensions} \def\dogetfiguredimensions[#1][#2]% {{\let\immediate\relax % very dirty but prevents flushing, will change \setbox0\hbox{\externalfigure[#1][#2,\c!display=,\c!object=\v!no]}}} % use the next one when the object must be forgotten (xobj % nums can migrate to the next object; maybe it should % always be done; todo .... \def\getfiguredimensionsonly {\dodoubleempty\dogetfiguredimensionsonly} \def\dogetfiguredimensionsonly[#1][#2]% {\dogetfiguredimensions[#1][#2]% \doresetobjects} \def\doiffigureelse#1% {\getfiguredimensions[#1]% so data is available ! \ifdim\analyzedfigurewidth=\zeropoint % todo: \figurestatus \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} %D Size determination. %D %D An analyzer must set the following dimensions (global macros): %D %D \starttyping %D \analyzedfigurewidth %D \analyzedfigureheight %D \stoptyping %D %D And afterwards, when succeeded, call: %D %D \starttyping %D \setanalyzedfiguredimensions{number>=10} %D \stoptyping %D %D Numbers upto 9 are reserved for special purposes: %D %D \starttabulate %D \NC 0 \NC not found \NC \NR %D \NC 1 \NC object (will be reused) \NC \NR %D \NC 2 \NC found but no dimensions (e.g. special annotation) \NC \NR %D \stoptabulate \let\doanalyzefiguredimensionsfromfile\relax % hook for figuredatabase \let\doanalyzefiguredimensionsinternal\relax \let\doanalyzefiguredimensionsexternal\relax % hook for rli support (see later) \let\doanalyzefiguredimensionsfallback\relax \def\doanalyzefiguredimensions {\lowercasestring\wantedfiguretypespec\to\lcwantedfiguretypespec \doiffileinsertionsupportedelse\lcwantedfiguretypespec {\doiffileelse\wantedfigurefullname {\doshowfigurestate{analyzing : \wantedfigurefullname}% \doanalyzefiguredimensionsinternal \doanalyzefiguredimensionsexternal \doanalyzefiguredimensionsfallback} {\doshowfigurestate{not found : \wantedfigurefullname}}} {}} \def\setanalyzedfiguredimensions#1% {\ifdim\analyzedfigurewidth>\zeropoint \ifdim\analyzedfigureheight>\zeropoint \determinedfigurewidth \analyzedfigurewidth \determinedfigureheight\analyzedfigureheight \chardef\figurestatus #1\relax \doshowfigurestate{dimensions : \the\dimexpr\analyzedfigurewidth\relax\space x\space \the\dimexpr\analyzedfigureheight\relax}% \else \determinedfigurewidth \zeropoint \determinedfigureheight\zeropoint \chardef\figurestatus \zerocount \fi \else \determinedfigurewidth \zeropoint \determinedfigureheight\zeropoint \chardef\figurestatus \zerocount \fi} %D We can remap types. This is to be dealt with in the driver files. \def\definegraphictypesynonym {\dodoubleargument\dodefinegraphictypesynonym} \def\dodefinegraphictypesynonym[#1][#2]% {\setvalue{\??ef:\??ex:#1}{#2}} \def\truegraphictype#1% {\ifcsname\??ef:\??ex:#1\endcsname \expandafter\truegraphictype\csname\??ef:\??ex:#1\endcsname\else#1% \fi} \definegraphictypesynonym[epdf] [pdf] \definegraphictypesynonym[jpeg] [jpg] \definegraphictypesynonym[jp2] [jpg] \definegraphictypesynonym[jbig] [jb2] \definegraphictypesynonym[jbig2][jb2] \definegraphictypesynonym[jbg] [jb2] %D The self method (mostly used) uses the driver. % todo: when zero width mps, ok % % analyzer must set the analyzed dimensions \def\doanalyzefiguredimensionsinternal {\ifcase\figurestatus \lowercasestring\wantedfiguretypespec\to\lcwantedfiguretypespec \let\@@DriverImageFile \wantedfigurefullname \let\@@DriverImagePage \wantedfigurepage \let\@@DriverImageType\lcwantedfiguretypespec % use internal when available, otherwise try driver (\dogetfiguresize) \executeifdefined{dogetfiguresize\@@DriverImageType}\dogetfiguresize \setanalyzedfiguredimensions\!!ten \fi} %D The tex method. \def\dogetfiguresizetex {\ifcase\figurestatus \global\setbox\foundexternalfigure\vbox {\insidefloattrue \forgetall \blank[\v!disable]% niet meer weg ! \startreadingfile \readfile\wantedfigurefullname \donothing \donothing \stopreadingfile \endgraf \removelastskip}% \global\setbox\foundexternalfigure\hbox {\raise\dp\foundexternalfigure\box\foundexternalfigure}% \xdef\analyzedfigurewidth {\the\wd\foundexternalfigure}% \xdef\analyzedfigureheight{\the\ht\foundexternalfigure}% \fi} \let\dogetfiguresizetmp \dogetfiguresizetex \let\dogetfiguresizebuffer\dogetfiguresizetex %D The eps, mps and svg files are read directly. \def\dogetfiguresizeeps {\dogetEPSboundingbox\wantedfigurefullname\!!widtha\!!heighta\!!widthb\!!heightb \xdef\analyzedfigurewidth {\the\!!widthb}% \xdef\analyzedfigureheight{\the\!!heightb}} \let\dogetfiguresizemps\dogetfiguresizeeps \def\dogetfiguresizesvg {\doifinset\wantedfiguretypespec\c!svg {\startnointerference \startXMLignore \defineXMLcommand[svg][width=100,height=75] {\doifdimensionelse{\XMLop{width}} {\xdef\analyzedfigurewidth {\the\dimexpr\XMLop{width}\relax}} {\xdef\analyzedfigurewidth {\the\dimexpr\XMLop{width}\onebasepoint\relax}}% \doifdimensionelse{\XMLop{height}} {\xdef\analyzedfigurewidth {\the\dimexpr\XMLop{height}\relax}} {\xdef\analyzedfigurewidth {\the\dimexpr\XMLop{height}\onebasepoint\relax}}% \endinput}% \processXMLfilegrouped\wantedfigurefullname \stopXMLignore \stopnointerference}} %D Do some checking on the filename. \newconditional \figurefileisqualified \def\setfigurepathlist {\let\figurepathlist\empty \expanded{\doifinset{\v!global }{\@@exlocation}} {\let\figurepathlist\@@exdirectory}% \expanded{\doifinset{\v!local }{\@@exlocation}} {\prependtocommalist\f!currentpath\figurepathlist}% \expanded{\doifinset{\v!default}{\@@exlocation}} {\appendtocommalist\defaultfigurepathsignal\figurepathlist}} % The combined path and qualified path hack is dedicated to Onno Tomson, % our partner in fighting inconsistent and faulty image specifications in % user files. \def\analyzefigurefilename#1#2% {\sanitizefilename#1\to\expandedfigurename \expanded{\checkfilename{\expandedfigurename}}% \ifcase\kindoffile \splitfigurefilename \ifcase\splitoffkind \let\wantedfigurepath\empty % no . either \setfigurepathlist \setfalse\figurefileisqualified \else \splitfigurefilename % will become splitoffkind 3 ! ! ! ! \setfalse\figurefileisqualified \doifinstring{$$/}{$$\wantedfigurepath}{\settrue\figurefileisqualified}% \doifinstring {:} {\wantedfigurepath}{\settrue\figurefileisqualified}% \ifconditional\figurefileisqualified \let\figurepathlist\wantedfigurepath \let\wantedfigurepath\empty \settrue\figurefileisqualified \else \let\figurepathlist\@@exdirectory \let\oldfigurepathlist\figurepathlist \let\figurepathlist\wantedfigurepath \def\docommand##1{\edef\figurepathlist{\figurepathlist,##1/\wantedfigurepath}}% \processcommacommand[\oldfigurepathlist]\docommand \fi \fi \else % fully qualified \splitfigurefilename \let\wantedfigurepath\empty \settrue\figurefileisqualified \fi \ifx\figurepathlist\empty \let\figurepathlist\defaultfigurepathsignal % will prepend no path \fi \doifelsenothing\wantedfiguretype {\doifparentfileelse\wantedfigurename {\@EA\removefromcommalist\@EA{\jobsuffix }\wantedfiguretypelist \@EA\removefromcommalist\@EA{\jobfilesuffix}\wantedfiguretypelist} {}} {\let\wantedfiguretypelist\empty \let\wantedfiguretypespec\wantedfiguretype}% \edef\wantedfigurelabel{#2}% \doshowfigurestate{type check : \ifx\wantedfiguretypelist\empty forced type \wantedfiguretypespec\else\wantedfiguretypelist\fi}% \doshowfigurestate{file specs : \wantedfigurefull\space [\wantedfigurepath] [\wantedfigurename] [\wantedfiguretype]}% \doshowfigurestate{file type : \ifconditional\figurefileisqualified qualified\else simple\fi}} \def\setwantedfigurefullname#1#2#3% path name spec {\ifx\wantedfiguremethod\empty % the either explicit or gambled typespec determines the method \edef\wantedfiguretypespec{#3}% \doifelse{#1}\defaultfigurepathsignal {\edef\wantedfigurefullname {#2.\wantedfiguretypespec}} {\edef\wantedfigurefullname{#1/#2.\wantedfiguretypespec}}% \else\ifx\wantedfiguretype\empty % % the typespec (probably the same as the method) determines the suffix \doifelse{#1}\defaultfigurepathsignal {\edef\wantedfigurefullname {#2.\wantedfiguretypespec}} {\edef\wantedfigurefullname{#1/#2.\wantedfiguretypespec}}% \let\wantedfiguretypespec\wantedfiguremethod \else % the given suffix is used \let\wantedfiguretypespec\wantedfiguremethod \doifelse{#1}\defaultfigurepathsignal {\edef\wantedfigurefullname {#2.\wantedfiguretype}} {\edef\wantedfigurefullname{#1/#2.\wantedfiguretype}}% \fi\fi} \def\splitfigurefilename {\splitfilename\expandedfigurename \let\wantedfigurefull\splitofffull \let\wantedfigurepath\splitoffpath \let\wantedfigurename\splitoffname \let\wantedfigurebase\splitoffbase \let\wantedfiguretype\splitofftype} \def\analyzefigurefiles {\ifconditional\figurefileisqualified \ifx\wantedfiguretype\empty \doshowfigurestate{locating : unknown type}% \doanalyzeunknownfiguretype \else % this file or none \doshowfigurestate{locating : known type}% \doanalyzequalifiedfigure \fi \else \ifx\wantedfiguretype\empty % locate best fit / check support \doshowfigurestate{locating : best fit}% \doanalyzeunknownfiguretype \else % only check on paths \doshowfigurestate{locating : known types}% \doanalyzeknownfiguretype \fi \fi} \def\doanalyzequalifiedfigure {\let\wantedfigurefullname\wantedfigurefull \let\wantedfiguretypespec\wantedfiguretype \doshowfigurestate{forced type : \wantedfiguretype}% \doshowfigurestate{identifying : \wantedfigurefullname}% \doanalyzefiguredimensions} \def\doanalyzeknownfiguretype {\doshowfigurestate{using paths : \figurepathlist}% \doshowfigurestate{known type : \wantedfiguretype}% \doshowfigurestate{identifying : \wantedfigurename}% \let\wantedfiguretypespec\wantedfiguretype \processcommacommand[\figurepathlist]\dodoanalyzeknownfiguretype} \def\dodoanalyzeknownfiguretype#1% path {\ifcase\figurestatus \setwantedfigurefullname{#1}\wantedfigurename\wantedfiguretype \doanalyzefiguredimensions \fi} \def\doanalyzeunknownfiguretype {\doshowfigurestate{using paths : \figurepathlist}% \doshowfigurestate{using types : \wantedfiguretypelist}% \doshowfigurestate{identifying : \wantedfigurename}% \processcommacommand[\wantedfiguretypelist]\dodoanalyzeunknownfiguretype} \def\dodoanalyzeunknownfiguretype#1% {\processcommacommand[\figurepathlist]{\dododoanalyzeunknownfiguretype{#1}}} \def\dododoanalyzeunknownfiguretype#1#2% type path {\ifcase\figurestatus \setwantedfigurefullname{#2}\wantedfigurename{#1}% path spec \doanalyzefiguredimensions \fi} %D Some files, take for instance movies, cannot easilly be %D parsed on dimensions, that is, not yet. Although the current %D mechanism has no problems with this, as long as the user %D specified width and height reflect the right aspect ratio. %D Nevertheless, when one does not want any scanning done, one %D can disable \type{preset}. When no preset is needed, we only %D locate the file. \def\doanalyzefiguredimensionsfallback {\ifcase\figurestatus \doshowfigurestate{warning : assuming adaptive figure}% \xdef\analyzedfigurewidth {\the\dimexpr\@@efwidth +\zeropoint\relax}% \xdef\analyzedfigureheight{\the\dimexpr\@@efheight+\zeropoint\relax}% \setanalyzedfiguredimensions\plustwo \fi} %D This is \MKII\ only and comes from cont-new (maybe used in a project). % maybe to be integrated (option=...) \def\directexternalfigure {\dodoubleempty\dodirectexternalfigure} \def\dodirectexternalfigure[#1][#2]% {\bgroup \getparameters[\??ef][\c!type=\splitofftype,\c!page=1,#2]% \sanitizefilename#1\to\expandedfigurename \splitfilename\expandedfigurename \let\@@DriverImageWidth \!!zeropoint \let\@@DriverImageHeight \!!zeropoint \let\@@DriverImageFile \splitofffull \let\@@DriverImageType \@@eftype \let\@@DriverImageMethod \@@eftype \let\@@DriverImageLabel \empty \let\@@DriverImagePage \@@efpage \doinsertfile \egroup} % \directexternalfigure[cow.pdf] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-lst.mkii0000644000175000017500000011146114536300610024732 0ustar hillehille%D \module %D [ file=strc-lst, %D version=1997.03.31, %D title=\CONTEXT\ Structure Macros, %D subtitle=Lists, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Structure Macros / Lists} \unprotect % \getlistlevel[hoofdstuk]\test{0} \test % can be made faster if needed \def\getlistlevel[#1]#2#3% [list] \variable \default {\doifdefinedelse{\??ko#1\c!section} {\edef#2{\getvalue{\??ko#1\c!section}}% \doifdefinedelse{\??se#2\c!level} {\edef#2{\getvalue{\??se#2\c!level}}} {\edef#2{#3}}} {\edef#2{#3}}} % Auto cross document links work by either using logical or % page references, depending on the general settings. The % locations are stored in global references where the auto tag % number uses the text container. We use reference mapping % (define reference) to keep track of the current ref. % \@@sectie == current level \def\dowritetolist#1% {\doifelsevalue{\??li#1\c!state}\v!start \dodowritetolist\gobblefourarguments{#1}} \long\def\dodowritetolist#1#2#3#4% {\begingroup \expanded{\everylistentry\emptytoks\the\everylistentry}% \emptytoks, else loop \def\currentlist{#1}% evt naar dowritetolist \defconvertexpanded\asciilistentry{\getvalue{\??li\currentlist\c!expansion}}{#3}% \makesectionformat \doifelse\@@nmstate\v!start {\def\dopagenummer{\noexpand\pagenumber}} {\let\dopagenummer\!!zerocount}% % niet waterdicht, wat te doen met figuren en zo % first hack: scheelt rommel, second hack: alleen koppen \doifelsevalue{\??rf\currentlist\c!state}\v!start {\doif{\@@sectionlevel\@@sectie}{0}\autocrossdocumentfalse} {\autocrossdocumentfalse}% % weak and inefficient \ifautocrossdocument \bgroup \thisisnextinternal\currentlist %\thisisdestination{\currentlist::\sectionformat}% \expanded{\setsectieenkoppeling{\currentlist}}% \edef\currentlevel{\@@sectionlevel\@@sectie}% \processcommacommand[\crossdocumentreferences]\dododowritetolist \egroup \else \thisisnextinternal\currentlist \fi \expanded {\writeutilitycommand % todo: also an immediate option {\noexpand\listentry {\currentlist}% {\nextinternalreference}% {#2}% {\asciilistentry}% {\sectionformat\sectionseparator\sectionseparator\dopagenummer}% {\noexpand\realfolio}}}% \endgroup} \def\dododowritetolist#1% {\def\docommand##1% {\doifvalue{\??rf##1\c!state}\v!start {\setsectieenkoppeling{##1}% \def\level{\@@sectionlevel\@@sectie}% \ifnum\level>\currentlevel \expanded{\definereference[#1::##1][\v!none]}% \else\ifnum\level=\currentlevel \expanded{\definereference[#1::##1][#1::{##1::\sectionformat}]}% \fi\fi}}% \processcommacommand[\crossdocumentelements]\docommand} % so far \def\dowritebetweenlist#1#2% {\doifvalue{\??li#1\c!state}\v!start {\begingroup \defconvertedargument\ascii{#2}% \makesectionformat \doifelse{\@@nmstate}\v!start {\def\dopagenummer{\noexpand\pagenumber}} {\let\dopagenummer\!!zerocount}% \expanded {\writeutilitycommand {\noexpand\listbetween {#1}% {\ascii}% {\sectionformat\sectionseparator\sectionseparator\dopagenummer}% {\noexpand\realfolio}}}% \endgroup}} % experimental (no nodes in mvl), needed for naw \def\immediatetolist[#1]#2#3#4% {\begingroup \defconvertexpanded\asciilistentry{\getvalue{\??li#1\c!expansion}}{#3}% \makesectionformat \immediatewriteutilitycommand {\listentry {#1}{}{#2}{\asciilistentry}% {\sectionformat\sectionseparator\sectionseparator\number#4}% {\realfolio}}% \endgroup} \def\immediatebetweenlist[#1]#2% {\begingroup \defconvertedargument\asciilistentry{#2}% \makesectionformat \immediatewriteutilitycommand {\listbetween {#1}{\asciilistentry}% {\sectionformat\sectionseparator\sectionseparator0}% {\realfolio}}% \endgroup} \def\setlistentries {\def\listentry ##1{\executeifdefined{##1\c!list }\gobblefivearguments }% \def\listbetween##1{\executeifdefined{##1\c!inbetween}\gobblethreearguments}} \def\resetlistentries {\let\listentry \gobblesixarguments \let\listbetween\gobblefourarguments} \resetlistentries \addutilityreset{listentries} % old values: % % a: \def\listfill {\hskip 1.75em} % b: \def\listfill {\hskip.5em\hfill} % c: \def\listfill {\hskip.5em\listdots\hskip.5em} % todo: interface them % \setvalue{\??li\c!alternative a}% nr - tit - pag % {\def\listfill {\hskip.25em\relax}% % \def\listskip {0pt}% % \def\listwidth {2em}% % \def\liststretch{10em}} % \setvalue{\??li\c!alternative b}% nr - tit - fill - pag % {\def\listfill {\hfill}% % \def\listskip {5em}% % \def\listwidth {2em}% % \def\liststretch{10em}} % \setvalue{\??li\c!alternative c}% nr - tit - dots - pag % {\def\listfill {\hskip.5em\listdots\hskip.5em\relax}% % \def\listskip {5em}% % \def\listwidth {0pt}% % \def\liststretch{10em}} \def\listalternativeparameter#1% {\csname\??li\??li\listparameter\c!alternative#1\endcsname} \def\setuplistalternative[#1]% {\dodoubleargument\getparameters[\??li\??li#1]} % \listfill cum suis will be replaced by the direct call \def\listfill {\listalternativeparameter\c!command } \def\listskip {\listalternativeparameter\c!distance} \def\listwidth {\listalternativeparameter\c!width } \def\liststretch{\listalternativeparameter\c!stretch } % a : nr - tit - pag % b : nr - tit - fill - pag % c : nr - tit - dots - pag \setuplistalternative[a][\c!distance=0pt,\c!width=2em,\c!stretch=10em,\c!command=\hskip.25em\relax] \setuplistalternative[b][\c!distance=5em,\c!width=2em,\c!stretch=10em,\c!command=\hfill] \setuplistalternative[c][\c!distance=5em,\c!width=0pt,\c!stretch=10em,\c!command=\hskip.5em\listdots\hskip.5em\relax] \def\listdots{\leaders\hbox to .5em{\hss.\hss}\hfill} % \starttext % \placelist[section][alternative=c] % \setuplistalternative[c][distance=1em,stretch=0em] % \placelist[section][alternative=c] % \section{test} % \section{\readfile{tufte}{}{}} % \stoptext \setvalue{\??li\c!alternative}{\getvalue{\??li\c!alternative b}} \getvalue{\??li\c!alternative} \def\setlistparameter#1#2#3{\@EA\def\csname\??li#1#2\endcsname{#3}} % often \def\listparameter #1{\csname\??li\currentlist#1\endcsname} \def\dosetuplist[#1][#2]% slow -) {\def\docommand##1% {\getparameters[\??li##1][#2]% \preparepageprefix{\??li##1}}% \processcommalist[#1]\docommand} \def\setuplist {\dodoubleargument\dosetuplist} \def\dodosetlist#1% {\def\nolist{\splitsequence{\getvalue{\??li#1\c!limittext}}}% \setvalue{#1\c!inbetween}{\dobetweenlist{#1}}% \setvalue{#1\c!list }{\dolistelement{#1}}} % \def\dodoresetlist#1% % {\let\nolist\empty % \setvalue{#1\c!inbetween}{\gobblefourarguments{#1}}% % \setvalue{#1\c!list }{\gobblesixarguments {#1}}} \def\dodoresetlist#1% {\let\nolist\empty \letvalue{#1\c!inbetween}\gobblethreearguments \letvalue{#1\c!list }\gobblefivearguments} \let\nolist\empty \def\dodefinelist[#1][#2][#3]% {\presetlocalframed[\??li#1]% \getparameters [\??li#1] [\c!height=\v!broad, \c!depth=\v!broad, \c!offset=0.25em, \c!maxwidth=, \c!align=, \c!state=\v!start, \c!coupling=\v!off, \c!criterium=\v!local, \c!width=3em, \c!alternative=\c!b, \c!style=\v!normal, \c!textstyle=\listparameter\c!style, \c!numberstyle=\listparameter\c!style, \c!pagestyle=\listparameter\c!style, \c!color=, \c!textcolor=\listparameter\c!color, \c!numbercolor=\listparameter\c!color, \c!pagecolor=\listparameter\c!color, \c!numbercommand=\listnumbercommand, \c!textcommand=\listtextcommand, \c!pagecommand=\listpagecommand, \c!pagenumber=\v!yes, \c!headnumber=\v!yes, \c!pageboundaries=, \c!margin=\!!zeropoint, \c!aligntitle=, \c!before=, \c!after=, \c!inbetween=, \c!symbol=, \c!interaction=\v!sectionnumber, \v!part\v!number=\v!yes, % nodig ? % v %\c!prefix=\v!no, % we need to initialize it \c!label=\v!no, \c!distance=\!!zeropoint, \c!separator=\@@koseparator, \c!limittext=\@@kolimittext, \c!stopper=, \c!expansion=]% \doifassignmentelse{#2} {\getparameters[\??li#1][#2]} {\ConvertToConstant\doifnot{#2}{} % not \doifsomething ivm Convert... {\copyparameters % interactie ? [\??li#1][\??li#2] [\c!state,\c!width,\c!alternative,\c!style,\c!color, \c!textstyle,\c!textcolor,\c!textcommand, \c!pagestyle,\c!pagecommand,\c!pagecolor, \c!numberstyle,\c!numbercolor,\c!numbercommand, \c!headnumber, \c!pagenumber,\c!pageboundaries,\c!margin,\c!symbol,\c!limittext, \c!aligntitle,\c!before,\c!after,\c!inbetween,\v!part\c!number,\c!label]% \getparameters[\??li#1][#3]}}% \addutilityreset{#1}% \setvalue{\s!set #1}{\dodosetlist {#1}}% \setvalue{\s!reset#1}{\dodoresetlist{#1}}} \def\definelist {\dotripleempty\dodefinelist} \def\iflijstgeplaatst{\ifutilitydone} % obsolete, is now a mode \def\placelist {\dodoubleempty\doplacelist} \def\placerawlist {\dodoubleempty\doplacerawlist} \def\dobeginoflist {\begingroup \startpacked[\v!blank]} \def\doendoflist {\stoppacked \endgroup} \def\doplacelist[#1][#2]% {\dobeginoflist \doplacerawlist[#1][#2]% \doendoflist} \def\doplacerawlist[#1][#2]% {\begingroup \dogetcommalistelement1\from#1\to\firstlistelement \dosetuplist[#1][#2]% \doifvalue{\??li\firstlistelement\c!coupling}\v!on {\startlistreferences{#1}}% \dosettoclevel\??li\firstlistelement \honorlocalfilterlevel \doutilities{listentries,#1}\jobname{#1}\relax\par \stoplistreferences \dosetlistmode \endgroup} % the simple approach: % % \def\dosettoclevel#1#2% % {\dosetfilterlevel{\getvalue{#1#2\c!criterium}}\empty} % % but we want to to support selection by number: % % \starttypen % \placelist[section][criterium=chapter,number=1] \blank % \placelist[section][criterium=chapter,number=2] \blank % \placelist[section][criterium=chapter,number=3] \blank % % \chapter{first} \section{AA} \section{BB} % \chapter{second} \section{CC} \section{DD} % \chapter{third} \section{EE} \section{FF} % \stoptypen \def\dosettoclevel#1#2% todo: check if criterium is headid, else error {\ifundefined{#1#2\c!number}% \dosetfilterlevel{\getvalue{#1#2\c!criterium}}\empty \else % \doifnot{#2}\v!local ... \doifelsevaluenothing{#1#2\c!number}% {\dosetfilterlevel{\getvalue{#1#2\c!criterium}}\empty} {\setsectieenkoppeling{\getvalue{#1#2\c!criterium}}% \dosetfilterlevel {\previoussection\@@sectie}% {\getvalue{#1#2\c!number}}}% \fi} \def\dosetlistmode {\ifutilitydone \setsystemmode \v!list \else \resetsystemmode\v!list \fi} \def\dodocompletelist[#1][#2][#3]% enkelvoud, meervoud, instellingen {\expanded{\systemsuppliedtitle[#2]{\noexpand\headtext{#2}}}% expansion needed for v! vs french ! \doplacelist[#1][#3]} \def\docompletelist[#1][#2]% {\dodocompletelist[#1][#1][#2]} \def\completelist {\dodoubleempty\docompletelist} \def\listelements {} % list of page breaks \def\listnumbercommand #1{#1} % no strut due to interactive version \def\listtextcommand #1{\begstrut#1\endstrut} \def\listpagecommand #1{\strut#1} \def\doassigndimen#1#2#3% {\doifinsetelse{#2}{\v!fit,\v!broad}{#1=#3}{#1=#2}\relax} % \let\dohandlelistnumber\firstofoneargument % % can be anything, so no \expanded{\separatednumber{#1}} ! \def\dohandlelistnumber#1{\separatednumber{#1}} \def\listsymbol[#1]#2% {\begingroup \def\currentlist{#1}% \def\currentlistnumber{#2}% \currentlistsymbol \endgroup} % Beware, the list symbol macro gets an argument passed, i.e. when this % argument is not picked up, the symbol becomes a kind of prefix. % for historical reasons we're stuck to symbols, so in order to generalize, % we have to hook it into the symbol handler; we need a beter clean up later % % < 2005 % % \def\dosetlistsymbol % #1 % {\executeifdefined{listsymbol@\listparameter\c!symbol}\listsymbol@default} % {#1} % % >= 2005 % % at this symbol level, we have access to the raw 'number' in % \currentlistnumber \definesymbol[\v!list][\v!none ][\listsymbol@none ] \definesymbol[\v!list][\v!one ][\listsymbol@one ] \definesymbol[\v!list][\v!two ][\listsymbol@two ] \definesymbol[\v!list][\v!three ][\listsymbol@three ] \definesymbol[\v!list][\s!default][\listsymbol@default] \definesymbol[\v!list][\s!unknown][\listsymbol@unknown] \def\currentlistsymbol {\doifinsymbolsetelse\v!list{\listparameter\c!symbol} {\directsymbol\v!list{\listparameter\c!symbol}} {\directsymbol\v!list\s!default}} \def\listsymbol@none {\doassigndimen\scratchdimen{\listparameter\c!width}{1.5em}% \hbox to \scratchdimen{}} \def\listsymbol@one {\strut$\bullet$} \def\listsymbol@two {\vrule\!!width1em\!!height1ex\!!depth\zeropoint} \def\listsymbol@three {\begingroup \doassigndimen{\dimen0}{\listparameter\c!width }{1.5em}% \doassigndimen{\dimen2}{\listparameter\c!height}{1ex}% \doassigndimen{\dimen4}{\listparameter\c!depth }\zeropoint \vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4% \endgroup} \def\listsymbol@default {\doifelse{\listparameter\c!prefix}\v!no % ook nog eerste {\edef\splitlistsymbol{\@EA\removefirstprefix\@EA{\currentlistnumber}}}% one level expansion {\doifelse{\listparameter\c!prefix}\v!none {\edef\splitlistsymbol{\@EA\removeallprefixes\@EA{\currentlistnumber}}}% {\let\splitlistsymbol\currentlistnumber}}% geen \edef ivm 8 bit enz \doif{\listparameter\c!label}\v!yes{\leftlabeltext\currentlist}% \strut \def\numberseparator{\listparameter\c!separator}% overloaded, todo \@EA\dohandlelistnumber\@EA{\splitlistsymbol}% \listparameter\c!stopper \doif{\listparameter\c!label}\v!yes{\rightlabeltext\currentlist}} \def\listsymbol@unknown {\listparameter\c!symbol} % so far for list symbols \def\@@dodolistelement{dodolistelement} \def\dosomelistelement#1#2#3{#1 #2 \translatednumber[#3]} \setvalue{\@@dodolistelement a}{\let\dosomelistelement\dodofixdlistelementABC} \setvalue{\@@dodolistelement b}{\let\dosomelistelement\dodofixdlistelementABC} \setvalue{\@@dodolistelement c}{\let\dosomelistelement\dodofixdlistelementABC} \setvalue{\@@dodolistelement d}{\let\dosomelistelement\dodofixdlistelementD} \setvalue{\@@dodolistelement e}{\let\dosomelistelement\dodofixdlistelementE} \setvalue{\@@dodolistelement f}{\let\dosomelistelement\dodofixdlistelementF} \setvalue{\@@dodolistelement g}{\let\dosomelistelement\dodofixdlistelementG} \setvalue{\@@dodolistelement\v!none }{\def\dosomelistelement{\dodofreevlistelement}} \setvalue{\@@dodolistelement\v!vertical }{\def\dosomelistelement{\dodofreevlistelement}} \setvalue{\@@dodolistelement\v!horizontal}{\def\dosomelistelement{\dodofreehlistelement}} \setvalue{\@@dodolistelement\v!command }{\let\dosomelistelement\dodocommandlistelement} % \setuplist % [section] % [alternative=MyListItem, % after=\blank, % before=\blank] % % \definelistplacement[MyListItem][none]#1#2#3% % {(#1) (#2) (#3)} \def\definelistplacement {\dodoubleempty\dodefinelistplacement} \def\dodefinelistplacement[#1][#2]% {\setvalue{\@@dodolistelement#1}% {\doifelsenothing{#2} {\getvalue{\@@dodolistelement\v!command}}% {\executeifdefined{\@@dodolistelement#2} {\getvalue{\@@dodolistelement\v!command}}}% \setvalue{\??li\currentlist\c!command}{\getvalue{\@@dodolistelement::#1}}}% \setvalue{\@@dodolistelement::#1}} % don't mess arround with endgraf/grouping else we loose leftskip % \strippedcsname\dodolistelement \def\newlineinlist{\space} \let\currentlist\s!unknown \def\dolistelement#1#2#3#4#5#6% pas op: wordt ook elders gedefinieerd {\doiftoclevelelse[#5]{\dodolistelement{#1}{#2}{#3}{#4}{#5}{#6}}{}} \def\dodolistelement#1#2#3#4#5#6% {\def\currentlist{#1}% \def\currentlistnumber{#3}% \getvalue{\@@dodolistelement\listparameter\c!alternative}% %\showcomposition \let\@@iawidth\!!zeropoint % moet boolean worden \bgroup \edef\listelements {\listparameter\c!pageboundaries}% \ExpandBothAfter\doifinset{#3}\listelements {\showmessage\m!systems{14}{#3}% \page}% \egroup \dontcomplain \setfullsectionnumber{\??li\currentlist}% \dosomelistelement{#1}{#2}{#3}{#4}{#5}{#6}% \global\utilitydonetrue} \def\donestedlistattributes#1#2% {\doifvaluesomething{\??li\currentlist#2} % color {\resetinteractionparameter\c!color \resetinteractionparameter\c!contrastcolor}% \dolistattributes{#1}{#2}} \def\dostartlistattributes{\dostartattributes{\??li\currentlist}} \def\dostoplistattributes {\dostopattributes} \def\dolistattributes {\doattributes{\??li\currentlist}} \def\dodocommandlistelement#1#2#3#4#5#6% {\doifdefinedelse{\??li#1\c!command} {\listparameter\c!command {#3}{#4}{\pageprefix\??li\currentlist[#5]\translatednumber[#5]}} {[\currentlist: #3 - #4 - \pageprefix\??li\currentlist[#5]\translatednumber[#5]]}} \def\dodofreelistelement#1#2#3#4#5#6#7#8% {\def\makelistelement##1##2% {\noindent % new and needed \hbox {\doifelse{\listparameter\c!interaction}{##1} % \??li ipv \??ia {\setbox0\hbox{\showcontrastlocation{\??li\currentlist}{#6}{##2}}% \linklisttoelement{#2}{#5}{#6}{\box0}}%{\copy0}}% {##2}}}% \listparameter\c!before% can be \hskip \doifdefinedelse{\??li#1\c!command} {\makelistelement{\listparameter\c!interaction}% this forces all {\listparameter\c!command {#3}% geen conversies etc {#4}% geen conversies etc {\pageprefix\??li\currentlist[#5]% \translatednumber[#5]}}} {#7% \vbox {\forgetall \makelistelement\v!all {% \doif{\listparameter\c!headnumber}\v!yes {\makelistelement\v!sectionnumber {\donestedlistattributes\c!numberstyle\c!numbercolor {\listparameter\c!numbercommand{\currentlistsymbol}}}% }% \makelistelement\v!text {\donestedlistattributes\c!textstyle\c!textcolor {\let\\=\newlineinlist \dontconvertfont \listparameter\c!textcommand{#4}}}% \doif{\listparameter\c!pagenumber}\v!yes {\doifsomething{#5} {\makelistelement\v!pagenumber {\donestedlistattributes\c!pagestyle\c!pagecolor {\listparameter\c!pagecommand {\pageprefix\??li\currentlist[#5]% \translatednumber[#5]}}}}}}}% #8}% \listparameter\c!after} \def\dodofreehlistelement#1#2#3#4#5#6% {\dodofreelistelement{#1}{#2}{#3}{#4}{#5}{#6} {\noindent}{}} \def\dodofreevlistelement#1#2#3#4#5#6% % \nointerlineskip needed, {\dodofreelistelement{#1}{#2}{#3}{#4}{#5}{#6} % otherwise wrong spacing {\ifvmode\nointerlineskip\fi} % at multi-line lists {\ifvmode\nointerlineskip\fi\endgraf\allowbreak}} % test is saveguard % to be documented: align, hang % now also in abc \def\limitatedlistentry#1% {\doifelsenothing{\listparameter\c!maxwidth} {\listparameter\c!textcommand{#1}} {\listparameter\c!textcommand {\limitatetext {#1}% {\listparameter\c!maxwidth}% {\splitsymbol{\listparameter\c!limittext}}}}} \def\dodofixdlistelementABC#1#2#3#4#5#6% weeden {\endgraf \leftskip\listparameter\c!margin% na de \endgraf ! \listparameter\c!before \!!widthc\listparameter\c!distance \doifelse{\listparameter\c!width}\v!fit {\!!widtha\zeropoint} {\doifelsenothing{#3} {\doifelse{\listparameter\c!aligntitle}\v!yes {\!!widtha\zeropoint \!!widthc\zeropoint} {\!!widtha\listparameter\c!width}} {\!!widtha\listparameter\c!width}}% \getvalue{\??li\c!alternative\listparameter\c!alternative}% \endgraf \def\makelistelement##1##2% {\doifelse{\listparameter\c!interaction}{##1} {\setbox0\hbox{\showcontrastlocation\??ia{#6}{##2}}% \linklisttoelement{#2}{#5}{#6}{\box0}}%{\copy0}}% {\hbox{##2}}}% \doif{\listparameter\c!interaction}\v!text % not supported ! ! ! ! ! ! text == all {\setlistparameter\currentlist\c!interaction\v!all}% % \dontleavehmode % new, else no margin, but wrong, better (else \indent as well): \noindent \makelistelement\v!all {\setlocalhsize \hsize\localhsize \hbox to \hsize {\forgetall \dostartlistattributes\c!style\c!color\empty \!!widthb\hsize \doifelse{\listparameter\c!headnumber}\v!yes {\setbox2\hbox \ifdim\!!widtha>\zeropoint to \!!widtha \fi {\makelistelement\v!sectionnumber {\donestedlistattributes\c!numberstyle\c!numbercolor {\listparameter\c!numbercommand{\currentlistsymbol}}% \hfill}}} {\!!widtha\zeropoint \!!widthc\zeropoint \setbox2\hbox{}}% \setbox4\hbox {\doif{\listparameter\c!pagenumber}\v!yes {\doifsomething{#5} % \listwidth is new ; temp hack {\hbox \ifdim\listwidth>\zeropoint to \listwidth\fi {\hfill \makelistelement\v!pagenumber {\donestedlistattributes\c!pagestyle\c!pagecolor {\listparameter\c!pagecommand {\pageprefix\??li\currentlist[#5]% \translatednumber[#5]}}}}}}}% \vbox {\hsize\!!widthb \setupalign[\listparameter\c!align]% \ifdim\!!widtha<\hsize \hangindent\wd2 \dimen2=\!!widthc % \listparameter\c!distance \advance\hangindent \dimen2 \hangafter\plusone \doif{\listparameter\c!hang}\v!no{\hangafter\zerocount}% \ifdim\wd4=\zeropoint % \ifvoid4 % we kunnen gewoon afbreken aan het eind \else \ifdim\listskip>\zeropoint\relax \rightskip\listskip\!!plus\liststretch\relax \parfillskip-\rightskip \fi \fi \else \dimen2\zeropoint \fi \parindent\zeropoint\relax \leavevmode \box2\relax \hskip\dimen2 \bgroup \donestedlistattributes\c!textstyle\c!textcolor {\let\\=\newlineinlist \dontconvertfont %\listparameter\c!textcommand{#4}}% \limitatedlistentry{#4}}% %\carryoverpar % new otherwise wrong linespacing \egroup \ifdim\wd4=\zeropoint\relax % \ifvoid4 % \ifdim\!!widtha<\hsize \hfill\strut \fi % spoils align \else \nobreak\listfill \box4\relax \relax \fi}% \hss \dostoplistattributes}}% new \endgraf % new, else problems with nointerlinespace and prevdepth \nointerlineskip % anders verkeerde spatiering bij multi-line \endgraf \allowbreak \listparameter\c!after} % % example from the context list % % \setuphead [part] [page=right,placehead=yes] % \setuplist [chapter] [alternative=d,before=\blank,after=\blank] % \setuplist [part] [before=\blank,after=\blank] % % \starttext % \startnarrower[2*right] \placecontent \stopnarrower % \blank[4*big] % \startsetups chapter % \blank \startnarrower[3*middle] \placecontent[criterium=local] \stopnarrower % \stopsetups % \placelist[part][criterium=text,after=\setups{chapter}] % % \part{First part} \chapter{Chapter one} \chapter{Chapter two} % \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five} % \part{Second part} \chapter{Chapter one} \chapter{Chapter two} % \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five} % \part{Third part} \chapter{Chapter one} \chapter{Chapter two} % \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five} % \stoptext % overrulen interactie kan sneller, bv door hulpconstanten % te gebruiken en die te letten \def\dodofixdlistelementD#1#2#3#4#5#6% {%\leftskip=\listparameter\c!margin \ifvmode \advance\leftskip\listparameter\c!margin% AANGEPAST \fi \bgroup \ifvmode \noindent\leavevmode % leavevmode ? ? ? \fi \doif{\listparameter\c!interaction}\v!text % not supported {\setlistparameter\currentlist\c!interaction\v!sectionnumber}% \doif{\listparameter\c!interaction}\v!all % not supported {\setlistparameter\currentlist\c!interaction\v!sectionnumber}% \def\makelistelement##1##2% {\doifelse{\listparameter\c!interaction}{##1} {\setbox0\hbox{\showcontrastlocation\??ia{#6}{##2}}% \linklisttoelement{#2}{#5}{#6}{\box0}}%{\copy0}}% {\hbox{##2}}}% \setbox4\hbox {\doif{\listparameter\c!pagenumber}\v!yes {\doifsomething{#5} {\makelistelement\v!pagenumber {\donestedlistattributes\c!pagestyle\c!pagecolor {\listparameter\c!pagecommand {\pageprefix\??li\currentlist[#5]% \translatednumber[#5]}}}}}}% \doif{\listparameter\c!headnumber}\v!yes{% \donetrue \doifnothing{#3}{\doifnothing{\listparameter\c!symbol}\donefalse}% % == \doifnothing{#3\listparameter\c!symbol}\donefalse \ifdone \hbox {\listparameter\c!left \makelistelement\v!sectionnumber {\donestedlistattributes\c!numberstyle\c!numbercolor {\listparameter\c!numbercommand{\currentlistsymbol}}}% \listparameter\c!right \hskip.5em}% \nobreak \fi }% \tolerance3500 % niet zomaar veranderen \donestedlistattributes\c!textstyle\c!textcolor {\let\\=\newlineinlist \dontconvertfont %\listparameter\c!textcommand{#4}}% \limitatedlistentry{#4}}% \ifvoid4\else \nobreak \hskip.75em\relax \nobreak \box4 \fi \dimen0=\listparameter\c!distance\relax \ifdim\dimen0<1em\relax \hskip1em\!!plus1em\!!minus.25em\relax \else \hskip\dimen0\!!plus.5\dimen0\!!minus.25\dimen0\relax \fi \egroup} \def\dodofixdlistelementE#1% {\dodofixdlistelementEFG {\setupinteraction[\c!strut=\v!no]} {\localframed[\??li\currentlist][\c!depth=\!!zeropoint,\c!color=]} {}} \def\dodofixdlistelementF#1% {\dodofixdlistelementEFG {} {\dosetraggedhbox{\listparameter\c!align}\raggedbox} {}} \def\dodofixdlistelementG#1% {\dodofixdlistelementEFG {} \midaligned {}} \def\dodofixdlistelementEFG#1#2#3#4#5#6#7#8% {\noindent \bgroup \def\makelistelement##1##2% isolated by Wolfgang Schuster {\doifelse{\listparameter\c!interaction}{##1} {#2{##2}} {\setbox0\hbox{#2{\showcontrastlocation\??ia{#8}{##2}}}% \linklisttoelement{#4}{#7}{#8}{\box0}}}% \makelistelement\v!no {\let\\=\newlineinlist #1% in case E nils the strut (still needed?) \dostartlistattributes\c!style\c!color\empty \ignorespaces\dontconvertfont\setstrut \begstrut \limitatedlistentry{#6}% \endstrut \dostoplistattributes}% \egroup \par \listparameter\c!inbetween} % better: % % \def\linklisttoelement#1#2#3#4% % list location format page data % {\ifautocrossdocument % \gotodestination{}{}{\currentlist::\@@filterblocknumberpart[#2]}{#3}{#4}% % \else % \gotonextinternal\currentlist{#1}{#3}{#4}% % \fi} % % but for the moment: \def\linklisttoelement#1#2#3#4% % list location format page data {\gotonextinternal\currentlist{#1}{#3}{#4}} \def\writetolist[#1]#2#3% {\doifsomething{#1} {\defconvertedargument\firstlistelement{#2}% \@EA\dowritetolist\@EA{#1}{\firstlistelement}{#3}{\v!head}}} \def\dobetweenlist#1#2#3#4% pas op: wordt ook elders gedefinieerd {\doiftoclevelelse[#3]{#2}{}} \def\writebetweenlist[#1]#2% {\@EA\dowritebetweenlist\@EA{#1}{#2}} % #2 weg en \expanded % NOG ENGELS MAKEN \def\listlength{\utilitylistlength} \def\listwidth {\utilitylistwidth} \def\listheight{\utilitylistheight} \def\utilitylistlength {0} \def\utilitylistwidth {0pt} \def\utilitylistheight {0pt} \def\dolistelementX#1#2#3#4#5#6% {\doiftoclevelelse[#5] {\doglobal\increment\utilitylistlength \hbox {\dolistattributes\c!textstyle\c!textcolor {\let\\=\newlineinlist \dontconvertfont \listparameter\c!textcommand{#4}}}% \global\utilitydonetrue} {}} \def\dodeterminelistcharacteristics[#1][#2]% {\begingroup \doglobal\newcounter\utilitylistlength \let\dolistelement\dolistelementX \dosetuplist[#1][#2]% \dogetcommalistelement1\from#1\to\commalistelement \dosettoclevel\??li\commalistelement \setbox0\vbox{\doutilities{listentries,#1}\jobname{#1}\relax\par}% \xdef\utilitylistheight{\the\ht0}% \xdef\utilitylistwidth {\the\wd0}% \endgroup \dosetlistmode} \def\determinelistcharacteristics {\dodoubleempty\dodeterminelistcharacteristics} % \definerreferencelist % [externalfigure] % [command=\showbigfigure, % before=\page, % after=\page] % % \definereferencelist % [externaltable] % [command=\showbigtable, % before=\page, % after=\page] % % \def\showbigfigure#1% % {\externalfigure[#1][frame=on,factor=max]} % % \def\showbigtable#1% % {\switchtobodyfont[12pt]\getbuffer[#1]} % % \writetoreferencelist[externalfigure]{koe} {\externalfigure[koe] [width=3cm,frame=on]} % \writetoreferencelist[externalfigure]{paard}{\externalfigure[paard][width=3cm,frame=on]} % % \startbuffer[kanweg] % \starttable[|||] % \HL % \VL test \VL test \VL\SR % \HL % \VL test \VL test \VL\FR % \VL test \VL test \VL\MR % \VL test \VL test \VL\LR % \HL % \stoptable % \stopbuffer % % \writetoreferencelist[externaltable]{kanweg}{\switchtbodyfont[5pt]\getbuffer[kanweg]} % % \placereferencelist[externalfigure,externaltable] % algemeen \def\referencebutton#1[#2]% {\hbox\bgroup % the \hbox is needed to bypass \let\referenceprefix\empty % \dontleavehmode in \gotobox \setupinteraction[\c!color=,\c!contrastcolor=,\c!strut=]% \setupreferencing[\c!prefix=]% \gotobox{\hbox{\ignorespaces#1}}[#2]% \egroup} \newcounter\referencecounter \def\doreferencelistelement#1#2#3#4#5% {\doiftoclevelelse[#4] {\getvalue{\??rl#1\c!before}% \referencebutton {\getvalue{\??rl#1\c!command}{#3}\pagereference[\r!to#2]}% [\r!from#2]% \global\utilitydonetrue \getvalue{\??rl#1\c!after}} {}} \def\doplacereferencelist[#1][#2]% {\begingroup \setupreferencelist[#1][#2,\c!state=\v!stop]% \dogetcommalistelement1\from#1\to\commalistelement \dosettoclevel\??rl\commalistelement \doutilities{listentries,#1}\jobname{#1}\relax\par \endgroup} \def\placereferencelist {\dodoubleempty\doplacereferencelist} \def\dowritetoreferencelist#1#2#3% {\doifvalue{\??rl#1\c!state}\v!start {\begingroup \makesectionformat \doifelse{\@@nmstate}\v!start {\def\dopagenummer{\noexpand\pagenumber}} {\let\dopagenummer\!!zerocount}% \expanded {\writeutilitycommand% {\noexpand\referencelistentry% {#1}% tag {#2}% number {#3}% data {\sectionformat\sectionseparator\sectionseparator\dopagenummer}% {\noexpand\realfolio}}}% \endgroup}} \def\writetoreferencelist[#1]#2% #1=class #2=data #3=visualization {\dowithnextbox {\doifelsevalue{\??rl#1\c!state}\v!start {\doglobal\increment\referencecounter % must be resolved due to #2 \referencebutton {\flushnextbox \pagereference[\r!from\referencecounter]% \dowritetoreferencelist{#1}{\referencecounter}{#2}}% [\r!to\referencecounter]} {\flushnextbox}} \hbox} % \vbox ? \def\referencelistentry#1% {\executeifdefined{#1\c!list}\gobblefourarguments} \def\dodosetreferencelist#1% {\setvalue{#1\c!list}{\doreferencelistelement{#1}}} \def\dodoresetreferencelist#1% {\setvalue{#1\c!list}{\gobblefourarguments}} \def\dodefinereferencelist[#1][#2]% {\setupreferencelist[#1] [\c!command=, \c!state=\v!start, \c!criterium=\v!all, \c!before=, \c!after=, #2]% \resetcounter{#1}% \addutilityreset{#1}% \setvalue{\s!set #1}{\dodosetreferencelist {#1}}% \setvalue{\s!reset#1}{\dodoresetreferencelist{#1}}} \def\definereferencelist {\dodoubleempty\dodefinereferencelist} \def\dosetupreferencelist[#1][#2]% {\getparameters[\??rl#1][#2]} \def\setupreferencelist {\dodoubleempty\dosetupreferencelist} \def\dosetupcombinedlist[#1][#2]% {\getparameters[\??ih#1][#2]% \expanded{\setuplist[\getvalue{\??ih#1\c!list}]}[#2]} \def\setupcombinedlist {\dodoubleargument\dosetupcombinedlist} \def\doplacecombinedlist[#1][#2]% {\begingroup \getparameters[\??ih#1][#2]% \dosettoclevel\??ih{#1}% \edef\combinedlist{\getvalue{\??ih#1\c!list}}% \doifelsevalue{\??ih#1\c!level}\v!current % {\!!counta=0\@@kolevel} % hm: \@@kolevel {\fullexpandoneargafter\doifnumberelse{\getvalue{\??ih#1\c!level}}% in verband {\!!counta\getvalue{\??ih#1\c!level}% met de vorige implementatie \advance\!!counta \plusone % accepteren we ook nummers (0==deel) \getfromcommacommand[\combinedlist][\!!counta]% \edef\maximumlist{\commalistelement}}% {\edef\maximumlist{\getvalue{\??ih#1\c!level}}}% \doifdefinedelse{\??ko\maximumlist\c!section} {\!!counta\getvalue{\??se\getvalue{\??ko\maximumlist\c!section}\c!level}}% {\!!counta\zerocount}} \let\!!stringa\combinedlist \let\combinedlist\empty \def\docommand##1% {\doifdefinedelse{\??ko##1\c!section} {\ifnum\getvalue{\??se\getvalue{\??ko##1\c!section}\c!level}>\!!counta\else \addtocommalist{##1}\combinedlist \fi}% {\addtocommalist{##1}\combinedlist}}% \processcommacommand[\!!stringa]\docommand \doifvalue{\??ih#1\c!coupling}\v!on {\startlistreferences{#1}}% \ExpandFirstAfter\dodoplacecombinedlist[\combinedlist][#2]% \stoplistreferences \endgroup \dosetlistmode} \def\dodoplacecombinedlist[#1][#2]% {\dobeginoflist \dosetuplist[#1][#2]% \doutilities{listentries,#1}\jobname{#1}\relax\par \doendoflist} \def\docompletecombinedlist[#1][#2]% {\expanded{\systemsuppliedtitle[#1]{\noexpand\headtext{#1}}}% expansion due to v! vs french ! \doplacecombinedlist[#1][#2]} \def\dodefinecombinedlist[#1][#2][#3]% {\makerawcommalist[#2]\combinedlist % for fast processing \letvalue{\??ih#1\c!list}\combinedlist \getcommalistsize[#2]% \getfromcommalist[#2][\commalistsize]% \doeassign[\??ih#1][\c!level=\commalistelement]% \getparameters [\??ih#1] [\c!criterium=\v!local,#3]% \setvalue{\e!setup#1\e!endsetup}% {\dodoubleempty\dosetupcombinedlist[#1]}% \setvalue{\e!place#1}% {\dodoubleempty\doplacecombinedlist[#1]}% \setvalue{\e!complete#1}% {\dodoubleempty\docompletecombinedlist[#1]}} \def\definecombinedlist {\dotripleempty\dodefinecombinedlist} \def\placecombinedlist {\dodoubleempty\doplacecombinedlist} % new and yet undocumented (used in cocoa qa) % % \setupremaininglistlength % [left=\hss nog~,right=~ingangen] % % \resetremaininglistlength % [section][settings] % % \placelist % [section] % [before=\showremaininglistlength] % % \dorecurse{100}{\section{hans}} \definesystemvariable {ll} % ListLength \def\setupremaininglistlength[#1]% {\getparameters[\??ll][#1]% \globallet\listlengthcounter\!!zerocount} \setupremaininglistlength [\c!left=\hss,\c!right=,\c!number=\v!yes, \c!before=\blank,\c!after=\page, \c!style=\v!smallnormal,\c!color=] \def\resetremaininglistlength {\dodoubleempty\doresetremaininglistlength} \def\doresetremaininglistlength[#1][#2]% {\determinelistcharacteristics[#1][#2]% \determinelistcharacteristics[#1][#2]% \xdef\listlengthcounter{\number\utilitylistlength}} \def\showremaininglistlength {\bgroup \ifnum\listlengthcounter>\plusone \setbox\scratchbox\vbox {\@@llbefore\par\horizontalstrut\par\horizontalstrut\par\@@llafter}% \scratchdimen\pagetotal \advance\scratchdimen \ht\scratchbox \advance\scratchdimen \dp\scratchbox \ifdim\scratchdimen>\pagegoal \@@llbefore \nobreak\hbox to \hsize {\doifnot\@@llnumber\v!yes{\let\listlengthcounter\empty}% \doattributes\??ll\c!style\c!color{\@@llleft\listlengthcounter\@@llright}} \@@llafter \fi \fi \doglobal\decrement\listlengthcounter\relax \egroup} \setupreferencelist [\c!style=\v!normal] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-acc.mkii0000644000175000017500000001503114536300610024623 0ustar hillehille%D \module %D [ file=enco-acc, %D version=2000.20.12, % split from base file %D title=\CONTEXT\ Encoding Macros, %D subtitle=Composed Characters Commands, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Although it is technically possible to redefine the commands %D that are responsible for building composed characters, this %D is seldom needed, since they map onto named glyphs. The %D meaning of these names glyphs may change, although their %D visual appearance seldom will. \startencoding[default] \defineaccent ^ A {\Acircumflex} \defineaccent ^ a {\acircumflex} \defineaccent ^ C {\Ccircumflex} \defineaccent ^ c {\ccircumflex} \defineaccent ^ E {\Ecircumflex} \defineaccent ^ e {\ecircumflex} \defineaccent ^ G {\Gcircumflex} \defineaccent ^ g {\gcircumflex} \defineaccent ^ H {\Hcircumflex} \defineaccent ^ h {\hcircumflex} \defineaccent ^ I {\Icircumflex} \defineaccent ^ i {\icircumflex} \defineaccent ^ {\i} {\icircumflex} \defineaccent ^ J {\Jcircumflex} \defineaccent ^ j {\jcircumflex} \defineaccent ^ {\j} {\jcircumflex} \defineaccent ^ O {\Ocircumflex} \defineaccent ^ o {\ocircumflex} \defineaccent ^ S {\Scircumflex} \defineaccent ^ s {\scircumflex} \defineaccent ^ U {\Ucircumflex} \defineaccent ^ u {\ucircumflex} \defineaccent ^ W {\Wcircumflex} \defineaccent ^ w {\wcircumflex} \defineaccent ^ Y {\Ycircumflex} \defineaccent ^ y {\ycircumflex} \defineaccent ` A {\Agrave} \defineaccent ` a {\agrave} \defineaccent ` E {\Egrave} \defineaccent ` e {\egrave} \defineaccent ` I {\Igrave} \defineaccent ` i {\igrave} \defineaccent ` {\i} {\igrave} \defineaccent ` O {\Ograve} \defineaccent ` o {\ograve} \defineaccent ` U {\Ugrave} \defineaccent ` u {\ugrave} \defineaccent ` Y {\Ygrave} \defineaccent ` y {\ygrave} \defineaccent ~ A {\Atilde} \defineaccent ~ a {\atilde} \defineaccent ~ I {\Itilde} \defineaccent ~ i {\itilde} \defineaccent ~ {\i} {\itilde} \defineaccent ~ O {\Otilde} \defineaccent ~ o {\otilde} \defineaccent ~ U {\Utilde} \defineaccent ~ u {\utilde} \defineaccent " A {\Adiaeresis} \defineaccent " a {\adiaeresis} \defineaccent " E {\Ediaeresis} \defineaccent " e {\ediaeresis} \defineaccent " I {\Idiaeresis} \defineaccent " i {\idiaeresis} \defineaccent " {\i} {\idiaeresis} \defineaccent " O {\Odiaeresis} \defineaccent " o {\odiaeresis} \defineaccent " U {\Udiaeresis} \defineaccent " u {\udiaeresis} \defineaccent " Y {\Ydiaeresis} \defineaccent " y {\ydiaeresis} \defineaccent ' A {\Aacute} \defineaccent ' a {\aacute} \defineaccent ' C {\Cacute} \defineaccent ' c {\cacute} \defineaccent ' E {\Eacute} \defineaccent ' e {\eacute} \defineaccent ' I {\Iacute} \defineaccent ' i {\iacute} \defineaccent ' {\i} {\iacute} \defineaccent ' L {\Lacute} \defineaccent ' l {\lacute} \defineaccent ' N {\Nacute} \defineaccent ' n {\nacute} \defineaccent ' O {\Oacute} \defineaccent ' o {\oacute} \defineaccent ' R {\Racute} \defineaccent ' r {\racute} \defineaccent ' S {\Sacute} \defineaccent ' s {\sacute} \defineaccent ' U {\Uacute} \defineaccent ' u {\uacute} \defineaccent ' Y {\Yacute} \defineaccent ' y {\yacute} \defineaccent ' Z {\Zacute} \defineaccent ' z {\zacute} \defineaccent . C {\Cdotaccent} \defineaccent . c {\cdotaccent} \defineaccent . E {\Edotaccent} \defineaccent . e {\edotaccent} \defineaccent . G {\Gdotaccent} \defineaccent . g {\gdotaccent} \defineaccent . I {\Idotaccent} \defineaccent . i {\idotaccent} \defineaccent . {\i} {\idotaccent} \defineaccent . Z {\Zdotaccent} \defineaccent . z {\zdotaccent} \defineaccent = A {\Amacron} \defineaccent = a {\amacron} \defineaccent = E {\Emacron} \defineaccent = e {\emacron} \defineaccent = I {\Imacron} \defineaccent = i {\imacron} \defineaccent = {\i} {\imacron} \defineaccent = O {\Omacron} \defineaccent = o {\omacron} \defineaccent = U {\Umacron} \defineaccent = u {\umacron} \defineaccent c C {\Ccedilla} \defineaccent c c {\ccedilla} \defineaccent c K {\Kcedilla} \defineaccent c k {\kcedilla} \defineaccent c L {\Lcedilla} \defineaccent c l {\lcedilla} \defineaccent c N {\Ncedilla} \defineaccent c n {\ncedilla} \defineaccent c R {\Rcedilla} \defineaccent c r {\rcedilla} \defineaccent c S {\Scedilla} \defineaccent c s {\scedilla} \defineaccent c T {\Tcedilla} \defineaccent c t {\tcedilla} \defineaccent H O {\Ohungarumlaut} \defineaccent H o {\ohungarumlaut} \defineaccent H u {\uhungarumlaut} \defineaccent H U {\Uhungarumlaut} \defineaccent k A {\Aogonek} \defineaccent k a {\aogonek} \defineaccent k E {\Eogonek} \defineaccent k e {\eogonek} \defineaccent k I {\Iogonek} \defineaccent k i {\iogonek} \defineaccent k U {\Uogonek} \defineaccent k u {\uogonek} \defineaccent r A {\Aring} \defineaccent r a {\aring} \defineaccent r U {\Uring} \defineaccent r u {\uring} \defineaccent u A {\Abreve} \defineaccent u a {\abreve} \defineaccent u E {\Ebreve} \defineaccent u e {\ebreve} \defineaccent u G {\Gbreve} \defineaccent u g {\gbreve} \defineaccent u I {\Ibreve} \defineaccent u i {\ibreve} \defineaccent u {\i} {\ibreve} \defineaccent u O {\Obreve} \defineaccent u o {\obreve} \defineaccent u U {\Ubreve} \defineaccent u u {\ubreve} \defineaccent v C {\Ccaron} \defineaccent v c {\ccaron} \defineaccent v D {\Dcaron} \defineaccent v d {\dcaron} \defineaccent v E {\Ecaron} \defineaccent v e {\ecaron} \defineaccent v L {\Lcaron} \defineaccent v l {\lcaron} \defineaccent v N {\Ncaron} \defineaccent v n {\ncaron} \defineaccent v R {\Rcaron} \defineaccent v r {\rcaron} \defineaccent v S {\Scaron} \defineaccent v s {\scaron} \defineaccent v T {\Tcaron} \defineaccent v t {\tcaron} \defineaccent v Z {\Zcaron} \defineaccent v z {\zcaron} \stopencoding \startencoding[default] % vietnamese: if needed, \useencoding[enco-vna] \stopencoding % For Tobias Burnus, who wants: % % \starttypen % \setupinteraction[state=start] % \setupinteractionscreen[option=bookmark] % \placebookmarks[chapter] % % \starttext \chapter{F\"ur Na\"ive und Na\"\i ve} \stoptext % \stoptypen \startencoding[default] \defineaccent " {\i} {\idiaeresis} \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-l7x.mkii0000644000175000017500000002074514536300610024617 0ustar hillehille%D \module %D [ file=enco-l7x, %D version=2010.01.22, %D title=\CONTEXT\ Encoding Macros, %D subtitle=\LATEX\ L7x Encoding, %D author={Hans Hagen \& Mojca Miklavec}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Encoding vector to support Latvian and Lithuanian. The first %D part is taken from EC encoding, the rest has not been tested %D extensively. \startmapping[l7x] \definecaseswap 25 `I % dotless i (TODO - probably wrong; maybe use \defineuppercasecom) \definecaseswap 156 140 % oeligature \definecaseswap 184 168 % ostroke \definecaseswap 186 170 % rcommaaccent \definecaseswap 191 175 % aeligature \definecaseself 223 % ssharp (this is wrong, but no better way) \definecasemaps 192 to 222 lc +32 uc 0 \definecasemaps 224 to 254 lc 0 uc -32 \resetcaserange 215 to 215 % textmultiply \resetcaserange 247 to 247 % textdiv \stopmapping \startencoding[l7x] \definecharacter textgrave 0 \definecharacter textacute 1 \definecharacter textcircumflex 2 \definecharacter texttilde 3 \definecharacter textdiaeresis 4 \definecharacter texthungarumlaut 5 \definecharacter textring 6 \definecharacter textcaron 7 \definecharacter textbreve 8 \definecharacter textmacron 9 \definecharacter textdotaccent 10 \definecharacter textcedilla 11 \definecharacter textogonek 12 \definecharacter quotesinglebase 13 \definecharacter guilsingleleft 14 \definecharacter guilsingleright 15 \definecharacter quotedblleft 16 \definecharacter quotedblright 17 \definecharacter quotedblbase 18 \definecharacter leftguillemot 19 \definecharacter rightguillemot 20 \definecharacter endash 21 \definecharacter emdash 22 %definecharacter compoundwordmark 23 %definecharacter perthousand 24 \definecharacter dotlessi 25 % or when missing: {j} \definecharacter dotlessj 26 % ff 27 % fi 28 % fl 29 % ffi 30 % ffl 31 %definecharacter textvisiblespace 32 % exclam ! 33 \definecharacter quotedbl 34 % numbersign # 35 % dollar $ 36 \definecharacter percent 37 % ampersand & 38 %definecharacter quotesingle 39 % fake 'm TODO:enco-def!!!! \definecharacter quoteright 39 % parenleft ( 40 % parenright ) 41 % asterisk * 42 % plus + 43 % comma , 44 \definecharacter softhyphen 45 % period . 46 % slash / 47 % 0-9 48-57 % colon : 58 % semicolon ; 59 % less < 60 % equal = 61 % greater > 62 % question ? 63 % at @ 64 % A-Z 65-90 % bracketleft [ 91 \definecharacter textbackslash 92 % bracketright ] 93 \definecharacter textasciicircum 94 \definecharacter textunderscore 95 \definecharacter quoteleft 96 % a-z 97-122 \definecharacter textbraceleft 123 \definecharacter textbraceright 125 \definecharacter textasciitilde 126 % .notdef 127 \definecharacter texteuro 128 % .notdef 129 \definecharacter quotesinglebase 130 \definecharacter textflorin 131 \definecharacter fhook 131 \definecharacter quotedblbase 132 \definecharacter textellipsis 133 \definecharacter textdag 134 \definecharacter textddag 135 % .notdef 136 \definecharacter perthousand 137 % .notdef 138 \definecharacter guilsingleleft 139 \definecharacter OEligature 140 % TODO: also \OE??? \definecharacter textdiaeresis 141 \definecharacter textcaron 142 \definecharacter textcedilla 143 % .notdef 144 \definecharacter quoteleft 145 \definecharacter quoteright 146 \definecharacter quotedblleft 147 \definecharacter quotedblright 148 \definecharacter textbullet 149 \definecharacter endash 150 \definecharacter emdash 151 % .notdef 152 \definecharacter trademark 153 % .notdef 154 \definecharacter guilsingleright 155 \definecharacter oeligature 156 \definecharacter textmacron 157 \definecharacter textogonek 158 % .notdef 159 %definecharacter space 160 % TODO!!! \definecharacter quotedblright 161 \definecharacter textcent 162 \definecharacter textsterling 163 \definecharacter textcurrency 164 \definecharacter quotedblbase 165 \definecharacter textbrokenbar 166 \definecharacter sectionmark 167 \definecharacter Ostroke 168 \definecharacter copyright 169 \definecharacter Rcommaaccent 170 \definecharacter leftguillemot 171 \definecharacter textlognot 172 %definecharacter softhyphen 173 % -> 45 (TODO!!!) \definecharacter registered 174 \definecharacter AEligature 175 \definecharacter textdegree 176 \definecharacter textpm 177 \definecharacter twosuperior 178 \definecharacter threesuperior 179 \definecharacter quotedblleft 180 \definecharacter textmu 181 \definecharacter paragraphmark 182 \definecharacter periodcentered 183 \definecharacter ostroke 184 \definecharacter onesuperior 185 \definecharacter rcommaaccent 186 \definecharacter rightguillemot 187 \definecharacter onequarter 188 \definecharacter onehalf 189 \definecharacter threequarter 190 \definecharacter aeligature 191 \definecharacter Aogonek 192 \definecharacter Iogonek 193 \definecharacter Amacron 194 \definecharacter Cacute 195 \definecharacter Adiaeresis 196 \definecharacter Aring 197 \definecharacter Eogonek 198 \definecharacter Emacron 199 \definecharacter Ccaron 200 \definecharacter Eacute 201 \definecharacter Zacute 202 \definecharacter Edotaccent 203 \definecharacter Gcommaaccent 204 \definecharacter Kcommaaccent 205 \definecharacter Imacron 206 \definecharacter Lcommaaccent 207 \definecharacter Scaron 208 \definecharacter Nacute 209 \definecharacter Ncommaaccent 210 \definecharacter Oacute 211 \definecharacter Omacron 212 \definecharacter Otilde 213 \definecharacter Odiaeresis 214 \definecharacter textmultiply 215 \definecharacter Uogonek 216 \definecharacter Lstroke 217 \definecharacter Sacute 218 \definecharacter Umacron 219 \definecharacter Udiaeresis 220 \definecharacter Zdotaccent 221 \definecharacter Zcaron 222 \definecharacter ssharp 223 \definecharacter aogonek 224 \definecharacter iogonek 225 \definecharacter amacron 226 \definecharacter cacute 227 \definecharacter adiaeresis 228 \definecharacter aring 229 \definecharacter eogonek 230 \definecharacter emacron 231 \definecharacter ccaron 232 \definecharacter eacute 233 \definecharacter zacute 234 \definecharacter edotaccent 235 \definecharacter gcommaaccent 236 \definecharacter kcommaaccent 237 \definecharacter imacron 238 \definecharacter lcommaaccent 239 \definecharacter scaron 240 \definecharacter nacute 241 \definecharacter ncommaaccent 242 \definecharacter oacute 243 \definecharacter omacron 244 \definecharacter otilde 245 \definecharacter odiaeresis 246 \definecharacter textdiv 247 \definecharacter uogonek 248 \definecharacter lstroke 249 \definecharacter sacute 250 \definecharacter umacron 251 \definecharacter udiaeresis 252 \definecharacter zdotaccent 253 \definecharacter zcaron 254 \definecharacter quoteright 255 \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/tabl-tsp.mkii0000644000175000017500000003147414536300610024712 0ustar hillehille%D \module %D [ file=tabl-tsp, %D version=2000.10.20, %D title=\CONTEXT\ Table Macros, %D subtitle=Splitting, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Table Macros / Splitting} %D The code in this file is move here from other places. \unprotect % only to be used with single tokens (will be prim) \ifx\htdp\undefined \def\htdp#1{\dimexpr\ht#1+\dp#1\relax} \fi %D Although the name resembles floats, and therefore this should be %D a page module, we decided to make it core functionality because the %D table code depends on it. Othrwise there would be too much %D overloading afterwards involved. Actually, the float part is rather %D generic and not that related to floats. % \splitfloat [settings] {\placetable[optional args]{test}} {content} \definenumber [\??si] [\c!way=\v!by\v!text, \c!conversion=\@@siconversion] \def\setupfloatsplitting {\dodoubleargument\getparameters[\??si]} \newif\ifinsidesplitfloat % will become chardef \newtoks \everysplitfloatsetup \def\splitfloat {\dosingleempty\dosplitfloat} \ifx\floatcaptionsuffix\undefined \else \let\floatcaptionsuffix\empty % will become \splitfloatcaptionsuffix \fi \def\extrasplitfloatlines{0} \def\dosplitfloat[#1]#2% nog dubbele refs {\bgroup \global\setfalse\splitfloatdone \aftergroup\checksplitfloat \insidefloattrue \insidesplitfloattrue \getparameters[\??si][#1]% \resetnumber[\??si]% \def\floatcaptionsuffix{\convertednumber[\??si]}% \let\extrasplitfloatlines\@@silines \the\everysplitfloatsetup \def\splitfloatcommand{#2}% \global\settrue \onlyonesplitofffloat \global\setfalse\somenextplitofffloat \dopushsavedfloats \@@sibefore \let\next} % \bgroup \def\checksplitfloat {\ifconditional\splitfloatdone\else \blank{\tttf \getmessage\m!floatblocks{13}\empty}\blank \showmessage\m!floatblocks{13}\empty \fi} \settrue \onlyonesplitofffloat \setfalse\somenextplitofffloat %D When \type {inbetween} is made empty instead of the %D default \type {\page}, we will get delayed flushing %D and text may continue below the graphic. %D %D \starttyping %D \dorecurse{2}{\input tufte } %D %D \splitfloat[lines=auto,inbetween=] %D {\placetable{\dorecurse{5}{test\recurselevel\endgraf}}} %D {\bTABLE[split=yes] %D \bTR \bTD 11 \eTD \bTD \input tufte \eTD \eTR %D \bTR \bTD 12 \eTD \bTD \input zapf \eTD \eTR %D \bTR \bTD 13 \eTD \bTD \input bryson \eTD \eTR %D \bTR \bTD 14 \eTD \bTD test \eTD \eTR %D \bTR \bTD 21 \eTD \bTD \input tufte \eTD \eTR %D \bTR \bTD 22 \eTD \bTD \input zapf \eTD \eTR %D \bTR \bTD 23 \eTD \bTD \input bryson \eTD \eTR %D \bTR \bTD 24 \eTD \bTD test \eTD \eTR %D \bTR \bTD 31 \eTD \bTD \input tufte \eTD \eTR %D \bTR \bTD 32 \eTD \bTD \input zapf \eTD \eTR %D \bTR \bTD 33 \eTD \bTD \input bryson \eTD \eTR %D \bTR \bTD 34 \eTD \bTD test \eTD \eTR %D \eTABLE} %D %D \dorecurse{10}{\input tufte } %D \stoptyping \newconditional\splitfloatdone \def\dodowithsplitofffloat {\dowithnextbox {\forgetall \dontcomplain \global\settrue\splitfloatdone \chardef\nodelocationmode\zerocount % bypass auto-renumbering \incrementnumber[\??si]% \ifcase\rawnumber[\??si]\or \ifconditional\onlyonesplitofffloat \let\floatcaptionsuffix\empty \fi \fi \bgroup \ifconditional\somenextplitofffloat \settrue\retainfloatnumber \notesenabledfalse % best here, experimental, brrr; test with note in caption \else \setfalse\retainfloatnumber \fi \splitfloatcommand{\box\nextbox}% \egroup \ifconditional\somenextplitofffloat \doifelsenothing\@@siinbetween {\ifconditional\splitfloatfirstdone\else\page\fi} \@@siinbetween \else \@@siafter \dopopsavedfloats \doflushsavedfloats \fi \global\settrue\splitfloatfirstdone}% \vbox} \def\nodowithsplitofffloat {\dowithnextbox {\forgetall \dontcomplain \box\nextbox % maybe an option to unvbox \global\settrue\splitfloatfirstdone}% \vbox} \def\dochecksplitofffloat#1% box {\ifinsidesplitfloat \ifdim\ht#1=\zeropoint \global\setfalse\somenextplitofffloat \else \global\settrue \somenextplitofffloat \global\setfalse\onlyonesplitofffloat \fi \fi} \def\analyzesplitfloatcaption#1% depends on page-flt {\doif\extrasplitfloatlines\v!auto {\bgroup \settrue\retainfloatnumber \chardef\nodelocationmode\zerocount \forcelocalfloats \setuplocalfloats[\c!before=,\c!after=,\c!inbetween=]% \splitfloatcommand{\hbox to \wd#1{\strut}}% dummy line \setbox\scratchbox\vbox{\flushlocalfloats}% \getnoflines{\ht\scratchbox}% \resetlocalfloats \advance\noflines\minusone % compensate dummy line \expanded{\egroup\noexpand\edef\noexpand\extrasplitfloatlines{\the\noflines}}}} % \def\analyzesplitfloatcaption#1% % {\edef\extrasplitfloatlines{11}} \def\dowithsplitofffloat % nextbox {\ifinsidesplitfloat \expandafter\dodowithsplitofffloat \else \expandafter\nodowithsplitofffloat \fi} \def\doifnotinsidesplitfloat {\ifinsidesplitfloat\expandafter\gobbleoneargument\fi} %D Some defaults: \setupfloatsplitting [\c!conversion=\v!character, % \v!romannumerals \c!lines=3, \c!before=, \c!inbetween=\page, \c!after=] %D Table splitter, on top of previous code: \newbox\tsplitcontent \newbox\tsplitresult \newbox\tsplithead \newbox\tsplitnext \newbox\tsplittail \def\resettsplit{% only \def's starting a a new line are seen by the dep checker \def\tsplitminimumfreelines{0}% \def\tsplitminimumfreespace{0pt}% \setbox\tsplitcontent \vbox{}% \setbox\tsplitresult \vbox{}% \setbox\tsplithead \vbox{}% \setbox\tsplitnext \vbox{}% \setbox\tsplittail \vbox{}% \let\tsplitbeforeresult\donothing \let\tsplitafterresult \donothing \let\tsplitinbetween \donothing \let\tsplitbefore \donothing \let\tsplitafter \donothing \let\postprocesstsplit \donothing } \resettsplit % todo: keep tail to rest, so we need a lookahead \newconditional\splitfloatfirstdone \def\handletsplit {\analyzesplitfloatcaption\tsplitcontent \global\setfalse\splitfloatfirstdone \testpagesync % new, sync, but still tricky [\tsplitminimumfreelines] [\dimexpr\tsplitminimumfreespace+\extrasplitfloatlines\lineheight\relax]% \setbox\scratchbox\vbox{\tsplitinbetween}% \edef\tsplitinbetweenheight{\the\htdp\scratchbox}% etex \!!doneafalse \doloop {\ifinsidecolumns % brrr, assumes empty columns \global\setfalse\splitfloatfirstdone \scratchdimen\textheight \!!donectrue \else \ifconditional\splitfloatfirstdone \scratchdimen\textheight \!!donectrue \else\ifdim\pagegoal<\maxdimen \scratchdimen\dimexpr\pagegoal-\pagetotal\relax \!!donecfalse \else \scratchdimen\textheight \!!donectrue \fi\fi \fi \scratchdimen\dimexpr\scratchdimen-\tsplitinbetweenheight-\tsplitminimumfreespace-\extrasplitfloatlines\lineheight\relax \ifdim\htdp\tsplittail>\zeropoint \advance\scratchdimen-\htdp\tsplittail \fi \setbox\tsplitresult\vbox {\ifdim\ht\tsplithead>\zeropoint \unvcopy\tsplithead \tsplitinbetween \fi}% \if!!donea\else\ifdim\ht\tsplitnext>\zeropoint \setbox\tsplithead\box\tsplitnext \fi\fi \!!doneatrue \ifdim\ht\tsplitresult>\zeropoint \!!donedtrue % table head \else \!!donedfalse % no tablehead \fi \splittopskip\zeropoint \doloop {\setbox\scratchbox\vsplit\tsplitcontent to \onepoint % \lineheight \setbox\scratchbox\vbox{\unvbox\scratchbox}% \ifdim\dimexpr\scratchdimen-\htdp\scratchbox-\htdp\tsplitresult\relax>\zeropoint \setbox\tsplitresult\vbox {\unvbox\tsplitresult \tsplitinbetween \unvbox\scratchbox}% \ifvoid\tsplitcontent \exitloop \fi \else\if!!doned % we only have a tablehead so far \setbox\tsplitresult\vbox{\unvbox\tsplitresult\unvbox\scratchbox}% \exitloop \else\if!!donec % we have text height available, but the (one) cell is too % large to fit, so, in order to avoid loops/deadcycles we do: \setbox\tsplitresult\vbox {\unvbox\tsplitresult \tsplitinbetween \unvbox\scratchbox}% \exitloop \else \setbox\tsplitcontent\vbox {\unvbox\scratchbox \tsplitinbetween \ifvoid\tsplitcontent\else\unvbox\tsplitcontent\fi}% \exitloop \fi\fi\fi \!!donedfalse \!!donecfalse}% \postprocesstsplit \dochecksplitofffloat\tsplitcontent \ifvoid\tsplitcontent \setbox\tsplitresult\vbox {\unvbox\tsplitresult \tsplitinbetween \unvcopy\tsplittail}% \dowithsplitofffloat{\tsplitbeforeresult\box\tsplitresult\tsplitafterresult}% \doifnotinsidesplitfloat\tsplitafter \endgraf \exitloop \else % hack \ifdim\pagegoal<\maxdimen \global\pagegoal\dimexpr\pagegoal+\lineheight\relax % etex \fi % brrr \ifdim\ht\tsplitresult>\zeropoint \setbox\tsplitresult\vbox {\unvbox\tsplitresult \tsplitinbetween \unvcopy\tsplittail}% \dowithsplitofffloat{\tsplitbeforeresult\box\tsplitresult\tsplitafterresult}% \doifnotinsidesplitfloat\tsplitafter \endgraf \fi \ifinsidecolumns \doifnotinsidesplitfloat\goodbreak \else \doifnotinsidesplitfloat\page \fi \fi}% \global\setfalse\splitfloatfirstdone} % we can use this one for tests \protect \endinput % test cases % \setupTABLE[split=repeat] % % \input tufte \endgraf % \splitfloat[lines=11] % {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}} % {\bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE} % \input tufte \page % % \input tufte \endgraf % \splitfloat[lines=0] % {} % {\bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE} % \input tufte \endgraf \page % % \input tufte \endgraf % \bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE % \input tufte \page % \setuptabulate[split=yes] % % \input tufte \endgraf % \splitfloat[lines=11] % {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}} % {\starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate} % \input tufte \page % % \input tufte \endgraf % \splitfloat[lines=0] % {} % {\starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate} % \input tufte \page % % \input tufte \endgraf % \starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate % \input tufte \page % \setuptables[split=yes] % % \newtoks\TestToks % % \TestToks\emptytoks % \appendtoks\starttablehead\to\TestToks % \dorecurse{3}{\appendtoks\VL head \VL head \VL \SR\to\TestToks} % \appendtoks\stoptablehead\to\TestToks % \appendtoks\starttabletail\to\TestToks % \dorecurse{3}{\appendtoks\VL tail \VL tail \VL \SR\to\TestToks} % \appendtoks\stoptabletail\to\TestToks % \appendtoks\starttables[|c|c|]\to\TestToks % \dorecurse{100}{\appendtoks\VL test \VL test \VL \SR\to\TestToks} % \appendtoks\stoptables\to\TestToks % % \input tufte \endgraf % \splitfloat[lines=auto] % [lines=11] % {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}} % {\the\TestToks} % \input tufte \page % % \input tufte \endgraf % \splitfloat[lines=0] % {} % {\the\TestToks} % \input tufte \page % % \input tufte \endgraf % \the\TestToks % \input tufte \page % % multiple floats % % \starttext % \dorecurse{3}{\input tufte } \endgraf % \dorecurse{5}{\placefigure{}{\framed[height=.5\textheight]{}}} % \splitfloat[lines=auto,inbetween=] % {\placetable{\dorecurse{5}{test\recurselevel\endgraf}}} % {\bTABLE[split=yes] % \bTR \bTD 11 \eTD \bTD \input tufte \eTD \eTR % \bTR \bTD 12 \eTD \bTD \input zapf \eTD \eTR % \bTR \bTD 13 \eTD \bTD \input bryson \eTD \eTR % \bTR \bTD 14 \eTD \bTD test \eTD \eTR % \bTR \bTD 21 \eTD \bTD \input tufte \eTD \eTR % \bTR \bTD 22 \eTD \bTD \input zapf \eTD \eTR % \bTR \bTD 23 \eTD \bTD \input bryson \eTD \eTR % \bTR \bTD 24 \eTD \bTD test \eTD \eTR % \bTR \bTD 31 \eTD \bTD \input tufte \eTD \eTR % \bTR \bTD 32 \eTD \bTD \input zapf \eTD \eTR % \bTR \bTD 33 \eTD \bTD \input bryson \eTD \eTR % \bTR \bTD 34 \eTD \bTD test \eTD \eTR % \eTABLE} % \dorecurse{10}{\input tufte } % \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-cel.mkii0000644000175000017500000000150614536300610024637 0ustar hillehille%D \module %D [ file=lang-cel, %D version=1997.09.03, %D title=\CONTEXT\ Language Macros, %D subtitle=Celtic Languages, %D author=Hans Hagen / Tobias Burnus, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Celtic Languages} %D The framework of this module is set up by Hans Hagen while %D many of the first translations were done by Tobias. Later %D on, corrections were made by users. If you have suggestions, %D or feel that your name missing here, don't hesitate to send %D us an email. % Breton, Welsh, Irish, Manx, Scottish Gaelic \unprotect \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-cs.mkii0000644000175000017500000032222514567411714024561 0ustar hillehille% this file is auto-generated, don't edit this file % % definitions for interface variables for language cs % \setinterfacevariable{Addition}{Pridavek} \setinterfacevariable{Alphabetic}{Alphabetic} \setinterfacevariable{Balloon}{Bublinka} \setinterfacevariable{Camel}{Camel} \setinterfacevariable{Cap}{Kap} \setinterfacevariable{Capital}{Kapitalky} \setinterfacevariable{Character}{Pismeno} \setinterfacevariable{Characters}{Pismena} \setinterfacevariable{CloseDocument}{ZavritDokument} \setinterfacevariable{ExitViewer}{UkoncitProhlizec} \setinterfacevariable{FirstPage}{PrvniStrana} \setinterfacevariable{FitHeight}{FitHeight} \setinterfacevariable{FitWidth}{FitWidth} \setinterfacevariable{GotoPage}{JdiNaStranku} \setinterfacevariable{Greek}{Recky} \setinterfacevariable{Help}{Napoveda} \setinterfacevariable{HideField}{SkryjPole} \setinterfacevariable{HideLayer}{HideLayer} \setinterfacevariable{Key}{Klavesa} \setinterfacevariable{LastPage}{PosledniStrana} \setinterfacevariable{LoadForm}{NacistFormular} \setinterfacevariable{MONTH}{MESIC} \setinterfacevariable{New}{Novy} \setinterfacevariable{NextJump}{NasledujiciSkok} \setinterfacevariable{NextPage}{DalsiStrana} \setinterfacevariable{Numbers}{Cisla} \setinterfacevariable{OpenNamedDocument}{OpenNamedDocument} \setinterfacevariable{Ordinal}{Ordinal} \setinterfacevariable{Paragraph}{Odstavec} \setinterfacevariable{PauseMovie}{PozastavitFilm} \setinterfacevariable{PauseRendering}{PauseRendering} \setinterfacevariable{PauseSound}{PozastavitZvuk} \setinterfacevariable{PreviousJump}{PredchoziSkok} \setinterfacevariable{PreviousPage}{PredchoziStrana} \setinterfacevariable{PrintDocument}{VytisknoutDokument} \setinterfacevariable{Query}{Query} \setinterfacevariable{QueryAgain}{QueryAgain} \setinterfacevariable{ResetForm}{ResetFormulare} \setinterfacevariable{ResumeMovie}{PokracovatFilm} \setinterfacevariable{ResumeRendering}{ResumeRendering} \setinterfacevariable{ResumeSound}{PokracovatZvuk} \setinterfacevariable{Romannumerals}{Rimskecislice} \setinterfacevariable{SaveDocument}{UlozitDokument} \setinterfacevariable{SaveForm}{UlozitFormular} \setinterfacevariable{SaveNamedDocument}{SaveNamedDocument} \setinterfacevariable{SearchAgain}{HledatZnovu} \setinterfacevariable{SearchDocument}{ProhledatDokument} \setinterfacevariable{ShowBookmarks}{UkazZalozky} \setinterfacevariable{ShowField}{UkazPole} \setinterfacevariable{ShowThumbs}{UkazNahledy} \setinterfacevariable{StartMovie}{SpustitFilm} \setinterfacevariable{StartRendering}{StartRendering} \setinterfacevariable{StartSound}{StartZvuk} \setinterfacevariable{StopMovie}{ZastavitFilm} \setinterfacevariable{StopRendering}{StopRendering} \setinterfacevariable{StopSound}{StopZvuk} \setinterfacevariable{SubmitForm}{PoslatFormular} \setinterfacevariable{ToggleLayer}{ToggleLayer} \setinterfacevariable{ToggleViewer}{ZmenitProhlizec} \setinterfacevariable{URL}{URL} \setinterfacevariable{VideLayer}{VideLayer} \setinterfacevariable{ViewerHelp}{NapovedaProhlizece} \setinterfacevariable{WEEKDAY}{VSEDNIDEN} \setinterfacevariable{WORD}{SLOVO} \setinterfacevariable{WORDS}{SLOVA} \setinterfacevariable{Word}{Slovo} \setinterfacevariable{Words}{Slova} \setinterfacevariable{abbreviation}{zkratka} \setinterfacevariable{abbreviations}{zkratky} \setinterfacevariable{absolute}{absolutni} \setinterfacevariable{action}{akce} \setinterfacevariable{after}{po} \setinterfacevariable{all}{vse} \setinterfacevariable{alphabetic}{alphabetic} \setinterfacevariable{always}{vzdy} \setinterfacevariable{anchor}{anchor} \setinterfacevariable{and}{and} \setinterfacevariable{answerarea}{answerarea} \setinterfacevariable{append}{append} \setinterfacevariable{appendices}{dodatky} \setinterfacevariable{appendix}{dodatek} \setinterfacevariable{april}{duben} \setinterfacevariable{aside}{aside} \setinterfacevariable{atleftmargin}{atleftmargin} \setinterfacevariable{atmargin}{naokraji} \setinterfacevariable{atpage}{nastrance} \setinterfacevariable{atrightmargin}{atrightmargin} \setinterfacevariable{attachment}{attachment} \setinterfacevariable{august}{srpen} \setinterfacevariable{author}{autor} \setinterfacevariable{auto}{auto} \setinterfacevariable{autointro}{autouvod} \setinterfacevariable{back}{zpet} \setinterfacevariable{background}{pozadi} \setinterfacevariable{backmatter}{epilogy} \setinterfacevariable{backpart}{epilog} \setinterfacevariable{backspace}{zpetnamezera} \setinterfacevariable{backward}{zpet} \setinterfacevariable{bbl}{bbl} \setinterfacevariable{before}{pred} \setinterfacevariable{begin}{begin} \setinterfacevariable{bib}{bib} \setinterfacevariable{big}{velke} \setinterfacevariable{bigbodyfont}{bigbodyfont} \setinterfacevariable{bigger}{bigger} \setinterfacevariable{bigpreference}{vysokapriorita} \setinterfacevariable{blank}{prazdny} \setinterfacevariable{block}{block} \setinterfacevariable{blockquote}{blockquote} \setinterfacevariable{bodymatter}{hlavnicasti} \setinterfacevariable{bodypart}{hlavnicast} \setinterfacevariable{bold}{tucne} \setinterfacevariable{bolditalic}{tucnekurzivni} \setinterfacevariable{boldslanted}{tucnesklonene} \setinterfacevariable{bookmark}{zalozka} \setinterfacevariable{both}{obe} \setinterfacevariable{bothtext}{bothtext} \setinterfacevariable{bottom}{spodek} \setinterfacevariable{box}{box} \setinterfacevariable{brief}{brief} \setinterfacevariable{broad}{siroky} \setinterfacevariable{buffer}{buffer} \setinterfacevariable{by}{skrz} \setinterfacevariable{calligraphic}{kaligraficke} \setinterfacevariable{camel}{camel} \setinterfacevariable{cap}{kap} \setinterfacevariable{capital}{kapitalky} \setinterfacevariable{category}{category} \setinterfacevariable{cd:character}{cd:character} \setinterfacevariable{cd:font}{cd:font} \setinterfacevariable{center}{center} \setinterfacevariable{centerlast}{centerlast} \setinterfacevariable{chapter}{kapitola} \setinterfacevariable{character}{pismeno} \setinterfacevariable{characters}{pismena} \setinterfacevariable{chemical}{chemical} \setinterfacevariable{chemicals}{chemicals} \setinterfacevariable{chemistry}{chemistry} \setinterfacevariable{cite}{cite} \setinterfacevariable{closed}{closed} \setinterfacevariable{collapsed}{collapsed} \setinterfacevariable{color}{barevne} \setinterfacevariable{column}{column} \setinterfacevariable{columns}{sloupce} \setinterfacevariable{combination}{combination} \setinterfacevariable{command}{prikaz} \setinterfacevariable{commands}{prikazy} \setinterfacevariable{comment}{komentar} \setinterfacevariable{component}{komponenta} \setinterfacevariable{compress}{compress} \setinterfacevariable{compressseparator}{compressseparator} \setinterfacevariable{compressstopper}{compressstopper} \setinterfacevariable{concept}{koncept} \setinterfacevariable{construction}{construction} \setinterfacevariable{content}{obsah} \setinterfacevariable{contents}{obsah} \setinterfacevariable{continue}{pokracovat} \setinterfacevariable{continued}{continued} \setinterfacevariable{controls}{controls} \setinterfacevariable{conversion}{konverze} \setinterfacevariable{current}{aktualni} \setinterfacevariable{cutspace}{cutspace} \setinterfacevariable{dataset}{dataset} \setinterfacevariable{date}{datum} \setinterfacevariable{day}{den} \setinterfacevariable{december}{prosinec} \setinterfacevariable{default}{implicitni} \setinterfacevariable{depth}{podlehloubky} \setinterfacevariable{description}{popis} \setinterfacevariable{disable}{zablokovat} \setinterfacevariable{display}{obrazovka} \setinterfacevariable{document}{document} \setinterfacevariable{dot}{tecka} \setinterfacevariable{doublesided}{dvoustranny} \setinterfacevariable{down}{down} \setinterfacevariable{each}{kazdy} \setinterfacevariable{edge}{hrana} \setinterfacevariable{effective}{effective} \setinterfacevariable{eight}{eight} \setinterfacevariable{embed}{embed} \setinterfacevariable{empty}{prazdne} \setinterfacevariable{enable}{enable} \setinterfacevariable{end}{end} \setinterfacevariable{endnote}{endnote} \setinterfacevariable{enumeration}{vycet} \setinterfacevariable{environment}{prostredi} \setinterfacevariable{even}{sude} \setinterfacevariable{explicit}{explicit} \setinterfacevariable{export}{export} \setinterfacevariable{external}{externi} \setinterfacevariable{extremestretch}{extremestretch} \setinterfacevariable{fact}{fakt} \setinterfacevariable{fallback}{fallback} \setinterfacevariable{february}{unor} \setinterfacevariable{field}{field} \setinterfacevariable{figure}{obrazek} \setinterfacevariable{figures}{obrazky} \setinterfacevariable{file}{soubor} \setinterfacevariable{final}{finalni} \setinterfacevariable{first}{prvni} \setinterfacevariable{firstcolumn}{firstcolumn} \setinterfacevariable{firstpage}{prvnistranka} \setinterfacevariable{firstsubpage}{prvnipodstranka} \setinterfacevariable{fit}{prizpusobive} \setinterfacevariable{five}{pet} \setinterfacevariable{fix}{fixuj} \setinterfacevariable{fixed}{fixne} \setinterfacevariable{flexible}{prizpusobive} \setinterfacevariable{float}{plvouciobjekt} \setinterfacevariable{flushbackward}{flushbackward} \setinterfacevariable{flushforward}{flushforward} \setinterfacevariable{flushinner}{flushinner} \setinterfacevariable{flushleft}{flushleft} \setinterfacevariable{flushouter}{flushouter} \setinterfacevariable{flushright}{flushright} \setinterfacevariable{followingpage}{followingpage} \setinterfacevariable{font}{font} \setinterfacevariable{footer}{upati} \setinterfacevariable{footnote}{poznamkapodcarou} \setinterfacevariable{force}{sila} \setinterfacevariable{foreground}{popredi} \setinterfacevariable{formula}{rovnice} \setinterfacevariable{formulas}{rovnice} \setinterfacevariable{forward}{vpred} \setinterfacevariable{four}{ctyri} \setinterfacevariable{fractions}{fractions} \setinterfacevariable{frame}{ramecek} \setinterfacevariable{framedtext}{oramovanytext} \setinterfacevariable{friday}{patek} \setinterfacevariable{frontmatter}{prednicasti} \setinterfacevariable{frontpart}{prednicast} \setinterfacevariable{fullhz}{fullhz} \setinterfacevariable{global}{globalne} \setinterfacevariable{granular}{granular} \setinterfacevariable{graphic}{graf} \setinterfacevariable{graphics}{grafy} \setinterfacevariable{gray}{seda} \setinterfacevariable{greek}{recky} \setinterfacevariable{grid}{mrizka} \setinterfacevariable{halfline}{pulradku} \setinterfacevariable{handwritten}{rukopisne} \setinterfacevariable{hang}{zaveseni} \setinterfacevariable{hanging}{visici} \setinterfacevariable{hangingboth}{hangingboth} \setinterfacevariable{hangleft}{hangleft} \setinterfacevariable{hangright}{hangright} \setinterfacevariable{head}{hlavicka} \setinterfacevariable{header}{zahlavi} \setinterfacevariable{headintext}{headintext} \setinterfacevariable{height}{vyska} \setinterfacevariable{helptext}{textnapovedy} \setinterfacevariable{hencefore}{vyse} \setinterfacevariable{here}{zde} \setinterfacevariable{hereafter}{nize} \setinterfacevariable{hidden}{skryte} \setinterfacevariable{hiddenbar}{hiddenbar} \setinterfacevariable{hiding}{skryt} \setinterfacevariable{high}{vysoko} \setinterfacevariable{horizontal}{horizontalne} \setinterfacevariable{hyphenated}{hyphenated} \setinterfacevariable{hz}{hz} \setinterfacevariable{inbetween}{mezi} \setinterfacevariable{index}{rejstrik} \setinterfacevariable{indices}{rejstriky} \setinterfacevariable{inherit}{inherit} \setinterfacevariable{ininner}{ininner} \setinterfacevariable{ininneredge}{ininneredge} \setinterfacevariable{ininnermargin}{ininnermargin} \setinterfacevariable{inleft}{ivlevo} \setinterfacevariable{inleftedge}{nalevo} \setinterfacevariable{inleftmargin}{nalevyokraj} \setinterfacevariable{inline}{inline} \setinterfacevariable{inmargin}{naokraji} \setinterfacevariable{inner}{uvnitr} \setinterfacevariable{inneredge}{inneredge} \setinterfacevariable{innermargin}{innermargin} \setinterfacevariable{inother}{inother} \setinterfacevariable{inouter}{inouter} \setinterfacevariable{inouteredge}{inouteredge} \setinterfacevariable{inoutermargin}{inoutermargin} \setinterfacevariable{inright}{ivpravo} \setinterfacevariable{inrightedge}{napravo} \setinterfacevariable{inrightmargin}{napravyokraj} \setinterfacevariable{interaction}{interakce} \setinterfacevariable{interactionmenu}{interaktivnimenu} \setinterfacevariable{interactive}{interactive} \setinterfacevariable{intermezzi}{intermezzi} \setinterfacevariable{intermezzo}{intermezzo} \setinterfacevariable{intext}{dotextu} \setinterfacevariable{intro}{uvod} \setinterfacevariable{invertedshort}{invertedshort} \setinterfacevariable{italic}{kurziva} \setinterfacevariable{italicbold}{kurzivnitucne} \setinterfacevariable{item}{polozka} \setinterfacevariable{itemize}{vycet} \setinterfacevariable{its}{pol} \setinterfacevariable{january}{leden} \setinterfacevariable{joinedup}{spojeno} \setinterfacevariable{july}{cervenec} \setinterfacevariable{june}{cerven} \setinterfacevariable{keep}{drzet} \setinterfacevariable{keeptogether}{keeptogether} \setinterfacevariable{kerncharacters}{kerncharacters} \setinterfacevariable{knockout}{knockout} \setinterfacevariable{label}{popisek} \setinterfacevariable{landscape}{nasirku} \setinterfacevariable{last}{posledni} \setinterfacevariable{lastcolumn}{lastcolumn} \setinterfacevariable{lastpage}{poslednistrana} \setinterfacevariable{lastpagenumber}{lastpagenumber} \setinterfacevariable{lastsubpage}{poslaednipodstranka} \setinterfacevariable{layer}{layer} \setinterfacevariable{left}{vlevo} \setinterfacevariable{leftedge}{levahrana} \setinterfacevariable{lefthanging}{lefthanging} \setinterfacevariable{leftmargin}{levyokraj} \setinterfacevariable{leftpage}{levastranka} \setinterfacevariable{lefttext}{textvlevo} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legenda} \setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{letterspacing}{letterspacing} \setinterfacevariable{limit}{limit} \setinterfacevariable{line}{radek} \setinterfacevariable{linenote}{linenote} \setinterfacevariable{lines}{radky} \setinterfacevariable{linked}{linked} \setinterfacevariable{list}{seznam} \setinterfacevariable{local}{lokalne} \setinterfacevariable{localenvironment}{lokalnihoprostredi} \setinterfacevariable{logo}{logo} \setinterfacevariable{logos}{loga} \setinterfacevariable{lohi}{nivy} \setinterfacevariable{long}{long} \setinterfacevariable{loose}{uvolnene} \setinterfacevariable{low}{nizko} \setinterfacevariable{ls}{ls} \setinterfacevariable{makeup}{zlom} \setinterfacevariable{mar}{mar} \setinterfacevariable{march}{brezen} \setinterfacevariable{margin}{marginalie} \setinterfacevariable{marginedge}{textovahrana} \setinterfacevariable{margintext}{marginalnitext} \setinterfacevariable{margintitle}{titulmarginalie} \setinterfacevariable{marking}{znaceni} \setinterfacevariable{math}{math} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathematics}{mathematika} \setinterfacevariable{mathmatrix}{mathmatrix} \setinterfacevariable{mathnote}{mathnote} \setinterfacevariable{max}{max} \setinterfacevariable{maxdepth}{maxdepth} \setinterfacevariable{maxheight}{maxheight} \setinterfacevariable{maxwidth}{maxwidth} \setinterfacevariable{may}{kveten} \setinterfacevariable{mediaeval}{stredoveky} \setinterfacevariable{medium}{stredni} \setinterfacevariable{middle}{nastred} \setinterfacevariable{min}{min} \setinterfacevariable{mindepth}{mindepth} \setinterfacevariable{minheight}{minvyska} \setinterfacevariable{minwidth}{minsirka} \setinterfacevariable{mirrored}{zrcadleno} \setinterfacevariable{mixed}{mixed} \setinterfacevariable{monday}{pondeli} \setinterfacevariable{mono}{mono} \setinterfacevariable{monobold}{monotucne} \setinterfacevariable{mononormal}{mononormal} \setinterfacevariable{month}{mesic} \setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{jmeno} \setinterfacevariable{narrow}{uzky} \setinterfacevariable{negative}{negativ} \setinterfacevariable{never}{nikdy} \setinterfacevariable{new}{novy} \setinterfacevariable{next}{dalsi} \setinterfacevariable{nextevenpage}{dalsisudastranka} \setinterfacevariable{nextoddpage}{dalsilichastranka} \setinterfacevariable{nextpage}{dalsistranka} \setinterfacevariable{nextsubpage}{dalsipodstranka} \setinterfacevariable{nine}{nine} \setinterfacevariable{no}{ne} \setinterfacevariable{nocheck}{nocheck} \setinterfacevariable{nodepth}{nodepth} \setinterfacevariable{nofit}{nofit} \setinterfacevariable{nogrid}{nogrid} \setinterfacevariable{noheight}{noheight} \setinterfacevariable{nohz}{nohz} \setinterfacevariable{noline}{noline} \setinterfacevariable{nomarking}{zadneznaceni} \setinterfacevariable{nomenubar}{nomenubar} \setinterfacevariable{none}{zadny} \setinterfacevariable{nonumber}{nonumber} \setinterfacevariable{norepeat}{norepeat} \setinterfacevariable{normal}{normalni} \setinterfacevariable{normalshort}{normalshort} \setinterfacevariable{nospacing}{nospacing} \setinterfacevariable{nostopper}{nostopper} \setinterfacevariable{not}{ne} \setinterfacevariable{notation}{notation} \setinterfacevariable{notcollapsed}{notcollapsed} \setinterfacevariable{note}{note} \setinterfacevariable{nothanging}{nothanging} \setinterfacevariable{nothyphenated}{nothyphenated} \setinterfacevariable{notjoinedup}{notjoinedup} \setinterfacevariable{november}{listopad} \setinterfacevariable{nowhere}{nikde} \setinterfacevariable{nowhite}{zadnabila} \setinterfacevariable{number}{cislo} \setinterfacevariable{numbers}{cisla} \setinterfacevariable{october}{rijen} \setinterfacevariable{odd}{liche} \setinterfacevariable{off}{vyp} \setinterfacevariable{offset}{offset} \setinterfacevariable{old}{old} \setinterfacevariable{oldstyle}{oldstyle} \setinterfacevariable{on}{zap} \setinterfacevariable{one}{jedna} \setinterfacevariable{opposite}{naproti} \setinterfacevariable{ordinal}{ordinal} \setinterfacevariable{outer}{vnejsi} \setinterfacevariable{outeredge}{outeredge} \setinterfacevariable{outermargin}{outermargin} \setinterfacevariable{outline}{outline} \setinterfacevariable{outlined}{outlined} \setinterfacevariable{overbar}{nadtrzeno} \setinterfacevariable{overbars}{nadtrzeni} \setinterfacevariable{overlay}{prekryv} \setinterfacevariable{overprint}{overprint} \setinterfacevariable{overstrike}{preskrtnuto} \setinterfacevariable{overstrikes}{preskrtnuti} \setinterfacevariable{packed}{zhustene} \setinterfacevariable{page}{stranka} \setinterfacevariable{pagecomment}{komentarstranky} \setinterfacevariable{pagenumber}{cislostranky} \setinterfacevariable{paper}{papir} \setinterfacevariable{paragraph}{odstavec} \setinterfacevariable{part}{cast} \setinterfacevariable{positive}{positiv} \setinterfacevariable{postponing}{odlozit} \setinterfacevariable{postscript}{postscript} \setinterfacevariable{precedingpage}{precedingpage} \setinterfacevariable{preference}{nastaveni} \setinterfacevariable{prepend}{prepend} \setinterfacevariable{preview}{nahled} \setinterfacevariable{previous}{predchozi} \setinterfacevariable{previousevenpage}{predchozisudastranka} \setinterfacevariable{previousoddpage}{predchozilichastranka} \setinterfacevariable{previouspage}{predchozistranka} \setinterfacevariable{previoussubpage}{predchozipodstranka} \setinterfacevariable{print}{print} \setinterfacevariable{printable}{tisknutelne} \setinterfacevariable{process}{process} \setinterfacevariable{product}{produkt} \setinterfacevariable{profile}{profile} \setinterfacevariable{program}{program} \setinterfacevariable{project}{projekt} \setinterfacevariable{protected}{chranene} \setinterfacevariable{quadruple}{ctyrnasobny} \setinterfacevariable{quarterline}{quarterline} \setinterfacevariable{quotation}{citace} \setinterfacevariable{quote}{citovat} \setinterfacevariable{ran}{rozsah} \setinterfacevariable{random}{nahodny} \setinterfacevariable{readonly}{pouzeprocteni} \setinterfacevariable{rectangular}{pravouhly} \setinterfacevariable{reference}{odkaz} \setinterfacevariable{referral}{znacka} \setinterfacevariable{region}{region} \setinterfacevariable{register}{rejstrik} \setinterfacevariable{regular}{pravidelne} \setinterfacevariable{relative}{relativni} \setinterfacevariable{repeat}{opakovat} \setinterfacevariable{required}{pozadovane} \setinterfacevariable{reset}{reset} \setinterfacevariable{reverse}{reverse} \setinterfacevariable{right}{vpravo} \setinterfacevariable{rightedge}{pravahrana} \setinterfacevariable{righthanging}{righthanging} \setinterfacevariable{rightmargin}{pravyokraj} \setinterfacevariable{rightpage}{pravastranka} \setinterfacevariable{righttext}{textvpravo} \setinterfacevariable{righttoleft}{righttoleft} \setinterfacevariable{roman}{antikva} \setinterfacevariable{romannumerals}{rimskecislice} \setinterfacevariable{rotate}{otoc} \setinterfacevariable{rotated}{otoceno} \setinterfacevariable{round}{zaobleny} \setinterfacevariable{row}{row} \setinterfacevariable{rule}{linka} \setinterfacevariable{samepage}{stejnastranka} \setinterfacevariable{sans}{sans} \setinterfacevariable{sansbold}{sanstucne} \setinterfacevariable{sansnormal}{sansnormal} \setinterfacevariable{sansserif}{bezserifu} \setinterfacevariable{saturday}{sobota} \setinterfacevariable{screen}{rastr} \setinterfacevariable{section}{sekce} \setinterfacevariable{sectionblockenvironment}{sectionblockenvironment} \setinterfacevariable{sectionnumber}{cislooddilu} \setinterfacevariable{see}{viz} \setinterfacevariable{selectfont}{selectfont} \setinterfacevariable{separator}{separator} \setinterfacevariable{september}{zari} \setinterfacevariable{serif}{serif} \setinterfacevariable{serifbold}{serifbold} \setinterfacevariable{serifnormal}{serifnormal} \setinterfacevariable{serried}{semknuto} \setinterfacevariable{setups}{setups} \setinterfacevariable{seven}{seven} \setinterfacevariable{sheet}{sheet} \setinterfacevariable{shiftdown}{shiftdown} \setinterfacevariable{shiftup}{shiftup} \setinterfacevariable{short}{short} \setinterfacevariable{simplefonts}{simplefonts} \setinterfacevariable{simplelist}{simplelist} \setinterfacevariable{singlesided}{jednostranne} \setinterfacevariable{six}{six} \setinterfacevariable{size}{velikost} \setinterfacevariable{slanted}{sklonene} \setinterfacevariable{slantedbold}{sklonenetucne} \setinterfacevariable{small}{male} \setinterfacevariable{smallbodyfont}{smallbodyfont} \setinterfacevariable{smallbold}{maletucne} \setinterfacevariable{smallbolditalic}{maletucnekurzivni} \setinterfacevariable{smallboldslanted}{maletucnesklonene} \setinterfacevariable{smallcaps}{kapitalky} \setinterfacevariable{smaller}{smaller} \setinterfacevariable{smallitalic}{malekurzivni} \setinterfacevariable{smallitalicbold}{malekurzivnitucne} \setinterfacevariable{smallnormal}{malenormalni} \setinterfacevariable{smallslanted}{malesklonene} \setinterfacevariable{smallslantedbold}{malesklonenetucne} \setinterfacevariable{smalltype}{maletype} \setinterfacevariable{somewhere}{nekde} \setinterfacevariable{sorted}{tridene} \setinterfacevariable{sorting}{sorting} \setinterfacevariable{space}{mezera} \setinterfacevariable{spacing}{mezerovani} \setinterfacevariable{speech}{speech} \setinterfacevariable{split}{split} \setinterfacevariable{spot}{spot} \setinterfacevariable{spread}{spread} \setinterfacevariable{standard}{standardni} \setinterfacevariable{start}{start} \setinterfacevariable{starter}{starter} \setinterfacevariable{sticker}{sticker} \setinterfacevariable{stop}{stop} \setinterfacevariable{stopper}{predel} \setinterfacevariable{stretch}{natahnout} \setinterfacevariable{stretched}{stretched} \setinterfacevariable{strict}{striktni} \setinterfacevariable{strong}{strong} \setinterfacevariable{strut}{strut} \setinterfacevariable{sub}{pod} \setinterfacevariable{subbackward}{podzpet} \setinterfacevariable{subformula}{subrovnice} \setinterfacevariable{subforward}{podvpred} \setinterfacevariable{subject}{tema} \setinterfacevariable{subpage}{podstranka} \setinterfacevariable{subs}{subs} \setinterfacevariable{subsection}{podsekce} \setinterfacevariable{subsubject}{podtema} \setinterfacevariable{subsubsection}{podpodsekce} \setinterfacevariable{subsubsubject}{podpodtema} \setinterfacevariable{subsubsubsection}{podpodpodsekce} \setinterfacevariable{subsubsubsubject}{podpodpodtema} \setinterfacevariable{subsubsubsubsection}{podpodpodpodsekce} \setinterfacevariable{subsubsubsubsubject}{podpodpodpodtema} \setinterfacevariable{subsubsubsubsubsection}{podpodpodpodpodsekce} \setinterfacevariable{subsubsubsubsubsubject}{podpodpodpodpodtema} \setinterfacevariable{subsubsubsubsubsubsection}{podpodpodpodpodpodsekce} \setinterfacevariable{subsubsubsubsubsubsubject}{podpodpodpodpodpodtema} \setinterfacevariable{subsubsubsubsubsubsubsection}{podpodpodpodpodpodpodsekce} \setinterfacevariable{subsubsubsubsubsubsubsubject}{podpodpodpodpodpodpodtema} \setinterfacevariable{subsubsubsubsubsubsubsubsection}{podpodpodpodpodpodpodpodsekce} \setinterfacevariable{subsubsubsubsubsubsubsubsubject}{podpodpodpodpodpodpodpodtema} \setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{podpodpodpodpodpodpodpodpodsekce} \setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{podpodpodpodpodpodpodpodpodtema} \setinterfacevariable{sunday}{nedele} \setinterfacevariable{support}{podpora} \setinterfacevariable{sym}{sym} \setinterfacevariable{symbol}{symbol} \setinterfacevariable{synchronize}{synchronize} \setinterfacevariable{synonym}{synonym} \setinterfacevariable{system}{system} \setinterfacevariable{table}{tabulka} \setinterfacevariable{tablehead}{zahlavitabulky} \setinterfacevariable{tables}{tabulky} \setinterfacevariable{tabletail}{konectabulky} \setinterfacevariable{tabulate}{tabelator} \setinterfacevariable{tabulatehead}{tabulatehead} \setinterfacevariable{tabulatetail}{tabulatetail} \setinterfacevariable{tall}{vysoko} \setinterfacevariable{teletype}{strojopis} \setinterfacevariable{temporary}{docasne} \setinterfacevariable{test}{test} \setinterfacevariable{text}{text} \setinterfacevariable{textdisplay}{textdisplay} \setinterfacevariable{textnote}{textnote} \setinterfacevariable{three}{tri} \setinterfacevariable{thursday}{ctvrtek} \setinterfacevariable{tight}{tight} \setinterfacevariable{title}{titul} \setinterfacevariable{toggle}{toggle} \setinterfacevariable{tolerant}{tolerantni} \setinterfacevariable{top}{vrsek} \setinterfacevariable{tuesday}{utery} \setinterfacevariable{two}{dve} \setinterfacevariable{txt}{txt} \setinterfacevariable{type}{opis} \setinterfacevariable{typing}{typing} \setinterfacevariable{unavailable}{nedostupne} \setinterfacevariable{underbar}{podtrzeno} \setinterfacevariable{underbars}{podtrzeni} \setinterfacevariable{understrike}{understrike} \setinterfacevariable{understrikes}{understrikes} \setinterfacevariable{unframed}{unframed} \setinterfacevariable{unicode}{unicode} \setinterfacevariable{unit}{jednotka} \setinterfacevariable{units}{jednotky} \setinterfacevariable{unknown}{neznamy} \setinterfacevariable{unpacked}{rozbalene} \setinterfacevariable{up}{up} \setinterfacevariable{url}{url} \setinterfacevariable{used}{uzito} \setinterfacevariable{value}{hodnota} \setinterfacevariable{vertical}{vertikalne} \setinterfacevariable{very}{velmi} \setinterfacevariable{verystrict}{velmistriktni} \setinterfacevariable{verytight}{verytight} \setinterfacevariable{verytolerant}{velmitolerantni} \setinterfacevariable{vfenced}{vfenced} \setinterfacevariable{vulgarfraction}{vulgarfraction} \setinterfacevariable{vz}{vz} \setinterfacevariable{weak}{weak} \setinterfacevariable{wednesday}{streda} \setinterfacevariable{week}{tyden} \setinterfacevariable{weekday}{vsedniden} \setinterfacevariable{white}{bily} \setinterfacevariable{wide}{siroce} \setinterfacevariable{width}{sirka} \setinterfacevariable{word}{slovo} \setinterfacevariable{words}{words} \setinterfacevariable{xml}{xml} \setinterfacevariable{year}{rok} \setinterfacevariable{yes}{ano} % definitions for interface constants for language cs % \setinterfaceconstant{action}{akce} \setinterfaceconstant{adaptive}{adaptive} \setinterfaceconstant{address}{adresa} \setinterfaceconstant{after}{po} \setinterfaceconstant{afterhead}{pohlavicce} \setinterfaceconstant{afterkey}{klavesapo} \setinterfaceconstant{aftersection}{aftersection} \setinterfaceconstant{align}{zarovnani} \setinterfaceconstant{alignbottom}{alignbottom} \setinterfaceconstant{aligncharacter}{aligncharacter} \setinterfaceconstant{alignmentcharacter}{alignmentcharacter} \setinterfaceconstant{alignmentleftsample}{alignmentleftsample} \setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth} \setinterfaceconstant{alignmentrightsample}{alignmentrightsample} \setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth} \setinterfaceconstant{alignscripts}{alignscripts} \setinterfaceconstant{alignsymbol}{alignsymbol} \setinterfaceconstant{aligntitle}{zarovnejtitul} \setinterfaceconstant{alternative}{alternativa} \setinterfaceconstant{anchor}{anchor} \setinterfaceconstant{anchoring}{anchoring} \setinterfaceconstant{andtext}{andtext} \setinterfaceconstant{apa}{apa} \setinterfaceconstant{arguments}{arguments} \setinterfaceconstant{arrow}{sipka} \setinterfaceconstant{artauthor}{artauthor} \setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay} \setinterfaceconstant{artauthoretallimit}{artauthoretallimit} \setinterfaceconstant{artauthoretaltext}{artauthoretaltext} \setinterfaceconstant{artoffset}{artoffset} \setinterfaceconstant{at}{u} \setinterfaceconstant{author}{autor} \setinterfaceconstant{authorconversion}{authorconversion} \setinterfaceconstant{authoretaldisplay}{authoretaldisplay} \setinterfaceconstant{authoretallimit}{authoretallimit} \setinterfaceconstant{authoretaltext}{authoretaltext} \setinterfaceconstant{auto}{auto} \setinterfaceconstant{autocase}{autocase} \setinterfaceconstant{autofencing}{autofencing} \setinterfaceconstant{autofile}{autofile} \setinterfaceconstant{autofocus}{autoostreni} \setinterfaceconstant{autohang}{autohang} \setinterfaceconstant{autointervals}{autointervals} \setinterfaceconstant{autonumbers}{autonumbers} \setinterfaceconstant{autopunctuation}{autopunctuation} \setinterfaceconstant{autospacing}{autospacing} \setinterfaceconstant{autostrut}{autostrut} \setinterfaceconstant{autowidth}{autosirka} \setinterfaceconstant{availableheight}{availableheight} \setinterfaceconstant{availablewidth}{availablewidth} \setinterfaceconstant{axis}{osa} \setinterfaceconstant{background}{pozadi} \setinterfaceconstant{backgroundcolor}{barvapozadi} \setinterfaceconstant{backgroundcorner}{rohpozadi} \setinterfaceconstant{backgrounddepth}{hloubkapozadi} \setinterfaceconstant{backgroundoffset}{offsetpozadi} \setinterfaceconstant{backgroundradius}{polomerpozadi} \setinterfaceconstant{backgroundscreen}{rastrpozadi} \setinterfaceconstant{backreference}{backreference} \setinterfaceconstant{backspace}{zpetnamezera} \setinterfaceconstant{balance}{rovnovaha} \setinterfaceconstant{before}{pred} \setinterfaceconstant{beforehead}{predhlavickou} \setinterfaceconstant{beforesection}{beforesection} \setinterfaceconstant{bet}{bet} \setinterfaceconstant{bidi}{bidi} \setinterfaceconstant{big}{velky} \setinterfaceconstant{blank}{prazdny} \setinterfaceconstant{bleedoffset}{bleedoffset} \setinterfaceconstant{blockway}{dobloku} \setinterfaceconstant{bodyfont}{zakladnifont} \setinterfaceconstant{boffset}{boffset} \setinterfaceconstant{boldfeatures}{boldfeatures} \setinterfaceconstant{boldfont}{boldfont} \setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures} \setinterfaceconstant{bolditalicfont}{bolditalicfont} \setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures} \setinterfaceconstant{boldslantedfont}{boldslantedfont} \setinterfaceconstant{bookmark}{zalozka} \setinterfaceconstant{bottom}{spodek} \setinterfaceconstant{bottomafter}{bottomafter} \setinterfaceconstant{bottomalign}{bottomalign} \setinterfaceconstant{bottombefore}{bottombefore} \setinterfaceconstant{bottomcolor}{bottomcolor} \setinterfaceconstant{bottomcommand}{bottomcommand} \setinterfaceconstant{bottomdistance}{vzdalenostspodku} \setinterfaceconstant{bottomframe}{ramecekdole} \setinterfaceconstant{bottomoffset}{offsetspodku} \setinterfaceconstant{bottomspace}{bottomspace} \setinterfaceconstant{bottomstate}{statusspodku} \setinterfaceconstant{bottomstyle}{bottomstyle} \setinterfaceconstant{break}{break} \setinterfaceconstant{buffer}{buffer} \setinterfaceconstant{cache}{cache} \setinterfaceconstant{calculate}{pocitat} \setinterfaceconstant{category}{category} \setinterfaceconstant{ccommand}{cprikaz} \setinterfaceconstant{character}{character} \setinterfaceconstant{characters}{characters} \setinterfaceconstant{check}{check} \setinterfaceconstant{click}{klik} \setinterfaceconstant{clickin}{klikuvnitr} \setinterfaceconstant{clickout}{klikvne} \setinterfaceconstant{clipoffset}{clipoffset} \setinterfaceconstant{closeaction}{zavriakci} \setinterfaceconstant{closecommand}{closecommand} \setinterfaceconstant{closepage}{closepage} \setinterfaceconstant{closepageaction}{akcezavrenistranky} \setinterfaceconstant{closesymbol}{closesymbol} \setinterfaceconstant{color}{barva} \setinterfaceconstant{column}{sloupec} \setinterfaceconstant{columndistance}{vzdalenostsloupcu} \setinterfaceconstant{columns}{sloupce} \setinterfaceconstant{comma}{comma} \setinterfaceconstant{command}{prikaz} \setinterfaceconstant{commandafter}{prikazpo} \setinterfaceconstant{commandbefore}{predchoziprikaz} \setinterfaceconstant{commands}{prikazy} \setinterfaceconstant{comment}{comment} \setinterfaceconstant{commentchar}{commentchar} \setinterfaceconstant{commentoffset}{commentoffset} \setinterfaceconstant{compact}{compact} \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} \setinterfaceconstant{compressdistance}{compressdistance} \setinterfaceconstant{compressmethod}{compressmethod} \setinterfaceconstant{compressseparator}{compressseparator} \setinterfaceconstant{compressstopper}{compressstopper} \setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{pokracovat} \setinterfaceconstant{contrastcolor}{kontrastnibarva} \setinterfaceconstant{controls}{controls} \setinterfaceconstant{conversion}{konverze} \setinterfaceconstant{convertfile}{konverzesouboru} \setinterfaceconstant{copies}{copies} \setinterfaceconstant{corner}{roh} \setinterfaceconstant{coupling}{propojeni} \setinterfaceconstant{couplingway}{zpusobpropojeni} \setinterfaceconstant{criterium}{kriterium} \setinterfaceconstant{crop}{crop} \setinterfaceconstant{cropoffset}{cropoffset} \setinterfaceconstant{crossreference}{crossreference} \setinterfaceconstant{cssfile}{cssfile} \setinterfaceconstant{current}{aktualni} \setinterfaceconstant{cutspace}{cutspace} \setinterfaceconstant{dash}{pomlcka} \setinterfaceconstant{dat}{dat} \setinterfaceconstant{database}{database} \setinterfaceconstant{dataset}{dataset} \setinterfaceconstant{date}{datum} \setinterfaceconstant{deepnumbercommand}{deepnumbercommand} \setinterfaceconstant{deeptextcommand}{deeptextcommand} \setinterfaceconstant{default}{implicitni} \setinterfaceconstant{defaultheight}{defaultheight} \setinterfaceconstant{defaultwidth}{defaultwidth} \setinterfaceconstant{define}{define} \setinterfaceconstant{delay}{prodleva} \setinterfaceconstant{depth}{hloubka} \setinterfaceconstant{depthcorrection}{korekcehloubky} \setinterfaceconstant{direction}{smer} \setinterfaceconstant{directory}{adresar} \setinterfaceconstant{display}{obrazovka} \setinterfaceconstant{displayfactor}{displayfactor} \setinterfaceconstant{displaythreshold}{displaythreshold} \setinterfaceconstant{distance}{vzdalenost} \setinterfaceconstant{domain}{domain} \setinterfaceconstant{dot}{tecka} \setinterfaceconstant{doublesided}{oboustranne} \setinterfaceconstant{down}{down} \setinterfaceconstant{dummy}{dummy} \setinterfaceconstant{dx}{dx} \setinterfaceconstant{dy}{dy} \setinterfaceconstant{edge}{hrana} \setinterfaceconstant{edgedistance}{vzdalenosthrany} \setinterfaceconstant{editor}{editor} \setinterfaceconstant{editoretaldisplay}{editoretaldisplay} \setinterfaceconstant{editoretallimit}{editoretallimit} \setinterfaceconstant{editoretaltext}{editoretaltext} \setinterfaceconstant{empty}{prazdne} \setinterfaceconstant{entities}{entities} \setinterfaceconstant{entries}{entries} \setinterfaceconstant{equalheight}{equalheight} \setinterfaceconstant{equalwidth}{equalwidth} \setinterfaceconstant{escape}{escape} \setinterfaceconstant{etaldisplay}{etaldisplay} \setinterfaceconstant{etallimit}{etallimit} \setinterfaceconstant{etaloption}{etaloption} \setinterfaceconstant{etaltext}{etaltext} \setinterfaceconstant{evenmargin}{sudamarginalie} \setinterfaceconstant{exact}{exact} \setinterfaceconstant{exitoffset}{exitoffset} \setinterfaceconstant{expansion}{expanzen} \setinterfaceconstant{export}{export} \setinterfaceconstant{extradata}{extradata} \setinterfaceconstant{extras}{extras} \setinterfaceconstant{factor}{faktor} \setinterfaceconstant{fallback}{fallback} \setinterfaceconstant{fallbacks}{fallbacks} \setinterfaceconstant{family}{rodina} \setinterfaceconstant{features}{features} \setinterfaceconstant{featureset}{featureset} \setinterfaceconstant{fences}{fences} \setinterfaceconstant{field}{field} \setinterfaceconstant{fieldbackgroundcolor}{barvapozadipole} \setinterfaceconstant{fieldframecolor}{barvarameckupole} \setinterfaceconstant{fieldlayer}{fieldlayer} \setinterfaceconstant{fieldoffset}{offsetpole} \setinterfaceconstant{file}{soubor} \setinterfaceconstant{filler}{filler} \setinterfaceconstant{filter}{filter} \setinterfaceconstant{filtercommand}{filtercommand} \setinterfaceconstant{finalnamesep}{finalnamesep} \setinterfaceconstant{finalpagesep}{finalpagesep} \setinterfaceconstant{finalpubsep}{finalpubsep} \setinterfaceconstant{first}{prvni} \setinterfaceconstant{firstnamesep}{firstnamesep} \setinterfaceconstant{firstpage}{prvnistranka} \setinterfaceconstant{focus}{zaostreni} \setinterfaceconstant{focusin}{focusin} \setinterfaceconstant{focusoffset}{focusoffset} \setinterfaceconstant{focusout}{focusout} \setinterfaceconstant{font}{font} \setinterfaceconstant{footer}{upati} \setinterfaceconstant{footerdistance}{vzdalenostupati} \setinterfaceconstant{footerstate}{statusupati} \setinterfaceconstant{force}{sila} \setinterfaceconstant{foregroundcolor}{foregroundcolor} \setinterfaceconstant{foregroundstyle}{foregroundstyle} \setinterfaceconstant{format}{formatovat} \setinterfaceconstant{fractions}{fractions} \setinterfaceconstant{frame}{ramecek} \setinterfaceconstant{framecolor}{barvaramecku} \setinterfaceconstant{framecorner}{rohramecku} \setinterfaceconstant{framedepth}{hloubkaramecku} \setinterfaceconstant{frameoffset}{offsetramecku} \setinterfaceconstant{frameradius}{polomerramecku} \setinterfaceconstant{frames}{ramecky} \setinterfaceconstant{freeregion}{freeregion} \setinterfaceconstant{freezespacing}{freezespacing} \setinterfaceconstant{from}{z} \setinterfaceconstant{functioncolor}{functioncolor} \setinterfaceconstant{functionstyle}{functionstyle} \setinterfaceconstant{get}{ziskat} \setinterfaceconstant{global}{globalne} \setinterfaceconstant{goodies}{goodies} \setinterfaceconstant{grid}{mrizka} \setinterfaceconstant{group}{group} \setinterfaceconstant{groupsuffix}{groupsuffix} \setinterfaceconstant{hang}{zaveseni} \setinterfaceconstant{hcompact}{hcompact} \setinterfaceconstant{headalign}{headalign} \setinterfaceconstant{headcolor}{barvahlavicky} \setinterfaceconstant{headcommand}{headcommand} \setinterfaceconstant{headconversion}{konverzehlavicky} \setinterfaceconstant{header}{zahlavi} \setinterfaceconstant{headerdistance}{vzdalenostzahlavi} \setinterfaceconstant{headerstate}{statuszahlavi} \setinterfaceconstant{headindenting}{headindenting} \setinterfaceconstant{headlabel}{popisekhlavicky} \setinterfaceconstant{headnumber}{cislonadpisu} \setinterfaceconstant{headseparator}{headseparator} \setinterfaceconstant{headstyle}{stylhlavicky} \setinterfaceconstant{height}{vyska} \setinterfaceconstant{hfactor}{hfaktor} \setinterfaceconstant{hfil}{hfil} \setinterfaceconstant{hidenumber}{hidenumber} \setinterfaceconstant{hoffset}{hoffset} \setinterfaceconstant{horizontal}{horizontalne} \setinterfaceconstant{horoffset}{horoffset} \setinterfaceconstant{hyphen}{hyphen} \setinterfaceconstant{hyphens}{hyphens} \setinterfaceconstant{hz}{hz} \setinterfaceconstant{icommand}{iprikaz} \setinterfaceconstant{ignore}{ignore} \setinterfaceconstant{in}{v} \setinterfaceconstant{inbetween}{mezi} \setinterfaceconstant{increment}{zvysit} \setinterfaceconstant{incrementnumber}{zvysujicicislo} \setinterfaceconstant{indenting}{odsazovani} \setinterfaceconstant{indentlist}{indentlist} \setinterfaceconstant{indentnext}{odsadpristi} \setinterfaceconstant{index}{index} \setinterfaceconstant{indicator}{indikator} \setinterfaceconstant{initialsep}{initialsep} \setinterfaceconstant{inlinefactor}{inlinefactor} \setinterfaceconstant{inlinethreshold}{inlinethreshold} \setinterfaceconstant{inner}{vnitrni} \setinterfaceconstant{innermargin}{innermargin} \setinterfaceconstant{inputfile}{inputfile} \setinterfaceconstant{insidesection}{insidesection} \setinterfaceconstant{instance}{instance} \setinterfaceconstant{integral}{integral} \setinterfaceconstant{intent}{intent} \setinterfaceconstant{interaction}{interakce} \setinterfaceconstant{interlinespace}{meziradkovamezera} \setinterfaceconstant{internalgrid}{internalgrid} \setinterfaceconstant{interscriptfactor}{interscriptfactor} \setinterfaceconstant{italicfeatures}{italicfeatures} \setinterfaceconstant{italicfont}{italicfont} \setinterfaceconstant{itemalign}{itemalign} \setinterfaceconstant{items}{polozky} \setinterfaceconstant{joiners}{joiners} \setinterfaceconstant{journalconversion}{journalconversion} \setinterfaceconstant{juniorsep}{juniorsep} \setinterfaceconstant{keeptogether}{keeptogether} \setinterfaceconstant{ken}{ken} \setinterfaceconstant{keyexpansion}{keyexpansion} \setinterfaceconstant{keys}{keys} \setinterfaceconstant{keyword}{keyword} \setinterfaceconstant{label}{popisek} \setinterfaceconstant{labelalternative}{labelalternative} \setinterfaceconstant{labelcolor}{labelcolor} \setinterfaceconstant{labeloffset}{labeloffset} \setinterfaceconstant{labelstyle}{labelstyle} \setinterfaceconstant{language}{language} \setinterfaceconstant{last}{last} \setinterfaceconstant{lastnamesep}{lastnamesep} \setinterfaceconstant{lastpage}{poslednistrana} \setinterfaceconstant{lastpagesep}{lastpagesep} \setinterfaceconstant{lastpubsep}{lastpubsep} \setinterfaceconstant{lasttextseparator}{lasttextseparator} \setinterfaceconstant{layout}{layout} \setinterfaceconstant{left}{vlevo} \setinterfaceconstant{leftclass}{leftclass} \setinterfaceconstant{leftcolor}{barvavlevo} \setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen} \setinterfaceconstant{leftedge}{levahrana} \setinterfaceconstant{leftedgedistance}{vzdalenostlevehrany} \setinterfaceconstant{leftframe}{ramecekvlevo} \setinterfaceconstant{lefthyphen}{lefthyphen} \setinterfaceconstant{leftmargin}{levyokraj} \setinterfaceconstant{leftmargindistance}{vzdalenostlevehookraje} \setinterfaceconstant{leftoffset}{levyoffset} \setinterfaceconstant{leftquotation}{citacevlevo} \setinterfaceconstant{leftquote}{citovatvlevo} \setinterfaceconstant{leftsample}{leftsample} \setinterfaceconstant{leftsentence}{vetavlevo} \setinterfaceconstant{leftsource}{leftsource} \setinterfaceconstant{leftspeech}{leftspeech} \setinterfaceconstant{leftstyle}{stylvlevo} \setinterfaceconstant{leftsubsentence}{podvetavlevo} \setinterfaceconstant{lefttext}{textvlevo} \setinterfaceconstant{leftwidth}{sirkavlevo} \setinterfaceconstant{leftwords}{leftwords} \setinterfaceconstant{less}{less} \setinterfaceconstant{level}{uroven} \setinterfaceconstant{levels}{urovne} \setinterfaceconstant{limit}{limit} \setinterfaceconstant{limitstretch}{limitstretch} \setinterfaceconstant{limittext}{limittext} \setinterfaceconstant{line}{radek} \setinterfaceconstant{linecorrection}{korekceradku} \setinterfaceconstant{linedirection}{linedirection} \setinterfaceconstant{lines}{radky} \setinterfaceconstant{list}{seznam} \setinterfaceconstant{listtext}{listtext} \setinterfaceconstant{local}{lokalne} \setinterfaceconstant{location}{misto} \setinterfaceconstant{loffset}{loffset} \setinterfaceconstant{logo}{logo} \setinterfaceconstant{logos}{loga} \setinterfaceconstant{marcolor}{barvaznacky} \setinterfaceconstant{margin}{marginalie} \setinterfaceconstant{margindistance}{vzdalenostokraje} \setinterfaceconstant{marginedge}{textovahrana} \setinterfaceconstant{marginedgetext}{textmarginalnihookraje} \setinterfaceconstant{margintext}{textmarginalie} \setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{znaceni} \setinterfaceconstant{marstyle}{stylsnacky} \setinterfaceconstant{mask}{mask} \setinterfaceconstant{mathclass}{mathclass} \setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle} \setinterfaceconstant{mathlimits}{mathlimits} \setinterfaceconstant{mathmeaning}{mathmeaning} \setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle} \setinterfaceconstant{mathstyle}{mathstyle} \setinterfaceconstant{max}{max} \setinterfaceconstant{maxdepth}{maxdepth} \setinterfaceconstant{maxheight}{maxvyska} \setinterfaceconstant{maxwidth}{maxsirka} \setinterfaceconstant{maybeyear}{maybeyear} \setinterfaceconstant{menu}{menu} \setinterfaceconstant{metadata}{metadata} \setinterfaceconstant{method}{metoda} \setinterfaceconstant{middle}{stredni} \setinterfaceconstant{middleclass}{middleclass} \setinterfaceconstant{middlecolor}{middlecolor} \setinterfaceconstant{middlecommand}{middlecommand} \setinterfaceconstant{middlesource}{middlesource} \setinterfaceconstant{middlespeech}{middlespeech} \setinterfaceconstant{middlestyle}{middlestyle} \setinterfaceconstant{middletext}{strednitext} \setinterfaceconstant{middlewidth}{middlewidth} \setinterfaceconstant{midsentence}{midsentence} \setinterfaceconstant{min}{min} \setinterfaceconstant{mindepth}{mindepth} \setinterfaceconstant{minheight}{minvyska} \setinterfaceconstant{minwidth}{minsirka} \setinterfaceconstant{moffset}{moffset} \setinterfaceconstant{monthconversion}{monthconversion} \setinterfaceconstant{more}{more} \setinterfaceconstant{mpdepth}{mpdepth} \setinterfaceconstant{mpheight}{mpheight} \setinterfaceconstant{mpoffset}{mpoffset} \setinterfaceconstant{mpwidth}{mpwidth} \setinterfaceconstant{n}{n} \setinterfaceconstant{name}{jmeno} \setinterfaceconstant{namesep}{namesep} \setinterfaceconstant{nbottom}{nspodek} \setinterfaceconstant{nc}{nc} \setinterfaceconstant{next}{dalsi} \setinterfaceconstant{nextleft}{nextleft} \setinterfaceconstant{nextleftquotation}{nextleftquotation} \setinterfaceconstant{nextright}{nextright} \setinterfaceconstant{nextrightquotation}{nextrightquotation} \setinterfaceconstant{nl}{nl} \setinterfaceconstant{nleft}{nvlevo} \setinterfaceconstant{nlines}{nradky} \setinterfaceconstant{norm}{norm} \setinterfaceconstant{note}{note} \setinterfaceconstant{notes}{notes} \setinterfaceconstant{nr}{nr} \setinterfaceconstant{nright}{nvpravo} \setinterfaceconstant{ntop}{nvrsek} \setinterfaceconstant{number}{cislo} \setinterfaceconstant{numberalign}{numberalign} \setinterfaceconstant{numbercolor}{barvacisla} \setinterfaceconstant{numbercommand}{ciselnyprikaz} \setinterfaceconstant{numberconversion}{numberconversion} \setinterfaceconstant{numberconversionset}{numberconversionset} \setinterfaceconstant{numberdistance}{numberdistance} \setinterfaceconstant{numbering}{cislovani} \setinterfaceconstant{numberlocation}{numberlocation} \setinterfaceconstant{numbermethod}{numbermethod} \setinterfaceconstant{numberorder}{numberorder} \setinterfaceconstant{numberprefix}{numberprefix} \setinterfaceconstant{numbersegments}{numbersegments} \setinterfaceconstant{numberseparator}{oddelovaccisla} \setinterfaceconstant{numberseparatorset}{numberseparatorset} \setinterfaceconstant{numberset}{numberset} \setinterfaceconstant{numberstarter}{numberstarter} \setinterfaceconstant{numberstopper}{numberstopper} \setinterfaceconstant{numberstrut}{numberstrut} \setinterfaceconstant{numberstyle}{stylcisla} \setinterfaceconstant{numberthreshold}{numberthreshold} \setinterfaceconstant{numberwidth}{numberwidth} \setinterfaceconstant{nx}{nx} \setinterfaceconstant{ny}{ny} \setinterfaceconstant{object}{objekt} \setinterfaceconstant{obstruction}{prekazka} \setinterfaceconstant{oddmargin}{lichyokraj} \setinterfaceconstant{offset}{offset} \setinterfaceconstant{openaction}{otevriakci} \setinterfaceconstant{openpage}{openpage} \setinterfaceconstant{openpageaction}{akceotevrenistranky} \setinterfaceconstant{openup}{openup} \setinterfaceconstant{opticalsize}{opticalsize} \setinterfaceconstant{option}{volba} \setinterfaceconstant{order}{order} \setinterfaceconstant{orientation}{orientation} \setinterfaceconstant{otherstext}{otherstext} \setinterfaceconstant{outermargin}{outermargin} \setinterfaceconstant{overflow}{overflow} \setinterfaceconstant{overprint}{overprint} \setinterfaceconstant{ownerpassword}{ownerpassword} \setinterfaceconstant{ownnumber}{vlastnicislo} \setinterfaceconstant{packcriterium}{packcriterium} \setinterfaceconstant{page}{stranka} \setinterfaceconstant{pageboundaries}{hranicestranky} \setinterfaceconstant{pagecolor}{barvastranky} \setinterfaceconstant{pagecolormodel}{pagecolormodel} \setinterfaceconstant{pagecommand}{strankovyprikaz} \setinterfaceconstant{pageconnector}{pageconnector} \setinterfaceconstant{pageconversion}{pageconversion} \setinterfaceconstant{pageconversionset}{pageconversionset} \setinterfaceconstant{pageleft}{pageleft} \setinterfaceconstant{pagemethod}{pagemethod} \setinterfaceconstant{pagenumber}{cislostranky} \setinterfaceconstant{pageprefix}{pageprefix} \setinterfaceconstant{pageprefixconnector}{pageprefixconnector} \setinterfaceconstant{pageprefixconversion}{pageprefixconversion} \setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset} \setinterfaceconstant{pageprefixsegments}{pageprefixsegments} \setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset} \setinterfaceconstant{pageprefixset}{pageprefixset} \setinterfaceconstant{pageprefixstarter}{pageprefixstarter} \setinterfaceconstant{pageprefixstopper}{pageprefixstopper} \setinterfaceconstant{pageright}{pageright} \setinterfaceconstant{pagesegments}{pagesegments} \setinterfaceconstant{pagesep}{pagesep} \setinterfaceconstant{pageseparatorset}{pageseparatorset} \setinterfaceconstant{pageset}{pageset} \setinterfaceconstant{pagestarter}{pagestarter} \setinterfaceconstant{pagestate}{pagestate} \setinterfaceconstant{pagestopper}{pagestopper} \setinterfaceconstant{pagestyle}{stylstranky} \setinterfaceconstant{palet}{paleta} \setinterfaceconstant{paper}{papir} \setinterfaceconstant{paragraph}{odstavec} \setinterfaceconstant{penalties}{penalties} \setinterfaceconstant{period}{period} \setinterfaceconstant{place}{umistit} \setinterfaceconstant{placehead}{umistihlavicku} \setinterfaceconstant{placeholder}{placeholder} \setinterfaceconstant{placestopper}{predelmista} \setinterfaceconstant{position}{position} \setinterfaceconstant{prefix}{prefix} \setinterfaceconstant{prefixconnector}{prefixconnector} \setinterfaceconstant{prefixconversion}{prefixconversion} \setinterfaceconstant{prefixconversionset}{prefixconversionset} \setinterfaceconstant{prefixsegments}{prefixsegments} \setinterfaceconstant{prefixseparatorset}{prefixseparatorset} \setinterfaceconstant{prefixset}{prefixset} \setinterfaceconstant{prefixstarter}{prefixstarter} \setinterfaceconstant{prefixstopper}{prefixstopper} \setinterfaceconstant{preset}{prednastaveni} \setinterfaceconstant{preview}{nahled} \setinterfaceconstant{previous}{predchozi} \setinterfaceconstant{previousnumber}{predchozicislo} \setinterfaceconstant{print}{print} \setinterfaceconstant{printable}{tisknutelne} \setinterfaceconstant{process}{process} \setinterfaceconstant{processors}{processors} \setinterfaceconstant{profile}{profile} \setinterfaceconstant{properties}{properties} \setinterfaceconstant{pubsep}{pubsep} \setinterfaceconstant{quotechar}{quotechar} \setinterfaceconstant{radius}{polomer} \setinterfaceconstant{random}{nahodne} \setinterfaceconstant{range}{range} \setinterfaceconstant{reduction}{redukce} \setinterfaceconstant{ref}{ref} \setinterfaceconstant{refcommand}{refcommand} \setinterfaceconstant{reference}{odkaz} \setinterfaceconstant{referencemethod}{referencemethod} \setinterfaceconstant{referenceprefix}{referenceprefix} \setinterfaceconstant{referencetext}{referencetext} \setinterfaceconstant{referencing}{odkazujici} \setinterfaceconstant{region}{region} \setinterfaceconstant{regionin}{oblastuvnitr} \setinterfaceconstant{regionout}{oblastvne} \setinterfaceconstant{register}{register} \setinterfaceconstant{regularfeatures}{regularfeatures} \setinterfaceconstant{regularfont}{regularfont} \setinterfaceconstant{renderingsetup}{renderingsetup} \setinterfaceconstant{repeat}{opakovat} \setinterfaceconstant{reset}{reset} \setinterfaceconstant{resetnumber}{resetnumber} \setinterfaceconstant{resolution}{rozliseni} \setinterfaceconstant{resources}{resources} \setinterfaceconstant{reverse}{reverse} \setinterfaceconstant{right}{vpravo} \setinterfaceconstant{rightchars}{rightchars} \setinterfaceconstant{rightclass}{rightclass} \setinterfaceconstant{rightcolor}{barvavpravo} \setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen} \setinterfaceconstant{rightedge}{pravahrana} \setinterfaceconstant{rightedgedistance}{vzdalenostpravehrany} \setinterfaceconstant{rightframe}{ramecekvpravo} \setinterfaceconstant{righthyphen}{righthyphen} \setinterfaceconstant{rightmargin}{pravyokraj} \setinterfaceconstant{rightmargindistance}{vzdalenostpravehookraje} \setinterfaceconstant{rightoffset}{pravyoffset} \setinterfaceconstant{rightquotation}{citacevpravo} \setinterfaceconstant{rightquote}{citovatvpravo} \setinterfaceconstant{rightsample}{rightsample} \setinterfaceconstant{rightsentence}{vetavpravo} \setinterfaceconstant{rightsource}{rightsource} \setinterfaceconstant{rightspeech}{rightspeech} \setinterfaceconstant{rightstyle}{stylvpravo} \setinterfaceconstant{rightsubsentence}{podvetavpravo} \setinterfaceconstant{righttext}{textvpravo} \setinterfaceconstant{rightwidth}{sirkavpravo} \setinterfaceconstant{rightwords}{rightwords} \setinterfaceconstant{roffset}{roffset} \setinterfaceconstant{rotation}{rotace} \setinterfaceconstant{rule}{linka} \setinterfaceconstant{rulecolor}{barvalinky} \setinterfaceconstant{rulecommand}{rulecommand} \setinterfaceconstant{rulethickness}{tloustkalinky} \setinterfaceconstant{samepage}{stejnastranka} \setinterfaceconstant{sample}{vzor} \setinterfaceconstant{samplesize}{samplesize} \setinterfaceconstant{saveinlist}{saveinlist} \setinterfaceconstant{scale}{meritko} \setinterfaceconstant{scope}{rozsah} \setinterfaceconstant{screen}{rastr} \setinterfaceconstant{section}{oddil} \setinterfaceconstant{sectionblock}{sectionblock} \setinterfaceconstant{sectionconversion}{sectionconversion} \setinterfaceconstant{sectionconversionset}{sectionconversionset} \setinterfaceconstant{sectionnumber}{cislooddilu} \setinterfaceconstant{sectionresetset}{sectionresetset} \setinterfaceconstant{sectionsegments}{sectionsegments} \setinterfaceconstant{sectionseparatorset}{sectionseparatorset} \setinterfaceconstant{sectionset}{sectionset} \setinterfaceconstant{sectionstarter}{sectionstarter} \setinterfaceconstant{sectionstopper}{sectionstopper} \setinterfaceconstant{separator}{oddelovac} \setinterfaceconstant{separatorcolor}{separatorcolor} \setinterfaceconstant{separatorstyle}{separatorstyle} \setinterfaceconstant{set}{set} \setinterfaceconstant{setups}{setups} \setinterfaceconstant{shrink}{shrink} \setinterfaceconstant{side}{pocitat} \setinterfaceconstant{sidealign}{sidealign} \setinterfaceconstant{sidemethod}{sidemethod} \setinterfaceconstant{sidespaceafter}{bocnimezeraza} \setinterfaceconstant{sidespacebefore}{bocnimezerapred} \setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween} \setinterfaceconstant{sidethreshold}{sidethreshold} \setinterfaceconstant{sign}{znak} \setinterfaceconstant{simplecommand}{simplecommand} \setinterfaceconstant{size}{velikost} \setinterfaceconstant{slantedfeatures}{slantedfeatures} \setinterfaceconstant{slantedfont}{slantedfont} \setinterfaceconstant{small}{male} \setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures} \setinterfaceconstant{smallcapsfont}{smallcapsfont} \setinterfaceconstant{snap}{snap} \setinterfaceconstant{snapstep}{snapstep} \setinterfaceconstant{solution}{solution} \setinterfaceconstant{sort}{sort} \setinterfaceconstant{sorttype}{sorttype} \setinterfaceconstant{source}{source} \setinterfaceconstant{space}{mezera} \setinterfaceconstant{spaceafter}{mezeraza} \setinterfaceconstant{spaceafterside}{spaceafterside} \setinterfaceconstant{spacebefore}{mezerapred} \setinterfaceconstant{spacebeforeside}{spacebeforeside} \setinterfaceconstant{spaceinbetween}{spaceinbetween} \setinterfaceconstant{spacing}{mezerovani} \setinterfaceconstant{specification}{specification} \setinterfaceconstant{split}{split} \setinterfaceconstant{splitcolor}{splitcolor} \setinterfaceconstant{splitmethod}{splitmethod} \setinterfaceconstant{splitoffset}{splitoffset} \setinterfaceconstant{spot}{spot} \setinterfaceconstant{stack}{stack} \setinterfaceconstant{stacking}{stacking} \setinterfaceconstant{stackname}{stackname} \setinterfaceconstant{start}{start} \setinterfaceconstant{starter}{starter} \setinterfaceconstant{state}{status} \setinterfaceconstant{step}{krok} \setinterfaceconstant{stop}{stop} \setinterfaceconstant{stopper}{predel} \setinterfaceconstant{stretch}{natahnout} \setinterfaceconstant{strip}{strip} \setinterfaceconstant{strut}{strut} \setinterfaceconstant{style}{pismeno} \setinterfaceconstant{stylealternative}{stylealternative} \setinterfaceconstant{sub}{pod} \setinterfaceconstant{subtitle}{podtitulek} \setinterfaceconstant{suffix}{suffix} \setinterfaceconstant{suffixseparator}{suffixseparator} \setinterfaceconstant{suffixstopper}{suffixstopper} \setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep} \setinterfaceconstant{surnameinitialsep}{surnameinitialsep} \setinterfaceconstant{surnamesep}{surnamesep} \setinterfaceconstant{svgstyle}{svgstyle} \setinterfaceconstant{sx}{sx} \setinterfaceconstant{sy}{sy} \setinterfaceconstant{symalign}{symzarovnani} \setinterfaceconstant{symbol}{symbol} \setinterfaceconstant{symbolcommand}{symbolcommand} \setinterfaceconstant{symbolset}{sadasymbolu} \setinterfaceconstant{symcolor}{barvasymbolu} \setinterfaceconstant{symstyle}{stylsymboly} \setinterfaceconstant{synchronize}{synchronize} \setinterfaceconstant{synonym}{synonymum} \setinterfaceconstant{synonymcolor}{barvasynonyma} \setinterfaceconstant{synonymcommand}{synonymcommand} \setinterfaceconstant{synonymstyle}{stylsynonyma} \setinterfaceconstant{tab}{tab} \setinterfaceconstant{target}{target} \setinterfaceconstant{text}{text} \setinterfaceconstant{textalign}{textalign} \setinterfaceconstant{textalternative}{textalternative} \setinterfaceconstant{textcolor}{barvatextu} \setinterfaceconstant{textcommand}{textovyprikaz} \setinterfaceconstant{textdistance}{textdistance} \setinterfaceconstant{textheight}{vyskatextu} \setinterfaceconstant{textlayer}{textlayer} \setinterfaceconstant{textmargin}{textmargin} \setinterfaceconstant{textmethod}{textmethod} \setinterfaceconstant{textseparator}{oddelovactextu} \setinterfaceconstant{textsize}{velikosttextu} \setinterfaceconstant{textstate}{statustextu} \setinterfaceconstant{textstyle}{styltextu} \setinterfaceconstant{textwidth}{sirkatextu} \setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{time}{time} \setinterfaceconstant{title}{titul} \setinterfaceconstant{titlecolor}{barvatitulek} \setinterfaceconstant{titlecommand}{titlecommand} \setinterfaceconstant{titledistance}{vzdalenosttitulek} \setinterfaceconstant{titleleft}{titleleft} \setinterfaceconstant{titleright}{titleright} \setinterfaceconstant{titlestrut}{titlestrut} \setinterfaceconstant{titlestyle}{styltitulek} \setinterfaceconstant{to}{na} \setinterfaceconstant{toffset}{toffset} \setinterfaceconstant{tolerance}{tolerance} \setinterfaceconstant{top}{vrsek} \setinterfaceconstant{topalign}{topalign} \setinterfaceconstant{topcolor}{topcolor} \setinterfaceconstant{topcommand}{topcommand} \setinterfaceconstant{topdistance}{vzdalenostvrsku} \setinterfaceconstant{topframe}{rameceknahore} \setinterfaceconstant{topoffset}{offsetvrsku} \setinterfaceconstant{topspace}{svrchnimezera} \setinterfaceconstant{topstate}{statusvrsku} \setinterfaceconstant{topstyle}{topstyle} \setinterfaceconstant{totalnumber}{totalnumber} \setinterfaceconstant{transform}{transform} \setinterfaceconstant{translate}{translate} \setinterfaceconstant{trimoffset}{trimoffset} \setinterfaceconstant{type}{typ} \setinterfaceconstant{unit}{jednotka} \setinterfaceconstant{unknownreference}{neznamyodkaz} \setinterfaceconstant{up}{up} \setinterfaceconstant{urlalternative}{urlalternativa} \setinterfaceconstant{urlspace}{prostorurl} \setinterfaceconstant{userpassword}{userpassword} \setinterfaceconstant{validate}{validovat} \setinterfaceconstant{values}{values} \setinterfaceconstant{vcommand}{vprikaz} \setinterfaceconstant{vcompact}{vcompact} \setinterfaceconstant{vector}{vector} \setinterfaceconstant{veroffset}{offsethlavicky} \setinterfaceconstant{vertical}{vertikalne} \setinterfaceconstant{vfactor}{vfaktor} \setinterfaceconstant{vfil}{vfil} \setinterfaceconstant{viewerprefix}{viewerprefix} \setinterfaceconstant{voffset}{voffset} \setinterfaceconstant{vonsep}{vonsep} \setinterfaceconstant{vz}{vz} \setinterfaceconstant{way}{zpusob} \setinterfaceconstant{wfactor}{sfaktor} \setinterfaceconstant{white}{bily} \setinterfaceconstant{width}{sirka} \setinterfaceconstant{words}{words} \setinterfaceconstant{xanchor}{xanchor} \setinterfaceconstant{xfactor}{xfaktor} \setinterfaceconstant{xhtml}{xhtml} \setinterfaceconstant{xmax}{xmax} \setinterfaceconstant{xmlsetup}{xmlsetup} \setinterfaceconstant{xoffset}{xoffset} \setinterfaceconstant{xscale}{xmeritko} \setinterfaceconstant{xstep}{xkrok} \setinterfaceconstant{yanchor}{yanchor} \setinterfaceconstant{yfactor}{yfaktor} \setinterfaceconstant{ymax}{ymax} \setinterfaceconstant{yoffset}{yoffset} \setinterfaceconstant{yscale}{ymeritko} \setinterfaceconstant{ystep}{ykrok} % definitions for interface elements for language cs % \setinterfaceelement{answerlines}{answerlines} \setinterfaceelement{answerspace}{answerspace} \setinterfaceelement{begin}{zacatek} \setinterfaceelement{complete}{uplny} \setinterfaceelement{coupled}{propojene} \setinterfaceelement{currentlocal}{aktualnelokalni} \setinterfaceelement{end}{konec} \setinterfaceelement{endsetup}{} \setinterfaceelement{get}{ziskat} \setinterfaceelement{increment}{zvysit} \setinterfaceelement{list}{seznam} \setinterfaceelement{listof}{seznam} \setinterfaceelement{load}{nacist} \setinterfaceelement{local}{lokalne} \setinterfaceelement{makeup}{zlom} \setinterfaceelement{namednotation}{namednotation} \setinterfaceelement{namedtyping}{namedtyping} \setinterfaceelement{next}{dalsi} \setinterfaceelement{place}{umisti} \setinterfaceelement{previous}{predchozi} \setinterfaceelement{previouslocal}{predchozilokalni} \setinterfaceelement{reserve}{rezervovat} \setinterfaceelement{see}{viz} \setinterfaceelement{setup}{nastaveni} \setinterfaceelement{start}{start} \setinterfaceelement{stop}{stop} \setinterfaceelement{text}{text} \setinterfaceelement{type}{opis} % definitions for interface commands for language cs % \setinterfacecommand{Character}{Znak} \setinterfacecommand{Characters}{Znaky} \setinterfacecommand{MONTH}{MESIC} \setinterfacecommand{Numbers}{Cisla} \setinterfacecommand{Romannumerals}{Rimskecislice} \setinterfacecommand{SmallCapped}{Kap} \setinterfacecommand{SmallCaps}{Kaps} \setinterfacecommand{WEEKDAY}{VSEDNIDEN} \setinterfacecommand{WORD}{SLOVO} \setinterfacecommand{WORDS}{SLOVA} \setinterfacecommand{Word}{Slovo} \setinterfacecommand{Words}{Slova} \setinterfacecommand{about}{oref} \setinterfacecommand{adaptfontfeature}{adaptfontfeature} \setinterfacecommand{adaptlayout}{prizpusobvzhled} \setinterfacecommand{addfeature}{addfeature} \setinterfacecommand{alignbottom}{alignbottom} \setinterfacecommand{aligned}{aligned} \setinterfacecommand{alignedbox}{alignedbox} \setinterfacecommand{alignedline}{alignedline} \setinterfacecommand{alignhere}{alignhere} \setinterfacecommand{alignment}{alignment} \setinterfacecommand{alignmentcharacter}{alignmentcharacter} \setinterfacecommand{applytocharacters}{applytocharacters} \setinterfacecommand{applytofirstcharacter}{applytofirstcharacter} \setinterfacecommand{arg}{arg} \setinterfacecommand{at}{pref} \setinterfacecommand{atleftmargin}{atleftmargin} \setinterfacecommand{atpage}{nastrane} \setinterfacecommand{atrightmargin}{atrightmargin} \setinterfacecommand{background}{pozadi} \setinterfacecommand{backspace}{odsazenizleva} \setinterfacecommand{blackrule}{cernalinka} \setinterfacecommand{blackrules}{cernelinky} \setinterfacecommand{blank}{preskoc} \setinterfacecommand{bookmark}{zalozka} \setinterfacecommand{bottombox}{bottombox} \setinterfacecommand{bottomdistance}{vzdalenostspodku} \setinterfacecommand{bottomheight}{vyskaspodku} \setinterfacecommand{bottomleftbox}{bottomleftbox} \setinterfacecommand{bottomrightbox}{bottomrightbox} \setinterfacecommand{bottomspace}{bottomspace} \setinterfacecommand{buildtextbottomdot}{buildtextbottomdot} \setinterfacecommand{but}{spodek} \setinterfacecommand{button}{tlacitko} \setinterfacecommand{bypassblocks}{bypassblocks} \setinterfacecommand{character}{znak} \setinterfacecommand{characters}{znaky} \setinterfacecommand{chem}{chem} \setinterfacecommand{clip}{orez} \setinterfacecommand{clonefield}{klonujpole} \setinterfacecommand{color}{barva} \setinterfacecommand{colorbar}{barevnalista} \setinterfacecommand{colorvalue}{hodnotabarvy} \setinterfacecommand{column}{sloupec} \setinterfacecommand{comparecolorgroup}{porovnejskupinubarev} \setinterfacecommand{comparepalet}{porovnejpaletu} \setinterfacecommand{completepagenumber}{completepagenumber} \setinterfacecommand{completeregister}{completeregister} \setinterfacecommand{component}{komponenta} \setinterfacecommand{convertnumber}{konvertujcislo} \setinterfacecommand{copyfield}{kopirujpole} \setinterfacecommand{correctwhitespace}{korekcebilehomista} \setinterfacecommand{coupledocument}{propojenydokument} \setinterfacecommand{couplemarking}{propojeneznaceni} \setinterfacecommand{couplepage}{parovastrana} \setinterfacecommand{couplepaper}{dvoustrannypapir} \setinterfacecommand{coupleregister}{propojenyrejstrik} \setinterfacecommand{crlf}{crlf} \setinterfacecommand{currentdate}{aktualnidatum} \setinterfacecommand{currentheadnumber}{aktualnicislonadpisu} \setinterfacecommand{cutspace}{cutspace} \setinterfacecommand{date}{datum} \setinterfacecommand{decouplemarking}{rozpojeneznaceni} \setinterfacecommand{decrementnumber}{decrementnumber} \setinterfacecommand{define}{definuj} \setinterfacecommand{defineaccent}{definujakcent} \setinterfacecommand{defineblank}{definujpreskok} \setinterfacecommand{defineblock}{definujblok} \setinterfacecommand{definebodyfont}{definujzakladnifont} \setinterfacecommand{definebodyfontenvironment}{definujprostredizakladnihofontu} \setinterfacecommand{definebodyfontswitch}{definebodyfontswitch} \setinterfacecommand{definebuffer}{definujbuffer} \setinterfacecommand{definecharacter}{definujznak} \setinterfacecommand{definecharacterkerning}{definecharacterkerning} \setinterfacecommand{definecharacterspacing}{definecharacterspacing} \setinterfacecommand{definecolor}{definujbarvu} \setinterfacecommand{definecolorgroup}{definujskupinubarev} \setinterfacecommand{definecolumnbreak}{definecolumnbreak} \setinterfacecommand{definecolumnset}{definecolumnset} \setinterfacecommand{definecombination}{definecombination} \setinterfacecommand{definecombinedlist}{definujkombinovanyseznam} \setinterfacecommand{definecommand}{definujprikaz} \setinterfacecommand{defineconversion}{definujkonverzi} \setinterfacecommand{definedescription}{definujpopis} \setinterfacecommand{definedfont}{definedfont} \setinterfacecommand{defineenumeration}{definujvycet} \setinterfacecommand{definefallbackfamily}{definefallbackfamily} \setinterfacecommand{definefield}{definujpole} \setinterfacecommand{definefieldstack}{definujzasobnikpoli} \setinterfacecommand{definefiguresymbol}{definujobrazeksymbol} \setinterfacecommand{definefilefallback}{definefilefallback} \setinterfacecommand{definefirstline}{definefirstline} \setinterfacecommand{definefloat}{definujplvouciobjekt} \setinterfacecommand{definefont}{definujfont} \setinterfacecommand{definefontalternative}{definefontalternative} \setinterfacecommand{definefontfallback}{definefontfallback} \setinterfacecommand{definefontfamily}{definefontfamily} \setinterfacecommand{definefontfamilypreset}{definefontfamilypreset} \setinterfacecommand{definefontfeature}{definefontfeature} \setinterfacecommand{definefontfile}{definefontfile} \setinterfacecommand{definefontsize}{definefontsize} \setinterfacecommand{definefontsolution}{definefontsolution} \setinterfacecommand{definefontstyle}{definujstylfontu} \setinterfacecommand{definefontsynonym}{definujsynonumumfontu} \setinterfacecommand{defineframed}{definujoramovani} \setinterfacecommand{defineframedtext}{definujoramovanytext} \setinterfacecommand{definefrozenfont}{definefrozenfont} \setinterfacecommand{definehbox}{definujhbox} \setinterfacecommand{definehead}{definujnadpis} \setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures} \setinterfacecommand{defineindentedtext}{defineindentedtext} \setinterfacecommand{defineinmargin}{defineinmargin} \setinterfacecommand{defineinteractionmenu}{definujinterakcnimenu} \setinterfacecommand{defineitemgroup}{defineitemgroup} \setinterfacecommand{defineitems}{defineitems} \setinterfacecommand{definelabel}{definujpopisek} \setinterfacecommand{definelayer}{definelayer} \setinterfacecommand{definelayout}{definelayout} \setinterfacecommand{definelinenote}{definelinenote} \setinterfacecommand{definelist}{definujseznam} \setinterfacecommand{definelogo}{definujlogo} \setinterfacecommand{definemainfield}{definujhlavnipole} \setinterfacecommand{definemakeup}{definujupravu} \setinterfacecommand{definemarking}{definujznaceni} \setinterfacecommand{definemathalignment}{definemathalignment} \setinterfacecommand{definemode}{definemode} \setinterfacecommand{definenamedcolor}{definenamedcolor} \setinterfacecommand{definenote}{definenote} \setinterfacecommand{defineoutput}{definujvystup} \setinterfacecommand{defineoverlay}{definujprekryv} \setinterfacecommand{definepagebreak}{definepagebreak} \setinterfacecommand{definepalet}{definujpaletu} \setinterfacecommand{definepapersize}{definujvelikostpapiru} \setinterfacecommand{defineparagraphs}{definujodstavce} \setinterfacecommand{defineperiodkerning}{defineperiodkerning} \setinterfacecommand{defineplacement}{defineplacement} \setinterfacecommand{defineprofile}{definujprofil} \setinterfacecommand{defineprogram}{definujprogram} \setinterfacecommand{definerawfont}{definerawfont} \setinterfacecommand{definereference}{definujodkaz} \setinterfacecommand{definereferenceformat}{definujformatodkazu} \setinterfacecommand{definereferencelist}{definujseznamodkazu} \setinterfacecommand{defineregister}{definujrejstrik} \setinterfacecommand{definerule}{definerule} \setinterfacecommand{definesavebuffer}{startsavebuffer} \setinterfacecommand{definesection}{definujsekci} \setinterfacecommand{definesectionblock}{definujbloksekce} \setinterfacecommand{definesorting}{definujtrideni} \setinterfacecommand{definestartstop}{definujstartstop} \setinterfacecommand{definestyle}{definujstyl} \setinterfacecommand{definesubfield}{definujpodpole} \setinterfacecommand{definesymbol}{definujsymbol} \setinterfacecommand{definesynonyms}{definujsynonyma} \setinterfacecommand{definetabletemplate}{definujsablonutabulky} \setinterfacecommand{definetabulate}{definujtabelaci} \setinterfacecommand{definetext}{definujtext} \setinterfacecommand{definetextbackground}{definetextbackground} \setinterfacecommand{definetextnote}{definetextnote} \setinterfacecommand{definetextposition}{definetextposition} \setinterfacecommand{definetextvariable}{definetextvariable} \setinterfacecommand{definetype}{definetype} \setinterfacecommand{definetyping}{definujopis} \setinterfacecommand{defineversion}{definujverzi} \setinterfacecommand{depthspanningtext}{depthspanningtext} \setinterfacecommand{determineheadnumber}{stanovcislonadpisu} \setinterfacecommand{determinelistcharacteristics}{stanovcharakteristickuseznamu} \setinterfacecommand{determineregistercharacteristics}{urcicharakteristikurejstriku} \setinterfacecommand{dimension}{rozmer} \setinterfacecommand{disableinteractionmenu}{zablokujinterakcnimenu} \setinterfacecommand{disablemode}{disablemode} \setinterfacecommand{doaddfeature}{doaddfeature} \setinterfacecommand{domicile}{bydliste} \setinterfacecommand{dontconvertfont}{dontconvertfont} \setinterfacecommand{donttest}{zadnytest} \setinterfacecommand{edgedistance}{vzdalenostokraje} \setinterfacecommand{edgewidth}{sirkaokraje} \setinterfacecommand{emphasisboldface}{emphasisboldface} \setinterfacecommand{emptylines}{emptylines} \setinterfacecommand{enablemode}{enablemode} \setinterfacecommand{environment}{prostredi} \setinterfacecommand{externalfigure}{externiobraz} \setinterfacecommand{fact}{fakt} \setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont} \setinterfacecommand{feature}{feature} \setinterfacecommand{field}{pole} \setinterfacecommand{fieldstack}{zasobnikpoli} \setinterfacecommand{fillinfield}{vyplnovepole} \setinterfacecommand{fillinline}{vyplnovyradek} \setinterfacecommand{fillinrules}{vyplnovelinky} \setinterfacecommand{fillintext}{vyplnenytext} \setinterfacecommand{firstcharacter}{firstcharacter} \setinterfacecommand{fitfield}{prizpusobivepole} \setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid} \setinterfacecommand{fixedspace}{tvrdamezera} \setinterfacecommand{fixedspaces}{tvrdemezery} \setinterfacecommand{flushnotes}{flushnotes} \setinterfacecommand{followprofile}{dodrzujprofil} \setinterfacecommand{followprofileversion}{dodrzujverziprofilu} \setinterfacecommand{followversion}{dodrzujverzi} \setinterfacecommand{footerdistance}{vzdalenostupati} \setinterfacecommand{footerheight}{vyskaupati} \setinterfacecommand{footnote}{poznamkapodcarou} \setinterfacecommand{footnotetext}{footnotetext} \setinterfacecommand{forceblocks}{forceblocks} \setinterfacecommand{forcecharacterstripping}{forcecharacterstripping} \setinterfacecommand{formulanumber}{cislorovnice} \setinterfacecommand{fraction}{zlomek} \setinterfacecommand{framed}{oramovani} \setinterfacecommand{from}{zref} \setinterfacecommand{fromlinenote}{fromlinenote} \setinterfacecommand{getbuffer}{ziskejbuffer} \setinterfacecommand{getfirstcharacter}{getfirstcharacter} \setinterfacecommand{getmarking}{ziskejznaceni} \setinterfacecommand{getnumber}{getnumber} \setinterfacecommand{globaldisablemode}{globaldisablemode} \setinterfacecommand{globalenablemode}{globalenablemode} \setinterfacecommand{globalpreventmode}{globalpreventmode} \setinterfacecommand{godown}{jdidolu} \setinterfacecommand{goto}{jdina} \setinterfacecommand{gotobox}{jdinabox} \setinterfacecommand{gotopage}{jdinastranu} \setinterfacecommand{graycolor}{sedabarva} \setinterfacecommand{greyvalue}{hodnotasedi} \setinterfacecommand{grid}{mrizka} \setinterfacecommand{hairline}{vlasovalinka} \setinterfacecommand{head}{nadpis} \setinterfacecommand{headerdistance}{vzdalenostzahlavi} \setinterfacecommand{headerheight}{vyskazahlavi} \setinterfacecommand{headlevel}{hlavniuroven} \setinterfacecommand{headnumber}{cislonadpisu} \setinterfacecommand{headsym}{headsym} \setinterfacecommand{headtext}{texthlavicky} \setinterfacecommand{heightspanningtext}{heightspanningtext} \setinterfacecommand{hideblocks}{schovejbloky} \setinterfacecommand{high}{vysoky} \setinterfacecommand{hl}{hl} \setinterfacecommand{immediatebetweenlist}{immediatebetweenlist} \setinterfacecommand{immediatetolist}{immediatetolist} \setinterfacecommand{in}{tref} \setinterfacecommand{incrementnumber}{zvysujicicislo} \setinterfacecommand{indenting}{odsazovani} \setinterfacecommand{inframed}{zaramovani} \setinterfacecommand{infull}{plnezneni} \setinterfacecommand{ininner}{ininner} \setinterfacecommand{inleft}{vlevo} \setinterfacecommand{inleftedge}{nalevo} \setinterfacecommand{inleftmargin}{nalevyokraj} \setinterfacecommand{inline}{vradku} \setinterfacecommand{inmargin}{naokraj} \setinterfacecommand{inmframed}{mazaramovani} \setinterfacecommand{inneredgedistance}{inneredgedistance} \setinterfacecommand{inneredgewidth}{inneredgewidth} \setinterfacecommand{innermargindistance}{innermargindistance} \setinterfacecommand{innermarginwidth}{innermarginwidth} \setinterfacecommand{inothermargin}{nadruhyokraj} \setinterfacecommand{inouter}{inouter} \setinterfacecommand{inright}{vpravo} \setinterfacecommand{inrightedge}{napravo} \setinterfacecommand{inrightmargin}{napravyokraj} \setinterfacecommand{installlanguage}{instalacejazyka} \setinterfacecommand{interactionbar}{interakcnilista} \setinterfacecommand{interactionbuttons}{interakcnitlacitka} \setinterfacecommand{interactionmenu}{interaktivnimenu} \setinterfacecommand{item}{polozka} \setinterfacecommand{itemgroup}{itemgroup} \setinterfacecommand{items}{polozky} \setinterfacecommand{itemtag}{itemtag} \setinterfacecommand{its}{pol} \setinterfacecommand{keepblocks}{zachovejbloky} \setinterfacecommand{kerncharacters}{kerncharacters} \setinterfacecommand{label}{poppisek} \setinterfacecommand{labels}{popisky} \setinterfacecommand{labeltext}{textpopisku} \setinterfacecommand{language}{jazyk} \setinterfacecommand{languageCharacters}{languageCharacters} \setinterfacecommand{languagecharacters}{languagecharacters} \setinterfacecommand{leftaligned}{zarovnanovlevo} \setinterfacecommand{leftbottombox}{leftbottombox} \setinterfacecommand{leftedgedistance}{vzdalenostlevehookraje} \setinterfacecommand{leftedgewidth}{sirkalevehookraje} \setinterfacecommand{leftline}{leftline} \setinterfacecommand{leftmargindistance}{vzdalenostlevemarginalie} \setinterfacecommand{leftmarginwidth}{sirkalevemarginalie} \setinterfacecommand{leg}{leg} \setinterfacecommand{linecorrection}{linecorrection} \setinterfacecommand{linenote}{linenote} \setinterfacecommand{linespanningtext}{linespanningtext} \setinterfacecommand{linewidth}{tloustkacary} \setinterfacecommand{listheight}{vyskaseznamu} \setinterfacecommand{listlength}{delkaseznamu} \setinterfacecommand{listsymbol}{listsymbol} \setinterfacecommand{listwidth}{sirkaseznamu} \setinterfacecommand{loadfontgoodies}{loadfontgoodies} \setinterfacecommand{localfootnotes}{localfootnotes} \setinterfacecommand{localnotes}{localnotes} \setinterfacecommand{logfields}{zaznamovepole} \setinterfacecommand{lohi}{nivy} \setinterfacecommand{low}{nizky} \setinterfacecommand{macroname}{jmeno} \setinterfacecommand{mainlanguage}{hlavnijazyk} \setinterfacecommand{makeupheight}{vyskasazby} \setinterfacecommand{makeupwidth}{sirkasazby} \setinterfacecommand{mar}{okr} \setinterfacecommand{marginblock}{marginblock} \setinterfacecommand{margindistance}{vzdalenostmarginalie} \setinterfacecommand{marginrule}{marginalnilinka} \setinterfacecommand{margintext}{marginalnitext} \setinterfacecommand{margintitle}{marginalninadpis} \setinterfacecommand{marginwidth}{sirkamarginalie} \setinterfacecommand{marginword}{marginalnislovo} \setinterfacecommand{marking}{znaceni} \setinterfacecommand{markversion}{oznacverzi} \setinterfacecommand{mathematics}{matematika} \setinterfacecommand{menubutton}{tlacitkomenu} \setinterfacecommand{mframed}{maoramovani} \setinterfacecommand{midaligned}{zarovnanonastred} \setinterfacecommand{mirror}{zrcadlit} \setinterfacecommand{month}{mesic} \setinterfacecommand{moveformula}{moveformula} \setinterfacecommand{moveongrid}{premistinamrizku} \setinterfacecommand{movesidefloat}{movesidefloat} \setinterfacecommand{namedconstruction}{namedconstruction} \setinterfacecommand{nameddescription}{nameddescription} \setinterfacecommand{namedenumeration}{namedenumeration} \setinterfacecommand{navigating}{navigating} \setinterfacecommand{nodimension}{zadnyrozmer} \setinterfacecommand{noheaderandfooterlines}{zadnezahlaviaupati} \setinterfacecommand{noindenting}{zadneodsazovani} \setinterfacecommand{noitem}{noitem} \setinterfacecommand{nolist}{zadnyseznam} \setinterfacecommand{nomarking}{zadneznaceni} \setinterfacecommand{nomoreblocks}{zadnedalsibloky} \setinterfacecommand{nomorefiles}{zadnedalsisoubory} \setinterfacecommand{nop}{nop} \setinterfacecommand{nospace}{zadnamezera} \setinterfacecommand{note}{poznamka} \setinterfacecommand{notesymbol}{notesymbol} \setinterfacecommand{notopandbottomlines}{zadnehorniadolniradky} \setinterfacecommand{notsmallcapped}{nokap} \setinterfacecommand{nowhitespace}{zadnebilemisto} \setinterfacecommand{numberofsubpages}{numberofsubpages} \setinterfacecommand{numbers}{cisla} \setinterfacecommand{outeredgedistance}{outeredgedistance} \setinterfacecommand{outeredgewidth}{outeredgewidth} \setinterfacecommand{outermargindistance}{outermargindistance} \setinterfacecommand{outermarginwidth}{outermarginwidth} \setinterfacecommand{packed}{zhustene} \setinterfacecommand{page}{strana} \setinterfacecommand{pagebreak}{pagebreak} \setinterfacecommand{pagedepth}{pagedepth} \setinterfacecommand{pagenumber}{cislostrany} \setinterfacecommand{pageoffset}{pageoffset} \setinterfacecommand{pagereference}{odkaznastranu} \setinterfacecommand{paperheight}{vyskapapiru} \setinterfacecommand{paperwidth}{sirkapapiru} \setinterfacecommand{periods}{tecky} \setinterfacecommand{placebookmarks}{umistizalozky} \setinterfacecommand{placecombinedlist}{umistikombinovanyseznam} \setinterfacecommand{placefloat}{placefloat} \setinterfacecommand{placefootnotes}{umistipoznamkypodcarou} \setinterfacecommand{placeformula}{umistirovnici} \setinterfacecommand{placeheadnumber}{placeheadnumber} \setinterfacecommand{placeheadtext}{placeheadtext} \setinterfacecommand{placelegend}{umistilegendu} \setinterfacecommand{placelist}{umistiseznam} \setinterfacecommand{placelistofsynonyms}{placelistofsynonyms} \setinterfacecommand{placelocalfootnotes}{umistilokalnipoznamkypodcarou} \setinterfacecommand{placelocalnotes}{placelocalnotes} \setinterfacecommand{placelogos}{umistiloga} \setinterfacecommand{placenamedfloat}{placenamedfloat} \setinterfacecommand{placenotes}{placenotes} \setinterfacecommand{placeongrid}{umistinamrizku} \setinterfacecommand{placeontopofeachother}{umistinadsebe} \setinterfacecommand{placepagenumber}{placepagenumber} \setinterfacecommand{placerawlist}{placerawlist} \setinterfacecommand{placereferencelist}{placereferencelist} \setinterfacecommand{placeregister}{umistirejstrik} \setinterfacecommand{placerule}{placerule} \setinterfacecommand{placesidebyside}{umistivedlesebe} \setinterfacecommand{placesubformula}{umistipodrovnici} \setinterfacecommand{placetextvariable}{placetextvariable} \setinterfacecommand{position}{pozice} \setinterfacecommand{positiontext}{positiontext} \setinterfacecommand{postponenotes}{postponenotes} \setinterfacecommand{postponingnotes}{postponingnotes} \setinterfacecommand{predefinedfont}{predefinedfont} \setinterfacecommand{predefinefont}{predefinefont} \setinterfacecommand{presetdocument}{presetdocument} \setinterfacecommand{prettyprintbuffer}{prettyprintbuffer} \setinterfacecommand{preventmode}{preventmode} \setinterfacecommand{printpaperheight}{vyskatiskpapiru} \setinterfacecommand{printpaperwidth}{sirkatiskpapiru} \setinterfacecommand{processblocks}{zpracujbloky} \setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist} \setinterfacecommand{processpage}{zpracujstranu} \setinterfacecommand{product}{produkt} \setinterfacecommand{program}{program} \setinterfacecommand{project}{projekt} \setinterfacecommand{publication}{publikace} \setinterfacecommand{quotation}{citace} \setinterfacecommand{quote}{citovat} \setinterfacecommand{ran}{ran} \setinterfacecommand{redo}{opakovat} \setinterfacecommand{redoconvertfont}{redoconvertfont} \setinterfacecommand{ref}{ref} \setinterfacecommand{reference}{odkaz} \setinterfacecommand{referral}{odkaz} \setinterfacecommand{referraldate}{odkaznadatum} \setinterfacecommand{referring}{odkazujici} \setinterfacecommand{registerfontclass}{registerfontclass} \setinterfacecommand{registerhyphenationexception}{registerhyphenationexception} \setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern} \setinterfacecommand{remark}{oznaceni} \setinterfacecommand{replacefeature}{replacefeature} \setinterfacecommand{reset}{reset} \setinterfacecommand{resetandaddfeature}{resetandaddfeature} \setinterfacecommand{resetcharacteralign}{resetcharacteralign} \setinterfacecommand{resetcharacterkerning}{resetcharacterkerning} \setinterfacecommand{resetcharacterspacing}{resetcharacterspacing} \setinterfacecommand{resetcharacterstripping}{resetcharacterstripping} \setinterfacecommand{resetfeature}{resetfeature} \setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme} \setinterfacecommand{resetfontfallback}{resetfontfallback} \setinterfacecommand{resetfontsolution}{resetfontsolution} \setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures} \setinterfacecommand{resetlocalfloats}{resetlocalfloats} \setinterfacecommand{resetmarking}{resetznaceni} \setinterfacecommand{resetmode}{resetmode} \setinterfacecommand{resetnumber}{resetnumber} \setinterfacecommand{resetpath}{resetpath} \setinterfacecommand{resetperiodkerning}{resetperiodkerning} \setinterfacecommand{resetsystemmode}{resetsystemmode} \setinterfacecommand{resettextcontent}{resettextcontent} \setinterfacecommand{resetvisualizers}{resetvisualizers} \setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont} \setinterfacecommand{retestfeature}{retestfeature} \setinterfacecommand{revivefeature}{revivefeature} \setinterfacecommand{rightaligned}{zarovnanovpravo} \setinterfacecommand{rightbottombox}{rightbottombox} \setinterfacecommand{rightedgedistance}{vzdalenostpravehookraje} \setinterfacecommand{rightedgewidth}{sirkapravehookraje} \setinterfacecommand{rightline}{rightline} \setinterfacecommand{rightmargindistance}{vzdalenostpravemarginalie} \setinterfacecommand{rightmarginwidth}{sirkapravemarginalie} \setinterfacecommand{romannumerals}{rimskecislice} \setinterfacecommand{rotate}{otocit} \setinterfacecommand{savebuffer}{savebuffer} \setinterfacecommand{scale}{meritko} \setinterfacecommand{screen}{obrazovka} \setinterfacecommand{selectblocks}{vyberbloky} \setinterfacecommand{selectpaper}{vyberpapir} \setinterfacecommand{selectversion}{vyberverzi} \setinterfacecommand{setbigbodyfont}{setbigbodyfont} \setinterfacecommand{setcharacteralign}{setcharacteralign} \setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail} \setinterfacecommand{setcharactercasing}{setcharactercasing} \setinterfacecommand{setcharactercleaning}{setcharactercleaning} \setinterfacecommand{setcharacterkerning}{setcharacterkerning} \setinterfacecommand{setcharacterspacing}{setcharacterspacing} \setinterfacecommand{setcharacterstripping}{setcharacterstripping} \setinterfacecommand{setcurrentfontclass}{setcurrentfontclass} \setinterfacecommand{setfirstline}{setfirstline} \setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign} \setinterfacecommand{setfont}{setfont} \setinterfacecommand{setfontcolorsheme}{setfontcolorsheme} \setinterfacecommand{setfontfeature}{setfontfeature} \setinterfacecommand{setfontsolution}{setfontsolution} \setinterfacecommand{setfontstrut}{setfontstrut} \setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures} \setinterfacecommand{setmainbodyfont}{setmainbodyfont} \setinterfacecommand{setmode}{setmode} \setinterfacecommand{setnote}{setnote} \setinterfacecommand{setnotetext}{setnotetext} \setinterfacecommand{setnumber}{setnumber} \setinterfacecommand{setperiodkerning}{setperiodkerning} \setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign} \setinterfacecommand{setsmallbodyfont}{setsmallbodyfont} \setinterfacecommand{setsystemmode}{setsystemmode} \setinterfacecommand{settextcontent}{settextcontent} \setinterfacecommand{settextvariable}{settextvariable} \setinterfacecommand{setupalign}{nastavzarovnani} \setinterfacecommand{setupanswerarea}{setupanswerarea} \setinterfacecommand{setuparranging}{nastavusporadani} \setinterfacecommand{setupattachment}{setupattachment} \setinterfacecommand{setupbackground}{nastavpozadi} \setinterfacecommand{setupbackgrounds}{nastavpozadi} \setinterfacecommand{setupblackrules}{nastavcernelinky} \setinterfacecommand{setupblank}{nastavpreskok} \setinterfacecommand{setupblock}{nastavblok} \setinterfacecommand{setupbodyfont}{nastavzakladnifont} \setinterfacecommand{setupbodyfontenvironment}{nastavprostredizakladnihofontu} \setinterfacecommand{setupbottom}{nastavspodek} \setinterfacecommand{setupbottomtexts}{nastavdolnitexty} \setinterfacecommand{setupbuffer}{nastavbuffer} \setinterfacecommand{setupbuttons}{nastavtlacitka} \setinterfacecommand{setupcapitals}{nastavkapitalky} \setinterfacecommand{setupcaption}{nastavpopisek} \setinterfacecommand{setupcaptions}{nastavpopisky} \setinterfacecommand{setupcharacteralign}{setupcharacteralign} \setinterfacecommand{setupcharacterkerning}{setupcharacterkerning} \setinterfacecommand{setupcharacterspacing}{setupcharacterspacing} \setinterfacecommand{setupclipping}{nastavorez} \setinterfacecommand{setupcolor}{nastavbarvu} \setinterfacecommand{setupcolors}{nastavbarvy} \setinterfacecommand{setupcolumns}{nastavsloupce} \setinterfacecommand{setupcolumnset}{setupcolumnset} \setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines} \setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart} \setinterfacecommand{setupcombinations}{nastavspojeni} \setinterfacecommand{setupcombinedlist}{nastavkombinovanyseznam} \setinterfacecommand{setupcomment}{nastavkomentar} \setinterfacecommand{setupcounter}{setupcounter} \setinterfacecommand{setupdescription}{setupdescription} \setinterfacecommand{setupdescriptions}{nastavpopisy} \setinterfacecommand{setupenumeration}{setupenumeration} \setinterfacecommand{setupenumerations}{nastavvycty} \setinterfacecommand{setupexternalfigures}{nastavexterniobrazy} \setinterfacecommand{setupfield}{nastavpole} \setinterfacecommand{setupfields}{nastavvsechnapole} \setinterfacecommand{setupfillinlines}{nastavvyplnoveradky} \setinterfacecommand{setupfillinrules}{nastavvyplnovelinky} \setinterfacecommand{setupfirstline}{setupfirstline} \setinterfacecommand{setupfloat}{nastavplvouciobjekt} \setinterfacecommand{setupfloats}{nastavplvouciobjekty} \setinterfacecommand{setupfloatsplitting}{nastavdeleniplvoucichobjektu} \setinterfacecommand{setupfontexpansion}{setupfontexpansion} \setinterfacecommand{setupfontprotrusion}{setupfontprotrusion} \setinterfacecommand{setupfonts}{setupfonts} \setinterfacecommand{setupfontsolution}{setupfontsolution} \setinterfacecommand{setupfooter}{nastavupati} \setinterfacecommand{setupfootertexts}{nastavtextyupati} \setinterfacecommand{setupfootnotedefinition}{nastavdefinicipoznamekpodcarou} \setinterfacecommand{setupfootnotes}{nastavpoznamkypodcarou} \setinterfacecommand{setupforms}{setupforms} \setinterfacecommand{setupformula}{setupformula} \setinterfacecommand{setupformulas}{nastavrovnice} \setinterfacecommand{setupframed}{nastavoramovani} \setinterfacecommand{setupframedtext}{setupframedtext} \setinterfacecommand{setupframedtexts}{nastavoramovanetexty} \setinterfacecommand{setuphead}{nastavnadpis} \setinterfacecommand{setupheader}{nastavzahlavi} \setinterfacecommand{setupheadertexts}{nastavtextyzahlavi} \setinterfacecommand{setupheadnumber}{nastavcislonadpisu} \setinterfacecommand{setupheads}{nastavnadpisy} \setinterfacecommand{setupheadtext}{nastavtexthlavicky} \setinterfacecommand{setuphyphenation}{setuphyphenation} \setinterfacecommand{setuphyphenmark}{nastavdelitko} \setinterfacecommand{setupindentedtext}{setupindentedtext} \setinterfacecommand{setupindenting}{nastavodsazovani} \setinterfacecommand{setupinmargin}{nastavmarginalie} \setinterfacecommand{setupinteraction}{nastavinterakci} \setinterfacecommand{setupinteractionbar}{nastavinterakcnilistu} \setinterfacecommand{setupinteractionmenu}{nastavinterakcnimenu} \setinterfacecommand{setupinteractionscreen}{nastavinterakcniobrazovku} \setinterfacecommand{setupinterlinespace}{nastavmeziradkovoumezeru} \setinterfacecommand{setupitemgroup}{setupitemgroup} \setinterfacecommand{setupitemgroups}{nastavvycty} \setinterfacecommand{setupitems}{nastavpolozky} \setinterfacecommand{setuplabeltext}{nastavtextpopisku} \setinterfacecommand{setuplanguage}{nastavjazyk} \setinterfacecommand{setuplayout}{nastavvzhled} \setinterfacecommand{setuplegend}{nastavlegendu} \setinterfacecommand{setuplinenote}{setuplinenote} \setinterfacecommand{setuplinenumbering}{nastavcislovaniradku} \setinterfacecommand{setuplines}{nastavradky} \setinterfacecommand{setuplinewidth}{nastavsirkucary} \setinterfacecommand{setuplist}{nastavseznam} \setinterfacecommand{setupmakeup}{nastavupravu} \setinterfacecommand{setupmarginblock}{setupmarginblock} \setinterfacecommand{setupmarginblocks}{nastavmarginalniblok} \setinterfacecommand{setupmargindata}{setupmargindata} \setinterfacecommand{setupmarginrules}{nastavmarginalnilinky} \setinterfacecommand{setupmarking}{nastavznaceni} \setinterfacecommand{setupmathalignment}{setupmathalignment} \setinterfacecommand{setupnarrower}{nastavzuzeni} \setinterfacecommand{setupnotation}{setupnotation} \setinterfacecommand{setupnotations}{setupnotations} \setinterfacecommand{setupnote}{setupnote} \setinterfacecommand{setupnotes}{setupnotes} \setinterfacecommand{setupnumber}{setupnumber} \setinterfacecommand{setupnumbering}{nastavcislovani} \setinterfacecommand{setupoppositeplacing}{nastavumisteniprotejsku} \setinterfacecommand{setupoutput}{nastavvystup} \setinterfacecommand{setuppagecomment}{nastavkomentarstrany} \setinterfacecommand{setuppagenumber}{nastavcislostrany} \setinterfacecommand{setuppagenumbering}{nastavcislovanistran} \setinterfacecommand{setuppagetransitions}{nastavprechodstrany} \setinterfacecommand{setuppalet}{nastavpaletu} \setinterfacecommand{setuppaper}{setuppaper} \setinterfacecommand{setuppapersize}{nastavvelikostpapiru} \setinterfacecommand{setupparagraphnumbering}{nastavcislovaniodstavcu} \setinterfacecommand{setupparagraphs}{nastavodstavce} \setinterfacecommand{setupperiodkerning}{setupperiodkerning} \setinterfacecommand{setupplacement}{setupplacement} \setinterfacecommand{setuppositioning}{nastavumistovani} \setinterfacecommand{setupprofiles}{nastavprofily} \setinterfacecommand{setupprograms}{nastavprogramy} \setinterfacecommand{setuppublications}{nastavpublikace} \setinterfacecommand{setupquote}{nastavcitaci} \setinterfacecommand{setupreferencelist}{nastavseznamodkazu} \setinterfacecommand{setupreferencing}{nastavodkazovani} \setinterfacecommand{setupregister}{nastavrejstrik} \setinterfacecommand{setuprotate}{nastavotoceni} \setinterfacecommand{setuprule}{setuprule} \setinterfacecommand{setupscreens}{nastavrastr} \setinterfacecommand{setupsection}{nastavsekci} \setinterfacecommand{setupsectionblock}{nastavbloksekce} \setinterfacecommand{setupsorting}{nastavtrideni} \setinterfacecommand{setupspacing}{nastavradkovani} \setinterfacecommand{setupstartstop}{setupstartstop} \setinterfacecommand{setupstrut}{setupstrut} \setinterfacecommand{setupsubpagenumber}{nastavpodcislostrany} \setinterfacecommand{setupsymbolset}{nastavsadusymbolu} \setinterfacecommand{setupsynchronization}{nastavsynchronizaci} \setinterfacecommand{setupsynchronizationbar}{nastavsynchronizacnilistu} \setinterfacecommand{setupsynonyms}{nastavsynonyma} \setinterfacecommand{setupsystem}{nastavsystem} \setinterfacecommand{setuptab}{nastavtab} \setinterfacecommand{setuptables}{nastavtabulky} \setinterfacecommand{setuptabulate}{nastavtabelaci} \setinterfacecommand{setuptext}{nastavtext} \setinterfacecommand{setuptextbackground}{setuptextbackground} \setinterfacecommand{setuptextnote}{setuptextnote} \setinterfacecommand{setuptextposition}{setuptextposition} \setinterfacecommand{setuptextrules}{nastavtextovelinky} \setinterfacecommand{setuptexttexts}{nastavtexttexty} \setinterfacecommand{setuptextvariable}{setuptextvariable} \setinterfacecommand{setupthinrules}{nastavtenkelinky} \setinterfacecommand{setuptolerance}{nastavtoleranci} \setinterfacecommand{setuptop}{nastavhorejsek} \setinterfacecommand{setuptoptexts}{nastavhornitexty} \setinterfacecommand{setuptype}{nastavtype} \setinterfacecommand{setuptyping}{nastavopis} \setinterfacecommand{setupunderbar}{nastavpodtrzeni} \setinterfacecommand{setupurl}{nastavurl} \setinterfacecommand{setupversions}{nastavverze} \setinterfacecommand{setupwhitespace}{nastavbilamista} \setinterfacecommand{setvisualizerfont}{setvisualizerfont} \setinterfacecommand{showbodyfont}{ukazzakladnifont} \setinterfacecommand{showbodyfontenvironment}{ukazpostredizakladnihofontu} \setinterfacecommand{showcolor}{ukazbarvu} \setinterfacecommand{showcolorgroup}{ukazskupinubarev} \setinterfacecommand{showcounter}{showcounter} \setinterfacecommand{showexternalfigures}{ukazexterniobrazy} \setinterfacecommand{showfields}{ukazpole} \setinterfacecommand{showfont}{showfont} \setinterfacecommand{showfontdata}{showfontdata} \setinterfacecommand{showfontexpansion}{showfontexpansion} \setinterfacecommand{showfontitalics}{showfontitalics} \setinterfacecommand{showfontkerns}{showfontkerns} \setinterfacecommand{showfontparameters}{showfontparameters} \setinterfacecommand{showfontstrip}{showfontstrip} \setinterfacecommand{showfontstyle}{showfontstyle} \setinterfacecommand{showframe}{ukazramecek} \setinterfacecommand{showgrid}{ukazmrizku} \setinterfacecommand{showhyphenationtrace}{showhyphenationtrace} \setinterfacecommand{showkerning}{showkerning} \setinterfacecommand{showlayout}{ukazvzhled} \setinterfacecommand{showmakeup}{ukazupravu} \setinterfacecommand{showminimalbaseline}{showminimalbaseline} \setinterfacecommand{showpalet}{ukazpaletu} \setinterfacecommand{showprint}{ukazvytisk} \setinterfacecommand{showsetups}{ukaznastaveni} \setinterfacecommand{showstruts}{ukazpodpery} \setinterfacecommand{showsymbolset}{ukazsadusymbolu} \setinterfacecommand{smallcapped}{kap} \setinterfacecommand{someline}{nejakyradek} \setinterfacecommand{somewhere}{nekde} \setinterfacecommand{space}{mezera} \setinterfacecommand{specialitem}{specialitem} \setinterfacecommand{splitfloat}{rozdelplvouciobjekt} \setinterfacecommand{startalignment}{startzarovnavani} \setinterfacecommand{startbackground}{startpozadi} \setinterfacecommand{startcoding}{startkodovani} \setinterfacecommand{startcolor}{startbarva} \setinterfacecommand{startcolumnmakeup}{startcolumnmakeup} \setinterfacecommand{startcolumns}{startsloupce} \setinterfacecommand{startcolumnset}{startcolumnset} \setinterfacecommand{startcombination}{startspojeni} \setinterfacecommand{startcomponent}{startkomponenta} \setinterfacecommand{startdocument}{startdokument} \setinterfacecommand{startenvironment}{startprostredi} \setinterfacecommand{startfigure}{startobraz} \setinterfacecommand{startframed}{startframed} \setinterfacecommand{startglobal}{startglobalni} \setinterfacecommand{startline}{startradek} \setinterfacecommand{startlinecorrection}{startkorekceradku} \setinterfacecommand{startlinenote}{startlinenote} \setinterfacecommand{startlinenumbering}{startcislovaniradku} \setinterfacecommand{startlines}{startradky} \setinterfacecommand{startlocal}{startlokalni} \setinterfacecommand{startlocalfootnotes}{startlokalnipoznamkypodcarou} \setinterfacecommand{startmakeup}{startuprava} \setinterfacecommand{startmarginblock}{startmarginalniblok} \setinterfacecommand{startmarginrule}{startmarginalnilinka} \setinterfacecommand{startnamedconstruction}{startnamedconstruction} \setinterfacecommand{startnameddescription}{startnameddescription} \setinterfacecommand{startnamedenumeration}{startnamedenumeration} \setinterfacecommand{startnamedmatrix}{startnamedmatrix} \setinterfacecommand{startnamedsection}{startnamedsection} \setinterfacecommand{startnamedsubformulas}{startnamedsubformulas} \setinterfacecommand{startnamedtyping}{startnamedtyping} \setinterfacecommand{startnarrower}{startzuzeni} \setinterfacecommand{startopposite}{startprotejsek} \setinterfacecommand{startoverlay}{startprekryv} \setinterfacecommand{startoverview}{startprehled} \setinterfacecommand{startpacked}{startzhustene} \setinterfacecommand{startpositioning}{startumistovani} \setinterfacecommand{startproduct}{startprodukt} \setinterfacecommand{startprofile}{startprofil} \setinterfacecommand{startproject}{startprojekt} \setinterfacecommand{startquotation}{startcitace} \setinterfacecommand{startraster}{startrastr} \setinterfacecommand{startsymbolset}{startsadasymbolu} \setinterfacecommand{startsynchronization}{startsynchronizace} \setinterfacecommand{starttable}{starttabulka} \setinterfacecommand{starttables}{starttabulky} \setinterfacecommand{starttext}{starttext} \setinterfacecommand{starttextbackground}{starttextbackground} \setinterfacecommand{starttextrule}{starttextovalinka} \setinterfacecommand{startunpacked}{startnezhustene} \setinterfacecommand{startversion}{startverze} \setinterfacecommand{stopalignment}{stopzarovnavani} \setinterfacecommand{stopbackground}{stoppozadi} \setinterfacecommand{stopcoding}{stopkodovani} \setinterfacecommand{stopcolor}{stopbarva} \setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup} \setinterfacecommand{stopcolumns}{stopsloupce} \setinterfacecommand{stopcolumnset}{stopcolumnset} \setinterfacecommand{stopcombination}{stopspojeni} \setinterfacecommand{stopcomponent}{stopkomponenta} \setinterfacecommand{stopdocument}{stopdokument} \setinterfacecommand{stopenvironment}{stopprostredi} \setinterfacecommand{stopframed}{stopframed} \setinterfacecommand{stopglobal}{stopglobalni} \setinterfacecommand{stopline}{stopradek} \setinterfacecommand{stoplinecorrection}{stopkorekceradku} \setinterfacecommand{stoplinenote}{stoplinenote} \setinterfacecommand{stoplinenumbering}{stopcislovaniradku} \setinterfacecommand{stoplines}{stopradky} \setinterfacecommand{stoplocal}{stoplokalni} \setinterfacecommand{stoplocalfootnotes}{stoplokalnipoznamkypodcarou} \setinterfacecommand{stopmakeup}{stopuprava} \setinterfacecommand{stopmarginblock}{stopmarginalniblok} \setinterfacecommand{stopmarginrule}{stopmarginalnilinka} \setinterfacecommand{stopnamedconstruction}{stopnamedconstruction} \setinterfacecommand{stopnameddescription}{stopnameddescription} \setinterfacecommand{stopnamedenumeration}{stopnamedenumeration} \setinterfacecommand{stopnamedmatrix}{stopnamedmatrix} \setinterfacecommand{stopnamedsection}{stopnamedsection} \setinterfacecommand{stopnamedsubformulas}{stopnamedsubformulas} \setinterfacecommand{stopnamedtyping}{stopnamedtyping} \setinterfacecommand{stopnarrower}{stopzuzeni} \setinterfacecommand{stopopposite}{stopprotejsek} \setinterfacecommand{stopoverlay}{stopprekryv} \setinterfacecommand{stopoverview}{stopprehled} \setinterfacecommand{stoppacked}{stopzhustene} \setinterfacecommand{stoppositioning}{stopumistovani} \setinterfacecommand{stopproduct}{stopprodukt} \setinterfacecommand{stopprofile}{stopprofil} \setinterfacecommand{stopproject}{stopprojekt} \setinterfacecommand{stopquotation}{stopcitace} \setinterfacecommand{stopraster}{stoprastr} \setinterfacecommand{stopsynchronization}{stopsynchronizace} \setinterfacecommand{stoptable}{stoptabulka} \setinterfacecommand{stoptables}{stoptabulky} \setinterfacecommand{stoptext}{stoptext} \setinterfacecommand{stoptextbackground}{stoptextbackground} \setinterfacecommand{stoptextrule}{stoptextovalinka} \setinterfacecommand{stopunpacked}{stopnezhustene} \setinterfacecommand{stopversion}{stopverze} \setinterfacecommand{stretched}{roztazene} \setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter} \setinterfacecommand{stripcharacter}{stripcharacter} \setinterfacecommand{subformulanumber}{cislopodrovnice} \setinterfacecommand{subpagenumber}{subpagenumber} \setinterfacecommand{subtractfeature}{subtractfeature} \setinterfacecommand{switchtobodyfont}{prepninazakladnifont} \setinterfacecommand{switchtorawfont}{switchtorawfont} \setinterfacecommand{sym}{sym} \setinterfacecommand{symbol}{symbol} \setinterfacecommand{symoffset}{symoffset} \setinterfacecommand{synchronizationbar}{synchronizacnilista} \setinterfacecommand{synchronize}{synchronizovat} \setinterfacecommand{tab}{tab} \setinterfacecommand{testcolumn}{testcolumn} \setinterfacecommand{testfeature}{testfeature} \setinterfacecommand{testfeatureonce}{testfeatureonce} \setinterfacecommand{testpage}{testpage} \setinterfacecommand{tex}{tex} \setinterfacecommand{textbackground}{textbackground} \setinterfacecommand{textcolor}{textcolor} \setinterfacecommand{textheight}{vyskatextu} \setinterfacecommand{textnote}{textnote} \setinterfacecommand{textreference}{odkaznatext} \setinterfacecommand{textrule}{textovalinka} \setinterfacecommand{textvariable}{textvariable} \setinterfacecommand{textwidth}{sirkatextu} \setinterfacecommand{thefirstcharacter}{thefirstcharacter} \setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize} \setinterfacecommand{theremainingcharacters}{theremainingcharacters} \setinterfacecommand{thinrule}{tenkalinka} \setinterfacecommand{thinrules}{tenkelinky} \setinterfacecommand{tolinenote}{tolinenote} \setinterfacecommand{tooltip}{bublinkovanapoveda} \setinterfacecommand{topdistance}{vzdalenosthorejsku} \setinterfacecommand{topheight}{vyskahorejsku} \setinterfacecommand{topspace}{odsazenishora} \setinterfacecommand{totalnumberofpages}{celkovypocetstran} \setinterfacecommand{translate}{prelozit} \setinterfacecommand{txt}{txt} \setinterfacecommand{typ}{pis} \setinterfacecommand{type}{opis} \setinterfacecommand{typebuffer}{typebuffer} \setinterfacecommand{typedefinedbuffer}{typedefinedbuffer} \setinterfacecommand{typefile}{opissoubor} \setinterfacecommand{typeinlinebuffer}{typeinlinebuffer} \setinterfacecommand{typing}{typing} \setinterfacecommand{unitmeaning}{vyznam} \setinterfacecommand{unknown}{neznamo} \setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern} \setinterfacecommand{useJSscripts}{uzijJSscripts} \setinterfacecommand{useURL}{uzijURL} \setinterfacecommand{useXMLfilter}{useXMLfilter} \setinterfacecommand{useblocks}{uzijbloky} \setinterfacecommand{usebodyfont}{usebodyfont} \setinterfacecommand{usebodyfontparameter}{usebodyfontparameter} \setinterfacecommand{usecommands}{uzijprikazy} \setinterfacecommand{useencoding}{uzijkodovani} \setinterfacecommand{useexternaldocument}{uzijexternidokument} \setinterfacecommand{useexternalfigure}{uzijexterniobraz} \setinterfacecommand{useexternalfile}{uzijexternisoubor} \setinterfacecommand{useexternalfiles}{uzijexternisoubory} \setinterfacecommand{useexternalsoundtrack}{uzijexternizvuk} \setinterfacecommand{usemodule}{uzijmodul} \setinterfacecommand{usemodules}{uzijmoduly} \setinterfacecommand{usepath}{uzijadresar} \setinterfacecommand{usereferences}{uzijodkazy} \setinterfacecommand{usespecials}{uzijspeciality} \setinterfacecommand{usesymbols}{uzijsymbol} \setinterfacecommand{usetypescript}{usetypescript} \setinterfacecommand{usetypescriptfile}{usetypescriptfile} \setinterfacecommand{useurl}{uzijurl} \setinterfacecommand{verbatim}{verbatim} \setinterfacecommand{version}{verze} \setinterfacecommand{vl}{vl} \setinterfacecommand{weekday}{vsedniden} \setinterfacecommand{whitespace}{bilemisto} \setinterfacecommand{widthspanningtext}{widthspanningtext} \setinterfacecommand{wordright}{slovovpravo} \setinterfacecommand{writebetweenlist}{zapismeziseznam} \setinterfacecommand{writetolist}{zapisdoseznamu} \setinterfacecommand{writetoreferencelist}{zapisdoseznamuodkazu} \setinterfacecommand{writetoregister}{zapisdorejstriku} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/pack-rul.mkii0000644000175000017500000033133514536300610024701 0ustar hillehille%D \module %D [ file=pack-rul, % was core-rul, %D version=1998.10.16, %D title=\CONTEXT\ Packaging Macros, %D subtitle=Ruled Content, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Packaging Macros / Ruled Content} \unprotect %D We have removed the rather old and out dated raster methods. They %D have not been used for ages. %D \macros %D {linewidth, setuplinewidth} %D %D This module deals with rules (lines) in several ways. First %D we introduce two macros that can be used to set some common %D characteristics. %D %D \showsetup{setuplinewidth} %D %D The linewidth is available in \type{\linewidth}. The %D preset value of .4pt equals the default hard coded \TEX\ %D rule width. \newdimen\linewidth \def\dosetuplinewidth[#1]% {\assigndimension{#1}\linewidth{.2\points}{.4\points}{.6\points}} \def\setuplinewidth {\dosingleargument\dosetuplinewidth} %D \macros %D {ruledlinewidth, inheritruledlinewidth} %D %D Inside framed boxed we will use a private dimensions. As %D an option one can let the linewidth inherit its value from %D this one. \newdimen\ruledlinewidth \newif\ifinheritruledlinewidth % %D \TEX\ lacks support for color and even gray scales. The next % %D macros can provide a sort of poor mans gray scales as well % %D as give access to more suitable methods of rendering. Such a % %D method looks like: % %D % %D \starttyping % %D \def\methodegraybox#1#2#3#4#5#6% % %D { ... } % %D \stoptyping % %D % %D The string \type{graybox} is a common element in the name, % %D so we can have for instance \type {\postscriptgraybox} or % %D \type {\texgraybox}. The first three arguments take a % %D dimension, the fourth one takes a number between~0 and~1, % %D and the last argument specifies a radius of the box when % %D rounded corners are used, so: % %D % %D \startbuffer % %D \dotgraybox{.5\hsize}{1cm}{0cm}{.85}{\v!no}{0pt} % %D \stopbuffer % %D % %D \typebuffer % %D % %D becomes: % %D % %D %\startlinecorrection % %D % \vbox to 1cm{\getbuffer} % %D %\stoplinecorrection % %D % %D \startlinecorrection % %D \unprotect % %D \vbox to 1cm{\dotgraybox{.5\hsize}{1cm}{0cm}{.85}{\v!no}{0pt}} % %D \protect % %D \stoplinecorrection % %D % %D There are two predefined methodes, one uses periods and the % %D other uses small rules. The second method is less % %D efficient, but sometimes give better results. The dimensions % %D of the resullting box are set to zero. % % \setvalue{\v!dot graybox}{\processraster\symbol\rasterdot} % \setvalue{\v!rule graybox}{\processraster\symbol\rasterbox} % % \def\rasterdot{\rasterfont.} % \def\rasterbox{\hss\vrule\!!width.4pt\!!height.4pt\!!depth\zeropoint} % % %D Now of course we need: % % \ifx\rasterfont\undefined \def\rasterfont{\fivepoint} \fi % % %D We implement two pure \TEX\ based generators, that use % %D \type{\leaders} to quickly gerenate the gray pattern. One % %D should beware of \DIMENSION\ conflicts, so we use some % %D registers above~8. These macros are memory hungry and byte % %D spoiling. % % \def\processraster#1#2#3#4#5#6#7% % {\bgroup % \forgetall % \dontcomplain % \dimen10=\onepoint % \dimen10=\@@rsfactor\dimen10 % \dimen10=#5\dimen10 % \setbox2\hbox to #2 % {\cleaders\hbox to 2\dimen10{#1\hss}\hss}% % \dimen12=#3% % \advance\dimen12 #4% % % \setbox0\vbox to \dimen12 % {\cleaders\vbox to 2\dimen10{\box2\vss}\vss}% % \setbox0\hbox % {\hskip-.5\dimen10\lower0.5\dimen10\copy0 % \hskip-\wd0\hskip\dimen10\lower1.5\dimen10\box0}% % \box0 % \egroup} %D \macros %D {setupscreens} %D %D The previous macro uses a predefined constant %D \type{\@@rsfactor}. This factor can be set by: %D %D \showsetup{setupscreens} \def\setupscreens {\dodoubleargument\getparameters[\??rs]} % %D The most appropriate way to call for this feature is % %D using \type{\graybox}, which is defined as: % % \def\graybox{\getvalue{\@@rsmethod graybox}} % % %D We just introduced two pure \TEX\ methods for generating % %D rasters. However, it's far more efficient and comfortable in % %D terms of speed, memory usage and file size, to use a driver % %D supported method. % % \setvalue{\v!external graybox}{\setgraybox} % % %D For compatibility reasons we also define the original one: % % \setvalue{\v!postscript graybox}{\getvalue{\v!external graybox}} % % %D A quite valid way of letting drivers do the job, is giving % %D a solid rule a gray texture. %D We will communicate through module specific variables, current %D framed parameters and some reserved dimension registers. \newdimen \frameddimenwd \newdimen \frameddimenht \newdimen \frameddimendp %D We don't have to stick to a \TEX\ drawn rule, but %D also can use rounded or even fancier shapes, as we will %D see later on. \def\dofilledbox {\bgroup \doifelse{\framedparameter\c!backgroundcorner}\v!rectangular {\dofilledlinedbox} {\ifzeropt\dimexpr\framedparameter\c!backgroundradius\relax % just in case of .x\bodyfontsize \dofilledlinedbox \else \dofilledroundbox \fi}% \egroup} \def\dophantombox {\hphantom{\dofilledbox}} \def\dofilledlinedbox {\vrule\!!width\frameddimenwd\!!height\frameddimenht\!!depth\frameddimendp\relax}% \def\dostrokedroundbox {\doif{\framedparameter\c!frame}\v!on\dodostrokedroundbox} \def\dodostrokedroundbox {\bgroup \edef\ovalmod{\framedparameter\c!framecorner}% \doifelse\ovalmod\v!round{\let\ovalmod\!!zerocount}{\edef\ovalmod{\number\ovalmod}}% \edef\ovalwid{\the\frameddimenwd}% \edef\ovalhei{\the\frameddimenht}% \edef\ovaldep{\the\frameddimendp}% \edef\ovallin{\the\dimexpr\ruledlinewidth}% \edef\ovalrad{\the\dimexpr\framedparameter\c!frameradius}% \let\ovalstr\!!plusone \let\ovalfil\!!zerocount \forcecolorhack \doovalbox\ovalwid\ovalhei\ovaldep\ovallin\ovalrad\ovalstr\ovalfil\ovalmod \egroup} \def\dofilledroundbox {\bgroup \edef\ovalmod{\framedparameter\c!backgroundcorner}% \doifelse\ovalmod\v!round{\let\ovalmod\!!zerocount}{\edef\ovalmod{\number\ovalmod}}% \edef\ovalwid{\the\frameddimenwd}% \edef\ovalhei{\the\frameddimenht}% \edef\ovaldep{\the\frameddimendp}% \edef\ovallin{\the\dimexpr\ruledlinewidth\relax}% \edef\ovalrad{\the\dimexpr\framedparameter\c!backgroundradius\relax}% \let\ovalstr\!!zerocount \let\ovalfil\!!plusone \forcecolorhack \doovalbox\ovalwid\ovalhei\ovaldep\ovallin\ovalrad\ovalstr\ovalfil\ovalmod \egroup} % a lot of weird corners % % \startTEXpage % \dontleavehmode\framed % [corner=0,frame=on,framecolor=green, % background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}% % \vskip1em % \dontleavehmode\dostepwiserecurse {1} {4}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green, % background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}% % \quad} % \vskip1em % \dontleavehmode\dostepwiserecurse {5} {8}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green, % background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}% % \quad} % \vskip1em % \dontleavehmode\dostepwiserecurse {1} {4}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}% % \quad} % \vskip1em % \dontleavehmode\dostepwiserecurse {5} {8}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}% % \quad} % \vskip1em % \dontleavehmode\dostepwiserecurse {9}{12}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}% % \quad} % \vskip1em % \dontleavehmode\dostepwiserecurse{13}{16}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}% % \quad} % \vskip1em % \dontleavehmode\dostepwiserecurse{17}{20}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}% % \quad} % \vskip1em % \dontleavehmode\dostepwiserecurse{21}{24}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}% % \quad} % \vskip1em % \dontleavehmode\dostepwiserecurse{25}{28}{1}{\framed % [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}% % \quad} % \stopTEXpage %D The oval box is drawn using a special macro, depending on %D the driver in use. \def\dograybox % avoid black rules when no gray {\doifelsenothing{\framedparameter\c!backgroundscreen} {\dophantombox} {\raster[\framedparameter\c!backgroundscreen]{\dofilledbox}}} %D It won't be a surprise that we not only provide gray boxes, %D but also colored ones. Here it is: \def\docolorbox {\hbox{\ifincolor \doifcolorelse{\framedparameter\c!backgroundcolor} {\localcolortrue\color[\framedparameter\c!backgroundcolor]{\dofilledbox}} {\dophantombox}% \else \dophantombox \fi}} %D \macros %D {defineoverlay, doifoverlayelse, overlayoffset, %D overlaywidth, overlayheight, overlaydepth, %D overlaycolor, overlaylinecolor, overlaylinewidth} %D %D Before we define the macro that actually takes card of the %D backgrounds, we introduce overlays. An overlay is something %D that contrary to its name lays {\em under} the text. An %D example of an overlay definition is: %D %D \startbuffer[tmp-1] %D \defineoverlay %D [fancy] %D [{\externalfigure %D [mp-cont.502] %D [width=\overlaywidth, %D height=\overlayheight]}] %D \stopbuffer %D %D \typebuffer[tmp-1] %D %D That for instance can be uses in: %D %D \startbuffer[tmp-2] %D \framed[backgroundachtergrond=fancy]{How Fancy!} %D \framed[backgroundachtergrond=fancy,frame=off]{Even More Fancy!} %D \stopbuffer %D %D and looks like: %D %D \startlinecorrection %D \vbox{\baselineskip24pt\getbuffer[tmp-1]\getbuffer[tmp-2]} %D \stoplinecorrection %D %D The formal definition is: %D %D \showsetup{defineoverlay} %D %D This macro's definition is a bit obscure, due the many %D non||used arguments and the two step call that enable the %D setting of the width, height and depth variables. %D Multiple backgrounds are possible and are specified as: %D %D \starttyping %D \framed[background={one,two,three}]{Three backgrounds!} %D \stoptyping %D %D Most drawing packages only know width and height. Therefore %D the dimensions have a slightly different meaning here: %D %D \startitemize[packed] %D \item \type{\overlaywidth }: width of the overlay %D \item \type{\overlayheight}: height plus depth of the overlay %D \item \type{\overlaydepth }: depth of the overlay %D \stopitemize %D %D The resulting box is lowered to the right depth. \def\overlaywidth {\the\hsize\space} % We preset the variables \def\overlayheight {\the\vsize\space} % to some reasonable default \let\overlaydepth \!!zeropoint % values. The attributes \let\overlayoffset \!!zeropoint % of the frame can be (are) \let\overlaycolor \empty % set somewhere else. \let\overlaylinewidth \!!zeropoint % \let\overlaylinecolor \empty % %D The next register is used to initialize overlays. \newtoks\everyoverlay %D An example of an initialization is the following (overlays %D can contain text and be executed under an regime where %D interlineskip is off). \appendtoks \oninterlineskip \to \everyoverlay \def\defineoverlay {\dodoubleargument\dodefineoverlay} \def\dodefineoverlay[#1][#2]% {\def\docommand##1{\setvalue{\??ov##1}{\executedefinedoverlay{##1}{#2}}}% \processcommalist[#1]\docommand} \prependtoks \hsize\overlaywidth \vsize\overlayheight \to\everyoverlay \long\def\executedefinedoverlay#1#2% {\bgroup \edef\overlaywidth {\the\frameddimenwd\space}% \edef\overlayheight{\the\dimexpr\frameddimenht+\frameddimendp\relax\space}% \edef\overlaydepth {\the\frameddimendp\space}% \edef\overlaycolor {\framedparameter\c!backgroundcolor}% %\edef\overlaycorner{\framedparameter\c!backgroundcorner}% %\edef\overlayradius{\framedparameter\c!backgroundradius}% \let\overlayoffset\backgroundoffset % we steal this one \setbox\scratchbox\hbox{\lower\overlaydepth\hbox{\the\everyoverlay#2}}% \setbox\scratchbox\hbox {\hskip-.5\dimexpr\wd\scratchbox-\overlaywidth \relax \raise-.5\dimexpr\ht\scratchbox-\frameddimenht\relax % not overlayheight ! \box\scratchbox}% \wd\scratchbox\overlaywidth \ht\scratchbox\overlayheight \dp\scratchbox\overlaydepth \startlayoutcomponent{o:#1}{overlay #1}% \box\scratchbox \stoplayoutcomponent \egroup} %D The empty case is: \let\executeoverlay\gobblesevenarguments %D For testing we provide: \def\doifoverlayelse#1% {\doifdefinedelse{\??ov#1}} %D We predefine two already familiar backgrounds: \setvalue{\??ov\v!screen}{\dograybox } \setvalue{\??ov\v!color }{\docolorbox} % %D After all these preparations, the background macro does no % %D bring to many surprises. One has to keep in mind that this % %D macro starts up a call chain, depending on the background % %D one needs: % %D % %D \startitemize[packed] % %D \item a raster, color or user defined shape % %D \item square or round corners % %D \item a \TEX\ or driver based method % %D \stopitemize % %D % %D The macro can be extended by adding commands to the token % %D list register \type {\everybackgroundbox}. For this % %D purpose, the name of the current background is available in % %D \type {\currentbackgound}. %D The content of the box will be (temporary) saved in a box. We %D also have an extra box for backgrounds. \newbox\framebox \newbox\extraframebox \newtoks\everybackgroundbox \let\currentbackground\empty % \def\dodobackgroundbox#1% also less passing, we can get rid of the old method % {\bgroup % \def\currentbackground{#1}% % \the\everybackgroundbox % \setbox\extraframebox\hbox % {\vbox{\moveleft\backgroundoffset\hbox{\executeifdefined{\??ov\currentbackground}\donothing}}}% % \wd\extraframebox\zeropoint % \backgroundwidth % \ht\extraframebox\backgroundheight % \dp\extraframebox\backgrounddepth % \box\extraframebox % \hskip-\backgroundwidth % \egroup} % \def\dodobackgroundbox#1% also less passing, we can get rid of the old method % {\bgroup % \def\currentbackground{#1}% % \ifcsname\??ov\currentbackground\endcsname % \the\everybackgroundbox % \setbox\extraframebox\hbox{\vbox{\moveleft\backgroundoffset\hbox{\csname\??ov\currentbackground\endcsname}}}% % \wd\extraframebox\zeropoint % \backgroundwidth % \ht\extraframebox\backgroundheight % \dp\extraframebox\backgrounddepth % \box\extraframebox % \hskip-\backgroundwidth % \fi % \egroup} \def\dodobackgroundbox {\bgroup \ifcsname\??ov\currentbackground\endcsname \the\everybackgroundbox \setbox\extraframebox\hbox{\vbox{\moveleft\backgroundoffset\hbox{\csname\??ov\currentbackground\endcsname}}}% \wd\extraframebox\zeropoint % \backgroundwidth \ht\extraframebox\backgroundheight \dp\extraframebox\backgrounddepth \box\extraframebox % \hskip-\backgroundwidth \fi \egroup} \def\dododobackgroundbox#1,#2% #2 gobbles spaces {\edef\currentbackground{#1}% \ifx\currentbackground\s!unknown\else \dodobackgroundbox\expandafter\dododobackgroundbox \fi#2} \let\backgroundoffset\!!zeropoint \let\backgrounddepth \!!zeropoint \def\backgroundwidth {\the\hsize} \def\backgroundheight{\the\vsize} % todo: also \def\theforegroundbox{#1} % \def\dobackgroundbox#1% % {\setbox\framebox\vbox % {\forgetall % \boxmaxdepth\maxdimen % \scratchdimen \framedparameter{#1}\relax % \frameddimenwd\dimexpr\wd\framebox+2\scratchdimen\relax % \frameddimenht\dimexpr\ht\framebox+ \scratchdimen\relax % \frameddimendp\dimexpr\dp\framebox+ \scratchdimen+\framedparameter\c!backgrounddepth\relax % \edef\backgroundoffset{\the\scratchdimen}% % \edef\backgroundwidth {\the\wd\framebox}% % \edef\backgroundheight{\the\ht\framebox}% % \edef\backgrounddepth {\the\dp\framebox}% % %\edef\foregroundbox{\box#1}% % \def\foregroundbox% fuzzy but needed hack, this \vss, otherwise % {\vbox to \backgroundheight{\vss\box\framebox\vss}}% vertical shift % \edef\component{\framedparameter\c!component}% % \hbox to \backgroundwidth % in case 'foreground' is used as overlay % {\ifx\component\empty % \rawprocesscommalist[\framedbackground]\dodobackgroundbox % \else % \startlayoutcomponent{b:\component}{\s!background\space\component}% % \rawprocesscommalist[\framedbackground]\dodobackgroundbox % \stoplayoutcomponent % \fi % \box\framebox\hss}}} \def\normalforegroundbox% fuzzy but needed hack, this \vss, otherwise {\vbox to \backgroundheight{\vss\box\framebox\vss}}% vertical shift \def\dobackgroundbox#1% {\setbox\framebox\vbox {\forgetall \boxmaxdepth\maxdimen \scratchdimen \framedparameter{#1}\relax \frameddimenwd\dimexpr\wd\framebox+2\scratchdimen\relax \frameddimenht\dimexpr\ht\framebox+ \scratchdimen\relax \frameddimendp\dimexpr\dp\framebox+ \scratchdimen+\framedparameter\c!backgrounddepth\relax \edef\backgroundoffset{\the\scratchdimen}% \edef\backgroundwidth {\the\wd\framebox}% \edef\backgroundheight{\the\ht\framebox}% \edef\backgrounddepth {\the\dp\framebox}% %\edef\foregroundbox{\box#1}% \edef\component{\framedparameter\c!component}% \let\foregroundbox\normalforegroundbox \hbox to \backgroundwidth % in case 'foreground' is used as overlay {\ifx\component\empty \expanded{\dododobackgroundbox\framedparameter\c!background},\s!unknown,\relax \else \startlayoutcomponent{b:\component}{background \component}% \expanded{\dododobackgroundbox\framedparameter\c!background},\s!unknown,\relax \stoplayoutcomponent \fi \box\framebox\hss}}} %D One can explictly insert the foreground box. For that %D purpose we introduce the overlay \type {foreground}. \defineoverlay[\v!foreground][\foregroundbox] %D We can specify overlays as a comma separated list of %D overlays, a sometimes handy feature. %D Besides backgrounds (overlays) we also need some macros to %D draw outlines (ruled borders). Again we have to deal with %D square and round corners. The first category can be handled %D by \TEX\ itself, the latter one depends on the driver. This %D macro also support a negative offset. \ifx\scratchoffset\undefined \newdimen\scratchoffset \fi \def\dooutlinebox % we needed to move the color command in order to apply attributes properly {\setbox\framebox\vbox % rules on top of box {\scratchoffset \framedparameter\c!frameoffset\relax \frameddimenwd\dimexpr\wd\framebox+2\scratchoffset\relax \frameddimenht\dimexpr\ht\framebox+ \scratchoffset\relax \frameddimendp\dimexpr\dp\framebox+ \scratchoffset+\framedparameter\c!framedepth\relax \ifdim\frameddimendp<\zeropoint \advance\frameddimenht \frameddimendp \scratchdimen-\frameddimendp \frameddimendp\zeropoint \else \scratchdimen\zeropoint \fi \setbox\extraframebox\hbox {\doifsomething{\framedparameter\c!framecolor}{\color[\framedparameter\c!framecolor]}{\dostrokedbox}}% \setbox\extraframebox\hbox {\raise\scratchdimen\vbox {\moveleft\scratchoffset \box\extraframebox}}% \wd\extraframebox\wd\framebox \ht\extraframebox\ht\framebox \dp\extraframebox\dp\framebox \hbox{\box\framebox\hskip-\wd\extraframebox\box\extraframebox}}} \def\dostrokedbox {\doifelse{\framedparameter\c!framecorner}\v!rectangular {\dostrokedlinedbox} {\ifzeropt\dimexpr\framedparameter\c!frameradius\relax % just in case of .x\bodyfontsize \dostrokedlinedbox \else \dostrokedroundbox \fi}} \def\dostrokedlinedbox {\setbox\scratchbox\null \wd\scratchbox\frameddimenwd \ht\scratchbox\frameddimenht \dp\scratchbox\frameddimendp \setbox\scratchbox\vbox \bgroup \csname t\@@frame@@\framedparameter\c!frame\framedparameter\c!topframe \endcsname \hbox \bgroup \csname l\@@frame@@\framedparameter\c!frame\framedparameter\c!leftframe \endcsname \box\scratchbox \csname r\@@frame@@\framedparameter\c!frame\framedparameter\c!rightframe \endcsname \egroup \csname b\@@frame@@\framedparameter\c!frame\framedparameter\c!bottomframe\endcsname \egroup \wd\scratchbox\frameddimenwd \ht\scratchbox\frameddimenht \dp\scratchbox\frameddimendp \box\scratchbox} \def\@@frame@@{@@frame@@} % \setvalue{t\@@frame@@\v!on \v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth} % \setvalue{t\@@frame@@\v!off\v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth} % \setvalue{t\@@frame@@\v!on }{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth} % \setvalue{b\@@frame@@\v!on \v!on}{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth} % \setvalue{b\@@frame@@\v!off\v!on}{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth} % \setvalue{b\@@frame@@\v!on }{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth} % \setvalue{l\@@frame@@\v!on \v!on}{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth} % \setvalue{l\@@frame@@\v!off\v!on}{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth} % \setvalue{l\@@frame@@\v!on }{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth} % \setvalue{r\@@frame@@\v!on \v!on}{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth} % \setvalue{r\@@frame@@\v!off\v!on}{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth} % \setvalue{r\@@frame@@\v!on }{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth} \def\@@frame@@trule{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth} \def\@@frame@@brule{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth} \def\@@frame@@rrule{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth} \def\@@frame@@lrule{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth} \letvalue{t\@@frame@@\v!on \v!on}\@@frame@@trule \letvalue{t\@@frame@@\v!off\v!on}\@@frame@@trule \letvalue{t\@@frame@@\v!on }\@@frame@@trule \letvalue{b\@@frame@@\v!on \v!on}\@@frame@@brule \letvalue{b\@@frame@@\v!off\v!on}\@@frame@@brule \letvalue{b\@@frame@@\v!on }\@@frame@@brule \letvalue{l\@@frame@@\v!on \v!on}\@@frame@@lrule \letvalue{l\@@frame@@\v!off\v!on}\@@frame@@lrule \letvalue{l\@@frame@@\v!on }\@@frame@@lrule \letvalue{r\@@frame@@\v!on \v!on}\@@frame@@rrule \letvalue{r\@@frame@@\v!off\v!on}\@@frame@@rrule \letvalue{r\@@frame@@\v!on }\@@frame@@rrule % no overlapping rules \def\@@frame@@trules{\hbox{\kern\ruledlinewidth\vrule\!!width\dimexpr\frameddimenwd-2\ruledlinewidth\relax\!!height\ruledlinewidth}\nointerlineskip\kern-\ruledlinewidth} \def\@@frame@@brules{\kern-\ruledlinewidth\nointerlineskip\hbox{\kern\ruledlinewidth\vrule\!!width\dimexpr\frameddimenwd-2\ruledlinewidth\relax\!!height\ruledlinewidth}} \def\@@frame@@rrules{\kern-\ruledlinewidth\vrule\!!height\dimexpr\frameddimenht-\ruledlinewidth\relax\!!depth-\ruledlinewidth\!!width\ruledlinewidth} \def\@@frame@@lrules{\vrule\!!height\dimexpr\frameddimenht-\ruledlinewidth\relax\!!depth-\ruledlinewidth\!!width\ruledlinewidth\kern-\ruledlinewidth} % small is relatively new \letvalue{t\@@frame@@\v!small\v!small}\@@frame@@trules \letvalue{t\@@frame@@\v!off \v!small}\@@frame@@trules \letvalue{t\@@frame@@\v!small }\@@frame@@trules \letvalue{b\@@frame@@\v!small\v!small}\@@frame@@brules \letvalue{b\@@frame@@\v!off \v!small}\@@frame@@brules \letvalue{b\@@frame@@\v!small }\@@frame@@brules \letvalue{l\@@frame@@\v!small\v!small}\@@frame@@lrules \letvalue{l\@@frame@@\v!off \v!small}\@@frame@@lrules \letvalue{l\@@frame@@\v!small }\@@frame@@lrules \letvalue{r\@@frame@@\v!small\v!small}\@@frame@@rrules \letvalue{r\@@frame@@\v!off \v!small}\@@frame@@rrules \letvalue{r\@@frame@@\v!small }\@@frame@@rrules %D I condidered using the low level support command %D \type{\ruledhbox}, but this would slow down processing by a %D factor~3. % \framed % [width=4cm,height=3cm,rulethickness=3mm, % frame=off,rightframe=on,leftframe=on,topframe=on,bottomframe=on] % {} % \framed % [width=4cm,height=3cm,rulethickness=3mm, % frame=off,rightframe=small,leftframe=small,topframe=small,bottomframe=small] % {} % \framed % [width=4cm,height=3cm,rulethickness=3mm, % frame=off,rightframe=small,leftframe=small,topframe=small,bottomframe=on] % {} %D The next few macros are probably the most misused ones in %D \CONTEXT. They deal with putting rules around boxes, provide %D backgrounds, offer alignment features, and some more. We %D start with defining some booleans. These give an impression %D of what we are going to take into account. % todo: chardefs \newif\ifboxhasoffset \newif\ifboxhaswidth \newif\ifboxhasheight \newif\ifboxhasformat \newif\ifboxhasstrut \newif\ifboxisoverlaid \newif\ifboxhasframe \newif\ifdelayedstrut %D We also need a few \DIMENSIONS: \newdimen\@@localoffset \newdimen\@@globalwidth %D \macros %D {framed, setupframed} %D %D Ruled boxes are typeset using \type{\framed}. This command %D is quite versatile and, although some users will probably %D seldom use it, one cannot overlook its features. %D %D \showsetup{setupframed} %D \showsetup{framed} %D %D This general macro is a special version of an even more %D general case, that can easily be linked into other macros %D that need some kind of framing. The local version is called %D with an extra parameter: the variable identifier. The reason %D for passing this identifier between brackets lays in the %D mere fact that this way we can use the optional argument %D grabbers. \def\defaultframeoffset{.25ex} \unexpanded\def\framed {\bgroup \copylocalframed[\??ol][\??oi]% == \presetlocalframed[\??ol]% \dodoubleempty\startlocalframed[\??ol]} \def\presetlocalframed[#1]% {\copylocalframed[#1][\??oi]} % \def\copylocalframed[#1]#2[#3]% % {\copyparameters[#1][#3]% % [\c!width,\c!height,\c!radius,\c!corner,\c!depth,\c!offset,% % \c!autowidth,\c!empty,\c!component,\c!orientation,\c!lines,% % \c!align,\c!bottom,\c!top,\c!strut,\c!autostrut,\c!location,\c!setups,\c!extras,% % \c!foregroundstyle,\c!foregroundcolor,% % \c!background,\c!backgroundoffset,\c!backgroundcorner,\c!backgroundradius,\c!backgrounddepth,\c!backgroundcolor,\c!backgroundscreen,% % \c!frame,\c!frameoffset,\c!framecorner,\c!frameradius,\c!framedepth,\c!framecolor,\c!rulethickness,% % \c!topframe,\c!bottomframe,\c!leftframe,\c!rightframe]} % since framed is used all over the place, we have a (small) speedup) \def\copylocalframed[#1]#2[#3]% {\edef\copiedfrom{#1}\edef\copiedto{#3}% \docopyvalue\copiedfrom\copiedto\c!width \docopyvalue\copiedfrom\copiedto\c!height \docopyvalue\copiedfrom\copiedto\c!autowidth \docopyvalue\copiedfrom\copiedto\c!offset \docopyvalue\copiedfrom\copiedto\c!empty \docopyvalue\copiedfrom\copiedto\c!rulethickness \docopyvalue\copiedfrom\copiedto\c!radius \docopyvalue\copiedfrom\copiedto\c!corner \docopyvalue\copiedfrom\copiedto\c!depth \docopyvalue\copiedfrom\copiedto\c!frame \docopyvalue\copiedfrom\copiedto\c!framecolor \docopyvalue\copiedfrom\copiedto\c!foregroundstyle \docopyvalue\copiedfrom\copiedto\c!foregroundcolor \docopyvalue\copiedfrom\copiedto\c!lines \docopyvalue\copiedfrom\copiedto\c!orientation \docopyvalue\copiedfrom\copiedto\c!topframe \docopyvalue\copiedfrom\copiedto\c!bottomframe \docopyvalue\copiedfrom\copiedto\c!leftframe \docopyvalue\copiedfrom\copiedto\c!rightframe \docopyvalue\copiedfrom\copiedto\c!rulethickness \docopyvalue\copiedfrom\copiedto\c!frameoffset \docopyvalue\copiedfrom\copiedto\c!background \docopyvalue\copiedfrom\copiedto\c!component \docopyvalue\copiedfrom\copiedto\c!backgroundoffset \docopyvalue\copiedfrom\copiedto\c!backgroundscreen \docopyvalue\copiedfrom\copiedto\c!backgroundcolor \docopyvalue\copiedfrom\copiedto\c!align \docopyvalue\copiedfrom\copiedto\c!bottom \docopyvalue\copiedfrom\copiedto\c!top \docopyvalue\copiedfrom\copiedto\c!strut \docopyvalue\copiedfrom\copiedto\c!autostrut \docopyvalue\copiedfrom\copiedto\c!location \docopyvalue\copiedfrom\copiedto\c!component \docopyvalue\copiedfrom\copiedto\c!extras \docopyvalue\copiedfrom\copiedto\c!setups \docopyvalue\copiedfrom\copiedto\c!backgroundradius \docopyvalue\copiedfrom\copiedto\c!backgroundcorner \docopyvalue\copiedfrom\copiedto\c!backgrounddepth \docopyvalue\copiedfrom\copiedto\c!frameradius \docopyvalue\copiedfrom\copiedto\c!framecorner \docopyvalue\copiedfrom\copiedto\c!framedepth} \def\setupframed {\dodoubleempty\dosetupframed} \def\dosetupframed {\ifsecondargument \@EA\dodoublesetupframed \else \@EA\dosinglesetupframed \fi} \def\dosinglesetupframed[#1][#2]% {\getparameters[\??oi][#1]} \def\dodoublesetupframed[#1][#2]% {\bgroup \let\dodoubleempty\empty \def\doframed[##1]{\gdef\globalredefinedframed{\dodoubleempty\doframed[##1,#2]}}% \getvalue{#1}% \egroup \letvalue{#1}\globalredefinedframed} %D \startbuffer %D \setupframed [framecolor=yellow] \framed{A} %D \defineframed[myframed] [framecolor=blue] \myframed{B} %D \setupframed [myframed] [framecolor=red] \myframed{C} %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \presetlocalframed[myframed] %D \setuplocalframed[myframed][width=4cm,height=2cm] %D \localframed[myframed][framecolor=green]{oeps} %D \stopbuffer %D %D \typebuffer \getbuffer %D \macros %D {ifinframed} %D %D The normal case first presets all parameters and next starts %D looking for the user supplied ones. The first step is %D omitted in the local case, because these are preset at %D declaration time and keep their values unless explictly %D changed. By presetting the variables everytime the normal %D command is called, we can use this command nested, without %D the unwanted side effect of inheritance. The boolean is %D used to speed up the color stack. \newif\ifinframed \def\localframed {\bgroup \dodoubleempty\startlocalframed} %D The next one is faster on multiple backgrounds per page. No %D dimensions can be set, only frames and backgrounds. \def\fastlocalframed[#1]#2[#3]#4% 3-4 {\bgroup \inframedtrue \edef\@@framed{#1}% % more bytes % \scratchdimen\framedparameter\c!frameoffset % \setevalue{\@@framed\c!frameoffset}{\the\scratchdimen}% % \doifnotvalue{\@@framed\c!backgroundoffset}\v!frame % {\scratchdimen\framedparameter\c!backgroundoffset % \setevalue{\@@framed\c!backgroundoffset}{\the\scratchdimen}}% % less bytes \@EA\freezedimenmacro\csname\@@framed\c!frameoffset\endcsname \doifnotvalue{\@@framed\c!backgroundoffset}\v!frame {\@EA\freezedimenmacro\csname\@@framed\c!backgroundoffset\endcsname}% % so far \setbox\framebox\hbox{#4}% \getparameters[\@@framed][#3]% no \expanded ! % no, better in calling macro % % \edef\doframedsetups{\framedparameter\c!setups}% % \ifx\doframedsetups\empty\else % \edef\doframedsetups{\noexpand\setups[\doframedsetups]}% % \fi \removeframedboxdepth \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}% \ifx\framedforegroundcolor\empty\else\docolorframebox\fi \edef\overlaylinecolor{\framedparameter\c!framecolor}% \def \overlaylinewidth{\the\ruledlinewidth}% no edef \edef\@@localframing {\framedparameter\c!frame}% \ifx\@@localframing\v!overlay \else \ifx\@@localframing\v!none \else \edef\framedrulethickness{\framedparameter\c!rulethickness}% \ifx\framedrulethickness\empty\else \ruledlinewidth\framedrulethickness\relax \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi \fi \dooutlinebox % real or invisible frame \fi \fi \edef\framedbackground{\framedparameter\c!background}% \ifx\framedbackground\empty\else\dobackedbox\fi \restoreframedboxdepth \box\framebox \egroup} %D Before we go into details, we present (and implement) the %D main framing routine. I saw no real reason for splitting the %D next two macros into smaller pieces. The content will be %D collected in a horizontal or vertical box with fixed or free %D dimensions and specific settings concerning aligment and %D offsets. %D %D In the first few lines, we pre||expand the frame and %D background offsets. We do so, because the can be defined in %D terms of the main offset. However, see for instance page %D backgrounds, when \type {#2} sets the offset to \type %D {overlay}, both offsets become invalid. %D %D Because it is used so often the he next macro is (and %D looks) rather optimized. \let\postprocessframebox\relax \let\@@framed\s!unknown \def\framedparameter#1% {\csname\@@framed#1\endcsname} \newdimen\!!framedwidth \newdimen\!!framedheight \def\startlocalframed[#1][#2]% {\bgroup \inframedtrue \edef\@@framed{#1}% % this piece of pre expansion is needed (sometimes used in frameoffset) % \doifvaluesomething{\@@framed\c!rulethickness} % obsolete % {\ruledlinewidth\getvalue{\@@framed\c!rulethickness}}% obsolete % this piece of pre expansion is needed (sometimes used circular) \setevalue{\@@framed\c!frameoffset}{\the\dimexpr\framedparameter\c!frameoffset\relax}% \doifnotvalue{\@@framed\c!backgroundoffset}\v!frame {\setevalue{\@@framed\c!backgroundoffset}{\the\dimexpr\framedparameter\c!backgroundoffset\relax}}% % to prevent deadlock in case of self refering \ifsecondargument % faster \getparameters[\@@framed][#2]% here ! \fi % new, experimental dirty hook \framedparameter\c!extras % to get the right spacing \doifvaluesomething{\@@framed\c!foregroundstyle} {\@EA\doconvertfont\csname\@@framed\c!foregroundstyle\endcsname\empty}% % beware, both the frame and background offset can be overruled % \edef\doframedsetups{\framedparameter\c!setups}% \ifx\doframedsetups\empty\else \edef\doframedsetups{\noexpand\setups[\doframedsetups]}% \fi % the next macros are visible \edef\localoffset{\framedparameter\c!offset}% \edef\localwidth {\framedparameter\c!width}% \edef\localheight{\framedparameter\c!height}% \edef\localformat{\framedparameter\c!align}% \edef\localstrut {\framedparameter\c!strut}% % these are not \edef\@@localautostrut {\framedparameter\c!autostrut}% \edef\@@localframing {\framedparameter\c!frame}% \edef\@@locallocation {\framedparameter\c!location}% \edef\@@localorientation{\framedparameter\c!orientation}% % \edef\@@localautowidth {\framedparameter\c!autowidth}% % \ifx\@@localframing\v!overlay % no frame, no offset, no framewidth \boxhasframefalse \let\localoffset\v!overlay \else\ifx\@@localframing\v!none % no frame, no framewidth \boxhasframefalse \else \boxhasframetrue \fi\fi \ifboxhasframe \edef\framedrulethickness{\framedparameter\c!rulethickness}% \ifx\framedrulethickness\empty\else \ruledlinewidth\framedrulethickness\relax \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi \fi \else \ruledlinewidth\zeropoint \fi \ifx\localformat\empty \boxhasformatfalse \else \boxhasformattrue \dosetraggedcommand\localformat \edef\dobeforeframedbox{\raggedtopcommand\framedparameter\c!top}% \edef\doafterframedbox {\framedparameter\c!bottom\raggedbottomcommand}% \fi \ifx\localoffset\v!none \boxhasoffsetfalse \boxhasstrutfalse \boxisoverlaidfalse \@@localoffset\ruledlinewidth \else\ifx\localoffset\v!overlay % \ifx\@@localframing\v!no \boxhasframefalse \fi % test first \boxhasoffsetfalse \boxhasstrutfalse \boxisoverlaidtrue \@@localoffset\zeropoint \else \boxhasoffsettrue \boxhasstruttrue \boxisoverlaidfalse \ifx\localoffset\v!default % new per 2-6-2000 \let\localoffset\defaultframeoffset \letvalue{\@@framed\c!offset}\defaultframeoffset \else \let\defaultframeoffset\localoffset \fi \@@localoffset\dimexpr\localoffset+\ruledlinewidth\relax \fi\fi \!!framedheight\zeropoint \!!framedwidth \zeropoint \ifx\localwidth\v!fit \ifboxhasformat \boxhaswidthtrue \!!framedwidth\hsize \else \boxhaswidthfalse \fi \else\ifx\localwidth\v!fixed % equals \v!fit but no shapebox \ifboxhasformat \boxhaswidthtrue \!!framedwidth\hsize \else \boxhaswidthfalse \fi \else\ifx\localwidth\v!broad \boxhaswidthtrue \!!framedwidth\hsize \else\ifx\localwidth\v!local \boxhaswidthtrue \setlocalhsize \!!framedwidth\localhsize \else \boxhaswidthtrue \!!framedwidth\localwidth \fi\fi\fi\fi \ifx\localheight\v!fit \boxhasheightfalse % no longer: \boxhasstrutfalse \else\ifx\localheight\v!broad \boxhasheightfalse \else \boxhasheighttrue \!!framedheight\localheight \fi\fi \ifboxhasheight % obey user set height, also downward compatible \else \doifvaluesomething{\@@framed\c!lines} {\ifcase\framedparameter\c!lines\else \!!framedheight\framedparameter\c!lines\lineheight \edef\localheight{\the\!!framedheight}% \boxhasheighttrue \fi}% \fi % this is now an option: width=local % % \ifdim\!!framedwidth=\hsize % \parindent\zeropoint % \setlocalhsize % \!!framedwidth\localhsize % \fi % i.e. disable (colsetbackgroundproblemintechniek) \advance\!!framedwidth -2\@@localoffset \advance\!!framedheight -2\@@localoffset \ifx\localstrut\v!no \boxhasstrutfalse \else\ifx\localstrut\v!global \setstrut \else\ifx\localstrut\v!local \setfontstrut \else \setstrut \fi\fi\fi \ifboxhasstrut \let\localbegstrut\begstrut \let\localendstrut\endstrut \let\localstrut \strut \else \let\localbegstrut\pseudobegstrut % was: \relax \let\localendstrut\pseudoendstrut % was: \relax \let\localstrut \pseudostrut % was: \relax %\ifboxhasheight\ifdim\!!framedheight<\strutht % saveguard % \let\localbegstrut\relax % but not that % \let\localstrut \relax % save after all %\fi\fi \fi \ifx\@@localautostrut\v!yes \let\delayedbegstrut\relax \let\delayedendstrut\relax \let\delayedstrut \relax \else \let\delayedbegstrut\localbegstrut \let\delayedendstrut\localendstrut \let\delayedstrut \localstrut \let\localbegstrut \relax \let\localendstrut \relax \let\localstrut \relax \fi \ifboxhasheight \let\\\vboxednewline \ifboxhaswidth \let\hairline\vboxedhairline \ifboxhasformat \let\next\doformatboxSomeFormat \else \let\next\doformatboxNoFormat \fi \else \let\hairline\hboxedhairline \ifboxhasformat \let\next\doformatboxHeight \else \let\next\doformatboxVSize \fi \fi \else \ifboxhaswidth \ifboxhasformat \let\hairline\vboxedhairline \let\\\vboxednewline \let\next\doformatboxWidth \else \let\hairline\hboxedhairline \let\\\hboxednewline \let\next\doformatboxHSize \fi \else \let\hairline\hboxedhairline \let\\\hboxednewline \let\next\doformatboxNoSize \fi \fi \edef\framedwidth % a new feature, visible for user {\ifdim\!!framedwidth >\zeropoint\the\!!framedwidth \else\zeropoint\fi}% \edef\framedheight% a new feature, visible for user {\ifdim\!!framedheight>\zeropoint\the\!!framedheight\else\zeropoint\fi}% % we need to register the (outer) color \startregistercolor[\framedparameter\c!foregroundcolor]% % first alternative %\def\dowithframedbox% % {\let\postprocessframebox\relax %new % \aftergroup\stoplocalframed}% % \afterassignment\dowithframedbox % \setbox\framebox=\next} % second alternative %\dowithnextbox % {\setbox\framebox\flushnextbox % \let\postprocessframebox\relax %new % \stoplocalframed} % \next} \@@startframedorientation \afterassignment\dodowithframebox \setbox\framebox\next} \def\dowithframebox {% moved : \let\postprocessframebox\relax \stoplocalframed} \def\dodowithframebox {\aftergroup\dowithframebox} \let\doafterframedbox \relax \let\dobeforeframedbox\relax %D Carefull analysis of this macro will learn us that not all %D branches in the last conditionals can be encountered, that %D is, some assignments to \type{\next} will never occur. %D Nevertheless we implement the whole scheme, if not for %D future extensions. %D \macros %D {ifreshapeframebox} %D %D The last few lines tell what to do after the content of the %D box is collected and passed to the next macro. In the case %D of a fixed width and centered alignment, the content is %D evaluated and used to determine the most natural width. The %D rest of the code deals with backgrounds and frames. \newif\ifreshapeframebox \reshapeframeboxtrue %D Beware: setting \type {top} and \type {bottom} to nothing, may %D result in a frame that is larger that the given height! try: %D %D \starttyping %D \framed %D [height=3cm,top=,bottom=,offset=overlay] %D {\strut test \shapefill \strut test} %D \stoptyping %D %D This is intended behaviour and not a bug! One can always set %D %D \starttyping %D ...,bottom=\kern0pt,... %D \stoptyping \def\stoplocalframed {\dontshowcomposition \@@stopframedorientation % hm, wrong place ! should rotate the result (after reshape) \stopregistercolor \handleframedlocator\c!before\@@locallocation \ifboxhasformat \ifx\@@localautowidth\v!force \ifreshapeframebox\doreshapeframedbox\fi \boxhaswidthfalse \else \ifx\localwidth\v!fit \ifx\@@localautowidth\v!yes \ifreshapeframebox\doreshapeframedbox\fi \fi \boxhaswidthfalse \else\ifx\localwidth\v!fixed \boxhaswidthfalse \else \resetshapeframebox \fi\fi \fi \else \resetshapeframebox \fi \ifboxhaswidth \wd\framebox\!!framedwidth \fi \ifboxhasheight \ht\framebox\!!framedheight \fi \doifvalue{\@@framed\c!empty}\v!yes {\setbox\scratchbox\null \wd\scratchbox\wd\framebox \ht\scratchbox\ht\framebox \dp\scratchbox\dp\framebox \setbox\framebox\box\scratchbox}% \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}% \ifx\framedforegroundcolor\empty\else\docolorframebox\fi \ifboxhasoffset \dooffsetframebox \fi \ifboxisoverlaid \else \dolocateframebox \fi \ifx\postprocessframebox\relax \else \let\next\postprocessframebox \let\postprocessframebox\relax % prevent nesting \next\framebox \fi \edef\overlaylinecolor{\framedparameter\c!framecolor}% \edef\overlaylinewidth{\the\ruledlinewidth}% \@@... \ifboxhasframe % real or invisible frame \dooutlinebox \fi \edef\framedbackground{\framedparameter\c!background}% \ifx\framedbackground\empty\else\dobackedbox\fi \handleframedlocator\c!after\@@locallocation \box\framebox \egroup \egroup} \def\installframedlocator#1#2#3% {\setvalue{\??ol:\c!location:\c!before:#1}{#2}% \setvalue{\??ol:\c!location:\c!after :#1}{#3}} \def\handleframedlocator#1#2% {\getvalue{\??ol:\c!location:#1:#2}} \def\doprelocframedbox#1% {\scratchdimen\dimexpr#1+\ruledlinewidth\relax \ifboxhasoffset \advance\scratchdimen \framedparameter\c!offset \fi \scratchskip\dimexpr\ht\framebox-\scratchdimen\relax} % \ruledhbox % {A % \framed[width=2cm,align=middle,location=hanging]{location\\equals\\hanging} % \framed[width=2cm,align=middle,location=depth] {location\\equals\\depth} % \framed[width=2cm,align=middle,location=height] {location\\equals\\height} % B} % \vskip2cm % \ruledhbox % {A % \framed[width=2cm,align=middle,location=low] {location\\equals\\low} % \framed[width=2cm,align=middle,location=line] {location\\equals\\line} % \framed[width=2cm,align=middle,location=high] {location\\equals\\high} % B} % \vskip2cm % \ruledhbox % {A % \framed[width=2cm,align=middle,location=top] {location\\equals\\top} % \framed[width=2cm,align=middle,location=bottom] {location\\equals\\bottom} % \framed[width=2cm,align=middle,location=lohi] {location\\equals\\lohi} % \framed[width=2cm,align=middle,location=middle] {location\\equals\\middle} % B} \installframedlocator \v!hanging % best with strut=no {} {\dp\framebox\ht\framebox \ht\framebox\zeropoint} \installframedlocator \v!depth {} {\ht\framebox\dimexpr\ht\framebox-\strutdp\relax \dp\framebox\strutdp \box\framebox} \installframedlocator \v!height {} {\dp\framebox\dimexpr\ht\framebox-\strutht\relax \ht\framebox\strutht \box\framebox} \installframedlocator \v!high {} {\doprelocframedbox\strutht \setbox\framebox\hbox{\lower\scratchskip\box\framebox}% \ht\framebox\strutht \dp\framebox\strutdp \hbox{\box\framebox}} \installframedlocator \v!line {} {\setbox\framebox\hbox{\lower.5\ht\framebox\box\framebox}% \ht\framebox.5\lineheight \dp\framebox.5\lineheight \hbox{\box\framebox}} \installframedlocator \v!low {} {\doprelocframedbox\strutdp \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}% \ht\framebox\strutht \dp\framebox\strutdp \box\framebox} \installframedlocator \v!top {} {\doprelocframedbox\strutht \setbox\framebox\hbox{\lower\scratchskip\box\framebox}% \ht\framebox\scratchdimen \dp\framebox\scratchskip \hbox{\box\framebox}} \installframedlocator \v!middle {} {\scratchdimen.5\ht\framebox \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}% \ht\framebox\scratchdimen \dp\framebox\scratchdimen \hbox{\box\framebox}} \installframedlocator \v!lohi {\handleframedlocator\c!before\v!middle} {\handleframedlocator\c!after \v!middle} \installframedlocator \v!bottom {} {\doprelocframedbox\strutdp \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}% \ht\framebox\scratchskip \dp\framebox\scratchdimen \hbox{\box\framebox}} \installframedlocator \v!keep % retains height/depth {\removeframedboxdepth} {\restoreframedboxdepth} % also used in fastlocalframed \newdimen\originalframedwd \newdimen\originalframedht \newdimen\originalframeddp \def\removeframedboxdepth {\originalframedwd\wd\framebox \originalframedht\ht\framebox \originalframeddp\dp\framebox \ifzeropt\originalframeddp\else\setbox\framebox\hbox{\raise\originalframeddp\box\framebox}\fi \wd\framebox\originalframedwd \ht\framebox\dimexpr\originalframedht+\originalframeddp\relax \dp\framebox\zeropoint} \def\restoreframedboxdepth {\ifzeropt\originalframeddp\else\setbox\framebox\hbox{\lower\originalframeddp\box\framebox}\fi \wd\framebox\originalframedwd \ht\framebox\originalframedht \dp\framebox\originalframeddp} % \let\@@startframedorientation\relax % \let\@@stopframedorientation \relax % \framed[width=12cm,height=3cm,orientation=0]{\input ward\relax} % \framed[width=12cm,height=3cm,orientation=90]{\input ward\relax} % \framed[width=12cm,height=3cm,orientation=180]{\input ward\relax} % \framed[width=12cm,height=3cm,orientation=270]{\input ward\relax} % \framed[width=12cm,height=3cm,orientation=-90]{\input ward\relax} % \framed[width=12cm,height=3cm,orientation=-180]{\input ward\relax} % \framed[width=12cm,height=3cm,orientation=-270]{\input ward\relax} \def\@@startframedorientation {\let\@@stopframedorientation \relax \ifx\@@localorientation\empty\else \ifcase\@@localorientation\else \scratchcounter\@@localorientation \divide\scratchcounter\plustwo \ifodd\scratchcounter \swapmacros\framedwidth \framedheight \swapmacros\localwidth \localheight \swapdimens\!!framedheight\!!framedwidth \def\@@stopframedorientation{\@@dostopframedorientation\plusone}% \else \def\@@stopframedorientation{\@@dostopframedorientation\zerocount}% \fi \fi \fi} \def\@@dostopframedorientation#1% {\ifcase#1\else \swapmacros\framedwidth \framedheight \swapmacros\localwidth \localheight \swapdimens\!!framedheight\!!framedwidth \fi \setbox\framebox\hbox{\dorotatebox\@@localorientation\hbox{\box\framebox}}} %D The last conditional takes care of the special situation of %D in||line \inframed[height=3cm]{framed} boxes. Such boxes have %D to be \inframed{aligned} with the running text. \def\doinframed[#1]% we could omit #1] but readibility ... {\framed[\c!location=\v!low,#1]} \unexpanded\def\inframed {\dosingleempty\doinframed} %D When we set \type{empty} to \type{yes}, we get %D ourselves a frame and/or background, but no content, so %D actually we have a sort of phantom framed box. %D Because color marks and specials can interfere with %D spacing, we provide a way to specify a foregroundcolor. \def\docolorframebox {\doifvaluesomething{\@@framed\c!foregroundcolor} {\doifcolorelse{\framedparameter\c!foregroundcolor} {\setbox\framebox\hbox {\localcolortrue \color[\framedparameter\c!foregroundcolor]{\box\framebox}}} {}}} %D \macros %D {mframed, minframed} %D %D When Tobias asked how to frame mathematical elements in %D formulas, Taco's posted the next macro: %D %D \starttyping %D \def\mframed#1% %D {\relax %D \ifmmode %D \vcenter{\hbox{\framed{$\ifinner\else\displaystyle\fi#1$}}}% %D \else %D \framed{$#1$}% %D \fi} %D \stoptyping %D %D Because \type {\ifinner} does not (always) reports what %D one would expect, we move the test to the outer level. We %D also want to pass arguments, %D %D \starttyping %D \def\mframed% %D {\dosingleempty\domframed} %D %D \def\domframed[#1]#2% % tzt \dowithnextmathbox ? %D {\relax %D \ifmmode %D \ifinner %D \inframed[#1]{$#2$}% %D \else %D \vcenter{\hbox{\framed[#1]{$\displaystyle#2$}}}% %D \fi %D \else %D \inframed[#1]{$#2$}% %D \fi} %D \stoptyping %D %D Still better is the next alternative, if only because it %D takes care of setting the super- and subscripts styles \ifx\restoremathstyle\undefined \let\restoremathstyle\relax \fi \def\domframed[#1][#2]#3% {\begingroup \ifmmode \ifinner \let\mframedstyle\restoremathstyle \else \let\mframedstyle\displaystyle \fi \else \let\mframedstyle\restoremathstyle \fi #1\ifdone \def\normalstrut{$\mframedstyle\vphantom($}% \framed [\c!frameoffset=\@@oioffset,\c!offset=\v!overlay,#2] {$\mframedstyle#3$}% \else \inframed [#2] {$\mframedstyle#3$}% \fi \endgroup} \def\mframed {\dodoubleempty\domframed[\donetrue]} \def\inmframed {\dodoubleempty\domframed[\donefalse]} %D So instead of the rather versatile \type {\framed}, we ue %D the \type {\mframed}. %D %D \startbuffer %D \startformula %D x \times \mframed{y} \times y^{z_z} %D x \times \inmframed{y} \times y^{z_z} %D \stopformula %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D However, we got into troubles when we want to nest sub- and %D superscripts, like in %D %D \startbuffer %D \startformula %D x \times \mframed{y} \times y^{\mframed{z}_{\mframed{z}}} %D \stopformula %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D Therefore, we can best use \type {\super} and \type {\suber} %D instead of \type {^} and \type {_}. Both commands take care %D of proper font switching. %D %D \startbuffer %D \startformula %D x \times \mframed{y} \times y\super{\mframed{z}\suber{\mframed{z}}} %D \stopformula %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D As usual, one can specify in what way the text should be %D framed. One should be aware of the fact that, inorder to %D preserve the proper spacing, the \type {offset} is set to %D \type {overlay} and \type {frameoffset} is used used %D instead. %D %D \startbuffer %D \startformula %D x \times y\super{\mframed[framecolor=red]{z}\suber{z}} %D \stopformula %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D For inline use, we also provide the \type {\inmframed} %D alternative: we want $x \times \inmframed{y}$ in inline %D math, right? %D This previous framing macros needs a lot of alternatives for %D putting rules around boxes, inserting offsets and aligning %D text. Each step is handled by separate macros. \def\dowidenframebox#1% {\setbox\framebox\vbox {\kern#1\hbox{\kern#1\box\framebox\kern#1}\kern#1}} \def\dooffsetframebox{\dowidenframebox\localoffset} \def\dolocateframebox{\dowidenframebox\ruledlinewidth} %D Let's hope that the next few examples show us enough of %D what needs to be done by the auxiliary macros. %D %D \startbuffer %D \framed[height=1cm,offset=.5cm] {rule based learning} %D \framed[height=1cm,offset=0cm] {rule based learning} %D \framed[height=1cm,offset=none] {rule based learning} %D \framed[height=1cm,offset=overlay]{rule based learning} %D \stopbuffer %D %D \typebuffer %D %D \startlinecorrection %D \hbox{\getbuffer} %D \stoplinecorrection %D %D \startbuffer %D \framed[offset=.5cm] {rule based learning} %D \framed[offset=0cm] {rule based learning} %D \framed[offset=none] {rule based learning} %D \framed[offset=overlay]{rule based learning} %D \stopbuffer %D %D \typebuffer %D %D \startlinecorrection %D \hbox{\getbuffer} %D \stoplinecorrection %D %D \startbuffer %D \framed[strut=nee,offset=.5cm] {rule based learning} %D \framed[strut=nee,offset=0cm] {rule based learning} %D \framed[strut=nee,offset=none] {rule based learning} %D \framed[strut=nee,offset=overlay]{rule based learning} %D \stopbuffer %D %D \typebuffer %D %D \startlinecorrection %D \hbox{\getbuffer} %D \stoplinecorrection %D %D \startbuffer %D \framed[width=3cm,align=left] {rule\\based\\learning} %D \framed[width=3cm,align=middle] {rule\\based\\learning} %D \framed[width=3cm,align=right] {rule\\based\\learning} %D \framed[width=fit,align=middle] {rule\\based\\learning} %D \stopbuffer %D %D \typebuffer %D %D \startlinecorrection %D \hbox{\dontcomplain\getbuffer} %D \stoplinecorrection %D %D So now we're ready for the complicated stuff. We distinguish %D between borders with straight lines and those with round %D corners. When using the first alternative it is possible to %D turn off one or more lines. More fancy shapes are also %D possible by specifying dedicated backgrounds. Turning lines %D on and off is implemented as efficient as possible and as a %D result is interface language dependant. This next %D implementation evolved from simpler ones. It puts for %D instance the rules on top of the content and provides %D additional offset capabilities. The lot of calls to other %D macros makes this mechanism not that easy to comprehend. %D Getting the backgrounds right takes less code. Again we %D have to take care of additional offsets. \def\dobackedbox {\doifelsevalue{\@@framed\c!backgroundoffset}\v!frame % new {\dobackgroundbox\c!frameoffset} {\dobackgroundbox\c!backgroundoffset}} %D We handle left, right or middle alignment as well as fixed %D or free widths and heights. Each combination gets its own %D macro. %D The following code handles one-liners: \type{align={line,flushright}}. %D Beware, since we entered a group and either or not grab the next %D bgroup token, we need to finish the group in the oneliner mode. \ifx\raggedoneliner\undefined \chardef\raggedoneliner\zerocount \fi \def\doformatonelinerbox % beware: assumes explicit preceding bgroup {\ifcase\raggedoneliner \expandafter\nodoformatonelinerbox \else \expandafter\dodoformatonelinerbox \fi} \def\dodoformatonelinerbox {\dowithnextboxcontent {\ignorespaces} {\hbox to \hsize {\ifcase\raggedstatus\or\hss\or\hss\fi \unhbox\nextbox \removeunwantedspaces \ifcase\raggedstatus\or \or\hss\or\hss\fi}% \egroup} \hbox} \def\nodoformatonelinerbox % grabs { {\let\next=} %D The handlers: \def\doformatboxSomeFormat {\vbox to \!!framedheight \bgroup \let\postprocessframebox\relax \forgetall \oninterlineskip \hsize\!!framedwidth \vsize\!!framedheight \doframedsetups \raggedcommand \dobeforeframedbox \bgroup \localbegstrut \aftergroup\localendstrut \aftergroup\doafterframedbox \aftergroup\egroup \doformatonelinerbox} \def\doformatboxNoFormat {\vbox to \!!framedheight \bgroup \let\postprocessframebox\relax \forgetall \oninterlineskip \hsize\!!framedwidth \vsize\!!framedheight \doframedsetups \raggedcenter \vss \bgroup \localbegstrut \aftergroup\localendstrut \aftergroup\vss \aftergroup\egroup \doformatonelinerbox} \def\doformatboxHeight {\vbox to \!!framedheight \bgroup \let\postprocessframebox\relax \forgetall \oninterlineskip \doframedsetups \raggedcommand \vss \bgroup \aftergroup\localendstrut \aftergroup\vss \aftergroup\egroup \localbegstrut \doformatonelinerbox} \def\doformatboxWidth {\vbox \bgroup \let\postprocessframebox\relax \forgetall \oninterlineskip \hsize\!!framedwidth \doframedsetups \raggedcommand \dobeforeframedbox \bgroup \localbegstrut \aftergroup\localendstrut \aftergroup\doafterframedbox \aftergroup\egroup \doformatonelinerbox} \def\doformatboxVSize {\vbox to \!!framedheight \bgroup \let\postprocessframebox\relax \forgetall \vsize\!!framedheight \doframedsetups \vss \bgroup \aftergroup\vss \aftergroup\egroup \hbox \bgroup \aftergroup\egroup \localstrut \doformatonelinerbox} \def\doformatboxHSize {\hbox to \!!framedwidth \bgroup \let\postprocessframebox\relax \forgetall \doframedsetups \hss \localstrut \bgroup \aftergroup\hss \aftergroup\egroup \doformatonelinerbox} \def\doformatboxNoSize {\hbox \bgroup \let\postprocessframebox\relax \doframedsetups \localstrut \doformatonelinerbox} \let\doframedsetups\relax %D On the next page we show some examples of how these macros %D come into action. The examples show us how %D \type {fit}, \type {broad} dimensions influence the %D formatting. Watch the visualized struts. \footnote {Here we %D used \type {\showstruts}.} %D %D \startpostponing %D \bgroup %D \showstruts %D \dontcomplain %D \startlinecorrection %D \halign{#\enskip&#\enskip&#\enskip&#\enskip&#\enskip&#\cr %D \framed[width=.2\hsize, height=.2\hsize, align=] {a\par b\par c}& %D \framed[width=.2\hsize, height=broad, align=] {a\par b\par c}& %D \framed[width=.2\hsize, height=fit, align=] {a\par b\par c}& %D \framed[width=fit, height=.2\hsize, align=] {a\par b\par c}& %D \framed[width=fit, height=broad, align=] {a\par b\par c}& %D \framed[width=fit, height=fit, align=] {a\par b\par c}\cr %D \noalign{\vskip1em} %D \framed[width=.2\hsize, height=.2\hsize, align=yes] {a\par b\par c}& %D \framed[width=.2\hsize, height=broad, align=yes] {a\par b\par c}& %D \framed[width=.2\hsize, height=fit, align=yes] {a\par b\par c}& %D \framed[width=fit, height=.2\hsize, align=yes] {a\par b\par c}& %D \framed[width=fit, height=broad, align=yes] {a\par b\par c}& %D \framed[width=fit, height=fit, align=yes] {a\par b\par c}\cr %D \noalign{\vskip1em} %D \framed[width=.2\hsize, height=.2\hsize, align=right] {a\par b\par c}& %D \framed[width=.2\hsize, height=broad, align=right] {a\par b\par c}& %D \framed[width=.2\hsize, height=fit, align=right] {a\par b\par c}& %D \framed[width=fit, height=.2\hsize, align=right] {a\par b\par c}& %D \framed[width=fit, height=broad, align=right] {a\par b\par c}& %D \framed[width=fit, height=fit, align=right] {a\par b\par c}\cr %D \noalign{\vskip1em} %D \framed[width=.2\hsize, height=.2\hsize, align=left] {a\par b\par c}& %D \framed[width=.2\hsize, height=broad, align=left] {a\par b\par c}& %D \framed[width=.2\hsize, height=fit, align=left] {a\par b\par c}& %D \framed[width=fit, height=.2\hsize, align=left] {a\par b\par c}& %D \framed[width=fit, height=broad, align=left] {a\par b\par c}& %D \framed[width=fit, height=fit, align=left] {a\par b\par c}\cr %D \noalign{\vskip1em} %D \framed[width=.2\hsize, height=.2\hsize, align=middle] {a\par b\par c}& %D \framed[width=.2\hsize, height=broad, align=middle] {a\par b\par c}& %D \framed[width=.2\hsize, height=fit, align=middle] {a\par b\par c}& %D \framed[width=fit, height=.2\hsize, align=middle] {a\par b\par c}& %D \framed[width=fit, height=broad, align=middle] {a\par b\par c}& %D \framed[width=fit, height=fit, align=middle] {a\par b\par c}\cr} %D \stoplinecorrection %D \blank[2*big] %D \egroup %D \stoppostponing %D \macros %D {framednoflines, framedlastlength} %D %D It is possible to let the frame macro calculate the width %D of a centered box automatically (\type {fit}). When %D doing so, we need to reshape the box: % The next implementation is frozen! It preserves the depth, % otherwise we get problems with framed display math and auto % width. \newcount\framednoflines \newdimen\framedlastlength \def\resetshapeframebox {\framednoflines \zerocount \framedlastlength\zeropoint} \chardef\reshapeframeboxmethod\plusone % 0=no flush, 1=old method 2=no depth messing \def\shapeboxstrut % put this in front if needed ! {\vrule\!!width\zeropoint\!!height\ht\shapebox\!!depth\dp\shapebox} \let\framedboxwidth \!!zeropoint \let\framedboxheight\!!zeropoint \let\framedboxdepth \!!zeropoint \def\doreshapeframedbox % frozen, that is ... \shapeboxstrut added {\ifvbox\framebox \beginofshapebox \unvcopy\framebox \endofshapebox \global\@@globalwidth\zeropoint \edef\framedboxwidth {\the\wd\framebox}% \edef\framedboxheight{\the\ht\framebox}% \edef\framedboxdepth {\the\dp\framebox}% \resetshapeframebox \reshapebox {\setbox0\hbox {\strut\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}% \global\advance\framednoflines \plusone \ifdim\framedlastlength>\zeropoint\else \global\framedlastlength\wd0 \fi \ifdim\wd0>\@@globalwidth \global\@@globalwidth\wd0 \fi}% \ifreshapingfailed % no need for anothr pass or finalizer \else \dosetraggedcommand\localformat \raggedcommand \ifboxhasheight \setbox\framebox\vbox to \localheight {\hsize\@@globalwidth \reshapebox{\hbox to \hsize{\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}}% \dobeforeframedbox \innerflushshapebox \doafterframedbox}% \else \setbox\framebox\vbox to \framedboxheight % \ht\framebox {\hsize\@@globalwidth \reshapebox{\hbox to \hsize{\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}}% \ifcase\reshapeframeboxmethod \or \innerflushshapebox \or \innerflushshapebox \fi}% \ifcase\reshapeframeboxmethod \or \dp\framebox\framedboxdepth % \strutdp otherwise problem with math \fi \fi \ifdim\framedlastlength=\zeropoint\global\framedlastlength\wd\framebox\fi \ifcase\framednoflines\global\framednoflines\plusone\fi \fi \fi} %D The two variables \type {\framednoflines} and \type %D {\framedlastlength} can be used in a second pass to %D optimized framed material. % torture test / strange case (much depth) / method 2 needed % % \startTEXpage[frame=on] % \startformula \startalign \NC A \NC B \NR \intertext{test} \NC C \NC D \NR \stopalign \stopformula % test outside formula % \startformula \startalign \NC A \NC B \NR \intertext{test} \NC C \NC D \NR \stopalign \stopformula % \blank[big] % \startformula \startalign \NC \int_01 \NC B \NR \intertext{test} \NC \int_01 \NC D \NR \stopalign \stopformula % test outside formula % \startformula \startalign \NC \int_01 \NC B \NR \intertext{test} \NC \int_01 \NC D \NR \stopalign \stopformula % \stopTEXpage %D The examples on the next page show how one can give the %D frame as well as the background an additional offset and %D even a bit more depth. The blue outline is the frame, the %D red box is the background and the small black outline is the %D visualization of the resulting box, that is, we applied %D \type{\ruledhbox} to the result. %D \startpostponing %D \bgroup %D \unprotect %D \dontcomplain %D %D \startbuffer %D \vbox to \vsize %D \bgroup %D \startalignment[middle] %D \vss %D \dontleavehmode\vbox to .8\vsize %D \bgroup %D \hsize=300pt %D \setupframed %D [background=color, %D backgroundcolorachtergrondkleur=darkred, %D width=300pt, %D height=60pt, %D framecolorkaderkleur=DemoBlue, %D rulethickness=2pt] %D \def\status% %D {backgroundoffset=\framedparameter\c!backgroundoffset\\ %D frameoffset=\framedparameter\c!frameoffset\\ %D depth=\framedparameter\c!depth} %D \dontleavehmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=0pt]{\status}} %D \vss %D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=0pt]{\status}} %D \vss %D \dontleavehmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=5pt]{\status}} %D \vss %D \dontleavehmode \ruledhbox{\framed[backgroundoffset=2pt,frameoffset=5pt]{\status}} %D \vss %D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=2pt]{\status}} %D \vss %D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=5pt]{\status}} %D \egroup %D \vss %D \stopalignment %D \egroup %D \stopbuffer %D %D \getbuffer \page %D %D {\setupframed[depth=4pt]\getbuffer} \page %D %D \protect %D \egroup %D \stoppostponing %D When typesetting the framed box inline, we have to keep the %D baseline intact outside as well as inside the framed box. \def\doinlineframedbox {\scratchdimen\dimexpr\strutdp+\ruledlinewidth\relax \ifboxhasoffset \advance\scratchdimen \framedparameter\c!offset \fi \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}% \ht\framebox\strutht \dp\framebox\strutdp \box\framebox} %D We can also lower the box over the natural depth of the %D line. \def\doloweredframedbox {\ht\framebox\dimexpr\ht\framebox+\dp\framebox-\strutdp\relax \dp\framebox\strutdp \box\framebox} %D Hanging the content is mainly meant for cases like the %D following: %D %D \starttyping %D \framed[strut=no] %D {\framed[height=2cm,location=hanging]{test}% %D \framed[height=1cm,location=hanging]{test}} %D \stoptyping \def\dohangingframedbox % best with strut=no {\scratchdimen\dimexpr\ht\framebox+\dp\framebox\relax \ht\framebox\zeropoint \dp\framebox\scratchdimen} %D We can draw lines from left to right and top to bottom by %D using the normal \type{\hairline} command. Both directions %D need a different treatment. %D %D \startbuffer %D \framed[width=4cm] {alfa\hairline beta\hairline gamma} %D \framed[height=2cm] {alfa\hairline beta\hairline gamma} %D \framed[width=4cm,height=2cm]{alfa\hairline beta\hairline gamma} %D \stopbuffer %D %D \typebuffer %D %D \startlinecorrection %D \hbox{\getbuffer} %D \stoplinecorrection %D %D These macros try to adapt their behaviour as good as %D possible to the circumstances and act as natural as %D possible. \def\vboxedhairline {\bgroup \dimen2=\ifboxhasoffset \localoffset \else \zeropoint \fi \dimen4=\dimexpr\dimen2+\ruledlinewidth\relax \setbox0\vbox {\advance\hsize 2\dimen4 \vskip\dimen2 \hrule \!!height\ruledlinewidth \!!depth\zeropoint \!!width\hsize \vskip\dimen2}% %\endgraf\nointerlineskip\endgraf %\moveleft\dimen4\box0 %\endgraf\nointerlineskip\localbegstrut \endgraf\obeydepth\nointerlineskip \moveleft\dimen4\box0 \endgraf\nointerlineskip\localbegstrut % beware, we might kill it in a style using \vskip\lineheight \egroup} % so this must not be changed \def\hboxedhairline % use framed dimen {\bgroup \dimen2=\ifboxhasoffset \localoffset \else \zeropoint \fi \ifboxhasheight \dimen4\dimexpr\localheight/2+\strutdp-2\ruledlinewidth\relax \dimen6\dimexpr\localheight/2-\strutdp+2\ruledlinewidth\relax \else \dimen4\dimexpr\strutht+\dimen2\relax \dimen6\dimexpr\strutdp+\dimen2\relax \fi \unskip \setbox\scratchbox\hbox {\hskip\dimen2 \vrule\!!height\dimen4\!!depth\dimen6\!!width\ruledlinewidth \hskip\dimen2}% \ht\scratchbox\strutht \dp\scratchbox\strutdp \box\scratchbox \ignorespaces \egroup} %D The argument of the frame command accepts \type{\\} as a %D sort of newline signal. In horizontal boxes it expands to a %D space. \def\vboxednewline {\endgraf\ignorespaces} \def\hboxednewline {\unskip\normalspace\ignorespaces} %D We can set each rule on or off. The default setting is %D inherited from \type{frame}. An earlier implementation %D use a bit different approach, but the new one seems more %D natural: %D %D \bgroup %D \setuptyping[margin=0pt] %D \startlinecorrection %D \startbuffer %D \framed[offset=overlay,frame=on]{\darkred\blackrule} %D \stopbuffer %D \hbox{\getbuffer\vbox{\typebuffer}} %D %D \startbuffer %D \framed[offset=overlay,frame=on,bottomframe=off]{\darkred\blackrule} %D \stopbuffer %D \hbox{\getbuffer\vbox{\typebuffer}} %D %D \startbuffer %D \framed[offset=overlay,frame=on,bottomframe=on]{\darkred\blackrule} %D \stopbuffer %D \hbox{\getbuffer\vbox{\typebuffer}} %D %D \startbuffer %D \framed[offset=overlay,frame=off]{\darkred\blackrule} %D \stopbuffer %D \hbox{\getbuffer\vbox{\typebuffer}} %D %D \startbuffer %D \framed[offset=overlay,frame=off,bottomframe=off]{\darkred\blackrule} %D \stopbuffer %D \hbox{\getbuffer\vbox{\typebuffer}} %D %D \startbuffer %D \framed[offset=overlay,frame=off,bottomframe=on]{\darkred\blackrule} %D \stopbuffer %D \hbox{\getbuffer\vbox{\typebuffer}} %D \stoplinecorrection %D \egroup %D \macros %D {setupblackrules} %D %D The graphic capabilities of \TEX\ do not go beyond simple %D filled rules, except of course when using specials. Let's %D start with a warning: using this commands is far more slower %D than using the \TEX\ primitives \type{\hrule} and %D \type{\vrule}, but they save us some tokens. The %D characteristics of these rule drawing command can be set by: %D %D \showsetup{setupblackrules} \def\setupblackrules {\dodoubleargument\getparameters[\??bj]} %D \macros %D {blackrule} %D %D The simple command draws only one rule. Its optional %D argument can be used to specify the dimensions. By setting %D the width, height or depth to \type {max}, one gets the %D natural dimensions. %D %D \showsetup{blackrule} \def\doblackrule[#1]% {\hbox\bgroup \getparameters[\??bj][#1]% \setstrut \doif\@@bjwidth \v!max{\def\@@bjwidth {1em}}% \doif\@@bjheight\v!max{\def\@@bjheight{\strutht}}% \doif\@@bjdepth \v!max{\def\@@bjdepth {\strutdp}}% \localstartcolor[\@@bjcolor]% \vrule \!!width \@@bjwidth \!!height\@@bjheight \!!depth \@@bjdepth \localstopcolor \egroup} \unexpanded\def\blackrule {\dosingleempty\doblackrule} %D \macros %D {blackrules} %D %D One can call for a sequence of black rules, if needed %D equally spaced over the given width. %D %D \showsetup{blackrules} %D %D The two alternative calls are therefore: %D %D \startbuffer %D Tell me, is this according to the \blackrules[n=6]? %D These \blackrules[alternativevariant=b,n=10,distance=.2em,width=4cm] are quite clear. %D \stopbuffer %D %D \typebuffer %D %D or: %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D We could of course have implemented this macro using %D \type{\leaders}, but this would probably have taken more %D tokens. \def\doblackrules[#1]% {\hbox\bgroup \getparameters[\??bj][#1]% \!!widtha\@@bjwidth \!!widthb\@@bjdistance \doif\@@bjalternative\c!b {\scratchcounter\@@bjn \ifnum\scratchcounter=\plusone \!!widthb\zeropoint \else \advance\scratchcounter \minusone \advance\!!widtha -\scratchcounter\!!widthb \divide \!!widtha \@@bjn \fi}% \localstartcolor[\@@bjcolor]% \dorecurse\@@bjn {\vrule \!!width \!!widtha \!!height\@@bjheight \!!depth \@@bjdepth \hskip\!!widthb}% \unskip \localstopcolor \egroup} \unexpanded\def\blackrules {\dosingleempty\doblackrules} %D The next commands can be used to draw margin rules. We %D support two methods: \marginrule{one for in||line use} and %D one that acts on a paragraph. Drawing a margin rule is %D rather straightforward because we can use the commands that %D put text in the margin. \def\dodrawmarginrule {\setbox\scratchbox\hbox {\vrule\!!depth\strutdepth\!!height\strutheight\!!width\@@karulethickness}% \smashbox\scratchbox % no \vsmash !!! \box\scratchbox} \def\drawmarginrule {\strut\inleft{\dodrawmarginrule}} %D \macros %D {marginrule} %D %D The first method gobbles words and simply puts a bar in the %D margin. This method is not entirely robust. %D %D \showsetup{marginrule} \definecomplexorsimple\marginrule \def\simplemarginrule {\let\processword\drawmarginrule \processwords} \def\complexmarginrule[#1]% {\ifnum#1<\@@kalevel\relax \else \def\@@kadefaultwidth{#1}% \expandafter\simplemarginrule \fi} %D We need an auxiliary variable \def\@@kadefaultwidth{1} %D \macros %D {setupmarginrules} %D %D This macro definitions show us that we can pass an optional %D level, which is matched against the previous set one. The %D level can be set up with %D %D \showsetup{setupmarginrules} \def\setupmarginrules {\dodoubleargument\getparameters[\??ka]} %D \macros %D {startmarginrule} %D %D The second method collects text and reformats it afterwards, %D using the shapebox macros. We prevent local margin rules. %D %D \showsetup{startmarginrule} \definecomplexorsimple\startmarginrule \def\simplestartmarginrule {\bgroup \let\drawmarginrule\relax \let\stopmarginrule\dostopmarginrule \beginofshapebox} \def\complexstartmarginrule[#1]% {\bgroup \let\drawmarginrule\relax \ifnum#1<\@@kalevel\relax \let\stopmarginrule\egroup \else \def\@@kadefaultwidth{#1}% \let\stopmarginrule\dostopmarginrule \expandafter\beginofshapebox \fi} \def\dostopmarginrule {\endofshapebox \reshapebox {\hbox{\inleftmargin{\dodrawmarginrule}\box\shapebox}}% \flushshapebox \egroup} %D \startbuffer %D \setupmarginrules[level=5] %D %D \startmarginrule[1] %D First we set the level at~5. Next we typeset this first %D paragraph as a level~1 one. As expected no rule show up. %D \stopmarginrule %D %D \startmarginrule[5] %D The second paragraph is a level~5 one. As we can see here, %D the marginal rule gets a width according to its level. %D \stopmarginrule %D %D \startmarginrule[8] %D It will of course be no surprise that this third paragraph %D has a even thicker margin rule. This behavior can be %D overruled by specifying the width explictly. %D \stopmarginrule %D \stopbuffer %D %D In next example we show most features. Watch the rule %D thickness adapting itself to the level. %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld %D %D We just said: %D %D \typebuffer %D \macros %D {vl, hl} %D %D The command \type{\vl} draws a vertical rule \vl\ with strut %D dimensions, multiplied with the factor specified in the %D optional argument. The height and depth are clipped \vl[3] %D to the baselinedistance. Its horizontal counterpart %D \type{\hl} draws a horizontal rule \hl\ with a width of 1em, %D multiplied with the optional factor. The horizontal rule is %D drawn on top of the baseline. %D %D \showsetup{vl} %D \showsetup{hl} \def\complexvl[#1]% {\bgroup \!!dimena#1\strutht \!!dimenb#1\strutdp \setbox\scratchbox\hbox {\vrule \!!width \linewidth \!!height\!!dimena \!!depth \!!dimenb}% \dp\scratchbox\strutdp \ht\scratchbox\strutht \box\scratchbox \egroup} \def\complexhl[#1]% {\hbox {\vrule \!!width #1\s!em \!!height\linewidth \!!depth \zeropoint}} \definecomplexorsimple\vl \def\simplevl{\complexvl[1]} \definecomplexorsimple\hl \def\simplehl{\complexhl[1]} %D \macros %D {hairline, thinrule, thinrules, setupthinrules} %D %D Drawing thin lines can of course easily be accomplished by %D the \TEX\ primitives \type{\hrule} and \type{\vrule}. The %D next few macros however free us from some specifications. %D %D \startbuffer %D some text %D %D \hairline %D %D some more text %D %D \thinrule %D %D more and more text %D %D hi \thinrule\ there %D %D and then the final text %D \stopbuffer %D %D \typebuffer %D %D becomes %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld %D %D So we've got %D %D \showsetup{hairline} %D \showsetup{thinrule} %D %D Both can be set up with: %D %D \showsetup{setupthinrules} %D %D We also have %D %D \showsetup{thinrules} %D %D which looks like: \thinrules[n=2] \def\thinrule {\strut \bgroup \chardef\ruletype\plusone \processaction [\@@dlalternative] [ \v!a=>\chardef\ruletype0,% no line %\v!b=>\chardef\ruletype1,% height/depth \v!c=>\chardef\ruletype2,% topheight/botdepth % 11=>\chardef\ruletype1,% fallback for backgrounds 0=>\chardef\ruletype0,% compatible with backgrounds % 1=>\chardef\ruletype1,% compatible with backgrounds 2=>\chardef\ruletype2]% compatible with backgrounds \doifsomething\@@dlrulethickness {\linewidth\@@dlrulethickness}% \ifdim\linewidth=\zeropoint \chardef\ruletype\zerocount \else \doifnot\@@dlframe\v!on{\chardef\ruletype\zerocount}% \fi \ifnum\ruletype=\plusone \doif\@@dlheight\v!max{\let\@@dlheight\!!plusone}% \doif\@@dldepth \v!max{\let\@@dldepth \!!plusone}% \else \let\@@dlheight\!!plusone \let\@@dldepth\!!plusone \fi \freezedimensionwithunit\@@dlheight\strutht \freezedimensionwithunit\@@dldepth\strutdp \divide\linewidth \plustwo \doifelse\@@dlbackground\v!color {\startcolor[\@@dlbackgroundcolor]% \ifnum\ruletype=\plustwo % prevent overshoot due to rounding \leaders \hrule \!!height\dimexpr\@@dlheight-.5\linewidth\relax \!!depth \dimexpr\@@dldepth -.5\linewidth\relax \hfill \else \leaders \hrule \!!height\@@dlheight \!!depth \@@dldepth \hfill \fi \stopcolor \ifcase\ruletype % no rule \or \startcolor[\@@dlcolor]% \hfillneg \leaders\hrule\!!height\linewidth\!!depth\linewidth\hfill \stopcolor \or \startcolor[\@@dlcolor]% \hfillneg\leaders\hrule\!!height\dimexpr-\@@dldepth+\linewidth\relax\!!depth\@@dldepth\hfill \hfillneg\leaders\hrule\!!height\@@dlheight\!!depth\dimexpr-\@@dlheight+\linewidth\relax\hfill \stopcolor \fi} {\ifcase\ruletype \else \startcolor[\@@dlcolor]% \leaders\hrule\!!height\@@dlheight\!!depth\@@dldepth\hfill \stopcolor \fi}% \strut \carryoverpar\egroup} \def\hairline {\endgraf \thinrule \endgraf} \def\dosetupthinrules[#1]% {\getparameters[\??dl][#1]} \def\setupthinrules {\dosingleargument\dosetupthinrules} \def\dothinrules[#1]% {\bgroup \dosetupthinrules[#1]% \@@dlbefore \assignvalue\@@dlinterlinespace\@@dlinterlinespace{1.0}{1.5}{2.0}% \spacing\@@dlinterlinespace \dorecurse\@@dln {\ifnum\recurselevel=\@@dln \dothinrulesnobreak \else \ifnum\recurselevel=2 \dothinrulesnobreak \fi\fi \thinrule \ifnum\recurselevel<\@@dln\relax % test needed, else messed up whitespace \ifx\@@dlinbetween\empty \softbreak \else \endgraf \nowhitespace \@@dlinbetween \fi \fi}% \doifelsenothing\@@dlafter {\carryoverpar\egroup} {\@@dlafter\egroup}} \def\thinrules {\dosingleempty\dothinrules} %D A couple of examples are given below. %D %D \startbuffer %D \setupthinrules[n=3,inbetween=,color=gray] %D %D test test \thinrules\ test test \par %D test test \thinrules [color=green] test test \par %D test test \thinrules [height=max, depth=max] test test \par %D %D \setupthinrules[height=.9,depth=.9] %D %D test test \thinrules\ test test \par %D test test \thinrules [alternativevariant=b] test test \par %D test test \thinrules [alternativevariant=c] test test \par %D test test \thinrules [alternativevariant=c,inbetween=\vskip2ex] test test \par %D \stopbuffer %D %D \typebuffer {\getbuffer} %D %D There are a couple of alternative ways to visualize rules %D using backgrounds. At first sight these may look strange, %D but they make sense in educational settings. The %D alternatives are more or less compatible with the more %D advanced \METAPOST\ based implementation. %D %D \startbuffer[a] %D \setupthinrules %D [n=2, %D backgroundcolor=gray , %D rulethickness=1pt, %D colorkleur=donkerblauw, %D after=\blank, %D before=\blank] %D \stopbuffer %D %D \typebuffer[a] %D %D \startbuffer[b] %D \thinrules[alternativevariant=a] %D \thinrules[alternativevariant=b] %D \thinrules[alternativevariant=c] %D \stopbuffer %D %D \typebuffer[b] \getbuffer[a,b] %D %D \startbuffer[b] %D \thinrules[alternativevariant=a,background=color] %D \thinrules[alternativevariant=b,background=color] %D \thinrules[alternativevariant=c,background=color] %D \stopbuffer %D %D \typebuffer[b] \getbuffer[a,b] %D %D \startbuffer[b] %D \thinrules[alternativevariant=a,height=.8,depth=.8,background=color] %D \thinrules[alternativevariant=b,height=.8,depth=.8,background=color] %D \thinrules[alternativevariant=c,height=.8,depth=.8,background=color] %D \stopbuffer %D %D \typebuffer[b] \getbuffer[a,b] %D \macros %D {optimizethinrules} %D %D By saying \type {\thinrulestrue} or \type {-false}, we %D can influence the way dangling lines are handled. \newif\ifoptimizethinrules \optimizethinrulestrue \def\dothinrulesnobreak {\ifoptimizethinrules\penalty500\fi} %D \macros %D {startframedtext, setupframedtexts, defineframedtext} %D %D The general framing command we discussed previously, is not %D entirely suited for what we call framed texts, as for %D instance used in intermezzo's. The next examples show what %D we have in mind. %D %D \startbuffer[framed-0] %D \setupframedtexts %D [frame=off, %D width=\hsize, %D background=screen] %D %D \startframedtext %D By default the framed text is centered \dots %D \stopframedtext %D %D \startframedtext[right] %D \dots\ but we can also align left, middle and right. %D \stopframedtext %D \stopbuffer %D %D \startbuffer[framed-1] %D \defineframedtext %D [Example] %D [width=6cm, %D height=5cm] %D %D \startExample %D \typebuffer[framed-1] %D \stopExample %D \stopbuffer %D %D \startbuffer[framed-2] %D \defineframedtext %D [Example] %D [width=6cm] %D %D \startExample %D \typebuffer[framed-2] %D \stopExample %D \stopbuffer %D %D \startbuffer[framed-3] %D \defineframedtext %D [Example] %D [height=5cm] %D %D \startExample %D \typebuffer[framed-3] %D \stopExample %D \stopbuffer %D %D \startbuffer[framed-4] %D \defineframedtext %D [Example] %D [width=fit,height=broad] %D %D \Example{a very exciting example} %D \stopbuffer %D %D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-0] \egroup %D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-1] \egroup %D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-2] \egroup %D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-3] \egroup %D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-4] \egroup %D %D Here we can see that we have a predefined framed text class %D as well as the tools for defining our own. So we have: %D %D \showsetup{setupframedtexts} %D %D as well as the definition command: %D %D \showsetup{defineframedtext} %D %D that generates two commands: %D %D \showsetup{start<>} %D \showsetup{<>} %D %D The next definition shows the defaults. \def\dodefineframedtext[#1][#2]% {\presetlocalframed[\??kd#1]% \getparameters[\??kd#1] [\c!width=0.75\hsize, \c!height=\v!fit, \c!align=\v!yes, \c!top=, \c!bottom=\vfill, \c!offset=1em, \c!bodyfont=, \c!style=, \c!color=, \c!left=, \c!right=\hfill, \c!before=\blank, \c!after=\blank, \c!inner=, \c!frame=\v!on, \c!topframe=, \c!bottomframe=, \c!leftframe=, \c!rightframe=, \c!radius=.5\bodyfontsize, \c!corner=\v!rectangular, \c!foregroundcolor=, \c!foregroundstyle=, \c!background=, \c!backgroundcolor=, \c!backgroundscreen=\@@rsscreen, \c!linecorrection=\v!on, \c!depthcorrection=\v!on, \c!margin=\v!standard, \c!orientation=, \c!indenting=, #2]% \setvalue{\e!start#1}{\dostartframedtext[#1]}% \setvalue{\e!stop #1}{\dostopframedtext }% \setvalue {#1}{\doframedtext [#1]}} \def\defineframedtext {\dodoubleempty\dodefineframedtext} %D We define the general (and original) case by just saying: \defineframedtext[\v!framedtext] %D We need several steps before the actual job is done, %D because we have to handle an optional identifier (and %D because these commands evolved out of a single case). \def\framedtextparameter#1#2% {\csname\??kd#1#2\endcsname} \def\dosetupframedtexts[#1][#2]% {\ifsecondargument \def\docommand##1{\getparameters[\??kd##1][#2]}% \processcommacommand[#1]\docommand % new, #1 may be macro \else \getparameters[\??kd\v!framedtext][#1]% \fi} \def\setupframedtexts {\dodoubleempty\dosetupframedtexts} \def\dostartframedtext {\bgroup\dotripleempty\dodostartframedtext} \def\dodostartframedtext[#1][#2][#3]% {\doifassignmentelse{#2} {\dododostartframedtext[#1][][#2]} {\dododostartframedtext[#1][#2][#3]}} \setfalse\framedtextlocationnone \def\checkframedtext % messy dependency {\ifinsidefloat \localhsize\hsize \else\ifdim\sidefloatvsize>\zeropoint % will be proper handle % \strut % rather clean way to invoke the sidefloat OTR % \setbox0=\lastbox % and get the widths set, so from now on we % \setlocalhsize % can have framed texts alongside sidefloats \checksidefloat \setlocalhsize \else \localhsize\hsize \fi\fi} \def\dododostartframedtext[#1][#2][#3]% #3 only passed to framed, not to framedtext {\doifsomething{#2}{\setvalue{\??kd#1\c!location}{#2}}% does not listen to #3 \setfalse\framedtextlocationnone \processaction % \v!low en \v!depth are already taken ! [\framedtextparameter{#1}\c!location] [ \v!left=>\letvalue{\??kd#1\c!left }\relax \letvalue{\??kd#1\c!right}\hfill, \v!right=>\letvalue{\??kd#1\c!left }\hfill \letvalue{\??kd#1\c!right}\relax, \v!middle=>\letvalue{\??kd#1\c!left }\hfill \letvalue{\??kd#1\c!right}\hfill, \v!none=>\letvalue{\??kd#1\c!left }\relax % new \letvalue{\??kd#1\c!right}\relax % new \settrue\framedtextlocationnone]% \letvalue{\??kd#1\c!location}\empty % removed 06/2001 % \forgetparindent % added 06/2001 [see demo-bbv] \localhsize\hsize \checkframedtext % so far \setbox\framebox\vbox \startboxedcontent \hsize\localhsize % \insidefloattrue % ? better \expanded{\switchtobodyfont[\framedtextparameter{#1}\c!bodyfont]}% \startcolor[\framedtextparameter{#1}\c!color]% \localframed[\??kd#1][\c!strut=\v!no,#3]% todo: use delayedstrut \bgroup \let\\=\endgraf \framedtextparameter{#1}\c!inner % oud spul \doifvalue{\??kd#1\c!depthcorrection}\v!on % new, inside box {\bgroup \verticalstrut % we need \nowhitespace in case of setups setting whitespace % nb, not safe, text vs \vbox as next \vskip-\struttotal \nowhitespace % na vskip ! new 20/05/2004, fails with next content being box (\scale{..}) }% \doinhibitblank % \blank[\v!disable]% plaatst signal \setupindenting[\framedtextparameter{#1}\c!indenting]% \doconvertfont{\framedtextparameter{#1}\c!style}\empty \def\dostopframedtext{\dodostopframedtext{#1}{#2}}} %D The \type {none} option is handy for nested usage, as %D in the presentation styles, where we don't want %D interference. \def\dodostopframedtext#1#2% % no \baselinecorrection, see faq docs {\endgraf \removelastskip \doifvalue{\??kd#1\c!depthcorrection}\v!on % local and global {\forgetall \vskip-\struttotal \verticalstrut \egroup \forgetall \vskip-\lineheight % will be an option, not default % \setbaselinecorrections % \donegbotbaselinecorrection \verticalstrut} \stopboxedcontent \stopcolor \ifconditional\framedtextlocationnone \egroup \box\framebox \else\ifinsidefloat \egroup \box\framebox \else \egroup \doplacement[\??kd#1][\c!depthcorrection=\v!off]{\box\framebox}% \fi\fi \egroup} %D Placement can be ignored: %D %D \starttyping %D \hbox to \hsize \bgroup %D \startframedtext[none][width=.5\textwidth] \input tufte \stopframedtext %D \startframedtext[none][width=.5\textwidth] \input zapf \stopframedtext %D \egroup %D %D \hbox to \hsize \bgroup %D \setupframedtexts[location=none]% %D \startframedtext[width=.5\textwidth] \input zapf \stopframedtext %D \startframedtext[width=.5\textwidth] \input tufte \stopframedtext %D \egroup %D \stoptyping %D The simple brace (or group) delimited case is typeset %D slightly different and is not aligned. \def\doframedtext {\bgroup\dodoubleempty\dodoframedtext} \def\dodoframedtext[#1][#2]% beware! {\expanded{\switchtobodyfont[\getvalue{\??kd#1\c!bodyfont}]}% \localframed[\??kd#1][\c!strut=\v!no,#2]% \bgroup \blank[\v!disable]% \let\\=\endgraf \getvalue{\??kd#1\c!inner}% % kleur naar outer level \dostartattributes{\??kd#1}\c!style\c!color\empty \bgroup \aftergroup\docloseframedtext \let\next=} \def\docloseframedtext {\removelastskip \dostopattributes \egroup \egroup} %D \macros %D {defineframed} %D %D One can also define simple framed texts, using: %D %D \showsetup{defineframed} \def\defineframed {\dodoubleempty\dodefineframed} \def\dodefineframed[#1][#2]% {\iffirstargument \setvalue{#1}{\dodoubleempty\doframed[#2]}% \fi} \def\doframed[#1][#2]% {\framed[#1,#2]} %D \macros %D {textrule, starttextrule, setuptextrules} %D %D Putting rules before and after a paragraph is very space %D sensitive, but the next command handles that quite well. It %D comes in two disguises: %D %D \startbuffer %D \textrule[top]{fragments} %D \input reich %D \textrule %D \stopbuffer %D %D \bgroup \typebuffer \getbuffer \egroup %D %D \startbuffer %D \setuptextrules %D [width=90pt,distance=12pt,rulecolor=blue, %D bodyfont=small,style=\sc,color=red] %D %D \starttextrule{Ship Building Tools} %D \nl \setuptolerance[tolerant] \input materie %D \stoptextrule %D \stopbuffer %D %D \bgroup \typebuffer \getbuffer \egroup %D %D \startbuffer %D \setuptextrules %D [location=inmargin, %D bodyfont=small,style=slantedbold] %D %D \starttextrule{wonderful} %D \input tufte %D \stoptextrule %D \stopbuffer %D %D \bgroup \typebuffer \getbuffer \egroup %D %D The formal definition of these commands is: %D %D \showsetup{textrule} %D \showsetup{starttextrule} %D \showsetup{setuptextrules} %D %D The implementation looks a bit complicated due to the %D optional arguments. \def\setuptextrules {\dodoubleargument\getparameters[\??tl]} \def\complextextrule[#1]% if needed we can make it installable {\let\next\dobottomtextrule \processaction [#1] [ \v!top=>\let\next\dotoptextrule, \v!middle=>\let\next\domiddletextrule, \v!bottom=>\let\next\dobottomtextrule]% \dosinglegroupempty\next} \definecomplexorsimple\textrule \def\simpletextrule {\dosinglegroupempty\dounknowntextrule} \def\docomplextextrule#1% {\bgroup \advance\hsize\dimexpr-\rightskip-\leftskip\relax \setbox\scratchbox\hbox to \hsize {\dimen4\dimexpr .5ex+.5\linewidth\relax \dimen6\dimexpr-.5ex+.5\linewidth\relax \doifnothing{#1}\firstargumentfalse \iffirstargument \doifelse\@@tllocation\v!inmargin {\llap{\doattributes\??tl\c!style\c!color{#1}\hskip\leftmargindistance}} {\color[\@@tlrulecolor] {\vrule\!!height\dimen4\!!depth\dimen6\!!width\@@tlwidth}% \hbox spread 2\dimexpr\@@tldistance\relax {\hss\doattributes\??tl\c!style\c!color{\strut#1}\hss}}% \fi \color[\@@tlrulecolor] {\leaders\hrule\!!height\dimen4\!!depth\dimen6\hfill}}% \ht\scratchbox\strutht \dp\scratchbox\strutdp \noindent\box\scratchbox %\nobreak\verticalstrut\kern-\struttotal % evt \witruimte \egroup} \def\dotoptextrule#1% {\page[\v!preference] % interferes %\whitespace % no \@@tlbefore \docomplextextrule{#1}% % todo, option: \doifnothing{#1}{\ruledvskip-.5ex} \nowhitespace \@@tlinbetween \endgraf} \def\dodobottomtextrule#1#2% {\ifhmode \endgraf \fi \dimen0\strutdp \ifdim\prevdepth>\strutdp\else % was <\strutdp \ifdim\prevdepth>\zeropoint \advance\dimen0 -\prevdepth \fi \fi \advance\dimen0 .5ex \vskip\dimen0 % == % \vskip\dimexpr \strutdp + .5ex % \ifdim\prevdepth>\strutdp\else\ifdim\prevdepth>\zeropoint-\prevdepth\fi\fi\relax % \@@tlinbetween \doifelsenothing{#2} {\bgroup \advance\hsize\dimexpr-\rightskip-\leftskip\relax \nointerlineskip \moveleft-\leftskip\vbox {\color[\@@tlrulecolor] {\hrule\!!depth\linewidth\!!height\zeropoint\!!width\hsize}}% \egroup} {\docomplextextrule{#2}}% \ifvmode\prevdepth\zeropoint\fi #1% \page[\v!preference]} \def\dobottomtextrule {\dodobottomtextrule\@@tlafter} \def\domiddletextrule {\dodobottomtextrule\@@tlinbetween} \def\dounknowntextrule {\iffirstargument \@EA\dotoptextrule \else \@EA\dobottomtextrule\@EA\empty \fi} %D The grouped commands also supports bodyfont switching: \def\starttextrule#1% {\bgroup \def\dounknowntextrule{\domiddletextrule} \dotoptextrule{#1} \bgroup \doifsomething\@@tlbodyfont{\switchtobodyfont[\@@tlbodyfont]}} \def\stoptextrule {\par \egroup \dobottomtextrule\empty \egroup} %D \macros %D {fillinrules, setupfillinrules} %D %D The next few commands do not really deserve a place in a %D core module, because they deal with specific typography. %D Nevertheless I decided to make them part of the core, %D because they permit us to make questionaires. Let's start %D with some examples. %D %D \fillinrules[n=2,width=fit]{first} %D \fillinrules[n=2,width=broad]{first} %D \fillinrules[n=2,width=3cm]{first} %D \fillinrules[n=2,width=3cm,distance=.5em,separator=:]{first} %D \fillinrules[n=2]{first}{last} %D \fillintext{first}{last} \input reich \par %D %D The main command is \type{\fillinrules}. This command takes %D one and an optional second argument and sets a paragraph with %D empty visualized lines. %D %D \showsetup{fillinrules} %D \showsetup{setupfillinrules} \def\setupfillinrules {\dodoubleargument\getparameters[\??il]} \definecomplexorsimpleempty\fillinrules \def\complexfillinrules[#1]% {\def\docomplexfillinrules##1##2% {\dodocomplexfillinrules[#1]{##1}{##2}{\thinrules [\c!n=\@@iln,\c!interlinespace=\@@ilinterlinespace,\c!before=,\c!after=]}}% \dodoublegroupempty\docomplexfillinrules} \def\dodocomplexfillinrules[#1]#2#3#4% {\endgraf \@@ilbefore \begingroup \setupfillinrules[#1]% \noindent \doifsomething{#2} {\doifelse\@@ilwidth\v!fit {\let\@@ildistance\!!zeropoint \hbox} {\doifelse\@@ilwidth\v!broad {\hbox} {\hbox to \@@ilwidth}}% \bgroup \doattributes\??il\c!style\c!color{\strut#2\hfill\@@ilseparator}% \hskip\@@ildistance \egroup}% %\hangindent=\wd0\relax % tzt hang=yes,n %\parindent=\hangindent %\box0\relax \setupwhitespace[\v!big]% \ignorespaces #4% \doifsomething{#3} {\kern\@@ildistance \doattributes\??il\c!style\c!color{#3\strut}}% \endgroup \endgraf \@@ilafter} %D \macros %D {fillintext} %D %D To provide compatible layouts when texts and lines are %D mixed, one can typeset a paragraph by using the command %D \type{\fillintext}. %D %D \showsetup{fillintext} \definecomplexorsimpleempty\fillintext \def\complexfillintext[#1]% rather rough, using an \unhbox is suboptimal {\def\docomplexfillintext##1##2% {\dowithnextbox {\dodocomplexfillinrules[#1]{##1}{\hfill##2}{\unhbox\nextbox\unskip}}% \hbox\bgroup\let\par\egroup\ignorespaces}% \dodoublegroupempty\docomplexfillintext} %D \macros %D {fillinline, setupfillinlines} %D %D Another member of the family takes care of putting a (often %D small) rule after a piece of text, like %D %D \startbuffer %D \fillinline \input reich \par %D \fillinline[margin=0cm] \input reich \par %D \stopbuffer %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld %D %D which was typeset by saying: %D %D \typebuffer %D %D The two commands that take care of this are: %D %D \showsetup{fillinline} %D \showsetup{setupfillinlines} \def\setupfillinlines {\dodoubleargument\getparameters[\??iv]} \definecomplexorsimpleempty\fillinline \def\complexfillinline[#1]% {%\endgraf % interferes with \definedescription cum suis \@@ivbefore \begingroup \setupfillinlines[#1]% \advance\rightskip \@@ivmargin \parfillskip\zeropoint \def\par % very dangerous {\let\par\endgraf % -) \ifhmode\unskip\hfill\fi \scratchdimen\dimexpr\@@ivwidth-\@@ivdistance\relax \ifdim\scratchdimen>\@@ivmargin\else\expandafter\rlap\fi {\kern\@@ivdistance \vrule \!!width \scratchdimen \!!height.5\linewidth \!!depth .5\linewidth}% \endgraf % ! \endgroup \endgraf % ! \@@ilafter}} %D \stopdocumentation %D \bgroup %D %D \setupframedtexts %D [setuptext] %D [background=color,backgroundcolor=white] %D %D \startbuffer %D \setupbackground %D [backgroundoffset=4pt, %D background=screen, %D frame=on, %D framecolor=red, %D leftoffset=2pt] %D \stopbuffer %D %D \getbuffer %D %D \startbackground %D %D \macros %D {setupbackground,startbackground,background} %D %D The section deals with backgrounds in the running text. This %D means that texts is to be collected and split over pages. To %D show what can be done, we provide this part of the %D documentation with some gray background and a red frame. %D Both the background and frame can have all characteristics %D of \type{\framed}. This time we used the setting: %D %D \typebuffer %D %D The implementation is not that sophisticated, but suffices. %D The main problem with this kind of functionality is to get %D the spacing all right. %D Specifying the background is more or less the same as %D specifying a framed box. %D %D \showsetup{setupbackground} \presetlocalframed[\??ag] \def\dosetupbackground[#1]% {\getparameters[\??ag][#1]% \doifelse\@@agstate\v!start {\let\startbackground\dostartbackground \let\stopbackground \dostopbackground \let\background \dobackground} {\let\startbackground\relax \let\stopbackground \relax \let\background \relax}} \def\setupbackground {\dosingleargument\dosetupbackground} %D Actually typesetting the background is implemented rather %D straightforward. We need to handle some spacing as well as %D the (often) a bit smaller horizontal size. %D %D \showsetup{startbackground} %D %D Although we could have used a scratch one, we first %D declare a boolean. % 0=no-split, 1=no-split+indent, 2=split, 3=split+indent \chardef\backgroundsplitmode\plusthree %D The \type{\vbox to \lineheight{}\vskip\zeropoint} %D construction gives the first real line a decent height by %D adding a dummy line. \def\dostartbackground {\endgraf \bgroup \setbox0\vbox\bgroup \vbox to \lineheight{}\vskip\zeropoint \blank[\v!disable] % \advance\hsize -\@@agleftoffset % \advance\hsize -\@@agrightoffset \leftskip \@@agleftoffset % new ** \rightskip\@@agrightoffset} % new ** %D This dummy line is removed by \type{\setbox2=\vsplit0 to %D \lineheight}. That way \type{\topskip} takes care of the %D lineheight. I'll probably forget to apply this trick %D elsewhere. \def\dostopbackground % improved version (i hope) {\endgraf \removelastskip \egroup \dimen2\leftskip % new ** \forgetall \ifinsidefloat \chardef\backgroundsplitmode\zerocount \fi \ifcase\backgroundsplitmode \localframed[\??ag][\c!offset=\v!overlay]{\box0}% \or \hskip\dimen2 \localframed[\??ag][\c!offset=\v!overlay]{\box0}% \else \splitmaxdepth\boxmaxdepth \splittopskip\topskip \setbox2\vsplit0 to \lineheight % get rid of fake line \loop \ifdim\pagetotal=\zeropoint % empty page \scratchdimen\textheight \chardef\backgroundsplit\plusone % split to max height \else \setbox\scratchbox\vbox{\@@agbefore}% \scratchdimen\dimexpr\pagegoal-\ht\scratchbox-\pagetotal\relax \chardef\backgroundsplit\plustwo % split to partial height \fi \advance\scratchdimen\dimexpr-\@@agtopoffset-\@@agbottomoffset\relax \ifdim\scratchdimen>2\lineheight\relax % reasonable, will be configurable \ifdim\ht0>\scratchdimen % larger than page \setbox2\vsplit0 to \scratchdimen \else \setbox2\box0 \chardef\backgroundsplit\zerocount % no split \fi \setbox2\vbox \ifcase\backgroundsplit\or to \textheight \fi % max split {\vskip\@@agtopoffset \popsplitproperties \unvcopy2 \prevdepth\dp2 \obeydepth \vskip\@@agbottomoffset \vfill} \@@agbefore \ifcase\backgroundsplit\or\or % partial split \ifdim\pagegoal<\maxdimen \pagegoal=1.2\pagegoal % be a bit more tolerant \fi \fi \startlinecorrection %\localframed[\??ag][\c!offset=\v!overlay]{\hskip\@@agleftoffset\box2\hskip\@@agrightoffset}% \ifnum\backgroundsplitmode=\plusthree \hskip\dimen2 \fi % \localframed[\??ag][\c!offset=\v!overlay]{\box2}% new ** \stoplinecorrection \ifcase\backgroundsplit % no split \@@agafter \else % some split \vfill\eject % geen \page ! \fi \else \page \fi \ifdim\ht0>\zeropoint \repeat \fi \egroup \endgraf} %D As a bonus we also have a short command, that is of not %D much use, but kept there for historic reasons. %D %D \showsetup{background} \def\dobackground {\bgroup \dowithnextbox {\localframed[\??ag][\c!offset=\v!overlay]{\flushnextbox}\egroup} \vbox} %D \stopdocumentation %D \stopbackground %D \egroup %D New, for the moment private; let's see when GB finds out %D about this one and its obscure usage. It's used in: %D %D \startbuffer %D \defineframedtext %D [tabulateframe] %D [offset=overlay, %D backgroundoffset=3pt, %D background=color, %D backgroundcolor=green] %D %D \setuptabulate %D [tabulate] %D [frame=tabulateframe] %D %D \setuptables %D [frame=tabulateframe] %D %D \input tufte %D %D \starttabulate[|l|l|] %D \NC test \NC test \NC \NR \NC test \NC test \NC \NR %D \NC test \NC test \NC \NR \NC test \NC test \NC \NR %D \stoptabulate %D %D \input tufte %D %D \starttable[|l|l|] %D \NC test \NC test \NC \AR \NC test \NC test \NC \AR %D \NC test \NC test \NC \AR \NC test \NC test \NC \AR %D \stoptable %D \stopbuffer %D %D \typebuffer \def\defineframedcontent {\dodoubleempty\dodefineframedcontent} \def\dodefineframedcontent[#1][#2]% {\presetlocalframed[\??fc#1]% \getparameters[\??fc#1] [\c!leftoffset=\zeropoint, \c!rightoffset=\getvalue{\??fc#1\c!leftoffset}, \c!topoffset=\zeropoint, \c!bottomoffset=\getvalue{\??fc#1\c!topoffset}, \c!strut=\v!no, \c!offset=\v!overlay, \c!linecorrection=\v!no, \c!left=, \c!right=, #2]} \let\setuplocalframed\getparameters \def\setupframedcontent {\dodoubleempty\dosetupframedcontent} \def\dosetupframedcontent[#1][#2]% {\def\docommand##1{\getparameters[\??fc##1][#2]}% \processcommacommand[#1]\docommand} \def\startframedcontent[#1]% {\bgroup \let\stopframedcontent\egroup \doifnot{#1}\v!off {\doifdefined{\??fc#1\c!frame} {\def\stopframedcontent{\dostopframedcontent{#1}}% \dostartframedcontent{#1}}}} \def\dostartframedcontent#1% {\setbox\framebox\hbox\bgroup \setlocalhsize \hsize\localhsize \advance\hsize\dimexpr-\getvalue{\??fc#1\c!leftoffset}-\getvalue{\??fc#1\c!rightoffset} \relax \advance\vsize\dimexpr-\getvalue{\??fc#1\c!topoffset} -\getvalue{\??fc#1\c!bottomoffset}\relax \hskip\getvalue{\??fc#1\c!leftoffset}% \vbox\bgroup \vskip\getvalue{\??fc#1\c!topoffset}% \vbox\bgroup \forgetall \blank[\v!disable]} \def\dostopframedcontent#1% {\removelastskip \egroup \vskip\getvalue{\??fc#1\c!bottomoffset}% \egroup \hskip\getvalue{\??fc#1\c!rightoffset}% \egroup \doifvalue{\??fc#1\c!width}\v!fit {\letvalue{\??fc#1\c!width}\v!fixed}% no shapebox \ifinsidefloat \donefalse \else \doifelsevalue{\??fc#1\c!linecorrection}\v!yes\donetrue\donefalse \fi % plaats ? \ifdone\startlinecorrection\fi \getvalue{\??fc#1\c!left}% new \localframed[\??fc#1]{\box\framebox}% \getvalue{\??fc#1\c!right}% new \ifdone\stoplinecorrection\fi \egroup} %D \macros %D {backgroundline} %D %D For the moment an undocumented feature, but a cancidate %D for going public. \def\backgroundline[#1]% %{\doifsomething{#1}{\dobackgroundline{#1}}\hbox} {\doifcolorelse{#1}{\dobackgroundline{#1}\hbox}\hbox} % \def\backgroundline[#1]% % {\doifcolor{#1}{\dobackgroundline{#1}}\hbox} \def\dobackgroundline#1% {\dowithnextbox {\hbox {\localcolortrue \startcolor[#1]% \vrule \!!width \nextboxwd \!!height\nextboxht \!!depth \nextboxdp \stopcolor \hskip-\nextboxwd \flushnextbox}}} %D \macros %D {encircled} %D %D Some not so robust left||overs (borrowed from Knuth, %D \TEX Book\ page 356): \def\encircled#1% {{\ooalign{\hfil\raise0.07ex\hbox{{\tx#1}}\hfil\crcr\mathhexbox20D}}} \let\omcirkeld\encircled \setuplinewidth [\v!medium] \setupframed [\c!width=\v!fit, \c!height=\v!broad, \c!lines=, \c!offset=0.25ex, % \defaultframeoffset \c!empty=\v!no, \c!frame=\v!on, \c!topframe=, \c!bottomframe=, \c!leftframe=, \c!rightframe=, \c!radius=.5\bodyfontsize, \c!rulethickness=\linewidth, \c!corner=\v!rectangular, \c!depth=\!!zeropoint, \c!foregroundcolor=, \c!foregroundstyle=, \c!background=, \c!backgroundscreen=\@@rsscreen, \c!backgroundcolor=, \c!backgroundoffset=\!!zeropoint, \c!framecolor=, \c!frameoffset=\!!zeropoint, \c!backgroundcorner=\framedparameter\c!corner, \c!backgroundradius=\framedparameter\c!radius, \c!backgrounddepth=\framedparameter\c!depth, \c!framecorner=\framedparameter\c!corner, \c!frameradius=\framedparameter\c!radius, \c!framedepth=\framedparameter\c!depth, \c!component=, \c!align=, \c!bottom=\vss, \c!top=, \c!strut=\v!yes, \c!autostrut=\v!yes, \c!location=\v!normal, \c!orientation=, \c!autowidth=\v!yes, \c!setups=] \setupscreens [%\c!factor=1.0, % obsolete %\c!method=\v!external, % obsolete \c!screen=0.95] \setupblackrules [\c!n=3, \c!width=1em, \c!height=1ex, \c!depth=\!!zeropoint, \c!alternative=\c!a, \c!distance=.25ex, \c!color=] \setupmarginrules [\c!level=0, \c!rulethickness=\@@kadefaultwidth\linewidth] \setupthinrules [\c!interlinespace=\v!small, \c!n=3, \c!before=, \c!inbetween={\blank[\v!white]}, \c!after=, \c!color=, \c!height=.5\linewidth, \c!depth=.5\linewidth, \c!frame=\v!on, % compatible with textbackgrounds \c!alternative=\v!b, \c!backgroundcolor=, \c!background=, \c!rulethickness=] \setuptextrules [\c!location=\v!left, \c!before=\blank, \c!after=\blank, \c!inbetween=, \c!width=2em, \c!style=\v!bold, \c!color=, \c!rulecolor=, \c!bodyfont=, \c!distance=.5em] \setupfillinrules [\c!width=\v!broad, \c!distance=1em, \c!before=\blank, \c!after=\blank, \c!n=1, \c!interlinespace=\v!small, \c!separator=, \c!style=\v!normal, \c!color=] \setupfillinlines [\c!width=3cm, \c!margin=\@@ivwidth, \c!distance=1em, \c!before=\blank, \c!after=\blank] \setupbackground [\c!leftoffset=.5\bodyfontsize, \c!rightoffset=\@@agleftoffset, \c!topoffset=\!!zeropoint, \c!bottomoffset=\@@agtopoffset, \c!state=\v!start, \c!radius=.5\bodyfontsize, \c!corner=\v!rectangular, \c!frame=\v!off, \c!color=, \c!depth=\!!zeropoint, \c!background=\v!screen, \c!backgroundcolor=\@@agcolor, \c!screen=\@@rsscreen, \c!before=, \c!after=] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/norm-etx.mkii0000644000175000017500000000665614536300610024741 0ustar hillehille%D \module %D [ file=norm-etx, %D version=2009.03.19, %D title=\CONTEXT\ Norm Macros, %D subtitle=\ETEX, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % etex primitives \let \normalbotmarks = \botmarks \let \normalclubpenalties = \clubpenalties \let \normalcurrentgrouplevel = \currentgrouplevel \let \normalcurrentgrouptype = \currentgrouptype \let \normalcurrentifbranch = \currentifbranch \let \normalcurrentiflevel = \currentiflevel \let \normalcurrentiftype = \currentiftype \let \normaldetokenize = \detokenize \let \normaldimexpr = \dimexpr \let \normaldisplaywidowpenalties = \displaywidowpenalties \let \normaleTeXVersion = \eTeXVersion \let \normaleTeXminorversion = \eTeXminorversion \let \normaleTeXrevision = \eTeXrevision \let \normaleTeXversion = \eTeXversion \let \normaleveryeof = \everyeof \let \normalfirstmarks = \firstmarks \let \normalfontchardp = \fontchardp \let \normalfontcharht = \fontcharht \let \normalfontcharic = \fontcharic \let \normalfontcharwd = \fontcharwd \let \normalglueexpr = \glueexpr \let \normalglueshrink = \glueshrink \let \normalglueshrinkorder = \glueshrinkorder \let \normalgluestretch = \gluestretch \let \normalgluestretchorder = \gluestretchorder \let \normalgluetomu = \gluetomu \let \normalifcsname = \ifcsname \let \normalifdefined = \ifdefined \let \normaliffontchar = \iffontchar \let \normalinteractionmode = \interactionmode \let \normalinterlinepenalties = \interlinepenalties \let \normallastlinefit = \lastlinefit \let \normallastnodetype = \lastnodetype \let \normalmarks = \marks \let \normalmuexpr = \muexpr \let \normalmutoglue = \mutoglue \let \normalnumexpr = \numexpr \let \normalpagediscards = \pagediscards \let \normalparshapedimen = \parshapedimen \let \normalparshapeindent = \parshapeindent \let \normalparshapelength = \parshapelength \let \normalpredisplaydirection = \predisplaydirection \let \normalprotected = \protected \let \normalreadline = \readline \let \normalsavinghyphcodes = \savinghyphcodes \let \normalsavingvdiscards = \savingvdiscards \let \normalscantokens = \scantokens \let \normalshowgroups = \showgroups \let \normalshowifs = \showifs \let \normalshowtokens = \showtokens \let \normalsplitbotmarks = \splitbotmarks \let \normalsplitdiscards = \splitdiscards \let \normalsplitfirstmarks = \splitfirstmarks \let \normaltopmarks = \topmarks \let \normaltracingassigns = \tracingassigns \let \normaltracinggroups = \tracinggroups \let \normaltracingifs = \tracingifs \let \normaltracingnesting = \tracingnesting \let \normaltracingscantokens = \tracingscantokens \let \normalunexpanded = \unexpanded \let \normalunless = \unless \let \normalwidowpenalties = \widowpenalties \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-chi.mkii0000644000175000017500000004411214536300610024637 0ustar hillehille%D \module %D [ file=lang-chi, %D version=2002.06.25, % 1998.10.10, %D title=\CONTEXT\ Language Macros, %D subtitle=Chinese, %D author={Hans Hagen \& Wang Lei}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Chinese} %D This module is coded using the \UNICODE\ support built in %D \CONTEXT. Therefore, \type {\uchar} is used instead of latin %D characters. \unprotect \definesystemconstant {chinese} \definesystemconstant {cn} \installlanguage [\s!cn] [\c!leftsentence=\cnencoding\cnleftsentence, \c!rightsentence=\cnencoding\cnrightsentence, \c!leftsubsentence=\cnencoding\cnleftsubsentence, \c!rightsubsentence=\cnencoding\cnrightsubsentence, \c!leftquote=\cnencoding\cnupperleftsinglequote, \c!rightquote=\cnencoding\cnupperrightsinglequote, \c!leftquotation=\cnencoding\cnupperleftdoublequote, \c!rightquotation=\cnencoding\cnupperrightdoublequote, \c!date={\v!year,\cnyear,\ ,\v!month,\v!day,\cnday}] \setupheadtext [\s!cn] [\v!content={\cnencoding\cnencodedcontents}] \setupheadtext [\s!cn] [\v!tables={\cnencoding\cnencodedtables}] \setupheadtext [\s!cn] [\v!figures={\cnencoding\cnencodedfigures}] \setupheadtext [\s!cn] [\v!graphics={\cnencoding\cnencodedgraphics}]% RG & XJF \setupheadtext [\s!cn] [\v!intermezzi={\cnencoding\cnencodedintermezzo}]% RG & XJF \setupheadtext [\s!cn] [\v!index={\cnencoding\cnencodedindex}] \setupheadtext [\s!cn] [\v!abbreviations={\cnencoding\cnencodedabbreviations}] \setupheadtext [\s!cn] [\v!logos={\cnencoding\cnencodedlogos}] \setupheadtext [\s!cn] [\v!units={\cnencoding\cnencodedunits}] \setuplabeltext [\s!cn] [\v!table={\cnencoding\cnencodedtable}] \setuplabeltext [\s!cn] [\v!figure={\cnencoding\cnencodedfigure}] \setuplabeltext [\s!cn] [\v!intermezzo={\cnencoding\cnencodedintermezzo}]% RG & XJF \setuplabeltext [\s!cn] [\v!graphic={\cnencoding\cnencodedillustration}]% RG & XJF \setuplabeltext [\s!cn] [\v!appendix={\cnencoding\cnencodedappendix}]% RG \setuplabeltext [\s!cn] [\v!part={\cnencoding\cnencodedintro,\cnencoding\cnencodedpart}] \setuplabeltext [\s!cn] [\v!chapter={\cnencoding\cnencodedintro,\cnencoding\cnencodedchapter}] \setuplabeltext [\s!cn] [\v!section={\cnencoding\cnencodedintro,\cnencoding\cnencodedsection}] \setuplabeltext [\s!cn] [\v!line={\cnencoding\cnencodedline}]% RG & XJF \setuplabeltext [\s!cn] [\v!lines={\cnencoding\cnencodedline}]% RG & XJF \setuplabeltext [\s!cn] [\v!subsection=] \setuplabeltext [\s!cn] [\v!subsubsection=] \setuplabeltext [\s!cn] [\v!subsubsubsection=] %D From this definition one can deduce that language, input %D encoding, font encoding, and glyph meaning form a pretty %D complex four dimensional space. \startlanguagespecifics[\s!cn] \setuplabeltext [\s!cn] [\v!january=\cnencoding\cnencodedjanuary ] \setuplabeltext [\s!cn] [\v!february=\cnencoding\cnencodedfebrary ] \setuplabeltext [\s!cn] [\v!march=\cnencoding\cnencodedmarch ] \setuplabeltext [\s!cn] [\v!april=\cnencoding\cnencodedapril ] \setuplabeltext [\s!cn] [\v!may=\cnencoding\cnencodedmay ] \setuplabeltext [\s!cn] [\v!june=\cnencoding\cnencodedjune ] \setuplabeltext [\s!cn] [\v!july=\cnencoding\cnencodedjuly ] \setuplabeltext [\s!cn] [\v!august=\cnencoding\cnencodedaugust ] \setuplabeltext [\s!cn] [\v!september=\cnencoding\cnencodedseptember] \setuplabeltext [\s!cn] [\v!october=\cnencoding\cnencodedoctober ] \setuplabeltext [\s!cn] [\v!november=\cnencoding\cnencodednovember ] \setuplabeltext [\s!cn] [\v!december=\cnencoding\cnencodeddecember ] \setuplabeltext [\s!cn] [\v!sunday=\cnencoding\cnencodedsunday ] \setuplabeltext [\s!cn] [\v!monday=\cnencoding\cnencodedmonday ] \setuplabeltext [\s!cn] [\v!tuesday=\cnencoding\cnencodedtuesday ] \setuplabeltext [\s!cn] [\v!wednesday=\cnencoding\cnencodedwednesday] \setuplabeltext [\s!cn] [\v!thursday=\cnencoding\cnencodedthursday ] \setuplabeltext [\s!cn] [\v!friday=\cnencoding\cnencodedfriday ] \setuplabeltext [\s!cn] [\v!saturday=\cnencoding\cnencodedsaturday ] \stoplanguagespecifics %D One can specify a split labeltext, as demonstrated in %D the definition of the \type {part} label. Unfortunately %D the glyphs of both part depend on the encoding. Therefore, %D we have an encoding section here. \unexpanded\def\cnencoding{\enableencoding[\chineseencoding]} % ugly and temporary \startencoding[cjk-uni] \definecommand cnleftsentence {\uchar{32}{20}\uchar{32}{20}} \definecommand cnrightsentence {\uchar{32}{20}\uchar{32}{20}} \definecommand cnleftsubsentence {\uchar{32}{20}\uchar{32}{20}} \definecommand cnrightsubsentence {\uchar{32}{20}\uchar{32}{20}} \definecommand cnupperleftsinglequote {\uchar{32}{24}} \definecommand cnupperrightsinglequote {\uchar{32}{25}} \definecommand cnupperleftdoublequote {\uchar{32}{28}} \definecommand cnupperrightdoublequote {\uchar{32}{29}} \definecommand cnupperleftsinglequote-v {\uchar{48}{12}} \definecommand cnupperrightsinglequote-v {\uchar{48}{13}} \definecommand cnupperleftdoublequote-v {\uchar{48}{14}} \definecommand cnupperrightdoublequote-v {\uchar{48}{15}} \definecommand cnencodedcontents {\uchar{118}{238}\uchar{95}{85}} \definecommand cnencodedtables {\uchar{136}{104}\uchar{104}{60}} \definecommand cnencodedfigures {\uchar{86}{254}\uchar{95}{98}} \definecommand cnencodedindex {\uchar{125}{34}\uchar{95}{21}} \definecommand cnencodedabbreviations {\uchar{127}{41}\uchar{117}{101}\uchar{139}{237}} \definecommand cnencodedlogos {\uchar{95}{189}\uchar{141}{44}} \definecommand cnencodedunits {\uchar{139}{161}\uchar{145}{207}\uchar{83}{85}\uchar{79}{77}} \definecommand cnencodedtable {\uchar{136}{104}} \definecommand cnencodedfigure {\uchar{86}{254}} \definecommand cnencodedintro {\uchar{123}{44}} \definecommand cnencodedpart {\uchar{144}{232}\uchar{82}{6}} \definecommand cnencodedchapter {\uchar{122}{224}} \definecommand cnencodedsection {\uchar{130}{130}} \definecommand cnencodedjanuary {\uchar{78}{0}\uchar{103}{8}} \definecommand cnencodedfebrary {\uchar{78}{140}\uchar{103}{8}} \definecommand cnencodedmarch {\uchar{78}{9}\uchar{103}{8}} \definecommand cnencodedapril {\uchar{86}{219}\uchar{103}{8}} \definecommand cnencodedmay {\uchar{78}{148}\uchar{103}{8}} \definecommand cnencodedjune {\uchar{81}{109}\uchar{103}{8}} \definecommand cnencodedjuly {\uchar{78}{3}\uchar{103}{8}} \definecommand cnencodedaugust {\uchar{81}{107}\uchar{103}{8}} \definecommand cnencodedseptember {\uchar{78}{93}\uchar{103}{8}} \definecommand cnencodedoctober {\uchar{83}{65}\uchar{103}{8}} \definecommand cnencodednovember {\uchar{83}{65}\uchar{78}{0}\uchar{103}{8}} \definecommand cnencodeddecember {\uchar{83}{65}\uchar{78}{140}\uchar{103}{8}} \definecommand cnencodedsunday {\uchar{102}{31}\uchar{103}{31}\uchar{101}{229}} \definecommand cnencodedmonday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{0}} \definecommand cnencodedtuesday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{140}} \definecommand cnencodedwednesday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{9}} \definecommand cnencodedthursday {\uchar{102}{31}\uchar{103}{31}\uchar{86}{219}} \definecommand cnencodedfriday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{148}} \definecommand cnencodedsaturday {\uchar{102}{31}\uchar{103}{31}\uchar{81}{109}} % RG & XJF \definecommand cnencodedgraphics {\uchar{86}{254}} \definecommand cnencodedintermezzo {\uchar{210}{99}\uchar{242}{102}} \definecommand cnencodedillustration {\uchar{99}{210}\uchar{86}{254}} \definecommand cnencodedappendix {\uchar{150}{68}\uchar{95}{85}} \definecommand cnencodedline {\uchar{136}{76}} % Tobias Burnus & XJF \definecommand cnyear {\uchar{94}{116}} \definecommand cnmonth {\uchar{103}{8}} \definecommand cnday {\uchar{101}{229}} \stopencoding \startencoding[gbk] \definecommand cnleftsentence {\uchar{161}{170}\uchar{161}{170}} \definecommand cnrightsentence {\uchar{161}{170}\uchar{161}{170}} \definecommand cnleftsubsentence {\uchar{161}{170}\uchar{161}{170}} \definecommand cnrightsubsentence {\uchar{161}{170}\uchar{161}{170}} \definecommand cnupperleftsinglequote {\uchar{161}{174}} \definecommand cnupperrightsinglequote {\uchar{161}{175}} \definecommand cnupperleftdoublequote {\uchar{161}{176}} \definecommand cnupperrightdoublequote {\uchar{161}{177}} \definecommand cnupperleftsinglequote-v {\uchar{161}{184}} \definecommand cnupperrightsinglequote-v {\uchar{161}{185}} \definecommand cnupperleftdoublequote-v {\uchar{161}{186}} \definecommand cnupperrightdoublequote-v {\uchar{161}{187}} \definecommand cnencodedcontents {\uchar{196}{191}\uchar{194}{188}} \definecommand cnencodedtables {\uchar{177}{237}\uchar{184}{241}} \definecommand cnencodedfigures {\uchar{205}{188}\uchar{208}{206}} \definecommand cnencodedindex {\uchar{203}{247}\uchar{210}{253}} \definecommand cnencodedabbreviations {\uchar{203}{245}\uchar{194}{212}\uchar{211}{239}} \definecommand cnencodedlogos {\uchar{187}{213}\uchar{177}{225}} \definecommand cnencodedunits {\uchar{188}{198}\uchar{193}{191}\uchar{181}{165}\uchar{206}{187}} \definecommand cnencodedtable {\uchar{177}{237}} \definecommand cnencodedfigure {\uchar{205}{188}} \definecommand cnencodedintro {\uchar{181}{218}} \definecommand cnencodedpart {\uchar{178}{191}\uchar{183}{214}} \definecommand cnencodedchapter {\uchar{213}{194}} \definecommand cnencodedsection {\uchar{189}{218}} \definecommand cnencodedjanuary {\uchar{210}{187}\uchar{212}{194}} \definecommand cnencodedfebrary {\uchar{182}{254}\uchar{212}{194}} \definecommand cnencodedmarch {\uchar{200}{253}\uchar{212}{194}} \definecommand cnencodedapril {\uchar{203}{196}\uchar{212}{194}} \definecommand cnencodedmay {\uchar{206}{229}\uchar{212}{194}} \definecommand cnencodedjune {\uchar{193}{249}\uchar{212}{194}} \definecommand cnencodedjuly {\uchar{198}{223}\uchar{212}{194}} \definecommand cnencodedaugust {\uchar{176}{203}\uchar{212}{194}} \definecommand cnencodedseptember {\uchar{190}{197}\uchar{212}{194}} \definecommand cnencodedoctober {\uchar{202}{174}\uchar{212}{194}} \definecommand cnencodednovember {\uchar{202}{174}\uchar{210}{187}\uchar{212}{194}} \definecommand cnencodeddecember {\uchar{202}{174}\uchar{182}{254}\uchar{212}{194}} \definecommand cnencodedsunday {\uchar{208}{199}\uchar{198}{218}\uchar{200}{213}} \definecommand cnencodedmonday {\uchar{208}{199}\uchar{198}{218}\uchar{210}{187}} \definecommand cnencodedtuesday {\uchar{208}{199}\uchar{198}{218}\uchar{182}{254}} \definecommand cnencodedwednesday {\uchar{208}{199}\uchar{198}{218}\uchar{200}{253}} \definecommand cnencodedthursday {\uchar{208}{199}\uchar{198}{218}\uchar{203}{196}} \definecommand cnencodedfriday {\uchar{208}{199}\uchar{198}{218}\uchar{206}{229}} \definecommand cnencodedsaturday {\uchar{208}{199}\uchar{198}{218}\uchar{193}{249}} % RG & XJF \definecommand cnencodedgraphics {\uchar{205}{188}} \definecommand cnencodedintermezzo {\uchar{178}{229}\uchar{199}{250}} \definecommand cnencodedillustration {\uchar{178}{229}\uchar{205}{188}} \definecommand cnencodedappendix {\uchar{184}{189}\uchar{194}{188}} \definecommand cnencodedline {\uchar{208}{208}} % Tobias Burnus & XJF \definecommand cnyear {\uchar{196}{234}} \definecommand cnmonth {\uchar{212}{194}} \definecommand cnday {\uchar{200}{213}} \stopencoding \startencoding[big5] \definecommand cnleftsentence {\uchar{162}{119}\uchar{162}{119}} \definecommand cnrightsentence {\uchar{162}{119}\uchar{162}{119}} \definecommand cnleftsubsentence {\uchar{162}{119}\uchar{162}{119}} \definecommand cnrightsubsentence {\uchar{162}{119}\uchar{162}{119}} \definecommand cnupperleftsinglequote {\uchar{161}{165}} \definecommand cnupperrightsinglequote {\uchar{161}{166}} \definecommand cnupperleftdoublequote {\uchar{161}{167}} \definecommand cnupperrightdoublequote {\uchar{161}{168}} \definecommand cnupperleftsinglequote-v {\uchar{161}{117}} \definecommand cnupperrightsinglequote-v {\uchar{161}{118}} \definecommand cnupperleftdoublequote-v {\uchar{161}{121}} \definecommand cnupperrightdoublequote-v {\uchar{161}{122}} \definecommand cnencodecontents {\uchar{165}{216}\uchar{191}{253}} \definecommand cnencodetables {\uchar{170}{237}\uchar{174}{230}} \definecommand cnencodefigures {\uchar{185}{207}\uchar{167}{206}} \definecommand cnencodeindex {\uchar{175}{193}\uchar{174}{222}} \definecommand cnencodeabbreviations {\uchar{191}{89}\uchar{178}{164}\uchar{187}{121}} \definecommand cnencodelogos {\uchar{192}{178}\uchar{188}{208}} \definecommand cnencodeunits {\uchar{173}{112}\uchar{182}{113}\uchar{179}{230}\uchar{166}{236}} \definecommand cnencodetable {\uchar{170}{237}} \definecommand cnencodefigure {\uchar{185}{207}} \definecommand cnencodedintro {\uchar{178}{196}} \definecommand cnencodedpart {\uchar{179}{161}\uchar{164}{192}} \definecommand cnencodedchapter {\uchar{179}{185}} \definecommand cnencodedsection {\uchar{184} {96}} \definecommand cnencodedjanuary {\uchar{164} {64}\uchar{164}{235}} \definecommand cnencodedfebrary {\uchar{164} {71}\uchar{164}{235}} \definecommand cnencodedmarch {\uchar{164} {84}\uchar{164}{235}} \definecommand cnencodedapril {\uchar{165}{124}\uchar{164}{235}} \definecommand cnencodedmay {\uchar{164}{173}\uchar{164}{235}} \definecommand cnencodedjune {\uchar{164}{187}\uchar{164}{235}} \definecommand cnencodedjuly {\uchar{164} {67}\uchar{164}{235}} \definecommand cnencodedaugust {\uchar{164} {75}\uchar{164}{235}} \definecommand cnencodedseptember {\uchar{164} {69}\uchar{164}{235}} \definecommand cnencodedoctober {\uchar{164} {81}\uchar{164}{235}} \definecommand cnencodednovember {\uchar{164} {81}\uchar{164} {64}\uchar{164}{235}} \definecommand cnencodeddecember {\uchar{164} {81}\uchar{164} {71}\uchar{164}{235}} \definecommand cnencodedsunday {\uchar{172} {80}\uchar{180}{193}\uchar{164}{233}} \definecommand cnencodedmonday {\uchar{172} {80}\uchar{180}{193}\uchar{164} {64}} \definecommand cnencodedtuesday {\uchar{172} {80}\uchar{180}{193}\uchar{164} {71}} \definecommand cnencodedwednesday {\uchar{172} {80}\uchar{180}{193}\uchar{164} {84}} \definecommand cnencodedthursday {\uchar{172} {80}\uchar{180}{193}\uchar{165}{124}} \definecommand cnencodedfriday {\uchar{172} {80}\uchar{180}{193}\uchar{164}{173}} \definecommand cnencodedsaturday {\uchar{172} {80}\uchar{180}{193}\uchar{164}{187}} % Tobias Burnus &\XJF \definecommand cnyear {\uchar{166}{126}} \definecommand cnmonth {\uchar{164}{235}} \definecommand cnday {\uchar{164}{233}} % Traditional Chinese characters (only where they differ to the % simplified ones) for lang-chi.tex and font-chi.tex. % \startencoding[cjk-uni] % \defineudigit 10000 132 44 % \defineudigit 100000000 81 4 % \definecommand cnencodedsection {\uchar{123}{192}} % \definecommand cnencodedfigure {\uchar{87}{22}} % \definecommand cnencodedunits {\uchar{138}{8}\uchar{145}{207}\uchar{85}{174}\uchar{79}{77}} % \definecommand cnencodedlogos {\uchar{95}{189}\uchar{140}{182}} % \definecommand cnencodedabbreviations {\uchar{126}{46}\uchar{117}{101}\uchar{138}{158}} % \definecommand cnencodedfigures {\uchar{87}{22}\uchar{95}{98}} % \definecommand cnencodedcontents {\uchar{118}{238}\uchar{147}{4}} % \stopencoding % \startencoding[gbk] % \defineudigit 10000 200 102 % \defineudigit 100000000 131 124 % \definecommand cnencodedsection {\uchar{185}{157}} % \definecommand cnencodedfigure {\uchar{136}{68}} % \definecommand cnencodedunits {\uchar{211}{139}\uchar{193}{191}\uchar{134}{206}\uchar{206}{187}} % \definecommand cnencodedlogos {\uchar{187}{213}\uchar{217}{72} % \definecommand cnencodedabbreviations {\uchar{191}{115}\uchar{194}{212}\uchar{213}{90}} % \definecommand cnencodedfigures {\uchar{136}{68}\uchar{208}{206}} % \definecommand cnencodedcontents {\uchar{196}{191}\uchar{228}{155}} % \stopencoding % \startencoding[big5] % \defineudigit 10000 184 85 % \defineudigit 100000000 187 245 % \definecommand cnencodedsection {\uchar{184}{96}} % \definecommand cnencodedfigure {\uchar{185}{207}} % \definecommand cnencodedunits {\uchar{173}{112}\uchar{182}{113}\uchar{179}{230}\uchar{166}{236}} % \definecommand cnencodedlogos {\uchar{192}{178}\uchar{182}{83}} % \definecommand cnencodedabbreviations {\uchar{193}{89}\uchar{178}{164}\uchar{187}{121}} % \definecommand cnencodedfigures {\uchar{185}{207}\uchar{167}{206}} % \definecommand cnencodedcontents {\uchar{165}{216}\uchar{191}{253}} % \stopencoding \stopencoding \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-t5.mkii0000644000175000017500000002061514536300610024431 0ustar hillehille%D \module %D [ file=enco-t5, %D version=2004.11.16, %D title=\CONTEXT\ Encoding Macros, %D subtitle=New Vietnamese Encoding, %D author=Hans Hagen \& Adam Lindsay, %D date=\currentdate, %D copyright={Adam Lindsay \& Hans Hagen}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module is derived from the enco-x5 encoding, but now %D approaches the world with named glyphs. \startencoding[t5] \definecasemaps 128 to 159 lc +32 uc 0 \definecasemaps 160 to 191 lc 0 uc -32 \definecasemaps 192 to 223 lc +32 uc 0 \definecasemaps 224 to 225 lc 0 uc -32 \definecasemap 26 26 27 \definecasemap 27 26 27 \definecasemap 28 28 29 \definecasemap 29 28 29 \definecasemap 30 30 31 \definecasemap 31 30 31 \definecharacter textgrave 0 \definecharacter textacute 1 \definecharacter textcircumflex 2 \definecharacter texttilde 3 \definecharacter textdiaeresis 4 \definecharacter textbottomdot 5 \definecharacter textring 6 \definecharacter textcaron 7 \definecharacter textbreve 8 \definecharacter textmacron 9 \definecharacter textdotaccent 10 \definecharacter textcedilla 11 \definecharacter texthookabove 12 \definecharacter textogonek {} \definecharacter quotesinglebase 13 \definecharacter guilsingleleft 14 \definecharacter guilsingleright 15 \definecharacter quotedblleft 16 \definecharacter quotedblright 17 \definecharacter quotedblbase 18 \definecharacter leftguillemot 19 \definecharacter rightguillemot 20 \definecharacter endash 21 \definecharacter emdash 22 \definecharacter cwm 23 \definecharacter zeroinferior 24 \definecharacter Yhook 26 \definecharacter yhook 27 \definecharacter Ydotbelow 28 \definecharacter ydotbelow 29 \definecharacter Dstroke 30 \definecharacter dstroke 31 \definecharacter textvisiblespace 32 \definecharacter dotlessi 25 %definecharacter DJ 30 %definecharacter dj 31 \definecharacter Agrave 128 \definecharacter Aacute 129 \definecharacter Atilde 130 \definecharacter Ahook 131 \definecharacter Adotbelow 132 \definecharacter Acircumflex 133 \definecharacter Acircumflexgrave 134 \definecharacter Acircumflexacute 135 \definecharacter Acircumflextilde 136 \definecharacter Acircumflexhook 137 \definecharacter Acircumflexdotbelow 138 \definecharacter Abreve 139 \definecharacter Abrevegrave 140 \definecharacter Abreveacute 141 \definecharacter Abrevetilde 142 \definecharacter Abrevehook 143 \definecharacter Abrevedotbelow 144 \definecharacter Egrave 145 \definecharacter Eacute 146 \definecharacter Etilde 147 \definecharacter Ehook 148 \definecharacter Edotbelow 149 \definecharacter Ecircumflex 150 \definecharacter Ecircumflexgrave 151 \definecharacter Ecircumflexacute 152 \definecharacter Ecircumflextilde 153 \definecharacter Ecircumflexhook 154 \definecharacter Ecircumflexdotbelow 155 \definecharacter Igrave 156 \definecharacter Iacute 157 \definecharacter Itilde 158 \definecharacter Ihook 159 \definecharacter agrave 160 \definecharacter aacute 161 \definecharacter atilde 162 \definecharacter ahook 163 \definecharacter adotbelow 164 \definecharacter acircumflex 165 \definecharacter acircumflexgrave 166 \definecharacter acircumflexacute 167 \definecharacter acircumflextilde 168 \definecharacter acircumflexhook 169 \definecharacter acircumflexdotbelow 170 \definecharacter abreve 171 \definecharacter abrevegrave 172 \definecharacter abreveacute 173 \definecharacter abrevetilde 174 \definecharacter abrevehook 175 \definecharacter abrevedotbelow 176 \definecharacter egrave 177 \definecharacter eacute 178 \definecharacter etilde 179 \definecharacter ehook 180 \definecharacter edotbelow 181 \definecharacter ecircumflex 182 \definecharacter ecircumflexgrave 183 \definecharacter ecircumflexacute 184 \definecharacter ecircumflextilde 185 \definecharacter ecircumflexhook 186 \definecharacter ecircumflexdotbelow 187 \definecharacter igrave 188 \definecharacter iacute 189 \definecharacter itilde 190 \definecharacter ihook 191 \definecharacter Idotbelow 192 \definecharacter Ograve 193 \definecharacter Oacute 194 \definecharacter Otilde 195 \definecharacter Ohook 196 \definecharacter Odotbelow 197 \definecharacter Ocircumflex 198 \definecharacter Ocircumflexgrave 199 \definecharacter Ocircumflexacute 200 \definecharacter Ocircumflextilde 201 \definecharacter Ocircumflexhook 202 \definecharacter Ocircumflexdotbelow 203 \definecharacter Ohorn 204 \definecharacter Ohorngrave 205 \definecharacter Ohornacute 206 \definecharacter Ohorntilde 207 \definecharacter Ohornhook 208 \definecharacter Ohorndotbelow 209 \definecharacter Ugrave 210 \definecharacter Uacute 211 \definecharacter Utilde 212 \definecharacter Uhook 213 \definecharacter Udotbelow 214 \definecharacter Uhorn 215 \definecharacter Uhorngrave 216 \definecharacter Uhornacute 217 \definecharacter Uhorntilde 218 \definecharacter Uhornhook 219 \definecharacter Uhorndotbelow 220 \definecharacter Ytilde 223 \definecharacter idotbelow 224 \definecharacter ograve 225 \definecharacter oacute 226 \definecharacter otilde 227 \definecharacter ohook 228 \definecharacter odotbelow 229 \definecharacter ocircumflex 230 \definecharacter ocircumflexgrave 231 \definecharacter ocircumflexacute 232 \definecharacter ocircumflextilde 233 \definecharacter ocircumflexhook 234 \definecharacter ocircumflexdotbelow 235 \definecharacter ohorn 236 \definecharacter ohorngrave 237 \definecharacter ohornacute 238 \definecharacter ohorntilde 239 \definecharacter ohornhook 240 \definecharacter ohorndotbelow 241 \definecharacter ugrave 242 \definecharacter uacute 243 \definecharacter utilde 244 \definecharacter uhook 245 \definecharacter udotbelow 246 \definecharacter uhorn 247 \definecharacter uhorngrave 248 \definecharacter uhornacute 249 \definecharacter uhorntilde 250 \definecharacter uhornhook 251 \definecharacter uhorndotbelow 252 \definecharacter ygrave 253 \definecharacter yacute 254 \definecharacter ytilde 255 \stopencoding \endinput % \startencoding [x5] % % \definecharacter aa {\xfiveencodedaa} % \definecharacter AA {\xfiveencodedAA} % % \stopencoding % % \unprotect % % \def\xfiveencodedaa% % {\accent23a} % % \def\xfiveencodedAA% % {\leavevmode % \setbox\zerocount\hbox{h}% % \dimen@\ht\zerocount % \advance\dimen@ -1ex % \rlap{\raise.67\dimen@\hbox{\char23}}A} % % \protect % % \quotesinglbase 13 % \guilsinglleft 14 % \guilsinglright 15 % \textquotedblleft 16 % \textquotedblright 17 % \quotedblbase 18 % \guillemotleft 19 % \guillemotright 20 % \textendash 21 % \textemdash 22 % \textcompwordmark 23 % \textperthousand \% \char 24 % \textpertenthousand \%\char 24\char 24 % \textvisiblespace 32 % \textquotedbl `\" % \textdollar `\$ % \textquoteright `\' % \textless `\< % \textgreater `\> % \textbackslash `\ % \textasciicircum `\^ % \textunderscore 95 % \textquoteleft `\` % \textbraceleft `\{ % \textbar `\| % \textbraceright `\} % \textasciitilde `\~ context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-stk.mkii0000644000175000017500000002024514536300610024720 0ustar hillehille%D \module %D [ file=xtag-exp, %D version=2006.01.19, %D title=\CONTEXT\ XML Macros, %D subtitle=Stacking Data, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / Stacks} %D This module is experimental. Don't use it (yet). It needs a %D clean-up. The stack handler is used in the third MathML renderer. \unprotect \ifx\XMLRtoks \undefined \newtoks \XMLRtoks \fi \ifx\XMLstacklevel\undefined \newcount\XMLstacklevel \fi \def\@@xmlstack{xmlstack} \let\XMLstackid\empty \def\resetXMLelements {\XMLstacklevel\zerocount} \def\startsavingXMLelements % maybe something with \ignorespaces \\removeunwantedspaces {\XMLstacklevel\zerocount \let\normalexecuteXMLelement\executeXMLelement \def\executeXMLelement{\csname\@@XMLelement:\@@xmlstack\ifcase\kindofXMLelement\or\or\or/\fi\endcsname}} \def\stopsavingXMLelements {\let\executeXMLelement\normalexecuteXMLelement} \defineXMLnestedenvironmentsave [\@@xmlstack] {} {\pushXMLdataonstack} \startXMLmapping[xmlstack:test] \defineXMLnestedenvironmentsave [\@@xmlstack] {} {\pushXMLnameonstack} % in mathml handler: % % \defineXMLnested % [apply] % {\startsavingXMLelements} % {\stopsavingXMLelements} \stopXMLmapping \def\pushXMLdataonstack {\advance\XMLstacklevel\plusone \letvalue {\@@xmlstack:n:\XMLstackid:\number\XMLstacklevel}\currentXMLelement \saveXMLdata {\@@xmlstack:t:\XMLstackid:\number\XMLstacklevel} \@@xmlstack \saveXMLdatainelement{\@@xmlstack:d:\XMLstackid:\number\XMLstacklevel}\currentXMLelement\@@xmlstack} \def\pushXMLnameonstack {\advance\XMLstacklevel\plusone \letvalue {\@@xmlstack:n:\XMLstackid:\number\XMLstacklevel}\currentXMLelement} \def\eraseXMLdataonstack#1% {\letvalue{\@@xmlstack:n:\XMLstackid:\number#1}\empty \XMLerase{\@@xmlstack:t:\XMLstackid:\number#1}% \XMLerase{\@@xmlstack:d:\XMLstackid:\number#1}} \def\getXMLstackdata{\getXMLstackiddata\XMLstackid} \def\getXMLstackname{\getXMLstackidname\XMLstackid} \def\getXMLstacktext{\getXMLstackidtext\XMLstackid} \def\getXMLstackiddata#1#2{\flushXMLelement{\@@xmlstack:d:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}} \def\getXMLstackidname#1#2{\getvalue {\@@xmlstack:n:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}} \def\getXMLstackidtext#1#2{\flushXMLelement{\@@xmlstack:t:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}} \def\rawXMLstackdata{\rawXMLstackiddata\XMLstackid} \def\rawXMLstackname{\rawXMLstackidname\XMLstackid} \def\rawXMLstacktext{\rawXMLstackidtext\XMLstackid} \def\rawXMLstackiddata#1#2{\flushXMLelement{\@@xmlstack:d:#1:\number#2}} \def\rawXMLstackidname#1#2{\getvalue {\@@xmlstack:n:#1:\number#2}} \def\rawXMLstackidtext#1#2{\flushXMLelement{\@@xmlstack:t:#1:\number#2}} \def\defXMLstackiddata#1#2#3% {\defXMLelement#1{\@@xmlstack:d:#2:\ifnum#3>\XMLstacklevel\else\number#3\fi}} \def\defXMLstackdata#1% #2 {\defXMLstackiddata#1\XMLstackid} \def\showXMLstacknames {\hbox{[\space\dorecurse\XMLstacklevel{\recurselevel:\getXMLstackname\recurselevel\space}]}} \def\flushXMLstackfrom#1% {\dostepwiserecurse{#1}\XMLstacklevel\plusone {\getXMLstackdata\recurselevel}} \def\flushXMLstackwith#1#2% {\dostepwiserecurse{#1}\XMLstacklevel\plusone {\relax\ifnum\recurselevel>#1\relax#2\fi \getXMLstackdata\recurselevel}} \def\flushXMLnamedstackwith#1#2#3% {\dostepwiserecurse{#1}\XMLstacklevel\plusone {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}} {\ifnum\recurselevel>#1\relax#3\fi \getXMLstackdata\recurselevel}}} \def\countXMLnamedstack#1% todo: \nofXMLchildren ! ! ! ! ! {\scratchcounter\zerocount \dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}} {\advance\scratchcounter\plusone}}} \def\collectXMLstack#1% {\XMLRtoks\emptytoks \dorecurse\XMLstacklevel {\ifnum\recurselevel>\plusone\appendtoks#1\to\XMLRtoks\fi \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}} \def\collectXMLstackrows#1#2% {\XMLRtoks\emptytoks \dostepwiserecurse{#1}\XMLstacklevel\plusone {\ifnum\recurselevel>#1\appendtoks#2\to\XMLRtoks\fi \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}} \def\collectXMLnamedstack#1#2% {\XMLRtoks\emptytoks \dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}} {\ifnum\recurselevel>\plusone\appendtoks#2\to\XMLRtoks\fi \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}}} \def\collectXMLnamedstacknamed#1#2#3% names, inbetween, nestednames (maddness, this macro) {\XMLRtoks\emptytoks \!!doneafalse \let\globalascii\empty \dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}} {\begingroup \startsavingXMLelements \rawXMLstacktext\recurselevel % still on stack, raw does not test \stopsavingXMLelements \let\globalascii\empty \dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}} {\xdef\globalascii{\getXMLstackdata\recurselevel}}}% \endgroup \ifx\globalascii\empty\else \if!!donea\appendtoks#3\to\XMLRtoks\fi \expandafter\appendtoks\globalascii\to\XMLRtoks \!!doneatrue \fi}}} \def\XMLcopydata#1#2% to from {\@EA\let\csname\@@XMLdata:#1\@EA\endcsname\csname\@@XMLdata:#2\endcsname} \def\XMLcopysave#1#2% to from {\@EA\let\csname\@@XMLsave:#1\@EA\endcsname\csname\@@XMLsave:#2\endcsname} \def\removeXMLdatafromstack#1% {\dorecurse\XMLstacklevel {\doif{\getXMLstackname\recurselevel}{#1} {\dostepwiserecurse\recurselevel{\numexpr\XMLstacklevel+\minusone}\plusone {\scratchcounter\numexpr\recurselevel+\plusone\relax \@EA\let\csname\@@xmlstack:n:\XMLstackid:\recurselevel\@EA\endcsname\csname\@@xmlstack:n:\XMLstackid:\number\scratchcounter\endcsname \XMLcopysave{\@@xmlstack:t:\XMLstackid:\recurselevel}{\@@xmlstack:t:\XMLstackid:\number\scratchcounter}% \XMLcopysave{\@@xmlstack:d:\XMLstackid:\recurselevel}{\@@xmlstack:d:\XMLstackid:\number\scratchcounter}}% \advance\XMLstacklevel\minusone \exitloop}}} %D BEWARE: these names may change (get stack in the name) \def\XMLallnamed#1% {\dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}} {\getXMLstackdata\recurselevel}}} \def\defXMLfirstnamed#1#2% \cs list {\dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}} {\defXMLstackdata#1\recurselevel\exitloop}}} \def\defXMLfirstnamedtext#1#2% \cs list {\dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}} {\edef#1{\getXMLstacktext\recurselevel}\exitloop}}} \def\XMLfirstnamed#1% {\dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}} {\getXMLstackdata\recurselevel\exitloop}}} \def\XMLnotnamed#1% {\dorecurse\XMLstacklevel {\expanded{\doifnotinset{\getXMLstackname\recurselevel}{#1}} {\getXMLstackdata\recurselevel\exitloop}}} \let\XMLstackposition\!!zerocount \def\XMLdoifonstackelse#1% was \XMLdoifelsefound {\!!doneafalse \let\XMLstackposition\!!zerocount \dorecurse\XMLstacklevel {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}} {\let\XMLstackposition\recurselevel\!!doneatrue\exitloop}}% \if!!donea \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} %D Handy: \def\pushXMLmeaning#1% or [#1] {\@EA\pushmacro\csname\@@XMLelement:#1/\endcsname \@EA\pushmacro\csname\@@XMLelement:#1\endcsname \@EA\pushmacro\csname\@@XMLelement:/#1\endcsname} \def\popXMLmeaning#1% or [#1] {\@EA\popmacro\csname\@@XMLelement:#1/\endcsname \@EA\popmacro\csname\@@XMLelement:#1\endcsname \@EA\popmacro\csname\@@XMLelement:/#1\endcsname} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/norm-ctx.mkii0000644000175000017500000000077214536300610024730 0ustar hillehille%D \module %D [ file=norm-ctx, %D version=2009.03.19, %D title=\CONTEXT\ Norm Macros, %D subtitle=\ALEPH\ and \OMEGA, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D A few more might end up here (like the weird ones in syst-ini). \let\normalreqno = \normaleqno context-modules-20240428/texmf-dist/tex/context/base/mkii/java-ans.mkii0000644000175000017500000000151014536300610024650 0ustar hillehille%D \module %D [ file=java-ans, %D version=1998.06.01, %D title=\CONTEXT\ JavaScript Macros, %D subtitle=Answer Analization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \startJSpreamble{Do_Check_Answer} used later function Do_Check_Answer (field, value) { if (event.value.toLowerCase()==value.toLowerCase()) { event.target.hidden = true } % { event.target.display = display.hidden } return("\040") } // funny, "" does not work \stopJSpreamble \startJScode{Check_Answer} uses {Do_Check_Answer} event.value = Do_Check_Answer(JS_S_1, JS_S_2) ; \stopJScode \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-ref.mkii0000644000175000017500000027121314536300610024706 0ustar hillehille%D \module %D [ file=strc-ref, %D version=1998.01.15, %D title=\CONTEXT\ Structure Macros, %D subtitle=Cross Referencing, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % we will merge mkii code back in here \writestatus{loading}{ConTeXt Structure Macros / Cross Referencing} % todo : unknown/illegal reference no arg % todo : +n pages check on 'samepage' (contrastcolor) % Makes more sense to build action data first, especially now % openaction etc are supported. % % \definespecial\doexecuteactionchain w h % \definespecial\dosetgotolocation % \definespecial\dosetexecuteJScode % ... % % complication: what when direct? Two calls! % I considered to change / simplify % % rt!page -> \definereference % rt!list -> \definereference % rt!exec -> \definereference % % but for the moment will not do so, if only because % the current implementation permits us to determine % the page state and is also more efficient % the code is rather fuzzy (and will be redone some day); this is % due to the chaining (collect secondary and then hook that into % the primary etc \unprotect %D This module deals with referencing. In \CONTEXT\ referencing %D is one of the core features, although at a first glance %D probably nobody will notice. This is good, because %D referencing should be as hidden as possible. %D %D In paper documents, referencing comes down to cross %D referencing, but in their interactive counterparts, is also %D involves navigation. Many features implemented here are %D therefore closely related to navigation. %D %D Many \CONTEXT\ commands can optionally be fed with a %D reference. Such a reference, when called upon, returns the %D number of a figure, table, chapter etc, a piece of text, or %D a pagenumber. %D %D There are three ways of defining a reference: %D %D \starttyping %D \pagereference[here] %D \textreference[here]{some text} %D \stoptyping %D %D the third alternative combines them in: %D %D \starttyping %D \reference[here]{some text} %D \stoptyping \def\textreference {\dosingleargument\dotextreference} \def\pagereference {\dosingleargument\dopagereference} \def\reference {\dosingleargument\doreference } %D These are implemented in a low level form as: %D %D \starttyping %D \def\dotextreference[#1]{\rawtextreference\s!txt{#1}} % #2 %D \def\dopagereference[#1]{\rawpagereference\s!pag{#1}} %D \def\doreference [#1]{\rawreference \s!ref{#1}} % #2 %D \stoptyping %D %D or without expansion problems: \def\dotextreference[#1]#2% {\bgroup \def\asciia{#1}% \defconvertexpanded\asciib\@@rfexpansion{#2}% \@EA\rawtextreference\@EA\s!txt\@EA\asciia\@EA{\asciib}% \egroup} \def\dopagereference[#1]% {\rawpagereference\s!pag{#1}} \def\doreference[#1]#2% {\bgroup \def\asciia{#1}% \defconvertexpanded\asciib\@@rfexpansion{#2}% \@EA\rawreference\@EA\s!ref\@EA\asciia\@EA{\asciib}% \egroup} %D Actually there is not much difference between a text and a %D full reference, but it's the concept that counts. The low %D level implementation is: \def\rawreference#1#2#3% {\bgroup \the\everyreference \makesectionformat \writereference{#2} {\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber}% {\noexpand\realfolio}% {#3}% \egroup} \def\rawpagereference#1#2% {\bgroup \the\everyreference \makesectionformat \writereference{#2} {\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber}% {\noexpand\realfolio}% {}% \egroup} \def\rawtextreference#1#2#3% {\bgroup \the\everyreference \writereference{#2} {}% {\noexpand\realfolio}% {#3}% \egroup} %D The last reference is saved in a macro named \type %D {\lastreference} (indeed). To keep track of the order of %D references, later we will see for what purpose, we maintain %D a counter. \newcount\crossreferencenumber \crossreferencenumber\plusone \let\lastreference\empty \def\writereference#1#2#3#4% {\ifreferencing \edef\!!stringa{#1}% \ifx\!!stringa\empty \else \def\dowritereference##1% {\xdef\lastreference{##1}% \@EA\dodowritereference\lastreference\empty\empty\end{#2}{#3}{#4}}% \rawprocesscommalist[\!!stringa]\dowritereference \fi \fi} %D Beware: \type {#2} gobbles space in references so that %D \typ {a nice ref} becomes \typ {anice ref}. \def\dodowritereference#1#2#3\end#4#5#6% {\bgroup \global\advance\crossreferencenumber \plusone\relax \if#1-\if#2:% \let\referenceprefix\empty \xdef\lastreference{#3}% \else % \xdef\lastreference{#1#2#3}% here we loose the space \fi\else % \xdef\lastreference{#1#2#3}% here we loose the space \fi \ifx\lastreference\empty \else \doiffirstreferenceoccurance\lastreference {\thisisdestination{\referenceprefix\lastreference}}% \referenceinfo>\lastreference \expanded{\writeutilitycommand{\noexpand\mainreference{\referenceprefix}{\lastreference}{#4}{#5}{#6}}}% \fi \egroup} %D We will implement \type {\doiffirstreferenceoccurance} %D later on. %D These macros depend on three other ones, %D \type {\makesectionformat}, that generated \type %D {\sectionformat}, \type {\pagenumber}. The not yet used %D argument \type{#1} is a tag that specifies the type of %D reference. %D \macros %D {everyreference} %D %D For rather tricky purposes, one can assign sanitizing %D macros to \type{\everyreference}. \newevery \everyreference \relax %D This is really needed, since for instance Polish has a %D different alphabet and needs accented entries in registers. \appendtoks \cleanupfeatures \to \everyreference %D Why do we have to write down references? \TEX, and therefore %D \CONTEXT\ is a batch processing system. During the %D typesetting process, pages are shipped out, which means that %D especially forward references are not yet known when the %D page is typeset. That's why we always need a second (and %D sometimes even a third) pass to get the cross references %D right. The same goes for lists and other pagenumber %D dependant data. %D %D Therefore, during a pass, \CONTEXT\ writes the references to %D a the utility file. The next macro does the job and %D generates entries like: (for mkii) %D %D \starttyping %D \mainreference{prefix}{reference}{page}{realpage}{text} %D \stoptyping %D %D We did not yet discuss prefixing. Especially in interactive %D documents, it's not always easy to keep track of duplicate %D references. The prefix mechanism, which we will describe %D later on, solves this problem. By (automatically) adding a %D prefix one keeps references local, but the global ones in %D view. To enable this feature, we explictly split the prefix %D from the reference. %D %D A former implementation used \type{\removesubstring} to get %D rid of the don't||use||a||prefix signal (\type{-:}), but the %D next one proved to be more than twice as fast. \let\referenceprefix=\empty \let\lastreference =\empty %D When (during a second pass over the document) references are %D loaded, they are saved in a macro, one for each reference. %D In practice this comes to giving \type {\mainreference} a %D appropriate meaning and loading the utility file. %D For a long time the only way to access an external file was %D to use the file prefix (\type {somefile::}. However, when %D you split up a document, redefining the references may be %D such a pain, that another approach is feasible. By setting %D the \type {autofile} variable to \type {yes} or \type %D {page}, you can access the reference directly. The latter %D case nills the prefix method, thereby saving some memory. %D %D \starttabulate[||||] %D \NC filename::tag \NC page(filename::pnum) \NC tag \NC\NR %D \NC $\star$ \NC \NC \NC\NR %D \NC $\star$ \NC $\star$ \NC $\star$ \NC\NR %D \NC \NC $\star$ \NC \NC\NR %D \stoptabulate \chardef\autocrossfilereferences=0 \def\setreferences% some day, filename will be stored in ref record {\the\everyreference % we're grouped anyway \def\mainreference##1##2##3##4##5% can be made faster by indirect calls {\ifcsname\r!cross\fileprefix##1##2\endcsname \ifcase0##4\else \showmessage\m!references2{[##1][##2],##4 (\currentutilityfilename)}% \fi \else \ifcase\autocrossfilereferences \setglobalcrossreference{##1##2}{##3}{##4}{##5}% \or \setglobalcrossreference{##1##2}{##3}{##4}{##5}% \ifcsname\r!cross##1##2\endcsname \showmessage\m!references2{[##1][##2],##4 (auto \currentutilityfilename)}% \else \expanded{\definereference[##1##2][\fileprefix##1##2]}% \fi \or \ifcsname\r!cross##1##2\endcsname \showmessage\m!references2{[##1][##2],##4 (auto \currentutilityfilename)}% \else \expanded{\definereference[##1##2][\noexpand\v!page(\fileprefix##4)]}% \fi \fi \fi}} \def\resetreferences {\let\mainreference\gobblefivearguments} \resetreferences %D Here we see another kind of prefix surface: \type %D {\fileprefix}. This prefix enables us to use references from %D different files in one document. This is no really useful in %D paper documents, but many interactive ones cannot do %D without. \let\fileprefix=\empty %D Loading references is done using the normal utility file %D handling macros. The \type{\hbox} trick prevents spaces %D creeping in (references are set globally anyway). \newtoks\everycheckreferences %D When we load references, the file name is stored in a %D list. \let\loadedreferences\empty %D We only load references ones. \newconditional\jobreferencesloaded %D This token list is expanded after the references are loaded. %D This hook can be used to initialize mechanisms that depend %D on the reference mechsnism. An example can be found in the %D field module. \def\checkreferences {\bgroup \let\fileprefix\empty \global\let\checkreferences\relax \usereferences[\jobname]% \checkrealpage \egroup \the\everycheckreferences} \def\usereferences[#1]% {\startnointerference \checkreferences \doifparentfileelse{#1} {\ifconditional\jobreferencesloaded\else \doutilities{references}{#1}\empty\relax\relax \global\settrue\jobreferencesloaded \fi} {\ExpandBothAfter\doifnotinset{#1}{\loadedreferences} {\doutilities{references}{#1}\empty\relax\relax \ifx\fileprefix\empty\else \doglobal\addtocommalist{#1}\loadedreferences \fi}} \stopnointerference} %D As mentioned we will also use the cross reference mechanism %D for navigational purposes. The main reason for this is that %D we want to treat both categories alike: %D %D \starttyping %D \goto{go back}[PreviousJump] %D \goto{colofon}[colofon page] %D \stoptyping %D %D Here \type{PreviousJump} is handled by the viewer, while the %D \type{colofon page} reference is, apart from hyperlinking, a %D rather normal reference. %D %D We already saw that cross refences are written to and read %D from a file. The pure navigational ones don't need to be %D written to file, but both for fast processing and %D transparant integration, they are saved internally as a sort %D of reference. We can easily distinguish such system %D references from real cross reference ones by their tag: \chardef\rt!cross=0 % even means possible page reference \chardef\rt!done =1 \chardef\rt!page =2 % and is used in \checkrealreferencepage \chardef\rt!exec =3 \chardef\rt!list =4 % to determine the page state %D We also use the odd/even characteristic to determine the %D page state. %D Here the \type{\rt!exec} tags a viewer specific navigational %D reference, while for instance \type{\rt!page} gives fast %D access to for instance the previous or next page. The %D counter serves a purpose to be explained later. We use a %D token register to prevent expansion of the text component, %D which can contain all kind of \TEX\ commands. \newcount\crossreferenceorder % these are used often so we sped them up \def\setlocalcrossreference#1#2#3#4% {\scratchtoks{#4}% \@EA\edef\csname\r!cross\fileprefix#1\endcsname {\rt!cross{#2}{#3}{\the\scratchtoks}{0}}} \def\setglobalcrossreference#1#2#3#4% {\scratchtoks{#4}% \global\advance\crossreferenceorder \plusone \@EA\xdef\csname\r!cross\fileprefix#1\endcsname {\rt!cross{#2}{#3}{\the\scratchtoks}{\the\crossreferenceorder}}} \def\setlocalsystemreference#1#2#3% {\@EA\edef\csname\r!cross\fileprefix#2\endcsname{#1{#3}}} \def\setglobalsystemreference#1#2#3% {\@EA\xdef\csname\r!cross\fileprefix#2\endcsname{#1{#3}}} \def\copycrossreference#1#2#3% file from to / slow {\bgroup \doifelse{#1}{} {\let\fileprefix\empty} {\def\fileprefix{#1::}}% \def\rt!cross##1##2##3##4% {\setxvalue{\r!cross\fileprefix#3}% {\noexpand\rt!cross{##1}{##2}{##3}{##4}}}% \getvalue{\r!cross\fileprefix#2}% \egroup} %D References from other files are defined globally without %D ordering data. The first definition, the one without %D \type{#1}, is used as a signal that references are defined. \def\setoutercrossreference#1#2#3#4% {\toks0={#4}% \@EA\xdef\csname\r!cross\fileprefix \endcsname{\rt!cross{}{}{1}{0}}% \@EA\xdef\csname\r!cross\fileprefix#1\endcsname{\rt!cross{#2}{#3}{\the\toks0}{0}}} %D In practice accessing a reference comes down to: %D %D \startitemize[packed] %D \item checking the validity %D \item determining the type %D \item filtering the content %D \stopitemize %D %D We'll deal with the last two steps first. References are %D saved in the general format: %D %D \starttyping %D {\referenceclass{realpage}{page}{text}} %D {\referenceclass{type}{data}} %D \stoptyping %D %D When we filter the content, next macros are set when we %D meet a normal cross reference: \let\currentrealreference =\empty \let\currentpagereference =\empty \let\currenttextreference =\empty \let\currentsubtextreference =\empty \let\currentsubsubtextreference=\empty %D System references only have one component: \let\currentdatareference=\empty %D Because internally a reference comes in two disguises, one %D with four arguments and one with only two, we need a two %D step filter. \def\getreferenceelements#1% only one level expansion permitted! {\@EA\@EA\@EA\dogetreferenceelements\csname\r!cross\referenceprefix#1\endcsname\empty\empty\empty\empty} %D In the following step, the \type{\ifx#1} test is needed %D because we can access this macro directly, and therefore %D \type{#1} can be an undefined reference (in fact, this hack %D was needed for the line numbering mechanism). %D %D We already introduced a few counters. Here we see why we %D need those. The discrepancy between the cross reference %D definition order (determined by the utility file) and the %D moment the reference is defined in the text, is a measure %D for it's forward character. This enables references like %D {\em as we will see later on}. \chardef\currentreferencetype=0 \newif\ifforwardreference \newif\ifrealreferencepage \def\docheckrealreferencepage#1% {\doifnumberelse{#1} {\ifnum#1=\realpageno \realreferencepagetrue \else \realreferencepagefalse \fi} {\realreferencepagefalse}} \def\currentfolioreference{0} \let\currentlocationreference\empty \def\dogetreferenceelements#1#2#3#4#5% {\chardef\currentreferencetype=\ifx#1\relax0\else#1\fi\relax \ifnum\currentreferencetype<\plustwo \edef\currentpagereference{#2}% \let \currentdatareference\empty \edef\currentlocationreference{#2}% \ifx\currentpagereference \empty \let\currentfolioreference\folio \else \def \currentpagereference {\referencepagenumber[#2]}% \edef\currentfolioreference{\dosplitofffoliopart[#2]}% \fi \edef\currentrealreference{#3}% \settextreferences#4\end \ifnum0#5<\crossreferencenumber \forwardreferencetrue \else \forwardreferencefalse \fi \else \let \currentlocationreference\empty \edef\currentrealreference {#3}% \def \currentdatareference {#2}% \let \currentfolioreference\folio \settextreferences#4\end \forwardreferencefalse \fi \ifodd\currentreferencetype \realreferencepagefalse \else \docheckrealreferencepage\currentrealreference \ifrealreferencepage \else \docheckrealreferencepage\currentdatareference \fi \fi} \ifx\referencepagenumber\undefined \def\referencepagenumber[#1]{?} \fi %D Text references can contain more than one entry and %D therefore we check for %D %D \starttyping %D {entry} %D \stoptyping %D %D or %D %D \starttyping %D {{entry}{entry}{entry}} %D \stoptyping %D %D and split accordingly. \def\settextreferences {\futurelet\next\dosettextreferences} \def\dosettextreferences {\ifx\next\bgroup \expandafter\dotriplegroupempty\expandafter\dodosettextreferences \else \expandafter\donosettextreferences \fi} \def\donosettextreferences#1\end {\def\currenttextreference{#1}% \let\currentsubtextreference\empty \let\currentsubsubtextreference\empty} \def\dodosettextreferences#1#2#3#4\end {\def\currenttextreference{#1}% \def\currentsubtextreference{#2}% \def\currentsubsubtextreference{#3}} %D When inside this testing macro we can savely use: \def\doifforwardreferenceelse#1#2% {\ifforwardreference#1\else#2\fi} %D Duplicate references are reported while loading the utility %D file. To prevent problems with document viewers cq. %D preprocessors, one can enable a (bit time consuming) check. \newif\ifcheckduplicatereferences %D The next rather dirty trick is needed to preserve the %D meaning of the original cross reference. In fact, %D \type{\rt!cross} is toggled to \type{\rt!done}. \def\rt!crossdone#1#2#3#4{\rt!done{#1}{#2}{#3}{#4}} \def\dohandleduplicatereference#1% {\bgroup \let\rt!cross\rt!crossdone \@EA\xdef\csname\r!cross\referenceprefix#1\endcsname % no let ! {\csname\r!cross\referenceprefix#1\endcsname}% \egroup} \def\checkfirstreferenceoccurance#1#2% etex {\@EA\ifx\csname\r!cross\referenceprefix#1\endcsname\relax % no ifcsname needed here \predefinereference{#1}% #2% \else \getreferenceelements{#1}% \ifnum\currentreferencetype=\rt!cross \dohandleduplicatereference{#1}% #2% \fi \fi} \def\doiffirstreferenceoccurance {\ifcheckduplicatereferences \@EA\checkfirstreferenceoccurance \else \@EA\secondoftwoarguments \fi} %D We still have to test for the existence of a reference, but %D before we come to that, we first look into the way a %D reference can be accessed. It will be no surprise that %D references can come in several forms. %D %D Cross references appear as numbers (figure~1.1, chapter~2) %D or pagenumbers (page~2, page 3--2), and are called with %D \type{\in} and \type{\at}. In interactive documents we also %D have \type{\goto}, \type{\button} and alike. These are more %D versatile and look like: %D %D \starttyping %D \goto[reference] %D \goto[outer reference::] %D \goto[outer reference::inner reference] %D \goto[operation(argument)] %D \goto[operation(action{argument,argument})] %D \goto[action] %D \goto[action{argument}] %D \stoptyping %D %D The first one is a normal reference, the second and third %D are references to a file or \URL. The brace delimited %D references for instance refer to a \JAVASCRIPT. The last %D example shows that we can pass arguments to the actions. %D %D When we split off the components of such a reference, the %D results are available in: %D %D \starttyping %D \currentreferencespecial %D \currentreferenceoperation %D \currentreferencearguments %D \currentinnerreference %D \currentouterreference %D \currentfullreference %D \stoptyping %D %D Splitting a reference is done by: %D %D \starttyping %D \splitofffullreference {reference} %D \splitoffreference {reference} %D \stoptyping %D %D The second alternative can be used in a second stage %D splitoff and only handles \type{::}. \newif\ifreferencefound \let\currentfullreference \empty \let\currentreferencespecial \empty \let\currentreferenceoperation\empty \let\currentreferencearguments\empty \let\currentouterreference \empty \let\currentinnerreference \empty \def\setreferencevariables#1#2#3#4#5% {\def\currentreferencespecial {#1}% \def\currentreferenceoperation{#2}% \def\currentreferencearguments{#3}% \def\currentouterreference {#4}% \def\currentinnerreference {#5}} \def\splitofffullreference#1% {\edef\currentfullreference{#1}% \@EA\dosplitofffullreference\currentfullreference\empty(\relax)\empty\end} \def\dosplitofffullreference#1(#2#3)#4#5\end {\ifx#2)% \let\currentreferenceoperation\empty \let\currentreferencearguments\empty \let\currentinnerreference \empty \dodosplitofffullreferenceA#1::::\empty\end \currentouterreference\currentreferencespecial \else\ifx#2\relax \let\currentreferencespecial \empty \let\currentreferenceoperation\empty \let\currentreferencearguments\empty \dodosplitofffullreferenceA#1::::\empty\end \currentouterreference\currentinnerreference \else \dosplitoffreferenceoperation#2#3{}\end \let\currentinnerreference\empty \dodosplitofffullreferenceB#1::::\empty\end \currentouterreference\currentreferencespecial \fi\fi} \def\dosplitoffreferenceoperation#1#% {\def\currentreferenceoperation{#1}% \dodosplitoffreferenceoperation} \def\dodosplitoffreferenceoperation#1#2\end {\def\currentreferencearguments{#1}} \def\dodosplitofffullreferenceA#1::#2::#3#4\end#5#6% {\if#3:% \dosetfullreferenceA#5#1{}\edef#6{#2}% \else \dosetfullreferenceA#6#1{}\let#5\empty \fi} \def\dosetfullreferenceA#1#2#% {\edef#1{#2}% \def\currentreferencearguments} \def\dodosplitofffullreferenceB#1::#2::#3#4\end#5#6% {\if#3:% \edef#5{#1}\edef#6{#2}% \else \let#5\empty\edef#6{#1}% \fi} \def\splitoffreference#1% {\expandafter\dodosplitofffullreferenceB#1::::\empty\end \currentouterreference\currentinnerreference} %D Although the previous split macros have a multistep %D character, there performance is quite reasonable. %D %D For debugging purposes we provide a showcase macro: \long\def\dodoshowcurrentreference#1\from#2\with#3% {\defconvertedcommand\ascii{#2}% \edef\currentreferenceshow{\currentreferenceshow/#1/\ascii/#3/}} \long\def\doshowcurrentreference#1% {\edef\currentreferenceshow{/\ifreferencefound+\else-\fi/#1}% \dodoshowcurrentreference ful\from\currentfullreference \with#1% \dodoshowcurrentreference spe\from\currentreferencespecial \with#1% \dodoshowcurrentreference ope\from\currentreferenceoperation\with#1% \dodoshowcurrentreference arg\from\currentreferencearguments\with#1% \dodoshowcurrentreference out\from\currentouterreference \with#1% \dodoshowcurrentreference inn\from\currentinnerreference \with#1} \def\showcurrentreference% {\bgroup\tttf\doshowcurrentreference\par\currentreferenceshow\egroup} %D We use this visualizer to demonstrate the way references are %D split. %D %D \hbox{\splitofffullreference{rr}\showcurrentreference} %D \hbox{\splitofffullreference{pp{rr}}\showcurrentreference} %D \hbox{\splitofffullreference{pp(qq)}\showcurrentreference} %D \hbox{\splitofffullreference{pp(qq{aa,bb})}\showcurrentreference} %D \hbox{\splitofffullreference{ff::}\showcurrentreference} %D \hbox{\splitofffullreference{ff::rr}\showcurrentreference} %D \hbox{\splitofffullreference{ff::pp()}\showcurrentreference} %D \hbox{\splitofffullreference{ff::pp(qq)}\showcurrentreference} %D \hbox{\splitofffullreference{ff::pp(qq{aa})}\showcurrentreference} %D Now we've come to the promissed testing step. As we can %D see, this macro does bit more than testing: it also resolves %D the reference. This means that whenever we test for the %D existance of a reference at an outer level, we have all the %D relevant properties of that reference avaliable inside the %D true branche~(\type{#2}). %D %D The prefix has to do with localizing references. When a %D prefix is set, looking for a reference comes to looking for %D the prefixed one, and when not found, looking for the non %D prefixed one. Consider for instance the prefix set to %D \type{sidetrack}. %D %D \starttyping %D \pagereference[important] %D \pagereference[unimportant] %D \setupreferencing[prefix=sidetrack] %D \pagereference[important] %D \stoptyping %D %D results in saving (writing) the references %D %D \starttyping %D ...{}{important} %D ...{}{unimportant} %D ...{sidetrack}{important}... %D \stoptyping %D %D Now when we call for \type{unimportant}, we will indeed get %D the pagenumber associated to this reference. But when we %D call for \type{important}, while the prefix is still set, we %D will get the pagenumber bound to the prefixed one. %D %D {\em Some day, when processing time and memory are no longer %D performance factors, we will introduce multi||level %D prefixes.} %D %D Before we start analyzing, I introduce a general %D definition macro. Consider: %D %D \starttyping %D \goto{do}[JS(My_Script{"test",123}),titlepage] %D \stoptyping %D %D This can also be achieved by: %D %D \starttyping %D \definereference[startup][JS(My_Script{"test",123}),titlepage] %D \goto{do}[REF(startup)] %D \stoptyping %D %D Now is this is a handy feature or not? %D %D \showsetup{definereference} %D %D We can trace references by setting the next switch to %D true. \newif\iftracereferences \let\tracereferences\tracereferencestrue \def\specialREFidentifier{REF} \def\dodefinereference[#1][#2]% {\ifsecondargument \doifelsenothing{#2} {\resetreference[#1]}% {\@EA\gdef\csname\specialREFidentifier#1\endcsname{#2}}% \else\iffirstargument \resetreference[#1]% \fi\fi} \def\definereference% {\dodoubleempty\dodefinereference} \def\resetreference[#1]% {\global\letbeundefined{\specialREFidentifier#1}} \newcount\nofexpandedreferences \def\dodoexpandreferences#1REF(#2#3)#4\relax {\ifx#2\relax \ifcsname\specialREFidentifier#1\endcsname \edef\expandedreference{\csname\specialREFidentifier#1\endcsname,}% \else \global\advance\nofexpandedreferences \plusone \@EA\xdef\csname REF::\number\nofexpandedreferences\endcsname{#1}% \fi \else \ifcsname\specialREFidentifier#2#3\endcsname \edef\expandedreference{\csname\specialREFidentifier#2#3\endcsname,}% \else % not set \fi \fi} \def\doexpandreferences#1,% {\if]#1\else \let\expandedreference\empty \dodoexpandreferences#1REF(\relax)\relax \@EAEAEA\doexpandreferences\@EA\expandedreference \fi} \def\expandreferences#1% {\global\nofexpandedreferences\zerocount \doexpandreferences#1,],} \def\dodoifreferencefoundelse#1% {\@EA\splitofffullreference\@EA{#1}% \ifx\currentreferencespecial\empty \ifx\currentouterreference\empty \docheckinnerreference \ifreferencefound \else \checkglobalfilereferences \fi \else \docheckouterreference \fi \ifreferencefound \ifx\currentreferencearguments\empty \getreferenceelements\currentfullreference \else \getreferenceelements\currentinnerreference \fi \fi \else \docheckspecialreference \fi \iftracereferences \doshowcurrentreference\space \writestatus\m!references\currentreferenceshow \fi} %D Although this can be considered a hack, we provide the %D option to locate unknown references in other (loaded) files. %D This can be dangerous, since there can be conflicting %D definitions. \newconditional\autoglobalfilereferences \def\checkglobalfilereferences% sloooow {\ifconditional\autoglobalfilereferences % \processcommacommand[\loadedreferences]\docheckglobalfilereference \rawprocesscommalist[\loadedreferences]\docheckglobalfilereference \fi} \def\docheckglobalfilereference#1% {\ifcsname\r!cross#1::\currentinnerreference\endcsname \def\currentouterreference{#1}% \edef\currentfullreference% {\currentouterreference::\currentinnerreference}% \global\referencefoundtrue \quitcommalist \fi} %D For most situations, we could use: %D %D \starttyping %D \let\doifreferencefoundelse=\dodoifreferencefoundelse %D \stoptyping %D %D But when we also want to support chained references, we need %D some more. Such a chained reference is defined as: %D %D \starttyping %D \goto{somewhere}[JS(somescript),nextpage,JS(anotherscript)] %D \stoptyping %D %D Actually supporting chains is up to the special driver. Here %D we only provide the hooks. %D \macros %D {ifenablereferencechains} %D %D First we provide a switch to turn this mechanism off: \newif\ifenablereferencechains \enablereferencechainstrue %D We don't use the general commalist processing macros, %D because we don't want to pay a speed penalty. \newif\ifsecondaryreference \newcount\nofsecondaryreferences % Aanpassen: eerst alle refs scannen en componenten opslaan in % lijst, dan de chain doorlopen. Momenteel mag alleen laatste % laatste undefined zijn, eigenlijk moet dat overal kunnen met % 'geen' zonder melding. Is wel trager. Dus niet. \def\doifreferencefoundelse#1#2#3% REF \cs / never more than one group (else \aftergroup usage problems) {\checkreferences % first we collect the secondary ones \bgroup \the\everyreference \let\referenceprefix\empty \expandreferences{#1}% \egroup \doresetgotowhereever \global\nofsecondaryreferences \zerocount \ifcase\nofexpandedreferences\relax % #1 can be number -) % no ref \or % one ref \or % two refs \ifenablereferencechains \iflocation \global\secondaryreferencetrue \xdef\secondaryreference{\csname REF::2\endcsname}% % test: \global\letcscsname\secondaryreference\csname REF::2\endcsname \bgroup %%\let\doifreferencefoundelse\localdoifreferencefoundelse \let\unharmedreferenceprefix\referenceprefix \dodoifreferencefoundelse\secondaryreference \ifreferencefound \global\nofsecondaryreferences \plusone #2% \else \dohandlenoto{#3}% \fi \egroup \fi \fi \else % more than two refs \ifenablereferencechains \iflocation \global\secondaryreferencetrue \scratchcounter\plustwo \loop \xdef\secondaryreference{\csname REF::\number\scratchcounter\endcsname}% % test: \global\letcscsname\secondaryreference\csname REF::\number\scratchcounter\endcsname \bgroup %%\let\doifreferencefoundelse\localdoifreferencefoundelse \let\unharmedreferenceprefix\referenceprefix \dodoifreferencefoundelse\secondaryreference \ifreferencefound \global\advance\nofsecondaryreferences \plusone #2% \else \dohandlenoto{#3}% \fi \egroup \ifnum\scratchcounter<\nofexpandedreferences\relax \advance\scratchcounter \plusone \repeat \fi \fi \fi \global\secondaryreferencefalse \xdef\primaryreference{\csname REF::1\endcsname}% % test: \global\letcscsname\secondaryreference\csname REF::1\endcsname \bgroup % now we handle the primary one %%\let\doifreferencefoundelse\localdoifreferencefoundelse \let\unharmedreferenceprefix\referenceprefix \dodoifreferencefoundelse\primaryreference \ifreferencefound#2\else#3\fi \egroup \doresetgotowhereever} % to prevent problems with direct goto's %D The following local redefinition permits the usage of %D nested \type {\doifreferencefoundelse}; see for an %D example the local test for file|/|url references. This is %D a fuzzy part of this mechanism and a result of the choice %D to let speed prevail over beauty in resolving chained %D references with symbolic (defined) references. \def\localdoifreferencefoundelse#1% {\dodoifreferencefoundelse{#1}% \ifreferencefound\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi} %D Somewhere else we will properly define \type {\dohandlegoto}; %D the noto alternative takes care of undefined references in %D a sequence \ifx\dohandlenoto\undefined \def\dohandlenoto#1% {\ifsecondaryreference\else{#1}\fi} \fi \ifx\dohandlegoto\undefined \def\dohandlegoto#1#2#3% {\ifsecondaryreference\else{#1}\fi} \fi %D As one can see, while processing the references, the first %D one is handled last. While scanning the second and following %D ones, we increment a counter and set a boolean to true. %D The next fast one permits rather raw references with %D \type{()}'s and is used in the object reference mechanism. \def\doifrawreferencefoundelse#1#2#3% {\checkreferences \bgroup \edef\currentfullreference{#1}% \ifcsname\r!cross\currentfullreference\endcsname \getreferenceelements\currentfullreference \global\referencefoundtrue#2% \else \global\referencefoundfalse#3% \fi \egroup} %D The inner case is simple. Only two cases have to be taken %D care of: %D %D \starttyping %D \goto{some text}[reference] %D \goto{some text}[prefix:reference] %D \stoptyping \def\docheckinnerreference {\global\let\predefinedreference\currentinnerreference \ifx\currentreferencearguments\empty \ifcsname\r!cross\referenceprefix\currentfullreference\endcsname \global\referencefoundtrue \else \let\referenceprefix\empty \ifcsname\r!cross\currentfullreference\endcsname \global\referencefoundtrue \else \global\referencefoundfalse \fi \fi \else % [SomeThing{with,me}] \let\referenceprefix\empty \ifcsname\r!cross\currentinnerreference\endcsname \global\referencefoundtrue \else \global\referencefoundfalse \fi \fi \doifpredefinedreferenceelse{\global\referencefoundfalse}\donothing} %D References to other files however are treated strict or %D tolerant, depending on their loading and availability: %D %D \starttyping %D \useexternaldocument[somefile][filename][a nice description] %D %D \goto{checked reference}[somefile::reference] %D \goto{unchecked reference}[somefile::] %D \goto{unchecked reference}[anotherfile::reference] %D \stoptyping %D %D Here we use the dummy reference \type{somefile::} set in %D \type{\setouterreference} as a signal that indeed references %D are defined for the outer file. \newif\ifstrictouterreferences \strictouterreferencesfalse \def\dodocheckouterreference {\ifcsname\specialREFidentifier\currentfullreference\endcsname \@EA\@EA\@EA\splitofffullreference\@EA\@EA\@EA % 1 level {\csname\specialREFidentifier\currentfullreference\endcsname}% \docheckouterreference \else\ifstrictouterreferences \global\referencefoundfalse \else % already \global\referencefoundtrue % no checking done \fi\fi} \def\docheckouterreference {\let\referenceprefix\empty \let\unharmedreferenceprefix\empty \xdef\predefinedreference {\currentouterreference::\currentinnerreference}% \ifx\innerreference\empty \global\referencefoundtrue % no checking done \else \ifcsname\r!cross\currentouterreference::\endcsname \ifcsname\r!cross\currentfullreference\endcsname \global\referencefoundtrue \else \dodocheckouterreference \fi \else \ifstrictouterreferences \global\referencefoundfalse \else \global\referencefoundtrue % no checking done \fi \fi \fi \doifpredefinedreferenceelse{\global\referencefoundfalse}\donothing} %D Special references are only tested when some test routine is %D defined. \def\docheckspecialreference {\let\referenceprefix\empty \let\unharmedreferenceprefix\empty \xdef\predefinedreference {\currentreferencespecial::\currentreferenceoperation}% \executeifdefined{\s!do:\v!test:\currentreferencespecial}% {\global\referencefoundtrue\gobbletwoarguments}% {\global\referencefoundtrue}{\global\referencefoundfalse}% \doifpredefinedreferenceelse{\global\referencefoundfalse}\donothing} %D An unknown reference is reported on the screen, in the log %D file and, when enabled, in the left margin of the text. \def\reportreferenceerror#1#2% {\bgroup \the\everyreference % cleanup : etc in french \ifinpagebody\else \doifconcepttracing {\doifsomething{#2} {\inleft {\infofont \scratchdimen\leftmarginwidth \advance\scratchdimen -2em \doboundtext{#2}\scratchdimen{..}->}}}% \fi \doifpredefinedreferenceelse \donothing {\predefinereference\predefinedreference \showmessage\m!references{#1}{[\unharmedreferenceprefix][#2]}}% \egroup} \def\unknownreference{\reportreferenceerror1} \def\illegalreference{\reportreferenceerror4} %D Although not actually needed, we default the unharmed %D reference prefix to the normal one. \def\unharmedreferenceprefix{\referenceprefix} %D When a reference is not found, we typeset a placeholder %D (two glyphs are often enough to represent the reference %D text). \def\dummyreference{{\tttf ??}} %D To prevent repetitive messages concerning a reference %D being defined, we set such an unknown reference to an empty %D one after the first encounter. \let\predefinedreference\s!unknown % we need to predefine in order to make dup checking possible (when no ref % is defined yet) \def\predefinereference#1% takes now an argument {\global\@EA\let\csname\r!cross #1\endcsname\dummypredefinedreference \global\@EA\let\csname\r!cross\unharmedreferenceprefix#1\endcsname\dummypredefinedreference} \def\dummypredefinedreference{\rt!done{}{}{}{}} %D Testing on existance then becomes: \def\doifpredefinedreferenceelse % \referenceprefix added {\@EA\ifx\csname\r!cross\referenceprefix\predefinedreference\endcsname\dummypredefinedreference \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} %D Sometimes we want to temporary put a reference out of %D order. An example can be found in the menu macros. %D %D \starttyping %D \doifreferencepermittedelse{reference}{set}{true}{false} %D \stoptyping %D %D The second argument can be a comma seperated list. \let\permittedreferences\empty \def\doifreferencepermittedelse#1#2#3% ref found notfound {\doifreferencefoundelse{#1} {\donetrue \ifx\permittedreferences\empty \else \docheckifreferencepermitted{#1}% \fi \ifdone#2\else#3\fi} {#3\unknownreference{#1}}} \def\docheckifreferencepermitted#1% {\ifx\currentinnerreference\empty \ifx\currentouterreference\empty \else \doifinstring{\currentouterreference::}\permittedreferences\donefalse \fi \else\ifx\currentouterreference\empty \doifinstring{\currentinnerreference}\permittedreferences\donefalse \else \doifinstring{\currentouterreference::\currentinnerreference}\permittedreferences\donefalse \fi\fi} %D Apart from cross references supplied by the user, \CONTEXT\ %D generates cross references itself. Most of them are not %D saved as a reference, but stored with their source, for %D instance a list or an index entry. Such automatically %D generated, for the user invisible, references are called %D {\em internal references}. The user supplied ones are %D labeled as {\em external references}. %D %D A second important characteristic is that when we want to %D support different backends (viewers), we need to support %D named destinations as well as page numbers. I invite readers %D to take a glance at the special driver modules to understand %D the fine points of this. As a result we will deal with {\em %D locations} as well as {\em real page numbers}. We explictly %D call this pagenumber a real one, because it is independant %D of the page numbering scheme used in the document. %D %D One of the reasons for \CONTEXT\ being the first \TEX\ base %D macropackage to support sophisticated interactive \PDF\ %D files, lays in the mere fact that real page numbers are %D available in most two pass data, like references, list data %D and index entries. %D %D We will speak of \type{thisis...} when we are marking a %D location, and \type{goto...} when we point to such a %D location. The latter one can be seen as a hyperlink to the %D former one. In the next macros one we use constructs like: %D %D \starttyping %D \dostart... %D \dostop... %D \stoptyping %D %D Such macros are used to invoke the relevant specials from %D the special driver modules (see \type{spec-ini}). The flag %D \type{\iflocation} signals if we're in interactive mode. \def\thisisdestination#1% destination {\iflocation \ifusepagedestinations \else \dostartthisislocation{#1}\dostopthisislocation \fi \fi} \def\thisisrealpage#1% pagenumber {\iflocation \dostartthisisrealpage{#1}\dostopthisisrealpage \fi} %D The previous tho macros were easy ones, opposite to their %D counterparts. A common component in these is: %D %D \starttyping %D \dohandlegoto{..}{..}{..} %D \stoptyping %D %D Here data can be whatever needs highlighting, e.g. {\em %D figure 2.4}, and the start and stop entries handle the %D specials. The two \DIMENSIONS\ \type{\buttonwidth} and %D \type{\buttonheight} have to be set when handling the %D data~(\type{#2}). \ifx\buttonheight\undefined \newdimen\buttonheight \fi \ifx\buttonwidth \undefined \newdimen\buttonwidth \fi \def\gotodestination#1#2#3#4#5% url file destination page data {\iflocation \ifusepagedestinations \gotorealpage{#1}{#2}{\number#4}{#5}% \else \dohandlegoto {#5}% {\the\everyreference\dostartgotolocation\buttonwidth\buttonheight{#1}{#2}{#3}{\number#4}}% {\dostopgotolocation}% \fi \else {#5}% \fi} \def\gotorealpage#1#2#3#4% url file page data {\iflocation \dohandlegoto {#4}% {\dostartgotorealpage\buttonwidth\buttonheight{#1}{#2}{\number#3}}% {\dostopgotorealpage}% \else {#4}% \fi} %D \macros %D {setreferencefilename} %D %D This command can be used in the special drivers to %D uppercase filenames. This is needed when one wants to %D produce \CDROM's conforming to ISO9660. We consider is the %D savest to enable this feature by default. We cannot handle %D uppercase here, since the suffix is handled in the special %D driver. Conversion is taken care of by: %D %D \starttyping %D \setreferencefilename somefilename\to\SomeFileName %D \stoptyping % \def\setreferencefilename#1\to#2% % {\doifelse{\@@converteerfile}{\v!ja} % boolean is sneller % {\uppercasestring#1\to#2} % {\edef#2{#1}}} \chardef\referencefilecase=0 \def\setreferencefilename#1\to#2% {\ifcase\referencefilecase \edef#2{#1}% \or \uppercasestring#1\to#2% \or \lowercasestring#1\to#2% \else \edef#2{#1}% \fi} %D Internal references can best be set using the next few %D macros. Setting such references to unique values is %D completely up to the macros that call them. %D %D \starttyping %D \thisissomeinternal{tag}{identifier} %D \gotosomeinternal {tag}{identifier}{pagenumber}{text} %D \stoptyping \def\thisissomeinternal#1#2% tag reference {\doifsomething{#2}{\thisisdestination{#1:#2}}} \def\gotosomeinternal#1#2% #3#4 {\gotodestination\empty\empty{#1:#2}} %D An automatic mechanism is provided too: %D %D \starttyping %D \thisisnextinternal{tag} %D \gotonextinternal {tag}{number}{pagenumber}{text} %D \stoptyping %D %D The first macro increments a counter. The value of this %D counter is available in the macro \type{\nextinternalreference} %D and should be saved somewhere (for instance in a file) for %D future reference. The second argument of %D \type {\gotonextinternal} takes such a saved number. One can %D turn on tracing these references, in which case the %D references are a bit more verbose. \newcount\locationcount \newif\iftraceinternalreferences \newif\ifinternalnamedreferences \internalnamedreferencestrue \def\nextinternalreference {\the\locationcount} \def\thisisnextinternal#1% {\global\advance\locationcount \plusone \ifinternalnamedreferences \thisisdestination{\s!aut\iftraceinternalreferences:#1\fi:\nextinternalreference}% \fi} % beter: % % \def\thisisnextinternal#1% % {\iftrialtypesetting\else % \global\advance\locationcount \plusone % \ifinternalnamedreferences % \thisisdestination{\s!aut\iftraceinternalreferences:#1\fi:\nextinternalreference}% % \fi % \fi} \def\gotonextinternal#1#2#3#4% {\ifinternalnamedreferences \gotodestination\empty\empty{\s!aut\iftraceinternalreferences:#1\fi:#2}{#3}{#4}% \else \gotorealpage\empty\empty{#3}{#4}% \fi} %D We already went through a lot of problems to sort out what %D kind of reference we're dealing with. Sorting out the user %D supplied cross references (show/goto this or that) as well %D as user supplied system references (invoke this or that) is %D already taken care of in the test routine, but we still have %D to direct the request to the right (first) routine. \def\gotolocation% #1#2% {\ifx\currentreferencespecial\empty \ifx\currentouterreference\empty \ifnum\currentreferencetype<2 \@EA\@EAEAEA\@EA\gotoinnerlocation \else \@EA\@EAEAEA\@EA\gotosystemlocation \fi \else \@EAEAEA\gotoouterlocation \fi \else \@EA\gotospeciallocation \fi} % {#1}{#2} %D An inner reference refers to some place in the document %D itself. \def\gotoinnerlocation#1% #2% {\gotodestination\empty\empty {\referenceprefix\currentinnerreference}\currentrealreference} % {#2} %D The outer location refers to another document, specified as %D file or \URL. \def\gotoouterlocation#1#2% % page checken! {\bgroup \let\referenceprefix\empty \setouterlocation\currentouterreference \ifx\currentinnerreference\empty \gotorealpage \otherURL\otherfile1{#2}% \else \gotodestination \otherURL\otherfile\currentinnerreference\currentrealreference{#2}% \fi \egroup} %D Special locations are those that are accessed by saying %D things like: %D %D \starttyping %D \goto{calculate total}[JS(summarize{10,23,56}] %D \stoptyping %D %D After several intermediate steps this finally arrives at %D the next macro and expands into (simplified): %D %D \starttyping %D \gotoJSlocation{total{summarize{10,23,56}}}{calculate total} %D \stoptyping %D %D The first argument is the full reference, the second one %D is the text, in some kind of manipulated form. In practice %D we split references, so we get: %D %D \starttyping %D \gotoJSlocation{summarize{10,23,56}}{calculate} %D \gotoJSlocation{summarize{10,23,56}}{total} %D \stoptyping %D %D where \type{calculate} and \type{total} are colored, boxed %D or whatever \type{\goto} is told to do. %D %D The macro \type{\gotoJSlocation} can use \type %D {\currentreferenceoperation} (in our example %D \type{summarize}) and \type{\currentreference} (here %D being \type {10,23,56}) to perform its task. \def\gotospeciallocation {\executeifdefined{goto\currentreferencespecial location}\gobbleoneargument} %D Such special macros can be defined by: \def\definespeciallocation#1% {\setvalue{goto#1location}} %D The associated test is to be defined by: \def\definespecialtest#1% {\setvalue{\s!do:\v!test:#1}} %D This \type{\def} alike macro is to be used as: %D %D \starttyping %D \definespeciallocation{JS}#1#2{... #1 ... #2 ...} %D \stoptyping %D %D In module \type {java-ini} one can see that \type %D {\gotoJSlocation} looks much like the previous goto %D definitions. %D A system location is not always a location, but for the %D consistency we also consider actions as such. \def\gotosystemlocation {\csname\r!syst\the\currentreferencetype\endcsname} \def\definesystemreferencehandler#1#2% {\setgvalue{\r!syst\the#1}{#2}} %D In this module we define three system references: one for %D handling navigational, viewer specific, commands, another %D for jumping to special pages, like the first or last one, %D and a third reference for linking tree like lists, like %D tables of contents. The latter two adapt themselves to the %D current state. \definesystemreferencehandler \rt!exec \handleexecreference \definesystemreferencehandler \rt!page \handlepagereference \definesystemreferencehandler \rt!list \handlelistreference \def\handleexecreference#1% {\checkexecutecommand\currentdatareference\currentreferencearguments \executecommand\currentdatareference\currentreferencearguments} \def\handlepagereference#1% {\gotorealpage\empty\empty\currentdatareference} \def\handlelistreference#1% is deze nog echt nodig? {\gotodestination\empty\empty\currentdatareference{\getvalue{\currentdatareference}}} %D \macros %D {setexecutecommandcheck} %D %D In case a command action needs to do some checking in %D advance, one can assign an check function by: %D %D \starttyping %D \setexecutecommandcheck{startsound}\checksoundtrack %D \stoptyping \def\setexecutecommandcheck#1#2% #2 permits \first \second {\setvalue{\s!do:\s!do:#1}{#2}} \def\checkexecutecommand#1#2% evt geen #1 en #2 {\ifx#2\empty \else \ifcsname\s!do:\s!do:#1\endcsname \@EA\let\@EA\docheckexecutecommand\csname\s!do:\s!do:#1\endcsname \rawprocesscommalist[#2]\docheckexecutecommand \fi \fi } %D Command references (in dutch, english, german of %D whatever interface language) are translated into a bit %D shorter reference (\type{close}) and passed to the %D special driver (using \type{\executecommand}). % better: [action(name)] and \definereference[name][action(name)] \setglobalsystemreference \rt!exec \v!CloseDocument {close} \setglobalsystemreference \rt!exec \v!ExitViewer {exit} \setglobalsystemreference \rt!exec \v!FirstPage {first} \setglobalsystemreference \rt!exec \v!LastPage {last} \setglobalsystemreference \rt!exec \v!NextJump {forward} \setglobalsystemreference \rt!exec \v!NextPage {next} \setglobalsystemreference \rt!exec \v!PauseMovie {pausemovie} \setglobalsystemreference \rt!exec \v!PauseSound {pausesound} \setglobalsystemreference \rt!exec \v!PauseRendering {pauserendering} \setglobalsystemreference \rt!exec \v!PreviousJump {backward} \setglobalsystemreference \rt!exec \v!PreviousPage {previous} \setglobalsystemreference \rt!exec \v!PrintDocument {print} \setglobalsystemreference \rt!exec \v!SaveForm {exportform} \setglobalsystemreference \rt!exec \v!LoadForm {importform} \setglobalsystemreference \rt!exec \v!ResetForm {resetform} \setglobalsystemreference \rt!exec \v!ResumeMovie {resumemovie} \setglobalsystemreference \rt!exec \v!ResumeSound {resumesound} \setglobalsystemreference \rt!exec \v!ResumeRendering {resumerendering} \setglobalsystemreference \rt!exec \v!SaveDocument {save} \setglobalsystemreference \rt!exec \v!SaveNamedDocument{savenamed} \setglobalsystemreference \rt!exec \v!OpenNamedDocument{opennamed} \setglobalsystemreference \rt!exec \v!SearchDocument {search} \setglobalsystemreference \rt!exec \v!SearchAgain {searchagain} \setglobalsystemreference \rt!exec \v!StartMovie {startmovie} \setglobalsystemreference \rt!exec \v!StartSound {startsound} \setglobalsystemreference \rt!exec \v!StartRendering {startrendering} \setglobalsystemreference \rt!exec \v!StopMovie {stopmovie} \setglobalsystemreference \rt!exec \v!StopSound {stopsound} \setglobalsystemreference \rt!exec \v!StopRendering {stoprendering} \setglobalsystemreference \rt!exec \v!SubmitForm {submitform} \setglobalsystemreference \rt!exec \v!ToggleViewer {toggle} \setglobalsystemreference \rt!exec \v!ViewerHelp {help} \setglobalsystemreference \rt!exec \v!HideField {hide} \setglobalsystemreference \rt!exec \v!ShowField {show} \setglobalsystemreference \rt!exec \v!GotoPage {gotopage} \setglobalsystemreference \rt!exec \v!GotoPage {gotopage} \setglobalsystemreference \rt!exec \v!Query {query} \setglobalsystemreference \rt!exec \v!QueryAgain {queryagain} \setglobalsystemreference \rt!exec \v!FitWidth {fitwidth} \setglobalsystemreference \rt!exec \v!FitHeight {fitheight} \setglobalsystemreference \rt!exec \v!ShowThumbs {thumbnails} \setglobalsystemreference \rt!exec \v!ShowBookmarks {bookmarks} %D Executing the command looks alike the previous goto macros. \def\executecommand#1#2#3% {\iflocation \dohandlegoto {#3}% {\dostartexecutecommand\buttonwidth\buttonheight{#1}{#2}}% {\dostopexecutecommand}% \else {#3}% \fi} %D We could have done without the short tags and thereby saving %D some tokens, but the current approach leaves room for future %D extensions. %D It is possible to disable the writing of references to the %D utility file by setting: \newif\ifreferencing \referencingtrue %D One can also activate an automatic prefix mechanism. By %D setting the \type{\prefix} variable to \type{+}, the prefix %D is incremented, when set to \type{-} or empty, the prefix is %D reset. Other values become the prefix. \newcount\prefixcounter %D These settings are accomplished by: %D %D \showsetup{setupreferencing} %D %D In interactive documents verbose references don't always %D make sense (what is a page number in an unnumbered %D document). By setting the \type{interaction} variable, one %D can influences the way interactive references are set. % \newif\ifreferencestrut % some day an option \def\setupreferencing {\dosingleargument\dosetupreferencing} \def\dosetupreferencing[#1]% {\getparameters [\??rf] [\c!prefix=\s!unknown,#1]% \processaction [\@@rfstate] [ \v!stop=>\referencingfalse, \v!start=>\referencingtrue]% \processaction [\@@rfinteraction] [ \v!all=>\let\dowantedreference\docompletereference, \v!label=>\let\dowantedreference\dolabelonlyreference, \v!text=>\let\dowantedreference\dotextonlyreference, \v!symbol=>\let\dowantedreference\dosymbolreference]% \chardef\autocrossfilereferences\zerocount \processaction [\@@rfautofile] [ \v!yes=>\chardef\autocrossfilereferences\plusone, \v!page=>\chardef\autocrossfilereferences\plustwo]% \chardef\referencefilecase\zerocount \processaction[\@@rfconvertfile] [ \v!yes=>\chardef\referencefilecase\plusone, \v!big=>\chardef\referencefilecase\plusone, \v!small=>\chardef\referencefilecase\plustwo]% %\doifelse\@@rfstrut\v!yes % some day an option % \referencetruttrue\referencestrutfalse \setupreferenceprefix[\@@rfprefix]% \doifelse\@@rfglobal\v!yes {\settrue \autoglobalfilereferences} {\setfalse\autoglobalfilereferences}} \def\incrementreferenceprefix{+} \def\decrementreferenceprefix{-} \def\setupreferenceprefix[#1]% {\edef\@@rfprefix{#1}% \ifx\@@rfprefix\empty \let\referenceprefix\empty \else\ifx\@@rfprefix\incrementreferenceprefix \advance\prefixcounter \plusone % should be global \edef\referenceprefix{\the\prefixcounter:}% \let\@@rfprefix\s!unknown \else\ifx\@@rfprefix\decrementreferenceprefix \let\referenceprefix\empty \let\@@rfprefix\s!unknown \else\ifx\@@rfprefix\s!unknown % forget about it \else \edef\referenceprefix{\@@rfprefix:}% \fi\fi\fi\fi} %D \macros %D {handlereferenceactions, %D collectreferenceactions} %D %D Sometimes we need to pass the actions connected to %D references to variables instead of rectangular areas on %D which one can click. The next macro collects the actions %D and passes them to a handle. This is a rather dreadfull %D hack! %D %D \starttyping %D \handlereferenceactions{references}\handle %D \stoptyping %D %D So, \type {\handle} does the final job, which in for %D instance the \PDF\ drivers comes down to doing something %D with \type {\lastPDFaction}. \newif\ifcollectreferenceactions \def\handlereferenceactions#1#2% {\doifsomething{#1} {\bgroup \collectreferenceactionstrue \@EA\doifreferencefoundelse\@EA{#1} {\gotolocation{#1}{}\ifsecondaryreference\else#2\fi} {\unknownreference{#1}}% \egroup}} %D The most straightforward way of retrieving references is %D using \type{\ref}. Consider the reference: %D %D \startbuffer %D \reference[my ref]{{Look}{Here}{I am}} %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D We can ask for upto five reference components: %D %D \startbuffer %D user page reference: \ref[p][my ref] %D text reference: \ref[t][my ref] %D real page reference: \ref[r][my ref] %D sub text reference: \ref[s][my ref] %D extra text reference: \ref[e][my ref] %D \stopbuffer %D %D \typebuffer %D %D And get back: %D %D \startlines %D \getbuffer %D \stoplines \def\ref{\dodoubleargument\doref} \def\reftypep{\currentpagereference} \def\reftypet{\currenttextreference} \def\reftyper{\currentrealreference} \def\reftypes{\currentsubtextreference} \def\reftypee{\currentsubsubtextreference} \def\doref[#1][#2]% {\ifsecondargument \doifreferencefoundelse{#2} {\executeifdefined{reftype#1}\reftypep} {\unknownreference{#2}\dummyreference}% \else \dummyreference \fi} %D We can typeset a reference using \type{\in}, \type{\at} and %D \type{\about} and goto specific locations using %D \type{\goto}. The last one does not make that much sense in %D a paper document. To complicate things, \PLAIN\ \TEX\ also %D implements an \type {\in} but fortunately that one only %D makes sense in math mode. %D --- VANAF HIER NOG VERENGELSEN --- %\let\donormalin =\in %\let\donormalover=\over % about/oppassen beter nederlands dan engels! % %\def\in% % {\ifmmode % \expandafter\donormalin % \else % \expandafter\doinatreference\expandafter\currenttextreference % \fi} % we need to bypass math tokens % \let\normalover \over \definecommand in {\dospecialin} \definecommand at {\dospecialat} \definecommand about {\dospecialabout} \definecommand from {\dospecialfrom} \definecommand over {\dospecialabout} % needed here, else math problems \unexpanded\def\dospecialin{\doinatreference\currenttextreference} \unexpanded\def\dospecialat{\doinatreference\currentpagereference} \unexpanded\def\dospecialabout[#1]% {\dontleavehmode \bgroup \def\thecurrentsubtextreference {\limitatetext\currentsubtextreference\@@rfwidth\unknown}% %\leaveoutervmode % no \@@rfleft \doifreferencefoundelse{#1} {\let\crlf\space \let\\\space \let\dogotofixed\dogotospace \dogotospace{\thecurrentsubtextreference}[#1]} {\unknownreference{#1}\dummyreference}% \@@rfright \referenceinfo{<}{#1}% \egroup} %D Typesetting the reference is a bit more complicated than one %D would at first sight expect. This is due to the fact that we %D distinguish three (five) alternative calls: %D %D \placefigure %D [here][three calls] %D {Three alternatives reference calls.} %D {\startcombination[1*3] %D {\framed{\type{ \in }}} {a} %D {\framed{\type{ \at }}} {b} %D {\framed{\type{\goto}}} {c} %D \stopcombination} %D %D \startbuffer %D \in figure[fig:three calls] %D \in{figure}[fig:three calls] %D \in figure a[fig:three calls] %D \in{figure}{a}[fig:three calls] %D figure~\in[fig:three calls] %D \stopbuffer %D %D \typebuffer %D %D This turns up as: %D %D \startlines %D \getbuffer %D \stoplines %D %D The dual \type{{}} results in a split reference. In a %D document meant for paper, one is tempted to use the last %D (most straightforward) alternative. When a document is also %D meant voor electronic distribution, the former alternatives %D have preference, because everything between the \type{\in} %D and~\type{[} becomes active (and when asked for, typeset %D in a different color and typeface). \def\doinatreference#1% {\doifnextoptionalelse{\dodoinatreference{#1}{}}{\dodoinatreference{#1}}} \def\dodoinatreference#1% {\def\dododoinatreference{\dodododoinatreference{#1}}% \futurelet\next\dododoinatreference} % overloaded % % \def\dodododoinatreference#1#2#3[#4]% % {\ifx\next\bgroup % \dododododoinatreference{#1\ignorespaces#3}{#2}[#4]% % \else % \dododododoinatreference{#1}{#2#3}[#4]% % \fi} %D We arrived at the last step. Before we do the typesetting, %D we forget all previous (paragraph bound) settings and make %D sure that we remain in horizontal mode. Next we choose %D among the several representations. % overloaded % % \def\dododododoinatreference#1#2[#3]% % {\dontleavehmode % \bgroup % \forgetall % %\leaveoutervmode % \doifreferencefoundelse{#3} % {\bgroup % \let\ignorespaces\empty % rather dirty but ok % \doifelsenothing{#1} % {\egroup\dosymbolreference{#1}{#2}[#3]} % {\egroup\dowantedreference{#1}{#2}[#3]}} % {\dounknownreference{#1}{#2}[#3]}% % \referenceinfo{<}{#3}% % \egroup} %D The previously discussed setup macro lets us specify the %D representation of references. A symbol reference does not %D show the specific data, like the number of a figure, but %D shows one of: \hbox {$^\goforwardcharacter$ %D $^\gobackwardcharacter$ $^\gonowherecharacter$}, depending %D on the direction to go. \def\dosymbolreference#1#2[#3]% {\bgroup \setupsymbolset[\@@iasymbolset]% \removelastskip \ifx\currentreferencespecial\empty \ifx\currentouterreference\empty \ifnum0\currentrealreference=\zerocount \ifhmode\strut\high{\symbol[\v!nowhere]}\fi \else\ifnum0\currentrealreference>\realpageno \dodosymbolreference{#2}{\high{\symbol[\v!next]}}% \else\ifnum0\currentrealreference<\realpageno \dodosymbolreference{#2}{\high{\symbol[\v!previous]}}% \else \ifhmode\strut\high{\symbol[\v!nowhere]}\fi \fi\fi\fi \else \gotoouterlocation{#3}{\showlocation{\high{\symbol[\v!somewhere]}}}% \fi \else \gotospeciallocation{#3}{\showlocation{\high{\symbol[\v!somewhere]}}}% \fi \egroup} \def\dodosymbolreference#1#2% {#1\hbox{\gotorealpage\empty\empty\currentrealreference {\dolocationattributes\??ia\c!style\c!color{#2}}}} %D The other alternatives just conform their names: only the %D label, only the text, or the label and the text. \def\dounknownreference#1#2[#3]% {\unknownreference{#3}\dotextprefix{#2}\dummyreference}% \def\docompletereference#1#2[#3]% {\iflocationsplit \doifsomespaceelse{#2}\dogotospace\dogotofixed{\dotextprefix{#2}#1}[#3]% \else \dogotofixed{\dotextprefix{#2}#1}[#3]% \fi} \def\dolabelonlyreference#1#2[#3]% {\doifsomespaceelse{#2} {\doifsomething{#2}{\dogotospace{#2}[#3]}} {\dogotofixed{\dotextprefix{#2}}[#3]}} \def\dotextonlyreference#1#2[#3]% {\dotextprefix{#2}\dogotofixed{#1}[#3]} \let\dowantedreference=\docompletereference %D \macros %D {definereferenceformat} %D %D The next few macros were made for for David Arnold and Taco %D Hoekwater. They can be used for predefining reference %D texts, and thereby stimulate efficiency. %D %D [more documentation will be added] %D %D \starttyping %D \definereferenceformat[informula] [left=(,right=),text=formula] %D \definereferenceformat[informulas] [left=(,right=),text=formulas] %D \definereferenceformat[andformula] [left=(,right=),text=and] %D \definereferenceformat[andformulas][left=(,right=),text=and] %D %D \informula [b] and \informula [for:c] %D the \informula {formulas}[b] \informula {and} [for:c] %D the \informulas {formulas}[b] \informula {and} [for:c] %D the \informulas [b] \informula {en} [for:c] %D the \informulas [b] \andformula [for:c] %D \stoptyping %D %D Instead of a text, one can specify a label, which should %D be defined with \type {\setuplabeltext}. \def\definereferenceformat% {\dodoubleargument\dodefinereferenceformat} \def\dodefinereferenceformat[#1][#2]% {\iffirstargument \getparameters[\??rf#1] [\c!left=, % of the number \c!right=, % of the number \c!text=, % before the number \c!label=, % can be {left}{right} \c!command=\in, #2]% \unexpanded\setvalue{#1}% {\dontleavehmode\doexecutereferenceformat{#1}}% \fi} \def\noexecutelabelreferenceformat#1% {\doifvaluesomething{\??rf#1\c!text} {\gdef\textofreference{\csname\??rf#1\c!text\endcsname}}% \csname\??rf#1\c!command\endcsname} \def\doexecutelabelreferenceformat#1% {\csname\??rf#1\c!command\endcsname {\leftlabeltext {\csname\??rf#1\c!label\endcsname}}% {\rightlabeltext{\csname\??rf#1\c!label\endcsname}}} \def\doexecutereferenceformat#1% {\gdef\leftofreference {\csname\??rf#1\c!left \endcsname}% \gdef\rightofreference{\csname\??rf#1\c!right\endcsname}% \global\let\textofreference\empty % otherwise ~ added \doifelsevaluenothing{\??rf#1\c!label} \noexecutelabelreferenceformat\doexecutelabelreferenceformat{#1}} \let\leftofreference \relax \let\rightofreference\relax \let\textofreference \relax \def\dodododoinatreference#1#2#3[#4]% \removeunwantedspaces added june 2004 {\ifx\next\bgroup % but removed later, fails on metafun \dododododoinatreference % fails on metafun {\leftofreference#1\ignorespaces#3\removeunwantedspaces\rightofreference}{#2}[#4]% {\leftofreference#1\ignorespaces#3\rightofreference}{#2}[#4]% \else \dododododoinatreference {\leftofreference#1\rightofreference}{#2#3}[#4]% \fi} \def\dododododoinatreference#1#2[#3]% {\dontleavehmode % replaces \leaveoutervmode \bgroup \forgetall \postponenotes %\leaveoutervmode % replaced by \dontleavehmode \doifreferencefoundelse{#3} {\bgroup \let\ignorespaces \empty % rather dirty trick, but ok \let\leftofreference \empty % the same, again ok \let\rightofreference\empty % and once more \def\textofreference {#2}% % temporary value \ifx\textofreference\empty % simple expansion %\doifelsenothing{#1} % {\egroup\dosymbolreference{#1}{\textofreference}[#3]} % {\egroup\dowantedreference{#1}{\textofreference}[#3]}% \doifelsenothing{#1}% {\egroup\dosymbolreference}% {\egroup\dowantedreference}% {#1}{\textofreference}[#3]% \else %\doifelsenothing{#1} % {\egroup\dosymbolreference{#1}{#2}[#3]} % {\egroup\dowantedreference{#1}{#2}[#3]}% \doifelsenothing{#1}% {\egroup\dosymbolreference}% {\egroup\dowantedreference}% {#1}{#2}[#3]% \fi} {\dounknownreference{#1}{#2}[#3]}% \referenceinfo<{#3}% \global\let\leftofreference \empty \global\let\rightofreference\empty \global\let\textofreference \empty \egroup} %D In interactive documents going to a specific location is not %D bound to cross references. The \type{\goto} commands can be %D used to let users access another part of the document. In %D this respect, interactive tables of contents and registers %D can be considered goto's. Because in fact a \type{\goto} is %D just a reference without reference specific data, the %D previous macros are implemented using the goto %D functionality. %D %D \showsetup{goto} %D %D One important chaacteristic is that the first argument of %D \type{\goto} (and therefore \type{\at} and \type{\in} is %D split at spaces. This means that, although hyphenation is %D prevented, long references can cross line endings. \def\dogoto#1[#2]% {\dontleavehmode \bgroup \postponenotes \doifreferencefoundelse{#2} {\doifelsenothing{#1} {\dosymbolreference{}{}[#2]} {\dogotospace{#1}[#2]}} {\unknownreference{#2}#1\relax}% \relax catches lookahead \egroup \referenceinfo{<}{#2}} \unexpanded\def\goto#1#2% {\dogoto{#1}#2} \newif\ifsharesimilarreferences \sharesimilarreferencestrue \newcount\similarreference % 0=noppes 1=create/refer 2,3,..=refer \def\dogotospace#1[#2]% {\iflocationsplit \ifsecondaryreference\setbox0\hbox\fi % due to space insertion {\let\dogotospace\dogotofixed \iflocation \def\processisolatedword##1% {\ifisolatedwords\ifsharesimilarreferences \global\advance\similarreference \plusone \fi\fi \hbox{\gotolocation{#2}{##1\presetgoto}}}% \doattributes\??ia\c!style\c!color {\processisolatedwords{#1}\processisolatedword}% \else #1\relax % \relax prevents #1's next macros from gobbling \fi \fi}% \else \iflocation \doattributes\??ia\c!style\c!color {\gotolocation{#2}{#1\presetgoto}}% \else #1\relax % \relax prevents #1's next macros from gobbling \fi \fi \fi \global\similarreference\zerocount} \def\dogotofixed#1[#2]% {{\iflocation \hbox{\gotolocation{#2}{\doattributes\??ia\c!style\c!color {#1\presetgoto}}}% \else #1% \fi}} %D In case the auto split feature is not needed or even not %D even wanted, \type{\gotobox} can be used. %D --- NOG IN HANDLEIDING --- \unexpanded\def\gotobox#1[#2]% {\dontleavehmode \bgroup \locationstrutfalse %\leaveoutervmode \doifreferencefoundelse{#2} {\dogotofixed{#1}[#2]} {\hbox{\unknownreference{#2}#1}}% \referenceinfo{<}{#2}% \egroup} %D An reference to another document can be specified as a file %D or as an \URL. Both are handled by the same mechanism and %D can be issued by saying something like: %D %D \starttyping %D \goto[dictionary::the letter a] %D \stoptyping %D %D The macros that are responsible for handling these %D references, use the next six variables: \let\otherlabel = \empty \let\fileprefix = \empty \def\otherfile {\jobname} \let\otherURL = \empty \let\otherprefix = \empty \let\dowithdocdes = \empty %D One can imagine that many references to such a dictionary %D are made, so in most cases such a document reference in an %D indirect one. %D %D \showsetup{useexternaldocument} %D %D For example: %D %D \starttyping %D \useexternaldocument %D [dictionary][engldict] %D [The Famous English Dictionary] %D \stoptyping %D %D The next macro implements these relations, and also take %D care of loading the document specific references. \def\useexternaldocument% {\dotripleargument\douseexternaldocument} \def\douseexternaldocument[#1][#2][#3]% {\bgroup \ifsecondargument \doifelsenothing{#1} {\douseexternaldocument[#2][#2][#3]} {\doifelsenothing{#3} {\douseexternaldocument[#1][#2][#2]} {\doifsomething{#2} {\setgvalue{\v!file:::#1}{\doexternaldocument{}{#2}{#3}}% just \do \doif\@@rfstate\v!start {\doifparentfileelse{#2} {\showmessage\m!references{21}{#2}} {\dodouseexternaldocument{#1}{#2}}}}}}% \else \dodouseexternaldocument{#1}{#1}% \fi \egroup} \def\dodouseexternaldocument#1#2% {\bgroup % prevents wrong loading of \jobname \def\fileprefix{#1::}% \let\setglobalcrossreference\setoutercrossreference \usereferences[#2]% \egroup % when called nested \showmessage\m!references{21}{#2}} %D The \URL\ alternative takes four arguments: %D %D \showsetup{useURL} %D %D like: %D %D \starttyping %D \useURL %D [dictionary][http://www.publisher.com/public][engldict] %D [The Famous English Dictionary] %D \stoptyping %D %D Several specifications are possible: %D %D \starttyping %D \useURL [id] [url] [file] [description] %D \useURL [id] [url] [file] %D \useURL [id] [url] %D \stoptyping %D %D This time we don't load the references when no file is %D specified. This is logical when one keeps in mind that a %D valid \URL\ can also be a mail address. \def\useURL {\bgroup \protectlabels \catcode`\#=\@@other\catcode`\%=\@@other\catcode`\/=\@@other \catcode`\_=\@@other\catcode`\~=\@@other\catcode`\:=\@@other \dodoubleempty\douseURL} \def\douseURL[#1][#2]% {\egroup\doquadrupleempty\dodouseURL[#1][#2]} \let\useurl\useURL \def\dodouseURL[#1][#2][#3][#4]% to be redone: not too tricky redefs ad reuse {\iffirstargument \iffourthargument\setgvalue{\v!file:::#1}{\doexternaldocument{#2}{#3}{#4}}\else \ifthirdargument \setgvalue{\v!file:::#1}{\doexternalurl {#2}{#3}{#1}}\else \ifsecondargument\setgvalue{\v!file:::#1}{\doexternalurl {#2}{} {#1}}\fi\fi\fi \fi} \def\doexternalurl#1#2#3% {\bgroup \doifsomething\@@urstyle{\let\@@iastyle\@@urstyle\let\@@urstyle\empty}% \doifsomething\@@urcolor{\let\@@iacolor\@@urcolor\let\@@urcolor\empty}% \doexternaldocument{#1}{#2}{\url[#3]}% \egroup} \def\doifurldefinedelse #1{\doifdefinedelse{\v!file:::#1}} \def\doiffiledefinedelse#1{\doifdefinedelse{\v!file:::#1}} %D \macros %D {url,setupurl} %D %D We also have: \type{\url} for directly calling the %D description. So we can say: %D %D \starttyping %D \useURL [one] [http://www.test.nl] %D \useURL [two] [http://www.test.nl] [] [Some Site] %D %D \url[one] or \from[two] or \goto{Whatever Site}[URL(two)] %D \stoptyping %D %D An \URL\ can be set up with %D %D \showsetup{setupurl} \def\setupurl {\dodoubleargument\getparameters[\??ur]} \unexpanded\def\url[#1]% slow {\bgroup \processaction [\@@uralternative] [ \v!none=>\chardef\urlsplitmode\zerocount, \v!both=>\chardef\urlsplitmode\plusone, \v!after=>\chardef\urlsplitmode\plustwo, \v!before=>\chardef\urlsplitmode\plusthree]% \doifelse\@@urspace\v!yes {\setbetweenisolatedwords{\scratchskip\currentspaceskip\hskip\zeropoint\!!plus.2\scratchskip}} {\setbetweenisolatedwords\allowbreak}% \def\doexternaldocument##1##2##3{\hyphenatedurl{##1}}% awful hack \dostartattributes\??ur\c!style\c!color{}% \getvalue{\v!file:::#1}% \dostopattributes \egroup} %D This macro is hooked into a support macro, and thereby %D \URL's break ok, according to the setting of a switch, %D %D \startbuffer %D \useURL %D [test] %D [sentence_sentence%sentence#sentence~sentence/sentence//sentence:sentence.sentence] %D \stopbuffer %D %D \typebuffer %D %D Such an \URL\ is, depending on the settings, hyphenated as: %D %D \getbuffer %D %D \startlinecorrection %D \hbox to \hsize %D {\hss\en %D \setupreferencing[urlalternative=both]% %D \vbox{\hsize.25cm\hbox{\bf both}\prewordbreak\url[test]}% %D \hss %D \setupreferencing[urlalternative=before]% %D \vbox{\hsize.25cm\hbox{\bf before}\prewordbreak\url[test]}% %D \hss %D \setupreferencing[urlalternative=after]% %D \vbox{\hsize.25cm\hbox{\bf after}\prewordbreak\url[test]}% %D \hss} %D \stoplinecorrection %D %D By setting \type{urlspace=yes} one can get slightly better %D spacing when using very long \URL's. %D Many macro definitions ago we called for the auxiliary macro %D \type {\setouterlocation} and now is the time to define this %D one. \newconditional\forceURLlocation \def\setouterfilelocation#1#2#3% {\edef\otherURL{#1}% \edef\otherfile{#2}}% \def\setouterlocation#1% {\ifcsname\v!file:::#1\endcsname \let\doexternaldocument\setouterfilelocation % will change \let\doexternalurl \setouterfilelocation % will change \csname\v!file:::#1\endcsname \else \ifconditional\forceURLlocation \edef\otherURL{#1}% \let\otherfile\empty \else \let\otherURL\empty \edef\otherfile{#1}% \fi \fi \setfalse\forceURLlocation \doifparentfileelse\otherfile {\let\otherURL\empty \let\otherfile\empty \global\let\otherlabel\empty \let\otherprefix\empty} {\xdef\otherlabel{#1}% \edef\otherprefix{#1::}}} %D When defining the external source of information, one can %D also specify a suitable name (the last argument). This name %D can be called upon with: %D %D \showsetup{from} %D %D As can be expected, this macro used \type{\goto} to %D perform its task. \def\dospecialfrom % retest this one ! {\dosingleempty\dodospecialfrom} \def\dodospecialfrom[#1]% {\dontleavehmode % added, but probably not needed \bgroup \protectlabels % needed for active french :'s \iffirstargument \edef\!!stringa{#1}% \doifincsnameelse{::}\!!stringa\donothing{\edef\!!stringa{#1::}}% \expanded{\redospecialfrom[\!!stringa]}% \else \expanded{\nodospecialfrom[\otherlabel]}% \fi \egroup} \def\redospecialfrom[#1::#2]% {\ifcsname\v!file:::#1\endcsname \def\doexternaldocument##1##2##3{\goto{##3}[#1::#2]}% \csname\v!file:::#1\endcsname \else \tttf[#1]% \fi} \def\nodospecialfrom[#1]% {\ifcsname\v!file:::#1\endcsname \def\doexternaldocument##1##2##3{##3}% different than ^ \csname\v!file:::#1\endcsname \else \tttf[#1]% \fi} %D We also support: %D %D \starttyping %D \goto{some text}[file(identifier{location}] %D \stoptyping %D %D which is completely equivalent with %D %D \starttyping %D \goto{some text}[identifier::location] %D \stoptyping %D %D The fastest implementation would be: \definespecialtest\v!file {\setfalse\forceURLlocation\handlespecialFILEandURL} \definespecialtest\v!URL {\settrue \forceURLlocation\handlespecialFILEandURL} \definespecialtest\v!url {\settrue \forceURLlocation\handlespecialFILEandURL} \definespeciallocation\v!file{\setfalse\forceURLlocation\handlespecialallocationFILEandURL} \definespeciallocation\v!URL {\settrue \forceURLlocation\handlespecialallocationFILEandURL} \definespeciallocation\v!url {\settrue \forceURLlocation\handlespecialallocationFILEandURL} \def\handlespecialFILEandURL {\localdoifreferencefoundelse {\currentreferenceoperation::\currentreferencearguments}} \def\handlespecialallocationFILEandURL {\let\currentouterreference\currentreferenceoperation \let\currentinnerreference\currentreferencearguments \let\currentreferenceoperation\empty \let\currentreferencearguments\empty \gotoouterlocation} %D Now we have file references as special ones, it's rather %D logical to have the viewer specific ones available in a dual %D way too. At first glance we could do with: %D %D \starttyping %D \definespeciallocation\v!action %D {\getreferenceelements\currentreferenceoperation %D \handleexecreference} %D \stoptyping %D %D An better alternative, slower but error aware, is % \definespecialtest\v!actie % {\localdoifreferencefoundelse\currentreferenceoperation} \definespecialtest\v!action % rather ugly action(whatever{argument}) {\expanded{\localdoifreferencefoundelse{\currentreferenceoperation \ifx\currentreferencearguments\empty\else{\currentreferencearguments}\fi}}} \definespeciallocation\v!action {\handleexecreference} %D So now we can say: %D %D \starttyping %D \goto{some action}[PreviousJump] %D \stoptyping %D %D as well as: %D %D \starttyping %D \goto{some text}[action(PreviousJump] %D \stoptyping %D A special case of references are those to programs. These, %D very system dependant references are implemented by abusing %D some of the previous macros. %D %D \showsetup{setupprograms} %D \showsetup{defineprogram} %D \showsetup{program} %D %D The latter gives access to the description of the program, %D being the last argument to the definition command. \def\setupprograms {\dodoubleargument\getparameters[\??pr]} \def\dodefineprogram[#1][#2][#3]% {\setgvalue{\v!program:::#1}{\doprogram{#2}{#3}}} \def\defineprogram {\dotripleargument\dodefineprogram} \def\program#1[#2]% {\bgroup \ifcsname\v!program:::#2\endcsname \def\doprogram##1##2{\goto{\doifelsenothing{#1}{##2}{#1}}[\v!program(#2)]}% \csname\v!program:::#2\endcsname \else {\tttf[#2]}% \fi \egroup} % needs an update: program(abc{arg}) \definespeciallocation\v!program#1#2% {\bgroup \iflocation \ifcsname\v!program:::\currentreferenceoperation\endcsname \def\doprogram##1##2{\def\@@programfile{##1}}% \getvalue{\v!program:::\currentreferenceoperation}% \else \let\@@programfile\currentreferenceoperation \fi \defconvertedcommand\ascii\@@programfile \dohandlegoto {#2}% {\dostartrunprogram\buttonwidth\buttonheight{\@@prdirectory\ascii}\currentreferencearguments}% {\dostoprunprogram}% \else {#2}% \fi \egroup} %D As we can see, we directly use the special reference %D mechanism, which means that %D %D \starttyping %D \goto{some text}[program(name{args})] %D \stoptyping %D %D is valid. %D The next macro provides access to the actual pagenumbers. %D When documenting and sanitizing the original reference %D macros, I decided to keep the present meaning as well as to %D make this meaning available as a special reference method. %D So now one can use: %D %D \starttyping %D \gotopage{some text}[location] %D \gotopage{some text}[number] %D \gotopage{some text}[file::number] %D \stoptyping %D %D as well as: %D %D \starttyping %D \goto{some text}[page(location)] %D \goto{some text}[page(number)] %D \goto{some text}[file::page(number)] %D \stoptyping %D %D Here location is a keyword like \type{nextpage}. %D %D \showsetup{gotopage} \def\dodefinepage[#1][#2]% {\setvalue{\v!page:::#1}{#2}} \def\definepage {\dodoubleargument\dodefinepage} \definepage [\v!firstpage] [\firstpage] \definepage [\v!previouspage] [\prevpage] \definepage [\v!nextpage] [\nextpage] \definepage [\v!lastpage] [\lastpage] \definepage [\v!firstsubpage] [\firstsubpage] \definepage [\v!previoussubpage] [\prevsubpage] \definepage [\v!nextsubpage] [\nextsubpage] \definepage [\v!lastsubpage] [\lastsubpage] \definepage [\v!first] [\firstpage] \definepage [\v!previous] [\prevpage] \definepage [\v!next] [\nextpage] \definepage [\v!last] [\lastpage] \definepage [\v!first\v!sub] [\firstsubpage] \definepage [\v!previous\v!sub] [\prevsubpage] \definepage [\v!next\v!sub] [\nextsubpage] \definepage [\v!last\v!sub] [\lastsubpage] %D Because we combine both methods, we have to take care of %D the \type{file::page(n)} as well as \type{page(file::n)}. \definespeciallocation\v!page#1#2% page(n) page(+n) page(-n) {\iflocation \ifx\currentouterreference\empty \splitoffreference\currentreferenceoperation \else \let\currentinnerreference\currentreferenceoperation \fi \ifx\currentouterreference\empty \doifinstringelse+\currentinnerreference{\edef\currentinnerreference{\the\numexpr\realpageno\currentinnerreference}} {\doifinstring -\currentinnerreference{\edef\currentinnerreference{\the\numexpr\realpageno\currentinnerreference}}}% \doifnonzeropositiveelse\currentinnerreference\donothing{\edef\currentinnerreference{1}}% \docheckrealreferencepage\currentinnerreference % new \let\currentrealreference\currentinnerreference % handy to have this available \gotorealpage\empty\empty\currentinnerreference{#2}% \else \setouterlocation\currentouterreference \doifnonzeropositiveelse\currentinnerreference\donothing{\edef\currentinnerreference{\executeifdefined{\v!page:::\currentinnerreference}1}}% \gotorealpage\otherURL\otherfile\currentinnerreference{#2}% \fi \else {#2}% \fi} \def\gotopage#1[#2]% {\goto{#1}[\v!page(#2)]} %D A still very rudimentary|/|experimental forward|/|backward %D reference mechanism is provided by the macro \type{\atpage}: %D %D \starttyping %D ... \somewhere{backward text}{forward text}[someref] ... %D ... \atpage[someref] ... %D \stoptyping %D %D In future versions there will be more sophisticated %D support, also suitable for references to floating bodies. \unexpanded\def\somewhere#1#2#3[#4]% #3 gobbles space around #2 {\dontleavehmode %\leaveoutervmode \doifreferencefoundelse{#4} {\ifforwardreference \doifelsenothing{#1} {\dosymbolreference{}{}[#4]} {\dogotospace{#1}[#4]}% \else \doifelsenothing{#2} {\dosymbolreference{}{}[#4]} {\dogotospace{#2}[#4]}% \fi} {\unknownreference{#4}#1/#2}% \referenceinfo{<}{#4}} \unexpanded\def\atpage[#1]% {\dontleavehmode %\leaveoutervmode \doifreferencefoundelse{#1} {\ifrealreferencepage \ifforwardreference \dogotofixed{\labeltext\v!hencefore}[#1]% \else \dogotofixed{\labeltext\v!hereafter}[#1]% \fi \else \dogotofixed{\labeltexts\v!atpage\currentpagereference}[#1]% \fi} {\unknownreference{#1}% \labeltexts\v!page\dummyreference}% \referenceinfo{<}{#1}} %D We can cross link documents by using: %D %D \showsetup{coupledocument} %D %D like: %D %D \starttyping %D \coupledocument[print][somefile][chapter,section] %D \stoptyping %D %D After which when applicable, we have available the %D references: %D %D \starttyping %D \goto{print version}[print::chapter] %D \stoptyping %D %D and alike. The title placement definition macros have a %D key \type{file}, which is interpreted as the file to jump %D to, that is, when one clicks on the title. \let\crossdocumentreferences\empty \let\crossdocumentelements\empty \newif\ifautocrossdocument \def\docoupledocument[#1][#2][#3][#4]% is this :/- safe ? {\ifthirdargument \begingroup \def\dolistelement##1##2##3##4##5##6% 2=aut 6=pag / 2 goes into text ref slot {\global\utilitydonetrue %{Watch the braces here below!} \setglobalcrossreference{{##1::\@@filterblocknumberpart[##5]}}{}{##6}{##2}}% \def\usereferences[##1]% %{\setbox0\vbox{\doutilities{#3}{##1}{#3}\relax\relax}}% {\startnointerference \doutilities{#3}{##1}{#3}\relax\relax \stopnointerference}% \douseexternaldocument[#1][#2][#4]% \doglobal\addtocommalist{#1}\crossdocumentreferences \def\docommand##1% {\letgvalue{\??rf##1\c!state}\v!start % for fast checking \doglobal\addtocommalist{##1}\crossdocumentelements}% \processcommalist[#3]\docommand \ifutilitydone \global\autocrossdocumenttrue \fi \endgroup \fi} \def\coupledocument {\doquadrupleempty\docoupledocument} %D --- STRANGE HERE, BETTER IN CORE-NAV --- \def\checkcontrastreference#1% {\ifnum\currentreferencetype=\rt!page\ifnum\currentdatareference=\realpageno \doifdefined{#1\c!contrastcolor}{\setevalue{#1\c!color}{\getvalue{#1\c!contrastcolor}}}% \fi\fi} \def\checkcontrastreference#1% {\ifnum\currentreferencetype=\rt!page\relax\ifnum\currentdatareference=\realpageno \copycsname#1\c!color\endcsname\csname#1\c!contrastcolor\endcsname \fi\fi} %D Buttons are just what their names says: things that can be %D clicked (pushed) on. They are similar to \type{\goto}, %D except that the text argument is not interpreted. %D Furthermore one can apply anything to them that can be done %D with \type{\framed}. %D %D \startbuffer %D \button[width=3cm,height=1.5cm]{Exit}[ExitViewer] %D \stopbuffer %D %D \typebuffer %D %D gives %D %D \getbuffer %D %D This command is formally specified as: %D %D \showsetup{button} %D %D The characteristics can be set with: %D %D \showsetup{setupbuttons} \def\setupbuttons {\dodoubleargument\getparameters[\??bt]} \definecomplexorsimpleempty\button \def\complexbutton {\docomplexbutton\??bt} \presetlocalframed[\??bt] \long\def\docomplexbutton#1[#2]#3#4% get rid of possible space before [#4] {\dodocomplexbutton#1[#2]{#3}#4} % #4 == [ \def\buttonframed{\dodoubleempty\localframed[\??bt]} % goodie \long\def\dodocomplexbutton#1[#2]#3[#4]% #3 can contain [] -> {#3} later {\bgroup \doifvalue{#1\c!state}\v!stop\locationfalse \iflocation \resetgoto \ConvertConstantAfter\doifelse{#3}\v!none\hphantom\hbox {\doifelsenothing{#4} {\setlocationboxnop#1[#2]{#3}[#4]} {\doifreferencefoundelse{#4} {\setlocationboxyes#1[#2]{#3}[#4]} {\unknownreference{#4}% \setlocationboxnop#1[#2]{#3}[#4]}}}% \fi \egroup} %D Interaction buttons, in fact a row of tiny buttons, are %D typically only used for navigational purposed. The next %D macro builds such a row based on a specification list. %D %D \startbuffer %D \interactionbuttons %D [width=\hsize][page,PreviousJump,ExitViewer] %D \stopbuffer %D %D \typebuffer %D %D gives %D %D \getbuffer %D %D Apart from individual entries, one can use \type{page} and %D \type {subpage} as shortcuts to their four associated buttons. %D The symbols are derived from the symbols linked to the %D entries. % does not work well with for instance SomeRef{whatever} \def\interactionbuttons {\dodoubleempty\dointeractionbuttons} \def\dointeractionbuttons[#1][#2]% er is een verdeel macro \horizontalfractions {\iflocation % BUG: fails when frame=off; best is to rewrite this macro \bgroup \doif\@@ibstate\v!stop\locationfalse \iflocation \ifsecondargument \setupinteractionbar[#1]% \checkinteractionbar{1.5em}\v!broad\!!zeropoint % brrrrr \setbox2\hbox {\localframed[\??ib][\c!background=]{\symbol[\@@iasymbolset][\v!previouspage]}}% \!!heighta\ht2 % needed because we default to nothing \setupinteractionbar[\c!strut=\v!no]% \setinteractionparameter\c!width\!!zeropoint \!!counta\zerocount % new, was 1 \processallactionsinset [#2] [ \v!page=>\advance\!!counta 4, \v!subpage=>\advance\!!counta 4, \s!unknown=>\advance\!!counta 1]% \ifdim\@@ibwidth=\zeropoint \!!widtha2em \advance\!!widtha \@@ibdistance % new \!!widthb\!!counta\!!widtha \advance\!!widthb -\@@ibdistance % new \else \!!widtha\@@ibwidth \!!widthb\@@ibdistance % new \multiply\!!widthb \!!counta % new \advance\!!widthb -\@@ibdistance % new \advance\!!widtha -\!!widthb % new \divide\!!widtha \!!counta \!!widthb\@@ibwidth \fi \def\goto##1% clash ? {\setnostrut \edef\localreference{##1}% \expanded{\dodocomplexbutton\??ib[\c!height=\the\!!heighta,\c!width=\the\!!widtha]}% {\dontleavehmode\symbol[\@@iasymbolset][\localreference]}% [\localreference]% \hss}% \hbox to \!!widthb {\processallactionsinset [#2] [ \v!page=>\goto\v!firstpage \goto\v!nextpage \goto\v!previouspage \goto\v!lastpage, \v!subpage=>\goto\v!firstsubpage \goto\v!nextsubpage \goto\v!previoussubpage \goto\v!lastsubpage, \s!unknown=>\goto\commalistelement]% \unskip}% \else \interactionbuttons[][#1]% \fi \fi \egroup \fi} %D \macros %D {overlaybutton} %D %D For converience we provide: %D %D \starttyping %D \overlaybutton[reference] %D \stoptyping %D %D This command can be used to define overlays an/or can be %D used in the whatevertext areas, like: %D %D \starttyping %D \defineoverlay[PrevPage][\overlaybutton{PrevPage}] %D \setupbackgrounds[page][background=PrevPage] %D \setuptexttexts[\overlaybutton{NextPage}] %D \stoptyping %D %D For practical reasons, this macro accepts square brackets %D as well as braces. \definecomplexorsimple\overlaybutton \def\simpleoverlaybutton#1% {\complexoverlaybutton[#1]} \def\complexoverlaybutton[#1]% {\iflocation \doifreferencefoundelse{#1} {\overlayfakebox {#1}} {\unknownreference{#1}}% \fi} \def\overlayfakebox#1% {\hbox {\setbox\scratchbox\null \wd\scratchbox\overlaywidth \ht\scratchbox\overlayheight \locationstrutfalse \gotolocation{#1}{\box\scratchbox\presetgoto}}} %D \macros %D {dotextprefix} %D %D In previous macros we used \type {\dotextprefix} to %D generate a space between a label and a number. %D %D \starttyping %D \dotextprefix{text} %D \stoptyping %D %D Only when \type {text} is not empty, a space is inserted. \def\dotextprefix#1% {\bgroup \global\labeltextdonefalse % this is an ugly dependancy, \setbox\scratchbox\hbox{#1}% to be solved some day \ifdim\wd\scratchbox>\zeropoint \unhbox\scratchbox \iflabeltextdone\else\@@rfseparator\fi \else \unhbox\scratchbox \fi \egroup} %D Plugin code: %D In the next settings we see some variables that were not %D used here and that concern the way the pagenumbers refered %D to are typeset. \setupreferencing [\c!state=\v!start, \c!autofile=\v!no, \v!part\c!number=\v!yes, \v!chapter\c!number=\v!no, \c!interaction=\v!all, %\c!urlalternative=\v!both, %\c!urlspace=\v!no, %\c!urlletter=, %\c!urlkleur=, \c!convertfile=\v!no, %\c!strut=\v!no, % some day an option \c!prefix=, \c!width=.75\makeupwidth, \c!left=\quotation\bgroup, \c!right=\egroup, \c!global=\v!no, \c!expansion=\v!no, \c!separator=\nonbreakablespace] \setupurl [\c!alternative=\v!both, \c!space=\v!no, \c!style=\v!type, \c!color=] \setupprograms [\c!directory=] %D We cannot set up buttons (not yet, this one calls a menu macro): % under consideration: % % \setupinteraction[state=start] % % \unprotect % % \chardef\rt!extern=5 % % \definesystemreferencehandler \rt!extern \handleexecreference % % \definespecialtest\v!extern % {\expanded{\localdoifreferencefoundelse{\currentreferenceoperation % \ifx\currentreferencearguments\empty\else{\currentreferencearguments}\fi}}} % % \definespeciallocation\v!extern % {\handleexecreference} % % \def\defineexternalreference[#1]% % {\setglobalsystemreference\rt!extern{#1}{#1}} % % \protect % % \defineexternalreference[NewOne] % % \def\PDFexecuteNewOne{/SomeNewAction /SomeParameter (\argumentA)} % % \starttext % % \goto{test}[AVDP{../../nach-dateipfad.pdf}] % \blank % \goto{test}[external(AVDP{../../nach-dateipfad.pdf})] % \blank % \goto{test}[AVDP{../../nach-dateipfad.pdf}] % \blank % \goto{test}[external(AVDP{../../nach-dateipfad.pdf})] % \blank % \goto{test}[CloseDocument] % \blank % \goto{test}[action(CloseDocument)] % % \stoptext \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-mis.tex0000644000175000017500000000020014536300610024567 0ustar hillehille% This file is not needed, for instance supp-pdf has the relevant code % built in and ppchtex is adapted. \input supp-mis.mkii context-modules-20240428/texmf-dist/tex/context/base/mkii/symb-jmn.mkii0000644000175000017500000001632114536300610024712 0ustar hillehille%D \module %D [ file=symb-jmn, %D version=2004.08.02, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Special Navigational Symbols, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This file defines a few navigational symbol vectors. The font used %D here is designed by Janusz M.~Nowacki, one of the Polish Font %D Gurus who made this font specially for me, hence the name. If you %D you want to meet its designer, come to Bachotek! In case you're %D not familiar with his work, take a look at the Antikwa, Iwona and %D Kurier fonts! %D %D \usesymbols[jmn] %D %D \showsymbolset[navigation 1] %D \showsymbolset[navigation 3] %D \showsymbolset[navigation 2] %D \showsymbolset[navigation 4] %D %D \page %D \showfont[NavigationNormal] %D \page %D \showfont[NavigationShadowed] %D \page % needed: % % - inverted crossed % - curved diamond \unprotect \loadmapfile[original-base.map] % \loadmapfile [original-context-symbol.map] \definefontsynonym[NavigationNormal] [hans] \definefontsynonym[NavigationShadowed] [hans-sh] \definefontsynonym[NavigationFont] [NavigationNormal] %definefontsynonym[NavigationFont] [NavigationShadowed] \def\NavigationGlyph#1{\getglyph{NavigationFont}{\char#1}} \unprotect \startsymbolset [navigation 1] \definesymbol [\v!previouspage] [\NavigationGlyph {65}] \definesymbol [\v!PreviousJump] [\NavigationGlyph{128}] \definesymbol [\v!firstpage] [\NavigationGlyph{129}] \definesymbol [\v!nextpage] [\NavigationGlyph {66}] \definesymbol [\v!NextJump] [\NavigationGlyph{130}] \definesymbol [\v!lastpage] [\NavigationGlyph{131}] \definesymbol [\v!CloseDocument] [\NavigationGlyph{160}] \definesymbol [\v!firstsubpage] [\NavigationGlyph{178}] \definesymbol [\v!previoussubpage] [\NavigationGlyph{208}] \definesymbol [\v!nextsubpage] [\NavigationGlyph{209}] \definesymbol [\v!lastsubpage] [\NavigationGlyph{178}] \definesymbol [\v!StartSound] [\NavigationGlyph {66}] \definesymbol [\v!PauseSound] [\NavigationGlyph{168}] \definesymbol [\v!StopSound] [\NavigationGlyph{170}] \definesymbol [\v!StartMovie] [\NavigationGlyph {66}] \definesymbol [\v!PauseMovie] [\NavigationGlyph{168}] \definesymbol [\v!StopMovie] [\NavigationGlyph{170}] \definesymbol [\v!StartRendering] [\NavigationGlyph {66}] \definesymbol [\v!PauseRendering] [\NavigationGlyph{168}] \definesymbol [\v!StopRendering] [\NavigationGlyph{170}] \definesymbol [\v!ResumeRendering] [\NavigationGlyph {66}] \stopsymbolset \startsymbolset [navigation 2] \definesymbol [\v!previouspage] [\NavigationGlyph {67}] \definesymbol [\v!PreviousJump] [\NavigationGlyph{132}] \definesymbol [\v!firstpage] [\NavigationGlyph{133}] \definesymbol [\v!nextpage] [\NavigationGlyph {68}] \definesymbol [\v!NextJump] [\NavigationGlyph{134}] \definesymbol [\v!lastpage] [\NavigationGlyph{135}] \definesymbol [\v!CloseDocument] [\NavigationGlyph{160}] \definesymbol [\v!firstsubpage] [\NavigationGlyph{176}] \definesymbol [\v!previoussubpage] [\NavigationGlyph{210}] \definesymbol [\v!nextsubpage] [\NavigationGlyph{211}] \definesymbol [\v!lastsubpage] [\NavigationGlyph{176}] \definesymbol [\v!StartSound] [\NavigationGlyph {68}] \definesymbol [\v!PauseSound] [\NavigationGlyph{170}] \definesymbol [\v!StopSound] [\NavigationGlyph{168}] \definesymbol [\v!StartMovie] [\NavigationGlyph {68}] \definesymbol [\v!PauseMovie] [\NavigationGlyph{170}] \definesymbol [\v!StopMovie] [\NavigationGlyph{168}] \definesymbol [\v!StartRendering] [\NavigationGlyph {68}] \definesymbol [\v!PauseRendering] [\NavigationGlyph{170}] \definesymbol [\v!StopRendering] [\NavigationGlyph{168}] \definesymbol [\v!ResumeRendering] [\NavigationGlyph {68}] \stopsymbolset \startsymbolset [navigation 3] \definesymbol [\v!previouspage] [\NavigationGlyph {73}] \definesymbol [\v!PreviousJump] [\NavigationGlyph{144}] \definesymbol [\v!firstpage] [\NavigationGlyph{145}] \definesymbol [\v!nextpage] [\NavigationGlyph {74}] \definesymbol [\v!NextJump] [\NavigationGlyph{146}] \definesymbol [\v!lastpage] [\NavigationGlyph{147}] \definesymbol [\v!CloseDocument] [\NavigationGlyph{160}] \definesymbol [\v!firstsubpage] [\NavigationGlyph{178}] \definesymbol [\v!previoussubpage] [\NavigationGlyph{212}] \definesymbol [\v!nextsubpage] [\NavigationGlyph{213}] \definesymbol [\v!lastsubpage] [\NavigationGlyph{178}] \definesymbol [\v!StartSound] [\NavigationGlyph {73}] \definesymbol [\v!PauseSound] [\NavigationGlyph{168}] \definesymbol [\v!StopSound] [\NavigationGlyph{170}] \definesymbol [\v!StartMovie] [\NavigationGlyph {73}] \definesymbol [\v!PauseMovie] [\NavigationGlyph{168}] \definesymbol [\v!StopMovie] [\NavigationGlyph{170}] \definesymbol [\v!StartRendering] [\NavigationGlyph {73}] \definesymbol [\v!PauseRendering] [\NavigationGlyph{168}] \definesymbol [\v!StopRendering] [\NavigationGlyph{170}] \definesymbol [\v!ResumeRendering] [\NavigationGlyph {73}] \stopsymbolset % 1 left : 065 067 073 075 % 2 left : 128 132 144 148 % 3 left : 129 133 145 149 % 1 right : 066 068 074 076 % 2 right : 130 134 146 150 % 3 right : 131 135 147 151 % crossed : 160 160 160 160 % opened : 152 152 156 156 % closed : 154 154 158 158 % larrow : 208 210 212 214 % rarrow : 209 211 213 215 % barrow : 178 178 178 178 % ocircle : 168 168 168 168 % ccircle : 170 170 170 170 \startsymbolset [navigation 4] \definesymbol [\v!previouspage] [\NavigationGlyph {75}] \definesymbol [\v!PreviousJump] [\NavigationGlyph{148}] \definesymbol [\v!firstpage] [\NavigationGlyph{149}] \definesymbol [\v!nextpage] [\NavigationGlyph {76}] \definesymbol [\v!NextJump] [\NavigationGlyph{150}] \definesymbol [\v!lastpage] [\NavigationGlyph{151}] \definesymbol [\v!CloseDocument] [\NavigationGlyph{160}] \definesymbol [\v!firstsubpage] [\NavigationGlyph{176}] \definesymbol [\v!previoussubpage] [\NavigationGlyph{214}] \definesymbol [\v!nextsubpage] [\NavigationGlyph{215}] \definesymbol [\v!lastsubpage] [\NavigationGlyph{176}] \definesymbol [\v!StartSound] [\NavigationGlyph {75}] \definesymbol [\v!PauseSound] [\NavigationGlyph{170}] \definesymbol [\v!StopSound] [\NavigationGlyph{168}] \definesymbol [\v!StartMovie] [\NavigationGlyph {75}] \definesymbol [\v!PauseMovie] [\NavigationGlyph{170}] \definesymbol [\v!StopMovie] [\NavigationGlyph{168}] \definesymbol [\v!StartRendering] [\NavigationGlyph {75}] \definesymbol [\v!PauseRendering] [\NavigationGlyph{170}] \definesymbol [\v!StopRendering] [\NavigationGlyph{168}] \definesymbol [\v!ResumeRendering] [\NavigationGlyph {75}] \stopsymbolset \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-xtx.mkii0000644000175000017500000000436314536300610024734 0ustar hillehille%D \module %D [ file=spec-xtx, %D version=2004.11.08, %D title=\CONTEXT\ Special Macros, %D subtitle=\XETEX\ support, %D author={Adam Lindsay \& Hans Hagen \& \unknown}, %D date=\currentdate, %D copyright={Adam Lindsay \& Hans Hagen}] \startspecials[xetex][reset,dpx] %D Actually, there's an intermediate ``\type{xdv}'' %D output format, but by default, it's tranparently %D converted to \PDF\ by \XETEX. \setjobsuffix{pdf} %D Rotation looks fine. \definespecial\dostartrotation#1% {\special{x:gsave}\special{x:rotate #1}} \definespecial\dostoprotation {\special{x:grestore}} %D Scaling and mirroring are also fine. \definespecial\dostartscaling#1#2% {\special{x:gsave}\special{x:scale #1 #2}} \definespecial\dostopscaling {\special{x:grestore}} \definespecial\dostartmirroring {\special{x:gsave}\special{x:scale -1 1}} \definespecial\dostopmirroring {\special{x:grestore}} %D Colors are done with the \DVIPDFMX\ color model, which are %D inherited. %D Although hex colors were accommodated by Hans, we'll try the %D more familiar \DVIPDFMX\ ones. One good side-effect of the %D previous approach was that it kept track of the color state %D (transparency in XeTeX is accomplished setting the color to %D an RGBA quadruple, rather than an RGB triple). So transparency %D will need another plan. % \macros % {dostarttransparency,dostoptransparency} % % \starttypen % \dostarttransparency{fraction}{type} % \dostoptransparency % \stoptypen % % Although in \CONTEXT\ transparency is closely integrated % in the color drivers, in the end it is an independent % feature. %\installspecial [\dostarttransparency] [or] [2] %\installspecial [\dostoptransparency] [or] [0] %D \macros %D {doloadmapfile,doloadmapline,doresetmapfilelist} %D %D \XETEX\ 0.91 allows map file additions, via a special. \definespecial\doresetmapfilelist{\special{x:fontmapfile original-empty.map}} \definespecial\doloadmapfile #1#2{\special{x:fontmapfile #1#2}} \definespecial\doloadmapline #1#2{\special{x:fontmapline #1#2}} %D \macros %D {dosetuppaper} \ifx\pdfpagewidth\undefined \else \definespecial\dosetuppaper#1#2#3% {\global\pdfpagewidth #2\relax \global\pdfpageheight#3\relax} \fi \stopspecials \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/math-pln.mkii0000644000175000017500000002270214536300610024676 0ustar hillehille%D \module %D [ file=math-pln, %D version=2001.11.16, %D title=\CONTEXT\ Math Macros, %D subtitle=Plain Helpers, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % \points should become \bodyfontsize %D This is a temporary module, some of this code will move to %D the other math modules. \writestatus{loading}{ConTeXt Math Macros / Plain Helpers} \unprotect \ifx\displ@y\undefined \let\displ@y\relax\fi \newbox\rootbox \def\root#1\of {\setbox\rootbox\hbox{$\mathsurround\zeropoint\scriptscriptstyle{#1}$}% \mathpalette\r@@t} \def\r@@t#1#2% will be overloaded {\setbox\zerocount\hbox{$\mathsurround\zeropoint#1\sqrt{#2}$}\dimen@\ht\zerocount \advance\dimen@-\dp\zerocount \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\box\zerocount} \def\mathhexbox#1#2#3% {\leavevmode \hbox{$\mathsurround\zeropoint\mathchar"#1#2#3$}} \def\oalign#1% {\leavevmode \vtop {\baselineskip\zeroskip \lineskip.25ex% \ialign{##\crcr#1\crcr}}} \def\o@lign {\lineskiplimit\zeropoint \oalign} \def\ooalign % chars over each other {\lineskiplimit-\maxdimen \oalign} \def\sh@ft#1% kern by #1 times the current slant {\dimen@#1% \kern\expandafter\withoutpt\the\slantperpoint \dimen@} \def\dots {\relax\ifmmode\ldots\else$\mathsurround\zeropoint\ldots\,$\fi} \def\hrulefill {\leaders\hrule\hfill} \def\dotfill {\cleaders\hbox{$\mathsurround\zeropoint \mkern1.5mu.\mkern1.5mu$}\hfill} \def\rightarrowfill {$\mathsurround\zeropoint\smash-\mkern-7mu% \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill \mkern-7mu\mathord\rightarrow$} \def\leftarrowfill {$\mathsurround\zeropoint\mathord\leftarrow\mkern-7mu% \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill \mkern-7mu\smash-$} % must go to math-tex \ifx\braceld\undefined % mkii values \mathchardef\braceld="37A \mathchardef\bracerd="37B \mathchardef\bracelu="37C \mathchardef\braceru="37D \fi \def\downbracefill {$\mathsurround\zeropoint\setbox\zerocount\hbox{$\braceld$}% \braceld\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\braceru \bracelu\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\bracerd$} \def\upbracefill {$\mathsurround\zeropoint\setbox\zerocount\hbox{$\braceld$}% \bracelu\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\bracerd \braceld\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\braceru$} % hm, shouldn't that be \kern3\bodyfontsize \def\overbrace#1% {\mathop{\vbox{\mathsurround\zeropoint\ialign{##\crcr\noalign{\kern3\points} \downbracefill\crcr\noalign{\kern3\points\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits} \def\underbrace#1% {\mathop{\vtop{\mathsurround\zeropoint\ialign{##\crcr $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\points\nointerlineskip} \upbracefill\crcr\noalign{\kern3\points}}}}\limits} \let\sp=^ % will become obsolete \let\sb=_ % will become obsolete \ifx\,\undefined \def\,{\mskip \thinmuskip } \fi \ifx\>\undefined \def\>{\mskip \medmuskip } \fi \ifx\;\undefined \def\;{\mskip \thickmuskip} \fi \ifx\!\undefined \def\!{\mskip-\thinmuskip } \fi \ifx\*\undefined \def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} \fi % {\catcode`\'=\active \gdef'{^\bgroup\prim@s}} \def\activemathquote{^\bgroup\prim@s} \def\prim@s {\prime\futurelet\next\pr@m@s} \def\pr@m@s {\ifx'\next \@EA\pr@@@s \else\ifx^\next \@EAEAEA\pr@@@t \else \@EAEAEA\egroup \fi\fi} \def\pr@@@s#1% {\prim@s} \def\pr@@@t#1#2% {#2\egroup} % {\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_ \let\activemathunderscore\_ \def\relbar {\mathrel{\smash-}} % - has the same height as + \def\Relbar {\mathrel=} \def\Longrightarrow {\Relbar\joinrel\Rightarrow} \def\longrightarrow {\relbar\joinrel\rightarrow} \def\longleftarrow {\leftarrow\joinrel\relbar} \def\Longleftarrow {\Leftarrow\joinrel\Relbar} \def\longmapsto {\mapstochar\longrightarrow} \def\longleftrightarrow{\leftarrow\joinrel\rightarrow} \def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow} \def\overrightarrow#1% {\vbox{\mathsurround\zeropoint\ialign{##\crcr \rightarrowfill\crcr\noalign{\kern-\onepoint\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}} \def\overleftarrow#1% {\vbox{\mathsurround\zeropoint\ialign{##\crcr \leftarrowfill\crcr\noalign{\kern-\onepoint\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}} \def\skew#1#2#3% {{\muskip\zerocount#1mu\divide\muskip\zerocount\plustwo \mkern\muskip\zerocount #2{\mkern-\muskip\zerocount{#3}\mkern\muskip\zerocount}\mkern-\muskip\zerocount}{}} \def\choose{\atopwithdelims()} \def\brack {\atopwithdelims[]} \def\brace {\atopwithdelims\{\}} \def\mathpalette#1#2% {\mathchoice {#1\displaystyle {#2}}% {#1\textstyle {#2}}% {#1\scriptstyle {#2}}% {#1\scriptscriptstyle{#2}}} \def\cong {\mathrel{\mathpalette\@vereq\sim}} % congruence sign \def\@vereq#1#2% {\lower.5\points\vbox{\lineskiplimit\maxdimen\lineskip-.5\points \ialign{$\mathsurround\zeropoint#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} \def\notin% can be mkiv'd {\mathrel{\mathpalette\c@ncel\in}} \def\c@ncel#1#2% {\mathsurround\zeropoint\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} \def\rightleftharpoons% {\mathrel{\mathpalette\rlh@{}}} \def\rlh@#1% {\vcenter {\mathsurround\zeropoint \hbox {\ooalign {\raise2pt\hbox{$#1\rightharpoonup$}\crcr $#1\leftharpoondown$}}}} \def\buildrel#1\over#2% {\mathrel{\mathop{\kern\zeropoint#2}\limits^{#1}}} \def\doteq {\buildrel\textstyle.\over=} \ifx\mfunction\undefined \def\mfunction#1{\mathbin{\rm#1}} \fi \def\bmod {\nonscript \mskip-\medmuskip \mkern5mu \mfunction{mod}% \penalty900 \mkern5mu \nonscript \mskip-\medmuskip} \def\pmod#1% {\allowbreak \mkern18mu (\mfunction{mod}\,\,#1)} \def\cases#1% {\left\{% \,% \vcenter {\normalbaselines \mathsurround\zeropoint \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}% \right.} \def\matrix#1% {\null \,% \vcenter {\normalbaselines\mathsurround\zeropoint \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr \mathstrut\crcr\noalign{\kern-\baselineskip} #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}% \,} \def\pmatrix#1% {\left(\matrix{#1}\right)} \newdimen\mathparentwd % \setbox0=\hbox{\tenex B} \mathparentwd=\wd0 % width of the big left ( \def\bordermatrix#1% {\begingroup \mathsurround\zeropoint \setbox\zerocount\vbox {\def\cr{\crcr\noalign{\kern2\points\global\let\cr\endline}}% \ialign{$##$\hfil\kern2\points\kern\mathparentwd&\thinspace\hfil$##$\hfil &&\quad\hfil$##$\hfil\crcr \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% #1\crcr\omit\strut\cr}}% \setbox\plustwo\vbox {\unvcopy\zerocount\global\setbox\plusone\lastbox}% \setbox\plustwo\hbox {\unhbox\plusone\unskip\global\setbox\plusone\lastbox}% \setbox\plustwo\hbox {$\kern\wd\plusone\kern-\mathparentwd\left(\kern-\wd\plusone \global\setbox\plusone\vbox{\box\plusone\kern2\points}% \vcenter{\kern-\ht\plusone\unvbox\zerocount\kern-\baselineskip}\,\right)$}% \null \;% \vbox{\kern\ht\plusone\box\plustwo}% \endgroup} % \def\openup{\afterassignment\@penup\dimen@=} % % \def\@penup{\advance\lineskip\dimen@ % \advance\baselineskip\dimen@ % \advance\lineskiplimit\dimen@} \def\openup {\afterassignment\doopenup\scratchdimen=} \def\doopenup {\advance\lineskip \scratchdimen \advance\baselineskip \scratchdimen \advance\lineskiplimit\scratchdimen} % \def\jot{.25\bodyfontsize} % plain tex: 3 pt (todo: better name and configurable) \def\displayopenupvalue{.25\bodyfontsize} \def\eqalign#1% {\null \,% \vcenter {\openup\displayopenupvalue % was \openup\jot \mathsurround\zeropoint \ialign {\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr #1\crcr}}% \,} \def\@lign % restore inside \displ@y {\tabskip\zeroskip \everycr{}} \def\displaylines#1% {\displ@y \tabskip\zeroskip \halign {\hbox to \displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr #1\crcr}} \def\eqalignno#1% {\displ@y \tabskip\centering \halign to \displaywidth {\hfil$\@lign\displaystyle{##}$\tabskip\zeroskip &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering &\llap{$\@lign##$}\tabskip\zeroskip\crcr #1\crcr}} \def\leqalignno#1% {\displ@y \tabskip\centering \halign to \displaywidth {\hfil$\@lign\displaystyle{##}$\tabskip\zeroskip &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr #1\crcr}} % temporary here % \startcatcodetable \mthcatcodes % \setcatcodetable\ctxcatcodes % \catcode`\_ = 13 % \catcode`\' = 13 % \stopcatcodetable % % \letcatcodecommand \mthcatcodes `\_ \activemathunderscore % \letcatcodecommand \mthcatcodes `\' \activemathquote % \appendtoks \setcatcodetable\mthcatcodes \to \everymath : spoils xml % tricky, but some day we will reimplement math \bgroup \catcode`\_ = 13 \catcode`\' = 13 \doglobal\appendtoks \let_\activemathunderscore \let'\activemathquote \to \everymathematics \egroup % so far \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/hand-ini.mkii0000644000175000017500000003351014536300610024644 0ustar hillehille%D \module %D [ file=hand-ini, % moved from enco-ini / pro %D version=2000.12.27, % 1998.12.03, %D title=\CONTEXT\ Handling Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D {\em This module is experimental and implements font %D specific features, like hanging punctuation.} \unprotect \newif\iftracefonthandling % \tracefonthandlingtrue \newif\ifskiphandlingdef \skiphandlingdeffalse \newtoks\everyenablefonthandling % much in common with hz/protruding defs % todo: fix others \def\dosetsomehandling#1#2#3 #4 % no define since directly set {\ifskiphandlingdef \else \doifnumberelse{\string#2} {#1{#2#3}{#4}} {\doifelsenothing{#3} {#1{`#2}{#4}} {\let\char\empty \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}}\donothing \let\char\normalchar}}% \fi} \def\dosetpairhandling#1#2#3 #4 #5 % no define since directly set {\ifskiphandlingdef \else \doifnumberelse{\string#2} {#1{#2#3}{#4}{#5}} {\doifelsenothing{#3} {#1{`#2}{#4}{#5}} {\let\char\empty \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}{#5}}\donothing \let\char\normalchar}}% \fi} \def\dosetquartethandling#1#2#3 #4 #5 #6 #7 % no define since directly set {\ifskiphandlingdef \else \doifnumberelse{\string#2} {#1{#2#3}{#4}{#5}{#6}{#7}} {\doifelsenothing{#3} {#1{`#2}{#4}{#5}{#6}{#7}} {\let\char\empty \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}{#5}{#6}{#7}}\donothing \let\char\normalchar}}% \fi} \def\doinhsomehandling#1#2#3 #4 % to be checked {\ifskiphandlingdef \else \if#3\relax\relax #1{`#2}{`#4}% \else \let\char\empty \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{`#4}}\donothing \let\char\normalchar \fi \fi} % adjustspacing \newdimen\adjustdimen \let\handledfont\font \ifx\undefined\pdfadjustspacing % we don't use pdftex \let\enableadjusting \relax \let\disableadjusting \relax \let\setadjusting \gobbletwoarguments \def\defineadjustfactor #1 #2 {} \def\inheritadjustfactor #1 #2 {} \let\setfontadjusting \gobbleoneargument \else \def\enableadjusting {\pdfadjustspacing\plustwo} \def\disableadjusting {\pdfadjustspacing\zerocount} \appendtoks \disableadjusting \to \everyforgetall % Here or not here? \def\dododefineadjustfactor#1#2% {\efcode\handledfont#1\dimexpr#2\onepoint*\plusthousand/\maxcard\relax} \def\dodoinheritadjustfactor#1#2% {\efcode\handledfont#1\efcode\handledfont#2\relax} \def\defineadjustfactor#1 #2 % {\setfonttoks \let\inherithandling\inheritadjustfactor \appendtoks\dosetsomehandling\dododefineadjustfactor#1 #2 \to\fonttoks} \def\inheritadjustfactor#1 #2 % {\setfonttoks \appendtoks\doinhsomehandling\dodoinheritadjustfactor#1 #2 \to\fonttoks} \ifnum\pdftexversion<120 \let\@@pdfexpandbonus\plusthousand \else \def\@@pdfexpandbonus{autoexpand}% \fi \def\setfontadjusting#1% {\doifvalue{\@fha@\@fha@#1\c!type}\v!hz{\dosetfontadjusting{#1}}} \def\dosetfontadjusting#1% {\iftracefonthandling\showfontadjusting{#1}\fi \pdffontexpand\handledfont \csname\@fha@\@fha@#1\c!max \endcsname\space \csname\@fha@\@fha@#1\c!min \endcsname\space \csname\@fha@\@fha@#1\c!step\endcsname\space \@@pdfexpandbonus\relax} \def\showfontadjusting#1% {\writestatus\m!handlings{[adjust]\space#1\space \csname\@fha@\@fha@#1\c!max \endcsname/% \csname\@fha@\@fha@#1\c!min \endcsname/% \csname\@fha@\@fha@#1\c!step\endcsname\space \fontname\handledfont}} \fi \ifx\setfontadjusting\gobbleoneargument \else \appendtoks \setfontadjusting\askedfonthandling \to \everyenablefonthandling \fi % protruding \newif\ifembasedprotruding \embasedprotrudingfalse \newdimen\lproddimen \newdimen\rproddimen \let\handledfont\font \ifx\undefined\pdfprotrudechars % we don't use pdftex \let\enableprotruding \relax \let\disableprotruding \relax \let\setprotrudingfactor \gobbleoneargument \def\defineprotrudefactor #1 #2 #3 {} \def\inheritprotrudefactor #1 #2 {} \else \def\enableprotruding {\pdfprotrudechars\plustwo} \def\disableprotruding{\pdfprotrudechars\zerocount} \appendtoks \disableprotruding \to \everyforgetall % Here or not here? \lproddimen1000\onepoint \divide\lproddimen\maxcard \rproddimen1000\onepoint \divide\rproddimen\maxcard \def\setprotrudingfactor#1% {\doifvalue{\@fha@\@fha@#1\c!type}\v!hanging{\dosetprotrudingfactor{#1}}} \def\dosetprotrudingfactor#1% no \onepoint instead of pt {\lproddimen\dimexpr\csname\@fha@\@fha@#1\c!left \endcsname\onepoint*\plusthousand/\maxcard\relax \rproddimen\dimexpr\csname\@fha@\@fha@#1\c!right\endcsname\onepoint*\plusthousand/\maxcard\relax \iftracefonthandling\showprotrudingfactor{#1}\fi} \def\showprotrudingfactor#1% {\writestatus\m!handlings{[protrude]\space#1\space \csname\@fha@\@fha@#1\c!left \endcsname\space \csname\@fha@\@fha@#1\c!right\endcsname\space \fontname\handledfont}} % division before multiplication, else overflow with "sa>5" \newdimen\protrudethreshold \protrudethreshold=36pt \def\dododefineprotrudefactor#1#2#3% {\lpcode\handledfont#1\dimexpr#2\lproddimen \ifembasedprotruding \else \ifdim\emwidth>\protrudethreshold /\emwidth*\fontcharwd\handledfont#1% \else *\fontcharwd\handledfont#1/\emwidth \fi \fi \relax \rpcode\handledfont#1\dimexpr#3\rproddimen \ifembasedprotruding \else \ifdim\emwidth>\protrudethreshold /\emwidth*\fontcharwd\handledfont#1% \else *\fontcharwd\handledfont#1/\emwidth \fi \fi \relax} \def\dodoinheritprotrudefactor#1#2% {\lpcode\handledfont#1\lpcode\handledfont#2\relax \rpcode\handledfont#1\rpcode\handledfont#2\relax} \def\defineprotrudefactor#1 #2 #3 % {\setfonttoks \let\inherithandling\inheritprotrudefactor \appendtoks\dosetpairhandling\dododefineprotrudefactor#1 #2 #3 \to\fonttoks} \def\inheritprotrudefactor#1 #2 % {\setfonttoks \appendtoks\doinhsomehandling\dodoinheritprotrudefactor#1 #2 \to\fonttoks} \fi \ifx\setprotrudingfactor\gobbleoneargument \else \appendtoks \setprotrudingfactor\askedfonthandling \to \everyenablefonthandling \fi % Basic support for a new pdftex feature: space factors % % \knbccode -- kern before char code % \knbscode -- kern before space code % \stbscode -- stretch before space code % \shbscode -- shrink before space code % % Setting \knsbcode\font`\.=200 means that if a period sits before % a interword space (glue), then the interword glue will be increased % by an amount of 1em*200/1000, i.e. the value is given in thousandths % of an em. (HTT) \newdimen\spfacdimen \ifx\undefined\pdfadjustinterwordglue % we don't use pdftex \let\enablespacehandling \relax \let\disablespacehandling \relax \let\enablekernhandling \relax \let\disablekernhandling \relax \let\setspacehandling \gobbleoneargument \def\definespacefactor #1 #2 #3 #4 #5 {} \def\inheritspacefactor #1 #2 {} \else \def\enablespacehandling {\pdfadjustinterwordglue\plusone } \def\disablespacehandling{\pdfadjustinterwordglue\minusone} \def\enablekernhandling {\pdfprependkern \plusone } \def\disablekernhandling {\pdfprependkern \minusone} \appendtoks \disablespacehandling \to \everyforgetall % Here or not here? \def\dosetspacehandling#1% {\spfacdimen\csname\@fha@\@fha@#1\c!factor\endcsname\s!pt \multiply\spfacdimen\plusthousand\divide\spfacdimen\maxcard\relax} \def\setspacehandling#1% {\doifvalue{\@fha@\@fha@#1\c!type}\v!spacing{\dosetspacehandling{#1}}} \def\dododefinespacefactor#1#2#3#4#5% {\sfcode#1\plusthousand \knbccode\handledfont#1\dimexpr#2\spfacdimen\relax \knbscode\handledfont#1\dimexpr#3\spfacdimen\relax \stbscode\handledfont#1\dimexpr#4\spfacdimen\relax \shbscode\handledfont#1\dimexpr#5\spfacdimen\relax} \def\dodoinheritspacefactor#1#2% {\sfcode#1\plusthousand \knbccode\handledfont#1\knbccode\handledfont#2\relax \knbscode\handledfont#1\knbscode\handledfont#2\relax \stbscode\handledfont#1\stbscode\handledfont#2\relax \shbscode\handledfont#1\shbscode\handledfont#2\relax} \def\definespacefactor#1 #2 #3 #4 #5 % {\setfonttoks \let\inherithandling\inheritspacefactor \appendtoks\dosetquartethandling\dododefinespacefactor#1 #2 #3 #4 #5 \to\fonttoks} \def\inheritspacefactor#1 #2 % {\setfonttoks \appendtoks\doinhsomehandling\dodoinheritspacefactor#1 #2 \to\fonttoks} \fi \ifx\setspacehandling\gobbleoneargument \else \appendtoks \setspacehandling\askedfonthandling \to \everyenablefonthandling \fi % font attributes \let\notagcode\minusone \ifx\tagcode\undefined \def\settagcode #1 #2 {} \else \def\dodosettagcode#1#2% {\tagcode\handledfont#1 #2\relax} \def\settagcode#1 #2 % {\setfonttoks \appendtoks\dosetsomehandling\dodosettagcode#1 #2 \to\fonttoks} \fi % hook into font mechanism \let\fonthandling\empty \def\startfonthandling[#1]% {\def\fonthandling{#1}% \ifcsname\@fha@\fonthandling\endcsname\else \expandafter\newtoks\csname\@fha@\fonthandling\endcsname \fi \setfonttoks} \def\stopfonthandling {\let\fonthandling\empty} \def\setfonttoks {\@EA\let\@EA\fonttoks\csname\@fha@\fonthandling\endcsname} \def\definefonthandling {\dotripleempty\dodefinefonthandling} \def\dodefinefonthandling[#1][#2][#3]% {\ifthirdargument \setvalue{\@fha@\@fha@#1}{#2}% \getparameters [\@fha@\@fha@#1] [\c!type=\v!hanging,% \c!left=1,\c!right=1,% \c!min=20,\c!max=20,\c!step=5,% \c!factor=1,% #3]% \else \setvalue{\@fha@\@fha@\@fha@#1}{#2}% \fi} \def\setupfonthandling {\dodoubleempty\dosetupfonthandling} \def\dosetupfonthandling[#1][#2]% {\getparameters[\@fha@\@fha@#1][#2]} \def\enablehandling {\dodoubleempty\doenablehandling} \def\doenablehandling[#1][#2]% handling / symbolic fontname {\fastenablehandling{#1}{#2}} % for the moment the same as: \def\fastenablehandling#1#2% also gets #2 passed {\edef\askedfonthandling{#1}% \edef\filoffonthandling{#2}% \ifcsname\@fha@\@fha@\@fha@\askedfonthandling\endcsname \@EA\redofastenablehandling \else\ifcsname\@fha@\@fha@\askedfonthandling\endcsname \@EAEAEA\dofastenablehandling \else \@EAEAEA\nofastenablehandling \fi\fi} \def\xfastenablehandling#1% {\edef\askedfonthandling{#1}% \ifcsname\@fha@\@fha@\askedfonthandling\endcsname \@EA\dofastenablehandling \else \@EA\nofastenablehandling \fi} \def\redofastenablehandling {\startdirectcharacters \edef\fonthandling{\csname\@fha@\@fha@\@fha@\askedfonthandling\endcsname}% \rawprocesscommacommand[\fonthandling]\xfastenablehandling \stopdirectcharacters} \def\dofastenablehandling {\startdirectcharacters \the\everyenablefonthandling \edef\fonthandling{\csname\@fha@\@fha@\askedfonthandling\endcsname}% \checkfonthandling\filoffonthandling \rawprocesscommacommand[\fonthandling]\dodoenablehandling \registerfonthandling\filoffonthandling \stopdirectcharacters} \def\nofastenablehandling {\the\everyenablefonthandling \let\fonthandling\askedfonthandling \dodoenablehandling\fonthandling} \def\dodoenablehandling#1% {\ifcsname\@fha@#1\endcsname \the\csname\@fha@#1\endcsname \fi} %D We must not use \type {\purefontname} here (was a bug)! % not robust as long as tex reuses definitions internally % % \def\checkfonthandling#1% we need a fast compare % {\doifelsevalue{#1\s!handling\c!file}{\fontname\font} % \skiphandlingdeftrue\skiphandlingdeffalse} % % \def\registerfonthandling#1% % {\@EA\xdef\csname#1\s!handling\c!file\endcsname{\fontname\font}} \def\checkfonthandling #1{\skiphandlingdeffalse} \let\registerfonthandling \gobbleoneargument %D This one makes live easier (less definitions): \def\inherithandling #1 #2 % {\inheritprotrudefactor #1 #2 % \inheritadjustfactor #1 #2 } %D \macros %D {usehandling} %D %D Handling definitions are collected in dedicated files and %D loaded only once: %D %D % \showsetup{usehandling} \def\dousehandling#1% is the same as encoding {\doifundefined{\c!file\f!handlingprefix#1}% {\letvalueempty{\c!file\f!handlingprefix#1}% \makeshortfilename[\truefilename{\f!handlingprefix#1}]% \startreadingfile \readsysfile{\shortfilename.mkii} {\showmessage\m!handlings2{#1}} {\showmessage\m!handlings3{#1}}% \stopreadingfile}} \def\usehandling[#1]% {\processcommalist[#1]\dousehandling} %D New: \def\overloadcharacter#1 #2 % {\setfonttoks \doifnumberelse{\string#2} {\appendtoks\dooverloadcharacter{#1}{\char#2 }\to\fonttoks} {\appendtoks\dooverloadcharacter{#1}{#2}\to\fonttoks}} \def\dooverloadcharacter#1% {\setvalue{\characterencoding\string#1}} %D Let's now see if this macro works: % \setupfonthandling % [\s!default] % [\c!links=1,\c!rechts=1,\c!min=20,\c!max=20,\c!stap=5] % Beware of fonttoks: % % \startfonthandling[morespacing] % \appendtoks % \fontdimen2\handledfont=.50em % \fontdimen3\handledfont=.25em % \fontdimen4\handledfont=.25em % \to \fonttoks % \stopfonthandling % % \definefonthandling [morespacing] [morespacing] % % \definefontsynonym[xtexnansi-lmr7][texnansi-lmr7][handling=morespacing] % \definefont[crap][texnansi-lmr7] % % \crap \the\fontdimen2\font, \the\fontdimen3\font, \the\fontdimen4\font \usehandling [def] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-xsl.mkii0000644000175000017500000001255614536300610024733 0ustar hillehille%D \module %D [ file=xtag-xsl, %D version=2002.03.07, %D title=\CONTEXT\ XML Support, %D subtitle=XSLT processing, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % FOR THIS TO WORK YOU NEED A PROPER cp8bit VECTOR % % 8 bit support has been messed up in a couple of distributions % % 0x00 0x00 % 0x01 0x01 % 0x02 0x02 % etc %D This module is rather experimental so users may expect %D changes in the interface. \unprotect \definesystemvariable {xl} \newif\iftraceXSLTprocessing % \traceXSLTprocessingtrue \def\XSLTscriptfile{\bufferprefix xlscript} % to be sped up: \def\presetXSLTcharacters {\let\par\empty \def\{{\rawcharacter{`\{}}% \string^^.. \def\}{\rawcharacter{`\}}}% \string^^.. \def\\{\rawcharacter{`\\}}}% \string^^.. \def\obeyXSLTcharacters {\setnaturalcatcodes \catcode`\\=\escapecatcode} \long\def\startXSLTscript #1 #2 % {\bgroup \obeyXSLTcharacters \doifelse{#2}{capsule}\dostartXSLTscript\nostartXSLTscript#1 #2 } \long\def\dostartXSLTscript#1 #2 #3 % {\obeylines \dodostartXSLTscript#1 #2 #3 } \long\def\dodostartXSLTscript#1 #2 #3 #4\stopXSLTscript {\egroup \long\setvalue{\??xl#1}{\doXSLTscript{#3}{#4}}} \long\def\nostartXSLTscript {\obeylines \nonostartXSLTscript} \long\def\nonostartXSLTscript#1 #2\stopXSLTscript {\egroup \long\setvalue{\??xl#1}{\doXSLTscript\empty{#2}}} \long\def\donormalXSLTscript#1#2% {\includeXSLTscript{b-capsule-#1}% #2% \includeXSLTscript{e-capsule-#1}} \def\includeXSLTscript#1% {\csname\ifcsname\??xl#1\endcsname\??xl#1\else\s!empty\fi\endcsname} \startXSLTscript b-capsule-1.0 \stopXSLTscript \startXSLTscript e-capsule-1.0 \stopXSLTscript \def\applyXSLTscript {\dotripleempty\doapplyXSLTscript} \long\def\doapplyXSLTscript[#1][#2][#3]% {\ifthirdargument \bgroup \let\doXSLTscript\donormalXSLTscript \presetXSLTcharacters \donefalse \def\docommand##1{\dodoapplyXSLTscript{##1}{\ifdone#3\else#2\fi}{#3}\donetrue}% \processcommalist[#1]\docommand \egroup \else \applyXSLTscript[#1][#2][#2]% \fi} % Since a \XML\ file is loaded into memory as a tree, we % can safely use the same input and output filename, thereby % avoiding temporary files. \def\dodoapplyXSLTscript#1#2#3% {\bgroup \doifundefined{\??xl#1}% {\writestatus{XSLT}{unknown script #1}} {\writestatus{XSLT}{convert #2 into #3 using #1}% \edef\par{\outputnewlinechar}% \edef\!!stringc{\getvalue{\??xl#1}}% \immediate\openout\scratchwrite=\XSLTscriptfile.xsl \immediate\write\scratchwrite{\!!stringc}% \immediate\closeout\scratchwrite \iftraceXSLTprocessing\wait\fi \executeXSLT{\XSLTscriptfile.xsl}{#2}{#3}% \iftraceXSLTprocessing\wait\fi}% \egroup} \def\executeXSLT#1#2#3% script input output {\executesystemcommand{xsltproc -o #3 #1 #2}} \long\def\applyXSLTtobuffer {\dodoubleempty\doapplyXSLTtobuffer} \long\def\doapplyXSLTtobuffer[#1][#2]% {\expanded{\applyXSLTscript[#1][\TEXbufferfile{\ifsecondargument#2\else\jobname\fi}]}} \def\resetXSLTscripting#1% {\setgvalue{\??xl\s!dummy}{\doXSLTscript{#1}{}}} \resetXSLTscripting{1.0} \def\startXSLTscripting {\bgroup \obeyXSLTcharacters \obeylines \dostartXSLTscripting} \long\def\dostartXSLTscripting#1\stopXSLTscripting {\egroup \let\doXSLTscript\doextendXSLTscript \getvalue{\??xl\s!dummy}{#1}} \long\def\doextendXSLTscript#1#2#3% {\setgvalue{\??xl\s!dummy}{\doXSLTscript{#1}{#2#3}}} \def\applyXSLTscripting {\applyXSLTscript[\s!dummy]} \protect \doifnotmode{demo}{\endinput} % \def\Whow{Whow It Works} % % \startXSLTscript test capsule 1.0 % % % % \Whow \\ # % % % % % % \stopXSLTscript % % \applyXSLTscript [test] [figtest.xml] [crap.tmp] \typefile{crap.tmp} % % \startbuffer % world % \stopbuffer % % \applyXSLTtobuffer[test] \typebuffer % % \startXSLTscripting % % \stopXSLTscripting % % \startXSLTscripting % % % % \stopXSLTscripting % % \startXSLTscripting % % % % \stopXSLTscripting % % \applyXSLTscripting [figtest.xml] [crap.tmp] \typefile{crap.tmp} \starttext \startXSLTscript another name: \\par \stopXSLTscript \applyXSLTscript [another] [cont-en.xml] [whatever.tmp] \readfile{whatever.tmp}{}{} \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/anch-snc.mkii0000644000175000017500000001312014536300610024642 0ustar hillehille%D \module %D [ file=anch-snc, %D version=2003.12.01, %D title=\CONTEXT\ Anchoring Macros, %D subtitle=Synchronization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Anchoring Macros / Synchronization} \unprotect \ifx\s!set \undefined \def\s!set {set} \fi \ifx\s!reset \undefined \def\s!reset {reset} \fi \ifx\s!preset \undefined \def\s!preset {preset} \fi \ifx\s!syncpos\undefined \def\s!syncpos{syncpos} \fi \def\definesyncpositions[#1]% {\setcounter{\s!num:\s!syncpos:#1}{0}% \doglobal\appendtoksonce\getvalue {\s!reset:\s!syncpos:#1}\to\resetsyncpositions \doglobal\appendtoksonce\getvalue{\s!preset:\s!syncpos:#1}\to\presetsyncpositions \setgvalue{\s!syncpos:#1}{sync_n[#1] := 0 ;}% \setgvalue{\s!set:\s!syncpos:#1}{\dosetsyncpositions{#1}}} \def\syncposition {\dodoubleempty\dosyncposition} \def\dosyncposition[#1][#2]% {\letgvalue{\s!reset:\s!syncpos:#1}\relax \letgvalue{\s!preset:\s!syncpos:#1}\relax \dontleavehmode \dodosyncposition{#1}{#2}\s!set \ignorespaces} \def\doifelselastsyncposition#1#2% {\doifelse{\lastsyncclass\lastsyncposition}{#1#2}} \def\dodosyncposition#1#2#3% {\letgvalue{\s!reset:\s!syncpos:#1}\relax \letgvalue{\s!preset:\s!syncpos:#1}\relax \ifundefined{\s!syncpos:#1}% \strut \else \pluscounter{\s!num:\s!syncpos:#1}% \setsyncpositions{#1}% % option: geen w/h, alleen p 0 0 0 data \setpositionplus {\s!syncpos:#1:\countervalue{\s!num:\s!syncpos:#1}}% {#2}% \hbox{\strut\traceposstring\llap\green{#3/\countervalue{\s!num:\s!syncpos:#1}/#1/#2>>}}% \fi} \def\setsyncpositions#1% {\enabletextarearegistration \getvalue {\s!set:\s!syncpos:#1}% \letgvalue{\s!set:\s!syncpos:#1}\relax} \def\dosetsyncpositions#1% {\startnointerference % removing out of sync can best be done in mp \!!dimena\maxdimen \!!counta\zerocount \!!countc\zerocount \doloop {\doifpositionelse{\s!syncpos:#1:\recurselevel} {\!!dimenb\MPy{\s!syncpos:#1:\recurselevel}\relax \!!countb\MPp{\s!syncpos:#1:\recurselevel}\relax \ifnum\!!countb=\!!counta % same page \ifdim\!!dimenb>\!!dimena \donefalse % out of order nodes \else \donetrue % nodes in order \fi \else \donetrue % different page \fi \ifdone \!!counta\!!countb \!!dimena\!!dimenb \advance\!!countc\plusone \edef\!!stringa{[#1][\the\!!countc]:=}% \edef\!!stringc{\s!syncpos:#1:\the\!!countc}% \edef\!!stringd{\MPplus\!!stringc{1}{0}}% \setxvalue{\s!syncpos:#1}% {\getsyncpositions{#1}% sync_p \!!stringa \MPp \!!stringc ; sync_xy\!!stringa \MPxy\!!stringc ; sync_w \!!stringa \MPw \!!stringc ; sync_h \!!stringa \MPh \!!stringc ; sync_d \!!stringa \MPd \!!stringc ; \ifx\!!stringd\empty \else sync_t \!!stringa \MPplus\!!stringc{1}{0} ; \fi}% \fi} {\setxvalue{\s!syncpos:#1}% {\getsyncpositions{#1}% sync_n[#1] := \the\!!countc ;} \exitloop}}% \stopnointerference} \def\getsyncpositions#1% {\getvalue{\s!syncpos:#1}} \newtoks\resetsyncpositions \newtoks\presetsyncpositions \def\resyncposition {\dodoubleargument\doresyncposition} \def\presyncposition{\dodoubleargument\dopresyncposition} \def\dodoresyncposition #1#2{\dodosyncposition{#1}{#2}\s!reset} \def\dodopresyncposition#1#2{\dodosyncposition{#1}{#2}\s!preset} \def\doresyncposition [#1][#2]{\setxvalue{\s!reset :\s!syncpos:#1}{\noexpand\dodoresyncposition{#1}{#2}}} \def\dopresyncposition[#1][#2]{\setxvalue{\s!preset:\s!syncpos:#1}{\noexpand\dodopresyncposition{#1}{#2}}} \def\flushsyncpositions % this order ! {\begingroup \the\presetsyncpositions \the\resetsyncpositions \endgroup} \def\flushsyncxxsets#1% {\setbox\scratchbox\hbox{\the#1}% \ifvoid\scratchbox\else \prewordbreak \let\prewordbreak\relax % only once \smashbox\scratchbox \box\scratchbox \fi} \def\flushsyncresets {\flushsyncxxsets\resetsyncpositions } \def\flushsyncpresets{\flushsyncxxsets\presetsyncpositions} % \appendtoks \flushsyncpositions \to \everypar % \appendtoks \flushsyncpositions \to \everyheadstart % \explicitneverypar -> in grid snapper, eerst testen % % \appendtoks \flushsyncpositions \to \neverypar \protect \endinput \starttext \definesyncpositions[1] \startuseMPgraphic{sync} StartPage ; \getsyncpositions{1} ; SyncThreshold := 2LineHeight ; SyncLeftOffset := -.5LeftMarginDistance ; % SetSyncThreshold(1,3,3LineHeight) ; SyncWidth := - (BackSpace + SyncLeftOffset) ; SetSyncColor(1,1,\MPcolor{red}) ; SetSyncColor(1,2,\MPcolor{green}) ; SetSyncColor(1,3,\MPcolor{blue}) ; SetSyncColor(1,4,\MPcolor{yellow}) ; PrepareSyncTasks(1,true,true,false) ; for i = 1 upto NOfSyncPaths : fill SyncPaths[i] withcolor TheSyncColor(CurrentSyncClass,sync_t[CurrentSyncClass][SyncTasks[i]]) ; endfor ; setbounds currentpicture to Page ; StopPage ; \stopuseMPgraphic \defineoverlay[tempoverlay][\useMPgraphic{sync}] \setupbackgrounds[page][background=tempoverlay] \syncposition[1][1] \input ward \endgraf \syncposition[1][2] \input ward \endgraf \syncposition[1][3] \input ward \endgraf \syncposition[1][4] \input ward \endgraf \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-ura.mkii0000644000175000017500000001355114536300610024666 0ustar hillehille%D \module %D [ file=lang-sla, %D version=1997.09.03, %D title=\CONTEXT\ Language Macros, %D subtitle=Uralic Languages, %D author=Hans Hagen / Tobias Burnus, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % Todo: replace \'.. by \namedglyph \writestatus{loading}{ConTeXt Language Macros / Uralic Languages} %D The framework of this module is set up by Hans Hagen while %D many of the first translations were done by Tobias. Later %D on, corrections were made by users. If you have suggestions, %D or feel that your name missing here, don't hesitate to send %D us an email. %D %D \starttabulate[|lB|l|] %D \NC Finnish \NC \NC \NR %D \NC Hungarian \NC Balazs Nagy \NC \NR %D \stoptabulate % Cheremiss, Estonian, Finnish, Karelian, Laap, Mordvinian, % Permian tongues, Hungarian, Ostyak, Vogul, Samoyed \unprotect \installlanguage [\s!fi] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!year,\ ,\v!month,\ ,\v!day}] \installlanguage [\s!hu] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\lowerleftsingleninequote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\lowerleftdoubleninequote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!year,.,\ ,\v!month,\ ,\v!day,.}, \s!mapping=ec, \s!encoding=ec] \installlanguage [finish] [\s!fi] \installlanguage [hungarian] [\s!hu] \setupheadtext [\s!fi] [\v!content=Sis\"allys] \setupheadtext [\s!fi] [\v!tables=Taulukkoj] \setupheadtext [\s!fi] [\v!figures=Kuvi] \setupheadtext [\s!fi] [\v!graphics=Grafiikkaoi] \setupheadtext [\s!fi] [\v!intermezzi=Intermezzos] \setupheadtext [\s!fi] [\v!index=Indeksiluku] \setupheadtext [\s!fi] [\v!abbreviations=Lyhennyksi] \setupheadtext [\s!fi] [\v!logos=Vertauskuva] \setupheadtext [\s!fi] [\v!units=Yksik\"ot] \setupheadtext [\s!hu] [\v!content=Tartalom] \setupheadtext [\s!hu] [\v!tables=T\'abl\'azatok] \setupheadtext [\s!hu] [\v!figures=\'Abr\'ak] \setupheadtext [\s!hu] [\v!graphics=Grafik\'ak] \setupheadtext [\s!hu] [\v!intermezzi=Intermezzok] \setupheadtext [\s!hu] [\v!index=Index] \setupheadtext [\s!hu] [\v!abbreviations=R\"ovid\'it\'esek] \setupheadtext [\s!hu] [\v!logos=Fejl\'ecek] \setupheadtext [\s!hu] [\v!units=M\'ert\'ekegys\'egek] \setuplabeltext [\s!fi] [\v!table=Taulukko ] \setuplabeltext [\s!fi] [\v!figure=Kuva ] \setuplabeltext [\s!fi] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!fi] [\v!graphic=Grafiikka ] \setuplabeltext [\s!fi] [\v!chapter=] \setuplabeltext [\s!fi] [\v!section=] \setuplabeltext [\s!fi] [\v!subsection=] \setuplabeltext [\s!fi] [\v!subsubsection=] \setuplabeltext [\s!fi] [\v!subsubsubsection=] \setuplabeltext [\s!fi] [\v!appendix=] \setuplabeltext [\s!fi] [\v!part=Osa ] \setuplabeltext [\s!fi] [\v!line=rivi ] \setuplabeltext [\s!fi] [\v!lines=rivie ] \setuplabeltext [\s!hu] [\v!table={,.~t\'abl\'azat:}] \setuplabeltext [\s!hu] [\v!figure={,.~\'abra:}] \setuplabeltext [\s!hu] [\v!intermezzo={,.~intermezzo:}] \setuplabeltext [\s!hu] [\v!graphic={,.~k\'ep:}] \setuplabeltext [\s!hu] [\v!chapter={,.~fejezet:}] \setuplabeltext [\s!hu] [\v!section={,.}] \setuplabeltext [\s!hu] [\v!subsection={,.}] \setuplabeltext [\s!hu] [\v!subsubsection={,.}] \setuplabeltext [\s!hu] [\v!subsubsubsection={,.}] \setuplabeltext [\s!hu] [\v!appendix=] \setuplabeltext [\s!hu] [\v!part={,.~r\'esz:}] \setuplabeltext [\s!hu] [\v!line={,.~sor:}] \setuplabeltext [\s!hu] [\v!lines=sorok] \setuplabeltext [\s!fi] [\v!january=tammikuu] \setuplabeltext [\s!fi] [\v!february=helmikuu] \setuplabeltext [\s!fi] [\v!march=maaliskuu] \setuplabeltext [\s!fi] [\v!april=huhtikuu] \setuplabeltext [\s!fi] [\v!may=toukokuu] \setuplabeltext [\s!fi] [\v!june=kes\"akuu] \setuplabeltext [\s!fi] [\v!july=hein\"akuu] \setuplabeltext [\s!fi] [\v!august=elokuu] \setuplabeltext [\s!fi] [\v!september=syyskuu] \setuplabeltext [\s!fi] [\v!october=lokakuu] \setuplabeltext [\s!fi] [\v!november=marraskuu] \setuplabeltext [\s!fi] [\v!december=joulukuu] \setuplabeltext [\s!hu] [\v!january=janu\'ar] \setuplabeltext [\s!hu] [\v!february=febru\'ar] \setuplabeltext [\s!hu] [\v!march=m\'arcius] \setuplabeltext [\s!hu] [\v!april=\'aprilis] \setuplabeltext [\s!hu] [\v!may=m\'ajus] \setuplabeltext [\s!hu] [\v!june=j\'unius] \setuplabeltext [\s!hu] [\v!july=j\'ulius] \setuplabeltext [\s!hu] [\v!august=augusztus] \setuplabeltext [\s!hu] [\v!september=szeptember] \setuplabeltext [\s!hu] [\v!october=okt\'ober] \setuplabeltext [\s!hu] [\v!november=november] \setuplabeltext [\s!hu] [\v!december=december] \setuplabeltext [\s!fi] [\v!sunday=sunnuntai] \setuplabeltext [\s!fi] [\v!monday=maanantai] \setuplabeltext [\s!fi] [\v!tuesday=tiistai] \setuplabeltext [\s!fi] [\v!wednesday=keskiviikko] \setuplabeltext [\s!fi] [\v!thursday=torstai] \setuplabeltext [\s!fi] [\v!friday=perjantai] \setuplabeltext [\s!fi] [\v!saturday=lauantai] \setuplabeltext [\s!hu] [\v!sunday=vas\'arnap] \setuplabeltext [\s!hu] [\v!monday=h\'etf\H{o}] \setuplabeltext [\s!hu] [\v!tuesday=kedd] \setuplabeltext [\s!hu] [\v!wednesday=szerda] \setuplabeltext [\s!hu] [\v!thursday=cs\"ut\"ort\"ok] \setuplabeltext [\s!hu] [\v!friday=p\'entek] \setuplabeltext [\s!hu] [\v!saturday=szombat] %D \ShowAllLanguageValues [\s!fi] [finnish] {Finnish} {phone} %D \ShowAllLanguageValues [\s!hu] [hungarian] {Hungarian} {rhapsody} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/java-exa.mkii0000644000175000017500000002774614536300610024667 0ustar hillehille%D \module %D [ file=java-exa, %D version=2002.??.??, %D title=\CONTEXT\ JavaScript Macros, %D subtitle=Example Support, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % XFDF versus HTML % localhost versus remote versus set % filename | filename-nr => name % fakename | fakename-nr => file upload, unless localhost % % we erase the list because otherwise we end up in browser remembering % problems; also, it is not possible to set upload fields 'manually' \startJSpreamble request_1 used now var example_method = "HTML" ; var example_host = "" ; var example_port = "" ; var example_url = "" ; var example_file = "" ; var example_log = true ; % false function stripped_exa_value( name ) { f = this.getField(name) ; if (f) { str = f.value ; if (str.indexOf(name+'-')==0) { str = str.substr(name.length+1) ; } return str ; } else { return "" ; } } function identify_example_url ( ) { if (example_log) { console.clear ; console.println("base url: "+this.baseURL) ; console.println("this url: "+this.URL) ; } if (this.baseURL != "") { example_url = this.baseURL ; } else { if (this.URL != "") { example_url = this.URL } } if (example_url.indexOf("file://")>=0) { example_url = "" ; } str = stripped_exa_value("examplehost") ; if (str != "auto") { example_host = str ; if (str == "localhost") { example_port = "8061" } } str = stripped_exa_value("exampleport") ; if (str != "auto") { example_port = str ; } if (example_log) { console.println("example_url: "+example_url) ; console.println("example_host: "+example_host) ; console.println("example_port: "+example_port) ; } } function check_example_url ( url ) { if (url.indexOf("file://")>=0) { url = "http://localhost:8061" ; console.println("file url replaced by: "+url) ; } else { if (url.indexOf("://")<0) { url = "http://" + url ; } if (example_log) { console.println("url before check: "+url) ; } % url = url.replace(/(http:\\\/\\\/.+)(\\\/.*$)/, "$1") ; url = url.replace(/(https*:\\\/\\\/.+?)(\\\/.*$)/, "$1/exarequest") ; if (example_log) { console.println("url after check: "+url) ; } } return url ; } function set_example_xfdf ( method ) { example_method = method ; } function set_example_file ( file ) { example_method = file ; } function set_example_host ( host ) { example_host = host ; } function set_example_port ( port ) { example_host = host ; } function do_erase_example_file(tag) { f = this.getField(tag) ; if (f) { f.value = "" ; } } function do_erase_example_list(tag) { for (i=1;i<=100;i++) { f = this.getField(tag+"-"+i) ; if (f) { f.value = "" ; } else { return } } } function do_submit_example_url ( url ) { if ((example_method == "XFDF" ) || (url.indexOf("localhost")>=0)) { do_erase_example_file("fakename") ; do_erase_example_list("fakename") ; } url = check_example_url(url) ; if (example_log) { console.println("submitting form to "+url+" using method "+example_method) ; } if (example_file != "") { url = url + "/" + example_file ; } % we need the bFDF for acrobat 5 this.submitForm({cURL : url, bFDF : false, cSubmitAs : example_method}) ; } function submit_example_form ( ) { identify_example_url() ; if (example_host != "") { if (example_port != "") { do_submit_example_url(example_host+":"+example_port) ; } else { do_submit_example_url(example_host) ; } } else { if (example_url != "") { do_submit_example_url(example_url) ; } else { if (example_port != "") { do_submit_example_url("localhost"+":"+example_port) ; } else { do_submit_example_url("localhost:8061") ; % local exampler } } } resetfilename () ; } function submit_form ( host, port) { set_example_host(host) ; set_example_post(post) ; submit_example_form ; } \stopJSpreamble \startJSpreamble request_2 used now var exa_command = "" ; var exa_option = "" ; var exa_filename = "" ; var exa_filelist = "" ; var exa_registered = "" ; function set_request (command,option) { exa_command = command ; if (exa_command == "") { exa_option = option ; } else { if (option == "") { exa_option = "" ; } else { if (option.indexOf("--")<0) { exa_option = "--action=" + option ; } else { exa_option = option ; } } } } function assemble_request ( ) { v = this.getField('filename') ; if (v) { exa_filename = v.value ; } v = this.getField('filelist') ; if (v) { exa_filelist = v.value ; } % exa_filename = exa_filename.replace(/\\\\/g,'/') ; % exa_filelist = exa_filelist.replace(/\\\\/g,'/') ; str = "\\n" ; str = str+"" ; if (exa_filelist == "") { exa_filelist = exa_registered ; } else { if (exa_registered != "") { exa_filelist = exa_filelist + "\\n" + exa_registered ; } } if (exa_command != "") { str = str+""+exa_command+"" ; } if (exa_option != "") { str = str+""+exa_option+"" ; } if (exa_filename != "") { str = str+""+exa_filename+"" ; } var fls = "" ; if (exa_filelist != "") { % old method, soon obsolete lst = exa_filelist.split(/\\s/) ; for (i=0;i"+lst[i]+"" ; } } else { if (exa_multiple) { for (i=1;i<=100;i++) { % console.println("file field "+i) ; f = this.getField("filename-"+ i) ; % if (f) { if (f.value != "") { % if (g) { if (g.value == "") { % fls = fls+""+f.value+"" ; % } else { % fls = fls+""+f.value+"" ; % } } else { % fls = fls+""+f.value+"" ; % } % } } if (f) { if (f.value != "") { fls = fls + "" ; } else { % console.println("b") ; fls = fls + " label='" + g.value + "'>" ; } } else { % console.println("c") ; fls = fls + ">" ; } fls = fls + f.value + "" ; } } } } } if (fls != "") { str = str + "" + fls + "" ; } str = str + "" ; v = this.getField('exa:request') ; if (v) { v.value = str ; } } \stopJSpreamble \startJSpreamble request_3 used now var exa_multiple = false ; function setfilename ( suffixes ) { if (event.targetName) { var name = event.targetName ; var fake = name.replace(/filename/,"fakename") ; } else { var name = 'filename' ; var fake = 'fakename' ; } f = this.getField(fake) ; if (f) { f.browseForFileToSubmit() ; if ((suffixes != "") && (f.value != "")) { % s = suffixes.replace(/,/g,"|") ; r = new RegExp() ; s = "\\\\.(" + s + ")$" ; r.compile(s, "i") ; if (f.value.search(r)<=0) { f.value = "" ; app.alert('This filetype is not permitted.') ; % % lst = suffixes.split(/,/) ; % ok = false ; % for (i=0;i=0) { % f.value = "" ; % } % } } this.dirty = false ; } function addfilename () { if (exa_multiple) { h = this.getField("filelist") ; g = this.getField("filename") ; if ((g) && (h)) { str = g.value ; if (h.value == "") { h.value = str ; } else { h.value = h.value + "\\n" + str ; } g.value = "" ; this.value = "" ; } } this.dirty = false ; } % this only works with client that assembles request function registerfilename (str) { if (str!="") { h = this.getField("filelist") ; if (h) { if (h.value != "") { h.value = h.value + "\\n" ; } h.value = h.value + str ; } else { if (exa_registered != "") { exa_registered = exa_registered + "\\n" ; } exa_registered = exa_registered + str ; } } console.show ; console.println('registered files') ; console.println("file: "+str) ; console.println("list: "+exa_registered) ; this.dirty = false ; } function checkfilename () { } function getfilename ( suffixes ) { setfilename(suffixes) ; checkfilename() ; addfilename() ; } function resetfilename () { do_erase_example_file("fakename") ; do_erase_example_file("filename") ; do_erase_example_file("filelist") ; do_erase_example_list("filename") ; do_erase_example_list("fakename") ; } \stopJSpreamble \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-cas.mkii0000644000175000017500000001102514536300610024642 0ustar hillehille%D \module %D [ file=enco-cas, %D version=2005.08.23, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Named Glyph Case Mapping, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D For quite some years \CONTEXT\ used a rather compact way of %D defining encoded characters as well as case maps. When late %D 2000 more advanced remapping features were needed (like pdf %D unicode remapping), named glyphs were introduced to keep the %D coding tables more readable. At the same time, we introduced %D named glyph case mapping. \defineULcharacter Acircumflex acircumflex \defineULcharacter Ccircumflex ccircumflex \defineULcharacter Ecircumflex ecircumflex \defineULcharacter Gcircumflex gcircumflex \defineULcharacter Hcircumflex hcircumflex \defineULcharacter Icircumflex icircumflex \defineULcharacter Jcircumflex jcircumflex \defineULcharacter Ocircumflex ocircumflex \defineULcharacter Scircumflex scircumflex \defineULcharacter Ucircumflex ucircumflex \defineULcharacter Wcircumflex wcircumflex \defineULcharacter Ycircumflex ycircumflex \defineULcharacter Agrave agrave \defineULcharacter Egrave egrave \defineULcharacter Igrave igrave \defineULcharacter Ograve ograve \defineULcharacter Ugrave ugrave \defineULcharacter Ygrave ygrave \defineULcharacter Atilde atilde \defineULcharacter Itilde itilde \defineULcharacter Otilde otilde \defineULcharacter Ntilde ntilde \defineULcharacter Utilde utilde \defineULcharacter Adiaeresis adiaeresis \defineULcharacter Ediaeresis ediaeresis \defineULcharacter Idiaeresis idiaeresis \defineULcharacter Odiaeresis odiaeresis \defineULcharacter Udiaeresis udiaeresis \defineULcharacter Ydiaeresis ydiaeresis \defineULcharacter Aacute aacute \defineULcharacter Cacute cacute \defineULcharacter Eacute eacute \defineULcharacter Iacute iacute \defineULcharacter Lacute lacute \defineULcharacter Nacute nacute \defineULcharacter Oacute oacute \defineULcharacter Racute racute \defineULcharacter Sacute sacute \defineULcharacter Uacute uacute \defineULcharacter Yacute yacute \defineULcharacter Zacute zacute \defineULcharacter Dstroke dstroke \defineULcharacter Hstroke hstroke \defineULcharacter Lstroke lstroke \defineULcharacter Lslash lslash \defineULcharacter Ostroke ostroke \defineULcharacter Tstroke tstroke \defineULcharacter Cdotaccent cdotaccent \defineULcharacter Edotaccent edotaccent \defineULcharacter Gdotaccent gdotaccent \defineULcharacter Idotaccent idotaccent \defineULcharacter Zdotaccent zdotaccent \defineULcharacter Amacron amacron \defineULcharacter Emacron emacron \defineULcharacter Imacron imacron \defineULcharacter Omacron omacron \defineULcharacter Umacron umacron \defineULcharacter Ccedilla ccedilla \defineULcharacter Gcedilla gcedilla \defineULcharacter Kcedilla kcedilla \defineULcharacter Lcedilla lcedilla \defineULcharacter Ncedilla ncedilla \defineULcharacter Rcedilla rcedilla \defineULcharacter Scedilla scedilla \defineULcharacter Tcedilla tcedilla \defineULcharacter Ccommaaccent ccommaaccent \defineULcharacter Gcommaaccent gcommaaccent \defineULcharacter Kcommaaccent kcommaaccent \defineULcharacter Lcommaaccent lcommaaccent \defineULcharacter Ncommaaccent ncommaaccent \defineULcharacter Rcommaaccent rcommaaccent \defineULcharacter Scommaaccent scommaaccent \defineULcharacter Tcommaaccent tcommaaccent \defineULcharacter Ohungarumlaut ohungarumlaut \defineULcharacter Uhungarumlaut uhungarumlaut \defineULcharacter Aogonek aogonek \defineULcharacter Eogonek eogonek \defineULcharacter Iogonek iogonek \defineULcharacter Uogonek uogonek \defineULcharacter Aring aring \defineULcharacter Uring uring \defineULcharacter Abreve abreve \defineULcharacter Ebreve ebreve \defineULcharacter Gbreve gbreve \defineULcharacter Ibreve ibreve \defineULcharacter Obreve obreve \defineULcharacter Ubreve ubreve \defineULcharacter Ccaron ccaron \defineULcharacter Dcaron dcaron \defineULcharacter Ecaron ecaron \defineULcharacter Lcaron lcaron \defineULcharacter Ncaron ncaron \defineULcharacter Rcaron rcaron \defineULcharacter Scaron scaron \defineULcharacter Tcaron tcaron \defineULcharacter Zcaron zcaron \defineULcharacter dotlessI dotlessi \defineULcharacter dotlessJ dotlessj \defineULcharacter AEligature aeligature \defineULcharacter OEligature oeligature \defineULcharacter Ssharp ssharp \defineULcharacter IJligature ijligature \defineULcharacter Eth eth \defineULcharacter Thorn thorn \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/type-set.mkii0000644000175000017500000000564614536300610024740 0ustar hillehille%D \module %D [ file=type-set, %D version=2005.02.04, % moved from ini/def %D title=\CONTEXT\ Typescript Macros, %D subtitle=Default Settings, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \definetypescriptprefix [serif] [Serif] \definetypescriptprefix [sans] [Sans] \definetypescriptprefix [mono] [Mono] \definefontsynonym [DefaultFont] [cmvtt10] \startsetups [font:fallback:serif] \definefontsynonym [Serif] [DefaultFont] \definefontsynonym [SerifBold] [Serif] \definefontsynonym [SerifItalic] [Serif] \definefontsynonym [SerifSlanted] [SerifItalic] \definefontsynonym [SerifBoldItalic] [Serif] \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic] \definefontsynonym [SerifCaps] [Serif] \stopsetups \startsetups [font:fallback:sans] \definefontsynonym [Sans] [DefaultFont] \definefontsynonym [SansBold] [Sans] \definefontsynonym [SansItalic] [Sans] \definefontsynonym [SansSlanted] [SansItalic] \definefontsynonym [SansBoldItalic] [Sans] \definefontsynonym [SansBoldSlanted] [SansBoldItalic] \definefontsynonym [SansCaps] [Sans] \stopsetups \startsetups [font:fallback:mono] \definefontsynonym [Mono] [DefaultFont] \definefontsynonym [MonoBold] [Mono] \definefontsynonym [MonoItalic] [Mono] \definefontsynonym [MonoSlanted] [MonoItalic] \definefontsynonym [MonoBoldItalic] [Mono] \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic] \definefontsynonym [MonoCaps] [Mono] \stopsetups \startsetups [font:allbold:serif] \definefontsynonym [Serif] [SerifBold] \definefontsynonym [SerifItalic] [SerifBoldItalic] \definefontsynonym [SerifSlanted] [SerifBoldSlanted] %definefontsynonym [SerifCaps] [SerifBold] \stopsetups \startsetups [font:allbold:sans] \definefontsynonym [Sans] [SansBold] \definefontsynonym [SansItalic] [SansBoldItalic] \definefontsynonym [SansSlanted] [SansBoldSlanted] %definefontsynonym [SansCaps] [SansBold] \stopsetups \ifnum\texengine=\xetexengine %usetypescriptfile[\f!typeprefix def] % preloaded in context.mkii %usetypescriptfile[\f!typeprefix tmf] % replaced \usetypescriptfile[\f!typeprefix siz] \usetypescriptfile[\f!typeprefix otf] \usetypescriptfile[\f!typeprefix xtx] \usetypescriptfile[\f!typeprefix loc] \else %usetypescriptfile[\f!typeprefix def] % preloaded in context.mkii %usetypescriptfile[\f!typeprefix tmf] % replaced \usetypescriptfile[\f!typeprefix siz] \usetypescriptfile[\f!typeprefix one] \usetypescriptfile[\f!typeprefix loc] \fi \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mea.mkii0000644000175000017500000002705114536300610024663 0ustar hillehille% filtered from html files by Patrick Ion % % ISOAMSA Characters Extended % % Added Math Symbols: Arrow Relations \defineMMLentity angzarr E248 {unknown} angle with down zig-zag arrow \defineMMLentity cirmid E250 {unknown} circle, mid below \defineMMLentity cudarrl E23E {unknown} left, curved, down arrow \defineMMLentity cudarrr E400 {unknown} right, curved, down arrow \defineMMLentity cularr 21B6 {unknown} left curved arrow \defineMMLentity cularrp E24A {unknown} curved left arrow with plus \defineMMLentity curarr 21B7 {unknown} right curved arrow \defineMMLentity curarrm E249 {unknown} curved right arrow with minus \defineMMLentity Darr 21A1 {unknown} down two-headed arrow \defineMMLentity dArr 21D3 {\Downarrow} down double arrow \defineMMLentity ddarr 21CA {unknown} two down arrows \defineMMLentity DDotrahd E238 {unknown} right arrow with dotted stem \defineMMLentity dfisht E24C {unknown} down fish tail \defineMMLentity dHar E227 {unknown} down harpoon-left, down harpoon-right \defineMMLentity dharl 21C3 {unknown} down harpoon-left \defineMMLentity dharr 21C2 {unknown} down harpoon-rt \defineMMLentity duarr E216 {unknown} down arrow, up arrow \defineMMLentity duhar E217 {unknown} down harp, up harp \defineMMLentity dzigrarr 21DD {unknown} right long zig-zag arrow \defineMMLentity erarr E236 {unknown} equal, right arrow below \defineMMLentity hArr 21D4 {\Leftrightarrow} left and right double arrow \defineMMLentity harr 2194 {\leftrightarrow} left and right arrow \defineMMLentity harrcir E240 {unknown} left and right arrow with a circle \defineMMLentity harrw 21AD {unknown} left and right arr-wavy \defineMMLentity hoarr E243 {unknown} horizontal open arrow \defineMMLentity imof 22B7 {unknown} image of \defineMMLentity lAarr 21DA {unknown} left triple arrow \defineMMLentity Larr 219E {unknown} twoheadleftarrow \defineMMLentity larrbfs E220 {unknown} left arrow-bar, filled square \defineMMLentity larrfs E222 {unknown} left arrow, filled square \defineMMLentity larrhk 21A9 {unknown} left arrow-hooked \defineMMLentity larrlp 21AB {unknown} left arrow-looped \defineMMLentity larrpl E23F {unknown} left arrow, plus \defineMMLentity larrsim E24E {unknown} left arrow, similar \defineMMLentity larrtl 21A2 {unknown} left arrow-tailed \defineMMLentity lAtail E23D {unknown} left double arrow-tail \defineMMLentity latail E23C {unknown} left arrow-tail \defineMMLentity lBarr E206 {unknown} left doubly broken arrow \defineMMLentity lbarr E402 {unknown} left broken arrow \defineMMLentity ldca E21A {unknown} left down curved arrow \defineMMLentity ldrdhar E22C {unknown} left harpoon-down over right harpoon-down \defineMMLentity ldrushar E228 {unknown} left-down-right-up harpoon \defineMMLentity ldsh 21B2 {unknown} left down angled arrow \defineMMLentity lfisht E214 {unknown} left fish tail \defineMMLentity lHar E225 {unknown} left harpoon-up over left harpoon-down \defineMMLentity lhard 21BD {\leftharpoondown} left harpoon-down \defineMMLentity lharu 21BC {\leftharpoonup} left harpoon-up \defineMMLentity lharul E22E {unknown} left harpoon-up over long dash \defineMMLentity llarr 21C7 {unknown} two left arrows \defineMMLentity llhard E231 {unknown} left harpoon-down below long dash \defineMMLentity loarr E242 {unknown} left open arrow \defineMMLentity lrarr 21C6 {unknown} left arr over right arr \defineMMLentity lrhar 21CB {unknown} left harp over r \defineMMLentity lrhard E22F {unknown} right harpoon-down below long dash \defineMMLentity lsh 21B0 {\Lsh} Lsh \defineMMLentity lurdshar E229 {unknown} left-up-right-down harpoon \defineMMLentity luruhar E22B {unknown} left harpoon-up over right harpoon-up \defineMMLentity Map E212 {unknown} twoheaded mapsto \defineMMLentity map 21A6 {\mapsto} mapsto \defineMMLentity midcir E20F {unknown} mid, circle below \defineMMLentity mumap 22B8 {unknown} multimap \defineMMLentity nearhk E20D {unknown} NE arrow-hooked \defineMMLentity neArr 21D7 {unknown} NE pointing double arrow \defineMMLentity nearr 2197 {\nearrow} NE pointing arrow \defineMMLentity nesear E20E {unknown} NE \& SE arrows \defineMMLentity nhArr 21CE {unknown} not left and right double arr \defineMMLentity nharr 21AE {unknown} not left and right arrow \defineMMLentity nlArr 21CD {unknown} not implied by \defineMMLentity nlarr 219A {unknown} not left arrow \defineMMLentity nrArr 21CF {unknown} not implies \defineMMLentity nrarr 219B {unknown} not right arrow \defineMMLentity nrarrc E21D {unknown} not right arrow-curved \defineMMLentity nrarrw E21B {unknown} not right arrow-wavy \defineMMLentity nvhArr* 21CE {unknown} not, vert, left and right double arrow \defineMMLentity nvlArr 21CD {unknown} not, vert, left double arrow \defineMMLentity nvrArr 21CF {unknown} not, vert, right double arrow \defineMMLentity nwarhk E20C {unknown} NW arrow-hooked \defineMMLentity nwArr 21D6 {unknown} NW pointing double arrow \defineMMLentity nwarr 2196 {\nwarrow} NW pointing arrow \defineMMLentity nwnear E211 {unknown} NW \& NE arrows \defineMMLentity olarr 21BA {unknown} left arr in circle \defineMMLentity orarr 21BB {unknown} right arr in circle \defineMMLentity origof 22B6 {unknown} original of \defineMMLentity rAarr 21DB {unknown} right triple arrow \defineMMLentity Rarr 21A0 {unknown} twoheadrightarrow \defineMMLentity rarrap E235 {unknown} approximate, right arrow above \defineMMLentity rarrbfs E221 {unknown} right arrow-bar, filled square \defineMMLentity rarrc E21C {unknown} right arrow-curved \defineMMLentity rarrfs E223 {unknown} right arrow, filled square \defineMMLentity rarrhk 21AA {\hookrightarrow} right arrow-hooked \defineMMLentity rarrlp 21AC {unknown} right arrow-looped \defineMMLentity rarrpl E21E {unknown} right arrow, plus \defineMMLentity rarrsim E24D {unknown} right arrow, similar \defineMMLentity Rarrtl E239 {unknown} right two-headed arrow with tail \defineMMLentity rarrtl 21A3 {unknown} right arrow-tailed \defineMMLentity rarrw 219D {unknown} right arrow-wavy \defineMMLentity rAtail E23B {unknown} right double arrow-tail \defineMMLentity ratail 21A3 {unknown} right arrow-tail \defineMMLentity RBarr E209 {unknown} twoheaded right broken arrow \defineMMLentity rBarr E207 {unknown} right doubly broken arrow \defineMMLentity rbarr E405 {unknown} right broken arrow \defineMMLentity rdca E219 {unknown} right down curved arrow \defineMMLentity rdldhar E22D {unknown} right harpoon-down over left harpoon-down \defineMMLentity rdsh 21B3 {unknown} right down angled arrow \defineMMLentity rfisht E215 {unknown} right fish tail \defineMMLentity rHar E224 {unknown} right harpoon-up over right harpoon-down \defineMMLentity rhard 21C1 {\rightharpoondown} right harpoon-down \defineMMLentity rharu 21C0 {\rightharpoonup} right harpoon-up \defineMMLentity rharul E230 {unknown} right harpoon-up over long dash \defineMMLentity rlarr 21C4 {unknown} right arr over left arr \defineMMLentity rlhar 21CC {unknown} right harp over l \defineMMLentity roarr E241 {unknown} right open arrow \defineMMLentity rrarr 21C9 {unknown} two right arrows \defineMMLentity rsh 21B1 {\Rsh} Rsh \defineMMLentity ruluhar E22A {unknown} right harpoon-up over left harpoon-up \defineMMLentity searhk E20B {unknown} SE arrow-hooked \defineMMLentity seArr 21D8 {unknown} SE pointing double arrow \defineMMLentity searr 2198 {\searrow} SE pointing arrow \defineMMLentity seswar E406 {unknown} SE \& SW arrows \defineMMLentity simrarr E234 {unknown} similar, right arrow below \defineMMLentity slarr E233 {unknown} short left arrow \defineMMLentity srarr E232 {unknown} short right arrow \defineMMLentity swarhk E20A {unknown} SW arrow-hooked \defineMMLentity swArr 21D9 {unknown} SW pointing double arrow \defineMMLentity swarr 2199 {\swarrow} SW pointing arrow \defineMMLentity swnwar E210 {unknown} SW \& NW arrows \defineMMLentity Uarr 219F {unknown} up two-headed arrow \defineMMLentity uArr 21D1 {\Uparrow} up double arrow \defineMMLentity Uarrocir E237 {unknown} up two-headed arrow above circle \defineMMLentity udarr 21C5 {unknown} up arrow, down arrow \defineMMLentity udhar E218 {unknown} up harp, down harp \defineMMLentity ufisht E24B {unknown} up fish tail \defineMMLentity uHar E226 {unknown} up harpoon-left, up harpoon-right \defineMMLentity uharl 21BF {unknown} up harpoon-left \defineMMLentity uharr 21BE {unknown} up harp-r \defineMMLentity uuarr 21C8 {unknown} two up arrows \defineMMLentity vArr 21D5 {\Updownarrow} up \& down double arrow \defineMMLentity varr 2195 {\updownarrow} up \& down arrow \defineMMLentity xhArr E202 {unknown} long left and right double arr \defineMMLentity xharr E203 {unknown} long left and right arr \defineMMLentity xlArr E200 {unknown} long left double arrow \defineMMLentity xlarr E201 {unknown} long left arrow \defineMMLentity xmap E208 {unknown} longmapsto \defineMMLentity xrArr E204 {unknown} long right double arr \defineMMLentity xrarr E205 {unknown} long right arrow \defineMMLentity zigrarr E244 {unknown} right zig-zag arrow context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-fpl.mkii0000644000175000017500000000545514536300610024667 0ustar hillehille%D \module %D [ file=enco-fpl, %D version=2000.08.20, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Polish Input Filter, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D These definitions used to be part of lang-sla.tex. \unprotect % todo : named glyphs \installactivecharacter / \startlanguagespecifics[\s!pl] % \appendtoks \makecharacteractive / \to \everynormalcatcodes % obsolete \installcompoundcharacter /a {\aogonek} \installcompoundcharacter /c {\cacute} \installcompoundcharacter /e {\eogonek} \installcompoundcharacter /l {\lstroke} \installcompoundcharacter /n {\nacute} \installcompoundcharacter /o {\oacute} \installcompoundcharacter /s {\sacute} \installcompoundcharacter /x {\zacute} \installcompoundcharacter /z {\zdotaccent} \installcompoundcharacter /A {\Aogonek} \installcompoundcharacter /C {\Cacute} \installcompoundcharacter /E {\Eogonek} \installcompoundcharacter /L {\Lstroke} \installcompoundcharacter /N {\Nacute} \installcompoundcharacter /O {\Oacute} \installcompoundcharacter /S {\Sacute} \installcompoundcharacter /X {\Zacute} \installcompoundcharacter /Z {\Zdotaccent} \stoplanguagespecifics \startlanguagespecifics[\s!pl] \installcompoundcharacter /, {\handlequotation\c!leftquotation} \installcompoundcharacter /' {\handlequotation\c!rightquotation} \def\setupPLlanguage% {\setuplanguage [\s!pl] [\c!leftsentence=\leftguillemot, \c!rightsentence=\rightguillemot, \c!leftsubsentence=\leftsubguillemot, \c!rightsubsentence=\rightsubguillemot]} \installcompoundcharacter /< {{\setupPLlanguage|<|}} \installcompoundcharacter /> {{\setupPLlanguage|>|}} \installcompoundcharacter /- {|-|} \stoplanguagespecifics % obsolete % % \startlanguagespecifics[\s!pl] % % \definesortkey {/a}{a}{a}{\k a} % \definesortkey {/A}{a}{a}{\k a} % \definesortkey {/c}{c}{a}{\'c} % \definesortkey {/C}{c}{a}{\'c} % \definesortkey {/e}{e}{a}{\k e} % \definesortkey {/E}{e}{a}{\k e} % \definesortkey {/l}{l}{a}{\l } % \definesortkey {/L}{l}{a}{\l } % \definesortkey {/n}{n}{a}{\'n} % \definesortkey {/N}{n}{a}{\'n} % \definesortkey {/o}{o}{a}{\'o} % \definesortkey {/O}{o}{a}{\'o} % \definesortkey {/s}{s}{a}{\'s} % \definesortkey {/S}{s}{a}{\'s} % \definesortkey {/x}{z}{a}{\'x} % \definesortkey {/X}{z}{a}{\'x} % \definesortkey {/z}{z}{b}{\.z} % \definesortkey {/Z}{z}{b}{\.z} % % \stoplanguagespecifics \startencoding[pdfdoc] \startlanguagespecifics[pl]% hm \defineactivecharacter / {\simplifiedcompoundcharacter/} \stoplanguagespecifics \stopencoding \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-def.mkii0000644000175000017500000000113714536300610024637 0ustar hillehille%D \module %D [ file=regi-def, %D version=2000.20.12, % split from less verbose base file %D title=\CONTEXT\ Regime Macros, %D subtitle=Default Character Definitions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \startregime[default] \dostepwiserecurse{128}{255}{1} {\expanded{\defineactivetoken\recurselevel\space{\rawcharacter\recurselevel}}}% \stopregime \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/anch-pgr.mkii0000644000175000017500000015376414536300610024672 0ustar hillehille%D \module %D [ file=anch-pgr, % split off core-pos %D version=1999.08.01, %D title=\CONTEXT\ Anchoring Macros, %D subtitle=Positioning Graphics, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Anchoring Macros / Grapics} %D Before we come to graphics support, we have to make sure of %D the reference point on the page. The next macro does so and %D is hooked into the page building routine. \unprotect % in the future, the depth of tail will reflect page depth \ifx\textheight\undefined \def\textheight{\vsize} \fi %D The next macros so some housekeeping. \def\pageanchor{page:0} % for the moment only one pagesize \def\textanchor{text:\realfolio} \def\headanchor{head:\realfolio} % virtual position \def\tailanchor{tail:\realfolio} % virtual position %D Anchors: \def\dopresetpositionanchors % also mkii {\bgroup \!!dimena\ifdim\topskip>\strutht\topskip\else\strutht\fi \!!dimenb\dimexpr\MPy\textanchor+\MPh\textanchor-\!!dimena\relax \!!dimenc\dimexpr\MPy\textanchor+\strutdp\relax \!!dimend\MPx\textanchor \!!dimene\MPw\textanchor \replacepospxywhd\headanchor\realfolio\!!dimend\!!dimenb\!!dimene\!!dimena\strutdp \replacepospxywhd\tailanchor\realfolio\!!dimend\!!dimenc\!!dimene\strutht \strutdp \egroup} \def\presetpositionanchors% compatibility hack (still needed?) {\ifpositioning \dopresetpositionanchors \fi} %D The first version of this module implemented head and tail %D anchors. Currently we stick to just one anchor and derive %D the head and tail anchors from this one. \def\showanchor#1% {\expanded{\writestatus{#1} {\MPp{#1}\string|\MPx{#1}\string|\MPy{#1}\string|% \MPw{#1}\string|\MPh{#1}\string|\MPd{#1}}}} %D We set these anchors before and after each page. \appendtoks \presetpositionanchors \to \beforeeverypage \appendtoks \presetpositionanchors \to \aftereverypage % todo: change with each page size change \def\registerpageposition#1% this one is flushed first ! {\ifpositioning\ifcase\realpageno\or \ifdim\printpaperheight=\paperheight \ifdim\printpaperwidth=\paperwidth % not needed, \else \setbox#1\hbox{\hpos\pageanchor{\box#1}}% \fi \else \setbox#1\ruledhbox{\hpos\pageanchor{\box#1}}% \fi \fi\fi} \def\placepositionanchors % todo : depth pagebox {\ifpositioning \setbox\scratchbox\vbox to \textheight {\simpletopskipcorrection \hbox{\strut\dopositionaction\headanchor}% \vfill \hbox{\strut\dopositionaction\tailanchor}}% \dp\scratchbox\zeropoint \wd\scratchbox\makeupwidth % not \zeropoint, else wrong text backgrounds \hpos\textanchor{\box\scratchbox}% \else \vskip\textheight \fi} %D \macros %D {positionoverlay,startpositionoverlay} %D %D As long as we're dealing with graphics it makes much sense %D to use the available overlay mechanism. For this purpose, we %D define some dedicated overlay extensions. %D %D \startbuffer[sample] %D \defineoverlay [sample] [\positionoverlay{sample}] %D %D \startpositionoverlay{sample} %D \setMPpositiongraphic{A-1}{connectcenter}{from=A-1,to=A-2} %D \stoppositionoverlay %D \stopbuffer %D %D \typebuffer[sample] %D %D \startbuffer[graphic] %D \startMPpositiongraphic{connectcenter} %D path pa, pb ; pair ca, cb ; %D initialize_box(\MPpos{\MPvar{from}}) ; pa := pxy ; ca := cxy ; %D initialize_box(\MPpos{\MPvar{to}}) ; pb := pxy ; cb := cxy ; %D draw pa withcolor red ; %D draw pb withcolor red ; %D draw ca -- cb withcolor blue ; %D anchor_box(\MPanchor{\MPvar{from}}) ; %D \stopMPpositiongraphic %D \stopbuffer %D %D We can best demonstrate this in an example, say: %D %D \startbuffer[text] %D \framed %D [backgroundachtergrond=sample,align=middle,width=7cm] %D {We want to connect \hpos {A-1} {this} word with its %D grammatical cousin \hpos {A-2} {that}.} %D \stopbuffer %D %D \typebuffer[text] %D %D \startlinecorrection %D %\getbuffer[graphic,sample,text] %D \stoplinecorrection %D %D The graphic is defined in the following way, using some %D macros defined in an auxiliary \METAPOST\ module that is %D preloaded. %D %D \typebuffer[graphic] \def\MPanchoridentifier{mpa} % {mp-anchor} \def\MPoverlayposprefix{MO::} % obsolete and wrong anyway % % \long\def\defineMPpositiongraphic#1% % {\long\setvalue{\MPoverlayposprefix#1}} %D The rest of the definitions concerning such overlays may %D look complicated, \let\currentpositionoverlay\empty %D Position actions are automatically executed when a position %D is set. \let\MPanchornumber\realfolio \def\positionoverlay#1% the test prevents too many redundant positions {\ifpositioning % in (not used) text* position layers \vbox to \overlayheight {\doifpositionactionelse{#1::\MPanchoridentifier}% {\edef\MPanchorid{#1::\MPanchoridentifier:\MPanchornumber}% \edef\MPanchor##1{\MPpos{\MPanchorid}}% \the\everyinsertpositionaction \copyposition{#1::\MPanchoridentifier}{#1::\MPanchoridentifier:\MPanchornumber}% \hpos {#1::\MPanchoridentifier:\MPanchornumber}% % this is ok %{\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}}% % but this one prevents cyclic runs due to % rounding errors {\setbox\scratchbox\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}% \ht\scratchbox\overlayheight \dp\scratchbox\zeropoint \box\scratchbox}}% {\hbox to \overlaywidth{\hss}}% \vfill}% \fi} \def\startpositionoverlay#1% {\iftrialtypesetting % we don't want redundant entries in the list \@EA\gobbleuntil\@EA\stoppositionoverlay \else \def\currentpositionoverlay{#1}% \fi} \def\stoppositionoverlay {\let\currentpositionoverlay\empty} \def\resetpositionoverlay#1% {\dosetpositionaction{#1::\MPanchoridentifier::}{}} %D Here the complication has to do with collecting actions %D for later execution. This collection is especially handy %D when we want to move actions to a specific layer. %D Such series of actions are stored in a macro (the one %D with the funny \type {++}) which is cleaned up after each %D invocation. \newtoks\everycleanpositionaction \newtoks\everyinsertpositionaction \def\cleanuppositionaction#1% not in trialtypesetting {\ifcsname\POSactionprefix#1++\endcsname % \ifundefined{\POSactionprefix#1++}\else \the\everycleanpositionaction \iflocalpositioning \letgvalue{\POSactionprefix#1++}\empty \else \setxvalue{\POSactionprefix#1++}{\getvalue{\POSactionprefix#1++}}% \fi \fi} % \def\cleanuppositionaction#1% not in trialtypesetting % {\ifcsname\POSactionprefix#1++\endcsname % \the\everycleanpositionaction % \iflocalpositioning % \global\expandafter\let\csname\POSactionprefix#1++\endcsname\empty % \else % \global\expandafter\let\csname\POSactionprefix#1++\expandafter\endcsname\csname\POSactionprefix#1++\endcsname % \fi % \fi} \def\handlepositionaction#1\with#2\on#3% {\bgroup \ifx\currentpositionoverlay\empty \edef\!!stringa{#3}% no layer, just pos itself as anchor \else \edef\!!stringa{\currentpositionoverlay::\MPanchoridentifier}% \fi \edef\!!stringc{\POSactionprefix\!!stringa++}% \expanded{\dosetpositionaction{\!!stringa}{\noexpand\getvalue{\!!stringc}}}% \global\let#1\relax \edef\!!stringb{\executeifdefined\!!stringc\empty}% \setxvalue\!!stringc{\!!stringb#1#2}% \egroup} %D The indirectness enables us redefine macros for special %D purposes, like a cleanup. \def\handlepositionboxes#1#2#3% {\handlepositionaction\dohandlepositionboxes\with{#1}{#2}{#3}\on{#2}} \def\doinsertpositionboxes#1#2#3% pos tag setups {\ifnum\MPp{#1}=\realpageno\relax % can be sped up \executeifdefined{\MPoverlayposprefix#1}\gobblethreearguments{#1}{#2}{#3}% \fi} \appendtoks \let\dohandlepositionboxes\doinsertpositionboxes % was handle ? \to \everyinsertpositionaction \def\docleanpositionboxes#1#2#3% pos tag setups {\ifnum\MPp{#1}<\realpageno \else \noexpand \dohandlepositionboxes{#1}{#2}{#3}% reinsert \fi} \appendtoks \let\dohandlepositionboxes\docleanpositionboxes \to \everycleanpositionaction %D A position graphic is a normal (non||reused) \METAPOST\ %D graphic, used immediately, with zero dimensions, so that a %D sequence of them does not harm. \newbox\positiongraphicbox \def\startMPpositiongraphic % id setups {\dodoublegroupempty\dostartMPpositiongraphic} \long\def\dostartMPpositiongraphic#1#2#3\stopMPpositiongraphic {\long\setgvalue{MPG:#1}% tag list mpcode {\useMPpositiongraphic{#1}{#2}{#3}}} \let\stopMPpositiongraphic\relax % \def\prepareMPpositionvariables % {\ifundefined{\@@meta self}\setvalue{\@@meta self}{\currentposition}\fi % \ifundefined{\@@meta from}\setvalue{\@@meta from}{\currentposition}\fi} \def\prepareMPpositionvariables {\ifcsname\@@meta self\endcsname\else\setvalue{\@@meta self}{\currentposition}\fi \ifcsname\@@meta from\endcsname\else\setvalue{\@@meta from}{\currentposition}\fi} \newif\ifcollectMPpositiongraphics \collectMPpositiongraphicstrue \long\def\useMPpositiongraphic#1#2#3% {\bgroup \prepareMPvariables{#2}% \prepareMPpositionvariables \enableincludeMPgraphics \ifcollectMPpositiongraphics % no longer needed in mkiv \expanded{\startMPdrawing#3\noexpand\stopMPdrawing}% \global\MPdrawingdonetrue \else\ifx\startMPgraphic\undefined \startMPcode#3\stopMPcode \else \startMPgraphic#3\stopMPgraphic \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}% \deallocateMPslot\currentMPgraphic \placeMPgraphic \fi\fi \egroup} % Now we need a adapted action handler: \def\dopositionaction#1% test saves hash entry in etex {\ifundefined{\POSactionprefix#1::}\else \ifnum\MPp{#1}>\zerocount % new \bgroup \setbox\scratchbox\hbox \bgroup \traceposstring\clap\red{<#1>}% \the\everyinsertpositionaction \the\everypositionaction \ifcollectMPpositiongraphics % can save a lot of run time \pushMPdrawing \MPshiftdrawingtrue \resetMPdrawing \getvalue{\POSactionprefix#1::}% \ifMPdrawingdone \getMPdrawing \fi \resetMPdrawing \popMPdrawing \else \getvalue{\POSactionprefix#1::}% \fi \cleanuppositionaction{#1}% \egroup % smashed is really needed else \smashedbox\scratchbox % we get problems with too big \egroup % overlays (s-pre-0x.tex) \else % shouldn't happen too often \traceposstring\clap\cyan{<#1>}% \fi \fi} \def\MPpositiongraphic {\dodoublegroupempty\doMPpositiongraphic} \def\doMPpositiongraphic#1#2% tag setups {\bgroup \def\@@meta{#1:}% \setupMPvariables[#2]% \prepareMPpositionvariables \MPshiftdrawingtrue \def\doMPpositiongraphic##1##2% {{% new, see (techniek) \def\@@meta{##1:}% \setupMPvariables[#2,##2]% \prepareMPpositionvariables % and needed \getvalue{MPG:##1}}}% temp hack \setbox\positiongraphicbox\hbox {\ignorespaces \executeifdefined{MPM:#1}{\executeifdefined{MPG:#1}\donothing}% \removelastspace}% \smashbox\positiongraphicbox \box\positiongraphicbox \egroup} \long\def\startMPpositionmethod#1#2\stopMPpositionmethod {\long\setgvalue{MPM:#1}{#2}} % todo: var list here \let\stopMPpositionmethod\relax %D Simple one position graphics. \def\setMPpositiongraphic {\dotriplegroupempty\dosetMPpositiongraphic} \def\dosetMPpositiongraphic#1#2#3% pos tag vars {\ifx\currentpositionoverlay\empty \dosetpositionaction{#1}{\MPpositiongraphic{#2}{#3}}% \else % silly can be one \handlepositiongraphics{#1}{#2}{#3}% \fi} \def\handlepositiongraphics#1#2#3% combine with boxes {\handlepositionaction\dohandleMPpositiongraphic\with{#1}{#2}{#3}\on{#2}} \def\doinsertMPpositiongraphic#1#2#3% pos tag setups {\ifnum\MPp{#1}=\realpageno\relax % extra saveguard \def\currentposition{#1}\MPpositiongraphic{#2}{#3}% \fi} \appendtoks \let\dohandleMPpositiongraphic\doinsertMPpositiongraphic \to \everyinsertpositionaction \def\docleanMPpositiongraphic#1#2#3% pos tag setups {\ifnum\MPp{#1}<\realpageno \else \noexpand \dohandleMPpositiongraphic{#1}{#2}{#3}% \fi} \appendtoks \let\dohandleMPpositiongraphic\docleanMPpositiongraphic \to \everycleanpositionaction %D Graphics that span two positions. \def\setMPpositiongraphicrange {\doquadruplegroupempty\dosetMPpositiongraphicrange} \def\dosetMPpositiongraphicrange#1#2#3#4% bpos epos tag vars {\ifx\currentpositionoverlay\empty \dosetpositionaction{#1}{\MPpositiongraphic{#3}{#4}}% \else \handlepositiongraphicsrange{#1}{#2}{#3}{#4}% \fi} \def\handlepositiongraphicsrange#1#2#3#4% {\handlepositionaction\dohandleMPpositiongraphicrange\with{#1}{#2}{#3}{#4}\on{#2}} \def\doinsertMPpositiongraphicrange#1#2#3#4% pos pos tag setups {\ifnum\MPp{#1}\MPp{#2}>\zerocount \iflocalpositioning \donetrue \else \donefalse \ifnum\MPp{#1}=\realpageno \donetrue \else\ifnum\MPp{#2}=\realpageno \donetrue \else\ifnum\MPp{#1}<\realpageno\relax\ifnum\MPp{#2}>\realpageno \donetrue \fi\fi\fi\fi \fi \ifdone \def\currentposition{#1}\MPpositiongraphic{#3}{#4}% \fi \fi} \appendtoks \let\dohandleMPpositiongraphicrange\doinsertMPpositiongraphicrange \to \everyinsertpositionaction \def\docleanMPpositiongraphicrange#1#2#3#4% pos tag setups {\ifnum\MPp{#2}<\realpageno \else \noexpand \dohandleMPpositiongraphicrange{#1}{#2}{#3}{#4}% \fi} \appendtoks \let\dohandleMPpositiongraphicrange\docleanMPpositiongraphicrange \to \everycleanpositionaction % will be overloaded, and/or code below moved to core-box \defineoverlay[\v!text-2][\positionoverlay{\v!text-2}] \defineoverlay[\v!text-1][\positionoverlay{\v!text-1}] \defineoverlay[\v!text+1][\positionoverlay{\v!text+1}] \defineoverlay[\v!text+2][\positionoverlay{\v!text+2}] %D Some of these macros are pretty clever but too complicated %D to be nice. When things are kind of stable I'll clean up %D this mess. %D THIS NEEDS A CLEANUP \setupMPvariables [mpos:box] [linecolor=blue, linewidth=\linewidth, fillcolor=lightgray, filloffset=\!!zeropoint] \startMPpositiongraphic{mpos:box}{fillcolor,linecolor,linewidth} initialize_box(\MPpos{\MPvar{self}}) ; boxfillcolor := \MPvar{fillcolor} ; boxlinecolor := \MPvar{linecolor} ; boxlinewidth := \MPvar{linewidth} ; boxfilloffset := \MPvar{filloffset} ; draw_box ; anchor_box(\MPanchor{\MPvar{self}}) ; \stopMPpositiongraphic \setupMPvariables [mpos:area] [linecolor=blue, linewidth=\linewidth, fillcolor=lightgray, filloffset=\!!zeropoint] \startMPpositiongraphic{mpos:area}{fillcolor,linecolor,linewidth} initialize_area(\MPpos{b:\MPvar{self}},\MPpos{e:\MPvar{self}}) ; boxfillcolor := \MPvar{fillcolor} ; boxlinecolor := \MPvar{linecolor} ; boxlinewidth := \MPvar{linewidth} ; boxfilloffset := \MPvar{filloffset} ; draw_area ; anchor_area(\MPanchor{b:\MPvar{self}}) ; \stopMPpositiongraphic %D This is already cleaned up. % gridtype = 1 => baseline % gridtype = 2 => betweenline \setupMPvariables [mpos:par] [mp=mpos:par:shape, gridtype=0, linetype=1, filltype=1, dashtype=0, % 1 = dashed, 2 = dashed with background %snaptops=true, % not that nice: true/false gridcolor=red, linecolor=blue, fillcolor=lightgray, filloffset=\!!zeropoint, linewidth=\linewidth, gridwidth=\linewidth, gridshift=\!!zeropoint, lineradius=.5\bodyfontsize, dashtype=1] \startuseMPgraphic{mpos:par:shape} \iftracepositions show_par \else draw_par \fi ; \stopuseMPgraphic \startuseMPgraphic{mpos:par:setup} boxgridtype := \MPvar{gridtype} ; boxlinetype := \MPvar{linetype} ; boxfilltype := \MPvar{filltype} ; boxdashtype := \MPvar{dashtype} ; boxgridcolor := \MPvar{gridcolor} ; boxlinecolor := \MPvar{linecolor} ; boxfillcolor := \MPvar{fillcolor} ; boxfilloffset := \MPvar{filloffset} ; boxlinewidth := \MPvar{linewidth} ; boxgridwidth := \MPvar{gridwidth} ; boxgridshift := \MPvar{gridshift} ; boxlineradius := \MPvar{lineradius} ; %snap_multi_par_tops := \MPvar{snaptops} ; \stopuseMPgraphic \startuseMPgraphic{mpos:par:extra} % user stuff, like: % snap_multi_par_tops := false ; \stopuseMPgraphic \ifx\MPparcounter\undefined \newcounter\MPparcounter \fi \def\MPself {\MPvar{self}} \def\MPbself {b:\MPself} \def\MPeself {e:\MPself} \def\MPwself {w:\MPself} \def\MPparanchor{p:\MPparcounter} \def\MPl#1{\MPplus{#1}20} \def\MPr#1{\MPplus{#1}30} \startMPpositionmethod{mpos:par} %%%%%%%%%%% will become obsolete \edef\MPparcounter{\MPv\MPbself{1}{0}}% \doifpositionelse\MPwself {\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius} initialize_area_par(\MPpos\MPbself, \MPpos\MPeself, \MPpos\MPwself) ; \includeMPgraphic{mpos:par:setup} ; \includeMPgraphic{mpos:par:extra} ; \includeMPgraphic{\MPvar{mp}} ; anchor_par(\MPanchor\MPbself) ; \stopMPpositiongraphic} {\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius} initialize_par(\MPpos\MPbself, \MPpos\MPeself, \MPpos\textanchor, \MPpos\MPparanchor, \MPvv \MPparanchor{0pt,0pt,0pt,0pt,0,0pt}) ; \includeMPgraphic{mpos:par:setup} ; \includeMPgraphic{mpos:par:extra} ; \includeMPgraphic{\MPvar{mp}} ; anchor_par(\MPanchor\MPbself) ; \stopMPpositiongraphic}% \MPpositiongraphic{mpos:par}{}% \stopMPpositionmethod %D The next alternative works in columnsets : % \iftracepositions show\else draw\fi_multi_pars ; \startuseMPgraphic{mpos:par:columnset} \iftracepositions show_multi_pars \else draw_multi_pars \fi ; \stopuseMPgraphic \startuseMPgraphic{mpos:par:sideline}{linecolor,lineoffset} for i=1 upto nofmultipars : fill leftboundary multipars[i] shifted (-\MPvar{lineoffset},0) rightenlarged 1mm withcolor \MPvar{linecolor} ; endfor ; \stopuseMPgraphic \startMPpositionmethod{mpos:par:columnset} \edef\MPparcounter{\MPv\MPbself{1}{0}}% \startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius} \includeMPgraphic{mpos:par:setup} ; \includeMPgraphic{mpos:par:extra} ; prepare_multi_pars(\MPpos\MPbself,\MPpos\MPeself,\MPpos\MPwself, \MPpos\MPparanchor,\MPvv\MPparanchor{0pt,0pt,0pt,0pt,0,0pt}) ; relocate_multipars(-\MPxy\MPanchorid) ; % inside layerpos \includeMPgraphic{\MPvar{mp}} ; \stopMPpositiongraphic \MPpositiongraphic{mpos:par}{}% \stopMPpositionmethod %D \starttyping %D \setupbackground %D [test] %D [mp=mpos:par:columnset, %D method=mpos:par:columnset] %D \stoptyping %D We need to treat floats in a special way. \startMPinitializations local_multi_par_area:=\iflocalpositioning true\else false\fi; \stopMPinitializations \def\textbackgroundoverlay#1% {\iflocalpositioning\v!local\else\v!text\fi#1} \newcounter\localpositionnumber \def\MPanchornumber {\iflocalpositioning\localpositionnumber\else\realfolio\fi} %D So far for the trickery. \newcount\textbackgrounddepth \appendtoks \expanded{\savecurrentvalue\noexpand\totalnofparbackgrounds{\number\nofparbackgrounds}}% \to \everybye \appendtoks \initializeparbackgrounds \to \everystarttext \ifx\totalnofparbackgrounds\undefined \newcounter\totalnofparbackgrounds \fi \ifx\nofparbackgrounds \undefined \newcount \nofparbackgrounds \fi \def\initializeparbackgrounds {\ifcase\totalnofparbackgrounds\else \enableparpositions \fi} \unexpanded\def\starttextbackground {\bgroup \advance\textbackgrounddepth\plusone \dodoubleempty\dostarttextbackground} \let\dodostarttextbackground\relax \let\dodostoptextbackground \relax \def\currentparbackground{pbg:0} \def\nextparbackground {pbg:1} \def\btbanchor{b:\currentparbackground} \def\etbanchor{e:\currentparbackground} \def\nextbtbanchor{b:\nextparbackground} \def\nextetbanchor{e:\nextparbackground} \def\textbackgroundparameter#1% {\csname\??td\currenttextbackground#1\endcsname} \let\backgroundvariable\textbackgroundparameter % will become obsolete % \definetextbackground[more][state=start,backgroundcolor=red] % location=paragraph % \definetextbackground[test][state=start,backgroundcolor=green] % % \page \placefigure[left]{}{} % % \starttextbackground[test] % \readfile{ward}{}{} % \starttextbackground[more] % \readfile{ward}{}{} % \stoptextbackground % \readfile{ward}{}{} % \stoptextbackground % % \page \placefigure[right]{}{} % % \starttextbackground[test] % \readfile{ward}{}{} % \starttextbackground[more] % \readfile{ward}{}{} % \stoptextbackground % \readfile{ward}{}{} % \stoptextbackground \def\dostarttextbackground[#1][#2]% {\checktextbackgrounds \def\currenttextbackground{#1}% \global\advance\nofparbackgrounds\plusone \edef\currentparbackground{pbg:\number\nofparbackgrounds}% % \bgroup % \advance\nofparbackgrounds\plusone % \xdef\nextparbackground{pbg:\number\nofparbackgrounds}% % \egroup \xdef\nextparbackground{pbg:\number\numexpr\nofparbackgrounds+\plusone\relax}% still xdef ? % todo : \synchonizepositionpage{b:\currentparbackground}{s:\currentparbackground}% \setuptextbackground[#1][#2]% \let\dodostarttextbackground\relax \let\dodostoptextbackground \relax \doif{\textbackgroundparameter\c!state}\v!start{\dopresettextbackground{#1}}% \dodostarttextbackground} % todo \backgroundvariable\c!variant \def\dopresettextbackground#1% todo: \backgroundparameter {\ExpandFirstAfter\processaction % \EFA niet echt nodig [\textbackgroundparameter\c!location] [ \v!text=>\let\dodostarttextbackground\dostarttextbackgroundtxt \let\dodostoptextbackground \dostoptextbackgroundtxt, \v!paragraph=>\let\dodostarttextbackground\dostarttextbackgroundpar \let\dodostoptextbackground \dostoptextbackgroundpar, \v!none=>\let\dodostarttextbackground\relax \let\dodostoptextbackground \relax]% \ifx\dodostarttextbackground\dostarttextbackgroundpar % untested \ifnum\textbackgrounddepth>\plusone % new \let\dodostarttextbackground\dostarttextbackgroundtxt \let\dodostoptextbackground \dostoptextbackgroundtxt \fi \fi \doifelse{\textbackgroundparameter\c!frame}\v!on {\doifelse{\textbackgroundparameter\c!corner}\v!round {\setvalue{\??td#1\c!frame}{2}} {\setvalue{\??td#1\c!frame}{1}}} {\setvalue{\??td#1\c!frame}{0}}% \doifelse{\textbackgroundparameter\c!background}\v!color {\setvalue{\??td#1\c!background}{1}} {\setvalue{\??td#1\c!background}{0}}% %\startpositionoverlay{\v!text\getvalue{\??td#1\c!level}}% \startpositionoverlay{\textbackgroundoverlay{\textbackgroundparameter\c!level}}% \expanded {\setMPpositiongraphicrange % moet veel efficienter {\btbanchor}% {b:\currentparbackground}% {\etbanchor}% {e:\currentparbackground}% {\textbackgroundparameter\c!method}% {self=\currentparbackground, mp=\textbackgroundparameter\c!mp, gridtype=\textbackgroundparameter\c!alternative, filltype=\textbackgroundparameter\c!background, linetype=\textbackgroundparameter\c!frame, dashtype=\textbackgroundparameter{dash}, % to be internationalized gridcolor=\textbackgroundparameter\c!framecolor, linecolor=\textbackgroundparameter\c!framecolor, lineoffset=\textbackgroundparameter\c!frameoffset, fillcolor=\textbackgroundparameter\c!backgroundcolor, filloffset=\textbackgroundparameter\c!backgroundoffset, gridwidth=\textbackgroundparameter\c!rulethickness, gridshift=\textbackgroundparameter\c!voffset, linewidth=\textbackgroundparameter\c!rulethickness, lineradius=\textbackgroundparameter\c!radius}}% \stoppositionoverlay} \def\stoptextbackground {\dodostoptextbackground \carryoverpar\egroup} \def\starttextbackgroundmanual {\dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty \fpos\currentparbackground\ignorespaces} \def\stoptextbackgroundmanual {\tpos\currentparbackground \dostopattributes} \def\dostarttextbackgroundtxt {\ifvmode \dontleavehmode \fi % was leavevmode, brrr \dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty \fpos\currentparbackground\ignorespaces} \def\dostoptextbackgroundtxt {\tpos\currentparbackground \dostopattributes} % keep this simple one, it's used in prikkels and alike % % \def\dostarttextbackgroundpar % {\endgraf % new % \getvalue{\??td\currenttextbackground\c!before}% % \noindent\fpos\currentparbackground\ignorespaces % \bgroup % \nobreak \vskip-\lineheight \nobreak % \doassignsomeskip\getvalue{\??td\currenttextbackground\c!topoffset}\to\scratchskip % \kern\scratchskip\nobreak % \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!leftoffset}}% % \advance\leftskip\leftskipadaption % \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!rightoffset}}% % \advance\rightskip\leftskipadaption % \dostartattributes{\??td\currenttextbackground}\c!style\c!color{}% % \nowhitespace % \seteffectivehsize % \par} % % \def\dostoptextbackgroundpar % {\par % \dostopattributes % \doassignsomeskip\getvalue{\??td\currenttextbackground\c!bottomoffset}\to\scratchskip % \kern\scratchskip\nobreak % \nobreak \vskip-\lineheight \nobreak % \nowhitespace % \egroup % \nobreak \noindent \strut \hfill \kern\zeropoint \tpos\currentparbackground % \endgraf % new % \getvalue{\??td\currenttextbackground\c!after}} \newskip\textbackgroundskip \def\dostarttextbackgroundpar {\endgraf % new \textbackgroundparameter\c!before \noindent \ifgridsnapping \doassignsomeskip\textbackgroundparameter\c!topoffset\to\textbackgroundskip \ifdim\textbackgroundskip>\zeropoint \struttedbox{\hbox{\raise\textbackgroundskip\hbox{\fpos\currentparbackground}}}% \else \fpos\currentparbackground \fi \else \fpos\currentparbackground \fi \bgroup \endgraf % we need a vertical nobreak - 29/06/2004 \nobreak \vskip-\lineheight \nobreak \ifgridsnapping \else \doassignsomeskip\textbackgroundparameter\c!topoffset\to\textbackgroundskip \ifdim\textbackgroundskip>\zeropoint \kern\textbackgroundskip\nobreak \fi \fi \dosetleftskipadaption{\textbackgroundparameter\c!leftoffset}% \advance\leftskip\leftskipadaption \dosetleftskipadaption{\textbackgroundparameter\c!rightoffset}% \advance\rightskip\leftskipadaption % new \dosetraggedcommand{\textbackgroundparameter\c!align}% \raggedcommand % \dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty \nowhitespace \nobreak % new per 23/04/2006 (else potential break when whitespace) \seteffectivehsize \doinhibitblank % \blank[\v!disable]% new \par} \def\dostoptextbackgroundpar {\par \removelastskip % new \dostopattributes \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\textbackgroundskip \ifdim\lastskip>\zeropoint \advance\textbackgroundskip-\lastskip \fi \ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint \kern\textbackgroundskip\nobreak \fi \fi \nobreak \vskip-\lineheight \nobreak \nowhitespace \egroup \bgroup \forgeteverypar % NOT REALLY NEEDED, SAVES HASH/MEM \nobreak \noindent \strut \hfill \kern\zeropoint \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\textbackgroundskip \ifgridsnapping % experimental, pascal (todo: topoffset in same way) \ifdim\textbackgroundskip>\zeropoint \struttedbox{\hbox{\lower\textbackgroundskip\hbox{\tpos\currentparbackground}}}% \else \tpos\currentparbackground \fi \else \tpos\currentparbackground \fi \egroup \endgraf % new \textbackgroundparameter\c!after} \let\textparpages \!!zeropoint \let\textparheight\!!zeropoint \let\textparwidth \!!zeropoint \def\calculatetextpardimensions {\docalculatetextpardimensions\btbanchor \etbanchor \MPparanchor} \def\calculatenexttextpardimensions {\docalculatetextpardimensions\nextbtbanchor\nextetbanchor\relax} \def\docalculatetextpardimensions#1#2#3% todo: dimexpr {\scratchcounter\MPp#2%\etbanchor \advance\scratchcounter-\MPp#1%\btanchor \edef\textparpages{\the\scratchcounter}% \ifcase\scratchcounter % one page \scratchdimen \MPy#1%\btanchor \advance\scratchdimen-\MPy#2%\etbanchor \else % two or more pages \scratchdimen \MPy#1%\btanchor \advance\scratchdimen-\MPy#2%\etbanchor \advance\scratchdimen-\MPy\textanchor \advance\scratchdimen \MPy\textanchor % - and then + ? \advance\scratchdimen \MPh\textanchor\relax \ifcase\scratchcounter>2 \ifnum\scratchcounter<5 % more pages \scratchdimen\textheight \advance\scratchcounter \minusone \multiply\scratchdimen \scratchcounter \else % keep'm small \scratchdimen5\textheight \fi \fi \fi \edef\textparheight{\the\scratchdimen}% \ifcase\scratchcounter % one page \scratchdimen \MPx#2%\etbanchor \advance\scratchdimen-\MPx#1%\btanchor \else % two or more pages / maybe also hang \ifx#3\relax \scratchdimen\makeupwidth % \textwidth \else \scratchdimen\MPw\MPparanchor \advance\scratchdimen-\MPl\MPparanchor \advance\scratchdimen-\MPr\MPparanchor \fi \fi \edef\textparwidth{\the\scratchdimen}} \def\mintextparheight{4\lineheight} \def\dontsplitnexttextbackground % dangerous but useful {\ifdim\pagetotal>\textheight \else \ifdim\pagegoal=\maxdimen \else \calculatenexttextpardimensions % too tricky % \scratchdimen=\textparheight % \advance\scratchdimen\pagetotal\relax % \ifdim\scratchdimen>\pagegoal % \page % \fi \ifdim\textparheight>\zeropoint \ifdim\textparheight>\mintextparheight\else \page % option \fi \fi \fi \fi} \def\definetextbackground {\dodoubleempty\dodefinetextbackground} \def\dodefinetextbackground[#1][#2]% {\ifsecondargument % why ? \copyparameters[\??td#1][\??td] [\c!state,\c!location,\c!alternative,\c!mp,\c!method, \c!background,\c!backgroundcolor,\c!corner,\c!level, \c!backgroundoffset,\c!before,\c!after,\c!align,dash, % dash not yet internationalized \c!radius,\c!frame,\c!framecolor,\c!rulethickness,\c!voffset,\c!frameoffset, \c!leftoffset,\c!rightoffset,\c!topoffset,\c!bottomoffset]% \getparameters[\??td#1][#2]% \doifvalue{\??td#1\c!state}\v!start\checktextbackgrounds \unexpanded\setvalue{#1}% {\groupedcommand{\starttextbackground[#1]}{\stoptextbackground}}% \setvalue{\e!start#1}{\starttextbackground[#1]}% \setvalue{\e!stop #1}{\stoptextbackground}% \fi} \def\setuptextbackground {\dodoubleargument\dosetuptextbackground} \def\dosetuptextbackground[#1][#2]% {\ifsecondargument \doifelsenothing{#1} {\dodosetuptextbackground{#2}\empty} {\processcommalist[#1]{\dodosetuptextbackground{#2}}}% \else \dodosetuptextbackground{#1}\empty \fi} \def\dodosetuptextbackground#1#2% {\getparameters[\??td#2][#1]% \def\currenttextbackground{#2}% \doifvalue{\??td#2\c!state}\v!start\checktextbackgrounds} \let\currenttextbackground\empty \def\checktextbackgrounds {\ifproductionrun \enabletextarearegistration \enablehiddenbackground \fi} \setuptextbackground [\c!mp=mpos:par:columnset, % buggy: mpos:par:shape \c!method=mpos:par:columnset, % \c!state=\v!start, \c!location=\v!text, \c!leftoffset=\!!zeropoint, % 1em, \c!rightoffset=\textbackgroundparameter\c!leftoffset, \c!topoffset=\!!zeropoint, % \v!medium, \c!bottomoffset=\textbackgroundparameter\c!topoffset, \c!level=-1, \c!alternative=0, \c!align=, dash=0, % to be internationalized \c!background=\v!color, \c!backgroundcolor=lightgray, \c!backgroundoffset=\!!zeropoint, \c!corner=\v!rectangular, \c!radius=.5\bodyfontsize, \c!voffset=\!!zeropoint, \c!frame=\v!on, \c!framecolor=blue, \c!rulethickness=\linewidth] %D As an example we define a grid background: \definetextbackground [\v!grid] [\c!state=\v!stop, \c!location=\v!paragraph, \c!frame=\v!off, \c!framecolor=red, \c!background=, \c!alternative=1] \ifx\basegrid\undefined \else \letvalue\v!grid=\basegrid \fi % lelijk, aanpassen, opties \setupMPvariables [mpos:connect] [linecolor=red, linewidth=1pt] \setupMPvariables [mpos:encircle] [fillcolor=lightgray, filloffset=\!!zeropoint, linecolor=blue, linewidth=1pt] \startuseMPgraphic{mpos:common:ec} path pa ; pair ca ; color lc ; numeric lw ; lw := \MPvar{linewidth} ; lc := \MPvar{linecolor} ; initialize_box(\MPpos{\MPvar{self}}) ; pa := pxy ; ca := cxy ; pa := boundingbox pa enlarged 2lw ; pa := llcorner pa...lrcorner pa...urcorner pa...ulcorner pa...cycle ; drawoptions (withpen pencircle scaled lw withcolor lc) ; \stopuseMPgraphic \startMPpositiongraphic{mpos:encircle}{linecolor,fillcolor,linewidth} \includeMPgraphic{mpos:common:ec} fill pa withcolor \MPvar{fillcolor} ; draw pa ; anchor_box(\MPanchor{\MPvar{self}}) ; \stopMPpositiongraphic \startMPpositiongraphic{mpos:connect}{linecolor,linewidth} path pb, pc ; pair cb, cc ; \includeMPgraphic{mpos:common:ec} initialize_box(\MPpos{\MPvar{to}}) ; pb := pxy ; cb := cxy ; pb := boundingbox pb enlarged 2lw ; pb := llcorner pb...lrcorner pb...urcorner pb...ulcorner pb...cycle ; pc := ca {up} .. {down} cb ; cc := (pc intersection_point pa) ; if intersection_found : pc := pc cutbefore cc ; cc := (pc intersection_point pb) ; if intersection_found : pc := pc cutafter cc ; drawarrow pc ; drawarrow reverse pc ; fi ; fi ; anchor_box(\MPanchor{\MPvar{self}}) ; \stopMPpositiongraphic %D \macros %D {stackposdown, stackposup, stackposleft,stackposright} %D %D A non graphic example of the use of positioning, is to stack %D text in for instance the margin. %D %D \stackposdown \inleft {some text}The text \type {some text} %D goes into the left margin, and \stackposdown \inleft {some %D more}\type {some more} as well. When they overlap, they %D will not touch. %D %D Here we said \type {\stackposdown \inleft{some text}}. Instead %D of \stackposleft \inleft {one}stacking \stackposleft \inleft %D {two}vertically, one can stack horizontally by \stackposleft %D \inleft {three}using \type {\stackposleft}. %D %D We can go in all four directions, using \type {\stackposdown}, %D \type {\stackposup}, \type {\stackposleft} and \type %D {\stackposright}. \def\stackposdistance{.5em} \newcount\currentautopos \newcount\previousautopos \def\POSstackprefix{stack:} \def\dostackposbox#1#2% {\dowithnextbox {#2{\previousautopos\currentautopos \global\advance\currentautopos\plusone \edef\currentposition {\POSstackprefix\number\currentautopos}% \edef\previousposition{\POSstackprefix\number\previousautopos}% \hpos\currentposition{\doifoverlappingelse\currentposition\previousposition{#1}{\flushnextbox}}}}% \hbox} \def\stackposup {\dostackposbox{\raise\lineheight\flushnextbox}} \def\stackposdown {\dostackposbox{\lower\lineheight\flushnextbox}} \def\stackposleft {\dostackposbox{\copy\nextbox\hskip\nextboxwd\hskip\stackposdistance}} \def\stackposright{\dostackposbox{\hskip\stackposdistance\hskip\nextboxwd\flushnextbox}} %D \macros %D {stackeddown} %D %D However, a better implementation is possible with the %D following macro. We now have an extra key \type {stack} for %D margin settings. When set to \type {yes}, this macro comes %D into action. % Because there can be many stacked items in a line and successive lines, we % play dirty and adapt the position and height of the current node so that % this becomes visible to a next pass. % % \startbuffer % \inleft {test 1} test 1 \inleft {test 2} test 2 \endgraf % \inleft {test 3} test 3 % \stopbuffer % \getbuffer \typebuffer \flushstatus \page % % \startbuffer % \inleft {test 1} test 1 \inleft {test 2} test 2 \inleft {test 3} test 3 \endgraf % \inleft {test 4} test 4 % \stopbuffer % \getbuffer \typebuffer \flushstatus \page % % \startbuffer % \inleft {test 1} test 1 \endgraf % \inleft {test 2} test 2 \endgraf % \inleft {test 3} test 3 % \stopbuffer % \getbuffer \typebuffer \flushstatus \page % % \startbuffer % \inleft {test 1\\test 1} test 1 \inleft {test 2} test 2 \endgraf % \inleft {test 3} test 3 % \stopbuffer % \getbuffer \typebuffer \flushstatus \page % % \startbuffer % \inleft {test 1\\test 1\\test 1\\test 1\\test 1} test 1 \endgraf % test 2 \endgraf % \inleft {test 3} test 3 % \stopbuffer % \getbuffer \typebuffer \flushstatus \page % % \startbuffer % \inleft{test 1} test \inleft{test 2} test \inleft{test 3\\test 3} test % \stopbuffer % \getbuffer \typebuffer \flushstatus \page % % \startbuffer % \inleft{test 1\\test 1\\test 1} test \inleft{test 2\\test 2} test \inleft{test 3\\test 3\\test 3} test \endgraf % \inleft{test 1\\test 1\\test 1} test \inleft{test 2\\test 2} test \inleft{test 3\\test 3\\test 3} test % \stopbuffer % \getbuffer \typebuffer \flushstatus \page \newdimen\laststackvmove % use \scratchdimenone instead of skip \def\stackeddown {\bgroup % this macro assumes a few things and is meant to work for margin notes \dowithnextbox {\global\advance\currentautopos\plusone \global\laststackvmove\zeropoint \hpos{\POSstackprefix\number\currentautopos} {\edef\next {\nextboxht\the\nextboxht \nextboxdp\the\nextboxdp \nextboxwd\the\nextboxwd}% \previousautopos\currentautopos \scratchdimen\zeropoint \scratchcounter\zerocount \doloop {\advance\previousautopos\minusone \edef\currentposition {\POSstackprefix\number\currentautopos}% \edef\previousposition{\POSstackprefix\number\previousautopos}% \ifnum\MPp\currentposition=\MPp\previousposition\relax %\registerstatus{doing \number\currentautopos/\number\previousautopos}% \doifoverlappingelse\currentposition\previousposition {\scratchskip\dimexpr \MPy\currentposition -\MPy\previousposition -\MPd\currentposition % untested +\MPd\previousposition % untested +\MPh\currentposition \relax\relax % second relax realy needed, forgotten while dimexpressing % todo: also take depth into account \ifdim\scratchskip<\scratchdimen %\registerstatus{no \the\scratchskip}% \else %\registerstatus{yes \the\scratchskip}% \scratchdimen\scratchskip \fi}% \donothing % {\registerstatus{next}}% \ifnum\previousautopos<\zerocount\exitloop\fi \else \exitloop \fi}% \ifdim\scratchdimen=\zeropoint \else \bgroup \edef\currentposition{\POSstackprefix\number\currentautopos}% \scratchskip\scratchdimen \advance\scratchskip\MPh\currentposition \scratchdimen-\scratchdimen \advance\scratchdimen\MPy\currentposition %\registerstatus{old \number\currentautopos: \MPy\currentposition/\MPh\currentposition}% \expanded{\replacepospxywhd {\currentposition}{\MPp\currentposition}{\MPx\currentposition}{\the\scratchdimen}% {\MPw\currentposition}{\the\scratchskip}{\MPd\currentposition}}% %\registerstatus{new \number\currentautopos: \MPy\currentposition/\MPh\currentposition}% \egroup \global\laststackvmove\scratchdimen % new \setbox\nextbox\iftracepositions\@EA\ruledhbox\else\@EA\hbox\fi {\lower\scratchdimen\flushnextbox}% \next %\registerstatus{\strut}% \fi \flushnextbox}% \egroup}} %D The next hack make sure that margin texts near faulty %D strutted lines are handled ok. \newif\ifrepositionmarginbox \repositionmarginboxtrue \newcount\currentmarginpos \def\dopositionmarginbox#1% {\bgroup \ifrepositionmarginbox \global\advance\currentmarginpos\plusone %\setposition{\s!margin:\number\currentmarginpos}% not always \ifcase\marginrepositionmethod % nothing \or % nothing \or % stack / page check yet untested \setposition{\s!margin:\number\currentmarginpos}% \scratchdimen\MPy{\s!margin:\number\currentmarginpos}% \global\advance\currentmarginpos\plusone \advance\scratchdimen -\MPy{\s!margin:\number\currentmarginpos}% \advance\scratchdimen -\strutdp % new but bugged % \setbox#1\hbox % {\hskip-\MPx{\s!margin:\number\currentmarginpos}% % \hskip\MPx{head:\realfolio}% % \box#1}% % so far \setbox#1\hbox {\setposition{\s!margin:\number\currentmarginpos}% \raise\scratchdimen\box#1}% \or % move up \setposition{\s!margin:\number\currentmarginpos}% \ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax \scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax \expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}% \fi \or % move up, assume end of par \setposition{\s!margin:\number\currentmarginpos}% \ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax \getnoflines\margincontentheight \advance\noflines\minusone \scratchdimen\noflines\lineheight \else \scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax \fi \expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}% \fi \dp#1\zeropoint \ht#1\zeropoint \fi \graphicvadjust{\box#1}% \egroup} \chardef\marginrepositionmethod\plusone % sidemethod \chardef\margincontentmethod \plusthree % textmethod % beware: 1 = old method \chardef\marginpagecheckmethod \plusone % splitmethod %D For a right menu, a sequence of calls to \type %D {right_menu_button} is generated. %D %D \starttyping %D right_menu_button (n, p, s=0/1/2, x, y, w, h, d) ; %D \stoptyping %D %D Here, n is the number of the button, s a status variable, %D while the rest is positional info. The status variable is %D 0, 1 or~2: not found, found and found but current page. % 0=not found 1=found 2=current page % geen leeg \newtoks\MPmenutoks \def\MPmenubuttons#1{\the\MPmenutoks} \appendtoks \global\MPmenutoks\emptytoks \to \everyshipout % 0=notfound 1=found 2=currentpage \def\do@@amposition#1#2#3% {\doifelsevalue{\??am#1\c!position}\v!yes {\doglobal\increment\currentamposition \doifnumberelse{#2} {\docheckrealreferencepage{#2}% \global\chardef\currentamrealpage\ifrealreferencepage2\else1\fi} {\doifreferencefoundelse{#2} {\global\chardef\currentamrealpage\ifrealreferencepage2\else1\fi} {\global\chardef\currentamrealpage0}}% % not found \expanded {\doglobal\noexpand\appendtoks #1_menu_button(\currentamposition,\the\currentamrealpage,\MPpos{#1:\currentamposition}) ; \to \MPmenutoks}% \hpos{#1:\currentamposition}{#3}} {#3}} \def\do@@ammenuposition#1% {\ifnum\currentamposition>0 \dowithnextbox{\hpos{menu:#1:\realfolio}{\flushnextbox}}\hbox % \hpos{menu:#1:\realfolio} % also ok if we skip over fi \fi} %D \macros %D {GFC, GTC, GSC} %D %D The next macros extend tables and tabulation with %D backgrounds and position related features. Areas are %D specified with symbolic names, and symbolic references to %D the graphics involved. Each table has its own namespace. \newcount\noftabpositions \newtoks \posXCtoks \def\tbPOSprefix {tbp:\number\noftabpositions:} \def\tablepos {\scratchtoks\posXCtoks \global\posXCtoks\emptytoks \the\scratchtoks} \let\tabulatepos\tablepos \def\dodododoGSC[#1:#2]% {\remappositionframed{#2}{\tbPOSprefix#1}% \bpos{\tbPOSprefix#1}% \doglobal\appendtoks\@EA\epos\@EA{\tbPOSprefix#1}\to\posXCtoks} \def\dododoGSC[#1:#2:#3]% {\doglobal\appendtoks\dodododoGSC[#1:#2]\to\posXCtoks\NC} \def\dodoGSC[#1]% {\def\docommand##1{\dododoGSC[##1:##1]}% \processcommalist[#1]\docommand} \def\dodododoGFC[#1:#2:#3]% {\remappositionframed{#2}{\tbPOSprefix#1}% \bpos{\tbPOSprefix#1}} \def\dododoGFC[#1]% {\def\docommand##1{\dodododoGFC[##1:##1]}% \processcommalist[#1]\docommand} \def\dodoGFC[#1]% {\doglobal\appendtoks\dododoGFC[#1]\to\posXCtoks\NC} \def\dododododoGTC[#1:#2]% {\epos{\tbPOSprefix#1}} \def\dodododoGTC[#1]% {\def\docommand##1{\dododododoGTC[##1:##1]}% \processcommalist[#1]\docommand} \def\dododoGTC[#1]% {\doglobal\appendtoks\dodododoGTC[#1]\to\posXCtoks} \def\dodoGTC[#1]% {\doglobal\appendtoks\dododoGTC[#1]\to\posXCtoks\NC} \def\dodododoXC[#1#2]% {\if#1>\dodoGFC [#2:#2]\else \if#1+\dodoGFC [#2:#2]\else \if#1<\dodoGTC [#2:#2]\else \if#1-\dodoGTC [#2:#2]\else \if#1=\dodoGSC [#2:#2]\else \dodoGSC[#1#2:#1#2]\fi\fi\fi\fi\fi} \def\dododoXC#1% {\dodododoXC[#1]} \def\dodoXC[#1]% {{\let\NC\relax\processcommalist[#1]\dododoXC}} \def\doGSC[#1]{\iffirstargument\dodoGSC[#1]\else\expandafter\NC\fi} \def\doGFC[#1]{\iffirstargument\dodoGFC[#1]\else\expandafter\NC\fi} \def\doGTC[#1]{\iffirstargument\dodoGTC[#1]\else\expandafter\NC\fi} \def\doXC [#1]{\iffirstargument\dodoXC [#1]\else\expandafter\fi\NC} \def\tbGSC{\dosingleempty\doGSC} \def\tbGFC{\dosingleempty\doGFC} \def\tbGTC{\dosingleempty\doGTC} \def\tbXC {\dosingleempty\doXC } %D The amount of code to support tables and tabulation is %D rather minimalistic. \let\tabulatepos\tablepos \def\tabulatenormalpos {\hss\tabulatepos\hss} \def\tabulateequalpos {\setbox\scratchbox\hbox{\tabulateEQ}% \hbox to \wd\scratchbox{\hss\kern\zeropoint\tabulatepos\hss}% \hskip-\wd\scratchbox \box\scratchbox} \def\tabulatenormalcolumn#1% overloaded {&\iftabulateequal\tabulateequalpos\else\tabulatenormalpos\fi &\global\chardef\tabulatetype#1&} \def\tabulateequalcolumn#1% overloaded {&\tabulateequalpos &\global\chardef\tabulatetype#1&} \appendtoks \global\advance\noftabpositions\plusone \to \everytabulate %D In order to prevent potential clashes with abbreviations, %D postpone the mapping. \appendtoks \let\GSC\tbGSC \let\GFC\tbGFC \let\GTC\tbGTC \let\XC\tbXC \to \everytabulate %D \macros %D {definepositionframed} %D %D The next example show how to provide backgrounds to table %D cells. First we define some framed backgrounds. %D %D \startbuffer %D \definepositionframed[x][background=color,backgroundcolor=red] %D \definepositionframed[y][background=color,backgroundcolor=green] %D \definepositionframed[z][background=color,backgroundcolor=blue] %D \stopbuffer %D %D \typebuffer %D %D % \getbuffer %D %D \startbuffer %D \starttabulate[|c|c|c|] %D \GFC[f:x] this is a small \NC table \NC in which we \NC \FR %D \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR %D \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR %D \stoptabulate %D \stopbuffer %D %D The table itself defines three areas (a, b and~c) using %D these frames. %D %D \typebuffer %D % \getbuffer %D %D Tables (based on \TABLE) are supported by: \def\normalTABLEsimplebar {\unskip\!ttRightGlue&\tablepos&} % | \def\normalTABLEcomplexbar{\unskip\!ttRightGlue&\omit\tablepos\!ttAlternateVrule} % \| \def\normalTABLEquote {\unskip\!ttRightGlue&\omit\tablepos&} % " \appendtoks \global\advance\noftabpositions\plusone \to \everytable %D Since we don't want nameclashes: \appendtoks \let\GSC\tbGSC \let\GFC\tbGFC \let\GTC\tbGTC \let\XC\tbXC \to \everytable %D In the previous example, we could have provided an overlay to %D the framed definition. A more direct approach is demonstrated %D below: %D %D \startbuffer %D \def\cw#1{\color[white]{#1}} %D %D \startMPpositiongraphic{tableshade} %D initialize_area(\MPpos{\MPvar{from}},\MPpos{\MPvar{to}}) ; %D color c ; c := \MPvar{color} ; %D linear_shade(pxy,0,.4c,.9c) ; %D anchor_area(\MPanchor{\MPvar{from}}) ; %D \stopMPpositiongraphic %D %D \setMPpositiongraphic{b:x}{tableshade}{from=b:x,to=e:x,color=red} %D \setMPpositiongraphic{b:y}{tableshade}{from=b:y,to=e:y,color=green} %D \setMPpositiongraphic{b:z}{tableshade}{from=b:z,to=e:z,color=blue} %D \stopbuffer %D %D \typebuffer \getbuffer %D %D The definition of the table looks about the same as the %D previous one: %D %D \startbuffer %D \starttable[|c|c|c|] %D \GFC[b:z] \cw{this is a small} \NC \cw{table} \NC in which we \NC \FR %D \NC \cw{will demonstrate} \GFC[c:y] \cw{that this} \GTC[c] \cw{positioning} \NC \MR %D \GSC[a:x] \cw{mechanism also} \GTC[b] \cw{works quite well} \NC in tables \NC \LR %D \stoptable %D \stopbuffer %D %D \typebuffer %D %D \getbuffer % \definepositionframed[w][background=color,backgroundcolor=yellow] % \definepositionframed[x][background=color,backgroundcolor=red] % \definepositionframed[y][background=color,backgroundcolor=green] % \definepositionframed[z][background=color,backgroundcolor=blue] % % \starttabulate[|c|c|c|] % \NC this is a small \NC table \NC in which we \NC \FR % \NC will demonstrate \NC that this \NC positioning \NC \MR % \NC mechanism also \NC works quite well \NC in tables \NC \LR % \stoptabulate % % \starttabulate[|c|c|c|] % \GFC[f:x] this is a small \GTC table \NC in which we \NC \FR % \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR % \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR % \stoptabulate % % \starttabulate[|c|c|c|] % \GFC[f:x,d:w] this is a small \GTC[d] table \NC in which we \NC \FR % \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR % \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR % \stoptabulate % % \starttabulate[|c|c|c|] % \XC[+f:x] this is a small \XC table \NC in which we \NC \FR % \NC will demonstrate \XC[+g:z] that this \XC[-g] positioning \NC \MR % \XC[=e:y] mechanism also \XC[-f] works quite well \NC in tables \NC \LR % \stoptabulate % % \starttabulate[|c|c|c|] % \XC[+f:x,+d:w] this is a small \XC[-d] table \NC in which we \NC \FR % \NC will demonstrate \XC[+g:z] that this \XC[-g] positioning \NC \MR % \XC[=e:y] mechanism also \XC[-f] works quite well \NC in tables \NC \LR % \stoptabulate % evt [b:x] % % \definepositionframed[x][background=color,fillcolor=red] % \definepositionframed[y][background=color,fillcolor=green] % \definepositionframed[z][background=color,fillcolor=blue] \def\remappositionframed#1#2% from to {\copyposition{b:#1}{b:#2}% \copyposition{e:#1}{e:#2}% \dosetpositionaction{b:#2}{\dopositionaction{b:#1}}} \def\definepositionframed {\dodoubleargument\dodefinepositionframed} \def\dodefinepositionframed[#1][#2]% {\dosetpositionaction{b:#1}{\dopositionframed[#1][#2]}} \def\positionframed {\dodoubleempty\dopositionframed} \def\dopositionframed[#1][#2]% {\bgroup \setbox\scratchbox\hbox {\dimen0=\MPx{e:#1}% \advance\dimen0 -\MPx{b:#1}% \dimen2=\MPy{b:#1}% \advance\dimen2 -\MPy{e:#1}% \advance\dimen2 \MPd{e:#1}% \lower\dimen2\hbox {\advance\dimen2 \MPh{b:#1}% \framed [\c!width=\dimen0,\c!height=\dimen2, \c!offset=\v!overlay,#2]{}}}% \smashedbox\scratchbox \egroup} % \def\sethdistances#1% % {\hbox{\lpos{ml:#1}\hpos{mh:#1}{\strut}\rpos{mr:#1}}} % % \def\gethdistances#1% % {\scratchdimen\MPx{mh:#1}% % \advance\scratchdimen -\MPx{ml#1}% % \edef\lefthdistance{\the\scratchdimen}% % \scratchdimen\MPx{mr:#1}% % \advance\scratchdimen -\MPx{mh:#1}% % \edef\righthdistance{\the\scratchdimen}} \protect \endinput % todo 1: shift down option % \startuseMPgraphic{mpos:par:columnset} % \iftracepositions show_multi_pars \else draw_multi_pars \fi ; % path p ; p := boundingbox currentpicture ; % currentpicture := currentpicture shifted (0,-StrutDepth/2) ; % setbounds currentpicture to p ; % \stopuseMPgraphic \definetextbackground[underline] [location=text,alternative=1,background=,frame=off] \definetextbackground[overstrike] [location=text,alternative=2,background=,frame=off] \definetextbackground[exlines] [location=text,alternative=3,background=,frame=off] \definetextbackground[strikethrough][location=text,alternative=4,background=,frame=off] \definestartstop [underline] [before={\starttextbackground[underline]}, after=\stoptextbackground] \definestartstop [overstrike] [before={\starttextbackground[overstrike]}, after=\stoptextbackground] \definestartstop [exlines] [before={\starttextbackground[exlines]}, after=\stoptextbackground] \definestartstop [strikethrough] [before={\starttextbackground[strikethrough]}, after=\stoptextbackground] \definetextbackground [sideline] [mp=mpos:par:sideline, location=paragraph, framecolor=red, frameoffset=5mm] \definestartstop [sideline] [before={\starttextbackground[sideline]}, after=\stoptextbackground] \starttext \startunderline \input tufte \stopunderline \blank \startoverstrike \input tufte \stopoverstrike \blank \startexlines \input tufte \stopexlines \blank \startstrikethrough \input tufte \stopstrikethrough \blank \startsideline \input tufte \stopsideline \blank \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-heb.mkii0000644000175000017500000000065114536300610024635 0ustar hillehille%D \module %D [ file=enco-heb, %D version=2005.01.27, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Hebrew, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D To be done. \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-uti.mkii0000644000175000017500000002350514536300610024707 0ustar hillehille%D \module %D [ file=core-uti, %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=Utility File Handling, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Utility File Handling} \unprotect % todo : safe lan etc too % todo : load all commands at once (tok) % todo : merge status info patch into tui file (language, encoding, etc), % Utility-file % % De onderstaande macro's ondersteunen het gebruik van de % zogeheten utility-file. Alle extern onder te brengen % informatie wordt opgeslagen in de file \jobname.tui, tenzij % er selectief pagina's worden gezet. In dat geval wordt de % file \jobname.tmp gebruikt. Informatie wordt ingelezen uit % de file \jobname.tuo, welke door TeXUtil wordt aangemaakt. \edef\utilityversion{1998.07.07} % was: 1996.03.15 % status variables \edef\utilityversion{1998.12.20} % was: 1998.07.07 % index attributes \edef\utilityversion{2003.07.19} % was: 1998.12.20 % object pages \edef\utilityversion{2006.06.23} % was: 2003.07.19 % -- instead of : \edef\utilityversion{2006.09.21} % pt in pos \edef\utilityversion{2008.10.14} % moved more to lua in mkiv % Bepaalde commando's worden als string weggeschreven. Deze % zijn aan het eind van deze file gedefinieerd. % Om een opbouw van spaties te voorkomen (???) moet ^^M een % andere betekenis krijgen: % % \catcode`\^^M=14 (comment) % % read file % % \catcode`\^^M=5 (end of line) \newwrite\utility@tui \newif\ifutilitydone \ifx\sectionseparator\undefined \def\sectionseparator{-} \fi \def\@@utilityerrormessage {\showmessage\m!systems8\empty \globallet\@@utilityerrormessage\relax} \def\thisisutilityversion#1% {\doifelse\utilityversion{#1}% {\checksectionseparator} {\@@utilityerrormessage\resetutilities\endinput}} \def\checksectionseparator % catches backward compatibility conflict {}% \doifnot\sectionseparator:\endinput} % this dependency may go in a few years \def\dosplitofffoliopart[#1--#2--#3]{#3} \def\thisissectionseparator#1% {\bgroup \globallet\checksectionseparator\relax \defconvertedcommand \asciia\sectionseparator \defconvertedargument\asciib{#1}% \expanded{\gdef\noexpand\dosplitofffoliopart[####1\sectionseparator \sectionseparator####2\sectionseparator\sectionseparator####3]{####3}}% \ifx\asciia\asciib \egroup \else \egroup % todo \@@utilityerrormessage \resetutilities \endinput \fi} \def\writeutility {\write\utility@tui} \def\writeutilitycommand#1{\write\utility@tui{c \string#1}} % less tokens % % \def\immediatewriteutility {\immediate\writeutility} % \def\immediatewriteutilitycommand{\immediate\writeutilitycommand} % % more flexible (for overloading) \def\immediatewriteutility {\immediate\write\utility@tui} \def\immediatewriteutilitycommand#1{\immediate\write\utility@tui{c \string#1}} % as in: \def\cwriteutility#1% {\write\utility@tui{\noexpand\checkedutility{\number\nofshipouts}{#1}}} \def\cwriteutilitycommand#1% {\write\utility@tui{\noexpand\checkedutility{\number\nofshipouts}{c \string#1}}} \let\checkedutility\secondoftwoarguments \def\docheckedutility#1#2{\ifnum#1=\nofshipouts#2\else\letterpercent\fi} \prependtoks \let\checkedutility\docheckedutility \to \everybeforeshipout % Better use marks. \newtoks \everyopenutilities \newtoks \everycloseutilities \newtoks \everycheckutilities \def\openutilities {\the\everyopenutilities } % \global\everyopenutilities\emptytoks \def\closeutilities{\the\everycloseutilities} \def\checkutilities{\the\everycheckutilities} \appendtoks \let\writeutility \cwriteutility \let\writeutilitycommand \cwriteutilitycommand %\let\immediatewriteutility \cimmediatewriteutility %\let\immediatewriteutilitycommand\cimmediatewriteutilitycommand \let\checkutilities \relax \to \everycheckutilities \appendtoks \immediate\openout\utility@tui\jobname.\f!inputextension \immediatewriteutilitycommand{\thisissectionseparator{\sectionseparator}}% for the moment \immediatewriteutilitycommand{\thisisutilityversion {\utilityversion }}% in this order \to \everyopenutilities \appendtoks % \immediate\closeout\utility@tui % niet echt nodig \reportutilityproblems % should be a message : \let\writeutilitycommand \gobbleoneargument \let\writeutility \gobbleoneargument \let\immediatewriteutilitycommand\gobbleoneargument \let\immediatewriteutility \gobbleoneargument \to \everycloseutilities % \def\reopenutilities % {\immediate\closeout\utility@tui % \openutilities} \def\abortutilitygeneration {\immediatewriteutilitycommand\utilitygenerationaborted \immediatewriteutility{q {quit}}} \def\utilitygenerationaborted {\showmessage\m!systems{21}\empty \globallet\utilitygenerationaborted\endinput \gdef\reportutilityproblems{\showmessage\m!systems{22}\empty}% \endinput} \def\savecurrentvalue#1#2% {\immediatewriteutilitycommand{\initializevariable\string#1{#2}}} \let\initializevariable\gdef \appendtoks \globallet\initializevariable\gobbletwoarguments \to \everyafterutilityread \let\reportutilityproblems\relax \newtoks\utilityresetlist \def\addutilityreset#1% {\@EA\appendtoks\csname\s!reset#1\endcsname\to\utilityresetlist} \def\resetutilities {\the\utilityresetlist} % #1=type #2=file #3=melding #4=voor #5=na % % Er wordt gegroepeerd. Als binnen een lijst (bijvoorbeeld) de % \leftskip is aangepast, maar nog geen \par is gegeven, dan % geldt buiten de groep de oude \leftskip. Aan #5 kan dan % ook \par worden meegegeven om de paragraaf af te sluiten. \newif\ifdoinpututilities \newif\ifunprotectutilities % voor't geval er \v!xxxxxx's zijn \def\currentutilityfilename{\jobname} % we need to pop and push, else problems with reading % utility files (toc) in xml mode and (e.g.) in a toc % entry doing a doifmode % % the following is not ok because we have no way to signal % xml content (yet), so for the moment we use this: \appendtoks \ifprocessingXML \processingXMLfalse \enableXML \catcode`\\=\@@escape \catcode`\{=\@@begingroup \catcode`\}=\@@endgroup \catcode`\%=\@@comment\relax \fi \to \everybeforeutilityread % \edef\testbytesequence % {\rawcharacter{7}% % \rawcharacter{27}% % %rawcharacter{227}% invalid in xetex, which expects utf % \rawcharacter{195}\rawcharacter{128}} % valid utf code % % \def\thisisbytesequence#1% % {\ifx\testbytesequence\empty\else % \defconvertedcommand\testbytesequence\testbytesequence % \defconvertedargument\ascii{#1}% % \ifx\testbytesequence\ascii \else % \writestatus\m!systems{possible problem with 8 bit output}% % \fi % \fi % \global\let\thisisbytesequence\gobbleoneargument} % % \ifnum\texengine=\xetexengine % \let\testbytesequence\empty % \fi % % \appendtoks % \immediatewriteutilitycommand{\thisisbytesequence{\testbytesequence}}% % \to \everyopenutilities \let\testbytesequence \empty % keep this \let\thisisbytesequence\gobbleoneargument % keep this \long\def\doutilities#1#2#3#4#5% % introduceren in utility file {\resetutilities % more than one utility thing can be handled in one pass, % for instance lists, so we process ##1 as list \def\douticommand##1{\csname\s!set##1\endcsname}% \processcommacommand[#1]\douticommand \begingroup \def\currentutilityfilename{#2}% \notesenabledfalse \doinpututilitiestrue \global\utilitydonefalse \pushendofline % geeft problemen zodra andere file wordt ingelezen \pushcatcodetable \setcatcodetable\ctxcatcodes \ifunprotectutilities % nog nodig ? \unprotect \fi #4% \the\everybeforeutilityread \readjobfile{#2.\f!outputextension}\donothing\donothing \the\everyafterutilityread \popcatcodetable #5% \relax \ifunprotectutilities \protect \fi \popendofline \ifutilitydone\else \doifsomething{#3} {\showmessage\m!systems9{{#3}}% \doifconcepttracing {\blank \setmessagetext\m!systems9{{#3}}% \type{[\currentmessagetext]}% \blank}}% \fi \endgroup} % Default-instellingen (verborgen) \prependtoks \resetutilities \to \everyjob % Experiment % % \installprogram{Hello World} % \installprogram[hw]{Hello World} % \installedprogram[hw] \def\installprogram {\dosingleempty\doinstallprogram} \def\doinstallprogram[#1]#2% {\doifelsenothing{#1} {\dodoinstallprogram{#2}} {\setvalue{\??up#1}{\dodoinstallprogram{#2}}}} \def\dodoinstallprogram#1% {\immediatewriteutility{e p {#1}}} \def\installedprogram[#1]% {\getvalue{\??up#1}} % \writeplugindata{texutil}{{alpha}} % \writeplugindata{texutil}{{beta}} % \writeplugindata{texutil}{{gamma}} % \writeplugindata{texutil}{{delta}} % % \loadplugindata {plugintest} \def\immediatewriteplugindata#1#2% {\immediatewriteutility{p u {#1} #2}} \def\writeplugindata#1#2% {\writeutility{p u {#1} #2}} \def\loadplugindata#1% {\doutilities{#1}\jobname\empty\relax\relax} % \plugincommand{\command{}{}{}} % % this way we can catch undefined commands \long\def\plugincommand#1% {\doplugincommand#1\relax} \long\def\doplugincommand#1% {\ifx#1\undefined \expandafter\noplugincommand \else \expandafter#1% \fi} \long\def\noplugincommand#1\relax {} % \addutilityreset{plugintest} % % \def\resetplugintest{\let\plugintest\gobbletwoarguments} % \def\setplugintest {\let\plugintest\writestatus} % % \installplugin % {plugintest} % {\let\plugintest\gobbletwoarguments} % {\let\plugintest\writestatus} \long\def\installplugin#1#2#3% {\addutilityreset {#1}% \long\setvalue{\s!reset#1}{#2}% \long\setvalue{\s!set #1}{#3}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-plg.mkii0000644000175000017500000001275414536300610024660 0ustar hillehille%D \module %D [ file=page-pls, %D version=2003.03.16, %D title=\CONTEXT\ Page Macros, %D subtitle=Page Setup, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \ifx\pageareabox\undefined \else \endinput \fi \writestatus{loading}{ConTeXt Page Macros / Extra Page Building} %D This feature has been present for a while but has never been %D exploited: pluggable pagebuilders. The next example code %D demonstrates the application of one such a plug-in. This variant %D support \type {page}, \type {leftpage} and \type {rightpage} %D definitions where specific areas are placed with the \type %D {\pagearea} command. %D %D \starttyping %D \setupheadertexts[the header text] %D \setupfootertexts[a pretty long left footer text][something right] %D \setupbottomtexts[a not so long bottom text][another right thing] %D \setuptexttexts [margin][something marginal][indeed] %D %D \startpagelayout[leftpage] %D \setupTABLE[offset=overlay] %D \setupTABLE[c][1][width=\leftmarginwidth] %D \bTABLE %D \bTR %D \bTD[nx=3,background=color,backgroundcolor=green] %D \pagearea[header][text][middle] %D \eTD %D \eTR %D \bTR %D \bTD \pagearea[text][margin][left] \eTD %D \bTD[nx=2] \pagearea[text] \eTD %D \eTR %D \bTR %D \bTD[nx=3,offset=overlay] %D {\bTABLE[width=.5\hsize] %D \bTR %D \bTD \pagearea[footer][text][left] \eTD %D \bTD \pagearea[bottom][text][left] \eTD %D \eTR %D \eTABLE} %D \eTD %D \eTR %D \eTABLE %D \stoppagelayout %D %D \startpagelayout[rightpage] %D \setupTABLE[offset=overlay] %D \setupTABLE[c][1][width=\rightmarginwidth] %D \bTABLE %D \bTR %D \bTD[nx=3] \pagearea[header][text][middle] \eTD %D \eTR %D \bTR %D \bTD \pagearea[text][margin][left] \eTD %D \bTD[nx=2] \pagearea[text] \eTD %D \eTR %D \bTR %D \bTD[nx=3,offset=overlay] %D {\bTABLE[width=.5\hsize] %D \bTR %D \bTD \pagearea[bottom][text][right] \eTD %D \bTD \pagearea[footer][text][right] \eTD %D \eTR %D \eTABLE} %D \eTD %D \eTR %D \eTABLE %D \stoppagelayout %D %D \setupcolors[state=start] %D %D \setupbackgrounds[text][background=color,backgroundcolor=blue] %D \setupbackgrounds[header][text][background=color,backgroundcolor=red] %D %D \setuppagenumbering[alternative=doublesided,location=] %D %D \setuplayout[method=makeup] %D %D \definetextbackground %D [test] %D [state=start, %D background=color, %D backgroundcolor=yellow] %D %D \starttext %D %D \dorecurse{10}{\input tufte \par} %D %D \input tufte \starttest \input tufte \stoptest \input tufte %D %D \starttabulate %D \NC test \NC \starttest \input tufte \stoptest \NC \NR %D \stoptabulate %D %D \dorecurse{10}{\input tufte \par} %D %D \stoptext %D \stoptyping \unprotect \setvalue{\??ly\c!method\v!makeup}#1#2% {\setbox\pagebox\hbox {\vbox to \textheight {\offinterlineskip % optie \vskip\dimexpr-1\topskip+\strutheight\relax % \textwidth\makeupwidth \hsize\textwidth \boxmaxdepth\maxdepth \noindent \dopagecontents#1#2}}% \wd\pagebox\makeupwidth \ht\pagebox\textheight \dp\pagebox\zeropoint \hsize\paperwidth \vsize\paperheight \setbox\pagebox\vbox {\doifbothsidesoverruled {\let\!!stringa\v!page} {\let\!!stringa\v!rightpage} {\let\!!stringa\v!leftpage}% \getvalue{\??ly\c!method:\!!stringa}}% \wd\pagebox\paperwidth \ht\pagebox\paperheight \dp\pagebox\zeropoint} \newbox\pageareabox \def\pagearea {\dotripleempty\dopagearea} \def\dopagearea[#1][#2][#3]% {\ifthirdargument \doifelse{#3}\v!left {\dodopagearea{#1}{#2}\c!lefttext} {\doifelse{#3}\v!right {\dodopagearea{#1}{#2}\c!righttext} {\dodopagearea{#1}{#2}\c!middletext}}% \else\ifsecondargument \doifbothsidesoverruled {\dodopagearea{#1}{#2}\c!righttext} {\dodopagearea{#1}{#2}\c!righttext} {\dodopagearea{#1}{#2}\c!lefttext }% \else \doif{#1}\v!text % copy due to trial runs in TABLE {\iftrialtypesetting \copy\pagebox \else \setbox\pagebox\vbox {\localstarttextcolor \box\pagebox \localstoptextcolor}% \localpositioningfalse \addtextbackground\pagebox \addtextgridlayer\pagebox \box\pagebox \fi}% \fi\fi} \def\dodopagearea#1#2#3% {\setbox\pageareabox\vbox{\getvalue{\??tk#1#2#3}}% \ifsomebackgroundfound{#1#2}% \iftrialtypesetting \box\pageareabox \else \localframed [\??ma#1#2] [\c!width=\wd\pageareabox, \c!height=\ht\pageareabox, \c!offset=\v!overlay] {\box\pageareabox}% \fi \else \box\pageareabox \fi} \setvalue{\??ly\c!method:\v!leftpage }{\getvalue{\??ly\c!method:\v!page}} \setvalue{\??ly\c!method:\v!rightpage}{\getvalue{\??ly\c!method:\v!page}} % \long\def\startpagelayout[#1]#2\stoppagelayout % {\long\setvalue{\??ly\c!method:#1}{#2}} \long\def\startpagelayout {\bgroup\catcode`\^^M=\@@ignore\dostartpagelayout} \long\def\dostartpagelayout[#1]#2\stoppagelayout {\egroup\long\setvalue{\??ly\c!method:#1}{#2}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-8859-15.mkii0000644000175000017500000002651514536300610024750 0ustar hillehille%D \module %D [ file=regi-8859-15, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=iso-8859-15 (West European), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for iso-8859-15/Latin9 input encoding (regime) for %D West European languages, almost the same as iso-8859-1 with rarely %D used symbols (currency symbol,%D fractions, accents) replaced by %D Euro and some additional letters,%D see also cp1252. %D %D Usage: \type{\enableregime[8859-15]} (see \type {regi-syn} for %D alternatives calls). \startregime[8859-15] \defineactivetoken 128 {\unknownchar} % 0080 \defineactivetoken 129 {\unknownchar} % 0081 \defineactivetoken 130 {\unknownchar} % 0082 \defineactivetoken 131 {\unknownchar} % 0083 \defineactivetoken 132 {\unknownchar} % 0084 \defineactivetoken 133 {\unknownchar} % 0085 \defineactivetoken 134 {\unknownchar} % 0086 \defineactivetoken 135 {\unknownchar} % 0087 \defineactivetoken 136 {\unknownchar} % 0088 \defineactivetoken 137 {\unknownchar} % 0089 \defineactivetoken 138 {\unknownchar} % 008A \defineactivetoken 139 {\unknownchar} % 008B \defineactivetoken 140 {\unknownchar} % 008C \defineactivetoken 141 {\unknownchar} % 008D \defineactivetoken 142 {\unknownchar} % 008E \defineactivetoken 143 {\unknownchar} % 008F \defineactivetoken 144 {\unknownchar} % 0090 \defineactivetoken 145 {\unknownchar} % 0091 \defineactivetoken 146 {\unknownchar} % 0092 \defineactivetoken 147 {\unknownchar} % 0093 \defineactivetoken 148 {\unknownchar} % 0094 \defineactivetoken 149 {\unknownchar} % 0095 \defineactivetoken 150 {\unknownchar} % 0096 \defineactivetoken 151 {\unknownchar} % 0097 \defineactivetoken 152 {\unknownchar} % 0098 \defineactivetoken 153 {\unknownchar} % 0099 \defineactivetoken 154 {\unknownchar} % 009A \defineactivetoken 155 {\unknownchar} % 009B \defineactivetoken 156 {\unknownchar} % 009C \defineactivetoken 157 {\unknownchar} % 009D \defineactivetoken 158 {\unknownchar} % 009E \defineactivetoken 159 {\unknownchar} % 009F \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\exclamdown} % 00A1 INVERTED EXCLAMATION MARK \defineactivetoken 162 {\textcent} % 00A2 CENT SIGN \defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN \defineactivetoken 164 {\texteuro} % 20AC EURO SIGN \defineactivetoken 165 {\textyen} % 00A5 YEN SIGN \defineactivetoken 166 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\ordfeminine} % 00AA FEMININE ORDINAL INDICATOR \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\textlognot} % 00AC NOT SIGN \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN \defineactivetoken 175 {\textmacron} % 00AF MACRON \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO \defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE \defineactivetoken 180 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON \defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN \defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON \defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE \defineactivetoken 186 {\ordmasculine} % 00BA MASCULINE ORDINAL INDICATOR \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\OEligature} % 0152 LATIN CAPITAL LIGATURE OE \defineactivetoken 189 {\oeligature} % 0153 LATIN SMALL LIGATURE OE \defineactivetoken 190 {\Ydiaeresis} % 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS \defineactivetoken 191 {\questiondown} % 00BF INVERTED QUESTION MARK \defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE \defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE \defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX \defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE \defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS \defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE \defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE \defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA \defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE \defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE \defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX \defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS \defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE \defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE \defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX \defineactivetoken 207 {\Idiaeresis} % 00CF LATIN CAPITAL LETTER I WITH DIAERESIS \defineactivetoken 208 {\Eth} % 00D0 LATIN CAPITAL LETTER ETH \defineactivetoken 209 {\Ntilde} % 00D1 LATIN CAPITAL LETTER N WITH TILDE \defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE \defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE \defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX \defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE \defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS \defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN \defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE \defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE \defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE \defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX \defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS \defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE \defineactivetoken 222 {\Thorn} % 00DE LATIN CAPITAL LETTER THORN \defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S \defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE \defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE \defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX \defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE \defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS \defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE \defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE \defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA \defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE \defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE \defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX \defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS \defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE \defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE \defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX \defineactivetoken 239 {\idiaeresis} % 00EF LATIN SMALL LETTER I WITH DIAERESIS \defineactivetoken 240 {\eth} % 00F0 LATIN SMALL LETTER ETH \defineactivetoken 241 {\ntilde} % 00F1 LATIN SMALL LETTER N WITH TILDE \defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE \defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE \defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX \defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE \defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS \defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN \defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE \defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE \defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE \defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX \defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS \defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE \defineactivetoken 254 {\thorn} % 00FE LATIN SMALL LETTER THORN \defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-cp1252.mkii0000644000175000017500000002716114536300610025022 0ustar hillehille%D \module %D [ file=regi-cp1252, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=cp1252 (West European), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for cp1252 input encoding (regime) for West European languages, %D see also iso-8859-1 and iso-8859-15. %D %D (Contributors to the original file: Tobias Burnus, Hans Hagen \& Victor Figurnov.) %D %D Usage: %D \type{\enableregime[cp1252]} or \type{\enablereregime[windows-1252]} %D % and \enableregime[win] for backward-compatibility \startregime[cp1252] \defineactivetoken 128 {\texteuro} % 20AC EURO SIGN \defineactivetoken 129 {\unknownchar} % \defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK \defineactivetoken 131 {\fhook} % 0192 LATIN SMALL LETTER F WITH HOOK \defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK \defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS \defineactivetoken 134 {\textdag} % 2020 DAGGER \defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER \defineactivetoken 136 {\textcircumflex} % 02C6 MODIFIER LETTER CIRCUMFLEX ACCENT \defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN \defineactivetoken 138 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON \defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK \defineactivetoken 140 {\OEligature} % 0152 LATIN CAPITAL LIGATURE OE \defineactivetoken 141 {\unknownchar} % \defineactivetoken 142 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON \defineactivetoken 143 {\unknownchar} % \defineactivetoken 144 {\unknownchar} % \defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK \defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK \defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK \defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK \defineactivetoken 149 {\textbullet} % 2022 BULLET \defineactivetoken 150 {\endash} % 2013 EN DASH \defineactivetoken 151 {\emdash} % 2014 EM DASH \defineactivetoken 152 {\texttilde} % 02DC SMALL TILDE \defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN \defineactivetoken 154 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON \defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK \defineactivetoken 156 {\oeligature} % 0153 LATIN SMALL LIGATURE OE \defineactivetoken 157 {\unknownchar} % \defineactivetoken 158 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON \defineactivetoken 159 {\Ydiaeresis} % 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\exclamdown} % 00A1 INVERTED EXCLAMATION MARK \defineactivetoken 162 {\textcent} % 00A2 CENT SIGN \defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN \defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN \defineactivetoken 165 {\textyen} % 00A5 YEN SIGN \defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\ordfeminine} % 00AA FEMININE ORDINAL INDICATOR \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\textlognot} % 00AC NOT SIGN \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN \defineactivetoken 175 {\textmacron} % 00AF MACRON \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO \defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE \defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT \defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN \defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA \defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE \defineactivetoken 186 {\ordmasculine} % 00BA MASCULINE ORDINAL INDICATOR \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\onequarter} % 00BC VULGAR FRACTION ONE QUARTER \defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF \defineactivetoken 190 {\threequarter} % 00BE VULGAR FRACTION THREE QUARTERS \defineactivetoken 191 {\questiondown} % 00BF INVERTED QUESTION MARK \defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE \defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE \defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX \defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE \defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS \defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE \defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE \defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA \defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE \defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE \defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX \defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS \defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE \defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE \defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX \defineactivetoken 207 {\Idiaeresis} % 00CF LATIN CAPITAL LETTER I WITH DIAERESIS \defineactivetoken 208 {\Eth} % 00D0 LATIN CAPITAL LETTER ETH \defineactivetoken 209 {\Ntilde} % 00D1 LATIN CAPITAL LETTER N WITH TILDE \defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE \defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE \defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX \defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE \defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS \defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN \defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE \defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE \defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE \defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX \defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS \defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE \defineactivetoken 222 {\Thorn} % 00DE LATIN CAPITAL LETTER THORN \defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S \defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE \defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE \defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX \defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE \defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS \defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE \defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE \defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA \defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE \defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE \defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX \defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS \defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE \defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE \defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX \defineactivetoken 239 {\idiaeresis} % 00EF LATIN SMALL LETTER I WITH DIAERESIS \defineactivetoken 240 {\eth} % 00F0 LATIN SMALL LETTER ETH \defineactivetoken 241 {\ntilde} % 00F1 LATIN SMALL LETTER N WITH TILDE \defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE \defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE \defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX \defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE \defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS \defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN \defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE \defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE \defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE \defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX \defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS \defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE \defineactivetoken 254 {\thorn} % 00FE LATIN SMALL LETTER THORN \defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/java-fld.mkii0000644000175000017500000003242714536300610024647 0ustar hillehille%D \module %D [ file=java-fld, %D version=1998.05.20, %D title=\CONTEXT\ JavaScript Macros, %D subtitle=Field Support, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % will be simplified, since we now parse functions % nu nog alles geladen, moet dus anders \startJSpreamble {Sanitize_TeX_Input} used later function Sanitized_TeX_String (value) { var v = value ; v = v.replace( /\\\\oe/g,"\\234") ; v = v.replace( /\\\\<>/g,"\\273") ; v = v.replace( /\\\\`A/g,"\\300") ; v = v.replace( /\\\\'A/g,"\\301") ; v = v.replace( /\\\\^A/g,"\\302") ; v = v.replace( /\\\\~A/g,"\\303") ; v = v.replace( /\\\\"A/g,"\\304") ; v = v.replace( /\\\\oA/g,"\\305") ; v = v.replace( /\\\\AE/g,"\\306") ; v = v.replace( /\\\\,C/g,"\\307") ; v = v.replace( /\\\\`E/g,"\\310") ; v = v.replace( /\\\\'E/g,"\\311") ; v = v.replace( /\\\\^E/g,"\\312") ; v = v.replace( /\\\\"E/g,"\\313") ; v = v.replace( /\\\\`I/g,"\\314") ; v = v.replace( /\\\\'I/g,"\\315") ; v = v.replace( /\\\\^I/g,"\\316") ; v = v.replace( /\\\\"I/g,"\\317") ; v = v.replace( /\\\\~N/g,"\\321") ; v = v.replace( /\\\\`O/g,"\\322") ; v = v.replace( /\\\\'O/g,"\\323") ; v = v.replace( /\\\\^O/g,"\\324") ; v = v.replace( /\\\\~O/g,"\\325") ; v = v.replace( /\\\\"O/g,"\\326") ; v = v.replace( /\\\\`U/g,"\\331") ; v = v.replace( /\\\\'U/g,"\\332") ; v = v.replace( /\\\\^U/g,"\\333") ; v = v.replace( /\\\\"U/g,"\\334") ; v = v.replace( /\\\\'Y/g,"\\335") ; v = v.replace( /\\\\ss/g,"\\337") ; v = v.replace( /\\\\`a/g,"\\340") ; v = v.replace( /\\\\'a/g,"\\341") ; v = v.replace( /\\\\^a/g,"\\342") ; v = v.replace( /\\\\~a/g,"\\343") ; v = v.replace( /\\\\"a/g,"\\344") ; v = v.replace( /\\\\oa/g,"\\345") ; v = v.replace( /\\\\ae/g,"\\346") ; v = v.replace( /\\\\,c/g,"\\347") ; v = v.replace( /\\\\`e/g,"\\350") ; v = v.replace( /\\\\'e/g,"\\351") ; v = v.replace( /\\\\^e/g,"\\352") ; v = v.replace( /\\\\"e/g,"\\353") ; v = v.replace( /\\\\`i/g,"\\354") ; v = v.replace( /\\\\'i/g,"\\355") ; v = v.replace( /\\\\^i/g,"\\356") ; v = v.replace( /\\\\"i/g,"\\357") ; v = v.replace( /\\\\~n/g,"\\361") ; v = v.replace( /\\\\`o/g,"\\362") ; v = v.replace( /\\\\'o/g,"\\363") ; v = v.replace( /\\\\^o/g,"\\364") ; v = v.replace( /\\\\~o/g,"\\365") ; v = v.replace( /\\\\"o/g,"\\366") ; v = v.replace( /\\\\`u/g,"\\371") ; v = v.replace( /\\\\'u/g,"\\372") ; v = v.replace( /\\\\^u/g,"\\373") ; v = v.replace( /\\\\"u/g,"\\374") ; v = v.replace( /\\\\'y/g,"\\375") ; v = v.replace( /\\\\"y/g,"\\377") ; return(v) } var TeX_Key_Mode = 0 ; function Initialize_TeX_Keystroke () { TeX_Key_Char = "" ; TeX_Key_Mode = 0 } function Sanitized_TeX_Keystroke (change) { if (change=="\\\\") { TeX_Key_Mode = 1 ; return("") } else if (TeX_Key_Mode==1) { TeX_Key_Mode = 2 ; TeX_Key_Char = change ; return("") } else if (TeX_Key_Mode==2) { TeX_Key_Mode = 0 ; TeX_Key_Char = "\\\\"+TeX_Key_Char+change ; return(Sanitized_TeX_String(TeX_Key_Char)) } else { TeX_Key_Mode = 0 ; return(change) } } \stopJSpreamble \startJScode {Initialize_TeX_Key} uses {Sanitize_TeX_Input} Initialize_TeX_Keystroke() ; \stopJScode \startJScode {Convert_TeX_Key} uses {Sanitize_TeX_Input} if (!event.willCommit) { event.change = Sanitized_TeX_Keystroke(event.change) } \stopJScode \startJScode{Convert_TeX_String} uses {Sanitize_TeX_Input} event.value = Sanitized_TeX_String(event.value) ; \stopJScode \startJSpreamble fields_1 used now var visible_field = new Array() ; var visible_fields = 0 ; function PresetFields ( ) { this.syncAnnotScan() } function Preset_Fields ( ) { this.syncAnnotScan() } function Hide_When_Down ( ) { event.target.hidden = true } function Hide_Field ( Name ) { var v = this.getField(Name) ; if (v) { v.hidden = true ; v.readonly = true ; this.dirty = false } } function Do_Vide_Field ( Name, Closable ) { var v = this.getField(Name) ; if (v) { ++visible_fields ; visible_field[visible_fields] = Name ; v.hidden = false ; if (Closable) { v.readonly = false ; v.value = "On" } this.dirty = false } } function Vide_Field ( Name ) { Do_Vide_Field(Name,false) } function Vide_Hide_Field ( Name ) { Do_Vide_Field(Name,true) } function Hide_Fields () { while (visible_fields>0) { Hide_Field(visible_field[visible_fields]) ; --visible_fields } } function Vide_Fields ( Name ) { Hide_Fields () ; Vide_Field ( Name) } function Vide_Hide_Fields ( Name ) { Hide_Fields () ; Vide_Hide_Field ( Name) } function Toggle_Hide ( Name ) { var v = this.getField(Name) ; if (v) { v.hidden = !v.hidden ; this.dirty = false } } function Field_On ( Name ) { v = this.getField(Name) ; if (v) { v.value = "On" ; this.dirty = false } } function Field_Off ( Name ) { var v = this.getField(Name) ; if (v) { v.value = "Off" ; this.dirty = false } } function Toggle_Value ( Name ) { var v = this.getField(Name) ; if (v) { if (v.value=="On") { v.value = "Off" } else { v.value = "On" } } this.dirty = false } function Toggle_Read ( Name ) { var v = this.getField(Name); if (v) { v.readonly = !v.readonly } } function Flip_Fields ( Name ) { var Names = Name.split(",") ; for (var i=0;i0) { var v = this.getField(FieldSet + ":" + fieldset.number) ; if (v) { if (v.value == "On") { v.value = "Off" ; } } fieldset.number-- ; v = this.getField(FieldSet + ":" + fieldset.number) ; if (v) { v.value = "On" ; } } } } function Next_Walk_Field ( FieldSet ) { var fieldset = Do_Get_Check_Walk_Field(FieldSet) ; if (fieldset) { Do_Stop_Auto_Walk_Field(FieldSet) ; fieldset.running = false ; fieldset.paused = false ; var f = fieldset.number + 1 ; var v = this.getField(FieldSet + ":" + f) ; if (v) { var v = this.getField(FieldSet + ":" + fieldset.number) ; if (v) { if (v.value == "On") { v.value = "Off" ; } } fieldset.number++ ; v = this.getField(FieldSet + ":" + fieldset.number) ; if (v) { v.value = "On" ; } } } } function Set_Walk_Field_Delay ( FieldSet, Delay ) { var fieldset = Do_Get_Check_Walk_Field(FieldSet) ; if (fieldset) { if (Delay) { fieldset.delay = Delay ; if (fieldset.running) { Do_Stop_Auto_Walk_Field(FieldSet) ; Do_Start_Auto_Walk_Field(FieldSet) ; } } } } \stopJSpreamble \definereference[Walk] [JS(Walk_Field)] \definereference[StartWalk] [JS(Start_Walk_Field)] \definereference[StopWalk] [JS(Stop_Walk_Field)] \definereference[PauseWalk] [JS(Pause_Walk_Field)] \definereference[ResetWalk] [JS(Reset_Walk_Field)] \definereference[PreviousWalk][JS(Previous_Walk_Field)] \definereference[NextWalk] [JS(Next_Walk_Field)] \definereference[SetWalkDelay][JS(Set_Walk_Field_Delay)] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/syst-ini.mkii0000644000175000017500000011341514536300610024737 0ustar hillehille%D \module %D [ file=syst-ini, %D version=2008.11.04, % 2001.11.16, % 1999.03.17, % an oldie: 1995.10.10 %D title=\CONTEXT\ System Macros, %D subtitle=Bootstrapping \TEX, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D We used to load plain \TEX\ in a special way, but redefining %D a couple of primitives so that for instance font loading was %D ignored. For those interested, this loader is found in %D \type {syst-tex.tex}. Some of the comment's are Don Knuth's %D and more of it can be found in the plain \TEX\ format. %D Characters can have special states, that can be triggered %D by setting their category coded. Some are preset, others %D are to be set as soon as possible, otherwise we cannot %D define any useful macros. %catcode`\^^@ = 9 % ascii null is ignored %catcode`\\ = 0 % backslash is TeX escape character \catcode`\{ = 1 % left brace is begin-group character \catcode`\} = 2 % right brace is end-group character \catcode`\$ = 3 % dollar sign is math shift \catcode`\& = 4 % ampersand is alignment tab \catcode`\# = 6 % hash mark is macro parameter character \catcode`\^ = 7 % circumflex and uparrow are for superscripts \catcode`\_ = 8 % underline and downarrow are for subscripts \catcode`\^^I = 10 % ascii tab is a blank space %catcode`\^^M = 5 % ascii return is end-line %catcode`\% = 14 % percent sign is comment character %catcode`\ = 10 % ascii space is blank space %catcode`\^^? = 15 % ascii delete is invalid \catcode`\~ = 13 % tilde is active \catcode`\^^L = 13 % ascii form-feed %catcode`\A = 11 %....... %catcode`\Z = 11 %catcode`\a = 11 %....... %catcode`\z = 11 \chardef\activecatcode = 13 % later this will become a counter \def ^^L{\par} \def\^^M{\ } % control = control \def\^^I{\ } % same for %D In \CONTEXT, we simply ignore end||of||file tokens: \catcode`\^^Z=9 %D It makes sense to know what engine we're running so let's %D try to deduce it. \chardef\unknownengine = 0 \chardef\pdftexengine = 1 \chardef\xetexengine = 2 \chardef\luatexengine = 3 \ifx\directlua\undefined \ifx\XeTeXversion\undefined \ifx\pdftexversion\undefined \let\texengine\unknownengine \else \let\texengine\pdftexengine \fi \else \let\texengine\xetexengine \fi \else \let\texengine\luatexengine \fi \ifnum\texengine=\unknownengine \immediate\write16{>>>} \immediate\write16{>>> only pdftex, xetex and luatex are supported} \immediate\write16{>>>} \let\dump\relax \expandafter\end \fi \ifnum\texengine=\luatexengine \directlua 0 { % this info is stored in the format % kpse.set_program_name("context") lua.name[0] = "main ctx instance" local extraprimitives = tex.extraprimitives local enableprimitives = tex.enableprimitives local core = extraprimitives('core') local btex = extraprimitives('tex') local etex = extraprimitives('etex') local pdftex = extraprimitives('pdftex') local luatex = extraprimitives('luatex') local omega = { "textdir", "pagedir", "mathdir", "pardir", "bodydir", "leftghost", "rightghost", "localleftbox", "localrightbox", "localinterlinepenalty", "localbrokenpenalty", } local aleph = { "boxdir", "pagebottomoffset", "pagerightoffset", } for _, subset in next, { etex, pdftex, luatex, omega, aleph } do enableprimitives('',subset) end for _, subset in next, { core, btex, etex, pdftex, luatex, omega, aleph } do enableprimitives('normal',subset) end } \fi \ifdefined\pdfextension % promoted \let\pdfpagewidth \pagewidth \let\pdfpageheight \pageheight \let\pdfadjustspacing \adjustspacing \let\pdfprotrudechars \protrudechars \let\pdfnoligatures \ignoreligaturesinfont \let\pdffontexpand \expandglyphsinfont \let\pdfcopyfont \copyfont \let\pdfxform \saveboxresource \let\pdflastxform \lastsavedboxresourceindex \let\pdfrefxform \useboxresource \let\pdfximage \saveimageresource \let\pdflastximage \lastsavedimageresourceindex \let\pdflastximagepages\lastsavedimageresourcepages \let\pdfrefximage \useimageresource \let\pdfsavepos \savepos \let\pdflastxpos \lastxpos \let\pdflastypos \lastypos % \let\pdftexversion \luatexversion % \let\pdftexrevision \luatexrevision \let\pdftexbanner \luatexbanner \let\pdfoutput \outputmode \let\pdfdraftmode \draftmode \let\pdfpxdimen \pxdimen \let\pdfinsertht \insertht % also promoted % \let\pdfnormaldeviate \normaldeviate % \let\pdfuniformdeviate \uniformdeviate % \let\pdfsetrandomseed \setrandomseed % \let\pdfrandomseed \randomseed % % \let\pdfprimitive \primitive % % \let\expandafter\csname ifpdfabsnum\expandafter\endcsname\csname ifabsnum\endcsname % \let\expandafter\csname ifpdfabsdim\expandafter\endcsname\csname ifabsdim\endcsname % \let\expandafter\csname ifpdfprimitive\expandafter\endcsname\csname ifprimitive\endcsname % removed (also some others but already long ago) \newdimen\pdfeachlineheight \newdimen\pdfeachlinedepth \newdimen\pdflastlinedepth \newdimen\pdffirstlineheight \newdimen\pdfignoreddimen % grouped \protected\def\pdfliteral {\pdfextension literal} \protected\def\pdfcolorstack {\pdfextension colorstack} \protected\def\pdfsetmatrix {\pdfextension setmatrix} \protected\def\pdfsave {\pdfextension save\relax} \protected\def\pdfrestore {\pdfextension restore\relax} \protected\def\pdfobj {\pdfextension obj } \protected\def\pdfrefobj {\pdfextension refobj } \protected\def\pdfannot {\pdfextension annot } \protected\def\pdfstartlink {\pdfextension startlink } \protected\def\pdfendlink {\pdfextension endlink\relax} \protected\def\pdfoutline {\pdfextension outline } \protected\def\pdfdest {\pdfextension dest } \protected\def\pdfthread {\pdfextension thread } \protected\def\pdfstartthread {\pdfextension startthread } \protected\def\pdfendthread {\pdfextension endthread\relax} \protected\def\pdfinfo {\pdfextension info } \protected\def\pdfcatalog {\pdfextension catalog } \protected\def\pdfnames {\pdfextension names } \protected\def\pdfincludechars {\pdfextension includechars } \protected\def\pdffontattr {\pdfextension fontattr } \protected\def\pdfmapfile {\pdfextension mapfile } \protected\def\pdfmapline {\pdfextension mapline } \protected\def\pdftrailer {\pdfextension trailer } \protected\def\pdfglyphtounicode {\pdfextension glyphtounicode } % grouped \def\pdftexversion {\numexpr\pdffeedback version} \def\pdftexrevision {\pdffeedback revision} \def\pdflastlink {\numexpr\pdffeedback lastlink} \def\pdfretval {\numexpr\pdffeedback retval} \def\pdflastobj {\numexpr\pdffeedback lastobj} \def\pdflastannot {\numexpr\pdffeedback lastannot} \def\pdfxformname {\numexpr\pdffeedback xformname} \def\pdfcreationdate {\pdffeedback creationdate} \def\pdffontname {\numexpr\pdffeedback fontname} \def\pdffontobjnum {\numexpr\pdffeedback fontobjnum} \def\pdffontsize {\dimexpr\pdffeedback fontsize} \def\pdfpageref {\numexpr\pdffeedback pageref} \def\pdfcolorstackinit {\pdffeedback colorstackinit} % used when defined \edef\pdfcompresslevel {\pdfvariable compresslevel} \pdfcompresslevel 9 \edef\pdfobjcompresslevel {\pdfvariable objcompresslevel} \pdfobjcompresslevel 1 \edef\pdfdecimaldigits {\pdfvariable decimaldigits} \pdfdecimaldigits 3 \edef\pdfgamma {\pdfvariable gamma} \pdfgamma 1000 \edef\pdfimageresolution {\pdfvariable imageresolution} \pdfimageresolution 71 \edef\pdfimageapplygamma {\pdfvariable imageapplygamma} \pdfimageapplygamma 0 \edef\pdfimagegamma {\pdfvariable imagegamma} \pdfimagegamma 2200 \edef\pdfimagehicolor {\pdfvariable imagehicolor} \pdfimagehicolor 1 \edef\pdfimageaddfilename {\pdfvariable imageaddfilename} \pdfimageaddfilename 1 \edef\pdfpkresolution {\pdfvariable pkresolution} \pdfpkresolution 72 \edef\pdfinclusioncopyfonts {\pdfvariable inclusioncopyfonts} \pdfinclusioncopyfonts 0 \edef\pdfinclusionerrorlevel {\pdfvariable inclusionerrorlevel} \pdfinclusionerrorlevel 0 \edef\pdfgentounicode {\pdfvariable gentounicode} \pdfgentounicode 0 \edef\pdfpagebox {\pdfvariable pagebox} \pdfpagebox 0 \edef\pdfminorversion {\pdfvariable minorversion} \pdfminorversion 4 \edef\pdfuniqueresname {\pdfvariable uniqueresname} \pdfuniqueresname 0 \edef\pdfhorigin {\pdfvariable horigin} \pdfhorigin 1in \edef\pdfvorigin {\pdfvariable vorigin} \pdfvorigin 1in \edef\pdflinkmargin {\pdfvariable linkmargin} \pdflinkmargin 0pt \edef\pdfdestmargin {\pdfvariable destmargin} \pdfdestmargin 0pt \edef\pdfthreadmargin {\pdfvariable threadmargin} \pdfthreadmargin 0pt \edef\pdfpagesattr {\pdfvariable pagesattr} \edef\pdfpageattr {\pdfvariable pageattr} \edef\pdfpageresources {\pdfvariable pageresources} \edef\pdfxformattr {\pdfvariable xformattr} \edef\pdfxformresources {\pdfvariable xformresources} \edef\pdfpkmode {\pdfvariable pkmode} \fi %D \ETEX\ has a not so handy way of telling you the version number, %D i.e. the revision number has a period in it: \long\def\gobbleoneargument#1{} % will be defined later on anyway \mathchardef\etexversion = \numexpr\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision\relax %D First we define a simplified version of the \CONTEXT\ %D protection mechanism. \def\unprotect{\catcode`@=11 } \def\protect {\catcode`@=12 } \unprotect %D Some pretty important definitions: \let\bgroup={ \let\egroup=} %D Allocation of registers is done slightly different than in plain %D \TEX. First of all we use different reserved counters. We also %D don't implement a family handler because users are not supposed %D to implement their own math. We reserve the lowest 31 registers %D for scratch purposes. Keep in mind that in the core engine %D some registers are reserved: counters 0 upto 9, and counter 255. %D %D As with plain \TEX\ we recommend that macro designers always use %D \type {\global} assignments with respect to registers numbered 1, %D 3, 5 \unknown\ 31, and always non||\type {\global} assignments %D with respect to registers 0, 2, 4, \unknown\ 30. This will prevent %D \quote {save stack buildup} that might otherwise occur. %D %D We reserve some registers for special (management) purposes: % 0 - 20 : scratch % 21 - 127 : internal % 128 - 254 : inserts % 255 : page % 256 - : user \countdef \minallocatedregister = 52 \minallocatedregister = 256 \countdef \maxallocatedregister = 53 \maxallocatedregister = 32767 \countdef \minallocatediochannel = 54 \minallocatediochannel = -1 \countdef \maxallocatediochannel = 55 \maxallocatediochannel = 16 \countdef \minallocatedlanguage = 56 \minallocatedlanguage = 0 \countdef \maxallocatedlanguage = 57 \maxallocatedlanguage = 255 \countdef \maxallocatedinsert = 58 \maxallocatedinsert = 254 \countdef \minallocatedinsert = 59 \minallocatedinsert = 128 \countdef \minallocatedfamily = 60 \minallocatedfamily = 128 \countdef \maxallocatedfamily = 61 \maxallocatedfamily = 255 \countdef \lastallocatedcount = 32 \lastallocatedcount = \minallocatedregister \countdef \lastallocateddimen = 33 \lastallocateddimen = \minallocatedregister \countdef \lastallocatedskip = 34 \lastallocatedskip = \minallocatedregister \countdef \lastallocatedmuskip = 35 \lastallocatedmuskip = \minallocatedregister \countdef \lastallocatedbox = 36 \lastallocatedbox = \minallocatedregister \countdef \lastallocatedtoks = 37 \lastallocatedtoks = \minallocatedregister \countdef \lastallocatedread = 38 \lastallocatedread = \minallocatediochannel \countdef \lastallocatedwrite = 39 \lastallocatedwrite = \minallocatediochannel \countdef \lastallocatedmarks = 40 \lastallocatedmarks = \minallocatedregister \countdef \lastallocatedlanguage = 41 \lastallocatedlanguage = \minallocatedlanguage % not used in context \countdef \lastallocatedinsertion = 42 \lastallocatedinsertion = \minallocatedinsert \countdef \lastallocatedfamily = 43 \lastallocatedfamily = \minallocatedfamily % not used in context \countdef \lastallocatedattribute = 44 \lastallocatedattribute = \minallocatedregister \countdef \mincountervalue = 125 \mincountervalue = -"7FFFFFFF % beware, we use index 125 at the lua end \countdef \maxcountervalue = 126 \maxcountervalue = "7FFFFFFF % beware, we use index 126 at the lua end %countdef \minusone = 127 \minusone = -1 %chardef \zerocount = 0 %chardef \plusone = 1 \countdef \zerocount = 120 \zerocount = 0 \countdef \plusone = 121 \plusone = 1 \countdef \minusone = 122 \minusone = -1 %chardef \normalpagebox = 255 \countdef \normalpagebox = 127 \normalpagebox = 255 % hardcoded in pdftex/xetex % A few traditional allocations: \countdef \count@ = 255 % hm, used in \newif .. todo: replace it there \dimendef \dimen@ = 0 \dimendef \dimen@i = 1 % global only \dimendef \dimen@ii = 2 %D So, effectively we start allocating from 256 and upwards. The %D inserts sit in the range 128 upto 254. Page numbers use the %D counters 0 upto 9 and the pagebox is 255. Users can use the %D scratch registers upto 31 without problem but all others are %D reserved. \def\wlog#1{} % \def\wlog{\immediate\write\minusone} % write on log file (only) %D The allocators share a common helper macro. \def\newcount {\allocateregister\lastallocatedcount \count \countdef \maxallocatedregister} \def\newdimen {\allocateregister\lastallocateddimen \dimen \dimendef \maxallocatedregister} \def\newskip {\allocateregister\lastallocatedskip \skip \skipdef \maxallocatedregister} \def\newmuskip {\allocateregister\lastallocatedmuskip \muskip \muskipdef \maxallocatedregister} \def\newbox {\allocateregister\lastallocatedbox \box \mathchardef\maxallocatedregister} \def\newtoks {\allocateregister\lastallocatedtoks \toks \toksdef \maxallocatedregister} \def\newread {\allocateregister\lastallocatedread \read \chardef \maxallocatediochannel} \def\newwrite {\allocateregister\lastallocatedwrite \write \chardef \maxallocatediochannel} \def\newmarks {\allocateregister\lastallocatedmarks \marks \mathchardef\maxallocatedregister} \def\newinsert {\allocateregister\lastallocatedinsertion\insert \chardef \maxallocatedinsert} %D We don't need these in \CONTEXT: \def\newlanguage{\allocateregister\lastallocatedlanguage \language\chardef \maxallocatedlanguage} \def\newfamily {\allocateregister\lastallocatedfamily \fam \chardef \maxallocatedfamily} \let\newfam\newfamily % Watch out, for the moment we disable the check for already being defined % later we will revert this but first all chardefs must be replaced. \def\newconstant #1{\ifdefined#1\let#1\undefined\fi\newcount#1} \def\setnewconstant#1{\ifdefined#1\let#1\undefined\fi\newcount#1#1} % just a number % maybe setconstant with check % %D The next definitions are really needed (in \CONTEXT): %newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}} \newlinechar=10 \edef\outputnewlinechar{^^J} %D One reason to start high with allocation is that it permits us to %D allocate consecutive ranges more easily, for instance in \MPLIB\ %D we want to allocate a continuous range of boxes. It also permits us %D to do a proper upward allocation for inserts. The current code %D evolved from code that dealt with older engines but as all engines %D now provide many registers we removed all traces. \def\writestatus#1#2{\immediate\write16{#1: #2}} \def\space { } \def\allocateregisteryes#1#2#3#4#5% last class method max name {\ifnum#1<#4\relax \global\advance#1\plusone \global#3#5=#1\relax \else \writestatus{warning}{no room for \string#2\space \string#5\space (max: \number#4)}% \fi} \def\allocateregisternop#1#2#3#4#5% last class method max name {\writestatus{warning}{\string#2 \string#5 is already defined (\string\relax\space it first)}} \def\allocateregister#1#2#3#4#5% last class method max name {\ifx#5\undefined \expandafter\allocateregisteryes \else\ifx#5\relax \expandafter\expandafter\expandafter\allocateregisteryes \else \expandafter\expandafter\expandafter\allocateregisternop \fi\fi #1#2#3#4#5} %D Goodie: \ifnum\texengine=\luatexengine \input luatex-pdf \relax \fi %D Since the number of chars exceed 256 now, we can use \type %D {\chardef} instead of the more limited \type {\mathchardef}. \ifnum\texengine>\pdftexengine \def\newbox {\allocateregister\lastallocatedbox \box \chardef\maxallocatedregister} \def\newmarks{\allocateregister\lastallocatedmarks\marks\chardef\maxallocatedregister} \fi %D Attributes are something very \LUATEX. In \CONTEXT\ you are not %D supposed to use the attributes directly but always allocate then %D first. For instance attribute~0 is reserved for special purposes %D (this might change). \ifnum\texengine=\luatexengine \let\attributeunsetvalue\mincountervalue % used to be \minusone \def\newattribute{\allocateregister\lastallocatedattribute\attribute\attributedef\maxallocatedregister} \fi %D Not used by \CONTEXT\ but for instance \PICTEX\ needs it. It's a %D trick to force strings instead of tokens that take more memory. %D It's a trick to trick to force strings. \def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} %D \macros %D {scratchcounter, %D scratchdimen,scratchskip,scratchmuskip, %D scratchbox, %D scratchtoks} %D %D We now define a few scratch registers, so that successive %D loads at least have some available. \newcount \scratchcounter \newcount \globalscratchcounter \newdimen \scratchdimen \newdimen \globalscratchdimen \newskip \scratchskip \newskip \globalscratchskip \newmuskip \scratchmuskip \newmuskip \globalscratchmuskip \newtoks \scratchtoks \newtoks \globalscratchtoks \newbox \scratchbox \newbox \globalscratchbox \newcount\scratchcounterone \newcount\scratchcountertwo \newcount\scratchcounterthree \newdimen \scratchdimenone \newdimen \scratchdimentwo \newdimen \scratchdimenthree \newdimen \scratchskipone \newdimen \scratchskiptwo \newdimen \scratchskipthree \newbox \scratchmuskipone \newbox \scratchmuskiptwo \newbox \scratchmuskipthree \newtoks \scratchtoksone \newtoks \scratchtokstwo \newtoks \scratchtoksthree \newbox \scratchboxone \newbox \scratchboxtwo \newbox \scratchboxthree %D More allocations: \newskip \zeroskip \zeroskip = 0pt plus 0pt minus 0pt \newdimen\zeropoint \zeropoint = 0pt \newdimen\onepoint \onepoint = 1pt \newdimen\maxdimen \maxdimen = 16383.99999pt \newdimen\onebasepoint \onebasepoint = 1bp \newdimen\scaledpoint \scaledpoint = 1sp \newdimen\thousandpoint\thousandpoint= 1000pt \let\points\onepoint \newtoks \emptytoks %D And even more: (todo: countdefs 60+) %newcount \minusone \minusone = -1 \newcount \minustwo \minustwo = -2 %chardef \zerocount = 0 %chardef \plusone = 1 \chardef \plustwo = 2 \chardef \plusthree = 3 \chardef \plusfour = 4 \chardef \plusfive = 5 \chardef \plussix = 6 \chardef \plusseven = 7 \chardef \pluseight = 8 \chardef \plusnine = 9 \chardef \plusten = 10 \chardef \plussixteen = 16 \chardef \plushundred = 100 \chardef \pluscxxvii = 127 \chardef \pluscxxviii = 128 \chardef \pluscclv = 255 \ifnum\texengine=\luatexengine \chardef \pluscclvi = 256 \chardef \plusthousand = 1000 \chardef \plustenthousand = 10000 \chardef \plustwentythousand = 20000 \chardef \medcard = 32768 \chardef \maxcard = 65536 % pdftex has less mathchars \else \mathchardef\pluscclvi = 256 \mathchardef\plusthousand = 1000 \mathchardef\plustenthousand = 10000 \mathchardef\plustwentythousand = 20000 \newcount \medcard \medcard = 32768 % pdftex has less mathchars \newcount \maxcard \maxcard = 65536 % pdftex has less mathchars \fi %D We prefer the more readable variant than in plain %D \TEX. User should only use \type {\emptybox}: \newbox\voidbox % public \let\normalhbox\hbox \let\normalvbox\vbox \def\unvoidbox{\unhbox\voidbox} \def\emptybox {\box \voidbox} % used in initializations so no attributes \def\emptyvbox{\normalvbox{}} % no copy as we need to set attributes \def\emptyhbox{\normalhbox{}} % no copy as we need to set attributes \let\leavevmode\unvoidbox % we prefer to use \dontleavehmode %D Some expected plain variants follow. We don't reuse registers %D because we don't want clashes. \newdimen\p@ \p@ \onepoint \newcount\m@ne \m@ne \minusone \newdimen\z@ \z@ \zeropoint \let \@ne \plusone \let \tw@ \plustwo \let \thr@@ \plusthree \let \sixt@@n \sixteen \let \@cclv \pluscclv \let \@cclvi \pluscclvi \newbox \voidb@x \newtoks \toks@ %D We define \type {\newif} a la plain \TEX, but will %D redefine it later. As Knuth says: %D %D \startnarrower %D And here's a different sort of allocation: for example, %D %D \starttyping %D \newif\iffoo %D \stoptyping %D %D creates \type {\footrue}, \type {\foofalse} to go %D with \type {\iffoo}. %D \stopnarrower \def\newif#1% {\count@\escapechar \escapechar\minusone \expandafter\expandafter\expandafter\def\@if #1{true}{\let#1\iftrue }% \expandafter\expandafter\expandafter\def\@if#1{false}{\let#1\iffalse}% \@if#1{false}% the condition starts out false \escapechar\count@} \def\@if#1#2% {\csname\expandafter\if@\string#1#2\endcsname} \bgroup % `if' is required \uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}} \egroup %D Let's test this one: \newif\ifdone %D Potential primitive in \LUATEX: \ifdefined\htdp \else \def\htdp#1{\dimexpr\ht#1+\dp#1\relax} \fi %D \macros %D {@@escape,@@begingroup,@@endgroup,@@mathshift,@@alignment, %D @@endofline,@@parameter,@@superscript,@@subscript, %D @@ignore,@@space,@@letter,@@other,@@active,@@comment} %D %D In \CONTEXT\ we sometimes manipulate the \CATCODES\ of certain %D characters. Because we are not that good at remembering numbers, %D we introduce some symbolic names. %D As we now have catc-* files, we also have more readable names but %D We will keep the following around for a while. \chardef\@@escape = 0 \chardef\@@begingroup = 1 \chardef\@@endgroup = 2 \chardef\@@mathshift = 3 \chardef\@@alignment = 4 \chardef\@@endofline = 5 \chardef\@@parameter = 6 \chardef\@@superscript = 7 \chardef\@@subscript = 8 \chardef\@@ignore = 9 \chardef\@@space = 10 \chardef\@@letter = 11 \chardef\@@other = 12 \chardef\@@active = 13 \chardef\@@comment = 14 %D Constants to be used with \type {\currentgrouptype}. \chardef\@@bottomlevelgroup = 0 \chardef\@@simplegroup = 1 \chardef\@@hboxgroup = 2 \chardef\@@adjustedhboxgroup = 3 \chardef\@@vboxgroup = 4 \chardef\@@vtopgroup = 5 \chardef\@@aligngroup = 6 \chardef\@@noaligngroup = 7 \chardef\@@outputgroup = 8 \chardef\@@mathgroup = 9 \chardef\@@discretionarygroup = 10 \chardef\@@insertgroup = 11 \chardef\@@vcentergroup = 12 \chardef\@@mathchoicegroup = 13 \chardef\@@semisimplegroup = 14 \chardef\@@mathshiftgroup = 15 \chardef\@@mathleftgroup = 16 \chardef\@@vadjustgroup = \@@insertgroup %D Constants to be used with \type {\interactionmode}. \chardef\@@batchmode = 0 \chardef\@@nonstopmode = 1 \chardef\@@scrollmode = 2 \chardef\@@errorstopmode = 3 %D Constants to be used with \type {\lastnodetype}. The \type %D {\lastnodetype} primitive is \ETEX\ compliant. The valid range is %D still -1 .. 15 and glyph nodes have number 0 (used to be char %D node) and ligature nodes are mapped to 7. That way macro packages %D can use the same symbolic names as in traditional \ETEX. Keep in %D mind that the internal node numbers are different and that there %D are more node types that 15. \chardef\@@charnode = 0 \chardef\@@hlistnode = 1 \chardef\@@vlistnode = 2 \chardef\@@rulenode = 3 \chardef\@@insertnode = 4 \chardef\@@marknode = 5 \chardef\@@adjustnode = 6 \chardef\@@ligaturenode = 7 \chardef\@@discretionarynode = 8 \chardef\@@whatsitnode = 9 \chardef\@@mathnode = 10 \chardef\@@gluenode = 11 \chardef\@@kernnode = 12 \chardef\@@penaltynode = 13 \chardef\@@unsetnode = 14 \chardef\@@mathsnode = 15 %D Constants to be used with \type {\currentiftype}. \chardef\@@charif = 1 \chardef\@@catif = 2 \chardef\@@numif = 3 \chardef\@@dimif = 4 \chardef\@@oddif = 5 \chardef\@@vmodeif = 6 \chardef\@@hmodeif = 7 \chardef\@@mmodeif = 8 \chardef\@@innerif = 9 \chardef\@@voidif = 10 \chardef\@@hboxif = 11 \chardef\@@vboxif = 12 \chardef\@@xif = 13 \chardef\@@eofif = 14 \chardef\@@trueif = 15 \chardef\@@falseif = 16 \chardef\@@caseif = 17 \chardef\@@definedif = 18 \chardef\@@csnameif = 19 \chardef\@@fontcharif = 20 %D Of course we want even bigger log files, so we copied this %D from the \ETEX\ source files. %D %D When watching such logs, beware of nasty side effects of %D \type {\scantokens}, as in: %D %D \starttyping %D \bgroup %D \lccode`a=12\lowercase{\xdef\whatever{a}}\egroup %D \def\whatever{test \whatever test} %D \scantokens\expandafter{\whatever} %D \egroup %D \stoptyping %D %D In \LUATEX\ we have ways around this. \def\tracingall {\tracingonline \plusone \tracingcommands \plusthree \tracingstats \plustwo \tracingpages \plusone \tracingoutput \plusone \tracinglostchars \plustwo \tracingmacros \plustwo \tracingparagraphs\plusone \tracingrestores \plusone \showboxbreadth \maxdimen \showboxdepth \maxdimen \tracinggroups \plusone \tracingifs \plusone \tracingscantokens\plusone \tracingnesting \plusone \tracingassigns \plustwo \errorstopmode} \def\loggingall {\tracingall \tracingonline \zerocount} \def\tracingnone {\tracingassigns \zerocount \tracingnesting \zerocount \tracingscantokens\zerocount \tracingifs \zerocount \tracinggroups \zerocount \showboxdepth \plusthree \showboxbreadth \plusfive \tracingrestores \zerocount \tracingparagraphs\zerocount \tracingmacros \zerocount \tracinglostchars \plusone \tracingoutput \zerocount \tracingpages \zerocount \tracingstats \zerocount \tracingcommands \zerocount \tracingonline \zerocount} %D Just for tracing purposes we set: \tracingstats\plusone %D Here we also save \type {\input}, more will be saved later. \ifdefined\normalinput \else \let\normalinput\input \fi %D We don't like outer commands, and we always want access %D to the original \type {\input} primitive. \let\normalouter\outer \def\outer{} % no longer \relax %D To circumvent dependencies, we can postpone certain %D initializations to dumping time, by appending them to the %D \type {\everydump} token register. \ifdefined\normaldump \else \let\normaldump\dump \fi \newtoks\everydump \def\dump{\the\everydump\normaldump} %D The same applies for the startup actions. \ifdefined\normaleveryjob \else \let\normaleveryjob\everyjob \fi \let\everyjob\relax \newtoks\everyjob \normaleveryjob{\the\everyjob} \def\appendtotoks #1{\def\temp{#1}\afterassignment\doappendtotoks \scratchtoks=} \def\prependtotoks#1{\def\temp{#1}\afterassignment\doprependtotoks\scratchtoks=} \def\doappendtotoks {\expandafter\expandafter\expandafter{\expandafter\the\expandafter\temp\the\scratchtoks}} \def\doprependtotoks{\expandafter\expandafter\expandafter{\expandafter\the\expandafter\scratchtoks\the\temp}} %D \macros %D {begcsname} %D %D Handy for \ETEX-only usage (avoids making \type {\relax}'s: \def\begcsname#1\endcsname{\ifcsname#1\endcsname\csname#1\endcsname\fi} %D Now come a few macros that might be needed in successive loading: \let\endgraf\par \let\endline\cr \def\space{ } \def\empty{} \def\null {\hbox{}} %D The following two might be overloaded later on but some modules need %D then earlier. These functionality is reflected in the name and will not %D change. \bgroup \catcode`\^^M=\activecatcode% \gdef\obeylines{\catcode`\^^M\activecatcode \let^^M\par}% \global\let^^M\par% \egroup \bgroup \gdef\obeyspaces{\catcode`\ \activecatcode}% \obeyspaces\global\let =\space% \egroup %D A constant: \let\endoflinetoken=^^M %D Also needed might be a simple loop structure and we borrow %D plain \TEX's one as it is often expected to be present and %D it is about the fastest you can get. Beware: this macro %D does not support nested loops. We use a namespace prefix %D \type {@@pln}. \long\def\loop#1\repeat{\long\def\@@plnbody{#1}\@@plniterate} %D The following makes \type {\loop} \unknown\ \type {\if} %D \unknown\ \type {\repeat} skippable (clever trick): \let\repeat\fi % so both \loop and \repeat are reserved words! %D The original (no \type {@@pln} there): %D %D \starttyping %D \def\@@plniterate{\@@plnbody\let\next\@@plniterate\else\let\next\relax\fi\next} %D \stoptyping %D %D A more efficient alternative: %D %D \starttyping %D \def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\expandafter\relax\fi} %D \stoptyping %D %D An even more efficient one: \def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\fi} %D We don't define a real output routine yet but at least get rid %D of pages: \output{\shipout\box\normalpagebox} %D Although we don't add pagenumbers yet we alias the default %D register used for counting pages: \countdef\pageno=0 \pageno=1 % first page is number 1 %D Beside the raw counter \type {\pageno} the \type {\folio} %D macro provides the value. \def\folio{\the\pageno} % kind of expected and therefore reserved %D The following registers are kind of standard and (for the moment) %D we define them here. This might change. \newskip \bigskipamount \bigskipamount = 12pt plus 4pt minus 4pt \newskip \medskipamount \medskipamount = 6pt plus 2pt minus 2pt \newskip \smallskipamount \smallskipamount = 3pt plus 1pt minus 1pt \baselineskip = 12pt \lineskip = 1pt \lineskiplimit = 0pt %D Again a few kind-of-extensions the core: \newskip \hideskip \hideskip = -1000pt plus 1fill \newskip \centering \centering = 0pt plus 1000pt minus 1000pt \def\hidewidth % for alignment entries that can stick out {\hskip\hideskip} \def\ialign % initialized \halign {\everycr{}% \tabskip\zeroskip \halign} \newcount \mscount \def\spanomit{\span\omit} % bypass error message \def\multispan#1% {\omit \mscount#1\relax \loop \ifnum\mscount>\plusone \spanomit \advance\mscount\minusone \repeat} %D The next section deals with selective definitions in %D later modules. One can of course use the \type {\texengine} %D number that we defined earlier instead. \bgroup \obeylines \gdef\pickupSOMETEX#1% {\expandafter\gdef\csname begin#1\endcsname{\bgroup\obeylines\dopickupSOMETEX{#1}}} \gdef\dopickupSOMETEX#1#2 % {\egroup\immediate\write16{special code for #1 -> [line \the\inputlineno] \detokenize{#2}}} {\egroup} \egroup \let\endTEX \relax \long\def\beginTEX #1\endTEX {} \let\endETEX \relax \long\def\beginETEX #1\endETEX {} \let\endXETEX \relax \long\def\beginXETEX #1\endXETEX {} \let\endLUATEX\relax \long\def\beginLUATEX#1\endLUATEX{} \let\endOLDTEX\relax \long\def\beginOLDTEX#1\endOLDTEX{} \let\endNEWTEX\relax \long\def\beginNEWTEX#1\endNEWTEX{} \pickupSOMETEX{ETEX} \ifnum\texengine=\xetexengine \pickupSOMETEX{XETEX} \fi \ifnum\texengine=\luatexengine \pickupSOMETEX{LUATEX} \fi \ifnum\texengine<\xetexengine \pickupSOMETEX{OLDTEX} \else \pickupSOMETEX{NEWTEX} \fi %D \macros %D {bindprimitive} %D %D We can remap primitives (which is needed because of changes in %D for instance \PDFTEX). \def\bindprimitive#1 #2 % new old {\ifcsname#1\endcsname \else \ifcsname#2\endcsname \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname \fi \fi} %D Because \XETEX\ also implements some \PDFTEX\ functionality, we take %D care of this here instead of a dedicated module. Later modules need %D to handle the undefined cases. %D These messy checks will disappear. % new after 1.10, watch the change in prefix \bindprimitive quitvmode ptexquitvmode \bindprimitive noligatures ptexnoligatures \bindprimitive setrandomseed ptexsetrandomseed \bindprimitive uniformdeviate ptexuniformdeviate \bindprimitive quitvmode pdfquitvmode \bindprimitive noligatures pdfnoligatures \bindprimitive setrandomseed pdfsetrandomseed \bindprimitive uniformdeviate pdfuniformdeviate \bindprimitive resettimer pdfresettimer \bindprimitive elapsedtime pdfelapsedtime % new per 1.40 \bindprimitive ifprimitive ifpdfprimitive \bindprimitive primitive pdfprimitive \bindprimitive ifabsdim ifpdfabsdim \bindprimitive ifabsnum ifpdfabsnum \ifnum\texengine=\xetexengine \let\normalsetrandomseed \setrandomseed \let\normaluniformdeviate\uniformdeviate \else \pdfminorversion \plusfive \ifdefined\pdfcompresslevel \else \newcount\pdfcompresslevel \fi \ifdefined\pdfobjcompresslevel \else \newcount\pdfobjcompresslevel \fi \ifdefined\pdfgentounicode \else \newcount\pdfgentounicode \fi \pdfgentounicode \plusone \ifdefined\pdfinclusioncopyfonts\else \newcount\pdfinclusioncopyfonts \fi \pdfinclusioncopyfonts\plusone \def\nopdfcompression {\pdfobjcompresslevel\zerocount \pdfcompresslevel\zerocount} \def\maximumpdfcompression{\pdfobjcompresslevel\plusnine \pdfcompresslevel\plusnine } \def\normalpdfcompression {\pdfobjcompresslevel\plusthree \pdfcompresslevel\plusthree} \normalpdfcompression \let\normalsetrandomseed \setrandomseed \let\normaluniformdeviate\uniformdeviate \fi %D Handy. \ifnum\texengine=\luatexengine \ifdefined\suppresslongerror % for the moment test \suppresslongerror\plusone \fi \fi %D Basic status stuff. \newif\ifproductionrun %D We need to make sure that we start up in \DVI\ mode, so, %D after testing for running \PDFTEX, we default to \DVI. \ifx\pdftexversion\undefined \newcount\pdfoutput \fi \pdfoutput=0 %D For those who expect this \unknown \ifx\fmtname \undefined \def\fmtname {ConTeXt Minimized Plain TeX} \fi \ifx\fmtversion\undefined \def\fmtversion{3.1415926} \fi \let\normalfmtversion\fmtversion %D A few bonus macros: \def\modulonumber#1#2{\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax} \def\dividonumber#1#2{\the\numexpr(#2-(#1/2))/#1\relax} \ifnum\texengine=\xetexengine \edef\xetexversion {\numexpr\XeTeXversion*100+(\expandafter\gobbleoneargument\XeTeXrevision-5)/10\relax} \edef\xetexrevision {\the\numexpr(\expandafter\gobbleoneargument\XeTeXrevision-50)/100\relax} \fi \ifcase\texengine \def\texenginename {impossible} \edef\texengineversion{0} \or \def\texenginename {pdfTeX} \edef\texengineversion{\dividonumber{100}\pdftexversion.\modulonumber{100}\pdftexversion.\pdftexrevision} \or \def\texenginename {XeTeX} \edef\texengineversion{\dividonumber{100}\xetexversion .\modulonumber{100}\xetexversion .\xetexrevision} \or \def\texenginename {LuaTeX} \edef\texengineversion{\dividonumber{100}\luatexversion.\modulonumber{100}\luatexversion.\luatexrevision} \else \def\texenginename {impossible} \edef\texengineversion{0} \fi %D While cleaning this code up a bit I was listening to Heather %D Nova's \CD\ Redbird. The first song on that \CD\ ends with %D a few lines suitable for ending this initialization module: %D %D \startlines %D And there's so much I can do for you %D Given time I know that I can prove %D Now my world is opened up to you %D Come inside %D %D Welcome to my life %D Welcome to my world %D Come inside %D \stoplines %D %D So let's see what \TEX\ can do now that we've opened up %D the basic machinery. \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-reg.mkii0000644000175000017500000012375214536300610024713 0ustar hillehille%D \module %D [ file=strc-reg, %D version=1999.12.27, %D title=\CONTEXT\ Structure Macros, %D subtitle=Register Management, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Structure Macros / Register Management} \newif \ifautoregisterhack % for the moment a private hack % new: eigennummer=ja => eerste {} ipv pag nummer \unprotect %D Isolated but still indocumented. % Formaat tex-utility-input-file : % % i e {tag} {loc} {pure} {entry+..} {p:c:p:sp:ssp=>page} {realpage} % i s {tag} {loc} {pure} {entry+..} {other entry} % % In plaats van + kan een & worden gebruikt. Ook kan als % eerste karakter worden opgegeven wat de scheider is. % % \index {entry} % \index[key] {entry} % \index[pageclass::] {entry} % \index[pageclass::key]{entry} % \index {textclass::entry} % \index[key] {textclass::entry} % \index[pageclass::] {textclass::entry} % \index[pageclass::key]{textclass::entry} % % Deze file wordt met het Perl script TeXUtil omgezet in % een in te lezen file met de commando's: % % \registerentrya {tag} {ingang} % \registerentryb {tag} {subingang} % \registerentryc {tag} {subsubingang} % % \registerpage {tag} {pag,txt} {volgnummer} {paginanummer} {volgnummer} % % \registersee {tag} {pag,txt} {andere ingang} % % \registerentry {tag} {letter} \def\dosetupregister[#1][#2][#3]% {\ifthirdargument \def\dodosetupregister##1% {\getparameters[\??id##1#2][#3]% \preparepageprefix{\??id##1}}% \else \def\dodosetupregister##1% {\getparameters[\??id##1][#2]% \doifvalue{\??id##1\c!coupling}\v!yes {\appendtoks\coupleregister[##1][#2]\to\everystarttext}% \preparepageprefix{\??id##1}}% \fi \processcommalist[#1]\dodosetupregister} \def\setupregister {\dotripleempty\dosetupregister} \def\getlastregisterentry#1% {\def\docommand##1{\def\!!stringa{##1}}% \processseparatedlist[#1][+]\docommand \!!stringa} \def\registerparameter#1{\csname\??id\currentregister#1\endcsname} % \enableregime[windows] \setupregister[index][keyexpansion=strict] % % \index[tsch]{tsch} test \index{Qtsch} test \index[ratsch]{Rtsch} test \newif\ifwritetoregister \writetoregistertrue \chardef\registerpagestatus\zerocount \def\doprocesspageregister[#1]#2#3% key altnum entry {\ifwritetoregister \begingroup \thisisnextinternal\s!ind \ifduplicate\getlastregisterentry{#3}\fi \defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#1}% \defconvertexpanded\asciiregisterentryB{\registerparameter\c!expansion }{#3}% \doifsomething{\registerparameter\c!keyexpansion} {\ifx\asciiregisterentryA\empty \defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#3}% \fi}% \makesectionformat \doifelse{\registerparameter\c!ownnumber}\v!yes \donetrue\donefalse \expanded{\writeutility{r % spaces are essential \ifcase\registerpagestatus\space\or e\or f\or t\fi\space {\currentregister} % {\nextinternalreference} % {\asciiregisterentryA} % {\asciiregisterentryB} % {\sectionformat\sectionseparator\sectionseparator\ifdone#2\else\noexpand\pagenumber\fi} % {\noexpand\realfolio}}}% \getfirstcharacter\currentregister \registerinfo{> \firstcharacter}{#3}% \endgroup \fi} \def\doregister#1% {\chardef\registerpagestatus\plusone \def\currentregister{#1}% \doifelse{\registerparameter\c!ownnumber}\v!yes {\dosingleempty\dodoregister} {\dosingleempty\donoregister}} \def\donoregister[#1]% {\dodoregister[#1]{}} % \long\def\doflushatpar#1% % %{\dogotopar{#1}} % %{\dogotopar{\dontleavehmode#1}} % this one can introduce empty lines % {\dogotopar{#1\ifvmode\nobreak\fi}} % while this one can mess up vertical space % % fails when [text] \index{test} [empty line] [text] so we now have % Taco's test based solution: \def\doflushatpar {\ifvmode \expandafter\dogotopar \else \expandafter\firstofoneargument \fi} \def\dodoregister[#1]#2#3% {\doflushatpar{\doprocesspageregister[#1]{#2}{#3}}} \def\writetoregister[#1]% to be documented {\doregister{#1}} % \def\startregister % {\dotripleempty\dostartregister} % \def\dostartregister[#1][#2][#3]#4% % {\chardef\registerpagestatus\plustwo % \def\currentregister{#1}% % \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#3]{#4}}% % \dodoregister[#3]{}{#4}} \def\startregister {\doquadrupleempty\dostartregister} \def\dostartregister[#1][#2][#3][#4]#5% % 3 args: #3 is sortkey {\chardef\registerpagestatus\plustwo % 4 args: #3 is type, #4 is sortkey \def\currentregister{#1}% \iffourthargument \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#4]{#5}}% \dodoregister[#4]{#3}{#5}% \else \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#3]{#5}}% \dodoregister[#3]{}{#5}% \fi} \def\stopregister {\dodoubleargument\dostopregister} \def\dostopregister[#1][#2]% {\getvalue{\??id#1\??id#2}\letgvalue{\??id#1\??id#2}\relax} \def\dodostopregister[#1][#2]#3% {\chardef\registerpagestatus\plusthree \def\currentregister{#1}% \dodoregister[#2]{}{#3}} % key altnum entry \def\doprocessseeregister[#1]#2#3% {\ifwritetoregister \begingroup \thisisnextinternal\s!ind \ifduplicate\getlastregisterentry{#2}\fi \defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#1}% \defconvertexpanded\asciiregisterentryB{\registerparameter\c!expansion }{#2}% \defconvertexpanded\asciiregisterentryC{\registerparameter\c!expansion }{#3}% \doifsomething{\registerparameter\c!keyexpansion} {\ifx\asciiregisterentryA\empty \defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#2}% \fi}% \makesectionformat \expanded{\writeutility{r s % {\currentregister} % {\nextinternalreference} % {\asciiregisterentryA} % {\asciiregisterentryB} % {\asciiregisterentryC} % {\sectionformat}}}% \endgroup \registerinfo{> see}{#2}% \fi} \def\complexdoseeregister[#1]#2#3% {\doflushatpar{\doprocessseeregister[#1]{#2}{#3}}} \def\doseeregister#1% {\def\currentregister{#1}% \complexorsimpleempty\doseeregister} % = \dosingleempty\doseeregister \def\dowritetoregister[#1]% % de twee-traps-aanroep is nodig {\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter \doprocesspageregister} % mogelijk te maken \def\writetoregister {\dodoubleempty\dowritetoregister} \def\ifregistergeplaatst{\ifutilitydone} \newif\iffirstregisterpage \newif\iffirstregisterentry \let\c!entrya\empty \let\c!entryb\empty \let\c!entryc\empty \let\c!entryd\empty \def\nextregisterpage {\iffirstregisterpage \doglobal\newcounter\registerpagenumber \fi \doglobal\increment\registerpagenumber} \def\doregisterpagelocation#1#2% {\nextregisterpage \hbox to 1em{\hss\doregisterpagehowto{#1}{#2}\hss}} % todo: \installregisterpagehandler \def\setregisterpage#1% todo: currentregister gebruiken {\let\registerpageseparator\empty \processaction [\getvalue{\??id#1\c!symbol}] [ \c!n=>{\def\doregisterpage##1[##2]% {\doregisterpagelocation{#1}{\registerpagenumber}\/}}, \c!a=>{\def\doregisterpage##1[##2]% {\doregisterpagelocation{#1}{\character{\registerpagenumber}\/}}}, 1=>{\def\doregisterpage##1[##2]% {\doregisterpagelocation{#1}{$\bullet$}}}, 2=>{\def\doregisterpage##1[##2]% {\doregisterpagelocation{#1}{\vrule\!!width1em\!!height1ex\!!depth\zeropoint}}}, \v!none=>{\def\doregisterpage##1[##2]{}},% \s!unknown=>{\def\registerpagesymbol{\getvalue{\??id#1\c!symbol}}% \def\doregisterpage##1[##2]% {\doregisterpagelocation{#1}{\registerpagesymbol}}}, \s!default=>{\def\registerpageseparator{,}% \let\doregisterpage\doregisterpagedefault}]} \def\doregisterpagedefault#1[#2]% {\doregisterpagehowto{#1}{\strut\pageprefix{\??id#1}[#2]\translatednumber[#2]}} % test case % % \starttext % \placelist[section][criterium=all] \blank[2*big] % \placeregister[index][compress=no] \blank[2*big] % \placeregister[index][compress=no,sectionnumber=yes] \blank[2*big] % \placeregister[index][compress=yes] \page % test text \index{test index} % \section{heading} % more test text \index{test index} % \section{heading} % more test text \index{test index} % \page % \section{heading text \index{test index}} % more test text \index{test index} % \page % test text \index{test index} % \section{heading text \index{test index}} % more test text \index{test index} % \stoptext \let\registerpagehowto\empty \let\registertexthowto\empty \def\setregisterhowto[#1,#2]% {\def\registerpagehowto{#1}% \def\registertexthowto{#2}}% \def\doregistertexthowto#1#2% {\dostartattributes{\??id#1\registertexthowto}\c!textstyle\c!textcolor\empty \getvalue{\??id#1\c!textcommand}{#2}% \dostopattributes} \def\doregisterpagehowto#1#2% {\dostartattributes{\??id#1\registerpagehowto}\c!pagestyle\c!pagecolor\empty \getvalue{\??id#1\c!pagecommand}{#2}% \dostopattributes} \def\registerentry #1{\executeifdefined{#1\s!entry }\gobbleoneargument } \def\registerentrya#1{\executeifdefined{#1\s!entrya}\gobbleoneargument } \def\registerentryb#1{\executeifdefined{#1\s!entryb}\gobbleoneargument } \def\registerentryc#1{\executeifdefined{#1\s!entryc}\gobbleoneargument } \def\registerentryd#1{\executeifdefined{#1\s!entryd}\gobbleoneargument } \def\registersee #1{\executeifdefined{#1\s!see }\gobblethreearguments} \def\registerpage #1{\executeifdefined{#1\s!page }\gobblefourarguments } \def\registerfrom #1{\executeifdefined{#1\s!from }\gobblefourarguments } \def\registerto #1{\executeifdefined{#1\s!to }\gobblefourarguments } \def\doresetregister#1% {\letvalue{#1\s!entrya}\gobbleoneargument \letvalue{#1\s!entryb}\gobbleoneargument \letvalue{#1\s!entryc}\gobbleoneargument \letvalue{#1\s!entryd}\gobbleoneargument \letvalue{#1\s!see }\gobblethreearguments \letvalue{#1\s!page }\gobblefourarguments \letvalue{#1\s!from }\gobblefourarguments \letvalue{#1\s!to }\gobblefourarguments \letvalue{#1\s!entry }\gobbleoneargument} \newif\iffirstsubentry \newif\iffirstsubsubentry \newcounter\currententrylevel \let\c!entryletter =\empty \let\c!entryreference=\empty \let\c!entrya =\relax \let\c!entryb =\relax \let\c!entryc =\relax \let\c!entryd =\relax \def\limitedregisterentry#1#2% {\getvalue{\??id#1\c!textcommand}% {\doifelsenothing{\??id#1\c!maxwidth} {#2} {\limitatetext{#2}{\getvalue{\??id#1\c!maxwidth}}{\unknown}}}} \def\dosetpageregisterpage#1#2#3#4#5#6% {\doifreglevelelse[#5]{\dodosetpageregisterpage{#1}{#2}{#3}{#4}{#5}{#6}}{}} \def\dodosetpageregisterpageA#1#2#3#4#5#6% {\global\utilitydonetrue \c!entryletter \setregisterhowto[#3]% \def\dohandleregisterentry##1% {\bgroup \if!!donea % \strut nieuw \hhboxindent\hangindent % maybe also left and right skip \setbox0\hbox{\doregistertexthowto{#2}{\strut\limitedregisterentry{#2}{##1}}}% \unhhbox0\with{\gotonextinternal\s!ind{#4}{#6}{\box\hhbox}}% \else \doregistertexthowto{#2}{##1}% \fi \egroup \!!doneafalse}% \!!doneafalse \doifelsevalue{\??id#2\c!interaction}\v!text {\ifcase\currententrylevel \or \!!doneatrue\c!entrya\c!entryb\c!entryc\c!entryd \or \c!entrya\!!doneatrue\c!entryb\c!entryc\c!entryd \or \c!entrya\c!entryb\!!doneatrue\c!entryc\c!entryd \or \c!entrya\c!entryb\c!entryc\!!doneatrue\c!entryd \fi} {\c!entrya\c!entryb\c!entryc\c!entryd}% \global\let\c!entrya\relax \global\let\c!entryb\relax \global\let\c!entryc\relax \global\let\c!entryd\relax \global\let\c!entryletter\relax \global\let\c!entryreference\relax} % \def\dodosetpageregisterpageB#1#2#3#4#5#6% % {\iffirstregisterpage % \expandafter\hskip\getvalue{\??id#2\c!distance}\relax % \else\ifnum#1=3 % \strut|--|\relax % -- ! % \else % % \relax after space needed because | looks ahead % \strut\registerpageseparator|\space|\relax % \fi\fi % \iftrue % \iftrue ...\fi to preserve indentation, can be folded out % \begingroup % % % \doifelsevalue{\??id#2\c!prefix}\v!none % default v!both % {\chardef\pageprefixmode\zerocount}% % {\doifvalue{\??id#2\c!prefix}\v!first % only first in range (1.2-4) % {\ifnum#1=3 \chardef\pageprefixmode\zerocount \fi}}% % % % \doifelsevalue{\??id#2\c!interaction}\v!pagenumber % {\bgroup % \setbox0\hbox{\showlocation{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}% % \gotonextinternal{\s!ind}{#4}{#6}{\box0}%{\copy0}% % \egroup} % {\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}% % \endgroup % \ignorespaces % \relax % \fi % \global\firstregisterpagefalse} \def\dodosetpageregisterpageB#1#2#3#4#5#6% {\iffirstregisterpage \expandafter\hskip\getvalue{\??id#2\c!distance}\relax \else\ifnum#1=3 \strut|--|\relax % -- ! \else % \relax after space needed because | looks ahead % TH: next line replaced % \strut\registerpageseparator|\space|\relax \strut \registerpageseparator{ }% % /TH \fi\fi \iftrue % \iftrue ...\fi to preserve indentation, can be folded out \begingroup % \doifelsevalue{\??id#2\c!prefix}\v!none % default v!both {\chardef\pageprefixmode\zerocount}% {\doifvalue{\??id#2\c!prefix}\v!first % {\ifnum#1=3 \chardef\pageprefixmode\zerocount \fi}}% % \doifelsevalue{\??id#2\c!interaction}\v!pagenumber {\bgroup \setbox0 \hbox{\showlocation{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}% \gotonextinternal{\s!ind}{#4}{#6}{\box0}%{\copy0}% \egroup} {\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}% \endgroup \ignorespaces \relax \fi \global\firstregisterpagefalse} \def\resetseenregisterpage {\global\let\firstseenregisterreal \relax \global\let\currentseenregisterreal\relax \global\let\lastseenregisterreal \relax \global\let\firstseenregisterpage \relax \global\let\currentseenregisterpage\relax \global\let\lastseenregisterpage \relax} \resetseenregisterpage \def\dodosetpageregisterpageC#1#2#3#4#5#6% {\xdef\currentseenregisterpage{#5}% \xdef\currentseenregisterreal{#6}% \ifx\firstseenregisterreal\relax % no range yet \global\let\firstseenregisterreal\currentseenregisterreal \global\let\firstseenregisterpage\currentseenregisterpage \global\let\lastseenregisterreal \currentseenregisterreal \global\let\lastseenregisterpage \currentseenregisterpage \else\ifnum\lastseenregisterreal=\currentseenregisterreal\relax % same page (catch error) \else\ifnum\numexpr\lastseenregisterreal+\plusone\relax=\currentseenregisterreal\relax \global\let\lastseenregisterreal \currentseenregisterreal \global\let\lastseenregisterpage \currentseenregisterpage \else \global\let\savedcurrentseenregisterreal\currentseenregisterreal \global\let\savedcurrentseenregisterpage\currentseenregisterpage \flushseenregisterpage \global\let\firstseenregisterreal\savedcurrentseenregisterreal \global\let\firstseenregisterpage\savedcurrentseenregisterpage \global\let\lastseenregisterreal \savedcurrentseenregisterreal \global\let\lastseenregisterpage \savedcurrentseenregisterpage \fi\fi\fi \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}} % \def\dodosetpageregisterpageC#1#2#3#4#5#6% % {\xdef\currentseenregisterpage{#5}% % \xdef\currentseenregisterreal{#6}% % \firstregisterpagefalse % \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}% % \ifx\firstseenregisterreal\relax % % no range yet % \global\let\firstseenregisterreal\currentseenregisterreal % \global\let\firstseenregisterpage\currentseenregisterpage % \global\let\lastseenregisterreal \currentseenregisterreal % \global\let\lastseenregisterpage \currentseenregisterpage % \else\ifnum\firstseenregisterreal=\currentseenregisterreal\relax % \global\let\firstseenregisterreal\currentseenregisterreal % \global\let\firstseenregisterpage\currentseenregisterpage % \global\let\lastseenregisterreal \currentseenregisterreal % \global\let\lastseenregisterpage \currentseenregisterpage % \else\ifnum\lastseenregisterreal=\currentseenregisterreal\relax % \global\let\lastseenregisterpage \currentseenregisterpage % \else\ifnum\numexpr\lastseenregisterreal+\plusone\relax=\currentseenregisterreal\relax % \global\let\lastseenregisterreal \currentseenregisterreal % \global\let\lastseenregisterpage \currentseenregisterpage % \else % % back up, flush, go on % \global\let\savedcurrentseenregisterreal\currentseenregisterreal % \global\let\savedcurrentseenregisterpage\currentseenregisterpage % \let\currentseenregisterpage\lastseenregisterpage % \let\currentseenregisterreal\lastseenregisterreal % \flushseenregisterpage % \global\let\firstseenregisterreal\savedcurrentseenregisterreal % \global\let\firstseenregisterpage\savedcurrentseenregisterpage % \global\let\lastseenregisterreal \savedcurrentseenregisterreal % \global\let\lastseenregisterpage \savedcurrentseenregisterpage % \fi\fi\fi\fi} \def\doflushseenregisterpage#1#2#3#4% {\global\let\flushseenregisterpage\relax \ifx\firstseenregisterreal\relax % nothing in the hold \else\ifx\firstseenregisterreal\lastseenregisterreal \expanded{\dodosetpageregisterpageB{1}{#2}{#3}{#4}{\lastseenregisterpage}{\lastseenregisterreal}}% \else \expanded{\dodosetpageregisterpageB{2}{#2}{#3}{#4}{\firstseenregisterpage}{\firstseenregisterreal}}% \expanded{\dodosetpageregisterpageB{3}{#2}{#3}{#4}{\lastseenregisterpage }{\lastseenregisterreal }}% \fi\fi \resetseenregisterpage} \let\flushseenregisterpage\relax \chardef\collapseregisterpages\zerocount \def\dodosetpageregisterpage {\ifcase\collapseregisterpages \expandafter\dodosetpageregisterpagenormal \else \expandafter\dodosetpageregisterpagecollapsed \fi} \def\dodosetpageregisterpagenormal#1#2#3#4#5#6% {\dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}% \dodosetpageregisterpageB{#1}{#2}{#3}{#4}{#5}{#6}} % \def\dodosetpageregisterpagecollapsed#1#2#3#4#5#6% % {\dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}% % \dodosetpageregisterpageC{#1}{#2}{#3}{#4}{#5}{#6}} \def\dodosetpageregisterpagecollapsed#1#2#3#4#5#6% {\ifx\firstseenregisterreal\relax\flushseenregisterpage\fi \dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}% \dodosetpageregisterpageC{#1}{#2}{#3}{#4}{#5}{#6}} % test case for collapsing (experimental, for Steffen Wolfrum) % % \starttext % \chardef\collapseregisterpages\zerocount \placeregister[index] \blank[2*big] % \chardef\collapseregisterpages\plusone \placeregister[index] \page % \dorecurse{10}{test 1:!\index{test} test \page} % \dorecurse{5} {test 2:\recurselevel \page} % \dorecurse{10}{test 3:!\index{test} test \page} % \dorecurse{5} {test 4:\recurselevel \page} % \dorecurse{1} {test 5:!\index{test} test \page} % \dorecurse{5} {test 6:\recurselevel \page} % \dorecurse{10}{test 7:!\index{test} test \page} % \dorecurse{5} {test 8:\recurselevel \page} % oeps \index{oeps} % xxxx \index{xxxx} % todo \index{todo} % \stoptext \def\dosetpageregistersee#1#2#3#4% ugly separator hack {\flushseenregisterpage \expanded{\doifreglevelelse[#4\sectionseparator\sectionseparator0]}% {{\global\utilitydonetrue \setregisterhowto[#2]% \def\dohandleregisterentry##1% dubbelop | \strut nieuw {\doregistertexthowto{#1}{\strut\limitedregisterentry{#1}{##1}}}% \getvalue {#1\ifcase\currententrylevel\s!entrya\or\s!entryb\or\s!entryc\else\s!entryd\fi}% {\doregisterpagehowto{#1}{\labeltexts\v!see{#3}}}% \c!entryletter\c!entrya\c!entryb\c!entryc\c!entryd \global\let\c!entrya\relax \global\let\c!entryb\relax \global\let\c!entryc\relax \global\let\c!entryd\relax \global\let\c!entryletter\relax \global\let\c!entryreference\relax % \global\firstregisterentrytrue \global\firstregisterpagetrue}} {}} %D Extended with variant: \def\doregistercharacter[#1]#2% {\global\firstregisterentrytrue \doifsomething{#2} {\doifelsevalue{\??id#1\c!indicator}\v!yes {\executeifdefined {\strippedcsname\doregistercharacter\getvalue{\??id#1\c!alternative}}% \doregistercharactera [#1]{#2}} {\noregistercharacter[#1]{#2}}}} \def\noregistercharacter[#1]#2% {\getvalue{\??id#1\c!before}% \goodbreak} % a = \def\doregistercharactera[#1]#2% {\getvalue{\??id#1\c!before}% \vskip\lineheight\goodbreak\vskip-\lineheight \ifhmode\unskip\else\noindent\fi % brrr \getvalue{\??id#1\c!command}{\doattributes{\??id#1}\c!style\c!color{\strut\ignorespaces#2}}% \getvalue{\??id#1\c!after}% \par\nobreak} % b = \def\doregistercharacterb[#1]#2% here no lineheight hackery ! ! ! {\getvalue{\??id#1\c!before}% \ifhmode\unskip\else\noindent\fi % brrr \getvalue{\??id#1\c!command}% {\doattributes{\??id#1}\c!style\c!color{\strut\ignorespaces#2}}% \getvalue{\??id#1\c!after}% \nobreak} \def\doregistercharacterA[#1]#2{\doregistercharactera[#1]{\WORD{#2}}} \def\doregistercharacterB[#1]#2{\doregistercharacterb[#1]{\WORD{#2}}} %D Don't use \type{\string#2}; another hack is needed, since %D \type {#2} can be \type {\string} itself. % \def\doregisterreference[#1]#2% % {\doifvalue{\??id#1\c!referencing}\v!on % {\pagereference[#1:#2]}} \def\doregisterreference[#1]#2% {\doifsomething{#2} {\doifvalue{\??id#1\c!referencing}\v!on {\pagereference[#1:\strippedcsname#2]}}} \def\dosetpageregisterletter#1#2% {\flushseenregisterpage \gdef\c!entryreference {\global\let\c!entryreference\relax \doregisterreference[#1]{#2}}% \gdef\c!entryletter {\global\utilitydonetrue \global\let\c!entryletter\relax \doregistercharacter[#1]{#2}}} % \def\HowUgly #1{\doHowUgly#1\relax} % \def\doHowUgly#1#2\relax{\iffirstregisterentry{\bf#1}\else#1\fi#2} % unchecked % % \setupregister[index][indicator=no,deeptextcommand=\HowUgly] % % \starttext % \chapter{First Chapter} % Some text...\index{word} % \section {First Section} % Some text...\index{word} % Some text...\index{another entry} % Some text...\index{ansi} % Some text...\index{another entry} % \page[yes] % \completeindex % \stoptext \def\dohandlepageregisterentry#1#2% {\dohandleregisterentry{\executeifdefined{\??id#1\c!deeptextcommand}\firstofoneargument{#2}}} \def\dosetpageregisterentrya#1#2% {\flushseenregisterpage \edef\currententrylevel{1}% \global\let\c!entryb\relax \global\let\c!entryc\relax \global\let\c!entryd\relax \gdef\c!entrya {\iffirstregisterentry\else\endgraf\fi % new \global\firstregisterpagetrue \hangindent1em\noindent\c!entryreference \dohandlepageregisterentry{#1}{#2}% \global\firstregisterentryfalse \global\firstsubentrytrue \global\firstsubsubentrytrue}} \def\dosetpageregisterentryb#1#2% {\flushseenregisterpage % redundant \edef\currententrylevel{2}% \global\let\c!entryd\relax \global\let\c!entryc\relax \global\def\c!entryb {\iffirstregisterentry\else\endgraf\fi % new \global\firstregisterpagetrue \global\let\c!entrya\relax \iffirstsubentry\nobreak\fi \hangindent2em\noindent\c!entryreference\hskip1em\relax \dohandlepageregisterentry{#1}{#2}% \global\firstregisterentryfalse \global\firstsubentryfalse \global\firstsubsubentrytrue}} \def\dosetpageregisterentryc#1#2% {\flushseenregisterpage % redundant \edef\currententrylevel{3}% \gdef\c!entryc {\iffirstregisterentry\else\endgraf\fi % new \global\firstregisterpagetrue \global\let\c!entrya\relax \global\let\c!entryb\relax \iffirstsubsubentry\nobreak\fi \hangindent3em\noindent\c!entryreference\hskip2em\relax \dohandlepageregisterentry{#1}{#2}% \global\firstregisterentryfalse \global\firstsubsubentryfalse}} \def\dosetpageregisterentryd#1#2% {\flushseenregisterpage % redundant \edef\currententrylevel{4}% \gdef\c!entryd {\iffirstregisterentry\else\endgraf\fi % new \global\firstregisterpagetrue \global\let\c!entrya\relax \global\let\c!entryb\relax \global\let\c!entryc\relax \iffirstsubsubentry\nobreak\fi \hangindent4em\noindent\c!entryreference\hskip3em\relax \dohandlepageregisterentry{#1}{#2}% \global\firstregisterentryfalse \global\firstsubsubentryfalse}} \def\dosetpageregister#1% \currentregister gebruiken {\dosetreglevel{#1}% \global\let\currentregisterentry\empty \global\firstsubentrytrue \global\firstsubsubentrytrue \setregisterpage{#1}% \setvalue{#1\s!entrya}{\dosetpageregisterentrya {#1}}% \setvalue{#1\s!entryb}{\dosetpageregisterentryb {#1}}% \setvalue{#1\s!entryc}{\dosetpageregisterentryc {#1}}% \setvalue{#1\s!entryd}{\dosetpageregisterentryd {#1}}% \setvalue{#1\s!page }{\dosetpageregisterpage{1}{#1}}% \setvalue{#1\s!from }{\dosetpageregisterpage{2}{#1}}% \setvalue{#1\s!to }{\dosetpageregisterpage{3}{#1}}% \setvalue{#1\s!see }{\dosetpageregistersee {#1}}% \setvalue{#1\s!entry }{\dosetpageregisterletter {#1}}} \def\dosetreglevel#1% {\dosetfilterlevel{\getvalue{\??id#1\c!criterium}}\empty} \def\getalllistreferences#1#2% {\gdefconvertexpanded\currentregisterentry{\getvalue{\??id#1\c!expansion}}{#2}% \doifdefinedelse{\??id#1\??id\currentregisterentry} {\edef\alllistreferences% {\getvalue{\??id#1\??id\currentregisterentry}}% \beforesplitstring\alllistreferences\at::\to\internallistreference \aftersplitstring \alllistreferences\at::\to\alllistreferences} {\let\alllistreferences\empty \def\internallistreference{0}}} \def\dosetlinkregister#1% is die page reference echt nodig? {\dosetreglevel{#1}% \setregisterpage{#1}% \global\let\currentregisterentry\empty \global\firstsubentrytrue % not needed \global\firstsubsubentrytrue % not needed too \setvalue{#1\s!entrya}##1{\dosetlinkregisterentrya{#1}{##1}}% \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}} \def\dosetlinkregisterentrya#1#2% {\global\utilitydonetrue \c!entryletter \iflocation \getalllistreferences{#1}{#2}% % no \endgraf \hangindent1em\noindent\c!entryreference % %\thisissomeinternal{\s!lin}{\internallistreference}% % \pagereference[-:\s!lin:\internallistreference]% -: added % \getcommacommandsize[\alllistreferences]% \getfromcommacommand[\alllistreferences][1]% \ifnum\commalistsize=1 \let\firstlistreference\empty \let\midlistreference\commalistelement \let\lastlistreference\empty \else \let\firstlistreference\commalistelement \getfromcommacommand[\alllistreferences][\commalistsize]% \let\lastlistreference\commalistelement \ifnum\commalistsize=2 \let\midlistreference\empty \else \!!counta\commalistsize \divide\!!counta 2 \getfromcommacommand[\alllistreferences][\!!counta]% \let\midlistreference\commalistelement \fi \fi % aangepast \def\dodocommand[##1-##2]% {\gotonextinternal{\s!ind}{##1}{##2}{\box0}}% \doifelsevalue{\??id#1\c!interaction}\v!pagenumber {\limitedregisterentry{#1}{#2}} % paginanummer {{\setbox0\hbox{\limitedregisterentry{#1}{\begstrut#2}}% \ifx\firstlistreference\empty % tekst,alles \ifx\midlistreference\empty \box0 \else \expandafter\dodocommand\expandafter[\midlistreference]% \fi \else \expandafter\dodocommand\expandafter[\firstlistreference]% \fi}}% \doifvalue{\??id#1\c!number}\v!yes {\hskip\getvalue{\??id#1\c!distance}(\commalistsize)}% \doifnotvalue{\??id#1\c!interaction}\v!text % paginanummer,alles {\def\docommand##1##2% {{\setbox0\hbox{\showlocation{\hbox to 1em{\hss\symbol[##2]\hss}}}% \ifx##1\empty % \hskip\wd0 % (optioneel maken) \else \expandafter\dodocommand\expandafter[##1]% \fi}}% \hskip\getvalue{\??id#1\c!distance}% \docommand\firstlistreference\v!previous \docommand\midlistreference\v!somewhere \docommand\lastlistreference\v!next}% % tot hier \else % no \endgraf \noindent\c!entryreference \limitedregisterentry{#1}{#2}% \fi \endgraf} \def\dosetregister#1% {\doifelsevalue{\??id#1\c!coupling}\v!yes {\ifautoregisterhack \dosetautoregister{#1}% \else \dosetlinkregister{#1}% \fi} {\dosetpageregister{#1}}} \newcounter\internallistreference \def\doloadregisterlinks#1% {\dosetreglevel{#1}% \setregisterpage{#1}% \global\let\currentregisterentry\empty \global\firstregisterpagetrue \setvalue{#1\s!entrya}##1% {\global\firstregisterpagetrue \gdefconvertedargument\currentregisterentry{##1}% global nodig? \doglobal\increment\internallistreference}% \setvalue{#1\s!from}% {\getvalue{#1\s!page}}% \ifautoregisterhack \setvalue{#1\s!page}##1##2##3##4% {\doifreglevelelse[##3] {\global\utilitydonetrue \iffirstregisterpage \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname {\internallistreference::##4}% \else % catches errors in index \ifcsname\??id#1\??id\currentregisterentry\endcsname \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname {\csname\??id#1\??id\currentregisterentry\endcsname,##4}% \fi \fi} {}}% \else \setvalue{#1\s!page}##1##2##3##4% {\doifreglevelelse[##3] {\global\utilitydonetrue \iffirstregisterpage \global\firstregisterpagefalse \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname {\internallistreference::##2-##4}% \else % catches errors in index \ifcsname\??id#1\??id\currentregisterentry\endcsname \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname {\csname\??id#1\??id\currentregisterentry\endcsname,##2-##4}% \fi \fi} {}}% \fi} \def\docoupleregister[#1][#2]% {\iflocation \ifcase0\countervalue{autolink:#1}\relax % only once \begingroup \let\dosetregister\doloadregisterlinks \def\currentregister{#1}% \setupregister[#1][#2]% \doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister \endgroup \ifautoregisterhack \doinitializeautoregister{#1}% \else \doinitializelinkregister{#1}% \fi \fi \fi} \def\coupleregister {\dodoubleempty\docoupleregister} \def\dodocommandprolinrefAA[#1-#2]% {\def\lastlistreference{#1-#2}} \def\dodocommandprolinrefA[#1-#2]% {\def\lastlistreference{#1-#2}% \ifx\firstlistreference\empty \let\firstlistreference\lastlistreference \fi \ifnum#1<\nextinternalreference\relax \let\prevlistreference\lastlistreference \else\ifnum#1>\nextinternalreference\relax \let\nextlistreference\lastlistreference \let\dodocommandprolinrefA\dodocommandprolinrefAA \else \let\selflistreference\lastlistreference \fi\fi} \def\docommandprolinrefA#1% {\dodocommandprolinrefA[#1]} \def\dodocommandprolinrefB[#1-#2]% {\gotonextinternal{\s!ind}{#1}{#2}{\box0}} \def\docommandprolinrefB#1#2#3% {\bgroup \ifx#2\empty \doifvalue{\??id#1\c!unknownreference}\v!empty{\hskip1em}% \else \setbox0\hbox to 1em{\hss\showlocation{\symbol[#3]}\hss}% \expandafter\dodocommandprolinrefB\expandafter[#2]% \fi \egroup} \def\doprocesslinkregister[#1][#2]#3% {\hbox {\doprocesspageregister[#2]{}{#3}% \let\firstlistreference\empty \let\lastlistreference\empty \let\selflistreference\empty \let\prevlistreference\empty \let\nextlistreference\empty \getalllistreferences{#1}{#3}% \ifx\alllistreferences\empty \else \expanded{\rawprocesscommalist[\alllistreferences]}\docommandprolinrefA \fi \ifx\prevlistreference\empty \let\prevlistreference\lastlistreference \fi \ifx\nextlistreference\empty \let\nextlistreference\firstlistreference \fi \ifx\prevlistreference\selflistreference \let\prevlistreference\empty \let\nextlistreference\empty \fi \setalignmentswitch{\getvalue{\??id#1\c!location}}% \ifcase\alignmentswitch % links \docommandprolinrefB{#1}\prevlistreference\v!previous \docommandprolinrefB{#1}\nextlistreference\v!next \or % midden \docommandprolinrefB{#1}\prevlistreference\v!previous \or % rechts \fi \doifreferencefoundelse{\s!lin:\internallistreference} {\gotosomeinternal \s!lin \internallistreference \currentrealreference {\showlocation{\limitedregisterentry{#1}{#3}}}} {\hbox{\limitedregisterentry{#1}{#3}}}% \ifcase\alignmentswitch % links \or % midden \docommandprolinrefB{#1}\nextlistreference\v!next \or % rechts \docommandprolinrefB{#1}\prevlistreference\v!previous \docommandprolinrefB{#1}\nextlistreference\v!next \fi}} \def\doprocesslinkedregister[#1][#2]#3% page auto link {\bgroup \chardef\registerpagestatus\plusone \def\currentregister{#1}% \iflocation % \next is not needed \ifautoregisterhack \def\next{\doprocessautoregister[#1][#2]}% \else \def\next{\doprocesslinkregister[#1][#2]}% \fi \else \def\next{\doprocesspageregister[#2]{}}% \fi \next{#3}% \egroup} \def\dodolinkedregister[#1][#2]#3% page auto link {\doflushatpar{\doprocesslinkedregister[#1][#2]{#3}}} \def\dolinkedregister#1% {\dodoubleempty\dodolinkedregister[#1]} \def\dosetautoregister#1% {\makecounter{autolink:#1}% \dosetreglevel{#1}% \setregisterpage{#1}% \global\let\currentregisterentry\empty \global\firstsubentrytrue % not needed \global\firstsubsubentrytrue % not needed too \setvalue{#1\s!entrya}##1{\dosetautoregisterentrya{#1}{##1}}% \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}} \def\dosetautoregisterentrya#1#2% {\global\utilitydonetrue \c!entryletter \iflocation \getalllistreferences{#1}{#2}% \endgraf\hangindent1em\noindent\c!entryreference \pagereference[-:\s!lin:\internallistreference]% \pluscounter{autolink:#1}% \bgroup %\setupinteraction[\c!color=,\c!contrastcolor=,\c!style=]% kan sneller \resetinteractionparameter\c!color \resetinteractionparameter\c!contrastcolor \resetinteractionparameter\c!style \gotobox {\limitedregisterentry{#1}{\begstrut#2}}% [JS(SetRegisterEntry{\v!register,\countervalue{autolink:#1},#2,{\alllistreferences}})]% \egroup \else \endgraf\noindent\c!entryreference \limitedregisterentry{#1}{#2}% \fi} \def\doprocessautoregister[#1][#2]#3% {\hbox {\doprocesspageregister[#2]{}{#3}% \doifreferencefoundelse{\s!lin:\internallistreference} {\gotosomeinternal \s!lin {\internallistreference}{\currentrealreference} {\showlocation{\limitedregisterentry{#1}{#3}}}} {\hbox{\limitedregisterentry{#1}{#3}}}}} % \appendmacro aan openpaginaactie (in shipout) %D The first implementation used one main field with clones. %D In a 2500 page document this resulted in a rather (anoying) %D long start||up time. This \quote {every page its own field} %D solution, combined with a \quote {page open action}, works %D much faster, but is conceptually pretty weak. \def\complexregisterfield[#1]% {\definefield[#1:\realfolio][line][\v!register]% \field[#1:\realfolio]} \def\simpleregisterfield {\complexregisterfield[\v!register]} \definecomplexorsimple\registerfield \setupfield [\v!register] [\c!width=10em, \c!height=3ex, \c!align=\v!middle, \c!option=\v!readonly, \c!location=\v!low] \def\doinitializeautoregister#1% {\useJSscripts[reg]% \useJSpreamblenow{LinkedRegisters}% \setupinteraction[\c!openpageaction=JS(UpdateRegisterField{\v!register})]% \definereference[\v!reset\v!register][JS(ResetRegisterEntry{\v!register})]% \definereference[\v!first\v!register][JS(GotoFirstRegisterEntry{\v!register})]% \definereference[\v!previous\v!register][JS(GotoPreviousRegisterEntry{\v!register})]% \definereference[\v!next\v!register][JS(GotoNextRegisterEntry{\v!register})]% \definereference[\v!last\v!register][JS(GotoLastRegisterEntry{\v!register})]} \def\doinitializelinkregister#1% {} % todo ruwe register \def\placeregister {\dodoubleempty\doplaceregister} \def\doplaceregister[#1][#2]% {\iffirstargument \begingroup \edef\currentregister{#1}% \setupregister[\currentregister][#2]% \doifelse{\registerparameter\c!compress}\v!yes % new {\chardef\collapseregisterpages\plusone} {\chardef\collapseregisterpages\zerocount}% % TH: disable next line % \raggedright % /TH \startcolumns [\c!n=\registerparameter\c!n, \c!balance=\registerparameter\c!balance, \c!align=\registerparameter\c!align, tolerance=stretch]% \dontcomplain \startpacked[\v!blank]% \doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister \stoppacked \stopcolumns \endgroup \fi} \def\dobeforeplaceregister {\resetseenregisterpage \relax} \def\doafterplaceregister {\flushseenregisterpage \par} \def\completeregister {\dodoubleempty\docompleteregister} \def\docompleteregister[#1][#2]% {\iffirstargument \begingroup \edef\currentregister{#1}% % the expansion is needed because we don't want \v!'s in the tuo file (french) \expanded{\systemsuppliedchapter[\currentregister]{\noexpand\headtext{\currentregister}}}% \placeregister[\currentregister][#2]% \page[\v!yes]% \endgroup \fi} \def\doregisterregisterlanguage#1% {\savesortlanguage{\getvalue{\??id#1\s!language}}% \expanded{\immediatewriteutility{r l {#1} {\getvalue{\??id#1\s!language}}}}} \def\dodefineregister[#1][#2]% {\setupregister[#1]% [\c!n=2, \c!balance=\v!yes, % \v!no komt niet zo vaak voor \c!align=\v!flushleft, \c!before=\blank, % binnen kolommen: \blank[\v!line] \c!after=, \c!symbol=, \c!compress=\v!no, \c!interaction=\v!pagenumber, \c!alternative=\v!a, \c!distance=1em, \c!style=\v!bold, \c!pagestyle=\v!slanted, \c!indicator=\v!yes, \v!part\v!number=\v!yes, % v \v!chapter\c!number=\v!no, \c!criterium=\v!all, \c!command=, \c!referencing=\v!on, \c!location=\v!middle, \c!maxwidth=, \c!number=\v!no, \c!unknownreference=\v!empty, \c!prefix=\v!both, \c!expansion=, \c!keyexpansion=, \c!file=\jobname, %\c!deeptextcommand=, % undefined by default ! \s!language=\currentmainlanguage]% \doglobal\appendtoksonce \doregisterregisterlanguage{#1}% \to \everysavesortkeys \presetheadtext[#1=\Word{#1}]% \addutilityreset{#1}% \setvalue{#1}{\doregister{#1}}% \setvalue{\e!coupled#1}{\dolinkedregister{#1}}% \setvalue{\s!set#1}{\dosetregister{#1}}% \setvalue{\s!reset#1}{\doresetregister{#1}}% \setvalue{\e!see#1}{\doseeregister{#1}}% \setvalue{\e!place#1}{\placeregister[#1]}% \setvalue{\e!complete#1}{\completeregister[#1]}% \setvalue{\e!setup#1\e!endsetup}[##1]{\getparameters[\??id#1][##1]}} \def\defineregister {\dodoubleargument\dodefineregister} \def\registerlengte{\utilityregisterlength} \def\utilityregisterlength{0} \def\dodetermineregistercharacteristics[#1][#2]% {\begingroup \def\currentregister{#1}% \setupregister[#1][#2]% \dosetreglevel{#1}% \setvalue{#1\s!from}% {\getvalue{#1\s!page}}% \setvalue{#1\s!page}##1##2##3##4% {\doifreglevelelse[##3] {\doglobal\increment\utilitylistlength \global\utilitydonetrue} {}}% \doglobal\newcounter\utilityregisterlength \setbox0\vbox{\doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister}% \endgroup \ifregistergeplaatst \setsystemmode \v!register \else \resetsystemmode\v!register \fi} \def\determineregistercharacteristics {\dodoubleempty\dodetermineregistercharacteristics} %D Default index: \defineregister [\v!index] [\v!indices] % \setupregister[index][koppeling=ja] % % \stelveldenin % [register][achtergrond=raster,kader=uit] % % \stelvoettekstenin % [{\field[index]}] % % \stelhoofdtekstenin % [{\naar {first}[eersteindex]\quad % \naar{previous}[vorigeindex]\quad % \naar {next}[volgendeindex]\quad % \naar {last}[laatsteindex]\quad\quad % \naar {index}[index]}] % % \starttekst % % oeps~~~\gekoppeldeindex{oeps} \blanko % flop~~~\gekoppeldeindex{flop} \blanko % test~~~\gekoppeldeindex{test} \pagina % flop~~~\gekoppeldeindex{flop} \blanko % test~~~\gekoppeldeindex{test} \pagina % oeps~~~\gekoppeldeindex{oeps} \blanko % test~~~\gekoppeldeindex{test} \pagina % flop~~~\gekoppeldeindex{flop} \blanko % oeps~~~\gekoppeldeindex{oeps} \pagina % % \volledigeindex \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-ans.mkii0000644000175000017500000001605114536300610024661 0ustar hillehille%D \module %D [ file=enco-ans, %D version=2000.05.07, % 1995.01.01, %D title=\CONTEXT\ Encoding Macros, %D subtitle=\YandY\ texnansi Encoding, %D author={Patrick Gundlach, Hans Hagen}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This is \YandY's texnansi encoding vector, which combines %D the best of the ansi encoding vector (prebuilt accented %D characters etc.) and some of \TEX's vectors. \startmapping[texnansi] \resetcaserange 128 to 158 \resetcaserange 160 to 191 \resetcaserange 215 to 215 \resetcaserange 247 to 247 \definecasemaps 192 to 214 lc +32 uc 0 \definecasemaps 224 to 246 lc 0 uc -32 \definecasemaps 216 to 222 lc +32 uc 0 \definecasemaps 248 to 254 lc 0 uc -32 \definecaseself 223 \definecaseswap 156 140 \definecaseswap 255 159 % needed by some patterns: % \definecaseself 34 % quotedbl % \definecaseself 132 % quotedblbase % \definecaseself 147 % quotedblleft % \definecaseself 148 % quotedblright % \definecaseself 129 % quotesingle % \definecaseself 130 % quotesinglebase % \definecaseself 145 % quoteleft \definecaseself 146 % quoteright \stopmapping \startencoding[texnansi] \definecharacter textacute 19 \definecharacter textbreve 21 \definecharacter textcaron 20 \definecharacter textcedilla 184 \definecharacter textcircumflex 94 % 136 \definecharacter textdiaeresis 168 \definecharacter textdotaccent 5 \definecharacter textgrave 18 \definecharacter texthungarumlaut 6 \definecharacter textmacron 175 \definecharacter textogonek 7 \definecharacter textring 23 \definecharacter texttilde 152 \definecharacter dotlessi 16 % 105 \definecharacter dotlessj 17 \definecharacter endash 150 % lig \definecharacter emdash 151 % lig \definecharacter aeligature 230 \definecharacter AEligature 198 \definecharacter oeligature 156 \definecharacter OEligature 140 \definecharacter ssharp 223 \definecharacter thorn 254 \definecharacter Thorn 222 \definecharacter Dstroke 208 % also Eth, mapped in enco-def \definecharacter eth 240 \definecharacter exclamdown 161 \definecharacter questiondown 191 \definecharacter copyright 169 \definecharacter registered 174 \definecharacter trademark 153 \definecharacter sectionmark 167 \definecharacter paragraphmark 182 \definecharacter onequarter 188 \definecharacter onehalf 189 \definecharacter threequarter 190 \definecharacter onesuperior 185 \definecharacter twosuperior 178 \definecharacter threesuperior 179 \definecharacter textcent 162 % ? \definecharacter textcurrency 164 \definecharacter texteuro 1 \definecharacter textflorin 131 \definecharacter textsterling 163 \definecharacter textyen 165 \definecharacter percent 37 \definecharacter perthousand 137 \definecharacter softhyphen 45 \definecharacter periodcentered 183 \definecharacter textasciicircum 142 \definecharacter textasciitilde 158 \definecharacter textbackslash 92 \definecharacter textbraceleft 123 \definecharacter textbar 124 \definecharacter textbraceright 125 \definecharacter textunderscore 95 \definecharacter textbrokenbar 166 \definecharacter textbullet 149 \definecharacter textdag 134 \definecharacter textddag 135 \definecharacter textdegree 176 \definecharacter textdiv 247 \definecharacter textellipsis 133 \definecharacter textfraction 4 \definecharacter textlognot 172 \definecharacter textminus 143 \definecharacter textmu 181 \definecharacter textmultiply 215 \definecharacter textpm 177 \definecharacter quotedbl 34 \definecharacter quotedblbase 132 \definecharacter quotedblleft 147 \definecharacter quotedblright 148 \definecharacter quotesingle 129 \definecharacter quotesinglebase 130 \definecharacter quoteleft 145 \definecharacter quoteright 146 \definecharacter guilsingleleft 139 \definecharacter guilsingleright 155 \definecharacter leftguillemot 171 \definecharacter rightguillemot 187 \definecharacter aacute 225 \definecharacter Aacute 193 \definecharacter eacute 233 \definecharacter Eacute 201 \definecharacter iacute 237 \definecharacter Iacute 205 \definecharacter oacute 243 \definecharacter Oacute 211 \definecharacter uacute 250 \definecharacter Uacute 218 \definecharacter yacute 253 \definecharacter Yacute 221 \definecharacter scaron 154 \definecharacter Scaron 138 \definecharacter zcaron 157 \definecharacter Zcaron 141 \definecharacter ccedilla 231 \definecharacter Ccedilla 199 \definecharacter acircumflex 226 \definecharacter Acircumflex 194 \definecharacter ecircumflex 234 \definecharacter Ecircumflex 202 \definecharacter icircumflex 238 \definecharacter Icircumflex 206 \definecharacter ocircumflex 244 \definecharacter Ocircumflex 212 \definecharacter ucircumflex 251 \definecharacter Ucircumflex 219 \definecharacter adiaeresis 228 \definecharacter Adiaeresis 196 \definecharacter ediaeresis 235 \definecharacter Ediaeresis 203 \definecharacter idiaeresis 239 \definecharacter Idiaeresis 207 \definecharacter odiaeresis 246 \definecharacter Odiaeresis 214 \definecharacter udiaeresis 252 \definecharacter Udiaeresis 220 \definecharacter ydiaeresis 255 \definecharacter Ydiaeresis 159 \definecharacter agrave 224 \definecharacter Agrave 192 \definecharacter egrave 232 \definecharacter Egrave 200 \definecharacter igrave 236 \definecharacter Igrave 204 \definecharacter ograve 242 \definecharacter Ograve 210 \definecharacter ugrave 249 \definecharacter Ugrave 217 \definecharacter aring 229 \definecharacter Aring 197 \definecharacter Lstroke 128 \definecharacter lstroke 144 \definecharacter ostroke 248 \definecharacter Ostoke 216 \definecharacter atilde 227 \definecharacter Atilde 195 \definecharacter ntilde 241 \definecharacter Ntilde 209 \definecharacter otilde 245 \definecharacter Otilde 213 \stopencoding % will be replaced by math collection, fails anyway \startencoding[texnansi] \definecharacter mathgrave "7060 \definecharacter mathacute "70B4 \definecharacter mathhat "7088 \definecharacter mathtilde "7098 \definecharacter mathddot "70A8 \definecharacter mathbar "70AF \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-8859-7.mkii0000644000175000017500000002556614536300610024676 0ustar hillehille%D \module %D [ file=regi-8859-7, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=iso-8859-7 (Greek), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for iso-8859-7 input encoding (regime) for Greek, %D see also cp1253. %D %D (Contributor to the original file: Apostolos Syropoulos.) %D %D Usage: \type{\enableregime[8859-7]} (see \type {regi-syn} for %D alternatives calls). \startregime[8859-7] \defineactivetoken 128 {\unknownchar} % 0080 \defineactivetoken 129 {\unknownchar} % 0081 \defineactivetoken 130 {\unknownchar} % 0082 \defineactivetoken 131 {\unknownchar} % 0083 \defineactivetoken 132 {\unknownchar} % 0084 \defineactivetoken 133 {\unknownchar} % 0085 \defineactivetoken 134 {\unknownchar} % 0086 \defineactivetoken 135 {\unknownchar} % 0087 \defineactivetoken 136 {\unknownchar} % 0088 \defineactivetoken 137 {\unknownchar} % 0089 \defineactivetoken 138 {\unknownchar} % 008A \defineactivetoken 139 {\unknownchar} % 008B \defineactivetoken 140 {\unknownchar} % 008C \defineactivetoken 141 {\unknownchar} % 008D \defineactivetoken 142 {\unknownchar} % 008E \defineactivetoken 143 {\unknownchar} % 008F \defineactivetoken 144 {\unknownchar} % 0090 \defineactivetoken 145 {\unknownchar} % 0091 \defineactivetoken 146 {\unknownchar} % 0092 \defineactivetoken 147 {\unknownchar} % 0093 \defineactivetoken 148 {\unknownchar} % 0094 \defineactivetoken 149 {\unknownchar} % 0095 \defineactivetoken 150 {\unknownchar} % 0096 \defineactivetoken 151 {\unknownchar} % 0097 \defineactivetoken 152 {\unknownchar} % 0098 \defineactivetoken 153 {\unknownchar} % 0099 \defineactivetoken 154 {\unknownchar} % 009A \defineactivetoken 155 {\unknownchar} % 009B \defineactivetoken 156 {\unknownchar} % 009C \defineactivetoken 157 {\unknownchar} % 009D \defineactivetoken 158 {\unknownchar} % 009E \defineactivetoken 159 {\unknownchar} % 009F \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK \defineactivetoken 162 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK \defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN \defineactivetoken 164 {\texteuro} % 20AC EURO SIGN \defineactivetoken 165 {\unknownchar} % 20AF DRACHMA SIGN (TODO) \defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\unknownchar} % 037A GREEK YPOGEGRAMMENI (TODO) \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\textlognot} % 00AC NOT SIGN \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 175 {\texthorizontalbar} % 2015 HORIZONTAL BAR \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO \defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE \defineactivetoken 180 {\greektonos} % 0384 GREEK TONOS \defineactivetoken 181 {\greekdialytikatonos} % 0385 GREEK DIALYTIKA TONOS \defineactivetoken 182 {\greekAlphatonos} % 0386 GREEK CAPITAL LETTER ALPHA WITH TONOS \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\greekEpsilontonos} % 0388 GREEK CAPITAL LETTER EPSILON WITH TONOS \defineactivetoken 185 {\greekEtatonos} % 0389 GREEK CAPITAL LETTER ETA WITH TONOS \defineactivetoken 186 {\greekIotatonos} % 038A GREEK CAPITAL LETTER IOTA WITH TONOS \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\greekOmicrontonos} % 038C GREEK CAPITAL LETTER OMICRON WITH TONOS \defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF \defineactivetoken 190 {\greekUpsilontonos} % 038E GREEK CAPITAL LETTER UPSILON WITH TONOS \defineactivetoken 191 {\greekOmegatonos} % 038F GREEK CAPITAL LETTER OMEGA WITH TONOS \defineactivetoken 192 {\greekiotadialytikatonos} % 0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS \defineactivetoken 193 {\greekAlpha} % 0391 GREEK CAPITAL LETTER ALPHA \defineactivetoken 194 {\greekBeta} % 0392 GREEK CAPITAL LETTER BETA \defineactivetoken 195 {\greekGamma} % 0393 GREEK CAPITAL LETTER GAMMA \defineactivetoken 196 {\greekDelta} % 0394 GREEK CAPITAL LETTER DELTA \defineactivetoken 197 {\greekEpsilon} % 0395 GREEK CAPITAL LETTER EPSILON \defineactivetoken 198 {\greekZeta} % 0396 GREEK CAPITAL LETTER ZETA \defineactivetoken 199 {\greekEta} % 0397 GREEK CAPITAL LETTER ETA \defineactivetoken 200 {\greekTheta} % 0398 GREEK CAPITAL LETTER THETA \defineactivetoken 201 {\greekIota} % 0399 GREEK CAPITAL LETTER IOTA \defineactivetoken 202 {\greekKappa} % 039A GREEK CAPITAL LETTER KAPPA \defineactivetoken 203 {\greekLambda} % 039B GREEK CAPITAL LETTER LAMDA \defineactivetoken 204 {\greekMu} % 039C GREEK CAPITAL LETTER MU \defineactivetoken 205 {\greekNu} % 039D GREEK CAPITAL LETTER NU \defineactivetoken 206 {\greekXi} % 039E GREEK CAPITAL LETTER XI \defineactivetoken 207 {\greekOmicron} % 039F GREEK CAPITAL LETTER OMICRON \defineactivetoken 208 {\greekPi} % 03A0 GREEK CAPITAL LETTER PI \defineactivetoken 209 {\greekRho} % 03A1 GREEK CAPITAL LETTER RHO \defineactivetoken 210 {\unknownchar} % \defineactivetoken 211 {\greekSigma} % 03A3 GREEK CAPITAL LETTER SIGMA \defineactivetoken 212 {\greekTau} % 03A4 GREEK CAPITAL LETTER TAU \defineactivetoken 213 {\greekUpsilon} % 03A5 GREEK CAPITAL LETTER UPSILON \defineactivetoken 214 {\greekPhi} % 03A6 GREEK CAPITAL LETTER PHI \defineactivetoken 215 {\greekChi} % 03A7 GREEK CAPITAL LETTER CHI \defineactivetoken 216 {\greekPsi} % 03A8 GREEK CAPITAL LETTER PSI \defineactivetoken 217 {\greekOmega} % 03A9 GREEK CAPITAL LETTER OMEGA \defineactivetoken 218 {\greekIotadialytika} % 03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA \defineactivetoken 219 {\greekUpsilondialytika} % 03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA \defineactivetoken 220 {\greekalphatonos} % 03AC GREEK SMALL LETTER ALPHA WITH TONOS \defineactivetoken 221 {\greekepsilontonos} % 03AD GREEK SMALL LETTER EPSILON WITH TONOS \defineactivetoken 222 {\greeketatonos} % 03AE GREEK SMALL LETTER ETA WITH TONOS \defineactivetoken 223 {\greekiotatonos} % 03AF GREEK SMALL LETTER IOTA WITH TONOS \defineactivetoken 224 {\greekupsilondialytikatonos} % 03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS \defineactivetoken 225 {\greekalpha} % 03B1 GREEK SMALL LETTER ALPHA \defineactivetoken 226 {\greekbeta} % 03B2 GREEK SMALL LETTER BETA \defineactivetoken 227 {\greekgamma} % 03B3 GREEK SMALL LETTER GAMMA \defineactivetoken 228 {\greekdelta} % 03B4 GREEK SMALL LETTER DELTA \defineactivetoken 229 {\greekepsilon} % 03B5 GREEK SMALL LETTER EPSILON \defineactivetoken 230 {\greekzeta} % 03B6 GREEK SMALL LETTER ZETA \defineactivetoken 231 {\greeketa} % 03B7 GREEK SMALL LETTER ETA \defineactivetoken 232 {\greektheta} % 03B8 GREEK SMALL LETTER THETA \defineactivetoken 233 {\greekiota} % 03B9 GREEK SMALL LETTER IOTA \defineactivetoken 234 {\greekkappa} % 03BA GREEK SMALL LETTER KAPPA \defineactivetoken 235 {\greeklambda} % 03BB GREEK SMALL LETTER LAMDA \defineactivetoken 236 {\greekmu} % 03BC GREEK SMALL LETTER MU \defineactivetoken 237 {\greeknu} % 03BD GREEK SMALL LETTER NU \defineactivetoken 238 {\greekxi} % 03BE GREEK SMALL LETTER XI \defineactivetoken 239 {\greekomicron} % 03BF GREEK SMALL LETTER OMICRON \defineactivetoken 240 {\greekpi} % 03C0 GREEK SMALL LETTER PI \defineactivetoken 241 {\greekrho} % 03C1 GREEK SMALL LETTER RHO \defineactivetoken 242 {\greekfinalsigma} % 03C2 GREEK SMALL LETTER FINAL SIGMA \defineactivetoken 243 {\greeksigma} % 03C3 GREEK SMALL LETTER SIGMA \defineactivetoken 244 {\greektau} % 03C4 GREEK SMALL LETTER TAU \defineactivetoken 245 {\greekupsilon} % 03C5 GREEK SMALL LETTER UPSILON \defineactivetoken 246 {\greekphi} % 03C6 GREEK SMALL LETTER PHI \defineactivetoken 247 {\greekchi} % 03C7 GREEK SMALL LETTER CHI \defineactivetoken 248 {\greekpsi} % 03C8 GREEK SMALL LETTER PSI \defineactivetoken 249 {\greekomega} % 03C9 GREEK SMALL LETTER OMEGA \defineactivetoken 250 {\greekiotadialytika} % 03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA \defineactivetoken 251 {\greekupsilondiaeresis} % 03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA \defineactivetoken 252 {\greekomicrontonos} % 03CC GREEK SMALL LETTER OMICRON WITH TONOS \defineactivetoken 253 {\greekupsilontonos} % 03CD GREEK SMALL LETTER UPSILON WITH TONOS \defineactivetoken 254 {\greekomegatonos} % 03CE GREEK SMALL LETTER OMEGA WITH TONOS \defineactivetoken 255 {\unknownchar} % \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-8859-1.mkii0000644000175000017500000002631614536300610024662 0ustar hillehille%D \module %D [ file=regi-8859-1, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=iso-8859-1 (West European), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for iso-8859-1/Latin1 input encoding (regime) for West European languages, %D see also cp1252 and iso-8859-15 (includes Euro). %D %D (Contributors to the original file: Daniel Flipo, Hans Hagen \& Denis Roegel.) %D %D Usage: \type{\enableregime[8859-1]} (see \type {regi-syn} for %D alternatives calls). \startregime[8859-1] \defineactivetoken 128 {\unknownchar} % 0080 \defineactivetoken 129 {\unknownchar} % 0081 \defineactivetoken 130 {\unknownchar} % 0082 \defineactivetoken 131 {\unknownchar} % 0083 \defineactivetoken 132 {\unknownchar} % 0084 \defineactivetoken 133 {\unknownchar} % 0085 \defineactivetoken 134 {\unknownchar} % 0086 \defineactivetoken 135 {\unknownchar} % 0087 \defineactivetoken 136 {\unknownchar} % 0088 \defineactivetoken 137 {\unknownchar} % 0089 \defineactivetoken 138 {\unknownchar} % 008A \defineactivetoken 139 {\unknownchar} % 008B \defineactivetoken 140 {\unknownchar} % 008C \defineactivetoken 141 {\unknownchar} % 008D \defineactivetoken 142 {\unknownchar} % 008E \defineactivetoken 143 {\unknownchar} % 008F \defineactivetoken 144 {\unknownchar} % 0090 \defineactivetoken 145 {\unknownchar} % 0091 \defineactivetoken 146 {\unknownchar} % 0092 \defineactivetoken 147 {\unknownchar} % 0093 \defineactivetoken 148 {\unknownchar} % 0094 \defineactivetoken 149 {\unknownchar} % 0095 \defineactivetoken 150 {\unknownchar} % 0096 \defineactivetoken 151 {\unknownchar} % 0097 \defineactivetoken 152 {\unknownchar} % 0098 \defineactivetoken 153 {\unknownchar} % 0099 \defineactivetoken 154 {\unknownchar} % 009A \defineactivetoken 155 {\unknownchar} % 009B \defineactivetoken 156 {\unknownchar} % 009C \defineactivetoken 157 {\unknownchar} % 009D \defineactivetoken 158 {\unknownchar} % 009E \defineactivetoken 159 {\unknownchar} % 009F \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\exclamdown} % 00A1 INVERTED EXCLAMATION MARK \defineactivetoken 162 {\textcent} % 00A2 CENT SIGN \defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN \defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN \defineactivetoken 165 {\textyen} % 00A5 YEN SIGN \defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\ordfeminine} % 00AA FEMININE ORDINAL INDICATOR \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\textlognot} % 00AC NOT SIGN \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN \defineactivetoken 175 {\textmacron} % 00AF MACRON \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO \defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE \defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT \defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN \defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA \defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE \defineactivetoken 186 {\ordmasculine} % 00BA MASCULINE ORDINAL INDICATOR \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\onequarter} % 00BC VULGAR FRACTION ONE QUARTER \defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF \defineactivetoken 190 {\threequarter} % 00BE VULGAR FRACTION THREE QUARTERS \defineactivetoken 191 {\questiondown} % 00BF INVERTED QUESTION MARK \defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE \defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE \defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX \defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE \defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS \defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE \defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE \defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA \defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE \defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE \defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX \defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS \defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE \defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE \defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX \defineactivetoken 207 {\Idiaeresis} % 00CF LATIN CAPITAL LETTER I WITH DIAERESIS \defineactivetoken 208 {\Eth} % 00D0 LATIN CAPITAL LETTER ETH \defineactivetoken 209 {\Ntilde} % 00D1 LATIN CAPITAL LETTER N WITH TILDE \defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE \defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE \defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX \defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE \defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS \defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN \defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE \defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE \defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE \defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX \defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS \defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE \defineactivetoken 222 {\Thorn} % 00DE LATIN CAPITAL LETTER THORN \defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S \defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE \defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE \defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX \defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE \defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS \defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE \defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE \defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA \defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE \defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE \defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX \defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS \defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE \defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE \defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX \defineactivetoken 239 {\idiaeresis} % 00EF LATIN SMALL LETTER I WITH DIAERESIS \defineactivetoken 240 {\eth} % 00F0 LATIN SMALL LETTER ETH \defineactivetoken 241 {\ntilde} % 00F1 LATIN SMALL LETTER N WITH TILDE \defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE \defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE \defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX \defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE \defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS \defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN \defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE \defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE \defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE \defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX \defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS \defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE \defineactivetoken 254 {\thorn} % 00FE LATIN SMALL LETTER THORN \defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-run.mkii0000644000175000017500000000176514536300610024707 0ustar hillehille%D \module %D [ file=lang-run, %D version=2005.09.08, %D title=\CONTEXT\ Language Macros, %D subtitle=Runtime Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D [This code is hooked into the core macros and saves some %D format space.] \unprotect \gdef\showpatterns {\bgroup \def\doshowpatterns##1##2##3##4% language number encoding mapping {\NC##1\NC##3\NC##4\NC##2\NC \specificlanguageparameter{##1}\s!lefthyphenmin \NC \specificlanguageparameter{##1}\s!righthyphenmin\NC\NR}% \starttabulate[|c|c|c|c|c|c|] \HL \NC \bf language \NC \bf encoding \NC \bf mapping \NC \bf number \NC \bf left\low{min} \NC \bf right\low{min} \NC \NR \HL \preloadedpmessage \HL \stoptabulate \egroup} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/anch-bar.mkii0000644000175000017500000001212014536300610024622 0ustar hillehille%D \module %D [ file=anch-bar, %D version=2003.03.16, %D title=\CONTEXT\ Anchoring Macros, %D subtitle=Margin Bars and alike, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Anchoring Macros / Margin Bars} \unprotect %D We will implement a sidebar mechanism using the %D functionality from \type {core-pos}. %D %D \starttyping %D \definesidebar[whow][rulecolor=green,distance=] %D %D \input tufte \par %D \startsidebar %D \input tufte \par %D \input tufte \par %D \startsidebar[whow] %D \input tufte \par %D \input tufte \par %D \input tufte %D \stopsidebar \par %D \input tufte \par %D \input tufte %D \stopsidebar \par %D \input tufte \par %D \input tufte \par %D \startsidebar %D \input tufte \par %D \input tufte \par %D \input tufte \par %D \input tufte \par %D \input tufte %D \stopsidebar \par %D \input tufte \par %D \input tufte \par %D \startsidebar %D \input tufte %D \input tufte %D \input tufte %D \input tufte %D \input tufte %D \stopsidebar %D \stoptyping \newcount\currentsidebar \newdimen\sidebardistance \def\setupsidebars {\dodoubleargument\dosetupsidebars} \def\dosetupsidebars[#1][#2]% {\ifsecondargument \getparameters[\??br#1][#2]% \else \getparameters[\??br][#1]% \fi} % \setupMPvariables % [mpos:bar] % [linecolor=red, % linewidth=2pt, % distance=5pt] \setupsidebars [\c!rulethickness=2pt, \c!rulecolor=red, \c!distance=.5\bodyfontsize] \def\definesidebar {\dodoubleempty\dodefinesidebar} \def\dodefinesidebar[#1][#2]% {\copyparameters [\??br#1][\??br] [\c!rulethickness,\c!rulecolor,\c!distance]% \getparameters [\??br#1][#2]} \def\startsidebar {\dosingleempty\dostartsidebar} \def\dostartsidebar[#1]% {\bgroup \dontleavehmode \checktextbackgrounds \global\advance\currentsidebar\plusone \doifelsenothing{#1} {\advance\sidebardistance\@@brdistance} {\doifelsevaluenothing{\??br#1\c!distance} {\advance\sidebardistance\@@brdistance} {\sidebardistance\getvalue{\??br#1\c!distance}}}% \startpositionoverlay{text-1}% \expanded{\setMPpositiongraphicrange {b:side:\the\currentsidebar}% {e:side:\the\currentsidebar}% {mpos:bar}% {self=side:\the\currentsidebar, linewidth=\getvalue{\??br#1\c!rulethickness}, linecolor=\getvalue{\??br#1\c!rulecolor}, distance=\the\sidebardistance}}% \stoppositionoverlay \bpos{side:\the\currentsidebar}\ignorespaces} % \def\dostopsidebar#1% % {\removelastspace\tpos{side:#1}\carryoverpar\egroup} \def\stopsidebar {\removelastspace\tpos{side:\the\currentsidebar}\carryoverpar\egroup} \startMPpositionmethod{mpos:bar} \startMPpositiongraphic{mpos:bar}{linecolor,linewidth,distance}% StartPage ; path p ; p := if \MPp\MPbself=\MPp\MPeself : (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) -- (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ; elseif RealPageNumber=\MPp\MPbself : (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) -- (llcorner Field[Text][Text]) ; elseif RealPageNumber=\MPp\MPeself : (ulcorner Field[Text][Text]) -- (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ; else : (ulcorner Field[Text][Text]) -- (llcorner Field[Text][Text]) ; fi ; p := p shifted (-llcorner Field[Text][Text]-(\MPvar{distance},0)) ; interim linecap := butt ; draw p withpen pencircle scaled \MPvar{linewidth} withcolor \MPvar{linecolor} ; StopPage ; \stopMPpositiongraphic \MPpositiongraphic{mpos:bar}{}% \stopMPpositionmethod %D We now reimplement the margin rules handler defined in %D \type {core-rul}: %D %D \setupmarginrules[level=5] %D %D \startmarginrule[1] %D First we set the level at~5. Next we typeset this first %D paragraph as a level~1 one. As expected no rule show up. %D \stopmarginrule %D %D \startmarginrule[5] %D The second paragraph is a level~5 one. As we can see here, %D the marginal rule gets a width according to its level. %D \stopmarginrule %D %D \startmarginrule[8] %D It will of course be no surprise that this third paragraph %D has a even thicker margin rule. This behavior can be %D overruled by specifying the width explictly. %D \stopmarginrule \definesidebar [\v!margin] [\c!rulecolor=\s!black, \c!rulethickness=\@@karulethickness, \c!distance=\dimexpr\leftmargindistance-\@@karulethickness/2\relax] \definecomplexorsimple\startmarginrule \def\simplestartmarginrule {\complexstartmarginrule[1]} \def\complexstartmarginrule[#1]% {\bgroup \ifnum#1<\@@kalevel\relax \let\stopmarginrule\egroup \else \def\@@kadefaultwidth{#1}% \let\stopmarginrule\dostopmarginrule \@EA\startsidebar\@EA[\@EA\v!margin\@EA]% \fi} \def\dostopmarginrule {\stopsidebar \egroup} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-pre.mkii0000644000175000017500000003234714536300610024713 0ustar hillehille%D \module %D [ file=xtag-pre, %D version=2000.12.20, %D title=\CONTEXT\ XML Macros, %D subtitle=Predefined Things, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / Predefined} %D Here we predefine some escapes, processing instructions, %D entities and other handy things. \unprotect %D For \MKIV: \setvalue{@u@s@"}#1#2"{#2} \setvalue{@g@s@"}#1#2"{\scratchtoks{#2}} \setvalue{@u@s@'}#1#2'{#2} \setvalue{@g@s@'}#1#2'{\scratchtoks{#2}} \setvalue{@u@s@ }#1#2 {#2} \setvalue{@g@s@ }#1#2 {\scratchtoks{#2}} \def\unstringed#1{\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1} \def\grabstring#1{\csname\ifcsname @g@s@#1\endcsname @g@s@#1\else\s!empty\fi\endcsname#1} \def\dowithgrabbedstring#1% {\def\@@dowithgrabbedstring{#1}% \afterassignment\@@dowithgrabbedstring\grabstring} %D Let's get rid of ligatures: % \definefonthandling [default] [noligs] %D First we define the default error handler. When tracing is %D activated, the unknown element is showed verbatim. \defineXMLenvironment [\s!default] \defaultXMLelement \defaultXMLelement \defineXMLsingular [\s!default] \defaultXMLelement % \def\defaultXMLelement % {\iftraceXMLelements[\currentXMLfullidentifier]\fi} \def\defaultXMLelement {\iftraceXMLelements{\infofont<\currentXMLfullidentifier>}\fi} %D We can use the default handler to implement automatic %D element hiding. Beware: this overloads the tracer. % \def\startXMLignore{\dododefineXMLignore \s!default} % \def\stopXMLignore {\dododefineXMLprocess\s!default} \newcount\xmlignoredepth \def\startXMLignore{\ifcase\xmlignoredepth\dododefineXMLignore\s!default\fi\advance\xmlignoredepth\plusone} \def\stopXMLignore {\advance\xmlignoredepth\minusone\ifcase\xmlignoredepth\dododefineXMLprocess\s!default\fi} %D The following entities need to be defined anyway. They %D may be overloaded later. % rest also \letter \defineXMLentities [amp] {\letterampersand} {\&} \defineXMLentities [gt] {\string>} {\mathematics{>}} \defineXMLentities [lt] {\string<} {\mathematics{<}} \defineXMLentities [quot] {\string"} {\mathematics{"}} \defineXMLentities [apos] {\string`} {\mathematics{'}} %D Of course we define: \defineXMLentities [tex] {tex} {\TeX} \defineXMLentities [context] {context} {\ConTeXt} \defineXMLentities [xml] {xml} {XML} \defineXMLentities [xsd] {xsd} {XSD} \defineXMLentities [html] {html} {HTML} %D The following entities are used for internal purposes and %D concern characters that are kind of problematic in \TEX\ %D input. \defineXMLentities [tex-hash] {\letterhash} {\#} \defineXMLentities [tex-dollar] {\letterdollar} {\$} \defineXMLentities [tex-percent] {\letterpercent} {\%} \defineXMLentities [tex-backslash] {\letterbackslash} {\texescape} \defineXMLentities [tex-hat] {\letterhat} {\^{}} \defineXMLentities [tex-underscore] {\letterunderscore} {\_} \defineXMLentities [tex-leftbrace] {\letterleftbrace} {\leftargument} \defineXMLentities [tex-rightbrace] {\letterrightbrace} {\rightargument} \defineXMLentities [tex-bar] {\letterbar} {\vl} \defineXMLentities [tex-tilde] {\lettertilde} {\~{}} %D Some pretty printing macros will use color, for which we %D define a dedicated palet here. \definepalet [xtag] [0=darkgray, 1=darkred, 2=darkgreen, 3=darkblue, 4=darkcyan, 5=darkmagenta, 6=darkyellow, 7=black, 8=black] %D An example of its usage can be found in the pretty %D printing macros in the run time module. \newif\ifautoXMLshow \autoXMLshowtrue \newif\ifshowXMLarguments \showXMLargumentstrue \def\setupXMLfile{\dodoubleargument\getparameters[\??xf]} \setupXMLfile [\c!inbetween=\blank, \c!level=1] \fetchruntimecommand\showXMLfile {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLbuffer{\f!xtagprefix\s!run} \fetchruntimecommand\showXMLtext {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLign {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLnop {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLtxt {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLpar {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLlin {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLwrd {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLemp {\f!xtagprefix\s!run} \fetchruntimecommand\showXMLbreak {\f!xtagprefix\s!run} %D By default, we will ignore escape commands, preceded by %D \type {}. \defineXMLescape [\s!default] {\gobbleuntil{>}} %D The comment escape has the form: %D %D \starttyping %D %D \stoptyping \defineXMLescape [--] {\gobbleuntil{-->}} %D The \type {CDATA} escape is kind of unique in its %D strange syntax. %D %D \starttyping %D %D \stoptyping %D %D Watch this rather obscure definition (we need to pass an %D \type {[} to the macro. \chardef\XMLcdatamethod=1 \newtoks \everyXMLcdata % \appendtoks \tt \to \everyXMLcdata \setvalue{XMLcdatamethod1}% {\skipfirstverbatimlinefalse \processtaggeddisplayverbatim{]]>}} \setvalue{XMLcdatamethod2}% {\begingroup \obeylines \obeyspaces \the\everyXMLcdata \processXMLcdata} \long\def\processXMLcdata#1]]>% {#1\endgroup} \defineXMLescape [CDATA] {\executeifdefined{XMLcdatamethod\number\XMLcdatamethod}{\begingroup\processXMLcdata}} %D \starttyping %D %D %D \stoptyping \defineXMLescape [ATTLIST]{\gobbleuntil>} \defineXMLescape [ELEMENT]{\gobbleuntil>} %D \starttyping %D %D %D %D \stoptyping \defineXMLescape [ENTITY] \handleXMLentityescape \def\handleXMLentityescape#1>% {\dohandleXMLentityescape#1 @ @ @ @ @ @>} \def\dohandleXMLentityescape#1 #2 #3 #4> {\doifnot{#1}\letterpercent {\doifelse{#2}{SYSTEM} {\dohandleXMLentitySYSTEM#1 #2 #3 #4>} {\dohandleXMLentityDEFINE#1 #2 #3 #4>}}} \def\dohandleXMLentitySYSTEM#1 #2 #3 #4 #5 #6>% name SYSTEM .... {\doifelse{#4}{@} {\expanded{\defineXMLentity[#1]{\noexpand\readXMLsystem{\unstringed#3}}}} {\doif{#4}{NDATA} % maybe we should also store the NDATA {\expanded{\defineXMLentity[#1]{\noexpand\readXMLndata{\unstringed#3}}}}}} \def\readXMLsystem#1% {\readfile{#1} {\writestatus{xml-system}{reading #1}} {\writestatus{xml-system}{unable to locate #1}}} \def\readXMLndata#1% {#1} % {\externalfigure[#1]} \def\dohandleXMLentityDEFINE#1 %#2 #3 #4 #5 #6>% name replacement {\def\docommand##1>{\expanded{\defineXMLentity[#1]{\the\scratchtoks}}}% \afterassignment\docommand\grabstring} %D Such entities can be encapsulated in a \type {DOCTYPE} %D element. Therefore we remove the outer level of document %D type definitions. %D %D \starttyping %D %D %D %D %D %D %D %D %D %D \stoptyping \defineXMLescape [DOCTYPE] \handleXMLdoctype \def\handleXMLdoctype {\let\XMLdoctype\empty \dohandleXMLdoctype} \def\dohandleXMLdoctype {\futurelet\nexttoken\dohandleXMLdoctok} \def\dohandleXMLdoctok {\ifx\nexttoken>% % [doctype: \XMLdoctype] \@EA\gobbleuntil\@EA>% \else\ifx\nexttoken\blankspace % [doctype: \XMLdoctype] \@EAEAEA\dodohandleXMLdoctype \else \@EAEAEA\redoXMLdoctype \fi\fi} \def\redoXMLdoctype#1% {\edef\XMLdoctype{\XMLdoctype#1}\dohandleXMLdoctype} \def\dodohandleXMLdoctype#1% {\executeifdefined{XMLdoctype#1}{\gobbleuntil>}} \setvalue{XMLdoctype>}{} \setvalue{XMLdoctype[}{\processuntil{]>}} % or \gobbleuntil{]>}} \def\XMLdoctypeS YSTEM % {\dowithgrabbedstring\dodohandleXMLdoctype} \def\XMLdoctypeP UBLIC % {\dowithgrabbedstring{\dowithgrabbedstring\dodohandleXMLdoctype}} % wrong % % \def\XMLdoctypeS YSTEM {\XMLgrabstring} % \def\XMLdoctypeP UBLIC {\XMLgrabstring} % % \def\XMLgrabstring % {\doifnextcharelse>{\gobbleuntil>}{\dowithgrabbedstring\XMLgrabstring}} %D Some day we may need to support entities within a %D document type namespace. %D As an example of processing instructions, we implement a %D \CONTEXT\ code handler: \defineXMLprocessor [context] \contextXMLcommand \defineXMLprocessor [context-command] \contextXMLcommand % we need to get rid of the endlinechar inserted by \scantokens % % \def\saveendlinechar% % {\ifx\restoreendlinechar\undefined % \edef\restoreendlinechar{\endlinechar\the\endlinechar\space}% % \fi % \endlinechar=-1 } % % \def\scanXMLtokens#1% % {\saveendlinechar\scantokens{#1}\restoreendlinechar} %D For security reasons, we provide a switch to turn this %D mechanism on and off. When turned off, there is no way to %D turn it on from within an \XML\ encoded document, simply %D because the possibility to process \CONTEXT\ commands is %D gone. \setupXMLprocessing[\c!command=\v!yes] %\def\contextXMLcommand#1% % {\doif\@@xpcommando\v!ja % {\pushmacro\disableXML % \def\disableXML{\global\let\afterXMLprocessor\empty}% % \global\let\afterXMLprocessor\enableXML % \setnormalcatcodes\scantokens{#1}\afterXMLprocessor % \popmacro\disableXML}} \def\contextXMLcommand#1% we don't use #1 here {\doif\@@xpcommand\v!yes {\disableXML\scantokens\@EA{\currentXMLprocess}\enableXML}} %D The indirect method (using the macro \type %D {\currentXMLprocess} instead of \type {#}) is needed %D because of the \type {\scantokens}. Given the previous %D definition, and given that \ETEX\ is used, we can now %D say: %D %D \starttyping %D %D \stoptyping %D %D A non||\ETEX\ solution is also possible, using buffers, %D but for the moment we assume that \ETEX\ is used. %D Next we implement a general purpose directive. This one %D can be used to set variables that can be accessed with %D \type {\XMLvar}. \defineXMLprocessor [context-directive] \contextXMLdirective \def\contextXMLdirective#1% {\docontextXMLdirective#1 @ @ @\end} \def\docontextXMLdirective#1 #2 #3 #4\end % class variable value {\expandafter\def\csname\@@XMLvariable:#1:#2\endcsname{#3}} %D A simple processing instruction is the following. It just %D writes a message to the screen. \defineXMLprocessor [context-message] {\writestatus{xml-message}} %D The following processing instruction permits you to tag %D parts of the file in such a way that you can filter data. %D We use this method when documenting schemas. \defineXMLprocessor [context-block] \handleXMLcontextblock \def\handleXMLcontextblock#1% {\dohandleXMLcontextblock#1 \relax} \def\dohandleXMLcontextblock#1 #2 #3\relax {\dodohandleXMLcontextblock{#1}{#2}} \let\dodohandleXMLcontextblock\gobbletwoarguments \def\hideXMLcontextblock[#1]% {\def\dodohandleXMLcontextblock {\dododohandleXMLcontextblock\doifinset{#1}}} \def\videXMLcontextblock[#1]% {\def\dodohandleXMLcontextblock {\dododohandleXMLcontextblock\doifnotinset{#1}}} \protect \def\dododohandleXMLcontextblock#1#2#3#4% {\let\next\relax \doifelse{#3}{begin} {#1{#4}{#2} {%\writestatus{xml-block}{skipping begin #4}% \long\def\next##1?context-block end #4 ##2?>{}}} {\doif{#3}{name} {#1{#4}{#2} {%\writestatus{xml-block}{skipping name #4}% \long\def\next##1?context-block ##2?>{}}}}% \next} \unprotect %D Say that a file contains blocks like the following: %D %D \starttyping %D %D %D maybe so much %D %D %D \stoptyping %D %D The following commands will show only this block: %D %D \starttyping %D \videXMLcontextblock[whatevername] \showXMLfile{yourfile} %D \stoptyping %D %D You can also mark blocks in the following way, thereby %D saving yourself some work: %D %D \starttyping %D %D %D What do you want? %D %D %D %D How do you want? %D %D %D \stoptyping % yet undocumented and experimental % \defineXMLprocessor [context-eof] {\endinput} % already defined in xtag-ini % \defineXMLsingular [begingroup] {\begingroup} % \defineXMLsingular [endgroup] {\endgroup} % % \defineXMLsingular [gobblespacetokens] {\gobblespacetokens} %D We automatically switch regimes (beware of nested files!): %D %D \starttyping %D \startXMLdata %D %D ÀÁÂÃÄÅàáâãäåÆÇæç %D ÈÉÊËèéêëÌÍÎÏÞìíîïþ %D ÐðÑñÒÓÔÕÖòóôõöØø %D ÙÚÛÜùúûÝýÿß %D \stopXMLdata %D \stoptyping \defineXMLprocessor [xml] {\handleXMLbanner} \def\handleXMLbanner#1% {\getXMLarguments{xml}{\s!encoding='' #1}% \doifsomething{\XMLpar{xml}\s!encoding\empty} {\doif\currentregime\s!default % style regimes will take precedence {\enableregime[\XMLpar{xml}\s!encoding\empty]}\donothing}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-gen.mkii0000644000175000017500000001044014536300610024651 0ustar hillehille%D \module %D [ file=core-gen, %D version=1995.10.10, %D title=\CONTEXT\ Core Macros, %D subtitle=General, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / General} \unprotect %D \macros %D {assigndimension,assignalfadimension} %D %D Hieronder worden enkele commando's gedefinieerd rond %D toekenningen. Allereerst een commando om waarden aan %D een \DIMENSION\ toe te kennen: %D %D \starttyping %D \assigndimension %D {|klein|middel|groot|-klein|-middel|-groot|geen} %D {\dimension} %D {waarde klein} %D {waarde middel} %D {waarde groot} %D \stoptyping %D %D Hierbij krijgt de \DIMENSION\ \type{\dimension} een waarde %D afhankelijk van het meegegeven trefwoord. %D %D \startnarrower %D \startlines %D \type{(-)klein }\qquad (--) waarde klein %D \type{(-)middel}\qquad (--) waarde middel %D \type{(-)groot }\qquad (--) waarde groot %D \type{geen }\qquad 0pt %D \type{waarde }\qquad waarde %D \stoplines %D \stopnarrower %D %D Een trefwoord mag worden voorafgegaan door een \type{-}. %D Deze macro toont een voorbeeld van het gebruik van %D \type{\processaction} en constanten. %D %D Analoog aan het bovenstaande commando kennen we een %D commando om waarden toe te kennen aan een macro: %D %D \starttyping %D \assignalfadimension %D {|klein|middel|groot|geen} %D {\macro} %D {waarde klein} %D {waarde middel} %D {waarde groot} %D \stoptyping % The third (optimized) version: \def\@ad@{@ad@} \setvalue{\@ad@ \v!none }{\zeropoint\gobblethreearguments} \setvalue{\@ad@ \v!big }{\thirdofthreearguments} \setvalue{\@ad@ \v!medium}{\secondofthreearguments} \setvalue{\@ad@ \v!small }{\firstofthreearguments} \setvalue{\@ad@-\v!big }{-\thirdofthreearguments} \setvalue{\@ad@-\v!medium}{-\secondofthreearguments} \setvalue{\@ad@-\v!small }{-\firstofthreearguments} \def\assigndimension#1#2% #3 #4 #5 {#2=\ifcsname\@ad@#1\endcsname \csname\@ad@#1\expandafter\endcsname \else #1\expandafter\gobblethreearguments \fi} \def\@aa@{@aa@} \setvalue{\@aa@\v!none }{0\gobblethreearguments} \setvalue{\@aa@\v!big }{\thirdofthreearguments} \setvalue{\@aa@\v!medium}{\secondofthreearguments} \setvalue{\@aa@\v!small }{\firstofthreearguments} \def\assignalfadimension#1#2#3#4#5% #3#4#5 are single digits {\edef#2{\ifcsname\@aa@#1\endcsname \csname\@aa@#1\expandafter\endcsname \else #1\expandafter\gobblethreearguments \fi#3#4#5}} %D \macros %D {assignvalue} %D %D Een variant hierop is het commando: %D %D \starttyping %D \assignvalue %D {|klein|middel|groot} %D {\macro} %D {waarde klein } %D {waarde middel} %D {waarde groot} %D \stoptyping %D %D Hierbij krijgt \type{\macro} een waarde afhankelijk van %D het meegegeven trefwoord: %D %D \startnarrower %D \startlines %D \type{klein }\qquad waarde klein %D \type{middel}\qquad waarde middel %D \type{groot }\qquad waarde groot %D \type{waarde}\qquad waarde %D \stoplines %D \stopnarrower %D %D Hier doet \type{geen} dus niet mee. \def\@av@{@av@} \letvalue{\@av@\v!big }\thirdofthreearguments \letvalue{\@av@\v!medium}\secondofthreearguments \letvalue{\@av@\v!small }\firstofthreearguments \def\assignvalue#1#2#3#4#5% {\edef#2{\ifcsname\@av@#1\endcsname \csname\@av@#1\expandafter\endcsname \else #1\expandafter\gobblethreearguments \fi{#3}{#4}{#5}}} %D \macros %D {assignwidth} %D %D Een breedte van een opgegeven tekst kan worden berekend en %D toegekend aan een \DIMENSION\ met: %D %D \starttyping %D \assignwidth %D {\dimension} %D {|passend|ruim} %D {tekst} %D \stoptyping %D %D Dit commando sluit, evenals de bovenstaande %D \type{\assign}||commando's, aan op de wijze waarop %D in de andere \CONTEXT||modules toekenningen %D plaatsvinden. Bij \type{ruim} wordt de gemeten breedte %D met 1~em vermeerderd. \def\assignwidth#1#2#3#4% {\doifelsenothing{#2} {\setbox\scratchbox\hbox{#3}% #1\wd\scratchbox} {\doifinsetelse{#2}{\v!fit,\v!broad} {\setbox\scratchbox\hbox{#3}% #1\wd\scratchbox \doif{#2}\v!broad{\advance#1 #4}}% {#1=#2}}}% \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-8859-4.mkii0000644000175000017500000002655314536300610024670 0ustar hillehille%D \module %D [ file=regi-8859-4, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=iso-8859-4 (North European), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for iso-8859-4/Latin4 input encoding (regime) for West %D European languages, see also cp1257 and iso-8859-13. %D %D Usage: \type{\enableregime[8859-4]} (see \type {regi-syn} for %D alternatives calls). \startregime[8859-4] \defineactivetoken 128 {\unknownchar} % 0080 \defineactivetoken 129 {\unknownchar} % 0081 \defineactivetoken 130 {\unknownchar} % 0082 \defineactivetoken 131 {\unknownchar} % 0083 \defineactivetoken 132 {\unknownchar} % 0084 \defineactivetoken 133 {\unknownchar} % 0085 \defineactivetoken 134 {\unknownchar} % 0086 \defineactivetoken 135 {\unknownchar} % 0087 \defineactivetoken 136 {\unknownchar} % 0088 \defineactivetoken 137 {\unknownchar} % 0089 \defineactivetoken 138 {\unknownchar} % 008A \defineactivetoken 139 {\unknownchar} % 008B \defineactivetoken 140 {\unknownchar} % 008C \defineactivetoken 141 {\unknownchar} % 008D \defineactivetoken 142 {\unknownchar} % 008E \defineactivetoken 143 {\unknownchar} % 008F \defineactivetoken 144 {\unknownchar} % 0090 \defineactivetoken 145 {\unknownchar} % 0091 \defineactivetoken 146 {\unknownchar} % 0092 \defineactivetoken 147 {\unknownchar} % 0093 \defineactivetoken 148 {\unknownchar} % 0094 \defineactivetoken 149 {\unknownchar} % 0095 \defineactivetoken 150 {\unknownchar} % 0096 \defineactivetoken 151 {\unknownchar} % 0097 \defineactivetoken 152 {\unknownchar} % 0098 \defineactivetoken 153 {\unknownchar} % 0099 \defineactivetoken 154 {\unknownchar} % 009A \defineactivetoken 155 {\unknownchar} % 009B \defineactivetoken 156 {\unknownchar} % 009C \defineactivetoken 157 {\unknownchar} % 009D \defineactivetoken 158 {\unknownchar} % 009E \defineactivetoken 159 {\unknownchar} % 009F \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK \defineactivetoken 162 {\kkra} % 0138 LATIN SMALL LETTER KRA \defineactivetoken 163 {\Rcommaaccent} % 0156 LATIN CAPITAL LETTER R WITH CEDILLA \defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN \defineactivetoken 165 {\Itilde} % 0128 LATIN CAPITAL LETTER I WITH TILDE \defineactivetoken 166 {\Lcommaaccent} % 013B LATIN CAPITAL LETTER L WITH CEDILLA \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS \defineactivetoken 169 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON \defineactivetoken 170 {\Emacron} % 0112 LATIN CAPITAL LETTER E WITH MACRON \defineactivetoken 171 {\Gcommaaccent} % 0122 LATIN CAPITAL LETTER G WITH CEDILLA \defineactivetoken 172 {\Tstroke} % 0166 LATIN CAPITAL LETTER T WITH STROKE \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON \defineactivetoken 175 {\textmacron} % 00AF MACRON \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK \defineactivetoken 178 {\textogonek} % 02DB OGONEK \defineactivetoken 179 {\rcommaaccent} % 0157 LATIN SMALL LETTER R WITH CEDILLA \defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT \defineactivetoken 181 {\itilde} % 0129 LATIN SMALL LETTER I WITH TILDE \defineactivetoken 182 {\lcommaaccent} % 013C LATIN SMALL LETTER L WITH CEDILLA \defineactivetoken 183 {\textcaron} % 02C7 CARON \defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA \defineactivetoken 185 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON \defineactivetoken 186 {\emacron} % 0113 LATIN SMALL LETTER E WITH MACRON \defineactivetoken 187 {\gcommaaccent} % 0123 LATIN SMALL LETTER G WITH CEDILLA \defineactivetoken 188 {\tstroke} % 0167 LATIN SMALL LETTER T WITH STROKE \defineactivetoken 189 {\Neng} % 014A LATIN CAPITAL LETTER ENG \defineactivetoken 190 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON \defineactivetoken 191 {\neng} % 014B LATIN SMALL LETTER ENG \defineactivetoken 192 {\Amacron} % 0100 LATIN CAPITAL LETTER A WITH MACRON \defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE \defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX \defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE \defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS \defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE \defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE \defineactivetoken 199 {\Iogonek} % 012E LATIN CAPITAL LETTER I WITH OGONEK \defineactivetoken 200 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON \defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE \defineactivetoken 202 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK \defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS \defineactivetoken 204 {\Edotaccent} % 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE \defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE \defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX \defineactivetoken 207 {\Imacron} % 012A LATIN CAPITAL LETTER I WITH MACRON \defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE \defineactivetoken 209 {\Ncommaaccent} % 0145 LATIN CAPITAL LETTER N WITH CEDILLA \defineactivetoken 210 {\Omacron} % 014C LATIN CAPITAL LETTER O WITH MACRON \defineactivetoken 211 {\Kcommaaccent} % 0136 LATIN CAPITAL LETTER K WITH CEDILLA \defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX \defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE \defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS \defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN \defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE \defineactivetoken 217 {\Uogonek} % 0172 LATIN CAPITAL LETTER U WITH OGONEK \defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE \defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX \defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS \defineactivetoken 221 {\Utilde} % 0168 LATIN CAPITAL LETTER U WITH TILDE \defineactivetoken 222 {\Umacron} % 016A LATIN CAPITAL LETTER U WITH MACRON \defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S \defineactivetoken 224 {\amacron} % 0101 LATIN SMALL LETTER A WITH MACRON \defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE \defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX \defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE \defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS \defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE \defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE \defineactivetoken 231 {\iogonek} % 012F LATIN SMALL LETTER I WITH OGONEK \defineactivetoken 232 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON \defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE \defineactivetoken 234 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK \defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS \defineactivetoken 236 {\edotaccent} % 0117 LATIN SMALL LETTER E WITH DOT ABOVE \defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE \defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX \defineactivetoken 239 {\imacron} % 012B LATIN SMALL LETTER I WITH MACRON \defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE \defineactivetoken 241 {\ncommaaccent} % 0146 LATIN SMALL LETTER N WITH CEDILLA \defineactivetoken 242 {\omacron} % 014D LATIN SMALL LETTER O WITH MACRON \defineactivetoken 243 {\kcommaaccent} % 0137 LATIN SMALL LETTER K WITH CEDILLA \defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX \defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE \defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS \defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN \defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE \defineactivetoken 249 {\uogonek} % 0173 LATIN SMALL LETTER U WITH OGONEK \defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE \defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX \defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS \defineactivetoken 253 {\utilde} % 0169 LATIN SMALL LETTER U WITH TILDE \defineactivetoken 254 {\umacron} % 016B LATIN SMALL LETTER U WITH MACRON \defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/verb-tex.mkii0000644000175000017500000002107314536300610024712 0ustar hillehille%D \module %D [ file=verb-tex, %D version=1997.12.22, %D title=\CONTEXT\ Verbatim Macros, %D subtitle=Pretty \TEX\ verbatim, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Verbatim Macros / Pretty TEX Verbatim} %D The original module \type{supp-ver} had the \TEX\ %D interpreter built in. The current implementation is more %D natural and less complicated. %D \startTEX %D \definetyping[niceTEX][option=TEX,paletpalet=graypretty] %D %D \startniceTEX %D \message{A vivid look at TeX} %D \stopniceTEX %D \stopTEX \unprotect %D \macros %D {ifsplitTEXparameters} %D %D The mechanism described here, is meant to be used with %D color. It is nevertheless possible to use different fonts %D instead of distinctive colors. When using color, it's better %D to end parameter mode after the \type{#}. When on the %D other hand we use a slanted typeface for the hashmark, then %D a slanted number looks better. \doglobal\newif\ifsplitTEXparameters \global\splitTEXparameterstrue %D \macros %D {ifsplitTEXcontrols} %D %D With \type{\splittexcontrols} we can influence the way %D control characters are processed in macro names. By default, %D the \type{^^} part is uncolored. When this boolean is set to %D false, they get the same color as the other characters. \doglobal\newif\ifsplitTEXcontrols \global\splitTEXcontrolstrue %D The next boolean is used for internal purposes only and %D keeps track of the length of the name. Because two||character %D sequences starting with a backslash are always seen as a %D command. \doglobal\newif\iffirstinTEXcommand %D We use a maximum of four colors because more colors will %D distract too much. In the following table we show the %D logical names of the colors, their color and \cap{RGB} values. %D %D \placetable{geen} %D \starttable[|l|l|c|c|c|c|] %D \HL %D \FC\bf identifier \MC\bf color \MC\bf r \MC\bf g \MC\bf b \MC\bf bw \LC\SR %D \HL %D \FC prettyone \MC red \MC 0.9 \MC 0.0 \MC 0.0 \MC 0.30 \LC\FR %D \FC prettytwo \MC green \MC 0.0 \MC 0.8 \MC 0.0 \MC 0.45 \LC\MR %D \FC prettythree \MC yellow \MC 0.0 \MC 0.0 \MC 0.9 \MC 0.60 \LC\MR %D \FC prettyfour \MC blue \MC 0.8 \MC 0.8 \MC 0.6 \MC 0.75 \LC\LR %D \HL %D \stoptable %D %D Outside \CONTEXT\ these colors are defined in %D \type{verb-ini}, in \CONTEXT\ their definitions can be found %D in \type{core-ver}, where in fact we use the color palet %D mechanism. That way we can use different schemes i a quite %D natural way. \gdef\setupprettyTEXtype {\def\prettyidentifier{TEX}% \global\inTEXcommandfalse \global\firstinTEXcommandfalse \global\inTEXparameterfalse \TEXsetcontrols \TEXsethandlers \TEXsetspecials} \gdef\TEXsetcontrols {\saveprettycontrols \everyprettyend {\TEXendofcommand \TEXendofparameter}% \def\obeyedspace {\TEXendofcommand \TEXendofparameter \oldobeyedspace}% \def\flushrestofverbatimline {\TEXendofcommand \TEXendofparameter}% \let\obeytabs=\ignoretabs} \gdef\TEXsetspecials {\setpretty`\$=1 \setpretty`\{=1 \setpretty`\}=1 \setpretty`\[=2 \setpretty`\]=2 \setpretty`\(=2 \setpretty`\)=2 \setpretty`\==2 \setpretty`\<=2 \setpretty`\>=2 \setpretty`\"=2 \setpretty`\-=3 \setpretty`\+=3 \setpretty`\/=3 \setpretty`\|=3 \setpretty`\%=3 \setpretty`\'=3 \setpretty`\`=3 \setpretty`\_=3 \setpretty`\&=3 \setpretty`\~=3 \setpretty`\.=4 \setpretty`\,=4 \setpretty`\:=4 \setpretty`\;=4 \setpretty`\*=4 \setpretty`\#=5 \setpretty`\1=6 \setpretty`\2=6 \setpretty`\3=6 \setpretty`\4=6 \setpretty`\5=6 \setpretty`\6=6 \setpretty`\7=6 \setpretty`\8=6 \setpretty`\9=6 \setpretty`\0=6 \setpretty`\\=7 \setpretty`\^=8 \setpretty`\A=9 \setpretty`\B=9 \setpretty`\C=9 \setpretty`\D=9 \setpretty`\E=9 \setpretty`\F=9 \setpretty`\G=9 \setpretty`\H=9 \setpretty`\I=9 \setpretty`\J=9 \setpretty`\K=9 \setpretty`\L=9 \setpretty`\M=9 \setpretty`\N=9 \setpretty`\O=9 \setpretty`\P=9 \setpretty`\Q=9 \setpretty`\R=9 \setpretty`\S=9 \setpretty`\T=9 \setpretty`\U=9 \setpretty`\V=9 \setpretty`\W=9 \setpretty`\X=9 \setpretty`\Y=9 \setpretty`\Z=9 \setpretty`\a=9 \setpretty`\b=9 \setpretty`\c=9 \setpretty`\d=9 \setpretty`\e=9 \setpretty`\f=9 \setpretty`\g=9 \setpretty`\h=9 \setpretty`\i=9 \setpretty`\j=9 \setpretty`\k=9 \setpretty`\l=9 \setpretty`\m=9 \setpretty`\n=9 \setpretty`\o=9 \setpretty`\p=9 \setpretty`\q=9 \setpretty`\r=9 \setpretty`\s=9 \setpretty`\t=9 \setpretty`\u=9 \setpretty`\v=9 \setpretty`\w=9 \setpretty`\x=9 \setpretty`\y=9 \setpretty`\z=9 \setpretty`\?=9 \setpretty`\!=9 \setpretty`\@=9 \setpretty`\%=0 } \gdef\TEXsethandlers {\installprettyhandler 1 \TEXtypeone \installprettyhandler 2 \TEXtypetwo \installprettyhandler 3 \TEXtypethree \installprettyhandler 4 \TEXtypefour \installprettyhandler 5 \TEXtypefive \installprettyhandler 6 \TEXtypesix \installprettyhandler 7 \TEXtypeseven \installprettyhandler 8 \TEXtypeeight \installprettyhandler 9 \TEXtypenine \installprettyhandler 0 \TEXtypezero} \doglobal\newif\ifinTEXcommand \doglobal\newif\ifinTEXparameter \gdef\TEXbeginofcommand {\TEXendofparameter \ifinTEXcommand \else \global\inTEXcommandtrue \global\firstinTEXcommandtrue \beginofpretty[\!!prettytwo]% \fi} \gdef\TEXendofcommand {\ifinTEXcommand \endofpretty \global\inTEXcommandfalse \global\firstinTEXcommandfalse \fi} \gdef\TEXbeginofparameter {\TEXendofcommand \ifinTEXparameter \else \global\inTEXparametertrue \beginofpretty[\!!prettythree]% \fi} \gdef\TEXendofparameter {\ifinTEXparameter \endofpretty \global\inTEXparameterfalse \fi} \gdef\ifnotfirstinTEXcommand#1 {\iffirstinTEXcommand \getpretty{#1}% \TEXendofcommand \else} \gdef\TEXtypeone#1% {\ifnotfirstinTEXcommand#1 \TEXendofcommand \TEXendofparameter \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty \fi} \gdef\TEXtypetwo#1% {\ifnotfirstinTEXcommand#1 \TEXendofcommand \TEXendofparameter \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty \fi} \gdef\TEXtypethree#1% {\ifnotfirstinTEXcommand#1 \TEXendofcommand \TEXendofparameter \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \fi} \gdef\TEXtypefour#1% {\ifnotfirstinTEXcommand#1 \TEXendofcommand \TEXendofparameter \getpretty{#1}% \fi} \gdef\TEXtypefive#1% {\ifnotfirstinTEXcommand#1 \TEXbeginofparameter \getpretty{#1}% \fi} \gdef\TEXtypesix#1% {\ifnotfirstinTEXcommand#1 \ifinTEXparameter \ifsplitTEXparameters \TEXendofparameter \getpretty{#1}% \else \getpretty{#1}% \TEXendofparameter \fi \else \TEXendofcommand \getpretty{#1}% \fi \fi} \gdef\TEXtypeseven#1% {\ifnotfirstinTEXcommand#1 \TEXbeginofcommand \getpretty{#1}% \fi} \gdef\TEXtypeeightA#1#2% {\getprettydata{#2}% \ifnum\prettytype=80 \TEXendofparameter \ifsplitTEXcontrols \ifinTEXcommand \def\next{\TEXendofcommand\getpretty{#1}\getpretty{#1}\TEXbeginofcommand}% \else \def\next{\getpretty{#1}\getpretty{#1}}% \fi \else \def\next{\getpretty{#1}\getpretty{#1}}% \fi \else \def\next{\TEXtypeeightB{#1}#2}% \fi \next} \gdef\TEXtypeeightB {\TEXendofparameter \ifinTEXcommand \firstinTEXcommandfalse \expandafter\getpretty \else \expandafter\TEXtypethree \fi} \gdef\TEXtypeeight {\handlenextnextpretty\TEXtypeeightA\TEXtypeeightB} \gdef\TEXtypenine {\TEXendofparameter \global\firstinTEXcommandfalse \getpretty} %\gdef\TEXtypezero % {\disableprettyafterwards % only when enabled of course % \ifnewpretty\expandafter\handlenewpretty\fi\TEXtypethree} \long\gdef\naturalTEXtext#1#2\relax% local alternative for \naturaltextext {\convertargument#2\to\ascii \doifinstringelse{\letterpercent}{\ascii} {\long\def\next{\TEXtypethree{#1}#2\relax}} %{\long\def\next{\bgroup\prettynaturalfont\restorecatcodes\scantokens{\ignorespaces#2}\egroup}}% {\long\def\next{\bgroup\prettynaturalfont{\restorecatcodes\scantokens{\ignorespaces#2}}\egroup}}% \next} \gdef\TEXtypezero {\ifnaturaltextext \expandafter\naturalTEXtext \else \disableprettyafterwards % only when enabled of course \expandafter\handlenewpretty\expandafter\TEXtypethree \fi} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xetx-cls.mkii0000644000175000017500000007443614536300610024740 0ustar hillehille% filename : xetx-cls.mkii % comment : generated by mtxrun --script chars --xtx % author : Hans Hagen, PRAGMA-ADE, Hasselt NL % copyright: PRAGMA ADE / ConTeXt Development Team % license : see context related readme files % some character classes for xetex; seems to be rather hard coded, these numbers % and also a mix of several classes; here we do linebreaks \defineXTXcharinjectionclass[lb:id] \defineXTXcharinjectionclass[lb:cl] \defineXTXcharinjectionclass[lb:cm] \defineXTXcharinjectionclass[lb:is] \defineXTXcharinjectionclass[lb:ex] \defineXTXcharinjectionclass[lb:op] \defineXTXcharinjectionclass[lb:ns] \dofastrecurse{"00000}{"00008}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0000E}{"0001F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00021}{lb:ex} \dosetXTXcharacterclass{"00028}{lb:op} \dosetXTXcharacterclass{"0002C}{lb:is} \dosetXTXcharacterclass{"0002E}{lb:is} \dofastrecurse{"0003A}{"0003B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:is}} \dosetXTXcharacterclass{"0003F}{lb:ex} \dosetXTXcharacterclass{"0005B}{lb:op} \dosetXTXcharacterclass{"0007B}{lb:op} \dosetXTXcharacterclass{"0007D}{lb:cl} \dofastrecurse{"0007F}{"00084}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00086}{"0009F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"000A1}{lb:op} \dosetXTXcharacterclass{"000BF}{lb:op} \dofastrecurse{"00300}{"0034E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00350}{"0035B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00363}{"0036F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"0037E}{lb:is} \dofastrecurse{"00483}{"00489}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00589}{lb:is} \dofastrecurse{"00591}{"005BD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"005BF}{lb:cm} \dofastrecurse{"005C1}{"005C2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"005C4}{"005C5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"005C6}{lb:ex} \dosetXTXcharacterclass{"005C7}{lb:cm} \dofastrecurse{"0060C}{"0060D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:is}} \dofastrecurse{"00610}{"0061A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"0061B}{lb:ex} \dosetXTXcharacterclass{"0061C}{lb:cm} \dofastrecurse{"0061E}{"0061F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dofastrecurse{"0064B}{"0065F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00670}{lb:cm} \dosetXTXcharacterclass{"006D4}{lb:ex} \dofastrecurse{"006D6}{"006DC}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"006DF}{"006E4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"006E7}{"006E8}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"006EA}{"006ED}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00711}{lb:cm} \dofastrecurse{"00730}{"0074A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"007A6}{"007B0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"007EB}{"007F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"007F8}{lb:is} \dosetXTXcharacterclass{"007F9}{lb:ex} \dofastrecurse{"00816}{"00819}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0081B}{"00823}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00825}{"00827}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00829}{"0082D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00859}{"0085B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"008E3}{"00903}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0093A}{"0093C}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0093E}{"0094F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00951}{"00957}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00962}{"00963}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00981}{"00983}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"009BC}{lb:cm} \dofastrecurse{"009BE}{"009CD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"009D7}{lb:cm} \dofastrecurse{"009E2}{"009E3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00A01}{"00A03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00A3C}{"00A51}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00A70}{"00A71}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00A75}{"00A83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00ABC}{lb:cm} \dofastrecurse{"00ABE}{"00ACD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00AE2}{"00AE3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00B01}{"00B03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00B3C}{lb:cm} \dofastrecurse{"00B3E}{"00B57}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00B62}{"00B63}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00B82}{lb:cm} \dofastrecurse{"00BBE}{"00BCD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00BD7}{lb:cm} \dofastrecurse{"00C00}{"00C03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00C3E}{"00C56}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00C62}{"00C63}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00C81}{"00C83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00CBC}{lb:cm} \dofastrecurse{"00CBE}{"00CD6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00CE2}{"00CE3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00D01}{"00D03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00D3E}{"00D4D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00D57}{lb:cm} \dofastrecurse{"00D62}{"00D63}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00D82}{"00D83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00DCA}{"00DDF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00DF2}{"00DF3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00F0D}{"00F11}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dosetXTXcharacterclass{"00F14}{lb:ex} \dofastrecurse{"00F18}{"00F19}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00F35}{lb:cm} \dosetXTXcharacterclass{"00F37}{lb:cm} \dosetXTXcharacterclass{"00F39}{lb:cm} \dosetXTXcharacterclass{"00F3A}{lb:op} \dosetXTXcharacterclass{"00F3B}{lb:cl} \dosetXTXcharacterclass{"00F3C}{lb:op} \dosetXTXcharacterclass{"00F3D}{lb:cl} \dofastrecurse{"00F3E}{"00F3F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00F71}{"00F7E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00F80}{"00F84}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00F86}{"00F87}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"00F8D}{"00FBC}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"00FC6}{lb:cm} \dofastrecurse{"0135D}{"0135F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"0169B}{lb:op} \dosetXTXcharacterclass{"0169C}{lb:cl} \dofastrecurse{"01712}{"01714}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01732}{"01734}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01752}{"01753}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01772}{"01773}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"017D6}{lb:ns} \dofastrecurse{"01802}{"01803}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dofastrecurse{"01808}{"01809}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dofastrecurse{"0180B}{"0180D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"018A9}{lb:cm} \dofastrecurse{"01920}{"0193B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01944}{"01945}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dofastrecurse{"01A17}{"01A1B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"01A7F}{lb:cm} \dofastrecurse{"01AB0}{"01B04}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01B34}{"01B44}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01B6B}{"01B73}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01B80}{"01B82}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01BA1}{"01BAD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01BE6}{"01BF3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01C24}{"01C37}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01CD0}{"01CD2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01CD4}{"01CE8}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"01CED}{lb:cm} \dofastrecurse{"01CF2}{"01CF4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01CF8}{"01CF9}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"01DC0}{"01DFF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0200C}{"0200F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"0201A}{lb:op} \dosetXTXcharacterclass{"0201E}{lb:op} \dofastrecurse{"0202A}{"0202E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0203C}{"0203D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dosetXTXcharacterclass{"02044}{lb:is} \dosetXTXcharacterclass{"02045}{lb:op} \dosetXTXcharacterclass{"02046}{lb:cl} \dofastrecurse{"02047}{"02049}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dofastrecurse{"02066}{"0206F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"0207D}{lb:op} \dosetXTXcharacterclass{"0207E}{lb:cl} \dosetXTXcharacterclass{"0208D}{lb:op} \dosetXTXcharacterclass{"0208E}{lb:cl} \dofastrecurse{"020D0}{"020F0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"02308}{lb:op} \dosetXTXcharacterclass{"02309}{lb:cl} \dosetXTXcharacterclass{"0230A}{lb:op} \dosetXTXcharacterclass{"0230B}{lb:cl} \dofastrecurse{"0231A}{"0231B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"02329}{lb:op} \dosetXTXcharacterclass{"0232A}{lb:cl} \dofastrecurse{"023F0}{"023F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"02600}{"02603}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"02614}{"02615}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"02618}{lb:id} \dofastrecurse{"0261A}{"0261F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"02639}{"0263B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"02668}{lb:id} \dosetXTXcharacterclass{"0267F}{lb:id} \dofastrecurse{"026BD}{"026C8}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"026CD}{lb:id} \dofastrecurse{"026CF}{"026D1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"026D3}{"026D4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"026D8}{"026D9}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"026DC}{lb:id} \dofastrecurse{"026DF}{"026E1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"026EA}{lb:id} \dofastrecurse{"026F1}{"026F5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"026F7}{"026FA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"026FD}{"02704}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"02708}{"0270D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"02762}{"02763}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dosetXTXcharacterclass{"02768}{lb:op} \dosetXTXcharacterclass{"02769}{lb:cl} \dosetXTXcharacterclass{"0276A}{lb:op} \dosetXTXcharacterclass{"0276B}{lb:cl} \dosetXTXcharacterclass{"0276C}{lb:op} \dosetXTXcharacterclass{"0276D}{lb:cl} \dosetXTXcharacterclass{"0276E}{lb:op} \dosetXTXcharacterclass{"0276F}{lb:cl} \dosetXTXcharacterclass{"02770}{lb:op} \dosetXTXcharacterclass{"02771}{lb:cl} \dosetXTXcharacterclass{"02772}{lb:op} \dosetXTXcharacterclass{"02773}{lb:cl} \dosetXTXcharacterclass{"02774}{lb:op} \dosetXTXcharacterclass{"02775}{lb:cl} \dosetXTXcharacterclass{"027C5}{lb:op} \dosetXTXcharacterclass{"027C6}{lb:cl} \dosetXTXcharacterclass{"027E6}{lb:op} \dosetXTXcharacterclass{"027E7}{lb:cl} \dosetXTXcharacterclass{"027E8}{lb:op} \dosetXTXcharacterclass{"027E9}{lb:cl} \dosetXTXcharacterclass{"027EA}{lb:op} \dosetXTXcharacterclass{"027EB}{lb:cl} \dosetXTXcharacterclass{"027EC}{lb:op} \dosetXTXcharacterclass{"027ED}{lb:cl} \dosetXTXcharacterclass{"027EE}{lb:op} \dosetXTXcharacterclass{"027EF}{lb:cl} \dosetXTXcharacterclass{"02983}{lb:op} \dosetXTXcharacterclass{"02984}{lb:cl} \dosetXTXcharacterclass{"02985}{lb:op} \dosetXTXcharacterclass{"02986}{lb:cl} \dosetXTXcharacterclass{"02987}{lb:op} \dosetXTXcharacterclass{"02988}{lb:cl} \dosetXTXcharacterclass{"02989}{lb:op} \dosetXTXcharacterclass{"0298A}{lb:cl} \dosetXTXcharacterclass{"0298B}{lb:op} \dosetXTXcharacterclass{"0298C}{lb:cl} \dosetXTXcharacterclass{"0298D}{lb:op} \dosetXTXcharacterclass{"0298E}{lb:cl} \dosetXTXcharacterclass{"0298F}{lb:op} \dosetXTXcharacterclass{"02990}{lb:cl} \dosetXTXcharacterclass{"02991}{lb:op} \dosetXTXcharacterclass{"02992}{lb:cl} \dosetXTXcharacterclass{"02993}{lb:op} \dosetXTXcharacterclass{"02994}{lb:cl} \dosetXTXcharacterclass{"02995}{lb:op} \dosetXTXcharacterclass{"02996}{lb:cl} \dosetXTXcharacterclass{"02997}{lb:op} \dosetXTXcharacterclass{"02998}{lb:cl} \dosetXTXcharacterclass{"029D8}{lb:op} \dosetXTXcharacterclass{"029D9}{lb:cl} \dosetXTXcharacterclass{"029DA}{lb:op} \dosetXTXcharacterclass{"029DB}{lb:cl} \dosetXTXcharacterclass{"029FC}{lb:op} \dosetXTXcharacterclass{"029FD}{lb:cl} \dofastrecurse{"02CEF}{"02CF1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"02CF9}{lb:ex} \dosetXTXcharacterclass{"02CFE}{lb:ex} \dosetXTXcharacterclass{"02D7F}{lb:cm} \dofastrecurse{"02DE0}{"02DFF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"02E18}{lb:op} \dosetXTXcharacterclass{"02E22}{lb:op} \dosetXTXcharacterclass{"02E23}{lb:cl} \dosetXTXcharacterclass{"02E24}{lb:op} \dosetXTXcharacterclass{"02E25}{lb:cl} \dosetXTXcharacterclass{"02E26}{lb:op} \dosetXTXcharacterclass{"02E27}{lb:cl} \dosetXTXcharacterclass{"02E28}{lb:op} \dosetXTXcharacterclass{"02E29}{lb:cl} \dosetXTXcharacterclass{"02E2E}{lb:ex} \dosetXTXcharacterclass{"02E42}{lb:op} \dofastrecurse{"02E80}{"02FFB}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"03001}{"03002}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}} \dofastrecurse{"03003}{"03004}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"03005}{lb:ns} \dofastrecurse{"03006}{"03007}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"03008}{lb:op} \dosetXTXcharacterclass{"03009}{lb:cl} \dosetXTXcharacterclass{"0300A}{lb:op} \dosetXTXcharacterclass{"0300B}{lb:cl} \dosetXTXcharacterclass{"0300C}{lb:op} \dosetXTXcharacterclass{"0300D}{lb:cl} \dosetXTXcharacterclass{"0300E}{lb:op} \dosetXTXcharacterclass{"0300F}{lb:cl} \dosetXTXcharacterclass{"03010}{lb:op} \dosetXTXcharacterclass{"03011}{lb:cl} \dofastrecurse{"03012}{"03013}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"03014}{lb:op} \dosetXTXcharacterclass{"03015}{lb:cl} \dosetXTXcharacterclass{"03016}{lb:op} \dosetXTXcharacterclass{"03017}{lb:cl} \dosetXTXcharacterclass{"03018}{lb:op} \dosetXTXcharacterclass{"03019}{lb:cl} \dosetXTXcharacterclass{"0301A}{lb:op} \dosetXTXcharacterclass{"0301B}{lb:cl} \dosetXTXcharacterclass{"0301C}{lb:ns} \dosetXTXcharacterclass{"0301D}{lb:op} \dofastrecurse{"0301E}{"0301F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}} \dofastrecurse{"03020}{"03029}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"0302A}{"0302F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"03030}{"03034}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"03035}{lb:cm} \dofastrecurse{"03036}{"0303A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"0303B}{"0303C}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dofastrecurse{"0303D}{"0303F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"03042}{lb:id} \dosetXTXcharacterclass{"03044}{lb:id} \dosetXTXcharacterclass{"03046}{lb:id} \dosetXTXcharacterclass{"03048}{lb:id} \dofastrecurse{"0304A}{"03062}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"03064}{"03082}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"03084}{lb:id} \dosetXTXcharacterclass{"03086}{lb:id} \dofastrecurse{"03088}{"0308D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"0308F}{"03094}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"03099}{"0309A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0309B}{"0309E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dosetXTXcharacterclass{"0309F}{lb:id} \dosetXTXcharacterclass{"030A0}{lb:ns} \dosetXTXcharacterclass{"030A2}{lb:id} \dosetXTXcharacterclass{"030A4}{lb:id} \dosetXTXcharacterclass{"030A6}{lb:id} \dosetXTXcharacterclass{"030A8}{lb:id} \dofastrecurse{"030AA}{"030C2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"030C4}{"030E2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"030E4}{lb:id} \dosetXTXcharacterclass{"030E6}{lb:id} \dofastrecurse{"030E8}{"030ED}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"030EF}{"030F4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"030F7}{"030FA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"030FB}{lb:ns} \dofastrecurse{"030FD}{"030FE}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dofastrecurse{"030FF}{"031E3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"03200}{"03247}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"03250}{"033FF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"0A000}{"0A014}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0A015}{lb:ns} \dofastrecurse{"0A016}{"0A4C6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0A60E}{lb:ex} \dofastrecurse{"0A66F}{"0A672}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A674}{"0A67D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A69E}{"0A69F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A6F0}{"0A6F1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"0A802}{lb:cm} \dosetXTXcharacterclass{"0A806}{lb:cm} \dosetXTXcharacterclass{"0A80B}{lb:cm} \dofastrecurse{"0A823}{"0A827}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A876}{"0A877}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dofastrecurse{"0A880}{"0A881}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A8B4}{"0A8C4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A8E0}{"0A8F1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A926}{"0A92D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A947}{"0A953}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A980}{"0A983}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0A9B3}{"0A9C0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0AA29}{"0AA36}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"0AA43}{lb:cm} \dofastrecurse{"0AA4C}{"0AA4D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0AAEB}{"0AAEF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0AAF5}{"0AAF6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0ABE3}{"0ABEA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0ABEC}{"0ABED}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0F900}{"0FAD9}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FB1E}{lb:cm} \dosetXTXcharacterclass{"0FD3E}{lb:cl} \dosetXTXcharacterclass{"0FD3F}{lb:op} \dofastrecurse{"0FE00}{"0FE0F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"0FE10}{lb:is} \dofastrecurse{"0FE11}{"0FE12}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}} \dofastrecurse{"0FE13}{"0FE14}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:is}} \dofastrecurse{"0FE15}{"0FE16}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dosetXTXcharacterclass{"0FE17}{lb:op} \dosetXTXcharacterclass{"0FE18}{lb:cl} \dofastrecurse{"0FE20}{"0FE2F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"0FE30}{"0FE34}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FE35}{lb:op} \dosetXTXcharacterclass{"0FE36}{lb:cl} \dosetXTXcharacterclass{"0FE37}{lb:op} \dosetXTXcharacterclass{"0FE38}{lb:cl} \dosetXTXcharacterclass{"0FE39}{lb:op} \dosetXTXcharacterclass{"0FE3A}{lb:cl} \dosetXTXcharacterclass{"0FE3B}{lb:op} \dosetXTXcharacterclass{"0FE3C}{lb:cl} \dosetXTXcharacterclass{"0FE3D}{lb:op} \dosetXTXcharacterclass{"0FE3E}{lb:cl} \dosetXTXcharacterclass{"0FE3F}{lb:op} \dosetXTXcharacterclass{"0FE40}{lb:cl} \dosetXTXcharacterclass{"0FE41}{lb:op} \dosetXTXcharacterclass{"0FE42}{lb:cl} \dosetXTXcharacterclass{"0FE43}{lb:op} \dosetXTXcharacterclass{"0FE44}{lb:cl} \dofastrecurse{"0FE45}{"0FE46}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FE47}{lb:op} \dosetXTXcharacterclass{"0FE48}{lb:cl} \dofastrecurse{"0FE49}{"0FE4F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FE50}{lb:cl} \dosetXTXcharacterclass{"0FE51}{lb:id} \dosetXTXcharacterclass{"0FE52}{lb:cl} \dofastrecurse{"0FE54}{"0FE55}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dofastrecurse{"0FE56}{"0FE57}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dosetXTXcharacterclass{"0FE58}{lb:id} \dosetXTXcharacterclass{"0FE59}{lb:op} \dosetXTXcharacterclass{"0FE5A}{lb:cl} \dosetXTXcharacterclass{"0FE5B}{lb:op} \dosetXTXcharacterclass{"0FE5C}{lb:cl} \dosetXTXcharacterclass{"0FE5D}{lb:op} \dosetXTXcharacterclass{"0FE5E}{lb:cl} \dofastrecurse{"0FE5F}{"0FE68}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FE6B}{lb:id} \dosetXTXcharacterclass{"0FF01}{lb:ex} \dofastrecurse{"0FF02}{"0FF03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"0FF06}{"0FF07}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FF08}{lb:op} \dosetXTXcharacterclass{"0FF09}{lb:cl} \dofastrecurse{"0FF0A}{"0FF0B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FF0C}{lb:cl} \dosetXTXcharacterclass{"0FF0D}{lb:id} \dosetXTXcharacterclass{"0FF0E}{lb:cl} \dofastrecurse{"0FF0F}{"0FF19}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"0FF1A}{"0FF1B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dofastrecurse{"0FF1C}{"0FF1E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FF1F}{lb:ex} \dofastrecurse{"0FF20}{"0FF3A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FF3B}{lb:op} \dosetXTXcharacterclass{"0FF3C}{lb:id} \dosetXTXcharacterclass{"0FF3D}{lb:cl} \dofastrecurse{"0FF3E}{"0FF5A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"0FF5B}{lb:op} \dosetXTXcharacterclass{"0FF5C}{lb:id} \dosetXTXcharacterclass{"0FF5D}{lb:cl} \dosetXTXcharacterclass{"0FF5E}{lb:id} \dosetXTXcharacterclass{"0FF5F}{lb:op} \dofastrecurse{"0FF60}{"0FF61}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}} \dosetXTXcharacterclass{"0FF62}{lb:op} \dofastrecurse{"0FF63}{"0FF64}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}} \dosetXTXcharacterclass{"0FF65}{lb:ns} \dofastrecurse{"0FF9E}{"0FF9F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dofastrecurse{"0FFE2}{"0FFE4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"0FFF9}{"0FFFB}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"101FD}{lb:cm} \dosetXTXcharacterclass{"102E0}{lb:cm} \dofastrecurse{"10376}{"1037A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"10A01}{"10A0F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"10A38}{"10A3F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"10AE5}{"10AE6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"11000}{"11002}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"11038}{"11046}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1107F}{"11082}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"110B0}{"110BA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"11100}{"11102}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"11127}{"11134}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"11173}{lb:cm} \dofastrecurse{"11180}{"11182}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"111B3}{"111C0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"111CA}{"111CC}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1122C}{"11237}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"112DF}{"112EA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"11300}{"11303}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"1133C}{lb:cm} \dofastrecurse{"1133E}{"1134D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"11357}{lb:cm} \dofastrecurse{"11362}{"11374}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"114B0}{"114C3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"115AF}{"115C0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"115C4}{"115C5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}} \dofastrecurse{"115DC}{"115DD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"11630}{"11640}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"116AB}{"116B7}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"13258}{"1325A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:op}} \dofastrecurse{"1325B}{"1325D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}} \dosetXTXcharacterclass{"13282}{lb:cl} \dosetXTXcharacterclass{"13286}{lb:op} \dosetXTXcharacterclass{"13287}{lb:cl} \dosetXTXcharacterclass{"13288}{lb:op} \dosetXTXcharacterclass{"13289}{lb:cl} \dosetXTXcharacterclass{"13379}{lb:op} \dofastrecurse{"1337A}{"1337B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}} \dosetXTXcharacterclass{"145CE}{lb:op} \dosetXTXcharacterclass{"145CF}{lb:cl} \dofastrecurse{"16AF0}{"16AF4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"16B30}{"16B36}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"16F51}{"16F92}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1B000}{"1B001}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1BC9D}{"1BC9E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1BCA0}{"1BCA3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1D165}{"1D169}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1D16D}{"1D182}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1D185}{"1D18B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1D1AA}{"1D1AD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1D242}{"1D244}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1DA00}{"1DA36}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1DA3B}{"1DA6C}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dosetXTXcharacterclass{"1DA75}{lb:cm} \dosetXTXcharacterclass{"1DA84}{lb:cm} \dofastrecurse{"1DA9B}{"1DAAF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1E8D0}{"1E8D6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \dofastrecurse{"1F000}{"1F0F5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F200}{"1F39B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F39E}{"1F3B4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F3B7}{"1F3BB}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F3BD}{"1F3FA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F400}{"1F49F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"1F4A1}{lb:id} \dosetXTXcharacterclass{"1F4A3}{lb:id} \dofastrecurse{"1F4A5}{"1F4AE}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dosetXTXcharacterclass{"1F4B0}{lb:id} \dofastrecurse{"1F4B3}{"1F4FF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F507}{"1F516}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F525}{"1F531}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F54A}{"1F5D3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F5DC}{"1F5F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F5FA}{"1F64F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F679}{"1F67B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}} \dofastrecurse{"1F680}{"1F6F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"1F910}{"2FA1D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}} \dofastrecurse{"E0001}{"E01EF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}} \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/filt-bas.mkii0000644000175000017500000000346514536300610024664 0ustar hillehille%D \module %D [ file=filt-bas, %D version=2000.09.19, %D title=\CONTEXT\ Filter Macros, %D subtitle=A Base Collection, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % BEWARE: THIS IS A TEST MODULE, NAMES MAY CHANGE! \definefiltersynonym [utf8 to unicode16] [inutf8] \definefiltersynonym [persian fix] [FarsiToArabic] \definefiltersynonym [arabic analysis] [uni2cuni] \definefiltersynonym [arabic glyphs] [cuni2oar] \definefiltersequence [farsi] [utf8 to unicode16, persian fix, arabic analysis, arabic glyphs] \definefiltersynonym [basic context analysis step1] [bcaa-1] \definefiltersynonym [basic context analysis step2] [bcaa-2] \definefiltersynonym [basic context analysis step3] [bcaa-3] \definefiltersynonym [farsi processing for uomarab] [uomarab-farsi] \definefiltersynonym [basic presentation forms to sf] [bpftosf] \definefiltersynonym [omega persian fix] [FarsiToArabic] \definefiltersynonym [omega arabic analysis] [uni2cuni] \definefiltersynonym [omega arabic glyphs] [cuni2oar] \definefiltersequence [farsi-1] [utf8 to unicode16, omega persian fix, omega arabic analysis, omega arabic glyphs] \definefiltersequence [farsi-2] [utf8 to unicode16, basic context analysis step1, basic context analysis step2, basic context analysis step3, farsi processing for uomarab] \definefiltersequence [farsi-3] [utf8 to unicode16, basic context analysis step1, basic context analysis step2, basic context analysis step3, basic presentation forms to sf] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-xml.mkii0000644000175000017500000000152514536300610024702 0ustar hillehille%D \module %D [ file=meta-xml, %D version=2002.11.27, %D title=\METAPOST\ Graphics, %D subtitle=XML Hacks, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{MetaPost Graphics / XML Hacks} %D When we are dealing with XML, we need to make sure that %D \METAPOST\ knows about it. The next macro expands its %D argument (think of widget XFDF) into \type {\getXMLentity} %D calls. \unprotect \def\setMPtextXML#1#2% {\bgroup \enableXML \expanded{\defconvertedcommand\noexpand\ascii{#2}}% \expanded{\egroup\noexpand\dodoglobal\noexpand\setvalue{\@@MPT#1}{\ascii}}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/tabl-tbl.mkii0000644000175000017500000013114114536300610024655 0ustar hillehille%D \module %D [ file=core-tbl, %D version=1998.11.03, %D title=\CONTEXT\ Table Macros, %D subtitle=Text Flow Tabulation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Table Macros / Tabulation} % \processbetween gebruiken in head/tail macros \unprotect % WATCH OUT: don't change this model else trialtypesetting % compatibility problems % watch out, cells expand pretty late on a per row basis % |p2|p3| 2:3 % spanning % Be careful with changing the hsize calculation in p mode; % the following code works quite well: % % \setupfield [line][location=low,height=1.2\lineheight,width=\hsize] % \definefield [test] [line] [line] [] % % \starttabulate[|l|p|] % \NC test \NC \field [test] \NC \NR % \stoptabulate % In-text tabbing environment % % \starttabulate[| separated template] % eg [|l|p|] or [|l|p|p|] % \NC ... \NC ... \NC\NR % \stoptabulate % % with: two pass auto width calculation when no p-width % specified, even with multiple p's, see examples. % TaBlE compatible specifications: % % l align column/paragraph left % r align column/paragraph right % c align column/paragraph center % p p(dimen) of automatisch als alleen p % w column width % f font#1 % B bold % I italic % S slanted % T type % R roman % m math % M display math % h hook (inner level or par lines) % b before (may be command#1) % a after % i i skip left of column % j i skip right of column % k i skip around column % s setups % g g{char} align at char % . align at . % , align at , % Still to be done % N math numbers (best hook into existing digits mechanism) % n numbers (best hook into existing digits mechanism) % Q math numbers (best hook into existing digits mechanism) % q numbers (best hook into existing digits mechanism) % ~ \hskip.5em % | check % nesting % 10 evt auto stack; dan wel andere signal dan void nodig % present but not yet 100% ok % % \FL top hrule % \ML mid hrule (with auto split) % \LL bottom hrule % \HL % \VL as soon as needed % color as soon as needed % \EQ \RQ \HQ equal (raw, hook) % \NC \RC \HC normal (raw, hook) % % \NR % \HR : rule with lineheight % \autotabulaterule : with lineheight, not first/last % \autotabulateline : spaced, not first/last % \tabulaterule : with lineheight % \tabulateline : spaced % tricky: align scans ahead, over # and expands ones before % while doing % new: % % \starttabulate[|cg{.}|cg{,}|cg{,}|] % \NC period \NC comma \NC comma \NC\NR % \NG 100.000,00 \NG 100.000,00 \NG 100,00 \NC\NR % \NG 10.000,00 \NG 10.000,00 \NG 1000,00 \NC\NR % \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR % \NG 10 \NG 10 \NG 0,00 \NC\NR % \stoptabulate % % \starttabulate[|c.|c,|c,|] % \NC period \NC comma \NC comma \NC\NR % \NG 100.000,00 \NG 100.000,00 \NG 100,00 \NC\NR % \NG 10.000,00 \NG 10.000,00 \NG 1000,00 \NC\NR % \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR % \NG 10 \NG 10 \NG 0,00 \NC\NR % \stoptabulate % nice demo (for BG) % % \starttabulate[|r|b{$\star$}|ra{\percent}|b{=}|r|] % \NC 500 \NC \NC 60 \NC \NC 300 \NC \NR % \NC 500 \NC \NC 55 \NC \NC 275 \NC \NR % \NC 500 \NC \NC 50 \NC \NC 250 \NC \NR % \NC 500 \NC \NC 45 \NC \NC 225 \NC \NR % \NC 500 \NC \NC 40 \NC \NC 200 \NC \NR % \NC 500 \NC \NC 35 \NC \NC 175 \NC \NR % \NC 500 \NC \NC 30 \NC \NC 150 \NC \NR % \NC 500 \NC \NC 25 \NC \NC 125 \NC \NR % \NC 500 \NC \NC 20 \NC \NC 100 \NC \NR % \stoptabulate \newtoks \tabulatepreamble \newtoks \tabulatebefore \newtoks \tabulateafter \newtoks \tabulatebmath \newtoks \tabulateemath \newtoks \tabulatefont \newtoks \tabulatesettings \newtoks \tabulatedummy \newcount \nofautotabulate \newcount \tabulatecolumns \newcount \tabulatecolumn \newcount \tabulateminplines \newcount \tabulatemaxplines \newif \ifautotabulate \newif \ifsplittabulate \splittabulatetrue \newif \ifhandletabulatepbreak \handletabulatepbreaktrue \newif \iftabulatenopbreak \tabulatenopbreakfalse \newif \iftabulateequal \newif \iftracetabulate \newif \ifframedtabulate \newdimen \tabulatepwidth \newdimen \tabulatewidth \newdimen \tabulateunit \newdimen \tabulatemaxpheight \newbox \tabulatebox % [|lg{.}|] => \NG 12.34 \NC \gdef\handletabulatecharalign#1 % space delimited ! {\edef\alignmentclass{\the\tabulatecolumn}% \edef\alignmentcharacter{\getvalue{\@@tabalign@@\the\tabulatecolumn}}% \ifcase\tabulatepass\or \setfirstpasscharacteralign\checkalignment{#1}% \fi % force hsize \setsecondpasscharacteralign\checkalignment{#1}} \def\noftabcolumns{16} \def\@@tabbox@@ {@@tabbox@} \def\@@tabhook@@ {@@tabhook@} \def\@@tabalign@@ {@@tabalign@} \def\@@tabsetups@@{@@tabsetups@} % \dorecurse\noftabcolumns % quick and dirty stack % {\@EA\newbox\csname\@@tabbox@@\recurselevel\endcsname} \def\tablebox#1% {\csname\@@tabbox@@\number#1\endcsname} % \def\checktablebox#1% % {\ifundefinedelse{\@@tabbox@@\number#1}% % \expandafter\newbox\csname\@@tabbox@@\number#1\endcsname % \fi} \def\initializetablebox#1% also used elsewhere {\ifcsname\@@tabbox@@\number#1\endcsname \global\setbox\csname\@@tabbox@@\number#1\endcsname\emptybox \else \expandafter\newbox\csname\@@tabbox@@\number#1\endcsname \fi} % \def\initializetableboxes#1% hm, not that efficient, best make a simple dedicated tail recurser % {\dorecurse#1{\initializetablebox\recurselevel}} \def\initializetableboxes#1% {\scratchcounter#1\relax \doinitializetableboxes} \def\doinitializetableboxes {\ifnum\scratchcounter>\zerocount \initializetablebox\scratchcounter \advance\scratchcounter\minusone \expandafter\doinitializetableboxes \fi} \initializetableboxes\noftabcolumns \def\dotabulatenobreak {\noalign {\nobreak \iftracetabulate \red\hrule\!!height.5\linewidth\!!depth.5\linewidth \par \kern-\linewidth \nobreak \fi}} \let\notabulatehook\empty \def\checktabulatehook {\ifnum\tabulatetype<\plustwo \global\let\tabulatehook\notabulatehook \else \global\let\tabulatehook\dotabulatehook \fi} \def\checktabulatesetups {\getvalue{\@@tabsetups@@\the\tabulatecolumn}} \let\pretabrule \donothing \let\posttabrule\donothing \def\dodosettabulatepreamble#1#2% {\ifzeropt\tabulatewidth \ifcase\tabulatemodus\relax \let\preamblebox\empty \else \def\preamblebox{\autotabulatetrue}% \fi \else \ifcase\tabulatemodus\relax \edef\preamblebox{\hbox to \the\tabulatewidth}% \else \edef\preamblebox{\hsize\the\tabulatewidth}% \fi \fi % % less bytes % %\edef\preamblebox% % {\ifcase\tabulatewidth % \ifcase\tabulatemodus\relax\else\noexpand\autotabulatetrue\fi % \els % \ifcase\tabulatemodus\relax\hbox to\else\hsize\fi\the\tabulatewidth % \fi}% % % 0 = NC column next EQ equal column % 1 = RC column raw RQ equal column raw % 2 = HC column hook HQ equal column hook % some entries can be left out if we test for them being set \@EA\appendtoks \@EA&\@EA\hskip\pretabskip\pretabrule##&\to\!!toksa \appendtoks \ignorespaces\to\!!toksa \@EA\appendtoks\@EA\global\@EA\tabulatecolumn\the\tabulatecolumns\relax\to\!!toksa \appendtoks \checktabulatesetups\to\!!toksa \appendtoks \checktabulatehook\to\!!toksa \@EA\appendtoks \preamblebox\to\!!toksa \appendtoks \bgroup\bbskip\bgroup#1\to\!!toksa \appendtoks\ifnum\tabulatetype=\plusone \else \to\!!toksa \@EA\appendtoks \the\tabulatebmath\to\!!toksa \@EA\appendtoks \the\tabulatefont\to\!!toksa \@EA\appendtoks \the\tabulatesettings\to\!!toksa \@EA\appendtoks \the\tabulatebefore\to\!!toksa \appendtoks\fi \to\!!toksa \appendtoks \bgroup\ignorespaces\to\!!toksa % \appendtoks \tabulatehook##\to\!!toksa % %%\doifdefinedelse{\@@tabalign@@\tabulatecolumns} %\doifdefinedelse{\@@tabalign@@\the\tabulatecolumns} % {\appendtoks\handletabulatecharalign## \to\!!toksa} % {\appendtoks\tabulatehook ##\to \!!toksa}% % waarom kan ik hier geen \xx{##} geven, om een of % andere reden passeert dan tex de hele regel (incl \NC's) % als argument; elke delimiter <> space gaat trouwens fout \appendtoks \unskip\unskip\ifmmode\else\endgraf\fi\egroup\to\!!toksa \appendtoks\ifnum\tabulatetype=1 \else \to\!!toksa \@EA\appendtoks \the\tabulateafter\to\!!toksa \@EA\appendtoks \the\tabulateemath\to\!!toksa \appendtoks\fi \to\!!toksa \appendtoks #2\egroup\egroup\to\!!toksa \@EA\appendtoks \@EA&\@EA\posttabrule\@EA\hskip\postabskip##\to\!!toksa \appendtoks\NC\to\tabulatedummy \let\bbskip\empty \def\pretabskip{.5\tabulateunit}% \let\postabskip\pretabskip \let\gettabulateexit\dogettabulateexit \tabulatewidth\zeropoint} % todo: we can speed up this module a bit % % \expanded{\!!toksa{\the\!!toksa % &\hskip\pretabskip\noexpand\pretabrule####& % \ignorespaces % \global\tabulatecolumn\the\tabulatecolumns % \noexpand\checktabulatesetups % \noexpand\checktabulatehook % \preamblebox % \bgroup\noexpand\bbskip\bgroup\normalunexpanded{#1}% % \noexpand\ifnum\tabulatetype=\plusone \noexpand\else % \the\tabulatebmath % \the\tabulatefont % \the\tabulatesettings % \the\tabulatebefore % \noexpand\fi % \bgroup\ignorespaces % \noexpand\tabulatehook####% % \unskip\unskip\noexpand\ifmmode\noexpand\else\endgraf\noexpand\fi\egroup % \noexpand\ifnum\noexpand\tabulatetype=1 \noexpand\else % \the\tabulateafter % \the\tabulateemath % \noexpand\fi % \normalunexpanded{#2}\egroup\egroup % &\noexpand\posttabrule\hskip\noexpand\postabskip####}}% \def\dosettabulatepreamble {\ifx\next\relax \let\nextnext\relax % == \expandafter\gobbleoneargument \else \let\nextnext\settabulatepreamble \ifx x\next \let\tabulatealign\zerocount % internal \else\ifx l\next \let\tabulatealign\plusone \else\ifx r\next \let\tabulatealign\plustwo \else\ifx c\next \let\tabulatealign\plusthree \else\ifx p\next \let\nextnext\gettabulateparagraph \else\ifx s\next \let\nextnext\gettabulatesetups \else\ifx w\next \let\nextnext\gettabulatewidth \else\ifx f\next \let\nextnext\gettabulatefont \else\ifx B\next \tabulatefont{\bf}% \else\ifx I\next \tabulatefont{\it}% \else\ifx S\next \tabulatefont{\sl}% \else\ifx T\next \tabulatefont{\tt}% \else\ifx R\next \tabulatefont{\rm}% \else\ifx m\next \tabulatebmath{$}\tabulateemath{$}% \else\ifx M\next \tabulatebmath{$\displaystyle}\tabulateemath{$}% \else\ifx h\next \let\nextnext\gettabulatehook \else\ifx b\next \let\nextnext\gettabulatebefore \else\ifx a\next \let\nextnext\gettabulateafter \else\ifx i\next \let\nextnext\gettabulatepreskip \else\ifx j\next \let\nextnext\gettabulateposskip \else\ifx k\next \let\nextnext\gettabulatepreposskip \else\ifx X\next \let\nextnext\gettabulateexit % internal \else\ifx e\next \appendtoks\global\tabulateequaltrue\to\tabulatesettings \else\ifx ~\next \appendtoks\fixedspaces\to\tabulatesettings \else\ifx g\next \let\nextnext\gettabulatealign \else\ifx .\next \def\nextnext{\gettabulatealign.}% \else\ifx ,\next \def\nextnext{\gettabulatealign,}% \else \message{unknown preamble key [\meaning\next]}% \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi \fi \nextnext} \def\dogettabulateexit {\let\postabskip\!!zeropoint \settabulatepreamble} \let\gettabulateexit\dogettabulateexit \def\gettabulatepreskip#1% {\doifnumberelse{#1} {\scratchdimen#1\tabulateunit\let\next\empty} {\scratchdimen.5\tabulateunit\def\next{#1}}% \edef\pretabskip{\the\scratchdimen}% \@EA\settabulatepreamble\next} \def\gettabulateposskip#1% {\doifnumberelse{#1} {\scratchdimen#1\tabulateunit\let\next\empty} {\scratchdimen.5\tabulateunit\def\next{#1}}% \edef\postabskip{\the\scratchdimen}% \let\gettabulateexit\settabulatepreamble \@EA\settabulatepreamble\next} \def\gettabulatepreposskip#1% {\doifnumberelse{#1} {\scratchdimen#1\tabulateunit\let\next\empty} {\scratchdimen.5\tabulateunit\def\next{#1}}% \edef\pretabskip{\the\scratchdimen}% \let\postabskip\pretabskip \let\gettabulateexit\settabulatepreamble \@EA\settabulatepreamble\next} \def\gettabulatesetups#1% {\setvalue{\@@tabsetups@@\the\tabulatecolumns}{\setups[#1]}% \settabulatepreamble} \def\gettabulatehook#1% {\setvalue{\@@tabhook@@\the\tabulatecolumns}{#1}% \settabulatepreamble} \def\gettabulatealign#1% {\setvalue{\@@tabalign@@\the\tabulatecolumns}{#1}% \settabulatepreamble} \def\gettabulatebefore#1% {\tabulatebefore{#1}% \settabulatepreamble} \def\gettabulateafter#1% {\tabulateafter{#1}% \settabulatepreamble} \def\gettabulatefont#1% {\tabulatefont{#1}% \settabulatepreamble} \def\gettabulatewidth {\let\tabulatemodus\zerocount \let\tabulatedimen\zerocount \doifnextcharelse(\dogettabulatewidth\settabulatepreamble} \def\gettabulateparagraph {\doifnextcharelse{(} {\let\tabulatemodus\plusone \let\tabulatedimen\plusone \dogettabulatewidth} {\let\tabulatemodus\plustwo \let\tabulatedimen\zerocount \settabulatepreamble}} % \def\dogettabulatewidth(#1)% % {\tabulatewidth#1\relax % \ifnum\tabulatedimen=\plusone % \global\advance\tabulatepwidth\tabulatewidth % \fi % \settabulatepreamble} % \def\dogettabulatewidth(#1)% % {\doifelse{#1}\v!passend % {\let\tabulatemodus\plusthree} % {\tabulatewidth#1\relax}% % \ifnum\tabulatedimen=\plusone % \global\advance\tabulatepwidth\tabulatewidth % \fi % \settabulatepreamble} % \startbuffer % \toplinebox{\framed[width=3cm,height=2cm]{tufte}} % \stopbuffer % \starttabulate[|p(fixed)|p|] % \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR} % \stoptabulate % \starttabulate[|p(fit)|p|] % \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR} % \stoptabulate \def\dogettabulatewidth(#1)% {\processallactionsinset [#1]% [ \v!fit=>\let\tabulatemodus\plusthree, \v!fixed=>\let\tabulatemodus\plusthree \tabulatenopbreaktrue, \s!unknown=>\tabulatewidth#1\relax]% \ifnum\tabulatedimen=\plusone \global\advance\tabulatepwidth\tabulatewidth \fi \settabulatepreamble} \def\settabulatepreamble {\afterassignment\dosettabulatepreamble\let\next=} \def\tabulateraggedright {\ifnum\tabulatetype=\plusone \else\raggedright \fi} \def\tabulateraggedcenter{\ifnum\tabulatetype=\plusone \else\raggedcenter\fi} \def\tabulateraggedleft {\ifnum\tabulatetype=\plusone \else\raggedleft \fi} \def\tabulatenotragged {\ifnum\tabulatetype=\plusone \else\notragged \fi} \def\tabulatehss {\ifnum\tabulatetype=\plusone \else\hss \fi} % never change this to a fill \bgroup \catcode`\|=\@@other \gdef\nexttabulate#1|% {\let\tabulatealign\@@tabulatealign \let\tabulatemodus\zerocount \let\tabulatedimen\zerocount \tabulatebefore \emptytoks \tabulateafter \emptytoks \tabulatebmath \emptytoks \tabulateemath \emptytoks \tabulatefont \emptytoks \tabulatesettings\emptytoks \global\advance\tabulatecolumns\plusone \letvalue{\@@tabsetups@@\the\tabulatecolumns}\donothing \settabulatepreamble#1\relax\relax % permits i without n \ifcase\tabulatemodus\relax \ifcase\tabulatealign\relax \dodosettabulatepreamble\empty \tabulatehss \or \dodosettabulatepreamble\empty \tabulatehss \or \dodosettabulatepreamble\tabulatehss\empty \or \dodosettabulatepreamble\tabulatehss\tabulatehss \fi \or % fixed width \ifcase\tabulatealign\relax \dodosettabulatepreamble \bskip \eskip \or \dodosettabulatepreamble{\bskip\tabulateraggedright }\eskip \or \dodosettabulatepreamble{\bskip\tabulateraggedleft }\eskip \or \dodosettabulatepreamble{\bskip\tabulateraggedcenter}\eskip \fi \or % auto width \global\advance\nofautotabulate\plusone \ifcase\tabulatealign\relax \dodosettabulatepreamble \bskip \eskip \or \dodosettabulatepreamble{\bskip\tabulateraggedright }\eskip \or \dodosettabulatepreamble{\bskip\tabulateraggedleft }\eskip \or \dodosettabulatepreamble{\bskip\tabulateraggedcenter}\eskip \fi \or % simple \dodosettabulatepreamble \xbskip \xeskip \fi \futurelet\next\donexttabulate} \egroup \def\donexttabulate {\ifx\next\relax\else \expandafter\nexttabulate \fi} \def\splitofftabulatebox % overloaded in anch-pgr {\dontcomplain \global\setbox\tabulatebox % % % global ? % % % \vsplit\tablebox\tabulatecolumn to \lineheight \setbox\tabulatebox\normalvbox {\unvbox\tabulatebox}% \setbox\tabulatebox\hbox to \wd\tabulatebox {\hss\dotabulatehook{\box\tabulatebox}\hss}% \ht\tabulatebox\strutht \dp\tabulatebox\strutdp \box\tabulatebox} \def\dotabulatehook {\getvalue{\@@tabhook@@ \the\tabulatecolumn}} \def\dotabulatealign {\getvalue{\@@tabalign@@ \the\tabulatecolumn}} \def\resettabulatepheight {\global\tabulateminplines\plusone \getnoflines\tabulatemaxpheight \global\tabulatemaxplines\noflines \global\tabulatemaxpheight\zeropoint} \def\settabulatepheight {\scratchdimen\ht\tablebox\tabulatecolumn\relax \ifdim\scratchdimen>\tabulatemaxpheight \global\tabulatemaxpheight\scratchdimen \fi} \def\handletabulatepbreak {\TABLEnoalign {\ifhandletabulatepbreak \iftabulatenopbreak \dotabulatenobreak \else\ifnum\tabulatemaxplines>\plusone \ifnum\tabulateminplines=\plusone \dotabulatenobreak \fi \global\advance\tabulateminplines\plusone \ifnum\tabulateminplines=\tabulatemaxplines\relax \dotabulatenobreak \fi \fi \fi \fi}} %D \startbuffer %D \starttabulate[|c|p|p|] %D \NC \bf Alpha \NC \bf Beta \NC \bf Gamma \NC\NR %D \NC 1 \NC right indeed \NC definitely wrong \NC\NR %D \NC 2 \NC \thinrules[n=3] \NC \thinrules[n=3] \NC\NR %D \NC 3 \NC oh yes \NC simply no \NC\NR %D \NC 4 \NC very true \NC as false as can be \NC\NR %D \NC 5 \NC \thinrules[n=5] \NC \thinrules[n=5] \NC\NR %D \NC 6 \NC \thinrules[n=3] \NC \thinrules[n=4] \NC\NR %D \stoptabulate %D \stopbuffer %D %D \typebuffer {\tracetabulatetrue\getbuffer} %D %D \startbuffer %D \starttabulate[|c|p|p|] %D \NC \bf Alpha \NC \bf Beta \NC \bf Gamma \NC\NR %D \NC 1 \NC right indeed \NC definitely wrong \NC\NR %D \NC 2 \NC oh yes \NC simply no \NC\NR %D \NC 3 \NC very true \NC as false as can be \NC\NR %D \NC 4 \NC the whole truth \NC but the truth \NC\NR %D \stoptabulate %D \stopbuffer %D %D \typebuffer {\tracetabulatetrue\getbuffer} % \definetabulate % \redefinetabulate % \starttabulate[preamble] % \starttabulate -> \starttabulate[|l|p|] \bgroup \catcode`\|=\@@other \gdef\definetabulate {\dotripleempty\dodefinetabulate} \gdef\dodefinetabulate[#1][#2][#3]% {\ifthirdargument \doifundefined{\??tt#1::\c!unit} {\copyparameters [\??tt#1::][\??tt\v!tabulate::]% [\c!frame,\c!distance,\c!unit,\c!before,\c!bodyfont,\c!after, \c!inner,\c!indenting,\c!margin,\c!align,\c!header,\c!title, \c!rulecolor,\c!rulethickness,\c!split,EQ]}% \copyparameters [\??tt#1::#2][\??tt#1::]% [\c!unit,\c!distance,\c!before,\c!bodyfont,\c!after, \c!inner,\c!indenting,\c!frame,\c!split,\c!header,\c!title, \c!margin,\c!align,\c!rulecolor,\c!rulethickness,EQ]% \setvalue{\e!start#1::#2}{\dofinalstarttabulate[#1][#2][#3]}% \setvalue{\e!start#1}{\bgroup\dosubstarttabulate[#1]}% \letvalue{\??tt#1-\v!header}\empty \letvalue{\??tt#1-\v!footer }\empty \else\ifsecondargument \definetabulate[#1][][#2]% \else \definetabulate[#1][][|l|p|]% \fi\fi} \egroup \let\tabulateheadcontent\empty \let\tabulatetailcontent\empty \newconditional\tabulatesomeamble \def\checkfulltabulatecontent % - needed, else confusion with \c!header {\ifundefined{\??tt\currenttabulate-\v!header}% \let\tabulateheadcontent\empty \else \def\tabulateheadcontent {\TABLEnoalign{\global\settrue\tabulatesomeamble}% \csname\??tt\currenttabulate-\v!header\endcsname \TABLEnoalign{\global\setfalse\tabulatesomeamble}}% \fi \ifundefined{\??tt\currenttabulate-\v!footer}% \let\tabulatetailcontent\empty \else \def\tabulatetailcontent {\TABLEnoalign{\global\settrue\tabulatesomeamble}% \csname\??tt\currenttabulate-\v!footer\endcsname \TABLEnoalign{\global\setfalse\tabulatesomeamble}}% \fi} % \def\fulltabulatecontent % {\tabulateheadcontent % \tabulatecontent % \tabulatetailcontent} \def\fulltabulatecontent {\tabulateheadcontent \tabulatecontent \tabulatetailcontent \removefunnytabulateline} \def\removefunnytabulateline {\ifhmode \strut\crcr \TABLEnoalign{\kern-\lineheight}% \fi} \setvalue{\e!start\v!tabulatehead}% {\dosingleempty\dostartstarttabulatehead} \def\dostartstarttabulatehead[#1]% {\processcontent{\e!stop\v!tabulatehead}\next {\letvalue{\??tt\iffirstargument#1\else\v!tabulate\fi::-\v!header}\next}} \setvalue{\e!start\v!tabulatetail}% {\dosingleempty\dostartstarttabulatetail} \def\dostartstarttabulatetail[#1]% {\processcontent{\e!stop\v!tabulatetail}\next {\letvalue{\??tt\iffirstargument#1\else\v!tabulate\fi::-\v!footer}\next}} \def\dosubstarttabulate {\dodoubleempty\dodosubstarttabulate} \def\dodosubstarttabulate[#1][#2]% {\getvalue{\e!start#1::\ifundefined{\e!start#1::#2}\else#2\fi}} \setvalue{\e!start\v!tabulate}% {\bgroup\dodoubleempty\donormalstarttabulate} \bgroup \gdef\donormalstarttabulate[#1][#2]% {\ifsecondargument \getparameters[\??tt\v!tabulate::][#2]% \fi \iffirstargument \def\next{\dofinalstarttabulate[\v!tabulate][][#1]}% \else \def\next{\dofinalstarttabulate[\v!tabulate][][|l|p|]}% \fi \next} \egroup % The much neede hook: \newtoks\everytabulate % An example of its usage: \appendtoks \optimizeverbatimfalse \to \everytabulate \appendtoks \let\recodeverbatimmode\plustwo \to \everytabulate % A status variable: \chardef\tabulatepass=0 \def\tabulateparameter#1{\csname\??tt\currenttabulate#1\endcsname} \bgroup \catcode`\|=\@@other \gdef\@@otherbar{|} \catcode`\|=\@@active \gdef\@@useotherbar{\let|\@@otherbar} \egroup \def\dofinalstarttabulate[#1][#2][#3]% identifier sub preamble {\edef\currenttabulate{#1::#2}% \ifinsidefloat \else \whitespace \tabulateparameter\c!before \fi \bgroup \resetcharacteralign % todo: spacing around tabulate when bodyfont is set % expansion en test needed ? \splittabulatetrue \processaction [\tabulateparameter\c!split] [% \v!yes=>\splittabulatetrue, % \v!repeat=>\splittabulatetrue, % todo, default yes \v!no=>\splittabulatefalse, \v!auto=>\ifinsidefloat\ifinsidesplitfloat\else\splittabulatefalse\fi\fi]% \doifvaluesomething{\??tt\currenttabulate\c!bodyfont} {\expanded{\switchtobodyfont[\tabulateparameter\c!bodyfont]}}% \postponenotes % new, to be tested / will be configurable \let\tabulatepass\plusone \widowpenalty\zerocount % otherwise lines are not broken \clubpenalty \zerocount % but overlap in funny ways \the\everytabulate \tabulateparameter\c!inner \scratchdimen\leftskip \advance\scratchdimen \hangindent \doifvalue{\??tt\currenttabulate\c!indenting}\v!yes {\advance\scratchdimen \parindent}% \ctxparindent \edef\tabulateindent{\the\scratchdimen}% \!!toksb\emptytoks \def\dorepeat*##1##2% {\dorecurse{##1}{\appendtoks##2\to\!!toksb}\do}% \def\do {\futurelet\next\dodo}% \def\dodo % \@EAEAEA gebruiken {\ifx\next\relax % exit \else\ifx*\next \let\next\dorepeat \else\ifx\bgroup\next \let\next\dododo \else \let\next\dodododo \fi\fi\fi \next}% \def\dododo##1% {\appendtoks{##1}\to\!!toksb\do}% \def\dodododo##1% {\appendtoks##1\to\!!toksb\do}% \global\tabulatecolumn\zerocount % \do#3\relax \bgroup\@@useotherbar\expanded{\egroup\noexpand\do#3\relax}% \processcontent {\e!stop#1}% \currenttabulate} \tabulatecontent {\@EA\processtabulate\@EA[\the\!!toksb]}} \chardef\tabulatetype=0 % 0 = NC column next EQ equal column % 1 = RC column raw RQ equal column raw % 2 = HC column hook HQ equal column hook \newif\iftabulatefirstflushed \def\tabulateEQ {\iftabulatefirstflushed\else\tabulateparameter{EQ}\fi \global\tabulateequalfalse} % \def\tabulatenormalcolumn#1% % {&\iftabulateequal\tabulateEQ\fi&\global\chardef\tabulatetype#1&} % % \def\tabulateequalcolumn#1% % {&\tabulateEQ&\global\chardef\tabulatetype#1&} % % however, \unskip en \ignorespaces permit usage in complex XML/\starttabulate \def\tabulatenormalcolumn#1% {\unskip&\iftabulateequal\tabulateEQ\fi&\global\chardef\tabulatetype#1&% \ignorespaces} \def\tabulateequalcolumn#1% {\unskip&\tabulateEQ&\global\chardef\tabulatetype#1&% \ignorespaces} \def\tabulateautocolumn {\tabulatenormalcolumn\zerocount \ifnum\tabulatecolumn>\tabulatecolumns\relax \expandafter\NR \else \expandafter\ignorespaces % interferes with the more tricky hooks \fi} \def\setquicktabulate#1% see \startlegend \startgiven {\let#1\tabulateautocolumn \let\\\tabulateautocolumn} %\def\dotabulateruleseperator % {\vskip\strutdp} \def\dotabulateruleseperator % can be sped up {\bgroup \let\factor\!!plusone \scratchskip\strutdp \ExpandFirstAfter\processallactionsinset [\tabulateparameter\c!distance] [ \v!blank=>\scratchskip\bigskipamount, \v!depth=>\scratchskip\strutdp, \v!small=>\def\factor{.25}, \v!medium=>\def\factor{.5}, \v!big=>, \v!none=>\scratchskip\zeropoint\def\factor{0}, \v!grid=>\scratchskip\zeropoint\def\factor{0}, \s!unknown=>\scratchskip\commalistelement]% \scratchdimen\factor\scratchskip \ifconditional\tabulatesomeamble\kern\else\vskip\fi\scratchdimen % new \egroup} \def\dodotabulaterule#1% {\color [\tabulateparameter\c!rulecolor] {\scratchdimen\tabulateparameter\c!rulethickness#1}} \def\dotabulaterule {\dodotabulaterule {\hrule\!!height.5\scratchdimen\!!depth.5\scratchdimen\relax \doifvalue{\??tt\currenttabulate\c!distance}\v!grid {\kern-\scratchdimen}}} % experimental tm-prikkels \def\dotabulatelinerule {\multispan\totaltabulatecolumns % \multispan is a plain macro % for the moment this one \strut\hskip\tabulateparameter\c!margin % neg values are ok ! \hskip\tabulateindent % new august 2003 \dodotabulaterule {\!!heighta.5\lineheight \advance\!!heighta-\strutdepth \!!deptha-\!!heighta \advance\!!deptha\scratchdimen \leaders\hrule\!!height\!!heighta\!!depth\!!deptha\hfill}% \cr} %D When set to true, no (less) break optimization is done. \newif\iftolerantTABLEbreak %D The main processing macro is large but splitting it up %D would make things less clear. \def\doregistertabulateparoptions {\iftrialtypesetting \else \registerparoptions \ifinsidefloat % that is, an unbreakable one \global\let\registertabulateparoptions\empty \else % unsafe in crossing pages, at each b... % \global\let\registertabulateparoptions\empty \fi \fi} \appendtoks \global\let\registertabulateparoptions\doregistertabulateparoptions \to \everytabulate \newtoks\everytabulaterow \appendtoks \registertabulateparoptions \to \everytabulaterow \def\flushtabulateindent {\ifnum\tabulatecolumn=\zerocount \hbox to \tabulateindent {% we now have a local hsize, and since we want to % register positional info (i.e. real hsizes) we % need to reconstitute the original hsize \advance\hsize\tabulateindent % this is indeed rather messy and took a few hours % to dis/uncover \the\everytabulaterow \hss}% \fi} \def\totaltabulatecolumns{0} \def\handletabulatedigits{\digits} %D Beware, we cannot use \type {\unexpanded} on \type {\HL} %D cum suis, since \TEX's hard coded noalign lookahead fails %D on it! I mistakenly added this for a while. \chardef\tabulaterepeathead\zerocount \newcount\noftabulatelines \newcount\totalnoftabulatelines \newcount\minusnoftabulatelines \setvalue{\??tt:\c!align:\v!normal}{0} \setvalue{\??tt:\c!align:\v!right }{1} \setvalue{\??tt:\c!align:\v!left }{2} \setvalue{\??tt:\c!align:\v!middle}{3} \setvalue{\??tt:\c!header:\v!repeat}{\plusone} \setvalue{\??tt:\c!header:\v!text }{\plustwo} \bgroup \catcode`\|=\@@other \newtoks\everyaftertabulaterow \gdef\processtabulate[|#1|]% in the process of optimizing {\tabulateunit\tabulateparameter\c!unit \checkfulltabulatecontent \globallet\tabulateruledepth \!!zeropoint \globallet\tabulateruleheight\!!zeropoint \edef\@@tabulatealign{\executeifdefined{\??tt:\c!align:\tabulateparameter\c!align}0}% % \ExpandFirstAfter\processaction % use \setalignmentswitch instead % [\tabulateparameter\c!align] % [ \v!normal=>\def\@@tabulatealign{0},% = default value % \v!right=>\def\@@tabulatealign{1},% chardefs gebruiken % \v!left=>\def\@@tabulatealign{2},% % \v!middle=>\def\@@tabulatealign{3},% % \s!default=>\def\@@tabulatealign{0},% % \s!unknown=>\def\@@tabulatealign{0}]% \let\pretabskip\!!zeropoint \def\postabskip{.5\tabulateunit}% \global\tabulatecolumns\zerocount \global\nofautotabulate\zerocount \global\noftabulatelines\zerocount \totalnoftabulatelines\noftabulatelines \minusnoftabulatelines\noftabulatelines \global\tabulatepwidth\zeropoint \global\tabulateequalfalse \resettabulatepheight \ifinsidesplitfloat \donetrue \else\ifinsidefloat \donefalse \else \donetrue \fi\fi \ifdone \chardef\tabulaterepeathead\executeifdefined{\??tt:\c!header:\tabulateparameter\c!header}\zerocount % \processaction % [\tabulateparameter\c!header] % [\v!repeat=>\let\tabulaterepeathead\plusone, % \v!text=>\let\tabulaterepeathead\plustwo]% \fi \unexpanded \def\NC{\tabulatenormalcolumn0}% \unexpanded \def\RC{\tabulatenormalcolumn1}% \unexpanded \def\HC{\tabulatenormalcolumn2}% \unexpanded \def\EQ{\tabulateequalcolumn 0}% \unexpanded \def\RQ{\tabulateequalcolumn 1}% \unexpanded \def\HQ{\tabulateequalcolumn 2}% \unexpanded \def\NG{\NC\handletabulatecharalign}% \unexpanded \def\NN{\NC\handletabulatedigits}% new, undocumented, test first \unexpanded \def\ND{\NC\handletabulatedigits}% same, for old times sake \def\tabulaterule{\HR}% a rule with lineheight \def\tabulateline{\HL}% just a spaced rule \def\tabulateautorule{\doHR\plusone}% \def\tabulateautoline{\doHL\plusone}% \def\HR{\doHR\zerocount} \def\HL{\doHL\zerocount} \unexpanded \def\NR % next row {\global\advance\noftabulatelines\plusone \global\tabulatefirstflushedfalse \global\tabulateequalfalse \global\tabulatecolumn\zerocount \resettabulatepheight \unskip\unskip\crcr\flushtabulated \TABLEnoalign {\the\everyaftertabulaterow}% \TABLEnoalign {\iftolerantTABLEbreak\else \ifconditional\tabulatesomeamble \ifcase\tabulaterepeathead \else \allowbreak \fi \fi \ifnum\noftabulatelines=\plusone \dotabulatenobreak \else\ifnum\noftabulatelines=\minusnoftabulatelines \ifnum\tabulatemaxplines<\plustwo \dotabulatenobreak \else \allowbreak % needed with pbreak prevention \fi \else \allowbreak % needed with pbreak prevention \fi\fi \fi \global\tabulatefirstflushedfalse}}% \let\HL\empty % not needed \let\SR\NR \let\AR\NR \let\FL\empty \let\FR\NR \let\ML\empty \let\MR\NR \let\LL\empty \let\LR\NR \let\doHR\gobbleoneargument \let\doHL\gobbleoneargument \global\let\flushtabulated\empty % \let\savedbar|\let|\nexttabulate \tabskip\zeropoint \ifdim\tabulateparameter\c!margin>\zeropoint \!!toksa{&\flushtabulateindent\strut##% \tabskip\tabulateparameter\c!margin\strut &##\tabskip\zeropoint}% \else \!!toksa{&\flushtabulateindent\strut##% &##\tabskip\zeropoint}% \fi \tabulatewidth\zeropoint % |#1X|\relax \nexttabulate #1X|\relax \scratchcounter\tabulatecolumns \multiply\scratchcounter3% \advance\scratchcounter4% \edef\totaltabulatecolumns{\the\scratchcounter}% \tabulatewidth\zeropoint % \dorecurse\tabulatecolumns % can be made faster % {\doifundefinedelse{\@@tabbox@@\recurselevel} % {\expandafter\newbox\csname\@@tabbox@@\recurselevel\endcsname}% % {\global\setbox\csname\@@tabbox@@\recurselevel\endcsname\emptybox}}% \initializetableboxes\tabulatecolumns \appendtoks&##\to\!!toksa \appendtoks\global\advance\tabulatecolumn\plusone\to\!!toksa \appendtoks\NC\unskip\unskip\crcr\flushtabulated\to\tabulatedummy % no count \global\tabulatecolumn\zerocount \resettabulatepheight \def\bskip {\setbox\tabulatebox\vbox\bgroup \global\let\tabulatehook\notabulatehook}% \def\eskip {\par\egroup \global\let\tabulatehook\dotabulatehook}% \def\xbskip {\hbox\bgroup\vbox\bgroup \global\let\tabulatehook\notabulatehook}% \def\xeskip {\par\egroup\egroup \global\let\tabulatehook\dotabulatehook}% % \let|\savedbar \global\let\tabulatehook\dotabulatehook \doifvalue{\??tt\currenttabulate\c!indenting}\v!no\forgetparindent \ifinsidefloat \let\tabulateindent\!!zeropoint \else \setlocalhsize \hsize\localhsize \fi \dontcomplain \forgetall % hm, interference with \forgetparindent ^^^ probably bug, to be solved \setbox0\vbox % outside \if because of line counting {\notesenabledfalse \let\tabulateindent\!!zeropoint \trialtypesettingtrue % very important \@EA\halign\@EA{\the\!!toksa\crcr\fulltabulatecontent\crcr}}% \ifnum\nofautotabulate>\zerocount % so, even if the natural size is larger, in the final % run, we force the calculated width \tabulatewidth\hsize \advance\tabulatewidth -\wd0 \advance\tabulatewidth -\tabulatepwidth \ifnum\nofautotabulate>\zerocount \divide\tabulatewidth \nofautotabulate\relax \fi \fi \def\xbskip{\bskip}% \def\xeskip{\eskip}% \ifsplittabulate \splittopskip\strutht \global\let\flushtabulatedindeed\empty \long\def\bbskip {\ifvoid\tablebox\tabulatecolumn \ifx\flushtabulatedindeed\empty\else \setbox0\hbox \fi \fi}% \def\bskip {\ifvoid\tablebox\tabulatecolumn \global\setbox\tablebox\tabulatecolumn\vbox \bgroup \global\let\tabulatehook\notabulatehook \ifautotabulate\hsize\tabulatewidth\fi % \begstrut % interferes with pre-\pars % evt: \appendtoks\begstrut\to\everypar \ignorespaces \def\eskip {\par\egroup \settabulatepheight \global\let\tabulatehook\dotabulatehook \splitofftabulatebox}% \else \let\eskip\empty \dontcomplain \global\let\tabulatehook\dotabulatehook \expandafter\splitofftabulatebox \fi}% \gdef\flushtabulated {\TABLEnoalign % noalign % no interference ! {\global\let\flushtabulatedindeed\empty \global\tabulatecolumn\zerocount \handletabulatepbreak \dorecurse\tabulatecolumns % was: \noftabcolumns {\ifvoid\tablebox\recurselevel\else \gdef\flushtabulatedindeed{\the\tabulatedummy}% \fi}% \global\tabulatefirstflushedtrue}% \flushtabulatedindeed}% \else % tabhook op alles ? \def\bskip {\vtop\bgroup \ifautotabulate\hsize\tabulatewidth\fi % \begstrut % interferes with pre-\pars % evt: \appendtoks\begstrut\to\everypar \ignorespaces}% \def\eskip % vertical strut added august 2003 {\par\verticalstrut\vskip-\struttotal\egroup}% \fi \totalnoftabulatelines\noftabulatelines \minusnoftabulatelines\numexpr\noftabulatelines+\minusone\relax \global\noftabulatelines\zerocount \def\doHL##1% ##1 ignored {\TABLEnoalign {\csname \ifnum\noftabulatelines=\zerocount F\else \ifnum\noftabulatelines=\totalnoftabulatelines L\else M\fi\fi L\endcsname}}% \def\doHR##1% horizontal rule line (break untested) {\TABLEnoalign {\globallet\TABLEautoline\dotabulatelinerule \ifcase##1\or \ifnum\noftabulatelines=\zerocount \gdef\TABLEautoline{\TABLEnoalign{}}% \else\ifnum\noftabulatelines=\totalnoftabulatelines \gdef\TABLEautoline{\TABLEnoalign{}}% \fi\fi \fi \dotabulatenobreak}% \TABLEautoline \TABLEnoalign {\nobreak \ifx\TABLEautoline\dotabulatelinerule\kern-\lineheight\fi \ifnum\noftabulatelines=\totalnoftabulatelines \@EA\dotabulatenobreak \else \@EA\allowbreak \fi}% \TABLEautoline \TABLEnoalign {\dotabulatenobreak}}% \doifelsevalue{\??tt\currenttabulate\c!rule}\v!line {\let\HL \HR \let\tabulateautoline\tabulateautorule \let\tabulateline \tabulaterule}% {\def\HL{\doHL\zerocount}}% \def\tablebaselinecorrection {\def\dobaselinecorrection {\vskip-\prevdepth \vskip\strutdp \vskip\strutdp}% \baselinecorrection}% \def\FL{\TABLEnoalign {\ifinsidefloat\else \doifemptyvalue{\??tt\currenttabulate\c!before} % no expansion {\tablebaselinecorrection}% \fi \dotabulaterule \dotabulatenobreak \dotabulateruleseperator \prevdepth\strutdp \dotabulatenobreak}}% \def\ML{\TABLEnoalign {\dotabulateruleseperator \dotabulaterule \ifnum\noftabulatelines>\plusone \ifnum\noftabulatelines<\minusnoftabulatelines % \vskip \topskip\allowbreak \vskip-\topskip \vskip1\topskip\allowbreak\vskip-1\topskip \vskip-\tabulateparameter\c!rulethickness \dotabulaterule \fi \fi \dotabulateruleseperator}}% \def\LL{\TABLEnoalign {\dotabulatenobreak \dotabulateruleseperator \dotabulatenobreak \dotabulaterule \ifinsidefloat\else \doifemptyvalue{\??tt\currenttabulate\c!after} % no expansion {\vskip\strutdp \verticalstrut \vskip-\struttotal}% \fi}}% \let\tabulatepass\plustwo % \ifcase\tabulaterepeathead \ifinsidesplitfloat \setbox\tabulatebox\vbox \bgroup \else \startframedcontent[\tabulateparameter\c!frame]% \fi \else \setbox\tabulatebox\vbox \bgroup \fi % \@EA\halign\@EA{\the\!!toksa\crcr\fulltabulatecontent\crcr}% \prevdepth\strutdp % nog eens beter, temporary hack \doifvalue{\??tt\currenttabulate\c!distance}\v!grid {\vskip-\strutdp}% experimental tm-prikkels % \ifcase\tabulaterepeathead \ifinsidesplitfloat \egroup \splittabulatebox\tabulatebox \else \stopframedcontent \fi \else \egroup \splittabulatebox\tabulatebox \fi % \egroup \ifinsidefloat \else \tabulateparameter\c!after \fi \egroup} \egroup % \setuptabulate[split=yes,header=text,title=Vervolg van Tabel] % % % \starttabulatehead % % \NC test \NC hans\NC \NR % % \stoptabulatehead % % \starttabulate % \NC test \NC \input tufte \relax \NC \NR % \NC test \NC \input knuth \relax \NC \NR % \NC test \NC \input knuth \relax \NC \NR % \NC test \NC \input tufte \relax \NC \NR % \NC test \NC \input tufte \relax \NC \NR % \NC test \NC \input tufte \relax \NC \NR % \stoptabulate % \def\splittabulatebox#1% #1 <> 0/2 / derived from the one in core-ntb.tex % {\ifinsidefloat % \unvbox#1% % \else % \ifcase\tabulaterepeathead\or % \setbox2\copy#1% % \setbox2\vsplit2 to \lineheight % \setbox2\vbox{\unvbox2}% % \fi % \doloop % {\setbox0\vsplit#1 to \onepoint % \lineheight % \ifdim\pagegoal<\maxdimen % \donetrue % \else\ifdim\pagetotal=\zeropoint % \donetrue % \else % \donefalse % \fi\fi % \ifdone % \setbox0\vbox{\unvbox0}% % \dimen0\pagetotal % \advance\dimen0\dp0 % \advance\dimen0\ht0 % \ifdim\dimen0>\pagegoal % \bgroup \page \egroup % make sure that local vars are kept % \ifcase\tabulaterepeathead\or % \unvcopy2 % \or % \hbox{\strut\tabulateparameter\c!title}% % \fi % \fi % \fi % % test this on icare checklists / quite hacky ! ! ! % \ifdim\ht0>\tabulateparameter\c!rulethickness\else % \kern-2\ht0 % brrrr % \fi % % % \unvbox0 % \allowbreak % \ifvoid#1 \exitloop \fi}% % \fi} \def\splittabulatebox#1% #1 <> 0/2 / derived from the one in core-ntb.tex {\ifinsidesplitfloat \dosplittabulatebox#1% \else\ifinsidefloat \unvbox#1% \else \dosplittabulatebox#1% \fi\fi} \def\dosplittabulatebox#1% {\resettsplit \def\tsplitminimumfreelines{2}% \def\tsplitminimumfreespace{0pt}% \setbox\tsplitcontent\box#1% \ifcase\tabulaterepeathead\or \setbox\tsplithead\vsplit\tsplitcontent to \lineheight \setbox\tsplithead\vbox{\unvbox\tsplithead}% \or \setbox\tsplithead\vbox{\hbox{\strut\tabulateparameter\c!title}}% \fi \handletsplit} %D \starttyping %D \setuptabulate[split=no,rule=line] %D %D \starttabulate %D \NC tufte \NC \input tufte \NC \NR \tabulateautorule %D \NC tufte \NC \input tufte \NC \NR \tabulateautorule %D \NC tufte \NC \input tufte \NC \NR \tabulateautorule %D \NC tufte \NC \input tufte \NC \NR \tabulateautorule %D \NC tufte \NC \input tufte \NC \NR \tabulateautorule %D \NC tufte \NC \input tufte \NC \NR \tabulateautorule %D \stoptabulate %D \stoptyping % \starttabulatie[|mc|] % \NC \digits{100.000,00} \NC\NR % \NC \digits{@10.000,00} \NC\NR % \NC \digits{@@@.100,00} \NC\NR % \NC \digits{@@@.@10,@@} \NC\NR % \NC \digits{@@@.@@1,@@} \NC\NR % \stoptabulatie % % \starttabulatie[|mc|] % \ND 100.000,00 \NC\NR % \ND @10.000,00 \NC\NR % \ND @@@.100,00 \NC\NR % \ND @@@.@10,@@ \NC\NR % \ND @@@.@@1,@@ \NC\NR % \stoptabulatie % % \starttabulatie[|c|] % \ND $100.000,00$ \NC\NR % \ND $@10.000,00$ \NC\NR % \ND $@@@.100,00$ \NC\NR % \ND $@@@.@10,@@$ \NC\NR % \ND $@@@.@@1,@@$ \NC\NR % \stoptabulatie % % \starttabulatie[|c|] % \NC $\digits 100.000,00 $ \NC\NR % \NC $\digits @10.000,00 $ \NC\NR % \NC $\digits @@@.100,00 $ \NC\NR % \NC $\digits @@@.@10,@@ $ \NC\NR % \NC $\digits @@@.@@1,@@ $ \NC\NR % \stoptabulatie % % \starttabulatie[|c|] % \NC \digits $100.000,00$ \NC\NR % \NC \digits $@10.000,00$ \NC\NR % \NC \digits $@@@.100,00$ \NC\NR % \NC \digits $@@@.@10,@@$ \NC\NR % \NC \digits $@@@.@@1,@@$ \NC\NR % \stoptabulatie \def\setuptabulate {\dotripleempty\dosetuptabulate} \def\dosetuptabulate[#1][#2][#3]% {\ifthirdargument \getparameters[\??tt#1::#2][#3]% \else\ifsecondargument \getparameters[\??tt#1::][#2]% \else \getparameters[\??tt\v!tabulate::][#1]% \fi\fi} \setuptabulate [\c!unit=1em, EQ={:}, \c!frame=\v!off, \c!bodyfont=, \c!rule=\v!normal, \c!rulecolor=, \c!rulethickness=\linewidth, \c!inner=, \c!before=\blank, \c!after=\blank, \c!distance={\v!depth,\v!medium}, \c!align=\v!normal, \c!margin=\!!zeropoint, \c!split=\v!auto, \c!header=\v!yes, \c!title=, \c!indenting=\v!no] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/sort-lan.mkii0000644000175000017500000001404114536300610024712 0ustar hillehille%D \module %D [ file=sort-lan, %D version=2005.08.08, %D title=\CONTEXT\ Sort Macros, %D subtitle=Language Definitions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % for testing: \startmode[sortorder-en] \exportsortexpansion{aacute}{a+1} \exportsortexpansion{Aacute}{A+2} \exportsortexpansion{agrave}{a+1} \exportsortexpansion{Agrave}{A+2} \stopmode %D This module replaces existing sort key handling and is meant to be %D used with the new texutil functionality. Here we define the language %D specific sort rules. % slovenian % % a-c, ccaron, cacute, d, dstroke, e-s, scaron, t-z, zcaron % \enableregime[utf] % \mainlanguage[sl] % \starttext % \ccaron\index{\ccaron\space 1} % \Ccaron\index{\Ccaron\space 1} % č\index{č 2} % Č\index{Č 2} % \v c\index{\v c 3} % \v C\index{\v C 3} % \placeindex % \stoptext % \startmode[sortorder-sl] % \exportsortexpansion {ccaron} {cz} % \exportsortexpansion {cacute} {czz} % \exportsortexpansion {dstroke} {dz} % \exportsortexpansion {scaron} {sz} % \exportsortexpansion {zcaron} {zz} % \exportsortdivision {cz} {ccaron} % \exportsortdivision {czz} {cacute} % \exportsortdivision {dz} {dstroke} % \exportsortdivision {sz} {scaron} % \exportsortdivision {zz} {zcaron} % \stopmode % % \startmode[sortorder-sl] % \exportsortexpansion {ccaron} {c+1} % \exportsortexpansion {cacute} {c+2} % \exportsortexpansion {dstroke} {d+1} % \exportsortexpansion {scaron} {s+1} % \exportsortexpansion {zcaron} {z+1} % % \exportsortdivision {c+1} {ccaron} % \exportsortdivision {c+2} {cacute} % \exportsortdivision {d+1} {dstroke} % \exportsortdivision {s+1} {scaron} % \exportsortdivision {z+1} {zcaron} % \stopmode \startmode[sortorder-sl] \exportsortrule {ccaron} {c+1} \exportsortrule {cacute} {c+2} \exportsortrule {dstroke} {d+1} \exportsortrule {scaron} {s+1} \exportsortrule {zcaron} {z+1} \stopmode % finnish % % a-u, v+w sorted together, x-z, aring, adiaeresis, odiaeresis \startmode[sortorder-fi] \exportsortrule {v} {w} \exportsortrule {aring} {z+1} \exportsortrule {adiaeresis} {z+2} \exportsortrule {odiaeresis} {z+3} \stopmode % swedish % % a-z, aring, adiaeresis, odiaeresis % \mainlanguage[sv] % \starttext % a\index{a} % a\index{a} % z\index{z} % z\index{z} % q\index{q} % q\index{q} % \index{} % \index{} % \index{} % \index{} % \index{} % \index{} % \index{} % \index{} % \index{} % \aring\index{\aring} % \adiaeresis\index{\adiaeresis} % \odiaeresis\index{\odiaeresis} % A\index{A} % \index{} % \index{} % \index{} % \Aring\index{\Aring} % \Adiaeresis\index{\Adiaeresis} % \Odiaeresis\index{\Odiaeresis} % \placeindex % \stoptext \startmode[sortorder-sv] \exportsortrule {aring} {z+1} \exportsortrule {adiaeresis} {z+2} \exportsortrule {odiaeresis} {z+3} \stopmode % norwegian, danish % % a-z, aeligature, oslash, aring \startmode[sortorder-no,sortorder-da] \exportsortrule {aeligature} {z+1} \exportsortrule {oslash} {z+2} \exportsortrule {aring} {z+3} \stopmode % islandic % % a, aacute, b, c, d, eth, e, eacute, f-i, iacute, j-o, oacute, p-u, uacute, v, w (?), x, y, yacute, z, aeligature, oslash, thorn % estonian % % a-s, scaron, z, zcaron, t-w, otilde, adiaeresis, odiaeresis, udiaeresis, x, y % czech % % a) make a single group for: "a", "", "A", "" % b) make a different two groups for: "c", "C" and "c", "C" % c) sorting rule: "A" < "" < "a" < "" < "C" < "c" < "C" < "c" % d) sorting rule: "h" < "ch" < "i" ("c" < "h") \gdef\czsortdivisionch{ch} \gdef\czsortdivisionCh{Ch} \startmode[sortorder-cz] \exportsortexpansion {aacute} {a} \exportsortexpansion {Aacute} {A} \exportsortexpansion {ccaron} {c+1} \exportsortexpansion {Ccaron} {C+1} \exportsortdivision {c+1} {ccaron} \exportsortexpansion {dcaron} {d} \exportsortexpansion {Dcaron} {D} %\exportsortdivision {d+1} {dcaron} \exportsortexpansion {eacute} {e} \exportsortexpansion {Eacute} {E} \exportsortexpansion {ecaron} {e} \exportsortexpansion {Ecaron} {E} \exportsortreduction {ch} {h+1} \exportsortexpansion {ch} {h+1} \exportsortreduction {Ch} {H+1} \exportsortexpansion {Ch} {H+1} \exportsortdivision {h+1} {czsortdivisionch} \exportsortexpansion {iacute} {i} \exportsortexpansion {Iacute} {I} \exportsortexpansion {ncaron} {n} \exportsortexpansion {Ncaron} {N} %\exportsortdivision {n+1} {ncaron} \exportsortexpansion {oacute} {o} \exportsortexpansion {Oacute} {O} \exportsortexpansion {rcaron} {r+1} \exportsortexpansion {Rcaron} {R+1} \exportsortdivision {r+1} {rcaron} \exportsortexpansion {scaron} {s+1} \exportsortexpansion {Scaron} {S+1} \exportsortdivision {s+1} {scaron} \exportsortexpansion {tcaron} {t} \exportsortexpansion {Tcaron} {T} %\exportsortdivision {t+1} {tcaron} \exportsortexpansion {uacute} {u} \exportsortexpansion {Uacute} {U} \exportsortexpansion {uring} {u} \exportsortexpansion {Uring} {U} \exportsortexpansion {yacute} {y} \exportsortexpansion {Yacute} {Y} \exportsortexpansion {zcaron} {z+1} \exportsortexpansion {Zcaron} {Z+1} \exportsortdivision {z+1} {zcaron} \stopmode % Polish: \startmode[sortorder-pl] \exportsortrule {aogonek} {a+1} \exportsortrule {cacute} {c+1} \exportsortrule {eogonek} {e+1} \exportsortrule {lstroke} {l+1} \exportsortrule {nacute} {n+1} \exportsortrule {oacute} {o+1} \exportsortrule {sacute} {s+1} \exportsortrule {zacute} {z+1} \exportsortrule {zdotaccent} {z+2} \stopmode \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-def.mkii0000644000175000017500000007507114536300610024653 0ustar hillehille%D \module %D [ file=spec-def, %D version=1996.01.25, %D title=\CONTEXT\ Special Macros, %D subtitle=Definitions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module used to be integrated in \type {spec-ini}, %D but testing optimization is more convenient this way. \writestatus{loading}{ConTeXt Special Macros / Definitions} \unprotect %D Ok, messy, but we need this because we load drivers before %D references. \newif\ifcollectreferenceactions %D The following libraries are defined. Two postscript %D drivers are supported, as well as two mechanisms for %D interactive texts. %D %D \startlinecorrection %D \starttable[|l|l|l|l|l|] %D \HL %D \NC \bf file \NC %D \bf name \NC %D \bf calls \NC %D \bf support \NC %D \bf program / driver \NC\SR %D \HL %D \NC \tttf spec-tex \NC %D \tttf tex \NC %D \NC %D Generic \TEX\ (\DVI) \NC %D (default) \NC\FR %D \NC \tttf spec-tpd \NC %D \tttf \PDF \NC %D \NC %D Han The Thanh \NC %D (pdftex) \NC\MR %D \NC \tttf spec-ps \NC %D \tttf postscript \NC %D \NC %D Adobe PostScript \NC %D (default) \NC\MR %D \NC \tttf spec-tr \NC %D \tttf rokicki \NC %D \tttf postscript \NC %D Thomas Rokicki \NC %D (dvips) \NC\MR %D \NC \tttf spec-yy \NC %D \tttf yandy \NC %D \tttf postscript \NC %D YandY \NC %D (dvipsone, dviwindo) \NC\MR %D \NC \tttf spec-pdf \NC %D \tttf pdf \NC %D \NC %D Adobe PDF \NC %D (Acrobat) \NC\MR %D \NC \tttf spec-win \NC %D \tttf dviwindo \NC %D YandY \NC %D (dviwindo) \NC\MR %D \NC \tttf spec-htm \NC %D \tttf html \NC %D \NC %D HTML V 2.0 \NC %D (dvips) \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D \macros %D {dostartgraymode,dostopgraymode, %D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode} %D %D Switching to and from color can be done in two ways: %D %D \startitemize[packed,n] %D \item insert driver specific commands %D \item pass instructions to the output device %D \stopitemize %D %D The first approach is more general and lays the %D responsibility at the driver side. Probably due to the fact %D that \TEX\ does not directly support color, we have been %D confronted for the last few years with changing special %D definitions. The need for support depends on how a macro %D package handles colored text that crosses the page boundary. %D Again, there are two approaches. %D %D \startitemize[packed,n] %D \item let \TEX\ do the job %D \item let the driver handle things %D \stopitemize %D %D The first approach is as driver independant as possible and %D can easily be accomplished by using \TEX's mark mechanism. %D In \CONTEXT\ we follow this approach. More and more, drivers %D are starting to support color, including stacking them. %D %D Colors as well as grayscales can be represented in scales %D from~0 to~1. When drivers use values in the range 0..255, %D this value has to be adapted in the translation process. %D Technically it's possible to get a grayscale from combining %D colors. In the \cap{RGB} color system, a color with Red, %D Green and Blue components of 0.80 show the same gray as a %D Gray Scale specified 0.80. The \cap{CMYK} color system %D supports a Black component apart from Cyan, Magenta and %D Yellow. %D %D Depending on the target format, color support differs from %D gray support. PostScript for example offers different %D operators for setting gray and color. This is because %D printing something using three colors is someting else than %D printing with just black. %D %D In \CONTEXT\ we have implemented a color subsystem that %D supports the use of well defined colors that, when printed %D in black and white, still can be distinguished. This %D approach enables us to serve both printed and electronic %D versions, using colored text and illustrations. More on the %D fundamentals of this topic can be found in the \cap{MAPS} of %D the Dutch User Group, 14 (95.1). %D %D To satisfy all those needs, we define four specials which %D supply enough information for drivers to act upon. We %D could have used more general commands with the keywords %D 'rgb' and 'gray', but because these specials are used often, %D we prefer the more direct and shorter alternative. %D %D We start with the installation of color and grayscale %D specials. The values are in the range 0..1 (e.g. 0.25). %D %D \starttyping %D \dostartgraymode {gray} ... \dostopgraymode %D \dostartrgbcolormode {red} {green} {blue} ... \dostopcolormode %D \dostartcmykcolormode {cyan} {magenta} {yellow} {black} ... \dostopcolormode %D \dostartgraycolormode {gray} ... \dostopcolormode %D \stoptyping %D %D Because we can expect conflicts between drivers, we %D implement them as category \type{or}. In previous versions %D of \DVIPSONE\ the use of their color||specials did not %D interfere with the PostScript ones, but recent versions do. \installspecial [\dostartgraymode] [or] [1] \installspecial [\dostopgraymode] [or] [0] \installspecial [\dostartrgbcolormode] [or] [3] \installspecial [\dostartcmykcolormode] [or] [4] \installspecial [\dostartgraycolormode] [or] [1] \installspecial [\dostopcolormode] [or] [0] %D New and experimental: \installspecial [\dostartspotcolormode] [or] [2] \installspecial [\doregisterrgbspotcolor] [or] [7] \installspecial [\doregistercmykspotcolor] [or] [8] \installspecial [\doregistergrayspotcolor] [or] [5] \installspecial [\doregisterrgbindexcolor] [or] [7] \installspecial [\doregistercmykindexcolor] [or] [8] \installspecial [\doregistergrayindexcolor] [or] [5] \installspecial [\doregisterspotcolorname] [or] [2] \installspecial [\dostartnonecolormode] [or] [0] \installspecial [\doregisternonecolor] [or] [0] %D For some drivers, the stop special is of no use and can %D simply call the start one with zero arguments. %D \macros %D {dogetfiguresize,doinsertfile,doinsertMPfile} %D %D Probably the most problematic special is the following %D one. Because we want to be able to support different %D schemes, we pass a lot of data to it. %D %D The support of inserting files (like illustrations) comes in %D many flavors. Some drivers use scales, some take dimensions. %D Some need offsets and others act on stored characteristics. %D They need one thing in common: a filename. Although separate %D specials for different formats sometimes are more clear, we %D decided to combine them all in one: %D %D \starttyping %D \doinsertfile {type,method} {file,label} %D {xscale} {yscale} {x} {y} {w} {h} %D {options} %D \stoptyping %D %D The scale is given percents, the other values are base %D points. %D %D Per 2006 we have simplified this model. The amount of drivers %D is not growing and all support scaling. We pass variables via %D Driver specific macros. %D %D \starttyping %D \doinsertfile %D \stoptyping %D %D The special is implemented as \type{or}. Because \DVIPSONE\ %D understands them all, a chain of alternatives would generate %D multiple occurrences of the same illustration. %D %D When option 1 is passed, the viewers is asked to present a %D preview, like the first frame of a movie. \installspecial [\dogetfiguresize][or] [0] % now a special \installspecial [\doinsertfile] [or] [0] % [9] \installspecial [\doinsertMPfile] [or] [1] % speed up %D No start||stop construction is needed here, because there in %D no further interference of \TEX. All dimensions are output %D in points and scales as a number, where 100 equal 100\%. (We %D used to pass scaled points). %D \macros %D {doinsertsoundtrack} %D %D Sounds are (for the moment) just files with %D associated options. %D %D \starttyping %D \doinsertsoundtrack {file} {label} {options} %D \stoptyping \installspecial [\doinsertsoundtrack] [or] [3] %D \macros %D {dogetnofinsertpages} %D %D Some file formats support more than one page, like \PDF, %D and for special applications, one may want to have access %D to the total number of pages. %D %D \starttyping %D \dogetnofinsertpages{filename} %D \stoptyping %D %D The number is also available after the insert is placed, %D since inclusion may take place immediate when an insert is %D called upon. \def\nofinsertpages{1} % one of the few 'talk backs' \installspecial [\dogetnofinsertpages] [or] [1] %D \macros %D {dostartrotation, %D dostoprotation} %D %D We support rotation with the special: %D %D \starttyping %D \dostartrotation {angle} ... \dostoprotation %D \stoptyping %D %D For the moment these specials are installed as %D category \type{or}. \installspecial [\dostartrotation] [or] [1] \installspecial [\dostoprotation] [or] [0] %D \macros %D {dostartscaling, %D dostopscaling} %D %D Scaling is also supported: %D %D \starttyping %D \dostartscaling {x} {y} ... \dostopscaling %D \stoptyping %D %D Like the previous one, these specials are of category %D \type{or}. \installspecial [\dostartscaling] [or] [2] \installspecial [\dostopscaling] [or] [0] %D \macros %D {dostartmirroring, %D dostopmirroring} %D %D And indeed, mirroring is there too: %D %D \starttyping %D \dostartmirroring {x} {y} ... \dostopmirroring %D \stoptyping %D %D Again these specials are installed as category \type{or}. \installspecial [\dostartmirroring] [or] [0] \installspecial [\dostopmirroring] [or] [0] %D \macros %D {dostartnegative, %D dostopnegative} %D %D When producing output for an image setter, negating the %D page comes into view. Here are the tools: \installspecial [\dostartnegative] [or] [0] \installspecial [\dostopnegative] [or] [0] %D \macros %D {dostartoverprint, %D dostopoverprint} %D %D Rudimentary overprint (knockout) control is implemented %D using: \installspecial [\dostartoverprint] [or] [0] \installspecial [\dostopoverprint] [or] [0] %D The following two specials are used in for instance \type %D {\vadjust}'d margin material inside colored paragraphs. \installspecial [\dostartgraphicgroup] [or] [0] \installspecial [\dostopgraphicgroup ] [or] [0] %D \macros %D {doselectfirstpaperbin, %D doselectsecondpaperbin} %D %D Here are some very printer||specific ones. No further %D comment. \installspecial [\doselectfirstpaperbin] [or] [0] \installspecial [\doselectsecondpaperbin] [or] [0] %D \macros %D {doovalbox} %D %D When we look at the implementation, this is a complicated %D one. There are seven arguments. %D %D \starttyping %D \doovalbox {w} {h} {d} {linewidth} {radius} {stroke} {fill} {variant} %D \stoptyping %D %D This command has to return a \type{\vbox} which can be used %D to lay over another one (with text). The radius is in %D degrees, the stroke and fill are~\type{1} (true) of~\type{0} %D (false). \installspecial [\doovalbox] [or] [8] %D \macros %D {dostartclipping,dostopclipping} %D %D Clipping is implemented in such a way that an arbitrary %D can be fed. %D %D \starttyping %D \dostartclipping {pathname}{width} {height} %D \dostopclipping %D \stoptyping %D %D \installspecial [\dostartclipping] [or] [3] \installspecial [\dostopclipping] [or] [0] %D \macros %D {dosetupidentity} %D %D We can declare some characteristics of the document with %D %D \starttyping %D \dosetupidentity {title} {subject} {author} {creator} {date} {keys} %D \stoptyping %D %D All data is in string format. \installspecial [\dosetupidentity] [and] [6] %D \macros %D {dosetuppaper} %D %D This special can be used to tell the driver what page size %D to use. The special takes three arguments. %D %D \starttyping %D \dosetuppaper {type} {width} {height} %D \stoptyping %D %D The type is one of the common identifiers, like A4, A5 or %D B2. \installspecial [\dosetuppaper] [and] [3] %D \macros %D {dosetupprinter} %D %D Some drivers enable the user to specify the paper type %D used and/or page dimensions to be taken into account. %D %D \starttyping %D \dosetupprinter {type} {hoffset} {voffset} {width} {height} %D \stoptyping %D %D The first argument is one of \type{letter}, \type{legal}, %D \type{A4}, \type{A5} etc. The dimensions are in %D basepoints. \installspecial [\dosetupprinter] [and] [5] %D \macros %D {dosetupopenaction, dosetupclosaction, %D dosetupopenpageaction, dosetupclospageaction, %D dosetupinteraction, %D dosetupscreen, %D dosetupviewmode} %D %D Here come some obscure interactive commands. Probably the %D specs will change with the development of the macros that %D use them. %D %D The first ones can be used to set up the interaction. %D %D \starttyping %D \dosetupinteraction %D \stoptyping %D %D Normally this command does nothing but giving a message %D that some scheme is supported. %D %D \starttyping %D \dosetupstartaction %D \dosetupstopaction %D \stoptyping %D %D These two setup the actions to be executed when the document %D is opened and closed. %D %D The next commands sets up the page and screen. They are %D kind of related. %D %D \starttyping %D \dosetuppage {hoffset} {voffset} {width} {height} {options} %D \dosetupscreen {hoffset} {voffset} {width} {height} {options} %D \stoptyping %D %D The first four arguments are in points. Option~1 results in a %D full screen launch. %D %D \starttyping %D \dosetuppageview {keyword} %D \stoptyping %D %D For the moment we only support \type{fit}. \installspecial [\dosetupinteraction] [and] [0] \installspecial [\dosetupopenaction] [and] [0] \installspecial [\dosetupscreen] [and] [5] \installspecial [\dosetuppageview] [and] [1] \installspecial [\dosetupcloseaction] [and] [0] \installspecial [\dosetupopenpageaction] [and] [0] \installspecial [\dosetupclosepageaction] [and] [0] \installspecial [\dosetuprenderingopenpageaction] [and] [0] \installspecial [\dosetuprenderingclosepageaction] [and] [0] % new, yet undocumented, replaces \dosetupscreen \installspecial [\dosetupcropbox] [and] [4] \installspecial [\dosetuptrimbox] [and] [4] \installspecial [\dosetupartbox] [and] [4] \installspecial [\dosetupbleedbox] [and] [4] %D \macros %D {dostarthide, %D dostophide} %D %D Not every part of the screen is suitable for paper. Menus %D for instance have no meaning on an non||interactive medium. %D These elements are hidden by means of: %D %D \starttyping %D \dostarthide %D \dostophide %D \stoptyping \installspecial [\dostarthide] [or] [0] \installspecial [\dostophide] [or] [0] %D \macros %D {dostartgotolocation, dostopgotolocation, %D dostartgotorealpage, dostopgotorealpage} %D %D When we want to support hypertext buttons, again we have %D to deal with two concepts. %D %D \startitemize[packed,n] %D \item let \TEX\ highlight the text %D \item let the driver show us where to click %D \stopitemize %D %D The first approach is the most secure one. It gives us %D complete control over the visual appearance of hyper %D buttons. The second alternative lets the driver guess what %D part of the text needs highlighting. As long as we deal with %D not too complicated textual buttons, this is no problem. %D It's even a bit more efficient when we take long mid %D paragraph active regions into account. When we let \TEX\ %D handle active sentences {\em for instance marked like this %D one}, we have to take care of line- and pagebreaks ourselve. %D However, it's no trivial matter to let a driver find out %D where things begin and end. Because most hyperlinks can be %D found in tables of contents and registers, the saving in %D terms of bytes can be neglected and the first approach is a %D clear winner. %D %D The most convenient way of cross||referencing is using named %D destinations. A more simple scheme is using page numbers as %D destinations. Because the latter alternative can often be %D implemented more efficient, and because we cannot be sure %D what scheme a driver supports, we always have to supply a %D pagenumber, even when we use named destinations. %D %D To enable a driver to find out what to make active, we have %D to provide begin and endpoints, so like with color, we use %D pairs of specials. The first scheme can be satisfied with %D proper dimensions of the areas to be made active. %D %D The interactive real work is done by the following four %D specials. The reason for providing the first one with both %D a label and a number, is a result of the quite poor %D implementation of \type{pdfmarks} in version 1.0 of %D Acrobat. Because only pagenumbers were supported as %D destination, we had to provide both labels (\DVIWINDO) and %D pagenumbers (\PDF). Some drivers use start stop pairs. %D %D \starttyping %D \dostartgotolocation {w} {h} {url} {file} {label} {page} %D \dostartgotorealpage {w} {h} {url} {file} {page} %D \stoptyping %D %D Their counterparts are: %D %D \starttyping %D \dostopgotolocation %D \dostopgotorealpage %D \stoptyping %D %D The internal alternative is used for system||generated %D links, the external one for user||generated links. The %D Uniform Resource Locator can be used to let the reader %D surf the net. \installspecial [\dostartgotolocation] [and] [6] \installspecial [\dostopgotolocation] [and] [0] \installspecial [\dostartgotorealpage] [and] [5] \installspecial [\dostopgotorealpage] [and] [0] %D One may wonder why jumps to page and location are not %D combined. By splitting them, we enable macro||packages to %D force the prefered alternative, while on the other hand %D drivers can pick up the alternative desired most. %D \macros %D {dostartgotoJS, doflushJSpreamble} %D %D Rather special is the option to include and execute %D JavaScript code. This is a typical \PDF\ option. %D %D \starttyping %D \dostartgotoJS {w} {h} {script} %D \stoptyping %D %D This not so standard \TEX\ feature should be used with %D care. Preamble scripts are flushed by %D %D \doflushJSpreamble {script} \installspecial [\dostartgotoJS] [and] [3] \installspecial [\dostopgotoJS] [and] [0] \installspecial [\doflushJSpreamble][and] [1] %D \macros %D {dostartthisislocation, dostopthisislocation, %D dostartthisisrealpage, dostopthisisrealpage} %D %D Before we can goto some location or page, we have to tell %D the system where it can be found. Because some drivers %D follow the \SGML\ approach of begin||end tags, we have to %D support pairs. A possible extension to this scheme is %D supplying coordinates for viewing the text. %D %D The opposite commands of \type{\dogotosomething} have only %D one argument: %D %D \starttyping %D \dostartthisislocation {label} %D \dostartthisisrealpage {page} %D \stoptyping %D %D These commands are accompanied by: %D %D \starttyping %D \dostopthisislocation %D \dostopthisisrealpage %D \stoptyping %D %D As with all interactive commands's they are installed as %D \type{and} category specials. \installspecial [\dostartthisislocation] [and] [1] \installspecial [\dostopthisislocation] [and] [0] \installspecial [\dostartthisisrealpage] [and] [1] \installspecial [\dostopthisisrealpage] [and] [0] %D In \CONTEXT\ we don't use the \type{\stopsomething} %D macros because we let \TEX\ take care of typographic %D issues. %D \macros %D {doresetgotowhereever} %D %D These and others need: \installspecial [\doresetgotowhereever] [and] [0] %D \macros %D {dostartexecutecommand, dostopexecutecommand} %D %D The actual behavior of the next pair of commands depends %D much on the viewing engine. Therefore one cannot depend %D too much on their support. %D %D \starttyping %D \dostartexecutecommand {w} {h} {command} {options} %D \stoptyping %D %D At least the next commands are supported (more examples %D can be found in \type {spec-fdf.tex}: %D %D \startlinecorrection\setupalign[middle]\leavevmode %D \starttable[|l|l|] %D \HL %D \NC \bf command \NC \bf action \NC\SR %D \HL %D \NC first \NC go to the first page \NC\FR %D \NC previous \NC go to the previous page \NC\MR %D \NC next \NC go to the next page \NC\MR %D \NC last \NC go to the last page \NC\MR %D \NC backward \NC go back to the link list \NC\MR %D \NC forward \NC go forward in the link list \NC\MR %D \NC print \NC enter print mode \NC\MR %D \NC exit \NC exit viewer \NC\MR %D \NC close \NC close document \NC\MR %D \NC enter \NC enter viewer \NC\MR %D \NC help \NC show help on the viewer \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D %D Options are to be passed as a comma separated list of %D assignments. \installspecial [\dostartexecutecommand] [and] [4] \installspecial [\dostopexecutecommand] [and] [0] %D \macros %D {dostartobject, %D dostopobject, %D doresetobjects, %D doinsertobject} %D %D Reuse of object can reduce the output filesize %D considerably. Reusable objects are implemented with: %D %D \starttyping %D \dostartobject{class}{name}{width}{height}{depth} %D some typeset material %D \dostopobject %D \stoptyping %D %D \starttyping %D \doinsertobject{class}{name} %D \stoptyping %D %D The savings can be huge in interactive texts. The next macro needs %D to be called after a graphic is inserted (in order to clean up %D global references). %D %D \starttyping %D \doresetobjects %D \stoptyping \installspecial [\dostartobject] [or] [5] \installspecial [\dostopobject] [or] [0] \installspecial [\doinsertobject] [or] [2] \installspecial [\doresetobjects] [or] [0] %D \macros %D {doregisterfigure, doregisterfigurecolor} %D %D Images can be objects as well and it's up to the driver to %D handle this. Alternative images are also up to the driver, %D and the next macro tells the driver that the previous image %D is somehow followed by another and that both have to be %D handled together. This is a rather fuzzy model, but for the %D moment it suits its purpose: low res screen versions combined %D with high res printable ones. \installspecial [\doregisterfigure] [or] [2] \installspecial [\doregisterfigurecolor][or] [1] % %D \macros % %D {dogetobjectreference} % %D % %D For very special purposes, one can ask for the internal % %D reference to the object. Beware! % % \installspecial [\dogetobjectreference] [or] [3] % % %D The first argument is the name, the second a macro that % %D gets the associated value. %D \macros %D {dostartrunprogram, dostoprunprogram, %D dostartgotoprofile, dostopgotoprofile, %D dobeginofprofile, %D doendofprofile} %D %D These specials are still experimental. They are not yet %D supported by the programs the way they should be. %D %D {\em --- still undocumented ---} \installspecial [\dostartrunprogram] [and] [4] \installspecial [\dostoprunprogram] [and] [0] \installspecial [\dostartgotoprofile] [and] [3] \installspecial [\dostopgotoprofile] [and] [0] \installspecial [\dobeginofprofile] [and] [4] \installspecial [\doendofprofile] [and] [0] %D \macros %D {doinsertbookmark} %D %D Bookmarks, that is viewer generated tables of contents, are %D a strange phenomena, mainly because \TEX\ can provide %D whatever kind of table in much better quality. \installspecial [\doinsertbookmark] [and] [5] %D This special is called as: %D %D \starttyping %D \doinstallbookmark {level} {nofsubentries} {text} {page} {open} %D \stoptyping %D %D This definition is very \PDF\ oriented, so for more %D information we kindly refer to the \PDF\ manuals. %D \macros %D {dosetpagetransition} %D %D In presentations, fancy page transitions can, at least for a %D short moment, let the audience focus at the screen. Like the %D previous one, this special is very \PDF. %D %D \starttyping %D \dosetpagetransition{dissolve}{0} %D \stoptyping %D %D Transitions have symbolic names, like dissolve, box, split, %D blinds, wipe and glitter. The second argument determines %D the wait time (unless zero). \installspecial [\dosetpagetransition] [or] [2] %D \macros %D {dopresettextfield,dopresetlinefield, %D dopresetchoicefield,dopresetpopupfield,dopresetcombofield, %D dopresetbuttonfield,dopresetcheckfield, %D dopresetradiofield,dopresetradiorecord} %D %D The special drivers are programmed independant from their %D calling macros are thereby use the standard \TEX\ way of %D passing parameters. Unfortunately fields often have more %D than nine characteristics, so we pack some arguments in one. %D %D \starttyping %D \dopresettextfield / \dopresetlinefield %D {name} {width} {height} {default} {length} %D {style,color} {options} {alignment} {actions} %D %D \dopresetchoicefield / \dopresetpopupfield / \dopresetcombofield %D {name} {width} {height} {default} %D {style,color} {options} {values} {actions} %D %D \dopresetpushfield %D {name} {width} {height} {default} %D {options} {values} {actions} %D %D \dopresetcheckfield %D {name} {width} {height} {default} %D {options} {values} {actions} %D %D \dopresetradiofield %D {name} {width} {height} {default} %D {options} {parent} {values} {actions} %D %D \dopresetradiorecord %D {name} {top} {options} {kids} {actions} %D \stoptyping \installspecial [\dopresetlinefield] [or] [9] \installspecial [\dopresettextfield] [or] [9] \installspecial [\dopresetchoicefield] [or] [8] \installspecial [\dopresetpopupfield] [or] [8] \installspecial [\dopresetcombofield] [or] [8] \installspecial [\dopresetpushfield] [or] [7] \installspecial [\dopresetcheckfield] [or] [7] \installspecial [\dopresetradiofield] [or] [8] \installspecial [\dopresetradiorecord] [or] [5] %D \macros %D {dodefinefieldset,dogetfieldset,doiffieldset} %D %D Field sets, used in resetting and submitting, are handled %D by: \installspecial [\dodefinefieldset] [or] [2] \installspecial [\dogetfieldset] [or] [1] \installspecial [\doiffieldset] [or] [2] %D \macros %D {dosetfieldstatus} %D %D For practical reasons we set some field characteristics %D using: %D %D \starttyping %D \dosetfieldstatus {mode} {parent} {kids} {root} %D \stoptyping \installspecial [\dosetfieldstatus] [or] [4] %D with: \def\fieldlonermode {0} % no \chardef here \def\fieldparentmode{1} % no \chardef here \def\fieldchildmode {2} % no \chardef here \def\fieldcopymode {3} % no \chardef here %D \macros %D {doregistercalculationset} %D %D We can define a calculation order list with: %D %D \starttyping %D \doregistercalculationset {set identifier} %D \stoptyping \installspecial [\doregistercalculationset] [or] [1] %D \macros %D {doinsertcomment, doflushcomments} %D %D Not so much out of need, but to be complete, we also %D implement text annotations, so called comment: %D %D \starttyping %D \doinsertcomment %D {title} {width} {height} {color} {open} {symbol} {collect} {data} %D \stoptyping %D %D When enables, comments can be collected and flushed: %D %D \starttyping %D \doflushcomments %D \stoptyping \installspecial[\doinsertcomment] [and] [8] \installspecial[\doflushcomments] [and] [0] %D \macros %D {dosetposition, dosetpositionwhd, dosetpositionplus, %D dosetpositionpapersize} %D %D Not natural to \TEX, but available in \PDFTEX, and by %D means of postprocessed \DVI, we can save and call upon %D positions. %D %D \starttyping %D \dosetposition {identifier} %D \dosetpositionwhd {identifier} {width} {height} {depth} %D \dosetpositionplus {identifier} {width} {height} {depth} {list} %D \dosetpositionpapersize {width} {height} %D \stoptyping %D %D This is one of the few specials where when using \PDFTEX\ %D the driver directly deals with the utility file. %D Support is moved to spec-mis.tex. The whole idea originates %D and was implemented first in \PDFTEX. Later \DVIPDFMX\ %D supported the \CONTEXT\ specific specials and nowadays %D \PDFTEX\ supports this feature in \DVI\ mode and \XETEX\ %D implements it as well. This means that only \ALEPH\ is %D still dependent on specials, but that variant of \TEX\ has %D become obsolete anyway. % \installspecial [\dosetposition] [or] [1] % \installspecial [\dosetpositionwhd] [or] [4] % \installspecial [\dosetpositionplus] [or] [5] % \installspecial [\dosetpositionpapersize] [or] [2] %D \macros %D {dostarttransparency,dostoptransparency} %D %D \starttyping %D \dostarttransparency{fraction}{type} %D \dostoptransparency %D \stoptyping %D %D Although in \CONTEXT\ transparency is closely integrated %D in the color drivers, in the end it is an independent %D feature. \installspecial [\dostarttransparency] [or] [2] \installspecial [\dostoptransparency] [or] [0] %D \macros %D {doattachfile} %D %D \starttyping %D \doattachfile{title}{width}{height}{depth}{color}{symbol}{filename}{source} %D \stoptyping \installspecial [\doattachfile] [or] [8] %D Experimental (properties): \installspecial[\dostartviewerlayer] [or] [1] \installspecial[\dostopviewerlayer] [or] [0] \installspecial[\dodefineviewerlayer] [or] [5] %installspecial[\doflushviewertextlayers] [or] [0] %installspecial[\doflushviewerpagelayers] [or] [0] \installspecial[\domakeviewerlayerlist] [or] [1] \installspecial[\doinsertrenderingwindow] [or] [4] \installspecial[\doinsertrendering] [or] [4] \installspecial[\doinsertrenderingobject] [or] [4] \installspecial[\doinsertrenderingobject] [or] [4] \installspecial[\dostartfonteffect] [or] [3] \installspecial[\dostopfonteffect] [or] [0] %D From now on, mapfile loading is also a special; we assume the %D more or less standard dvips syntax. \installspecial[\doresetmapfilelist] [and] [0] \installspecial[\doloadmapfile] [and] [2] % + - = | filename \installspecial[\doloadmapline] [and] [2] % + - = | fileline %D We define a couple of backends: \defineoutput [dvipsone] [dvi,ps,yy] \defineoutput [dviwindo] [dvi,ps,yy,win] \defineoutput [dvips] [dvi,ps,tr] \defineoutput [dviview] [dvi,ps,tr,dv] \defineoutput [pdftex] [tpd] \defineoutput [pdf] [tpd] \defineoutput [dvipdfm] [dpm] \defineoutput [dpm] [dpm] \defineoutput [dvipdfmx] [dpx] \defineoutput [dpx] [dpx] \defineoutput [acrobat] [pdf,ps,tr] \defineoutput [xetex] [dpx,xet] \defineoutput [xtx] [dpx,xet] \defineoutput [xdv] [dvi,xtx,xet] \defineoutput [xdv2pdf] [dvi,xtx,xet] %D We don't enable \ACROBAT, because pure \POSTSCRIPT\ is not %D that strong on objects and \PDFTEX\ does a better job. %D Some reasonable alternatives are: %D %D \starttyping %D \setupoutput [dvipsone,acrobat] %D \setupoutput [dviwindo,acrobat] %D \stoptyping %D %D Although, better is: %D %D \starttyping %D \setupoutput [pdftex] %D \stoptyping %D Please let me know if we need more. From now on we default %D to: \appendtoks \setupoutput[dvips]% \to \everydump \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-mis.mkii0000644000175000017500000024037414536300610024703 0ustar hillehille%D \module %D [ file=core-mis, %D version=1998.01.29, %D title=\CONTEXT\ Core Macros, %D subtitle=Miscelaneous, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Misc Commands} % todo: kleur in legenda + letter % %D You would not expect the next macro in \CONTEXT, % %D wouldn't you? It's there to warn \LATEX\ users that % %D something is wrong. % %D % %D Obsolete now: % % % % \def\documentstyle{\showmessage\m!systems3\empty\stoptekst} % % % % \let\documentclass=\documentstyle % %D \macros % %D {simplifiedcommands, simplifycommands} % %D % %D I first needed this simplification in bookmarks. Users can % %D add their own if needed. \unprotect %D Sometimes (for instance in bookmarks) we need to simplify macro %D behaviour, so here is the hook. \ifx\simplifiedcommands\undefined \newtoks\simplifiedcommands \fi \def\simplifycommands{\the\simplifiedcommands} %D A possibly growing list: %appendtoks \def\executesynonym#1#2#3#4{#3}\to\simplifiedcommands %appendtoks \def\executesort#1#2#3{#3}\to\simplifiedcommands \appendtoks \def\ { }\to\simplifiedcommands \appendtoks \def\type#1{\letterbackslash\strippedcsname#1}\to\simplifiedcommands \appendtoks \def\tex#1{\letterbackslash#1}\to\simplifiedcommands \appendtoks \def\TeX{TeX}\to\simplifiedcommands \appendtoks \def\ConTeXt{ConTeXt}\to\simplifiedcommands \appendtoks \def\MetaPost{MetaPost}\to\simplifiedcommands \appendtoks \def\MetaFont{MetaFont}\to\simplifiedcommands \appendtoks \def\MetaFun{MetaFun}\to\simplifiedcommands %appendtoks \def||{-}\to\simplifiedcommands \appendtoks \def|#1|{\ifx#1\empty\empty-\else#1\fi}\to\simplifiedcommands \appendtoks \let\crlf\space\to\simplifiedcommands \appendtoks \let\\\space\to\simplifiedcommands \appendtoks\let\buildtextaccent\secondoftwoarguments\to\simplifiedcommands % THIS WAS MAIN-002.TEX %\def\checkinterlineskip % {\ifvmode % \ifdim\lastskip>\zeropoint % \nointerlineskip % \else\ifdim\lastkern>\zeropoint % \nointerlineskip % \fi\fi % \fi} \def\horitems#1#2% #1=breedte #2=commandos {\scratchdimen#1% \divide\scratchdimen \nofitems \!!counta\zerocount \def\docommand##1% {\advance\!!counta \plusone \processaction [\@@isalign] [ \v!left=>\hbox to \scratchdimen{\strut##1\hss}, \v!right=>\hbox to \scratchdimen{\hss\strut##1}, \v!middle=>\hbox to \scratchdimen{\hss\strut##1\hss}, \v!margin=>\ifnum\!!counta=\plusone\hss\else\hfill\fi \strut##1% \ifnum\!!counta=\nofitems\hss\else\hfill\fi, \s!default=>\hbox to \scratchdimen{\hss\strut##1\hss}, % midden \s!unknown=>\hbox to \scratchdimen{\strut##1\hss}]}% % links \hbox to #1{\hss#2\hss}} \def\veritems#1#2% #1=breedte #2=commandos {\scratchdimen#1% \def\docommand##1% {\ifdim\scratchdimen<\zeropoint % the - was a signal \hbox to -\scratchdimen{\hss\strut##1}% \else\ifdim\scratchdimen>\zeropoint \hbox to \scratchdimen{\strut##1\hss}% \else \hbox{\strut##1}% \fi\fi}% \vbox{#2}} \def\dosetupitems[#1]% {\getparameters[\??is][#1]% \doif\@@iswidth\v!unknown {\def\@@iswidth{\hsize}}% \doifconversiondefinedelse\@@issymbol {\def\doitembullet##1{\convertnumber{\@@issymbol}{##1}}} {\doifsymboldefinedelse\@@issymbol {\def\doitembullet##1{\symbol[\@@issymbol]}}{}}} \def\makeitemsandbullets#1% {\doifelse\@@isn\v!unknown {\getcommalistsize[#1]% \edef\nofitems{\commalistsize}} {\edef\nofitems{\@@isn}}% \setbox0\hbox {\doitems \@@iswidth {\processcommalist[#1]\docommand}}% \setbox2\hbox {\doitems \@@isbulletbreedte {\dorecurse\nofitems {\docommand{\strut\doitembullet\recurselevel}}}}} \def\dostartitems#1#2#3% {\let\doitems#2% \def\@@isbulletbreedte{#3}% \makeitemsandbullets{#1}% \@@isbefore} \def\dostopitems {\@@isafter \egroup} \setvalue{doitems\v!top}#1% {\dostartitems{#1}\horitems\@@iswidth \noindent\vbox {\forgetall \doifsomething\@@issymbol {\doifnot\@@issymbol\v!none {\box2 \@@isinbetween \nointerlineskip}}% \box0}% \dostopitems} \setvalue{doitems\v!bottom}#1% {\dostartitems{#1}\horitems\@@iswidth \noindent\vbox {\forgetall \box0 \doifsomething\@@issymbol {\@@isinbetween \nointerlineskip \box2}}% \dostopitems} \setvalue{doitems\v!inmargin}#1% {\dostartitems{#1}\veritems{-1.5em}% - is a signal \noindent\hbox{\llap{\box2\hskip\leftmargindistance}\box0}% \dostopitems} \setvalue{doitems\v!left}#1% {\advance\hsize -1.5em% \dostartitems{#1}\veritems{1.5em}% \noindent\hbox{\box2\box0}% \dostopitems} \setvalue{doitems\v!right}#1% {\dostartitems{#1}\veritems{0em}% \noindent\hbox{\box0\hskip-\wd2\box2}% \dostopitems} \def\setupitems {\dosingleargument\dosetupitems} \def\complexitems[#1]% {\bgroup \setupitems[#1]% \parindent\zeropoint \setlocalhsize \hsize\localhsize \dontcomplain %\doifundefined{doitems\@@islocation}% % {\let\@@islocation\v!left}% %\getvalue{doitems\@@islocation}} \executeifdefined{doitems\@@islocation}{\let\@@islocation\v!left}} \definecomplexorsimpleempty\items \setupitems [\c!location=\v!left, \c!symbol=5, \c!width=\hsize, \c!align=\v!middle, \c!n=\v!unknown, \c!before=\blank, \c!inbetween={\blank[\v!medium]}, \c!after=\blank] % \definieerplaats[naam][instellingen] % \stelplaatsin[naam][instellingen] % \plaats[[instellingen]] % % - still undocumented and also not in setupb yet % - kan ook intern/direct (scheelt duplicatie), zie \framedtext \def\dodefineplacement[#1][#2]% {\getparameters [\??pl#1] [\c!left=\hss, \c!right=\hss, \c!linecorrection=\v!off, \c!depthcorrection=\v!off, \c!margin=\v!standard, \c!grid=\v!middle, %\c!before=, %\c!after=, #2]% \setvalue{\e!place#1}{\doplacement[\??pl#1]}} \def\defineplacement {\dodoubleempty\dodefineplacement} \def\setupplacement {\dodoubleempty\dosetupplacement} \def\dosetupplacement[#1]% {\dodoubleempty\getparameters[\??pl#1]} \def\doplacement {\dodoubleempty\dodoplacement} \def\dodoplacement[#1][#2]% correctie moet mooier {\bgroup \dowithnextboxcontent {\forgetall} {\setlocalhsize \getparameters[#1][#2]% \getvalue{#1\c!before}% \begingroup \disableparpositions \setbox\nextbox\hbox to \localhsize {\getvalue{#1\c!left}% \flushnextbox \getvalue{#1\c!right}}% \ifinsidefloat \else \addlocalbackgroundtobox\nextbox \fi \ifgridsnapping \doifundefined{#1\c!grid}{\letvalue{#1\c!grid}\v!middle}% % unchecked \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent \snaptogrid[\getvalue{#1\c!grid}]\hbox{\flushnextbox}% \else \doifvalue{#1\c!linecorrection}\v!on \startbaselinecorrection \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent \flushnextbox \doifvalue{#1\c!depthcorrection}\v!on\baselinecorrection \doifvalue{#1\c!linecorrection }\v!on\stopbaselinecorrection \fi \endgroup \getvalue{#1\c!after}% \egroup} \vbox} % Te zijner tijd [plaats=boven,onder,midden] implementeren, % in dat geval moet eerst de maximale hoogte worden bepaald. % % Overigens kan een en ander mooier met \halign. % there is quite some historic balast in this mechanism, the next variant % is a first cleanup \let\currentparagraph\empty \newcount\alcounter \newcount\alnsize \newdimen\alhsize \def\paragraphparameter#1% \checkedparameter\??al\currentparagraph#1 {\executeifdefined{\??al\currentparagraph#1}{\executeifdefined{\??al#1}\empty}} \def\paragraphcellmeter#1#2% \checkedparameter\??al\currentparagraph#1 {\executeifdefined{\??al\currentparagraph\number#1#2}{\paragraphparameter{#2}}} \def\dodefineparagraphs[#1][#2]% {\edef\currentparagraph{#1}% \setvalue{\s!do\s!next\currentparagraph}% {\def\\{\getvalue\currentparagraph}}% \setvalue\currentparagraph {\getvalue{\s!do\s!next#1}% \dostartparagraphs{#1}}% \setvalue{\e!next\currentparagraph}% {\getvalue{#1}}% \setvalue{\e!start\currentparagraph}% {\bgroup \edef\currentparagraph{#1}% \letvalue{\s!do\s!next\currentparagraph}\empty \setvalue{\e!stop\currentparagraph}{\getvalue\currentparagraph\egroup}% \getvalue\currentparagraph}% \getparameters[\??al\currentparagraph]% [%\c!n=3, %\c!before=\blank, %\c!after=\blank, %\c!distance=1em, %\c!height=\v!fit, %\c!rule=\v!off, %\c!command=, %\c!align=, %\c!tolerance=\v!tolerant, %\c!rulethickness=\linewidth, %\c!rulecolor=, %\c!style=, %\c!color=, %\c!top=, %\c!top=\vss, %\c!bottom=\vfill, #2]% \setvalue{\e!setup#1\e!endsetup}% {\setupparagraphs[#1]}% \dorecurse {\paragraphparameter\c!n} {\setupparagraphs [\currentparagraph] [\recurselevel] [\c!width=, %\c!bottom=\paragraphparameter\c!bottom, %\c!top=\paragraphparameter\c!top, %\c!height=\paragraphparameter\c!height, %\c!rule=\paragraphparameter\c!rule, %\c!rulethickness=\paragraphparameter\c!rulethickness, %\c!rulecolor=\paragraphparameter\c!rulecolor, %\c!align=\paragraphparameter\c!align, %\c!tolerance=\paragraphparameter\c!tolerance, % obsolete %\c!distance=\paragraphparameter\c!distance, \c!style=\paragraphparameter\c!style, \c!color=\paragraphparameter\c!color]}% \setupparagraphs[\currentparagraph][1][\c!distance=\zeropoint]} \def\defineparagraphs {\dodoubleargument\dodefineparagraphs} \def\dosetupparagraphs[#1][#2][#3]% {\edef\currentparagraph{#1}% \ifsecondargument \doifelse{#2}\v!each {\dorecurse {\paragraphparameter\c!n} {\getparameters[\??al\currentparagraph\recurselevel][#3]}} {\doifelsenothing{#3} {\getparameters[\??al\currentparagraph][#2]} {\def\docommand##1{\getparameters[\??al\currentparagraph##1][#3]}% \processcommalist[#2]\docommand}}% \else \getparameters[\??al][#1]% \fi} \def\setupparagraphs {\dotripleempty\dosetupparagraphs} \setupparagraphs [\c!n=3, \c!before=\blank, \c!after=\blank, \c!distance=1em, \c!height=\v!fit, \c!rule=\v!off, \c!command=, \c!align=, \c!tolerance=\v!tolerant, % obsolete \c!rulethickness=\linewidth, \c!rulecolor=, \c!style=, \c!color=, \c!top=, \c!top=\vss, \c!bottom=\vfill] \def\doparagraphrule {\doifelse{\paragraphcellmeter\alcounter\c!rule}\v!on {\linewidth\paragraphcellmeter\alcounter\c!rulethickness \scratchdimen\paragraphcellmeter\alcounter\c!distance \advance\scratchdimen-\linewidth \divide\scratchdimen \plustwo \hskip\scratchdimen \color[\paragraphcellmeter\alcounter\c!rulecolor]{\vrule\!!width\linewidth}% \hskip\scratchdimen} {\hskip\paragraphcellmeter\alcounter\c!distance}} \def\dostartparagraph {\doifelsenothing{\paragraphcellmeter\alcounter\c!width} {\!!widtha\alhsize \divide\!!widtha \alnsize} {\!!widtha\paragraphcellmeter\alcounter\c!width}% \dostartattributes{\??al\currentparagraph\number\alcounter}\c!style\c!color\empty \doifelse{\paragraphcellmeter\alcounter\c!height}\v!fit {\setbox\scratchbox\vtop} {\setbox\scratchbox\vtop to \paragraphcellmeter\alcounter\c!height}% \bgroup \blank[\v!disable]% \forgetall \paragraphcellmeter\alcounter\c!top \paragraphparameter\c!inner \hsize\!!widtha % setting \wd afterwards removed \paragraphcellmeter\alcounter\c!inner % twice \expanded{\setupalign [\paragraphcellmeter\alcounter\c!align ]}% {normal,verytolerant,stretch} \expanded{\setuptolerance[\paragraphcellmeter\alcounter\c!tolerance]}% obsolete \ignorespaces \endgraf \ignorespaces % % Nadeel van de onderstaande constructie is dat \everypar % binnen een groep kan staan en zo steeds \begstruts % worden geplaatst. Mooi is anders dus moet het anders! % % Hier is \Everypar niet nodig. % \everypar{\begstrut\everypar\emptytoks}% % \nospace % remove + ignore \paragraphcellmeter\alcounter\c!command} \def\dostopparagraph {\ifvmode \removelastskip \else \unskip\endstrut\endgraf \fi \paragraphcellmeter\alcounter\c!bottom \egroup \ifdim\wd\scratchbox=\zeropoint % no data \wd\scratchbox\!!widtha \fi \box\scratchbox \dostopattributes \ifnum\alcounter<\paragraphparameter\c!n\relax \@EA\doparagraphcell \else \@EA\dostopparagraphs \fi} \def\doparagraphcell {\global\advance\alcounter \plusone \doifelsenothing{\paragraphcellmeter\alcounter\c!distance} {\ifnum\alcounter=\plusone\else \hskip\paragraphparameter\c!distance \fi} {\ifnum\alcounter=\plusone \hskip\paragraphcellmeter\alcounter\c!distance \else \doparagraphrule \fi}% \letvalue\currentparagraph\dostopparagraph \dostartparagraph} \def\dostartparagraphs#1% {\bgroup \edef\currentparagraph{#1}% \global\alcounter\zerocount \parindent\zeropoint \setlocalhsize \alhsize\localhsize \alnsize\paragraphparameter\c!n\relax \dorecurse \alnsize {\doifelsenothing{\paragraphcellmeter\recurselevel\c!distance} {\ifnum\recurselevel=\plusone\else \global\advance\alhsize -\paragraphparameter\c!distance \fi} {\global\advance\alhsize -\paragraphcellmeter\recurselevel\c!distance}% \doifsomething{\paragraphcellmeter\recurselevel\c!width} {\global\advance\alnsize \minusone \global\advance\alhsize -\paragraphcellmeter\recurselevel\c!width}}% %whitespace % gaat fout bij \framed \paragraphparameter\c!before \leavevmode % gaat wel goed bij \framed, brrr \setbox\scratchbox\vbox\bgroup\hbox\bgroup\doparagraphcell} \def\dostopparagraphs {\egroup \egroup \iftrue \hbox{\raise\strutheight\box\scratchbox}% new \else \box\scratchbox % old \fi \par \paragraphparameter\c!after \egroup} \def\dosetuptab[#1]% {\getparameters[\??ta] [\c!headstyle=\v!normal, \c!headcolor=, \c!style=\v!normal, \c!color=, \c!width=\v!broad, \c!sample={\hskip4em}, \c!before=, \c!after=, #1]% \definedescription [tab] [\c!headstyle=\@@taheadstyle, \c!headcolor=\@@tacolor, \c!sample=\@@tasample, \c!width=\@@tawidth, \c!before=\@@tabefore, \c!after=\@@taafter]} \def\setuptab {\dosingleargument\dosetuptab} \setuptab [\c!location=\v!left] % The following macro's are derived from PPCHTEX and % therefore take some LaTeX font-switching into account. \newif\ifloweredsubscripts % Due to some upward incompatibality of LaTeX to LaTeX2.09 % and/or LaTeX2e we had to force \@@chemieletter. Otherwise % some weird \nullfont error comes up. \doifundefined{@@chemieletter}{\def\@@chemieletter{\rm}} \def\beginlatexmathmodehack {\ifmmode \let\endlatexmathmodehack\relax \else \def\endlatexmathmodehack{$}$\@@chemieletter \fi} \def\setsubscripts {\beginlatexmathmodehack \def\dosetsubscript##1##2##3% {\dimen0=##3\fontexheight##2% \setxvalue{@@\string##1\string##2}{\the##1##2\relax}% ##1##2=\dimen0\relax}% \def\dodosetsubscript##1##2% {\dosetsubscript{##1}{\textfont2}{##2}% \dosetsubscript{##1}{\scriptfont2}{##2}% \dosetsubscript{##1}{\scriptscriptfont2}{##2}}% %dodosetsubscript\mathsupnormal {?}% \dodosetsubscript\mathsubnormal {.7}% \dodosetsubscript\mathsubcombined{.7}% \global\loweredsubscriptstrue \endlatexmathmodehack} \def\resetsubscripts {\ifloweredsubscripts \beginlatexmathmodehack \def\doresetsubscript##1##2% {\dimen0=\getvalue{@@\string##1\string##2}\relax ##1##2=\dimen0}% \def\dodoresetsubscript##1% {\doresetsubscript{##1}{\textfont2}% \doresetsubscript{##1}{\scriptfont2}% \doresetsubscript{##1}{\scriptscriptfont2}}% %dodoresetsubscript\mathsupnormal \dodoresetsubscript\mathsubnormal \dodoresetsubscript\mathsubcombined \global\loweredsubscriptsfalse \endlatexmathmodehack \fi} \let\beginlatexmathmodehack = \relax \let\endlatexmathmodehack = \relax \def\chem#1#2#3% {\bgroup \setsubscripts \mathematics{\hbox{#1}_{#2}^{#3}}% \resetsubscripts \egroup} \unexpanded\def\celsius #1{#1\mathematics{^\circ}C} \unexpanded\def\inch {\mathematics{\prime\prime}} % was: \hbox{\rm\char125\relax} \unexpanded\def\fraction#1#2{\mathematics{#1\over#2}} % very dutch \unexpanded\def\graden {\mathematics{^\circ}} \def\bedragprefix {\euro\normalfixedspace} \def\bedragsuffix {} \def\bedragempty {\euro} \unexpanded\def\bedrag#1% {\strut\hbox\bgroup \let\normalfixedspace\nonbreakablespace \doifelsenothing{#1} {\bedragempty} {\bedragprefix\digits{#1}\bedragsuffix}% \egroup} % \definieeralineas[test][n=3] % % \stelalineasin[test][3][breedte=4cm,uitlijnen=links] % % \startopelkaar % \test hans \\ ton \\ \bedrag{1.000,--} \\ % \test hans \\ ton \\ \bedrag{~.~~1,--} \\ % \test hans \\ ton \\ \bedrag{~.~~1,~~} \\ % \test hans \\ ton \\ \bedrag{~.100,--} \\ % \test hans \\ ton \\ \subtot{1.000,--} \\ % \test hans \\ ton \\ \bedrag{1.000,--} \\ % \test hans \\ ton \\ \bedrag{1.000,--} \\ % \test hans \\ ton \\ \totaal{1.000,--} \\ % \test hans \\ ton \\ \bedrag{nihil,--} \\ % \test hans \\ ton \\ \totaal{nihil,--} \\ % \test hans \\ ton \\ \subtot{nihil,--} \\ % \stopopelkaar \def\periodswidth {.5em} \def\periodsdefault{3} % was 5, but now it's like \unknown \unexpanded\def\periods {\dosingleempty\doperiods} \def\doperiods[#1]% {\dontleavehmode \begingroup \scratchdimen\periodswidth \hbox to \iffirstargument#1\else\periodsdefault\fi \scratchdimen {\leaders\hbox to \scratchdimen{\hss.\hss}\hss}% \endgroup} \unexpanded\def\unknown {\periods\relax} % relax prevents lookahead for [] % compatibility macros \def\doorsnede {\hbox{\rlap/$\circ$} } \unexpanded\def\ongeveer {\mathematics\pm} \chardef\boundarycharactermode\plusone \def\midboundarycharacter#1#2% {\ifcase\boundarycharactermode \or %\nobreak \hskip\hspaceamount\currentlanguage{#2}% \languageparameter#1% %\nobreak \hskip\hspaceamount\currentlanguage{#2}% \or \languageparameter#1% \fi \chardef\boundarycharactermode\plusone} \def\leftboundarycharacter#1#2% {\ifcase\boundarycharactermode \or \languageparameter#1% \nobreak \hskip\hspaceamount\currentlanguage{#2}% \or \languageparameter#1% \fi \chardef\boundarycharactermode\plusone} \def\rightboundarycharacter#1#2% {\ifcase\boundarycharactermode \or \prewordbreak %\nobreak \hskip\hspaceamount\currentlanguage{#2}% \languageparameter#1% \or \languageparameter#1% \fi \chardef\boundarycharactermode\plusone} % actually this is pretty old, but temporary moved here % % obsolete: \def\setuphyphenmark {\dodoubleargument\getparameters[\??kp]} \def\setuphyphenmark[#1]% sign=normal|wide {\dodoubleargument\getparameters[\??kp][#1]% \doifinsetelse\@@kpsign {\v!normal} {\let\textmodehyphen\normalhyphen \let\textmodehyphendiscretionary\normalhyphendiscretionary} {\let\textmodehyphen\composedhyphen\let\textmodehyphendiscretionary\composedhyphendiscretionary}} \setuphyphenmark[\c!sign=\v!wide] % % \setuphyphenmark[\c!sign=\v!normal] \definesymbol[\c!lefthyphen] [\languageparameter\c!lefthyphen] \definesymbol[\c!righthyphen] [\languageparameter\c!righthyphen] \definesymbol[\c!hyphen] [\languageparameter\c!hyphen] \def\normalhyphen {\hbox{\directsymbol\empty\c!hyphen}} \def\composedhyphen {\hbox{\directsymbol\empty\c!compoundhyphen}} \def\normalhyphendiscretionary {\discretionary {\hbox{\directsymbol\empty\c!lefthyphen}} {\hbox{\directsymbol\empty\c!righthyphen}} {\hbox{\directsymbol\empty\c!hyphen}}} \def\composedhyphendiscretionary {\discretionary {\hbox{\directsymbol\empty\c!leftcompoundhyphen}} {\hbox{\directsymbol\empty\c!rightcompoundhyphen}} {\hbox{\directsymbol\empty\c!compoundhyphen}}} \let\textmodehyphen \composedhyphen \let\textmodehyphendiscretionary\composedhyphendiscretionary \definesymbol[\c!leftcompoundhyphen] [\languageparameter\c!leftcompoundhyphen] \definesymbol[\c!rightcompoundhyphen] [\languageparameter\c!rightcompoundhyphen] \definesymbol[\c!compoundhyphen] [\languageparameter\c!compoundhyphen] \definehspace [sentence] [\zeropoint] \definehspace [intersentence] [.250em] \definesymbol [\c!midsentence] [\midboundarycharacter\c!midsentence{sentence}] \definesymbol [\c!leftsentence] [\leftboundarycharacter\c!leftsentence{sentence}] \definesymbol [\c!rightsentence] [\rightboundarycharacter\c!rightsentence{sentence}] \definesymbol [\c!leftsubsentence] [\leftboundarycharacter\c!leftsubsentence{sentence}] \definesymbol [\c!rightsubsentence] [\rightboundarycharacter\c!rightsubsentence{sentence}] \newsignal \subsentencesignal \newcounter\subsentencelevel \let\beforesubsentence\donothing \let\aftersubsentence \donothing % todo: make this language option % % \def\beforesubsentence{\removeunwantedspaces} % \def\aftersubsentence {\ignorespaces} \def\midsentence {\symbol[\c!midsentence]} \def\beginofsubsentence {\beforesubsentence \ifdim\lastkern=\subsentencesignal \unskip \kern\hspaceamount\currentlanguage{intersentence}% \fi \doglobal\increment\subsentencelevel \ifnum\subsentencelevel=\plusone \dontleavehmode % was \leaveoutervmode \fi \symbol[\ifodd\subsentencelevel\c!leftsentence\else\c!leftsubsentence\fi]% }% \ignorespaces} \def\endofsubsentence % relax prevents space gobbling {\symbol[\ifodd\subsentencelevel\c!rightsentence\else\c!rightsubsentence\fi]% \doglobal\decrement\subsentencelevel \unskip \kern\subsentencesignal\relax \aftersubsentence} \def\beginofsubsentencespacing % relax prevents space gobbling {\kern\subsentencesignal\relax}% \ignorespaces} \def\endofsubsentencespacing {\ifdim\lastkern=\subsentencesignal \unskip \hskip\hspaceamount\currentlanguage{intersentence}% % no good, actually language dependent: % \ignorespaces \else \unskip \fi} %D \startbuffer %D test |<|test |<|test|>| test|>| test \par %D test|<|test|<|test|>|test|>|test \par %D test |<||<|test|>||>| test \par %D test \directdiscretionary{<}test\directdiscretionary{>} test \par %D \stopbuffer %D %D \typebuffer %D \getbuffer \def\startsubsentence{\beginofsubsentence \prewordbreak\beginofsubsentencespacing} \def\stopsubsentence {\endofsubsentencespacing\prewordbreak\endofsubsentence} %D \defineXMLenvironment [subsentence] %D {|<|} %D {|>|} %D \defineXMLenvironment [subsentence] %D {\directdiscretionary{<}} %D {\directdiscretionary{>}} %D \defineXMLenvironment [subsentence] %D {\startsubsentence} %D {\stopsubsentence} %D %D \startbuffer %D test test test %D \stopbuffer %D %D \typebuffer %D \processXMLbuffer \enableactivediscretionaries \definehspace [quotation] [\zeropoint] \definehspace [interquotation] [.125em] %definehspace [quote] [\zeropoint] %definehspace [speech] [\zeropoint] \definehspace [quote] [\hspaceamount\currentlanguage{quotation}] \definehspace [speech] [\hspaceamount\currentlanguage{quotation}] \definesymbol [\c!leftquotation] [\leftboundarycharacter\c!leftquotation{quotation}] \definesymbol [\c!rightquotation] [\rightboundarycharacter\c!rightquotation{quotation}] \definesymbol [\c!leftquote] [\leftboundarycharacter\c!leftquote{quote}] \definesymbol [\c!rightquote] [\rightboundarycharacter\c!rightquote{quote}] \definesymbol [\c!leftspeech] [\leftboundarycharacter\c!leftspeech{speech}] \definesymbol [\c!rightspeech] [\rightboundarycharacter\c!rightspeech{speech}] \definesymbol [\c!middlespeech] [\leftboundarycharacter\c!middlespeech{speech}] \appendtoks\def\quotation#1{"#1"}\to\simplifiedcommands \appendtoks\def\quote #1{'#1'}\to\simplifiedcommands %D The next features was so desperately needed by Giuseppe %D Bilotta that he made a module for it. Since this is a %D typical example of core functionality, I decided to extend %D the low level quotation macros in such a way that a speech %D feature could be build on top of it. The speech opening and %D closing symbols are defined per language. Italian is an %D example of a language that has them set. % this will replace the quotation and speed definitions \newsignal\delimitedtextsignal \let\currentdelimitedtext\s!unknown \def\delimitedtextparameter#1% will be sped up {\executeifdefined{\??ci\currentdelimitedtext:\csname\??ci\currentdelimitedtext\c!level\endcsname#1}% {\executeifdefined{\??ci\currentdelimitedtext#1}% {\executeifdefined{\??ci#1}\empty}}} \def\definedelimitedtext {\dodoubleempty\dodefinedelimitedtext} \def\dodefinedelimitedtext[#1][#2]% {\doifassignmentelse{#2} {\getparameters [\??ci#1] [\c!location=\v!margin, % \v!text \v!paragraph \c!spacebefore=, \c!spaceafter=\delimitedtextparameter\c!spacebefore, \c!style=\v!normal, \c!color=, \c!leftmargin=\zeropoint, \c!rightmargin=\delimitedtextparameter\c!leftmargin, \c!indentnext=\v!yes, \c!before=, \c!after=, \c!left=, \c!right=, \c!level=0, \c!repeat=\v!no, \c!method=, #2]}% {\doifdefined{#2} {\copyparameters[\??ci#1][\??ci#2] [\c!location,\c!spacebefore,\c!spaceafter,\c!style,\c!color, \c!leftmargin,\c!rightmargin,\c!indentnext, \c!before,\c!after,\c!left,\c!right]}}% \doifsomething{#1} {\unexpanded\setvalue{#1}{\delimitedtext[#1]}% \setvalue{\e!start#1}{\startdelimitedtext[#1]}% \setvalue{\e!stop #1}{\stopdelimitedtext}}} \def\setupdelimitedtext {\dotripleargument\dosetupdelimitedtext} \def\dosetupdelimitedtext[#1][#2][#3]% #2 = optional level {\ifthirdargument \getparameters[\??ci#1:#2][#3]% \else\ifsecondargument \getparameters[\??ci#1][#2]% \else \getparameters[\??ci][#1]% \fi\fi} \def\dorepeatdelimitedtext {\relax\ifcase\delimitedtextparameter\c!level\else \dohandledelimitedtext\c!middle % maybe better \dohandleleftdelimitedtext \fi} \let\dohandlerepeatdelimitedtext\relax \def\startdelimitedtext[#1]% {\bgroup \pushdelimitedtext{#1}% \doifelse{\delimitedtextparameter\c!method}\s!font {\def\dostopdelimitedtext {\removeunwantedspaces\ignoredelimitedtext\c!right}% \ignoredelimitedtext\c!left\ignorespaces} {\doifelse{\delimitedtextparameter\c!repeat}\v!yes {\let\dohandlerepeatdelimitedtext\dorepeatdelimitedtext}% {\let\dohandlerepeatdelimitedtext\relax}% \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}% {\dosingleempty\dostartdelimitedtextpar}\dostartdelimitedtexttxt}} \def\dostartdelimitedtextpar[#1]% {\let\dostopdelimitedtext\dostopdelimitedtextpar \doifsomething{\delimitedtextparameter\c!spacebefore} {\blank[\delimitedtextparameter\c!spacebefore]}% \delimitedtextparameter\c!before % nicer: % \doadaptleftskip {\delimitedtextparameter\c!leftmargin}% % \doadaptrightskip{\delimitedtextparameter\c!rightmargin}% % backward compatible: \doifelsenothing{#1} {\endgraf \doadaptleftskip {\delimitedtextparameter\c!leftmargin}% \doadaptrightskip{\delimitedtextparameter\c!rightmargin}% \let\dodostopdelimitedtextpar\endgraf} {\startnarrower[#1]\let\dodostopdelimitedtextpar\stopnarrower}% % so far % \dochecknextindentation{\??ci\currentdelimitedtext}% AM: not here \dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color\empty \leftdelimitedtextmark \ignorespaces} \def\dostopdelimitedtextpar {\removeunwantedspaces \removelastskip \rightdelimitedtextmark \dostopattributes \dodostopdelimitedtextpar \delimitedtextparameter\c!after \doifsomething{\delimitedtextparameter\c!spaceafter} {\blank[\delimitedtextparameter\c!spaceafter]}% \dochecknextindentation{\??ci\currentdelimitedtext}% AM: here \dorechecknextindentation}% AM: This was missing! \def\dostartdelimitedtexttxt {\let\dostopdelimitedtext\dostopdelimitedtexttxt \dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color\empty \dohandleleftdelimitedtext\c!left \ignorespaces} \def\dostopdelimitedtexttxt {\removeunwantedspaces \dohandlerightdelimitedtext\c!right \dostopattributes} \def\stopdelimitedtext {\dostopdelimitedtext \popdelimitedtext \egroup} \def\pushdelimitedtext#1% {\globalpushmacro\currentdelimitedtext \def\currentdelimitedtext{#1}% \doglobal\incrementvalue{\??ci\currentdelimitedtext\c!level}} \def\popdelimitedtext {\doglobal\decrementvalue{\??ci\currentdelimitedtext\c!level}% \globalpopmacro\currentdelimitedtext} \def\delimitedtext[#1]% {\pushdelimitedtext{#1}% \doifelse{\delimitedtextparameter\c!method}\s!font {\dofontdrivendelimited} {\doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}% \dodelimitedtextpar\dodelimitedtexttxt}} % shortcuts \def\startdelimited{\startdelimitedtext} \def\stopdelimited {\stopdelimitedtext} % no let, dynamically assigned \def\delimited {\delimitedtext} \def\leftdelimitedtextmark {\doifsomething{\delimitedtextparameter\c!left} {\setbox\scratchbox\hbox{\delimitedtextparameter\c!left}% \dontleavehmode \doif{\delimitedtextparameter\c!location}\v!margin{\hskip-\wd\scratchbox}% \box\scratchbox}} \def\rightdelimitedtextmark {\doifsomething{\delimitedtextparameter\c!right} {\hsmash{\delimitedtextparameter\c!right}}} % \starttext % \hyphenatedword{groepsvrijstellingsverordeningen}\par % \hyphenatedword{\quote{groepsvrijstellingsverordeningen}}\par % \dorecurse{100}{\hskip300pt\hskip\recurselevel pt test \quote{xxx xxxx}.\par} % \page \setuppapersize[A5][A4] % \quotation {overly beautiful pusillanimous sesquipedalian % longwinded} test test test test test test test test test test test % test test test test test test test test test test test test test % test test test test test test test test test test test test test % test test test test test test test test test test test test test % test test test % \stoptext \def\dohandledelimitedtext#1#2% {\begingroup \setbox\scratchbox\hbox{\delimitedtextparameter#1}% \ifdim\wd\scratchbox>\zeropoint % \ifdim\lastskip=\delimitedtextsignal % \unskip \ifdim\lastkern=\delimitedtextsignal \unkern \hskip\hspaceamount\currentlanguage{interquotation}% \else #2% \fi \ifhmode % else funny pagebeaks \penalty\!!tenthousand \hskip\zeropoint % == \prewordbreak \fi \strut % new, needed below \delimitedtextparameter#1% unhbox\scratchbox % \penalty\!!tenthousand % else overfull boxes, but that's better than dangling periods \kern\delimitedtextsignal % +- \prewordbreak \fi \endgroup} \def\dohandleleftdelimitedtext#1#2% {\begingroup \setbox\scratchbox\hbox{\delimitedtextparameter#1}% \ifdim\wd\scratchbox>\zeropoint \ifdim\lastkern=\delimitedtextsignal \unkern \hskip\hspaceamount\currentlanguage{interquotation}% \else\ifdim\lastskip=\delimitedtextsignal \unskip \hskip\hspaceamount\currentlanguage{interquotation}% \else #2% \fi\fi \strut % new, needed below \ifhmode % else funny pagebeaks \penalty\!!tenthousand \hskip\zeropoint % == \prewordbreak \fi \strut % new, needed below \delimitedtextparameter#1% unhbox\scratchbox \hskip\delimitedtextsignal % +- \prewordbreak \fi \endgroup} \def\dohandlerightdelimitedtext#1#2% {\begingroup \setbox\scratchbox\hbox{\delimitedtextparameter#1}% \ifdim\wd\scratchbox>\zeropoint \ifdim\lastkern=\delimitedtextsignal \unkern \hskip\hspaceamount\currentlanguage{interquotation}% \else\ifdim\lastskip=\delimitedtextsignal \unskip \hskip\hspaceamount\currentlanguage{interquotation}% \else #2% \fi\fi \ifhmode % else funny pagebeaks \penalty\!!tenthousand \hskip\zeropoint % == \prewordbreak \fi \strut % new, needed below \delimitedtextparameter#1% unhbox\scratchbox \kern\delimitedtextsignal % +- \prewordbreak \fi \endgroup} \def\ignoredelimitedtext#1% {\delimitedtextparameter#1} \def\handledelimitedtext#1% {\dohandledelimitedtext{#1}\relax} \def\handleleftdelimitedtext#1% {\dohandleleftdelimitedtext{#1}\relax} \def\handlerightdelimitedtext#1% {\dohandlerightdelimitedtext{#1}\relax} \unexpanded\def\dodelimitedtextpar {\dohandleleftdelimitedtext\c!left\relax \groupedcommand \donothing {\dohandlerightdelimitedtext\c!right\removelastskip \popdelimitedtext}} \unexpanded\def\dodelimitedtexttxt {\doifelse{\delimitedtextparameter\c!style}\v!normal \doquoteddelimited\doattributeddelimited} \def\doquoteddelimited {\dohandleleftdelimitedtext\c!left\relax \groupedcommand \donothing {\dohandlerightdelimitedtext\c!right \removelastskip \popdelimitedtext}} \def\doattributeddelimited {\groupedcommand {\dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color} {\dostopattributes \popdelimitedtext}} \def\dofontdrivendelimited {\simplegroupedcommand {\languageparameter{\c!left\currentdelimitedtext}} {\languageparameter{\c!right\currentdelimitedtext}% \popdelimitedtext}} % testcase for nesting: % % \quotation{... \quotation{...} ...} % \startquotation ... \startquotation... \quotation{...} \stopquotation\space ...\stopquotation % \setupdelimitedtext[quotation][1][left=(,right=)] % \setupdelimitedtext[quotation][2][left={[},right={]}] % \setupdelimitedtext[quotation][3][left=\{,right=\}] % \quotation{... \quotation{...} ...} % \startquotation ... \startquotation... \quotation{...} \stopquotation\space ...\stopquotation \definedelimitedtext [\v!quotation] [\c!left={\symbol[\c!leftquotation]}, \c!right={\symbol[\c!rightquotation]}, \c!leftmargin=\v!standard] \definedelimitedtext [\v!quote][\v!quotation] \setupdelimitedtext [\v!quote] [\c!location=\v!text, \c!left={\symbol[\c!leftquote]}, \c!right={\symbol[\c!rightquote]}] \definedelimitedtext [\v!blockquote][\v!quotation] \setupdelimitedtext [\v!blockquote] [\c!left=, \c!right=] \definedelimitedtext [\v!speech][\v!quotation] \setupdelimitedtext [\v!speech] [\c!repeat=\v!yes, \c!left={\symbol[\c!leftspeech]}, \c!middle={\symbol[\c!middlespeech]}, \c!right={\symbol[\c!rightspeech]}] % how do we call an tight quote % % \definedelimitedtext % [\v!quotation][\v!quotation] % % \setupdelimitedtext % [\v!quotation] % [\c!indentnext=\v!no, % \c!spacebefore=\v!nowhite] \def\setupquotation{\setupdelimitedtext[\v!quotation]} \def\setupquote {\setupdelimitedtext[\v!quote]} % seldom used, move from kernel to run time module \ifx\tfx\undefined \let\tfx\relax \fi \def\basegrid {\dosingleempty\dobasegrid} \def\dobasegrid[#1]% {\begingroup \getparameters[\??rt] [\c!x=0,\c!y=0, \c!nx=10,\c!ny=10, \c!dx=.5,\c!dy=.5, \c!xstep=0,\c!ystep=0, \c!unit=\s!cm, \c!scale=1, \c!factor=1, \c!offset=\v!yes, \c!location=\v!left, #1]% \startpositioning \dimen0=\@@rtdx\@@rtunit\relax \dimen0=\@@rtscale\dimen0\relax \dimen0=\@@rtfactor\dimen0\relax \multiply\dimen0 \@@rtnx\relax \dimen2=\@@rtdy\@@rtunit\relax \dimen2=\@@rtscale\dimen2\relax \dimen2=\@@rtfactor\dimen2\relax \multiply\dimen2 \@@rtny\relax \def\horline {\vbox {\hrule \!!width \dimen0 \!!height \linewidth \!!depth \!!zeropoint}}% \def\verline% {\vrule \!!width \linewidth \!!height \dimen2 \!!depth \!!zeropoint}% \doglobal\newcounter\@@gridc \doglobal\newcounter\@@gridd \doglobal\newcounter\@@gride \def\setlegend##1##2##3% {\gdef\@@gridc{0}% \dimen0=2em\relax \dimen2=##2\@@rtunit\relax \dimen2=\@@rtscale\dimen2\relax \dimen2=\@@rtfactor\dimen2\relax \divide\dimen0 \dimen2\relax \xdef\@@gride{\number\dimen0}% \ifnum\@@gride>50 \gdef\@@gride{100}% \else\ifnum\@@gride>10 \gdef\@@gride{50}% \else\ifnum\@@gride>5 \gdef\@@gride{10}% \else\ifnum\@@gride>1 \gdef\@@gride{5}% \else \gdef\@@gride{1}% \fi\fi\fi\fi \gdef\@@gridd{0}% \def\legend {\ifnum\@@gridd=\zerocount \vbox {\increment(\@@gridc,##1)% \hbox to 2em{\hss\@@gridc\hss}}% \global\let\@@gridd=\@@gride \fi \doglobal\decrement\@@gridd \doglobal\increment(\@@gridc,##1)}}% \def\draw##1##2##3##4##5##6##7##8##9% {\setuppositioning [\c!state=##8, \c!xstep=\v!absolute, \c!ystep=\v!absolute, \c!unit=\@@rtunit, \c!scale=\@@rtscale, \c!factor=\@@rtfactor, \c!offset=\@@rtoffset, \c!xoffset=##6, \c!yoffset=##7]% \doifelse{##9}\v!middle {\scratchdimen##3pt\scratchdimen.5\scratchdimen \edef\@@psxx{\withoutpt\the\scratchdimen}% \scratchdimen##4pt\scratchdimen.5\scratchdimen \edef\@@psyy{\withoutpt\the\scratchdimen}% \scratchcounter##2\advance\scratchcounter -1 \edef\@@pszz{\the\scratchcounter}} {\edef\@@psxx{0}\edef\@@psyy{0}\edef\@@pszz{##2}}% \position(\@@psxx,\@@psyy){##1}% \setuppositioning [\c!state=##8, \c!xstep=\v!relative, \c!ystep=\v!relative, \c!scale=\@@rtscale, \c!factor=\@@rtfactor, \c!offset=\@@rtoffset, \c!unit=\@@rtunit]% \dorecurse\@@pszz{\position(##3,##4){##5}}}% \draw \verline\@@rtnx\@@rtdx0\verline\!!zeropoint\!!zeropoint\v!start\empty \draw \horline\@@rtny0\@@rtdy\horline\!!zeropoint\!!zeropoint\v!start\empty \tfx \doifnot\@@rtxstep{0} {\setlegend\@@rtxstep\@@rtdx\@@rtx \draw\legend\@@rtnx\@@rtdx0\legend{-1em}{-1.5em}\v!overlay\@@rtlocation}% \doifnot\@@rtystep{0} {\setlegend\@@rtystep\@@rtdy\@@rty \draw\legend\@@rtny0\@@rtdy\legend{-2em}{-.75ex}\v!overlay\@@rtlocation}% \stoppositioning \endgroup} \let\grid\basegrid % Dit wordt: % % \doorverwijzen[naam][instellingen] enz. % % waarbij bijvoorbeeld publicatie is. Dit levert: % % \start % \stop % % \beginvan % \eindvan % % \publicatie % % \volledigelijstmetpublicaties % % eigenlijk kan ook door... zo worden uitgebreid! % old, will become obsolete or module, replace by bib module % \defineenumeration % [@publicatie] % [\c!location=\v!left, % \c!width=\@@pbwidth,\c!hang=,\c!sample=, % \c!before=\@@pbbefore,\c!after=\@@pbafter,\c!inbetween=, % \c!headstyle=\@@pbheadstyle,\c!style=, % \c!headcolor=\@@pbheadcolor,\c!color=, % \c!way=\@@pbway,\c!blockway=\@@pbblockway, % \c!text=,\c!left=\@@pbleft,\c!right=\@@pbright] % \def\dosetuppublications[#1]% % {\getparameters[\??pb][#1]} % % \def\setuppublications% % {\dosingleargument\dosetuppublications} % % \def\apa@publicatie % {\doifsomething\@@pb@naam {\@@pb@naam,\space}% % \doifsomething\@@pb@titel {{\sl\@@pb@titel}.\space}% % \doifsomething\@@pb@jaar {(\@@pb@jaar).\space}% % \doifsomething\@@pb@plaats {\@@pb@plaats\doifelsenothing\@@pb@uitgever{.}{:\space}}% % \doifsomething\@@pb@uitgever{\@@pb@uitgever.}} % % \def\normaal@publicatie % {\@@pb@naam, \@@pb@titel, \@@pb@jaar, \@@pb@pagina, \@@pb@plaats, \@@pb@uitgever.} % % \def\complexstartpublicatie[#1]#2\stoppublicatie % {\bgroup % \def\dosetpublicatie % {\processcommalist % [naam,titel,jaar,plaats,pagina,uitgever] % \setpublicatie % \ignorespaces}% % \def\setpublicatie##1% % {\letvalue{\??pb @##1}\empty % \setvalue{##1}####1{\setvalue{\??pb @##1}{####1}\ignorespaces}}% % \def\getpublicatie% % {\doifsomething\@@pbalternative{\getvalue{\@@pbalternative @publicatie}}}% % \doifelse\@@pbnumbering\v!yes % {\@publicatie[#1]\dosetpublicatie#2\getpublicatie\par}% % {\@@pbbefore % \dosetpublicatie\ignorespaces#2\getpublicatie % \@@pbafter}% % \egroup} % % \definecomplexorsimpleempty\startpublicatie % % \def\publication#1[#2]% % {\@@pbleft\in{#1}[#2]\@@pbright} % % \setuppublications % [\c!numbering=\v!yes, % \c!alternative=\c!apa, % \c!width=2em, % \c!hang=, % \c!sample=, % \c!before=, % \c!after=, % \c!inbetween=, % \c!headstyle=, % \c!headcolor=, % \c!style=, % \c!color=, % \c!blockway=\v!by\v!text, % \c!way=\v!by\v!text, % \c!text=, % \c!left={[}, % \c!right={]}] % only used at pragma, move from kernel to run time module \def\referraldate {\currentdate[\v!referral]} \def\doreferral[#1]% {\noheaderandfooterlines \bgroup \getparameters [\??km] [\c!bet=\unknown,\c!dat=\unknown,\c!ken=\unknown, \c!from=,\c!to=,\c!ref=,#1]% % moet anders, hoort niet in 01b \assigntranslation[\s!nl=referentie,\s!en=reference,\s!de=Referenz,\s!hr=referenca,\s!sp=referencia]\to\@@@kmref \assigntranslation[\s!nl=van,\s!en=from,\s!de=Von,\s!hr=od,\s!sp=de]\to\@@@kmvan \assigntranslation[\s!nl=aan,\s!en=to,\s!de=An,\s!hr=za,\s!sp=a]\to\@@@kmaan \assigntranslation[\s!nl=betreft,\s!en=concerns,\s!de=Betreff,\s!hr=predmet,\s!sp=]\to\@@@kmbet \assigntranslation[\s!nl=datum,\s!en=date,\s!de=Datum,\s!hr=datum,\s!sp=fecha]\to\@@@kmdat \assigntranslation[\s!nl=kenmerk,\s!en=mark,\s!de=Kennzeichen,\s!hr=oznaka,\s!sp=]\to\@@@kmken % \definetabulate[\s!dummy][|l|p|] \startdummy \NC\@@@kmbet\EQ\@@kmbet\NC\NR \NC\@@@kmdat\EQ\@@kmdat\NC\NR \NC\@@@kmken\EQ\expanded{\smallcapped{\@@kmken}}\NC\NR \doifsomething{\@@kmfrom\@@kmto}{\NC\NC\NC\NR}% \doifsomething \@@kmfrom {\NC\@@@kmvan\EQ\@@kmfrom\NC\NR}% \doifsomething \@@kmto {\NC\@@@kmaan\EQ\@@kmto\NC\NR}% \doifsomething \@@kmref {\NC\NC\NC\NR\NC\@@@kmref\EQ\@@kmref\NC\NR}% \stopdummy \egroup} \def\referral {\dosingleargument\doreferral} % FUZZY OLD STUFF: will be removed when not used in some manual; % rows instead of columns, i'd forgotten that this code exist % % \definesystemvariable{ri} % % \def\setuprows % {\dodoubleargument\getparameters[\??ri]} % % \definecomplexorsimpleempty\startrows % % \def\complexstartrows[#1]% % {\bgroup % \setuprows[#1]% % \let\do@@ribottom\relax % \def\row % {\do@@ribottom % \egroup % \dimen0\vsize % \divide\dimen0 \@@rin % \advance\dimen0 -\lineskip % \vbox to \dimen0 % \bgroup % \@@ritop % \let\do@@ribottom\@@ribottom % \ignorespaces}% % \bgroup % \row} % % \def\stoprows % {\do@@ribottom % \egroup % \egroup} % % \setuprows % [\c!n=2, % \c!top=, % \c!bottom=\vfill] % THIS WAS MAIN-003.TEX % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved \definetabulate [\v!legend] [|emj1|i1|mR|] \setuptabulate [\v!legend] [\c!unit=.75em,\c!inner=\setquicktabulate\leg,EQ={=}] \definetabulate [\v!legend][\v!two] [|emj1|emk1|i1|mR|] \definetabulate [\v!fact] [|R|ecmj1|i1mR|] \setuptabulate [\v!fact] [\c!unit=.75em,\c!inner=\setquicktabulate\fact,EQ={=}] \unexpanded\def\xbox {\bgroup\aftergroup\egroup\hbox\bgroup\tx\let\next=} \unexpanded\def\xxbox {\bgroup\aftergroup\egroup\hbox\bgroup\txx\let\next=} % \def\mrm#1% % {$\rm#1$} %D \macros %D {definepairedbox, setuppairedbox, placepairedbox} %D %D Paired boxes, formally called legends, but from now on a %D legend is just an instance, are primarily meant for %D typesetting some text alongside an illustration. Although %D there is quite some variation possible, the functionality is %D kept simple, if only because in most cases such pairs are %D typeset sober. %D %D The location specification accepts a pair, where the first %D keyword specifies the arrangement, and the second one the %D alignment. The first key of the location pair is one of %D \type {left}, \type {right}, \type {top} or \type {bottom}, %D while the second key can also be \type {middle}. %D %D The first box is just collected in an horizontal box, but %D the second one is a vertical box that gets passed the %D bodyfont and alignment settings. %D Today we would implement this using layers .... but for the %D moment we keep it this way. % \startbuffer[test] % \test left \test left,top \test left,bottom \test left,middle % \test right \test right,top \test right,bottom \test right,middle % \test top \test top,left \test top,right \test top,middle % \test bottom \test bottom,left \test bottom,right \test bottom,middle % \stopbuffer % % \def\showtest#1% % {\pagina % \typebuffer[demo] % \def\test##1 % {\startlinecorrection[blank] % \getbuffer[demo]% % \ruledhbox\placelegend % [bodyfont=6pt,location={##1}] % {\framed[width=.25\textwidth]{\tttf##1}} % {#1} % \stoplinecorrection} % \getbuffer[test]} % % \startbuffer[demo] % \setuplegend % [width=\hsize,maxwidth=\makeupwidth, % height=\vsize,maxheight=\makeupheight] % \stopbuffer % % \showtest{These examples demonstrate the default settings.} % % \startbuffer[demo] % \setuplegend % [width=\textwidth, % maxwidth=\textwidth] % \stopbuffer % % \showtest{\input tufte } % % \startbuffer[demo] % \setuplegend % [width=.65\textwidth] % \stopbuffer % % \showtest{\input knuth } % % \startbuffer[demo] % \setuplegend % [height=2cm] % \stopbuffer % % \showtest{These examples demonstrate some other settings.} % % \startbuffer[demo] % \setuplegend % [width=.65\textwidth, % height=2cm] % \stopbuffer % % \showtest{These examples demonstrate some other settings.} % % \startbuffer[demo] % \setuplegend % [n=2,align=right,width=.5\textwidth] % \stopbuffer % % \showtest{\input zapf } %D \macros %D {setuplegend, placelegend} %D %D It makes sense to typeset a legend to a figure in \TEX\ %D and not in a drawing package. The macro \type {\placelegend} %D combines a figure (or something else) and its legend. This %D command is just a paired box. %D %D The legend is placed according to \type {location}, being %D \type {bottom} or \type {right}. The macro macro is used as %D follows. %D %D \starttyping %D \placefigure %D {whow} %D {\placelegend %D {\externalfigure[cow]} %D {\starttabulation %D \NC 1 \NC head \NC \NR %D \NC 2 \NC legs \NC \NR %D \NC 3 \NC tail \NC \NR %D \stoptabulation}} %D %D \placefigure %D {whow} %D {\placelegend %D {\externalfigure[cow]} %D {\starttabulation[|l|l|l|l|] %D \NC 1 \NC head \NC 3 \NC tail \NC \NR %D \NC 2 \NC legs \NC \NC \NC \NR %D \stoptabulation}} %D %D \placefigure %D {whow} %D {\placelegend[n=2] %D {\externalfigure[cow]} %D {\starttabulation %D \NC 1 \NC head \NC \NR %D \NC 2 \NC legs \NC \NR %D \NC 3 \NC tail \NC \NR %D \stoptabulation}} %D %D \placefigure %D {whow} %D {\placelegend[n=2] %D {\externalfigure[cow]} %D {head \par legs \par tail}} %D %D \placefigure %D {whow} %D {\placelegend[n=2] %D {\externalfigure[cow]} %D {\startitemize[packed] %D \item head \item legs \item tail \item belly \item horns %D \stopitemize}} %D %D \placefigure %D {whow} %D {\placelegend[n=2,width=.8\hsize] %D {\externalfigure[cow]} %D {\startitemize[packed] %D \item head \item legs \item tail \item belly \item horns %D \stopitemize}} %D \stoptyping \newbox\firstpairedbox \newbox\secondpairedbox \def\definepairedbox {\dodoubleempty\dodefinepairedbox} \def\dodefinepairedbox[#1][#2]% {\getparameters [\??ld#1] [\c!n=1, \c!distance=\bodyfontsize, \c!before=, \c!after=, \c!color=, \c!style=, \c!inbetween={\blank[\v!medium]}, \c!width=\hsize, \c!height=\vsize, \c!maxwidth=\textwidth, % \makeupwidth, \c!maxheight=\textheight, % \makeupheight, \c!bodyfont=, \c!align=, \c!location=\v!bottom, #2]% \setvalue{\e!setup#1\e!endsetup}{\setuppairedbox[#1]}% \setvalue{\e!place#1}{\placepairedbox[#1]}} \def\setuppairedbox {\dodoubleempty\dosetuppairedbox} \def\dosetuppairedbox[#1]% {\getparameters[\??ld#1]} \def\placepairedbox {\bgroup\dodoubleempty\doplacepairedbox} \def\doplacepairedbox[#1][#2]% watch the hsize/vsize tricks {\setuppairedbox[#1][#2]% % and don't change them \copyparameters % brrr [\??ld][\??ld#1] [\c!n,\c!distance,\c!inbetween,\c!before,\c!after, \c!width,\c!height,\c!maxwidth,\c!maxheight, \c!color,\c!style,\c!bodyfont,\c!align,\c!location]% \@@ldbefore\bgroup \global\setsystemmode{pairedbox}% \beforefirstpairedbox \dowithnextbox {\betweenbothpairedboxes \dowithnextbox {\afterbothpairedboxes \egroup\@@ldafter \egroup} \vbox\bgroup \insidesecondpairedbox \let\next=} \hbox} \def\beforefirstpairedbox {\chardef\pairedlocationa1 % left \chardef\pairedlocationb4 % middle \getfromcommacommand[\@@ldlocation][1]% \processaction [\commalistelement] [ \v!left=>\chardef\pairedlocationa0, \v!right=>\chardef\pairedlocationa1, \v!top=>\chardef\pairedlocationa2, \v!bottom=>\chardef\pairedlocationa3]% \getfromcommacommand[\@@ldlocation][2]% \processaction [\commalistelement] [ \v!left=>\chardef\pairedlocationb0, \v!right=>\chardef\pairedlocationb1, \v!high=>\chardef\pairedlocationb2, \v!top=>\chardef\pairedlocationb2, \v!low=>\chardef\pairedlocationb3, \v!bottom=>\chardef\pairedlocationb3, \v!middle=>\chardef\pairedlocationb4]} \def\betweenbothpairedboxes {\switchtobodyfont[\@@ldbodyfont]% split under same regime \setbox\firstpairedbox\flushnextbox \ifnum\pairedlocationa<2 \hsize\wd\firstpairedbox % trick \hsize\@@ldwidth \scratchdimen\wd\firstpairedbox \advance\scratchdimen \@@lddistance \bgroup\advance\scratchdimen \hsize \ifdim\scratchdimen>\@@ldmaxwidth\relax \egroup \hsize\@@ldmaxwidth \advance\hsize -\scratchdimen \else \egroup \fi \else \hsize\wd\firstpairedbox \hsize\@@ldwidth % can be \hsize \ifdim\hsize>\@@ldmaxwidth\relax \hsize\@@ldmaxwidth \fi % can be \hsize \fi \ifnum\@@ldn>\plusone \setrigidcolumnhsize\hsize\@@lddistance\@@ldn \fi} \def\afterbothpairedboxes {\setbox\secondpairedbox\vbox {% \localstartcolor[\@@ldcolor]% does not work yet \ifnum\@@ldn>1 \rigidcolumnbalance\nextbox \else \flushnextbox \fi }% \localstopcolor}% \ifnum\pairedlocationa<2\hbox\else\vbox\fi\bgroup % hide vsize \forgetall \ifnum\pairedlocationa<2 \scratchdimen\maxoftwoboxdimens\ht\firstpairedbox\secondpairedbox \vsize\scratchdimen \ifdim\scratchdimen<\@@ldheight\relax % can be \vsize \scratchdimen\@@ldheight \fi \ifdim\scratchdimen>\@@ldmaxheight\relax \scratchdimen\@@ldmaxheight \fi \valignpairedbox\firstpairedbox \scratchdimen \valignpairedbox\secondpairedbox\scratchdimen \else \scratchdimen\maxoftwoboxdimens\wd\firstpairedbox\secondpairedbox \halignpairedbox\firstpairedbox \scratchdimen \halignpairedbox\secondpairedbox\scratchdimen \scratchdimen\ht\secondpairedbox \vsize\scratchdimen \ifdim\ht\secondpairedbox<\@@ldheight\relax % can be \vsize \scratchdimen\@@ldheight\relax % \relax needed \fi \ifdim\scratchdimen>\@@ldmaxheight\relax % todo: totale hoogte \scratchdimen\@@ldmaxheight\relax % \relax needed \fi \ifdim\scratchdimen>\ht\secondpairedbox \setbox\secondpairedbox\vbox to \scratchdimen {\ifnum\pairedlocationa=3 \vss\fi % \box\secondpairedbox \ifnum\pairedlocationa=2 \vss\fi}% \kern\zeropoint \fi \fi \ifcase\pairedlocationa \box\secondpairedbox\hskip\@@lddistance\box\firstpairedbox \or \box\firstpairedbox \hskip\@@lddistance\box\secondpairedbox\or \box\secondpairedbox\endgraf \nointerlineskip \@@ldinbetween \box\firstpairedbox \or \box\firstpairedbox \endgraf \nointerlineskip \@@ldinbetween \box\secondpairedbox\else \fi \egroup} \def\insidesecondpairedbox {\forgetall \setupalign[\@@ldalign]% \tolerantTABLEbreaktrue % hm. \blank[\v!disable]% \everypar{\begstrut}} \def\maxoftwoboxdimens#1#2#3% {#1\ifdim#1#2>#1#3 #2\else#3\fi} \def\valignpairedbox#1#2% {\setbox#1\vbox to #2 {\ifcase\pairedlocationb\or\or\or\vss\or\vss\fi \box#1\relax \ifcase\pairedlocationb\or\or\vss\or\or\vss\fi}} \def\halignpairedbox#1#2% {\setbox#1\hbox to #2 {\ifcase\pairedlocationb\or\hss\or\or\or\hss\fi \box#1\relax \ifcase\pairedlocationb\hss\or\or\or\or\hss\fi}} \definepairedbox[\v!legend] %D Goody: \appendtoks \global\resetsystemmode{combination}% \global\resetsystemmode{pairedbox}% \to \everyinsidefloat % todo: \startcombination \startcomb \stopcomb ... \newcount\horcombination % counter \newcount\totcombination \def\definecombination {\dodoubleempty\dodefinecombination} \def\dodefinecombination[#1][#2]% {\copyparameters [\??co#1][\??co] [\c!width,\c!height,\c!distance,\c!location,% \c!before,\c!inbetween,\c!after,\c!align,% \c!style,\c!color]% \getparameters [\??co#1][#2]} \def\setupcombinations {\dodoubleempty\dosetupcombinations} \def\dosetupcombinations[#1][#2]% {\ifsecondargument \getparameters[\??co#1][#2]% \else \getparameters[\??co][#1]% \fi} \def\combinationparameter#1% {\csname\??co\currentcombination#1\endcsname}% \def\startcombination {\bgroup % so we can grab a group \dodoubleempty\dostartcombination} % \startcombination {alpha} {a} {beta} {b} \stopcombination % \startcombination[2*1] {alpha} {a} {beta} {b} \stopcombination % \startcombination[1*2] {alpha} {a} {beta} {b} \stopcombination % \startcombination[2] {alpha} {a} {beta} {b} \stopcombination \def\dostartcombination[#1][#2]% {\global\setsystemmode{combination}% \doifnothing{#1}\firstargumentfalse % to be sure (when called in macros) \doifnothing{#2}\secondargumentfalse % to be sure (when called in macros) \ifsecondargument \def\currentcombination{#1}% \edef\currentcombinationspec{#2*1*}% \else % better : \doifcombinationelse ... \??co#1\c!location \doifinstringelse{*}{#1} {\let\currentcombination\empty \edef\currentcombinationspec{#1*1*}} {\doifnumberelse{#1} {\let\currentcombination\empty \edef\currentcombinationspec{#1*1*}} {\def\currentcombination{#1}% \edef\currentcombinationspec{2*1*}}}% \fi \forgetall \doifelse{\combinationparameter\c!height}\v!fit \vbox {\vbox to \combinationparameter\c!height}% \bgroup \expanded{\dodostartcombination[\currentcombinationspec]}} \long\def\dodostartcombination[#1*#2*#3]% {\setuphorizontaldivision [\c!n=\v!fit,\c!distance=\combinationparameter\c!distance]% \global\horcombination#1% \global\totcombination#2% \global\setbox\combinationstack\emptybox \xdef\maxhorcombination{\the\horcombination}% \multiply\totcombination\horcombination \tabskip\zeropoint \doifelse{\combinationparameter\c!width}\v!fit {\halign}{\halign to \combinationparameter\c!width}% \bgroup&% %\hfil##\hfil% now : location={left,top} \expanded{\doifnotinset{\v!left}{\combinationparameter\c!location}}\hfil ##% \expanded{\doifnotinset{\v!right}{\combinationparameter\c!location}}\hfil &\tabskip\zeropoint \!!plus 1fill##\cr \docombination} \def\docombination % we want to add struts but still ignore an empty box {\dowithnextbox {\setbox0\flushnextbox \dowithnextbox {\setbox2\flushnextbox \dodocombination}% \vtop\bgroup \def\next {\futurelet\nexttoken\nextnext}% \def\nextnext {\ifx\nexttoken\egroup \else % the next box is empty \hsize\wd0 \setupalign[\combinationparameter\c!align]% \dostartattributes{\??co\currentcombination}\c!style\c!color\empty \bgroup \aftergroup\endstrut \aftergroup\dostopattributes \aftergroup\egroup \begstrut \fi}% \afterassignment\next\let\nexttoken=} \hbox} % stupid version, does not align top stuff when captions, % keep as example % % \def\dodocombination % {\vbox % {\forgetall % \setupwhitespace[\v!none]% % \let\next\vbox % \ExpandFirstAfter\processallactionsinset % [\combinationparameter\c!location] % [ \v!top=>\let\next\tbox, % \v!middle=>\let\next\halfwaybox]% % \next{\copy0}% % \ifdim\ht2>\zeropoint % beter dan \wd2, nu \strut mogelijk % \combinationparameter\c!inbetween % %\vtop % wrong code % % {\nointerlineskip % recently added % % \hsize\wd0 % % \setupalign[\combinationparameter\c!align]% % \raggedcenter % % \begstrut\unhbox2\endstrut}% % \box2 % \fi}% % \ifnum\totcombination>\plusone % \global\advance\totcombination\minusone % \global\advance\horcombination\minusone % \ifnum\horcombination=\zerocount % \def\next % {\cr\noalign % {\forgetall % \setupwhitespace[\v!geen]% no % \nointerlineskip % \combinationparameter\c!before % \combinationparameter\c!after % \vss % \nointerlineskip}% % \global\horcombination\maxhorcombination\relax % \docombination}% % \else % \def\next % {&&&\hskip\combinationparameter\c!distance&\docombination}% % \fi % \else % \def\next % {\cr\egroup}% % \fi % \next} % \def\dodocombination % {\vbox % {\forgetall % \setupwhitespace[\v!none]% % \let\next\vbox % \ExpandFirstAfter\processallactionsinset % [\combinationparameter\c!plaats] % [ \v!top=>\let\next\tbox, % \v!middle=>\let\next\halfwaybox]% % \next{\copy0}% % % we need to save the caption for a next alignment line % \saveoncombinationstack2}% % \ifnum\totcombination>\plusone % \global\advance\totcombination\minusone % \global\advance\horcombination\minusone % \ifnum\horcombination=\zerocount % \def\next % {\cr % \flushcombinationstack % \noalign % {\forgetall % \setupwhitespace[\v!none]% no % \global\setbox\combinationstack\emptybox % \nointerlineskip % \combinationparameter\c!after % \combinationparameter\c!before % \vss % \nointerlineskip}% % \global\horcombination\maxhorcombination\relax % \docombination}% % \else % \def\next % {&&&\hskip\combinationparameter\c!distance&\docombination}% % \fi % \else % \def\next % {\cr % \flushcombinationstack % \egroup}% % \fi % \next} \def\depthonlybox {\dowithnextbox{\vtop{\hsize\wd\nextbox\kern\zeropoint\box\nextbox}}\vbox} % \def\boxwithstrutheight % {\dowithnextbox % {\scratchdimen\strutheight % \advance\scratchdimen-\nextboxht % \hbox{\raise\scratchdimen\box\nextbox}}% % \vbox} \def\dodocombination {\vbox {\forgetall % \setupwhitespace[\v!none]% \let\next\vbox \expanded{\processallactionsinset[\combinationparameter\c!location]} [ \v!top=>\let\next\depthonlybox, % \tbox, \v!middle=>\let\next\halfwaybox]% \next{\copy0}% % we need to save the caption for a next alignment line \saveoncombinationstack2}% \ifnum\totcombination>\plusone \global\advance\totcombination\minusone \global\advance\horcombination\minusone \ifnum\horcombination=\zerocount \def\next {\cr \flushcombinationstack \noalign {\forgetall % \setupwhitespace[\v!none]% no \global\setbox\combinationstack\emptybox \nointerlineskip \combinationparameter\c!after \combinationparameter\c!before \vss \nointerlineskip}% \global\horcombination\maxhorcombination\relax \docombination}% \else \def\next {&&&\hskip\combinationparameter\c!distance&\docombination}% \fi \else \def\next {\cr \flushcombinationstack \egroup}% \fi \next} % formally ok: % % \def\stopcombination % {\egroup % \egroup} % % more robust: % % \def\stopcombination % {{}{}{}{}{}{}{}{}% catches (at most 4) missing entries % \egroup % \egroup} % % even better: \def\stopcombination {{\scratchtoks{{}{}{}}\dorecurse\totcombination{\appendtoks{}{}{}{}\to\scratchtoks}\expandafter}\the\scratchtoks \egroup \egroup} \newbox\combinationstack \def\saveoncombinationstack#1% {\global\setbox\combinationstack\hbox {\hbox{\box#1}\unhbox\combinationstack}} \def\flushcombinationstack {\noalign {\ifdim\ht\combinationstack>\zeropoint \nointerlineskip % nieuw \combinationparameter\c!inbetween \global\horcombination\maxhorcombination \globallet\doflushcombinationstack\dodoflushcombinationstack \else \global\setbox\combinationstack\emptybox \globallet\doflushcombinationstack\donothing \fi}% \doflushcombinationstack\crcr} \gdef\dodoflushcombinationstack {\global\setbox\combinationstack\hbox {\unhbox\combinationstack \global\setbox1\lastbox}% \box1% \ruledhbox{\box1}% \global\advance\horcombination\minusone\relax \ifnum\horcombination>\zerocount \def\next{&&&&\doflushcombinationstack}% \else \global\setbox\combinationstack\emptybox %\let\next\relax \@EA\gobbleoneargument \fi \next} \setupcombinations [\c!width=\v!fit, \c!height=\v!fit, \c!distance=1em, \c!location=\v!bottom, % can be something {top,left} \c!before=\blank, \c!inbetween={\blank[\v!medium]}, \c!style=, \c!color=, \c!after=, \c!align=\v!middle] %D \macros %D {startfloatcombination} %D %D \setupexternalfigures[directory={../sample}] %D \startbuffer %D \placefigure %D [left,none] %D {} %D {\startfloatcombination[2*2] %D \placefigure{alpha}{\externalfigure[cow.pdf][width=1cm]} %D \placefigure{beta} {\externalfigure[cow.pdf][width=2cm]} %D \placefigure{gamma}{\externalfigure[cow.pdf][width=3cm]} %D \placefigure{delta}{\externalfigure[cow.pdf][width=4cm]} %D \stopfloatcombination} %D %D \input tufte %D \stopbuffer %D %D \typebuffer \getbuffer \def\startfloatcombination {\dodoubleempty\dostartfloatcombination} \def\dostartfloatcombination[#1][#2]% {\vbox\bgroup %\insidecolumnstrue % trick, forces no centering, todo: proper switch/feature \chardef\postcenterfloatmethod\zerocount \forcelocalfloats \def\stopfloatcombination {\scratchtoks\emptytoks \dorecurse\noflocalfloats {\appendetoks{\noexpand\getlocalfloat{\recurselevel}}{}\to\scratchtoks}% \expanded{\startcombination[#1]\the\scratchtoks}\stopcombination \resetlocalfloats \egroup}} \def\placerelativetoeachother#1#2% {\bgroup \dowithnextbox {\bgroup \setbox0\box\nextbox \dowithnextbox {\setbox2\box\nextbox #1{#2#########2\cr\box0\cr\box2\cr} \egroup \egroup} \hbox} \hbox} \def\placeontopofeachother{\placerelativetoeachother\halign\hss} \def\placesidebyside {\placerelativetoeachother\valign\vss} % this will be replaced or go away, never used \def\douseexternalfiles[#1][#2]% {\getparameters [\??fi#1] [\c!file=, \c!bodyfont=, \c!option=, #2]} \def\useexternalfiles {\dodoubleargument\douseexternalfiles} \def\dostelexternefilesin[#1][#2]% {\doifundefinedelse{\??fi#1\c!file} {\useexternalfiles[#1][#2]} {\getparameters[\??fi#1][#2]}} \def\stelexternefilesin {\dodoubleargument\dostelexternefilesin} \def\verwerkexternefile#1#2#3% {\bgroup \getparameters[\??fi#1][\c!file=,#3]% \doinputonce{\getvalue{\??fi#1\c!file}}% \ExpandFirstAfter\switchtobodyfont[\getvalue{\??fi#1\c!bodyfont}]% \readsysfile{#2} % beter: loc of fix gebied \donothing {\showmessage\m!systems{41}{#2,#1}}% \egroup} \def\douseexternalfile[#1][#2][#3][#4]% {\stelexternefilesin[#1][]% \doinputonce{\getvalue{\??fi#1\c!file}}% \doifelsenothing{#2} {\setvalue{#3}{\verwerkexternefile{#1}{#3}{#4}}} {\setvalue{#2}{\verwerkexternefile{#1}{#3}{#4}}}} \def\useexternalfile {\doquadrupleargument\douseexternalfile} \useexternalfiles [pictex] [\c!bodyfont=\v!small, \c!file=pictex] \useexternalfiles [table] [\c!file=table] %D A couple of examples, demonstrating how the depth is %D taken care of: %D %D \startbuffer %D test\rotate[frame=on, rotation=0] {gans}% %D test\rotate[frame=on, rotation=90] {gans}% %D test\rotate[frame=on, rotation=180]{gans}% %D test\rotate[frame=on, rotation=270]{gans}% %D test %D \stopbuffer %D %D \typebuffer \getbuffer % When we rotate over arbitrary angles, we need to relocate the % resulting box because rotation brings that box onto the negative % axis. The calculations (mostly sin and cosine) need to be tuned for % the way a box is packages (i.e. the refence point). A typical example % of drawing, scribbling, and going back to the days of school math. % % We do a bit more calculations than needed, simply because that way % it's easier to debug the code. \def\dododorotatenextbox {\setbox\nextbox\vbox to \@@layerysiz {\vfill \hbox to \@@layerxsiz {\dostartrotation\@@rorotation \nextboxwd\zeropoint \nextboxht\zeropoint \flushnextbox \dostoprotation \hfill}% \kern\@@layerypos}% \setbox\nextbox\hbox {\kern\@@layerxpos \kern\@@layerxoff \lower\@@layeryoff\flushnextbox}} \def\dodorotatenextbox#1#2% quite some trial and error -) {\dontshowcomposition \dontcomplain \ifnum#2=\plusfour % new, location=middle \!!widthb \nextboxwd \!!heightb\nextboxht \!!depthb \nextboxdp \setbox\nextbox\vbox{\vskip.5\nextboxht\hskip-.5\nextboxwd\flushnextbox}% \smashbox\nextbox \fi \!!widtha \nextboxwd \!!heighta\nextboxht \!!deptha \nextboxdp \!!doneafalse \!!donebfalse \ifcase#2\or % 1: fit \or % 2: depth, not fit \!!doneatrue \!!donebtrue \or % 3: depth, fit \!!donebtrue \fi \setbox\nextbox\vbox{\hbox{\raise\nextboxdp\flushnextbox}}% \!!dimena \nextboxht \setcalculatedcos\cos\@@rorotation \setcalculatedsin\sin\@@rorotation \@@layerxpos\zeropoint \@@layerypos\zeropoint \@@layerxoff\zeropoint \@@layeryoff\zeropoint \ifdim\sin\points>\zeropoint \ifdim\cos\points>\zeropoint \@@layerxsiz \cos\!!widtha \@@layerysiz \sin\!!widtha \advance\@@layerxsiz \sin\!!dimena \advance\@@layerysiz \cos\!!dimena \@@layerypos \cos\!!dimena \if!!donea \@@layerxoff \negated\sin\!!dimena \advance\@@layerxoff \sin\!!deptha \fi \if!!doneb \@@layeryoff \cos\!!deptha \fi \dododorotatenextbox \else \@@layerxsiz \negated\cos\!!widtha \@@layerysiz \sin\!!widtha \advance\@@layerxsiz \sin\!!dimena \advance\@@layerysiz \negated\cos\!!dimena \@@layerxpos \negated\cos\!!widtha \if!!donea \@@layerxoff -\@@layerxsiz \advance\@@layerxoff \sin\!!deptha \fi \if!!doneb \@@layeryoff \negated\cos\!!heighta \fi \dododorotatenextbox \wd\nextbox\if!!donea\sin\!!deptha\else\@@layerxsiz\fi \fi \else \ifdim\cos\points<\zeropoint \@@layerxsiz \negated\cos\!!widtha \@@layerysiz \negated\sin\!!widtha \advance\@@layerxsiz \negated\sin\!!dimena \advance\@@layerysiz \negated\cos\!!dimena \@@layerxpos \@@layerxsiz \@@layerypos \negated\sin\!!widtha \if!!donea \@@layerxoff -\@@layerxsiz \advance\@@layerxoff \negated\sin\!!heighta \fi \if!!doneb \@@layeryoff \@@layerysiz \advance\@@layeryoff \cos\!!deptha \fi \dododorotatenextbox \wd\nextbox\if!!donea\negated\sin\!!heighta\else\@@layerxsiz\fi \else \@@layerxsiz \cos\!!widtha \@@layerysiz \negated\sin\!!widtha \advance\@@layerxsiz \negated\sin\!!dimena \advance\@@layerysiz \cos\!!dimena \ifdim\sin\points=\zeropoint \@@layerxpos \zeropoint \@@layerxoff \zeropoint \@@layerypos \@@layerysiz \if!!doneb \@@layeryoff \!!deptha \fi \else \@@layerypos \@@layerysiz \@@layerxpos \negated\sin\!!dimena \if!!donea \@@layerxoff -\@@layerxsiz \advance\@@layerxoff \negated\sin\!!heighta \fi \if!!doneb \@@layeryoff \negated\sin\!!deptha \fi \fi \dododorotatenextbox \ifdim\sin\points=\zeropoint \else \wd\nextbox\if!!donea\negated\sin\!!heighta\else\@@layerxsiz\fi \fi \fi \fi % new, location=middle \ifnum#2=\plusfour \setbox\nextbox\vbox{\vskip-.5\!!heightb\hskip.5\!!heightb\flushnextbox}% \nextboxwd\!!widthb \nextboxht\!!heightb \nextboxdp\!!depthb \fi} \def\dorotatenextbox#1#2% {\doifsomething{#1} {\edef\@@rorotation{\realnumber{#1}}% get rid of leading zeros and spaces \setbox\nextbox\vbox{\flushnextbox}% not really needed \dodorotatenextbox\@@rorotation#2}% \hbox{\boxcursor\flushnextbox}} \def\dodorotatebox#1% {angle} \hbox/\vbox/\vtop {\bgroup\hbox\bgroup % compatibility hack \dowithnextbox {\dorotatenextbox{#1}\plusone \egroup\egroup}} \def\dorotatebox#1% {angle} \hbox/\vbox/\vtop {\ifcase#1\relax \expandafter\gobbleoneargument \else \expandafter\dodorotatebox \fi{#1}} \unexpanded\def\rotate % \bgroup: \rotate kan argument zijn {\bgroup\complexorsimpleempty\rotate} % \def\complexrotate[#1]% framed met diepte ! % {\getparameters[\??ro][#1]% % \processaction % [\@@rolocation] % [ \v!depth=>\!!counta\plusthree\donefalse,% depth fit - raw box % \v!fit=>\!!counta\plustwo \donefalse,% depth tight - raw box % \v!broad=>\!!counta\plusone \donefalse,% nodepth fit - raw box % \v!high=>\!!counta\plusone \donetrue ,% nodepth fit - framed % \v!middle=>\!!counta\plusfour \donefalse,% centered, keep dimensions % \s!default=>\!!counta\plusthree\donetrue ,% depth fit - framed % \s!unknown=>\!!counta\plusthree\donetrue ]% depth fit - framed % \ifdone % \def\docommand{\localframed[\??ro][#1,\c!location=]}% % \else % \let\docommand\relax % \fi % \dowithnextbox{\dorotatenextbox\@@rorotation\!!counta\egroup}\vbox\docommand} \setvalue{\??ro::\c!location::\v!depth }{\!!counta\plusthree\donefalse} % depth fit - raw box \setvalue{\??ro::\c!location::\v!fit }{\!!counta\plustwo \donefalse} % depth tight - raw box \setvalue{\??ro::\c!location::\v!broad }{\!!counta\plusone \donefalse} % nodepth fit - raw box \setvalue{\??ro::\c!location::\v!high }{\!!counta\plusone \donetrue } % nodepth fit - framed \setvalue{\??ro::\c!location::\v!middle }{\!!counta\plusfour \donefalse} % centered, keep dimensions \setvalue{\??ro::\c!location::\v!default}{\!!counta\plusthree\donetrue } % depth fit - framed \def\complexrotate[#1]% framed met diepte ! {\getparameters[\??ro][#1]% \executeifdefined{\??ro::\c!location::\@@rolocation}{\!!counta\plusthree\donetrue}% \ifdone \def\docommand{\localframed[\??ro][#1,\c!location=]}% \else \let\docommand\relax \fi \dowithnextbox{\dorotatenextbox\@@rorotation\!!counta\egroup}\vbox\docommand} \presetlocalframed[\??ro] \def\setuprotate {\dodoubleargument\getparameters[\??ro]} \setuprotate [\c!rotation=90, \c!location=\v!normal, \c!width=\v!fit, \c!height=\v!fit, \c!offset=\v!overlay, \c!frame=\v!off] % \dostepwiserecurse{0}{360}{10} % {\startlinecorrection[blank] % \hbox % {\expanded{\setuprotate[rotation=\recurselevel]}% % \traceboxplacementtrue % \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=depth] {\ruledhbox{\bfb (depth)}}}}% % \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=fit] {\ruledhbox{\bfb (fit)}}}}% % \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=broad] {\ruledhbox{\bfb (broad)}}}}% % \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=normal]{\ruledhbox{\bfb (normal)}}}}% % \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=high] {\ruledhbox{\bfb (high)}}}}} % \stoplinecorrection} % to be used in some other places! todo! % % divides \hsize in fractions, will be made a bit more % clever and advanced when needed % % \horizontaldivision[n/m,elements,distance] % % \horizontaldivision[2/5,3,1em] % \horizontaldivision[2/5,3,1em] % \horizontaldivision[1/5,3,1em] % % \setuphorizontaldivision[afstand=,aantal=] (passend,passend) \def\??fr{@@fr} \def\setuphorizontaldivision {\dodoubleargument\getparameters[\??fr]} \def\horizontaldivision {\dosingleargument\dohorizontaldivision} \def\dohorizontaldivision[#1]% {\dodohorizontaldivision[#1,,,,,,]} \def\dodohorizontaldivision[#1/#2,#3,#4,#5]% {\doifelsenothing{#3} {\doifelse\@@frn\v!fit {\!!counta#2\relax} {\!!counta\@@frn\relax}} {\!!counta#3\relax}% \doifelsenothing{#4} {\doifelse\@@frdistance\v!fit {\!!widtha\zeropoint} {\!!widtha\@@frdistance}} {\!!widtha#4}% \advance\!!counta \minusone \multiply\!!widtha \!!counta \advance\hsize -\!!widtha \divide\hsize #2\relax \hsize#1\hsize} \setuphorizontaldivision [\c!distance=\tfskipsize, \c!n=\v!fit] %D This one is for Daniel Pittman, who wanted tight %D fractions. We show three versions. First the simple %D one using \type {\low} and \type {high}: %D %D \startbuffer %D \def\vfrac#1#2% %D {\hbox{\high{\tx#1\kern-.25em}/\low{\kern-.25em\tx#2}}} %D %D test \vfrac{1}{2} test \vfrac{123}{456} test %D \stopbuffer %D %D \typebuffer {\showmakeup\getbuffer} %D %D A better way to handle the kerning is the following, here %D we kind of assume that tye slash is symmetrical and has %D nearly zero width. %D %D \startbuffer %D \def\vfract#1#2% %D {\hbox{\high{\tx#1}\hbox to \zeropoint{\hss/\hss}\low{\tx#2}}} %D \stopbuffer %D %D \typebuffer {\showmakeup\getbuffer} %D %D The third and best alternative is the following: %D %D {\showmakeup\getbuffer}\crlf\getbuffer %D %D This time we measure the height of the \type {/} and %D shift over the maximum height and depths of this %D character and the fractional digits (we use 57 as %D sample). Here we combine all methods in one macros. \chardef\vulgarfractionmethod=3 \definehspace[vulgarfraction][.25em] % [.15em] \definesymbol[vulgarfraction][/] % [\raise.2ex\hbox{/}] \unexpanded\def\vulgarfraction#1#2% {\dontleavehmode \hbox {\def\vulgarfraction{vulgarfraction}% \ifcase\vulgarfractionmethod #1\symbol[\vulgarfraction]#2% \or \high{\tx#1\kern-\hspaceamount\empty\vulgarfraction}% \symbol[\vulgarfraction]% \low {\kern-\hspaceamount\empty\vulgarfraction\tx#2}% \or \high{\tx#1}% \hbox to \zeropoint{\hss\symbol[\vulgarfraction]\hss}% \low{\tx#2}% \or \setbox0\hbox{\symbol[\vulgarfraction]}% \setbox2\hbox{\txx57}% \raise\ht0\hbox{\lower\ht2\hbox{\txx#1}}% \hbox to \zeropoint{\hss\symbol[\vulgarfraction]\hss}% \lower\dp0\hbox{\raise\dp2\hbox{\txx#2}}% \fi}} \ifx\vfrac\undefined \let\vfrac\vulgarfraction \fi %D \starttabulate %D \HL %D \NC \bf method \NC \bf visualization \NC\NR %D \HL %D \NC 0 \NC \chardef\vulgarfractionmethod0\vulgarfraction{1}{2} \NC\NR %D \NC 1 \NC \chardef\vulgarfractionmethod1\vulgarfraction{1}{2} \NC\NR %D \NC 2 \NC \chardef\vulgarfractionmethod2\vulgarfraction{1}{2} \NC\NR %D \NC 3 \NC \chardef\vulgarfractionmethod3\vulgarfraction{1}{2} \NC\NR %D \HL %D \stoptabulate %D Under construction: %D %D \starttyping %D \commalistsentence[aap,noot,mies] %D \commalistsentence[aap,noot] %D \commalistsentence[aap] %D \commalistsentence[a,b,c] %D \commalistsentence[a,b,c][{ \& },{ and }] %D \commalistsentence[a,b,c][+,-] %D \stoptyping \let\handlecommalistsentence\firstofoneargument \def\commalistsentenceone{and-1} \def\commalistsentencetwo{and-2} \def\commalistsentence {\dodoubleempty\docommalistsentence} \def\docommalistsentence[#1][#2]% {\bgroup \getfromcommalist[#2][1]% \ifx\commalistelement\empty \def\@@commalistsentenceone{\labeltext\commalistsentenceone}% \else \let\@@commalistsentenceone\commalistelement \fi \getfromcommalist[#2][2]% \ifx\commalistelement\empty \def\@@commalistsentencetwo{\labeltext\commalistsentencetwo}% \else \let\@@commalistsentencetwo\commalistelement \fi \getcommalistsize[#1]% \ifcase\commalistsize\relax \def\serializedcommalist{#1}% \else \let\serializedcommalist\empty \scratchcounter\zerocount \def\docommand##1% {\advance\scratchcounter \plusone \ifnum\scratchcounter=\plusone \scratchtoks{\handlecommalistsentence{##1}}% \else \ifnum\scratchcounter=\commalistsize \appendtoks\@@commalistsentencetwo\handlecommalistsentence{##1}\to\scratchtoks \else \appendtoks\@@commalistsentenceone\handlecommalistsentence{##1}\to\scratchtoks \fi \fi}% \processcommacommand[#1]\docommand \edef\serializedcommalist{\the\scratchtoks}% \fi \serializedcommalist \egroup} \def\commacommandsentence[#1]{\@EA\commalistsentence\@EA[#1]} \ifx\textcomma\undefined \def\textcomma{,} \fi \setuplabeltext [\s!nl] [and-1=\textcomma\ , and-2= en ] \setuplabeltext [\s!en] [and-1=\textcomma\ , and-2=\textcomma\ and ] \setuplabeltext [\s!de] [and-1=\textcomma\ , and-2= und ] \setuplabeltext [\s!hr] [and-1=\textcomma\ , and-2= i ] %D \macros %D {somekindoftab} %D %D This macro can be used to create tabs: %D %D \starttyping %D \setupheadertexts[{\somekindoftab[alternative=horizontal]{\framed{\realfolio}}}] %D \setuptexttexts [{\somekindoftab[alternative=vertical] {\framed{\realfolio}}}] %D %D \starttext %D \showframe \dorecurse{10}{test\page} %D \stoptext %D \stoptyping \def\somekindoftab {\dosingleempty\dosomekindoftab} \def\dosomekindoftab[#1]% {\bgroup \getparameters[xx] [\c!alternative=\v!vertical, \c!width=\textwidth,\c!height=\textheight, \c!n=\lastpage,\c!m=\realpageno, #1]% \doifelse\xxalternative\v!vertical {\dodosomekindoftab\vbox\vskip\xxheight} {\dodosomekindoftab\hbox\hskip\xxwidth }} \def\dodosomekindoftab#1#2#3#4% {#1 to #3 \bgroup \forgetall \ifnum\xxm>\plusone #2\zeropoint \!!plus \the\numexpr\xxm -1\relax fill\relax \fi #4% \ifnum\xxm<\xxn\relax #2\zeropoint \!!plus \the\numexpr\xxn-\xxm\relax fill\relax \fi \egroup \egroup} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-mfr.mkii0000644000175000017500000003205714536300610024725 0ustar hillehille\setinterfacemessage{references}{1}{réference -- inconnue} \setinterfacemessage{references}{30}{objet -- inconnu} \setinterfacemessage{references}{3}{type -- de réference inconnu} \setinterfacemessage{references}{2}{réference -- dupliquée à la page --} \setinterfacemessage{references}{5}{number of unknown references: --} \setinterfacemessage{references}{4}{réference -- inconnue} \setinterfacemessage{references}{6}{number of illegal references: --} \setinterfacemessage{references}{25}{references from document '--' are not imported (export again)} \setinterfacemessage{references}{24}{references from document '--' are not exported} \setinterfacemessage{references}{title}{réferences} \setinterfacemessage{references}{26}{references from document '--' are imported} \setinterfacemessage{references}{31}{objet -- dupliqué} \setinterfacemessage{references}{21}{document -- chargé} \setinterfacemessage{references}{22}{le document -- n'est pas interactif} \setinterfacemessage{references}{23}{reference -- indéterminé (préfixe=--)} \setinterfacemessage{documents}{1}{sheet --} \setinterfacemessage{documents}{title}{sheets} \setinterfacemessage{documents}{2}{number --} \setinterfacemessage{handlings}{1}{manipulation -- de police} \setinterfacemessage{handlings}{3}{manipulation -- inconnue de police} \setinterfacemessage{handlings}{2}{la manipulation -- de police est chargée} \setinterfacemessage{handlings}{title}{manipulation} \setinterfacemessage{systems}{title}{système} \setinterfacemessage{systems}{41}{le fichier externe -- du groupe -- n'existe pas} \setinterfacemessage{systems}{9}{-- non trouvé/traité} \setinterfacemessage{systems}{91}{papertray --} \setinterfacemessage{systems}{8}{nouvelle version de fichier utilitaire, seconde passe nécessaire} \setinterfacemessage{systems}{21}{pas de données utilitaires chargées} \setinterfacemessage{systems}{20}{signification (tris) de -- chargée} \setinterfacemessage{systems}{5}{module -- chargé} \setinterfacemessage{systems}{4}{la commande -- est déjà définie} \setinterfacemessage{systems}{27}{Version} \setinterfacemessage{systems}{26}{Registres} \setinterfacemessage{systems}{25}{Réferences} \setinterfacemessage{systems}{24}{blocsflottants} \setinterfacemessage{systems}{1}{chargement de fichier utilitaire reporté (typemode)} \setinterfacemessage{systems}{23}{-- arrangé à --} \setinterfacemessage{systems}{22}{utilise un fichier utilitaire valide} \setinterfacemessage{systems}{2}{-- chargé} \setinterfacemessage{systems}{19}{signification (synonymes) de -- chargée} \setinterfacemessage{systems}{18}{le synonyme -- -- n'existe pas} \setinterfacemessage{systems}{7}{module -- déjà chargé} \setinterfacemessage{systems}{6}{module -- non trouvé} \setinterfacemessage{systems}{14}{nouvellepage forcée dans la liste à --} \setinterfacemessage{systems}{15}{sauvegarde du tampon (buffer) --} \setinterfacemessage{systems}{16}{composition du tampon (buffer) --} \setinterfacemessage{systems}{17}{composition textuelle du tampon (buffer) --} \setinterfacemessage{systems}{13}{marquage -- defini --} \setinterfacemessage{systems}{12}{le fichier utilitaire n'est pas trié, utilise texutil} \setinterfacemessage{systems}{11}{construction util simple} \setinterfacemessage{systems}{10}{n'utilisez pas em dans --} \setinterfacemessage{floatblocks}{1}{-- renuméroté / -- => --} \setinterfacemessage{floatblocks}{3}{-- déplacé} \setinterfacemessage{floatblocks}{2}{-- sauvegardé} \setinterfacemessage{floatblocks}{5}{ordre adapté} \setinterfacemessage{floatblocks}{4}{-- placé} \setinterfacemessage{floatblocks}{7}{n flottants de bas de page limité à --} \setinterfacemessage{floatblocks}{6}{n flottants de haut de page limité à --} \setinterfacemessage{floatblocks}{9}{ordre perturbé} \setinterfacemessage{floatblocks}{8}{moins de -- lignes} \setinterfacemessage{floatblocks}{title}{blocs de flottants} \setinterfacemessage{floatblocks}{13}{there is nothing to split} \setinterfacemessage{floatblocks}{12}{indéfini} \setinterfacemessage{floatblocks}{11}{pas de bloc donné} \setinterfacemessage{floatblocks}{10}{-- limité} \setinterfacemessage{interactions}{1}{ratio d'aspect -- x -- (b x h)} \setinterfacemessage{interactions}{3}{inactif} \setinterfacemessage{interactions}{2}{actif} \setinterfacemessage{interactions}{5}{le fichier joint -- est inconnu} \setinterfacemessage{interactions}{4}{pas de synchronisation de page (--) dans le hmode} \setinterfacemessage{interactions}{6}{le fichier joint -- n'existe pas} \setinterfacemessage{interactions}{title}{interaction} \setinterfacemessage{interactions}{21}{-- code inseré} \setinterfacemessage{regimes}{1}{encodage --} \setinterfacemessage{regimes}{3}{encodage -- inconnu} \setinterfacemessage{regimes}{2}{l'encodage -- est chargé} \setinterfacemessage{regimes}{title}{encodage} \setinterfacemessage{structures}{1}{début de blocsection --} \setinterfacemessage{structures}{title}{structure} \setinterfacemessage{structures}{2}{fin de blocsection --} \setinterfacemessage{linguals}{1}{les motifs -- pour -- sont chargés (n=--,e=--,m=--)} \setinterfacemessage{linguals}{3}{hyphenations -- pour -- chargés (n=--,e=--,m=--)} \setinterfacemessage{linguals}{2}{pas de motifs -- pour -- (n=--,e=--,m=--) (--,--)} \setinterfacemessage{linguals}{5}{les motifs pour -- ne sont pas chargés} \setinterfacemessage{linguals}{4}{pas d'hyphenations -- pour -- (n=--,e=--,m=--)} \setinterfacemessage{linguals}{7}{les options spécifiques de langue [--] introduisent un -- saut} \setinterfacemessage{linguals}{6}{langue -- non définie} \setinterfacemessage{linguals}{9}{la langue -- est active} \setinterfacemessage{linguals}{8}{les options spécifiques de langue [--] sont ajoutés en douceur} \setinterfacemessage{linguals}{title}{langue} \setinterfacemessage{linguals}{10}{motifs -- chargés} \setinterfacemessage{verbatims}{1}{le fichier -- n'existe pas} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{le filtre -- est chargé} \setinterfacemessage{filters}{title}{filtre} \setinterfacemessage{filters}{2}{filtre -- inconnu} \setinterfacemessage{textblocks}{1}{nouvelle version, une seconde passe est nécessaire} \setinterfacemessage{textblocks}{3}{lecture des blocs en provenance de --} \setinterfacemessage{textblocks}{2}{ecriture des blocs vers --} \setinterfacemessage{textblocks}{5}{-- non caché} \setinterfacemessage{textblocks}{4}{seconde passe nécessaire} \setinterfacemessage{textblocks}{7}{-- caché} \setinterfacemessage{textblocks}{6}{-- caché et traité} \setinterfacemessage{textblocks}{9}{-- non composé} \setinterfacemessage{textblocks}{8}{-- composé} \setinterfacemessage{textblocks}{title}{blocs de texte} \setinterfacemessage{textblocks}{12}{-- sauté} \setinterfacemessage{textblocks}{11}{-- chargé et composé} \setinterfacemessage{textblocks}{10}{-- chargé et traité} \setinterfacemessage{encodings}{1}{encodage --} \setinterfacemessage{encodings}{3}{encodage -- inconnu} \setinterfacemessage{encodings}{2}{l'encodage -- est chargé} \setinterfacemessage{encodings}{title}{encodage} \setinterfacemessage{columns}{1}{seules -- colonnes possibles} \setinterfacemessage{columns}{3}{problèmes, désactive l'équilibrage} \setinterfacemessage{columns}{2}{utilisez \string\filbreak\space en tant qu'alternative} \setinterfacemessage{columns}{5}{flottant en partie inférieure pas encore supporté} \setinterfacemessage{columns}{4}{flottant en partie supérieure pas encore supporté} \setinterfacemessage{columns}{7}{équilibrage abandonné après 100 pas} \setinterfacemessage{columns}{6}{-- flottant(s) reporté(s)} \setinterfacemessage{columns}{9}{vérification des irrégularités} \setinterfacemessage{columns}{8}{équilibré en -- pas} \setinterfacemessage{columns}{title}{colonnes} \setinterfacemessage{columns}{13}{flottant large déplacé dans la partie supérieure de la colonne} \setinterfacemessage{columns}{12}{flottant déplacé à la colonne suivante / --} \setinterfacemessage{columns}{11}{flottant mis à la largeur de la colonne} \setinterfacemessage{columns}{10}{(moins de) 1 ligne restante} \setinterfacemessage{symbols}{1}{chargement du jeu de symbole --} \setinterfacemessage{symbols}{title}{symboles} \setinterfacemessage{files}{1}{le synonyme de fichier -- est déjà utilisé pour --} \setinterfacemessage{files}{title}{fichiers} \setinterfacemessage{versions}{1}{@+ manquant} \setinterfacemessage{versions}{3}{pages sélectionnées : --} \setinterfacemessage{versions}{2}{marquage des pages} \setinterfacemessage{versions}{title}{version} \setinterfacemessage{specials}{1}{-- chargé} \setinterfacemessage{specials}{3}{-- est remis à zéro} \setinterfacemessage{specials}{2}{pas d'imbracations plus profondes ne sont permises --} \setinterfacemessage{specials}{5}{chargement du fichier de définition --} \setinterfacemessage{specials}{4}{la commande -- n'existe pas} \setinterfacemessage{specials}{7}{pilote -- inconnu} \setinterfacemessage{specials}{6}{l'imbrication n'est pas permise} \setinterfacemessage{specials}{title}{specials} \setinterfacemessage{layouts}{1}{hauteurtexte adaptée avec -- à la page --} \setinterfacemessage{layouts}{3}{-- times text postponed} \setinterfacemessage{layouts}{2}{-- times postponed text placed} \setinterfacemessage{layouts}{5}{blocsmarge inactifs} \setinterfacemessage{layouts}{4}{blocsmarge actifs} \setinterfacemessage{layouts}{7}{calcul de l'espace pour le logo} \setinterfacemessage{layouts}{6}{jeu de souspage -- traité (taille --)} \setinterfacemessage{layouts}{9}{pas plus de -- niveaux pour l'instant dans les élémentarisations} \setinterfacemessage{layouts}{8}{calcul des arrières-plans} \setinterfacemessage{layouts}{title}{calque} \setinterfacemessage{layouts}{11}{espacement -- non permis en modegrille} \setinterfacemessage{layouts}{10}{-- et -- ne sont pas ajoutés à 1.0} \setinterfacemessage{fonts}{1}{encodage --} \setinterfacemessage{fonts}{3}{variante -- inconnue} \setinterfacemessage{fonts}{2}{la variante -- est chargée} \setinterfacemessage{fonts}{5}{le style -- n'est pas défini} \setinterfacemessage{fonts}{4}{policecorps -- n'est pas définie} \setinterfacemessage{fonts}{7}{format -- inconnu} \setinterfacemessage{fonts}{6}{-- est chargé} \setinterfacemessage{fonts}{14}{policecorps -- est défini (une définition globale pourrait être plus adéquat)} \setinterfacemessage{fonts}{8}{style -- défini} \setinterfacemessage{fonts}{title}{corps de texte} \setinterfacemessage{fonts}{10}{fichier de police -- inconnu} \setinterfacemessage{databases}{1}{--} \setinterfacemessage{databases}{3}{fichier global --} \setinterfacemessage{databases}{2}{fichier local --} \setinterfacemessage{databases}{4}{fichier inconnu --} \setinterfacemessage{databases}{title}{bases de données} \setinterfacemessage{publications}{1}{file -- not found, unknown style ignored} \setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux} \setinterfacemessage{publications}{title}{publications} \setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex} \setinterfacemessage{publications}{4}{loading database from --} \setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno} \setinterfacemessage{publications}{6}{loading formatting style from --} \setinterfacemessage{javascript}{1}{chargement du jeu de script --} \setinterfacemessage{javascript}{title}{javascript} \setinterfacemessage{javascript}{2}{préambule -- inconnu} \setinterfacemessage{check}{1}{manquant ou dégroupé '=' après '--' à la ligne --} \setinterfacemessage{check}{3}{-- -- remplace une macro, utilisez des MAJUSCULES !} \setinterfacemessage{check}{2}{-- argument(s) attendu(s) à la ligne --} \setinterfacemessage{check}{title}{vérification} \setinterfacemessage{metapost}{1}{chargement de la bibliothèque metapost --} \setinterfacemessage{metapost}{title}{metapost} \setinterfacemessage{figures}{1}{la figure -- ne peut être trouvée} \setinterfacemessage{figures}{3}{dimensions of -- are determined externally} \setinterfacemessage{figures}{2}{la figure -- n'est pas pré-sélectionnée} \setinterfacemessage{figures}{5}{dimensions of -- are unknown} \setinterfacemessage{figures}{4}{les dimensions de -- chargées implicitement à partir du fichier de figure} \setinterfacemessage{figures}{6}{les dimensions de -- calculées par rlxtools} \setinterfacemessage{figures}{8}{figureobject -- est réutilisé} \setinterfacemessage{figures}{title}{figures} \setinterfacemessage{colors}{1}{le système -- est globalement activé} \setinterfacemessage{colors}{3}{-- n'est pas défini --} \setinterfacemessage{colors}{2}{le système -- est localement activé} \setinterfacemessage{colors}{5}{système -- inconnu} \setinterfacemessage{colors}{4}{le système -- est chargé} \setinterfacemessage{colors}{7}{le palette -- n'est pas disponible} \setinterfacemessage{colors}{6}{la palette -- est disponible} \setinterfacemessage{colors}{9}{l'espace de couleur -- n'est pas supporté} \setinterfacemessage{colors}{8}{la spécification -- de la couleur -- devient noire} \setinterfacemessage{colors}{title}{couleurs} \setinterfacemessage{colors}{12}{-- est enregistré} \setinterfacemessage{colors}{11}{la couleur est convertie en niveau de gris} \setinterfacemessage{colors}{10}{-- l'espace de couleur est supporté} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/symb-cow.mkii0000644000175000017500000001241614536300610024717 0ustar hillehille%D \module %D [ file=symb-cow, %D version=2006.06.23, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Cow Symbols, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \loadmapfile[koeieletters.map] \definefontsynonym [Cows] [koeielett] \definefontsynonym [CowsContour] [koeielett-contour] \definefontsynonym [CowsLogo] [koeielogos] \definefontsynonym [CowsLogoContour] [koeielogos-contour] \definecolor [lsky] [r=.6,g=.6,b=1] \definecolor [dsky] [r=.1,g=.1,b=1] \definecolor [lground] [r=.3,g=.9,b=.3] \definecolor [dground] [r=0,g=.5,b=0] \definecolor [cspots] [r=.33,g=.1,b=0] \definecolor [tlsky] [t=.5,a=1,r=.6,g=.6,b=1] \definecolor [tdsky] [t=.5,a=1,r=.1,g=.1,b=1] \definecolor [tlground] [t=.5,a=1,r=.3,g=.9,b=.3] \definecolor [tdground] [t=.5,a=1,r=0,g=.5,b=0] \definecolor [tcspots] [t=.5,a=1,r=.33,g=.1,b=0] \definepalet [cow] [normal=lground, contour=dground, sky=lsky] \def\CowNormal#1% {\dontleavehmode\hbox{\color[cow:normal]{\getglyph{Cows}{#1}}}} \def\ScaledCowNormal#1#2% {\dontleavehmode\hbox{\color[cow:normal]{\definedfont[Cows sa #1]#2}}} \def\ScaledCowOverlay#1#2% {\dontleavehmode\hbox {\color[cow:contour]{\hsmash{\definedfont[CowsContour sa #1]#2}}% \color[cow:normal] {\definedfont[Cows sa #1]#2}}} \def\CowOverlay#1% {\dontleavehmode\hbox {\color[cow:contour]{\hsmash{\getglyph{CowsContour}{#1}}}% \color[cow:normal] {\getglyph{Cows} {#1}}}} \def\CowContour#1% {\dontleavehmode\hbox {\color[cow:contour]{\hsmash{\getglyph{CowsLogoContour}{#1}}}% \color[cow:normal] {\getglyph{CowsLogo} {#1}}}} \def\CowLogo #1{\getglyph{CowsLogo} {\char#1\relax}} \def\CowContourLogo#1{\getglyph{CowsLogoContour}{\char#1\relax}} \chardef\CowPragmaNormal= 1 \chardef\CowPragmaShaded=20 \startsymbolset[cownormal] \definesymbol[CowPragmaADE] [\CowLogo{0}] \definesymbol[CowPragma] [\CowLogo{1}] \definesymbol[CowConTeXt] [\CowLogo{2}] \definesymbol[CowConTeXtComplete] [\CowLogo{3}] \definesymbol[CowConTeXtShadow] [\CowLogo{4}] \definesymbol[CowConTeXtContour] [\CowLogo{5}] \definesymbol[CowConTeXtOutline] [\CowLogo{6}] \definesymbol[CowConTeXtDots] [\CowLogo{7}] \definesymbol[CowMP] [\CowLogo{8}] \definesymbol[CowMPComplete] [\CowLogo{9}] \definesymbol[CowTeX] [\CowLogo{10}] \definesymbol[CowTeXComplete] [\CowLogo{11}] \definesymbol[CowBoo] [\CowLogo{12}] \definesymbol[CowCow] [\CowLogo{13}] \definesymbol[CowExampleComplete] [\CowLogo{14}] \definesymbol[CowFoxetComplete] [\CowLogo{15}] \definesymbol[CowMetafun] [\CowLogo{16}] \definesymbol[CowMetafunComplete] [\CowLogo{17}] \definesymbol[CowTEXComplete] [\CowLogo{18}] \definesymbol[CowWikiComplete] [\CowLogo{19}] \definesymbol[CowPragmaADEComplete][\CowLogo{20}] \definesymbol[CowPragmaComplete] [\CowLogo{21}] \definesymbol[CowExample] [\CowLogo{22}] \definesymbol[CowFoxet] [\CowLogo{23}] \definesymbol[CowTEX] [\CowLogo{24}] \definesymbol[CowWiki] [\CowLogo{25}] \definesymbol[CowCowTeXtComplete] [\CowLogo{26}] \definesymbol[CowCowTeXt] [\CowLogo{27}] \stopsymbolset \startsymbolset[cowcontour] \definesymbol[CowPragmaADE] [\CowContourLogo{0}] \definesymbol[CowPragma] [\CowContourLogo{1}] \definesymbol[CowConTeXt] [\CowContourLogo{2}] \definesymbol[CowConTeXtComplete] [\CowContourLogo{3}] \definesymbol[CowConTeXtShadow] [\CowContourLogo{4}] \definesymbol[CowConTeXtContour] [\CowContourLogo{5}] \definesymbol[CowConTeXtOutline] [\CowContourLogo{6}] \definesymbol[CowConTeXtDots] [\CowContourLogo{7}] \definesymbol[CowMP] [\CowContourLogo{8}] \definesymbol[CowMPComplete] [\CowContourLogo{9}] \definesymbol[CowTeX] [\CowContourLogo{10}] \definesymbol[CowTeXComplete] [\CowContourLogo{11}] \definesymbol[CowBoo] [\CowContourLogo{12}] \definesymbol[CowCow] [\CowContourLogo{13}] \definesymbol[CowExampleComplete] [\CowContourLogo{14}] \definesymbol[CowFoxetComplete] [\CowContourLogo{15}] \definesymbol[CowMetafun] [\CowContourLogo{16}] \definesymbol[CowMetafunComplete] [\CowContourLogo{17}] \definesymbol[CowTEXComplete] [\CowContourLogo{18}] \definesymbol[CowWikiComplete] [\CowContourLogo{19}] \definesymbol[CowPragmaADEComplete][\CowContourLogo{20}] \definesymbol[CowPragmaComplete] [\CowContourLogo{21}] \definesymbol[CowExample] [\CowContourLogo{22}] \definesymbol[CowFoxet] [\CowContourLogo{23}] \definesymbol[CowTEX] [\CowContourLogo{24}] \definesymbol[CowWiki] [\CowContourLogo{25}] \definesymbol[CowCowTeXtComplete] [\CowContourLogo{26}] \definesymbol[CowCowTeXt] [\CowContourLogo{27}] \stopsymbolset \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-dum.mkii0000644000175000017500000000703614536300610024672 0ustar hillehille%D \module %D [ file=meta-dum, %D version=2003.03.21, %D title=\METAPOST\ Graphics, %D subtitle=Dummy (External) Graphics, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D This library overloads the normal external figure %D placeholder by a nicer one. %D %D \startbuffer %D \useMPlibrary[dum] %D %D \startlinecorrection %D \externalfigure[unknown-a][width=3cm,height=1cm] %D \stoplinecorrection %D %D \startlinecorrection %D \externalfigure[unknown-b][width=4cm,height=5cm] %D \stoplinecorrection %D \stopbuffer %D %D \typebuffer \getbuffer % currently preparempvariables is unable to resolve number % fractions like reduction % June 22, 2003, this definition was patched to adapt itself % to transparent colors \startuseMPgraphic{placeholder}{width,height,reduction,color} numeric w, h, d, r ; color c, b, cc ; path p ; boolean t ; t := is_transparent(\MPvar{color}) ; c := not_transparent(\MPvar{color}) ; b := not_transparent(white) ; w := \MPvar{width} ; h := \MPvar{height} ; r := \MPvar{reduction} ; d := max(w,h) ; p := unitsquare xyscaled (w,h) ; cc := r[.5c,b] ; fill p withcolor if t : transparent(1,.5,cc) else : cc fi ; for i := 1 upto 60 : cc := r[c randomized(.3,.9),b] ; fill fullcircle scaled (d/5 randomized (d/5)) shifted (center p randomized (d)) withcolor if t : transparent(1,.5,cc) else : cc fi ; endfor ; clip currentpicture to p ; \stopuseMPgraphic \definepalet [placeholder] [1=red,2=green,3=blue,4=cyan,5=magenta,6=yellow] % \newcounter \figurereplacementcycle \let\figurereplacementcycle\relax \setupexternalfigures [\c!reduction=0, \c!text=\v!yes] \let\normalexternalfigurereplacement\externalfigurereplacement \def\externalfigurereplacement#1#2#3% {\getpaletsize[placeholder]% \ifx\figurereplacementcycle\relax \getrandomnumber \figurereplacementcycle \!!plusone \paletsize \globallet \figurereplacementcycle \figurereplacementcycle \else \doglobal\increment\figurereplacementcycle \fi \ifnum\figurereplacementcycle>\paletsize \globallet\figurereplacementcycle\!!plusone \fi \weightGRAYfalse % monochrome anyway \MPcmykcolorsfalse \MPspotcolorsfalse \defineoverlay [\s!dummy] [\useMPgraphic {placeholder}% {width=\figurewidth, height=\figureheight, reduction=\@@efreduction, color=placeholder:\figurereplacementcycle}]% \expanded{\localframed [\??ef] [\c!width=\figurewidth, \c!height=\figureheight, \c!frame=\v!off, \c!strut=\v!no, \c!background=\s!dummy, \c!foregroundcolor=\s!white]}% {\doif\@@eftext\v!yes {\infofont \setupinterlinespace \dohyphens % \nohyphens \doifelse{#1}\s!dummy \!!doneafalse\!!doneatrue \doifelse{#2}\s!dummy \!!donebfalse\!!donebtrue \doifelse{#3}\s!unknown\!!donecfalse\!!donectrue \if!!donea name: \expanded{\verbatimstring{#1}}\strut\endgraf \fi \if!!doneb \if!!donea file: \else \if!!donec file: \fi \fi \expanded{\verbatimstring{#2}}\strut\endgraf \fi \if!!donec state: \expanded{\verbatimstring{#3}}\strut\endgraf \fi}}} \def\dummyfigure{\externalfigure[placeholder]} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-flw.mkii0000644000175000017500000000655214536300610024665 0ustar hillehille%D \module %D [ file=page-flw, %D version=2003.04.19, % from test-002 (1997) profile experiment %D title=\CONTEXT\ Page Macros, %D subtitle=Text Flows, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Page Macros / Text Flows} %D This is high experimental and especially flushing may change (proper %D spacing is the driving force here). \unprotect \def\definetextflow {\dodoubleempty\dodefinetextflow} \def\dodefinetextflow[#1][#2]% flow settings {\iffirstargument \doiftextflowcollectorelse{#1} {\setbox\textflowcollector{#1}\emptybox} {\@EA\newbox\csname\??tx:c:#1\endcsname}% \getparameters[\??tx:p:#1] [\c!width=\hsize,\c!style=,#2]% \fi} \def\textflowparameter#1#2{\csname\??tx:p:#1#2\endcsname} \def\textflowcollector #1{\csname\??tx:c:#1\endcsname} \def\doiftextflowcollectorelse#1{\doifdefinedelse{\??tx:c:#1}} \def\doiftextflowelse#1% {\doiftextflowcollectorelse{#1} {\ifvoid\textflowcollector{#1}% \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} {\secondoftwoarguments}} \def\doiftextflow#1% {\doiftextflowelse{#1}\firstofoneargument\gobbleoneargument} \def\starttextflow[#1]% {\doiftextflowcollectorelse{#1} {\global\setbox\textflowcollector{#1}\vbox \bgroup \unvbox\textflowcollector{#1}% \hsize\textflowparameter{#1}\c!width \doifsomething{\textflowparameter{#1}\c!style}% {\doconvertfont{\textflowparameter{#1}\c!style}}% \def\stoptextflow{\endgraf\egroup}} {\let\stoptextflow\relax}} \def\flushtextflow#1% {\doiftextflow{#1} {\ifdim\ht\textflowcollector{#1}>\vsize \setbox\scratchbox\vsplit\textflowcollector{#1} to \vsize \unvbox\scratchbox \else \unvbox\textflowcollector{#1}% \fi}} \protect \endinput % Example (dutch) % % \stelpapierformaatin [S6] % \steltolerantiein [soepel,rek] % \stelkleurenin [status=start] % \stelvoetin [strut=nee] % \stelwitruimtein [groot] % % \stellayoutin % [rechterrand=5cm,breedte=passend,marge=0pt,randafstand=1cm, % voet=4cm,voetafstand=1cm,hoofd=0cm] % % \stelteksttekstenin[rand][][\vbox{\flushtextflow{alpha}}] % \stelvoettekstenin [rand][][\vbox{\flushtextflow{beta}}] % \stelvoettekstenin [\vbox{\flushtextflow{gamma}}][] % % \definetextflow [alfa] [breedte=\rechterrandbreedte] % \definetextflow [beta] [breedte=\rechterrandbreedte] % \definetextflow [gamma] [breedte=\voethoogte] % % \starttekst % % \dorecurse{50} % {\getrandomnumber{\funny}{0}{8} % \ifcase\funny \starttextflow[alfa] \input tufte.tex \stoptextflow % \or \starttextflow[beta] \input knuth.tex \stoptextflow % \or \starttextflow[gamma] \input materie.tex \stoptextflow % \or {\bf TUFTE}\quad \input tufte \par % \or {\bf TUFTE}\quad \input tufte \par % \or {\bf KNUTH}\quad \input knuth \par % \or {\bf KNUTH}\quad \input knuth \par % \or {\bf MATERIE}\quad \input materie \par % \else {\bf MATERIE}\quad \input materie \par % \fi} % % \stoptekst context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-cp1251.mkii0000644000175000017500000002640714536300610025023 0ustar hillehille%D \module %D [ file=regi-cp1251, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=cp1251 (Cyrillic), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for cp1251 input encoding (regime) for Cyrillic. %D %D Usage: %D \type{\enableregime[cp1251]} or \type{\enablereregime[windows-1251]} \startregime[cp1251] \defineactivetoken 128 {\cyrillicDJE} % 0402 CYRILLIC CAPITAL LETTER DJE \defineactivetoken 129 {\cyrillicGJE} % 0403 CYRILLIC CAPITAL LETTER GJE \defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK \defineactivetoken 131 {\cyrillicgje} % 0453 CYRILLIC SMALL LETTER GJE \defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK \defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS \defineactivetoken 134 {\textdag} % 2020 DAGGER \defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER \defineactivetoken 136 {\texteuro} % 20AC EURO SIGN \defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN \defineactivetoken 138 {\cyrillicLJE} % 0409 CYRILLIC CAPITAL LETTER LJE \defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK \defineactivetoken 140 {\cyrillicNJE} % 040A CYRILLIC CAPITAL LETTER NJE \defineactivetoken 141 {\cyrillicKJE} % 040C CYRILLIC CAPITAL LETTER KJE \defineactivetoken 142 {\cyrillicTSHE} % 040B CYRILLIC CAPITAL LETTER TSHE \defineactivetoken 143 {\cyrillicDZHE} % 040F CYRILLIC CAPITAL LETTER DZHE \defineactivetoken 144 {\cyrillicdje} % 0452 CYRILLIC SMALL LETTER DJE \defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK \defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK \defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK \defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK \defineactivetoken 149 {\textbullet} % 2022 BULLET \defineactivetoken 150 {\endash} % 2013 EN DASH \defineactivetoken 151 {\emdash} % 2014 EM DASH \defineactivetoken 152 {\unknownchar} % \defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN \defineactivetoken 154 {\cyrilliclje} % 0459 CYRILLIC SMALL LETTER LJE \defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK \defineactivetoken 156 {\cyrillicnje} % 045A CYRILLIC SMALL LETTER NJE \defineactivetoken 157 {\cyrillickje} % 045C CYRILLIC SMALL LETTER KJE \defineactivetoken 158 {\cyrillictshe} % 045B CYRILLIC SMALL LETTER TSHE \defineactivetoken 159 {\cyrillicdzhe} % 045F CYRILLIC SMALL LETTER DZHE \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\cyrillicUSHRT} % 040E CYRILLIC CAPITAL LETTER SHORT U \defineactivetoken 162 {\cyrillicushrt} % 045E CYRILLIC SMALL LETTER SHORT U \defineactivetoken 163 {\cyrillicJE} % 0408 CYRILLIC CAPITAL LETTER JE \defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN \defineactivetoken 165 {\cyrillicGHEupturn} % 0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN \defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\cyrillicYO} % 0401 CYRILLIC CAPITAL LETTER IO \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\cyrillicIE} % 0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\textlognot} % 00AC NOT SIGN \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN \defineactivetoken 175 {\cyrillicYI} % 0407 CYRILLIC CAPITAL LETTER YI \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\cyrillicII} % 0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I \defineactivetoken 179 {\cyrillicii} % 0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I \defineactivetoken 180 {\cyrillicgheupturn} % 0491 CYRILLIC SMALL LETTER GHE WITH UPTURN \defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN \defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\cyrillicyo} % 0451 CYRILLIC SMALL LETTER IO \defineactivetoken 185 {\textnumero} % 2116 NUMERO SIGN \defineactivetoken 186 {\cyrillicie} % 0454 CYRILLIC SMALL LETTER UKRAINIAN IE \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\cyrillicje} % 0458 CYRILLIC SMALL LETTER JE \defineactivetoken 189 {\cyrillicDZE} % 0405 CYRILLIC CAPITAL LETTER DZE \defineactivetoken 190 {\cyrillicdze} % 0455 CYRILLIC SMALL LETTER DZE \defineactivetoken 191 {\cyrillicyi} % 0457 CYRILLIC SMALL LETTER YI \defineactivetoken 192 {\cyrillicA} % 0410 CYRILLIC CAPITAL LETTER A \defineactivetoken 193 {\cyrillicB} % 0411 CYRILLIC CAPITAL LETTER BE \defineactivetoken 194 {\cyrillicV} % 0412 CYRILLIC CAPITAL LETTER VE \defineactivetoken 195 {\cyrillicG} % 0413 CYRILLIC CAPITAL LETTER GHE \defineactivetoken 196 {\cyrillicD} % 0414 CYRILLIC CAPITAL LETTER DE \defineactivetoken 197 {\cyrillicE} % 0415 CYRILLIC CAPITAL LETTER IE \defineactivetoken 198 {\cyrillicZH} % 0416 CYRILLIC CAPITAL LETTER ZHE \defineactivetoken 199 {\cyrillicZ} % 0417 CYRILLIC CAPITAL LETTER ZE \defineactivetoken 200 {\cyrillicI} % 0418 CYRILLIC CAPITAL LETTER I \defineactivetoken 201 {\cyrillicISHRT} % 0419 CYRILLIC CAPITAL LETTER SHORT I \defineactivetoken 202 {\cyrillicK} % 041A CYRILLIC CAPITAL LETTER KA \defineactivetoken 203 {\cyrillicL} % 041B CYRILLIC CAPITAL LETTER EL \defineactivetoken 204 {\cyrillicM} % 041C CYRILLIC CAPITAL LETTER EM \defineactivetoken 205 {\cyrillicN} % 041D CYRILLIC CAPITAL LETTER EN \defineactivetoken 206 {\cyrillicO} % 041E CYRILLIC CAPITAL LETTER O \defineactivetoken 207 {\cyrillicP} % 041F CYRILLIC CAPITAL LETTER PE \defineactivetoken 208 {\cyrillicR} % 0420 CYRILLIC CAPITAL LETTER ER \defineactivetoken 209 {\cyrillicS} % 0421 CYRILLIC CAPITAL LETTER ES \defineactivetoken 210 {\cyrillicT} % 0422 CYRILLIC CAPITAL LETTER TE \defineactivetoken 211 {\cyrillicU} % 0423 CYRILLIC CAPITAL LETTER U \defineactivetoken 212 {\cyrillicF} % 0424 CYRILLIC CAPITAL LETTER EF \defineactivetoken 213 {\cyrillicH} % 0425 CYRILLIC CAPITAL LETTER HA \defineactivetoken 214 {\cyrillicC} % 0426 CYRILLIC CAPITAL LETTER TSE \defineactivetoken 215 {\cyrillicCH} % 0427 CYRILLIC CAPITAL LETTER CHE \defineactivetoken 216 {\cyrillicSH} % 0428 CYRILLIC CAPITAL LETTER SHA \defineactivetoken 217 {\cyrillicSHCH} % 0429 CYRILLIC CAPITAL LETTER SHCHA \defineactivetoken 218 {\cyrillicHRDSN} % 042A CYRILLIC CAPITAL LETTER HARD SIGN \defineactivetoken 219 {\cyrillicERY} % 042B CYRILLIC CAPITAL LETTER YERU \defineactivetoken 220 {\cyrillicSFTSN} % 042C CYRILLIC CAPITAL LETTER SOFT SIGN \defineactivetoken 221 {\cyrillicEREV} % 042D CYRILLIC CAPITAL LETTER E \defineactivetoken 222 {\cyrillicYU} % 042E CYRILLIC CAPITAL LETTER YU \defineactivetoken 223 {\cyrillicYA} % 042F CYRILLIC CAPITAL LETTER YA \defineactivetoken 224 {\cyrillica} % 0430 CYRILLIC SMALL LETTER A \defineactivetoken 225 {\cyrillicb} % 0431 CYRILLIC SMALL LETTER BE \defineactivetoken 226 {\cyrillicv} % 0432 CYRILLIC SMALL LETTER VE \defineactivetoken 227 {\cyrillicg} % 0433 CYRILLIC SMALL LETTER GHE \defineactivetoken 228 {\cyrillicd} % 0434 CYRILLIC SMALL LETTER DE \defineactivetoken 229 {\cyrillice} % 0435 CYRILLIC SMALL LETTER IE \defineactivetoken 230 {\cyrilliczh} % 0436 CYRILLIC SMALL LETTER ZHE \defineactivetoken 231 {\cyrillicz} % 0437 CYRILLIC SMALL LETTER ZE \defineactivetoken 232 {\cyrillici} % 0438 CYRILLIC SMALL LETTER I \defineactivetoken 233 {\cyrillicishrt} % 0439 CYRILLIC SMALL LETTER SHORT I \defineactivetoken 234 {\cyrillick} % 043A CYRILLIC SMALL LETTER KA \defineactivetoken 235 {\cyrillicl} % 043B CYRILLIC SMALL LETTER EL \defineactivetoken 236 {\cyrillicm} % 043C CYRILLIC SMALL LETTER EM \defineactivetoken 237 {\cyrillicn} % 043D CYRILLIC SMALL LETTER EN \defineactivetoken 238 {\cyrillico} % 043E CYRILLIC SMALL LETTER O \defineactivetoken 239 {\cyrillicp} % 043F CYRILLIC SMALL LETTER PE \defineactivetoken 240 {\cyrillicr} % 0440 CYRILLIC SMALL LETTER ER \defineactivetoken 241 {\cyrillics} % 0441 CYRILLIC SMALL LETTER ES \defineactivetoken 242 {\cyrillict} % 0442 CYRILLIC SMALL LETTER TE \defineactivetoken 243 {\cyrillicu} % 0443 CYRILLIC SMALL LETTER U \defineactivetoken 244 {\cyrillicf} % 0444 CYRILLIC SMALL LETTER EF \defineactivetoken 245 {\cyrillich} % 0445 CYRILLIC SMALL LETTER HA \defineactivetoken 246 {\cyrillicc} % 0446 CYRILLIC SMALL LETTER TSE \defineactivetoken 247 {\cyrillicch} % 0447 CYRILLIC SMALL LETTER CHE \defineactivetoken 248 {\cyrillicsh} % 0448 CYRILLIC SMALL LETTER SHA \defineactivetoken 249 {\cyrillicshch} % 0449 CYRILLIC SMALL LETTER SHCHA \defineactivetoken 250 {\cyrillichrdsn} % 044A CYRILLIC SMALL LETTER HARD SIGN \defineactivetoken 251 {\cyrillicery} % 044B CYRILLIC SMALL LETTER YERU \defineactivetoken 252 {\cyrillicsftsn} % 044C CYRILLIC SMALL LETTER SOFT SIGN \defineactivetoken 253 {\cyrillicerev} % 044D CYRILLIC SMALL LETTER E \defineactivetoken 254 {\cyrillicyu} % 044E CYRILLIC SMALL LETTER YU \defineactivetoken 255 {\cyrillicya} % 044F CYRILLIC SMALL LETTER YA \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-ita.mkii0000644000175000017500000004651314536300610024660 0ustar hillehille%D \module %D [ file=lang-ita, %D version=1997.09.03, %D title=\CONTEXT\ Language Macros, %D subtitle=Italic Languages, %D author=Hans Hagen / Tobias Burnus, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % Todo: replace \'.. by \namedglyph \writestatus{loading}{ConTeXt Language Macros / Italic Languages} %D The framework of this module is set up by Hans Hagen while %D many of the first translations were done by Tobias. Later %D on, corrections were made by users. If you have suggestions, %D or feel that your name missing here, don't hesitate to send %D us an email. %D %D \starttabulate[|lB|l|] %D \NC Italian \NC Giuseppe Bilotta \NC \NR %D \NC Romanian \NC Dan Seracu \NC \NR %D \NC Portuguese \NC Pedro F. M. Mendon\c a \NC \NR %D \stoptabulate % Latin, Italian, Rhaeto-Romanic, Rumanian, Sardian % Catalan, French, Ladino, Portuguese, Proven\c{c}al, Spanish \unprotect \ifx\guillemotspace\undefined \let\guillemotspace\empty \fi \ifx\sentencespace \undefined \let\sentencespace \empty \fi \installlanguage [\s!fr] [\c!spacing=\v!packed, \c!leftsentence=\emdash, \c!rightsentence=\emdash, \c!leftsubsentence=\emdash, \c!rightsubsentence=\emdash, \c!leftquote=\leftguillemot, \c!rightquote=\rightguillemot, \c!leftquotation=\leftguillemot, \c!rightquotation=\rightguillemot, \c!date={\v!day+,\v!space,\v!month,\v!space,\v!year}, \s!mapping={texnansi,ec}, \s!encoding={texnansi,ec}] \installlanguage [\s!es] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!day,\ ,\v!month,\ ,\v!year}] \installlanguage [sp] [\s!es] % old times context \installlanguage [\s!ca] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!day,\ ,\v!month,\ ,\v!year}] % Note GB left|/|right (sub)sentences are for \quote {incisi}. \installlanguage [\s!it] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=--, \c!rightsubsentence=--, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!leftspeech=\leftguillemot, \c!middlespeech=\leftguillemot, \c!rightspeech=\rightguillemot, \c!date={\v!day,\ ,\v!month,\ ,\v!year}, \s!mapping={texnansi,ec}, \s!encoding={texnansi,ec}] \installlanguage % the same as italian [\s!la] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\lowerrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\lowerrightdoubleninequote, \c!date={\v!day,\ ,\v!month,\ ,\v!year}] \installlanguage [\s!pt] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!year,\ ,\v!month,\ ,\v!day}, \s!mapping={texnansi,ec}, \s!encoding={texnansi,ec}] \installlanguage [\s!ro] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\leftguillemot, \c!rightquote=\rightguillemot, \c!leftquotation=\lowerrightdoubleninequote, \c!rightquotation=\upperleftdoublesixquote, \c!date={\v!day,\ ,\v!month,\ ,\v!year}] %D For compatibility reasons we also define: \installlanguage [fa] [\s!fr] % for dutchies only \installlanguage [french] [\s!fr] \installlanguage [spanish] [\s!es] \installlanguage [catalan] [\s!ca] \installlanguage [italian] [\s!it] \installlanguage [latin] [\s!la] \installlanguage [portuguese] [\s!pt] \installlanguage [romanian] [\s!ro] %D Labels and header texts. \setupheadtext [\s!fr] [\v!content=Table des mati\`eres] \setupheadtext [\s!es] [\v!content=\'Indice] \setupheadtext [\s!ca] [\v!content=\'Index de continguts] \setupheadtext [\s!it] [\v!content=Indice] \setupheadtext [\s!la] [\v!content=Quod in libro continetur] %Argumentum \setupheadtext [\s!pt] [\v!content=Conte\'udo] \setupheadtext [\s!ro] [\v!content=Cuprins] \setupheadtext [\s!fr] [\v!tables=Tableaux] \setupheadtext [\s!es] [\v!tables=Tablas] \setupheadtext [\s!ca] [\v!tables=Taules] \setupheadtext [\s!it] [\v!tables=Tabelle] \setupheadtext [\s!la] [\v!tables=Tabulae] \setupheadtext [\s!pt] [\v!tables=Tabelas] \setupheadtext [\s!ro] [\v!tables=Tabele] \setupheadtext [\s!fr] [\v!figures=Figures] \setupheadtext [\s!es] [\v!figures=Ilustraciones] \setupheadtext [\s!ca] [\v!figures=Figures] \setupheadtext [\s!it] [\v!figures=Figure] \setupheadtext [\s!la] [\v!figures=Imagines] \setupheadtext [\s!pt] [\v!figures=Figuras] \setupheadtext [\s!ro] [\v!figures=Figuri] \setupheadtext [\s!fr] [\v!graphics=Graphiques] \setupheadtext [\s!es] [\v!graphics=Gr\'aficos] \setupheadtext [\s!it] [\v!graphics=Grafici] \setupheadtext [\s!ca] [\v!graphics=Gr\`afiques] \setupheadtext [\s!la] [\v!graphics=Typi] \setupheadtext [\s!pt] [\v!graphics=Gr\'aficos] \setupheadtext [\s!ro] [\v!graphics=Grafice] \setupheadtext [\s!fr] [\v!intermezzi=Interm\`edes] \setupheadtext [\s!es] [\v!intermezzi=Intermedios] \setupheadtext [\s!ca] [\v!intermezzi=Intermedis] \setupheadtext [\s!it] [\v!intermezzi=Intermezzi] \setupheadtext [\s!la] [\v!intermezzi=Intermissa] \setupheadtext [\s!pt] [\v!intermezzi=Interm\'edios] \setupheadtext [\s!ro] [\v!intermezzi=Intermzzo] \setupheadtext [\s!fr] [\v!index=Index] \setupheadtext [\s!es] [\v!index=\'Indice alfab\'etico] \setupheadtext [\s!ca] [\v!index=\'Index alfab\`etic] \setupheadtext [\s!it] [\v!index=Indice] \setupheadtext [\s!la] [\v!index=Indices] \setupheadtext [\s!pt] [\v!index=\'Indice] \setupheadtext [\s!ro] [\v!index=Index] \setupheadtext [\s!fr] [\v!abbreviations=Abr\'eviations] \setupheadtext [\s!es] [\v!abbreviations=Abreviaturas] \setupheadtext [\s!ca] [\v!abbreviations=Abreviacions] \setupheadtext [\s!it] [\v!abbreviations=Abbreviazioni] \setupheadtext [\s!la] [\v!abbreviations=Notae] \setupheadtext [\s!pt] [\v!abbreviations=Abreviaturas] \setupheadtext [\s!ro] [\v!abbreviations=Abrevieri] \setupheadtext [\s!fr] [\v!logos=Logos] \setupheadtext [\s!es] [\v!logos=Logotipos] \setupheadtext [\s!ca] [\v!logos=Logotips] \setupheadtext [\s!it] [\v!logos=Logotipi] \setupheadtext [\s!la] [\v!logos=Typi negotiales] \setupheadtext [\s!pt] [\v!logos=Logotipos] \setupheadtext [\s!ro] [\v!logos=Logo-uri] \setupheadtext [\s!fr] [\v!units=Unit\'es] \setupheadtext [\s!es] [\v!units=Unidades] \setupheadtext [\s!ca] [\v!units=Unitats] \setupheadtext [\s!it] [\v!units=Unit\`a] \setupheadtext [\s!la] [\v!units=Modi] \setupheadtext [\s!pt] [\v!units=Unidades] \setupheadtext [\s!ro] [\v!units=Unit\u{a}\c{t}i] \setupheadtext [\s!fr] [pubs=Bibliographie] \setupheadtext [\s!es] [pubs=Bibliograf\'\ia] \setupheadtext [\s!ca] [pubs=Referències] \setupheadtext [\s!it] [pubs=Bibliografia] %setupheadtext [\s!la] [pubs=?] %setupheadtext [\s!pt] [pubs=?] %setupheadtext [\s!ro] [pubs=?] \setuplabeltext [\s!fr] [\v!table=Tableau ] \setuplabeltext [\s!es] [\v!table=Tabla ] \setuplabeltext [\s!ca] [\v!table=Taula ] \setuplabeltext [\s!it] [\v!table=Tabella ] \setuplabeltext [\s!la] [\v!table=Tabula ] \setuplabeltext [\s!pt] [\v!table=Tabela ] \setuplabeltext [\s!ro] [\v!table=Tabelul ] \setuplabeltext [\s!fr] [\v!figure=Figure ] \setuplabeltext [\s!es] [\v!figure=Ilustraci\'on ] \setuplabeltext [\s!ca] [\v!figure=Figura ] \setuplabeltext [\s!it] [\v!figure=Fig. ] \setuplabeltext [\s!la] [\v!figure=Imago ] \setuplabeltext [\s!pt] [\v!figure=Figura ] \setuplabeltext [\s!ro] [\v!figure=Figura ] \setuplabeltext [\s!fr] [\v!intermezzo=Interm\`ede ] \setuplabeltext [\s!es] [\v!intermezzo=Intermedio ] \setuplabeltext [\s!ca] [\v!intermezzo=Intermedi ] \setuplabeltext [\s!it] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!la] [\v!intermezzo=Intermissum ] \setuplabeltext [\s!pt] [\v!intermezzo=Interm\'edio ] \setuplabeltext [\s!ro] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!fr] [\v!graphic=Illustration ] \setuplabeltext [\s!es] [\v!graphic=Gr\'afico ] \setuplabeltext [\s!ca] [\v!graphic=Gr\`afica ] \setuplabeltext [\s!it] [\v!graphic=Grafico ] \setuplabeltext [\s!la] [\v!graphic=Typus ] \setuplabeltext [\s!pt] [\v!graphic=Gr\'afico ] \setuplabeltext [\s!ro] [\v!graphic=Graficul ] \setuplabeltext [\s!fr] [\v!chapter=] % Chapitre \setuplabeltext [\s!es] [\v!chapter=] % Cap\'\i tulo \setuplabeltext [\s!ca] [\v!chapter=] % Cap\'\i tol \setuplabeltext [\s!it] [\v!chapter=] \setuplabeltext [\s!la] [\v!chapter=] \setuplabeltext [\s!pt] [\v!chapter=] \setuplabeltext [\s!ro] [\v!chapter=] \setuplabeltext [\s!fr] [\v!section=] % Section \setuplabeltext [\s!es] [\v!section=] % Secci\'on \setuplabeltext [\s!ca] [\v!section=] % Secci\'o \setuplabeltext [\s!it] [\v!section=] \setuplabeltext [\s!la] [\v!section=] \setuplabeltext [\s!pt] [\v!section=] \setuplabeltext [\s!ro] [\v!section=] \setuplabeltext [\s!fr] [\v!subsection=] % Soussection \setuplabeltext [\s!es] [\v!subsection=] % Subsecci\'on \setuplabeltext [\s!ca] [\v!subsection=] % Subsecci\'o \setuplabeltext [\s!it] [\v!subsection=] \setuplabeltext [\s!la] [\v!subsection=] \setuplabeltext [\s!pt] [\v!subsection=] \setuplabeltext [\s!ro] [\v!subsection=] \setuplabeltext [\s!fr] [\v!subsubsection=] % Soussoussection \setuplabeltext [\s!es] [\v!subsubsection=] % Subsubsecci\'on \setuplabeltext [\s!ca] [\v!subsubsection=] % Subsubsecci\'o \setuplabeltext [\s!it] [\v!subsubsection=] \setuplabeltext [\s!la] [\v!subsubsection=] \setuplabeltext [\s!pt] [\v!subsubsection=] \setuplabeltext [\s!ro] [\v!subsubsection=] \setuplabeltext [\s!fr] [\v!subsubsubsection=] % Soussoussoussection \setuplabeltext [\s!es] [\v!subsubsubsection=] % Subsubsubsecci\'on \setuplabeltext [\s!ca] [\v!subsubsubsection=] % Subsubsubsecci\'o \setuplabeltext [\s!it] [\v!subsubsubsection=] \setuplabeltext [\s!la] [\v!subsubsubsection=] \setuplabeltext [\s!pt] [\v!subsubsubsection=] \setuplabeltext [\s!ro] [\v!subsubsubsection=] \setuplabeltext [\s!fr] [\v!appendix=] % Annexe \setuplabeltext [\s!es] [\v!appendix=] % Ap\'endice \setuplabeltext [\s!ca] [\v!appendix=] % Ap\`endix \setuplabeltext [\s!it] [\v!appendix=] \setuplabeltext [\s!la] [\v!appendix=] \setuplabeltext [\s!pt] [\v!appendix=] \setuplabeltext [\s!ro] [\v!appendix=] \setuplabeltext [\s!fr] [\v!part=Partie ] \setuplabeltext [\s!es] [\v!part=Parte ] \setuplabeltext [\s!ca] [\v!part=Part ] \setuplabeltext [\s!it] [\v!part=Parte ] \setuplabeltext [\s!la] [\v!part=Pars ] \setuplabeltext [\s!pt] [\v!part=Parte ] \setuplabeltext [\s!ro] [\v!part=Partea ] \setuplabeltext [\s!fr] [\v!line=ligne ] \setuplabeltext [\s!es] [\v!line=l\'\i nea ] \setuplabeltext [\s!ca] [\v!line=l\'\i nia ] \setuplabeltext [\s!it] [\v!line=riga ] \setuplabeltext [\s!la] [\v!line=versus ] \setuplabeltext [\s!pt] [\v!line=linha ] \setuplabeltext [\s!ro] [\v!line=linia ] \setuplabeltext [\s!fr] [\v!lines=lignes ] \setuplabeltext [\s!es] [\v!lines=l\'\i neas ] \setuplabeltext [\s!ca] [\v!lines=l\'\i nies ] \setuplabeltext [\s!it] [\v!lines=righe ] \setuplabeltext [\s!la] [\v!lines=versus ] \setuplabeltext [\s!pt] [\v!lines=linhas ] \setuplabeltext [\s!ro] [\v!lines=liniile ] \setuplabeltext [\s!fr] [\v!january=janvier] \setuplabeltext [\s!fr] [\v!february=f\'evrier] \setuplabeltext [\s!fr] [\v!march=mars] \setuplabeltext [\s!fr] [\v!april=avril] \setuplabeltext [\s!fr] [\v!may=mai] \setuplabeltext [\s!fr] [\v!june=juin] \setuplabeltext [\s!fr] [\v!july=juillet] \setuplabeltext [\s!fr] [\v!august=ao\^ut] \setuplabeltext [\s!fr] [\v!september=septembre] \setuplabeltext [\s!fr] [\v!october=octobre] \setuplabeltext [\s!fr] [\v!november=novembre] \setuplabeltext [\s!fr] [\v!december=d\'ecembre] \setuplabeltext [\s!es] [\v!january=enero] \setuplabeltext [\s!es] [\v!february=febrero] \setuplabeltext [\s!es] [\v!march=marzo] \setuplabeltext [\s!es] [\v!april=abril] \setuplabeltext [\s!es] [\v!may=mayo] \setuplabeltext [\s!es] [\v!june=junio] \setuplabeltext [\s!es] [\v!july=julio] \setuplabeltext [\s!es] [\v!august=agosto] \setuplabeltext [\s!es] [\v!september=septiembre] \setuplabeltext [\s!es] [\v!october=octubre] \setuplabeltext [\s!es] [\v!november=noviembre] \setuplabeltext [\s!es] [\v!december=diciembre] \setuplabeltext [\s!ca] [\v!january=gener] \setuplabeltext [\s!ca] [\v!february=febrer] \setuplabeltext [\s!ca] [\v!march=mar\c{c}] \setuplabeltext [\s!ca] [\v!april=abril] \setuplabeltext [\s!ca] [\v!may=maig] \setuplabeltext [\s!ca] [\v!june=juny] \setuplabeltext [\s!ca] [\v!july=juliol] \setuplabeltext [\s!ca] [\v!august=agost] \setuplabeltext [\s!ca] [\v!september=setembre] \setuplabeltext [\s!ca] [\v!october=octubre] \setuplabeltext [\s!ca] [\v!november=novembre] \setuplabeltext [\s!ca] [\v!december=desembre] \setuplabeltext [\s!it] [\v!january=gennaio] \setuplabeltext [\s!it] [\v!february=febbraio] \setuplabeltext [\s!it] [\v!march=marzo] \setuplabeltext [\s!it] [\v!april=aprile] \setuplabeltext [\s!it] [\v!may=maggio] \setuplabeltext [\s!it] [\v!june=giugno] \setuplabeltext [\s!it] [\v!july=luglio] \setuplabeltext [\s!it] [\v!august=agosto] \setuplabeltext [\s!it] [\v!september=settembre] \setuplabeltext [\s!it] [\v!october=ottobre] \setuplabeltext [\s!it] [\v!november=novembre] \setuplabeltext [\s!it] [\v!december=dicembre] \setuplabeltext [\s!la] [\v!january=Ianuarius] \setuplabeltext [\s!la] [\v!february=Februarius] \setuplabeltext [\s!la] [\v!march=Martius] \setuplabeltext [\s!la] [\v!april=Aprilis] \setuplabeltext [\s!la] [\v!may=Maius] \setuplabeltext [\s!la] [\v!june=Iunius] \setuplabeltext [\s!la] [\v!july=Iulius] % formerly Quintilis \setuplabeltext [\s!la] [\v!august=Augustus] % formerly Sextilis \setuplabeltext [\s!la] [\v!september=September] \setuplabeltext [\s!la] [\v!october=October] \setuplabeltext [\s!la] [\v!november=November] \setuplabeltext [\s!la] [\v!december=December] \setuplabeltext [\s!pt] [\v!january=janeiro] \setuplabeltext [\s!pt] [\v!february=fevereiro] \setuplabeltext [\s!pt] [\v!march=mar\c{c}o] \setuplabeltext [\s!pt] [\v!april=abril] \setuplabeltext [\s!pt] [\v!may=maio] \setuplabeltext [\s!pt] [\v!june=junho] \setuplabeltext [\s!pt] [\v!july=julho] \setuplabeltext [\s!pt] [\v!august=agosto] \setuplabeltext [\s!pt] [\v!september=setembro] \setuplabeltext [\s!pt] [\v!october=outubro] \setuplabeltext [\s!pt] [\v!november=novembro] \setuplabeltext [\s!pt] [\v!december=dezembro] \setuplabeltext [\s!ro] [\v!january=ianuarie] \setuplabeltext [\s!ro] [\v!february=februarie] \setuplabeltext [\s!ro] [\v!march=martie] \setuplabeltext [\s!ro] [\v!april=aprilie] \setuplabeltext [\s!ro] [\v!may=mai] \setuplabeltext [\s!ro] [\v!june=iunie] \setuplabeltext [\s!ro] [\v!july=iulie] \setuplabeltext [\s!ro] [\v!august=august] \setuplabeltext [\s!ro] [\v!september=septembrie] \setuplabeltext [\s!ro] [\v!october=octombrie] \setuplabeltext [\s!ro] [\v!november=noiembrie] \setuplabeltext [\s!ro] [\v!december=decembrie] \setuplabeltext [\s!fr] [\v!sunday=dimanche] \setuplabeltext [\s!fr] [\v!monday=lundi] \setuplabeltext [\s!fr] [\v!tuesday=mardi] \setuplabeltext [\s!fr] [\v!wednesday=mercredi] \setuplabeltext [\s!fr] [\v!thursday=jeudi] \setuplabeltext [\s!fr] [\v!friday=vendredi] \setuplabeltext [\s!fr] [\v!saturday=samedi] \setuplabeltext [\s!es] [\v!sunday=domingo] \setuplabeltext [\s!es] [\v!monday=lunes] \setuplabeltext [\s!es] [\v!tuesday=martes] \setuplabeltext [\s!es] [\v!wednesday=mi\'ercoles] \setuplabeltext [\s!es] [\v!thursday=jueves] \setuplabeltext [\s!es] [\v!friday=viernes] \setuplabeltext [\s!es] [\v!saturday=s\'abado] \setuplabeltext [\s!ca] [\v!sunday=diumenge] \setuplabeltext [\s!ca] [\v!monday=dilluns] \setuplabeltext [\s!ca] [\v!tuesday=dimarts] \setuplabeltext [\s!ca] [\v!wednesday=dimecres] \setuplabeltext [\s!ca] [\v!thursday=dijous] \setuplabeltext [\s!ca] [\v!friday=divendres] \setuplabeltext [\s!ca] [\v!saturday=dissabte] \setuplabeltext [\s!it] [\v!sunday=domenica] \setuplabeltext [\s!it] [\v!monday=luned\`\i] \setuplabeltext [\s!it] [\v!tuesday=marted\`\i] \setuplabeltext [\s!it] [\v!wednesday=mercoled\`\i] \setuplabeltext [\s!it] [\v!thursday=gioved\`\i] \setuplabeltext [\s!it] [\v!friday=venerd\`\i] \setuplabeltext [\s!it] [\v!saturday=sabato] \setuplabeltext [\s!la] [\v!sunday=Dies Solis] \setuplabeltext [\s!la] [\v!monday=Dies Lunae] \setuplabeltext [\s!la] [\v!tuesday=Dies Martis] \setuplabeltext [\s!la] [\v!wednesday=Dies Mercuri] \setuplabeltext [\s!la] [\v!thursday=Dies Iovis] \setuplabeltext [\s!la] [\v!friday=Dies Veneris] \setuplabeltext [\s!la] [\v!saturday=Dies Saturni] \setuplabeltext [\s!pt] [\v!sunday=domingo] \setuplabeltext [\s!pt] [\v!monday=segunda-feira] \setuplabeltext [\s!pt] [\v!tuesday=ter\c{c}a-feira] \setuplabeltext [\s!pt] [\v!wednesday=quarta-feira] \setuplabeltext [\s!pt] [\v!thursday=quinta-feira] \setuplabeltext [\s!pt] [\v!friday=sexta-feira] \setuplabeltext [\s!pt] [\v!saturday=s\'abado] \setuplabeltext [\s!ro] [\v!sunday=duminic\u{a}] \setuplabeltext [\s!ro] [\v!monday=luni] \setuplabeltext [\s!ro] [\v!tuesday=mar\c{t}i] \setuplabeltext [\s!ro] [\v!wednesday=miercuri] \setuplabeltext [\s!ro] [\v!thursday=joi] \setuplabeltext [\s!ro] [\v!friday=vineri] \setuplabeltext [\s!ro] [\v!saturday=s\^{a}mb\u{a}t\u{a}] %D Rather new \unknown \setuplabeltext [\s!it] [\v!page=pagina ] \setuplabeltext [\s!it] [\v!atpage=a pagina ] \setuplabeltext [\s!it] [\v!hencefore=come mostrato sopra] \setuplabeltext [\s!it] [\v!hereafter=come mostrato sotto] \setuplabeltext [\s!it] [\v!see=cf. ] \setuplabeltext [\s!fr] [\v!page=page ] \setuplabeltext [\s!fr] [\v!atpage=à la page ] \setuplabeltext [\s!fr] [\v!hencefore=ci-dessus] \setuplabeltext [\s!fr] [\v!hereafter=ci-dessous] \setuplabeltext [\s!fr] [\v!see=cf. ] %D Ordinal converters: \def\frordinaldaynumber#1% date is masculine {\number#1\ifcase#1\or \highordinalstr{er}% \fi} \defineconversion [\s!fr] [\v!day+] [\frordinaldaynumber] %D \ShowAllLanguageValues [\s!fr] [french] {French} {kiss} % franse slag %D \ShowAllLanguageValues [\s!es] [spanish] {Spanish} {guitar} % spaans benauwd %D \ShowAllLanguageValues [\s!ca] [catalan] {Catalan} {cream} %D \ShowAllLanguageValues [\s!it] [italian] {Italian} {aria} %D \ShowAllLanguageValues [\s!la] [latin] {Latin} {lover} % latijnse missen %D \ShowAllLanguageValues [\s!pt] [portuguese] {Portuguese} {fisherman} %D \ShowAllLanguageValues [\s!ro] [romanian] {Romanian} {traveller} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-ini.mkii0000644000175000017500000027113614536300610024705 0ustar hillehille%D \module %D [ file=xtag-ini, %D version=2000.12.20, %D title=\CONTEXT\ XML Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / Initialization} %D Beware: don't rely on \longempty things, since this may %D change! \ifdefined\keeputfcharacters \else \let\keeputfcharacters\relax \fi % for mkiv \ifdefined\utfunicodetracer \else \newconstant\utfunicodetracer \fi % for mkiv %D \macros %D {defineinputmode,setinputmode} %D %D For old times sake we still support: \unexpanded\def\defineinputmode[#1]{\expandafter\newtoks\csname every#1inputmode\endcsname} \unexpanded\def\setinputmode [#1]{\the\executeifdefined{every#1inputmode}\emptytoks} \defineinputmode [TEX] \defineinputmode [XML] \setinputmode [TEX] %D Finally we make sure that the compound handler keeps doingits job. \ifx\normalcompound\undefined \let\normalcompound=| \fi \appendtoks \catcode`|=\activecatcode \let|\normalcompound \to \everyTEXinputmode \appendtoks \catcode`|=\lettercatcode \to \everyXMLinputmode %D This module is highly optimized for speed, which sometimes %D leads to rather unreadable code. Sorry for this. \bgroup \obeylines \gdef\startXMLdefinitions% keep % {\bgroup\obeylines\dostartXMLdefinitions} \gdef\dostartXMLdefinitions #1 {\egroup\doifsomething{#1}{\writestatus{XML}{loading #1 support}}} \global\let\stopXMLdefinitions\relax \egroup % todo: XMLfullsave == also attributes % csnames % XMLelse -> elseXML %D Remark: some hard coded character things will be replaced %D by named glyphs as soon as the upgraded encoding modules %D are released. At that moment, unicode support will be %D provided in accordance with the normal support in \CONTEXT. %D Like it or not, this module deals with angle bracketed %D input. Processing \XML\ alike input in \CONTEXT\ has been %D possible since 1995, and till 2000 several methods ran in %D parallel. These were implemented in modules like the semi %D public \type {m-sgml}. %D %D There is not one optimal solution for processing \XML\ data. %D The oldest method was based on a very simple preprocessor %D written in \MODULA\ and later \PERL: \type {} was %D converted into \type {\begSGML[command]} and optional %D parameters were passed. %D %D A second method uses a \PERL\ or \XSL\ transformation %D script that produces \CONTEXT\ commands. This method is %D much slower, mainly because the whole document is read into %D memory and a document tree is to be build. The advantage is %D that processing of the resulting document is fast. %D %D The third method uses a basic parser written in the \TEX\ %D language, and apart from a few pitfalls, this method is %D clean and efficient, but not always robust. Because errors %D in the input are not catched on forehand, processing in %D \TEX\ may fail due to errors. But, given that a document %D can be validated on forehand, this is no big problem. %D %D Each method has its advantage, but especially the third %D method puts some demands on \CONTEXT, since no interference %D between the parser and the core commands may occur. What %D method is used, depends on the situation. %D %D All three methods introduce some problems in interfacing to %D core \CONTEXT\ functionality. This is due to the fact that %D sometimes we want to typeset content directly, while in %D other cases we just want to pick up data for later usage, %D either or not using delimited arguments. And, when moving %D data around, there is always the expansion problem to deal %D with. %D %D As can be expected, we have to map begin and end tags onto %D \CONTEXT's start- and stopcommands. This is the easy part. %D When we have to pass the content of an element to a macro %D as argument, we need to do a delimited grab. Such mappings %D are not that hard to implement and were part of \type %D {m-sgml.tex} already. New in this core module is nested %D grabbing. Also new here is the support for namespaces and %D extensive attribute handling. On the other hand, recursive %D traceback of attributes is no longer supported. Because %D this feature was not really used, we can hereby safely we %D declare the \type {m-sgml.tex} module obsolete. %D %D In order to be able to incorporate \XML\ style definitions %D into basic \TEX\ styles, we will provide some basic %D functionality in the core itself. Some of the functionality %D can be set up with this general command. We use a token %D list register to handle post||setup actions. This permits %D us to extend this command. \unprotect \newtoks\aftersetupXMLprocessing \def\setupXMLprocessing {\dosingleargument\dosetupXMLprocessing} \def\dosetupXMLprocessing[#1]% {\getparameters[\??xp][#1]\the\aftersetupXMLprocessing} \def\XMLprocessingparameter#1% {\csname\??xp#1\endcsname} \protect %D Formally an \XML\ file starts with an unique sequence %D \type {} %D We will be dealing with elements, which means that we have %D to take care of \type {} and \type {}, but %D also with \type {} and \type {}. In some cases %D the upper and lowercase alternatives need to be dealt with, %D although this is not realy needed since XML is case %D sensitive. %D %D We also have to handle entities, like \type {&you;} and %D \type {&me;}. These are quite easy to deal with and need to %D be hooked into the encoding and abbreviation mechanisms. %D %D And then there are the parameters to be taken care of. Here %D we meet \type {key="value"} but also \type {key='eulav'} %D and even the spacy \typ {key = "value"}. %D %D Since we have to handlers for each element and entity, we %D will create a few namespaces. Special care has to be %D given to preformated code. %D %D There are two namespace mechanisms in place: one for %D \TEX, and one for \XML. The later mechanism permits %D remapping and ignoring. \unprotect \def \@@XML {XML:} \edef\@@XMLentity {\@@XML ent} % &crap; \edef\@@XMLelement {\@@XML ele} % \edef\@@XMLvariable {\@@XML var} % key="val" \edef\@@XMLvalue {\@@XML val} % key="val" \edef\@@XMLpars {\@@XML par} % \edef\@@XMLdata {\@@XML dat} % mem buffer \edef\@@XMLcode {\@@XML cod} % named mem buffers \edef\@@XMLinstruction {\@@XML ins} % \edef\@@XMLvariable {\@@XML c} % key="val" \edef\@@XMLvalue {\@@XML d} % key="val" \edef\@@XMLpars {\@@XML e} % \edef\@@XMLdata {\@@XML f} % mem buffer \edef\@@XMLcode {\@@XML g} % named mem buffers \edef\@@XMLinstruction {\@@XML h} % =.othercatcode % .catcode`."=.othercatcode % .catcode`./=.othercatcode % .catcode`.'=.othercatcode % .catcode`.~=.othercatcode % .catcode`.#=.othercatcode % .let &=.doXMLentity % .unexpanded.def=.other % .unexpanded.def=.othercatcode % .let<.relax * new % .processingXMLfalse % E % % .global.let<.relax * new % .global.let&.relax * new % % .egroup % % \def\disableXML % {\setnormalcatcodes\processingXMLfalse} \defcatcodecommand\xmlcatcodese 046 \doXMLentity \defcatcodecommand\xmlcatcodese 060 \doXMLelement \defcatcodecommand\xmlcatcodesr 046 \doXMLentity \defcatcodecommand\xmlcatcodesr 060 \doXMLelement \defcatcodecommand\xmlcatcodesn 046 \doXMLentity \defcatcodecommand\xmlcatcodesn 060 \doXMLelement \letcatcodecommand\xmlcatcodesr 035 \letterhash \letcatcodecommand\xmlcatcodesr 036 \letterdollar \letcatcodecommand\xmlcatcodesr 037 \letterpercent \letcatcodecommand\xmlcatcodesr 092 \letterbackslash \letcatcodecommand\xmlcatcodesr 094 \letterhat \letcatcodecommand\xmlcatcodesr 095 \letterunderscore \letcatcodecommand\xmlcatcodesr 123 \letterleftbrace \letcatcodecommand\xmlcatcodesr 125 \letterrightbrace \letcatcodecommand\xmlcatcodesr 124 \letterbar \bgroup \catcode`\&=13 \let&\relax \xdef\entityhash {&\string#035;} \xdef\entitydollar {&\string#036;} \xdef\entitypercent {&\string#037;} \xdef\entitybackslash {&\string#092;} \xdef\entityhat {&\string#094;} \xdef\entityunderscore{&\string#095;} \xdef\entityleftbrace {&\string#123;} \xdef\entityrightbrace{&\string#125;} \xdef\entitybar {&\string#124;} \egroup \letcatcodecommand\xmlcatcodese 035 \entityhash \letcatcodecommand\xmlcatcodese 036 \entitydollar \letcatcodecommand\xmlcatcodese 037 \entitypercent \letcatcodecommand\xmlcatcodese 092 \entitybackslash \letcatcodecommand\xmlcatcodese 094 \entityhat \letcatcodecommand\xmlcatcodese 095 \entityunderscore \letcatcodecommand\xmlcatcodese 123 \entityleftbrace \letcatcodecommand\xmlcatcodese 125 \entityrightbrace \letcatcodecommand\xmlcatcodese 124 \entitybar % we speed things up by explicitly setting the active char's < & \doifmodeelse {mkiv} { \def\mksetXMLtokensreduction % mkiv {\setcatcodetable\xmlcatcodesn} } { \def\mksetXMLtokensreduction % mkii {\ifcase\XMLtokensreduction \setcatcodetable\xmlcatcodese \or \setcatcodetable\xmlcatcodesr \else \setcatcodetable\xmlcatcodesn \fi} } \bgroup \catcode`\<=13 \catcode`\&=13 \gdef\enableXML {\mksetXMLtokensreduction \let&\doXMLentity \unexpanded\def<{\doXMLelement}% \processingXMLtrue \the\everyenableXML} \gdef\disableXML {\setcatcodetable\ctxcatcodes % maybe \texcatcodes \processingXMLfalse} \gdef\enableXMLexpansion {\def<{\doXMLelement}% \let&\doXMLentity} \gdef\disableXMLexpansion {\unexpanded\def<{\doXMLelement}% \let&\doXMLentity} \unexpanded\gdef\enableXMLelements {\catcode60=\activecatcode \catcode62=\othercatcode \unexpanded\def<{\doXMLelement}% \processingXMLtrue} \unexpanded\gdef\disableXMLelements {\catcode60=\activecatcode \catcode62=\othercatcode \let<\relax \processingXMLfalse} \global\let<\relax \global\let&\relax \egroup %D An element can be singular or paired. A singular element is %D called an empty element. The following definitions are %D equivalent: %D %D \starttyping %D %D \stoptyping %D %D Empty elements can have arguments too. Conforming the %D standard, each key must have a value. These are separated %D by an \type {=} sign and the value is delimited by either %D \type {"} or \type {'}. There may be spaces around the %D equal sign. %D %D \starttyping %D %D \stoptyping %D %D Officially the following definition is not valid: %D %D \starttyping %D some text %D \stoptyping %D %D Although we can handle both cases independently, this is %D seldom needed. %D %D Processing instructions are identified by a~\type {?} and are %D like empty elements. %D %D \starttyping %D %D \stoptyping %D %D Comment is formatted as follows. %D %D \starttyping %D %D \stoptyping %D %D Verbatim code inits purest form is called \type {CDATA} and %D is embedded in the following ugly and therefore recognizable %D way: %D %D \starttyping %D %D \stoptyping %D The parser is implemented as a multi||step macro. Because %D \type {!} and \type {?} should be picked up correctly, we %D need to define a few macros in unprotected mode! %D %D Because \XML\ is defined with some restrictions in mind, %D parsing the elements is not that complicated. First we have %D to determine if we're dealing with a comment or processing %D instruction. We need a bit of grouping because we have to %D mess up with catcodes. We probably have to treat a few %D more catcode and first character cases. We need to use %D \type {\begingroup} here, otherwise we get funny spaces in %D math. %D Maybe I will remove grouping here and introduce \type %D {\obeyXMLlines}. %D By using a few {\expandafter}'s we can avoid a \type {\next} %D construction. We could speed the first char test up a bit %D by using an installer and something \typ {\getvalue %D {#1doXMLelement}} (todo). \protect % we need an normal ! ? % \long\def\doXMLelement#1% % {\if#1!\expandafter \xparseXMLescape \else % \if#1?\expandafter\expandafter\expandafter \xparseXMLprocess \else % \expandafter\expandafter\expandafter \xparseXMLelement \fi\fi % #1} \def\expandthree{\expandafter\expandafter\expandafter} \long\def\doXMLelement#1% {\if#1!\expandafter \xparseXMLescape \else \if#1?\expandthree \xparseXMLprocess \else \expandthree \xparseXMLelement \fi\fi #1} % does it end with ? or ?> \long\def\xparseXMLescape !#1 {\parseXMLescape{#1}} \long\def\xparseXMLprocess ?#1 #2>{\parseXMLprocess{#1}{#2}} \long\def\xparseXMLelement #1>{\parseXMLelement #1 >} %D The escape handler takes care of the fuzzy \type { parsing takes place in macros {\executeifdefined{\@@XMLescape:#1}{\csname\@@XMLescape:\s!default\endcsname}} %D In our case, processing instructions are only needed if %D we want specific \CONTEXT\ support. This may be useful in %D applications where the data is generated by an %D application. We will implement a \CONTEXT\ code handler %D later. %D The processing instructions handler is implemented as %D follows. \long\def\defineXMLprocessor[#1]#2% {\long\setvalue{\@@XMLinstruction:#1}{#2}} % \def\parseXMLprocess#1#2% % {\executeifdefined{\@@XMLinstruction:#1}\gobbleoneargument{#2}} %D Because we support \type {.. ?>} as well as \type {.. >} %D end||of||pi situations, we need to clean up the ending %D \type {?}. \protect \long\def\cleanupXMLprocess#1% {\docleanupXMLprocess#1 ? \relax} \long\def\docleanupXMLprocess#1? #2\relax {\def\currentXMLprocess{#1}} \unprotect \def\parseXMLprocess#1#2% {\cleanupXMLprocess{#2}% \defconvertedcommand\ascii{#1}% %\writestatus{xml-process}{\ascii} \expanded {\executeifdefined {\@@XMLinstruction:\ascii} \noexpand\gobbleoneargument {\expandafter\noexpand\currentXMLprocess}}} %D One never knows: \let\normalparseXMLescape \parseXMLescape \let\normalparseXMLelement\parseXMLelement \let\normalparseXMLprocess\parseXMLprocess %D Next we will implement the normal element handler. This %D piece of code is complicated by the fact that we need to %D handle namespaces. \let\currentXMLarguments \empty \let\currentXMLelement \empty % name \let\currentXMLidentifier\empty % name or name/ \let\currentXMLnamespace \empty % the (remapped) namespace \let\originalXMLnamespace\empty % the unremapped namespace \let\rawXMLidentifier \empty \def\rawXMLnamespace {\ifx\currentXMLnamespace\empty\else\currentXMLnamespace:\fi} \def\rawXMLelement{\rawXMLnamespace\rawXMLidentifier} %D The following token list register provided the user a hook %D for extensions. \newtoks\everyXMLelement %D We try to keep track of the nature of an element. This %D flag can be used for special purposes (as in the pretty %D printing macros). \chardef\kindofXMLelement=0 \chardef\beginXMLtag=1 \chardef\endXMLtag =2 \chardef\emptyXMLtag=3 %D We do a rather hard coded scan for the namespace attribute. This %D is needed because its value determines further namespace related %D actions. \def\openXMLargument{ /} \long\def\parseXMLelement#1#2 #3>% {\def\currentXMLarguments{#3}% including end / \if#1/% \chardef\kindofXMLelement\endXMLtag \def\currentXMLelement{#2}% \else \docleanupXMLelement#1#2/\empty\relax \fi \ifx\currentXMLarguments\openXMLargument \chardef\kindofXMLelement\emptyXMLtag \fi \@EA\splitoffXMLnamespace\currentXMLelement::\relax \ifcase\kindofXMLelement % can't happen \or % begintag or emptytag with arguments or space before / \the\everyXMLelement % only for begin/empty tag ! \ifx\currentXMLarguments\empty \else \dogetXMLarguments\rawXMLelement#3>% \fi \or % no arguments \or % empty element without arguments (but possible presets) \the\everyXMLelement \fi \ifcase\kindofXMLelement\or \let \currentXMLidentifier \rawXMLidentifier \edef\currentXMLfullidentifier {\rawXMLelement }% \or \edef\currentXMLidentifier {/\rawXMLidentifier }% \edef\currentXMLfullidentifier{/\rawXMLelement }% \or \edef\currentXMLidentifier {\rawXMLidentifier/}% \edef\currentXMLfullidentifier {\rawXMLelement /}% \fi \iftraceXMLelements\traceXMLelement\fi \executeXMLelement} \long\def\docleanupXMLelement#1/#2#3\relax {\def\currentXMLelement{#1}% watch out: \empty == begin or empty tag \chardef\kindofXMLelement\ifx#2\empty\beginXMLtag\else\emptyXMLtag\fi} \def\@@traceXMLelement {\originalXMLfullidentifier \ifx\originalXMLfullidentifier\currentXMLfullidentifier\else \space=>\space\currentXMLfullidentifier \fi \ifx\currentXMLarguments\empty\else \space\string|\space\currentXMLarguments \fi} \long\def\traceXMLelement {\edef\originalXMLfullidentifier{\someXMLelementID\currentXMLelement}% \cleanupXMLarguments\writestatus{xml-element}{\@@traceXMLelement}} %D We split off the namespace part, construct the %D identifier, and remap the namespace if needed. \def\splitoffXMLnamespace#1:#2:#3\relax {\def\rawXMLidentifier{#2}% \ifx\rawXMLidentifier\empty \let\currentXMLnamespace\empty \edef\rawXMLidentifier{#1}% \else \edef\currentXMLnamespace{#1}% \fi \let\originalXMLnamespace\currentXMLnamespace \checkXMLnamespace\rawXMLidentifier} \def\xsplitoffXMLnamespace% fast resplit {\ifcsname\@@XMLnamespace:\currentXMLnamespace\endcsname \csname\@@XMLnamespace:\currentXMLnamespace\endcsname \fi} %D We will implement this macro later. \let\checkXMLnamespace\gobbleoneargument % see below %D The namespace attribute checking is part of the element %D parser, since the value of \type {xmlns} may influence other %D namespace mapping. \def\@@XMLns{xmlns} \def\checkXMLnamespaceattr#1% xmlns:\@@XMLname="\XMLns" {\edef\XMLns{#1}% \ifx\XMLns\empty \else \ifcsname\@@XMLurlspace:\XMLns\endcsname % get remapped namespace (from url) % \edef\XMLns{\csname\@@XMLurlspace:\XMLns\endcsname}% \@EA\let\@EA\XMLns\csname\@@XMLurlspace:\XMLns\endcsname % remap this one \ifx\@@XMLname\empty % not watertight since no implicit grouping \xautoXMLnamespace\XMLns \else \xremapXMLnamespace\@@XMLname\XMLns % redo namespace remapping of self if needed \ifx\XMLns\currentXMLnamespace % i'm still not sure if this is ok \else \xsplitoffXMLnamespace \fi \fi \fi \fi} %D Although not really needed, we clean up the arguments. % \long\def\cleanupXMLarguments % {\ifnum\kindofXMLelement=\emptyXMLtag % \ifx\currentXMLarguments\empty \else % \@EA\docleanupXMLarguments\currentXMLarguments/\empty % \fi % \fi} % % \long\def\docleanupXMLarguments#1/#2\empty % {\edef\currentXMLarguments{#1}} % % we need to be ...="/" .... /> safe \long\def\cleanupXMLarguments {\ifnum\kindofXMLelement=\emptyXMLtag \ifx\currentXMLarguments\empty \else \@EA\docleanupXMLarguments\currentXMLarguments/ \relax \fi \else\ifnum\kindofXMLelement=\beginXMLtag \ifx\currentXMLarguments\space \let\currentXMLarguments\empty \fi \fi\fi} % \long\def\docleanupXMLarguments#1/ #2\relax % space added earlier % {\edef\currentXMLarguments{#1}} % % \startbuffer % % \stopbuffer % % \showXMLbuffer % % No \type {\edef} in the following, else \showXMLbuffer fails: \long\def\docleanupXMLarguments#1/ #2\relax % space added earlier {\def\currentXMLarguments{#1}} % no \edef, goes wrong in \showXML \def\executeXMLelementA % no fallback {\ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname \csname\@@XMLelement:\currentXMLfullidentifier\endcsname \fi} \def\executeXMLelementB % default fallback {\csname \@@XMLelement:% \ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname \currentXMLfullidentifier \else \defaultXMLelementID % was \s!default \fi \endcsname} \def\executeXMLelementC % no namespace of default fallback {\csname \@@XMLelement:% \ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname \currentXMLfullidentifier \else\ifcsname\@@XMLelement:\currentXMLidentifier\endcsname \currentXMLidentifier \else \defaultXMLelementID % was \s!default \fi\fi \endcsname} \def\executeXMLelementD {\csname \ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname \@@XMLelement:\currentXMLfullidentifier \else\ifcsname\@@XMLelement:\currentXMLidentifier\endcsname \@@XMLelement:\currentXMLidentifier \else \executeXMLelementDD % less skipping and thereby faster \fi\fi \endcsname} \def\executeXMLelementDD % now forget about tex mapping {\ifcsname\normal@@XMLelement:\currentXMLfullidentifier\endcsname \normal@@XMLelement:\currentXMLfullidentifier \else\ifcsname\normal@@XMLelement:\currentXMLidentifier\endcsname \normal@@XMLelement:\currentXMLidentifier \else \normal@@XMLelement:\defaultXMLelementID % was \@@XMLelement:\s!default \fi\fi} \def\setXMLfallbackmode#1% {\ifcase#1\relax \let\executeXMLelement \executeXMLelementA \let\automateXMLnamespace\automateXMLnamespaceA \or % 1 \let\executeXMLelement \executeXMLelementB \let\automateXMLnamespace\automateXMLnamespaceB \or % 2 \let\executeXMLelement \executeXMLelementC \let\automateXMLnamespace\automateXMLnamespaceC \or % 3 \let\executeXMLelement \executeXMLelementD \let\automateXMLnamespace\automateXMLnamespaceD \fi} \setXMLfallbackmode3 % was 2 %D An example of fall back modes is given below. %D The automated namespace stuff is new and yet undocumented %D (see resource libraries for usage). \def\xautoXMLnamespace#1% fast internal one {\ifcsname\@@XMLnamespace-#1\endcsname\else \@EA\appendtoks\csname\@@XMLnamespace-#1\endcsname\to\autoXMLnamespaces \fi \@EA\edef\csname\@@XMLnamespace-#1\endcsname {\noexpand\edef\noexpand\@axmlns@{#1}% quicker #1 -> \#1 \noexpand\doautoXMLnamespace\noexpand\@axmlns@}} \def\doautoXMLnamespace#1% \done is set before list {\ifdone\else\automateXMLnamespace#1\fi} \def\automateXMLnamespaceA#1% {\ifcsname\@@XMLelement:#1:\checkedXMLnamespace\endcsname \let\currentXMLnamespace#1% \else\ifcsname\@@XMLelement:#1:\checkedXMLnamespace/\endcsname \let\currentXMLnamespace#1% \fi\fi} \let\automateXMLnamespaceB\automateXMLnamespaceA \let\automateXMLnamespaceC\automateXMLnamespaceA \def\automateXMLnamespaceD#1% {\ifcsname\@@XMLelement:#1:\checkedXMLnamespace\endcsname \let\currentXMLnamespace#1% \else\ifcsname\normal@@XMLelement:#1:\checkedXMLnamespace\endcsname \let\currentXMLnamespace#1% \else \automateXMLnamespaceDD#1% \fi\fi} \def\automateXMLnamespaceDD#1% {\ifcsname\@@XMLelement:#1:\checkedXMLnamespace/\endcsname \let\currentXMLnamespace#1% \else\ifcsname\normal@@XMLelement:#1:\checkedXMLnamespace/\endcsname \let\currentXMLnamespace#1% \fi\fi} %D Later we will implement the error handler, here we handle %D the default case. \def\someXMLelementID#1% {\ifnum\kindofXMLelement=\endXMLtag /\fi #1% \ifnum\kindofXMLelement=\emptyXMLtag/\fi} \def\defaultXMLelementID {\someXMLelementID\s!default} %D It is possible to keep track of nesting automatically, %D but this would kind of prohibit things like \type %D {\ignorespaces}. In the future we may provide an %D automatic depth tracking as an alternative (exclusive) %D mode of operation combined with space grabbing. \def\beginXMLelement {\global\advance\XMLdepth\plusone \global\@EA\let\csname\@@XMLdepth:\the\XMLdepth\endcsname\currentXMLelement }%\writestatus{XML TRACE}{[begin] [\the\XMLdepth] [\XMLself]}} \def\endXMLelement {%\writestatus{XML TRACE}{[end] [\the\XMLdepth] [\XMLself]}% \global\@EA\let\csname\@@XMLdepth:\the\XMLdepth\endcsname\undefined \global\advance\XMLdepth\minusone} % 0 = nothing % 1 = unknown % 2 = current element \chardef\XMLancestormode=2 % never change this one globally % \def\XMLancestor#1% % {\ifnum\numexpr(\XMLdepth-#1)>0 % \csname\@@XMLdepth:\the\numexpr(\XMLdepth-#1)\endcsname % \else % \ifcase\XMLancestormode\or\s!unknown\or\currentXMLelement\fi % \fi} \def\XMLancestor#1% {\ifnum\numexpr\XMLdepth-#1\relax>\zerocount \csname\@@XMLdepth:\the\numexpr\XMLdepth-#1\relax\endcsname \else \ifcase\XMLancestormode\or\s!unknown\or\currentXMLelement\fi \fi} % \def\XMLpureancestor#1% % {\ifnum\numexpr(\XMLdepth-#1)>0 % \csname\@@XMLdepth:\the\numexpr(\XMLdepth-#1)\endcsname % \fi} \def\XMLpureancestor#1% {\ifcase\numexpr\XMLdepth-#1\relax\or \csname\@@XMLdepth:\the\numexpr\XMLdepth-#1\relax\endcsname \fi} \def\XMLparent {\XMLancestor \plusone } \def\XMLself {\XMLancestor \zerocount} \def\XMLpureparent{\XMLpureancestor\plusone } \def\XMLpureself {\XMLpureancestor\zerocount} % \def\XMLpureancestor#1% % {\csname % \ifnum\numexpr(\XMLdepth-#1)>\zerocount % \@@XMLdepth:\the\numexpr(\XMLdepth-#1)% % \else % \s!empty % \fi % \endcsname} \def\XMLpureparent {\XMLpureancestor\plusone} % probleem: depth is vast en dus ook ancestor % \XMLinh{...} will backtrack definitions (given that the elements % use begin/end, the backtracking stops when a non-empty value is % encountered; maybe we will add some keyword (inherit) some day \def\XMLinhpar#1#2% {\@EA\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty \@EA\pXMLinh \else \csname\@@XMLvariable:#1:#2\endcsname \@EA\gobbletwoarguments \fi\XMLdepth{#2}} \def\XMLinh {\XMLinhpar\currentXMLelement} % \def\pXMLinh#1% % {\@EA\ppXMLinh\@EA{\the\numexpr(#1-\plusone)}} \def\pXMLinh#1% {\@EA\ppXMLinh\@EA{\the\numexpr#1-\plusone\relax}} \def\ppXMLinh#1#2% {\@EA\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty \ifnum#1>\plusone \@EAEAEA\pXMLinh \else \@EAEAEA\gobbletwoarguments \fi \else \csname\@@XMLvariable:#1:#2\endcsname \@EA\gobbletwoarguments \fi{#1}{#2}} % better % % \def\XMLpureancestor#1% % {\ifcsname\@@XMLdepth:\the\numexpr(\XMLdepth-#1)\endcsname % \csname\@@XMLdepth:\the\numexpr(\XMLdepth-#1)\endcsname % \fi} % replaces macro in xtag-ini: ! ! ! \def\edefXMLop#1#2% \macro{att} {\edef#1% {\csname\ifcsname\@@XMLvariable:\ownXMLelement:#2\endcsname \@@XMLvariable:\ownXMLelement:#2\else\s!empty \fi\endcsname}} \def\edefXMLinh#1#2% \macro{att} {\edef#1{\XMLinh{#2}}} \def\edefXMLinhpar#1#2#3% \macro{tag}{att} {\edef#1{\XMLinhpar{#2}{#3}}} % \def\doifXMLopdef#1#2% \macro{att} % {\ifcsname\@@XMLvariable:\ownXMLelement:#1\endcsname % \@EA\let\@EA#1\csname\@@XMLvariable:\ownXMLelement:#1\endcsname % \expandafter\firstofoneargument % \else % \expandafter\gobbleoneargument % \fi} \fetchruntimecommand \tracebackXMLattribute {\f!xtagprefix\s!run} \fetchruntimecommand \showXMLinh {\f!xtagprefix\s!run} % \defineXMLenvironment[one] % {\beginXMLelement} % {\endXMLelement} % % \defineXMLenvironment[two] % {\beginXMLelement % \starttabulatie % \NC ancestor 1 \NC \XMLancestor{1} \NC \NR % \NC ancestor 2 \NC \XMLancestor{2} \NC \NR % \NC ancestor 3 \NC \XMLancestor{3} \NC \NR % \NC ancestor 4 \NC \XMLancestor{4} \NC \NR % \stoptabulatie} % {\endXMLelement} % % \startbuffer % % \stopbuffer % % {fallback A: \setXMLfallbackmode 0 \processXMLbuffer}\par % {fallback B: \setXMLfallbackmode 1 \processXMLbuffer}\par % {fallback C: \setXMLfallbackmode 2 \processXMLbuffer}\par % todo: split #1 into raws en reconstruct, set current etc, push and pop % % \def\beginXMLelement % {\dosingleempty\dobeginXMLelement} % % \def\dobeginXMLelement[#1]% % {\global\advance\XMLdepth 1 % \global\@EA\let\csname\@@XMLdepth:\the\XMLdepth\endcsname\currentXMLelement % \global\@EA\edef\csname\@@XMLdopth:\the\XMLdepth\endcsname{\ownXMLelement}% % \iffirstargument\edef\ownXMLelement{#1}\fi} % % \def\endXMLelement % {\@EA\let\@EA\ownXMLelement\csname\@@XMLdopth:\the\XMLdepth\endcsname % \global\advance\XMLdepth -1 } %D \defineXMLenvironment[one] %D {\beginXMLelement} %D {\endXMLelement} %D %D \defineXMLenvironment[two] %D {\beginXMLelement %D \starttabulate %D \NC parent 1 \NC \XMLancestor{1} \NC \NR %D \NC parent 2 \NC \XMLancestor{2} \NC \NR %D \NC parent 3 \NC \XMLancestor{3} \NC \NR %D \NC parent 4 \NC \XMLancestor{4} \NC \NR %D \stoptabulate} %D {\endXMLelement} %D %D \startbuffer %D %D \stopbuffer %D %D fallback A: \setXMLfallbackmode0 \processXMLbuffer %D fallback B: \setXMLfallbackmode1 \processXMLbuffer %D fallback C: \setXMLfallbackmode2 \processXMLbuffer %D Here we do the namespace (re)mapping. More examples are %D provided in the manual. %D %D \starttyping %D \supportXMLnamespace [test] % needed to get a namespace working %D \skipXMLnamespace [test] % slow %D \ignoreXMLnamespace [test] % faster %D \defineXMLenvironment [rubish:itemize] {[} {]} %D \defineXMLenvironment [rubish:item] {(} {)} %D \remapXMLnamespace [crap] [rubish] %D \remapXMLnamespace [con] [context] %D \remapXMLurlspace [http://www.pragma-ade.com/dtd/context] [context] %D \autoXMLnamespace [context] % fallback %D \autoXMLnamespace [whatever] % second fall back %D \stoptyping \newtoks\autoXMLnamespaces %D The automatically mapped namespaces (the fallbacks so to %D day) are collected in a token list. \let\checkedXMLnamespace\empty \def\checkXMLnamespace#1% {\edef\checkedXMLnamespace{#1}% \ifcsname\@@XMLnamespace:\currentXMLnamespace\endcsname \csname\@@XMLnamespace:\currentXMLnamespace\endcsname % forced namespace \else\ifcsname\@@XMLelement:\currentXMLelement\endcsname % natural element \else\ifcsname\@@XMLelement:\currentXMLelement/\endcsname % natural element \else % locate fallback \donefalse\the\autoXMLnamespaces \fi\fi\fi} \def\skipXMLnamespace[#1]% {\letvalue{\@@XMLnamespace:#1}\doXMLskipnamespace} \def\doXMLskipnamespace {\long\@EA\def\csname\@@XMLelement:\checkedXMLnamespace\endcsname {\getXMLgroupedignore\checkedXMLnamespace}} \def\hideXMLnamespace[#1]% {\letvalue{\@@XMLnamespace:#1}\doXMLhidenamespace} \def\doXMLhidenamespace {\long\@EA\def\csname\@@XMLelement:\checkedXMLnamespace\endcsname {\redoXMLignore\checkedXMLnamespace}} \def\ignoreXMLnamespace[#1]% {\letvalue{\@@XMLnamespace:#1}\doXMLignorenamespace} \def\doXMLignorenamespace % \let binnen def {\long\@EA\def\csname\@@XMLelement:\checkedXMLnamespace\endcsname {\@EA\redoXMLignore\@EA{\checkedXMLnamespace}}} % EA ? \def\remapXMLnamespace {\dodoubleargument\doremapXMLnamespace} \def\doremapXMLnamespace[#1][#2]% {\ifsecondargument \setvalue{\@@XMLnamespace:#1}{\def\currentXMLnamespace{#2}}% \else \letvalue{\@@XMLnamespace:#1}\relax \fi} \def\supportXMLnamespace% {\dosingleargument\dosupportXMLnamespace} \def\dosupportXMLnamespace[#1]% {\setvalue{\@@XMLnamespace:#1}{\def\currentXMLnamespace{#1}}} \def\xremapXMLnamespace#1#2% fast internal one {\@EA\edef\csname\@@XMLnamespace:#1\endcsname {\def\noexpand\currentXMLnamespace{#2}}} \def\autoXMLnamespace[#1]% {\xautoXMLnamespace{#1}} \def\xautoXMLnamespace#1% fast internal one {\ifcsname\@@XMLnamespace-#1\endcsname\else \@EA\appendtoks\csname\@@XMLnamespace-#1\endcsname\to\autoXMLnamespaces \fi \@EA\edef\csname\@@XMLnamespace-#1\endcsname {\noexpand\doautoXMLnamespace{#1}}} \def\doautoXMLnamespace#1% \done is set before list {\ifdone\else \ifcsname\@@XMLelement:#1:\checkedXMLnamespace\endcsname \def\currentXMLnamespace{#1}% \else\ifcsname\@@XMLelement:#1:\checkedXMLnamespace/\endcsname \def\currentXMLnamespace{#1}% \fi\fi \fi} \def\resetXMLnamespace[#1]% {\letvalue{\@@XMLnamespace-#1}\gobbleoneargument \letvalue{\@@XMLnamespace:#1}\gobbleoneargument} \def\remapXMLurlspace {\dodoubleargument\doremapXMLurlspace} \def\doremapXMLurlspace[#1][#2]% {\setvalue{\@@XMLurlspace:#1}{#2}} %D Entities needs a bit more work, as well as a connection %D with the encoding handlers. % we need to be able to do: % % \defineXMLentity[amp] {\FunnyAmp} \def\FunnyAmp#1;{\getXMLentity{#1}} % % \defineXMLentity [pound] {(why not use euro's?)} % % \startXMLdata % test &pound; test % \stopXMLdata % % so we need an ifless implementation % % also .. this should work: % % \defineXMLentity[ctx-var-textwidth] {\textwidth} % % \defineXMLcommand[test][width=\textwidth] % {\the\dimexpr\XMLop{width}\relax} % % \startXMLdata % % % \stopXMLdata % \eacute -> simplified -> e (via raw encoding) % -> raw -> eacute (via handler) % % naming sucks \newif\ifXMLrawentities % proper fallback \newif\ifXMLsimpleentities % last resort \def\simpleXMLencoding{raw} \ifnum\texengine=\luatexengine \def\simplifyXMLentities {\XMLsimpleentitiestrue} \else \def\simplifyXMLentities {\fastenableencoding\simpleXMLencoding \XMLsimpleentitiestrue} \fi \def\defineXMLentity {\dodoubleempty\dodefineXMLentity} \def\dodefineXMLentity[#1][#2]#3% {\ifsecondargument \defineXMLentities[#1]{#2}{#3}% \else \dododefineXMLentity{#1}{#3}% \fi} \def\defineXMLentities[#1]#2#3% {\dododefineXMLentity{#1}{\ifXMLsimpleentities#2\else#3\fi}} \def\dododefineXMLentity#1#2% {\unspaceargument#1\to\ascii % #1 can be {[} or so \long\setvalue{\@@XMLentity:\@EA\firstofoneargument\ascii}{#2}} \def\setXMLentity#1% fast one {\long\@EA\def\csname\@@XMLentity:#1\endcsname} %D May this wile become dodo (more in tune with rest); %D beware: also remapped in xtag-map. \def\doXMLentity#1#2;% interesting: # is now ## {\if\string#1\letterhash \@EA\parseXMLcharacter \else\ifXMLrawentities \@EAEAEA\firstofoneargument \else \@EAEAEA\executeXMLentity \fi\fi{#1#2}} %D Here we need to get rid of the double hash and act upon the %D number. Proper hex/oct number support can be implemented by %D redefining \type {\executeXMLcharacter}. % \def\parseXMLcharacter#1% gobble the ##x % {\@EA\executeXMLcharacter\@EA{\gobblethreearguments#1}} % % single hash now % % \def\parseXMLcharacter#1% % {\@EA\executeXMLcharacter\@EA{\gobbleoneargument#1}} % % \def\executeXMLcharacter#1% can be overloaded % {\ifnum"#1<256 % \@EA\getXMLcharacter % \else\ifXMLrawentities % \@EAEAEA\firstofoneargument % \else % \@EAEAEA\unknownXMLcharacter % \fi\fi{\number"#1}} % % \unexpanded\def\getXMLcharacter#1{\rawcharacter{#1}} \def\parseXMLcharacter#1% {\@EA\executeXMLcharacter\gobbleoneargument#1\empty\relax} \def\executeXMLcharacter#1#2\relax {\if#1x% \@EA\noexecuteXMLhexcharacter \else \@EA\doexecuteXMLdeccharacter \fi#1#2\relax} \def\noexecuteXMLhexcharacter x#1\relax {\uppercase{\doexecuteXMLhexcharacter#1\relax}} % \unexpanded\def\getXMLcharacter#1% % {\ifXMLrawentities % \@EA\firstofoneargument % \else\ifcsname\@@XMLentity:#1\endcsname % \@EAEAEA\getXMLentity % \else % \@EAEAEA\unicodechar % was: \rawcharacter % \fi\fi{#1}} % % \def\doexecuteXMLhexcharacter#1\relax{\getXMLcharacter{"#1}} % \def\doexecuteXMLdeccharacter#1\relax{\getXMLcharacter {#1}} % % if we want to support x in entity overloading, we prefer: \unexpanded\def\getXMLdeccharacter#1% {\ifXMLrawentities \@EA\rawXMLdecentity \else\ifcsname\@@XMLentity:#1\endcsname \@EAEAEA\getXMLdecentity \else \@EAEAEA\unicodechar \fi\fi{#1}} \unexpanded\def\getXMLhexcharacter#1% {\ifXMLrawentities \@EA\rawXMLhexentity \else\ifcsname\@@XMLentity:x#1\endcsname \@EAEAEA\getXMLhexentity \else \@EAEAEA\unicodehexchar \fi\fi{#1}} \def\unicodehexchar#1{\unicodechar{"#1}} \let\getXMLcharacter\getXMLdeccharacter \def\getXMLdecentity#1{\getXMLentity {#1}} \def\getXMLhexentity#1{\getXMLentity{x#1}} \def\rawXMLdecentity#1{#1} \def\rawXMLhexentity#1{x#1} \def\doexecuteXMLhexcharacter#1\relax{\getXMLhexcharacter{#1}} \def\doexecuteXMLdeccharacter#1\relax{\getXMLdeccharacter{#1}} % \defineXMLentity[8218] {Adam} % \defineXMLentity[x007D]{Eve} % % \startbuffer % @ ‘ ‚ “ ” „• % & % $ { }   … % \stopbuffer % % \typebuffer \processXMLbuffer % left overs \def\unknownXMLcharacter#1{[#1]} \ifx\unicodechar\undefined\let\unicodechar\rawcharacter\fi % brrrr % \useXMLfilter[ent] % % \defineXMLsingular[test]{{\simplifyXMLentities\XMLpar{test}{bla}{}}} % % \startXMLdata % % \stopXMLdata % % \defineXMLentity[45]{|it works|} % {|-|} % % \startXMLdata % text-.text % textEFtext % \stopXMLdata %D May be this will change a bit ... \def\executeXMLentity#1% named one {\getXMLentity{#1}} %\def\expandedXMLentity#1% % {\ifcsname\@@XMLentity:#1\endcsname\csname\@@XMLentity:#1\endcsname\fi} % %\unexpanded\def\getXMLentity#1% % {\ifcsname\@@XMLentity:#1\endcsname\csname\@@XMLentity:#1\endcsname\fi} % %\def\expandedXMLentity#1% % {\csname\@@XMLentity:#1\endcsname} % %\unexpanded\def\getXMLentity#1% % {\csname\@@XMLentity:#1\endcsname} \doifundefined{autoXMLentitiestrue}{\expandafter\newif\csname ifautoXMLentities\endcsname} % fall back on context commands \def\expandedXMLentity#1% {\ifcsname\@@XMLentity:#1\endcsname \@EA \execXMLentity \else\ifautoXMLentities \@EAEAEA \autoXMLentity \else \@EAEAEA \crapXMLentity \fi\fi{#1}} \def\execXMLentity#1{\csname\@@XMLentity:#1\endcsname} \def\crapXMLentity#1{\inframed[\c!offset=.1ex]{\tttf#1}} \def\autoXMLentity#1{\ifcsname#1\endcsname\csname#1\endcsname\fi} \unexpanded\def\getXMLentity{\expandedXMLentity} %\def\doifXMLentityelse#1#2#3% % {\ifcsname\@@XMLentity:#1\endcsname#2\else#3\fi} \def\doifXMLentityelse#1% {\ifcsname\@@XMLentity:#1\endcsname \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} % \letvalue{1@2}\firstoftwoarguments % \letvalue{2@2}\secondoftwoarguments % % \def\doifXMLentityelse#1% % {\csname\ifcsname\@@XMLentity:#1\endcsname1\else2\fi @2\endcsname} % see \defineXML... commands: % % [key=val] => \presetXMLarguments{element} => default key/vals % [blabla] => \theXMLarguments{blabla} => user key/vals % [blabla] [key=val] => \presetXMLarguments{element} => default key/vals % \theXMLarguments{blabla} => user key/vals % % stored in case of [blabla] else set as \XMLpar % % see m-steps for an example of usage \let\@@XMLmapmap\empty \newif\ifXMLnamespace \long\def\getXMLarguments#1#2% {\XMLnamespacefalse \dogetXMLarguments{#1}#2>} \let\dosetXMLattributeA\gobbleoneargument \def\dosetXMLattributeB#1% {\ifx\@@XMLspac\originalXMLnamespace \@EA\def\csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname{#1}% % maybe some day global handling here as well \fi} \def\dosetXMLattributeC {\@EA\def\csname\@@XMLvariable:\@@XMLclass\ifx\@@XMLspac \originalXMLnamespace\else:\@@XMLspac\fi:\@@XMLname\endcsname} \def\dosetXMLattributeD {\@EA\def\csname\@@XMLvariable:\@@XMLclass:\ifx\@@XMLspac \originalXMLnamespace\currentXMLnamespace\else\@@XMLspac\fi:\@@XMLname\endcsname} \def\setXMLattributemode#1% {\ifcase#1\relax \let\dosetXMLattribute\dosetXMLattributeA \or \let\dosetXMLattribute\dosetXMLattributeB \or \let\dosetXMLattribute\dosetXMLattributeC \or \let\dosetXMLattribute\dosetXMLattributeD \fi} \setXMLattributemode{2} % a reasonable default \let\@@XMLspac\empty % argumentnamespace \long\def\dogetXMLarguments#1% {\XMLtoks\emptytoks \ifcsname\@@XMLmap:#1\endcsname \let\dodosetXMLargument\dodosetXMLargumentB \else \def\@@XMLclass{#1}% \let\dodosetXMLargument\dodosetXMLargumentA \fi \let\dodoparseXMLarguments\doparseXMLarguments \doparseXMLarguments} % \long\def\doparseXMLarguments#1% space goes ok % {\if#1>% % \let\dodoparseXMLarguments\empty % \else\if#1=% % \edef\@@XMLname{\the\XMLtoks}% % \XMLtoks\emptytoks % \else\if#1"% % \let\dodoparseXMLarguments\dodoparseXMLargumentsD % \else\if#1'% % \let\dodoparseXMLarguments\dodoparseXMLargumentsS % \else\if#1:% % \XMLnamespacetrue % \edef\@@XMLspac{\the\XMLtoks}% % \XMLtoks\emptytoks % \else\if#1/% % \chardef\kindofXMLelement\emptyXMLtag % \else % \XMLtoks\@EA{\the\XMLtoks#1}% % \fi\fi\fi\fi\fi\fi % \dodoparseXMLarguments} % % The next speed optimization is suggested by Taco. Since we % are dealing with validated code, we can grab larger chunks. % % \long\def\doparseXMLarguments#1% space goes ok % {\if#1>% % \let\dodoparseXMLarguments\empty % \else\if#1/% % \chardef\kindofXMLelement\emptyXMLtag % \else % \XMLtoks{#1}% % \let\dodoparseXMLarguments\dodoparseXMLargumentsX % \fi\fi % \dodoparseXMLarguments} % % we can get rid of one more assignment \long\def\doparseXMLarguments#1% space goes ok {\if#1>% %\let\dodoparseXMLarguments\empty \expandafter\gobbleoneargument % speedup \else\if#1/% \chardef\kindofXMLelement\emptyXMLtag \else \XMLtoks{#1}% \let\dodoparseXMLarguments\dodoparseXMLargumentsX \fi\fi \dodoparseXMLarguments} % slightly faster: % % \long\def\doparseXMLarguments#1% space goes ok % {\if#1>% % \@EA\gobbleoneargument % \else\if#1/% % \chardef\kindofXMLelement\emptyXMLtag % \@EAEAEA\gobbletwoarguments % \else % \@EAEAEA\dodoparseXMLargumentsX % \fi\fi#1} % % \def\dodoparseXMLargumentsX#1=#2% % {\def\@@XMLname{#1}% % \getXMLNSSSS#1:\relax % \if#2"% % \expandafter\dodoparseXMLargumentsD % \else % \expandafter\dodoparseXMLargumentsS % \fi} \def\dodoparseXMLargumentsX#1=#2% {\edef\@@XMLname{\the\XMLtoks#1}% \@EA\getXMLNSSSS\@@XMLname:\relax \XMLtoks\emptytoks \if#2"% \let\dodoparseXMLarguments\dodoparseXMLargumentsD \else \let\dodoparseXMLarguments\dodoparseXMLargumentsS \fi \dodoparseXMLarguments} \def\gobbleuntilcolon#1:{#1} \def\getXMLNSSSS#1:#2\relax {\def\!!stringa{#2}% \ifx\!!stringa\empty \else \XMLnamespacetrue \edef\@@XMLname{\gobbleuntilcolon#2}% \edef\@@XMLspac{#1}% \fi} % ok ? % % \def\dodoparseXMLargumentsX#1=#2% % {\edef\@@XMLname{\the\XMLtoks#1}% % \@EA\getXMLNSSSS\@@XMLname:\relax % \XMLtoks\emptytoks % \if#2"% % \@EA\dodoparseXMLargumentsD % \else % \@EA\dodoparseXMLargumentsS % \fi} % Storing \type {#1} in a macro in order to minimize the % amount of data passed as argument does not improve % performance, so we keep the readable form. \def\dodoparseXMLargumentsD#1"{\dosetXMLargument{#1}} \def\dodoparseXMLargumentsS#1'{\dosetXMLargument{#1}} % the readable version % % \def\dosetXMLargument#1% % {\ifXMLnamespace % \ifx\@@XMLspac\@@XMLns % \checkXMLnamespaceattr{#1}% xmlns:\@@XMLname="#1" % \else % \dosetXMLattribute{#1}% some:\@@XMLname="#1" % \fi % \XMLnamespacefalse % \else\ifx\@@XMLname\@@XMLns % \checkXMLnamespaceattr{#1}% xmlns="#1" % \else % \dodosetXMLargument{#1}% % \fi\fi % \let\dodoparseXMLarguments\doparseXMLarguments % \dodoparseXMLarguments} % % the ugly alternative % \def\dosetXMLargument#1% ugly alternative % {\ifXMLnamespace % \XMLnamespacefalse % \ifx\@@XMLspac\@@XMLns % \@EAEAEA\checkXMLnamespaceattr % xmlns:\@@XMLname="#1" % \else % \@EAEAEA\dosetXMLattribute % some:\@@XMLname="#1" % \fi % \else\ifx\@@XMLname\@@XMLns % \@EAEAEA\checkXMLnamespaceattr % xmlns="#1" % \else % \@EAEAEA\dodosetXMLargument % \fi\fi{#1}% % \let\dodoparseXMLarguments\doparseXMLarguments % \dodoparseXMLarguments} \def\dosetXMLargument#1% ugly alternative {\ifXMLnamespace \XMLnamespacefalse \ifx\@@XMLspac\@@XMLns \@EAEAEA\checkXMLnamespaceattr % xmlns:\@@XMLname="#1" \else \@EAEAEA\dosetXMLattribute % some:\@@XMLname="#1" \fi \else\ifx\@@XMLname\@@XMLns \@EAEAEA\checkXMLnamespaceattr % xmlns="#1" \else \@EAEAEA\dodosetXMLargument \fi\fi{#1}% \dodocopyXMLargument \let\dodoparseXMLarguments\doparseXMLarguments \dodoparseXMLarguments} \let\dodocopyXMLargument\relax % \def\dododocopyXMLargument % {\@EA\let\csname\@@XMLvariable:\the\numexpr(\XMLdepth+1):\@@XMLname\@EA\endcsname % \csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname} \def\dododocopyXMLargument {\@EA\let\csname\@@XMLvariable:\the\numexpr\XMLdepth+\plusone\relax:\@@XMLname\@EA\endcsname \csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname} \def\copyXMLargumentindeed {\let\dodocopyXMLargument\dododocopyXMLargument \let\copyXMLargumentindeed\relax} \def\dodosetXMLargumentA {\@EA\def\csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname} % \def\dodosetXMLargumentB#1% % {\@EA\edef\csname\@@XMLmap:\@@XMLmapmap\endcsname % {\@EA\ifx\csname\@@XMLmap:\@@XMLmapmap\endcsname\empty\else % \csname\@@XMLmap:\@@XMLmapmap\endcsname,% % \fi % \@@XMLname=#1}} \def\dodosetXMLargumentB#1% {\@EA\edef\csname\@@XMLmap:\@@XMLmapmap\endcsname {\@EA\ifx\csname\@@XMLmap:\@@XMLmapmap\endcsname\empty\else \csname\@@XMLmap:\@@XMLmapmap\endcsname,% \fi \@@XMLname={#1}}} % {} is needed for aa='bb,cc' \appendtoks \resetXMLarguments{\rawXMLnamespace\rawXMLidentifier}% \to \everyXMLelement \def\resetXMLarguments#1% {\ifcsname\@@XMLmap:#1\endcsname \@EA\let\@EA\@@XMLmapmap\csname\@@XMLmap:#1\endcsname \@EA\let\csname\@@XMLmap:\@@XMLmapmap\endcsname\empty \fi} \def\theXMLarguments#1% {\ifcsname\@@XMLmap:#1\endcsname\csname\@@XMLmap:#1\endcsname\fi} \def\doexpandXMLvalue#1#2% {\ifcsname#2\endcsname \bgroup \enableXMLexpansion \let\getXMLentity\expandedXMLentity #1% simplify maps entities back to _ and alike \expanded{\global\globalscratchtoks{\csname#2\endcsname}}% \egroup \@EA\edef\csname#2\endcsname{\the\globalscratchtoks}% \fi} \def\expandXMLvalue {\doexpandXMLvalue\relax} \def\simplifyXMLvalue{\doexpandXMLvalue\XMLsimpleentitiestrue} \def\expandTEXpar #1#2{\expandXMLvalue{#1\interfaced{#2}}} \def\expandXMLpar #1#2{\expandXMLvalue{\@@XMLvariable:#1:#2}} \def\expandXMLarguments #1{\expandXMLvalue{\@@XMLmap:#1}} \def\simplifyTEXpar #1#2{\simplifyXMLvalue{#1\interfaced{#2}}} \def\simplifyXMLpar #1#2{\simplifyXMLvalue{\@@XMLvariable:#1:#2}} \def\simplifyXMLarguments#1{\simplifyXMLvalue{\@@XMLmap:#1}} %D \startbuffer[tex] %D \defineXMLsingular [fx:root] %D {\XMLNSpar{fx:root}{xml}{lang}{} %D \XMLpar{fx:root}{xml:lang}{} %D \starttabulate[||||] %D \HL %D \NC \bf mode \NC \bf call \NC \bf result \NC\NR %D \HL %D \NC 0\NC\asciistr{\XMLpar {fx:root} {crap} {}} \NC dirt \NC\NR %D \NC \NC\asciistr{\XMLpar {fx:root} {junk} {}} \NC \NC\NR %D \NC \NC\asciistr{\XMLNSpar {fx:root} {fx} {crap} {}}\NC \NC\NR %D \NC \NC\asciistr{\XMLNSpar {fx:root} {xml} {lang} {}}\NC \NC\NR %D \HL %D \NC 1\NC\asciistr{\XMLpar {fx:root} {crap} {}} \NC dirt \NC\NR %D \NC \NC\asciistr{\XMLpar {fx:root} {junk} {}} \NC junk \NC\NR %D \NC \NC\asciistr{\XMLNSpar {fx:root} {fx} {crap} {}}\NC \NC\NR %D \NC \NC\asciistr{\XMLNSpar {fx:root} {xml} {lang} {}}\NC \NC\NR %D \HL %D \NC 2\NC\asciistr{\XMLpar {fx:root} {crap} {}} \NC dirt \NC\NR %D \NC \NC\asciistr{\XMLpar {fx:root} {junk} {}} \NC junk \NC\NR %D \NC \NC\asciistr{\XMLNSpar {fx:root} {fx} {crap} {}}\NC \NC\NR %D \NC \NC\asciistr{\XMLNSpar {fx:root} {xml} {lang} {}}\NC en \NC\NR %D \HL %D \NC 3\NC\asciistr{\XMLpar {fx:root} {crap} {}} \NC dirt \NC\NR %D \NC \NC\asciistr{\XMLpar {fx:root} {junk} {}} \NC junk \NC\NR %D \NC \NC\asciistr{\XMLNSpar {fx:root} {fx} {crap} {}}\NC rubish\NC\NR %D \NC \NC\asciistr{\XMLNSpar {fx:root} {xml} {lang} {}}\NC en \NC\NR %D \HL %D \stoptabulate} %D %D \remapXMLurlspace [http://www.w3.org/1999/XSL/Format] [fx] %D \stopbuffer %D %D \startbuffer[xml] %D %D \stopbuffer %D %D \typebuffer[tex] \processTEXbuffer[tex] %D \typebuffer[xml] \processXMLbuffer[xml] %D The previous macros were the basic parser and their working %D is left to the imagination of the reader. These macros %D will be improved over time. We use rather low level %D definitions so that the mappings will run as fast as %D possible. \bgroup \catcode`<=\activecatcode \long\gdef\dododefineXMLsingular#1#2% {\long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2}} \long\gdef\dododefineXMLcommand#1#2% {\long\@EA\def\csname\@@XMLelement:#1\endcsname{#2}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2}} \long\gdef\dododefineXMLgrouped#1#2% {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\groupedcommand{#2}\donothing\bgroup}% \@EA\let\csname\@@XMLelement:/#1\endcsname\egroup \@EA\let\csname\@@XMLelement:#1/\endcsname\donothing} \long\gdef\dododefineXMLargument#1#2% watch the {} around ##1 {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLargument{#1}{#2}} \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2{}}} \long\gdef\redoXMLargument#1#2% potential optimization: globalnext {\long\@EA\gdef\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{#2{##1}}% \next} \long\gdef\dododefineXMLignore#1% {\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLignore{#1}} \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \@EA\let\csname\@@XMLelement:#1/\endcsname\donothing} \long\gdef\redoXMLignore#1% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{}% \next} \long\gdef\dododefineXMLpickup#1#2#3% {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLpickup{#1}{#2}{#3}} \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}} \long\gdef\redoXMLpickup#1#2#3% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{#2##1#3}% \next} \long\gdef\dododefineXMLenvironment#1#2#3% {\long\@EA\def\csname\@@XMLelement:#1\endcsname{#2}% \long\@EA\def\csname\@@XMLelement:/#1\endcsname{#3}% \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}} \long\gdef\dododefineXMLsave#1% {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty \long\@EA\def\csname\@@XMLelement:#1\endcsname {\redoXMLsave{#1}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}} \long\gdef\dododefineXMLsavecontent#1#2% {\long\@EA\def\csname\@@XMLdata:#1\endcsname{#2}% \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLsave{#1}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}} \long\gdef\redoXMLsave#1% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {\long\@EA\def\csname\@@XMLdata:#1\endcsname{##1}}% \next} \long\gdef\dododefineXMLgsave#1% {\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLgsave{#1}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}} \long\gdef\dododefineXMLgsavecontent#1#2% {\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{#2}% \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLgsave{#1}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}} \long\gdef\redoXMLgsave#1% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{##1}}% \next} \long\gdef\dododefineXMLenvironmentsave#1#2#3% {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLenvironmentsave{#1}{#2}{#3}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}} % maybe \globalnext \long\gdef\redoXMLenvironmentsave#1#2#3% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {#2\long\@EA\def\csname\@@XMLdata:#1\endcsname{##1}#3}% \next} \long\gdef\dododefineXMLenvironmentgsave#1#2#3% {\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLenvironmentgsave{#1}{#2}{#3}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}} \long\gdef\redoXMLenvironmentgsave#1#2#3% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {#2\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{##1}#3}% \next} \long\gdef\dododefineXMLprocess#1% {\@EA\let\csname\@@XMLelement:#1\endcsname\donothing \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \@EA\let\csname\@@XMLelement:#1/\endcsname\donothing} \long\gdef\dododefineXMLnestedenvironment#1#2#3% {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedenvironment{#1}{#2}{#3}}% \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}} \long\gdef\dododefineXMLnestedargument#1#2% {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedargument{#1}{#2}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2{}}} \long\gdef\dododefineXMLnestedsave#1% {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty \long\@EA\def\csname\@@XMLelement:#1\endcsname {\getXMLgroupednestedsave{#1}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}} \long\unexpanded\gdef\getXMLgroupednestedsave#1% {\collectXMLgroupedtrue \long\def\dodogetgrouped{\long\@EA\edef\csname\@@XMLdata:#1\endcsname{\the\groupedtoks}}% \getXMLgrouped{#1}} \long\gdef\dododefineXMLnestedenvironmentsave#1#2#3% {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty \long\@EA\def\csname\@@XMLelement:#1\endcsname {\getXMLgroupednestedenvironmentsave{#1}{#2}{#3}}% \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}} \long\unexpanded\gdef\getXMLgroupednestedenvironmentsave#1#2#3% {\collectXMLgroupedtrue \long\def\dodogetgrouped{#2\long\@EA\edef\csname\@@XMLdata:#1\endcsname{\the\groupedtoks}#3}% \getXMLgrouped{#1}} \egroup %D The high level definition macros. \def\defineXMLsingular {\dotripleempty\dodefineXMLsingular} \def\defineXMLcommand {\dotripleempty\dodefineXMLcommand} \def\defineXMLgrouped {\dotripleempty\dodefineXMLgrouped} \def\defineXMLargument {\dotripleempty\dodefineXMLargument} \def\defineXMLignore {\dotripleempty\dodefineXMLignore} \def\defineXMLpickup {\dotripleempty\dodefineXMLpickup} \def\defineXMLenvironment {\dotripleempty\dodefineXMLenvironment} \def\defineXMLsave {\dotripleempty\dodefineXMLsave} \def\defineXMLsavecontent {\dotripleempty\dodefineXMLsavecontent} \def\defineXMLgsave {\dotripleempty\dodefineXMLgsave} \def\defineXMLgsavecontent {\dotripleempty\dodefineXMLgsavecontent} \def\defineXMLenvironmentsave {\dotripleempty\dodefineXMLenvironmentsave} \def\defineXMLenvironmentgsave {\dotripleempty\dodefineXMLenvironmentgsave} \def\defineXMLprocess {\dotripleempty\dodefineXMLprocess} \def\defineXMLnested {\dotripleempty\dodefineXMLnestedenvironment} \def\defineXMLnestedenvironment {\dotripleempty\dodefineXMLnestedenvironment} \def\defineXMLnestedargument {\dotripleempty\dodefineXMLnestedargument} \def\defineXMLnestedsave {\dotripleempty\dodefineXMLnestedsave} \def\defineXMLnestedenvironmentsave{\dotripleempty\dodefineXMLnestedenvironmentsave} %D We can nill definitions with: \def\resetXMLelement[#1]{\dododefineXMLprocess{#1}} %D This is equivalent to: %D %D \starttyping %D \def\resetXMLelement[#1]% handy in case only singular %D {\@EA\let\csname\@@XMLelement:#1\endcsname \donothing %D \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing %D \@EA\let\csname\@@XMLelement:#1/\endcsname\donothing} %D \stoptyping % push is (not yet) a real push, so: \def\defineXMLpush {\dotripleempty\dodefineXMLsave} \def\defineXMLenvironmentpush{\dotripleempty\dodefineXMLenvironmentsave} % goes for all types \long\def\dodefineXMLsingular[#1][#2][#3]#4% {\defineXMLmethod\dododefineXMLsingular{#1}{#2}{#3}{#4}{}} \long\def\dodefineXMLcommand[#1][#2][#3]#4% {\defineXMLmethod\dododefineXMLcommand{#1}{#2}{#3}{#4}{}} \long\def\dodefineXMLgrouped[#1][#2][#3]#4% {\defineXMLmethod\dododefineXMLgrouped{#1}{#2}{#3}{#4}{}} \long\def\dodefineXMLargument[#1][#2][#3]#4% {\defineXMLmethod\dododefineXMLargument{#1}{#2}{#3}{#4}{}} \long\def\dodefineXMLignore[#1][#2][#3]% {\defineXMLmethod\dododefineXMLignore{#1}{#2}{#3}{}{}} \long\def\dodefineXMLpickup[#1][#2][#3]#4#5% {\defineXMLmethod\dododefineXMLpickup{#1}{#2}{#3}{#4}{#5}} \long\def\dodefineXMLenvironment[#1][#2][#3]#4#5% {\defineXMLmethod\dododefineXMLenvironment{#1}{#2}{#3}{#4}{#5}} \long\def\dodefineXMLsave[#1][#2][#3]% {\defineXMLmethod\dododefineXMLsave{#1}{#2}{#3}{}{}} \long\def\dodefineXMLsavecontent[#1][#2][#3]#4% {\defineXMLmethod\dododefineXMLsavecontent{#1}{#2}{#3}{#4}{}} \long\def\dodefineXMLgsave[#1][#2][#3]% {\defineXMLmethod\dododefineXMLgsave{#1}{#2}{#3}{}{}} \long\def\dodefineXMLgsavecontent[#1][#2][#3]#4% {\defineXMLmethod\dododefineXMLgsavecontent{#1}{#2}{#3}{#4}{}} \long\def\dodefineXMLenvironmentsave[#1][#2][#3]#4#5% {\defineXMLmethod\dododefineXMLenvironmentsave{#1}{#2}{#3}{#4}{#5}} \long\def\dodefineXMLenvironmentgsave[#1][#2][#3]#4#5% {\defineXMLmethod\dododefineXMLenvironmentgsave{#1}{#2}{#3}{#4}{#5}} \long\def\dodefineXMLprocess[#1][#2][#3]% {\defineXMLmethod\dododefineXMLprocess{#1}{#2}{#3}{}{}} \long\def\dodefineXMLnestedenvironment[#1][#2][#3]#4#5% {\defineXMLmethod\dododefineXMLnestedenvironment{#1}{#2}{#3}{#4}{#5}} \long\def\dodefineXMLnestedargument[#1][#2][#3]#4% {\defineXMLmethod\dododefineXMLnestedargument{#1}{#2}{#3}{#4}{}} \long\def\dodefineXMLnestedsave[#1][#2][#3]% {\defineXMLmethod\dododefineXMLnestedsave{#1}{#2}{#3}{}{}} \long\def\dodefineXMLnestedenvironmentsave[#1][#2][#3]#4#5% {\defineXMLmethod\dododefineXMLnestedenvironmentsave{#1}{#2}{#3}{#4}{#5}} % [key=val] => \presetXMLarguments{element} => default key/vals % [blabla] => \theXMLarguments{blabla} => user key/vals % [blabla] [key=val] => \presetXMLarguments{element} => default key/vals % \theXMLarguments{blabla} => user key/vals % command element [map] [parlst] begin end \long\def\defineXMLmethod#1#2#3#4#5#6% {\ifsecondargument \setXMLarguments{#2}{#3}{#4}% \else \resetXMLarguments{#2}% new \fi #1{#2}{#5}{#6}} %D Arguments (attributes) \unknown % \long\def\setXMLarguments#1#2#3% element [tag] settings % {\doifassignmentelse{#2} % {\long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}} % {\long\setvalue{\@@XMLmap :#1}{#2}% later we can init vars by this name % \doifsomething{#3}{\long\setvalue{\@@XMLpars:#1}{\getrawparameters[#2][#3]}}}} \long\def\setXMLarguments#1#2#3% element [tag] settings {\doifassignmentelse{#2} % ROOM FOR OPTIMIZATION {\letbeundefined{\@@XMLmap:#1}% \long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}} {\long\setvalue{\@@XMLmap:#1}{#2}% later we can init vars by this name \doifsomething{#3}{\long\setvalue{\@@XMLpars:#1}{\getrawparameters[#2][#3]}}}} \def\presetXMLarguments#1% {\csname\@@XMLpars:\rawXMLnamespace#1\endcsname} % == \getvalue{} \prependtoks \presetXMLarguments\rawXMLidentifier \to \everyXMLelement %D We now overload the previously defined argument setter by one %D that is faster when definitions are surrounded by %D %D \starttyping %D \startXMLcompiling ... \stopXMLcompiling %D \stoptyping %D %D This method is twice as fast on (for instance) 100K calls to %D an empty element with 10 arguments. % \long\def\prepareXMLargument#1#2#3% % {\scratchtoks\expandafter{\the\scratchtoks\@EA\def\csname#1#2\endcsname{#3}}} % \long\def\prepareXMLargument#1#2#3% % {\scratchtoks\@EA\@EA\@EA{\@EA\the\@EA\scratchtoks\@EA\def\csname\@@XMLvariable:#1:#2\endcsname{#3}}} % \let\@@globalprefix\empty % \long\def\prepareXMLargument#1#2#3% % {\expanded{\scratchtoks % {\the\scratchtoks % \def\@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname{#3}% % \noexpand\@EA\let\noexpand\csname\@@XMLvariable:\noexpand\the\numexpr(\XMLdepth+1):#2\endcsname % \@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname}}} \long\def\prepareXMLargument#1#2#3% {\expanded{\scratchtoks {\the\scratchtoks \def\@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname{#3}% \noexpand\@EA\let\noexpand\csname\@@XMLvariable:\noexpand\the\numexpr\XMLdepth+\plusone\relax:#2\endcsname \@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname}}} \long\def\setXMLargumentsN#1#2#3% element [tag] settings {\doifassignmentelse{#2} {\letbeundefined{\@@XMLmap:#1}% \long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}} {\long\setvalue{\@@XMLmap:#1}{#2}% later we can init vars by this name \doifsomething{#3}{\long\setvalue{\@@XMLpars:#1}{\getrawparameters[#2][#3]}}}} \long\def\setXMLargumentsP#1#2#3% element settings empty (we cannot test for assignment) {\letbeundefined{\@@XMLmap:#1}% \bgroup %def\XMLinheritance{\noexpand\XMLinheritance} \def\XMLop##1{\noexpand\XMLpar{#1}{##1}{}}% \def\XMLpar{\noexpand\XMLpar}% \def\XMLanc{\noexpand\XMLanc}% \def\XMLinh{\noexpand\XMLinh}% \xdef\!!XMLattr{[#1][#2]}% \scratchtoks\emptytoks \@EA\dogetparameters\@EA\prepareXMLargument\!!XMLattr \xdef\globalnext{\the\scratchtoks}% \egroup \letvalue{\@@XMLpars:#1}\globalnext \globallet\globalnext\relax} \def\defineXMLattributeset{\dodoubleargument\dodefineXMLattributeset} \def\extendXMLattributeset{\dodoubleargument\doextendXMLattributeset} \def\dodefineXMLattributeset[#1][#2]{\setvalue {\@@XMLpars::#1}{#2}} \def\doextendXMLattributeset[#1][#2]{\appendvalue{\@@XMLpars::#1}{,#2}} \def\XMLattributeset #1{\executeifdefined{\@@XMLpars::#1}\empty} %def\XMLinheritance #1{\executeifdefined{\@@XMLpars:#1}\empty} \def\showXMLattributes#1{\showvalue{\@@XMLpars:#1}} \chardef\@@precompile\zerocount \def\setXMLarguments {\ifcase\@@precompile \expandafter\setXMLargumentsN \else \expandafter\setXMLargumentsP \fi} \def\startXMLcompiling {\dosingleargument\dostartXMLcompiling} % \def\dostartXMLcompiling[#1]% % {\iffirstargument % \copyXMLargumentindeed % when needed, from now on -) % \def\@@globalprefix{#1}% % \fi % \chardef\@@precompile\plusone} \def\dostartXMLcompiling[#1]% {\doif{#1}\v!inherit \copyXMLargumentindeed \chardef\@@precompile\plusone} \def\stopXMLcompiling {\chardef\@@precompile\zerocount} % no \let\@@globalprefix\empty %D Interesting what kind of things are needed \unknown \appendtoks \ifdefined\disablelanguagespecifics\disablelanguagespecifics\fi \to \everyenableXML \long\def\longempty{} \long\def\longspace{ } % \def\doifelseXMLdata#1% always empty at start [gets a long assignment] % {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty % \expandafter\secondoftwoarguments % \else % \expandafter\firstoftwoarguments % \fi} % % \def\doifXMLdata#1% always empty at start [gets a long assignment] % {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty % \expandafter\gobbleoneargument % \else % \expandafter\firstofoneargument % \fi} % % \let\doifXMLdataelse\doifelseXMLdata \def\doifelseXMLdata#1% always empty at start [gets a long assignment] {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} \def\doifXMLdata#1% always empty at start [gets a long assignment] {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} \let\doifXMLdataelse\doifelseXMLdata \def\doifelseXMLempty#1% {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty \expandafter\firstoftwoarguments \else\@EA\ifx\csname\@@XMLdata:#1\endcsname\longspace \expandthree\firstoftwoarguments \else \expandthree\secondoftwoarguments \fi\fi} % test case: % % \defineXMLenvironmentsave[test] % {} % {\message{[\XMLflush{test}]} % \message{\doifelseXMLdata {test}{}{no }data} % \message{/} % \message{\doifelseXMLempty{test}{}{not }empty} % \wait} % % \startXMLdata % xxx % % % % % x % \stopXMLdata % \def\XMLflush#1% one level % {\csname\@@XMLdata:#1\endcsname} % evt meer van dit gedoe en alle \longempty's vervangen \def\XMLflush#1% one level {\csname\ifcsname\@@XMLdata:#1\endcsname\@@XMLdata:#1\else\s!empty\fi\endcsname} %D \starttyping %D \defineXMLenvironmentsave[formula]{}{$\XMLtexdata{formula}$} %D %D \startXMLdata %D t+3+x+t\neq m\alpha\frac\theta\hbar %D \stopXMLdata %D \stoptyping \def\XMLtexdata#1% {\begingroup \disableXML \scantokens\@EA\@EA\@EA{\csname\@@XMLdata:#1\endcsname}% \endgroup} \def\XMLflushdata#1% see m-steps for usage {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty\else %\@EAEAEA\XMLdata\@EA\@EA\@EA{\csname\@@XMLdata:#1\endcsname}% \@EA\XMLdata\csname\@@XMLdata:#1\endcsname \fi} \def\XMLflushasis#1% {\detokenize\@EAEAEA{\csname\@@XMLdata:#1\endcsname}} \let\XMLpop \XMLflush \let\XMLpopdata\XMLflushdata \def\XMLappend#1#2% let to empty expands to nothing -) {\long\@EA\edef\csname\@@XMLdata:#1\endcsname{\csname\@@XMLdata:#1\endcsname#2}} \def\XMLprepend#1#2% let to empty expands to nothing -) {\long\@EA\edef\csname\@@XMLdata:#1\endcsname{#2\csname\@@XMLdata:#1\endcsname}} \def\XMLerase#1% {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty} \def\XMLassign#1% {\long\@EA\def\csname\@@XMLdata:#1\endcsname} \def\dontparseXMLelement#1>{} \def\simplifyXMLelements{\let\parseXMLelement\dontparseXMLelement} \def\defXMLstring#1#2% {\bgroup \enableXMLexpansion \simplifyXMLelements \let\getXMLentity\firstofoneargument \XMLrawentitiestrue \utfunicodetracer\plusseven % new \xdef\@@XML@@string{\csname\@@XMLdata:#2\endcsname}% \egroup \defconvertedcommand#1\@@XML@@string} % this has to expand nicely: % % ]> % % so keep the following as is! \def\defXMLclean#1#2% {\bgroup \enableXMLexpansion \simplifyXMLelements \simplifyXMLentities \utfunicodetracer\plusseven % new \let\getXMLentity\expandedXMLentity % should this go in \simplify ? \xdef\@@XML@@string{\csname\@@XMLdata:#2\endcsname}% \egroup \defconvertedcommand#1\@@XML@@string} \def\defXMLpar#1#2#3% to be documented {\@EA\def\@EA#1\csname\ifcsname\@@XMLvariable:#2:#3\endcsname\@@XMLvariable:#2:#3\else\s!empty\fi\endcsname} \def\setvalueXMLpar#1#2#3% to be documented {\@EA\let\csname#1\@EA\endcsname\csname\ifcsname\@@XMLvariable:#2:#3\endcsname\@@XMLvariable:#2:#3\else\s!empty\fi\endcsname} \def\XMLshow#1% {\showvalue{\@@XMLdata:#1}} \def\XMLunspace#1% kan sneller {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty\else \long\@EA\edef\csname\@@XMLdata:#1\endcsname {\@EAEAEA\dounspaced\csname\@@XMLdata:#1\endcsname\end}% \fi} \chardef\asciispacecode=32 \def\defXMLlowerclean#1% lowercase ! evt tzt upper too {\bgroup \lccode`\#\asciispacecode \lccode`\$\asciispacecode \lccode`\%\asciispacecode \lccode`\\\asciispacecode \lccode`\^\asciispacecode \lccode`\_\asciispacecode \lccode`\{\asciispacecode \lccode`\}\asciispacecode \lccode`\|\asciispacecode \lccode`\~\asciispacecode \@EA\lowercase\@EA{\@EA\xdef\@EA#1\@EA{#1}}% \egroup} \def\processXMLparelse#1#2#3#4% {\processaction [\XMLpar{#1}{#2}{}] [#3,\s!unknown=>{#4},\s!default={#4}]} %D We can pick up key|/|value pairs, but we still need a way %D to process these. % bugged % % \def\mapXMLvalue#1#2#3% td align center -> middle % {\setvalue{\@@XMLvalue:#1:#2:#3}} \def\mapXMLvalue#1#2#3% td:align center -> middle {\setvalue{\@@XMLvalue:#1:#2}{#3}} % keep #3 to grab spaces \def\XMLvar#1#2#3% td align center {\ifcsname\@@XMLvariable:#1:#2\endcsname \XMLval{#1}{#2}{\csname\@@XMLvariable:#1:#2\endcsname}% \else \XMLval{#1}{#2}{#3}% evt inline code \fi} % \def\XMLvar#1#2#3% td align center % {\XMLval{#1}{#2}{\ifcsname\@@XMLvariable:#1:#2\endcsname % \csname\@@XMLvariable:#1:#2\endcsname\else#3\fi}} % \def\XMLval#1#2#3% td:align value default % {\ifcsname\@@XMLvalue:#1:#2\endcsname % \csname\@@XMLvalue:#1:#2\endcsname % \else % #3% % \fi} % % The next one permits commands instead of strings in #3 \def\XMLval#1#2% #1=td:align #2=value #3=default {\ifcsname\@@XMLvalue:#1:#2\endcsname \@EA\firstoftwoarguments \else \@EA\secondoftwoarguments \fi {\csname\@@XMLvalue:#1:#2\endcsname}} \def\XMLpar#1#2#3% {\ifcsname\@@XMLvariable:#1:#2\endcsname \csname\@@XMLvariable:#1:#2\endcsname \else #3% \fi} \def\XMLNSpar#1#2#3#4% element namespace name default {\ifcsname\@@XMLvariable:#1:#2:#3\endcsname \csname\@@XMLvariable:#1:#2:#3\endcsname \else #4% \fi} % \def\setXMLpar#1#2% % {\@EA\def\csname\@@XMLvariable:#1:#2\endcsname} \def\letXMLpar #1#2{\@EA \let\csname\@@XMLvariable:#1:#2\endcsname} \def\setXMLpar #1#2{\@EA \def\csname\@@XMLvariable:#1:#2\endcsname} \def\setXMLepar#1#2{\@EA\edef\csname\@@XMLvariable:#1:#2\endcsname} % ancestor arguments: % % \defineXMLenvironment % [fo:root] % [test=unset] % {\beginXMLelement} % {\endXMLelement} % % \defineXMLenvironment % [fo:block-container] % [test=oeps] % {\beginXMLelement} % {\endXMLelement} % % \defineXMLenvironment % [fo:block] % {\beginXMLelement % \begingroup} % {\endgroup % \XMLanc{test}{} % \endXMLelement} % % \startXMLdata % % second: % unset: % deep:nested:outer: % last: % % \stopXMLdata % % \startXMLdata % % second: % unset: % deep:nested:outer: % last: % % \stopXMLdata % % \startXMLdata % % second: % unset: % deep:nested:outer: % last: % % \stopXMLdata % dit werkt alleen ok in niet
... situaties omdat anders % de laatste b de attributen van de vorige heeft: \def\XMLanc#1% {\ifcsname\@@XMLvariable:\currentXMLelement:#1\endcsname % \ownXMLelement \csname\@@XMLvariable:\currentXMLelement:#1\endcsname % \ownXMLelement \@EA\gobblethreearguments \else \@EA\pXMLanc \fi\XMLdepth{#1}} % \def\pXMLanc#1% % {\@EA\ppXMLanc\@EA{\the\numexpr(#1-\plusone)}} \def\pXMLanc#1% {\@EA\ppXMLanc\@EA{\the\numexpr#1-\plusone\relax}} \def\ppXMLanc#1#2#3% {\ifcsname\@@XMLdepth:#1\endcsname % is er altijd dus redundant \ifcsname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname \csname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname \@EAEAEA\gobblethreearguments \else \@EAEAEA\pppXMLanc \fi \else \@EA\pppXMLanc \fi{#1}{#2}{#3}} \def\pppXMLanc#1% {\ifnum#1>\zerocount \@EA\pXMLanc \else \@EA\thirdofthreearguments \fi{#1}} %D Experimental (not sure if this will stay): %D %D \starttyping %D \startdefineXMLhandlers[one,two] %D %D \defineXMLenvironment[a=b,c=\XMLop{a}] %D {}{} %D %D \stopdefineXMLhandlers %D \stoptyping \long\def\startdefineXMLhandlers {\bgroup\catcode\endoflineasciicode\spacecatcode \dodoubleempty\dostartdefineXMLhandlers} \long\def\dostartdefineXMLhandlers[#1][#2]#3#4\stopdefineXMLhandlers % #2 is dummy {\egroup \long\def\dodefineXMLhandlers##1{#3[##1]#4}% \processcommalist[#1]\dodefineXMLhandlers} \let\currentXMLhandler\s!unknown % \long\def\dostartdefineXMLhandlers[#1][#2]#3#4[#5]#6\stopdefineXMLhandlers % #2 is dummy % {\egroup % \pushmacro\XMLop % \pushmacro\XMLpar % \pushmacro\currentXMLhandler % \long\def\dodefineXMLhandlers##1% % {\edef\currentXMLhandler{##1}% % \def\XMLop####1{\noexpand\XMLpar{##1}{####1}{}}% % \def\XMLpar{\noexpand\XMLpar}% % \def\XMLanc{\noexpand\XMLanc}% % \edef\!!stringa{[##1][#5]}% % \expandafter#3\!!stringa#6}% % \processcommalist[#1]\dodefineXMLhandlers % \popmacro\currentXMLhandler % \popmacro\XMLpar % \popmacro\XMLop} \long\def\dostartdefineXMLhandlers[#1][#2]#3#4[#5]#6\stopdefineXMLhandlers % #2 is dummy {\egroup \long\def\dodefineXMLhandlers##1% {\bgroup \edef\currentXMLhandler{##1}% \def\XMLop####1{\noexpand\XMLpar{##1}{####1}{}}% \def\XMLpar{\noexpand\XMLpar}% \def\XMLanc{\noexpand\XMLanc}% \def\XMLinh{\noexpand\XMLinh}% \xdef\!!XMLattr{[##1][#5]}% \egroup \expandafter#3\!!XMLattr#6}% \processcommalist[#1]\dodefineXMLhandlers} \def\XMLpav#1#2#3#4% {\XMLval{#1}{\XMLpar{#2}{#3}{}}{#4}} %D A few weird ones: \def\TEXpar#1#2% {\csname#1\interfaced{#2}\endcsname} \let\texXMLpar\TEXpar % soon obsolete \let\XMLtex\TEXpar % handy one \def\XMLtyp#1#2#3% {\ifcsname\@@XMLvariable:#1:#2\endcsname \@EA\defconvertedcommand\@EA\ascii\csname\@@XMLvariable:#1:#2\endcsname \else \defconvertedargument\ascii{#3}% \fi \ascii} \defineXMLsingular [begingroup] {\begingroup} \defineXMLsingular [endgroup] {\endgroup} \defineXMLsingular [gobblespacetokens] {\gobblespacetokens} \defineXMLsingular [disableXML] {\disableXML} \long\def\XMLstr#1% {{\enableXML\scantokens{#1}\unskip}} \long\def\XMLstr#1% test, does not work {\ifprocessingXML % \begingroup\enableXML\scantokens{#1}% \scantokens{#1}% \else \begingroup\enableXML\scantokens{#1\ignorespaces}% \fi} \def\XMLgetvariable#1#2% hooks into generic \getvariable and setvariables {\expanded{\XMLstr{\getvariable{#1}{#2}}}} \long\def\XMLstrpar#1#2#3% test {\ifcsname\@@XMLvariable:#1:#2\endcsname \scantokens\@EAEAEA{\@EA\begingroup\@EA\enableXML \csname\@@XMLvariable:#1:#2\endcsname}% \else \scantokens{\begingroup\enableXML#3}% \fi} \def\doifXMLvarelse#1#2% geen etex, \relax too {\ifcsname\@@XMLvariable:#1:#2\endcsname \expandafter\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty \@EAEAEA\secondoftwoarguments \else \@EAEAEA\firstoftwoarguments \fi \else \@EA\secondoftwoarguments \fi} \def\doifXMLvar#1#2% geen etex, \relax too {\ifcsname\@@XMLvariable:#1:#2\endcsname \expandafter\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty \@EAEAEA\gobbleoneargument \else \@EAEAEA\firstofoneargument \fi \else \@EA\gobbleoneargument \fi} \def\doifXMLvalelse#1#2% geen etex, \relax too {\ifcsname\@@XMLvalue:#1:#2\endcsname \expandafter\ifx\csname\@@XMLvalue:#1:#2\endcsname\empty \@EAEAEA\secondoftwoarguments \else \@EAEAEA\firstoftwoarguments \fi \else \@EA\secondoftwoarguments \fi} \let\doifXMLparelse\doifXMLvarelse \let\doifXMLpar \doifXMLvar %D Used in x-fo: I really need to document this! \bgroup \catcode`\<=\activecatcode % usage: \expanded{\rescanXMLatttributes{fo:table-cell}} \gdef\rescanXMLattributes #1{\noexpand\dogetXMLarguments{#1}\currentXMLarguments>} \gdef\parseXMLattributes #1#2{\dogetXMLarguments{#1}#2>} \egroup \def\defXMLattributestring#1#2#3#4% {\ifcsname\@@XMLvariable:#2:#3\endcsname \@EA\defconvertedcommand\@EA#1\csname\@@XMLvariable:#2:#3\endcsname \else \defconvertedargument#1{#4}% \fi} \def\XMLprocess#1% {\begingroup\enableXML\XMLflush{#1}\endgroup} \bgroup \catcode`<=\activecatcode \long\gdef\ignoreuntilXMLelement#1<{<} \long\gdef\grabuntilXMLelement #1<\to#2{\def#2{#1}<} \egroup %D Saves tokens and typing. \def\XMLownvar {\XMLvar {\rawXMLnamespace\rawXMLidentifier}} \def\XMLownval {\XMLval {\rawXMLnamespace\rawXMLidentifier}} \def\XMLownpar {\XMLpar {\rawXMLnamespace\rawXMLidentifier}} \def\XMLownstrpar {\XMLstrpar {\rawXMLnamespace\rawXMLidentifier}} \def\doifXMLownvarelse{\doifXMLvarelse{\rawXMLnamespace\rawXMLidentifier}} \def\doifXMLownvalelse{\doifXMLvalelse{\rawXMLnamespace\rawXMLidentifier}} \def\doifXMLownparelse{\doifXMLparelse{\rawXMLnamespace\rawXMLidentifier}} \def\letXMLpar #1#2{\@EA \let\csname\@@XMLvariable:#1:#2\endcsname} \def\setXMLpar #1#2{\@EA \def\csname\@@XMLvariable:#1:#2\endcsname} \def\setXMLepar#1#2{\@EA\edef\csname\@@XMLvariable:#1:#2\endcsname} \def\ownXMLelement{\rawXMLnamespace\rawXMLidentifier} \def\XMLop#1% ownpar {\csname\ifcsname\@@XMLvariable:\ownXMLelement:#1\endcsname \@@XMLvariable:\ownXMLelement:#1\else\s!empty \fi\endcsname} \def\XMLtp#1% texpar {\csname\ifcsname\@@XMLmapmap\interfaced{#1}\endcsname \@@XMLmapmap\interfaced{#1}\else\s!empty \fi\endcsname} \def\doifelseXMLop#1{\doifelse{\XMLop{#1}}} \def\doifXMLop #1{\doif {\XMLop{#1}}} \def\doifnotXMLop #1{\doifnot {\XMLop{#1}}} \def\doifelsenothingXMLop#1{\doifelsenothing{\XMLop{#1}}} \def\doifsomethingXMLop #1{\doifsomething {\XMLop{#1}}} \def\doifnothingXMLop #1{\doifnothing {\XMLop{#1}}} \def\doifelseXMLtp#1{\doifelse{\XMLtp{#1}}} \def\doifXMLtp #1{\doif {\XMLtp{#1}}} \def\doifnotXMLtp #1{\doifnot {\XMLtp{#1}}} \def\doifelsenothingXMLtp#1{\doifelsenothing{\XMLtp{#1}}} \def\doifsomethingXMLtp #1{\doifsomething {\XMLtp{#1}}} \def\doifnothingXMLtp #1{\doifnothing {\XMLtp{#1}}} \def\XMLflushself{\csname\@@XMLdata:\ownXMLelement\endcsname} \def\showXMLdata#1{\showvalue{\@@XMLdata:#1}} \def\XMLta {\theXMLarguments\@@XMLmapmap} \def\getXMLta {\expanded{\getparameters[\@@XMLmapmap][\XMLta]}} \def\expandXMLta{\expandXMLarguments\@@XMLmapmap} \def\expandXMLtp{\expandTEXpar\@@XMLmapmap} % #1 \def\getXMLparameters[#1]% faster than \rawgetparameters[#1][\theXMLar..] {\ifcsname\@@XMLmap:#1\endcsname \expanded{\rawgetparameters[#1][\csname\@@XMLmap:#1\endcsname]}% \fi} \def\defXMLop#1#2{\@EA\let\@EA#1\csname\@@XMLvariable:\ownXMLelement:#2\endcsname} \def\defXMLtp#1#2{\@EA\let\@EA#1\csname\@@XMLmapmap\interfaced{#2}\endcsname} %D ... \def\protectXMLdata {\catcode\tabasciicode \spacecatcode \catcode\endoflineasciicode\spacecatcode \catcode\formfeedasciicode \spacecatcode \catcode\endoffileasciicode\spacecatcode \catcode`\#\othercatcode} \long\def\startXMLcode {\begingroup \protectXMLdata \dostartXMLcode} \long\def\dostartXMLcode[#1] #2 \stopXMLcode {\@EA\gdef\csname\@@XMLcode:#1\endcsname{\startXMLdata#2\stopXMLdata}% \endgroup} \def\getXMLcode[#1]% \expandXMLcode {\csname\@@XMLcode:#1\endcsname} % \long\def\startXMLdata#1\stopXMLdata% % {\begingroup\enableXML\scantokens{#1}\endgroup} % % \defineXMLentity[tex-backslash] {\catchXMLpar} % % \def\catchXMLpar#1#2#3 % {\if#1p\if#2a\if#3r\ifmmode\else\endgraf\fi % \else\texescape\fi\else\texescape\fi\else\texescape\fi} \long\def\startXMLdata {\begingroup \protectXMLdata \dostartXMLdata} \long\def\dostartXMLdata#1\stopXMLdata % evt \everyeof{} {\enableXML\scantokens{#1}% \endgroup \ifhmode\unskip\unskip\fi} % suboptimal: % % \unexpanded\def\XMLdata#1% % \unexpanded added 22/5/2001 % {\begingroup % \enableXML\scantokens{#1}\ifhmode\unskip\unskip\fi % \endgroup} % % better but does not work in tables: % % \unexpanded\def\XMLdata#1% % grouping changed 20/5/2001 % {\scantokens{\begingroup\enableXML#1\gobblespacetokens}} % % currently: \unexpanded\def\XMLdata % # safe {\begingroup \protectXMLdata \doXMLdata} \def\doXMLdata#1% {\enableXML \scantokens{#1}% \endgroup} %D \def\bXMLs{\ifignoreXMLspaces\ignorespaces\fi} \def\eXMLs{\ifignoreXMLspaces\ifhmode\unskip\fi\fi} \protect % \defineXMLcommand{placeindex/} % {\placeindex[criterium=all]} % % \defineXMLargument{index} % {\index[\XMLvar{index}{key}{}]} %D Here we implement the handling of preformatted code. \unprotect \def\startXMLpreformatted#1% {\startpacked #1% \fixedXMLfonttrue \obeylines \obeyspaces \setbox\scratchbox=\hbox{x}% \edef\obeyedspace{\noindent\noexpand\kern\the\wd\scratchbox}} \def\stopXMLpreformatted#1% {\stoppacked} %D \def\XMLinput{\enableXML\input} \global\let\inputXML\XMLinput % options \def\processXMLfile #1{\enableXML\processfile{#1}} \def\processXMLfilegrouped#1{{\enableXML\processfile{#1}\relax\ifmmode\else\par\fi}} %D \type %D {processXMLbuffer} %D %D For illustrative purposes, we need to be able to reuse %D definitions, which is why we implement a buffer processor %D here. The macro \type {\processXMLbuffer} behaves like %D any buffer processor. \def\processXMLbuffer {\dosingleempty\doprocessXMLbuffer} \def\doprocessXMLbuffer[#1]% {\doifelsenothing{#1} {\doprocessXMLbuffer[\jobname]} {\begingroup \enableXML \def\dodoprocessXMLbuffer##1{\getbuffer[##1]}% \processcommalist[#1]\dodoprocessXMLbuffer \endgroup}} %D Loading specific modules takes place with \type %D {\useXMLfilters}. % todo: flag \def\useXMLfilter[#1]% {\processcommalist[#1]\douseXMLfilter} \def\douseXMLfilter#1% {\doifundefined{\c!file\f!xtagprefix#1} {\letvalue{\c!file\f!xtagprefix#1}\empty \startreadingfile % \truefilename removed \readsysfile{\f!xtagprefix#1.mkii} {\writestatus{xml}{loading module #1.mkii}} {\readsysfile{\f!xtagprefix#1.tex} {\writestatus{xml}{loading module #1.tex}} \donothing}% \stopreadingfile}} %D Temporarily here. \newtoks\groupedtoks \newif\ifcollectXMLgrouped \bgroup \catcode`\<=\activecatcode \newtoks\XMLgtoks \long\unexpanded\gdef\getXMLgroupedenvironment#1#2#3% {\collectXMLgroupedtrue \XMLgtoks{#2}% \long\def\dodogetgrouped{\@EA\the\@EA\XMLgtoks\the\groupedtoks#3}% \getXMLgrouped{#1}} \long\unexpanded\gdef\getXMLgroupedargument#1#2% {\collectXMLgroupedtrue \XMLgtoks{#2}% \long\def\dodogetgrouped{\@EA\the\@EA\XMLgtoks\@EA{\the\groupedtoks}}% \getXMLgrouped{#1}} \long\unexpanded\gdef\getXMLgroupedignore#1% {\collectXMLgroupedfalse \let\dodogetgrouped\relax \getXMLgrouped{#1}} \long\gdef\docountXMLgrouped#1\end#2\end % 1 relax is enough since it's {\long\def\dosplitXMLstring##1#1##2\relax\relax##3\end % another regime {\def\ascii{##2}% \ifx\ascii\empty \else \advance\scratchcounter \plusone \dosplitXMLstring##2\relax\relax#1\relax\relax\end \fi}% \dosplitXMLstring#2\relax\relax#1\relax\relax\end} \long\unexpanded\gdef\getXMLgrouped#1% #1 kan weg % klopt dit nu? {\groupedtoks\emptytoks \scratchcounter\zerocount \edef\theXMLnamespace {\ifx\originalXMLnamespace\empty\else\originalXMLnamespace:\fi \currentXMLidentifier}% \expanded{\long\noexpand\def\noexpand\dogetgrouped####1\noexpand}% {\ifcollectXMLgrouped\appendtoks##1\to\groupedtoks\fi \@EA\docountXMLgrouped\@EA<\theXMLnamespace>\end##1\end \@EAEAEA\docountXMLgrouped\@EA\@EA\@EA<\@EA\theXMLnamespace\space \end##1\end \ifcase\scratchcounter \let\dogetgrouped\dodogetgrouped \else \advance\scratchcounter \minusone \ifcollectXMLgrouped\@EA\appendtoks\@EA<\@EA/\currentXMLelement>\to\groupedtoks\fi \fi \dogetgrouped}% \dogetgrouped} \egroup % interesting and fully expandable \def\XMLownifequalelse#1#2% {\@EAEAEA\@@ifequal\csname\@@XMLvariable:\ownXMLelement:#1\endcsname\relax\@@and#2\relax\@@then} % \def\XMLifequalelse#1#2#3% % {\@EAEAEA\@@ifequal\csname\@@XMLvariable:#1:#2\endcsname\relax\@@and#3\relax\@@then} \def\XMLifequalelse#1#2% {\ifcsname\@@XMLvariable:#1:#2\endcsname % \@EAEAEA\doXMLifequalelse\@EA\@EA\csname\@@XMLvariable:#1:#2\endcsname \@EA\doXMLifequalelse\csname\@@XMLvariable:#1:#2\@EA\endcsname \else \@EA\secondoftwoarguments \fi} \def\doXMLifequalelse#1#2% {\@EA\@@ifequal#1\relax\@@and#2\relax\@@then} %D \starttyping %D \defineXMLenvironment[test][a=1] %D {\XMLownifequalelse{a}{2}{YES}{NO}} %D {} %D %D \defineXMLenvironment[test][a=1] %D {\XMLifequalelse{test}{a}{1}{YES}{NO}} %D {} %D %D \startXMLdata %D test %D \stopXMLdata %D \stoptyping \def\XMLyes#1{\XMLownifequalelse{#1}{yes}{#1}{}} %D The next macro will set the variable \type {\flattenedXMLcontent} %D to the content with elements removed and entity names. \bgroup \catcode`\<\activecatcode \catcode`\&\activecatcode \gdef\flattenXMLcontent#1% we need taco's 'over one group' {\begingroup \keeputfcharacters \def<##1>{}% \def&##1;{##1}% \edef\flattenedXMLcontent{#1}% \edef\flattenedXMLcontent{\expandafter\dounspaced\flattenedXMLcontent\end}% \@EA\endgroup \@EA\def\@EA\flattenedXMLcontent\@EA{\flattenedXMLcontent}} \egroup \def\defXMLexpanded#1#2% {\begingroup \let\getXMLentity\expandedXMLentity \expanded{\endgroup\edef\noexpand#1{#2}}} \def\gdefXMLexpanded#1#2% {\begingroup \let\getXMLentity\expandedXMLentity \expanded{\endgroup\xdef\noexpand#1{#2}}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-nav.mkii0000644000175000017500000000343714536300610024672 0ustar hillehille%D \module %D [ file=meta-nav, %D version=2003.03.28, %D title=\METAPOST\ Graphics, %D subtitle=Navigational Graphics, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \startuniqueMPgraphic{navplus}{size,color,type,mode} color c ; numeric s, t ; path p ; t := \MPvar{type} ; c := \MPvar{color} ; s := \MPvar{size} ; if \MPvar{mode} = 1 : c := .5[c,white] fi ; if t = 1 : p := ((0,0)--(1/2,0)--(1,1/3)--(1,1)--(0,1)--(0,0)--cycle) xyscaled (3,4) ; elseif t = 2 : p := ((0,0)--(1,0)--(1,1)--(0,1)--(1/2,2/5)--(1,1)--(0,1)--cycle) xyscaled (4,3) ; else : p := fullsquare xyscaled (3,3) ; fi ; draw p withpen pencircle scaled (1/2) withcolor .75white ; fill p withcolor c ; draw p withpen pencircle scaled (1/3) withcolor .5c ; currentpicture := currentpicture scaled s ; currentpicture := currentpicture shifted -center currentpicture ; \stopuniqueMPgraphic \setupMPvariables [navplus] [size=1ex, color=black, type=1, mode=0] \definepalet [navplus] [attach=darkred, comment=darkblue] \definesymbol [comment-normal] [\uniqueMPgraphic{navplus}{type=1,color=navplus:comment}] \definesymbol [comment-down] [\uniqueMPgraphic{navplus}{type=1,color=navplus:comment,mode=1}] \definesymbol [attach-normal] [\uniqueMPgraphic{navplus}{type=2,color=navplus:attach}] \definesymbol [attach-down] [\uniqueMPgraphic{navplus}{type=2,color=navplus:attach,mode=1}] \unprotect \setupcomment [\c!symbol={comment-normal,comment-down}] \setupattachments[\c!symbol={attach-normal,attach-down}] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-ini.mkii0000644000175000017500000000474314536300610024670 0ustar hillehille%D \module %D [ file=core-ini, %D version=2003.12.01, %D title=\CONTEXT\ Core Macros, %D subtitle=Additional Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Additional Initialization} %D We will move more code to here, so that we become less dependent of the %D orde in which modules are loaded. \unprotect \everypar \emptytoks \neverypar \emptytoks \appendtoks \flushnotes \to \everypar \appendtoks \synchronizesidefloats \to \everypar \appendtoks \checkinlinedirection \to \everypar \appendtoks \checkindentation \to \everypar \appendtoks \showparagraphnumber \to \everypar \appendtoks \flushmargincontents \to \everypar \appendtoks \flushcommentanchors \to \everypar \appendtoks \synchronizenotes \to \everypar \appendtoks \OTRSETshowstatus \to \everypar \appendtoks \flushpostponedbookmark \to \everypar \appendtoks \registerparoptions \to \everypar \appendtoks \flushsyncpositions \to \everypar \appendtoks \flushpostponednodedata \to \everypar \appendtoks \dohandlerepeatdelimitedtext \to \everypar \appendtoks \insertparagraphintro \to \everypar \appendtoks \flushpostponedbookmark \to \neverypar \appendtoks \flushpostponedbookmark \to \everylistentry \appendtoks \flushnotes \to \everydisplay \appendtoks \adjustsidefloatdisplaylines \to \everydisplay \appendtoks \flushsyncpositions \to \everyheadstart \appendtoks \flushsyncresets \to \everyendoftextbody \appendtoks \ignorespaces \to \everybeginofpar \appendtoks \removeunwantedspaces \to \everyendofpar %appendtoks \strut \to \everyendofpar % option ? \appendtoks \flushsyncresets \to \everyendofpar \appendtoks \setlastlinewidth \to \everyendofpar % must happen before endgraf \appendtoks \endgraf \to \everyendofpar % Todo: verbatim, xml, tex, move code to here \ifx\normalcompound\undefined \let\normalcompound=| \fi \appendtoks \catcode`|=\@@active \let|\normalcompound \to \everyTEXinputmode \appendtoks \catcode`|=\@@letter \to \everyXMLinputmode \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-pol.mkii0000644000175000017500000002024014536300610024665 0ustar hillehille%D \module %D [ file=enco-pol, %D version=2000.05.07, % 1999.28.8, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Polish Mixed Encoding, %D author={Taco Hoekwater \& Hans Hagen}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % This encoding will go but the regime will remain. %D Polish native encoding; normally polish users will use %D translate=cp1250pl in combination with ec encoding. \startmapping[pl0] \resetcaserange 128 to 255 \definecaseswap 161 129 % a ogonek \definecaseswap 162 130 % c acute \definecaseswap 166 134 % e ogonek \definecaseswap 170 138 % l crossed \definecaseswap 171 139 % n acute \definecaseswap 177 145 % s acute \definecaseswap 185 153 % z acute \definecaseswap 187 155 % z dotaccent \definecaseswap 243 211 % o acute % \definecasemap 161 161 129 % a ogonek % \definecasemap 162 162 130 % c acute % \definecasemap 166 166 134 % e ogonek % \definecasemap 170 170 138 % l crossed % \definecasemap 171 171 139 % n acute % \definecasemap 177 177 145 % s acute % \definecasemap 185 185 153 % z acute % \definecasemap 187 187 155 % z dotaccent % \definecasemap 243 243 211 % o acute % \definecasemap 129 161 129 % A ogonek % \definecasemap 130 162 130 % C acute % \definecasemap 134 166 134 % E ogonek % \definecasemap 138 170 138 % L crossed % \definecasemap 139 171 139 % N acute % \definecasemap 145 177 145 % S acute % \definecasemap 153 185 153 % Z acute % \definecasemap 155 187 155 % Z dotaccent % \definecasemap 211 243 211 % O acute \stopmapping \startmapping[pl0] \definespacemap 129 999 % A ogonek \definespacemap 130 999 % C acute \definespacemap 134 999 % E ogonek \definespacemap 138 999 % L crossed \definespacemap 139 999 % N acute \definespacemap 211 999 % O acute \definespacemap 145 999 % S acute \definespacemap 153 999 % Z acute \definespacemap 155 999 % Z dot \stopmapping \startencoding[pl0][pl0] \definecharacter Aogonek 129 \definecharacter Cacute 130 \definecharacter Eogonek 134 \definecharacter Lstroke 138 \definecharacter Nacute 139 \definecharacter Sacute 145 \definecharacter Zacute 153 \definecharacter Zdotaccent 155 \definecharacter aogonek 161 \definecharacter cacute 162 \definecharacter eogonek 166 \definecharacter lstroke 170 \definecharacter nacute 171 \definecharacter sacute 177 \definecharacter zacute 185 \definecharacter zdotaccent 187 \definecharacter Oacute 211 \definecharacter oacute 243 \stopencoding \startencoding[pl0][pl0] \definecharacter leftguillemot 174 \definecharacter rightguillemot 175 \definecharacter guilsingleleft 174 \definecharacter guilsingleright 175 \stopencoding % obsolete % % \startencoding[pl0] % % \definesortkey {161} {a}{a}{\k a} \definesortkey {129} {a}{a}{\k a} % \definesortkey {162} {c}{a}{\'c} \definesortkey {130} {c}{a}{\'c} % \definesortkey {166} {e}{a}{\k e} \definesortkey {134} {e}{a}{\k e} % \definesortkey {170} {l}{a}{\l } \definesortkey {138} {l}{a}{\l } % \definesortkey {171} {n}{a}{\'n} \definesortkey {139} {n}{a}{\'n} % \definesortkey {177} {s}{a}{\'s} \definesortkey {145} {s}{a}{\'s} % \definesortkey {185} {z}{a}{\'z} \definesortkey {153} {z}{a}{\'z} % \definesortkey {187} {z}{b}{\.z} \definesortkey {155} {z}{b}{\.z} % \definesortkey {243} {o}{a}{\'o} \definesortkey {211} {o}{a}{\'o} % % \definesortkey {\'c} {c}{a}{\'c} \definesortkey {\'C} {c}{a}{\'c} % \definesortkey {\'n} {n}{a}{\'n} \definesortkey {\'N} {n}{a}{\'n} % \definesortkey {\'o} {o}{a}{\'o} \definesortkey {\'O} {o}{a}{\'o} % \definesortkey {\'s} {s}{a}{\'s} \definesortkey {\'S} {s}{a}{\'s} % \definesortkey {\'z} {z}{a}{\'z} \definesortkey {\'Z} {z}{a}{\'z} % \definesortkey {\.z} {z}{b}{\.z} \definesortkey {\.Z} {z}{b}{\.z} % \definesortkey {\k a}{a}{a}{\k a} \definesortkey {\k A}{a}{a}{\k a} % \definesortkey {\k e}{e}{a}{\k e} \definesortkey {\k E}{e}{a}{\k e} % \definesortkey {\l } {l}{a}{\l} \definesortkey {\L } {l}{a}{\l} % % \stopencoding %D Polish CP-1250 encoding. % \startmapping[pl1] % % % \resetcaserange 128 to 255 % % \definecasemap 185 185 165 % a ogonek % \definecasemap 230 230 198 % c acute % \definecasemap 234 234 202 % e ogonek % \definecasemap 179 179 163 % l crossed % \definecasemap 241 241 209 % n acute % \definecasemap 243 243 211 % o acute % \definecasemap 156 156 140 % s acute % \definecasemap 159 159 143 % z acute % \definecasemap 191 191 175 % z dot % % \definecasemap 165 165 185 % A ogonek % \definecasemap 198 198 230 % C acute % \definecasemap 202 202 234 % E ogonek % \definecasemap 163 163 179 % L crossed % \definecasemap 209 209 241 % N acute % \definecasemap 211 211 243 % O acute % \definecasemap 140 140 156 % S acute % \definecasemap 143 143 159 % Z acute % \definecasemap 175 175 191 % Z dot % % \stopmapping % % \startmapping[pl1] % % \definespacemap 165 999 % A ogonek % \definespacemap 198 999 % C acute % \definespacemap 202 999 % E ogonek % \definespacemap 163 999 % L crossed % \definespacemap 209 999 % N acute % \definespacemap 211 999 % O acute % \definespacemap 140 999 % S acute % \definespacemap 143 999 % Z acute % \definespacemap 175 999 % Z dot % % \stopmapping % % \startencoding[pl1] % % \definecharacter Sacute 140 % \definecharacter Zacute 143 % \definecharacter sacute 156 % \definecharacter zacute 159 % \definecharacter Lstroke 163 % \definecharacter Aogonek 165 % \definecharacter Zdotaccent 175 % \definecharacter lstroke 179 % \definecharacter aogonek 185 % \definecharacter zdotaccent 191 % \definecharacter Cacute 198 % \definecharacter Eogonek 202 % \definecharacter Nacute 209 % \definecharacter Oacute 211 % \definecharacter cacute 230 % \definecharacter eogonek 234 % \definecharacter nacute 241 % \definecharacter oacute 243 % % \stopencoding % % \startencoding[pl1] % % \definecharacter leftguillemot 174 % \definecharacter rightguillemot 175 % \definecharacter guilsingleleft 174 % \definecharacter guilsingleright 175 % % \stopencoding %D Polish ISO-8859-2 encoding. % \startmapping[pl2] % % \resetcaserange 128 to 255 % % \definecasemap 177 177 161 % a ogonek % \definecasemap 230 230 198 % c acute % \definecasemap 234 234 202 % e ogonek % \definecasemap 179 179 163 % l crossed % \definecasemap 241 241 209 % n acute % \definecasemap 243 243 211 % o acute % \definecasemap 182 182 166 % s acute % \definecasemap 188 188 172 % z acute % \definecasemap 191 191 175 % z dotaccent % % \definecasemap 161 161 177 % A ogonek % \definecasemap 198 198 230 % C acute % \definecasemap 202 202 234 % E ogonek % \definecasemap 163 163 179 % L crossed % \definecasemap 209 209 241 % N acute % \definecasemap 211 211 243 % O acute % \definecasemap 166 166 182 % S acute % \definecasemap 172 172 188 % Z acute % \definecasemap 175 175 191 % Z dotaccent % % \stopmapping % % \startmapping[pl2] % % \definespacemap 161 999 % A ogonek % \definespacemap 198 999 % C acute % \definespacemap 202 999 % E ogonek % \definespacemap 163 999 % L crossed % \definespacemap 209 999 % N acute % \definespacemap 211 999 % O acute % \definespacemap 166 999 % S acute % \definespacemap 172 999 % Z acute % \definespacemap 175 999 % Z dot % % \stopmapping % % \startencoding[pl2] % % \definecharacter Aogonek 161 % \definecharacter Lstroke 163 % \definecharacter Sacute 166 % \definecharacter Zacute 172 % \definecharacter Zdotaccent 175 % \definecharacter aogonek 177 % \definecharacter lstroke 179 % \definecharacter sacute 182 % \definecharacter zacute 188 % \definecharacter zdotaccent 191 % \definecharacter Cacute 198 % \definecharacter Eogonek 202 % \definecharacter Nacute 209 % \definecharacter Oacute 211 % \definecharacter cacute 230 % \definecharacter eogonek 234 % \definecharacter nacute 241 % \definecharacter oacute 243 % % \stopencoding % % \startencoding[pl2] % % \definecharacter leftguillemot 174 % \definecharacter rightguillemot 175 % \definecharacter guilsingleleft 174 % \definecharacter guilsingleright 175 % % \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-vn.mkii0000644000175000017500000000750314536300610024522 0ustar hillehille%D \module %D [ file=lang-vn, %D version=2004.11.22, % 1999.12.12, %D title=\CONTEXT\ Language Macros, %D subtitle=Vietnamese, %D author={Han The Thanh \& Adam Lindsay \& Hans Hagen}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Vietnamese Language} %D The framework of this module is set up by Hans Hagen while %D many of the first translations were done by Tobias. Later %D on, corrections were made by users. If you have suggestions, %D or feel that your name missing here, don't hesitate to send %D us an email. %D %D \starttabulate[|lB|l|] %D \NC Vietnamese \NC \THANH\ \NC \NR %D \stoptabulate \unprotect \installlanguage [\s!vi] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\quoteleft, \c!rightquote=\quoteright, \c!leftquotation=\quotedblleft, \c!rightquotation=\quotedblright, \c!date={{ },dd,{/},mm,{/},yy}, \s!mapping=t5, \s!encoding=t5] \installlanguage [vietnamese] [\s!vi] \setupheadtext [\s!vi] [\v!content=M\udotbelow c l\udotbelow c] \setupheadtext [\s!vi] [\v!tables=Danh s\aacute ch b\ahook ng] \setupheadtext [\s!vi] [\v!figures=Danh s\aacute ch h\igrave nh v\etilde] \setupheadtext [\s!vi] [\v!graphics=\Dstroke\ocircumflexgrave\ th\idotbelow] \setupheadtext [\s!vi] [\v!intermezzi=Intermezzos] \setupheadtext [\s!vi] [\v!index=Ch\ihook\ s\ocircumflexacute] \setupheadtext [\s!vi] [\v!abbreviations=Ch\uhorntilde\ vi\ecircumflexacute t t\abreveacute t] \setupheadtext [\s!vi] [\v!logos=Bi\ecircumflexhook u t\uhorn \ohorndotbelow ng] \setupheadtext [\s!vi] [\v!units=\Dstroke\ohorn n v\idotbelow] \setuplabeltext [\s!vi] [\v!table=B\ahook ng ] \setuplabeltext [\s!vi] [\v!figure=H\igrave nh ] \setuplabeltext [\s!vi] [\v!intermezzo=intermezzo] \setuplabeltext [\s!vi] [\v!graphic=\Dstroke\ocircumflexgrave\ th\idotbelow] \setuplabeltext [\s!vi] [\v!chapter=Ch\uhorn \ohorn ng ] \setuplabeltext [\s!vi] [\v!section=] % not set \setuplabeltext [\s!vi] [\v!subsection=] % not set \setuplabeltext [\s!vi] [\v!subsubsection=] % not set \setuplabeltext [\s!vi] [\v!subsubsubsection=] % not set \setuplabeltext [\s!vi] [\v!appendix=] % not set \setuplabeltext [\s!vi] [\v!part=Ph\acircumflexgrave n ] \setuplabeltext [\s!vi] [\v!line=d\ograve ng ] \setuplabeltext [\s!vi] [\v!lines=d\ograve ng ] \setuplabeltext [\s!vi] [\v!sunday=ch\uhook\ nh\acircumflexdotbelow t] \setuplabeltext [\s!vi] [\v!monday=th\uhornacute\ hai] \setuplabeltext [\s!vi] [\v!tuesday=th\uhornacute\ ba] \setuplabeltext [\s!vi] [\v!wednesday=th\uhornacute\ t\uhorn] \setuplabeltext [\s!vi] [\v!thursday=th\uhornacute\ n\abreve m] \setuplabeltext [\s!vi] [\v!friday=th\uhornacute\ s\aacute u] \setuplabeltext [\s!vi] [\v!saturday=th\uhornacute\ b\ahook y] \setuplabeltext [\s!vi] [\v!january=th\aacute ng gi\ecircumflex ng] \setuplabeltext [\s!vi] [\v!february=th\aacute ng hai] \setuplabeltext [\s!vi] [\v!march=th\aacute ng ba] \setuplabeltext [\s!vi] [\v!april=th\aacute ng t\uhorn] \setuplabeltext [\s!vi] [\v!may=th\aacute ng n\abreve m] \setuplabeltext [\s!vi] [\v!june=th\aacute ng s\aacute u] \setuplabeltext [\s!vi] [\v!july=th\aacute ng b\ahook y] \setuplabeltext [\s!vi] [\v!august=th\aacute ng t\aacute m] \setuplabeltext [\s!vi] [\v!september=th\aacute ng ch\iacute n] \setuplabeltext [\s!vi] [\v!october=th\aacute ng m\uhorn\ohorngrave i] \setuplabeltext [\s!vi] [\v!november=th\aacute ng m\uhorn\ohorngrave i m\ocircumflexdotbelow t] \setuplabeltext [\s!vi] [\v!december=th\aacute ng m\uhorn\ohorngrave i hai] %D \ShowAllLanguageValues [\s!vi] [vietnamese] {Vietnamese} {water||puppets} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-two.mkii0000644000175000017500000001516314536300610024720 0ustar hillehille%D \module %D [ file=core-two, % moved from core-uti %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=Two Pass Data, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Two Pass Data} %D This is a rather old mechanism which has not changed much over %D time, apart from adding a few more selectors. This code used %D to be part of \type {core-uti}. The following examples demonstrate %D the interface. %D %D \startbuffer %D \definetwopasslist{test-1} %D %D \gettwopassdatalist{test-1} [\twopassdatalist=] %D \checktwopassdata {test-1} [\twopassdata=] %D \checktwopassdata {test-1} [\twopassdata=] %D \gettwopassdata {test-1} [\twopassdata=] %D \gettwopassdata {test-1} [\twopassdata=] %D %D \definetwopasslist{test-2} %D %D \lazysavetwopassdata{test-2}{1}{x} %D \lazysavetwopassdata{test-2}{2}{y} %D \lazysavetwopassdata{test-2}{3}{z} %D %D \gettwopassdatalist{test-2} [\twopassdatalist=x,y,z] %D \checktwopassdata {test-2} [\twopassdata=x] %D \checktwopassdata {test-2} [\twopassdata=x] %D \gettwopassdata {test-2} [\twopassdata=x] %D \gettwopassdata {test-2} [\twopassdata=y] %D \gettwopassdata {test-2} [\twopassdata=z] %D \gettwopassdata {test-2} [\twopassdata=] %D %D \definetwopasslist{test-3} %D %D \lazysavetaggedtwopassdata{test-3}{1}{x}{a} %D \lazysavetaggedtwopassdata{test-3}{2}{y}{b} %D \lazysavetaggedtwopassdata{test-3}{3}{z}{c} %D %D \findtwopassdata{test-3}{x} [\twopassdata=a] %D \findtwopassdata{test-3}{y} [\twopassdata=b] %D \findtwopassdata{test-3}{z} [\twopassdata=c] %D \findtwopassdata{test-3}{w} [\twopassdata=] %D %D \definetwopasslist{test-4} %D %D \lazysavetwopassdata{test-4}{1}{A} %D \lazysavetwopassdata{test-4}{2}{B} %D \lazysavetwopassdata{test-4}{3}{C} %D %D \getfirsttwopassdata{test-4} [\twopassdata=A] %D \getlasttwopassdata {test-4} [\twopassdata=C] %D \getfirsttwopassdata{test-4} [\twopassdata=A] %D \getlasttwopassdata {test-4} [\twopassdata=C] %D \getfromtwopassdata {test-4}{1} [\twopassdata=A] %D \getfromtwopassdata {test-4}{3} [\twopassdata=C] %D \getfromtwopassdata {test-4}{2} [\twopassdata=B] %D \stopbuffer %D %D \getbuffer \typebuffer \unprotect \let\alltwopasslists\empty \let\twopassentry \gobblethreearguments % permits loading a MK II file \let\twopassdata \empty \let\twopassdatalist\empty \newif\iftwopassdatafound \addutilityreset{twopassentries} \def\immediatesavetwopassdata #1#2#3{\immediatewriteutilitycommand{\twopassentry{#1}{#2}{#3}}} \def\savetwopassdata #1#2#3{\writeutilitycommand{\twopassentry{#1}{#2}{#3}}} \def\lazysavetwopassdata #1#2#3{\expanded{\writeutilitycommand{\noexpand\twopassentry{#1}{#2}{#3}}}} % expanded ! \def\savetaggedtwopassdata #1#2#3#4{\immediatewriteutilitycommand{\twopassentry{#1}{#2}{#3::#4}}} \def\lazysavetaggedtwopassdata#1#2#3#4{\expanded{\writeutilitycommand{\noexpand\twopassentry{#1}{#2}{#3::#4}}}} % expanded ! \def\resettwopassentries {\let\twopassentry\gobblethreearguments} \def\settwopassentries {\def\twopassentry##1{\executeifdefined{@@##1\s!pass}\gobbletwoarguments}} \resettwopassentries \def\appendtwopasselement#1#2#3% can sometimes become a large list {%\debuggerinfo{\m!systems}{twopass data #1 - #2 = #3}% \expandafter\xdef\csname#1:\s!list\endcsname {\@EA\ifx\csname#1:\s!list\endcsname\empty \else \csname#1:\s!list\endcsname,\fi#3}} \def\dodefinetwopasslist#1% {\doifundefined{#1:\s!list} {%\debuggerinfo\m!systems{defining twopass class #1}% \doglobal\addutilityreset{#1\s!pass}% \setgvalue{\s!set #1\s!pass}{\dosettwopasslist {#1}}% \setgvalue{\s!reset#1\s!pass}{\doresettwopasslist{#1}}% \getvalue {\s!reset#1\s!pass}}} \def\definetwopasslist#1% {\expanded{\dodefinetwopasslist{#1}}% \doglobal\addtocommalist{#1}\alltwopasslists} \def\dosettwopasslist#1% {\letgvalue{\s!set#1\s!pass}\gobbletwoarguments \setgvalue{@@#1\s!pass}{\appendtwopasselement{#1}}} \def\doresettwopasslist#1% {\letgvalue{@@#1\s!pass}\gobbletwoarguments} \def\doloadtwopassdata#1% {\doifundefined{#1:\s!list} {\startnointerference \letgvalueempty{#1:\s!list}% \protectlabels \doutilities{twopassentries,#1\s!pass}\jobname\empty\relax\relax \stopnointerference}} \def\loadtwopassdata {\ifx\alltwopasslists\empty\else \processcommacommand[\alltwopasslists]\doloadtwopassdata \globallet\alltwopasslists\empty \fi} \def\dogettwopassdata[#1,#2]#3#4% {\edef\twopassdata{#1}% \ifx\twopassdata\empty \twopassdatafoundfalse \let\twopassdata\empty \else \twopassdatafoundtrue \ifcase#4\or\setxvalue{#3:\s!list}{#2}\fi \fi} \def\gettwopassdata#1% {\loadtwopassdata \@EAEAEA\dogettwopassdata\@EA\@EA\@EA[\csname#1:\s!list\endcsname,]{#1}\plusone} \def\checktwopassdata#1% {\loadtwopassdata \@EAEAEA\dogettwopassdata\@EA\@EA\@EA[\csname#1:\s!list\endcsname,]{#1}\zerocount} \def\findtwopassdata#1#2% {\loadtwopassdata \expanded{\dofindtwopassdata{#1}{#2}}} \def\dofindtwopassdata#1#2% {\def\dodofindtwopassdata[##1,##2#2::##3,##4]{\edef\twopassdata{##3}}% \@EAEAEA\dodofindtwopassdata\@EA\@EA\@EA[\@EA\@EA\@EA,\csname#1:\s!list\endcsname,#2,#2::,]% \ifx\twopassdata\empty \twopassdatafoundfalse \else \twopassdatafoundtrue \fi} \let\getfirsttwopassdata\checktwopassdata \def\getlasttwopassdata#1% {\loadtwopassdata \scratchcounter\zerocount \@EAEAEA\rawprocesscommalist\@EA\@EA\@EA[\csname#1:\s!list\endcsname]\dogetlasttwopassdata \edef\noftwopassitems{\the\scratchcounter}% \iftwopassdatafound\else \let\twopassdata\empty \fi} \def\dogetlasttwopassdata#1% {\edef\nexttwopassdata{#1}% \ifx\nexttwopassdata\empty \else \let\twopassdata\nexttwopassdata \advance\scratchcounter \plusone \twopassdatafoundtrue \fi} \def\getfromtwopassdata#1#2% {\loadtwopassdata \@EAEAEA\getfromcommalist\@EA\@EA\@EA[\csname#1:\s!list\endcsname][#2]% \ifx\commalistelement\empty \twopassdatafoundfalse \let\twopassdata\empty \else \twopassdatafoundtrue \let\twopassdata\commalistelement \fi} \def\gettwopassdatalist#1% {\loadtwopassdata \letcscsname\twopassdatalist\csname#1:\s!list\endcsname \ifx\twopassdatalist\relax\let\twopassdatalist\empty\fi} \def\gettwopassdatalist {\getnamedtwopassdatalist\twopassdatalist} \def\doifelseintwopassdata#1#2% tag dat {\gettwopassdatalist{#1}% \expanded{\doifinsetelse{#2}{\twopassdatalist}}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-pdf.mkii0000644000175000017500000002347414536300610024660 0ustar hillehille%D \module %D [ file=enco-pdf, %D version=1995.01.01, %D title=\CONTEXT\ Encoding Macros, %D subtitle=\YandY\ texnansi Encoding, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This is the \PDF\ document encoding. \startencoding[pdfdoc] % \rawcharacter{number} \definecharacter oeligature ^^9c \definecharacter leftguillemot ^^ab \definecharacter rightguillemot ^^bb \definecharacter Agrave ^^c0 \definecharacter Aacute ^^c1 \definecharacter Acircumflex ^^c2 \definecharacter Atilde ^^c3 \definecharacter Adiaeresis ^^c4 \definecharacter OAligature ^^c5 \definecharacter AEligature ^^c6 \definecharacter Ccedilla ^^c7 \definecharacter Egrave ^^c8 \definecharacter Eacute ^^c9 \definecharacter Ecircumflex ^^ca \definecharacter Ediaeresis ^^cb \definecharacter Igrave ^^cc \definecharacter Iacute ^^cd \definecharacter Icircumflex ^^ce \definecharacter Idiaeresis ^^cf \definecharacter Ntilde ^^d1 \definecharacter Ograve ^^d2 \definecharacter Oacute ^^d3 \definecharacter Ocircumflex ^^d4 \definecharacter Otilde ^^d5 \definecharacter Odiaeresis ^^d6 \definecharacter Ugrave ^^d9 \definecharacter Uacute ^^da \definecharacter Ucircumflex ^^db \definecharacter Udiaeresis ^^dc \definecharacter Yacute ^^dd \definecharacter ssharp ^^df \definecharacter agrave ^^e0 \definecharacter aacute ^^e1 \definecharacter acircumflex ^^e2 \definecharacter atilde ^^e3 \definecharacter adiaeresis ^^e4 \definecharacter oaligature ^^e5 \definecharacter aeligature ^^e6 \definecharacter ccedilla ^^e7 \definecharacter egrave ^^e8 \definecharacter eacute ^^e9 \definecharacter ecircumflex ^^ea \definecharacter ediaeresis ^^eb \definecharacter igrave ^^ec \definecharacter iacute ^^ed \definecharacter icircumflex ^^ee \definecharacter idiaeresis ^^ef \definecharacter ntilde ^^f1 \definecharacter ograve ^^f2 \definecharacter oacute ^^f3 \definecharacter ocircumflex ^^f4 \definecharacter otilde ^^f5 \definecharacter odiaeresis ^^f6 \definecharacter ugrave ^^f9 \definecharacter uacute ^^fa \definecharacter ucircumflex ^^fb \definecharacter udiaeresis ^^fc \definecharacter yacute ^^fd \definecharacter ydiaeresis ^^ff \definecharacter leftsubguillemot {\leftguillemot} \definecharacter rightsubguillemot {\rightguillemot} \definecharacter Uhungarumlaut {\Ucircumflex} \definecharacter uhungarumlaut {\ucircumflex} \definecharacter Ohungarumlaut {\Ocircumflex} \definecharacter ohungarumlaut {\ocircumflex} \definecharacter Aogonek {A} \definecharacter aogonek {a} \definecharacter Eogonek {E} \definecharacter eogonek {e} \definecharacter Iogonek {I} \definecharacter iogonek {i} \definecharacter Uogonek {U} \definecharacter uogonek {u} \definecharacter Aring {A} \definecharacter aring {a} \definecharacter Uring {U} \definecharacter uring {u} \definecharacter Abreve {A} \definecharacter abreve {a} \definecharacter Ebreve {E} \definecharacter ebreve {e} \definecharacter Gbreve {G} \definecharacter gbreve {g} \definecharacter Ibreve {I} \definecharacter ibreve {i} \definecharacter Obreve {O} \definecharacter obreve {o} \definecharacter Ubreve {U} \definecharacter ubreve {u} \definecharacter Ccaron {C} \definecharacter ccaron {c} \definecharacter Dcaron {D} \definecharacter dcaron {d} \definecharacter Ecaron {E} \definecharacter ecaron {e} \definecharacter Lcaron {L} \definecharacter lcaron {l} \definecharacter Ncaron {N} \definecharacter ncaron {n} \definecharacter Rcaron {R} \definecharacter rcaron {r} \definecharacter Scaron {S} \definecharacter scaron {s} \definecharacter Tcaron {T} \definecharacter tcaron {t} \definecharacter Ycaron {Y} \definecharacter ycaron {y} \definecharacter Zcaron {Z} \definecharacter zcaron {z} \definecharacter Lstroke {L} \definecharacter lstroke {l} \definecharacter Ostroke {O} \definecharacter ostroke {o} \definecharacter aumlaut {\adiaeresis} \definecharacter eumlaut {\ediaeresis} \definecharacter iumlaut {\idiaeresis} \definecharacter oumlaut {\odiaeresis} \definecharacter uumlaut {\udiaeresis} \definecharacter Aumlaut {\Adiaeresis} \definecharacter Eumlaut {\Ediaeresis} \definecharacter Iumlaut {\Idiaeresis} \definecharacter Oumlaut {\Odiaeresis} \definecharacter Uumlaut {\Udiaeresis} \definecharacter scommaaccent {s} \definecharacter Scommaaccent {S} \definecharacter tcommaaccent {t} \definecharacter Tcommaaccent {T} \definecharacter Etilde {E} \definecharacter etilde {e} \definecharacter Ahook {A} \definecharacter ahook {a} \definecharacter Ehook {E} \definecharacter ehook {e} \definecharacter Ihook {I} \definecharacter ihook {i} \definecharacter Ohook {O} \definecharacter ohook {o} \definecharacter Uhook {U} \definecharacter uhook {u} \definecharacter Yhook {Y} \definecharacter yhook {y} \definecharacter Acircumflexgrave {\Acircumflex} \definecharacter Acircumflexacute {\Acircumflex} \definecharacter Acircumflextilde {\Acircumflex} \definecharacter Acircumflexhook {\Acircumflex} \definecharacter acircumflexgrave {\acircumflex} \definecharacter acircumflexacute {\acircumflex} \definecharacter acircumflextilde {\acircumflex} \definecharacter acircumflexhook {\acircumflex} \definecharacter Ecircumflexgrave {\Ecircumflex} \definecharacter Ecircumflexacute {\Ecircumflex} \definecharacter Ecircumflextilde {\Ecircumflex} \definecharacter Ecircumflexhook {\Ecircumflex} \definecharacter ecircumflexgrave {\ecircumflex} \definecharacter ecircumflexacute {\ecircumflex} \definecharacter ecircumflextilde {\ecircumflex} \definecharacter ecircumflexhook {\ecircumflex} \definecharacter Ocircumflexgrave {\Ocircumflex} \definecharacter Ocircumflexacute {\Ocircumflex} \definecharacter Ocircumflextilde {\Ocircumflex} \definecharacter Ocircumflexhook {\Ocircumflex} \definecharacter ocircumflexgrave {\ocircumflex} \definecharacter ocircumflexacute {\ocircumflex} \definecharacter ocircumflextilde {\ocircumflex} \definecharacter ocircumflexhook {\ocircumflex} \definecharacter Abrevegrave {A} \definecharacter Abreveacute {A} \definecharacter Abrevetilde {A} \definecharacter Abrevehook {A} \definecharacter abrevegrave {a} \definecharacter abreveacute {a} \definecharacter abrevetilde {a} \definecharacter abrevehook {a} \definecharacter Adotbelow {A} \definecharacter adotbelow {a} \definecharacter Edotbelow {E} \definecharacter edotbelow {e} \definecharacter Idotbelow {I} \definecharacter idotbelow {i} \definecharacter Odotbelow {O} \definecharacter odotbelow {o} \definecharacter Udotbelow {U} \definecharacter udotbelow {u} \definecharacter Ydotbelow {Y} \definecharacter ydotbelow {y} \definecharacter Ohorndotbelow {O} \definecharacter ohorndotbelow {o} \definecharacter Uhorndotbelow {U} \definecharacter uhorndotbelow {u} \definecharacter Acircumflexdotbelow {\Acircumflex} \definecharacter acircumflexdotbelow {\acircumflex} \definecharacter Ecircumflexdotbelow {\Ecircumflex} \definecharacter ecircumflexdotbelow {\ecircumflex} \definecharacter Ocircumflexdotbelow {\Ocircumflex} \definecharacter ocircumflexdotbelow {\ocircumflex} \definecharacter Abrevedotbelow {\Abreve} \definecharacter abrevedotbelow {\abreve} \definecharacter Ohorn {O} \definecharacter Ohorngrave {O} \definecharacter Ohornacute {O} \definecharacter Ohorntilde {O} \definecharacter Ohornhook {O} \definecharacter ohorn {o} \definecharacter ohorngrave {o} \definecharacter ohornacute {o} \definecharacter ohorntilde {o} \definecharacter ohornhook {o} \definecharacter Uhorn {U} \definecharacter Uhorngrave {U} \definecharacter Uhornacute {U} \definecharacter Uhorntilde {U} \definecharacter Uhornhook {U} \definecharacter uhorn {u} \definecharacter uhorngrave {u} \definecharacter uhornacute {u} \definecharacter uhorntilde {u} \definecharacter uhornhook {u} \definecharacter Utilde {U} \definecharacter utilde {u} \definecharacter Itilde {I} \definecharacter itilde {i} \definecharacter Ygrave {Y} \definecharacter ygrave {y} \definecharacter Ytilde {Y} \definecharacter ytilde {y} \definecharacter dstroke {d} \definecharacter Dstroke {D} \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-mit.mkii0000644000175000017500000003130614536300610024726 0ustar hillehille\setinterfacemessage{references}{1}{riferimento sconosciuto --} \setinterfacemessage{references}{30}{oggetto sconosciuto --} \setinterfacemessage{references}{3}{riferimento di tipo sconosciuto --} \setinterfacemessage{references}{2}{riferimento duplicato -- a pagina --} \setinterfacemessage{references}{5}{number of unknown references: --} \setinterfacemessage{references}{4}{riferimento illecito --} \setinterfacemessage{references}{6}{number of illegal references: --} \setinterfacemessage{references}{25}{references from document '--' are not imported (export again)} \setinterfacemessage{references}{24}{references from document '--' are not exported} \setinterfacemessage{references}{title}{riferimenti} \setinterfacemessage{references}{26}{references from document '--' are imported} \setinterfacemessage{references}{31}{oggetto duplicato --} \setinterfacemessage{references}{21}{documento -- caricato} \setinterfacemessage{references}{22}{il documento -- non ø interattivo} \setinterfacemessage{references}{23}{riferimento ambiguo -- (prefisso=--)} \setinterfacemessage{documents}{1}{sheet --} \setinterfacemessage{documents}{title}{sheets} \setinterfacemessage{documents}{2}{number --} \setinterfacemessage{handlings}{1}{font handling --} \setinterfacemessage{handlings}{3}{unknown font handling --} \setinterfacemessage{handlings}{2}{font handling -- is loaded} \setinterfacemessage{handlings}{title}{handling} \setinterfacemessage{systems}{title}{sistema} \setinterfacemessage{systems}{41}{il file esterno -- del gruppo -- non esiste} \setinterfacemessage{systems}{9}{-- non trovato/elaborato} \setinterfacemessage{systems}{91}{papertray --} \setinterfacemessage{systems}{8}{nuova versione del file supplementare, seconda passata necessaria} \setinterfacemessage{systems}{21}{nessuna informazione supplementare caricata} \setinterfacemessage{systems}{20}{significato (specie) di -- caricato} \setinterfacemessage{systems}{5}{macro del modulo -- caricate} \setinterfacemessage{systems}{4}{comando -- già definito} \setinterfacemessage{systems}{27}{Versione} \setinterfacemessage{systems}{26}{Registri} \setinterfacemessage{systems}{25}{Riferimenti} \setinterfacemessage{systems}{24}{Oggetti mobili} \setinterfacemessage{systems}{1}{caricamento dei file supplementari posticipato (typemode)} \setinterfacemessage{systems}{23}{-- sistemato a --} \setinterfacemessage{systems}{22}{usare un file supplementare valido} \setinterfacemessage{systems}{2}{-- caricato} \setinterfacemessage{systems}{19}{significato (sinonimi) di -- caricato} \setinterfacemessage{systems}{18}{sinonimo -- -- non esistente} \setinterfacemessage{systems}{7}{macro del modulo -- già caricate} \setinterfacemessage{systems}{6}{nessuna macro trovata nel modulo --} \setinterfacemessage{systems}{14}{nuova pagina obbligata in lista a --} \setinterfacemessage{systems}{15}{salvataggio del buffer --} \setinterfacemessage{systems}{16}{composizione del buffer --} \setinterfacemessage{systems}{17}{composizione verbatim del buffer --} \setinterfacemessage{systems}{13}{marcatura -- definita --} \setinterfacemessage{systems}{12}{file di supplemento non ordinato, usare texutil} \setinterfacemessage{systems}{11}{costruzione di un semplice supplemento} \setinterfacemessage{systems}{10}{non usare em in --} \setinterfacemessage{floatblocks}{1}{-- rinumerato / -- => --} \setinterfacemessage{floatblocks}{3}{-- mosso} \setinterfacemessage{floatblocks}{2}{-- salvato} \setinterfacemessage{floatblocks}{5}{ordine aggiustato} \setinterfacemessage{floatblocks}{4}{-- sistemato} \setinterfacemessage{floatblocks}{7}{n di bottom floats limitato a --} \setinterfacemessage{floatblocks}{6}{n di top floats limitato a --} \setinterfacemessage{floatblocks}{9}{ordine disturbato} \setinterfacemessage{floatblocks}{8}{meno di -- righe} \setinterfacemessage{floatblocks}{title}{oggetti mobili} \setinterfacemessage{floatblocks}{13}{there is nothing to split} \setinterfacemessage{floatblocks}{12}{non definito} \setinterfacemessage{floatblocks}{11}{nessun oggetto specificato} \setinterfacemessage{floatblocks}{10}{-- limitato} \setinterfacemessage{interactions}{1}{rapporto -- x -- (b x a)} \setinterfacemessage{interactions}{3}{inattiva} \setinterfacemessage{interactions}{2}{attiva} \setinterfacemessage{interactions}{5}{unknown attachment --} \setinterfacemessage{interactions}{4}{sincronizzazione di pagina (--) non disponibile in hmode} \setinterfacemessage{interactions}{6}{attachment file -- does not exist} \setinterfacemessage{interactions}{title}{interazione} \setinterfacemessage{interactions}{21}{codice -- inserito} \setinterfacemessage{regimes}{1}{codifica --} \setinterfacemessage{regimes}{3}{codifica sconosciuta --} \setinterfacemessage{regimes}{2}{codifica -- caricata} \setinterfacemessage{regimes}{title}{codifica} \setinterfacemessage{structures}{1}{inizio del blocco (sezione) --} \setinterfacemessage{structures}{title}{struttura} \setinterfacemessage{structures}{2}{fine del blocco (sezione) --} \setinterfacemessage{linguals}{1}{schemi -- per -- caricati (n=--,e=--,m=--)} \setinterfacemessage{linguals}{3}{sillabazione -- per -- caricata (n=--,e=--,m=--)} \setinterfacemessage{linguals}{2}{niente schemi -- per -- (n=--,e=--,m=--) (--,--)} \setinterfacemessage{linguals}{5}{schemi per -- non caricati} \setinterfacemessage{linguals}{4}{niente sillabazione -- per -- (n=--,e=--,m=--)} \setinterfacemessage{linguals}{7}{opzioni specifiche per la lingua [--] introducono un salto --} \setinterfacemessage{linguals}{6}{lingua -- non definita} \setinterfacemessage{linguals}{9}{lingua -- attiva} \setinterfacemessage{linguals}{8}{opzioni specifiche per la lingua [--] aggiunte trasparentemente} \setinterfacemessage{linguals}{title}{lingua} \setinterfacemessage{linguals}{10}{schemi -- caricati} \setinterfacemessage{verbatims}{1}{il file -- non esiste} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{filtro -- caricato} \setinterfacemessage{filters}{title}{filtri} \setinterfacemessage{filters}{2}{filtro sconosciuto --} \setinterfacemessage{textblocks}{1}{nuova versione, seconda passata necessaria} \setinterfacemessage{textblocks}{3}{lettura dei blocchi da --} \setinterfacemessage{textblocks}{2}{scrittura dei blocchi su --} \setinterfacemessage{textblocks}{5}{-- non nascosto} \setinterfacemessage{textblocks}{4}{seconda passata necessaria} \setinterfacemessage{textblocks}{7}{-- nascosto} \setinterfacemessage{textblocks}{6}{-- nascosto ed elaborato} \setinterfacemessage{textblocks}{9}{-- non composto} \setinterfacemessage{textblocks}{8}{-- composto} \setinterfacemessage{textblocks}{title}{blocchi di testo} \setinterfacemessage{textblocks}{12}{-- saltato} \setinterfacemessage{textblocks}{11}{-- caricato e composto} \setinterfacemessage{textblocks}{10}{-- caricato ed elaborato} \setinterfacemessage{encodings}{1}{codifica --} \setinterfacemessage{encodings}{3}{codifica sconosciuta --} \setinterfacemessage{encodings}{2}{codifica -- caricata} \setinterfacemessage{encodings}{title}{codifica} \setinterfacemessage{columns}{1}{solo -- colonne possibili} \setinterfacemessage{columns}{3}{problemi, disabilitare il bilanciamento} \setinterfacemessage{columns}{2}{in alternativa, usare \string\filbreak} \setinterfacemessage{columns}{5}{float in fondo non ancora supportato} \setinterfacemessage{columns}{4}{float in cima non ancora supportato} \setinterfacemessage{columns}{7}{bilanciamento annullato dopo 100 passi} \setinterfacemessage{columns}{6}{-- float(s) posticipate} \setinterfacemessage{columns}{9}{controllare seghettamento} \setinterfacemessage{columns}{8}{bilanciamento in -- passo/i} \setinterfacemessage{columns}{title}{colonne} \setinterfacemessage{columns}{13}{oggetto mobile ampio spostato sopra le colonne} \setinterfacemessage{columns}{12}{oggetto mobile spostata alla colonna successiva / --} \setinterfacemessage{columns}{11}{oggetto mobile troppo ampio per la colonna} \setinterfacemessage{columns}{10}{(meno di) una riga rimasta} \setinterfacemessage{symbols}{1}{caricamento gruppo di simboli --} \setinterfacemessage{symbols}{title}{simboli} \setinterfacemessage{files}{1}{sinonimo file -- già in uso per --} \setinterfacemessage{files}{title}{file} \setinterfacemessage{versions}{1}{@+ mancante} \setinterfacemessage{versions}{3}{pagine selezionate: --} \setinterfacemessage{versions}{2}{marcatura pagine} \setinterfacemessage{versions}{title}{version} \setinterfacemessage{specials}{1}{-- caricato} \setinterfacemessage{specials}{3}{-- reimpostato} \setinterfacemessage{specials}{2}{non ø permesso un annidamento maggiore --} \setinterfacemessage{specials}{5}{caricamento del file di definizione --} \setinterfacemessage{specials}{4}{il comando -- non esiste} \setinterfacemessage{specials}{7}{driver sconosciuto --} \setinterfacemessage{specials}{6}{annidamento non permesso} \setinterfacemessage{specials}{title}{specialitø} \setinterfacemessage{layouts}{1}{altezza del testo adattata con -- a pagina --} \setinterfacemessage{layouts}{3}{testo posticipato -- volte} \setinterfacemessage{layouts}{2}{posizionato testo posticipato -- volte} \setinterfacemessage{layouts}{5}{blocchi in margine inattivi} \setinterfacemessage{layouts}{4}{blocchi in margine attivi} \setinterfacemessage{layouts}{7}{calcolo dello spazio per logo} \setinterfacemessage{layouts}{6}{gruppo di sottopagine -- elaborato (dimensione --)} \setinterfacemessage{layouts}{9}{attualmente non più di -- livelli di elencazione} \setinterfacemessage{layouts}{8}{calcolo dello sfondo} \setinterfacemessage{layouts}{title}{layout} \setinterfacemessage{layouts}{11}{spaziatura -- non permessa in modo griglia} \setinterfacemessage{layouts}{10}{-- e -- non sommano a 1.0} \setinterfacemessage{fonts}{1}{codifica --} \setinterfacemessage{fonts}{3}{variante sconosciuta --} \setinterfacemessage{fonts}{2}{variante -- caricata} \setinterfacemessage{fonts}{5}{stile -- non definito} \setinterfacemessage{fonts}{4}{corpo del testo -- non definito} \setinterfacemessage{fonts}{7}{formato sconosciuto --} \setinterfacemessage{fonts}{6}{-- caricato} \setinterfacemessage{fonts}{14}{corpo del testo -- definito (sarebbe meglio globale)} \setinterfacemessage{fonts}{8}{stile -- definito} \setinterfacemessage{fonts}{title}{font del corpo} \setinterfacemessage{fonts}{10}{file di font sconosciuto --} \setinterfacemessage{databases}{1}{--} \setinterfacemessage{databases}{3}{file globale --} \setinterfacemessage{databases}{2}{file locale --} \setinterfacemessage{databases}{4}{file sconosciuto --} \setinterfacemessage{databases}{title}{database} \setinterfacemessage{publications}{1}{file -- not found, unknown style ignored} \setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux} \setinterfacemessage{publications}{title}{publications} \setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex} \setinterfacemessage{publications}{4}{loading database from --} \setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno} \setinterfacemessage{publications}{6}{loading formatting style from --} \setinterfacemessage{javascript}{1}{caricamento dello script set --} \setinterfacemessage{javascript}{title}{javascript} \setinterfacemessage{javascript}{2}{preambolo sconosciuto --} \setinterfacemessage{check}{1}{'=' mancante o non raggruppato dopo '--' alla riga --} \setinterfacemessage{check}{3}{-- -- sostituisce una macro, usare le MAIUSCOLE!} \setinterfacemessage{check}{2}{-- argomento/i attesi alla riga --} \setinterfacemessage{check}{title}{controllo} \setinterfacemessage{metapost}{1}{caricamento della libreria metapost --} \setinterfacemessage{metapost}{title}{metapost} \setinterfacemessage{figures}{1}{figura -- non trovata} \setinterfacemessage{figures}{3}{dimensions of -- are determined externally} \setinterfacemessage{figures}{2}{la figura -- non è preimpostata} \setinterfacemessage{figures}{5}{dimensions of -- are unknown} \setinterfacemessage{figures}{4}{dimensioni di -- caricate dal file di immagini stesso} \setinterfacemessage{figures}{6}{dimensioni di -- calcolate da rlxtools} \setinterfacemessage{figures}{8}{oggetto-figura -- riutilizzato} \setinterfacemessage{figures}{title}{figure} \setinterfacemessage{colors}{1}{sistema -- attivato globalmente} \setinterfacemessage{colors}{3}{-- non definito --} \setinterfacemessage{colors}{2}{sistema -- attivato localmente} \setinterfacemessage{colors}{5}{sistema -- sconosciuto} \setinterfacemessage{colors}{4}{sistema -- caricato} \setinterfacemessage{colors}{7}{tavolozza -- non disponibile} \setinterfacemessage{colors}{6}{tavolozza -- resa disponibile} \setinterfacemessage{colors}{9}{spazio dei colori -- non supportato} \setinterfacemessage{colors}{8}{specifica -- del colore -- convertita in nero} \setinterfacemessage{colors}{title}{colore} \setinterfacemessage{colors}{12}{-- is registered} \setinterfacemessage{colors}{11}{il colore ø convertito in grigio} \setinterfacemessage{colors}{10}{spazio dei colori -- supportato} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mxb.mkii0000644000175000017500000000451114536300610024703 0ustar hillehille\defineMMLsynonym ast midast \defineMMLsynonym Backslash setmn \defineMMLsynonym barwedge barwed \defineMMLsynonym bigcap xcap \defineMMLsynonym bigcirc xcirc \defineMMLsynonym bigcup xcup \defineMMLsynonym bigodot xodot \defineMMLsynonym bigoplus xoplus \defineMMLsynonym bigotimes xotime \defineMMLsynonym bigsqcup xsqcup \defineMMLsynonym bigtriangledown xdtri \defineMMLsynonym bigtriangleup xutri \defineMMLsynonym biguplus xuplus \defineMMLsynonym bigvee xvee \defineMMLsynonym bigwedge xwedge \defineMMLsynonym boxminus minusb \defineMMLsynonym boxplus plusb \defineMMLsynonym boxtimes timesb \defineMMLsynonym cdot sdot \defineMMLsynonym circledast oast \defineMMLsynonym circledcirc ocir \defineMMLsynonym circleddash odash \defineMMLsynonym CircleDot odot \defineMMLsynonym CircleMinus ominus \defineMMLsynonym CirclePlus oplus \defineMMLsynonym CircleTimes otimes \defineMMLsynonym Coproduct coprod \defineMMLsynonym curlyvee cuvee \defineMMLsynonym curlywedge cuwed \defineMMLsynonym ddagger Dagger \defineMMLsynonym diamond diam \defineMMLsynonym divideontimes divonx \defineMMLsynonym dotminus minusd \defineMMLsynonym dotplus plusdo \defineMMLsynonym dotsquare sdotb \defineMMLsynonym doublebarwedge Barwed \defineMMLsynonym intercal intcal \defineMMLsynonym Intersection xcap \defineMMLsynonym intprod iprod \defineMMLsynonym leftthreetimes lthree \defineMMLsynonym oslash osol \defineMMLsynonym rightthreetimes rthree \defineMMLsynonym setminus setmn \defineMMLsynonym smallsetminus ssetmn \defineMMLsynonym SquareIntersection sqcap \defineMMLsynonym SquareUnion sqcup \defineMMLsynonym Star sstarf \defineMMLsynonym star sstarf \defineMMLsynonym Sum sum \defineMMLsynonym Union xcup \defineMMLsynonym UnionPlus uplus \defineMMLsynonym Vee xvee \defineMMLsynonym VerticalTilde wreath \defineMMLsynonym Wedge xwedge \defineMMLsynonym wr wreath context-modules-20240428/texmf-dist/tex/context/base/mkii/font-arb.mkii0000644000175000017500000000014614536300610024664 0ustar hillehille\unprotected \writestatus\m!systems{load ARABTEX as a module instead} \usemodule[arabtex] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-clp.mkii0000644000175000017500000001212414536300610024655 0ustar hillehille%D \module %D [ file=meta-clp, %D version=2000.07.06, %D title=\METAPOST\ Graphics, %D subtitle=Clipping, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D In this library, we define a bunch of clipping paths that %D can be fed to \type {\clip}. \startMPclip{ellipse} clip currentpicture to unitcircle xscaled \width yscaled \height ; \stopMPclip \startMPclip{negellipse} clip currentpicture to (unitcircle peepholed unitsquare) xscaled \width yscaled \height ; \stopMPclip \startMPclip{urellipse} clip currentpicture to urcircle scaled 2 xscaled \width yscaled \height ; \stopMPclip \startMPclip{ulellipse} clip currentpicture to ulcircle scaled 2 shifted (1,0) xscaled \width yscaled \height ; \stopMPclip \startMPclip{llellipse} clip currentpicture to llcircle scaled 2 shifted (1,1) xscaled \width yscaled \height ; \stopMPclip \startMPclip{lrellipse} clip currentpicture to lrcircle scaled 2 shifted (0,1) xscaled \width yscaled \height ; \stopMPclip \startMPclip{tellipse} clip currentpicture to tcircle shifted (.5,0) yscaled 2 xscaled \width yscaled \height ; \stopMPclip \startMPclip{bellipse} clip currentpicture to bcircle shifted (.5,.5) yscaled 2 xscaled \width yscaled \height ; \stopMPclip \startMPclip{lellipse} clip currentpicture to lcircle shifted (.5,.5) xscaled 2 xscaled \width yscaled \height ; \stopMPclip \startMPclip{rellipse} clip currentpicture to rcircle shifted (0,.5) xscaled 2 xscaled \width yscaled \height ; \stopMPclip \startMPclip{diamond} clip currentpicture to unitdiamond xscaled \width yscaled \height ; \stopMPclip \startMPclip{negdiamond} clip currentpicture to (unitdiamond peepholed unitsquare) xscaled \width yscaled \height ; \stopMPclip \startMPclip{urtriangle} clip currentpicture to urtriangle scaled 2 xscaled \width yscaled \height ; \stopMPclip \startMPclip{ultriangle} clip currentpicture to ultriangle scaled 2 shifted (1,0) xscaled \width yscaled \height ; \stopMPclip \startMPclip{lltriangle} clip currentpicture to lltriangle scaled 2 shifted (1,1) xscaled \width yscaled \height ; \stopMPclip \startMPclip{lrtriangle} clip currentpicture to lrtriangle scaled 2 shifted (0,1) xscaled \width yscaled \height ; \stopMPclip % More efficient: % % \def\dosimpleMPclip#1 % {clip currentpicture to (#1) xscaled \width yscaled \height ;} % % \def\simpleMPclip#1#2% % {\startMPclip{#1}\dosimpleMPclip{#2}\stopMPclip} % % \simpleMPclip {ellipse} {unitcircle} % \simpleMPclip {diamond} {unitdiamond} % % \simpleMPclip {negellipse} {unitcircle peepholed unitsquare} % \simpleMPclip {negdiamond} {unitdiamond peepholed unitsquare} % % \simpleMPclip {urellipse} {urcircle scaled 2 shifted (0,0)} % \simpleMPclip {ulellipse} {ulcircle scaled 2 shifted (1,0)} % \simpleMPclip {llellipse} {llcircle scaled 2 shifted (1,1)} % \simpleMPclip {lrellipse} {lrcircle scaled 2 shifted (0,1)} % % \simpleMPclip {tellipse} {tcircle shifted (.5,0) yscaled 2} % \simpleMPclip {bellipse} {bcircle shifted (.5,.5) yscaled 2} % \simpleMPclip {lellipse} {lcircle shifted (.5,.5) xscaled 2} % \simpleMPclip {rellipse} {rcircle shifted (0,.5) xscaled 2} % % \simpleMPclip {urtriangle} {urtriangle scaled 2 shifted (0,0)} % \simpleMPclip {ultriangle} {ultriangle scaled 2 shifted (1,0)} % \simpleMPclip {lltriangle} {lltriangle scaled 2 shifted (1,1)} % \simpleMPclip {lrtriangle} {lrtriangle scaled 2 shifted (0,1)} %D \in {Figure} [fig:clipping paths] shows which paths are %D predefined. When applied to a whole picture, their usage %D is: %D %D \starttyping %D \clip[nx=1,ny=1,mp=ellipse]{some clippable content} %D \stoptyping %D %D \startbuffer %D \setupclipping [nx=1,ny=1,x=1,y=1] %D \setupblackrules[width=2cm,height=1cm] %D \startcombination[6*3] % \startcombination[6*3] %D {\clip[mp=urellipse] {\blackrule}} {urellipse} %D {\clip[mp=ulellipse] {\blackrule}} {ulellipse} %D {\clip[mp=llellipse] {\blackrule}} {llellipse} %D {\clip[mp=lrellipse] {\blackrule}} {lrellipse} %D {\clip[mp=ellipse] {\blackrule}} {ellipse} %D {\clip[mp=negellipse]{\blackrule}} {negellipse} %D {\clip[mp=tellipse] {\blackrule}} {tellipse} %D {\clip[mp=bellipse] {\blackrule}} {bellipse} %D {\clip[mp=lellipse] {\blackrule}} {lellipse} %D {\clip[mp=rellipse] {\blackrule}} {rellipse} %D {} {} %D {} {} %D {\clip[mp=urtriangle]{\blackrule}} {urtriangle} %D {\clip[mp=ultriangle]{\blackrule}} {ultriangle} %D {\clip[mp=lltriangle]{\blackrule}} {lltriangle} %D {\clip[mp=lrtriangle]{\blackrule}} {lrtriangle} %D {\clip[mp=diamond] {\blackrule}} {diamond} %D {\clip[mp=negdiamond]{\blackrule}} {negdiamond} %D \stopcombination % \stopcombination %D \stopbuffer %D %D \placefigure % \placefigure %D [here][fig:clipping paths] %D {The predefined clipping paths.} %D {\getbuffer} % {\getbuffer} \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-fil.mkii0000644000175000017500000002425514536300610024663 0ustar hillehille%D \module %D [ file=core-fil, %D version=1997.11.15, %D title=\CONTEXT\ Core Macros, %D subtitle=File Support, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / File Support} \unprotect %D Files registered as temporary files will be deleted after a %D run by texexec: % \starttext % \immediate\openout\scratchwrite=oeps.tmp % \immediate\write\scratchwrite{oeps} % \immediate\closeout\scratchwrite % \registertempfile{oeps.tmp} % \typefile{oeps.tmp} % \stoptext \let\usedtempfile\gobbleoneargument \def\registertempfile#1{\immediatewriteutility{f t {#1}}} %D \macros %D {definefilesynonym} %D %D One of the problems with loading files is that their names %D can depend on the interface language. We therefore need a %D method to define filesynonyms. The actual synonyms are %D defined elsewhere, but look like: %D %D \starttyping %D \definefilesynonym [chemic] [chemie] %D \definefilesynonym [einheit] [unit] %D \definefilesynonym [unit] [unit] %D \stoptyping %D %D So we can say in english: %D %D \starttyping %D \usemodules[pictex,chemic,unit] %D \stoptyping %D %D and in dutch: %D %D \starttyping %D \usemodules[pictex,chemie,unit] %D \stoptyping % will be redone in mkiv \def\definefilesynonym {\dodoubleempty\dodefinefilesynonym} \def\dodefinefilesynonym[#1][#2]% {\ifundefined{\??fs#1}\else \doifnotvalue{\??fs#1}{#2}{\showmessage\m!files1{#1 (#2),\getvalue{\??fs#1}}}% \fi \doifelse{#1}{#2}{\letbeundefined{\??fs#1}{#2}}{\setevalue{\??fs#1}{#2}}} %D \macros %D {definefilefallback} \def\definefilefallback {\dodoubleargument\dodefinefilefallback} \def\dodefinefilefallback[#1][#2]% {\doifnotfile{#1} {\def\docommand##1{\doiffile{##1}{\definefilesynonym[#1][##1]\quitcommalist}}% \processcommalist[#2]\docommand}} %D \macros %D {truefilename} %D %D At the system level such a filename can be called upon by %D saying: %D %D \starttyping %D \truefilename{filename/filesynonym} %D \stoptyping %D %D The implementation shows that nesting is supported. \def\truefilename#1% {\ifundefined{\??fs#1}#1\else\truefilename{\csname\??fs#1\endcsname}\fi} %D \macros %D {makeshortfilename} %D %D To prevent cross platform problems with filenames, we %D lowercase them as well as only use the first 8~characters. %D %D \starttyping %D \def\domakeshortfilename[#1#2#3#4#5#6#7#8#9]% %D {\lowercase{\edef\shortfilename{#1#2#3#4#5#6#7#8.}}% %D \expandafter\beforesplitstring\shortfilename\at.\to\shortfilename} %D %D \def\makeshortfilename[#1]% %D {\edef\fullfilename{#1.........}% %D \expanded{\domakeshortfilename[\fullfilename]}} %D \stoptyping %D %D In 2005 there is no need for the 8~character limit any more, so: \def\makeshortfilename[#1]% no need for further cleanup and shortening {\lowercase{\edef\shortfilename{#1.}}% \expandafter\beforesplitstring\shortfilename\at.\to\shortfilename} %D \macros %D {usemodule} %D %D Most of \CONTEXT is preloaded in the format file. Some very %D domain specific typesetting topics are however dealt with in %D separate modules, e.g. typesetting of chemical structure %D formulas. These modules are loaded by: %D %D \showsetup{usemodule} %D %D More information on the specific modules can be found in %D their dedicated manuals. We use \type {\next} so that we %D can \type {\end} in modules. %D %D In \MKIV\ we load the \type {mkiv} file when there is a \type %D {tex} file on the same path but in \MKII\ we start with the \type %D {tex} file as in many cases a \type {mkii} will be the same as an %D (old) \type {tex} one simply because we don't update drastically %D (or load a mark file indirectly). \newconditional\moduleisloaded \def\dododousemodules#1#2% no \unprotect/\protect when loading, {\relax % since we need to use ? ! unprotected \ifconditional\moduleisloaded % sometimes (see xtag-map) \let\next\relax % or: \expandafter\gobbleoneargument \else \makeshortfilename[#1\truefilename{#2}]% beware: *- is not part of syn \doifelseflagged\shortfilename {\showmessage\m!systems7{#2 (line \number\inputlineno)}% \settrue\moduleisloaded \let\next\relax} {\doglobal\setflag\shortfilename \def\next {\startreadingfile \readsysfile\shortfilename {\showmessage\m!systems5{#2}\settrue\moduleisloaded} {\readsysfile{\shortfilename.\mksuffix} % new {\showmessage\m!systems5{#2 (\mksuffix)}\settrue\moduleisloaded} \donothing}% \stopreadingfile}}% \fi \next} \def\dodousemodules#1#2% {\setfalse\moduleisloaded \doifelsenothing{#1} {\dododousemodules\f!moduleprefix {#2}% \dododousemodules\f!privateprefix{#2}% \dododousemodules\f!styleprefix {#2}% \dododousemodules\f!xstyleprefix {#2}% \dododousemodules\f!thirdprefix {#2}% \dododousemodules\empty {#2}}% new, fall back on raw name {\dododousemodules{#1-}{#2}}% \ifconditional\moduleisloaded\else \showmessage\m!systems6{#2}% \appendtoks\showmessage\m!systems6{#2}\to\everynotabene \fi} % \def\usemodules % {\dodoubleempty\dousemodules} % % \def\dousemodules[#1][#2]% % {\ifsecondargument % \doifelsenothing{#2} % {\let\next\relax} % {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}% % \else % \def\next{\usemodules[][#1]}% % \fi % \next} % % \let\usemodule\usemodules \def\usemodules {\dotripleempty\dousemodules} \def\dousemodules[#1][#2][#3]% {\pushmacro\currentmodule \pushmacro\currentmoduleparameters \let\currentmoduleparameters\empty \ifthirdargument \doifelsenothing{#2} {\let\next\relax} {\def\currentmoduleparameters{#3}% \def\next{\processcommalist[#2]{\dodousemodules{#1}}}}% \else\ifsecondargument \doifelsenothing{#2} {\let\next\relax} {\doifassignmentelse{#2} {\def\currentmoduleparameters{#2}% \def\next{\processcommalist[#1]{\dodousemodules{}}}} {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}}% \else \def\next{\processcommalist[#1]{\dodousemodules{}}}% \fi\fi \next \popmacro\currentmoduleparameters \popmacro\currentmodule} \let\currentmoduleparameters\empty \let\currentmodule \s!unknown \def\startmodule {\doifnextoptionalelse\dostartmodule\nostartmodule} \def\nostartmodule #1 % {\dostartmodule[#1]} \def\dostartmodule[#1]% {\pushmacro\currentmodule \pushmacro\currentmoduleparameters \def\currentmodule{#1}} \def\stopmodule {\popmacro\currentmoduleparameters \popmacro\currentmodule} \def\setupmodule {\dodoubleempty\dosetupmodule} \def\dosetupmodule[#1][#2]% {\scratchtoks\expandafter{\currentmoduleparameters}% \ifsecondargument \getparameters[\??md:#1:][#2]% \expanded{\getparameters[\??md:#1:][\the\scratchtoks]}% \else \getparameters[\??md:\currentmodule:][#1]% \expanded{\getparameters[\??md:\currentmodule:][\the\scratchtoks]}% \fi \let\currentmoduleparameters\empty} \def\moduleparameter #1#2{\executeifdefined{\??md:#1:#2}\s!empty} \def\currentmoduleparameter#1{\executeifdefined{\??md:\currentmodule:#1}\s!empty} % \usemodule[newmml] % \usemodule[newmml][a=b] % \usemodule[x][newmml] % \usemodule[x][newmml][a=b] % % \startmodule [mathml] % \setupmodule[a=c] \relax [\currentmoduleparameter{a}] % user vars will be set afterwards % \setupmodule[a=c] \relax [\currentmoduleparameter{a}] % user vars are now forgotten % \stopmodule % one can introduce test sections with: % % \enablemode[newmml:test:\currentmoduleparameter{test}] % \startmode[newmml:test:yes} ... \stopmode % % these will be ignored unless test=yes % % however, a better way is: \let\stopmoduletestsection\donothing \def\startmoduletestsection {\bgroup \setupmodule % we need to make sure that the vars are set \doifelse{\currentmoduleparameter\v!test}\v!yes {\egroup \writestatus{\currentmodule}{loading experimental code}} {\egroup \writestatus{\currentmodule}{skipping experimental code}% \gobbleuntil\stopmoduletestsection}} %D We also support a singular call, which saves us for %D frustrations when we do a typo. \let\usemodule=\usemodules % %D The definition shows that the language specific settings % %D are activated after loading all the modules specified. %D \macros %D {ifprotectbuffers, bufferprefix, %D TEXbufferfile, MPgraphicfile} %D %D The next switch enables protection of temporary filenames, %D which is needed when we process more files on one path at %D the same time. \newif\ifprotectbuffers \def\bufferprefix{\ifprotectbuffers\jobname-\fi} % The following filenames are defined here: \def\TEXbufferfile #1{\bufferprefix#1.\f!temporaryextension} \def\MPgraphicfile {\bufferprefix mp\ifMPrun run\else graph\fi} % not needed in luatex \def\convertMPcolorfile{\bufferprefix metacmyk.tmp} %D To save memory, we implement some seldomly used commands %D in a lazy way. Nota bene: such runtime definitions are %D global. %D %D \starttyping %D \fetchruntimecommand\showaccents{\f!encodingprefix ...} %D \stoptyping \def\fetchruntimecommand#1#2% {\def#1{\dofetchruntimecommand#1{#2}}} \def\dofetchruntimecommand#1#2% {\doifnotflagged{#2} {\let#1\undefined \startreadingfile \startnointerference % \bgroup \cleanupfeatures % better \setnormalcatcodes / test first \readfile{#2.\mksuffix}\donothing\donothing \stopnointerference % \egroup \stopreadingfile \doglobal\setflag{#2}}% \ifx#1\undefined \writestatus\m!systems{command \string#1 not found in file #2}% \def#1{{\infofont[unknown command \string#1]}}% \fi #1} %D Experimental: \let\checkpreprocessor\relax %D To be documented and probably moved \def\documentresources{\@@erurl} \def\setupexternalresources {\dodoubleargument\getparameters[\??er]} \setupexternalresources [url=] %D Goodie: \unexpanded\def\continueifinputfile#1{\doifnotfile{#1}{\endinput}} %D This module will be perfected / changed / weeded. \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-txt.mkii0000644000175000017500000006265614536300610024723 0ustar hillehille%D \module %D [ file=page-txt, % copied from main-001, %D version=1997.03.31, %D title=\CONTEXT\ Page Macros, %D subtitle=Texts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % \setuplayouttext in manual \writestatus{loading}{ConTeXt Page Macros / Texts} \unprotect \let\dodummypageskip\gobbleoneargument % obsolete %D Interfacing between this and other modules is handled by %D the following macros. The current state of a text line %D (header, footer, etc.) is checked by: %D %D \starttyping %D \resetlayouttextlines %D \stoptyping %D %D The main text box is finished by the following macro: %D %D \starttyping %D \getmainbox <\vbox|\unvbox> %D \stoptyping %D %D The text lines are collected with: %D %D \starttyping %D \gettextboxes %D \stoptyping %D %D It is possible to extens the default content of the text %D areas by appending content to the following token list %D registers: \newtoks\toptextcontent \newtoks\leftedgetextcontent \newtoks\headertextcontent \newtoks\leftmargintextcontent \newtoks\footertextcontent \newtoks\rightmargintextcontent \newtoks\bottomtextcontent \newtoks\rightedgetextcontent \newtoks\texttextcontent %D \macros %D {setuptop, setupheader, setuptext, %D setupfooter, setupbottom} %D %D The macros in this module sometimes look a bit more complicated %D than needed, which is a direct result of the fact that their %D ancestors are quite old and upward compatibility is a must. %D %D \showsetup{setuptop} %D \showsetup{setupheader} %D \showsetup{setuptext} %D \showsetup{setupfooter} %D \showsetup{setupbottom} \def\setuplayouttext {\dotripleempty\dosetuplayouttext} \def\dosetuplayouttext[#1][#2][#3]% beware, non global {\ifthirdargument \getparameters[\??tk#1#2][#3]% \else %\getparameters[\??tk#1\v!text][#2]% \edef\previoustextstate{\getvalue{\??tk#1\c!state}}% \getparameters[\??tk#1][#2]% \doifnotvalue{\??tk#1\c!state}\previoustextstate {%\checkcurrentlayout % no \edef\currenttextstate{\getvalue{\??tk#1\c!state}}% % speed optimization (calculating backgrounds takes time) \doifcommon{\previoustextstate,\currenttextstate}{\v!high,\v!none} {\calculatevsizes \recalculatebackgrounds \recalculatelogos}}% \fi} \def\setuptop {\dotripleempty\dosetuplayouttext[\v!top]} \def\setupheader {\dotripleempty\dosetuplayouttext[\v!header]} \def\setuptext {\dotripleempty\dosetuplayouttext[\v!text]} \def\setupfooter {\dotripleempty\dosetuplayouttext[\v!footer]} \def\setupbottom {\dotripleempty\dosetuplayouttext[\v!bottom]} %D \macros %D {noheaderandfooterlines,notopandbottomlines} %D %D Although not really needed, the following shortcuts %D sometimes come in handy. %D %D \showsetup{noheaderandfooterlines} %D \showsetup{notopandbottomlines} \def\noheaderandfooterlines {\setupheader[\c!state=\v!empty]% \setupfooter[\c!state=\v!empty]} \def\notopandbottomlines {\setuptop [\c!state=\v!empty]% \setupbottom[\c!state=\v!empty]} %D \macros %D {setuptoptexts, setupheadertexts, setuptexttexts, %D setupfootertexts, setupbottomtexts} %D %D The next macros take one or more arguments. The exact setup %D depends on the number of arguments. Although not that %D intuitive, the current scheme evolved out of the original. %D When margin and edge texts as well as middle texts showed %D up, the current odd|/|even scheme surfaced. %D %D \showsetup{setuptoptexts} %D \showsetup{setupheadertexts} %D \showsetup{setuptexttexts} %D \showsetup{setupfootertexts} %D \showsetup{setupbottomtexts} \def\setuptoptexts {\dosixtupleempty\dosetuptexts[\v!top]} \def\setupheadertexts {\dosixtupleempty\dosetuptexts[\v!header]} \def\setuptexttexts {\dosixtupleempty\dosetuptexts[\v!text]} \def\setupfootertexts {\dosixtupleempty\dosetuptexts[\v!footer ]} \def\setupbottomtexts {\dosixtupleempty\dosetuptexts[\v!bottom]} %D The left, right and center variables can also be set %D directly using the previously discussed macros. \def\dosetuptexts[#1][#2][#3][#4][#5][#6]% {\ifsixthargument \setvalue{\??tk#1#2\c!lefttext}% {\dodoubletexts{\??tk#1}{#2}% {\c!leftstyle \c!leftcolor \c!leftwidth }{#3}% {\c!rightstyle\c!rightcolor\c!rightwidth}{#6}}% \setvalue{\??tk#1#2\c!righttext}% {\dodoubletexts{\??tk#1}{#2}% {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}% {\c!leftstyle \c!leftcolor \c!leftwidth }{#5}}% \else\iffifthargument \setvalue{\??tk#1\v!text\c!lefttext}% {\dodoubletexts{\??tk#1}\v!text {\c!leftstyle \c!leftcolor \c!leftwidth }{#2}% {\c!rightstyle\c!rightcolor\c!rightwidth}{#5}}% \setvalue{\??tk#1\v!text\c!righttext}% {\dodoubletexts{\??tk#1}\v!text {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}% {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}}% \else\iffourthargument \setvalue{\??tk#1#2\c!lefttext}% {\dodoubletexts{\??tk#1}{#2} {\c!leftstyle\c!leftcolor\c!leftwidth}{#3}% {\c!leftstyle\c!leftcolor\c!leftwidth}{#3}}% \setvalue{\??tk#1#2\c!righttext}% {\dodoubletexts{\??tk#1}{#2} {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}% {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}}% \else\ifthirdargument \setvalue{\??tk#1\v!text\c!lefttext}% {\dodoubletexts{\??tk#1}\v!text {\c!leftstyle\c!leftcolor\c!leftwidth}{#2}% {\c!leftstyle\c!leftcolor\c!leftwidth}{#2}}% \setvalue{\??tk#1\v!text\c!righttext}% {\dodoubletexts{\??tk#1}\v!text {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}% {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}}% \else\ifsecondargument % new \letvalue{\??tk#1\v!text\c!lefttext }\empty \letvalue{\??tk#1\v!text\c!righttext}\empty \setvalue{\??tk#1\v!text\c!middletext }% {\dosingletexts{\??tk#1}\v!text\c!style\c!color\c!width{#2}}% \else \dosixtupleempty\dosetuptexts[#1][\v!text][][][][]% \dosixtupleempty\dosetuptexts[#1][\v!margin][][][][]% \dosixtupleempty\dosetuptexts[#1][\v!edge ][][][][]% \fi\fi\fi\fi\fi} %D Left and right texts are swapped on odd and even pages, but %D only when double sided typesetting is enabled. \def\dodoubletexts#1#2#3#4#5#6% {\doifoddpageelse {\dosingletexts{#1}{#2}#3{#4}} % #3 => provides three arguments {\dosingletexts{#1}{#2}#5{#6}}} % #5 => provides three arguments %D The next macro will be cleaned up amd made less messy and %D dependent. \def\placetextlinestrut#1% {\doifvalue{#1\c!strut}\v!yes{\setstrut\strut}} \def\dosingletexts#1#2#3#4#5#6% {\bgroup \defconvertedargument\ascii{#6}% \doifsomething\ascii {\doattributes{#1#2}#3#4% {\placetextlinestrut{#1}% here ! %\doifdefinedelse{\??mk\ascii\c!coupling} % brrr \doifelsemarking\ascii {\dolimitatetexts{#1#2#5}{\getmarking[\ascii][\v!first]}} {\ConvertConstantAfter\doifelse\v!pagenumber{#6} \@@plaatspaginanummer {\ConvertConstantAfter\doifelse\v!date{#6} {\currentdate} {% #6{}{}{} -> {} needed for macros that look % ahead, like \uniqueMPgraphic \opeenregel\dolimitatetexts{#1#2#5}{#6{}{}{}}}}}}}% \egroup} %D When specified, the texts are automatically limited in %D length. \def\dolimitatetexts#1#2% {\doifelsevaluenothing{#1}{#2}{\limitatetext{#2}{\getvalue{#1}}{\unknown}}} %D The placement of text is hooked into the token lists %D associated to the area at hand. \appendtoks \placelayouttextline\v!top \topheight \to \toptextcontent \appendtoks \placelayouttextline\v!header\headerheight \to \headertextcontent \appendtoks \placelayouttextline\v!text \textheight \to \texttextcontent \appendtoks \placelayouttextline\v!footer\footerheight \to \footertextcontent \appendtoks \placelayouttextline\v!bottom\bottomheight \to \bottomtextcontent %D Texts can be disabled, moved up and ignored, depending in %D the \type {status} variable. This is handled by the next %D couple of macros. \def\settextlinestatus #1{\edef\textlinestatus{\csname\??tk#1\c!state\endcsname}} %def\resettextlinestatus#1{\letgvalue{\??tk#1\c!state}\v!normal} \def\resettextlinestatus#1% postpone {\setgvalue{\??tk#1\s!reset}{\letgvalue{\??tk#1\c!state}\v!normal}} \def\placelayouttextline#1% #2 {\settextlinestatus{#1}% \csname\string\placelayouttextline \ifundefined{\string\placelayouttextline\textlinestatus}% \s!unknown \else \textlinestatus \fi \endcsname{#1}} % {#2} \def\doifelselayouttextline#1% shown or not {\doifinsetelse{\getvalue{\??tk#1\c!state}}{\v!normal,\v!start}} \def\doifelselayoutsomeline#1% present or not {\edef\!!stringa{\csname\??tk#1\c!state\endcsname}% \ifx\!!stringa\v!none \@EA\secondoftwoarguments \else\ifx\!!stringa\v!high \@EAEAEA\secondoftwoarguments \else \@EAEAEA\firstoftwoarguments \fi\fi} % \doplacelayouttextline does the actual placement (when a non-zero height) \newconditional\resyncaftertextline \setvalue{\string\placelayouttextline\v!normal }{\doplacelayouttextline} \setvalue{\string\placelayouttextline }{\doplacelayouttextline} \setvalue{\string\placelayouttextline\v!none}#1#2% {} \setvalue{\string\placelayouttextline\v!high}#1#2% {\global\settrue\resyncaftertextline \resettextlinestatus{#1}} \setvalue{\string\placelayouttextline\v!empty}#1#2% {\resettextlinestatus{#1}} \setvalue{\string\placelayouttextline\v!start}#1#2% {\resettextlinestatus{#1}% \doplacelayouttextline{#1}{#2}} \setvalue{\string\placelayouttextline\v!stop}#1#2% {} \setvalue{\string\placelayouttextline\v!nomarking}#1#2% {\bgroup \resettextlinestatus{#1}% \let\dogetmarking\nogetmarking \doplacelayouttextline{#1}{#2}% \egroup} \setvalue{\string\placelayouttextline\s!unknown}#1#2% {\global\settrue\resyncaftertextline \bgroup % new \resettextlinestatus{#1}% \getvalue{\??tk#1\textlinestatus}% \getvalue{\??tk#1\v!text \textlinestatus}% \getvalue{\??tk#1\v!margin\textlinestatus}% \getvalue{\??tk#1\v!edge \textlinestatus}% \doplacelayouttextline{#1}{#2}% \egroup} %D The following macro has to be called after a page %D is flushed. \def\resetlayouttextline#1% {\getvalue {\??tk#1\s!reset}% \letgvalue{\??tk#1\s!reset}\relax} \def\resetlayouttextlines {\resetlayouttextline\v!top \resetlayouttextline\v!header \resetlayouttextline\v!text \resetlayouttextline\v!footer \resetlayouttextline\v!bottom \ifconditional\resyncaftertextline \doglobal\calculatevsizes \recalculatebackgrounds \recalculatelogos \global\setfalse\resyncaftertextline \fi} % \settext[header][text][middle][xxx][yyy] \def\settextcontent {\doquintupleempty\dosettextcontent} \def\dosettextcontent[#1][#2][#3][#4][#5]% header text middle text/text {\iffifthargument \setvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}% {\dodoubletexts{\??tk#1}{#2}% {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}% {\c!rightstyle\c!rightcolor\c!rightwidth}{#5}}% \else\iffourthargument \setvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}% {\dodoubletexts{\??tk#1}{#2}% {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}% {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}}% \else\ifthirdargument \setvalue{\??tk#1#2\c!middletext}% {\dodoubletexts{\??tk#1}{#2}% {\c!leftstyle \c!leftcolor \c!leftwidth }{#3}% {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}}% \fi\fi\fi} \def\resettextcontent {\dotripleempty\doresettextcontent} \def\doresettextcontent[#1][#2][#3]% header text middle {\ifthirdargument \letvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}\empty \else\ifsecondargument \letvalue{\??tk#1#2\c!lefttext }\empty \letvalue{\??tk#1#2\c!middletext}\empty \letvalue{\??tk#1#2\c!righttext }\empty \fi\fi} \let\settext \settextcontent % downward compatibility \let\resettext\resettextcontent % downward compatibility \setvalue{:\c!middle:\c!text:}{\c!middletext} \setvalue{:\c!left :\c!text:}{\c!lefttext } \setvalue{:\c!right :\c!text:}{\c!righttext } %D The next series of macros is not that easy to read, %D because they hook into the main page building macros. By %D using token list registers for the text content, we can %D easily hook in other code, like menu generators. %D %D Beware: the token lists are always expanded, also when the %D height of an area is zero. This is because reset actions can %D be part of them. \newbox\scratchpagebox \def\gettextboxes {\setbox\scratchpagebox\vbox {\dontcomplain \calculatereducedvsizes \swapmargins \offinterlineskip \vskip\dimexpr-\topheight-\topdistance\relax \the\toptextcontent \vskip\dimexpr\topheight+\topdistance\relax \the\headertextcontent \vskip\dimexpr\headerheight+\headerdistance\relax \placepositionanchors \vskip-\textheight \the\texttextcontent \vskip\textheight \the\everyendoftextbody \vskip\footerdistance \the\footertextcontent \vskip\dimexpr\footerheight+\bottomdistance\relax \the\bottomtextcontent \vskip\bottomheight \vfilll}% \smashbox\scratchpagebox \box\scratchpagebox} \def\getmainbox#1#2% {\setbox\scratchpagebox\vbox {\offinterlineskip % na \paginaletter ! \calculatereducedvsizes \calculatehsizes \swapmargins \vskip\dimexpr\headerheight+\headerdistance+\layoutparameter\c!textdistance\relax \hbox to \makeupwidth {\bgroup \swapmargins \goleftonpage \ifdim\leftedgewidth>\zeropoint \the\leftedgetextcontent \hskip\leftedgewidth \fi \hskip\leftedgedistance \ifdim\leftmarginwidth>\zeropoint \the\leftmargintextcontent \hskip\leftmarginwidth \fi \hskip\leftmargindistance \egroup \mkprocesspagecontents{#2}% \settextpagecontent\scratchpagebox{#1}{#2}% \setbox\scratchpagebox\vbox % can we avoid this extra box {\startlayoutcomponent{textbody}{text body}% \box\scratchpagebox \stoplayoutcomponent}% \addtextbackground\scratchpagebox \addtextgridlayer\scratchpagebox \localstarttextcolor % does not work in mkiv \box\scratchpagebox \localstoptextcolor % so we have to change this \bgroup \hskip\rightmargindistance \ifdim\rightmarginwidth>\zeropoint \the\rightmargintextcontent \hskip\rightmarginwidth \fi \hskip\rightedgedistance \ifdim\rightedgewidth>\zeropoint \the\rightedgetextcontent \hskip\rightedgewidth \fi \egroup \hss}}% \smashbox\scratchpagebox \box\scratchpagebox} %D The main text area has to be combined with some additional %D (tracing) information. % will be overloaded in page-lyr \def\settextpagecontent#1#2#3% #2 and #3 will disappear {\setbox#1\hbox to \makeupwidth {\hss % so don't change this \vbox to \textheight {\offinterlineskip \freezetextwidth \hsize\textwidth % local variant of \sethsize \boxmaxdepth\maxdepth \noindent % content can be < \hsize \dopagecontents#2#3}% \hss}% \dp#1\zeropoint} \definepalet [layout] [grid=red, page=green] \def\addtextgridlayer#1% tzt run time {\ifcase\showgridstate\else % 1=bottom 2=top \setgridbox\scratchbox\makeupwidth\textheight \setbox#1\hbox {\ifcase\showgridstate\or\or\box#1\hskip-\makeupwidth\fi \bgroup % color \startlayoutcomponent{gridcolumns}{grid columns}% \incolortrue \ifcase\layoutcolumns\else \gray \hbox to \makeupwidth {\dorecurse\layoutcolumns {\hskip\layoutcolumnwidth \ifnum\recurselevel<\layoutcolumns \vrule \!!height\ht\scratchbox \!!depth\dp\scratchbox \!!width\layoutcolumndistance \fi}}% \hskip-\makeupwidth \fi \stoplayoutcomponent \startlayoutcomponent{gridlines}{grid lines}% \startcolor[layout:grid]\box\scratchbox\stopcolor \stoplayoutcomponent \egroup \ifcase\showgridstate\or\hskip-\makeupwidth\box#1\fi}% \fi} %D The placement of a whole line is handled by the next two %D macros. These are hooked into the general purpose token %D list registers mentioned before. \def\ignoredlinebreak{\unskip\space\ignorespaces} \def\doplacelayouttextline#1#2% {\ifdim#2>\zeropoint\relax % prevents pagenumbers when zero height \goleftonpage \hbox {\setbox\scratchpagebox\vbox to #2 {%\forgetall \vsize#2\relax \normalbaselines \let\\\ignoredlinebreak \let\crlf\ignoredlinebreak %\getvalue{\??tk#1\v!text\c!before}% \getvalue{\??tk#1\c!before}% \doifbothsidesoverruled {\dodoplacelayouttextline#1\c!lefttext \c!middletext\c!righttext\gobbleoneargument\getvalue} {\dodoplacelayouttextline#1\c!lefttext \c!middletext\c!righttext\gobbleoneargument\getvalue} {\dodoplacelayouttextline#1\c!righttext\c!middletext\c!lefttext \getvalue\gobbleoneargument}% %\getvalue{\??tk#1\v!text\c!after}% \getvalue{\??tk#1\c!after}% \kern\zeropoint}% keep the \dp, beware of \vtops, never change this! \dp\scratchpagebox\zeropoint \box\scratchpagebox}% \vskip-#2\relax \fi} \def\dodoplacelayouttextline#1#2#3#4#5#6% \hsize toegevoegd, \hss's niet meer wijzigen {\hbox {\ifdim\leftedgewidth>\zeropoint \dododoplacelayouttextline\leftedgewidth{#1}\v!edge {\hss\getvalue{\??tk#1\v!edge#2}}% \hskip\leftedgedistance \fi \ifdim\leftmarginwidth>\zeropoint \dododoplacelayouttextline\leftmarginwidth{#1}\v!margin {\hbox to \leftmarginwidth {\hss\getvalue{\??tk#1\v!margin#2}}% \hskip-\leftmarginwidth \hbox to \leftmarginwidth {\hss#5{\??tk#1\v!margin\c!margintext}}}% \hskip\leftmargindistance \fi \ifdim\makeupwidth>\zeropoint \dododoplacelayouttextline\makeupwidth{#1}\v!text {\hbox to \makeupwidth {\@@nmpre{#5{\??tk#1\v!text\c!marginedgetext}}% \getvalue{\??tk#1\v!text#2}\hss}% \hskip-\makeupwidth \hbox to \makeupwidth {\hss\getvalue{\??tk#1\v!text#3}\hss}% \hskip-\makeupwidth \hbox to \makeupwidth {\hss\getvalue{\??tk#1\v!text#4}% \@@nmpos{#6{\??tk#1\v!text\c!marginedgetext}}}}% \fi \ifdim\rightmarginwidth>\zeropoint \hskip\rightmargindistance \dododoplacelayouttextline\rightmarginwidth{#1}\v!margin {\hbox to \rightmarginwidth {\getvalue{\??tk#1\v!margin#4}\hss}% \hskip-\rightmarginwidth \hbox to \rightmarginwidth {#6{\??tk#1\v!margin\c!margintext}\hss}}% \fi \ifdim\rightedgewidth>\zeropoint \hskip\rightedgedistance \dododoplacelayouttextline\rightedgewidth{#1}\v!edge {\getvalue{\??tk#1\v!edge#4}\hss}% \fi}} % \def\dododoplacelayouttextline#1#2#3#4% % {\vbox % to \vsize % {\hsize#1\relax % \getvalue{\??tk#2#3\c!voor} % \hbox to #1{#4}% % \getvalue{\??tk#2#3\c!na}}} \def\dododoplacelayouttextline#1#2#3#4% {\vbox % to \vsize {\hsize#1\relax \getvalue{\??tk#2#3\c!before}% \startlayoutcomponent{t:#2:#3}{area #2 #3}% \hbox to #1{#4}% \stoplayoutcomponent \getvalue{\??tk#2#3\c!after}}} %D Although it is far better to use backgrounds for this %D purpose, one can add a rule in the following way. This %D method makes the rules disappear in case of an empty text %D line. Consider this a feature. %D %D \starttyping %D \setupheadertexts[left][right] %D %D \setupheader[text][after=\hrule,style=bold] %D %D \starttext %D \input tufte \page %D \setupheader[state=empty] %D \input tufte \page %D \stoptext %D \stoptyping %D The next twosome will be done differently (using an %D existing auxiliary macro). % \def\@@nmpre#1{\setbox0\hbox{#1}\ifdim\wd0=\zeropoint\else\unhbox0\tfskip\fi} % \def\@@nmpos#1{\setbox0\hbox{#1}\ifdim\wd0=\zeropoint\else\tfskip\unhbox0\fi} % cleaner \def\@@nmpre#1{\doiftext{#1}{{#1}\tfskip}} \def\@@nmpos#1{\doiftext{#1}{\tfskip{#1}}} % newer \def\@@nmprepos#1#2#3#4#5% {\doifelsenothing\@@nmwidth {\doiftext{#5}{#1{#5}#2}} {\doiftext{#5}{\hbox to \@@nmwidth{#3{#5}#4}}}} \def\@@nmpre{\@@nmprepos\empty\tfskip\relax\hss} \def\@@nmpos{\@@nmprepos\tfskip\empty\hss\relax} %D This code will move to \type {page-flt.tex}. \appendtoks \plaatsrechtermargeblok \hskip-\rightmarginwidth \to \rightmargintextcontent \appendtoks \plaatslinkermargeblok \hskip-\leftmarginwidth \to \leftmargintextcontent %D The next hook will later be used for keeping track of %D positions, i.e.\ it will provide a proper (page %D dependent) reference point. \ifx\undefined\placepositionanchors \def\placepositionanchors{\vskip\textheight} \fi %D \macros %D {definetext} %D %D Some macros ago, we implemented the \type {status} option %D \type {unknown}. This one is used to take care of %D symbolic texts handlers. %D %D \showsetup{definetext} %D %D The next example demonstrates how we can use this %D mechanism to provide page (event) dependent text lines. %D %D \starttyping %D \definetext[chapter][footer][pagenumber] %D \setuphead[chapter][header=high,footer=chapter] %D \setupheadertexts[pagenumber] %D \setupfootertexts[left][right] %D \chapter{eerste} \dorecurse{20}{\input tufte \relax} %D \chapter{tweede} \dorecurse{20}{\input tufte \relax} %D \stoptyping \def\definetext {\doseventupleempty\dodefinetext} \def\dodefinetext[#1][#2][#3][#4][#5][#6][#7]% {\ifseventhargument \setvalue{\??tk#2#3#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5][#6][#7]}% \else\ifsixthargument \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5][#6]}% \else\iffifthargument \setvalue{\??tk#2#3#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5]}% \else\iffourthargument \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4]}% \else \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3]}% \fi\fi\fi\fi} %D The rest of this file is dedicated to setting up the %D texts. This code is not that impressive. \setupheadertexts [\v!text] [] [] \setupheadertexts [\v!margin] [] [] \setupheadertexts [\v!edge] [] [] \setupfootertexts [\v!text] [] [] \setupfootertexts [\v!margin] [] [] \setupfootertexts [\v!edge] [] [] \setuptexttexts [\v!text] [] [] \setuptexttexts [\v!margin] [] [] \setuptexttexts [\v!edge] [] [] \setupbottomtexts [\v!text] [] [] \setupbottomtexts [\v!margin] [] [] \setupbottomtexts [\v!edge] [] [] \setuptoptexts [\v!text] [] [] \setuptoptexts [\v!margin] [] [] \setuptoptexts [\v!edge] [] [] % alternative % % \def\resetlayouttekst% % {\dodoubleempty\doresetlayouttekst} % % \def\doresetlayouttekst[#1][#2]% % {\ifsecondargument % \dodoresetlayouttekst[#1][#2]% % \else % \dodoresetlayouttekst[#1][\v!tekst]% % \fi} % % \def\dodoresetlayouttekst[#1][#2]% % {...} % % \def\docommand#1% % {\resetlayouttekst[#1][\v!tekst]% % \resetlayouttekst[#1][\v!marge]% % \resetlayouttekst[#1][\v!rand]} %D We combine a lot of similar settings in a macro that %D we will later dispose. \def\dodocommand[#1][#2]% {\getparameters [\??tk#1#2] [%\c!state=\v!normal, % moved \c!before=, % both global and local are used \c!after=, % both global and local are used \c!strut=, % the local one, not (yet) used \c!style=\getvalue{\??tk#1\c!style},% hm, got lost \c!color=\getvalue{\??tk#1\c!color}, % hm, got lost \c!lefttext=, \c!middletext=, \c!righttext=, \c!marginedgetext=, \c!margintext=, \c!width=]% \inheritparameter[\??tk#1#2][\c!leftstyle ][\c!style ]% \inheritparameter[\??tk#1#2][\c!rightstyle ][\c!style ]% \inheritparameter[\??tk#1#2][\c!leftcolor ][\c!color ]% \inheritparameter[\??tk#1#2][\c!rightcolor ][\c!color ]% \inheritparameter[\??tk#1#2][\c!leftwidth ][\c!width]% \inheritparameter[\??tk#1#2][\c!rightwidth][\c!width]} \def\docommand#1% {\dodocommand[#1][\v!text]% \dodocommand[#1][\v!margin]% \dodocommand[#1][\v!edge]} \docommand\v!top \docommand\v!header \docommand\v!footer \docommand\v!text \docommand\v!bottom \let\docommand \relax \let\dodocommand\relax %D While the header and footer lines are moved away from the %D main text, the top and bottom lines are centered. \setuptop [\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=] \setupheader[\c!state=\v!normal,\c!before=, \c!after=\vss,\c!strut=\v!yes] \setuptext [\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=] \setupfooter[\c!state=\v!normal,\c!before=\vss,\c!after=, \c!strut=\v!yes] \setupbottom[\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=] \setuptop [\c!style=,\c!color=] \setupheader[\c!style=,\c!color=] \setuptext [\c!style=,\c!color=] \setupfooter[\c!style=,\c!color=] \setupbottom[\c!style=,\c!color=] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/colo-x11.mkii0000644000175000017500000007431314536300610024526 0ustar hillehille%D \module %D [ file=colo-x11, %D version=2009.11.13, %D title=\CONTEXT\ Color Macros, %D subtitle=X11, %D author=Alan Braslau] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Standard X11 rgb colors (from \type {/usr/share/X11/rgb.txt}): \doifnotmode{mkiv} { \input colo-hex.mkii } \definecolor [snow] [h=fffafa] \definecolor [ghostwhite] [h=f8f8ff] \definecolor [whitesmoke] [s=0.96] \definecolor [gainsboro] [s=0.86] \definecolor [floralwhite] [h=fffaf0] \definecolor [oldlace] [h=fdf5e6] \definecolor [linen] [h=faf0e6] \definecolor [antiquewhite] [h=faebd7] \definecolor [papayawhip] [h=ffefd5] \definecolor [blanchedalmond] [h=ffebcd] \definecolor [bisque] [h=ffe4c4] \definecolor [peachpuff] [h=ffdab9] \definecolor [navajowhite] [h=ffdead] \definecolor [moccasin] [h=ffe4b5] \definecolor [cornsilk] [h=fff8dc] \definecolor [ivory] [h=fffff0] \definecolor [lemonchiffon] [h=fffacd] \definecolor [seashell] [h=fff5ee] \definecolor [honeydew] [h=f0fff0] \definecolor [mintcream] [h=f5fffa] \definecolor [azure] [h=f0ffff] \definecolor [aliceblue] [h=f0f8ff] \definecolor [lavender] [h=e6e6fa] \definecolor [lavenderblush] [h=fff0f5] \definecolor [mistyrose] [h=ffe4e1] \definecolor [white] [s=1] \definecolor [black] [s=0] \definecolor [darkslategray] [h=2f4f4f] \definecolor [darkslategrey] [darkslategray] \definecolor [dimgray] [s=0.41] \definecolor [dimgrey] [dimgray] \definecolor [slategray] [h=708090] \definecolor [slategrey] [slategray] \definecolor [lightslategray] [h=778899] \definecolor [lightslategrey] [lightslategray] \definecolor [gray] [s=0.75] \definecolor [grey] [gray] \definecolor [lightgrey] [s=0.83] \definecolor [lightgray] [lightgrey] \definecolor [midnightblue] [h=191970] \definecolor [navy] [h=000080] \definecolor [navyblue] [navy] \definecolor [cornflowerblue] [h=6495ed] \definecolor [darkslateblue] [h=483d8b] \definecolor [slateblue] [h=6a5acd] \definecolor [mediumslateblue] [h=7b68ee] \definecolor [lightslateblue] [h=8470ff] \definecolor [mediumblue] [h=0000cd] \definecolor [royalblue] [h=4169e1] \definecolor [blue] [h=0000ff] \definecolor [dodgerblue] [h=1e90ff] \definecolor [deepskyblue] [h=00bfff] \definecolor [skyblue] [h=87ceeb] \definecolor [lightskyblue] [h=87cefa] \definecolor [steelblue] [h=4682b4] \definecolor [lightsteelblue] [h=b0c4de] \definecolor [lightblue] [h=add8e6] \definecolor [powderblue] [h=b0e0e6] \definecolor [paleturquoise] [h=afeeee] \definecolor [darkturquoise] [h=00ced1] \definecolor [mediumturquoise] [h=48d1cc] \definecolor [turquoise] [h=40e0d0] \definecolor [cyan] [h=00ffff] \definecolor [lightcyan] [h=e0ffff] \definecolor [cadetblue] [h=5f9ea0] \definecolor [mediumaquamarine] [h=66cdaa] \definecolor [aquamarine] [h=7fffd4] \definecolor [darkgreen] [h=006400] \definecolor [darkolivegreen] [h=556b2f] \definecolor [darkseagreen] [h=8fbc8f] \definecolor [seagreen] [h=2e8b57] \definecolor [mediumseagreen] [h=3cb371] \definecolor [lightseagreen] [h=20b2aa] \definecolor [palegreen] [h=98fb98] \definecolor [springgreen] [h=00ff7f] \definecolor [lawngreen] [h=7cfc00] \definecolor [green] [h=00ff00] \definecolor [chartreuse] [h=7fff00] \definecolor [mediumspringgreen] [h=00fa9a] \definecolor [greenyellow] [h=adff2f] \definecolor [limegreen] [h=32cd32] \definecolor [yellowgreen] [h=9acd32] \definecolor [forestgreen] [h=228b22] \definecolor [olivedrab] [h=6b8e23] \definecolor [darkkhaki] [h=bdb76b] \definecolor [khaki] [h=f0e68c] \definecolor [palegoldenrod] [h=eee8aa] \definecolor [lightgoldenrodyellow] [h=fafad2] \definecolor [lightyellow] [h=ffffe0] \definecolor [yellow] [h=ffff00] \definecolor [gold] [h=ffd700] \definecolor [lightgoldenrod] [h=eedd82] \definecolor [goldenrod] [h=daa520] \definecolor [darkgoldenrod] [h=b8860b] \definecolor [rosybrown] [h=bc8f8f] \definecolor [indianred] [h=cd5c5c] \definecolor [saddlebrown] [h=8b4513] \definecolor [sienna] [h=a0522d] \definecolor [peru] [h=cd853f] \definecolor [burlywood] [h=deb887] \definecolor [beige] [h=f5f5dc] \definecolor [wheat] [h=f5deb3] \definecolor [sandybrown] [h=f4a460] \definecolor [tan] [h=d2b48c] \definecolor [chocolate] [h=d2691e] \definecolor [firebrick] [h=b22222] \definecolor [brown] [h=a52a2a] \definecolor [darksalmon] [h=e9967a] \definecolor [salmon] [h=fa8072] \definecolor [lightsalmon] [h=ffa07a] \definecolor [orange] [h=ffa500] \definecolor [darkorange] [h=ff8c00] \definecolor [coral] [h=ff7f50] \definecolor [lightcoral] [h=f08080] \definecolor [tomato] [h=ff6347] \definecolor [orangered] [h=ff4500] \definecolor [red] [h=ff0000] \definecolor [hotpink] [h=ff69b4] \definecolor [deeppink] [h=ff1493] \definecolor [pink] [h=ffc0cb] \definecolor [lightpink] [h=ffb6c1] \definecolor [palevioletred] [h=db7093] \definecolor [maroon] [h=b03060] \definecolor [mediumvioletred] [h=c71585] \definecolor [violetred] [h=d02090] \definecolor [magenta] [h=ff00ff] \definecolor [violet] [h=ee82ee] \definecolor [plum] [h=dda0dd] \definecolor [orchid] [h=da70d6] \definecolor [mediumorchid] [h=ba55d3] \definecolor [darkorchid] [h=9932cc] \definecolor [darkviolet] [h=9400d3] \definecolor [blueviolet] [h=8a2be2] \definecolor [purple] [h=a020f0] \definecolor [mediumpurple] [h=9370db] \definecolor [thistle] [h=d8bfd8] \definecolor [snow1] [h=fffafa] \definecolor [snow2] [h=eee9e9] \definecolor [snow3] [h=cdc9c9] \definecolor [snow4] [h=8b8989] \definecolor [seashell1] [h=fff5ee] \definecolor [seashell2] [h=eee5de] \definecolor [seashell3] [h=cdc5bf] \definecolor [seashell4] [h=8b8682] \definecolor [antiquewhite1] [h=ffefdb] \definecolor [antiquewhite2] [h=eedfcc] \definecolor [antiquewhite3] [h=cdc0b0] \definecolor [antiquewhite4] [h=8b8378] \definecolor [bisque1] [h=ffe4c4] \definecolor [bisque2] [h=eed5b7] \definecolor [bisque3] [h=cdb79e] \definecolor [bisque4] [h=8b7d6b] \definecolor [peachpuff1] [h=ffdab9] \definecolor [peachpuff2] [h=eecbad] \definecolor [peachpuff3] [h=cdaf95] \definecolor [peachpuff4] [h=8b7765] \definecolor [navajowhite1] [h=ffdead] \definecolor [navajowhite2] [h=eecfa1] \definecolor [navajowhite3] [h=cdb38b] \definecolor [navajowhite4] [h=8b795e] \definecolor [lemonchiffon1] [h=fffacd] \definecolor [lemonchiffon2] [h=eee9bf] \definecolor [lemonchiffon3] [h=cdc9a5] \definecolor [lemonchiffon4] [h=8b8970] \definecolor [cornsilk1] [h=fff8dc] \definecolor [cornsilk2] [h=eee8cd] \definecolor [cornsilk3] [h=cdc8b1] \definecolor [cornsilk4] [h=8b8878] \definecolor [ivory1] [h=fffff0] \definecolor [ivory2] [h=eeeee0] \definecolor [ivory3] [h=cdcdc1] \definecolor [ivory4] [h=8b8b83] \definecolor [honeydew1] [h=f0fff0] \definecolor [honeydew2] [h=e0eee0] \definecolor [honeydew3] [h=c1cdc1] \definecolor [honeydew4] [h=838b83] \definecolor [lavenderblush1] [h=fff0f5] \definecolor [lavenderblush2] [h=eee0e5] \definecolor [lavenderblush3] [h=cdc1c5] \definecolor [lavenderblush4] [h=8b8386] \definecolor [mistyrose1] [h=ffe4e1] \definecolor [mistyrose2] [h=eed5d2] \definecolor [mistyrose3] [h=cdb7b5] \definecolor [mistyrose4] [h=8b7d7b] \definecolor [azure1] [h=f0ffff] \definecolor [azure2] [h=e0eeee] \definecolor [azure3] [h=c1cdcd] \definecolor [azure4] [h=838b8b] \definecolor [slateblue1] [h=836fff] \definecolor [slateblue2] [h=7a67ee] \definecolor [slateblue3] [h=6959cd] \definecolor [slateblue4] [h=473c8b] \definecolor [royalblue1] [h=4876ff] \definecolor [royalblue2] [h=436eee] \definecolor [royalblue3] [h=3a5fcd] \definecolor [royalblue4] [h=27408b] \definecolor [blue1] [h=0000ff] \definecolor [blue2] [h=0000ee] \definecolor [blue3] [h=0000cd] \definecolor [blue4] [h=00008b] \definecolor [dodgerblue1] [h=1e90ff] \definecolor [dodgerblue2] [h=1c86ee] \definecolor [dodgerblue3] [h=1874cd] \definecolor [dodgerblue4] [h=104e8b] \definecolor [steelblue1] [h=63b8ff] \definecolor [steelblue2] [h=5cacee] \definecolor [steelblue3] [h=4f94cd] \definecolor [steelblue4] [h=36648b] \definecolor [deepskyblue1] [h=00bfff] \definecolor [deepskyblue2] [h=00b2ee] \definecolor [deepskyblue3] [h=009acd] \definecolor [deepskyblue4] [h=00688b] \definecolor [skyblue1] [h=87ceff] \definecolor [skyblue2] [h=7ec0ee] \definecolor [skyblue3] [h=6ca6cd] \definecolor [skyblue4] [h=4a708b] \definecolor [lightskyblue1] [h=b0e2ff] \definecolor [lightskyblue2] [h=a4d3ee] \definecolor [lightskyblue3] [h=8db6cd] \definecolor [lightskyblue4] [h=607b8b] \definecolor [slategray1] [h=c6e2ff] \definecolor [slategray2] [h=b9d3ee] \definecolor [slategray3] [h=9fb6cd] \definecolor [slategray4] [h=6c7b8b] \definecolor [lightsteelblue1] [h=cae1ff] \definecolor [lightsteelblue2] [h=bcd2ee] \definecolor [lightsteelblue3] [h=a2b5cd] \definecolor [lightsteelblue4] [h=6e7b8b] \definecolor [lightblue1] [h=bfefff] \definecolor [lightblue2] [h=b2dfee] \definecolor [lightblue3] [h=9ac0cd] \definecolor [lightblue4] [h=68838b] \definecolor [lightcyan1] [h=e0ffff] \definecolor [lightcyan2] [h=d1eeee] \definecolor [lightcyan3] [h=b4cdcd] \definecolor [lightcyan4] [h=7a8b8b] \definecolor [paleturquoise1] [h=bbffff] \definecolor [paleturquoise2] [h=aeeeee] \definecolor [paleturquoise3] [h=96cdcd] \definecolor [paleturquoise4] [h=668b8b] \definecolor [cadetblue1] [h=98f5ff] \definecolor [cadetblue2] [h=8ee5ee] \definecolor [cadetblue3] [h=7ac5cd] \definecolor [cadetblue4] [h=53868b] \definecolor [turquoise1] [h=00f5ff] \definecolor [turquoise2] [h=00e5ee] \definecolor [turquoise3] [h=00c5cd] \definecolor [turquoise4] [h=00868b] \definecolor [cyan1] [h=00ffff] \definecolor [cyan2] [h=00eeee] \definecolor [cyan3] [h=00cdcd] \definecolor [cyan4] [h=008b8b] \definecolor [darkslategray1] [h=97ffff] \definecolor [darkslategray2] [h=8deeee] \definecolor [darkslategray3] [h=79cdcd] \definecolor [darkslategray4] [h=528b8b] \definecolor [aquamarine1] [h=7fffd4] \definecolor [aquamarine2] [h=76eec6] \definecolor [aquamarine3] [h=66cdaa] \definecolor [aquamarine4] [h=458b74] \definecolor [darkseagreen1] [h=c1ffc1] \definecolor [darkseagreen2] [h=b4eeb4] \definecolor [darkseagreen3] [h=9bcd9b] \definecolor [darkseagreen4] [h=698b69] \definecolor [seagreen1] [h=54ff9f] \definecolor [seagreen2] [h=4eee94] \definecolor [seagreen3] [h=43cd80] \definecolor [seagreen4] [h=2e8b57] \definecolor [palegreen1] [h=9aff9a] \definecolor [palegreen2] [h=90ee90] \definecolor [palegreen3] [h=7ccd7c] \definecolor [palegreen4] [h=548b54] \definecolor [springgreen1] [h=00ff7f] \definecolor [springgreen2] [h=00ee76] \definecolor [springgreen3] [h=00cd66] \definecolor [springgreen4] [h=008b45] \definecolor [green1] [h=00ff00] \definecolor [green2] [h=00ee00] \definecolor [green3] [h=00cd00] \definecolor [green4] [h=008b00] \definecolor [chartreuse1] [h=7fff00] \definecolor [chartreuse2] [h=76ee00] \definecolor [chartreuse3] [h=66cd00] \definecolor [chartreuse4] [h=458b00] \definecolor [olivedrab1] [h=c0ff3e] \definecolor [olivedrab2] [h=b3ee3a] \definecolor [olivedrab3] [h=9acd32] \definecolor [olivedrab4] [h=698b22] \definecolor [darkolivegreen1] [h=caff70] \definecolor [darkolivegreen2] [h=bcee68] \definecolor [darkolivegreen3] [h=a2cd5a] \definecolor [darkolivegreen4] [h=6e8b3d] \definecolor [khaki1] [h=fff68f] \definecolor [khaki2] [h=eee685] \definecolor [khaki3] [h=cdc673] \definecolor [khaki4] [h=8b864e] \definecolor [lightgoldenrod1] [h=ffec8b] \definecolor [lightgoldenrod2] [h=eedc82] \definecolor [lightgoldenrod3] [h=cdbe70] \definecolor [lightgoldenrod4] [h=8b814c] \definecolor [lightyellow1] [h=ffffe0] \definecolor [lightyellow2] [h=eeeed1] \definecolor [lightyellow3] [h=cdcdb4] \definecolor [lightyellow4] [h=8b8b7a] \definecolor [yellow1] [h=ffff00] \definecolor [yellow2] [h=eeee00] \definecolor [yellow3] [h=cdcd00] \definecolor [yellow4] [h=8b8b00] \definecolor [gold1] [h=ffd700] \definecolor [gold2] [h=eec900] \definecolor [gold3] [h=cdad00] \definecolor [gold4] [h=8b7500] \definecolor [goldenrod1] [h=ffc125] \definecolor [goldenrod2] [h=eeb422] \definecolor [goldenrod3] [h=cd9b1d] \definecolor [goldenrod4] [h=8b6914] \definecolor [darkgoldenrod1] [h=ffb90f] \definecolor [darkgoldenrod2] [h=eead0e] \definecolor [darkgoldenrod3] [h=cd950c] \definecolor [darkgoldenrod4] [h=8b6508] \definecolor [rosybrown1] [h=ffc1c1] \definecolor [rosybrown2] [h=eeb4b4] \definecolor [rosybrown3] [h=cd9b9b] \definecolor [rosybrown4] [h=8b6969] \definecolor [indianred1] [h=ff6a6a] \definecolor [indianred2] [h=ee6363] \definecolor [indianred3] [h=cd5555] \definecolor [indianred4] [h=8b3a3a] \definecolor [sienna1] [h=ff8247] \definecolor [sienna2] [h=ee7942] \definecolor [sienna3] [h=cd6839] \definecolor [sienna4] [h=8b4726] \definecolor [burlywood1] [h=ffd39b] \definecolor [burlywood2] [h=eec591] \definecolor [burlywood3] [h=cdaa7d] \definecolor [burlywood4] [h=8b7355] \definecolor [wheat1] [h=ffe7ba] \definecolor [wheat2] [h=eed8ae] \definecolor [wheat3] [h=cdba96] \definecolor [wheat4] [h=8b7e66] \definecolor [tan1] [h=ffa54f] \definecolor [tan2] [h=ee9a49] \definecolor [tan3] [h=cd853f] \definecolor [tan4] [h=8b5a2b] \definecolor [chocolate1] [h=ff7f24] \definecolor [chocolate2] [h=ee7621] \definecolor [chocolate3] [h=cd661d] \definecolor [chocolate4] [h=8b4513] \definecolor [firebrick1] [h=ff3030] \definecolor [firebrick2] [h=ee2c2c] \definecolor [firebrick3] [h=cd2626] \definecolor [firebrick4] [h=8b1a1a] \definecolor [brown1] [h=ff4040] \definecolor [brown2] [h=ee3b3b] \definecolor [brown3] [h=cd3333] \definecolor [brown4] [h=8b2323] \definecolor [salmon1] [h=ff8c69] \definecolor [salmon2] [h=ee8262] \definecolor [salmon3] [h=cd7054] \definecolor [salmon4] [h=8b4c39] \definecolor [lightsalmon1] [h=ffa07a] \definecolor [lightsalmon2] [h=ee9572] \definecolor [lightsalmon3] [h=cd8162] \definecolor [lightsalmon4] [h=8b5742] \definecolor [orange1] [h=ffa500] \definecolor [orange2] [h=ee9a00] \definecolor [orange3] [h=cd8500] \definecolor [orange4] [h=8b5a00] \definecolor [darkorange1] [h=ff7f00] \definecolor [darkorange2] [h=ee7600] \definecolor [darkorange3] [h=cd6600] \definecolor [darkorange4] [h=8b4500] \definecolor [coral1] [h=ff7256] \definecolor [coral2] [h=ee6a50] \definecolor [coral3] [h=cd5b45] \definecolor [coral4] [h=8b3e2f] \definecolor [tomato1] [h=ff6347] \definecolor [tomato2] [h=ee5c42] \definecolor [tomato3] [h=cd4f39] \definecolor [tomato4] [h=8b3626] \definecolor [orangered1] [h=ff4500] \definecolor [orangered2] [h=ee4000] \definecolor [orangered3] [h=cd3700] \definecolor [orangered4] [h=8b2500] \definecolor [red1] [h=ff0000] \definecolor [red2] [h=ee0000] \definecolor [red3] [h=cd0000] \definecolor [red4] [h=8b0000] \definecolor [debianred] [h=d70751] \definecolor [deeppink1] [h=ff1493] \definecolor [deeppink2] [h=ee1289] \definecolor [deeppink3] [h=cd1076] \definecolor [deeppink4] [h=8b0a50] \definecolor [hotpink1] [h=ff6eb4] \definecolor [hotpink2] [h=ee6aa7] \definecolor [hotpink3] [h=cd6090] \definecolor [hotpink4] [h=8b3a62] \definecolor [pink1] [h=ffb5c5] \definecolor [pink2] [h=eea9b8] \definecolor [pink3] [h=cd919e] \definecolor [pink4] [h=8b636c] \definecolor [lightpink1] [h=ffaeb9] \definecolor [lightpink2] [h=eea2ad] \definecolor [lightpink3] [h=cd8c95] \definecolor [lightpink4] [h=8b5f65] \definecolor [palevioletred1] [h=ff82ab] \definecolor [palevioletred2] [h=ee799f] \definecolor [palevioletred3] [h=cd6889] \definecolor [palevioletred4] [h=8b475d] \definecolor [maroon1] [h=ff34b3] \definecolor [maroon2] [h=ee30a7] \definecolor [maroon3] [h=cd2990] \definecolor [maroon4] [h=8b1c62] \definecolor [violetred1] [h=ff3e96] \definecolor [violetred2] [h=ee3a8c] \definecolor [violetred3] [h=cd3278] \definecolor [violetred4] [h=8b2252] \definecolor [magenta1] [h=ff00ff] \definecolor [magenta2] [h=ee00ee] \definecolor [magenta3] [h=cd00cd] \definecolor [magenta4] [h=8b008b] \definecolor [orchid1] [h=ff83fa] \definecolor [orchid2] [h=ee7ae9] \definecolor [orchid3] [h=cd69c9] \definecolor [orchid4] [h=8b4789] \definecolor [plum1] [h=ffbbff] \definecolor [plum2] [h=eeaeee] \definecolor [plum3] [h=cd96cd] \definecolor [plum4] [h=8b668b] \definecolor [mediumorchid1] [h=e066ff] \definecolor [mediumorchid2] [h=d15fee] \definecolor [mediumorchid3] [h=b452cd] \definecolor [mediumorchid4] [h=7a378b] \definecolor [darkorchid1] [h=bf3eff] \definecolor [darkorchid2] [h=b23aee] \definecolor [darkorchid3] [h=9a32cd] \definecolor [darkorchid4] [h=68228b] \definecolor [purple1] [h=9b30ff] \definecolor [purple2] [h=912cee] \definecolor [purple3] [h=7d26cd] \definecolor [purple4] [h=551a8b] \definecolor [mediumpurple1] [h=ab82ff] \definecolor [mediumpurple2] [h=9f79ee] \definecolor [mediumpurple3] [h=8968cd] \definecolor [mediumpurple4] [h=5d478b] \definecolor [thistle1] [h=ffe1ff] \definecolor [thistle2] [h=eed2ee] \definecolor [thistle3] [h=cdb5cd] \definecolor [thistle4] [h=8b7b8b] \definecolor [gray0] [s=0.00] \definecolor [grey0] [gray0] \definecolor [gray1] [s=0.01] \definecolor [grey1] [gray1] \definecolor [gray2] [s=0.02] \definecolor [grey2] [gray2] \definecolor [gray3] [s=0.03] \definecolor [grey3] [gray3] \definecolor [gray4] [s=0.04] \definecolor [grey4] [gray4] \definecolor [gray5] [s=0.05] \definecolor [grey5] [gray5] \definecolor [gray6] [s=0.06] \definecolor [grey6] [gray6] \definecolor [gray7] [s=0.07] \definecolor [grey7] [gray7] \definecolor [gray8] [s=0.08] \definecolor [grey8] [gray8] \definecolor [gray9] [s=0.09] \definecolor [grey9] [gray9] \definecolor [gray10] [s=0.10] \definecolor [grey10] [gray10] \definecolor [gray11] [s=0.11] \definecolor [grey11] [gray11] \definecolor [gray12] [s=0.12] \definecolor [grey12] [gray12] \definecolor [gray13] [s=0.13] \definecolor [grey13] [gray13] \definecolor [gray14] [s=0.14] \definecolor [grey14] [gray14] \definecolor [gray15] [s=0.15] \definecolor [grey15] [gray15] \definecolor [gray16] [s=0.16] \definecolor [grey16] [gray16] \definecolor [gray17] [s=0.17] \definecolor [grey17] [gray17] \definecolor [gray18] [s=0.18] \definecolor [grey18] [gray18] \definecolor [gray19] [s=0.19] \definecolor [grey19] [gray19] \definecolor [gray20] [s=0.20] \definecolor [grey20] [gray20] \definecolor [gray21] [s=0.21] \definecolor [grey21] [gray21] \definecolor [gray22] [s=0.22] \definecolor [grey22] [gray22] \definecolor [gray23] [s=0.23] \definecolor [grey23] [gray23] \definecolor [gray24] [s=0.24] \definecolor [grey24] [gray24] \definecolor [gray25] [s=0.25] \definecolor [grey25] [gray25] \definecolor [gray26] [s=0.26] \definecolor [grey26] [gray26] \definecolor [gray27] [s=0.27] \definecolor [grey27] [gray27] \definecolor [gray28] [s=0.28] \definecolor [grey28] [gray28] \definecolor [gray29] [s=0.29] \definecolor [grey29] [gray29] \definecolor [gray30] [s=0.30] \definecolor [grey30] [gray30] \definecolor [gray31] [s=0.31] \definecolor [grey31] [gray31] \definecolor [gray32] [s=0.32] \definecolor [grey32] [gray32] \definecolor [gray33] [s=0.33] \definecolor [grey33] [gray33] \definecolor [gray34] [s=0.34] \definecolor [grey34] [gray34] \definecolor [gray35] [s=0.35] \definecolor [grey35] [gray35] \definecolor [gray36] [s=0.36] \definecolor [grey36] [gray36] \definecolor [gray37] [s=0.37] \definecolor [grey37] [gray37] \definecolor [gray38] [s=0.38] \definecolor [grey38] [gray38] \definecolor [gray39] [s=0.39] \definecolor [grey39] [gray39] \definecolor [gray40] [s=0.40] \definecolor [grey40] [gray40] \definecolor [gray41] [s=0.41] \definecolor [grey41] [gray41] \definecolor [gray42] [s=0.42] \definecolor [grey42] [gray42] \definecolor [gray43] [s=0.43] \definecolor [grey43] [gray43] \definecolor [gray44] [s=0.44] \definecolor [grey44] [gray44] \definecolor [gray45] [s=0.45] \definecolor [grey45] [gray45] \definecolor [gray46] [s=0.46] \definecolor [grey46] [gray46] \definecolor [gray47] [s=0.47] \definecolor [grey47] [gray47] \definecolor [gray48] [s=0.48] \definecolor [grey48] [gray48] \definecolor [gray49] [s=0.49] \definecolor [grey49] [gray49] \definecolor [gray50] [s=0.50] \definecolor [grey50] [gray50] \definecolor [gray51] [s=0.51] \definecolor [grey51] [gray51] \definecolor [gray52] [s=0.52] \definecolor [grey52] [gray52] \definecolor [gray53] [s=0.53] \definecolor [grey53] [gray53] \definecolor [gray54] [s=0.54] \definecolor [grey54] [gray54] \definecolor [gray55] [s=0.55] \definecolor [grey55] [gray55] \definecolor [gray56] [s=0.56] \definecolor [grey56] [gray56] \definecolor [gray57] [s=0.57] \definecolor [grey57] [gray57] \definecolor [gray58] [s=0.58] \definecolor [grey58] [gray58] \definecolor [gray59] [s=0.59] \definecolor [grey59] [gray59] \definecolor [gray60] [s=0.60] \definecolor [grey60] [gray60] \definecolor [gray61] [s=0.61] \definecolor [grey61] [gray61] \definecolor [gray62] [s=0.62] \definecolor [grey62] [gray62] \definecolor [gray63] [s=0.63] \definecolor [grey63] [gray63] \definecolor [gray64] [s=0.64] \definecolor [grey64] [gray64] \definecolor [gray65] [s=0.65] \definecolor [grey65] [gray65] \definecolor [gray66] [s=0.66] \definecolor [grey66] [gray66] \definecolor [gray67] [s=0.67] \definecolor [grey67] [gray67] \definecolor [gray68] [s=0.68] \definecolor [grey68] [gray68] \definecolor [gray69] [s=0.69] \definecolor [grey69] [gray69] \definecolor [gray70] [s=0.70] \definecolor [grey70] [gray70] \definecolor [gray71] [s=0.71] \definecolor [grey71] [gray71] \definecolor [gray72] [s=0.72] \definecolor [grey72] [gray72] \definecolor [gray73] [s=0.73] \definecolor [grey73] [gray73] \definecolor [gray74] [s=0.74] \definecolor [grey74] [gray74] \definecolor [gray75] [s=0.75] \definecolor [grey75] [gray75] \definecolor [gray76] [s=0.76] \definecolor [grey76] [gray76] \definecolor [gray77] [s=0.77] \definecolor [grey77] [gray77] \definecolor [gray78] [s=0.78] \definecolor [grey78] [gray78] \definecolor [gray79] [s=0.79] \definecolor [grey79] [gray79] \definecolor [gray80] [s=0.80] \definecolor [grey80] [gray80] \definecolor [gray81] [s=0.81] \definecolor [grey81] [gray81] \definecolor [gray82] [s=0.82] \definecolor [grey82] [gray82] \definecolor [gray83] [s=0.83] \definecolor [grey83] [gray83] \definecolor [gray84] [s=0.84] \definecolor [grey84] [gray84] \definecolor [gray85] [s=0.85] \definecolor [grey85] [gray85] \definecolor [gray86] [s=0.86] \definecolor [grey86] [gray86] \definecolor [gray87] [s=0.87] \definecolor [grey87] [gray87] \definecolor [gray88] [s=0.88] \definecolor [grey88] [gray88] \definecolor [gray89] [s=0.89] \definecolor [grey89] [gray89] \definecolor [gray90] [s=0.90] \definecolor [grey90] [gray90] \definecolor [gray91] [s=0.91] \definecolor [grey91] [gray91] \definecolor [gray92] [s=0.92] \definecolor [grey92] [gray92] \definecolor [gray93] [s=0.93] \definecolor [grey93] [gray93] \definecolor [gray94] [s=0.94] \definecolor [grey94] [gray94] \definecolor [gray95] [s=0.95] \definecolor [grey95] [gray95] \definecolor [gray96] [s=0.96] \definecolor [grey96] [gray96] \definecolor [gray97] [s=0.97] \definecolor [grey97] [gray97] \definecolor [gray98] [s=0.98] \definecolor [grey98] [gray98] \definecolor [gray99] [s=0.99] \definecolor [grey99] [gray99] \definecolor [gray100] [s=1.00] \definecolor [grey100] [gray100] \definecolor [darkgrey] [s=0.66] \definecolor [darkgray] [darkgrey] \definecolor [darkblue] [h=00008b] \definecolor [darkcyan] [h=008b8b] \definecolor [darkmagenta] [h=8b008b] \definecolor [darkred] [h=8b0000] \definecolor [lightgreen] [h=90ee90] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-pfr.mkii0000644000175000017500000002334314536300610024671 0ustar hillehille%D \module %D [ file=enco-pfr, %D version=2000.12.10, % adapted 2005.08.14 to more delayed loading %D title=\CONTEXT\ Encoding Macros, %D subtitle=PDF Resources, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \ifnum\texengine>\pdftexengine \expandafter \endinput \fi \ifdefined\pdffontresource \else \expandafter \endinput \fi \writestatus{loading}{ConTeXt Encoding Macros / PDF Resources} %D This is an experimental module in which we implement %D font resource inclusion in \PDF. One reason to include %D font resources is that it enables a search engine to %D perform a search (I'm told). This feature ws requested by %D Petr Ferdus from Czech. %D A simple test file may look like this (watch how we first %D load the encoding and then the font; previous font %D definitions are left untouched.) %D %D \starttyping %D % output=pdftex interface=en %D %D \useencoding[pfr] %D \setupbodyfont[csr] %D %D \starttext %D test \`z \'z \bf test \sl test \bs quite funny \`z \page %D test \`z \'z \bf test \sl test \bs quite funny \`z \page %D \stoptext %D \stoptyping %D %D We do our best to include a (often large) font resources %D only once. The current implementation is not that %D general which is also due to the fact that \type %D {\pdffontattr} is expanded instantly and persistent. A %D more versatile (but also slower) approach is to keep track %D of the fonts and either flush the information at shipout %D time, or at the end of the document. %D \macros %D {ifincludepdffontresources} %D %D You can turn of this feature using the following switch. \newif\ifincludepdffontresources \includepdffontresourcestrue \ifx\pdfglyphtounicode\undefined \else \appendtoks \doif\jobsuffix{pdf}{\readfile{pdfr-def.mkii}\donothing\donothing}% \to \everystarttext \fi % somehow we cannot preload this beast; also, it's mk dependent % % \appendtoks % \doifelse{\jobsuffix}{pdf}{\loadmkiifile{pdfr-def.mkii}}% % \to \everystarttext % ugly, this should go to the driver spec-tpd \ifx\pdfgentounicode\undefined \else \ifcase\pdfgentounicode \else \expandafter \expandafter \expandafter \endinput \fi \fi \unprotect % a problem is that there is always an ec vector added even when % we switch to texnansi early; this has to do with the fact that % we need to setup fonts at startup; this a pain when we have % textless documents, so we should have a way around, i.e. an % extension to pdftex where we can tag numbers inside user specs % and attributes. % % currently we need to use immediate so we end up with entries %D The name of the resource is stored in a macro, as is its %D object reference. A resource is only processed once. When %D done, the resource name is erased, and we use this fact to %D prevent redefinition as well as well as reloading. So, a %D macro defined with \type {\pdffontfileresource} can have %D three states: %D %D \startitemize[packed] %D \item undefined: not yet loaded, and not yet included %D \item some value: loaded, but not yet included %D \item empty: loaded, and already included %D \stopitemize \def\pdffontresource {pdfr:\currentencoding} \def\pdffontfileresource{pdff:\pdffontresource} %D A resource is defined in a file prefixed by \type {pdfr-}. %D The following \PDF\ code is composed by Ondrej Koala Vacha (I %D probably mispelled this name). %D %D \starttyping %D \startpdffontresource[il2] %D /CIDInit /ProcSet findresource begin %D 12 dict begin %D begincmap %D /CIDSystemInfo %D << /Registry (Adobe) %D /Ordering (T1UV) %D /Supplement 0 %D >> def %D /CMapName /Adobe-Identity-UCS def %D /CMapType 1 def %D 1 begincodespacerange %D <00> %D endcodespacerange %D %%FontSpecificEncoding %D 191 beginbfrange %D <20> <20> <0020> % space dec: 32 oct:040 hex:20 %D .... .... ...... . ........ .... .. ....... ...... %D <00ff> % dotaccent dec:255 oct:377 hex:ff %D endbfrange %D endcmap %D CMapName currentdict /CMap defineresource pop end %D end %D \stoppdffontresource %D \stoptyping %D %D We don't preload such huge definitions, and process them %D run||time to save memory. Therefore, in the encoding %D vector, we only add an entry like: %D %D \starttyping %D \startencoding [il2] %D \usepdffontresource il2 %D \stopencoding %D \stoptyping %D %D This macro is defined as follows. \def\usepdffontresource #1 % {\doifundefinedelse\pdffontfileresource % okay, undefined, so either {\setxvalue\pdffontfileresource{#1}} % brand new, or not yet loaded {\doifvaluesomething\pdffontfileresource % only if not loaded in which {\setxvalue\pdffontfileresource{#1}}}} % case it's made empty %D Watch how we check for duplicated loading. The resource %D itself, when asked for, is included immediately, after which %D we save its reference. Normally a document will have one %D such a resource. % \long\def\startpdffontresource[#1]#2\stoppdffontresource % {\doif{#1}\currentencoding % {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}} % alternatively we can use object references % fails when we switch back and forward between dvi/pdf mode % % \long\def\startpdffontresource[#1]#2\stoppdffontresource % {\doif{#1}\currentencoding{\doifdefined\pdffontresource % {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}} \long\def\startpdffontresource[#1]#2\stoppdffontresource {\doif{#1}\currentencoding{\doifdefined\pdffontresource {\expanded{\doshipoutpdffontresource{\getvalue{\pdffontresource}}{#2}}}}} \def\doshipoutpdffontresource#1#2% {\ifnum\realpageno<\plustwo \doglobal\appendtoks \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi \to\everyfirstshipout \else \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi \fi} % cleaner but not better: % % \newtoks \collectedpdffontresources % % \def\doshipoutpdffontresource#1#2% % {\doglobal\appendtoks % \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi % \to \collectedpdffontresources} % % \def\dofluspdffontresources % {\the\collectedpdffontresources % \global\collectedpdffontresources\emptytoks} % % \appendtoks \dofluspdffontresources \to \everybeforeshipout %D The reference to such a vector is to be handled at font %D definition time, which is why we hook it into the font %D loading routine. A little bit of indirectness speeds up %D the process when this feature is disabled and keeps the %D macros readable. % \newevery \everyfont \relax \appendtoksonce \includepdffontresource \to \everyfont % \def\includepdffontresource % {\ifincludepdffontresources % \ifx\pdffontattr\undefined % % we're not using (a recent version of) pdftex % \else\ifcase\pdfoutput % % we're not in pdf mode % \else % \doincludepdffontresource % \fi\fi % \fi} \def\includepdffontresource {\ifx\pdfgentounicode\undefined \expandafter\ifx\the\font\nullfont \else \ifx\pdffontattr\undefined % we're not using (a recent version of) pdftex \else\ifcase\pdfoutput % we're not in pdf mode \else \doincludepdffontresource \fi\fi \fi \else\ifcase\pdfgentounicode \ifincludepdffontresources \expandafter\ifx\the\font\nullfont \else \ifx\pdffontattr\undefined % we're not using (a recent version of) pdftex \else\ifcase\pdfoutput % we're not in pdf mode \else \doincludepdffontresource \fi\fi \fi \fi \or \global\let\includepdffontresource\relax % automatic, built in \fi\fi} \def\dododoincludepdffontresource#1% encoding {\bgroup \edef\currentencoding{#1}% \doifvaluesomething\pdffontfileresource {\startreadingfile \ignorelines % just in case \par is redefined; this thing can get called anywhere \readsysfile{pdfr-\getvalue\pdffontfileresource.mkii}\donothing\donothing \stopreadingfile \letgvalue\pdffontfileresource\empty}% \egroup} \def\doincludepdffontresource {\ifcsname\s!ucmap\fontfile\endcsname\else \dodoincludepdffontresource \fi} \def\dodoincludepdffontresource {% does this font has an encoding specified vector \doifsomething\currentencoding % no \ifx {% is there a pdf font encoding resource file defined \ifcsname\pdffontresource\endcsname % (fake) object defined \else\ifcsname\pdffontfileresource\endcsname % is there a resource already included \doifsomething\pdffontfileresource {\pdfobj reserveobjnum {}% \setxvalue\pdffontresource{\the\pdflastobj}% \flushatshipout{\dododoincludepdffontresource{\currentencoding}}}% % \doglobal\appendetoks % \noexpand\dododoincludepdffontresource{\currentencoding}% % \to \everybeforeshipout}% prevent multiple loading \fi\fi \ifcsname\pdffontresource\endcsname \expanded{\pdffontattr\font{/ToUnicode \csname\pdffontresource\endcsname\space0 R}}% % do it only once for each font \letgvalue{\s!ucmap\fontfile}\empty \fi}} %D For the moment, we keep this definition here, if only %D because \type {\usepdffontencoding} is not defined in the %D core. In the end, this will go to \type {enco-*.tex}. %D %D Test: %D %D \starttyping %D \useencoding[pfr] \usetypescript[palatino][ec] \setupbodyfont[palatino] %D %D \starttext %D fi ff ffi %D \stoptext %D \stoptyping \startencoding [il2] \usepdffontresource il2 \stopencoding \startencoding [ec] \usepdffontresource ec \stopencoding \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-spa.mkii0000644000175000017500000000503114536300610024654 0ustar hillehille%D \module %D [ file=lang-spa, %D version=2002.04.17, %D title=\CONTEXT\ Language Macros, %D subtitle=Spacing, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Spacing} %D This module was created in the process of enhancing %D support for French (with the help of Daniel Flipo). \unprotect \definehspace [\s!fr] [quotation] [\flexiblespaceamount{.8}{.3}{.8}] \definehspace [\s!fr] [sentence] [\fixedspaceamount{1}] %definehspace [\s!fr] [quote] [\flexiblespaceamount{.8}{.3}{.8}] %definehspace [\s!fr] [speech] [\flexiblespaceamount{.8}{.3}{.8}] \definehspace [\s!fr] [interquotation] [\zeropoint] \definehspace [\s!fr] [intersentence] [\zeropoint] \definehspace [\string :] [\zeropoint] \definehspace [\string ;] [\zeropoint] \definehspace [\string !] [\zeropoint] \definehspace [\string ?] [\zeropoint] \definehspace [\s!fr] [\string :] [\spaceamount] \definehspace [\s!fr] [\string ;] [.16667em] \definehspace [\s!fr] [\string !] [.16667em] \definehspace [\s!fr] [\string ?] [.16667em] %D Alternative discretionary handlers: \definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{:}:} \definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{;};} \definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{?}?} \definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{!}!} %D \startbuffer %D \mainlanguage[en] \quotation{test \quotation{test} test}\par %D \mainlanguage[nl] \quotation{test \quotation{test} test}\par %D \mainlanguage[fr] \quotation{test \quotation{test} test}\par %D %D \mainlanguage[en] \quotation{\quotation{test} test}\par %D \mainlanguage[nl] \quotation{\quotation{test} test}\par %D \mainlanguage[fr] \quotation{\quotation{test} test}\par %D %D \mainlanguage[en] |<|test |<|test|>| test|>| \par %D \mainlanguage[nl] |<|test |<|test|>| test|>| \par %D \mainlanguage[fr] |<|test |<|test|>| test|>| \par %D %D \mainlanguage[en] |<||<|test|>| test|>| \par %D \mainlanguage[nl] |<||<|test|>| test|>| \par %D \mainlanguage[fr] |<||<|test|>| test|>| \par %D \stopbuffer %D %D \typebuffer {\getbuffer} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-de.mkii0000644000175000017500000032476514567411714024557 0ustar hillehille% this file is auto-generated, don't edit this file % % definitions for interface variables for language de % \setinterfacevariable{Addition}{Zusatz} \setinterfacevariable{Alphabetic}{Alphabetic} \setinterfacevariable{Balloon}{Ballon} \setinterfacevariable{Camel}{Camel} \setinterfacevariable{Cap}{Kap} \setinterfacevariable{Capital}{Versalien} \setinterfacevariable{Character}{Buchstabe} \setinterfacevariable{Characters}{Buchstaben} \setinterfacevariable{CloseDocument}{SchliesseDokument} \setinterfacevariable{ExitViewer}{BeendeViewer} \setinterfacevariable{FirstPage}{ErsteSeite} \setinterfacevariable{FitHeight}{HoehePassend} \setinterfacevariable{FitWidth}{BreitePassend} \setinterfacevariable{GotoPage}{GotoPage} \setinterfacevariable{Greek}{Griechisch} \setinterfacevariable{Help}{Hilfe} \setinterfacevariable{HideField}{VerbergeFeld} \setinterfacevariable{HideLayer}{HideLayer} \setinterfacevariable{Key}{Schluessel} \setinterfacevariable{LastPage}{LetzteSeite} \setinterfacevariable{LoadForm}{LadeFormular} \setinterfacevariable{MONTH}{MONAT} \setinterfacevariable{New}{Neu} \setinterfacevariable{NextJump}{NaechsterSprung} \setinterfacevariable{NextPage}{FolgendeSeite} \setinterfacevariable{Numbers}{Ziffern} \setinterfacevariable{OpenNamedDocument}{OpenNamedDocument} \setinterfacevariable{Ordinal}{Ordinal} \setinterfacevariable{Paragraph}{Absatz} \setinterfacevariable{PauseMovie}{PauseFilm} \setinterfacevariable{PauseRendering}{PauseRendering} \setinterfacevariable{PauseSound}{PauseSound} \setinterfacevariable{PreviousJump}{VorigerSprung} \setinterfacevariable{PreviousPage}{VorigeSeite} \setinterfacevariable{PrintDocument}{DruckeDokument} \setinterfacevariable{Query}{Query} \setinterfacevariable{QueryAgain}{QueryAgain} \setinterfacevariable{ResetForm}{ZuruecksetzenFormular} \setinterfacevariable{ResumeMovie}{FortsetzenFilm} \setinterfacevariable{ResumeRendering}{ResumeRendering} \setinterfacevariable{ResumeSound}{ResumeSound} \setinterfacevariable{Romannumerals}{Roemischezahlen} \setinterfacevariable{SaveDocument}{SpeichereDokument} \setinterfacevariable{SaveForm}{SpeicheFormular} \setinterfacevariable{SaveNamedDocument}{SaveNamedDocument} \setinterfacevariable{SearchAgain}{WeiterSuchen} \setinterfacevariable{SearchDocument}{DokumentDurchsuchen} \setinterfacevariable{ShowBookmarks}{ShowBookmarks} \setinterfacevariable{ShowField}{ZeigeFeld} \setinterfacevariable{ShowThumbs}{ShowThumbs} \setinterfacevariable{StartMovie}{StartFilm} \setinterfacevariable{StartRendering}{StartRendering} \setinterfacevariable{StartSound}{StartSound} \setinterfacevariable{StopMovie}{StopFilm} \setinterfacevariable{StopRendering}{StopRendering} \setinterfacevariable{StopSound}{StopSound} \setinterfacevariable{SubmitForm}{VersendeFormular} \setinterfacevariable{ToggleLayer}{ToggleLayer} \setinterfacevariable{ToggleViewer}{WechseleViewer} \setinterfacevariable{URL}{URL} \setinterfacevariable{VideLayer}{VideLayer} \setinterfacevariable{ViewerHelp}{ViewerHilfe} \setinterfacevariable{WEEKDAY}{WOCHENTAG} \setinterfacevariable{WORD}{WORT} \setinterfacevariable{WORDS}{WOERTER} \setinterfacevariable{Word}{Wort} \setinterfacevariable{Words}{Woerter} \setinterfacevariable{abbreviation}{abkuerzung} \setinterfacevariable{abbreviations}{abkuerzungen} \setinterfacevariable{absolute}{absolut} \setinterfacevariable{action}{aktion} \setinterfacevariable{after}{nach} \setinterfacevariable{all}{alles} \setinterfacevariable{alphabetic}{alphabetic} \setinterfacevariable{always}{immer} \setinterfacevariable{anchor}{anchor} \setinterfacevariable{and}{und} \setinterfacevariable{answerarea}{answerarea} \setinterfacevariable{append}{append} \setinterfacevariable{appendices}{anhaenge} \setinterfacevariable{appendix}{anhang} \setinterfacevariable{april}{april} \setinterfacevariable{aside}{aside} \setinterfacevariable{atleftmargin}{atleftmargin} \setinterfacevariable{atmargin}{amrand} \setinterfacevariable{atpage}{aufseite} \setinterfacevariable{atrightmargin}{atrightmargin} \setinterfacevariable{attachment}{attachment} \setinterfacevariable{august}{august} \setinterfacevariable{author}{autor} \setinterfacevariable{auto}{auto} \setinterfacevariable{autointro}{autointro} \setinterfacevariable{back}{zurueck} \setinterfacevariable{background}{hintergrund} \setinterfacevariable{backmatter}{epiloge} \setinterfacevariable{backpart}{epilog} \setinterfacevariable{backspace}{rumpfspatium} \setinterfacevariable{backward}{rueckwaerts} \setinterfacevariable{bbl}{bbl} \setinterfacevariable{before}{vor} \setinterfacevariable{begin}{begin} \setinterfacevariable{bib}{bib} \setinterfacevariable{big}{gross} \setinterfacevariable{bigbodyfont}{bigbodyfont} \setinterfacevariable{bigger}{bigger} \setinterfacevariable{bigpreference}{grosszuegig} \setinterfacevariable{blank}{blanko} \setinterfacevariable{block}{block} \setinterfacevariable{blockquote}{blockquote} \setinterfacevariable{bodymatter}{haupttexte} \setinterfacevariable{bodypart}{haupttext} \setinterfacevariable{bold}{fett} \setinterfacevariable{bolditalic}{fettitalic} \setinterfacevariable{boldslanted}{fettgeneigt} \setinterfacevariable{bookmark}{bookmark} \setinterfacevariable{both}{beide} \setinterfacevariable{bothtext}{bothtext} \setinterfacevariable{bottom}{unten} \setinterfacevariable{box}{box} \setinterfacevariable{brief}{brief} \setinterfacevariable{broad}{breit} \setinterfacevariable{buffer}{puffer} \setinterfacevariable{by}{pro} \setinterfacevariable{calligraphic}{kalligraphie} \setinterfacevariable{camel}{camel} \setinterfacevariable{cap}{kap} \setinterfacevariable{capital}{versalien} \setinterfacevariable{category}{category} \setinterfacevariable{cd:character}{cd:character} \setinterfacevariable{cd:font}{cd:font} \setinterfacevariable{center}{center} \setinterfacevariable{centerlast}{centerlast} \setinterfacevariable{chapter}{kapitel} \setinterfacevariable{character}{buchstabe} \setinterfacevariable{characters}{buchstaben} \setinterfacevariable{chemical}{chemical} \setinterfacevariable{chemicals}{chemicals} \setinterfacevariable{chemistry}{chemistry} \setinterfacevariable{cite}{cite} \setinterfacevariable{closed}{closed} \setinterfacevariable{collapsed}{collapsed} \setinterfacevariable{color}{farbe} \setinterfacevariable{column}{column} \setinterfacevariable{columns}{spalten} \setinterfacevariable{combination}{combination} \setinterfacevariable{command}{befehl} \setinterfacevariable{commands}{befehle} \setinterfacevariable{comment}{kommentar} \setinterfacevariable{component}{komponente} \setinterfacevariable{compress}{compress} \setinterfacevariable{compressseparator}{compressseparator} \setinterfacevariable{compressstopper}{compressstopper} \setinterfacevariable{concept}{konzept} \setinterfacevariable{construction}{construction} \setinterfacevariable{content}{inhalt} \setinterfacevariable{contents}{inhalte} \setinterfacevariable{continue}{fortsetzten} \setinterfacevariable{continued}{continued} \setinterfacevariable{controls}{controls} \setinterfacevariable{conversion}{konversion} \setinterfacevariable{current}{aktuell} \setinterfacevariable{cutspace}{cutspace} \setinterfacevariable{dataset}{dataset} \setinterfacevariable{date}{datum} \setinterfacevariable{day}{tag} \setinterfacevariable{december}{dezember} \setinterfacevariable{default}{default} \setinterfacevariable{depth}{tiefe} \setinterfacevariable{description}{beschreibung} \setinterfacevariable{disable}{sperren} \setinterfacevariable{display}{bildschirm} \setinterfacevariable{document}{document} \setinterfacevariable{dot}{punkt} \setinterfacevariable{doublesided}{doppelseitig} \setinterfacevariable{down}{down} \setinterfacevariable{each}{jede} \setinterfacevariable{edge}{kante} \setinterfacevariable{effective}{effective} \setinterfacevariable{eight}{acht} \setinterfacevariable{embed}{embed} \setinterfacevariable{empty}{leer} \setinterfacevariable{enable}{enable} \setinterfacevariable{end}{end} \setinterfacevariable{endnote}{endnote} \setinterfacevariable{enumeration}{nummerierung} \setinterfacevariable{environment}{umgebung} \setinterfacevariable{even}{gerade} \setinterfacevariable{explicit}{explicit} \setinterfacevariable{export}{export} \setinterfacevariable{external}{extern} \setinterfacevariable{extremestretch}{extremestretch} \setinterfacevariable{fact}{gegeben} \setinterfacevariable{fallback}{fallback} \setinterfacevariable{february}{februar} \setinterfacevariable{field}{field} \setinterfacevariable{figure}{abbildung} \setinterfacevariable{figures}{abbildungen} \setinterfacevariable{file}{datei} \setinterfacevariable{final}{endfassung} \setinterfacevariable{first}{erste} \setinterfacevariable{firstcolumn}{firstcolumn} \setinterfacevariable{firstpage}{ersteseite} \setinterfacevariable{firstsubpage}{ersteunterseite} \setinterfacevariable{fit}{passend} \setinterfacevariable{five}{fuenf} \setinterfacevariable{fix}{stellewiederher} \setinterfacevariable{fixed}{fest} \setinterfacevariable{flexible}{flexibel} \setinterfacevariable{float}{gleitobjekt} \setinterfacevariable{flushbackward}{flushbackward} \setinterfacevariable{flushforward}{flushforward} \setinterfacevariable{flushinner}{flushinner} \setinterfacevariable{flushleft}{flushleft} \setinterfacevariable{flushouter}{flushouter} \setinterfacevariable{flushright}{flushright} \setinterfacevariable{followingpage}{followingpage} \setinterfacevariable{font}{font} \setinterfacevariable{footer}{fusszeile} \setinterfacevariable{footnote}{fussnote} \setinterfacevariable{force}{zwinge} \setinterfacevariable{foreground}{vordergrund} \setinterfacevariable{formula}{formel} \setinterfacevariable{formulas}{formeln} \setinterfacevariable{forward}{vorwaerts} \setinterfacevariable{four}{vier} \setinterfacevariable{fractions}{fractions} \setinterfacevariable{frame}{rahmen} \setinterfacevariable{framedtext}{umrahmtertext} \setinterfacevariable{friday}{freitag} \setinterfacevariable{frontmatter}{einleitungen} \setinterfacevariable{frontpart}{einleitung} \setinterfacevariable{fullhz}{fullhz} \setinterfacevariable{global}{global} \setinterfacevariable{granular}{granular} \setinterfacevariable{graphic}{grafik} \setinterfacevariable{graphics}{grafiken} \setinterfacevariable{gray}{grau} \setinterfacevariable{greek}{griechisch} \setinterfacevariable{grid}{gritter} \setinterfacevariable{halfline}{halbezeile} \setinterfacevariable{handwritten}{handschrift} \setinterfacevariable{hang}{haengend} \setinterfacevariable{hanging}{haengend} \setinterfacevariable{hangingboth}{hangingboth} \setinterfacevariable{hangleft}{hangleft} \setinterfacevariable{hangright}{hangright} \setinterfacevariable{head}{kopf} \setinterfacevariable{header}{kopfzeile} \setinterfacevariable{headintext}{headintext} \setinterfacevariable{height}{hoehe} \setinterfacevariable{helptext}{hilfetext} \setinterfacevariable{hencefore}{vorher} \setinterfacevariable{here}{hier} \setinterfacevariable{hereafter}{nachher} \setinterfacevariable{hidden}{versteckt} \setinterfacevariable{hiddenbar}{hiddenbar} \setinterfacevariable{hiding}{verbergen} \setinterfacevariable{high}{hoch} \setinterfacevariable{horizontal}{horizontal} \setinterfacevariable{hyphenated}{hyphenate} \setinterfacevariable{hz}{hz} \setinterfacevariable{inbetween}{zwischen} \setinterfacevariable{index}{index} \setinterfacevariable{indices}{indizies} \setinterfacevariable{inherit}{inherit} \setinterfacevariable{ininner}{ininner} \setinterfacevariable{ininneredge}{ininneredge} \setinterfacevariable{ininnermargin}{ininnermargin} \setinterfacevariable{inleft}{imlinken} \setinterfacevariable{inleftedge}{imlinkenrand} \setinterfacevariable{inleftmargin}{inlinkermarginale} \setinterfacevariable{inline}{inline} \setinterfacevariable{inmargin}{imrand} \setinterfacevariable{inner}{innen} \setinterfacevariable{inneredge}{inneredge} \setinterfacevariable{innermargin}{innermargin} \setinterfacevariable{inother}{inother} \setinterfacevariable{inouter}{inouter} \setinterfacevariable{inouteredge}{inouteredge} \setinterfacevariable{inoutermargin}{inoutermargin} \setinterfacevariable{inright}{imrechten} \setinterfacevariable{inrightedge}{imrechtenrand} \setinterfacevariable{inrightmargin}{inrechtermarginale} \setinterfacevariable{interaction}{interaktion} \setinterfacevariable{interactionmenu}{interaktionsmenue} \setinterfacevariable{interactive}{interactive} \setinterfacevariable{intermezzi}{intermezzi} \setinterfacevariable{intermezzo}{intermezzo} \setinterfacevariable{intext}{imtext} \setinterfacevariable{intro}{intro} \setinterfacevariable{invertedshort}{invertedshort} \setinterfacevariable{italic}{italic} \setinterfacevariable{italicbold}{italicfett} \setinterfacevariable{item}{pos} \setinterfacevariable{itemize}{aufzaehlung} \setinterfacevariable{its}{its} \setinterfacevariable{january}{januar} \setinterfacevariable{joinedup}{keinabstand} \setinterfacevariable{july}{juli} \setinterfacevariable{june}{juni} \setinterfacevariable{keep}{behalte} \setinterfacevariable{keeptogether}{keeptogether} \setinterfacevariable{kerncharacters}{kerncharacters} \setinterfacevariable{knockout}{knockout} \setinterfacevariable{label}{label} \setinterfacevariable{landscape}{querformat} \setinterfacevariable{last}{letzte} \setinterfacevariable{lastcolumn}{lastcolumn} \setinterfacevariable{lastpage}{letzteseite} \setinterfacevariable{lastpagenumber}{lastpagenumber} \setinterfacevariable{lastsubpage}{letzteunterseite} \setinterfacevariable{layer}{layer} \setinterfacevariable{left}{links} \setinterfacevariable{leftedge}{linkekante} \setinterfacevariable{lefthanging}{lefthanging} \setinterfacevariable{leftmargin}{linkerrand} \setinterfacevariable{leftpage}{linkerseite} \setinterfacevariable{lefttext}{linkertext} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legende} \setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{letterspacing}{letterspacing} \setinterfacevariable{limit}{limit} \setinterfacevariable{line}{zeile} \setinterfacevariable{linenote}{linenote} \setinterfacevariable{lines}{zeilen} \setinterfacevariable{linked}{linked} \setinterfacevariable{list}{liste} \setinterfacevariable{local}{lokal} \setinterfacevariable{localenvironment}{lokaleumgebung} \setinterfacevariable{logo}{logo} \setinterfacevariable{logos}{logos} \setinterfacevariable{lohi}{hoti} \setinterfacevariable{long}{long} \setinterfacevariable{loose}{lose} \setinterfacevariable{low}{tief} \setinterfacevariable{ls}{ls} \setinterfacevariable{makeup}{umbruch} \setinterfacevariable{mar}{mar} \setinterfacevariable{march}{maerz} \setinterfacevariable{margin}{marginalie} \setinterfacevariable{marginedge}{marginalkante} \setinterfacevariable{margintext}{marginaltext} \setinterfacevariable{margintitle}{marginaltitel} \setinterfacevariable{marking}{beschriftung} \setinterfacevariable{math}{math} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathematics}{mathematik} \setinterfacevariable{mathmatrix}{mathmatrix} \setinterfacevariable{mathnote}{mathnote} \setinterfacevariable{max}{max} \setinterfacevariable{maxdepth}{maxdepth} \setinterfacevariable{maxheight}{maxheight} \setinterfacevariable{maxwidth}{maxwidth} \setinterfacevariable{may}{mai} \setinterfacevariable{mediaeval}{mittelalterlich} \setinterfacevariable{medium}{mittel} \setinterfacevariable{middle}{mittig} \setinterfacevariable{min}{min} \setinterfacevariable{mindepth}{mindepth} \setinterfacevariable{minheight}{minhoehe} \setinterfacevariable{minwidth}{minbreite} \setinterfacevariable{mirrored}{gespiegelt} \setinterfacevariable{mixed}{mixed} \setinterfacevariable{monday}{montag} \setinterfacevariable{mono}{mono} \setinterfacevariable{monobold}{monofett} \setinterfacevariable{mononormal}{mononormal} \setinterfacevariable{month}{monat} \setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{name} \setinterfacevariable{narrow}{schmall} \setinterfacevariable{negative}{negativ} \setinterfacevariable{never}{nie} \setinterfacevariable{new}{neu} \setinterfacevariable{next}{folgende} \setinterfacevariable{nextevenpage}{naechstegeradeseite} \setinterfacevariable{nextoddpage}{naechsteungeradeseite} \setinterfacevariable{nextpage}{folgendeseite} \setinterfacevariable{nextsubpage}{folgendeunterseite} \setinterfacevariable{nine}{neun} \setinterfacevariable{no}{nein} \setinterfacevariable{nocheck}{nocheck} \setinterfacevariable{nodepth}{nodepth} \setinterfacevariable{nofit}{nofit} \setinterfacevariable{nogrid}{nogrid} \setinterfacevariable{noheight}{noheight} \setinterfacevariable{nohz}{nohz} \setinterfacevariable{noline}{noline} \setinterfacevariable{nomarking}{keinebeschriftung} \setinterfacevariable{nomenubar}{nomenubar} \setinterfacevariable{none}{kein} \setinterfacevariable{nonumber}{nonumber} \setinterfacevariable{norepeat}{norepeat} \setinterfacevariable{normal}{normal} \setinterfacevariable{normalshort}{normalshort} \setinterfacevariable{nospacing}{nospacing} \setinterfacevariable{nostopper}{nostopper} \setinterfacevariable{not}{nicht} \setinterfacevariable{notation}{notation} \setinterfacevariable{notcollapsed}{notcollapsed} \setinterfacevariable{note}{note} \setinterfacevariable{nothanging}{nothanging} \setinterfacevariable{nothyphenated}{nothyphenated} \setinterfacevariable{notjoinedup}{notjoinedup} \setinterfacevariable{november}{november} \setinterfacevariable{nowhere}{nirgens} \setinterfacevariable{nowhite}{keinweiss} \setinterfacevariable{number}{nummer} \setinterfacevariable{numbers}{ziffern} \setinterfacevariable{october}{oktober} \setinterfacevariable{odd}{ungerade} \setinterfacevariable{off}{aus} \setinterfacevariable{offset}{offset} \setinterfacevariable{old}{old} \setinterfacevariable{oldstyle}{oldstyle} \setinterfacevariable{on}{an} \setinterfacevariable{one}{eins} \setinterfacevariable{opposite}{gegenueber} \setinterfacevariable{ordinal}{ordinal} \setinterfacevariable{outer}{aussen} \setinterfacevariable{outeredge}{outeredge} \setinterfacevariable{outermargin}{outermargin} \setinterfacevariable{outline}{outline} \setinterfacevariable{outlined}{outlined} \setinterfacevariable{overbar}{ueberstrichen} \setinterfacevariable{overbars}{ueberstreichen} \setinterfacevariable{overlay}{overlay} \setinterfacevariable{overprint}{overprint} \setinterfacevariable{overstrike}{durchgestrichen} \setinterfacevariable{overstrikes}{durchstreichen} \setinterfacevariable{packed}{gepackt} \setinterfacevariable{page}{seite} \setinterfacevariable{pagecomment}{pagecomment} \setinterfacevariable{pagenumber}{seitennummer} \setinterfacevariable{paper}{papier} \setinterfacevariable{paragraph}{absatz} \setinterfacevariable{part}{teil} \setinterfacevariable{positive}{positiv} \setinterfacevariable{postponing}{verschieben} \setinterfacevariable{postscript}{postscript} \setinterfacevariable{precedingpage}{precedingpage} \setinterfacevariable{preference}{einstellung} \setinterfacevariable{prepend}{prepend} \setinterfacevariable{preview}{vorschau} \setinterfacevariable{previous}{vorig} \setinterfacevariable{previousevenpage}{vorigegeradeseite} \setinterfacevariable{previousoddpage}{vorigeungeradeseite} \setinterfacevariable{previouspage}{vorigeseite} \setinterfacevariable{previoussubpage}{vorigeunterseite} \setinterfacevariable{print}{print} \setinterfacevariable{printable}{druckbar} \setinterfacevariable{process}{process} \setinterfacevariable{product}{produkt} \setinterfacevariable{profile}{profile} \setinterfacevariable{program}{programm} \setinterfacevariable{project}{projekt} \setinterfacevariable{protected}{geschuetzt} \setinterfacevariable{quadruple}{viertel} \setinterfacevariable{quarterline}{quarterline} \setinterfacevariable{quotation}{zitat} \setinterfacevariable{quote}{zitieren} \setinterfacevariable{ran}{ran} \setinterfacevariable{random}{zufaellig} \setinterfacevariable{readonly}{nurlesbar} \setinterfacevariable{rectangular}{rechteckig} \setinterfacevariable{reference}{referenz} \setinterfacevariable{referral}{merkmal} \setinterfacevariable{region}{region} \setinterfacevariable{register}{register} \setinterfacevariable{regular}{regular} \setinterfacevariable{relative}{relativ} \setinterfacevariable{repeat}{wiederholen} \setinterfacevariable{required}{obligatorisch} \setinterfacevariable{reset}{zuruecksetzten} \setinterfacevariable{reverse}{reverse} \setinterfacevariable{right}{rechts} \setinterfacevariable{rightedge}{rechterkante} \setinterfacevariable{righthanging}{righthanging} \setinterfacevariable{rightmargin}{rechterrand} \setinterfacevariable{rightpage}{rechterseite} \setinterfacevariable{righttext}{rechtertext} \setinterfacevariable{righttoleft}{righttoleft} \setinterfacevariable{roman}{antiqua} \setinterfacevariable{romannumerals}{roemischezahlen} \setinterfacevariable{rotate}{drehe} \setinterfacevariable{rotated}{gedreht} \setinterfacevariable{round}{rund} \setinterfacevariable{row}{row} \setinterfacevariable{rule}{linie} \setinterfacevariable{samepage}{selbeseite} \setinterfacevariable{sans}{sans} \setinterfacevariable{sansbold}{sansfett} \setinterfacevariable{sansnormal}{sansnormal} \setinterfacevariable{sansserif}{grotesk} \setinterfacevariable{saturday}{samstag} \setinterfacevariable{screen}{raster} \setinterfacevariable{section}{absatz} \setinterfacevariable{sectionblockenvironment}{sectionblockenvironment} \setinterfacevariable{sectionnumber}{abschnittsnummer} \setinterfacevariable{see}{sieh} \setinterfacevariable{selectfont}{selectfont} \setinterfacevariable{separator}{separator} \setinterfacevariable{september}{september} \setinterfacevariable{serif}{serif} \setinterfacevariable{serifbold}{serifbold} \setinterfacevariable{serifnormal}{serifnormal} \setinterfacevariable{serried}{kleinerabstand} \setinterfacevariable{setups}{setups} \setinterfacevariable{seven}{sieben} \setinterfacevariable{sheet}{sheet} \setinterfacevariable{shiftdown}{shiftdown} \setinterfacevariable{shiftup}{shiftup} \setinterfacevariable{short}{kurz} \setinterfacevariable{simplefonts}{simplefonts} \setinterfacevariable{simplelist}{simplelist} \setinterfacevariable{singlesided}{einzelseitig} \setinterfacevariable{six}{sechs} \setinterfacevariable{size}{groesse} \setinterfacevariable{slanted}{geneigt} \setinterfacevariable{slantedbold}{geneigtfett} \setinterfacevariable{small}{klein} \setinterfacevariable{smallbodyfont}{smallbodyfont} \setinterfacevariable{smallbold}{kleinfett} \setinterfacevariable{smallbolditalic}{kleinfettitalic} \setinterfacevariable{smallboldslanted}{kleinfettgeneigt} \setinterfacevariable{smallcaps}{smallcaps} \setinterfacevariable{smaller}{smaller} \setinterfacevariable{smallitalic}{kleinitalic} \setinterfacevariable{smallitalicbold}{kleinitalicfett} \setinterfacevariable{smallnormal}{kleinnormal} \setinterfacevariable{smallslanted}{kleingeneigt} \setinterfacevariable{smallslantedbold}{kleingeneigtfett} \setinterfacevariable{smalltype}{kleintippen} \setinterfacevariable{somewhere}{irgendwo} \setinterfacevariable{sorted}{sortiert} \setinterfacevariable{sorting}{sorting} \setinterfacevariable{space}{spatium} \setinterfacevariable{spacing}{spatiumausgleich} \setinterfacevariable{speech}{speech} \setinterfacevariable{split}{split} \setinterfacevariable{spot}{spot} \setinterfacevariable{spread}{spread} \setinterfacevariable{standard}{standard} \setinterfacevariable{start}{start} \setinterfacevariable{starter}{starter} \setinterfacevariable{sticker}{sticker} \setinterfacevariable{stop}{stop} \setinterfacevariable{stopper}{trenner} \setinterfacevariable{stretch}{strecken} \setinterfacevariable{stretched}{stretched} \setinterfacevariable{strict}{streng} \setinterfacevariable{strong}{strong} \setinterfacevariable{strut}{strut} \setinterfacevariable{sub}{unter} \setinterfacevariable{subbackward}{unterrueckwaerts} \setinterfacevariable{subformula}{subformel} \setinterfacevariable{subforward}{untervorwaerts} \setinterfacevariable{subject}{thema} \setinterfacevariable{subpage}{unterseite} \setinterfacevariable{subs}{subs} \setinterfacevariable{subsection}{unterabsatz} \setinterfacevariable{subsubject}{unterthema} \setinterfacevariable{subsubsection}{unterunterabsatz} \setinterfacevariable{subsubsubject}{unterunterthema} \setinterfacevariable{subsubsubsection}{unterunterunterabsatz} \setinterfacevariable{subsubsubsubject}{unterunterunterthema} \setinterfacevariable{subsubsubsubsection}{unterunterunterunterabsatz} \setinterfacevariable{subsubsubsubsubject}{unterunterunterunterthema} \setinterfacevariable{subsubsubsubsubsection}{unterunterunterunterunterabsatz} \setinterfacevariable{subsubsubsubsubsubject}{unterunterunterunterunterthema} \setinterfacevariable{subsubsubsubsubsubsection}{unterunterunterunterunterunterabsatz} \setinterfacevariable{subsubsubsubsubsubsubject}{unterunterunterunterunterunterthema} \setinterfacevariable{subsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterabsatz} \setinterfacevariable{subsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterthema} \setinterfacevariable{subsubsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterunterabsatz} \setinterfacevariable{subsubsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterunterthema} \setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterunterunterabsatz} \setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterunterunterthema} \setinterfacevariable{sunday}{sonntag} \setinterfacevariable{support}{support} \setinterfacevariable{sym}{sym} \setinterfacevariable{symbol}{symbol} \setinterfacevariable{synchronize}{synchronize} \setinterfacevariable{synonym}{synonym} \setinterfacevariable{system}{systeme} \setinterfacevariable{table}{tabelle} \setinterfacevariable{tablehead}{tabellenueberschrift} \setinterfacevariable{tables}{tabellen} \setinterfacevariable{tabletail}{tabellenende} \setinterfacevariable{tabulate}{tabulator} \setinterfacevariable{tabulatehead}{tabulatehead} \setinterfacevariable{tabulatetail}{tabulatetail} \setinterfacevariable{tall}{lang} \setinterfacevariable{teletype}{fernschreiber} \setinterfacevariable{temporary}{temporaer} \setinterfacevariable{test}{test} \setinterfacevariable{text}{text} \setinterfacevariable{textdisplay}{textdisplay} \setinterfacevariable{textnote}{textnote} \setinterfacevariable{three}{drei} \setinterfacevariable{thursday}{donnerstag} \setinterfacevariable{tight}{tight} \setinterfacevariable{title}{titel} \setinterfacevariable{toggle}{toggle} \setinterfacevariable{tolerant}{tolerant} \setinterfacevariable{top}{oben} \setinterfacevariable{tuesday}{dienstag} \setinterfacevariable{two}{zwei} \setinterfacevariable{txt}{txt} \setinterfacevariable{type}{tippen} \setinterfacevariable{typing}{tippen} \setinterfacevariable{unavailable}{nichtverfuegbar} \setinterfacevariable{underbar}{unterstrichen} \setinterfacevariable{underbars}{unterstreichen} \setinterfacevariable{understrike}{understrike} \setinterfacevariable{understrikes}{understrikes} \setinterfacevariable{unframed}{unframed} \setinterfacevariable{unicode}{unicode} \setinterfacevariable{unit}{einheit} \setinterfacevariable{units}{einheiten} \setinterfacevariable{unknown}{unbekannt} \setinterfacevariable{unpacked}{ungepackt} \setinterfacevariable{up}{up} \setinterfacevariable{url}{url} \setinterfacevariable{used}{verwende} \setinterfacevariable{value}{wert} \setinterfacevariable{vertical}{vertikal} \setinterfacevariable{very}{sehr} \setinterfacevariable{verystrict}{sehrstreng} \setinterfacevariable{verytight}{verytight} \setinterfacevariable{verytolerant}{sehrtolerant} \setinterfacevariable{vfenced}{vfenced} \setinterfacevariable{vulgarfraction}{vulgarfraction} \setinterfacevariable{vz}{vz} \setinterfacevariable{weak}{weak} \setinterfacevariable{wednesday}{mittwoch} \setinterfacevariable{week}{woche} \setinterfacevariable{weekday}{wochentag} \setinterfacevariable{white}{weiss} \setinterfacevariable{wide}{breit} \setinterfacevariable{width}{breite} \setinterfacevariable{word}{wort} \setinterfacevariable{words}{words} \setinterfacevariable{xml}{xml} \setinterfacevariable{year}{jahr} \setinterfacevariable{yes}{ja} % definitions for interface constants for language de % \setinterfaceconstant{action}{aktion} \setinterfaceconstant{adaptive}{adaptive} \setinterfaceconstant{address}{adresse} \setinterfaceconstant{after}{nach} \setinterfaceconstant{afterhead}{nachkopf} \setinterfaceconstant{afterkey}{nachtaste} \setinterfaceconstant{aftersection}{aftersection} \setinterfaceconstant{align}{ausrichtung} \setinterfaceconstant{alignbottom}{alignbottom} \setinterfaceconstant{aligncharacter}{aligncharacter} \setinterfaceconstant{alignmentcharacter}{alignmentcharacter} \setinterfaceconstant{alignmentleftsample}{alignmentleftsample} \setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth} \setinterfaceconstant{alignmentrightsample}{alignmentrightsample} \setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth} \setinterfaceconstant{alignscripts}{alignscripts} \setinterfaceconstant{alignsymbol}{alignsymbol} \setinterfaceconstant{aligntitle}{titelausrichten} \setinterfaceconstant{alternative}{alternative} \setinterfaceconstant{anchor}{anchor} \setinterfaceconstant{anchoring}{anchoring} \setinterfaceconstant{andtext}{andtext} \setinterfaceconstant{apa}{apa} \setinterfaceconstant{arguments}{arguments} \setinterfaceconstant{arrow}{pfeil} \setinterfaceconstant{artauthor}{artauthor} \setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay} \setinterfaceconstant{artauthoretallimit}{artauthoretallimit} \setinterfaceconstant{artauthoretaltext}{artauthoretaltext} \setinterfaceconstant{artoffset}{artoffset} \setinterfaceconstant{at}{bei} \setinterfaceconstant{author}{autor} \setinterfaceconstant{authorconversion}{authorconversion} \setinterfaceconstant{authoretaldisplay}{authoretaldisplay} \setinterfaceconstant{authoretallimit}{authoretallimit} \setinterfaceconstant{authoretaltext}{authoretaltext} \setinterfaceconstant{auto}{auto} \setinterfaceconstant{autocase}{autocase} \setinterfaceconstant{autofencing}{autofencing} \setinterfaceconstant{autofile}{autofile} \setinterfaceconstant{autofocus}{autofocus} \setinterfaceconstant{autohang}{autohang} \setinterfaceconstant{autointervals}{autointervals} \setinterfaceconstant{autonumbers}{autonumbers} \setinterfaceconstant{autopunctuation}{autopunctuation} \setinterfaceconstant{autospacing}{autospacing} \setinterfaceconstant{autostrut}{autostrut} \setinterfaceconstant{autowidth}{autobreite} \setinterfaceconstant{availableheight}{availableheight} \setinterfaceconstant{availablewidth}{availablewidth} \setinterfaceconstant{axis}{achsen} \setinterfaceconstant{background}{hintergrund} \setinterfaceconstant{backgroundcolor}{hintergrundfarbe} \setinterfaceconstant{backgroundcorner}{hintergrundwinkel} \setinterfaceconstant{backgrounddepth}{hintergrundtiefe} \setinterfaceconstant{backgroundoffset}{hintergrundoffset} \setinterfaceconstant{backgroundradius}{hintergrundradius} \setinterfaceconstant{backgroundscreen}{hintergrundraster} \setinterfaceconstant{backreference}{backreference} \setinterfaceconstant{backspace}{rumpfspatium} \setinterfaceconstant{balance}{ausgleichen} \setinterfaceconstant{before}{vor} \setinterfaceconstant{beforehead}{vorkopf} \setinterfaceconstant{beforesection}{beforesection} \setinterfaceconstant{bet}{bet} \setinterfaceconstant{bidi}{bidi} \setinterfaceconstant{big}{gross} \setinterfaceconstant{blank}{blanko} \setinterfaceconstant{bleedoffset}{bleedoffset} \setinterfaceconstant{blockway}{blockauf} \setinterfaceconstant{bodyfont}{fliesstext} \setinterfaceconstant{boffset}{boffset} \setinterfaceconstant{boldfeatures}{boldfeatures} \setinterfaceconstant{boldfont}{boldfont} \setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures} \setinterfaceconstant{bolditalicfont}{bolditalicfont} \setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures} \setinterfaceconstant{boldslantedfont}{boldslantedfont} \setinterfaceconstant{bookmark}{bookmark} \setinterfaceconstant{bottom}{unten} \setinterfaceconstant{bottomafter}{bottomafter} \setinterfaceconstant{bottomalign}{bottomalign} \setinterfaceconstant{bottombefore}{bottombefore} \setinterfaceconstant{bottomcolor}{bottomcolor} \setinterfaceconstant{bottomcommand}{bottomcommand} \setinterfaceconstant{bottomdistance}{abstandunten} \setinterfaceconstant{bottomframe}{untenrahmen} \setinterfaceconstant{bottomoffset}{untenoffset} \setinterfaceconstant{bottomspace}{bottomspace} \setinterfaceconstant{bottomstate}{untenstatus} \setinterfaceconstant{bottomstyle}{bottomstyle} \setinterfaceconstant{break}{break} \setinterfaceconstant{buffer}{buffer} \setinterfaceconstant{cache}{cache} \setinterfaceconstant{calculate}{berechnen} \setinterfaceconstant{category}{category} \setinterfaceconstant{ccommand}{cbefehl} \setinterfaceconstant{character}{character} \setinterfaceconstant{characters}{characters} \setinterfaceconstant{check}{check} \setinterfaceconstant{click}{klick} \setinterfaceconstant{clickin}{klickin} \setinterfaceconstant{clickout}{klickaus} \setinterfaceconstant{clipoffset}{clipoffset} \setinterfaceconstant{closeaction}{schliessenaktion} \setinterfaceconstant{closecommand}{closecommand} \setinterfaceconstant{closepage}{closepage} \setinterfaceconstant{closepageaction}{closepageaction} \setinterfaceconstant{closesymbol}{closesymbol} \setinterfaceconstant{color}{farbe} \setinterfaceconstant{column}{spalte} \setinterfaceconstant{columndistance}{spaltenabstand} \setinterfaceconstant{columns}{spalten} \setinterfaceconstant{comma}{comma} \setinterfaceconstant{command}{befehl} \setinterfaceconstant{commandafter}{zumbefehl} \setinterfaceconstant{commandbefore}{vorbefehl} \setinterfaceconstant{commands}{befehle} \setinterfaceconstant{comment}{comment} \setinterfaceconstant{commentchar}{commentchar} \setinterfaceconstant{commentoffset}{commentoffset} \setinterfaceconstant{compact}{compact} \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} \setinterfaceconstant{compressdistance}{compressdistance} \setinterfaceconstant{compressmethod}{compressmethod} \setinterfaceconstant{compressseparator}{compressseparator} \setinterfaceconstant{compressstopper}{compressstopper} \setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{fortsetzen} \setinterfaceconstant{contrastcolor}{kontrastfarbe} \setinterfaceconstant{controls}{controls} \setinterfaceconstant{conversion}{konversion} \setinterfaceconstant{convertfile}{konvertieredatei} \setinterfaceconstant{copies}{copies} \setinterfaceconstant{corner}{winkel} \setinterfaceconstant{coupling}{verknuepfung} \setinterfaceconstant{couplingway}{verkopplungsart} \setinterfaceconstant{criterium}{kriterium} \setinterfaceconstant{crop}{crop} \setinterfaceconstant{cropoffset}{cropoffset} \setinterfaceconstant{crossreference}{crossreference} \setinterfaceconstant{cssfile}{cssfile} \setinterfaceconstant{current}{aktuell} \setinterfaceconstant{cutspace}{cutspace} \setinterfaceconstant{dash}{strich} \setinterfaceconstant{dat}{dat} \setinterfaceconstant{database}{database} \setinterfaceconstant{dataset}{dataset} \setinterfaceconstant{date}{datum} \setinterfaceconstant{deepnumbercommand}{deepnumbercommand} \setinterfaceconstant{deeptextcommand}{deeptextcommand} \setinterfaceconstant{default}{default} \setinterfaceconstant{defaultheight}{defaultheight} \setinterfaceconstant{defaultwidth}{defaultwidth} \setinterfaceconstant{define}{define} \setinterfaceconstant{delay}{wartezeit} \setinterfaceconstant{depth}{tiefe} \setinterfaceconstant{depthcorrection}{tiefekorrektur} \setinterfaceconstant{direction}{richtung} \setinterfaceconstant{directory}{verzeichnis} \setinterfaceconstant{display}{bildschirm} \setinterfaceconstant{displayfactor}{displayfactor} \setinterfaceconstant{displaythreshold}{displaythreshold} \setinterfaceconstant{distance}{abstand} \setinterfaceconstant{domain}{domain} \setinterfaceconstant{dot}{punkt} \setinterfaceconstant{doublesided}{doppelseitig} \setinterfaceconstant{down}{down} \setinterfaceconstant{dummy}{dummy} \setinterfaceconstant{dx}{dx} \setinterfaceconstant{dy}{dy} \setinterfaceconstant{edge}{kante} \setinterfaceconstant{edgedistance}{kantenabstand} \setinterfaceconstant{editor}{editor} \setinterfaceconstant{editoretaldisplay}{editoretaldisplay} \setinterfaceconstant{editoretallimit}{editoretallimit} \setinterfaceconstant{editoretaltext}{editoretaltext} \setinterfaceconstant{empty}{leer} \setinterfaceconstant{entities}{entities} \setinterfaceconstant{entries}{entries} \setinterfaceconstant{equalheight}{equalheight} \setinterfaceconstant{equalwidth}{equalwidth} \setinterfaceconstant{escape}{escape} \setinterfaceconstant{etaldisplay}{etaldisplay} \setinterfaceconstant{etallimit}{etallimit} \setinterfaceconstant{etaloption}{etaloption} \setinterfaceconstant{etaltext}{etaltext} \setinterfaceconstant{evenmargin}{geraderand} \setinterfaceconstant{exact}{exact} \setinterfaceconstant{exitoffset}{exitoffset} \setinterfaceconstant{expansion}{expansion} \setinterfaceconstant{export}{export} \setinterfaceconstant{extradata}{extradata} \setinterfaceconstant{extras}{extras} \setinterfaceconstant{factor}{faktor} \setinterfaceconstant{fallback}{fallback} \setinterfaceconstant{fallbacks}{fallbacks} \setinterfaceconstant{family}{familie} \setinterfaceconstant{features}{features} \setinterfaceconstant{featureset}{featureset} \setinterfaceconstant{fences}{fences} \setinterfaceconstant{field}{field} \setinterfaceconstant{fieldbackgroundcolor}{feldhintergrundfarbe} \setinterfaceconstant{fieldframecolor}{feldrahmenfarbe} \setinterfaceconstant{fieldlayer}{fieldlayer} \setinterfaceconstant{fieldoffset}{feldoffset} \setinterfaceconstant{file}{datei} \setinterfaceconstant{filler}{filler} \setinterfaceconstant{filter}{filter} \setinterfaceconstant{filtercommand}{filtercommand} \setinterfaceconstant{finalnamesep}{finalnamesep} \setinterfaceconstant{finalpagesep}{finalpagesep} \setinterfaceconstant{finalpubsep}{finalpubsep} \setinterfaceconstant{first}{erste} \setinterfaceconstant{firstnamesep}{firstnamesep} \setinterfaceconstant{firstpage}{ersteseite} \setinterfaceconstant{focus}{focus} \setinterfaceconstant{focusin}{focusin} \setinterfaceconstant{focusoffset}{focusoffset} \setinterfaceconstant{focusout}{focusout} \setinterfaceconstant{font}{font} \setinterfaceconstant{footer}{fusszeile} \setinterfaceconstant{footerdistance}{fusszeilenabstand} \setinterfaceconstant{footerstate}{fusszeilenstatus} \setinterfaceconstant{force}{zwinge} \setinterfaceconstant{foregroundcolor}{foregroundcolor} \setinterfaceconstant{foregroundstyle}{foregroundstyle} \setinterfaceconstant{format}{formatieren} \setinterfaceconstant{fractions}{fractions} \setinterfaceconstant{frame}{rahmen} \setinterfaceconstant{framecolor}{rahmenfarbe} \setinterfaceconstant{framecorner}{rahmenwinkel} \setinterfaceconstant{framedepth}{rahmentiefe} \setinterfaceconstant{frameoffset}{rahmenoffset} \setinterfaceconstant{frameradius}{rahmenradius} \setinterfaceconstant{frames}{umrahmen} \setinterfaceconstant{freeregion}{freeregion} \setinterfaceconstant{freezespacing}{freezespacing} \setinterfaceconstant{from}{von} \setinterfaceconstant{functioncolor}{functioncolor} \setinterfaceconstant{functionstyle}{functionstyle} \setinterfaceconstant{get}{hole} \setinterfaceconstant{global}{global} \setinterfaceconstant{goodies}{goodies} \setinterfaceconstant{grid}{gritter} \setinterfaceconstant{group}{group} \setinterfaceconstant{groupsuffix}{groupsuffix} \setinterfaceconstant{hang}{haengend} \setinterfaceconstant{hcompact}{hcompact} \setinterfaceconstant{headalign}{headalign} \setinterfaceconstant{headcolor}{kopffarbe} \setinterfaceconstant{headcommand}{headcommand} \setinterfaceconstant{headconversion}{headconversion} \setinterfaceconstant{header}{kopfzeile} \setinterfaceconstant{headerdistance}{kopfzeilenabstand} \setinterfaceconstant{headerstate}{kopfzeilenstatus} \setinterfaceconstant{headindenting}{headindenting} \setinterfaceconstant{headlabel}{headlabel} \setinterfaceconstant{headnumber}{kopfnummer} \setinterfaceconstant{headseparator}{headseparator} \setinterfaceconstant{headstyle}{kopfstil} \setinterfaceconstant{height}{hoehe} \setinterfaceconstant{hfactor}{hfaktor} \setinterfaceconstant{hfil}{hfil} \setinterfaceconstant{hidenumber}{hidenumber} \setinterfaceconstant{hoffset}{hoffset} \setinterfaceconstant{horizontal}{horizontal} \setinterfaceconstant{horoffset}{rumpfabstand} \setinterfaceconstant{hyphen}{hyphen} \setinterfaceconstant{hyphens}{hyphens} \setinterfaceconstant{hz}{hz} \setinterfaceconstant{icommand}{ibefehl} \setinterfaceconstant{ignore}{ignore} \setinterfaceconstant{in}{in} \setinterfaceconstant{inbetween}{zwischen} \setinterfaceconstant{increment}{erhoehen} \setinterfaceconstant{incrementnumber}{nummererhoehen} \setinterfaceconstant{indenting}{einziehen} \setinterfaceconstant{indentlist}{indentlist} \setinterfaceconstant{indentnext}{ziehefolgendeein} \setinterfaceconstant{index}{index} \setinterfaceconstant{indicator}{indikator} \setinterfaceconstant{initialsep}{initialsep} \setinterfaceconstant{inlinefactor}{inlinefactor} \setinterfaceconstant{inlinethreshold}{inlinethreshold} \setinterfaceconstant{inner}{innen} \setinterfaceconstant{innermargin}{innermargin} \setinterfaceconstant{inputfile}{inputfile} \setinterfaceconstant{insidesection}{insidesection} \setinterfaceconstant{instance}{instance} \setinterfaceconstant{integral}{integral} \setinterfaceconstant{intent}{intent} \setinterfaceconstant{interaction}{interaktion} \setinterfaceconstant{interlinespace}{zeilenabstande} \setinterfaceconstant{internalgrid}{internalgrid} \setinterfaceconstant{interscriptfactor}{interscriptfactor} \setinterfaceconstant{italicfeatures}{italicfeatures} \setinterfaceconstant{italicfont}{italicfont} \setinterfaceconstant{itemalign}{itemalign} \setinterfaceconstant{items}{posten} \setinterfaceconstant{joiners}{joiners} \setinterfaceconstant{journalconversion}{journalconversion} \setinterfaceconstant{juniorsep}{juniorsep} \setinterfaceconstant{keeptogether}{keeptogether} \setinterfaceconstant{ken}{ken} \setinterfaceconstant{keyexpansion}{keyexpansion} \setinterfaceconstant{keys}{keys} \setinterfaceconstant{keyword}{keyword} \setinterfaceconstant{label}{label} \setinterfaceconstant{labelalternative}{labelalternative} \setinterfaceconstant{labelcolor}{labelcolor} \setinterfaceconstant{labeloffset}{labeloffset} \setinterfaceconstant{labelstyle}{labelstyle} \setinterfaceconstant{language}{language} \setinterfaceconstant{last}{last} \setinterfaceconstant{lastnamesep}{lastnamesep} \setinterfaceconstant{lastpage}{letzteseite} \setinterfaceconstant{lastpagesep}{lastpagesep} \setinterfaceconstant{lastpubsep}{lastpubsep} \setinterfaceconstant{lasttextseparator}{lasttextseparator} \setinterfaceconstant{layout}{layout} \setinterfaceconstant{left}{links} \setinterfaceconstant{leftclass}{leftclass} \setinterfaceconstant{leftcolor}{linkerfarbe} \setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen} \setinterfaceconstant{leftedge}{linkekante} \setinterfaceconstant{leftedgedistance}{linkerkantenabstand} \setinterfaceconstant{leftframe}{linkerrahmen} \setinterfaceconstant{lefthyphen}{lefthyphen} \setinterfaceconstant{leftmargin}{linkerrand} \setinterfaceconstant{leftmargindistance}{linkerrandabstand} \setinterfaceconstant{leftoffset}{linkeroffset} \setinterfaceconstant{leftquotation}{linkerzitat} \setinterfaceconstant{leftquote}{linkerzitieren} \setinterfaceconstant{leftsample}{leftsample} \setinterfaceconstant{leftsentence}{linkersatz} \setinterfaceconstant{leftsource}{leftsource} \setinterfaceconstant{leftspeech}{leftspeech} \setinterfaceconstant{leftstyle}{linkerstil} \setinterfaceconstant{leftsubsentence}{linkersubsatz} \setinterfaceconstant{lefttext}{linkertext} \setinterfaceconstant{leftwidth}{linkerbreite} \setinterfaceconstant{leftwords}{leftwords} \setinterfaceconstant{less}{less} \setinterfaceconstant{level}{niveau} \setinterfaceconstant{levels}{niveaus} \setinterfaceconstant{limit}{limit} \setinterfaceconstant{limitstretch}{limitstretch} \setinterfaceconstant{limittext}{limittext} \setinterfaceconstant{line}{zeile} \setinterfaceconstant{linecorrection}{zeilekorrektur} \setinterfaceconstant{linedirection}{linedirection} \setinterfaceconstant{lines}{zeilen} \setinterfaceconstant{list}{liste} \setinterfaceconstant{listtext}{listtext} \setinterfaceconstant{local}{lokal} \setinterfaceconstant{location}{platz} \setinterfaceconstant{loffset}{loffset} \setinterfaceconstant{logo}{logo} \setinterfaceconstant{logos}{logos} \setinterfaceconstant{marcolor}{beschrfarbe} \setinterfaceconstant{margin}{marginalie} \setinterfaceconstant{margindistance}{marginalabstand} \setinterfaceconstant{marginedge}{marginalkante} \setinterfaceconstant{marginedgetext}{marginalkantetext} \setinterfaceconstant{margintext}{marginaltext} \setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{beschriftung} \setinterfaceconstant{marstyle}{beschrstil} \setinterfaceconstant{mask}{mask} \setinterfaceconstant{mathclass}{mathclass} \setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle} \setinterfaceconstant{mathlimits}{mathlimits} \setinterfaceconstant{mathmeaning}{mathmeaning} \setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle} \setinterfaceconstant{mathstyle}{mathstyle} \setinterfaceconstant{max}{max} \setinterfaceconstant{maxdepth}{maxdepth} \setinterfaceconstant{maxheight}{maxhoehe} \setinterfaceconstant{maxwidth}{maxbreite} \setinterfaceconstant{maybeyear}{maybeyear} \setinterfaceconstant{menu}{menue} \setinterfaceconstant{metadata}{metadata} \setinterfaceconstant{method}{methode} \setinterfaceconstant{middle}{mittig} \setinterfaceconstant{middleclass}{middleclass} \setinterfaceconstant{middlecolor}{middlecolor} \setinterfaceconstant{middlecommand}{middlecommand} \setinterfaceconstant{middlesource}{middlesource} \setinterfaceconstant{middlespeech}{middlespeech} \setinterfaceconstant{middlestyle}{middlestyle} \setinterfaceconstant{middletext}{mittigertext} \setinterfaceconstant{middlewidth}{middlewidth} \setinterfaceconstant{midsentence}{midsentence} \setinterfaceconstant{min}{min} \setinterfaceconstant{mindepth}{mindepth} \setinterfaceconstant{minheight}{minhoehe} \setinterfaceconstant{minwidth}{minbreite} \setinterfaceconstant{moffset}{moffset} \setinterfaceconstant{monthconversion}{monthconversion} \setinterfaceconstant{more}{more} \setinterfaceconstant{mpdepth}{mpdepth} \setinterfaceconstant{mpheight}{mpheight} \setinterfaceconstant{mpoffset}{mpoffset} \setinterfaceconstant{mpwidth}{mpwidth} \setinterfaceconstant{n}{n} \setinterfaceconstant{name}{name} \setinterfaceconstant{namesep}{namesep} \setinterfaceconstant{nbottom}{nunten} \setinterfaceconstant{nc}{nc} \setinterfaceconstant{next}{folgende} \setinterfaceconstant{nextleft}{nextleft} \setinterfaceconstant{nextleftquotation}{nextleftquotation} \setinterfaceconstant{nextright}{nextright} \setinterfaceconstant{nextrightquotation}{nextrightquotation} \setinterfaceconstant{nl}{nl} \setinterfaceconstant{nleft}{nlinks} \setinterfaceconstant{nlines}{zzeile} \setinterfaceconstant{norm}{norm} \setinterfaceconstant{note}{note} \setinterfaceconstant{notes}{notes} \setinterfaceconstant{nr}{nr} \setinterfaceconstant{nright}{nrechts} \setinterfaceconstant{ntop}{noben} \setinterfaceconstant{number}{nummer} \setinterfaceconstant{numberalign}{numberalign} \setinterfaceconstant{numbercolor}{nummernfarbe} \setinterfaceconstant{numbercommand}{nummerbefehl} \setinterfaceconstant{numberconversion}{numberconversion} \setinterfaceconstant{numberconversionset}{numberconversionset} \setinterfaceconstant{numberdistance}{numberdistance} \setinterfaceconstant{numbering}{nummerierung} \setinterfaceconstant{numberlocation}{numberlocation} \setinterfaceconstant{numbermethod}{numbermethod} \setinterfaceconstant{numberorder}{numberorder} \setinterfaceconstant{numberprefix}{numberprefix} \setinterfaceconstant{numbersegments}{numbersegments} \setinterfaceconstant{numberseparator}{nummernseperator} \setinterfaceconstant{numberseparatorset}{numberseparatorset} \setinterfaceconstant{numberset}{numberset} \setinterfaceconstant{numberstarter}{numberstarter} \setinterfaceconstant{numberstopper}{numberstopper} \setinterfaceconstant{numberstrut}{numberstrut} \setinterfaceconstant{numberstyle}{nummernstil} \setinterfaceconstant{numberthreshold}{numberthreshold} \setinterfaceconstant{numberwidth}{numberwidth} \setinterfaceconstant{nx}{nx} \setinterfaceconstant{ny}{ny} \setinterfaceconstant{object}{objekt} \setinterfaceconstant{obstruction}{gesperrt} \setinterfaceconstant{oddmargin}{ungeraderand} \setinterfaceconstant{offset}{offset} \setinterfaceconstant{openaction}{oeffenaktion} \setinterfaceconstant{openpage}{openpage} \setinterfaceconstant{openpageaction}{openpageaction} \setinterfaceconstant{openup}{openup} \setinterfaceconstant{opticalsize}{opticalsize} \setinterfaceconstant{option}{option} \setinterfaceconstant{order}{order} \setinterfaceconstant{orientation}{orientation} \setinterfaceconstant{otherstext}{otherstext} \setinterfaceconstant{outermargin}{outermargin} \setinterfaceconstant{overflow}{overflow} \setinterfaceconstant{overprint}{overprint} \setinterfaceconstant{ownerpassword}{ownerpassword} \setinterfaceconstant{ownnumber}{eigenenummer} \setinterfaceconstant{packcriterium}{packcriterium} \setinterfaceconstant{page}{seite} \setinterfaceconstant{pageboundaries}{seitenbegrenzung} \setinterfaceconstant{pagecolor}{seitenfarbe} \setinterfaceconstant{pagecolormodel}{pagecolormodel} \setinterfaceconstant{pagecommand}{seitenbefehl} \setinterfaceconstant{pageconnector}{pageconnector} \setinterfaceconstant{pageconversion}{pageconversion} \setinterfaceconstant{pageconversionset}{pageconversionset} \setinterfaceconstant{pageleft}{pageleft} \setinterfaceconstant{pagemethod}{pagemethod} \setinterfaceconstant{pagenumber}{seitennummer} \setinterfaceconstant{pageprefix}{pageprefix} \setinterfaceconstant{pageprefixconnector}{pageprefixconnector} \setinterfaceconstant{pageprefixconversion}{pageprefixconversion} \setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset} \setinterfaceconstant{pageprefixsegments}{pageprefixsegments} \setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset} \setinterfaceconstant{pageprefixset}{pageprefixset} \setinterfaceconstant{pageprefixstarter}{pageprefixstarter} \setinterfaceconstant{pageprefixstopper}{pageprefixstopper} \setinterfaceconstant{pageright}{pageright} \setinterfaceconstant{pagesegments}{pagesegments} \setinterfaceconstant{pagesep}{pagesep} \setinterfaceconstant{pageseparatorset}{pageseparatorset} \setinterfaceconstant{pageset}{pageset} \setinterfaceconstant{pagestarter}{pagestarter} \setinterfaceconstant{pagestate}{pagestate} \setinterfaceconstant{pagestopper}{pagestopper} \setinterfaceconstant{pagestyle}{seitenstil} \setinterfaceconstant{palet}{palette} \setinterfaceconstant{paper}{papier} \setinterfaceconstant{paragraph}{absatz} \setinterfaceconstant{penalties}{penalties} \setinterfaceconstant{period}{period} \setinterfaceconstant{place}{platziere} \setinterfaceconstant{placehead}{setzekopf} \setinterfaceconstant{placeholder}{placeholder} \setinterfaceconstant{placestopper}{setzetrenner} \setinterfaceconstant{position}{position} \setinterfaceconstant{prefix}{prefix} \setinterfaceconstant{prefixconnector}{prefixconnector} \setinterfaceconstant{prefixconversion}{prefixconversion} \setinterfaceconstant{prefixconversionset}{prefixconversionset} \setinterfaceconstant{prefixsegments}{prefixsegments} \setinterfaceconstant{prefixseparatorset}{prefixseparatorset} \setinterfaceconstant{prefixset}{prefixset} \setinterfaceconstant{prefixstarter}{prefixstarter} \setinterfaceconstant{prefixstopper}{prefixstopper} \setinterfaceconstant{preset}{voreinstellung} \setinterfaceconstant{preview}{vorschau} \setinterfaceconstant{previous}{vorige} \setinterfaceconstant{previousnumber}{vorigenummer} \setinterfaceconstant{print}{print} \setinterfaceconstant{printable}{druckbar} \setinterfaceconstant{process}{process} \setinterfaceconstant{processors}{processors} \setinterfaceconstant{profile}{profile} \setinterfaceconstant{properties}{properties} \setinterfaceconstant{pubsep}{pubsep} \setinterfaceconstant{quotechar}{quotechar} \setinterfaceconstant{radius}{radius} \setinterfaceconstant{random}{zufaellig} \setinterfaceconstant{range}{range} \setinterfaceconstant{reduction}{reduktion} \setinterfaceconstant{ref}{ref} \setinterfaceconstant{refcommand}{refcommand} \setinterfaceconstant{reference}{referenz} \setinterfaceconstant{referencemethod}{referencemethod} \setinterfaceconstant{referenceprefix}{referenceprefix} \setinterfaceconstant{referencetext}{referencetext} \setinterfaceconstant{referencing}{referieren} \setinterfaceconstant{region}{region} \setinterfaceconstant{regionin}{regionin} \setinterfaceconstant{regionout}{regionaus} \setinterfaceconstant{register}{register} \setinterfaceconstant{regularfeatures}{regularfeatures} \setinterfaceconstant{regularfont}{regularfont} \setinterfaceconstant{renderingsetup}{renderingsetup} \setinterfaceconstant{repeat}{wiederholen} \setinterfaceconstant{reset}{reset} \setinterfaceconstant{resetnumber}{resetnumber} \setinterfaceconstant{resolution}{aufloesung} \setinterfaceconstant{resources}{resources} \setinterfaceconstant{reverse}{reverse} \setinterfaceconstant{right}{rechts} \setinterfaceconstant{rightchars}{rightchars} \setinterfaceconstant{rightclass}{rightclass} \setinterfaceconstant{rightcolor}{rechterfarbe} \setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen} \setinterfaceconstant{rightedge}{rechtekante} \setinterfaceconstant{rightedgedistance}{rechterkantenabstand} \setinterfaceconstant{rightframe}{rechterrahmen} \setinterfaceconstant{righthyphen}{righthyphen} \setinterfaceconstant{rightmargin}{rechterrand} \setinterfaceconstant{rightmargindistance}{rechterrandabstand} \setinterfaceconstant{rightoffset}{rechterabstand} \setinterfaceconstant{rightquotation}{rechterzitat} \setinterfaceconstant{rightquote}{rechterzitieren} \setinterfaceconstant{rightsample}{rightsample} \setinterfaceconstant{rightsentence}{rechtersatz} \setinterfaceconstant{rightsource}{rightsource} \setinterfaceconstant{rightspeech}{rightspeech} \setinterfaceconstant{rightstyle}{rechterstil} \setinterfaceconstant{rightsubsentence}{rechtersubsatz} \setinterfaceconstant{righttext}{rechtertext} \setinterfaceconstant{rightwidth}{rechterbreite} \setinterfaceconstant{rightwords}{rightwords} \setinterfaceconstant{roffset}{roffset} \setinterfaceconstant{rotation}{rotation} \setinterfaceconstant{rule}{linie} \setinterfaceconstant{rulecolor}{linienfarbe} \setinterfaceconstant{rulecommand}{rulecommand} \setinterfaceconstant{rulethickness}{liniendicke} \setinterfaceconstant{samepage}{selbeseite} \setinterfaceconstant{sample}{muster} \setinterfaceconstant{samplesize}{samplesize} \setinterfaceconstant{saveinlist}{saveinlist} \setinterfaceconstant{scale}{format} \setinterfaceconstant{scope}{bereich} \setinterfaceconstant{screen}{raster} \setinterfaceconstant{section}{abschnitt} \setinterfaceconstant{sectionblock}{sectionblock} \setinterfaceconstant{sectionconversion}{sectionconversion} \setinterfaceconstant{sectionconversionset}{sectionconversionset} \setinterfaceconstant{sectionnumber}{abschnittsnummer} \setinterfaceconstant{sectionresetset}{sectionresetset} \setinterfaceconstant{sectionsegments}{sectionsegments} \setinterfaceconstant{sectionseparatorset}{sectionseparatorset} \setinterfaceconstant{sectionset}{sectionset} \setinterfaceconstant{sectionstarter}{sectionstarter} \setinterfaceconstant{sectionstopper}{sectionstopper} \setinterfaceconstant{separator}{seperator} \setinterfaceconstant{separatorcolor}{separatorcolor} \setinterfaceconstant{separatorstyle}{separatorstyle} \setinterfaceconstant{set}{set} \setinterfaceconstant{setups}{setups} \setinterfaceconstant{shrink}{shrink} \setinterfaceconstant{side}{objektabstand} \setinterfaceconstant{sidealign}{sidealign} \setinterfaceconstant{sidemethod}{sidemethod} \setinterfaceconstant{sidespaceafter}{nebennachspatium} \setinterfaceconstant{sidespacebefore}{nebenvorspatium} \setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween} \setinterfaceconstant{sidethreshold}{sidethreshold} \setinterfaceconstant{sign}{zeichen} \setinterfaceconstant{simplecommand}{simplecommand} \setinterfaceconstant{size}{groesse} \setinterfaceconstant{slantedfeatures}{slantedfeatures} \setinterfaceconstant{slantedfont}{slantedfont} \setinterfaceconstant{small}{klein} \setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures} \setinterfaceconstant{smallcapsfont}{smallcapsfont} \setinterfaceconstant{snap}{snap} \setinterfaceconstant{snapstep}{snapstep} \setinterfaceconstant{solution}{solution} \setinterfaceconstant{sort}{sort} \setinterfaceconstant{sorttype}{sorttype} \setinterfaceconstant{source}{source} \setinterfaceconstant{space}{spatium} \setinterfaceconstant{spaceafter}{nachspatium} \setinterfaceconstant{spaceafterside}{spaceafterside} \setinterfaceconstant{spacebefore}{vorspatium} \setinterfaceconstant{spacebeforeside}{spacebeforeside} \setinterfaceconstant{spaceinbetween}{spaceinbetween} \setinterfaceconstant{spacing}{spatiumausgleich} \setinterfaceconstant{specification}{specification} \setinterfaceconstant{split}{split} \setinterfaceconstant{splitcolor}{splitcolor} \setinterfaceconstant{splitmethod}{splitmethod} \setinterfaceconstant{splitoffset}{splitoffset} \setinterfaceconstant{spot}{spot} \setinterfaceconstant{stack}{stack} \setinterfaceconstant{stacking}{stacking} \setinterfaceconstant{stackname}{stackname} \setinterfaceconstant{start}{start} \setinterfaceconstant{starter}{starter} \setinterfaceconstant{state}{status} \setinterfaceconstant{step}{schritt} \setinterfaceconstant{stop}{stop} \setinterfaceconstant{stopper}{abschnitttrenner} \setinterfaceconstant{stretch}{strecken} \setinterfaceconstant{strip}{strip} \setinterfaceconstant{strut}{strut} \setinterfaceconstant{style}{stil} \setinterfaceconstant{stylealternative}{stylealternative} \setinterfaceconstant{sub}{unter} \setinterfaceconstant{subtitle}{untertitel} \setinterfaceconstant{suffix}{suffix} \setinterfaceconstant{suffixseparator}{suffixseparator} \setinterfaceconstant{suffixstopper}{suffixstopper} \setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep} \setinterfaceconstant{surnameinitialsep}{surnameinitialsep} \setinterfaceconstant{surnamesep}{surnamesep} \setinterfaceconstant{svgstyle}{svgstyle} \setinterfaceconstant{sx}{sx} \setinterfaceconstant{sy}{sy} \setinterfaceconstant{symalign}{symausrichtung} \setinterfaceconstant{symbol}{symbol} \setinterfaceconstant{symbolcommand}{symbolcommand} \setinterfaceconstant{symbolset}{symbolset} \setinterfaceconstant{symcolor}{symfarbe} \setinterfaceconstant{symstyle}{symstil} \setinterfaceconstant{synchronize}{synchronize} \setinterfaceconstant{synonym}{synonym} \setinterfaceconstant{synonymcolor}{synonymfarbe} \setinterfaceconstant{synonymcommand}{synonymbefehl} \setinterfaceconstant{synonymstyle}{synonymstil} \setinterfaceconstant{tab}{tab} \setinterfaceconstant{target}{target} \setinterfaceconstant{text}{text} \setinterfaceconstant{textalign}{textalign} \setinterfaceconstant{textalternative}{textalternative} \setinterfaceconstant{textcolor}{textfarbe} \setinterfaceconstant{textcommand}{textbefehl} \setinterfaceconstant{textdistance}{textdistance} \setinterfaceconstant{textheight}{texthoehe} \setinterfaceconstant{textlayer}{textlayer} \setinterfaceconstant{textmargin}{textmargin} \setinterfaceconstant{textmethod}{textmethod} \setinterfaceconstant{textseparator}{textseparator} \setinterfaceconstant{textsize}{textgroesse} \setinterfaceconstant{textstate}{textstatus} \setinterfaceconstant{textstyle}{textstil} \setinterfaceconstant{textwidth}{textbreite} \setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{time}{time} \setinterfaceconstant{title}{titel} \setinterfaceconstant{titlecolor}{titelfarbe} \setinterfaceconstant{titlecommand}{titlecommand} \setinterfaceconstant{titledistance}{titelabstand} \setinterfaceconstant{titleleft}{titleleft} \setinterfaceconstant{titleright}{titleright} \setinterfaceconstant{titlestrut}{titlestrut} \setinterfaceconstant{titlestyle}{titelstil} \setinterfaceconstant{to}{zu} \setinterfaceconstant{toffset}{toffset} \setinterfaceconstant{tolerance}{toleranz} \setinterfaceconstant{top}{oben} \setinterfaceconstant{topalign}{topalign} \setinterfaceconstant{topcolor}{topcolor} \setinterfaceconstant{topcommand}{topcommand} \setinterfaceconstant{topdistance}{obenabstand} \setinterfaceconstant{topframe}{obenrahmen} \setinterfaceconstant{topoffset}{obenoffset} \setinterfaceconstant{topspace}{kopfspatium} \setinterfaceconstant{topstate}{statusoben} \setinterfaceconstant{topstyle}{topstyle} \setinterfaceconstant{totalnumber}{totalnumber} \setinterfaceconstant{transform}{transform} \setinterfaceconstant{translate}{translate} \setinterfaceconstant{trimoffset}{trimoffset} \setinterfaceconstant{type}{typ} \setinterfaceconstant{unit}{einheit} \setinterfaceconstant{unknownreference}{unbekantereferenz} \setinterfaceconstant{up}{up} \setinterfaceconstant{urlalternative}{urlalternative} \setinterfaceconstant{urlspace}{urlspatium} \setinterfaceconstant{userpassword}{userpassword} \setinterfaceconstant{validate}{validieren} \setinterfaceconstant{values}{values} \setinterfaceconstant{vcommand}{vbefehl} \setinterfaceconstant{vcompact}{vcompact} \setinterfaceconstant{vector}{vector} \setinterfaceconstant{veroffset}{kopfoffset} \setinterfaceconstant{vertical}{vertikal} \setinterfaceconstant{vfactor}{vfaktor} \setinterfaceconstant{vfil}{vfil} \setinterfaceconstant{viewerprefix}{viewerprefix} \setinterfaceconstant{voffset}{voffset} \setinterfaceconstant{vonsep}{vonsep} \setinterfaceconstant{vz}{vz} \setinterfaceconstant{way}{art} \setinterfaceconstant{wfactor}{bfaktor} \setinterfaceconstant{white}{weiss} \setinterfaceconstant{width}{breite} \setinterfaceconstant{words}{words} \setinterfaceconstant{xanchor}{xanchor} \setinterfaceconstant{xfactor}{xfaktor} \setinterfaceconstant{xhtml}{xhtml} \setinterfaceconstant{xmax}{xmax} \setinterfaceconstant{xmlsetup}{xmlsetup} \setinterfaceconstant{xoffset}{xoffset} \setinterfaceconstant{xscale}{xformat} \setinterfaceconstant{xstep}{xschritt} \setinterfaceconstant{yanchor}{yanchor} \setinterfaceconstant{yfactor}{yfaktor} \setinterfaceconstant{ymax}{ymax} \setinterfaceconstant{yoffset}{yoffset} \setinterfaceconstant{yscale}{yformat} \setinterfaceconstant{ystep}{yschritt} % definitions for interface elements for language de % \setinterfaceelement{answerlines}{answerlines} \setinterfaceelement{answerspace}{answerspace} \setinterfaceelement{begin}{anfang} \setinterfaceelement{complete}{vollende} \setinterfaceelement{coupled}{verknuepft} \setinterfaceelement{currentlocal}{aktuelllokal} \setinterfaceelement{end}{ende} \setinterfaceelement{endsetup}{ein} \setinterfaceelement{get}{get} \setinterfaceelement{increment}{erhoehen} \setinterfaceelement{list}{auflisten} \setinterfaceelement{listof}{auflistenvon} \setinterfaceelement{load}{laden} \setinterfaceelement{local}{lokal} \setinterfaceelement{makeup}{umbruch} \setinterfaceelement{namednotation}{namednotation} \setinterfaceelement{namedtyping}{namedtyping} \setinterfaceelement{next}{folgende} \setinterfaceelement{place}{platziere} \setinterfaceelement{previous}{vorige} \setinterfaceelement{previouslocal}{voriglokal} \setinterfaceelement{reserve}{reservieren} \setinterfaceelement{see}{sieh} \setinterfaceelement{setup}{stelle} \setinterfaceelement{start}{start} \setinterfaceelement{stop}{stop} \setinterfaceelement{text}{text} \setinterfaceelement{type}{type} % definitions for interface commands for language de % \setinterfacecommand{Character}{Buchstabe} \setinterfacecommand{Characters}{Buchstaben} \setinterfacecommand{MONTH}{MONAT} \setinterfacecommand{Numbers}{Ziffern} \setinterfacecommand{Romannumerals}{Roemischezahlen} \setinterfacecommand{SmallCapped}{Kap} \setinterfacecommand{SmallCaps}{Kaps} \setinterfacecommand{WEEKDAY}{WOCHENTAG} \setinterfacecommand{WORD}{WORT} \setinterfacecommand{WORDS}{WOERTER} \setinterfacecommand{Word}{Wort} \setinterfacecommand{Words}{Woerter} \setinterfacecommand{about}{ueber} \setinterfacecommand{adaptfontfeature}{adaptfontfeature} \setinterfacecommand{adaptlayout}{passelayoutan} \setinterfacecommand{addfeature}{addfeature} \setinterfacecommand{alignbottom}{alignbottom} \setinterfacecommand{aligned}{aligned} \setinterfacecommand{alignedbox}{alignedbox} \setinterfacecommand{alignedline}{alignedline} \setinterfacecommand{alignhere}{alignhere} \setinterfacecommand{alignment}{alignment} \setinterfacecommand{alignmentcharacter}{alignmentcharacter} \setinterfacecommand{applytocharacters}{applytocharacters} \setinterfacecommand{applytofirstcharacter}{applytofirstcharacter} \setinterfacecommand{arg}{arg} \setinterfacecommand{at}{bei} \setinterfacecommand{atleftmargin}{atleftmargin} \setinterfacecommand{atpage}{aufseite} \setinterfacecommand{atrightmargin}{atrightmargin} \setinterfacecommand{background}{hintergrund} \setinterfacecommand{backspace}{rumpfweite} \setinterfacecommand{blackrule}{rechteck} \setinterfacecommand{blackrules}{rechtecke} \setinterfacecommand{blank}{blanko} \setinterfacecommand{bookmark}{bookmark} \setinterfacecommand{bottombox}{bottombox} \setinterfacecommand{bottomdistance}{abstandunten} \setinterfacecommand{bottomheight}{hoeheunten} \setinterfacecommand{bottomleftbox}{bottomleftbox} \setinterfacecommand{bottomrightbox}{bottomrightbox} \setinterfacecommand{bottomspace}{bottomspace} \setinterfacecommand{buildtextbottomdot}{buildtextbottomdot} \setinterfacecommand{but}{but} \setinterfacecommand{button}{knopf} \setinterfacecommand{bypassblocks}{bypassblocks} \setinterfacecommand{character}{buchstabe} \setinterfacecommand{characters}{buchstaben} \setinterfacecommand{chem}{chem} \setinterfacecommand{clip}{ausschnitt} \setinterfacecommand{clonefield}{klonierefeld} \setinterfacecommand{color}{farbe} \setinterfacecommand{colorbar}{farbbalken} \setinterfacecommand{colorvalue}{farbewert} \setinterfacecommand{column}{spalte} \setinterfacecommand{comparecolorgroup}{vergleichefarbengruppe} \setinterfacecommand{comparepalet}{vergleichepalette} \setinterfacecommand{completepagenumber}{completepagenumber} \setinterfacecommand{completeregister}{completeregister} \setinterfacecommand{component}{komponente} \setinterfacecommand{convertnumber}{konvertierezahl} \setinterfacecommand{copyfield}{kopierefeld} \setinterfacecommand{correctwhitespace}{korrigierezwischenraum} \setinterfacecommand{coupledocument}{verknuepfedokument} \setinterfacecommand{couplemarking}{verknuepfebeschriftung} \setinterfacecommand{couplepage}{doppelseite} \setinterfacecommand{couplepaper}{doppelseitigespapier} \setinterfacecommand{coupleregister}{verknuepfregister} \setinterfacecommand{crlf}{crlf} \setinterfacecommand{currentdate}{heutigesdatum} \setinterfacecommand{currentheadnumber}{heutigeskopfnummer} \setinterfacecommand{cutspace}{cutspace} \setinterfacecommand{date}{datum} \setinterfacecommand{decouplemarking}{entknuepfebeschriftung} \setinterfacecommand{decrementnumber}{decrementnumber} \setinterfacecommand{define}{definieren} \setinterfacecommand{defineaccent}{definiereakzent} \setinterfacecommand{defineblank}{definiereblanko} \setinterfacecommand{defineblock}{definiereblock} \setinterfacecommand{definebodyfont}{definierefliesstext} \setinterfacecommand{definebodyfontenvironment}{definierefliesstextumgebung} \setinterfacecommand{definebodyfontswitch}{definebodyfontswitch} \setinterfacecommand{definebuffer}{definierepuffer} \setinterfacecommand{definecharacter}{definierezeichen} \setinterfacecommand{definecharacterkerning}{definecharacterkerning} \setinterfacecommand{definecharacterspacing}{definecharacterspacing} \setinterfacecommand{definecolor}{definierefarbe} \setinterfacecommand{definecolorgroup}{definierefarbengruppe} \setinterfacecommand{definecolumnbreak}{definecolumnbreak} \setinterfacecommand{definecolumnset}{definecolumnset} \setinterfacecommand{definecombination}{definecombination} \setinterfacecommand{definecombinedlist}{definierezusammengestellteliste} \setinterfacecommand{definecommand}{definierebefehl} \setinterfacecommand{defineconversion}{definierekonversion} \setinterfacecommand{definedescription}{definierebeschreibung} \setinterfacecommand{definedfont}{definedfont} \setinterfacecommand{defineenumeration}{definierenummerierung} \setinterfacecommand{definefallbackfamily}{definefallbackfamily} \setinterfacecommand{definefield}{definierefeld} \setinterfacecommand{definefieldstack}{definierefeldstapel} \setinterfacecommand{definefiguresymbol}{definiereabbsymbol} \setinterfacecommand{definefilefallback}{definefilefallback} \setinterfacecommand{definefirstline}{definefirstline} \setinterfacecommand{definefloat}{definieregleitobjekt} \setinterfacecommand{definefont}{definiereschrift} \setinterfacecommand{definefontalternative}{definefontalternative} \setinterfacecommand{definefontfallback}{definefontfallback} \setinterfacecommand{definefontfamily}{definefontfamily} \setinterfacecommand{definefontfamilypreset}{definefontfamilypreset} \setinterfacecommand{definefontfeature}{definefontfeature} \setinterfacecommand{definefontfile}{definefontfile} \setinterfacecommand{definefontsize}{definefontsize} \setinterfacecommand{definefontsolution}{definefontsolution} \setinterfacecommand{definefontstyle}{definiereschriftstil} \setinterfacecommand{definefontsynonym}{defineschriftsynonym} \setinterfacecommand{defineframed}{definiereumrahmt} \setinterfacecommand{defineframedtext}{definiereumrahmtertext} \setinterfacecommand{definefrozenfont}{definefrozenfont} \setinterfacecommand{definehbox}{definierehbox} \setinterfacecommand{definehead}{definiereueberschrift} \setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures} \setinterfacecommand{defineindentedtext}{defineindentedtext} \setinterfacecommand{defineinmargin}{defineinmargin} \setinterfacecommand{defineinteractionmenu}{definiereinteraktionsmenue} \setinterfacecommand{defineitemgroup}{defineitemgroup} \setinterfacecommand{defineitems}{defineitems} \setinterfacecommand{definelabel}{definierelabel} \setinterfacecommand{definelayer}{definelayer} \setinterfacecommand{definelayout}{definelayout} \setinterfacecommand{definelinenote}{definelinenote} \setinterfacecommand{definelist}{definiereliste} \setinterfacecommand{definelogo}{definierelogo} \setinterfacecommand{definemainfield}{definierehauptfeld} \setinterfacecommand{definemakeup}{definiereumbruch} \setinterfacecommand{definemarking}{definierebeschriftung} \setinterfacecommand{definemathalignment}{definemathalignment} \setinterfacecommand{definemode}{definemode} \setinterfacecommand{definenamedcolor}{definenamedcolor} \setinterfacecommand{definenote}{definenote} \setinterfacecommand{defineoutput}{defineoutput} \setinterfacecommand{defineoverlay}{definiereoverlay} \setinterfacecommand{definepagebreak}{definepagebreak} \setinterfacecommand{definepalet}{definierepalette} \setinterfacecommand{definepapersize}{definierepapierformat} \setinterfacecommand{defineparagraphs}{definiereabsaetze} \setinterfacecommand{defineperiodkerning}{defineperiodkerning} \setinterfacecommand{defineplacement}{defineplacement} \setinterfacecommand{defineprofile}{definiereprofil} \setinterfacecommand{defineprogram}{definiereprogramme} \setinterfacecommand{definerawfont}{definerawfont} \setinterfacecommand{definereference}{definierereferenz} \setinterfacecommand{definereferenceformat}{definierereferenzformat} \setinterfacecommand{definereferencelist}{definierereferenzliste} \setinterfacecommand{defineregister}{definiereregister} \setinterfacecommand{definerule}{definerule} \setinterfacecommand{definesavebuffer}{startsavebuffer} \setinterfacecommand{definesection}{definiereabschnitt} \setinterfacecommand{definesectionblock}{definiereabschnittsblock} \setinterfacecommand{definesorting}{definieresortieren} \setinterfacecommand{definestartstop}{definierestartstop} \setinterfacecommand{definestyle}{definierestil} \setinterfacecommand{definesubfield}{definieresubfeld} \setinterfacecommand{definesymbol}{definieresymbol} \setinterfacecommand{definesynonyms}{definieresynonyme} \setinterfacecommand{definetabletemplate}{definieretabellenvorlage} \setinterfacecommand{definetabulate}{definieretabulator} \setinterfacecommand{definetext}{definieretext} \setinterfacecommand{definetextbackground}{definetextbackground} \setinterfacecommand{definetextnote}{definetextnote} \setinterfacecommand{definetextposition}{definetextposition} \setinterfacecommand{definetextvariable}{definetextvariable} \setinterfacecommand{definetype}{definetype} \setinterfacecommand{definetyping}{definieretippen} \setinterfacecommand{defineversion}{definiereversion} \setinterfacecommand{depthspanningtext}{depthspanningtext} \setinterfacecommand{determineheadnumber}{bestimmekopfnummer} \setinterfacecommand{determinelistcharacteristics}{bestimmelistencharakeristika} \setinterfacecommand{determineregistercharacteristics}{bestimmeregistercharakteristika} \setinterfacecommand{dimension}{dimension} \setinterfacecommand{disableinteractionmenu}{inaktiviereinteraktionsmenue} \setinterfacecommand{disablemode}{disablemode} \setinterfacecommand{doaddfeature}{doaddfeature} \setinterfacecommand{domicile}{wohnort} \setinterfacecommand{dontconvertfont}{dontconvertfont} \setinterfacecommand{donttest}{keintest} \setinterfacecommand{edgedistance}{randabstand} \setinterfacecommand{edgewidth}{randbreite} \setinterfacecommand{emphasisboldface}{emphasisboldface} \setinterfacecommand{emptylines}{emptylines} \setinterfacecommand{enablemode}{enablemode} \setinterfacecommand{environment}{umgebung} \setinterfacecommand{externalfigure}{externeabbildung} \setinterfacecommand{fact}{geg} \setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont} \setinterfacecommand{feature}{feature} \setinterfacecommand{field}{feld} \setinterfacecommand{fieldstack}{feldstapel} \setinterfacecommand{fillinfield}{ausfuellfeld} \setinterfacecommand{fillinline}{gefuelltezeile} \setinterfacecommand{fillinrules}{gefuelltesrechteck} \setinterfacecommand{fillintext}{ausfuelltext} \setinterfacecommand{firstcharacter}{firstcharacter} \setinterfacecommand{fitfield}{passendfeld} \setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid} \setinterfacecommand{fixedspace}{festesspatium} \setinterfacecommand{fixedspaces}{festesspatium} \setinterfacecommand{flushnotes}{flushnotes} \setinterfacecommand{followprofile}{folgeprofil} \setinterfacecommand{followprofileversion}{folgeprofilversion} \setinterfacecommand{followversion}{folgeversion} \setinterfacecommand{footerdistance}{fusszeileabstand} \setinterfacecommand{footerheight}{fusszeilenhoehe} \setinterfacecommand{footnote}{fussnote} \setinterfacecommand{footnotetext}{footnotetext} \setinterfacecommand{forceblocks}{forceblocks} \setinterfacecommand{forcecharacterstripping}{forcecharacterstripping} \setinterfacecommand{formulanumber}{formelnummer} \setinterfacecommand{fraction}{bruch} \setinterfacecommand{framed}{umrahmt} \setinterfacecommand{from}{von} \setinterfacecommand{fromlinenote}{fromlinenote} \setinterfacecommand{getbuffer}{holepuffer} \setinterfacecommand{getfirstcharacter}{getfirstcharacter} \setinterfacecommand{getmarking}{holebeschriftung} \setinterfacecommand{getnumber}{getnumber} \setinterfacecommand{globaldisablemode}{globaldisablemode} \setinterfacecommand{globalenablemode}{globalenablemode} \setinterfacecommand{globalpreventmode}{globalpreventmode} \setinterfacecommand{godown}{nachunten} \setinterfacecommand{goto}{zu} \setinterfacecommand{gotobox}{zurbox} \setinterfacecommand{gotopage}{zurseite} \setinterfacecommand{graycolor}{graufarbe} \setinterfacecommand{greyvalue}{grauwert} \setinterfacecommand{grid}{gitter} \setinterfacecommand{hairline}{haarlinie} \setinterfacecommand{head}{kopf} \setinterfacecommand{headerdistance}{kopfzeilenabstand} \setinterfacecommand{headerheight}{kopfzeilenhoehe} \setinterfacecommand{headlevel}{kopfniveau} \setinterfacecommand{headnumber}{kopfnummer} \setinterfacecommand{headsym}{headsym} \setinterfacecommand{headtext}{ueberschrifttext} \setinterfacecommand{heightspanningtext}{heightspanningtext} \setinterfacecommand{hideblocks}{verbergebloecke} \setinterfacecommand{high}{hoch} \setinterfacecommand{hl}{hl} \setinterfacecommand{immediatebetweenlist}{immediatebetweenlist} \setinterfacecommand{immediatetolist}{immediatetolist} \setinterfacecommand{in}{in} \setinterfacecommand{incrementnumber}{nummererhoehen} \setinterfacecommand{indenting}{einziehen} \setinterfacecommand{inframed}{imumriss} \setinterfacecommand{infull}{volleswort} \setinterfacecommand{ininner}{ininner} \setinterfacecommand{inleft}{imlinken} \setinterfacecommand{inleftedge}{imlinkenrand} \setinterfacecommand{inleftmargin}{inlinkermarginale} \setinterfacecommand{inline}{inzeile} \setinterfacecommand{inmargin}{inmarginalie} \setinterfacecommand{inmframed}{immaumrise} \setinterfacecommand{inneredgedistance}{inneredgedistance} \setinterfacecommand{inneredgewidth}{inneredgewidth} \setinterfacecommand{innermargindistance}{innermargindistance} \setinterfacecommand{innermarginwidth}{innermarginwidth} \setinterfacecommand{inothermargin}{inanderermarginale} \setinterfacecommand{inouter}{inouter} \setinterfacecommand{inright}{imrechten} \setinterfacecommand{inrightedge}{imrechtenrand} \setinterfacecommand{inrightmargin}{inrechtermarginale} \setinterfacecommand{installlanguage}{installieresprache} \setinterfacecommand{interactionbar}{interaktionsbalken} \setinterfacecommand{interactionbuttons}{interaktionsknopfe} \setinterfacecommand{interactionmenu}{interaktionsmenue} \setinterfacecommand{item}{pos} \setinterfacecommand{itemgroup}{itemgroup} \setinterfacecommand{items}{posten} \setinterfacecommand{itemtag}{itemtag} \setinterfacecommand{its}{its} \setinterfacecommand{keepblocks}{behaltebloecke} \setinterfacecommand{kerncharacters}{kerncharacters} \setinterfacecommand{label}{label} \setinterfacecommand{labels}{labels} \setinterfacecommand{labeltext}{labeltext} \setinterfacecommand{language}{sprache} \setinterfacecommand{languageCharacters}{languageCharacters} \setinterfacecommand{languagecharacters}{languagecharacters} \setinterfacecommand{leftaligned}{linksbuendig} \setinterfacecommand{leftbottombox}{leftbottombox} \setinterfacecommand{leftedgedistance}{abstandlinkerrand} \setinterfacecommand{leftedgewidth}{breitelinkerrand} \setinterfacecommand{leftline}{leftline} \setinterfacecommand{leftmargindistance}{linkemarginalafstand} \setinterfacecommand{leftmarginwidth}{linkemarginalbreite} \setinterfacecommand{leg}{leg} \setinterfacecommand{linecorrection}{linecorrection} \setinterfacecommand{linenote}{linenote} \setinterfacecommand{linespanningtext}{linespanningtext} \setinterfacecommand{linewidth}{liniendicke} \setinterfacecommand{listheight}{listenhoehe} \setinterfacecommand{listlength}{listenlaenge} \setinterfacecommand{listsymbol}{listsymbol} \setinterfacecommand{listwidth}{listenbreite} \setinterfacecommand{loadfontgoodies}{loadfontgoodies} \setinterfacecommand{localfootnotes}{localfootnotes} \setinterfacecommand{localnotes}{localnotes} \setinterfacecommand{logfields}{registrierefelder} \setinterfacecommand{lohi}{tiho} \setinterfacecommand{low}{tief} \setinterfacecommand{macroname}{name} \setinterfacecommand{mainlanguage}{hauptsprache} \setinterfacecommand{makeupheight}{satzhoehe} \setinterfacecommand{makeupwidth}{satzbreite} \setinterfacecommand{mar}{mar} \setinterfacecommand{marginblock}{marginblock} \setinterfacecommand{margindistance}{marginalafstand} \setinterfacecommand{marginrule}{marginallinie} \setinterfacecommand{margintext}{marginaltext} \setinterfacecommand{margintitle}{marginaltitel} \setinterfacecommand{marginwidth}{marginalbreite} \setinterfacecommand{marginword}{marginalwort} \setinterfacecommand{marking}{beschriftung} \setinterfacecommand{markversion}{beschrifteversion} \setinterfacecommand{mathematics}{mathematik} \setinterfacecommand{menubutton}{menueknopf} \setinterfacecommand{mframed}{maumrise} \setinterfacecommand{midaligned}{zentriert} \setinterfacecommand{mirror}{spiegeln} \setinterfacecommand{month}{monat} \setinterfacecommand{moveformula}{moveformula} \setinterfacecommand{moveongrid}{amgitterneuausrichten} \setinterfacecommand{movesidefloat}{movesidefloat} \setinterfacecommand{namedconstruction}{namedconstruction} \setinterfacecommand{nameddescription}{nameddescription} \setinterfacecommand{namedenumeration}{namedenumeration} \setinterfacecommand{navigating}{navigating} \setinterfacecommand{nodimension}{keindimension} \setinterfacecommand{noheaderandfooterlines}{keinekopfundfusszeilen} \setinterfacecommand{noindenting}{nichteinziehen} \setinterfacecommand{noitem}{noitem} \setinterfacecommand{nolist}{keineliste} \setinterfacecommand{nomarking}{keinebeschriftung} \setinterfacecommand{nomoreblocks}{keinebloeckemehr} \setinterfacecommand{nomorefiles}{keinedateienmehr} \setinterfacecommand{nop}{nop} \setinterfacecommand{nospace}{keinspatium} \setinterfacecommand{note}{notiz} \setinterfacecommand{notesymbol}{notesymbol} \setinterfacecommand{notopandbottomlines}{keinzeilenobenundunten} \setinterfacecommand{notsmallcapped}{nokap} \setinterfacecommand{nowhitespace}{keinzwischenraum} \setinterfacecommand{numberofsubpages}{numberofsubpages} \setinterfacecommand{numbers}{ziffern} \setinterfacecommand{outeredgedistance}{outeredgedistance} \setinterfacecommand{outeredgewidth}{outeredgewidth} \setinterfacecommand{outermargindistance}{outermargindistance} \setinterfacecommand{outermarginwidth}{outermarginwidth} \setinterfacecommand{packed}{kleinerdurchschuss} \setinterfacecommand{page}{seite} \setinterfacecommand{pagebreak}{pagebreak} \setinterfacecommand{pagedepth}{pagedepth} \setinterfacecommand{pagenumber}{seitenummer} \setinterfacecommand{pageoffset}{pageoffset} \setinterfacecommand{pagereference}{seitenreferenz} \setinterfacecommand{paperheight}{papierhoehe} \setinterfacecommand{paperwidth}{papierbreite} \setinterfacecommand{periods}{punkt} \setinterfacecommand{placebookmarks}{platzierebookmarks} \setinterfacecommand{placecombinedlist}{platzierezusammengestellteliste} \setinterfacecommand{placefloat}{placefloat} \setinterfacecommand{placefootnotes}{platzierefussnoten} \setinterfacecommand{placeformula}{platziereformel} \setinterfacecommand{placeheadnumber}{placeheadnumber} \setinterfacecommand{placeheadtext}{placeheadtext} \setinterfacecommand{placelegend}{platzierelegende} \setinterfacecommand{placelist}{platziereliste} \setinterfacecommand{placelistofsynonyms}{placelistofsynonyms} \setinterfacecommand{placelocalfootnotes}{platzierelokalefussnoten} \setinterfacecommand{placelocalnotes}{placelocalnotes} \setinterfacecommand{placelogos}{platzierelogo} \setinterfacecommand{placenamedfloat}{placenamedfloat} \setinterfacecommand{placenotes}{placenotes} \setinterfacecommand{placeongrid}{amgitterausrichten} \setinterfacecommand{placeontopofeachother}{platziereuntereinander} \setinterfacecommand{placepagenumber}{placepagenumber} \setinterfacecommand{placerawlist}{placerawlist} \setinterfacecommand{placereferencelist}{placereferencelist} \setinterfacecommand{placeregister}{platziereregister} \setinterfacecommand{placerule}{placerule} \setinterfacecommand{placesidebyside}{platzierenebeneinander} \setinterfacecommand{placesubformula}{platziereunterformel} \setinterfacecommand{placetextvariable}{placetextvariable} \setinterfacecommand{position}{position} \setinterfacecommand{positiontext}{positiontext} \setinterfacecommand{postponenotes}{postponenotes} \setinterfacecommand{postponingnotes}{postponingnotes} \setinterfacecommand{predefinedfont}{predefinedfont} \setinterfacecommand{predefinefont}{predefinefont} \setinterfacecommand{presetdocument}{presetdocument} \setinterfacecommand{prettyprintbuffer}{prettyprintbuffer} \setinterfacecommand{preventmode}{preventmode} \setinterfacecommand{printpaperheight}{printpapierhoehe} \setinterfacecommand{printpaperwidth}{printpapierbreite} \setinterfacecommand{processblocks}{bearbeitebloecke} \setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist} \setinterfacecommand{processpage}{bearbeiteseite} \setinterfacecommand{product}{produkt} \setinterfacecommand{program}{programm} \setinterfacecommand{project}{projekt} \setinterfacecommand{publication}{publikation} \setinterfacecommand{quotation}{zitat} \setinterfacecommand{quote}{zitieren} \setinterfacecommand{ran}{ran} \setinterfacecommand{redo}{wiederholen} \setinterfacecommand{redoconvertfont}{redoconvertfont} \setinterfacecommand{ref}{ref} \setinterfacecommand{reference}{referenz} \setinterfacecommand{referral}{verweis} \setinterfacecommand{referraldate}{verweisdatum} \setinterfacecommand{referring}{referieren} \setinterfacecommand{registerfontclass}{registerfontclass} \setinterfacecommand{registerhyphenationexception}{registerhyphenationexception} \setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern} \setinterfacecommand{remark}{bemerkung} \setinterfacecommand{replacefeature}{replacefeature} \setinterfacecommand{reset}{ruecksetzten} \setinterfacecommand{resetandaddfeature}{resetandaddfeature} \setinterfacecommand{resetcharacteralign}{resetcharacteralign} \setinterfacecommand{resetcharacterkerning}{resetcharacterkerning} \setinterfacecommand{resetcharacterspacing}{resetcharacterspacing} \setinterfacecommand{resetcharacterstripping}{resetcharacterstripping} \setinterfacecommand{resetfeature}{resetfeature} \setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme} \setinterfacecommand{resetfontfallback}{resetfontfallback} \setinterfacecommand{resetfontsolution}{resetfontsolution} \setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures} \setinterfacecommand{resetlocalfloats}{resetlocalfloats} \setinterfacecommand{resetmarking}{ruecksetztenbeschriftung} \setinterfacecommand{resetmode}{resetmode} \setinterfacecommand{resetnumber}{resetnumber} \setinterfacecommand{resetpath}{resetpath} \setinterfacecommand{resetperiodkerning}{resetperiodkerning} \setinterfacecommand{resetsystemmode}{resetsystemmode} \setinterfacecommand{resettextcontent}{resettextcontent} \setinterfacecommand{resetvisualizers}{resetvisualizers} \setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont} \setinterfacecommand{retestfeature}{retestfeature} \setinterfacecommand{revivefeature}{revivefeature} \setinterfacecommand{rightaligned}{rechtsbuendig} \setinterfacecommand{rightbottombox}{rightbottombox} \setinterfacecommand{rightedgedistance}{abstandrechterrand} \setinterfacecommand{rightedgewidth}{breiterechterrand} \setinterfacecommand{rightline}{rightline} \setinterfacecommand{rightmargindistance}{rechtemarginalafstand} \setinterfacecommand{rightmarginwidth}{rechtemarginalbreite} \setinterfacecommand{romannumerals}{roemischezahlen} \setinterfacecommand{rotate}{drehen} \setinterfacecommand{savebuffer}{savebuffer} \setinterfacecommand{scale}{format} \setinterfacecommand{screen}{bildschirm} \setinterfacecommand{selectblocks}{waehlebloeckeaus} \setinterfacecommand{selectpaper}{waehlepapieraus} \setinterfacecommand{selectversion}{waehleversionaus} \setinterfacecommand{setbigbodyfont}{setbigbodyfont} \setinterfacecommand{setcharacteralign}{setcharacteralign} \setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail} \setinterfacecommand{setcharactercasing}{setcharactercasing} \setinterfacecommand{setcharactercleaning}{setcharactercleaning} \setinterfacecommand{setcharacterkerning}{setcharacterkerning} \setinterfacecommand{setcharacterspacing}{setcharacterspacing} \setinterfacecommand{setcharacterstripping}{setcharacterstripping} \setinterfacecommand{setcurrentfontclass}{setcurrentfontclass} \setinterfacecommand{setfirstline}{setfirstline} \setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign} \setinterfacecommand{setfont}{setfont} \setinterfacecommand{setfontcolorsheme}{setfontcolorsheme} \setinterfacecommand{setfontfeature}{setfontfeature} \setinterfacecommand{setfontsolution}{setfontsolution} \setinterfacecommand{setfontstrut}{setfontstrut} \setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures} \setinterfacecommand{setmainbodyfont}{setmainbodyfont} \setinterfacecommand{setmode}{setmode} \setinterfacecommand{setnote}{setnote} \setinterfacecommand{setnotetext}{setnotetext} \setinterfacecommand{setnumber}{setnumber} \setinterfacecommand{setperiodkerning}{setperiodkerning} \setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign} \setinterfacecommand{setsmallbodyfont}{setsmallbodyfont} \setinterfacecommand{setsystemmode}{setsystemmode} \setinterfacecommand{settextcontent}{settext} \setinterfacecommand{settextvariable}{settextvariable} \setinterfacecommand{setupalign}{stelleausrichtungein} \setinterfacecommand{setupanswerarea}{setupanswerarea} \setinterfacecommand{setuparranging}{stelleanordnenein} \setinterfacecommand{setupattachment}{setupattachment} \setinterfacecommand{setupbackground}{stellehintergrundein} \setinterfacecommand{setupbackgrounds}{stellehintergruendeein} \setinterfacecommand{setupblackrules}{stellerechteckein} \setinterfacecommand{setupblank}{stelleblankoein} \setinterfacecommand{setupblock}{stelleblockein} \setinterfacecommand{setupbodyfont}{stellefliesstextein} \setinterfacecommand{setupbodyfontenvironment}{stellefliesstextumgebungein} \setinterfacecommand{setupbottom}{stelleuntenein} \setinterfacecommand{setupbottomtexts}{stelletextuntenein} \setinterfacecommand{setupbuffer}{stellepufferein} \setinterfacecommand{setupbuttons}{stelleknopfein} \setinterfacecommand{setupcapitals}{stelleversalienein} \setinterfacecommand{setupcaption}{stellebildunterschriftein} \setinterfacecommand{setupcaptions}{stellebilderunterschriftein} \setinterfacecommand{setupcharacteralign}{setupcharacteralign} \setinterfacecommand{setupcharacterkerning}{setupcharacterkerning} \setinterfacecommand{setupcharacterspacing}{setupcharacterspacing} \setinterfacecommand{setupclipping}{stelleausschnittein} \setinterfacecommand{setupcolor}{stellefarbeein} \setinterfacecommand{setupcolors}{stellefarbenein} \setinterfacecommand{setupcolumns}{stellespaltenein} \setinterfacecommand{setupcolumnset}{setupcolumnset} \setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines} \setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart} \setinterfacecommand{setupcombinations}{stellekombinationein} \setinterfacecommand{setupcombinedlist}{stellezusammengestelltelisteein} \setinterfacecommand{setupcomment}{stellekommentarein} \setinterfacecommand{setupcounter}{setupcounter} \setinterfacecommand{setupdescription}{setupdescription} \setinterfacecommand{setupdescriptions}{definierebeschreibungen} \setinterfacecommand{setupenumeration}{setupenumeration} \setinterfacecommand{setupenumerations}{stellebeschreibungein} \setinterfacecommand{setupexternalfigures}{stelleexterneabbildungenein} \setinterfacecommand{setupfield}{stellefeldein} \setinterfacecommand{setupfields}{stellefelderin} \setinterfacecommand{setupfillinlines}{stellegefuelltezeileein} \setinterfacecommand{setupfillinrules}{stellegefuelltesrechteckein} \setinterfacecommand{setupfirstline}{setupfirstline} \setinterfacecommand{setupfloat}{stellegleitobjektein} \setinterfacecommand{setupfloats}{stellegleitobjekteein} \setinterfacecommand{setupfloatsplitting}{stelleplatziegeteiltegleitobjekt} \setinterfacecommand{setupfontexpansion}{setupfontexpansion} \setinterfacecommand{setupfontprotrusion}{setupfontprotrusion} \setinterfacecommand{setupfonts}{setupfonts} \setinterfacecommand{setupfontsolution}{setupfontsolution} \setinterfacecommand{setupfooter}{stellefusszeileein} \setinterfacecommand{setupfootertexts}{stellefusszeilentextein} \setinterfacecommand{setupfootnotedefinition}{stellefussnotendefinitionein} \setinterfacecommand{setupfootnotes}{stellefussnotenein} \setinterfacecommand{setupforms}{setupforms} \setinterfacecommand{setupformula}{setupformula} \setinterfacecommand{setupformulas}{stelleformelnein} \setinterfacecommand{setupframed}{stelleumrahmtein} \setinterfacecommand{setupframedtext}{setupframedtext} \setinterfacecommand{setupframedtexts}{stelleumrahmtetexteein} \setinterfacecommand{setuphead}{stelleueberschriftein} \setinterfacecommand{setupheader}{stellekopfzeileein} \setinterfacecommand{setupheadertexts}{stellekopfzeilentextein} \setinterfacecommand{setupheadnumber}{stellekopfzahlein} \setinterfacecommand{setupheads}{stelleueberschriftenein} \setinterfacecommand{setupheadtext}{stelleueberschrifttextein} \setinterfacecommand{setuphyphenation}{setuphyphenation} \setinterfacecommand{setuphyphenmark}{stellebindestrichein} \setinterfacecommand{setupindentedtext}{setupindentedtext} \setinterfacecommand{setupindenting}{stelleeinziehenein} \setinterfacecommand{setupinmargin}{stelleinmarginalieein} \setinterfacecommand{setupinteraction}{stelleinteraktionein} \setinterfacecommand{setupinteractionbar}{stelleinteraktionsbalkenein} \setinterfacecommand{setupinteractionmenu}{stelleinteraktionsmenueein} \setinterfacecommand{setupinteractionscreen}{stelleinteraktionsbildschirmein} \setinterfacecommand{setupinterlinespace}{stellezeilenabstandein} \setinterfacecommand{setupitemgroup}{setupitemgroup} \setinterfacecommand{setupitemgroups}{stelleaufzaehlungenein} \setinterfacecommand{setupitems}{stellepostenein} \setinterfacecommand{setuplabeltext}{stellelabeltextein} \setinterfacecommand{setuplanguage}{stellespracheein} \setinterfacecommand{setuplayout}{stellelayoutein} \setinterfacecommand{setuplegend}{stellelegendeein} \setinterfacecommand{setuplinenote}{setuplinenote} \setinterfacecommand{setuplinenumbering}{stellezeilennumerierungein} \setinterfacecommand{setuplines}{stellezeilenein} \setinterfacecommand{setuplinewidth}{stellelinienbreiteein} \setinterfacecommand{setuplist}{stellelisteein} \setinterfacecommand{setupmakeup}{stelleumbruchein} \setinterfacecommand{setupmarginblock}{setupmarginblock} \setinterfacecommand{setupmarginblocks}{stellemarginalblockein} \setinterfacecommand{setupmargindata}{setupmargindata} \setinterfacecommand{setupmarginrules}{stellemarginallinieein} \setinterfacecommand{setupmarking}{stellebeschriftungein} \setinterfacecommand{setupmathalignment}{setupmathalignment} \setinterfacecommand{setupnarrower}{stelleengerein} \setinterfacecommand{setupnotation}{setupnotation} \setinterfacecommand{setupnotations}{setupnotations} \setinterfacecommand{setupnote}{setupnote} \setinterfacecommand{setupnotes}{setupnotes} \setinterfacecommand{setupnumber}{setupnumber} \setinterfacecommand{setupnumbering}{stellenummerierungein} \setinterfacecommand{setupoppositeplacing}{stellegegenueberplatzierenein} \setinterfacecommand{setupoutput}{stelleausgabeein} \setinterfacecommand{setuppagecomment}{stelleseitenkommentarein} \setinterfacecommand{setuppagenumber}{stelleseitennummerein} \setinterfacecommand{setuppagenumbering}{stelleseitennummeriernungein} \setinterfacecommand{setuppagetransitions}{stelleseitenuebergangein} \setinterfacecommand{setuppalet}{stellepaletteein} \setinterfacecommand{setuppaper}{setuppaper} \setinterfacecommand{setuppapersize}{stellepapierformatein} \setinterfacecommand{setupparagraphnumbering}{stelleabsatznummerierungein} \setinterfacecommand{setupparagraphs}{stelleabsaetzeein} \setinterfacecommand{setupperiodkerning}{setupperiodkerning} \setinterfacecommand{setupplacement}{setupplacement} \setinterfacecommand{setuppositioning}{stellepositionierenein} \setinterfacecommand{setupprofiles}{stelleprofilein} \setinterfacecommand{setupprograms}{stelleprogrammein} \setinterfacecommand{setuppublications}{stellepublikationein} \setinterfacecommand{setupquote}{stellezitierenein} \setinterfacecommand{setupreferencelist}{stellereferenzlisteein} \setinterfacecommand{setupreferencing}{stellereferenzierenein} \setinterfacecommand{setupregister}{stelleregisterein} \setinterfacecommand{setuprotate}{stelledrehenein} \setinterfacecommand{setuprule}{setuprule} \setinterfacecommand{setupscreens}{stellerasterein} \setinterfacecommand{setupsection}{stelleabschnittein} \setinterfacecommand{setupsectionblock}{stelleabschnittsblockein} \setinterfacecommand{setupsorting}{stellesortierenein} \setinterfacecommand{setupspacing}{stellespatiumein} \setinterfacecommand{setupstartstop}{setupstartstop} \setinterfacecommand{setupstrut}{setupstrut} \setinterfacecommand{setupsubpagenumber}{stelleunterseitennummerein} \setinterfacecommand{setupsymbolset}{stellesymbolsetein} \setinterfacecommand{setupsynchronization}{stellesynchronisationein} \setinterfacecommand{setupsynchronizationbar}{stellesynchronisationsbalkenein} \setinterfacecommand{setupsynonyms}{stellesynonymein} \setinterfacecommand{setupsystem}{stellesystemein} \setinterfacecommand{setuptab}{stelletabein} \setinterfacecommand{setuptables}{stelletabellenein} \setinterfacecommand{setuptabulate}{stelletabulatorein} \setinterfacecommand{setuptext}{stelletextein} \setinterfacecommand{setuptextbackground}{setuptextbackground} \setinterfacecommand{setuptextnote}{setuptextnote} \setinterfacecommand{setuptextposition}{setuptextposition} \setinterfacecommand{setuptextrules}{stelletextumrissein} \setinterfacecommand{setuptexttexts}{stelletexttexteein} \setinterfacecommand{setuptextvariable}{setuptextvariable} \setinterfacecommand{setupthinrules}{stelleduennerumrissein} \setinterfacecommand{setuptolerance}{stelletoleranzein} \setinterfacecommand{setuptop}{stellenobenein} \setinterfacecommand{setuptoptexts}{stelletextobenein} \setinterfacecommand{setuptype}{stelletipein} \setinterfacecommand{setuptyping}{stelletippenein} \setinterfacecommand{setupunderbar}{stelleunterstreichenein} \setinterfacecommand{setupurl}{stelleurlein} \setinterfacecommand{setupversions}{stelleversionein} \setinterfacecommand{setupwhitespace}{stellezwischenraumein} \setinterfacecommand{setvisualizerfont}{setvisualizerfont} \setinterfacecommand{showbodyfont}{zeigefliesstext} \setinterfacecommand{showbodyfontenvironment}{zeigefliesstextumgebung} \setinterfacecommand{showcolor}{zeigefarbe} \setinterfacecommand{showcolorgroup}{zeigefarbengruppe} \setinterfacecommand{showcounter}{showcounter} \setinterfacecommand{showexternalfigures}{zeigeexterneabbildungen} \setinterfacecommand{showfields}{zeigefelder} \setinterfacecommand{showfont}{showfont} \setinterfacecommand{showfontdata}{showfontdata} \setinterfacecommand{showfontexpansion}{showfontexpansion} \setinterfacecommand{showfontitalics}{showfontitalics} \setinterfacecommand{showfontkerns}{showfontkerns} \setinterfacecommand{showfontparameters}{showfontparameters} \setinterfacecommand{showfontstrip}{showfontstrip} \setinterfacecommand{showfontstyle}{showfontstyle} \setinterfacecommand{showframe}{zeigerahmen} \setinterfacecommand{showgrid}{zeigegitter} \setinterfacecommand{showhyphenationtrace}{showhyphenationtrace} \setinterfacecommand{showkerning}{showkerning} \setinterfacecommand{showlayout}{zeigelayout} \setinterfacecommand{showmakeup}{zeigeumbruch} \setinterfacecommand{showminimalbaseline}{showminimalbaseline} \setinterfacecommand{showpalet}{zeigepalette} \setinterfacecommand{showprint}{zeigedruck} \setinterfacecommand{showsetups}{zeigeeinstellungen} \setinterfacecommand{showstruts}{zeigestruts} \setinterfacecommand{showsymbolset}{showsymbolset} \setinterfacecommand{smallcapped}{kap} \setinterfacecommand{someline}{einezeile} \setinterfacecommand{somewhere}{irgendwo} \setinterfacecommand{space}{spatium} \setinterfacecommand{specialitem}{specialitem} \setinterfacecommand{splitfloat}{teilegleitobjekt} \setinterfacecommand{startalignment}{startausrichtung} \setinterfacecommand{startbackground}{starthintergrund} \setinterfacecommand{startcoding}{startkodierung} \setinterfacecommand{startcolor}{startfarbe} \setinterfacecommand{startcolumnmakeup}{startcolumnmakeup} \setinterfacecommand{startcolumns}{startspalten} \setinterfacecommand{startcolumnset}{startcolumnset} \setinterfacecommand{startcombination}{startkombination} \setinterfacecommand{startcomponent}{startkomponente} \setinterfacecommand{startdocument}{startdokument} \setinterfacecommand{startenvironment}{startumgebung} \setinterfacecommand{startfigure}{startabbildung} \setinterfacecommand{startframed}{startframed} \setinterfacecommand{startglobal}{startglobal} \setinterfacecommand{startline}{startzeile} \setinterfacecommand{startlinecorrection}{startzeilenkorrektur} \setinterfacecommand{startlinenote}{startlinenote} \setinterfacecommand{startlinenumbering}{startzeilennumerierung} \setinterfacecommand{startlines}{startzeilen} \setinterfacecommand{startlocal}{startlokal} \setinterfacecommand{startlocalfootnotes}{startlokalefussnoten} \setinterfacecommand{startmakeup}{startumbruch} \setinterfacecommand{startmarginblock}{startmarginalblock} \setinterfacecommand{startmarginrule}{startmarginallinie} \setinterfacecommand{startnamedconstruction}{startnamedconstruction} \setinterfacecommand{startnameddescription}{startnameddescription} \setinterfacecommand{startnamedenumeration}{startnamedenumeration} \setinterfacecommand{startnamedmatrix}{startnamedmatrix} \setinterfacecommand{startnamedsection}{startnamedsection} \setinterfacecommand{startnamedsubformulas}{startnamedsubformulas} \setinterfacecommand{startnamedtyping}{startnamedtyping} \setinterfacecommand{startnarrower}{startenger} \setinterfacecommand{startopposite}{startgegenueber} \setinterfacecommand{startoverlay}{startoverlay} \setinterfacecommand{startoverview}{startueberblick} \setinterfacecommand{startpacked}{startkleinerdurchschuss} \setinterfacecommand{startpositioning}{startpositionieren} \setinterfacecommand{startproduct}{startprodukt} \setinterfacecommand{startprofile}{startprofil} \setinterfacecommand{startproject}{startprojekt} \setinterfacecommand{startquotation}{startzitat} \setinterfacecommand{startraster}{startraster} \setinterfacecommand{startsymbolset}{startsymbolset} \setinterfacecommand{startsynchronization}{startsynchronisation} \setinterfacecommand{starttable}{starttabelle} \setinterfacecommand{starttables}{starttabellen} \setinterfacecommand{starttext}{starttext} \setinterfacecommand{starttextbackground}{starttextbackground} \setinterfacecommand{starttextrule}{starttextlinie} \setinterfacecommand{startunpacked}{startgrosserdurchschuss} \setinterfacecommand{startversion}{startversion} \setinterfacecommand{stopalignment}{stopausrichtung} \setinterfacecommand{stopbackground}{stophintergrund} \setinterfacecommand{stopcoding}{stopkodierung} \setinterfacecommand{stopcolor}{stopfarbe} \setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup} \setinterfacecommand{stopcolumns}{stopspalten} \setinterfacecommand{stopcolumnset}{stopcolumnset} \setinterfacecommand{stopcombination}{stopkombination} \setinterfacecommand{stopcomponent}{stopkomponente} \setinterfacecommand{stopdocument}{stopdokument} \setinterfacecommand{stopenvironment}{stopumgebung} \setinterfacecommand{stopframed}{stopframed} \setinterfacecommand{stopglobal}{stopglobal} \setinterfacecommand{stopline}{stopzeile} \setinterfacecommand{stoplinecorrection}{stopzeilenkorrektur} \setinterfacecommand{stoplinenote}{stoplinenote} \setinterfacecommand{stoplinenumbering}{stopzeilennumerierung} \setinterfacecommand{stoplines}{stopzeilen} \setinterfacecommand{stoplocal}{stoplokal} \setinterfacecommand{stoplocalfootnotes}{stoplokalefussnoten} \setinterfacecommand{stopmakeup}{stopumbruch} \setinterfacecommand{stopmarginblock}{stopmarginalblock} \setinterfacecommand{stopmarginrule}{stopmarginallinie} \setinterfacecommand{stopnamedconstruction}{stopnamedconstruction} \setinterfacecommand{stopnameddescription}{stopnameddescription} \setinterfacecommand{stopnamedenumeration}{stopnamedenumeration} \setinterfacecommand{stopnamedmatrix}{stopnamedmatrix} \setinterfacecommand{stopnamedsection}{stopnamedsection} \setinterfacecommand{stopnamedsubformulas}{stopnamedsubformulas} \setinterfacecommand{stopnamedtyping}{stopnamedtyping} \setinterfacecommand{stopnarrower}{stopenger} \setinterfacecommand{stopopposite}{stopgegenueber} \setinterfacecommand{stopoverlay}{stopoverlay} \setinterfacecommand{stopoverview}{stopueberblick} \setinterfacecommand{stoppacked}{stopkleinerdurchschuss} \setinterfacecommand{stoppositioning}{stoppositionieren} \setinterfacecommand{stopproduct}{stopprodukt} \setinterfacecommand{stopprofile}{stopprofil} \setinterfacecommand{stopproject}{stopprojekt} \setinterfacecommand{stopquotation}{stopzitat} \setinterfacecommand{stopraster}{stopraster} \setinterfacecommand{stopsynchronization}{stopsynchronisation} \setinterfacecommand{stoptable}{stoptabelle} \setinterfacecommand{stoptables}{stoptabellen} \setinterfacecommand{stoptext}{stoptext} \setinterfacecommand{stoptextbackground}{stoptextbackground} \setinterfacecommand{stoptextrule}{stoptextlinie} \setinterfacecommand{stopunpacked}{stopgrosserdurchschuss} \setinterfacecommand{stopversion}{stopversion} \setinterfacecommand{stretched}{gestreckt} \setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter} \setinterfacecommand{stripcharacter}{stripcharacter} \setinterfacecommand{subformulanumber}{unterformelnummer} \setinterfacecommand{subpagenumber}{subpagenumber} \setinterfacecommand{subtractfeature}{subtractfeature} \setinterfacecommand{switchtobodyfont}{wechselezumfliesstext} \setinterfacecommand{switchtorawfont}{switchtorawfont} \setinterfacecommand{sym}{sym} \setinterfacecommand{symbol}{symbol} \setinterfacecommand{symoffset}{symoffset} \setinterfacecommand{synchronizationbar}{synchronisationsbalken} \setinterfacecommand{synchronize}{synchronisieren} \setinterfacecommand{tab}{tab} \setinterfacecommand{testcolumn}{testcolumn} \setinterfacecommand{testfeature}{testfeature} \setinterfacecommand{testfeatureonce}{testfeatureonce} \setinterfacecommand{testpage}{testpage} \setinterfacecommand{tex}{tex} \setinterfacecommand{textbackground}{textbackground} \setinterfacecommand{textcolor}{textcolor} \setinterfacecommand{textheight}{texthoehe} \setinterfacecommand{textnote}{textnote} \setinterfacecommand{textreference}{textreferenz} \setinterfacecommand{textrule}{textlinie} \setinterfacecommand{textvariable}{textvariable} \setinterfacecommand{textwidth}{textbreite} \setinterfacecommand{thefirstcharacter}{thefirstcharacter} \setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize} \setinterfacecommand{theremainingcharacters}{theremainingcharacters} \setinterfacecommand{thinrule}{duennelinie} \setinterfacecommand{thinrules}{duennerumriss} \setinterfacecommand{tolinenote}{tolinenote} \setinterfacecommand{tooltip}{tooltip} \setinterfacecommand{topdistance}{abstandoben} \setinterfacecommand{topheight}{hoeheoben} \setinterfacecommand{topspace}{kopfweite} \setinterfacecommand{totalnumberofpages}{gesamtseitenanzahl} \setinterfacecommand{translate}{uebersetzten} \setinterfacecommand{txt}{txt} \setinterfacecommand{typ}{tip} \setinterfacecommand{type}{tippen} \setinterfacecommand{typebuffer}{tippepuffer} \setinterfacecommand{typedefinedbuffer}{typedefinedbuffer} \setinterfacecommand{typefile}{tippedatei} \setinterfacecommand{typeinlinebuffer}{typeinlinebuffer} \setinterfacecommand{typing}{typing} \setinterfacecommand{unitmeaning}{bedeutung} \setinterfacecommand{unknown}{unbekant} \setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern} \setinterfacecommand{useJSscripts}{verwendeJSscript} \setinterfacecommand{useURL}{verwendeURL} \setinterfacecommand{useXMLfilter}{useXMLfilter} \setinterfacecommand{useblocks}{verwendebloecke} \setinterfacecommand{usebodyfont}{usebodyfont} \setinterfacecommand{usebodyfontparameter}{usebodyfontparameter} \setinterfacecommand{usecommands}{verwendebefehl} \setinterfacecommand{useencoding}{benutzekodierung} \setinterfacecommand{useexternaldocument}{verwendeexteresdokument} \setinterfacecommand{useexternalfigure}{verwendeexterneabbildung} \setinterfacecommand{useexternalfile}{verwendeexternedatei} \setinterfacecommand{useexternalfiles}{verwendeexternedateien} \setinterfacecommand{useexternalsoundtrack}{verwendeexternestonstueck} \setinterfacecommand{usemodule}{verwendemodul} \setinterfacecommand{usemodules}{verwendemodule} \setinterfacecommand{usepath}{benutzeverzeichnis} \setinterfacecommand{usereferences}{verwendereferenzen} \setinterfacecommand{usespecials}{benutzespezielles} \setinterfacecommand{usesymbols}{verwendesymbole} \setinterfacecommand{usetypescript}{usetypescript} \setinterfacecommand{usetypescriptfile}{usetypescriptfile} \setinterfacecommand{useurl}{verwendeurl} \setinterfacecommand{verbatim}{verbatim} \setinterfacecommand{version}{version} \setinterfacecommand{vl}{vl} \setinterfacecommand{weekday}{wochentag} \setinterfacecommand{whitespace}{zwischenraum} \setinterfacecommand{widthspanningtext}{widthspanningtext} \setinterfacecommand{wordright}{wortrechts} \setinterfacecommand{writebetweenlist}{schreibezwischenliste} \setinterfacecommand{writetolist}{schreibezurliste} \setinterfacecommand{writetoreferencelist}{schreibezurreferenzliste} \setinterfacecommand{writetoregister}{schreibezumregister} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/symb-uni.mkii0000644000175000017500000023200414536300610024717 0ustar hillehille%D \module %D [ file=symb-uni, %D version=2004.11.15, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Unicode Symbols, %D author=Adam T. Lindsay, %D date=\currentdate, %D copyright={Adam Lindsay \& Hans Hagen}] %C %C This module is part of the \CONTEXT\ macro||package and is %C prepared by Adam T. Lindsay. %D The content of this file originates from the Unicode standard, via some %D original XSLT scripts and some hand-editing. This file is open for use %D with the ConTeXt typesetting system. %D %D Adam considers the symbol names and categories to be stable, as they're %D directly derived from the Unicode standard. %D %D \startitemize[packed] %D \item Originated 2004-01-05 by Adam T. Lindsay %D \item Updated 2004-01-16 with Unicode vector 0x27xx and some in %D 215x and 246x %D \item Updated 2004-11-15 to include default fonts for MacOSX and %D \XETEX. %D \stopitemize %D %D The following macros adapt to default fonts (that contain the characters) %D in MacOSX. The font selection mechanism is likely to change once \XETEX\ %D correctly supports \type{\doiffontcharelse}. \doifundefinedelse{XeTeXversion} {\let\USymbChar \uchar \let\USymbCharTwo \uchar \let\USymbCharZapf\uchar} {\def\USymbChar #1#2{\bgroup\UnicodeSymbolFont \uchar{#1}{#2}\relax\egroup} \def\USymbCharTwo #1#2{\bgroup\UnicodeSymbolFontTwo \uchar{#1}{#2}\relax\egroup} \def\USymbCharZapf#1#2{\bgroup\UnicodeSymbolFontZapf\uchar{#1}{#2}\relax\egroup} \doifundefined{UnicodeSymbolFont} {\definefont[UnicodeSymbolFont] ["Apple Symbols" sa *]} \doifundefined{UnicodeSymbolFontTwo} {\definefont[UnicodeSymbolFontTwo] ["Lucida Grande" sa *]} \doifundefined{UnicodeSymbolFontZapf}{\definefont[UnicodeSymbolFontZapf]["Zapf Dingbats" sa *]}} \startsymbolset[Unicode Additional Punctuation] % 0x2000: Requires UnicodeRegular20 \definesymbol[Caret][\USymbChar{32}{56}] % CARET \definesymbol[ReferenceMark][\USymbChar{32}{59}] % REFERENCE MARK \definesymbol[DoubleExclamationMark][\USymbChar{32}{60}] % DOUBLE EXCLAMATION MARK \definesymbol[Interrobang][\USymbChar{32}{61}] % INTERROBANG \definesymbol[Overline][\USymbChar{32}{62}] % OVERLINE \definesymbol[Undertie][\USymbChar{32}{63}] % UNDERTIE \definesymbol[CharacterTie][\USymbChar{32}{64}] % CHARACTER TIE \definesymbol[CaretInsertionPoint][\USymbChar{32}{65}] % CARET INSERTION POINT \definesymbol[Asterism][\USymbChar{32}{66}] % ASTERISM \definesymbol[HyphenBullet][\USymbChar{32}{67}] % HYPHEN BULLET \definesymbol[FractionSlash][\USymbChar{32}{68}] % FRACTION SLASH \definesymbol[LeftSquareBracketWithQuill][\USymbChar{32}{69}] % LEFT SQUARE BRACKET WITH QUILL \definesymbol[RightSquareBracketWithQuill][\USymbChar{32}{70}] % RIGHT SQUARE BRACKET WITH QUILL \definesymbol[QuestionExclamationMark][\USymbChar{32}{72}] % QUESTION EXCLAMATION MARK \definesymbol[ExclamationQuestionMark][\USymbChar{32}{73}] % EXCLAMATION QUESTION MARK \definesymbol[TironianSignEt][\USymbChar{32}{74}] % TIRONIAN SIGN ET \definesymbol[ReversedPilcrowSign][\USymbChar{32}{75}] % REVERSED PILCROW SIGN \definesymbol[BlackLeftwardsBullet][\USymbChar{32}{76}] % BLACK LEFTWARDS BULLET \definesymbol[BlackRightwardsBullet][\USymbChar{32}{77}] % BLACK RIGHTWARDS BULLET \stopsymbolset \startsymbolset[Unicode Currency] % 0x20A0: Requires UnicodeRegular20 \definesymbol[Euro-currencySign][\USymbChar{32}{160}] % EURO-CURRENCY SIGN \definesymbol[ColonSign][\USymbChar{32}{161}] % COLON SIGN \definesymbol[CruzeiroSign][\USymbChar{32}{162}] % CRUZEIRO SIGN \definesymbol[FrenchFrancSign][\USymbChar{32}{163}] % FRENCH FRANC SIGN \definesymbol[LiraSign][\USymbChar{32}{164}] % LIRA SIGN \definesymbol[MillSign][\USymbChar{32}{165}] % MILL SIGN \definesymbol[NairaSign][\USymbChar{32}{166}] % NAIRA SIGN \definesymbol[PesetaSign][\USymbChar{32}{167}] % PESETA SIGN \definesymbol[RupeeSign][\USymbChar{32}{168}] % RUPEE SIGN \definesymbol[WonSign][\USymbChar{32}{169}] % WON SIGN \definesymbol[NewSheqelSign][\USymbChar{32}{170}] % NEW SHEQEL SIGN \definesymbol[DongSign][\USymbChar{32}{171}] % DONG SIGN \definesymbol[EuroSign][\USymbChar{32}{172}] % EURO SIGN \definesymbol[KipSign][\USymbChar{32}{173}] % KIP SIGN \definesymbol[TugrikSign][\USymbChar{32}{174}] % TUGRIK SIGN \definesymbol[DrachmaSign][\USymbChar{32}{175}] % DRACHMA SIGN \definesymbol[GermanPennySign][\USymbChar{32}{176}] % [Unassigned U+20B0] \definesymbol[PfennigSign][\USymbChar{32}{176}] % Unofficial duplicate \definesymbol[PesoSign][\USymbChar{32}{177}] % [Unassigned U+20B1] \stopsymbolset \startsymbolset[Unicode Letterlike] % 0x2100: Requires UnicodeRegular21 \definesymbol[DegreeCelsius][\USymbChar{33}{3}] % DEGREE CELSIUS \definesymbol[EulerConstant][\USymbChar{33}{7}] % EULER CONSTANT \definesymbol[Scruple][\USymbChar{33}{8}] % SCRUPLE \definesymbol[DegreeFahrenheit][\USymbChar{33}{9}] % DEGREE FAHRENHEIT \definesymbol[PlanckConstant][\USymbChar{33}{14}] % PLANCK CONSTANT \definesymbol[PlanckConstantOverTwoPi][\USymbChar{33}{15}] % PLANCK CONSTANT OVER TWO PI \definesymbol[LBBarSymbol][\USymbChar{33}{20}] % L B BAR SYMBOL \definesymbol[Versicle][\USymbChar{33}{35}] % VERSICLE \definesymbol[OunceSign][\USymbChar{33}{37}] % OUNCE SIGN \definesymbol[OhmSign][\USymbChar{33}{38}] % OHM SIGN \definesymbol[InvertedOhmSign][\USymbChar{33}{39}] % INVERTED OHM SIGN \definesymbol[KelvinSign][\USymbChar{33}{42}] % KELVIN SIGN \definesymbol[AngstromSign][\USymbChar{33}{43}] % ANGSTROM SIGN \definesymbol[EstimatedSymbol][\USymbChar{33}{46}] % ESTIMATED SYMBOL \stopsymbolset \startsymbolset[Unicode Letterlike Additional] % 0x2100: Requires UnicodeRegular21 \definesymbol[AccountOf][\USymbChar{33}{0}] % ACCOUNT OF \definesymbol[AddressedToTheSubject][\USymbChar{33}{1}] % ADDRESSED TO THE SUBJECT \definesymbol[CareOf][\USymbChar{33}{5}] % CARE OF \definesymbol[CadaUna][\USymbChar{33}{6}] % CADA UNA \definesymbol[CentreLineSymbol][\USymbChar{33}{4}] % CENTRE LINE SYMBOL \definesymbol[NumeroSign][\USymbChar{33}{22}] % NUMERO SIGN \definesymbol[SoundRecordingCopyright][\USymbChar{33}{23}] % SOUND RECORDING COPYRIGHT \definesymbol[PrescriptionTake][\USymbChar{33}{30}] % PRESCRIPTION TAKE \definesymbol[Response][\USymbChar{33}{31}] % RESPONSE \definesymbol[ServiceMark][\USymbChar{33}{32}] % SERVICE MARK \definesymbol[TelephoneSign][\USymbChar{33}{33}] % TELEPHONE SIGN \definesymbol[TradeMarkSign][\USymbChar{33}{34}] % TRADE MARK SIGN \definesymbol[InformationSource][\USymbChar{33}{57}] % INFORMATION SOURCE \definesymbol[PropertyLine][\USymbChar{33}{74}] % [Unassigned U+214A] \stopsymbolset \startsymbolset[Unicode Script Letterlike] % 0x2100: Requires UnicodeRegular21 \definesymbol[ScriptSmallG][\USymbChar{33}{10}] % SCRIPT SMALL G \definesymbol[ScriptCapitalH][\USymbChar{33}{11}] % SCRIPT CAPITAL H \definesymbol[ScriptCapitalI][\USymbChar{33}{16}] % SCRIPT CAPITAL I \definesymbol[ScriptCapitalL][\USymbChar{33}{18}] % SCRIPT CAPITAL L \definesymbol[ScriptSmallL][\USymbChar{33}{19}] % SCRIPT SMALL L \definesymbol[ScriptCapitalP][\USymbChar{33}{24}] % SCRIPT CAPITAL P \definesymbol[ScriptCapitalR][\USymbChar{33}{27}] % SCRIPT CAPITAL R \definesymbol[ScriptSmallE][\USymbChar{33}{47}] % SCRIPT SMALL E \definesymbol[ScriptCapitalE][\USymbChar{33}{48}] % SCRIPT CAPITAL E \definesymbol[ScriptCapitalF][\USymbChar{33}{49}] % SCRIPT CAPITAL F \definesymbol[ScriptCapitalB][\USymbChar{33}{44}] % SCRIPT CAPITAL B \definesymbol[ScriptCapitalM][\USymbChar{33}{51}] % SCRIPT CAPITAL M \definesymbol[ScriptSmallO][\USymbChar{33}{52}] % SCRIPT SMALL O \stopsymbolset \startsymbolset[Unicode Hebrew Letterlike] % 0x2100: Requires UnicodeRegular21 \definesymbol[AlefSymbol][\USymbChar{33}{53}] % ALEF SYMBOL \definesymbol[BetSymbol][\USymbChar{33}{54}] % BET SYMBOL \definesymbol[GimelSymbol][\USymbChar{33}{55}] % GIMEL SYMBOL \definesymbol[DaletSymbol][\USymbChar{33}{56}] % DALET SYMBOL \stopsymbolset \startsymbolset[Unicode Turned Letterlike] % 0x2100: Requires UnicodeRegular21 \definesymbol[RotatedCapitalQ][\USymbChar{33}{58}] % ROTATED CAPITAL Q \definesymbol[TurnedSansSerifCapitalG][\USymbChar{33}{65}] % [Unassigned U+2141] \definesymbol[TurnedSansSerifCapitalL][\USymbChar{33}{66}] % [Unassigned U+2142] \definesymbol[ReversedSansSerifCapitalL][\USymbChar{33}{67}] % [Unassigned U+2143] \definesymbol[TurnedSansSerifCapitalY][\USymbChar{33}{68}] % [Unassigned U+2144] \definesymbol[TurnedAmpersand][\USymbChar{33}{75}] % [Unassigned U+214B] \definesymbol[TurnedGreekSmallLetterIota][\USymbChar{33}{41}] % TURNED GREEK SMALL LETTER IOTA \definesymbol[TurnedCapitalF][\USymbChar{33}{50}] % TURNED CAPITAL F \stopsymbolset \startsymbolset[Unicode Black-letter Letterlike] % 0x2100: Requires UnicodeRegular21 \definesymbol[BlackLetterCapitalH][\USymbChar{33}{12}] % BLACK-LETTER CAPITAL H \definesymbol[BlackLetterCapitalI][\USymbChar{33}{17}] % BLACK-LETTER CAPITAL I \definesymbol[BlackLetterCapitalR][\USymbChar{33}{28}] % BLACK-LETTER CAPITAL R \definesymbol[BlackLetterCapitalZ][\USymbChar{33}{40}] % BLACK-LETTER CAPITAL Z \definesymbol[BlackLetterCapitalC][\USymbChar{33}{45}] % BLACK-LETTER CAPITAL C \stopsymbolset \startsymbolset[Unicode Double-struck Letterlike Math] % 0x2100: Requires UnicodeRegular21 \definesymbol[DoubleStruckCapitalC][\USymbChar{33}{2}] % DOUBLE-STRUCK CAPITAL C \definesymbol[DoubleStruckCapitalH][\USymbChar{33}{13}] % DOUBLE-STRUCK CAPITAL H \definesymbol[DoubleStruckCapitalN][\USymbChar{33}{21}] % DOUBLE-STRUCK CAPITAL N \definesymbol[DoubleStruckCapitalP][\USymbChar{33}{25}] % DOUBLE-STRUCK CAPITAL P \definesymbol[DoubleStruckCapitalQ][\USymbChar{33}{26}] % DOUBLE-STRUCK CAPITAL Q \definesymbol[DoubleStruckCapitalR][\USymbChar{33}{29}] % DOUBLE-STRUCK CAPITAL R \definesymbol[DoubleStruckCapitalZ][\USymbChar{33}{36}] % DOUBLE-STRUCK CAPITAL Z \definesymbol[DoubleStruckSmallGamma][\USymbChar{33}{61}] % [Unassigned U+213D] \definesymbol[DoubleStruckCapitalGamma][\USymbChar{33}{62}] % [Unassigned U+213E] \definesymbol[DoubleStruckCapitalPi][\USymbChar{33}{63}] % [Unassigned U+213F] \definesymbol[DoubleStruckNArySummation][\USymbChar{33}{64}] % [Unassigned U+2140] \definesymbol[DoubleStruckItalicCapitalD][\USymbChar{33}{69}] % [Unassigned U+2145] \definesymbol[DoubleStruckItalicSmallD][\USymbChar{33}{70}] % [Unassigned U+2146] \definesymbol[DoubleStruckItalicSmallE][\USymbChar{33}{71}] % [Unassigned U+2147] \definesymbol[DoubleStruckItalicSmallI][\USymbChar{33}{72}] % [Unassigned U+2148] \definesymbol[DoubleStruckItalicSmallJ][\USymbChar{33}{73}] % [Unassigned U+2149] \stopsymbolset \startsymbolset[Unicode Roman Numerals] % 0x2150: Requires UnicodeRegular21 \definesymbol[RomanNumeralOne][\USymbCharTwo{33}{96}] % ROMAN NUMERAL ONE \definesymbol[RomanNumeralTwo][\USymbCharTwo{33}{97}] % ROMAN NUMERAL TWO \definesymbol[RomanNumeralThree][\USymbCharTwo{33}{98}] % ROMAN NUMERAL THREE \definesymbol[RomanNumeralFour][\USymbCharTwo{33}{99}] % ROMAN NUMERAL FOUR \definesymbol[RomanNumeralFive][\USymbCharTwo{33}{100}] % ROMAN NUMERAL FIVE \definesymbol[RomanNumeralSix][\USymbCharTwo{33}{101}] % ROMAN NUMERAL SIX \definesymbol[RomanNumeralSeven][\USymbCharTwo{33}{102}] % ROMAN NUMERAL SEVEN \definesymbol[RomanNumeralEight][\USymbCharTwo{33}{103}] % ROMAN NUMERAL EIGHT \definesymbol[RomanNumeralNine][\USymbCharTwo{33}{104}] % ROMAN NUMERAL NINE \definesymbol[RomanNumeralTen][\USymbCharTwo{33}{105}] % ROMAN NUMERAL TEN \definesymbol[RomanNumeralEleven][\USymbCharTwo{33}{106}] % ROMAN NUMERAL ELEVEN \definesymbol[RomanNumeralTwelve][\USymbCharTwo{33}{107}] % ROMAN NUMERAL TWELVE \definesymbol[RomanNumeralFifty][\USymbCharTwo{33}{108}] % ROMAN NUMERAL FIFTY \definesymbol[RomanNumeralOneHundred][\USymbCharTwo{33}{109}] % ROMAN NUMERAL ONE HUNDRED \definesymbol[RomanNumeralFiveHundred][\USymbCharTwo{33}{110}] % ROMAN NUMERAL FIVE HUNDRED \definesymbol[RomanNumeralOneThousand][\USymbCharTwo{33}{111}] % ROMAN NUMERAL ONE THOUSAND \definesymbol[RomanNumeralOneThousandCD][\USymbCharTwo{33}{128}] % ROMAN NUMERAL ONE THOUSAND C D \definesymbol[RomanNumeralFiveThousand][\USymbCharTwo{33}{129}] % ROMAN NUMERAL FIVE THOUSAND \definesymbol[RomanNumeralTenThousand][\USymbCharTwo{33}{130}] % ROMAN NUMERAL TEN THOUSAND \definesymbol[RomanNumeralReversedOneHundred][\USymbCharTwo{33}{131}] % ROMAN NUMERAL REVERSED ONE HUNDRED \stopsymbolset \startsymbolset[Unicode Small Roman Numerals] % 0x2150: Requires UnicodeRegular21 \definesymbol[SmallRomanNumeralOne][\USymbCharTwo{33}{112}] % SMALL ROMAN NUMERAL ONE \definesymbol[SmallRomanNumeralTwo][\USymbCharTwo{33}{113}] % SMALL ROMAN NUMERAL TWO \definesymbol[SmallRomanNumeralThree][\USymbCharTwo{33}{114}] % SMALL ROMAN NUMERAL THREE \definesymbol[SmallRomanNumeralFour][\USymbCharTwo{33}{115}] % SMALL ROMAN NUMERAL FOUR \definesymbol[SmallRomanNumeralFive][\USymbCharTwo{33}{116}] % SMALL ROMAN NUMERAL FIVE \definesymbol[SmallRomanNumeralSix][\USymbCharTwo{33}{117}] % SMALL ROMAN NUMERAL SIX \definesymbol[SmallRomanNumeralSeven][\USymbCharTwo{33}{118}] % SMALL ROMAN NUMERAL SEVEN \definesymbol[SmallRomanNumeralEight][\USymbCharTwo{33}{119}] % SMALL ROMAN NUMERAL EIGHT \definesymbol[SmallRomanNumeralNine][\USymbCharTwo{33}{120}] % SMALL ROMAN NUMERAL NINE \definesymbol[SmallRomanNumeralTen][\USymbCharTwo{33}{121}] % SMALL ROMAN NUMERAL TEN \definesymbol[SmallRomanNumeralEleven][\USymbCharTwo{33}{122}] % SMALL ROMAN NUMERAL ELEVEN \definesymbol[SmallRomanNumeralTwelve][\USymbCharTwo{33}{123}] % SMALL ROMAN NUMERAL TWELVE \definesymbol[SmallRomanNumeralFifty][\USymbCharTwo{33}{124}] % SMALL ROMAN NUMERAL FIFTY \definesymbol[SmallRomanNumeralOneHundred][\USymbCharTwo{33}{125}] % SMALL ROMAN NUMERAL ONE HUNDRED \definesymbol[SmallRomanNumeralFiveHundred][\USymbCharTwo{33}{126}] % SMALL ROMAN NUMERAL FIVE HUNDRED \definesymbol[SmallRomanNumeralOneThousand][\USymbCharTwo{33}{127}] % SMALL ROMAN NUMERAL ONE THOUSAND \stopsymbolset \startsymbolset[Unicode Arrows] % 0x2190: Requires UnicodeRegular21 \definesymbol[LeftwardsArrow][\USymbChar{33}{144}] % LEFTWARDS ARROW \definesymbol[UpwardsArrow][\USymbChar{33}{145}] % UPWARDS ARROW \definesymbol[RightwardsArrow][\USymbChar{33}{146}] % RIGHTWARDS ARROW \definesymbol[DownwardsArrow][\USymbChar{33}{147}] % DOWNWARDS ARROW \definesymbol[LeftRightArrow][\USymbChar{33}{148}] % LEFT RIGHT ARROW \definesymbol[UpDownArrow][\USymbChar{33}{149}] % UP DOWN ARROW \definesymbol[NorthWestArrow][\USymbChar{33}{150}] % NORTH WEST ARROW \definesymbol[NorthEastArrow][\USymbChar{33}{151}] % NORTH EAST ARROW \definesymbol[SouthEastArrow][\USymbChar{33}{152}] % SOUTH EAST ARROW \definesymbol[SouthWestArrow][\USymbChar{33}{153}] % SOUTH WEST ARROW \definesymbol[LeftwardsArrowWithStroke][\USymbChar{33}{154}] % LEFTWARDS ARROW WITH STROKE \definesymbol[RightwardsArrowWithStroke][\USymbChar{33}{155}] % RIGHTWARDS ARROW WITH STROKE \definesymbol[LeftwardsWaveArrow][\USymbChar{33}{156}] % LEFTWARDS WAVE ARROW \definesymbol[RightwardsWaveArrow][\USymbChar{33}{157}] % RIGHTWARDS WAVE ARROW \definesymbol[LeftwardsTwoHeadedArrow][\USymbChar{33}{158}] % LEFTWARDS TWO HEADED ARROW \definesymbol[UpwardsTwoHeadedArrow][\USymbChar{33}{159}] % UPWARDS TWO HEADED ARROW \definesymbol[RightwardsTwoHeadedArrow][\USymbChar{33}{160}] % RIGHTWARDS TWO HEADED ARROW \definesymbol[DownwardsTwoHeadedArrow][\USymbChar{33}{161}] % DOWNWARDS TWO HEADED ARROW \definesymbol[LeftwardsArrowWithTail][\USymbChar{33}{162}] % LEFTWARDS ARROW WITH TAIL \definesymbol[RightwardsArrowWithTail][\USymbChar{33}{163}] % RIGHTWARDS ARROW WITH TAIL \definesymbol[LeftwardsArrowFromBar][\USymbChar{33}{164}] % LEFTWARDS ARROW FROM BAR \definesymbol[UpwardsArrowFromBar][\USymbChar{33}{165}] % UPWARDS ARROW FROM BAR \definesymbol[RightwardsArrowFromBar][\USymbChar{33}{166}] % RIGHTWARDS ARROW FROM BAR \definesymbol[DownwardsArrowFromBar][\USymbChar{33}{167}] % DOWNWARDS ARROW FROM BAR \definesymbol[UpDownArrowWithBase][\USymbChar{33}{168}] % UP DOWN ARROW WITH BASE \definesymbol[LeftwardsArrowWithHook][\USymbChar{33}{169}] % LEFTWARDS ARROW WITH HOOK \definesymbol[RightwardsArrowWithHook][\USymbChar{33}{170}] % RIGHTWARDS ARROW WITH HOOK \definesymbol[LeftwardsArrowWithLoop][\USymbChar{33}{171}] % LEFTWARDS ARROW WITH LOOP \definesymbol[RightwardsArrowWithLoop][\USymbChar{33}{172}] % RIGHTWARDS ARROW WITH LOOP \definesymbol[LeftRightWaveArrow][\USymbChar{33}{173}] % LEFT RIGHT WAVE ARROW \definesymbol[LeftRightArrowWithStroke][\USymbChar{33}{174}] % LEFT RIGHT ARROW WITH STROKE \definesymbol[DownwardsZigzagArrow][\USymbChar{33}{175}] % DOWNWARDS ZIGZAG ARROW \definesymbol[UpwardsArrowWithTipLeftwards][\USymbChar{33}{176}] % UPWARDS ARROW WITH TIP LEFTWARDS \definesymbol[UpwardsArrowWithTipRightwards][\USymbChar{33}{177}] % UPWARDS ARROW WITH TIP RIGHTWARDS \definesymbol[DownwardsArrowWithTipLeftwards][\USymbChar{33}{178}] % DOWNWARDS ARROW WITH TIP LEFTWARDS \definesymbol[DownwardsArrowWithTipRightwards][\USymbChar{33}{179}] % DOWNWARDS ARROW WITH TIP RIGHTWARDS \definesymbol[RightwardsArrowWithCornerDownwards][\USymbChar{33}{180}] % RIGHTWARDS ARROW WITH CORNER DOWNWARDS \definesymbol[DownwardsArrowWithCornerLeftwards][\USymbChar{33}{181}] % DOWNWARDS ARROW WITH CORNER LEFTWARDS \definesymbol[AnticlockwiseTopSemicircleArrow][\USymbChar{33}{182}] % ANTICLOCKWISE TOP SEMICIRCLE ARROW \definesymbol[ClockwiseTopSemicircleArrow][\USymbChar{33}{183}] % CLOCKWISE TOP SEMICIRCLE ARROW \definesymbol[NorthWestArrowToLongBar][\USymbChar{33}{184}] % NORTH WEST ARROW TO LONG BAR \definesymbol[AnticlockwiseOpenCircleArrow][\USymbChar{33}{186}] % ANTICLOCKWISE OPEN CIRCLE ARROW \definesymbol[ClockwiseOpenCircleArrow][\USymbChar{33}{187}] % CLOCKWISE OPEN CIRCLE ARROW \definesymbol[LeftwardsHarpoonWithBarbUpwards][\USymbChar{33}{188}] % LEFTWARDS HARPOON WITH BARB UPWARDS \definesymbol[LeftwardsHarpoonWithBarbDownwards][\USymbChar{33}{189}] % LEFTWARDS HARPOON WITH BARB DOWNWARDS \definesymbol[UpwardsHarpoonWithBarbRightwards][\USymbChar{33}{190}] % UPWARDS HARPOON WITH BARB RIGHTWARDS \definesymbol[UpwardsHarpoonWithBarbLeftwards][\USymbChar{33}{191}] % UPWARDS HARPOON WITH BARB LEFTWARDS \definesymbol[RightwardsHarpoonWithBarbUpwards][\USymbChar{33}{192}] % RIGHTWARDS HARPOON WITH BARB UPWARDS \definesymbol[RightwardsHarpoonWithBarbDownwards][\USymbChar{33}{193}] % RIGHTWARDS HARPOON WITH BARB DOWNWARDS \definesymbol[DownwardsHarpoonWithBarbRightwards][\USymbChar{33}{194}] % DOWNWARDS HARPOON WITH BARB RIGHTWARDS \definesymbol[DownwardsHarpoonWithBarbLeftwards][\USymbChar{33}{195}] % DOWNWARDS HARPOON WITH BARB LEFTWARDS \definesymbol[LeftwardsSquiggleArrow][\USymbChar{33}{220}] % LEFTWARDS SQUIGGLE ARROW \definesymbol[RightwardsSquiggleArrow][\USymbChar{33}{221}] % RIGHTWARDS SQUIGGLE ARROW \definesymbol[UpwardsArrowWithDoubleStroke][\USymbChar{33}{222}] % UPWARDS ARROW WITH DOUBLE STROKE \definesymbol[DownwardsArrowWithDoubleStroke][\USymbChar{33}{223}] % DOWNWARDS ARROW WITH DOUBLE STROKE \definesymbol[LeftwardsDashedArrow][\USymbChar{33}{224}] % LEFTWARDS DASHED ARROW \definesymbol[UpwardsDashedArrow][\USymbChar{33}{225}] % UPWARDS DASHED ARROW \definesymbol[RightwardsDashedArrow][\USymbChar{33}{226}] % RIGHTWARDS DASHED ARROW \definesymbol[DownwardsDashedArrow][\USymbChar{33}{227}] % DOWNWARDS DASHED ARROW \definesymbol[LeftwardsArrowToBar][\USymbChar{33}{228}] % LEFTWARDS ARROW TO BAR \definesymbol[RightwardsArrowToBar][\USymbChar{33}{229}] % RIGHTWARDS ARROW TO BAR \definesymbol[LeftwardsWhiteArrow][\USymbChar{33}{230}] % LEFTWARDS WHITE ARROW \definesymbol[UpwardsWhiteArrow][\USymbChar{33}{231}] % UPWARDS WHITE ARROW \definesymbol[RightwardsWhiteArrow][\USymbChar{33}{232}] % RIGHTWARDS WHITE ARROW \definesymbol[DownwardsWhiteArrow][\USymbChar{33}{233}] % DOWNWARDS WHITE ARROW \definesymbol[UpwardsWhiteArrowFromBar][\USymbChar{33}{234}] % UPWARDS WHITE ARROW FROM BAR \definesymbol[UpwardsWhiteArrowOnPedestal][\USymbChar{33}{235}] % UPWARDS WHITE ARROW ON PEDESTAL \definesymbol[UpwardsWhiteArrowOnPedestalWithHorizontalBar][\USymbChar{33}{236}] % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR \definesymbol[UpwardsWhiteArrowOnPedestalWithVerticalBar][\USymbChar{33}{237}] % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR \definesymbol[RightwardsWhiteArrowFromWall][\USymbChar{33}{240}] % RIGHTWARDS WHITE ARROW FROM WALL \definesymbol[NorthWestArrowToCorner][\USymbChar{33}{241}] % NORTH WEST ARROW TO CORNER \definesymbol[SouthEastArrowToCorner][\USymbChar{33}{242}] % SOUTH EAST ARROW TO CORNER \definesymbol[UpDownWhiteArrow][\USymbChar{33}{243}] % UP DOWN WHITE ARROW \stopsymbolset \startsymbolset[Unicode Multi Arrows] % 0x2190: Requires UnicodeRegular21 \definesymbol[LeftwardsArrowToBarOverRightwardsArrowToBar][\USymbChar{33}{185}] % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR \definesymbol[RightwardsArrowOverLeftwardsArrow][\USymbChar{33}{196}] % RIGHTWARDS ARROW OVER LEFTWARDS ARROW \definesymbol[UpwardsArrowLeftwardsOfDownwardsArrow][\USymbChar{33}{197}] % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW \definesymbol[LeftwardsArrowOverRightwardsArrow][\USymbChar{33}{198}] % LEFTWARDS ARROW OVER RIGHTWARDS ARROW \definesymbol[LeftwardsPairedArrows][\USymbChar{33}{199}] % LEFTWARDS PAIRED ARROWS \definesymbol[UpwardsPairedArrows][\USymbChar{33}{200}] % UPWARDS PAIRED ARROWS \definesymbol[RightwardsPairedArrows][\USymbChar{33}{201}] % RIGHTWARDS PAIRED ARROWS \definesymbol[DownwardsPairedArrows][\USymbChar{33}{202}] % DOWNWARDS PAIRED ARROWS \definesymbol[LeftwardsHarpoonOverRightwardsHarpoon][\USymbChar{33}{203}] % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON \definesymbol[RightwardsHarpoonOverLeftwardsHarpoon][\USymbChar{33}{204}] % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON \definesymbol[LeftwardsDoubleArrowWithStroke][\USymbChar{33}{205}] % LEFTWARDS DOUBLE ARROW WITH STROKE \definesymbol[LeftRightDoubleArrowWithStroke][\USymbChar{33}{206}] % LEFT RIGHT DOUBLE ARROW WITH STROKE \definesymbol[RightwardsDoubleArrowWithStroke][\USymbChar{33}{207}] % RIGHTWARDS DOUBLE ARROW WITH STROKE \definesymbol[LeftwardsDoubleArrow][\USymbChar{33}{208}] % LEFTWARDS DOUBLE ARROW \definesymbol[UpwardsDoubleArrow][\USymbChar{33}{209}] % UPWARDS DOUBLE ARROW \definesymbol[RightwardsDoubleArrow][\USymbChar{33}{210}] % RIGHTWARDS DOUBLE ARROW \definesymbol[DownwardsDoubleArrow][\USymbChar{33}{211}] % DOWNWARDS DOUBLE ARROW \definesymbol[LeftRightDoubleArrow][\USymbChar{33}{212}] % LEFT RIGHT DOUBLE ARROW \definesymbol[UpDownDoubleArrow][\USymbChar{33}{213}] % UP DOWN DOUBLE ARROW \definesymbol[NorthWestDoubleArrow][\USymbChar{33}{214}] % NORTH WEST DOUBLE ARROW \definesymbol[NorthEastDoubleArrow][\USymbChar{33}{215}] % NORTH EAST DOUBLE ARROW \definesymbol[SouthEastDoubleArrow][\USymbChar{33}{216}] % SOUTH EAST DOUBLE ARROW \definesymbol[SouthWestDoubleArrow][\USymbChar{33}{217}] % SOUTH WEST DOUBLE ARROW \definesymbol[LeftwardsTripleArrow][\USymbChar{33}{218}] % LEFTWARDS TRIPLE ARROW \definesymbol[RightwardsTripleArrow][\USymbChar{33}{219}] % RIGHTWARDS TRIPLE ARROW \definesymbol[UpwardsWhiteDoubleArrow][\USymbChar{33}{238}] % UPWARDS WHITE DOUBLE ARROW \definesymbol[UpwardsWhiteDoubleArrowOnPedestal][\USymbChar{33}{239}] % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL \stopsymbolset \startsymbolset[Unicode Optical Character Recognition] % 0x2440: Requires UnicodeRegular24 \definesymbol[OcrHook][\USymbChar{36}{64}] % OCR HOOK \definesymbol[OcrChair][\USymbChar{36}{65}] % OCR CHAIR \definesymbol[OcrFork][\USymbChar{36}{66}] % OCR FORK \definesymbol[OcrInvertedFork][\USymbChar{36}{67}] % OCR INVERTED FORK \definesymbol[OcrBeltBuckle][\USymbChar{36}{68}] % OCR BELT BUCKLE \definesymbol[OcrBowTie][\USymbChar{36}{69}] % OCR BOW TIE \definesymbol[OcrBranchBankIdentification][\USymbChar{36}{70}] % OCR BRANCH BANK IDENTIFICATION \definesymbol[OcrAmountOfCheck][\USymbChar{36}{71}] % OCR AMOUNT OF CHECK \definesymbol[OcrDash][\USymbChar{36}{72}] % OCR DASH \definesymbol[OcrCustomerAccountNumber][\USymbChar{36}{73}] % OCR CUSTOMER ACCOUNT NUMBER \definesymbol[OcrDoubleBackslash][\USymbChar{36}{74}] % OCR DOUBLE BACKSLASH \stopsymbolset \startsymbolset[Unicode Box Drawing] % 0x2500: Requires UnicodeRegular25 \definesymbol[LightHorizontal][\USymbChar{37}{0}] % BOX DRAWINGS LIGHT HORIZONTAL \definesymbol[HeavyHorizontal][\USymbChar{37}{1}] % BOX DRAWINGS HEAVY HORIZONTAL \definesymbol[LightVertical][\USymbChar{37}{2}] % BOX DRAWINGS LIGHT VERTICAL \definesymbol[HeavyVertical][\USymbChar{37}{3}] % BOX DRAWINGS HEAVY VERTICAL \definesymbol[LightTripleDashHorizontal][\USymbChar{37}{4}] % BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL \definesymbol[HeavyTripleDashHorizontal][\USymbChar{37}{5}] % BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL \definesymbol[LightTripleDashVertical][\USymbChar{37}{6}] % BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL \definesymbol[HeavyTripleDashVertical][\USymbChar{37}{7}] % BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL \definesymbol[LightQuadrupleDashHorizontal][\USymbChar{37}{8}] % BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL \definesymbol[HeavyQuadrupleDashHorizontal][\USymbChar{37}{9}] % BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL \definesymbol[LightQuadrupleDashVertical][\USymbChar{37}{10}] % BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL \definesymbol[HeavyQuadrupleDashVertical][\USymbChar{37}{11}] % BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL \definesymbol[LightDownAndRight][\USymbChar{37}{12}] % BOX DRAWINGS LIGHT DOWN AND RIGHT \definesymbol[DownLightAndRightHeavy][\USymbChar{37}{13}] % BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY \definesymbol[DownHeavyAndRightLight][\USymbChar{37}{14}] % BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT \definesymbol[HeavyDownAndRight][\USymbChar{37}{15}] % BOX DRAWINGS HEAVY DOWN AND RIGHT \definesymbol[LightDownAndLeft][\USymbChar{37}{16}] % BOX DRAWINGS LIGHT DOWN AND LEFT \definesymbol[DownLightAndLeftHeavy][\USymbChar{37}{17}] % BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY \definesymbol[DownHeavyAndLeftLight][\USymbChar{37}{18}] % BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT \definesymbol[HeavyDownAndLeft][\USymbChar{37}{19}] % BOX DRAWINGS HEAVY DOWN AND LEFT \definesymbol[LightUpAndRight][\USymbChar{37}{20}] % BOX DRAWINGS LIGHT UP AND RIGHT \definesymbol[UpLightAndRightHeavy][\USymbChar{37}{21}] % BOX DRAWINGS UP LIGHT AND RIGHT HEAVY \definesymbol[UpHeavyAndRightLight][\USymbChar{37}{22}] % BOX DRAWINGS UP HEAVY AND RIGHT LIGHT \definesymbol[HeavyUpAndRight][\USymbChar{37}{23}] % BOX DRAWINGS HEAVY UP AND RIGHT \definesymbol[LightUpAndLeft][\USymbChar{37}{24}] % BOX DRAWINGS LIGHT UP AND LEFT \definesymbol[UpLightAndLeftHeavy][\USymbChar{37}{25}] % BOX DRAWINGS UP LIGHT AND LEFT HEAVY \definesymbol[UpHeavyAndLeftLight][\USymbChar{37}{26}] % BOX DRAWINGS UP HEAVY AND LEFT LIGHT \definesymbol[HeavyUpAndLeft][\USymbChar{37}{27}] % BOX DRAWINGS HEAVY UP AND LEFT \definesymbol[LightVerticalAndRight][\USymbChar{37}{28}] % BOX DRAWINGS LIGHT VERTICAL AND RIGHT \definesymbol[VerticalLightAndRightHeavy][\USymbChar{37}{29}] % BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY \definesymbol[UpHeavyAndRightDownLight][\USymbChar{37}{30}] % BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT \definesymbol[DownHeavyAndRightUpLight][\USymbChar{37}{31}] % BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT \definesymbol[VerticalHeavyAndRightLight][\USymbChar{37}{32}] % BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT \definesymbol[DownLightAndRightUpHeavy][\USymbChar{37}{33}] % BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY \definesymbol[UpLightAndRightDownHeavy][\USymbChar{37}{34}] % BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY \definesymbol[HeavyVerticalAndRight][\USymbChar{37}{35}] % BOX DRAWINGS HEAVY VERTICAL AND RIGHT \definesymbol[LightVerticalAndLeft][\USymbChar{37}{36}] % BOX DRAWINGS LIGHT VERTICAL AND LEFT \definesymbol[VerticalLightAndLeftHeavy][\USymbChar{37}{37}] % BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY \definesymbol[UpHeavyAndLeftDownLight][\USymbChar{37}{38}] % BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT \definesymbol[DownHeavyAndLeftUpLight][\USymbChar{37}{39}] % BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT \definesymbol[VerticalHeavyAndLeftLight][\USymbChar{37}{40}] % BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT \definesymbol[DownLightAndLeftUpHeavy][\USymbChar{37}{41}] % BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY \definesymbol[UpLightAndLeftDownHeavy][\USymbChar{37}{42}] % BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY \definesymbol[HeavyVerticalAndLeft][\USymbChar{37}{43}] % BOX DRAWINGS HEAVY VERTICAL AND LEFT \definesymbol[LightDownAndHorizontal][\USymbChar{37}{44}] % BOX DRAWINGS LIGHT DOWN AND HORIZONTAL \definesymbol[LeftHeavyAndRightDownLight][\USymbChar{37}{45}] % BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT \definesymbol[RightHeavyAndLeftDownLight][\USymbChar{37}{46}] % BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT \definesymbol[DownLightAndHorizontalHeavy][\USymbChar{37}{47}] % BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY \definesymbol[DownHeavyAndHorizontalLight][\USymbChar{37}{48}] % BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT \definesymbol[RightLightAndLeftDownHeavy][\USymbChar{37}{49}] % BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY \definesymbol[LeftLightAndRightDownHeavy][\USymbChar{37}{50}] % BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY \definesymbol[HeavyDownAndHorizontal][\USymbChar{37}{51}] % BOX DRAWINGS HEAVY DOWN AND HORIZONTAL \definesymbol[LightUpAndHorizontal][\USymbChar{37}{52}] % BOX DRAWINGS LIGHT UP AND HORIZONTAL \definesymbol[LeftHeavyAndRightUpLight][\USymbChar{37}{53}] % BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT \definesymbol[RightHeavyAndLeftUpLight][\USymbChar{37}{54}] % BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT \definesymbol[UpLightAndHorizontalHeavy][\USymbChar{37}{55}] % BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY \definesymbol[UpHeavyAndHorizontalLight][\USymbChar{37}{56}] % BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT \definesymbol[RightLightAndLeftUpHeavy][\USymbChar{37}{57}] % BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY \definesymbol[LeftLightAndRightUpHeavy][\USymbChar{37}{58}] % BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY \definesymbol[HeavyUpAndHorizontal][\USymbChar{37}{59}] % BOX DRAWINGS HEAVY UP AND HORIZONTAL \definesymbol[LightVerticalAndHorizontal][\USymbChar{37}{60}] % BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL \definesymbol[LeftHeavyAndRightVerticalLight][\USymbChar{37}{61}] % BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT \definesymbol[RightHeavyAndLeftVerticalLight][\USymbChar{37}{62}] % BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT \definesymbol[VerticalLightAndHorizontalHeavy][\USymbChar{37}{63}] % BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY \definesymbol[UpHeavyAndDownHorizontalLight][\USymbChar{37}{64}] % BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT \definesymbol[DownHeavyAndUpHorizontalLight][\USymbChar{37}{65}] % BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT \definesymbol[VerticalHeavyAndHorizontalLight][\USymbChar{37}{66}] % BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT \definesymbol[LeftUpHeavyAndRightDownLight][\USymbChar{37}{67}] % BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT \definesymbol[RightUpHeavyAndLeftDownLight][\USymbChar{37}{68}] % BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT \definesymbol[LeftDownHeavyAndRightUpLight][\USymbChar{37}{69}] % BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT \definesymbol[RightDownHeavyAndLeftUpLight][\USymbChar{37}{70}] % BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT \definesymbol[DownLightAndUpHorizontalHeavy][\USymbChar{37}{71}] % BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY \definesymbol[UpLightAndDownHorizontalHeavy][\USymbChar{37}{72}] % BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY \definesymbol[RightLightAndLeftVerticalHeavy][\USymbChar{37}{73}] % BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY \definesymbol[LeftLightAndRightVerticalHeavy][\USymbChar{37}{74}] % BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY \definesymbol[HeavyVerticalAndHorizontal][\USymbChar{37}{75}] % BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL \definesymbol[LightArcDownAndRight][\USymbChar{37}{109}] % BOX DRAWINGS LIGHT ARC DOWN AND RIGHT \definesymbol[LightArcDownAndLeft][\USymbChar{37}{110}] % BOX DRAWINGS LIGHT ARC DOWN AND LEFT \definesymbol[LightArcUpAndLeft][\USymbChar{37}{111}] % BOX DRAWINGS LIGHT ARC UP AND LEFT \definesymbol[LightArcUpAndRight][\USymbChar{37}{112}] % BOX DRAWINGS LIGHT ARC UP AND RIGHT \definesymbol[LightDiagonalUpperRightToLowerLeft][\USymbChar{37}{113}] % BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT \definesymbol[LightDiagonalUpperLeftToLowerRight][\USymbChar{37}{114}] % BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT \definesymbol[LightDiagonalCross][\USymbChar{37}{115}] % BOX DRAWINGS LIGHT DIAGONAL CROSS \definesymbol[LightLeft][\USymbChar{37}{116}] % BOX DRAWINGS LIGHT LEFT \definesymbol[LightUp][\USymbChar{37}{117}] % BOX DRAWINGS LIGHT UP \definesymbol[LightRight][\USymbChar{37}{118}] % BOX DRAWINGS LIGHT RIGHT \definesymbol[LightDown][\USymbChar{37}{119}] % BOX DRAWINGS LIGHT DOWN \definesymbol[HeavyLeft][\USymbChar{37}{120}] % BOX DRAWINGS HEAVY LEFT \definesymbol[HeavyUp][\USymbChar{37}{121}] % BOX DRAWINGS HEAVY UP \definesymbol[HeavyRight][\USymbChar{37}{122}] % BOX DRAWINGS HEAVY RIGHT \definesymbol[HeavyDown][\USymbChar{37}{123}] % BOX DRAWINGS HEAVY DOWN \definesymbol[LightLeftAndHeavyRight][\USymbChar{37}{124}] % BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT \definesymbol[LightUpAndHeavyDown][\USymbChar{37}{125}] % BOX DRAWINGS LIGHT UP AND HEAVY DOWN \definesymbol[HeavyLeftAndLightRight][\USymbChar{37}{126}] % BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT \definesymbol[HeavyUpAndLightDown][\USymbChar{37}{127}] % BOX DRAWINGS HEAVY UP AND LIGHT DOWN \stopsymbolset \startsymbolset[Unicode Circled Digits] % 0x2460: Requires UnicodeRegular24 \definesymbol[CircledOne][\USymbCharZapf{36}{96}] % CIRCLED DIGIT ONE \definesymbol[CircledTwo][\USymbCharZapf{36}{97}] % CIRCLED DIGIT TWO \definesymbol[CircledThree][\USymbCharZapf{36}{98}] % CIRCLED DIGIT THREE \definesymbol[CircledFour][\USymbCharZapf{36}{99}] % CIRCLED DIGIT FOUR \definesymbol[CircledFive][\USymbCharZapf{36}{100}] % CIRCLED DIGIT FIVE \definesymbol[CircledSix][\USymbCharZapf{36}{101}] % CIRCLED DIGIT SIX \definesymbol[CircledSeven][\USymbCharZapf{36}{102}] % CIRCLED DIGIT SEVEN \definesymbol[CircledEight][\USymbCharZapf{36}{103}] % CIRCLED DIGIT EIGHT \definesymbol[CircledNine][\USymbCharZapf{36}{104}] % CIRCLED DIGIT NINE \definesymbol[CircledTen][\USymbCharZapf{36}{105}] % CIRCLED NUMBER TEN \stopsymbolset \startsymbolset[Unicode Double Box Drawing] % 0x2500: Requires UnicodeRegular25 \definesymbol[LightDoubleDashHorizontal][\USymbChar{37}{76}] % BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL \definesymbol[HeavyDoubleDashHorizontal][\USymbChar{37}{77}] % BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL \definesymbol[LightDoubleDashVertical][\USymbChar{37}{78}] % BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL \definesymbol[HeavyDoubleDashVertical][\USymbChar{37}{79}] % BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL \definesymbol[DoubleHorizontal][\USymbChar{37}{80}] % BOX DRAWINGS DOUBLE HORIZONTAL \definesymbol[DoubleVertical][\USymbChar{37}{81}] % BOX DRAWINGS DOUBLE VERTICAL \definesymbol[DownSingleAndRightDouble][\USymbChar{37}{82}] % BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE \definesymbol[DownDoubleAndRightSingle][\USymbChar{37}{83}] % BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE \definesymbol[DoubleDownAndRight][\USymbChar{37}{84}] % BOX DRAWINGS DOUBLE DOWN AND RIGHT \definesymbol[DownSingleAndLeftDouble][\USymbChar{37}{85}] % BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE \definesymbol[DownDoubleAndLeftSingle][\USymbChar{37}{86}] % BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE \definesymbol[DoubleDownAndLeft][\USymbChar{37}{87}] % BOX DRAWINGS DOUBLE DOWN AND LEFT \definesymbol[UpSingleAndRightDouble][\USymbChar{37}{88}] % BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE \definesymbol[UpDoubleAndRightSingle][\USymbChar{37}{89}] % BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE \definesymbol[DoubleUpAndRight][\USymbChar{37}{90}] % BOX DRAWINGS DOUBLE UP AND RIGHT \definesymbol[UpSingleAndLeftDouble][\USymbChar{37}{91}] % BOX DRAWINGS UP SINGLE AND LEFT DOUBLE \definesymbol[UpDoubleAndLeftSingle][\USymbChar{37}{92}] % BOX DRAWINGS UP DOUBLE AND LEFT SINGLE \definesymbol[DoubleUpAndLeft][\USymbChar{37}{93}] % BOX DRAWINGS DOUBLE UP AND LEFT \definesymbol[VerticalSingleAndRightDouble][\USymbChar{37}{94}] % BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE \definesymbol[VerticalDoubleAndRightSingle][\USymbChar{37}{95}] % BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE \definesymbol[DoubleVerticalAndRight][\USymbChar{37}{96}] % BOX DRAWINGS DOUBLE VERTICAL AND RIGHT \definesymbol[VerticalSingleAndLeftDouble][\USymbChar{37}{97}] % BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE \definesymbol[VerticalDoubleAndLeftSingle][\USymbChar{37}{98}] % BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE \definesymbol[DoubleVerticalAndLeft][\USymbChar{37}{99}] % BOX DRAWINGS DOUBLE VERTICAL AND LEFT \definesymbol[DownSingleAndHorizontalDouble][\USymbChar{37}{100}] % BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE \definesymbol[DownDoubleAndHorizontalSingle][\USymbChar{37}{101}] % BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE \definesymbol[DoubleDownAndHorizontal][\USymbChar{37}{102}] % BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL \definesymbol[UpSingleAndHorizontalDouble][\USymbChar{37}{103}] % BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE \definesymbol[UpDoubleAndHorizontalSingle][\USymbChar{37}{104}] % BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE \definesymbol[DoubleUpAndHorizontal][\USymbChar{37}{105}] % BOX DRAWINGS DOUBLE UP AND HORIZONTAL \definesymbol[VerticalSingleAndHorizontalDouble][\USymbChar{37}{106}] % BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE \definesymbol[VerticalDoubleAndHorizontalSingle][\USymbChar{37}{107}] % BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE \definesymbol[DoubleVerticalAndHorizontal][\USymbChar{37}{108}] % BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL \stopsymbolset \startsymbolset[Unicode Block Elements] % 0x2580: Requires UnicodeRegular25 \definesymbol[UpperHalfBlock][\USymbChar{37}{128}] % UPPER HALF BLOCK \definesymbol[LowerOneEighthBlock][\USymbChar{37}{129}] % LOWER ONE EIGHTH BLOCK \definesymbol[LowerOneQuarterBlock][\USymbChar{37}{130}] % LOWER ONE QUARTER BLOCK \definesymbol[LowerThreeEighthsBlock][\USymbChar{37}{131}] % LOWER THREE EIGHTHS BLOCK \definesymbol[LowerHalfBlock][\USymbChar{37}{132}] % LOWER HALF BLOCK \definesymbol[LowerFiveEighthsBlock][\USymbChar{37}{133}] % LOWER FIVE EIGHTHS BLOCK \definesymbol[LowerThreeQuartersBlock][\USymbChar{37}{134}] % LOWER THREE QUARTERS BLOCK \definesymbol[LowerSevenEighthsBlock][\USymbChar{37}{135}] % LOWER SEVEN EIGHTHS BLOCK \definesymbol[FullBlock][\USymbChar{37}{136}] % FULL BLOCK \definesymbol[LeftSevenEighthsBlock][\USymbChar{37}{137}] % LEFT SEVEN EIGHTHS BLOCK \definesymbol[LeftThreeQuartersBlock][\USymbChar{37}{138}] % LEFT THREE QUARTERS BLOCK \definesymbol[LeftFiveEighthsBlock][\USymbChar{37}{139}] % LEFT FIVE EIGHTHS BLOCK \definesymbol[LeftHalfBlock][\USymbChar{37}{140}] % LEFT HALF BLOCK \definesymbol[LeftThreeEighthsBlock][\USymbChar{37}{141}] % LEFT THREE EIGHTHS BLOCK \definesymbol[LeftOneQuarterBlock][\USymbChar{37}{142}] % LEFT ONE QUARTER BLOCK \definesymbol[LeftOneEighthBlock][\USymbChar{37}{143}] % LEFT ONE EIGHTH BLOCK \definesymbol[RightHalfBlock][\USymbChar{37}{144}] % RIGHT HALF BLOCK \definesymbol[UpperOneEighthBlock][\USymbChar{37}{148}] % UPPER ONE EIGHTH BLOCK \definesymbol[RightOneEighthBlock][\USymbChar{37}{149}] % RIGHT ONE EIGHTH BLOCK \stopsymbolset \startsymbolset[Unicode Shade Characters] % 0x2580: Requires UnicodeRegular25 \definesymbol[LightShade][\USymbChar{37}{145}] % LIGHT SHADE \definesymbol[MediumShade][\USymbChar{37}{146}] % MEDIUM SHADE \definesymbol[DarkShade][\USymbChar{37}{147}] % DARK SHADE \stopsymbolset \startsymbolset[Unicode Terminal Graphics] % 0x2580: Requires UnicodeRegular25 \definesymbol[QuadrantLowerLeft][\USymbChar{37}{150}] % [Unassigned U+2596] \definesymbol[QuadrantLowerRight][\USymbChar{37}{151}] % [Unassigned U+2597] \definesymbol[QuadrantUpperLeft][\USymbChar{37}{152}] % [Unassigned U+2598] \definesymbol[QuadrantUpperLeftAndLowerLeftAndLowerRight][\USymbChar{37}{153}] % [Unassigned U+2599] \definesymbol[QuadrantUpperLeftAndLowerRight][\USymbChar{37}{154}] % [Unassigned U+259A] \definesymbol[QuadrantUpperLeftAndUpperRightandLowerLeft][\USymbChar{37}{155}] % [Unassigned U+259B] \definesymbol[QuadrantUpperLeftAndUpperRightAndLowerRight][\USymbChar{37}{156}] % [Unassigned U+259C] \definesymbol[QuadrantUpperRight][\USymbChar{37}{157}] % [Unassigned U+259D] \definesymbol[QuadrantUpperRightAndLowerLeft][\USymbChar{37}{158}] % [Unassigned U+259E] \definesymbol[QuadrantUpperRightAndLowerLeftAndLowerRight][\USymbChar{37}{159}] % [Unassigned U+259F] \stopsymbolset \startsymbolset[Unicode Geometric Shapes] % 0x25A0: Requires UnicodeRegular25 \definesymbol[BlackSquare][\USymbChar{37}{160}] % BLACK SQUARE \definesymbol[WhiteSquare][\USymbChar{37}{161}] % WHITE SQUARE \definesymbol[WhiteSquareWithRoundedCorners][\USymbChar{37}{162}] % WHITE SQUARE WITH ROUNDED CORNERS \definesymbol[WhiteSquareContainingBlackSmallSquare][\USymbChar{37}{163}] % WHITE SQUARE CONTAINING BLACK SMALL SQUARE \definesymbol[SquareWithHorizontalFill][\USymbChar{37}{164}] % SQUARE WITH HORIZONTAL FILL \definesymbol[SquareWithVerticalFill][\USymbChar{37}{165}] % SQUARE WITH VERTICAL FILL \definesymbol[SquareWithOrthogonalCrosshatchFill][\USymbChar{37}{166}] % SQUARE WITH ORTHOGONAL CROSSHATCH FILL \definesymbol[SquareWithUpperLeftToLowerRightFill][\USymbChar{37}{167}] % SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL \definesymbol[SquareWithUpperRightToLowerLeftFill][\USymbChar{37}{168}] % SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL \definesymbol[SquareWithDiagonalCrosshatchFill][\USymbChar{37}{169}] % SQUARE WITH DIAGONAL CROSSHATCH FILL \definesymbol[BlackSmallSquare][\USymbChar{37}{170}] % BLACK SMALL SQUARE \definesymbol[WhiteSmallSquare][\USymbChar{37}{171}] % WHITE SMALL SQUARE \definesymbol[BlackRectangle][\USymbChar{37}{172}] % BLACK RECTANGLE \definesymbol[WhiteRectangle][\USymbChar{37}{173}] % WHITE RECTANGLE \definesymbol[BlackVerticalRectangle][\USymbChar{37}{174}] % BLACK VERTICAL RECTANGLE \definesymbol[WhiteVerticalRectangle][\USymbChar{37}{175}] % WHITE VERTICAL RECTANGLE \definesymbol[BlackParallelogram][\USymbChar{37}{176}] % BLACK PARALLELOGRAM \definesymbol[WhiteParallelogram][\USymbChar{37}{177}] % WHITE PARALLELOGRAM \definesymbol[BlackUpPointingTriangle][\USymbChar{37}{178}] % BLACK UP-POINTING TRIANGLE \definesymbol[WhiteUpPointingTriangle][\USymbChar{37}{179}] % WHITE UP-POINTING TRIANGLE \definesymbol[BlackUpPointingSmallTriangle][\USymbChar{37}{180}] % BLACK UP-POINTING SMALL TRIANGLE \definesymbol[WhiteUpPointingSmallTriangle][\USymbChar{37}{181}] % WHITE UP-POINTING SMALL TRIANGLE \definesymbol[BlackRightPointingTriangle][\USymbChar{37}{182}] % BLACK RIGHT-POINTING TRIANGLE \definesymbol[WhiteRightPointingTriangle][\USymbChar{37}{183}] % WHITE RIGHT-POINTING TRIANGLE \definesymbol[BlackRightPointingSmallTriangle][\USymbChar{37}{184}] % BLACK RIGHT-POINTING SMALL TRIANGLE \definesymbol[WhiteRightPointingSmallTriangle][\USymbChar{37}{185}] % WHITE RIGHT-POINTING SMALL TRIANGLE \definesymbol[BlackRightPointingPointer][\USymbChar{37}{186}] % BLACK RIGHT-POINTING POINTER \definesymbol[WhiteRightPointingPointer][\USymbChar{37}{187}] % WHITE RIGHT-POINTING POINTER \definesymbol[BlackDownPointingTriangle][\USymbChar{37}{188}] % BLACK DOWN-POINTING TRIANGLE \definesymbol[WhiteDownPointingTriangle][\USymbChar{37}{189}] % WHITE DOWN-POINTING TRIANGLE \definesymbol[BlackDownPointingSmallTriangle][\USymbChar{37}{190}] % BLACK DOWN-POINTING SMALL TRIANGLE \definesymbol[WhiteDownPointingSmallTriangle][\USymbChar{37}{191}] % WHITE DOWN-POINTING SMALL TRIANGLE \definesymbol[BlackLeftPointingTriangle][\USymbChar{37}{192}] % BLACK LEFT-POINTING TRIANGLE \definesymbol[WhiteLeftPointingTriangle][\USymbChar{37}{193}] % WHITE LEFT-POINTING TRIANGLE \definesymbol[BlackLeftPointingSmallTriangle][\USymbChar{37}{194}] % BLACK LEFT-POINTING SMALL TRIANGLE \definesymbol[WhiteLeftPointingSmallTriangle][\USymbChar{37}{195}] % WHITE LEFT-POINTING SMALL TRIANGLE \definesymbol[BlackLeftPointingPointer][\USymbChar{37}{196}] % BLACK LEFT-POINTING POINTER \definesymbol[WhiteLeftPointingPointer][\USymbChar{37}{197}] % WHITE LEFT-POINTING POINTER \definesymbol[BlackDiamond][\USymbChar{37}{198}] % BLACK DIAMOND \definesymbol[WhiteDiamond][\USymbChar{37}{199}] % WHITE DIAMOND \definesymbol[WhiteDiamondContainingBlackSmallDiamond][\USymbChar{37}{200}] % WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND \definesymbol[Fisheye][\USymbChar{37}{201}] % FISHEYE \definesymbol[Lozenge][\USymbChar{37}{202}] % LOZENGE \definesymbol[WhiteCircle][\USymbChar{37}{203}] % WHITE CIRCLE \definesymbol[DottedCircle][\USymbChar{37}{204}] % DOTTED CIRCLE \definesymbol[CircleWithVerticalFill][\USymbChar{37}{205}] % CIRCLE WITH VERTICAL FILL \definesymbol[Bullseye][\USymbChar{37}{206}] % BULLSEYE \definesymbol[BlackCircle][\USymbChar{37}{207}] % BLACK CIRCLE \definesymbol[CircleWithLeftHalfBlack][\USymbChar{37}{208}] % CIRCLE WITH LEFT HALF BLACK \definesymbol[CircleWithRightHalfBlack][\USymbChar{37}{209}] % CIRCLE WITH RIGHT HALF BLACK \definesymbol[CircleWithLowerHalfBlack][\USymbChar{37}{210}] % CIRCLE WITH LOWER HALF BLACK \definesymbol[CircleWithUpperHalfBlack][\USymbChar{37}{211}] % CIRCLE WITH UPPER HALF BLACK \definesymbol[CircleWithUpperRightQuadrantBlack][\USymbChar{37}{212}] % CIRCLE WITH UPPER RIGHT QUADRANT BLACK \definesymbol[CircleWithAllButUpperLeftQuadrantBlack][\USymbChar{37}{213}] % CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK \definesymbol[LeftHalfBlackCircle][\USymbChar{37}{214}] % LEFT HALF BLACK CIRCLE \definesymbol[RightHalfBlackCircle][\USymbChar{37}{215}] % RIGHT HALF BLACK CIRCLE \definesymbol[InverseBullet][\USymbChar{37}{216}] % INVERSE BULLET \definesymbol[InverseWhiteCircle][\USymbChar{37}{217}] % INVERSE WHITE CIRCLE \definesymbol[UpperHalfInverseWhiteCircle][\USymbChar{37}{218}] % UPPER HALF INVERSE WHITE CIRCLE \definesymbol[LowerHalfInverseWhiteCircle][\USymbChar{37}{219}] % LOWER HALF INVERSE WHITE CIRCLE \definesymbol[UpperLeftQuadrantCircularArc][\USymbChar{37}{220}] % UPPER LEFT QUADRANT CIRCULAR ARC \definesymbol[UpperRightQuadrantCircularArc][\USymbChar{37}{221}] % UPPER RIGHT QUADRANT CIRCULAR ARC \definesymbol[LowerRightQuadrantCircularArc][\USymbChar{37}{222}] % LOWER RIGHT QUADRANT CIRCULAR ARC \definesymbol[LowerLeftQuadrantCircularArc][\USymbChar{37}{223}] % LOWER LEFT QUADRANT CIRCULAR ARC \definesymbol[LowerHalfCircle][\USymbChar{37}{225}] % LOWER HALF CIRCLE \definesymbol[BlackLowerRightTriangle][\USymbChar{37}{226}] % BLACK LOWER RIGHT TRIANGLE \definesymbol[BlackLowerLeftTriangle][\USymbChar{37}{227}] % BLACK LOWER LEFT TRIANGLE \definesymbol[BlackUpperLeftTriangle][\USymbChar{37}{228}] % BLACK UPPER LEFT TRIANGLE \definesymbol[BlackUpperRightTriangle][\USymbChar{37}{229}] % BLACK UPPER RIGHT TRIANGLE \definesymbol[WhiteBullet][\USymbChar{37}{230}] % WHITE BULLET \definesymbol[SquareWithLeftHalfBlack][\USymbChar{37}{231}] % SQUARE WITH LEFT HALF BLACK \definesymbol[SquareWithRightHalfBlack][\USymbChar{37}{232}] % SQUARE WITH RIGHT HALF BLACK \definesymbol[SquareWithUpperLeftDiagonalHalfBlack][\USymbChar{37}{233}] % SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK \definesymbol[SquareWithLowerRightDiagonalHalfBlack][\USymbChar{37}{234}] % SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK \definesymbol[WhiteSquareWithVerticalBisectingLine][\USymbChar{37}{235}] % WHITE SQUARE WITH VERTICAL BISECTING LINE \definesymbol[WhiteUpPointingTriangleWithDot][\USymbChar{37}{236}] % WHITE UP-POINTING TRIANGLE WITH DOT \definesymbol[UpPointingTriangleWithLeftHalfBlack][\USymbChar{37}{237}] % UP-POINTING TRIANGLE WITH LEFT HALF BLACK \definesymbol[UpPointingTriangleWithRightHalfBlack][\USymbChar{37}{238}] % UP-POINTING TRIANGLE WITH RIGHT HALF BLACK \definesymbol[LargeCircle][\USymbChar{37}{239}] % LARGE CIRCLE \definesymbol[UpperLeftTriangle][\USymbChar{37}{248}] % [Unassigned U+25F8] \definesymbol[UpperRightTriangle][\USymbChar{37}{249}] % [Unassigned U+25F9] \definesymbol[LowerLeftTriangle][\USymbChar{37}{250}] % [Unassigned U+25FA] \definesymbol[WhiteMediumSquare][\USymbChar{37}{251}] % [Unassigned U+25FB] \definesymbol[BlackMediumSquare][\USymbChar{37}{252}] % [Unassigned U+25FC] \definesymbol[WhiteMediumSmallSquare][\USymbChar{37}{253}] % [Unassigned U+25FD] \definesymbol[BlackMediumSmallSquare][\USymbChar{37}{254}] % [Unassigned U+25FE] \definesymbol[LowerRightTriangle][\USymbChar{37}{255}] % [Unassigned U+25FF] \stopsymbolset \startsymbolset[Unicode Control Code Graphics] % 0x25A0: Requires UnicodeRegular25 \definesymbol[WhiteSquareWithUpperLeftQuadrant][\USymbChar{37}{240}] % WHITE SQUARE WITH UPPER LEFT QUADRANT \definesymbol[WhiteSquareWithLowerLeftQuadrant][\USymbChar{37}{241}] % WHITE SQUARE WITH LOWER LEFT QUADRANT \definesymbol[WhiteSquareWithLowerRightQuadrant][\USymbChar{37}{242}] % WHITE SQUARE WITH LOWER RIGHT QUADRANT \definesymbol[WhiteSquareWithUpperRightQuadrant][\USymbChar{37}{243}] % WHITE SQUARE WITH UPPER RIGHT QUADRANT \definesymbol[WhiteCircleWithUpperLeftQuadrant][\USymbChar{37}{244}] % WHITE CIRCLE WITH UPPER LEFT QUADRANT \definesymbol[WhiteCircleWithLowerLeftQuadrant][\USymbChar{37}{245}] % WHITE CIRCLE WITH LOWER LEFT QUADRANT \definesymbol[WhiteCircleWithLowerRightQuadrant][\USymbChar{37}{246}] % WHITE CIRCLE WITH LOWER RIGHT QUADRANT \definesymbol[WhiteCircleWithUpperRightQuadrant][\USymbChar{37}{247}] % WHITE CIRCLE WITH UPPER RIGHT QUADRANT \stopsymbolset \startsymbolset[Unicode Weather and Astrological] % 0x2600: Requires UnicodeRegular26 \definesymbol[BlackSunWithRays][\USymbChar{38}{0}] % BLACK SUN WITH RAYS \definesymbol[Cloud][\USymbChar{38}{1}] % CLOUD \definesymbol[Umbrella][\USymbChar{38}{2}] % UMBRELLA \definesymbol[Snowman][\USymbChar{38}{3}] % SNOWMAN \definesymbol[Comet][\USymbChar{38}{4}] % COMET \definesymbol[BlackStar][\USymbChar{38}{5}] % BLACK STAR \definesymbol[WhiteStar][\USymbChar{38}{6}] % WHITE STAR \definesymbol[Lightning][\USymbChar{38}{7}] % LIGHTNING \definesymbol[Thunderstorm][\USymbChar{38}{8}] % THUNDERSTORM \definesymbol[Sun][\USymbChar{38}{9}] % SUN \definesymbol[AscendingNode][\USymbChar{38}{10}] % ASCENDING NODE \definesymbol[DescendingNode][\USymbChar{38}{11}] % DESCENDING NODE \definesymbol[Conjunction][\USymbChar{38}{12}] % CONJUNCTION \definesymbol[Opposition][\USymbChar{38}{13}] % OPPOSITION \definesymbol[FirstQuarterMoon][\USymbChar{38}{61}] % FIRST QUARTER MOON \definesymbol[LastQuarterMoon][\USymbChar{38}{62}] % LAST QUARTER MOON \definesymbol[Mercury][\USymbChar{38}{63}] % MERCURY \definesymbol[FemaleSign][\USymbChar{38}{64}] % FEMALE SIGN \definesymbol[Earth][\USymbChar{38}{65}] % EARTH \definesymbol[MaleSign][\USymbChar{38}{66}] % MALE SIGN \definesymbol[Jupiter][\USymbChar{38}{67}] % JUPITER \definesymbol[Saturn][\USymbChar{38}{68}] % SATURN \definesymbol[Uranus][\USymbChar{38}{69}] % URANUS \definesymbol[Neptune][\USymbChar{38}{70}] % NEPTUNE \definesymbol[Pluto][\USymbChar{38}{71}] % PLUTO \stopsymbolset \startsymbolset[Unicode Miscellaneous] % 0x2600: Requires UnicodeRegular26 \definesymbol[BlackTelephone][\USymbChar{38}{14}] % BLACK TELEPHONE \definesymbol[WhiteTelephone][\USymbChar{38}{15}] % WHITE TELEPHONE \definesymbol[BallotBox][\USymbChar{38}{16}] % BALLOT BOX \definesymbol[BallotBoxWithCheck][\USymbChar{38}{17}] % BALLOT BOX WITH CHECK \definesymbol[BallotBoxWithX][\USymbChar{38}{18}] % BALLOT BOX WITH X \definesymbol[Saltire][\USymbChar{38}{19}] % SALTIRE \definesymbol[ReversedRotatedFloralHeartBullet][\USymbChar{38}{25}] % REVERSED ROTATED FLORAL HEART BULLET \definesymbol[WheelOfDharma][\USymbChar{38}{56}] % WHEEL OF DHARMA \definesymbol[WhiteFrowningFace][\USymbChar{38}{57}] % WHITE FROWNING FACE \definesymbol[WhiteSmilingFace][\USymbChar{38}{58}] % WHITE SMILING FACE \definesymbol[BlackSmilingFace][\USymbChar{38}{59}] % BLACK SMILING FACE \definesymbol[WhiteSunWithRays][\USymbChar{38}{60}] % WHITE SUN WITH RAYS \definesymbol[HotSprings][\USymbChar{38}{104}] % HOT SPRINGS \stopsymbolset \startsymbolset[Unicode Japanese Chess] % 0x2600: Requires UnicodeRegular26 \definesymbol[WhiteShogiPiece][\USymbChar{38}{22}] % [Unassigned U+2616] \definesymbol[BlackShogiPiece][\USymbChar{38}{23}] % [Unassigned U+2617] \stopsymbolset \startsymbolset[Unicode Pointing Hand] % 0x2600: Requires UnicodeRegular26 \definesymbol[BlackLeftPointingIndex][\USymbChar{38}{26}] % BLACK LEFT POINTING INDEX \definesymbol[BlackRightPointingIndex][\USymbChar{38}{27}] % BLACK RIGHT POINTING INDEX \definesymbol[WhiteLeftPointingIndex][\USymbChar{38}{28}] % WHITE LEFT POINTING INDEX \definesymbol[WhiteUpPointingIndex][\USymbChar{38}{29}] % WHITE UP POINTING INDEX \definesymbol[WhiteRightPointingIndex][\USymbChar{38}{30}] % WHITE RIGHT POINTING INDEX \definesymbol[WhiteDownPointingIndex][\USymbChar{38}{31}] % WHITE DOWN POINTING INDEX \stopsymbolset \startsymbolset[Unicode Warning Signs] % 0x2600: Requires UnicodeRegular26 \definesymbol[SkullAndCrossbones][\USymbChar{38}{32}] % SKULL AND CROSSBONES \definesymbol[CautionSign][\USymbChar{38}{33}] % CAUTION SIGN \definesymbol[RadioactiveSign][\USymbChar{38}{34}] % RADIOACTIVE SIGN \definesymbol[BiohazardSign][\USymbChar{38}{35}] % BIOHAZARD SIGN \stopsymbolset \startsymbolset[Unicode Healing Signs] % 0x2600: Requires UnicodeRegular26 \definesymbol[Caduceus][\USymbChar{38}{36}] % CADUCEUS \definesymbol[Ankh][\USymbChar{38}{37}] % ANKH \stopsymbolset \startsymbolset[Unicode Religious and Political] % 0x2600: Requires UnicodeRegular26 and 27 \definesymbol[OrthodoxCross][\USymbChar{38}{38}] % ORTHODOX CROSS \definesymbol[ChiRho][\USymbChar{38}{39}] % CHI RHO \definesymbol[CrossOfLorraine][\USymbChar{38}{40}] % CROSS OF LORRAINE \definesymbol[CrossOfJerusalem][\USymbChar{38}{41}] % CROSS OF JERUSALEM \definesymbol[StarAndCrescent][\USymbChar{38}{42}] % STAR AND CRESCENT \definesymbol[FarsiSymbol][\USymbChar{38}{43}] % FARSI SYMBOL \definesymbol[AdiShakti][\USymbChar{38}{44}] % ADI SHAKTI \definesymbol[HammerAndSickle][\USymbChar{38}{45}] % HAMMER AND SICKLE \definesymbol[PeaceSymbol][\USymbChar{38}{46}] % PEACE SYMBOL \definesymbol[YinYang][\USymbChar{38}{47}] % YIN YANG \definesymbol[WestSyriacCross][\USymbChar{38}{112}] % WEST SYRIAC CROSS \definesymbol[EastSyriacCross][\USymbChar{38}{113}] % EAST SYRIAC CROSS % 27xx starts here \definesymbol[OutlinedGreekCross][\USymbCharZapf{39}{25}] % OUTLINED GREEK CROSS \definesymbol[HeavyGreekCross][\USymbCharZapf{39}{26}] % HEAVY GREEK CROSS \definesymbol[OpenCentreCross][\USymbCharZapf{39}{27}] % OPEN CENTRE CROSS \definesymbol[HeavyOpenCentreCross][\USymbCharZapf{39}{28}] % HEAVY OPEN CENTRE CROSS \definesymbol[LatinCross][\USymbCharZapf{39}{29}] % LATIN CROSS \definesymbol[ShadowedWhiteLatinCross][\USymbCharZapf{39}{30}] % SHADOWED WHITE LATIN CROSS \definesymbol[OutlinedLatinCross][\USymbCharZapf{39}{31}] % OUTLINED LATIN CROSS \definesymbol[MalteseCross][\USymbCharZapf{39}{32}] % MALTESE CROSS \definesymbol[StarOfDavid][\USymbCharZapf{39}{33}] % STAR OF DAVID \stopsymbolset \startsymbolset[Unicode Trigram] % 0x2600: Requires UnicodeRegular26 \definesymbol[TrigramForHeaven][\USymbChar{38}{48}] % TRIGRAM FOR HEAVEN \definesymbol[TrigramForLake][\USymbChar{38}{49}] % TRIGRAM FOR LAKE \definesymbol[TrigramForFire][\USymbChar{38}{50}] % TRIGRAM FOR FIRE \definesymbol[TrigramForThunder][\USymbChar{38}{51}] % TRIGRAM FOR THUNDER \definesymbol[TrigramForWind][\USymbChar{38}{52}] % TRIGRAM FOR WIND \definesymbol[TrigramForWater][\USymbChar{38}{53}] % TRIGRAM FOR WATER \definesymbol[TrigramForMountain][\USymbChar{38}{54}] % TRIGRAM FOR MOUNTAIN \definesymbol[TrigramForEarth][\USymbChar{38}{55}] % TRIGRAM FOR EARTH \stopsymbolset \startsymbolset[Unicode Zodiac] % 0x2600: Requires UnicodeRegular26 \definesymbol[Aries][\USymbChar{38}{72}] % ARIES \definesymbol[Taurus][\USymbChar{38}{73}] % TAURUS \definesymbol[Gemini][\USymbChar{38}{74}] % GEMINI \definesymbol[Cancer][\USymbChar{38}{75}] % CANCER \definesymbol[Leo][\USymbChar{38}{76}] % LEO \definesymbol[Virgo][\USymbChar{38}{77}] % VIRGO \definesymbol[Libra][\USymbChar{38}{78}] % LIBRA \definesymbol[Scorpius][\USymbChar{38}{79}] % SCORPIUS \definesymbol[Sagittarius][\USymbChar{38}{80}] % SAGITTARIUS \definesymbol[Capricorn][\USymbChar{38}{81}] % CAPRICORN \definesymbol[Aquarius][\USymbChar{38}{82}] % AQUARIUS \definesymbol[Pisces][\USymbChar{38}{83}] % PISCES \stopsymbolset \startsymbolset[Unicode Chess] % 0x2600: Requires UnicodeRegular26 \definesymbol[WhiteChessKing][\USymbChar{38}{84}] % WHITE CHESS KING \definesymbol[WhiteChessQueen][\USymbChar{38}{85}] % WHITE CHESS QUEEN \definesymbol[WhiteChessRook][\USymbChar{38}{86}] % WHITE CHESS ROOK \definesymbol[WhiteChessBishop][\USymbChar{38}{87}] % WHITE CHESS BISHOP \definesymbol[WhiteChessKnight][\USymbChar{38}{88}] % WHITE CHESS KNIGHT \definesymbol[WhiteChessPawn][\USymbChar{38}{89}] % WHITE CHESS PAWN \definesymbol[BlackChessKing][\USymbChar{38}{90}] % BLACK CHESS KING \definesymbol[BlackChessQueen][\USymbChar{38}{91}] % BLACK CHESS QUEEN \definesymbol[BlackChessRook][\USymbChar{38}{92}] % BLACK CHESS ROOK \definesymbol[BlackChessBishop][\USymbChar{38}{93}] % BLACK CHESS BISHOP \definesymbol[BlackChessKnight][\USymbChar{38}{94}] % BLACK CHESS KNIGHT \definesymbol[BlackChessPawn][\USymbChar{38}{95}] % BLACK CHESS PAWN \stopsymbolset \startsymbolset[Unicode Playing Card] % 0x2600: Requires UnicodeRegular26 \definesymbol[BlackSpadeSuit][\USymbChar{38}{96}] % BLACK SPADE SUIT \definesymbol[WhiteHeartSuit][\USymbChar{38}{97}] % WHITE HEART SUIT \definesymbol[WhiteDiamondSuit][\USymbChar{38}{98}] % WHITE DIAMOND SUIT \definesymbol[BlackClubSuit][\USymbChar{38}{99}] % BLACK CLUB SUIT \definesymbol[WhiteSpadeSuit][\USymbChar{38}{100}] % WHITE SPADE SUIT \definesymbol[BlackHeartSuit][\USymbChar{38}{101}] % BLACK HEART SUIT \definesymbol[BlackDiamondSuit][\USymbChar{38}{102}] % BLACK DIAMOND SUIT \definesymbol[WhiteClubSuit][\USymbChar{38}{103}] % WHITE CLUB SUIT \stopsymbolset \startsymbolset[Unicode Musical] % 0x2600: Requires UnicodeRegular26 \definesymbol[QuarterNote][\USymbChar{38}{105}] % QUARTER NOTE \definesymbol[EighthNote][\USymbChar{38}{106}] % EIGHTH NOTE \definesymbol[BeamedEighthNotes][\USymbChar{38}{107}] % BEAMED EIGHTH NOTES \definesymbol[BeamedSixteenthNotes][\USymbChar{38}{108}] % BEAMED SIXTEENTH NOTES \definesymbol[MusicFlatSign][\USymbChar{38}{109}] % MUSIC FLAT SIGN \definesymbol[MusicNaturalSign][\USymbChar{38}{110}] % MUSIC NATURAL SIGN \definesymbol[MusicSharpSign][\USymbChar{38}{111}] % MUSIC SHARP SIGN \stopsymbolset \startsymbolset[Unicode Recycling] % 0x2600: Requires UnicodeRegular26 \definesymbol[UniversalRecycling][\USymbChar{38}{114}] % [Unassigned U+2672] \definesymbol[Type1Plastics][\USymbChar{38}{115}] % [Unassigned U+2673] \definesymbol[Type2Plastics][\USymbChar{38}{116}] % [Unassigned U+2674] \definesymbol[Type3Plastics][\USymbChar{38}{117}] % [Unassigned U+2675] \definesymbol[Type4Plastics][\USymbChar{38}{118}] % [Unassigned U+2676] \definesymbol[Type5Plastics][\USymbChar{38}{119}] % [Unassigned U+2677] \definesymbol[Type6Plastics][\USymbChar{38}{120}] % [Unassigned U+2678] \definesymbol[Type7Plastics][\USymbChar{38}{121}] % [Unassigned U+2679] \definesymbol[GenericMaterials][\USymbChar{38}{122}] % [Unassigned U+267A] \definesymbol[BlackUniversalRecycling][\USymbChar{38}{123}] % [Unassigned U+267B] \definesymbol[RecycledPaper][\USymbChar{38}{124}] % [Unassigned U+267C] \definesymbol[PartiallyRecycledPaper][\USymbChar{38}{125}] % [Unassigned U+267D] \stopsymbolset \startsymbolset[Unicode Dice] % 0x2600: Requires UnicodeRegular26 \definesymbol[DieFace1][\USymbChar{38}{128}] % [Unassigned U+2680] \definesymbol[DieFace2][\USymbChar{38}{129}] % [Unassigned U+2681] \definesymbol[DieFace3][\USymbChar{38}{130}] % [Unassigned U+2682] \definesymbol[DieFace4][\USymbChar{38}{131}] % [Unassigned U+2683] \definesymbol[DieFace5][\USymbChar{38}{132}] % [Unassigned U+2684] \definesymbol[DieFace6][\USymbChar{38}{133}] % [Unassigned U+2685] \stopsymbolset \startsymbolset[Unicode Go Markers] % 0x2600: Requires UnicodeRegular26 \definesymbol[WhiteCircleWithDotRight][\USymbChar{38}{134}] % [Unassigned U+2686] \definesymbol[WhiteCircleWithTwoDots][\USymbChar{38}{135}] % [Unassigned U+2687] \definesymbol[BlackCircleWithWhiteDotRight][\USymbChar{38}{136}] % [Unassigned U+2688] \definesymbol[BlackCircleWithTwoWhiteDots][\USymbChar{38}{137}] % [Unassigned U+2689] \stopsymbolset \startsymbolset[Unicode Scissors] % 0x2700: Requires UnicodeRegular27 \definesymbol[UpperBladeScissors][\USymbCharZapf{39}{1}] % UPPER BLADE SCISSORS \definesymbol[BlackScissors][\USymbCharZapf{39}{2}] % BLACK SCISSORS \definesymbol[LowerBladeScissors][\USymbCharZapf{39}{3}] % LOWER BLADE SCISSORS \definesymbol[WhiteScissors][\USymbCharZapf{39}{4}] % WHITE SCISSORS \stopsymbolset \startsymbolset[Unicode Dingbats] % 0x2700: Requires UnicodeRegular27 \definesymbol[TelephoneLocationSign][\USymbCharZapf{39}{6}] % TELEPHONE LOCATION SIGN \definesymbol[TapeDrive][\USymbCharZapf{39}{7}] % TAPE DRIVE \definesymbol[Airplane][\USymbCharZapf{39}{8}] % AIRPLANE \definesymbol[Envelope][\USymbCharZapf{39}{9}] % ENVELOPE \definesymbol[VictoryHand][\USymbCharZapf{39}{12}] % VICTORY HAND \definesymbol[WritingHand][\USymbCharZapf{39}{13}] % WRITING HAND \definesymbol[LowerRightPencil][\USymbCharZapf{39}{14}] % LOWER RIGHT PENCIL \definesymbol[Pencil][\USymbCharZapf{39}{15}] % PENCIL \definesymbol[UpperRightPencil][\USymbCharZapf{39}{16}] % UPPER RIGHT PENCIL \definesymbol[WhiteNib][\USymbCharZapf{39}{17}] % WHITE NIB \definesymbol[BlackNib][\USymbCharZapf{39}{18}] % BLACK NIB \definesymbol[BlackDiamondMinusWhiteX][\USymbCharZapf{39}{86}] % BLACK DIAMOND MINUS WHITE X \stopsymbolset \startsymbolset[Unicode Checks and Xs] % 0x2700: Requires UnicodeRegular27 \definesymbol[CheckMark][\USymbCharZapf{39}{19}] % CHECK MARK \definesymbol[HeavyCheckMark][\USymbCharZapf{39}{20}] % HEAVY CHECK MARK \definesymbol[MultiplicationX][\USymbCharZapf{39}{21}] % MULTIPLICATION X \definesymbol[HeavyMultiplicationX][\USymbCharZapf{39}{22}] % HEAVY MULTIPLICATION X \definesymbol[BallotX][\USymbCharZapf{39}{23}] % BALLOT X \definesymbol[HeavyBallotX][\USymbCharZapf{39}{24}] % HEAVY BALLOT X \stopsymbolset \startsymbolset[Unicode Stars] % 0x2700: Requires UnicodeRegular27 \definesymbol[FourTeardropSpokedAsterisk][\USymbCharZapf{39}{34}] % FOUR TEARDROP-SPOKED ASTERISK \definesymbol[FourBalloonSpokedAsterisk][\USymbCharZapf{39}{35}] % FOUR BALLOON-SPOKED ASTERISK \definesymbol[HeavyFourBalloonSpokedAsterisk][\USymbCharZapf{39}{36}] % HEAVY FOUR BALLOON-SPOKED ASTERISK \definesymbol[FourClubSpokedAsterisk][\USymbCharZapf{39}{37}] % FOUR CLUB-SPOKED ASTERISK \definesymbol[BlackFourPointedStar][\USymbCharZapf{39}{38}] % BLACK FOUR POINTED STAR \definesymbol[WhiteFourPointedStar][\USymbCharZapf{39}{39}] % WHITE FOUR POINTED STAR \definesymbol[StressOutlinedWhiteStar][\USymbCharZapf{39}{41}] % STRESS OUTLINED WHITE STAR \definesymbol[CircledWhiteStar][\USymbCharZapf{39}{42}] % CIRCLED WHITE STAR \definesymbol[OpenCentreBlackStar][\USymbCharZapf{39}{43}] % OPEN CENTRE BLACK STAR \definesymbol[BlackCentreWhiteStar][\USymbCharZapf{39}{44}] % BLACK CENTRE WHITE STAR \definesymbol[OutlinedBlackStar][\USymbCharZapf{39}{45}] % OUTLINED BLACK STAR \definesymbol[HeavyOutlinedBlackStar][\USymbCharZapf{39}{46}] % HEAVY OUTLINED BLACK STAR \definesymbol[PinwheelStar][\USymbCharZapf{39}{47}] % PINWHEEL STAR \definesymbol[ShadowedWhiteStar][\USymbCharZapf{39}{48}] % SHADOWED WHITE STAR \definesymbol[HeavyAsterisk][\USymbCharZapf{39}{49}] % HEAVY ASTERISK \definesymbol[OpenCentreAsterisk][\USymbCharZapf{39}{50}] % OPEN CENTRE ASTERISK \definesymbol[EightSpokedAsterisk][\USymbCharZapf{39}{51}] % EIGHT SPOKED ASTERISK \definesymbol[EightPointedBlackStar][\USymbCharZapf{39}{52}] % EIGHT POINTED BLACK STAR \definesymbol[EightPointedPinwheelStar][\USymbCharZapf{39}{53}] % EIGHT POINTED PINWHEEL STAR \definesymbol[SixPointedBlackStar][\USymbCharZapf{39}{54}] % SIX POINTED BLACK STAR \definesymbol[EightPointedRectilinearBlackStar][\USymbCharZapf{39}{55}] % EIGHT POINTED RECTILINEAR BLACK STAR \definesymbol[HeavyEightPointedRectilinearBlackStar][\USymbCharZapf{39}{56}] % HEAVY EIGHT POINTED RECTILINEAR BLACK STAR \definesymbol[TwelvePointedBlackStar][\USymbCharZapf{39}{57}] % TWELVE POINTED BLACK STAR \definesymbol[SixteenPointedAsterisk][\USymbCharZapf{39}{58}] % SIXTEEN POINTED ASTERISK \definesymbol[TeardropSpokedAsterisk][\USymbCharZapf{39}{59}] % TEARDROP-SPOKED ASTERISK \definesymbol[OpenCentreTeardropSpokedAsterisk][\USymbCharZapf{39}{60}] % OPEN CENTRE TEARDROP-SPOKED ASTERISK \definesymbol[HeavyTeardropSpokedAsterisk][\USymbCharZapf{39}{61}] % HEAVY TEARDROP-SPOKED ASTERISK \definesymbol[SixPetalledBlackAndWhiteFlorette][\USymbCharZapf{39}{62}] % SIX PETALLED BLACK AND WHITE FLORETTE \definesymbol[BlackFlorette][\USymbCharZapf{39}{63}] % BLACK FLORETTE \definesymbol[WhiteFlorette][\USymbCharZapf{39}{64}] % WHITE FLORETTE \definesymbol[EightPetalledOutlinedBlackFlorette][\USymbCharZapf{39}{65}] % EIGHT PETALLED OUTLINED BLACK FLORETTE \definesymbol[CircledOpenCentreEightPointedStar][\USymbCharZapf{39}{66}] % CIRCLED OPEN CENTRE EIGHT POINTED STAR \definesymbol[HeavyTeardropSpokedPinwheelAsterisk][\USymbCharZapf{39}{67}] % HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK \definesymbol[Sparkle][\USymbCharZapf{39}{71}] % SPARKLE \definesymbol[HeavySparkle][\USymbCharZapf{39}{72}] % HEAVY SPARKLE \definesymbol[Balloon-spokedAsterisk][\USymbCharZapf{39}{73}] % BALLOON-SPOKED ASTERISK \definesymbol[EightTeardrop-spokedPropellerAsterisk][\USymbCharZapf{39}{74}] % EIGHT TEARDROP-SPOKED PROPELLER ASTERISK \definesymbol[HeavyEightTeardrop-spokedPropellerAsterisk][\USymbCharZapf{39}{75}] % HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK \stopsymbolset \startsymbolset[Unicode Snowflakes] % 0x2700: Requires UnicodeRegular27 \definesymbol[Snowflake][\USymbCharZapf{39}{68}] % SNOWFLAKE \definesymbol[TightTrifoliateSnowflake][\USymbCharZapf{39}{69}] % TIGHT TRIFOLIATE SNOWFLAKE \definesymbol[HeavyChevronSnowflake][\USymbCharZapf{39}{70}] % HEAVY CHEVRON SNOWFLAKE \stopsymbolset \startsymbolset[Unicode Shadowed Shapes] % 0x2700: Requires UnicodeRegular27 \definesymbol[ShadowedWhiteCircle][\USymbCharZapf{39}{77}] % SHADOWED WHITE CIRCLE \definesymbol[LowerRightDrop-shadowedWhiteSquare][\USymbCharZapf{39}{79}] % LOWER RIGHT DROP-SHADOWED WHITE SQUARE \definesymbol[UpperRightDrop-shadowedWhiteSquare][\USymbCharZapf{39}{80}] % UPPER RIGHT DROP-SHADOWED WHITE SQUARE \definesymbol[LowerRightShadowedWhiteSquare][\USymbCharZapf{39}{81}] % LOWER RIGHT SHADOWED WHITE SQUARE \definesymbol[UpperRightShadowedWhiteSquare][\USymbCharZapf{39}{82}] % UPPER RIGHT SHADOWED WHITE SQUARE \stopsymbolset \startsymbolset[Unicode Bars] % 0x2700: Requires UnicodeRegular27 \definesymbol[LightVerticalBar][\USymbCharZapf{39}{88}] % LIGHT VERTICAL BAR \definesymbol[MediumVerticalBar][\USymbCharZapf{39}{89}] % MEDIUM VERTICAL BAR \definesymbol[HeavyVerticalBar][\USymbCharZapf{39}{90}] % HEAVY VERTICAL BAR \stopsymbolset \startsymbolset[Unicode Dingbat Punctuation] % 0x2700: Requires UnicodeRegular27 \definesymbol[HeavySingleTurnedCommaQuotationMark][\USymbCharZapf{39}{91}] % HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT \definesymbol[HeavySingleCommaQuotationMark][\USymbCharZapf{39}{92}] % HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT \definesymbol[HeavyDoubleTurnedCommaQuotationMark][\USymbCharZapf{39}{93}] % HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT \definesymbol[HeavyDoubleCommaQuotationMark][\USymbCharZapf{39}{94}] % HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT \definesymbol[CurvedStemParagraphSign][\USymbCharZapf{39}{97}] % CURVED STEM PARAGRAPH SIGN ORNAMENT \definesymbol[HeavyExclamationMark][\USymbCharZapf{39}{98}] % HEAVY EXCLAMATION MARK ORNAMENT \definesymbol[HeavyHeartExclamationMark][\USymbCharZapf{39}{99}] % HEAVY HEART EXCLAMATION MARK ORNAMENT \stopsymbolset \startsymbolset[Unicode Hearts] % 0x2700: Requires UnicodeRegular27 \definesymbol[HeavyBlackHeart][\USymbCharZapf{39}{100}] % HEAVY BLACK HEART \definesymbol[RotatedHeavyBlackHeartBullet][\USymbCharZapf{39}{101}] % ROTATED HEAVY BLACK HEART BULLET \definesymbol[FloralHeart][\USymbCharZapf{39}{102}] % FLORAL HEART \definesymbol[RotatedFloralHeartBullet][\USymbCharZapf{39}{103}] % ROTATED FLORAL HEART BULLET \stopsymbolset \startsymbolset[Unicode Negative Circled Digits] % 0x2700: Requires UnicodeRegular27 \definesymbol[CircledOne][\USymbCharZapf{39}{118}] % DINGBAT NEGATIVE CIRCLED DIGIT ONE \definesymbol[CircledTwo][\USymbCharZapf{39}{119}] % DINGBAT NEGATIVE CIRCLED DIGIT TWO \definesymbol[CircledThree][\USymbCharZapf{39}{120}] % DINGBAT NEGATIVE CIRCLED DIGIT THREE \definesymbol[CircledFour][\USymbCharZapf{39}{121}] % DINGBAT NEGATIVE CIRCLED DIGIT FOUR \definesymbol[CircledFive][\USymbCharZapf{39}{122}] % DINGBAT NEGATIVE CIRCLED DIGIT FIVE \definesymbol[CircledSix][\USymbCharZapf{39}{123}] % DINGBAT NEGATIVE CIRCLED DIGIT SIX \definesymbol[CircledSeven][\USymbCharZapf{39}{124}] % DINGBAT NEGATIVE CIRCLED DIGIT SEVEN \definesymbol[CircledEight][\USymbCharZapf{39}{125}] % DINGBAT NEGATIVE CIRCLED DIGIT EIGHT \definesymbol[CircledNine][\USymbCharZapf{39}{126}] % DINGBAT NEGATIVE CIRCLED DIGIT NINE \definesymbol[CircledTen][\USymbCharZapf{39}{127}] % DINGBAT NEGATIVE CIRCLED NUMBER TEN \stopsymbolset \startsymbolset[Unicode Circled Sans-serif Digits] % 0x2700: Requires UnicodeRegular27 \definesymbol[CircledOne][\USymbCharZapf{39}{128}] % DINGBAT CIRCLED SANS-SERIF DIGIT ONE \definesymbol[CircledTwo][\USymbCharZapf{39}{129}] % DINGBAT CIRCLED SANS-SERIF DIGIT TWO \definesymbol[CircledThree][\USymbCharZapf{39}{130}] % DINGBAT CIRCLED SANS-SERIF DIGIT THREE \definesymbol[CircledFour][\USymbCharZapf{39}{131}] % DINGBAT CIRCLED SANS-SERIF DIGIT FOUR \definesymbol[CircledFive][\USymbCharZapf{39}{132}] % DINGBAT CIRCLED SANS-SERIF DIGIT FIVE \definesymbol[CircledSix][\USymbCharZapf{39}{133}] % DINGBAT CIRCLED SANS-SERIF DIGIT SIX \definesymbol[CircledSeven][\USymbCharZapf{39}{134}] % DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN \definesymbol[CircledEight][\USymbCharZapf{39}{135}] % DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT \definesymbol[CircledNine][\USymbCharZapf{39}{136}] % DINGBAT CIRCLED SANS-SERIF DIGIT NINE \definesymbol[CircledTen][\USymbCharZapf{39}{137}] % DINGBAT CIRCLED SANS-SERIF NUMBER TEN \stopsymbolset \startsymbolset[Unicode Negative Circled Sans-serif Digits] % 0x2700: Requires UnicodeRegular27 \definesymbol[CircledOne][\USymbCharZapf{39}{138}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE \definesymbol[CircledTwo][\USymbCharZapf{39}{139}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO \definesymbol[CircledThree][\USymbCharZapf{39}{140}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE \definesymbol[CircledFour][\USymbCharZapf{39}{141}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR \definesymbol[CircledFive][\USymbCharZapf{39}{142}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE \definesymbol[CircledSix][\USymbCharZapf{39}{143}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX \definesymbol[CircledSeven][\USymbCharZapf{39}{144}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN \definesymbol[CircledEight][\USymbCharZapf{39}{145}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT \definesymbol[CircledNine][\USymbCharZapf{39}{146}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE \definesymbol[CircledTen][\USymbCharZapf{39}{147}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN \stopsymbolset \startsymbolset[Unicode Dingbat Arrows] % 0x2700: Requires UnicodeRegular27 \definesymbol[HeavyWideHeadedRightwardsArrow][\USymbCharZapf{39}{148}] % HEAVY WIDE-HEADED RIGHTWARDS ARROW \definesymbol[HeavySouthEastArrow][\USymbCharZapf{39}{152}] % HEAVY SOUTH EAST ARROW \definesymbol[HeavyRightwardsArrow][\USymbCharZapf{39}{153}] % HEAVY RIGHTWARDS ARROW \definesymbol[HeavyNorthEastArrow][\USymbCharZapf{39}{154}] % HEAVY NORTH EAST ARROW \definesymbol[DraftingPointRightwardsArrow][\USymbCharZapf{39}{155}] % DRAFTING POINT RIGHTWARDS ARROW \definesymbol[HeavyRoundTippedRightwardsArrow][\USymbCharZapf{39}{156}] % HEAVY ROUND-TIPPED RIGHTWARDS ARROW \definesymbol[TriangleHeadedRightwardsArrow][\USymbCharZapf{39}{157}] % TRIANGLE-HEADED RIGHTWARDS ARROW \definesymbol[HeavyTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{158}] % HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW \definesymbol[DashedTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{159}] % DASHED TRIANGLE-HEADED RIGHTWARDS ARROW \definesymbol[HeavyDashedTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{160}] % HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW \definesymbol[BlackRightwardsArrow][\USymbCharZapf{39}{161}] % BLACK RIGHTWARDS ARROW \definesymbol[3DTopLightedRightwardsArrowhead][\USymbCharZapf{39}{162}] % THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD \definesymbol[3DBottomLightedRightwardsArrowhead][\USymbCharZapf{39}{163}] % THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD \definesymbol[BlackRightwardsArrowhead][\USymbCharZapf{39}{164}] % BLACK RIGHTWARDS ARROWHEAD \definesymbol[HeavyBlackCurvedDownwardsAndRightwardsArrow][\USymbCharZapf{39}{165}] % HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW \definesymbol[HeavyBlackCurvedUpwardsAndRightwardsArrow][\USymbCharZapf{39}{166}] % HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW \definesymbol[SquatBlackRightwardsArrow][\USymbCharZapf{39}{167}] % SQUAT BLACK RIGHTWARDS ARROW \definesymbol[HeavyConcavePointedBlackRightwardsArrow][\USymbCharZapf{39}{168}] % HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW \definesymbol[CircledHeavyWhiteRightwardsArrow][\USymbCharZapf{39}{178}] % CIRCLED HEAVY WHITE RIGHTWARDS ARROW \definesymbol[OpenOutlinedRightwardsArrow][\USymbCharZapf{39}{190}] % OPEN-OUTLINED RIGHTWARDS ARROW \stopsymbolset \startsymbolset[Unicode Shadowed Arrows] % 0x2700: Requires UnicodeRegular27 \definesymbol[RightShadedWhiteRightwardsArrow][\USymbCharZapf{39}{169}] % RIGHT-SHADED WHITE RIGHTWARDS ARROW \definesymbol[LeftShadedWhiteRightwardsArrow][\USymbCharZapf{39}{170}] % LEFT-SHADED WHITE RIGHTWARDS ARROW \definesymbol[BackTiltedShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{171}] % BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW \definesymbol[FrontTiltedShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{172}] % FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW \definesymbol[HeavyLowerRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{173}] % HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW \definesymbol[HeavyUpperRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{174}] % HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW \definesymbol[NotchedLowerRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{175}] % NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW \definesymbol[NotchedUpperRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{177}] % NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW \stopsymbolset \startsymbolset[Unicode Tailed Arrows] % 0x2700: Requires UnicodeRegular27 \definesymbol[WhiteFeatheredRightwardsArrow][\USymbCharZapf{39}{179}] % WHITE-FEATHERED RIGHTWARDS ARROW \definesymbol[BlackFeatheredSouthEastArrow][\USymbCharZapf{39}{180}] % BLACK-FEATHERED SOUTH EAST ARROW \definesymbol[BlackFeatheredRightwardsArrow][\USymbCharZapf{39}{181}] % BLACK-FEATHERED RIGHTWARDS ARROW \definesymbol[BlackFeatheredNorthEastArrow][\USymbCharZapf{39}{182}] % BLACK-FEATHERED NORTH EAST ARROW \definesymbol[HeavyBlack-featheredSouthEastArrow][\USymbCharZapf{39}{183}] % HEAVY BLACK-FEATHERED SOUTH EAST ARROW \definesymbol[HeavyBlackFeatheredRightwardsArrow][\USymbCharZapf{39}{184}] % HEAVY BLACK-FEATHERED RIGHTWARDS ARROW \definesymbol[HeavyBlackFeatheredNorthEastArrow][\USymbCharZapf{39}{185}] % HEAVY BLACK-FEATHERED NORTH EAST ARROW \definesymbol[TeardropBarbedRightwardsArrow][\USymbCharZapf{39}{186}] % TEARDROP-BARBED RIGHTWARDS ARROW \definesymbol[HeavyTeardropShankedRightwardsArrow][\USymbCharZapf{39}{187}] % HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW \definesymbol[WedgeTailedRightwardsArrow][\USymbCharZapf{39}{188}] % WEDGE-TAILED RIGHTWARDS ARROW \definesymbol[HeavyWedgeTailedRightwardsArrow][\USymbCharZapf{39}{189}] % HEAVY WEDGE-TAILED RIGHTWARDS ARROW \stopsymbolset \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-con.mkii0000644000175000017500000000363314536300610024716 0ustar hillehille%D \module %D [ file=mult-con, %D version=2000.09.12, %D title=\CONTEXT\ Multilingual Macros, %D subtitle=Constants, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This file has been replaced by \type {mult-def.lua} from which we %D generate separate interface definition files. % obsolete: % % % \startvariables dutch english % german czech % italian romanian % french % % one: een one % eins jedna % uno unu % un % \stopvariables % % \startconstants dutch english % german czech % italian romanian % french % % sorttype: sortering sorttype % sorttype sorttype % sorttype sorttype % sorttype % \stopconstants % % \startelements dutch english % german czech % italian romanian % french % % begin: beginvan begin % anfang zacatek % inizio inceput % debut % \stopelements \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-alt.mkii0000644000175000017500000001351414536300610024656 0ustar hillehille%D \module %D [ file=lang-alt, %D version=1997.09.03, %D title=\CONTEXT\ Language Macros, %D subtitle=Altaic Languages, %D author=Hans Hagen / Tobias Burnus, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Altaic Languages} %D The framework of this module is set up by Hans Hagen while %D many of the first translations were done by Tobias. Later %D on, corrections were made by users. If you have suggestions, %D or feel that your name missing here, don't hesitate to send %D us an email. % Uigur, Uzbek % Azeri/Azerbaijani, Chuvash, Turkish, Turkmen % Kazakh, Kazar, Kireghiz, Noghay, Talar % Buryat, Kalmuck, Khalkha % % Turkmen translation by Nazar Annagurban 18. March 2010 \unprotect \installlanguage [\s!tr] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!year,\ ,\v!month,\ ,\v!day}] \installlanguage [\s!tk] [\c!spacing=\v!broad, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!year,\ ,\v!month,\ ,\v!day} \s!patterns=\s!tk, \s!lefthyphenmin=1, \s!righthyphenmin=2] \installlanguage [turkish] [\s!tr] \installlanguage [turkmen] [\s!tk] \setupheadtext [\s!tr] [\v!content=Fihrist] \setupheadtext [\s!tk] [\v!content=Mazmuny] \setupheadtext [\s!tr] [\v!tables=Tablolar] \setupheadtext [\s!tk] [\v!tables=Tablisalar] \setupheadtext [\s!tr] [\v!figures=\Scedilla ekiller] \setupheadtext [\s!tk] [\v!figures=Suratlar] \setupheadtext [\s!tr] [\v!graphics=Grafikler] \setupheadtext [\s!tk] [\v!graphics=Grafikler] \setupheadtext [\s!tr] [\v!intermezzi=...] \setupheadtext [\s!tk] [\v!intermezzi=Arakesmeler] \setupheadtext [\s!tr] [\v!index=\Idotaccent ndex] \setupheadtext [\s!tk] [\v!index=Indeks] \setupheadtext [\s!tr] [\v!abbreviations=K\dotlessi saltmalar] \setupheadtext [\s!tk] [\v!abbreviations=Gysgaltmalar] \setupheadtext [\s!tr] [\v!logos=Logolar] \setupheadtext [\s!tk] [\v!logos=Logolar] \setupheadtext [\s!tr] [\v!units=Birimler] \setupheadtext [\s!tk] [\v!units=Birlikler] \setuplabeltext [\s!tr] [\v!table=Tablo ] \setuplabeltext [\s!tk] [\v!table=Tablisa] \setuplabeltext [\s!tr] [\v!figure=\Scedilla ekil ] \setuplabeltext [\s!tk] [\v!figure=Surat] \setuplabeltext [\s!tr] [\v!intermezzo=... ] \setuplabeltext [\s!tk] [\v!intermezzo=Arakesme] \setuplabeltext [\s!tr] [\v!graphic=Grafik] \setuplabeltext [\s!tk] [\v!graphic=Grafik] \setuplabeltext [\s!tr] [\v!chapter=] \setuplabeltext [\s!tk] [\v!chapter=Bap] \setuplabeltext [\s!tr] [\v!section=] \setuplabeltext [\s!tk] [\v!section=] \setuplabeltext [\s!tr] [\v!subsection=] \setuplabeltext [\s!tk] [\v!subsection=] \setuplabeltext [\s!tr] [\v!subsubsection=] \setuplabeltext [\s!tr] [\v!subsubsubsection=] \setuplabeltext [\s!tk] [\v!subsubsubsection=] \setuplabeltext [\s!tr] [\v!appendix=] \setuplabeltext [\s!tk] [\v!appendix=Go\scedilla ma\ccedilla a] \setuplabeltext [\s!tr] [\v!part=Cilt ] \setuplabeltext [\s!tk] [\v!part=B\odiaeresis l\udiaeresis m] \setuplabeltext [\s!tr] [\v!line=sat\dotlessi r ] \setuplabeltext [\s!tk] [\v!line=setir] \setuplabeltext [\s!tr] [\v!lines=sat\dotlessi rlar ] \setuplabeltext [\s!tk] [\v!lines=setirler] \setuplabeltext [\s!tk] [\v!january=\yacute anwar] \setuplabeltext [\s!tk] [\v!february=fewral] \setuplabeltext [\s!tk] [\v!march=mart] \setuplabeltext [\s!tk] [\v!april=aprel] \setuplabeltext [\s!tk] [\v!may=ma\yacute] \setuplabeltext [\s!tk] [\v!june=i\yacute un] \setuplabeltext [\s!tk] [\v!july=i\yacute ul] \setuplabeltext [\s!tk] [\v!august=awgust] \setuplabeltext [\s!tk] [\v!september=sent\yacute abr] \setuplabeltext [\s!tk] [\v!october=okt\yacute abr] \setuplabeltext [\s!tk] [\v!november=no\yacute abr] \setuplabeltext [\s!tk] [\v!december=dekabr] \setuplabeltext [\s!tr] [\v!january=ocak] \setuplabeltext [\s!tr] [\v!february=\Scedilla ubat] \setuplabeltext [\s!tr] [\v!march=mart] \setuplabeltext [\s!tr] [\v!april=nisan] \setuplabeltext [\s!tr] [\v!may=may\dotlessi s] \setuplabeltext [\s!tr] [\v!june=haziran] \setuplabeltext [\s!tr] [\v!july=temmuz] \setuplabeltext [\s!tr] [\v!august=a\gbreve ustos] \setuplabeltext [\s!tr] [\v!september=eyl\udiaeresis l] \setuplabeltext [\s!tr] [\v!october=ekim] \setuplabeltext [\s!tr] [\v!november=kas\dotlessi m] \setuplabeltext [\s!tr] [\v!december=aral\dotlessi k] \setuplabeltext [\s!tr] [\v!sunday=pazar] \setuplabeltext [\s!tr] [\v!monday=pazartesi] \setuplabeltext [\s!tr] [\v!tuesday=sal\dotlessi] \setuplabeltext [\s!tr] [\v!wednesday=\ccedilla ar\scedilla amba] \setuplabeltext [\s!tr] [\v!thursday=per\scedilla embe] \setuplabeltext [\s!tr] [\v!friday=cuma] \setuplabeltext [\s!tr] [\v!saturday=cumartesi] \setuplabeltext [\s!tk] [\v!sunday=dyn\ccedilla\ g\udiaeresis n] \setuplabeltext [\s!tk] [\v!monday=birinji g\udiaeresis n] \setuplabeltext [\s!tk] [\v!tuesday=ikinji g\udiaeresis n] \setuplabeltext [\s!tk] [\v!wednesday=\udiaeresis\ccedilla\udiaeresis nji] \setuplabeltext [\s!tk] [\v!thursday=d\odiaeresis rd\udiaeresis nji g\udiaeresis n] \setuplabeltext [\s!tk] [\v!friday=b\adiaeresis\scedilla inji g\udiaeresis n] \setuplabeltext [\s!tk] [\v!saturday=altynjy g\udiaeresis n] %D \ShowAllLanguageValues [\s!tr] [turkish] {Turkish} {delight} % turks fruit \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/prop-mis.mkii0000644000175000017500000001267214536300610024731 0ustar hillehille%D \module %D [ file=prop-mis, %D version=2004.05.29, % some code moved from private modules %D title=\CONTEXT\ Property Macros, %D subtitle=Miscelaneous, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Property Macros / Miscelaneous} %D This module contains some code that has been in use in some %D private modules (p-*). These features depend on the fact %D that pdftex writes the page content as one stream. %D EXPERIMENTAL \unprotect %D Stream based overprint and knockout: \defineproperty[\v!overprint][\s!overprint] [\c!method=\v!command] \defineproperty[\v!knockout] [\s!overprint] [\c!method=\v!command] %D Negation. \defineproperty [\v!negative] [\s!negative] [\c!method=\v!command] \defineproperty [\v!positive] [\s!negative] [\c!method=\v!command] %D Special font effects. \setupproperty [\s!effect] [\c!rulethickness=\zeropoint, \c!stretch=0] \defineproperty [\v!inner] [\s!effect] [\c!rulethickness=.25pt] \defineproperty [\v!outer] [\s!effect] [\c!rulethickness=.25pt] \defineproperty [\v!both] [\s!effect] [\c!rulethickness=.25pt] \defineproperty [\v!normal] [\s!effect] \defineproperty [\v!hidden] [\s!effect] \defineproperty [\v!stretch] [\s!effect] [\c!stretch=1] %D Overprint cum suis. \definepropertyhandler \v!overprint {\dostartoverprint} \definepropertyhandler \v!knockout {\dostopoverprint } \def\startoverprintproperty {\ifincolor \propertyhandler\currentproperty \dooverprintmark\currentproperty \fi} \def\stopoverprintproperty {\ifincolor \ifcase\currentpropertylevel\or \dostopoverprint \dooverprintmark\empty \else \propertyhandler\previousproperty \dooverprintmark\previousproperty \fi \fi} \rawnewmark\overprintmark \def\dooverprintmark#1% {\ifinpagebody \else \ifinframed \else \expanded{\rawsetmark\noexpand\overprintmark{#1}}% \fi \fi} \def\pushoverprintproperty {\doifsomething{\rawgetbotmark\overprintmark}\dostopoverprint} \def\popoverprintproperty {\doifsomething{\rawgetbotmark\overprintmark}% {\propertyhandler{\rawgetbotmark\overprintmark}}} \def\popsplitoverprintproperty {\getsplitmarks\overprintmark % hier wel \doifsomething{\rawgetsplitbotmark\overprintmark}% {\propertyhandler{\rawgetsplitbotmark\overprintmark}}} \appendtoks \pushoverprintproperty \to \everypushproperties \appendtoks \popoverprintproperty \to \everypopproperties \appendtoks \popsplitoverprintproperty \to \everypopsplitproperties %D Negative cum suis. \definepropertyhandler \v!negative {\dostartnegative} \definepropertyhandler \v!positive {\dostopnegative } \def\startnegativeproperty {\ifincolor \propertyhandler\currentproperty \donegativemark\currentproperty \fi} \def\stopnegativeproperty {\ifincolor \ifcase\currentpropertylevel\or \dostopnegative \donegativemark\empty \else \propertyhandler\previousproperty \donegativemark\previousproperty \fi \fi} \rawnewmark\negativemark \def\donegativemark#1% {\ifinpagebody \else \ifinframed \else \expanded{\rawsetmark\noexpand\negativemark{#1}}% \fi \fi} \def\pushnegativeproperty {\doifsomething{\rawgetbotmark\negativemark}\dostopnegative} \def\popnegativeproperty {\doifsomething{\rawgetbotmark\overprintmark}% {\propertyhandler{\rawgetbotmark\negativemark}}} \def\popsplitnegativeproperty {\getsplitmarks\negativemark % hier wel \doifsomething{\rawgetsplitbotmark\negativemark}% {\propertyhandler{\rawgetsplitbotmark\negativemark}}} \appendtoks \pushnegativeproperty \to \everypushproperties \appendtoks \popnegativeproperty \to \everypopproperties \appendtoks \popsplitnegativeproperty \to \everypopsplitproperties %D Effects. \definepropertyhandler \v!normal {0} \definepropertyhandler \v!inner {0} \definepropertyhandler \v!outer {1} \definepropertyhandler \v!both {2} \definepropertyhandler \v!hidden {3} \definepropertyhandler \v!stretch{0} \def\effectpropertydata#1% {{\propertyhandler{#1}}% {\propertyparameter{#1}\c!rulethickness}% {\propertyparameter{#1}\c!stretch}} \def\starteffectproperty {\expanded{\dostartfonteffect\effectpropertydata\currentproperty}% \doeffectmark{\effectpropertydata\currentproperty}} \def\stopeffectproperty {\dostopfonteffect \ifcase\currentpropertylevel\or \doeffectmark\empty \else \expanded{\dostartfonteffect\effectpropertydata\previousproperty}% \doeffectmark{\effectpropertydata\previousproperty}% \fi} \rawnewmark\effectmark \def\doeffectmark#1% {\ifinpagebody \else \ifinframed \else \expanded{\rawsetmark\noexpand\effectmark{#1}}% could be number \fi \fi} \def\pusheffectproperty {\doifsomething{\rawgetbotmark\effectmark}\dostopfonteffect} \def\popeffectproperty {\doifsomething{\rawgetbotmark\effectmark}% {\expanded{\dostartfonteffect\rawgetbotmark\effectmark}}} \def\popspliteffectproperty {\getsplitmarks\effectmark \doifsomething{\rawgetsplitbotmark\effectmark}% {\expanded{\dostartfonteffect\rawgetsplitbotmark\effectmark}}} \appendtoks \pusheffectproperty \to \everypushproperties \appendtoks \popeffectproperty \to \everypopproperties \appendtoks \popspliteffectproperty \to \everypopsplitproperties \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-cyr.mkii0000644000175000017500000012640714536300610024704 0ustar hillehille%D \module %D [ file=enco-cyr, %D version=2003.01.24, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Cyrillic, %D author=..., %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D The following kerning test is inspired by a test file %D provided by Victor Figurnov. I hope he still recognizes %D some bit and pieces. %D %D \starttyping %D \setupoutput[pdftex] %D %D \startMPenvironment[global] %D \useregime[cyr] %D \useencoding[cyr] %D \mainlanguage[ru] %D \enableregime[cp1251] %D \setupbodyfont[cyr] %D \stopMPenvironment %D %D \startbuffer %D \starttabulate[|l|l|l|] %D \NC \ruledhbox{} \NC \ruledhbox{AV} \NC with kerning \NC \NR %D \NC \ruledhbox{{}{}} \NC \ruledhbox{A{}V} \NC without kerning \NC \NR %D \NC \ruledhbox{\tfd } \NC \ruledhbox{\tfd AV} \NC with kerning \NC \NR %D \NC \ruledhbox{\tfd {}{}} \NC \ruledhbox{\tfd A{}V} \NC without kerning \NC \NR %D \stoptabulate %D %D \showkerning{ } %D \stopbuffer %D %D \starttext %D %D \title{Kerning test} %D %D \typebuffer %D %D \rm \subject{Serif font} \getbuffer %D \ss \subject{SansSerif font} \getbuffer %D \tt \subject{MonoSpacec font} \getbuffer %D %D \stoptext %D \stoptyping %D We start with a fallback, define by HH, who assumes that %D this is phonetic. \startmapping[t2a] \resetcaserange 128 to 255 \definecasemaps 192 to 223 lc +32 uc 0 % base letters (russian) \definecasemaps 224 to 255 lc 0 uc -32 \definecasemaps 128 to 156 lc +32 uc 0 % extra letters (cyrillic and old-slav) \definecasemaps 160 to 188 lc 0 uc -32 \definecasemap 73 105 73 \definecasemap 105 105 73 % cyrillicII \definecasemap 74 106 74 \definecasemap 106 106 74 % cyrillicJE \definecasemap 81 113 81 \definecasemap 113 113 81 % cyrillicQ \definecasemap 87 119 87 \definecasemap 119 119 87 % cyrillicW \stopmapping \startencoding[t2a] \definecharacter textgrave 0 \definecharacter textacute 1 \definecharacter textcircumflex 2 \definecharacter texttilde 3 \definecharacter textdiaeresis 4 \definecharacter texthungarumlaut 5 \definecharacter textring 6 \definecharacter textcaron 7 \definecharacter textbreve 8 \definecharacter textmacron 9 \definecharacter textdotaccent 10 \definecharacter textcedilla 11 \definecharacter textogonek 12 \definecharacter textcyrillicflex 18 \definecharacter textdblgrave 19 \definecharacter textcyrillicbreve 20 \definecharacter endash 21 \definecharacter emdash 22 \definecharacter textcompwordmark 23 \definecharacter textbackslash 92 \definecharacter textasciicircum 94 \definecharacter textunderscore 95 \definecharacter textbraceleft 123 \definecharacter textbraceright 125 \definecharacter textasciitilde 126 \definecharacter textnumero 157 \definecharacter textcurrency 158 \definecharacter sectionmark 159 \definecharacter quotedbl 34 \definecharacter quoteleft 96 \definecharacter upperleftsingleninequote 39 \definecharacter quotedblleft 16 \definecharacter quotedblright 17 \definecharacter lowerleftdoubleninequote 189 \definecharacter upperrightdoublesixquote 16 \definecharacter upperrightdoubleninequote 17 \definecharacter quotedblbase 189 \definecharacter cyrillicpalochka 13 \definecharacter cyrilliclangle 14 \definecharacter cyrillicrangle 15 \definecharacter leftguillemot 190 \definecharacter rightguillemot 191 \definecharacter dotlessi 25 \definecharacter cyrillicA 192 \definecharacter cyrillica 224 \definecharacter cyrillicB 193 \definecharacter cyrillicb 225 \definecharacter cyrillicV 194 \definecharacter cyrillicv 226 \definecharacter cyrillicG 195 \definecharacter cyrillicg 227 \definecharacter cyrillicD 196 \definecharacter cyrillicd 228 \definecharacter cyrillicE 197 \definecharacter cyrillice 229 \definecharacter cyrillicZH 198 \definecharacter cyrilliczh 230 \definecharacter cyrillicZ 199 \definecharacter cyrillicz 231 \definecharacter cyrillicI 200 \definecharacter cyrillici 232 \definecharacter cyrillicISHRT 201 \definecharacter cyrillicishrt 233 \definecharacter cyrillicK 202 \definecharacter cyrillick 234 \definecharacter cyrillicL 203 \definecharacter cyrillicl 235 \definecharacter cyrillicM 204 \definecharacter cyrillicm 236 \definecharacter cyrillicN 205 \definecharacter cyrillicn 237 \definecharacter cyrillicO 206 \definecharacter cyrillico 238 \definecharacter cyrillicP 207 \definecharacter cyrillicp 239 \definecharacter cyrillicR 208 \definecharacter cyrillicr 240 \definecharacter cyrillicS 209 \definecharacter cyrillics 241 \definecharacter cyrillicT 210 \definecharacter cyrillict 242 \definecharacter cyrillicU 211 \definecharacter cyrillicu 243 \definecharacter cyrillicF 212 \definecharacter cyrillicf 244 \definecharacter cyrillicH 213 \definecharacter cyrillich 245 \definecharacter cyrillicC 214 \definecharacter cyrillicc 246 \definecharacter cyrillicCH 215 \definecharacter cyrillicch 247 \definecharacter cyrillicSH 216 \definecharacter cyrillicsh 248 \definecharacter cyrillicSHCH 217 \definecharacter cyrillicshch 249 \definecharacter cyrillicHRDSN 218 \definecharacter cyrillichrdsn 250 \definecharacter cyrillicERY 219 \definecharacter cyrillicery 251 \definecharacter cyrillicSFTSN 220 \definecharacter cyrillicsftsn 252 \definecharacter cyrillicEREV 221 \definecharacter cyrillicerev 253 \definecharacter cyrillicYU 222 \definecharacter cyrillicyu 254 \definecharacter cyrillicYA 223 \definecharacter cyrillicya 255 \definecharacter cyrillicGUP 128 \definecharacter cyrillicgup 160 \definecharacter cyrillicGHCRS 129 \definecharacter cyrillicghcrs 161 \definecharacter cyrillicDJE 130 \definecharacter cyrillicdje 162 \definecharacter cyrillicTSHE 131 \definecharacter cyrillictshe 163 \definecharacter cyrillicSHHA 132 \definecharacter cyrillicshha 164 \definecharacter cyrillicZHDSC 133 \definecharacter cyrilliczhdsc 165 \definecharacter cyrillicZDSC 134 \definecharacter cyrilliczdsc 166 \definecharacter cyrillicLJE 135 \definecharacter cyrilliclje 167 \definecharacter cyrillicYI 136 \definecharacter cyrillicyi 168 \definecharacter cyrillicKDSC 137 \definecharacter cyrillickdsc 169 \definecharacter cyrillicKBEAK 138 \definecharacter cyrillickbeak 170 \definecharacter cyrillicKVCRS 139 \definecharacter cyrillickvcrs 171 \definecharacter cyrillicAE 140 \definecharacter cyrillicae 172 \definecharacter cyrillicNDSC 141 \definecharacter cyrillicndsc 173 \definecharacter cyrillicNG 142 \definecharacter cyrillicng 174 \definecharacter cyrillicDZE 143 \definecharacter cyrillicdze 175 \definecharacter cyrillicOTLD 144 \definecharacter cyrillicotld 176 \definecharacter cyrillicSDSC 145 \definecharacter cyrillicsdsc 177 \definecharacter cyrillicUSHRT 146 \definecharacter cyrillicushrt 178 \definecharacter cyrillicY 147 \definecharacter cyrillicy 179 \definecharacter cyrillicYHCRS 148 \definecharacter cyrillicyhcrs 180 \definecharacter cyrillicHDSC 149 \definecharacter cyrillichdsc 181 \definecharacter cyrillicDZHE 150 \definecharacter cyrillicdzhe 182 \definecharacter cyrillicCHVCRS 151 \definecharacter cyrillicchvcrs 183 \definecharacter cyrillicCHRDSC 152 \definecharacter cyrillicchrdsc 184 \definecharacter cyrillicIE 153 \definecharacter cyrillicie 185 \definecharacter cyrillicSCHWA 154 \definecharacter cyrillicschwa 186 \definecharacter cyrillicNJE 155 \definecharacter cyrillicnje 187 \definecharacter cyrillicYO 156 \definecharacter cyrillicyo 188 \definecharacter cyrillicII 73 \definecharacter cyrillicii 105 \definecharacter cyrillicJE 74 \definecharacter cyrillicje 106 \definecharacter cyrillicQ 81 \definecharacter cyrillicq 113 \definecharacter cyrillicW 87 \definecharacter cyrillicw 119 % \definecharacter textperthousand {\%\char 24 } % \definecharacter textpertenthousand {\%\char 24\char 24 } \definecharacter cyrillicgheupturn 160 % to satisfy the patterns \stopencoding \startmapping[t2b] \resetcaserange 128 to 255 \definecasemaps 192 to 223 lc +32 uc 0 % base letters (russian) \definecasemaps 224 to 255 lc 0 uc -32 \definecasemaps 128 to 156 lc +32 uc 0 % extra letters (cyrillic and old-slav) \definecasemaps 160 to 188 lc 0 uc -32 \definecasemap 73 105 73 \definecasemap 105 105 73 % cyrillicII \definecasemap 74 106 74 \definecasemap 106 106 74 % cyrillicJE \definecasemap 81 113 81 \definecasemap 113 113 81 % cyrillicQ \definecasemap 83 115 83 \definecasemap 115 115 83 % cyrillicDZE \definecasemap 87 119 87 \definecasemap 119 119 87 % cyrillicW \stopmapping \startencoding[t2b] \definecharacter textgrave 0 \definecharacter textacute 1 \definecharacter textcircumflex 2 \definecharacter texttilde 3 \definecharacter textdiaeresis 4 \definecharacter texthungarumlaut 5 \definecharacter textring 6 \definecharacter textcaron 7 \definecharacter textbreve 8 \definecharacter textmacron 9 \definecharacter textdotaccent 10 \definecharacter textcedilla 11 \definecharacter textogonek 12 \definecharacter textcyrillicflex 18 \definecharacter textdblgrave 19 \definecharacter textcyrillicbreve 20 \definecharacter endash 21 \definecharacter emdash 22 \definecharacter textcompwordmark 23 \definecharacter textbackslash 92 \definecharacter textasciicircum 94 \definecharacter textunderscore 95 \definecharacter textbraceleft 123 \definecharacter textbraceright 125 \definecharacter textasciitilde 126 \definecharacter textnumero 157 \definecharacter textcurrency 158 \definecharacter sectionmark 159 \definecharacter quotedbl 34 \definecharacter quoteleft 96 \definecharacter upperleftsingleninequote 39 \definecharacter quotedblleft 16 \definecharacter quotedblright 17 \definecharacter lowerleftdoubleninequote 189 \definecharacter upperrightdoublesixquote 16 \definecharacter upperrightdoubleninequote 17 \definecharacter quotedblbase 189 \definecharacter cyrillicpalochka 13 \definecharacter cyrilliclangle 14 \definecharacter cyrillicrangle 15 \definecharacter leftguillemot 190 \definecharacter rightguillemot 191 \definecharacter dotlessi 25 \definecharacter cyrillicA 192 \definecharacter cyrillica 224 \definecharacter cyrillicB 193 \definecharacter cyrillicb 225 \definecharacter cyrillicV 194 \definecharacter cyrillicv 226 \definecharacter cyrillicG 195 \definecharacter cyrillicg 227 \definecharacter cyrillicD 196 \definecharacter cyrillicd 228 \definecharacter cyrillicE 197 \definecharacter cyrillice 229 \definecharacter cyrillicZH 198 \definecharacter cyrilliczh 230 \definecharacter cyrillicZ 199 \definecharacter cyrillicz 231 \definecharacter cyrillicI 200 \definecharacter cyrillici 232 \definecharacter cyrillicISHRT 201 \definecharacter cyrillicishrt 233 \definecharacter cyrillicK 202 \definecharacter cyrillick 234 \definecharacter cyrillicL 203 \definecharacter cyrillicl 235 \definecharacter cyrillicM 204 \definecharacter cyrillicm 236 \definecharacter cyrillicN 205 \definecharacter cyrillicn 237 \definecharacter cyrillicO 206 \definecharacter cyrillico 238 \definecharacter cyrillicP 207 \definecharacter cyrillicp 239 \definecharacter cyrillicR 208 \definecharacter cyrillicr 240 \definecharacter cyrillicS 209 \definecharacter cyrillics 241 \definecharacter cyrillicT 210 \definecharacter cyrillict 242 \definecharacter cyrillicU 211 \definecharacter cyrillicu 243 \definecharacter cyrillicF 212 \definecharacter cyrillicf 244 \definecharacter cyrillicH 213 \definecharacter cyrillich 245 \definecharacter cyrillicC 214 \definecharacter cyrillicc 246 \definecharacter cyrillicCH 215 \definecharacter cyrillicch 247 \definecharacter cyrillicSH 216 \definecharacter cyrillicsh 248 \definecharacter cyrillicSHCH 217 \definecharacter cyrillicshch 249 \definecharacter cyrillicHRDSN 218 \definecharacter cyrillichrdsn 250 \definecharacter cyrillicERY 219 \definecharacter cyrillicery 251 \definecharacter cyrillicSFTSN 220 \definecharacter cyrillicsftsn 252 \definecharacter cyrillicEREV 221 \definecharacter cyrillicerev 253 \definecharacter cyrillicYU 222 \definecharacter cyrillicyu 254 \definecharacter cyrillicYA 223 \definecharacter cyrillicya 255 \definecharacter cyrillicGDSCHCRS 128 \definecharacter cyrillicgdschcrs 160 \definecharacter cyrillicGHCRS 129 \definecharacter cyrillicghcrs 161 \definecharacter cyrillicGDSC 130 \definecharacter cyrillicgdsc 162 \definecharacter cyrillicGHK 131 \definecharacter cyrillicghk 163 \definecharacter cyrillicSHHA 132 \definecharacter cyrillicshha 164 \definecharacter cyrillicZHDSC 133 \definecharacter cyrilliczhdsc 165 \definecharacter cyrillicDELTA 134 \definecharacter cyrillicdelta 166 \definecharacter cyrillicABHDZE 135 \definecharacter cyrillicabhdze 167 \definecharacter cyrillicLJE 136 \definecharacter cyrilliclje 168 \definecharacter cyrillicKDSC 137 \definecharacter cyrillickdsc 169 \definecharacter cyrillicLDSC 138 \definecharacter cyrillicldsc 170 \definecharacter cyrillicKHK 139 \definecharacter cyrillickhk 171 \definecharacter cyrillicLHK 140 \definecharacter cyrilliclhk 172 \definecharacter cyrillicNDSC 141 \definecharacter cyrillicndsc 173 \definecharacter cyrillicNG 142 \definecharacter cyrillicng 174 \definecharacter cyrillicNHK 143 \definecharacter cyrillicnhk 175 \definecharacter cyrillicOTLD 144 \definecharacter cyrillicotld 176 \definecharacter cyrillicSACRS 145 \definecharacter cyrillicsacrs 177 \definecharacter cyrillicUSHRT 146 \definecharacter cyrillicushrt 178 \definecharacter cyrillicY 147 \definecharacter cyrillicy 179 \definecharacter cyrillicHHCRS 148 \definecharacter cyrillichhcrs 180 \definecharacter cyrillicHDSC 149 \definecharacter cyrillichdsc 181 \definecharacter cyrillicHHK 150 \definecharacter cyrillichhk 182 \definecharacter cyrillicCHLDSC 151 \definecharacter cyrillicchldsc 183 \definecharacter cyrillicCHRDSC 152 \definecharacter cyrillicchrdsc 184 \definecharacter cyrillicNJE 153 \definecharacter cyrillicnje 185 \definecharacter cyrillicSCHWA 154 \definecharacter cyrillicschwa 186 \definecharacter cyrillicEPS 155 \definecharacter cyrilliceps 187 \definecharacter cyrillicYO 156 \definecharacter cyrillicyo 188 \definecharacter cyrillicII 73 \definecharacter cyrillicii 105 \definecharacter cyrillicJE 74 \definecharacter cyrillicje 106 \definecharacter cyrillicQ 81 \definecharacter cyrillicq 113 \definecharacter cyrillicDZE 83 \definecharacter cyrillicdze 115 \definecharacter cyrillicW 87 \definecharacter cyrillicw 119 \stopencoding \startmapping[t2c] \resetcaserange 128 to 255 \definecasemaps 192 to 223 lc +32 uc 0 % base letters (russian) \definecasemaps 224 to 255 lc 0 uc -32 \definecasemaps 128 to 156 lc +32 uc 0 % extra letters (cyrillic and old-slav) \definecasemaps 160 to 188 lc 0 uc -32 \definecasemap 73 105 73 \definecasemap 105 105 73 % cyrillicII \definecasemap 74 106 74 \definecasemap 106 106 74 % cyrillicJE \definecasemap 81 113 81 \definecasemap 113 113 81 % cyrillicQ \definecasemap 83 115 83 \definecasemap 115 115 83 % cyrillicDZE \definecasemap 87 119 87 \definecasemap 119 119 87 % cyrillicW \stopmapping \startencoding[t2c] \definecharacter textgrave 0 \definecharacter textacute 1 \definecharacter textcircumflex 2 \definecharacter texttilde 3 \definecharacter textdiaeresis 4 \definecharacter texthungarumlaut 5 \definecharacter textring 6 \definecharacter textcaron 7 \definecharacter textbreve 8 \definecharacter textmacron 9 \definecharacter textdotaccent 10 \definecharacter textcedilla 11 \definecharacter textogonek 12 \definecharacter textcyrillicflex 18 \definecharacter textdblgrave 19 \definecharacter textcyrillicbreve 20 \definecharacter endash 21 \definecharacter emdash 22 \definecharacter textcompwordmark 23 \definecharacter textbackslash 92 \definecharacter textasciicircum 94 \definecharacter textunderscore 95 \definecharacter textbraceleft 123 \definecharacter textbraceright 125 \definecharacter textasciitilde 126 \definecharacter textnumero 157 \definecharacter textcurrency 158 \definecharacter sectionmark 159 \definecharacter quotedbl 34 \definecharacter quoteleft 96 \definecharacter upperleftsingleninequote 39 \definecharacter quotedblleft 16 \definecharacter quotedblright 17 \definecharacter lowerleftdoubleninequote 189 \definecharacter upperrightdoublesixquote 16 \definecharacter upperrightdoubleninequote 17 \definecharacter quotedblbase 189 \definecharacter cyrillicpalochka 13 \definecharacter cyrilliclangle 14 \definecharacter cyrillicrangle 15 \definecharacter leftguillemot 190 \definecharacter rightguillemot 191 \definecharacter dotlessi 25 \definecharacter cyrillicA 192 \definecharacter cyrillica 224 \definecharacter cyrillicB 193 \definecharacter cyrillicb 225 \definecharacter cyrillicV 194 \definecharacter cyrillicv 226 \definecharacter cyrillicG 195 \definecharacter cyrillicg 227 \definecharacter cyrillicD 196 \definecharacter cyrillicd 228 \definecharacter cyrillicE 197 \definecharacter cyrillice 229 \definecharacter cyrillicZH 198 \definecharacter cyrilliczh 230 \definecharacter cyrillicZ 199 \definecharacter cyrillicz 231 \definecharacter cyrillicI 200 \definecharacter cyrillici 232 \definecharacter cyrillicISHRT 201 \definecharacter cyrillicishrt 233 \definecharacter cyrillicK 202 \definecharacter cyrillick 234 \definecharacter cyrillicL 203 \definecharacter cyrillicl 235 \definecharacter cyrillicM 204 \definecharacter cyrillicm 236 \definecharacter cyrillicN 205 \definecharacter cyrillicn 237 \definecharacter cyrillicO 206 \definecharacter cyrillico 238 \definecharacter cyrillicP 207 \definecharacter cyrillicp 239 \definecharacter cyrillicR 208 \definecharacter cyrillicr 240 \definecharacter cyrillicS 209 \definecharacter cyrillics 241 \definecharacter cyrillicT 210 \definecharacter cyrillict 242 \definecharacter cyrillicU 211 \definecharacter cyrillicu 243 \definecharacter cyrillicF 212 \definecharacter cyrillicf 244 \definecharacter cyrillicH 213 \definecharacter cyrillich 245 \definecharacter cyrillicC 214 \definecharacter cyrillicc 246 \definecharacter cyrillicCH 215 \definecharacter cyrillicch 247 \definecharacter cyrillicSH 216 \definecharacter cyrillicsh 248 \definecharacter cyrillicSHCH 217 \definecharacter cyrillicshch 249 \definecharacter cyrillicHRDSN 218 \definecharacter cyrillichrdsn 250 \definecharacter cyrillicERY 219 \definecharacter cyrillicery 251 \definecharacter cyrillicSFTSN 220 \definecharacter cyrillicsftsn 252 \definecharacter cyrillicEREV 221 \definecharacter cyrillicerev 253 \definecharacter cyrillicYU 222 \definecharacter cyrillicyu 254 \definecharacter cyrillicYA 223 \definecharacter cyrillicya 255 \definecharacter cyrillicPHK 128 \definecharacter cyrillicphk 160 \definecharacter cyrillicTETSE 129 \definecharacter cyrillictetse 161 \definecharacter cyrillicTDSC 130 \definecharacter cyrillictdsc 162 \definecharacter cyrillicGHK 131 \definecharacter cyrillicghk 163 \definecharacter cyrillicSHHA 132 \definecharacter cyrillicshha 164 \definecharacter cyrillicRDSC 133 \definecharacter cyrillicrdsc 165 \definecharacter cyrillicRTICK 134 \definecharacter cyrillicrtick 166 \definecharacter cyrillicABHDZE 135 \definecharacter cyrillicabhdze 167 \definecharacter cyrillicMDSC 136 \definecharacter cyrillicmdsc 168 \definecharacter cyrillicKDSC 137 \definecharacter cyrillickdsc 169 \definecharacter cyrillicLDSC 138 \definecharacter cyrillicldsc 170 \definecharacter cyrillicKHCRS 139 \definecharacter cyrillickhcrs 171 \definecharacter cyrillicLHK 140 \definecharacter cyrilliclhk 172 \definecharacter cyrillicNDSC 141 \definecharacter cyrillicndsc 173 \definecharacter cyrillicMHK 142 \definecharacter cyrillicmhk 174 \definecharacter cyrillicNHK 143 \definecharacter cyrillicnhk 175 \definecharacter cyrillicOTLD 144 \definecharacter cyrillicotld 176 \definecharacter cyrillicABHCH 145 \definecharacter cyrillicabhch 177 \definecharacter cyrillicABHCHDSC 146 \definecharacter cyrillicabhchdsc 178 \definecharacter cyrillicSEMISFTSN 147 \definecharacter cyrillicsemisftsn 179 \definecharacter cyrillicISHRTDSC 148 \definecharacter cyrillicishrtdsc 180 \definecharacter cyrillicHDSC 149 \definecharacter cyrillichdsc 181 \definecharacter cyrillicDZHE 150 \definecharacter cyrillicdzhe 182 \definecharacter cyrillicABHHA 151 \definecharacter cyrillicabhha 183 \definecharacter cyrillicCHRDSC 152 \definecharacter cyrillicchrdsc 184 \definecharacter cyrillicNLHK 153 \definecharacter cyrillicnlhk 185 \definecharacter cyrillicSCHWA 154 \definecharacter cyrillicschwa 186 \definecharacter cyrillicRHK 155 \definecharacter cyrillicrhk 187 \definecharacter cyrillicYO 156 \definecharacter cyrillicyo 188 \definecharacter cyrillicII 73 \definecharacter cyrillicii 105 \definecharacter cyrillicJE 74 \definecharacter cyrillicje 106 \definecharacter cyrillicQ 81 \definecharacter cyrillicq 113 \definecharacter cyrillicDZE 83 \definecharacter cyrillicdze 115 \definecharacter cyrillicW 87 \definecharacter cyrillicw 119 \stopencoding \startmapping[x2] \resetcaserange 128 to 255 \definecasemaps 192 to 223 lc +32 uc 0 % base letters (russian) \definecasemaps 224 to 255 lc 0 uc -32 \definecasemaps 128 to 156 lc +32 uc 0 % extra letters (cyrillic and old-slav) \definecasemaps 160 to 188 lc 0 uc -32 \definecasemaps 65 to 90 lc +32 uc 0 % more extra letters (cyrillic and old-slav) \definecasemaps 97 to 122 lc 0 uc -32 \definecasemap 28 29 28 \definecasemap 29 29 28 % cyrillicNLHK \definecasemap 30 31 30 \definecasemap 31 31 30 % cyrillicDELTA \stopmapping \startencoding[x2] \definecharacter textgrave 0 \definecharacter textacute 1 \definecharacter textcircumflex 2 \definecharacter texttilde 3 \definecharacter textdiaeresis 4 \definecharacter texthungarumlaut 5 \definecharacter textring 6 \definecharacter textcaron 7 \definecharacter textbreve 8 \definecharacter textmacron 9 \definecharacter textdotaccent 10 \definecharacter textcedilla 11 \definecharacter textogonek 12 \definecharacter endash 21 \definecharacter emdash 22 \definecharacter textcompwordmark 23 \definecharacter textvisiblespace 32 \definecharacter textdollar 36 \definecharacter textless 60 \definecharacter textgreater 62 \definecharacter textbackslash 92 \definecharacter textasciicircum 94 \definecharacter textunderscore 95 \definecharacter textbraceleft 123 \definecharacter textbar 124 \definecharacter textbraceright 125 \definecharacter textasciitilde 126 \definecharacter textnumero 157 \definecharacter textcurrency 158 \definecharacter textsection 159 \definecharacter sectionmark 159 \definecharacter textquotedbl 34 \definecharacter cyrillicpalochka 13 \definecharacter cyrilliclangle 14 \definecharacter cyrillicrangle 15 \definecharacter leftguillemot 190 \definecharacter rightguillemot 191 \definecharacter upperleftsinglesixquote 96 \definecharacter upperleftsingleninequote 39 \definecharacter upperleftdoublesixquote 16 \definecharacter upperleftdoubleninequote 17 \definecharacter lowerleftdoubleninequote 189 \definecharacter upperrightsinglesixquote 96 \definecharacter upperrightsingleninequote 39 \definecharacter upperrightdoublesixquote 16 \definecharacter upperrightdoubleninequote 17 \definecharacter lowerrightdoubleninequote 189 \definecharacter cyrillicA 192 \definecharacter cyrillica 224 \definecharacter cyrillicB 193 \definecharacter cyrillicb 225 \definecharacter cyrillicV 194 \definecharacter cyrillicv 226 \definecharacter cyrillicG 195 \definecharacter cyrillicg 227 \definecharacter cyrillicD 196 \definecharacter cyrillicd 228 \definecharacter cyrillicE 197 \definecharacter cyrillice 229 \definecharacter cyrillicZH 198 \definecharacter cyrilliczh 230 \definecharacter cyrillicZ 199 \definecharacter cyrillicz 231 \definecharacter cyrillicI 200 \definecharacter cyrillici 232 \definecharacter cyrillicISHRT 201 \definecharacter cyrillicishrt 233 \definecharacter cyrillicK 202 \definecharacter cyrillick 234 \definecharacter cyrillicL 203 \definecharacter cyrillicl 235 \definecharacter cyrillicM 204 \definecharacter cyrillicm 236 \definecharacter cyrillicN 205 \definecharacter cyrillicn 237 \definecharacter cyrillicO 206 \definecharacter cyrillico 238 \definecharacter cyrillicP 207 \definecharacter cyrillicp 239 \definecharacter cyrillicR 208 \definecharacter cyrillicr 240 \definecharacter cyrillicS 209 \definecharacter cyrillics 241 \definecharacter cyrillicT 210 \definecharacter cyrillict 242 \definecharacter cyrillicU 211 \definecharacter cyrillicu 243 \definecharacter cyrillicF 212 \definecharacter cyrillicf 244 \definecharacter cyrillicH 213 \definecharacter cyrillich 245 \definecharacter cyrillicC 214 \definecharacter cyrillicc 246 \definecharacter cyrillicCH 215 \definecharacter cyrillicch 247 \definecharacter cyrillicSH 216 \definecharacter cyrillicsh 248 \definecharacter cyrillicSHCH 217 \definecharacter cyrillicshch 249 \definecharacter cyrillicHRDSN 218 \definecharacter cyrillichrdsn 250 \definecharacter cyrillicERY 219 \definecharacter cyrillicery 251 \definecharacter cyrillicSFTSN 220 \definecharacter cyrillicsftsn 252 \definecharacter cyrillicEREV 221 \definecharacter cyrillicerev 253 \definecharacter cyrillicYU 222 \definecharacter cyrillicyu 254 \definecharacter cyrillicYA 223 \definecharacter cyrillicya 255 \definecharacter cyrillicGUP 128 \definecharacter cyrillicgup 160 \definecharacter cyrillicGHCRS 129 \definecharacter cyrillicghcrs 161 \definecharacter cyrillicGDSC 130 \definecharacter cyrillicgdsc 162 \definecharacter cyrillicGHK 131 \definecharacter cyrillicghk 163 \definecharacter cyrillicSHHA 132 \definecharacter cyrillicshha 164 \definecharacter cyrillicZHDSC 133 \definecharacter cyrilliczhdsc 165 \definecharacter cyrillicZDSC 134 \definecharacter cyrilliczdsc 166 \definecharacter cyrillicABHDZE 135 \definecharacter cyrillicabhdze 167 \definecharacter cyrillicYI 136 \definecharacter cyrillicyi 168 \definecharacter cyrillicKDSC 137 \definecharacter cyrillickdsc 169 \definecharacter cyrillicKBEAK 138 \definecharacter cyrillickbeak 170 \definecharacter cyrillicKHK 139 \definecharacter cyrillickhk 171 \definecharacter cyrillicLHK 140 \definecharacter cyrilliclhk 172 \definecharacter cyrillicNDSC 141 \definecharacter cyrillicndsc 173 \definecharacter cyrillicNG 142 \definecharacter cyrillicng 174 \definecharacter cyrillicNHK 143 \definecharacter cyrillicnhk 175 \definecharacter cyrillicOTLD 144 \definecharacter cyrillicotld 176 \definecharacter cyrillicSDSC 145 \definecharacter cyrillicsdsc 177 \definecharacter cyrillicUSHRT 146 \definecharacter cyrillicushrt 178 \definecharacter cyrillicY 147 \definecharacter cyrillicy 179 \definecharacter cyrillicYHCRS 148 \definecharacter cyrillicyhcrs 180 \definecharacter cyrillicHDSC 149 \definecharacter cyrillichdsc 181 \definecharacter cyrillicHHK 150 \definecharacter cyrillichhk 182 \definecharacter cyrillicCHLDSC 151 \definecharacter cyrillicchldsc 183 \definecharacter cyrillicCHRDSC 152 \definecharacter cyrillicchrdsc 184 \definecharacter cyrillicIE 153 \definecharacter cyrillicie 185 \definecharacter cyrillicSCHWA 154 \definecharacter cyrillicschwa 186 \definecharacter cyrillicEPS 155 \definecharacter cyrilliceps 187 \definecharacter cyrillicYO 156 \definecharacter cyrillicyo 188 \definecharacter cyrillicAE 65 \definecharacter cyrillicae 97 \definecharacter cyrillicDJE 66 \definecharacter cyrillicdje 98 \definecharacter cyrillicTSHE 67 \definecharacter cyrillictshe 99 \definecharacter cyrillicABHCH 68 \definecharacter cyrillicabhch 100 \definecharacter cyrillicABHCHDSC 69 \definecharacter cyrillicabhchdsc 101 \definecharacter cyrillicKVCRS 70 \definecharacter cyrillickvcrs 102 \definecharacter cyrillicKHCRS 71 \definecharacter cyrillickhcrs 103 \definecharacter cyrillicLDSC 72 \definecharacter cyrillicldsc 104 \definecharacter cyrillicII 73 \definecharacter cyrillicii 105 \definecharacter cyrillicJE 74 \definecharacter cyrillicje 106 \definecharacter cyrillicLJE 75 \definecharacter cyrilliclje 107 \definecharacter cyrillicMDSC 76 \definecharacter cyrillicmdsc 108 \definecharacter cyrillicNJE 77 \definecharacter cyrillicnje 109 \definecharacter cyrillicABHHA 78 \definecharacter cyrillicabhha 110 \definecharacter cyrillicPHK 79 \definecharacter cyrillicphk 111 \definecharacter cyrillicRDSC 80 \definecharacter cyrillicrdsc 112 \definecharacter cyrillicQ 81 \definecharacter cyrillicq 113 \definecharacter cyrillicTDSC 82 \definecharacter cyrillictdsc 114 \definecharacter cyrillicDZE 83 \definecharacter cyrillicdze 115 \definecharacter cyrillicTETSE 84 \definecharacter cyrillictetse 116 \definecharacter cyrillicDZHE 85 \definecharacter cyrillicdzhe 117 \definecharacter cyrillicCHVCRS 86 \definecharacter cyrillicchvcrs 118 \definecharacter cyrillicW 87 \definecharacter cyrillicw 119 \definecharacter cyrillicYAT 88 \definecharacter cyrillicyat 120 \definecharacter cyrillicBYUS 89 \definecharacter cyrillicbyus 121 \definecharacter cyrillicIZH 90 \definecharacter cyrillicizh 122 \definecharacter cyrillicNLHK 28 \definecharacter cyrillicnlhk 29 \definecharacter cyrillicDELTA 30 \definecharacter cyrillicdelta 31 \stopencoding \startmapping[lcy] \resetcaserange 128 to 255 \definecasemaps 128 to 143 lc +32 uc 0 \definecasemaps 160 to 175 lc 0 uc -32 \definecasemaps 144 to 159 lc +80 uc 0 \definecasemaps 224 to 239 lc 0 uc -80 \definecasemap 240 241 240 \definecasemap 241 241 240 % cyrillicYO \definecasemap 242 243 242 \definecasemap 243 243 242 % cyrillicGUP \definecasemap 244 245 244 \definecasemap 245 245 244 % cyrillicIE \definecasemap 244 247 244 \definecasemap 247 247 244 % cyrillicII \definecasemap 248 249 248 \definecasemap 249 249 248 % cyrillicYI \definecasemap 250 251 240 \definecasemap 241 241 240 % cyrillicUSHRT \stopmapping \startencoding[lcy] %D Characters 0 to 127 are as in normal cmr slots \definecharacter cyrillicA 128 \definecharacter cyrillicB 129 \definecharacter cyrillicV 130 \definecharacter cyrillicG 131 \definecharacter cyrillicD 132 \definecharacter cyrillicE 133 \definecharacter cyrillicZH 134 \definecharacter cyrillicZ 135 \definecharacter cyrillicI 136 \definecharacter cyrillicISHRT 137 \definecharacter cyrillicK 138 \definecharacter cyrillicL 139 \definecharacter cyrillicM 140 \definecharacter cyrillicN 141 \definecharacter cyrillicO 142 \definecharacter cyrillicP 143 \definecharacter cyrillicR 144 \definecharacter cyrillicS 145 \definecharacter cyrillicT 146 \definecharacter cyrillicU 147 \definecharacter cyrillicF 148 \definecharacter cyrillicH 149 \definecharacter cyrillicC 150 \definecharacter cyrillicCH 151 \definecharacter cyrillicSH 152 \definecharacter cyrillicSHCH 153 \definecharacter cyrillicHRDSN 154 \definecharacter cyrillicERY 155 \definecharacter cyrillicSFTSN 156 \definecharacter cyrillicEREV 157 \definecharacter cyrillicYU 158 \definecharacter cyrillicYA 159 \definecharacter cyrillica 160 \definecharacter cyrillicb 161 \definecharacter cyrillicv 162 \definecharacter cyrillicg 163 \definecharacter cyrillicd 164 \definecharacter cyrillice 165 \definecharacter cyrilliczh 166 \definecharacter cyrillicz 167 \definecharacter cyrillici 168 \definecharacter cyrillicishrt 169 \definecharacter cyrillick 170 \definecharacter cyrillicl 171 \definecharacter cyrillicm 172 \definecharacter cyrillicn 173 \definecharacter cyrillico 174 \definecharacter cyrillicp 175 \definecharacter cyrillicr 224 \definecharacter cyrillics 225 \definecharacter cyrillict 226 \definecharacter cyrillicu 227 \definecharacter cyrillicf 228 \definecharacter cyrillich 229 \definecharacter cyrillicc 230 \definecharacter cyrillicch 231 \definecharacter cyrillicsh 232 \definecharacter cyrillicshch 233 \definecharacter cyrillichrdsn 234 \definecharacter cyrillicery 235 \definecharacter cyrillicsftsn 236 \definecharacter cyrillicerev 237 \definecharacter cyrillicyu 238 \definecharacter cyrillicya 239 \definecharacter cyrillicYO 240 \definecharacter cyrillicyo 241 \definecharacter cyrillicGUP 242 \definecharacter cyrillicgup 243 \definecharacter cyrillicIE 244 \definecharacter cyrillicie 245 \definecharacter cyrillicII 246 \definecharacter cyrillicii 247 \definecharacter cyrillicYI 248 \definecharacter cyrillicyi 249 \definecharacter cyrillicUSHRT 250 \definecharacter cyrillicushrt 251 \definecharacter emdash 196 \definecharacter textcurrency 197 \definecharacter textnumero 252 \definecharacter leftguillemot 253 \definecharacter rightguillemot 254 \definecharacter quotedblbase 255 \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-034.mkii0000644000175000017500000003173114536300610024422 0ustar hillehille%D \module %D [ file=unic-034, %D version=2005.06.11, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 34, %D author=Nikolai Weibull, %D date=\currentdate, %D copyright={Nikolai Weibull \& Hans Hagen}] \unprotect \startunicodevector 34 \expandafter\strippedcsname \ifcase\numexpr#1\relax \forall \or % FOR ALL \complement \or % COMPLEMENT \partial \or % PARTIAL DIFFERENTIAL \exists \or % THERE EXISTS \nexists \or % THERE DOES NOT EXIST \emptyset \or % EMPTY SET \vartriangle \or % INCREMENT \nabla \or % NABLA \unic@in \or % ELEMENT OF \unic@nin \or % NOT AN ELEMENT OF \unknownchar \or % SMALL ELEMENT OF \ni \or % CONTAINS AS MEMBER \unic@nni \or % DOES NOT CONTAIN AS MEMBER \unknownchar \or % SMALL CONTAINS AS MEMBER \QED \or % END OF PROOF \prod \or % N-ARY PRODUCT \coprod \or % N-ARY COPRODUCT \sum \or % N-ARY SUMMATION \unic@minus \or % MINUS SIGN \mp \or % MINUS-OR-PLUS SIGN \dotplus \or % DOT PLUS \unic@divisionslash \or % DIVISION SLASH \setminus \or % SET MINUS \ast \or % ASTERISK OPERATOR \circ \or % RING OPERATOR \bullet \or % BULLET OPERATOR \unic@sqrt \or % SQUARE ROOT \unic@cubesqrt \or % CUBE ROOT \unic@fourthsqrt \or % FOURTH ROOT \propto \or % PROPORTIONAL TO \infty \or % INFINITY \unknownchar \or % RIGHT ANGLE \angle \or % ANGLE \measuredangle \or % MEASURED ANGLE \sphericalangle \or % SPHERICAL ANGLE \unic@divides \or % DIVIDES \unic@ndivides \or % DOES NOT DIVIDE \parallel \or % PARALLEL TO \nparallel \or % NOT PARALLEL TO \land \or % LOGICAL AND \lor \or % LOGICAL OR \unic@cap \or % INTERSECTION \cup \or % UNION \int \or % INTEGRAL \unic@dblint \or % DOUBLE INTEGRAL \unic@triint \or % TRIPLE INTEGRAL \oint \or % CONTOUR INTEGRAL \unknownchar \or % SURFACE INTEGRAL \unknownchar \or % VOLUME INTEGRAL \unknownchar \or % CLOCKWISE INTEGRAL \unknownchar \or % CLOCKWISE CONTOUR INTEGRAL \unknownchar \or % ANTICLOCKWISE CONTOUR INTEGRAL \therefore \or % THEREFORE \because \or % BECAUSE \unic@ratio \or % RATIO \unic@proportion \or % PROPORTION \unknownchar \or % DOT MINUS \unic@excess \or % EXCESS \unic@geompropr \or % GEOMETRIC PROPORTION \unic@homothetic \or % HOMOTHETIC \sim \or % TILDE OPERATOR \backsim \or % REVERSED TILDE \unknownchar \or % INVERTED LAZY S \unknownchar \or % SINE WAVE \wr \or % WREATH PRODUCT \nsim \or % NOT TILDE \eqsim \or % MINUS TILDE \simeq \or % ASYMPTOTICALLY EQUAL TO \nsimeq \or % NOT ASYMPTOTICALLY EQUAL TO \approxeq \or % APPROXIMATELY EQUAL TO \unic@cong \or % APPROXIMATELY BUT NOT ACTUALLY EQUAL TO \unic@napproxeq \or % NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO \approx \or % ALMOST EQUAL TO \unic@napprox \or % NOT ALMOST EQUAL TO \approxeq \or % ALMOST EQUAL OR EQUAL TO \unknownchar \or % TRIPLE TILDE \unknownchar \or % ALL EQUAL TO \asymp \or % EQUIVALENT TO \Bumpeq \or % GEOMETRICALLY EQUIVALENT TO \bumpeq \or % DIFFERENCE BETWEEN \unic@doteq \or % APPROACHES THE LIMIT \doteqdot \or % GEOMETRICALLY EQUAL TO \fallingdotseq \or % APPROXIMATELY EQUAL TO OR THE IMAGE OF \risingdotseq \or % IMAGE OF OR APPROXIMATELY EQUAL TO \unknownchar \or % COLON EQUALS \unknownchar \or % EQUALS COLON \eqcirc \or % RING IN EQUAL TO \circeq \or % RING EQUAL TO \unic@correspondsto \or % CORRESPONDS TO \unic@estimates \or % ESTIMATES \unic@equiangularto \or % EQUIANGULAR TO \unic@stareq \or % STAR EQUALS \unic@triangleq \or % DELTA EQUAL TO \unic@eqbydef \or % EQUAL TO BY DEFINITION \unic@measuredby \or % MEASURED BY \unic@questionedeq \or % QUESTIONED EQUAL TO \neq \or % NOT EQUAL TO \equiv \or % IDENTICAL TO \unic@nequiv \or % NOT IDENTICAL TO \unknownchar \or % STRICTLY EQUIVALENT TO \leq \or % LESS-THAN OR EQUAL TO \geq \or % GREATER-THAN OR EQUAL TO \leqq \or % LESS-THAN OVER EQUAL TO \geqq \or % GREATER-THAN OVER EQUAL TO \lneqq \or % LESS-THAN BUT NOT EQUAL TO \gneqq \or % GREATER-THAN BUT NOT EQUAL TO \ll \or % MUCH LESS-THAN \gg \or % MUCH GREATER-THAN \between \or % BETWEEN \nasymp \or % NOT EQUIVALENT TO \nless \or % NOT LESS-THAN \ngtr \or % NOT GREATER-THAN \nleq \or % NEITHER LESS-THAN NOR EQUAL TO \ngeq \or % NEITHER GREATER-THAN NOR EQUAL TO \lesssim \or % LESS-THAN OR EQUIVALENT TO \gtrsim \or % GREATER-THAN OR EQUIVALENT TO \unic@nlesssim \or % NEITHER LESS-THAN NOR EQUIVALENT TO \unic@ngtrsim \or % NEITHER GREATER-THAN NOR EQUIVALENT TO \lessgtr \or % LESS-THAN OR GREATER-THAN \gtrless \or % GREATER-THAN OR LESS-THAN \unic@nlessgtr \or % NEITHER LESS-THAN NOR GREATER-THAN \unic@ngtrless \or % NEITHER GREATER-THAN NOR LESS-THAN \prec \or % PRECEDES \succ \or % SUCCEEDS \preceq \or % PRECEDES OR EQUAL TO \succeq \or % SUCCEEDS OR EQUAL TO \precsim \or % PRECEDES OR EQUIVALENT TO \succsim \or % SUCCEEDS OR EQUIVALENT TO \nprec \or % DOES NOT PRECEDE \nsucc \or % DOES NOT SUCCEED \subset \or % SUBSET OF \supset \or % SUPERSET OF \unic@nsubset \or % NOT A SUBSET OF \unic@nsupset \or % NOT A SUPERSET OF \subseteq \or % SUBSET OF OR EQUAL TO \supseteq \or % SUPERSET OF OR EQUAL TO \nsubseteq \or % NEITHER A SUBSET OF NOR EQUAL TO \nsupseteq \or % NEITHER A SUPERSET OF NOR EQUAL TO \subsetneq \or % SUBSET OF WITH NOT EQUAL TO \supsetneq \or % SUPERSET OF WITH NOT EQUAL TO \unknownchar \or % MULTISET \unknownchar \or % MULTISET MULTIPLICATION \biguplus \or % MULTISET UNION \sqsubset \or % SQUARE IMAGE OF \sqsupset \or % SQUARE ORIGINAL OF \sqsubseteq \or % SQUARE IMAGE OF OR EQUAL TO \sqsupseteq \or % SQUARE ORIGINAL OF OR EQUAL TO \sqcap \or % SQUARE CAP \sqcup \or % SQUARE CUP \oplus \or % CIRCLED PLUS \ominus \or % CIRCLED MINUS \otimes \or % CIRCLED TIMES \oslash \or % CIRCLED DIVISION SLASH \odot \or % CIRCLED DOT OPERATOR \circledcirc \or % CIRCLED RING OPERATOR \circledast \or % CIRCLED ASTERISK OPERATOR \unknownchar \or % CIRCLED EQUALS \circleddash \or % CIRCLED DASH \boxplus \or % SQUARED PLUS \boxminus \or % SQUARED MINUS \boxtimes \or % SQUARED TIMES \boxdot \or % SQUARED DOT OPERATOR \vdash \or % RIGHT TACK \dashv \or % LEFT TACK \top \or % DOWN TACK \bot \or % UP TACK \unknownchar \or % ASSERTION \models \or % MODELS \vDash \or % TRUE \unknownchar \or % FORCES \Vvdash \or % TRIPLE VERTICAL BAR RIGHT TURNSTILE \unknownchar \or % DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE \nvdash \or % DOES NOT PROVE \nvDash \or % NOT TRUE \unknownchar \or % DOES NOT FORCE \unknownchar \or % NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE \unknownchar \or % PRECEDES UNDER RELATION \unknownchar \or % SUCCEEDS UNDER RELATION \lhd \or % NORMAL SUBGROUP OF \rhd \or % CONTAINS AS NORMAL SUBGROUP \unlhd \or % NORMAL SUBGROUP OF OR EQUAL TO \unrhd \or % CONTAINS AS NORMAL SUBGROUP OR EQUAL TO \unknownchar \or % ORIGINAL OF \unknownchar \or % IMAGE OF \unknownchar \or % MULTIMAP \unknownchar \or % HERMITIAN CONJUGATE MATRIX \unknownchar \or % INTERCALATE \veebar \or % XOR \barwedge \or % NAND \unknownchar \or % NOR \unknownchar \or % RIGHT ANGLE WITH ARC \unknownchar \or % RIGHT TRIANGLE \bigwedge \or % N-ARY LOGICAL AND \bigvee \or % N-ARY LOGICAL OR \bigcap \or % N-ARY INTERSECTION \bigcup \or % N-ARY UNION \diamond \or % DIAMOND OPERATOR \cdot \or % DOT OPERATOR \star \or % STAR OPERATOR \divideontimes \or % DIVISION TIMES \bowtie \or % BOWTIE \ltimes \or % LEFT NORMAL FACTOR SEMIDIRECT PRODUCT \rtimes \or % RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT \leftthreetimes \or % LEFT SEMIDIRECT PRODUCT \rightthreetimes \or % RIGHT SEMIDIRECT PRODUCT \backsimeq \or % REVERSED TILDE EQUALS \unknownchar \or % CURLY LOGICAL OR \unknownchar \or % CURLY LOGICAL AND \Subset \or % DOUBLE SUBSET \Supset \or % DOUBLE SUPERSET \Cap \or % DOUBLE INTERSECTION \Cup \or % DOUBLE UNION \pitchfork \or % PITCHFORK \unknownchar \or % EQUAL AND PARALLEL TO \unknownchar \or % LESS-THAN WITH DOT \unknownchar \or % GREATER-THAN WITH DOT \lll \or % VERY MUCH LESS-THAN \ggg \or % VERY MUCH GREATER-THAN \lesseqgtr \or % LESS-THAN EQUAL TO OR GREATER-THAN \gtreqless \or % GREATER-THAN EQUAL TO OR LESS-THAN \unknownchar \or % EQUAL TO OR LESS-THAN \unknownchar \or % EQUAL TO OR GREATER-THAN \curlyeqprec \or % EQUAL TO OR PRECEDES \curlyeqsucc \or % EQUAL TO OR SUCCEEDS \npreceq \or % DOES NOT PRECEDE OR EQUAL \nsucceq \or % DOES NOT SUCCEED OR EQUAL \unic@nsqsubseteq \or % NOT SQUARE IMAGE OF OR EQUAL TO \unic@nsqsupseteq \or % NOT SQUARE ORIGINAL OF OR EQUAL TO \unknownchar \or % SQUARE IMAGE OF OR NOT EQUAL TO \unknownchar \or % SQUARE ORIGINAL OF OR NOT EQUAL TO \lnsim \or % LESS-THAN BUT NOT EQUIVALENT TO \gnsim \or % GREATER-THAN BUT NOT EQUIVALENT TO \precnsim \or % PRECEDES BUT NOT EQUIVALENT TO \succnsim \or % SUCCEEDS BUT NOT EQUIVALENT TO \ntriangleleft \or % NOT NORMAL SUBGROUP OF \ntriangleright \or % DOES NOT CONTAIN AS NORMAL SUBGROUP \ntrianglelefteq \or % NOT NORMAL SUBGROUP OF OR EQUAL TO \ntrianglerighteq \or % DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL \vdots \or % VERTICAL ELLIPSIS \cdots \or % MIDLINE HORIZONTAL ELLIPSIS \unknownchar \or % UP RIGHT DIAGONAL ELLIPSIS \ddots \or % DOWN RIGHT DIAGONAL ELLIPSIS \unknownchar \or % ELEMENT OF WITH LONG HORIZONTAL STROKE \unknownchar \or % ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE \unknownchar \or % SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE \unknownchar \or % ELEMENT OF WITH DOT ABOVE \unknownchar \or % ELEMENT OF WITH OVERBAR \unknownchar \or % SMALL ELEMENT OF WITH OVERBAR \unknownchar \or % ELEMENT OF WITH UNDERBAR \unknownchar \or % ELEMENT OF WITH TWO HORIZONTAL STROKES \unknownchar \or % CONTAINS WITH LONG HORIZONTAL STROKE \unknownchar \or % CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE \unknownchar \or % SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE \unknownchar \or % CONTAINS WITH OVERBAR \unknownchar \else % SMALL CONTAINS WITH OVERBAR \unknownchar % Z NOTATION BAG MEMBERSHIP \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-num.mkii0000644000175000017500000001053614536300610024730 0ustar hillehille%D \module %D [ file=strc-num, %D version=1997.03.31, %D title=\CONTEXT\ Structure Macros, %D subtitle=Numbering, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Structure Macros / Numbering} \unprotect % Commando's ten behoeve van nummeren: % % \definenumber[name] % \setupnumber[name][wijze=,blok=,tekst=,plaats=,conversie=,start=] % \setnumber[name]{value} % \resetnumber[name] % \incrementnumber[name] % \decrementnumber[name] % \convertednumber[name] % getnumber % \savenumber[name] % \restorenumber[name] % \convertednumber[name] % \rawnumber[name] % private (defined in core-des.tex) % % \nextnumber[name][tag][reference] % \currentnumber[name] \def\@@thenumber#1{\s!number\csname\s!number#1\c!number\endcsname} % this will be the new (public) one: \let\numberparameterprefix\@@thenumber \def\numberparameter#1#2{\csname\@@thenumber{#1}#2\endcsname} % sort of public \def\dosetupnumber[#1][#2]% {\@EA\let\@EA\savedstartnumber\csname\@@thenumber{#1}\c!start\endcsname \getparameters[\@@thenumber{#1}][\c!start=,#2]% \doifelsenothing{\numberparameter{#1}\c!start} {\letvalue{\@@thenumber{#1}\c!start}\savedstartnumber} {\setcounter{\@@thenumber{#1}}{\numberparameter{#1}\c!start}}} \def\setupnumber {\dodoubleargument\dosetupnumber} \def\definenumber {\dodoubleempty\dodefinenumber} \def\dodefinenumber[#1][#2]% ook overal class als localframed {\doifassignmentelse{#2} {\dododefinenumber[#1][#2]} {\doifelsenothing{#2} % can break on not yet defined macros in #2 {\dododefinenumber[#1][#2]} {\setvalue{\s!number#1\c!number}{#2}}}} \def\dododefinenumber[#1][#2]% {\getparameters [\s!number#1] [\c!number=#1, \s!check=, \c!way=\@@nrway, \c!way\c!local=\numberparameter{#1}\c!way, \c!sectionnumber=\v!yes, \c!text=, % no longer used here, will go away \c!location=, % no longer used here, will go away (was ooit \c!zetwijze) \c!conversion=\v!numbers, \c!start=0, \c!state=\v!start, #2]% \makecounter{\@@thenumber{#1}}% \setxvalue{\@@thenumber{#1}\c!n}{\countervalue{\@@thenumber{#1}}}% \setcounter{\@@thenumber{#1}}{\numberparameter{#1}\c!start}} \def\setnumber[#1]#2% {\setcounter{\@@thenumber{#1}}{#2}} \def\resetnumber[#1]% {\setcounter{\@@thenumber{#1}}{0\numberparameter{#1}\c!start}} \def\savenumber[#1]% {\savecounter{\@@thenumber{#1}}} \def\restorenumber[#1]% {\restorecounter{\@@thenumber{#1}}} %D Bonus macro (we need to keep this one for downward %D compatibility reasons). \def\doreset[#1]% {\processcommalist[#1]\dodoreset} \def\dodoreset#1% {\getvalue{\s!reset#1}}% \def\reset {\dosingleargument\doreset} \def\incrementnumber[#1]% bypage tricky: needs a {\doifelse{\numberparameter{#1}\c!way}{\v!by\v!page} {\checkpagechange{#1}% \ifpagechanged\resetcounter{\@@thenumber{#1}}\fi} {\checknumber[#1]}% \doifelse\@@nrstate\v!start % only here {\doif{\numberparameter{#1}\c!state}\v!start{\pluscounter{\@@thenumber{#1}}}} {\setcounter{\@@thenumber{#1}}{0\numberparameter{#1}\c!start}}} % \defineenumeration [test] [way=bypage,text=\lastchangedpage] % % \starttext \dorecurse{10}{\test \input tufte \par} \stoptext \def\decrementnumber[#1]% {\minuscounter{\@@thenumber{#1}}} \def\convertednumber[#1]% {\convertnumber {\numberparameter{#1}\c!conversion} {\countervalue{\@@thenumber{#1}}}} \def\rawnumber[#1]% {\countervalue{\@@thenumber{#1}}} \def\accumulatednumber[#1]% {\getvalue{\@@thenumber{#1}\c!n}} \let\getnumber\convertednumber \def\doifdefinednumber #1{\doifdefined {\csname\s!number#1\c!number\endcsname}} \def\doifundefinednumber #1{\doifundefined {\csname\s!number#1\c!number\endcsname}} \def\doifdefinednumberelse#1{\doifdefinedelse{\csname\s!number#1\c!number\endcsname}} \ifx\checknumber\undefined \def\checknumber[#1]{} \fi % ook de pag nummers hierheen halen ivm \@@nrwijze \def\setupnumbering {\dodoubleempty\getparameters[\??nr]} \setupnumbering [\c!way=\v!by\v!chapter, \c!blockway=, \c!sectionnumber=\v!yes, \c!state=\v!start] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mxh.mkii0000644000175000017500000000717114536300610024716 0ustar hillehille\defineMMLsynonym approx ap \defineMMLsynonym Because becaus \defineMMLsynonym because becaus \defineMMLsynonym blacksquare squarf \defineMMLsynonym bot bottom \defineMMLsynonym circ compfn \defineMMLsynonym ClockwiseContourIntegral cwconint \defineMMLsynonym Congruent equiv \defineMMLsynonym ContourIntegral conint \defineMMLsynonym CounterClockwiseContourIntegral awconint \defineMMLsynonym Del nabla \defineMMLsynonym DoubleContourIntegral Conint \defineMMLsynonym DoubleLeftArrow lArr \defineMMLsynonym DoubleRightArrow rArr \defineMMLsynonym DoubleVerticalBar par \defineMMLsynonym DownTee top \defineMMLsynonym Element isinv \defineMMLsynonym Exists exist \defineMMLsynonym ForAll forall \defineMMLsynonym geq ge \defineMMLsynonym GreaterEqual ge \defineMMLsynonym iiiint qint \defineMMLsynonym iiint tint \defineMMLsynonym Implies rArr \defineMMLsynonym in isin \defineMMLsynonym Integral int \defineMMLsynonym langle lang \defineMMLsynonym LeftAngleBracket lang \defineMMLsynonym Leftarrow lArr \defineMMLsynonym leq le \defineMMLsynonym MinusPlus mnplus \defineMMLsynonym mp mnplus \defineMMLsynonym NotElement notin \defineMMLsynonym NotEqual ne \defineMMLsynonym NotReverseElement notniva \defineMMLsynonym oint conint \defineMMLsynonym parallel par \defineMMLsynonym PartialD part \defineMMLsynonym Proportional prop \defineMMLsynonym propto prop \defineMMLsynonym rangle rang \defineMMLsynonym ReverseElement niv \defineMMLsynonym RightAngleBracket rang \defineMMLsynonym Rightarrow rArr \defineMMLsynonym simeq sime \defineMMLsynonym SmallCircle compfn \defineMMLsynonym Sqrt radic \defineMMLsynonym Subset sub \defineMMLsynonym subset sub \defineMMLsynonym subseteq sube \defineMMLsynonym SubsetEqual sube \defineMMLsynonym SuchThat ni \defineMMLsynonym Superset sup \defineMMLsynonym SupersetEqual supe \defineMMLsynonym supset sup \defineMMLsynonym supseteq supe \defineMMLsynonym Therefore there4 \defineMMLsynonym therefore there4 \defineMMLsynonym Tilde sim \defineMMLsynonym TildeEqual sime \defineMMLsynonym TildeFullEqual cong \defineMMLsynonym TildeTilde ap \defineMMLsynonym TripleDot tdot \defineMMLsynonym UpTee perp \defineMMLsynonym vee or \defineMMLsynonym Vert Verbar \defineMMLsynonym wedge and context-modules-20240428/texmf-dist/tex/context/base/mkii/page-ins.mkii0000644000175000017500000000542114536300610024660 0ustar hillehille%D \module %D [ file=core-ins, %D version=2002.04.16, %D title=\CONTEXT\ Insertion Macros, %D subtitle=Insertions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Insertions} %D Insertions are special data collections that are associated %D to \TEX's internal page builder. When multiple footnote %D classes were introduced, I decided to isolate some of the %D functionality in a module. \unprotect \newtoks\@@insertionlist \def\processinsertions{\the\@@insertionlist} \let\doprocessinsert\gobbleoneargument %\def\installinsertion#1% % {\ifx#1\undefined % \newinsert#1% % \count#1\plusthousand % \skip #1\zeropoint % \dimen#1\maxdimen % \appendtoks\doprocessinsert#1\to\@@insertionlist % \fi} \def\installinsertion#1% {\ifx#1\undefined \let#1\relax \fi \ifx#1\relax % permits \csname...\endcsname \newinsert#1% \count#1\plusthousand \skip #1\zeropoint \dimen#1\maxdimen \appendtoks\doprocessinsert#1\to\@@insertionlist \fi} \def\synchronizeinsertions {\def\doprocessinsert##1{\ifvoid##1\else\insert##1{\unvbox##1}\fi}% \processinsertions} %D For instance, when we postpone footnotes, we need to save %D some data related to the inserts. The next methods are %D far from ideal, but better than nothing. We save and %D restore box content and associated data independently. %D The box content is only restores when non||void. \def\backupinsertion#1% {\csname\string#1\endcsname} \def\installbackupinsertion#1% {\expandafter\newinsert\csname\string#1\endcsname \count\backupinsertion#1\zerocount \skip \backupinsertion#1\zeropoint \dimen\backupinsertion#1\maxdimen} \def\saveinsertionbox#1% {\ifdim\ht#1>\zeropoint % hm, actually unknown \global\setbox\backupinsertion#1\box#1% \else \global\setbox\backupinsertion#1\emptybox \fi} \def\restoreinsertionbox#1% {\ifvoid\backupinsertion#1\else % if void, we keep the content \global\setbox#1\box\backupinsertion#1% \fi} \def\eraseinsertionbackup#1% {\global\setbox\backupinsertion#1\emptybox} \def\saveinsertiondata#1% {\global\skip \backupinsertion#1\skip #1% \global\count\backupinsertion#1\count#1% \global\dimen\backupinsertion#1\dimen#1} \def\restoreinsertiondata#1% {\global\skip #1\skip \backupinsertion#1% \global\count#1\count\backupinsertion#1% \global\dimen#1\dimen\backupinsertion#1} %D Auxiliary macros: \def\addinsertionheight#1\to#2% {\ifvoid#1\else \advance#2 1\skip#1\relax \advance#2 \ht #1\relax \fi} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-mul.mkii0000644000175000017500000015735614536300610024703 0ustar hillehille%D \module %D [ file=page-mul, % was: core-mul %D version=1998.03.15, %D title=\CONTEXT\ Page Macros, %D subtitle=Multi Column Output, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Page Macros / Simple Multi Column} %D This module is mostly a copy from the original multi column %D routine as implemented in \type {core-mul}. When the main %D OTR macro's were isolated in modules and column sets were %D introduced, this module became part of the OTR modules. As %D a result this module is no longer generic. It also needs %D an overhaul. \unprotect % TO DO ! \let\OTRMULsetvsize \OTRONEsetvsize \let\OTRMULsethsize \OTRONEsethsize \let\OTRMULdopagecontents \OTRONEdopagecontents \let\OTRMULfinalsidefloatoutput\OTRONEfinalsidefloatoutput % ??? \let\OTRMULflushfloatbox \OTRONEflushfloatbox \let\OTRMULdosettopinserts \relax \let\OTRMULdosetbotinserts \relax \let\OTRMULdotopinsertions \relax \let\OTRMULdobotinsertions \relax \let\OTRMULdosetbothinserts \relax \let\OTRMULflushsavedfloats \relax \let\OTRMULflushsidefloats \forgetsidefloats % \relax \let\OTRMULsynchronizesidefloats\forgetsidefloats % \relax \newtoks \OTRMULoutput \def\OTRMULgotonextpage {\ejectpage} \def\OTRMULgotonextpageX % will become obsolete {\superejectpage} % check \count multiplications % some day try this in balancing routine % % \ifdim\pagetotal>\pagegoal % \eject % \else % \goodbreak % \fi %D The following macro's implement a multi||column output %D routine. The original implementation was based on Donald %D Knuth's implementation, which was adapted by Craig Platt to %D support balancing of the last page. I gradually adapted %D Platt's version to our needs but under certain %D circumstances things still went wrong. I considered all %D calls to Platt's \type{\balancingerror} as undesirable. %D This completely new implementation can handle enough %D situations for everyday documents, but is still far from %D perfect. While at the moment the routine doesn't support %D all kind of floats, it does support: %D %D \startitemize[packed] %D \item an unlimitted number of columns %D \item ragged or not ragged bottoms %D \item optional balancing without \type{\balancingerrors} %D \item different \type{\baselineskips}, \type{\spacing}, %D \type{\topskip} and \type{\maxdepth} %D \item left- and right indentation, e.g. within lists %D \item moving columns floats to the next column or page %D \item handling of floats that are to wide for a columns %D \stopitemize %D %D One could wonder why single and multi||columns modes are %D still separated. One reason for this is that \TeX\ is not %D suited well for handling multi||columns. As a result, the %D single columns routines are more robust. Handling one %D column as a special case of multi||columns is posible but at %D the cost of worse float handling, worse page breaking, %D worse etc. Complicated multi||column page handling should %D be done in \cap{DTP}||systems anyway. %D %D There are three commands provided for entering and leaving %D multi||column mode and for going to the next column: %D %D \interface \type{\beginmulticolumns} \\ \\ %D \interface \type{\endmulticolumns} \\ \\ %D \interface \type{\ejectcolumn} \\ \\ %D %D This routines are sort of stand||alone. They communicate %D with the rest of \CONTEXT\ by means of some interface %D macro's, which we only mention. %D %D \interface \type{\nofcolumns} \\ %D the number of columns \\ %D \interface \type{\minbalancetoplines} \\ %D the minimum number op balanced top lines \\ %D \interface \type{\betweencolumns} \\ %D the stuff between columns \\ %D \interface \type{\finaloutput{action}{box}} \\ %D some kind of \type{\pagebody} and \type{\shipout} \\ %D %D \interface \type{\ifbalancecolumns} \\ %D balancing the colums or not \\ %D \interface \type{\ifstretchcolumns} \\ %D ragging the bottom or not \\ %D %D \interface \type{\ifheightencolumns} \\ %D fix the heigh tor not \\ %D \interface \type{\fixedcolumnheight} \\ %D the optional fixed height \\ %D %D \interface \type{\ifinheritcolumns} \\ %D handle ragging or not \\ %D \interface \type{\ifr@ggedbottom} \\ %D use ragged bottoms \\ %D \interface \type{\ifb@selinebottom} \\ %D put the bottom line on the baseline \\ %D \interface \type{\ifnormalbottom} \\ %D put the bottom line at the baseline \\ %D %D \interface \type{\ifreversecolumns} \\ %D reverse the order in wich columns are flushed \\ %D %D \interface \type{\usercolumnwidth} \\ %D the calculated width of a column \\ %D \interface \type{\columntextwidth} \\ %D the maximum width of a column \\ %D \interface \type{\columntextheight} \\ %D the minimum width of a column \\ %D %D \interface \type{\spacingfactor} \\ %D the spacing factor \\ %D \interface \type{\bodyfontsize} \\ %D the (local) bodyfontsize \\ %D \interface \type{\openlineheight} \\ %D the lineheight (including \type{\spacing}) \\ %D %D \interface \type{\EveryBodyFont} \\ %D communication channel to font switching routines \\ %D %D \interface \type{\global\settopskip} \\ %D set \type{\topskip} \\ %D \interface \type{\setvsize} \\ %D set \type{\vsize} and \type{\pagegoal} \\ %D \interface \type{\sethsize} \\ %D set \type{\hsize} \\ %D %D \interface \type{\flushcolumnfloats} \\ %D push saved column floats (next page) \\ %D \interface \type{\flushcolumnfloat} \\ %D push saved column floats (next column) \\ %D \interface \type{\setcolumnfloats} \\ %D initialize column floats \\ %D %D \interface \type{\finishcolumnbox} \\ %D do something special (a hook) \\ %D \interface \type{\postprocesscolumnpagebox} \\ %D do something with each columnbox (also a hook) \\ %D \interface \type{\postprocesscolumnbox} \\ %D do something with each columnbox (also a hook) \\ %D \interface \type{\postprocesscolumnline} \\ %D do something with each columnline (also a hook) \\ %D \interface \type{\currentcolumn} \\ %D the current column \\ %D %D These interface macro's are called upon or initialized %D by the multi||column macro's. %D A lot of footnote stuff added! \def\finalcolumntextwidth {\makeupwidth} \def\finalcolumntextheight {\textheight} \def\columntextwidth {\makeupwidth} \def\columntextheight {\textheight} \def\usercolumnwidth {\textwidth} \def\columntextoffset {\!!zeropoint} \def\fixedcolumnheight {\textheight} \def\betweencolumns {\hskip\bodyfontsize} \let\setcolumnfloats \relax % in CONTEXT used for floats \let\flushcolumnfloats \relax % in CONTEXT used for floats \let\flushcolumnfloat \relax % in CONTEXT used for floats \let\finishcolumnbox \relax % in CONTEXT used for backgrounds % %D In fact, the column height and width are set by means of % %D two macro's. One can change their meaning if needed: % % \def\setcolumntextheight % {\def\columntextheight{\teksthoogte}} % % \def\setcolumntextwidth % {\def\columntextwidth{\zetbreedte}} %D Both macros are redefined in \CONTEXT\ when backgrounds %D are applied to columns. The final values are used when %D flushing the columns. \newtoks\singlecolumnout % remove that one %D It's more convenient to use \type {\columnwidth} instead %D of messing around with boxes each time. \newdimen\columnwidth \newdimen\gutterwidth \def\determinecolumnwidth {\bgroup \setbox\scratchbox\hbox {\setcolumnhsize \global\columnwidth\usercolumnwidth \global\gutterwidth\intercolumnwidth}% \egroup} %D Going to a new columns is done by means of a %D \type{\ejectcolumn}. The following definition does not %D always work. \def\ejectcolumn {\goodbreak\showmessage\m!columns2\empty} %D The next macro should never be called so let's deal with it. %D There were several solutions to these kind of errors. First %D we check for a good breakpoint before firing up the %D multi||column routine (\type{\break} or \type{\allowbreak}). %D We do the same at the end of the routine %D (\type{\allowbreak}). These allowances are definitely %D needed! %D %D Some on first sight redundant calls to for instance %D \type{\setvsize} in the flushing, splitting and balancing %D macro's can definitely not be omitted! Some are just there %D to handle situations that only few times arise. One of %D those can be that the output routine is invoked before %D everything is taken care of. This happens when we %D flush (part of) the current page with an \type{\unvbox} %D with a \type{\pagetotal}~$\approx$ \type{\pagegoal}. One %D simply cannot balance columns that are just balanced. %D %D I hope one never sees the following message. Because it %D took me a lot of time to develop the multi||columns %D routines, every (although seldom) warning gives me the %D creeps! \def\balancingerror {\showmessage\m!columns3\empty \finaloutput\unvbox\normalpagebox} \def\OTRMULsometopsfloat{\showmessage\m!columns4\empty \someherefloat} \def\OTRMULsomebotsfloat{\showmessage\m!columns5\empty \someherefloat} \def\OTRMULsomeherefloat{\OTRONEsomeherefloat} %D The local column width is available in the dimension %D register \type{\localcolumnwidth}, which is calculated as: \def\setcolumnhsize % beware, this one is available for use in macros {\setbox\scratchbox\hbox{\parindent\zeropoint\betweencolumns}% \intercolumnwidth\wd\scratchbox \localcolumnwidth\columntextwidth \advance\localcolumnwidth -\leftskip \advance\localcolumnwidth -\rightskip % new \advance\localcolumnwidth -\colleftskip \advance\localcolumnwidth -\colrightskip % \advance\localcolumnwidth -\nofcolumns\intercolumnwidth \advance\localcolumnwidth \intercolumnwidth \divide \localcolumnwidth \nofcolumns \scratchdimen\columntextoffset \multiply\scratchdimen \plustwo \advance\localcolumnwidth -\scratchdimen \usercolumnwidth\localcolumnwidth \hsize\localcolumnwidth} % we don't do it \global %D Torture test: %D %D \startbuffer %D \startbuffer[b] %D \startcolumns %D \input tufte %D \stopcolumns %D \stopbuffer %D \typebuffer[b] \getbuffer[b] %D %D \startbuffer[b] %D \startnarrower %D \input tufte %D \stopnarrower %D \stopbuffer %D \typebuffer[b] \getbuffer[b] %D %D \startbuffer[b] %D \startcolumns \startnarrower %D \input tufte %D \stopnarrower \stopcolumns %D \stopbuffer %D \typebuffer[b] \getbuffer[b] %D %D \startbuffer[b] %D \startnarrower \startcolumns %D \input tufte %D \stopcolumns \stopnarrower %D \stopbuffer %D \typebuffer[b] \getbuffer[b] %D %D \startbuffer[b] %D \startcolumns \startnarrower[left] %D \input tufte %D \stopnarrower \stopcolumns %D \stopbuffer %D \typebuffer[b] \getbuffer[b] %D %D \startbuffer[b] %D \startnarrower[left] \startcolumns %D \input tufte %D \stopcolumns \stopnarrower %D \stopbuffer %D \typebuffer[b] \getbuffer[b] %D %D \startbuffer[b] %D \startnarrower \startcolumns \startnarrower %D \input tufte %D \stopnarrower\stopcolumns \stopnarrower %D \stopbuffer %D \typebuffer[b] \getbuffer[b] %D %D \startbuffer[b] %D \startnarrower[left] \startcolumns \startnarrower %D \input tufte %D \stopnarrower\stopcolumns \stopnarrower %D \stopbuffer %D \typebuffer[b] \getbuffer[b] %D \stopbuffer %D %D \start %D \def\postprocesscolumnline#1{\ruledhbox{\strut\box#1}\hss} %D \getbuffer %D \stop %D One should be aware that when font related dimensions are %D used in typesetting the in||between material, these %D dimensions are influenced by bodyfont switches inside %D multi||column mode. \newdimen\mcscratchdimen \newcount\nofcolumnlines \chardef\multicolumnlinemethod\zerocount % 0: overshoot (old default), 1: tight % \chardef\multicolumnlinemethod\plusone \def\getmulticolumnlines {\mcscratchdimen-\columntextoffset \multiply\mcscratchdimen \plustwo \advance\mcscratchdimen \columntextheight \ifdim\precolumnboxheight>\zeropoint \advance\mcscratchdimen -\precolumnboxheight \fi \settotalinsertionheight \advance\mcscratchdimen -\totalinsertionheight \ifcase\multicolumnlinemethod \getnoflines\mcscratchdimen \or \getrawnoflines\mcscratchdimen \else \getrawnoflines\mcscratchdimen \fi % added 30/7/2004 \ifnum\layoutlines>\zerocount \ifnum\noflines>\layoutlines \noflines\layoutlines \fi \fi \nofcolumnlines\noflines} \def\multicolumnovershootratio{.5} % {\ifgridsnapping0\else.5\fi} \def\setcolumnvsize {\getmulticolumnlines \mcscratchdimen\nofcolumnlines\openlineheight \advance\mcscratchdimen \multicolumnovershootratio\openlineheight % collect enough data \global\vsize\nofcolumns\mcscratchdimen \global\pagegoal\vsize} % let's do it only here %D It really starts here. After some checks and initializations %D we change the output routine to continous multi||column %D mode. This mode handles columns that fill the current and %D next full pages. The method used is (more or less) %D multiplying \type{\vsize} and dividing \type{\hsize} by %D \type{\nofcolumns}. More on this can be found in the %D \TeX book. We save the top of the current page in box %D \type{\precolumnbox}. %D %D We manipulate \type{\topskip} a bit, just to be shure that %D is has no flexibility. This has te be done every time a %D font switch takles place, because \type{\topskip} can depend %D on this. %D %D Watch the trick with the \type{\vbox}. This way we get the %D right interlining and white space. \def\beginmulticolumns {\par \flushnotes \xdef\precolumndepth{\the\prevdepth}% \begingroup % new \leftskip1\leftskip \rightskip1\rightskip \edef\colleftskip {\the\leftskip}% \edef\colrightskip{\the\rightskip}% \leftskip\zeropoint \rightskip\zeropoint % \dontshowcomposition %\setcolumntextwidth\relax %\setcolumntextheight\relax \widowpenalty\zerocount % is gewoon beter \clubpenalty \zerocount % zeker bij grids \ifsomefloatwaiting \showmessage\m!columns6{\the\savednoffloats}% \global\setbox\savedfloatlist\box\floatlist \xdef\restoresavedfloats {\global\savednoffloats\the\savednoffloats \global\setbox\floatlist\box\savedfloatlist \global\noexpand\somefloatwaitingtrue}% \global\savednoffloats\zerocount \global\somefloatwaitingfalse \else \global\let\restoresavedfloats\relax \fi \dimen0\pagetotal \advance\dimen0 \parskip \advance\dimen0 \openlineheight \ifdim\dimen0<\pagegoal \allowbreak \else \break % Sometimes fails \fi \appendtoks\topskip1\topskip\to\everybodyfont \the\everybodyfont % ugly here \saveinterlinespace % ugly here \initializecolumns\nofcolumns \hangafter\zerocount \hangindent\zeropoint \everypar\emptytoks \ifdim\pagetotal=\zeropoint \else \verticalstrut \vskip-\struttotal \fi \global\savedpagetotal\pagetotal \global\singlecolumnout\output %\global\output{\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}}% \global\output{\global\setbox\precolumnbox\vbox{\dotopinsertions\unvbox\normalpagebox}}% \eject % no \holdinginserts=1, can make footnote disappear ! \global\precolumnboxheight\ht\precolumnbox \global\output{\continuousmulticolumnsout}% \setcolumnfloats \dohandleallcolumns {\global\setbox\currenttopcolumnbox\emptybox}% \checkbegincolumnfootnotes \activateotr{MUL}{ONE}% todo ! ! ! ! \let\sethsize\setcolumnhsize \let\setvsize\setcolumnvsize \sethsize \setvsize \showcomposition} %D When we leave the multi||column mode, we have to process the %D not yet shipped out part of the columns. When we don't %D balance, we simply force a continuous output, but a balanced %D output is more tricky. %D First we try to fill up the page and when all or something %D is left we try to balance things. This is another useful %D adaption of the ancesters of these macro's. It takes some %D reasoning to find out what happens and maybe I'm making %D some mistake, but it works. %D %D Voiding box \type{\precolumnbox} is sometimes necessary, %D e.g. when there is no text given between \type{\begin..} %D and \type{\end..}. The \type{\par} is needed! \chardef\multicolumnendsyncmethod\plusone % 1: old sync 2: new sync (cont-loc/project) / may fail ! ! ! ! \def\endmulticolumns {%\par \ifnum\multicolumnendsyncmethod=\plustwo \synchronizeoutput \else % don't combine these \vskip\lineheight \vskip-\lineheight % take footnotes into account \fi \dontshowcomposition \doflushcolumnfloat % added recently %\doflushcolumnfloats % no, since it results in wrong top floats \flushnotes % before start of columns \par \ifbalancecolumns \ifnum\multicolumnendsyncmethod=\plusone \global\output{\continuousmulticolumnsout}% \goodbreak \fi \global\output{\balancedmulticolumnsout}% \else \goodbreak \fi \eject % the prevdepth is important, try e.g. toclist in \prevdepth\zeropoint % columns before some noncolumned text text \global\output\singlecolumnout \global\output{\the\mainoutput}% % % % % todo \ifvoid\precolumnbox\else \unvbox\precolumnbox \fi \global\precolumnboxheight\zeropoint \endgroup % here \nofcolumns\plusone \setvsize % the outer one! \synchronizeoutput % new may 2004 / we need to: \pagegoal\vsize \checkendcolumnfootnotes \dosomebreak\allowbreak \restoresavedfloats} %D Because some initializations happen three times, we %D defined a macro for them. Erasing \type{\everypar} is %D needed because we don't want anything to interfere. \def\setmulticolumnsout {\everypar\emptytoks \dontcomplain \settopskip \setmaxdepth \topskip1\topskip \splittopskip\topskip \splitmaxdepth\maxdepth \boxmaxdepth\maxdepth % dangerous \emergencystretch\zeropoint\relax} % sometimes needed ! %D Flushing the page comes to pasting the columns together and %D appending the result to box \type{\precolumnbox}, if not %D void. I've seen a lot of implementations in which some skip %D was put between normal text and multi||column text. When we %D don't want this, the baselines can be messed up. I hope the %D seemingly complicated calculation of a correction %D \type{\kern} is adequate to overcome this. Although not %D watertight, spacing is taken into account and even multiple %D mode changes on one page go well. But cross your fingers and %D don't blame me. %D %D One of the complications of flushing out the boxes is that %D \type{\precolumnbox} needs to be \type{\unvbox}'ed, otherwise %D there is too less flexibility in the page when using %D \type{\r@ggedbottom}. It took a lot of time before these %D kind of problems were overcome. Using \type{\unvbox} at the %D wrong moment can generate \type{\balancingerror}'s. %D %D One can use the macros \type {\maxcolumnheight} and \type %D {\maxcolumndepth} when generating material between columns %D as well as postprocessing column lines. \let\maxcolumnheight=\zeropoint \let\maxcolumndepth =\zeropoint \newbox\columnpagebox \def\setmaxcolumndimensions {\let\maxcolumnheight\!!zeropoint \let\maxcolumndepth \!!zeropoint \dohandleallcolumns {\ifdim\ht\currentcolumnbox>\maxcolumnheight \edef\maxcolumnheight{\the\ht\currentcolumnbox}% \fi \ifdim\dp\currentcolumnbox>\maxcolumndepth \edef\maxcolumndepth{\the\dp\currentcolumnbox}% \fi}} \chardef\multicolumntopflushmethod\plusone % 0: no correction, 1: correction when topstuff, 2: correction, 3: correction++ \chardef\multicolumntopalignmethod\plustwo % 0: nothing, 1: force grid, 2: follow grid \def\flushprecolumnboxnogrid {\unvbox\precolumnbox} \def\flushprecolumnboxongrid {\scratchdimen\savedpagetotal \advance\scratchdimen -\ht\precolumnbox \advance\scratchdimen -\dp\precolumnbox \advance\scratchdimen -\topskip \box\precolumnbox \kern\scratchdimen} \newconditional\someprecolumncontent \def\flushcolumnedpage#1% {\bgroup \ifvoid\precolumnbox \setfalse\someprecolumncontent % will be set elsewhere \else \settrue\someprecolumncontent \mkprocessboxcontents\precolumnbox \fi \forgetall \setmulticolumnsout \showcomposition \setmaxcolumndimensions \dohandleallcolumns {\mkprocesscolumncontents\currentcolumnbox}% \postprocesscolumns \dohandleallcolumns % \hbox i.v.m. \showcomposition {\global\setbox\currentcolumnbox\hbox to \localcolumnwidth {\box\currentcolumnbox}% \wd\currentcolumnbox\localcolumnwidth \ifheightencolumns \ht\currentcolumnbox\fixedcolumnheight \fi}% \setmaxcolumndimensions \overlaycolumnfootnotes \setbox\columnpagebox\vbox {\hbox to \finalcolumntextwidth {\hskip\colleftskip\relax % new, \relax needed \ifreversecolumns \popsplitproperties % else wrong color stack \@EA\dohandlerevcolumns \else \@EA\dohandleallcolumns \fi {\finishcolumnbox{\hbox {\ifx\finishcolumnbox\relax\else\strut\fi \box\currentcolumnbox}}% \hfil}% \unskip \hskip\colrightskip}}% new \scratchdimen\zeropoint \dohandleallcolumns {\ifdim-\ht\currenttopcolumnbox<\scratchdimen \scratchdimen-\ht\currenttopcolumnbox \fi \global\setbox\currenttopcolumnbox\emptybox}% \advance\scratchdimen \ht\columnpagebox \setbox\scratchbox\hbox to \columntextwidth {\vrule \!!width\zeropoint \!!height\scratchdimen \!!depth\dp\columnpagebox \dostepwiserecurse2\nofcolumns1{\hfil\betweencolumns}\hfil}% \setbox\columnpagebox\hbox {\box\columnpagebox \hskip-\columntextwidth \restoretextcolor{\box\scratchbox}}% \postprocesscolumnpagebox % new, acts upon \box\columnpagebox \ifconditional\someprecolumncontent \settrue\someprecolumncontent % next some incredible crappy code \ifcase\multicolumntopalignmethod \flushprecolumnboxnogrid % not on grid \or \flushprecolumnboxongrid % force on grid \else\ifgridsnapping % somehow this junk fails in pascal \flushprecolumnboxongrid % obey grid settings, force on grid \else \flushprecolumnboxnogrid % ignore grid settings, not on grid \fi \fi \fi \global\precolumnboxheight\zeropoint \setvsize \dosomebreak\nobreak % hm, only needed when topstuff \ifgridsnapping \else \ifcase\multicolumntopflushmethod % sometimes method 1 goes wrong, so we need a way out; best sort this out % when we run into it again \or % \input tufte \startcolumns \showbaselines \input tufte \stopcolumns \input tufte \ifconditional\someprecolumncontent % \scratchdimen\topskip % \advance\scratchdimen -\openstrutheight % \nointerlineskip % \vskip-\scratchdimen \nointerlineskip \vskip\dimexpr\openstrutheight-\topskip\relax \fi \or % \scratchdimen\topskip % \advance\scratchdimen -\openstrutheight % \nointerlineskip % \vskip-\scratchdimen \nointerlineskip \vskip\dimexpr\openstrutheight-\topskip\relax \or % untested but maybe handy % \scratchdimen\topskip % \advance\scratchdimen -\openstrutheight % \nointerlineskip % \vskip-\scratchdimen % \vskip-\lineheight % \vbox{\strut}% \nointerlineskip \vskip\dimexpr\openstrutheight-\topskip-\lineheight\relax \vbox{\strut}% \fi \fi \prevdepth\openstrutdepth \nointerlineskip \dp\columnpagebox\zeropoint \global\finalcolumnheights\ht\columnpagebox \getnoflines\finalcolumnheights \global\finalcolumnlines\noflines \ifcase#1\else % messy correction, we need to rewrite this module (newcolumns) \setbox\columnpagebox\vbox {\offinterlineskip \scratchdimen\ht\columnpagebox \advance\scratchdimen\dp\columnpagebox % we probably lost that one already \box\columnpagebox \vskip-\scratchdimen}% \scratchdimen\noflines\openlineheight \advance\scratchdimen-\openstrutdepth \advance\scratchdimen-\openlineheight \advance\scratchdimen\topskip \ht\columnpagebox\scratchdimen \dp\columnpagebox\openstrutdepth % end of mess \fi \box\columnpagebox \egroup} %D In case one didn't notice, finaly \type{\finishcolumnbox} is %D applied to all boxes. One can use these hooks for special %D purposes. %D %D Once upon a time I wanted to manipulate the individual lines %D in a column. This feature is demonstrated in the two examples %D below. %D %D \startbuffer %D \def\postprocesscolumnline#1% or \postprocesscolumnbox %D {\ruledhbox{\box#1}\hss} %D %D \startcolumns[n=4] %D \dorecurse{25}{line: \recurselevel\par} %D \stopcolumns %D \stopbuffer %D %D \typebuffer %D %D Here we show the natural width of the lines: %D %D {\getbuffer} %D %D The next example does a bit more advanced manipulation: %D %D \startbuffer %D \def\postprocesscolumnline#1% %D {\ifodd\currentcolumn %D \hfill\unhbox#1\relax %D \else %D \relax\unhbox#1\hfill %D \fi} %D %D \startcolumns[n=4] %D \dorecurse{25}{line \recurselevel\par} %D \stopcolumns %D \stopbuffer %D %D \typebuffer %D %D Here we also see an application of \type{\currentcolumn}: %D %D {\getbuffer} %D %D This feature is implemented using the reshape macros %D presented in \type{supp-box}. \def\postprocesscolumns {\ifx\postprocesscolumnline\undefined \else \dohandleallcolumns {\global\setbox\currentcolumnbox\vtop {\beginofshapebox \unvbox\currentcolumnbox \unskip\unskip \endofshapebox \reshapebox {\dimen0\ht\shapebox \dimen2\dp\shapebox \setbox\shapebox\hbox to \hsize {\postprocesscolumnline\shapebox}% \ht\shapebox\dimen0 \dp\shapebox\dimen2 \box\shapebox}% \flushshapebox \everypar\emptytoks \parskip\zeropoint % = \forgetall \verticalstrut \vskip-\struttotal \vfil}}% \fi \ifx\postprocesscolumnbox\undefined \else \dohandleallcolumns {\global\setbox\currentcolumnbox\hbox {\postprocesscolumnbox\currentcolumnbox}} \fi} %D We default to doing nothing! \let\postprocesscolumnline =\undefined \let\postprocesscolumnbox =\undefined \let\postprocesscolumnpagebox=\relax %D \macros %D {reversecolumnstrue} %D %D We can force the macro that takes care of combining %D the columns, to flush them in the revere order. Of %D course, by default we don't reverse. \newif\ifreversecolumns %D Here comes the simple splitting routine. It's a bit %D longer than expected because of ragging bottoms or not. %D This part can be a bit shorter but I suppose that I will %D forget what happens. The splitting takes some already %D present material (think of floats) into account! %D %D First we present some auxiliary routines. Any material, %D like for instance floats, that is already present in the %D boxes is preserved. \def\splitcolumn#1from \box#2to \dimen#3 top \box#4% {\bgroup \ifdim\ht#4>\zeropoint \dimen0\dimen#3\relax \dimen2\dimen0 \advance\dimen0 -\ht#4% \columnfootnotecorrection{#1}{\dimen0}% \setbox0\vsplit#2 to \dimen0 \global\setbox#1\vbox to \dimen2 {\ifgridsnapping \dimen0-\openstrutheight \advance\dimen0 \topskip \vskip\dimen0\copy#4\vskip-\dimen0 \else \unvcopy#4% \fi \fuzzysnappedbox\unvbox0 \fakecolumnfootnotes{#1}}% \else \ifcase\clevernotes \global\setbox#1\vsplit#2 to \dimen#3% \global\setbox#1\vbox {\fuzzysnappedbox\unvbox{#1}}% % or \box ? \else \columnfootnotecorrection{#1}{\dimen#3}% \setbox0\vsplit#2 to \dimen#3% \global\setbox#1\vbox to \dimen#3% {\fuzzysnappedbox\unvbox0 \fakecolumnfootnotes{#1}}% \fi \fi \egroup} \def\splitcurrentcolumn from \box#1to \dimen#2% {\splitcolumn\currentcolumnbox from \box#1 to \dimen#2 top \box\currenttopcolumnbox} \def\splitfirstcolumn from \box#1to \dimen#2% {\splitcolumn\firstcolumnbox from \box#1 to \dimen#2 top \box\firsttopcolumnbox} \def\splitlastcolumn from \box#1to \dimen#2% {\global\setbox\lastcolumnbox\vbox {\unvcopy\lasttopcolumnbox \fuzzysnappedbox\unvbox{#1}% \fakecolumnfootnotes\lastcolumnbox}} %D NEW: still to be documented. \def\fakecolumnfootnotes#1% {\relax \ifcase\clevernotes\else \ifnum#1=\lastcolumnbox \fakenotes \fi \fi} \def\columnfootnotecorrection#1#2% {\relax \ifcase\clevernotes % page notes \or \ifnum#1=\firstcolumnbox\relax \calculatetotalclevernoteheight \advance#2 -\totalnoteheight \fi \else \ifnum#1=\lastcolumnbox\relax \calculatetotalclevernoteheight \advance#2 -\totalnoteheight \fi \fi} \def\overlaycolumnfootnotes {\relax \ifcase\clevernotes % page notes \else \checknotepresence \ifnotespresent % the note box has the depth of the notefont % because a column (i.e. first column has no depth, % we need to anchor top down) \bgroup \ifcase\clevernotes\or \getmulticolumnlines \advance\nofcolumnlines \minustwo \scratchdimen\nofcolumnlines\lineheight \advance\scratchdimen \topskip \setbox0\hbox {\lower\scratchdimen\vbox{\placenoteinserts}}% \ht0=\openstrutheight % \strutht \dp0=\openstrutdepth % \strutdp \scratchdimen\ht\firstcolumnbox \global\setbox\firstcolumnbox\vbox to \scratchdimen {\box\firstcolumnbox \vskip-\scratchdimen \restoretextcolor{\box0}}% \else % maybe here also \getmulticolumnlines \scratchdimen\ht\firstcolumnbox \advance\scratchdimen -\openstrutdepth % \strutdp \getnoflines\scratchdimen \advance\noflines \minustwo \scratchdimen\noflines\lineheight \advance\scratchdimen \topskip \setbox0\hbox {\lower\scratchdimen\vbox{\placenoteinserts}}% \ht0=\openstrutheight % \strutht \dp0=\openstrutdepth % \strutdp \scratchdimen\ht\lastcolumnbox \global\setbox\lastcolumnbox\vbox to \scratchdimen {\box\lastcolumnbox \vskip-\scratchdimen \restoretextcolor{\box0}}% \fi \egroup \fi \fi} %D Here comes the routine that splits the long box in columns. %D The macro \type{\flushcolumnfloats} can be used to flush %D either floats that were present before the multi||column %D mode was entered, or floats that migrate to next columns. %D Flushing floats is a delicate process. \def\continuousmulticolumnsout {\bgroup \forgetall \setmulticolumnsout \dontshowcomposition % \dimen0=\columntextheight % \advance\dimen0 -\precolumnboxheight % \settotalinsertionheight % \advance\dimen0 -\totalinsertionheight % \ifgridsnapping % evt altijd, nog testen % \getnoflines{\dimen0} % \dimen0=\noflines\openlineheight % \fi \getmulticolumnlines \dimen0=\nofcolumnlines\openlineheight \dohandleallcolumns {\splitcurrentcolumn from \box\normalpagebox to \dimen0}% \setbox\restofpage\vbox{\unvbox\normalpagebox}% \ifinheritcolumns \ifr@ggedbottom % vreemd \dohandleallcolumns {\global\setbox\currentcolumnbox\vbox to \ht\firstcolumnbox {\dimen0\dp\currentcolumnbox \unvbox\currentcolumnbox \vskip-\dimen0 \vskip\openstrutdepth % \strutdp \prevdepth\openstrutdepth % \strutdp \vfill}}% \ifbottomnotes \else \dimen0\ht\firstcolumnbox \fi \fi \ifn@rmalbottom \advance\dimen0 \maxdepth \dohandleallcolumns {\global\setbox\currentcolumnbox\vbox to \dimen0 {\unvbox\currentcolumnbox}}% \fi \ifb@selinebottom % the columns are on top of the baseline \fi \else \dohandleallcolumns {\global\setbox\currentcolumnbox\vbox to \dimen0 {\ifstretchcolumns \unvbox\currentcolumnbox \else \unvbox\currentcolumnbox % wel of niet \unvbox ? \vfill \fi}}% \dohandleallcolumns {\ht\currentcolumnbox\dimen0}% redundant \fi \setbox\precolumnbox\vbox{\flushcolumnedpage\zerocount}% \finaloutput\box\precolumnbox \sethsize \setvsize \flushcolumnfloats \unvbox\restofpage % \penalty\outputpenalty % gaat gruwelijk mis in opsommingen \egroup} %D And this is the balancing stuff. Again, part of the routine %D is dedicated to handling ragged bottoms, but here we also %D see some handling concerning the stretching of columns. %D We set \type{\widowpenalty} at~0, which enables us to %D balance columns with few lines. The use of \type{\box2} and %D \type{\box4} garantees a more robust check when skips are %D used. \def\multicolumnsbalancemax{250} % 100 is too small when floats are involved \def\balancedmulticolumnsout {\bgroup \setmulticolumnsout \dontshowcomposition \widowpenalty\zerocount \setbox0\vbox{\unvbox\normalpagebox}% \ifdim\ht0>\openlineheight % at least one line \ifnum\minbalancetoplines<2 % balance anyway \donetrue \else % check criterium to available lines \getnoflines{\ht0}% \divide\noflines \nofcolumns \relax \ifnum\noflines<\minbalancetoplines \relax \dimen0\ht0 \advance\dimen0 \ht\firsttopcolumnbox \advance\dimen0 \openlineheight \relax % let's play safe \ifdim\dimen0>\columntextheight % column exceeding text height \donetrue \else % it seems to fit \donefalse \fi \else % balance indeed \donetrue \fi \fi \else % balancing does not make sense \donefalse \fi \ifdone % start balancing %\ifdim\ht0>\openlineheight \dimen0\ht0 \advance\dimen0 \topskip \advance\dimen0 -\baselineskip \dohandleallcolumns {\advance\dimen0 \ht\currenttopcolumnbox}% \divide\dimen0 \nofcolumns \vbadness\!!tenthousand\relax \count255=\zerocount \bgroup \ifgridsnapping \dimen2\lineheight \else \dimen2=\onepoint % RUBISH \dimen2=\spacingfactor\dimen2 \fi \doloop {\advance\count255 \plusone \global\setbox\restofpage\copy0\relax \splitfirstcolumn from \box\restofpage to \dimen0 \dohandlemidcolumns {\splitcurrentcolumn from \box\restofpage to \dimen0}% \splitlastcolumn from \box\restofpage to \dimen0 \setbox2\vbox{\unvcopy\firstcolumnbox}% \dimen4\zeropoint \dohandleallcolumns {\setbox4\vbox {\unvcopy\currentcolumnbox %rather new, test this on pdftex-z.tex \unpenalty\unskip\unpenalty\unskip}% maybe better in main splitter %\writestatus{balance}{\the\currentcolumnbox: \the\ht4}% % \dimen6\ht4 \ifdim\dimen6>\dimen4 \dimen4=\dimen6 \fi}% \ifdim\ht4>\dimen4 \dimen4=\ht4 \fi}% \advance\dimen4 -.0005pt % get rid of accurracy problem, pretty new \ifnum\count255>\multicolumnsbalancemax\relax \exitloop \else\ifdim\dimen4>\ht2 \advance\dimen0 \dimen2\relax \else \exitloop \fi\fi}% \dohandleallcolumns {\global\setbox\currentcolumnbox\vbox{\unvcopy\currentcolumnbox}}% NIEUW \ifnum\count255>\multicolumnsbalancemax\relax \showmessage\m!columns7\empty \else \showmessage\m!columns8{\the\count255\space}% \fi \egroup \ifinheritcolumns % We cannot assume that the first column is the tallest, if % only because we may have an aborted balance (one line in the % first column and a graphic in the second one). % % \dimen0\ht\firstcolumnbox % \dimen2\ht\firstcolumnbox % \dimen0=\zeropoint \dohandleallcolumns {\ifdim\ht\currentcolumnbox>\dimen0 \dimen0=\ht\currentcolumnbox \fi}% \dimen2\dimen0 % so far \advance\dimen2 -\openlineheight \dohandleallcolumns {\dimen4\ht\currentcolumnbox \dimen6=10\openlineheight % funny value \global\setbox\currentcolumnbox\vbox to \dimen0 {\unvbox\currentcolumnbox \ifdim\dimen4>\dimen6 \ifdim\dimen4<\dimen0 \ifdim\dimen4>\dimen2 \vskip\zeropoint % !! \else \vskip\openlineheight \vfill \fi \else \vskip\zeropoint \fi \else \vskip\openlineheight \vfill \fi}}% \else \bgroup \ifstretchcolumns \dimen0\ht\firstcolumnbox \dimen2=\bottomtolerance\ht\firstcolumnbox \setbox0\vbox{\unvcopy\lastcolumnbox}% \advance\dimen0 -\ht0\relax \advance\dimen0 -\dp0\relax \ifdim\dimen0>\openlineheight\relax \ifdim\dimen0>\dimen2\relax % \stretchcolumnsfalse % beter goed slecht dan slecht goed \showmessage\m!columns9\empty \fi \fi \fi \dohandleallcolumns {\global\setbox\currentcolumnbox\vbox to \ht\firstcolumnbox {\ifstretchcolumns \unvbox\currentcolumnbox \else \box\currentcolumnbox \vfill \fi}}% \egroup \fi \else % a one liner is not properly handled here, so best rewrite the text then \showmessage\m!columns{10}\empty \global\setbox\firstcolumnbox\vbox{\unvbox0}% \fi \global\output{\balancingerror}% \b@selinebottomtrue % forces depth in separation rule \flushcolumnedpage\plusone \multicolumnseject \egroup} \def\multicolumnseject {%\ifdim\pagetotal>\textheight % \eject % new, but wrong as fails on mixed-001.tex (wrong pagetotal at this point) %\else \allowbreak }%\fi} %D The multicolumn mechanism is incorporated in a \CONTEXT\ %D interface, which acts like: %D %D \starttyping %D \startcolumns[n=4,balance=no] %D some text %D \stopcolumns %D \stoptyping %D %D The setup is optional. The default behaviour of columns %D can be set up with: %D %D \starttyping %D \setupcolumns %D [n=2, %D balance=yes] %D \stoptyping %D %D In this case, stretching is according to the way it's %D done outside columns (\type{\inheritcolumnstrue}). Also %D we can setup the \type{tolerance} within a column, the %D \type{distance} between columns and the fixed %D \type{height} of a column. %D Multi||column output: the float routines %D %D Here come the routines that handle the placement of column %D floats. Floats that are to big migrate to the next %D column. Floats that are too wide, migrate to the top of the %D next page, where they span as much columns as needed. %D Floats that are left over from outside the multi||column %D mode are flushed first. In macro \type{\finaloutput} the %D topfloats that are left from previous text should be set. %D %D When there are some floats in the queue, we inhibit the %D flushing of floats on top of columns. The number of %D waiting floats is preswent in \type{\savednoftopfloats} and %D is saved. As long as there are floats waiting, the topfloats %D are places as if we are outside multi||column mode. This is %D neccessary for e.g. multicolumn lists. %D %D When all those floats are flushed, we switch to the local %D flushing routine. \def\setcolumnfloats {\xdef\globalsavednoffloats{\the\savednoffloats}% \ifnum\globalsavednoffloats>\zerocount \setglobalcolumnfloats \else \setlocalcolumnfloats \fi} \def\setglobalcolumnfloats {\everypar\emptytoks \let\flushcolumnfloat\relax %\let\doroomfloat\relax \let\docheckiffloatfits\relax \let\flushcolumnfloats\noflushcolumnfloats} \def\setlocalcolumnfloats {\everypar{\flushnotes\flushcolumnfloat\flushmargincontents\checkindentation}% \let\flushcolumnfloat\doflushcolumnfloat %\let\doroomfloat\docolumnroomfloat \let\docheckiffloatfits\docolumnroomfloat \let\flushcolumnfloats\doflushcolumnfloats \let\doflushfloats\doflushcolumnfloats % new \let\dosetbothinserts\relax \let\dotopinsertions\relax} \def\noflushcolumnfloats {\bgroup \xdef\localsavednoffloats{\the\savednoffloats}% \global\savednoffloats\globalsavednoffloats \dotopinsertions \xdef\globalsavenoffloats{\the\savednoffloats}% \ifnum\globalsavednoffloats=\zerocount \setlocalcolumnfloats \fi \global\savednoffloats\localsavednoffloats \egroup} %D We need to calculate the amount of free space in a columns. %D When there is not enough room, we migrate the float to the %D next column. These macro's are alternatives (and %D look||alikes) of \type{\doroomfloat}. When a float is to %D wide, for one column, it is moved to the top of the next %D page. Of course such moved floats have to be taken into %D account when we calculate the available space. It's a pitty %D that such things are no integral part of \TEX. \def\getcolumnstatus\column#1\total#2\goal#3\\% {\dimen0=\ifdim\pagegoal<\maxdimen \pagetotal \else \zeropoint \fi \dimen2=\zeropoint \count255=\zerocount \dimen8=\columntextheight \advance\dimen8 -\precolumnboxheight \def\dogetcolumnstatus {\advance\count255 \plusone \advance\dimen2 \ht\currenttopcolumnbox \advance\dimen2 \dp\currenttopcolumnbox \dimen4\dimen2 \advance\dimen4 \dimen0 \dimen6=\count255\dimen8 \ifdim\dimen4>\dimen6 \else \let\dogetcolumnstatus\relax \fi}% \dohandleallcolumns{\dogetcolumnstatus}% \ifnum\count255=0 \count255=1 \fi #1=\count255 #2=\dimen4 #3=\dimen6 } \def\getinsertionheight {\ifdim\pagegoal<\maxdimen \bgroup \dimen0=\columntextheight \advance\dimen0 -\pagegoal \xdef\insertionheight{\the\dimen0}% \egroup \else \global\let\insertionheight\zeropoint \fi} \def\docolumnroomfloat {\ifpostponecolumnfloats \global\roomforfloatfalse \else\ifnofloatpermitted \global\roomforfloatfalse \else \bgroup \getcolumnstatus\column\count255\total\dimen0\goal\dimen2\\% \advance\dimen0 2\openlineheight % nog nodig ? %\ifnum\count255=\nofcolumns % \getinsertionheight % %\message{\insertionheight}\wait % \advance\dimen0 \insertionheight %\fi \setbox\scratchbox\vbox % tricky met objecten ? {\blank[\@@bkspacebefore] \snaptogrid\vbox{\copy\floatbox}}% \advance\dimen0 \ht\scratchbox \advance\dimen0 .5\lineheight % needed because goal a bit higher %\message{column: \the\count255; total: \the\dimen0; goal: \the\dimen2}\wait \ifdim\dimen0>\dimen2 \global\roomforfloatfalse \else \global\roomforfloattrue \fi \ifdim\wd\floatbox>\hsize \showmessage\m!columns{11}\empty \global\roomforfloatfalse \fi \egroup \fi\fi} %D Flushing one float is done as soon as possible, i.e. %D \type{\everypar}. This means that (at the moment) %D sidefloats are not supported (overulled)! \newif\ifflushingcolumnfloats \flushingcolumnfloatstrue \def\doflushcolumnfloat {\ifpostponecolumnfloats\else\ifflushingcolumnfloats\ifprocessingverbatim\else\ifsomefloatwaiting \bgroup \forgetall \let\doflushcolumnfloat\relax \getcolumnstatus\column\mofcolumns\total\dimen0\goal\dimen2\\% \ifdim\dimen0>\zeropoint \dogetfloat \ifdim\wd\floatbox>\hsize \doresavefloat \else %\setbox2=\vbox % {\blank[\@@bkspacebefore] % \snaptogrid\vbox{\copy\floatbox}% % \blank[\@@bkspaceafter] \setbox2=\vbox {\blank[\@@bkspacebefore] \snaptogrid\vbox{\copy\floatbox}}% \advance\dimen0 \ht2 \ifdim\dimen0>\dimen2 \ifnum\mofcolumns<\nofcolumns \advance\mofcolumns \plusone %% bug %% \edef\currenttopcolumnbox{\getvalue{\@@topcol\the\count255}}% \ifdim\ht\currenttopcolumnbox=\zeropoint \global\setbox\currenttopcolumnbox\vbox {\snaptogrid\vbox{\copy\floatbox} \whitespace % nodig ? \blank[\@@bkspaceafter]}% \dimen4=\ht\currenttopcolumnbox \advance\dimen4 \dp\currenttopcolumnbox \global\advance\vsize -\dimen4 \advance\dimen4 -\pagegoal \global\pagegoal-\dimen4 \showmessage\m!columns{12}a% \else \showmessage\m!columns{12}b% \doresavefloat \fi \else \showmessage\m!columns{12}c% \doresavefloat \fi \else \ifhmode{\setbox0\lastbox}\fi% waar is die er in geslopen \par \ifdim\prevdepth<\zeropoint \else % anders bovenaan kolom witruimte \nobreak \blank[\@@bkspacebefore] \nobreak \fi \flushfloatbox \blank[\@@bkspaceafter] \fi \fi \fi \egroup \fi\fi\fi\fi} %D This one looks complicated. Upto \type{\nofcolumns} floats %D are placed, taking the width of a float into account. This %D routine can be improved on different ways: %D %D \startitemize[intro,packed] %D \item taking into account some imaginary baseline, just to %D get the captions in line %D \item multipass flushing until as many floats are displaced %D as possible %D \stopitemize %D %D When handling lots of (small) floats spacing can get worse %D because of lining out the columns. \def\doflushcolumnfloats {\ifpostponecolumnfloats\else \bgroup \forgetall \ifsomefloatwaiting \dimen8\zeropoint \dimen4\zeropoint \count0\zerocount % count0 can be used local \count2\nofcolumns % count2 can be used local \dohandleallcolumns {\ifnum\count0>\zerocount % the wide one's reserved space \global\setbox\currenttopcolumnbox\vbox {\snaptogrid\vbox {\copy\currenttopcolumnbox \hbox{\vphantom{\copy\floatbox}}} \whitespace % nodig ? \blank[\@@bkspaceafter]}% \else \dogetfloat \ifdim\wd\floatbox>\finalcolumntextwidth % better somewhere else too \global\setbox\floatbox\hbox to \finalcolumntextwidth{\hss\box\floatbox\hss}% \fi % otherwise the graphic may disappear \ifdim\wd\floatbox>\hsize \dimen0\wd\floatbox \advance\dimen0 \intercolumnwidth \dimen2\hsize \advance\dimen2 \intercolumnwidth \advance\dimen0 .5pt % hm, why 1 \advance\dimen2 .5pt % hm, why 2 \divide\dimen0 \dimen2 \count0\dimen0 \advance\count0 \plusone \ifnum\count0>\count2 \doresavefloat \count0\zerocount \else \dimen0=\count0\hsize \advance\dimen0 \count0\intercolumnwidth \advance\dimen0 -\intercolumnwidth \global\setbox\floatbox\hbox to \dimen0 %{\hss\hbox{\copy\floatbox}\hss}% {\processaction[\@@bklocation] % how easy to forget [ \v!left=>\copy\floatbox\hss, \v!right=>\hss\copy\floatbox, \s!default=>\hss\copy\floatbox\hss, \s!unknown=>\hss\copy\floatbox\hss]}% \fi \showmessage\m!columns{13}\empty \else % \showmessage\m!columns{13}\empty \fi \ifdim\ht\floatbox>\zeropoint\relax \global\setbox\currenttopcolumnbox\vbox {\snaptogrid\vbox {\copy\currenttopcolumnbox \copy\floatbox} \whitespace % nodig ? \blank[\@@bkspaceafter]}% \fi \dimen6\ht\currenttopcolumnbox \advance\dimen6 \dp\currenttopcolumnbox \fi \ifdim\dimen4<\ht\currenttopcolumnbox \dimen4\ht\currenttopcolumnbox \fi \advance\dimen8 \dimen6 \advance\count2 \minusone \advance\count0 \minusone }% \setvsize \global\advance\vsize -\dimen8 \global\pagegoal\vsize \else %\doflushfloats % does not snap! \fi \egroup \fi} %D The next macro can be used to flush floats in the current %D stream. No width checking is (yet) done. \def\insertcolumnfloats {\doloop {\ifsomefloatwaiting \bgroup \forgetall % no check for width \dogetfloat \blank[\@@bkspacebefore] \snaptogrid\vbox{\copy\floatbox} \blank[\@@bkspaceafter] \egroup \else \exitloop \fi}} %D This were the multi||column routines. They can and need to %D be improved but at the moment their behaviour is acceptable. %D %D One inprovement can be to normalize the height of floats %D to $n\times$\type{\lineheight} with a macro like: %D %D \starttyping %D \normalizevbox{...} %D \stoptyping % border case, should fit on one page % % \startcolumns % % 1 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{1}} % 2 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{2}} % 3 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{3}} % % \stopcolumns \def\setupcolumns {\dosingleempty\dosetupcolumns} \def\dosetupcolumns[#1]% {\getparameters[\??kl][#1]% \nofcolumns\@@kln\relax \processaction [\@@klrule] [ \v!on=>\let\betweencolumns\linebetweencolumns, \v!off=>\let\betweencolumns\spacebetweencolumns, \s!default=>\let\betweencolumns\spacebetweencolumns, \s!unknown=>\let\betweencolumns\@@klrule]} \def\linebetweencolumns {\bgroup \starttextproperties \ifdim\@@kldistance>\zeropoint \dimen0=\@@kldistance \else \dimen0=\linewidth \fi \advance\dimen0 -\linewidth \hskip.5\dimen0 \vrule \!!width\linewidth \ifb@selinebottom\!!depth\strutdepth\fi \hskip.5\dimen0\relax \stoptextproperties \egroup} \def\spacebetweencolumns {\hskip\@@kldistance} \presetlocalframed[\??kl] \def\backgroundfinishcolumnbox {\doifinsetelse\@@kloffset{\v!none,\v!overlay} {\let\@@kloffset\!!zeropoint} {\scratchdimen\@@kloffset \advance\scratchdimen -\@@klrulethickness \edef\@@kloffset{\the\scratchdimen}}% \localframed [\??kl] [\c!strut=\v!no, \c!width=\v!fit, \c!height=\v!fit, \c!align=]} \let\restorecolumnsettings\relax \definecomplexorsimpleempty\startcolumns \def\complexstartcolumns[#1]% %% \startcolumns {\bgroup \let\stopcolumns\egroup \ifinsidecolumns \else \setupcolumns[#1]% \ifnum\@@kln>1\relax \whitespace \begingroup \doif\@@kloption\v!background {\let\finishcolumnbox\backgroundfinishcolumnbox \let\columntextoffset\@@kloffset}% \ifx\@@klcommand\empty\else \let\postprocesscolumnline\@@klcommand \fi \doifelsenothing\@@klheight \heightencolumnsfalse \heightencolumnstrue \doifelse\@@kldirection\v!right \reversecolumnsfalse \reversecolumnstrue \doifelse\@@klbalance\v!yes \balancecolumnstrue \balancecolumnsfalse \installalign\v!yes {\stretchcolumnstrue \inheritcolumnsfalse}% todo: new key \installalign\v!no {\stretchcolumnsfalse\inheritcolumnsfalse}% todo: new key \installalign\v!text{\stretchcolumnsfalse\inheritcolumnstrue }% \stretchcolumnsfalse \inheritcolumnstrue \doifsomething\@@klalign{\expanded{\setupalign[\@@klalign]}}% % \processaction % [\@@klalign] % [ \v!yes=>\stretchcolumnstrue % \inheritcolumnsfalse, % \v!no=>\stretchcolumnsfalse % \inheritcolumnsfalse, % \v!text=>\stretchcolumnsfalse % \inheritcolumnstrue]% \nofcolumns=\@@kln % % probably more is needed, and how about nesting save's % \savecurrentblank \savecurrentwhitespace \def\restorecolumnsettings {\boxmaxdepth\maxdimen % done elsewhere \restorecurrentblank \restorecurrentwhitespace}% % \edef\fixedcolumnheight{\@@klheight}% \edef\minbalancetoplines{\@@klntop}% \setuptolerance[\@@kltolerance]% %% \startcolumns \setupblank[\@@klblank]% \ifdim\ctxparskip>\zeropoint\relax \setupwhitespace[\@@klblank]% \fi \def\stopcolumns {\endmulticolumns \global\insidecolumnsfalse \endgroup \egroup}% \global\insidecolumnstrue \beginmulticolumns \fi \fi} \installcolumnbreakhandler {MUL} \v!preference {\goodbreak} \installcolumnbreakhandler {MUL} \v!yes {\par % todo: since {\testrulewidth\zeropoint\ruledvskip\textheight}% we misuse a \penalty-200 % side effect \vskip-\textheight }% bugged : \prevdepth-\thousandpoint} % signals top of column to \blank %D New: only at start of columns; may change ! Rather %D interwoven and therefore to be integrated when the multi %D column modules are merged. (moved from cont-new.tex) \def\setupcolumnspan[#1]% {\getparameters[\??ks][#1]} \presetlocalframed [\??ks] \setupcolumnspan [\c!n=2, \c!offset=\v!overlay, \c!frame=\v!off] \newbox\columnspanbox \let\postprocesscolumnspanbox\gobbleoneargument \def\dostartcolumnspan[#1]% {\bgroup \setupcolumnspan[#1]% \forgetall \ifinsidecolumns \advance\hsize \intercolumnwidth \hsize\@@ksn\hsize \advance\hsize -\intercolumnwidth \fi \dowithnextbox {\setbox\columnspanbox\flushnextbox \ifinsidecolumns\wd\columnspanbox\hsize\fi \postprocesscolumnspanbox\columnspanbox \scratchdimen\ht\columnspanbox \setbox\columnspanbox\hbox % depth to be checked, probably option! {\localframed[\??ks][\c!offset=\v!overlay]{\box\columnspanbox}}% \ht\columnspanbox\scratchdimen \dp\columnspanbox\strutdp \wd\columnspanbox\hsize \ifinsidecolumns \ifnum\@@ksn>1 \setvsize \dohandleallcolumns {\ifnum\currentcolumn>\@@ksn\else \global\setbox\currenttopcolumnbox=\vbox {\ifnum\currentcolumn=1 \snaptogrid\vbox{\copy\columnspanbox} \else \snaptogrid\vbox{\vphantom{\copy\columnspanbox}} \fi}% \wd\currenttopcolumnbox\hsize \global\advance\vsize -\ht\currenttopcolumnbox \fi} \global\pagegoal\vsize \else \snaptogrid\vbox{\box\columnspanbox} \fi \else \snaptogrid\vbox{\box\columnspanbox} \fi \endgraf \ifvmode\prevdepth\strutdp\fi \egroup} \vbox\bgroup %\topskipcorrection % becomes an option ! \EveryPar{\begstrut\EveryPar{}}} % also ! \def\startcolumnspan {\dosingleempty\dostartcolumnspan} \def\stopcolumnspan {\egroup} \setupcolumns [\c!n=2, \c!ntop=1, \c!command=, \c!direction=\v!right, \c!rule=\v!off, \c!tolerance=\v!tolerant, \c!distance=1.5\bodyfontsize, % influenced by switching \c!height=, \c!balance=\v!yes, \c!align=\v!text, \c!blank={\v!line,\v!fixed}, \c!option=, \c!rulethickness=\linewidth, \c!offset=.5\bodyfontsize] %D Undocumented and still under development. \def\startsimplecolumns {\dosingleempty\dostartsimplecolumns} \def\dostartsimplecolumns[#1]% {\bgroup \nopenalties \getparameters[\??kl] [\c!width=\hsize,\c!distance=1.5\bodyfontsize,% \c!n=2,\c!lines=0,#1]% \let\rigidcolumnlines\@@kllines \setrigidcolumnhsize\@@klwidth\@@kldistance\@@kln \setbox\scratchbox\vbox\bgroup \forgetall} % \blank[\v!disable] \def\stopsimplecolumns {\removebottomthings \egroup \rigidcolumnbalance\scratchbox \egroup} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-sys.ori0000644000175000017500000001105714536300610024576 0ustar hillehille%D \module %D [ file=cont-sys, %D version=1995.10.10, %D title=\CONTEXT\ Miscellaneous Macros, %D subtitle=System Specific Setups, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA / Hans Hagen \& Ton Otten}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Beware, this is a MkII specific file. In MkIV we only load %D cont-sys.mkiv but in MkII we load the first found of %D cont-sys.mkii, cont-sys.tex, cont-sys.rme. \unprotect % Speed up typescript loading, but at the cost of much memory: \preloadtypescripts % If you want another default font: % % \let\preloadfonts\relax % \usetypescript[palatino][\defaultencoding] % \setupbodyfont[palatino,rm,12pt] % % Please make sure that this defines rm, ss, tt and mm. % Occasionally we will support both A4 and letter in % styles. If you want letter size paper to be the default, % uncomment: % % \enablemode[\systemmodeprefix letter] % % If you always want to default to letter, you may uncomment % the following line, but beware: it makes your documents less % portable: % % \setuppapersize[letter][letter] % If you want some extras, just uncomment the following % line: % % \usemodule[plus] % experimental code % % Here you can take care of overloading some (style) % defaults. What goes here, depends on your local system. % The following commands sets the default font encoding: % % \setupencoding [\s!default=texnansi] % % or: \setupencoding [\s!default=ec] % If you want the default berry names: % % \usetypescript [berry] [\defaultencoding] % % or, if you also want other encodings: \usetypescript [berry] [ec,t5,8r] % texnansi is never present % If you run into missing font metrics kind of problems, % you may want to uncomment: % % \usetypescript[adobekb] [\defaultencoding] % You can let \CONTEXT\ load the map files for \PDFTEX. \autoloadmapfilestrue % (1) you can prevent loading with: % % \preloadmapfile[<...somename...>.map] % % (2) otherwise, use this if you have a fast machine % % \resetmapfiles \usetypescript [map] [base] [all] % % (3) or this if it's a slow one: \resetmapfiles % more recent versions of pdftex support map loading on each page \donefalse \ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion>119 \donetrue \fi \fi \ifdone \loadmapfile[original-base.map] \loadmapfile[original-ams-base.map] \loadmapfile[original-ams-euler.map] \loadmapfile[original-public-lm.map] \else \loadmapfile[original-base.map] \loadmapfile[texnansi-base.map] \loadmapfile[ec-base.map] \loadmapfile[qx-base.map] \loadmapfile[t5-base.map] %loadmapfile[il2-base.map] %loadmapfile[pl0-base.map] \loadmapfile[8r-base.map] \loadmapfile[original-ams-base.map] \loadmapfile[original-ams-euler.map] \loadmapfile[original-public-lm.map] %loadmapfile[texnansi-public-lm.map] %loadmapfile[ec-public-lm.map] %loadmapfile[qx-public-lm.map] %loadmapfile[t5-public-lm.map] %loadmapfile[pl0-public-lm.map] %loadmapfile[il2-public-lm.map] \fi % When you have your own fonts installed, you may want to predefine: % % \usetypescriptfile[type-buy] % Some styles default to Lucida Bright. You can overload % Lucida by Times cum suis. Watch out, the pos collection % is not scaled relatively. % % \definetypescriptsynonym [lbr] [pos] % Compensate for missing files: % % \definefontsynonym [gbhei] [gbsong] % \definefontsynonym [gbheisl] [gbsong] % \definefontsynonym [gbheisl] [gbsong] % Setting up a global figure path % % \setupexternalfigures [\c!directory={e:/fig/eps,t:/mine/figs}] % % Loading a specific special driver: % % \setupoutput [dviwindo] % Changing language defaults % % \setuplanguage % [nl] % [\c!leftquote=\upperleftsinglesixquote, % \c!leftquotation=\upperleftdoublesixquote] % Loading local preferences, for example % % \input prag-gen % company styles % \input prag-log % more company styles % % Enabling run time \METAPOST\ (also enable \write18 in % texmf.cnf): \runMPgraphicstrue \runMPTEXgraphicstrue % This saves some runtime, but needs a format, which you can % make with 'texexec --make --alone metafun'. Make sure that % the mem files are moved to the used web2c path (locate with % 'kpsewhich plain.mem'). \useMETAFUNformattrue % This can be a way to get things working on system with % name clashes. (Some \TeX's tend do search system wide.) \protectbufferstrue % You can enable a more extensive figure searching, but % normally this is not really needed and even annoying. % % \runutilityfiletrue % So far. \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xetx-ini.mkii0000644000175000017500000000745714536300610024735 0ustar hillehille%D \module %D [ file=xetx-ini, %D version=2004.09.11, %D title=\CONTEXT\ System Macros, %D subtitle=\XETEX\ Initializations, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D We moved some code around and now have reorganized the xetex %D code in the \type {xetx} module namespace. \unprotect %D Some defaults. \ifdefined\XeTeXuseglyphmetrics \XeTeXuseglyphmetrics\plusone \fi %D Character classes. \newcount\nofXTXcharinjections \def\defineXTXcharinjectionclass[#1]% {\global\advance\nofXTXcharinjections\plusone \setxvalue{@xtx@cc@#1}{\number\nofXTXcharinjections}} \setxvalue{@xtx@cc@\s!default}{0} \def\getXTXcharinjectionclass#1% {\csname @xtx@cc@\ifcsname @xtx@cc@#1\endcsname#1\else\s!default\fi\endcsname} \let\currentXTXcharinjection\s!default \def\startXTXcharinjecxtions[#1]% {\pushmacro\currentXTXcharinjection \def\currentXTXcharinjection{#1}} \def\stopXTXcharinjections {\popmacro\currentXTXcharinjection} \def\defineXTXcharinjection #1 #2 % {\doifnumberelse{#1}{\edef\XTXclassone{\number#1}}{\edef\XTXclassone{\getXTXcharinjectionclas{#1}}}% \doifnumberelse{#2}{\edef\XTXclasstwo{\number#2}}{\edef\XTXclasstwo{\getXTXcharinjectionclas{#2}}}% \expanded{\dodefineXTXcharinjection{\XTXclassone}{\XTXclasstwo}}} \def\setXTXcharcodes #1 #2 #3 % encoding syntax {\catcode#1=11 \lccode #1=#2 \uccode #1=#3 } \def\dosetXTXcharcodes#1#2#3% compact syntax {\catcode#1=11 \lccode #1=#2 \uccode #1=#3 } \ifdefined\XeTeXinterchartoks \long\def\dodefineXTXcharinjection#1#2#3% {\XeTeXinterchartoks #1 #2 {\XTXcharinjection{#1}{#2}}% \setvalue{@xtx@ch@\currentXTXcharinjection @#1@#2@}{#3}} \def\setXTXcharacterclass #1 #2 % {\doifnumberelse{#2} {\XeTeXcharclass#1=#2\relax} {\XeTeXcharclass#1=\getXTXcharinjectionclass{#2}\relax}} \def\dosetXTXcharacterclass#1% #2 fast one {\XeTeXcharclass#1=\getXTXcharinjectionclass} \else \long\def\dodefineXTXcharinjection#1#2#3% {\setvalue{@xtx@ch@\currentXTXcharinjection @#1@#2@}{#3}} \def\setXTXcharacterclass #1 #2 % {} \fi \chardef\XTXcharinjectionsmode=1 \letvalue{@xtx@ch@\s!empty}\empty \def\XTXcharinjection#1#2% {\csname @xtx@ch@% \ifcase\XTXcharinjectionsmode \s!empty \or \ifcsname @xtx@ch@\currentXTXcharinjection @#1@#2@\endcsname \currentXTXcharinjection @#1@#2@\fi \or \ifcsname @xtx@ch@\currentXTXcharinjection @#1@#2@\endcsname \currentXTXcharinjection @#1@#2@\else \ifcsname @xtx@ch@\s!default @#1@#2@\endcsname \s!default @#1@#2@\else \s!empty \fi\fi \else \s!empty \fi \endcsname} \def\enableXTXcharinjections[#1]% {\def\currentXTXcharinjection{#1}} \protect \endinput \starttext \startXTXcharinjecxtions[default] \defineXTXcharinjection 10 40 {[default]} \stopXTXcharinjections \startXTXcharinjecxtions[whatever] \defineXTXcharinjection 20 40 {[whatever]} \stopXTXcharinjections \chardef\XTXcharinjectionsmode=0 \enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C \enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C \chardef\XTXcharinjectionsmode=1 \enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C \enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C \chardef\XTXcharinjectionsmode=2 \enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C \enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/colo-ema.mkii0000644000175000017500000010233514536300610024653 0ustar hillehille%D \module %D [ file=colo-ema, %D version=2003.03.20, %D title=\CONTEXT\ Color Macros, %D subtitle=Emacs Colors, %D author=Peter Rolf, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % author : Peter Rolf % last change : 17 march 2003 % origin : /emacs/etc/rgb.txt % % USAGE: % % - select emacs menu: Edit -> Text Properties -> Display % Colors, if you don't know what I'm talking about % - copy this file to your /texmf/tex/context/user directory % and add "\input colo-emacs" to your tex-file % % IMPORTANT NOTES: % % - all color names are written as ONE word in lowercase % letters (no redundancy as in rgb.txt) so if you want to % use the color "Light Sky Blue"/"light sky blue" it's new % name is lightskyblue % - the grayX values [X=0..100] can only be used with \color % [grayX] % - use it at your own risk :) % % HINT: % % I only include this file (\showcolor [ema]) until I've % found the colors I want. Copy and paste the color % definitions to a seperate file, to decrease compilation % time (540 color definitions). \definecolor [snow] [r=1,g=.980392,b=.980392] \definecolor [ghostwhite] [r=.972549,g=.972549,b=1] \definecolor [whitesmoke] [s=.960784] \definecolor [gainsboro] [s=.862745] \definecolor [floralwhite] [r=1,g=.980392,b=.941176] \definecolor [oldlace] [r=.992157,g=.960784,b=.901961] \definecolor [linen] [r=.980392,g=.941176,b=.901961] \definecolor [antiquewhite] [r=.980392,g=.921569,b=.843137] \definecolor [papayawhip] [r=1,g=.937255,b=.835294] \definecolor [blanchedalmond] [r=1,g=.921569,b=.803922] \definecolor [bisque] [r=1,g=.894118,b=.768627] \definecolor [peachpuff] [r=1,g=.854902,b=.72549] \definecolor [navajowhite] [r=1,g=.870588,b=.678431] \definecolor [moccasin] [r=1,g=.894118,b=.709804] \definecolor [cornsilk] [r=1,g=.972549,b=.862745] \definecolor [ivory] [r=1,g=1,b=.941176] \definecolor [lemonchiffon] [r=1,g=.980392,b=.803922] \definecolor [seashell] [r=1,g=.960784,b=.933333] \definecolor [honeydew] [r=.941176,g=1,b=.941176] \definecolor [mintcream] [r=.960784,g=1,b=.980392] \definecolor [azure] [r=.941176,g=1,b=1] \definecolor [aliceblue] [r=.941176,g=.972549,b=1] \definecolor [lavender] [r=.901961,g=.901961,b=.980392] \definecolor [lavenderblush] [r=1,g=.941176,b=.960784] \definecolor [mistyrose] [r=1,g=.894118,b=.882353] %definecolor[white] [s=1] %definecolor[black] [s=0] \definecolor [darkslategray] [r=.184314,g=.309804,b=.309804] \definecolor [dimgray] [s=.411765] \definecolor [slategray] [r=.439216,g=.501961,b=.564706] \definecolor [lightslategray] [r=.466667,g=.533333,b=.6] \definecolor [gray] [s=.745098] \definecolor [lightgray] [s=.827451] \definecolor [midnightblue] [r=.098039,g=.098039,b=.439216] \definecolor [navy] [b=.501961] \definecolor [navyblue] [navy] \definecolor [cornflowerblue] [r=.392157,g=.584314,b=.929412] \definecolor [darkslateblue] [r=.282353,g=.239216,b=.545098] \definecolor [slateblue] [r=.415686,g=.352941,b=.803922] \definecolor [mediumslateblue] [r=.482353,g=.407843,b=.933333] \definecolor [lightslateblue] [r=.517647,g=.439216,b=1] \definecolor [mediumblue] [b=.803922] \definecolor [royalblue] [r=.254902,g=.411765,b=.882353] %definecolor[blue] [b=1] \definecolor [dodgerblue] [r=.117647,g=.564706,b=1] \definecolor [deepskyblue] [g=.74902,b=1] \definecolor [skyblue] [r=.529412,g=.807843,b=.921569] \definecolor [lightskyblue] [r=.529412,g=.807843,b=.980392] \definecolor [steelblue] [r=.27451,g=.509804,b=.705882] \definecolor [lightsteelblue] [r=.690196,g=.768627,b=.870588] \definecolor [lightblue] [r=.678431,g=.847059,b=.901961] \definecolor [powderblue] [r=.690196,g=.878431,b=.901961] \definecolor [paleturquoise] [r=.686275,g=.933333,b=.933333] \definecolor [darkturquoise] [g=.807843,b=.819608] \definecolor [mediumturquoise] [r=.282353,g=.819608,b=.8] \definecolor [turquoise] [r=.25098,g=.878431,b=.815686] %definecolor[cyan] [g=1,b=1] \definecolor [lightcyan] [r=.878431,g=1,b=1] \definecolor [cadetblue] [r=.372549,g=.619608,b=.627451] \definecolor [mediumaquamarine] [r=.4,g=.803922,b=.666667] \definecolor [aquamarine] [r=.498039,g=1,b=.831373] \definecolor [darkgreen] [g=.392157] \definecolor [darkolivegreen] [r=.333333,g=.419608,b=.184314] \definecolor [darkseagreen] [r=.560784,g=.737255,b=.560784] \definecolor [seagreen] [r=.180392,g=.545098,b=.341176] \definecolor [mediumseagreen] [r=.235294,g=.701961,b=.443137] \definecolor [lightseagreen] [r=.12549,g=.698039,b=.666667] \definecolor [palegreen] [r=.596078,g=.984314,b=.596078] \definecolor [springgreen] [g=1,b=.498039] \definecolor [lawngreen] [r=.486275,g=.988235] %definecolor[green] [g=1] \definecolor [chartreuse] [r=.498039,g=1] \definecolor [mediumspringgreen] [g=.980392,b=.603922] \definecolor [greenyellow] [r=.678431,g=1,b=.184314] \definecolor [limegreen] [r=.196078,g=.803922,b=.196078] \definecolor [yellowgreen] [r=.603922,g=.803922,b=.196078] \definecolor [forestgreen] [r=.133333,g=.545098,b=.133333] \definecolor [olivedrab] [r=.419608,g=.556863,b=.137255] \definecolor [darkkhaki] [r=.741176,g=.717647,b=.419608] \definecolor [khaki] [r=.941176,g=.901961,b=.54902] \definecolor [palegoldenrod] [r=.933333,g=.909804,b=.666667] \definecolor [lightgoldenrodyellow] [r=.980392,g=.980392,b=.823529] \definecolor [lightyellow] [r=1,g=1,b=.878431] %definecolor[yellow] [r=1,g=1] \definecolor [gold] [r=1,g=.843137] \definecolor [lightgoldenrod] [r=.933333,g=.866667,b=.509804] \definecolor [goldenrod] [r=.854902,g=.647059,b=.12549] \definecolor [darkgoldenrod] [r=.721569,g=.52549,b=.043137] \definecolor [rosybrown] [r=.737255,g=.560784,b=.560784] \definecolor [indianred] [r=.803922,g=.360784,b=.360784] \definecolor [saddlebrown] [r=.545098,g=.270588,b=.07451] \definecolor [sienna] [r=.627451,g=.321569,b=.176471] \definecolor [peru] [r=.803922,g=.521569,b=.247059] \definecolor [burlywood] [r=.870588,g=.721569,b=.529412] \definecolor [beige] [r=.960784,g=.960784,b=.862745] \definecolor [wheat] [r=.960784,g=.870588,b=.701961] \definecolor [sandybrown] [r=.956863,g=.643137,b=.376471] \definecolor [tan] [r=.823529,g=.705882,b=.54902] \definecolor [chocolate] [r=.823529,g=.411765,b=.117647] \definecolor [firebrick] [r=.698039,g=.133333,b=.133333] \definecolor [brown] [r=.647059,g=.164706,b=.164706] \definecolor [darksalmon] [r=.913725,g=.588235,b=.478431] \definecolor [salmon] [r=.980392,g=.501961,b=.447059] \definecolor [lightsalmon] [r=1,g=.627451,b=.478431] \definecolor [orange] [r=1,g=.647059] \definecolor [darkorange] [r=1,g=.54902] \definecolor [coral] [r=1,g=.498039,b=.313725] \definecolor [lightcoral] [r=.941176,g=.501961,b=.501961] \definecolor [tomato] [r=1,g=.388235,b=.278431] \definecolor [orangered] [r=1,g=.270588] %definecolor[red] [r=1] \definecolor [hotpink] [r=1,g=.411765,b=.705882] \definecolor [deeppink] [r=1,g=.078431,b=.576471] \definecolor [pink] [r=1,g=.752941,b=.796078] \definecolor [lightpink] [r=1,g=.713725,b=.756863] \definecolor [palevioletred] [r=.858824,g=.439216,b=.576471] \definecolor [maroon] [r=.690196,g=.188235,b=.376471] \definecolor [mediumvioletred] [r=.780392,g=.082353,b=.521569] \definecolor [violetred] [r=.815686,g=.12549,b=.564706] %definecolor[magenta] [r=1,b=1] \definecolor [violet] [r=.933333,g=.509804,b=.933333] \definecolor [plum] [r=.866667,g=.627451,b=.866667] \definecolor [orchid] [r=.854902,g=.439216,b=.839216] \definecolor [mediumorchid] [r=.729412,g=.333333,b=.827451] \definecolor [darkorchid] [r=.6,g=.196078,b=.8] \definecolor [darkviolet] [r=.580392,b=.827451] \definecolor [blueviolet] [r=.541176,g=.168627,b=.886275] \definecolor [purple] [r=.627451,g=.12549,b=.941176] \definecolor [mediumpurple] [r=.576471,g=.439216,b=.858824] \definecolor [thistle] [r=.847059,g=.74902,b=.847059] \definecolor [snow1] [r=1,g=.980392,b=.980392] \definecolor [snow2] [r=.933333,g=.913725,b=.913725] \definecolor [snow3] [r=.803922,g=.788235,b=.788235] \definecolor [snow4] [r=.545098,g=.537255,b=.537255] \definecolor [seashell1] [r=1,g=.960784,b=.933333] \definecolor [seashell2] [r=.933333,g=.898039,b=.870588] \definecolor [seashell3] [r=.803922,g=.772549,b=.74902] \definecolor [seashell4] [r=.545098,g=.52549,b=.509804] \definecolor [antiquewhite1] [r=1,g=.937255,b=.858824] \definecolor [antiquewhite2] [r=.933333,g=.87451,b=.8] \definecolor [antiquewhite3] [r=.803922,g=.752941,b=.690196] \definecolor [antiquewhite4] [r=.545098,g=.513725,b=.470588] \definecolor [bisque1] [r=1,g=.894118,b=.768627] \definecolor [bisque2] [r=.933333,g=.835294,b=.717647] \definecolor [bisque3] [r=.803922,g=.717647,b=.619608] \definecolor [bisque4] [r=.545098,g=.490196,b=.419608] \definecolor [peachpuff1] [r=1,g=.854902,b=.72549] \definecolor [peachpuff2] [r=.933333,g=.796078,b=.678431] \definecolor [peachpuff3] [r=.803922,g=.686275,b=.584314] \definecolor [peachpuff4] [r=.545098,g=.466667,b=.396078] \definecolor [navajowhite1] [r=1,g=.870588,b=.678431] \definecolor [navajowhite2] [r=.933333,g=.811765,b=.631373] \definecolor [navajowhite3] [r=.803922,g=.701961,b=.545098] \definecolor [navajowhite4] [r=.545098,g=.47451,b=.368627] \definecolor [lemonchiffon1] [r=1,g=.980392,b=.803922] \definecolor [lemonchiffon2] [r=.933333,g=.913725,b=.74902] \definecolor [lemonchiffon3] [r=.803922,g=.788235,b=.647059] \definecolor [lemonchiffon4] [r=.545098,g=.537255,b=.439216] \definecolor [cornsilk1] [r=1,g=.972549,b=.862745] \definecolor [cornsilk2] [r=.933333,g=.909804,b=.803922] \definecolor [cornsilk3] [r=.803922,g=.784314,b=.694118] \definecolor [cornsilk4] [r=.545098,g=.533333,b=.470588] \definecolor [ivory1] [r=1,g=1,b=.941176] \definecolor [ivory2] [r=.933333,g=.933333,b=.878431] \definecolor [ivory3] [r=.803922,g=.803922,b=.756863] \definecolor [ivory4] [r=.545098,g=.545098,b=.513725] \definecolor [honeydew1] [r=.941176,g=1,b=.941176] \definecolor [honeydew2] [r=.878431,g=.933333,b=.878431] \definecolor [honeydew3] [r=.756863,g=.803922,b=.756863] \definecolor [honeydew4] [r=.513725,g=.545098,b=.513725] \definecolor [lavenderblush1] [r=1,g=.941176,b=.960784] \definecolor [lavenderblush2] [r=.933333,g=.878431,b=.898039] \definecolor [lavenderblush3] [r=.803922,g=.756863,b=.772549] \definecolor [lavenderblush4] [r=.545098,g=.513725,b=.52549] \definecolor [mistyrose1] [r=1,g=.894118,b=.882353] \definecolor [mistyrose2] [r=.933333,g=.835294,b=.823529] \definecolor [mistyrose3] [r=.803922,g=.717647,b=.709804] \definecolor [mistyrose4] [r=.545098,g=.490196,b=.482353] \definecolor [azure1] [r=.941176,g=1,b=1] \definecolor [azure2] [r=.878431,g=.933333,b=.933333] \definecolor [azure3] [r=.756863,g=.803922,b=.803922] \definecolor [azure4] [r=.513725,g=.545098,b=.545098] \definecolor [slateblue1] [r=.513725,g=.435294,b=1] \definecolor [slateblue2] [r=.478431,g=.403922,b=.933333] \definecolor [slateblue3] [r=.411765,g=.34902,b=.803922] \definecolor [slateblue4] [r=.278431,g=.235294,b=.545098] \definecolor [royalblue1] [r=.282353,g=.462745,b=1] \definecolor [royalblue2] [r=.262745,g=.431373,b=.933333] \definecolor [royalblue3] [r=.227451,g=.372549,b=.803922] \definecolor [royalblue4] [r=.152941,g=.25098,b=.545098] \definecolor [blue1] [blue] \definecolor [blue2] [b=.933333] \definecolor [blue3] [b=.803922] \definecolor [blue4] [b=.545098] \definecolor [dodgerblue1] [r=.117647,g=.564706,b=1] \definecolor [dodgerblue2] [r=.109804,g=.52549,b=.933333] \definecolor [dodgerblue3] [r=.094118,g=.454902,b=.803922] \definecolor [dodgerblue4] [r=.062745,g=.305882,b=.545098] \definecolor [steelblue1] [r=.388235,g=.721569,b=1] \definecolor [steelblue2] [r=.360784,g=.67451,b=.933333] \definecolor [steelblue3] [r=.309804,g=.580392,b=.803922] \definecolor [steelblue4] [r=.211765,g=.392157,b=.545098] \definecolor [deepskyblue1] [g=.74902,b=1] \definecolor [deepskyblue2] [g=.698039,b=.933333] \definecolor [deepskyblue3] [g=.603922,b=.803922] \definecolor [deepskyblue4] [g=.407843,b=.545098] \definecolor [skyblue1] [r=.529412,g=.807843,b=1] \definecolor [skyblue2] [r=.494118,g=.752941,b=.933333] \definecolor [skyblue3] [r=.423529,g=.65098,b=.803922] \definecolor [skyblue4] [r=.290196,g=.439216,b=.545098] \definecolor [lightskyblue1] [r=.690196,g=.886275,b=1] \definecolor [lightskyblue2] [r=.643137,g=.827451,b=.933333] \definecolor [lightskyblue3] [r=.552941,g=.713725,b=.803922] \definecolor [lightskyblue4] [r=.376471,g=.482353,b=.545098] \definecolor [slategray1] [r=.776471,g=.886275,b=1] \definecolor [slategray2] [r=.72549,g=.827451,b=.933333] \definecolor [slategray3] [r=.623529,g=.713725,b=.803922] \definecolor [slategray4] [r=.423529,g=.482353,b=.545098] \definecolor [lightsteelblue1] [r=.792157,g=.882353,b=1] \definecolor [lightsteelblue2] [r=.737255,g=.823529,b=.933333] \definecolor [lightsteelblue3] [r=.635294,g=.709804,b=.803922] \definecolor [lightsteelblue4] [r=.431373,g=.482353,b=.545098] \definecolor [lightblue1] [r=.74902,g=.937255,b=1] \definecolor [lightblue2] [r=.698039,g=.87451,b=.933333] \definecolor [lightblue3] [r=.603922,g=.752941,b=.803922] \definecolor [lightblue4] [r=.407843,g=.513725,b=.545098] \definecolor [lightcyan1] [r=.878431,g=1,b=1] \definecolor [lightcyan2] [r=.819608,g=.933333,b=.933333] \definecolor [lightcyan3] [r=.705882,g=.803922,b=.803922] \definecolor [lightcyan4] [r=.478431,g=.545098,b=.545098] \definecolor [paleturquoise1] [r=.733333,g=1,b=1] \definecolor [paleturquoise2] [r=.682353,g=.933333,b=.933333] \definecolor [paleturquoise3] [r=.588235,g=.803922,b=.803922] \definecolor [paleturquoise4] [r=.4,g=.545098,b=.545098] \definecolor [cadetblue1] [r=.596078,g=.960784,b=1] \definecolor [cadetblue2] [r=.556863,g=.898039,b=.933333] \definecolor [cadetblue3] [r=.478431,g=.772549,b=.803922] \definecolor [cadetblue4] [r=.32549,g=.52549,b=.545098] \definecolor [turquoise1] [g=.960784,b=1] \definecolor [turquoise2] [g=.898039,b=.933333] \definecolor [turquoise3] [g=.772549,b=.803922] \definecolor [turquoise4] [g=.52549,b=.545098] \definecolor [cyan1] [cyan] \definecolor [cyan2] [g=.933333,b=.933333] \definecolor [cyan3] [g=.803922,b=.803922] \definecolor [cyan4] [g=.545098,b=.545098] \definecolor [darkslategray1] [r=.592157,g=1,b=1] \definecolor [darkslategray2] [r=.552941,g=.933333,b=.933333] \definecolor [darkslategray3] [r=.47451,g=.803922,b=.803922] \definecolor [darkslategray4] [r=.321569,g=.545098,b=.545098] \definecolor [aquamarine1] [r=.498039,g=1,b=.831373] \definecolor [aquamarine2] [r=.462745,g=.933333,b=.776471] \definecolor [aquamarine3] [r=.4,g=.803922,b=.666667] \definecolor [aquamarine4] [r=.270588,g=.545098,b=.454902] \definecolor [darkseagreen1] [r=.756863,g=1,b=.756863] \definecolor [darkseagreen2] [r=.705882,g=.933333,b=.705882] \definecolor [darkseagreen3] [r=.607843,g=.803922,b=.607843] \definecolor [darkseagreen4] [r=.411765,g=.545098,b=.411765] \definecolor [seagreen1] [r=.329412,g=1,b=.623529] \definecolor [seagreen2] [r=.305882,g=.933333,b=.580392] \definecolor [seagreen3] [r=.262745,g=.803922,b=.501961] \definecolor [seagreen4] [r=.180392,g=.545098,b=.341176] \definecolor [palegreen1] [r=.603922,g=1,b=.603922] \definecolor [palegreen2] [r=.564706,g=.933333,b=.564706] \definecolor [palegreen3] [r=.486275,g=.803922,b=.486275] \definecolor [palegreen4] [r=.329412,g=.545098,b=.329412] \definecolor [springgreen1] [g=1,b=.498039] \definecolor [springgreen2] [g=.933333,b=.462745] \definecolor [springgreen3] [g=.803922,b=.4] \definecolor [springgreen4] [g=.545098,b=.270588] \definecolor [green1] [green] \definecolor [green2] [g=.933333] \definecolor [green3] [g=.803922] \definecolor [green4] [g=.545098] \definecolor [chartreuse1] [r=.498039,g=1] \definecolor [chartreuse2] [r=.462745,g=.933333] \definecolor [chartreuse3] [r=.4,g=.803922] \definecolor [chartreuse4] [r=.270588,g=.545098] \definecolor [olivedrab1] [r=.752941,g=1,b=.243137] \definecolor [olivedrab2] [r=.701961,g=.933333,b=.227451] \definecolor [olivedrab3] [r=.603922,g=.803922,b=.196078] \definecolor [olivedrab4] [r=.411765,g=.545098,b=.133333] \definecolor [darkolivegreen1] [r=.792157,g=1,b=.439216] \definecolor [darkolivegreen2] [r=.737255,g=.933333,b=.407843] \definecolor [darkolivegreen3] [r=.635294,g=.803922,b=.352941] \definecolor [darkolivegreen4] [r=.431373,g=.545098,b=.239216] \definecolor [khaki1] [r=1,g=.964706,b=.560784] \definecolor [khaki2] [r=.933333,g=.901961,b=.521569] \definecolor [khaki3] [r=.803922,g=.776471,b=.45098] \definecolor [khaki4] [r=.545098,g=.52549,b=.305882] \definecolor [lightgoldenrod1] [r=1,g=.92549,b=.545098] \definecolor [lightgoldenrod2] [r=.933333,g=.862745,b=.509804] \definecolor [lightgoldenrod3] [r=.803922,g=.745098,b=.439216] \definecolor [lightgoldenrod4] [r=.545098,g=.505882,b=.298039] \definecolor [lightyellow1] [r=1,g=1,b=.878431] \definecolor [lightyellow2] [r=.933333,g=.933333,b=.819608] \definecolor [lightyellow3] [r=.803922,g=.803922,b=.705882] \definecolor [lightyellow4] [r=.545098,g=.545098,b=.478431] \definecolor [yellow1] [yellow] \definecolor [yellow2] [r=.933333,g=.933333] \definecolor [yellow3] [r=.803922,g=.803922] \definecolor [yellow4] [r=.545098,g=.545098] \definecolor [gold1] [r=1,g=.843137] \definecolor [gold2] [r=.933333,g=.788235] \definecolor [gold3] [r=.803922,g=.678431] \definecolor [gold4] [r=.545098,g=.458824] \definecolor [goldenrod1] [r=1,g=.756863,b=.145098] \definecolor [goldenrod2] [r=.933333,g=.705882,b=.133333] \definecolor [goldenrod3] [r=.803922,g=.607843,b=.113725] \definecolor [goldenrod4] [r=.545098,g=.411765,b=.078431] \definecolor [darkgoldenrod1] [r=1,g=.72549,b=.058824] \definecolor [darkgoldenrod2] [r=.933333,g=.678431,b=.054902] \definecolor [darkgoldenrod3] [r=.803922,g=.584314,b=.047059] \definecolor [darkgoldenrod4] [r=.545098,g=.396078,b=.031373] \definecolor [rosybrown1] [r=1,g=.756863,b=.756863] \definecolor [rosybrown2] [r=.933333,g=.705882,b=.705882] \definecolor [rosybrown3] [r=.803922,g=.607843,b=.607843] \definecolor [rosybrown4] [r=.545098,g=.411765,b=.411765] \definecolor [indianred1] [r=1,g=.415686,b=.415686] \definecolor [indianred2] [r=.933333,g=.388235,b=.388235] \definecolor [indianred3] [r=.803922,g=.333333,b=.333333] \definecolor [indianred4] [r=.545098,g=.227451,b=.227451] \definecolor [sienna1] [r=1,g=.509804,b=.278431] \definecolor [sienna2] [r=.933333,g=.47451,b=.258824] \definecolor [sienna3] [r=.803922,g=.407843,b=.223529] \definecolor [sienna4] [r=.545098,g=.278431,b=.14902] \definecolor [burlywood1] [r=1,g=.827451,b=.607843] \definecolor [burlywood2] [r=.933333,g=.772549,b=.568627] \definecolor [burlywood3] [r=.803922,g=.666667,b=.490196] \definecolor [burlywood4] [r=.545098,g=.45098,b=.333333] \definecolor [wheat1] [r=1,g=.905882,b=.729412] \definecolor [wheat2] [r=.933333,g=.847059,b=.682353] \definecolor [wheat3] [r=.803922,g=.729412,b=.588235] \definecolor [wheat4] [r=.545098,g=.494118,b=.4] \definecolor [tan1] [r=1,g=.647059,b=.309804] \definecolor [tan2] [r=.933333,g=.603922,b=.286275] \definecolor [tan3] [r=.803922,g=.521569,b=.247059] \definecolor [tan4] [r=.545098,g=.352941,b=.168627] \definecolor [chocolate1] [r=1,g=.498039,b=.141176] \definecolor [chocolate2] [r=.933333,g=.462745,b=.129412] \definecolor [chocolate3] [r=.803922,g=.4,b=.113725] \definecolor [chocolate4] [r=.545098,g=.270588,b=.07451] \definecolor [firebrick1] [r=1,g=.188235,b=.188235] \definecolor [firebrick2] [r=.933333,g=.172549,b=.172549] \definecolor [firebrick3] [r=.803922,g=.14902,b=.14902] \definecolor [firebrick4] [r=.545098,g=.101961,b=.101961] \definecolor [brown1] [r=1,g=.25098,b=.25098] \definecolor [brown2] [r=.933333,g=.231373,b=.231373] \definecolor [brown3] [r=.803922,g=.2,b=.2] \definecolor [brown4] [r=.545098,g=.137255,b=.137255] \definecolor [salmon1] [r=1,g=.54902,b=.411765] \definecolor [salmon2] [r=.933333,g=.509804,b=.384314] \definecolor [salmon3] [r=.803922,g=.439216,b=.329412] \definecolor [salmon4] [r=.545098,g=.298039,b=.223529] \definecolor [lightsalmon1] [r=1,g=.627451,b=.478431] \definecolor [lightsalmon2] [r=.933333,g=.584314,b=.447059] \definecolor [lightsalmon3] [r=.803922,g=.505882,b=.384314] \definecolor [lightsalmon4] [r=.545098,g=.341176,b=.258824] \definecolor [orange1] [r=1,g=.647059] \definecolor [orange2] [r=.933333,g=.603922] \definecolor [orange3] [r=.803922,g=.521569] \definecolor [orange4] [r=.545098,g=.352941] \definecolor [darkorange1] [r=1,g=.498039] \definecolor [darkorange2] [r=.933333,g=.462745] \definecolor [darkorange3] [r=.803922,g=.4] \definecolor [darkorange4] [r=.545098,g=.270588] \definecolor [coral1] [r=1,g=.447059,b=.337255] \definecolor [coral2] [r=.933333,g=.415686,b=.313725] \definecolor [coral3] [r=.803922,g=.356863,b=.270588] \definecolor [coral4] [r=.545098,g=.243137,b=.184314] \definecolor [tomato1] [r=1,g=.388235,b=.278431] \definecolor [tomato2] [r=.933333,g=.360784,b=.258824] \definecolor [tomato3] [r=.803922,g=.309804,b=.223529] \definecolor [tomato4] [r=.545098,g=.211765,b=.14902] \definecolor [orangered1] [r=1,g=.270588] \definecolor [orangered2] [r=.933333,g=.25098] \definecolor [orangered3] [r=.803922,g=.215686] \definecolor [orangered4] [r=.545098,g=.145098] \definecolor [red1] [red] \definecolor [red2] [r=.933333] \definecolor [red3] [r=.803922] \definecolor [red4] [r=.545098] \definecolor [deeppink1] [r=1,g=.078431,b=.576471] \definecolor [deeppink2] [r=.933333,g=.070588,b=.537255] \definecolor [deeppink3] [r=.803922,g=.062745,b=.462745] \definecolor [deeppink4] [r=.545098,g=.039216,b=.313725] \definecolor [hotpink1] [r=1,g=.431373,b=.705882] \definecolor [hotpink2] [r=.933333,g=.415686,b=.654902] \definecolor [hotpink3] [r=.803922,g=.376471,b=.564706] \definecolor [hotpink4] [r=.545098,g=.227451,b=.384314] \definecolor [pink1] [r=1,g=.709804,b=.772549] \definecolor [pink2] [r=.933333,g=.662745,b=.721569] \definecolor [pink3] [r=.803922,g=.568627,b=.619608] \definecolor [pink4] [r=.545098,g=.388235,b=.423529] \definecolor [lightpink1] [r=1,g=.682353,b=.72549] \definecolor [lightpink2] [r=.933333,g=.635294,b=.678431] \definecolor [lightpink3] [r=.803922,g=.54902,b=.584314] \definecolor [lightpink4] [r=.545098,g=.372549,b=.396078] \definecolor [palevioletred1] [r=1,g=.509804,b=.670588] \definecolor [palevioletred2] [r=.933333,g=.47451,b=.623529] \definecolor [palevioletred3] [r=.803922,g=.407843,b=.537255] \definecolor [palevioletred4] [r=.545098,g=.278431,b=.364706] \definecolor [maroon1] [r=1,g=.203922,b=.701961] \definecolor [maroon2] [r=.933333,g=.188235,b=.654902] \definecolor [maroon3] [r=.803922,g=.160784,b=.564706] \definecolor [maroon4] [r=.545098,g=.109804,b=.384314] \definecolor [violetred1] [r=1,g=.243137,b=.588235] \definecolor [violetred2] [r=.933333,g=.227451,b=.54902] \definecolor [violetred3] [r=.803922,g=.196078,b=.470588] \definecolor [violetred4] [r=.545098,g=.133333,b=.321569] \definecolor [magenta1] [magenta] \definecolor [magenta2] [r=.933333,b=.933333] \definecolor [magenta3] [r=.803922,b=.803922] \definecolor [magenta4] [r=.545098,b=.545098] \definecolor [orchid1] [r=1,g=.513725,b=.980392] \definecolor [orchid2] [r=.933333,g=.478431,b=.913725] \definecolor [orchid3] [r=.803922,g=.411765,b=.788235] \definecolor [orchid4] [r=.545098,g=.278431,b=.537255] \definecolor [plum1] [r=1,g=.733333,b=1] \definecolor [plum2] [r=.933333,g=.682353,b=.933333] \definecolor [plum3] [r=.803922,g=.588235,b=.803922] \definecolor [plum4] [r=.545098,g=.4,b=.545098] \definecolor [mediumorchid1] [r=.878431,g=.4,b=1] \definecolor [mediumorchid2] [r=.819608,g=.372549,b=.933333] \definecolor [mediumorchid3] [r=.705882,g=.321569,b=.803922] \definecolor [mediumorchid4] [r=.478431,g=.215686,b=.545098] \definecolor [darkorchid1] [r=.74902,g=.243137,b=1] \definecolor [darkorchid2] [r=.698039,g=.227451,b=.933333] \definecolor [darkorchid3] [r=.603922,g=.196078,b=.803922] \definecolor [darkorchid4] [r=.407843,g=.133333,b=.545098] \definecolor [purple1] [r=.607843,g=.188235,b=1] \definecolor [purple2] [r=.568627,g=.172549,b=.933333] \definecolor [purple3] [r=.490196,g=.14902,b=.803922] \definecolor [purple4] [r=.333333,g=.101961,b=.545098] \definecolor [mediumpurple1] [r=.670588,g=.509804,b=1] \definecolor [mediumpurple2] [r=.623529,g=.47451,b=.933333] \definecolor [mediumpurple3] [r=.537255,g=.407843,b=.803922] \definecolor [mediumpurple4] [r=.364706,g=.278431,b=.545098] \definecolor [thistle1] [r=1,g=.882353,b=1] \definecolor [thistle2] [r=.933333,g=.823529,b=.933333] \definecolor [thistle3] [r=.803922,g=.709804,b=.803922] \definecolor [thistle4] [r=.545098,g=.482353,b=.545098] \definecolor [gray0] [black] \definecolor [gray1] [s=.01] \definecolor [gray2] [s=.02] \definecolor [gray3] [s=.03] \definecolor [gray4] [s=.04] \definecolor [gray5] [s=.05] \definecolor [gray6] [s=.06] \definecolor [gray7] [s=.07] \definecolor [gray8] [s=.08] \definecolor [gray9] [s=.09] \definecolor [gray10] [s=.1] \definecolor [gray11] [s=.11] \definecolor [gray12] [s=.12] \definecolor [gray13] [s=.13] \definecolor [gray14] [s=.14] \definecolor [gray15] [s=.15] \definecolor [gray16] [s=.16] \definecolor [gray17] [s=.17] \definecolor [gray18] [s=.18] \definecolor [gray19] [s=.19] \definecolor [gray20] [s=.2] \definecolor [gray21] [s=.21] \definecolor [gray22] [s=.22] \definecolor [gray23] [s=.23] \definecolor [gray24] [s=.24] \definecolor [gray25] [s=.25] \definecolor [gray26] [s=.26] \definecolor [gray27] [s=.27] \definecolor [gray28] [s=.28] \definecolor [gray29] [s=.29] \definecolor [gray30] [s=.3] \definecolor [gray31] [s=.31] \definecolor [gray32] [s=.32] \definecolor [gray33] [s=.33] \definecolor [gray34] [s=.34] \definecolor [gray35] [s=.35] \definecolor [gray36] [s=.36] \definecolor [gray37] [s=.37] \definecolor [gray38] [s=.38] \definecolor [gray39] [s=.39] \definecolor [gray40] [s=.4] \definecolor [gray41] [s=.41] \definecolor [gray42] [s=.42] \definecolor [gray43] [s=.43] \definecolor [gray44] [s=.44] \definecolor [gray45] [s=.45] \definecolor [gray46] [s=.46] \definecolor [gray47] [s=.47] \definecolor [gray48] [s=.48] \definecolor [gray49] [s=.49] \definecolor [gray50] [s=.5] \definecolor [gray51] [s=.51] \definecolor [gray52] [s=.52] \definecolor [gray53] [s=.53] \definecolor [gray54] [s=.54] \definecolor [gray55] [s=.55] \definecolor [gray56] [s=.56] \definecolor [gray57] [s=.57] \definecolor [gray58] [s=.58] \definecolor [gray59] [s=.59] \definecolor [gray60] [s=.6] \definecolor [gray61] [s=.61] \definecolor [gray62] [s=.62] \definecolor [gray63] [s=.63] \definecolor [gray64] [s=.64] \definecolor [gray65] [s=.65] \definecolor [gray66] [s=.66] \definecolor [gray67] [s=.67] \definecolor [gray68] [s=.68] \definecolor [gray69] [s=.69] \definecolor [gray70] [s=.7] \definecolor [gray71] [s=.71] \definecolor [gray72] [s=.72] \definecolor [gray73] [s=.73] \definecolor [gray74] [s=.74] \definecolor [gray75] [s=.75] \definecolor [gray76] [s=.76] \definecolor [gray77] [s=.77] \definecolor [gray78] [s=.78] \definecolor [gray79] [s=.79] \definecolor [gray80] [s=.8] \definecolor [gray81] [s=.81] \definecolor [gray82] [s=.82] \definecolor [gray83] [s=.83] \definecolor [gray84] [s=.84] \definecolor [gray85] [s=.85] \definecolor [gray86] [s=.86] \definecolor [gray87] [s=.87] \definecolor [gray88] [s=.88] \definecolor [gray89] [s=.89] \definecolor [gray90] [s=.9] \definecolor [gray91] [s=.91] \definecolor [gray92] [s=.92] \definecolor [gray93] [s=.93] \definecolor [gray94] [s=.94] \definecolor [gray95] [s=.95] \definecolor [gray96] [s=.96] \definecolor [gray97] [s=.97] \definecolor [gray98] [s=.98] \definecolor [gray99] [s=.99] \definecolor [gray100] [white] \definecolor [darkgray] [s=.662745] \definecolor [darkblue] [b=.545098] \definecolor [darkcyan] [g=.545098,b=.545098] \definecolor [darkmagenta] [r=.545098,b=.545098] \definecolor [darkred] [r=.545098] \definecolor [lightgreen] [r=.564706,g=.933333,b=.564706] context-modules-20240428/texmf-dist/tex/context/base/mkii/norm-tex.mkii0000644000175000017500000003703214536300610024731 0ustar hillehille%D \module %D [ file=norm-etx, %D version=2009.03.19, %D title=\CONTEXT\ Norm Macros, %D subtitle=\TEX, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Since \LUATEX\ can generate these lists internally it started %D to make sense to cleanup this \type {\normalstuff} for \MKII\ as %D well. The tables are generated with a \LUA\ script. % tex primitives % Beware, we already redefined \dump, \outer and \everyjob ! % \normal = \ % \normal- = \- % \normal/ = \/ \let \normalabove = \above \let \normalabovedisplayshortskip = \abovedisplayshortskip \let \normalabovedisplayskip = \abovedisplayskip \let \normalabovewithdelims = \abovewithdelims \let \normalaccent = \accent \let \normaladjdemerits = \adjdemerits \let \normaladvance = \advance \let \normalafterassignment = \afterassignment \let \normalaftergroup = \aftergroup \let \normalatop = \atop \let \normalatopwithdelims = \atopwithdelims \let \normalbadness = \badness \let \normalbaselineskip = \baselineskip \let \normalbatchmode = \batchmode \let \normalbegingroup = \begingroup \let \normalbelowdisplayshortskip = \belowdisplayshortskip \let \normalbelowdisplayskip = \belowdisplayskip \let \normalbinoppenalty = \binoppenalty \let \normalbotmark = \botmark \let \normalbox = \box \let \normalboxmaxdepth = \boxmaxdepth \let \normalbrokenpenalty = \brokenpenalty \let \normalcatcode = \catcode \let \normalchar = \char \let \normalchardef = \chardef \let \normalcleaders = \cleaders \let \normalclosein = \closein \let \normalcloseout = \closeout \let \normalclubpenalty = \clubpenalty \let \normalcopy = \copy \let \normalcount = \count \let \normalcountdef = \countdef \let \normalcr = \cr \let \normalcrcr = \crcr \let \normalcsname = \csname \let \normalday = \day \let \normaldeadcycles = \deadcycles \let \normaldef = \def \let \normaldefaulthyphenchar = \defaulthyphenchar \let \normaldefaultskewchar = \defaultskewchar \let \normaldelcode = \delcode \let \normaldelimiter = \delimiter \let \normaldelimiterfactor = \delimiterfactor \let \normaldelimitershortfall = \delimitershortfall \let \normaldimen = \dimen \let \normaldimendef = \dimendef \let \normaldirectlua = \directlua \let \normaldiscretionary = \discretionary \let \normaldisplayindent = \displayindent \let \normaldisplaylimits = \displaylimits \let \normaldisplaystyle = \displaystyle \let \normaldisplaywidowpenalty = \displaywidowpenalty \let \normaldisplaywidth = \displaywidth \let \normaldivide = \divide \let \normaldoublehyphendemerits = \doublehyphendemerits \let \normaldp = \dp % \normaldump = \dump \let \normaledef = \edef \let \normalelse = \else \let \normalemergencystretch = \emergencystretch \let \normalend = \end \let \normalendcsname = \endcsname \let \normalendgroup = \endgroup \let \normalendinput = \endinput \let \normalendlinechar = \endlinechar \let \normaleqno = \eqno \let \normalerrhelp = \errhelp \let \normalerrmessage = \errmessage \let \normalerrorcontextlines = \errorcontextlines \let \normalerrorstopmode = \errorstopmode \let \normalescapechar = \escapechar \let \normaleverycr = \everycr \let \normaleverydisplay = \everydisplay \let \normaleveryhbox = \everyhbox % \normaleveryjob = \everyjob \let \normaleverymath = \everymath \let \normaleverypar = \everypar \let \normaleveryvbox = \everyvbox \let \normalexhyphenchar = \exhyphenchar \let \normalexhyphenpenalty = \exhyphenpenalty \let \normalexpandafter = \expandafter \let \normalfam = \fam \let \normalfi = \fi \let \normalfinalhyphendemerits = \finalhyphendemerits \let \normalfirstmark = \firstmark \let \normalfloatingpenalty = \floatingpenalty \let \normalfont = \font \let \normalfontdimen = \fontdimen \let \normalfontname = \fontname \let \normalfuturelet = \futurelet \let \normalgdef = \gdef \let \normalglobal = \global \let \normalglobaldefs = \globaldefs \let \normalhalign = \halign \let \normalhangafter = \hangafter \let \normalhangindent = \hangindent \let \normalhbadness = \hbadness \let \normalhbox = \hbox \let \normalhfil = \hfil \let \normalhfill = \hfill \let \normalhfilneg = \hfilneg \let \normalhfuzz = \hfuzz \let \normalhoffset = \hoffset \let \normalholdinginserts = \holdinginserts \let \normalhrule = \hrule \let \normalhsize = \hsize \let \normalhskip = \hskip \let \normalhss = \hss \let \normalht = \ht \let \normalhyphenation = \hyphenation \let \normalhyphenchar = \hyphenchar \let \normalhyphenpenalty = \hyphenpenalty \let \normalif = \if \let \normalifcase = \ifcase \let \normalifcat = \ifcat \let \normalifdim = \ifdim \let \normalifeof = \ifeof \let \normaliffalse = \iffalse \let \normalifhbox = \ifhbox \let \normalifhmode = \ifhmode \let \normalifinner = \ifinner \let \normalifmmode = \ifmmode \let \normalifnum = \ifnum \let \normalifodd = \ifodd \let \normaliftrue = \iftrue \let \normalifvbox = \ifvbox \let \normalifvmode = \ifvmode \let \normalifvoid = \ifvoid \let \normalifx = \ifx \let \normalignorespaces = \ignorespaces \let \normalimmediate = \immediate \let \normalindent = \indent % \normalinput = \input \let \normalinputlineno = \inputlineno \let \normalinsert = \insert \let \normalinsertpenalties = \insertpenalties \let \normalinterlinepenalty = \interlinepenalty \let \normaljobname = \jobname \let \normalkern = \kern \let \normallanguage = \language \let \normallastbox = \lastbox \let \normallastkern = \lastkern \let \normallastpenalty = \lastpenalty \let \normallastskip = \lastskip \let \normallccode = \lccode \let \normalleaders = \leaders \let \normalleft = \left \let \normallefthyphenmin = \lefthyphenmin \let \normalleftskip = \leftskip \let \normalleqno = \leqno \let \normallet = \let \let \normallimits = \limits \let \normallinepenalty = \linepenalty \let \normallineskip = \lineskip \let \normallineskiplimit = \lineskiplimit \let \normallong = \long \let \normallooseness = \looseness \let \normallower = \lower \let \normallowercase = \lowercase \let \normalmag = \mag \let \normalmark = \mark \let \normalmathaccent = \mathaccent \let \normalmathbin = \mathbin \let \normalmathchar = \mathchar \let \normalmathchardef = \mathchardef \let \normalmathchoice = \mathchoice \let \normalmathclose = \mathclose \let \normalmathcode = \mathcode \let \normalmathinner = \mathinner \let \normalmathop = \mathop \let \normalmathopen = \mathopen \let \normalmathord = \mathord \let \normalmathpunct = \mathpunct \let \normalmathrel = \mathrel \let \normalmathsurround = \mathsurround \let \normalmaxdeadcycles = \maxdeadcycles \let \normalmaxdepth = \maxdepth \let \normalmeaning = \meaning \let \normalmedmuskip = \medmuskip \let \normalmessage = \message \let \normalmiddle = \middle \let \normalmkern = \mkern \let \normalmonth = \month \let \normalmoveleft = \moveleft \let \normalmoveright = \moveright \let \normalmskip = \mskip \let \normalmultiply = \multiply \let \normalmuskip = \muskip \let \normalmuskipdef = \muskipdef \let \normalnewlinechar = \newlinechar \let \normalnoalign = \noalign \let \normalnoboundary = \noboundary \let \normalnoexpand = \noexpand \let \normalnoindent = \noindent \let \normalnolimits = \nolimits \let \normalnonscript = \nonscript \let \normalnonstopmode = \nonstopmode \let \normalnulldelimiterspace = \nulldelimiterspace \let \normalnullfont = \nullfont \let \normalnumber = \number \let \normalomit = \omit \let \normalopenin = \openin \let \normalopenout = \openout \let \normalor = \or % \normalouter = \outer \let \normaloutput = \output \let \normaloutputpenalty = \outputpenalty \let \normalover = \over \let \normaloverfullrule = \overfullrule \let \normaloverline = \overline \let \normaloverwithdelims = \overwithdelims \let \normalpagedepth = \pagedepth \let \normalpagefilllstretch = \pagefilllstretch \let \normalpagefillstretch = \pagefillstretch \let \normalpagefilstretch = \pagefilstretch \let \normalpagegoal = \pagegoal \let \normalpageshrink = \pageshrink \let \normalpagestretch = \pagestretch \let \normalpagetotal = \pagetotal \let \normalpar = \par \let \normalparfillskip = \parfillskip \let \normalparindent = \parindent \let \normalparshape = \parshape \let \normalparskip = \parskip \let \normalpatterns = \patterns \let \normalpausing = \pausing \let \normalpenalty = \penalty \let \normalpostdisplaypenalty = \postdisplaypenalty \let \normalpredisplaypenalty = \predisplaypenalty \let \normalpredisplaysize = \predisplaysize \let \normalpretolerance = \pretolerance \let \normalprevdepth = \prevdepth \let \normalprevgraf = \prevgraf \let \normalradical = \radical \let \normalraise = \raise \let \normalread = \read \let \normalrelax = \relax \let \normalrelpenalty = \relpenalty \let \normalright = \right \let \normalrighthyphenmin = \righthyphenmin \let \normalrightskip = \rightskip \let \normalromannumeral = \romannumeral \let \normalscriptfont = \scriptfont \let \normalscriptscriptfont = \scriptscriptfont \let \normalscriptscriptstyle = \scriptscriptstyle \let \normalscriptspace = \scriptspace \let \normalscriptstyle = \scriptstyle \let \normalscrollmode = \scrollmode \let \normalsetbox = \setbox \let \normalsetlanguage = \setlanguage \let \normalsfcode = \sfcode \let \normalshipout = \shipout \let \normalshow = \show \let \normalshowbox = \showbox \let \normalshowboxbreadth = \showboxbreadth \let \normalshowboxdepth = \showboxdepth \let \normalshowlists = \showlists \let \normalshowthe = \showthe \let \normalskewchar = \skewchar \let \normalskip = \skip \let \normalskipdef = \skipdef \let \normalspacefactor = \spacefactor \let \normalspaceskip = \spaceskip \let \normalspan = \span \let \normalspecial = \special \let \normalsplitbotmark = \splitbotmark \let \normalsplitfirstmark = \splitfirstmark \let \normalsplitmaxdepth = \splitmaxdepth \let \normalsplittopskip = \splittopskip \let \normalstring = \string \let \normaltabskip = \tabskip \let \normaltextfont = \textfont \let \normaltextstyle = \textstyle \let \normalthe = \the \let \normalthickmuskip = \thickmuskip \let \normalthinmuskip = \thinmuskip \let \normaltime = \time \let \normaltoks = \toks \let \normaltoksdef = \toksdef \let \normaltolerance = \tolerance \let \normaltopmark = \topmark \let \normaltopskip = \topskip \let \normaltracingcommands = \tracingcommands \let \normaltracinglostchars = \tracinglostchars \let \normaltracingmacros = \tracingmacros \let \normaltracingonline = \tracingonline \let \normaltracingoutput = \tracingoutput \let \normaltracingpages = \tracingpages \let \normaltracingparagraphs = \tracingparagraphs \let \normaltracingrestores = \tracingrestores \let \normaltracingstats = \tracingstats \let \normaluccode = \uccode \let \normaluchyph = \uchyph \let \normalunderline = \underline \let \normalunhbox = \unhbox \let \normalunhcopy = \unhcopy \let \normalunkern = \unkern \let \normalunpenalty = \unpenalty \let \normalunskip = \unskip \let \normalunvbox = \unvbox \let \normalunvcopy = \unvcopy \let \normaluppercase = \uppercase \let \normalvadjust = \vadjust \let \normalvalign = \valign \let \normalvbadness = \vbadness \let \normalvbox = \vbox \let \normalvcenter = \vcenter \let \normalvfil = \vfil \let \normalvfill = \vfill \let \normalvfilneg = \vfilneg \let \normalvfuzz = \vfuzz \let \normalvoffset = \voffset \let \normalvrule = \vrule \let \normalvsize = \vsize \let \normalvskip = \vskip \let \normalvsplit = \vsplit \let \normalvss = \vss \let \normalvtop = \vtop \let \normalwd = \wd \let \normalwidowpenalty = \widowpenalty \let \normalwrite = \write \let \normalxdef = \xdef \let \normalxleaders = \xleaders \let \normalxspaceskip = \xspaceskip \let \normalyear = \year \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-utf.mkii0000644000175000017500000000262514536300610024702 0ustar hillehille%D \module %D [ file=regi-utf, %D version=2002.12.03, %D title=\CONTEXT\ Encoding Macros, %D subtitle=UTF-8, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \ifnum\texengine>\pdftexengine \expandafter \endinput \fi %D This regime activates the characters $>192$ and let them %D handle \UTF\ encoded content streams. This regime runs on %D top of the \type {unic} modules. We use an active inspector %D instead of a active token handler because here we don't want %D the \type {{}}. We only support this in \ETEX. % ÀÁÂÃÄÅàáâãäå % ÆÇæç % ÈÉÊËèéêë % ÌÍÎÏÞìíîïþ % Ðð % Ññ % ÒÓÔÕÖòóôõö % Øø % ÙÚÛÜùúûü % Ýýÿ % ß % Ţţ \unprotect \startregime[utf] \dostepwiserecurse{192}{223}{1} {\expanded{\defineactiveinspector{\recurselevel} {\noexpand\utftwouniglph {\recurselevel}}}} % space delimited \dostepwiserecurse{224}{239}{1} {\expanded{\defineactiveinspector{\recurselevel} {\noexpand\utfthreeuniglph{\recurselevel}}}} % space delimited \dostepwiserecurse{240}{247}{1} {\expanded{\defineactiveinspector{\recurselevel} {\noexpand\utffouruniglph {\recurselevel}}}} % space delimited \stopregime \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-err.mkii0000644000175000017500000000100114536300610024674 0ustar hillehille%D \module %D [ file=cont-err, %D version=2003.08.12, %D title=\CONTEXT\ System Files, %D subtitle=Just A warning, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \writestatus\m!systems{no file 'cont-sys.tex', using 'cont-sys.rme' instead} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mxo.mkii0000644000175000017500000000102414536300610024714 0ustar hillehille\defineMMLsynonym angle ang \defineMMLsynonym backprime bprime \defineMMLsynonym circledS oS \defineMMLsynonym complement comp \defineMMLsynonym emptyset empty \defineMMLsynonym hbar plank \defineMMLsynonym hslash plankv \defineMMLsynonym Im image \defineMMLsynonym measuredangle angmsd \defineMMLsynonym nexists nexist \defineMMLsynonym NotExists nexist \defineMMLsynonym Re real \defineMMLsynonym varnothing emptyv \defineMMLsynonym wp weierp context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-frq.mkii0000644000175000017500000001444114536300610024666 0ustar hillehille%D \module %D [ file=lang-frq, %D version=2004.01.15, %D title=\CONTEXT\ Language Macros, %D subtitle=Frequency Tables, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Frequency Tables} \unprotect \ifx\s!en\undefined \def\v!en{en} \fi \ifx\??lg\undefined \def\??lg{@@lg} \fi %M \usemodule[layout] %D \macros %D {charwidthmethod} %D %D This module implements a method for determining the width of an %D average character in a language. It uses the dimensions of the %D current fonts. %D %D \def\ShwChrWd#1#2#3% %D {\chardef\charwidthmethod#1\relax %D \mainlanguage[#2#3]\the\dimexpr(\averagecharwidth)} %D %D \starttabulate[|c|c|c|c|c|c|] %D \HL %D \NC \NC\bf0=amount\NC\bf1=.5em\NC2=ex\NC\bf3=frequency\NC\bf4=list\NC\NR %D \HL %D \NC\bf en\NC\ShwChrWd0en\NC\ShwChrWd1en\NC\ShwChrWd2en\NC\ShwChrWd3en\NC\ShwChrWd4en\NC\NR %D \NC\bf nl\NC\ShwChrWd0nl\NC\ShwChrWd1nl\NC\ShwChrWd2nl\NC\ShwChrWd3nl\NC\ShwChrWd4nl\NC\NR %D \NC\bf de\NC\ShwChrWd0de\NC\ShwChrWd1de\NC\ShwChrWd2de\NC\ShwChrWd3de\NC\ShwChrWd4de\NC\NR %D \HL %D \stoptabulate %D %D Method~1 ignores the widths and assumes that each character has a %D width of .5em, which is true for most monospaced fonts. Method~2 %D takes the x as starting point, and assumes that it's height kind of %D matches its width. Method~3 is the best one, and determines the %D average width based on the language specific character table. %D Method~4 is a mixture between the first two methods: character %D specific widths applied to an equal distribution. Method~0 reports %D the total count, which normally is~100. \chardef\charwidthmethod=3 % 0=amount 1=em 2=ex 3=frequency 4=flattened >4=ex %D \macros %D {charwidthlanguage} %D %D The language used for the calculations is defined as: \def\charwidthlanguage{\currentmainlanguage} %D \macros %D {charfreq} %D %D This method comes into action in the following macro: \def\charfreq#1 #2 % character fraction {+(\ifcase\charwidthmethod #2\dimexpr100\onepoint\relax \or #2\dimexpr.5em\relax % \emwidth/2 \or #2\dimexpr\exheight\relax \or #2\fontcharwd\font`#1% \or \dimexpr100\fontcharwd\font`#1/\charactertsize\charwidthlanguage\relax % ugly hack \else #2\dimexpr\exheight\relax \fi)} %D \macros %D {startcharactertable} %D %D A frequency table is defined with the following macro. The \type %D {charfreq} macro is used in this table. \def\startcharactertable[#1]#2\stopcharactertable % \dimexpr has fuzzy lookahead {\startnointerference \long\setgvalue{\??lg:w:#1}{#2}% the width vector \scratchcounter\zerocount \def\charfreq##1 ##2 {\advance\scratchcounter\plusone} #2% \long\setxvalue{\??lg:c:#1}{\the\scratchcounter}% the character count \stopnointerference} %D \macros %D {charactertable,charactertsize} %D %D The table content as well as the number of entries can be fetched with %D the following two macros. The architecture of the table and calling %D macro permits a fully expandable application. \def\charactertable#1% {\csname\??lg:w:\ifcsname\??lg:w:#1\endcsname#1\else\s!en\fi\endcsname} \def\charactertsize#1% {\csname\??lg:c:\ifcsname\??lg:c:#1\endcsname#1\else\s!en\fi\endcsname} %D Although it is of hardly any use, you can inherit a character table: %D %D \starttyping %D \startcharactertable[cz] \charactertable{en} \stopcharactertable %D \stoptyping %D %D We define a default vector with 100\% x's. \startcharactertable[en] 100 x \stopcharactertable % kind of default %D \macros %D {averagecharwidth} %D %D This macro reports the average width for the current main %D language (\the \dimexpr (\averagecharwidth)). \def\averagecharwidth{\dimexpr((\zeropoint\charactertable\charwidthlanguage)/100)} \def\showcharfreq {\hbox\bgroup \charwidthlanguage:% \dostepwiserecurse041% {\chardef\charwidthmethod\recurselevel\relax \enspace\recurselevel/\the\dimexpr(\averagecharwidth)}% \egroup} %D Just for fun, we show a few frequency tables as graphic (\in {figure} %D [fig:charfreq]). %D %D \startbuffer %D \definepalet [charfreq] [en=darkred, nl=darkgreen, de=darkblue] %D %D \def\charfreq#1 #2 % %D {\startMPdrawing %D interim linejoin := butt ; %D a := ASCII "#1" ; %D if (a >= (ASCII "a")) and (a <= (ASCII "z")) : %D draw ((0,#2*.25cm)--origin--(0,#2*.5cm)) %D shifted (a*4mm+o,0) %D withpen pencircle scaled .5mm %D withcolor c; %D fi ; %D \stopMPdrawing} %D %D \resetMPdrawing %D \startMPdrawing %D numeric a, o ; a := o := 0 ; %D color c ; c := .5white ; %D string s ; s := "" ; %D \stopMPdrawing %D %D \startMPdrawing o := 0mm ; c := \MPcolor{charfreq:en} ; \stopMPdrawing %D \charactertable{en} %D %D \startMPdrawing o := 1mm ; c := \MPcolor{charfreq:nl} ; \stopMPdrawing %D \charactertable{nl} %D %D \startMPdrawing o := 2mm ; c := \MPcolor{charfreq:de} ; \stopMPdrawing %D \charactertable{de} %D %D \startMPdrawing %D for a := ASCII "a" upto ASCII "z" : %D draw textext.bot("\strut\tttf " & char a) shifted (a*4mm+1mm,-1mm) ; %D endfor ; %D \stopMPdrawing %D %D \MPdrawingdonetrue \getMPdrawing \resetMPdrawing %D \stopbuffer %D %D \placefigure %D [here] %D [fig:charfreq] %D {The character distributions for English, Dutch and German.} %D {\getbuffer} %D %D A few samples of usage of this mechanism are shown below: %D %D \startbuffer %D {\mainlanguage[en]\hsize65\averagecharwidth\mainlanguage[en]\input ward \blank} %D {\mainlanguage[nl]\hsize65\averagecharwidth\mainlanguage[en]\input ward \blank} %D {\mainlanguage[de]\hsize65\averagecharwidth\mainlanguage[en]\input ward \blank} %D \stopbuffer %D %D \typebuffer \getbuffer %D %D Although the widthts differ, the consequenes for breaking the paragraph %D into lines are minimal. %D \macros %D {freezeaveragecharacterwidth} %D %D This macro can be used to make sure that the width does not change during a %D page break when another font is used. \let\normalaveragecharacterwidth\averagecharacterwidth \def\freezeaveragecharacterwidth % global {\xdef\averagecharacterwidth{\dimexpr(\the\normalaveragecharacterwidth)}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-8859-2.mkii0000644000175000017500000002657114536300610024666 0ustar hillehille%D \module %D [ file=regi-8859-2, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=iso-8859-2 (East European), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for iso-8859-2/Latin2 input encoding (regime) for %D Central European languages, see also cp1250. %D %D Usage: \type{\enableregime[8859-2]} (see \type {regi-syn} for %D alternatives calls). \startregime[8859-2] \defineactivetoken 128 {\unknownchar} % 0080 \defineactivetoken 129 {\unknownchar} % 0081 \defineactivetoken 130 {\unknownchar} % 0082 \defineactivetoken 131 {\unknownchar} % 0083 \defineactivetoken 132 {\unknownchar} % 0084 \defineactivetoken 133 {\unknownchar} % 0085 \defineactivetoken 134 {\unknownchar} % 0086 \defineactivetoken 135 {\unknownchar} % 0087 \defineactivetoken 136 {\unknownchar} % 0088 \defineactivetoken 137 {\unknownchar} % 0089 \defineactivetoken 138 {\unknownchar} % 008A \defineactivetoken 139 {\unknownchar} % 008B \defineactivetoken 140 {\unknownchar} % 008C \defineactivetoken 141 {\unknownchar} % 008D \defineactivetoken 142 {\unknownchar} % 008E \defineactivetoken 143 {\unknownchar} % 008F \defineactivetoken 144 {\unknownchar} % 0090 \defineactivetoken 145 {\unknownchar} % 0091 \defineactivetoken 146 {\unknownchar} % 0092 \defineactivetoken 147 {\unknownchar} % 0093 \defineactivetoken 148 {\unknownchar} % 0094 \defineactivetoken 149 {\unknownchar} % 0095 \defineactivetoken 150 {\unknownchar} % 0096 \defineactivetoken 151 {\unknownchar} % 0097 \defineactivetoken 152 {\unknownchar} % 0098 \defineactivetoken 153 {\unknownchar} % 0099 \defineactivetoken 154 {\unknownchar} % 009A \defineactivetoken 155 {\unknownchar} % 009B \defineactivetoken 156 {\unknownchar} % 009C \defineactivetoken 157 {\unknownchar} % 009D \defineactivetoken 158 {\unknownchar} % 009E \defineactivetoken 159 {\unknownchar} % 009F \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK \defineactivetoken 162 {\textbreve} % 02D8 BREVE \defineactivetoken 163 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE \defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN \defineactivetoken 165 {\Lcaron} % 013D LATIN CAPITAL LETTER L WITH CARON \defineactivetoken 166 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS \defineactivetoken 169 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON \defineactivetoken 170 {\Scedilla} % 015E LATIN CAPITAL LETTER S WITH CEDILLA \defineactivetoken 171 {\Tcaron} % 0164 LATIN CAPITAL LETTER T WITH CARON \defineactivetoken 172 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON \defineactivetoken 175 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK \defineactivetoken 178 {\textogonek} % 02DB OGONEK \defineactivetoken 179 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE \defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT \defineactivetoken 181 {\lcaron} % 013E LATIN SMALL LETTER L WITH CARON \defineactivetoken 182 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE \defineactivetoken 183 {\textcaron} % 02C7 CARON \defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA \defineactivetoken 185 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON \defineactivetoken 186 {\scedilla} % 015F LATIN SMALL LETTER S WITH CEDILLA \defineactivetoken 187 {\tcaron} % 0165 LATIN SMALL LETTER T WITH CARON \defineactivetoken 188 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE \defineactivetoken 189 {\texthungarumlaut} % 02DD DOUBLE ACUTE ACCENT \defineactivetoken 190 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON \defineactivetoken 191 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE \defineactivetoken 192 {\Racute} % 0154 LATIN CAPITAL LETTER R WITH ACUTE \defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE \defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX \defineactivetoken 195 {\Abreve} % 0102 LATIN CAPITAL LETTER A WITH BREVE \defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS \defineactivetoken 197 {\Lacute} % 0139 LATIN CAPITAL LETTER L WITH ACUTE \defineactivetoken 198 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE \defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA \defineactivetoken 200 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON \defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE \defineactivetoken 202 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK \defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS \defineactivetoken 204 {\Ecaron} % 011A LATIN CAPITAL LETTER E WITH CARON \defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE \defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX \defineactivetoken 207 {\Dcaron} % 010E LATIN CAPITAL LETTER D WITH CARON \defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE \defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH ACUTE \defineactivetoken 210 {\Ncaron} % 0147 LATIN CAPITAL LETTER N WITH CARON \defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE \defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX \defineactivetoken 213 {\Ohungarumlaut} % 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE \defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS \defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN \defineactivetoken 216 {\Rcaron} % 0158 LATIN CAPITAL LETTER R WITH CARON \defineactivetoken 217 {\Uring} % 016E LATIN CAPITAL LETTER U WITH RING ABOVE \defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE \defineactivetoken 219 {\Uhungarumlaut} % 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE \defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS \defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE \defineactivetoken 222 {\Tcedilla} % 0162 LATIN CAPITAL LETTER T WITH CEDILLA \defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S \defineactivetoken 224 {\racute} % 0155 LATIN SMALL LETTER R WITH ACUTE \defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE \defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX \defineactivetoken 227 {\abreve} % 0103 LATIN SMALL LETTER A WITH BREVE \defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS \defineactivetoken 229 {\lacute} % 013A LATIN SMALL LETTER L WITH ACUTE \defineactivetoken 230 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE \defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA \defineactivetoken 232 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON \defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE \defineactivetoken 234 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK \defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS \defineactivetoken 236 {\ecaron} % 011B LATIN SMALL LETTER E WITH CARON \defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE \defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX \defineactivetoken 239 {\dcaron} % 010F LATIN SMALL LETTER D WITH CARON \defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE \defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE \defineactivetoken 242 {\ncaron} % 0148 LATIN SMALL LETTER N WITH CARON \defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE \defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX \defineactivetoken 245 {\ohungarumlaut} % 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE \defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS \defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN \defineactivetoken 248 {\rcaron} % 0159 LATIN SMALL LETTER R WITH CARON \defineactivetoken 249 {\uring} % 016F LATIN SMALL LETTER U WITH RING ABOVE \defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE \defineactivetoken 251 {\uhungarumlaut} % 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE \defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS \defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE \defineactivetoken 254 {\tcedilla} % 0163 LATIN SMALL LETTER T WITH CEDILLA \defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/tabl-ntb.mkii0000644000175000017500000015324114536300610024664 0ustar hillehille%D \module %D [ file=core-ntb, %D version=2000.04.18, %D title=\CONTEXT\ Table Macros, %D subtitle=Natural Tables, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This is an unfinished, preliminary module. At least two %D runs are needed to get the table fixed. Ugly code. % todo: special parsetb for argless variant % todo: protect \tbl... % todo: tblnx also count % todo: get rid of recurse % todo: fast if % todo: avoid halign (just do it manual) and thereby globals % optie=rek beschrijven \writestatus{loading}{ConTeXt Table Macros / Natural Tables} %D As always, this is the nth version. Much time went in %D trying to speed up the many cell calculations, some %D optimizations were rejected in order not to complicate this %D module too much (and in order to prevail extensibility). % shapebox fails here in mkii % % \setupcolors[state=start] % \bTABLE % \bTR [align=middle]\bTH Range\eTH{}\bTH Value\eTH{}\eTR % \bTR \bTD \type{<} 12\eTD{}\bTD 3\eTD{}\eTR % \bTR \bTD 12--16\eTD{}\bTD 2\eTD{}\eTR % \bTR \bTD \type{>}16\eTD{}\bTD 1\eTD{}\eTR % \eTABLE % \starttext % \placefigure[left]{}{} % \startlinecorrection \dontleavehmode \bTABLE % \bTR \bTD oeps \eTD \eTR % \eTABLE % \stoplinecorrection % \placefigure[right]{}{} % \startlinecorrection \dontleavehmode \bTABLE % \bTR \bTD oeps \eTD \eTR % \eTABLE % \stoplinecorrection % \stoptext %D To Do: %D %D \starttyping %D splitsen = ja | herhaal => als nofTH>1 then ja als herhaal %D \stoptyping %D To Do: %D %D \starttyping %D break over pagina %D kop herhalen %D reset settings %D %D \setupTABLE [c|column|x] [nx|odd|even|first|last][a=b] %D \setupTABLE [r|row |y] [nx|odd|even|first|last][a=b] %D \setupTABLE [nx|odd|even|first|last][ny|odd|even|first|last][a=b] %D \setupTABLE [nx|odd|even|first|last] [a=b] %D \setupTABLE [a=b] %D %D \bTH \eTH %D \stoptyping % the section setup does not work yet, data needs to be stored, % i.e.each row should know if it's a head/body/foot, and there % should be \setupTABLE[head]... and alike \unprotect %D A simple way to force equal line spacing is to say: %D %D \starttyping %D \def\bTBLCELL{\begstrut} %D \def\eTBLCELL{\endstrut} %D \stoptyping %D However, the next alternative also takes care of preceding %D and following white space. % \def\bTBLCELL % why not \doinhibitblank % {\inhibitblank\doconvertfont\tbltblstyle\empty\everypar{\delayedbegstrut}} % \def\eTBLCELL % {\ifhmode % \delayedendstrut % \par % added 13/4/2006 % \else % \par % \ifdim\prevdepth<\zeropoint % =-1000pt ? % \vskip-\strutdp % \else % \removebottomthings % \fi % \fi} %D \startbuffer %D \bTABLE[left={(},right={)},top=\startnarrower,bottom=\stopnarrower] %D \bTR \bTD something \eTD \eTR %D \eTABLE %D \stopbuffer %D %D \typebuffer \getbuffer \def\bTBLCELL % why not \doinhibitblank {\inhibitblank \doconvertfont\tbltblstyle\empty \everypar{\tbltblleft\delayedbegstrut}} \def\eTBLCELL {\ifhmode \delayedendstrut \tbltblright \par % added 13/4/2006 \else % not sure yet:\tbltblright \par \ifdim\prevdepth<\zeropoint % =-1000pt ? \vskip-\strutdp \else \removebottomthings \fi \fi} \newcount\currenttbl \def\@@tbl{tbl} \def\tblcell{1} \def\tblnone{2} \def\@@tblprefix{tbl:} \let\@@rawtblprefix\@@tblprefix %D This should be done more efficient: soon % \let as well as \expandafter\edef's \newcounter\TBLlevel \def\@@tblprefix{\@@tbl:\ifnum\TBLlevel>1 :\TBLlevel:\fi} % \def\tblsetprefix % not yet used, figure out when .. may interfere with setup % {\edef\@@tblprefix{\@@tbl:\ifnum\TBLlevel>1 :\TBLlevel:\fi}} \def\settblnob#1{\expandafter\let\csname\@@tblprefix\number#1:b\endcsname\plusone} \def\gettblnob#1{\ifcsname\@@tblprefix\number#1:b\endcsname\plusone\else\zerocount\fi} \def\settbltag#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:s\endcsname} \def\settblcol#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:c\endcsname} \def\settblrow#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:r\endcsname} \def\lettbltag#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:s\endcsname} \def\lettblcol#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:c\endcsname} \def\lettblrow#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:r\endcsname} \def\settblwd#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:wd\endcsname} % global ! \def\settblht#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:ht\endcsname} % global ! \def\lettblwd#1#2{\global\expandafter\let\csname\@@tblprefix\number#1:\number#2:wd\endcsname} % global ! \def\lettblht#1#2{\global\expandafter\let\csname\@@tblprefix\number#1:\number#2:ht\endcsname} % global ! \def\gettbltag#1#2{\csname\@@tblprefix\number#1:\number#2:s\endcsname} \def\gettblcol#1#2{\csname\@@tblprefix\number#1:\number#2:c\endcsname} \def\gettblrow#1#2{\csname\@@tblprefix\number#1:\number#2:r\endcsname} \def\gettblwd #1#2{\csname\@@tblprefix\number#1:\number#2:wd\endcsname} \def\gettblht #1#2{\csname\@@tblprefix\number#1:\number#2:ht\endcsname} \def\settblwid#1{\expandafter\xdef\csname\@@tblprefix\number#1:w\endcsname} % {#2} global ! \def\settblhei#1{\expandafter\xdef\csname\@@tblprefix\number#1:h\endcsname} % {#2} global ! \def\settbldis#1{\expandafter\xdef\csname\@@tblprefix\number#1:d\endcsname} % {#2} global ! \def\settblaut#1{\expandafter\xdef\csname\@@tblprefix\number#1:a\endcsname} % {#2} global ! \def\lettblwid#1{\global\expandafter\let\csname\@@tblprefix\number#1:w\endcsname} % {#2} global ! \def\lettblhei#1{\global\expandafter\let\csname\@@tblprefix\number#1:h\endcsname} % {#2} global ! \def\lettbldis#1{\global\expandafter\let\csname\@@tblprefix\number#1:d\endcsname} % {#2} global ! \def\lettblaut#1{\global\expandafter\let\csname\@@tblprefix\number#1:a\endcsname} % {#2} global ! \def\gettblwid#1{\ifcsname\@@tblprefix\number#1:w\endcsname\csname\@@tblprefix\number#1:w\endcsname\else\zeropoint\fi} \def\gettblhei#1{\ifcsname\@@tblprefix\number#1:h\endcsname\csname\@@tblprefix\number#1:h\endcsname\else\zeropoint\fi} \def\gettbldis#1{\ifcsname\@@tblprefix\number#1:d\endcsname\csname\@@tblprefix\number#1:d\endcsname\else\zeropoint\fi} \def\gettblaut#1{\csname \@@tblprefix\number#1:a\endcsname} \def\doiftbltag #1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi} \def\doifnottbltag #1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\gobbleoneargument \else\@EA\firstofoneargument \fi} \def\doifelsetbltag#1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi} \def\doiftblrow #1#2{\ifcsname\@@tblprefix\number#1:\number#2:r\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi} \def\doiftblcol #1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi} \def\doifnottblcol #1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\@EA\gobbleoneargument \else\@EA\firstofoneargument \fi} \def\tbltagstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\zerocount\else\plusone\fi} \def\tblrowstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:r\endcsname\zerocount\else\plusone\fi} \def\tblcolstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\zerocount\else\plusone\fi} \def\settblspn #1{\expandafter\let\csname\@@tblprefix\number#1:s\endcsname \!!plusone} \def\doifelsetblspn#1{\doifelse {\csname\@@tblprefix\number#1:s\endcsname}\!!plusone} % \def\doifelsetblspn#1{\@EA\ifx\csname\@@tblprefix\number#1:s\endcsname\plusone\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi} \def\settblspn #1{\setvalue {\@@tblprefix\number#1:s}{1}} \def\doifelsetblspn#1{\doifelsevalue{\@@tblprefix\number#1:s}{1}} % \long\def\settbltxt#1#2#3% % {\setxvalue{\@@tblprefix#1:#2:l}{\TBLlevel}% % \long\setvalue{\@@tblprefix#1:#2:t}% % {\doifdefined{\@@tblprefix#1:#2:l} % {\edef\TBLlevel{\getvalue{\@@tblprefix#1:#2:l}}}% % #3}} \long\def\settbltxt#1#2#3% {\long\@EA\def\csname\@@tblprefix\number#1:\number#2:t\@EA\endcsname\@EA{\@EA\def\@EA\TBLlevel\@EA{\TBLlevel}#3}} \def\gettbltxt#1#2% {\csname\@@tblprefix\number#1:\number#2:t\endcsname} \newtoks\tbltoks \newtoks\tblrowtoks \let\pushTBLparameters\relax \let\popTBLparameters \relax \newif\ifsqueezeTBLspan \squeezeTBLspantrue % spans one column cell over multi column par cells \newif\ifautosqueezeTBLspan \autosqueezeTBLspantrue % unless explicit widths are given \newif\ifautoTBLspread \autoTBLspreadfalse \newif\ifautoTBLhsize \autoTBLhsizetrue \newif\ifautoTBLrowspan \autoTBLrowspantrue \newif\ifautoTBLemptycell \autoTBLemptycelltrue \newif\ifautoTBLcheckwidth \autoTBLcheckwidthtrue \newif\ifappendTBLsetups \appendTBLsetupstrue \newif\ifenableTBLbreak \enableTBLbreakfalse \newif\ifmultipleTBLheads \multipleTBLheadsfalse \newif\iftraceTABLE \traceTABLEfalse \def\noftblheadlines{0} \def\noftblnextlines{0} \def\noftblhdnxlines{0} \presetlocalframed[\@@tbl\@@tbl] \long\def\handleTBLcell#1#2[#3]{} \long\def\bTC#1\eTC{\bTD#1\eTD} \long\def\bTX#1\eTX{\bTD#1\eTD} \long\def\bTY#1\eTY{\bTR#1\eTR} \let\getTABLEparameters\getparameters \unexpanded\def\setupTABLE {\dotripleempty\dosetupTABLE} \def\dosetupTABLE[#1][#2][#3]% {\ifthirdargument \processaction [#1] [ \v!row=>{\dosetupTABLExy[\c!y][#2][#3]},% \v!column=>{\dosetupTABLExy[\c!x][#2][#3]},% r=>{\dosetupTABLExy[\c!y][#2][#3]},% c=>{\dosetupTABLExy[\c!x][#2][#3]},% y=>{\dosetupTABLExy[\c!y][#2][#3]},% x=>{\dosetupTABLExy[\c!x][#2][#3]},% \v!start=>{\dosetupTABLExy[#1][#2][#3]},% \v!header=>{\dosetupTABLExy[#1][#2][#3]},% \s!unknown=>{\dosetupTABLEzz[#1][#2][#3]}]% \else\ifsecondargument \processaction [#1] [ \v!row=>{\dosetupTABLExy[\c!y][\v!each][#2]},% \v!column=>{\dosetupTABLExy[\c!x][\v!each][#2]},% r=>{\dosetupTABLExy[\c!y][\v!each][#2]},% c=>{\dosetupTABLExy[\c!x][\v!each][#2]},% y=>{\dosetupTABLExy[\c!y][\v!each][#2]},% x=>{\dosetupTABLExy[\c!x][\v!each][#2]},% \v!start=>{\dosetupTABLExy[#1][\v!each][#2]},% \v!header=>{\dosetupTABLExy[#1][\v!each][#2]},% \s!unknown=>{\dosetupTABLEzz[\c!x][#1][#2]}]% \else \getparameters[\@@tbl\@@tbl][#1]% \fi\fi} \def\dosetupTABLExy[#1][#2][#3]% {\def\dodosetupTABLE##1{\setTABLEparameters[#1##1][#3]}% \processcommalist[#2]\dodosetupTABLE} \def\dosetupTABLEzz[#1][#2][#3]% {\def\dodosetupTABLE##1% {\def\dododosetupTABLE####1{\setTABLEparameters[\c!x##1\c!y####1][#3]}% \processcommalist[#2]\dododosetupTABLE}% \processcommalist[#1]\dodosetupTABLE} \def\nopTABLEparameters[#1][#2]% {\letvalue{\@@tblprefix#1}\empty} \def\setTABLEparameters[#1][#2]% {\pushTBLparameters \ifappendTBLsetups \doifdefinedelse{\@@tblprefix#1} {\def\getTABLEparameters[##1][##2]% {\setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][##2,#2]}}% \getvalue{\@@tblprefix#1}% \let\getTABLEparameters\getparameters} {\setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][#2]}}% \else \setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][#2]}% \fi \popTBLparameters} \let\setupTBLsection\relax % % \setupTABLE [y] [first][background=color,backgroundcolor=blue,frame=off,bottomframe=on,topframe=on,framecolor=white] % \setupTABLE [first][first][backgroundcorner=2,corner=10,frame=on] % \setupTABLE [last] [first][backgroundcorner=4,corner=12,frame=on] % % \setupTABLE [row] [each] [background=color,backgroundcolor=blue,frame=on,framecolor=white] % \setupTABLE [first][2] [corner=8] % \setupTABLE [last] [2] [corner=5] % \setupTABLE [first][last] [corner=7] % \setupTABLE [last] [last] [corner=6] % % \startTEXpage % \bTABLE[frame=off,align=middle] % \bTR \bTD one \eTD \bTD two \eTD \bTD three \eTD \eTR % \bTR \bTD first \eTD \bTD second \eTD \bTD third \eTD \eTR % \bTR \bTD alpha \eTD \bTD beta \eTD \bTD gamma \eTD \eTR % \eTABLE % \stopTEXpage % % \setupTABLE [first] [two][corner=2] % special case % \setupTABLE [last] [two][corner=4] % special case % % % % \setupTABLE [one] [first] ... special case of span % % \startTEXpage % \bTABLE[frame=off,align=middle] % \bTR \bTD one \eTD \bTD two \eTD \bTD three \eTD \eTR % \bTR \bTD first \eTD \bTD second \eTD \bTD third \eTD \eTR % \eTABLE % \stopTEXpage \def\setupTBLcell#1#2% cell over col over row {\setupTBLsection % already forgotten \edef\positiverow{\number#1}% \edef\positivecol{\number#2}% \edef\negativerow{\the\numexpr-\maximumrow+#1+\minusone\relax}% \edef\negativecol{\the\numexpr-\maximumcol+#2+\minusone\relax}% % each each \csname\@@tblprefix\c!x\v!each\c!y\v!each\endcsname \csname\@@tblprefix\c!y\v!each\endcsname \csname\@@tblprefix\c!x\v!each\endcsname % odd even \csname\@@tblprefix\c!y\v!oddeven\positiverow\endcsname \csname\@@tblprefix\c!x\v!oddeven\positivecol\endcsname \csname\@@tblprefix\c!x\v!oddeven\positivecol\c!y\v!oddeven\positiverow\endcsname % row/col number combinations \ifcsname\@@tblprefix\c!y\positiverow\endcsname\csname\@@tblprefix\c!y\positiverow\endcsname\fi \ifcsname\@@tblprefix\c!y\negativerow\endcsname\csname\@@tblprefix\c!y\negativerow\endcsname\fi \csname\@@tbl\@@tbl\c!extras\endcsname \@EA\let\csname\@@tbl\@@tbl\c!extras\endcsname\relax % new, see x-fo \ifcsname\@@tblprefix\c!x\positivecol\endcsname\csname\@@tblprefix\c!x\positivecol\endcsname\fi \ifcsname\@@tblprefix\c!x\negativecol\endcsname\csname\@@tblprefix\c!x\negativecol\endcsname\fi \csname\@@tbl\@@tbl\c!extras\endcsname \@EA\let\csname\@@tbl\@@tbl\c!extras\endcsname\relax % new, see x-fo % first/last combinations \ifnum\positiverow=\plusone \csname\@@tblprefix\c!y\v!first\endcsname \ifcsname\@@tblprefix\c!x\positivecol\c!y\v!first\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\v!first\endcsname\fi \fi \ifnum\positivecol=\plusone \csname\@@tblprefix\c!x\v!first\endcsname \ifcsname\@@tblprefix\c!x\v!first\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\v!first\c!y\positiverow\endcsname\fi \fi \ifnum\positiverow=\maximumrow\relax \csname\@@tblprefix\c!y\v!last\endcsname \ifcsname\@@tblprefix\c!x\positivecol\c!y\v!last\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\v!last\endcsname\fi \fi \ifnum\positivecol=\maximumcol\relax \csname\@@tblprefix\c!x\v!last\endcsname \ifcsname\@@tblprefix\c!x\v!last\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\v!last\c!y\positiverow\endcsname\fi \fi \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\maximumcol\relax \csname\@@tblprefix\c!x\v!last\c!y\v!last\endcsname \fi\fi \ifnum\positiverow=\plusone \ifnum\positivecol=\plusone \csname\@@tblprefix\c!x\v!first\c!y\v!first\endcsname \fi\fi \ifnum\positiverow=\plusone \ifnum\positivecol=\maximumcol\relax \csname\@@tblprefix\c!x\v!last\c!y\v!first\endcsname \fi\fi \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\plusone \csname\@@tblprefix\c!x\v!first\c!y\v!last\endcsname \fi\fi % special case: two rows and last row : two&first and two&last (round corners) \ifnum\maximumrow=\plustwo\relax \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\plusone \csname\@@tblprefix\c!x\v!first\c!y\v!two\endcsname \fi\fi \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\maximumcol\relax \csname\@@tblprefix\c!x\v!last\c!y\v!two\endcsname \fi\fi \fi \ifnum\gettblcol\positiverow\positivecol=\maximumcol\relax % top span over whole width \ifnum\positiverow=\plusone \csname\@@tblprefix\c!x\v!one\c!y\v!first\endcsname \fi \ifnum\positiverow=\maximumrow\relax \csname\@@tblprefix\c!x\v!one\c!y\v!last\endcsname \fi \fi % header things \ifnum#1>\noftblhdnxlines\else \ifcsname\@@tblprefix\v!header\v!each \endcsname\csname\@@tblprefix\v!header\v!each \endcsname\fi \ifcsname\@@tblprefix\v!header\positivecol\endcsname\csname\@@tblprefix\v!header\positivecol\endcsname\fi \fi % explicit cells \ifcsname\@@tblprefix\c!x\positivecol\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\positiverow\endcsname\fi \ifcsname\@@tblprefix\c!x\negativecol\c!y\negativerow\endcsname\csname\@@tblprefix\c!x\negativecol\c!y\negativerow\endcsname\fi % done \global\letcscsname\@@tblsplitafter \csname\@@tbl\@@tbl\c!after \endcsname \global\letcscsname\@@tblsplitbefore \csname\@@tbl\@@tbl\c!before \endcsname \global\letcscsname\@@tblsplitsamepage\csname\@@tbl\@@tbl\c!samepage\endcsname \relax} % we cannot use +n (checking on number/last/first would slow down too much) % % \setupTABLE[r] [2][color=red] % \setupTABLE[r] [-2][color=red] % \setupTABLE[c] [2][color=green] % \setupTABLE[c] [-2][color=green] % \setupTABLE[4] [4][color=blue] % \setupTABLE[-4][-4][color=blue] % % \bTABLE % \dorecurse{10}{\bTR \dorecurse{6}{\bTD xxx \eTD} \eTR} % \eTABLE \globallet\@@tblsplitafter \relax \globallet\@@tblsplitbefore \relax \globallet\@@tblsplitsamepage\relax % split + page: % % \bTABLE[split=yes] % \bTR \bTD left \eTD\bTD right \eTD\eTR % \bTR[after=\page] \bTD left \eTD\bTD right \eTD\eTR % \bTR \bTD left \eTD\bTD right \eTD\eTR % \eTABLE % todo: protect counters \newcount\row \newcount\col \newcount\xrow \newcount\xcol \newcount\xxrow \newcount\xxcol \newcount\maximumrow \newcount\maximumcol \newcount\maximumrowspan \newcount\currentcol \newcount\tblspn \def\parseTR[#1][#2]% [#2] is dummy that kills spaces / no #3 argument {\currentcol\zerocount \advance\maximumrow\plusone \iffirstargument\setTABLEparameters[\c!y\number\maximumrow][#1]\fi} \def\settblref#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:x\endcsname} \def\gettblref#1#2{\ifcsname\@@tblprefix\number#1:\number#2:x\endcsname\csname\@@tblprefix\number#1:\number#2:x\endcsname\fi} \long\def\parseTD[#1][#2]#3\eTD % [#2] is dummy that kills spaces {\def\tblny{\tblnr}% \def\tblnx{\tblnc}% \let\tblnc\plusone \let\tblnr\plusone \let\tbln\currentcol \let\tblm\empty \iffirstargument \getparameters[\@@tbl][#1]% \fi % goto first cell % NEW, n/m=cellnumber \edef\@@tblnindeed{\csname\@@tbl\c!n\endcsname}% \ifx\@@tblnindeed\empty \global\advance\tblspn\tblnx\relax \else\ifnum\@@tblnindeed=\currentcol\else \scratchcounter\numexpr\@@tblnindeed-\currentcol+\minusone-\tblspn\relax \ifnum\scratchcounter>\zerocount \expanded{\parseTD[\c!nx=\the\scratchcounter,\c!n=,\c!m=,*sq=\v!no][]}\eTD \fi % can also be made faster \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1,\c!n=,\c!m=]% \fi\fi \edef\@@tblmindeed{\csname\@@tbl\c!m\endcsname}% \ifx\@@tblmindeed\empty \else \ifnum\@@tblmindeed=\currentcol \else \scratchcounter\numexpr\@@tblmindeed-\currentcol+\minusone-\tblspn\relax \dorecurse\scratchcounter{\expanded{\parseTD[\c!n=,\c!m=][]}\eTD}% % can be sped up \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1,\c!n=,\c!m=]% \fi \fi \doloop % skip over columns that result from earlier span {\advance\currentcol\plusone \doifnottbltag\maximumrow\currentcol\exitloop}% % == \def\next{\advance\currentcol\plusone\doiftbltag\maximumrow\currentcol\next}\next % fill r*c cells and set span \ifnum\tblnx=\plusone \ifnum\tblny=\plusone \ifnum\currentcol>\maximumcol\relax \maximumcol\currentcol \fi \else \presetTBLcell \fi \else \presetTBLcell \fi % set values \lettbltag\maximumrow\currentcol\tblcell \settblcol\maximumrow\currentcol{\number\tblnx}% \settblrow\maximumrow\currentcol{\number\tblny}% \settblref\maximumrow\currentcol{\ifcsname\@@tbl\c!action\endcsname\csname\@@tbl\c!action\endcsname\fi}% % save text \edef\celltag{{\number\maximumrow}{\number\currentcol}}% \@EA\settbltxt\@EA\maximumrow\@EA\currentcol\@EA{\@EA\handleTBLcell\celltag[#1]{#3}}} \def\presetTBLcell {\row\maximumrow \col\currentcol \dorecurse\tblny {\col\currentcol \settblcol\row\col{\number\tblnx}% \ifnum\tblnx>\maximumrowspan\relax \maximumrowspan\tblnx \fi \dorecurse\tblnx {\lettbltag\row\col\tblnone \advance\col\plusone}% \advance\row\plusone}% % check max column \advance\col\minusone \ifnum\col>\maximumcol\relax \maximumcol\col \fi} %D The usage of n and m: %D %D \startbuffer %D \bTABLE[width=3em] %D \bTR\bTD d1 \eTD\bTD[n=2] d2 \eTD\bTD[n=5] d5 \eTD\bTD[n=7] d7 \eTD\eTR %D \bTR\bTD f1 \eTD\bTD[n=4] f4 \eTD\bTD[n=5] f5 \eTD\bTD[n=7] f7 \eTD\eTR %D \eTABLE %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \bTABLE[width=3em] %D \bTR\bTD d1 \eTD\bTD[m=2] d2 \eTD\bTD[m=5] d5 \eTD\bTD[m=7] d7 \eTD\eTR %D \bTR\bTD f1 \eTD\bTD[m=4] f4 \eTD\bTD[m=5] f5 \eTD\bTD[m=7] f7 \eTD\eTR %D \eTABLE %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D \bTABLE[frame=on] %D \bTR \bTH[nc=3] One \eTH \bTH[m=4] Four \eTH\eTR %D \bTR \bTD a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR %D \eTABLE %D %D \bTABLE[frame=on] %D \bTR \bTH[nr=2] One \eTH \bTH[m=3] Three \eTH\eTR %D \bTR \bTD[m=3] a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR %D \bTR \bTD[m=3] a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR %D \eTABLE %D \stopbuffer %D %D \typebuffer \getbuffer \long\def\parseTH[#1]#2\eTH {\parseTD[#1,\c!color=\tbltblheadcolor,\c!style=\tbltblheadstyle,\c!aligncharacter=\v!no]#2\eTD} %D new \long\def\parseTN[#1]#2\eTN {\parseTD[#1]\digits#2\relax\eTD} %D Vit Zyka needed the option to create a distance between columns, so I %D added support for individual column distances. %D %D \startbuffer %D % \setupTABLE[c][each][distance=2em] %D \setupTABLE[c][1][distance=2em] %D \setupTABLE[c][2][distance=3em] %D %D \bTABLE %D \bTR \bTD test \eTD \bTD test \eTD \bTD test \eTD \eTR %D \bTR \bTD[nx=2] test \eTD \bTD test \eTD \eTR %D \bTR \bTD test \eTD \bTD[nx=2] test \eTD \eTR %D \eTABLE %D %D \bTABLE[option=stretch] %D \bTR \bTD test \eTD \bTD test \eTD \bTD test \eTD \eTR %D \bTR \bTD[nx=2] test \eTD \bTD test \eTD \eTR %D \bTR \bTD test \eTD \bTD[nx=2] test \eTD \eTR %D \eTABLE %D \stopbuffer %D %D \typebuffer \startlinecorrection \getbuffer \stoplinecorrection %D %D and he provided patches for the global left and right margin distances %D as well as the columndistance (although i changed the names -). Here %D is his testcase: %D %D \startbuffer %D \framed[offset=overlay]\bgroup %D \setupTABLE[column][2][align=left]% %D \setupTABLE[column][3][align=right]% %D \bTABLE[columndistance=2cm,leftmargindistance=.3cm,rightmargindistance=.5cm] %D \bTR \bTH[nc=3] Table head\eTH \eTR %D \bTR \bTD[nc=2] AB\eTD \bTD C\eTD \eTR %D \bTR \bTD[nc=2,align=left] AB\eTD \bTD C\eTD \eTR %D \bTR \bTD[nc=2,align=middle] AB\eTD \bTD C\eTD \eTR %D \bTR \bTD A\eTD \bTD B\eTD \bTD C\eTD \eTR %D \bTR \bTD Aa\eTD \bTD Bb\eTD \bTD Cccc\eTD \eTR %D \bTR \bTD[nc=3,align=middle] ABC\eTD \eTR %D \eTABLE %D \egroup %D \stopbuffer %D %D \typebuffer \startlinecorrection \getbuffer \stoplinecorrection \newtoks\TBLhead \newtoks\TBLnext \newtoks\TBLbody \newtoks\TBLfoot % to be done: head foot, dus state var \unexpanded\def\bTABLEhead{\dosingleempty\doTABLEhead} \let\eTABLEhead\relax \unexpanded\def\bTABLEnext{\dosingleempty\doTABLEnext} \let\eTABLEnext\relax \unexpanded\def\bTABLEbody{\dosingleempty\doTABLEbody} \let\eTABLEbody\relax \unexpanded\def\bTABLEfoot{\dosingleempty\doTABLEfoot} \let\eTABLEfoot\relax \long\def\doTABLEhead[#1]#2\eTABLEhead{\appendtoks\doTABLEsection[#1]{#2}\to\TBLhead} \long\def\doTABLEnext[#1]#2\eTABLEnext{\appendtoks\doTABLEsection[#1]{#2}\to\TBLnext} \long\def\doTABLEbody[#1]#2\eTABLEbody{\appendtoks\doTABLEsection[#1]{#2}\to\TBLbody} \long\def\doTABLEfoot[#1]#2\eTABLEfoot{\appendtoks\doTABLEsection[#1]{#2}\to\TBLfoot} \long\def\doTABLEsection[#1]#2% {\def\setupTBLsection{\getparameters[\@@tbl\@@tbl][#1]}% #2% \let\setupTBLsection\relax} \let\pushTBL\relax \let\popTBL \relax \chardef\tblpass=0 \def\presetallTABLEparameters% each odd|even level / can be sped up but only once per table {\executeifdefined{\@@rawtblprefix\v!start\v!each}\relax \executeifdefined{\@@rawtblprefix\v!start\v!oddeven\TBLlevel}\relax \executeifdefined{\@@rawtblprefix\v!start\number\TBLlevel}\relax} \def\bTABLE {\dosingleempty\dobTABLE} \def\dobTABLE[#1]% {\pushTBL % box not here \bgroup \TBLhead\emptytoks \TBLnext\emptytoks \TBLbody\emptytoks \TBLfoot\emptytoks \ifhmode\kern\zeropoint\fi % blocks \removeunwantedspaces: check this on icare handelingsschema \resetcharacteralign % new \getparameters [\@@tbl\@@tbl] [\c!align={\v!right,\v!broad,\v!high},#1]% \hsize\tbltbltextwidth \processaction [\tbltblsplit] [ \v!yes=>\enableTBLbreaktrue, \v!repeat=>\enableTBLbreaktrue\multipleTBLheadstrue, \v!auto=>\ifinsidesplitfloat\enableTBLbreaktrue\fi] \processaction [\tbltblheader] [\v!repeat=>\multipleTBLheadstrue]% \localcolortrue \presetallTABLEparameters \ExpandFirstAfter\processallactionsinset [\tbltbloption] [\v!stretch=>\autoTBLspreadtrue]% \linewidth\tbltblrulethickness % needs to be frozen \dontcomplain \currentcol\zerocount \maximumrowspan\plusone \maximumcol\zerocount \maximumrow\zerocount \let\bTR\dobTR \let\bTD\dobTD \let\bTH\dobTH \let\bTN\dobTN} \unexpanded\def\dobTR{\dodoubleempty\parseTR} \unexpanded\def\dobTD{\dodoubleempty\parseTD} \unexpanded\def\dobTH{\dodoubleempty\parseTH} \unexpanded\def\dobTN{\dodoubleempty\parseTN} % permits \expanded{\bTD ... \eTD} \unexpanded\def\eTR{\ignorespaces} \unexpanded\def\eTD{\ignorespaces} \unexpanded\def\eTH{\ignorespaces} \unexpanded\def\eTN{\ignorespaces} \def\eTABLE % beware, we need to get rid of spurious spaces when in hmode {% tricky and dirty order -) \doifsometokselse\TBLhead % slow, better a flag {\the\TBLhead \edef\noftblheadlines{\number\maximumrow}% \doifsometokselse\TBLnext {\the\TBLnext \edef\noftblnextlines{\number\numexpr\maximumrow-\noftblheadlines\relax}}% {\let\noftblnextlines\zerocount}% was 1 \edef\noftblhdnxlines{\number\maximumrow}} {\let\noftblheadlines\zerocount % was 1 \let\noftblnextlines\zerocount \let\noftblhdnxlines\zerocount}% \the\TBLbody \the\TBLfoot \removeunwantedspaces % only if hmode % finish cells \dorecurse\maximumrow {\row\recurselevel\relax \dorecurse\maximumcol {\col\recurselevel\relax \doifnottbltag\row\col {\xxcol\col \xxrow\row \xrow\row \doloop {\xcol\col \doloop {\doifelsetbltag\xrow\xcol \exitloop {\advance\xcol\plusone \ifnum\xcol>\maximumcol\relax \exitloop \fi}}% \doifelsetbltag\xrow\xcol \exitloop {\xxrow\xrow \xxcol\xcol \advance\xrow\plusone \ifnum\xrow>\maximumrow \exitloop \fi}}% \ifnum\xxrow>\maximumrow\xxrow\maximumrow\fi \ifnum\xxcol>\maximumcol\xxcol\maximumcol\fi \xxrow\numexpr\xxrow-\row+\plusone\relax \xxcol\numexpr\xxcol-\col+\plusone\relax \xrow\row \dorecurse\xxrow {\xcol\col \settblcol\xrow\xcol{\number\xxcol}% \dorecurse\xxcol {\lettbltag\xrow\xcol\tblnone \advance\xcol\plusone}% \advance\xrow\plusone}% \lettbltag\row\col\tblcell \settblcol\row\col{\the\xxcol}% \settblrow\row\col{\the\xxrow}% \ifautoTBLemptycell \edef\celltag{{\number\row}{\number\col}}% \@EA\settbltxt\@EA\row\@EA\col\@EA{\@EA\handleTBLcell\celltag[]{\strut}}% \fi}}}% % to be sure \dorecurse\maximumrow {\row\recurselevel\relax \dorecurse\maximumcol {\col\recurselevel\relax \doiftblrow\row\col {\scratchcounter\numexpr\maximumrow-\row+\plusone\relax \ifnum\gettblrow\row\col>\scratchcounter \settblrow\row\col{\the\scratchcounter}% \fi}% \lettblht\row\col\zeropoint \lettblwd\row\col\zeropoint \doifnottblcol\row\col{\lettblcol\row\col\zerocount}% \doifnottbltag\row\col{\lettbltag\row\col\tblnone}}}% % check and do \ifcase\maximumcol\else \startTBLprocessing \begTBL \dorecurse\maximumrow {\bTBL \row\recurselevel\relax \dorecurse\maximumcol {\col\recurselevel\relax \expanded{\doTBL{\number\row}{\number\col}}}% \eTBL}% \removeunwantedspaces % only if hmode \endTBL \stopTBLprocessing % wrong ! ! ! better to have an auto-offset-overlay % \ifnum\TBLlevel>1 % \vskip-\strutdp % \fi \fi \egroup \popTBL} \let\startTBLprocessing\relax \let\stopTBLprocessing \relax \newcount\prelocatedTBLrows % \prelocateTBLrows{1000} may speed up large tables \def\bTBL{\tblrowtoks\emptytoks} \def\eTBL{\tbltoks\@EA\@EA\@EA{\@EA\the\@EA\tbltoks\@EA\begintblrow\the\tblrowtoks\endtblrow}}% \def\prelocateTBLerror {\writestatus\m!systems{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \number\prelocatedTBLrows)}} \def\prelocateTBLrows#1% we start at zero so we have one to much, better play safe anyway {\dostepwiserecurse\prelocatedTBLrows{#1}\plusone{\expandafter\newtoks\csname tbl:\recurselevel\endcsname}% \def\bTBL {\ifnum\tblrow<\prelocatedTBLrows\relax \@EA\let\@EA\tblrowtoks\csname tbl:\the\tblrow\endcsname\tblrowtoks\emptytoks \else \prelocateTBLerror \fi}% \def\eTBL {\tbltoks\@EA\@EA\@EA{\@EA\the\@EA\tbltoks\@EA\begintblrow\@EA\the\csname tbl:\the\tblrow\endcsname\endtblrow}}% \global\prelocatedTBLrows#1\relax} % \prelocateTBLrows{1000} % may speed up large tables % We use aligments to handle the empty (skipped) columns, so % that we don't have to (re|)|calculate these. \def\skiptblcol {\global\advance\tblcol\plusone} \def\nexttblcol {\global\advance\tblcol\plusone \kern\tbltblcolumndistance &} \def\spantblcol {\span} \newcount\tblrow \newcount\tblcol \let\savedtblrow\!!zerocount \let\savedtblcol\!!zerocount \def\begintblrow {\noalign {\global\advance\tblrow\plusone \global\tblcol\zerocount \global\tblspn\zerocount \bgroup % protect local vars \@@tblsplitbefore \egroup \ifx\@@tblsplitsamepage\v!before \unpenalty \nobreak \else\ifx\@@tblsplitsamepage\v!both \unpenalty \nobreak \fi\fi}% \nexttblcol \kern\dimexpr\tbltblleftmargindistance-\tbltblcolumndistance\relax} \def\endtblrow {\kern\dimexpr\tbltblrightmargindistance-\tbltblcolumndistance\relax \crcr \noalign {\nointerlineskip \ifnum\tblrow>\noftblheadlines \ifnum\gettblnob\tblrow=\zerocount \unpenalty \ifx\@@tblsplitsamepage\v!after \nobreak \else\ifx\@@tblsplitsamepage\v!both \nobreak \else \allowbreak \fi\fi \fi \else \allowbreak % else no proper head split off \fi \bgroup % protect local vars \@@tblsplitafter \egroup \bgroup % protect local vars \scratchcounter\numexpr\tblrow+\plusone\relax \ifnum\scratchcounter>\noftblhdnxlines\relax \ifnum\scratchcounter<\maximumrow\relax \doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}% \fi \fi \egroup}} \def\begintbl {\global\tblspn\zerocount \global\tblcol\zerocount \global\tblrow\zerocount \global\advance\tblrow\minusone \tabskip\zeropoint \halign\bgroup \registerparoptions % new \ignorespaces##\unskip&&\ignorespaces##\unskip\cr} \def\endtbl {\egroup} \setvalue{\tblnone TBL}#1#2% {\spanTBL{#1}{#2}} \setvalue{\tblcell TBL}#1#2% {\tblrowtoks\expandafter{\the\tblrowtoks\makeTBL #1 #2 }% space delimited -> less tokens \spanTBL{#1}{#2}} \def\spanTBL#1#2% {\scratchcounter\gettblcol{#1}{#2}\relax \ifnum\scratchcounter>\zerocount \advance\scratchcounter \minusone \dorecurse\scratchcounter{\tblrowtoks\expandafter{\the\tblrowtoks\spantblcol}}% \dorecurse\scratchcounter{\tblrowtoks\expandafter{\the\tblrowtoks\skiptblcol}}% \tblrowtoks\expandafter{\the\tblrowtoks\nexttblcol}% \fi} \def\doTBL#1#2% {\csname\gettbltag{#1}{#2}TBL\endcsname{#1}{#2}} \def\begTBL {\global\tblspn\zerocount \global\tblrow\zerocount \global\tblcol\zerocount \chardef\tblpass\zerocount \tbltoks\emptytoks} \def\flushtbltoks{\begintbl\the\tbltoks\endtbl} \def\domakeTBLone#1 #2 % {\gettbltxt{#1}{#2}}% \def\domakeTBLtwo#1 #2 % meer in cellD {\scratchdimen\zeropoint \scratchcounter\tblcol \!!counta\gettblcol{#1}{#2}\relax \dorecurse\!!counta {\advance\scratchdimen\dimexpr\gettblwid\scratchcounter+\tbltblcolumndistance\relax \ifnum\recurselevel<\!!counta \advance\scratchdimen \gettbldis\scratchcounter\fi \advance\scratchcounter\plusone}% \edef\widthTBL{\the\dimexpr\scratchdimen-\tbltblcolumndistance\relax}% \setbox\scratchbox\hbox{\gettbltxt{#1}{#2}}% \settblht{#1}{#2}{\the\ht\scratchbox}% \settblwd{#1}{#2}{\the\wd\scratchbox}% \ifdim\ht\scratchbox>\gettblhei{#1}\relax \settblhei{#1}{\the\ht\scratchbox}% \fi}% \def\domakeTBLthree#1 #2 % {% height \!!counta \gettblcol{#1}{#2}\relax \!!countb \gettblrow{#1}{#2}\relax \!!heighta\gettblht {#1}{#2}\relax \scratchdimen\zeropoint \ifnum\!!counta=\maximumcol\relax % case: nc=maxcolumns \else \scratchcounter#1\relax \dorecurse\!!countb {\advance\scratchdimen \gettblhei\scratchcounter \advance\scratchcounter\plusone}% \ifdim\scratchdimen<\!!heighta\relax \scratchdimen\!!heighta \fi \fi \edef\heightTBL{\the\scratchdimen}% % width \scratchdimen\zeropoint \scratchcounter\tblcol \dorecurse\!!counta {\advance\scratchdimen\dimexpr\gettblwid\scratchcounter+\tbltblcolumndistance\relax \ifnum\recurselevel<\!!counta \advance\scratchdimen \gettbldis\scratchcounter\fi \advance\scratchcounter\plusone}% \edef\widthTBL{\the\dimexpr\scratchdimen-\tbltblcolumndistance\relax}% % cell \setbox\scratchbox\hbox{\gettbltxt{#1}{#2}}% \ifnum\!!counta=\maximumcol\relax % case: nc=maxcolumns \else \scratchdimen\gettblhei{#1}% \setbox\scratchbox\hbox {\lower\ht\scratchbox\hbox{\raise\scratchdimen\box\scratchbox}}% \ht\scratchbox\scratchdimen \fi \dp\scratchbox\zeropoint \edef\!!stringa{\gettblref{#1}{#2}}% \ifx\!!stringa\empty \box\scratchbox \else \expanded{\gotobox{\box\scratchbox}[\!!stringa]}% \fi \box\scratchbox} \def\inTBLcell#1#2% hm, do we need #1 #2 ? we use tblcol anyway {\ExpandBothAfter\doifinsetelse\localwidth{\v!fit,\v!broad} % user set {} {\scratchdimen\gettblaut\tblcol\relax \ifdim\localwidth>\scratchdimen \settblaut\tblcol{\the\dimexpr\localwidth\relax}% \fi}}% \def\endTBL {\setbox\scratchbox\hbox {\localframed [\@@tbl\@@tbl] [\c!frame=\v!off,\c!background=,\c!align=\v!no] {\strut}}% \edef\minimalcellheight{\the\ht\scratchbox}% \dorecurse\maximumcol {\lettblaut\recurselevel\zeropoint % new \xcol\recurselevel\relax \dorecurse\maximumrow {\lettblwd\recurselevel\xcol\zeropoint \lettblht\recurselevel\xcol\zeropoint}% % till here \lettblwid\recurselevel\zeropoint \lettbldis\recurselevel\zeropoint}% \dorecurse\maximumrow {\lettblhei\recurselevel\maxdimen}% \chardef\tblpass\plusone \let\makeTBL\domakeTBLone \let\handleTBLcell\dohandleTBLcellA \setbox0\vbox{\trialtypesettingtrue \flushtbltoks}% % \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}% \lettbldis\maximumcol\zeropoint \ifautoTBLspread % experimental, stretch non fixed cells to \hsize \checktblwidthsone % trial run \checktblwidthstwo % real run \stretchtblwidths \let\handleTBLcell\dohandleTBLcellB \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}% \else\ifdim\wd0>\hsize \ifautoTBLhsize \checktblwidthsone % trial run \checktblwidthstwo % real run \let\handleTBLcell\dohandleTBLcellB \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}% \fi \else\ifautoTBLrowspan\ifnum\maximumrowspan>1 % max ? % added jan 2002 because nx=* did no longer work \edef\savedhsize{\the\hsize}% \hsize\wd0\relax % new per 17/04/2006 \checktblwidthsone % trial run \checktblwidthstwo % real run \hsize\savedhsize % \let\handleTBLcell\dohandleTBLcellC \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}% \fi\fi\fi\fi \let\handleTBLcell\dohandleTBLcellD \chardef\tblpass\plustwo \let\makeTBL\domakeTBLtwo \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}% \checktblheightsone \checktblheightstwo \let\handleTBLcell\dohandleTBLcellE \chardef\tblpass\plusthree \let\makeTBL\domakeTBLthree \ifnum\TBLlevel>\plusone \@EA\notsplittblbox \else\ifenableTBLbreak \@EAEAEA\splittblbox \else \@EAEAEA\notsplittblbox \fi\fi{\flushtbltoks}} \def\stretchtblwidths % more variants, e.g. a max to \dimend {\ifcase\maximumcol\else % else division by zero \!!dimend\zeropoint \!!dimene\hsize \dorecurse\maximumcol {\advance\!!dimend\dimexpr\gettblwid\recurselevel+\tbltblcolumndistance\relax \advance\!!dimene-\gettbldis\recurselevel}% \advance\!!dimend\dimexpr-\tbltblcolumndistance+\tbltblleftmargindistance+\tbltblrightmargindistance\relax % distribute width (stretch) \ifdim\!!dimend<\!!dimene \advance\!!dimend-\!!dimene \!!dimend-\!!dimend \divide\!!dimend\maximumcol \dorecurse\maximumcol {\settblwid\recurselevel{\the\dimexpr\gettblwid\recurselevel+\!!dimend\relax}}% \fi \fi} \newbox\finaltblbox \def\notsplittblbox#1% {\setbox\finaltblbox\vbox{#1}% \postprocessTABLEbox\finaltblbox \beforeTABLEbox \box\finaltblbox \afterTABLEbox} \def\splittblbox#1% {\ifinsidesplitfloat \donetrue \else\ifinsidefloat \donefalse \else \donetrue \fi\fi \ifdone \executeifdefined{dosplittblbox\tbltblsplitmethod}\dosplittblbox{#1}% \else \notsplittblbox{#1}% \fi} \newbox\TABLEsplitbox % public, don't change \let\extratblsplitheight\zeropoint % additional space taken by before/afterTABLEsplitbox \def\dosplittblbox#1% {\resettsplit \def\tsplitminimumfreelines{2}% \def\tsplitminimumfreespace{\dimexpr\extratblsplitheight+\tbltblsplitoffset\relax}% \def\tsplitbeforeresult {\beforeTABLEsplitbox}% \def\tsplitafterresult {\afterTABLEsplitbox}% \def\tsplitafter {\@@tblsplitafter}% \setbox\tsplitcontent\vbox{#1}% \ifmultipleTBLheads \dorecurse\noftblheadlines {\setbox\scratchbox\vsplit\tsplitcontent to \lineheight \setbox\tsplithead\vbox{\unvcopy\tsplithead\unvcopy\scratchbox}}% \dorecurse\noftblnextlines {\setbox\scratchbox\vsplit\tsplitcontent to \lineheight \setbox\tsplitnext\vbox{\unvcopy\tsplitnext\unvcopy\scratchbox}}% \fi \doifsomething\tbltblspaceinbetween {\def\tsplitinbetween{\blank[\tbltblspaceinbetween]}}% \def\postprocesstsplit{\postprocessTABLEsplitbox{\box\tsplitresult}}% \handletsplit} % ! ! ! ! TODO: naast \postprocessTABLEsplitbox ook evt \postprocessTABLEbox voor niet split \let\postprocessTABLEsplitbox\gobbleoneargument \let\postprocessTABLEbox \gobbleoneargument \let\beforeTABLEsplitbox\relax \let\afterTABLEsplitbox \relax \let\beforeTABLEbox \relax \let\afterTABLEbox \relax \def\checktblwidthsone{\dochecktblwidths0} % 0 = trial run \def\checktblwidthstwo{\dochecktblwidths1} % 1 = real run \def\dochecktblwidths#1% {\iftraceTABLE\showtblwids{B#1}\fi \!!counta\zerocount \!!dimena\dimexpr\hsize-\tbltblleftmargindistance-\tbltblrightmargindistance-\tbltblcolumndistance\relax \dorecurse\maximumcol {\scratchdimen\gettblaut\recurselevel\relax \advance\!!dimena-\gettbldis\recurselevel\relax \ifdim\scratchdimen>\zeropoint\relax \advance\!!dimena -\scratchdimen \else \scratchdimen\gettblwid\recurselevel\relax \ifdim\scratchdimen>\tbltblmaxwidth\relax \ifcase#1\else\lettblwid\recurselevel\zeropoint\fi \advance\!!counta \plusone \else \ifdim\scratchdimen>\zeropoint\relax \advance\!!dimena -\scratchdimen \else % eigenlijk moet dit alleen als de kolom wordt overspannen door een % vorige, maw extra dubbele loop en status var \advance\!!counta \plusone \fi \fi \fi}% \ifcase\!!counta \else \divide\!!dimena \!!counta \fi \dorecurse\maximumcol {\scratchdimen\gettblwid\recurselevel\relax \ifcase#1\relax \ifdim\scratchdimen<\!!dimena % take natural width \settblaut\recurselevel{\the\scratchdimen}% \fi \else \ifdim\scratchdimen=\zeropoint % auto set width \settblwid\recurselevel{\the\!!dimena}% \fi \fi}% \iftraceTABLE\showtblwids{E#1}\fi} \newcount\xrowTBL \newcount\xcolTBL \newcount\xxrowTBL % dikke arg naar recurse wegwerken \def\dochecktblheightsone {\!!countb\gettblrow\xrowTBL\xcolTBL\relax % check row span \ifnum\!!countb>\plusone % current height in row \dimen0=\gettblht\xrowTBL\xcolTBL % find nearest height in row \dimen2=\zeropoint \dorecurse\maximumcol {\ifnum\recurselevel=\xcolTBL\else \doiftblrow\xrowTBL\recurselevel {\!!countc=\gettblrow\xrowTBL\recurselevel\relax \ifnum\!!countc=\plusone \dimen4=\gettblht\xrowTBL\recurselevel\relax \ifdim\dimen2<\dimen4 \dimen2=\dimen4 \fi \fi}% \fi}% \xxrowTBL\xrowTBL % calculate cummulative height \dimen4=\dimen2 \!!countc\xrowTBL \advance\!!countc\minusone \dorecurse\!!countb {\ifnum\xxrowTBL=\xrowTBL\else \advance\dimen4 \gettblhei\xxrowTBL \fi \ifnum\recurselevel=\!!countb\else \settblnob\!!countc \advance\!!countc\plusone \fi \advance\xxrowTBL\plusone}% % distribute overshoot equally \ifdim\dimen2>\zeropoint % see natural-003 \ifdim\dimen4<\dimen0 \advance\dimen0 -\dimen4 \divide\dimen0 \!!countb \xxrowTBL\xrowTBL \settblhei\xrowTBL{\the\dimen2}% \dorecurse\!!countb {\dorecurse\maximumcol {\ifnum\recurselevel=\xcolTBL\else \scratchdimen\dimexpr\gettblht\xxrowTBL\recurselevel+\dimen0\relax \settblht\xxrowTBL\recurselevel{\the\scratchdimen}% \ifdim\gettblhei\xxrowTBL<\scratchdimen \settblhei\xxrowTBL{\the\scratchdimen}% \fi \fi}% \advance\xxrowTBL\plusone}% \else\ifdim\dimen4>\dimen0 \settblhei\xrowTBL{\the\dimen2}% \fi\fi \fi \fi} \def\checktblheightsone {\dorecurse\maximumrow {\xrowTBL\recurselevel\relax \dorecurse\maximumcol {\xcolTBL\recurselevel\relax \doiftblrow\xrowTBL\xcolTBL\dochecktblheightsone}}} \def\checktblheightstwo {} \def\showtblwids#1% {\vbox {\forgetall\tttf[#1]\dorecurse\maximumcol {\scratchdimen\gettblwid\recurselevel\relax [\recurselevel:\the\scratchdimen]}}} \def\TBLcharalign {\doifelse\tbltblaligncharacter\v!yes \doTBLcharalign\gobbleoneargument} \long\def\doTBLcharalign#1#2% column data {\edef\alignmentclass{#1}% \edef\alignmentcharacter{\tbltblalignmentcharacter}% \ifcase\tblpass\or \setfirstpasscharacteralign\checkalignment{#2}% {\strut#2\unskip}% \fi % force hsize, so always a second \setsecondpasscharacteralign \checkalignment{#2}% {\strut#2\unskip}% \ignorespaces} % new, needed for icare first col of 'doeltabel', experimental \long\def\dohandleTBLcellA#1#2[#3]#4% grouping added ! ! ! {\bgroup \setupTBLcell{#1}{#2}% \setbox\scratchbox\hbox {\scratchdimen\tbltbldistance\relax \ifdim\scratchdimen>\gettbldis{#2}\relax \settbldis{#2}{\the\scratchdimen}% \fi \localframed [\@@tbl\@@tbl] [#3,\c!background=,\c!frame=\v!off]% 25% faster {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL\inTBLcell{#1}{#2}}}% \scratchdimen\gettblwid\tblcol\relax \ifdim\wd\scratchbox>\scratchdimen \ifsqueezeTBLspan \ifautosqueezeTBLspan \doifinsetelse\tbltblwidth{\v!fit,\v!fixed,\v!broad,\v!local} \donetrue \donefalse \else \donetrue \fi \ifdone % brr, 0 \ifnum\number\gettblcol{#1}{#2}>\plusone \settblspn\tblcol\fi \fi \fi \doifelsetblspn\tblcol \donothing {\ifdim\gettblwid\tblcol<\wd\scratchbox \settblwid\tblcol{\the\wd\scratchbox}% \fi}% auto set \fi \scratchcounter\numexpr\tblrow+\plusone\relax \scratchdimen\gettblhei\scratchcounter\relax \ifdim\ht\scratchbox<\scratchdimen \settblhei\scratchcounter{\the\ht\scratchbox}% auto set \fi \settblht{#1}{#2}{\the\ht\scratchbox}% \settblwd{#1}{#2}{\the\wd\scratchbox}% \ifautoTBLcheckwidth \ifdim\wd\scratchbox<.75\hsize \ifdim\ht\scratchbox>2\openlineheight % honor width since this \scratchdimen\gettblaut\tblcol\relax % can be a figure or so \ifdim\scratchdimen=\zeropoint % side effect: when width is set to 0pt, % we can force a span that fits the sum of spans widths \settblaut\tblcol{\the\scratchdimen}% \else\ifdim\wd\scratchbox>\scratchdimen % unless span \settblaut\tblcol{\the\wd\scratchbox}% % to be translated \writestatus\m!TABLE {no auto width in (\number#1,\number#2)\space\the\wd\scratchbox/\the\hsize}% \fi\fi \fi \fi \fi \setbox2\null \wd2\wd\scratchbox \ht2\ht\scratchbox \dp2\dp\scratchbox \box2 \egroup} \long\def\dohandleTBLcellBC#1#2#3[#4]#5% {\setbox\scratchbox\hbox {\setupTBLcell{#2}{#3}% \localframed [\@@tbl\@@tbl] [#4,#1,\c!frame=\v!off,\c!background=] {\bTBLCELL#5\eTBLCELL}}% \setbox2\null \wd2\wd\scratchbox \ht2\ht\scratchbox \dp2\dp\scratchbox \ifautoTBLrowspan \scratchcounter\numexpr\tblrow+\plusone\relax \doiftblrow\scratchcounter\tblcol {\scratchdimen\gettblhei\scratchcounter\relax % moved inside test \ifnum\gettblrow\scratchcounter\tblcol>\plusone \ifdim\ht\scratchbox>\scratchdimen \scratchdimen-\scratchdimen \advance\scratchdimen -\ht\scratchbox \ht2\scratchdimen \fi \fi}% \fi \box2 } \long\def\dohandleTBLcellB#1#2[#3]#4% {\scratchdimen\gettblaut\tblcol\relax \ifdim\scratchdimen>\zeropoint\relax \let\tblwidthkey\c!width \edef\tblwidth{\the\scratchdimen}% \else \scratchdimen\gettblwid\tblcol\relax \ifdim\scratchdimen>\zeropoint\relax \ifnum\gettblcol{#1}{#2}=\maximumcol\relax \scratchdimen\hsize \fi \let\tblwidthkey\c!width \edef\tblwidth{\the\scratchdimen}% \else \let\tblwidthkey\s!unknown \let\tblwidth\zeropoint \fi \fi \dohandleTBLcellBC{\tblwidthkey=\tblwidth}{#1}{#2}[#3]{\TBLcharalign{#2}{#4}}} \long\def\dohandleTBLcellC {\dohandleTBLcellBC{}} \long\def\dohandleTBLcellD#1#2[#3]#4% {\setupTBLcell{#1}{#2}% \bgroup \localframed [\@@tbl\@@tbl] [#3,\c!width=\widthTBL,\c!background=,\c!frame=\v!off]% 25% faster {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}% \egroup} \long\def\dohandleTBLcellE#1#2[#3]#4% {\setupTBLcell{#1}{#2}% \getparameters[\@@tbl\@@tbl][#3]% to get the color right, the way we \color % handle color here prevents interference due to whatsit nodes [\tbltblcolor] % as well as permits local colors to take precedence {\ifdim\heightTBL=\zeropoint\relax % case: nc=maxcolumns \localframed [\@@tbl\@@tbl] [\c!color=,\c!width=\widthTBL] {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}% \else \localframed [\@@tbl\@@tbl] [\c!color=,\c!width=\widthTBL,\c!height=\heightTBL] {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}% \fi}% \hskip\gettbldis{#2}} \setupTABLE [\c!frameoffset=.5\linewidth, \c!backgroundoffset=\v!frame, \c!framecolor=\s!black, \c!color=, \c!style=, \c!headstyle=\v!bold, \c!headcolor=, \c!strut=\v!yes, \c!autostrut=\v!no, \c!aligncharacter=\v!no, \c!alignmentcharacter={,}, \c!option=, % \v!stretch \c!header=, \c!spaceinbetween=, \c!maxwidth=8em, \c!textwidth=\hsize, \c!split=\v!auto, \c!splitoffset=0pt, \c!distance=\zeropoint, % individual column \c!columndistance=\zeropoint, % each column (whole table) \c!leftmargindistance=\zeropoint, % whole table \c!rightmargindistance=\zeropoint,% whole table \c!left=, \c!right=, \c!splitmethod=a] %D We have already prepared the previous macros for nesting, %D so we only have to pop in the right ones: %D New: \def\pushTBLparameters {\globalpushmacro\TBLlevel \ifcase\tblpass % we're just after \bTABLE \else\ifnum\TBLlevel>\zerocount \doglobal\increment\TBLlevel\relax \fi\fi} \def\popTBLparameters {\globalpopmacro\TBLlevel} \def\pushTBL {\ifnum\TBLlevel=\zerocount \global\advance\currenttbl\plusone \fi \doglobal\increment\TBLlevel\relax \ifnum\TBLlevel>\plusone \resetallTABLEparameters % we need a proper count push/pop \xdef\savedtblrow{\the\tblrow}\globalpushmacro\savedtblrow \xdef\savedtblcol{\the\tblcol}\globalpushmacro\savedtblcol \else \global\intabletrue \fi} \def\popTBL {\ifnum\TBLlevel>\plusone \globalpopmacro\savedtblrow\global\tblrow\savedtblrow \globalpopmacro\savedtblcol\global\tblcol\savedtblcol \else \global\intablefalse \fi \doglobal\decrement\TBLlevel\relax} % \bgroup % \setupTABLE[column][1][aligncharacter=yes, alignmentcharacter={,}] % \bTABLE % \bTR \bTD 1,2 \eTD \bTD 2 \eTD \eTR % \bTR \bTD 11,2 \eTD \bTD % {\setupTABLE[column][1][aligncharacter=yes, alignmentcharacter={,}] % \bTABLE % \bTR \bTD 1,2 \eTD \bTD 2 \eTD \eTR % \bTR \bTD 11,22 \eTD \bTD 2 \eTD \eTR % \bTR \bTD 11,2 \eTD \bTD 2 \eTD \eTR \eTABLE} \eTD \eTR % \bTR \bTD 11,22 \eTD \bTD 2 \eTD \eTR % \eTABLE % \egroup \newconditional\resetTABLEmode \settrue\resetTABLEmode \def\resetallTABLEparameters% moet genest wel werken {\ifnum\TBLlevel>\plusone % in ieder geval \ifconditional\resetTABLEmode \presetlocalframed % breedte hoogte diepte offset [\@@tbl\@@tbl]% % achtergrond, achtergrondraster, achtergrondkleur % not ok yet \setupTABLE [% \c!frameoffset=.5\linewidth, \c!backgroundoffset=\v!frame, \c!framecolor=\s!black, \c!width=fit, \c!height=fit, \c!autowidth=\v!yes, % \c!rulethickness=\linewidth, % \c!strut=\v!no, \c!strut=\v!yes, % needed for mathml, but ... maybe we need another resetTABLEmode \c!autostrut=\v!no, \c!color=, \c!style=, \c!headstyle=, \c!headcolor=, \c!aligncharacter=\v!no, \c!alignmentcharacter={,}, \c!maxwidth=8em]% \else \setupTABLE [\c!width=\v!fit, \c!height=\v!fit]% \fi \fi} %D Spacing: % % \starttabulate % \NC text \NC text \NC \NR % \TB[small] % \NC text \NC text \NC \NR % \TB[4*big] % \NC text \NC text \NC \NR % \stoptabulate % % \starttable[|||] % \VL text \VL text \VL \AR % \TB[small] % \VL text \VL text \VL \AR % \TB[4*big] % \VL text \VL text \VL \AR % \stoptable \def\complexTableTB[#1]{\TABLEnoalign{\blank[#1]}} \def\simpleTableTB {\TABLEnoalign{\blank}} \def\TabulateTB {\complexorsimpleTable{TB}} \def\doTableinterline% #1 {\ifnum\currentTABLEcolumn>\maxTABLEcolumn \chuckTABLEautorow \else\ifnum\currentTABLEcolumn=\zerocount \TABLEnoalign {\globalletempty\checkTABLEautorow \globalletempty\chuckTABLEautorow}% \else \setTABLEerror\TABLEmissingcolumn \handleTABLEerror \fi\fi \complexorsimpleTable} % {#1} \def\TableHL{\doTableinterline{HL}} \def\TableTB{\doTableinterline{TB}} \appendtoks\let\TB\TableTB \to\everytable \appendtoks\let\TB\TabulateTB\to\everytabulate % strange place \appendtoks \chardef\recodeverbatimmode\plustwo \to \everytable % new (for Olivier Turlier) % % \defineTABLEsetup [xx] [foregroundcolor=red] % % \bTABLE % \bTR \bTD oeps \eTD \bTD oeps \eTD \eTR % \bTR \bTDs[xx] oeps \eTDs \bTD oeps \eTD \eTR % \bTRs[xx] \bTD oeps \eTD \bTD oeps \eTD \eTRs % \eTABLE \def\defineTABLEsetup {\dodoubleargument\dodefineTABLEsetup} \def\dodefineTABLEsetup[#1][#2]% {\setvalue{\@@tbl:set:#1}{#2}} \long\def\bTDs[#1]#2\eTDs {\doifdefinedelse{\@@tbl:set:#1} {\@EA\@EA\@EA\bTD\@EA\@EA\@EA[\csname\@@tbl:set:#1\endcsname]#2\eTD} {\bTD[]#2\eTD}} \long\def\bTRs[#1]#2\eTRs {\doifdefinedelse{\@@tbl:set:#1} {\@EA\@EA\@EA\bTR\@EA\@EA\@EA[\csname\@@tbl:set:#1\endcsname]#2\eTR} {\bTR[]#2\eTR}} \protect \endinput % todo: mode: first|next (of niets) context-modules-20240428/texmf-dist/tex/context/base/mkii/font-jap.mkii0000644000175000017500000000512514536300610024674 0ustar hillehille%D \module %D [ file=font-jap, %D version=2006.01.13, %D title=\CONTEXT\ Font Macros, %D subtitle=Japanese, %D author=Hans Hagen, %D date=\currentdate, %D suggestions=Wang Lei, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \ifx\handlejapaneseunicodeglyph\undefined \else \endinput \fi \ifx\handlechineseunicodeglyph \undefined \input font-chi.tex \fi \writestatus{loading}{ConTeXt Font Macros / Japanese} \unprotect \newif\iftracejapanese \let\japaneseencoding\empty \def\setjapaneseencoding {\getfontfileparameters\unicodestyle \ifx\currentfontfileencoding\undefined \else \let\japaneseencoding\currentfontfileencoding \fi} \def\japaneseunicodescale {\chineseunicodescale } \def\japaneseunicodeheight {\chineseunicodeheight } \def\japaneseunicodedepth {\chineseunicodedepth } \def\japaneseinterglyphskip{\chineseinterglyphskip} \def\japanesesurroundskip {\chinesesurroundskip } \setupunicodefont [japanese] [ \c!scale=\japaneseunicodescale, \c!height=\japaneseunicodeheight, \c!depth=\japaneseunicodedepth, \c!strut=\v!yes, \c!interlinespace=\v!yes, \c!conversion=\japanesenumber, \c!commands=\setjapaneseencoding, % needed for digits \c!command=\handlejapaneseunicodeglyph] \def\japanesenumber{\numbers} \def\handlejapaneseunicodeglyph {\begingroup % \let\chineseunicodescale \japaneseunicodescale % \let\chineseunicodeheight \japaneseunicodeheight % \let\chineseunicodedepth \japaneseunicodedepth % \let\chineseinterglyphskip\japaneseinterglyphskip % \let\chinesesurroundskip \japanesesurroundskip \iftracejapanese\tracechinesetrue\else\tracechinesefalse\fi \handlechineseunicodeglyph \endgroup} \doifelse \currentregime {utf} { % todo: typescripts \definefontsynonym [JapaneseRegular] [uni-cybercjk-][encoding=cjk-uni] \definefontsynonym [JapaneseSlanted] [uni-cybercjk-][encoding=cjk-uni] \definefontsynonym [JapaneseItalic] [uni-cybercjk-][encoding=cjk-uni] \definefontsynonym [JapaneseBold] [uni-cybercjk-][encoding=cjk-uni] \definefontsynonym [JapaneseBoldSlanted][uni-cybercjk-][encoding=cjk-uni] \definefontsynonym [JapaneseBoldItalic] [uni-cybercjk-][encoding=cjk-uni] \loadmapfile[uni-cybercjk.map] \defineunicodefont [Japanese] [Japanese] [japanese] } { \writestatus{Japanese}{No fonts defined} } \Japanese \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-ini.mkii0000644000175000017500000005773614536300610024710 0ustar hillehille%D \module %D [ file=unic-ini, %D version=2002.12.03, %D title=\CONTEXT\ \UNICODE\ Support, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Unicode Support / Initialization} %D Sorry, we only support his in \ETEX. \unprotect % ÀÁÂÃÄÅàáâãäå % ÆÇæç % ÈÉÊËèéêë % ÌÍÎÏÞìíîïþ % Ðð % Ññ % ÒÓÔÕÖòóôõö % Øø % ÙÚÛÜùúûü % Ýýÿ % ß %D This module deals with unicode, and in particular with %D \UTF-8 conversion. The prelude to this module was \type %D {xtag-utf}, which is now replaced by a one||liner. The %D macros below deal with conversions. Thanks to Taco for %D providing the following conversion rules. %D %D \starttabulate[|c|c|c|c|c|] %D \NC $b_1$ \NC $b_2$ \NC $b_3$ \NC $b_4$ \NC unicode \NC \NR %D \NC192---223\NC128---191\NC \NC \NC 0x80---0x7FF \NC \NR %D \NC224---239\NC128---191\NC128---191\NC \NC 0x800---0xFFFF \NC \NR %D \NC240---247\NC128---191\NC128---191\NC128---191\NC0x10000---0x1FFFF\NC \NR %D \stoptabulate %D %D In \UTF-8 the characters in the range 128---191 are illegal %D as first characters. The characters 254 and 255 are %D completely illegal and should not appear at all (they are %D related to UTF-16). %D %D The unicode number for an \UTF-8 sequence can be calculated %D as follows: %D %D \starttabulate[|mc|m|mc|m|mc|m|mc|m|] %D \NC b_1 \NC \NC \NC \NC \NC \NC \NC if b_1<=127\NC \NR %D \NC 64(b_1-192)\NC+\NC (b_2-128)\NC \NC \NC \NC \NC if 192<=b1<=223\NC \NR %D \NC 4096(b_1-224)\NC+\NC 64(b_2-128)\NC+\NC (b_3-128)\NC \NC \NC if 224<=b1<=239\NC \NR %D \NC262144(b_1-240)\NC+\NC4096(b_2-128)\NC+\NC64(b_3-128)\NC+\NC(b_4-128)\NC if 240<=b1<=247\NC \NR %D \stoptabulate %D %D A lot of information about unicode can be found on the %D web (search for Markus Kuhn and unicode and you'll %D probably end up at the right place). %D In \ETEX\ vocabulary such a conversion looks as follows. %D We need the \type {`} in order to turn a character into a %D number. %D %D \starttyping %D \def\utftwounicode#1#2% %D {\number\numexpr (64*(\numexpr (#1-192))+% %D (\numexpr(`#2-128)))} %D %D \def\utfthreeunicode#1#2#3% %D {\number\numexpr (4096*(\numexpr (#1-224))+ %D 64*(\numexpr(`#2-128))+% %D (\numexpr(`#3-128)))} %D %D \def\utffourunicode#1#2#3#4% %D {\number\numexpr(262144*(\numexpr (#1-240))+ %D 4096*(\numexpr(`#1-128))+ %D 64*(\numexpr(`#2-128))+% %D (\numexpr(`#3-128)))} %D \stoptyping %D %D When we map the unicode number on one of the 256 char wide %D unicode tables, we need to do a bit of div and mod. Watch %D out: an \ETEX\ \type {/} is not the same as \TEX's \type %D {\divide}. The former rounds, while the later truncates, so %D we need to trucate ourselves. In case you wonder why we %D use \type {\numexpr}: this is not only more convenient, but %D also makes it possible to avoid scratch counters, so that we %D get fast and fully expandable conversions. %D %D \starttyping %D \def\utfdiv#1{\number\numexpr((#1-128)/256)} %D \def\utfmod#1{\number\numexpr((#1)-(256*(\utfdiv{#1})))} %D \stoptyping %D %D So far for the readable alternatives. When using \type %D {\numexpr} you should be aware of rather unexpected look %D ahead effects. The next implementation uses registers, %D which saves tokens and is faster. In this case we gain %D some 10\% time. \chardef \utf@a= 64 \mathchardef \utf@b= 4096 \newcount\utf@c\utf@c=262144 \chardef \utf@d= 192 \chardef \utf@e= 224 \chardef \utf@f= 240 \chardef \utf@g= 128 \mathchardef \utf@h= 256 \chardef \utf@i= 127 \mathchardef \utf@j= 2048 %D The definitions now become: %D %D \starttyping %D \def\utftwounicode#1#2% %D {\number\numexpr(\utf@a*(\numexpr (#1-\utf@d))+% %D (\numexpr(`#2-\utf@g)))} %D %D \def\utfthreeunicode#1#2#3% %D {\number\numexpr(\utf@b*(\numexpr (#1-\utf@e))+ %D \utf@a*(\numexpr(`#2-\utf@g))+% %D (\numexpr(`#3-\utf@g)))} %D %D \def\utffourunicode#1#2#3#4% %D {\number\numexpr(\utf@c*(\numexpr (#1-\utf@f))+ %D \utf@b*(\numexpr(`#2-\utf@g))+ %D \utf@a*(\numexpr(`#3-\utf@g))+% %D (\numexpr(`#4-\utf@g)))} %D \stoptyping %D %D And: %D %D \starttyping %D \def\utfdiv#1{\number\numexpr((#1-\utf@g)/\utf@h)} %D \def\utfmod#1{\number\numexpr((#1)-(\utf@h*(\utfdiv{#1})))} %D \stoptyping %D %D Depending on the usage, you can rely on parenthesis only: %D %D \starttyping %D \def\utftwounicode#1#2% %D {\numexpr(\utf@a*(#1-\utf@d)+% %D `#2-\utf@g)} %D %D \def\utfthreeunicode#1#2#3% %D {\numexpr(\utf@b*(#1-\utf@e)+% %D \utf@a*(`#2-\utf@g)+% %D `#3-\utf@g)} %D %D \def\utffourunicode#1#2#3#4% %D {\numexpr(\utf@c*(#1-\utf@f)+% %D \utf@b*(`#2-\utf@g)+% %D \utf@a*(`#3-\utf@g)+% %D `#4-\utf@g)} %D \stoptyping % beware, unless surrounded by \numexpr .. \relax, a division % results in a float until the final result is calculated \def\utfdiv#1{\the\numexpr (#1-\utf@g)/\utf@h \relax} \def\utfmod#1{\the\numexpr#1-\utf@h*((#1-\utf@g)/\utf@h)\relax} %D The next one also handles the zero case well: (not really utf specific btw) \def\utfdiv#1{\the\numexpr\ifcase\numexpr#1\relax0\else (#1-\utf@g)/\utf@h \fi\relax} \def\utfmod#1{\the\numexpr\ifcase\numexpr#1\relax0\else#1-\utf@h*((#1-\utf@g)/\utf@h)\fi\relax} % or % % \def\utfdiv#1{\ifcase\numexpr#1\relax0\else\the\numexpr(#1-\utf@g)/\utf@h\relax\fi} % \def\utfmod#1{\ifcase\numexpr#1\relax0\else\the\numexpr#1-\utf@h*((#1-\utf@g)/\utf@h)\relax\fi} %D When tracing we also need: \def\utfvid#1{\the\numexpr(#1-\medcard)/\maxcard\relax} %D Using the three conversion macros, we can now implement %D a few handlers. They all call the general \type %D {\unicodechar} conversion macro. %D %D \starttyping %D \def\utftwouniglph#1#2% %D {\unicodechar{\utftwounicode {#1}{#2}}} %D %D \def\utfthreeuniglph#1#2#3% %D {\unicodechar{\utfthreeunicode{#1}{#2}{#3}}} %D %D \def\utffouruniglph#1#2#3#4% %D {\unicodechar{\utffourunicode {#1}{#2}{#3}{#4}}} %D \stoptyping %D %D Because the unicode number is used a few times per %D conversion, we can expand it once (\type {\the} and \type %D {\number} make sure of this). This saves us another 10\%. %D %D \starttyping %D \def\utftwouniglph#1#2% %D {\@EA\unicodechar\@EA{\the\utftwounicode{#1}{#2}}} %D %D \def\utfthreeuniglph#1#2#3% %D {\@EA\unicodechar\@EA{\the\utfthreeunicode{#1}{#2}{#3}}} %D %D \def\utffouruniglph#1#2#3#4% %D {\@EA\unicodechar\@EA{\the\utffourunicode{#1}{#2}{#3}{#4}}} %D \stoptyping %D %D We can rewrite these macros to faster alternatives: the %D less arguments we pass, the faster the conversion will be, %D but at the price of readability. So we have: %D %D \starttyping %D \def\utftwouniglph#1#2% %D {\@EA\unicodechar\@EA{\the\numexpr(\utf@a*(#1-\utf@d)+% %D `#2-\utf@g)}} %D %D \def\utfthreeuniglph#1#2#3% %D {\@EA\unicodechar\@EA{\the\numexpr(\utf@b*(#1-\utf@e)+% %D \utf@a*(`#2-\utf@g)+`#3-\utf@g)}} %D %D \def\utffouruniglph#1#2#3#4% %D {\@EA\unicodechar\@EA{\the\numexpr(\utf@c*(#1-\utf@f)+% %D \utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g)}} %D \stoptyping %D %D Less parsing, and therefore faster: % beware, this may change: #1 rawchar (=> `#1 and such, saves tokens) \def\utftwouniglph#1#2% {\@EA\unicodechar\@EA{\the\numexpr\utf@a*(#1-\utf@d)+`#2-\utf@g\relax}} \def\utfthreeuniglph#1#2#3% {\@EA\unicodechar\@EA{\the\numexpr\utf@b*(#1-\utf@e)+\utf@a*(`#2-\utf@g)+`#3-\utf@g\relax}} \def\utffouruniglph#1#2#3#4% {\@EA\unicodechar\@EA{\the\numexpr\utf@c*(#1-\utf@f)+\utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g\relax}} % \def\keeputfcharacters % {\def\utftwouniglph ##1##2{\rawcharacter{##1}\string##2}% % \def\utfthreeuniglph ##1##2##3{\rawcharacter{##1}\string##2\string##3}% % \def\utffouruniglph ##1##2##3##4{\rawcharacter{##1}\string##2\string##3\string##4}} \def\keeputfcharacters {\let\utftwouniglph \rawcharacter \let\utfthreeuniglph\rawcharacter \let\utffouruniglph \rawcharacter} \appendtoks \keeputfcharacters \to \everywritestring % \bgroup % \keeputfcharacters % \expanded{\index{\XMLflush{whatever}}} % \egroup %D Now we come to the unicode handler itself. We will use a few %D constants, which saves us (at least at the time of writing %D and testing these macros) another 10\%. \def\@@univector {univ} \def\@@unicommand {unic} \def\@@unknownchar{unknownchar} %D Now comes the nice part: turning codes into glyphs. The %D actual conversion does not take place here, but is done by %D macros in \type{unic-nnn} files. There we map a range onto %D named glyphs, so that they fit well into the rest of %D \CONTEXT. %D \macros %D {utfunicodetracer} %D %D By default, the converter produces a character representation, %D but for tracing purposes, you can set a trace option. \newconstant\utfunicodetracer %D \def\TraceUnic#1% %D {\utfunicodetracer#1\relax\enableregime[utf]Ű} %D %D \starttabulate[|c|c|c|c|c|c|] %D \NC option \NC number\NC mapping\NC glyph\NC string\NC example \NC \NR %D \NC 0 \NC \NC \NC \star\NC \NC \TraceUnic0\NC \NR %D \NC 1 \NC \star \NC \NC \NC \NC \TraceUnic1\NC \NR %D \NC 2 \NC \NC \star \NC \NC \NC \TraceUnic2\NC \NR %D \NC 3 \NC \star \NC \star \NC \NC \NC \TraceUnic3\NC \NR %D \NC 4 \NC \star \NC \NC \star\NC \NC \TraceUnic4\NC \NR %D \NC 5 \NC \NC \star \NC \star\NC \NC \TraceUnic5\NC \NR %D \NC 6 \NC \star \NC \star \NC \star\NC \NC \TraceUnic6\NC \NR %D \NC 7 \NC \NC \NC \NC \star \NC \TraceUnic7\NC \NR %D \NC 8 \NC \star \NC \NC \NC \NC \TraceUnic8\NC \NR %D \NC otherwise\NC \NC \NC \star\NC \NC \TraceUnic9\NC \NR %D \stoptabulate %D \macros %D {unicodechar} %D %D Next we implement the character handler: \def\unicodechar {\ifcase\utfunicodetracer \expandafter\utfunihash \or \expandafter\utfunichar \or \expandafter\utfunisplit \or \expandafter\utfuniboth \or \expandafter\utfunihashchar \or \expandafter\utfunihashsplit \or \expandafter\utfunihashboth \or \expandafter\utfuniglyphname \or \expandafter\utfunientity \else \expandafter\utfunihash \fi} %D \startbuffer %D \enableregime[utf] \dostepwiserecurse{0}{8}{1} %D {\recurselevel: %D \utfunicodetracer\recurselevel aap‒noot coördinatie – één %D \crlf} %D \stopbuffer %D %D \typebuffer \start \getbuffer \stop %D \macros %D {unicodehexnumber} %D %D A few auxiliary macros, producing the range||char pair: \def\unicodepair#1% {\utfdiv{#1}:\utfmod{#1}} \def\unicodenumber#1{\number#1} \def\unicodehexnumber#1% {\ifnum#1>\maxcard \expanded{\uchexnumbers{\utfvid{#1}}}% \expanded{\uchexnumbers{\utfdiv{\utfdiv{#1}}}}% \else 00% \expanded{\uchexnumbers{\utfdiv{#1}}}% \fi \expanded{\uchexnumbers{\utfmod{#1}}}} %D The following macros visualize the unicode character. The %D \type {\relax} in front of the \type {-} prevents lookahead %D problems; somehow \type {\numexpr} cannot look beyond this %D sign, and expects a number. \ifx\tttf\undefined \let\tttf\relax \fi \def\utfunichar #1{{\tttf U\low{\tx\unicodenumber{#1}}}} \def\utfunisplit #1{{\tttf U\low{\tx\unicodepair{#1}}}} \def\utfuniboth #1{{\tttf U\low{\tx\unicodenumber{#1}->\unicodepair{#1}}}} \def\utfunientity #1{{\tttf\&\#x\unicodehexnumber{#1};}} %D The character itself is accessed and typeset by: %D %D \starttyping %D \def\utfunihash#1% %D {\executeifdefined{\@@univector\utfdiv{#1}}% %D \gobbleoneargument{\utfmod{#1}}} %D \stoptyping %D %D Again, we can provide a faster alternative, because inside %D the conditional executer, the argument is expanded twice, %D and therefore the calculation done once more than needed. %D So, we make sure that the argument is expansion on %D forehand. Just to remind you: \type {#1} is the \UNICODE\ %D number. %D %D \starttyping %D \def\utfunihash#1% %D {\@EA\executeifdefined\@EA{\@EA\@@univector\number\utfdiv{#1}}% %D {\unknownchar\gobbleoneargument}{\utfmod{#1}}} %D \stoptyping %D %D In order to save calculation time, I decided to change %D this definition into: %D \starttyping %D \def\utfunihash#1% %D {\@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}} %D %D \def\doutfunihash#1#2% %D {\ifcsname\@@univector\number#1\endcsname %D \csname\csname\@@univector#1\endcsname{\utfmod{#2}}\endcsname %D \else %D \unknownchar %D \fi} %D \stoptyping %D %D Or leaner and meaner: %D %D \starttyping %D \def\doutfunihash#1#2% %D {\csname %D \ifcsname\@@univector\number#1\endcsname %D \csname\@@univector#1\endcsname{\utfmod{#2}}% %D \else %D \@@unknownchar %D \fi %D \endcsname} %D \stoptyping %D %D And finaly it became: \def\doutfunihash#1#2% {\ifcsname\@@univector\number#1\endcsname \csname\@@univector#1\endcsname{\utfmod{#2}}% \else \@@unknownchar \fi} \def\utfunihashglyph#1% {\csname\@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname} \def\utfunihashcommand {\@EAEAEA\string\utfunihashglyph} %D For practical purposes, we handle the normal \ASCII\ %D characters here: \def\utfunihashglyph#1% {\csname \ifnum#1<\utf@i \strippedcsname\unicodeasciicharacter\endcsname{#1}% \else \@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname \fi} %D Well, we also want a plug-in mechanism, so we en dup with %D a messy: \def\utfunihashglyph#1% {\@EA\doutfunihashglyph\@EA{\number\numexpr\utfdiv{#1}\@EA\relax\@EA}\@EA{\number\utfmod{#1}}{#1}} % \def\doutfunihashglyph#1#2#3% div mod raw % {\csname % \ifnum#3<\utf@i % \strippedcsname\unicodeasciicharacter\endcsname{#2}% % \else\ifcsname\@@unicommand#1\endcsname % \@@unicommand#1\endcsname{#2}% % \else\ifcsname\@@univector#1\endcsname % \csname\@@univector#1\endcsname{#2}\endcsname % watch the nested csname; it's a speed up % \else % \strippedcsname\unicodeunknowncharacter\endcsname{#2}% % \fi\fi\fi} % % \def\unicodeunknowncharacter#1% % {\unknownchar} % % The next one permits lookahead \def\doutfunihashglyph#1#2#3% div mod raw {\csname utf!\ifnum#3<\utf@i 1\else \ifcsname\@@unicommand#1\endcsname2\else \ifcsname\@@univector #1\endcsname3\else 4\fi\fi\fi !\endcsname{#1}{#2}} \setvalue{utf!1!}#1{\unicodeasciicharacter} % {#2} \setvalue{utf!2!}#1{\csname\@@unicommand#1\endcsname} % {#2} \setvalue{utf!3!}#1#2{\csname\csname\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up \setvalue{utf!4!}#1#2{\unicodeunknowncharacter} \def\unicodeunknowncharacter {\unknownchar} %D With: \let\unicodeasciicharacter\rawcharacter %D Commands are defined with: \def\defineunicodecommand #1 #2% #2{range number}{char number} {\setvalue{\@@unicommand#1}##1{#2{#1}{##1}}} %D For instance: %D %D \starttyping %D \defineutfcommand 81 {\uchar} %D \stoptyping %D Now we can also say: \let\utfunihash\utfunihashglyph %D We also need: \def\utfuniglyphname#1% {{\tttf \ifnum#1<\utf@i \unicodeasciicharacter{#1}% \else \expandafter\string\csname\doutfunihash{\number\utfdiv{#1}}{#1}\endcsname \fi}} %D The combined presentation is implemented by: \def\utfunihashchar #1% {\utfunihash{#1}\low{\infofont\unicodenumber{#1}}} \def\utfunihashsplit#1% {\utfunihash{#1}\low{\infofont\unicodepair{#1}}} \def\utfunihashboth #1% {\utfunihash{#1}\low{\infofont\unicodenumber{#1}->\unicodepair{#1}}} %D Unknown characters get a placeholder. \unexpanded\def\unknownchar % {} prevents problems with arguments {{\hbox{\vrule\!!width.5em\!!height1ex\!!depth\zeropoint}}} %D So far for the conversion macros. The optimizations we %D did, brought down the runtime some 50\%, which, given that %D the majority of characters will be normal \ASCII\ %D characters, the penalty of conversion is not that large. %D \macros %D {useunicodevector} %D %D Since we end up with many encodings, it starts making %D sense to postpone loading, so let's start doing this %D with \UNICODE. \def\doifunicodevector#1% {\doifdefined{\@@univector#1}} \def\useunicodevector[#1]% {\processcommalist[#1]\douseunicodevector} \def\douseunicodevector#1% {\ifundefined{\@@univector#1}% % \readsysfile{\f!unicprefix\threedigits{#1}} \readsysfile{\f!unicprefix\doifnumberelse{#1}{\threedigits{#1}}{#1}.mkii} {\writestatus{unicode}{loading vector #1}} {\writestatus{unicode}{unknown vector #1}}% \fi} %D \macros %D {startunicodevector} %D %D A vector roughly looks as follows. By putting the text %D inside the name constructor, we prevent problems with %D partial expansion in macros and special cases. %D %D \starttyping %D \startunicodevector 0 %D \ifcase\numexpr(#1-159)\or %D \@@unknownchar\or % NO-BREAK SPACE %D exclamdown\or %D textcent\or %D ....\else %D \@@unknowncharacter %D \fi %D \stopunicodevector %D \stoptyping %D %D In vector \type {unix-000} you will find another %D optimizations. By using as less tokens as possible, we limit %D the time skipping branches in the test, and save upto 20\% %D runtime. \def\startunicodevector #1 #2\stopunicodevector {\setgvalue{\@@univector#1}##1{#2}} %D We define (as a practical example) the utf signal FEFF: \ifx\zwnbsp\undefined \let\zwnbsp\relax % zerowidthnonbreakablespace \fi \startunicodevector 254 \expandafter\strippedcsname\ifnum#1<255 \unknownchar\else\zwnbsp\fi \stopunicodevector %D Here we provide another auxiliary macro: %D %D \startbuffer %D \unicodeinfoline{196}{Ä}{LATIN CAPITAL LETTER A WITH DIAERESIS} %D \unicodeinfoline{197}{Å}{LATIN CAPITAL LETTER A WITH RING ABOVE} %D \unicodeinfoline{198}{Æ}{LATIN CAPITAL LETTER AE} %D \unicodeinfoline{199}{Ç}{LATIN CAPITAL LETTER C WITH CEDILLA} %D \unicodeinfoline{200}{È}{LATIN CAPITAL LETTER E WITH GRAVE} %D \unicodeinfoline{201}{É}{LATIN CAPITAL LETTER E WITH ACUTE} %D \stopbuffer %D %D \typebuffer %D %D \start \enableregime[utf]\getbuffer \stop \def\unicodeinfoline#1#2#3% {\ifnum#1>\utf@g % 128 \noindent \hbox {\hbox to 4em{\tttf\unicodehexnumber{#1}\hss}\quad \hbox to 1em{#2\hss}\quad \hbox to 9em{\tttf\unicodenumber{#1}->\unicodepair{#1}\hss}\quad \hbox to 9em{\tttf\let\utfunihash\utfunihashcommand#2\hss}\quad % tricky \lowercase {\tttf#3}}\par \fi} %D The next code permits utf code in hyperlinks: \def\cleanunicodechar#1{.#1.} \appendtoks \let\unicodechar\cleanunicodechar \to \everycleanupfeatures %D We will now hook this mechanism in the existing font %D handler. More documentation will follow. Probably, some %D features in \type {font-uni.tex} will be generalized %D and moved here. \def\unidiv{0} \def\unimod{0} \chardef\utfunihashmode=0 % 0=hash glyph / 1=font glyph \def\utfunifontglyph#1% {\xdef\unidiv{\number\utfdiv{#1}}% \xdef\unimod{\number\utfmod{#1}}% \ifnum#1<\utf@i \char\unimod % \unicodeascii\unimod \else\ifcsname\@@univector\unidiv\endcsname \csname\doutfunihash{\unidiv}{#1}\endcsname \else % so, these can be different fonts ! \unicodeglyph\unidiv\unimod % no \uchar (yet) \fi\fi} \chardef\utfunicommandmode=0 % 1 = hex \def\unicodecommandchar#1#2% {\string\char \ifcase\utfunicommandmode #1:#2\else\lchexnumbers#1:\lchexnumbers#2% \fi} \def\utfunifontcommand#1% {\xdef\unidiv{\number\utfdiv{#1}}% \xdef\unimod{\number\utfmod{#1}}% \ifnum#1<\utf@i \unicodecommandchar\unidiv\unimod \else\ifcsname\@@univector\unidiv\endcsname \@EA\string\csname\doutfunihash{\unidiv}{#1}\endcsname \else \unicodecommandchar\unidiv\unimod \fi\fi} \def\utfunihash {\ifcase\utfunihashmode \@EA\utfunihashglyph \else \@EA\utfunifontglyph \fi} \def\utfunihushcommand {\@EAEAEA\string\utfunihashglyph} \def\utfunihashcommand {\ifcase\utfunihashmode \@EA\utfunihushcommand \else \@EA\utfunifontcommand \fi} %D We can convert from a number to some UTF code with the folowing %D conversion macro. % The first, na\"ive version: % % \def\numbertoutf#1% % {\ifnum#1<128 % \rawcharacter{#1}% % \else\ifnum#1<2048 % \rawcharacter{\the\numexpr192+#1/64\relax}% % \rawcharacter{\the\numexpr128+#1-(#1/64)*64\relax}% % \else % 3 bytes % \rawcharacter{\the\numexpr224+#1/4096\relax}% % \rawcharacter{\the\numexpr128+(#1-(#1/4096)*4096)/128\relax}% % \rawcharacter{\the\numexpr128+(#1-(#1/4096)*4096)+(#1-(#1/4096)*4096)/128\relax}% % \fi\fi} % We have to compensate for etex's rounding (thanks to Taco and % Nanning) for pointing/sorting this out: \chardef \utf@a= 64 \mathchardef \utf@b= 4096 \newcount\utf@c\utf@c=262144 \chardef \utf@d= 192 \chardef \utf@e= 224 \chardef \utf@f= 240 \chardef \utf@g= 128 \mathchardef \utf@h= 256 \chardef \utf@i= 127 \mathchardef \utf@j= 2048 \chardef \utf@k= 32 % div: \numexp#1/#2\relax % mod: \numexp#1-(#1/#2)*#2\relax % \def\numbertoutf#1% % {\ifnum#1<\utf@g % \rawcharacter{#1}% % \else\ifnum#1<2048 % \rawcharacter{\numexpr192+(#1/64)\relax}% 192 + (ud div 64) % \rawcharacter{\numexpr128+(#1-(#1/64)*64)\relax}% 128 + (ud mod 64) % \else\ifnum#1<2097152 % \rawcharacter{\numexpr224+(#1-(#1/4096)\relax}% 224 + (ud div 4096) % \rawcharacter{\numexpr128+(#1-((#1/64)-((#1/64)/64)*64)\relax}% 128 + ((ud div 64) mod 64) % \rawcharacter{\numexpr128+(#1-(#1-(#1/64)*64)\relax}% 128 + (ud mod 64) % \else % % todo % \fi\fi} \def\numbertoutf#1% okay? {\ifnum#1<\utf@g \rawcharacter{#1}% \else\ifnum#1<\utf@j \rawcharacter{\the\numexpr\utf@d+(#1-\utf@k)/\utf@a\relax}% \rawcharacter{\the\numexpr\utf@g+(#1-((#1-\utf@k)/\utf@a)*\utf@a)\relax}% \else \rawcharacter{\the\numexpr\utf@e+(#1-\utf@j)/\utf@b\relax}% \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a\relax}% \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-((#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a)*\utf@a)\relax}% \fi\fi} \def\numbertohexstring#1{0x\uchexnumbers{\utfdiv{#1}}\uchexnumbers{\utfmod{#1}}} \ifnum\texengine=\xetexengine \let\numbertoutf\numbertohexstring \fi \def\uchartoutf#1#2% {\expandafter\numbertoutf\expandafter{\the\numexpr#1*\utf@h+#2\relax}} %D Here is a mapping trick. By mapping the tex specific characters to %D private ones, we can prevent problems with utility files. \defineunicodecommand{240} {\doprivateunicodechar} \def\doprivateunicodechar#1#2{\char#2\relax} \def\registerprivateunicodechar#1 {\letvalue{puc::\number#1}\relax} \registerprivateunicodechar `\% \registerprivateunicodechar `\$ \registerprivateunicodechar `\{ \registerprivateunicodechar `\} \registerprivateunicodechar `\~ \registerprivateunicodechar `\_ \registerprivateunicodechar `\^ \registerprivateunicodechar `\# \def\numbertoutp#1{\numbertoutf{\the\numexpr#1\ifcsname puc::\number#1\endcsname+"F000\fi\relax}} %D In the \XML\ expander we will do: %D %D \starttyping %D \def\getXMLhexcharacter##1{\numbertoutp{"##1}}% %D \def\getXMLdeccharacter##1{\numbertoutp {##1}}% %D \stoptyping %D Goodies: \fetchruntimecommand \showunicodevector {\f!unicprefix\s!run} \fetchruntimecommand \showunicodetable {\f!unicprefix\s!run} %D Well, let's at least preload a few familiar ones. Here we %D also load the \UTF\ regime. \useunicodevector[0,1,2,3,4,5,30,31,32,33,34,35,37,39,251] \useunicodevector[cjk] \useregime[utf] % 31, text mem usage first \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-tst.mkii0000644000175000017500000000241614536300610024720 0ustar hillehille%D \module %D [ file=spec-tst, %D version=2002.12.08, %D title=\CONTEXT\ \PDF\ Macros, %D subtitle=Special Test Macro, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D The code is now merged into spec-*.mkii \doifnotmode{demo}{\endinput} \mainlanguage[vn] \enableregime[utf] \usetypescript[all][computer-modern][t5] \setupinteraction [state=start, title={Thử tiếng Việt}, author={Tác Văn Giả}, keyword={Thử tiếng Việt}] \placebookmarks[chapter,section,subsection] \starttext \placelist[chapter,section,subsection][alternative=c] \chapter{Thử tiếng Việt} \section {Mục thứ nhất} \subsection{Mục nhỏ thứ nhất} Thử tiếng Việt \subsection{Mục nhỏ thứ hai} Thử tiếng Việt \section {Mục thứ hai} \subsection{Mục nhỏ thứ nhất} Thử tiếng Việt \subsection{Mục nhỏ thứ hai} Thử tiếng Việt \section {Mục thứ ba} \subsection{Mục nhỏ thứ nhất} Thử tiếng Việt \subsection{Mục nhỏ thứ hai} Thử tiếng Việt \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/core-sys.mkii0000644000175000017500000002666614536300610024737 0ustar hillehille%D \module %D [ file=core-sys, % moved from main-001 %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=System, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / System} \unprotect %D Version checking: \def\newcontextversion#1% {\doifelse{#1}\contextversion {\let\newcontextversion\gobbleoneargument} {\writeline \writestatus{Fatal Error}{Your format does not match the base files!}% \writeline \writestatus{Format Version}{\contextversion\space\contextmark}% \writestatus{Files Version}{#1}% \batchmode \normalend}} %D End of lines to the output. \TEX\ will map this onto the platform specific %D line ending. I hate this mess. %newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}} \newlinechar=10 \edef\outputnewlinechar{^^J} % in case formats are shared: \def\initializenewlinechar {\bgroup\newlinechar=10\xdef\outputnewlinechar{^^J}\egroup} %D Job names. \def\outputfilename {\@@svfile} \def\inputfilename {\@@svinputfile} \def\operatingsystem{\@@svtype} \let\jobfilename \jobname \let\jobfilesuffix\c!tex \def\splitjobfilename % todo: mkiv {\resetsystemmode{suffix-\jobfilesuffix}% \edef\ascii{\inputfilename}\defconvertedcommand\ascii\ascii \splitstring\ascii\at.\to\jobfilename\and\jobfilesuffix \lowercasestring\jobfilesuffix\to\jobfilesuffix \doifnothing\jobfilename {\let\jobfilename \jobname}% % todo and totest: \defconvertedcommand\jobfilename\jobfilename \doifnothing\jobfilesuffix{\let\jobfilesuffix\c!tex}% \setsystemmode{suffix-\jobfilesuffix}} % Some mechanisms (see x-res-01) use either \jobfilename or % \jobfilename.somesuffix, in which case we need to use the % full name if given or a default (like \jobfilename.xml); % this comes down to replacing the default tex suffix. \def\jobfullname{\jobfilename.\jobfilesuffix} \def\setjobfullname#1% #1 = default if not given {\doifelsenothing\jobfilename {\let\jobfullname\empty} {\doif\jobfilesuffix\c!tex{\edef\jobfullname{\jobfilename.#1}}}} % ... \def\dosetupsystem[#1]% {\getparameters[\??sv][#1]% \setuprandomize[\@@svrandom]% \beforesplitstring\@@svresolution\at dpi\to\@@svresolution \let\outputresolution\@@svresolution \ifcase\@@svn % % 0 : unknown \or \setsystemmode\v!first % 1 : first run \or % % 2 : successive run \or \setsystemmode\v!first % 3 : first and only run \or \setsystemmode\v!last % 4 : (extra) last run \fi % \processaction % [\@@svtype] % %[ mswin=>\edef\@@svline{\rawcharacter{13}\rawcharacter{10}}, % crlf % [ mswin=>\edef\@@svline{\rawcharacter{13}}, % cr % crlf % darwin=>\edef\@@svline{\rawcharacter{13}}, % cr % \s!unknown=>\edef\@@svline{\rawcharacter{10}}]% % lf \splitjobfilename} % \edef\@@svline{\rawcharacter{10}} % unix is the most critical/sensitive system \let\systemendofline\outputnewlinechar % will become obsolete \def\setupsystem {\dosingleargument\dosetupsystem} \def\systemparameter#1{\executeifdefined{\??sv#1}\empty} %D The system modes set by the setup command can be used in %D situations like: %D %D \starttyping %D \startmode[*first] %D \executesystemcommand{cleanupxml text.xml clean-text.xml} %D \stopmode %D %D \starttext %D \typefile{clean-text.xml} %D \stoptext %D \stoptyping \def\setuprandomize[#1]% {\doifsomething{#1} {\bgroup % tex's time is in minutes \scratchcounter\normaltime \processaction [#1] [ \v!small=>\divide\scratchcounter 15, % 900, \v!medium=>\divide\scratchcounter 30, % 1800, \v!big=>\divide\scratchcounter 60, % 3600, \v!normal=>\getnewrandomseed\scratchcounter, \s!default=>\getnewrandomseed\scratchcounter, \s!unknown=>\scratchcounter#1]% \expanded{\setrandomseed{\the\scratchcounter}}% % \writestatus\m!systems{randomseed: \the\scratchcounter}% \egroup}} \setupsystem [\c!directory=, \c!n=0, % 0:unknown 1: one run 2: first 3: successive 4: final run \c!resolution=600dpi, \c!random=, \c!file=\jobname, \c!inputfile=\outputfilename, \c!type=unix, % windows is normally less sensitive to handle \c!bodyfont=\normalizedlocalbodyfontsize] % of iets anders %D Remark: windows programs normally handle \type {cr|lf|crlf} but unix %D is more picky, so we default to the \type {cr}. I never understood why %D \type {crlf} was not used in all systems, since it makes most sense. \def\dostartglobaldefs#1#2% {\edef\!!stringa{\the\globaldefs}% \ifnum\globaldefs#10 \globaldefs-\globaldefs \fi \advance\globaldefs #21 \setevalue{@gd@\the\globaldefs}{\!!stringa}} \def\dostopglobaldefs {\doifdefinedelse{@gd@\the\globaldefs} {\globaldefs\getvalue{@gd@\the\globaldefs}\relax} {\globaldefs\zerocount}} \def\startlocal {\dostartglobaldefs>-} \def\stoplocal {\dostopglobaldefs} \def\startglobal {\dostartglobaldefs<+} \def\stopglobal {\dostopglobaldefs} \def\complexstart[#1]{\bgroup\getvalue{\e!start#1}} \def\complexstop [#1]{\getvalue{\e!stop #1}\egroup} \let\simplestart\bgroup \let\simplestop \egroup \definecomplexorsimple\start \definecomplexorsimple\stop \def\dododefinestartstop[#1][#2]% todo: use indirect commands {\getparameters [\??be#1] [\c!before=, \c!after=, \c!inbetween=, \c!commands=, \c!style=, #2]% \unexpanded\setvalue{#1}% {\groupedcommand {\getvalue{\??be#1\c!commands}% \dostartattributes{\??be#1}\c!style\c!color} {\dostopattributes \getvalue{\??be#1\c!inbetween}}}% \setvalue{\e!start#1}% {\getvalue{\??be#1\c!before}% \bgroup \getvalue{\??be#1\c!commands}% \dostartattributes{\??be#1}\c!style\c!color\empty}% \setvalue{\e!stop#1}% {\dostopattributes \egroup \getvalue{\??be#1\c!after}}} \def\dodefinestartstop[#1][#2]% {\def\docommand##1{\dododefinestartstop[##1][#2]}% \processcommalist[#1]\docommand} \def\definestartstop {\dodoubleargument\dodefinestartstop} \def\dosetupstartstop[#1][#2]% {\def\docommand##1{\getparameters[\??be##1][#2]}% \processcommalist[#1]\docommand} \def\setupstartstop {\dodoubleargument\dosetupstartstop} % \docommand kan niet worden gebruikt omdat deze macro % soms lokaal wordt gebruikt % te zijner tijd: % % \definevariable {pc} % ProtectedCommand % % \def\executeprotected#1% % {\csname\??pc\string#1\endcsname} % % \def\defineprotected#1#2% % {\expandafter\def\csname\??pc\string#2\endcsname} % % \def\defineunprotected#1% % {\def#1} % % \def\doprotected% % {\ifx\next\define % \let\next=\defineprotected % \else % \let\next=\executeprotected % \fi % \next} % % \def\unexpanded% % {\futurelet\next\doprotected} % % \unexpanded\define\ziezo{ziezo} % % \unexpanded\ziezo \def\complexdefine[#1]#2#3% {\ifx#2\undefined \else \showmessage\m!systems4{\string#2}% \fi \ifcase0#1\def#2{#3}% \or\def#2##1{#3}% \or\def#2##1##2{#3}% \or\def#2##1##2##3{#3}% \or\def#2##1##2##3##4{#3}% \or\def#2##1##2##3##4##5{#3}% \or\def#2##1##2##3##4##5##6{#3}% \or\def#2##1##2##3##4##5##6##7{#3}% \or\def#2##1##2##3##4##5##6##7##8{#3}% \or\def#2##1##2##3##4##5##6##7##8##9{#3}% \else\def#2{#3}% \fi} \definecomplexorsimpleempty\define \unexpanded\def\macroname#1% brrr {\executeifdefined{#1}\empty} \def\usecommands#1% {\bgroup \def\docommand##1{\setbox0\hbox{\getvalue{\string##1}##1}}% \processcommalist[#1]\docommand \egroup} \newif\ifforcefileexpansion % handy for document level overload %D The next implementation is about 4 times as faster than a %D processaction alternative on an string of average length. %D Since this feature is used in XML processing, it made sense %D to support this faster alternative. It's installable as well. \def\installexpander#1#2#3% changed, no longer \convert..\to... {\setvalue{\s!do\c!expansion#1l}{#2}% \setvalue{\s!do\c!expansion#1g}{#3}}% % \convertexpanded is obsolete \long\def\doconvertexpanded#1#2#3% #4 % [l|g] \cs {kind} {data} {\csname % that we assign all exp a value \s!do\c!expansion \ifforcefileexpansion \v!yes \else\ifcsname\s!do\c!expansion#3#1\endcsname #3% \else \s!default \fi\fi #1% \endcsname#2}% #3 \long\def\defconvertexpanded {\doconvertexpanded l} \long\def\gdefconvertexpanded{\doconvertexpanded g} \installexpander\v!command \defconvertedcommand \gdefconvertedcommand \installexpander\s!default \defconvertedargument \gdefconvertedargument \installexpander\empty \defconvertedargument \gdefconvertedargument \installexpander\v!no \defconvertedargument \gdefconvertedargument \installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning \installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning \installexpander\v!strict \defreducedargument \gdefreducedargument \installexpander {utf} \defreducedtoutf \gdefreducedtoutf %installexpander {xml} {see xtag-ext} \def\dodefconvertedmeaning#1#2#3% watch the double expansion ! {\bgroup \honorunexpanded \convertencodedtokens % can be overloaded \xdef\@@globalexpanded{#3}% \xdef\@@globalexpanded{\@@globalexpanded}% \egroup #1#2\@@globalexpanded} \def\defconvertedmeaning {\dodefconvertedmeaning\defconvertedcommand} \def\gdefconvertedmeaning{\dodefconvertedmeaning\gdefconvertedcommand} \def\dodefreducedargument#1#2#3% {\begingroup \reducetocoding[raw]% \edef\ascii{#3}% \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}} \def\defreducedargument {\dodefreducedargument\edef} \def\gdefreducedargument{\dodefreducedargument\xdef} % \setupindex[expansion=utf]\index{\eacute} \def\dodefreducedtoutf#1#2#3% {\begingroup \reducetocoding[uc]% \let\uchar\uchartoutf \let\unicodechar\numbertoutf \edef\ascii{#3}% \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}} \def\defreducedtoutf {\dodefreducedtoutf\edef} \def\gdefreducedtoutf{\dodefreducedtoutf\xdef} % old syntax: \def\convertmeaning#1\to#2% watch the double expansion ! {\bgroup \honorunexpanded \convertencodedtokens % can be overloaded \xdef\@@globalexpanded{#1}% \xdef\@@globalexpanded{\@@globalexpanded}% \egroup \defconvertedcommand#2\@@globalexpanded} \def\reduceargument#1\to#2% {\begingroup \reducetocoding[raw]% \edef\ascii{#1}% \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}} \def\reducetoutf#1\to#2% {\begingroup \reducetocoding[uc]% \let\uchar\uchartoutf \let\unicodechar\numbertoutf \edef\ascii{#1}% \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}} % \setvalue{statevalue\v!stop }{0} % \setvalue{statevalue\v!start }{1} % \setvalue{statevalue\v!normaal}{2} % \setvalue{statevalue\v!leeg }{3} % \setvalue{statevalue\v!geen }{4} % % \def\setcurrentstate#1% % {\chardef\currentstate=0\getvalue{statevalue\getvalue{#1\c!state}\relax} % % \ifcase\currentstate ... \def\redo{\dorepeat} % [n*10], kind of obsolete % obsolete, use \dorecurse instead % % \def\herhaler {\repeater} % \def\herhaalmetcommando {\dorepeatwithcommand} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-pdf.mkii0000644000175000017500000003263414536300610024664 0ustar hillehille%D \module %D [ file=spec-pdf, %D version=1997.09.20, %D title=\CONTEXT\ Special Macros, %D subtitle=Adobe \ACROBAT\ version 2.1, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % funny things: mail to yeny: "please geen auto-crlf in special" %D This driver is build on top of the general \PDF\ macros, %D as defined in \type{spec-fdf}, so we inherit that one. \startspecials[pdf][fdf] %D \macros %D {dosetupinteraction, %D doPDFsetopenaction,doPDFsetcloseaction} %D %D Instead of a prolog, we can put the code in the file %D ourselve. %D %D \starttyping %D \definespecial\dosetupinteraction% %D {\special %D {\@@insertpostscriptretain %D /pdfmark where %D {pop} %D {userdict /pdfmark /cleartomark load put} %D ifelse}} %D \stoptyping %D %D We decided to use a prolog file. The following code has to %D be put somewhere, e.g.\ in the startup directory of %D \DISTILLER. To overcome problems, we always embed the fonts, %D but copyrights force us always to make subsets. %D %D \starttyping %D /currentdistillerparams where %D { pop } { userdict /currentdistillerparams { 1 dict } put } ifelse %D %D /setdistillerparams where %D { pop } { userdict /setdistillerparams { pop } put } ifelse %D %D << /AntiAliasColorImages true %D /AntiAliasGrayImages true %D /AntiAliasMonoImages true %D /ConvertCMYKImagesToRGB true %D /MaxSubsetPct 99 %D /EmbedAllFonts true %D /SubSetFonts true >> setdistillerparams %D \stoptyping %D %D Beware, this is the PostScript Level 2 way of doing things. \definespecial\dosetupinteraction {\showmessage\m!interactions{21}{acrobat}} \definespecial\dosetupopenaction {\doPDFsetupopenaction} \definespecial\dosetupcloseaction{\doPDFsetupcloseaction} %D \macros %D {dostartthisislocation} %D %D We share a lot of macros with the \PDFTEX\ driver. First %D the one that handles named destinations. \definespecial\dostartthisislocation {\doPDFstartthisislocation} %D \macros %D {doresetgotowhereever, %D dostartgotolocation,dostartgotorealpage,dostartgotoJS, %D dostartexecutecommand,dostartrunprogram,dostartgotoprofile} %D %D The next specials are responsible for handling references. %D Each goto handler can handle multiple references. \definespecial\doresetgotowhereever {\doPDFresetgotowhereever} \definespecial\dostartgotolocation {\doPDFstartgotolocation} \definespecial\dostartgotorealpage {\doPDFstartgotorealpage} \definespecial\dostartgotoJS {\doPDFstartgotoJS} \definespecial\dostartexecutecommand{\doPDFstartexecutecommand} \definespecial\dostartrunprogram {\doPDFstartrunprogram} \definespecial\dostartgotoprofile {\doPDFstartgotoprofile} %D \macros %D {doflushJSpreamble} %D %D Thanks to the fact that \DISTILLER\ cannot handle multiple %D names entries in the document catalog, for the moment we %D have to misuse the page attributes. Beware, the preambles %D must be packed. \definespecial\doflushJSpreamble#1% {\bgroup \ifoneJSpreamble \edef\sanitizedJScode{\getJSpreamble{#1}}% \expandafter\doPSsanitizeJScode\sanitizedJScode\to\sanitizedJScode \special % nota bene, the page starts at 1 {\@@insertpostscriptretain [ /_objdef{JS:#1} /type /dict /OBJ pdfmark [ {JS:#1} << /S /JavaScript /JS (\sanitizedJScode) >> /PUT pdfmark [ {Page1} << /AA << /O {JS:#1} >> >> /PUT pdfmark}% \else % temporary message \writestatus{\m!specials}{Acrobat workaround needed: please pack JS preambles}% \fi \egroup} %D \macros %D {dostarthide,dostophide} %D %D Hopefully some day hiding navigational things when %D printing \PDF\ files will be supported properly. \definespecial\dostarthide% {\special {\@@insertpostscriptretain [ /DataSource (false \iftrue\string{\else}\fi) /PS pdfmark}} \definespecial\dostophide% {\special {\@@insertpostscriptretain [ /DataSource (\iffalse{\else\string}\fi if) /PS pdfmark}} %D \macros %D {dosetupscreen, %D dosetupidentity} %D %D We can set up the page dimensions, full screen start up %D mode and identify the file with: \definespecial\dosetupscreen {\doPDFsetupscreen \printpaperheight} \definespecial\dosetupartbox {\doPDFsetupartbox \printpaperheight} \definespecial\dosetupcropbox {\doPDFsetupcropbox \printpaperheight} \definespecial\dosetupbleedbox{\doPDFsetupbleedbox\printpaperheight} \definespecial\dosetuptrimbox {\doPDFsetuptrimbox \printpaperheight} \definespecial\dosetupidentity{\doPDFsetupidentity} %D \macros %D {dobeginofprofile,doendofprofile} %D %D Profile support is still far from perfect. This is %D especially due to the fact that the specification of %D threads are sort of fuzzy and depend on the viewer. \definespecial\dobeginofprofile#1#2#3#4% label width height page {\bgroup \setPDFdestination{#1}% \doifsomething{\PDFdestination} {\PointsToBigPoints{#2}\width \PointsToBigPoints{#3}\height \special {\@@insertpostscriptretain [ /Title (\PDFdestination) /Rect [0 0 \width\space\height] /ARTICLE pdfmark}}% \egroup} \definespecial\doendofprofile% {} %D Apart from movies, graphic inclusion is handled in the %D \POSTSCRIPT\ drivers. We just link the movie annotation %D handled to the file inclusion system. \definefileinsertion{yy}{mov}{\doPDFinsertmov} \definefileinsertion{tr}{mov}{\doPDFinsertmov} \definefileinsertion{yy}{avi}{\doPDFinsertmov} \definefileinsertion{tr}{avi}{\doPDFinsertmov} %D \macros %D {doinsertsoundtrack} %D %D Sounds look much like movies: \definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack} %D \macros %D {dostartobject,dostopobject, %D doinsertobject} %D %D Objects, those nice reusable pieces of text and graphics, %D are handled by three specials: \definespecial\dostartobject#1#2#3#4#5% {\bgroup \setbox\nextbox=\hbox\bgroup \bgroup \PointsToBigPoints{#3}\width \PointsToBigPoints{#4}\height \PointsToBigPoints{#5}\depth \dosetobjectreference{#1}{#2}{#1::#2}% \special {\@@insertpostscriptretain [ /BBox [0 -\depth\space \width\space \height] /_objdef {#1::#2} /BP pdfmark}% \egroup} \definespecial\dostopobject% {\special {\@@insertpostscriptretain [ /EP pdfmark}% \egroup \smashbox\nextbox \flushatshipout{\box\nextbox}% \egroup} \definespecial\doinsertobject#1#2% {\hbox {\dogetobjectreference{#1}{#2}\PDFobjectreference \ifx\PDFobjectreference\empty \else \special {\@@insertpostscriptretain [ {\PDFobjectreference} /SP pdfmark}% \fi}} %D \macros %D {doinsertbookmark} %D %D Although personally I never use bookmarks, \CONTEXT\ does %D support them, due to user requests. \definespecial\doinsertbookmark {\doPDFinsertbookmark} %D \macros %D {dosetpagetransition} %D %D Page transitions, again a user wish, is taken care of by: \definespecial\dosetpagetransition{\doPDFsetpagetransition} %D \macros %D {doinsertcomment, doflushcomments} %D %D I never needed (and used) one until now, but here is the %D text annotation special: \definespecial\doinsertcomment{\doPDFinsertcomment} \definespecial\doflushcomments{\doPDFflushcomments} %D \macros %D {dopresetlinefield,dopresettextfield, %D dopresetchoicefield,dopresetpopupfield,dopresetcombofield, %D dopresetpushfield,dopresetcheckfield, %D dopresetradiofield,dopresetradiorecord} %D %D There is nothing enervating to the next few mappings. \definespecial\dopresetlinefield {\doFDFpresetlinefield} \definespecial\dopresettextfield {\doFDFpresettextfield} \definespecial\dopresetchoicefield{\doFDFpresetchoicefield} \definespecial\dopresetpopupfield {\doFDFpresetpopupfield} \definespecial\dopresetcombofield {\doFDFpresetcombofield} \definespecial\dopresetpushfield {\doFDFpresetpushfield} \definespecial\dopresetcheckfield {\doFDFpresetcheckfield} \definespecial\dopresetradiofield {\doFDFpresetradiofield} \definespecial\dopresetradiorecord{\doFDFpresetradiorecord} %D \macros %D {dodefinefieldset,dogetfieldset,doiffieldset} %D %D Field sets, used in resetting and submitting, are handled %D by: \definespecial\dodefinefieldset{\doFDFdefinefieldset} \definespecial\dogetfieldset {\doFDFgetfieldset} \definespecial\doiffieldset {\doFDFiffieldset} %D \macros %D {doregistercalculationset} %D %D The calculation order is defined using: \definespecial\doregistercalculationset{\doFDFregistercalculationset} %D \macros %D {doPDFdestination} %D %D Last we implement the low level pdfmark macros. The %D definitions are rather verbose. First the destination %D macro. \def\doPDFdestination#1% {\special {\@@insertpostscriptretain [ /Dest /#1\space \PDFpageview /DEST pdfmark}} %D \macros %D {doPDFaction,doPDFannotation,doPDFannotationobject, %D ifsharePDFactions} %D %D We have three alternative annotation macros. The first %D handles the goto ones, the second takes care of for instance %D movies and the third is used in fields. \newcount\nofPDFsimilar \newif\ifsharePDFactions \sharePDFactionstrue \def\dodoPDFaction#1#2#3#4% {\ifcollectreferenceactions \xdef\lastPDFaction{#4}% \else \bgroup % does not work well with distiller 4 %\ifsharePDFactions % \ifcase\similarreference\relax % \xdef\lastPDFaction{<<#4>>}% % \or % \global\advance\nofPDFsimilar by 1 % \special % {\@@insertpostscriptretain % [ /_objdef {PDF::sim:\the\nofPDFsimilar} /type /dict /OBJ pdfmark % [ {PDF::sim:\the\nofPDFsimilar} <<#4>>\space /PUT pdfmark}% % \xdef\lastPDFaction{{PDF::sim:\the\nofPDFsimilar}}% % \else % % leave \lastPDFaction untouched % \fi %\else \xdef\lastPDFaction{<<#4>>}% %\fi \PointsToBigPoints{#2}\width \PointsToBigPoints{#1}\height \special {\@@insertpostscriptretain [ #1 /Action \lastPDFaction\space /Rect [0 0 \width\space \height] /Border [0 0 0] \ifhighlighthyperlinks \else /H /N \fi /Subtype /Link /ANN pdfmark}% \egroup \fi} \def\doPDFaction#1#2#3% {\dodoPDFaction\empty{#1}{#2}{#3}} \def\doPDFannotation#1#2#3% {\bgroup \PointsToBigPoints{#1}\width \PointsToBigPoints{#2}\height \special {\@@insertpostscriptretain [ /Rect [0 0 \width\space \height] #3 /ANN pdfmark}% \egroup} \def\doPDFannotationobject#1#2#3#4#5% {\bgroup \PointsToBigPoints{#3}\width \PointsToBigPoints{#4}\height \special {\@@insertpostscriptretain [ /_objdef {#1::#2} /Rect [0 0 \width\space \height] #5 /ANN pdfmark}% \egroup \dosetobjectreference{#1}{#2}{#1::#2}} \def\doPDFactionobject#1#2#3#4#5% {\dodoPDFaction{/_objdef {#1::#2}}{#3}{#4}{#5}% \dosetobjectreference{#1}{#2}{#1::#2}} %D \macros %D {doPDFdictionaryobject,doPDFarrayobject} %D %D These two macros are used to build low level objects. \def\doPDFdictionaryobject#1#2#3% {\special {\@@insertpostscriptretain [ /_objdef {#1::#2} /type /dict /OBJ pdfmark [ {#1::#2} << #3 >> /PUT pdfmark}% \dosetobjectreference{#1}{#2}{#1::#2}} \def\doPDFarrayobject#1#2#3% {\special {\@@insertpostscriptretain [ /_objdef {#1::#2} /type /array /OBJ pdfmark [ {#1::#2} 0 [#3] /PUTINTERVAL pdfmark}% \dosetobjectreference{#1}{#2}{#1::#2}} %D \macros %D {doPDFaddtocatalog,doPDFaddtoinfo, %D doPDFpageattribute,doPDFpagesattribute} %D %D Next come our housekeeping macros. \def\doPDFaddtocatalog#1% {\doifsomething{#1} {\special {\@@insertpostscriptretain [ {Catalog} << #1 >> /PUT pdfmark}}} \def\doPDFaddtoinfo#1% unchecked {\special {\@@insertpostscriptretain [ #1 /DOCINFO pdfmark}} % [ {DocInfo} << #1 >> /PUT pdfmark}} \def\doPDFpageattribute#1% {\doifsomething{#1} {\special {\@@insertpostscriptretain [ {ThisPage} << #1 >> /PUT pdfmark}}} \def\doPDFpageresource#1% {\message{[skipping PDF resource]}} \def\doPDFpagesattribute#1% {\doifsomething{#1} {\special {\@@insertpostscriptretain [ #1 /PAGES pdfmark}}} \let\doPDFresetpageresources \relax \let\doPDFresetpageattributes\relax %D \macros %D {doPDFbookmark} %D %D This is how we force bookmarks entries in the file. \def\doPDFbookmark#1#2#3#4#5% {\scratchcounter#4\advance\scratchcounter\minusone \special {\@@insertpostscriptretain [ /Page \the\scratchcounter\space \ifcase#2 \else/Count \ifcase#5-\fi#2 \fi \PDFpageview /Title (#3) /OUT pdfmark}} %D \macros %D {defaultobjectreference,doPDFgetobjectreference} %D %D The object references are \type{{named}}, that is, no hard %D coded numbers are needed (opposite to \PDFTEX). \def\defaultobjectreference#1#2{#1::#2} \def\doPDFgetobjectreference#1#2#3% {\dogetobjectreference{#1}{#2}#3% \ifx#3\empty\else\edef#3{{#3}}\fi} %\edef#3{\ifx#3\empty null\else{#3}\fi}} % \def\doPDFgetobjectpage #1#2#3{..} % \def\doPDFgetobjectpagereference#1#2#3{..} \def\doPDFgetpagereference#1#2% {\edef#2{{page#1}}} %D Done. \stopspecials \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-8859-16.mkii0000644000175000017500000002675214536300610024754 0ustar hillehille%D \module %D [ file=regi-8859-16, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=iso-8859-16 (Romanian), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for iso-8859-16/Latin10 input encoding (regime) for Romanian. %D %D Usage: \type{\enableregime[8859-16]} (see \type {regi-syn} for %D alternatives calls). \startregime[8859-16] \defineactivetoken 128 {\unknownchar} % 0080 \defineactivetoken 129 {\unknownchar} % 0081 \defineactivetoken 130 {\unknownchar} % 0082 \defineactivetoken 131 {\unknownchar} % 0083 \defineactivetoken 132 {\unknownchar} % 0084 \defineactivetoken 133 {\unknownchar} % 0085 \defineactivetoken 134 {\unknownchar} % 0086 \defineactivetoken 135 {\unknownchar} % 0087 \defineactivetoken 136 {\unknownchar} % 0088 \defineactivetoken 137 {\unknownchar} % 0089 \defineactivetoken 138 {\unknownchar} % 008A \defineactivetoken 139 {\unknownchar} % 008B \defineactivetoken 140 {\unknownchar} % 008C \defineactivetoken 141 {\unknownchar} % 008D \defineactivetoken 142 {\unknownchar} % 008E \defineactivetoken 143 {\unknownchar} % 008F \defineactivetoken 144 {\unknownchar} % 0090 \defineactivetoken 145 {\unknownchar} % 0091 \defineactivetoken 146 {\unknownchar} % 0092 \defineactivetoken 147 {\unknownchar} % 0093 \defineactivetoken 148 {\unknownchar} % 0094 \defineactivetoken 149 {\unknownchar} % 0095 \defineactivetoken 150 {\unknownchar} % 0096 \defineactivetoken 151 {\unknownchar} % 0097 \defineactivetoken 152 {\unknownchar} % 0098 \defineactivetoken 153 {\unknownchar} % 0099 \defineactivetoken 154 {\unknownchar} % 009A \defineactivetoken 155 {\unknownchar} % 009B \defineactivetoken 156 {\unknownchar} % 009C \defineactivetoken 157 {\unknownchar} % 009D \defineactivetoken 158 {\unknownchar} % 009E \defineactivetoken 159 {\unknownchar} % 009F \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK \defineactivetoken 162 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK \defineactivetoken 163 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE \defineactivetoken 164 {\texteuro} % 20AC EURO SIGN \defineactivetoken 165 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK \defineactivetoken 166 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\Scommaaccent} % 0218 LATIN CAPITAL LETTER S WITH COMMA BELOW \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE \defineactivetoken 175 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON \defineactivetoken 179 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE \defineactivetoken 180 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON \defineactivetoken 181 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK \defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON \defineactivetoken 185 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON \defineactivetoken 186 {\scommaaccent} % 0219 LATIN SMALL LETTER S WITH COMMA BELOW \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\OEligature} % 0152 LATIN CAPITAL LIGATURE OE \defineactivetoken 189 {\oeligature} % 0153 LATIN SMALL LIGATURE OE \defineactivetoken 190 {\Ydiaeresis} % 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS \defineactivetoken 191 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE \defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE \defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE \defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX \defineactivetoken 195 {\Abreve} % 0102 LATIN CAPITAL LETTER A WITH BREVE \defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS \defineactivetoken 197 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE \defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE \defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA \defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE \defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE \defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX \defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS \defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE \defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE \defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX \defineactivetoken 207 {\Idiaeresis} % 00CF LATIN CAPITAL LETTER I WITH DIAERESIS \defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE \defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH ACUTE \defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE \defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE \defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX \defineactivetoken 213 {\Ohungarumlaut} % 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE \defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS \defineactivetoken 215 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE \defineactivetoken 216 {\Uhungarumlaut} % 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE \defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE \defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE \defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX \defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS \defineactivetoken 221 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK \defineactivetoken 222 {\Tcommaaccent} % 021A LATIN CAPITAL LETTER T WITH COMMA BELOW \defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S \defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE \defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE \defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX \defineactivetoken 227 {\abreve} % 0103 LATIN SMALL LETTER A WITH BREVE \defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS \defineactivetoken 229 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE \defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE \defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA \defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE \defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE \defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX \defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS \defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE \defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE \defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX \defineactivetoken 239 {\idiaeresis} % 00EF LATIN SMALL LETTER I WITH DIAERESIS \defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE \defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE \defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE \defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE \defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX \defineactivetoken 245 {\ohungarumlaut} % 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE \defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS \defineactivetoken 247 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE \defineactivetoken 248 {\uhungarumlaut} % 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE \defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE \defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE \defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX \defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS \defineactivetoken 253 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK \defineactivetoken 254 {\tcommaaccent} % 021B LATIN SMALL LETTER T WITH COMMA BELOW \defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/font-xtx.mkii0000644000175000017500000003541314536300610024750 0ustar hillehille%D \module %D [ file=font-xtx, %D version=2004.09.11, %D title=\CONTEXT\ Font Macros, %D subtitle=\XETEX\ Hacks, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \ifnum\texengine=\xetexengine \writestatus{loading}{ConTeXt Font Macros / XeTeX Hacks} \else \endinput \fi \unprotect %D Features: % \definefontfeature[default] [liga=yes,texligatures=yes,texquotes=yes] % \definefontfeature[default-caps][liga=yes,texligatures=yes,texquotes=yes,smcp=yes,script=latn] % % \starttypescript [serif] [palatino-nova-regular] [name] % \definefontsynonym[Serif] [palatinonova-regular][features=default] % \definefontsynonym[SerifCaps][palatinonova-regular][features=default-caps] % also sets Serif % \stoptypescript % % \starttypescript [serif] [palatino-nova-regular] [name] % \definefontsynonym[Serif] [palatinonova-regular*default] % \definefontsynonym[SerifCaps] [palatinonova-regular*default-caps] % \stoptypescript % \definetypeface[mainface][rm][serif][palatino-nova-regular][default] \setupbodyfont[mainface] % % \starttext % ``Test'' -- --- ff fi fl \sc ``Test'' -- --- ff fi fl % \stoptext % \starttext % \definefont % [blabla] % [name:Latin Modern Something] % \definefont % [blabla] % [file:texnansi-lmr10] % \blabla test % \definefont % [blabla] % [texnansi-lmtt10] % \blabla test % \stoptext \def\definefontfeature {\dotripleargument\dodefinefontfeature} \def\dododefinefontfeature#1% {\edef\!!stringa{\ifx\!!stringa\empty\else\!!stringa,\fi\executeifdefined{\??fa#1}\empty}} \def\dodefinefontfeature[#1][#2][#3]% {\doifassignmentelse{#2} {\setevalue{\??fa#1}{#2}} {\let\!!stringa\empty \processcommalist[#2]\dododefinefontfeature \setevalue{\??fa#1}{\ifx\!!stringa\empty\else\!!stringa,\fi#3}}} \definefontfeature [default] [liga=yes,kern=yes,tlig=yes,trep=yes] % texligatures=yes,texquotes=yes \definefontfeature [smallcaps] [liga=yes,kern=yes,tlig=yes,trep=yes,smcp=yes] % texligatures=yes,texquotes=yes \definefontfeature [oldstyle] [liga=yes,kern=yes,tlig=yes,trep=yes,onum=yes] % texligatures=yes,texquotes=yes \definefontfeature % no calt [arabic] [language=dflt,script=arab, init=yes,medi=yes,fina=yes,isol=yes, liga=yes,dlig=yes,rlig=yes,clig=yes, mark=yes,mkmk=yes,kern=yes,curs=yes] \definefontfeature [none] [features=no] %D Overloaded: \def\getfontfileparameters#1% can be simpler for mkii (no features) {\edef\@@truefontname{\truefontname{#1}}% \edef\currentfontfileencoding{\truefontdata\@@truefontname\s!encoding}% \edef\currentfontfilemapping {\truefontdata\@@truefontname\s!mapping }% \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}% \edef\currentfontfilefeatures{\truefontdata\@@truefontname\s!features}} \def\updatefontparameters {\edef\@@fontencoding{\truefontdata\fontfile \s!encoding}% \edef\@@fontmapping {\truefontdata\fontfile \s!mapping }% \edef\@@fonthandling{\truefontdata\somefontname\s!handling}% \edef\@@fontfeatures{\truefontdata\fontfile \s!features}% \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}} %D Loading: %D %D for some reason xetex does not support [filename] for tfm files and %D quotes also behave kind of strange " vs ' vs [ vs ... %D %D \starttyping %D \font\myfont = msam7 % ok %D \font\myfont = "msam7" % also ok %D \font\myfont = "msam7" at 8pt % error %D \stoptyping \newconditional\tracexetexfonts %D Because \XETEX\ is not that fast on locating fonts we cache lookups so %D that we minimize the test. It saves a little bit of runtime, depending %D on the number of fonts loaded (which is normally not that much). \def\doiffoundXTXfontelse#1#2% {\ifcsname xtx@fnt@#2\somefontspec\endcsname \ifconditional\tracexetexfonts \writestatus\m!fonts{already checked #1: #2\somefontspec\space (state: \number\csname xtx@fnt@#2\somefontspec\endcsname)}% \fi \else \suppressfontnotfounderror\plusone \font\xetextempfont=#2\somefontspec\relax \suppressfontnotfounderror\zerocount \edef\xetextempfont{\fontname\xetextempfont}% \global\expandafter\chardef\csname xtx@fnt@#2\somefontspec\endcsname \ifx\xetextempfont\nullfontname \zerocount \ifconditional\tracexetexfonts \writestatus\m!fonts{not found #1: #2\somefontspec}% \fi \else \plusone \ifconditional\tracexetexfonts \writestatus\m!fonts{found #1: #2\somefontspec}% \fi \fi \fi \ifcase\csname xtx@fnt@#2\somefontspec\endcsname \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} \def\docheckfontfilenameprefix#1:#2:#3#4\relax {\edef\!!stringa{#1}% \edef\!!stringb{#2}% \ifx\!!stringb\empty % no prefix \let\checkedfontfile\!!stringa \doiffoundXTXfontelse{1a}{\checkedfontfile\checkedfontfeatures} {\edef\checkedfontfile{\checkedfontfile\checkedfontfeatures}} {\doiffoundXTXfontelse{1b}{"\checkedfontfile\checkedfontfeatures"} {\edef\checkedfontfile{"\checkedfontfile\checkedfontfeatures"}} {\doiffoundXTXfontelse{1c}{"[\checkedfontfile]\checkedfontfeatures"} {\edef\checkedfontfile{"[\checkedfontfile]\checkedfontfeatures"}} {}}}% \else\ifx\!!stringa\v!file % force file, only file check when no spaces \let\checkedfontfile\!!stringb \doiffoundXTXfontelse{2a}{"[\checkedfontfile]\checkedfontfeatures"} {\edef\checkedfontfile{"[\checkedfontfile]\checkedfontfeatures"}} {\doiffoundXTXfontelse{2b}{"\checkedfontfile\checkedfontfeatures"} {\edef\checkedfontfile{"\checkedfontfile\checkedfontfeatures"}} {}}% \else\ifx\!!stringa\v!name % force name, always lookup by xetex itself, "" forces otf/ttf/type1 \edef\checkedfontfile{"\!!stringb\checkedfontfeatures"}% \ifconditional\tracexetexfonts \writestatus\m!fonts{no checking 3a: \checkedfontfile}% \fi \else % whatever, maybe even xetex spec, forget about features \edef\checkedfontfile{"\!!stringa\!!stringb"}% \ifconditional\tracexetexfonts \writestatus\m!fonts{no checking 3b: \checkedfontfile}% \fi \fi\fi\fi} \newconditional\enabledfontfeatures \def\checkfontfilename% -- todo: integrate so that we call do.. directly {\expandafter\docheckfontfilename\fontfile*\empty*\relax} \def\docheckfontfilename#1*#2#3*#4\relax % class overrules file {\settrue\enabledfontfeatures \edef\checkedfontfeatures {\expandafter\ifx\csname\fontclass\s!features\endcsname\empty \ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi \else\expandafter\ifx\csname\fontclass\s!features\endcsname\relax % redundant, will go away \ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi \else \csname\fontclass\s!features\endcsname \fi\fi}% \ifx\checkedfontfeatures\empty % done \else \edef\checkedfontfeatures{\executeifdefined{\??fa\checkedfontfeatures}\empty}% \ifx\checkedfontfeatures\empty % done \else \let\convertedfontfeatures\empty \processcommacommand[\checkedfontfeatures]\doconvertfontfeatures % raw \ifx\convertedfontfeatures\empty \let\checkedfontfeatures\empty \else\ifconditional\enabledfontfeatures \edef\checkedfontfeatures{:\convertedfontfeatures}% \else \let\checkedfontfeatures\empty \fi\fi \fi \fi \docheckfontfilenameprefix#1:\empty:\empty\relax \doshowcheckedfontfeatures} \edef\@@fontfeaturesareno {features\v!no} \edef\@@fontfeaturesareoff{features\v!off} \def\dodoconvertfontfeatures#1=#2#3=#4\relax {\ifx#2\empty % invalid feature \else\ifcsname @xtx@#1@#2#3\endcsname \expandafter\ifx\csname @xtx@#1@#2#3\endcsname\empty\else \edef\convertedfontfeatures{\convertedfontfeatures\csname @xtx@#1@#2#3\endcsname;}% \fi \else \edef\!!stringa{#1}% \edef\!!stringb{#2#3}% \edef\!!stringc{#1#2#3}% \ifx\!!stringc\@@fontfeaturesareoff \setfalse\enabledfontfeatures \else\ifx\!!stringc\@@fontfeaturesareno \setfalse\enabledfontfeatures \else \edef\convertedfontfeatures {\convertedfontfeatures \ifx\!!stringb\v!yes +\!!stringa \else\ifx\!!stringb\v!on +\!!stringa \else\ifx\!!stringb\v!no -\!!stringa \else\ifx\!!stringb\v!off -\!!stringa \else \!!stringa=\!!stringb \fi\fi\fi\fi;}% \fi\fi \fi\fi} \def\doconvertfontfeatures#1% {\dodoconvertfontfeatures#1=\empty=\relax} \def\remapfontfeature #1 #2 #3 {\setevalue{@xtx@#1@#2}{#3}} % this may move to another file, maybe font-xtx \remapfontfeature tlig yes mapping=tlig %remapfontfeature tlig no mapping= \remapfontfeature trep yes {} \remapfontfeature trep no {} \remapfontfeature texligatures yes mapping=tlig %remapfontfeature texligatures no mapping= %remapfontfeature texquotes yes mapping=tex-text %remapfontfeature texquotes no mapping= %D Variants: \unexpanded\def\variant[#1]% {\dosetscaledfont \font\variantfont\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}} at \scaledfont \variantfont} %D Possible optimizations: % \def\updatefontparameters % {\edef\@@fontfeatures{\truefontdata\fontfile\s!features}% % \edef\@@fontskewchar{\truefontdata\fontfile\s!skewchar}} % \def\setfontcharacteristics % {\updatefontparameters % redundant, will go away, faster too % \the\everyfont} % \let\synchronizepatternswithfont\relax %D Names: % We need to move the feature into the filename else it may be % overloaded by another reference. For instance the definition of % a regular and caps variant can use the same font. % We could use an indirect method ... store in 'array' and refer to % slot. \def\definefontsynonym[#1]#2[#3]% {\edef\@@fontname{#1}% \edef\@@fontfile{#3}% \doifnextoptionalelse\dodefinefontsynonym\nodefinefontsynonym} \def\nodefinefontsynonym {\@EA\let\csname\??ff\fontclass\@@fontname\endcsname\@@fontfile % \@EA\let\csname\??ff\@@fontfile\s!features\endcsname\undefined } \def\dodefinefontsynonym[#1]% {\edef\@@fontdata{#1}% \ifx\@@fontdata\empty \nodefinefontsynonym \else \ifx\fontclass\empty \getfontparameters \else \getglobalfontparameters \fi \ifcsname\??ff\@@fontfile\s!features\endcsname \@EA\edef\csname\??ff\fontclass\@@fontname\endcsname{\@@fontfile*\csname\??ff\@@fontfile\s!features\endcsname}% \@EA\let\csname\??ff\@@fontfile\s!features\endcsname\undefined \else \nodefinefontsynonym \fi \fi} \let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater % simple version % % \def\truefontname#1% % {\@EA\dotruefontname#1*\relax} % % \def\dotruefontname#1*#2\relax % {\ifcsname\??ff\fontclass#1\endcsname % \@EA\truefontname\csname\??ff\fontclass#1\endcsname % \else\ifcsname\??ff#1\endcsname % \@EA\truefontname\csname\??ff#1\endcsname % \else % #1% % \fi\fi} % % last counts % % \def\truefontname#1% % {\@EA\dotruefontname#1*\empty*\relax} % % \def\dotruefontname#1*#2#3*#4\relax % {\ifcsname\??ff\fontclass#1\endcsname % \ifx#2\empty % \@EA\truefontname\csname\??ff\fontclass#1\endcsname % \else % \@EA\truefontname\csname\??ff\fontclass#1\endcsname*#2#3% % \fi % \else\ifcsname\??ff#1\endcsname % \ifx#2\empty % \@EA\truefontname\csname\??ff#1\endcsname % \else % \@EA\truefontname\csname\??ff#1\endcsname*#2#3% % \fi % \else % \ifx#2\empty % #1% % \else % #1*#2#3% % \fi % \fi\fi} % % first counts \def\truefontname#1% {\@EA\dotruefontname#1*\empty*\relax} \def\dotruefontname#1*#2#3*#4\relax {\ifcsname\??ff\fontclass#1\endcsname \ifx#2\empty \@EA\truefontname\csname\??ff\fontclass#1\endcsname \else \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname*#2#3% \fi \else\ifcsname\??ff#1\endcsname \ifx#2\empty \@EA\truefontname\csname\??ff#1\endcsname \else \@EA\redotruefontname\csname\??ff#1\endcsname*#2#3% \fi \else #1\ifx#2\empty\else*#2#3\fi \fi\fi} \def\redotruefontname#1% {\@EA\dodotruefontname#1*\relax} \def\dodotruefontname#1*#2\relax {\ifcsname\??ff\fontclass#1\endcsname \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname \else\ifcsname\??ff#1\endcsname \@EA\redotruefontname\csname\??ff#1\endcsname \else #1% \fi\fi} %D Default: \def\defaultfontfile{file:lmmono10-regular} %D Maybe: % \def\updatefontparameters % {\edef\@@fontfeatures{\truefontdata\fontfile \s!features}% % \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}} % \def\setfontcharacteristics % {%\updatefontparameters % redundant, will go away, faster too % \the\everyfont % \synchronizepatternswithfont} \protect \endinput % \starttypescript[serif] [myzhfont] % \definefontsynonym [Serif] [file:SimSun] % \definefontsynonym [SerifBold] [file:SimSun] % \definefontsynonym [SerifItalic] [file:SimSun] % \definefontsynonym [SerifBoldItalic] [file:SimSun] % \stoptypescript % \starttypescript[sans] [myzhfont] % \definefontsynonym [Sans] [file:SimSun] % \definefontsynonym [SansBold] [file:SimSun] % \definefontsynonym [SansItalic] [file:SimSun] % \definefontsynonym [SansBoldItalic] [file:SimSun] % \stoptypescript % \starttypescript[mono] [myzhfont] % \definefontsynonym [Mono] [file:SimSun] % \definefontsynonym [MonoBold] [file:SimSun] % \definefontsynonym [MonoItalic] [file:SimSun] % \definefontsynonym [MonoBoldItalic] [file:SimSun] % \stoptypescript % \definetypeface [myzhfont] [rm] [serif][myzhfont] [default] % \definetypeface [myzhfont] [ss] [sans] [myzhfont] [default] % \definetypeface [myzhfont] [tt] [mono] [myzhfont] [default] % \starttext % % on windows: make sure fonts.conf has no cache mentioned % % % % 64 sec xetex, 11 sec luatex (56 sec xetex when \nobigmath) % % % \setupbodyfont[myzhfont] \dorecurse{10000}{{hello {\switchtobodyfont[myzhfont] 你好}}\par} % % % % 67 sec xetex, 11.5 sec luatex % % % % \dorecurse{10000}{{hello {\switchtobodyfont[myzhfont] 你好}}\par} % % % % 5 sec xetex, 7 sec luatex % % % % \setupbodyfont[myzhfont] \dorecurse{10000}{{hello {你好}}\par} % % % % 5 sec xetex, 7 sec luatex % % % % \setupbodyfont[myzhfont] \dorecurse{10000}{{\bf hello {你好}}\par} % \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-030.mkii0000644000175000017500000000626214536300610024417 0ustar hillehille%D \module %D [ file=unic-030, %D version=2004.11.18, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 30, %D author=Adam Lindsay, %D date=\currentdate, %D copyright={Adam Lindsay \& Hans Hagen}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startunicodevector 30 \expandafter\strippedcsname \ifcase\numexpr#1-160\relax \Adotbelow \or \adotbelow \or \Ahook \or \ahook \or \Acircumflexacute \or \acircumflexacute \or \Acircumflexgrave \or \acircumflexgrave \or \Acircumflexhook \or \acircumflexhook \or \Acircumflextilde \or \acircumflextilde \or \Acircumflexdotbelow \or \acircumflexdotbelow \or \Abreveacute \or \abreveacute \or \Abrevegrave \or \abrevegrave \or \Abrevehook \or \abrevehook \or \Abrevetilde \or \abrevetilde \or \Abrevedotbelow \or \abrevedotbelow \or \Edotbelow \or \edotbelow \or \Ehook \or \ehook \or \Etilde \or \etilde \or \Ecircumflexacute \or \ecircumflexacute \or \Ecircumflexgrave \or \ecircumflexgrave \or \Ecircumflexhook \or \ecircumflexhook \or \Ecircumflextilde \or \ecircumflextilde \or \Ecircumflexdotbelow \or \ecircumflexdotbelow \or \Ihook \or \ihook \or \Idotbelow \or \idotbelow \or \Odotbelow \or \odotbelow \or \Ohook \or \ohook \or \Ocircumflexacute \or \ocircumflexacute \or \Ocircumflexgrave \or \ocircumflexgrave \or \Ocircumflexhook \or \ocircumflexhook \or \Ocircumflextilde \or \ocircumflextilde \or \Ocircumflexdotbelow \or \ocircumflexdotbelow \or \Ohornacute \or \ohornacute \or \Ohorngrave \or \ohorngrave \or \Ohornhook \or \ohornhook \or \Ohorntilde \or \ohorntilde \or \Ohorndotbelow \or \ohorndotbelow \or \Udotbelow \or \udotbelow \or \Uhook \or \uhook \or \Uhornacute \or \uhornacute \or \Uhorngrave \or \uhorngrave \or \Uhornhook \or \uhornhook \or \Uhorntilde \or \uhorntilde \or \Uhorndotbelow \or \uhorndotbelow \or \Ygrave \or \ygrave \or \Ydotbelow \or \ydotbelow \or \Yhook \or \yhook \or \Ytilde \or \ytilde \else \unknownchar \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-run.mkii0000644000175000017500000004031614536300610024675 0ustar hillehille%D \module %D [ file=page-run, %D version=2000.10.20, %D title=\CONTEXT\ Page Macros, %D subtitle=Runtime Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Page Macros / Runtime Macros} \unprotect \gdef\doshowprint[#1][#2][#3]% {\framed [\c!offset=\v!overlay, \c!strut=\v!no] {\forgetall \dontcomplain \globaldefs\minusone \dimen0\pagegoal \definepapersize[X][\c!width=4em, \c!height=6em]% \definepapersize[Y][\c!width=12em,\c!height=14em]% \setuppapersize[#1,X][#2,Y]% \setuplayout[#3]% \setbox0\vbox {\framed [\c!offset=\v!overlay,\c!strut=\v!no, \c!width=\paperwidth,\c!height=\paperheight] {\ss ABC\par DEF}}% \doublesidedfalse \def\cutmarklength{.5em}% \addpagecutmarks0% \replicatepagebox0% \scalepagebox0% \mirrorpaperbox0% \orientpaperbox0% \centerpagebox0% \mirrorprintbox0% \orientprintbox0% \offsetprintbox0% \pagegoal\dimen0 \box0}} \gdef\showprint {\dotripleempty\doshowprint} % \switchnaarkorps[8pt] % % \startcombinatie[4*4] % {\toonprint} {\strut} % {\toonprint[][][plaats=midden]} {\type{plaats=midden}} % {\toonprint[][][plaats=midden,markering=aan]} {\type{markering=aan}\break % \type{plaats=midden}} % {\toonprint[][][plaats=midden,markering=aan,nx=2]} {\type{markering=aan}\break % \type{plaats=midden}\break % \type{nx=2}} % {\toonprint[][][plaats=links]} {\type{plaats=links}} % {\toonprint[][][plaats=rechts]} {\type{plaats=rechts}} % {\toonprint[][][plaats={links,onder}]} {\type{plaats={links,onder}}} % {\toonprint[][][plaats={rechts,onder}]} {\type{plaats={rechts,onder}}} % {\toonprint[][][nx=2,ny=1]} {\type{nx=2,ny=1}} % {\toonprint[][][nx=1,ny=2]} {\type{nx=1,ny=2}} % {\toonprint[][][nx=2,ny=2]} {\type{nx=2,ny=2}} % {\toonprint[][][nx=2,ny=2,plaats=midden]} {\type{nx=2,ny=2}\break % \type{plaats=midden}} % {\toonprint[][][rugoffset=3pt]} {\type{rugoffset=.5cm}} % {\toonprint[][][kopoffset=3pt]} {\type{kopoffset=.5cm}} % {\toonprint[][][schaal=1.5]} {\type{schaal=1.5}} % {\toonprint[][][schaal=0.8]} {\type{schaal=0.8}} % \stopcombinatie % % \startcombinatie[3*4] % {\toonprint[liggend][][plaats=midden]} {\type{liggend}} % {\toonprint[][liggend][plaats=midden]} {\strut\break\type{liggend}} % {\toonprint[liggend][liggend][plaats=midden]} {\type{liggend}\break\type{liggend}} % {\toonprint[90][][plaats=midden]} {\type{90}} % {\toonprint[][90][plaats=midden]} {\strut\break\type{90}} % {\toonprint[90][90][plaats=midden]} {\type{90}\break\type{90}} % {\toonprint[180][][plaats=midden]} {\type{180}} % {\toonprint[][180][plaats=midden]} {\strut\break\type{180}} % {\toonprint[180][180][plaats=midden]} {\type{180}\break\type{180}} % {\toonprint[gespiegeld][][plaats=midden]} {\type{gespiegeld}} % {\toonprint[][gespiegeld][plaats=midden]} {\strut\break\type{gespiegeld}} % {\toonprint[gespiegeld][gespiegeld][plaats=midden]} {\type{gespiegeld}\break\type{gespiegeld}} % \stopcombinatie \gdef\doshowframe[#1][#2]% {\ifsecondargument \setupbackgrounds [\v!page] [\c!frame=\v!on, \c!corner=\v!rectangular, \c!frameoffset=\!!zeropoint, \c!framedepth=\!!zeropoint, \c!framecolor=layout:page] \setupbackgrounds [#1][#2] [\c!background=, \c!frame=\v!on, \c!corner=\v!rectangular, \c!frameoffset=\!!zeropoint, \c!framedepth=\!!zeropoint, \c!framecolor=] \else\iffirstargument \showframe [\v!header,\v!text,\v!footer] [#1] \else \showframe [\v!header,\v!text,\v!footer] [\v!leftedge,\v!leftmargin, \v!text, \v!rightmargin,\v!rightedge] \fi\fi \setupbackgrounds [\c!state=\v!repeat]} \gdef\showframe{\dodoubleempty\doshowframe} \gdef\showsetupA#1#2% {#1&\PtToCm{\the#2}&\the#2&\tttf\string#2\cr} \gdef\showsetupB#1#2#3% {#1&#3&\tttf\string#3\cr} % \startinterface english % english is fallback \gdef\showsetups {\noindent \vbox {\forgetall \dontcomplain \switchtobodyfont[\v!small] \tabskip\zeropoint \halign {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr \showsetupA{paperheight} \paperheight \showsetupA{paperwidth} \paperwidth \showsetupA{printpaperheight} \printpaperheight \showsetupA{printpaperwidth} \printpaperwidth \showsetupA{topspace} \topspace \showsetupA{backspace} \backspace \showsetupA{height} \makeupheight \showsetupA{width} \makeupwidth \showsetupA{top} \topheight \showsetupA{topdistance} \topdistance \showsetupA{header} \headerheight \showsetupA{headerdistance} \headerdistance \showsetupA{textheight} \textheight \showsetupA{footerdistance} \footerdistance \showsetupA{footer} \footerheight \showsetupA{bottomdistance} \bottomdistance \showsetupA{bottom} \bottomheight \showsetupA{leftedge} \leftedgewidth \showsetupA{leftedgedistance} \leftedgedistance \showsetupA{leftmargin} \leftmarginwidth \showsetupA{leftmargindistance} \leftmargindistance \showsetupA{textwidth} \textwidth \showsetupA{rightmargindistance}\rightmargindistance \showsetupA{rightmargin} \rightmarginwidth \showsetupA{rightedgedistance} \rightedgedistance \showsetupA{rightedge} \rightedgewidth \showsetupB{bodyfontsize} \the \globalbodyfontsize \showsetupB{line} \relax \normallineheight \showsetupB{height} \relax \strutheightfactor \showsetupB{depth} \relax \strutdepthfactor \showsetupB{topskip} \relax \topskipfactor \showsetupB{maxdepth} \relax \maxdepthfactor}}} % \stopinterface \startinterface dutch \gdef\showsetups {\noindent \vbox {\forgetall \dontcomplain \switchtobodyfont[\v!small] \tabskip\zeropoint \halign {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr \showsetupA{papierhoogte} \papierhoogte \showsetupA{papierbreedte} \papierbreedte \showsetupA{printpapierhoogte} \printpapierhoogte \showsetupA{printpapierbreedte} \printpapierbreedte \showsetupA{kopwit} \kopwit \showsetupA{rugwit} \rugwit \showsetupA{snijwit} \snijwit \showsetupA{hoogte} \zethoogte \showsetupA{breedte} \zetbreedte \showsetupA{boven} \bovenhoogte \showsetupA{bovenafstand} \bovenafstand \showsetupA{hoofd} \hoofdhoogte \showsetupA{hoofdafstand} \hoofdafstand \showsetupA{teksthoogte} \teksthoogte \showsetupA{voetafstand} \voetafstand \showsetupA{voet} \voethoogte \showsetupA{onderafstand} \onderafstand \showsetupA{onder} \onderhoogte \showsetupA{linkerrand} \linkerrandbreedte \showsetupA{linkerrandafstand} \linkerrandafstand \showsetupA{linkermarge} \linkermargebreedte \showsetupA{linkermargeafstand} \linkermargeafstand \showsetupA{tekstbreedte} \tekstbreedte \showsetupA{rechtermargeafstand}\rechtermargeafstand \showsetupA{rechtermarge} \rechtermargebreedte \showsetupA{rechterrandafstand} \rechterrandafstand \showsetupA{rechterrand} \rechterrandbreedte \showsetupB{korps} \the \globalbodyfontsize \showsetupB{regel} \relax \normallineheight \showsetupB{hoogte} \relax \strutheightfactor \showsetupB{diepte} \relax \strutdepthfactor \showsetupB{boven} \relax \topskipfactor \showsetupB{onder} \relax \maxdepthfactor}}} \stopinterface % todo: \showsetupA{rugwit} \rugwit \startinterface german \gdef\showsetups% {\noindent \vbox {\forgetall \dontcomplain \switchtobodyfont[\v!small] \tabskip\zeropoint \halign {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr \showsetupA{papierhoehe} \papierhoehe \showsetupA{papierbreite} \papierbreite \showsetupA{printpapierhoehe} \printpapierhoehe \showsetupA{printpapierbreite} \printpapierbreite \showsetupA{kopfweite} \kopfweite \showsetupA{rumpfweite} \rumpfweite \showsetupA{hoehe} \satzhoehe \showsetupA{breite} \satzbreite \showsetupA{oben} \hoeheoben \showsetupA{abstandoben} \abstandoben \showsetupA{kopfzeile} \kopfzeilenhoehe \showsetupA{kopfzeilenabstand} \kopfzeilenabstand \showsetupA{texthoehe} \texthoehe \showsetupA{fusszeileabstand} \fusszeileabstand \showsetupA{fusszeilen} \fusszeilenhoehe \showsetupA{abstandunten} \abstandunten \showsetupA{hoeheunten} \hoeheunten \showsetupA{linkerrand} \breitelinkerrand \showsetupA{abstandlinkerrand} \abstandlinkerrand \showsetupA{linkemarginal} \linkemarginalbreite \showsetupA{linkemarginalafstand} \linkemarginalafstand \showsetupA{textbreite} \textbreite \showsetupA{rechtemarginalafstand}\rechtemarginalafstand \showsetupA{rechtemarginal} \rechtemarginalbreite \showsetupA{abstandrechterrand} \abstandrechterrand \showsetupA{rechterrand} \breiterechterrand \showsetupB{fliesstext} \the \globalbodyfontsize \showsetupB{linie} \relax \normallineheight \showsetupB{hoehe} \relax \strutheightfactor \showsetupB{tiefe} \relax \strutdepthfactor \showsetupB{topskip} \relax \topskipfactor \showsetupB{maxdepth} \relax \maxdepthfactor}}} \stopinterface \startinterface czech \gdef\showsetups% {\noindent \vbox {\forgetall \dontcomplain \switchtobodyfont[\v!small] \tabskip\zeropoint \halign {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr \showsetupA{vyskapapiru} \vyskapapiru \showsetupA{sirkapapiru} \sirkapapiru \showsetupA{vyskatiskpapiru} \vyskatiskpapiru \showsetupA{sirkatiskpapiru} \sirkatiskpapiru \showsetupA{hornimezera} \hornimezera \showsetupA{spodnimezera} \spodnimezera \showsetupA{vyska} \vyskasazby \showsetupA{breite} \sirkasazby \showsetupA{vyskatextu} \vyskatextu \showsetupA{sirkatextu} \sirkatextu \showsetupA{horejsek} \vyskahorejsku \showsetupA{vzdalenosthorejsku} \vzdalenosthorejsku \showsetupA{zahlavi} \vyskazahlavi \showsetupA{vzdalenostzahlavi} \vzdalenostzahlavi \showsetupA{fusszeileabstand} \vzdalenostupati \showsetupA{upati} \vyskaupati \showsetupA{vzdalenostspodku} \vzdalenostspodku \showsetupA{spodek} \vyakaspodku \showsetupA{levyokraj} \sirkalevehookraje \showsetupA{vzdalenostlevehookraje} \vzdalenostlevehookraje \showsetupA{levamarginalie} \sirkalevemarginalie \showsetupA{vzdalenostlevemarginalie} \vzdalenostlevemarginalie \showsetupA{vzdalenostpravemarginalie}\vzdalenostpravemarginalie \showsetupA{pravamarginalie} \sirkapravemarginalie \showsetupA{vzdalenostpravehookraje} \vzdalenostpravehookraje \showsetupA{pravyokraj} \sirkapravehookraje \showsetupB{zakladnivelikost} \the \globalbodyfontsize \showsetupB{linka} \relax \normallineheight \showsetupB{vyska} \relax \strutheightfactor \showsetupB{hloubka} \relax \strutdepthfactor \showsetupB{topskip} \relax \topskipfactor \showsetupB{maxdepth} \relax \maxdepthfactor}}} \stopinterface \startinterface romanian \gdef\showsetups% {\noindent \vbox {\forgetall \dontcomplain \switchtobodyfont[\v!small] \tabskip\zeropoint \halign {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr \showsetupA{paperheight} \paperheight \showsetupA{paperwidth} \paperwidth \showsetupA{printpaperheight} \printpaperheight \showsetupA{printpaperwidth} \printpaperwidth \showsetupA{topspace} \topspace \showsetupA{backspace} \backspace \showsetupA{height} \makeupheight \showsetupA{width} \makeupwidth \showsetupA{top} \topheight \showsetupA{topdistance} \topdistance \showsetupA{header} \headerheight \showsetupA{headerdistance} \headerdistance \showsetupA{textheight} \textheight \showsetupA{footerdistance} \footerdistance \showsetupA{footer} \footerheight \showsetupA{bottomdistance} \bottomdistance \showsetupA{bottom} \bottomheight \showsetupA{leftedge} \leftedgewidth \showsetupA{leftedgedistance} \leftedgedistance \showsetupA{leftmargin} \leftmarginwidth \showsetupA{leftmargindistance} \leftmargindistance \showsetupA{textwidth} \textwidth \showsetupA{rightmargindistance}\rightmargindistance \showsetupA{rightmargin} \rightmarginwidth \showsetupA{rightedgedistance} \rightedgedistance \showsetupA{rightedge} \rightedgewidth \showsetupB{bodyfontsize} \the \globalbodyfontsize \showsetupB{line} \relax \normallineheight \showsetupB{height} \relax \strutheightfactor \showsetupB{depth} \relax \strutdepthfactor \showsetupB{topskip} \relax \topskipfactor \showsetupB{maxdepth} \relax \maxdepthfactor}}} \stopinterface \gdef\showlayout % interfereert lelijk met een \typefile er na {\bgroup \page \showframe \setuplayout[\c!marking=\v!on] \dorecurse{4}{\showsetups\page} \egroup} \gdef\showmargins {\starttabulate \NC asynchrone \NC \doifoddpageelse {odd} {even} \NC \NR \NC synchrone \NC \doifrightpageelse {right} {left} \NC \NR \NC right margin \NC \the\rightmarginwidth \NC \NR \NC left margin \NC \the\leftmarginwidth \NC \NR \NC outer margin \NC \the\outermarginwidth \NC \NR \NC inner margin \NC \the\innermarginwidth \NC \NR \stoptabulate} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-eps.mkii0000644000175000017500000001536514536300610024741 0ustar hillehille%D \module %D [ file=supp-eps, %D version=1998.05.06, %D title=\CONTEXT\ Support Macros, %D subtitle=\EPS\ tools, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \ifx \undefined \writestatus \input supp-mis.tex \relax \fi %D The macros in this module are rather old and were originally %D part of the figure inclusion macros. When \PDFTEX\ started %D to support \PDF\ inclusion, where some accompanying macros %D were put in \type{supp-pdf}, I considered it more suitable %D to give the \EPS\ macros their own module. \writestatus{loading}{ConTeXt Support Macros / EPS} %D \macros %D {dogetEPSboundingbox} %D %D The predecessors of the following macro's are derived from %D Thomas Rockicky's macro's. They are rewritten to a more %D compact form, made a bit more robust and also handle the %D \type{HiResBoundingBox} and \type{ExactBoundingBox} that %D are sometimes present. %D %D A bounding box has the form: %D %D \starttyping %D %%BoundingBox: llx lly urx ury %D \stoptyping %D %D Before we scan the file, we have to reset special %D characters and set some others. The percentage symbol also %D needs special treatment. When a bounding box is %D encountered, we keep on scanning until no more directives %D are found, i.e. a line is found that does not start with a %D percentage symbol. We also abort scanning after finding a %D high resolution bounding box. %D %D This method also works inside verbatim mode (like when we %D are typesetting sources and putting eps coded logos into %D a heading. Temporary restoring the \CATCODES\ is done in %D the calling routine. %D %D The creator as well as external support for specials are %D analyzed as well and their status is available in \type %D {\EPScreator} and \type {\EPSshading}. The boundingbox %D components are available in \type {\EPSllx} etc. \unprotect \def\EPSllx{0} \let\MPllx\EPSllx % just in case these \def\EPSlly{0} \let\MPlly\EPSlly % are used while running \def\EPSurx{0} \let\MPurx\EPSurx % in fast mode we set \def\EPSury{0} \let\MPury\EPSury % them to 0. \chardef\EPSfound =0 \chardef\EPScreator=0 \chardef\EPSspecial=0 \chardef\EPSstatus =0 \let\EPScreatorstring\empty \newtoks\extraEPSpreambleresets \newtoks\extraEPSpreambleparsers \def\dofinishEPSfile{\dofinishfile} % no \let, can be overloaded \def\dogetEPSboundingbox#1#2#3#4#5% {\bgroup \global\chardef\EPSfound \zerocount \global\chardef\EPScreator\zerocount \global\chardef\EPSspecial\zerocount \global\chardef\EPSstatus \zerocount \global\let\EPScreatorstring\empty \the\extraEPSpreambleresets \uncatcodespecials \catcode`\^^M=\@@ignore \def\doprocessEPSline {\advance\scratchcounter\plusone \expandafter\checkEPSboundingbox\fileline\empty\empty:.:.\end}% \scratchcounter\zerocount \doprocessfile\scratchread{#1}\doprocessEPSline \egroup % Using \EPSllx bp instead of \dimen0=1bp and \EPSllx\dimen0 is more accurate (.005pt). \ifnum\EPSfound>\zerocount #2\dimexpr\EPSllx\onebasepoint \relax #3\dimexpr\EPSlly\onebasepoint \relax #4\dimexpr\EPSurx\onebasepoint-#2\relax #5\dimexpr\EPSury\onebasepoint-#3\relax \else #2\zeropoint #3\zeropoint #4\zeropoint #5\zeropoint \fi %\message{[bbox #1: \EPSllx\space\EPSurx\space\EPSlly\space\EPSury]}\wait \global\let\MPllx\EPSllx \global\let\MPlly\EPSlly \global\let\MPurx\EPSurx \global\let\MPury\EPSury} \bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup \def\EPSboundingboxtag {BoundingBox} \def\EPShiresboundingboxtag{HiResBoundingBox} \def\EPSexactboundingboxtag{ExactBoundingBox} \def\EPScreatortag {Creator} \def\EPSmetaposttag {MetaPost} \def\EPSmetapostspecialtag {MetaPostSpecial} \def\EPSmetapostspecialstag{MetaPostSpecials} \def\EPSpagetag {Page} \let\EPSspecialstring \empty \let\EPSspecialcontent\empty % new metapost construct (hires bb followed by creator + version) % %!PS %%BoundingBox: -71 -1 651 496 %%HiResBoundingBox: -70.9945 -0.5 650.5 495.24907 %%Creator: MetaPost 0.901 %%CreationDate: 2005.06.02:1633 %%Pages: 1 \long\def\checkEPSboundingbox#1#2#3:#4:.#5\end {\if\string#1\letterpercent \if\string#2\letterpercent \edef\EPSspecialstring{#3}% \edef\EPSspecialcontent{#4}% \ifx\EPSspecialstring\EPScreatortag \getEPScreatorspec \else\ifx\EPSspecialstring\EPSboundingboxtag \getEPSboundingboxspec \global\chardef\EPSfound\plusone \else\ifx\EPSspecialstring\EPShiresboundingboxtag \getEPSboundingboxspec \global\chardef\EPSfound\plustwo \scratchcounter\zerocount \else\ifx\EPSspecialstring\EPSexactboundingboxtag \getEPSboundingboxspec \global\chardef\EPSfound\plustwo \scratchcounter\zerocount \else\ifx\EPSspecialstring\EPSmetapostspecialtag % only before finish! \global\chardef\EPSspecial\plusone % ah, we've met some MP extensions \else\ifx\EPSspecialstring\EPSmetapostspecialstag % only before finish! \global\chardef\EPSspecial\plusone % ah, we've met some MP extensions \else\ifx\EPSspecialstring\EPSpagetag \global\chardef\EPSstatus \plusone % we passed MP font defs \else \the\extraEPSpreambleparsers \fi\fi\fi\fi\fi\fi\fi \fi \else\ifnum\EPSfound>\zerocount % bb found \ifnum\EPScreator=\plusone % that is, we are dealing with MP output \ifcase\EPSstatus % we've run into MP fontdefs \or \dofinishEPSfile \fi \else\ifnum\scratchcounter>\plusthree % too late for mps creator (we don't want to run into crap data) \dofinishEPSfile \else \fi\fi \fi\fi} \def\getEPSboundingboxspec {\edef\EPSspecialstring{\EPSspecialcontent\space . . . . }% \expandafter\dogetEPSboundingboxspec\EPSspecialstring\end} \def\dogetEPSboundingboxspec#1 #2 #3 #4 #5\end {\gdef\EPSllx{#1}% \ifx\EPSllx\empty \dogetEPSboundingboxspec#2 #3 #4 #5\end \else \gdef\EPSlly{#2}% \gdef\EPSurx{#3}% \gdef\EPSury{#4}% \fi} \def\getEPScreatorspec {\edef\EPSspecialstring{\EPSspecialcontent\space . .}% \expandafter\dogetEPScreatorspec\EPSspecialstring\end} \def\dogetEPScreatorspec#1#2 #3\end {\edef\EPScreatorstring{#1#2}% \global\chardef\EPScreator\ifx\EPScreatorstring\EPSmetaposttag\plusone\else\zerocount\fi\relax} \def\dogetEPSpreambledata#1% can be combined with \extraEPSpreambleparsers {\bgroup \let\dofinishEPSfile\relax % dirty trick, read past all bboxes \dogetEPSboundingbox{#1}\!!widtha\!!heighta\!!widthb\!!heightb \egroup} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-mpe.tex0000644000175000017500000000017414536300610024572 0ustar hillehille% This file is not needed as I don't expect other macro packages % to support the metafun extensions. \input supp-mpe.mkii context-modules-20240428/texmf-dist/tex/context/base/mkii/math-eul.mkii0000644000175000017500000002340314536300610024671 0ustar hillehille%D \module %D [ file=math-eul, %D version=2003.02.03, %D title=\CONTEXT\ Math Macros, %D subtitle=Virtual Euler Specials, %D author={Hans Hagen \& Taco Hoekwater \& Adam Lindsay}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. Further modified by Adam Lindsay. \unprotect %D We follow the following mappings from type-eul: %D %D mr [MathRoman] [Euler-Roman] [zeurm10] %D mi [MathItalic] [Euler-Italic] [eufm10] %D ex [MathExtension] [Euler-Extension] [zeuex10] %D sy [MathSymbol] [Euler-Symbol] [zeusm10] %D mb [MathBeta] [Charter-Roman] [bchr8r] XXX %D mc [MathGamma] [Euler-Fraktur] [eufm10] XXX %D %D The inclusion of Bitstream Charter was originally for the text accents. %D Obviously, it's not a proper ``MathBeta'' font. %D The varrho and varsigma characters don't exist in eulervm, %D so we point at the normal types. \definefamilysynonym [eul] [calligraphic] [sy] \definefamilysynonym [eul] [oldstyle] [mi] \definefamilysynonym [eul] [gothic] [mi] \definefamilysynonym [eul] [fraktur] [mi] \definefamilysynonym [eul] [lcgreek] [mr] \definefamilysynonym [eul] [ucgreek] [mr] \definefamilysynonym [eul] [vargreek] [mr] %% Well, you don't know until you try! %\definefamilysynonym [eul] [accents] [Serif] \startmathcollection [eul] \definemathsymbol [varrho] [nothing] [vargreek] ["1A] \definemathsymbol [varsigma] [nothing] [vargreek] ["1B] %D Changes necessitated by collapsing mr \& mi into one: \definemathsymbol [imath] [nothing] [mr] ["7B] \definemathsymbol [jmath] [nothing] [mr] ["7C] \definemathsymbol [ell] [nothing] [mr] ["60] \definemathsymbol [wp] [nothing] [mr] ["7D] \definemathsymbol [partial] [nothing] [mr] ["40] \definemathsymbol [flat] [ord] [mr] ["5B] \definemathsymbol [natural] [ord] [mr] ["5C] \definemathsymbol [sharp] [ord] [mr] ["5D] \definemathsymbol [triangleleft] [bin] [mr] ["2F] \definemathsymbol [triangleright][bin] [mr] ["2E] \definemathsymbol [star] [bin] [mr] ["3F] \definemathsymbol [smile] [rel] [mr] ["5E] \definemathsymbol [frown] [rel] [mr] ["5F] \definemathsymbol [leftharpoonup] [rel] [mr] ["28] \definemathsymbol [leftharpoondown] [rel] [mr] ["29] \definemathsymbol [rightharpoonup] [rel] [mr] ["2A] \definemathsymbol [rightharpoondown] [rel] [mr] ["2B] \definemathsymbol [lhook] [rel] [mr] ["2C] \definemathsymbol [rhook] [rel] [mr] ["2D] \definemathsymbol [mathperiod] [ord] [mr] ["3A] \definemathsymbol [textperiod] [punct] [mr] ["3A] \definemathsymbol [mathcomma] [ord] [mr] ["3B] \definemathsymbol [textcomma] [punct] [mr] ["3B] \definemathsymbol [ldotp] [punct] [mr] ["3A] % extras from AMS: \definemathsymbol [hslash] [ord] [mr] ["80] %beauty over truth \stopmathcollection \startmathcollection [eul] % Ugh. no way around this to keep it compact in the font defs. \definemathcharacter [a] [alpha] [mr] ["61] \definemathcharacter [b] [alpha] [mr] ["62] \definemathcharacter [c] [alpha] [mr] ["63] \definemathcharacter [d] [alpha] [mr] ["64] \definemathcharacter [e] [alpha] [mr] ["65] \definemathcharacter [f] [alpha] [mr] ["66] \definemathcharacter [g] [alpha] [mr] ["67] \definemathcharacter [h] [alpha] [mr] ["68] \definemathcharacter [i] [alpha] [mr] ["69] \definemathcharacter [j] [alpha] [mr] ["6A] \definemathcharacter [k] [alpha] [mr] ["6B] \definemathcharacter [l] [alpha] [mr] ["6C] \definemathcharacter [m] [alpha] [mr] ["6D] \definemathcharacter [n] [alpha] [mr] ["6E] \definemathcharacter [o] [alpha] [mr] ["6F] \definemathcharacter [p] [alpha] [mr] ["70] \definemathcharacter [q] [alpha] [mr] ["71] \definemathcharacter [r] [alpha] [mr] ["72] \definemathcharacter [s] [alpha] [mr] ["73] \definemathcharacter [t] [alpha] [mr] ["74] \definemathcharacter [u] [alpha] [mr] ["75] \definemathcharacter [v] [alpha] [mr] ["76] \definemathcharacter [w] [alpha] [mr] ["77] \definemathcharacter [x] [alpha] [mr] ["78] \definemathcharacter [y] [alpha] [mr] ["79] \definemathcharacter [z] [alpha] [mr] ["7A] \definemathcharacter [A] [alpha] [mr] ["41] \definemathcharacter [B] [alpha] [mr] ["42] \definemathcharacter [C] [alpha] [mr] ["43] \definemathcharacter [D] [alpha] [mr] ["44] \definemathcharacter [E] [alpha] [mr] ["45] \definemathcharacter [F] [alpha] [mr] ["46] \definemathcharacter [G] [alpha] [mr] ["47] \definemathcharacter [H] [alpha] [mr] ["48] \definemathcharacter [I] [alpha] [mr] ["49] \definemathcharacter [J] [alpha] [mr] ["4A] \definemathcharacter [K] [alpha] [mr] ["4B] \definemathcharacter [L] [alpha] [mr] ["4C] \definemathcharacter [M] [alpha] [mr] ["4D] \definemathcharacter [N] [alpha] [mr] ["4E] \definemathcharacter [O] [alpha] [mr] ["4F] \definemathcharacter [P] [alpha] [mr] ["50] \definemathcharacter [Q] [alpha] [mr] ["51] \definemathcharacter [R] [alpha] [mr] ["52] \definemathcharacter [S] [alpha] [mr] ["53] \definemathcharacter [T] [alpha] [mr] ["54] \definemathcharacter [U] [alpha] [mr] ["55] \definemathcharacter [V] [alpha] [mr] ["56] \definemathcharacter [W] [alpha] [mr] ["57] \definemathcharacter [X] [alpha] [mr] ["58] \definemathcharacter [Y] [alpha] [mr] ["59] \definemathcharacter [Z] [alpha] [mr] ["5A] \stopmathcollection \startmathcollection [eul] \definemathcharacter [!] [close] [sy] ["A1] \definemathcharacter [(] [open] [sy] ["A8] \definemathcharacter [)] [close] [sy] ["A9] \definemathcharacter [+] [bin] [sy] ["AB] \definemathcharacter [:] [rel] [sy] ["BA] \definemathcharacter [;] [punct] [sy] ["BB] \definemathcharacter [=] [rel] [sy] ["BD] \definemathcharacter [?] [close] [sy] ["BF] \definemathcharacter [91] [open] [sy] ["DB] % [ \definemathcharacter [93] [close] [sy] ["DD] % ] \definemathcharacter [,] [punct] [mr] ["3B] \definemathcharacter [.] [ord] [mr] ["3A] \definemathcharacter [/] [ord] [mr] ["3D] \definemathcharacter [<] [rel] [mr] ["3C] \definemathcharacter [>] [rel] [mr] ["3E] \stopmathcollection \startmathcollection [eul] \definemathcharacter [(] [nothing] [sy] ["A8] [ex] ["00] \definemathcharacter [)] [nothing] [sy] ["A9] [ex] ["01] \definemathcharacter [91] [nothing] [sy] ["DB] [ex] ["02] % [ \definemathcharacter [93] [nothing] [sy] ["DD] [ex] ["03] % ] \definemathcharacter [/] [nothing] [mr] ["3D] [ex] ["0E] \stopmathcollection \startmathcollection [eul] \definemathsymbol [hbar] [nothing] [mr] ["80] \stopmathcollection \startmathcollection [eul] \definemathsymbol [ddagger] [bin] [sy] ["7A] \definemathsymbol [dagger] [bin] [sy] ["79] \stopmathcollection \startmathcollection [eul] \definemathsymbol [colon] [punct] [sy] ["BA] \stopmathcollection %D This used to be very hackish; it brought in text %D accents from the well-matched Bitstream Charter. %D But now, these characters don't exist. I would prefer to pull %D them from the text font, but I don't know how. %D Instead, I'm just pointing to null characters! \startmathcollection [eul] \definemathsymbol [acute] [accent] [mr] ["90] \definemathsymbol [grave] [accent] [mr] ["91] \definemathsymbol [ddot] [accent] [mr] ["92] \definemathsymbol [tilde] [accent] [mr] ["93] \definemathsymbol [bar] [accent] [mr] ["94] \definemathsymbol [breve] [accent] [mr] ["95] \definemathsymbol [check] [accent] [mr] ["96] \definemathsymbol [hat] [accent] [mr] ["97] \definemathsymbol [dot] [accent] [mr] ["98] %\definemathsymbol [acute] [accent] [accents] ["B4] %\definemathsymbol [grave] [accent] [accents] ["1E] %\definemathsymbol [ddot] [accent] [accents] ["A8] %\definemathsymbol [tilde] [accent] [accents] ["98] %\definemathsymbol [bar] [accent] [accents] ["AF] %\definemathsymbol [breve] [accent] [accents] ["0B] %\definemathsymbol [check] [accent] [accents] ["10] %\definemathsymbol [hat] [accent] [accents] ["5E] %\definemathsymbol [dot] [accent] [accents] ["01] \definemathsymbol [vec] [accent] [mr] ["7E] % [ord] \definemathsymbol [hat] [accent] [sy] ["DE] \stopmathcollection \startmathcollection [eul] \definemathsymbol [lgroup] [open] [sy] ["A8] [ex] ["3A] % ? \definemathsymbol [rgroup] [close] [sy] ["A9] [ex] ["3B] % ? \stopmathcollection \startmathcollection [eul] \definemathsymbol [dag] [box] [sy] ["79] \definemathsymbol [ddag] [box] [sy] ["7A] \definemathsymbol [S] [box] [sy] ["78] \definemathsymbol [P] [box] [sy] ["7B] \stopmathcollection %D Aditya's additionl definitions: \startmathcollection[eul:texnansi] \definemathsymbol [acute] [accent] [tf] ["13] \definemathsymbol [grave] [accent] [tf] ["12] \definemathsymbol [ddot] [accent] [tf] ["A8] \definemathsymbol [tilde] [accent] [tf] ["98] \definemathsymbol [bar] [accent] [tf] ["16] \definemathsymbol [breve] [accent] [tf] ["15] \definemathsymbol [check] [accent] [tf] ["14] \definemathsymbol [hat] [accent] [tf] ["88] \definemathsymbol [dot] [accent] [tf] ["5] % Why is mathring not defined?? \definemathsymbol [mathring] [accent] [tf] ["17] \stopmathcollection \startmathcollection[eul:ec] \definemathsymbol [acute] [accent] [tf] ["1] \definemathsymbol [grave] [accent] [tf] ["0] \definemathsymbol [ddot] [accent] [tf] ["4] \definemathsymbol [tilde] [accent] [tf] ["3] \definemathsymbol [bar] [accent] [tf] ["9] \definemathsymbol [breve] [accent] [tf] ["8] \definemathsymbol [check] [accent] [tf] ["7] \definemathsymbol [hat] [accent] [tf] ["2] \definemathsymbol [dot] [accent] [tf] ["A] % Why is mathring not defined?? \definemathsymbol [mathring] [accent] [tf] ["6] \stopmathcollection \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/type-run.mkii0000644000175000017500000000332314536300610024737 0ustar hillehille%D \module %D [ file=type-run, %D version=2001.04.20, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Runtime Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \gdef\typetypescript {\dotripleempty\dotypetypescript} \gdef\dotypetypescript[#1][#2][#3]% {\bgroup \def\dochecktypescript##1##2% script use {\doifelsenothing{##1##2} {\donetrue} {\ExpandBothAfter\doifcommonelse{##1}{##2}\donetrue\donefalse}} \edef\typescriptone {\truetypescript{#1}}% \edef\typescripttwo {\truetypescript{#2}}% \edef\typescriptthree{\truetypescript{#3}}% \def\starttypescript {\bgroup \obeylines % else we loose the first line due to lookahead \dotripleempty\dostarttypescript} \def\dostarttypescript[##1][##2][##3]% {\long\def\next####1\stoptypescript{\egroup} \dochecktypescript{##1}\typescriptone \ifdone \dochecktypescript{##2}\typescripttwo \ifdone \dochecktypescript{##3}\typescriptthree\ifdone \def\next% {\def\stoptypescript{\egroup\type{\stoptypescript}} % what follows now is quite ugly \skipfirstverbatimlinefalse \type{\starttypescript} \doifsomething{##1}{\type{[##1]}} \doifsomething{##2}{\type{[##2]}} \doifsomething{##3}{\type{[##3]}} \processdisplayverbatim{\stoptypescript}}% \fi\fi\fi \next} \processcommacommand[\typescriptfiles]\ReadFile % \dodousetypescript \egroup} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-job.mkii0000644000175000017500000003104114536300610024652 0ustar hillehille%D \module %D [ file=core-job, % copied from main-001, %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=Job Handling, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module is still to be split and documented. \writestatus{loading}{ConTeXt Core Macros / Job Handling} \unprotect \let \currentproject \empty \let \currentproduct \empty \let \currentenvironment \empty \let \currentcomponent \empty \let \loadedfiles \empty \let \processedfiles \empty \let \nomorefiles \relax \let \allinputpaths \empty \let \locatedfilepath \empty \newcount\textlevel \newcount\fileprocesslevel \setvalue{\c!file::0}{\jobname} \def\processedfile % is used in styles, don't change ! {\getvalue{\c!file::\number\fileprocesslevel}} \def\dostarttextfile#1% {\global\advance\fileprocesslevel\plusone \setxvalue{\c!file::\number\fileprocesslevel}{#1}% \@EA\doglobal\@EA\addtocommalist\@EA{#1}\processedfiles} \def\dostoptextfile {\global\advance\fileprocesslevel\minusone} \def\processlocalfile#1#2% {#1{#2}\donothing{\readfile{#2}\donothing\donothing}} \def\processfile#1% {\ifx\allinputpaths\empty \def\next{\processlocalfile\readlocfile}% \else \let\filepath\empty \def\docommand##1% {\doiffileelse{\pathplusfile{##1}{#1}}{\donetrue\def\filepath{##1}}\donefalse \ifdone\expandafter\quitcommalist\fi}% \doifparentfileelse{#1} % new {\processcommacommand [\allinputpaths]\docommand} {\processcommacommand[.,\allinputpaths]\docommand}% \ifx\filepath\empty \def\next{\processlocalfile\readlocfile}% fall back ../../.. \else \def\next{\processlocalfile{\readsetfile\filepath}}% file found \fi \fi \next{#1}} \def\doifinputfileelse#1% rarely used {\ifx\allinputpaths\empty \@EA\secondoftwoarguments \else \let\filepath\empty \def\docommand##1% {\doiffileelse{\pathplusfile{##1}{#1}}{\donetrue\def\filepath{##1}}\donefalse \ifdone\expandafter\quitcommalist\fi}% \processcommacommand[.,\allinputpaths]\docommand \ifx\filepath\empty \@EAEAEA\secondoftwoarguments \else \@EAEAEA\firstoftwoarguments \fi \fi} \let\locatedfilepath\empty \def\locatefilepath#1% {\let\locatedfilepath\empty \ifx\allinputpaths\empty \else \def\docommand##1% {\doiffileelse{\pathplusfile{##1}{#1}}{\donetrue\def\locatedfilepath{##1}}\donefalse \ifdone\expandafter\quitcommalist\fi}% \doifparentfileelse{#1} % new {\processcommacommand [\allinputpaths]\docommand} {\processcommacommand[.,\allinputpaths]\docommand}% \fi} \def\usepath[#1]% {\def\docommand##1% {\doifelse{##1}\v!reset {\let\allinputpaths\empty} {\sanitizefilename#1\to\ascii \defconvertedcommand\ascii\ascii \addtocommalist\ascii\allinputpaths}}% \processcommalist[#1]\docommand} \def\usesubpath[#1]% test for a real long time, permits ../{name} i.e. braces {\ifx\allinputpaths\empty \sanitizefilename#1\to\allinputpaths \else \def\docommand##1% {\def\dodocommand####1% {\sanitizefilename####1\to\ascii \defconvertedcommand\ascii\ascii \addtocommalist{##1/\ascii}\allinputpaths}% \processcommalist[#1]\dodocommand}% \processcommacommand[\allinputpaths]\docommand \fi} \def\registerfileinfo[#1#2]#3% geen \showmessage ? {\writestatus\m!systems{#1#2 file #3 at line \the\inputlineno}% \immediatewriteutility{f #1 {#3}}} \ifx\preloadfonts \undefined \let\preloadfonts \relax \fi \ifx\preloadspecials\undefined \let\preloadspecials\relax \fi \ifx\disableXML\undefined \let\disableXML\relax \fi \def\doloadsystemfile#1% mkii with fallback to tex {\readsysfile{#1.\mksuffix} {\showmessage\m!systems2{#1.\mksuffix}} {\readsysfile{#1.tex}{\showmessage\m!systems2{#1.tex}}\donothing}} \def\loadsystemfiles {\reportprotectionstate \doloadsystemfile\f!newfilename \doloadsystemfile\f!locfilename \doloadsystemfile\f!expfilename \readsysfile{\f!sysfilename.\mksuffix} {\showmessage\m!systems2{\f!sysfilename.\mksuffix}} {\readsysfile{\f!sysfilename.tex} {\showmessage\m!systems2{\f!sysfilename.tex}} {\readsysfile{\f!sysfilename.rme} {\showmessage\m!systems2{\f!sysfilename.rme}% \doglobal\appendtoks % brrr better \setcatcodetable\ctxcatcodes \bgroup \disableXML \readsysfile{\f!errfilename.\mksuffix}\donothing\donothing \egroup \to\everygoodbye}% \donothing}}} %D Loading of \type {cont-usr.tex} (edited by the user) %D and \type {cont-fmt.tex} (generated by texexec). This is %S obsolete now that we have enough memory for patterns. % \def\loaduserspecifications % {% this used to be the file where users can tune their system, especially patterns % \readsysfile\f!usrfilename{\showmessage\m!systems2\f!usrfilename}\donothing % % this one took care of user preferences (fonts, messages) but lm made this obsolete % \readjobfile\f!fmtfilename{\showmessage\m!systems2\f!fmtfilename}\donothing % % from now on we preload all patterns (only in mkii) % \preloadallpatterns} \let\loaduserspecifications\relax %D We don't want multiple jobfiles to interfere. \def\loadoptionfile {\readjobfile{\jobname.\f!optionextension} {\showmessage\m!systems2{\jobname.\f!optionextension}}% {\writestatus\m!systems {no \jobname.\f!optionextension}}} % Most natural ... % % \def\doateverystarttext % {\the\everystarttext % \global\let\doateverystarttext\relax} % % ... most practical, since we can load env's in a % something.run file (nested \starttext's; see for % instance x-res-08, where we definitely want to % open the file!). \def\doateverystarttext {\the\everystarttext \global\everystarttext\emptytoks} \def\starttext {\doateverystarttext \ifcase\textlevel \registerfileinfo[begin]\jobname \expandafter\startcopyingblocks \fi \global\advance\textlevel\plusone} \def\stoptext {\global\advance\textlevel\minusone \ifnum\textlevel>\zerocount \else \page[\v!last]\page % new, moved from everybye to here; flushes headers, colors etc etc etc \the\everystoptext %\the\everybye % %\the\everygoodbye % == \end (new) %\expandafter\normalend % \expandafter\finalend \fi} \def\forcequitjob#1% {\writestatus\m!systems{forcing quit: #1}% \batchmode \dorecurse\textlevel\stoptext \normalend} \let\autostoptext\relax \def\autostarttext {\ifcase\textlevel \starttext \writestatus\m!systems{auto \string\starttext..\string\stoptext}% \let\autostoptext\stoptext \fi} \def\finalend {\ifnum\textlevel>\zerocount \else \the\everybye \the\everygoodbye \doifsometokselse\everynotabene{\writeline\the\everynotabene\writeline}\donothing \global\everybye \emptytoks % rather unneeded \global\everygoodbye\emptytoks % but for sure \expandafter\normalend \fi} \let\end\finalend \def\emergencyend {\writestatus\m!systems{invalid \@EA\string\csname\e!start\v!text\endcsname...\@EA\string\csname\e!stop\v!text\endcsname\space structure}% \stoptext} \def\currentfile{\inputfilename} \def\doexecutefileonce#1% {\beforesplitstring#1\at.\to\currentfile \fullexpandtwoargsafter\doifnotinset\currentfile\loadedfiles {\fullexpandoneargafter\addtocommalist\currentfile\loadedfiles \doexecutefile{#1}}} \def\doexecutefile#1% {\registerfileinfo[begin]{#1}% \dostarttextfile{#1}% \processfile{#1}% \dostoptextfile \registerfileinfo[end]{#1}} \def\donotexecutefile#1% {} \def\verwerkfile#1 % {\doexecutefile{#1}} \def\useenvironment[#1]% maybe commalist {\environment #1 \relax} \def\environment #1 % at outermost level only (load only once) {\pushmacro\startenvironment \pushmacro\stopenvironment \def\startenvironment ##1 {}% \let\stopenvironment\relax \startreadingfile \doexecutefileonce{#1} \stopreadingfile \popmacro\stopenvironment \popmacro\startenvironment} \def\component #1 % at outermost level only {\dostarttextfile{#1}% \processfile{#1}% \dostoptextfile} \newcount\filelevel \let\currentcomponent \v!text \let\currentcomponentpath\f!currentpath \def\donextlevel#1#2#3#4#5#6#7\\% {\pushmacro\currentcomponent \pushmacro\currentcomponentpath \let\currentcomponent#1% \setsystemmode\currentcomponent \splitfilename{#1}% \ifx\splitoffpath\empty \let\currentcomponentpath\f!currentpath \else \let\currentcomponentpath\splitoffpath \fi \beforesplitstring#7\at.\to#2\relax % can become path + base \ifcase\filelevel\relax \starttext \def\project ##1 {#3{##1}}% \def\environment ##1 {#4{##1}}% \def\product ##1 {#5{##1}}% \def\component ##1 {#6{##1}}% \fi \advance\filelevel\plusone \fullexpandoneargafter\addtocommalist{#1}\loadedfiles} \def\doprevlevel {\popmacro\currentcomponentpath \popmacro\currentcomponent \setsystemmode\currentcomponent \ifnum\filelevel=\plusone \expandafter\stoptext \else \advance\filelevel\minusone \expandafter\endinput \fi} \def\startproject #1 % {\donextlevel\v!project\currentproject \donotexecutefile\doexecutefileonce \doexecutefileonce\doexecutefile#1\\} \def\startproduct #1 % {\doateverystarttext \donextlevel\v!product\currentproduct \doexecutefileonce\doexecutefileonce \donotexecutefile\doexecutefile#1\\} \def\startcomponent #1 % {\doateverystarttext \donextlevel\v!component\currentcomponent \doexecutefileonce\doexecutefileonce \donotexecutefile\doexecutefile#1\\} \def\startenvironment #1 % {\donextlevel\v!environment\currentenvironment \donotexecutefile\doexecutefileonce \donotexecutefile\donotexecutefile#1\\} % \startproject test % 1: \startmode[*project] project \stopmode \endgraf % 2: \startmode[*product] product \stopmode \endgraf % \stopproject \def\stopproject {\doprevlevel} \def\stopproduct {\doprevlevel} \def\stopcomponent {\doprevlevel} \def\stopenvironment{\doprevlevel} % more or less replaced by modes \setvalue{\e!start\v!localenvironment}[#1]% {\let\loadedlocalenvironments\empty \def\docommand##1% {\beforesplitstring##1\at.\to\someevironment \fullexpandoneargafter\addtocommalist\someevironment\loadedlocalenvironments}% \processcommalist[#1]\docommand \fullexpandtwoargsafter\doifcommonelse % no longer next needed {\currentproject,\currentproduct,% \currentcomponent,\currentenvironment} {\loadedlocalenvironments} {\letvalue{\e!stop\v!localenvironment}\relax} {\grabuntil{\e!stop\v!localenvironment}\gobbleoneargument}} % TH: fixed, was \relax \setvalue{\v!localenvironment}#1 {\doexecutefileonce{#1}} % NOT TOEVOEGEN: \the\everytrace \neverypar=\emptytoks % \appendtoks \flushnotes \to \everypar % \appendtoks \synchronizesidefloats \to \everypar % \appendtoks \checkindentation \to \everypar % \appendtoks \showparagraphnumber \to \everypar % \appendtoks \flushmargincontents \to \everypar % \appendtoks \flushcommentanchors \to \everypar % \appendtoks \synchronizenotes \to \everypar % \appendtoks \flushnotes \to \everydisplay % \appendtoks \adjustsidefloatdisplaylines \to \everydisplay % soon, when pdftex 1.22 is out in the field: \chardef\systemcommandmode\zerocount % 0=unknown 1=disabled 2=enabled \def\checksystemcommandmode {\ifx\pdfshellescape\undefined \else \chardef\systemcommandmode \ifcase\pdfshellescape \plusone \else \plustwo \fi \fi \global\let\checksystemcommandmode\relax} \def\reportsystemcommandmode {\ifcase\systemcommandmode \or \writestatus\m!systems{system commands are disabled}% \or \writestatus\m!systems{system commands are enabled}% \fi} % \ifx\etexversion\undefined \else \ifnum\etexversion<202 % \prependtoks % \writestatus\m!systems{eTeX version \number\etexversion\space -> too old (bugs)}% % \writeline % \to \everyjob % \fi \fi % \ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion<120 % \prependtoks % \writestatus\m!systems{pdfTeX version \number\pdftexversion\space -> please update}% % \writeline % \to \everyjob % \fi \fi % Default-instellingen (verborgen) \resetutilities \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-039.mkii0000644000175000017500000000566014536300610024431 0ustar hillehille%D \module %D [ file=unic-039, %D version=2005.06.16, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 39, %D author=Nikolai Weibull, %D date=\currentdate, %D copyright={Nikolai Weibull \& Hans Hagen}] \unprotect \startunicodevector 39 \expandafter\strippedcsname \ifcase\numexpr#1-192\relax \unknownchar \or % THREE DIMENSIONAL ANGLE \unknownchar \or % WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE \perp \or % PERPENDICULAR \unknownchar \or % OPEN SUBSET \unknownchar \or % OPEN SUPERSET \lbag \or % LEFT S-SHAPED BAG DELIMITER \rbag \or % RIGHT S-SHAPED BAG DELIMITER \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % WHITE DIAMOND WITH CENTRED DOT \unknownchar \or % AND WITH DOT \unknownchar \or % ELEMENT OF OPENING UPWARDS \unknownchar \or % LOWER RIGHT CORNER WITH DOT \unknownchar \or % UPPER LEFT CORNER WITH DOT \unknownchar \or % LEFT OUTER JOIN \unknownchar \or % RIGHT OUTER JOIN \unknownchar \or % FULL OUTER JOIN \unknownchar \or % LARGE UP TACK \unknownchar \or % LARGE DOWN TACK \unknownchar \or % LEFT AND RIGHT DOUBLE TURNSTILE \unknownchar \or % LEFT AND RIGHT TACK \unknownchar \or % LEFT MULTIMAP \unknownchar \or % LONG RIGHT TACK \unknownchar \or % LONG LEFT TACK \unknownchar \or % UP TACK WITH CIRCLE ABOVE \unknownchar \or % LOZENGE DIVIDED BY HORIZONTAL RULE \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK \unknownchar \or % WHITE SQUARE WITH LEFTWARDS TICK \unknownchar \or % WHITE SQUARE WITH RIGHTWARDS TICK \unic@Lbracket \or % MATHEMATICAL LEFT WHITE SQUARE BRACKET \unic@Rbracket \or % MATHEMATICAL RIGHT WHITE SQUARE BRACKET \langle \or % MATHEMATICAL LEFT ANGLE BRACKET \rangle \or % MATHEMATICAL RIGHT ANGLE BRACKET \unic@Langle \or % MATHEMATICAL LEFT DOUBLE ANGLE BRACKET \unic@Rangle \or % MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \else % \unknownchar \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-mis.mkii0000644000175000017500000005447214536300610024676 0ustar hillehille%D \module %D [ file=lang-mis, %D version=1997.03.20, % used to be supp-lan.tex %D title=\CONTEXT\ Language Macros, %D subtitle=Compounds, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Compounds} %D \gdef\starttest %D {\blank %D \noindent %D \halign\bgroup\tt##\hskip2em&##\hskip2em&##\cr} %D %D \gdef\stoptest %D {\egroup %D \blank} %D %D \gdef\test#1% %D {\defconvertedargument\ascii{#1}\ascii&\hyphenatedword{#1}\cr} \unprotect %D One of \TEX's strong points in building paragraphs is the way %D hyphenations are handled. Although for real good hyphenation %D of non||english languages some extensions to the program are %D needed, fairly good results can be reached with the standard %D mechanisms and an additional macro, at least in Dutch. %D \CONTEXT\ originates in the wish to typeset educational %D materials, especially in a technical environment. In %D production oriented environments, a lot of compound words %D are used. Because the Dutch language poses no limits on %D combining words, we often favor putting dashes between those %D words, because it facilitates reading, at least for those %D who are not that accustomed to it. %D %D In \TEX\ compound words, separated by a hyphen, are not %D hyphenated at all. In spite of the multiple pass paragraph %D typesetting this can lead to parts of words sticking into %D the margin. The solution lays in saying \type %D {spoelwater||terugwinunit} instead of \type %D {spoelwater-terugwinunit}. By using a one character command %D like \type {|}, delimited by the same character \type {|}, %D we get ourselves both a decent visualization (in \TEXEDIT\ %D and colored verbatim we color these commands yellow) and an %D efficient way of combining words. %D %D The sequence \type{||} simply leads to two words connected by %D a hyphen. Because we want to distinguish such a hyphen from %D the one inserted when \TEX\ hyphenates a word, we use a bit %D longer one. %D %D \hyphenation {spoel-wa-ter te-rug-win-unit} %D %D \starttest %D \test {spoelwater||terugwinunit} %D \stoptest %D %D As we already said, the \type{|} is a command. This commands %D accepts an optional argument before it's delimiter, which is %D also a \type{|}. %D %D \hyphenation {po-ly-meer che-mie} %D %D \starttest %D \test {polymeer|*|chemie} %D \stoptest %D %D Arguments like \type{*} are not interpreted and inserted %D directly, in contrary to arguments like: %D %D \starttest %D \test {polymeer|~|chemie} %D \test {|(|polymeer|)|chemie} %D \test {polymeer|(|chemie|)| } %D \stoptest %D %D Although such situations seldom occur |<|we typeset thousands %D of pages before we encountered one that forced us to enhance %D this mechanism|>| we also have to take care of comma's. %D %D \hyphenation {uit-stel-len} %D %D \starttest %D \test {op||, in|| en uitstellen} %D \stoptest %D %D The next special case (concerning quotes) was brought to my %D attention by Piet Tutelaers, one of the driving forces %D behind rebuilding hyphenation patterns for the dutch %D language.\footnote{In 1996 the spelling of the dutch %D language has been slightly reformed which made this topic %D actual again.} We'll also take care of this case. %D %D \starttest %D \test {AOW|'|er} %D \test {cd|'|tje} %D \test {ex|-|PTT|'|er} %D \test {rock|-|'n|-|roller} %D \stoptest %D %D Tobias Burnus pointed out that I should also support %D something like %D %D \starttest %D \test {well|_|known} %D \stoptest %D %D to stress the compoundness of hyphenated words. %D %D Of course we also have to take care of the special case: %D %D \starttest %D \test {text||color and ||font} %D \stoptest %D \macros %D {installdiscretionaries} %D %D The mechanism described here is one of the older inner parts %D of \CONTEXT. The most recent extensions concerns some %D special cases as well as the possibility to install other %D characters as delimiters. The prefered way of specifying %D compound words is using \type{||}, which is installed by: %D %D \starttyping %D \installdiscretionaries || - %D \stoptyping %D %D Some alternative definitions are: %D %D \startbuffer %D \installdiscretionaries ** - %D \installdiscretionaries ++ - %D \installdiscretionaries // - %D \installdiscretionaries ~~ - %D \stopbuffer %D %D \typebuffer %D %D after which we can say: %D %D \bgroup %D \getbuffer %D \starttest %D \test {test**test**test} %D \test {test++test++test} %D \test {test//test//test} %D \test {test~~test~~test} %D \stoptest %D \egroup %D \macros %D {compoundhyphen, %D beginofsubsentence,endofsubsentence} %D %D Now let's go to the macros. First we define some variables. %D In the main \CONTEXT\ modules these can be tuned by a setup %D command. Watch the (maybe) better looking compound hyphen. \ifx\compoundhyphen \undefined \def\compoundhyphen{\hbox{-\kern-.25ex-}} \fi \ifx\beginofsubsentence \undefined \def\beginofsubsentence{\hbox{---}} \fi \ifx\endofsubsentence \undefined \def\endofsubsentence {\hbox{---}} \fi %D The last two variables are needed for subsentences %D |<|like this one|>| which we did not yet mention. %D %D We want to enable breaking but at the same time don't want %D compound characters like |-| or || to be separated from the %D words. \TEX\ hackers will recognise the next two macro's: \ifx\prewordbreak \undefined \def\prewordbreak {\penalty\plustenthousand\hskip\zeropoint\relax} \fi %ifx\postwordbreak \undefined \def\postwordbreak{\penalty\zerocount \prewordbreak } \fi \ifx\postwordbreak \undefined \def\postwordbreak{\penalty\zerocount \hskip\zeropoint\relax} \fi \ifx\hspaceamount \undefined \def\hspaceamount#1#2{.16667em} \fi % language specific %D \macros %D {beginofsubsentencespacing,endofsubsentencespacing} %D %D In the previous macros we provided two hooks which can be %D used to support nested sub||sentences. In \CONTEXT\ these %D hooks are used to insert a small space when needed. \ifx\beginofsubsentencespacing\undefined \let\beginofsubsentencespacing\relax \fi \ifx\endofsubsentencespacing \undefined \let\endofsubsentencespacing \relax \fi %D The following piece of code is a torture test compound %D hndling. The \type {\relax} before the \type {\ifmmode} is %D needed because of the alignment scanner (in \ETEX\ this %D problem is not present because there a protected macro is %D not expanded. Thanks to Tobias Burnus for providing this %D example. %D %D \startformula %D \left|f(x_n)-{1\over2}\right| = %D {\cases{|{1\over2}-x_n| &for $0\le x_n < {1\over2}$\cr %D |x_n-{1\over2}| &for ${1\over2}\zeropoint (\prewordbreak \else \prewordbreak\discretionary{}{(-}{(}\prewordbreak \fi} \definetextmodediscretionary ~ {\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak} \definetextmodediscretionary ' {\prewordbreak\discretionary{-}{}{'}\postwordbreak} \definetextmodediscretionary ^ {\prewordbreak\discretionary{\hbox{$|$}}{}{\hbox{$|$}}% \allowbreak\postwordbreak} % bugged \definetextmodediscretionary < {\beginofsubsentence\prewordbreak\beginofsubsentencespacing} \definetextmodediscretionary > {\endofsubsentencespacing\prewordbreak\endofsubsentence} \definetextmodediscretionary = {\prewordbreak\midsentence\prewordbreak} % {\prewordbreak\compoundhyphen} % french \definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:} \definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};} \definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?} \definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!} \definetextmodediscretionary * {\prewordbreak\discretionary{-}{}{\kern.05em}\prewordbreak} % spanish \definetextmodediscretionary ?? {\prewordbreak\questiondown} \definetextmodediscretionary !! {\prewordbreak\exclamdown} % \ifx\normalcompound\undefined \let\normalcompound=| \fi %D \installdiscretionary | + %D \installdiscretionary + = \def\defaultdiscretionaryhyphen{\compoundhyphen} \installdiscretionary | \defaultdiscretionaryhyphen % installs in ctx and prt will fall back on it %D \macros %D {fakecompoundhyphen} %D %D In headers and footers as well as in active pieces of text %D we need a dirty hack. Try to imagine what is needed to %D savely break the next text across a line and at the same %D time make the words interactive. %D %D \starttyping %D \goto{Some||Long||Word} %D \stoptyping \def\fakecompoundhyphen {\def\|{\mathortext\vert\dofakecompoundhyphen}} \def\dofakecompoundhyphen {\def##1|% {\doifelsenothing{##1}\compoundhyphen{##1}% \kern\compoundbreakpoint\allowbreak}} %D \macros %D {midworddiscretionary} %D %D If needed, one can add a discretionary hyphen using \type %D {\midworddiscretionary}. This macro does the same as %D \PLAIN\ \TEX's \type {\-}, but, like the ones implemented %D earlier, this one also looks ahead for spaces and grouping %D tokens. \def\midworddiscretionary {\futurelet\next\domidworddiscretionary} \def\domidworddiscretionary {\ifx\next\blankspace\else \ifx\next\bgroup \else \ifx\next\egroup \else \discretionary{-}{}{}% \fi\fi\fi} %D \macros %D {installcompoundcharacter} %D %D When Tobias Burnus started translating the dutch manual of %D \PPCHTEX\ into german, he suggested to let \CONTEXT\ support %D the \type{german.sty} method of handling compound %D characters, especially the umlaut. This package is meant for %D use with \PLAIN\ \TEX\ as well as \LATEX. %D %D I decided to implement compound character support as %D versatile as possible. As a result one can define his own %D compound character support, like: %D %D \starttyping %D \installcompoundcharacter "a {\"a} %D \installcompoundcharacter "e {\"e} %D \installcompoundcharacter "i {\"i} %D \installcompoundcharacter "u {\"u} %D \installcompoundcharacter "o {\"o} %D \installcompoundcharacter "s {\SS} %D \stoptyping %D %D or even %D %D \starttyping %D \installcompoundcharacter "ck {\discretionary {k-}{k}{ck}} %D \installcompoundcharacter "ff {\discretionary{ff-}{f}{ff}} %D \stoptyping %D %D The support is not limited to alphabetic characters, so the %D next definition is also valid. %D %D \starttyping %D \installcompoundcharacter ". {.\doifnextcharelse{\spacetoken}{}{\kern.125em}} %D \stoptyping %D %D The implementation looks familiar and uses the same tricks as %D mentioned earlier in this module. We take care of two %D arguments, which complicates things a bit. \def\@nc@{@nc@} % normal character \def\@cc@{@cc@} % compound character \def\@cs@{@cs@} % compound characters \def\@cx@{@cx@} % compound definition %D When we started working on MK IV code, we needed a different %D approach for defining the active character itself. In MK II as %D well as in MK IV we now use the catcode vectors. \chardef\compoundcharactermode\plusone \def\installcompoundcharacter #1#2#3 #4% {#4} no grouping {\ifcase\compoundcharactermode % ignore mode \else \chardef\thecompoundcharacter`#1% \@EA\chardef\csname\@nc@\string#1\endcsname\thecompoundcharacter \def\!!stringa{#3}% \@EA\def\csname\ifx\!!stringa\empty\@cc@\else\@cs@\fi\detokenize{#1#2#3}\endcsname{#4}% \setevalue{\@cx@\detokenize{#1}}{\noexpand\handlecompoundcharacter{\detokenize{#1}}}% beter nr's % \@EA\letcatcodecommand\@EA\prtcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname % \@EA\letcatcodecommand\@EA\texcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname \@EA\letcatcodecommand\@EA\ctxcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname \fi} %D In order to serve the language specific well, we will introduce %D a namespace: % \ifx\currentlanguage\undefined \let\compoundcharacterclass\empty % \else % \def\compoundcharacterclass{\currentlanguage} % \fi \def\@cc@{@cc@\compoundcharacterclass} % compound character \def\@cs@{@cs@\compoundcharacterclass} % compound characters %D We can also ignore definitions (needed in for instance \XML). Beware, %D this macro is supposed to be used grouped! \def\ignorecompoundcharacter {\chardef\compoundcharactermode\zerocount} \let\restorecompoundcharacter \gobbleoneargument % obsolete \let\enableactivediscretionaries\relax % obsolete %D In handling the compound characters we have to take care of %D \type{\bgroup} and \type{\egroup} tokens, so we end up with %D a multi||step interpretation macro. We look ahead for a %D \type{\bgroup}, \type{\egroup} or \type{\blankspace}. Being %D no user of this mechanism, the credits for testing them goes %D to Tobias Burnus, the first german user of \CONTEXT. %D %D We define these macros as \type{\long} because we can %D expect \type{\par} tokens. We need to look into the future %D with \type{\futurelet} to prevent spaces from %D disappearing. \def\handlecompoundcharacter#1% {\def\xhandlecompoundcharacter{\dohandlecompoundcharacter{#1}}% \futurelet\next\xhandlecompoundcharacter} \def\dohandlecompoundcharacter {\ifx\next\bgroup %\@EA\dodohandlecompoundcharacter % handle "{ee} -> \"ee %\@EA\gobbleoneargument % forget "{ee} -> ee \@EA\handlecompoundcharacterone % ignore "{ee} -> "ee \else\ifx\next\egroup \@EAEAEA\donohandlecompoundcharacter \else\ifx\next\blankspace \@EA\@EAEAEA\@EA\donohandlecompoundcharacter \else \@EA\@EAEAEA\@EA\dodohandlecompoundcharacter \fi\fi\fi} \def\donohandlecompoundcharacter#1{\csname\@nc@\string#1\endcsname} \def\dododohandlecompoundcharacter {\ifx\next\bgroup \@EA\handlecompoundcharacterone \else\ifx\next\egroup \@EAEAEA\handlecompoundcharacterone \else\ifx\next\blankspace \@EA\@EAEAEA\@EA\handlecompoundcharacterone \else \@EA\@EAEAEA\@EA\handlecompoundcharactertwo \fi\fi\fi} \def\dodohandlecompoundcharacter#1#2% preserve space {\def\xdodohandlecompoundcharacter{\dododohandlecompoundcharacter#1#2}% \futurelet\next\xdodohandlecompoundcharacter} %D Besides taken care of the grouping and space tokens, we have %D to deal with three situations. First we look if the next %D character equals the first one, if so, then we just insert %D the original. Next we look if indeed a compound character is %D defined. We either execute the compound character or just %D insert the first. So we have %D %D \starttyping %D %D \stoptyping %D %D In later modules we will see how these commands are used. \long\def\handlecompoundcharacterone#1#2% {\if\string#1\string#2% was: \ifx#1#2% \def\next{\csname\@nc@\string#1\endcsname}% \else\ifcsname\@cc@\string#1\string#2\endcsname \def\next{\csname\@cc@\string#1\string#2\endcsname}% \else \def\next{\csname\@nc@\string#1\endcsname#2}% \fi\fi \next} \long\def\handlecompoundcharactertwo#1#2#3% {\if\string#1\string#2% \def\next{\csname\@nc@\string#1\endcsname#3}% \else\ifcsname\@cs@\string#1\string#2\string#3\endcsname \def\next{\csname\@cs@\string#1\string#2\string#3\endcsname}% \else\ifcsname\@cc@\string#1\string#2\endcsname \def\next{\csname\@cc@\string#1\string#2\endcsname#3}% \else \def\next{\csname\@nc@\string#1\endcsname#2#3}% \fi\fi\fi \next} %D For very obscure applications (see for an application \type %D {lang-sla.tex}) we provide: \def\simplifiedcompoundcharacter#1#2% {\ifcsname\@cc@\string#1\string#2\endcsname \@EA\@EA\@EA\firstofoneargument\csname\@cc@\string#1\string#2\endcsname \else #2% \fi} %D \macros %D {disablediscretionaries,disablecompoundcharacter} %D %D Occasionally we need to disable this mechanism. For the %D moment we assume that \type {|} is used. \let\disablediscretionaries \ignorediscretionaries \let\disablecompoundcharacters\ignorecompoundcharacter %D \macros %D {normalcompound} %D %D Handy in for instance XML. (Kind of obsolete) \ifx\normalcompound\undefined \let\normalcompound=| \fi \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-agr.mkii0000644000175000017500000005114014536300610024647 0ustar hillehille%D \module %D [ file=enco-agr, %D version=2005.02.20, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Ancient Greek, %D author=Thomas A. Schmitz, %D date=\currentdate] \startmapping[agr] \definecasemaps 13 to 64 lc 0 uc 0 \definecasemaps 65 to 66 lc +32 uc 0 \definecasemaps 67 to 67 lc 0 uc 0 \definecasemaps 68 to 85 lc +32 uc 0 \definecasemaps 86 to 86 lc 0 uc 0 \definecasemaps 87 to 90 lc +32 uc 0 \definecasemaps 91 to 255 lc 0 uc 0 \definecaseself 4 % apostrofe \definecaseself 5 % greekbetaalt \stopmapping \startencoding[agr] \definecharacter greeksigmalunate 1 \definecharacter endash 2 \definecharacter emdash 3 \definecharacter apostrophe 4 \definecharacter greekbetaalt 5 \definecharacter epih 6 \definecharacter textbraceleft 8 \definecharacter textbraceright 9 \definecharacter textbreve 10 \definecharacter greekSigmalunate 13 \definecharacter greekIotadialytika 14 \definecharacter greekUpsilondialytika 15 \definecharacter greekepsilonperispomeni 18 \definecharacter greekomicronperispomeni 19 \definecharacter greekepsilondasiaperispomeni 20 \definecharacter greekomicrondasiaperispomeni 21 \definecharacter greekepsilonpsiliperispomeni 22 \definecharacter greekomicronpsiliperispomeni 23 \definecharacter greekiotadialytikaperispomeni 24 \definecharacter greekupsilondialytikaperispomeni 25 \definecharacter greekdialytikaperispomeni 26 \definecharacter textbottomdot 33 \definecharacter greeksampi 34 \definecharacter greekdigamma 35 \definecharacter greekstigma 36 \definecharacter greeknumkoppa 37 \definecharacter greekkoppa 38 \definecharacter guilsingleright 39 \definecharacter textdag 43 \definecharacter greekoxia 47 \definecharacter greekanoteleia 59 \definecharacter greekdasia 60 \definecharacter greekpsili 62 \definecharacter greekquestionmark 63 \definecharacter dialytika 64 \definecharacter greekAlpha 65 \definecharacter greekBeta 66 \definecharacter greekomegaiotasub 67 \definecharacter greekDelta 68 \definecharacter greekEpsilon 69 \definecharacter greekPhi 70 \definecharacter greekGamma 71 \definecharacter greekEta 72 \definecharacter greekIota 73 \definecharacter greekTheta 74 \definecharacter greekKappa 75 \definecharacter greekLambda 76 \definecharacter greekMu 77 \definecharacter greekNu 78 \definecharacter greekOmicron 79 \definecharacter greekPi 80 \definecharacter greekChi 81 \definecharacter greekRho 82 \definecharacter greekSigma 83 \definecharacter greekTau 84 \definecharacter greekUpsilon 85 \definecharacter greeketaiotasub 86 \definecharacter greekOmega 87 \definecharacter greekXi 88 \definecharacter greekPsi 89 \definecharacter greekZeta 90 \definecharacter bracketleft 91 \definecharacter greekvaria 92 \definecharacter bracketright 93 \definecharacter greekperispomeni 94 \definecharacter guilsingleleft 96 % the above is a quote character \definecharacter greekalpha 97 \definecharacter greekbeta 98 \definecharacter greekfinalsigma 99 \definecharacter greekdelta 100 \definecharacter greekepsilon 101 \definecharacter greekphi 102 \definecharacter greekgamma 103 \definecharacter greeketa 104 \definecharacter greekiota 105 \definecharacter greektheta 106 \definecharacter greekkappa 107 \definecharacter greeklambda 108 \definecharacter greekmu 109 \definecharacter greeknu 110 \definecharacter greekomicron 111 \definecharacter greekpi 112 \definecharacter greekchi 113 \definecharacter greekrho 114 \definecharacter greeksigma 115 \definecharacter greektau 116 \definecharacter greekupsilon 117 \definecharacter greekalphaiotasub 118 \definecharacter greekomega 119 \definecharacter greekxi 120 \definecharacter greekpsi 121 \definecharacter greekzeta 122 \definecharacter floorleft 123 \definecharacter textbar 124 \definecharacter floorright 125 \definecharacter greekperispomeni 126 \definecharacter quotedblleft 128 \definecharacter quotedblright 129 \definecharacter exclam 130 \definecharacter greekiotadasia 131 \definecharacter greekiotapsili 132 \definecharacter greekiotaoxia 133 \definecharacter greekiotadasiatonos 134 \definecharacter greekiotapsilitonos 135 \definecharacter greekiotavaria 136 \definecharacter greekiotadasiavaria 137 \definecharacter greekiotapsilivaria 138 \definecharacter greekiotaperispomeni 139 \definecharacter greekiotadasiaperispomeni 140 \definecharacter greekiotapsiliperispomeni 141 \definecharacter greekiotadialytika 142 \definecharacter greekiotadialytikatonos 143 \definecharacter greekiotadialytikavaria 144 \definecharacter greekdasiaperispomeni 145 \definecharacter greekpsiliperispomeni 146 \definecharacter greekdasiatonos 147 \definecharacter greekpsilitonos 148 \definecharacter greekdasiavaria 149 \definecharacter greekpsilivaria 150 \definecharacter greekdialytikatonos 151 \definecharacter greekepsilondasia 152 \definecharacter greekepsilonpsili 153 \definecharacter greekepsilonoxia 154 \definecharacter greekepsilondasiatonos 155 \definecharacter greekepsilonpsilitonos 156 \definecharacter greekepsilonvaria 157 \definecharacter greekepsilondasiavaria 158 \definecharacter greekepsilonpsilivaria 159 \definecharacter greekdialytikavaria 160 \definecharacter greekalphadasia 161 \definecharacter greekalphapsili 162 \definecharacter greekalphaoxia 163 \definecharacter greekalphadasiatonos 164 \definecharacter greekalphapsilitonos 165 \definecharacter greekalphavaria 166 \definecharacter greekalphadasiavaria 167 \definecharacter greekalphapsilivaria 168 \definecharacter greekalphaperispomeni 169 \definecharacter greekalphadasiaperispomeni 170 \definecharacter greekalphapsiliperispomeni 171 \definecharacter greekalphaiotasubdasia 172 \definecharacter greekalphaiotasubpsili 173 \definecharacter greekalphaiotasubtonos 174 \definecharacter greekalphaiotasubdasiatonos 175 \definecharacter greekalphaiotasubpsilitonos 176 \definecharacter greekalphaiotasubvaria 177 \definecharacter greekalphaiotasubdasiavaria 178 \definecharacter greekalphaiotasubpsilivaria 179 \definecharacter greekalphaiotasubperispomeni 180 \definecharacter greekalphaiotasubdasiaperispomeni 181 \definecharacter greekalphaiotasubpsiliperispomeni 182 \definecharacter greekrhodasia 183 \definecharacter greekrhopsili 184 \definecharacter greeketadasia 185 \definecharacter greeketapsili 186 \definecharacter greeketaoxia 187 \definecharacter greeketadasiatonos 188 \definecharacter greeketapsilitonos 189 \definecharacter greeketavaria 190 \definecharacter greeketadasiavaria 191 \definecharacter greeketapsilivaria 192 \definecharacter greeketaperispomeni 193 \definecharacter greeketadasiaperispomeni 194 \definecharacter greeketapsiliperispomeni 195 \definecharacter textslash 196 \definecharacter greeketaiotasubdasia 197 \definecharacter greeketaiotasubpsili 198 \definecharacter greeketaiotasubtonos 199 \definecharacter greeketaiotasubdasiatonos 200 \definecharacter greeketaiotasubpsilitonos 201 \definecharacter greeketaiotasubvaria 202 \definecharacter greeketaiotasubdasiavaria 203 \definecharacter greeketaiotasubpsilivaria 204 \definecharacter greeketaiotasubperispomeni 205 \definecharacter greeketaiotasubdasiaperispomeni 206 \definecharacter greeketaiotasubpsiliperispomeni 207 \definecharacter greekomicrondasia 208 \definecharacter greekomicronpsili 209 \definecharacter greekomicronoxia 210 \definecharacter greekomicrondasiatonos 211 \definecharacter greekomicronpsilitonos 212 \definecharacter greekomicronvaria 213 \definecharacter greekomicrondasiavaria 214 \definecharacter greekomicronpsilivaria 215 \definecharacter greekupsilondasia 216 \definecharacter greekupsilonpsili 217 \definecharacter greekupsilonoxia 218 \definecharacter greekupsilondasiatonos 219 \definecharacter greekupsilonpsilitonos 220 \definecharacter greekupsilonvaria 221 \definecharacter greekupsilondasiavaria 222 \definecharacter greekupsilonpsilivaria 223 \definecharacter greekupsilonperispomeni 224 \definecharacter greekupsilondasiaperispomeni 225 \definecharacter greekupsilonpsiliperispomeni 226 \definecharacter greekupsilondiaeresis 227 \definecharacter greekupsilondialytikatonos 228 \definecharacter greekupsilondialytikavaria 229 \definecharacter greekomegadasia 230 \definecharacter greekomegapsili 231 \definecharacter greekomegaoxia 232 \definecharacter greekomegadasiatonos 233 \definecharacter greekomegapsilitonos 234 \definecharacter greekomegavaria 235 \definecharacter greekomegadasiavaria 236 \definecharacter greekomegapsilivaria 237 \definecharacter greekomegaperispomeni 238 \definecharacter greekomegadasiaperispomeni 239 \definecharacter greekomegapsiliperispomeni 240 \definecharacter greekomegaiotasubdasia 241 \definecharacter greekomegaiotasubpsili 242 \definecharacter greekomegaiotasubtonos 243 \definecharacter greekomegaiotasubdasiatonos 244 \definecharacter greekomegaiotasubpsilitonos 245 \definecharacter greekomegaiotasubvaria 246 \definecharacter greekomegaiotasubdasiavaria 247 \definecharacter greekomegaiotasubpsilivaria 248 \definecharacter greekomegaiotasubperispomeni 249 \definecharacter greekomegaiotasubdasiaperispomeni 250 \definecharacter greekomegaiotasubpsiliperispomeni 251 \definecharacter greeknumeralsign 254 \definecharacter greeknumeralsignlower 255 \stopencoding \startencoding[default] \definecharacter greekAlphapsili {\greekpsili \greekAlpha} \definecharacter greekAlphadasia {\greekdasia \greekAlpha} \definecharacter greekAlphapsilivaria {\greekpsilivaria \greekAlpha} \definecharacter greekAlphadasiavaria {\greekdasiavaria \greekAlpha} \definecharacter greekAlphapsilitonos {\greekpsilitonos \greekAlpha} \definecharacter greekAlphadasiatonos {\greekdasiatonos \greekAlpha} \definecharacter greekAlphapsiliperispomeni {\greekpsiliperispomeni \greekAlpha} \definecharacter greekAlphadasiaperispomeni {\greekdasiaperispomeni \greekAlpha} \definecharacter greekEpsilonpsili {\greekpsili \greekEpsilon} \definecharacter greekEpsilondasia {\greekdasia \greekEpsilon} \definecharacter greekEpsilonpsilivaria {\greekpsilivaria \greekEpsilon} \definecharacter greekEpsilondasiavaria {\greekdasiavaria \greekEpsilon} \definecharacter greekEpsilonpsilitonos {\greekpsilitonos \greekEpsilon} \definecharacter greekEpsilondasiatonos {\greekdasiatonos \greekEpsilon} \definecharacter greekEtapsili {\greekpsili \greekEta} \definecharacter greekEtadasia {\greekdasia \greekEta} \definecharacter greekEtapsilivaria {\greekpsilivaria \greekEta} \definecharacter greekEtadasiavaria {\greekdasiavaria \greekEta} \definecharacter greekEtapsilitonos {\greekpsilitonos \greekEta} \definecharacter greekEtadasiatonos {\greekdasiatonos \greekEta} \definecharacter greekEtapsiliperispomeni {\greekpsiliperispomeni \greekEta} \definecharacter greekEtadasiaperispomeni {\greekdasiaperispomeni \greekEta} \definecharacter greekIotapsili {\greekpsili \greekIota} \definecharacter greekIotadasia {\greekdasia \greekIota} \definecharacter greekIotapsilivaria {\greekpsilivaria \greekIota} \definecharacter greekIotadasiavaria {\greekdasiavaria \greekIota} \definecharacter greekIotapsilitonos {\greekpsilitonos \greekIota} \definecharacter greekIotadasiatonos {\greekdasiatonos \greekIota} \definecharacter greekIotapsiliperispomeni {\greekpsiliperispomeni \greekIota} \definecharacter greekIotadasiaperispomeni {\greekdasiaperispomeni \greekIota} \definecharacter greekOmicronpsili {\greekpsili \greekOmicron} \definecharacter greekOmicrondasia {\greekdasia \greekOmicron} \definecharacter greekOmicronpsilivaria {\greekpsilivaria \greekOmicron} \definecharacter greekOmicrondasiavaria {\greekdasiavaria \greekOmicron} \definecharacter greekOmicronpsilitonos {\greekpsilitonos \greekOmicron} \definecharacter greekOmicrondasiatonos {\greekdasiatonos \greekOmicron} \definecharacter greekUpsilondasia {\greekdasia \greekUpsilon} \definecharacter greekUpsilondasiavaria {\greekdasiavaria \greekUpsilon} \definecharacter greekUpsilondasiatonos {\greekdasiatonos \greekUpsilon} \definecharacter greekUpsilondasiaperispomeni {\greekdasiaperispomeni \greekUpsilon} \definecharacter greekOmegapsili {\greekpsili \greekOmega} \definecharacter greekOmegadasia {\greekdasia \greekOmega} \definecharacter greekOmegapsilivaria {\greekpsilivaria \greekOmega} \definecharacter greekOmegadasiavaria {\greekdasiavaria \greekOmega} \definecharacter greekOmegapsilitonos {\greekpsilitonos \greekOmega} \definecharacter greekOmegadasiatonos {\greekdasiatonos \greekOmega} \definecharacter greekOmegapsiliperispomeni {\greekpsiliperispomeni \greekOmega} \definecharacter greekOmegadasiaperispomeni {\greekdasiaperispomeni \greekOmega} \definecharacter greekAlphaiotasubpsili {\greekpsili \greekAlpha \greekiota} \definecharacter greekAlphaiotasubdasia {\greekdasia \greekAlpha \greekiota} \definecharacter greekAlphaiotasubpsilivaria {\greekpsilivaria \greekAlpha \greekiota} \definecharacter greekAlphaiotasubdasiavaria {\greekdasiavaria \greekAlpha \greekiota} \definecharacter greekAlphaiotasubpsilitonos {\greekpsilitonos \greekAlpha \greekiota} \definecharacter greekAlphaiotasubdasiatonos {\greekdasiatonos \greekAlpha \greekiota} \definecharacter greekAlphaiotasubpsiliperispomeni {\greekpsiliperispomeni \greekAlpha \greekiota} \definecharacter greekAlphaiotasubdasiaperispomeni {\greekdasiaperispomeni \greekAlpha \greekiota} \definecharacter greekEtaiotasubpsili {\greekpsili \greekEta \greekiota} \definecharacter greekEtaiotasubdasia {\greekdasia \greekEta \greekiota} \definecharacter greekEtaiotasubpsilivaria {\greekpsilivaria \greekEta \greekiota} \definecharacter greekEtaiotasubdasiavaria {\greekdasiavaria \greekEta \greekiota} \definecharacter greekEtaiotasubpsilitonos {\greekpsilitonos \greekEta \greekiota} \definecharacter greekEtaiotasubdasiatonos {\greekdasiatonos \greekEta \greekiota} \definecharacter greekEtaiotasubpsiliperispomeni {\greekpsiliperispomeni \greekEta \greekiota} \definecharacter greekEtaiotasubdasiaperispomeni {\greekdasiaperispomeni \greekEta \greekiota} \definecharacter greekOmegaiotasubpsili {\greekpsili \greekOmega \greekiota} \definecharacter greekOmegaiotasubdasia {\greekdasia \greekOmega \greekiota} \definecharacter greekOmegaiotasubpsilivaria {\greekpsilivaria \greekOmega \greekiota} \definecharacter greekOmegaiotasubdasiavaria {\greekdasiavaria \greekOmega \greekiota} \definecharacter greekOmegaiotasubpsilitonos {\greekpsilitonos \greekOmega \greekiota} \definecharacter greekOmegaiotasubdasiatonos {\greekdasiatonos \greekOmega \greekiota} \definecharacter greekOmegaiotasubpsiliperispomeni {\greekpsiliperispomeni \greekOmega \greekiota} \definecharacter greekOmegaiotasubdasiaperispomeni {\greekdasiaperispomeni \greekOmega \greekiota} \definecharacter greekAlphavaria {\greekvaria \greekAlpha} \definecharacter greekAlphaoxia {\greekoxia \greekAlpha} \definecharacter greekAlphaiotasub {\greekAlpha \greekiota} \definecharacter greekEpsilonvaria {\greekvaria \greekEpsilon} \definecharacter greekEpsilonoxia {\greekoxia \greekEpsilon} \definecharacter greekEtavaria {\greekvaria \greekEta} \definecharacter greekEtaoxia {\greekoxia \greekEta} \definecharacter greekEtaiotasub {\greekEta \greekiota} \definecharacter greekIotavaria {\greekvaria \greekIota} \definecharacter greekIotaoxia {\greekoxia \greekIota} \definecharacter greekUpsilonvaria {\greekvaria \greekUpsilon} \definecharacter greekUpsilonoxia {\greekoxia \greekUpsilon} \definecharacter greekOmicronvaria {\greekvaria \greekOmicron} \definecharacter greekOmicronoxia {\greekoxia \greekOmicron} \definecharacter greekOmegavaria {\greekvaria \greekOmega} \definecharacter greekOmegaoxia {\greekoxia \greekOmega} \definecharacter greekOmegaiotasub {\greekOmega \greekiota} \definecharacter greekRhodasia {\greekdasia \greekRho} \definecharacter digamma {\greekdigamma} \definecharacter sampi {\greeksampi} \definecharacter stigma {\greekstigma} \definecharacter koppa {\greeknumkoppa} \definecharacter lunars {\greeksigmalunate} \definecharacter lunarS {\greekSigmalunate} \definecharacter halfbraceleft {\floorleft} \definecharacter halfbraceright {\floorright} \definecharacter crux {\textdag} \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/font-bfm.mkii0000644000175000017500000001615314536300610024671 0ustar hillehille%D \module %D [ file=font-bfm, %D version=2003.11.25, %D title=\CONTEXT\ Font Macros, %D subtitle=Mixed Normal and Bold Math, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Font Macros / Mixed Bold Math Support} %D The following example demonstrates how to use normal, bold, and mixed %D normal|/|bold math. Since not everyone has the Lucida on his|/|her %D machine we don't show the result. %D %D \starttyping %D \setupformulas %D [method=bold] %D %D \definetypeface [mainface] [rm] [serif] [lucida] [default] [encoding=texnansi] %D \definetypeface [mainface] [tt] [mono] [lucida] [default] [encoding=texnansi] %D \definetypeface [mainface] [ss] [sans] [lucida] [default] [encoding=texnansi] %D \definetypeface [mainface] [mm] [math] [lucida] [default] [encoding=texnansi] %D \definetypeface [mainface] [mm] [bfmath] [lucida] [default] [encoding=texnansi] %D %D \definetypeface [boldmath] [rm] [serif] [lucida] [default] [encoding=texnansi] %D \definetypeface [boldmath] [tt] [mono] [lucida] [default] [encoding=texnansi] %D \definetypeface [boldmath] [ss] [sans] [lucida] [default] [encoding=texnansi] %D \definetypeface [boldmath] [mm] [boldmath] [lucida] [default] [encoding=texnansi] %D %D \switchtobodyfont[mainface] %D %D \startlines %D $\mainface x=10 \Gamma \Delta \alpha \delta \zeta$ %D $\boldmath x=10 \Gamma \Delta \alpha \delta \zeta$ %D \stoplines %D %D \startformula %D x=12=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startformula[mainface] %D x=12=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startformula[boldmath] %D x=12=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startformula[boldmath,8pt] %D x=8=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startformula[boldmath,12pt,small] %D x=12s=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startformula[boldmath,small] %D x=s=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startformula[boldmath,10pt] %D x=10=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startformula[boldmath,11pt,small] %D x=11s=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startformula[boldmath,9pt] %D x=9=\fontbody \Gamma \Delta \alpha \delta \zeta %D \stopformula %D %D \startlines %D \formula{1=2x} %D \formula[boldmath]{1=2x} %D \formula[mainface]{1=2x} %D \formula[mainface]{1 \theta \Gamma = \bfm 1 \beta \hbox{\sl test}\Gamma \alpha ' x x} %D \formula[mainface]{1 \theta \Gamma = {\bfm 1 \beta \hbox{\sl test}\Gamma \alpha ' x} x} %D \stoplines %D \stoptyping \unprotect %D \TEX\ has some hard wired expectations about where to look for %D certain characters. This means that we cannot overload the families %D 0 upto~3. Also, since we use C upto~F for math as well, we are left %D with the range 4 upto~B. \chardef\mrbffam\itfam \edef\c!mrbf{\c!mr\c!bf} \let\hexmrbffam\hexitfam % 4 it \chardef\exbffam\slfam \edef\c!exbf{\c!ex\c!bf} \let\hexexbffam\hexslfam % 5 sl \chardef\mibffam\bffam \edef\c!mibf{\c!mi\c!bf} \let\hexmibffam\hexbffam % 6 bf \chardef\sybffam\nnfam \edef\c!sybf{\c!sy\c!bf} \let\hexsybffam\hexnnfam % 7 nn \chardef\mabffam\bsfam \edef\c!mabf{\c!ma\c!bf} \let\hexmabffam\hexbsfam % 8 bs \chardef\mbbffam\bifam \edef\c!mbbf{\c!mb\c!bf} \let\hexmbbffam\hexbifam % 9 bi \chardef\mcbffam\scfam \edef\c!mcbf{\c!mc\c!bf} \let\hexmcbffam\hexscfam % A sc \chardef\mdbffam\scfam \edef\c!mdbf{\c!mc\c!bf} \let\hexmdbffam\hexscfam % B tf % tricky %D The next bunch of code looks horrible and tricky but one has to keep in %D mind that because \TEX\ makes several passes over the math list we need to %D make sure that grouping is handled well. Later assignments to a family %D overload previous ones, the last one counts. \newtoks \boldmathstrategies \newtoks \boldsymbstrategies \appendtoks \dosetmathfamily\mrbffam\textface\scriptface\scriptscriptface\c!mrbf\mrfallback \dosetmathfamily\mibffam\textface\scriptface\scriptscriptface\c!mibf\empty \dosetmathfamily\sybffam\textface\scriptface\scriptscriptface\c!sybf\empty \dosetmathfamily\exbffam\textface\textface \textface \c!exbf\empty \dosetmathfamily\mabffam\textface\scriptface\scriptscriptface\c!mabf\empty \dosetmathfamily\mbbffam\textface\scriptface\scriptscriptface\c!mbbf\empty \dosetmathfamily\mcbffam\textface\scriptface\scriptscriptface\c!mcbf\empty \to \boldmathstrategies \appendtoks \dosetskewchar\mifam\defaultskewcharmi \dosetskewchar\syfam\defaultskewcharsy \to \boldmathstrategies \appendtoks \dosetsymbfamily\mrbffam\textface\scriptface\scriptscriptface\c!mrbf \dosetsymbfamily\mibffam\textface\scriptface\scriptscriptface\c!mibf \dosetsymbfamily\sybffam\textface\scriptface\scriptscriptface\c!sybf \dosetsymbfamily\exbffam\textface\textface \textface \c!exbf \dosetsymbfamily\mabffam\textface\scriptface\scriptscriptface\c!mabf \dosetsymbfamily\mbbffam\textface\scriptface\scriptscriptface\c!mbbf \dosetsymbfamily\mcbffam\textface\scriptface\scriptscriptface\c!mcbf \to \boldsymbstrategies %D Here comes the real mess (due to semi||global settings en multiple %D passes over the math list once the input is expanded. \newevery \everyboldfacemath \relax \chardef \boldfacemathmethod \zerocount \appendtoks \ifcase\boldfacemathmethod \else \the\boldmathstrategies \fi \to \mathstrategies \appendtoks \ifcase\boldfacemathmethod \else \the\boldsymbstrategies \fi \to \symbstrategies \appendtoks \let\mrfam\mrbffam \let\c!mr\c!mrbf \let\hexmrfam\hexmrbffam \let\mifam\mibffam \let\c!mi\c!mibf \let\hexmifam\hexmibffam \let\syfam\sybffam \let\c!sy\c!sybf \let\hexsyfam\hexsybffam \let\exfam\exbffam \let\c!ex\c!exbf \let\hexexfam\hexexbffam \let\mafam\mabffam \let\c!ma\c!mabf \let\hexmafam\hexmabffam \let\mbfam\mbbffam \let\c!mb\c!mbbf \let\hexmbfam\hexmbbffam \let\mcfam\mcbffam \let\c!mc\c!mcbf \let\hexmcfam\hexmcbffam \to \everyboldfacemath \appendtoks \let\mathsubfamily\c!bf \to \everyboldfacemath \appendtoks \synchronizemath \aftergroup\synchronizemath \to \everyboldfacemath %D \macros %D {boldfacemath, bfm, autoboldfacemath} %D %D These are the user commands, with \type {\bfm} being the most comfortable. \def\boldfacemath {\ifcase\boldfacemathmethod\else\the\everyboldfacemath\fi} \def\bfm {\boldfacemath} % no \let, so that we can redefine \def\autoboldfacemath{\appendtoks\ifcase\boldfacemathmethod\else\let\bf\boldfacemath\fi\to\everymathematics} %D We hook this feature into the formula mechanism. \setupformulas [\c!method=\v!normal] \appendtoks \doifelse{\formulaparameter\c!method}\v!bold {\chardef\boldfacemathmethod\plusone} {\chardef\boldfacemathmethod\zerocount}% \to \everysetupformulas %D Of course this only works when bfmath fonts are set up (see example at %D the top of this file) and bold math is enabled: %D %D \starttyping %D \setupformulas %D [method=bold] %D \stoptyping \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/verb-eif.mkii0000644000175000017500000001200514536300610024650 0ustar hillehille%D \module %D [ file=verb-eif, %D version=2000.08.23, %D title=\CONTEXT\ Verbatim Macros, %D subtitle=Pretty Eiffel Verbatim, %D author={Berend de Boer \& Hans Hagen}, %D date=\currentdate, %D copyright={Berend de Boer \& Hans Hagen}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % This module will be cleaned up a bit in the process of more % flexible verbatim options. \writestatus{loading}{ConTeXt Verbatim Macros / Pretty EIFFEL Verbatim} %D \startbuffer %D \startEIFFEL %D class TEST %D %D creation %D make %D %D feature -- creation %D %D make is %D do %D print ("hello world") %D end %D %D end %D \stopEIFFEL %D \stopbuffer %D %D %D If a variable in a comment is quoted with `..', it is typeset %D as a variable (common Eiffel convention for pretty typesetters): %D %D \startbuffer %D \startEIFFEL %D class TEST %D %D feature %D %D say (something: STRING) is %D -- say `something' to stdout %D do %D print (something) %D end %D %D end -- class TEST %D \stopEIFFEL %D \stopbuffer %D %D %D Recommended, OOSC2 style setting is: %D %D \setuptyping %D [EIFFEL] %D [margin=1em,palet=,color=blue,style=\it,icommand=\bf,ccommand=\tf] %D %D We borrow most of the macros from the \PERL\ driver. \ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi \unprotect %D \EIFFEL\ has only the one line comment sequence \type{--}. \gdef\EIFsetspecials% {\PLsetspecials \setpretty`\#=32 \setpretty`\{=33 \setpretty`\}=33 \setpretty`\[=33 \setpretty`\]=33 \setpretty`\(=33 \setpretty`\)=33 \setpretty`\;=33 \setpretty`\:=33 \setpretty`\!=33 \setpretty`\?=33 \setpretty`\==33 \setpretty`\~=33 \setpretty`\<=33 \setpretty`\>=33 \setpretty`\-=33 \setpretty`\+=33 \setpretty`\/=33 \setpretty`\*=33 \setpretty`\^=33 \setpretty`\%=41 \setpretty`\-=45 \setpretty`\`=81 \setpretty`\'=82 } \gdef\EIFsethandlers% {\PLsethandlers \installprettyhandler 33 \EIFtypesymbol \installprettyhandler 45 \EIFtypefourfive \installprettyhandler 81 \EIFtypeeightone \installprettyhandler 82 \EIFtypeeighttwo \installprettyhandler 90 \EIFtypenine } \gdef\EIFsetcontrols% {\PLsetcontrols \def\flushrestofverbatimline% {\endPLtypesix \inPLcommentfalse \verbatimfont \PLverbosefalse \PLverboseskipped=0}} \gdef\EIFsetvariables {\PLsetvariables} \gdef\setupprettyEIFtype% {\def\prettyidentifier{EIF}% \let\PLidentifiers=\EIFidentifiers \let\PLvariables=\EIFvariables \EIFsetvariables \EIFsetcontrols \EIFsethandlers \EIFsetspecials \PLsetdiagnostics} % symbols should appear in roman \gdef\EIFtypesymbol#1% {\endPLtypesix \ifinPLcomment \getpretty{#1}% \else {\prettynaturalfont\/% \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}% \fi} % recognize comments \gdef\EIFtypefourfive% {\handlenextnextpretty\doEIFtypefourfive\PLtypefourtwo} \gdef\doEIFtypefourfive#1#2% {\endPLtypesix \getprettydata{#2}% \ifnum\prettytype=45 \let\next=\dodoEIFtypefourfive \else \let\next=\PLtypefourtwo \fi \next{#1}#2} \gdef\dodoEIFtypefourfive% #1% {\endPLtypesix \handlenextnextpretty\dododoEIFtypefourfive\dodododoPLtypefourfive} \gdef\dododoEIFtypefourfive% {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoEIFtypefourfive} \gdef\dodododoEIFtypefourfive#1#2% {\ifinPLcomment \getpretties{#1}{#2}% \else \ifinPLdouble \getpretties{#1}{#2}% \else \global\inPLcommenttrue \PLverbosecorrection \def\next{\beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty\prettynaturalfont}% \expandafter\next \fi \fi} % recognize `name' in comments and format them like variables \gdef\EIFtypeeightone#1% {\endPLtypesix \ifinPLcomment \verbatimfont \else \getpretty{#1}% \fi} \gdef\EIFtypeeighttwo#1% {\endPLtypesix \ifinPLcomment \prettynaturalfont \else {\prettynaturalfont\/% \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}% \fi} % double quote \gdef\EIFtypenine#1% {\endPLtypesix \ifinPLcomment \getpretty{#1}% \else\ifinPLsingle \getpretty{#1}% \else\ifinPLdouble \global\inPLdoublefalse {\prettynaturalfont\/% \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}% \else \global\inPLdoubletrue {\prettynaturalfont \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}% \fi\fi\fi} \useprettyidentifiers \EIFidentifiers \EIFsetspecials alias all and as check class create creation debug deferred do else elseif end ensure expanded export external false feature from frozen if implies indexing infix inherit inspect invariant is like local loop not obsolete old once or prefix redefine rename require rescue precursor retry select separate strip then true undefine unique until variant when xor \useprettyidentifiers \EIFvariables \EIFsetspecials not-yet-defined \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-pe.mkii0000644000175000017500000035412214567411714024561 0ustar hillehille% this file is auto-generated, don't edit this file % % definitions for interface variables for language pe % \setinterfacevariable{Addition}{جمع} \setinterfacevariable{Alphabetic}{Alphabetic} \setinterfacevariable{Balloon}{بادکنک} \setinterfacevariable{Camel}{Camel} \setinterfacevariable{Cap}{Cap} \setinterfacevariable{Capital}{Capital} \setinterfacevariable{Character}{Character} \setinterfacevariable{Characters}{Characters} \setinterfacevariable{CloseDocument}{بستن‌نوشتار} \setinterfacevariable{ExitViewer}{خروج‌نمایشگر} \setinterfacevariable{FirstPage}{صفحه‌اول} \setinterfacevariable{FitHeight}{پرکردن‌ارتفاع} \setinterfacevariable{FitWidth}{پرکردن‌عرض} \setinterfacevariable{GotoPage}{برو‌به‌صفحه} \setinterfacevariable{Greek}{یونانی} \setinterfacevariable{Help}{کمک} \setinterfacevariable{HideField}{پنهان‌میدان} \setinterfacevariable{HideLayer}{پنهان‌لایه} \setinterfacevariable{Key}{کلید} \setinterfacevariable{LastPage}{صفحه‌آخر} \setinterfacevariable{LoadForm}{بارگذاشتن‌فرم} \setinterfacevariable{MONTH}{ماه} \setinterfacevariable{New}{جدید} \setinterfacevariable{NextJump}{پرش‌بعدی} \setinterfacevariable{NextPage}{صفحه‌بعدی} \setinterfacevariable{Numbers}{شماره‌ها} \setinterfacevariable{OpenNamedDocument}{بازکردن‌نوشتار‌ذخیره‌شده} \setinterfacevariable{Ordinal}{Ordinal} \setinterfacevariable{Paragraph}{پاراگراف} \setinterfacevariable{PauseMovie}{ایست‌فیلم} \setinterfacevariable{PauseRendering}{توقف‌تعبیر} \setinterfacevariable{PauseSound}{ایست‌صدا} \setinterfacevariable{PreviousJump}{پرش‌قبلی} \setinterfacevariable{PreviousPage}{صفحه‌قبلی} \setinterfacevariable{PrintDocument}{چاپ‌نوشتار} \setinterfacevariable{Query}{پرسش} \setinterfacevariable{QueryAgain}{پرسش‌دوباره} \setinterfacevariable{ResetForm}{دوباره‌نشانی‌فرم} \setinterfacevariable{ResumeMovie}{ادامه‌فیلم} \setinterfacevariable{ResumeRendering}{ادامه‌تعبیر} \setinterfacevariable{ResumeSound}{ادامه‌صدا} \setinterfacevariable{Romannumerals}{اعداد‌بزرگ‌لاتین} \setinterfacevariable{SaveDocument}{ذخیره‌نوشتار} \setinterfacevariable{SaveForm}{ذخیره‌فرم} \setinterfacevariable{SaveNamedDocument}{ذخیره‌نوشتار‌بانام} \setinterfacevariable{SearchAgain}{جستجوی‌دوباره} \setinterfacevariable{SearchDocument}{جستجوی‌نوشتار} \setinterfacevariable{ShowBookmarks}{نمایش‌چوبخط} \setinterfacevariable{ShowField}{نمایش‌میدان} \setinterfacevariable{ShowThumbs}{نمایش‌شصت} \setinterfacevariable{StartMovie}{شروع‌فیلم} \setinterfacevariable{StartRendering}{شروع‌تعبیر} \setinterfacevariable{StartSound}{شروع‌صدا} \setinterfacevariable{StopMovie}{پایان‌فیلم} \setinterfacevariable{StopRendering}{پایان‌تعبیر} \setinterfacevariable{StopSound}{پایان‌صدا} \setinterfacevariable{SubmitForm}{تسلیم‌فرم} \setinterfacevariable{ToggleLayer}{تغییرلایه} \setinterfacevariable{ToggleViewer}{تغییرنمایشگر} \setinterfacevariable{URL}{URL} \setinterfacevariable{VideLayer}{VideLayer} \setinterfacevariable{ViewerHelp}{کمک‌نمایشگر} \setinterfacevariable{WEEKDAY}{روزهفته} \setinterfacevariable{WORD}{کلمه} \setinterfacevariable{WORDS}{WORDS} \setinterfacevariable{Word}{Word} \setinterfacevariable{Words}{Words} \setinterfacevariable{abbreviation}{اختصار} \setinterfacevariable{abbreviations}{اختصارات} \setinterfacevariable{absolute}{قطعی} \setinterfacevariable{action}{کنش} \setinterfacevariable{after}{بعداز} \setinterfacevariable{all}{همه} \setinterfacevariable{alphabetic}{alphabetic} \setinterfacevariable{always}{همواره} \setinterfacevariable{anchor}{anchor} \setinterfacevariable{and}{and} \setinterfacevariable{answerarea}{answerarea} \setinterfacevariable{append}{append} \setinterfacevariable{appendices}{پیوستها} \setinterfacevariable{appendix}{پیوست} \setinterfacevariable{april}{آوریل} \setinterfacevariable{aside}{aside} \setinterfacevariable{atleftmargin}{درحاشیه‌چپ} \setinterfacevariable{atmargin}{درحاشیه} \setinterfacevariable{atpage}{درصفحه} \setinterfacevariable{atrightmargin}{درحاشیه‌راست} \setinterfacevariable{attachment}{attachment} \setinterfacevariable{august}{آگوست} \setinterfacevariable{author}{author} \setinterfacevariable{auto}{خودکار} \setinterfacevariable{autointro}{پیشگفتارخودکار} \setinterfacevariable{back}{پشت} \setinterfacevariable{background}{پس‌زمینه} \setinterfacevariable{backmatter}{پس‌مطلب} \setinterfacevariable{backpart}{پس‌قسمت} \setinterfacevariable{backspace}{فضای‌پشت} \setinterfacevariable{backward}{عقب‌گرد} \setinterfacevariable{bbl}{bbl} \setinterfacevariable{before}{قبل‌از} \setinterfacevariable{begin}{begin} \setinterfacevariable{bib}{bib} \setinterfacevariable{big}{بزرگ} \setinterfacevariable{bigbodyfont}{قلم‌بدنه‌بزرگ} \setinterfacevariable{bigger}{bigger} \setinterfacevariable{bigpreference}{اولویت‌بزرگ} \setinterfacevariable{blank}{خالی} \setinterfacevariable{block}{block} \setinterfacevariable{blockquote}{نقل‌بلوک} \setinterfacevariable{bodymatter}{مطلب‌بدنه} \setinterfacevariable{bodypart}{قسمت‌بدنه} \setinterfacevariable{bold}{مشکی} \setinterfacevariable{bolditalic}{ایتالیک‌مشکی} \setinterfacevariable{boldslanted}{خوابیده‌مشکی} \setinterfacevariable{bookmark}{چوبخط} \setinterfacevariable{both}{هردو} \setinterfacevariable{bothtext}{bothtext} \setinterfacevariable{bottom}{پایین} \setinterfacevariable{box}{box} \setinterfacevariable{brief}{مختصر} \setinterfacevariable{broad}{گسترده} \setinterfacevariable{buffer}{بافر} \setinterfacevariable{by}{بوسیله} \setinterfacevariable{calligraphic}{خوشنویسی} \setinterfacevariable{camel}{camel} \setinterfacevariable{cap}{cap} \setinterfacevariable{capital}{capital} \setinterfacevariable{category}{category} \setinterfacevariable{cd:character}{cd:character} \setinterfacevariable{cd:font}{cd:font} \setinterfacevariable{center}{مرکز} \setinterfacevariable{centerlast}{centerlast} \setinterfacevariable{chapter}{فصل} \setinterfacevariable{character}{حرف} \setinterfacevariable{characters}{حرفها} \setinterfacevariable{chemical}{chemical} \setinterfacevariable{chemicals}{chemicals} \setinterfacevariable{chemistry}{chemistry} \setinterfacevariable{cite}{cite} \setinterfacevariable{closed}{closed} \setinterfacevariable{collapsed}{collapsed} \setinterfacevariable{color}{رنگ} \setinterfacevariable{column}{ستون} \setinterfacevariable{columns}{ستونها} \setinterfacevariable{combination}{combination} \setinterfacevariable{command}{فرمان} \setinterfacevariable{commands}{فرمانها} \setinterfacevariable{comment}{توضیح} \setinterfacevariable{component}{مولفه} \setinterfacevariable{compress}{compress} \setinterfacevariable{compressseparator}{compressseparator} \setinterfacevariable{compressstopper}{compressstopper} \setinterfacevariable{concept}{مفهوم} \setinterfacevariable{construction}{construction} \setinterfacevariable{content}{محتوا} \setinterfacevariable{contents}{محتویات} \setinterfacevariable{continue}{ادامه} \setinterfacevariable{continued}{continued} \setinterfacevariable{controls}{کنترلها} \setinterfacevariable{conversion}{تبدیل} \setinterfacevariable{current}{جاری} \setinterfacevariable{cutspace}{فضای‌برش} \setinterfacevariable{dash}{دش} \setinterfacevariable{dataset}{dataset} \setinterfacevariable{date}{تاریخ} \setinterfacevariable{day}{روز} \setinterfacevariable{december}{دسامبر} \setinterfacevariable{default}{پیش‌فرض} \setinterfacevariable{depth}{عمق} \setinterfacevariable{description}{شرح} \setinterfacevariable{disable}{ناتوان} \setinterfacevariable{display}{نمایش} \setinterfacevariable{document}{document} \setinterfacevariable{dot}{نقطه} \setinterfacevariable{doublesided}{دورو} \setinterfacevariable{down}{down} \setinterfacevariable{each}{هر} \setinterfacevariable{edge}{لبه} \setinterfacevariable{effective}{effective} \setinterfacevariable{eight}{eight} \setinterfacevariable{embed}{embed} \setinterfacevariable{empty}{تهی} \setinterfacevariable{enable}{enable} \setinterfacevariable{end}{end} \setinterfacevariable{endnote}{ته‌نوشت} \setinterfacevariable{enumeration}{شماره‌بندی} \setinterfacevariable{environment}{محیط} \setinterfacevariable{even}{زوج} \setinterfacevariable{explicit}{explicit} \setinterfacevariable{export}{export} \setinterfacevariable{external}{خارجی} \setinterfacevariable{extremestretch}{extremestretch} \setinterfacevariable{fact}{fact} \setinterfacevariable{fallback}{fallback} \setinterfacevariable{february}{فوریه} \setinterfacevariable{field}{field} \setinterfacevariable{figure}{شکل} \setinterfacevariable{figures}{شکلها} \setinterfacevariable{file}{پرونده} \setinterfacevariable{final}{نهایی} \setinterfacevariable{first}{اولی} \setinterfacevariable{firstcolumn}{ستون‌اول} \setinterfacevariable{firstpage}{صفحه‌اول} \setinterfacevariable{firstsubpage}{زیرصفحه‌اول} \setinterfacevariable{fit}{پرکردن} \setinterfacevariable{five}{پنج} \setinterfacevariable{fix}{ثابت‌کن} \setinterfacevariable{fixed}{ثابت} \setinterfacevariable{flexible}{انعطافپذیر} \setinterfacevariable{float}{شناور} \setinterfacevariable{flushbackward}{flushbackward} \setinterfacevariable{flushforward}{flushforward} \setinterfacevariable{flushinner}{پمپ‌داخلی} \setinterfacevariable{flushleft}{پمپ‌چپ} \setinterfacevariable{flushouter}{پمپ‌خارجی} \setinterfacevariable{flushright}{پمپ‌راست} \setinterfacevariable{followingpage}{followingpage} \setinterfacevariable{font}{font} \setinterfacevariable{footer}{ته‌برگ} \setinterfacevariable{footnote}{پانوشت} \setinterfacevariable{force}{اجبار} \setinterfacevariable{foreground}{پیش‌زمینه} \setinterfacevariable{formula}{فرمول} \setinterfacevariable{formulas}{فرمولها} \setinterfacevariable{forward}{به‌جلو} \setinterfacevariable{four}{چهار} \setinterfacevariable{fractions}{fractions} \setinterfacevariable{frame}{قالب} \setinterfacevariable{framedtext}{متن‌قالبی} \setinterfacevariable{friday}{جمعه} \setinterfacevariable{frontmatter}{پیش‌مطلب} \setinterfacevariable{frontpart}{پیش‌قسمت} \setinterfacevariable{fullhz}{fullhz} \setinterfacevariable{global}{سراسری} \setinterfacevariable{granular}{granular} \setinterfacevariable{graphic}{گرافیک} \setinterfacevariable{graphics}{گرافیکها} \setinterfacevariable{gray}{خاکستری} \setinterfacevariable{greek}{یونانی} \setinterfacevariable{grid}{توری} \setinterfacevariable{halfline}{نیم‌خط} \setinterfacevariable{handwritten}{دست‌نوشته} \setinterfacevariable{hang}{بیاویز} \setinterfacevariable{hanging}{آویزان} \setinterfacevariable{hangingboth}{hangingboth} \setinterfacevariable{hangleft}{hangleft} \setinterfacevariable{hangright}{hangright} \setinterfacevariable{head}{سر} \setinterfacevariable{header}{سربرگ} \setinterfacevariable{headintext}{headintext} \setinterfacevariable{height}{ارتفاع} \setinterfacevariable{helptext}{متن‌کمکی} \setinterfacevariable{hencefore}{hencefore} \setinterfacevariable{here}{اینجا} \setinterfacevariable{hereafter}{ازاین‌به‌بعد} \setinterfacevariable{hidden}{پنهانی} \setinterfacevariable{hiddenbar}{hiddenbar} \setinterfacevariable{hiding}{پنهان‌کردن} \setinterfacevariable{high}{بلند} \setinterfacevariable{horizontal}{افقی} \setinterfacevariable{hyphenated}{شکسته} \setinterfacevariable{hz}{hz} \setinterfacevariable{inbetween}{دربین} \setinterfacevariable{index}{نمایه} \setinterfacevariable{indices}{نمایه‌ها} \setinterfacevariable{inherit}{ارث‌بردن} \setinterfacevariable{ininner}{درداخلی} \setinterfacevariable{ininneredge}{ininneredge} \setinterfacevariable{ininnermargin}{ininnermargin} \setinterfacevariable{inleft}{درون‌چپ} \setinterfacevariable{inleftedge}{درلبه‌چپ} \setinterfacevariable{inleftmargin}{درحاشیه‌چپ} \setinterfacevariable{inline}{inline} \setinterfacevariable{inmargin}{درون‌حاشیه} \setinterfacevariable{inner}{داخلی} \setinterfacevariable{inneredge}{لبه‌داخلی} \setinterfacevariable{innermargin}{حاشیه‌داخلی} \setinterfacevariable{inother}{inother} \setinterfacevariable{inouter}{درخارجی} \setinterfacevariable{inouteredge}{inouteredge} \setinterfacevariable{inoutermargin}{inoutermargin} \setinterfacevariable{inright}{درون‌راست} \setinterfacevariable{inrightedge}{درلبه‌راست} \setinterfacevariable{inrightmargin}{درحاشیه‌راست} \setinterfacevariable{interaction}{پانل} \setinterfacevariable{interactionmenu}{منوی‌پانل} \setinterfacevariable{interactive}{interactive} \setinterfacevariable{intermezzi}{میان‌پرده‌ها} \setinterfacevariable{intermezzo}{میان‌پرده} \setinterfacevariable{intext}{درون‌متن} \setinterfacevariable{intro}{پیشگفتار} \setinterfacevariable{invertedshort}{invertedshort} \setinterfacevariable{italic}{ایتالیک} \setinterfacevariable{italicbold}{مشکی‌ایتالیک} \setinterfacevariable{item}{آیتم} \setinterfacevariable{itemize}{آیتم‌بندی} \setinterfacevariable{its}{آیم} \setinterfacevariable{january}{ژانویه} \setinterfacevariable{joinedup}{متصل‌بالا} \setinterfacevariable{july}{ژولای} \setinterfacevariable{june}{ژوئن} \setinterfacevariable{keep}{نگهدار} \setinterfacevariable{keeptogether}{keeptogether} \setinterfacevariable{kerncharacters}{kerncharacters} \setinterfacevariable{knockout}{knockout} \setinterfacevariable{label}{برچسب} \setinterfacevariable{landscape}{صفحه‌گسترده} \setinterfacevariable{last}{آخرین} \setinterfacevariable{lastcolumn}{آخرین‌ستون} \setinterfacevariable{lastpage}{صفحه‌آخر} \setinterfacevariable{lastpagenumber}{شماه‌صفحه‌آخر} \setinterfacevariable{lastsubpage}{زیرصفحه‌آخر} \setinterfacevariable{layer}{layer} \setinterfacevariable{left}{چپ} \setinterfacevariable{leftedge}{لبه‌چپ} \setinterfacevariable{lefthanging}{آویزان‌چپ} \setinterfacevariable{leftmargin}{حاشیه‌چپ} \setinterfacevariable{leftpage}{صفحه‌چپ} \setinterfacevariable{lefttext}{متن‌چپ} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{راهنما} \setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{شکست‌کلمات‌کمتر} \setinterfacevariable{letterspacing}{letterspacing} \setinterfacevariable{limit}{limit} \setinterfacevariable{line}{خط} \setinterfacevariable{linenote}{خط‌نوشت} \setinterfacevariable{lines}{خطها} \setinterfacevariable{linked}{linked} \setinterfacevariable{list}{لیست} \setinterfacevariable{local}{موضعی} \setinterfacevariable{localenvironment}{محیط‌موضعی} \setinterfacevariable{logo}{آرم} \setinterfacevariable{logos}{آرمها} \setinterfacevariable{lohi}{پابا} \setinterfacevariable{long}{long} \setinterfacevariable{loose}{شل} \setinterfacevariable{low}{پایین} \setinterfacevariable{ls}{ls} \setinterfacevariable{makeup}{آرایش} \setinterfacevariable{mar}{حاش} \setinterfacevariable{march}{مارس} \setinterfacevariable{margin}{حاشیه} \setinterfacevariable{marginedge}{لبه‌حاشیه} \setinterfacevariable{margintext}{متن‌حاشیه} \setinterfacevariable{margintitle}{عنوان‌حاشیه} \setinterfacevariable{marking}{نشانه‌گذاری} \setinterfacevariable{math}{math} \setinterfacevariable{mathalignment}{تنظیم‌ریاضی} \setinterfacevariable{mathcases}{حالتهای‌ریاضی} \setinterfacevariable{mathematics}{ریاضی} \setinterfacevariable{mathmatrix}{ماتریش‌ریاضی} \setinterfacevariable{mathnote}{mathnote} \setinterfacevariable{max}{بیشترین} \setinterfacevariable{maxdepth}{maxdepth} \setinterfacevariable{maxheight}{maxheight} \setinterfacevariable{maxwidth}{maxwidth} \setinterfacevariable{may}{مه} \setinterfacevariable{mediaeval}{mediaeval} \setinterfacevariable{medium}{متوسط} \setinterfacevariable{middle}{میان} \setinterfacevariable{min}{کمترین} \setinterfacevariable{mindepth}{mindepth} \setinterfacevariable{minheight}{کمترین‌ارتفاع} \setinterfacevariable{minwidth}{کمترین‌عرض} \setinterfacevariable{mirrored}{منعکس} \setinterfacevariable{mixed}{mixed} \setinterfacevariable{monday}{دوشنبه} \setinterfacevariable{mono}{مونو} \setinterfacevariable{monobold}{monobold} \setinterfacevariable{mononormal}{mononormal} \setinterfacevariable{month}{ماه} \setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{شکست‌کلمات‌بیشتر} \setinterfacevariable{name}{نام} \setinterfacevariable{narrow}{نازک} \setinterfacevariable{negative}{منفی} \setinterfacevariable{never}{هیچگاه} \setinterfacevariable{new}{جدید} \setinterfacevariable{next}{بعدی} \setinterfacevariable{nextevenpage}{صفحه‌زوج‌بعدی} \setinterfacevariable{nextoddpage}{صفحه‌فردبعدی} \setinterfacevariable{nextpage}{صفحه‌بعدی} \setinterfacevariable{nextsubpage}{زیرصفحه‌بعدی} \setinterfacevariable{nine}{nine} \setinterfacevariable{no}{نه} \setinterfacevariable{nocheck}{بدون‌بررسی} \setinterfacevariable{nodepth}{nodepth} \setinterfacevariable{nofit}{بدون‌پرکردن} \setinterfacevariable{nogrid}{بدون‌توری} \setinterfacevariable{noheight}{noheight} \setinterfacevariable{nohz}{nohz} \setinterfacevariable{noline}{noline} \setinterfacevariable{nomarking}{بدون‌نشانه‌گذاری} \setinterfacevariable{nomenubar}{nomenubar} \setinterfacevariable{none}{هیچکدام} \setinterfacevariable{nonumber}{بدون‌شماره} \setinterfacevariable{norepeat}{norepeat} \setinterfacevariable{normal}{نرمال} \setinterfacevariable{normalshort}{normalshort} \setinterfacevariable{nospacing}{بدون‌فضاگذاری} \setinterfacevariable{nostopper}{nostopper} \setinterfacevariable{not}{بدون} \setinterfacevariable{notation}{notation} \setinterfacevariable{notcollapsed}{notcollapsed} \setinterfacevariable{note}{note} \setinterfacevariable{nothanging}{بدون‌آویزان‌کردن} \setinterfacevariable{nothyphenated}{بدون‌شکست} \setinterfacevariable{notjoinedup}{notjoinedup} \setinterfacevariable{november}{نوامبر} \setinterfacevariable{nowhere}{هیچ‌حا} \setinterfacevariable{nowhite}{سفید‌نه} \setinterfacevariable{number}{شماره} \setinterfacevariable{numbers}{شماره‌ها} \setinterfacevariable{october}{اکتبر} \setinterfacevariable{odd}{فرد} \setinterfacevariable{off}{خاموش} \setinterfacevariable{offset}{آفست} \setinterfacevariable{old}{قدیمی} \setinterfacevariable{oldstyle}{oldstyle} \setinterfacevariable{on}{روی} \setinterfacevariable{one}{یک} \setinterfacevariable{opposite}{مخالف} \setinterfacevariable{ordinal}{ordinal} \setinterfacevariable{outer}{خارجی} \setinterfacevariable{outeredge}{لبه‌خارجی} \setinterfacevariable{outermargin}{حاشیه‌خارجی} \setinterfacevariable{outline}{outline} \setinterfacevariable{outlined}{outlined} \setinterfacevariable{overbar}{میله‌رو} \setinterfacevariable{overbars}{میله‌ها‌رو} \setinterfacevariable{overlay}{پوشش} \setinterfacevariable{overprint}{overprint} \setinterfacevariable{overstrike}{خط‌زدن} \setinterfacevariable{overstrikes}{خط‌زدنها} \setinterfacevariable{packed}{فشرده} \setinterfacevariable{page}{صفحه} \setinterfacevariable{pagecomment}{توضیح‌صفحه} \setinterfacevariable{pagenumber}{شماره‌صفحه} \setinterfacevariable{paper}{برگ} \setinterfacevariable{paragraph}{پاراگراف} \setinterfacevariable{part}{قسمت} \setinterfacevariable{positive}{مثبت} \setinterfacevariable{postponing}{تاخیر} \setinterfacevariable{postscript}{پست‌اسکریپت} \setinterfacevariable{precedingpage}{precedingpage} \setinterfacevariable{preference}{ترجیح} \setinterfacevariable{prepend}{prepend} \setinterfacevariable{preview}{پیش‌دید} \setinterfacevariable{previous}{قبلی} \setinterfacevariable{previousevenpage}{صفحه‌زوج‌قبلی} \setinterfacevariable{previousoddpage}{صفحه‌فردقبلی} \setinterfacevariable{previouspage}{صفحه‌قبلی} \setinterfacevariable{previoussubpage}{زیرصفحه‌قبلی} \setinterfacevariable{print}{print} \setinterfacevariable{printable}{قابل‌چاپ} \setinterfacevariable{process}{پردازش} \setinterfacevariable{product}{محصول} \setinterfacevariable{profile}{profile} \setinterfacevariable{program}{برنامه} \setinterfacevariable{project}{پروژه} \setinterfacevariable{protected}{حفاظت‌شده} \setinterfacevariable{quadruple}{quadruple} \setinterfacevariable{quarterline}{quarterline} \setinterfacevariable{quotation}{نقل‌قول} \setinterfacevariable{quote}{نقل} \setinterfacevariable{ran}{برد} \setinterfacevariable{random}{تصادفی} \setinterfacevariable{readonly}{تنهاخواندنی} \setinterfacevariable{rectangular}{چهارگوشه} \setinterfacevariable{reference}{مرجع} \setinterfacevariable{referral}{مراجعه} \setinterfacevariable{region}{region} \setinterfacevariable{register}{ثبت} \setinterfacevariable{regular}{منظم} \setinterfacevariable{relative}{نسبی} \setinterfacevariable{repeat}{تکرار} \setinterfacevariable{required}{موردنیاز} \setinterfacevariable{reset}{بازنشانی} \setinterfacevariable{reverse}{برعکس} \setinterfacevariable{right}{راست} \setinterfacevariable{rightedge}{لبه‌راست} \setinterfacevariable{righthanging}{آویزان‌کردن‌راست} \setinterfacevariable{rightmargin}{حاشیه‌راست} \setinterfacevariable{rightpage}{صفحه‌راست} \setinterfacevariable{righttext}{متن‌راست} \setinterfacevariable{righttoleft}{righttoleft} \setinterfacevariable{roman}{رومن} \setinterfacevariable{romannumerals}{شماره‌لاتین} \setinterfacevariable{rotate}{دوران} \setinterfacevariable{rotated}{دوران‌یافته} \setinterfacevariable{round}{گرد} \setinterfacevariable{row}{سطر} \setinterfacevariable{rule}{خط} \setinterfacevariable{samepage}{همان‌صفحه} \setinterfacevariable{sans}{سانز} \setinterfacevariable{sansbold}{مشکی‌سانز} \setinterfacevariable{sansnormal}{sansnormal} \setinterfacevariable{sansserif}{سانزسریف} \setinterfacevariable{saturday}{شنبه} \setinterfacevariable{screen}{پرده} \setinterfacevariable{section}{بخش} \setinterfacevariable{sectionblockenvironment}{محیط‌بلوک‌بخش} \setinterfacevariable{sectionnumber}{شماره‌بخش} \setinterfacevariable{see}{ببینید} \setinterfacevariable{selectfont}{selectfont} \setinterfacevariable{separator}{separator} \setinterfacevariable{september}{سپتامبر} \setinterfacevariable{serif}{سریف} \setinterfacevariable{serifbold}{serifbold} \setinterfacevariable{serifnormal}{serifnormal} \setinterfacevariable{serried}{تنگ‌هم} \setinterfacevariable{setups}{setups} \setinterfacevariable{seven}{seven} \setinterfacevariable{sheet}{ورقه} \setinterfacevariable{shiftdown}{shiftdown} \setinterfacevariable{shiftup}{shiftup} \setinterfacevariable{short}{short} \setinterfacevariable{simplefonts}{simplefonts} \setinterfacevariable{simplelist}{simplelist} \setinterfacevariable{singlesided}{یک‌رو} \setinterfacevariable{six}{six} \setinterfacevariable{size}{اندازه} \setinterfacevariable{slanted}{خوابیده} \setinterfacevariable{slantedbold}{مشکی‌خوابیده} \setinterfacevariable{small}{کوچک} \setinterfacevariable{smallbodyfont}{قلم‌بدنه‌کوچک} \setinterfacevariable{smallbold}{مشکی‌کوچک} \setinterfacevariable{smallbolditalic}{ایتالیک‌مشکی‌کوچک} \setinterfacevariable{smallboldslanted}{خوابیده‌مشکی‌کوچک} \setinterfacevariable{smallcaps}{smallcaps} \setinterfacevariable{smaller}{smaller} \setinterfacevariable{smallitalic}{ایتالیک‌کوچک} \setinterfacevariable{smallitalicbold}{مشکی‌ایتالیک‌کوچک} \setinterfacevariable{smallnormal}{نرمال‌کوچک} \setinterfacevariable{smallslanted}{خوابیده‌کوچک} \setinterfacevariable{smallslantedbold}{مشکی‌خوابیده‌کوچک} \setinterfacevariable{smalltype}{تایپ‌کوچک} \setinterfacevariable{somewhere}{جایی} \setinterfacevariable{sorted}{مرتب} \setinterfacevariable{sorting}{sorting} \setinterfacevariable{space}{فضا} \setinterfacevariable{spacing}{فضاگذاری} \setinterfacevariable{speech}{سخنرانی} \setinterfacevariable{split}{شکافتن} \setinterfacevariable{spot}{لکه} \setinterfacevariable{spread}{spread} \setinterfacevariable{standard}{استاندارد} \setinterfacevariable{start}{شروع} \setinterfacevariable{starter}{starter} \setinterfacevariable{sticker}{دشنه} \setinterfacevariable{stop}{پایان} \setinterfacevariable{stopper}{ایست} \setinterfacevariable{stretch}{بکش} \setinterfacevariable{stretched}{stretched} \setinterfacevariable{strict}{اکید} \setinterfacevariable{strong}{محکم} \setinterfacevariable{strut}{بست} \setinterfacevariable{sub}{زیر} \setinterfacevariable{subbackward}{زیرعقب‌گرد} \setinterfacevariable{subformula}{زیرفرمول} \setinterfacevariable{subforward}{زیرجلوگرد} \setinterfacevariable{subject}{موضوع} \setinterfacevariable{subpage}{زیرصفحه} \setinterfacevariable{subs}{subs} \setinterfacevariable{subsection}{زیربخش} \setinterfacevariable{subsubject}{زیرموضوع} \setinterfacevariable{subsubsection}{زیرزیربخش} \setinterfacevariable{subsubsubject}{زیرزیرموضوع} \setinterfacevariable{subsubsubsection}{زیرزیرزیربخش} \setinterfacevariable{subsubsubsubject}{زیرزیرزیرموضوع} \setinterfacevariable{subsubsubsubsection}{زیرزیرزیرزیربخش} \setinterfacevariable{subsubsubsubsubject}{زیرزیرزیرزیرموضوع} \setinterfacevariable{subsubsubsubsubsection}{زیرزیرزیرزیرزیربخش} \setinterfacevariable{subsubsubsubsubsubject}{زیرزیرزیرزیرزیرموضوع} \setinterfacevariable{subsubsubsubsubsubsection}{زیرزیرزیرزیرزیرزیربخش} \setinterfacevariable{subsubsubsubsubsubsubject}{زیرزیرزیرزیرزیرزیرموضوع} \setinterfacevariable{subsubsubsubsubsubsubsection}{زیرزیرزیرزیرزیرزیرزیربخش} \setinterfacevariable{subsubsubsubsubsubsubsubject}{زیرزیرزیرزیرزیرزیرزیرموضوع} \setinterfacevariable{subsubsubsubsubsubsubsubsection}{زیرزیرزیرزیرزیرزیرزیرزیربخش} \setinterfacevariable{subsubsubsubsubsubsubsubsubject}{زیرزیرزیرزیرزیرزیرزیرزیرموضوع} \setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{زیرزیرزیرزیرزیرزیرزیرزیرزیربخش} \setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{زیرزیرزیرزیرزیرزیرزیرزیرزیرموضوع} \setinterfacevariable{sunday}{یک‌شنبه} \setinterfacevariable{support}{حمایت} \setinterfacevariable{sym}{نم} \setinterfacevariable{symbol}{نماد} \setinterfacevariable{synchronize}{تطابق} \setinterfacevariable{synonym}{synonym} \setinterfacevariable{system}{سیستم} \setinterfacevariable{table}{جدول} \setinterfacevariable{tablehead}{سرجدول} \setinterfacevariable{tables}{جدولها} \setinterfacevariable{tabletail}{دنباله‌جدول} \setinterfacevariable{tabulate}{جدول‌بندی} \setinterfacevariable{tabulatehead}{سرجدول‌بندی} \setinterfacevariable{tabulatetail}{دنباله‌جدول‌بندی} \setinterfacevariable{tall}{دراز} \setinterfacevariable{teletype}{دورنگاره} \setinterfacevariable{temporary}{موقتی} \setinterfacevariable{test}{تست} \setinterfacevariable{text}{متن} \setinterfacevariable{textdisplay}{textdisplay} \setinterfacevariable{textnote}{textnote} \setinterfacevariable{three}{سه} \setinterfacevariable{thursday}{پنج‌شنبه} \setinterfacevariable{tight}{tight} \setinterfacevariable{title}{عنوان} \setinterfacevariable{toggle}{تغییر} \setinterfacevariable{tolerant}{بردبار} \setinterfacevariable{top}{بالا} \setinterfacevariable{tuesday}{سه‌شنبه} \setinterfacevariable{two}{دو} \setinterfacevariable{txt}{txt} \setinterfacevariable{type}{تایپ} \setinterfacevariable{typing}{تایپ‌کردن} \setinterfacevariable{unavailable}{غیرموجود} \setinterfacevariable{underbar}{میله‌زیر} \setinterfacevariable{underbars}{میله‌‌های‌زیر} \setinterfacevariable{understrike}{understrike} \setinterfacevariable{understrikes}{understrikes} \setinterfacevariable{unframed}{unframed} \setinterfacevariable{unicode}{unicode} \setinterfacevariable{unit}{واحد} \setinterfacevariable{units}{واحدها} \setinterfacevariable{unknown}{ناشناس} \setinterfacevariable{unpacked}{غیرفشرده} \setinterfacevariable{up}{up} \setinterfacevariable{url}{url} \setinterfacevariable{used}{استفاده‌شده} \setinterfacevariable{value}{مقدار} \setinterfacevariable{vertical}{عمودی} \setinterfacevariable{very}{خیلی} \setinterfacevariable{verystrict}{خیلی‌سختگیر} \setinterfacevariable{verytight}{verytight} \setinterfacevariable{verytolerant}{خیلی‌بردبار} \setinterfacevariable{vfenced}{vfenced} \setinterfacevariable{vulgarfraction}{vulgarfraction} \setinterfacevariable{vz}{vz} \setinterfacevariable{weak}{هفته} \setinterfacevariable{wednesday}{چهارشنبه} \setinterfacevariable{week}{هفته} \setinterfacevariable{weekday}{روزهفته} \setinterfacevariable{white}{سفید} \setinterfacevariable{wide}{گسترده} \setinterfacevariable{width}{عرض} \setinterfacevariable{word}{word} \setinterfacevariable{words}{words} \setinterfacevariable{xml}{xml} \setinterfacevariable{year}{سال} \setinterfacevariable{yes}{بله} % definitions for interface constants for language pe % \setinterfaceconstant{action}{کنش} \setinterfaceconstant{adaptive}{adaptive} \setinterfaceconstant{address}{نشانی} \setinterfaceconstant{after}{بعداز} \setinterfaceconstant{afterhead}{بعدازسر} \setinterfaceconstant{afterkey}{بعدازکلید} \setinterfaceconstant{aftersection}{aftersection} \setinterfaceconstant{align}{تنظیم} \setinterfaceconstant{alignbottom}{alignbottom} \setinterfaceconstant{aligncharacter}{حرف‌تنظیم} \setinterfaceconstant{alignmentcharacter}{حرف‌تنظیم‌کردن} \setinterfaceconstant{alignmentleftsample}{alignmentleftsample} \setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth} \setinterfaceconstant{alignmentrightsample}{alignmentrightsample} \setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth} \setinterfaceconstant{alignscripts}{alignscripts} \setinterfaceconstant{alignsymbol}{alignsymbol} \setinterfaceconstant{aligntitle}{عنوان‌تنظیم} \setinterfaceconstant{alternative}{جایگزین} \setinterfaceconstant{anchor}{anchor} \setinterfaceconstant{anchoring}{anchoring} \setinterfaceconstant{andtext}{andtext} \setinterfaceconstant{apa}{apa} \setinterfaceconstant{arguments}{arguments} \setinterfaceconstant{arrow}{پیکان} \setinterfaceconstant{artauthor}{artauthor} \setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay} \setinterfaceconstant{artauthoretallimit}{artauthoretallimit} \setinterfaceconstant{artauthoretaltext}{artauthoretaltext} \setinterfaceconstant{artoffset}{artoffset} \setinterfaceconstant{at}{در} \setinterfaceconstant{author}{نویسنده} \setinterfaceconstant{authorconversion}{authorconversion} \setinterfaceconstant{authoretaldisplay}{authoretaldisplay} \setinterfaceconstant{authoretallimit}{authoretallimit} \setinterfaceconstant{authoretaltext}{authoretaltext} \setinterfaceconstant{auto}{خودکار} \setinterfaceconstant{autocase}{autocase} \setinterfaceconstant{autofencing}{autofencing} \setinterfaceconstant{autofile}{پرونده‌خودکار} \setinterfaceconstant{autofocus}{تمرکز‌خودکار} \setinterfaceconstant{autohang}{آویزان‌خودکار} \setinterfaceconstant{autointervals}{autointervals} \setinterfaceconstant{autonumbers}{autonumbers} \setinterfaceconstant{autopunctuation}{autopunctuation} \setinterfaceconstant{autospacing}{autospacing} \setinterfaceconstant{autostrut}{بست‌خودکار} \setinterfaceconstant{autowidth}{عرض‌خودکار} \setinterfaceconstant{availableheight}{availableheight} \setinterfaceconstant{availablewidth}{availablewidth} \setinterfaceconstant{axis}{محورها} \setinterfaceconstant{background}{پس‌زمینه} \setinterfaceconstant{backgroundcolor}{رنگ‌پس‌زمینه} \setinterfaceconstant{backgroundcorner}{گوشه‌پس‌زمینه} \setinterfaceconstant{backgrounddepth}{عمق‌پس‌زمینه} \setinterfaceconstant{backgroundoffset}{آفست‌پس‌زمینه} \setinterfaceconstant{backgroundradius}{شعاع‌پس‌زمینه} \setinterfaceconstant{backgroundscreen}{پرده‌پس‌زمینه} \setinterfaceconstant{backreference}{backreference} \setinterfaceconstant{backspace}{فضای‌پس} \setinterfaceconstant{balance}{تعادل} \setinterfaceconstant{before}{قبل‌از} \setinterfaceconstant{beforehead}{قبل‌ازسر} \setinterfaceconstant{beforesection}{beforesection} \setinterfaceconstant{bet}{bet} \setinterfaceconstant{bidi}{bidi} \setinterfaceconstant{big}{بزرگ} \setinterfaceconstant{blank}{خالی} \setinterfaceconstant{bleedoffset}{bleedoffset} \setinterfaceconstant{blockway}{راه‌بلوک} \setinterfaceconstant{bodyfont}{قلم‌بدنه} \setinterfaceconstant{boffset}{boffset} \setinterfaceconstant{boldfeatures}{boldfeatures} \setinterfaceconstant{boldfont}{boldfont} \setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures} \setinterfaceconstant{bolditalicfont}{bolditalicfont} \setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures} \setinterfaceconstant{boldslantedfont}{boldslantedfont} \setinterfaceconstant{bookmark}{چوبخط} \setinterfaceconstant{bottom}{پایین} \setinterfaceconstant{bottomafter}{bottomafter} \setinterfaceconstant{bottomalign}{bottomalign} \setinterfaceconstant{bottombefore}{bottombefore} \setinterfaceconstant{bottomcolor}{bottomcolor} \setinterfaceconstant{bottomcommand}{bottomcommand} \setinterfaceconstant{bottomdistance}{فاصله‌پایین} \setinterfaceconstant{bottomframe}{قالب‌پایین} \setinterfaceconstant{bottomoffset}{آفست‌پایین} \setinterfaceconstant{bottomspace}{فضای‌پایین} \setinterfaceconstant{bottomstate}{وضعیت‌پایین} \setinterfaceconstant{bottomstyle}{bottomstyle} \setinterfaceconstant{break}{break} \setinterfaceconstant{buffer}{buffer} \setinterfaceconstant{cache}{میانگیر} \setinterfaceconstant{calculate}{محاسبه} \setinterfaceconstant{category}{category} \setinterfaceconstant{ccommand}{فرمان} \setinterfaceconstant{character}{character} \setinterfaceconstant{characters}{characters} \setinterfaceconstant{check}{check} \setinterfaceconstant{click}{فشردن} \setinterfaceconstant{clickin}{فشردن‌داخل} \setinterfaceconstant{clickout}{فشردن‌خارج} \setinterfaceconstant{clipoffset}{آفست‌کلیپ} \setinterfaceconstant{closeaction}{بستن‌کنش} \setinterfaceconstant{closecommand}{بستن‌فرمان} \setinterfaceconstant{closepage}{closepage} \setinterfaceconstant{closepageaction}{بستن‌عمل‌صفحه} \setinterfaceconstant{closesymbol}{بستن‌نماد} \setinterfaceconstant{color}{رنگ} \setinterfaceconstant{column}{ستون} \setinterfaceconstant{columndistance}{فاصله‌ستون} \setinterfaceconstant{columns}{ستونها} \setinterfaceconstant{comma}{comma} \setinterfaceconstant{command}{فرمان} \setinterfaceconstant{commandafter}{فرمان‌بعداز} \setinterfaceconstant{commandbefore}{فرمان‌قبل‌از} \setinterfaceconstant{commands}{فرمانها} \setinterfaceconstant{comment}{comment} \setinterfaceconstant{commentchar}{commentchar} \setinterfaceconstant{commentoffset}{commentoffset} \setinterfaceconstant{compact}{compact} \setinterfaceconstant{component}{مولفه} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{فشردن} \setinterfaceconstant{compressdistance}{compressdistance} \setinterfaceconstant{compressmethod}{compressmethod} \setinterfaceconstant{compressseparator}{compressseparator} \setinterfaceconstant{compressstopper}{compressstopper} \setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{ادامه} \setinterfaceconstant{contrastcolor}{contrastcolor} \setinterfaceconstant{controls}{کنترلها} \setinterfaceconstant{conversion}{تبدیل} \setinterfaceconstant{convertfile}{پرونده‌تبدیل} \setinterfaceconstant{copies}{copies} \setinterfaceconstant{corner}{گوشه} \setinterfaceconstant{coupling}{تزویج} \setinterfaceconstant{couplingway}{روش‌تزویج} \setinterfaceconstant{criterium}{criterium} \setinterfaceconstant{crop}{crop} \setinterfaceconstant{cropoffset}{cropoffset} \setinterfaceconstant{crossreference}{crossreference} \setinterfaceconstant{cssfile}{cssfile} \setinterfaceconstant{current}{جاری} \setinterfaceconstant{cutspace}{فضای‌برش} \setinterfaceconstant{dash}{دش} \setinterfaceconstant{dashstep}{dashstep} \setinterfaceconstant{dat}{dat} \setinterfaceconstant{database}{database} \setinterfaceconstant{dataset}{dataset} \setinterfaceconstant{date}{تاریخ} \setinterfaceconstant{deepnumbercommand}{فرمان‌شماره‌عمیق} \setinterfaceconstant{deeptextcommand}{فرمان‌متن‌عمیق} \setinterfaceconstant{default}{پیش‌فرض} \setinterfaceconstant{defaultheight}{defaultheight} \setinterfaceconstant{defaultwidth}{defaultwidth} \setinterfaceconstant{define}{define} \setinterfaceconstant{delay}{تاخیر} \setinterfaceconstant{depth}{عمق} \setinterfaceconstant{depthcorrection}{تصحیح‌عمق} \setinterfaceconstant{differentiald}{differentiald} \setinterfaceconstant{direction}{جهت} \setinterfaceconstant{directory}{پوشه} \setinterfaceconstant{display}{نمایش} \setinterfaceconstant{displayfactor}{displayfactor} \setinterfaceconstant{displaythreshold}{displaythreshold} \setinterfaceconstant{distance}{فاصله} \setinterfaceconstant{domain}{domain} \setinterfaceconstant{dot}{نقطه} \setinterfaceconstant{doublesided}{دورو} \setinterfaceconstant{down}{down} \setinterfaceconstant{dummy}{مصنوعی} \setinterfaceconstant{dx}{dx} \setinterfaceconstant{dy}{dy} \setinterfaceconstant{edge}{لبه} \setinterfaceconstant{edgedistance}{فاصله‌لبه} \setinterfaceconstant{editor}{editor} \setinterfaceconstant{editoretaldisplay}{editoretaldisplay} \setinterfaceconstant{editoretallimit}{editoretallimit} \setinterfaceconstant{editoretaltext}{editoretaltext} \setinterfaceconstant{empty}{تهی} \setinterfaceconstant{entities}{entities} \setinterfaceconstant{entries}{entries} \setinterfaceconstant{equalheight}{ارتفاع‌یکسان} \setinterfaceconstant{equalwidth}{عرض‌یکسان} \setinterfaceconstant{escape}{فرار} \setinterfaceconstant{etaldisplay}{etaldisplay} \setinterfaceconstant{etallimit}{etallimit} \setinterfaceconstant{etaloption}{etaloption} \setinterfaceconstant{etaltext}{etaltext} \setinterfaceconstant{evenmargin}{حاشیه‌زوج} \setinterfaceconstant{exact}{exact} \setinterfaceconstant{exitoffset}{exitoffset} \setinterfaceconstant{expansion}{گسترش} \setinterfaceconstant{export}{export} \setinterfaceconstant{extradata}{extradata} \setinterfaceconstant{extras}{extras} \setinterfaceconstant{factor}{عامل} \setinterfaceconstant{fallback}{عقب‌ریختن} \setinterfaceconstant{fallbacks}{fallbacks} \setinterfaceconstant{family}{خانواده} \setinterfaceconstant{features}{features} \setinterfaceconstant{featureset}{featureset} \setinterfaceconstant{fences}{fences} \setinterfaceconstant{field}{field} \setinterfaceconstant{fieldbackgroundcolor}{رنگ‌پس‌زمینه‌میدان} \setinterfaceconstant{fieldframecolor}{رنگ‌قالب‌میدان} \setinterfaceconstant{fieldlayer}{لایه‌میدان} \setinterfaceconstant{fieldoffset}{آفست‌میدان} \setinterfaceconstant{file}{پرونده} \setinterfaceconstant{filler}{filler} \setinterfaceconstant{filter}{filter} \setinterfaceconstant{filtercommand}{filtercommand} \setinterfaceconstant{finalnamesep}{finalnamesep} \setinterfaceconstant{finalpagesep}{finalpagesep} \setinterfaceconstant{finalpubsep}{finalpubsep} \setinterfaceconstant{first}{اولی} \setinterfaceconstant{firstnamesep}{firstnamesep} \setinterfaceconstant{firstpage}{صفحه‌اول} \setinterfaceconstant{focus}{تمرکز} \setinterfaceconstant{focusin}{تمرکزدرون} \setinterfaceconstant{focusoffset}{focusoffset} \setinterfaceconstant{focusout}{تمرکزبیرون} \setinterfaceconstant{font}{font} \setinterfaceconstant{footer}{ته‌برگ} \setinterfaceconstant{footerdistance}{فاصله‌ته‌برگ} \setinterfaceconstant{footerstate}{وضعیت‌ته‌برگ} \setinterfaceconstant{force}{اجبار} \setinterfaceconstant{foregroundcolor}{رنگ‌پیش‌زمینه} \setinterfaceconstant{foregroundstyle}{سبک‌پیش‌زمینه} \setinterfaceconstant{format}{شمایل} \setinterfaceconstant{fractions}{fractions} \setinterfaceconstant{frame}{قالب} \setinterfaceconstant{framecolor}{رنگ‌قالب} \setinterfaceconstant{framecorner}{گوشه‌قالب} \setinterfaceconstant{framedepth}{عمق‌قالب} \setinterfaceconstant{frameoffset}{آفست‌قالب} \setinterfaceconstant{frameradius}{شعاع‌قالب} \setinterfaceconstant{frames}{قالبها} \setinterfaceconstant{freeregion}{freeregion} \setinterfaceconstant{freezespacing}{freezespacing} \setinterfaceconstant{from}{از} \setinterfaceconstant{functioncolor}{functioncolor} \setinterfaceconstant{functionstyle}{functionstyle} \setinterfaceconstant{get}{بگیر} \setinterfaceconstant{global}{سراسری} \setinterfaceconstant{goodies}{goodies} \setinterfaceconstant{grid}{توری} \setinterfaceconstant{group}{group} \setinterfaceconstant{groupsuffix}{groupsuffix} \setinterfaceconstant{hang}{بیاویز} \setinterfaceconstant{hcompact}{hcompact} \setinterfaceconstant{headalign}{headalign} \setinterfaceconstant{headcolor}{رنگ‌سر} \setinterfaceconstant{headcommand}{فرمان‌سر} \setinterfaceconstant{headconversion}{تبدیل‌سر} \setinterfaceconstant{header}{سربرگ} \setinterfaceconstant{headerdistance}{فاصله‌سربرگ} \setinterfaceconstant{headerstate}{وضعیت‌سربرگ} \setinterfaceconstant{headindenting}{headindenting} \setinterfaceconstant{headlabel}{برچسب‌سر} \setinterfaceconstant{headnumber}{شماره‌سر} \setinterfaceconstant{headseparator}{headseparator} \setinterfaceconstant{headstyle}{سبک‌سر} \setinterfaceconstant{height}{ارتفاع} \setinterfaceconstant{hfactor}{عامل‌ارتفاع} \setinterfaceconstant{hfil}{پرکردن‌ارتفاع} \setinterfaceconstant{hidenumber}{hidenumber} \setinterfaceconstant{hoffset}{آفست‌ا} \setinterfaceconstant{horizontal}{افقی} \setinterfaceconstant{horoffset}{آفست‌افق} \setinterfaceconstant{hyphen}{شکستن} \setinterfaceconstant{hyphens}{hyphens} \setinterfaceconstant{hz}{hz} \setinterfaceconstant{icommand}{icommand} \setinterfaceconstant{ignore}{ignore} \setinterfaceconstant{in}{درون} \setinterfaceconstant{inbetween}{دربین} \setinterfaceconstant{increment}{افزایش} \setinterfaceconstant{incrementnumber}{شماره‌افزایش} \setinterfaceconstant{indenting}{تورفتگی} \setinterfaceconstant{indentlist}{indentlist} \setinterfaceconstant{indentnext}{متن‌تورفته} \setinterfaceconstant{index}{index} \setinterfaceconstant{indicator}{اندیکاتور} \setinterfaceconstant{initialsep}{initialsep} \setinterfaceconstant{inlinefactor}{inlinefactor} \setinterfaceconstant{inlinethreshold}{inlinethreshold} \setinterfaceconstant{inner}{داخلی} \setinterfaceconstant{innermargin}{حاشیه‌داخلی} \setinterfaceconstant{inputfile}{پرونده‌ورودی} \setinterfaceconstant{insidesection}{insidesection} \setinterfaceconstant{instance}{instance} \setinterfaceconstant{integral}{integral} \setinterfaceconstant{intent}{intent} \setinterfaceconstant{interaction}{پانل} \setinterfaceconstant{interlinespace}{فضای‌بین‌خط} \setinterfaceconstant{internalgrid}{internalgrid} \setinterfaceconstant{interscriptfactor}{interscriptfactor} \setinterfaceconstant{italicfeatures}{italicfeatures} \setinterfaceconstant{italicfont}{italicfont} \setinterfaceconstant{itemalign}{تنظیم‌آیتم} \setinterfaceconstant{items}{آیتمها} \setinterfaceconstant{joiners}{joiners} \setinterfaceconstant{journalconversion}{journalconversion} \setinterfaceconstant{juniorsep}{juniorsep} \setinterfaceconstant{keeptogether}{keeptogether} \setinterfaceconstant{ken}{ken} \setinterfaceconstant{keyexpansion}{گسترش‌کلید} \setinterfaceconstant{keys}{keys} \setinterfaceconstant{keyword}{کلید‌واژه} \setinterfaceconstant{label}{برچسب} \setinterfaceconstant{labelalternative}{labelalternative} \setinterfaceconstant{labelcolor}{labelcolor} \setinterfaceconstant{labeloffset}{labeloffset} \setinterfaceconstant{labelstyle}{labelstyle} \setinterfaceconstant{language}{language} \setinterfaceconstant{last}{last} \setinterfaceconstant{lastnamesep}{lastnamesep} \setinterfaceconstant{lastpage}{صفحه‌آخر} \setinterfaceconstant{lastpagesep}{lastpagesep} \setinterfaceconstant{lastpubsep}{lastpubsep} \setinterfaceconstant{lasttextseparator}{lasttextseparator} \setinterfaceconstant{layout}{layout} \setinterfaceconstant{left}{چپ} \setinterfaceconstant{leftclass}{leftclass} \setinterfaceconstant{leftcolor}{رنگ‌چپ} \setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen} \setinterfaceconstant{leftedge}{لبه‌چپ} \setinterfaceconstant{leftedgedistance}{فاصله‌لبه‌چپ} \setinterfaceconstant{leftframe}{قالب‌چپ} \setinterfaceconstant{lefthyphen}{شکست‌چپ} \setinterfaceconstant{leftmargin}{حاشیه‌چپ} \setinterfaceconstant{leftmargindistance}{فاصله‌حاشیه‌چپ} \setinterfaceconstant{leftoffset}{آفست‌چپ} \setinterfaceconstant{leftquotation}{نقل‌قول‌چپ} \setinterfaceconstant{leftquote}{نقل‌چپ} \setinterfaceconstant{leftsample}{leftsample} \setinterfaceconstant{leftsentence}{جمله‌چپ} \setinterfaceconstant{leftsource}{leftsource} \setinterfaceconstant{leftspeech}{سخنرانی‌چپ} \setinterfaceconstant{leftstyle}{سبک‌چپ} \setinterfaceconstant{leftsubsentence}{زیرجمله‌چپ} \setinterfaceconstant{lefttext}{متن‌چپ} \setinterfaceconstant{leftwidth}{عرض‌خط} \setinterfaceconstant{leftwords}{leftwords} \setinterfaceconstant{less}{less} \setinterfaceconstant{level}{مرحله} \setinterfaceconstant{levels}{مرحله‌ها} \setinterfaceconstant{limit}{limit} \setinterfaceconstant{limitstretch}{limitstretch} \setinterfaceconstant{limittext}{مرزمتن} \setinterfaceconstant{line}{خط} \setinterfaceconstant{linecorrection}{تصحیح‌خط} \setinterfaceconstant{linedirection}{linedirection} \setinterfaceconstant{lines}{خطها} \setinterfaceconstant{list}{لیست} \setinterfaceconstant{listtext}{متن‌لیست} \setinterfaceconstant{local}{موضعی} \setinterfaceconstant{location}{مکان} \setinterfaceconstant{loffset}{loffset} \setinterfaceconstant{logo}{آرم} \setinterfaceconstant{logos}{آرمها} \setinterfaceconstant{marcolor}{رنگ‌حاش} \setinterfaceconstant{margin}{حاشیه} \setinterfaceconstant{margindistance}{فاصله‌حاشیه} \setinterfaceconstant{marginedge}{لبه‌حاشیه} \setinterfaceconstant{marginedgetext}{متن‌لبه‌حاشیه} \setinterfaceconstant{margintext}{متن‌حاشیه} \setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{نشانه‌گذاری} \setinterfaceconstant{marstyle}{سبک‌حاش} \setinterfaceconstant{mask}{mask} \setinterfaceconstant{mathclass}{mathclass} \setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle} \setinterfaceconstant{mathlimits}{mathlimits} \setinterfaceconstant{mathmeaning}{mathmeaning} \setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle} \setinterfaceconstant{mathstyle}{mathstyle} \setinterfaceconstant{max}{بیشترین} \setinterfaceconstant{maxdepth}{maxdepth} \setinterfaceconstant{maxheight}{بیشترین‌ارتفاع} \setinterfaceconstant{maxwidth}{بیشترین‌عرض} \setinterfaceconstant{maybeyear}{maybeyear} \setinterfaceconstant{menu}{منو} \setinterfaceconstant{metadata}{metadata} \setinterfaceconstant{method}{روش} \setinterfaceconstant{middle}{میان} \setinterfaceconstant{middleclass}{middleclass} \setinterfaceconstant{middlecolor}{middlecolor} \setinterfaceconstant{middlecommand}{middlecommand} \setinterfaceconstant{middlesource}{middlesource} \setinterfaceconstant{middlespeech}{سخنرانی‌میانی} \setinterfaceconstant{middlestyle}{middlestyle} \setinterfaceconstant{middletext}{متن‌میانی} \setinterfaceconstant{middlewidth}{middlewidth} \setinterfaceconstant{midsentence}{جمله‌میانی} \setinterfaceconstant{min}{کمترین} \setinterfaceconstant{mindepth}{کمترین‌عمق} \setinterfaceconstant{minheight}{کمترین‌ارتفاع} \setinterfaceconstant{minwidth}{کمترین‌عرض} \setinterfaceconstant{moffset}{moffset} \setinterfaceconstant{monthconversion}{monthconversion} \setinterfaceconstant{more}{more} \setinterfaceconstant{mpdepth}{mpdepth} \setinterfaceconstant{mpheight}{mpheight} \setinterfaceconstant{mpoffset}{mpoffset} \setinterfaceconstant{mpwidth}{mpwidth} \setinterfaceconstant{n}{n} \setinterfaceconstant{name}{نام} \setinterfaceconstant{namesep}{namesep} \setinterfaceconstant{nbottom}{nbottom} \setinterfaceconstant{nc}{nc} \setinterfaceconstant{next}{بعدی} \setinterfaceconstant{nextleft}{nextleft} \setinterfaceconstant{nextleftquotation}{nextleftquotation} \setinterfaceconstant{nextright}{nextright} \setinterfaceconstant{nextrightquotation}{nextrightquotation} \setinterfaceconstant{nl}{nl} \setinterfaceconstant{nleft}{nleft} \setinterfaceconstant{nlines}{nlines} \setinterfaceconstant{norm}{norm} \setinterfaceconstant{note}{note} \setinterfaceconstant{notes}{notes} \setinterfaceconstant{nr}{nr} \setinterfaceconstant{nright}{nright} \setinterfaceconstant{ntop}{ntop} \setinterfaceconstant{number}{شماره} \setinterfaceconstant{numberalign}{numberalign} \setinterfaceconstant{numbercolor}{رنگ‌شماره} \setinterfaceconstant{numbercommand}{فرمان‌شماره} \setinterfaceconstant{numberconversion}{numberconversion} \setinterfaceconstant{numberconversionset}{numberconversionset} \setinterfaceconstant{numberdistance}{فاصله‌شماره} \setinterfaceconstant{numbering}{شماره‌گذاری} \setinterfaceconstant{numberlocation}{numberlocation} \setinterfaceconstant{numbermethod}{numbermethod} \setinterfaceconstant{numberorder}{numberorder} \setinterfaceconstant{numberprefix}{numberprefix} \setinterfaceconstant{numbersegments}{numbersegments} \setinterfaceconstant{numberseparator}{جداکننده‌شماره} \setinterfaceconstant{numberseparatorset}{numberseparatorset} \setinterfaceconstant{numberset}{numberset} \setinterfaceconstant{numberstarter}{numberstarter} \setinterfaceconstant{numberstopper}{numberstopper} \setinterfaceconstant{numberstrut}{numberstrut} \setinterfaceconstant{numberstyle}{سبک‌شماره} \setinterfaceconstant{numberthreshold}{numberthreshold} \setinterfaceconstant{numberwidth}{عرض‌شماره} \setinterfaceconstant{nx}{nx} \setinterfaceconstant{ny}{ny} \setinterfaceconstant{object}{شیئ} \setinterfaceconstant{obstruction}{انسداد} \setinterfaceconstant{oddmargin}{حاشیه‌فرد} \setinterfaceconstant{off}{خاموش} \setinterfaceconstant{offset}{آفست} \setinterfaceconstant{on}{روی} \setinterfaceconstant{openaction}{عمل‌باز} \setinterfaceconstant{openpage}{openpage} \setinterfaceconstant{openpageaction}{عمل‌صفحه‌باز} \setinterfaceconstant{openup}{openup} \setinterfaceconstant{opticalsize}{opticalsize} \setinterfaceconstant{option}{گزینه} \setinterfaceconstant{order}{order} \setinterfaceconstant{orientation}{جهت‌دهی} \setinterfaceconstant{otherstext}{otherstext} \setinterfaceconstant{outermargin}{حاشیه‌خارجی} \setinterfaceconstant{overflow}{overflow} \setinterfaceconstant{overprint}{overprint} \setinterfaceconstant{ownerpassword}{ownerpassword} \setinterfaceconstant{ownnumber}{شماره‌خود} \setinterfaceconstant{packcriterium}{packcriterium} \setinterfaceconstant{page}{صفحه} \setinterfaceconstant{pageboundaries}{مرزهای‌صفحه} \setinterfaceconstant{pagecolor}{رنگ‌صفحه} \setinterfaceconstant{pagecolormodel}{pagecolormodel} \setinterfaceconstant{pagecommand}{فرمان‌صفحه} \setinterfaceconstant{pageconnector}{pageconnector} \setinterfaceconstant{pageconversion}{pageconversion} \setinterfaceconstant{pageconversionset}{pageconversionset} \setinterfaceconstant{pageleft}{pageleft} \setinterfaceconstant{pagemethod}{pagemethod} \setinterfaceconstant{pagenumber}{شماره‌صفحه} \setinterfaceconstant{pageprefix}{pageprefix} \setinterfaceconstant{pageprefixconnector}{pageprefixconnector} \setinterfaceconstant{pageprefixconversion}{pageprefixconversion} \setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset} \setinterfaceconstant{pageprefixsegments}{pageprefixsegments} \setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset} \setinterfaceconstant{pageprefixset}{pageprefixset} \setinterfaceconstant{pageprefixstarter}{pageprefixstarter} \setinterfaceconstant{pageprefixstopper}{pageprefixstopper} \setinterfaceconstant{pageright}{pageright} \setinterfaceconstant{pagesegments}{pagesegments} \setinterfaceconstant{pagesep}{pagesep} \setinterfaceconstant{pageseparatorset}{pageseparatorset} \setinterfaceconstant{pageset}{pageset} \setinterfaceconstant{pagestarter}{pagestarter} \setinterfaceconstant{pagestate}{وضعیت‌صفحه} \setinterfaceconstant{pagestopper}{pagestopper} \setinterfaceconstant{pagestyle}{سبک‌صفحه} \setinterfaceconstant{palet}{لوح} \setinterfaceconstant{paper}{برگ} \setinterfaceconstant{paragraph}{پاراگراف} \setinterfaceconstant{penalties}{penalties} \setinterfaceconstant{period}{period} \setinterfaceconstant{place}{بگذار} \setinterfaceconstant{placehead}{بگذارسر} \setinterfaceconstant{placeholder}{placeholder} \setinterfaceconstant{placestopper}{بگذارایست} \setinterfaceconstant{position}{موقعیت} \setinterfaceconstant{prefix}{پیشوند} \setinterfaceconstant{prefixconnector}{prefixconnector} \setinterfaceconstant{prefixconversion}{prefixconversion} \setinterfaceconstant{prefixconversionset}{prefixconversionset} \setinterfaceconstant{prefixsegments}{prefixsegments} \setinterfaceconstant{prefixseparatorset}{prefixseparatorset} \setinterfaceconstant{prefixset}{prefixset} \setinterfaceconstant{prefixstarter}{prefixstarter} \setinterfaceconstant{prefixstopper}{prefixstopper} \setinterfaceconstant{preset}{preset} \setinterfaceconstant{preview}{پیش‌دید} \setinterfaceconstant{previous}{قبلی} \setinterfaceconstant{previousnumber}{شماره‌قبلی} \setinterfaceconstant{print}{print} \setinterfaceconstant{printable}{قابل‌چاپ} \setinterfaceconstant{process}{پردازش} \setinterfaceconstant{processors}{processors} \setinterfaceconstant{profile}{profile} \setinterfaceconstant{properties}{properties} \setinterfaceconstant{pubsep}{pubsep} \setinterfaceconstant{quotechar}{quotechar} \setinterfaceconstant{radius}{شعاع} \setinterfaceconstant{random}{تصادفی} \setinterfaceconstant{range}{range} \setinterfaceconstant{reduction}{کاهش} \setinterfaceconstant{ref}{رج} \setinterfaceconstant{refcommand}{refcommand} \setinterfaceconstant{reference}{مرجع} \setinterfaceconstant{referencemethod}{referencemethod} \setinterfaceconstant{referenceprefix}{referenceprefix} \setinterfaceconstant{referencetext}{referencetext} \setinterfaceconstant{referencing}{مراجعه} \setinterfaceconstant{region}{region} \setinterfaceconstant{regionin}{ناحیه‌درون} \setinterfaceconstant{regionout}{ناحیه‌بیرون} \setinterfaceconstant{register}{register} \setinterfaceconstant{regularfeatures}{regularfeatures} \setinterfaceconstant{regularfont}{regularfont} \setinterfaceconstant{renderingsetup}{renderingsetup} \setinterfaceconstant{repeat}{تکرار} \setinterfaceconstant{reset}{بازنشانی} \setinterfaceconstant{resetnumber}{بازنشانی‌شماره} \setinterfaceconstant{resolution}{کیفیت} \setinterfaceconstant{resources}{resources} \setinterfaceconstant{reverse}{برعکس} \setinterfaceconstant{right}{راست} \setinterfaceconstant{rightchars}{rightchars} \setinterfaceconstant{rightclass}{rightclass} \setinterfaceconstant{rightcolor}{رنگ‌راست} \setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen} \setinterfaceconstant{rightedge}{لبه‌راست} \setinterfaceconstant{rightedgedistance}{فاصله‌لبه‌راست} \setinterfaceconstant{rightframe}{قالب‌راست} \setinterfaceconstant{righthyphen}{righthyphen} \setinterfaceconstant{rightmargin}{حاشیه‌راست} \setinterfaceconstant{rightmargindistance}{فاصله‌حاشیه‌راست} \setinterfaceconstant{rightoffset}{آفست‌راست} \setinterfaceconstant{rightquotation}{نقل‌قول‌راست} \setinterfaceconstant{rightquote}{نقل‌راست} \setinterfaceconstant{rightsample}{rightsample} \setinterfaceconstant{rightsentence}{جمله‌راست} \setinterfaceconstant{rightsource}{rightsource} \setinterfaceconstant{rightspeech}{سخنرانی‌راست} \setinterfaceconstant{rightstyle}{سبک‌راست} \setinterfaceconstant{rightsubsentence}{زیرجمله‌راست} \setinterfaceconstant{righttext}{متن‌راست} \setinterfaceconstant{rightwidth}{عرض‌راست} \setinterfaceconstant{rightwords}{rightwords} \setinterfaceconstant{roffset}{roffset} \setinterfaceconstant{rotation}{دوران} \setinterfaceconstant{rule}{خط} \setinterfaceconstant{rulecolor}{رنگ‌خط} \setinterfaceconstant{rulecommand}{rulecommand} \setinterfaceconstant{rulethickness}{ضخامت‌خط} \setinterfaceconstant{samepage}{همان‌صفحه} \setinterfaceconstant{sample}{نمونه} \setinterfaceconstant{samplesize}{samplesize} \setinterfaceconstant{saveinlist}{saveinlist} \setinterfaceconstant{scale}{مقیاس} \setinterfaceconstant{scope}{طرح} \setinterfaceconstant{screen}{پرده} \setinterfaceconstant{section}{بخش} \setinterfaceconstant{sectionblock}{sectionblock} \setinterfaceconstant{sectionconversion}{sectionconversion} \setinterfaceconstant{sectionconversionset}{sectionconversionset} \setinterfaceconstant{sectionnumber}{شماره‌بخش} \setinterfaceconstant{sectionresetset}{sectionresetset} \setinterfaceconstant{sectionsegments}{sectionsegments} \setinterfaceconstant{sectionseparatorset}{sectionseparatorset} \setinterfaceconstant{sectionset}{sectionset} \setinterfaceconstant{sectionstarter}{sectionstarter} \setinterfaceconstant{sectionstopper}{sectionstopper} \setinterfaceconstant{separator}{جداکننده} \setinterfaceconstant{separatorcolor}{separatorcolor} \setinterfaceconstant{separatorstyle}{separatorstyle} \setinterfaceconstant{set}{قراربده} \setinterfaceconstant{setups}{setups} \setinterfaceconstant{shrink}{shrink} \setinterfaceconstant{side}{کنار} \setinterfaceconstant{sidealign}{تنظیم‌کنار} \setinterfaceconstant{sidemethod}{روش‌کنار} \setinterfaceconstant{sidespaceafter}{فضای‌کناری‌بعد} \setinterfaceconstant{sidespacebefore}{فضای‌کناری‌قبل} \setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween} \setinterfaceconstant{sidethreshold}{sidethreshold} \setinterfaceconstant{sign}{علامت} \setinterfaceconstant{simplecommand}{simplecommand} \setinterfaceconstant{size}{اندازه} \setinterfaceconstant{slantedfeatures}{slantedfeatures} \setinterfaceconstant{slantedfont}{slantedfont} \setinterfaceconstant{small}{کوچک} \setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures} \setinterfaceconstant{smallcapsfont}{smallcapsfont} \setinterfaceconstant{snap}{snap} \setinterfaceconstant{snapstep}{snapstep} \setinterfaceconstant{solution}{solution} \setinterfaceconstant{sort}{sort} \setinterfaceconstant{sorttype}{ترتیب‌تایپ} \setinterfaceconstant{source}{source} \setinterfaceconstant{space}{فضا} \setinterfaceconstant{spaceafter}{فضا‌بعداز} \setinterfaceconstant{spaceafterside}{spaceafterside} \setinterfaceconstant{spacebefore}{فضا‌قبل‌از} \setinterfaceconstant{spacebeforeside}{spacebeforeside} \setinterfaceconstant{spaceinbetween}{فضا‌دربین} \setinterfaceconstant{spacing}{فضاگذاری} \setinterfaceconstant{specification}{specification} \setinterfaceconstant{split}{شکافتن} \setinterfaceconstant{splitcolor}{شکافتن‌رنگ} \setinterfaceconstant{splitmethod}{روش‌شکافتن} \setinterfaceconstant{splitoffset}{شکافتن‌آفست} \setinterfaceconstant{spot}{لکه} \setinterfaceconstant{stack}{توده} \setinterfaceconstant{stacking}{stacking} \setinterfaceconstant{stackname}{stackname} \setinterfaceconstant{start}{شروع} \setinterfaceconstant{starter}{starter} \setinterfaceconstant{state}{وضعیت} \setinterfaceconstant{step}{گام} \setinterfaceconstant{stop}{پایان} \setinterfaceconstant{stopper}{ایست} \setinterfaceconstant{stretch}{کشیدن} \setinterfaceconstant{strip}{strip} \setinterfaceconstant{strut}{بست} \setinterfaceconstant{style}{سبک} \setinterfaceconstant{stylealternative}{stylealternative} \setinterfaceconstant{sub}{زیر} \setinterfaceconstant{subtitle}{زیرعنوان} \setinterfaceconstant{suffix}{پسوند} \setinterfaceconstant{suffixseparator}{suffixseparator} \setinterfaceconstant{suffixstopper}{suffixstopper} \setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep} \setinterfaceconstant{surnameinitialsep}{surnameinitialsep} \setinterfaceconstant{surnamesep}{surnamesep} \setinterfaceconstant{svgstyle}{svgstyle} \setinterfaceconstant{sx}{sx} \setinterfaceconstant{sy}{sy} \setinterfaceconstant{symalign}{تنظیم‌نماد} \setinterfaceconstant{symbol}{نماد} \setinterfaceconstant{symbolcommand}{symbolcommand} \setinterfaceconstant{symbolset}{مجموعه‌نماد} \setinterfaceconstant{symcolor}{رنگ‌نماد} \setinterfaceconstant{symstyle}{سبک‌نماد} \setinterfaceconstant{synchronize}{synchronize} \setinterfaceconstant{synonym}{مترادف} \setinterfaceconstant{synonymcolor}{رنگ‌مترادف} \setinterfaceconstant{synonymcommand}{synonymcommand} \setinterfaceconstant{synonymstyle}{سبک‌مترادف} \setinterfaceconstant{tab}{تب} \setinterfaceconstant{target}{target} \setinterfaceconstant{text}{متن} \setinterfaceconstant{textalign}{textalign} \setinterfaceconstant{textalternative}{textalternative} \setinterfaceconstant{textcolor}{رنگ‌متن} \setinterfaceconstant{textcommand}{فرمان‌متن} \setinterfaceconstant{textdistance}{فاصله‌متن} \setinterfaceconstant{textheight}{ارتفاع‌متن} \setinterfaceconstant{textlayer}{لایه‌متن} \setinterfaceconstant{textmargin}{حاشیه‌متن} \setinterfaceconstant{textmethod}{روش‌متن} \setinterfaceconstant{textseparator}{جداکننده‌متن} \setinterfaceconstant{textsize}{اندازه‌متن} \setinterfaceconstant{textstate}{وضعیت‌متن} \setinterfaceconstant{textstyle}{سبک‌متن} \setinterfaceconstant{textwidth}{عرض‌متن} \setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{time}{time} \setinterfaceconstant{title}{عنوان} \setinterfaceconstant{titlecolor}{رنگ‌عنوان} \setinterfaceconstant{titlecommand}{فرمان‌عنوان} \setinterfaceconstant{titledistance}{فاصله‌عنوان} \setinterfaceconstant{titleleft}{عنوان‌چپ} \setinterfaceconstant{titleright}{عنوان‌راست} \setinterfaceconstant{titlestrut}{titlestrut} \setinterfaceconstant{titlestyle}{سبک‌عنوان} \setinterfaceconstant{to}{به} \setinterfaceconstant{toffset}{toffset} \setinterfaceconstant{tolerance}{بردباری} \setinterfaceconstant{top}{بالا} \setinterfaceconstant{topalign}{topalign} \setinterfaceconstant{topcolor}{topcolor} \setinterfaceconstant{topcommand}{topcommand} \setinterfaceconstant{topdistance}{فاصله‌بالا} \setinterfaceconstant{topframe}{قالب‌راست} \setinterfaceconstant{topoffset}{آفست‌بالا} \setinterfaceconstant{topspace}{فضای‌بالا} \setinterfaceconstant{topstate}{وضعیت‌بالا} \setinterfaceconstant{topstyle}{topstyle} \setinterfaceconstant{totalnumber}{totalnumber} \setinterfaceconstant{transform}{transform} \setinterfaceconstant{translate}{translate} \setinterfaceconstant{trimoffset}{trimoffset} \setinterfaceconstant{type}{تایپ} \setinterfaceconstant{unit}{واحد} \setinterfaceconstant{unknownreference}{مرجع‌ناشناس} \setinterfaceconstant{up}{up} \setinterfaceconstant{urlalternative}{urlalternative} \setinterfaceconstant{urlspace}{urlspace} \setinterfaceconstant{userpassword}{userpassword} \setinterfaceconstant{validate}{تاییداعتبار} \setinterfaceconstant{values}{values} \setinterfaceconstant{vcommand}{vcommand} \setinterfaceconstant{vcompact}{vcompact} \setinterfaceconstant{vector}{vector} \setinterfaceconstant{veroffset}{آفست‌عم} \setinterfaceconstant{vertical}{عمودی} \setinterfaceconstant{vfactor}{vfactor} \setinterfaceconstant{vfil}{vfil} \setinterfaceconstant{viewerprefix}{viewerprefix} \setinterfaceconstant{voffset}{آفست‌ع} \setinterfaceconstant{vonsep}{vonsep} \setinterfaceconstant{vz}{vz} \setinterfaceconstant{way}{راه} \setinterfaceconstant{wfactor}{wfactor} \setinterfaceconstant{white}{سفید} \setinterfaceconstant{width}{عرض} \setinterfaceconstant{words}{words} \setinterfaceconstant{xanchor}{xanchor} \setinterfaceconstant{xfactor}{فاکتورایکس} \setinterfaceconstant{xhtml}{xhtml} \setinterfaceconstant{xmax}{xmax} \setinterfaceconstant{xmlsetup}{xmlsetup} \setinterfaceconstant{xoffset}{آفست‌ایکس} \setinterfaceconstant{xscale}{مقیاس‌ایکس} \setinterfaceconstant{xstep}{گام‌ایکس} \setinterfaceconstant{yanchor}{yanchor} \setinterfaceconstant{yfactor}{فاکتوروای} \setinterfaceconstant{ymax}{ymax} \setinterfaceconstant{yoffset}{آفست‌وای} \setinterfaceconstant{yscale}{مقیاس‌وای} \setinterfaceconstant{ystep}{گام‌وای} % definitions for interface elements for language pe % \setinterfaceelement{answerlines}{answerlines} \setinterfaceelement{answerspace}{answerspace} \setinterfaceelement{begin}{عنصرها} \setinterfaceelement{complete}{کامل} \setinterfaceelement{coupled}{مزدوج} \setinterfaceelement{currentlocal}{موضعی‌جاری} \setinterfaceelement{end}{انتها} \setinterfaceelement{endsetup}{انتهای‌بارگذاری} \setinterfaceelement{get}{بگیر} \setinterfaceelement{increment}{افزایش} \setinterfaceelement{list}{لیست} \setinterfaceelement{listof}{لیست‌از} \setinterfaceelement{load}{بارگذاشتن} \setinterfaceelement{local}{موضعی} \setinterfaceelement{makeup}{آرایش} \setinterfaceelement{namednotation}{namednotation} \setinterfaceelement{namedtyping}{namedtyping} \setinterfaceelement{next}{بعدی} \setinterfaceelement{place}{مکان} \setinterfaceelement{previous}{قبلی} \setinterfaceelement{previouslocal}{موضع‌قبلی} \setinterfaceelement{reserve}{رزرو} \setinterfaceelement{see}{ببینید} \setinterfaceelement{setup}{بارگذاری} \setinterfaceelement{start}{شروع} \setinterfaceelement{stop}{پایان} \setinterfaceelement{text}{متن} \setinterfaceelement{type}{تایپ} % definitions for interface commands for language pe % \setinterfacecommand{Character}{Character} \setinterfacecommand{Characters}{Characters} \setinterfacecommand{MONTH}{MONTH} \setinterfacecommand{Numbers}{Numbers} \setinterfacecommand{Romannumerals}{Romannumerals} \setinterfacecommand{SmallCapped}{Cap} \setinterfacecommand{SmallCaps}{Caps} \setinterfacecommand{WEEKDAY}{WEEKDAY} \setinterfacecommand{WORD}{WORD} \setinterfacecommand{WORDS}{WORDS} \setinterfacecommand{Word}{Word} \setinterfacecommand{Words}{Words} \setinterfacecommand{about}{درمورد} \setinterfacecommand{adaptfontfeature}{adaptfontfeature} \setinterfacecommand{adaptlayout}{تنظیم‌طرح‌بندی} \setinterfacecommand{addfeature}{addfeature} \setinterfacecommand{alignbottom}{alignbottom} \setinterfacecommand{aligned}{aligned} \setinterfacecommand{alignedbox}{alignedbox} \setinterfacecommand{alignedline}{alignedline} \setinterfacecommand{alignhere}{alignhere} \setinterfacecommand{alignment}{alignment} \setinterfacecommand{alignmentcharacter}{alignmentcharacter} \setinterfacecommand{applytocharacters}{applytocharacters} \setinterfacecommand{applytofirstcharacter}{applytofirstcharacter} \setinterfacecommand{arg}{افزودن} \setinterfacecommand{at}{در} \setinterfacecommand{atleftmargin}{درحاشیه‌چپ} \setinterfacecommand{atpage}{درصفحه} \setinterfacecommand{atrightmargin}{درحاشیه‌راست} \setinterfacecommand{background}{پس‌زمینه} \setinterfacecommand{backspace}{فاصله‌پشت} \setinterfacecommand{blackrule}{خط‌سیاه} \setinterfacecommand{blackrules}{خطهای‌سیاه} \setinterfacecommand{blank}{خالی} \setinterfacecommand{bookmark}{چوبخط} \setinterfacecommand{bottombox}{bottombox} \setinterfacecommand{bottomdistance}{فاصله‌پایین} \setinterfacecommand{bottomheight}{ارتفاع‌پایین} \setinterfacecommand{bottomleftbox}{bottomleftbox} \setinterfacecommand{bottomrightbox}{bottomrightbox} \setinterfacecommand{bottomspace}{فضای‌پایین} \setinterfacecommand{buildtextbottomdot}{buildtextbottomdot} \setinterfacecommand{but}{اما} \setinterfacecommand{button}{دکمه} \setinterfacecommand{bypassblocks}{عبوربلوکها} \setinterfacecommand{character}{حرف} \setinterfacecommand{characters}{حرفها} \setinterfacecommand{chem}{chem} \setinterfacecommand{clip}{گیره} \setinterfacecommand{clonefield}{میدان‌شبیه‌سازی} \setinterfacecommand{color}{رنگ} \setinterfacecommand{colorbar}{میله‌رنگ} \setinterfacecommand{colorvalue}{مقداررنگ} \setinterfacecommand{column}{ستون} \setinterfacecommand{comparecolorgroup}{مقایسه‌گروه‌رنگ} \setinterfacecommand{comparepalet}{لوح‌مقایسه} \setinterfacecommand{completepagenumber}{شماره‌صفحه‌کامل} \setinterfacecommand{completeregister}{ثبت‌کامل} \setinterfacecommand{component}{مولفه} \setinterfacecommand{convertnumber}{شماره‌مبدل} \setinterfacecommand{copyfield}{میدان‌کپی} \setinterfacecommand{correctwhitespace}{فضای‌سفیدصحیح} \setinterfacecommand{coupledocument}{نوشتارزوج} \setinterfacecommand{couplemarking}{نشانه‌گذاری‌زوج} \setinterfacecommand{couplepage}{صفحه‌زوج} \setinterfacecommand{couplepaper}{کاغذزوج} \setinterfacecommand{coupleregister}{ثبت‌زوج} \setinterfacecommand{crlf}{crlf} \setinterfacecommand{currentdate}{تاریخ‌جاری} \setinterfacecommand{currentheadnumber}{شماره‌سرجاری} \setinterfacecommand{cutspace}{فضای‌برش} \setinterfacecommand{date}{تاریخ} \setinterfacecommand{decouplemarking}{جداسازی‌نشانه‌گذاری} \setinterfacecommand{decrementnumber}{شماره‌کاهش} \setinterfacecommand{define}{تعریف} \setinterfacecommand{defineaccent}{تعریف‌لهجه} \setinterfacecommand{defineblank}{تعریف‌خالی} \setinterfacecommand{defineblock}{تعریف‌بلوک} \setinterfacecommand{definebodyfont}{تعریف‌قلم‌متن} \setinterfacecommand{definebodyfontenvironment}{تعریف‌محیط‌قلم‌بدنه} \setinterfacecommand{definebodyfontswitch}{definebodyfontswitch} \setinterfacecommand{definebuffer}{تعریف‌بافر} \setinterfacecommand{definecharacter}{تعریف‌حرف} \setinterfacecommand{definecharacterkerning}{definecharacterkerning} \setinterfacecommand{definecharacterspacing}{definecharacterspacing} \setinterfacecommand{definecolor}{تعریف‌رنگ} \setinterfacecommand{definecolorgroup}{تعریف‌گروه‌رنگ} \setinterfacecommand{definecolumnbreak}{تعریف‌شکستن‌ستون} \setinterfacecommand{definecolumnset}{تعریف‌مجموعه‌ستون} \setinterfacecommand{definecombination}{تعریف‌ترکیب} \setinterfacecommand{definecombinedlist}{تعریف‌لیست‌ترکیبی} \setinterfacecommand{definecommand}{تعریف‌فرمان} \setinterfacecommand{defineconversion}{تعریف‌تبدیل} \setinterfacecommand{definedescription}{تعریف‌شرح} \setinterfacecommand{definedfont}{definedfont} \setinterfacecommand{defineenumeration}{تعریف‌شماره‌بندی} \setinterfacecommand{definefallbackfamily}{definefallbackfamily} \setinterfacecommand{definefield}{تعریف‌میدان} \setinterfacecommand{definefieldstack}{تعریف‌توده‌میدان} \setinterfacecommand{definefiguresymbol}{تعریف‌نمادشکل} \setinterfacecommand{definefilefallback}{definefilefallback} \setinterfacecommand{definefirstline}{definefirstline} \setinterfacecommand{definefloat}{تعریف‌شناور} \setinterfacecommand{definefont}{تعریف‌قلم} \setinterfacecommand{definefontalternative}{definefontalternative} \setinterfacecommand{definefontfallback}{definefontfallback} \setinterfacecommand{definefontfamily}{definefontfamily} \setinterfacecommand{definefontfamilypreset}{definefontfamilypreset} \setinterfacecommand{definefontfeature}{definefontfeature} \setinterfacecommand{definefontfile}{definefontfile} \setinterfacecommand{definefontsize}{definefontsize} \setinterfacecommand{definefontsolution}{definefontsolution} \setinterfacecommand{definefontstyle}{تعریف‌سبک‌قلم} \setinterfacecommand{definefontsynonym}{تعریف‌مترادف‌قلم} \setinterfacecommand{defineframed}{تعریف‌قالبی} \setinterfacecommand{defineframedtext}{تعریف‌متن‌قالبی} \setinterfacecommand{definefrozenfont}{definefrozenfont} \setinterfacecommand{definehbox}{تعریف‌جعبه‌‌افقی} \setinterfacecommand{definehead}{تعریف‌سر} \setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures} \setinterfacecommand{defineindentedtext}{defineindentedtext} \setinterfacecommand{defineinmargin}{تعریف‌درون‌حاشیه} \setinterfacecommand{defineinteractionmenu}{تعریف‌منوی‌پانل} \setinterfacecommand{defineitemgroup}{تعریف‌گروه‌آیتم} \setinterfacecommand{defineitems}{defineitems} \setinterfacecommand{definelabel}{تعریف‌برچسب} \setinterfacecommand{definelayer}{تعریف‌لایه} \setinterfacecommand{definelayout}{تعریف‌طرح‌بندی} \setinterfacecommand{definelinenote}{definelinenote} \setinterfacecommand{definelist}{تعریف‌لیست} \setinterfacecommand{definelogo}{تعریف‌آرم} \setinterfacecommand{definemainfield}{تعریف‌میدان‌اصلی} \setinterfacecommand{definemakeup}{تعریف‌آرایش} \setinterfacecommand{definemarking}{تعریف‌نشانه‌گذاری} \setinterfacecommand{definemathalignment}{تعریف‌تنظیم‌ریاضی} \setinterfacecommand{definemode}{definemode} \setinterfacecommand{definenamedcolor}{definenamedcolor} \setinterfacecommand{definenote}{definenote} \setinterfacecommand{defineoutput}{تعریف‌خروجی} \setinterfacecommand{defineoverlay}{تعریف‌پوشش} \setinterfacecommand{definepagebreak}{تعریف‌شکست‌صفحه} \setinterfacecommand{definepalet}{تعریف‌لوح} \setinterfacecommand{definepapersize}{تعریف‌اندازه‌برگ} \setinterfacecommand{defineparagraphs}{تعریف‌پاراگرافها} \setinterfacecommand{defineperiodkerning}{defineperiodkerning} \setinterfacecommand{defineplacement}{تعریف‌جانشانی} \setinterfacecommand{defineprofile}{تعریف‌پروفایل} \setinterfacecommand{defineprogram}{تعریف‌برنامه} \setinterfacecommand{definerawfont}{تعریف‌قلم‌خام} \setinterfacecommand{definereference}{تعریف‌مرجع} \setinterfacecommand{definereferenceformat}{تعریف‌شمایل‌مرجع} \setinterfacecommand{definereferencelist}{تعریف‌لیست‌مرجع} \setinterfacecommand{defineregister}{تعریف‌ثبت} \setinterfacecommand{definerule}{تعریف‌خط‌حائل} \setinterfacecommand{definesavebuffer}{startsavebuffer} \setinterfacecommand{definesection}{تعریف‌بخش} \setinterfacecommand{definesectionblock}{تعریف‌بلوک‌بخش} \setinterfacecommand{definesorting}{تعریف‌ترتیب} \setinterfacecommand{definestartstop}{تعریف‌شروع‌پایان} \setinterfacecommand{definestyle}{تعریف‌سبک} \setinterfacecommand{definesubfield}{تعریف‌زیرمیدان} \setinterfacecommand{definesymbol}{تعریف‌نماد} \setinterfacecommand{definesynonyms}{تعریف‌مترادفها} \setinterfacecommand{definetabletemplate}{تعریف‌الگوی‌جدول} \setinterfacecommand{definetabulate}{تعریف‌جدول‌بندی} \setinterfacecommand{definetext}{تعریف‌متن} \setinterfacecommand{definetextbackground}{definetextbackground} \setinterfacecommand{definetextnote}{definetextnote} \setinterfacecommand{definetextposition}{تعریف‌مکان‌متن} \setinterfacecommand{definetextvariable}{تعریف‌متغیرمتن} \setinterfacecommand{definetype}{تعریف‌تایپ} \setinterfacecommand{definetyping}{تعریف‌تایپ‌کردن} \setinterfacecommand{defineversion}{تعریف‌نسخه} \setinterfacecommand{depthspanningtext}{depthspanningtext} \setinterfacecommand{determineheadnumber}{تعیین‌شماره‌سر} \setinterfacecommand{determinelistcharacteristics}{تعیین‌مشخصات‌لیست} \setinterfacecommand{determineregistercharacteristics}{تعیین‌مشخصات‌ثبت} \setinterfacecommand{dimension}{بعد} \setinterfacecommand{disableinteractionmenu}{ازکارانداختن‌منوی‌پانل} \setinterfacecommand{disablemode}{disablemode} \setinterfacecommand{doaddfeature}{doaddfeature} \setinterfacecommand{domicile}{مسکن} \setinterfacecommand{dontconvertfont}{dontconvertfont} \setinterfacecommand{donttest}{امتحان‌نکن} \setinterfacecommand{edgedistance}{فاصله‌لبه} \setinterfacecommand{edgewidth}{عرض‌لبه} \setinterfacecommand{emphasisboldface}{emphasisboldface} \setinterfacecommand{emptylines}{خطها‌خالی} \setinterfacecommand{enablemode}{enablemode} \setinterfacecommand{environment}{محیط} \setinterfacecommand{externalfigure}{شکل‌خارجی} \setinterfacecommand{fact}{حقیقت} \setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont} \setinterfacecommand{feature}{feature} \setinterfacecommand{field}{میدان} \setinterfacecommand{fieldstack}{میدان‌پشته} \setinterfacecommand{fillinfield}{درج‌درمیدان} \setinterfacecommand{fillinline}{درج‌درخط} \setinterfacecommand{fillinrules}{درج‌درخطها} \setinterfacecommand{fillintext}{درج‌درمتن} \setinterfacecommand{firstcharacter}{firstcharacter} \setinterfacecommand{fitfield}{پرکردن‌میدان} \setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid} \setinterfacecommand{fixedspace}{فضای‌ثابت} \setinterfacecommand{fixedspaces}{فضاهای‌ثابت} \setinterfacecommand{flushnotes}{flushnotes} \setinterfacecommand{followprofile}{پیروی‌پروفایل} \setinterfacecommand{followprofileversion}{پیروی‌نسخه‌پروفایل} \setinterfacecommand{followversion}{پیروی‌نسخه} \setinterfacecommand{footerdistance}{فاصله‌ته‌برگ} \setinterfacecommand{footerheight}{ارتفاع‌ته‌برگ} \setinterfacecommand{footnote}{پانوشت} \setinterfacecommand{footnotetext}{متن‌پانوشت} \setinterfacecommand{forceblocks}{اجباربلوکها} \setinterfacecommand{forcecharacterstripping}{forcecharacterstripping} \setinterfacecommand{formulanumber}{شماره‌فرمول} \setinterfacecommand{fraction}{کسر} \setinterfacecommand{framed}{قالبی} \setinterfacecommand{from}{از} \setinterfacecommand{fromlinenote}{fromlinenote} \setinterfacecommand{getbuffer}{دریافت‌بافر} \setinterfacecommand{getfirstcharacter}{getfirstcharacter} \setinterfacecommand{getmarking}{دریافت‌نشانه} \setinterfacecommand{getnumber}{دریافت‌شماره} \setinterfacecommand{globaldisablemode}{globaldisablemode} \setinterfacecommand{globalenablemode}{globalenablemode} \setinterfacecommand{globalpreventmode}{globalpreventmode} \setinterfacecommand{godown}{بروپایین} \setinterfacecommand{goto}{بروبه} \setinterfacecommand{gotobox}{بروبه‌جعبه} \setinterfacecommand{gotopage}{بروبه‌صفحه} \setinterfacecommand{graycolor}{رنگ‌خاکستری} \setinterfacecommand{greyvalue}{مقدارخاکستری} \setinterfacecommand{grid}{توری} \setinterfacecommand{hairline}{خط‌مو} \setinterfacecommand{head}{سر} \setinterfacecommand{headerdistance}{فاصله‌سربرگ} \setinterfacecommand{headerheight}{ارتفاع‌سربرگ} \setinterfacecommand{headlevel}{مرحله‌سر} \setinterfacecommand{headnumber}{شماره‌سر} \setinterfacecommand{headsym}{نمادسر} \setinterfacecommand{headtext}{متن‌سر} \setinterfacecommand{heightspanningtext}{heightspanningtext} \setinterfacecommand{hideblocks}{بلوکها‌پنهان} \setinterfacecommand{high}{بلند} \setinterfacecommand{hl}{خ‌ا} \setinterfacecommand{immediatebetweenlist}{فوری‌بین‌لیست} \setinterfacecommand{immediatetolist}{فوری‌به‌لیست} \setinterfacecommand{in}{درون} \setinterfacecommand{incrementnumber}{شماره‌افزایش} \setinterfacecommand{indenting}{تورفتگی} \setinterfacecommand{inframed}{درقالبی} \setinterfacecommand{infull}{درپر} \setinterfacecommand{ininner}{درداخلی} \setinterfacecommand{inleft}{درچپ} \setinterfacecommand{inleftedge}{درلبه‌چپ} \setinterfacecommand{inleftmargin}{درحاشیه‌چپ} \setinterfacecommand{inline}{درخط} \setinterfacecommand{inmargin}{درحاشیه} \setinterfacecommand{inmframed}{inmframed} \setinterfacecommand{inneredgedistance}{فاصله‌لبه‌داخلی} \setinterfacecommand{inneredgewidth}{عرض‌لبه‌داخلی} \setinterfacecommand{innermargindistance}{فاصله‌حاشیه‌داخلی} \setinterfacecommand{innermarginwidth}{عرض‌حاشیه‌داخلی} \setinterfacecommand{inothermargin}{درحاشیه‌دیگر} \setinterfacecommand{inouter}{درخارجی} \setinterfacecommand{inright}{درراست} \setinterfacecommand{inrightedge}{درلبه‌راست} \setinterfacecommand{inrightmargin}{درحاشیه‌راست} \setinterfacecommand{installlanguage}{نصب‌زبان} \setinterfacecommand{interactionbar}{میله‌پانل} \setinterfacecommand{interactionbuttons}{دکمه‌پانل} \setinterfacecommand{interactionmenu}{منوی‌پانل} \setinterfacecommand{item}{آیتم} \setinterfacecommand{itemgroup}{itemgroup} \setinterfacecommand{items}{آیتمها} \setinterfacecommand{itemtag}{itemtag} \setinterfacecommand{its}{its} \setinterfacecommand{keepblocks}{حفظ‌بلوکها} \setinterfacecommand{kerncharacters}{kerncharacters} \setinterfacecommand{label}{برچسب} \setinterfacecommand{labels}{برچسبها} \setinterfacecommand{labeltext}{متن‌برچسب} \setinterfacecommand{language}{زبان} \setinterfacecommand{languageCharacters}{languageCharacters} \setinterfacecommand{languagecharacters}{languagecharacters} \setinterfacecommand{leftaligned}{چپ‌چین} \setinterfacecommand{leftbottombox}{leftbottombox} \setinterfacecommand{leftedgedistance}{فاصله‌لبه‌چپ} \setinterfacecommand{leftedgewidth}{عرض‌لبه‌چپ} \setinterfacecommand{leftline}{leftline} \setinterfacecommand{leftmargindistance}{فاصله‌حاشیه‌چپ} \setinterfacecommand{leftmarginwidth}{عرض‌حاشیه‌چپ} \setinterfacecommand{leg}{پا} \setinterfacecommand{linecorrection}{linecorrection} \setinterfacecommand{linenote}{linenote} \setinterfacecommand{linespanningtext}{linespanningtext} \setinterfacecommand{linewidth}{عرض‌خط} \setinterfacecommand{listheight}{ارتفاع‌خط} \setinterfacecommand{listlength}{طول‌لیست} \setinterfacecommand{listsymbol}{نمادلیست} \setinterfacecommand{listwidth}{عرض‌لیست} \setinterfacecommand{loadfontgoodies}{loadfontgoodies} \setinterfacecommand{localfootnotes}{localfootnotes} \setinterfacecommand{localnotes}{localnotes} \setinterfacecommand{logfields}{میدانهای‌گزارش} \setinterfacecommand{lohi}{پابا} \setinterfacecommand{low}{پایین} \setinterfacecommand{macroname}{نام‌ماکرو} \setinterfacecommand{mainlanguage}{زبان‌اصلی} \setinterfacecommand{makeupheight}{ارتفاع‌آرایش} \setinterfacecommand{makeupwidth}{عرض‌آرایش} \setinterfacecommand{mar}{حاش} \setinterfacecommand{marginblock}{marginblock} \setinterfacecommand{margindistance}{فاصله‌حاشیه} \setinterfacecommand{marginrule}{خط‌حاشیه} \setinterfacecommand{margintext}{متن‌حاشیه} \setinterfacecommand{margintitle}{عنوان‌حاشیه} \setinterfacecommand{marginwidth}{عرض‌حاشیه} \setinterfacecommand{marginword}{کلمه‌حاشیه} \setinterfacecommand{marking}{نشانه‌گذاری} \setinterfacecommand{markversion}{نسخه‌نشانه} \setinterfacecommand{mathematics}{ریاضی} \setinterfacecommand{menubutton}{دکمه‌منو} \setinterfacecommand{mframed}{mframed} \setinterfacecommand{midaligned}{تنظیم‌وسط} \setinterfacecommand{mirror}{آینه} \setinterfacecommand{month}{ماه} \setinterfacecommand{moveformula}{انتقال‌فرمول} \setinterfacecommand{moveongrid}{انتقال‌به‌توری} \setinterfacecommand{movesidefloat}{انتقال‌کنار‌شناور} \setinterfacecommand{namedconstruction}{namedconstruction} \setinterfacecommand{nameddescription}{nameddescription} \setinterfacecommand{namedenumeration}{namedenumeration} \setinterfacecommand{navigating}{هدایت} \setinterfacecommand{nodimension}{بدون‌بعد} \setinterfacecommand{noheaderandfooterlines}{بدون‌خط‌سروته‌برگ} \setinterfacecommand{noindenting}{بدون‌تورفتگی} \setinterfacecommand{noitem}{noitem} \setinterfacecommand{nolist}{بدون‌لیست} \setinterfacecommand{nomarking}{بدون‌نشانه‌گذاری} \setinterfacecommand{nomoreblocks}{بدون‌بلوکهای‌بیشتر} \setinterfacecommand{nomorefiles}{بدون‌فایلهای‌بیشتر} \setinterfacecommand{nop}{منفی} \setinterfacecommand{nospace}{بدون‌فضا} \setinterfacecommand{note}{یادداشت} \setinterfacecommand{notesymbol}{notesymbol} \setinterfacecommand{notopandbottomlines}{بدون‌خط‌بالاوپایین} \setinterfacecommand{notsmallcapped}{سرپوش‌کوچک‌نه} \setinterfacecommand{nowhitespace}{بدون‌فضای‌سفید} \setinterfacecommand{numberofsubpages}{شماره‌زیرصفحه} \setinterfacecommand{numbers}{شماره‌ها} \setinterfacecommand{outeredgedistance}{فاصله‌لبه‌خارجی} \setinterfacecommand{outeredgewidth}{عرض‌لبه‌خارجی} \setinterfacecommand{outermargindistance}{فاصله‌حاشیه‌خارجی} \setinterfacecommand{outermarginwidth}{عرض‌حاشیه‌خارجی} \setinterfacecommand{packed}{فشرده} \setinterfacecommand{page}{صفحه} \setinterfacecommand{pagebreak}{pagebreak} \setinterfacecommand{pagedepth}{عمق‌صفحه} \setinterfacecommand{pagenumber}{شماره‌صفحه} \setinterfacecommand{pageoffset}{آفست‌صفحه} \setinterfacecommand{pagereference}{مرجع‌صفحه} \setinterfacecommand{paperheight}{ارتفاع‌برگ} \setinterfacecommand{paperwidth}{عرض‌برگ} \setinterfacecommand{periods}{نقطه‌ها} \setinterfacecommand{placebookmarks}{درج‌چوب‌خط} \setinterfacecommand{placecombinedlist}{درج‌لیست‌مختلط} \setinterfacecommand{placefloat}{درج‌شناور} \setinterfacecommand{placefootnotes}{درج‌پانوشتها} \setinterfacecommand{placeformula}{درج‌فرمول} \setinterfacecommand{placeheadnumber}{درج‌شماره‌سر} \setinterfacecommand{placeheadtext}{درج‌متن‌سر} \setinterfacecommand{placelegend}{درج‌راهنما} \setinterfacecommand{placelist}{درج‌لیست} \setinterfacecommand{placelistofsynonyms}{placelistofsynonyms} \setinterfacecommand{placelocalfootnotes}{درج‌پانوشتهای‌موضعی} \setinterfacecommand{placelocalnotes}{placelocalnotes} \setinterfacecommand{placelogos}{درج‌آرمها} \setinterfacecommand{placenamedfloat}{placenamedfloat} \setinterfacecommand{placenotes}{placenotes} \setinterfacecommand{placeongrid}{درج‌در‌توری} \setinterfacecommand{placeontopofeachother}{درج‌در‌بالای‌یکدیگر} \setinterfacecommand{placepagenumber}{درج‌شماره‌صفحه} \setinterfacecommand{placerawlist}{درج‌لیست‌خام} \setinterfacecommand{placereferencelist}{درج‌لیست‌مرجع} \setinterfacecommand{placeregister}{درج‌ثبت} \setinterfacecommand{placerule}{درج‌خط} \setinterfacecommand{placesidebyside}{درج‌کنار‌به‌کنار} \setinterfacecommand{placesubformula}{درج‌زیرفرمول} \setinterfacecommand{placetextvariable}{درج‌متغیرمتن} \setinterfacecommand{position}{مکان} \setinterfacecommand{positiontext}{مکان‌متن} \setinterfacecommand{postponenotes}{postponenotes} \setinterfacecommand{postponingnotes}{postponingnotes} \setinterfacecommand{predefinedfont}{predefinedfont} \setinterfacecommand{predefinefont}{predefinefont} \setinterfacecommand{presetdocument}{presetdocument} \setinterfacecommand{prettyprintbuffer}{prettyprintbuffer} \setinterfacecommand{preventmode}{preventmode} \setinterfacecommand{printpaperheight}{چاپ‌ارتفاع‌برگ} \setinterfacecommand{printpaperwidth}{چاپ‌عرض‌برگ} \setinterfacecommand{processblocks}{بلوکهای‌پردازش} \setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist} \setinterfacecommand{processpage}{صفحه‌پردازش} \setinterfacecommand{product}{تولید} \setinterfacecommand{program}{برنامه} \setinterfacecommand{project}{پروژه} \setinterfacecommand{publication}{نشر} \setinterfacecommand{quotation}{نقل‌قول} \setinterfacecommand{quote}{نقل} \setinterfacecommand{ran}{ran} \setinterfacecommand{redo}{انجام‌دوباره} \setinterfacecommand{redoconvertfont}{redoconvertfont} \setinterfacecommand{ref}{رج} \setinterfacecommand{reference}{مرجع} \setinterfacecommand{referral}{رجوع} \setinterfacecommand{referraldate}{تاریخ‌رجوع} \setinterfacecommand{referring}{مراجعه} \setinterfacecommand{registerfontclass}{registerfontclass} \setinterfacecommand{registerhyphenationexception}{registerhyphenationexception} \setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern} \setinterfacecommand{remark}{توجه} \setinterfacecommand{replacefeature}{replacefeature} \setinterfacecommand{reset}{بازنشانی} \setinterfacecommand{resetandaddfeature}{resetandaddfeature} \setinterfacecommand{resetcharacteralign}{resetcharacteralign} \setinterfacecommand{resetcharacterkerning}{resetcharacterkerning} \setinterfacecommand{resetcharacterspacing}{resetcharacterspacing} \setinterfacecommand{resetcharacterstripping}{resetcharacterstripping} \setinterfacecommand{resetfeature}{resetfeature} \setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme} \setinterfacecommand{resetfontfallback}{resetfontfallback} \setinterfacecommand{resetfontsolution}{resetfontsolution} \setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures} \setinterfacecommand{resetlocalfloats}{resetlocalfloats} \setinterfacecommand{resetmarking}{بازنشانی‌نشانه‌گذاری} \setinterfacecommand{resetmode}{resetmode} \setinterfacecommand{resetnumber}{بازنشانی‌شماره} \setinterfacecommand{resetpath}{resetpath} \setinterfacecommand{resetperiodkerning}{resetperiodkerning} \setinterfacecommand{resetsystemmode}{resetsystemmode} \setinterfacecommand{resettextcontent}{بازنشانی‌متن} \setinterfacecommand{resetvisualizers}{resetvisualizers} \setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont} \setinterfacecommand{retestfeature}{retestfeature} \setinterfacecommand{revivefeature}{revivefeature} \setinterfacecommand{rightaligned}{تنظیم‌راست} \setinterfacecommand{rightbottombox}{rightbottombox} \setinterfacecommand{rightedgedistance}{فاصله‌لبه‌راست} \setinterfacecommand{rightedgewidth}{عرض‌لبه‌راست} \setinterfacecommand{rightline}{rightline} \setinterfacecommand{rightmargindistance}{فاصله‌حاشیه‌راست} \setinterfacecommand{rightmarginwidth}{عرض‌حاشیه‌راست} \setinterfacecommand{romannumerals}{اعدادلاتین} \setinterfacecommand{rotate}{دوران} \setinterfacecommand{savebuffer}{savebuffer} \setinterfacecommand{scale}{مقیاس} \setinterfacecommand{screen}{پرده} \setinterfacecommand{selectblocks}{انتخاب‌بلوکها} \setinterfacecommand{selectpaper}{انتخاب‌برگ} \setinterfacecommand{selectversion}{انتخاب‌نسخه} \setinterfacecommand{setbigbodyfont}{setbigbodyfont} \setinterfacecommand{setcharacteralign}{setcharacteralign} \setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail} \setinterfacecommand{setcharactercasing}{setcharactercasing} \setinterfacecommand{setcharactercleaning}{setcharactercleaning} \setinterfacecommand{setcharacterkerning}{setcharacterkerning} \setinterfacecommand{setcharacterspacing}{setcharacterspacing} \setinterfacecommand{setcharacterstripping}{setcharacterstripping} \setinterfacecommand{setcurrentfontclass}{setcurrentfontclass} \setinterfacecommand{setfirstline}{setfirstline} \setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign} \setinterfacecommand{setfont}{setfont} \setinterfacecommand{setfontcolorsheme}{setfontcolorsheme} \setinterfacecommand{setfontfeature}{setfontfeature} \setinterfacecommand{setfontsolution}{setfontsolution} \setinterfacecommand{setfontstrut}{setfontstrut} \setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures} \setinterfacecommand{setmainbodyfont}{setmainbodyfont} \setinterfacecommand{setmode}{setmode} \setinterfacecommand{setnote}{setnote} \setinterfacecommand{setnotetext}{setnotetext} \setinterfacecommand{setnumber}{تعیین‌شماره} \setinterfacecommand{setperiodkerning}{setperiodkerning} \setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign} \setinterfacecommand{setsmallbodyfont}{setsmallbodyfont} \setinterfacecommand{setsystemmode}{setsystemmode} \setinterfacecommand{settextcontent}{تعیین‌محتوای‌متن} \setinterfacecommand{settextvariable}{تعیین‌متغیر‌متن} \setinterfacecommand{setupalign}{بارگذاری‌تنظیم} \setinterfacecommand{setupanswerarea}{setupanswerarea} \setinterfacecommand{setuparranging}{بارگذاری‌ترتیب} \setinterfacecommand{setupattachment}{setupattachment} \setinterfacecommand{setupbackground}{بارگذاری‌پس‌زمینه} \setinterfacecommand{setupbackgrounds}{بارگذاری‌پس‌زمینه‌ها} \setinterfacecommand{setupblackrules}{بارگذاری‌خطهای‌سیاه} \setinterfacecommand{setupblank}{بارگذاری‌خالی} \setinterfacecommand{setupblock}{بارگذاری‌بلوک} \setinterfacecommand{setupbodyfont}{بارگذاری‌قلم‌متن} \setinterfacecommand{setupbodyfontenvironment}{بارگذاری‌محیط‌قلم‌متن} \setinterfacecommand{setupbottom}{بارگذاری‌پایین} \setinterfacecommand{setupbottomtexts}{بارگذاری‌متن‌پایین} \setinterfacecommand{setupbuffer}{بارگذاری‌بافر} \setinterfacecommand{setupbuttons}{بارگذاری‌دکمه‌ها} \setinterfacecommand{setupcapitals}{setupcapitals} \setinterfacecommand{setupcaption}{بارگذاری‌شرح} \setinterfacecommand{setupcaptions}{بارگذاری‌شرحها} \setinterfacecommand{setupcharacteralign}{setupcharacteralign} \setinterfacecommand{setupcharacterkerning}{setupcharacterkerning} \setinterfacecommand{setupcharacterspacing}{setupcharacterspacing} \setinterfacecommand{setupclipping}{بارگذاری‌چیدن} \setinterfacecommand{setupcolor}{بارگذاری‌رنگ} \setinterfacecommand{setupcolors}{بارگذاری‌رنگها} \setinterfacecommand{setupcolumns}{بارگذاری‌ستونها} \setinterfacecommand{setupcolumnset}{بارگذاری‌مجموعه‌ستون} \setinterfacecommand{setupcolumnsetlines}{بارگذاری‌خطهای‌مجموعه‌ستون} \setinterfacecommand{setupcolumnsetstart}{بارگذاری‌شروع‌مجموعه‌ستون} \setinterfacecommand{setupcombinations}{بارگذاری‌ترکیب‌ها} \setinterfacecommand{setupcombinedlist}{بارگذاری‌لیست‌ترکیبی} \setinterfacecommand{setupcomment}{بارگذاری‌توضیح} \setinterfacecommand{setupcounter}{setupcounter} \setinterfacecommand{setupdescription}{setupdescription} \setinterfacecommand{setupdescriptions}{بارگذاری‌شرح} \setinterfacecommand{setupenumeration}{setupenumeration} \setinterfacecommand{setupenumerations}{بارگذاری‌شماره‌گذاریها} \setinterfacecommand{setupexternalfigures}{بارگذاری‌شکلهای‌خارجی} \setinterfacecommand{setupfield}{بارگذاری‌میدان} \setinterfacecommand{setupfields}{بارگذاری‌میدانها} \setinterfacecommand{setupfillinlines}{بارگذاری‌پرکردن‌خطها} \setinterfacecommand{setupfillinrules}{بارگذاری‌درج‌درخطها} \setinterfacecommand{setupfirstline}{setupfirstline} \setinterfacecommand{setupfloat}{بارگذاری‌شناور} \setinterfacecommand{setupfloats}{بارگذاری‌شناورها} \setinterfacecommand{setupfloatsplitting}{بارگذاری‌شکافتن‌شناورها} \setinterfacecommand{setupfontexpansion}{setupfontexpansion} \setinterfacecommand{setupfontprotrusion}{setupfontprotrusion} \setinterfacecommand{setupfonts}{setupfonts} \setinterfacecommand{setupfontsolution}{setupfontsolution} \setinterfacecommand{setupfooter}{بارگذاری‌ته‌برگ} \setinterfacecommand{setupfootertexts}{بارگذاری‌متن‌پانوشت} \setinterfacecommand{setupfootnotedefinition}{بارگذاری‌تعریف‌پانوشت} \setinterfacecommand{setupfootnotes}{بارگذاری‌پانوشتها} \setinterfacecommand{setupforms}{بارگذاری‌طرح} \setinterfacecommand{setupformula}{setupformula} \setinterfacecommand{setupformulas}{بارگذاری‌فرمولها} \setinterfacecommand{setupframed}{بارگذاری‌قالبی} \setinterfacecommand{setupframedtext}{setupframedtext} \setinterfacecommand{setupframedtexts}{بارگذاری‌متن‌قالبی} \setinterfacecommand{setuphead}{بارگذاری‌سر} \setinterfacecommand{setupheader}{بارگذاری‌سربرگ} \setinterfacecommand{setupheadertexts}{بارگذاری‌متن‌سربرگ} \setinterfacecommand{setupheadnumber}{بارگذاری‌شماره‌سر} \setinterfacecommand{setupheads}{بارگذاری‌سرها} \setinterfacecommand{setupheadtext}{بارگذاری‌متن‌سر} \setinterfacecommand{setuphyphenation}{setuphyphenation} \setinterfacecommand{setuphyphenmark}{بارگذاری‌نشانه‌شکستن} \setinterfacecommand{setupindentedtext}{setupindentedtext} \setinterfacecommand{setupindenting}{بارگذاری‌تورفتگی} \setinterfacecommand{setupinmargin}{بارگذاری‌درون‌حاشیه} \setinterfacecommand{setupinteraction}{بارگذاری‌پانل} \setinterfacecommand{setupinteractionbar}{بارگذاری‌میله‌پانل} \setinterfacecommand{setupinteractionmenu}{بارگذاری‌منوی‌پانل} \setinterfacecommand{setupinteractionscreen}{بارگذاری‌پرده‌پانل} \setinterfacecommand{setupinterlinespace}{بارگذاری‌فاصله‌بین‌خط} \setinterfacecommand{setupitemgroup}{بارگذاری‌گروه‌آیتم} \setinterfacecommand{setupitemgroups}{بارگذاری‌گروههای‌آیتم} \setinterfacecommand{setupitems}{بارگذاری‌آیتمها} \setinterfacecommand{setuplabeltext}{باگذاری‌متن‌برچسب} \setinterfacecommand{setuplanguage}{بارگذاری‌زبان} \setinterfacecommand{setuplayout}{بارگذاری‌طرح‌بندی} \setinterfacecommand{setuplegend}{بارگذاری‌راهنما} \setinterfacecommand{setuplinenote}{setuplinenote} \setinterfacecommand{setuplinenumbering}{بارگذاری‌شماره‌‌گذاری‌خط} \setinterfacecommand{setuplines}{بارگذاری‌خطها} \setinterfacecommand{setuplinewidth}{بارگذاری‌عرض‌خط} \setinterfacecommand{setuplist}{بارگذاری‌لیست} \setinterfacecommand{setupmakeup}{بارگذاری‌آرایش} \setinterfacecommand{setupmarginblock}{setupmarginblock} \setinterfacecommand{setupmarginblocks}{بارگذاری‌بلوکهای‌حاشیه} \setinterfacecommand{setupmargindata}{setupmargindata} \setinterfacecommand{setupmarginrules}{بارگذاری‌خطهای‌حاشیه} \setinterfacecommand{setupmarking}{بارگذاری‌نشانه‌گذاری} \setinterfacecommand{setupmathalignment}{بارگذاری‌تنظیم‌ریاضی} \setinterfacecommand{setupnarrower}{بارگذاری‌باریکتر} \setinterfacecommand{setupnotation}{setupnotation} \setinterfacecommand{setupnotations}{setupnotations} \setinterfacecommand{setupnote}{setupnote} \setinterfacecommand{setupnotes}{setupnotes} \setinterfacecommand{setupnumber}{بارگذاری‌شماره} \setinterfacecommand{setupnumbering}{بارگذاری‌شماره‌گذاری} \setinterfacecommand{setupoppositeplacing}{بارگذاری‌درج‌مخالف} \setinterfacecommand{setupoutput}{بارگذاری‌خروجی} \setinterfacecommand{setuppagecomment}{بارگذاری‌توضیح‌صفحه} \setinterfacecommand{setuppagenumber}{بارگذاری‌شماره‌صفحه} \setinterfacecommand{setuppagenumbering}{بارگذاری‌شماره‌گذاری‌صفحه} \setinterfacecommand{setuppagetransitions}{بارگذاری‌گذارصفحه} \setinterfacecommand{setuppalet}{بارگذاری‌لوح} \setinterfacecommand{setuppaper}{بارگذاری‌برگ} \setinterfacecommand{setuppapersize}{بارگذاری‌اندازه‌برگ} \setinterfacecommand{setupparagraphnumbering}{بارگذاری‌شماره‌گذاری‌پاراگراف} \setinterfacecommand{setupparagraphs}{بارگذاری‌پاراگرافها} \setinterfacecommand{setupperiodkerning}{setupperiodkerning} \setinterfacecommand{setupplacement}{بارگذاری‌جانشانی} \setinterfacecommand{setuppositioning}{بارگذاری‌مکان‌گذاری} \setinterfacecommand{setupprofiles}{بارگذاری‌پروفایلها} \setinterfacecommand{setupprograms}{بارگذاری‌برنامه‌ها} \setinterfacecommand{setuppublications}{بارگذاری‌نشرها} \setinterfacecommand{setupquote}{بارگذاری‌نقل} \setinterfacecommand{setupreferencelist}{بارگذاری‌لیست‌مرجع} \setinterfacecommand{setupreferencing}{بارگذاری‌ارجاع} \setinterfacecommand{setupregister}{بارگذاری‌ثبت} \setinterfacecommand{setuprotate}{بارگذاری‌دوران} \setinterfacecommand{setuprule}{بارگذاری‌خط} \setinterfacecommand{setupscreens}{بارگذاری‌پرده‌ها} \setinterfacecommand{setupsection}{بارگذاری‌بخش} \setinterfacecommand{setupsectionblock}{بارگذاری‌بلوک‌بخش} \setinterfacecommand{setupsorting}{بارگذاری‌ترتیب} \setinterfacecommand{setupspacing}{بارگذاری‌فضا‌گذاری} \setinterfacecommand{setupstartstop}{بارگذاری‌شروع‌پایان} \setinterfacecommand{setupstrut}{بارگذاری‌بست} \setinterfacecommand{setupsubpagenumber}{بارگذاری‌شماره‌زیرصفحه} \setinterfacecommand{setupsymbolset}{بارگذاری‌مجموعه‌نماد} \setinterfacecommand{setupsynchronization}{بارگذاری‌تطابق} \setinterfacecommand{setupsynchronizationbar}{بارگذاری‌میله‌تطابق} \setinterfacecommand{setupsynonyms}{بارگذاری‌مترادفها} \setinterfacecommand{setupsystem}{بارگذاری‌سیستم} \setinterfacecommand{setuptab}{بارگذاری‌تب} \setinterfacecommand{setuptables}{بارگذاری‌جدولها} \setinterfacecommand{setuptabulate}{بارگذاری‌جدول‌بندی} \setinterfacecommand{setuptext}{بارگذاری‌متن} \setinterfacecommand{setuptextbackground}{setuptextbackground} \setinterfacecommand{setuptextnote}{setuptextnote} \setinterfacecommand{setuptextposition}{بارگذاری‌مکان‌متن} \setinterfacecommand{setuptextrules}{بارگذاری‌خطهای‌متن} \setinterfacecommand{setuptexttexts}{بارگذاری‌متن‌متنها} \setinterfacecommand{setuptextvariable}{بارگذاری‌متغیر‌متن} \setinterfacecommand{setupthinrules}{بارگذاری‌خطها‌ی‌نازک} \setinterfacecommand{setuptolerance}{بارگذاری‌بردباری} \setinterfacecommand{setuptop}{بارگذاری‌بالا} \setinterfacecommand{setuptoptexts}{بارگذاری‌متنهای‌بالا} \setinterfacecommand{setuptype}{بارگذاری‌تایپ} \setinterfacecommand{setuptyping}{بارگذاری‌تایپ‌کردن} \setinterfacecommand{setupunderbar}{بارگذاری‌میله‌زیر} \setinterfacecommand{setupurl}{setupurl} \setinterfacecommand{setupversions}{بارگذاری‌نسخه‌ها} \setinterfacecommand{setupwhitespace}{بارگذاری‌فضای‌سفید} \setinterfacecommand{setvisualizerfont}{setvisualizerfont} \setinterfacecommand{showbodyfont}{نمایش‌قلم‌بدنه} \setinterfacecommand{showbodyfontenvironment}{نمایش‌محیط‌قلم‌بدنه} \setinterfacecommand{showcolor}{نمایش‌رنگ} \setinterfacecommand{showcolorgroup}{نمایش‌گروه‌رنگ} \setinterfacecommand{showcounter}{showcounter} \setinterfacecommand{showexternalfigures}{نمایش‌شکلهای‌خارجی} \setinterfacecommand{showfields}{نمایش‌میدانها} \setinterfacecommand{showfont}{showfont} \setinterfacecommand{showfontdata}{showfontdata} \setinterfacecommand{showfontexpansion}{showfontexpansion} \setinterfacecommand{showfontitalics}{showfontitalics} \setinterfacecommand{showfontkerns}{showfontkerns} \setinterfacecommand{showfontparameters}{showfontparameters} \setinterfacecommand{showfontstrip}{showfontstrip} \setinterfacecommand{showfontstyle}{showfontstyle} \setinterfacecommand{showframe}{نمایش‌قالب} \setinterfacecommand{showgrid}{نمایش‌توری} \setinterfacecommand{showhyphenationtrace}{showhyphenationtrace} \setinterfacecommand{showkerning}{showkerning} \setinterfacecommand{showlayout}{نمایش‌طرح‌بندی} \setinterfacecommand{showmakeup}{نمایش‌آرایش} \setinterfacecommand{showminimalbaseline}{showminimalbaseline} \setinterfacecommand{showpalet}{نمایش‌لوح} \setinterfacecommand{showprint}{نمایش‌چاپ} \setinterfacecommand{showsetups}{نمایش‌بارگذاریها} \setinterfacecommand{showstruts}{نمایش‌بستها} \setinterfacecommand{showsymbolset}{نمایش‌مجموعه‌علامت} \setinterfacecommand{smallcapped}{cap} \setinterfacecommand{someline}{یک‌خط} \setinterfacecommand{somewhere}{یک‌جا} \setinterfacecommand{space}{فضا} \setinterfacecommand{specialitem}{specialitem} \setinterfacecommand{splitfloat}{شکافتن‌شناور} \setinterfacecommand{startalignment}{شروع‌تنظیم} \setinterfacecommand{startbackground}{شروع‌پس‌زمینه} \setinterfacecommand{startcoding}{شروع‌کد} \setinterfacecommand{startcolor}{شروع‌رنگ} \setinterfacecommand{startcolumnmakeup}{شروع‌آرایش‌ستون} \setinterfacecommand{startcolumns}{شروع‌ستونها} \setinterfacecommand{startcolumnset}{شروع‌مجموعه‌ستون} \setinterfacecommand{startcombination}{شروع‌ترکیب} \setinterfacecommand{startcomponent}{شروع‌مولفه} \setinterfacecommand{startdocument}{شروع‌نوشتار} \setinterfacecommand{startenvironment}{شروع‌محیط} \setinterfacecommand{startfigure}{شروع‌شکل} \setinterfacecommand{startframed}{startframed} \setinterfacecommand{startglobal}{شروع‌سراسری} \setinterfacecommand{startline}{شروع‌خط} \setinterfacecommand{startlinecorrection}{شروع‌تصحیح‌خط} \setinterfacecommand{startlinenote}{startlinenote} \setinterfacecommand{startlinenumbering}{شروع‌شماره‌گذاری‌خط} \setinterfacecommand{startlines}{شروع‌خطها} \setinterfacecommand{startlocal}{شروع‌موضعی} \setinterfacecommand{startlocalfootnotes}{شروع‌پانوشتهای‌موضعی} \setinterfacecommand{startmakeup}{شروع‌آرایش} \setinterfacecommand{startmarginblock}{شروع‌بلوک‌حاشیه} \setinterfacecommand{startmarginrule}{شروع‌خط‌حاشیه} \setinterfacecommand{startnamedconstruction}{startnamedconstruction} \setinterfacecommand{startnameddescription}{startnameddescription} \setinterfacecommand{startnamedenumeration}{startnamedenumeration} \setinterfacecommand{startnamedmatrix}{startnamedmatrix} \setinterfacecommand{startnamedsection}{startnamedsection} \setinterfacecommand{startnamedsubformulas}{startnamedsubformulas} \setinterfacecommand{startnamedtyping}{startnamedtyping} \setinterfacecommand{startnarrower}{شروع‌باریکتر} \setinterfacecommand{startopposite}{شروع‌مخالف} \setinterfacecommand{startoverlay}{شروع‌پوشش} \setinterfacecommand{startoverview}{شروع‌بازبینی} \setinterfacecommand{startpacked}{شروع‌فشرده} \setinterfacecommand{startpositioning}{شروع‌مکان‌گذاری} \setinterfacecommand{startproduct}{شروع‌تولید} \setinterfacecommand{startprofile}{شروع‌پروفایل} \setinterfacecommand{startproject}{شروع‌پروژه} \setinterfacecommand{startquotation}{شروع‌نقل‌قول} \setinterfacecommand{startraster}{startraster} \setinterfacecommand{startsymbolset}{شروع‌مجموعه‌نماد} \setinterfacecommand{startsynchronization}{شروع‌تطابق} \setinterfacecommand{starttable}{شروع‌جدول} \setinterfacecommand{starttables}{شروع‌جدولها} \setinterfacecommand{starttext}{شروع‌متن} \setinterfacecommand{starttextbackground}{starttextbackground} \setinterfacecommand{starttextrule}{شروع‌خط‌متن} \setinterfacecommand{startunpacked}{شروع‌غیر‌فشرده} \setinterfacecommand{startversion}{شروع‌نسخه} \setinterfacecommand{stopalignment}{پایان‌تنظیم} \setinterfacecommand{stopbackground}{پایان‌پس‌زمینه} \setinterfacecommand{stopcoding}{پایان‌کد} \setinterfacecommand{stopcolor}{پایان‌رنگ} \setinterfacecommand{stopcolumnmakeup}{پایان‌آرایش‌ستون} \setinterfacecommand{stopcolumns}{پایان‌ستونها} \setinterfacecommand{stopcolumnset}{پایان‌مجموعه‌ستون} \setinterfacecommand{stopcombination}{پایان‌ترکیب} \setinterfacecommand{stopcomponent}{پایان‌مولفه} \setinterfacecommand{stopdocument}{پایان‌نوشتار} \setinterfacecommand{stopenvironment}{پایان‌محیط} \setinterfacecommand{stopframed}{stopframed} \setinterfacecommand{stopglobal}{پایان‌سراسری} \setinterfacecommand{stopline}{پایان‌خط} \setinterfacecommand{stoplinecorrection}{پایان‌تصحیح‌خط} \setinterfacecommand{stoplinenote}{stoplinenote} \setinterfacecommand{stoplinenumbering}{پایان‌شماره‌گذاری‌خط} \setinterfacecommand{stoplines}{پایان‌خطها} \setinterfacecommand{stoplocal}{پایان‌موضعی} \setinterfacecommand{stoplocalfootnotes}{پایان‌پانوشتهای‌موضعی} \setinterfacecommand{stopmakeup}{پایان‌آرایش} \setinterfacecommand{stopmarginblock}{پایان‌بلوک‌حاشیه} \setinterfacecommand{stopmarginrule}{پایان‌خط‌حاشیه} \setinterfacecommand{stopnamedconstruction}{stopnamedconstruction} \setinterfacecommand{stopnameddescription}{stopnameddescription} \setinterfacecommand{stopnamedenumeration}{stopnamedenumeration} \setinterfacecommand{stopnamedmatrix}{stopnamedmatrix} \setinterfacecommand{stopnamedsection}{stopnamedsection} \setinterfacecommand{stopnamedsubformulas}{stopnamedsubformulas} \setinterfacecommand{stopnamedtyping}{stopnamedtyping} \setinterfacecommand{stopnarrower}{پایان‌نازکتر} \setinterfacecommand{stopopposite}{پایان‌مخالف} \setinterfacecommand{stopoverlay}{پایان‌پوشش} \setinterfacecommand{stopoverview}{پایان‌بازبینی} \setinterfacecommand{stoppacked}{پایان‌فشرده} \setinterfacecommand{stoppositioning}{پایان‌مکان‌گذاری} \setinterfacecommand{stopproduct}{پایان‌تولید} \setinterfacecommand{stopprofile}{پایان‌پروفایل} \setinterfacecommand{stopproject}{پایان‌پروژه} \setinterfacecommand{stopquotation}{پایان‌نقل‌قول} \setinterfacecommand{stopraster}{stopraster} \setinterfacecommand{stopsynchronization}{پایان‌تطابق} \setinterfacecommand{stoptable}{پایان‌جدول} \setinterfacecommand{stoptables}{پایان‌جدولها} \setinterfacecommand{stoptext}{پایان‌متن} \setinterfacecommand{stoptextbackground}{stoptextbackground} \setinterfacecommand{stoptextrule}{پایان‌خط‌متن} \setinterfacecommand{stopunpacked}{پایان‌غیرفشرده} \setinterfacecommand{stopversion}{پایان‌نسخه} \setinterfacecommand{stretched}{کشیده} \setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter} \setinterfacecommand{stripcharacter}{stripcharacter} \setinterfacecommand{subformulanumber}{شماره‌زیرفرمول} \setinterfacecommand{subpagenumber}{شماره‌زیرصفحه} \setinterfacecommand{subtractfeature}{subtractfeature} \setinterfacecommand{switchtobodyfont}{تغییربه‌قلم‌بدنه} \setinterfacecommand{switchtorawfont}{تغییربه‌قلم‌خام} \setinterfacecommand{sym}{نم} \setinterfacecommand{symbol}{نماد} \setinterfacecommand{symoffset}{symoffset} \setinterfacecommand{synchronizationbar}{میله‌تطابق} \setinterfacecommand{synchronize}{تطابق} \setinterfacecommand{tab}{تب} \setinterfacecommand{testcolumn}{ستون‌امتحان} \setinterfacecommand{testfeature}{testfeature} \setinterfacecommand{testfeatureonce}{testfeatureonce} \setinterfacecommand{testpage}{صفحه‌تست} \setinterfacecommand{tex}{تک} \setinterfacecommand{textbackground}{textbackground} \setinterfacecommand{textcolor}{textcolor} \setinterfacecommand{textheight}{ارتفاع‌متن} \setinterfacecommand{textnote}{textnote} \setinterfacecommand{textreference}{مرجع‌متن} \setinterfacecommand{textrule}{خط‌متن} \setinterfacecommand{textvariable}{متغیر متن} \setinterfacecommand{textwidth}{عرض‌متن} \setinterfacecommand{thefirstcharacter}{thefirstcharacter} \setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize} \setinterfacecommand{theremainingcharacters}{theremainingcharacters} \setinterfacecommand{thinrule}{خط‌نازک} \setinterfacecommand{thinrules}{خطهای‌نازک} \setinterfacecommand{tolinenote}{tolinenote} \setinterfacecommand{tooltip}{tooltip} \setinterfacecommand{topdistance}{فاصله‌بالا} \setinterfacecommand{topheight}{ارتفاع‌بالا} \setinterfacecommand{topspace}{فضای‌بالا} \setinterfacecommand{totalnumberofpages}{شماره‌کل‌صفحه‌ها} \setinterfacecommand{translate}{ترجمه} \setinterfacecommand{txt}{txt} \setinterfacecommand{typ}{typ} \setinterfacecommand{type}{تایپ} \setinterfacecommand{typebuffer}{تایپ‌بافر} \setinterfacecommand{typedefinedbuffer}{typedefinedbuffer} \setinterfacecommand{typefile}{تایپ‌پرونده} \setinterfacecommand{typeinlinebuffer}{typeinlinebuffer} \setinterfacecommand{typing}{typing} \setinterfacecommand{unitmeaning}{معنی‌واحد} \setinterfacecommand{unknown}{ناشناس} \setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern} \setinterfacecommand{useJSscripts}{useJSscripts} \setinterfacecommand{useURL}{useURL} \setinterfacecommand{useXMLfilter}{useXMLfilter} \setinterfacecommand{useblocks}{استفاده‌بلوکها} \setinterfacecommand{usebodyfont}{usebodyfont} \setinterfacecommand{usebodyfontparameter}{usebodyfontparameter} \setinterfacecommand{usecommands}{استفاده‌فرمانها} \setinterfacecommand{useencoding}{استفاده‌رمزینه} \setinterfacecommand{useexternaldocument}{استفاده‌نوشتارخارجی} \setinterfacecommand{useexternalfigure}{استفاده‌شکل‌خارجی} \setinterfacecommand{useexternalfile}{استفاده‌پرونده‌خارجی} \setinterfacecommand{useexternalfiles}{استفاده‌پرونده‌های‌خارجی} \setinterfacecommand{useexternalsoundtrack}{استفاده‌قطعه‌موزیک‌خارجی} \setinterfacecommand{usemodule}{استفاده‌مدول} \setinterfacecommand{usemodules}{استفاده‌مدولها} \setinterfacecommand{usepath}{استفاده‌مسیر} \setinterfacecommand{usereferences}{استفاده‌مرجعها} \setinterfacecommand{usespecials}{استفاده‌ویژگیها} \setinterfacecommand{usesymbols}{استفاده‌نمادها} \setinterfacecommand{usetypescript}{استفاده‌دستخط‌تایپ} \setinterfacecommand{usetypescriptfile}{استفاده‌پرونده‌دستخط‌تایپ} \setinterfacecommand{useurl}{useurl} \setinterfacecommand{verbatim}{verbatim} \setinterfacecommand{version}{نسخه} \setinterfacecommand{vl}{خ‌ع} \setinterfacecommand{weekday}{روزهفته} \setinterfacecommand{whitespace}{فضای‌سفید} \setinterfacecommand{widthspanningtext}{widthspanningtext} \setinterfacecommand{wordright}{کلمه‌راست} \setinterfacecommand{writebetweenlist}{بنویس‌بین‌لیست} \setinterfacecommand{writetolist}{بنویس‌در‌لیست} \setinterfacecommand{writetoreferencelist}{بنویس‌درلیست‌مرجع} \setinterfacecommand{writetoregister}{بنویس‌درثبت} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/syst-pln.mkii0000644000175000017500000000716414536300610024754 0ustar hillehille%D \module %D [ file=syst-pln, %D version=2001.11.16, % 1999.03.17, % an oldie: 1995.10.10 %D title=\CONTEXT\ System Macros, %D subtitle=Efficient \PLAIN\ \TEX\ loading, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D This module set a couple of variables to the plain \TEX\ %D values. Later they might be overloaded. %D Build||in numeric variables. \adjdemerits = 10000 \binoppenalty = 700 \brokenpenalty = 100 \clubpenalty = 150 %day = 0 \defaulthyphenchar = `\- \defaultskewchar = -1 \delimiterfactor = 901 \displaywidowpenalty = 50 \doublehyphendemerits = 10000 %endlinechar = `\^^M \errorcontextlines = 5 %escapechar = `\\ \exhyphenpenalty = 50 %fam = 0 \finalhyphendemerits = 5000 %floatingpenalty = 0 %globaldefs = 0 %hangafter = 1 \hbadness = 1000 %holdinginserts = 0 \hyphenpenalty = 50 %interlinepenalty = 0 %language = 0 \lefthyphenmin = 2 \linepenalty = 10 %looseness = 0 %mag = 1000 %maxdeadcycles = 25 %month = 0 %newlinechar = -1 % commented i.e. no plain value %outputpenalty = 0 %pausing = 0 %postdisplaypenalty = 0 \predisplaypenalty = 10000 \pretolerance = 100 \relpenalty = 500 \righthyphenmin = 3 \showboxbreadth = 5 \showboxdepth = 3 %time = 0 \tolerance = 200 %tracingcommands = 0 \tracinglostchars = 1 %tracingmacros = 0 %tracingonline = 0 %tracingoutput = 0 %tracingpages = 0 %tracingparagraphs = 0 %tracingrestores = 0 %tracingstats = 0 \uchyph = 1 \vbadness = 1000 \widowpenalty = 150 %year = 0 %D Build in dimension variables. \abovedisplayshortskip = 0pt plus 3pt \abovedisplayskip = 12pt plus 3pt minus 9pt %baselineskip = 0pt \belowdisplayshortskip = 7pt plus 3pt minus 4pt \belowdisplayskip = 12pt plus 3pt minus 9pt \boxmaxdepth = \maxdimen \delimitershortfall = 5pt %displayindent = 0pt %displaywidth = 0pt %hangindent = 0pt \hfuzz = 0.1pt %hoffset = 0pt \hsize = 6.5in %leftskip = 0pt %lineskip = 0pt %lineskiplimit = 0pt %mathsurround = 0pt \maxdepth = 4pt \medmuskip = 4mu plus 2mu minus 4mu \nulldelimiterspace = 1.2pt \overfullrule = 5pt \parfillskip = 0pt plus 1fil \parindent = 20pt \parskip = 0pt plus 1pt %predisplaysize = 0pt %rightskip = 0pt \scriptspace = 0.5pt %spaceskip = 0pt \splitmaxdepth = \maxdimen \splittopskip = 10pt %tabskip = 0pt \thickmuskip = 5mu plus 5mu \thinmuskip = 3mu \topskip = 10pt \vfuzz = 0.1pt %voffset = 0pt \vsize = 8.9in %xspaceskip = 0pt \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-ali.mkii0000644000175000017500000001260214536300610024706 0ustar hillehille%D \module %D [ file=supp-ali, %D version=2000.04.17, %D title=\CONTEXT\ Support Macros, %D subtitle=Alignment, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Yet undocumented. % 0 = centered % 1 = left in before % 2 = right in before % 3 = left in after % 4 = right in after \unprotect % \starttabulate[|cg{.}|cg{,}|cg{,}|] % \NC period \NC comma \NC comma \NC\NR % \NG 100.000,00 \NG 100.000,00 \NG 100,00 \NC\NR % \NG 10.000,00 \NG 10.000,00 \NG 1000,00 \NC\NR % \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR % \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR % \NG 10\\ \NG 10\\ \NG 0,00 \NC\NR % \NG 10 \NG 10 \NG 0,00 \NC\NR % \NG 10 \NG 10 \NG 0,00 \NC\NR % \stoptabulate \chardef\characteralignmentmode=4 \chardef\characteralignmentslot=1 \newtoks\@@characteralignlst \let\afterassignwidth \!!zeropoint \let\beforeassignwidth\!!zeropoint \def\alignmentcharacter{.} \let\alignmentclass\s!default % can be used to handle multiple mixed ones \def\setfirstpasscharacteralign {\popcharacteralign \expanded{\dosetfirstpasscharacteralign{\alignmentcharacter}}} \def\dosetfirstpasscharacteralign#1% {\def\checkalignment##1% {\popcharacteralign \let\\\empty \setbox\scratchbox\hbox{#1}% \edef\characterassignwidth{\the\wd\scratchbox}% \setbox\scratchbox\null \docheckalignment##1#1\relax\relax \scratchdimen-\wd\scratchbox \setbox\scratchbox\hbox{\ignorespaces##1\unskip}% \advance\scratchdimen \wd\scratchbox \ifdim\scratchdimen>\beforeassignwidth\relax \edef\beforeassignwidth{\the\scratchdimen}% \fi \ifdim\scratchdimen=\zeropoint \setbox\scratchbox\hbox{\ignorespaces##1\unskip}% \scratchdimen\wd\scratchbox \ifcase\characteralignmentmode % do nothing \else\ifnum\characteralignmentmode<\plusthree \advance\scratchdimen \characterassignwidth \ifdim\scratchdimen>\beforeassignwidth\relax \edef\beforeassignwidth{\the\scratchdimen}% \fi \else \ifdim\scratchdimen>\afterassignwidth\relax \edef\afterassignwidth{\the\scratchdimen}% \fi \fi\fi \fi \pushcharacteralign}% \def\docheckalignment##1#1##2##3\relax {\ifx##2\relax \setbox\scratchbox\hbox{\ignorespaces##1\unskip}% \ifdim\wd\scratchbox>\afterassignwidth \edef\afterassignwidth{\the\wd\scratchbox}% \fi \else \docheckalignment##2##3\relax\relax \fi}} \def\setsecondpasscharacteralign {\popcharacteralign \expanded{\dosetsecondpasscharacteralign{\alignmentcharacter}}} \def\dosetsecondpasscharacteralign#1% {\def\checkalignment##1% {\popcharacteralign \let\\\empty % beware, no grouping \setbox\scratchbox\hbox{#1}% \edef\characterassignwidth{\the\wd\scratchbox}% \setbox\scratchbox\null % new 12,34 vs 10\\ where 10 aligns on 12 if #1 = , \ifcase\characteralignmentslot \docheckalignment##1#1\relax\relax \scratchdimen\wd\scratchbox \setbox\scratchbox\hbox{\ignorespaces##1\unskip}% \else \def\\{#1}% \expanded{\docheckalignment##1#1\relax\relax}% \scratchdimen\wd\scratchbox \setbox\scratchbox\hbox{\def\\{\hphantom{#1}}\ignorespaces##1\unskip}% \fi \noindent \ifdim\scratchdimen=\wd\scratchbox \ifcase\characteralignmentmode \box\scratchbox \else \hbox {\dontcomplain \hbox to \beforeassignwidth {\ifcase\characteralignmentmode\or \box\scratchbox\hss \or \hss\box\scratchbox\hskip\characterassignwidth \or \hss\rlap{\box\scratchbox}% \or \hss\rlap{\hbox to \afterassignwidth{\hss\box\scratchbox}}% \fi}% \hskip\afterassignwidth}% \fi \else \hbox {\hbox to \beforeassignwidth {\hss\box\scratchbox\hskip-\scratchdimen}% \hskip\afterassignwidth}% \fi}% \def\docheckalignment##1#1##2##3\relax {\ifx##2\relax \setbox\scratchbox\hbox{\ignorespaces##1\unskip}% \else \docheckalignment##2##3\relax\relax \fi}} % provide a means to use multiple alignments mixed \def\pushcharacteralign {\ifundefined{@cac@\alignmentclass}% \doglobal\appendetoks\noexpand\do{\alignmentclass}\to\@@characteralignlst \fi \setxvalue{@cac@\alignmentclass}{\noexpand\do {\afterassignwidth}{\beforeassignwidth}{\alignmentcharacter}}} \def\popcharacteralign {\def\do##1##2##3% {\def\afterassignwidth {##1}% \def\beforeassignwidth {##2}% \def\alignmentcharacter{##3}}% \executeifdefined{@cac@\alignmentclass}\donothing} \def\resetcharacteralign % does not work well nested {\def\do##1{\global\letbeundefined{@cac@##1}}% global ! \the\@@characteralignlst \global\@@characteralignlst\emptytoks} \long\def\startcharacteralign#1\stopcharacteralign {\bgroup \setfirstpasscharacteralign #1% \setsecondpasscharacteralign#1% \egroup} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/symb-mis.mkii0000644000175000017500000001204114536300610024711 0ustar hillehille%D \module %D [ file=symb-mis, %D version=2002.05.07, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Miscelaneous, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D We predefine some common symbols and conversions that will %D be understood by many commands. % \mathematics no longer needed, although only math fonts might have these \definesymbol [\v!none] [] \definesymbol [bullet] [\mathematics{\bullet}] \definesymbol [dash] [\mathematics{-}] \definesymbol [star] [\mathematics{\star}] \definesymbol [triangle] [\mathematics{\triangleright}] \definesymbol [circle] [\mathematics{\circ}] \definesymbol [square] [\mathematics{\square}] \definesymbol [diamond] [\mathematics{\diamond}] \definesymbol [smallcircle] [\hbox{\raise.1ex\hbox{\mathematics{\scriptscriptstyle\bigcirc}}}] \definesymbol [medcircle] [\hbox{\raise.1ex\hbox{\mathematics{\scriptstyle \bigcirc}}}] \definesymbol [bigcircle] [\mathematics{\bigcirc}] \definesymbol [1] [\symbol{bullet}] \definesymbol [2] [\symbol{dash}] \definesymbol [3] [\symbol{star}] \definesymbol [4] [\symbol{triangle}] \definesymbol [5] [\symbol{circle}] \definesymbol [6] [\symbol{medcircle}] \definesymbol [7] [\symbol{bigcircle}] \definesymbol [8] [\symbol{square}] %D Special hyperlinks, namely those to pages or navigational %D properties, are associated with symbols. \definesymbol [\v!firstpage] [\gotobegincharacter] \definesymbol [\v!previouspage] [\gobackwardcharacter] \definesymbol [\v!nextpage] [\goforwardcharacter] \definesymbol [\v!lastpage] [\gotoendcharacter] \definesymbol [\v!firstsubpage] [\gotobegincharacter] \definesymbol [\v!previoussubpage] [\gobackwardcharacter] \definesymbol [\v!nextsubpage] [\goforwardcharacter] \definesymbol [\v!lastsubpage] [\gotoendcharacter] \definesymbol [\v!PreviousJump] [\gobackjumpcharacter] \definesymbol [\v!NextJump] [\goforjumpcharacter] \definesymbol [\v!CloseDocument] [\closecharacter] \definesymbol [\v!first] [\symbol{\v!firstpage}] \definesymbol [\v!previous] [\symbol{\v!previouspage}] \definesymbol [\v!next] [\symbol{\v!nextpage}] \definesymbol [\v!last] [\symbol{\v!lastpage}] \definesymbol [\v!somewhere] [\gotosomewherecharacter] \definesymbol [\v!nowhere] [\gonowherecharacter] \definesymbol [\v!backward] [\symbol{\v!previouspage}] \definesymbol [\v!forward] [\symbol{\v!nextpage}] %D The next two symbols (\symbol[P] and \symbol[S]) are %D variations in their math counterparts. The following ones %D {\em do} scale. % todo : hook this into \textsection \definesymbol [S] [\getglyph{MathSymbol}{\char"78}] \definesymbol [P] [\getglyph{MathSymbol}{\char"7B}] %D These symbols are taken from the Computer Moders Roman %D symbol set or, when present, from the additional symbols of %D the American Mathematical Society. Of course one can use %D his or her own symbols by redefining them. \def\dogotocharacter#1#2#3% {\ifx#1\undefined#2\else#3\fi} \def\gotobegincharacter {\hbox {\dogotocharacter\blacktriangleleft {\setbox0\hbox{\mathematics{\triangleleft}}% \vrule\!!width.085ex\!!height1.075\ht0\!!depth\dp0 \kern-.11ex\box0} {\setbox0\hbox{\mathematics{\blacktriangleleft}}% \setbox2\hbox{\vrule\!!height\ht0\!!depth\dp0\!!width.25ex}% \hbox{\lower.03ex\box2\kern-.35ex\box0}}}} \def\gotoendcharacter {\hbox {\dogotocharacter\blacktriangleright {\setbox0\hbox{\mathematics{\triangleright}}% \copy0\kern-.11ex \vrule\!!width.085ex\!!height1.075\ht0\!!depth\dp0} {\setbox0\hbox{\mathematics{\blacktriangleright}}% \setbox2\hbox{\vrule\!!height\ht0\!!depth\dp0\!!width.25ex}% \hbox{\box0\kern-.35ex\lower.03ex\box2}}}} \def\gobackwardcharacter {\mathematics{\dogotocharacter\blacktriangleright\triangleleft\blacktriangleleft}} \def\goforwardcharacter {\mathematics{\dogotocharacter\blacktriangleright\triangleright\blacktriangleright}} \def\gonowherecharacter {\mathematics{\bullet}} \def\gotosomewherecharacter {{\hbox{\hsmash{\symbol[\v!previous]}\symbol[\v!next]}}} \unexpanded\def\closecharacter {\dogotocharacter\boxtimes {\ruledhbox{\mathematics{\times}}} {\mathematics{\boxtimes}}} \def\goforjumpcharacter {\hbox{\goforwardcharacter \kern-.5em\goforwardcharacter}} \def\gobackjumpcharacter {\hbox{\gobackwardcharacter\kern-.5em\gobackwardcharacter}} %D The next two symbols are for Daniel Flipo: \ifx\high \undefined \let\high \firstofoneargument \fi % todo \ifx\notsmallcapped\undefined \let\notsmallcapped\firstofoneargument \fi % todo \definesymbol [Numero] [N\high{\notsmallcapped{o}\kern.2em}] \definesymbol [numero] [n\high{\notsmallcapped{o}\kern.2em}] \def\Numero{\symbol[Numero]} \def\numero{\symbol[numero]} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mec.mkii0000644000175000017500000000307614536300610024666 0ustar hillehille% filtered from html files by Patrick Ion % % ISOAMSC Characters Extended % % Added Math Symbols: Delimiters \defineMMLentity dlcorn 231E {unknown} lower left corner \defineMMLentity drcorn 231F {unknown} lower right corner \defineMMLentity gtlPar E296 {unknown} double left parenthesis, greater \defineMMLentity langd E297 {unknown} left angle, dot \defineMMLentity lbrke E299 {unknown} left bracket, equal \defineMMLentity lbrksld E29D {unknown} left bracket, solidus bottom corner \defineMMLentity lbrkslu E29B {unknown} left bracket, solidus top corner \defineMMLentity lceil 2308 {\lceil} left ceiling \defineMMLentity lfloor 230A {\lfloor} left floor \defineMMLentity lmoust E294 {\lmoustache} left moustache \defineMMLentity lparlt E292 {unknown} left parenthesis, lt \defineMMLentity ltrPar E295 {unknown} double right parenthesis, less \defineMMLentity rangd E298 {unknown} right angle, dot \defineMMLentity rbrke E29A {unknown} right bracket, equal \defineMMLentity rbrksld E29C {unknown} right bracket, solidus bottom corner \defineMMLentity rbrkslu E29E {unknown} right bracket, solidus top corner \defineMMLentity rceil 2309 {\rceil} right ceiling \defineMMLentity rfloor 230B {\rfloor} right floor \defineMMLentity rmoust E293 {\rmoustache} right moustache \defineMMLentity rpargt E291 {unknown} right paren, gt \defineMMLentity ulcorn 231C {unknown} upper left corner \defineMMLentity urcorn 231D {unknown} upper right corner context-modules-20240428/texmf-dist/tex/context/base/mkii/colo-xwi.mkii0000644000175000017500000001741414536300610024723 0ustar hillehille%D \module %D [ file=colo-xwi, %D version=1995.01.01, %D title=\CONTEXT\ Color Macros, %D subtitle=X Windows, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D I've forgotten where I got these definitions from, but maybe %D they can be of use. Watch out, these colors are in the rgb %D color space, so cyan is not defined in cmyk! \definecolor [aliceblue] [r=0.94,g=0.97,b=1.00] \definecolor [antiquewhite] [r=0.98,g=0.92,b=0.84] \definecolor [aquamarine] [r=0.50,g=1.00,b=0.83] \definecolor [azure] [r=0.94,g=1.00,b=1.00] \definecolor [beige] [r=0.96,g=0.96,b=0.86] \definecolor [bisque] [r=1.00,g=0.89,b=0.77] \definecolor [black] [s=0] % [r=0.00,g=0.00,b=0.00] \definecolor [blanchedalmond] [r=1.00,g=0.92,b=0.80] \definecolor [blue] [r=0.00,g=0.00,b=1.00] \definecolor [blueviolet] [r=0.54,g=0.17,b=0.89] \definecolor [brown] [r=0.65,g=0.16,b=0.16] \definecolor [burlywood] [r=0.87,g=0.72,b=0.53] \definecolor [cadetblue] [r=0.37,g=0.62,b=0.63] \definecolor [chartreuse] [r=0.50,g=1.00,b=0.00] \definecolor [chocolate] [r=0.82,g=0.41,b=0.12] \definecolor [coral] [r=1.00,g=0.50,b=0.31] \definecolor [cornflowerblue] [r=0.39,g=0.58,b=0.93] \definecolor [cornsilk] [r=1.00,g=0.97,b=0.86] \definecolor [cyan] [r=0.00,g=1.00,b=1.00] \definecolor [darkgoldenrod] [r=0.72,g=0.53,b=0.04] \definecolor [darkgreen] [r=0.00,g=0.39,b=0.00] \definecolor [darkkhaki] [r=0.74,g=0.72,b=0.42] \definecolor [darkolivegreen] [r=0.33,g=0.42,b=0.18] \definecolor [darkorange] [r=1.00,g=0.55,b=0.00] \definecolor [darkorchid] [r=0.60,g=0.20,b=0.80] \definecolor [darksalmon] [r=0.91,g=0.59,b=0.48] \definecolor [darkseagreen] [r=0.56,g=0.74,b=0.56] \definecolor [darkslateblue] [r=0.28,g=0.24,b=0.55] \definecolor [darkturquoise] [r=0.00,g=0.81,b=0.82] \definecolor [darkviolet] [r=0.58,g=0.00,b=0.83] \definecolor [deeppink] [r=1.00,g=0.08,b=0.58] \definecolor [deepskyblue] [r=0.00,g=0.75,b=1.00] \definecolor [dodgerblue] [r=0.12,g=0.56,b=1.00] \definecolor [firebrick] [r=0.70,g=0.13,b=0.13] \definecolor [floralwhite] [r=1.00,g=0.98,b=0.94] \definecolor [forestgreen] [r=0.13,g=0.55,b=0.13] \definecolor [gainsboro] [r=0.86,g=0.86,b=0.86] \definecolor [ghostwhite] [r=0.97,g=0.97,b=1.00] \definecolor [gold] [r=1.00,g=0.84,b=0.00] \definecolor [goldenrod] [r=0.85,g=0.65,b=0.13] \definecolor [green] [r=0.00,g=1.00,b=0.00] \definecolor [greenyellow] [r=0.68,g=1.00,b=0.18] \definecolor [honeydew] [r=0.94,g=1.00,b=0.94] \definecolor [hotpink] [r=1.00,g=0.41,b=0.71] \definecolor [indianred] [r=0.80,g=0.36,b=0.36] \definecolor [ivory] [r=1.00,g=1.00,b=0.94] \definecolor [khaki] [r=0.94,g=0.90,b=0.55] \definecolor [lavender] [r=0.90,g=0.90,b=0.98] \definecolor [lavenderblush] [r=1.00,g=0.94,b=0.96] \definecolor [lawngreen] [r=0.49,g=0.99,b=0.00] \definecolor [lemonchiffon] [r=1.00,g=0.98,b=0.80] \definecolor [lightblue] [r=0.68,g=0.85,b=0.90] \definecolor [lightcoral] [r=0.94,g=0.50,b=0.50] \definecolor [lightcyan] [r=0.88,g=1.00,b=1.00] \definecolor [lightgoldenrod] [r=0.93,g=0.87,b=0.51] \definecolor [lightgoldenrodyellow] [r=0.98,g=0.98,b=0.82] \definecolor [lightpink] [r=1.00,g=0.71,b=0.76] \definecolor [lightsalmon] [r=1.00,g=0.63,b=0.48] \definecolor [lightseagreen] [r=0.13,g=0.70,b=0.67] \definecolor [lightskyblue] [r=0.53,g=0.81,b=0.98] \definecolor [lightslateblue] [r=0.52,g=0.44,b=1.00] \definecolor [lightsteelblue] [r=0.69,g=0.77,b=0.87] \definecolor [lightyellow] [r=1.00,g=1.00,b=0.88] \definecolor [limegreen] [r=0.20,g=0.80,b=0.20] \definecolor [linen] [r=0.98,g=0.94,b=0.90] \definecolor [magenta] [r=1.00,g=0.00,b=1.00] \definecolor [maroon] [r=0.69,g=0.19,b=0.38] \definecolor [mediumaquamarine] [r=0.40,g=0.80,b=0.67] \definecolor [mediumblue] [r=0.00,g=0.00,b=0.80] \definecolor [mediumorchid] [r=0.73,g=0.33,b=0.83] \definecolor [mediumpurple] [r=0.58,g=0.44,b=0.86] \definecolor [mediumseagreen] [r=0.24,g=0.70,b=0.44] \definecolor [mediumslateblue] [r=0.48,g=0.41,b=0.93] \definecolor [mediumspringgreen] [r=0.00,g=0.98,b=0.60] \definecolor [mediumturquoise] [r=0.28,g=0.82,b=0.80] \definecolor [mediumvioletred] [r=0.78,g=0.08,b=0.52] \definecolor [midnightblue] [r=0.10,g=0.10,b=0.44] \definecolor [mintcream] [r=0.96,g=1.00,b=0.98] \definecolor [mistyrose] [r=1.00,g=0.89,b=0.88] \definecolor [moccasin] [r=1.00,g=0.89,b=0.71] \definecolor [navajowhite] [r=1.00,g=0.87,b=0.68] \definecolor [navy] [r=0.00,g=0.00,b=0.50] \definecolor [navyblue] [r=0.00,g=0.00,b=0.50] \definecolor [oldlace] [r=0.99,g=0.96,b=0.90] \definecolor [olivedrab] [r=0.42,g=0.56,b=0.14] \definecolor [orange] [r=1.00,g=0.65,b=0.00] \definecolor [orangered] [r=1.00,g=0.27,b=0.00] \definecolor [orchid] [r=0.85,g=0.44,b=0.84] \definecolor [palegoldenrod] [r=0.93,g=0.91,b=0.67] \definecolor [palegreen] [r=0.60,g=0.98,b=0.60] \definecolor [paleturquoise] [r=0.69,g=0.93,b=0.93] \definecolor [palevioletred] [r=0.86,g=0.44,b=0.58] \definecolor [papayawhip] [r=1.00,g=0.94,b=0.84] \definecolor [peachpuff] [r=1.00,g=0.85,b=0.73] \definecolor [peru] [r=0.80,g=0.52,b=0.25] \definecolor [pink] [r=1.00,g=0.75,b=0.80] \definecolor [plum] [r=0.87,g=0.63,b=0.87] \definecolor [powderblue] [r=0.69,g=0.88,b=0.90] \definecolor [purple] [r=0.63,g=0.13,b=0.94] \definecolor [red ] [r=1.00,g=0.00,b=0.00] \definecolor [rosybrown] [r=0.74,g=0.56,b=0.56] \definecolor [royalblue] [r=0.25,g=0.41,b=0.88] \definecolor [saddlebrown] [r=0.55,g=0.27,b=0.07] \definecolor [salmon] [r=0.98,g=0.50,b=0.45] \definecolor [sandybrown] [r=0.96,g=0.64,b=0.38] \definecolor [seagreen] [r=0.18,g=0.55,b=0.34] \definecolor [seashell] [r=1.00,g=0.96,b=0.93] \definecolor [sienna] [r=0.63,g=0.32,b=0.18] \definecolor [skyblue] [r=0.53,g=0.81,b=0.92] \definecolor [slateblue] [r=0.42,g=0.35,b=0.80] \definecolor [snow] [r=1.00,g=0.98,b=0.98] \definecolor [springgreen] [r=0.00,g=1.00,b=0.50] \definecolor [steelblue] [r=0.27,g=0.51,b=0.71] \definecolor [tancolor] [r=0.82,g=0.71,b=0.55] % we don't want it to clash \definecolor [thistle] [r=0.85,g=0.75,b=0.85] \definecolor [tomato] [r=1.00,g=0.39,b=0.28] \definecolor [turquoise] [r=0.25,g=0.88,b=0.82] \definecolor [violet] [r=0.93,g=0.51,b=0.93] \definecolor [violetred] [r=0.82,g=0.13,b=0.56] \definecolor [wheat] [r=0.96,g=0.87,b=0.70] \definecolor [white] [r=1.00,g=1.00,b=1.00] \definecolor [whitesmoke] [s=0.96] % [r=0.96,g=0.96,b=0.96] \definecolor [yellow] [r=1.00,g=1.00,b=0.00] \definecolor [yellowgreen] [r=0.60,g=0.80,b=0.20] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-box.mkii0000644000175000017500000025700214536300610024736 0ustar hillehille%D \module %D [ file=supp-box, %D version=1995.10.10, %D title=\CONTEXT\ Support Macros, %D subtitle=Boxes, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module implements some box manipulation macros. Some %D are quite simple, some are more advanced and when understood %D well, all can be of use. %D No longer generic, why bother. \writestatus{loading}{ConTeXt Support Macros / Boxes} \unprotect %D \macros %D {strutdp,strutht,strutwd} %D %D The next shortcuts save memory and keying. The width is %D normally zero points (if not, you're in trouble). These %D shortcuts can be used like a dimension, opposite to the %D core macros \type {\strutdepth} and alike, which are %D values. \def\strutdp{\dp\strutbox} \def\strutht{\ht\strutbox} \def\strutwd{\wd\strutbox} %D \macros %D {resetbox, emptybox} %D %D Let's start with an easy one. The next macro hides the %D ugly \type {@} in \type {\voidb@x}. \ifx\voidbox\undefined \newbox\voidbox \fi \ifx\voidb@x\undefined \let\voidb@x\voidbox \fi \def\emptybox {\box \voidbox} \def\unvoidbox {\unhbox\voidbox} \def\resetbox#1{\setbox#1\box\voidbox} %D \macros %D {nextdepth} %D %D Let's start with a rather simple declaration. Sometimes we %D need to save the \TEX\ \DIMENSION\ \type{\prevdepth} and %D append it later on. The name \type{\nextdepth} suits %D this purpose well. \newdimen\nextdepth %D \macros %D {smashbox, smashedbox} %D %D Smashing is introduced in \PLAIN\ \TEX, and stands for %D reducing the dimensions of a box to zero. The most resolute %D one is presented first. \def\smashbox#1% {\wd#1\zeropoint \ht#1\zeropoint \dp#1\zeropoint} \def\smashboxed#1% {\smashbox{#1}% \box#1\relax} %D \macros %D {hsmashbox,vsmashbox} %D %D Smashing can be used for overlaying boxes. Depending on %D the mode, horizontal or vertical, one can use: \def\hsmashbox#1% {\wd#1\zeropoint} \def\vsmashbox#1% {\ht#1\zeropoint \dp#1\zeropoint} %D The next implementation is less sensitive for spurious %D spaces. \newcount\registercount \def\smashbox {\afterassignment\dosmashbox\registercount} \def\dosmashbox {\wd\registercount\zeropoint \ht\registercount\zeropoint \dp\registercount\zeropoint} \def\smashedbox {\afterassignment\thesmashedbox\registercount} \def\thesmashedbox {\dosmashbox \box\registercount} \def\hsmashbox {\afterassignment\dohsmashbox\registercount} \def\dohsmashbox {\wd\registercount\zeropoint} \def\vsmashbox {\afterassignment\dovsmashbox\registercount} \def\dovsmashbox {\ht\registercount\zeropoint \dp\registercount\zeropoint} %D \macros %D {hsmash,vsmash, %D hsmashed,vsmashed} %D %D While the previous macros expected a \BOX, the next act on a %D content. They are some subtle differences betreen the smash %D and smashed alternatives. The later ones reduce all %D dimensions to zero. % Ok, but inefficient and/or catcode unsafe: % % \def\hsmash #1{\bgroup\setbox0=\normalhbox{#1}\hsmashbox0\box0\egroup} % \def\vsmash #1{\bgroup\setbox0=\normalvbox{#1}\vsmashbox0\box0\egroup} % \def\hsmashed#1{\bgroup\setbox0=\normalhbox{#1}\smashbox 0\box0\egroup} % \def\vsmashed#1{\bgroup\setbox0=\normalvbox{#1}\smashbox 0\box0\egroup} % % Better, but a waste of tokens: % % \def\hsmash {\bgroup\dowithnextbox{\hsmashbox\nextbox\flushnextbox\egroup}\normalhbox} % \def\vsmash {\bgroup\dowithnextbox{\vsmashbox\nextbox\flushnextbox\nextbox\egroup}\normalvbox} % \def\hsmashed{\bgroup\dowithnextbox{\smashbox \nextbox\flushnextbox\nextbox\egroup}\normalhbox} % \def\vsmashed{\bgroup\dowithnextbox{\smashbox \nextbox\flushnextbox\nextbox\egroup}\normalvbox} % % The best: \def\dosomesmash#1% (begin|end)group ipv (b|e)group ? {\bgroup\dowithnextbox{#1\nextbox\flushnextbox\egroup}} \def\hsmash {\dosomesmash\hsmashbox\normalhbox} \def\vsmash {\dosomesmash\vsmashbox\normalvbox} \def\hsmashed{\dosomesmash\smashbox \normalhbox} \def\vsmashed{\dosomesmash\smashbox \normalvbox} %D \macros %D {smashedhbox,smashedvbox} %D %D Also handy (all dimensions zeroed): %D %D \starttyping %D \smashedhbox to ... {...} %D \smashedvbox to ... {...} %D \stoptyping \def\dosmashedbox#1% %{#1\bgroup\dowithnextbox{\smashbox\nextbox\flushnextbox\egroup}#1} {#1\bgroup\dowithnextbox{\smashedbox\nextbox\egroup}#1} \def\smashedhbox{\dosmashedbox\hbox} \def\smashedvbox{\dosmashedbox\vbox} %D \macros %D {smash} %D %D This smash alternative takes an optional arg [whdtb] as %D well as is potentially catcode safer. It is needed by the %D math module (although the \type {\leavevmode} is not added %D here). \def\smash {\futurelet\nexttoken\dosmash} \def\dosmash {\ifx\nexttoken[\@EA\dodosmash\else\@EA\donosmash\fi} \def\donosmash {\dodosmash[hd]} \def\dodosmash[#1]% {\edef\@@smash{#1}\futurelet\nexttoken\dododosmash} \def\dododosmash % if needed we can avoid the \next {\ifmmode \def\next##1{\mathpalette\mathsm@sh{##1}}% \else\ifx\nexttoken\bgroup \let\next\finsm@sh \else \def\next##1{\finsm@sh{##1}}% \fi\fi \next} \def\mathsm@sh#1#2% redefined plain macro {\finsm@sh{$\mathsurround\zeropoint#1{#2}$}} \def\makesm@sh#1% redefined plain macro (handles t b h d w) {\if#1w\nextboxwd\zeropoint\else \if#1h\nextboxht\zeropoint\else \if#1d\nextboxdp\zeropoint\else \if#1t\nextboxht\zeropoint\else \if#1b\nextboxdp\zeropoint\fi\fi\fi\fi\fi} \def\finsm@sh % redefined plain macro {\dowithnextbox{\@EA\handletokens\@@smash\with\makesm@sh\flushnextbox}\normalhbox} %D \starttabulate[|l|l|] %D \NC w \NC \ruledhbox{\smash [w]{This is some great smashing, isn't it?}} \NC \NR %D \NC h \NC \ruledhbox{\smash [h]{This is some great smashing, isn't it?}} \NC \NR %D \NC d \NC \ruledhbox{\smash [d]{This is some great smashing, isn't it?}} \NC \NR %D \NC tb \NC \ruledhbox{\smash [tb]{This is some great smashing, isn't it?}} \NC \NR %D \NC whd \NC \ruledhbox{\smash[whd]{This is some great smashing, isn't it?}} \NC \NR %D \stoptabulate %D \macros %D {phantom, hphantom, vphantom, mathstrut} %D %D The next implementation of \type {\phantom} cum suis does %D not grab an argument in the non||math case, which is better. \unexpanded\def\phantom {\ph@nt\nextbox\nextbox\nextbox} \unexpanded\def\vphantom{\ph@nt\nextbox\nextbox\voidbox} \unexpanded\def\hphantom{\ph@nt\voidbox\voidbox\nextbox} %D Due to a complicated call to \type {\mathpallete} and %D thereby \type {\mathchoice}, the next macro looks ugly. %D We also take care of non||braced arguments. \def\ph@nt#1#2#3% {\def\doph@nt {\ifmmode \def\mathph@nt####1####2{\makeph@nt#1#2#3{$\mathsurround\zeropoint####1{####2}$}}% \def\nextph@nt{\mathpalette\mathph@nt}% \else\ifx\nextph@nt\bgroup \def\nextph@nt{\makeph@nt#1#2#3}% \else \def\nextph@nt####1{\makeph@nt#1#2#3{####1}}% \fi\fi \nextph@nt}% \futurelet\nextph@nt\doph@nt} \def\makeph@nt#1#2#3% {\begingroup \dowithnextbox {\setbox\scratchbox\null \ht\scratchbox\ht#1% \dp\scratchbox\dp#2% \wd\scratchbox\wd#3% \box\scratchbox \endgroup} \normalhbox} \let\finph@nt\undefined %D We also define plain's \type {\mathstrut}. \unexpanded\def\mathstrut{\vphantom{(}} %D \macros %D {getboxheight} %D %D Although often needed, \TEX\ does not support arithmics %D like: %D %D \starttyping %D \dimen0 = \ht0 + \dp0 %D \stoptyping %D %D so we implemented: %D %D \starttyping %D \getboxheight ... \of \box... %D \stoptyping %D %D For instance, %D %D \starttyping %D \getboxheight \dimen0 \of \box0 %D \getboxheight \someheight \of \box \tempbox %D \stoptyping %D %D The implementation is rather stupid: %D %D \starttyping %D \def\getboxheight#1\of#2\box#3% %D {#1\ht#3\advance#1\dp#3\relax} %D \stoptyping %D %D The next alternative is slightly more clever, since %D it accepts \type {{12}} as well as \type {12} as box %D number. \def\getboxheight#1\of#2\box#3% {\def\next{#1\dimexpr\ht\registercount+\dp\registercount\relax}% \afterassignment\next\registercount=#3} %D For a long time the following three macros were part of %D the grid snapping core module, but it makes more sense to %D have them here so that users can see them. %D %D \macros %D {getnoflines, getroundednoflines, getrawnoflines} %D %D Het commando \type{\getnoflines} converteert een hoogte %D (dimensie) in een aantal regels en kent dit toe aan %D \type{\noflines}. %D %D \starttyping %D \getnoflines{dimensie} %D \stoptyping %D %D Er wordt gedeeld door \type{\openlineheight} en een hoogte %D van~0pt komt overeen met 0~regels. The raw alternative %D does not round. %D For a long time we had: %D %D \starttyping %D \newcount\noflines %D \newdimen\noflinesheight %D %D \def\dogetnoflines#1#2% %D {\noflinesheight#2\relax %D \ifzeropt\noflinesheight % \ifdim\noflinesheight=\zeropoint %D \noflines\zerocount %D \else %D \divide\noflinesheight \openlineheight %D \noflines\noflinesheight %D #1\ifdim\noflines\openlineheight=#2\relax \else %D \advance\noflines\ifdim#2>\zeropoint\plusone\else\minusone\fi %D \fi\fi %D \fi} %D %D \def\getnoflines {\dogetnoflines\iftrue } % compensated %D \def\getrawnoflines{\dogetnoflines\iffalse} % no compensation %D \stoptyping %D %D A more recent variant is: \ifx\roundingeps\undefined \newdimen\roundingeps \roundingeps=10sp \fi \newcount\noflines \newdimen\noflinesheight % \def\getnoflines {\xdogetnoflines\plusone } % compensated % \def\getroundednoflines{\xdogetnoflines\plustwo } % rounded % \def\getrawnoflines {\xdogetnoflines\plusthree} % truncated % % \def\xdogetnoflines#1#2% % {\noflinesheight#2\relax % \ifzeropt\noflinesheight % \noflines\zerocount % \else\ifdim\noflinesheight>\zeropoint % \ifcase#1\or % \advance\noflinesheight-\roundingeps % \divide\noflinesheight\openlineheight % \noflines\noflinesheight % \advance\noflines\plusone % \or % \advance\noflinesheight\roundingeps % \divide\noflinesheight\openlineheight % \noflines\noflinesheight % \or % \advance\noflinesheight\roundingeps % \advance\noflinesheight.5\openlineheight % \divide\noflinesheight\openlineheight % \noflines\noflinesheight % \fi % \else % \ifcase#1\or % \advance\noflinesheight\roundingeps % \divide\noflinesheight\openlineheight % \noflines\noflinesheight % \advance\noflines\minusone % \or % \advance\noflinesheight-\roundingeps % \divide\noflinesheight\openlineheight % \noflines\noflinesheight % \or % \advance\noflinesheight-\roundingeps % \advance\noflinesheight-.5\openlineheight % \divide\noflinesheight\openlineheight % \noflines\noflinesheight % \fi % \fi\fi} \def\getnoflines#1% {\noflinesheight#1\relax \ifzeropt\noflinesheight \noflines\zerocount \else\ifdim\noflinesheight>\zeropoint \advance\noflinesheight-\roundingeps \divide\noflinesheight\openlineheight \noflines\noflinesheight \advance\noflines\plusone \else \advance\noflinesheight\roundingeps \divide\noflinesheight\openlineheight \noflines\noflinesheight \advance\noflines\minusone \fi\fi} \def\getroundednoflines#1% {\noflinesheight#1\relax \ifzeropt\noflinesheight \noflines\zerocount \else\ifdim\noflinesheight>\zeropoint \advance\noflinesheight\roundingeps \divide\noflinesheight\openlineheight \noflines\noflinesheight \else \advance\noflinesheight-\roundingeps \divide\noflinesheight\openlineheight \noflines\noflinesheight \fi\fi} \def\getrawnoflines#1% {\noflinesheight#1\relax \ifzeropt\noflinesheight \noflines\zerocount \else\ifdim\noflinesheight>\zeropoint \advance\noflinesheight\roundingeps \advance\noflinesheight.5\openlineheight \divide\noflinesheight\openlineheight \noflines\noflinesheight \else \advance\noflinesheight-\roundingeps \advance\noflinesheight-.5\openlineheight \divide\noflinesheight\openlineheight \noflines\noflinesheight \fi\fi} %D Let's proof that it works: %D %D \startbuffer %D \scratchdimen\dimexpr(3pt) \getnoflines\scratchdimen 1=\the\noflines \endgraf %D \scratchdimen\dimexpr(10\lineheight) \getnoflines\scratchdimen 10=\the\noflines \endgraf %D \scratchdimen\dimexpr(10.1\lineheight) \getnoflines\scratchdimen 11=\the\noflines \endgraf %D \scratchdimen\dimexpr(10.5\lineheight) \getnoflines\scratchdimen 11=\the\noflines \endgraf %D \scratchdimen\dimexpr(10.9\lineheight) \getnoflines\scratchdimen 11=\the\noflines \endgraf %D \scratchdimen\dimexpr(10\lineheight+3pt) \getnoflines\scratchdimen 11=\the\noflines \endgraf %D \scratchdimen\dimexpr(10\lineheight+3sp) \getnoflines\scratchdimen 10=\the\noflines \endgraf %D \scratchdimen\dimexpr(10\lineheight-3sp) \getnoflines\scratchdimen 10=\the\noflines \endgraf %D %D \scratchdimen\dimexpr(3pt) \getrawnoflines\scratchdimen 0=\the\noflines \endgraf %D \scratchdimen\dimexpr(10\lineheight) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf %D \scratchdimen\dimexpr(10.1\lineheight) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf %D \scratchdimen\dimexpr(10.5\lineheight) \getrawnoflines\scratchdimen 11=\the\noflines \endgraf %D \scratchdimen\dimexpr(10.9\lineheight) \getrawnoflines\scratchdimen 11=\the\noflines \endgraf %D \scratchdimen\dimexpr(10\lineheight+3pt) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf %D \scratchdimen\dimexpr(10\lineheight+3sp) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf %D \scratchdimen\dimexpr(10\lineheight-3sp) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf %D \stopbuffer %D %D \typebuffer \getbuffer %D \macros %D {determinenoflines} %D %D The next macro determines the number of lines and %D returns it it \type {\noflines}. The macro works %D reasonable well as long as the content can be unboxed. %D %D \starttyping %D \determinenoflines{test\\test} %D \determinenoflines{\bfd test\\test} %D \determinenoflines{\definedfont[Sans at 40pt]test\\test} %D \stoptyping \def\determinenoflines % can be mkiv'd {\bgroup \forgetall \let\crlf\endgraf \let\\\endgraf \dowithnextbox {\beginofshapebox \unvbox\nextbox \endofshapebox % \global\count1\zerocount % \reshapebox{\global\advance\count1\plusone}% % \egroup\noflines\count1 }% \scratchcounter\zerocount \reshapebox{\global\advance\scratchcounter\plusone}% \expandafter\egroup\expandafter\noflines\the\scratchcounter\relax }\vbox} %D \macros %D {doiftextelse, doiftext} %D %D When \type {\doifelse} cum suis hopelessly fail, for %D instance because we pass data, we can fall back on the next %D macro: %D %D \starttyping %D \doiftextelse {data} {then branch} {else branch} %D \doiftext {data} {then branch} %D \stoptyping \newif\iftrialtypesetting \def\doiftextelse#1% {\bgroup \setbox\scratchbox\normalhbox {\trialtypesettingtrue \ignorespaces#1\removeunwantedspaces}% \ifzeropt\wd\scratchbox \egroup\@EA\secondoftwoarguments \else \egroup\@EA\firstoftwoarguments \fi} \def\doiftext#1#2% {\doiftextelse{#1}{#2}\donothing} %D \macros %D {dowithnextbox,nextbox} %D %D Sometimes we want a macro to grab a box and do something %D on the content. One could pass an argument to a box, but %D this can violate the specific \CATCODES\ of its content and %D leads to unexpected results. The next macro treats the %D following braced text as the content of a box and %D manipulates it afterwards in a predefined way. %D %D The first argument specifies what to do with the content. %D This content is available in \type{\nextbox}. The second %D argument is one of \type{\hbox}, \type{\vbox} or %D \type{\vtop}. The third argument must be grouped with %D \type{\bgroup} and \type{\egroup}, \type{{...}} or can be %D a \type{\box} specification. %D %D In \CONTEXT\ this macro is used for picking up a box and %D treating it according to earlier specifications. We use for %D instance something like: %D %D \starttyping %D \def\getfloat% %D {\def\handlefloat{...\flushnextbox...} %D \dowithnextbox\handlefloat\normalvbox} %D \stoptyping %D %D instead of: %D %D \starttyping %D \def\getfloat#1% %D {...#1...} %D \stoptyping %D %D In this implementation the \type{\aftergroup} construction %D is needed because \type{\afterassignment} is executed inside %D the box. \ifx\nextbox\undefined \newbox\nextbox \fi \long\def\dowithnextbox#1% {\long\def\dodowithnextbox{#1}% \afterassignment\dododowithnextbox \setbox\nextbox} \def\dododowithnextbox {\aftergroup\dodowithnextbox} \long\def\dowithnextboxcs#1% {\let\dodowithnextbox#1% \afterassignment\dododowithnextbox \setbox\nextbox} \def\dododowithnextbox {\aftergroup\dodowithnextbox} %D So in fact we get: %D %D \starttyping %D \setbox\nextbox { \aftergroup\dodowithnextbox ... } %D \stoptyping %D %D or %D %D \starttyping %D \setbox\nextbox { ... } \dodowithnextbox %D \stoptyping %D %D A slower but more versatile implementation is: %D %D \starttyping %D \long\def\dowithnextbox#1#2% %D {\long\def\dodowithnextbox{#1}% %D \ifx#2\normalhbox %D \afterassignment\dododowithnextbox %D \else\ifx#2\normalvbox %D \afterassignment\dododowithnextbox %D \else\ifx#2\normalvtop %D \afterassignment\dododowithnextbox %D \else\ifx#2\normalvcenter %D \afterassignment\dododowithnextbox %D \else %D \afterassignment\dodowithnextbox %D \fi\fi\fi\fi %D \setbox\nextbox#2} %D \stoptyping %D %D This alternative also accepts \type{\box0} and alike, but %D we don't really need this functionality now. %D \macros %D {nextboxht,nextboxwd,nextboxdp,flushnextbox} %D %D The next couple of shortcuts saves us memory as well as %D \type {{}}'s in passing parameters. \def\nextboxht{\ht\nextbox} \def\nextboxwd{\wd\nextbox} \def\nextboxdp{\dp\nextbox} \def\flushnextbox{\box\nextbox} %D \macros %D {dowithnextboxcontent} %D %D But, occasionally we do need to pass some local settings %D without wanting to use additional grouping. Therefore we %D provide: %D %D \starttyping %D \dowithnextboxcontent{inside}{after}{box content} %D \stoptyping %D %D {\em todo: Search source for potential usage!} \long\def\dowithnextboxcontent#1#2% inside, after {\long\def\dodowithnextbox{#2}% \def\dododowithnextbox{#1\aftergroup\dodowithnextbox}% \afterassignment\dododowithnextbox \setbox\nextbox} %D Now we can redefine \type {\dowithnextbox} as follows: %D %D \starttyping %D \def\dowithnextbox{\dowithnextboxcontent\empty} %D \stoptyping %D %D But since this macro is used often and since this implementation %D is slower, we will not use that definition. % maybe: % % depending on the size of the action, about 10% faster % % \newtoks\nextboxtoks % % \def\dowithnextbox {\afterassignment\redowithnextbox\nextboxtoks} % \def\redowithnextbox {\afterassignment\dododowithnextbox\setbox\nextbox} % \def\dododowithnextbox{\aftergroup\dodowithnextbox} % \def\dodowithnextbox {\the\nextboxtoks} % % \long\def\dowithnextboxcontent#1% #2% inside, after % {\def\dododowithnextbox{#1\aftergroup\dodowithnextbox}% % \afterassignment\redowithnextboxcontent\nextboxtoks} % % \def\redowithnextboxcontent % {\afterassignment\dododowithnextbox\setbox\nextbox} %D \macros %D {llap, rlap, tlap, blap, clap} %D %D Some well known friends, but we implement them our own %D way. We want the macros to work in both math and text mode. \def\dodorlap{\normalhbox to \zeropoint{\flushnextbox\normalhss}\endgroup} \def\dodollap{\normalhbox to \zeropoint{\normalhss\flushnextbox}\endgroup} \def\dodoclap{\normalhbox to \zeropoint{\normalhss\flushnextbox\normalhss}\endgroup} \def\dorlap{\begingroup\dowithnextboxcs\dodorlap\normalhbox} \def\dollap{\begingroup\dowithnextboxcs\dodollap\normalhbox} \def\doclap{\begingroup\dowithnextboxcs\dodoclap\normalhbox} \def\domathclap{\mathpalette\dodomathclap} \def\dodomathclap#1#2{\doclap{$\mathsurround\zeropoint#1#2$}} \def\domathllap{\mathpalette\dodomathllap} \def\dodomathllap#1#2{\dollap{$\mathsurround\zeropoint#1#2$}} \def\domathrlap{\mathpalette\dodomathrlap} \def\dodomathrlap#1#2{\dorlap{$\mathsurround\zeropoint#1#2$}} \unexpanded\def\rlap{\mathortext\domathrlap\dorlap} \unexpanded\def\llap{\mathortext\domathllap\dollap} \unexpanded\def\clap{\mathortext\domathclap\doclap} \def\dodotlap{\normalvbox to \zeropoint{\normalvss\flushnextbox}\endgroup} \def\dodoblap{\normalvbox to \zeropoint{\flushnextbox\normalvss}\endgroup} \def\tlap{\begingroup\dowithnextboxcs\dodotlap\normalvbox} \def\blap{\begingroup\dowithnextboxcs\dodoblap\normalvbox} %D \macros %D {beginofshapebox, %D reshapebox, doreshapebox, %D flushshapebox, %D innerflushshapebox, %D shapebox, %D ifreshapingbox} %D %D The next utility macro originates from some linenumbering %D mechanism. Due to \TEX's advanced way of typesetting %D paragraphs, it's not easy to do things on a line||by||line %D basis. This macro is able to reprocess a given box and can %D act upon its vertical boxed components, such as lines. The %D unwinding sequence in this macro is inspired by a \NTG\ %D workshop of David Salomon in June 1992. %D %D First we have to grab the piece of text we want to act %D upon. This is done by means of the duo macros: %D %D \starttyping %D \beginofshapebox %D a piece of text %D \endofshapebox %D \stoptyping %D %D When all texts is collected, we can call \type{\reshapebox} %D and do something with it's vertical components. We can make %D as much passes as needed. When we're done, the box can be %D unloaded with \type{\flushshapebox}. The only condition in %D this scheme is that \type{\reshapebox} must somehow unload %D the \BOX\ \type{\shapebox}. %D %D An important aspect is that the content is unrolled %D bottom||up. The next example illustrates this maybe %D unexpected characteristic. %D %D \startbuffer %D \beginofshapebox %D \em \input tufte %D \endofshapebox %D %D \newcounter\LineNumber %D %D \reshapebox %D {\doglobal\increment\LineNumber %D \normalhbox{\llap{\LineNumber\hskip2em}\box\shapebox}} %D %D \flushshapebox %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D As we can see, when some kind of numbering is done, we have %D to add a second pass. %D %D \startbuffer %D \newcounter\LineNumber %D \newcounter\NumberOfLines %D %D \reshapebox %D {\doglobal\increment\NumberOfLines %D \box\shapebox} %D %D \reshapebox %D {\doglobal\increment\LineNumber %D \normalhbox %D {\llap{\LineNumber\ (\NumberOfLines)\hskip2em}% %D \box\shapebox}% %D \doglobal\decrement\NumberOfLines} %D %D \flushshapebox %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D This example shows that the content of the box is still %D available after flushing. Another feature is that only the %D last reshaping counts. Multiple reshaping can be done by: %D %D \startbuffer %D \beginofshapebox %D \flushshapebox %D \endofshapebox %D %D \reshapebox %D {\doglobal\increment\LineNumber %D \normalhbox{\llap{$\star$\hskip1em}\box\shapebox}% %D \doglobal\decrement\NumberOfLines} %D %D \flushshapebox %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D The macros are surprisingly easy to follow and in fact %D introduce no new concepts. Nearly all books on \TEX\ show %D similar solutions for unwinding \BOXES. %D %D Some macros, like footnote ones, can be sensitive for %D reshaping, which can result in an endless loop. We %D therefore offer: %D %D \starttyping %D \ifreshapingbox %D \stoptyping %D %D Some \CONTEXT\ commands are protected this way. Anyhow, %D reshaping is aborted after 100 dead cycles. %D %D By the way, changing the height and depth of \BOX\ %D \type{\shapebox} results in bad spacing. This means that %D for instance linenumbers etc. should be given zero height %D and depth before being lapped into the margin. The %D previous examples ignore this side effect, but beware! \newif \ifsomeshapeleft \newif \ifreshapingbox \newbox \shapebox \newcount \shapepenalty \newdimen \shapekern \newskip \shapeskip \newbox \newshapebox \newbox \oldshapebox \newcount \shapecounter \newevery \everyshapebox \relax \def\shapesignal{.12345678pt} % or 12345sp % todo: in etex lastnode \def\reshapebox#1% {\doreshapebox {#1}% {\penalty\shapepenalty}% {\kern \shapekern }% {\vskip \shapeskip }} \newbox\tmpshapebox \newif\ifreshapingfailed % may save redundant runs \def\doreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip {\global\reshapingfailedfalse \ifzeropt\ht\oldshapebox % \ifdim\ht\oldshapebox=\zeropoint \setbox\newshapebox\normalvbox{}% \else \setbox\newshapebox\normalvbox {\unvcopy\oldshapebox \resetbox\newshapebox \shapecounter\zerocount \doloop{\dodoreshapebox{#1}{#2}{#3}{#4}}}% \setbox\newshapebox\box\tmpshapebox \fi} \ifx\originalshapebox\undefined \let\originalshapebox\oldshapebox \fi % %D The old traditional tex variant: % % \def\insertshapesignal % {\normalhbox to \shapesignal{\strut\hss}% plus \strut % \prevdepth\strutdp} % never \nointerlineskip % % \def\restoreshapebox % compensates for the signal % {\global\setbox\tmpshapebox\vbox{\vskip-\lineheight\unvcopy\oldshapebox}} % % \def\shapeboxstrut % put this in front if needed ! % {\vrule\!!width\zeropoint\!!height\ht\shapebox\!!depth\dp\shapebox} % % \def\dodoreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip % {\ifzeropt\lastskip % \ifdim\lastskip=\zeropoint\relax % \ifzeropt\lastkern % \ifdim\lastkern=\zeropoint\relax % \ifcase\lastpenalty % \ifnum\lastpenalty=\zerocount % \setbox\shapebox\lastbox % \ifvoid\shapebox % \unskip\unpenalty\unkern % \else % \ifdim\wd\shapebox=\shapesignal\relax % \exitloop % \else % \shapecounter\zerocount % \global\setbox\tmpshapebox\normalvbox{#1\unvbox\tmpshapebox}% % \fi % \fi % \else % \shapepenalty\lastpenalty % \global\setbox\tmpshapebox\normalvbox{#2\unvbox\tmpshapebox}% % \unpenalty % \fi % \else % \shapekern\lastkern % \global\setbox\tmpshapebox\normalvbox{#3\unvbox\tmpshapebox}% % \unkern % \fi % \else % \shapeskip\lastskip % \global\setbox\tmpshapebox\normalvbox{#4\unvbox\tmpshapebox}% % \unskip % \fi % \ifnum\shapecounter>100 % can be less % \global\reshapingfailedtrue % \message{!!forced exit from shapebox!!}% % \restoreshapebox % \exitloop % \else % \advance\shapecounter \plusone % \fi} % % But now that the lastnode bugfixes are wide spread we can use: % % We will turn this into a \MKIV\ variant. \def\insertshapesignal {\normalhbox to \shapesignal{\strut\hss}% plus \strut \prevdepth\strutdp} % never \nointerlineskip \def\restoreshapebox % compensates for the signal {\global\setbox\tmpshapebox\vbox{\vskip-\lineheight\unvcopy\oldshapebox}} \def\dodoreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip {\ifnum\lastnodetype=\@@gluenode \shapeskip\lastskip \global\setbox\tmpshapebox\normalvbox{#4\unvbox\tmpshapebox}% \unskip \else\ifnum\lastnodetype=\@@kernnode \shapekern\lastkern \global\setbox\tmpshapebox\normalvbox{#3\unvbox\tmpshapebox}% \unkern \else\ifnum\lastnodetype=\@@penaltynode \shapepenalty\lastpenalty \global\setbox\tmpshapebox\normalvbox{#2\unvbox\tmpshapebox}% \unpenalty \else\ifnum\lastnodetype<\zeropoint \exitloop \else \setbox\shapebox\lastbox \ifvoid\shapebox \else\ifdim\wd\shapebox=\shapesignal\relax \exitloop \else \shapecounter\zerocount \global\setbox\tmpshapebox\normalvbox{#1\unvbox\tmpshapebox}% \fi\fi \fi\fi\fi\fi \ifnum\shapecounter>100 % can be less \global\reshapingfailedtrue \message{!!forced exit from shapebox \the\lastnodetype !!}% \restoreshapebox \exitloop \else \advance\shapecounter \plusone \fi} \def\beginofshapebox {\setbox\oldshapebox\normalvbox \bgroup \reshapingboxtrue \the\everyshapebox \insertshapesignal} \def\endofshapebox {\endgraf \egroup} \let\beginshapebox\beginofshapebox \let\endshapebox \endofshapebox \def\flushshapebox {\bgroup \ifzeropt\ht\newshapebox % \ifdim\ht\newshapebox=\zeropoint \else % make \prevdepth legal % \par before the next \vskip gives far worse results \ifdim\parskip>\zeropoint\vskip\parskip\else\par\fi % and take a look \ifdim\prevdepth=-\thousandpoint \prevdepth\zeropoint \fi \ifdim\prevdepth<\zeropoint\relax % something like a line or a signal or ... \donetrue \else\ifinner % not watertight and not ok \donefalse \else\ifdim\pagegoal=\maxdimen \donetrue \else % give the previous line a normal depth \donetrue {\forgeteverypar\verticalstrut}\nobreak \kern-\struttotal % geen \vskip \kern-\parskip % \vskip-\strutdp \fi\fi\fi \scratchdimen\dp\newshapebox \unvbox\newshapebox % \prevdepth=0pt and \dp\newshapebox depend on last line \kern-\scratchdimen % ?? % now \prevdepth=0pt \ifdone \kern\strutdp \prevdepth\strutdp \fi \fi \egroup} %D In real inner situations we can use: %D %D \starttyping %D \flushinnershapebox %D \stoptyping %D %D This one is used in \type{\framed}. % The kern fails on for instance: % % \omlijnd[offset=0pt,hoogte=8mm,uitlijnen={rechts,laho}]{\bfa test} \def\innerflushshapebox {\ifzeropt\ht\newshapebox \else \unvcopy\newshapebox\relax % unvcopy ! else spacing problem % \kern-\dp\newshapebox\relax \fi} %D For absolute control, one can use \type{\doreshapebox} %D directly. This macro takes four arguments, that take care %D of: %D %D \startitemize[n,packed] %D \item \type{\shapebox} %D \item \type{\shapepenalty} %D \item \type{\shapekern} %D \item \type{\shapeskip} %D \stopitemize %D \macros %D {shapedhbox} %D %D When constructing a new box, using the content of \type %D {\shapebox}, one can best use \type {\shapedhbox} instead %D of \type {\normalhbox}, since it manages the height and depth of %D the line. % \def\shapedhbox % {\dowithnextbox % {\nextboxht\zeropoint % \nextboxdp\zeropoint % \flushnextbox} % \normalhbox} \def\shapedhbox % lines with non strutted dimensions have {\expanded{\dowithnextbox % interlineskip so if we want the original {\nextboxht\the\ht\shapebox % spacing, we need to preserve the original \nextboxdp\the\dp\shapebox % height and depth which is definitely \noexpand\flushnextbox}} % needed if we apply struts to the 'new' \normalhbox} % box or do something that changed ist size %D \macros %D {hyphenatedword, %D hyphenatedpar, %D hyphenatedfile, %D dohyphenateword} %D %D The next one is a tricky one. \PLAIN\ \TEX\ provides %D \type{\showhyphens} for showing macros on the terminal. When %D preparing a long list of words we decided to show the %D hyphens, but had to find out that the \PLAIN\ alternative %D can hardly be used and|/|or adapted to typesetting. The next %D two macros do the job and a little more. First we define the %D (slightly adapted) plain variant: \def\showhyphens#1% {\begingroup \setbox\scratchbox\vbox {\parfillskip\zerocount \hsize\maxdimen %\tenrm \pretolerance\minusone \tolerance\minusone \hbadness\zerocount \showboxdepth\zerocount \ #1}% \endgroup} %D The simple command \type{\hyphenatedword} accepts one %D argument and gives the hyphenated word. This macro calls for %D %D \starttyping %D \dohyphenateword {n} {pre} {word} %D \stoptyping %D %D The next examples tell more than lots of words: %D %D \startbuffer %D \dohyphenateword{0} {} {dohyphenatedword} %D \dohyphenateword{1} {...} {dohyphenatedword} %D \dohyphenateword{2} {...} {dohyphenatedword} %D \stopbuffer %D %D \typebuffer %D %D Here, \type{\hyphenatedword{dohyphenatedword}} is the %D shorter alternative for the first line. %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld %D %D These macros are slow but effective and not that hard to %D program at all. \ifx\scantokens\undefined \let\scantokens\firstofoneargument \fi \def\dohyphenateword#1#2#3% {\bgroup \setbox\scratchbox\normalhbox {\dontcomplain \nopenalties % \widowpenalty \clubpenalty \brokenpenalty \doublehyphendemerits \finalhyphendemerits \adjdemerits \hyphenpenalty \zerocount \exhyphenpenalty\zerocount \setbox0\normalvbox {\hsize\zeropoint \hskip\zeropoint\relax % really needed \ifnum#1<\zeropoint \obeyspaces \obeylines \def\obeyedspace{\hskip\zeropoint\hbox to \onepoint{}\hskip\zeropoint}% \let\obeyedline \obeyedspace \ifcase-#1\or \def\next{#3\relax}\scantokens\expandafter{\next}% relax catches lookahead problem % also ok: \scantokens{#3}% % as in \hyphenatedword{spanish|?|} \or \readfile{#3}\donothing\donothing \else #3% \fi \else #3% \fi}% \ifnum#1>\zerocount \dorecurse{#1} {\setbox2\normalhbox {\splittopskip\openstrutheight \vsplit0 to \baselineskip}}% #2% \fi \doloop {\setbox2\normalhbox {\splittopskip\openstrutheight \vsplit0 to \baselineskip}% \setbox2\normalhbox {\unhbox2 \setbox2\lastbox \normalvbox {\unvbox2 \setbox2\lastbox \normalhbox{\unhbox2}}}% \ifnum#1<\zeropoint\ifdim\wd2=\onepoint\space\else\box2\allowbreak\fi\else\box2\fi \ifzeropt\ht0 \exitloop\fi}% % \ifdim\ht0=\zeropoint\exitloop\fi}% \removeunwantedspaces}% \ifnum#1>\zerocount \ht\scratchbox\strutht \dp\scratchbox\strutdp \box\scratchbox \else \unhbox\scratchbox \fi \egroup} \def\hyphenatedword{\dohyphenateword\zerocount\empty} \def\hyphenatedpar {\dohyphenateword\minusone \empty} \def\hyphenatedfile{\dohyphenateword{-2}\empty} %D You may want to give the following call a try: %D %D \starttyping %D \hyphenatedpar{\readfile{zapf}{}{}}\endgraf %D \stoptyping %D \macros %D {processtokens} %D %D We fully agree with (most) typographers that inter||letter %D spacing is only permitted in fancy titles, we provide a %D macro that can be used to do so. Because this is %D (definitely and fortunately) no feature of \TEX, we have to %D step through the token list ourselves. %D %D \starttyping %D \processtokens {before} {between} {after} {space} {tokens} %D \stoptyping %D %D An example of a call is: %D %D \startbuffer %D \processtokens {[} {+} {]} {\space} {hello world} %D \stopbuffer %D %D \typebuffer %D %D This results in: %D %D \getbuffer %D %D The list of tokens may contain spaces, while \type{\\}, %D \type{{}} and \type{\ } are handled as space too. \def\dodoprocesstokens {\ifx\nextprocessedtoken\lastcharacter \after \let\nextprocessedtoken\relax \else\ifx\nextprocessedtoken\bgroup \def\nextprocessedtoken {\dowithnextbox {\before{\copy\nextbox}% \before can use nextbox several times \let\before\between \doprocesstokens} \hbox\bgroup}% \else \expandafter\if\space\nextprocessedtoken \after\white \let\before\savedbefore \else \before\nextprocessedtoken \let\before\between \fi \let\nextprocessedtoken\doprocesstokens \fi\fi \nextprocessedtoken} \def\doprocesstokens% the space after = is essential {\afterassignment\dodoprocesstokens\let\nextprocessedtoken= } \def\processtokens#1#2#3#4#5% {\begingroup \def\lastcharacter{\lastcharacter}% \def\space{ }% \let\\=\space \def\before {#1}% \def\between{#2}% \def\after {#3}% \def\white {#4}% \let\savedbefore\before \doprocesstokens#5\lastcharacter \endgroup} %D \macros %D {doboundtext} %D %D Sometimes there is not enough room to show the complete %D (line of) text. In such a situation we can strip of some %D characters by using \type{\doboundtext}. When the text is %D wider than the given width, it's split and the third %D argument is appended. When the text to be checked is packed %D in a command, we'll have to use \type{\expandafter}. %D %D \starttyping %D \doboundtext{a very, probably to long, text}{3cm}{...} %D \stoptyping %D %D When calculating the room needed, we take the width of the %D third argument into account, which leads to a bit more %D complex macro than needed at first sight. % \def\dodoboundtext#1% % {\setbox0=\normalhbox{\unhcopy0 #1}% % \ifdim\wd0>\dimen0 % \let\dodoboundtext=\gobbleoneargument % \else % #1\relax % \fi} % % \def\doboundtext#1#2#3% % {\normalhbox % {\setbox0=\normalhbox{#1}% % \dimen0=#2\relax % \ifdim\wd0>\dimen0 % \setbox2=\normalhbox{#3}% % \advance\dimen0 by -\wd2 % \setbox0=\normalhbox{}% % \processtokens % {\dodoboundtext} % {\dodoboundtext} % {} % {\space} % {#1}% % \box2 % \else % \box0 % \fi}} \def\dodoboundtext#1% {\setbox0\normalhbox{#1}% \advance\scratchdimen -\wd0 \ifdim\scratchdimen>\zeropoint\relax#1\fi}% \def\doboundtext#1#2#3% {\normalhbox {\setbox\scratchbox\normalhbox{#1}% \scratchdimen#2\relax \ifdim\wd\scratchbox>\scratchdimen \setbox\scratchbox\normalhbox{#3}% \advance\scratchdimen -\wd\scratchbox \handletokens#1\with\dodoboundtext \fi \box\scratchbox}} %D \macros %D {limitatetext} %D %D A bit more beautiful alternative for the previous command is %D the next one. This command is more robust because we let %D \TEX\ do most of the job. The previous command works better %D on text that cannot be hyphenated. %D %D \starttyping %D \limitatetext {text} {width} {sentinel} %D \limitatetext {text} {-width} {prelude} %D \stoptyping %D %D When no width is given, the whole text comes available. The %D sentinel is optional. This is about the third version. \ifx\fakecompoundhyphen\undefined \let\fakecompoundhyphen\relax \fi \ifx\veryraggedright \undefined \def\veryraggedright{\raggedright} \fi %D The simple alternative is as follows: %D %D \starttyping %D \unexpanded\def\limitatetext% %D {\bgroup % evt \setstrut %D \forgetall %D \fakecompoundhyphen % dangerous ! ! ! ! ! ! ! ! ! %D \dowithnextbox\dolimitatetext\normalhbox} %D %D \def\dolimitatetext#1#2% %D {\doifelsenothing{#1} %D {\unhbox\nextbox} %D {\widowpenalty=0 %D \clubpenalty=0 %D \scratchdimen=#1\relax %D \ifdim\nextboxwd>\scratchdimen %D \setbox\scratchbox=\normalhbox{ #2}% %D \advance\scratchdimen by -\wd\scratchbox %D \setbox\nextbox=\normalvbox %D {\hsize=\scratchdimen %D \hfuzz\maxdimen %D \veryraggedright %D \strut\unhcopy\nextbox}% %D \ifdim\nextboxht>\strutht \else %D \setbox\scratchbox\null % overfull and not split %D \fi %D \setbox\nextbox=\normalvbox % if omitted: missing brace reported %D {\splittopskip=\openstrutheight %D \setbox\nextbox=\vsplit\nextbox to \strutht %D \unvbox\nextbox %D \setbox\nextbox=\lastbox %D \global\setbox1=\normalhbox %D {\unhbox\nextbox\unskip\kern\zeropoint\box\scratchbox\unskip}}% %D \unhbox1 %D \else %D \unhbox\nextbox %D \fi}% %D \egroup} %D \stoptyping %D %D The next alternative accepts a negative width. A negative %D value crops the beginning. The macro thereby becomes less %D readable, which is why we kept the original here too. \unexpanded\def\limitatetext {\bgroup % evt \setstrut \forgetall % otherwise indentation and so %\def\limitatetext##1##2##3{##1}% \def ! \let\limitatetext\firstofthreearguments \fakecompoundhyphen % dangerous ! ! ! ! ! ! ! ! ! \dowithnextboxcs\dolimitatetext\normalhbox} \def\dolimitatetext#1#2% {\doifelsenothing{#1} {\unhbox\nextbox} {\nopenalties \scratchdimen#1\relax \ifdim\scratchdimen<\zeropoint\relax % we'll take the last line \donefalse \scratchdimen-\scratchdimen \else \donetrue \fi \ifdim\nextboxwd>\scratchdimen \setbox\scratchbox\normalhbox{\ifdone\space#2\else#2\space\fi}% \advance\scratchdimen -\wd\scratchbox \setbox0\flushnextbox \setbox\nextbox\normalvbox {\hsize\scratchdimen \hfuzz\maxdimen \veryraggedright \strut \ifdone \else \parfillskip\zeropoint \rightskip\zeropoint \hskip\zeropoint \!!plus 1\!!fill % \hsize \fi \unhcopy0}% \ifdim\nextboxht>\strutht \setbox\nextbox\normalvbox % if omitted: missing brace reported {\splittopskip\openstrutheight \ifdone \setbox\nextbox\vsplit\nextbox to \strutht \else \doloop {\setbox0\vsplit\nextbox to \strutht \ifdim\nextboxht>\strutht \else \exitloop \fi}% \fi \unvbox\nextbox \setbox\nextbox\lastbox \global\setbox1\normalhbox {\ifdone \unhbox\nextbox\unskip\kern\zeropoint\box\scratchbox \else \box\scratchbox\unhbox\nextbox \fi \unskip}}% \unhbox1 \else \unhbox0 \fi \else \unhbox\nextbox \fi}% \egroup} %D We can also limit a text with more control: %D %D \startbuffer %D \limitatetext {\input tufte } {2cm,5mm} {\unknown} %D \limitatetext {ton en hans} {2cm,5mm} {\unknown} %D \limitatetext {ton en hans zijn eikels} {2cm,5mm} {\unknown} %D \limitatetext {ton} {2cm,5mm} {\unknown} %D \stopbuffer %D %D \typebuffer \getbuffer %D %D We build this feature on top of the previous macro. \let\normallimitatetext\limitatetext \def\speciallimitatetext#1#2#3#4% text left right placeholder {%\dontleavehmode \bgroup %\def\speciallimitatetext##1##2##3##4{##1}% \def ! \let\speciallimitatetext\firstoffourarguments \setbox0\normalhbox {\nohyphens \normallimitatetext{#1}{+#2}{}#4% \normallimitatetext{#1}{-#3}{}}% \setbox2\normalhbox {#1}% \ifdim\wd2<\wd0 #1\else\unhbox0\fi \egroup} \def\limitatetext#1#2#3% \expanded added 2003/01/16 {\expanded{\beforesplitstring#2}\at,\to\leftlimit \expanded{\aftersplitstring #2}\at,\to\rightlimit \ifx\rightlimit\empty \normallimitatetext {#1}\leftlimit {#3}% \else \speciallimitatetext{#1}\leftlimit\rightlimit{#3}% \fi} %D Undocumented bonus (see wiki): %D %D \starttyping %D \limitatefirstline{\input tufte\relax}{10cm}{\unknown} %D \stoptyping \def\limitatefirstline#1#2#3% {\hbox\bgroup\strut \setbox\scratchbox\hbox{\begstrut#1\endstrut}% \ifdim\wd\scratchbox>#2\relax \setbox\scratchbox\hbox{#3}% \hsize#2\relax \advance\hsize-\wd\scratchbox \setbox\scratchbox\vbox{\forgetall\veryraggedright#1}% \setbox\scratchbox\vsplit\scratchbox to \lineheight \vbox {\unvbox\scratchbox \global\setbox\plusone\lastbox \global\setbox\plusone\hbox{\strut\unhbox\plusone}% \hbox % to #2 {\ifx\clip\undefined \box\plusone \else\ifdim\wd\plusone>\hsize \lower\strutdepth\hbox{\clip[\c!width=\hsize,\c!height=\lineheight]{\hbox{\raise\strutdepth\box\plusone}}}% \else \box\plusone \fi\fi \removeunwantedspaces#3}}% \removeunwantedspaces\hss#3}}% \else #1% \fi \egroup} %D \macros %D {processisolatedwords, %D betweenisolatedwords,nothingbetweenisolatedwords} %D %D References are often made up of one word or a combination %D of tightly connected words. The typeset text {\bf %D chapter~5} is for instance the results of the character %D sequence: %D %D \starttyping %D The typeset text \in{chapter}[texniques] is for instance %D \stoptyping %D %D When such words are made active in interactive texts, the %D combination cannot longer be hyphenated. Normally this is no %D problem, because \TEX\ tries to prevent hyphenation as best %D as can. %D %D Sometimes however we need a few more words to make things %D clear, like when we want to refer to {\bf \TEX\ by Topic}. %D The macros that are responsible for typesetting hyperlinks, %D take care of such sub||sentences by breaking them up in %D words. Long ago we processed words using the space as a %D separator, but the more advanced our interactive text became, %D the more we needed a robust solution. Well, here it is and %D it called as: %D %D \starttyping %D \processisolatedwords{some words}\someaction %D \stoptyping %D %D The second argument \type{someactions} handles the %D individual words, like in: %D %D \startbuffer %D \processisolatedwords{some more words} \ruledhbox \par %D \processisolatedwords{and some $x + y = z$ math} \ruledhbox \par %D \processisolatedwords{and a \normalhbox{$x + y = z$}} \ruledhbox \par %D \stopbuffer %D %D \typebuffer %D %D which let the words turn up as: %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld %D %D The macro has been made a bit more clever than needed at %D first sight. This is due to the fact that we don't want to %D generate more overhead in terms of interactive commands than %D needed. %D %D \startbuffer %D \processisolatedwords{see this \ruledhskip1em} \ruledhbox %D \processisolatedwords{and \ruledhskip1em this one} \ruledhbox %D \stopbuffer %D %D \typebuffer %D %D becomes: %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D Single word arguments are treated without further %D processing. This was needed because this command is used in %D the \type{\goto} command, to which we sometimes pass very %D strange and|/|or complicated arguments or simply boxes %D whose dimensions are to be left intact. %D %D First we build a \type{\normalhbox}. This enables us to save the %D last skip. Next we fill a \type{\normalvbox} without hyphenating %D words. After we've tested if there is more than one word, we %D start processing the individual lines (words). We need some %D splitting, packing and unpacking to get the spacing and %D dimensions right. %D %D Normally the isolated words are separated by space, but %D one can overrule this separator by changing the next macros. %D %D When needed, spacing can be suppressed by \type %D {\nothingbetweenisolatedwords}. \newif\ifisolatedwords % public, e.g. used in core-ref \def\betweenisolatedwords {\hskip\currentspaceskip} %D In order to prevent problems with nested isolated words, we %D do process them, but only split at the outermost level. \newskip\isolatedlastskip \chardef\isolatedwordsmode=0 % no nesting \def\processisolatedwords#1#2% todo: vbox ipv hbox ivm afbreken! {\bgroup % todo: doloop \fakecompoundhyphen \dontcomplain \forgetall \nopenalties \ifcase\isolatedwordsmode \def\processisolatedwords##1##2{##2{##1}}% we split only once \fi \global\let\localbetweenisolatedwords\betweenisolatedwords \setbox0\normalhbox % we default to spaces, but from inside out {\normallanguage\minusone % needed for mkiv \ignorespaces#1% \localbetweenisolatedwords can be overruled \global\isolatedlastskip\lastskip}% \setbox2\normalvbox {%\hyphenpenalty10000 % this one fails in \url breaking, \lefthyphenmin\maxcard % but this trick works ok, due to them \righthyphenmin\maxcard % total>63, when no hyphenation is done \hsize\zeropoint \unhcopy0}% == #1 \ifdim\ht0=\ht2 \isolatedwordsfalse #2{\unhbox0}% == #2{#1} % was \unhcopy0 \else \isolatedwordstrue \setbox0\normalhbox {\ignorespaces \loop \setbox4\normalhbox {\splittopskip\openstrutheight \vsplit2 to \baselineskip}% \normalhbox {\unhbox4\unskip % recently added \setbox4\lastbox \normalvbox % outer \normalhbox needed {\unvbox4 % for nested use \setbox4\lastbox \normalhbox{#2{\normalhbox {\unhbox4 \unskip\unpenalty % remove end of line stuff \global\dimen1\lastkern}}}}}% \ifdim\ht2>\zeropoint\relax \ifdim\dimen1=\compoundbreakpoint \allowbreak \else \localbetweenisolatedwords \fi \repeat \unskip}% \unhbox0\unskip \ifzeropt\isolatedlastskip\else % added % \ifdim\isolatedlastskip=\zeropoint\else % added \hskip\isolatedlastskip \fi \fi \egroup} %D One can use the next macro to change the intersplit %D material. An example can be found in the \type {\url} %D macro. The innermost setting is used. In the url case, it %D means that either very small spaces are used or no spaces %D at all. So, the innermost settings are used, while the %D outermost split takes place. \def\setbetweenisolatedwords#1% {\gdef\localbetweenisolatedwords{#1}} %D \macros %D {sbox} %D %D This is a rather strange command. It grabs some box content %D and and limits the size to the height and depth of a %D \type{\strut}. The resulting bottom||alligned box can be used %D aside other ones, without disturbing the normal baseline %D distance. %D %D \startbuffer %D \ruledhbox to .5\hsize{\sbox{eerste\par tweede \par derde}} %D \stopbuffer %D %D \typebuffer %D %D Shows up as: %D %D \startvoorbeeld %D \vskip3\baselineskip %D \getbuffer %D \stopvoorbeeld %D %D Before displaying the result we added some skip, otherwise %D the first two lines would have ended up in the text. This %D macro can be useful when building complicated menus, headers %D and footers and|/|or margin material. \def\sbox% in handleiding, voorbeeld \inleft{xx} \extern.. {\normalvbox\bgroup % new ! ! ! \dowithnextbox {\setbox\scratchbox\normalhbox {\strut \nextboxdp\zeropoint \lower\strutdepth\flushnextbox}% \dp\scratchbox\strutdepth \ht\scratchbox\strutheight \box\scratchbox \egroup}% \normalvbox} %D \macros %D {struttedbox} %D %D This boxing macro limits the height and depth to those of %D a strut. \def\struttedbox {\normalhbox\bgroup % new ! ! ! \dowithnextbox {\nextboxdp\strutdepth \nextboxht\strutheight \flushnextbox \egroup}% \normalhbox} %D \macros %D {topskippedbox} %D %D This macro compensates the difference between the topskip %D and strutheight. Watch how we preserve the depth when it %D equals strutdepth. \def\topskippedbox {\normalhbox\bgroup \dowithnextbox {\edef\next {\ifdim\strutdepth=\nextboxdp\nextboxdp\the\nextboxdp\fi}% \lower\topskip\normalhbox{\raise\strutheight\flushnextbox}% \next \egroup}% \normalhbox} %D \macros %D {centeredbox, centerednextbox} %D %D Here is another strange one. This one offers a sort of overlay %D with positive or negative offsets. This command can be used %D in well defined areas where no offset options are available. %D We first used it when building a button inside the margin %D footer, where the button should have a horizontal offset and %D should be centered with respect to the surrounding box. The %D last of the three examples we show below says: %D %D \starttyping %D \vsize=3cm %D \hsize=3cm %D \ruledvbox to \vsize %D {\centeredbox height .5cm width -1cm %D {\vrule width \hsize height \vsize}}} %D \stoptyping %D %D Here the \type{\ruledvbox} just shows the surrounding box %D and \type{\vrule} is used to show the centered box. %D %D \def\AnExample#1#2% %D {\vsize=3cm %D \hsize=3cm %D \ruledvbox to \vsize %D {\centeredbox height #1 width #2 %D {\color[green]{\vrule width \hsize height \vsize}}}} %D %D \startlinecorrection %D \startcombination[3*1] %D {\AnExample {-1cm} {.5cm}} {} %D {\AnExample {.5cm} {-1cm}} {} %D {\AnExample {-1cm} {-.5cm}} {} %D \stopcombination %D \stoplinecorrection %D %D This command takes two optional arguments: \type{width} and %D \type{height}. Observing readers can see that we use \TEX's %D own scanner for grabbing these arguments: \type{#1#} reads %D everyting till the next brace and passes it to both rules. %D The setting of the box dimensions at the end is needed for %D special cases. The dimensions of the surrounding box are kept %D intact. This commands handles positive and negative %D dimensions (which is why we need two boxes with rules). \def\centeredbox#1#% height +/-dimen width +/-dimen {\bgroup \setbox0\normalvbox to \vsize \bgroup \dontcomplain \forgetall \setbox0\normalhbox{\vrule\!!width \zeropoint#1}% \setbox2\normalvbox{\hrule\!!height\zeropoint#1}% \advance\vsize \ht2 \advance\hsize \wd0 \normalvbox to \vsize \bgroup \vskip-\ht2 \vss \normalhbox to \hsize \bgroup \dowithnextbox {\hskip-\wd0 \hss \flushnextbox \hss \egroup \vss \egroup \egroup \wd0\hsize \ht0\vsize \box0 \egroup} \normalhbox} %D For those who don't want to deal with \type {\hsize} %D and \type {\vsize}, we have: %D %D \starttyping %D \centerednextbox width 2bp height 2bp %D {\framed[width=100bp,height=100bp]{}} %D \stoptyping %D %D Do you see what we call this one \type {next}? \def\centerednextbox#1#% {\bgroup \dowithnextbox {\hsize\nextboxwd \vsize\nextboxht \centeredbox#1{\flushnextbox}% \egroup} \normalhbox} %D \macros %D {centerbox} %D %D Centering on the available space is done by: %D %D \starttyping %D \centerbox {content} %D \stoptyping %D %D When omitted, the current \type {\hsize} and \type %D {\vsize} are used. Local dimensions are supported. \long\def\centerbox#1#% optional height +/-dimen width +/-dimen {\bgroup \dowithnextbox {\setlocalhsize \setbox0\normalhbox{\vrule\!!width \zeropoint#1}% \setbox2\normalvbox{\hrule\!!height\zeropoint#1}% \ifzeropt\wd0\else\hsize\wd0\fi % \hsize\ifdim\wd0=\zeropoint\hsize\else\wd0\fi \ifzeropt\ht2\else\vsize\ht2\fi % \vsize\ifdim\ht2=\zeropoint\vsize\else\ht2\fi \normalvbox to \vsize{\vss\normalhbox to \hsize{\hss\flushnextbox\hss}\vss}% \egroup}% \normalhbox} %D \macros %D {setrigidcolumnhsize,rigidcolumnbalance,rigidcolumnlines} %D %D These macros are copied from the \TEX book, page~397, and %D extended by a macro that sets the \type{\hsize}. %D %D \starttyping %D \setrigidcolumnhsize {total width} {distance} {n} %D \rigidcolumnbalance {box} %D \stoptyping %D %D Both these macros are for instance used in typesetting %D footnotes. %D %D Men kan het proces van breken enigzins beinvloeden met de %D volgende twee switches: \newif\ifalignrigidcolumns \newif\ifstretchrigidcolumns \newif\iftightrigidcolumns % if true: just a vbox, no depth/noflines/gridsnap corrrections %D De eerste switch bepaald het uitlijnen, de tweede rekt de %D individuele kolommen op naar \type{\vsize}. \def\setrigidcolumnhsize#1#2#3% todo: \dimexpr {\xdef\savedrigidhsize{\the\hsize}% \hsize#1\relax \global\chardef\rigidcolumns#3\relax \scratchdimen -#2\relax \multiply\scratchdimen #3\relax \advance\scratchdimen #2\relax \advance\hsize \scratchdimen \divide\hsize #3\relax} % == % % \def\setrigidcolumnhsize#1#2#3% % {\xdef\savedrigidhsize{\the\hsize}% % \global\chardef\rigidcolumns#3\relax % \hsize=\dimexpr(#1-\numexpr#3-1\relax\dimexpr#2\relax)/#3\relax} \newbox\rigidcolumnbox \let\rigidcolumnlines\!!zerocount \def\rigidcolumnbalance#1% {\ifnum\rigidcolumns=1 % tzt ook h/d correctie \ifinner\ifhmode\box\else\unvbox\fi\else\unvbox\fi#1\relax \else \normalvbox {\forgetall \nopenalties \dontcomplain \setbox\rigidcolumnbox\normalvbox {\line{}\goodbreak\unvbox#1\removebottomthings}% \splittopskip\openstrutheight \setbox\scratchbox\vsplit\rigidcolumnbox to \zeropoint \ifcase\rigidcolumnlines\relax % \iffalse % % maybe some day an option % \scratchskip\ht\rigidcolumnbox % \advance\scratchskip\dp\rigidcolumnbox % \getnoflines\scratchskip % \ifodd\noflines % \advance\noflines\plusone % \fi % \divide\noflines\rigidcolumns %\else \scratchdimen\ht\rigidcolumnbox \divide\scratchdimen \rigidcolumns \getnoflines\scratchdimen %\fi \else \noflines\rigidcolumnlines % to be sure \fi \scratchdimen\noflines\lineheight % new: we now loop so that we don't loose content % since in practice we also use this macro for % funny lineheights and border cases \setbox0=\box\rigidcolumnbox \doloop {\setbox\rigidcolumnbox=\copy0 \setbox\scratchbox\normalhbox to \savedrigidhsize {\dorecurse\rigidcolumns {\setbox\scratchbox\vsplit\rigidcolumnbox to \scratchdimen \dp\scratchbox\openstrutdepth \setbox\scratchbox\normalvtop \ifalignrigidcolumns to \ifstretchrigidcolumns\vsize\else\scratchdimen\fi \fi {\unvbox\scratchbox}% \wd\scratchbox\hsize \box\scratchbox \hfill}% \hfillneg}% \ifvoid\rigidcolumnbox\exitloop\else\advance\scratchdimen\lineheight\fi}% \iftightrigidcolumns \setbox\scratchbox\normalhbox{\raise\dp\scratchbox\box\scratchbox}% \else \advance\scratchdimen -\openstrutdepth \setbox\scratchbox\normalhbox{\raise\scratchdimen\box\scratchbox}% \dp\scratchbox\openstrutdepth \ht\scratchbox\scratchdimen \fi \box\scratchbox}% \fi} %D \macros %D {startvboxtohbox,stopvboxtohbox,convertvboxtohbox} %D %D Here is another of Knuth's dirty tricks, as presented on %D pages 398 and 399 of the \TEX book. These macros can be used %D like: %D %D \starttyping %D \normalvbox %D \bgroup %D \startvboxtohbox ... \stopvboxtohbox %D \startvboxtohbox ... \stopvboxtohbox %D \startvboxtohbox ... \stopvboxtohbox %D \egroup %D %D \normalvbox %D \bgroup %D \convertvboxtohbox %D \egroup %D \stoptyping %D %D These macros are used in reformatting footnotes, so they do %D what they're meant for. \def\setvboxtohbox {\bgroup \ifdim\baselineskip<16pt \relax \scratchdimen\baselineskip \multiply\scratchdimen 1024 \else \message{cropping \baselineskip to 16pt}% \scratchdimen\maxdimen \fi \divide\scratchdimen \hsize \multiply\scratchdimen 64 \xdef\normalvboxtohboxfactor{\withoutpt\the\scratchdimen}% \egroup} \def\startvboxtohbox {\bgroup \setvboxtohbox \setbox\scratchbox\normalhbox\bgroup} \def\stopvboxtohbox {\egroup \dp\scratchbox\zeropoint \ht\scratchbox\normalvboxtohboxfactor\wd\scratchbox \box\scratchbox \egroup} % % to be done: start halfway a line combined with one line % % extra to start with (skip) and one line less than counted. % % \def\stopvboxtohbox% % {\egroup % \setbox2=\normalvbox % {\forgetall\unhcopy0\par\xdef\globalvhlines{\the\prevgraf}}% % \setbox2=\normalvbox % {\unvbox2 % \setbox2=\lastbox % \setbox2=\normalhbox{\unhbox2}% % \xdef\globalvhwidth{\the\wd2}}% % \decrement\globalvhlines % \dimen0=\globalvhwidth % \dimen0=\normalvboxtohboxfactor\dimen0 % \advance\dimen0 by \globalvhlines\lineheight % \dp0=\zeropoint % \ht0=\dimen0 % %\writestatus{guessed size} % % {w:\the\wd0\space\space % % b:\the\baselineskip\space % % l:\globalvhlines\space % % e:\globalvhwidth\space % % h:\the\dimen0}% % \box0 % \egroup} % todo: \scratchbox \def\convertvboxtohbox {\setvboxtohbox \makehboxofhboxes \setbox0\normalhbox{\unhbox0 \removehboxes}% \noindent\unhbox0\par} \def\makehboxofhboxes {\setbox0\normalhbox{}% \loop % \doloop { .. \exitloop .. } \setbox2\lastbox \ifhbox2 \setbox0\normalhbox{\box2\unhbox0}% \repeat} % \def\makehboxofhboxes % {\setbox0\normalhbox{}% % \doloop % \doloop { .. \exitloop .. } % {% \dorecurse{3}{\unskip\unpenalty}% get rid of ... (better do this in a shapeloop) % \setbox2\lastbox % \ifhbox2 % \setbox0\normalhbox{\box2\unhbox0}% % \else % \exitloop % \fi}} % \def\flushboxesonly % feed this into \makehboxofhboxes % {\dowithnextbox % {\beginofshapebox % \unvbox\nextbox % \endofshapebox % \doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc % \innerflushshapebox} % \vbox} \def\removehboxes {\setbox0\lastbox \ifhbox0 {\removehboxes}\unhbox0 \fi} %D \macros %D {unhhbox} %D %D The next macro is used in typesetting inline headings. %D Let's first look at the macro and then show an example. \newbox \unhhedbox \newbox \hhbox \newdimen \lasthhboxwidth \newskip \hhboxindent \def\unhhbox#1\with#2% {\bgroup \nopenalties \dontcomplain \forgetall \setbox\unhhedbox\normalvbox{\hskip\hhboxindent\strut\unhbox#1}% => \hsize \doloop {\setbox\hhbox\vsplit\unhhedbox to \lineheight \ifvoid\unhhedbox \setbox\hhbox\normalhbox{\strut\normalhboxofvbox\hhbox}% \fi \ht\hhbox\strutht \dp\hhbox\strutdp \ifzeropt\hhboxindent\else % \ifdim\hhboxindent=\zeropoint\else \setbox\hhbox\normalhbox{\hskip-\hhboxindent\box\hhbox}% \hhboxindent\zeropoint \fi \global\lasthhboxwidth\wd\hhbox #2\relax \ifvoid\unhhedbox \exitloop \else \hskip\zeropoint \!!plus \zeropoint \fi}% \egroup} \def\dohboxofvbox {\setbox0\normalvbox{\unvbox\scratchcounter\global\setbox1\lastbox}% \unhbox1 \egroup} \def\normalhboxofvbox {\bgroup \afterassignment\dohboxofvbox \scratchcounter=} %D This macro can be used to break a paragraph apart and treat %D each line seperately, for instance, making it clickable. The %D main complication is that we want to be able to continue the %D paragraph, something that's needed in the in line section %D headers. %D %D \startbuffer %D \setbox0=\normalhbox{\input tufte \relax} %D \setbox2=\normalhbox{\input knuth \relax} %D \unhhbox0\with{\ruledhbox{\box\hhbox}} %D \hskip1em plus 1em minus 1em %D \hhboxindent=\lasthhboxwidth %D \advance\hhboxindent by \lastskip %D \unhhbox2\with{\ruledhbox{\box\hhbox}} %D \stopbuffer %D %D \getbuffer %D %D This piece of text was typeset by saying: %D %D \typebuffer %D %D Not that nice a definition, but effective. Note the stretch %D we've build in the line that connects the two paragraphs. %D \macros %D {doifcontent} %D %D When processing depends on the availability of content, one %D can give the next macro a try. %D %D \starttyping %D \doifcontent{pre content}{post content}{no content}\somebox %D \stoptyping %D %D Where \type{\somebox} is either a \type{\normalhbox} or %D \type{\normalvbox}. If the dimension of this box suggest some %D content, the resulting box is unboxed and surrounded by the %D first two arguments, else the third arguments is executed. \unexpanded\def\doifcontent#1#2#3% {\dowithnextbox {\ifhbox\nextbox \ifdim\nextboxwd>\zeropoint #1\unhbox\nextbox#2\relax \else #3\relax \fi \else \ifdim\nextboxht>\zeropoint #1\unvbox\nextbox#2\relax \else #3\relax \fi \fi}} %D So when we say: %D %D \startbuffer %D \doifcontent{[}{]}{}\normalhbox{content sensitive typesetting} %D %D \doifcontent{}{\page}{}\normalvbox{content sensitive typesetting} %D %D \doifcontent{}{}{\message{Didn't you forget something?}}\normalhbox{} %D \stopbuffer %D %D \typebuffer %D %D We get: %D %D \getbuffer %D %D Where the last call of course does not show up in this %D document, but definitely generates a confusing message. %D \macros %D {processboxes} %D %D The next macro gobble boxes and is for instance used for %D overlays. First we show the general handler. \newbox\processbox \def\processboxes#1% {\bgroup \def\doprocessbox{#1}% #1 can be redefined halfway \resetbox\processbox \afterassignment\dogetprocessbox\let\next=} \def\endprocessboxes {\ifhmode\unskip\fi \box\processbox \next \egroup} \def\dogetprocessbox {\ifx\next\bgroup \expandafter\dodogetprocessbox \else \expandafter\endprocessboxes \fi} \def\dodogetprocessbox {\dowithnextbox {\ifhmode\unskip\fi\doprocessbox % takes \nextbox makes \processbox \afterassignment\dogetprocessbox\let\next=} \normalhbox\bgroup} %D \macros %D {startoverlay} %D %D We can overlay boxes by saying: %D %D \startbuffer %D \startoverlay %D {\framed{hans}} %D {\framed[width=3cm]{ton}} %D {\framed[height=2cm]{oeps}} %D \stopoverlay %D \stopbuffer %D %D \typebuffer %D %D shows up as: %D %D \leavevmode\getbuffer % \def\dooverlaybox% % {\ifhmode\unskip\fi % \ifdim\nextboxht>\ht\processbox % \setbox\processbox\normalvbox to \nextboxht % {\vss\box\processbox\vss}% % \else % \setbox\nextbox\normalvbox to \ht\processbox % {\vss\flushnextbox\vss}% % \fi % \scratchdimen=\wd % \ifdim\nextboxwd>\wd\processbox % \nextbox % \else % \processbox % \fi % \setbox\processbox=\normalhbox to \scratchdimen % {\normalhbox to \scratchdimen{\hss\box\processbox\hss}% % \hskip-\scratchdimen % \normalhbox to \scratchdimen{\hss\flushnextbox\hss}}} % % \def\startoverlay% % {\bgroup % \let\stopoverlay\egroup % \processboxes\dooverlaybox} \def\dooverlaybox {\ifhmode\unskip\fi \scratchdimen\dp \ifdim\nextboxdp>\dp\processbox \nextbox \else \processbox \fi \ifdim\nextboxht>\ht\processbox \setbox\processbox\normalvbox to \nextboxht {\dp\processbox\zeropoint\vss\box\processbox\vss}% \else \setbox\nextbox\normalvbox to \ht\processbox {\nextboxdp\zeropoint\vss\flushnextbox\vss}% \fi \nextboxdp\scratchdimen \dp\processbox\scratchdimen \scratchdimen\wd \ifdim\nextboxwd>\wd\processbox \nextbox \else \processbox \fi \setbox\processbox\normalhbox to \scratchdimen {\normalhbox to \scratchdimen{\hss\box\processbox\hss}% \hskip-\scratchdimen \normalhbox to \scratchdimen{\hss\flushnextbox\hss}}} \unexpanded\def\startoverlay {\bgroup \let\stopoverlay\egroup \processboxes\dooverlaybox} \let\stopoverlay\relax % %D \macros % %D {starthspread} % %D % %D In a similar way we can build a horizontal box, spread % %D over the available width. % %D % %D \startbuffer % %D \starthspread % %D {hans} % %D {ton} % %D {oeps} % %D \stophspread % %D % %D \stopbuffer % %D % %D \typebuffer % %D % %D shows up as: % %D % %D \leavevmode\getbuffer % % \def\dohspread % {\flushnextbox % \def\dohspread{\hfil\flushnextbox}} % % \def\starthspread % {\normalhbox to \hsize \bgroup % \let\stophspread\egroup % \processboxes\dohspread} %D \macros %D {fakebox} %D %D The next macro is a rather silly one, but saves space. %D %D \starttyping %D \normalhbox{\fakebox0} %D \stoptyping %D %D returns an empty box with the dimensions of the box %D specified, here being zero. \def\dofakebox {\setbox\scratchbox\null \wd\scratchbox\wd\scratchcounter \ht\scratchbox\ht\scratchcounter \dp\scratchbox\dp\scratchcounter \ifhbox\scratchcounter\normalhbox\else\normalvbox\fi{\box\scratchbox}% \egroup} \def\fakebox {\bgroup \afterassignment\dofakebox\scratchcounter} %D \macros %D {lbox,rbox,cbox,tbox,bbox} %D %D Here are some convenient alternative box types: %D %D \starttyping %D \lbox{text ...} %D \cbox{text ...} %D \rbox{text ...} %D \stoptyping %D %D Are similar to \type {\normalvbox}, which means that they also %D accept something like \type{to 3cm}, but align to the left, %D middle and right. These box types can be used to typeset %D paragraphs. \def\lbox{\makelrcbox\normalvbox\raggedleft} \def\cbox{\makelrcbox\normalvbox\raggedcenter} \def\rbox{\makelrcbox\normalvbox\raggedright} \def\ltop{\makelrcbox\normalvtop\raggedleft} \def\ctop{\makelrcbox\normalvtop\raggedcenter} \def\rtop{\makelrcbox\normalvtop\raggedright} \def\makelrcbox#1#2#3#% {#1#3\bgroup \forgetall \let\\=\endgraf #2\let\next=} %D The alternatives \type {\tbox} and \type {\bbox} can be used %D to properly align boxes, like in: %D %D \setupexternalfigures[directory={../sample}] %D \startbuffer %D \starttable[|||] %D \HL %D \VL \tbox{\externalfigure[cow][height=3cm,frame=on]} \VL top aligned \VL\SR %D \HL %D \VL \bbox{\externalfigure[cow][height=3cm,frame=on]} \VL bottom aligned \VL\SR %D \HL %D \stoptable %D \stopbuffer %D %D \typebuffer %D %D The positioning depends on the strut settings: %D %D \getbuffer \def\tbox{\tbbox\ht\dp} \def\bbox{\tbbox\dp\ht} \def\tbbox#1#2% {\normalhbox\bgroup \dowithnextbox {\scratchdimen\nextboxht \advance\scratchdimen\nextboxdp \advance\scratchdimen-#1\strutbox #1\nextbox#1\strutbox #2\nextbox\scratchdimen \setbox\nextbox\normalhbox {\lower\nextboxdp\flushnextbox}% #1\nextbox#1\strutbox #2\nextbox\scratchdimen \flushnextbox \egroup} \normalhbox} %D \macros %D {lhbox,mhbox,rhbox} %D %D A few more boxes. \def\dodolhbox{\normalhbox to \hsize{\flushnextbox\hss }} \def\dodomhbox{\normalhbox to \hsize{\hss\flushnextbox\hss}} \def\dodorhbox{\normalhbox to \hsize{\hss\flushnextbox }} \def\lhbox{\dowithnextboxcs\dodolhbox\normalhbox} \def\mhbox{\dowithnextboxcs\dodomhbox\normalhbox} \def\rhbox{\dowithnextboxcs\dodorhbox\normalhbox} \let\lefthbox \lhbox \let\midhbox \mhbox \let\righthbox\rhbox %D \macros %D {boxofsize} %D %D Sometimes we need to construct a box with a height or %D width made up of several dimensions. Instead of cumbersome %D additions, we can use: %D %D \starttyping %D \boxofsize \normalvbox 10cm 3cm -5cm {the text to be typeset} %D \stoptyping %D %D This example demonstrates that one can use positive and %D negative values. Dimension registers are also accepted. \newdimen\sizeofbox \def\boxofsize#1% {\bgroup \sizeofbox\zeropoint \scratchdimen\zeropoint \def\docommand {\advance\sizeofbox\scratchdimen \futurelet\next\dodocommand}% \def\dodocommand {\ifx\next\bgroup \expanded{\egroup#1 to \the\sizeofbox}% \else \@EA\afterassignment\@EA\docommand\@EA\scratchdimen \fi}% \docommand} %D Some new, still undocumented features: % limitatetext -> beter {text} als laatste !! % % \limitvbox % \limithbox \def\limitatelines#1#2% size sentinel {\dowithnextbox {\dimen0=#1\hsize \ifdim\nextboxwd>\dimen0 \setbox\nextbox\normalhbox {\advance\dimen0 -.1\hsize \limitatetext{\unhbox\nextbox}{\dimen0}{\nobreak#2}}% \fi \unhbox\nextbox} \normalhbox} \def\fittoptobaselinegrid % weg hier {\dowithnextbox {\bgroup \par \dimen0\nextboxht \nextboxht\strutht \nextboxdp\strutdp \normalhbox{\flushnextbox} \prevdepth\strutdp \doloop {\advance\dimen0 -\lineheight \ifdim\dimen0<\zeropoint \exitloop \else \nobreak \normalhbox{\strut} \fi} \egroup} \normalvbox} %D Some more undocumented macros (used in m-chart). \newif\iftraceboxplacement % \traceboxplacementtrue \newbox\fakedboxcursor \setbox\fakedboxcursor\normalhbox {\vrule\!!width\zeropoint\!!height\zeropoint\!!depth\zeropoint} \def\boxcursor % overloaded in core-vis {\iftraceboxplacement \bgroup \scratchdimen2pt \setbox\scratchbox\normalhbox to \zeropoint {\hss \vrule \!!width \scratchdimen \!!height\scratchdimen \!!depth \scratchdimen \hss}% \smashedbox\scratchbox \egroup \else \copy\fakedboxcursor \fi} \def\placedbox {\iftraceboxplacement\ruledhbox\else\normalhbox\fi} \newdimen\boxoffset \newdimen\boxhdisplacement \newdimen\boxvdisplacement %\def\rightbox#1% % {\normalhbox % {\setbox0=\placedbox{#1}% % \dimen0=.5\ht0\advance\dimen0 -.5\dp0 % \boxcursor\hskip\boxoffset\lower\dimen0\box0}} \def\rightbox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement\boxoffset \global\boxvdisplacement.5\ht0 \global\advance\boxvdisplacement-.5\dp0 \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}} %\def\leftbox#1% % {\normalhbox % {\setbox0=\placedbox{#1}% % \dimen0=.5\ht0\advance\dimen0 -.5\dp0 % \boxcursor\hskip-\wd0\hskip-\boxoffset\lower\dimen0\box0}} \def\leftbox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement-\wd0 \global\advance\boxhdisplacement-\boxoffset \global\boxvdisplacement.5\ht0 \global\advance\boxvdisplacement-.5\dp0 \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}} %\def\topbox#1% % {\normalhbox % {\setbox0=\placedbox{#1}% % \dimen0=\boxoffset\advance\dimen0 \dp0 % \boxcursor\hskip-.5\wd0\raise\dimen0\box0}} \def\topbox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement-.5\wd0 \global\boxvdisplacement-\dp0 \global\advance\boxvdisplacement-\boxoffset \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}} %\def\bottombox#1% % {\normalhbox % {\setbox0=\placedbox{#1}% % \dimen0=\boxoffset\advance\dimen0 \ht0 % \boxcursor\hskip-.5\wd0\lower\dimen0\box0}} \def\bottombox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement-.5\wd0 \global\boxvdisplacement\ht0 \global\advance\boxvdisplacement\boxoffset \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}} %\def\lefttopbox#1% % {\normalhbox % {\setbox0=\placedbox{#1}% % \dimen0=\boxoffset\advance\dimen0 \dp0 % \advance\boxoffset\wd0 % \boxcursor\hskip-\boxoffset\raise\dimen0\box0}} \def\lefttopbox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement-\wd0 \global\advance\boxhdisplacement-\boxoffset \global\boxvdisplacement-\dp0 \global\advance\boxvdisplacement-\boxoffset \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}} %\def\righttopbox#1% % {\normalhbox % {\setbox0=\placedbox{#1}% % \dimen0=\boxoffset\advance\dimen0 \dp0 % \boxcursor\hskip\boxoffset\raise\dimen0\box0}} \def\righttopbox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement\boxoffset \global\boxvdisplacement-\dp0 \global\advance\boxvdisplacement-\boxoffset \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}} %\def\leftbottombox#1% % {\normalhbox % {\setbox0=\placedbox{#1}% % \dimen0=\boxoffset\advance\dimen0 \ht0 % \advance\boxoffset\wd0 % \boxcursor\hskip-\boxoffset\lower\dimen0\box0}} \def\leftbottombox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement-\wd0 \global\advance\boxhdisplacement-\boxoffset \global\boxvdisplacement\ht0 \global\advance\boxvdisplacement\boxoffset \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}} %\def\rightbottombox#1% % {\normalhbox % {\setbox0=\placedbox{#1}% % \dimen0=\boxoffset\advance\dimen0 \ht0 % \boxcursor\hskip\boxoffset\lower\dimen0\box0}} \def\rightbottombox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement\boxoffset \global\boxvdisplacement\ht0 \global\advance\boxvdisplacement\boxoffset \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}} \let\topleftbox \lefttopbox \let\toprightbox \righttopbox \let\bottomleftbox \leftbottombox \let\bottomrightbox\rightbottombox \def\middlebox#1% {\normalhbox{\setbox0\placedbox{#1}\boxoffset=-.5\wd0\rightbox{\box0}}} \def\baselinemiddlebox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement-.5\wd0 \global\advance\boxhdisplacement-\boxoffset \global\boxvdisplacement-\boxoffset \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}} \def\baselineleftbox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement-\wd0 \global\advance\boxhdisplacement-\boxoffset \global\boxvdisplacement-\boxoffset \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}} \def\baselinerightbox#1% {\normalhbox {\setbox0\placedbox{#1}% \global\boxhdisplacement\boxoffset \global\boxvdisplacement-\boxoffset \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}} %D \macros %D {obox} %D %D Experimental, not yet frozen: \def\lrtbbox#1#2#3#4% l r t b {\bgroup \dowithnextboxcontent {\advance\hsize-#1\advance\hsize-#2\advance\vsize-#3\advance\vsize-#4\relax} {\forgetall\vbox to \vsize{\vskip#3\hbox to \hsize{\hskip#1\box\nextbox\hss}\vss}\egroup} \vbox} %D \macros %D {toplinebox} %D %D See core-tbl.tex for an example of its usage: \def\toplinebox {\dowithnextbox {\ifdim\nextboxdp>\strutdepth \scratchdimen\nextboxdp \advance\scratchdimen-\strutdepth \getnoflines\scratchdimen \struttedbox{\flushnextbox}% \dorecurse\noflines\verticalstrut \else \flushnextbox \fi}% \tbox} %D \macros %D {initializeboxstack,savebox,foundbox} %D %D At the cost of some memory, but saving box registers, we %D have implemented a box repository. %D %D \starttyping %D \initializeboxstack{one} %D %D \savebox{one}{a}{test a} %D \savebox{one}{p}{test p} %D \savebox{one}{q}{test q} %D %D \normalhbox{a:\foundbox{one}{a}} \par %D \normalhbox{q:\foundbox{one}{q}} \par %D \normalhbox{p:\foundbox{one}{p}} \par %D \normalhbox{x:\foundbox{one}{x}} \par %D \normalhbox{y:\foundbox{two}{a}} \par %D \stoptyping % we keep it around as a demonstration of good old tex code: % % \def\@@stackbox{boxstack:b:} % \def\@@stackmax{boxstack:m:} % \def\@@stacktag{boxstack:t:} % \def\@@stacklst{boxstack:l:} % % \def\initializeboxstack#1% % {\ifundefined{\@@stackbox#1}% % \@EA\newbox\csname\@@stackbox#1\endcsname % \else % \global\setbox\csname\@@stackbox#1\endcsname\normalvbox{}% % \def\docommand##1{\global\letbeundefined{\@@stacktag#1:##1}}% % \processcommacommand[\getvalue{\@@stacklst#1}]\docommand % \fi % \global\letvalue{\@@stacklst#1}\empty % \global\letvalue{\@@stackmax#1}\!!zeropoint} % % \def\savebox#1#2% stack name % {\dowithnextbox % {\doifdefined{\@@stackbox#1} % {\@EA\doglobal\@EA\increment\csname\@@stackmax#1\endcsname % \setxvalue{\@@stacktag#1:#2}{\csname\@@stackmax#1\endcsname}% % \setxvalue{\@@stacklst#1}{\getvalue{\@@stacklst#1},#2}% % \global\setbox\csname\@@stackbox#1\endcsname\normalvbox % {\forgetall % \setbox\scratchbox\normalvbox{\flushnextbox} % \ht\scratchbox\onepoint % \dp\scratchbox\zeropoint % \unvbox\csname\@@stackbox#1\endcsname % \offinterlineskip % \allowbreak % \box\scratchbox}}}% % \normalvbox} % % \def\foundbox#1#2% % {\normalvbox % {\doifdefined{\@@stackbox#1} % {\doifdefined{\@@stacktag#1:#2} % {\setbox\scratchbox\normalvbox % {\splittopskip\zeropoint % \setbox0\copy\csname\@@stackbox#1\endcsname % \dimen0=\getvalue{\@@stacktag#1:#2}\points % \advance\dimen0 -\onepoint % \setbox2\vsplit0 to \dimen0 % \ifdim\ht0>\onepoint % \setbox0\vsplit0 to \onepoint % \fi % \unvbox0\setbox0\lastbox\unvbox0}% % \unvbox\scratchbox}}}} % % \def\doifboxelse#1#2% % {\doifdefinedelse{\@@stacktag#1:#2}} \def\@@stackbox{@box@} \def\@@stacklst{@xob@} \def\setstackbox#1#2% {\ifcsname\@@stackbox:#1:#2\endcsname\else \expandafter\newbox\csname\@@stackbox:#1:#2\endcsname \fi \global\setbox\csname\@@stackbox:#1:#2\endcsname\normalvbox} \def\initializeboxstack#1% {\def\docommand##1{\setstackbox{#1}{##1}{}}% \ifcsname\@@stacklst#1\endcsname \processcommacommand[\getvalue{\@@stacklst#1}]\docommand \fi \global\letvalue{\@@stacklst#1}\empty} \def\savebox#1#2% stack name {% beware, \setxvalue defines the cs beforehand so we cannot use the % test inside the { } \ifcsname\@@stacklst#1\endcsname \setxvalue{\@@stacklst#1}{\csname\@@stacklst#1\endcsname,#2}% \else \setxvalue{\@@stacklst#1}{#2}% \fi \setstackbox{#1}{#2}} \def\foundbox#1#2% {\normalvbox {\ifcsname\@@stackbox:#1:#2\endcsname \copy\csname\@@stackbox:#1:#2\endcsname \fi}} \long\def\doifboxelse#1#2#3#4% {\ifcsname\@@stackbox:#1:#2\endcsname \ifvoid\csname\@@stackbox:#1:#2\endcsname#4\else#3\fi \else #4% \fi} %D \macros %D {removedepth, obeydepth} %D %D While \type {\removedepth} removes the preceding depth, %D \type {\obeydepth} makes sure we have depth. Both macros %D leave the \type {\prevdepth} untouched. \def\removedepth {\ifvmode \ifdim\prevdepth>\zeropoint \kern-\prevdepth \fi \fi} \def\obeydepth {\par \removedepth \ifvmode \kern\strutdp \fi} \def\undepthed {\dowithnextbox{\nextboxdp\zeropoint\flushnextbox}\hbox} %D \macros %D {removebottomthings, removelastskip} %D %D A funny (but rather stupid) one, plus a redefinition. \def\removebottomthings {\dorecurse5{\unskip\unkern\unpenalty}} \def\removelastskip % \ifvmode the plain tex one \fi % {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi} {\ifvmode\ifzeropt\lastskip\else\vskip-\lastskip\fi\fi} %D \macros %D {makestrutofbox} %D %D This macro sets the dimensions of a box to those of a %D strut. \def\domakestrutofbox {\ht\registercount\strutht \dp\registercount\strutdp \wd\registercount\zeropoint} \def\makestrutofbox {\afterassignment\domakestrutofbox\registercount} %D \macros %D {raisebox,lowerbox} %D %D Some more box stuff, related to positioning (under %D construction). Nice stuff for a tips and tricks maps %D article. %D %D \starttyping %D \raisebox{100pt}\normalhbox{test} %D \raisebox50pt\normalhbox{test} %D \hsmash{\raisebox{100pt}\normalhbox{test}} %D \stoptyping \def\doraiselowerbox#1#2% a nice trick us used to accept {\def\next % both direct and {} dimensions {\dowithnextbox {\setbox\nextbox\normalhbox{#1\scratchdimen\flushnextbox}% \nextboxht\strutht \nextboxdp\strutdp \flushnextbox}}% \afterassignment\next\scratchdimen=#2} \def\raisebox{\doraiselowerbox\raise} \def\lowerbox{\doraiselowerbox\lower} % maybe some day we need this % % \def\appendvbox#1% % uses \box8 % {\bgroup % \ifdim\prevdepth<\zeropoint % \ifdim\pagetotal=\zeropoint % \setbox8=\normalvtop{\unvcopy#1}% % \hrule\c!!height\zeropoint % \kern-\ht8 % \box#1\relax % \else % \box#1\relax % \fi % \else % \dimen0=\prevdepth % \hrule\c!!height\zeropoint % \setbox8=\normalvtop{\unvcopy#1}% % \dimen2=\baselineskip % \advance\dimen2 by -\dimen0 % \advance\dimen2 by -\ht8 % \kern\dimen2 % \box#1\relax % \fi % \egroup} % %D Also new: % %D % %D \startbuffer % %D \normbox[1cm][bba]{m} % b(efore) a(fter) v(box) s(trut) f(rame) % %D \normbox[1cm][bba]{m} % %D \normbox[1cm][bba]{m} % %D \stopbuffer % %D % %D \typebuffer % %D \getbuffer % % \def\dodonormbox#1#2#3#4#5#6#7% % {\doifnumberelse{#1} % {\dimen0=#1}{\setbox0=#3{#1}\dimen0=#50}% % \doifinstringelse{f}{#2} % {\let\next#4}{\let\next#3}% % \next to \dimen0 % {\counttoken b\in#2\to\!!counta\dorecurse{\!!counta}{#6}#6% % #7\nextbox % \counttoken a\in#2\to\!!counta\dorecurse{\!!counta}{#6}#6}} % % \def\donormbox[#1][#2]% % {\bgroup % \doifinstringelse{v}{#2} % {\let\next\normalvbox} % {\let\next\normalhbox}% % \dowithnextbox % {\ifvbox\nextbox % \let\\=\par % \dodonormbox{#1}{#2}\normalvbox\ruledvbox\ht\vfil\unvbox % \else % \let\\=\space % \dodonormbox{#1}{#2}\normalhbox\ruledhbox\wd\hfil\unhbox % \fi % \egroup}% % \next} % % \def\normbox % {\dodoubleempty\donormbox} % vcenter in text, we kunnen vcenter overloaden \def\halfwaybox {\dowithnextbox {\nextboxdp\zeropoint \setbox\nextbox\normalhbox{\lower.5\nextboxht\flushnextbox}% \flushnextbox} \normalhbox} %D New: \def\setdimentoatleast#1#2% {\ifdim#1>\zeropoint\else#1=#2\fi} %D And even rawer: \let\naturalhbox \normalhbox \let\naturalvbox \normalvbox \let\naturalvtop \normalvtop \let\naturalvcenter \normalvtop \ifdefined\textdir \def\naturalhbox{\normalhbox dir TLT} \def\naturalvbox{\normalvbox dir TLT} %def\naturalvtop{\normalvtop dir TLT} \fi %D \macros %D {vcenter} %D %D Also new: tex mode \type {\vcenter}. \let\verynormalvcenter \vcenter % since \vcenter can be visualized \def\vcenter {\normalvbox\bgroup \dowithnextbox{\normalhbox{$\verynormalvcenter{\flushnextbox}$}\egroup} \normalvbox} % could be \everymathematics \prependtoks \let\vcenter\normalvcenter \to \everymath \prependtoks \let\vcenter\normalvcenter \to \everydisplay %D \macros %D {frozenhbox} %D %D A not so well unhboxable bxo can be made with: \def\frozenhbox {\hbox\bgroup\dowithnextbox{\hbox{\hbox{\flushnextbox}}\egroup}\hbox} %D \macros %D {setboxllx,setboxlly,gsetboxllx,gsetboxlly,getboxllx,getboxlly} %D %D A prelude to an extended \TEX: % \def\setboxllx #1#2{\bgroup\scratchdimen#2\expanded{\egroup\noexpand\setevalue{b@@x\number#1}{\the\scratchdimen}}} % \def\setboxlly #1#2{\bgroup\scratchdimen#2\expanded{\egroup\noexpand\setevalue{b@@y\number#1}{\the\scratchdimen}}} % % \def\gsetboxllx#1#2{\bgroup\scratchdimen#2\setxvalue{b@@x\number#1}{\the\scratchdimen}\egroup} % \def\gsetboxlly#1#2{\bgroup\scratchdimen#2\setxvalue{b@@y\number#1}{\the\scratchdimen}\egroup} \def\setboxllx#1#2{\setevalue{b@@x\number#1}{\the\dimexpr#2\relax}} \def\setboxlly#1#2{\setevalue{b@@y\number#1}{\the\dimexpr#2\relax}} \def\gsetboxllx{\global\setboxllx} \def\gsetboxlly{\global\setboxlly} \def\getboxllx#1{\executeifdefined{b@@x\number#1}\zeropoint} \def\getboxlly#1{\executeifdefined{b@@y\number#1}\zeropoint} %D \macros %D {shownextbox} %D %D Handy for tracing %D %D \starttyping %D \shownextbox\vbox{test} %D \shownextbox\vbox{test\endgraf} %D \shownextbox\vbox{test\endgraf\strut\endgraf} %D \shownextbox\vbox{test\endgraf\thinrule} %D \shownextbox\vbox{\setupwhitespace[big]test\endgraf\thinrule} %D \stoptyping \def\shownextbox {\dowithnextbox {\bgroup \showboxbreadth\maxdimen \showboxdepth \maxdimen \scratchcounter\interactionmode \batchmode \showbox\nextbox \box\nextbox \interactionmode\scratchcounter \egroup}} \def\spreadhbox#1% rebuilds \hbox{} {\bgroup \ifhbox#1\relax \setbox2\emptybox \unhbox#1% \doloop {\unpenalty\unskip\unpenalty\unskip\unpenalty\unskip \setbox0\lastbox \ifvoid0 \exitloop \else \setbox2\hbox {\ifhbox0 \spreadhbox0\else\box0\fi \ifvoid2 \else\hss\unhbox2\fi}% \fi}% \ifvoid2\else\unhbox2\fi \else \box#1% \fi \egroup} % makes sense but too much log for overfull boxes: % % \showboxbreadth\maxdimen % \showboxdepth \maxdimen \protect \endinput % a bit of test code: \hbox \bgroup \ruledvbox {\hbox{\strut gans}} \ruledvbox to \lineheight {\hbox{\strut gans}} \ruledvbox to \lineheight {\hbox {gans}} \ruledvbox to \strutheight{\hbox {gans}} \ruledvbox to \strutheight{\hbox{\strut gans}} \ruledvbox to \strutheight{\vss\hbox{gans}} \egroup context-modules-20240428/texmf-dist/tex/context/base/mkii/colo-ext.mkii0000644000175000017500000000325114536300610024706 0ustar hillehille%D \module %D [ file=colo-ext, % mostof thsi code used to be in colo-ini.tex %D version=1997.04.01, %D title=\CONTEXT\ Color Macros, %D subtitle=Extras, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Color Macros / Extras} \unprotect %D \macros %D {negatecolorcomponent, negativecolorbox} %D %D Sometimes, especially when we deal with typesetting %D devices, we want to reverse the color scheme. Instead of %D recalculating all those colors, we use a quick and dirty %D approach: %D %D \starttyping %D \negativecolorbox0 %D \stoptyping %D %D will negate the colors in box zero. \def\negatecolorbox#1% {\setbox#1\hbox {\dostartnegative \localstartcolor[white]\vrule\!!height\ht#1\!!depth\dp#1\!!width\wd#1\localstopcolor \hskip-\wd#1% \box#1% \dostopnegative}} %D There are in principle two ways to handle overprint: bound to colors %D or independent. For the moment we only support independent overprint %D handling. Here we deal with a per-document setting. \setupcolors [\c!intent=\v!none] \def\starttextoverprint {\doifelse\@@clintent\v!overprint {\glet\stoptextoverprint \dostopoverprint \glet\starttextoverprint\dostartoverprint \dostartoverprint} {\glet\stoptextoverprint\donothing}} \let\stoptextoverprint\donothing \appendtoks \starttextoverprint \to \everystarttextproperties \appendtoks \stoptextoverprint \to \everystoptextproperties \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/norm-ltx.mkii0000644000175000017500000002310114536300610024730 0ustar hillehille%D \module %D [ file=norm-ltx, %D version=2009.03.19, %D title=\CONTEXT\ Norm Macros, %D subtitle=\LUATEX, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This file will become obsolete! % luatex primitives (incomplete) \let \normalUdelcode = \Udelcode \let \normalUdelcodenum = \Udelcodenum \let \normalUdelimiter = \Udelimiter \let \normalUmathaccent = \Umathaccent \let \normalUmathaccents = \Umathaccents \let \normalUmathaxis = \Umathaxis \let \normalUmathbinbinspacing = \Umathbinbinspacing \let \normalUmathbinclosespacing = \Umathbinclosespacing \let \normalUmathbininnerspacing = \Umathbininnerspacing \let \normalUmathbinopenspacing = \Umathbinopenspacing \let \normalUmathbinopspacing = \Umathbinopspacing \let \normalUmathbinordspacing = \Umathbinordspacing \let \normalUmathbinpunctspacing = \Umathbinpunctspacing \let \normalUmathbinrelspacing = \Umathbinrelspacing \let \normalUmathbotaccent = \Umathbotaccent \let \normalUmathchar = \Umathchar \let \normalUmathchardef = \Umathchardef \let \normalUmathcharnum = \Umathcharnum \let \normalUmathclosebinspacing = \Umathclosebinspacing \let \normalUmathcloseclosespacing = \Umathcloseclosespacing \let \normalUmathcloseinnerspacing = \Umathcloseinnerspacing \let \normalUmathcloseopenspacing = \Umathcloseopenspacing \let \normalUmathcloseopspacing = \Umathcloseopspacing \let \normalUmathcloseordspacing = \Umathcloseordspacing \let \normalUmathclosepunctspacing = \Umathclosepunctspacing \let \normalUmathcloserelspacing = \Umathcloserelspacing \let \normalUmathcode = \Umathcode \let \normalUmathcodenum = \Umathcodenum \let \normalUmathconnectoroverlapmin = \Umathconnectoroverlapmin \let \normalUmathfractiondelsize = \Umathfractiondelsize \let \normalUmathfractiondenomdown = \Umathfractiondenomdown \let \normalUmathfractiondenomvgap = \Umathfractiondenomvgap \let \normalUmathfractionnumup = \Umathfractionnumup \let \normalUmathfractionnumvgap = \Umathfractionnumvgap \let \normalUmathfractionrule = \Umathfractionrule \let \normalUmathinnerbinspacing = \Umathinnerbinspacing \let \normalUmathinnerclosespacing = \Umathinnerclosespacing \let \normalUmathinnerinnerspacing = \Umathinnerinnerspacing \let \normalUmathinneropenspacing = \Umathinneropenspacing \let \normalUmathinneropspacing = \Umathinneropspacing \let \normalUmathinnerordspacing = \Umathinnerordspacing \let \normalUmathinnerpunctspacing = \Umathinnerpunctspacing \let \normalUmathinnerrelspacing = \Umathinnerrelspacing \let \normalUmathlimitabovebgap = \Umathlimitabovebgap \let \normalUmathlimitabovekern = \Umathlimitabovekern \let \normalUmathlimitabovevgap = \Umathlimitabovevgap \let \normalUmathlimitdownbgap = \Umathlimitdownbgap \let \normalUmathlimitdownkern = \Umathlimitdownkern \let \normalUmathlimitdownvgap = \Umathlimitdownvgap \let \normalUmathopbinspacing = \Umathopbinspacing \let \normalUmathopclosespacing = \Umathopclosespacing \let \normalUmathopenbinspacing = \Umathopenbinspacing \let \normalUmathopenclosespacing = \Umathopenclosespacing \let \normalUmathopeninnerspacing = \Umathopeninnerspacing \let \normalUmathopenopenspacing = \Umathopenopenspacing \let \normalUmathopenopspacing = \Umathopenopspacing \let \normalUmathopenordspacing = \Umathopenordspacing \let \normalUmathopenpunctspacing = \Umathopenpunctspacing \let \normalUmathopenrelspacing = \Umathopenrelspacing \let \normalUmathoperatorsize = \Umathoperatorsize \let \normalUmathopinnerspacing = \Umathopinnerspacing \let \normalUmathopopenspacing = \Umathopopenspacing \let \normalUmathopopspacing = \Umathopopspacing \let \normalUmathopordspacing = \Umathopordspacing \let \normalUmathoppunctspacing = \Umathoppunctspacing \let \normalUmathoprelspacing = \Umathoprelspacing \let \normalUmathordbinspacing = \Umathordbinspacing \let \normalUmathordclosespacing = \Umathordclosespacing \let \normalUmathordinnerspacing = \Umathordinnerspacing \let \normalUmathordopenspacing = \Umathordopenspacing \let \normalUmathordopspacing = \Umathordopspacing \let \normalUmathordordspacing = \Umathordordspacing \let \normalUmathordpunctspacing = \Umathordpunctspacing \let \normalUmathordrelspacing = \Umathordrelspacing \let \normalUmathoverbarkern = \Umathoverbarkern \let \normalUmathoverbarrule = \Umathoverbarrule \let \normalUmathoverbarvgap = \Umathoverbarvgap \let \normalUmathoverdelimiterbgap = \Umathoverdelimiterbgap \let \normalUmathoverdelimitervgap = \Umathoverdelimitervgap \let \normalUmathpunctbinspacing = \Umathpunctbinspacing \let \normalUmathpunctclosespacing = \Umathpunctclosespacing \let \normalUmathpunctinnerspacing = \Umathpunctinnerspacing \let \normalUmathpunctopenspacing = \Umathpunctopenspacing \let \normalUmathpunctopspacing = \Umathpunctopspacing \let \normalUmathpunctordspacing = \Umathpunctordspacing \let \normalUmathpunctpunctspacing = \Umathpunctpunctspacing \let \normalUmathpunctrelspacing = \Umathpunctrelspacing \let \normalUmathquad = \Umathquad \let \normalUmathradicaldegreeafter = \Umathradicaldegreeafter \let \normalUmathradicaldegreebefore = \Umathradicaldegreebefore \let \normalUmathradicaldegreeraise = \Umathradicaldegreeraise \let \normalUmathradicalkern = \Umathradicalkern \let \normalUmathradicalrule = \Umathradicalrule \let \normalUmathradicalvgap = \Umathradicalvgap \let \normalUmathrelbinspacing = \Umathrelbinspacing \let \normalUmathrelclosespacing = \Umathrelclosespacing \let \normalUmathrelinnerspacing = \Umathrelinnerspacing \let \normalUmathrelopenspacing = \Umathrelopenspacing \let \normalUmathrelopspacing = \Umathrelopspacing \let \normalUmathrelordspacing = \Umathrelordspacing \let \normalUmathrelpunctspacing = \Umathrelpunctspacing \let \normalUmathrelrelspacing = \Umathrelrelspacing \let \normalUmathspaceafterscript = \Umathspaceafterscript \let \normalUmathstackdenomdown = \Umathstackdenomdown \let \normalUmathstacknumup = \Umathstacknumup \let \normalUmathstackvgap = \Umathstackvgap \let \normalUmathsubshiftdown = \Umathsubshiftdown \let \normalUmathsubshiftdrop = \Umathsubshiftdrop \let \normalUmathsubsupshiftdown = \Umathsubsupshiftdown \let \normalUmathsubsupvgap = \Umathsubsupvgap \let \normalUmathsubtopmax = \Umathsubtopmax \let \normalUmathsupbottommin = \Umathsupbottommin \let \normalUmathsupshiftdrop = \Umathsupshiftdrop \let \normalUmathsupshiftup = \Umathsupshiftup \let \normalUmathsupsubbottommax = \Umathsupsubbottommax \let \normalUmathunderbarkern = \Umathunderbarkern \let \normalUmathunderbarrule = \Umathunderbarrule \let \normalUmathunderbarvgap = \Umathunderbarvgap \let \normalUmathunderdelimiterbgap = \Umathunderdelimiterbgap \let \normalUmathunderdelimitervgap = \Umathunderdelimitervgap \let \normalUoverdelimiter = \Uoverdelimiter \let \normalUradical = \Uradical \let \normalUroot = \Uroot \let \normalUunderdelimiter = \Uunderdelimiter \let \normalattribute = \attribute \let \normalattributedef = \attributedef \let \normalcatcodetable = \catcodetable \let \normalclearmarks = \clearmarks \let \normalcrampeddisplaystyle = \crampeddisplaystyle \let \normalcrampedscriptscriptstyle = \crampedscriptscriptstyle \let \normalcrampedscriptstyle = \crampedscriptstyle \let \normalcrampedtextstyle = \crampedtextstyle \let \normalformatname = \formatname \let \normalifabsdim = \ifabsdim \let \normalifabsnum = \ifabsnum \let \normalifprimitive = \ifprimitive \let \normalinitcatcodetable = \initcatcodetable \let \normallatelua = \latelua \let \normalluaescapestring = \luaescapestring \let \normalluastartup = \luastartup %let \normalluatexdatestamp = \luatexdatestamp \let \normalluatexrevision = \luatexrevision \let \normalluatexversion = \luatexversion \let \normalnokerns = \nokerns \let \normalnoligs = \noligs \let \normalpageleftoffset = \pageleftoffset \let \normalpagetopoffset = \pagetopoffset \let \normalpostexhyphenchar = \postexhyphenchar \let \normalposthyphenchar = \posthyphenchar \let \normalpreexhyphenchar = \preexhyphenchar \let \normalprehyphenchar = \prehyphenchar \let \normalprimitive = \primitive \let \normalsavecatcodetable = \savecatcodetable \let \normalscantextokens = \scantextokens \let \normalsuppressfontnotfounderror = \suppressfontnotfounderror \let \normalsuppressifcsnameerror = \suppressifcsnameerror \let \normalsuppresslongerror = \suppresslongerror \let \normalsynctex = \synctex \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-run.mkii0000644000175000017500000002226314536300610024725 0ustar hillehille%D \module %D [ file=xtag-run, %D version=2001.01.10, %D title=\CONTEXT\ XML Macros, %D subtitle=Visualization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % TODO: make this mkiv compliant, catcode tables etc \writestatus{loading}{ConTeXt XML Macros / Visualization} \unprotect \bgroup \catcode`\.=\escapecatcode .catcode`.B=.begingroupcatcode .catcode`.E=.endgroupcatcode .catcode`.#=.activecatcode .catcode`.$=.activecatcode .catcode`.%=.activecatcode .catcode`.\=.activecatcode .catcode`.^=.activecatcode .catcode`._=.activecatcode .catcode`.{=.activecatcode .catcode`.}=.activecatcode .catcode`.|=.activecatcode .catcode`.~=.activecatcode .gdef.verbatimXML B.catcode`.#=.activecatcode .let#.letterhash .catcode`.$=.activecatcode .let$.dollar .catcode`.%=.activecatcode .let%.percent .catcode`.\=.activecatcode .let\.letterbackslash .catcode`.^=.activecatcode .let^.letterhat .catcode`._=.activecatcode .let_.letterunderscore .catcode`.{=.activecatcode .let{.leftargument .catcode`.}=.activecatcode .let}.rightargument .catcode`.|=.activecatcode .let|.letterbar .catcode`.~=.activecatcode .let~.lettertilde E .egroup \gdef\@@XMLshow{\@@XML shw} \gdef\@XMLindent#1% {\ifnum\XMLlevel>\plusone\advance\leftskip#11em\relax\fi} \gdef\@XMLlevel#1% {\advance\XMLlevel#11\relax} \unexpanded\gdef\@XMLentity#1% {\noindent\hbox{\localcolortrue\color[xtag:0]{\string}}} \bgroup \@EA\catcode\string`=\activecatcode \@EA\catcode\string`"\activecatcode \@EA\catcode\string``\activecatcode \@EA\catcode\string`&\activecatcode \gdef\doshowXMLargument#1#2#3#4% {\hskip\zeropoint % or maybe \allowbreak \string#1\color[xtag:#3]{#4}\string#2}% \gdef\showXMLarguments {\hskip\zeropoint % or maybe \allowbreak \ifshowXMLarguments \bgroup \@EA\catcode\string`=\activecatcode \@EA\catcode\string`"\activecatcode \@EA\catcode\string``\activecatcode \@EA\catcode\string`&\activecatcode \def={\color[xtag:7]{\string=}}% \def"##1"{\doshowXMLargument""8{##1}}% \def`##1`{\doshowXMLargument``8{##1}}% \def&##1;{\doshowXMLargument&;7{##1}}% \scantokens\@EA{\currentXMLarguments}% \egroup \else \currentXMLarguments \fi} \egroup \ifx\XMLprettycycle\undefined \gdef\XMLprettycycle{3} \fi \doglobal\newcounter\@XMLnofelements \doglobal\newif\ifXMLunspacepretty \gdef\@XMLelement#1% {\ifnum\XMLlevel<\@@xflevel\relax \ifnum\kindofXMLelement=2\else \doglobal\increment\@XMLnofelements\relax \ifcase\@XMLnofelements\else\@@xfinbetween\fi \fi \fi % no, too fragile: % \ifnum\XMLlevel>1\hangindent2em\fi \ifcase\kindofXMLelement\or\or \getvalue{\@@XMLshow::\currentXMLelement}\relax \fi \dontleavehmode % \indent \bgroup % \localcolortrue \advance\XMLlevel \minusone \DoMod\XMLlevel by\XMLprettycycle to\scratchcounter \advance\scratchcounter \plusone \startcolor[xtag:\ifnum\scratchcounter<0 0\else\number\scratchcounter\fi]% \ifXMLunspacepretty\unskip\fi \string<% \ifnum\kindofXMLelement=2\string/\fi \currentXMLelement \stopcolor \ifcase#1\or \cleanupXMLarguments % get rid of spurious end space and end / \ifx\currentXMLarguments\empty\else \setbox\scratchbox\hbox{\space}\hskip\wd\scratchbox % hm, slow \startcolor[xtag:0]\showXMLarguments\unskip\stopcolor\unskip \fi \fi \startcolor[xtag:\ifnum\scratchcounter<0 0\else\number\scratchcounter\fi]% \ifnum\kindofXMLelement=3\string/\fi \string>% \stopcolor \egroup \ifcase\kindofXMLelement\or \getvalue{\@@XMLshow::\currentXMLelement}\relax \fi \ifnum\XMLlevel<\@@xflevel\relax \ifnum\kindofXMLelement=1\else \doglobal\increment\@XMLnofelements\relax \ifcase\@XMLnofelements\else\@@xfinbetween\fi \fi \fi \ifXMLunspacepretty\ignorespaces\fi} \gdef\nextXMLtext{\blank\@XMLlevel+\@XMLelement1\par} \gdef\prevXMLtext{\par\@XMLelement0\par\@XMLlevel-\blank} \gdef\nextXMLpara{\nextXMLline\par} \gdef\prevXMLpara{\par\prevXMLline} \gdef\nextXMLline{\par\@XMLlevel+\@XMLindent+\@XMLelement1} \gdef\prevXMLline{\@XMLelement0\par\@XMLindent-\@XMLlevel-} \gdef\nextXMLword{\@XMLlevel+\@XMLelement1} \gdef\prevXMLword{\@XMLelement0\@XMLlevel-} \gdef\someXMLtext{\blank\@XMLlevel+\@XMLelement1\@XMLlevel-\blank} \gdef\someXMLpara{\someXMLline} \gdef\someXMLline{\par\@XMLlevel+\@XMLindent+\@XMLelement1\par\@XMLindent-\@XMLlevel-} \gdef\someXMLword{\@XMLlevel+\@XMLelement1\@XMLlevel-} \gdef\@XMLindent#1% {\ifnum\XMLlevel>\zerocount \advance\leftskip#11em\relax \fi} \gdef\nextXMLtext{\blank\@XMLlevel+\@XMLelement1\par\@XMLindent+} \gdef\prevXMLtext{\par\@XMLindent-\@XMLelement0\par\@XMLlevel-\blank} \gdef\nextXMLpara{\nextXMLline\par\@XMLindent+} \gdef\prevXMLpara{\par\@XMLindent-\prevXMLline} \gdef\nextXMLline{\par\@XMLlevel+\@XMLelement1} \gdef\prevXMLline{\@XMLelement0\par\@XMLlevel-} \gdef\someXMLline{\par\@XMLlevel+\@XMLelement1\par\@XMLlevel-} \gdef\setXMLshow#1#2#3[#4]% {\def\docommand##1{#1[##1]#2#3\letvalue{\@@XMLshow:##1}\empty}% \processcommalist[#4]\docommand} \gdef\showXMLign[#1]% {\setXMLshow\defineXMLignore \relax\relax[#1]% \setXMLshow\defineXMLsingular \relax\relax[#1]} \gdef\showXMLnop[#1]% {\setXMLshow\defineXMLenvironment\relax\relax[#1]% \setXMLshow\defineXMLsingular \relax\relax[#1]} \gdef\showXMLtxt[#1]% {\setXMLshow\defineXMLenvironment\nextXMLtext\prevXMLtext[#1]% \setXMLshow\defineXMLsingular \someXMLtext\relax [#1]} \gdef\showXMLpar[#1]% {\setXMLshow\defineXMLenvironment\nextXMLpara\prevXMLpara[#1]% \setXMLshow\defineXMLsingular \someXMLline\relax [#1]} \gdef\showXMLlin[#1]% {\setXMLshow\defineXMLenvironment\nextXMLline\prevXMLline[#1]% \setXMLshow\defineXMLsingular \someXMLword\relax [#1]} \gdef\showXMLwrd[#1]% {\setXMLshow\defineXMLenvironment\nextXMLword\prevXMLword[#1]% \setXMLshow\defineXMLsingular \someXMLword\relax [#1]} \gdef\showXMLemp[#1]% {\setXMLshow\defineXMLsingular\someXMLword\relax[#1]} \gdef\showXMLbreak[#1]% {\def\docommand##1{\setvalue{\@@XMLshow::##1}{\hskip\zeropoint}}% \processcommalist[#1]\docommand} \gdef\doautoshowXMLelement {\ifcase\kindofXMLelement \or \nextXMLpara \or \prevXMLpara \or \someXMLline \fi} \gdef\autoshowXMLelement {\ifcsname\@@XMLshow:\currentXMLelement\endcsname \expandafter\normalexecuteXMLelement \else \expandafter\doautoshowXMLelement \fi} \global\let\normalexecuteXMLelement\executeXMLelement \gdef\showXMLfile#1% {\bgroup % temp hack, will be the normal definition \long\def\docleanupXMLarguments##1/ ##2\relax{\def\currentXMLarguments{##1}}% % so far for hack \nohyphens \dontcomplain \XMLlevel\zerocount \increment\@@xflevel % hack \tttf \startpacked[\v!blank] \ifautoXMLshow \let\executeXMLelement\autoshowXMLelement \fi \let\executeXMLentity\@XMLentity \enableXML\verbatimXML \enableregime[utf]% \utfunicodetracer\pluseight \veryraggedright \readfile{\truefilename{#1}}\donothing\donothing\endgraf \removelastskip % really needed \stoppacked \egroup} \gdef\showXMLtext#1% {\bgroup % temp hack, will be the normal definition \long\def\docleanupXMLarguments##1/ ##2\relax{\def\currentXMLarguments{##1}}% % so far for hack \dontcomplain \XMLlevel\maxcard \increment\@@xflevel % hack \tttf \ifautoXMLshow \let\executeXMLelement\autoshowXMLelement \fi \let\executeXMLentity\@XMLentity \let\par\allowbreak\let\endgraf\par \setbox\scratchbox\hbox {\enableXML\verbatimXML\scantokens{#1}\removelastskip}% \unhbox\scratchbox \egroup} \gdef\showXMLbuffer {\dosingleempty\doshowXMLbuffer} \gdef\doshowXMLbuffer[#1]% {\doifelsenothing{#1} {\doshowXMLbuffer[\jobname]} {\bgroup \def\dodoprocessXMLbuffer##1{\showXMLfile{\TEXbufferfile{##1}}}% \processcommalist[#1]\dodoprocessXMLbuffer \egroup}} %D \gdef\showXSDcomponent {\dodoubleargument\doshowXSDcomponent} \gdef\doshowXSDcomponent[#1][#2]% {\bgroup \showXMLnop[xsd:schema] \showXMLign[xsd:appInfo] \showXMLign[xsd:annotation] \videXMLcontextblock[#2] \showXMLfile{#1} \egroup} \gdef\showRNGcomponent {\dodoubleargument\doshowRNGcomponent} \gdef\doshowRNGcomponent[#1][#2]% {\bgroup \videXMLcontextblock[#2] \showXMLfile{#1} \egroup} %D \gdef\tracebackXMLattribute#1% {\bgroup \doloop {\ifcsname\@@XMLdepth:\recurselevel\endcsname \edef\!!stringa{\csname\@@XMLdepth:\recurselevel\endcsname}% \writestatus {XML TRACE} {[#1] [\recurselevel] [\!!stringa] [\XMLinh{#1}]}% \else \exitloop \fi}% \egroup} \gdef\showXMLinh[#1]% {\doifsomething{#1} {\bgroup\infofont[% \dorecurse\XMLdepth % {\csname\@@XMLvariable:\csname\@@XMLdepth:\recurselevel\endcsname:#1\endcsname {\csname\@@XMLvariable:\recurselevel:#1\endcsname \ifnum\recurselevel<\XMLdepth->\fi}% ]\egroup}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/font-ini.mkii0000644000175000017500000042455714536300610024717 0ustar hillehille%D \module %D [ file=font-ini, %D version=1998.09.11, % (second) %D version=2001.02.20, % (third) %D title=\CONTEXT\ Font Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Font Macros / Initialization} \unprotect % \def\fontrange#1% % {\dofontrange{#1 =\bodyfontsize}} % % \def\dofontrange#1% % {\dodofontrange#1 \relax}% \fontstringA % % \def\dodofontrange#1 #2 % % {\ifdim\bodyfontsize#2% % #1\expandafter\gobbleuntilrelax % \else % \expandafter\dodofontrange % \fi} % % \definefont % [crap] % [\fontrange % {Regular <10pt % RegularBold <12pt % RegularSlanted <15pt % Regular} sa 1] % % may be better: % % \definefontrange % [crap] % [Regular <10pt % RegularBold <12pt % RegularSlanted <15pt] % [Regular sa 1] % % % \dostepwiserecurse{2}{15}{1} % {{\switchtobodyfont[\recurselevel pt]\crap test}\endgraf} % adapted, else wrong interlinespace \def\setfontparameters {\synchronizefontsfalse \the\everybodyfont \synchronizefontstrue} % handy \newcounter\pushedfont \def\savefont {\edef\savedfont{\the\font}% \pushmacro\savedfont \pushmacro\currentregime \pushmacro\charactermapping \pushmacro\characterencoding} \def\restorefont {\popmacro\characterencoding \popmacro\charactermapping \popmacro\currentregime \popmacro\savedfont \savedfont} \def\pushcurrentfont {\edef\popcurrentfont {\noexpand\def\noexpand\fontbody{\fontbody}% \noexpand\def\noexpand\fontstyle{\fontstyle}% \noexpand\dosetcurrentfontalternative{\fontalternative}% \noexpand\dosetcurrentfontsize{\fontsize}% \noexpand\synchronizefont}} % \definetypeface[one][rm][serif][computer-roman][default] % \definetypeface[two][rm][serif][computer-roman][default][rscale=.9] % % {\one \bf test \two test} % {\one \bf test \pushcurrentfont \two \popcurrentfont test} %D \macros %D {definedfont,startfont,doiffontcharelse} %D %D A couple of relatively new macros: \newevery \everydefinedfont \relax \def\dodefinedfont[#1]% {\iffirstargument\definefont[\string\thedefinedfont][#1]\fi \csname\string\thedefinedfont\endcsname % can be \relax \the\everydefinedfont} % hm, redundant \unexpanded\def\definedfont {\dosingleempty\dodefinedfont} \unexpanded\def\startfont {\bgroup\definedfont} \def\stopfont {\egroup} \def\doiffontcharelse#1#2% {\bgroup \definedfont[#1]% \iffontchar\font#2\relax \egroup\expandafter\firstoftwoarguments \else \egroup\expandafter\secondoftwoarguments \fi} %%% message 14 added % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved % messages moved %D This module is one of the oldest modules of \CONTEXT. The %D macros below evolved out of the \PLAIN\ \TEX\ macros and %D therefore use a similar naming scheme (\type{\rm}, %D \type{\bf}, etc). This module grew out of our needs. We %D started with the \PLAIN\ \TEX\ definitions, generalized the %D underlaying macros, and extended those to a level at which %D probably no one will ever recognize them. %D %D In 2001 we ran into a couple of projects where more than %D one combined set of fonts was involved in a document. To %D make definitions more readable, as well as to overcome the %D problem of ever growing file name lists, and also because %D we needed to scale fonts relative to each other, the low %D level implementation was partly rewritten. Global %D font assignments, relative scaling, font classes and alike %D were added then. At the same time some macros were made a %D bit more readable, and math support was extended to the %D larger sizes. %D %D One important characteristic of the font mechanism presented %D here is the postponing of font loading. This makes it %D possible to distribute \type{fmt} files without bothering %D about the specific breed of \type{tfm} files. %D %D Another feature implemented here is the massive switching %D from roman to {\ss sans serif}, {\tt teletype} or else. This %D means one doesn't have to take care of all kind of relations %D between fonts. %D %D \page[bigpreference] %D \macros %D {rm,ss,tt,hw,cg} %D %D Fonts are defined in separate files. When we define a font, %D we distinguish between several styles. In most cases we will %D use: %D %D \startlinecorrection %D \starttable[|l||] %D \HL %D \NC roman regular serif \NC \type{\rm} \NC\FR %D \NC sansserif sans support \NC \type{\ss} \NC\MR %D \NC type teletype mono \NC \type{\tt} \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D %D The number of styles is not limited to these three. When %D using Lucida Bright we can for instance also define: %D %D \startlinecorrection %D \starttable[|l||] %D \HL %D \NC handwritten \NC \type{\hw} \NC\FR %D \NC calligraphic \NC \type{\cg} \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D %D Anyone who feels the need, can define additional ones, like %D %D \startlinecorrection %D \starttable[|l||] %D \HL %D \NC faxfont \NC \type{\ff} \NC\FR %D \NC blackboard \NC \type{\bb} \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D %D Or even %D %D \startlinecorrection %D \starttable[|l||] %D \HL %D \NC hebrew \NC \type{\hb} \NC\SR %D \HL %D \stoptable %D \stoplinecorrection %D %D Styles are grouped in font sets. At the moment there are %D three main sets defined: %D %D \startlinecorrection %D \starttable[|l|l||] %D \HL %D \NC Computer Modern Roman \NC Knuth \NC \type{cmr} \NC\FR %D \NC Lucida Bright \NC Bigelow \& Holmes \NC \type{lbr} \NC\MR %D \NC Standard Postscript Fonts \NC Adobe \NC \type{pos} \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D %D There are also some Computer Modern Roman alternatives: %D %D \startlinecorrection %D \starttable[|l|l||] %D \HL %D \NC Computer Modern Roman \NC Knuth \& Sauter \NC \type{sau} \NC\FR %D \NC Euler fonts \NC Zapf \NC \type{eul} \NC\MR %D \NC Computer Modern Concrete \NC Knuth \& Zapf \NC \type{con} \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D %D All these definitions are ordered in files with names like %D \type{font-cmr} and \type{font-pos}, where the last three %D characters specify the name as known to \CONTEXT. %D %D Within such a font set (\type{cmr}) and style (\type{\rm}) %D we can define a number of text font alternatives: %D %D \startlinecorrection %D \starttable[|l||] %D \HL %D \NC typeface \NC \type{\tf} \NC\FR %D \NC boldface \NC \type{\bf} \NC\MR %D \NC slanted \NC \type{\sl} \NC\MR %D \NC italic \NC \type{\it} \NC\MR %D \NC boldslanted \NC \type{\bs} \NC\MR %D \NC bolditalic \NC \type{\bi} \NC\MR %D \NC smallcaps \NC \type{\sc} \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D For old stylish Frans Goddijn we have: %D %D \startlinecorrection %D \starttable[|l||] %D \HL %D \NC oldstyle \NC \type{\os} \NC\SR %D \HL %D \stoptable %D \stoplinecorrection %D %D The availability of these alternatives depends on the %D completeness of a font family and of course the definitions %D in the font files. %D %D But let's not forget math. In addition to the previous \TEX\ %D families (the mysterious \type{\fam}'s) we've got some more: %D %D \startlinecorrection %D \starttable[|l||] %D \HL %D \NC Math Roman \NC \type{\mr} \NC\FR %D \NC Math Italic \NC \type{\mi} \NC\MR %D \NC Math Symbol \NC \type{\sy} \NC\MR %D \NC Math Extra \NC \type{\ex} \NC\MR %D \NC Math A \NC \type{\ma} \NC\MR %D \NC Math B \NC \type{\mb} \NC\MR %D \NC Math C \NC \type{\mc} \NC\LR %D \HL %D \stoptable %D \stoplinecorrection %D %D Users can call for specific fonts in many ways. Switches to %D other typefaces, like the switch from normal to bold, are as %D intuitive as possible, which means that all dependant fonts %D also switch. One can imagine that this takes quite some %D processing time. %D %D Internally fonts are stored as combination of size, style %D and alternative, e.g. \type{12pt}+\type{\ss}+\type{\bf}. %D Users are not confronted with sizes, but use the style or %D style+alternative to activate them. %D %D During the definition of a bodyfont one can also declare the %D available larger alternatives: %D %D \starttyping %D \tf \tfa \tfb \tfc ... %D \bf \bfa \bfb \bfc ... %D \sl \sla \slb \slc ... %D \stoptyping %D %D The smaller ones are automatically supplied and derived from %D the the bodyfont environment. %D %D \starttyping %D \tfx \tfxx %D \bfx \bfxx %D \slx \slxx %D \stoptyping %D %D There are only two smaller alternatives per style. The %D larger alternatives on the other hand have no limitations. %D %D These larger alternatives are mostly used in chapter and %D section titles or on title pages. When one switches to a %D larger alternative, the bold an other ones automatically %D adapt themselves: %D %D \startbuffer %D \tfd Hi \bf there\sl, here \tfb I \bf am %D \stopbuffer %D %S \startnarrower %D \typebuffer %S \stopnarrower %D %D therefore becomes: %D %D \startvoorbeeld %D \getbuffer %D \stopvoorbeeld %D %D Maybe this mechanism isn't always as logic, but as said %D before, we tried to make it as intuitive as possible. %D %D So a specific kind of glyph can be characterized by: %D %D \startnarrower %D family (cmr) + bodyfont (12pt) + style (rm) + alternative (bf) + size (a) %D \stopnarrower %D %D The last component (the size) is optional. %D %D We introduced \type{\tf} as command to call for the current %D normally sized typeface. This commands results in roman, %D sans serif, teletype or whatever style is in charge. Such %D rather massive switches of style sometimes take more %D processing time than comfortable. Of course there is a %D workaround for this: we can call fonts directly by means of %D commands like: %D %D \starttyping %D \rmtf \sssl \tttf \rmbsa %D \stoptyping %D %D One should realize that this fast calls have limitations, %D they lack for instance automatic super- and subscript %D support. %D %D This leaves us two more commands: \type{\tx} and %D \type{\txx}. These activate a smaller and even more smaller %D font than the current one and adapt themselves to the %D current alternative, so when \type{\bf} is active, %D \type{\tx} gives a smaller boldface, which in turn can be %D called directly by \type{\bfx}. %D %D These two smaller alternatives are specified by the bodyfont %D environment and therefore not necessarily have similar sizes %D as \type{\scriptsize} and \type{\scriptscriptsize}. The main %D reason for this incompatibility (which can easily be undone) %D lays in the fact that we often want a bit bigger characters %D than in math mode. In \CONTEXT\ for instance the \type{\tx} %D and \type{\txx} commands are used for surrogate %D \cap{smallcaps} which support both nesting and alternatives, %D like in {\bf\cap{a \cap{small} world}}, which was typeset by %D %D \starttyping %D \bf\cap{a \cap{small} world} %D \stoptyping %D %D And compare $\rm \scriptstyle THIS$ with the slightly larger %D \cap{THIS}: \ruledhbox{$\rm \scriptstyle scriptstyle: THIS$} %D or \ruledhbox{\cap{x style: THIS}} makes a big difference. %D The \type{x..d} sizes should be used grouped. If you %D don't group them, i.e. call them in a row, \CONTEXT\ will %D not be able to sort out your intention (\type {x} inside %D \type {d} inside \type {x}. etc.). The following table %D demonstrates this: %D %D \def\FontState{\setstrut\ruledhbox{\strut Hello}} %D %D \starttabulate[|||||] %D \HL %D \NC \rlap{\quad\bf grouped} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR %D \HL %D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR %D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR %D \NC \type{\tf} \NC \tf \FontState \NC \tf \tx \FontState \NC \tf \txx \FontState \NC \NR %D \NC \type{\tfa} \NC \tfa \FontState \NC \tfa \tx \FontState \NC \tfa \txx \FontState \NC \NR %D \NC \type{\tfb} \NC \tfb \FontState \NC \tfb \tx \FontState \NC \tfb \txx \FontState \NC \NR %D \NC \type{\tfc} \NC \tfc \FontState \NC \tfc \tx \FontState \NC \tfc \txx \FontState \NC \NR %D \NC \type{\tfd} \NC \tfd \FontState \NC \tfd \tx \FontState \NC \tfd \txx \FontState \NC \NR %D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR %D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR %D \HL %D \stoptabulate %D %D \blank %D %D \starttabulate[|||||] %D \HL %D \NC \rlap{\quad\bf stacked} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR %D \HL %D \NC \type{\tfx} %D \NC \tfx \FontState %D \NC \tfx \tx \FontState %D \NC \tfx \txx \FontState %D \NC \NR %D \NC \type{\tfxx} %D \NC \tfx\tfxx \FontState %D \NC \tfx\tfxx \tx \FontState %D \NC \tfx\tfxx \txx \FontState %D \NC \NR %D \NC \type{\tf} %D \NC \tfx\tfxx\tf \FontState %D \NC \tfx\tfxx\tf \tx \FontState %D \NC \tfx\tfxx\tf \txx \FontState %D \NC \NR %D \NC \type{\tfa} %D \NC \tfx\tfxx\tf\tfa \FontState %D \NC \tfx\tfxx\tf\tfa \tx \FontState %D \NC \tfx\tfxx\tf\tfa \txx \FontState %D \NC \NR %D \NC \type{\tfb} %D \NC \tfx\tfxx\tf\tfa\tfb \FontState %D \NC \tfx\tfxx\tf\tfa\tfb \tx \FontState %D \NC \tfx\tfxx\tf\tfa\tfb \txx \FontState %D \NC \NR %D \NC \type{\tfc} %D \NC \tfx\tfxx\tf\tfa\tfb\tfc \FontState %D \NC \tfx\tfxx\tf\tfa\tfb\tfc \tx \FontState %D \NC \tfx\tfxx\tf\tfa\tfb\tfc \txx \FontState %D \NC \NR %D \NC \type{\tfd} %D \NC \tfx\tfxx\tf\tfa\tfb\tfd \FontState %D \NC \tfx\tfxx\tf\tfa\tfb\tfd \tx \FontState %D \NC \tfx\tfxx\tf\tfa\tfb\tfd \txx \FontState %D \NC \NR %D \NC \type{\tfx} %D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \FontState %D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \tx \FontState %D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \txx \FontState %D \NC \NR %D \NC \type{\tfxx} %D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \FontState %D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \tx \FontState %D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \txx \FontState %D \NC \NR %D \HL %D \stoptabulate %D \macros %D {mf} %D %D Math fonts are a species in their own. They are tightly %D hooked into smaller and even smaller ones of similar breed %D to form a tight family. Let's first see how these are %D related: %D %D \startbuffer %D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\rm 6x^2$ %D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\rm 6x^2$ %D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\tf 6x^2$ %D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\tf 6x^2$ %D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\bf 6x^2$ %D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\bf 6x^2$ %D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\sl 6x^2$ %D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\sl 6x^2$ %D \stopbuffer %D %D \typebuffer %D %D Gives both an expected and unexpected result: %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D We see here that the character shapes change accordingly to %D the current family, but that the symbols are always typeset %D in the font assigned to \type{\fam0}. %D %D \startbuffer %D $\tf\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$ %D $\bf\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$ %D $\sl\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$ %D $\bs\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$ %D $\it\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$ %D $\bi\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$ %D \stopbuffer %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D In this example we see a new command \type{\mf} surface %D which means as much as {\em math font}. This commands %D reactivates the last font alternative and therefore equals %D \type{\bf}, \type{\sl} etc. but by default it equals %D \type{\tf}: \unexpanded\def\mf {\dodosetmathfont\fontalternative \csname\fontalternative\endcsname} %D The previous example was typeset saying: %D %D \typebuffer %D %D Beware: the exact location of \type{\mf} is not that %D important, we could as well has said %D %D \startbuffer %D $\bf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = \mf 6x^2$ %D \stopbuffer %D %D \typebuffer %D %D This is due to the way \TEX\ handles fonts in math mode. %D %D Of course we'll have to redefine \type{\mf} every time we %D change the current \type{\fam}. %D \macros %D {mbox,enablembox,mathop} %D %D Now how can we put this to use? Will the next sequence %D give the desired result? %D %D \startbuffer %D $\bf x^2 + \hbox{\mf whatever} + \sin(2x)$ %D \stopbuffer %D %D \typebuffer %D %D It won't! %D %D \startvoorbeeld %D \let\mathop=\normalmathop \getbuffer %D \stopvoorbeeld %D %D The reason for this is that \type{\sin} is defined as: %D %D \starttyping %D \def\sin{\mathop{\rm sin}\nolimits} %D \stoptyping %D %D We can fix this by defining \unexpanded\def\mathop {\normalmathop \bgroup \let\rm\mf \let\next=} %D We can fix arbitrary horizontal boxes by redefining the %D \TEX\ primitive \type{\hbox}: %D %D \starttyping %D \def\hbox{\ifmmode\mbox\else\normalhbox\fi} %D \stoptyping %D %D with %D %D \starttyping %D \def\mbox#1#% %D {\normalhbox#1\bgroup\mf\let\next=} %D \stoptyping %D %D or more robust, that is, also accepting \type{\hbox\bgroup}: %D %D \starttyping %D \def\mbox% %D {\normalhbox\bgroup\mf %D \dowithnextbox{\flushnextbox\egroup}% %D \normalhbox} %D \stoptyping %D %D And now: %D %D \startbuffer %D $\bf x^2 + \hbox{whatever} + \sin(2x)$ %D \stopbuffer %D %D \typebuffer %D %D Indeed gives: %D %D \startvoorbeeld %D \enablembox\getbuffer %D \stopvoorbeeld %D %D But, do we want this kind of trickery to be activated? No, %D simply because we cannot be sure of incompatibilities, %D although for instance unboxing goes ok. Therefore we %D introduce: % best can go to math-ini and make \mf a hook then % better use \dowithnextboxcontent \def\normalmbox {\normalhbox\bgroup\mf \dowithnextbox{\flushnextbox\egroup}\normalhbox} % to test: % % \def\normalmbox % {\dowithnextboxcontent\mf\flushnextbox\normalhbox} \def\mbox % we cannot add \dontleavehmode ... else no \setbox0\mbox possible {\ifmmode\normalmbox\else\normalhbox\fi} \def\enablembox {\appendtoks \ifx\normalhbox\undefined\let\normalhbox\hbox\fi \let\hbox\mbox \to\everymathematics} %D So in fact one can enable this feature if needed. I would say: %D go along, but use grouping if needed! %D \macros %D {mrfam,mifam,syfam,exfam, %D bsfam,bifam,scfam,tffam, %D mafam,mbfam,msfam} %D %D After this short mathematical excursion, we enter the world %D of fonts and fontswitching. We start with something very %D \TEX: \type{\fam} specified font families. \TEX\ uses %D families for managing fonts in math mode. Such a family has %D three members: text, script and scriptscript: $x^{y^z}$. In %D \CONTEXT\ we take a bit different approach than \PLAIN\ %D \TEX\ does. \PLAIN\ \TEX\ needs at least four families for %D typesetting math. We use those but give them symbolic names. \chardef\mrfam = 0 % (Plain TeX) Math Roman \chardef\mifam = 1 % (Plain TeX) Math Italic \chardef\syfam = 2 % (Plain TeX) Math Symbol \chardef\exfam = 3 % (Plain TeX) Math Extra %D \PLAIN\ \TEX\ also defines families for {\it italic}, {\sl %D slanted} and {\bf bold} typefaces, so we don't have to %D define them here. \ifx\itfam\undefined \chardef\itfam = 4 % (Plain TeX) Italic \chardef\slfam = 5 % (Plain TeX) Slanted \chardef\bffam = 6 % (Plain TeX) Boldface \fi %D Family~7 in \PLAIN\ \TEX\ is not used in \CONTEXT, because %D we do massive switches from roman to sans serif, teletype or %D other faces. \ifx\ttfam\undefined \chardef\ttfam = 7 % (Plain TeX) can be reused! \fi %D We define ourselves some more families for {\bs bold %D slanted}, {\bi bold italic} and {\sc Small Caps}, so %D we can use them in math mode too. Instead of separate %D families for {\ss sans serif} and \type{teletype} we use the %D more general \type{\tffam}, which stands for typeface. \chardef\bsfam = 8 % (ConTeXt) BoldSlanted \chardef\bifam = 9 % (ConTeXt) BoldItalic \chardef\scfam = 10 % (ConTeXt) SmallCaps \chardef\tffam = 11 % (ConTeXt) TypeFace %D Because Taco needs a few more math families, we reuse %D family~7 for all those typefaces that have no related %D family, and therefore are grouped into one. \chardef\nnfam = 7 % (ReUsed) NoName %D Normally \type{\mrfam} equals \type{\tffam}, but a more %D distinctive alternatives are possible, for instance the %D Euler and Concrete Typefaces. %D %D After having defined all those in nature non||mathematical %D families, we define ourselves some real math ones. These are %D needed for the \AMS\ Symbol Fonts and Extended Lucida %D Bright. \chardef\mafam = 12 % (ConTeXt) Math A Fam (AmsTeX A) \chardef\mbfam = 13 % (ConTeXt) Math B Fam (AmsTeX B) \chardef\mcfam = 14 % (ConTeXt) Math C Fam (MathTime) \chardef\mdfam = 15 % (ConTeXt) Math D Fam (MathTime) %D Because there are 16~families and because \type{\ttfam} %D is reused, at the moment we have no so many families %D left. By default, we map any newly defined family on the %D last one (F). \def\newfam#1{\chardef#1=15 } %D This hack is also needed because in \ETEX\ we are going %D to reuse the \type {\newfam} allocation counter. %D To ease the support of font packages, we als define %D shortcuts to these familynames. This is necessary because %D the family names are in fact \type{\chardef}'s, which means %D that we're dealing with numbers (one can check this by %D applying \type{\showthe} and \type{\show}). In the %D specification of math symbols however we need hexadecimal %D numbers, so we have to convert the \type{\fam}'s value. \edef\hexmrfam {\hexnumber\mrfam} \edef\hexbsfam {\hexnumber\bsfam} \edef\hexmifam {\hexnumber\mifam} \edef\hexbifam {\hexnumber\bifam} \edef\hexsyfam {\hexnumber\syfam} \edef\hexscfam {\hexnumber\scfam} \edef\hexexfam {\hexnumber\exfam} \edef\hextffam {\hexnumber\tffam} \edef\hexitfam {\hexnumber\itfam} \edef\hexmafam {\hexnumber\mafam} \edef\hexslfam {\hexnumber\slfam} \edef\hexmbfam {\hexnumber\mbfam} \edef\hexbffam {\hexnumber\bffam} \edef\hexmcfam {\hexnumber\mcfam} \edef\hexnnfam {\hexnumber\nnfam} \edef\hexmdfam {\hexnumber\mdfam} %D \macros %D {uchar} %D %D This macro prepares \CONTEXT\ for \UNICODE\ support. By %D defining it here, we have at least an safeguard for utility %D file reading. \ifx\uchar\undefined \unexpanded\def\uchar#1#2{[#1,#2]} \fi %D We define some (very private) constants to improve speed, %D memory usage and consistency. \def\@size@ {@f@si@} % bodyfont size prefix (12pt etc) \def\@style@ {@f@st@} % full style prefix (roman etc) \def\@shortstyle@ {@f@sh@} % short style prefix (rm etc) \def\@letter@ {@f@le@} % first alternative typeface \def\@noletter@ {@f@no@} % second alternative typeface \def\@fontclass@ {@f@cl@} % fontclass %D The families can be grouped into math specific ones and %D more text related families, although text ones can be %D mapped onto the math ones to get for instance bold math. %D %D Both groups of families are handles by a couple of token %D list tagged as strategies. This implementation makes %D implementing extensions more comfortable. \newtoks \textstrategies \newtoks \mathstrategies \newtoks \symbstrategies \newif\ifsynchronizemathfonts \synchronizemathfontstrue \def\synchronizetext % stylish text in mmode {\ifsynchronizemathfonts\the\textstrategies\fi} % \if...\fam\minusone\fi} \def\synchronizemath % math stuff in mmode {\ifsynchronizemathfonts\the\mathstrategies\fi} % \if...\fam\minusone\fi} \def\synchronizesymb % stylish math stuff in mmode {\ifsynchronizemathfonts\the\symbstrategies\fi} % \if...\fam\minusone\fi} %D By not setting the family we can append a font switch to \type %D {\everymath}. On the other hand, one never knows in what family %D state the strategies brought us. %D %D \starttyping %D {\bfa $\the\fam$} {\bfa \everymath{} $\the\fam$} %D \stoptyping %D \macros %D {textonly} %D %D We can inhibit this slow||downer with: \def\textonly{\synchronizemathfontsfalse} % document this \appendtoks \dosettextfamily\c!tf \dosettextfamily\c!bf \dosettextfamily\c!sl \dosettextfamily\c!it \dosettextfamily\c!bs \dosettextfamily\c!bi \dosettextfamily\c!sc \to \textstrategies \def\dosettextfamily#1% better pass fontbody to dodoset {\let\savedfontbody\fontbody \let\fontfamily#1% \let\fontbody\scriptscriptface\dodosettextfamily\scriptscriptfont \let\fontbody\scriptface \dodosettextfamily \scriptfont \let\fontbody\textface \dodosettextfamily \textfont \let\fontbody\savedfontbody} % \def\s!nullfont{nullfont} \def\dodosettextfamily {\ifx\fontclass\empty \@EA\dodosettextfamilyA \else \@EA\dodosettextfamilyB \fi} \def\dodosettextfamilyA#1% {\ifcsname \fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse \csname \fontbody\c!mm\fontfamily\fontsize\endcsname \else \ifcsname \fontbody\c!mm\fontfamily\endcsname \autofontsizetrue \csname \fontbody\c!mm\fontfamily\endcsname \else \ifcsname \fontbody\c!rm\fontfamily\fontsize\endcsname \autofontsizefalse \csname \fontbody\c!rm\fontfamily\fontsize\endcsname \else \ifcsname \fontbody\c!rm\fontfamily\endcsname \autofontsizetrue \csname \fontbody\c!rm\fontfamily\endcsname \else \nullfont \autofontsizetrue \fi\fi\fi\fi #1\csname\fontfamily\s!fam\endcsname\font} \def\dodosettextfamilyB#1% {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \else \ifcsname\fontclass\fontbody\c!mm\fontfamily\endcsname \autofontsizetrue \csname\fontclass\fontbody\c!mm\fontfamily\endcsname \else \ifcsname\fontclass\fontbody\c!rm\fontfamily\fontsize\endcsname \autofontsizefalse \csname\fontclass\fontbody\c!rm\fontfamily\fontsize\endcsname \else \ifcsname\fontclass\fontbody\c!rm\fontfamily\endcsname \autofontsizetrue \csname\fontclass\fontbody\c!rm\fontfamily\endcsname \else \dodosettextfamilyA#1% \fi\fi\fi\fi #1\csname\fontfamily\s!fam\endcsname\font} \def\mrfallback{\c!rm\c!tf} \appendtoks \dosetmathfamily\mrfam\textface\scriptface\scriptscriptface\c!mr\mrfallback \dosetmathfamily\mifam\textface\scriptface\scriptscriptface\c!mi\empty \dosetmathfamily\syfam\textface\scriptface\scriptscriptface\c!sy\empty \dosetmathfamily\exfam\textface\textface \textface \c!ex\empty \dosetmathfamily\mafam\textface\scriptface\scriptscriptface\c!ma\empty \dosetmathfamily\mbfam\textface\scriptface\scriptscriptface\c!mb\empty \dosetmathfamily\mcfam\textface\scriptface\scriptscriptface\c!mc\empty % \dosetmathfamily\mdfam\textface\scriptface\scriptscriptface\c!md\empty \dosetmathfamily\nnfam\textface\scriptface\scriptscriptface\c!nn\empty \to \mathstrategies \appendtoks \dosetskewchar\mifam\defaultskewcharmi % implemented later on \dosetskewchar\syfam\defaultskewcharsy % implemented later on \to \mathstrategies \def\dosetmathfamily#1#2#3#4#5#6% {\let\savedfontbody\fontbody % op hoger plan \let\fontfamily#5% \let\backfamily#6% \let\fontbody #4\dodosetmathfamily\scriptscriptfont#1% \let\fontbody #3\dodosetmathfamily \scriptfont#1% \let\fontbody #2\dodosetmathfamily \textfont#1% \let\fontbody\savedfontbody} \def\dodosetmathfamily {\ifx\fontclass\empty \@EA\dodosetmathfamilyA \else \@EA\dodosetmathfamilyB \fi} \def\dodosetmathfamilyA#1#2% {\ifcsname \fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse \csname \fontbody\c!mm\fontfamily\fontsize\endcsname \else \ifcsname \fontbody\c!mm\fontfamily \endcsname \autofontsizetrue \csname \fontbody\c!mm\fontfamily \endcsname \else \ifcsname \fontbody \backfamily\fontsize\endcsname \autofontsizefalse \csname \fontbody \backfamily\fontsize\endcsname \else \ifcsname \fontbody \backfamily \endcsname \autofontsizetrue \csname \fontbody \backfamily \endcsname \else \nullfont \autofontsizetrue \fi\fi\fi\fi #1#2\font} \def\dodosetmathfamilyB#1#2% {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \else \ifcsname\fontclass\fontbody\c!mm\fontfamily \endcsname \autofontsizetrue \csname\fontclass\fontbody\c!mm\fontfamily \endcsname \else \ifcsname\fontclass\fontbody \backfamily\fontsize\endcsname \autofontsizefalse \csname\fontclass\fontbody \backfamily\fontsize\endcsname \else \ifcsname\fontclass\fontbody \backfamily \endcsname \autofontsizetrue \csname\fontclass\fontbody \backfamily \endcsname \else \dodosetmathfamilyA#1#2% \fi\fi\fi\fi #1#2\font} \appendtoks \dosetsymbfamily\mrfam\textface\scriptface\scriptscriptface\c!mr \dosetsymbfamily\mifam\textface\scriptface\scriptscriptface\c!mi \dosetsymbfamily\syfam\textface\scriptface\scriptscriptface\c!sy \dosetsymbfamily\exfam\textface\textface \textface \c!ex \dosetsymbfamily\mafam\textface\scriptface\scriptscriptface\c!ma \dosetsymbfamily\mbfam\textface\scriptface\scriptscriptface\c!mb \dosetsymbfamily\mcfam\textface\scriptface\scriptscriptface\c!mc % \dosetsymbfamily\mdfam\textface\scriptface\scriptscriptface\c!md % also ? \to \symbstrategies \def\dosetsymbfamily#1#2#3#4#5% {\let\savedfontbody\fontbody \let\fontfamily#5% \let\fontbody #4\dodosetsymbfamily\scriptscriptfont#1% \let\fontbody #3\dodosetsymbfamily \scriptfont#1% \let\fontbody #2\dodosetsymbfamily \textfont#1% \let\fontbody\savedfontbody} \def\dodosetsymbfamily#1#2% {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname \csname\fontclass\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname #1#2\font \else\ifcsname\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname \csname\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname #1#2\font \fi\fi} %D All used styles, like rm, ss and tt, are saved in a comma %D separated list. Appart from practical limitations one can %D define as many styles as needed. \def\fontrelativesizelist{\s!text,\s!script,\s!scriptscript,\c!x,\c!xx,\c!big,\c!small} %D \macros %D {magfactor,magfactorhalf} %D %D There are several ways to specify a font. Three of them are %D pure \TeX\ ones, the fourth one is new: %D %D \starttyping %D \font\name=cmr12 %D \font\name=cmr12 at 10pt %D \font\name=cmr12 scaled \magstep2 %D \font\name=cmr12 sa 1.440 %D \stoptyping %D %D The non||\TEX\ alternative \type{sa} stands for {\em scaled %D at}. This means as much as: scale the bodyfontsize with this %D factor. The value 1.440 in this example is derived %D from the \type{\magstep}'s as mentioned in %D \in{table}[tab:magstep]. We therefore introduce %D \type{\magfactor} as an alternative for \type{\magstep}. %D %D \placetable[here][tab:magstep] %D {Factors to be used with \type{sa.}} %D \starttable[|c|c|c|] %D \HL %D \NC \bf magstep \NC \bf equivalent \NC \bf factor \NC\SR %D \HL %D \NC 1 \NC \type{\magfactor1} \NC 1.200 \NC\FR %D \NC 2 \NC \type{\magfactor2} \NC 1.440 \NC\MR %D \NC 3 \NC \type{\magfactor3} \NC 1.728 \NC\MR %D \NC 4 \NC \type{\magfactor4} \NC 2.074 \NC\MR %D \NC 5 \NC \type{\magfactor5} \NC 2.488 \NC\LR %D \HL %D \stoptable \def\magstep#1% \relax removed, otherwise space after it sticks, else added {\ifcase#1 1000\or1200\or1440\or1728\or2074\or2488\or1000\fi} \def\magstephalf {1095} \def\magfactor#1% {\ifcase#1 1.000\or1.200\or1.440\or1.728\or2.074\or2.488\or1\fi} \def\magfactorhalf {1.095} %D These macros enable the use of definitions like \type{sa %D \magfactor3} which saves us both (mis|)|calculations and %D potential mistypings. %D %D Because \type {sa} (scaled at) and \type {mo} (mapped on) %D are not low level \TEX\ supported alternatives, we have to %D test for it ourselves. In doing so, we need an auxiliary %D \DIMENSION. We cannot use \type{\scratchdimen} because font %D loading can happen at any moment due to postponed loading. %D We could instead have used dirty grouping tricks, but this %D one works too. \let\defaultrelativefontsize \plusone \let\localrelativefontsize \plusone \def\localabsolutefontsize {\fontbody} \let\relativefontsize \defaultrelativefontsize \def\saverelativefontsize#1#2% #1=rm|ss|.. #2=waarde {\setxvalue{\fontclass#1\s!rscale}{#2}} \def\checkrelativefontsize#1% {\edef\relativefontsize {\ifcsname\fontclass#1\s!rscale\endcsname \csname\fontclass#1\s!rscale\endcsname \else \defaultrelativefontsize \fi}} %D We also save: \def\savemathtextstyle#1% #1=rm|ss|.. {\doifsomething{#1}{\setxvalue{\fontclass\c!mm\s!text}{#1}}} \def\currentmathtextstyle % we default to empty ! {\executeifdefined{\fontclass\c!mm\s!text}\empty} %D Scaling macros: \newdimen\scaledfont \let\somefontspec\empty \def\@fs@{@fs@} % \def\parsefontspec#1% % {\xdef\somefontspec{#1\space\relax}% % \@EA\doparsefontspec\somefontspec]% =>#1 \relax] % \donoparsefontspec} % % but, better: \let\somefontname\empty \def\parsefontspec#1% {\xdef\somefontspec{#1\space}% \@EA\doparsefontspec\somefontspec\relax]% =>#1 \relax] \donoparsefontspec} \def\doparsefontspec#1 #2% {\def\somefontname{#1}% \ifx\somefontname\empty % space before fontname \@EA\doparsefontspec \else\ifx#2\relax \@EAEAEA\setnaturalfontspec \else \@EAEAEA\setforcedfontspec \fi\fi #2} \def\setnaturalfontspec#1]% {\@fs@scaled\plusthousand\relax} \def\setforcedfontspec#1 #2\relax]% {\csname\@fs@#1\endcsname#2\relax} \def\@fs@scaled {\afterassignment\do@fs@scaled\scratchcounter} \def\do@fs@scaled#1\relax {\scaledfont\number\scratchcounter\points \scaledfont\localrelativefontsize\scaledfont \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi \scratchcounter\scaledfont % \scaledfont is now pretty large \advance\scratchcounter \medcard \divide\scratchcounter \maxcard \xdef\somefontspec{ scaled \the\scratchcounter}} \def\@fs@at {\afterassignment\do@fs@at\scaledfont} \def\do@fs@at#1\relax {\scaledfont\localrelativefontsize\scaledfont \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi \xdef\somefontspec{ at \the\scaledfont}} \def\@fs@sa {\scaledfont\localabsolutefontsize \setsamofontspec} \def\@fs@mo {\scaledfont\setmappedfontsize\localabsolutefontsize \setsamofontspec} \def\setsamofontspec#1\relax {\checkfontscale#1\end\scaledfont \scaledfont\localrelativefontsize\scaledfont \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi \xdef\somefontspec{ at \the\scaledfont}} \def\getfontparameters {\expandafter\dogetfontparameter\@@fontdata,]=,} \def\getglobalfontparameters {\expandafter\dogetglobalfontparameter\@@fontdata,]=,} \def\dogetfontparameter#1=#2,% {\if]#1\else \expandafter\def\csname\??ff\@@fontfile#1\endcsname{#2}% \expandafter\dogetfontparameter \fi} \def\dogetglobalfontparameter#1=#2,% {\if]#1\else \expandafter\gdef\csname\??ff\@@fontfile#1\endcsname{#2}% \expandafter\dogetglobalfontparameter \fi} \let\@@fontencoding\empty \let\@@fontmapping \empty \let\@@fonthandling\empty \let\@@fontfeatures\empty \let\@@skewchar \empty \let\@@hyphenchar \empty % todo, will go to encoding %D This brings down maps processing from 466 to 309 seconds %D ($-33$\%) and mfonts from 42 to 34 seconds ($-15$\%). \newif\ifskipfontcharacteristics \skipfontcharacteristicstrue %D When fontclasses are used, we define the font global, %D since namespaces are used. Otherwise we parse the specs %D each time. % wrong: this way we cannot set encoding etc % % \def\donoparsefontspec#1% % {\edef\fontfile{\truefontname\somefontname}% % \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi % \edef\lastfontname{\fontfile\somefontspec}% % \ifx\fontclass\empty\else\global\fi % \expandafter\font\csname#1\endcsname\lastfontname\relax % \relax} \let\fontfile\s!unknown % \definefontsynonym % [blabla] % [name:Latin Modern Something] % \definefontsynonym % [blabla] % [file:texnansi-lmr10] % [encoding=texnansi] % \definedfont[blabla] test \currentencoding/\fontfile \par % \definefontsynonym % [blabla] % [texnansi-lmtt10] % [encoding=texnansi] % \definedfont[blabla] test \currentencoding/\fontfile \par % \definefontsynonym % [blabla] % [ec-lmtt10] % [encoding=ec] % \definedfont[blabla] test \currentencoding/\fontfile \par \def\checkfontfilename {\expandafter\docheckfontfilename\fontfile:\empty:\empty\relax} \def\docheckfontfilename#1:#2:#3#4\relax {\edef\!!stringa{#1}% \edef\!!stringb{#2}% \ifx\!!stringb\empty \edef\checkedfontfile{\!!stringa}% \else\ifx\!!stringa\v!file \edef\checkedfontfile{"\!!stringb"}% \else\ifx\!!stringa\v!name \edef\checkedfontfile{"\!!stringb"}% \else \edef\checkedfontfile{\!!stringb}% \fi\fi\fi} \let\doshowcheckedfontfeatures\relax \def\showcheckedfontfeatures {\def\doshowcheckedfontfeatures{\writestatus\m!fonts{checked: \checkedfontfile}}} \def\checkedfontfile{\fontfile} % default \newtoks\everydefinefont \def\donoparsefontspec % #1 == \cs {\edef\fontfile{\truefontname\somefontname}% \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi % can for instance happen with MathGamma \updatefontparameters \checkfontfilename \edef\lastfontname{\checkedfontfile\somefontspec}% \ifx\fontclass\empty \expandafter\definefontlocal \else \expandafter\definefontglobal \fi} % #1 == \cs \def\definefontlocal#1% {\expandafter\edef\csname#1\endcsname % ! ! ! ! not needed in luatex ! ! ! ! {\noexpand\csname#1:\endcsname \noexpand\reactivatefont{\somefontname}{\fontfile}}% \expandafter\font\csname#1:\endcsname\lastfontname\relax \expandafter\let\expandafter\lastrawfontcall\csname#1:\endcsname \the\everydefinefont} \def\definefontglobal#1% stores \somefontname=Mono and \fontfile=cmtt10 {\expandafter\xdef\csname#1\endcsname % ! ! ! ! not needed in luatex ! ! ! ! {\noexpand\csname#1:\endcsname \noexpand\reactivatefont{\somefontname}{\fontfile}}% \global\expandafter\font\csname#1:\endcsname\lastfontname\relax \expandafter\let\expandafter\lastrawfontcall\csname#1:\endcsname \the\everydefinefont} \def\reactivatefont#1#2% {\def\somefontname{#1}% \def\fontfile {#2}% \updatefontparameters} % can be handy for tracing purposes % % \def\reportfontdefinition % {\bgroup % \expanded{\infofont % [\lastfontidentifier % ->\newfontidentifier % ->\fontname\csname\newfontidentifier\endcsname]}% % \endgraf % \egroup} %D An additional the second \type {\font} definition can %D prevent fuzzy font refs %D %D \starttyping %D \expandafter\font\csname\dummyfontname\endcsname\lastfontname %D \stoptyping %D %D but somehow they changed \TEX\ so that it does not matter %D any more. \def \defaultfontfile{\truefontname{Normal}} % was cmtt10, but that one is gone \edef\nullfontname {\fontname\nullfont} \edef\dummyfontname {font\strippedcsname\\} %D \macros %D {everyfont,everyfontswitch} %D %D For special purposes, we provide a hook. % \newevery \everyfont \relax % \newevery \everyfontswitch \relax % safer but sometimes introducing newlines in the log % % \batchmode % \font\lastloadedfont\fontfile\somefontspec\relax % \errorstopmode % \edef\lastfontname{\fontname\lastloadedfont}% % \ifx\lastfontname\nullfontname % \showmessage\m!fonts{10}{\fontfile}% % \expandafter\font\csname#1\endcsname=\defaultfontfile\somefontspec\relax % \else % \expandafter\let\csname#1\endcsname\lastloadedfont % \fi %D We also accept \type{sa a}||\type{sa d} as specification. \def\checkfontscale#1#2\end#3% {#3\ifcsname\??ft\s!default\noexpand#1\endcsname \csname\??ft\s!default\noexpand#1\endcsname\else#1#2% \fi#3} %D The duplicate font definition, using the ever the same dummy %D font name, results in less fuzzy error messages. In the log %D file, for instance when overfull boxes are reported, the %D simple keyword `font' replaces the \TEX\ ordinated name. The %D latter can be too misleading, due to the fact that \TEX\ has %D a rather optimized font memory management. Thanks to Taco %D for helping me sort this out. %D \macros %D {definefontsynonym, doifelsefontsynonym, %D expandfontsynonym, truefontname, truefontdata} %D %D While looking for fonts, fontsynonyms are used for accessing %D the files! %D %D \starttyping %D \definefontsynonym[Serif][Lucida-Bright] %D \definefontsynonym[Lucida-Bright][lbr][encoding=texnansi] %D \stoptyping %D %D The definitions can be accessed by: %D %D \startlines %D name: \type {\truefontname{Lucida-Bright}} %D data: \type {\truefontdata{\truefontname{Lucida-Bright}}} %D \stoplines % \def\definefontsynonym % {\dotripleempty\dodefinefontsynonym} % % \def\dodefinefontsynonym[#1][#2][#3]% % {\@EA\edef\csname\??ff\fontclass#1\endcsname{#2}% % \ifthirdargument % \edef\@@fontdata{#3}% % \ifx\@@fontdata\empty \else % \edef\@@fontfile{#2}% % \ifx\fontclass\empty % \getfontparameters % \else % \getglobalfontparameters % \fi % \fi % \fi} % % slightly faster, noticable when loading many typefaces, % % \testfeatureonce{5000}{\definefontsynonym[somefont][somename]} \end \def\classfont#1#2{#1#2} % \definefont[whatever][\classfont{xx}{yy} at 10pt] \def\definefontsynonym[#1]#2[#3]% {\edef\@@fontfile{#3}% \@EA\let\csname\??ff\fontclass#1\endcsname\@@fontfile \doifnextoptionalelse\dodefinefontsynonym\donothing} \def\dodefinefontsynonym[#1]% {\edef\@@fontdata{#1}% \ifx\@@fontdata\empty \else \ifx\fontclass\empty \getfontparameters \else \getglobalfontparameters \fi \fi} \let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater \def\setupfontsynonym {\dodoubleempty\dosetupfontsynonym} \def\dosetupfontsynonym[#1][#2]% {\edef\@@fontdata{#2}% \ifx\@@fontdata\empty \else \edef\@@fontfile{#1}% \ifx\fontclass\empty \getfontparameters \else \getglobalfontparameters \fi \fi} \def\truefontdata#1#2% {\ifcsname\??ff#1#2\endcsname % raw(Regular) raw(key) \csname\??ff#1#2\endcsname \else\ifcsname\??ff\fontclass#1\endcsname % exp(palatino Regular) raw(key) \expandafter\truefontdata\csname\??ff\fontclass#1\endcsname#2% \else\ifcsname\??ff#1\endcsname % exp(Regular) raw(key) \expandafter\truefontdata\csname\??ff#1\endcsname#2% \else\ifcsname\??ff#2\endcsname % raw(key) \csname\??ff#2\endcsname \fi\fi\fi\fi} \def\truefontname#1% {\ifcsname\??ff\fontclass#1\endcsname \@EA\truefontname\csname\??ff\fontclass#1\endcsname \else\ifcsname\??ff#1\endcsname \@EA\truefontname\csname\??ff#1\endcsname \else #1% \fi\fi} \def\expandfontsynonym#1#2% #2 := onelevelexpansion(#1) {\ifcsname\??ff\fontclass#2\endcsname \expandafter\def\expandafter#1\expandafter{\csname\??ff\fontclass#2\endcsname}% \fi} \def\doifelsefontsynonym#1% {\ifcsname\??ff\fontclass#1\endcsname \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} % \definetypeface[palatino][rm][serif][palatino,allbold][default] % % \startfontclass[palatino] % \definefontsynonym [Serif] [SerifBold] % \definefontsynonym [SerifItalic] [SerifBoldItalic] % \definefontsynonym [SerifSlanted] [SerifBoldSlanted] % \definefontsynonym [SerifCaps] [SerifBold] % \stopfontclass % % \setupbodyfont[palatino] \def\startfontclass {\dosingleempty\dostartfontclass} \def\dostartfontclass[#1]% {\pushmacro\fontclass \doifelse{#1}{\v!each} {\let\fontclass\empty} {\doifsomething{#1}{\def\fontclass{#1}}}} \def\stopfontclass {\popmacro\fontclass} %D \macros %D {tracedfontname} %D %D A goody: \def\tracedfontencoding#1% {\ifcsname\??ff#1\s!encoding\endcsname \space[\csname\??ff#1\s!encoding\endcsname]% \fi} \def\tracedfontname#1% {\ifcsname\??ff\fontclass#1\endcsname #1\tracedfontencoding{\fontclass#1}\space->\space \@EA\tracedfontname\csname\??ff\fontclass#1\endcsname \else\ifcsname\??ff#1\endcsname #1\tracedfontencoding{#1}\space->\space \@EA\tracedfontname\csname\??ff#1\endcsname \else #1% \fi\fi} %D \macros %D {getfontfileparameters} %D %D For special purposes, one can use the next macro to %D access font file characteristics, for instance: %D %D \starttyping %D \getfontfileparameters{Regular} %D \stoptyping %D %D can result in: %D %D \starttyping %D \def\currentfontfileencoding{texnansi} %D \stoptyping \def\getfontfileparameters#1% can be simpler for mkii (no features) {\edef\@@truefontname{\truefontname{#1}}% \edef\currentfontfileencoding{\truefontdata\@@truefontname\s!encoding}% \edef\currentfontfilemapping {\truefontdata\@@truefontname\s!mapping }% \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}} %D \macros %D {definefont} %D %D Before we implement the main definition macro, we first show %D one for local use: %D %D \starttyping %D \definefont[Some][LucidaBright at 100pt] \Some some %D \definefont[More][LucidaBright scaled 3000] \More more %D \definefont[Nice][LucidaBright mp 2] \Nice nice %D \definefont[Text][LucidaBright sa 5.4] \Text last %D \stoptyping %D %D The implementation looks as follows: \def\definefont {\dotripleempty\dodefinefont} \def\dodefinefont[#1][#2][#3]% [name][spec][1.6 | line=10pt | setup_id] {\doifinstringelse{ }{#2} {\ifthirdargument \unexpanded\setvalue{#1}{\redodefinefont{#1}{#2}{#3}}% \else \unexpanded\setvalue{#1}{\dododefinefont{#1}{#2}}% \fi} {\definefont[#1][#2 sa *][#3]}} \def\redodefinefont#1#2#3% {\dododefinefont{#1}{#2}% \doifsetupselse{#3} {\setups[#3]} % don't forget to document this ! {\setuplocalinterlinespace[#3]% \setupspacing}} % needed ? \def\definefrozenfont {\dotripleempty\dodefinefrozenfont} \def\dodefinefrozenfont[#1][#2][#3]% {\dodefinefont[#1][#2][#3]% \expandafter\let\csname\lastfontidentifier\expandafter\endcsname\csname\rawfontidentifier\endcsname} % \def\defineclassfont % {\doquadrupleempty\dodefineclassfont} % % \def\dodefineclassfont[#1][#2][#3][#4]% #2 = class % {\iffourthargument % \definefont[#1][#2#3][#4]% % %\else\ifthirdargument % % \definefont[#1][#2#3]% % \else % \definefont[#1][#2]% % \fi} %D The \type {*} makes the switch local, so that we can redefine a %D logical name and/or change the size in between. \newif\ifautofontsize \autofontsizetrue \let\lastfontidentifier\empty \def\rawfontidentifier{**\lastfontidentifier\fontsize**} \def\newfontidentifier{*\fontclass\lastfontidentifier\fontsize*} % best we can add the style as well because otherwise we get math encoding mixups % % \setupbodyfont [8pt] [\currentencoding/\ccaron\scaron\zcaron] % \blank % \switchtobodyfont[7pt] [\currentencoding/\ccaron\scaron\zcaron] \def\newfontidentifier{*\fontclass\lastfontidentifier\fontstyle\fontsize*} \def\dododefinefont#1#2% {\edef\lastfontidentifier{#1}% \let\localrelativefontsize\defaultrelativefontsize \let\localabsolutefontsize\fontbody \parsefontspec{#2}\rawfontidentifier \let\localrelativefontsize\defaultrelativefontsize % not needed \csname\rawfontidentifier\endcsname \autofontsizefalse \setfontcharacteristics \the\everyfontswitch} \def\xxdododefinefont#1#2#3#4% \autofontsizetrue is set by calling routine {\edef\lastfontidentifier{#3}% \ifcsname\newfontidentifier\endcsname\else \def\localrelativefontsize{#1}% \def\localabsolutefontsize{#2}% \parsefontspec{#4}\newfontidentifier \let\localrelativefontsize\defaultrelativefontsize % not needed \fi \csname\newfontidentifier\endcsname \autofontsizefalse %\edef\lastfontidentifier{#3}% \ifskipfontcharacteristics \else \setfontcharacteristics \the\everyfontswitch \fi} %D I considered checking for mistakenly use of \PLAIN's %D \type{\magstep}'s but although it would take only a few %D lines of code, this would not add to consistent use. I %D therefore removed this check. %D \macros %D {mapfontsize} %D %D For special purposes, like in math, you may want to use %D slightly different sizes than the ones given. This happens %D for instance with the Math Times fonts. Mapped font sizes %D can be specified by using the \type {mo} key instead of %D \type {sa} in font definitions. %D %D \startbuffer %D \mapfontsize[10pt][11pt] %D \mapfontsize[11pt][12pt] %D \mapfontsize[12pt][13pt] %D %D \definefont[test][Serif]\test TEST \par %D \definefont[test][Serif sa 5]\test TEST \par %D \definefont[test][Serif mo 5]\test TEST \par %D \definefont[test][Serif sa d]\test TEST \par %D \definefont[test][Serif at 60pt]\test TEST \par %D \definefont[test][Serif scaled 6000]\test TEST \par %D \stopbuffer %D %D \typebuffer %D %D \startpacked %D \getbuffer %D \stoppacked \def\mapfontsize {\dodoubleargument\domapfontsize} \def\domapfontsize[#1][#2]% {\scratchdimen#1\relax % \relax is really needed here \setvalue{\??ft*\the\scratchdimen}{#2}} \def\setmappedfontsize#1% {\ifcsname\??ft*#1\endcsname \csname\??ft*#1\endcsname \else #1% \fi} %D \macros %D {getfontname} %D %D The names of the fonts can be called with the rather simple %D macro \type{\getfontname}. When for instance we pass %D \type{12ptrmtf} as argument, we get \getfontname{12ptrmtf}. \def\getfontname#1% {\csname\??ft#1\endcsname} %D To be documented. \let\fontsizelist\empty \let\fontstylelist\empty \def\definefontsize[#1]% sneller met toks {\addtocommalist{#1}\fontsizelist \def\docommand##1% {\def\dodocommand####1% {\def\dododocommand########1% %{\checkbodyfont{}{########1}{####1}{##1}}% {\checkbodyfont{########1}{####1}{##1}}% \processcommacommand[\fontstylelist]\dododocommand}% \processcommacommand[\fontalternativelist]\dodocommand}% \processcommacommand[\fontsizelist]\docommand} \def\fontalternativetextlist{\c!tf,\c!bf,\c!it,\c!sl,\c!bs,\c!bi,\c!sc} \def\fontalternativemathlist{\c!mr,\c!mi,\c!sy,\c!ex,\c!ma,\c!mb} \let\fontalternativelist\fontalternativetextlist % upward compatible %D \macros %D {currentfontscale,currentfontbodyscale} %D %D Sometimes we need to have access to the font scale %D including the \type{a}||\type{d} sizes. The next macro %D returns the current scaling factor. Take a look at %D \type {cont-log.tex} for an example of its use. \def\currentfontscale {\csname\??ft\s!default \ifcsname\??ft\s!default\xfontsize\endcsname \xfontsize \else \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi \endcsname} \def\currentfontbodyscale {\csname\??ft\s!default \ifcsname\??ft\s!default\fontsize\endcsname \fontsize \else \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi \endcsname} \setvalue{\??ft\s!default}{1} %D Both alternatives use \type {\xfontsize}, a macro that %D expands to the current size in terms of \type {a} \unknown %D \type {d}, nothing, or \type {x} \unknown \type {xx}. \def\xfontsize{\ifcase\currentxfontsize\fontsize\or\c!x\else\c!xx\fi} %D A typical use of this command is in commands that switch %D to another font bypassing the font mechanism: %D %D \starttyping %D \font\myfont=\truefontname{MyFont} at \currentfontscale\bodyfontsize %D \stoptyping %D Now we enter the area of font switching. The switching %D mechanism has to take care of several situations, like: %D %D \startitemize[packed] %D \item changing the overal document fonts (including margins, %D headers and footers) %D \item changing local fonts (only the running text) %D \item smaller and even more smaller alternatives (super- %D and subscripts) %D \stopitemize %D %D \TEX\ offers a powerfull family mechanism for super- and %D subscripts in math mode. In text mode however, we don't use %D families for the smaller alternatives, and therefore have %D to take care of it otherwise. %D \macros %D {definebodyfontenvironment,setupbodyfontenvironment} %D %D The relationship between the several sizes of a font, is %D defined by: %D %D \showsetup{definebodyfontenvironment} %D %D Later on we will see how these parameters are used, so for %D the moment we stick with an example: %D %D \starttyping %D \definebodyfontenvironment %D [12pt] %D [ text=12pt, %D script=9pt, %D scriptscript=7pt, %D x=10pt, %D xx=8pt, %D big=12pt, %D small=10pt] %D \stoptyping %D %D The first argument specifies the bodyfont size to which the %D settings apply. All second parameters are specified in %D dimensions and tell us more about related sizes. %D %D Afterwards, one can change values with %D %D \showsetup{setupbodyfontenvironment} %D %D Due to the fact that \type{\c!text} and \type{\s!text} can %D have a similar meaning, and therefore can lead to an %D unwanted loop, we temporary redefine \type{\c!text}. For %D the moment this in only place that some trickery is needed %D to fool the multilingual interface. %D %D When instead of a size the keyword \type{unknown} is %D passed, fractions (relations) are used instead of fixed %D sizes. \let\bodyfontenvironmentlist\empty \newcount\@@fontdefhack \def\@@beginfontdef {\ifcase\@@fontdefhack \let\k!savedtext \k!text \let\k!text \s!text \let\k!k!savedtext \k!k!text \let\k!k!text \!!plusone \let\k!saveddefault \k!default \let\k!default \s!default \let\k!k!saveddefault\k!k!default \let\k!k!default \!!plusone \fi \advance\@@fontdefhack \plusone } \def\@@endfontdef {\advance\@@fontdefhack \minusone \ifcase\@@fontdefhack \let\k!k!default\k!k!saveddefault \let\k!default \k!saveddefault \let\k!k!text \k!k!savedtext \let\k!text \k!savedtext \fi} \def\definebodyfontenvironment {\dotripleempty\dodefinebodyfontenvironment} \def\dodefinebodyfontenvironment[#1][#2][#3]% class size settings {\ifthirdargument \@@beginfontdef \doifelse{#2}\s!default {\getparameters[\??ft\s!default][#3]} {\normalizebodyfontsize#2\to\tempbodyfontsize \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist \@EA\dododefinebodyfontenvironment\@EA[\tempbodyfontsize][#1][#3]}% \@@endfontdef \else \definebodyfontenvironment[\fontclass][#1][#2]% change */* \fi} \def\dododefinebodyfontenvironment[#1][#2][#3]% size class settings {\@@beginfontdef \doifundefined{\??ft#2#1\c!em} % \s!text goes wrong in testing because {\def\docommand##1% % the 12pt alternative will called when {\scratchdimen#1\relax % typesetting the test (or so) \scratchdimen\csname\??ft\s!default##1\endcsname\scratchdimen \normalizebodyfontsize\scratchdimen\to\tempbodyfontsize \setevalue{\??ft#2#1##1}{\tempbodyfontsize}}% \processcommacommand[\fontrelativesizelist]\docommand \copyparameters [\??ft#2#1][\??ft\s!default] [\c!interlinespace,\c!em]}% \getparameters[\??ft#2#1][#3]% \@@endfontdef % new code, see remark \ifloadingfonts \else % only runtime \doifundefined{\@size@#1} % only once {\letvalue{\@size@#1}\empty % prevent loop \defineunknownfont{#1}}% % safeguard \fi % so far \setvalue{\@size@#1}{\docompletefontswitch[#1]}} %D {\bf Remark:} We need to cover the following cases, %D otherwise users can get confused: %D %D \starttyping %D \setupbodyfont[23pt] %D %D \definebodyfontenvironment[23pt] %D \setupbodyfont[23pt] %D %D \definebodyfontenvironment[23pt] %D \definebodyfont[23pt][rm,ss,tt][default] %D \setupbodyfont[23pt] %D \stoptyping %D Beware: while some font defs can be global, the bodyfont %D environment checks local. This means that multiple local %D checks resulting in definitions are not that efficient. %D So, apart from an occasional switch, one should define an %D environment at the outer level. \def\checkbodyfontenvironment[#1]% {\definebodyfontenvironment[\fontclass][#1][]} % original % % \def\setupbodyfontenvironment % {\dotripleempty\dosetupbodyfontenvironment} % % \def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings % {\@@beginfontdef % \ifthirdargument % \getparameters[\??ft#1#2][#3]% % \else % \getparameters[\??ft#1][#2]% % \fi % \@@endfontdef} % % this one already catches both define/setup \def\setupbodyfontenvironment{\definebodyfontenvironment} % officially, but not needed (yet): % % \def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings % {\ifthirdargument % \localbodyfontsize#2\relax % \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize % \doifundefinedelse{\??ft#1\normalizedbodyfontsize\c!em} % {\definebodyfontenvironment[#1][#2][#3]}% % {\getparameters[\??ft#1\normalizedbodyfontsize][#3]}% % \else % \localbodyfontsize#1\relax % \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize % \doifundefinedelse{\??ft\normalizedbodyfontsize\c!em} % {\definebodyfontenvironment[#1][#2]}% % {\getparameters[\??ft\normalizedbodyfontsize][#2]}% % \fi} %D Just a couple of interface macros: \def\bodyfontvariable#1% {\??ft\ifcsname\??ft\fontclass#1\endcsname\fontclass\fi#1} \def\bodyfontcsname {\csname\bodyfontvariable} \def\bodyfontinterlinespecs {\bodyfontvariable{\normalizedbodyfontsize\c!interlinespace}} \def\bodyfontinterlinespace {\csname\bodyfontinterlinespecs\endcsname} %D We default all parameters to the main bodyfont size (begin %D \type{#1}), so the next setup is valid too: %D %D \starttyping %D \definebodyfontenvironment[24pt] %D \stoptyping %D %D All parameters can be redefined when needed, so one does %D not have to stick to the default ones. %D \macros %D {definebodyfont} %D %D The next step in defining a bodyfont involves the actual font %D files, which can be recognized by their extension %D \type{tfm}. Installing those file is often beyond the %D scope of the user and up to the system administrator. %D %D \showsetup{definebodyfont} %D %D This commands takes three arguments: a (series of) bodyfont %D size(s), the style group to which the definitions belong, %D and an alternative, as specified by the \TEX\ (math) families, %D extended with~a, b~\unknown. %D %D We show two examples, that show all the alternative %D scaling options. The \type{\tfa} alternatives can be %D extended with \type{\bfa}, \type{\slb}, etc. or even %D \type{e} and higher alternatives. %D %D \starttyping %D \definebodyfont [12pt] [rm] %D [tf=cmr12, %D bf=cmbx12, %D it=cmti12, %D sl=cmsl12, %D bi=cmbxti10 at 12pt, %D bs=cmbxsl10 at 12pt, %D tfa=cmr12 scaled \magstep1, %D tfb=cmr12 scaled \magstep2, %D tfc=cmr12 scaled \magstep3, %D tfd=cmr12 scaled \magstep4, %D sc=cmcsc10 at 12pt] %D %D \definebodyfont [12pt,11pt,10pt,9pt,8pt] [rm] %D [tf=lbr sa 1, %D bf=lbd sa 1, %D it=lbi sa 1, %D sl=lbsl sa 1, %D bi=lbdi sa 1, %D bs=lbdi sa 1, %D tfa=lbr sa 1.200, %D tfb=lbr sa 1.440, %D tfc=lbr sa 1.728, %D tfd=lbr sa 2.074, %D sc=lbr sa 0.833] %D \stoptyping %D %D The second example shows that we can define more sizes at %D once. The main difference between these examples is that the %D Computer Modern Roman come in many design sizes. This means %D that there we cannot define them in bulk using \type{sa}. %D Instead of \type{rm} (roman) one can define \type{ss} (sans %D serif), \type{tt} (teletype), \type{hw} (hand written), %D \type{cg} (calygraphic) and whatever styles. %D %D The first argument may be a comma separated list. This, %D combined with specifications using \type{sa} can save a lot %D of typing. Although all arguments should be specified, we %D treat the second argument as optional. %D %D Defining a bodyfont involves two actions: defining the %D specific style related alternatives, like \type{\rma}, %D \type{\bfa} and \type{\rmsla}, and storing the definitions %D of their bodyfont size related fonts. The first step is %D bodyfont independant but executed every time. This permits %D user definitions like \type{\tfw} or \type{\bfq} for real %D large alternatives. \def\definebodyfont {\doquadrupleempty\redefinebodyfont} \def\redefinebodyfont[#1][#2][#3][#4]% {\iffourthargument \processcommacommand[#1]{\reredefinebodyfont[#2][#3][#4]}% \else \dodefinebodyfont[#1][#2][#3]% \fi} \def\reredefinebodyfont[#1][#2][#3]#4% {\pushmacro\fontclass \doifelse{#4}\s!default {\let\fontclass\empty} {\def\fontclass{#4}}% \definebodyfont[#1][#2][#3]% \popmacro\fontclass} \def\dodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier {\ifthirdargument \doifnumberelse{#1} {\doifassignmentelse{#3} {% [12pt] [style] [settings] \doifundefined{#2}{\expanded{\definefontstyle[#2][#2]}}% new \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}} {% [12pt] [style] [identifier] \dodefinedefaultbodyfont[#1][#2][#3]}} % body style identifier {% [identifier] [style] [settings] % see *** \setvalue{\s!default#1#2}##1##2{\expanded{\xdodefinebodyfont[##1][##2][#3]}}}% \else\ifsecondargument \definebodyfont[#1][\c!rm][#2]% \else \doifundefined{\@size@#1} % Maybe there are default dependancies {\defineunknownfont{#1}}% defined which we can use ([unknown]) \doifundefined{\@size@#1} % and if not, then we have at least to {\definebodyfont[#1][\c!rm][]}% make sure some basics are set up. \fi\fi} \def\xdodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier {%\writestatus{[#1]}{[#2][#3]}% \checkrelativefontsize{#2}% rather new, inherit from other defs \ifundefined{#2}\expanded{\definefontstyle[#2][#2]}\fi % new \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}% \let\relativefontsize\defaultrelativefontsize} \def\dododefinebodyfont#1#2#3% style defs body {\checkbodyfontenvironment[#3]% just to be sure. \processcommalist[#2]{\dodododefinebodyfont{#1}{#3}}} \def\dodododefinebodyfont#1#2#3% style body def {\dododododefinebodyfont{#1}{#2}[#3]} \newif \ifresolvefontfile % protected by fontclass anyway \def\resolvefontname#1 {\truefontname{#1} } \def\iflocalclassfonts{\ifx\fontclass\empty} \def\dododododefinebodyfont#1#2[#3#4#5=#6]% style body def {\ifundefined{#1#3#4#5}% %\checkbodyfont{#2}{#1}{#3#4}{#5}% not \definefontsize[#5] \checkbodyfont{#1}{#3#4}{#5}% not \definefontsize[#5] \fi \iflocalclassfonts \letbeundefined{*\fontclass#2#1#3#4#5*}% \scratchtoks{#6}% \expanded{\unexpanded\noexpand\setvalue{#2#1#3#4#5}% {\noexpand\xxdododefinefont{\relativefontsize}{#2}% {#2#1#3#4#5}{\the\scratchtoks}}}% \else %\expanded{\writestatus{defining}{[\fontclass][#2#1#3#4#5] \resolvefontname#6 }}% \global\letbeundefined{*\fontclass#2#1#3#4#5*}% \ifresolvefontfile \unexpanded\setxvalue{\fontclass#2#1#3#4#5}% {\noexpand\xxdododefinefont{\relativefontsize}{#2}% {#2#1#3#4#5}{\resolvefontname#6 }}% \else \scratchtoks{#6}% \expanded{\unexpanded\noexpand\setgvalue{\fontclass#2#1#3#4#5}% {\noexpand\xxdododefinefont{\relativefontsize}{#2}% {#2#1#3#4#5}{\the\scratchtoks}}}% \fi \fi} % \def\checkbodyfont#1#2#3#4% body style alt size / gdef % #4 can be empty % {\def\c!!mm{#2}% % \ifx\c!!mm\c!mm % prevents \max and alike (re)defs % \unexpanded\setgvalue {#2}{\setcurrentfontstyle {#2}}% \rm % \unexpanded\setgvalue {#3}{\setcurrentfontalternative {#3}}% \sl % \else % \unexpanded\setgvalue {#2#4}{\setcurrentfontstylesize {#2}{#4}}% \rma % \unexpanded\setgvalue {#3#4}{\setcurrentfontalternativesize {#3}{#4}}% \sla % \unexpanded\setgvalue {#2#3#4}{\setcurrentfontstylealternativesize{#2}{#3}{#4}}% \rmsla % \unexpanded\setgvalue {#2}{\setcurrentfontstyle {#2}}% \rm % \unexpanded\setgvalue {#3}{\setcurrentfontalternative {#3}}% \sl % \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxstylealternative {#2}}% \rmx % \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxstylealternative {#2}}% \rmxx % \unexpanded\setgvalue {#3\c!x}{\setcurrentfontxalternative {#3}}% \slx % \unexpanded\setgvalue{#3\c!xx}{\setcurrentfontxxalternative {#3}}% \slxx % \unexpanded\setgvalue {#2#3}{\setcurrentfontstylealternative {#2}{#3}}% \rmsl % \fi} % % leaner \def\checkbodyfont#1% tests for ttsl mmbf {\def\c!!mm{#1}% \ifx\c!!mm\c!mm % prevents \max and alike (re)defs \expandafter\checkmathbodyfont \else \expandafter\checktextbodyfont \fi{#1}} % no \c!!mm, not expanded later on \def\checkmathbodyfont#1#2#3% style alt size / gdef % #3 can be empty {%\message{!m #1 #2 #3!}% % #1 #2 #3 = signal \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \mmsla \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \mm \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}}% \sl \def\checktextbodyfont#1#2#3% style alt size / gdef % #3 can be empty {%\message{!t #1 #2 #3!}% \unexpanded\setgvalue {#1#3}{\setcurrentfontstylesize {#1}{#3}}% \rma \unexpanded\setgvalue {#2#3}{\setcurrentfontalternativesize {#2}{#3}}% \sla \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \rmsla \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \rm \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}% \sl \unexpanded\setgvalue {#1\c!x}{\setcurrentfontxstylealternative {#1}}% \rmx \unexpanded\setgvalue{#1\c!xx}{\setcurrentfontxxstylealternative {#1}}% \rmxx \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxalternative {#2}}% \slx \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxalternative {#2}}% \slxx \unexpanded\setgvalue {#1#2}{\setcurrentfontstylealternative {#1}{#2}}}% \rmsl \def\dodefinedefaultbodyfont[#1][#2][#3]% sizes styles identifier {\def\dododefinedefaultbodyfont##1% {\def\dodododefinedefaultbodyfont####1% {\def\dododododefinedefaultbodyfont########1% {\doifdefined{\s!default########1####1} {% [12pt] [style] [identifier] \getvalue{\s!default########1####1}{##1}{####1}}}% \processcommalist[#3]\dododododefinedefaultbodyfont}% \processcommalist[#2]\dodododefinedefaultbodyfont}% \processcommalist[#1]\dododefinedefaultbodyfont} %D Unknown families are added to the family list! For the %D moment we also set the direct calls here. Some day a better %D solution will be implemented. The good news is that unknown %D fonts are defined automatically. \newif\ifdefiningunknownfont % \def\defineunknownfont#1% % {\let\c!savedtext\c!text % \let\c!text\s!text % \donefalse % \def\docommand##1% % {\doifdefined{\??ft\s!default##1} % {\donetrue % \scratchdimen#1\relax % \scratchdimen\csname\??ft\s!default##1\endcsname\scratchdimen % \normalizebodyfontsize\scratchdimen\to\!!stringa % \letvalue{\??ft#1##1}\!!stringa}}% % \processcommacommand[\fontrelativesizelist]\docommand % \let\c!text\c!savedtext % \ifdone % \donefalse % \def\defineunknownbodyfont##1% see *** % %{\doifdefined{\s!default##1} % % {\donetrue\getvalue{\s!default##1}{#1}}}% % {\doifdefined{\s!default\s!default##1} % {\donetrue\getvalue{\s!default\s!default##1}{#1}{##1}}}% % \processcommacommand % [\fontstylelist] % \defineunknownbodyfont % \ifdone % \setvalue{\@size@#1}{\docompletefontswitch[#1]}% % \ifdefiningunknownfont \else % \definingunknownfonttrue % \def\defineunknownsubfont##1% % {\doifundefined{\@size@\getvalue{\??ft#1##1}} % {\defineunknownfont{\getvalue{\??ft#1##1}}}}% % \processcommacommand[\fontrelativesizelist]\defineunknownsubfont % \definingunknownfontfalse % \fi % \fi % \ifdone % \showmessage\m!fonts{14}{#1}% % \fi % \fi} \def\dodefineunknownfont#1#2% {\doifdefined{\??ft\s!default#2} {\donetrue \scratchdimen#1\relax \scratchdimen\csname\??ft\s!default#2\endcsname\scratchdimen \normalizebodyfontsize\scratchdimen\to\!!stringa \letvalue{\??ft#1#2}\!!stringa}} % \def\dodefineunknownbodyfont#1#2% see *** % {\doifdefined{\s!default\s!default#2} % {\donetrue % \getvalue{\s!default\s!default#2}{#1}{#2}}} % % but ... it needs to be as follows: % % \def\dodefineunknownbodyfont#1#2% see *** % {\doifdefined{\s!default\fontclass#2}% was \s!default\s!default (related to change */*) % {\donetrue % \getvalue{\s!default\fontclass#2}{#1}{#2}}} % % eh ... this does not work so we revert back to: \def\dodefineunknownbodyfont#1#2% see *** {\doifdefined{\s!default\s!default#2}% somehow related to */* {\donetrue \getvalue{\s!default\s!default#2}{#1}{#2}}} \def\dodefineunknownsubfont#1#2% {\doifundefined{\@size@\getvalue{\??ft#1#2}} {\donetrue \defineunknownfont{\getvalue{\??ft#1#2}}}} \def\defineunknownfont#1% {\let\c!savedtext\c!text \let\c!text\s!text \donefalse \processcommacommand[\fontrelativesizelist]{\dodefineunknownfont{#1}}% \let\c!text\c!savedtext \ifdone \donefalse \processcommacommand [\fontstylelist] {\dodefineunknownbodyfont{#1}}% \ifdone \donefalse \setvalue{\@size@#1}{\docompletefontswitch[#1]}% \ifdefiningunknownfont \else \definingunknownfonttrue \processcommacommand[\fontrelativesizelist]{\dodefineunknownsubfont{#1}}% \definingunknownfontfalse \fi \fi \ifdone \showmessage\m!fonts{14}{#1}% \fi \fi} % \def\defineunknownfontstyles#1% % {\def\defineunknownbodyfont##1% see *** % {\executeifdefined{\s!default\s!default##1}\gobbletwoarguments{#1}{##1}}% % \rawprocesscommacommand[\fontstylelist]\defineunknownbodyfont} %D These macros show that quite some definitions take place. %D Fonts are not loaded yet! This means that at format %D generation time, no font files are preloaded. %D A previous implementation used: %D %D \starttyping %D \type {\setvalue{name}{\donottest...}} %D \stoptyping %D %D instead of the more memory hungry: %D %D \starttyping %D \unexpanded\setvalue{name}{...} %D \stoptyping %D %D The first alternative saves about 500 hash entries (about %D 2.5\% of the total number of entries used. The second %D alternative is currently used, because that one can more %D easily be made \ETEX\ aware. %D \macros %D {everybodyfont,Everybodyfont,everyglobalbodyfont} %D %D Every change in bodyfont size has conseqences for the baseline %D distance and skips between paragraphs. These are initialized %D in other modules. Here we only provide the hooks that %D garantees their handling. % \ifx\everybodyfont\undefined % permits reloading % \newevery \everybodyfont \EveryBodyFont % \fi %D At the system level one can initialize thing like: %D %D \starttyping %D \appendtoks \setupspacing \to \everybodyfont %D \stoptyping %D %D While users can add their own non standard commands like: %D %D \starttyping %D \EveryBodyFont{\message{changing to bodyfont \the\bodyfontsize}} %D \stoptyping %D %D Personnaly I never felt the need for such extensions, but %D at least its possible. %D \macros %D {globalbodyfontsize,localbodyfontsize} %D %D Next we'll do the tough job of font switching. Here we %D have to distinguish between the global (overal) bodyfont %D size and the local (sometimes in the textflow) size. We %D store these dimensions in two \DIMENSION\ registers. \ifdefined\globalbodyfontsize\else \newdimen\globalbodyfontsize \fi \globalbodyfontsize=12pt \ifdefined\localbodyfontsize \else \newdimen\localbodyfontsize \fi \localbodyfontsize =\globalbodyfontsize %D \macros %D {bodyfontsize} %D %D These two registers are not to be misused in calculations. %D For this purpose we keep a copy: \newdimen\bodyfontsize \bodyfontsize=\globalbodyfontsize %D \macros %D {outputresolution} %D %D Sometimes (to be honest: not in this module) we need to %D take the system resolution into account. Therefore we also %D define a macro: \def\outputresolution {600} %D \macros %D {bodyfontfactor,bodyfontpoints} %D %D For multiplication purposes we keep an auxiliary counter %D and macro (here the expansion is not explicitly needed): \newcount\bodyfontpoints \dimensiontocount\bodyfontsize\bodyfontpoints \edef\bodyfontfactor{\withoutpt\the\bodyfontsize} %D When we assign for instance 12pt to a \DIMENSION\ register %D the \type{\the}'d value comes out as 12.0pt, which is %D often not the way users specify the bodyfont size. Therefore %D we also store the normalized value. \chardef\fontdigits=2 % was 1 % \def\normalizebodyfontsize#1\to#2% % {\scratchdimen#1\relax % \ifcase\fontdigits\advance\scratchdimen.5\points\fi % \@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\scratchdimen00\to#2} % % \def\donormalizedbodyfontsize#1.#2#3#4\to#5% \points ? % {\edef#5% % {#1% % \ifcase\fontdigits\or % \ifcase#2 \else.#2\fi % and not: \ifcase#2\else ... % \else % \ifcase#2#3 \else.#2\ifcase#3 \else#3\fi\fi % not: \ifcase#2#3\else ... % \fi % \s!pt}} \def\normalizebodyfontsize#1\to#2% {\scratchdimen\dimexpr#1+\ifcase\fontdigits.5\or.05\or.005\fi\points\relax \@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\scratchdimen000\to#2} \def\donormalizedbodyfontsize#1.#2#3#4#5\to#6% \points ? {\edef#6% not \ifcase#2\else due to \relax adding {#1% \ifcase\fontdigits \or \ifcase#2 \else .#2\fi % 1 \or \ifcase#2#3 \else .#2\ifcase#3 \else #3\fi\fi % 2 \else \ifcase#2#3#4 \else .#2\ifcase#4 \ifcase#3 \else#3\fi \else#3#4\fi\fi % 3 \fi \s!pt}} %D To be internationalized: \def\korpsgrootte {\bodyfontsize} \def\korpspunten {\bodyfontpoints} %D some day. %D \macros %D {fontstyle,fontalternative,fontsize} %D %D Within a bodyfont, fonts can come in different sizes. For %D instance \type{\tf} is accompanied by \type{\tfa}, %D \type{\tfb} etc. The first two characters denote the %D alternative, while the third character in these sequences %D represents the size. The actual size is saved in a macro %D %D The style, being roman (\type{\rm}), sans serif (\type{\ss}) %D etc. is also available in a macro in \type{rm}, \type{ss} %D etc. form: \let\defaultfontalternative = \c!tf \let\defaultfontstyle = \empty \let\defaultfontsize = \empty \let\fontalternative = \defaultfontalternative \let\fontstyle = \defaultfontstyle \let\fontsize = \defaultfontsize %D {\em The following approach is obsolete.} %D %D All things related to fonts are grouped into files with %D names like \type{font-cmr}. These files are loaded by: \def\resetfontdefinitionfile[#1]% {\letbeundefined{\c!file\f!fontprefix#1}} \newif\ifloadfontfileonce \def\doreadfontdefinitionfile#1#2% #1 = set/switch state {\doifundefined{\c!file\f!fontprefix#2}% {\ifloadfontfileonce \letvalue{\c!file\f!fontprefix#2}\empty \fi \makeshortfilename[\truefilename{\f!fontprefix#2}]% \startreadingfile \readsysfile{\shortfilename.mkii} {\showmessage\m!fonts2{#2}} {\showmessage\m!fonts3{#2}}% \stopreadingfile}} %D When \type {\loadfontfileoncetrue}, such files are %D only loaded once! This permits redundant loading, but at %D the same time forced grouping when we want continuously mix %D all kind of font, which of course is a kind of %D typographically sin. The \type{"} is made inactive if %D needed to prevent problems with loading files that use this %D character in numbers. \def\doswitchpoints[#1]% {\expanded{\dodoswitchpoints{#1}}} \def\dodoswitchpoints#1% {\doifundefined{\@size@#1} {\defineunknownfont{#1}}% %\defineunknownfontstyles{#1}% \doifdefinedelse{\@size@#1} {\getvalue{\@size@#1}% \localbodyfontsize#1\relax \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize \checkbodyfontenvironment[\normalizedbodyfontsize]} {\showmessage\m!fonts4{#1}}} \unprotected \def\doswitchstyle[#1]% {\doifdefinedelse{\@style@#1} {\getvalue{\@style@#1}% \edef\fontstyle{#1}% \ifmmode\mr\fi % in order to be compatible with \rm in math mode }% \the\everybodyfont} % cleaner, in setting size as well as style {\showmessage\m!fonts5{#1}}} %D \TEX\ loads font metric files like \type{cmr10.tfm} and %D \type{tir.tfm} only once. In \PLAIN\ \TEX\ some font files %D are {\em preloaded}. This means that the font files are %D loaded, but not accessible yet by name. This is accomplished %D by saying: %D %D \starttyping %D \font\preloaded=cmr10 at 11pt %D \stoptyping %D %D and using the name \type{\preloaded} again and again, so %D fonts are indeed loaded, but unnamed, and therefore %D unaccessible. In \CONTEXT\ we don't preload fonts, not even %D the \PLAIN\ \TEX\ ones, although users can access them. Now %D why is this done? %D Defining fonts using \type{\definebodyfont} takes time, so we %D prefer to predefine at least the Computer Modern Roman %D fonts. However, loading all those fonts at definition time %D would take both time and space. But even worse, once fonts %D are loaded into memory, their encoding vector is fixed, %D which is a handicap when we want to distribute the compact %D \type{fmt} files. So what we want to do is defining fonts in %D a way that postpones the loading. We accomplish this by only %D loading the fonts when we switch to another bodyfont size. %D Among the other alternatives, such as loading the font at %D the moment of activation and redefining the activation %D macro afterwards, this proved to be the most efficient %D alternative. %D %D The next few macros take care of the one exeption on this %D scheme. When at format generation time we load the default %D font file, the one that defines the Computer Modern Fonts, %D we don't want the fonts metrics to end up in the format %D file, so we temporary prohibit loading. This means that at %D runtime we have to load the default bodyfont size just before %D we start typesetting. %D %D Therefore we have to signal the font switching macros that %D we are preloading fonts. As long as the next boolean is, %D true, no loading is done. \newif\ifloadingfonts \loadingfontstrue %D \macros %D {preloadfonts} %D %D Preloading is only called for once, during the startup %D sequence of a session. After the loading job is done, the %D macro relaxes itself and reset the signal. \def\preloadfonts % never called, needs a clean up {\showmessage\m!fonts6{\normalizedbodyfontsize\normalspace\fontstyle}% \global\loadingfontsfalse \doswitchpoints[\normalizedbodyfontsize]% \doswitchstyle[\fontstyle]% \the\everybodyfont \the\everyglobalbodyfont \saveinterlinespace \global\let\preloadfonts\relax} % \prependtoks \preloadfonts \to \everydump % saves .1 s on a DELL P60 - 2GHZ %D Here comes the main font switching macros. These macros %D handle changes in size as well as returning to the global %D bodyfont size. \def\dosetfont#1#2% #1 = set/switch state {\doifelse{#2}\v!global {\restoreglobalbodyfont} {\processcommacommand[#2]{\dodosetfont{#1}}% ##1 get also passed \ifloadingfonts\else \doswitchpoints[\normalizedbodyfontsize]% \doswitchstyle[\fontstyle]% \fi}% \chardef\currentxfontsize\zerocount} \def\dodosetfont#1#2% #1 = set/switch state | check fo rempty, else space {\doifsomething{#2}{\dododosetfont{#1}{#2}{\showmessage\m!fonts4{#2}}}} \def\dododosetfont#1#2#3% #1 = set/switch state {\doifnumberelse{#2} {\dodododosetfont{#1}{#2}{#3}} {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#2}} {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#2}\endcsname}% \expanded{\dodododosetfont{#1}{\fontstep}}{#3}} {\doifelse{#2}\v!reset {\let\fontstyle\empty % new 31/7/2006 \let\fontsize \empty} {\doifdefinedelse{\@style@#2} {\edef\fontstyle{#2}} {\doreadfontdefinitionfile{#1}{#2}}}}}} \def\dodododosetfont#1#2#3% #1 = set/switch state {\scratchdimen#2\relax \normalizebodyfontsize\scratchdimen\to\normalizedsetfont \doifundefined{\@size@\normalizedsetfont} {\defineunknownfont{#2}}% \doifdefinedelse{\@size@\normalizedsetfont} {\localbodyfontsize\normalizedsetfont \let\normalizedbodyfontsize\normalizedsetfont} {#3\dosetsubstitutefont{#1}{#2}}} %D In the previous macros we use \type{\currentxfontsize} to %D hold the current x||size of the font. This enables us to %D support for instance \type{\sl} inside a \type{\tx} switch. \chardef\currentxfontsize=0 %D When users specify for instance a 13 point bodyfont while no %D such bodyfont is defined, the system automatically tries to %D find a best fit, that is the nearest smaller defined %D bodyfontzize. A smaller one is definitely better than a larger %D one, simply because otherwise a lot of overfull box messages %D are more probable to occur. By taking a value slightly %D smaller than half a point, we can use the next method. \def\dosetsubstitutefont#1#2% #1 = set/switch state {\scratchdimen#2\relax \advance\scratchdimen .499\points \dimensiontocount\scratchdimen\scratchcounter \advance\scratchcounter \minusone \ifnum\scratchcounter>\plusthree \dododosetfont{#1}{\the\scratchcounter\s!pt}{}% \fi} % The following bunch of macros deals with the (run time) % expansion of names onto the definitions made by \type % {\definebodyfont}. % \let\fontbody \empty % ... 10pt 11pt 12pt ... % \let\fontstyle \empty % rm ss tt mm hw cg ... % \let\fontalternative\empty % tf bf sl it bs bi sc ... % \let\fontsize \empty % xy-abcd ... \def\defaultfontbody{\normalizedbodyfontsize} \let\fontbody\defaultfontbody \let\fontclass\empty \let\globalfontclass\fontclass % \def\setcurrentfontclass#1% % {\edef\fontclass{#1}} \def\registerfontclass#1% {\letgvalue{\@fontclass@#1}\v!yes} % global ? \def\setcurrentfontclass#1% {\ifcsname\@fontclass@#1\endcsname \edef\fontclass{#1}% \fi} \let\defaultfontstyle \c!rm \let\defaultfontalternative \c!tf \let\defaultfontsize \empty %D \macros %D {bigmath,nobigmath} %D %D We can inhibit this slow||downer with: % these can best be combined % 0=never 1=everymath 2=always \chardef\synchronizebigmathflag=1 \appendtoks \ifcase\synchronizebigmathflag % never \or \synchronizebigmath \or % always \fi \to \everymathematics \def\nobigmath{\chardef\synchronizebigmathflag 0 } \def\bigmath {\chardef\synchronizebigmathflag 2 \synchronizebigmath} \let\bigmathfontsize\empty \def\synchronizebigmath {\ifx\bigmathfontsize\fontsize % already in sync \else \let\bigmathfontsize\fontsize \synchronizemath \synchronizetext \fi} \def\checkbigmathsynchronization {\ifcase\synchronizebigmathflag % never \or \ifmmode \synchronizebigmath \fi \or \synchronizebigmath \fi} %D So far for synchronisation. \def\dosetcurrentfontsize#1% {\edef\fontsize{#1}% \checkbigmathsynchronization} \def\dosetcurrentfontalternative#1% {\edef\fontalternative{#1}% \ifmmode % maybe no test, or actually, an option \fam\csname\fontalternative\s!fam\endcsname \fi} \def\setcurrentfont#1#2#3#4% {%\message{[1 #1 #2 #3 #4]}% \edef\fontbody{#1}% \edef\fontstyle{#2}% \dosetcurrentfontalternative{#3}% \dosetcurrentfontsize{#4}% \synchronizefont} \def\setcurrentfontbody#1% {%\message{[2 #1]}% \edef\fontbody{#1}% \synchronizefont} % \def\setcurrentfontstyle#1% % {%\message{[3 #1]}% % \edef\fontstyle{#1}% % \ifmmode\mr\fi % otherwise \rm not downward compatible % \synchronizefont} % % For Taco: optional fall backs: \ifx\checkfontclass\undefined \let\checkfontclass\gobbleoneargument \fi % implemented in type-ini \def\setcurrentfontstyle#1% {%\message{[3 #1]}% \checkfontclass{#1}% \edef\fontstyle{#1}% \ifmmode\mr\fi % otherwise \rm not downward compatible \synchronizefont} \def\setcurrentfontbodyalternative#1#2% {%\message{[4 #1 #2]}% \edef\fontbody{#1}% \dosetcurrentfontalternative{#2}% \synchronizefont} \def\setcurrentfontalternative#1% {%\message{[5 #1]}% \dosetcurrentfontalternative{#1}% \synchronizefont} \def\setcurrentfontsize#1% {%\message{[6 #1]}% \dosetcurrentfontsize{#1}% \synchronizefont} \def\setcurrentfontstylealternative#1#2% \rmsl {%\message{[7 #1 #2]}% \edef\fontstyle{#1}% \dosetcurrentfontalternative{#2}% \synchronizefont} \def\setcurrentfontstylesize#1#2% \rmsla {%\message{[8 #1 #2]}% \edef\fontstyle{#1}% \dosetcurrentfontsize{#2}% \synchronizefont} \def\setcurrentfontalternativesize#1#2% \sla {%\message{[9 #1 #2]}% \dosetcurrentfontalternative{#1}% \dosetcurrentfontsize{#2}% \synchronizefont} \def\setcurrentfontstylealternativesize#1#2#3% \rmsla {%\message{[10 #1 #2 #3]}% \edef\fontstyle{#1}% \dosetcurrentfontalternative{#2}% \dosetcurrentfontsize{#3}% \synchronizefont} %D In principle one can assign alternative fallback routines. %D Some day we will. \newtoks\fontstrategies \newif\iftryingfont \let\fontstrategy\relax \def\synchronizefont {\tryingfonttrue \ifx\fontclass\empty\else \global\let\fontstrategy\dofontclassstrategy \the\fontstrategies \relax % \relax still needed ? \fi \iftryingfont \global\let\fontstrategy\dofontstrategy \the\fontstrategies \relax % \relax still needed ? \fi \ifskipfontcharacteristics \setfontcharacteristics \the\everyfontswitch \fi} \def\dofontstrategy#1#2#3#4#5% {\ifcsname#2#3#4#5\endcsname #1\csname#2#3#4#5\endcsname \tryingfontfalse \fi} \def\dofontclassstrategy#1#2#3#4#5% {\ifcsname\fontclass#2#3#4#5\endcsname #1\csname\fontclass#2#3#4#5\endcsname \tryingfontfalse \fi} \appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- --- --- --- % pt tt bf a \fontbody \fontstyle \fontalternative \fontsize \fi \to \fontstrategies \appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- --- def % pt tt bf \fontbody \fontstyle \fontalternative \defaultfontsize \fi \to \fontstrategies \appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def --- % pt tt tf a \fontbody \fontstyle \defaultfontalternative \fontsize \fi \to \fontstrategies \appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def def % pt tt tf \fontbody \fontstyle \defaultfontalternative \defaultfontsize \fi \to \fontstrategies \appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- def def def % pt rm tf \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize \fi \to \fontstrategies \appendtoks \iftryingfont \fontstrategy \autofontsizetrue % def def def def % rm tf \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize \fi \to \fontstrategies %D Let's synchronize: \newif\ifsynchronizefonts \synchronizefontstrue \prependtoks \ifsynchronizefonts \synchronizemath \synchronizetext \synchronizefont % problem: syncs last font \fi \to \everybodyfont %D Setting the normal sized as well as the x and xx smaller %D sizes is accomplished by the next set of macros. When in %D math mode, the commands \type{\tx} and \type{\txx} are %D just a switch to the script and double script styles, but %D in text mode the values defined by the bodyfontenvironment are %D used. Here we also set \type{\currentxfontsize}. \def\dosetcurrentfontxxxalternative#1#2#3#4% {\chardef\currentxfontsize#2\relax \ifmmode #4% \else\ifcsname\bodyfontvariable{\normalizedbodyfontsize#3}\endcsname \setcurrentfontbodyalternative{\bodyfontcsname\normalizedbodyfontsize#3\endcsname}{#1}% \fi\fi} \def\setcurrentfontxalternative#1% {\dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle \let\tx\txx} \def\setcurrentfontxxalternative#1% {\dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle \let\tx\empty \let\txx\empty} \def\checknestedxfontsize % option {\ifcase\currentxfontsize\else\ifx\fontsize\empty\else \chardef\currentxfontsize\zeropoint \let\fontsize\empty \let\tx\normaltx \let\txx\normaltxx \fi\fi} \def\setcurrentfontxalternative#1% {\checknestedxfontsize \dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle \let\tx\txx} \def\setcurrentfontxxalternative#1% {\checknestedxfontsize \dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle \let\tx\empty \let\txx\empty} % This alterative is not really needed, but for old time's sake % we keep it there. We can speed it up when needed. % \def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tfx} % \def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\tfxx} \def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tx} \def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\txx} %D These macros also show us that when we call for \type{\tx}, %D this macro is redefined to be \type{\txx}. Therefore calls %D like: %D %D \startbuffer %D {small \tx is \tx beautiful} %D {small \tx is \txx beautiful} %D {small \txx is \tx beautiful} %D {small \txx is \txx beautiful} %D \stopbuffer %D %D \typebuffer %D %D result in: %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D Setting the main size involves the style list and therefore %D takes a bit more time. Keep in mind that the fontsize is %D represented by a character or empty. \unexpanded\def\tx {\setcurrentfontxalternative \fontalternative} \unexpanded\def\txx{\setcurrentfontxxalternative\fontalternative} \let\normaltx \tx \let\normaltxx\txx %D \macros %D {definefontstyle} %D %D When setting of switching the overall style we can use the %D short identifier like rm and ss, but when defined we can %D also use more verbose names like roman or sansserif. Such %D names are defined by: %D %D \starttyping %D \definefontstyle [serif,rm] [rm] %D \definefontstyle [sansserif,ss] [ss] %D \stoptyping \def\dodefinefontstyle[#1][#2]% {\rawdoifinsetelse{#2}{\fontstylelist} {}%\debuggerinfo\m!fonts{unknown style #2}} {\addtocommalist{#2}\fontstylelist \showmessage\m!fonts8{#2\space (#1)}}% % check kan hier \def\docommand##1% {\setvalue{\@shortstyle@##1}{#2}% \setvalue{\@style@##1}{\csname#2\endcsname}}% \processcommalist[#1]\docommand} \def\definefontstyle {\dodoubleargument\dodefinefontstyle} \def\setfontstyle#1#2% #1:name (roman, romaan) #2:style (rm) {\edef\fontstyle{#1}% \setcurrentfontstyle\normalizedbodyfontsize} \chardef\defaultskewcharmi=127 % '177 \chardef\defaultskewcharsy= 48 % '60 % \def\dosetskewchar#1% % {\skewchar\font\ifx\@@fontskewchar\empty#1\else\@@fontskewchar\fi} \def\dosetskewchar#1#2% {\ifx\@@fontskewchar\empty \skewchar\textfont #1#2% \skewchar\scriptfont #1#2% \skewchar\scriptscriptfont#1#2% \else \skewchar\textfont #1\@@fontskewchar \skewchar\scriptfont #1\@@fontskewchar \skewchar\scriptscriptfont#1\@@fontskewchar \fi} %D The previous macros show that it's is not always %D neccessary to define the whole bunch of fonts, take for %D instance the sequence: %D %D \starttyping %D \setupbodyfont %D [ams] %D %D \definebodyfont [24pt] [mm] %D [ma=msam10 at 24pt, %D mb=msbm10 at 24pt] %D %D \switchtobodyfont %D [24pt] %D %D This is a 24pt $\blacktriangleleft$ %D \stoptyping %D %D Here we didn't define the 24 point bodyfont environment, so %D it's defined automatically. Of course one can always use the %D \TEX\ primitive \type{\font} to switch to whatever font %D needed. %D When asking for a complete font switch, for instance from 10 %D to 12~points, the next macro does the job. First we %D normalize the size, next we define the current range of %D text, script and scriptscript sizes, then we set the text %D fonts and the math families and finally we activate the %D default typeface and also set the font specific parameters %D assigned to \type{\everybodyfont} \def\dosetbodyfontface#1#2% {\edef#1{\bodyfontcsname\normalizedbodyfontsize#2\endcsname}} \def\docompletefontswitch[#1]% {\bodyfontsize#1\relax \dimensiontocount\bodyfontsize\bodyfontpoints \edef\bodyfontfactor{\withoutpt\the\bodyfontsize}% \normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize \dosetbodyfontface \textface \s!text \dosetbodyfontface \scriptface \s!script \dosetbodyfontface \scriptscriptface \s!scriptscript} \docompletefontswitch[12pt] % init %D \macros %D {setupbodyfont,switchtobodyfont} %D %D The next two macros are user ones. With \type{\setupbodyfont} %D one can set the document bodyfont size, font family, style %D and/or options defined in files, for example: %D %D \starttyping %D \setupbodyfont[cmr,ams,12pt,roman] %D \stoptyping %D %D This command affects the document as a whole: text, headers %D and footers. The second macro however affects only the text: %D %D \starttyping %D \switchtobodyfont[10pt] %D \stoptyping %D %D So we've got: %D %D \showsetup{setupbodyfont} %D \showsetup{switchtobodyfont} %D %D Both macros look alike. The second one also has to take %D all kind of keywords into account. \ifx\saveinterlinespace \undefined \let\saveinterlinespace \relax \fi \ifx\restoreinterlinespace\undefined \let\restoreinterlinespace\relax \fi \chardef\bodyfontsetstate=0 \definecomplexorsimple\setupbodyfont \def\simplesetupbodyfont {\restoreglobalbodyfont \saveinterlinespace} \def\complexsetupbodyfont[#1]% {\doifsomething{#1} {\dosetfont1{#1}% \globalbodyfontsize\localbodyfontsize \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontsize \let\globalfontstyle\fontstyle \ifloadingfonts\else \the\everybodyfont \the\everyglobalbodyfont \saveinterlinespace \fi}} \unexpanded\def\switchtobodyfont[#1]% {\doifsomething{#1} {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#1}} {\setbodyfontstep{#1}} % so we have a fast [small] switch {\dosetfont0{#1}}% \the\everybodyfont}} % indeed needed in case nothing is executed %D The following alternative is meant for math||to||text %D switching and will be optimized. \def\fastswitchtobodyfont#1% {\ifcsname\??ft\normalizedbodyfontsize#1\endcsname \edef\futurebodyfontsize {\csname\??ft\normalizedbodyfontsize#1\endcsname}% \ifcsname\@size@\futurebodyfontsize\endcsname \csname\@size@\futurebodyfontsize\endcsname \localbodyfontsize\futurebodyfontsize\relax \fi \fi \csname\@style@\fontstyle\endcsname \the\everybodyfont} %D Because the last macro can appear in arguments or be assigned %D to parameters, we protect this one for unwanted expansion. \def\dodosetmathfont#1% {\setcurrentfontalternative{#1}% % \doifdefinedelse{#1\s!fam} % adapted % {\edef\mffam{\getvalue{#1\s!fam}}} % {\edef\mffam{\getvalue{\c!nn\s!fam}}}% \textfont \mrfam\textfont \mffam \scriptfont \mrfam\scriptfont \mffam \scriptscriptfont\mrfam\scriptscriptfont\mffam} \def\domffam#1% {\csname\ifcsname#1\s!fam\endcsname#1\else\c!nn\fi\s!fam\endcsname} \def\mffam {\domffam\fontalternative} \def\dosetmathfont {\def\rm{\fam\mrfam}\dodosetmathfont} \def\enableencodinginmath {\appendtoks \everyhbox{\mr\everyhbox\emptytoks}% \everyvbox{\mr\everyvbox\emptytoks}% \to \everymathematics} % was \everymath % \enableencodinginmath % too untested to enable by default %D \starttyping %D $\cases{& \ccaron}$ $x=\hbox{\ccaron $x=\hbox{\ccaron}$}$ %D \stoptyping %D The font specific features are bound to the filename. \def\updatefontparameters {\edef\@@fontencoding{\truefontdata\fontfile \s!encoding}% \edef\@@fontmapping {\truefontdata\fontfile \s!mapping }% \edef\@@fonthandling{\truefontdata\somefontname\s!handling}% \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}} \def\setfontcharacteristics {\updatefontparameters % redundant, will go away, faster too \fastenableencoding {\ifx\@@fontencoding\empty \s!default \else \@@fontencoding \fi}% \fastenablemapping {\ifx\@@fontmapping\empty \ifx\@@fontencoding\empty \s!default \else \@@fontencoding \fi \else \@@fontmapping \fi}% \fastenablehandling {\ifx\@@fonthandling\empty \s!default \else \@@fonthandling \fi}% {\lastfontidentifier}% \the\everyfont \synchronizepatternswithfont} \ifx\synchronizepatternswithfont\undefined \def\synchronizepatternswithfont{\synchronizepatterns} \fi %D Experimental: (should move to font-xtx) \ifdefined \definefontfeature \else \def\definefontfeature {\dotripleargument\dodefinefontfeature} \def\dodefinefontfeature[#1][#2][#3]{} \fi %D The next auxilliary macro is an alternative to \type %D {\fontname}. % \def\purefontname#1{\expandafter\splitoffpurefontname\fontname#1 \\} % % extra level is needed: \def\purefontname#1{\@EA\splitoffpurefontname\@EA{\@EA{\@EA\unstringed\fontname#1}} \\} \def\splitoffpurefontname#1 #2\\{#1} %D \macros %D {switchstyleonly} %D %D For switching a style but keeping the alternative, there %D is: %D %D \starttyping %D {\bf text \switchstyleonly\ss text} %D {\bf text \switchstyleonly[ss]text} %D {\sl text \switchstyleonly[sansserif]text} %D \stoptyping \definecomplexorsimple\switchstyleonly \def\simpleswitchstyleonly#1% stupid version {\complexswitchstyleonly[\strippedcsname#1]} \def\complexswitchstyleonly[#1]% todo : check {\setcurrentfontstyle{\getvalue{\@shortstyle@#1}}% \the\everybodyfont} % needed ? %D \macros %D {os,frak, goth, cal} %D %D Old style numerals can be typeset with \type{\os} and look %D like {\os 1234567890} instead of the more common looking %D 1234567890. %D %D On behalf of {\frac Tobias Burnus}, we define some more of %D these. Later we will link these names to real file names. % older % % \definefont [os] [OldStyle sa *] % \definefont [frak] [Fraktur sa *] % \definefont [goth] [Gothic sa *] % \definefont [cal] [Calligraphic sa *] % \definefont [bbd] [Blackboard sa *] % % newer \unexpanded\def\os {\mathortext{\fam\purefamily {oldstyle}}{\symbolicfont {OldStyle}}} \unexpanded\def\frak{\mathortext{\fam\purefamily {fraktur}}{\symbolicfont {Fraktur}}} \unexpanded\def\goth{\mathortext{\fam\purefamily {gothic}}{\symbolicfont {Gothic}}} \unexpanded\def\cal {\mathortext{\fam\purefamily{calligraphic}}{\symbolicfont{Calligraphic}}} \unexpanded\def\bbd {\mathortext{\fam\purefamily {blackboard}}{\symbolicfont {Blackboard}}} \definefontsynonym [OldStyle] [Serif] \definefontsynonym [Fraktur] [Serif] \definefontsynonym [Gothic] [Serif] \definefontsynonym [Calligraphic] [Serif] \definefontsynonym [Blackboard] [Serif] %D \macros %D {fraktur, gothic, calligraphic, blackboard} %D %D These macros assume that we use text fonts, and not math %D families. \ifx\mathtext\undefined \let\mathtext\hbox \fi \unexpanded\def\fraktur #1{\mathortext\domathtext\donothing{\frak#1}} \unexpanded\def\gothic #1{\mathortext\domathtext\donothing{\goth#1}} \unexpanded\def\calligraphic#1{\mathortext\domathtext\donothing{\cal #1}} \unexpanded\def\blackboard #1{\mathortext\domathtext\donothing{\bbd#1}} %D Torture test: %D %D \starttyping %D \usetypescript[modern] [texnansi] %D \usetypescript[lucida] [texnansi] %D \usetypescript[palatino][texnansi] %D \usetypescript[times] [texnansi] %D \usetypescript[fourier] [ec] %D %D \startbuffer %D \section{\blackboard{T\high{\blackboard{T}}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}}} %D %D {\fontclass: 123 \os123 \cal TEX $\os 123$} %D %D $\blackboard{T}^{\blackboard{T}} \blackboard{E}^{\blackboard{E}} \blackboard{X}^{\blackboard{X}}$ %D \blackboard{T}\high{\blackboard{T}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}} %D \stopbuffer %D %D {\setupbodyfont[lucida] \getbuffer} %D {\setupbodyfont[modern] \getbuffer} %D {\setupbodyfont[palatino] \getbuffer} %D {\setupbodyfont[times] \getbuffer} %D {\setupbodyfont[fourier] \getbuffer} %D \stoptyping %D \macros %D {definebodyfontswitch} %D %D \PLAIN\ \TEX\ defines some macro's like \type{\tenpoint} %D to switch to a specific bodyfontsize. Just for the sake of %D compatibility we can define them like: %D %D \starttyping %D \definebodyfontswitch [twelvepoint] [12pt] %D \stoptyping %D %D We don't support language specific synonyms here, mainly %D because \PLAIN\ \TEX\ is english anyway. \def\dodefinebodyfontswitch[#1][#2]% {\def\docommand##1{\setvalue{##1}{\switchtobodyfont[#2]}}% \processcommalist[#1]\docommand} \def\definebodyfontswitch {\dodoubleargument\dodefinebodyfontswitch} %D \macros %D {setsmallbodyfont,setmainbodyfont,setbigbodyfont} %D %D When we're typesetting at for instance 10pt, we can call for %D the \type{small} as well as the \type{big} alternative, %D related to this main size, using \type{\switchtobodyfont[small]}. %D The three alternatives can be activated by the next three %D system calls and are defined by the bodyfontenvironment. \let\fontstep\empty % we can use \fontstep for tracing purposes \def\setbodyfontstep#1% {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#1}\endcsname}% \doswitchpoints[\fontstep]% \doswitchstyle[\fontstyle]} \unexpanded\def\setsmallbodyfont{\setbodyfontstep\v!small\the\everybodyfont} \unexpanded\def\setbigbodyfont {\setbodyfontstep\v!big \the\everybodyfont} \unexpanded\def\setmainbodyfont {\doswitchpoints[\normalizedbodyfontsize]% \doswitchstyle[\fontstyle]% \the\everybodyfont \the\everyglobalbodyfont \saveinterlinespace} %D \macros %D {restoreglobalbodyfont} %D %D Users can set whatever font available while typesetting text. %D Pagenumbers, footers, headers etc. however must be typeset %D in the main bodyfont and style of the document. Returning to %D the global state can be done with the next macro: \let\mainfontclass\empty \def\fullrestoreglobalbodyfont {\let\fontsize\defaultfontsize \let\fontbody\defaultfontbody \chardef\currentxfontsize\zerocount \let\fontclass\globalfontclass \doswitchpoints[\normalizedglobalbodyfontsize]% \doswitchstyle[\globalfontstyle]% \redoconvertfont % just in case a pagebreak occurs \tf \the\everybodyfont \the\everyglobalbodyfont \saveinterlinespace} \def\partialrestoreglobalbodyfont {\let\fontsize\defaultfontsize \let\fontbody\defaultfontbody \chardef\currentxfontsize\zerocount \redoconvertfont \tf \saveinterlinespace} \def\restoreglobalbodyfont % ook style etc {\ifx\fontclass\globalfontclass \ifx\fontstyle\globalfontstyle \ifx\normalizedbodyfontsize\normalizedglobalbodyfontsize \partialrestoreglobalbodyfont \else \fullrestoreglobalbodyfont \fi \else \fullrestoreglobalbodyfont \fi \else \fullrestoreglobalbodyfont \fi} % in case of troubles: \let\restorebodyfont\fullrestoreglobalbodyfont %D This macro has to be called when entering the pagebody %D handling routine as well as the footnote insert routine. %D Users can access this feature |<|for instance when one wants %D to typeset tables and alike in the main bodyfont and style %D while the running text is temporary set to a smaller one|>| %D by saying \type{\switchtobodyfont[global]}. %D \macros %D {rasterfont} %D %D There are (at the moment) two situations in which we want to %D have fast access to a particular font. When we are using %D \TEX\ to typeset rasters, we use small {\rasterfont.}'s %D (a rather small period indeed), the same as \PICTEX\ uses %D for drawing purposes. \definefont [rasterfont] [Serif at 5pt] %D \macros %D {infofont} %D %D The second situation occurs when we enable the info mode, %D and put all kind of status information in the margin. We %D don't want huge switches to the main bodyfont and style, so %D here too we use a direct method. % old mechanism % % \def\infofont{\getvalue{\!!sixpoint\c!tt\c!tf}\the\everybodyfont} \let\infofont\relax % satisfy dep checker \definefont [infofont] [Mono at 6pt] % todo \the\everybodyfont %D \macros %D {definealternativestyle} %D %D In the main modules we are going to implement lots of %D parameterized commands and one of these parameters will %D concern the font to use. To suit consistent use of fonts we %D here implement a mechanism for defining the keywords that %D present a particular style or alternative. %D %D \starttyping %D \definealternativestyle [keywords] [\style] [\nostyle] %D \stoptyping %D %D The first command is used in the normal textflow, while the %D second command takes care of headings and alike. Consider %D the next two definitions: %D %D \starttyping %D \definealternativestyle [bold] [\bf] [] %D \definealternativestyle [cap] [\cap] [\cap] %D \stoptyping %D %D A change \type{\bf} in a heading which is to be set in %D \type{\tfd} does not look that well, so therefore we leave %D the second argument of \type{\definealternativestyle} empty. %D When we capatalize characters using the pseudo small cap %D command \type{\cap}, we want this to take effect in both %D text and headings, which is accomplished by assigning both %D arguments. \def\dodefinealternativestyle[#1][#2][#3]% {\def\docommand##1% {\doifundefined{##1}{\setvalue{##1}{\groupedcommand{#2}{}}}% \setvalue{\@letter@ ##1}{#2}% \setvalue{\@noletter@##1}{#3}}% \processcommalist[#1]\docommand} \def\definealternativestyle {\dotripleempty\dodefinealternativestyle} \def\definestyle{\definealternativestyle} %D Maybe too geneneric, but probably ok is the following. (Maybe one %D day we will use a dedicated grouped command for styles.) \appendtoks \let\groupedcommand\thirdofthreearguments \to \simplifiedcommands %D This command also defines the keyword as command. This means %D that the example definition of \type{bold} we gave before, %D results in a command \type{\bold} which can be used as: %D %D \startbuffer %D He's a \bold{bold} man with a {\bold head}. %D \stopbuffer %D %D \typebuffer %D %D or %D %D \startvoorbeeld %D \definealternativestyle[bold][\bf][]\getbuffer %D \stopvoorbeeld %D %D Such definitions are of course unwanted for \type{\cap} %D because this would result in an endless recursive call. %D Therefore we check on the existance of both the command and %D the substitution. The latter is needed because for instance %D \type{\type} is an entirely diferent command. That command %D handles verbatim, while the style command would just switch %D to teletype font. This is just an example of a tricky %D naming coincidence. %D \macros %D {doconvertfont,noconvertfont, %D dontconvertfont,redoconvertfont} %D %D After having defined such keywords, we can call for them by %D using %D %D \starttyping %D \doconvertfont{keyword}{text} %D \stoptyping %D %D We deliberately pass an argument. This enables us to %D assign converters that handle one agrument, like %D \type{\cap}. %D %D By default the first specification is used to set the style, %D exept when we say \type{\dontconvertfont}, after which the %D second specification is used. We can also directly call for %D \type{\noconvertfont}. In nested calls, we can restore the %D conversion by saying \type{\redoconvertfont}. \def\@@dodoconvertfont#1{\csname\@letter@ #1\endcsname} \def\@@donoconvertfont#1{\csname\@noletter@#1\endcsname} \unexpanded\def\dodoconvertfont#1% #2% we need the protection {\doifdefinedelse{\@letter@#1} % in testing {\doifelsenothing{#1}\gobbleoneargument\@@dodoconvertfont} {\doifdefinedelse{#1}\getvalue \firstofoneargument}% {#1}} % {#2}} \let\doconvertfont\dodoconvertfont \def\noconvertfont#1% #2% {\doifdefinedelse{\@noletter@#1} {\doifelsenothing{#1}\gobbleoneargument\@@donoconvertfont}\gobbleoneargument {#1}} % {#2}} %D Extras: \unexpanded\def\dontconvertfont {\let\doconvertfont\noconvertfont} \unexpanded\def\redoconvertfont {\let\doconvertfont\dodoconvertfont} %D These commands are not grouped! Grouping is most probably %D done by the calling macro's and would lead to unnecessary %D overhead. %D \macros %D {em,emphasistypeface,emphasisboldface} %D %D The next macro started as a copy of Donald Arseneau's %D \type{\em} (\TUGNEWS\ Vol.~3, no.~1, 1994). His %D implementation was a bit more sophisticated version of the %D standard \LATEX\ one. We furter enhanced the macro, so now %D it also adapts itself to boldface mode. Because we favor %D {\sl slanted} type over {\it italic}, we made the emphasis %D adaptable, for instance: %D %D \starttyping %D \def\emphasistypeface {\it} %D \def\emphasisboldface {\bi} %D \stoptyping %D %D But we prefer: \def\emphasistypeface {\sl} \def\emphasisboldface {\bs} %D or even better: % \def\doemphasistypeface#1#2% % {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!slanted#1% % {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!italic #2% % {\doifelsevalue{\??ft \normalizedbodyfontsize\c!em}\v!slanted#1% % {\doifvalue {\??ft \normalizedbodyfontsize\c!em}\v!italic #2}}}} \def\doemphasistypeface#1#2% {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!slanted {#1}% {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!italic {#2}% {\doifelsevaluenothing{\??ft\fontclass\normalizedbodyfontsize\c!em} {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}\v!slanted {#1}% {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}\v!italic {#2}% {\getvalue{\??ft\normalizedbodyfontsize\c!em}}}} {\getvalue{\??ft\fontclass\normalizedbodyfontsize\c!em}}}}} \def\emphasistypeface{\doemphasistypeface\sl\it} \def\emphasisboldface{\doemphasistypeface\bs\bi} %D To be set with the default body font environment: \type %D {em} being \type {slanted} or \type {italic}. \newconditional\emneeded \newtoks\everyemphasized \unexpanded\def\em {\relax \ifdim\slantperpoint>\zeropoint \settrue\emneeded \else \setfalse\emneeded \fi \setemphasisboldface % new \ifx\fontalternative\c!it % \ifnum\fam=\itfam \def\emphasistypeface{\it}\tf \else\ifx\fontalternative\c!sl % \ifnum\fam=\slfam \def\emphasistypeface{\sl}\tf \else\ifx\fontalternative\c!bf % \ifnum\fam=\bffam \emphasisboldface \else\ifx\fontalternative\c!bs % \ifnum\fam=\bsfam \def\emphasisboldface{\bs}\bf \else\ifx\fontalternative\c!bi % \ifnum\fam=\bifam \def\emphasisboldface{\bi}\bf \else \emphasistypeface \fi\fi\fi\fi\fi \the\everyemphasized \ifconditional\emneeded\relax \else \expandafter\aftergroup \fi \emphasiscorrection} % compare ... % % \appendtoks \red \to \everyemphasized % \setupbodyfontenvironment [default] [em={\italic\color[red]}] %D The next feature was not present in previous versions. It %D takes care of \type {\em \bf ...} sitiations. \def\setemphasisboldface {\let\normalbf\bf \let\setemphasisboldface\relax \unexpanded\def\bf {%\relax \let\bf\relax % new \ifx\fontalternative\c!it % \ifnum\fam=\itfam \bi \else\ifx\fontalternative\c!sl % \ifnum\fam=\slfam \bs \else \normalbf \fi\fi \let\bf\normalbf}} %D Donald's (adapted) macros take the next character into %D account when placing italic correction. As a bonus we also %D look for something that looks like a dash, in which case we %D don't correct. \let\italiccorrection=\/ \def\emphasiscorrection {\ifhmode \expandafter\emphasislook \fi} \def\emphasislook {\begingroup \beginrobusttest \futurelet\next\emphasistest} \def\emphasistest {\normalifcat\noexpand\next,% \endrobusttest\expandafter\doemphasiscorrection \normalelse \endrobusttest\expandafter\dododoemphasiscorrection \normalfi} \def\doemphasiscorrection {\futurelet\next\dodoemphasiscorrection} \def\dodoemphasiscorrection {\setbox\scratchbox\hbox{\next}% \ifdim\ht\scratchbox=\zeropoint % probably a space \expandafter\dododoemphasiscorrection \else\ifdim\ht\scratchbox<.3ex \expandafter\expandafter\expandafter\endgroup \else \expandafter\expandafter\expandafter\dododoemphasiscorrection \fi\fi} \def\dododoemphasiscorrection {\scratchskip\lastskip \ifdim\scratchskip=\zeropoint\relax % == \ifzeropt\scratchskip \italiccorrection\relax \else \unskip\italiccorrection\hskip\scratchskip \fi \endgroup} %D We end with some examples which show the behavior when %D some punctuation is met. We also show how the mechanism %D adapts itself to bold, italic and slanted typing. %D %D \startbuffer %D test {test}test \par %D test {\sl test}test \par %D test {\em test}test \par %D test {\em test}--test \par %D %D test {test}, test \par %D test {\em test}, test \par %D %D test {\em test {\em test {\em test} test} test} test \par %D test {\bf test {\em test {\em test} test} test} test \par %D test {\sl test {\em test {\em test} test} test} test \par %D test {\it test {\em test {\em test} test} test} test \par %D \stopbuffer %D %D \typebuffer %D %D We get: %D %D \startvoorbeeld %D \startpacked %D \getbuffer %D \stoppacked %D \stopvoorbeeld %D \macros %D {emphbf,emphit,emphsl,emphtf} %D %D The next emphasis alternatives are for \THANH. They adapt %D their style as good as possible. \def\emphbf{\groupedcommand{\bf\def\emphit{\bi}\def\emphsl{\bs}}{}} \def\emphit{\groupedcommand{\it\def\emphbf{\bi}\def\emphsl{\sl}}{}} \def\emphsl{\groupedcommand{\sl\def\emphbf{\bs}\def\emphit{\it}}{}} \def\emphtf{\groupedcommand{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}{}} %D \startbuffer %D TEXT {\emphbf text \emphit text \emphtf text \emphsl text} TEXT %D TEXT \emphbf{text \emphit{text} \emphtf{text} \emphsl{text}} TEXT %D \stopbuffer %D %D \typebuffer %D \startlines %D \getbuffer %D \stoplines %D \macros %D {setfont} %D %D Every now and then we want to define a font directly, for %D instance when we typeset title pages. The next macro saves %D some typing: \def\setfont% geen \dosetfont mogelijk {\def\next{\nextfont\setupinterlinespace}% \afterassignment\next\font\nextfont=} %D One can call this macro as: %D %D \starttyping %D \setfont cmr10 at 60pt %D \stoptyping %D %D After which the font is active and the baselines and %D struts are set. %D \macros %D {showbodyfont} %D %D One can call for a rather simple overview of a bodyfont and the %D relations between its alternative fonts. %D %D \showsetup{showbodyfont} %D %D The current bodyfont (here we omitted the argument) looks like: %D %D \showbodyfont %D %D The implementation is rather straightforward in using %D \type{\halign}. \fetchruntimecommand \showbodyfont {\f!fontprefix\s!run} %D \macros %D {showfontstrip, testminimalbaseline, showminimalbaseline} %D %D The next command can come in handy when combining %D different fonts into a collection (typeface) and %D determining optimal baseline distances. %D %D \showfontstrip \blank \showminimalbaseline \fetchruntimecommand \showfontstrip {\f!fontprefix\s!run} \fetchruntimecommand \testminimalbaseline {\f!fontprefix\s!run} \fetchruntimecommand \showminimalbaseline {\f!fontprefix\s!run} %D \macros %D {showkerning} %D %D A goody is: %D %D \showkerning{Can you guess what kerning is?} \fetchruntimecommand \showkerning {\f!fontprefix\s!run} %D \macros %D {showbodyfontenvironment} %D %D The current bodyfontenvironment is: %D %D \showbodyfontenvironment %D %D This overview is generated using: %D %D \showsetup{showbodyfontenvironment} \fetchruntimecommand \showbodyfontenvironment {\f!fontprefix\s!run} %D \macros %D {showfont,showfontstyle,showligatures} %D %D The following command generates a fontmap: %D %D \startbuffer %D \showfont[SansBold at 12pt] %D \stopbuffer %D %D \typebuffer %D %D Below the table the name, encoding, mapping and handling are %D shown. Special characters like the \type {\skewchar} and %D \type {\hyphenchar} als marked. %D %D \getbuffer % to be internationalized \fetchruntimecommand \showfont {\f!fontprefix\s!run} \fetchruntimecommand \showfontstyle {\f!fontprefix\s!run} \fetchruntimecommand \showligature {\f!fontprefix\s!run} \fetchruntimecommand \showligatures {\f!fontprefix\s!run} \fetchruntimecommand \showcharratio {\f!fontprefix\s!run} %D \macros %D {getglyph, symbolicfont} %D %D Individual glyphs can be accessed by using %D %D \starttyping %D \getglyph{fontname}{character} %D \stoptyping %D %D This macro is used in for instance the symbol modules and %D as one can see, it does obey the small and even smaller %D sizes. The \type {\symbolicfont} macro can be used to %D switch to a font named \type {fontname} (see \type %D {cont-log} and \type {symb-eur} for examples of symbolic %D definitions. \def\fontstringA {\ifx\fontstyle\c!rm \s!Serif \else \ifx\fontstyle\c!ss \s!Sans \else \ifx\fontstyle\c!tt \s!Mono \else \s!Serif \fi\fi\fi} \def\fontstringB {\ifx\fontstyle\c!rm \s!Regular \else \ifx\fontstyle\c!ss \s!Support \else \ifx\fontstyle\c!tt \s!Type \else \s!Serif \fi\fi\fi} \def\fontstringC {\ifx\fontalternative\c!bf \s!Bold \else \ifx\fontalternative\c!sl \s!Slanted \else \ifx\fontalternative\c!it \s!Italic \else \ifx\fontalternative\c!bs \s!BoldSlanted \else \ifx\fontalternative\c!bi \s!BoldItalic \fi\fi\fi\fi\fi} \def\fontstringD % default fontstyle {\expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!rm \s!Serif \else \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!ss \s!Sans \else \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!tt \s!Mono \else \s!Serif \fi\fi\fi} % potential generalization: % \letvalue{\??ff:t:\c!rm}\s!Serif % \letvalue{\??ff:t:\c!ss}\s!Sans % \letvalue{\??ff:t:\c!tt}\s!Mono % % \letvalue{\??ff:s:\c!bf}\s!Bold % \letvalue{\??ff:s:\c!sl}\s!Slanted % \letvalue{\??ff:s:\c!it}\s!Italic % \letvalue{\??ff:s:\c!bs}\s!BoldSlanted % \letvalue{\??ff:s:\c!bi}\s!BoldItalic % % \letvalue{\??ff:a:\c!rm}\s!Regular % \letvalue{\??ff:a:\c!ss}\s!Support % \letvalue{\??ff:a:\c!tt}\s!Type % % \def\fontstringA{\executeifdefined{\??ff:t:\fontstyle}\s!Serif} % \def\fontstringB{\executeifdefined{\??ff:a:\fontstyle}\s!Serif} % \def\fontstringC{\executeifdefined{\??ff:s:\fontstyle}\empty} % \def\fontstringD{\executeifdefined{\??ff:t:\csname\??tf\fontclass\s!default\endcsname}\s!Serif} \def\glyphfontfile#1% {#1% \ifcsname\??ff#1\fontstringA\fontstringC\endcsname \fontstringA\fontstringC \else\ifcsname\??ff#1\fontstringB\fontstringC\endcsname \fontstringB\fontstringC \else\ifcsname\??ff#1\fontstringA\endcsname \fontstringA \else\ifcsname\??ff#1\fontstringB\endcsname \fontstringB \else\ifcsname\??ff#1\fontstringC\endcsname \fontstringC \fi\fi\fi\fi\fi} %D The next macro can be used to make decisions based on the shape: \def\doifitalicelse#1#2% {\ifx\fontalternative\c!sl#1\else \ifx\fontalternative\c!it#1\else \ifx\fontalternative\c!bs#1\else \ifx\fontalternative\c!bi#1\else#2\fi\fi\fi\fi} %D For an example of usage of the following command, %D see \type {cont-log.tex}. %D %D \starttyping %D \def\symbolicfont#1% %D {\definedfont[\glyphfontfile{#1} sa *]} %D \stoptyping %D %D Since we know what scaling it to be applied, we can %D implement a much faster alternative: \let\thedefinedfont\relax % \def\symbolicscaledfont#1#2% % {\scaledfont\fontbody % \scaledfont#1\scaledfont % \font\thedefinedfont\truefontname{\glyphfontfile{#2}} at % \currentfontbodyscale\scaledfont % \thedefinedfont} % % \unexpanded\def\symbolicfont % {\symbolicscaledfont\plusone} % % even more control (needed for mthsqrt etc) \def\symbolicsizedfont#1#2#3% {\scaledfont#1% \scaledfont#2\scaledfont \font\thedefinedfont\truefontname{\glyphfontfile{#3}} at \currentfontbodyscale\scaledfont \thedefinedfont} \def\symbolicscaledfont {\symbolicsizedfont\fontbody} \unexpanded\def\symbolicfont {\symbolicsizedfont\fontbody\plusone} \unexpanded\def\getglyph#1#2% slow, faster, much faster %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}} %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}} %{{\symbolicfont{#1}#2}} {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}} \unexpanded\def\getscaledglyph#1#2#3% {{\symbolicscaledfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}} \unexpanded\def\getrawglyph#1#2% for simple symbols {{\scaledfont\fontbody \font\thedefinedfont=#1 at \currentfontbodyscale\scaledfont \thedefinedfont\doifnumberelse{#2}\char\donothing#2}} %D The last implementation of \type {\getglyph} permits %D definitions like: %D %D \starttyping %D \definefontsynonym [EuroSans] [eurose] %D \definefontsynonym [EuroSansBold] [euroseb] %D \definefontsynonym [EuroSansItalic] [eurosei] %D \definefontsynonym [EuroSansSlanted] [eurosei] %D \definefontsynonym [EuroSansBoldItalic] [eurosebi] %D \definefontsynonym [EuroSansBoldSlanted] [eurosebi] %D %D \definesymbol [euro] [\getglyph{Euro}{\char160}] %D %D \def\euro{\symbol[euro]} %D \stoptyping %D %D These definitions guarantee that the next calls work okay: %D %D \starttyping %D \ss \tf\euro \bf\euro \sla\euro \itd\euro \bs\euro \bic\euro %D \stoptyping %D %D The shape as well as the size is adapted to the current %D environment. %D Fonts can only be used when loaded. In \CONTEXT\ we %D postpone the loading of fonts, even when we load \PLAIN. %D This means that we have to redefine one of the \PLAIN\ %D macros. Let's tell that to the user first: \writestatus{loading}{Postponed Plain TeX Font Definitions} %D \macros %D {bordermatrix} %D %D In \PLAIN\ \TEX\ the width of a parenthesis is stored in %D the \DIMENSION\ \type{\mathparentwd}. This value is derived from %D the width of \type{\tenrm B}, so let's take care of it now: \let\normalbordermatrix=\bordermatrix \def\bordermatrix% {\bgroup \setbox0\hbox{\getvalue{\textface\c!mm\c!ex}B}% \global\mathparentwd\wd0\relax \egroup \normalbordermatrix} %D Because we want to be as \PLAIN\ compatible as possible, we %D make most of \PLAIN's font mechanisme available to the %D \CONTEXT\ user. \def\setplainfonts#1#2% {\setvalue {ten#1}{\getvalue{\!!tenpoint #2}}% \setvalue{seven#1}{\getvalue{\!!sevenpoint#2}}% \setvalue {five#1}{\getvalue{\!!fivepoint #2}}} \setplainfonts {\c!rm} {\c!rm\c!tf} \setplainfonts {\c!bf} {\c!rm\c!bf} \setplainfonts {\c!sl} {\c!rm\c!sl} \setplainfonts {\c!it} {\c!rm\c!it} \setplainfonts {\c!tt} {\c!rm\c!tt} \setplainfonts {\c!sy} {\c!mm\c!sy} \setplainfonts {\c!ex} {\c!mm\c!ex} \setplainfonts {\c!i} {\c!mm\c!mi} \let\setplainfonts=\undefined %D \macros %D {ss, SS, sz} %D %D We are going to redefine \type{\ss} but for those wo still %D want to have access to the german \SS, we save it's value in %D \type{\SS}. Ok, I should have used \type{\sf} instead of %D \type{\ss} in the first place. \ifx\undefined\SS \let\SS=\ss \fi \ifx\undefined\sz \let\sz=\ss \fi %D \macros %D {xi} %D %D We are going to redefine \type{\xi}, but fortunately this %D is a math mode character, so we can just say: \let\normalxi=\xi %D \macros %D {smashaccent} %D %D When we let \TEX\ put an accent on top of a character, such %D composed characters can get more height that height of a %D standard \type{\strut}. The next macro takes care of such %D unwanted compositions. %D %D We need to reach over the number that specifies the accent, %D and in doing so we use \type{\scratchcounter} as a placeholder %D because it accepts 8 bit numbers in octal, decimal or %D hexadecimal format. Next we set the height of the accented %D character to the natural height of the character. \unexpanded\def\smashaccent#1% {\dontleavehmode \bgroup \setbox\scratchbox\hbox{#1}% \ifdim\ht\scratchbox>\strutheight\relax\ht\scratchbox\strutheight\fi \ifdim\dp\scratchbox>\strutdepth \relax\dp\scratchbox\strutdepth \fi \box\scratchbox \egroup} %D For instance we can say: %D %D \starttyping %D \smashaccent{\"Uberhaupt} %D \stoptyping %D %D But normally one will use it as a prefix in definitions. %D The difference is in the height: %D %D \leavevmode\ruledhbox %D {\ruledhbox{\smashaccent{\"U}berhaupt}\quad %D oder\quad %D \ruledhbox{\"Uberhaupt}} %D \macros %D {moveaccent} %D %D Exact positioning of accents can be realized by saying: %D %D \starttyping %D \moveaccent{-.1ex}{\"u}berhaupt %D \stoptyping %D %D Again, this one will mostly used as a prefix in definitions. %D Here the difference is in the position: %D %D \leavevmode\ruledhbox %D {\ruledhbox{\moveaccent{-.1ex}{\"}Uberhaupt}\quad %D oder\quad %D \ruledhbox{\"Uberhaupt}} \unexpanded\def\moveaccent#1#2% {\smashaccent {\dimen0\exheight \dimen2\dimen0 \advance\dimen2 -#1% \exheight\dimen2 #2\relax \exheight\dimen0}} %D Personally I think that using \TEX\ is complicated by the %D way fonts are handled. Apart from the many encodings, we %D also deal with different naming schemes. Confronted with %D this problem, I decided to change the definitions into: %D %D \starttyping %D \definebodyfont [12pt] [rm] [tf=Times-Roman at 12pt] %D \stoptyping %D %D combined with for instance: %D %D \starttyping %D \definefontsynonym [Times-Roman] [tir] %D \stoptyping %D Now we're up to some definitions. \definebodyfontenvironment [\s!default] [ \s!text=1.0, \s!script=0.7, \s!scriptscript=0.5, \c!a=1.200, \c!b=1.440, \c!c=1.728, \c!d=2.074, *=\currentfontscale, % wildcard \c!x=0.8, \c!xx=0.6, \c!big=1.2, \c!small=0.8, \c!interlinespace=, \c!em=\v!slanted] \definebodyfontenvironment [20.7pt] [ \s!text=20.7pt, \s!script=\!!fourteenpointfour, \s!scriptscript=\!!twelvepoint, \c!x=17.3pt, \c!xx=\!!fourteenpointfour, \c!big=20.7pt, % !!!! \c!small=17.3pt] \definebodyfontenvironment [17.3pt] [ \s!text=17.3pt, \s!script=\!!twelvepoint, \s!scriptscript=\!!tenpoint, \c!x=\!!fourteenpointfour, \c!xx=\!!twelvepoint, \c!big=20.7pt, \c!small=\!!fourteenpointfour] \definebodyfontenvironment [\!!fourteenpointfour] [ \s!text=\!!fourteenpointfour, \s!script=\!!elevenpoint, \s!scriptscript=\!!ninepoint, \c!x=\!!twelvepoint, \c!xx=\!!tenpoint, \c!big=17.3pt, \c!small=\!!twelvepoint] \definebodyfontenvironment [\!!twelvepoint] [ \s!text=\!!twelvepoint, \s!script=\!!ninepoint, \s!scriptscript=\!!sevenpoint, \c!x=\!!tenpoint, \c!xx=\!!eightpoint, \c!big=\!!fourteenpointfour, \c!small=\!!tenpoint] \definebodyfontenvironment [\!!elevenpoint] [ \s!text=\!!elevenpoint, \s!script=\!!eightpoint, \s!scriptscript=\!!sixpoint, \c!x=\!!ninepoint, \c!xx=\!!sevenpoint, \c!big=\!!twelvepoint, \c!small=\!!ninepoint] \definebodyfontenvironment [\!!tenpoint] [ \s!text=\!!tenpoint, \s!script=\!!sevenpoint, \s!scriptscript=\!!fivepoint, \c!x=\!!eightpoint, \c!xx=\!!sixpoint, \c!big=\!!twelvepoint, \c!small=\!!eightpoint] \definebodyfontenvironment [\!!ninepoint] [ \s!text=\!!ninepoint, \s!script=\!!sevenpoint, \s!scriptscript=\!!fivepoint, \c!x=\!!sevenpoint, \c!xx=\!!fivepoint, \c!big=\!!elevenpoint, \c!small=\!!sevenpoint] \definebodyfontenvironment [\!!eightpoint] [ \s!text=\!!eightpoint, \s!script=\!!sixpoint, \s!scriptscript=\!!fivepoint, \c!x=\!!sixpoint, \c!xx=\!!fivepoint, \c!big=\!!tenpoint, \c!small=\!!sixpoint] \definebodyfontenvironment [\!!sevenpoint] [ \s!text=\!!sevenpoint, \s!script=\!!sixpoint, \s!scriptscript=\!!fivepoint, \c!x=\!!sixpoint, \c!xx=\!!fivepoint, \c!big=\!!ninepoint, \c!small=\!!fivepoint] \definebodyfontenvironment [\!!sixpoint] [ \s!text=\!!sixpoint, \s!script=\!!fivepoint, \s!scriptscript=\!!fivepoint, \c!x=\!!fivepoint, \c!xx=\!!fivepoint, \c!big=\!!eightpoint, \c!small=\!!fivepoint] \definebodyfontenvironment [\!!fivepoint] [ \s!text=\!!fivepoint, \s!script=\!!fivepoint, \s!scriptscript=\!!fivepoint, \c!x=\!!fivepoint, \c!xx=\!!fivepoint, \c!big=\!!sevenpoint, \c!small=\!!fivepoint] \definebodyfontenvironment [\!!fourpoint] [ \s!text=\!!fourpoint, \s!script=\!!fourpoint, \s!scriptscript=\!!fourpoint, \c!x=\!!fourpoint, \c!xx=\!!fourpoint, \c!big=\!!sixpoint, \c!small=\!!fourpoint] \definebodyfontswitch [fourteenpointfour] [\!!fourteenpointfour] \definebodyfontswitch [twelvepoint] [\!!twelvepoint] \definebodyfontswitch [elevenpoint] [\!!elevenpoint] \definebodyfontswitch [tenpoint] [\!!tenpoint] \definebodyfontswitch [ninepoint] [\!!ninepoint] \definebodyfontswitch [eightpoint] [\!!eightpoint] \definebodyfontswitch [sevenpoint] [\!!sevenpoint] \definebodyfontswitch [sixpoint] [\!!sixpoint] \definebodyfontswitch [fivepoint] [\!!fivepoint] \definebodyfontswitch [fourpoint] [\!!fourpoint] \definebodyfontswitch [xii] [\!!twelvepoint] \definebodyfontswitch [xi] [\!!elevenpoint] \definebodyfontswitch [x] [\!!tenpoint] \definebodyfontswitch [ix] [\!!ninepoint] \definebodyfontswitch [viii] [\!!eightpoint] \definebodyfontswitch [vii] [\!!sevenpoint] \definebodyfontswitch [vi] [\!!sixpoint] %D So far. \definefontstyle [\c!mm] [\c!mm] \definefontstyle [\c!rm,\v!roman,\v!serif,\v!regular] [\c!rm] \definefontstyle [\c!ss,\v!sansserif,\v!sans,\v!support] [\c!ss] \definefontstyle [\c!tt,\v!teletype,\v!type,\v!mono] [\c!tt] \definefontstyle [\c!hw,\v!handwritten] [\c!hw] \definefontstyle [\c!cg,\v!calligraphic] [\c!cg] \definefontsize[\c!a] \definefontsize[\c!b] \definefontsize[\c!c] \definefontsize[\c!d] \definealternativestyle [\v!mediaeval] [\os] [] \definealternativestyle [\v!normal] [\tf] [] \definealternativestyle [\v!bold] [\bf] [] \definealternativestyle [\v!type] [\tt] [] \definealternativestyle [\v!mono] [\tt] [] \definealternativestyle [\v!slanted] [\sl] [] \definealternativestyle [\v!italic] [\it] [] \definealternativestyle [\v!boldslanted,\v!slantedbold] [\bs] [] \definealternativestyle [\v!bolditalic,\v!italicbold] [\bi] [] \definealternativestyle [\v!small,\v!smallnormal] [\tfx] [] \definealternativestyle [\v!smallbold] [\bfx] [] \definealternativestyle [\v!smalltype] [\ttx] [] \definealternativestyle [\v!smallslanted] [\slx] [] \definealternativestyle [\v!smallboldslanted,\v!smallslantedbold] [\bsx] [] \definealternativestyle [\v!smallbolditalic,\v!smallitalicbold] [\bix] [] \definealternativestyle [\v!sans,\v!sansserif] [\ss] [] \definealternativestyle [\v!sansbold] [\ss\bf] [] %D Slow but handy: \definealternativestyle [\v!smallbodyfont] [\setsmallbodyfont] [] \definealternativestyle [\v!bigbodyfont] [\setbigbodyfont] [] %D We treat {\sc Small Caps} and \cap {Pseudo Caps} a bit %D different. We also provide an \WORD {uppercase} style. \definealternativestyle [\v!cap,\v!capital] [\smallcapped] [\smallcapped] \definealternativestyle [\v!smallcaps] [\sc] [\sc] \definealternativestyle [\v!WORD] [\WORD] [\WORD] %D \macros %D {...math} %D %D New or old? % tzt proper \define... % % watch out: \synchronizesymb resets the family so we need a second % \mf (or maybe \mr): messy and to be sorted out \def\tfmath{\tf\mf\synchronizesymb\mf} \def\bfmath{\bf\mf\synchronizesymb\mf} \def\slmath{\sl\mf\synchronizesymb\mf} \def\itmath{\it\mf\synchronizesymb\mf} \def\bsmath{\bs\mf\synchronizesymb\mf} \def\bimath{\bi\mf\synchronizesymb\mf} \def\scmath{\sc\mf\synchronizesymb\mf} \def\nnmath{\nn\mf\synchronizesymb\mf} \def\textmath {\synchronizesymb} %D \macros %D {fontstylesuffix} %D %D The next macro is used to map non latin fontnames on %D fonts. See \type {font-uni} for an example of its use. %\def\fontstylesuffix% % {\ifnum\fam=\tffam \s!Regular \else % \ifnum\fam=\bffam \s!Bold \else % \ifnum\fam=\slfam \s!Slanted \else % \ifnum\fam=\itfam \s!Italic \else % \ifnum\fam=\bsfam \s!BoldSlanted \else % \ifnum\fam=\bifam \s!BoldItalic \else % \s!Regular \fi\fi\fi\fi\fi\fi}% \def\fontstylesuffix% why the \s!Regular ? see \getglyph {\ifx\fontalternative\c!tf \s!Regular \else \ifx\fontalternative\c!bf \s!Bold \else \ifx\fontalternative\c!sl \s!Slanted \else \ifx\fontalternative\c!it \s!Italic \else \ifx\fontalternative\c!bs \s!BoldSlanted \else \ifx\fontalternative\c!bi \s!BoldItalic \else \ifx\fontalternative\c!sc \s!Caps \else \s!Regular \fi\fi\fi\fi\fi\fi\fi}% %D We still have to take care of \type{\xi}, so: \def\xi{\ifmmode\normalxi\else\elevenpoint\fi} %D \macros %D {definefontvariant,fontvariant,variant} %D %D A slightly adapted version of Adam Lindsays variant patches: %D %D \starttyping %D \usetypescriptfile[type-psc] \loadmapfile[texnansi-public-fpl] %D \usetypescript[palatino][texnansi] \setupbodyfont[palatino] %D %D \definefontvariant [Serif][osf] [OsF] %D %D \startlines %D {\sc abcdefgHIJKlmnop} %D 123{\Var[osf]456}789 %D {\Var[osf] 123{\Var[reset]456}789} %D {\it 123{\Var[osf]456}789 %D {\Var[osf]123{\Var[reset]456}789}} %D {\tfb\bf 123{\Var[osf]456}789 %D {\Var[osf] 123{\Var[reset]456}789}} %D {\sc 123{\Var[osf]456}789 %D {\Var[osf] 123{\Var[reset]456}789}} %D \stoplines %D \stoptyping \def\definefontvariant {\dotripleargument\dodefinefontvariant} \def\dodefinefontvariant[#1][#2][#3]% {\setvalue{\??fv#1#2}{#3}} \def\fontvariant#1#2{\executeifdefined{\??fv#1#2}\empty} \def\dosetscaledfont {\checkrelativefontsize\fontstyle \scaledfont\currentfontscale\bodyfontsize \scaledfont\relativefontsize\scaledfont} \unexpanded\def\variant[#1]% slow {\dosetscaledfont \expanded{\definedfont [\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}} at \scaledfont]}% \ignoreimplicitspaces} \ifx\Var\undefined \let\Var\variant \fi %D By default we load the Computer Modern Roman fonts (but %D not yet at this moment) and activate the 12pt roman %D bodyfont. Sans serif and teletype are also available and %D can be called for by \type{\ss} and \type{\tt}. % \setupbodyfont [unk, rm] %D Also needed is: \definefont[tinyfont][Mono at 1ex] %D \macros %D {doiffontpresentelse} %D %D Some unused left||overs: %D %D \starttyping %D \def\doiffontpresentelse#1#2#3% %D {\bgroup %D \batchmode\font\dummy=\truefontname{#1}\errorstopmode %D \edef\lastfontname{\fontname\dummy}% %D \ifx\lastfontname\nullfontname\egroup#3\else\egroup#2\fi} %D %D \def\abortiffontnotfound#1% %D {\doiffontpresentelse{#1}{}{\showmessage\m!fonts{10}{\truefontname{#1}}\endinput}} %D \stoptyping %D %D We now provide (slow, but sometimes handy): %D %D \starttyping %D \doiffontpresentelse{texnansi-lmr10}{YES}{NO} %D \doiffontpresentelse{adam-lindsay-modern-serif}{YES}{NO} %D \stoptyping \def\doiffontpresentelse#1% {\bgroup \scratchcounter\interactionmode \batchmode \font\dummy=\truefontname{#1}\relax \interactionmode\scratchcounter \edef\lastfontname{\fontname\dummy}% \ifx\lastfontname\nullfontname \egroup\expandafter\secondoftwoarguments \else \egroup\expandafter\firstoftwoarguments \fi} %D New commands (not yet interfaced): \def\style[#1]% for inline usage, like \color {\groupedcommand{\ifcsname#1\endcsname\csname#1\endcsname\else\definedfont[#1]\fi}{}} \def\startstyle[#1]% {\begingroup \ifcsname#1\endcsname\csname#1\endcsname\else\definedfont[#1]\fi} \def\stopstyle {\endgroup} %D Still experimental (might even go away). % \definestylecollection[mine] % \definestyleinstance[mine][default][sorry] % \definestyleinstance[mine][tt][bs][ttbs:\rm\sl] % \definestyleinstance[mine][tt][bf][ttbf:\rm\sl] % \definestyleinstance[mine][bf][\sl] % \definestyleinstance[mine][sl][\tt] % {\bf test \mine test \sl test \mine test \bs oeps \mine oeps {\tt test \mine \bf test}} \definesystemvariable{sx} \def\definestylecollection {\dosingleargument\dodefinestylecollection} \def\dodefinestylecollection[#1]% {\iffirstargument \unexpanded\setvalue{#1}{\styleinstance[#1]}% \def\docommand##1% {\def\dodocommand####1{\letbeundefined{\??sx##1:####1:\commalistelement}}% \processcommacommand[\fontalternativelist,\s!default]\dodocommand}% \processcommacommand[\fontstylelist,\s!default]\docommand \fi} \def\definestyleinstance {\doquadrupleargument\dodefinestyleinstance} \def\dodefinestyleinstance[#1][#2][#3][#4]% [name] [rm|ss|tt|..] [sl|bf|...] [whatever] {\iffirstargument \doifundefined{#1}{\definestylecollection[#1]}% \fi \iffourthargument \setvalue{\??sx#1:#2:#3}{#4}% \else\ifthirdargument \setvalue{\??sx#1::#2}{#3}% \else\ifsecondargument \letvalue{\??sx#1::#2}\empty \fi\fi\fi} \unexpanded\def\styleinstance[#1]% will be faster {%\begingroup\expanded{\infofont[#1:\fontstyle:\fontalternative]}\endgroup \executeifdefined{\??sx#1:\fontstyle:\fontalternative}% {\executeifdefined{\??sx#1:\fontstyle:\s!default}% {\executeifdefined{\??sx#1::\fontalternative} {\getvalue {\??sx#1::\s!default}}}}} % \unexpanded\def\styleinstance[#1]% % {\csname\??sx#1% % \ifcsname:\fontstyle:\fontalternative\endcsname % :\fontstyle:\fontalternative % \else\ifcsname:\fontstyle:\s!default\endcsname % :\fontstyle:\s!default % \else\ifcsname::\fontalternative\endcsname % ::\fontalternative % \else\ifcsname::\s!default\endcsname % ::\s!default % \else % % nothing, \relax % \fi\fi\fi\fi % \endcsname} %D \Compatibility with \MKIV: \def\somefontsize{\scaledfont} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-var.mkii0000644000175000017500000000411314536300610024672 0ustar hillehille%D \module %D [ file=spec-var, %D version=2003.10.10, %D title=\CONTEXT\ Special Macros, %D subtitle=Variables, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module used to be integrated in \type {spec-ini}, %D but testing optimization is more convenient this way. \writestatus{loading}{ConTeXt Special Macros / Variables} % new approach, 'global' variables, since we run out of % arguments \unprotect % This variable holds a comma separated list of (supported) figure % types. It may be changes by other modules. \let\figuretypes\empty \ifx\undefined\@@DriverFieldName \letempty \@@DriverFieldName \letempty \@@DriverFieldWidth \letempty \@@DriverFieldHeight \letempty \@@DriverFieldDefault \letempty \@@DriverFieldNumber \letempty \@@DriverFieldNumber \letempty \@@DriverFieldStyle \letempty \@@DriverFieldColor \letempty \@@DriverFieldBackgroundColor \letempty \@@DriverFieldFrameColor \letempty \@@DriverFieldLayer \letempty \@@DriverFieldOption \letempty \@@DriverFieldAlign \letempty \@@DriverFieldClickIn \letempty \@@DriverFieldClickOut \letempty \@@DriverFieldRegionIn \letempty \@@DriverFieldRegionOut \letempty \@@DriverFieldAfterKey \letempty \@@DriverFieldFormat \letempty \@@DriverFieldValidate \letempty \@@DriverFieldCalculate \letempty \@@DriverFieldFocusIn \letempty \@@DriverFieldFocusOut \fi \ifx\undefined\@@DriverCommentLayer \letempty \@@DriverCommentLayer \fi \ifx\undefined\@@DriverAttachmentLayer \letempty \@@DriverAttachmentLayer \fi \ifx\undefined\@@DriverImageBox \letempty \@@DriverImageBox \letempty \@@DriverImageOptions \letempty \@@DriverImageWidth \letempty \@@DriverImageHeight \letempty \@@DriverImageFile \letempty \@@DriverImageLabel \letempty \@@DriverImageType \letempty \@@DriverImageMethod \letempty \@@DriverImagePage \fi \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-spr.mkii0000644000175000017500000000474514536300610024703 0ustar hillehille%D \module %D [ file=page-spr, %D version=2002.11.11, %D title=\CONTEXT\ Page Macros, %D subtitle=Spreading, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Page Macros / Spreading} % This module is experimental and not yet official! \unprotect \newbox\spreadbox \newif \ifinspread \chardef\showspreadmode=1 % beware, ugly overload, to be redone \def\normalsettextpagecontent#1#2#3% #2 and #3 will disappear {\setbox#1\hbox {\vbox to \textheight {\offinterlineskip \freezetextwidth \hsize\textwidth % local variant of \sethsize \boxmaxdepth\maxdepth \noindent % content can be < \hsize \dopagecontents#2#3}}% \dp#1\zeropoint \setbox#1\hbox to \makeupwidth {\ifinspread \ifvoid\spreadbox \global\setbox\spreadbox\box#1% \copy\spreadbox\hss % left page \else % prevent duplicate writes in normal run \ifarrangingpages \else \ifcase\showspreadmode \global\setbox\spreadbox\null \wd\spreadbox\makeupwidth \ht\spreadbox\textheight \fi \fi \hss\box\spreadbox % right page \fi \else \hss\box#1\hss % never change the \hss's \fi}} \def\doflushspread {\ifinspread \ifvoid\spreadbox\else % this page will be discarded later \null \page \fi \fi } \def\startspread {\bgroup \ifdoublesided \page[\v!left]% %\setsystemmode{spread}% \inspreadtrue \scratchdimen2\textwidth \advance\scratchdimen2\backspace \expanded{\setuplayout[\c!textwidth=\the\scratchdimen]}% \def\startspread{\bgroup\let\stopspread\egroup}% \let\stopspread\dostopspread \else \let\stopspread\egroup \fi} \let\stopspread\relax \def\dostopspread {\kern\zeropoint\page \inspreadfalse \setuplayout[\c!textwidth=\textwidth] \page[\v!left] \egroup} \protect \endinput % texexec --arr --pdf test % % \setuplayout[width=middle] % \setuppapersize[A4][A3,landscape] % \setuppagenumbering[alternative=doublesided] % \setuparranging[2UP] % % \starttext % % \dorecurse{3}{\input tufte } % % \startspread % \dorecurse{10}{\input tufte } % \stopspread % % \dorecurse{3}{\input tufte } % % \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-it.mkii0000644000175000017500000000102414536300610024525 0ustar hillehille%D \module %D [ file=cont-it, %D version=1997.08.19, %D title=\CONTEXT, %D subtitle=\CONTEXT\ Italian Format Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \catcode`\{=1 \catcode`\}=2 \def\defaultinterface {italian} \def\defaultlanguagetag{it} \input context.mkii \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-frd.mkii0000644000175000017500000000565014536300610024653 0ustar hillehille%D \module %D [ file=lang-frd, %D version=2004.01.15, %D title=\CONTEXT\ Language Macros, %D subtitle=Language Frequency Table Data, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This is expewrimental work! % http://www.onzetaal.nl/advies/letterfreq.html \startcharactertable[nl] \charfreq a 7.47 \charfreq b 1.58 \charfreq c 1.24 \charfreq d 5.93 \charfreq e 18.91 \charfreq f .81 \charfreq g 3.4 \charfreq h 2.38 \charfreq i 6.5 \charfreq j 1.46 \charfreq k 2.25 \charfreq l 3.57 \charfreq m 2.21 \charfreq n 10.03 \charfreq o 6.06 \charfreq p 1.57 \charfreq q .009 \charfreq r 6.41 \charfreq s 3.73 \charfreq t 6.79 \charfreq u 1.99 \charfreq v 2.85 \charfreq w 1.52 \charfreq x .04 \charfreq y .035 \charfreq z 1.39 \stopcharactertable % http://caislab.icu.ac.kr/course/2001/spring/ice605/down/010306.pdf % \startcharactertable[en] % \charfreq a 8.2 % \charfreq b 1.5 % \charfreq c 2.8 % \charfreq d 4.3 % \charfreq e 12.7 % \charfreq f 2.2 % \charfreq g 2 % \charfreq h 6.1 % \charfreq i 7 % \charfreq j .2 % \charfreq k .8 % \charfreq l 4 % \charfreq m 2.4 % \charfreq n 6.7 % \charfreq o 7.5 % \charfreq p 1.9 % \charfreq q .1 % \charfreq r 6 % \charfreq s 6.3 % \charfreq t 9.1 % \charfreq u 2.8 % \charfreq v 1 % \charfreq w 2.3 % \charfreq x .1 % \charfreq y 2 % \charfreq z .1 % \stopcharactertable % http://www.blankenburg.de/gat/pages/fach/info/analyse2.htm \startcharactertable[en] \charfreq a 8.04 \charfreq b 1.54 \charfreq c 3.06 \charfreq d 3.99 \charfreq e 12.51 \charfreq f 2.3 \charfreq g 1.96 \charfreq h 5.49 \charfreq i 7.26 \charfreq j .16 \charfreq k .67 \charfreq l 4.14 \charfreq m 2.53 \charfreq n 7.09 \charfreq o 7.6 \charfreq p 2 \charfreq q .11 \charfreq r 6.12 \charfreq s 6.54 \charfreq t 9.25 \charfreq u 2.71 \charfreq v .99 \charfreq w 1.92 \charfreq x .19 \charfreq y 1.73 \charfreq z .09 \stopcharactertable % http://www.blankenburg.de/gat/pages/fach/info/analyse2.htm \startcharactertable[de] \charfreq a 6.47 \charfreq b 1.93 \charfreq c 2.68 \charfreq d 4.83 \charfreq e 17.48 \charfreq f 1.65 \charfreq g 3.06 \charfreq h 4.23 \charfreq i 7.73 \charfreq j .27 \charfreq k 1.46 \charfreq l 3.49 \charfreq m 2.58 \charfreq n 9.84 \charfreq o 2.98 \charfreq p .96 \charfreq q .02 \charfreq r 7.54 \charfreq s 6.83 \charfreq t 6.13 \charfreq u 4.17 \charfreq v .94 \charfreq w 1.48 \charfreq x .04 \charfreq y .08 \charfreq z 1.14 \stopcharactertable \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/scrn-int.mkii0000644000175000017500000021727114536300610024722 0ustar hillehille%D \module %D [ file=scrn-int, %D version=1995.01.01, %D title=\CONTEXT\ Core Macros, %D subtitle=Interaction, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % evt interactionbaren runtime laden (scheelt 8K) %D Still to be done properly. \writestatus{loading}{ConTeXt Screen Macros / Interaction} \unprotect % \expand vs \expanded % linked registers implementeren als een koppeling == mooier \presetlocalframed[\??lk] \newcounter\numberoflinks \def\stelkoppelingenin {\dodoubleargument\getparameters[\??lk]} \def\definieerkoppeling[#1]% % local loading ! {\doifundefined{\s!link:#1:\s!list} {\expanded{\definetwopasslist{\s!link:#1}}% \expanded{\doloadtwopassdata{\s!link:#1}}% \getfirsttwopassdata{\s!link:#1}% \let\firstlink\twopassdata \getlasttwopassdata{\s!link:#1}% \let\lastlink\twopassdata \let\noflinks\noftwopassitems \gettwopassdata{\s!link:#1}% \let\currentlink\twopassdata \let\nextlink\twopassdata \setxvalue{\s!link:#1:}{\firstlink:\lastlink:\noflinks:\currentlink:\nextlink}}} \def\koppeling[#1]#2% {\bgroup \definieerkoppeling[#1]% \doglobal\increment\numberoflinks \gettwopassdata{\s!link:#1}% \def\next[##1:##2:##3:##4:##5]% {\edef\firstlink {0##1}% \edef\lastlink {0##2}% \edef\noflinks {0##3}% \edef\prevlink {0##4}% \edef\currentlink{0##5}}% \expanded{\next[\getvalue{\s!link:#1:}]}% \edef\nextlink{0\iftwopassdatafound\twopassdata\else\lastlink\fi}% \setxvalue{\s!link:#1:}{\firstlink:\lastlink:\noflinks:\currentlink:\nextlink}% \lazysavetwopassdata{\s!link:#1}{\numberoflinks}{\noexpand\realfolio}% \ifnum\noflinks<\plustwo \locationfalse \fi \iflocation \hbox {\setinteractionparameter\c!width\!!zeropoint #2\relax \hskip\@@lkdistance \dogotosomepage\??lk\gotobegincharacter\firstlink\hss \ifnum\noflinks>\plustwo \dogotosomepage\??lk\gobackwardcharacter\prevlink\hss \fi \ifnum\noflinks>\plustwo \dogotosomepage\??lk\goforwardcharacter\nextlink\hss \hskip\@@lkdistance \fi \dogotosomepage\??lk\gotoendcharacter\lastlink}% \else \hbox{#2}% \fi \egroup} \let\setupinteractionscreens\empty \def\docalculateinteractionscreen {\doifelse\@@scwidth\v!fit {\!!widtha\leftcombitotal \ifdim\backspace>\!!widtha\ifdim\backspace>\zeropoint\relax \advance\backspace -\!!widtha \fi\fi \advance\!!widtha\rightcombitotal \advance\!!widtha 2\dimexpr\@@scbackspace+\@@schoroffset\relax \advance\!!widtha \makeupwidth} {\doifelse\@@scwidth\v!max {\!!widtha\printpaperwidth} {\!!widtha\@@scwidth}}% \doifelse\@@scheight\v!fit {\!!heighta\dimexpr\topheight+\topdistance\relax \ifdim\topspace>\!!heighta\ifdim\topspace>\zeropoint\relax \advance\topspace -\!!heighta \fi\fi \advance\!!heighta \dimexpr\makeupheight+\bottomdistance+\bottomheight\relax \advance\!!heighta 2\dimexpr\@@sctopspace+\@@scveroffset\relax} {\doifelse\@@scheight\v!max {\!!heighta\printpaperheight} {\!!heighta\@@scheight}}% \doif\@@scdelay\v!none{\let\@@scdelay\zerocountervalue}} % The macro is not to be changed; only the \@@ia-variables % may be set! ConTeXt is the producer but we no longer % mention the pragma site, since we don't want to be bothered % with remarks about third party documents and/or associated % with documents produced outside our control. \def\doprepareidentity % beware, we need to construct {\let\!!stringa\@@iakeyword % an unexpanded space separated \let\@@iakeyword\empty % list of keywords from a comma \def\doprepareidentity##1% % separated one {\ifx\@@iakeyword\empty \appended\def\@@iakeyword{##1}% \else \appended\def\@@iakeyword{ ##1}% \fi}% \@EA\processcommalist\@EA[\!!stringa]\doprepareidentity \global\let\doprepareidentity\relax} %D The Creator field is changed per 12/04/2006 due to user presure. This %D means that I need to put my own status info someplace else. \def\initializeidentity {\doprepareidentity \dosetupidentity % no \expanded{..} will be done in special (else no pdfdoc) {\@@iatitle}{\@@iasubtitle}{\@@iaauthor}% {ConTeXt - \contextversion}% {\@@iadate}{\@@iakeyword}% \global\let\initializeidentity\relax} \appendtoks \initializeidentity \to \everyshipout \def\initializepaper {\bgroup \ifx\@@ppleft \empty \ifx\@@ppright\empty \ifx\@@pptop \empty \ifx\@@ppbottom \empty \ifx\@@pcstate\v!start \locationfalse\fi\else \locationfalse\fi\else \locationfalse\fi\else \locationfalse\fi\else \locationfalse\fi \iflocation % without screen settings \egroup \dosetuppaper\papersize\paperwidth\paperheight \else \egroup \dosetuppaper\printpapersize\printpaperwidth\printpaperheight \fi} \appendtoks \initializepaper \to \everyshipout \def\doinitializepaper {\bgroup \docalculateinteractionscreen \ifdim\!!widtha>\paperwidth\ifdim\!!widtha>\zeropoint \paperwidth\!!widtha \fi\fi \ifdim\!!heighta>\paperheight\ifdim\!!heighta>\zeropoint \paperheight\!!heighta \fi\fi \dosetuppaper {\printpapersize} {\the\paperwidth} {\the\paperheight}% \egroup} \let\@@pcscreendata\empty \def\dosetupinteractionscreens % met a, b en \number {\doifnot\@@pcstate\v!start\dodosetupinteractionscreens} \setvalue{\??sc\c!option\v!max }{1} % tzt share with driver \setvalue{\??sc\c!option\v!bookmark }{2} % tzt share with driver \setvalue{\??sc\c!option\v!fit }{3} % tzt share with driver \setvalue{\??sc\c!option\v!doublesided}{4} % tzt share with driver \def\dodosetupinteractionscreens % met a, b en \number {\bgroup \docalculateinteractionscreen \!!counte=0\getvalue{\??sc\c!option\@@scoption}\relax % niet waterdicht \doifnot{\the\!!widtha\the\!!heighta}\@@pcscreendata {\xdef\@@pcscreendata{\the\!!widtha\the\!!heighta}% \showmessage\m!interactions1{\withoutpt\the\!!widtha,\withoutpt\the\!!heighta}}% % needs to be split: dimensions for each page % and mode per document and only once ! \dosetupscreen \backoffset\topoffset\!!widtha\!!heighta{\the\!!counte}% \dosetupcropbox\backoffset\topoffset\!!widtha\!!heighta \egroup} \def\dosetupinteractionscreen[#1]% {\getparameters[\??sc][#1]% \ifproductionrun \let\initializepaper\doinitializepaper \let\setupinteractionscreens\dosetupinteractionscreens \fi} \appendtoks \setupinteractionscreens \to \everyfirstshipout % needed to get option=max etc working \appendtoks \setupinteractionscreens \to \everyshipout % needed for page/screen dimensions \def\setupinteractionscreen {\dosingleempty\dosetupinteractionscreen} %D Due to requests I finally decided to support bookmarks, a %D driver dependant way of showing tables of content. The most %D simple way of support is hooking bookmark generation into %D the existing list mechanisms. That way users can generate %D bookmarks automatically, although its entirely valid to add %D bookmarks by defining alternative ones. These will be added %D at the appropriate place in the list. % \hoofdstuk{het eerste hoofdstuk} % % \bookmark {de eerste bookmark} % optional overruled hoofdstuk % % .... text .... % % \placebookmarks [hoofdstuk,paragraaf,subparagraaf,subsubparagraaf,mylist] % [open list] % % \bookmark[mylist]{whatever} \def\@@bookmark {bm::} \def\@@booklevel{bl::} \def\@@bookcount{bc::} \definelist[\@@bookmark] \newtoks\postponedbookmarks \def\flushpostponedbookmark {\the\postponedbookmarks \global\postponedbookmarks\emptytoks} \def\simplebookmark#1% {\doglobal\prependtoks \writetolist[\@@bookmark]{}{#1}% \to\postponedbookmarks} \def\complexbookmark[#1]#2% {\doglobal\appendtoks\writetolist[#1]{}{#2}\to\postponedbookmarks} \definecomplexorsimple\bookmark \newif\iftracebookmarks \tracebookmarksfalse \let\tracebookmarks\tracebookmarkstrue \def\placebookmarks {\dodoubleempty\doplacebookmarks} \def\doplacebookmarks[#1][#2]% {\iflocation \iffirstargument \bgroup \ifsecondargument \doifelse{#2}\v!all {\edef\openbookmarklist{#1}} {\edef\openbookmarklist{#2}}% \else \let\openbookmarklist\empty \fi \xdef\doplacebookmarksindeed{\noexpand\dodoplacebookmarksindeed[#1][\openbookmarklist]} \egroup \else \expanded{\placebookmarks\@EA[\getvalue{\??ih\v!content\c!list}]}% \fi \fi} \def\dodoplacebookmarksindeed[#1][#2]% {\bgroup \edef\openbookmarklist{#2}% \global\let\bookmarklevellist\empty \def\bookmarklevelcount{0}% \doprocessbookmarks[#1]\dogetbookmarkelement \dolistelement{}{}{}{}{}{}% needed to finish the first pass \doprocessbookmarks[#1]\doputbookmarkelement \flushbookmark \egroup} \let\doplacebookmarksindeed\relax \prependtoks \doplacebookmarksindeed % new, now postponed so that halfway defined commands work out ok \to \everystoptext \def\doprocessbookmarks[#1]#2% {\let\dolistelement#2\relax \scratchcounter\zerocount \def\docommand##1% {\advance\scratchcounter \plusone \getlistlevel[##1]\listlevel{\the\scratchcounter}% \setxvalue{\@@bookcount\the\scratchcounter}{1}% \setxvalue{\@@booklevel##1}{\listlevel}}% \processcommalist[#1]\docommand \setxvalue{\@@bookcount0}{1}% \global\chardef\currentbookmarklevel\zerocount \global\chardef\previousbookmarklevel\zerocount \doutilities{listentries,#1,\@@bookmark}\jobname{#1}\relax\relax} \def\dodogetbookmarkelement#1#2#3#4#5#6% {\doifelsenothing{#1} {\global\chardef\currentbookmarklevel\zerocount} {\global\chardef\currentbookmarklevel\getvalue{\@@booklevel#1}\relax}% \ifnum\currentbookmarklevel>\previousbookmarklevel \setxvalue{\@@bookcount\the\currentbookmarklevel}{1}% \else\ifnum\currentbookmarklevel<\previousbookmarklevel \bgroup \!!counta\previousbookmarklevel \doloop {\let\bookmarktag\empty \!!countb\!!counta \advance\!!countb \minusone \dorecurse\!!countb {\edef\bookmarktag {\bookmarktag\getvalue{\@@bookcount\recurselevel}:}}% \edef\bookmarklevelcount {\getvalue{\@@bookcount\the\!!counta}}% \xdef\bookmarklevellist {\bookmarklevellist/\bookmarktag:\bookmarklevelcount/}% \advance\!!counta \minusone \ifnum\!!counta=\currentbookmarklevel \exitloop \fi}% \egroup \@EA\doglobal\@EA\increment\csname \@@bookcount\the\currentbookmarklevel\endcsname\relax \else \@EA\doglobal\@EA\increment\csname \@@bookcount\the\previousbookmarklevel\endcsname\relax \fi\fi \global\utilitydonetrue \global\chardef\previousbookmarklevel\currentbookmarklevel} \def\getbookmarklevelcount {\@EA\def\@EA\docommand\@EA[\@EA##\@EA1\@EA/\bookmarktag:##2/##3]% {\def\bookmarklevelcount{##2}}% \@EA\@EA\@EA\docommand\@EA\@EA\@EA[\@EA\bookmarklevellist\@EA/\bookmarktag:0/]} \def\dodoputbookmarkelement#1#2#3#4#5#6% {\doifelsenothing{#1} {\global\chardef\currentbookmarklevel\zerocount} {\global\chardef\currentbookmarklevel\getvalue{\@@booklevel#1}\relax}% \ifnum\currentbookmarklevel>\previousbookmarklevel \setxvalue{\@@bookcount\the\currentbookmarklevel}{1}% \else\ifnum\currentbookmarklevel<\previousbookmarklevel \@EA\doglobal\@EA\increment\csname \@@bookcount\the\currentbookmarklevel\endcsname\relax \else \@EA\doglobal\@EA\increment\csname \@@bookcount\the\previousbookmarklevel\endcsname\relax \fi\fi \let\bookmarktag\empty \!!countb\currentbookmarklevel \dorecurse\!!countb {\edef\bookmarktag {\bookmarktag\getvalue{\@@bookcount\recurselevel}:}}% \getbookmarklevelcount \iftracebookmarks \bgroup \par \bookmarktag\quad \dorecurse\currentbookmarklevel{\quad}\unskip#1\quad (\bookmarklevelcount)\quad \egroup \fi \global\chardef\previousbookmarklevel\currentbookmarklevel \global\utilitydonetrue \insertsomebookmark{#1}{\the\currentbookmarklevel}{\bookmarklevelcount}{#4}{#6}} \def\dogetbookmarkelement#1#2#3#4#5#6% {\doifnot{#1}\@@bookmark {\dodogetbookmarkelement{#1}{#2}{#3}{#4}{#5}{#6}}} \def\doputbookmarkelement#1#2#3#4#5#6% {\doifelse{#1}\@@bookmark {\localbookmark{#4}} {\flushbookmark \dodoputbookmarkelement{#1}{#2}{#3}{#4}{#5}{#6}}} \let\flushbookmark\relax \let\localbookmark\gobbleoneargument \def\insertsomebookmark#1#2#3#4#5% {\gdef\flushbookmark {\doinsertsomebookmark{#1}{#2}{#3}{#4}{#5}{g}}% \gdef\localbookmark##1% {\doinsertsomebookmark{#1}{#2}{#3}{##1}{#5}{l}}} \def\doinsertsomebookmark#1#2#3#4#5#6% {\global\utilitydonetrue \global\let\localbookmark\gobbleoneargument \global\let\flushbookmark\relax \doifinstringelse{#1}\openbookmarklist {\chardef\openbookmark\plusone} {\chardef\openbookmark\zerocount}% \iftracebookmarks(#6: #4)\quad(\the\openbookmark)\par\fi \doinsertbookmark{#2}{#3}{#4}{#5}{\openbookmark}} % \startinteractionmenu[rechts] % \but [eerste] eerste \\ % \txt hello world \\ % \but [tweede] tweede \\ % \nop \\ % \but [tweede] tweede \\ % \rul whow \\ % \but [tweede] tweede \\ % \raw hello world \\ % \but [tweede] tweede \\ % \com \vfill \\ % \but [derde] derde \\ % \stopinteractionmenu \newif\iflocationmenupermitted \def\testinteractionmenu#1% {\iflocation \doifelse\@@iamenu\v!on {\doifelsevalue{\??am#1\c!state}\v!start {\global\locationmenupermittedtrue} {\global\locationmenupermittedfalse}} {\global\locationmenupermittedfalse}% \else \global\locationmenupermittedfalse \fi} \def\dodisableinteractionmenu[#1][#2][#3]% {\def\dododisableinteractionmenu##1% {\doifelse{#3}{} {\letvalue{\??am##1\c!obstruction}\empty} {\edef\interactieblokkade{\getvalue{\??am##1\c!obstruction}} \def\docommand####1{#1{####1}{\interactieblokkade}}% #1 = \remove or \add \processcommalist[#3]\docommand \setevalue{\??am##1\c!obstruction}{\interactieblokkade}}}% \processcommalist[#2]\dododisableinteractionmenu} \def\disableinteractionmenu {\dotripleempty\dodisableinteractionmenu[\addtocommalist]} \def\enableinteractionmenu {\dotripleempty\dodisableinteractionmenu[\removefromcommalist]} % ja : kader/achtergrond met tekst % leeg : kader/achtergrond maar geen tekst % nee : alleen ruimte reserveren % geen : helemaal weglaten \newif\iflocationdummy \newif\ifskippedmenuitem \newif\iflocationempty \newif\iflocationclick % ja : kader/achtergrond met tekst % leeg : kader/achtergrond maar geen tekst % nee : alleen ruimte reserveren % geen : helemaal weglaten % % \setupinteractionmenu[right][samepage=yes, unknownreference=yes] % \setupinteractionmenu[right][samepage=empty,unknownreference=empty] % \setupinteractionmenu[right][samepage=no, unknownreference=no] % \setupinteractionmenu[right][samepage=none, unknownreference=none] % % \startinteractionmenu[right] % \but [firstpage] first \\ % \but [lastpage] last \\ % \but [somepage] crap \\ % \stopinteractionmenu \def\dosetlocationboxcontent#1[#2]#3[#4]% {\global\skippedmenuitemfalse \setbox\locationbox\hbox {\resetgoto % anders cyclische aanroep ! \localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}}% \iflocationclick \hbox{\gotolocation{#4}{\box\locationbox}}% \else \hbox{\box\locationbox}% \fi} \let\dosetlocationboxyes\dosetlocationboxcontent \def\dosetlocationboxempty#1[% {\dosetlocationboxcontent{#1}[\c!empty=\v!yes,} \def\dosetlocationboxno#1[% {\dosetlocationboxcontent{#1}[\c!empty=\v!yes,\c!frame=,\c!background=,} \def\dosetlocationboxnone#1[#2]#3[#4]% {\global\skippedmenuitemtrue} \def\setlocationboxyes#1[#2]#3[#4]% {\locationclicktrue \setbox\locationbox\hbox {\resetgoto % anders cyclische aanroep ! \global\skippedmenuitemfalse \gotolocation {#4}% % needed {\ifrealreferencepage \ifcase\csname\??am\??am\csname#1\c!samepage\endcsname\endcsname\relax \copycsname#1\c!color\endcsname\csname#1\c!contrastcolor\endcsname \localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}% \or \localframed[#1][\c!empty=\v!yes,#2]{\dolocationattributes{#1}\c!style\c!color{#3}}% \or \localframed[#1][\c!empty=\v!yes,\c!frame=,\c!background=,#2]{\dolocationattributes{#1}\c!style\c!color{#3}}% \or \global\skippedmenuitemtrue \fi \else \localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}% \fi}}% \ifskippedmenuitem\else\box\locationbox\fi} \def\setlocationboxnop#1[#2]#3[#4]% inefficient as text can be outside box {\locationclickfalse \setbox\locationbox\hbox {\resetgoto % anders cyclische aanroep ! \global\skippedmenuitemfalse \ifcase\csname\??am\??am\csname#1\c!unknownreference\endcsname\endcsname\relax \localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}% \or \localframed[#1][\c!empty=\v!yes,#2]{\dolocationattributes{#1}\c!style\c!color{#3}}% \or \localframed[#1][\c!empty=\v!yes,\c!frame=,\c!background=,#2]{\dolocationattributes{#1}\c!style\c!color{#3}}% \or \global\skippedmenuitemtrue \fi}% \ifskippedmenuitem\else\box\locationbox\fi} \def\setlocationboxraw#1[#2]#3[#4]% {\localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}} \def\setlocationbox#1[#2]#3[#4]% {\bgroup % really needed ! \edef\permittedreferences{\csname#1\c!obstruction\endcsname}% \doifreferencepermittedelse{#4}% {\setlocationboxyes{#1}[#2]{#3}[#4]}% {\setlocationboxnop{#1}[#2]{#3}[#4]}% \egroup} \def\setlocationnop#1[#2]#3% {\localframed[#1][#2]{#3}} \def\executeamboxcommands#1#2#3#4#5% {%\processaction % [\getvalue{\??am#1\c!dummy}] % [ \v!yes=>\chardef\handleunknownmenuitem=0\relax, % \v!empty=>\chardef\handleunknownmenuitem=1\relax, % \v!no=>\chardef\handleunknownmenuitem=2\relax]% \getvalue{\??am#1#3}\relax \setamboxcommands{#1}{#4}% \ignorespaces#2\unskip \getvalue{\??am#1#5}} \newcounter\currentamposition \newtoks\everysetmenucommands \def\setamboxcommands#1#2% {\def\currentmenu{#1}% % kan nog eerder \def\currentsubmenu{#2}% % ? ? \doglobal\newcounter\currentamposition \the\everysetmenucommands} \def\menu@@amboxcommand#1\\% {\dontleavehmode \bgroup \ignorespaces#1\unskip\relax \ifskippedmenuitem \else \getvalue{\??am\currentmenu\currentsubmenu}% \fi \egroup \ignorespaces} \appendtoks \let\@@amboxcommand\menu@@amboxcommand \to \everysetmenucommands \def\menu@raw[#1]#2\\% {\@@amboxcommand\gotobox{\ignorespaces#2\unskip}[#1]\\}% \def\menu@but[#1]#2\\% {\@@amboxcommand\do@@amposition\currentmenu{#1}{\setlocationbox{\??am\currentmenu}[]{\ignorespaces#2\unskip}[#1]}\\}% \def\menu@got[#1]#2\\% pas op! offset {\@@amboxcommand\setlocationbox{\??am\currentmenu}[\c!frame=\v!off,\c!background=]{\ignorespaces#2\unskip}[#1]\\}% \def\menu@nop#1\\% {\@@amboxcommand\setlocationboxraw{\??am\currentmenu}[\c!frame=\v!off,\c!background=,\c!empty=\v!yes]{\ignorespaces#1\unskip}[]\\}% \def\menu@txt#1\\% {\@@amboxcommand\localframed[\??am\currentmenu][\c!frame=\v!off,\c!background=]{\ignorespaces#1\unskip}\\}% \def\menu@rul#1\\% ook \do@@amposition ! {\@@amboxcommand\localframed[\??am\currentmenu][]{\ignorespaces#1\unskip}\\}% \def\menu@com#1\\% {\ignorespaces#1\unskip\ignorespaces}% \appendtoks \let\raw\menu@raw \let\but\menu@but \let\got\menu@got \let\nop\menu@nop \let\txt\menu@txt \let\rul\menu@rul \let\com\menu@com \to \everysetmenucommands \ifx\do@@amposition\undefined \let\do@@amposition\gobbletwoarguments % hook for positional thingies \fi \let\currentmenu\empty % beware : never change the concept of pbgoffset \def\menuparameter#1{\csname\??am\currentmenu#1\endcsname} \def\@@amhbox#1#2#3#4% {\def\currentmenu{#3}% \testinteractionmenu{#3}% \iflocationmenupermitted \bgroup \showcomposition \scratchdimen\dimexpr \makeupwidth +\pagebackgroundhoffset +\pagebackgroundhoffset -\menuparameter\c!leftoffset -\menuparameter\c!rightoffset \relax \setbox\scratchbox\hbox to \scratchdimen {\forgetall\executeamboxcommands{#3}{#4}\c!left\c!middle\c!right}% \setbox\scratchbox\hbox{\do@@ammenuposition{#3}{\box\scratchbox}}% \wd\scratchbox\makeupwidth % geen \ht=#2 setting (yet) \hskip\dimexpr-\pagebackgroundhoffset+\menuparameter\c!leftoffset\relax \box\scratchbox \egroup \else #1\relax \fi} \def\@@amvbox#1#2#3#4% don't change skipping, this one works! {\def\currentmenu{#3}% \testinteractionmenu{#3}% \iflocationmenupermitted \bgroup \showcomposition \scratchdimen\dimexpr \textheight +\pagebackgroundvoffset +\pagebackgroundvoffset +\pagebackgrounddepth -\menuparameter\c!topoffset -\menuparameter\c!bottomoffset \relax \setbox\scratchbox\vbox to \scratchdimen {\forgetall % Voor't geval de afstand %\setupblank[\v!standard]% % (tijdelijk) is aangepast. \restorestandardblank \hsize#2\relax \executeamboxcommands{#3}{#4}\c!before\c!inbetween\c!after}% \setbox\scratchbox\vbox{\hbox{\do@@ammenuposition{#3}{\box\scratchbox}}}% \setbox\scratchbox\vbox {\ht\scratchbox\zeropoint \vskip\dimexpr-\pagebackgroundvoffset+\menuparameter\c!topoffset\relax \box\scratchbox \vskip\pagebackgroundvoffset}% overbodig \ht\scratchbox\textheight \wd\scratchbox#2\relax \box\scratchbox \egroup \else #1\relax \fi} \ifx\do@@ammenuposition\undefined \let\do@@ammenuposition\gobbleoneargument % hook for positional thingies \fi \setvalue{\??am\s!do\v!right }{\@@amvbox{\dodummypageskip\v!right }\rightedgewidth} \setvalue{\??am\s!do\v!left }{\@@amvbox{\dodummypageskip\v!left }\leftedgewidth } \setvalue{\??am\s!do\v!top }{\@@amhbox{\dodummypageskip\v!top }\topheight } \setvalue{\??am\s!do\v!bottom}{\@@amhbox{\dodummypageskip\v!bottom}\bottomheight } \def\dointeractionmenu#1#2% {\getvalue{\??am\s!do\getvalue{\??am#1\c!location}}{#1}{#2}} \unexpanded\def\interactionmenu[#1]% {\getvalue{\??am\c!menu#1}} \def\horizontalinteractionmenu#1#2#3#4% {\ifdim#2>\zeropoint % new \scratchdimen\zeropoint \setbox\scratchbox\hbox {\def\docommand##1% {\doifnotvalue{\??am##1\c!state}\v!none {\hskip\scratchdimen \setbox2\hbox to #2 {\getvalue{\??am##1#3}\interactionmenu[##1]\getvalue{\??am##1#4}}% \doifelsevalue{\??am##1\c!distance}\v!overlay {\scratchdimen\zeropoint \wd2\zeropoint}% {\scratchdimen\getvalue{\??am##1\c!distance}}% \box2}}% \startinteraction \processcommacommand[\getvalue{\??am#1}]\docommand \stopinteraction}% \wd\scratchbox#2\relax \box\scratchbox \fi} \def\verticalinteractionmenu#1#2#3#4% {\ifdim#2>\zeropoint % new \scratchdimen\zeropoint \setbox\scratchbox\vbox {\def\docommand##1% {\doifnotvalue{\??am##1\c!state}\v!none {\vskip\scratchdimen \setbox2\vbox to #2 {\getvalue{\??am##1#3}\interactionmenu[##1]\getvalue{\??am##1#4}}% \doifelsevalue{\??am##1\c!distance}\v!overlay {\scratchdimen\zeropoint \offinterlineskip \dp2\zeropoint \ht2\zeropoint}% {\scratchdimen\getvalue{\??am##1\c!distance}}% \box2}}% \startinteraction \processcommacommand[\getvalue{\??am#1}]\docommand \stopinteraction}% \ht\scratchbox#2\relax \dp\scratchbox\zeropoint \box\scratchbox \fi} \letvalue{\??am\v!left }\empty \letvalue{\??am\v!right}\empty \letvalue{\??am\v!top }\empty \letvalue{\??am\v!bottom }\empty % todo : \defineinteractionmenuclass \def\interactionmenus[#1]% {\iflocation \getvalue{\??am\??am\c!menu#1}% \else \dodummypageskip{#1}% \fi} \setvalue{\??am\??am\c!menu\v!left }{\horizontalinteractionmenu\v!left \leftedgewidth \c!left \c!right} \setvalue{\??am\??am\c!menu\v!right }{\horizontalinteractionmenu\v!right \rightedgewidth\c!left \c!right} \setvalue{\??am\??am\c!menu\v!top }{\verticalinteractionmenu \v!top \topheight \c!before\c!after} \setvalue{\??am\??am\c!menu\v!bottom}{\verticalinteractionmenu \v!bottom\bottomheight \c!before\c!after} % this can be implemented with the following command (which % is new, undocumented, experimental, untested, etc etc) \def\defineinteractionmenuclass {\dodoubleargument\dodefineinteractionmenuclass} \def\dodefineinteractionmenuclass[#1][#2]% tag hori|veri {\doifelse{#2}\v!vertical {\setvalue{\??am\??am\c!menu#1}{\verticalinteractionmenu {#1}{\getvalue{\??am#1\c!width }}\c!before\c!after}} {\setvalue{\??am\??am\c!menu#1}{\horizontalinteractionmenu{#1}{\getvalue{\??am#1\c!height}}\c!left\c!right }}} % \setupinteraction[menu=on,state=start] % % \defineinteractionmenuclass[test] [vertical] % \defineinteractionmenuclass[another][horizontal] % % \defineinteractionmenu[test] [left][state=start,width=4cm] % \defineinteractionmenu[another][top] [state=start,height=1cm] % % \startinteractionmenu[test] % \but [firstpage] test-a \\ % \but [nextpage] test-b \\ % \stopinteractionmenu % % \startinteractionmenu[another] % \but [firstpage] test-a \\ % \but [nextpage] test-b \\ % \stopinteractionmenu % % \setupheadertexts[{\interactionmenu[another]}] % % \starttext % % test \interactionmenu[test] \page % test \interactionmenu[test] \page % % \stoptext %D This can save complicated menu macros when one want to %D keep control over parts of a menu (i.e.\ turn them on and %D off). We could have achieved something similar with modes. \def\local@@ambox#1#2#3#4% don't change skipping, this one works! {\bgroup \testinteractionmenu{#3}% \iflocationmenupermitted \executeamboxcommands{#3}{#4}\c!before\c!inbetween\c!after \else #1\relax \fi \egroup} \def\includemenu[#1]% {\doifvalue{\??am#1\c!state}\v!local {\bgroup \letvalue{\??am#1\c!state}\v!start \let\@@amvbox\local@@ambox \let\@@amhbox\local@@ambox \getvalue{\??am\c!menu#1}% \egroup}} %D We also need an explicit position control some day. I'll %D do that when I need it. [The stacking order.] \newif\ifextendedmenu % [name] [location] % [name] [location] [pars] \def\defineinteractionmenu {\dotripleempty\dodefineinteractionmenu} \def\dodefineinteractionmenu[#1][#2][#3]% {% main settings \letvalue{\??am\c!menu#1}\empty \setvalue{\@@dodolistelement#1}{\def\dosomelistelement{\dodomenulistelement{#1}}}% \presetlocalframed[\??am#1]% % register location \expanded{\addtocommalist{#1}\@EA\noexpand\csname\??am#2\endcsname}% % inherit settings \doifnot{#1}{#2} {\copyparameters[\??am#1][\??am#2] [\c!left,\c!middle,\c!right,\c!before,\c!after,\c!inbetween,% \c!width,\c!height,\c!distance,\c!offset,% \c!frame,\c!framecolor,\c!rulethickness,% \c!background,\c!backgroundcolor,\c!backgroundscreen,% \c!style,\c!color,\c!contrastcolor,\c!samepage,\c!unknownreference,% \c!leftoffset,\c!rightoffset,\c!topoffset,\c!bottomoffset]}% % additional settings \getparameters[\??am#1][\c!location=#2,\c!obstruction=,#3]} \def\setupinteractionmenu {\dodoubleargument\dosetupinteractionmenu} \def\dosetupinteractionmenu[#1][#2]% {\def\docommand##1{\getparameters[\??am##1][#2]}% \processcommalist[#1]\docommand} \expandafter\chardef\csname\??am\??am\v!yes \endcsname\zerocount \expandafter\chardef\csname\??am\??am\v!empty\endcsname\plusone \expandafter\chardef\csname\??am\??am\v!no \endcsname\plustwo \expandafter\chardef\csname\??am\??am\v!none \endcsname\plusthree \expandafter\chardef\csname\??am\??am \endcsname\plusone % default \processbetween{\v!interactionmenu}\dostartinteractionmenu \def\dostartinteractionmenu#1% {\dodostartinteractionmenu#1\dodostopinteractionmenu} \def\dodostartinteractionmenu[#1]#2\dodostopinteractionmenu {\setvalue{\??am\c!menu#1}{\extendedmenutrue\dointeractionmenu{#1}{#2}}} \def\resetinteractionmenu[#1]% {\letvalue{\??am\c!menu#1}\empty} \def\dodomenulistelement#1#2#3#4#5#6#7% {\setbox0=\hbox {\let\gotolocation\gobbleoneargument % hack to catch last [] %\locationclickfalse % ipv ^ \docheckrealreferencepage{#7}% \setlocationboxyes {\??am#1}% % needed ! []% no settings {\limitatetext{#5}{\getvalue{\??li#2\c!maxwidth}}{\unknown}}% % needed ! []}% normally the destination, catch by gobble \@@amboxcommand\do@@amposition{#1}{#7}% beware, we pass the pagenumber {\ignorespaces\linklisttoelement{#3}{#6}{#7}{\box0}\unskip}\\} % \scherm moet worden als \page \def\screen {\dosingleempty\doscreen} \def\doscreen[#1]% {\iflocation\page[#1]\fi} \unexpanded\def\menubutton {\dodoubleempty\domenubutton} \def\domenubutton[#1]% {\iffirstargument \ifsecondargument \@EAEAEA\domenubuttonB \else \doifassignmentelse{#1} {\@EAEAEA\domenubuttonC} {\@EAEAEA\domenubuttonD}% \fi \else \@EA\domenubuttonA \fi[#1]} \def\domenubuttonA[#1][#2]#3[#4]% normal button, no parameters {\bgroup %\locationdummytrue \setlocationbox\??bt[]{#3}[#4]% \egroup} \def\domenubuttonB[#1][#2]#3[#4]% menu button, with parameters {\bgroup %\locationdummytrue \setlocationbox{\??am#1}[#2]{#3}[#4]% \egroup} \def\domenubuttonC[#1][#2]#3[#4]% normal button, with parameters {\bgroup %\locationdummytrue \setlocationbox\??bt[#1]{#3}[#4]% \egroup} \def\domenubuttonD[#1][#2]#3[#4]% menu button, no parameters {\bgroup %\locationdummytrue \setlocationbox{\??am#1}[]{#3}[#4]% \egroup} \def\menubox {\dodoubleempty\domenubox} \def\domenubox[#1][#2]#3% {\bgroup \let\setlocationbox\setlocationboxraw \domenubutton[#1][#2]#3[]% \egroup} % Hier volgen de synchronisatiemacro's: \def\syncprefix{sync} %def\syncmarker{syncmark} %\definemarking[\syncmarker] %\setupmarking[\syncmarker][\c!expansie=\v!ja] \newmark\syncmarker \newcounter\synccounter \newif\ifsynchronisation \def\startsynchronization% {\iflocation\ifsynchronisation \doglobal\increment\synccounter \fi\fi} \def\stopsynchronization% {\iflocation\ifsynchronisation %\thisisdestination{\syncprefix:\synccounter}% \pagereference[\syncprefix:\synccounter]% \ifvmode \@EA\setmark\@EA\syncmarker\@EA{\synccounter} % \marking[\syncmarker]{\synccounter}% \else \showmessage\m!interactions4\synccounter \fi \fi\fi} \def\synchronize% {\startsynchronization \stopsynchronization} \def\dosetupsynchronization[#1]% {\getparameters[\??sy][#1]% \doifelse\@@systate\v!start \synchronisationtrue \synchronisationfalse} \def\setupsynchronization {\dosingleargument\dosetupsynchronization} \def\definesynchronization {\dosingleargument\dodefinesynchronization} \def\setupsynchronizationbar {\dodoubleargument\getparameters[\??ba]} \presetlocalframed[\??ba] \setvalue{synchronisatie\v!page}[#1]% {\bgroup %\setupinteraction[\c!width=\!!zeropoint]% \setinteractionparameter\c!width\!!zeropoint \setbox0\hbox {\localframed[\??ba][]{\dolocationattributes\??ba\c!style\c!color{\strut\@@batext}}}% \dontcomplain \def\atthebottom {\leaders\hrule\!!depth1ex\!!height-.5ex\hfil}% \def\atthetop##1##2##3% {\dimen0=\wd0 \divide\dimen0 3 \multiply\dimen0 ##2\relax \dimen2=.25em % brrr \advance\dimen0 -##3\dimen2 %\gotodestination % {}{#1}{\syncprefix:##1}{} % {\hbox to \dimen0{\color[\locationcolor\@@bacolor]{\atthebottom}}}}% \gotobox {\hbox to \dimen0{\color[\locationcolor\@@bacolor]{\atthebottom}}}% [#1::\syncprefix:##1]}% \hbox {\def\check##1##2% {\edef##2{0##1\syncmarker}% \ifnum0##2=0 \def##2{1}\fi}% \check\gettopmark\top \check\getfirstmark\first \check\getbotmark\bot \setbox2\hbox to \wd0 {\ifnum\top=\first\relax \ifnum\first=\bot\relax \atthetop\first30\relax \else \atthetop\first21\hss\atthetop\bot11\relax \fi \else \ifnum\first=\bot\relax \atthetop\top11\hss\atthetop\first21\relax \else \atthetop\top11\hss\atthetop\first11\hss\atthetop\bot11\relax \fi \fi}% \wd2=\zeropoint\box2 \box0\relax}% \egroup} \setvalue{synchronisatie\v!local}[#1]% {\bgroup %\setupinteraction[\c!width=\!!zeropoint]% \setinteractionparameter\c!width\!!zeropoint \def\blackrule{\hbox{\vrule\!!height.5em\!!width.5em}}% %\gotodestination % {}{##1}{\syncprefix:#1}{0} % {\color[\locationcolor\@@bacolor]{\blackrule}}% \gotobox % {\color[\locationcolor\@@bacolor]{\blackrule}}% [#1::\syncprefix:\synccounter]% \egroup} \def\synchronizationbar[#1][#2]% {\iflocation\ifsynchronisation \bgroup \setupsynchronizationbar [\c!text=\getvalue{doc:des:#1},#2]% \getvalue{synchronisatie\@@baalternative}[#1]% \egroup \fi\fi} % A nice application of glue. All this code will be rewritten and % generalized. \newbox\interactionbarbox \newif\ifbarsymbol \def\dogotosomepage#1#2#3% nog checken ! {\checkreferences % nodig ?? \hbox {\iflocation \ifnum#3=\realpageno #2% \else \gotorealpage\empty\empty{#3}{\doifsomething{#1}{\dolocationattributes{#1}\c!style\c!color}{#2}}% \fi \else #2% \fi}} \def\dogotosomecontrastpage#1#2#3% nog checken, may replace previous {\checkreferences % nodig ?? \hbox {\iflocation \ifnum#3=\realpageno \gotorealpage\empty\empty{#3}{\doifsomething{#1}{\dolocationattributes{#1}\c!style\c!contrastcolor}{#2}}% \else \gotorealpage\empty\empty{#3}{\doifsomething{#1}{\dolocationattributes{#1}\c!style\c!color}{#2}}% \fi \else #2% \fi}} \presetlocalframed[\??ib] \def\interactionbara % we need better control over contrastcolor {\iflocation % maybe just use gotopage and set colors \bgroup \setinteractionparameter\c!width\zeropoint \setupblackrules[\c!height=\v!max,\c!depth=\v!max]% \!!widthb\dimexpr\@@ibwidth-2.75\emwidth\relax \!!widtha\dimexpr\!!widthb/\lastpage\relax \bgroup \advance\realpageno\minusone \ifvoid\interactionbarbox \bgroup \processaction [\@@ibstep] [ \v!small=>\scratchdimen.25\emwidth, \v!medium=>\scratchdimen.5\emwidth, \v!big=>\scratchdimen\emwidth, \s!unknown=>\scratchdimen\!!widtha]% \ifdim\!!widtha<\scratchdimen\relax \!!counta\numexpr\scratchdimen/\!!widtha\relax \else \!!counta\@@ibstep\relax \fi \!!widtha\!!counta\!!widtha \setbox\scratchbox\hbox{\blackrule[\c!width=\!!widtha,\c!color=middlegray]}% color here, else no mkiv \global\setbox\interactionbarbox\hbox to \!!widthb {\hss \dostepwiserecurse\plusone\lastpage\!!counta {\gotorealpage\empty\empty\recurselevel{\copy\scratchbox}}% \hss}% \wd\interactionbarbox\zeropoint \egroup \fi \egroup \noindent \strut \hbox to \@@ibwidth {\dontcomplain \setupblackrules[\c!width=\emwidth]% \dogotosomecontrastpage\??ib\blackrule\firstpage \hss \copy\interactionbarbox \hbox to \!!widthb {\ifdim\!!widtha<\emwidth \!!widtha\emwidth \fi \setupblackrules[\c!width=\!!widtha]% \ifnum\realpageno>\plusone \!!counta\numexpr\realpageno-\plustwo\relax \hskip\zeropoint\!!plus\!!counta \s!sp\relax % cm gives overflow \dogotosomepage\??ib\blackrule\prevpage \fi \dogotosomecontrastpage\??ib{\blackrule[\c!width=.5em]}\realpageno \ifnum\realpageno<\lastpage\relax \dogotosomepage\??ib\blackrule\nextpage \!!counta\numexpr\lastpage-\realpageno-\plusone\relax \hskip\zeropoint\!!plus\!!counta \s!sp\relax % cm gives overflow \fi}% \hss \dogotosomecontrastpage\??ib\blackrule\lastpage}% \egroup \fi} \def\interactionbarb {\ifnum\lastpage>\firstpage\relax \interactionbuttons[\v!firstpage,\v!previouspage,\v!nextpage,\v!lastpage]% \fi} \def\interactionbarc {\iflocation \ifnum\lastpage>\plusone \hbox to \@@ibwidth {\setupblackrules[\c!height=\@@ibheight,\c!depth=\@@ibdepth]% \scratchdimen\dimexpr(\@@ibwidth-4\emwidth)/\numexpr\lastpage+\minusone\relax\relax \!!widtha\numexpr\realpageno+\minusone\relax\scratchdimen \!!widthb\numexpr\lastpage-\realpageno\relax\scratchdimen \startcolor[\locationcolor\@@ibcolor]% \dogotosomepage\empty{\blackrule[\c!width=\emwidth]}\firstpage \hss \dogotosomepage\empty{\blackrule[\c!width=\!!widtha]}\prevpage \color[\@@ibcontrastcolor]{\blackrule[\c!width=\emwidth]}% \dogotosomepage\empty{\blackrule[\c!width=\!!widthb]}\nextpage \hss \dogotosomepage\empty{\blackrule[\c!width=\emwidth]}\lastpage \stopcolor}% \fi \fi} \def\interactionbard {\iflocation\ifshowingsubpage \ifnum\nofsubpages>\plusone \hbox \bgroup \setinteractionparameter\c!width\!!zeropoint \ifbarsymbol \setupsymbolset[\@@iasymbolset]% \def\dogotox##1% {\hbox{\symbol[\ifcase##1 \v!previous\or\v!somewhere\or\v!next\fi]}}% \else \def\dogotox##1% {\hbox{\vrule\!!height\@@ibheight\!!depth \@@ibdepth\!!width \@@ibwidth}}% \fi \dostepwiserecurse\plusone\nofsubpages\plusone {\bgroup \scratchcounter\numexpr\recurselevel+\firstsubpage+\minusone\relax \ifnum\scratchcounter<\realpageno\relax \dogotosomecontrastpage\??ib{\dogotox0}\scratchcounter \else\ifnum\scratchcounter=\realpageno\relax \dogotosomecontrastpage\??ib{\dogotox1}\scratchcounter \else \dogotosomecontrastpage\??ib{\dogotox2}\scratchcounter \fi\fi \egroup \hskip\@@ibdistance}% \unskip % not needed \egroup \fi \fi\fi} \def\interactionbare% KAN WORDEN GECOMBINEERD MET D {\iflocation\ifshowingsubpage \ifnum\nofsubpages>\plusone \bgroup \!!widthb\dimexpr\nofsubpages\dimexpr\@@ibdistance\relax-\@@ibdistance\relax % (n-1) \!!widtha\dimexpr(\@@ibwidth-\!!widthb)/\nofsubpages\relax \ifdim\!!widtha<\@@ibdistance\relax \interactionbarf \else \setinteractionparameter\c!width\!!zeropoint \noindent \hbox to \@@ibwidth \bgroup \ifbarsymbol \setupsymbolset[\@@iasymbolset]% \def\dogotox##1% {\hbox{\symbol[\ifcase##1 \v!previous\or\v!somewhere\or\v!next\fi}}% \else \def\dogotox##1% {\hbox{\vrule\!!height\@@ibheight\!!depth\@@ibdepth\!!width\!!widtha}}% \fi \dostepwiserecurse\plusone\nofsubpages\plusone {\bgroup \scratchcounter\numexpr\recurselevel+\firstsubpage+\minusone\relax \ifnum\scratchcounter<\realpageno\relax \dogotosomecontrastpage\??ib{\dogotox0}\scratchcounter \else\ifnum\scratchcounter=\realpageno\relax \dogotosomecontrastpage\??ib{\dogotox1}\scratchcounter \else \dogotosomecontrastpage\??ib{\dogotox2}\scratchcounter \fi\fi \egroup \hss}% \unskip \egroup \fi \egroup \fi \fi\fi} \def\interactionbarf % !! KAN WORDEN GECOMBINEERD MET D !! {\iflocation\ifshowingsubpage \ifnum\nofsubpages>\plusone \setinteractionparameter\c!width\!!zeropoint \noindent \hbox to \@@ibwidth \bgroup \!!countb\zerocount \loop % todo: \doloop \advance\!!countb \plusone %\!!countc\nofsubpages \divide\!!countc \!!countb \advance\!!countc \plusone \!!countc\numexpr(\nofsubpages/\!!countb)+\plusone\relax % rounding \!!widthb\@@ibdistance \multiply\!!widthb \!!countc \advance\!!widthb -\@@ibdistance \!!widtha\@@ibwidth \advance\!!widtha -\!!widthb \divide\!!widtha \!!countc \ifdim\!!widtha<\@@ibdistance\relax \repeat \ifnum\!!countc>\plusone % this is not that well tested \advance\!!countc \minustwo \!!widtha-\@@ibdistance \!!widtha\!!countc\!!widtha \advance\!!widtha \@@ibwidth \advance\!!countc \plusone \divide\!!widtha \!!countc \fi \ifbarsymbol \setupsymbolset[\@@iasymbolset]% \def\dogotox##1% {\hbox{\symbol[\ifcase##1 \v!previous\or\v!somewhere\or\v!somewhere\or\v!somewhere\or\v!next\fi}}% \else \def\dogotox##1% {\hbox {\!!heighta\@@ibheight \!!deptha\@@ibdepth \ifcase##1\relax \vrule\!!height \!!heighta\!!depth \!!deptha\!!width\!!widtha \or \vrule\!!height.5\!!heighta\!!depth.5\!!deptha\!!width\!!widtha \or \vrule\!!height \!!heighta\!!depth \!!deptha\!!width\!!widtha \or \vrule\!!height.5\!!heighta\!!depth.5\!!deptha\!!width\!!widtha \or \vrule\!!height \!!heighta\!!depth \!!deptha\!!width\!!widtha \fi}}% \fi \!!countc\numexpr\realpageno-\plustwo\relax \!!countd\numexpr\realpageno+\plustwo\relax \ifnum\!!countc<\plusone \!!countc\plusone \fi \!!countf\zerocount \dostepwiserecurse\firstsubpage\lastsubpage\plusone {\!!doneafalse \advance\!!countf \plusone \ifnum\recurselevel=\firstsubpage\relax \!!doneatrue \fi \ifnum\recurselevel=\lastsubpage\relax \!!doneatrue \fi \if!!donea \ifnum\recurselevel<\realpageno \dogotosomecontrastpage\??ib{\dogotox0}\recurselevel \else\ifnum\recurselevel>\realpageno \dogotosomecontrastpage\??ib{\dogotox2}\recurselevel \else \dogotosomecontrastpage\??ib{\dogotox4}\recurselevel \fi\fi \hss \!!countf\zerocount \else\ifnum\!!countf=\!!countb \ifnum\recurselevel<\realpageno \dogotosomecontrastpage\??ib{\dogotox1}\recurselevel \else\ifnum\recurselevel>\realpageno \dogotosomecontrastpage\??ib{\dogotox3}\recurselevel \else \dogotosomecontrastpage\??ib{\dogotox2}\recurselevel \fi\fi \hss \!!countf\zerocount \fi\fi}% \unskip \egroup \fi \fi\fi} \def\interactionbarg {\ifnum\lastsubpage>\firstsubpage\relax \interactionbuttons[\v!firstsubpage,\v!previoussubpage,\v!nextsubpage,\v!lastsubpage]% \fi} \def\checkinteractionbar#1#2#3% {\ifdim\@@ibwidth=\zeropoint\def\@@ibwidth{#1}\fi \doifnothing\@@ibheight{\def\@@ibheight{#2}}% \doifnothing\@@ibdepth{\def\@@ibdepth{#3}}} \def\complexinteractionbar[#1]% {\doifelse{#1}\v!reset {\global\setbox\interactionbarbox\emptybox}% {\bgroup \iflocation \checksubpages % goes wrong / loads \numberofpages too \getparameters[\??ib][#1]% \doif\@@ibstate\v!start {\startinteraction \processaction % breedte defaults ! [\@@ibalternative] [ c=>\checkinteractionbar{10em}\v!max \v!max, d=>\checkinteractionbar{.5em}{.5em} \!!zeropoint, e=>\checkinteractionbar{10em}{.5em} \!!zeropoint, f=>\checkinteractionbar{10em}{.5em} \!!zeropoint, \s!default=>\checkinteractionbar{10em}\v!broad\!!zeropoint, \s!unknown=>\checkinteractionbar{10em}\v!broad\!!zeropoint]% \doifelse\@@ibsymbol\v!yes \barsymboltrue\barsymbolfalse \getvalue{interactionbar\@@ibalternative}% \stopinteraction}% \fi \egroup}} \definecomplexorsimpleempty\interactionbar \def\setupinteractionbar {\dodoubleargument\getparameters[\??ib]} % Er wordt vooralsnog uitgegaan van een symmetrische % start-stop situatie. \def\c!profiel!! {profiel:} % brrr \def\c!versie!! {versie:} \def\dodefineprofile[#1][#2]% {\iflocation \def\dododefineprofile##1% {\def\dodododefineprofile####1% {\doifdefinedelse{\c!profiel!!####1}% {\edef\!!stringa{\getvalue{\c!profiel!!####1}}% \setevalue{\c!profiel!!####1}{\!!stringa,##1}}% {\setevalue{\c!profiel!!####1}{##1}}}% \processcommalist[#2]\dodododefineprofile}% \processcommalist[#1]\dododefineprofile \fi} \def\defineprofile% {\dodoubleargument\dodefineprofile} % Als met \getpar wordt gewerkt, dan moet \next worden toegepast. % TZT initialisatie! \def\profilepage{} \let\dosetprofilepage\relax \let\dogetprofilepage\relax \def\processprofile#1[#2]% {\iflocation \par % needed for pdftex \bgroup \dosetprofilepage \dogetprofilepage \def\processoneprofile##1##2% {\ExpandBothAfter\doifinsetelse{##2}{\processedprofiles}% {\doifsomething{##1}{(##1)}}% {\addtocommalist{##2}\processedprofiles ##1\relax \ifcase#1\relax \dobeginofprofile{##2}\paperwidth\paperheight\profilepage \else \doendofprofile \fi}}% \let\processedprofiles\empty \def\doprocessprofile##1% {\doifelse{\@@pfoption}{\v!test}% {\goodbreak\blank\nobreak\tt[\space \ifcase#1\v!start\else\v!stop\fi profiel\space ##1:\space \doifdefinedelse{\c!profiel!!##1}% {\def\dodoprocessprofile####1% {\processoneprofile {\goto{####1}[\c!profiel!!####1]}% {####1}% \space}% \processcommacommand [\getvalue{\c!profiel!!##1}]\dodoprocessprofile}% {- }% ]\nobreak\blank}% {\doifdefined{\c!profiel!!##1}% {\def\dodoprocessprofile####1% {\processoneprofile{}{####1}}% \processcommacommand [\getvalue{\c!profiel!!##1}]\dodoprocessprofile}}}% \processcommalist[#2]\doprocessprofile \egroup \par % needed for pdftex \fi} \def\startprofile[#1]% {\iflocation \bgroup \addtocommalist{#1}\actualprofile \def\stopprofile% {\processprofile1[#1]% \egroup}% \def\next{\processprofile0[#1]}% % \DoAfterFi \processprofile0[#1]% \else % ^^^^^^^^^^ will be obsolete \let\next\relax % since ugly and never used \fi \next} \let\stopprofile\relax \def\dofollowprofile#1[#2]% {\iflocation \hbox {\dohandlegoto {\dolocationattributes\??ia\c!style\c!color{#1\presetgoto}}% {\dostartgotoprofile\buttonwidth\buttonheight{#2}}% {\dostopgotoprofile}}% \else {#1}% \fi} \def\followprofile#1[#2]% {\iflocation \doif\@@pfoption\v!test{\pagereference[\c!profiel!!#2]}% \dofollowprofile{#1}[#2]% \fi} \def\setupprofiles% {\dodoubleargument\getparameters[\??pf]} % Als er nog geen tekst op de pagina staat, dan heeft het % profiel betrekking op het bovenstaande, dus soms een vorige % pagina! Vreemd, omdat PDF paginagewijs werkt. Gelukkig % biedt /page een oplossing. Echter: expansie van een % \special kan niet worden uitgesteld, zodat alleen een % two-pass een oplossing vormt. Het onderstaande kan komen % te vervallen als Acrobat dit ondervangt. Het scheelt een % pass en een lijst. % % Er kunnen eventueel twee lijsten worden gebruikt. Een voor % het begin (start) en een voor het eind (stop). Nu staat % alles in een lijst. \definetwopasslist\s!profile \newcounter\currentprofile \def\dosetprofilepage% {\doglobal\increment\currentprofile \lazysavetwopassdata{\s!profile}{\currentprofile}{\noexpand\realfolio}} \def\dogetprofilepage% {\gettwopassdata{\s!profile}% \let\profilepage=\twopassdata} % is this stuff used at all \newcounter\versionlevel \newcounter\versionorder \newif\ifrecentversion \let\oldatcharacter=@ \def\minimumversion{0} \def\actualversion{0} \def\dosetupversions[#1]% {\getparameters[\??ve][#1] \stripcharacter.\from\@@venumber\to\minimumversion} \def\setupversions {\dosingleargument\dosetupversions} \definetwopasslist\s!versionbegin \definetwopasslist\s!versionend \let\actualprofile\empty \def\doresetpageversion {\lazysavetwopassdata{\s!versionend}{\versionorder}{\noexpand\realfolio}} \def\dosetpageversion#1% {\recentversiontrue \doglobal\increment\versionorder\relax \lazysavetwopassdata{\s!versionbegin}{\versionorder}{\noexpand\realfolio}% \let\resetpageversion\doresetpageversion} \def\recentcontributions{} \def\checkrecentcontributions% {\gettwopassdata{\s!versionbegin}% \iftwopassdatafound \!!counta\twopassdata\relax \gettwopassdata{\s!versionend}% \iftwopassdatafound \!!countb\twopassdata\relax \doglobal\increment\versionorder\relax \savetwopassdata{\s!versionbegin}{\versionorder}{\the\!!counta}% \savetwopassdata{\s!versionend }{\versionorder}{\the\!!countb}% \dostepwiserecurse\!!counta\!!countb\plusone {\@EA\doglobal\@EA\addtocommalist\@EA{\recurselevel}{\recentcontributions}}% \let\next\checkrecentcontributions \else \let\next\relax \fi \else \let\next\relax \fi \next} \def\docheckpageversion {\ExpandBothAfter\doifinsetelse{\realfolio}{\recentcontributions} {\pageselectedtrue}% {\pageselectedfalse}} \let\setpageversion \gobbleoneargument \let\resetpageversion \relax \let\checkpageversion \relax \def\complexstartversion[#1]% {\bgroup \doifelsenothing\actualprofile {\startprofile[#1]}% {\startprofile[#1,\actualprofile]}% \def\docomplexstartversie##1% {\stripcharacter.\from##1\to\actualversion \ifnum\versionlevel>\zerocount\relax \ifnum\actualversion=\zerocount \setpageversion\actualversion % unknown version \else \ifnum\actualversion<\minimumversion\relax \relax % old version \else \setpageversion\actualversion % new version \fi \fi \fi}% \doglobal\increment\versionlevel\relax \doifelsenothing{#1} {\docomplexstartversie{0}}% {\processcommalist[#1]\docomplexstartversie}} \definecomplexorsimpleempty\startversion \def\stopversion {\stopprofile \doglobal\decrement\versionlevel \ifnum\versionlevel<\zerocount \showmessage\m!versions1\empty \else \resetpageversion \egroup \fi} \def\markversion {\showmessage\m!versions2\empty \let\setpageversion\dosetpageversion \let\resetpageversion\relax \let\checkpageversion\relax} \def\selectversion {\checkrecentcontributions \showmessage\m!versions3\recentcontributions \let\setpageversio\gobbleoneargument \let\resetpageversion\relax \let\checkpageversion\docheckpageversion} \def\dodefineversion[#1][#2]% {\setvalue{\c!versie!!#1}{#2}% \defineprofile[#1][#2]} \def\defineversion {\dodoubleargument\dodefineversion} \def\followversion {\followprofile} \def\followprofileversion#1[#2][#3]% {\def\docommand##1% {\defineprofile[#2#3][##1]}% \processcommacommand[\getvalue{\c!versie!!#3}]\docommand \followprofile#1[#2#3]} \newcounter\currentpagetransition \newif\ifrandomtransitions \def\setuppagetransitions% {\dosingleempty\dosetuppagetransitions} \def\dosetuppagetransitions[#1]% {\doifelsenothing{#1} {\doifnot\@@scdelay\v!none {\let\setpagetransition\setsomepagedelay}} {\doifelse{#1}\v!start {\doifnot\@@scdelay\v!none {\let\setpagetransition\setsomepagedelay}} {\doglobal\newcounter\currentpagetransition \doifinsetelse{#1}{\v!reset,\v!stop} {\let\setpagetransition\relax} {\let\setpagetransition\setsomepagetransition \doifinsetelse\v!random{#1} {\randomtransitionstrue}{\randomtransitionsfalse}% \edef\userpagetransitions{#1}% \@EA\removefromcommalist\@EA{\v!random}\userpagetransitions \ifx\userpagetransitions\empty \let\userpagetransitions\pagetransitions \fi}}}} \def\setsomepagedelay {\expanded{\dosetpagetransition{0}{\@@scdelay}}} \def\setsomepagetransition {\iflocation \ifrandomtransitions \expanded{\getcommalistsize[\userpagetransitions]}% \getrandomnumber\currentpagetransition1\commalistsize \else \doglobal\increment\currentpagetransition \fi \expanded{\getfromcommalist[\userpagetransitions][\currentpagetransition]}% \doifnumberelse\commalistelement {\expanded{\getfromcommalist[\pagetransitions][\commalistelement]}} {}% \ifx\commalistelement\empty \doglobal\newcounter\currentpagetransition \setsomepagetransition \else \doifelse\@@scdelay\v!none {\expanded{\dosetpagetransition{\commalistelement}{0}}} {\expanded{\dosetpagetransition{\commalistelement}{\@@scdelay}}}% \fi \fi} \prependtoks \setpagetransition \to \everyshipout % temporary here %D \startbuffer %D \dorecurse{10} %D {\horizontalpositionbar %D \pos\recurselevel \min1 \max10 %D \token\framed{\recurselevel}% %D \\} %D %D \hbox to 15em %D {\hss %D \dorecurse{10} %D {\verticalpositionbar\pos\recurselevel\min1\max10\token\blackrule\\ %D \hss}} %D \stopbuffer \def\horizontalpositionbar\pos#1\min#2\max#3\token#4\\% {\hbox to \hsize {\hskip\zeropoint\!!plus #1\!!fill \hskip\zeropoint\!!plus-#2\!!fill #4\relax \hskip\zeropoint\!!plus #3\!!fill \hskip\zeropoint\!!plus-#1\!!fill}} \def\verticalpositionbar\pos#1\min#2\max#3\token#4\\% {\vbox to \vsize {\vskip\zeropoint\!!plus #1\!!fill \vskip\zeropoint\!!plus-#2\!!fill \hbox{#4}\relax \vskip\zeropoint\!!plus #3\!!fill \vskip\zeropoint\!!plus-#1\!!fill}} \def\horizontalgrowingbar\pos#1\min#2\max#3\height#4\depth#5\\% {\hbox to \hsize {\scratchcounter#1% \advance\scratchcounter -#2% \advance\scratchcounter \plusone \leaders\vrule\hskip\zeropoint\!!plus \scratchcounter\!!fill \vrule\!!width\zeropoint\!!height#4\!!depth#5% \hskip\zeropoint\!!plus #3\!!fill \hskip\zeropoint\!!plus-#1\!!fill}} \def\verticalgrowingbar\pos#1\min#2\max#3\width#4\\% {\vbox to \vsize {\scratchcounter#1% \advance\scratchcounter -#2% \advance\scratchcounter \plusone \leaders\hrule\vskip\zeropoint\!!plus\scratchcounter\!!fill \hrule\!!width#4\!!height\zeropoint\!!depth\zeropoint \vskip\zeropoint\!!plus #3\!!fill \vskip\zeropoint\!!plus-#1\!!fill}} \newbox\commentbox \def\doflushcommentanchors {\let\next\relax % new \processaction [\@@cclocation] [% \v!text=>\let\next\relax, % new \v!inmargin=>\let\next\inmargin, % brr not the same as inleft|rightmargin \v!leftedge=>\let\next\inleftedge, \v!rightedge=>\let\next\inrightedge, \v!leftmargin=>\let\next\inleftmargin, \v!rightmargin=>\let\next\inrightmargin]% \next{\hbox{\raise\strutht\box\commentbox}}} \def\flushcommentanchors % in everypar so indirect {\ifvoid\commentbox\else \doflushcommentanchors \fi} \def\setupcomment {\dodoubleargument\getparameters[\??cc]} \setvalue{\e!start\v!comment}% the dummy triple gobbles trailing spaces {\dotripleempty\dostartcommentaar} \def\comment {\dodoubleempty\docomment} \def\dodocomment#1% {\!!widtha\@@ccwidth \!!heighta\@@ccheight \doifelse\@@ccoption\v!max {\let\@@ccopen \!!plusone}{\let\@@ccopen \!!zerocount}% \doifelse\@@ccoption\v!buffer {\let\@@cccollect\!!plusone}{\let\@@cccollect\!!zerocount}% \preparecommentvariables \doinsertcomment \@@cctitle\!!widtha\!!heighta \@@cccolor\@@ccopen\@@ccsymbol \@@cccollect{#1}} \def\preparecommentvariables % more will move here as with fields {\let\@@DriverCommentLayer\@@cctextlayer} \def\dopreparecommentaar#1#2% {\doifassignmentelse{#1} {\getparameters[\??cc][#1]} {\getparameters[\??cc][\c!title=#1,#2]}% \obeylines \doif\@@ccspace\v!yes\obeyspaces} \def\dostartcommentaar[#1][#2][#3]% {\bgroup \doifelse\@@ccstate\v!start {\dopreparecommentaar{#1}{#2}% \long\def\docommand##1% {\global\setbox\commentbox\frozenhbox {\hbox to \zeropoint {\struttedbox{\tbox{\dodocomment{##1}}}\hss}% \hskip\ifvoid\commentbox\@@ccmargin\else\@@ccdistance\fi \box\commentbox}% \egroup}}% {\long\def\docommand##1% {\egroup}}% \grabuntil{\e!stop\v!comment}\docommand} \letvalue{\e!stop\v!comment}\relax % handy for \expanded{...} \def\docomment[#1][#2]#3% {\doif\@@ccstate\v!start {\hbox to \zeropoint {\dopreparecommentaar{#1}{#2}% \hskip-\@@ccmargin \struttedbox{\tbox{\dodocomment{#3}}\hss}}}% \ignorespaces} % \startcomment % hello beautiful\\world % \stopcomment % % \startcomment[hello] % hello << \'e\'erste >> % beautiful % world % \stopcomment % % \startcomment[hello][color=green,width=4cm,height=3cm] % hello \leftguillemot\ \'e\'erste \rightguillemot\ % beautiful % world % \stopcommentaar % % \startcomment[hello][color=green,width=4cm,height=3cm] % hello \leftguillemot\ \'e\'erste \rightguillemot\ test % % beautiful % % world % \stopcomment % % \startcomment[symbol=Balloon] % Do we want this kind of rubish? And, why isn't this and % some more features related to text annotations so poorly % (actually not) documented? Anyhow, by providing this % functionality we demonstrate that \pdfTeX\ can do it. By % the way, it's funny that when in Acrobat we scale up the % text, the symbols scale down. % \stopcomment % \definesymbol [comment-normal][{\externalfigure[cow.pdf]}] % \definesymbol [comment-down] [{\externalfigure[cow.pdf]}] % % \def\CowSymbol#1#2% % {\scale % [\c!height=#1] % {\startMPcode % loadfigure "koe.mp" number 1 ; % refill currentpicture withcolor #2 ; % \stopMPcode}} % % \definesymbol [comment-normal] % [\CowSymbol{4ex}{red}] % % \definesymbol [comment-down] % [\CowSymbol{4ex}{green}] % % \setupcomment % [\c!symbol={comment-normal,comment-down}, % \c!option=\v!buffer] % % \setupfootertexts[\placecomments] \def\placecomments {\doflushcomments} % \setupinteraction[state=start] % % \useattachment[test.tex] % \useattachment[whatever][test.tex] % \useattachment[whatever][newname][test.tex] % \useattachment[whatever][title][newname][test.tex] % % % \setupattachments[\c!symbol={symbol-normal,symbol-down}] % % \starttext \attachment[whatever] \stoptext \def\useattachment {\doquadrupleempty\douseattachment} \def\douseattachment[#1][#2][#3][#4]% tag title newname filename {\iffourthargument \setgvalue{\??at:#1}{{#2}{#3}{#4}}% tooltip kind of case \else\ifthirdargument \setgvalue{\??at:#1}{{#2}{#2}{#3}}% full path case \else\ifsecondargument \setgvalue{\??at:#1}{{#2}{#2}{#2}}% obvious case \else \setgvalue{\??at:#1}{{#1}{#1}{#1}}% worst case \fi\fi\fi} \let\attachmenttitle\empty \let\attachmentname \empty \let\attachmentfile \empty \def\getattachmentdata[#1]% {\edef\attachmenttitle{\filterfromvalue{\??at:#1}31}% description \edef\attachmentname {\filterfromvalue{\??at:#1}32}% new name \edef\attachmentfile {\filterfromvalue{\??at:#1}33}% original \expandafter\splitstring\attachmentname\at.\to\!!stringa\and\!!stringb \ifx\!!stringb\empty % no suffix, so we need to inherit it \expandafter\splitstring\attachmentfile\at.\to\!!stringc\and\!!stringd \edef\attachmentname{\attachmentname.\!!stringd}% \fi} \def\attachment {\dodoubleempty\doattachment} \def\doattachment[#1][#2]% currently title equals newname {\iflocation \ifsecondargument \doifundefined{\??at:#2} {\showmessage\m!interactions6{#2}% \useattachment[#2]}% \doif\@@atstate\v!start {\bgroup \getattachmentdata[#2]% \doiffileelse\attachmentfile {\setupattachments[#1]% \presetattachmentvariables \struttedbox{\tbox{% \doattachfile \attachmenttitle {1em}\strutheight\strutdepth\@@atcolor\@@atsymbol \attachmentname \attachmentfile}% }}% {\showmessage\m!interactions5\attachmentfile}% \egroup}% \else\iffirstargument \attachment[][#1]% \fi\fi \fi} \def\presetattachmentvariables {\let\@@DriverAttachmentLayer\@@attextlayer} \def\setupattachments {\dodoubleempty\getparameters[\??at]} \setupattachments [\c!state=\v!start, \c!color=\@@iacolor, \c!textlayer=, \c!symbol=] % jammer, tussen/midden had erin gemoeten; \c!commando toevoegen \def\registermenucommand#1% {{\textonly\noindent#1\space}} % no math switching \def\doregistermenubuttons[#1][#2]% [menu id] [register] {\bgroup \ifsecondargument \setupinteractionmenu [#1][\c!unknownreference=\v!yes,\c!samepage=\v!yes]% \def\docommand##1% {\registermenucommand{\menubutton[#1]{##1}[#2:##1]}}% \else \def\docommand##1% {\registermenucommand {\button [\c!unknownreference=\v!yes,\c!samepage=\v!yes] {##1}[#1:##1]}}% \fi \handletokens abcdefghijklmnopqrstuvwxyz\with\docommand % moet anders \egroup} \def\registermenubuttons {\dodoubleempty\doregistermenubuttons} % It took quite a while to figure this out (using the preliminary 1.5 % spec). There are still a lot of things to be implemented. This is % the third alternative. % todo: multiple instances, dus indirect \let\currentrendering\empty \definereference[StartCurrentRendering] [\v!StartRendering {\currentrendering}] \definereference[StopCurrentRendering] [\v!StopRendering {\currentrendering}] \definereference[PauseCurrentRendering] [\v!PauseRendering {\currentrendering}] \definereference[ResumeCurrentRendering][\v!ResumeRendering{\currentrendering}] \newcounter\nofexternalrenderings \def\useexternalrendering{\doquadrupleempty\douseexternalrendering} \def\setinternalrendering{\dodoubleempty \dosetinternalrendering} \def\douseexternalrendering[#1][#2][#3][#4]% tag mime file options {\setgvalue{\??rd:#1}{\plusone{#1}{#2}{#3}{#4}}} \def\dosetinternalrendering[#1][#2]% tag options {content} {\bgroup \dowithnextbox {\setgvalue{\??rd:#1}{\plustwo{#1}{IRO}{#1}{#2}}% \let\objectoffset\zeropoint \setobject{IRO}{#1}\hbox{\box\nextbox}% \egroup}% \hbox} \def\checkrendering#1% let's hope that \next is not used {\iflocation \doifsomething{#1}% {\doifdefined{\??rd:#1}% {\expanded{\getvalue{\??rd::\number\renderingtype{#1}}% {\filterfromvalue{\??rd:#1}52}{\filterfromvalue{\??rd:#1}53}% {\filterfromvalue{\??rd:#1}54}{\filterfromvalue{\??rd:#1}55}}}}% \fi} \setvalue{\??rd::1}{\doinsertrendering} \setvalue{\??rd::2}{\doinsertrenderingobject} \def\renderingtype #1{\filterfromvalue{\??rd:#1}51} \def\renderingoptions#1{\filterfromvalue{\??rd:#1}55} \setexecutecommandcheck {startrendering} \checkrendering \setexecutecommandcheck {stoprendering} \checkrendering \setexecutecommandcheck {pauserendering} \checkrendering \setexecutecommandcheck {resumerendering} \checkrendering % by using a nice trick (used in other places of context as well) we % can easily overload the default size to match the opbject size \def\renderingwidth {8cm} \def\renderingheight{6cm} \def\definerenderingwindow {\dodoubleempty\dodefinerenderingwindow} \def\dodefinerenderingwindow[#1][#2]% {\presetlocalframed[\??rw#1]% \getparameters% [\??rw#1]% [\c!openpageaction=,\c!closepageaction=,% \c!width=\renderingwidth,\c!height=\renderingheight,% #2]} \def\setuprenderingwindow {\dodoubleargument\dosetuprenderingwindow} \def\dosetuprenderingwindow[#1]% {\getparameters[\??rw#1]} \def\placerenderingwindow {\dodoubleempty\doplacerenderingwindow} \def\doplacerenderingwindow[#1][#2]% {\bgroup \edef\currentrendering{\ifsecondargument#2\else#1\fi}% \ifcase\renderingtype\currentrendering\or % a file \or % an object \getobjectdimensions{IRO}\currentrendering \scratchdimen\objectheight \advance\scratchdimen\objectdepth \edef\renderingheight{\the\scratchdimen}% \edef\renderingwidth{\objectwidth}% \fi % create fall back if needed \doifdefinedelse{\??rw#1\c!width} {\def\currentrenderingwindow{#1}} {\let\currentrenderingwindow\s!default \definerenderingwindow[\currentrenderingwindow]}% \checkrendering\currentrendering \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!openpageaction }}\dosetuprenderingopenpageaction \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!closepageaction}}\dosetuprenderingclosepageaction \localframed [\??rw\currentrenderingwindow][\c!offset=\v!overlay]% {\expanded{\doinsertrenderingwindow \noexpand\currentrendering\hsize\vsize{\renderingoptions\currentrendering}}}% \egroup} % todo: % % \setinternalrendering[example-1][options]{} % test file: % % \definerenderingwindow % [example] % [width=320pt,height=150pt,frame=off, % background=color,backgroundcolor=gray, % openpageaction=StartCurrentRendering, % closepageaction=NextPage]% StopCurrentRendering] % % \useexternalrendering[example-1][audio/mpeg] [eldorado.mp3] % \useexternalrendering[example-2][audio/mpeg] [myst-12.mp3] % \useexternalrendering[example-3][application/x-shockwave-flash][http://localhost/mb.swf] [auto] % \useexternalrendering[example-4][application/x-shockwave-flash][celebration.swf] % \useexternalrendering[example-5][video/quicktime] [p1000726.mov] % \useexternalrendering[example-6][application/smil] [quadratic_map.smi] % % \def\renderingmenu[#1]% % {\hbox % {\setupbuttons[width=2.5em]% % \button{\symbol[StartRendering]} [StartRendering{#1}]\enspace % \button{\symbol[StopRendering]} [StopRendering{#1}]\enspace % \button{\symbol[PauseRendering]} [PauseRendering{#1}]\enspace % \button{\symbol[ResumeRendering]}[ResumeRendering{#1}]}} % % \renderingmenu[example-1]\blank % \renderingmenu[example-2]\blank % \renderingmenu[example-3]\blank % \renderingmenu[example-4] \placefigure{A ShockWave}{\placerenderingwindow[example][example-4]} \page % \renderingmenu[example-5] \placefigure{A Movie}{\placerenderingwindow[example][example-5]} \page % \renderingmenu[example-6] \placefigure{A Smile}{\placerenderingwindow[example][example-6]} \stelkoppelingenin [\c!distance=.25em, \c!width=\v!fit, \c!location=\v!low, \c!color=\@@iacolor, \c!frame=\v!off, \c!background=, \c!backgroundscreen=\@@rsscreen, \c!backgroundcolor=] \defineinteractionmenu [\v!right] [\v!right] [\c!before=, \c!after=\vfil, \c!inbetween=\blank, \c!distance=\bodyfontsize, % 12pt \c!left=\hss, \c!right=\hss, \c!width=\rightedgewidth, \c!height=\v!broad] \defineinteractionmenu [\v!left] [\v!left] [\c!before=, \c!after=\vfil, \c!inbetween=\blank, \c!distance=\bodyfontsize, % 12pt \c!left=\hss, \c!right=\hss, \c!width=\leftedgewidth, \c!height=\v!broad] \defineinteractionmenu [\v!bottom] [\v!bottom] [\c!before=\vss, \c!after=\vss, \c!middle=\hfil, \c!distance=\bodyfontsize, % 12pt \c!width=\v!fit, \c!height=\v!broad] \defineinteractionmenu [\v!top] [\v!top] [\c!before=\vss, \c!after=\vss, \c!middle=\hfil, \c!distance=\bodyfontsize, % 12pt \c!width=\v!fit, \c!height=\v!broad] \setupinteractionmenu [\v!left,\v!right,\v!top,\v!bottom] [\c!offset=.25em, \c!position=\v!no, \c!frame=\v!on, \c!background=, \c!backgroundcolor=, \c!backgroundscreen=\@@rsscreen, \c!style=\@@iastyle, \c!color=\@@iacolor, \c!contrastcolor=\@@iacontrastcolor, \c!state=\v!start, \c!samepage=\v!yes, \c!unknownreference=\v!empty, \c!topoffset=\!!zeropoint, \c!bottomoffset=\!!zeropoint, \c!leftoffset=\!!zeropoint, \c!rightoffset=\!!zeropoint] \def\placeleftedgetextblock % Is \hss/\hsize really needed here? {\hbox to \leftedgewidth % (check outer level and settings) {\hsize\leftedgewidth\hss\interactionmenus[\v!left]}} \def\placerightedgetextblock % Is \hss/\hsize really needed here? {\hbox to \rightedgewidth % (check outer level and settings) {\hsize\rightedgewidth\interactionmenus[\v!right]\hss}} \def\placetoptextblock {\vbox to \topheight {\vsize\topheight \csname\??tk\v!top\c!before\endcsname \interactionmenus[\v!top]% \csname\??tk\v!top\c!after\endcsname \kern\zeropoint}} \def\placebottomtextblock {\vbox to \bottomheight {\vsize\bottomheight \csname\??tk\v!bottom\c!before\endcsname \interactionmenus[\v!bottom]% \csname\??tk\v!bottom\c!after\endcsname \kern\zeropoint}} \ifx\leftedgetextcontent\undefined \else \appendtoks \placeleftedgetextblock \hskip-\leftedgewidth \to \leftedgetextcontent \appendtoks \placerightedgetextblock \hskip-\rightedgewidth \to \rightedgetextcontent \appendtoks \placetoptextblock \vskip-\topheight \to \toptextcontent \appendtoks \placebottomtextblock \vskip-\bottomheight \to \bottomtextcontent \fi \setupinteractionscreen [\c!width=\printpaperwidth, \c!height=\printpaperheight, \c!horoffset=\!!zeropoint, \c!veroffset=\!!zeropoint, \c!backspace=\backspace, \c!topspace=\topspace, \c!option=\v!min, \c!delay=\v!none] \setupbuttons [\c!state=\v!start, \c!width=\v!fit, \c!height=\v!broad, \c!offset=0.25em, \c!frame=\v!on, \c!background=, \c!backgroundscreen=\@@rsscreen, \c!backgroundcolor=, \c!style=\@@iastyle, \c!color=\@@iacolor, \c!contrastcolor=\@@iacontrastcolor, \c!samepage=\v!yes, \c!unknownreference=\v!yes] \setupinteractionbar [\c!state=\v!start, \c!alternative=a, \c!symbol=\v!no, \c!width=\rightedgewidth, \c!height=, % these are taken care \c!depth=, % of at calling time \c!distance=.5em, % beter relateren aan breedte \c!step=1, \c!color=\@@iacolor, \c!contrastcolor=\@@iacontrastcolor, \c!frame=\v!on, \c!background=, \c!backgroundscreen=\@@rsscreen, \c!backgroundcolor=, \c!samepage=\v!yes, \c!unknownreference=\v!yes] \setupsynchronizationbar [\c!alternative=\v!page, \c!width=\rightedgewidth, \c!style=\@@iastyle, \c!color=\@@iacolor, \c!background=, \c!backgroundscreen=\@@rsscreen, \c!backgroundcolor=] \setupsynchronization [\c!state=\v!stop] \setupprofiles [\c!option=] \setuppagetransitions [\v!reset] \setupcomment [\c!state=\v!start, \c!margin=2.5em, \c!distance=1em, \c!width=.3\textwidth, \c!height=.2\textheight, \c!color=\@@iacolor, \c!title=, \c!space=\v!no, \c!symbol=\v!normal, \c!location=\v!inmargin, \c!option=, \c!textlayer=] \setupversions % beware, @ is made active here, [\c!number=1, % therefore we set this one at the end \c!style=\ss, \c!color=] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-ini.mkii0000644000175000017500000001511714536300610024663 0ustar hillehille%D \module %D [ file=regi-ini, %D version=2000.12.27, % 1998.12.03, %D title=\CONTEXT\ Regime Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D Remark: regimes accumulate, so there is no explicit reset in %D mkii mode. %D Variables. \def\@reg@{@r@eg@} % regime prefix %D \macros %D {currentregime} \let\currentregime\empty \let\defaultregime\s!default %D Some low level inheritance stuff (mkii). \def\doautosetregime#1#2% {\ifnum#2>127 \expanded{\defineactivetoken #2 \@EA\noexpand\csname#1\endcsname}% \fi} %D \macros %D {startregime} %D %D Sometimes it makes sense to activate the characters in the %D upper half of the character table. Such a bundle of %D characters can be packages in a regime. Later we will see %D encodings (that links characters slots to glyphs) and %D mappings (that take care of hyphenation and case changes). %D %D When character~231 is of category code letter, it %D directly maps to glyph~231 (unless of course some virtual %D font is used). By making character~231 active, we can map %D it onto for instance the glyph in slot 233. This mapping %D can in itself be indirect, in the sense that it is for %D instance handled by an accent command. %D %D Regimes are implemented roughly the same as mappings, but %D enabled under different circumstances. In the future, the %D low level implementation may change. \def\startregime[#1]% {\pushmacro\currentregime \edef\currentregime{#1}% \checkregimetoks} \def\checkregimetoks {\doifundefined{\@reg@\currentregime} {\@EA\newtoks\csname\@reg@\currentregime\endcsname}} \def\stopregime {\popmacro\currentregime} \def\setregimetoks {\checkregimetoks \@EA\let\@EA\regimetoks\csname\@reg@\currentregime\endcsname} %D \macros %D {defineactivedecimal, defineactivedecimals, defineactivetoken} %D %D The following commands are rather ugly ones. It makes a %D character active and assigns it a value. When expanded, %D the decimal number of the character is passed as first %D argument. %D %D \starttyping %D \def\decimalcharacter#1{\message{#1 is now active}} %D %D \defineactivedecimal 122 {\decimalcharacter} %D %D \defineactivedecimals 128 to 255 as {\decimalcharacter} %D \stoptyping %D %D This command is typically used in coding definitions, %D like the \UNICODE\ one. \def\dodefineactivedecimal#1#2% \unexpanded ? pdfdoc encoding {\catcode#1\active \scratchcounter\uccode\activehackcode \uccode\activehackcode#1\relax \uppercase{\unexpanded\edef~{\noexpand#2{\number#1}}}% \uccode\activehackcode\scratchcounter} \long\def\defineactivedecimal#1 #2 % {\setregimetoks \regimetoks\expandafter{\the\regimetoks\dodefineactivedecimal{#1}{#2}}} \long\def\defineactivedecimals#1 to #2 as #3 % {\setregimetoks \dostepwiserecurse{#1}{#2}\plusone {\regimetoks\@EA\@EA\@EA{\@EA\the\@EA\regimetoks\@EA\dodefineactivedecimal\@EA{\recurselevel}{#3}}}} \def\doexpandactivedecimal#1% {\ifnum#1>\scratchcounter \expandafter\gobbletwoarguments \else \noexpand\dodefineactivedecimal{#1}{\the\scratchtoks}% \expandafter\expandafter\expandafter\doexpandactivedecimal\expandafter \fi\expandafter{\the\numexpr#1+\plusone\relax}} \long\def\defineactivedecimals#1 to #2 as #3 % {\setregimetoks \scratchcounter#2\relax \scratchtoks{#3}% \expanded{\regimetoks{\the\regimetoks\doexpandactivedecimal{#1}}}% \ignorespaces} \long\def\defineactivetoken #1 #2% no {} after #2, else no kern {\setregimetoks \regimetoks\expandafter{\the\regimetoks\defineactivecharacter#1 {#2}}} \long\def\defineactiveinspector #1 #2% watch the missing {} {\setregimetoks \regimetoks\expandafter{\the\regimetoks\defineactivecharacter#1 {#2}}} %D \macros %D {defineregimesynonym,trueregimename} \def\defineregimesynonym {\dodoubleargument\dodefineregimesynonym} \def\dodefineregimesynonym[#1][#2]% {\setevalue{\@reg@:s:#1}{#2}} \def\trueregimename#1% {\executeifdefined{\@reg@:s:#1}{#1}} %D \macros %D {useregime} \def\useregime[#1]% {\processcommalist[#1]\douseregime} \def\douseregime#1% {\doifundefined{\c!file\f!regimeprefix#1}% {\letgvalue{\c!file\f!regimeprefix#1}\empty \makeshortfilename[\truefilename{\f!regimeprefix#1}]% \startreadingfile \readsysfile{\shortfilename.mkii} {\showmessage\m!regimes2{#1}} {\showmessage\m!regimes3{#1}}% \stopreadingfile}} %D \macros %D {enableregime,disableregime} \let\enabledregime\empty \def\enableregime[#1]% {\edef\currentregime{\trueregimename{#1}}% \doifelsenothing\currentregime {\disableregime} {\douseregime\currentregime \the\executeifdefined{\@reg@\currentregime}\emptytoks}} \def\disableregime {\let\currentregime\empty} %D \macros %D {protectregime, settoletterunlessactive, settocodeunlessactive} %D %D The next boolean is used later on to prevent unwanted %D catcode changes. Use it with care. \newif\ifprotectregime \protectregimetrue \def\settoletterunlessactive#1% {\ifprotectregime\ifnum\catcode#1=\active\else \catcode#1\@@letter \fi\else \catcode#1\@@letter \fi} \def\settootherunlessactive#1% {\ifprotectregime\ifnum\catcode#1=\active\else \catcode#1=\@@other \fi\else \catcode#1=\@@other \fi} \def\settocodeunlessactive#1#2% {\ifprotectregime\ifnum\catcode#1=\active\else \catcode#1=#2\relax \fi\else \catcode#1=#2\relax \fi} %D Goodie: \def\showregime[#1]% {\doifnot{#1}{utf} {\bgroup \enableregime[#1]% \starttabulate[|l|l|l|] \dostepwiserecurse{128}{255}{1} {\expanded {\scantokens {\NC \recurselevel \NC \rawcharacter\recurselevel \NC \noexpand\tttf \noexpand\meaning\rawcharacter\recurselevel \NC \NR}}}% \stoptabulate \unskip \egroup}} %D Sort related: \def\dowalkregime#1% {\the\executeifdefined{\@reg@#1}\emptytoks} %D Simplify matters for \XETEX. \ifnum\texengine=\xetexengine \def\enableregime[#1]% {\doifelse{#1}{utf}% {\writestatus\m!regimes{mapping utf to utf-8}% \XeTeXinputencoding{utf-8}} {\XeTeXinputencoding{#1}}} \def\disableregime {\XeTeXinputencoding{utf-8}} \def\loadregime[#1]{} \let\walkregime \gobbleoneargument \let\doautosetregime \gobbletwoarguments \else \useregime[def,uni,utf] % we load the rest runtime \fi \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-ini.mkii0000644000175000017500000010637014536300610024663 0ustar hillehille%D \module %D [ file=enco-ini, %D version=2007.02.19, % 2000.12.27, % 1998.12.03, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Quite some code will be moved to the mk files once we're ready %D for it. %D This module is a reimplementation of the module that handled %D composed characters and non \ASCII\ characters. The changed %D are not that fundamental, and mainly concerns moving %D definitions of specific glyphs and accents to other files as %D well as moving plain handling of accents to this module %D instead of overloading plain \TEX\ commands. %D Patterns are kind of mixed with font encodings and %D mappings. Alas. \ifx\synchronizepatterns\undefined \let\synchronizepatterns\relax \fi %D While dealing with input (the text source) and output (the %D glyphs), encoding comes into view. To summarize a few: %D %D \startitemize %D \item Bytes in the input file are mapped to an internal %D representation. An~\type {a} often stays an~\type {a}, %D but~\type {\"e} can become either one code or become %D two codes (ending in overlapping glyphs). %D \item Characters can be made active and mapped onto another %D character. %D \item When changing case, characters are mapped onto %D themselves, their case||counterpart or a reasonable %D alternative, like~\"e onto~e. %D \item Single character representations in a \DVI\ file can %D be mapped onto one or more characters, either of not %D in more than one font file (virtual fonts). %D \item In the final format, fonts collections can be %D partially embedded, thereby losing the one||to||one %D relation between several instances of one font. %D \item For special purposes, individual characters should be %D mapped onto a dedicated encoding vector, for instance %D \PDF\ document encoding. %D \stopitemize %D %D These and other kind of mappings are to be dealt with, and %D the exact way of dealing often depends on the language to be %D typeset. \writestatus{loading}{ConTeXt Encoding Macros / Initialization} \unprotect %D First we define a few local or not yet initialized constants. \def\@map@{@m@ap@} % mapping prefix \def\@fha@{@f@ha@} % font prefix \def\@cas@{@c@as@} % casecom prefix \ifx\currentlanguage\undefined \let\currentlanguage\s!en \fi %D \macros %D {setupencoding} %D %D The following setup command is used to tune encoding %D handling. \def\setupencoding {\dosingleargument\dosetupencoding} \def\dosetupencoding[#1]% {\getparameters[\??ec][#1]% \edef\defaultencoding {\ifx\@@ecdefault\empty\s!default\else\@@ecdefault\fi}} %D \macros %D {useencoding} %D %D Encodings things are defined in separate files and are %D loaded only once, using: %D %D \showsetup{useencoding} \def\douseencoding#1% {\doifundefined{\c!file\f!encodingprefix#1}% {\letvalue{\c!file\f!encodingprefix#1}\empty \makeshortfilename[\truefilename{\f!encodingprefix#1}]% \startreadingfile \readsysfile{\shortfilename.mkii} {\showmessage\m!encodings2{#1}} {\showmessage\m!encodings3{#1}}% \stopreadingfile}} \def\useencoding[#1]% {\processcommalist[#1]\douseencoding} %D \macros %D {startmapping,enablemapping} %D %D In order to process patterns, convert from lower to %D uppercase and vise versa and some more, we provide a %D mechanism to define mappings. The first real application %D of this command was: %D %D \starttyping %D \startmapping [something] %D \definecasemap 165 181 165 %D \definecasemap 171 187 171 %D ... %D \defineuppercasecom \i {I} %D \defineuppercasecom \l \L %D \definelowercasecom \AE \ae %D ... %D \stopmapping %D \stoptyping %D %D So, character 165 becomes 181 in uppercase and 165 in %D lowercase. A mapping is activated with \type {\enablemapping}. \def\startsavingmappingtoks#1% {\bgroup \edef\charactermapping{@#1@}% \checkmappingtoks \setmappingtoks \the\mappingtoks} \def\stopsavingmappingtoks {\global\mappingtoks\emptytoks \dostepwiserecurse{0}{255}\plusone {\edef\@@expanded {\the\mappingtoks \ifnum\recurselevel>127 \noexpand\settoletterunlessactive{\recurselevel}% \fi \lccode\recurselevel\ifnum\lccode\recurselevel=\zerocount\zerocount\else\space\the\lccode\recurselevel\space\fi \uccode\recurselevel\ifnum\uccode\recurselevel=\zerocount\zerocount\else\space\the\uccode\recurselevel\space\fi \ifnum\sfcode\recurselevel=\plusthousand\else\sfcode\recurselevel=\the\sfcode\recurselevel\space\fi }% \global\mappingtoks\expandafter{\@@expanded}}% \egroup \let\enabledmapping\empty \enablemapping[\currentmapping]} \def\startmapping[#1]% {\startsavingmappingtoks{#1}} \def\stopmapping {\stopsavingmappingtoks} \def\optimizemapping[#1]% {\startsavingmappingtoks{#1}% % nothing, just an automatic cleanup \stopsavingmappingtoks % we need to resync %\let\enabledmapping\relax }%\enablemapping[\currentmapping]} \def\setmappingtoks {\@EA\let\@EA\mappingtoks\csname\@map@\charactermapping\endcsname \@EA\let\@EA\casecomtoks\csname\@cas@\charactermapping\endcsname} \def\checkmappingtoks {\ifundefined{\@map@\charactermapping}% \expandafter\newtoks\csname\@map@\charactermapping\endcsname \fi \ifundefined{\@cas@\charactermapping}% \expandafter\newtoks\csname\@cas@\charactermapping\endcsname \fi} \def\definecasemap #1 #2 #3 % code lower upper {\doifelse{#2}{to} {\presetcaserange{#1}{#3}} {\lccode#1=#2\relax \uccode#1=#3\relax}% \ignorespaces} %D Saves a few tokens \def\definecaseswap #1 #2 % lower upper {\lccode#1=#1\relax \uccode#2=#2\relax \lccode#2=#1\relax \uccode#1=#2\relax \ignorespaces} \def\definecaseself #1 % lower=upper=self {\lccode#1=#1\relax \uccode#1=#1\relax \ignorespaces} %D Watch the \type {\definecasemap 127 to 255} option! %D Dedicated to Taco there is also: \def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+ {\dostepwiserecurse{#1}{#2}\plusone {\scratchcounter\recurselevel\advance\scratchcounter#3\lccode\recurselevel=\scratchcounter \scratchcounter\recurselevel\advance\scratchcounter#4\uccode\recurselevel=\scratchcounter}% \ignorespaces} %D This can be used like: %D %D \starttyping %D \definecasemaps 128 to 156 lc 32 uc 0 %D \definecasemaps 160 to 188 lc -32 uc 0 %D \definecasemaps 160 to 188 lc -32 uc 0 %D \definecasemaps 192 to 255 lc 32 uc 0 %D \stoptyping %D %D and saves a lot of typing (copying). \def\resetcaserange #1 to #2 {\dostepwiserecurse{#1}{#2}\plusone {\lccode\recurselevel\zerocount \uccode\recurselevel\zerocount}% \ignorespaces} \def\presetcaserange#1#2% could be pre-expanded {\dostepwiserecurse{#1}{#2}\plusone {\lccode\recurselevel=\recurselevel \uccode\recurselevel=\recurselevel}% \ignorespaces} \def\setcasemap #1 #2 #3 % {\settoletterunlessactive{#1}% \lccode #1=#2 \uccode #1=#3 } \def\setcaseswap #1 #2 % {\settoletterunlessactive{#1}% \settoletterunlessactive{#2}% \lccode #1=#1 \uccode #2=#2 \lccode #2=#1 \uccode #1=#2 } \def\setcaseself #1 % {\settoletterunlessactive{#1}% \lccode #1=#1 \uccode #1=#1 } \def\definespacemap #1 #2 % code sfcode {\sfcode#1=#2% \ignorespaces} \def\setspacemap #1 #2 % {\settootherunlessactive{#1}% %\lccode #1=\zerocount %\uccode #1=\zerocount \sfcode #1=#2 } \def\defineuppercasecom#1#2% {\global\casecomtoks\expandafter{\the\casecomtoks\setuppercasecom#1{#2}}% \ignorespaces} \def\definelowercasecom#1#2% {\global\casecomtoks\expandafter{\the\casecomtoks\setlowercasecom#1{#2}}% \ignorespaces} \let\setuppercasecom\gobbletwoarguments \let\setlowercasecom\gobbletwoarguments \def\setcasecom#1#2{\def#1{#2}} \let\enabledmapping\empty % indirect, needed to handle default too \def\enablemapping[#1]% {\edef\charactermapping{@#1@}% \ifx\enabledmapping\charactermapping \else \doifdefined{\@map@\charactermapping} {%\expandafter\showthe\csname\@map@\charactermapping\endcsname\endcsname \the\csname\@map@\charactermapping\endcsname}% % == \the\executeifdefined{\@map@\charactermapping}\emptytoks \edef\enabledmapping{\charactermapping}% \enablelanguagespecifics[\currentlanguage]% new % \edef\enabledmapping{\charactermapping\currentlanguage}% can be comma list \fi \synchronizepatterns} % on behalf of font switching: \def\fastenablemapping#1% {\edef\charactermapping{@#1@}% \ifx\enabledmapping\charactermapping \else \@EA\ifx\csname\@map@\charactermapping\endcsname\relax\else \the\csname\@map@\charactermapping\endcsname \fi % == \the\executeifdefined{\@map@\charactermapping}\emptytoks \let\enabledmapping\charactermapping \enablelanguagespecifics[\currentlanguage]% to faster \fi} %D This macro wil be implemented in \type {lang-ini.tex}. \ifx\enablelanguagespecifics\undefined \def\enablelanguagespecifics[#1]{} \fi %D Further on we have to take some precautions when dealing %D with special characters like~\type{~}, \type{_} %D and~\type{^}, so let us define ourselve some handy macros %D first. \def\protectfontcharacters {\edef\unprotectfontcharacters {\catcode`\noexpand ~=\the\catcode`~\relax \catcode`\noexpand _=\the\catcode`_\relax \catcode`\noexpand ^=\the\catcode`^\relax}% \catcode`~=\@@letter \catcode`_=\@@letter \catcode`^=\@@letter\relax} %D The completeness of the Computer Modern Roman typefaces %D makes clear how incomplete other faces are. To honour 7~bit %D \ASCII, these fonts were designed using only the first 127 %D values of the 256 ones that can be presented by one byte. %D Nowadays 8~bit character codings are more common, mainly %D because they permit us to predefine some composed %D characters, which are needed in most european languages. %D %D Supporting more than the standard \TEX\ encoding vector %D |<|which in itself is far from standard and differs per %D font|>| puts a burden on the fonts mechanism. The \CONTEXT\ %D mechanism is far from complete, but can handle several %D schemes at once. The main problem lays in the accented %D characters and ligatures like~ff, although handling %D ligatures is not the responsibility of this module. %D %D By default, we use \PLAIN\ \TEX's approach of placing %D accents. All other schemes sooner or later give problems %D when we distribute \DVI||files are distributed across %D machines and platforms. Nevertheless, we have to take care %D of different encoding vectors, which tell us where to find %D the characters we need. This means that all kind of %D character placement macro's like \type{\"} and \type{\ae} %D have to be implemented and adapted in a way that suits %D these vectors. %D %D The main difference between different vector is the way %D accents are ordered and/or the availability of prebuilt %D accented characters. Accented characters can for instance be %D called for by sequences like \type{\"e}. Here the \type{\"} %D is defined as: %D %D \starttyping %D \def\"#1{{\accent"7F #1}} %D \stoptyping %D %D This macro places the accent \accent"7F {} on top of an~e %D gives \"e. Some fonts however can have prebuild accents and %D use a more direct approach like %D %D \starttyping %D \def\"#1{\if#1e\char 235\else ... \fi} %D \stoptyping %D %D The latter approach is not used in \CONTEXT, because we %D store relevant combinations of accents and characters in %D individual macros. %D We define character substitutes and commands with definition %D commands like: %D %D \starttyping %D \startcoding[texnansi] %D %D \defineaccent " a 228 %D \defineaccent ^ e 234 %D \defineaccent ' {\dotlessi} 237 %D %D \definecharacter ae 230 %D \definecharacter oe 156 %D %D \definecommand b \texnansiencodedb %D \definecommand c \texnansiencodedc %D %D \stopcoding %D \stoptyping %D %D The last argument of \type{\defineaccent} and %D \type{\definecharacter} tells \TEX\ the position of the %D accented character in the encoding vector. In order to %D complish this, we tag each implementation with the character %D coding identifier. We therefore need two auxiliary variables %D \type{\characterencoding} and \type{\nocharacterencoding}. These %D contain the current and default encoding vectors and both %D default to the \PLAIN\ one. \edef\characterencoding {@\s!default @} \edef\nocharacterencoding {@\s!default @} \edef\charactermapping {@\s!default @} % todo, else \d j == \dj, print file and check \def\accentprefix {}%{*} \def\commandprefix {}%{=} \def\characterprefix{}%{-} %D \macros %D {startcoding, reducetocoding} %D %D Before we can redefine accents and special characters, we %D have to tell \CONTEXT\ what encoding is in force. The next %D command is responsible for doing this and also takes care of %D the definition of the recoding commands. We use the \type %D {\start}||\type {\stop}||commands for definitions and the %D \type {\reduceto}||command for local switching to %D simplified commands. % etex : \ifcsname \def\justhandleaccent#1#2% \empty makes #2={} save % no \unexpanded {\ifundefined{\accentprefix\characterencoding#1\string#2\empty}% #2% \else \csname\accentprefix\characterencoding#1\string#2\empty\endcsname \fi} \def\justhandlecommand#1% % no \unexpanded, otherwise pdfdoc will fail {\ifundefined{\commandprefix\characterencoding#1}% as well as hyph patterns #1% \else \csname\commandprefix\characterencoding#1\endcsname \fi} \def\enableencoding {\dodoubleempty\doenableencoding} \def\doenableencoding[#1][#2]% main fallback {\iffirstargument\edef\characterencoding{@#1@}\fi \edef\nocharacterencoding{@\ifsecondargument#2\else\s!default\fi @}% \synchronizepatterns} \edef\xnocharacterencoding{@\s!default @} \def\fastenableencoding#1% {\edef\characterencoding{@#1@}% \let\nocharacterencoding\xnocharacterencoding} \def\startencoding {\dodoubleempty\dostartencoding} \def\dostartencoding[#1][#2]% encoding regime {%\showmessage\m!encodings1{#1}% \pushmacro\characterencoding \pushmacro\currentregime \pushmacro\dohandleaccent % still needed? \pushmacro\dohandlecommand % still needed? \pushmacro\doautosetregime \let\dohandleaccent\donthandleaccent % still needed? \let\dohandlecommand\donthandlecommand % still needed? %let\definesortkey\savesortkey \edef\characterencoding{@#1@}% \doifelsenothing{#2}% {\let\doautosetregime\gobbletwoarguments} {\def\currentregime{#2}}} \def\stopencoding {\popmacro\doautosetregime \popmacro\dohandlecommand % still needed? \popmacro\dohandleaccent % still needed? \popmacro\currentregime \popmacro\characterencoding} % probably obsolete (hm, not yet) \def\reducetocoding[#1]% use grouped! {\doifsomething{#1} {\let\dohandleaccent \justhandleaccent \let\dohandlecommand\justhandlecommand \enableencoding[#1]% \enablelanguagespecifics[\currentlanguage]}} \let\startcoding \startencoding \def\stopcoding {\stopencoding} \let\enablecoding \enableencoding %D The use of these macros are not limited to font %D definition files, but may also be used when loading %D patterns. %D \macros %D {definesortkey,flushsortkeys,flushsortkey} %D %D Yet another definition concerns sorting of indexes and %D lists. %D %D \starttyping %D \definesortkey {\'e} {e} {a} {\'e} %D \stoptyping %D %D The first argument denotes the string to be treated. The %D second argument is the raw replacement, while the third %D argument determines the sort order given the replacement. %D The last argument is used as entry in the index (a, b, etc). %D %D The keys can be flushed using \type {\flushsortkeys} %D which in turn results in a sequence of calls to \type %D {\flushsortkey}, a macro taking 4~arguments. %D %D This mechanism is currently being tested and subjected to %D changes! Obsolete: \let\definesortkey\gobblefourarguments \let\savesortkey \gobblefourarguments \let\flushsortkeys\relax \let\flushsortkey \relax %D \macros %D {defineaccent, definecharacter, definecommand} %D %D The actual definition of accents, special characters and %D commands is done with the next three commands. \def\defineaccent {\protectfontcharacters \dodefineaccent} \def\dodefineaccent#1 #2 % {\unprotectfontcharacters \dododefineaccent#1 #2 } \def\dododefineaccent#1 #2 #3 % {\setvalue{#1}{\dohandleaccent{#1}}% \doifnumberelse{\string#3} {\setvalue{\accentprefix\characterencoding#1\string#2}{\char#3 }} % space added {\setvalue{\accentprefix\characterencoding#1\string#2}{#3}}} \def\dohandleaccent#1#2% {\ifcsname\accentprefix\characterencoding#1\string#2\empty\endcsname \csname\accentprefix\characterencoding#1\string#2\empty\endcsname \else\ifcsname\accentprefix\nocharacterencoding#1\string#2\empty\endcsname \csname\accentprefix\nocharacterencoding#1\string#2\empty\endcsname \else\ifcsname\accentprefix\characterencoding#1\endcsname \csname\accentprefix\characterencoding#1\endcsname{#2}% \else%\ifcsname\accentprefix\nocharacterencoding#1\endcsname \csname\accentprefix\nocharacterencoding#1\endcsname{#2}% % \else % \donormaltextaccent{#1}{#2}% \fi\fi\fi}%\fi} \def\patternchar#1 {\rawcharacter{#1}} % space is part of character definition ! % \ifx \enablepatterntokens\undefined % \def\handlepatterntoken#1]{\csname#1\endcsname} % \fi % we need to postpone catcode changes, e.g. hr patterns % have \catcode" -> which fails when " is letter \def\pathypsettings {\ifx \enablepatterntokens\undefined \defineactivecharacter [ {\handlepatterntoken}% \else \enablepatterntokens \fi \let\dochar\thechr \lccode16=16 % brrr, extra quote in ec (turkish) \lccode17=17 % brrr, extra quote in ec (turkish) \lccode`\-=`\- \lccode`\'=`\' \lccode`\"=`\" \relax} \def\patterns {\pathypsettings\normalpatterns } \def\hyphenation{\pathypsettings\normalhyphenation} %D Because we don't want to use the second command grouped, we %D (re)define it as follows: \def\hyphenation {\begingroup\def\hyphenation{\normalhyphenation{\the\scratchtoks}\endgroup}% \pathypsettings\afterassignment\hyphenation\scratchtoks=} %D This is not needed for patterns because they are loaded grouped %D anyway and it saves us an assignment. Can go ... no longer %D shared patterns. \def\startpatternloading#1#2#3% % we should use \everypatternloading {\startreadingfile \bgroup % let's get rid of interfering stuff \let\everyjob\scratchtoks \let\message \gobbleoneargument % we want direct characters \let\char\patternchar \doifelsenothing{#2}{\enableencoding[ec]}{\enableencoding[#2]}% \doifelsenothing{#3}{\enablemapping [ec]}{\enablemapping [#3]}% \expanded{\doifinstring{\f!languageprefix}{#1}} {\ifx \enablepatternxml\undefined \else \enablepatternxml \fi}% \let\dohandleaccent\normaldohandleaccent} \def\stoppatternloading {\egroup \stopreadingfile} \def\thechr#1{\char#1 } % just in case \relax interferes \unexpanded\def\numchr#1{\char#1\relax} \unexpanded\def\strchr#1{\csname#1\endcsname} \let\dochar\numchr \def\startdirectcharacters {\pushmacro\dochar \let\dochar\thechr} \def\stopdirectcharacters {\popmacro \dochar} \def\definecharacter#1 #2 % {\ifundefined{#1}\setvalue{#1}{\dohandlecharacter{#1}}\fi \doifnumberelse{\string#2} {\setvalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}% \doautosetregime{#1}{#2}} {\setvalue{\characterprefix\characterencoding\string#1}{#2}}} \def\dohandlecharacter#1% {\csname\characterprefix\ifcsname\characterprefix\characterencoding#1\endcsname \characterencoding\else\nocharacterencoding\fi#1\endcsname} % \def\fallbackpatternchar{x} % makes no sense, duplicate patterns \def\defaultcharacter#1% {\csname\characterprefix\nocharacterencoding\strippedcsname#1\endcsname} %D Instead of numbers, a command may be entered. \def\definecommand#1 #2 % {\setvalue{\string#1}{\dohandlecommand{#1}}% %\redefinecommand #1 % just to be sure \setvalue{\commandprefix\characterencoding\string#1}{#2}} %D Here we see that redefining accents is characters is more %D or less the same as redefining commands. We also could have %D said: %D %D \starttyping %D \def\defineaccent#1 #2 {\definecommand#1\string#2 \char} %D \def\definecharacter#1 {\definecommand#1 \char} %D \stoptyping %D \macros %D {defineaccentcommand} %D %D When needed, one can overload the default positions of the %D accents. The \PLAIN\ \TEX\ defaults are: %D %D \starttyping %D \defineaccentcommand ` 18 %D \defineaccentcommand ' 19 %D \defineaccentcommand v 20 %D \defineaccentcommand u 21 %D \defineaccentcommand = 22 %D \defineaccentcommand ^ 94 %D \defineaccentcommand . 95 %D \defineaccentcommand H 125 % "7D %D \defineaccentcommand ~ 126 % "7E %D \defineaccentcommand " 127 % "7F %D \stoptyping \def\defineaccentcommand {\protectfontcharacters \dodefineaccentcommand} \def\dodefineaccentcommand#1 #2 % \string toegevoegd {\doifnumberelse{\string#2} {\setvalue{\accentprefix\characterencoding\string#1}##1{{\accent#2 ##1}}} {\setvalue{\accentprefix\characterencoding\string#1}##1{{#2##1}}}% \unprotectfontcharacters} %D We don't have to define them for the default \PLAIN\ case. %D Commands may be used instead of character codes. %D \macros %D {redefinecommand} %D %D Redefinition of encoding dependant commands like \type{\b} %D and \type{\c} can be triggered by: %D %D \starttyping %D \redefinecommand b % something math %D \redefinecommand c % something math %D \stoptyping %D %D Handling of characters is easier than handling accents %D because here we don't have to take care of arguments. We %D just call for the right glyph in the right place. %D %D The \type{\next} construction permits handling of commands %D that take arguments. This means that we can use this %D command to redefine accent handling commands too %D (although today the next is not needed any longer in test %D macros). \def\redefinecommand#1 % {% no \unexpanded, else pdfdoc fails \setvalue{\string#1}{\dohandlecommand{#1}}}% \def\dohandlecommand#1% {\csname\commandprefix \ifcsname\commandprefix\characterencoding#1\endcsname \characterencoding \else \nocharacterencoding \fi #1\endcsname} %D \macros %D {currentencoding, currentmapping} %D %D When we show 'm, we don't want to see the protection %D measures. \def\currentencoding{\@EA\dopureencodingname\characterencoding} \def\currentmapping {\@EA\dopureencodingname\charactermapping } \def\dopureencodingname @#1@{#1} \def\pureencodingname#1{\@EA\dopureencodingname#1} %D \macros %D {showaccents, showcharacters, %D showcharacterbounds, showhyphenations} %D %D Encoding is a tricky business. Therefore we provide a %D a few macros that show most of the characters involved. The %D next two tables show the result of \type {\showaccents}. %D %D \placetable %D {The special glyphs in default encoding.} %D {\showaccents} %D %D \placetable %D {The special glyphs in texnansi encoding.} %D {\switchtobodyfont[lbr]\showaccents} %D %D The command %D %D \starttyping %D \showhyphenations{doordefini\"eren} %D \stoptyping %D %D can be used to check the correct loading of hyphenation %D patterns. \fetchruntimecommand \showaccents {\f!encodingprefix\s!run} \fetchruntimecommand \showcharacters {\f!encodingprefix\s!run} \fetchruntimecommand \showcharacterbounds {\f!encodingprefix\s!run} \fetchruntimecommand \showhyphenations {\f!encodingprefix\s!run} \fetchruntimecommand \showmapping {\f!encodingprefix\s!run} %D \macros %D {everyuppercase, EveryUppercase, %D everyuppercase, EveryUppercase} %D %D When we want to uppercase strings of characters, we have to %D take care of those characters that have a special meaning or %D are only accessible by means of macros. The next hack was %D introduced when Tobias Burnus started translating head and %D label texts into spanish and italian. The first application %D of this token register therefore can be found in the module %D that deals with these texts. \newevery \everyuppercase \EveryUppercase \newevery \everylowercase \EveryLowercase %D This magic trick maps takes care of mapping from lower to %D upper case and reverse. \def\reloadmapping{\the\executeifdefined{\@cas@\charactermapping}\emptytoks} \appendtoks\let\setuppercasecom\setcasecom\to\everyuppercase \appendtoks\let\setlowercasecom\setcasecom\to\everylowercase \appendtoks\reloadmapping\to\everyuppercase % slow, will be sped up \appendtoks\reloadmapping\to\everylowercase % slow, will be sped up \newtoks\everyULmap \appendtoks\let\remapcase\remapuppercase\the\everyULmap\to\everyuppercase \appendtoks\let\remapcase\remaplowercase\the\everyULmap\to\everylowercase \let\remapcase\gobbletwoarguments \def\remapuppercase#1#2{\let#2#1} % more efficient: \def\remaplowercase#1#2{\let#1#2} \let\remaplowercase\let \def\defineLCcharacter #1 #2 % {\appendtoks\let\to\everylowercase \@EA\appendtoks\csname#1\endcsname\to\everylowercase \@EA\appendtoks\csname#2\endcsname\to\everylowercase} \def\defineUCcharacter #1 #2 % {\appendtoks\let\to\everyuppercase \@EA\appendtoks\csname#1\endcsname\to\everyuppercase \@EA\appendtoks\csname#2\endcsname\to\everyuppercase} \def\defineULcharacter #1 #2 % {\appendtoks\remapcase\to\everyULmap \@EA\appendtoks\csname#1\endcsname\to\everyULmap \@EA\appendtoks\csname#2\endcsname\to\everyULmap} % slightly faster with \smallcapped's but far more hash and stringspace % % \newif\ifuppercase \appendtoks\uppercasetrue\to\everyuppercase % \newif\iflowercase \appendtoks\lowercasetrue\to\everylowercase % % \def\defineULcharacter #1 #2 % % {\def\!!stringa{@#1}\@EA\letvalue\@EA\!!stringa\csname#1\endcsname % \def\!!stringa{@#2}\@EA\letvalue\@EA\!!stringa\csname#2\endcsname % \setvalue{#1}{\getvalue{@\ifuppercase#2\else#1\fi}}% % \setvalue{#2}{\getvalue{@\iflowercase#1\else#2\fi}}} % 2 = tricky, since expanding \definedfont[lowcasename] ... goes wrong \chardef\uppercasemode\plusthree % 0=ignore 1=normal 2=expand 3=auto \chardef\casecommode \plusone % 0=noexpand 1=expand \def\setcasecom #1#2{\def#1{\ifcase\casecommode\noexpand#1\else#2\fi}} % \def\OEPS{whatever} % % \startmapping[ec] % \defineuppercasecom \oeps {\getvalue{OEPS}} % \stopmapping % % \WORD{xx \oeps} \def\douppercase#1% {\bgroup \let\douppercase\firstofoneargument \the\everyuppercase % currently also checks uppercasemode \let\dochar\rawcharacter \ifcase\uppercasemode #1% \or % No expansion here, otherwise \getvalue problems! Default!!! %\edef\next{#1}% keep this to prevent roll back %\uppercase\expandafter{\next}% keep this to prevent roll back \uppercase{#1}% \or \chardef\casecommode\zerocount \let\docasecom\firstoftwoarguments \edef\ascii{#1}% \edef\ascii{\expandafter\uppercase\expandafter{\ascii}}% needed when in regime \chardef\casecommode\plusone \ascii \else % mode three may trigger setting 2 elsewhere (e.g. regime test) \uppercase{#1}% \fi \egroup} \prependtoksonce \doifnot\currentregime\s!default {\ifnum\uppercasemode=\plusthree \chardef\uppercasemode\plustwo \fi}% \to \everyuppercase %D \macros %D {everysanitize, EverySanitize} %D %D Whenever we are sanitizing strings, like we sometimes do %D when we deal with specials, the next token register can be %D called. \newevery \everysanitize \EverySanitize %D \macros %D {defineuclass,defineudigit,udigit} %D %D The next few macros are experimental and needed for unicoded %D chinese characters. \def\defineuclass #1 #2 #3 % {\setvalue{uc\the\numexpr#2*256+#3\relax}{#1}} \def\defineudigit #1 #2 #3 {\setvalue{\characterencoding uc#1}{\uchar{#2}{#3}}} %D It may look strange, but for the moment, we want the encoding %D to be part of the digit specification. This may change! \unexpanded\def\udigit#1#2{\getvalue{@#1@uc\number#2}} %D \macros %D {uchar, octuchar, hexuchar} \ifx\uchar\undefined \def\uchar#1#2{(\number#1,\number#2)} \fi \def\octuchar#1#2{\uchar{`#1}{`#2}} \def\hexuchar#1#2{\uchar{"#1}{"#2}} %D Basics and fallbacks. \newif\ifignoreaccent \let\textaccent \accent \let\normaltextaccent\textaccent % ** we will explicitly embrace the two arguments, since in definitions % this may not be the case, and we don't want faulty expansions like % "\dobuildtextaccent \char 18 a" but "\dobuildtextaccent {\char 18}{a}" % instead \def\buildmathaccent#1% {\mathaccent#1 } \def\buildtextaccent#1#2% ** {\ifignoreaccent \expandafter\nobuildtextaccent \else \expandafter\dobuildtextaccent \fi{#1}{#2}} \unexpanded\def\nobuildtextaccent#1#2% {#2} \unexpanded\def\dobuildtextaccent#1#2% {{\let\char\normalaccent#1\let\char\normalchar#2}} % some fake ones, name will change into build \unexpanded\def\bottomaccent#1#2#3#4#5% down right slantcorrection accent char {\dontleavehmode % why this align mess \vtop {\forgetall \baselineskip\zeropoint \lineskip#1% \everycr\emptytoks \tabskip\zeropoint \lineskiplimit\zeropoint \setbox0\hbox{#4}% \halign {##\crcr\hbox{#5}\crcr \hidewidth \hskip#2\wd0 \hskip-#3\slantperpoint % in plain 1ex * dimenless value \vbox to .2ex{\box0\vss}\hidewidth \crcr}}} \def\buildtextmacron {\bottomaccent{.25ex}{0}{15}{\textmacron}} \def\buildtextbottomdot{\bottomaccent{.25ex}{0}{5}{\textbottomdot}} \def\buildtextcedilla {\bottomaccent{0ex}{0}{5}{\textcedilla}} \def\buildtextogonek {\bottomaccent{-.1ex}{.5}{0}{\textogonek}} %D A collectors item: \def\buildtextbottomcomma{\bottomaccent{.15ex}{0}{5}{\tx,}} %D Rarely needed but there: \unexpanded\def\topaccent#1#2#3#4#5% down right slantcorrection accent char {\dontleavehmode \bgroup \setbox0\hbox{#4}% \setbox2\hbox{#5}% \hbox to \wd2 \bgroup \hss\copy2\hss \hskip-\wd2 \hss\hskip#2\wd0\hskip-#3\slantperpoint\raise#1\hbox{#4}\hss \egroup \egroup} \def\buildtextgrave{\topaccent{0pt}{0}{15}{\textgrave}} % e.g. % \definecharacter schwa {\hbox{\rotate[rotation=180,location=high]{\hbox{e}}}} % \definecharacter schwagrave {\buildtextgrave\schwa} % math stuff, will change \def\definemathaccent#1 #2% {\setvalue{\string#1}{#2}% \setvalue{normalmathaccent\string#1}{#2}} \def\donormalmathaccent#1% {\getvalue{normalmathaccent\string#1}} %D Some precautions: \ifx\usepdffontresource\undefined \def\usepdffontresource #1 {} % this will be defined elsewhere \fi \def\donthandleaccent #1{\expandafter\string\csname#1\endcsname\space} \def\donthandlecommand #1{\expandafter\string\csname#1\endcsname\space} \def\donthandlecharacter #1{\expandafter\string\csname#1\endcsname\space} \def\stringifyhandleaccent #1{\strchr{#1}} \def\stringifyhandlecommand #1{\strchr{#1}} \def\stringifyhandlecharacter#1{\strchr{#1}} \def\keephandleaccent #1{\expandafter\noexpand\csname#1\endcsname} \def\keephandlecommand #1{\expandafter\noexpand\csname#1\endcsname} \def\keephandlecharacter #1{\expandafter\noexpand\csname#1\endcsname} \def\handleaccent #1{\csname#1\endcsname} \def\handlecommand #1{\csname#1\endcsname} \def\handlecharacter #1{\csname#1\endcsname} \def\dontexpandencoding {\let\dohandleaccent \donthandleaccent \let\dohandlecommand \donthandlecommand \let\dohandlecharacter\donthandlecharacter} \def\keepencodedtokens {\let\dohandleaccent \keephandleaccent \let\dohandlecommand \keephandlecommand \let\dohandlecharacter\keephandlecharacter} \def\literateencodedtokens {% \let\dohandleaccent \keephandleaccent % \let\dohandlecommand \keephandlecommand \let\dohandlecharacter\keephandlecharacter} \def\stringifyencodedtokens {% \let\dohandleaccent \stringifyhandleaccent % \let\dohandlecommand \stringifyhandlecommand \let\dohandlecharacter\stringifyhandlecharacter} \unexpanded\def\uhandleaccent #1{\csname#1\endcsname} \unexpanded\def\uhandlecommand #1{\csname#1\endcsname} \unexpanded\def\uhandlecharacter#1{\csname#1\endcsname} \def\dontexpandencodedtokens {\def\dohandleaccent {\uhandleaccent}% \def\dohandlecommand {\uhandlecommand}% \def\dohandlecharacter{\uhandlecharacter}} % no longer: \def\convertencodedtokens{\dontexpandencoding} but: \def\convertencodedtokens{\stringifyencodedtokens} % test case: % % \enableregime[cp1250] % \mainlanguage[cz] % % \starttext % % \title{Ϭuޯu餭 kon졺p % \placelist[chapter][criterium=all] % % \startbuffer % % Ϭuޯu餭 kon졺p󛱴itle> % </chapter> % \stopbuffer % % \defineXMLenvironment % [chapter] % {\defineXMLsave[title]} % {\expanded{\chapter{\XMLflush{title}}}} % \processXMLbuffer % % \setuphead[chapter][expansion=yes] % \defineXMLenvironment % [chapter] % {\defineXMLsave[title]} % {\chapter{\XMLflush{title}}} % \processXMLbuffer % % \stoptext %D Still valid? To be checked: \def\doignoreaccent #1#2{\string#1\string#2}% \def\doignorecommand #1{\string#1} \def\doignorecharacter#1{\string#1} \def\ignoreencoding {\let\dohandleaccent \doignoreaccent \let\dohandlecommand \doignorecommand \let\dohandlecharacter\doignorecharacter} \appendtoks \ignoreencoding \to \everycleanupfeatures \appendtoks \keepencodedtokens \to \everysafeexpanded %D Now we will not redefine any more, so: \let\normaldohandleaccent \dohandleaccent \let\normaldohandlecharacter\dohandlecharacter \definecommand ` {\buildtextaccent\textgrave} \definecommand ' {\buildtextaccent\textacute} \definecommand r {\buildtextaccent\textring} \definecommand v {\buildtextaccent\textcaron} \definecommand u {\buildtextaccent\textbreve} \definecommand = {\buildtextaccent\textmacron} \definecommand ^ {\buildtextaccent\textcircumflex} \definecommand . {\buildtextaccent\textdotaccent} \definecommand H {\buildtextaccent\texthungarumlaut} \definecommand ~ {\buildtextaccent\texttilde} \definecommand " {\buildtextaccent\textdiaeresis} \definecommand c {\buildtextcedilla} \definecommand b {\buildtextmacron} \definecommand d {\buildtextbottomdot} \definecommand k {\buildtextogonek} \definemathaccent acute {\buildmathaccent\mathacute} \definemathaccent grave {\buildmathaccent\mathgrave} \definemathaccent ddot {\buildmathaccent\mathddot} \definemathaccent tilde {\buildmathaccent\mathtilde} \definemathaccent bar {\buildmathaccent\mathbar} \definemathaccent breve {\buildmathaccent\mathbreve} \definemathaccent check {\buildmathaccent\mathcheck} \definemathaccent hat {\buildmathaccent\mathhat} \definemathaccent vec {\buildmathaccent\mathvec} \definemathaccent dot {\buildmathaccent\mathdot} \definemathaccent widetilde {\buildmathaccent\mathwidetilde} \definemathaccent widehat {\buildmathaccent\mathwidehat} \useencoding[def] % defaults (partly simplified) \useencoding[acc] % accent commands \useencoding[raw] % simplified (incomplete) \useencoding[com] % a few commands \useencoding[cas] % case mapping, not needed in mkiv \useencoding[mis] % a few commands %D We preload several encodings: \ifnum\texengine=\xetexengine \setupencoding[\s!default=\s!default] \else \useencoding[ans,il2,ec,tbo,pdf,pol,qx,t5,l7x,cyr,agr] % pol and il2 will go away, not needed in mkiv, uc removed \useencoding[032,033,037] % fallbacks for some unicode chars \setupencoding[\s!default=ec] % was: [\s!default=\s!default] \fi \protect \endinput ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-tbo.mkii�����������������������������0000644�0001750�0001750�00000016323�14536300610�024666� 0����������������������������������������������������������������������������������������������������ustar �hille���������������������������hille������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%D \module %D [ file=enco-tbo, %D version=2000.05.07, % 2001.8.4, %D title=\CONTEXT\ Encoding Macros, %D subtitle=TeXBaseOne Encoding, %D author={Patrick Gundlach, Hans Hagen}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \startmapping[8r] \resetcaserange 128 to 255 \definecasemap 228 228 196 \definecasemap 196 228 196 \definecasemap 235 235 203 \definecasemap 203 235 203 \definecasemap 239 239 207 \definecasemap 207 239 207 \definecasemap 246 246 214 \definecasemap 214 246 214 \definecasemap 252 252 220 \definecasemap 220 252 220 \definecasemap 255 255 159 \definecasemap 159 255 159 \definecasemap 225 225 193 \definecasemap 193 225 193 \definecasemap 233 233 201 \definecasemap 201 233 201 \definecasemap 237 237 205 \definecasemap 205 237 205 \definecasemap 243 243 211 \definecasemap 211 243 211 \definecasemap 250 250 218 \definecasemap 218 250 218 \definecasemap 253 253 221 \definecasemap 221 253 221 \definecasemap 224 224 192 \definecasemap 192 224 192 \definecasemap 232 232 200 \definecasemap 200 232 200 \definecasemap 236 236 204 \definecasemap 204 236 204 \definecasemap 242 242 210 \definecasemap 210 242 210 \definecasemap 249 249 217 \definecasemap 217 249 217 \definecasemap 226 226 194 \definecasemap 194 226 194 \definecasemap 234 234 202 \definecasemap 202 234 202 \definecasemap 238 238 206 \definecasemap 206 238 206 \definecasemap 244 244 212 \definecasemap 212 244 212 \definecasemap 251 251 219 \definecasemap 219 251 219 \definecasemap 227 227 195 \definecasemap 195 227 195 \definecasemap 241 241 209 \definecasemap 209 241 209 \definecasemap 245 245 213 \definecasemap 213 245 213 \stopmapping \startencoding[8r] \definecharacter textacute 180 \definecharacter textbreve 11 \definecharacter textcaron 16 \definecharacter textcedilla 184 \definecharacter textcircumflex 136 \definecharacter textdiaeresis 168 \definecharacter textdotaccent 1 \definecharacter textgrave 30 \definecharacter texthungarumlaut 5 \definecharacter textmacron 175 \definecharacter textogonek 8 \definecharacter textring 9 \definecharacter texttilde 152 \definecharacter dotlessi 17 %definecharacter dotlessj 18 \definecharacter endash 150 \definecharacter emdash 151 \definecharacter oeligature 156 \definecharacter OEligature 140 \definecharacter aeligature 230 \definecharacter AEligature 198 \definecharacter ssharp 223 \definecharacter thorn 254 \definecharacter Thorn 222 \definecharacter exclamdown 161 \definecharacter questiondown 191 \definecharacter copyright 169 \definecharacter registered 174 \definecharacter trademark 153 \definecharacter sectionmark 167 \definecharacter paragraphmark 182 \definecharacter onequarter 188 \definecharacter onehalf 189 \definecharacter threequarter 190 \definecharacter onesuperior 185 \definecharacter twosuperior 178 \definecharacter threesuperior 179 \definecharacter textcent 162 \definecharacter textcurrency 164 \definecharacter texteuro 128 \definecharacter textflorin 131 \definecharacter textsterling 163 \definecharacter textyen 165 \definecharacter percent 37 \definecharacter perthousand 137 \definecharacter periodcentered 183 \definecharacter softhyphen 173 \definecharacter textasciicircum 94 \definecharacter textasciitilde 126 \definecharacter textslash 47 \definecharacter textbackslash 92 \definecharacter textbraceleft 123 \definecharacter textbraceright 125 \definecharacter textunderscore 95 \definecharacter textbrokenbar 166 \definecharacter textbullet 149 \definecharacter textdag 134 \definecharacter textddag 135 \definecharacter textdegree 176 \definecharacter textdiv 247 \definecharacter textellipsis 133 \definecharacter textfraction 4 \definecharacter textlognot 172 \definecharacter textminus 12 \definecharacter textmu 181 \definecharacter textmultiply 215 \definecharacter textpm 177 \definecharacter quotedbl 34 \definecharacter quotedblbase 132 \definecharacter quotedblleft 147 \definecharacter quotedblright 148 \definecharacter quotesingle 31 \definecharacter quotesinglebase 130 \definecharacter quoteleft 96 \definecharacter quoteright 39 \definecharacter guilsingleleft 139 \definecharacter guilsingleright 155 \definecharacter leftguillemot 171 \definecharacter rightguillemot 187 \definecharacter aacute 225 \definecharacter Aacute 193 \definecharacter eacute 233 \definecharacter Eacute 201 \definecharacter iacute 237 \definecharacter Iacute 205 \definecharacter oacute 243 \definecharacter Oacute 211 \definecharacter uacute 250 \definecharacter Uacute 218 \definecharacter Yacute 221 \definecharacter yacute 253 \definecharacter scaron 154 \definecharacter Scaron 138 %definecharacter Zcaron 141 \definecharacter ccedilla 231 \definecharacter Ccedilla 199 \definecharacter acircumflex 226 \definecharacter Acircumflex 194 \definecharacter ecircumflex 234 \definecharacter Ecircumflex 202 \definecharacter icircumflex 238 \definecharacter Icircumflex 206 \definecharacter ocircumflex 244 \definecharacter Ocircumflex 212 \definecharacter ucircumflex 251 \definecharacter Ucircumflex 219 \definecharacter adiaeresis 228 \definecharacter Adiaeresis 196 \definecharacter ediaeresis 235 \definecharacter Ediaeresis 203 \definecharacter idiaeresis 239 \definecharacter Idiaeresis 207 \definecharacter odiaeresis 246 \definecharacter Odiaeresis 214 \definecharacter udiaeresis 252 \definecharacter Udiaeresis 220 \definecharacter ydiaeresis 255 \definecharacter Ydiaeresis 159 \definecharacter agrave 224 \definecharacter Agrave 192 \definecharacter egrave 232 \definecharacter Egrave 200 \definecharacter igrave 236 \definecharacter Igrave 204 \definecharacter ograve 242 \definecharacter Ograve 210 \definecharacter ugrave 249 \definecharacter Ugrave 217 \definecharacter aring 229 \definecharacter Aring 197 \definecharacter lstroke 7 \definecharacter Lstroke 6 \definecharacter ostroke 248 \definecharacter Ostroke 216 \definecharacter atilde 227 \definecharacter Atilde 195 \definecharacter ntilde 241 \definecharacter Ntilde 209 \definecharacter otilde 245 \definecharacter Otilde 213 \stopencoding \endinput �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-ext.mkii�����������������������������0000644�0001750�0001750�00000030202�14536300610�024711� 0����������������������������������������������������������������������������������������������������ustar �hille���������������������������hille������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%D \module %D [ file=xtag-ext, %D version=2001.03.21, %D title=\CONTEXT\ XML Macros, %D subtitle=Extra Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / Extras} \unprotect %D \macros %D {startXMLmapping} %D %D You can define macros within a namespace, so that they %D will not conflict (don't confuse this with \XML\ %D namespaces.) %D %D \starttyping %D \startXMLmapping [tag] | [-] [tag] | [+] [tag] %D definitions %D \stopXMLmapping %D \stoptyping %D %D When a \type {[+]} is specified, the mappings will %D nest. \def\resetXMLmapping {\let\@@XMLelement\normal@@XMLelement \let\@@XMLmapping\empty} \resetXMLmapping \def\startXMLmapping {\dodoubleempty\dostartXMLmapping} % \def\dostartXMLmapping[#1][#2]% sneller maken % {\pushmacro\@@XMLelement % \pushmacro\@@XMLmapping % \ifsecondargument % \doifelse{#1}{-} % {\donostartXMLmapping{#2}} % {\doifelse{#1}{+} % {\dodostartXMLmapping{#2}} % {\donostartXMLmapping{#2}}}% % \else % \donostartXMLmapping{#1}% % \fi % \unprotect} \def\dostartXMLmapping[#1#2][#3]% {\pushmacro\@@XMLelement \pushmacro\@@XMLmapping \ifsecondargument \if\noexpand#1-% \@EA\donostartXMLmapping \else\if\noexpand#1+% \@EAEAEA\dodostartXMLmapping \else \@EAEAEA\donostartXMLmapping \fi\fi{#3}% \else \donostartXMLmapping{#1#2}% \fi \unprotect} \def\donostartXMLmapping#1% {\let\@@XMLprevelement\@@XMLelement \edef\@@XMLmapping{#1}% \edef\@@XMLelement{\normal@@XMLelement+#1}} \def\dodostartXMLmapping#1% {\let\@@XMLprevelement\@@XMLelement \edef\@@XMLmapping{\@@XMLmapping+#1}% \edef\@@XMLelement{\@@XMLelement+#1}} \def\stopXMLmapping {\protect \popmacro\@@XMLmapping \popmacro\@@XMLelement} %D \macros %D {startXMLmappinggroup} %D %D Imagine something: %D %D \starttyping %D \defineXMLenvironment [something] %D {\startXMLmapping[whatever]} %D {\stopXMLmapping} %D \stoptyping %D %D Here the \type {\stopXMLmapping} will never be reached %D because we are in a mapping. Therefore we need: \def\startXMLmappinggroup {\dodoubleempty\dostartXMLmappinggroup} \def\dostartXMLmappinggroup[#1][#2]% {\bgroup \letcscsname\savedXMLmeaning\csname\@@XMLelement:/\currentXMLelement\endcsname \dostartXMLmapping[#1][#2]% do ! else wrong ! \letcsnamecs\csname\@@XMLelement:/\currentXMLelement\endcsname\savedXMLmeaning} \def\stopXMLmappinggroup {\stopXMLmapping \egroup} %D Context Directives: \def\@@CTXML{@@CTXML} \def\defineXMLdirective {\dodoubleempty\dodefineXMLdirective} \long\def\dodefineXMLdirective[#1][#2]#3% {\defineXMLprocessor[context-#1-directive]{\dohandleXMLdirective{#1}{#3}}% \ifsecondargument \long\setvalue{\@@CTXML-#1-#2}{#3}% \fi} \def\dohandleXMLdirective#1#2#3% {\dodohandleXMLdirective#3 @ @ @\end{#1}{#2}} %\def\dodohandleXMLdirective#1 #2 #3 #4\end#5#6% % {\doifdefinedelse{\@@CTXML-#5-#1} % {\getvalue{\@@CTXML-#5-#1}[#2=#3]} % {#6[#1][#2=#3]}} \def\dodohandleXMLdirective#1 #2 #3 #4\end#5#6% {\executeifdefined{\@@CTXML-#5-#1}{#6[#1]}[#2=#3]} % \defineXMLdirective [mathml] \setupMMLappearance % [#1][#2=#3] % \defineXMLdirective [flowchart] [shapes] \setupFLOWshapes % [#2=#3] % \defineXMLdirective [flowchart] [lines] \setupFLOWlines % [#2=#3] \defineXMLprocessor [context-begin-group] {\bgroup\gobbleoneargument} \defineXMLprocessor [context-end-group] {\egroup\gobbleoneargument} % \def\XMLnspart#1:#2\empty{#1} % call ...:\empty\empty % \def\XMLidpart#1:#2#3\empty{\ifx#2\empty#1\else\XMLidpart#2#3\empty\empty\fi} % trial macros (used in setupx), to be sped up ! \bgroup \catcode`\<=\activecatcode \gdef\saveXMLasdata#1#2% name raw data {\dodoglobal\setevalue{\@@XMLsave:#1}{#2}} % \edef! \gdef\saveXMLdata#1#2% name data-name ; definitely no \edef {\dodoglobal\copycsname\@@XMLsave:#1\endcsname\csname\@@XMLdata:#2\endcsname} % \gdef\saveXMLdatainelement#1#2#3% name element data % {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion % {<#2 \currentXMLarguments>\XMLflush{#3}</#2>}} % % \gdef\saveXMLdatastructure#1#2#3#4#5#6% name element args before data after % {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion % {<#2 #3 \currentXMLarguments>#4\XMLflush{#5}#6</#2>}} % % better (no expansion): \newtoks\XMLdatatoks \gdef\saveXMLdatainelement#1#2#3% name element data {\XMLdatatoks\@EAEAEA{\csname\@@XMLdata:#3\endcsname}% no check \dodoglobal\setevalue{\@@XMLsave:#1}{<#2 \currentXMLarguments>\the\XMLdatatoks</#2>}} \gdef\saveXMLdatastructure#1#2#3#4#5#6% name element args before data after {\XMLdatatoks\@EAEAEA{\csname\@@XMLdata:#5\endcsname}% no check \dodoglobal\setevalue{\@@XMLsave:#1}{<#2 #3 \currentXMLarguments>#4\the\XMLdatatoks#6</#2>}} \gdef\gsaveXMLasdata {\doglobal\saveXMLasdata} \gdef\gsaveXMLdata {\doglobal\saveXMLdata} \gdef\gsaveXMLdatainelement{\doglobal\saveXMLdatainelement} \gdef\gsaveXMLdatastructure{\doglobal\saveXMLdatastructure} \gdef\doifelseXMLelement#1% {\doifdefinedelse{\@@XMLsave:#1}} \gdef\doifelseXMLelementcontent#1% {\ifcsname\@@XMLsave:#1\endcsname \bgroup \@EA\defconvertedcommand\@EA\ascii\csname\@@XMLsave:#1\endcsname \setbox\scratchbox\hbox{\ignorespaces\ascii\unskip\unskip\unskip}% \ifdim\wd\scratchbox>\zeropoint \egroup\@EAEAEA\firstoftwoarguments \else \egroup\@EAEAEA\secondoftwoarguments \fi \else \@EA\secondoftwoarguments \fi} \gdef\doifelseXMLelementequals#1#2% {\ifcsname\@@XMLsave:#1\endcsname \bgroup \@EA\defconvertedcommand\@EA\asciia\csname\@@XMLsave:#1\endcsname \defconvertedargument\asciib{#2}% \ifx\asciia\asciib \egroup\@EAEAEA\firstoftwoarguments \else \egroup\@EAEAEA\secondoftwoarguments \fi \else \@EA\secondoftwoarguments \fi} \gdef\doifXMLtextelse#1% new {\doiftextelse{\simplifyXMLelements#1}} \gdef\doifXMLtext#1#2% new {\doiftextelse{\simplifyXMLelements#1}{#2}\donothing} \gdef\convertXMLelement#1\to#2% {\ifcsname\@@XMLsave:#1\endcsname \@EA\defconvertedcommand\@EA#2\csname\@@XMLsave:#1\endcsname \else \let#2\ascii \fi} \gdef\flushXMLelement#1% {\csname \@@XMLsave:\ifcsname\@@XMLsave:#1\endcsname#1\else\@@XMLsave\fi \endcsname} \gdef\defXMLelement#1#2% {\@EA\let\@EA#1\csname \@@XMLsave:\ifcsname\@@XMLsave:#2\endcsname#2\else\@@XMLsave\fi \endcsname} \letgvalueempty{\@@XMLsave:\@@XMLsave} \gdef\showXMLelement#1% {\showvalue{\@@XMLsave:#1}} \gdef\eraseXMLelement#1% {\dodoglobal\letbeundefined{\@@XMLsave:#1}} \gdef\geraseXMLelement {\doglobal\eraseXMLelement} \gdef\processXMLelement#1% {\bgroup \enableXMLelements \getvalue{\@@XMLsave:#1}% \egroup} \gdef\texXMLelement#1% {\begingroup % \setnormalcatcodes \disableXML \scantokens\@EA\@EA\@EA{\csname\@@XMLsave:#1\endcsname}% \endgroup} \gdef\reduceXMLescapeentities {\setXMLentity{amp}{\string&}% \setXMLentity{lt}{\string<}% \setXMLentity{gt}{\string>}% \setXMLentity{quot}{\string'}% \setXMLentity{dquot}{\string"}} \gdef\reduceXMLelement#1\to#2% {\ifcsname\@@XMLsave:#1\endcsname \bgroup \reduceXMLescapetokens \reduceXMLescapeentities \expanded{\egroup\noexpand\def\noexpand#2{\csname\@@XMLsave:#1\endcsname}}% \else \let#2\empty \fi} \egroup % \defineXMLcommand % [whatever] % [test=unknown] % {\XMLop{test}} % % \startXMLdata % <whatever test="{\bf test}"/> % \stopXMLdata % % \defineXMLcommand % [whatever] % [test=unknown] % {\defXMLtex\SomethingTex{\XMLop{test}}% % \SomethingTex} % % \startXMLdata % <whatever test="{\bf test}"/> % \stopXMLdata \def\defXMLtex#1#2% the appended space will go away when {\begingroup % \scantokens is fixed \disableXML \everyeof{\noexpand}% br's hack \edef\ascii{#2}% \edef\ascii{\scantokens\expandafter{\ascii}}% space appended \expandafter\endgroup\expandafter\def\expandafter#1\expandafter{\ascii}} \def\potentialXMLentity#1% {\doifXMLentityelse{#1}{\getXMLentity{#1}}{#1}} % \def\XMLnoschema{standalone='yes'} \def\writtenXMLelement #1#2{<#1>#2</#1>} \def\writtenXMLstart #1{<#1>} \def\writtenXMLend #1{</#1>} \def\writtenXMLempty #1{<#1/>} \def\writtenXMLelementcs#1#2{\ifx#2\empty\else<#1>#2</#1>\fi} \def\writtenXMLemptycs #1#2{\ifx#2\empty<#1/>\else<#1>#2</#1>\fi} %D This one can be used to get sound tuo files. %D %D \starttyping %D \setuphead[chapter][expansion=xml] %D % \setuplist[chapter][textcommand=\enableXML] %D %D \enableregime[utf] \autoXMLentitiestrue %D \stoptyping %D %D with: %D %D \starttyping %D <chapter>test ë test &ediaeresis; test <e>ediaeresis</e></chapter> %D \stoptyping %D %D This gives: %D %D \starttyping %D test ë test</b> <e>ediaeresis</e> test <e>ediaeresis</e> %D \stoptyping \def\XMLprocessingparameter#1% {\csname\??xp#1\endcsname} \appendtoks \defineXMLargument[\XMLprocessingparameter\c!escape]\getXMLentity \to \aftersetupXMLprocessing \setupXMLprocessing [\c!escape=e] \bgroup \catcode`\<=\activecatcode \long\gdef\defexpandedxmlargument#1#2#3% {\begingroup \let\uppercase\firstofoneargument \def\getXMLhexcharacter##1{\numbertoutp{"##1}}% maps to private if needed \def\getXMLdeccharacter##1{\numbertoutp {##1}}% maps to private if needed \def\getXMLentity##1{<e>##1</e>}% \def<{\noexpand<}% \ifcase\xmlexpandmode \or % 1 = default \or % 2 = keep utf \keeputfcharacters % new, needed for chinese and such \fi \let\uchar\relax \let\unicodechar\relax \xdef\@@globalexpanded{#3}% \endgroup #1#2\@@globalexpanded} \egroup % test.xml: <test>test % test</test> % % \starttext % \enableregime[utf] \chardef\XMLtokensreduction=0 % \setuphead[chapter][expansion=xml] % \defineXMLargument[test]{\chapter} % \placelist[chapter][criterium=text] % \processXMLfilegrouped{test.xml} % \stoptext % obsolete in mkiv \chardef\xmlexpandmode\plusone \def\defexpandedxmlargumentcmd {\chardef\xmlexpandmode\plusone\defexpandedxmlargument\defconvertedcommand} \def\defexpandedxmlargumentutf {\chardef\xmlexpandmode\plustwo\defexpandedxmlargument\defconvertedcommand} \def\gdefexpandedxmlargumentcmd{\chardef\xmlexpandmode\plusone\defexpandedxmlargument\gdefconvertedcommand} \def\gdefexpandedxmlargumentutf{\chardef\xmlexpandmode\plustwo\defexpandedxmlargument\gdefconvertedcommand} \installexpander {xml} \defexpandedxmlargumentcmd \gdefexpandedxmlargumentcmd \installexpander {xml:cmd} \defexpandedxmlargumentcmd \gdefexpandedxmlargumentcmd \installexpander {xml:utf} \defexpandedxmlargumentutf \gdefexpandedxmlargumentutf \def\XMLtexmath#1{\begingroup\setnormalcatcodes\scantokens{\mathematics{#1}\ignorespaces}\endgroup} % \defineXMLargument[tm]{\XMLtexmath} % % \startbuffer[test] % Sometimes it makes sense to use simple math, as in: <tm>e=mc^2</tm>. % \stopbuffer % % \processXMLbuffer[test] %D Undocumented ... \def\defineXMLstore {\doquadrupleargument\dodefineXMLstore[\saveXMLasdata]} \def\defineXMLgstore{\doquadrupleargument\dodefineXMLstore[\gsaveXMLasdata]} \def\dodefineXMLstore[#1][#2][#3][#4]% element attribute prefix % will become faster {\defineXMLargument[#2][#3=\s!dummy]{#1{#4:\XMLop{#3}}}} \def\countXMLchildren[#1]#2% {\startnointerference \doglobal\newcounter\nofXMLchildren \defineXMLargument[#1]{\doglobal\increment\nofXMLchildren}% \startXMLignore #2% \stopXMLignore \stopnointerference} % Typical \MKII. We will not explore this route any further as in \MKIV\ we % have better ways. \prependtoks \setnormalcatcodes \to \everyTEXinputmode \appendtoks \processingXMLfalse \to \everyTEXinputmode \let\normalenableXML\enableXML % some day we move the normal \enableXML into the toks \prependtoks \normalenableXML \to \everyXMLinputmode \appendtoks \processingXMLtrue \to \everyXMLinputmode \unexpanded\def\enableXML {\setinputmode[XML]} % \enableXML is used in edef's and marks \unexpanded\def\disableXML{\setinputmode[TEX]} \protect \endinput ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������context-modules-20240428/texmf-dist/tex/context/base/mkii/sort-ini.mkii�����������������������������0000644�0001750�0001750�00000012573�14536300610�024727� 0����������������������������������������������������������������������������������������������������ustar �hille���������������������������hille������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%D \module %D [ file=sort-ini, %D version=2005.08.08, %D title=\CONTEXT\ Sorting Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % todo: autokeyexpansion => igv utf: \setupregister[index][keyexpansion=yes] %D This module replaces existing sort key handling and is meant to be %D used with the new texutil functionality. This module defines a few %D auxiliary macros. \writestatus{loading}{ConTeXt Sorting Macros / Initialization} %D This module replaces existing sort key handling and is meant to be %D used with the new texutil functionality. This module defines a few %D auxiliary macros. \ifx\exportsortaction\undefined \else \endinput \fi %D The sorting method is largely bases on the one used in the old version %D of texutil but i've changed the interface a bit. It all boils down to %D a bunch of substitutions. The reimplementation makes it easier to extend %D the rules. Currently we have multipass substitution and onepass sorting, %D but we may change this some day. Since there is a plugin mechanism, using %D an external sorter is also possible. % test file: % % \mainlanguage[sl] \readfile{sort-ini}{}{} % % \starttext % test \index {aa1} test \index {ab1} test \index {aa2} % test \index {ab2} test \index {aa10} test \index {aa8} % test \index {aa9} test \index {aa11} test \index {aa10} % test \index {cccc} test \index {\ccaron ccc} test \index {\cacute ccc} % test \index {caaa} test \index {\ccaron aaa} test \index {\cacute aaa} % \placeindex % \stoptext % definitions: % % \exportsortshortcut{\\\'\\i}{iacute} % \exportsortshortcut{\\\'i} {iacute} % \exportsortshortcut{\\\"e} {ediaeresis} % \exportsortshortcut{\\\'o} {oacute} % % \exportsortexpansion{aeligature}{ae} % \exportsortexpansion{ijligature}{y} % \exportsortexpansion{oacute} {oz} % \exportsortexpansion{eacute} {ezzz} % or e3 % \exportsortexpansion{egrave} {ezz} % or e2 % \exportsortexpansion{ediaeresis}{ez} % or e1 % \exportsortexpansion{adiaeresis}{az} % \exportsortreduction{ch} {c} % \exportsortreduction{ij} {y} % % \exportsortexpansion{ccaron} {cz} % \exportsortexpansion{cacute} {czz} % \exportsortexpansion{dstroke} {dz} % \exportsortexpansion{scaron} {sz} % \exportsortexpansion{zcaron} {zz} % % \exportsortreduction{ch}{c} % \exportsortreduction{ij}{y} % % \exportsortexpansion {ccaron} {c+1} % \exportsortdivision {c+1} {ccaron} % == % \exportsortrule {ccaron} {c+1} \unprotect \def\savesortkeys {\ifproductionrun \the\everysavesortkeys \global\everysavesortkeys\emptytoks \fi} \appendtoks \savesortkeys \to \everyshipout \let\currentexportclass\empty \def\exportsortaction#1#2#3% {\defconvertedargument\asciia{#2}% \defconvertedargument\asciib{#3}% \immediatewriteutility{x #1 {\currentexportclass} {\asciia} {\asciib}}} \def\exportsortshortcut {\exportsortaction s} \def\exportsortexpansion{\exportsortaction e} \def\exportsortreduction{\exportsortaction r} \def\exportsortdivision {\exportsortaction d} \def\exportsortrule#1#2% {\exportsortexpansion{#1}{#2}% \exportsortdivision {#2}{#1}} \def\exportutfsortexpansion#1#2#3% {\bgroup \edef\utfsorta{\string\unknownchar}% \dostepwiserecurse{#2}{#3}\plusone {\edef\utfsortb{\@EA\string\csname\doutfunihash{#1}{\recurselevel}\endcsname}% \ifx\utfsortb\utfsorta \else \edef\utfsortc{\numbertoutf{\numexpr#1*256+\recurselevel\relax}}% \expanded{\exportsortshortcut{\utfsortc}{\utfsortb\space}}% space is really needed \fi}% \egroup} \def\savesortdefinitions {\bgroup \doifelse \currentregime {utf} {\exportutfsortexpansion{0}{128}{255}% \exportutfsortexpansion{1}{0}{255}} {\def\defineactivecharacter##1 ##2% mkii code ! {\doifnumberelse{##1} {\expanded{\exportsortshortcut{\rawcharacter{##1}}}{##2}}% {\expanded{\exportsortshortcut{\rawcharacter{\number`##1}}}{##2}}}% \doifelsenothing\currentregime {\doifnot\characterencoding\nocharacterencoding % to be sure, autoregime {\dowalkregime\characterencoding}}% {\dowalkregime\characterencoding}}% \egroup \startnointerference \setcatcodetable\ctxcatcodes \readsysfile{\f!sortprefix def.mkii}\donothing\donothing % default \stopnointerference \global\let\savesortdefinitions\relax} \def\savesortlanguage#1% language specifics {\doifsomething{#1} {\doifundefined{\f!sortprefix::#1}% {\startnointerference \global\letvalue{\f!sortprefix::#1}\empty \def\currentexportclass{#1}% \enablemode[sortorder-#1]% \setcatcodetable\ctxcatcodes \readsysfile{\f!sortprefix lan.mkii}\donothing\donothing \stopnointerference}}} \prependtoks \savesortdefinitions \to \everysavesortkeys % \defineregister[one] % \defineregister[two] \setupregister[two][language=cz] % % \starttext % test \one{one} test \one{two} test \one {\aacute} test \one{alpha} test \one{chow} % test \two{one} test \two{two} test \two {\aacute} test \two{alpha} test \two{chow} % \blank[3*big] \placeregister[one] % \blank[3*big] \placeregister[two] % \stoptext \protect \endinput �������������������������������������������������������������������������������������������������������������������������������������context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-000.mkii�����������������������������0000644�0001750�0001750�00000007131�14536300610�024410� 0����������������������������������������������������������������������������������������������������ustar �hille���������������������������hille������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%D \module %D [ file=unic-000, %D version=2002.12.03, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 0, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect % \startunicodevector 0 % \ifcase\numexpr(#1-159) % \@@unknownchar\or % \@@unknownchar\or % exclamdown\or % textcent\or % textsterling\or % textcurrency\or % ydiaeresis\else % \@@unknownchar % \fi % \stopunicodevector % % 20\% faster: \startunicodevector 0 \expandafter\strippedcsname \ifcase\numexpr#1-159\relax \unknownchar \or \nonbreakablespace \or \exclamdown \or \textcent \or \textsterling \or \textcurrency \or \textyen \or \textbrokenbar \or \sectionmark \or \textdiaeresis \or \copyright \or \ordfeminine \or % FEMININE ORDINAL INDICATOR \leftguillemot \or % LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \textlognot \or \softhyphen \or \registered \or \textmacron \or \textdegree \or \textpm \or \twosuperior \or \threesuperior \or \textacute \or \textmu \or % MICRO SIGN \paragraphmark \or % PILCROW SIGN \periodcentered \or \textcedilla \or \onesuperior \or \ordmasculine \or % MASCULINE ORDINAL INDICATOR \rightguillemot \or % RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \onequarter \or \onehalf \or \threequarter \or \questiondown \or \Agrave \or \Aacute \or \Acircumflex \or \Atilde \or \Adiaeresis \or \Aring \or \AEligature \or \Ccedilla \or \Egrave \or \Eacute \or \Ecircumflex \or \Ediaeresis \or \Igrave \or \Iacute \or \Icircumflex \or \Idiaeresis \or \Eth \or % \Eth \or \Ntilde \or \Ograve \or \Oacute \or \Ocircumflex \or \Otilde \or \Odiaeresis \or \textmultiply \or \Ostroke \or \Ugrave \or \Uacute \or \Ucircumflex \or \Udiaeresis \or \Yacute \or \Thorn \or \ssharp \or \agrave \or \aacute \or \acircumflex \or \atilde \or \adiaeresis \or \aring \or \aeligature \or \ccedilla \or \egrave \or \eacute \or \ecircumflex \or \ediaeresis \or \igrave \or \iacute \or \icircumflex \or \idiaeresis \or \eth \or % \eth \or \ntilde \or \ograve \or \oacute \or \ocircumflex \or \otilde \or \odiaeresis \or \textdiv \or \ostroke \or \ugrave \or \uacute \or \ucircumflex \or \udiaeresis \or \yacute \or \thorn \or \ydiaeresis \else \unknownchar \fi \stopunicodevector \protect \endinput ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mxr.mkii�����������������������������0000644�0001750�0001750�00000011507�14536300610�024726� 0����������������������������������������������������������������������������������������������������ustar �hille���������������������������hille������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\defineMMLsynonym approxeq ape \defineMMLsynonym backcong bcong \defineMMLsynonym backepsilon bepsi \defineMMLsynonym backsim bsim \defineMMLsynonym backsimeq bsime \defineMMLsynonym between twixt \defineMMLsynonym Bumpeq bump \defineMMLsynonym bumpeq bumpe \defineMMLsynonym circeq cire \defineMMLsynonym coloneq colone \defineMMLsynonym Cup smile \defineMMLsynonym CupCap asymp \defineMMLsynonym curlyeqprec cuepr \defineMMLsynonym curlyeqsucc cuesc \defineMMLsynonym ddotseq eDDot \defineMMLsynonym doteq esdot \defineMMLsynonym doteqdot eDot \defineMMLsynonym DotEqual esdot \defineMMLsynonym DoubleRightTee vDash \defineMMLsynonym eqcirc ecir \defineMMLsynonym eqcolon ecolon \defineMMLsynonym eqsim esim \defineMMLsynonym eqslantgtr egs \defineMMLsynonym eqslantless els \defineMMLsynonym EqualTilde esim \defineMMLsynonym fallingdotseq efDot \defineMMLsynonym geqq gE \defineMMLsynonym geqslant ges \defineMMLsynonym gg Gt \defineMMLsynonym ggg Gg \defineMMLsynonym GreaterEqualLess gel \defineMMLsynonym GreaterFullEqual gE \defineMMLsynonym GreaterLess gl \defineMMLsynonym GreaterSlantEqual ges \defineMMLsynonym GreaterTilde gsim \defineMMLsynonym gtrapprox gap \defineMMLsynonym gtrdot gtdot \defineMMLsynonym gtreqless gel \defineMMLsynonym gtreqqless gEl \defineMMLsynonym gtrless gl \defineMMLsynonym gtrsim gsim \defineMMLsynonym HumpDownHump bump \defineMMLsynonym HumpEqual bumpe \defineMMLsynonym LeftTee dashv \defineMMLsynonym LeftTriangle vltri \defineMMLsynonym LeftTriangleEqual ltrie \defineMMLsynonym leqq lE \defineMMLsynonym leqslant les \defineMMLsynonym lessapprox lap \defineMMLsynonym lessdot ltdot \defineMMLsynonym lesseqgtr leg \defineMMLsynonym lesseqqgtr lEg \defineMMLsynonym LessEqualGreater leg \defineMMLsynonym LessFullEqual lE \defineMMLsynonym LessGreater lg \defineMMLsynonym lessgtr lg \defineMMLsynonym lesssim lsim \defineMMLsynonym LessSlantEqual les \defineMMLsynonym LessTilde lsim \defineMMLsynonym ll Lt \defineMMLsynonym NestedGreaterGreater Gt \defineMMLsynonym NestedLessLess Lt \defineMMLsynonym pitchfork fork \defineMMLsynonym prec pr \defineMMLsynonym precapprox prap \defineMMLsynonym preccurlyeq prcue \defineMMLsynonym Precedes pr \defineMMLsynonym PrecedesEqual pre \defineMMLsynonym PrecedesSlantEqual prcue \defineMMLsynonym PrecedesTilde prsim \defineMMLsynonym preceq pre \defineMMLsynonym precsim prsim \defineMMLsynonym Proportion Colon \defineMMLsynonym questeq equest \defineMMLsynonym RightTee vdash \defineMMLsynonym RightTriangle vrtri \defineMMLsynonym RightTriangleEqual rtrie \defineMMLsynonym risingdotseq erDot \defineMMLsynonym shortmid smid \defineMMLsynonym shortparallel spar \defineMMLsynonym smallfrown sfrown \defineMMLsynonym smallsmile ssmile \defineMMLsynonym sqsubset sqsub \defineMMLsynonym sqsubseteq sqsube \defineMMLsynonym sqsupset sqsup \defineMMLsynonym sqsupseteq sqsupe \defineMMLsynonym SquareSubset sqsub \defineMMLsynonym SquareSubsetEqual sqsube \defineMMLsynonym SquareSuperset sqsup \defineMMLsynonym SquareSupersetEqual sqsupe \defineMMLsynonym Subset Sub \defineMMLsynonym subseteqq subE \defineMMLsynonym succ sc \defineMMLsynonym succapprox scap \defineMMLsynonym succcurlyeq sccue \defineMMLsynonym Succeeds sc \defineMMLsynonym SucceedsEqual sce \defineMMLsynonym SucceedsSlantEqual sccue \defineMMLsynonym SucceedsTilde scsim \defineMMLsynonym succeq sce \defineMMLsynonym succsim scsim \defineMMLsynonym Supset Sup \defineMMLsynonym supseteqq supE \defineMMLsynonym thickapprox thkap \defineMMLsynonym thicksim thksim \defineMMLsynonym trianglelefteq ltrie \defineMMLsynonym triangleq trie \defineMMLsynonym trianglerighteq rtrie \defineMMLsynonym varpropto vprop \defineMMLsynonym vartriangleleft vltri \defineMMLsynonym vartriangleright vrtri \defineMMLsynonym VerticalBar mid �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-dpx.mkii�����������������������������0000644�0001750�0001750�00000062040�14536300610�024700� 0����������������������������������������������������������������������������������������������������ustar �hille���������������������������hille������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%D \module %D [ file=spec-dpx, %D version=2005.08.12, %D title=\CONTEXT\ Special Macros, %D subtitle=DVIPDFMx support, %D author=Jin-Hwan Cho, %D date=\currentdate, %D copyright={Jin-Hwan Cho \& Hans Hagen}] %C %C DVIPDFMx is an eXtended version of the DVIPDFM, a DVI to PDF %C translator, still under construction by Jin-Hwan Cho and %C Shunsaku Hirata. %C %C It supports multi-byte character encodings and large character %C sets for East Asian languages by CID-keyed font technology, %C and many features including PDF encryption, PDF bookmarks and %C annotations with Chinese, Japanese, Korean characters, etc. %C %C DVIPDFMx (and information) can be downloaded from: %C %C http://project.ktug.or.kr/dvipdfmx/ %D This driver is built on top of the general \PDF\ macros, %D as defined in \type{spec-fdf}, so we inherit that one. \startspecials[dpx][reset,fdf] %D 1. Modified codes from \type{spec-dpm} %D \macros %D {jobsuffix} %D %D Because no intermediate output format is used, we set the %D jobsuffix to \PDF. \setjobsuffix{pdf} %D Map files (experimental) \definespecial\doloadmapfile#1#2% {\flushatshipout{\special{pdf:mapfile +#2}}} %D DVIPDFMx supports the special command \type{pdf: literal ...} %D since the version \type{dvipdfmx-20021028}. %D %D 1. \type{pdf: literal #1} puts the given PDF commands \#1 %D after changing the text matrix with \type{"1 0 0 1 x y cm"} %D to set the current DVI position $(x,y)$ to the origin. %D %D 2. \type{pdf: literal reverse #1} puts the given PDF commands \#1 %D after changing the text matrix with \type{"1 0 0 1 -x -y cm"}. %D %D 3. \type{pdf: literal direct #1} puts directly the given PDF %D commands \#1 without changing the text matrix. %D %D Since the version \type{dvipdfmx-20050812}, the role of the special %D command \type{pdf:literal} is changed so that %D %D 1. \type{pdf:literal #1} puts the given PDF commands \#1 %D after changing the text matrix with \type{"1 0 0 1 x y cm"} %D to set the current DVI position $(x,y)$ to the origin. After that %D it restores the previous setting by changing the text matrix with %D \type{"1 0 0 1 -x -y cm"}. %D %D 2. \type{pdf:literal direct #1} puts directly the given PDF commands %D \type {#1} without changing the text matrix. %D %D Literal \PDF\ inclusion is implemented as: \def\PDFcode #1{\special{pdf:literal #1}} \def\PDFcontentcode#1{\special{pdf:content #1}} \def\PDFdirectcode #1{\special{pdf:literal direct #1}} %D \type{\dosetuppaper} in \type{spec-dpm} did not work properly %D because DVIPDFM did not permit changing the page size. %D %D However, DVIPDFMx permits different page size in each page %D since the version \type{dvipdfmx-20021028}. %D %D \macros %D {dosetuppaper} %D %D A simple one. \let\PDFpagexyzspec\relax \def\PDFpagexyzspec{@xpos @ypos 0} % untested \definespecial\dosetuppaper#1#2#3% {\bgroup \scratchdimen#2\edef\width {\the\scratchdimen\space}% \scratchdimen#3\edef\height{\the\scratchdimen\space}% \special{pdf:pagesize width \width height \height}% \egroup} %D \macros %D {doinsertfile} %D %D Only \METAPOST, \BMP\ \JPG\ \PNG\ and \PDF\ inclusion are supported. \definespecial\doinsertfile {\dofileinsertion{dpx}\@@DriverImageType} %D Even though DVIPDFM supports \METAPOST directly, the funtionality %D is not good. It conflicts much with \CONTEXT. %D %D So, \METAPOST will be treated as the same way as PDFTeX using %D MPtoPDF in DVIPDFMx since the version \type{dvipdfmx-20021028}. %D DVIPDFM (and DVIPDFMx too) supports the image files with %D the extension, \PDF, \JPG, \PNG, \BMP, and \EPS. % \def\handleepsimage % {\PointsToWholeBigPoints\@@DriverImageWidth \width % \PointsToWholeBigPoints\@@DriverImageHeight\height % \special % {PSfile="\@@DriverImageFile"\space % llx=\EPSllx\space lly=\EPSlly\space % urx=\EPSurx\space ury=\EPSury\space % rwi=\width0\space rhi=\height0}} % \definefileinsertion{dpx}{mps}{\handleepsimage} \definefileinsertion{dpx}{mps} {\hbox {\convertMPtoPDF\@@DriverImageFile{1}{1}% \global\let\PDFimagereference\empty}} \def\handlebmpimage {\special{pdf: image width \@@DriverImageWidth \space height \@@DriverImageHeight\space (\@@DriverImageFile)}} \definefileinsertion{dpx}{pdf}{\handlebmpimage} \definefileinsertion{dpx}{jpg}{\handlebmpimage} \definefileinsertion{dpx}{png}{\handlebmpimage} \definefileinsertion{dpx}{bmp}{\handlebmpimage} \definefileinsertion{dpx}{mov}{\doPDFinsertmov} \definefileinsertion{dpx}{avi}{\doPDFinsertmov} %D \macros %D {doinsertsoundtrack} %D %D Sounds are supported too. \definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack} %D \macros %D {doovalbox} \definespecial\doovalbox{\doPDFovalbox} %D \macros %D {dostartgraymode,dostopgraymode, %D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode, %D dostopcolormode, %D dostartrotation,dostoprotation, %D dostartscaling,dostopscaling, %D dostartmirroring,dostopmirroring, %D dostartnegative,dostopnegative} %D %D Unfortunately the direct \PDF\ inclusion is not suited %D for the next macros, which means that we cannot use the %D \type {\doPDF..} alternatives. Since \CONTEXT\ maintains %D its own colorstack, we use the \DVIPS\ alternatives. \definespecial\dostartgraymode {\doPDFstartgraymode} \definespecial\dostopgraymode {\doPDFstopgraymode} \definespecial\dostartrgbcolormode {\doPDFstartrgbcolormode} \definespecial\dostartcmykcolormode{\doPDFstartcmykcolormode} \definespecial\dostartgraycolormode{\doPDFstartgraycolormode} \definespecial\dostartspotcolormode{\doPDFstartspotcolormode} \definespecial\dostopcolormode {\doPDFstopcolormode} \definespecial\doregistercmykspotcolor{\doPDFregistercmykspotcolor} \definespecial\doregisterrgbspotcolor {\doPDFregisterrgbspotcolor} \definespecial\doregistergrayspotcolor{\doPDFregistergrayspotcolor} \definespecial\doregistercmykindexcolor{\doPDFregistercmykindexcolor} \definespecial\doregisterrgbindexcolor {\doPDFregisterrgbindexcolor} \definespecial\doregistergrayindexcolor{\doPDFregistergrayindexcolor} \definespecial\doregisterfigurecolor{\doPDFregisterfigurecolor} \definespecial\dostartnonecolormode{\doPDFstartnonecolormode} \definespecial\doregisternonecolor {\doPDFregisternonecolor} \definespecial\dostartrotation #1{\special{pdf:btrans rotate #1}} \definespecial\dostoprotation {\special{pdf:etrans}} \definespecial\dostartscaling#1#2{\special{pdf:btrans xscale #1 yscale #2}} \definespecial\dostopscaling {\special{pdf:etrans}} \definespecial\dostartmirroring {\special{pdf:btrans xscale -1}} \definespecial\dostopmirroring {\special{pdf:etrans}} %D Negation is not (yet) supported: \definespecial\dostartnegative {\doPDFstartnegative} \definespecial\dostopnegative {\doPDFstopnegative} \definespecial\dostartoverprint {\doPDFstartoverprint} \definespecial\dostopoverprint {\doPDFstopoverprint} \definespecial\dostarttransparency{\doPDFstarttransparency} \definespecial\dostoptransparency {\doPDFstoptransparency} \PDFtransparencysupportedtrue \def\@@PDT{@PDT@} \ifx\PDFcurrenttransparency\undefined \newcount\PDFcurrenttransparency \PDFcurrenttransparency=0 % -1 \fi \def\assignPDFtransparency#1#2% {\def\PDFtransparencyidentifier{/Tr#1}% \def\PDFtransparencyreference{@TR:#2}} % todo: \PDFobjref{TR:#2} \def\presetPDFtransparency#1#2% {\initializePDFtransparency \executeifdefined{\@@PDT#1:#2}{\dopresetPDFtransparency{#1}{#2}}} \def\dopresetPDFtransparency#1#2% {\global\advance\PDFcurrenttransparency \plusone \doPDFreserveDPXobject{TR:\the\PDFcurrenttransparency}{<< >>}% hack \special{pdf:\doPDFcheckedDPXobject{TR:\the\PDFcurrenttransparency}\PDFtransparancydictionary{#1}{#2}{}}% \edef\PDFtransparencyidentifier{/Tr\the\PDFcurrenttransparency}% \edef\PDFtransparencyreference {@TR:\the\PDFcurrenttransparency}% \setxvalue{\@@PDT#1:#2}% {\noexpand\assignPDFtransparency{\the\PDFcurrenttransparency}{\the\PDFcurrenttransparency}}% \appendtoPDFdocumentextgstates {\PDFtransparencyidentifier\space \PDFtransparencyreference\space}} \def\initializePDFtransparency {\doPDFreserveDPXobject{TR:0}{<< >>}% hack \special{pdf:\doPDFcheckedDPXobject{TR:0}\PDFtransparancydictionary{1}{1}{/AIS false}}% \xdef\PDFtransparencyresetidentifier{/Tr0}% \xdef\PDFtransparencyresetreference{@TR:0}% \setxvalue{\@@PDT0:0}% {\noexpand\assignPDFtransparency{0}{0}}% \appendtoPDFdocumentextgstates {\PDFtransparencyresetidentifier\space \PDFtransparencyresetreference\space}% \global\let\initializePDFtransparency\relax} %D \macros %D {dosetupinteraction, %D dosetupopenaction,dosetupcloseaction} \definespecial\dosetupinteraction {\showmessage\m!interactions{21}{DVIPDFMx}} \definespecial\dosetupopenaction {\doPDFsetupopenaction} \definespecial\dosetupcloseaction{\doPDFsetupcloseaction} %D \macros %D {doresetgotowhereever, %D dostartthisisrealpage,dostartthisislocation, %D dostartgotorealpage,dostartgotolocation,dostartgotoJS} \definespecial\doresetgotowhereever {\doPDFresetgotowhereever} \definespecial\dostartthisislocation{\doPDFstartthisislocation} \definespecial\dostartgotolocation{\doPDFstartgotolocation} \definespecial\dostartgotorealpage{\doPDFstartgotorealpage} \definespecial\dostartgotoJS {\doPDFstartgotoJS} %D \macros %D {doflushJSpreamble} \definespecial\doflushJSpreamble#1% {\bgroup \let\compositeJScode\empty \def\docommand##1% {\edef\sanitizedJScode{\getJSpreamble{##1}}% \@EA\doPSsanitizeJScode\sanitizedJScode\to\sanitizedJScode \special{pdf:object @JS:##1 <</S /JavaScript /JS (\sanitizedJScode)>>}% \edef\compositeJScode{\compositeJScode\space (##1) @JS:##1}}% \processcommalist[#1]\docommand \special{pdf:names /JavaScript [\compositeJScode]}% \egroup} %D \macros %D {dostarthide,dostophide} \definespecial\dostarthide{} \definespecial\dostophide {} %D \macros %D {dosetupscreen} \definespecial\dosetupscreen {\doPDFsetupscreen \printpaperheight} \definespecial\dosetupartbox {\doPDFsetupartbox \printpaperheight} \definespecial\dosetupcropbox {\doPDFsetupcropbox \printpaperheight} \definespecial\dosetupbleedbox{\doPDFsetupbleedbox\printpaperheight} \definespecial\dosetuptrimbox {\doPDFsetuptrimbox \printpaperheight} %D \macros %D {dostartexecutecommand} \definespecial\dostartexecutecommand{\doPDFstartexecutecommand} %D \macros %D {dosetupidentity} \definespecial\dosetupidentity{\doPDFsetupidentity} %D \macros %D {dostartrunprogam} \definespecial\dostartrunprogram{\doPDFstartrunprogram} %D \macros %D {dostartgotoprofile, dostopgotoprofile, %D dobeginofprofile, doendofprofile} \definespecial\dostartgotoprofile{\doPDFstartgotoprofile} \definespecial\dobeginofprofile#1#2#3#4% {\bgroup \setPDFdestination{#1}% \scratchdimen#2\edef\width {\the\scratchdimen\space}% \scratchdimen#3\edef\height{\the\scratchdimen\space}% \doifsomething{\PDFdestination} {\special {pdf:thread @ART::\PDFdestination\space width \width height \height <>}}% \egroup} \definespecial\doendofprofile {} %D \macros %D {doinsertbookmark} \definespecial\doinsertbookmark{\doPDFinsertbookmark} %D \macros %D {dostartobject,dostopobject,doinsertobject} %D %D Modified to support the color shading feature since version %D \type{dvipdfmx-20021128}. % wd nextbox > #3 ivm offset % \definespecial\dostartobject#1#2#3#4#5% % {\bgroup % \dowithnextbox % {\dosetobjectreference{#1}{#2}{@#1::#2}% % \scratchdimen#3\edef\width {\the\scratchdimen\space}% % \scratchdimen#4\edef\height{\the\scratchdimen\space}% % \setbox\nextbox\vbox % {\special{pdf:bxobj @#1::#2 width \width height \height}% % % we need to compensate for the box offset (ugly, sigh) % \scratchdimen\nextboxht % \advance\scratchdimen\nextboxdp % \advance\scratchdimen-#4\relax % \nextboxdp\zeropoint % \nextboxht\zeropoint % \hbox to #3{\hss\lower.5\scratchdimen\box\nextbox\hss}% % \ifx\currentPDFresources\empty % \else % \special{pdf:put @resources <<\currentPDFresources>>}% % \global\let\currentPDFresources\empty % \fi % \special{pdf:exobj}}% % \smashbox\nextbox % \flushatshipout{\box\nextbox}% % \egroup}% % \hbox\bgroup} % \definespecial\dostopobject % {\egroup} \def\doDVIPDFMXstartobject#1#2#3#4#5#6% {\bgroup \dowithnextbox {\ifcase#1\or\dosetobjectreference{#2}{#3}{@#2::#3}\fi \scratchdimen#4\edef\width {\the\scratchdimen\space}% \scratchdimen#5\edef\height{\the\scratchdimen\space}% \setbox\nextbox\vbox {\special{pdf:bxobj @#2::#3 width \width height \height}% % we need to compensate for the box offset (ugly, sigh) \scratchdimen\nextboxht \advance\scratchdimen\nextboxdp \advance\scratchdimen-#5\relax \nextboxdp\zeropoint \nextboxht\zeropoint \hbox to #4{\hss\lower.5\scratchdimen\box\nextbox\hss}% \ifx\currentPDFresources\empty \else \special{pdf:put @resources <<\currentPDFresources>>}% \global\let\currentPDFresources\empty \fi \special{pdf:exobj}}% \finalizeobjectbox\nextbox \smashbox\nextbox \flushatshipout{\box\nextbox}% \egroup}% \hbox\bgroup} \def\doDVIPDFMXstopobject {\egroup} \definespecial\dostartobject#1#2#3#4#5% {\doDVIPDFMXstartobject\plusone{#1}{#2}{#3}{#4}{#5}} \definespecial\dostopobject {\doDVIPDFMXstopobject} \definespecial\doinsertobject#1#2% {\hbox {\doPDFgetobjectreference{#1}{#2}\PDFobjectreference \ifx\PDFobjectreference\empty \else \special{pdf:uxobj @#1::#2}% \fi}} %D \macros %D {dosetpagetransition} \definespecial\dosetpagetransition{\doPDFsetpagetransition} %D \macros %D {doinsertcomment, doflushcomments} \definespecial\doinsertcomment{\doPDFinsertcomment} \definespecial\doflushcomments{\doPDFflushcomments} %D \macros %D {dopresetlinefield,dopresettextfield, %D dopresetchoicefield,dopresetpopupfield,dopresetcombofield, %D dopresetpushfield,dopresetcheckfield, %D dopresetradiofield,dopresetradiorecord} \definespecial\dopresetlinefield {\doFDFpresetlinefield} \definespecial\dopresettextfield {\doFDFpresettextfield} \definespecial\dopresetchoicefield{\doFDFpresetchoicefield} \definespecial\dopresetpopupfield {\doFDFpresetpopupfield} \definespecial\dopresetcombofield {\doFDFpresetcombofield} \definespecial\dopresetpushfield {\doFDFpresetpushfield} \definespecial\dopresetcheckfield {\doFDFpresetcheckfield} \definespecial\dopresetradiofield {\doFDFpresetradiofield} \definespecial\dopresetradiorecord{\doFDFpresetradiorecord} %D \macros %D {dodefinefieldset,dogetfieldset,doiffieldset} \definespecial\dodefinefieldset{\doFDFdefinefieldset} \definespecial\dogetfieldset {\doFDFgetfieldset} \definespecial\doiffieldset {\doFDFiffieldset} %D \macros %D {doregistercalculationset} \definespecial\doregistercalculationset{\doFDFregistercalculationset} %D \type{\doPDFdestination} in \type{spec-dpm} had a bug. %D %D \macros %D {doPDFdestination} \def\doPDFdestination#1% {\special{pdf:names /Dests (#1) [@thispage \PDFpageviewwrd]}} %D \macros %D {doPDFaction,doPDFannotation,ifsharePDFactions} %D %D Sharing is not yet supported. \newif\ifsharePDFactions \sharePDFactionsfalse \def\dodoPDFaction#1#2#3#4% {\ifcollectreferenceactions \xdef\lastPDFaction{#4}% \else \bgroup % this is yet untested %\ifsharePDFactions % \ifcase\similarreference\relax % \xdef\lastPDFaction{<<#4>>}% % \or % \global\advance\nofPDFsimilar by 1 % \special{pdf: object @PDF::sim:\the\nofPDFsimilar\space<<#4>>}% % \xdef\lastPDFaction{@PDF::sim:\the\nofPDFsimilar}% % \else % % leave \lastPDFaction untouched % \fi %\else \xdef\lastPDFaction{<<#4>>}% %\fi \scratchdimen#2\edef\width {\the\scratchdimen\space}% \scratchdimen#3\edef\height{\the\scratchdimen\space}% \special{pdf:ann #1 width \width height \height <>}% \egroup \fi} \def\doPDFaction#1#2#3% {\dodoPDFaction\empty{#1}{#2}{#3}} %D \type{\doPDFannotation} in \type{spec-dpm} had a bug. %D %D \type{\doPDFannotation} conflicts with \type{\doPDFinsertmov}, %D since width and height also defined in \type{\doPDFinsertmov}. \def\doPDFannotation#1#2#3% {\bgroup \edef\data{#3}% \scratchdimen#1\edef\width {\the\scratchdimen\space}% \scratchdimen#2\edef\height{\the\scratchdimen\space}% \special{pdf:ann width \width height \height <<\data>>}% \egroup} %D \macros %D {doPDFannotationobject,doPDFactionobject} \def\doPDFannotationobject#1#2#3#4#5% {\bgroup \scratchdimen#3\edef\width {\the\scratchdimen\space}% \scratchdimen#4\edef\height{\the\scratchdimen\space}% \special{pdf:ann @#1::#2 width \width height \height <<#5>>}% \dosetobjectreference{#1}{#2}{@#1::#2}% \egroup} \def\doPDFactionobject#1#2#3#4#5% {\dodoPDFaction{@#1::#2}{#3}{#4}{#5}% \dosetobjectreference{#1}{#2}{@#1::#2}} %D \macros %D {doPDFaddtocatalog,doPDFaddtoinfo, %D doPDFpageattribute,doPDFpagesattribute} % we could move much more to spec-fdf % \ifx\pdfcatalog \undefined \newtoks\pdfcatalog \fi % \ifx\pdfinfo \undefined \newtoks\pdfinfo \fi % \ifx\pdfpageattr \undefined \newtoks\pdfpageattr \fi % \ifx\pdfpageresources\undefined \newtoks\pdfpageresources \fi % \ifx\pdfpagesattr \undefined \newtoks\pdfpagesattr \fi % \def\doPDFaddtocatalog #1{\expanded{\global\pdfcatalog {#1\the\pdfcatalog }}} % \def\doPDFaddtoinfo #1{\expanded{\global\pdfinfo {#1\the\pdfinfo }}} % \def\doPDFpageattribute #1{\expanded{\global\pdfpageattr {#1\the\pdfpageattr }}} % \def\doPDFpageresource #1{\expanded{\global\pdfpageresources{#1\the\pdfpageresources}}} % \def\doPDFpagesattribute#1{\expanded{\global\pdfpagesattr {#1\the\pdfpagesattr }}} % \def\doPDFresetpageattributes{\global\pdfpageattr\emptytoks} % \def\doPDFresetpageresources {\global\pdfpageresources\emptytoks} % \appendtoks % \special{pdf: put @catalog <<#1>>}% % \special{pdf: docinfo <<#1>>}% % \special{pdf: put @pages <<#1>>}% % \to \everylastshipout % \appendtoks % \special{pdf: put @thispage <<#1>>}% % \to\everyshipout \def\doPDFaddtocatalog#1% {\special{pdf:put @catalog <<#1>>}} \def\doPDFaddtoinfo#1% {\special{pdf:put @docinfo <<#1>>}} \def\doPDFpageattribute#1% {\special{pdf:put @thispage <<#1>>}} \def\doPDFpagesattribute#1% {\special{pdf:put @pages <<#1>>}} \def\doPDFpageresource#1% {\special{pdf:put @resources <<#1>>}} \let\doPDFresetpageresources \relax \let\doPDFresetpageattributes\relax %D \type{\doPDFbookmark} in \type{spec-dpm} had a bug. %D The openbookmark option \#5 is not supported yet. %D %D \macros %D {doPDFbookmark} \def\doPDFbookmark#1#2#3#4#5% {\ifcase#1\else %\scratchcounter#4\advance\scratchcounter\minusone \special{pdf:outline #1 %\ifcase#5 opened\fi % <>>>}% % <> >>}% <\else(#3)\fi\space /A <> >>}% \fi} %D \macros %D {doPDFdictionaryobject,doPDFarrayobject} % Dvipdfmx can't handle % % \special{pdf:put @foo << /Bar @bar >>} % \special{pdf:put @bar << /Foo @foo >>} % % Objects must be defined before they are used. % % \special{pdf:obj @foo << >>} % \special{pdf:obj @bar << >>} % \special{pdf:put @foo << /Bar @bar >>} % \special{pdf:put @bar << /Foo @foo >>} % % However, this only works for dictionary and array. \def\doPDFreserveDPXobject#1#2% {\ifundefined{r:pdx:d:#1}% % we need a \flushatshipoutprep (prepended, normally appended) \flushatshipout{\special{pdf:object @#1 #2}}% \global\letvalue{r:pdx:d:#1}\empty \fi} \def\doPDFreserveDPXobjectfirst#1#2% {\ifundefined{r:pdx:d:#1}% \doglobal\prependtoks\special{pdf:object @#1 #2}\to\everyfirstshipout \global\letvalue{r:pdx:d:#1}\empty \fi} \def\doPDFcheckedDPXobject#1{\ifundefined{r:pdx:d:#1}object\else put\fi\space @#1\space} % new, experimental, can save a run, bugged, too many xforms now % % \def\doreservePDFobject#1#2% % {\dosetobjectreference{#1}{#2}{@#1::#2}} % % \def\doPDFreserveddictionaryobject#1#2#3% % {\flushatshipout{\special{pdf:object @#1::#2 << #3 >>}}} % % \def\doPDFreservedarrayobject#1#2#3% % {\flushatshipout{\special{pdf:object @#1::#2 [ #3 ]}}} % % \doreservePDFobject{FDF}{docuextgstates} % \doreservePDFobject{FDF}{colorspaces} % \doreservePDFobject{FDF}{docushades} % so this is to be checked \def\doPDFdictionaryobject#1#2#3% {\flushatshipout {\special{pdf:\doPDFcheckedDPXobject{#1::#2}<<#3>>}% \dosetobjectreference{#1}{#2}{@#1::#2}}} \def\doPDFarrayobject#1#2#3% {\flushatshipout {\special{pdf:\doPDFcheckedDPXobject{#1::#2}[#3]}% \dosetobjectreference{#1}{#2}{@#1::#2}}} %D \macros %D {defaultobjectreference,doPDFgetobjectreference} \def\defaultobjectreference#1#2{@#1::#2} %D \type{\doPDFgetobjectreference} in \type{spec-dpm} had a bug. \def\doPDFgetobjectreference#1#2#3% {\dogetobjectreference{#1}{#2}#3% \ifx#3\empty\else\edef#3{#3}\fi} \def\doPDFgetpagereference#1#2% {\edef#2{@page#1}} %D Done. % %D 2. Modified codes from \type{spec-fdf} % % \definespecial\dostartgraphicgroup{\special{pdf: literal direct q}} % \definespecial\dostopgraphicgroup {\special{pdf: literal direct Q}} %D 3. Copied codes from \type{spec-tpd} %D \macros %D {dostartclipping,dostopclipping} %D %D Clipping in \PDFTEX\ is rather trivial. We can even hook %D in \METAPOST\ without problems. \definespecial\dostartclipping#1#2#3% {\PointsToBigPoints{#2}\width \PointsToBigPoints{#3}\height \grabMPclippath{#1}{1}\width\height {0 0 m \width\space 0 l \width \height l 0 \height l}% \PDFcode {q 0 w \MPclippath\space W n}} \definespecial\dostopclipping {\PDFcode{Q n}} %D 4. Modified codes from \type{supp-pdf} \def\dosetMPsomePDFshade#1#2% {\global\advance\currentPDFshade \plusone \special{pdf:object @ftn:Sh:\currentPDFshade\space <>}% \special{pdf:object @obj:Sh:\currentPDFshade\space <>}% \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space @obj:Sh:\currentPDFshade}% \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}} \def\handleMPfigurespecial#1#2#3#4#5#6#7% toto : combine with ext fig {\doiffileelse{#7} {\vbox to \zeropoint {\vss \hbox to \zeropoint {\special{pdf:btrans matrix #1 #2 #3 #4 #5 #6}% \rlap{\special{pdf:image width 1bp height 1bp (#7)}} \special{pdf:etrans}\hss}}} {\message{[unknown figure #7]}}} %D 5. Modified codes from \type{supp-pdf} \let\handleMPfshow\dohandleMPfshow \newcounter\MPPDFcounter \newcounter\MPPDFobjectcounter \def\setMPPDFobject#1#2% resources boxnumber {\doglobal\increment\MPPDFobjectcounter \xdef\getMPPDFobject {\vbox to \the\ht#2% {\vss \hbox to \the\wd#2% {%\scratchdimen\wd#2\scratchdimen.5\scratchdimen\hskip-\the\scratchdimen \special{pdf:uxobj @MPPDF::\MPPDFobjectcounter}}}}% \expanded{\doDVIPDFMXstartobject\zerocount{MPPDF}\MPPDFobjectcounter{\the\wd#2}{\the\ht#2}{\the\dp#2}}% \finalizeobjectbox#2% \box#2% \doDVIPDFMXstopobject} \let\getMPPDFobject\gobbletwoarguments \definespecial\doinsertMPfile#1% {\doiffileelse{./#1}{\includeMPasPDF{./#1}}{\message{[MP #1]}}} %D Experimental (untested): \definespecial\dostartfonteffect#1#2#3% {\ifdim#2>\zeropoint \PointsToBigPoints{#2}\ascii \PDFdirectcode{\ascii\space w}% \fi \ifdim#3\points=\onepoint\else \scratchdimen#3\points \PDFdirectcode{\withoutpt{\the\scratchdimen}\space Tc}% \fi \PDFdirectcode{\purenumber#1 Tr}} \definespecial\dostopfonteffect {\PDFdirectcode{1 w 0 Tc 0 Tr}} %D 6. Modified codes from \type{core-obj} %D %D In the viewpoint of TeX, the special command \type{pdf:uxobj @obj} %D generates a box with zero point width and zero point height so that %D it must be careful to place the box at the reference point. \def\dogetobject#1#2#3#4#5#6#7% don't change this, should work for dvi & pdf {\initializepaper \forgetall \dontshowcomposition \setbox\scratchbox\vbox {\doinsertobject{#1}{#2}}% \setbox\scratchbox#3% {\vbox to #5\scaledpoint {\ifdim\ht\scratchbox>#5\scaledpoint \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss \else\ifdim\wd\scratchbox>#4\scaledpoint \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss \else %\vss\box\scratchbox \vss\hbox to #4\scaledpoint{\box\scratchbox\hss}% \fi\fi}}% \box\scratchbox \elabelgroup} \stopspecials \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-utf.mkii0000644000175000017500000000115614536300610024715 0ustar hillehille%D \module %D [ file=xtag-utf, %D version=2002.06.24, %D title=\CONTEXT\ XML Macros, %D subtitle=UTF, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / UTF} %D This filter is kind of obsolete, since \UTF\ is not %D limited to \XML. So, here we only enable \UTF\ support. \chardef\XMLtokensreduction\plustwo \enableregime[utf] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-bal.mkii0000644000175000017500000001160414536300610024632 0ustar hillehille%D \module %D [ file=lang-bal, %D version=2010.01.21, %D title=\CONTEXT\ Language Macros, %D subtitle=Baltic Languages, %D author=Marius Aleknevičius, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Baltic Languages} %D The framework of this module is set up by Hans Hagen while %D all the translations were done by Marius Aleknevičius. If %D you have suggestions, don't hesitate to send us an email. %D This file is in \UTF\ encoding and is meant for \MKIV. % Lettish/Latvian, Lietuvių/Lithuanian \unprotect \installlanguage [\s!lt] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\lowerleftdoubleninequote, \c!rightquote=\upperrightdoublesixquote, \c!leftquotation=\lowerleftdoubleninequote, \c!rightquotation=\upperrightdoublesixquote, \c!date={\v!year,~m.,\ ,\v!month,\ ,\v!day,~d.}, \s!patterns=\s!lt, \s!encoding=l7x, \s!mapping=l7x, \s!lefthyphenmin=2, \s!righthyphenmin=2] \installlanguage [lithuanian] [\s!lt] \setupheadtext [\s!lt] [\v!content=Turinys] \setupheadtext [\s!lt] [\v!tables=Lentelės] \setupheadtext [\s!lt] [\v!figures=Iliustracijos] \setupheadtext [\s!lt] [\v!graphics=Graphics] % TODO what is the difference between the "graphics" and the "figures"? \setupheadtext [\s!lt] [\v!intermezzi=Intermezzos] % TODO what is the "intermezzi"? \setupheadtext [\s!lt] [\v!index=Rodyklė] \setupheadtext [\s!lt] [\v!abbreviations=Santrumpos] \setupheadtext [\s!lt] [\v!logos=Logos] % TODO where it is used? \setupheadtext [\s!lt] [\v!units=Units] % TODO where it is used? \setupheadtext [\s!lt] [pubs=Literatūra] \setuplabeltext [\s!lt] [\v!table={, lentelė.}] \setuplabeltext [\s!lt] [\v!figure={, pav.}] \setuplabeltext [\s!lt] [\v!intermezzo=Intermezzo ] % TODO \setuplabeltext [\s!lt] [\v!graphic=Graphic ] % TODO %\startlanguagespecifics[\s!lt] % \setupheads[\c!sectionstopper=.] %TODO how do I set dots after section numbers? %\stoplanguagespecifics \setuplabeltext [\s!lt] [\v!chapter=] % Chapter \setuplabeltext [\s!lt] [\v!section=] \setuplabeltext [\s!lt] [\v!subsection=] \setuplabeltext [\s!lt] [\v!subsubsection=] \setuplabeltext [\s!lt] [\v!subsubsubsection=] \setuplabeltext [\s!lt] [\v!appendix=] % Appendix \setuplabeltext [\s!lt] [\v!part={, dalis}] \setuplabeltext [\s!lt] [\v!line=line ] % TODO where it is used? \setuplabeltext [\s!lt] [\v!lines=lines ] % TODO where it is used? \setuplabeltext [\s!lt] [\v!january=sausio] \setuplabeltext [\s!lt] [\v!february=vasario] \setuplabeltext [\s!lt] [\v!march=kovo] \setuplabeltext [\s!lt] [\v!april=balandžio] \setuplabeltext [\s!lt] [\v!may=gegužės] \setuplabeltext [\s!lt] [\v!june=birželio] \setuplabeltext [\s!lt] [\v!july=liepos] \setuplabeltext [\s!lt] [\v!august=rugpjūčio] \setuplabeltext [\s!lt] [\v!september=rugsėjo] \setuplabeltext [\s!lt] [\v!october=spalio] \setuplabeltext [\s!lt] [\v!november=lapkričio] \setuplabeltext [\s!lt] [\v!december=gruodžio] \setuplabeltext [\s!lt] [\v!sunday=sekmadienis] \setuplabeltext [\s!lt] [\v!monday=pirmadienis] \setuplabeltext [\s!lt] [\v!tuesday=antradienis] \setuplabeltext [\s!lt] [\v!wednesday=trečiadienis] \setuplabeltext [\s!lt] [\v!thursday=ketvirtadienis] \setuplabeltext [\s!lt] [\v!friday=penktadienis] \setuplabeltext [\s!lt] [\v!saturday=šeštadienis] \setuplabeltext [\s!lt] [\v!page=puslapis ] % TODO how to test? \setuplabeltext [\s!lt] [\v!atpage=puslapyje ] % TODO how to test? \setuplabeltext [\s!lt] [\v!hencefore=kaip parodyta aukščiau] % TODO how to test? \setuplabeltext [\s!lt] [\v!hereafter=kaip parodyta žemiau] % TODO how to test? \setuplabeltext [\s!lt] [\v!see=žiūrėti ] % TODO how to test? \setuplabeltext [\s!lt] [\v!january :\s!mnem=jan] % I think, there is no abbreviated versions of months in lithuanian \setuplabeltext [\s!lt] [\v!february :\s!mnem=feb] \setuplabeltext [\s!lt] [\v!march :\s!mnem=mar] \setuplabeltext [\s!lt] [\v!april :\s!mnem=apr] \setuplabeltext [\s!lt] [\v!may :\s!mnem=may] \setuplabeltext [\s!lt] [\v!june :\s!mnem=jun] \setuplabeltext [\s!lt] [\v!july :\s!mnem=jul] \setuplabeltext [\s!lt] [\v!august :\s!mnem=aug] \setuplabeltext [\s!lt] [\v!september:\s!mnem=sep] \setuplabeltext [\s!lt] [\v!october :\s!mnem=oct] \setuplabeltext [\s!lt] [\v!november :\s!mnem=nov] \setuplabeltext [\s!lt] [\v!december :\s!mnem=dec] %D \ShowAllLanguageValues [\s!lt] [lithuanian] {Lithuanian} {doll} % What does this mean? Do I need it? \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/symb-glm.mkii0000644000175000017500000000657014536300610024712 0ustar hillehille%D \module %D [ file=symb-glm, %D version=2002.05.07, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Guillemots, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Watch the \type {x} before the local symbols. % \loadmapfile [ec-public-lm.map] % \loadmapfile [ec-lm.map] \loadmapfile [lm-ec.map] % this used to be: % % \definefontsynonym [GuilSerif] [plr10] [encoding=ec] % \definefontsynonym [GuilSerifBold] [plbx10] [encoding=ec] % \definefontsynonym [GuilSerifItalic] [plti10] [encoding=ec] % \definefontsynonym [GuilSerifSlanted] [plsl10] [encoding=ec] % \definefontsynonym [GuilSerifBoldItalic] [plbxti10] [encoding=ec] % \definefontsynonym [GuilSerifBoldSlanted] [plbxsl10] [encoding=ec] % % \definefontsynonym [GuilSans] [plss10] [encoding=ec] % \definefontsynonym [GuilSansBold] [plssbx10] [encoding=ec] % \definefontsynonym [GuilSansItalic] [plssi10] [encoding=ec] % \definefontsynonym [GuilSansSlanted] [plssi10] [encoding=ec] % \definefontsynonym [GuilSansBoldItalic] [plssbi10] [encoding=ec] % \definefontsynonym [GuilSansBoldSlanted] [plssbi10] [encoding=ec] % % \definefontsynonym [GuilMono] [pltt10] [encoding=ec] % % but was also one of the reasons for triggering the lm project, so: \definefontsynonym [GuilSerif] [ec-lmr10] [encoding=ec] \definefontsynonym [GuilSerifBold] [ec-lmbx10] [encoding=ec] \definefontsynonym [GuilSerifItalic] [ec-lmti10] [encoding=ec] \definefontsynonym [GuilSerifSlanted] [ec-lmsl10] [encoding=ec] \definefontsynonym [GuilSerifBoldItalic] [ec-lmbxti10] [encoding=ec] \definefontsynonym [GuilSerifBoldSlanted] [ec-lmbxsl10] [encoding=ec] \definefontsynonym [GuilSans] [ec-lmss10] [encoding=ec] \definefontsynonym [GuilSansBold] [ec-lmssbx10] [encoding=ec] \definefontsynonym [GuilSansItalic] [ec-lmssi10] [encoding=ec] \definefontsynonym [GuilSansSlanted] [ec-lmssi10] [encoding=ec] \definefontsynonym [GuilSansBoldItalic] [ec-lmssbi10] [encoding=ec] \definefontsynonym [GuilSansBoldSlanted] [ec-lmssbi10] [encoding=ec] \definefontsynonym [GuilMono] [ec-lmtt10] [encoding=ec] %definefontsynonym [GuilMonoBold] [ec-lmtt10] [encoding=ec] %definefontsynonym [GuilMonoSlanted] [ec-lmtt10] [encoding=ec] %definefontsynonym [GuilMonoItalic] [ec-lmtt10] [encoding=ec] %definefontsynonym [GuilMonoBoldItalic] [ec-lmtt10] [encoding=ec] %definefontsynonym [GuilMonoBoldSlanted] [ec-lmtt10] [encoding=ec] \definesymbol [xleftguillemot] [\getglyph{Guil}{\char19}] \definesymbol [xrightguillemot] [\getglyph{Guil}{\char20}] \definesymbol [xguilsingleleft] [\getglyph{Guil}{\char14}] \definesymbol [xguilsingleright] [\getglyph{Guil}{\char15}] %D A strange place, but okay (the \type {\relax} prevents space gobbling) \startencoding [default] \definecharacter leftguillemot {\symbol[xleftguillemot]\relax} \definecharacter rightguillemot {\symbol[xrightguillemot]\relax} \definecharacter guilsingleleft {\symbol[xguilsingleleft]\relax} \definecharacter guilsingleright {\symbol[xguilsingleright]\relax} \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-xet.mkii0000644000175000017500000000445614536300610024714 0ustar hillehille%D \module %D [ file=spec-xtx, %D version=2004.11.08, %D title=\CONTEXT\ Special Macros, %D subtitle=\XETEX\ support, %D author={Adam Lindsay \& Hans Hagen \& \unknown}, %D date=\currentdate, %D copyright={Adam Lindsay \& Hans Hagen}] \unprotect \definespecial\doinsertfile {\dofileinsertion{xtx}\@@DriverImageType} \definefileinsertion{xtx}{jpg}{\xtxhandleotherimage} \definefileinsertion{xtx}{png}{\xtxhandleotherimage} \definefileinsertion{xtx}{gif}{\xtxhandleotherimage} \definefileinsertion{xtx}{tif}{\xtxhandleotherimage} \definefileinsertion{xtx}{pdf}{\xtxhandlepdfimage } \def\checkpdfimagepagenumber {\edef\pdfimagepagenumber {\ifx\@@DriverImagePage\empty\else\ifnum\@@DriverImagePage>\zerocount \space page\space\@@DriverImagePage\space \fi\fi}} \def\xtxhandleotherimage {\XeTeXpicfile "\@@DriverImageFile" \ifdim\@@DriverImageWidth >\zeropoint \!!width \@@DriverImageWidth \space\fi \ifdim\@@DriverImageHeight>\zeropoint \!!height \@@DriverImageHeight \fi \relax} \def\xtxhandlepdfimage {\checkpdfimagepagenumber \XeTeXpdffile "\@@DriverImageFile" \pdfimagepagenumber \ifdim\@@DriverImageWidth >\zeropoint \!!width \@@DriverImageWidth \space\fi \ifdim\@@DriverImageHeight>\zeropoint \!!height \@@DriverImageHeight \fi \relax} \def\dogetXTXfiguresize {\setbox\foundexternalfigure\vbox{\XeTeXpicfile "\@@DriverImageFile"\relax}% \xdef\analyzedfigurewidth {\the\wd\foundexternalfigure}% \xdef\analyzedfigureheight{\the\ht\foundexternalfigure}} \def\dogetXTXpdfsize {\checkpdfimagepagenumber \setbox\foundexternalfigure\vbox{\XeTeXpdffile "\@@DriverImageFile" \pdfimagepagenumber\relax}% \xdef\analyzedfigurewidth {\the\wd\foundexternalfigure}% \xdef\analyzedfigureheight{\the\ht\foundexternalfigure}} \definefilechecker{xtx}{png}{\dogetXTXfiguresize} \definefilechecker{xtx}{jpg}{\dogetXTXfiguresize} \definefilechecker{xtx}{gif}{\dogetXTXfiguresize} \definefilechecker{xtx}{tif}{\dogetXTXfiguresize} \definefilechecker{xtx}{pdf}{\dogetXTXpdfsize } \definespecial\dogetfiguresize {\dofilechecker{xtx}\@@DriverImageType} %D The figure object system caused no end of headaches. They all %D went away with this single line: \setupexternalfigures[\c!object=\v!no] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-syn.mkii0000644000175000017500000000513514536300610024714 0ustar hillehille%D \module %D [ file=regi-syn, %D version=2006.04.04, %D title=\CONTEXT\ Regime Macros, %D subtitle=Synonyms, %D author=Mojca Miklavec \& Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Regime Macros / Synonyms} \unprotect \defineregimesynonym [windows-1250] [cp1250] \defineregimesynonym [windows-1251] [cp1251] \defineregimesynonym [windows-1252] [cp1252] \defineregimesynonym [windows-1253] [cp1253] \defineregimesynonym [windows-1254] [cp1254] %defineregimesynonym [windows-1255] [cp1255] % not supported yet (Hebrew) %defineregimesynonym [windows-1256] [cp1256] % not supported yet (Arabic) \defineregimesynonym [windows-1257] [cp1257] %defineregimesynonym [windows-1258] [cp1258] % not supported yet (Vietnamese) \defineregimesynonym [il1] [8859-1] \defineregimesynonym [il2] [8859-2] \defineregimesynonym [il3] [8859-3] \defineregimesynonym [il4] [8859-4] \defineregimesynonym [il5] [8859-9] \defineregimesynonym [il6] [8859-10] \defineregimesynonym [il7] [8859-13] %defineregimesynonym [il8] [8859-14] \defineregimesynonym [il9] [8859-15] \defineregimesynonym [il10] [8859-16] \defineregimesynonym [iso-8859-1] [8859-1] \defineregimesynonym [iso-8859-2] [8859-2] \defineregimesynonym [iso-8859-3] [8859-3] \defineregimesynonym [iso-8859-4] [8859-4] \defineregimesynonym [iso-8859-9] [8859-9] \defineregimesynonym [iso-8859-10] [8859-10] \defineregimesynonym [iso-8859-13] [8859-13] %defineregimesynonym [iso-8859-14] [8859-14] \defineregimesynonym [iso-8859-15] [8859-15] \defineregimesynonym [iso-8859-16] [8859-16] \defineregimesynonym [latin1] [8859-1] \defineregimesynonym [latin2] [8859-2] \defineregimesynonym [latin3] [8859-3] \defineregimesynonym [latin4] [8859-4] \defineregimesynonym [latin5] [8859-9] \defineregimesynonym [latin6] [8859-10] \defineregimesynonym [latin7] [8859-13] %defineregimesynonym [latin8] [8859-14] \defineregimesynonym [latin9] [8859-15] \defineregimesynonym [latin10] [8859-16] % kind of special \defineregimesynonym [utf-8] [utf] \defineregimesynonym [utf8] [utf] % for historical reasons / compatibility \defineregimesynonym [windows] [cp1252] \defineregimesynonym [grk] [8859-7] \defineregimesynonym [iso88595] [8859-5] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-ibm.mkii0000644000175000017500000000015614536300610024646 0ustar hillehille% temporary module, needed for downward compatibility %\input regi-ibm.tex \enableregime[ibm] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-cml.mkii0000644000175000017500000001441214536300610024671 0ustar hillehille% see mathml, == \defineXMLdirective [mathml] \setupMMLappearance % will be rewritten avoiding the mapper \useXMLfilter[map] \unprotect \def\setupCMLappearance[#1]{\dodoubleargument\getparameters[@@CML#1]} \defineXMLdirective [chemml] \setupCMLappearance \defineXMLargument [chem] \doXMLchem \defineXMLargument [ichem] \doXMLichem \defineXMLargument [dchem] \doXMLdchem \unexpanded\def\doXMLchem {\ifhmode\@EA\doXMLichem\else\@EA\doXMLdchem\fi} \unexpanded\def\doXMLichem{\XMLremapdata[cml]{$\rm}{$}} \unexpanded\def\doXMLdchem{\XMLremapdata[cml]{\dostartformula{}\rm}{\dostopformula}} \startXMLmapping [cml] \remapXMLsequence [molecule] [CPA] \doCMLmolecule \remapXMLsequence [ion] [CPA] \doCMLion \remapXMLsequence [atom] [CPA] \doCMLatom \setupCMLappearance [ion] [\c!alternative=\v!a] \let\CMLtopcaption\empty \let\CMLbotcaption\empty \def\someCMLtext#1% {\ifx\CMLtopcaption\empty \setbox0\null \else \setbox0\hbox{\txx\setstrut\strut\ignorespaces\CMLtopcaption\unskip}% \fi \setbox2\hbox{\ignorespaces\strut#1\unskip}% \ifx\CMLbotcaption\empty \setbox4\null \else \setbox4\hbox{\txx\setstrut\strut\ignorespaces\CMLbotcaption\unskip}% \fi \scratchdimen=\wd2\advance\scratchdimen-.5em \ifdim\wd0>\scratchdimen \setbox0\hbox spread .5em{\hss\box0\hss}% \fi \ifdim\wd4>\scratchdimen \setbox4\hbox spread .5em{\hss\box4\hss}% \fi \setbox6=\vbox {\offinterlineskip\halign{\hss##\hss\cr\copy0\cr\copy2\cr\copy4\cr}}% \hbox{\lower\ht4\hbox{\lower\dp2\box6}}} \def\CMLscript#1% {$\scriptscriptstyle\ignorespaces#1\unskip$} \def\doifnotXMLzero#1#2#3% {\ifcase\XMLpar{#1}{#2}{0}\else#3{\XMLpar{#1}{#2}{0}}\fi} \newcounter\currentCMLatom \newcounter\nofCMLatoms \def\doCMLmolecule#1#2% {\resetCMLcaption \processXMLRchild{caption}{#2}% \someCMLtext {\bgroup \newcounter\currentCMLatom \newcounter\nofCMLatoms \getXMLarguments{cml-m}{n="0" #1}% \doifnotXMLzero{cml-m}{n}\firstofoneargument \ignorespaces \processXMLRchild{atom,ion,bond/,singlebond/,doublebond/,triplebond/}{#2}% \unskip \egroup}% \ignorespaces} \def\doCMLion#1#2% {\resetCMLcaption \processXMLRchild{caption}{#2}% \someCMLtext {\bgroup \newcounter\currentCMLatom \newcounter\nofCMLatoms \getXMLarguments{cml-i}{n="0" charge="0" #1}% \doifnotXMLzero{cml-i}{n}\firstofoneargument \doifelse\@@CMLionalternative\v!b {[\ignorespaces \processXMLRchild{atom,bond/,singlebond/,doublebond/,triplebond/}{#2}% \unskip]% \high{\doifnotXMLzero{cml-i}{charge}\CMLscript}} {\countXMLRchild{atom}{\ignorespaces#2\unskip}% \let\nofCMLatoms\nofXMLRchildren \ignorespaces \processXMLRchild{atom,bond/,singlebond/,doublebond/,triplebond/}{#2}% \unskip}% \egroup}% \ignorespaces} \def\doCMLatom#1#2% {\getXMLarguments{cml-a}{n="0" weight="0" protons="0" charge="0" #1}% \increment\currentCMLatom \resetCMLcaption \someCMLtext {\bgroup \lohi {\doifnotXMLzero{cml-a}{protons}\CMLscript} {\doifnotXMLzero{cml-a}{weight}\CMLscript}% \ignorespaces#2\unskip \lohi {\doifnotXMLzero{cml-a}{n}\CMLscript} {\ifnum\nofCMLatoms=\currentCMLatom\relax \doifnotXMLzero{cml-i}{charge}\CMLscript \else \doifnotXMLzero{cml-a}{charge}\CMLscript \fi}% \egroup}% \ignorespaces} \remapXMLsequence [reaction] [CPA] \doCMLreaction \let\someCMLsymbol\gobbleoneargument \let\someCMLarrow \gobblethreearguments \def\doCMLreaction#1#2% {\begingroup \let\someCMLsymbol\dosomeCMLsymbol \let\someCMLarrow \dosomeCMLarrow #2% \endgroup} \remapXMLsequence [plus] [CPA] \doCMLplus \remapXMLsingular [plus] [CPA] \doCMLplus \remapXMLsequence [minus] [CPA] \doCMLminus \remapXMLsingular [minus] [CPA] \doCMLminus \remapXMLsequence [equal] [CPA] \doCMLequal \remapXMLsingular [equal] [CPA] \doCMLequal \def\doCMLplus #1#2{\someCMLsymbol{+}} \def\doCMLminus#1#2{\someCMLsymbol{-}} \def\doCMLequal#1#2{\someCMLsymbol{=}} \def\dosomeCMLsymbol#1% {\quad\mathop{#1}\quad} \remapXMLsequence [gives] [CPA] \doCMLgives \remapXMLsingular [gives] [CPA] \doCMLgives \remapXMLsequence [equilibrium] [CPA] \doCMLequilibrium \remapXMLsingular [equilibrium] [CPA] \doCMLequilibrium \remapXMLsequence [mesomeric] [CPA] \doCMLmesomeric \remapXMLsingular [mesomeric] [CPA] \doCMLmesomeric \def\doCMLgives #1#2{\resetCMLcaption#2\someCMLgives } \def\doCMLequilibrium#1#2{\resetCMLcaption#2\someCMLequilibrium} \def\doCMLmesomeric #1#2{\resetCMLcaption#2\someCMLmesomeric } \def\dosomeCMLarrow#1% {\quad \someCMLtext {$\vcenter{\offinterlineskip\halign{##\cr\hskip3em\cr#1\cr}}$}% \quad} \def\someCMLgives {\someCMLarrow{\rightarrowfill}} \def\someCMLequilibrium {\someCMLarrow{\rightarrowfill\cr\noalign{\nointerlineskip}\leftarrowfill}} \def\someCMLmesomeric {\someCMLarrow{$\leftarrow\hskip-1em$\rightarrowfill}} \remapXMLsequence [cml] [caption] [CPA] \doCMLcaption \let\CMLtopcaption\empty \let\CMLbotcaption\empty \def\dodoCMLcaption#1#2% {\def\CMLbotcaption{#2}% \def\doCMLcaption##1##2% {\def\CMLtopcaption{##2}% \let\doCMLcaption\gobbletwoarguments}} \def\resetCMLcaption {\let\CMLtopcaption\empty \let\CMLbotcaption\empty \let\doCMLcaption\dodoCMLcaption} \resetCMLcaption \remapXMLsingular [bond] [CPA] \doCMLbond \remapXMLsingular [singlebond] [CPA] \doCMLsinglebond \remapXMLsingular [doublebond] [CPA] \doCMLdoublebond \remapXMLsingular [triplebond] [CPA] \doCMLtriplebond \def\doCMLbond#1#2% {\getXMLarguments{cml-b}{n="0" #1}% \ifcase\XMLpar{cml-b}{n}{0}\relax \doCMLsinglebond \or \doCMLdoublebond \or \doCMLtriplebond \fi} \def\someCMLbond {\hrule \!!width \hsize \!!height .1ex} % .4pt \def\dosomeCMLbond#1#2#3% {{\setbox\scratchbox=\hbox{$M$}% \vbox to \ht\scratchbox {\hsize\wd\scratchbox \vskip.1\wd\scratchbox #1\vfill#2\vfill#3% \vskip.1\wd\scratchbox}}} \def\doCMLsinglebond {\dosomeCMLbond\relax\someCMLbond\relax} \def\doCMLdoublebond {\dosomeCMLbond\someCMLbond\relax\someCMLbond} \def\doCMLtriplebond {\dosomeCMLbond\someCMLbond\someCMLbond\someCMLbond} \stopXMLmapping \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/catc-xml.mkii0000644000175000017500000001177614536300610024677 0ustar hillehille%D \module %D [ file=catc-xml, %D version=2006.09.18, %D title=\CONTEXT\ Catcode Macros, %D subtitle=\XML\ Catcode Tables, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Catcode Regimes / XML} \ifdefined \xmlcatcodesn \else \newcatcodetable \xmlcatcodesn \fi % normal \ifdefined \xmlcatcodese \else \newcatcodetable \xmlcatcodese \fi % entitle \ifdefined \xmlcatcodesr \else \newcatcodetable \xmlcatcodesr \fi % reduce \startcatcodetable \xmlcatcodesn \catcode\tabasciicode \spacecatcode \catcode\endoflineasciicode \endoflinecatcode \catcode\formfeedasciicode \endoflinecatcode \catcode\spaceasciicode \spacecatcode \catcode\endoffileasciicode \ignorecatcode \catcode\ampersandasciicode \activecatcode \catcode`\< \activecatcode \catcode`\> \othercatcode \catcode`\" \othercatcode % probably not needed any more \catcode`\/ \othercatcode % probably not needed any more \catcode`\' \othercatcode % probably not needed any more \catcode\tildeasciicode \othercatcode % probably not needed any more \catcode\hashasciicode \othercatcode % probably not needed any more \catcode\backslashasciicode \othercatcode % probably not needed any more \stopcatcodetable \startcatcodetable \xmlcatcodese \catcode\tabasciicode \spacecatcode \catcode\endoflineasciicode \endoflinecatcode \catcode\formfeedasciicode \endoflinecatcode \catcode\spaceasciicode \spacecatcode \catcode\endoffileasciicode \ignorecatcode \catcode\ampersandasciicode \activecatcode \catcode`\< \activecatcode \catcode`\> \activecatcode \catcode\hashasciicode \activecatcode \catcode\dollarasciicode \activecatcode \catcode\commentasciicode \activecatcode \catcode\backslashasciicode \activecatcode \catcode\circumflexasciicode\activecatcode \catcode\underscoreasciicode\activecatcode \catcode\leftbraceasciicode \activecatcode \catcode\rightbraceasciicode\activecatcode \catcode\barasciicode \activecatcode \catcode\tildeasciicode \activecatcode \stopcatcodetable \startcatcodetable \xmlcatcodesr \catcode\tabasciicode \spacecatcode \catcode\endoflineasciicode \endoflinecatcode \catcode\formfeedasciicode \endoflinecatcode \catcode\spaceasciicode \spacecatcode \catcode\endoffileasciicode \ignorecatcode \catcode\ampersandasciicode \activecatcode \catcode`\< \activecatcode \catcode`\> \activecatcode \catcode\hashasciicode \activecatcode \catcode\dollarasciicode \activecatcode \catcode\commentasciicode \activecatcode \catcode\backslashasciicode \activecatcode \catcode\circumflexasciicode\activecatcode \catcode\underscoreasciicode\activecatcode \catcode\leftbraceasciicode \activecatcode \catcode\rightbraceasciicode\activecatcode \catcode\barasciicode \activecatcode \catcode\tildeasciicode \activecatcode \stopcatcodetable %D Next we hook in some active character definitions. \letcatcodecommand \xmlcatcodesn \ampersandasciicode \relax \letcatcodecommand \xmlcatcodesn `\< \relax \letcatcodecommand \xmlcatcodese \ampersandasciicode \relax \letcatcodecommand \xmlcatcodese `\< \relax \letcatcodecommand \xmlcatcodesr \ampersandasciicode \relax \letcatcodecommand \xmlcatcodesr `\< \relax \letcatcodecommand \xmlcatcodese \hashasciicode \relax \letcatcodecommand \xmlcatcodese \dollarasciicode \relax \letcatcodecommand \xmlcatcodese \commentasciicode \relax \letcatcodecommand \xmlcatcodese \backslashasciicode \relax \letcatcodecommand \xmlcatcodese \circumflexasciicode \relax \letcatcodecommand \xmlcatcodese \underscoreasciicode \relax \letcatcodecommand \xmlcatcodese \leftbraceasciicode \relax \letcatcodecommand \xmlcatcodese \rightbraceasciicode \relax \letcatcodecommand \xmlcatcodese \barasciicode \relax \letcatcodecommand \xmlcatcodese \tildeasciicode \relax \letcatcodecommand \xmlcatcodesr \hashasciicode \relax \letcatcodecommand \xmlcatcodesr \dollarasciicode \relax \letcatcodecommand \xmlcatcodesr \commentasciicode \relax \letcatcodecommand \xmlcatcodesr \backslashasciicode \relax \letcatcodecommand \xmlcatcodesr \circumflexasciicode \relax \letcatcodecommand \xmlcatcodesr \underscoreasciicode \relax \letcatcodecommand \xmlcatcodesr \leftbraceasciicode \relax \letcatcodecommand \xmlcatcodesr \rightbraceasciicode \relax \letcatcodecommand \xmlcatcodesr \barasciicode \relax \letcatcodecommand \xmlcatcodesr \tildeasciicode \relax \let\xmlcatcodes \xmlcatcodesn % beware, in mkiv we use \notcatcodes \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-dis.mkii0000644000175000017500000000465414536300610024662 0ustar hillehille%D \module %D [ file=lang-dis, %D version=2005.02.12, %D title=\CONTEXT\ Language Macros, %D subtitle=Distribution Patterns, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This code used to be part of cont-usr.tex but now that we %D use more generic pattern files, we decided to isolate these %D mappings. \writestatus{loading}{ConTeXt Language Macros / Distribution Patterns} %D Hyphenation patterns are normally sought in filed named %D \type {lang-xx.pat}. When present on the system, those %D patterns take precedence. This list will be adapted to %D the actual situation, given that it's noticed. %D The us/uk hyph 1/2 files will go \unprotect % \definefilefallback [lang-ca.pat] [cahyph.tex] % \definefilefallback [lang-da.pat] [dkhyph.tex] % \definefilefallback [lang-de.pat] [dehyphn.tex] % \definefilefallback [lang-es.pat] [eshyph.tex] % \definefilefallback [lang-fi.pat] [fihyph.tex] % \definefilefallback [lang-fr.pat] [frhyph.tex] % \definefilefallback [lang-hr.pat] [hrhyph.tex] % \definefilefallback [lang-hu.pat] [huhyph.tex] % \definefilefallback [lang-it.pat] [ithyph.tex] % \definefilefallback [lang-la.pat] [lahyph7.tex] % \definefilefallback [lang-no.pat] [nohyph.tex] % \definefilefallback [lang-pl.pat] [plhyph.tex] % \definefilefallback [lang-pt.pat] [pthyph.tex] % \definefilefallback [lang-ro.pat] [rohyph.tex] % \definefilefallback [lang-ru.pat] [ruenhyph.tex] % \definefilefallback [lang-sl.pat] [sihyph.tex,slhyph.tex] % \definefilefallback [lang-sv.pat] [svhyph.tex,sehyph.tex] % \definefilefallback [lang-tr.pat] [tkhyph.tex,trhyph.tex] % \definefilefallback [lang-ua.pat] [ukrenhyp.tex] % \definefilefallback [lang-uk.pat] [ukhyphen.tex,ukhyph.tex] % \definefilefallback [lang-us.pat] [ushyphmax.tex,ushyph.tex,ushyph1.tex,ushyph2.tex,hyphen.tex] % \definefilefallback [lang-nl.pat] [nehyph96.tex,dutch96.pat,nehyph.tex] % \definefilefallback [lang-cz.pat] [czhyphen.tex,czhyph.pat] % \definefilefallback [lang-sk.pat] [skhyphen.tex,skhyph.pat] % \definefilefallback [lang-deo.pat] [dehypht.tex] % \definefilesynonym [lang-af.pat] [lang-nl.pat] % \definefilesynonym [lang-en.pat] [lang-us.pat] % \definefilesynonym [lang-en.hyp] [lang-us.hyp] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-ini.mkii0000644000175000017500000007034714536300610024671 0ustar hillehille%D \module %D [ file=meta-ini, %D version=1999.07.10, %D title=\METAPOST\ Graphics, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % currently the running color influences the mp graphic in % pdftex, but this will change [i.e. become optional]; one % problem is that pdf has no grouping with regards to the % color \writestatus{loading}{MetaPost Graphics / Initializations} \unprotect %D This module extends the functionality of the support module %D \type {supp-mps}, the module that is responsible for %D \METAPOST\ inclusion in \CONTEXT. Some basic macros will be %D extended. Since some support is depends on \METAPOST\ %D macros. so let's first preload a few auxiliary \METAPOST\ %D files. \maxnofMPgraphics = 4000 % metafun disables the 4K boundary \appendtoks \flushMPgraphics \to \everygoodbye % \everylastshipout \def\@@MPG{@MPG@} %D Since we want lables to follow the document settings, we %D also set the font related variables. \ifnum\texengine=\xetexengine \startMPinitializations % scale is not yet ok defaultfont:="rm-lmtt10"; defaultscale:=\the\bodyfontsize/10pt; \stopMPinitializations \else \startMPinitializations % scale is not yet ok defaultfont:="\truefontname{Regular}"; defaultscale:=\the\bodyfontsize/10pt; \stopMPinitializations \fi %D In order to support fancy text features (like outline %D fonts), we set: \startMPextensions graphictextformat:="context"; graphictextdirective "\the\everyMPTEXgraphic"; \stopMPextensions % \startMPextensions % textextdirective "\the\everyMPTEXgraphic"; % \stopMPextensions %D A signal that we're in combines \CONTEXT||\METAFUN mode: \startMPextensions string contextversion; contextversion:="\contextversion"; \stopMPextensions %D Some safeguards: %D %D \starttyping %D \appendtoks \cleanupfeatures \to \everyMPgraphic %D \stoptyping %D %D No, we don't want that (else we loose UTF etc). %D Another one: \prependtoks \MPstaticgraphictrue \to \everyoverlay \prependtoks \MPstaticgraphictrue \to \everypagebody %D We save the number of graphics for the sake of \TEXEXEC. \newcounter\totalnofMPgraphics \def\thenofMPgraphics{\the\nofMPgraphics} % from supp-mps \appendtoks \savecurrentvalue\totalnofMPgraphics\thenofMPgraphics \to \everybye %D \macros %D {setupMPvariables} %D %D When we build collections of \METAPOST\ graphics, like %D background and buttons, the need for passing settings %D arises. By (mis|)|using the local prefix that belongs to %D \type {\framed}, we get a rather natural interface to %D backgrounds. To prevent conflicts, we will use the \type %D {-} in \METAPOST\ specific variables, like: %D %D \starttyping %D \setupMPvariables[meta:button][size=20pt] %D \stoptyping \def\@@meta{meta:} \def\setupMPvariables {\dodoubleempty\dosetupMPvariables} \def\dosetupMPvariables[#1][#2]% {\ifsecondargument \getrawparameters[#1:][#2]% brr, todo: [\@@meta#1:] \else \getrawparameters[\@@meta][#1]% \fi} \let\@@framed\s!unknown \def\MPvariable#1% {\csname \ifcsname\@@framed\@@meta#1\endcsname\@@framed\fi\@@meta#1% \endcsname} \let\MPvar\MPvariable \let\setMPvariables\setupMPvariables \def\MPrawvar#1#2{\csname#1:#2\endcsname} \def\presetMPvariable {\dodoubleargument\dopresetMPvariable} \def\dopresetMPvariable[#1][#2=#3]% {\doifundefined{#1:#2}{\setvalue{#1:#2}{#3}}} \def\useMPvariables {\dodoubleargument\douseMPvariables} \def\douseMPvariables[#1][#2]% {\def\@@meta{#1:}% \prepareMPvariables{#2}} %D \macros %D {startuniqueMPgraphic, uniqueMPgraphic} %D %D This macros is probably of most use to myself, since I like %D to use graphics that adapt themselves. The next \METAPOST\ %D kind of graphic is both unique and reused when possible. %D %D \starttyping %D \defineoverlay[example][\uniqueMPgraphic{test}] %D %D \startuniqueMPgraphic {test} %D draw unitsquare xscaled \overlaywidth yscaled \overlayheight ; %D \stopuniqueMPgraphic %D \stoptyping %D For educational purposes, we show the original version %D first. This one used a rather simple method for determining %D the uniqueness. %D %D \starttyping %D \long\def\startuniqueMPgraphic#1#2\stopuniqueMPgraphic% %D {\setvalue{\@@MPG#1}% %D {\startreusableMPgraphic{\overlaystamp:#1}#2\stopreusableMPgraphic %D \reuseMPgraphic{\overlaystamp:#1}}} %D %D \def\uniqueMPgraphic#1% %D {\getvalue{\@@MPG#1}} %D \stoptyping %\def\overlaystamp % watch the \MPcolor, since colors can be redefined % {\overlaywidth:\overlayheight:\overlaydepth % :\MPcolor{\overlaycolor}:\MPcolor{\overlaylinecolor}} \def\overlaystamp % watch the \MPcolor, since colors can be redefined {\overlaywidth:\overlayheight:\overlaydepth :\MPcolor\overlaycolor:\MPcolor\overlaylinecolor} %D A better approach is to let additional variables play a role %D in determining the uniqueness. In the next macro, the %D second, optional, argument is used to guarantee the %D uniqueness, as well as prepare variables for passing them to %D \METAPOST. %D %D \starttyping %D \startuniqueMPgraphic{meta:hash}{gap,angle,...} %D \stoptyping %D %D The calling macro also accepts a second argument. For %D convenient use in overlay definitions, we use \type {{}} %D instead of \type {[]}. %D %D \starttyping %D \uniqueMPgraphic{meta:hash}{gap=10pt,angle=30} %D \stoptyping \long\def\handleuniqueMPgraphic#1#2#3% {\blabelgroup \def\@@meta{#1:}% \extendMPoverlaystamp{#2}% incl prepare \ifundefined{\@@MPG\overlaystamp:#1}% \enableincludeMPgraphics \startMPgraphic#3\stopMPgraphic \doifobjectssupportedelse\donothing\useMPboxfalse \ifuseMPbox \@EA\douseMPbox \else \@EA\nouseMPbox \fi {\@@MPG\overlaystamp:#1}% \fi \getvalue{\@@MPG\overlaystamp:#1}% \elabelgroup} \long\def\startuniqueMPgraphic {\blabelgroup \dodoublegroupempty\dostartuniqueMPgraphic} \long\def\dostartuniqueMPgraphic {\obeyMPlines \dodostartuniqueMPgraphic} \long\def\dodostartuniqueMPgraphic#1#2#3\stopuniqueMPgraphic% {\long\setgvalue{\@@MPG#1}{\handleuniqueMPgraphic{#1}{#2}{#3}}% \elabelgroup} \unexpanded\def\uniqueMPgraphic {\dodoublegroupempty\douniqueMPgraphic} \def\douniqueMPgraphic#1#2% {\blabelgroup \setupMPvariables[#1][#2]% \getvalue{\@@MPG#1}{}% \elabelgroup} \let\stopuniqueMPcode \relax % so that we can use it in \expanded \def\includeMPgraphic#1% {\executeifdefined{\@@MPG#1};} % ; if not found \long\def\handleuseMPgraphic#1#2#3% {\blabelgroup \def\@@meta{#1:}% \prepareMPvariables{#2}% \enableincludeMPgraphics \startMPgraphic#3\stopMPgraphic \ifMPrun \else % see mfun-004 : processing buffer \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}% \placeMPgraphic \fi \deallocateMPslot\currentMPgraphic \elabelgroup} \long\def\startuseMPgraphic {\blabelgroup \dodoublegroupempty\dostartuseMPgraphic} \long\def\dostartuseMPgraphic {\obeyMPlines \dodostartuseMPgraphic} \long\def\dodostartuseMPgraphic#1#2#3\stopuseMPgraphic {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}% \elabelgroup} \long\def\startusableMPgraphic % redundant but handy {\blabelgroup \dodoublegroupempty\dostartusableMPgraphic} \long\def\dostartusableMPgraphic % redundant but handy {\obeyMPlines \dodostartusableMPgraphic} \long\def\dodostartusableMPgraphic#1#2#3\stopusableMPgraphic {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}% \elabelgroup} \long\def\handlereusableMPgraphic#1#2#3% {\blabelgroup \def\@@meta{#1:}% \prepareMPvariables{#2}% \enableincludeMPgraphics \startMPgraphic#3\stopMPgraphic \doifobjectssupportedelse\donothing\useMPboxfalse \ifuseMPbox \@EA\douseMPbox \else \@EA\nouseMPbox \fi {\@@MPG#1}% \getvalue{\@@MPG#1}% \elabelgroup} \long\def\startreusableMPgraphic {\blabelgroup \dodoublegroupempty\dostartreusableMPgraphic} \def\dostartreusableMPgraphic {\obeyMPlines \dodostartreusableMPgraphic} \long\def\dodostartreusableMPgraphic#1#2#3\stopreusableMPgraphic {\long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}{#3}}% \elabelgroup} \unexpanded\def\useMPgraphic {\dodoublegroupempty\douseMPgraphic} \def\douseMPgraphic#1#2% {\blabelgroup \setupMPvariables[#1][#2]% \getvalue{\@@MPG#1}{}% \elabelgroup} \let\reuseMPgraphic\useMPgraphic \let\stopuseMPcode \relax % so that we can use it in \expanded \let\stopusableMPcode \relax % so that we can use it in \expanded \let\stopreusableMPcode \relax % so that we can use it in \expanded \let\stopuniqueMPcode \relax % so that we can use it in \expanded \def\enableincludeMPgraphics {\let\handleuseMPgraphic \thirdofthreearguments \let\handlereusableMPgraphic\thirdofthreearguments} % todo: each code/page/buffer a var class %D \macros %D {startuniqueMPpagegraphic,uniqueMPpagegraphic} %D %D Experimental. \def\MPpageprefix{\doifoddpageelse oe:} \def\overlaypagestamp {\MPpageprefix\overlaywidth:\overlayheight:\overlaydepth :\MPcolor\overlaycolor:\MPcolor\overlaylinecolor} \long\def\startuniqueMPpagegraphic {\blabelgroup \dodoublegroupempty\dostartuniqueMPpagegraphic} \long\def\dostartuniqueMPpagegraphic {\obeyMPlines \dodostartuniqueMPpagegraphic} \long\def\dodostartuniqueMPpagegraphic#1#2#3\stopuniqueMPpagegraphic {\long\setgvalue{\@@MPG o:#1}{\handleuniqueMPgraphic{o:#1}{#2}{#3}}% \long\setgvalue{\@@MPG e:#1}{\handleuniqueMPgraphic{e:#1}{#2}{#3}}% \elabelgroup} \unexpanded\def\uniqueMPpagegraphic {\dodoublegroupempty\douniqueMPpagegraphic} % \def\douniqueMPpagegraphic#1#2% % {\blabelgroup % \let\overlaystamp\overlaypagestamp % \setupMPvariables[#1][#2]% % \getvalue{\@@MPG\MPpageprefix#1}{}% % \elabelgroup} \def\douniqueMPpagegraphic#1#2% {\blabelgroup \let\overlaystamp\overlaypagestamp \setupMPvariables[\MPpageprefix#1][#2]% prefix is new here \getvalue{\@@MPG\MPpageprefix#1}{}% \elabelgroup} %D One way of defining a stamp is: %D %D \starttyping %D \def\extendMPoverlaystamp#1% %D {\def\docommand##1% %D {\edef\overlaystamp{\overlaystamp:\MPvariable{##1}}}% %D \processcommalist[#1]\docommand} %D \stoptyping %D Since we need to feed \METAPOST\ with expanded dimensions, %D we introduce a dedicated expansion engine. \def\prepareMPvariable#1% {\ifundefined{\@@framed\@@meta#1}% \doprepareMPvariable{\@@meta#1}% \else \doprepareMPvariable{\@@framed\@@meta#1}% \fi} % \startlines % \def\xxx{\lineheight} \doprepareMPvariable{xxx} \xxx % \def\xxx{2pt} \doprepareMPvariable{xxx} \xxx % \def\xxx{2} \doprepareMPvariable{xxx} \xxx % \def\xxx{\scratchcounter} \doprepareMPvariable{xxx} \xxx % \def\xxx{red} \doprepareMPvariable{xxx} \xxx % \def\xxx{0.4} \doprepareMPvariable{xxx} \xxx % \stoplines \def\doprepareMPvariable#1% {\edef\theMPvariable{\getvalue{#1}}% \doifelsenothing\theMPvariable {\setevalue{#1}{\MPcolor{black}}} {\defconvertedcommand\ascii\theMPvariable % otherwise problems \doifcolorelse \ascii % with 2\bodyfontsize {\setevalue{#1}{\MPcolor\theMPvariable}} {% can be aux macro \setbox\scratchbox\hbox{\scratchdimen\theMPvariable sp}% \ifdim\wd\scratchbox=\zeropoint % \scratchcounter\theMPvariable % \setevalue{#1}{\the\scratchcounter}% % also accepts 0.number : \setevalue{#1}{\number\theMPvariable}% \else \scratchdimen\theMPvariable \setevalue{#1}{\the\scratchdimen}% \fi}}} %D We redefine \type {\extendMPoverlaystamp} to preprocess %D variables using \type {\prepareMPvariable}. \def\doextendMPoverlaystamp#1% {\prepareMPvariable{#1}% \edef\overlaystamp{\overlaystamp:\MPvariable{#1}}} \def\extendMPoverlaystamp#1% {\processcommalist[#1]\doextendMPoverlaystamp} \def\prepareMPvariables#1% {\processcommalist[#1]\prepareMPvariable} %D \macros %D {MPdatafile} %D %D We redefine a macro from \type {supp-mps.tex}: \def\MPdatafile {\bufferprefix mpd-\the\currentMPgraphic.mpd} %D \macros %D {MPrunfile} %D %D This one is more abstract and does not assume knowledge %D of buffer prefixes. \def\MPrunfile#1% {\bufferprefix mprun.#1} %D \macros %D {getMPdata} %D %D When we collect graphics in one file, we run into %D troubles, since \METAPOST\ has a built in limit (of 4) %D on the number of files it can handle. It's therefore %D better to collect all data in one file and filter it. \def\MPdataMPDfile{\jobname-mpgraph.mpd} \def\MPdataMPOfile{\jobname-mpgraph.mpo} \def\MPdataMPYfile{\jobname-mpgraph.mpy} \startMPextensions boolean collapse_data; collapse_data:=true; def data_mpd_file="\MPdataMPDfile"; enddef ; def data_mpo_file="\MPdataMPOfile"; enddef ; def data_mpy_file="\MPdataMPYfile"; enddef ; \stopMPextensions \def\getMPdata {\long\def\MPdata##1##2{\ifnum##1=\currentMPgraphic\relax##2\fi}% \startreadingfile % \startnointerference % no, else we need to do all data global \readlocfile\MPdataMPDfile\donothing\donothing % \stopnointerference \stopreadingfile} %D We have to enable this mechanism with: \startMPextensions \stopMPextensions %D For the moment, the next one is a private macro: \def\processMPbuffer {\dosingleempty\doprocessMPbuffer} \def\doprocessMPbuffer[#1]% {\doifelsenothing{#1} {\doprocessMPbuffer[\jobname]} {\bgroup \setnormalcatcodes \obeyMPlines %\let\par\empty % oeps, this makes dvi mode graphics hang when not found \!!toksa\emptytoks \def\copyMPbufferline{\expandafter\appendtoks\fileline\to\!!toksa}% \def\dodoprocessMPbuffer##1% {\doprocessfile\scratchread{\TEXbufferfile{##1}}\copyMPbufferline}% \processcommalist[#1]\dodoprocessMPbuffer \@EA\startMPcode\the\!!toksa\stopMPcode % more efficient \egroup}} \def\runMPbuffer {\dosingleempty\dorunMPbuffer} \def\dorunMPbuffer[#1]% processing only {{\MPruntrue\doprocessMPbuffer[#1]}} %D \macros %D {startMPenvironment, resetMPenvironment} %D %D In order to synchronize the main \TEX\ run and the runs %D local to \METAPOST, environments can be passed. \ifx\everyMPTEXgraphic\undefined \newtoks\everyMPTEXgraphic \fi %D A more general way of passing environments is: \def\startMPenvironment % second arg gobbles spaces, so that reset gives \emptytoks {\bgroup \catcode`\^^M=\@@space \dodoubleempty\dostartMPenvironment} \long\def\dostartMPenvironment[#1][#2]#3\stopMPenvironment {\egroup \doif{#1}\s!reset\resetMPenvironment % reset mp toks \doif{#1}\v!global{#3}% % use in main doc too \doif{#1}+{#3}% % use in main doc too \defconvertedargument\ascii{#3}% \expandafter\appendtoks\ascii\to\everyMPTEXgraphic} \def\resetMPenvironment {\everyMPTEXgraphic\emptytoks % = is really needed ! \startMPenvironment \global\loadfontfileoncetrue \stopMPenvironment} \resetMPenvironment \def\useMPenvironmentbuffer[#1]% {\expanded{\startMPenvironment\noexpand\readfile{\TEXbufferfile{\jobname}}{}{}}\stopMPenvironment} % \useMPenvironmentbuffer[mp] % what was this? %D This command takes \type {[reset]} as optional %D argument. %D %D \starttyping %D \startMPenvironment %D \setupbodyfont[pos,14.4pt] %D \stopMPenvironment %D %D \startMPcode %D draw btex \sl Hans Hagen etex scaled 5 ; %D \stopMPcode %D \stoptyping %D %D The \type {\resetMPenvironment} is a quick way to erase %D the token list. %D %D You should be aware of independencies. For instance, if you use a font %D in a graphic that is not used in the main document, you need to load the %D typescript at the outer level (either directly or by using the global %D option). %D %D \starttyping %D \usetypescript[palatino][texnansi] %D %D \startMPenvironment %D \usetypescript[palatino][texnansi] %D \enableregime[utf] %D \setupbodyfont[palatino] %D \stopMPenvironment %D %D \startMPpage %D draw btex aap‒noot coördinatie – één etex ; %D \stopMPpage %D \stoptyping %D We don't want spurious files, do we? %\def\initializeMPgraphics % {%\ifx\bufferprefix\empty \else % \immediate\openout\MPwrite\MPgraphicfile.mp % \immediate\write\MPwrite{end.}% % \immediate\closeout\MPwrite % }%\fi} % strange : % \def\initializeMPgraphicfile % {\bgroup % \doinitializeMPgraphicfile % \MPruntrue % \doinitializeMPgraphicfile % \egroup} % \def\doinitializeMPgraphicfile % {\immediate\openout\scratchwrite\MPgraphicfile.mp % \immediate\write\scratchwrite{end.}% % \immediate\closeout\scratchwrite} \def\initializeMPgraphicfile {\immediate\openout\scratchwrite\MPgraphicfile.mp \immediate\write\scratchwrite{end.}% \immediate\closeout\scratchwrite} \def\initializeMPgraphics {\bgroup \initializeMPgraphicfile % \ifx\bufferprefix\empty\else % \let\bufferprefix\empty % \initializeMPgraphicfile % \fi \egroup} %D Loading specific \METAPOST\ related definitions is %D accomplished by: \def\douseMPlibrary#1% {\ifundefined{\c!file\f!metapostprefix#1}% \letvalueempty{\c!file\f!metapostprefix#1}% \makeshortfilename[\truefilename{\f!metapostprefix#1}]% \startreadingfile \readsysfile{\shortfilename.\mksuffix} {\showmessage\m!metapost1{#1}} {\readsysfile{\shortfilename.tex} {\showmessage\m!metapost1{#1}} \donothing}% \stopreadingfile \fi} \def\useMPlibrary[#1]% {\processcommalist[#1]\douseMPlibrary} %D \macros %D {setMPtext, MPtext, MPstring, MPbetex} %D %D To be documented: %D %D \starttyping %D \setMPtext{identifier}{text} %D %D \MPtext {identifier} %D \MPstring{identifier} %D \MPbetex {identifier} %D \stoptyping \def\@@MPT{@MPT@} \def\forceMPTEXgraphic {\long\def\checkMPTEXgraphic##1{\global\MPTEXgraphictrue}} \def\setMPtext#1#2% todo : #1 must be made : safe {%\forceMPTEXgraphic \defconvertedargument\ascii{#2}% \dodoglobal\letvalue{\@@MPT#1}\ascii} % \def\MPtext #1{\getvalue{\@@MPT#1}} % \def\MPstring #1{"\getvalue{\@@MPT#1}"} % \def\MPbetex #1{btex \getvalue{\@@MPT#1} etex} \def\MPtext #1{\executeifdefined{\@@MPT#1}\empty} \def\MPstring #1{"\executeifdefined{\@@MPT#1}\empty"} \def\MPbetex #1{btex \executeifdefined{\@@MPT#1}\empty\space etex} %D Unfortunately \METAPOST\ does not have \CMYK\ support %D built in, but by means of specials we can supply the %D information needed to handle them naturaly. \newif\ifMPcmykcolors \MPcmykcolorstrue \newif\ifMPspotcolors \MPspotcolorstrue \startMPinitializations cmykcolors:=\ifMPcmykcolors true\else false\fi; spotcolors:=\ifMPspotcolors true\else false\fi; \stopMPinitializations %D In order to communicate conveniently with the \TEX\ %D engine, we introduce some typesetting variables. % todo : backgroundoffsets \startMPextensions color OverlayColor,OverlayLineColor; \stopMPextensions \startMPinitializations OverlayWidth:=\overlaywidth; OverlayHeight:=\overlayheight; OverlayDepth:=\overlayheight; OverlayColor:=\MPcolor{\overlaycolor}; OverlayLineWidth:=\overlaylinewidth; OverlayLineColor:=\MPcolor{\overlaylinecolor}; % BaseLineSkip:=\the\baselineskip; LineHeight:=\the\baselineskip; BodyFontSize:=\the\bodyfontsize; % TopSkip:=\the\topskip; StrutHeight:=\strutheight; StrutDepth:=\strutdepth; % CurrentWidth:=\the\hsize; CurrentHeight:=\the\vsize; % EmWidth:=\the\emwidth; ExHeight:=\the\exheight; % PageNumber:=\the\pageno; RealPageNumber:=\the\realpageno; LastPageNumber:= \lastpage; \stopMPinitializations \appendtoks \disablediscretionaries \disablecompoundcharacters \to\everyMPgraphic % New, experimental (if complaints than only in enco-ffr.mkii), well % Mojca complained that it does not work with utf-8 and textext, see % ** in meta-tex. \appendtoks \chardef\activecharactermode\zerocount \to\everyMPgraphic \appendtoks \expanded{\definecolor[currentcolor][\currentcolorname]}% \to \everyMPgraphic \appendtoks \baselineskip1\baselineskip \lineheight 1\lineheight \topskip 1\topskip \to \everyMPgraphic %D Alas, the prologue settings differ per driver. \ifx\undefined\MPprologues \def\MPprologues{0} \fi \startMPinitializations prologues:=\MPprologues; mpprocset:=1; \stopMPinitializations \appendtoks \def\MPprologues{0}% \def\MPOSTdriver{dvips}% \to \everyresetspecials %D \macros %D {PDFMPformoffset} %D %D In \PDF, forms are clipped and therefore we have to take %D precautions to get this right. Since this is related to %D objects, we use the same offset as used there. \def\PDFMPformoffset{\objectoffset} %D \macros %D {insertMPfile} %D %D Bypassing the special driver and figure mechanism is not %D that nice but saves upto 5\% time in embedding \METAPOST\ %D graphics by using the low level \PDF\ converter directly, %D given of course that we use \PDFTEX. As a result we need to %D fool around with the object trigger. \newtoks\everyinsertMPfile %D First we present the reasonable fast alternative that we %D happily used for some time. %D %D \starttyping %D \def\insertMPfile#1#2% %D {\ifx\undefined\externalfigure %D \message{[insert file #1 here]}% %D \else %D \bgroup %D \the\everyinsertMPfile %D \externalfigure %D [#1] %D [\c!type=\c!mps,\c!object=\v!no,% %D \c!symbol=\v!yes,\c!reset=\v!yes,% %D \c!maxwidth=,\c!maxheight=,% %D \c!frame=\v!off,\c!background=,% %D #2]% %D \egroup %D \fi} %D \stoptyping %D %D However, on a 1 Gig Pentium, the next alternative saves %D us 20 seconds run time for the 300 page \METAFUN\ manual: \let\insertMPfileARG\insertMPfile \def\insertMPfile#1#2% in context #2 is empty {\doifelsenothing{#2}{\doinsertMPfile{#1}}{\insertMPfileARG{#1}{#2}}} \def\includeMPasEPS#1% untested !! {\bgroup \message{[MP as EPS #1]}% \the\everyinsertMPfile \dogetEPSboundingbox{#1}\!!widtha\!!heighta\!!widthb\!!heightb \setbox\scratchbox\vbox to \!!heightb {\vfill \let \@@DriverImageType \c!mps \def \@@DriverImageFile {#1}% \edef\@@DriverImageWidth {\the\!!widthb }% \edef\@@DriverImageHeight{\the\!!heightb}% \doinsertfile}% \wd\scratchbox\!!widthb \dp\scratchbox\zeropoint \box\scratchbox \egroup} \ifx\makeMPintoPDFobject\undefined \newcount\makeMPintoPDFobject \fi \def\includeMPasPDF#1% {\bgroup \the\everyinsertMPfile \ifinobject \else \makeMPintoPDFobject\plustwo \fi % when needed \convertMPtoPDF{#1}{1}{1}% no \plusone ! \egroup} %D So, using a low level approach (thereby avoiding the slower %D figure analysis macros) pays off. This kind of %D optimizations are a bit tricky since we must make sure that %D special resources end up in the (PDF) files. Because the %D \METAPOST\ to \PDF\ can handle objects itself, it is not %D that complicated. %D We hook a couple of initializations into the graphic %D macros. \appendtoks \let\figuretypes\c!mps \runutilityfilefalse \consultutilityfilefalse \to \everyinsertMPfile %D One more: (still needed?) \startMPextensions def initialize_form_numbers = do_initialize_numbers; enddef; \stopMPextensions \startMPinitializations HSize:=\the\hsize ; VSize:=\the\vsize ; \stopMPinitializations \startMPextensions vardef ForegroundBox = unitsquare xysized(HSize,VSize) enddef ; vardef PageFraction = if \lastpage>1: (\realfolio-1)/(\lastpage-1) else: 1 fi enddef ; \stopMPextensions %D And some more. These are not really needed since we %D don't use the normal figure inclusion macros any longer. \appendtoks \externalfigurepostprocessors\emptytoks % safeguard \to \everyinsertMPfile %D We also take care of disabling fancy figure features, that %D can terribly interfere when dealing with symbols, %D background graphics and running (postponed) graphics. %D You won't believe me if I tell you what funny side effects %D can occur. One took me over a day to uncover when %D processing the screen version of the \METAFUN\ manual. %D For my eyes only: \def\doifelseMPgraphic#1{\doifdefinedelse{\@@MPG#1}} %D \macros %D {startMPcolor} %D %D The following time consuming method uses \METAPOST\ to %D calculate a color. This enables a match between colors %D resulting from a complex calculation (e.g. for a title %D page) and those in the text. % \startuseMPgraphic{somecolors} % color c[] ; c[1] := .7[red,green] ; c[2] := .7[blue,yellow] ; % \stopuseMPgraphic % \startMPcolor[shade-1][t=.2,a=1] % \includeMPgraphic{somecolors} ; fill fullcircle withcolor c[1] ; % \stopMPcolor % \startMPcolor[shade-2][t=.2,a=1] % \includeMPgraphic{somecolors} ; fill fullcircle withcolor c[2] ; % \stopMPcolor % \blackrule[width=\hsize,height=4cm,color=shade-1] % \blackrule[width=\hsize,height=4cm,color=shade-2] \def\startMPcolor {\dodoubleempty\dostartMPcolor} \long\def\dostartMPcolor[#1][#2]#3\stopMPcolor % slow but sometimes handy {\startnointerference \def\handleMPgraycolor{\expanded{\defineglobalcolor[#1][s=\!MPgMPa1,#2]}}% \def\handleMPrgbcolor {\expanded{\defineglobalcolor[#1][r=\!MPgMPa1,g=\!MPgMPa2,b=\!MPgMPa3,#2]}}% \def\handleMPcmykcolor{\expanded{\defineglobalcolor[#1][c=\!MPgMPa1,m=\!MPgMPa2,y=\!MPgMPa3,k=\!MPgMPa4,#2]}}% \startMPcode#3\stopMPcode \stopnointerference} %D New: \definelayerpreset % no dx,dy - else nasty non-mp placement [mp] [\c!y=-\MPury bp, \c!x=\MPllx bp, \c!method=\v!fit] \definelayer [mp] [\c!preset=mp] %D Usage: %D %D \starttyping %D \defineproperty[one][layer][state=start] %D \defineproperty[two][layer][state=stop] %D %D \startuseMPgraphic{step-1} %D fill fullcircle scaled 10cm withcolor red ; %D \stopuseMPgraphic %D %D \startuseMPgraphic{step-2} %D fill fullcircle scaled 5cm withcolor green ; %D \stopuseMPgraphic %D %D \setlayer[mp]{\property[one]{\useMPgraphic{step-1}}} %D \setlayer[mp]{\property[two]{\useMPgraphic{step-2}}} %D %D \ruledhbox{\flushlayer[mp]} %D \stoptyping %D %D Reusing graphics is also possible (now): %D %D \starttyping %D \startreusableMPgraphic{axis} %D tickstep := 1cm ; ticklength := 2mm ; %D drawticks unitsquare xscaled 4cm yscaled 3cm shifted (-1cm,-1cm) ; %D tickstep := tickstep/2 ; ticklength := ticklength/2 ; %D drawticks unitsquare xscaled 4cm yscaled 3cm shifted (-1cm,-1cm) ; %D \stopreusableMPgraphic %D %D \startuseMPgraphic{demo} %D drawpoint "1cm,1.5cm" ; %D \stopuseMPgraphic %D %D \definelayer[mp][preset=mp] %D \setlayer[mp]{\reuseMPgraphic{axis}} %D \setlayer[mp]{\useMPgraphic{demo}} %D \ruledhbox{\flushlayer[mp]} %D \stoptyping %D \macros %D {startstaticMPfigure,useMPstaticfigure} %D %D Static figures are processed only when there has been %D something changed. Here is Aditya Mahajan's testcase: %D %D \startbuffer %D \startstaticMPfigure{circle} %D fill fullcircle scaled 1cm withcolor blue; %D \stopstaticMPfigure %D %D \startstaticMPfigure{axis} %D drawarrow (0,0)--(2cm,0) ; %D drawarrow (0,0)--(0,2cm) ; %D label.llft(textext("(0,0)") ,origin) ; %D \stopstaticMPfigure %D \stopbuffer %D %D \typebuffer \getbuffer \def\usestaticMPfigure[#1]% {\dodoubleempty\externalfigure[\jobname-#1.pdf]} \def\startstaticMPfigure {\begingroup \obeyMPlines \dostartstaticMPfigure} \def\dostartstaticMPfigure#1#2\stopstaticMPfigure {\startstaticMPgraphic{\jobname-#1}#2\stopstaticMPgraphic \endgroup} % faster, but more tricky % % \def\startstaticMPfigure % {\doifmodeelse{*\v!first} % {\begingroup % \obeyMPlines % \dostartstaticMPfigure} % {\gobbleuntil\stopstaticMPfigure}} % % \def\dostartstaticMPfigure#1#2\stopstaticMPfigure % {\startMPstaticgraphic{\jobname-#1}#2\stopMPstaticgraphic % % dirty trick, don't register, so no second main run of texexec: % \global\advance\nofMPgraphics \minusone % \endgroup}} %D New: % \appendtoks \closeMPgraphicfiles \to \everystoptext %D New: \newconditional\manyMPspecials % when set to true, > 1000 specials can be used \settrue \manyMPspecials % per 1/4/2006 \prependtoks _special_div_ := 1000\ifconditional\manyMPspecials0\fi ; \to \MPextensions %D Needed (will become default): \prependtoks \resetlanguagespecifics \to \everyMPgraphic %D Goody for preventing overflows: \def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax} %D Done. \protect \endinput %D Experimental: \appendtoks \ifrunMPgraphics \ifcase\systemcommandmode \or \runMPgraphicsfalse \fi \fi \to \everyjob % also: % % linecap := rounded ; % linejoin := rounded ; % drawoptions () ; context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-mno.mkii0000644000175000017500000003065714536300610024736 0ustar hillehille\setinterfacemessage{references}{1}{ukjent referanse --} \setinterfacemessage{references}{30}{ukjent objekt --} \setinterfacemessage{references}{3}{ukjent referansetype --} \setinterfacemessage{references}{2}{duplikat referanse -- pø side --} \setinterfacemessage{references}{5}{number of unknown references: --} \setinterfacemessage{references}{4}{ulovlig referanse --} \setinterfacemessage{references}{6}{number of illegal references: --} \setinterfacemessage{references}{25}{references from document '--' are not imported (export again)} \setinterfacemessage{references}{24}{references from document '--' are not exported} \setinterfacemessage{references}{title}{referanser} \setinterfacemessage{references}{26}{references from document '--' are imported} \setinterfacemessage{references}{31}{duplikat objekt --} \setinterfacemessage{references}{21}{dokument -- er lest inn} \setinterfacemessage{references}{22}{dokument -- er ikke interaktivt} \setinterfacemessage{references}{23}{obskur referanse -- (Prefix=--)} \setinterfacemessage{documents}{1}{sheet --} \setinterfacemessage{documents}{title}{sheets} \setinterfacemessage{documents}{2}{number --} \setinterfacemessage{handlings}{1}{font handling --} \setinterfacemessage{handlings}{3}{unknown font handling --} \setinterfacemessage{handlings}{2}{font handling -- is loaded} \setinterfacemessage{handlings}{title}{handling} \setinterfacemessage{systems}{title}{system} \setinterfacemessage{systems}{41}{ekstern fil -- i gruppe -- eksisterer ikke} \setinterfacemessage{systems}{9}{-- ikke funnet/behandlet} \setinterfacemessage{systems}{91}{papertray --} \setinterfacemessage{systems}{8}{ny versjon av hjelpefil, andre gjennomkjøring nødvendig} \setinterfacemessage{systems}{21}{hjelpefila er ikke lest inn} \setinterfacemessage{systems}{20}{betydning (sorterer) av -- er lest inn} \setinterfacemessage{systems}{5}{makroene i modul -- er lest inn} \setinterfacemessage{systems}{4}{kommando -- er allerede definert} \setinterfacemessage{systems}{27}{Versjon} \setinterfacemessage{systems}{26}{Registere} \setinterfacemessage{systems}{25}{Referanser} \setinterfacemessage{systems}{24}{Flytblokker} \setinterfacemessage{systems}{1}{innlesning av hjelpefila utsatt (typemode)} \setinterfacemessage{systems}{23}{-- arrangert på --} \setinterfacemessage{systems}{22}{bruk en gyldig hjelpefil} \setinterfacemessage{systems}{2}{-- er lest inn} \setinterfacemessage{systems}{19}{betydning (synonymer) av -- er lest inn} \setinterfacemessage{systems}{18}{synonym -- -- eksisterer ikke} \setinterfacemessage{systems}{7}{makroene i modul -- er allerede lest inn} \setinterfacemessage{systems}{6}{ingen makroer funnet i modul ---} \setinterfacemessage{systems}{14}{tvunget sideskift i liste ved --} \setinterfacemessage{systems}{15}{lagrer Buffer --} \setinterfacemessage{systems}{16}{tegnsetter buffer --} \setinterfacemessage{systems}{17}{tegnsetter verbatim-buffer --} \setinterfacemessage{systems}{13}{markering -- definert --} \setinterfacemessage{systems}{12}{hjelpefila er ikke sortert, bruk texutil} \setinterfacemessage{systems}{11}{lager enkel hjelpefil} \setinterfacemessage{systems}{10}{ikke bruk em i --} \setinterfacemessage{floatblocks}{1}{-- renummerert / -- => --} \setinterfacemessage{floatblocks}{3}{-- flyttet} \setinterfacemessage{floatblocks}{2}{-- lagret} \setinterfacemessage{floatblocks}{5}{rekkefølge tilpasset} \setinterfacemessage{floatblocks}{4}{-- plassert} \setinterfacemessage{floatblocks}{7}{maksimalt -- flytblokker nederst} \setinterfacemessage{floatblocks}{6}{maksimalt -- flytblokker øverst} \setinterfacemessage{floatblocks}{9}{rekkefølge endret} \setinterfacemessage{floatblocks}{8}{mindre enn -- linjer} \setinterfacemessage{floatblocks}{title}{flytblokker} \setinterfacemessage{floatblocks}{13}{there is nothing to split} \setinterfacemessage{floatblocks}{12}{udefinert} \setinterfacemessage{floatblocks}{11}{ingen blokk oppgitt} \setinterfacemessage{floatblocks}{10}{-- begrenset} \setinterfacemessage{interactions}{1}{forholdstall -- x -- (b x h)} \setinterfacemessage{interactions}{3}{inaktiv} \setinterfacemessage{interactions}{2}{aktiv} \setinterfacemessage{interactions}{5}{unknown attachment --} \setinterfacemessage{interactions}{4}{ingen sidesynkronisering (--) i hmode} \setinterfacemessage{interactions}{6}{attachment file -- does not exist} \setinterfacemessage{interactions}{title}{interaksjon} \setinterfacemessage{interactions}{21}{-- kode satt inn / tilføyd} \setinterfacemessage{regimes}{1}{koding --} \setinterfacemessage{regimes}{3}{ukjent koding --} \setinterfacemessage{regimes}{2}{koding -- er lest inn} \setinterfacemessage{regimes}{title}{koding} \setinterfacemessage{structures}{1}{starten av blokk -- (seksjon)} \setinterfacemessage{structures}{title}{struktur} \setinterfacemessage{structures}{2}{slutten av blokk -- (seksjon)} \setinterfacemessage{linguals}{1}{orddelingsmønster -- for -- er lest inn (n=--,e=--,m=--)} \setinterfacemessage{linguals}{3}{orddelingsdefinisjon -- for -- er lest inn (n=--,e=--,m=--)} \setinterfacemessage{linguals}{2}{ingen orddelingsmønster -- for -- (n=--,e=--,m=--) (--,--)} \setinterfacemessage{linguals}{5}{orddelingsmønster for -- er ikke lest inn} \setinterfacemessage{linguals}{4}{ingen orddelingsdefinisjon -- for -- (n=--,e=--,m=--)} \setinterfacemessage{linguals}{7}{spràk spesifikk opsjon [--] introduserer et -- hopp} \setinterfacemessage{linguals}{6}{spràk -- er udefinert} \setinterfacemessage{linguals}{9}{spràk -- er aktivt} \setinterfacemessage{linguals}{8}{spràk spesifikk opsjon [--] problemfritt tilføyd} \setinterfacemessage{linguals}{title}{sprøk} \setinterfacemessage{linguals}{10}{orddelingsmønster -- er lest inn} \setinterfacemessage{verbatims}{1}{fil -- eksisterer ikke} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{filter -- is loaded} \setinterfacemessage{filters}{title}{filter} \setinterfacemessage{filters}{2}{unknown filter --} \setinterfacemessage{textblocks}{1}{ny versjon, andre gjennomkjøring nødvendig} \setinterfacemessage{textblocks}{3}{leser blokker fra --} \setinterfacemessage{textblocks}{2}{skriver blokker til --} \setinterfacemessage{textblocks}{5}{-- ikke skjult} \setinterfacemessage{textblocks}{4}{andre gjennomkjøring nødvendig} \setinterfacemessage{textblocks}{7}{-- skjult} \setinterfacemessage{textblocks}{6}{-- skjult og behandlet} \setinterfacemessage{textblocks}{9}{-- ikke tegnsatt} \setinterfacemessage{textblocks}{8}{-- tegnsatt} \setinterfacemessage{textblocks}{title}{tekstblokker} \setinterfacemessage{textblocks}{12}{-- utelatt} \setinterfacemessage{textblocks}{11}{-- lest inn og tegnsatt} \setinterfacemessage{textblocks}{10}{-- lest inn og behandlet} \setinterfacemessage{encodings}{1}{koding --} \setinterfacemessage{encodings}{3}{ukjent koding --} \setinterfacemessage{encodings}{2}{koding -- er lest inn} \setinterfacemessage{encodings}{title}{koding} \setinterfacemessage{columns}{1}{maksimalt -- kolonner} \setinterfacemessage{columns}{3}{problemer, slår av balansering} \setinterfacemessage{columns}{2}{bruk \string\filbreak\space som et alternativ} \setinterfacemessage{columns}{5}{flytblokker nedert er ikke støttet enda} \setinterfacemessage{columns}{4}{flytblokker øverst er ikke støttet enda} \setinterfacemessage{columns}{7}{balansering avbrutt etter 100 iterasjoner} \setinterfacemessage{columns}{6}{-- flytblokk forskjøvet} \setinterfacemessage{columns}{9}{kontroller tekstlayout!} \setinterfacemessage{columns}{8}{balansert etter -- iterasjoner} \setinterfacemessage{columns}{title}{kolonner} \setinterfacemessage{columns}{13}{bred flytblokk forksjøvet til toppen av kolonnene} \setinterfacemessage{columns}{12}{flytblokk forskjøvet til neste kolonne / --} \setinterfacemessage{columns}{11}{flytblokk for bredt for kolonna} \setinterfacemessage{columns}{10}{(mindre enn) 1 linje igjen} \setinterfacemessage{symbols}{1}{leser inn symbolsett --} \setinterfacemessage{symbols}{title}{symboler} \setinterfacemessage{files}{1}{filesynonym -- er allerede brukt for --} \setinterfacemessage{files}{title}{filer} \setinterfacemessage{versions}{1}{manglende @+} \setinterfacemessage{versions}{3}{valgte sider: --} \setinterfacemessage{versions}{2}{markerer sider} \setinterfacemessage{versions}{title}{versjon} \setinterfacemessage{specials}{1}{-- er lest inn} \setinterfacemessage{specials}{3}{-- er tilbakestilt} \setinterfacemessage{specials}{2}{dypere 'nesting' er ikke tillatt --} \setinterfacemessage{specials}{5}{leser inn definisjonsfil for --} \setinterfacemessage{specials}{4}{kommando -- eksisterer ikke} \setinterfacemessage{specials}{7}{ukjent driver --} \setinterfacemessage{specials}{6}{'nesting' er ikke tillatt} \setinterfacemessage{specials}{title}{specials} \setinterfacemessage{layouts}{1}{teksthøyde tilpasset med -- på side --} \setinterfacemessage{layouts}{3}{-- ganger tekst forskjøvet} \setinterfacemessage{layouts}{2}{-- ganger forskjøvet tekst plassert} \setinterfacemessage{layouts}{5}{margblokker inaktive} \setinterfacemessage{layouts}{4}{margblokker aktive} \setinterfacemessage{layouts}{7}{beregner plass for logo} \setinterfacemessage{layouts}{6}{delside sett -- behandlet (størrelse --)} \setinterfacemessage{layouts}{9}{for øyeblikket maksimalt -- nivåer i opplisting} \setinterfacemessage{layouts}{8}{beregner bakgrunn} \setinterfacemessage{layouts}{title}{layout} \setinterfacemessage{layouts}{11}{mellomrom -- ikke tillatt i gridmodus} \setinterfacemessage{layouts}{10}{-- og -- er ikke 1.0 til sammen} \setinterfacemessage{fonts}{1}{koding --} \setinterfacemessage{fonts}{3}{ukjent variant --} \setinterfacemessage{fonts}{2}{variant -- er lest inn} \setinterfacemessage{fonts}{5}{stil -- er ikke definert} \setinterfacemessage{fonts}{4}{hovedfont -- er ikke definert} \setinterfacemessage{fonts}{7}{ukjent format --} \setinterfacemessage{fonts}{6}{-- er lest inn} \setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)} \setinterfacemessage{fonts}{8}{stil -- definert} \setinterfacemessage{fonts}{title}{hovedfont} \setinterfacemessage{fonts}{10}{ukjent fontfil --} \setinterfacemessage{databases}{1}{--} \setinterfacemessage{databases}{3}{global fil --} \setinterfacemessage{databases}{2}{lokal fil --} \setinterfacemessage{databases}{4}{ukjent fil --} \setinterfacemessage{databases}{title}{databaser} \setinterfacemessage{publications}{1}{file -- not found, unknown style ignored} \setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux} \setinterfacemessage{publications}{title}{publications} \setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex} \setinterfacemessage{publications}{4}{loading database from --} \setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno} \setinterfacemessage{publications}{6}{loading formatting style from --} \setinterfacemessage{javascript}{1}{leser inn scriptsett --} \setinterfacemessage{javascript}{title}{javascript} \setinterfacemessage{javascript}{2}{ukjent 'preamble' --} \setinterfacemessage{check}{1}{manglende '=' etter '--' i linje --} \setinterfacemessage{check}{3}{-- -- overskygger en makro, bruk STORE BOKSTAVER!} \setinterfacemessage{check}{2}{-- argument forventet i linje --} \setinterfacemessage{check}{title}{kontroll} \setinterfacemessage{metapost}{1}{metapost bibliotek -- blir lest inn} \setinterfacemessage{metapost}{title}{metapost} \setinterfacemessage{figures}{1}{figure -- can not be found} \setinterfacemessage{figures}{3}{dimensions of -- are determined externally} \setinterfacemessage{figures}{2}{figure -- is not preset} \setinterfacemessage{figures}{5}{dimensions of -- are unknown} \setinterfacemessage{figures}{4}{dimensions of -- loaded from figurefile itself} \setinterfacemessage{figures}{6}{dimensions of -- calculated by rlxtools} \setinterfacemessage{figures}{8}{figureobject -- is reused} \setinterfacemessage{figures}{title}{figures} \setinterfacemessage{colors}{1}{system -- er aktivert globalt} \setinterfacemessage{colors}{3}{-- er udefinert --} \setinterfacemessage{colors}{2}{system -- er aktivert lokalt} \setinterfacemessage{colors}{5}{ukjent system --} \setinterfacemessage{colors}{4}{system -- er lest inn} \setinterfacemessage{colors}{7}{palett -- er ikke tilgjengelig} \setinterfacemessage{colors}{6}{palett -- er tilgjengelig} \setinterfacemessage{colors}{9}{-- fargerom er ikke støttet} \setinterfacemessage{colors}{8}{spesifikasjon -- for farge -- gir kun svart} \setinterfacemessage{colors}{title}{farge} \setinterfacemessage{colors}{12}{-- is registered} \setinterfacemessage{colors}{11}{fargen vil bli vist som grø} \setinterfacemessage{colors}{10}{-- fargerom er støttet} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/thrd-pic.mkii0000644000175000017500000037444014536300610024701 0ustar hillehille% Since this file is not available in every distribution, we % have copied the original in this file. The manuals to % Wichura's PiCTeX and TaBlE packages are not available on % line and are distributed by respectively the TeX Users Group % and Personal TeX Inc. % We've patched this file for catcode ! because in luatex we use % catcode tables and using unprotect/protect is cleaner. % This is PiCTeX, Version 1.1 9/21/87 % CAVEAT: The PiCTeX manual often has a more lucid explanation % of any given topic than you will find in the internal documentation % of the macros. % PiCTeX's commands can be classified into two groups: (1) public (or % external), and (2) private (or internal). The public macros are % discussed at length in the manual. The only discussion of the private % macros is the internal documentation. The private macros all have % names beginning with an exclamation point (!) of category code 11. % Since in normal usage "!" has category code 12, these macros can't % be accessed or modified by the general user. % The macros are organized into thematically related groups. For example, % the macros dealing with dots & dashes are all in the DASHPATTERN group. % The table below shows which macros are in which groups. The table % covers all public macros, and many (but not all) of PiCTeX's upper level % private macros. Following the table, the various groups are listed % in the order in which they appear in the table. % *********************** TABLE OF GROUPS OF MACROS ********************** % HACKS: Utility macros % \PiC % \PiCTeX % \placevalueinpts % \!!loop % \!cfor % \!copylist % \!ecfor % \!etfor % \!getnext % \!getnextvalueof % \!ifempty % \!ifnextchar % \!leftappend % \!listaddon % \!loop % \!lop % \!mlap % \!not % \!removept % \!rightappend % \!tfor % \!vmlap % \!wlet % ALLOCATION: Allocates registers % AREAS: Deals with plot areas % \axis % \grid % \invisibleaxes % \normalgraphs % \plotheading % \setplotarea % \visibleaxes % ARROWS: Draws arrows % \arrow % \betweenarrows % BARS: Draws bars % \putbar % \setbars % BOXES: Draws rectangles % \frame % \putrectangle % \rectangle % \shaderectangleson % \shaderectanglesoff % CURVES: Upper level plot commands % \hshade % \plot % \sethistograms % \setlinear % \setquadratic % \vshade % DASHPATTERNS: Sets up dash patterns % \findlength % \setdashes % \setdashesnear % \setdashpattern % \setdots % \setdotsnear % \setsolid % \!dashingoff % \!dashingon % DIVISION: Does long division of dimension registers % \Divide % \!divide % ELLIPSES: Draws ellipses and circles % \circulararc % \ellipticalarc % RULES: Draws rules, i.e., horizontal & vertical lines % \putrule % \!putdashedhline % \!putdashedvline % \!puthline % \!putsolidhline % \!putsolidvline % \!putvline % LINEAR ARC: Draws straight lines -- solid and dashed % \inboundscheckoff % \inboundscheckon % \!advancedashing % \!drawlinearsegment % \!initinboundscheck % \!linearsolid % \!lineardashed % \!ljoin % \!plotifinbounds % \!start % LOGTEN: Log_10 function % \!logten % PICTURES: Basic setups for PiCtures; \put commands % \accountingoff % \accountingon % \beginpicture % \endpicture % \endpicturesave % \lines % \multiput % \put % \setcoordinatemode % \setcoordinatesystem % \setdimensionmode % \stack % \Lines % \Xdistance % \Ydistance % \!dimenput % \!ifcoordmode % \!ifdimenmode % \!setcoordmode % \!setdimenmode % \!setputobject % PLOTTING: Things to do with plotting % \dontsavelinesandcurves % \replot % \savelinesandcurves % \setplotsymbol % \writesavefile % \!plot % PYTHAGORAS: Euclidean distance function % \placehypotenuse % \!Pythag % QUADRATIC ARC: Draws a quadratic arc % \!qjoin % ROTATIONS: Handles rotations % \startrotation % \stoprotation % \!rotateaboutpivot % \!rotateonly % SHADING: Handles shading % \setshadegrid % \setshadesymbol % \!lshade % \!qshade % \!starthshade % \!startvshade % TICKS: Draws ticks on graphs % \gridlines % \loggedticks % \nogridlines % \ticksin % \ticksout % \unloggesticks % ***************** END OF TABLE OF GROUPS OF MACROS ******************** % \catcode`!=11 % ***** THIS MUST NEVER BE OMITTED \unprotect % ******************************* % *** HACKS (Utility macros) *** % ******************************* % ** User commands % ** \PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} % ** \PiCTeX{\PiC\kern-.11em\TeX} % ** \placevalueinpts of in {CONTROL SEQUENCE} % ** Internal commands % ** \!ifnextchar{CHARACTER}{TRUE ACTION}{FALSE ACTION} % ** \!tfor NAME := LIST \do {BODY} % ** \!etfor NAME:= LIST \do {BODY} % ** \!cfor NAME := LIST \do {BODY} % ** \!ecfor NAME:= LIST \do {BODY} % ** \!ifempty{MACRO}{TRUE ACTION}{FALSE ACTION} % ** \!getnext\\ITEMfrom\LIST % ** \!getnextvalueof\DIMEN\from\LIST % ** \!copylist\LISTMACRO_A\to\LISTMACRO_B % ** \!wlet\CONTROL_SEQUENCE_A=\CONTROL_SEQUENCE_B % ** \!listaddon ITEM LIST % ** \!rightappendITEM\withCS\to\LISTMACRO % ** \!leftappendITEM\withCS\to\LISTMACRO % ** \!lop\LISTMACRO\to\ITEM % ** \!loop ... repeat % ** \!!loop ... repeat % ** \!removept{DIMENSION REGISTER}{CONTROL SEQUENCE} % ** \!mlap{...} % ** \!vmlap{...} % ** \!not{TEK if-CONDITION} % ** First, here are the the PiCTeX logo, and the syllable PiC: \def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} \def\PiCTeX{\PiC\kern-.11em\TeX} % ** The following macro expands to parameter #2 or parameter #3 according to % ** whether the next non-blank character following the macro is or is not #1. % ** Blanks following the macro are gobbled. \def\!ifnextchar#1#2#3{% \let\!testchar=#1% \def\!first{#2}% \def\!second{#3}% \futurelet\!nextchar\!testnext} \def\!testnext{% \ifx \!nextchar \!spacetoken \let\!next=\!skipspacetestagain \else \ifx \!nextchar \!testchar \let\!next=\!first \else \let\!next=\!second \fi \fi \!next} \def\\{\!skipspacetestagain} \expandafter\def\\ {\futurelet\!nextchar\!testnext} \def\\{\let\!spacetoken= } \\ % ** set \spacetoken to a space token % ** Borrow the "tfor" macro from Latex: % ** \!tfor NAME := LIST \do {BODY} % ** if, before expansion, LIST = T1 ... Tn, where each Ti is a token % ** or {...}, then executes BODY n times, with NAME = Ti on the % ** i-th iteration. Works for n=0. \def\!tfor#1:=#2\do#3{% \edef\!fortemp{#2}% \ifx\!fortemp\!empty \else \!tforloop#2\!nil\!nil\!!#1{#3}% \fi} \def\!tforloop#1#2\!!#3#4{% \def#3{#1}% \ifx #3\!nnil \let\!nextwhile=\!fornoop \else #4\relax \let\!nextwhile=\!tforloop \fi \!nextwhile#2\!!#3{#4}} % ** \!etfor NAME:= LIST\do {BODY} % ** This is like \!cfor, but LIST is any balanced token list whose complete % ** expansion has the form T1 ... Tn \def\!etfor#1:=#2\do#3{% \def\!!tfor{\!tfor#1:=}% \edef\!!!tfor{#2}% \expandafter\!!tfor\!!!tfor\do{#3}} % ** modify the Latex \tfor (token-for) loop to a \cfor (comma-for) loop. % ** \!cfor NAME := LIST \do {BODY} % ** if, before expansion, LIST = a1,a2,...an, then executes BODY n times, % ** with NAME = ai on the i-th iteration. Works for n=0. \def\!cfor#1:=#2\do#3{% \edef\!fortemp{#2}% \ifx\!fortemp\!empty \else \!cforloop#2,\!nil,\!nil\!!#1{#3}% \fi} \def\!cforloop#1,#2\!!#3#4{% \def#3{#1}% \ifx #3\!nnil \let\!nextwhile=\!fornoop \else #4\relax \let\!nextwhile=\!cforloop \fi \!nextwhile#2\!!#3{#4}} % ** \!ecfor NAME:= LIST\do {BODY} % ** This is like \!cfor, but LIST is any balanced token list whose complete % ** expansion has the form a1,a2,...,an. \def\!ecfor#1:=#2\do#3{% \def\!!cfor{\!cfor#1:=}% \edef\!!!cfor{#2}% \expandafter\!!cfor\!!!cfor\do{#3}} \def\!empty{} \def\!nnil{\!nil} \def\!fornoop#1\!!#2#3{} % ** \!ifempty{ARG}{TRUE ACTION}{FALSE ACTION} \def\!ifempty#1#2#3{% \edef\!emptyarg{#1}% \ifx\!emptyarg\!empty #2% \else #3% \fi} % ** \!getnext\\ITEMfrom\LIST % ** \LIST has the form \\{item1}\\{item2}\\{item3}...\\{itemk} % ** This routine sets \ITEM to item1, and cycles \LIST to % ** \\{item2}\\{item3}...\\{itemk}\\{item1} \def\!getnext#1\from#2{% \expandafter\!gnext#2\!#1#2}% \def\!gnext\\#1#2\!#3#4{% \def#3{#1}% \def#4{#2\\{#1}}% \ignorespaces} % ** \!getnextvalueof\DIMEN\from\LIST % ** Similar to !getnext. % ** \LIST has the form \\{dimen1}\\{dimen2}\\{dimen3} ... % ** \DIMEN is a dimension register % ** Works also for counts % \def\!getnextvalueof#1\from#2{% \expandafter\!gnextv#2\!#1#2}% \def\!gnextv\\#1#2\!#3#4{% #3=#1% \def#4{#2\\{#1}}% \ignorespaces} % ** \!copylist\LISTMACROA\to\LISTMACROB % ** makes the replacement text of LISTMACRO B identical to that of % ** list macro A. \def\!copylist#1\to#2{% \expandafter\!!copylist#1\!#2} \def\!!copylist#1\!#2{% \def#2{#1}\ignorespaces} % ** \!wlet\CSA=\CSB % ** lets control sequence \CSB = control sequence \CSA, and writes a % ** message to that effect in the log file using plain TEK's \wlog \def\!wlet#1=#2{% \let#1=#2 \wlog{\string#1=\string#2}} % ** \!listaddon ITEM LIST % ** LIST <-- LIST \\ ITEM \def\!listaddon#1#2{% \expandafter\!!listaddon#2\!{#1}#2} \def\!!listaddon#1\!#2#3{% \def#3{#1\\#2}} % ** \!rightappendITEM\to\LISTMACRO % ** \LISTMACRO --> \LISTMACRO\\{ITEM} %\def\!rightappend#1\to#2{\expandafter\!!rightappend#2\!{#1}#2} %\def\!!rightappend#1\!#2#3{\def#3{#1\\{#2}}} % ** \!rightappendITEM\withCS\to\LISTMACRO % ** \LISTMACRO --> \LISTMACRO||CS||{ITEM} \def\!rightappend#1\withCS#2\to#3{\expandafter\!!rightappend#3\!#2{#1}#3} \def\!!rightappend#1\!#2#3#4{\def#4{#1#2{#3}}} % ** \!leftappendITEM\withCS\to\LISTMACRO % ** \LISTMACRO --> CS||{ITEM}||\LISTMACRO \def\!leftappend#1\withCS#2\to#3{\expandafter\!!leftappend#3\!#2{#1}#3} \def\!!leftappend#1\!#2#3#4{\def#4{#2{#3}#1}} % ** \!lop\LISTMACRO\to\ITEM % ** \\{item1}\\{item2}\\{item3} ... --> \\{item2}\\{item3} ... % ** item1 --> \ITEM \def\!lop#1\to#2{\expandafter\!!lop#1\!#1#2} \def\!!lop\\#1#2\!#3#4{\def#4{#1}\def#3{#2}} % ** \!placeNUMBER\of\LISTMACRO\in\ITEM % ** the NUMBERth item of \LISTMACRO --> replacement text of \ITEM %\def\!place#1\of#2\in#3{\def#3{\outofrange}% %{\count0=#1\def\\##1{\advance\count0-1 \ifnum\count0=0 \gdef#3{##1}\fi}#2}} % ** Following code converts a commalist to a list macro, with all items % ** fully expanded. %\!ecfor\item:=\commalist\do{\expandafter\!rightappend\item\to\list} % ** \!loop ... repeat % ** This is exactly like TEX's \loop ... repeat. It can be used in nesting % ** two loops, without puting the inner one inside a group. \def\!loop#1\repeat{\def\!body{#1}\!iterate} \def\!iterate{\!body\let\!next=\!iterate\else\let\!next=\relax\fi\!next} % ** \!!loop ... repeat % ** This is exactly like TEX's \loop ... repeat. It can be used in nesting % ** two loops, without puting the inner one inside a group. \def\!!loop#1\repeat{\def\!!body{#1}\!!iterate} \def\!!iterate{\!!body\let\!!next=\!!iterate\else\let\!!next=\relax\fi\!!next} % (\multiput uses \!!loop) % ** \!removept{DIMENREG}{\CS} % ** Defines the control sequence CS to be the value (in points) in the % ** dimension register DIMENREG (but without the "pt" TEK usually adds) % ** E.g., after \dimen0=12.3pt \!removept\dimen0\A, \A expands to 12.3 \def\!removept#1#2{\edef#2{\expandafter\!!removePT\the#1}} {\catcode`p=12 \catcode`t=12 \gdef\!!removePT#1pt{#1}} % ** \pladevalueinpts of in {CONTROL SEQUENCE} \def\placevalueinpts of <#1> in #2 {% \!removept{#1}{#2}} % ** \!mlap{...} \!vmlap{...} % ** Center ... in a box of width 0. \def\!mlap#1{\hbox to 0pt{\hss#1\hss}} \def\!vmlap#1{\vbox to 0pt{\vss#1\vss}} % ** \!not{TEK if-CONDITION} % ** By a TEK if-CONDITION is meant something like % ** \ifnum\N<0, or \ifdim\A>\B % ** \!not produces an if-condition which is false if the original condition % ** is true, and true if the original condition is false. \def\!not#1{% #1\relax \!switchfalse \else \!switchtrue \fi \if!switch \ignorespaces} % ******************* % *** ALLOCATIONS *** % ******************* % This section allocates all the registers PiCTeX uses. Following % each allocation is a string of the form ....N.D...L......... ; % the various letters show which sections of PiCTeX make explicit % reference to that register, according to the following code: % H Hacks % A Areas % W arroWs % B Bars % X boXes % C Curves % D Dashpattterns % V diVision % E Ellipses % U rUles % L Linear arc % G loGten % P Pictures % O plOtting % Y pYthagoras % Q Quadratic arc % R Rotations % S Shading % T Ticks % Turn off messages from TeX's allocation macros \let\!!!wlog=\wlog % "\wlog" is defined in plain TeX \def\wlog#1{} \newdimen\headingtoplotskip %.A................. \newdimen\linethickness %.A..X....U........T \newdimen\longticklength %.A................T \newdimen\plotsymbolspacing %......D...L....Q... \newdimen\shortticklength %.A................T \newdimen\stackleading %.A..........P...... \newdimen\tickstovaluesleading %.A................T \newdimen\totalarclength %......D...L....Q... \newdimen\valuestolabelleading %.A................. \newbox\!boxA %.AW...............T \newbox\!boxB %..W................ \newbox\!picbox %............P...... \newbox\!plotsymbol %..........L..O..... \newbox\!putobject %............PO...S. \newbox\!shadesymbol %.................S. \newcount\!countA %.A....D..UL....Q.ST \newcount\!countB %......D..U.....Q.ST \newcount\!countC %...............Q..T \newcount\!countD %................... \newcount\!countE %.............O....T \newcount\!countF %.............O....T \newcount\!countG %..................T \newcount\!fiftypt %.........U......... \newcount\!intervalno %..........L....Q... \newcount\!npoints %..........L........ \newcount\!nsegments %.........U......... \newcount\!ntemp %............P...... \newcount\!parity %.................S. \newcount\!scalefactor %..................T \newcount\!tfs %.......V........... \newcount\!tickcase %..................T \newdimen\!Xleft %............P...... \newdimen\!Xright %............P...... \newdimen\!Xsave %.A................T \newdimen\!Ybot %............P...... \newdimen\!Ysave %.A................T \newdimen\!Ytop %............P...... \newdimen\!angle %........E.......... \newdimen\!arclength %..W......UL....Q... \newdimen\!areabloc %.A........L........ \newdimen\!arealloc %.A........L........ \newdimen\!arearloc %.A........L........ \newdimen\!areatloc %.A........L........ \newdimen\!bshrinkage %.................S. \newdimen\!checkbot %..........L........ \newdimen\!checkleft %..........L........ \newdimen\!checkright %..........L........ \newdimen\!checktop %..........L........ \newdimen\!dimenA %.AW.X.DVEUL..OYQRST \newdimen\!dimenB %....X.DVEU...O.QRS. \newdimen\!dimenC %..W.X.DVEU......RS. \newdimen\!dimenD %..W.X.DVEU....Y.RS. \newdimen\!dimenE %..W........G..YQ.S. \newdimen\!dimenF %...........G..YQ.S. \newdimen\!dimenG %...........G..YQ.S. \newdimen\!dimenH %...........G..Y..S. \newdimen\!dimenI %...BX.........Y.... \newdimen\!distacross %..........L....Q... \newdimen\!downlength %..........L........ \newdimen\!dp %.A..X.......P....S. \newdimen\!dshade %.................S. \newdimen\!dxpos %..W......U..P....S. \newdimen\!dxprime %...............Q... \newdimen\!dypos %..WB.....U..P...... \newdimen\!dyprime %...............Q... \newdimen\!ht %.A..X.......P....S. \newdimen\!leaderlength %......D..U......... \newdimen\!lshrinkage %.................S. \newdimen\!midarclength %...............Q... \newdimen\!offset %.A................T \newdimen\!plotheadingoffset %.A................. \newdimen\!plotsymbolxshift %..........L..O..... \newdimen\!plotsymbolyshift %..........L..O..... \newdimen\!plotxorigin %..........L..O..... \newdimen\!plotyorigin %..........L..O..... \newdimen\!rootten %...........G....... \newdimen\!rshrinkage %.................S. \newdimen\!shadesymbolxshift %.................S. \newdimen\!shadesymbolyshift %.................S. \newdimen\!tenAa %...........G....... \newdimen\!tenAc %...........G....... \newdimen\!tenAe %...........G....... \newdimen\!tshrinkage %.................S. \newdimen\!uplength %..........L........ \newdimen\!wd %....X.......P....S. \newdimen\!wmax %...............Q... \newdimen\!wmin %...............Q... \newdimen\!xB %...............Q... \newdimen\!xC %...............Q... \newdimen\!xE %..W.....E.L....Q.S. \newdimen\!xM %..W.....E......Q.S. \newdimen\!xS %..W.....E.L....Q.S. \newdimen\!xaxislength %.A................T \newdimen\!xdiff %..........L........ \newdimen\!xleft %............P...... \newdimen\!xloc %..WB.....U.......S. \newdimen\!xorigin %.A........L.P....S. \newdimen\!xpivot %................R.. \newdimen\!xpos %..........L.P..Q.ST \newdimen\!xprime %...............Q... \newdimen\!xright %............P...... \newdimen\!xshade %.................S. \newdimen\!xshift %..W.........PO...S. \newdimen\!xtemp %............P...... \newdimen\!xunit %.AWBX...EUL.P..QRS. \newdimen\!xxE %........E.......... \newdimen\!xxM %........E.......... \newdimen\!xxS %........E.......... \newdimen\!xxloc %..WB....EU......... \newdimen\!yB %...............Q... \newdimen\!yC %...............Q... \newdimen\!yE %..W.....E.L....Q... \newdimen\!yM %..W.....E......Q... \newdimen\!yS %..W.....E.L....Q... \newdimen\!yaxislength %.A................T \newdimen\!ybot %............P...... \newdimen\!ydiff %..........L........ \newdimen\!yloc %..WB.....U.......S. \newdimen\!yorigin %.A........L.P....S. \newdimen\!ypivot %................R.. \newdimen\!ypos %..........L.P..Q.ST \newdimen\!yprime %...............Q... \newdimen\!yshade %.................S. \newdimen\!yshift %..W.........PO...S. \newdimen\!ytemp %............P...... \newdimen\!ytop %............P...... \newdimen\!yunit %.AWBX...EUL.P..QRS. \newdimen\!yyE %........E.......... \newdimen\!yyM %........E.......... \newdimen\!yyS %........E.......... \newdimen\!yyloc %..WB....EU......... \newdimen\!zpt %.AWBX.DVEULGP.YQ.ST \newif\if!axisvisible %.A................. \newif\if!gridlinestoo %..................T \newif\if!keepPO %................... \newif\if!placeaxislabel %.A................. \newif\if!switch %H.................. \newif\if!xswitch %.A................T \newtoks\!axisLaBeL %.A................. \newtoks\!keywordtoks %.A................. \newwrite\!replotfile %.............O..... \newhelp\!keywordhelp{The keyword mentioned in the error message in unknown. Replace NEW KEYWORD in the indicated response by the keyword that should have been specified.} %.A................. % The following commands assign alternate names to some of the % above registers. "\!wlet" is defined in Hacks. \!wlet\!!origin=\!xM %.A................T \!wlet\!!unit=\!uplength %.A................T \!wlet\!Lresiduallength=\!dimenG %.........U......... \!wlet\!Rresiduallength=\!dimenF %.........U......... \!wlet\!axisLength=\!distacross %.A................T \!wlet\!axisend=\!ydiff %.A................T \!wlet\!axisstart=\!xdiff %.A................T \!wlet\!axisxlevel=\!arclength %.A................T \!wlet\!axisylevel=\!downlength %.A................T \!wlet\!beta=\!dimenE %...............Q... \!wlet\!gamma=\!dimenF %...............Q... \!wlet\!shadexorigin=\!plotxorigin %.................S. \!wlet\!shadeyorigin=\!plotyorigin %.................S. \!wlet\!ticklength=\!xS %..................T \!wlet\!ticklocation=\!xE %..................T \!wlet\!ticklocationincr=\!yE %..................T \!wlet\!tickwidth=\!yS %..................T \!wlet\!totalleaderlength=\!dimenE %.........U......... \!wlet\!xone=\!xprime %....X.............. \!wlet\!xtwo=\!dxprime %....X.............. \!wlet\!ySsave=\!yM %................... \!wlet\!ybB=\!yB %.................S. \!wlet\!ybC=\!yC %.................S. \!wlet\!ybE=\!yE %.................S. \!wlet\!ybM=\!yM %.................S. \!wlet\!ybS=\!yS %.................S. \!wlet\!ybpos=\!yyloc %.................S. \!wlet\!yone=\!yprime %....X.............. \!wlet\!ytB=\!xB %.................S. \!wlet\!ytC=\!xC %.................S. \!wlet\!ytE=\!downlength %.................S. \!wlet\!ytM=\!arclength %.................S. \!wlet\!ytS=\!distacross %.................S. \!wlet\!ytpos=\!xxloc %.................S. \!wlet\!ytwo=\!dyprime %....X.............. % Initial values for registers \!zpt=0pt % static \!xunit=1pt \!yunit=1pt \!arearloc=\!xunit \!areatloc=\!yunit \!dshade=5pt \!leaderlength=24in \!tfs=256 % static \!wmax=5.3pt % static \!wmin=2.7pt % static \!xaxislength=\!xunit \!xpivot=\!zpt \!yaxislength=\!yunit \!ypivot=\!zpt \plotsymbolspacing=.4pt \!dimenA=50pt \!fiftypt=\!dimenA % static \!rootten=3.162278pt % static \!tenAa=8.690286pt % static (A5) \!tenAc=2.773839pt % static (A3) \!tenAe=2.543275pt % static (A1) % Initial values for control sequences \def\!cosrotationangle{1} %................R.. \def\!sinrotationangle{0} %................R.. \def\!xpivotcoord{0} %................R.. \def\!xref{0} %............P...... \def\!xshadesave{0} %.................S. \def\!ypivotcoord{0} %................R.. \def\!yref{0} %............P...... \def\!yshadesave{0} %.................S. \def\!zero{0} %..................T % Reset TeX to report allocations \let\wlog=\!!!wlog % ************************************* % *** AREAS: Deals with plot areas *** % ************************************* % % ** User commands % ** \setplotarea x from LEFT XCOORD to RIGTH XCOORD, y from BOTTOM YCOORD % ** to TOP YCOORD % ** \axis BOTTOM-LEFT-TOP-RIGHT [SHIFTEDTO xy=COORD] [VISIBLE-INVISIBLE] % ** [LABEL {label}] [TICKS] / % ** \visibleaxes % ** \invisibleaxes % ** \plotheading {HEADING} % ** \grid {# of columns} {# of rows} % ** \normalgraphs % ** \normalgraphs % ** Sets defaults for graph setup. See Subsection 3.4 of manual. \def\normalgraphs{% \longticklength=.4\baselineskip \shortticklength=.25\baselineskip \tickstovaluesleading=.25\baselineskip \valuestolabelleading=.8\baselineskip \linethickness=.4pt \stackleading=.17\baselineskip \headingtoplotskip=1.5\baselineskip \visibleaxes \ticksout \nogridlines \unloggedticks} % % ** \setplotarea x from LEFT XCOORD to RIGTH XCOORD, y from BOTTOM YCOORD % ** to TOP YCOORD % ** Reserves space in PICBOX for a rectangular box with the indicated % ** coordinates. Must be specified before calls to \axis, % ** \grid, \plotheading. % ** See Subsection 3.1 of the manual. \def\setplotarea x from #1 to #2, y from #3 to #4 {% \!arealloc=\!M{#1}\!xunit \advance \!arealloc -\!xorigin \!areabloc=\!M{#3}\!yunit \advance \!areabloc -\!yorigin \!arearloc=\!M{#2}\!xunit \advance \!arearloc -\!xorigin \!areatloc=\!M{#4}\!yunit \advance \!areatloc -\!yorigin \!initinboundscheck \!xaxislength=\!arearloc \advance\!xaxislength -\!arealloc \!yaxislength=\!areatloc \advance\!yaxislength -\!areabloc \!plotheadingoffset=\!zpt \!dimenput {{\setbox0=\hbox{}\wd0=\!xaxislength\ht0=\!yaxislength\box0}} [bl] (\!arealloc,\!areabloc)} % % ** \visibleaxes, \invisibleaxes % ** Switches for setting visibility of subsequent axes. % ** See Subsection 3.2 of the manual. \def\visibleaxes{% \def\!axisvisibility{\!axisvisibletrue}} \def\invisibleaxes{% \def\!axisvisibility{\!axisvisiblefalse}} % % ** The next few macros enable the user to fix up an erroneous keyword % ** in the \axis command. % \newhelp is in ALLOCATIONS % \newhelp\!keywordhelp{The keyword mentioned in the error message in unknown. % Replace NEW KEYWORD in the indicated response by the keyword that % should have been specified.} \def\!fixkeyword#1{% \errhelp=\!keywordhelp \errmessage{Unrecognized keyword `#1': \the\!keywordtoks{NEW KEYWORD}'}} % \newtoks\!keywordtoks In ALLOCATIONS. \!keywordtoks={enter `i\fixkeyword} \def\fixkeyword#1{% \!nextkeyword#1 } % ** \axis BOTTOM-LEFT-TOP-RIGHT [SHIFTEDTO xy=COORD] [VISIBLE-INVISIBLE] % ** [LABEL {label}] [TICKS] / % ** Exactly one of the keywords BOTTOM, LEFT, TOP, RIGHT must be % ** specified. Axis is drawn along the indicated edge of the current % ** plot area, shifted if the SHIFTEDTO option is used, visible or % ** invisible according the selected option, with an optional LABEL, % ** and optional TICKS (see ticks.tex for the options avialabel with % ** TICKS). The TICKS option must be the last one specified. The \axis % ** MUST be terminated with a / followed by a space. % ** See Subsection 3.2 of the manual for more information. % ** The various options of the \axis command are processed by the % ** \!nextkeyword macro defined below. For example, % ** `\!nextkeyword shiftedto ' expands to `\!axisshiftedto'. \def\axis {% \def\!nextkeyword##1 {% \expandafter\ifx\csname !axis##1\endcsname \relax \def\!next{\!fixkeyword{##1}}% \else \def\!next{\csname !axis##1\endcsname}% \fi \!next}% \!offset=\!zpt \!axisvisibility \!placeaxislabelfalse \!nextkeyword} % ** This and the various macros that follow handle the keyword % ** specifications on the \axis command % ** See Subsection 3.2 of the manual. \def\!axisbottom{% \!axisylevel=\!areabloc \def\!tickxsign{0}% \def\!tickysign{-}% \def\!axissetup{\!axisxsetup}% \def\!axislabeltbrl{t}% \!nextkeyword} \def\!axistop{% \!axisylevel=\!areatloc \def\!tickxsign{0}% \def\!tickysign{+}% \def\!axissetup{\!axisxsetup}% \def\!axislabeltbrl{b}% \!nextkeyword} \def\!axisleft{% \!axisxlevel=\!arealloc \def\!tickxsign{-}% \def\!tickysign{0}% \def\!axissetup{\!axisysetup}% \def\!axislabeltbrl{r}% \!nextkeyword} \def\!axisright{% \!axisxlevel=\!arearloc \def\!tickxsign{+}% \def\!tickysign{0}% \def\!axissetup{\!axisysetup}% \def\!axislabeltbrl{l}% \!nextkeyword} \def\!axisshiftedto#1=#2 {% \if 0\!tickxsign \!axisylevel=\!M{#2}\!yunit \advance\!axisylevel -\!yorigin \else \!axisxlevel=\!M{#2}\!xunit \advance\!axisxlevel -\!xorigin \fi \!nextkeyword} \def\!axisvisible{% \!axisvisibletrue \!nextkeyword} \def\!axisinvisible{% \!axisvisiblefalse \!nextkeyword} \def\!axislabel#1 {% \!axisLaBeL={#1}% \!placeaxislabeltrue \!nextkeyword} \expandafter\def\csname !axis/\endcsname{% \!axissetup % This could done already by "ticks"; if so, now \relax \if!placeaxislabel \!placeaxislabel \fi \if +\!tickysign % ** (A "top" axis) \!dimenA=\!axisylevel \advance\!dimenA \!offset % ** dimA = top of the axis structure \advance\!dimenA -\!areatloc % ** dimA = excess over the plot area \ifdim \!dimenA>\!plotheadingoffset \!plotheadingoffset=\!dimenA % ** Greatest excess over the plot area \fi \fi} % ** \grid {c} {r} % ** Partitions the plot area into c columns and r rows; see Subsection 3.3 % ** of the manual. % ** (Other grid patterns can be drawn with the TICKS option of the \axis % ** command. \def\grid #1 #2 {% \!countA=#1\advance\!countA 1 \axis bottom invisible ticks length <\!zpt> andacross quantity {\!countA} / \!countA=#2\advance\!countA 1 \axis left invisible ticks length <\!zpt> andacross quantity {\!countA} / } % ** \plotheading{HEADING} % ** Places HEADING centered above the top of the plotarea (and above % ** any top axis ticks marks, tick labels, and axis label); see % ** Subsection 3.3 of the manual. \def\plotheading#1 {% \advance\!plotheadingoffset \headingtoplotskip \!dimenput {#1} [B] <.5\!xaxislength,\!plotheadingoffset> (\!arealloc,\!areatloc)} % ** From here on, the routines are internal. \def\!axisxsetup{% \!axisxlevel=\!arealloc \!axisstart=\!arealloc \!axisend=\!arearloc \!axisLength=\!xaxislength \!!origin=\!xorigin \!!unit=\!xunit \!xswitchtrue \if!axisvisible \!makeaxis \fi} \def\!axisysetup{% \!axisylevel=\!areabloc \!axisstart=\!areabloc \!axisend=\!areatloc \!axisLength=\!yaxislength \!!origin=\!yorigin \!!unit=\!yunit \!xswitchfalse \if!axisvisible \!makeaxis \fi} \def\!makeaxis{% \setbox\!boxA=\hbox{% (Make a pseudo-y[x] tick for an x[y]-axis) \beginpicture \!setdimenmode \setcoordinatesystem point at {\!zpt} {\!zpt} \putrule from {\!zpt} {\!zpt} to {\!tickysign\!tickysign\!axisLength} {\!tickxsign\!tickxsign\!axisLength} \endpicturesave <\!Xsave,\!Ysave>}% \wd\!boxA=\!zpt \!placetick\!axisstart} \def\!placeaxislabel{% \advance\!offset \valuestolabelleading \if!xswitch \!dimenput {\the\!axisLaBeL} [\!axislabeltbrl] <.5\!axisLength,\!tickysign\!offset> (\!axisxlevel,\!axisylevel) \advance\!offset \!dp % ** advance offset by the "tallness" \advance\!offset \!ht % ** of the label \else \!dimenput {\the\!axisLaBeL} [\!axislabeltbrl] <\!tickxsign\!offset,.5\!axisLength> (\!axisxlevel,\!axisylevel) \fi \!axisLaBeL={}} % ******************************* % *** ARROWS (Draws arrows) *** % ******************************* % % ** User commands % ** \arrow [MID FRACTION, BASE FRACTION] % ** [] from XFROM YFROM to XTO YTO % ** \betweenarrows {TEXT} [orientation & shift] from XFROM YFROM to XTO YTO % ** \arrow [MID FRACTION, BASE FRACTION] % ** [] from XFROM YFROM to XTO YTO % ** Draws an arrow from (XFROM,YFROM) to (XTO,YTO). The arrow head % ** is constructed two quadratic arcs, which extend back a distance % ** ARROW HEAD LENGTH (a dimension) on both sides of the arrow shaft. % ** All the way back the arcs are a distance BASE FRACTION*ARROW HEAD % ** LENGTH apart, while half-way back they are a distance MID FRACTION* % ** ARROW HEAD LENGTH apart. is optional, and has % ** its usual interpreation. See Subsection 5.4 of the manual. \def\arrow <#1> [#2,#3]{% \!ifnextchar<{\!arrow{#1}{#2}{#3}}{\!arrow{#1}{#2}{#3}<\!zpt,\!zpt> }} \def\!arrow#1#2#3<#4,#5> from #6 #7 to #8 #9 {% % % ** convert to dimensions \!xloc=\!M{#8}\!xunit \!yloc=\!M{#9}\!yunit \!dxpos=\!xloc \!dimenA=\!M{#6}\!xunit \advance \!dxpos -\!dimenA \!dypos=\!yloc \!dimenA=\!M{#7}\!yunit \advance \!dypos -\!dimenA \let\!MAH=\!M% ** save current c/d mode \!setdimenmode% ** go into dimension mode % \!xshift=#4\relax \!yshift=#5\relax% ** pick up shift \!reverserotateonly\!xshift\!yshift% ** back rotate shift \advance\!xshift\!xloc \advance\!yshift\!yloc % % ** draw shaft of arrow \!xS=-\!dxpos \advance\!xS\!xshift \!yS=-\!dypos \advance\!yS\!yshift \!start (\!xS,\!yS) \!ljoin (\!xshift,\!yshift) % % ** find 32*cosine and 32*sine of angle of rotation \!Pythag\!dxpos\!dypos\!arclength \!divide\!dxpos\!arclength\!dxpos \!dxpos=32\!dxpos \!removept\!dxpos\!!cos \!divide\!dypos\!arclength\!dypos \!dypos=32\!dypos \!removept\!dypos\!!sin % % ** construct arrowhead \!halfhead{#1}{#2}{#3}% ** draw half of arrow head \!halfhead{#1}{-#2}{-#3}% ** draw other half % \let\!M=\!MAH% ** restore old c/d mode \ignorespaces} % % ** draw half of arrow head \def\!halfhead#1#2#3{% \!dimenC=-#1% \divide \!dimenC 2 % ** half way back \!dimenD=#2\!dimenC% ** half the mid width \!rotate(\!dimenC,\!dimenD)by(\!!cos,\!!sin)to(\!xM,\!yM) \!dimenC=-#1% ** all the way back \!dimenD=#3\!dimenC \!dimenD=.5\!dimenD% ** half the full width \!rotate(\!dimenC,\!dimenD)by(\!!cos,\!!sin)to(\!xE,\!yE) \!start (\!xshift,\!yshift) \advance\!xM\!xshift \advance\!yM\!yshift \advance\!xE\!xshift \advance\!yE\!yshift \!qjoin (\!xM,\!yM) (\!xE,\!yE) \ignorespaces} % ** \betweenarrows {TEXT} [orientation & shift] from XFROM YFROM to XTO YTO % ** Makes things like <--- text --->, using arrow heads from TeX's fonts. % ** See Subsection 5.4 of the manual. \def\betweenarrows #1#2 from #3 #4 to #5 #6 {% \!xloc=\!M{#3}\!xunit \!xxloc=\!M{#5}\!xunit% \!yloc=\!M{#4}\!yunit \!yyloc=\!M{#6}\!yunit% \!dxpos=\!xxloc \advance\!dxpos by -\!xloc \!dypos=\!yyloc \advance\!dypos by -\!yloc \advance\!xloc .5\!dxpos \advance\!yloc .5\!dypos % \let\!MBA=\!M% ** save current coord\dimen mode \!setdimenmode% ** express locations in dimens \ifdim\!dypos=\!zpt \ifdim\!dxpos<\!zpt \!dxpos=-\!dxpos \fi \put {\!lrarrows{\!dxpos}{#1}}#2{} at {\!xloc} {\!yloc} \else \ifdim\!dxpos=\!zpt \ifdim\!dypos<\!zpt \!dypos=-\!zpt \fi \put {\!udarrows{\!dypos}{#1}}#2{} at {\!xloc} {\!yloc} \fi \fi \let\!M=\!MBA% ** restore previous c/d mode \ignorespaces} % ** Subroutine for left-right between arrows \def\!lrarrows#1#2{% #1=width, #2=text {\setbox\!boxA=\hbox{$\mkern-2mu\mathord-\mkern-2mu$}% \setbox\!boxB=\hbox{$\leftarrow$}\!dimenE=\ht\!boxB \setbox\!boxB=\hbox{}\ht\!boxB=2\!dimenE \hbox to #1{$\mathord\leftarrow\mkern-6mu \cleaders\copy\!boxA\hfil \mkern-6mu\mathord-$% \kern.4em $\vcenter{\box\!boxB}$$\vcenter{\hbox{#2}}$\kern.4em $\mathord-\mkern-6mu \cleaders\copy\!boxA\hfil \mkern-6mu\mathord\rightarrow$}}} % ** Subroutine for up-down between arrows \def\!udarrows#1#2{% #1=width, #2=text {\setbox\!boxB=\hbox{#2}% \setbox\!boxA=\hbox to \wd\!boxB{\hss$\vert$\hss}% \!dimenE=\ht\!boxA \advance\!dimenE \dp\!boxA \divide\!dimenE 2 \vbox to #1{\offinterlineskip \vskip .05556\!dimenE \hbox to \wd\!boxB{\hss$\mkern.4mu\uparrow$\hss}\vskip-\!dimenE \cleaders\copy\!boxA\vfil \vskip-\!dimenE\copy\!boxA \vskip\!dimenE\copy\!boxB\vskip.4em \copy\!boxA\vskip-\!dimenE \cleaders\copy\!boxA\vfil \vskip-\!dimenE \hbox to \wd\!boxB{\hss$\mkern.4mu\downarrow$\hss} \vskip .05556\!dimenE}}} % *************************** % *** BARS (Draws bars) *** % *************************** % % ** User commands: % ** \putbar [] breadth from XSTART YSTART % ** to XEND YEND % ** \setbars [] breadth baseline at XY = COORD % ** [baselabels ([B_ORIENTATION_x,B_ORIENTATION_y] )] % ** [endlabels ([E_ORIENTATION_x,E_ORIENTATION_y] )] % ** \putbar [] breadth from XSTART YSTART % ** to XEND YEND % ** Either XSTART=XEND or YSTART=YEND. Draws a rectangle between % ** (XSTART,YSTART) & (XEND,YEND). The "depth" of the rectangle % ** is determined by those two plot positions; its other % ** dimension "breadth" is specified by the dimension BREADTH. % ** See Subsection 4.2 of the manual. \def\putbar#1breadth <#2> from #3 #4 to #5 #6 {% \!xloc=\!M{#3}\!xunit \!xxloc=\!M{#5}\!xunit% \!yloc=\!M{#4}\!yunit \!yyloc=\!M{#6}\!yunit% \!dypos=\!yyloc \advance\!dypos by -\!yloc \!dimenI=#2 % \ifdim \!dimenI=\!zpt % ** If 0 breadth \putrule#1from {#3} {#4} to {#5} {#6} % ** Then draw line \else % ** Else, put in a rectangle \let\!MBar=\!M% ** save current c/d mode \!setdimenmode % ** go into dimension mode \divide\!dimenI 2 \ifdim \!dypos=\!zpt \advance \!yloc -\!dimenI % ** Equal y coordinates \advance \!yyloc \!dimenI \else \advance \!xloc -\!dimenI % ** Equal x coordinates \advance \!xxloc \!dimenI \fi \putrectangle#1corners at {\!xloc} {\!yloc} and {\!xxloc} {\!yyloc} \let\!M=\!MBar % ** restore c/d mode \fi \ignorespaces} % ** \setbars [] breadth baseline at XY = COORD % ** [baselabels ([B_ORIENTATION_x,B_ORIENTATION_y] )] % ** [endlabels ([E_ORIENTATION_x,E_ORIENTATION_y] )] % ** This command puts PiCTeX into the bar graph drawing mode described % ** in Subsection 4.4 of the manual. \def\setbars#1breadth <#2> baseline at #3 = #4 {% \edef\!barshift{#1}% \edef\!barbreadth{#2}% \edef\!barorientation{#3}% \edef\!barbaseline{#4}% \def\!bardobaselabel{\!bardoendlabel}% \def\!bardoendlabel{\!barfinish}% \let\!drawcurve=\!barcurve \!setbars} \def\!setbars{% \futurelet\!nextchar\!!setbars} \def\!!setbars{% \if b\!nextchar \def\!!!setbars{\!setbarsbget}% \else \if e\!nextchar \def\!!!setbars{\!setbarseget}% \else \def\!!!setbars{\relax}% \fi \fi \!!!setbars} \def\!setbarsbget baselabels (#1) {% \def\!barbaselabelorientation{#1}% \def\!bardobaselabel{\!!bardobaselabel}% \!setbars} \def\!setbarseget endlabels (#1) {% \edef\!barendlabelorientation{#1}% \def\!bardoendlabel{\!!bardoendlabel}% \!setbars} % ** \!barcurve % ** Draws a bargraph with preset values of barshift, barbreadth, % ** barorientation (x or y) and barbaseline (coordinate) \def\!barcurve #1 #2 {% \if y\!barorientation \def\!basexarg{#1}% \def\!baseyarg{\!barbaseline}% \else \def\!basexarg{\!barbaseline}% \def\!baseyarg{#2}% \fi \expandafter\putbar\!barshift breadth <\!barbreadth> from {\!basexarg} {\!baseyarg} to {#1} {#2} \def\!endxarg{#1}% \def\!endyarg{#2}% \!bardobaselabel} \def\!!bardobaselabel "#1" {% \put {#1}\!barbaselabelorientation{} at {\!basexarg} {\!baseyarg} \!bardoendlabel} \def\!!bardoendlabel "#1" {% \put {#1}\!barendlabelorientation{} at {\!endxarg} {\!endyarg} \!barfinish} \def\!barfinish{% \!ifnextchar/{\!finish}{\!barcurve}} % ******************************** % *** BOXES (Draws rectangles) *** % ******************************** % % ** User commands: % ** \putrectangle [] corners at XCOORD1 YCOORD1 % ** and XCOORD2 YCOORD2 % ** \shaderectangleson % ** \shaderectanglesoff % ** \frame [] {TEXT} % ** \rectangle % % % ** \putrectangle [] corners at XCOORD1 YCOORD1 % ** and XCOORD2 YCOORD2 % ** Draws a rectangle with corners at (X1,Y1), (X2,Y1), (X1,Y2), (X2,Y2) % ** Lines have thickness \linethickness, and overlap at the corners. % ** The optional field functions as with a \put command. % ** See Subsection 4.2 of the manual. \def\putrectangle{% \!ifnextchar<{\!putrectangle}{\!putrectangle<\!zpt,\!zpt> }} \def\!putrectangle<#1,#2> corners at #3 #4 and #5 #6 {% % % ** get locations \!xone=\!M{#3}\!xunit \!xtwo=\!M{#5}\!xunit% \!yone=\!M{#4}\!yunit \!ytwo=\!M{#6}\!yunit% \ifdim \!xtwo<\!xone \!dimenI=\!xone \!xone=\!xtwo \!xtwo=\!dimenI \fi \ifdim \!ytwo<\!yone \!dimenI=\!yone \!yone=\!ytwo \!ytwo=\!dimenI \fi \!dimenI=#1\relax \advance\!xone\!dimenI \advance\!xtwo\!dimenI \!dimenI=#2\relax \advance\!yone\!dimenI \advance\!ytwo\!dimenI \let\!MRect=\!M% ** save current coord/dimen mode \!setdimenmode % % ** shade rectangle if appropriate \!shaderectangle % % ** draw horizontal edges \!dimenI=.5\linethickness \advance \!xone -\!dimenI% ** adjust x-location to overlap corners \advance \!xtwo \!dimenI% ** ditto \putrule from {\!xone} {\!yone} to {\!xtwo} {\!yone} \putrule from {\!xone} {\!ytwo} to {\!xtwo} {\!ytwo} % % ** draw vertical edges \advance \!xone \!dimenI% ** restore original x-values \advance \!xtwo -\!dimenI% \advance \!yone -\!dimenI% ** adjust y-location to overlap corners \advance \!ytwo \!dimenI% ** ditto \putrule from {\!xone} {\!yone} to {\!xone} {\!ytwo} \putrule from {\!xtwo} {\!yone} to {\!xtwo} {\!ytwo} % \let\!M=\!MRect% ** restore coord/dimen mode \ignorespaces} % ** \shaderectangleson % ** Subsequent rectangles will be shaded according to % ** the current shading pattern. Affects \putrectangle, \putbar, % ** \frame, \sethistograms, and \setbars. See Subsection 7.5 of the manual. \def\shaderectangleson{% \def\!shaderectangle{\!!shaderectangle}% \ignorespaces} % ** \shaderectanglesoff % ** Suppresses \shaderectangleson. The default. \def\shaderectanglesoff{% \def\!shaderectangle{}% \ignorespaces} \shaderectanglesoff % ** The following internal routine shades the current rectangle, when % ** \!shaderectangle = \!!shaderectangle . \def\!!shaderectangle{% \!dimenA=\!xtwo \advance \!dimenA -\!xone \!dimenB=\!ytwo \advance \!dimenB -\!yone \ifdim \!dimenA<\!dimenB \!startvshade (\!xone,\!yone,\!ytwo) \!lshade (\!xtwo,\!yone,\!ytwo) \else \!starthshade (\!yone,\!xone,\!xtwo) \!lshade (\!ytwo,\!xone,\!xtwo) \fi \ignorespaces} % ** \frame [] {TEXT} % ** Draws a frame of thickness linethickness about the box enclosing % ** TEXT; the frame is separated from the box by a distance of % ** SEPARATION. The result is an hbox with the same baseline as TEXT. % ** If is omitted, you get the effect of <0pt>. % ** See Subsection 4.2 of the manual. \def\frame{% \!ifnextchar<{\!frame}{\!frame<\!zpt> }} \long\def\!frame<#1> #2{% \beginpicture \setcoordinatesystem units <1pt,1pt> point at 0 0 \put {#2} [Bl] at 0 0 \!dimenA=#1\relax \!dimenB=\!wd \advance \!dimenB \!dimenA \!dimenC=\!ht \advance \!dimenC \!dimenA \!dimenD=\!dp \advance \!dimenD \!dimenA \let\!MFr=\!M \!setdimenmode \putrectangle corners at {-\!dimenA} {-\!dimenD} and {\!dimenB} {\!dimenC} \!setcoordmode \let\!M=\!MFr \endpicture \ignorespaces} % ** \rectangle % ** Constructs a rectangle of width WIDTH and heigth HEIGHT. % ** See Subsection 4.2 of the manual. \def\rectangle <#1> <#2> {% \setbox0=\hbox{}\wd0=#1\ht0=#2\frame {\box0}} % ********************************************* % *** CURVES (Upper level \plot commands) *** % ********************************************* % % ** User commands % ** \plot DATA / % ** \plot "FILE NAME" % ** \setquadratic % ** \setlinear % ** \sethistograms % ** \vshade ... % ** \hshade ... % \plot: multi-purpose command. Draws histograms, bar graphs, piecewise-linear % or piecewise quadratic curves, depending on the setting of \!drawcurve. % See Subsections 4.3-4.5, 5.1, 5.2 of the manual. \def\plot{% \!ifnextchar"{\!plotfromfile}{\!drawcurve}} \def\!plotfromfile"#1"{% \expandafter\!drawcurve \normalinput #1 /} % Command to set piecewise quadratic mode % See Subsections 5.1, 7.3, and 7.4 of the manual. \def\setquadratic{% \let\!drawcurve=\!qcurve \let\!!Shade=\!!qShade \let\!!!Shade=\!!!qShade} % Command to set piecewise linear mode % See Subsections 5.1, 7.3, and 7.4 of the manual. \def\setlinear{% \let\!drawcurve=\!lcurve \let\!!Shade=\!!lShade \let\!!!Shade=\!!!lShade} % Command to set histogram mode % See Subsection 4.3 of the manual. \def\sethistograms{% \let\!drawcurve=\!hcurve} % Commands to cycle through list of coordinates in piecewise quadratic % interpolation mode \def\!qcurve #1 #2 {% \!start (#1,#2) \!Qjoin} \def\!Qjoin#1 #2 #3 #4 {% \!qjoin (#1,#2) (#3,#4) % \!qjoin is defined in QUADRATIC \!ifnextchar/{\!finish}{\!Qjoin}} % Commands to cycle through list of coordinates in piecewise linear % interpolation mode \def\!lcurve #1 #2 {% \!start (#1,#2) \!Ljoin} \def\!Ljoin#1 #2 {% \!ljoin (#1,#2) % \!ljoin is defined in LINEAR \!ifnextchar/{\!finish}{\!Ljoin}} \def\!finish/{\ignorespaces} % Command to cycle through list of coordinates in histogram mode \def\!hcurve #1 #2 {% \edef\!hxS{#1}% \edef\!hyS{#2}% \!hjoin} \def\!hjoin#1 #2 {% \putrectangle corners at {\!hxS} {\!hyS} and {#1} {#2} \edef\!hxS{#1}% \!ifnextchar/{\!finish}{\!hjoin}} % \vshade: See Subsection 7.3 of the manual. \def\vshade #1 #2 #3 {% \!startvshade (#1,#2,#3) \!Shadewhat} % \hshade: See Subsection 7.4 of the manual. \def\hshade #1 #2 #3 {% \!starthshade (#1,#2,#3) \!Shadewhat} % Commands to cycle through coordinates and optional "edge effect" % fields while shading. \def\!Shadewhat{% \futurelet\!nextchar\!Shade} \def\!Shade{% \if <\!nextchar \def\!nextShade{\!!Shade}% \else \if /\!nextchar \def\!nextShade{\!finish}% \else \def\!nextShade{\!!!Shade}% \fi \fi \!nextShade} \def\!!lShade<#1> #2 #3 #4 {% \!lshade <#1> (#2,#3,#4) % \!lshade is defined in SHADING \!Shadewhat} \def\!!!lShade#1 #2 #3 {% \!lshade (#1,#2,#3) \!Shadewhat} \def\!!qShade<#1> #2 #3 #4 #5 #6 #7 {% \!qshade <#1> (#2,#3,#4) (#5,#6,#7) % \!qshade is defined in SHADING \!Shadewhat} \def\!!!qShade#1 #2 #3 #4 #5 #6 {% \!qshade (#1,#2,#3) (#4,#5,#6) \!Shadewhat} % ** Set default interpolation mode \setlinear % ******************************************** % *** DASHPATTERNS (Sets up dash patterns) *** % ******************************************** % ** User commands: % ** \setdashpattern % ** \setdots % ** \setdotsnear for % ** \setdashes % ** \setdashesnear for % ** \setsolid % ** \findlength {CURVE CMDS} % ** Internal commands: % ** \!dashingon % ** \!dashingoff % ** Dash patterns are specified by a balanced token list whose complete % ** expansion has the form: DIMEN1,DIMEN2,DIMEN3,DIMEN4,... ; this produces % ** an arc of length DIMEN1, a skip of length DIMEN2, an arc of length % ** DIMEN3, a skip of length DIMEN4, ... . Any number of DIMEN values may % ** be given. The pattern is repeated as many times (perhaps fractional) % ** as necessary to draw the curve. % ** A dash pattern remains in effect until it is overridden by a call to % ** \setdashpattern, or to \setdots, \setdotsnear ... , \setdashes, % ** \setdashesnear ... , or \setsolid. % ** Solid lines are the default. % ** \def\setdashpattern % ** The following routine converts a balanced list of tokens whose % ** complete expansion has the form DIMEN1,DIMEN2, ... , DIMENk into % ** three list macros that are used in drawing dashed rules and curves: % ** !Flist: \!Rule{DIMEN1}\!Skip{DIMEN2}\!Rule{DIMEN3}\!Skip{DIMEN4} ... % ** !Blist: ...\!Skip{DIMEN4}\!Rule{DIMEN3}\!Skip{DIMEN2}\!Rule{DIMEN1} % ** !UDlist: \\{DIMEN1}\\{DIMEN2}\\{DIMEN3}\\{DIMEN4} ...; % ** calculates \!leaderlength := DIMEN1 + ... + DIMENk; and % ** sets the curve drawing routines to dash mode. % ** Those lists are used by the curve drawing routines. % ** Dimenj ... may be given as an explicit dimension (e.g., 5pt), or % ** as an expression involving a dimension register (e.g., -2.5\dimen0). % ** See Subsection 6.2 of the manual \def\setdashpattern <#1>{% \def\!Flist{}\def\!Blist{}\def\!UDlist{}% \!countA=0 \!ecfor\!item:=#1\do{% \!dimenA=\!item\relax \expandafter\!rightappend\the\!dimenA\withCS{\\}\to\!UDlist% \advance\!countA 1 \ifodd\!countA \expandafter\!rightappend\the\!dimenA\withCS{\!Rule}\to\!Flist% \expandafter\!leftappend\the\!dimenA\withCS{\!Rule}\to\!Blist% \else \expandafter\!rightappend\the\!dimenA\withCS{\!Skip}\to\!Flist% \expandafter\!leftappend\the\!dimenA\withCS{\!Skip}\to\!Blist% \fi}% \!leaderlength=\!zpt \def\!Rule##1{\advance\!leaderlength ##1}% \def\!Skip##1{\advance\!leaderlength ##1}% \!Flist% \ifdim\!leaderlength>\!zpt \else \def\!Flist{\!Skip{24in}}\def\!Blist{\!Skip{24in}}\ignorespaces \def\!UDlist{\\{\!zpt}\\{24in}}\ignorespaces \!leaderlength=24in \fi \!dashingon} % ** \!dashingon -- puts the curve drawing routines into dash mode % ** \!dashingoff -- puts the curve drawing routines into solid mode % ** These are internal commands, invoked by \setdashpattern and \setsolid \def\!dashingon{% \def\!advancedashing{\!!advancedashing}% \def\!drawlinearsegment{\!lineardashed}% \def\!puthline{\!putdashedhline}% \def\!putvline{\!putdashedvline}% % \def\!putsline{\!putdashedsline}% \ignorespaces}% \def\!dashingoff{% \def\!advancedashing{\relax}% \def\!drawlinearsegment{\!linearsolid}% \def\!puthline{\!putsolidhline}% \def\!putvline{\!putsolidvline}% % \def\!putsline{\!putsolidsline}% \ignorespaces} % ** \setdots -- sets up a dot/skip pattern where dot (actually % ** the current plotsymbol) is plunked down once for every LENGTH % ** traveled along the curve. LENGTH defaults to 5pt. % ** See Subsection 6.1 of the manual. \def\setdots{% \!ifnextchar<{\!setdots}{\!setdots<5pt>}} \def\!setdots<#1>{% \!dimenB=#1\advance\!dimenB -\plotsymbolspacing \ifdim\!dimenB<\!zpt \!dimenB=\!zpt \fi \setdashpattern <\plotsymbolspacing,\!dimenB>} % ** \setdotsnear for % ** sets up a dot pattern where the dots are approximately LENGTH apart, % ** the total length of the pattern is ARC LENGTH, and the pattern % ** begins and ends with a dot. See Subsection 6.3 of the manual. \def\setdotsnear <#1> for <#2>{% \!dimenB=#2\relax \advance\!dimenB -.05pt \!dimenC=#1\relax \!countA=\!dimenC \!dimenD=\!dimenB \advance\!dimenD .5\!dimenC \!countB=\!dimenD \divide \!countB \!countA \ifnum 1>\!countB \!countB=1 \fi \divide\!dimenB \!countB \setdots <\!dimenB>} % ** \setdashes -- sets up a dash/skip pattern where the dash % ** and the skip are each of length LENGTH (the dash is formed by % ** plunking down the current plotsymbol over an arc of length LENGTH % ** and so may actually be longer than LENGTH. LENGTH defaults to 5pt. % ** See Subsection 6.1 of the manual. \def\setdashes{% \!ifnextchar<{\!setdashes}{\!setdashes<5pt>}} \def\!setdashes<#1>{\setdashpattern <#1,#1>} % ** \setdashesnear ... % ** Like \setdotsnear; the pattern begins and ends with a dash. % ** See Subsection 6.3 of the manual. \def\setdashesnear <#1> for <#2>{% \!dimenB=#2\relax \!dimenC=#1\relax \!countA=\!dimenC \!dimenD=\!dimenB \advance\!dimenD .5\!dimenC \!countB=\!dimenD \divide \!countB \!countA \ifodd \!countB \else \advance \!countB 1 \fi \divide\!dimenB \!countB \setdashes <\!dimenB>} % ** \setsolid -- puts the curve drawing routines in "solid line" mode, % ** the default mode. See Subsection 6.1 of the manual. \def\setsolid{% \def\!Flist{\!Rule{24in}}\def\!Blist{\!Rule{24in}}% \def\!UDlist{\\{24in}\\{\!zpt}}% \!dashingoff} \setsolid % ** \findlength {CURVE CMDS} % ** PiCTeX executes the \start, \ljoin, and \qjoin cmds comprising % ** CURVE CMDS without plotting anything, but stashes the length % ** of the phantom curve away in \totalarclength. % ** See Subsection 6.3 of the manual. \def\findlength#1{% \begingroup \setdashpattern <0pt, \maxdimen> \setplotsymbol ({}) \dontsavelinesandcurves #1% \endgroup \ignorespaces} % ************************************************************* % *** DIVISION (Does long division of dimension registers) *** % ************************************************************* % ** User command: % ** \Divide {DIVIDEND} by {DIVISOR} forming {RESULT} % ** Internal command % ** \!divide{DIVIDEND}{DIVISOR}{RESULT} % ** \!divide DIVIDEND [by] DIVISOR [to get] ANSWER % ** Divides the dimension DIVIDEND by the dimension DIVISOR, placing the % ** quotient in the dimension register ANSWER. Values are understood to % ** be in points. E.g. 12.5pt/1.4pt=8.92857pt. % ** Quotient is accurate to 1/65536pt=2**[-16]pt % ** |DIVISOR| should be < 2048pt (about 28 inches). \def\!divide#1#2#3{% \!dimenB=#1% ** dimB holds current remainder (r) \!dimenC=#2% ** dimC holds divisor (d) \!dimenD=\!dimenB% ** dimD holds quotient q=r/d for this \divide \!dimenD \!dimenC% ** step, in units of scaled pts \!dimenA=\!dimenD% ** dimA eventually holds answer (a) \multiply\!dimenD \!dimenC% ** r <-- r - dq \advance\!dimenB -\!dimenD% ** First step complete. Have integer part % ** of a, and corresponding remainder. \!dimenD=\!dimenC% ** Temporarily use dimD to hold |d| \ifdim\!dimenD<\!zpt \!dimenD=-\!dimenD \fi \ifdim\!dimenD<64pt% ** Branch on the magnitude of |d| \!divstep[\!tfs]\!divstep[\!tfs]% \else \!!divide \fi #3=\!dimenA\ignorespaces} % ** The following code handles divisors d with % ** (1) .88in = 64pt <= d < 256pt = 3.54in % ** (2) 3.54in = 256pt <= d < 2048pt = 28.34in % ** Anything bigger than that may result in an overflow condition. % ** For our purposes, we should never even see case (2). \def\!!divide{% \ifdim\!dimenD<256pt \!divstep[64]\!divstep[32]\!divstep[32]% \else \!divstep[8]\!divstep[8]\!divstep[8]\!divstep[8]\!divstep[8]% \!dimenA=2\!dimenA \fi} % ** The following macro does the real long division work. \def\!divstep[#1]{% ** #1 = "B" \!dimenB=#1\!dimenB% ** r <-- B*r \!dimenD=\!dimenB% ** dimD holds quotient q=r/d for this \divide \!dimenD by \!dimenC% ** step, in units of scaled pts \!dimenA=#1\!dimenA% ** a <-- B*a + q \advance\!dimenA by \!dimenD% \multiply\!dimenD by \!dimenC% ** r <-- r - dq \advance\!dimenB by -\!dimenD} % ** \Divide: See Subsection 9.3 of the manual. \def\Divide <#1> by <#2> forming <#3> {% \!divide{#1}{#2}{#3}} % ********************************************* % *** ELLIPSES (Draws ellipses and circles) *** % ********************************************* % ** User commands % ** \ellipticalarc axes ratio A:B DEGREES degrees from XSTART YSTART % ** center at XCENTER YCENTER % ** \circulararc DEGREES degrees from XSTART YSTART % ** center at XCENTER YCENTER % ** Internal command % ** \!sinandcos{32*ANGLE in radians}{32*SIN}{32*COS} % ** \ellipticalarc axes ratio A:B DEGREES degrees from XSTART YSTART % ** center at XCENTER YCENTER % ** Draws a elliptical arc starting at the coordinate point (XSTART,YSTART). % ** The center of the ellipse of which the arc is a segment is at % ** (XCENTER,YCENTER). % ** The arc extends through an angle of DEGREES degrees (may be + or -). % ** A:B is the ratio of the length of the xaxis to the length of % ** the yaxis of the ellipse % ** Sqrt{[(XSTART-XCENTER)/A]**2 + [(YSTART-YCENTER)/B]**2} % ** must be < 512pt (about 7in). % ** Doesn't modify the dimensions (ht, dp, wd) of the PiCture under % ** construction. % ** \circulararc -- See Subsection 5.3 of the manual. \def\circulararc{% \ellipticalarc axes ratio 1:1 } % ** \ellipticalarc -- See Subsection 5.3 of the manual. \def\ellipticalarc axes ratio #1:#2 #3 degrees from #4 #5 center at #6 #7 {% \!angle=#3pt\relax% ** get angle \ifdim\!angle>\!zpt \def\!sign{}% ** counterclockwise \else \def\!sign{-}\!angle=-\!angle% ** clockwise \fi \!xxloc=\!M{#6}\!xunit% ** convert CENTER to dimension \!yyloc=\!M{#7}\!yunit \!xxS=\!M{#4}\!xunit% ** get STARTing point on rim of ellipse \!yyS=\!M{#5}\!yunit \advance\!xxS -\!xxloc% ** make center of ellipse (0,0) \advance\!yyS -\!yyloc \!divide\!xxS{#1pt}\!xxS % ** scale point on ellipse to point on \!divide\!yyS{#2pt}\!yyS % corresponding circle % \let\!MC=\!M% ** save current c/d mode \!setdimenmode% ** go into dimension mode % \!xS=#1\!xxS \advance\!xS\!xxloc \!yS=#2\!yyS \advance\!yS\!yyloc \!start (\!xS,\!yS)% \!loop\ifdim\!angle>14.9999pt% ** draw in major portion of ellipse \!rotate(\!xxS,\!yyS)by(\!cos,\!sign\!sin)to(\!xxM,\!yyM) \!rotate(\!xxM,\!yyM)by(\!cos,\!sign\!sin)to(\!xxE,\!yyE) \!xM=#1\!xxM \advance\!xM\!xxloc \!yM=#2\!yyM \advance\!yM\!yyloc \!xE=#1\!xxE \advance\!xE\!xxloc \!yE=#2\!yyE \advance\!yE\!yyloc \!qjoin (\!xM,\!yM) (\!xE,\!yE) \!xxS=\!xxE \!yyS=\!yyE \advance \!angle -15pt \repeat \ifdim\!angle>\!zpt% ** complete remaining arc, if any \!angle=100.53096\!angle% ** convert angle to radians, divide \divide \!angle 360 % ** by 2, and multiply by 32 \!sinandcos\!angle\!!sin\!!cos% ** get 32*sin & 32*cos \!rotate(\!xxS,\!yyS)by(\!!cos,\!sign\!!sin)to(\!xxM,\!yyM) \!rotate(\!xxM,\!yyM)by(\!!cos,\!sign\!!sin)to(\!xxE,\!yyE) \!xM=#1\!xxM \advance\!xM\!xxloc \!yM=#2\!yyM \advance\!yM\!yyloc \!xE=#1\!xxE \advance\!xE\!xxloc \!yE=#2\!yyE \advance\!yE\!yyloc \!qjoin (\!xM,\!yM) (\!xE,\!yE) \fi % \let\!M=\!MC% ** restore c/d mode \ignorespaces}% ** if appropriate % ** \!rotate(XREG,YREG)by(32cos,32sin)to(XXREG,YYREG) % ** rotates (XREG,YREG) by angle with specfied scaled cos & sin to % ** (XXREG,YYREG). Uses \!dimenA & \!dimenB as scratch registers. \def\!rotate(#1,#2)by(#3,#4)to(#5,#6){% \!dimenA=#3#1\advance \!dimenA -#4#2% ** Rcos(x+t)=Rcosx*cost - Rsinx*sint \!dimenB=#3#2\advance \!dimenB #4#1% ** Rsin(x+t)=Rsinx*cost + Rcosx*sint \divide \!dimenA 32 \divide \!dimenB 32 #5=\!dimenA #6=\!dimenB \ignorespaces} \def\!sin{4.17684}% ** 32*sin(pi/24) (pi/24=7.5deg) \def\!cos{31.72624}% ** 32*cos(pi/24) % ** \!sinandcos{32*ANGLE in radians}{\SINCS}{\COSCS} % ** Computes the 32*sine and 32*cosine of a small ANGLE expressed in % ** radians/32 and puts these values in the replacement texts of % ** \SINCS and \COSCS \def\!sinandcos#1#2#3{% \!dimenD=#1% ** angle is expressed in radians/32: 1pt = 1/32rad \!dimenA=\!dimenD% ** dimA will eventually contain 32sin(angle)in pts \!dimenB=32pt% ** dimB will eventually contain 32cos(angle)in pts \!removept\!dimenD\!value% ** get value of 32*angle, without "pt" \!dimenC=\!dimenD% ** holds 32*angle**i/i! in pts \!dimenC=\!value\!dimenC \divide\!dimenC by 64 % ** now 32*angle**2/2 \advance\!dimenB by -\!dimenC% ** 32-32*angle**2/2 \!dimenC=\!value\!dimenC \divide\!dimenC by 96 % ** now 32*angle**3/3! \advance\!dimenA by -\!dimenC% ** now 32*(angle-angle**3/6) \!dimenC=\!value\!dimenC \divide\!dimenC by 128 % ** now 32*angle**4/4! \advance\!dimenB by \!dimenC% \!removept\!dimenA#2% ** set 32*sin(angle) \!removept\!dimenB#3% ** set 32*cos(angle) \ignorespaces} % ***************************************************************** % *** RULES (Draws rules, i.e., horizontal & vertical lines) *** % ***************************************************************** % ** User command: % ** \putrule [] from XCOORD1 YCOORD1 % ** to XCOORD2 YCOORD2 % ** Internal commands: % ** \!puthline [] (h = horizontal) % ** Set by dashpat to either: \!putsolidhline or \!putdashedhline % ** \!putvline [] (v = vertical) % ** Either: \!putsolidvline or \!putdashedvline % ** \putrule [] from XCOORD1 YCOORD1 % ** to XCOORD2 YCOORD2 % ** Draws a rule -- dashed or solid depending on the current dash pattern -- % ** from (X1,Y1) to (X2,Y2). Uses TEK's \hrule & \vrule & \leaders % ** constructions to handle horizontal & vertical lines efficiently both % ** in terms of execution time and space in the DVI file. % ** See Subsection 4.1 of the manual. \def\putrule#1from #2 #3 to #4 #5 {% \!xloc=\!M{#2}\!xunit \!xxloc=\!M{#4}\!xunit% \!yloc=\!M{#3}\!yunit \!yyloc=\!M{#5}\!yunit% \!dxpos=\!xxloc \advance\!dxpos by -\!xloc \!dypos=\!yyloc \advance\!dypos by -\!yloc % \ifdim\!dypos=\!zpt \def\!!Line{\!puthline{#1}}\ignorespaces \else \ifdim\!dxpos=\!zpt \def\!!Line{\!putvline{#1}}\ignorespaces \else \def\!!Line{} \fi \fi \let\!ML=\!M% ** save current coord\dimen mode \!setdimenmode% ** express locations in dimens \!!Line% \let\!M=\!ML% ** restore previous c/d mode \ignorespaces} % ** \!putsolidhline [] % ** Place horizontal solid line \def\!putsolidhline#1{% \ifdim\!dxpos>\!zpt \put{\!hline\!dxpos}#1[l] at {\!xloc} {\!yloc} \else \put{\!hline{-\!dxpos}}#1[l] at {\!xxloc} {\!yyloc} \fi \ignorespaces} % ** \!putsolidvline [shifted ] % ** Place vertical solid line \def\!putsolidvline#1{% \ifdim\!dypos>\!zpt \put{\!vline\!dypos}#1[b] at {\!xloc} {\!yloc} \else \put{\!vline{-\!dypos}}#1[b] at {\!xxloc} {\!yyloc} \fi \ignorespaces} \def\!hline#1{\hbox to #1{\leaders \hrule height\linethickness\hfill}} \def\!vline#1{\vbox to #1{\leaders \vrule width\linethickness\vfill}} % ** \!putdashedhline [] % ** Place dashed horizontal line \def\!putdashedhline#1{% \ifdim\!dxpos>\!zpt \!DLsetup\!Flist\!dxpos \put{\hbox to \!totalleaderlength{\!hleaders}\!hpartialpattern\!Rtrunc} #1[l] at {\!xloc} {\!yloc} \else \!DLsetup\!Blist{-\!dxpos} \put{\!hpartialpattern\!Ltrunc\hbox to \!totalleaderlength{\!hleaders}} #1[r] at {\!xloc} {\!yloc} \fi \ignorespaces} % ** \!putdashedhline [] % ** Place dashed vertical line \def\!putdashedvline#1{% \!dypos=-\!dypos% ** vertical leaders go from top to bottom \ifdim\!dypos>\!zpt \!DLsetup\!Flist\!dypos \put{\vbox{\vbox to \!totalleaderlength{\!vleaders} \!vpartialpattern\!Rtrunc}}#1[t] at {\!xloc} {\!yloc} \else \!DLsetup\!Blist{-\!dypos} \put{\vbox{\!vpartialpattern\!Ltrunc \vbox to \!totalleaderlength{\!vleaders}}}#1[b] at {\!xloc} {\!yloc} \fi \ignorespaces} % ** The rest of the macros in this section are subroutines used by % ** \!putdashedhline and \!putdashedvline. \def\!DLsetup#1#2{% ** Dashed-Line set up \let\!RSlist=#1% ** set !Rule-Skip list \!countB=#2% ** convert rule length to integer (number of sps) \!countA=\!leaderlength% ** ditto, leaderlength \divide\!countB by \!countA% ** number of complete leader units \!totalleaderlength=\!countB\!leaderlength \!Rresiduallength=#2% \advance \!Rresiduallength by -\!totalleaderlength% \** excess length \!Lresiduallength=\!leaderlength \advance \!Lresiduallength by -\!Rresiduallength \ignorespaces} \def\!hleaders{% \def\!Rule##1{\vrule height\linethickness width##1}% \def\!Skip##1{\hskip##1}% \leaders\hbox{\!RSlist}\hfill} \def\!hpartialpattern#1{% \!dimenA=\!zpt \!dimenB=\!zpt \def\!Rule##1{#1{##1}\vrule height\linethickness width\!dimenD}% \def\!Skip##1{#1{##1}\hskip\!dimenD}% \!RSlist} \def\!vleaders{% \def\!Rule##1{\hrule width\linethickness height##1}% \def\!Skip##1{\vskip##1}% \leaders\vbox{\!RSlist}\vfill} \def\!vpartialpattern#1{% \!dimenA=\!zpt \!dimenB=\!zpt \def\!Rule##1{#1{##1}\hrule width\linethickness height\!dimenD}% \def\!Skip##1{#1{##1}\vskip\!dimenD}% \!RSlist} \def\!Rtrunc#1{\!trunc{#1}>\!Rresiduallength} \def\!Ltrunc#1{\!trunc{#1}<\!Lresiduallength} \def\!trunc#1#2#3{% \!dimenA=\!dimenB \advance\!dimenB by #1% \!dimenD=\!dimenB \ifdim\!dimenD#2#3\!dimenD=#3\fi \!dimenC=\!dimenA \ifdim\!dimenC#2#3\!dimenC=#3\fi \advance \!dimenD by -\!dimenC} % **************************************************************** % *** LINEAR ARC (Draws straight lines -- solid and dashed) *** % **************************************************************** % ** User commands % ** \inboundscheckoff % ** \inboundscheckon % ** Internal commands % ** \!start (XCOORD,YCOORD) % ** \!ljoin (XCOORD,YCOORD) % ** \!drawlinearsegment -- set by \dashpat to either % ** \!linearsolid or \!lineardashed % ** \!advancedashing -- set by \dashpat to either % ** \relax or \!!advancedashing % ** \!plotifinbounds -- set by \inboundscheck off/on to either % ** \!plot or \!!plotifinbounds % ** \!initinboundscheck -- set by \inboundscheck off/on to either % ** \relax or \!!initinboundscheck % \plotsymbolspacing ** distance between consecutive plot positions % \!xS ** starting x % \!yS ** starting y % \!xE ** ending x % \!yE ** ending y % \!xdiff ** x_end - x_start % \!ydiff ** y_end - y_start % \!distacross ** how far along curve next point to be plotted is % \!arclength ** approximate length of arc for current interval % \!downlength ** remaining length for "pen" to be down % \!uplength ** length for "pen" to be down % \!intervalno ** counts segments to curve % \totalarclength ** cumulative distance along curve % \!npoints ** approximately (arc length / plotsymbolspacing) % ** Calls -- \!Pythag, \!divide, \!plot % ** \!start (XCOORD,YCOORD) % ** Sets initial point for linearly (or quadratically) interpolated curve \def\!start (#1,#2){% \!plotxorigin=\!xorigin \advance \!plotxorigin by \!plotsymbolxshift \!plotyorigin=\!yorigin \advance \!plotyorigin by \!plotsymbolyshift \!xS=\!M{#1}\!xunit \!yS=\!M{#2}\!yunit \!rotateaboutpivot\!xS\!yS \!copylist\!UDlist\to\!!UDlist% **\!UDlist has the form \\{dimen1}\\{dimen2}.. % ** Routine will draw dashed line with pen % ** down for dimen1, up for dimen2, ... \!getnextvalueof\!downlength\from\!!UDlist \!distacross=\!zpt% ** 1st point goes at start of curve \!intervalno=0 % ** initialize interval counter \global\totalarclength=\!zpt% ** initialize distance traveled along curve \ignorespaces} % ** \!ljoin (XCOORD,YCOORD) % ** Draws a straight line starting at the last point specified % ** by the most recent \!start, \!ljoin, or \!qjoin, and % ** ending at (XCOORD,YCOORD). \def\!ljoin (#1,#2){% \advance\!intervalno by 1 \!xE=\!M{#1}\!xunit \!yE=\!M{#2}\!yunit \!rotateaboutpivot\!xE\!yE \!xdiff=\!xE \advance \!xdiff by -\!xS%** xdiff = xE - xS \!ydiff=\!yE \advance \!ydiff by -\!yS%** ydiff = yE - yS \!Pythag\!xdiff\!ydiff\!arclength% ** arclength = sqrt(xdiff**2+ydiff**2) \global\advance \totalarclength by \!arclength% \!drawlinearsegment% ** set by dashpat to \!linearsolid or \!lineardashed \!xS=\!xE \!yS=\!yE% ** shift ending points to starting points \ignorespaces} % ** The following routine is used to draw a "solid" line between (xS,yS) % ** and (xE,yE). Points are spaced nearly every \plotsymbolspacing length % ** along the line. \def\!linearsolid{% \!npoints=\!arclength \!countA=\plotsymbolspacing \divide\!npoints by \!countA% ** now #pts =. arclength/plotsymbolspacing \ifnum \!npoints<1 \!npoints=1 \fi \divide\!xdiff by \!npoints \divide\!ydiff by \!npoints \!xpos=\!xS \!ypos=\!yS % \loop\ifnum\!npoints>-1 \!plotifinbounds \advance \!xpos by \!xdiff \advance \!ypos by \!ydiff \advance \!npoints by -1 \repeat \ignorespaces} % ** The following routine is used to draw a dashed line between (xS,yS) % ** and (xE,yE). The dash pattern continues from the previous segment. \def\!lineardashed{% % ** \ifdim\!distacross>\!arclength \advance \!distacross by -\!arclength %nothing to plot in this interval % \else % \loop\ifdim\!distacross<\!arclength % ** plot point, interpolating linearly in x and y \!divide\!distacross\!arclength\!dimenA% ** dimA = across/arclength \!removept\!dimenA\!t% ** \!t holds value in dimA, without the "pt" \!xpos=\!t\!xdiff \advance \!xpos by \!xS \!ypos=\!t\!ydiff \advance \!ypos by \!yS \!plotifinbounds \advance\!distacross by \plotsymbolspacing \!advancedashing \repeat % \advance \!distacross by -\!arclength% ** prepare for next interval \fi \ignorespaces} \def\!!advancedashing{% \advance\!downlength by -\plotsymbolspacing \ifdim \!downlength>\!zpt \else \advance\!distacross by \!downlength \!getnextvalueof\!uplength\from\!!UDlist \advance\!distacross by \!uplength \!getnextvalueof\!downlength\from\!!UDlist \fi} % ** \inboundscheckoff & \inboundscheckon: See Subsection 5.5 of the manual. \def\inboundscheckoff{% \def\!plotifinbounds{\!plot(\!xpos,\!ypos)}% \def\!initinboundscheck{\relax}\ignorespaces} \def\inboundscheckon{% \def\!plotifinbounds{\!!plotifinbounds}% \def\!initinboundscheck{\!!initinboundscheck}% \!initinboundscheck\ignorespaces} \inboundscheckoff % ** The following code plots the current point only if it falls in the % ** current plotarea. It doesn't matter if the coordinate system has % ** changed since the plotarea was set up. However, shifts of the plot % ** are ignored (how the plotsymbol stands relative to its plot position is % ** unknown anyway). \def\!!plotifinbounds{% \ifdim \!xpos<\!checkleft \else \ifdim \!xpos>\!checkright \else \ifdim \!ypos<\!checkbot \else \ifdim \!ypos>\!checktop \else \!plot(\!xpos,\!ypos) \fi \fi \fi \fi} \def\!!initinboundscheck{% \!checkleft=\!arealloc \advance\!checkleft by \!xorigin \!checkright=\!arearloc \advance\!checkright by \!xorigin \!checkbot=\!areabloc \advance\!checkbot by \!yorigin \!checktop=\!areatloc \advance\!checktop by \!yorigin} % ********************************* % *** LOGTEN (Log_10 function) *** % ********************************* % % ** \!logten{X} % ** Calculates log_10 of X. X and LOG10(X) are in fixed point notation. % ** X must be positive; it may have an optional `+' sign; any number % ** of digits may be specified for X. The absolute error in LOG10(X) is % ** less than .0001 (probably < .00006). That's about as good as you % ** hope for, since TEX only operates to 5 figures after the decimal % ** point anyway. % \!rootten=3.162278pt **** These are values are set in ALLOCATIONS % \!tenAe=2.543275pt (=A5) % \!tenAc=2.773839pt (=A3) % \!tenAa=8.690286pt (=A1) \def\!logten#1#2{% \expandafter\!!logten#1\!nil \!removept\!dimenF#2% \ignorespaces} \def\!!logten#1#2\!nil{% \if -#1% \!dimenF=\!zpt \def\!next{\ignorespaces}% \else \if +#1% \def\!next{\!!logten#2\!nil}% \else \if .#1% \def\!next{\!!logten0.#2\!nil}% \else \def\!next{\!!!logten#1#2..\!nil}% \fi \fi \fi \!next} \def\!!!logten#1#2.#3.#4\!nil{% \!dimenF=1pt % ** DimF holds log10 original argument \if 0#1% \!!logshift#3pt % ** Argument < 1 \else % ** Argument >= 1 \!logshift#2/% ** Shift decimal pt as many places \!dimenE=#1.#2#3pt % ** as there are figures in #2 \fi % ** Now dimE holds revised X want log10 of \ifdim \!dimenE<\!rootten% ** Transform X to XX between sqrt(10) \multiply \!dimenE 10 % ** and 10*sqrt(10) \advance \!dimenF -1pt \fi \!dimenG=\!dimenE% ** dimG <- (XX + 10) \advance\!dimenG 10pt \advance\!dimenE -10pt % ** dimE <- (XX - 10) \multiply\!dimenE 10 % ** dimE = 10*(XX-10) \!divide\!dimenE\!dimenG\!dimenE% ** Now dimE=10t==10*(XX-10)/(XX+10) \!removept\!dimenE\!t% ** !t=10t, with "pt" removed \!dimenG=\!t\!dimenE% ** dimG=100t**2 \!removept\!dimenG\!tt% ** !tt=100t**2, with "pt" removed \!dimenH=\!tt\!tenAe% ** dimH=10*a5*(10t)**2 /100 \divide\!dimenH 100 \advance\!dimenH \!tenAc% ** ditto + 10*a3 \!dimenH=\!tt\!dimenH% ** ditto * (10t)**2 /100 \divide\!dimenH 100 \advance\!dimenH \!tenAa% ** ditto + 10*a1 \!dimenH=\!t\!dimenH% ** ditto * 10t / 100 \divide\!dimenH 100 % ** Now dimH = log10(XX) - 1 \advance\!dimenF \!dimenH}% ** dimF = log10(X) \def\!logshift#1{% \if #1/% \def\!next{\ignorespaces}% \else \advance\!dimenF 1pt \def\!next{\!logshift}% \fi \!next} \def\!!logshift#1{% \advance\!dimenF -1pt \if 0#1% \def\!next{\!!logshift}% \else \if p#1% \!dimenF=1pt \def\!next{\!dimenE=1p}% \else \def\!next{\!dimenE=#1.}% \fi \fi \!next} % *********************************************************** % *** PICTURES (Basic setups for PiCtures; \put commands) *** % *********************************************************** % ** User Commands: % ** \beginpicture % ** \endpicture % ** \endpicturesave % ** \setcoordinatesystem units point at XREF YREF % ** \put {OBJECT} [ORIENTATION] at XCOORD YCOORD % ** \multiput {OJBECT} [ORIENTATION] ) at % ** XCOORD YCOORD % ** *NUMBER_OF_TIMES DXCOORD DYCOORD / % ** \accountingon % ** \accountingoff % ** \stack [ORIENTATION] {LIST OF ITEMS} % ** \lines [ORIENTATION] {LINES} % ** \Lines [ORIENTATION] {LINES} % ** \setdimensionmode % ** \setcoordinatemode % ** \Xdistance % ** \Ydistance % ** Internal commands: % ** \!setputobject{OBJECT}{[ORIENTATION]} % ** \!dimenput{OBJECT}[ORIENTATION](XDIMEN,YDIMEN) % ** \!setdimenmode % ** \!setcoordmode % ** \!ifdimenmode % ** \!ifcoordmode % ** \beginpicture % ** \endpicture % ** \endpicturesave % ** \beginpicture ... \endpicture creates an hbox. Objects are % ** placed in this box using the \put command and the like (see below). % ** The location of an object is specified in terms of coordinate system(s) % ** established by \setcoordinatesystem. Each coordinate system (there % ** might be just one) specifies the length of 1 horizontal unit, the length % ** of 1 vertical unit, and the coordinates of a "reference point". The % ** reference points of various coordinate systems will be in the same % ** physical location. The macros keep track of the size of the objects % ** and their locations. The resulting hbox is the smallest hbox which % ** encloses all the objects, and whose TEK reference point is the point % ** on the left edge of the box closest vertically to the PICTEX reference % ** point. Using \endpicturesave, you can (globally) save the distance TEK's % ** reference point is to the right (respectively, up from) PICTEX's % ** reference point in the dimension register \XREG (respectively \YREG). % ** You can then \put the picture OBJECT into a larger picture so that its % ** reference point is at (XCOORD,YCOORD) with the command % ** \put {picture OBJECT} [Bl] <\XREG, \YREG> at XCOORD YCOORD % ** \beginpicture : See Subsection 1.1 of the manual. \def\beginpicture{% \setbox\!picbox=\hbox\bgroup% \!xleft=\maxdimen \!xright=-\maxdimen \!ybot=\maxdimen \!ytop=-\maxdimen} % ** \endpicture : See Subsection 1.1 of the manual. \def\endpicture{% \ifdim\!xleft=\maxdimen% ** check if nothing was put in picbox \!xleft=\!zpt \!xright=\!zpt \!ybot=\!zpt \!ytop=\!zpt \fi \global\!Xleft=\!xleft \global\!Xright=\!xright \global\!Ybot=\!ybot \global\!Ytop=\!ytop \egroup% \ht\!picbox=\!Ytop \dp\!picbox=-\!Ybot \ifdim\!Ybot>\!zpt \else \ifdim\!Ytop<\!zpt \!Ybot=\!Ytop \else \!Ybot=\!zpt \fi \fi \hbox{\kern-\!Xleft\lower\!Ybot\box\!picbox\kern\!Xright}} % ** \endpicturesave : See Subsection 8.4 of the manual. \def\endpicturesave <#1,#2>{% \endpicture \global #1=\!Xleft \global #2=\!Ybot \ignorespaces} % ** \setcoordinatesystem units % ** point at XREF YREF % ** Each of `units ' and `point at XREF YREF' % ** are optional. % ** Unit lengths must be given in dimensions (e.g., <10pt,1in>). % ** Default unit lengths are 1pt, 1pt, or previous unit lengths. % ** Reference point is specified in current units (e.g., 3 5 ). % ** Default reference point is 0 0 , or previous reference point. % ** Unit lengths and reference points obey TEX's scoping rules. % ** See Subsection 1.2 of the manual. \def\setcoordinatesystem{% \!ifnextchar{u}{\!getlengths } {\!getlengths units <\!xunit,\!yunit>}} \def\!getlengths units <#1,#2>{% \!xunit=#1\relax \!yunit=#2\relax \!ifcoordmode \let\!SCnext=\!SCccheckforRP \else \let\!SCnext=\!SCdcheckforRP \fi \!SCnext} \def\!SCccheckforRP{% \!ifnextchar{p}{\!cgetreference } {\!cgetreference point at {\!xref} {\!yref} }} \def\!cgetreference point at #1 #2 {% \edef\!xref{#1}\edef\!yref{#2}% \!xorigin=\!xref\!xunit \!yorigin=\!yref\!yunit \!initinboundscheck % ** See linear.tex \ignorespaces} \def\!SCdcheckforRP{% \!ifnextchar{p}{\!dgetreference}% {\ignorespaces}} \def\!dgetreference point at #1 #2 {% \!xorigin=#1\relax \!yorigin=#2\relax \ignorespaces} % ** \put {OBJECT} [XY] at (XCOORD,YCOORD) % ** `[XY]' and `' are optional. % ** First OBJECT is placed in an hbox (the "objectbox") and then a % ** "reference point" is assigned to the objectbox as follows: % ** [1] first, the reference point is taken to be the center of the box; % ** [2] next, centering is overridden by the specifications % ** X=l -- reference point along the left edge of the objectbox % ** X=r -- reference point along the right edge of the objectbox % ** Y=b -- reference point along the bottom edge of the objectbox % ** Y=B -- reference point along the Baseline of the objectbox % ** Y=t -- reference point along the top edge of the objectbox; % ** [3] finally the reference point is shifted left by XDIMEN, down % ** by YDIMEN (both default to 0pt). % ** The objectbox is placed within PICBOX with its reference point at % ** (XCOORD,YCOORD). % ** If OBJECT is a saved box, say box0, you have to write % ** \put{\box0}... or \put{\copy0}... % ** The objectbox is void after the put. % ** See Subsection 2.1 of the manual. \long\def\put#1#2 at #3 #4 {% \!setputobject{#1}{#2}% \!xpos=\!M{#3}\!xunit \!ypos=\!M{#4}\!yunit \!rotateaboutpivot\!xpos\!ypos% \advance\!xpos -\!xorigin \advance\!xpos -\!xshift \advance\!ypos -\!yorigin \advance\!ypos -\!yshift \kern\!xpos\raise\!ypos\box\!putobject\kern-\!xpos% \!doaccounting\ignorespaces} % ** \multiput etc. Like \put. The objectbox is not voided until the % ** termininating /, and is placed repeatedly with: % ** XCOORD YCOORD -- the objectbox is put down with its reference point % ** at (XCOORD,YCOORD); % ** *N DXCOORD DYCOORD -- each of N times the current % ** (xcoord,ycoord) is incremented by (DXCOORD,DYCOORD), and the % ** objectbox is put down with its reference point at (xcoord,ycoord) % ** (This specification has to follow an XCOORD YCOORD pair) % ** See Subsection 2.2 of the manual. \long\def\multiput #1#2 at {% \!setputobject{#1}{#2}% \!ifnextchar"{\!putfromfile}{\!multiput}} \def\!putfromfile"#1"{% \expandafter\!multiput \normalinput #1 /} \def\!multiput{% \futurelet\!nextchar\!!multiput} \def\!!multiput{% \if *\!nextchar \def\!nextput{\!alsoby}% \else \if /\!nextchar \def\!nextput{\!finishmultiput}% \else \def\!nextput{\!alsoat}% \fi \fi \!nextput} \def\!finishmultiput/{% \setbox\!putobject=\hbox{}% \ignorespaces} % ** \!alsoat XCOORD YCOORD % ** The objectbox is put down with reference point at XCOORD,YCOORD \def\!alsoat#1 #2 {% \!xpos=\!M{#1}\!xunit \!ypos=\!M{#2}\!yunit \!rotateaboutpivot\!xpos\!ypos% \advance\!xpos -\!xorigin \advance\!xpos -\!xshift \advance\!ypos -\!yorigin \advance\!ypos -\!yshift \kern\!xpos\raise\!ypos\copy\!putobject\kern-\!xpos% \!doaccounting \!multiput} % ** \!alsoby*N DXCOORD DYCOORD % ** N times, the current (XCOORD,YCOORD) is advanced by (DXCOORD,DYCOORD), % ** and the current (shifted, oriented) OBJECT is put down. \def\!alsoby*#1 #2 #3 {% \!dxpos=\!M{#2}\!xunit \!dypos=\!M{#3}\!yunit \!rotateonly\!dxpos\!dypos \!ntemp=#1% \!!loop\ifnum\!ntemp>0 \advance\!xpos by \!dxpos \advance\!ypos by \!dypos \kern\!xpos\raise\!ypos\copy\!putobject\kern-\!xpos% \advance\!ntemp by -1 \repeat \!doaccounting \!multiput} % ** \accountingoff : Suspends PiCTeX's accounting of the aggregate % ** size of the picture box. % ** \accounting on : Reinstates accounting. % ** See Subsection 8.2 of the manual. \def\accountingon{\def\!doaccounting{\!!doaccounting}\ignorespaces} \def\accountingoff{\def\!doaccounting{}\ignorespaces} \accountingon \def\!!doaccounting{% \!xtemp=\!xpos \!ytemp=\!ypos \ifdim\!xtemp<\!xleft \!xleft=\!xtemp \fi \advance\!xtemp by \!wd \ifdim\!xright<\!xtemp \!xright=\!xtemp \fi \advance\!ytemp by -\!dp \ifdim\!ytemp<\!ybot \!ybot=\!ytemp \fi \advance\!ytemp by \!dp \advance\!ytemp by \!ht \ifdim\!ytemp>\!ytop \!ytop=\!ytemp \fi} \long\def\!setputobject#1#2{% \setbox\!putobject=\hbox{#1}% \!ht=\ht\!putobject \!dp=\dp\!putobject \!wd=\wd\!putobject \wd\!putobject=\!zpt \!xshift=.5\!wd \!yshift=.5\!ht \advance\!yshift by -.5\!dp \edef\!putorientation{#2}% \expandafter\!SPOreadA\!putorientation[]\!nil% \expandafter\!SPOreadB\!putorientation<\!zpt,\!zpt>\!nil\ignorespaces} \def\!SPOreadA#1[#2]#3\!nil{\!etfor\!orientation:=#2\do\!SPOreviseshift} \def\!SPOreadB#1<#2,#3>#4\!nil{\advance\!xshift by -#2\advance\!yshift by -#3} \def\!SPOreviseshift{% \if l\!orientation \!xshift=\!zpt \else \if r\!orientation \!xshift=\!wd \else \if b\!orientation \!yshift=-\!dp \else \if B\!orientation \!yshift=\!zpt \else \if t\!orientation \!yshift=\!ht \fi \fi \fi \fi \fi} % ** \!dimenput{OBJECT} [XY] (XLOC,YLOC) % ** This is an internal put routine, similar to \put, except that % ** XLOC=distance right from reference point, YLOC=distance up from % ** reference point. XLOC and YLOC are dimensions, so this routine % ** is completely independent of the current coordinate system. % ** This routine does NOT do ROTATIONS. \long\def\!dimenput#1#2(#3,#4){% \!setputobject{#1}{#2}% \!xpos=#3\advance\!xpos by -\!xshift \!ypos=#4\advance\!ypos by -\!yshift \kern\!xpos\raise\!ypos\box\!putobject\kern-\!xpos% \!doaccounting\ignorespaces} % ** The following macros permit the picture drawing routines to be used % ** either in the default "coordinate mode", or in "dimension mode". % ** In coordinate mode \!M(1.5,\!xunit) expands to 1.5\!xunit % ** In dimension mode \!M(1.5pt,\!xunit) expands to 1.5pt % ** Dimension mode is useful in coding macros. % ** Any special purpose picture macro that sets dimension mode should % ** reset coordinate mode before completion. % ** See Subsection 9.2 of the manual. \def\!setdimenmode{% \let\!M=\!M!!\ignorespaces} \def\!setcoordmode{% \let\!M=\!M!\ignorespaces} \def\!ifcoordmode{% \ifx \!M \!M!} \def\!ifdimenmode{% \ifx \!M \!M!!} \def\!M!#1#2{#1#2} \def\!M!!#1#2{#1} \!setcoordmode \let\setdimensionmode=\!setdimenmode \let\setcoordinatemode=\!setcoordmode % ** \Xdistance{XCOORD}, \Ydistance{YCOORD} are the horizontal and % ** vertical distances from the origin (0,0) to the point % ** (XCOORD,YCOORD) in the current coordinate system. % ** See Subsection 9.2 of the manual. \def\Xdistance#1{% \!M{#1}\!xunit \ignorespaces} \def\Ydistance#1{% \!M{#1}\!yunit \ignorespaces} % ** The following macros -- \stack, \line, and \Lines -- are useful for % ** annotating PiCtures. They can be used outside the \beginpicture ... % ** \endpicture environment. % ** \stack [POSITIONING] {VALUESLIST} % ** Builds a vertical stack of the values in VALUESLIST. Values in % ** VALUESLIST are separated by commas. In the resulting stack, values are % ** centered by default, and positioned flush left (right) if % ** POSITIONING = l (r). Values are separated vertically by LEADING, % ** which defaults to \stackleading. % ** See Subsection 2.3 of the manual. \def\stack{% \!ifnextchar[{\!stack}{\!stack[c]}} \def\!stack[#1]{% \let\!lglue=\hfill \let\!rglue=\hfill \expandafter\let\csname !#1glue\endcsname=\relax \!ifnextchar<{\!!stack}{\!!stack<\stackleading>}} \def\!!stack<#1>#2{% \vbox{\def\!valueslist{}\!ecfor\!value:=#2\do{% \expandafter\!rightappend\!value\withCS{\\}\to\!valueslist}% \!lop\!valueslist\to\!value \let\\=\cr\lineskiplimit=\maxdimen\lineskip=#1% \baselineskip=-1000pt\halign{\!lglue##\!rglue\cr \!value\!valueslist\cr}}% \ignorespaces} % ** \lines [POSITIONING] {LINES} % ** Builds a vertical array of the lines in LINES. Each line in LINES % ** is terminated by a \cr. In the resulting array, lines are % ** centered by default, and positioned flush left (right) if % ** POSITIONING = l (r). The lines in the array are subject to TeX's % ** usual spacing rules: in particular the baselines are ordinarily an equal % ** distance apart. The baseline of the array is the baseline of the % ** the bottom line. % ** See Subsection 2.3 of the manual. \def\lines{% \!ifnextchar[{\!lines}{\!lines[c]}} \def\!lines[#1]#2{% \let\!lglue=\hfill \let\!rglue=\hfill \expandafter\let\csname !#1glue\endcsname=\relax \vbox{\halign{\!lglue##\!rglue\cr #2\crcr}}% \ignorespaces} % ** \Lines [POSITIONING] {LINES} % ** Like \lines, but the baseline of the array is the baseline of the % ** top line. See Subsection 2.3 of the manual. \def\Lines{% \!ifnextchar[{\!Lines}{\!Lines[c]}} \def\!Lines[#1]#2{% \let\!lglue=\hfill \let\!rglue=\hfill \expandafter\let\csname !#1glue\endcsname=\relax \vtop{\halign{\!lglue##\!rglue\cr #2\crcr}}% \ignorespaces} % ********************************************* % *** PLOTTING (Things to do with plotting) *** % ********************************************* % ** User commands % ** \setplotsymbol ({PLOTSYMBOL} [ORIENTATION] ) % ** \savelinesandcurves on "FILE_NAME" % ** \dontsavelinesandcurves % ** \writesavefile {MESSAGE} % ** \replot {FILE_NAME} % ** Internal command % ** \!plot(XDIMEN,YDIMEN) % ** \setplotsymbol ({PLOTSYMBOL} [ ] < , >) % ** Save PLOTSYMBOL away in an hbox for use with curve plotting routines % ** See Subsection 5.2 of the manual. \def\setplotsymbol(#1#2){% \!setputobject{#1}{#2} \setbox\!plotsymbol=\box\!putobject% \!plotsymbolxshift=\!xshift \!plotsymbolyshift=\!yshift \ignorespaces} \setplotsymbol({\fiverm .})% ** initialize plotsymbol % ** \!plot is either \!!plot (when no lines and curves are being saved) or % ** \!!!plot (when lines and curves are being saved) % ** \!!plot(XDIMEN,YDIMEN) % ** Places the current plotsymbol a horizontal distance=XDIMEN-xorigin % ** and a vertical distance=YDIMEN-yorigin from the current % ** reference point. \def\!!plot(#1,#2){% \!dimenA=-\!plotxorigin \advance \!dimenA by #1% ** over \!dimenB=-\!plotyorigin \advance \!dimenB by #2% ** up \kern\!dimenA\raise\!dimenB\copy\!plotsymbol\kern-\!dimenA% \ignorespaces} % ** \!!!plot(XDIMEN,YDIMEN) % ** Like \!!plot, but also saves the plot location in units of % ** scaled point, on file `replotfile' \def\!!!plot(#1,#2){% \!dimenA=-\!plotxorigin \advance \!dimenA by #1% ** over \!dimenB=-\!plotyorigin \advance \!dimenB by #2% ** up \kern\!dimenA\raise\!dimenB\copy\!plotsymbol\kern-\!dimenA% \!countE=\!dimenA \!countF=\!dimenB \immediate\write\!replotfile{\the\!countE,\the\!countF.}% \ignorespaces} % ** \savelinesandcurves on "FILE_NAME" % ** Switch to save locations used for plotting lines and curves % ** (No advantage in saving locations for solid lines; however % ** replotting curve locations speeds things up by a factor of about 4. % ** \dontsavelinesandcurves % ** Terminates \savelinesandcurves. The default. % ** See Subsection 5.6 of the manual. \def\savelinesandcurves on "#1" {% \immediate\closeout\!replotfile \immediate\openout\!replotfile=#1% \let\!plot=\!!!plot} \def\dontsavelinesandcurves {% \let\!plot=\!!plot} \dontsavelinesandcurves % ** \writesavefile {MESSAGE} % ** The message is preceded by a "%", so that it won't interfere % ** with replotting. % ** See Subsection 5.6 of the manual. {\catcode`\%=11\xdef\!Commentsignal{%}} \def\writesavefile#1 {% \immediate\write\!replotfile{\!Commentsignal #1}% \ignorespaces} % ** \replot "FILE_NAME" % ** Replots the locations saved earlier under \savelinesandcurves % ** on "FILE_NAME" % ** See Subsection 5.6 of the manual. \def\replot"#1" {% \expandafter\!replot\normalinput #1 /} \def\!replot#1,#2. {% \!dimenA=#1sp \kern\!dimenA\raise#2sp\copy\!plotsymbol\kern-\!dimenA \futurelet\!nextchar\!!replot} \def\!!replot{% \if /\!nextchar \def\!next{\!finish}% \else \def\!next{\!replot}% \fi \!next} % ************************************************** % *** PYTHAGORAS (Euclidean distance function) *** % ************************************************** % ** User command: % ** \placehypotenuse for and in % ** Internal command: % ** \!Pythag{X}{Y}{Z} % ** Input X,Y are dimensions, or dimension registers. % ** Output Z == sqrt(X**2+Y**2) must be a dimension register. % ** Assumes that |X|+|Y| < 2048pt (about 28in). % ** Without loss of generality, suppose x>0, y>0. Put s = x+y, % ** z = sqrt(x**2+y**2). Then z = s*f, where f = sqrt(t**2 + (1-t)**2) % ** = sqrt((1+tau**2)/2), where t = x/s and tau = 2(t-1/2) . % ** Uses the \!divide macro (which uses registers \!dimenA--\!dimenD. % ** Uses the \!removept macro (e.g., 123.45pt --> 123.45) % ** Uses registers \!dimenE--\!dimenI. \def\!Pythag#1#2#3{% \!dimenE=#1\relax \ifdim\!dimenE<\!zpt \!dimenE=-\!dimenE \fi% ** dimE = |x| \!dimenF=#2\relax \ifdim\!dimenF<\!zpt \!dimenF=-\!dimenF \fi% ** dimF = |y| \advance \!dimenF by \!dimenE% ** dimF = s = |x|+|y| \ifdim\!dimenF=\!zpt \!dimenG=\!zpt% ** dimG = z = sqrt(x**2+y**2) \else \!divide{8\!dimenE}\!dimenF\!dimenE% ** now dimE = 8t = (8|x|)/s \advance\!dimenE by -4pt% ** 8tau = (8t-4)*2 \!dimenE=2\!dimenE% ** (tau = 2*t - 1) \!removept\!dimenE\!!t% ** 8tau, without "pt" \!dimenE=\!!t\!dimenE% ** (8tau)**2, in pts \advance\!dimenE by 64pt% ** u = [64 + (8tau)**2]/2 \divide \!dimenE by 2% ** [u = (8f)**2] \!dimenH=7pt% ** initial guess g at sqrt(u) \!!Pythag\!!Pythag\!!Pythag% ** 3 iterations give sqrt(u) \!removept\!dimenH\!!t% ** 8f=sqrt(u), without "pt" \!dimenG=\!!t\!dimenF% ** z = (8f)*s/8 \divide\!dimenG by 8 \fi #3=\!dimenG \ignorespaces} \def\!!Pythag{% ** Newton-Raphson for sqrt \!divide\!dimenE\!dimenH\!dimenI% ** v = u/g \advance\!dimenH by \!dimenI% ** g <-- (g + u/g)/2 \divide\!dimenH by 2} % ** \placehypotenuse for and in % ** See Subsection 9.3 of the manual. \def\placehypotenuse for <#1> and <#2> in <#3> {% \!Pythag{#1}{#2}{#3}} % ********************************************** % *** QUADRATIC ARC (Draws a quadratic arc) *** % ********************************************** % ** Internal command % ** \!qjoin (XCOORD1,YCOORD1) (XCOORD2,YCOORD2) % ** \!qjoin (XCOORD1,YCOORD1) (XCOORD2,YCOORD2) % ** Draws an arc starting at the (last) point specified by the most recent % ** \!qjoin, or \!ljoin, or \!start and passing through (X_1,Y_1), (X_2,Y_2). % ** Uses quadratic interpolation in both x and y: % ** x(t), 0 <= t <= 1, interpolates x_0, x_1, x_2 at t=0, .5, 1 % ** y(t), 0 <= t <= 1, interpolates y_0, y_1, y_2 at t=0, .5, 1 \def\!qjoin (#1,#2) (#3,#4){% \advance\!intervalno by 1 \!ifcoordmode \edef\!xmidpt{#1}\edef\!ymidpt{#2}% \else \!dimenA=#1\relax \edef\!xmidpt{\the\!dimenA}% \!dimenA=#2\relax \edef\!xmidpt{\the\!dimenA}% \fi \!xM=\!M{#1}\!xunit \!yM=\!M{#2}\!yunit \!rotateaboutpivot\!xM\!yM \!xE=\!M{#3}\!xunit \!yE=\!M{#4}\!yunit \!rotateaboutpivot\!xE\!yE % % ** Find coefficients for x(t)=a_x + b_x*t + c_x*t**2 \!dimenA=\!xM \advance \!dimenA by -\!xS% ** dimA = I = xM - xS \!dimenB=\!xE \advance \!dimenB by -\!xM% ** dimB = II = xE-xM \!xB=3\!dimenA \advance \!xB by -\!dimenB% ** b=3I-II \!xC=2\!dimenB \advance \!xC by -2\!dimenA% ** c=2(II-I) % % ** Find coefficients for y(t)=y_x + b_y*t + c_y*t**2 \!dimenA=\!yM \advance \!dimenA by -\!yS% \!dimenB=\!yE \advance \!dimenB by -\!yM% \!yB=3\!dimenA \advance \!yB by -\!dimenB% \!yC=2\!dimenB \advance \!yC by -2\!dimenA% % % ** Use Simpson's rule to calculate arc length over [0,1/2]: % ** arc length = 1/2[1/6 f(0) + 4/6 f(1/4) + 1/6 f(1/2)] % ** with f(t) = sqrt(x'(t)**2 + y'(t)**2). \!xprime=\!xB \!yprime=\!yB% ** x'(t) = b + 2ct \!dxprime=.5\!xC \!dyprime=.5\!yC% ** dt=1/4 ==> dx'(t) = c/2 \!getf \!midarclength=\!dimenA \!getf \advance \!midarclength by 4\!dimenA \!getf \advance \!midarclength by \!dimenA \divide \!midarclength by 12 % % ** Get arc length over [0,1]. \!arclength=\!dimenA \!getf \advance \!arclength by 4\!dimenA \!getf \advance \!arclength by \!dimenA \divide \!arclength by 12% ** Now have arc length over [1/2,1] \advance \!arclength by \!midarclength \global\advance \totalarclength by \!arclength % % % ** Check to see if there's anything to plot in this interval \ifdim\!distacross>\!arclength \advance \!distacross by -\!arclength% ** nothing % \else \!initinverseinterp% ** initialize for inverse interpolation on arc length \loop\ifdim\!distacross<\!arclength% ** loop over points on arc \!inverseinterp% ** find t such that arc length[0,t] = distacross, % ** using inverse quadratic interpolation % ** now evaluate x(t)=(c*t + b)*t + a \!xpos=\!t\!xC \advance\!xpos by \!xB \!xpos=\!t\!xpos \advance \!xpos by \!xS % ** evaluate y(t) \!ypos=\!t\!yC \advance\!ypos by \!yB \!ypos=\!t\!ypos \advance \!ypos by \!yS \!plotifinbounds% ** plot point if in bounds \advance\!distacross \plotsymbolspacing%** advance arc length for next pt \!advancedashing% ** see "linear" \repeat % \advance \!distacross by -\!arclength% ** prepare for next interval \fi % \!xS=\!xE% ** shift ending points to starting points \!yS=\!yE \ignorespaces} % ** \!getf -- Calculates sqrt(x'(t)**2 + y'(t)**2) and advances % ** x'(t) and y'(t) \def\!getf{\!Pythag\!xprime\!yprime\!dimenA% \advance\!xprime by \!dxprime \advance\!yprime by \!dyprime} % ** \!initinverseinterp -- initializes for inverse quadratic interpolation % ** of arc length provided 1/3 < midarclength/arclength < 2/3; otherwise % ** initializes for inverse linear interpolation. \def\!initinverseinterp{% \ifdim\!arclength>\!zpt \!divide{8\!midarclength}\!arclength\!dimenE% ** dimE=8w=8r/s, where r % ** = midarclength, s=arclength % ** Test for w out of range: w<1/3 or w>2/3 \ifdim\!dimenE<\!wmin \!setinverselinear \else \ifdim\!dimenE>\!wmax \!setinverselinear \else% ** w in range: initialize \def\!inverseinterp{\!inversequad}\ignorespaces % % ** Calculate the coefficients \!beta and \!gamma of the quadratic % ** t = \!beta*v + \!gamma*v**2 % ** taking the values t=0, 1/2, 1 at v=0, w==r/s, 1 respectively: % ** \!beta = (1/2 - w**2)/[w(1-w)] % ** \!gamma = 1 - beta. % \!removept\!dimenE\!Ew% ** 8w, without "pt" \!dimenF=-\!Ew\!dimenE% ** -(8w)**2 \advance\!dimenF by 32pt% ** 32 - (8w)**2 \!dimenG=8pt \advance\!dimenG by -\!dimenE% ** 8 - 8w \!dimenG=\!Ew\!dimenG% ** (8w)*(8-8w) \!divide\!dimenF\!dimenG\!beta% ** beta = (32-(8w)**2)/(8w(8-8w)) % ** = (1/2 - w**2)/(w(1-w)) \!gamma=1pt \advance \!gamma by -\!beta% ** gamma = 1-beta \fi% ** end of the \ifdim\!dimenE>\!wmax \fi% ** end of the \ifdim\!dimenE<\!wmin \fi% ** end of the \ifdim\!arclength>\!zpt \ignorespaces} % ** For 0 <= t <= 1, let AL(t) = arclength[0,t]/arclength[0,1]; note % ** AL(0)=0, AL(1/2)=midarclength/arclength, AL(1)=1. This routine % ** calculates an approximation to AL^{-1}(distance across/arclength), % ** using the assumption that AL^{-1} is quadratic. Specifically, % ** it finds t such that % ** AL^{-1}(v) =. t = v*(\!beta + \!gamma*v) % ** where \!beta and \!gamma are set by \!initinv, and where % ** v=distance across/arclength \def\!inversequad{% \!divide\!distacross\!arclength\!dimenG% ** dimG = v = distacross/arclength \!removept\!dimenG\!v% ** v, without "pt" \!dimenG=\!v\!gamma% ** gamma*v \advance\!dimenG by \!beta% ** beta + gamma*v \!dimenG=\!v\!dimenG% ** t = v*(beta + gamma*v) \!removept\!dimenG\!t}% ** t, without "pt" % ** When w <= 1/3 or w >= 2/3, the following routine writes (using % ** plain TEK's \wlog command) a warning message on the user's log file, % ** and initializes for inverse linear interpolation on arc length. \def\!setinverselinear{% \def\!inverseinterp{\!inverselinear}% \divide\!dimenE by 8 \!removept\!dimenE\!t \!countC=\!intervalno \multiply \!countC 2 \!countB=\!countC \advance \!countB -1 \!countA=\!countB \advance \!countA -1 \wlog{\the\!countB th point (\!xmidpt,\!ymidpt) being plotted doesn't lie in the}% \wlog{ middle third of the arc between the \the\!countA th and \the\!countC th points:}% \wlog{ [arc length \the\!countA\space to \the\!countB]/[arc length \the \!countA\space to \the\!countC]=\!t.}% \ignorespaces} % ** Inverse linear interpolation \def\!inverselinear{% \!divide\!distacross\!arclength\!dimenG \!removept\!dimenG\!t} % ************************************** % ** ROTATIONS (Handles rotations) *** % ************************************** % ** User commands % ** \startrotation [by COS_OF_ANGLE SIN_OF_ANGLE] [about XPIVOT YPIVOT] % ** \stoprotation % ** \startrotation [by COS_OF_ANGLE SIN_OF_ANGLE] [about XPIVOT YPIVOT] % ** Future (XCOORD,YCOORD)'s will be rotated about (XPIVOT,YPIVOT) % ** by the angle with the give COS and SIN. Both fields are optional. % ** [COS,SIN] defaults to previous value, or (1,0). % ** (XPIVOT,YPIVOT) defaults to previous value, or (0,0) % ** You can't change the coordinate system in the scope of a rotation. % ** See Subsection 9.1 of the manual. \def\startrotation{% \let\!rotateaboutpivot=\!!rotateaboutpivot \let\!rotateonly=\!!rotateonly \!ifnextchar{b}{\!getsincos }% {\!getsincos by {\!cosrotationangle} {\!sinrotationangle} }} \def\!getsincos by #1 #2 {% \edef\!cosrotationangle{#1}% \edef\!sinrotationangle{#2}% \!ifcoordmode \let\!ROnext=\!ccheckforpivot \else \let\!ROnext=\!dcheckforpivot \fi \!ROnext} \def\!ccheckforpivot{% \!ifnextchar{a}{\!cgetpivot}% {\!cgetpivot about {\!xpivotcoord} {\!ypivotcoord} }} \def\!cgetpivot about #1 #2 {% \edef\!xpivotcoord{#1}% \edef\!ypivotcoord{#2}% \!xpivot=#1\!xunit \!ypivot=#2\!yunit \ignorespaces} \def\!dcheckforpivot{% \!ifnextchar{a}{\!dgetpivot}{\ignorespaces}} \def\!dgetpivot about #1 #2 {% \!xpivot=#1\relax \!ypivot=#2\relax \ignorespaces} % ** Following terminates rotation. % ** See Subsection 9.1 of the manual. \def\stoprotation{% \let\!rotateaboutpivot=\!!!rotateaboutpivot \let\!rotateonly=\!!!rotateonly \ignorespaces} % ** !!rotateaboutpivot{XREG}{YREG} % ** XREG <-- xpvt + cos(angle)*(XREG-xpvt) - sin(angle)*(YREG-ypvt) % ** YREG <-- ypvt + cos(angle)*(YREG-ypvt) + sin(angle)*(XREG-xpvt) % ** XREG,YREG are dimension registers. Can't be \!dimenA to \!dimenD \def\!!rotateaboutpivot#1#2{% \!dimenA=#1\relax \advance\!dimenA -\!xpivot \!dimenB=#2\relax \advance\!dimenB -\!ypivot \!dimenC=\!cosrotationangle\!dimenA \advance \!dimenC -\!sinrotationangle\!dimenB \!dimenD=\!cosrotationangle\!dimenB \advance \!dimenD \!sinrotationangle\!dimenA \advance\!dimenC \!xpivot \advance\!dimenD \!ypivot #1=\!dimenC #2=\!dimenD \ignorespaces} % ** \!!rotateonly{XREG}{YREG} % ** Like \!!rotateaboutpivot, but with a pivot of (0,0) \def\!!rotateonly#1#2{% \!dimenA=#1\relax \!dimenB=#2\relax \!dimenC=\!cosrotationangle\!dimenA \advance \!dimenC -\!rotsign\!sinrotationangle\!dimenB \!dimenD=\!cosrotationangle\!dimenB \advance \!dimenD \!rotsign\!sinrotationangle\!dimenA #1=\!dimenC #2=\!dimenD \ignorespaces} \def\!rotsign{} \def\!!!rotateaboutpivot#1#2{\relax} \def\!!!rotateonly#1#2{\relax} \stoprotation \def\!reverserotateonly#1#2{% \def\!rotsign{-}% \!rotateonly{#1}{#2}% \def\!rotsign{}% \ignorespaces} % ********************************** % *** SHADING (Handles shading) *** % ********************************** % ** User commands % ** \setshadegrid [span ] [point at XSHADE YSHADE] % ** \setshadesymbol [] ({SHADESYMBOL} % ** [ORIENTATION]) % ** Internal commands: % ** \!startvshade (xS,ybS,ytS) % ** \!starthshade (yS,xlS,xrS) % ** \!lshade [] % ** ** when shading vertically: % ** [the region from (xS,ybS,ytS) to] (xE,ybE,ytE) % ** ** when shading horizontally: % ** [the region from (yS,xlS,xrS) to] (yE,xlE,xrE) % ** \!qshade [] % ** ** when shading vertically: % ** [the region from (xS,ybS,ytS) to] (xM,ybM,ytM) (xE,ybE,ytE) % ** ** when shading horizontally: % ** [the region from (yS,xlS,xrS) to] (yM,xlM,xrM) (yE,xlE,xrE) % ** \!lattice{ANCHOR}{SPAN}{LOCATION}{INDEX}{LATTICE LOCATION} % ** \!override{NOMINAL DIMEN}{REPLACEMENT DIMEN}{DIMEN} % ** The shading routine can operate either in a "vertical mode" or a % ** "horizontal mode". In vertical mode, the region to be shaded is specified % ** in the form % ** {(x,y): xl <= x <= xr & yb(x) <= y <= yt(x)} % ** where yb and yt are functions of x. In horizontal mode, the region % ** is specified in the form % ** {(x,y): yb <= y <= yt & xl(y) <= x <= xr(y)}. % ** The functions yb and yt may be either both linear or both quadratic; % ** similarly for xl and xr. A region with say, piecewise quadratic bottom % ** and top boundaries, can be shaded by consecutive (vertical) \!qshades, % ** proceeding from left to right. Similarly, a region with piecewise % ** quadratic left and right boundaries can be shaded by consecutive % ** (horizontal) \!qshades, proceeding from bottom to top. More complex % ** regions can be shaded by partitioning them into appropriate subregions, % ** and shading those. % ** Shading is accomplished by placing a user-selected shading symbol at % ** those points of a regular grid which fall within the region to be % ** shaded. This region can be "shrunk" so that a largish shading symbol % ** will not extend outside it. Shrinking is accomplished by specifying % ** shrinkages for the left, right, bottom, and top boundaries, in a manner % ** discussed further below. % ** \shades and \!joins MUST NOT be intermingled. Finish drawing a curve % ** before starting to shade a region, and finish shading a region before % ** starting to draw a curve. % ** \setshadegrid [span ] [point at XSHADE YSHADE] % ** The shading symbol is placed down on the points of a grid centered % ** at the coordinate point (XSHADE,YSHADE). The grid points are of the % ** form (j*SPAN,k*SPAN), with j+k even. SPAN is specified % ** as a dimension. % ** (XSHADE,YSHADE) defaults to previous (XSHADE,YSHADE) (or (0,0) if none) % ** SPAN defaults to previous span (or 5pt if none) % ** See Subsection 7.2 of the manual. \def\setshadegrid{% \!ifnextchar{s}{\!getspan } {\!getspan span <\!dshade>}} \def\!getspan span <#1>{% \!dshade=#1\relax \!ifcoordmode \let\!GRnext=\!GRccheckforAP \else \let\!GRnext=\!GRdcheckforAP \fi \!GRnext} \def\!GRccheckforAP{% \!ifnextchar{p}{\!cgetanchor } {\!cgetanchor point at {\!xshadesave} {\!yshadesave} }} \def\!cgetanchor point at #1 #2 {% \edef\!xshadesave{#1}\edef\!yshadesave{#2}% \!xshade=\!xshadesave\!xunit \!yshade=\!yshadesave\!yunit \ignorespaces} \def\!GRdcheckforAP{% \!ifnextchar{p}{\!dgetanchor}% {\ignorespaces}} \def\!dgetanchor point at #1 #2 {% \!xshade=#1\relax \!yshade=#2\relax \ignorespaces} % ** \setshadesymbol [] ({SHADESYMBOL} % ** [ORIENTATION]) % ** Saves SHADESYMBOL away in an hbox for use with shading routines. % ** A shade symbol will not be plotted if its plot position comes within % ** distance LS of the left boundary, RS of the right boundary, TS of the % ** top boundary, BS of the bottom boundary. These parameters have % ** default values that should work in most cases (see below). % ** To override a default value, specify the replacement value % ** in the appropriate subfield of the shrinkages field. % ** 0pt may be coded as "z" (without the quotes). To accept a % ** default value, leave the field empty. Thus % ** [,z,,5pt] sets LS=default, RS=0pt, BS=default, TS=5pt . % ** Skipping the shrinkages field accepts all the defaults. % ** See Subsection 7.1 of the manual. \def\setshadesymbol{% \!ifnextchar<{\!setshadesymbol}{\!setshadesymbol<,,,> }} \def\!setshadesymbol <#1,#2,#3,#4> (#5#6){% % ** set the shadesymbol \!setputobject{#5}{#6}% \setbox\!shadesymbol=\box\!putobject% \!shadesymbolxshift=\!xshift \!shadesymbolyshift=\!yshift % % ** set the shrinkages \!dimenA=\!xshift \advance\!dimenA \!smidge% ** default LS = xshift - smidge \!override\!dimenA{#1}\!lshrinkage% \!dimenA=\!wd \advance \!dimenA -\!xshift% ** default RS = width - xshift \advance\!dimenA \!smidge% - smidge \!override\!dimenA{#2}\!rshrinkage \!dimenA=\!dp \advance \!dimenA \!yshift% ** default BS = depth + yshift \advance\!dimenA \!smidge% - smidge \!override\!dimenA{#3}\!bshrinkage \!dimenA=\!ht \advance \!dimenA -\!yshift% ** default TS = height - yshift \advance\!dimenA \!smidge% - smidge \!override\!dimenA{#4}\!tshrinkage \ignorespaces} \def\!smidge{-.2pt}% % ** \!override{NOMINAL DIMEN}{REPLACEMENT DIMEN}{DIMEN} % ** Overrides the NOMINAL DIMEN by the REPLACEMENT DIMEN to produce DIMEN, % ** according to the following rules: % ** REPLACEMENT DIMEN empty: DIMEN <-- NOMINAL DIMEN % ** REPLACEMENT DIMEN z: DIMEN <-- 0pt % ** otherwise: DIMEN <-- REPLACEMENT DIMEN % ** DIMEN must be a dimension register \def\!override#1#2#3{% \edef\!!override{#2}% \ifx \!!override\empty #3=#1\relax \else \if z\!!override #3=\!zpt \else \ifx \!!override\!blankz #3=\!zpt \else #3=#2\relax \fi \fi \fi \ignorespaces} \def\!blankz{ z} \setshadesymbol ({\fiverm .})% ** initialize plotsymbol % ** \fivesy ^^B is a small cross % ** \!startvshade [at] (xS,ybS,ytS) % ** Initiates vertical shading mode \def\!startvshade#1(#2,#3,#4){% \let\!!xunit=\!xunit% \let\!!yunit=\!yunit% \let\!!xshade=\!xshade% \let\!!yshade=\!yshade% \def\!getshrinkages{\!vgetshrinkages}% \let\!setshadelocation=\!vsetshadelocation% \!xS=\!M{#2}\!!xunit \!ybS=\!M{#3}\!!yunit \!ytS=\!M{#4}\!!yunit \!shadexorigin=\!xorigin \advance \!shadexorigin \!shadesymbolxshift \!shadeyorigin=\!yorigin \advance \!shadeyorigin \!shadesymbolyshift \ignorespaces} % ** \!starthshade [at] (yS,xlS,xrS) % ** Initiates horizontal shading mode \def\!starthshade#1(#2,#3,#4){% \let\!!xunit=\!yunit% \let\!!yunit=\!xunit% \let\!!xshade=\!yshade% \let\!!yshade=\!xshade% \def\!getshrinkages{\!hgetshrinkages}% \let\!setshadelocation=\!hsetshadelocation% \!xS=\!M{#2}\!!xunit \!ybS=\!M{#3}\!!yunit \!ytS=\!M{#4}\!!yunit \!shadexorigin=\!xorigin \advance \!shadexorigin \!shadesymbolxshift \!shadeyorigin=\!yorigin \advance \!shadeyorigin \!shadesymbolyshift \ignorespaces} % ** \!lattice{ANCHOR}{SPAN}{LOCATION}{INDEX}{LATTICE LOCATION} % ** Consider the lattice with points ANCHOR + j*SPAN. This routine determines % ** the index k of the smallest lattice point >= LOCATION, and sets % ** LATTICE LOCATION = ANCHOR + k*SPAN. % ** INDEX is assumed to be a count register, LATTICE LOCATION a dimen reg. \def\!lattice#1#2#3#4#5{% \!dimenA=#1% ** dimA = ANCHOR \!dimenB=#2% ** dimB = SPAN (assumed > 0pt) \!countB=\!dimenB% ** ctB = SPAN, as a count % % ** Determine index of smallest lattice point >= LOCATION \!dimenC=#3% ** dimC = LOCATION \advance\!dimenC -\!dimenA% ** now dimC = LOCATION-ANCHOR \!countA=\!dimenC% ** ctA = above, as a count \divide\!countA \!countB% ** now ctA = desired index, if dimC <= 0 \ifdim\!dimenC>\!zpt \!dimenD=\!countA\!dimenB% ** (tentative k)*span \ifdim\!dimenD<\!dimenC% ** if this is false, ctA = desired index \advance\!countA 1 % ** if true, have to add 1 \fi \fi % \!dimenC=\!countA\!dimenB% ** lattice location = anchor + ctA*span \advance\!dimenC \!dimenA #4=\!countA% ** the desired index #5=\!dimenC% ** corresponding lattice location \ignorespaces} % ** \!qshade [with shrinkages] [[LS,RS,BS,TS]] % ***** during vertical shading: % ** [the region from (xS,ybS,ytS) to] (xM,ybM,ytM) [and] (xE,ybE,ytE) % ** Shades the region {(x,y): xS <= x <= xE, yb(x) <= y <= yt(x)}, where % ** yb is the quadratic thru (xS,ybS) & (xM,ybM) & (xE,ybE) % ** yt is the quadratic thru (xS,ytS) & (xM,ybM) & (xE,ytE) % ** xS,ybS,ytS are either given by \!startvshade or carried over % ** as the ending values of the immediately preceding \!qshade. % ** For the interpretation of LS, RS, BS, & TS, see \setshadesymbol. The % ** values set there can be overridden, for the course of this \!qshade % ** only, in the same manner as overrides are specified for % ** \setshadesymbol. % ***** during horizontal shading: % ** [the region from (yS,xlS,xrS) to] (yM,xlM,xrM) [and] (yE,xlE,xrE) \def\!qshade#1(#2,#3,#4)#5(#6,#7,#8){% \!xM=\!M{#2}\!!xunit \!ybM=\!M{#3}\!!yunit \!ytM=\!M{#4}\!!yunit \!xE=\!M{#6}\!!xunit \!ybE=\!M{#7}\!!yunit \!ytE=\!M{#8}\!!yunit \!getcoeffs\!xS\!ybS\!xM\!ybM\!xE\!ybE\!ybB\!ybC%**Get coefficients B & C for \!getcoeffs\!xS\!ytS\!xM\!ytM\!xE\!ytE\!ytB\!ytC%**y=y0 + B(x-X0) + C(x-X0)**2 \def\!getylimits{\!qgetylimits}% \!shade{#1}\ignorespaces} % ** \!lshade ... (xE,ybE,ytE) % ** This is like \!qshade, but the top and bottom boundaries are linear, % ** rather than quadratic. \def\!lshade#1(#2,#3,#4){% \!xE=\!M{#2}\!!xunit \!ybE=\!M{#3}\!!yunit \!ytE=\!M{#4}\!!yunit \!dimenE=\!xE \advance \!dimenE -\!xS% ** xE-xS \!dimenC=\!ytE \advance \!dimenC -\!ytS% ** ytE-ytS \!divide\!dimenC\!dimenE\!ytB% ** ytB = (ytE-ytS)/(xE-xS) \!dimenC=\!ybE \advance \!dimenC -\!ybS% ** ybE-ybS \!divide\!dimenC\!dimenE\!ybB% ** ybB = (ybE-ybS)/(xE-xS) \def\!getylimits{\!lgetylimits}% \!shade{#1}\ignorespaces} % ** \!getcoeffs{X0}{Y0}{X1}{Y1}{X2}{Y2}{B}{C} % ** Finds B and C such that the quadratic y = Y0 + B(x-X0) + C(x-X0)**2 % ** passes through (X1,Y1) and (X2,Y2): when X0=0=Y0, the formulas are: % ** B = S1 - X1*C, C = (S2-S1)/X2 % ** with % ** S1 = Y1/X1, S2 = (Y2-Y1)/(X2-X1). \def\!getcoeffs#1#2#3#4#5#6#7#8{% \!dimenC=#4\advance \!dimenC -#2% ** dimC=Y1-Y0 \!dimenE=#3\advance \!dimenE -#1% ** dimE=X1-X0 \!divide\!dimenC\!dimenE\!dimenF% ** dimF=S1 \!dimenC=#6\advance \!dimenC -#4% ** dimC=Y2-Y1 \!dimenH=#5\advance \!dimenH -#3% ** dimH=X2-X1 \!divide\!dimenC\!dimenH\!dimenG% ** dimG=S2 \advance\!dimenG -\!dimenF% ** dimG=S2-S1 \advance \!dimenH \!dimenE% ** dimH=X2-X0 \!divide\!dimenG\!dimenH#8% ** C=(S2-S1)/(X2-X0) \!removept#8\!t% ** C, without "pt" #7=-\!t\!dimenE% ** -C*(X1-X0) \advance #7\!dimenF% ** B=S1-C*(X1-X0) \ignorespaces} \def\!shade#1{% % ** Get LS,RS,BS,TS for this panel \!getshrinkages#1<,,,>\!nil% % ** now effective LS=dimE, RS=dimF, % ** BS=dimG, TS=dimH \advance \!dimenE \!xS% ** now dimE=xS+LS \!lattice\!!xshade\!dshade\!dimenE% ** set parity=index of left-mst x-lattice \!parity\!xpos% ** point >= xS+LS, xpos=its location \!dimenF=-\!dimenF% ** set dimF=xE-RS \advance\!dimenF \!xE % \!loop\!not{\ifdim\!xpos>\!dimenF}% ** loop over x-lattice points <= xE-RS \!shadecolumn% \advance\!xpos \!dshade% ** move over to next column \advance\!parity 1% ** increase index of x-point \repeat % \!xS=\!xE% ** shift ending values to starting values \!ybS=\!ybE \!ytS=\!ytE \ignorespaces} \def\!vgetshrinkages#1<#2,#3,#4,#5>#6\!nil{% \!override\!lshrinkage{#2}\!dimenE \!override\!rshrinkage{#3}\!dimenF \!override\!bshrinkage{#4}\!dimenG \!override\!tshrinkage{#5}\!dimenH \ignorespaces} \def\!hgetshrinkages#1<#2,#3,#4,#5>#6\!nil{% \!override\!lshrinkage{#2}\!dimenG \!override\!rshrinkage{#3}\!dimenH \!override\!bshrinkage{#4}\!dimenE \!override\!tshrinkage{#5}\!dimenF \ignorespaces} \def\!shadecolumn{% \!dxpos=\!xpos \advance\!dxpos -\!xS% ** dx = x - xS \!removept\!dxpos\!dx% ** ditto, without "pt" \!getylimits% ** get top and bottom y-values \advance\!ytpos -\!dimenH% ** less TS \advance\!ybpos \!dimenG% ** plus BS \!yloc=\!!yshade% ** get anchor point for this column \ifodd\!parity \advance\!yloc \!dshade \fi \!lattice\!yloc{2\!dshade}\!ybpos% \!countA\!ypos% ** ypos=smallest y point for this column \!dimenA=-\!shadexorigin \advance \!dimenA \!xpos% ** over \loop\!not{\ifdim\!ypos>\!ytpos}% ** loop over ypos <= yt(t) \!setshadelocation% ** vmode: xloc=xpos, yloc=ypos % ** hmode: xloc=ypos, yloc=xpos \!rotateaboutpivot\!xloc\!yloc% \!dimenA=-\!shadexorigin \advance \!dimenA \!xloc% ** over \!dimenB=-\!shadeyorigin \advance \!dimenB \!yloc% ** up \kern\!dimenA \raise\!dimenB\copy\!shadesymbol \kern-\!dimenA \advance\!ypos 2\!dshade \repeat \ignorespaces} \def\!qgetylimits{% \!dimenA=\!dx\!ytC \advance\!dimenA \!ytB% ** yt(t)=ytS + dx*(Bt + dx*Ct) \!ytpos=\!dx\!dimenA \advance\!ytpos \!ytS \!dimenA=\!dx\!ybC \advance\!dimenA \!ybB% ** yb(t)=ybS + dx*(Bb + dx*Cb) \!ybpos=\!dx\!dimenA \advance\!ybpos \!ybS} \def\!lgetylimits{% \!ytpos=\!dx\!ytB% ** yt(t)=ytS + dx*Bt \advance\!ytpos \!ytS \!ybpos=\!dx\!ybB% ** yb(t)=ybS + dx*Bb \advance\!ybpos \!ybS} \def\!vsetshadelocation{% ** vmode: xloc=xpos, yloc=ypos \!xloc=\!xpos \!yloc=\!ypos} \def\!hsetshadelocation{% ** hmode: xloc=ypos, yloc=xpos \!xloc=\!ypos \!yloc=\!xpos} % ************************************** % *** TICKS (Draws ticks on graphs) *** % ************************************** % ** User commands % ** \ticksout % ** \ticksin % ** \gridlines % ** \nogridlines % ** \loggedticks % ** \unloggesticks % ** See Subsection 3.4 of the manual % ** The following is an option of the \axis command % ** ticks % ** [in] [out] % ** [long] [short] [length ] % ** [width ] % ** [andacross] [butnotacross] % ** [logged] [unlogged] % ** [unlabeled] [numbered] [withvalues VALUE1 VALUE2 ... VALUEk / ] % ** [quantity Q] [at LOC1 LOC2 ... LOCk / ] [from LOC1 to LOC2 by % ** LOC_INCREMENT] % ** See Subsection 3.2 of the manual for the rules. % ** The various options of the tick field are processed by the % ** \!nextkeyword command defined below. % ** For example, `\!nextkeyword short ' expands to `\!ticksshort', % ** while `\!nextkeyword withvalues' expands to `\!tickswithvalues'. \def\!axisticks {% \def\!nextkeyword##1 {% \expandafter\ifx\csname !ticks##1\endcsname \relax \def\!next{\!fixkeyword{##1}}% \else \def\!next{\csname !ticks##1\endcsname}% \fi \!next}% \!axissetup \def\!axissetup{\relax}% \edef\!ticksinoutsign{\!ticksinoutSign}% \!ticklength=\longticklength \!tickwidth=\linethickness \!gridlinestatus \!setticktransform \!maketick \!tickcase=0 \def\!LTlist{}% \!nextkeyword} \def\ticksout{% \def\!ticksinoutSign{+}} \def\ticksin{% \def\!ticksinoutSign{-}} \ticksout \def\gridlines{% \def\!gridlinestatus{\!gridlinestootrue}} \def\nogridlines{% \def\!gridlinestatus{\!gridlinestoofalse}} \nogridlines \def\loggedticks{% \def\!setticktransform{\let\!ticktransform=\!logten}} \def\unloggedticks{% \def\!setticktransform{\let\!ticktransform=\!donothing}} \def\!donothing#1#2{\def#2{#1}} \unloggedticks % ** \!ticks/ : terminates read of tick options \expandafter\def\csname !ticks/\endcsname{% \!not {\ifx \!LTlist\empty} \!placetickvalues \fi \def\!tickvalueslist{}% \def\!LTlist{}% \expandafter\csname !axis/\endcsname} \def\!maketick{% \setbox\!boxA=\hbox{% \beginpicture \!setdimenmode \setcoordinatesystem point at {\!zpt} {\!zpt} \linethickness=\!tickwidth \ifdim\!ticklength>\!zpt \putrule from {\!zpt} {\!zpt} to {\!ticksinoutsign\!tickxsign\!ticklength} {\!ticksinoutsign\!tickysign\!ticklength} \fi \if!gridlinestoo \putrule from {\!zpt} {\!zpt} to {-\!tickxsign\!xaxislength} {-\!tickysign\!yaxislength} \fi \endpicturesave <\!Xsave,\!Ysave>}% \wd\!boxA=\!zpt} \def\!ticksin{% \def\!ticksinoutsign{-}% \!maketick \!nextkeyword} \def\!ticksout{% \def\!ticksinoutsign{+}% \!maketick \!nextkeyword} \def\!tickslength<#1> {% \!ticklength=#1\relax \!maketick \!nextkeyword} \def\!tickslong{% \!tickslength<\longticklength> } \def\!ticksshort{% \!tickslength<\shortticklength> } \def\!tickswidth<#1> {% \!tickwidth=#1\relax \!maketick \!nextkeyword} \def\!ticksandacross{% \!gridlinestootrue \!maketick \!nextkeyword} \def\!ticksbutnotacross{% \!gridlinestoofalse \!maketick \!nextkeyword} \def\!tickslogged{% \let\!ticktransform=\!logten \!nextkeyword} \def\!ticksunlogged{% \let\!ticktransform=\!donothing \!nextkeyword} \def\!ticksunlabeled{% \!tickcase=0 \!nextkeyword} \def\!ticksnumbered{% \!tickcase=1 \!nextkeyword} \def\!tickswithvalues#1/ {% \edef\!tickvalueslist{#1! /}% \!tickcase=2 \!nextkeyword} \def\!ticksquantity#1 {% \ifnum #1>1 \!updatetickoffset \!countA=#1\relax \advance \!countA -1 \!ticklocationincr=\!axisLength \divide \!ticklocationincr \!countA \!ticklocation=\!axisstart \loop \!not{\ifdim \!ticklocation>\!axisend} \!placetick\!ticklocation \ifcase\!tickcase \relax % Case 0: no labels \or \relax % Case 1: numbered -- not available here \or \expandafter\!gettickvaluefrom\!tickvalueslist \edef\!tickfield{{\the\!ticklocation}{\!value}}% \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% \fi \advance \!ticklocation \!ticklocationincr \repeat \fi \!nextkeyword} \def\!ticksat#1 {% \!updatetickoffset \edef\!Loc{#1}% \if /\!Loc \def\next{\!nextkeyword}% \else \!ticksincommon \def\next{\!ticksat}% \fi \next} \def\!ticksfrom#1 to #2 by #3 {% \!updatetickoffset \edef\!arg{#3}% \expandafter\!separate\!arg\!nil \!scalefactor=1 \expandafter\!countfigures\!arg/ \edef\!arg{#1}% \!scaleup\!arg by\!scalefactor to\!countE \edef\!arg{#2}% \!scaleup\!arg by\!scalefactor to\!countF \edef\!arg{#3}% \!scaleup\!arg by\!scalefactor to\!countG \loop \!not{\ifnum\!countE>\!countF} \ifnum\!scalefactor=1 \edef\!Loc{\the\!countE}% \else \!scaledown\!countE by\!scalefactor to\!Loc \fi \!ticksincommon \advance \!countE \!countG \repeat \!nextkeyword} \def\!updatetickoffset{% \!dimenA=\!ticksinoutsign\!ticklength \ifdim \!dimenA>\!offset \!offset=\!dimenA \fi} \def\!placetick#1{% \if!xswitch \!xpos=#1\relax \!ypos=\!axisylevel \else \!xpos=\!axisxlevel \!ypos=#1\relax \fi \advance\!xpos \!Xsave \advance\!ypos \!Ysave \kern\!xpos\raise\!ypos\copy\!boxA\kern-\!xpos \ignorespaces} \def\!gettickvaluefrom#1 #2 /{% \edef\!value{#1}% \edef\!tickvalueslist{#2 /}% \ifx \!tickvalueslist\!endtickvaluelist \!tickcase=0 \fi} \def\!endtickvaluelist{! /} \def\!ticksincommon{% \!ticktransform\!Loc\!t \!ticklocation=\!t\!!unit \advance\!ticklocation -\!!origin \!placetick\!ticklocation \ifcase\!tickcase \relax % Case 0: no labels \or % Case 1: numbered \ifdim\!ticklocation<-\!!origin \edef\!Loc{$\!Loc$}% \fi \edef\!tickfield{{\the\!ticklocation}{\!Loc}}% \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% \or % Case 2: labeled \expandafter\!gettickvaluefrom\!tickvalueslist \edef\!tickfield{{\the\!ticklocation}{\!value}}% \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% \fi} \def\!separate#1\!nil{% \!ifnextchar{-}{\!!separate}{\!!!separate}#1\!nil} \def\!!separate-#1\!nil{% \def\!sign{-}% \!!!!separate#1..\!nil} \def\!!!separate#1\!nil{% \def\!sign{+}% \!!!!separate#1..\!nil} \def\!!!!separate#1.#2.#3\!nil{% \def\!arg{#1}% \ifx\!arg\!empty \!countA=0 \else \!countA=\!arg \fi \def\!arg{#2}% \ifx\!arg\!empty \!countB=0 \else \!countB=\!arg \fi} \def\!countfigures#1{% \if #1/% \def\!next{\ignorespaces}% \else \multiply\!scalefactor 10 \def\!next{\!countfigures}% \fi \!next} \def\!scaleup#1by#2to#3{% \expandafter\!separate#1\!nil \multiply\!countA #2\relax \advance\!countA \!countB \if -\!sign \!countA=-\!countA \fi #3=\!countA \ignorespaces} \def\!scaledown#1by#2to#3{% \!countA=#1\relax% ** get original # \ifnum \!countA<0 % ** take abs value, \def\!sign{-}% ** remember sign \!countA=-\!countA \else \def\!sign{}% \fi \!countB=\!countA% ** copy |#| \divide\!countB #2\relax% ** integer part (|#|/sf) \!countC=\!countB% ** get sf * (|#|/sf) \multiply\!countC #2\relax \advance \!countA -\!countC% ** ctA is now remainder \edef#3{\!sign\the\!countB.}% ** +- integerpart. \!countC=\!countA % ** Tack on proper number \ifnum\!countC=0 % ** of zeros after . \!countC=1 \fi \multiply\!countC 10 \!loop \ifnum #2>\!countC \edef#3{#3\!zero}% \multiply\!countC 10 \repeat \edef#3{#3\the\!countA}% ** Add on rest of remainder \ignorespaces} \def\!placetickvalues{% \advance\!offset \tickstovaluesleading \if!xswitch \setbox\!boxA=\hbox{% \def\\##1##2{% \!dimenput {##2} [B] (##1,\!axisylevel)}% \beginpicture \!LTlist \endpicturesave <\!Xsave,\!Ysave>}% \!dimenA=\!axisylevel \advance\!dimenA -\!Ysave \advance\!dimenA \!tickysign\!offset \if -\!tickysign \advance\!dimenA -\ht\!boxA \else \advance\!dimenA \dp\!boxA \fi \advance\!offset \ht\!boxA \advance\!offset \dp\!boxA \!dimenput {\box\!boxA} [Bl] <\!Xsave,\!Ysave> (\!zpt,\!dimenA) \else \setbox\!boxA=\hbox{% \def\\##1##2{% \!dimenput {##2} [r] (\!axisxlevel,##1)}% \beginpicture \!LTlist \endpicturesave <\!Xsave,\!Ysave>}% \!dimenA=\!axisxlevel \advance\!dimenA -\!Xsave \advance\!dimenA \!tickxsign\!offset \if -\!tickxsign \advance\!dimenA -\wd\!boxA \fi \advance\!offset \wd\!boxA \!dimenput {\box\!boxA} [Bl] <\!Xsave,\!Ysave> (\!dimenA,\!zpt) \fi} \normalgraphs % \catcode`!=12 % ***** THIS MUST NEVER BE OMITTED \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/context.mkii0000644000175000017500000002346514567411714024665 0ustar hillehille %D \module %D [ file=context, %D version=2008.28.10, % 1995.10.10, %D title=\CONTEXT, %D subtitle=\CONTEXT\ Format Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \catcode`\{=1 \catcode`\}=2 \catcode`\#=6 %D From the next string (which is set by the script that assembles the %D distribution) later on we will calculate a number that can be used %D by use modules to identify the feature level. Starting with version %D 2004.8.30 the low level interface is english. Watch out and adapt %D your styles an modules. \edef\contextformat {\jobname} \edef\contextversion{2024.02.27 09:18} %D For those who want to use this: \let\fmtname \contextformat \let\fmtversion\contextversion %D Loading: \edef\mksuffix {mkii} \edef\contextmark{MKII} \ifx\normalinput\undefined \let\normalinput\input \fi \def\loadmarkfile#1{\normalinput#1.\mksuffix\relax} %D First we load the system modules. These implement a lot of %D manipulation macros. The first one loads \PLAIN\ \TEX, as %D minimal as possible. \loadmarkfile{syst-ini} %D Some checking (more primitives are now defined): \ifdefined\defaultinterface \else \def\defaultinterface {english} \fi %ifdefined\messageinterface \else \let\messageinterface \defaultinterface \fi \ifdefined\defaultlanguagetag \else \def\defaultlanguagetag{en} \fi %D More core code. \loadmarkfile{syst-pln} \loadmarkfile{norm-tex} \loadmarkfile{norm-etx} \loadmarkfile{norm-ptx} \loadmarkfile{norm-xtx} \loadmarkfile{norm-ctx} \loadmarkfile{catc-ini} \loadmarkfile{catc-act} \loadmarkfile{catc-def} \loadmarkfile{catc-ctx} \loadmarkfile{catc-sym} \loadmarkfile{catc-xml} \loadmarkfile{syst-gen} \loadmarkfile{syst-ext} \loadmarkfile{syst-new} \loadmarkfile{syst-con} \loadmarkfile{thrd-trg} % based on: David Carlisle \loadmarkfile{syst-fnt} \loadmarkfile{syst-str} \loadmarkfile{syst-rtp} \ifnum\texengine=\xetexengine \loadmarkfile{xetx-ini} \loadmarkfile{xetx-utf} \loadmarkfile{xetx-chr} \loadmarkfile{xetx-cls} \fi %D To enable selective loading, we say: \newif\ifCONTEXT \CONTEXTtrue % will disappear %D In order to conveniently load files, we need a few %D support modules. \loadmarkfile{supp-fil} \loadmarkfile{supp-dir} %D This is for mkii bibtex users who expect \LATEX\ commands. \loadmarkfile{supp-lat} %D After this we're ready for the multi||lingual interface %D modules. \loadmarkfile{mult-ini} \loadmarkfile{mult-fst} \loadmarkfile{mult-sys} \loadmarkfile{mult-def} \loadmarkfile{mult-chk} \loadmarkfile{mult-aux} %D Now we're ready for some general support modules. These %D modules implement some basic typesetting functionality. \loadmarkfile{core-var} \loadmarkfile{core-env} \loadmarkfile{supp-box} \loadmarkfile{supp-mrk} \loadmarkfile{supp-vis} \loadmarkfile{supp-fun} %loadmarkfile{supp-eps} \loadmarkfile{supp-spe} \loadmarkfile{supp-ran} \loadmarkfile{supp-mps} \loadmarkfile{supp-tpi} \loadmarkfile{supp-mat} \loadmarkfile{supp-ali} \loadmarkfile{supp-num} %D Verbatim typesetting is implemented in a separate class of %D modules. The pretty typesetting modules are loaded at run %D time. \loadmarkfile{verb-ini} %D The following modules are not sequentially dependent, %D i.e. they have ugly dependencies, which will be cleaned %D up by adding more overloading. %D When loading the font, color and special modules, we need a %D bit more advanced file handling as well as some general %D variables, and features, so next we load: \loadmarkfile{page-ins} \loadmarkfile{core-fil} \loadmarkfile{core-con} %D We already need some synonyms (patterns). \loadmarkfile{cont-fil} %D \CONTEXT\ does not implement its own table handling. We %D just go for the best there is and load \TABLE. Just to be %D sure we do it here, before we redefine \type{|}. \loadmarkfile{thrd-tab} % based on: Michael Wichura's TaBlE %D Here comes the last support modules. They take care of %D some language specific things. \loadmarkfile{supp-pat} %D The next few modules do what their names state. They %D load additional definition modules when needed. \loadmarkfile{regi-ini} \loadmarkfile{regi-syn} \loadmarkfile{enco-ini} %loadmarkfile{filt-ini} \loadmarkfile{hand-ini} \loadmarkfile{lang-ini} \loadmarkfile{lang-spe} \loadmarkfile{lang-lab} \loadmarkfile{unic-ini} \loadmarkfile{core-gen} \loadmarkfile{core-uti} \loadmarkfile{core-two} \loadmarkfile{core-stg} \loadmarkfile{spec-ini} \loadmarkfile{spec-mis} \loadmarkfile{spec-def} \loadmarkfile{spec-var} \loadmarkfile{colo-ini} \loadmarkfile{colo-ext} %D For the moment we load a lot of languages. In the future %D we'll have to be more space conservative. \loadmarkfile{lang-mis} \loadmarkfile{lang-url} \loadmarkfile{lang-ger} \loadmarkfile{lang-ita} \loadmarkfile{lang-sla} \loadmarkfile{lang-alt} \loadmarkfile{lang-ana} \loadmarkfile{lang-art} \loadmarkfile{lang-bal} \loadmarkfile{lang-cel} \loadmarkfile{lang-grk} \loadmarkfile{lang-ind} \loadmarkfile{lang-ura} \loadmarkfile{lang-vn} \loadmarkfile{lang-cyr} \loadmarkfile{typo-ini} %D All kind of symbols are handled in: \loadmarkfile{symb-ini} %D Sorting: \loadmarkfile{sort-ini} %D Next we load some core macro's. These implement the %D macros' that are seen by the users. The order of loading %D is important, due to dependancies. \loadmarkfile{spac-gen} \loadmarkfile{spac-grd} \loadmarkfile{strc-mar} \loadmarkfile{anch-pos} \loadmarkfile{buff-ver} \loadmarkfile{buff-ini} \loadmarkfile{pack-rul} \loadmarkfile{trac-vis} \loadmarkfile{strc-num} \loadmarkfile{tabl-com} \loadmarkfile{tabl-pln} \loadmarkfile{tabl-tab} \loadmarkfile{tabl-tsp} \loadmarkfile{scrn-nav} \loadmarkfile{strc-ref} \loadmarkfile{pack-obj} \loadmarkfile{strc-lst} \loadmarkfile{strc-itm} \loadmarkfile{strc-des} \loadmarkfile{strc-mat} % should come after math-pln etc \loadmarkfile{strc-syn} \loadmarkfile{core-sys} \loadmarkfile{page-ini} \loadmarkfile{page-bck} \loadmarkfile{page-not} \loadmarkfile{page-one} \loadmarkfile{page-lay} \loadmarkfile{page-log} \loadmarkfile{page-txt} \loadmarkfile{page-sid} \loadmarkfile{strc-flt} \loadmarkfile{page-mis} \loadmarkfile{page-mul} \loadmarkfile{page-set} \loadmarkfile{pack-lyr} \loadmarkfile{page-mak} \loadmarkfile{strc-pag} \loadmarkfile{page-lin} \loadmarkfile{page-par} \loadmarkfile{page-mar} \loadmarkfile{core-job} % why so late? % so far \loadmarkfile{strc-sec} \loadmarkfile{strc-swd} \loadmarkfile{strc-blk} \loadmarkfile{page-imp} \loadmarkfile{tabl-tbl} \loadmarkfile{scrn-int} \loadmarkfile{tabl-ntb} \loadmarkfile{tabl-nte} \loadmarkfile{tabl-ltb} %D A few more languages, that have specifics using core %D functionality: %loadmarkfile{lang-ara} % undefined \loadmarkfile{lang-chi} \loadmarkfile{lang-jap} %D How about fill||in fields and related stuff? \loadmarkfile{java-ini} \loadmarkfile{scrn-fld} \loadmarkfile{scrn-hlp} %D Registers can depend on fields, so we load that now. \loadmarkfile{strc-reg} %D Of course we do need fonts. There are no \TFM\ files %D loaded yet, so the format file is independant of their %D content. Here we also redefine \type{\it} as {\it italic} %D instead of italian. \loadmarkfile{font-ini} \ifnum\texengine=\xetexengine \loadmarkfile{font-xtx} \fi \loadmarkfile{font-unk} \loadmarkfile{font-uni} \loadmarkfile{font-bfm} \loadmarkfile{enco-pfr} \loadmarkfile{type-ini} \loadmarkfile{type-set} \loadmarkfile{type-def} %D Properties. Don't ask. \loadmarkfile{prop-ini} \loadmarkfile{prop-lay} \loadmarkfile{prop-mis} %D Like languages, fonts, encodings and symbols, \METAPOST\ %D support is also organized in its own class of modules. \loadmarkfile{meta-ini} \loadmarkfile{meta-tex} \loadmarkfile{meta-pdf} \loadmarkfile{meta-pag} %D Special page handling (maybe even later) \loadmarkfile{page-flw} \loadmarkfile{page-spr} \loadmarkfile{page-plg} \loadmarkfile{page-str} %D Anchoring graphics: \loadmarkfile{anch-pgr} \loadmarkfile{anch-bar} \loadmarkfile{anch-snc} %D Math. \loadmarkfile{math-pln} \loadmarkfile{math-ini} \loadmarkfile{math-arr} \loadmarkfile{math-frc} %D Now we're ready for more core modules. \loadmarkfile{core-fnt} \loadmarkfile{strc-not} \loadmarkfile{strc-lnt} \loadmarkfile{core-mis} \loadmarkfile{grph-trf} \loadmarkfile{grph-inc} \loadmarkfile{grph-fig} \loadmarkfile{core-par} \loadmarkfile{pack-box} \loadmarkfile{page-app} \loadmarkfile{meta-fig} %D Language specific spacing. \loadmarkfile{lang-spa} %D Bibliographies: \loadmarkfile{bibl-tra} %D Only the basic XML parser and remapper are part of the core. %D These macros are loaded last since they overload and|/|or %D extend previously defined ones. \loadmarkfile{xtag-ini} \loadmarkfile{xtag-ext} \loadmarkfile{xtag-exp} \loadmarkfile{xtag-pre} \loadmarkfile{xtag-xsd} \loadmarkfile{xtag-rng} %D How about this: \loadmarkfile{meta-xml} %D \TEX\ related logo's are always typeset in a special way. %D Here they come: \loadmarkfile{cont-log} %D This one overloads af few things: \loadmarkfile{core-ctx} %D Defaults go here (more will be moved to this module %D later): \loadmarkfile{core-ini} \loadmarkfile{core-def} %D Preloaded modules (some need xml support): %usemodule[x][res-04] % xml resource libraries %usemodule[x][res-08] % rlx runtime conversion \usemodule[x][res-12] % rli external indentification %D At run time, a few more files are loaded, like: %D %D \startitemize[packed] %D \item \type{cont-sys}: local (system dependant) defaults %D \item \type{cont-old}: substitutes for old (obsolete) macros %D \item \type{cont-new}: new macro implementations (for testing) %D \item \type{cont-fil}: filename and module synonyms %D \stopitemize \setupcurrentlanguage[\defaultlanguagetag] \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt] \errorstopmode \dump \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-pml.mkii0000644000175000017500000000354214536300610024710 0ustar hillehille%D \module %D [ file=xtag-pml, %D version=2001.09.04, %D title=\CONTEXT\ XML Support, %D subtitle=Physics ML, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / PhysML} %D This is a reimplmentation of the old filter. This module %D runs on top of the mathml and units modules. \useXMLfilter[map] \useXMLfilter[mml,mmp,mmc] \defineXMLargument [phys] \doXMLphys \defineXMLargument [iphys] \doXMLiphys \defineXMLargument [dphys] \doXMLdphys \unprotect \unexpanded\def\doXMLphys {\ifhmode\@EA\doXMLiphys\else\@EA\doXMLdphys\fi} \unexpanded\def\doXMLiphys{\XMLremapdata[mml]{$\ignorespaces}{\unskip$}} \unexpanded\def\doXMLdphys{\XMLremapdata[mml]{\dostartformula{}}{\dostopformula}} \protect \doifnotmode{demo}{\endinput} \usemodule[units] \starttext \startXMLdata 10 \stopXMLdata \startXMLdata 10 \stopXMLdata \startXMLdata 10 \stopXMLdata \startXMLdata 10 \stopXMLdata \startXMLdata 10 \stopXMLdata \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/java-stp.mkii0000644000175000017500000000672414536300610024711 0ustar hillehille%D \module %D [ file=java-stp, %D version=2004.03.15, %D title=\CONTEXT\ JavaScript Macros, %D subtitle=Stepping, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % we define ocglist global, otherwise we quickly run into a memory hog (even % out of memory in a 512 Meg machine) % we cannot use doc_visited[this.pageNum] instead of doc_currentstep because % of some funny side effect (i.e. dup or so) \startJSpreamble Steps used now var doc_ocglist = this.getOCGs() ; var doc_stepname = "step" ; var doc_currentstep = 0 ; var doc_maxstep = 50 ; var doc_visited = new Array() ; var doc_busy = new Array() ; function SetupStepper ( layername, laststep ) { doc_stepname = layername ; doc_maxstep = laststep ; for (var i=0; i<=this.numPages; i++) { doc_visited[i] = 0 ; doc_busy[i] = 0 ; } } for (var i=0; i<=this.numPages; i++) { doc_visited[i] = 0 ; doc_busy[i] = 0 ; } function GetOCG ( name ) { for (var i=0; i < doc_ocglist.length; i++) { if (doc_ocglist[i].name == name) { return doc_ocglist[i] ; } } return null ; } function CheckBusy ( ) { var ocg = GetOCG("step:busy") ; if (ocg != null) { if (doc_visited[this.pageNum]==0) { ocg.state = true ; } else { if (doc_visited[this.pageNum] {#3} \def\letitemparameter #1#2{\@EA\let\csname\??op\currentitemgroup#1#2\endcsname} % works ok but not needed (also possible compatibility problem) % % \def\getitemparameter#1#2% % {\executeifdefined{\??op\currentitemgroup#1#2}% % {\executeifdefined{\??op\currentitemgroup #2}% % {\executeifdefined{\??oo #2}% % {}}}} % test this: saves hash entries and is also faster % % \let\doinitializeitemgrouplevel\gobbleoneargument % todo ! ! ! \def\getitemparameter#1#2% {\executeifdefined{\??op\currentitemgroup#1#2}% {\executeifdefined{\??op\currentitemgroup #2}% {\executeifdefined{\??oo #2}% {}}}} \def\doitemattributes #1{\doattributes{\??op\currentitemgroup#1}} \def\@@globalitemsymbol #1{\??op\currentitemgroup\c!symbol\s!global#1} \def\@@localitemsymbol #1{\??op\currentitemgroup\c!symbol\s!local #1} \def\@@currentitemsymbol#1{\??op\currentitemgroup\c!symbol #1} \def\@@itemcounter{\s!itemcount\currentitemgroup} % \def\doitembreak#1{\ifconditional\textlistitem\else\dosomebreak#1\fi} % % s-pre-61 / pre-dis, test extensively, 2004/5 \def\doitembreak#1{\ifconditional\optimizelistitem\ifconditional\textlistitem\else\dosomebreak#1\fi\fi} \def\initializeitemgroupslevel#1% {\ifundefined{\@@globalitemsymbol{#1}}% \edef\itemreferences{\itemreferences,#1}% \makecounter{\@@itemcounter#1}% \setevalue{\@@globalitemsymbol{#1}}{#1}% \fi} \def\initializeitemgrouplevel#1% safeguard {\ifundefined{\??op\currentitemgroup#1\c!width}% \doinitializeitemgrouplevel{#1}% \fi} \def\doinitializeitemgrouplevel#1% {\copyparameters [\??op\currentitemgroup#1][\??oo] [\c!width,\c!factor,\c!distance,\c!align,\c!symalign,\c!option,% \c!style,\c!marstyle,\c!symstyle,\c!headstyle,% \c!color,\c!marcolor,\c!symcolor,\c!headcolor,% \c!beforehead,\c!afterhead,\c!before,\c!inbetween,\c!after,% \c!stopper,\c!placestopper,\c!indenting,% \c!n,\c!inner,\c!symbol,\c!margin,\c!items,% \c!leftmargin,\c!rightmargin,\c!indentnext,% \c!command,% \c!start,\c!lefttext,\c!righttext]} \def\setupitemgroups {\dosingleargument\dosetupitemgroups} \def\dosetupitemgroups[#1]% still undocumented {\getparameters[\??oo][\c!levels=4,#1]% % will change (remove) \ifnum\@@oolevels>\maxitemdepth \maxitemdepth\@@oolevels\relax \dorecurse\maxitemdepth{\initializeitemgroupslevel\recurselevel}% \fi} \def\doitemreference#1,#2,#3\\% {\ifnum\currentitemlevel>#1\relax \ifnum#1>\zerocount \tempsymbol \fi \getvalue{\@@currentitemsymbol{#2}}% \doitemreference#2,#3\\% \fi} \def\itemreference {\expandafter\doitemreference\itemreferences,,\\} \def\packitems {\ifcase\currentitemlevel \else \settrue\packlistitem \fi} \def\dosetupitemgroupvariable[#1]% [#2]% niveau instellingen {\doifelsenothing{#1} {\getparameters[\??op\currentitemgroup\currentitemlevel]}% [#2]}% {\getparameters[\??op\currentitemgroup#1]}}% [#2]}} \newconditional\inlinelistitem \setfalse\inlinelistitem \def\dododosetupitemgroupconstant[#1][#2#3#4]% * permits [2] {\global\setitemparameter\currentitemlevel\c!maxwidth{0}% \processaction [#2#3#4] [ \v!packed*=>\packitems, \v!intro*=>\settrue\introlistitem, % here? not set to false % no: \v!random*=>\settrue\randomizeitems,% here? not set to false \v!autointro*=>\settrue\autointrolistitem, \v!broad*=>\setitemparameter{#1}\c!factor{1}, #2#3*\v!broad*=>\setitemparameter{#1}\c!factor{#2#3}, #2*\v!broad*=>\setitemparameter{#1}\c!factor{#2}, \v!text*=>\settrue\textlistitem \settrue\inlinelistitem \settrue\joinedlistitem % \dosetuppackeditemgroup{#1}% \packitems, \v!columns*=>\packitems, \v!before*=>\settrue\beforelistitem, \v!after*=>\settrue\afterlistitem, \v!nowhite*=>\settrue\nowhitelistitem, % \def\packeditemspacing{\nowhitespace}, \v!margin*=>\setitemparameter{#1}\c!width{-2em}, % signal \v!inmargin*=>\setitemparameter{#1}\c!width{-2em}, % signal \v!atmargin*=>\doifnot{#1}{1}{\setitemparameter{#1}\c!width{0em}}, % signal \v!intext*=>\settrue\inlinelistitem, % new \v!loose*=>\setfalse\optimizelistitem, \v!fit*=>\settrue\fittinglistitems, \v!nofit*=>\setfalse\fittinglistitems, \v!paragraph*=>\settrue\paragraphlistitem \packitems, \v!joinedup*=>\settrue\joinedlistitem % \dosetuppackeditemgroup{#1}% \packitems, \v!serried*=>\setitemparameter{#1}\c!factor{-1}, #2#3*\v!serried*=>\setitemparameter{#1}\c!factor{-#2#3}, #2*\v!serried*=>\setitemparameter{#1}\c!factor{-#2}, \v!stopper*=>\setitemparameter{#1}\c!placestopper{\v!yes}, % keep {} \v!unpacked*=>\setfalse\packlistitem, \v!repeat*=>\settrue\repeatlistitem, % new \v!reverse*=>\settrue\reverselistitem, \v!standard*=>\dosetupstandarditemgroup{#1}]} \def\dosetupstandarditemgroup#1% {\getparameters [\??op\currentitemgroup#1] [\c!width=1.5em, \c!factor=0, \c!distance=.5em, \c!beforehead=, \c!afterhead=\blank, \c!before=\blank, \c!inbetween=\blank, \c!after=\blank, \c!inner=]} % \def\packeditemspacing{\empty} % \setupwhitespace[big] % \starttext % test \startitemize[joinedup] \item test \item test \stopitemize test \par % test \startitemize[joinedup,nowhite] \item test \item test \stopitemize test \par % test \startitemize[joinedup,nowhite,before] \item test \item test \stopitemize test \par % test \startitemize[joinedup,nowhite,after] \item test \item test \stopitemize test \par % \stoptext \def\itembeforecommand {\ifconditional\nowhitelistitem \ifconditional\beforelistitem \ifcase\currentitemlevel\or\getitemparameter\currentitemlevel\c!before\fi \else \nowhitespace \fi \else\ifconditional\joinedlistitem % \empty \else \getitemparameter\currentitemlevel\c!before \fi\fi} \def\itemaftercommand {\ifconditional\nowhitelistitem \ifconditional\afterlistitem \ifcase\currentitemlevel\or\getitemparameter\currentitemlevel\c!after\fi \else \nowhitespace \fi \else\ifconditional\joinedlistitem % \empty \else \getitemparameter\currentitemlevel\c!after \fi\fi} \def\iteminbetweencommand {\ifconditional\nowhitelistitem \nowhitespace \else\ifconditional\joinedlistitem % \empty \else \getitemparameter\currentitemlevel\c!inbetween \fi\fi} \def\itembeforeheadcommand {\ifconditional\nowhitelistitem \nowhitespace \else\ifconditional\joinedlistitem % \empty \else \getitemparameter\currentitemlevel\c!beforehead \fi\fi} \def\itemafterheadcommand {\ifconditional\nowhitelistitem \nowhitespace \else\ifconditional\joinedlistitem % \empty \else \getitemparameter\currentitemlevel\c!afterhead \fi\fi} % \def\dosetuppackeditemgroup#1% % {\setitemparameter{#1}\c!beforehead{\packeditemspacing}% % \setitemparameter{#1}\c!afterhead {\packeditemspacing}% % \setitemparameter{#1}\c!before {\packeditemspacing}% % \setitemparameter{#1}\c!after {\packeditemspacing}% % \setitemparameter{#1}\c!inbetween {\packeditemspacing}} \def\dosetupitemgroupconstant[#1][#2]% {\def\dodosetupitemgroupconstant##1% catches empty in [a,b,] handy for xml {\doifsomething{##1}{\dododosetupitemgroupconstant[#1][##1*]}}% \processcommacommand[#2]\dodosetupitemgroupconstant} % expansion of #2 is handy for xml \def\dododododosetupitemgroup[#1][#2]% {\doifassignmentelse{#2}% {\dosetupitemgroupvariable[#1][#2]}% {\setitemparameter{#1}\c!option{#2}}}% \def\dodododosetupitemgroup[#1][#2]% {\ConvertToConstant\doifnot{#2}{} {\doifelse{#1}\v!each {\dorecurse\maxitemdepth{\ExpandFirstAfter\dododododosetupitemgroup[\recurselevel][#2]}} {\ExpandFirstAfter\dododododosetupitemgroup[#1][#2]}}} \def\dododosetupitemgroup[#1][#2]% {\ConvertToConstant\doifelse{#2}{} {\ifcase\currentitemlevel\relax \dodododosetupitemgroup[\v!each][#1]% \else \dodododosetupitemgroup[\currentitemlevel][#1]% \fi} {\doifelsenothing{#1} {\dodododosetupitemgroup[\currentitemlevel][#2]} {\dodododosetupitemgroup[#1][#2]}}} \def\dodosetupitemgroup[#1][#2][#3][#4]% {\pushmacro\currentitemgroup \def\currentitemgroup{#1}% \dododosetupitemgroup[#2][#3]% \ConvertToConstant\doifnot{#4}{} % anders wordt #2 overruled {\dododosetupitemgroup[#2][#4]}% \popmacro\currentitemgroup} \def\dosetupitemgroup[#1][#2][#3][#4]% {\def\docommand##1{\dodosetupitemgroup[##1][#2][#3][#4]}% \processcommalist[#1]\docommand} \def\setupitemgroup {\doquadrupleempty\dosetupitemgroup} \def\doadvanceitem {\ifconditional\sublistitem\else\ifconditional\symbollistitem\else \pluscounter{\@@itemcounter\currentitemlevel}% \fi\fi} \def\setitemlevel#1% {\ifnum\currentitemlevel>\zerocount \settrue\firstlistitem % \expanded{\setitemparameter{\currentitemlevel}{\c!start}{1}}% *** \doifinset{0}{#1}{\setitemparameter\currentitemlevel\c!start{0}}% *** \setcounter{\@@itemcounter\currentitemlevel}{\the\numexpr\getitemparameter\currentitemlevel\c!start-1\relax}% *** \doifelsenothing{\getitemparameter\currentitemlevel\c!start} {\def\currentitemoffset{1}} {\def\currentitemoffset{\getitemparameter\currentitemlevel\c!start}% \letitemparameter\currentitemlevel\c!start\empty}% \def\tempnumber {\countervalue{\@@itemcounter\currentitemlevel}}% \doifelse{\getitemparameter\currentitemlevel\c!placestopper}\v!yes {\def\tempsymbol{\getitemparameter\currentitemlevel\c!stopper}} {\let\tempsymbol\empty}% \fi} \def\actualitemnumber {\ifconditional\reverselistitem \convertnumber\currentitemsymbol{\numexpr\currentmaxnofitems+\currentitemoffset-\currentitemnumber+1\relax}% \else \convertnumber\currentitemsymbol{\numexpr\currentminnofitems+\currentitemoffset+\currentitemnumber-1\relax}% \fi} % PAS OP: ook 'opelkaar' en zo worden getest, nog eens afvangen! \def\unknownitemsymbol{?} \def\setitemmark#1% % en pas op: resets \docommand {\doifsymboldefinedelse{#1} {\edef\currentitemsymbol{#1}% \setxvalue{\@@globalitemsymbol\currentitemlevel}{\currentitemsymbol}% \setgvalue{\@@localitemsymbol \currentitemlevel}{\unknownitemsymbol}% \def\listitem{\symbol[\currentitemsymbol]}% \let\@@opsymbol\empty}% \let\docommand\gobbleoneargument} {\doifconversiondefinedelse{#1} {\edef\currentitemsymbol{#1}% \setxvalue{\@@globalitemsymbol\currentitemlevel}{\currentitemsymbol}% \setgvalue{\@@localitemsymbol\currentitemlevel }{\actualitemnumber }% \ifconditional\textlistitem \doifsomething{\getitemparameter\currentitemlevel\c!lefttext} {\let\tempsymbol\empty}% \fi \def\listitem {\getitemparameter\currentitemlevel {\ifconditional\textlistitem\c!lefttext\else\c!left\fi}% \getvalue{\@@localitemsymbol\currentitemlevel}\tempsymbol \getitemparameter\currentitemlevel {\ifconditional\textlistitem\c!righttext\else\c!right\fi}}% \let\@@opsymbol\empty}%\let\docommand\gobbleoneargument} {}}} \def\calculatelistwidth#1#2% distance deals with 'broad' {#2=\getitemparameter{#1}\c!distance\relax \ifnum\getitemparameter{#1}\c!factor>\zerocount \ifdim#2=\zeropoint #2=.5em\fi \fi \multiply#2 \getitemparameter{#1}\c!factor \advance #2 \getitemparameter{#1}\c!width\relax} % The next conditionals deal with \item \startitemgroup. It % looks like a hack to skip back, but that way we preserve % the indentation and bullet placement. It's a rather % untested feature. \newconditional\concatnextitem \setfalse\concatnextitem \newconditional\autoconcatnextitem \settrue \autoconcatnextitem \newsignal \itemsignal \def\startitemgroup {\dotripleempty\dostartitemgroup} % \def\dostartitemgroup[#1][#2][#3]% % {\bgroup % \def\currentitemgroup{#1}% % \ifthirdargument % \dodostartitemgroup[#2][#3]% % \else % \doifassignmentelse{#2} % {\dodostartitemgroup[][#2]} % {\dodostartitemgroup[#2][]}% % \fi} \def\dostartitemgroup[#1][#2][#3]% {\bgroup \ifnum\currentitemlevel=\zerocount \def\currentitemgroup{#1}% no nested mixing of itemgroups \fi \ifthirdargument \dodostartitemgroup[#2][#3]% \else \doifassignmentelse{#2} {\dodostartitemgroup[][#2]} {\dodostartitemgroup[#2][]}% \fi} \def\dodostartitemgroup[#1]% [#2]% {\relax % prevents lookahead \ifnum\currentitemlevel=\maxitemdepth\relax \showmessage\m!layouts9{\number\maxitemdepth}% \let\itemincrement\zerocount \else \let\itemincrement\plusone \fi \global\advance\itemdepth\itemincrement \xdef\currentitemlevel{\number\itemdepth}% \initializeitemgrouplevel\currentitemlevel % safeguard \edef\itemgroupoptions{\getitemparameter\currentitemlevel\c!option}% \ifx\itemgroupoptions\empty \edef\itemgroupoptions{#1}% \else \doifsomething{#1}{\edef\itemgroupoptions{\itemgroupoptions,#1}}% \fi \expanded{\redostartitemgroup[\itemgroupoptions]}}% [#2] \let\startcollectitems\relax \let\stopcollectitems \relax %D A nice example of a plugin: %D %D \startbuffer %D \startitemize[a,random,packed] %D \startitem first \stopitem \startitem second \stopitem %D \startitem third \stopitem \startitem fourth \stopitem %D \stopitemize %D %D \startitemize[a,random,packed] %D \startitem first \stopitem \startitem second \stopitem %D \startitem third \stopitem \startitem fourth \stopitem %D \stopitemize %D %D \startitemize[a,packed] %D \startitem first \stopitem \startitem second \stopitem %D \startitem third \stopitem \startitem fourth \stopitem %D \stopitemize %D \stopbuffer %D %D \typebuffer \getbuffer % better collectitems als conditional and a real plugin mechanism (some day) \@EA\long\@EA\def\@EA\collectitemgroupitem\@EA#\@EA1\csname\e!stop\v!item\endcsname {\increment\itemcollectcounter \long\setvalue{\v!item*\itemcollectcounter}{\item#1\par}} \def\flushcollecteditems {\ifconditional\randomizeitems \getrandomnumber\itemcollectcounternow\plusone\itemcollectcounter \else \increment\itemcollectcounternow \fi \doifdefined{\v!item*\itemcollectcounternow} {\getvalue{\v!item*\itemcollectcounternow}% \letbeundefined{\v!item*\itemcollectcounternow}% \increment\itemcollectcounterdone}% \ifnum\itemcollectcounterdone<\itemcollectcounter\relax \expandafter\flushcollecteditems \fi} \def\stopcollectitems {\ifconditional\randomizeitems \newcounter\itemcollectcounterdone \ifnum\itemcollectcounter>\zerocount \@EAEAEA\flushcollecteditems \fi \fi} \def\startcollectitems {\ifconditional\randomizeitems \newcounter\itemcollectcounter \letvalue{\e!start\v!item}\collectitemgroupitem \fi} %D End of plugin. \ifx\startcolumns\undefined \def\startcolumns[#1]{} \fi \ifx\stopcolumns \undefined \let\stopcolumns\relax \fi \def\dosetsymalign#1% hm, we should use one of the core-spa macros or make a helper {\processaction [#1] [ \v!flushleft=>\let\symalignleft\relax, \v!right=>\let\symalignleft\relax, \v!flushright=>\let\symalignleft\hfill, \v!left=>\let\symalignleft\hfill, \v!middle=>\let\symalignleft\hfil, \v!center=>\let\symalignleft\hfil]} \def\redostartitemgroup[#1][#2]% {\setfalse\inlinelistitem % new, no indent (leftskip) \setfalse\concatnextitem % new, concat \setfalse\txtlistitem \ifhmode \ifconditional\autoconcatnextitem % new, concat \ifdim\lastskip=\itemsignal % new, concat \settrue\concatnextitem % new, concat \fi % new, concat \fi % new, concat \ifconditional\textlistitem\else\doifnotinset\v!text{#1}\par\fi % suboptimal \fi \begingroup % new where, ok or not / we should integrate random, intro, continue here % beware, the following no longer inherit from the previous level, is this ok? \setfalse\reverselistitem \setfalse\introlistitem \setfalse\autointrolistitem \setfalse\beforelistitem \setfalse\afterlistitem \setfalse\nowhitelistitem \setfalse\randomizeitems % \doifinsetelse\v!intro {#1}{\settrue\introlistitem }{\setfalse\introlistitem }% \doifinsetelse\v!random {#1}{\settrue\randomizeitems }{\setfalse\randomizeitems }% \doifinsetelse\v!continue{#1}{\settrue\continuelistitems}{\setfalse\continuelistitems}% % == \doifinsetelse\v!intro{#1}\settrue\setfalse\introlistitem \global\advance\noflists\plusone \currentnoflists=\noflists \newcounter\noflistelements \setfalse\headlistitem \setfalse\sublistitem \setfalse\symbollistitem \let\marsymbol\relax \globallet\doitemdestination\empty \let\symsymbol\empty \let\symalignleft\relax \the\itemgroupcommands \checkcurrentnofitems % \getitemparameter\currentitemlevel\empty \let\listitem\empty % ** start value \doifelsenothing{#1} % iffirstargument {\edef\@@opsymbol{\getitemparameter\currentitemlevel\c!symbol}% \letgvalueempty{\@@globalitemsymbol\currentitemlevel}% \global\letitemparameter\currentitemlevel\v!continue\empty % \setitemmark\@@opsymbol % ** default value \dosetupitemgroupvariable[\currentitemlevel][#2]} {\dosetupitemgroupconstant[\currentitemlevel][#1]% \dosetupitemgroupvariable[\currentitemlevel][#2]% \doifinsetelse\v!continue{#1}% \noexpand, else problems in non-etex with chinese {\edef\@@opsymbol{\noexpand\getvalue{\@@globalitemsymbol\currentitemlevel}}% \getitemparameter\currentitemlevel\v!continue} {\edef\@@opsymbol{\noexpand\getitemparameter{\currentitemlevel}{\c!symbol}}% \global\setitemparameter\currentitemlevel\v!continue {\dosetupitemgroupconstant[\currentitemlevel][#1]% \dosetupitemgroupvariable[\currentitemlevel][#2]}}% \def\docommand##1% \setitemmark resets \docommand {\doifnot{##1}{0}{\setitemmark{##1}}}% % \processcommalist[#1,\@@opsymbol]\docommand \processcommalist[#1]\docommand}% ** preset sequence or provided sequence % moved to here, after settings \ifnum\currentitemlevel=\plusone % NIEUW \doadaptleftskip {\getitemparameter1\c!margin}% \doadaptleftskip {\getitemparameter1\c!leftmargin}% \doadaptrightskip{\getitemparameter1\c!rightmargin}% \fi \dosetraggedcommand{\getitemparameter\currentitemlevel\c!align}\raggedcommand \dosetsymalign{\getitemparameter\currentitemlevel\c!symalign}% \doifsomething{\getitemparameter\currentitemlevel\c!indenting} {% is \expanded needed? \expanded{\setupindenting[\getitemparameter\currentitemlevel\c!indenting]}}% % \setitemlevel{#1}% moved to here \ifx\listitem\empty \setitemmark\@@opsymbol % ** default value \ifx\listitem\empty \edef\currentitemsymbol{\currentitemlevel}% ** fall back \fi \fi \ifconditional\autointrolistitem\ifnum\prevgraf<3 \settrue\introlistitem \fi\fi \ifconditional\paragraphlistitem \ifnum\currentitemlevel>\plusone \letitemparameter\currentitemlevel\c!inbetween\empty \fi \fi \ifconditional\packlistitem \letitemparameter\currentitemlevel\c!inbetween\empty \fi \doifinset\v!columns{#1}% {\ifinsidecolumns\else\ifcase\itemcolumndepth \global\itemcolumndepth\currentitemlevel\relax \itembeforecommand \processfirstactioninset [#1] [ \v!one=>\!!counta1\relax, \v!two=>\!!counta2\relax, \v!three=>\!!counta3\relax, \v!four=>\!!counta4\relax, \v!five=>\!!counta5\relax, \s!unknown=>\@EA\!!counta\getitemparameter\currentitemlevel\c!n]% \startcolumns [\c!n=\!!counta, % netter \??op\currentitemlevel\c!n \c!height=, \c!rule=\v!off, \c!balance=\v!yes, \c!align=\v!no]% \fi\fi}% \ifconditional\fittinglistitems \splititemtwopassdata\currentnoflists \ifdim\itemdataw sp>\zeropoint \expanded{\setitemparameter{\currentitemlevel}{\c!width}{\itemdataw sp}}% \fi \fi \calculatelistwidth\currentitemlevel{\dimen0}% \ifdim\dimen0>\zeropoint\relax \ifconditional\inlinelistitem\else \advance\leftskip \dimen0\relax \fi \fi \startcollectitems} % test / example % % \startnarrower[left] \startcolumns[n=3] \startitemize % \item \input ward \item \input ward \item \input ward % \stopitemize \stopcolumns\stopnarrower \blank % % \startnarrower[left] \startitemize[columns,three] % \item \input ward \item \input ward \item \input ward % \stopitemize \stopnarrower \blank % % \setupitemize[leftmargin=1.5em] \startitemize[columns,three] % \item \input ward \item \input ward \item \input ward % \stopitemize \blank \def\stopitemgroup {\stopcollectitems \ifconditional\textlistitem \removeunwantedspaces\space\ignorespaces \else \par \fi \dolistreference \ifconditional\firstlistitem \else \endgroup \fi % toegevoegd, eerste \som opent groep \ifnum\itemcolumndepth=\currentitemlevel\relax \stopcolumns \global\itemcolumndepth\zerocount \itemaftercommand \dontrechecknextindentation \else \ifnum\currentitemlevel=\plusone \doitembreak\allowbreak % toegevoegd \itemaftercommand % \getitemparameter\currentitemlevel\c!after % was: \dochecknextindentation\??oo, is now: \dochecknextindentation{\??op\currentitemgroup\currentitemlevel}% \else % nieuw, not yet nobreak handling \ifcase\autoitemgroupspacing \itemaftercommand \or \itemaftercommand \fi \dontrechecknextindentation \fi \fi % new test, needed in sidefloats (surfaced in volker's proceedings) \ifconditional\textlistitem % else forgotten \endgroup \global\advance\itemdepth-\itemincrement \xdef\currentitemlevel{\number\itemdepth}% \egroup \else \endgroup \global\advance\itemdepth-\itemincrement \xdef\currentitemlevel{\number\itemdepth}% \egroup \par \fi \dorechecknextindentation} \newtoks\itemgroupcommands \def\itemgroupitem {\doitemgroupitem} \def\itemgroupnoitem {\doitemgroupnoitem} \def\itemgroupbutton[#1]% {\gdef\doitemdestination{#1}% \itemgroupitem} \def\itemgroupdummy {\itemgroupsymbol{\strut}\strut} \def\itemgroupsubitem {\settrue\sublistitem \itemgroupitem} \def\itemgroupsymbol#1% {\def\symsymbol{\doitemattributes\currentitemlevel\c!symstyle\c!symcolor{#1}}% \settrue\symbollistitem \itemgroupitem} \def\itemgroupedge#1% {\itemgroupsymbol {\calculatelistwidth\currentitemlevel{\dimen0}% \hbox to \dimen0 {#1\hskip\getitemparameter\currentitemlevel\c!distance}}} \def\itemgrouphead {\settrue\headlistitem\doitemgrouphead} \def\itemgroupitems {\dosingleempty\doitemgroupitems} \def\doitemgroupitems[#1]% {\itemgroupedge {\dorecurse{0\getitemparameter\currentitemlevel\c!items}{\listitem\hss}% \unskip}} \def\itemgroupmargin#1% {\def\marsymbol {\llap {\doitemattributes\currentitemlevel\c!marstyle\c!marcolor{#1}% \hskip\leftskip\hskip\leftmargindistance}}% \itemgroupitem} \appendtoks \let\item \itemgroupitem \to \itemgroupcommands \appendtoks \let\noitem \itemgroupnoitem \to \itemgroupcommands \appendtoks \letvalue\v!item \itemgroupitem \to \itemgroupcommands \appendtoks \let\itm \itemgroupitem \to \itemgroupcommands \appendtoks \let\but \itemgroupbutton \to \itemgroupcommands \appendtoks \let\nop \itemgroupdummy \to \itemgroupcommands \appendtoks \letvalue\v!sub \itemgroupsubitem \to \itemgroupcommands \appendtoks \letvalue\v!sym \itemgroupsymbol \to \itemgroupcommands \appendtoks \letvalue\v!ran \itemgroupedge \to \itemgroupcommands \appendtoks \letvalue\v!head \itemgrouphead \to \itemgroupcommands \appendtoks \letvalue\v!its \itemgroupitems \to \itemgroupcommands \appendtoks \letvalue\v!mar \itemgroupmargin \to \itemgroupcommands % todo : \startitem .. \stopitem \appendtoks \letvalue{\e!start\v!item}\itemgroupitem \letvalue{\e!stop \v!item}\endgraf \to \itemgroupcommands \appendtoks \setvalue{\e!start\v!head}#1{\itemgrouphead#1\par}% \letvalue{\e!stop \v!head}\endgraf \to \itemgroupcommands % \startitemize % \starthead {xx} test \stophead % \startitem test \stopitem % \startitem test \stopitem % \stopitemize % Sometimes the user demands get pretty weird: % % \startitemize % \item test % \item test % \headsym{xx} test \par test % \stopitemize % aligned items % % \startitemize[n,fit,broad][itemalign=flushright] % \dorecurse{100}{\item The first item.} % \stopitemize % % \setupitemgroup[itemize][each][fit] % \setupitemgroup[itemize][each][distance=.5em,factor=1,itemalign=flushright] % % \startitemize[n] % \dorecurse{100}{\item The first item.} % \stopitemize \appendtoks \let\headsym \itemgroupheadsym \to \itemgroupcommands \def\itemgroupheadsym#1% {\def\symsymbol{\doitemattributes\currentitemlevel\c!symstyle\c!symcolor{#1}}% \settrue\symbollistitem \settrue\headlistitem \doitemgrouphead} % \defineitemgroup[gbitemize] % \setupitemgroup[gbitemize][each][headstyle=bold] % \startgbitemize % \txt{italian} some italians like this kind of cross||breed between % an itemize and a description % \txt{sicilians} i wonder how many sicilian mathematicians do a thesis % on the math involved in predicting the next big bang of the vulcano % \stopgbitemize \appendtoks \letvalue\v!txt \itemgrouptext \to \itemgroupcommands \newconditional\txtlistitem \setfalse\txtlistitem \def\itemgrouptext#1% {\def\symsymbol{\doitemattributes\currentitemlevel\c!headstyle\c!headcolor{#1}}% \settrue\symbollistitem \settrue\txtlistitem \itemgroupitem} \def\itembreak % -10 {\flushnotes\penalty-5\relax} \def\itemnobreak % +5 {\flushnotes\penalty+5\ifinsidecolumns\else00\fi\relax} \def\dodotxtitem {\scratchdimen\wd8 \advance \scratchdimen \getitemparameter\currentitemlevel\c!distance\relax \ifdim\scratchdimen>\dimen0 \advance\scratchdimen -\dimen0 \else \scratchdimen\zeropoint \fi \llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hss}}% was: \hfill \hskip\scratchdimen} \def\optimizelistitemsbreak {\ifcase\itemcolumndepth \ifconditional\optimizelistitem \ifcase \currentnofitems \else \ifnum\currentnofitems=\plusthree \ifnum\noflistelements>\plusone \doitembreak\itemnobreak \fi \else\ifnum\currentnofitems>\plusthree \ifnum\noflistelements=\plustwo \ifconditional\introlistitem \doitembreak\nobreak \else \doitembreak\itemnobreak \fi \else\ifnum\currentnofitems=\noflistelements\relax \doitembreak\itemnobreak \else\ifnum\noflistelements>\plustwo \doitembreak\itembreak \else \ifconditional\introlistitem\else\doitembreak\itembreak\fi \fi\fi\fi \fi\fi \fi \fi\fi} \def\dolistitem % evt aantal items opslaan per niveau, scheelt zoeken {\ifconditional\textlistitem % begin of item \else \par \fi % \ignorespaces \increment\noflistelements \optimizelistitemsbreak \noindent \setbox8\hbox {\ifconditional\headlistitem \ifconditional\symbollistitem \symsymbol \else \doitemattributes\currentitemlevel\c!headstyle\c!headcolor{\listitem}% \fi \else \ifconditional\symbollistitem \symsymbol % no attributes, why? \else \doitemattributes\currentitemlevel\c!style\c!color{\listitem}% \fi \fi}% \ifconditional\fittinglistitems \ifdim\wd8>\getitemparameter\currentitemlevel\c!maxwidth sp\relax \expanded{\global\noexpand\setitemparameter{\currentitemlevel}{\c!maxwidth}{\number\wd8}}% \fi \splititemtwopassdata\currentnoflists \ifdim\itemdataw sp>\zeropoint \setbox8\simplealignedbox{\getitemparameter\currentitemlevel\c!itemalign}{\itemdataw sp}{\box8}% \fi \fi \doifsomething\doitemdestination {\setbox8\hbox{\goto{\box8}[\doitemdestination]}}% \globallet\doitemdestination\empty \dimen2=\getitemparameter\currentitemlevel\c!width\relax % new, prevents loops when symbol is (not yet found) graphic \ht8=\strutheight \dp8=\strutdepth % so that content differs per run (esp mp graphics afterwards) \checkforrepeatedlistitem \ifdim\dimen2<\zeropoint\relax \llap{\ifconditional\sublistitem\llap{+}\fi\box8\hskip\leftmargindistance}% \else \ifdim\dimen2=\zeropoint\relax \calculatelistwidth1{\dimen0}% \else \calculatelistwidth\currentitemlevel{\dimen0}% \fi \ifconditional\textlistitem \hbox{\ifconditional\sublistitem+\fi\box8\hskip\interwordspace}\nobreak \else\ifconditional\inlinelistitem \hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hss}% was: \hfill \else\ifconditional\txtlistitem \dodotxtitem \else % todo: align+marge binnen de hbox % \llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hfill}}% \llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi \symalignleft \box8\hfil \hskip\getitemparameter\currentitemlevel\c!distance% T h }}% \fi\fi\fi \fi \forceunexpanded % needed for m conversion (\os) / i need to look into this \setevalue{\@@currentitemsymbol\currentitemlevel}% {\getvalue{\@@localitemsymbol\currentitemlevel}}% still problems with \uchar ? %{\noexpand\getvalue{\@@localitemsymbol\currentitemlevel}}% no, spoils subrefs \resetunexpanded \setfalse\headlistitem \setfalse\sublistitem \setfalse\symbollistitem \EveryPar{\ignorespaces}% needed ? \ignorespaces} % For Wolfgang Schuster % \startitemize[n,repeat] % \noitem \startitemize[a] \item Item 1.a. \item Item 1.b. \stopitemize % \noitem \startitemize[a] \item Item 2.a. \item Item 2.b. \stopitemize % \stopitemize \def\donolistitem % reduced \dolistitem {\increment\noflistelements \setbox8\hbox {\doitemattributes\currentitemlevel\c!style\c!color{\listitem}}% \checkforrepeatedlistitem \ignorespaces} \def\doitemgroupnoitem {\doadvanceitem\donolistitem} % For Frank Grieshaber and Mojca Miklavec: \newconditional\repeatlistitem \def\checkforrepeatedlistitem {\ifnum\currentitemlevel=\plusone \initializeboxstack{item}% \fi \ifconditional\repeatlistitem \savebox{item}{\currentitemlevel}{\hbox{\copy8}}% \setbox8\hbox to \wd8 {\setbox\scratchbox\hbox {\scratchcounter\currentitemlevel \advance\scratchcounter\minusone \dorecurse\scratchcounter{\foundbox{item}{\recurselevel}}}% \ifnum\currentitemlevel>\plusone \ifdim\wd\scratchbox>\zeropoint \hskip-\dimen2 \box\scratchbox \fi \fi \box8 }% \fi} % \startbuffer % \item % \startitemize[n] % \item item 1.1 % \item item 1.2 % \startitemize[n] \item item 1.2.1 \item item 1.2.2 \stopitemize % \item item 1.3 % \stopitemize % \item % \startitemize[n] \item item 2.1 \item item 2.2 \stopitemize % \item item 3 % \startitemize[n] \item item 3.1 \item item 3.2 \stopitemize % \item % \startitemize[n] \item item 4.1 \item item 4.2 \stopitemize % \stopbuffer % % \startitemize[n,repeat,6*broad,packed] \getbuffer \stopitemize \blank[3*big] % \startitemize[n,repeat,packed] \getbuffer \stopitemize \blank[3*big] % \setupitemize[each][atmargin][width=3em] % \startitemize[n,repeat,packed] \getbuffer \stopitemize \chardef\autoitemgroupspacing=2 % 0 = voor/na, 1=tussen als geen voor 2=(prev)tussen=old/normal \def\complexdoitemgroupitem[#1]% {\ifconditional\textlistitem % begin of item \else \par \fi % \ignorespaces \ifconditional\concatnextitem % new, concat \doitembreak\nobreak % new, concat \fi % new, concat \doadvanceitem \ifcase\itemcolumndepth \ifnum\noflistelements>0\relax % wrong, but why was this here in the first place, probably some % mistaken change when cleaning up: \doitembreak\nobreak \fi\fi \ifconditional\firstlistitem \setfalse\firstlistitem \begingroup \ifcase\currentitemlevel \or % 1 \ifcase\itemcolumndepth \ifconditional\introlistitem\doitembreak\nobreak\fi \itembeforecommand % \getitemparameter\currentitemlevel\c!before \ifconditional\introlistitem\doitembreak\nobreak\fi \fi \else % 2 en hoger \ifconditional\paragraphlistitem \else \let\previtemlevel\currentitemlevel \decrement\previtemlevel \ifcase\autoitemgroupspacing\relax % nieuw \itembeforecommand \or \doifelsenothing{\itembeforecommand} {\itembeforecommand} {\getitemparameter\previtemlevel\c!inbetween}% \else \getitemparameter\previtemlevel\c!inbetween % == itemlevel-1 \fi \fi \fi \else \ifconditional\textlistitem % was bugged: \inlinelistitem % \removeunwantedspaces\hskip\interwordspace\!!plus\emwidth\relax % new per 2006/10/20 \removeunwantedspaces\hskip\emwidth\!!plus\interwordstretch\!!minus\interwordshrink\relax % new per 2006/10/20 \else \iteminbetweencommand \fi \fi \ifconditional\concatnextitem % new, concat \vskip-\lastskip % new, concat \vskip-\lineheight % new, concat \nobreak % new, concat \fi % new, concat % \ignorespaces \dolistitem \relax \ifconditional\packlistitem \setupwhitespace[\v!none]% \fi \getitemparameter\currentitemlevel\c!inner \marsymbol \let\marsymbol\relax \doifsomething{#1} {\doifnot\itemreference\unknownitemreference {\bgroup \protectconversion \rawreference\s!lst{#1}\itemreference \egroup}}% \strut % added 11-08-99 \setfalse\concatnextitem % new, concat \nobreak % else problems with intext items \hskip\itemsignal % new, concat \getitemparameter\currentitemlevel\c!command} % \defaultitemcommand \def\defaultitemcommand {\EveryPar{\ignorespaces}% needed ? \ignorespaces} % For Giuseppe "Oblomov" Bilotta, inspired on a suggestion by Taco % Hoekwater. % % \def\MyItemCommand#1{{\bf#1}\quad} % \setupitemgroup[itemize][command=\MyItemCommand] % % \startitemize % \item {test} is this okay? % \item {test} is this okay? % \item {test} is this okay? % \stopitemize \def\complexitem[#1]#2\par % todo: no two pass data {\startitemgroup[#1]% \complexdoitemgroupitem[]\begstrut#2\endstrut\par \stopitemgroup} \definecomplexorsimpleempty\item \definecomplexorsimpleempty\doitemgroupitem \def\complexhead[#1]#2\par#3\par {\startitemgroup[#1]% \complexdoitemgrouphead[]\begstrut#2\endstrut\par\begstrut#3\endstrut\par \stopitemgroup} % \def\complexdoitemgrouphead[#1]#2\par% % beter in \complexdosom hangen met een if % {\ifconditional\firstlistitem\else\doitembreak\allowbreak\fi % \ifconditional\packlistitem\else\itembeforeheadcommand\fi % \ifconditional\firstlistitem\ifconditional\introlistitem\else\ifcase\currentitemlevel % incr in \complexdosom % \doitembreak\allowbreak % \fi\fi\fi % \complexdoitemgroupitem[#1]{\doitemattributes\currentitemlevel\c!headstyle\c!headcolor % {\ignorespaces#2}}% % \ifconditional\textlistitem % \removeunwantedspaces\space\ignorespaces % \else % \par % \fi % \doitembreak\nobreak % \ifconditional\packlistitem\else\itemafterheadcommand\fi % \doitembreak\nobreak % \noindentation} % % the next solution accepts \head test \type{x{x}x} test ... \def\dostartitemattributes#1{\dostartattributes{\??op\currentitemgroup#1}} \def\dostopitemattributes {\dostopattributes} \def\complexdoitemgrouphead[#1]% beter in \complexdosom hangen met een if {\ifconditional\firstlistitem\else\doitembreak\allowbreak\fi \ifconditional\packlistitem\else\itembeforeheadcommand\fi \ifconditional\firstlistitem\ifconditional\introlistitem\else\ifcase\currentitemlevel % incr in \complexdosom \doitembreak\allowbreak \fi\fi\fi \complexdoitemgroupitem[#1]% \bgroup \dostartitemattributes\currentitemlevel\c!headstyle\c!headcolor\empty \ignorespaces \let\par\enditemhead} % brrrr but simple anyway \def\enditemhead {\removeunwantedspaces \dostopitemattributes \egroup \ifconditional\textlistitem \space\ignorespaces \else \par \fi \doitembreak\nobreak \ifconditional\packlistitem\else\itemafterheadcommand\fi \doitembreak\nobreak \noindentation} \definecomplexorsimpleempty\head \definecomplexorsimpleempty\doitemgrouphead % \def\sym#1% % {\noindent % \begingroup % \setbox\scratchbox\hbox{\trialtypesettingtrue#1}% % \setbox\scratchbox\hbox % \ifdim\wd\scratchbox<1em to 1.5\else spread 1\fi em{#1\hfil}% % \hangindent\wd\scratchbox % \box\scratchbox % \endgroup % \ignorespaces} \def\sym#1% {\noindent \begingroup \setbox\scratchbox\hbox{\trialtypesettingtrue#1}% \setbox\scratchbox\hbox \ifdim\wd\scratchbox<1em to 1.5\else spread 1\fi em{#1\hfil}% \expanded{\box\scratchbox\endgroup\hangindent\the\wd\scratchbox}% \ignorespaces} \setupitemgroups % undocumented [\c!levels=6, \c!margin=\zeropoint, \c!leftmargin=\zeropoint, \c!rightmargin=\zeropoint, \c!indentnext=\v!yes, \c!width=1.5em, \c!factor=0, \c!distance=.5em, %\c!align=\v!normal, % definitely not \v!normal, see mails and \c!align=, % debug reports of David A & Patrick G on context list \c!symalign=, \c!color=, \c!indenting=, % untouched if empty \c!color=, \c!style=, % kan tzt weg \c!marstyle=\c!type, % \c! ??? \c!symstyle=, \c!headstyle=, \c!marcolor=, \c!symcolor=, \c!headcolor=, \c!beforehead=, \c!afterhead=\blank, \c!before=\blank, \c!inbetween=\blank, \c!after=\blank, \c!stopper=., \c!placestopper=\v!yes, \c!inner=, \c!n=2, \c!items=4, \c!lefttext=(, \c!righttext=), \c!start=1, \c!option=, \c!command=\defaultitemcommand, \c!symbol=\currentitemlevel] % \v!niveau \def\defineitemgroup {\dodoubleempty\dodefineitemgroup} \def\dodefineitemgroup[#1][#2]% {\doifsomething{#1} {\pushmacro\currentitemgroup \def\currentitemgroup{#1}% \setvalue{\e!start#1}{\startitemgroup[#1]}% \setvalue{\e!stop#1}{\stopitemgroup}% \setvalue{\e!setup#1\e!endsetup}{\setupitemgroup[#1]}% \getparameters[\??ig#1][\c!levels=3,#2]% \ifnum\getvalue{\??ig#1\c!levels}<\maxitemdepth\relax \setevalue{\??ig#1\c!levels}{\number\maxitemdepth}% \fi \dorecurse{\getvalue{\??ig#1\c!levels}}{\initializeitemgrouplevel\recurselevel}% \popmacro\currentitemgroup}} % efficient default itemize as well as upward compatible % definition: \defineitemgroup [\v!itemize] [\c!levels=6] % keep these, needed for styles: % \def\startitemize {\startitemgroup[\v!itemize]} % \def\stopitemize {\stopitemgroup} % \def\setupitemize {\setupitemgroup[\v!itemize]} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/grph-trf.mkii0000644000175000017500000005363414536300610024717 0ustar hillehille%D \module %D [ file=grph-fig, %D version=2006.08.26, % overhaul/split of 1997.03.31 core-fig %D title=\CONTEXT\ Graphic Macros, %D subtitle=Transformations, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D It may be that some functionality got lost. If it concerns %D defined features, let me know and it will be sorted out. \writestatus{loading}{ConTeXt Graphic Macros / Transformations} \unprotect %D Scaling: \unexpanded\def\scale{\dodoubleempty\doscalenextbox[\??xy]} % probably too many dimens / the width calculations can go % since we may assume scaling is available (was not true % long ago which is why we also calculate the width) \newdimen\scaleboxwidth \newdimen\scaleboxheight \newdimen\scaleboxdepth \newdimen\scaleboxsizex \newdimen\scaleboxsizey \newdimen\scaleboxoffsetx \newdimen\scaleboxoffsety \newdimen\scaleboxhsize \newdimen\scaleboxvsize % global \newdimen\scaleboxdimx \let\figwid \scaleboxdimx \newdimen\scaleboxdimy \let\fighei \scaleboxdimy \newcount\scaleboxscax \let\figxsca\scaleboxscax \newcount\scaleboxscay \let\figysca\scaleboxscay \newdimen\scaleboxoutervsize % we cannot manipulate any global vsize ! \let\finalscaleboxxscale \!!plusone \let\finalscaleboxyscale \!!plusone \let\finalscaleboxwidth \!!zeropoint \let\finalscaleboxheight \!!zeropoint \let\finalscaleboxxfactor\!!hundred \let\finalscaleboxyfactor\!!hundred \newconditional\scaleboxdone \def\doscalenextbox[#1][#2]% {\bgroup \getparameters [#1] [\c!scale=,\c!xscale=,\c!yscale=,\c!width=,\c!height=,\c!lines=, \c!factor=,\c!hfactor=,\c!wfactor=,\c!grid=,\c!sx=1,\c!sy=1, \c!equalwidth=,\c!equalheight=, \c!maxwidth=\scaleparameter\c!width,\c!maxheight=\scaleparameter\c!height, #2]% \dowithnextbox{\dodoscalenextbox{#1}\egroup}\hbox} \def\doscalebox#1% {\bgroup\dowithnextbox{\dodoscalenextbox{#1}\egroup}\hbox} \let\currentscaletag\??xy \def\scaleparameter#1% {\csname\currentscaletag#1\endcsname} \def\setscaleparameter#1#2% {\setvalue{\currentscaletag#1}{#2}} \def\dodoscalenextbox#1% {\edef\currentscaletag{#1}% \doif{\scaleparameter\c!depth}\v!no{\setbox\nextbox\hbox{\raise\nextboxdp\box\nextbox}}% new \forgetall \dontshowcomposition \dontcomplain \doscaleboxcalculations \doscaleboxindeed \doscaleboxposition \flushnextbox} \def\doscaleboxindeed {\ifconditional\scaleboxdone \scaleboxwidth \finalscaleboxxscale\nextboxwd \scaleboxheight\finalscaleboxyscale\nextboxht \scaleboxdepth \finalscaleboxyscale\nextboxdp \setbox\nextbox\hbox {\dostartscaling \finalscaleboxxscale \finalscaleboxyscale \smashedbox\nextbox \dostopscaling}% \nextboxwd\scaleboxwidth \nextboxht\scaleboxheight \nextboxdp\scaleboxdepth \fi} \def\doscaleboxcalculations {\setfalse\scaleboxdone % initial final value \global\let\finalscaleboxxscale \!!plusone \global\let\finalscaleboxyscale \!!plusone \xdef \finalscaleboxwidth {\the\nextboxwd}% \xdef \finalscaleboxheight{\the\nextboxht}% \global\let\finalscaleboxxfactor\!!hundred \global\let\finalscaleboxyfactor\!!hundred \ifdim\nextboxht>\zeropoint \ifdim\nextboxwd>\zeropoint \edef\scaleboxstampa % slow way [can be combined] {\scaleparameter\c!scale \scaleparameter\c!xscale \scaleparameter\c!yscale \scaleparameter\c!factor\scaleparameter\c!wfactor\scaleparameter\c!hfactor \scaleparameter\c!lines \scaleparameter\c!width \scaleparameter\c!height}% \edef\scaleboxstampb % fast way [just sx/sy] {\scaleparameter\c!sx \scaleparameter\c!sy}% \edef\scaleboxstampc {11}% \ifx\scaleboxstampa\empty \ifx\scaleboxstampb\scaleboxstampc % no scaling, but still check; new, gone again % wrong: scaled proportionally as side effect % \doifsomething{\scaleparameter\c!maxwidth }{\letvalue{\currentscaletag\c!factor}\v!fit}% % \doifsomething{\scaleparameter\c!maxheight}{\letvalue{\currentscaletag\c!factor}\v!fit}% \insidefloattrue % trick \dodoscaleboxcalculations \else \dosetscalboxsxsy \nodoscaleboxcalculations \fi \else \ifx\scaleboxstampb\empty % no need to check further \else \dosetscalboxsxsy \fi \dodoscaleboxcalculations \fi \fi \fi} \def\dosetscalboxsxsy {\ifdim\scaleparameter\c!sx\onepoint=\onepoint\else \setevalue{\currentscaletag\c!width }{\the\dimexpr\scaleparameter\c!sx\wd\nextbox\relax}% \fi \ifdim\scaleparameter\c!sy\onepoint=\onepoint\else \setevalue{\currentscaletag\c!height}{\the\dimexpr\scaleparameter\c!sy\ht\nextbox\relax}% \fi} \def\doscaleboxrounding#1.#2\relax{#1} \def\scaleboxrounding#1% {\@EA\@EA\@EA\doscaleboxrounding\@EA\WITHOUTPT\the\dimexpr#1\points*100+32768sp\relax.\relax} \def\nodoscaleboxcalculations {\settrue\scaleboxdone \xdef\finalscaleboxwidth {\the\dimexpr\scaleparameter\c!sx\wd\nextbox\relax}% \xdef\finalscaleboxheight {\the\dimexpr\scaleparameter\c!sy\ht\nextbox\relax}% \xdef\finalscaleboxxscale {\scaleparameter\c!sx}% \xdef\finalscaleboxyscale {\scaleparameter\c!sy}% \ifx\finalscaleboxxscale\empty\let\finalscaleboxxscale\!!plusone\fi \ifx\finalscaleboxyscale\empty\let\finalscaleboxyscale\!!plusone\fi \xdef\finalscaleboxxfactor{\scaleboxrounding\finalscaleboxxscale}% \xdef\finalscaleboxyfactor{\scaleboxrounding\finalscaleboxyscale}} \def\dodoscaleboxcalculations {\settrue\scaleboxdone % initial values \scaleboxoffsetx\zeropoint \scaleboxoffsety\zeropoint \scaleboxsizex \nextboxwd \scaleboxsizey \nextboxht % alleen ht wordt geschaald! % final values \global\scaleboxdimx \zeropoint % see note * (core-fig) \global\scaleboxdimy \zeropoint % see note * (core-fig) \scaleboxscax \plusone % see note * (core-fig) \scaleboxscay \plusone % see note * (core-fig) % preparations \setfalse\scaleboxscalingdone \checkscaleboxsettings % calculators % beware, they operate in sequence, and calculate missing dimensions / messy %setscaleboxbynature % when? needed? \ifconditional\scaleboxscalingdone\else\setscaleboxbyfactor \fi \ifconditional\scaleboxscalingdone\else\setscaleboxbyscale \fi \ifconditional\scaleboxscalingdone\else\setscaleboxbydimension\fi % finalizers / to be done (no longer needed this way, clean up) \convertscaleboxinsertscale\scaleboxhsize\figx\scaleboxscax\scax \convertscaleboxinsertscale\scaleboxvsize\figy\scaleboxscay\scay % used in actual scaling \xdef\finalscaleboxwidth {\the\scaleboxdimx}% \xdef\finalscaleboxheight {\the\scaleboxdimy}% \xdef\finalscaleboxxfactor{\the\scaleboxscax}% \xdef\finalscaleboxyfactor{\the\scaleboxscay}% \xdef\finalscaleboxxscale {\withoutpt\the\dimexpr\scax\points/\plushundred\relax}% \xdef\finalscaleboxyscale {\withoutpt\the\dimexpr\scay\points/\plushundred\relax}} \setvalue{\??xy:\c!grid:\v!yes }{\getnoflines \fighei\setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}} \setvalue{\??xy:\c!grid:\v!height }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+\strutdepth\relax}} \setvalue{\??xy:\c!grid:\v!depth }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight-\strutdepth\relax}} \setvalue{\??xy:\c!grid:\v!halfline}{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+.5\lineheight\relax}} \setvalue{\??xy:\c!grid:\v!fit }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}} \letvalue{\??xy:\c!grid:\empty }\donothing \def\checkscaleboxsettings {\doifsomething{\scaleparameter\c!maxwidth }% can be defined in itself {\setevalue{\currentscaletag\c!maxwidth }{\the\dimexpr\scaleparameter\c!maxwidth \relax}}% \doifsomething{\scaleparameter\c!maxheight}% can be defined in itself {\setevalue{\currentscaletag\c!maxheight}{\the\dimexpr\scaleparameter\c!maxheight\relax}}% \doifsomething{\scaleparameter\c!lines} {\setevalue{\currentscaletag\c!height}{\the\dimexpr\scaleparameter\c!lines\lineheight\relax}}% \getvalue{\??xy:\c!grid:\scaleparameter\c!grid}} \def\setscaleboxbynature % where ! ! ! ! ! {\doifsomething{\scaleparameter\c!width }{\global\scaleboxdimx\scaleparameter\c!width }% \doifsomething{\scaleparameter\c!height}{\global\scaleboxdimy\scaleparameter\c!height}% \doifsomething{\scaleparameter\c!scale } {\scaleboxscax\scaleparameter\c!scale \scaleboxscay\scaleparameter\c!scale }% \doifsomething{\scaleparameter\c!xscale} {\scaleboxscax\scaleparameter\c!xscale}% \doifsomething{\scaleparameter\c!yscale} {\scaleboxscay\scaleparameter\c!yscale}} % oeps, was x % \defineexternalfigure[width-6][factor=auto,maxwidth=\textheight,maxheight=\textwidth] % \defineexternalfigure[width-7][factor=auto,maxwidth=\textwidth,maxheight=\textheight] % \placefigure{none}{\rotate[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-6]}} \page % \placefigure{none}{\framed[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-7]}} \def\setscaleboxbyfactor {\doifinsetelse{\scaleparameter\c!factor}{\v!max,\v!fit,\v!broad,\v!auto} {\doapplyscaleboxsize \ifdim\scaleboxsizex>\scaleboxsizey \docalculatescaleboxnorm \scaleboxdimx\c!factor\c!maxwidth\hsize\scaleboxhsize \docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey \else \docalculatescaleboxnorm \scaleboxdimy\c!factor\c!maxheight\scaleboxoutervsize\scaleboxvsize \docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex \fi \donetrue} {\doifinsetelse{\scaleparameter\c!hfactor}{\v!max,\v!fit,\v!broad,\v!auto} {\doapplyscaleboxsize \docalculatescaleboxnorm \scaleboxdimy\c!hfactor\c!maxheight\scaleboxoutervsize\scaleboxvsize \docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex \donetrue} {\doifinsetelse{\scaleparameter\c!wfactor}{\v!max,\v!fit,\v!broad,\v!auto} {\doapplyscaleboxsize \docalculatescaleboxnorm \scaleboxdimx\c!wfactor\c!maxwidth\hsize\scaleboxhsize \docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey \donetrue} {\docalculatescaleboxnorm\scaleboxdimy\c!factor \c!height \textheight\scaleboxvsize \docalculatescaleboxnorm\scaleboxdimy\c!hfactor\c!height \textheight\scaleboxvsize \docalculatescaleboxnorm\scaleboxdimx\c!wfactor\c!width \hsize \hsize \donefalse}}}% \ifdone \settrue\scaleboxscalingdone \ifdim\scaleboxdimx>\scaleboxhsize \global\scaleboxdimy\zeropoint \global\scaleboxdimx\scaleboxhsize \else\ifdim\scaleboxdimy>\scaleboxvsize \global\scaleboxdimx\zeropoint \global\scaleboxdimy\scaleboxvsize \fi\fi \setscaleboxbydimension \fi} \def\setscaleboxbyscale {\doifsomething{\scaleparameter\c!scale\scaleparameter\c!xscale\scaleparameter\c!yscale} {\doapplyscaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax\c!xscale \doapplyscaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay\c!yscale \global\scaleboxdimx\zeropoint \global\scaleboxdimy\zeropoint \doifelsenothing{\scaleparameter\c!maxwidth} {\doifsomething{\scaleparameter\c!maxheight} {\ifdim\scaleboxsizey>\scaleparameter\c!maxheight\relax \global\scaleboxdimy\scaleparameter\c!maxheight \fi}} {\ifdim\scaleboxsizex>\scaleparameter\c!maxwidth\relax \global\scaleboxdimx\scaleparameter\c!maxwidth \fi}}} \def\setscaleboxbydimension {\ifdim\scaleboxdimx>\zeropoint \ifdim\scaleboxdimy>\zeropoint \dosetdimensionscaleboxsize {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}% {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}% {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}% \else \dosetdimensionscaleboxsize {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}% {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}% {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}% \fi \else \ifdim\scaleboxdimy>\zeropoint \dosetdimensionscaleboxsize {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}% {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}% {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}% \else \dosetdimensionscaleboxsize {\doapplyscaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax\c!xscale \doapplyscaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay\c!yscale}% {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}% {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}% \fi \fi} \def\dosetdimensionscaleboxsize#1#2#3% {#1\relax \doifsomething{\scaleparameter\c!maxwidth} {\ifdim\scaleboxdimx>\scaleparameter\c!maxwidth\relax \global\scaleboxdimx\scaleparameter\c!maxwidth #2\relax \fi}% \doifsomething{\scaleparameter\c!maxheight} {\ifdim\scaleboxdimy>\scaleparameter\c!maxheight\relax \global\scaleboxdimy\scaleparameter\c!maxheight #3\relax \fi}} \def\docalculatescaleboxnorm#1#2#3#4#5% 2 3 parameters (dodo:speedup) {\processaction [\scaleparameter#2] [ \v!max=>\global#1\dimexpr#4\relax, \v!fit=>\global#1\dimexpr#5\relax, \v!broad=>\global#1\dimexpr#5-4\@@exbodyfont\relax, \v!auto=>\doifsomething{\scaleparameter#3}{\global#1\dimexpr\scaleparameter#3\relax}, \s!default=>\doifsomething{\scaleparameter#3}{\global#1\dimexpr\scaleparameter#3\relax}, \s!unknown=>\global#1\dimexpr\scaleparameter#2\dimexpr\@@exbodyfont/10\relax\relax]} \def\docalculatescaleboxscales#1#2#3#4% {\scratchdimen\dimexpr#1/\dimexpr#2/\plusthousand\relax\relax \scaleboxscax\scratchdimen \scaleboxscay\scratchdimen #3\dimexpr\scaleboxscax\dimexpr#4/\plusthousand\relax\relax} \def\docalculatescaleboxscale#1#2#3% {#3\dimexpr#1/\dimexpr#2/\plusthousand\relax\relax} \def\doapplyscaleboxscale#1#2#3#4% $4 = parameter / scale can be empty {\ifcase0\scaleparameter#4\relax \ifcase0\scaleparameter\c!scale\relax #3=\plusthousand \else #3=\scaleparameter\c!scale \fi \else #3=\scaleparameter#4% \fi \relax % important ! still ? \global#1\ifnum#3=\plusthousand#2\else\dimexpr#3\dimexpr#2/\plusthousand\relax\relax\fi \relax} \def\doapplyscaleboxsize {\doifelsenothing{\scaleparameter\c!maxheight} {\scaleboxoutervsize\textheight \ifinner \scaleboxoutervsize \vsize % \textheight =\vsize \scratchdimen\vsize % \scratchdimen=\textheight \else\ifinsidefloat \scaleboxoutervsize \vsize % \textheight =\vsize \scratchdimen\vsize % \scratchdimen=\textheight \else\ifinpagebody \scaleboxoutervsize \vsize % \textheight =\vsize \scratchdimen\vsize % \scratchdimen=\textheight \else % hm, there should be an option to force this \ifdim\pagegoal<\maxdimen \ifdim\pagetotal<\pagegoal \scratchdimen\pagegoal \advance\scratchdimen -\pagetotal \else \scratchdimen\scaleboxoutervsize % \textheight \fi \else \scratchdimen\scaleboxoutervsize % \textheight \fi \fi\fi\fi} {\scratchdimen\scaleparameter\c!maxheight \scaleboxoutervsize\scratchdimen}% \doifelsenothing{\scaleparameter\c!height} {\scaleboxvsize\scratchdimen} {\scaleboxvsize\scaleparameter\c!height}% \doifelsenothing{\scaleparameter\c!width} {\scaleboxhsize\hsize} {\scaleboxhsize\scaleparameter\c!width}} \def\convertscaleboxinsertscale#1#2#3#4% {\scratchdimen#1\relax \ifnum#3=\plusthousand % == scale 1 \else % better 1000 100 10 ranges, evt round 2sp \divide\scratchdimen \plusthousand \multiply\scratchdimen #3\relax \fi \scratchdimen-\scratchdimen % beter hier - dan in driver \edef#2{\the\scratchdimen}% \scratchcounter#3\relax \ifnum\scratchcounter>\plustenthousand \divide\scratchcounter\!!ten \scratchdimen\the\scratchcounter\points \else \scratchdimen\the\scratchcounter\points \divide\scratchdimen\!!ten \fi \edef#4{\withoutpt\the\scratchdimen}} % \startcombination % {\externalfigure[cow.pdf] [frame=on,height=3cm,equalwidth=6cm]} {} % {\externalfigure[mill.png][frame=on,height=3cm,equalwidth=6cm]} {} % \stopcombination \def\doscaleboxposition {\doifsomething{\scaleparameter\c!equalwidth} {\scratchdimen\scaleparameter\c!equalwidth\relax \ifdim\wd\nextbox<\scratchdimen \setbox\nextbox\hbox to \scratchdimen{\hss\box\nextbox\hss}% \fi}% \doifsomething{\scaleparameter\c!equalheight} {\scratchdimen\scaleparameter\c!equalheight\relax \ifdim\ht\nextbox<\scratchdimen \setbox\nextbox\vbox to \scratchdimen{\vss\box\nextbox\vss}% \fi}} %D \macros %D {clip, setupclipping} %D %D Although related to figures, clipping can be applied to %D arbitrary content. We can use \METAPOST\ to provide a non %D rectangular clipping path. %D %D \starttyping %D \startMPclip{fun} %D clip currentpicture to fullcircle %D shifted (.5,.5) xscaled \width yscaled \height ; %D \stopMPclip %D \stoptyping %D %D We get a rectangular piece of the figure when we say: %D %D \starttyping %D \clip[x=2,y=1]{\externalfigure[photo]} %D \stoptyping %D %D When we want to clip to the oval we defined a few lines ago, %D we say: %D %D \starttyping %D \clip[nx=1,ny=1,x=1,y=1,mp=fun]{\externalfigure[photo]} %D \stoptyping %D %D The general characteristics of clipping can be set up with %D %D \showsetup{setupclipping} \def\setupclipping {\dodoubleargument\getparameters[\??cp]} \def\clip {\dosingleempty\doclip} \def\doclip[#1]% nb top->bottom left->right {\bgroup \getparameters[\??cp][#1]% \doifelse\@@cpstate\v!start\dodoclip{\egroup\hbox}} \def\dodoclip {\dowithnextbox {\ifdim\@@cpwidth>\zeropoint \!!dimena\@@cpwidth \!!dimenc\@@cphoffset \else \!!dimena\nextboxwd \divide\!!dimena \@@cpnx \!!dimenc\@@cpx\!!dimena \advance\!!dimenc -\!!dimena \!!dimena\@@cpsx\!!dimena \fi \relax % sure \ifdim\@@cpheight>\zeropoint \!!dimenb\@@cpheight \!!dimend\nextboxht \advance\!!dimend -\@@cpvoffset \advance\!!dimend -\!!dimenb \else \!!dimenb\nextboxht \divide\!!dimenb \@@cpny \!!dimend-\@@cpy\!!dimenb \advance\!!dimend -\@@cpsy\!!dimenb \advance\!!dimend \!!dimenb \!!dimenb\@@cpsy\!!dimenb \advance\!!dimend \nextboxht % dimend ! \fi \setbox\nextbox\hbox % old {\advance\!!dimenc -\@@cpleftoffset % new ! \advance\!!dimend -\@@cpbottomoffset % new ! % - added \hskip-\!!dimenc\lower\!!dimend\flushnextbox}% old \nextboxwd\zeropoint \nextboxht\zeropoint \nextboxdp\zeropoint \setbox\nextbox\hbox {\advance\!!dimena \@@cpleftoffset % new ! \advance\!!dimena \@@cprightoffset % new ! \advance\!!dimenb \@@cpbottomoffset % new ! \advance\!!dimenb \@@cptopoffset % new ! \dostartclipping\@@cpmp\!!dimena\!!dimenb % old \flushnextbox \dostopclipping}% \setbox\nextbox\hbox % new ! {\!!dimena-\@@cpleftoffset % new ! \!!dimenb \@@cpbottomoffset % new ! % - removed \hskip\!!dimena\lower\!!dimenb\flushnextbox}% new ! \nextboxwd\!!dimena \nextboxht\!!dimenb \nextboxdp\zeropoint \flushnextbox \egroup}% \hbox} \setupclipping [\c!state=\v!start, \c!n=1, % was 2 \c!nx=\@@cpn,\c!x=1,\c!sx=1, \c!ny=\@@cpn,\c!y=1,\c!sy=1, \c!width=\!!zeropoint, \c!height=\!!zeropoint, \c!hoffset=\!!zeropoint, \c!voffset=\!!zeropoint, \c!offset=\zeropoint, \c!leftoffset=\@@cpoffset, % \zeropoint, \c!rightoffset=\@@cpoffset, % \zeropoint, \c!topoffset=\@@cpoffset, % \zeropoint, \c!bottomoffset=\@@cpoffset,% \zeropoint, \c!mp=] %D \startbuffer %D \startuseMPgraphic{test} %D path p ; p := fullcircle scaled 4cm ; %D draw p withpen pencircle scaled 1cm ; %D setbounds currentpicture to boundingbox p ; %D \stopuseMPgraphic %D %D \hbox to \hsize \bgroup %D \hss %D \ruledhbox{\useMPgraphic{test}}% %D \hss %D \ruledhbox{\clip{\useMPgraphic{test}}}% %D \hss %D \egroup %D \stopbuffer %D %D \typebuffer \getbuffer %D Mirroring. \def\domirrorbox % \hbox/\vbox/\vtop {\bgroup \dowithnextbox {\dontshowcomposition \scratchdimen\nextboxwd % better use an hbox (if no \forgetall, leftskip etc may creep in) %\setbox\nextbox\vbox{\forgetall\dostartmirroring\hskip-\nextboxwd\flushnextbox\dostopmirroring}% \setbox\nextbox\hbox{\dostartmirroring\hskip-\nextboxwd\flushnextbox\dostopmirroring}% \nextboxwd\scratchdimen \flushnextbox \egroup}} \unexpanded\def\mirror {\domirrorbox\hbox} % \setbox0=\hbox{gans} % \ruledhbox{\copy0 \schaal[sx=2,sy=2]{\copy0}} % \mirror{\ruledhbox{\copy0 \schaal{\box0}}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-en.mkii0000644000175000017500000000102414536300610024513 0ustar hillehille%D \module %D [ file=cont-en, %D version=1997.08.19, %D title=\CONTEXT, %D subtitle=\CONTEXT\ English Format Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \catcode`\{=1 \catcode`\}=2 \def\defaultinterface {english} \def\defaultlanguagetag{en} \input context.mkii \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-com.mkii0000644000175000017500000000156414536300610024661 0ustar hillehille%D \module %D [ file=enco-com, %D version=2000.20.12, % split from base file %D title=\CONTEXT\ Encoding Macros, %D subtitle=Composed Characters Commands, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Here we map some \quote {short} names onto the more %D verbose glyph names. \def\AA{\Aring} \def\aa{\aring} \def\AE{\AEligature} \def\ae{\aeligature} \def\CC{\Ccedilla} \def\cc{\ccedilla} \def \L{\Lstroke} \def \l{\lstroke} \def \O{\Ostroke} \def \o{\ostroke} \def\OE{\OEligature} \def\oe{\oeligature} \def\SZ{\Ssharp} \def\sz{\ssharp} \def\SS{\ssharp} \def\IJ{\IJligature} \def\ij{\ijligature} \def \i{\dotlessi} \def \j{\dotlessj} \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spac-gen.mkii0000644000175000017500000041464514536300610024666 0ustar hillehille%D \module %D [ file=core-spa, %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=Spacing, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Spacing} % to be sorted out: dependencies, order of initialization / also some dutch code here \unprotect % some will move to core-var \newif \ifgridsnapping \newif \iffuzzyvskip \let \fuzzyvskip \gobbleoneargument \let \removelastfuzzyvskip \relax \let \startbaselinecorrection \relax \let \stopbaselinecorrection \relax \let \baselinecorrection \relax \let \offbaselinecorrection \relax \appendtoks \spacing 1\to \everybodyfont \appendtoks \presetnormallineheight \to \everybodyfont \appendtoks \setnormalbaselines \to \everybodyfont % check if redundant \appendtoks \setstrut \to \everybodyfont % check if redundant \appendtoks \settopskip \to \everybodyfont \appendtoks \setmaxdepth \to \everybodyfont %appendtoks \spacing 1\to \everybodyfont \appendtoks \simplesetupindenting \to \everybodyfont \appendtoks \simplesetupblank \to \everybodyfont \appendtoks \simplesetupwhitespace \to \everybodyfont %appendtoks \checknotes \to \everybodyfont % not \appendtoks \simplesetupspacing \to \everybodyfont % nieuw \appendtoks \setrelativeinterlinespace \to \everybodyfont \appendtoks \updateraggedskips \to \everyfontswitch % under test \prependtoks \let\par\endgraf \to \everypagebody % see \fillinline \appendtoks \simplesetupspacing \to \everydefinedfont % if you want to hyphenate the first word of a paragraph ... \appendtoks\hskip0pt\to\everypar \def\stelfactorenin {\simplesetupwhitespace \simplesetupblank \settopskip \setmaxdepth} \def\softbreak {\relax\ifhmode\hskip\parfillskip\break\fi} \let\poplastnode\relax \def\pushlastnode {\ifdim\lastskip=\zeropoint \ifnum\lastpenalty=\zerocount \ifnum\lastkern=\zerocount \let\poplastnode\relax \else \edef\poplastnode{\kern\the\lastkern\relax}\kern-\lastkern % untested \fi \else \edef\poplastnode{\penalty\the\lastpenalty\relax}\nobreak % untested \fi \else \edef\poplastnode{\vskip\the\lastskip\relax}\vskip-\lastskip % \removelastskip \fi} %D The dreadful sequence \type {\bgroup} \unknown\ %D \type {\carryoverpar} \unknown\ \type {\egroup} is needed %D when for instance sidefloats are used in combination with %D something that starts with a group. This is because %D otherwise the indentation as set (by the output routine) %D inside the group are forgotten afterwards. (I must %D not forget its existence). \global\let\carriedoverpar\relax \def\carryoverpar#1% {\expanded % \scratchtoks{#1}% {\noexpand#1% \the\scratchtoks \hangindent\the\hangindent \hangafter \the\hangafter \parskip \the\parskip \leftskip \the\leftskip \rightskip \the\rightskip}} %D A quick way to determine left|/|middle|/|right states %D (experimental). \setvalue{\??as\v!left }{0} \setvalue{\??as\v!middle}{1} \setvalue{\??as\v!right }{2} \def\setalignmentswitch#1% {\chardef\alignmentswitch0\csname\??as#1\endcsname\relax} %D There are two ways to influence the interline spacing. The %D most general and often most consistent way is using %D %D \showsetup{setupinterlinespace} %D %D For instance %D %D \starttyping %D \setupinterlinespace[line=2.8ex] %D \stoptyping %D %D This setting adapts itself to the bodyfontsize, while for %D instance saying %D %D \starttyping %D \setupinterlinespace[line=12pt] %D \stoptyping %D %D sets things fixed for all sizes, which is definitely not %D what we want. Therefore one can also say: %D %D \starttyping %D \definebodyfontenvironment[9pt][interlinespace=11pt] %D \stoptyping %D %D One can still use \type{\setupinterlinespace} (without %D arguments) to set the interline space according to the %D current font, e.g. a \type{\bfa}. \newif\iflocalinterlinespace % font-ini \ifx\bodyfontinterlinespecs\undefined \let\bodyfontinterlinespecs\empty \let\bodyfontinterlinespace\empty \fi \def\presetnormallineheight {\edef\normallineheight{\@@itline}% % done elsewhere : \spacing\!!plusone % new per 10/08/2004, else problems in otr / !! needed \iflocalinterlinespace \else \doifdefined\bodyfontinterlinespecs {\doifsomething\bodyfontinterlinespace {\edef\normallineheight{\bodyfontinterlinespace}}}% \fi} \def\setupspecifiedinterlinespace[#1]% {\getparameters[\??it][#1]% \scratchdimen0\@@itheight\points \advance\scratchdimen 0\@@itdepth\points \ifdim\scratchdimen>\onepoint \showmessage\m!layouts{10}{\@@itheight,\@@itdepth}% \let\@@itheight\strutheightfactor \let\@@itdepth \strutdepthfactor \else \let\strutheightfactor\@@itheight \let\strutdepthfactor \@@itdepth \fi \let\minimumstrutheight \@@itminheight \let\minimumstrutdepth \@@itmindepth \let\minimumlinedistance\@@itdistance \let\normallineheight \@@itline % let ! ! ! ! ! ivm ex \doifelse\@@ittop\v!height % new, topskip does more bad than good {\let\topskipfactor \@@itheight} {\let\topskipfactor \@@ittop }% \let\maxdepthfactor \@@itbottom \let\baselinegluefactor \@@itstretch \setfontparameters % redundant, can be \setstrut, test first \updateraggedskips} % yes indeed % \let\currentrelativeinterlinespace\empty % % \def\setuprelativeinterlinespace[#1]% % {\processallactionsinset % [#1] % [ \v!on=>\oninterlineskip, % \v!off=>\offinterlineskip, % \v!reset=>\let\currentrelativeinterlinespace\empty % \setfontparameters,% just \setstrut, test first % \s!unknown=>\assignvalue{#1}\currentrelativeinterlinespace{1.00}{1.25}{1.50}% % \spacing\currentrelativeinterlinespace]} % \setupinterlinespace[big] \switchtobodyfont[11pt] -> forgotten % \setupinterlinespace[auto,big] \switchtobodyfont[11pt] -> remembered \let\currentrelativeinterlinespace\empty \def\setuprelativeinterlinespace[#1]% {\processallactionsinset [#1] [ \v!on=>\oninterlineskip, \v!off=>\offinterlineskip, \v!reset=>\let\currentrelativeinterlinespace\empty \let\setrelativeinterlinespace\relax \setfontparameters, \v!auto=>\let\setrelativeinterlinespace\dosetrelativeinterlinespace, \s!unknown=>\assignvalue\commalistelement\currentrelativeinterlinespace{1.00}{1.25}{1.50}% \spacing\currentrelativeinterlinespace]} \def\dosetrelativeinterlinespace {\ifx\currentrelativeinterlinespace\empty\else \spacing\currentrelativeinterlinespace \fi} \let\setrelativeinterlinespace\relax % \appendtoks \setrelativeinterlinespace \to \everybodyfont \def\complexsetupinterlinespace[#1]% \commalistelement ipv #1 {\doifassignmentelse{#1}\setupspecifiedinterlinespace\setuprelativeinterlinespace[#1]} \def\setuplocalinterlinespace[#1]% {\localinterlinespacetrue \setupinterlinespace[#1]% \localinterlinespacefalse} \def\simplesetupinterlinespace {\localinterlinespacetrue \setfontparameters \updateraggedskips % funny one here \localinterlinespacefalse} \definecomplexorsimple\setupinterlinespace % In earlier versions \type{\bigskipamount} was % \type{\ht\strutbox} and the stretch was plus or minus % \type{.4\dp\strutbox}. Don't ask me why. The most recent % implementation is based on a user supplied distance, which % is by default \type{.75\normalskipamount} where % \type{\normalskipamount} equals the current baseline % distance. % \lineskiplimit = -\maxdimen -> freezes baselineskip % can be conditionals \newif\ifblanknowhite \blanknowhitefalse \newif\ifblankindeed \blankindeedfalse \newif\ifblankreset \blankresetfalse \newif\ifblankdisable \blankdisablefalse \newif\ifblankflexible \blankflexibletrue \newif\ifblankouter \newif\ifblankforce \newif\ifblankgoback \newskip\blankskip \blankskip=\bigskipamount \newskip\blankskipamount \def\skipfactor {.75} \def\skipgluefactor{.25} \def\normalskipamount {\openlineheight \ifgridsnapping \else \ifblankflexible \!!plus \skipgluefactor\openlineheight \!!minus\skipgluefactor\openlineheight \fi \fi \relax} \def\linedistance {\normalskipamount} \def\appliedblankskip{\skipfactor\linedistance} \def\lastblankskip {\blankskip} \def\currentblank {\v!big} \def\oldprevdepth {\prevdepth} \def\newprevdepth {-1001pt} \def\mindimen {1sp} % was: 0.00002pt \newif\iflocalblankfixed \newif\iflocalblankflexible \def\geenblanko{\removelastskip} % will become obsolete %%%% pas op, wordt ook in core-pos gebruikt \def\doassignsomeskip#1\to#2% ook nog \v!halfline+fuzzysnap {\doifelse{#1}\v!line {#2\openlineheight} {\ifgridsnapping \assigndimension{#1}{#2}{.25\openlineheight}{.5\openlineheight}\openlineheight \else \assigndimension{#1}{#2}\smallskipamount\medskipamount\bigskipamount \fi}% \relax} % \relax is really needed, else we may loose stretch due to lookahead; somehow % this bug was introduced a while ago but somehow went unnoticed; fixed 2/7/2008 \def\addblankskip#1#2#3{\global\advance\blankskip#1\ifgridsnapping#3\else#2\fi\relax} \def\defineblankmethod[#1]#2{\setvalue{\??bo\??bo#1}{#2}} \defineblankmethod [\v!big] {\addblankskip+\bigskipamount \openlineheight} \defineblankmethod [-\v!big] {\addblankskip-\bigskipamount \openlineheight} \defineblankmethod [\v!medium] {\addblankskip+\medskipamount {.5\openlineheight}} \defineblankmethod [-\v!medium] {\addblankskip-\medskipamount {.5\openlineheight}} \defineblankmethod [\v!small] {\addblankskip+\smallskipamount{.25\openlineheight}} \defineblankmethod [-\v!small] {\addblankskip-\smallskipamount{.25\openlineheight}} \defineblankmethod [\v!white] {\addblankskip+\parskip \openlineheight} \defineblankmethod [-\v!white] {\addblankskip-\parskip \openlineheight} \defineblankmethod [\v!line] {\addblankskip+\openlineheight \openlineheight} \defineblankmethod [-\v!line] {\addblankskip-\openlineheight \openlineheight} \defineblankmethod [\v!formula] {\global\advance\blankskip\medskipamount} \defineblankmethod [\v!nowhite] {\global\blanknowhitetrue} \defineblankmethod [\v!disable] {\global\blankdisabletrue} \defineblankmethod [\v!force] {\global\blankforcetrue} \defineblankmethod [\v!outer] {\ifvmode\ifinner\blankoutertrue\fi\fi} \defineblankmethod [\v!reset] {\global\blankresettrue} \defineblankmethod [\v!flexible] {\global\localblankflexibletrue} \defineblankmethod [\v!fixed] {\global\localblankfixedtrue} \defineblankmethod [\v!back] {\global\blankgobacktrue} % {\geenblanko} \defineblankmethod [\v!halfline] {\ifgridsnapping\global\fuzzyvskiptrue\fi \global\advance\blankskip .5\lineheight} \defineblankmethod [\v!none] {\global\blankresettrue} \defineblankmethod [\v!joinedup] {\ifvmode\nointerlineskip\fi} \defineblankmethod[\v!synchronize] {\verticalstrut\vskip-2\lineheight\verticalstrut} % \vtop{\blank[synchronize]\blank[line]test} \defineblankmethod [\v!always] {\redowhitespace} % experimental % happens often, so we speed this up: % % \defineblankmethod [2*\v!line] {\addblankskip+{2\openlineheight}{2\openlineheight}} % \defineblankmethod [2*\v!big] {\addblankskip+{2\bigskipamount }{2\openlineheight}} % % no, with 2\whatever we loose the stretch and shrink! Taco's alternative: \defineblankmethod [2*\v!line] {\addblankskip+\openlineheight\openlineheight \addblankskip+\openlineheight\openlineheight} \defineblankmethod [2*\v!big] {\addblankskip+\bigskipamount\openlineheight \addblankskip+\bigskipamount\openlineheight} \def\doblank#1% {\edefconvertedargument\ascii{#1}% \ifx\ascii\empty\else \ifcsname\??bo\??bo\ascii\endcsname % internal def \csname\??bo\??bo\ascii\endcsname \else\ifcsname\??bo\ascii\endcsname % user def / slow \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax \else \dorepeatwithcommand[#1]\redoblank \fi\fi \fi \relax} \def\redoblank#1% {\edefconvertedargument\ascii{#1}% \ifx\ascii\empty\else \ifcsname\??bo\??bo\ascii\endcsname % internal def \csname\??bo\??bo\ascii\endcsname \else\ifcsname\??bo\ascii\endcsname % user def / slow \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax \else \global\advance\blankskip#1\relax \fi\fi \fi \relax} \unexpanded\def\blank % the \relax is definitely needed due to the many \if's {\relax\complexorsimple\doblank} \def\complexdoblank {\flushnotes \ifmmode \@EA\nocomplexdoblank \else \ifopelkaar \ifinpagebody \@EA\@EAEAEA\@EA\docomplexdoblank \else \@EA\@EAEAEA\@EA\nocomplexdoblank \fi \else \@EAEAEA\docomplexdoblank \fi \fi} \def\nocomplexdoblank[#1]% {% evt blokkeerfalse \ifmmode\else\par\fi} % Overloaded in cont-new! \newsignal\noblanksignal % \def\doinhibitblank % {\kern\noblanksignal} % \def\inhibitblank% the fast, local way % {\endgraf\ifvmode\prevdepth\newprevdepth\fi} % \def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if % {\global\blankresetfalse % \global\blankdisablefalse % \global\blanknowhitefalse % \global\localblankflexiblefalse % \global\localblankfixedfalse % \global\blankskip\zeropoint % \global\blankforcefalse % \global\blankgobackfalse % \blankouterfalse % \expanded{\rawprocesscommalist[#1]}\doblank % \ifdim\blankskip=\zeropoint\relax % \iflocalblankflexible % \doglobal\advance\blankskip \currentblank % \else\iflocalblankfixed % \doglobal\advance\blankskip \currentblank % \fi\fi % \fi % \ifblankouter % \else % \par % \ifvmode % \ifblankgoback % \removelastskip % \fi % \ifblankforce % % dit gaat mis in pos fonts % % \ifdim\prevdepth>\zeropoint\else ... % % -1000pt signals top of page or column (\ejectcolumn) % \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal % \fi % \ifblankdisable % \global\blankindeedfalse % \ifgridsnapping % \ifdim\prevdepth<\zeropoint % % brrr % \else % % dirty trick: smaller blanks are ignored after % % a larger one, so 10 lines is probably safe; first make % % sure that we honor penalties % \scratchcounter\lastpenalty % % now comes the trick (cross our fingers that this works % % well in multi columns; maybe an ifinner test is needed % % \vskip-10\lineheight % % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi % % \vskip 10\lineheight % % allas, this leads to overfull pages, so we try this: % \kern-\noblanksignal % \ifnum\scratchcounter=\zerocount % \else % \penalty\lastpenalty % \fi % \kern\noblanksignal % % end-of-dirty-trick % \fi % \else % \ifdim\prevdepth<\zeropoint % % brrr % \else % % ensure at least a proper prevdepth, this should be % % an option % \vskip-\prevdepth % \vskip\strutdepth % \prevdepth\strutdepth % \fi % % the old crappy piece of code % \edef\oldprevdepth{\the\prevdepth}% % \prevdepth\newprevdepth % \fi % \else % \global\blankindeedtrue % \fi % \ifblankreset % \global\blankindeedtrue % \ifgridsnapping % % let's play safe and not fool around with the depth, if % % only because it took a lot of effort to sort out the grid % % stuff in the first place % \else % \ifdim\prevdepth=\newprevdepth % \prevdepth\oldprevdepth % \fi % \fi % \fi % \ifblankindeed % \ifdim1\lastskip<1\blankskip\relax % % else when \blanko[2*groot] + \blanko[3*groot] with parskip % % equaling 1*groot, gives a groot=\parskip so adding a small % % value makes it distinguishable; can also be done at parskip % % setting time (better) % \global\advance\blankskip \mindimen\relax % = skip % % test this on 2* + 3* and parskip groot % \ifblanknowhite % \global\advance\blankskip -\parskip % \else % \ifdim\lastskip=\parskip % \else % force this due to previous comment % \ifdim\parskip>\zeropoint\relax % \ifdim\blankskip<\parskip\relax % \global\blankskip\zeropoint % \else % \global\advance\blankskip -\parskip % \fi % \fi % \fi % \fi % \ifblankflexible \else % \blankskip1\blankskip % \fi % \iflocalblankfixed % \blankskip1\blankskip % \fi % \iflocalblankflexible % \blankskip1\blankskip % \!!plus\skipgluefactor\blankskip % \!!minus\skipgluefactor\blankskip % \fi % \ifdim\lastkern=\noblanksignal % controled and grid % \global\blankindeedfalse % \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth % \global\blankindeedfalse % \fi\fi\fi % \ifblankindeed % \iffuzzyvskip % \removelastfuzzyvskip % \fuzzyvskip\blankskip\relax % \else % \removelastskip % \vskip\blankskip\relax % \fi % \fi % \else % \iffuzzyvskip % \removelastfuzzyvskip % \fuzzyvskip\blankskip\relax % \else % % new, test this on pascal % \ifdim\blankskip<\zeropoint % \advance\blankskip-\lastskip % \removelastskip % \ifdim\blankskip>\zeropoint % \vskip\blankskip % \else % \vskip\zeropoint % \fi % \else % % also new % \ifdim\blankskip=\zeropoint % \ifblanknowhite % \geenwitruimte % \fi % \fi % \fi % \fi % \fi % \fi % \fi % \fi % \global\fuzzyvskipfalse % \presetindentation} % goback was broken: % \def\doinhibitblank % {\kern\noblanksignal} % \def\inhibitblank% the fast, local way % {\endgraf\ifvmode\prevdepth\newprevdepth\fi} % problem: we cannot look back in the mvl so we need 3 kinds of signals \def\noblankpsignal{1010101} \def\inhibitgridblank % was doinhibitblank {\ifvmode\else\endgraf\fi \ifvmode \ifnum\lastpenalty<10000 \kern-\noblanksignal % new \kern \noblanksignal \else \penalty\noblankpsignal \fi \fi} \def\inhibittextblank % was inhibitblank {\endgraf \ifvmode \prevdepth\newprevdepth \fi} % new macro % % \def\inhibitblank % need some work % {\endgraf % \ifvmode % \ifgridsnapping % \inhibitgridblank % \else % % this one spoils the grid % \inhibittextblank % \fi % \fi} \def\doinhibitblank{\inhibitgridblank} \def\inhibitblank {\inhibittextblank} % will become obsolete \ifx\undefined\savedlastskip \newskip \savedlastskip \fi \ifx\undefined\savedlastpenalty \newcount\savedlastpenalty \fi % beware, prevdepth can have funny values (e.g. mvl value when in box) \def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if {\global\blankresetfalse \global\blankdisablefalse \global\blanknowhitefalse \global\localblankflexiblefalse \global\localblankfixedfalse \global\blankforcefalse \global\blankgobackfalse \blankouterfalse \global\blankskip\zeropoint % \edefconvertedargument\ascii{#1}% todo fast check for simple \ifcsname\??bo\??bo\ascii\endcsname % internal def \csname\??bo\??bo\ascii\endcsname \else\ifcsname\??bo\ascii\endcsname % user def / slow \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax \else \expanded{\rawprocesscommalist[#1]}\doblank \fi\fi % \relax % to be sure \ifdim\blankskip=\zeropoint\relax \iflocalblankflexible \doglobal\advance\blankskip \currentblank \else\iflocalblankfixed \doglobal\advance\blankskip \currentblank \fi\fi \fi \relax % to be sure \ifblankouter % do nothing \else \par \ifvmode \ifblankgoback \ifdim\lastskip>\zeropoint \vskip-\lastskip \fi \savedlastskip\zeropoint \else\ifdim\lastskip>\zeropoint \savedlastskip\lastskip \else % todo: lastnode, dan namelijk geen skip ! \savedlastskip\zeropoint \fi\fi \ifblankforce % dit gaat mis in pos fonts % \ifdim\prevdepth>\zeropoint\else ... % -1000pt signals top of page or column (\ejectcolumn) \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal \savedlastskip\zeropoint \fi \savedlastpenalty\lastpenalty % hm, now it gets lost \ifblankdisable \global\blankindeedfalse % keep this, i.e. disable current too \ifgridsnapping \ifdim\prevdepth<\zeropoint % brrr \else % dirty trick: smaller blanks are ignored after a % larger one, so 10 lines is probably safe; we need % to make sure that we honor penalties; here comes the % trick (cross our fingers that this works well in % multi columns; maybe an ifinner test is needed % \scratchcounter\lastpenalty % \vskip-10\lineheight % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi % \vskip 10\lineheight % alas, this leads to overfull pages, so we try this: \inhibitgridblank \fi \else \ifdim\prevdepth<\zeropoint % brrr \else % ensure at least a proper prevdepth, this should be % an option \vskip-\prevdepth \vskip\strutdepth \prevdepth\strutdepth \fi % the old crappy piece of code \edef\oldprevdepth{\the\prevdepth}% \prevdepth\newprevdepth % == \inhibittextblank \fi \else \global\blankindeedtrue \fi \ifblankreset \global\blankindeedtrue \ifgridsnapping % let's play safe and not fool around with the depth, if % only because it took a lot of effort to sort out the grid % stuff in the first place \else \ifdim\prevdepth=\newprevdepth \prevdepth\oldprevdepth \fi \fi \fi \ifblankindeed \ifdim1\savedlastskip<1\blankskip\relax % else when \blank[2*groot] + \blank[3*groot] with parskip % equaling 1*groot, gives a groot=\parskip so adding a small % value makes it distinguishable; can also be done at parskip % setting time (better) \global\advance\blankskip \mindimen\relax % = skip % test this on 2* + 3* and parskip groot \ifblanknowhite \global\advance\blankskip -\parskip \else \ifdim\savedlastskip=\parskip \else % force this due to previous comment \ifdim\parskip>\zeropoint\relax \ifdim\blankskip<\parskip\relax \global\blankskip\zeropoint \else \global\advance\blankskip -\parskip \fi \fi \fi \fi \ifblankflexible \else \blankskip1\blankskip \fi \iflocalblankfixed \blankskip1\blankskip \fi \iflocalblankflexible \blankskip1\blankskip \!!plus \skipgluefactor\blankskip \!!minus\skipgluefactor\blankskip \fi \ifdim\lastkern=\noblanksignal\relax % controlled and grid \global\blankindeedfalse \else\ifnum\savedlastpenalty=\noblankpsignal\relax % controlled and grid \global\blankindeedfalse \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth \global\blankindeedfalse \fi\fi\fi\fi \ifblankindeed \iffuzzyvskip \removelastfuzzyvskip \fuzzyvskip\blankskip\relax \else \relax\ifdim\savedlastskip=\zeropoint\else \vskip-\savedlastskip \fi \vskip\blankskip\relax \fi \fi \else \iffuzzyvskip \removelastfuzzyvskip \fuzzyvskip\blankskip\relax \else % new, test this on pascal \ifdim\blankskip<\zeropoint \relax\ifdim\savedlastskip=\zeropoint\else \advance\blankskip-\savedlastskip \vskip-\savedlastskip \fi \ifdim\blankskip>\zeropoint \vskip\blankskip \else \vskip\zeropoint \fi \else % also new \ifdim\blankskip=\zeropoint \ifblanknowhite \nowhitespace \fi \fi \fi \fi \fi \fi \fi \fi \global\fuzzyvskipfalse \presetindentation} %D For a long time we had: %D %D \starttyping %D \def\simpledoblank% %D {\doifelse{\currentwhitespace}{\v!geen} %D {\blank[\currentblank]} %D {\blank[\currentwhitespace]}} %D \stoptyping %D %D But Berend de Boer wanted more control, so now we have: \def\simpledoblank % ... {\doifelse\currentwhitespace\v!none {\blank[\currentblank]} {\blank[\s!default]}} %D Another useful definition would be: %D %D \starttyping %D \defineblank %D [\s!default] %D [\v!groot] %D \stoptyping \def\dosetupblank#1% amount are an plain inheritance {\bigskipamount#1\relax \ifblankflexible \else \bigskipamount1\bigskipamount \fi \medskipamount \bigskipamount \divide\medskipamount \plustwo \smallskipamount\bigskipamount \divide\smallskipamount\plusfour}% \def\complexsetupblank[#1]% more \let's -> this also wil become installable {\ifgridsnapping \blankflexiblefalse \else \ExpandFirstAfter\processallactionsinset [#1] [ \v!flexible=>\blankflexibletrue, \v!fixed=>\blankflexiblefalse]% \fi \ExpandFirstAfter\processallactionsinset [#1] [ \v!flexible=>\dosetupblank\appliedblankskip, \v!fixed=>\dosetupblank\appliedblankskip, \v!line=>\edef\appliedblankskip{\linedistance}% \dosetupblank\appliedblankskip, \v!halfline=>\scratchskip.5\linedistance \edef\appliedblankskip{\the\scratchskip}% \dosetupblank\appliedblankskip, \v!big=>\ifgridsnapping \edef\appliedblankskip{\linedistance}% \dosetupblank\appliedblankskip \fi \let\currentblank\v!big, \v!medium=>\let\currentblank\v!medium, \v!small=>\let\currentblank\v!small, \v!global=>\let\currentblank\v!global, \v!normal=>\dosetupblank\appliedblankskip, \v!standard=>\edef\appliedblankskip{\skipfactor\linedistance}% \dosetupblank\appliedblankskip, \s!default=>\dosetupblank\appliedblankskip, \s!unknown=>\let\appliedblankskip\commalistelement \dosetupblank\appliedblankskip]% \simplesetupwhitespace} % \definecomplexorsimpleempty\setupblank % % speed gain: 60 sec -> 30 sec \definecomplexorsimple\setupblank \def\simplesetupblank % == snelle \setupblank[\s!default] {\ifgridsnapping \blankflexiblefalse \fi \dosetupblank\appliedblankskip % \let\deblanko\v!big \simplesetupwhitespace} \def\restorestandardblank% \v!standard {\edef\appliedblankskip{\skipfactor\linedistance}% \dosetupblank\appliedblankskip }%\let\deblanko\v!big} \def\dodefineblank[#1][#2]% {\def\docommand##1{\setvalue{\??bo##1}{#2}}% \processcommalist[#1]\docommand} \def\defineblank {\dodoubleargument\dodefineblank} \def\savecurrentblank {\edef\restorecurrentblank {\bigskipamount\the\bigskipamount \medskipamount\the\medskipamount \smallskipamount\the\smallskipamount \noexpand\def\noexpand\currentblank{\currentblank}% \ifblankflexible \noexpand\blankflexibletrue \else \noexpand\blankflexiblefalse \fi}} %D Now. \defineblank [\s!default] [\v!white] \defineblank [\v!height] [\strutheight] \defineblank [\v!depth] [\strutdepth] % old implementation % % \let\currentindentation=\empty % % \newdimen\ctxparindent % % \newif\ifindentfirstparagraph % \indentfirstparagraphtrue % % \def\presetindentation % {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}} % % \definecomplexorsimple\setupindenting % % \def\complexsetupindenting[#1]% % {\processallactionsinset % [#1] % [ \v!first=>\indentfirstparagraphtrue, % \v!next=>\indentfirstparagraphfalse, % \s!default=>\simplesetupindenting, % \s!unknown=>\edef\currentindentation{\commalistelement}% % \simplesetupindenting]} % % \def\simplesetupindenting % {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}% % \parindent\ctxparindent\relax} % % \def\indenting % watch out: \dodo and no \do % {\dosingleargument\dodoindenting} % % \def\dodoindenting[#1]% oeps, we needed a commalist handler here! % {\edef\currentindenting{#1}% % \processcommacommand[#1]\dododoindenting} % % \def\dododoindenting#1% % {\executeifdefined{\??in:#1}\donothing} % % \let\currentindenting\empty % % \def\defineindentingmethod[#1]#2% % {\setvalue{\??in:#1}{#2}} % % \defineindentingmethod [\v!no] {\parindent\ctxparindent\noindent} % \defineindentingmethod [\v!not] {\parindent\ctxparindent\noindent} % % \defineindentingmethod [\v!first] {\indentfirstparagraphtrue} % \defineindentingmethod [\v!next] {\indentfirstparagraphfalse} % % \defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent ! % \defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent ! % % \defineindentingmethod [\v!never] {\parindent\zeropoint\relax} % no \indent ! % % \def\noindenting{\indenting[\v!no,\v!next]} % was \nietinspringen % \def\doindenting{\indenting[\v!yes,\v!first]} % was \welinspringen % % \def\dochecknextindentation#1% internal one % {\checknextindentation[\getvalue{#1\c!indentnext}]} % % \def\checknextindentation[#1]% % {\processaction[#1][%\v!keep=>, % \v!yes=>\doindentation, % \v!no=>\noindentation, % \v!auto=>\autoindentation]} % % \def\doindentation% too simple % {\gdef\checkindentation{\global\indentationtrue}} % % \ifx\autoindentation\undefined % \let\autoindentation\relax % \fi % % \newif\ifindentation \indentationtrue % documenteren, naar buiten % % \let\checkindentation=\relax % % \def\donoindentation % {\ifdim\parindent=\zeropoint \else % \bgroup \setbox\scratchbox\lastbox \egroup % \fi} % % \def\noindentation % made global % {\ifinpagebody \else % \global\indentationfalse % \gdef\checkindentation % {\donoindentation % \gdef\checkindentation{\global\indentationtrue}}% % \fi} % % \def\nonoindentation % bv bij floats % {\ifinpagebody \else % \global\indentationtrue % \gdef\checkindentation{\global\indentationtrue}% % \fi} % % \def\indentation % {\ifvmode \ifdim\parindent=\zeropoint \else % % was : \hskip\parindent % % can be: \indent % % but we test: % \noindent\hskip\parindent % \fi \fi} \let\currentindentation\empty % amount/keyword % \let\normalindentation \empty % used for reinstating normal indentation \let\currentindenting \empty % method \newdimen\ctxparindent \newif\ifindentfirstparagraph % \indentfirstparagraphtrue \chardef\indentingtoggle\zerocount %D After a blank or comparable situation (left side floats) we %D need to check if the next paragraph has to be indented. \def\presetindentation {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}} %D This sets up the (normally) global indentation behavior as well %D as the amounts. \definecomplexorsimple\setupindenting % \def\complexsetupindenting[#1]% % {\edef\currentindenting{#1}% % \indentfirstparagraphtrue % \parindent\ctxparindent % \chardef\indentingtoggle\zerocount % \processcommalist[#1]\docomplexsetupindenting % \ifindentfirstparagraph\else\noindentation\fi % added % \toggleindentation} \indentfirstparagraphtrue \parindent\ctxparindent \chardef\indentingtoggle\zerocount % \newtoks\savedeverypar \savedeverypar\everypar % \def\restoreeverypar{\everypar\savedeverypar} % we need a better everypar model: for each option a switch, which we % set to false with \forgetall and can enable when needed (context 4); % that way we can control the order of execution of options \def\checkeverypar % currently a hack {\ifzeropt\parindent\else \doifsometokselse\everypar\donothing{\appendtoks\checkindentation\to\everypar}% \fi} \def\complexsetupindenting[#1]% {\edef\currentindenting{#1}% \doifsomething\currentindenting % handy when a parameter is passed {% not here: \indentfirstparagraphtrue % not here: \parindent\ctxparindent % not here: \chardef\indentingtoggle\zerocount % we use commacommand in order to catch #1 being a command (expanded parameter) \processcommacommand[\currentindenting]\docomplexsetupindentingA % catch small, medium, etc \processcommacommand[\currentindenting]\docomplexsetupindentingB % catch rest \checkeverypar % only when non-empty #1 \ifindentfirstparagraph\else\noindentation\fi % added \toggleindentation}} \def\docomplexsetupindentingA#1% {\edefconvertedargument\!!stringa{#1}% \doifundefined{\??in:\!!stringa}% {\edef\currentindentation{#1}% \let\normalindentation\currentindentation \simplesetupindenting}} \def\docomplexsetupindentingB#1% {\edefconvertedargument\!!stringa{#1}% catch #1=\somedimen \executeifdefined{\??in:\!!stringa}\donothing} \def\simplesetupindenting % empty case, a it strange, needed this way? {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}} \def\indenting % kind of obsolete {\dosingleargument\complexsetupindenting} % use \noindentation to suppress next indentation \def\defineindentingmethod[#1]#2% {\setvalue{\??in:#1}{#2}} \defineindentingmethod [\v!no] {\parindent\zeropoint}% was: \ctxparindent\noindent} \defineindentingmethod [\v!not] {\parindent\zeropoint}% was: \ctxparindent\noindent} \defineindentingmethod [\v!first] {\indentfirstparagraphtrue} \defineindentingmethod [\v!next] {\indentfirstparagraphfalse} \defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent ! \defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent ! \defineindentingmethod [\v!never] {\parindent\zeropoint\relax % no \indent ! \chardef\indentingtoggle\zerocount} \defineindentingmethod [\v!odd] {\chardef\indentingtoggle\plusone} \defineindentingmethod [\v!even] {\chardef\indentingtoggle\plustwo} \defineindentingmethod [\v!normal] {\ifx\normalindentation\empty\else \let\currentindentation\normalindentation \simplesetupindenting \fi} \defineindentingmethod [\v!reset] {\indentfirstparagraphtrue \parindent\zeropoint \chardef\indentingtoggle\zerocount} \def\noindenting{\indenting[\v!no, \v!next ]} \def\doindenting{\indenting[\v!yes,\v!first]} %D This one sets up the local indentation behaviour (i.e. either or not %D a next paragraph will be indented). \def\dochecknextindentation#1% internal one {\checknextindentation[\getvalue{#1\c!indentnext}]} \def\checknextindentation[#1]% {\processaction [#1] [%\v!keep=>, \v!yes=>\doindentation, \v!no=>\noindentation, \v!auto=>\autoindentation]} %D Here come the handlers. \newif\ifindentation \indentationtrue % documenteren, naar buiten \let\checkindentation\relax \ifx\autoindentation\undefined \let\autoindentation\relax \fi % hook \def\doindentation {\gdef\checkindentation{\global\indentationtrue}} \def\noindentation % made global {\ifinpagebody \else \global\indentationfalse \gdef\checkindentation {\donoindentation \gdef\checkindentation{\global\indentationtrue}}% \fi} \def\nonoindentation % bv bij floats {\ifinpagebody \else \global\indentationtrue \gdef\checkindentation{\global\indentationtrue}% \fi} \def\donoindentation {\ifdim\parindent=\zeropoint \else \bgroup \setbox\scratchbox\lastbox \egroup \fi} \def\indentation {\ifvmode \ifdim\parindent=\zeropoint \else % was : \hskip\parindent % can be: \indent % but we test: \noindent\hskip\parindent \fi \fi} \def\toggleindentation {\ifcase\indentingtoggle % nothing \or \notoggleindentation \or \dotoggleindentation \fi} \def\dokillindentation {\gdef\checkindentation{\global\indentationfalse\donoindentation}} \def\dotoggleindentation {\gdef\checkindentation{\global\indentationfalse\notoggleindentation\donoindentation}} \def\notoggleindentation {\gdef\checkindentation{\global\indentationtrue\dotoggleindentation}} \appendtoks \pushmacro\checkindentation \pushmacro\ifindentation \to \everypushsomestate \appendtoks \popmacro\ifindentation \popmacro\checkindentation \to \everypopsomestate % we need to save the state if we want to adapt behaviour to empty lines % % \def\setlasthvmode % {\global\chardef\savedhvmode\ifhmode\plusone\else\ifvmode\plustwo\else\zerocount\fi\fi} % % \def\resetlasthvmode % {\global\chardef\savedhvmode\zerocount} % % \chardef\savedhvmode\zerocount % This is a user requested hack (using the auto-hook). \chardef\recheckindentationmode\zerocount \def\dontrechecknextindentation {\global\chardef\recheckindentationmode\zerocount} \def\dorechecknextindentation {\ifcase\recheckindentationmode % nothing \or \dontrechecknextindentation \expandafter\doautoindentation \fi} \def\doautoindentation {\doifnextcharelse\par\donothing\noindentation} \def\autoindentation {\global\chardef\recheckindentationmode\plusone} %D An example of usage: %D %D \starttyping %D \setupindenting[small,yes] %D %D \setupitemize [indentnext=auto] %D \setuptyping [indentnext=auto] %D \setupformulas[indentnext=auto] %D %D \input tufte %D %D \startitemize %D \item itemize %D \stopitemize %D \input tufte %D %D \startitemize %D \item itemize %D \stopitemize %D %D \input tufte %D %D \startitemize %D \item itemize %D \stopitemize %D %D \page %D %D \input tufte %D %D \starttyping %D verbatim %D \stoptyping %D \input tufte %D %D \starttyping %D verbatim %D \stoptyping %D %D \input tufte %D %D \starttyping %D verbatim %D \stoptyping %D %D \page %D %D \input tufte %D %D \startformula %D a = b %D \stopformula %D \input tufte %D %D \startformula %D a = b %D \stopformula %D %D \input tufte %D %D \startformula %D a = b %D \stopformula %D \macros %D {frenchspacing,nonfrenchspacing} %D %D Smehow \type{\frenchspacing} can lead to hyphenation between %D dashes so we now have \type {\newfrenchspacing} (moved from %D \type {syst-chr}). %D Hm ... todo: \sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0 \def\setfrenchspacing#1% {\sfcode`\.#1 \sfcode`\,#1\relax \sfcode`\?#1 \sfcode`\!#1\relax \sfcode`\:#1 \sfcode`\;#1\relax} \def\frenchspacing {\setfrenchspacing{1000}} \def\resetfrenchspacing {\sfcode`\.3000 \sfcode`\,1250 \sfcode`\?3000 \sfcode`\!3000 \sfcode`\:2000 \sfcode`\;1500 } \def\frenchspacing {\setfrenchspacing{1000}} \def\newfrenchspacing{\setfrenchspacing{1050}} \def\nonfrenchspacing{\resetfrenchspacing} \def\definespacingmethod[#1]#2{\setvalue{\??sg\??sg#1}{#2}} \definespacingmethod[\v!packed]{\newfrenchspacing} \definespacingmethod[\v!broad ]{\nonfrenchspacing} \def\complexsetupspacing[#1]% {\executeifdefined{\??sg\??sg#1}\relax \updateraggedskips} \def\simplesetupspacing {\updateraggedskips} \definecomplexorsimple\setupspacing \let\normalspaceprimitive=\ % space-comment is really needed else \ \unexpanded\def\nonbreakablespace{\penalty\plustenthousand\normalspaceprimitive} \letcatcodecommand \ctxcatcodes `\~ \nonbreakablespace \def\space { } \def\removelastspace{\ifhmode\unskip\fi} \def\nospace {\removelastspace\ignorespaces} % in tables we need: % % \def\fixedspace {\hskip.5em\relax} % % but, since not all fonts have .5em digits: \unexpanded\def\fixedspace {\setbox\scratchbox\normalhbox{\mathortext{0}{0}}% \hskip\wd\scratchbox\relax} \def\fixedspaces {\letcatcodecommand \ctxcatcodes `\~ \fixedspace} \def\removeunwantedspaces {\ifhmode % we also need to unskip 0pt skips \unskip\unskip\unskip\unskip\unskip \unskip\unskip\unskip\unskip\unskip \fi} \appendtoks \let~\space \let\ \space \to\simplifiedcommands % still not fixed in aleph / luatex % % \def\removeunwantedspaces % {\ifhmode \ifnum\lastnodetype=\@@gluenode % \unskip \@EAEAEA\removeunwantedspaces % \fi \fi} %D For old time sake, will disappear soon. \let\hardespatie\fixedspace \let\geenspatie \nospace % \startbuffer % \startlines \tt \fixedspaces % 0~1~~2~~~3~~~~4~~~~~5 % 0~~~~~~~~~~~~~~~~~~~5 % $0~1~~2~~~3~~~~4~~~~~5$ % $0~~~~~~~~~~~~~~~~~~~5$ % \stoplines % % \starttabulate[|~|] % \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \NR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \NR % \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \NR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \NR % \stoptabulate % % \starttable[||] % \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \AR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \AR % \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \AR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \AR % \stoptable % \stopbuffer % % \setupbodyfont[cmr] \getbuffer % \setupbodyfont[lbr] \getbuffer \def\packed {\nointerlineskip} \def\godown[#1]% {\relax \ifhmode\endgraf\fi \ifvmode\nointerlineskip\vskip#1\relax\fi} %D A couple of plain macros: \ifx\thinspace\undefined \def\thinspace {\kern .16667em } \def\negthinspace{\kern-.16667em } \def\enspace {\kern .5em } \def\thinspace {\kern .16667\emwidth} \def\negthinspace{\kern-.16667\emwidth} \def\enspace {\kern .5\emwidth} \fi \ifx\quad\undefined \def\enskip{\hskip.5em\relax} \def\quad {\hskip 1em\relax} \def\qquad {\hskip 2em\relax} \def\enskip{\hskip.5\emwidth} \def\quad {\hskip \emwidth} \def\qquad {\hskip 2\emwidth} \fi \let\emspace\quad \ifx\smallskip\undefined \def\smallskip{\vskip\smallskipamount} \def\medskip {\vskip\medskipamount} \def\bigskip {\vskip\bigskipamount} \fi \ifx\allowbreak\undefined \def\break {\penalty\ifhmode-\plustenthousand\else\ejectpenalty\fi} \def\nobreak {\penalty \plustenthousand} \def\allowbreak{\penalty \zeropoint} \def\filbreak {\par\vfil\penalty-200\vfilneg} \def\goodbreak {\par\penalty-500 } \fi %D Made slightly more readable: \ifx\vglue\undefined \def\vglue {\afterassignment\dovglue\scratchskip=} \def\hglue {\afterassignment\dohglue\scratchskip=} \def\topglue{\nointerlineskip\vglue-\topskip\vglue} \def\dovglue {\par \scratchdimen\prevdepth \hrule\!!height\zeropoint \nobreak\vskip\scratchskip \prevdepth\scratchdimen} \def\dohglue {\dontleavehmode % \leavevmode \scratchcounter\spacefactor \vrule\!!width\zeropoint \nobreak\hskip\scratchskip \spacefactor\scratchcounter} \fi \unexpanded\def\textormathglue#1#2#3% cleaned up one {\begingroup \ifmmode \mskip#1#2% \else \scratchdimen#1\hspaceamount\empty{#3}% \scratchskip\scratchdimen\!!plus.5\scratchdimen\!!minus.3\scratchdimen \hskip\scratchskip \fi \endgroup} \def\thinglue {\textormathglue+\thinmuskip 1} \def\medglue {\textormathglue+\medmuskip 2} \def\thickglue{\textormathglue+\thickmuskip3} \ifx\eject\undefined \def\eject{\par\break} \fi \ifx\supereject\undefined \def\supereject{\par\penalty\superpenalty} \fi \ifx\dosupereject\undefined \def\dosupereject {\ifnum\insertpenalties>\zerocount % something is being held over \line{} \kern-\topskip \nobreak \vfill\supereject \fi} \fi %D We adapt plain's \type {\removelastskip} a bit: \ifx\removelastskip\undefined \def\removelastskip {\ifvmode \ifdim\lastskip=\zeropoint \else \vskip-\lastskip \fi \fi} \fi \ifx\smallbreak\undefined \def\smallbreak {\par \ifdim\lastskip<\smallskipamount \removelastskip \penalty-50 \smallskip \fi} \def\medbreak {\par \ifdim\lastskip<\medskipamount \removelastskip \penalty-100 \medskip \fi} \def\bigbreak {\par \ifdim\lastskip<\bigskipamount \removelastskip \penalty-200 \bigskip \fi} \fi \newskip\ctxparskip \ctxparskip\zeropoint \newconditional \flexiblewhitespace \settrue\flexiblewhitespace \def\blankokleinmaat {\smallskipamount} \def\blankomiddelmaat {\medskipamount} \def\blankogrootmaat {\bigskipamount} \def\currentwhitespace {\zeropoint} \definecomplexorsimple\setupwhitespace % \def\simplesetupwhitespace % {\doifnot\currentwhitespace\v!none\dosetupwhitespace} % % \def\complexsetupwhitespace[#1]% % {\doifelsenothing{#1} % {\simplesetupwhitespace} % {\edef\currentwhitespace{#1}% % \dosetupwhitespace}} % % \def\dosetupwhitespace % {\processcommacommand[\currentwhitespace]\dowhitespacemethod % \dodosetupwhitespace} \def\simplesetupwhitespace {\doifnot\currentwhitespace\v!none\dosetupwhitespace} \def\complexsetupwhitespace[#1]% {\edef\nextcurrentwhitespace{#1}% \ifx\nextcurrentwhitespace\empty \simplesetupwhitespace \else \let\currentwhitespace\nextcurrentwhitespace \dosetupwhitespace \fi} \def\dosetupwhitespace % quick test for no list {\doifdefinedelse{\??ws\??ws\currentwhitespace}% no ifcsname due to nested \lineheight {\getvalue{\??ws\??ws\currentwhitespace}}% {\processcommacommand[\currentwhitespace]\dowhitespacemethod}% \ifgridsnapping \setfalse\flexiblewhitespace \ifdim\ctxparskip>\zeropoint \ctxparskip \ifcase\baselinegridmode \baselineskip % normal ! ! ! ! !! \or \ifdim\scratchdimen=\baselineskip % maybe range \baselineskip % normal ! ! ! ! !! \else \numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax \fi \else \baselineskip % normal ! ! ! ! !! \fi \fi \else \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi \fi \parskip\ctxparskip} \chardef\baselinegridmode=0 % option in layout / 1=permit_half_lines \def\dodosetupwhitespace {\ifgridsnapping \setfalse\flexiblewhitespace \ctxparskip1\ctxparskip \ifdim\ctxparskip>\zeropoint \ifcase\baselinegridmode \ctxparskip\baselineskip % normal ! ! ! ! !! \or \ifdim\scratchdimen=\baselineskip % maybe range \ctxparskip\baselineskip % normal ! ! ! ! !! \else \ctxparskip\numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax \fi \else \ctxparskip\baselineskip % normal ! ! ! ! !! \fi \fi \else \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi \fi \parskip\ctxparskip} \definesystemvariable {ws} % whitespace \def\definewhitespacemethod[#1]#2{\setvalue{\??ws\??ws#1}{#2}} \definewhitespacemethod [\v!fix] {} \definewhitespacemethod [\v!fixed] {\setfalse\flexiblewhitespace} \definewhitespacemethod [\v!flexible] {\settrue\flexiblewhitespace} \definewhitespacemethod [\v!line] {\ctxparskip \baselineskip} \definewhitespacemethod [\v!halfline] {\ctxparskip.5\baselineskip} \definewhitespacemethod [\v!none] {\ctxparskip \zeropoint} \definewhitespacemethod [\v!big] {\ctxparskip \bigskipamount} \definewhitespacemethod [\v!medium] {\ctxparskip \medskipamount} \definewhitespacemethod [\v!small] {\ctxparskip \smallskipamount} \definewhitespacemethod [\s!default] {\simplesetupwhitespace} % {\stelwitruimteopnieuwin} % \def\dowhitespacemethod#1% % {\executeifdefined{\??ws\??ws#1}{\ctxparskip#1}\relax} \def\dowhitespacemethod#1% \doifdefined because of \lineheight {\doifdefinedelse{\??ws\??ws#1}{\getvalue{\??ws\??ws#1}}{\ctxparskip#1}\relax} \def\nowhitespace {\ifdim\parskip>\zeropoint\relax \ifdim\lastskip=-\parskip \else \vskip-\parskip \fi \fi} \def\nowhitespaceunlessskip {\ifdim\lastskip>\zeropoint \else \nowhitespace \fi} \def\redowhitespace {\ifdim\lastskip>-\parskip \else \vskip\parskip \fi} \def\savecurrentwhitespace {\edef\restorecurrentwhitespace {\ctxparskip\the\ctxparskip \parskip\the\parskip \noexpand\def\noexpand\currentwhitespace{\currentwhitespace}% \ifconditional\flexiblewhitespace \noexpand\settrue\flexiblewhitespace \else \noexpand\setfalse\flexiblewhitespace \fi}} % deze variant is nodig binnen \startopelkaar % steeds testen: % % \hoofdstuk{..} % \plaatslijst[..] % \hoofdstuk{..} % \input tufte % % met/zonder witruimte \def\whitespace {\par \ifdim\parskip>\zeropoint\relax %\ifdim\lastskip>\parskip \else % \removelastskip interferes with blanko blokkeer en klein \vskip\parskip %\fi \fi} \def\nonoblanko[#1]% {\par} \def\noblanko {\dosingleempty\nonoblanko} % De onderstaande macro handelt ook de situatie dat er geen % tekst tussen \start ... \stop is geplaatst. Daartoe wordt de % laatste skip over de lege tekst heen gehaald. Dit komt goed % van pas bij het plaatsen van (mogelijk lege) lijsten. \newif\ifopelkaar \newsignal \noparskipsignal % \def\noparskipsignal {0.00001pt} \def\lastdoneparskip {0pt} \def\startpacked {\dosingleempty\dostartpacked} \def\dostartpacked[#1]% nesting afvangen {\par \ifvmode \edef\lastdoneparskip {\the\lastskip}% \edef\lastdoneprevdepth{\the\prevdepth}% zeer recent toegevoegd \ifdim\prevdepth=-\thousandpoint % toegevoegd omdat binnen \else % een vbox een extra skip \whitespace % ongewenst is; dit kan \baselinecorrection %% zie in \placeregister[n=1] \vskip\noparskipsignal % waarschijnlijk ook in \fi % blanko blokkeer \bgroup \doifelse{#1}\v!blank \opelkaarfalse \opelkaartrue \blank[\v!disable] % dit is nog niet ok, gaat fout \setupwhitespace[\v!none] % bovenin vtop (dwz, baseline) \fi} \def\stoppacked {\par \ifvmode \egroup \ifdim\lastskip=\noparskipsignal\relax \removelastskip \nowhitespace \vskip-\lastdoneparskip \vskip+\lastdoneparskip \prevdepth-\lastdoneprevdepth % zeer recent toegevoegd \fi \fi} \def\startunpacked {\blank \leavevmode \bgroup} \def\stopunpacked {\egroup \blank} % De onderstaande macro's moeten nog eens nader worden uitgewerkt. % Ze spelen een rol bij de spatiering rond omkaderde teksten % en/of boxen zonder diepte. \def\toonregelcorrectie{\showbaselinecorrection} \def\regelcorrectie {\baselinecorrection} % \prevdepth crosses pageboundaries! % % todo: a version that works ok inside a box \let\doaroundlinecorrection\relax \def\startlinecorrection {\dodoubleempty\dostartlinecorrection} \def\dostartlinecorrection[#1][#2]% #2 gobbles spaces {\bgroup \processaction [#1] [ \v!blank=>\let\doaroundlinecorrection\blank, \s!default=>\let\doaroundlinecorrection\relax, \s!unknown=>{\def\doaroundlinecorrection{\blank[#1]}}]% \doaroundlinecorrection \startbaselinecorrection \offbaselinecorrection \ignorespaces} \def\stoplinecorrection {\stopbaselinecorrection \doaroundlinecorrection \egroup} \def\correctwhitespace {\dowithnextbox {\startbaselinecorrection \flushnextbox \stopbaselinecorrection}% \vbox} \def\verticalstrut {\normalvbox{\hsize\zeropoint\forgetall\strut}} \def\horizontalstrut{\normalhbox {\strut}} % Hieronder volgen enkele instellingen en macro's ten behoeve % van de interlinie en \strut. De waarden 2.8, 0.07, 0.72 en % 0.28 zijn ooit eens ontleend aan INRS-TEX en moeten wellicht % nog eens instelbaar worden. % % \lineheight : de hoogte van een regel % \spacing{getal} : instellen interlinie % \normalbaselines : instellen regelafstend % % \setstrut : instellen \strut % \setnostrut : resetten \strut, \endstrut, \begstrut % % \setteststrut : instellen zichtbare struts % \resetteststrut : instellen onzichtbare struts % % \setfontparameters : instellen na fontset % % De hoogte van een regel (\lineheight) is gelijk aan de % som van de hoogte (\ht) en diepte (\dp) van \strutbox. % % \strut : denkbeeldig blokje met hoogte en diepte % % Een \hbox kan als deze aan het begin van een regel staat % een breedte \hsize krijgen. Dit is soms te voorkomen met het % commando \leavevmode. Binnen een \vbox geeft dit echter % niet altijd het gewenste resultaat, vandaar het commando % % \leaveoutervmode % Pas op: niet zomaar \topskip en \baselineskip aanpassen % en zeker niet \widowpenalty. Dit kan ernstige gevolgen % hebben voor kolommen. % % Enige glue kan op zich geen kwaad, echter als blanko=vast, % dan moet ook de rek 0 zijn. Binnen kolommen is rek ook % niet bepaald mooi. Een hele kleine waarde (0.025) voldoet, % omdat een positieve glue eindeloos rekbaar is. \newdimen\strutdimen \newdimen\lineheight \newdimen\openlineheight \newdimen\openstrutheight \newdimen\openstrutdepth \newdimen\topskipgap \newdimen\struttotal \def\strutheightfactor {.72} \def\strutdepthfactor {.28} \def\baselinefactor {2.8} \def\baselinegluefactor {0} \def\minimumstrutheight {0pt} \def\minimumstrutdepth {0pt} \def\normallineheight {\baselinefactor ex} \def\minimumlinedistance {\lineskip} \def\strutheight {0pt} \def\strutdepth {0pt} \def\strutwidth {0pt} \def\spacingfactor {1} \def\topskipfactor {1.0} \def\maxdepthfactor {0.5} \def\systemtopskipfactor {\topskipfactor} \def\systemmaxdepthfactor {\maxdepthfactor} % De onderstaande definitie wordt in de font-module overruled \ifdefined\globalbodyfontsize\else \newdimen\globalbodyfontsize \globalbodyfontsize=12pt \fi \ifx\normalizedbodyfontsize\undefined \def\normalizedbodyfontsize{12pt} \fi % door een \dimen. Dit is geen probleem omdat (1) de default % korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn % en de instellingen bij het laden nogmaals plaatsvinden. % \def\topskipcorrection % {\ifdim\topskip>\openstrutheight % % == \vskip\topskipgap % \vskip\topskip % \vskip-\openstrutheight % \fi % \verticalstrut % \vskip-\struttotal} \def\topskipcorrection {\simpletopskipcorrection \vskip-\struttotal \verticalstrut} \def\simpletopskipcorrection {\ifdim\topskip>\openstrutheight % == \vskip\topskipgap \vskip\topskip \vskip-\openstrutheight \fi} % \def\settopskip % the extra test is needed for the lbr family % {\topskip\systemtopskipfactor\globalbodyfontsize % \ifgridsnapping \else % \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi % \fi % \relax % the skip % \topskipgap\topskip % \advance\topskipgap -\openstrutheight\relax % \ifdim\topskip<\strutheightfactor\openlineheight % \topskip\strutheightfactor\openlineheight\relax % \fi} \def\settopskip % the extra test is needed for the lbr family {\topskip\systemtopskipfactor\globalbodyfontsize \ifgridsnapping \else \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi \fi \relax % the skip \topskipgap\topskip \advance\topskipgap -\openstrutheight\relax \ifdim\minimumstrutheight>\zeropoint \ifdim\topskip<\minimumstrutheight \topskip\minimumstrutheight\relax \fi \else \ifdim\topskip<\strutheightfactor\openlineheight \topskip\strutheightfactor\openlineheight\relax \fi \fi} \def\setmaxdepth {\maxdepth\systemmaxdepthfactor\globalbodyfontsize} \def\normalbaselines {\baselineskip \normalbaselineskip \lineskip \normallineskip \lineskiplimit\normallineskiplimit} % \def\setnormalbaselines % {\ifdim\normallineheight>\zeropoint % \lineheight\normallineheight % \fi % \openlineheight\spacingfactor\lineheight % \openstrutheight\strutheightfactor\openlineheight % \openstrutdepth \strutdepthfactor \openlineheight % \normalbaselineskip\openlineheight % \!!plus\baselinegluefactor\openlineheight % \!!minus\baselinegluefactor\openlineheight % \normallineskip\minimumlinedistance\relax % \onepoint\relax % \normallineskiplimit\zeropoint\relax % \normalbaselines} \def\setnormalbaselines {\ifdim\normallineheight>\zeropoint \lineheight\normallineheight \fi \openlineheight\spacingfactor\lineheight \openstrutheight \ifdim\minimumstrutheight>\zeropoint \minimumstrutheight % new \else \strutheightfactor\openlineheight \fi \openstrutdepth \ifdim\minimumstrutdepth>\zeropoint \minimumstrutdepth % new \else \strutdepthfactor \openlineheight \fi \ifdim\dimexpr\minimumstrutdepth+\minimumstrutheight\relax>\zeropoint \openlineheight\dimexpr\openstrutheight+\openstrutdepth\relax % new \fi \normalbaselineskip\openlineheight \ifgridsnapping\else \!!plus \baselinegluefactor\openlineheight \!!minus\baselinegluefactor\openlineheight \fi \normallineskip\minimumlinedistance\relax % \onepoint\relax \normallineskiplimit\zeropoint\relax \normalbaselines} % \def\setspacingfactor#1\to#2\by#3\\% % {\strutdimen#2\points % \strutdimen#3\strutdimen % \edef#1{\withoutpt\the\strutdimen}} % % \def\spacing#1% % {\ifgridsnapping % %\doifnot{#1}{1}{\showmessage\m!layouts{11}{#1}}% % \ifdim#1\points=\onepoint\else\showmessage\m!layouts{11}{#1}\fi % \edef\spacingfactor{1}% % \else % \edef\spacingfactor{#1}% % \fi % \setspacingfactor\systemtopskipfactor \to\topskipfactor \by#1\\% why no \spacingfactor ? % \setspacingfactor\systemmaxdepthfactor\to\maxdepthfactor\by#1\\% why no \spacingfactor ? % \setnormalbaselines % \setstrut} % % \def\setspacingfactor#1#2#3% % {\edef#1{\withoutpt\the\dimexpr#2\points*#3\relax}} \def\spacing#1% {\ifgridsnapping \ifdim#1\points=\onepoint\else\showmessage\m!layouts{11}{#1}\fi \edef\spacingfactor{1}% \else \edef\spacingfactor{#1}% \fi %\setspacingfactor\systemtopskipfactor \topskipfactor {#1}% why no \spacingfactor ? %\setspacingfactor\systemmaxdepthfactor\maxdepthfactor{#1}% why no \spacingfactor ? \edef\systemtopskipfactor {\withoutpt\the\dimexpr#1\dimexpr\topskipfactor \points}% \edef\systemmaxdepthfactor{\withoutpt\the\dimexpr#1\dimexpr\maxdepthfactor\points}% \setnormalbaselines \setstrut} %D Sometimes one needs to freeze the interlinespacing %D %D \starttyping %D \rm \saveinterlinespace .... {\ss \restoreinterlinespace .... \endgraf} %D \stoptyping \let\restoreinterlinespace\relax \def\saveinterlinespace {\edef\restoreinterlinespace {\lineheight \the\lineheight \openstrutheight \the\openstrutheight \openstrutdepth \the\openstrutdepth \openlineheight \the\openlineheight \normalbaselineskip \the\normalbaselineskip \normallineskip \the\normallineskip \normallineskiplimit\the\normallineskiplimit \noexpand\def\noexpand\normallineheight{\the\dimexpr\normallineheight}% \noexpand\normalbaselines}} % plain definition: % % \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} % % could be: % % \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox} \ifx\strutbox\undefined \newbox\strutbox \setbox\strutbox=\normalhbox{\vrule height8.5pt depth3.5pt width\zeropoint} %\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox} \fi \let\normalstrut\strut % The double \hbox construction enables us to \backtrack % boxes. % \def\setstrutdimen#1#2#3% % een strut is n.m maal ex % {\strutdimen\normallineheight % wat niet per se \lineheight % \strutdimen#2\strutdimen % is omdat een strut lokaal % \strutdimen#3\strutdimen % kan afwijken van de globale % \edef#1{\the\strutdimen}} % macro % strut % \def\setstrutdimen#1#2#3% % een strut is n.m maal ex % {\strutdimen\normallineheight % wat niet per se \lineheight % \strutdimen#2\strutdimen % is omdat een strut lokaal % \strutdimen#3\strutdimen % kan afwijken van de globale % \edef#1{\the\strutdimen}} % macro % strut % \def\setstrut % {\setstrutdimen\strutheight\strutheightfactor\spacingfactor % \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor % \let\strut=\normalstrut % \setbox\strutbox=\normalhbox % {\normalhbox % {\vrule % \!!width \strutwidth % \!!height \strutheight % \!!depth \strutdepth % \normalkern-\strutwidth}}} % \def\setstrut % {\setstrutdimen\strutheight\strutheightfactor\spacingfactor % \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor % \dosetstrut} % \def\setstrut % {\strutdimen\normallineheight % \strutdimen\strutheightfactor\strutdimen % \strutdimen\spacingfactor\strutdimen % \edef\strutheight{\the\strutdimen}% % \strutdimen\normallineheight % \ifgridsnapping % \advance\strutdimen-\strutheight % \else % \strutdimen\strutdepthfactor\strutdimen % \strutdimen\spacingfactor\strutdimen % \fi % \edef\strutdepth{\the\strutdimen}% % \dosetstrut} % interesting, strutdepth is 4.05064pt vs 4.05066pt depending on grid % nasty rounding problem % \def\setstrut % {% height % \strutdimen\normallineheight % \ifdim\minimumstrutheight>\zeropoint % \strutdimen\minimumstrutheight % \else % \strutdimen\strutheightfactor\strutdimen % \fi % \strutdimen\spacingfactor\strutdimen % \edef\strutheight{\the\strutdimen}% % % depth % \strutdimen\normallineheight % \ifgridsnapping % \ifdim\minimumstrutdepth>\zeropoint % \strutdimen\minimumstrutdepth % \else % \advance\strutdimen-\strutheight % \fi % \else % \ifdim\minimumstrutdepth>\zeropoint % \strutdimen\minimumstrutdepth % \else % \strutdimen\strutdepthfactor\strutdimen % \fi % \strutdimen\spacingfactor\strutdimen % \fi % \edef\strutdepth{\the\strutdimen}% % % finish % \dosetstrut} % \def\setstrut % {% height % \ifdim\minimumstrutheight>\zeropoint % \edef\strutheight{\the\dimexpr\spacingfactor\dimexpr\minimumstrutheight}% % \else % \edef\strutheight{\the\dimexpr\spacingfactor\dimexpr\strutheightfactor\dimexpr\normallineheight}% % \fi % % depth % \ifgridsnapping % \ifdim\minimumstrutdepth>\zeropoint % \edef\strutdepth{\the\dimexpr\minimumstrutdepth}% % \else % \edef\strutdepth{\the\dimexpr\normallineheight-\strutheight}% % \fi % \else % \ifdim\minimumstrutdepth>\zeropoint % \edef\strutdepth{\the\dimexpr\spacingfactor\dimexpr\minimumstrutdepth}% % \else % \edef\strutdepth{\the\dimexpr\spacingfactor\dimexpr\strutdepthfactor\dimexpr\normallineheight}% % \fi % \fi % % finish % \dosetstrut} \unexpanded\def\setstrut {% height \edef\strutheight {\the\dimexpr\spacingfactor\dimexpr \ifdim\minimumstrutheight>\zeropoint \minimumstrutheight \else \strutheightfactor\dimexpr\normallineheight \fi}% % depth \edef\strutdepth {\the\dimexpr \ifgridsnapping \ifdim\minimumstrutdepth>\zeropoint \minimumstrutdepth \else \normallineheight-\strutheight \fi \else \spacingfactor\dimexpr \ifdim\minimumstrutdepth>\zeropoint \minimumstrutdepth \else \strutdepthfactor\dimexpr\normallineheight \fi \fi}% % finish \dosetstrut} \unexpanded\def\setcharstrut#1% {\setbox\strutbox\normalhbox{#1}% \edef\strutheight{\the\strutht}% \edef\strutdepth {\the\strutdp}% \dosetstrut} % \def\setfontstrut % {\setcharstrut{(}} % % better, since some fonts have small (but descending Q etc) \unexpanded\def\setfontstrut {\setcharstrut{(gplQT}} \unexpanded\def\setcapstrut% could be M, but Q has descender {\setcharstrut{Q}} %D Handy for math (used in mathml): \def\charhtstrut {\begingroup \setcharstrut{GJY}% \vrule\!!width\zeropoint\!!depth\zeropoint\!!height\strutht \endgroup} \def\chardpstrut {\begingroup \setcharstrut{gjy}% \vrule\!!width\zeropoint\!!depth\strutdp\!!height\zeropoint \endgroup} %D Centered looks nicer: % \def\dosetstrut % {\let\strut\normalstrut % \setbox\strutbox\normalhbox % {\normalhbox to \zeropoint % {% \hss % new, will be option % \vrule % \!!width \strutwidth % \!!height\strutheight % \!!depth \strutdepth % \hss}}% % \struttotal\dimexpr\strutht+\strutdp\relax} % % because of all the callbacks in mkiv, we avoid unnecessary boxes ... % maybe use an attribute so that we can tag boxes that don't need a % treatment; tests with using an attribute so far have shown that % it's slower because testing the attribute takes time too \def\dosetstrut {\let\strut\normalstrut \ifdim\strutwidth=\zeropoint \setbox\strutbox\normalhbox {\vrule \!!width \zeropoint \!!height\strutheight \!!depth \strutdepth}% \else \setbox\strutbox\normalhbox {\normalhbox to \zeropoint {% \hss % new, will be option \vrule \!!width \strutwidth \!!height\strutheight \!!depth \strutdepth \hss}}% \fi \struttotal\dimexpr\strutht+\strutdp\relax} %D The dimen \type {\struttotal} holds the exact size of the %D strut; occasionally a one scaled point difference can show %D up with the lineheight. %D Sometimes a capstrut comes in handy %D %D \starttabulate[|Tl|l|l|] %D \NC yes \NC normal strut \NC {\showstruts\setupstrut[yes]\strut} \NC \NR %D \NC no \NC no strut \NC {\showstruts\setupstrut[no]\strut} \NC \NR %D \NC kap \NC a capital strut (i.e. Q) \NC {\showstruts\setupstrut[cap]\strut} \NC \NR %D \NC A B \unknown \NC a character strut (e.g. A) \NC {\showstruts\setupstrut[A]\strut} \NC \NR %D \NC \NC a normal strut \NC {\showstruts\setupstrut\strut} \NC \NR %D \stoptabulate \def\setupstrut {\dosingleempty\dosetupstrut} \def\dosetupstrut[#1]% yet undocumented, todo: fontstrut {\processaction [#1] [ \v!yes=>\setstrut, \v!auto=>\setautostrut, \v!no=>\setnostrut, \v!cap=>\setcapstrut, \v!fit=>\setfontstrut, \v!line=>\setstrut, \s!default=>\setstrut, \s!unknown=>\setcharstrut\commalistelement]} \def\setteststrut {\def\strutwidth{.8pt}% \setstrut} \def\autostrutfactor{1.1} \def\setautostrut {\begingroup \setbox\scratchbox\copy\strutbox \setstrut \ifdim\ht\strutbox>\autostrutfactor\ht\scratchbox \endgroup \setstrut \else\ifdim\dp\strutbox>\autostrutfactor\dp\scratchbox \endgroup \setstrut \else \endgroup \fi\fi} % simple version % % \def\begstrut % {\relax\ifcase\strutht\else % \strut % \normalpenalty\plustenthousand % \normalhskip\zeropoint % \ignorespaces % \fi} % % \def\endstrut % {\relax\ifhmode\ifcase\strutht\else % \removeunwantedspaces % \normalpenalty\plustenthousand % \normalhskip\zeropoint % \strut % \fi\fi} % when enabled, sigstruts will remove themselves if nothing % goes inbetween \newsignal\strutsignal \setfalse\sigstruts \def\begstrut {\relax\ifcase\strutht\else \ifconditional\sigstruts \noindent\horizontalstrut \normalpenalty\plustenthousand \normalhskip-\strutsignal \normalhskip\strutsignal \else \strut \normalpenalty\plustenthousand \normalhskip\zeropoint \fi \expandafter \ignorespaces \fi} \def\endstrut {\relax\ifhmode\ifcase\strutht\else \ifconditional\sigstruts \ifdim\lastskip=\strutsignal \unskip\unskip\unpenalty\setbox\scratchbox\lastbox \else \normalpenalty\plustenthousand \normalhskip\zeropoint \strut \fi \else \removeunwantedspaces \normalpenalty\plustenthousand \normalhskip\zeropoint \strut \fi \fi\fi} \newbox\nostrutbox \setbox\nostrutbox\normalhbox{} % {\normalhbox{}} \def\setnostrut {\setbox\strutbox\copy\nostrutbox \let\strut\empty \let\endstrut\empty \let\begstrut\empty \let\crlfplaceholder\empty} % unsave: % % \def\pseudostrut % {\bgroup % \setnostrut % \normalstrut % \egroup} % % try: % % \startchemie % \chemie[ONE,Z0,SB15,MOV1,SB15,Z0][C,C] % \stopchemie % % so: \def\pseudostrut {\noindent} % better: \dontleavehmode \let\pseudobegstrut\pseudostrut \let\pseudoendstrut\removeunwantedspaces \def\resetteststrut {\let\strutwidth\zeropoint \setstrut} \ifx\setfontparameters\undefined % problems ! ! ! ! \def\setfontparameters{\the\everybodyfont} \fi %D Handy: \def\baselinedistance{\the\lineheight} %D We need \type{\normaloffinterlineskip} because the new %D definition contains an assignment, and |<|don't ask me %D why|>| this assignment gives troubles in for instance the %D visual debugger. %D The plain ones: \def\offinterlineskip {\baselineskip-\thousandpoint \lineskip\zeropoint \lineskiplimit\maxdimen} \def\nointerlineskip {\prevdepth-\thousandpoint} \let\normaloffinterlineskip=\offinterlineskip % knuth's original %D My own one: \def\offinterlineskip {\ifdim\baselineskip>\zeropoint \edef\oninterlineskip {\baselineskip\the\baselineskip \lineskip\the\lineskip \lineskiplimit\the\lineskiplimit \let\noexpand\offinterlineskip\noexpand\normaloffinterlineskip}% \else \let\oninterlineskip\setnormalbaselines \fi \normaloffinterlineskip} \let\oninterlineskip=\relax \def\leaveoutervmode {\ifvmode\ifinner\else \leavevmode \fi\fi} % We stellen enkele penalties anders in dan Plain TEX: % oud % % \widowpenalty=\defaultwidowpenalty\relax % \clubpenalty =\defaultclubpenalty \relax \def\resetpenalties#1% {\ifx#1\undefined\else #1\minusone \fi} \def\setpenalties#1#2#3% {\ifx#1\undefined\else % space before #3 prevents lookahead problems, needed when #3=text #1\numexpr#2+\plusone\relax\space\doexpandedrecurse{\the\numexpr#2\relax}{ #3}\zerocount\relax \fi} \def\doexpandedrecurse#1#2% {\ifnum#1>\zerocount#2\@EA\doexpandedrecurse\@EA{\the\numexpr#1-1\relax}{#2}\fi} %D \macros %D {keeplinestogether} %D %D Dirty hack, needed in margin content that can run of a page. \def\keeplinestogether#1% {\xdef\restoreinterlinepenalty{\global\resetpenalties\interlinepenalties}% \global\setpenalties\interlinepenalties{#1}\plustenthousand} \newif\ifgridsnapping % to be sure \def\defaultwidowpenalty {2000} % was: 1000 \def\defaultclubpenalty {2000} % was: 800 \def\defaultdisplaywidowpenalty {50} \def\defaultbrokenpenalty {100} \def\defaultgridwidowpenalty {0} \def\defaultgridclubpenalty {0} \def\defaultgriddisplaywidowpenalty {0} \def\defaultgridbrokenpenalty {0} % The original approach: % % \def\setdefaultpenalties % {\ifgridsnapping % \widowpenalty\defaultgridwidowpenalty % \clubpenalty \defaultgridclubpenalty % \else % \widowpenalty\defaultwidowpenalty % \clubpenalty \defaultclubpenalty % \fi} % % However, we will use setups: % to be documented \def\nopenalties {\widowpenalty \zerocount \clubpenalty \zerocount \brokenpenalty \zerocount \doublehyphendemerits\zerocount \finalhyphendemerits \zerocount \adjdemerits \zerocount} \def\setdefaultpenalties {\directsetup{\systemsetupsprefix\s!default}} \startsetups [\systemsetupsprefix\s!reset] \resetpenalties\widowpenalties \resetpenalties\clubpenalties \resetpenalties\interlinepenalties \stopsetups % we use \directsetup because it's faster and we know there is no csl \startsetups [\systemsetupsprefix\s!default] \directsetup{\systemsetupsprefix\s!reset} \widowpenalty \defaultwidowpenalty \clubpenalty \defaultclubpenalty \displaywidowpenalty\defaultdisplaywidowpenalty \brokenpenalty \defaultbrokenpenalty \stopsetups \startsetups [\v!grid] [\systemsetupsprefix\s!default] \directsetup{\systemsetupsprefix\s!reset} \widowpenalty \defaultgridwidowpenalty \clubpenalty \defaultgridclubpenalty \displaywidowpenalty\defaultgriddisplaywidowpenalty \brokenpenalty \defaultgridbrokenpenalty \stopsetups % as an illustration: \startsetups [\systemsetupsprefix\v!strict] \directsetup{\systemsetupsprefix\s!reset} \setpenalties\widowpenalties2\maxdimen \setpenalties\clubpenalties 2\maxdimen \brokenpenalty \maxdimen \stopsetups \setdefaultpenalties % will happen later in \setuplayout % Suggested by GB (not the name -): \def\rapfillskip{.5\hsize plus .092\hsize minus .5\hsize} % D.A.'s value % Bovendien definieren we enkele extra \fill's: \def\hfilll{\hskip\zeropoint\!!plus1filll\relax} \def\vfilll{\vskip\zeropoint\!!plus1filll\relax} % De onderstaande hulpmacro's moeten nog eens instelbaar worden % gemaakt. \def\tfskipsize{1em\relax} \def\tfkernsize{1ex\relax} \def\tfskip{\dotfskip\tfskipsize} \def\tfkern{\dotfkern\tfkernsize} \def\dotfskip#1{{\tf\hskip#1}} \def\dotfkern#1{{\tf\kern #1}} % needs a proper \definenarrower or installnarrower \newskip\ctxleftskip \newskip\ctxrightskip \newskip\ctxmidskip \def\dosinglenarrower#1% {\processaction [#1] [ \v!left=>\global\advance\ctxleftskip \@@slleft, \v!middle=>\global\advance\ctxmidskip \@@slmiddle, \v!right=>\global\advance\ctxrightskip \@@slright, -\v!left=>\global\advance\ctxleftskip -\@@slleft, -\v!middle=>\global\advance\ctxmidskip -\@@slmiddle, -\v!right=>\global\advance\ctxrightskip-\@@slright, \v!reset=>\global\ctxleftskip \zeropoint \global\ctxmidskip \zeropoint \global\ctxrightskip\zeropoint, \v!none=>, \s!unknown=>\global\advance\ctxmidskip \commalistelement]} % \def\donarrower[#1]% hm, can be dorepeat directly % {\processaction % [#1] % [ \v!left=>\global\advance\ctxleftskip \@@slleft, % \v!middle=>\global\advance\ctxmidskip \@@slmiddle, % \v!right=>\global\advance\ctxrightskip \@@slright, % \v!none=>,% handy for delimitedtexts % \s!unknown=>{\dorepeatwithcommand[#1]\dosinglenarrower}]} \def\donarrower[#1]% hm, can be dorepeat directly {\dorepeatwithcommand[#1]\dosinglenarrower} \def\complexstartnarrower[#1]% {\@@slbefore % was hard coded \par \bgroup \global\ctxleftskip \zeropoint \global\ctxrightskip\zeropoint \global\ctxmidskip \zeropoint \processcommalistwithparameters[#1]\donarrower \advance\leftskip \ctxleftskip \advance\rightskip \ctxrightskip \advance\leftskip \ctxmidskip \advance\rightskip \ctxmidskip \seteffectivehsize} % todo: definenarrower \def\simplestartnarrower {\startnarrower[\v!middle]} \definecomplexorsimple\startnarrower \def\stopnarrower {\@@slafter % was hard coded \par / needed, else skips forgotten \egroup} \def\setupnarrower {\dodoubleargument\getparameters[\??sl]} \newdimen\@@effectivehsize \def\effectivehsize {\hsize} \newdimen\@@effectiveleftskip \def\effectiveleftskip {\leftskip} \newdimen\@@effectiverightskip \def\effectiverightskip{\rightskip} \def\seteffectivehsize {\setlocalhsize \@@effectivehsize \localhsize \@@effectiveleftskip \leftskip \@@effectiverightskip \rightskip \let\effectivehsize \@@effectivehsize \let\effectiveleftskip \@@effectiveleftskip \let\effectiverightskip\@@effectiverightskip} \def\dodefinehbox[#1][#2]% {\setvalue{hbox#1}##1% {\hbox to #2{\begstrut##1\endstrut\hss}}} \def\definehbox {\dodoubleargument\dodefinehbox} \def\iobox#1#2#3#% here #3# is not really needed {\vbox\bgroup % we want to return a vbox like the others \hbox\bgroup% we need to pack the signal with the box \signalrightpage \dowithnextboxcontent {\let\\=\endgraf\forgetall\doifrightpageelse#1#2} {\box\nextbox\egroup\egroup} \vbox#3} \def\obox{\iobox\raggedleft \raggedright} % outerbox \def\ibox{\iobox\raggedright\raggedleft} % innerbox \def\dosetraggedvbox#1% {\let\raggedbox\vbox \processfirstactioninset [#1] [ \v!left=>\let\raggedbox\lbox, \v!right=>\let\raggedbox\rbox, \v!middle=>\let\raggedbox\cbox, \v!inner=>\let\raggedbox\ibox, \v!outer=>\let\raggedbox\obox, \v!flushleft=>\let\raggedbox\rbox, \v!flushright=>\let\raggedbox\lbox, \v!center=>\let\raggedbox\cbox, \v!no=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=}]} \def\dosetraggedhbox#1% {\let\raggedbox\hbox \processaction % slow [#1] [ \v!left=>\def\raggedbox{\doalignedline\v!left }, \v!right=>\def\raggedbox{\doalignedline\v!right }, \v!middle=>\def\raggedbox{\doalignedline\v!middle}, \v!inner=>\def\raggedbox{\doalignedline\v!inner }, \v!outer=>\def\raggedbox{\doalignedline\v!outer }, \v!flushleft=>\def\raggedbox{\doalignedline\v!right }, \v!flushright=>\def\raggedbox{\doalignedline\v!left }, \v!center=>\def\raggedbox{\doalignedline\v!middle}]} \def\dosetraggedcommand#1% {\expanded{\dodosetraggedcommand{#1}}} % \def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that! % {\let\raggedcommand \relax % \let\raggedtopcommand \empty % \let\raggedbottomcommand\empty % \chardef\raggedoneliner\zerocount % \doifsomething{#1} % {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse % \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse % \!!donectrue % \rawprocesscommalist[#1]\dododosetraggedcommand}} \newtoks\everyraggedcommand \def\raggedcommand{\the\everyraggedcommand} \def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that! {\everyraggedcommand \emptytoks \let\raggedtopcommand \empty \let\raggedbottomcommand\empty \chardef\raggedoneliner\zerocount \doifsomething{#1} {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse \!!donectrue \rawprocesscommalist[#1]\dododosetraggedcommand}} \def\dododosetraggedcommand#1% {\executeifdefined{\@@ragged@@command\string#1}\relax} \def\@@ragged@@command{@@raggedcommand} \setvalue{\@@ragged@@command\v!hanging }{\appendtoks\enableprotruding \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!nothanging }{\appendtoks\disableprotruding \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!hz }{\appendtoks\enableadjusting \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!nohz }{\appendtoks\disableadjusting \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!spacing }{\appendtoks\enablespacehandling \enablekernhandling \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!nospacing }{\appendtoks\disablespacehandling \disablekernhandling \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!hyphenated }{\appendtoks\dohyphens \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!nothyphenated}{\appendtoks\nohyphens \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!tolerant }{\appendtoks\tolerance3000\relax \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!verytolerant}{\appendtoks\tolerance4500\relax \to\everyraggedcommand} \setvalue{\@@ragged@@command\v!stretch }{\appendtoks\emergencystretch\bodyfontsize\to\everyraggedcommand} \setvalue{\@@ragged@@command\v!left}% {\if!!donea \appendtoks\veryraggedleft\to\everyraggedcommand \else \appendtoks\raggedleft \to\everyraggedcommand \fi \!!donecfalse} \setvalue{\@@ragged@@command\v!right}% {\if!!donea \appendtoks\veryraggedright\to\everyraggedcommand \else \appendtoks\raggedright \to\everyraggedcommand \fi \!!donecfalse} \setvalue{\@@ragged@@command\v!middle}% {\if!!donec \if!!doneb \appendtoks\raggedwidecenter\to\everyraggedcommand \else\if!!donea \appendtoks\veryraggedcenter\to\everyraggedcommand \else \appendtoks\raggedcenter \to\everyraggedcommand \fi\fi \!!donecfalse \else \let\raggedbottomcommand\vfilll % bonus, pretty strong \let\raggedtopcommand \vfilll % used with \framed for \fi} % instance in tables \setvalue{\@@ragged@@command\v!flushleft }{\getvalue{\@@ragged@@command\v!right }} \setvalue{\@@ragged@@command\v!flushright}{\getvalue{\@@ragged@@command\v!left }} \setvalue{\@@ragged@@command\v!center }{\getvalue{\@@ragged@@command\v!middle}} \setvalue{\@@ragged@@command\v!high}% {\let\raggedbottomcommand\vfilll} % and since we lack a \setvalue{\@@ragged@@command\v!low}% {\let\raggedtopcommand\vfilll} % proper keyword, but \setvalue{\@@ragged@@command\v!lohi}% {\let\raggedbottomcommand\vfilll % we do support the \let\raggedtopcommand\vfilll} % ugly laho (lohi) \setvalue{\@@ragged@@command\v!no}% {\appendtoks\raggedright\to\everyraggedcommand} \setvalue{\@@ragged@@command\v!yes}% {\appendtoks\notragged\to\everyraggedcommand} \setvalue{\@@ragged@@command\v!normal}% {\appendtoks\notragged\to\everyraggedcommand} \setvalue{\@@ragged@@command\v!inner}% not yet perfect {\signalrightpage % may interfere \doifrightpageelse {\getvalue{\@@ragged@@command\v!right}} {\getvalue{\@@ragged@@command\v!left}}} \setvalue{\@@ragged@@command\v!outer}% not yet perfect {\signalrightpage % may interfere \doifrightpageelse {\getvalue{\@@ragged@@command\v!left}} {\getvalue{\@@ragged@@command\v!right}}} \setvalue{\@@ragged@@command\v!lesshyphenation}% {\appendtoks\lesshyphens\to\everyraggedcommand} \setvalue{\@@ragged@@command\v!morehyphenation}% {\appendtoks\morehyphens\to\everyraggedcommand} % compare: % % \framed[width=4cm,align=no] {\hfil xxx} % \framed[width=4cm,align=disable]{\hfil xxx} \setvalue{\@@ragged@@command\v!disable}% for one liners {\appendtoks\raggedright\parfillskip\zeropoint\to\everyraggedcommand} \chardef\raggedoneliner\zerocount \setvalue{\@@ragged@@command\v!line}% {\chardef\raggedoneliner\plusone} %D Unofficial, may disappear. Now handled directly in the %D core-rul module. % \def\@@startraggedoneliner % {\ifcase\raggedoneliner\else % \dontleavehmode\hbox to \hsize \bgroup % hsize added, else useless % \ifcase\raggedstatus\or\hss\or\hss\fi % \ignorespaces % \bgroup % \aftergroup\removeunwantedspaces % \fi} % \def\@@stopraggedoneliner % {\ifcase\raggedoneliner\else % \egroup % \ifcase\raggedstatus\or\or\hss\or\hss\fi % \egroup % \ignorespaces % ? ? ? % \fi} % \def\@@handleoneliner % {\ifcase\raggedoneliner\else % \@@startraggedoneliner % \aftergroup\@@stopraggedoneliner % \fi} % Nog doen: % % \goodbreak -> \allowbreak en \dosomebreak{..} in koppen % % bij koppen zowieso: \blanko[reset] % Nog in commando verwerken: % % \voorkeur la \blanko % % Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break} % een \penalty voor witruimte worden geplaatst. \def\removelastskip % a redefinition of plain {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi} % first version: % % \def\dosomebreak#1% % {\scratchskip\lastskip % \removelastskip % %\type{#1}% % #1\relax % \ifdim\scratchskip=\zeropoint \else % \vskip\scratchskip % \fi} % % don't change the next improvement: % \def\dosomebreak#1% % {\endgraf % beware, this forces a newline % \ifvmode % \ifdim\lastskip=\zeropoint % #1\relax % \else % \scratchskip\lastskip % \removelastskip % #1\relax % \vskip\scratchskip % \fi % \fi} % beter, vooral in \vbox; nog in \pagina toepassen s! \def\doifoutervmode#1% {\ifvmode\ifinner\else#1\fi\fi} \ifx\dosomebreak\undefined % defined in mkiv \def\dosomebreak#1% {\doifoutervmode {\scratchskip\lastskip \removelastskip %\leavevmode\type{#1}% #1\relax \ifdim\scratchskip=\zeropoint % else interference with footnotes \else \vskip\scratchskip \fi}} \fi \def\forgeteverypar {\everypar{\the\neverypar}} %\def\forgetparindent % {\forgeteverypar % \indentfirstparagraphtrue % recently added % \setupindenting[\v!geen]} %\def\forgetparskip % {\setupwhitespace[\v!geen]} \def\forgetparindent {\forgeteverypar \indentfirstparagraphtrue % recently added \let\currentindentation\v!none \ctxparindent\zeropoint \parindent\zeropoint\relax} \def\forgetparskip {\let\currentwhitespace\v!none \ctxparskip\zeropoint \parskip\zeropoint\relax} \def\forgetbothskips {\tolerance1500 \leftskip\zeropoint \rightskip\zeropoint\relax} \def\forgetspacing {\emergencystretch\zeropoint} \newif\ifforgotten % rather good signal for inner \appendtoks \forgottentrue \to \everyforgetall \appendtoks \forgetragged \to \everyforgetall \appendtoks \forgetparskip \to \everyforgetall \appendtoks \forgetparindent \to \everyforgetall \appendtoks \forgetbothskips \to \everyforgetall \appendtoks \forgetspacing \to \everyforgetall % i.v.m. funny spacing in pagebody \appendtoks \spacing\!!plusone \to \everyforgetall % new per 10/08/2004, else problems in otr / !! needed \appendtoks \everypar\emptytoks \to \everyforgetall % indeed! \def\localvbox#1#% {\vbox#1\bgroup \forgetparskip \setlocalhsize \hsize\localhsize \forgetparindent \forgetbothskips \forgeteverypar \let\next=} % ach ja, hoort niet hier % \unexpanded\def\dostartattributes#1#2#3% % {\begingroup % geen \bgroup, anders in mathmode lege \hbox % \doifdefinedelse{#1#2} % {\def\fontattribute{\getvalue{#1#2}}} % {\let\fontattribute=\empty}% % \doifdefinedelse{#1#3} % {\def\colorattribute{\getvalue{#1#3}}} % {\let\colorattribute=\empty}% % \startcolor[\colorattribute]% % \@EA\doconvertfont\@EA{\fontattribute}} % % \unexpanded\def\dostopattributes% % {\stopcolor % \endgroup} % % \unexpanded\def\doattributes#1#2#3#4% % {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes} %D A hardly faster implementation follows. We cannot use %D \type {csname} testing since the first argument can be %D anything, even a raw fontswitch. No a real improvement %D (some 5 seconds on 260 seconds for the maps bibliography). \let\dostopattributes\relax % in case these commands end up in an edef \unexpanded\def\dostartattributes#1#2#3% {\begingroup % geen \bgroup, anders in mathmode lege \hbox \ifcsname#1#3\endcsname \let\dostopattributes\@@dostopattributes \startcolor[\csname#1#3\endcsname]% \else \let\dostopattributes\@@nostopattributes \fi \ifcsname#1#2\endcsname \expandafter\doconvertfont \else \expandafter\gobbleoneargument \fi{\csname#1#2\endcsname}} \newconditional \parbasedattributes \def\finishparbasedattributes {\ifconditional\parbasedattributes \setfalse\parbasedattributes \par \fi} \def\dostopparbasedattributes {\settrue\parbasedattributes \dostopattributes} \unexpanded\def\@@dostopattributes {\stopcolor \finishparbasedattributes \endgroup} \unexpanded\def\@@nostopattributes {\finishparbasedattributes \endgroup} \unexpanded\def\doattributes#1#2#3#4% {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes} % An even faster \ETEX\ version: \unexpanded\def\dostartattributes#1#2#3% {\begingroup % geen \bgroup, anders in mathmode lege \hbox \ifincolor \ifcsname#1#3\endcsname \let\dostopattributes\@@dostopattributes \faststartcolor[\csname#1#3\endcsname]% \else \let\dostopattributes\@@nostopattributes \fi \else \let\dostopattributes\@@nostopattributes \fi \ifcsname#1#2\endcsname % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname \@EA\doconvertfont\csname#1#2\@EA\endcsname \fi} \unexpanded\def\@@dostopattributes {\faststopcolor \finishparbasedattributes \endgroup} \unexpanded\def\@@nostopattributes {\finishparbasedattributes \endgroup} %D Bonus macro, see core-sec.tex \unexpanded\def\dosetfontattribute#1#2% {\ifcsname#1#2\endcsname \@EA\doconvertfont\csname#1#2\@EA\endcsname \fi\empty} %D Since this happens a lot, and sometimes large arguments %D are passed in \type {#4}, we just copy some code: \unexpanded\def\doattributes#1#2#3#4% {\begingroup % geen \bgroup, anders in mathmode lege \hbox \ifincolor \ifcsname#1#3\endcsname \let\dostopattributes\@@dostopattributes \faststartcolor[\csname#1#3\endcsname]% \else \let\dostopattributes\endgroup \fi \else \let\dostopattributes\endgroup \fi \ifcsname#1#2\endcsname % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname \@EA\doconvertfont\csname#1#2\@EA\endcsname \fi {#4}% \dostopattributes} % Kan vaker worden toegepast en moet bovendien sneller! \newskip\leftskipadaption \newskip\rightskipadaption \def\doadaptleftskip#1% {\dosetleftskipadaption{#1}% \advance\leftskip \leftskipadaption} \def\doadaptrightskip#1% {\dosetrightskipadaption{#1}% \advance\rightskip \rightskipadaption} \setvalue{@lsa@\v!standard}{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi} \setvalue{@lsa@\v!yes }{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi} \letvalue{@lsa@\v!no }\zeropoint \letvalue{@lsa@\empty }\zeropoint \setvalue{@rsa@\v!standard}{\@@slright} \setvalue{@rsa@\v!yes }{\@@slright} \letvalue{@rsa@\v!no }\zeropoint \letvalue{@rsa@\empty }\zeropoint % not safe for 2\parindent % % \def\dosetleftskipadaption#1% % {\leftskipadaption % \ifcsname @lsa@#1\endcsname % \csname @lsa@#1\endcsname % \else % #1% % \fi % \relax} \def\dosetleftskipadaption#1% {\edefconvertedargument\ascii{@lsa@#1}% \leftskipadaption \ifcsname\ascii\endcsname \csname\ascii\endcsname \else #1% \fi \relax} \def\dosetrightskipadaption#1% {\edefconvertedargument\ascii{@rsa@#1}% \rightskipadaption \ifcsname\ascii\endcsname \csname\ascii\endcsname \else #1% \fi \relax} \newcount \noftrackedpagestates \newif \ifpagestatemismatch \newcount \realpagestateno \chardef \frozenpagestate \zerocount \def\dotrackpagestate#1#2% {\ifdoublesided \ifinpagebody \else \doforcedtrackpagestate{#1}{#2}% \fi \fi} \def\doforcedtrackpagestate#1#2% {\ifcase\frozenpagestate \global\advance\noftrackedpagestates\plusone \global\advance#2\plusone \lazysavetaggedtwopassdata{#1}{\number\noftrackedpagestates}{\number#2}{\noexpand\realfolio}% %\llap{\infofont\number\noftrackedpagestates/\number#2}% tracing \fi} \def\doifrightpagestateelse#1#2% {\ifcase\frozenpagestate \pagestatemismatchfalse \realpagestateno\realfolio \ifinpagebody \ifdoublesided \ifodd\realpageno\relax \twopassdatafoundtrue \else \twopassdatafoundfalse \fi \else \twopassdatafoundtrue \fi \else\ifdoublesided \findtwopassdata{#1}{\number#2}% \iftwopassdatafound \realpagestateno\twopassdata\relax \ifnum\twopassdata=\realpageno \else \pagestatemismatchtrue \fi \ifodd\twopassdata\relax \twopassdatafoundtrue \else \twopassdatafoundfalse \fi \else \ifodd\realpageno\relax \twopassdatafoundtrue \else \twopassdatafoundfalse \fi \fi \else \twopassdatafoundtrue \fi\fi \else \ifodd\realpagestateno\relax \twopassdatafoundtrue \else \twopassdatafoundfalse \fi \fi \iftwopassdatafound \@EA\firstoftwoarguments \else \@EA\secondoftwoarguments \fi} \def\doifforcedrightpagestateelse#1#2% {\ifcase\frozenpagestate \pagestatemismatchfalse \realpagestateno\realfolio \findtwopassdata{#1}{\number#2}% \iftwopassdatafound \realpagestateno\twopassdata\relax \ifnum\twopassdata=\realpageno \else \pagestatemismatchtrue \fi \ifodd\twopassdata\relax \twopassdatafoundtrue \else \twopassdatafoundfalse \fi \else \ifodd\realpageno\relax \twopassdatafoundtrue \else \twopassdatafoundfalse \fi \fi \else \ifodd\realpagestateno\relax \twopassdatafoundtrue \else \twopassdatafoundfalse \fi \fi \iftwopassdatafound \@EA\firstoftwoarguments \else \@EA\secondoftwoarguments \fi} \def\freezepagestate {\chardef\frozenpagestate\plusone } \def\defrostpagestate{\chardef\frozenpagestate\zerocount} % we can make more of these on top, but how to deal with mixed frozen states \definetwopasslist\s!paragraph \newcount \nofraggedparagraphs \def\signalrightpage {\dotrackpagestate \s!paragraph\nofraggedparagraphs} \def\doifrightpageelse{\doifrightpagestateelse\s!paragraph\nofraggedparagraphs} \newcount\pagesignallevel \def\startsignalrightpage % one may do a \postsignalrightplace {\advance\pagesignallevel\plusone \presignalrightpage \let\signalrightpage\relax \let\presignalrightpage\relax \let\startsignalrightpage\relax \doifrightpageelse\donothing\donothing \freezepagestate} \def\stopsignalrightpage {\ifcase\pagesignallevel\or\postsignalrightpage\fi \advance\pagesignallevel\minusone} \def\setraggedparagraphmode {\signalrightpage\doifrightpageelse} % move it there \ifx\swapmargins\undefined \let\swapmargins\undefined \fi % todo \def\doifswappedrightpageelse#1#2% alleen in box construction ! {\doifrightpageelse {#1} {\scratchcounter\realpageno \realpageno\realpagestateno\relax \swapmargins \realpageno\scratchcounter #2}} \newbox\signaledrightpage % this way we can avoid interference, i.e. postpone placement \def\presignalrightpage {\global\setbox\signaledrightpage\hbox{\signalrightpage}} \def\postsignalrightpage{\ifvoid\signaledrightpage\else\box\signaledrightpage\fi} % The next feature is is used in: % % \definenumber[test][way=bypage] % % \def\Test % {\incrementnumber[test]\rawnumber[test]/% % \incrementnumber[test]\rawnumber[test]/% % \incrementnumber[test]\rawnumber[test]\space % \checkpagechange{oeps}\changedpage{oeps}\space % \ifpagechanged TRUE\else FALSE\fi} % % \Test\page \Test\par \Test\page \Test\par \Test\page \Test\page % % (adapted from cont-new.tex:) \newif\ifpagechanged \let\lastchangedpage\empty \def\docheckpagestatechange#1#2#3% {\pagechangedfalse \doforcedtrackpagestate{#2}{#3}% \findtwopassdata{#2}{\number#3}% \iftwopassdatafound \ifnum\twopassdata>0\getvalue{#2:p:#1}\relax \pagechangedtrue \fi \fi \ifpagechanged \letgvalue{#2:p:#1}\twopassdata \globallet\lastchangedpage\twopassdata \else \globallet\lastchangedpage\realfolio \fi} \def\changedpagestate#1#2% {\executeifdefined{#2:p:#1}{0}} \def\checkpagechange#1{\docheckpagestatechange{#1}\s!paragraph\nofraggedparagraphs} \def\changedpage #1{\changedpagestate{#1}\s!paragraph} % saved struts \ifx\savedstrutbox\undefined \newbox\savedstrutbox \fi \def\savestrut {\setbox\savedstrutbox\copy\strutbox} \def\savedstrut{\copy \savedstrutbox} % De onderstaande macro's zijn opgenomen in Plain TeX. % % \def\raggedright% % {\rightskip\zeropoint plus2em \spaceskip.3333em \xspaceskip.5em\relax} % % \def\ttraggedright% % {\tttf\rightskip\zeropoint plus2em\relax} % % \newif\ifr@ggedbottom % % \def\raggedbottom% % {\topskip 10\points plus60\points \r@ggedbottomtrue} % % \def\normalbottom% % {\topskip 10\points \r@ggedbottomfalse} % % en worden hieronder wat aangepast. % the three boolean will become obsolete some day in favour % of \bottomraggedness \chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline \def\bottomalignlimit{3\lineheight} \newif\ifn@rmalbottom \newif\ifr@ggedbottom \newif\ifb@selinebottom \def\normalbottom {% \topskip 10pt \r@ggedbottomfalse} \def\raggedbottom {\chardef\bottomraggedness\zerocount \n@rmalbottomfalse \r@ggedbottomtrue \b@selinebottomfalse \settopskip} \def\alignbottom {\chardef\bottomraggedness\plusone \n@rmalbottomtrue \r@ggedbottomfalse \b@selinebottomfalse \settopskip} \def\baselinebottom {\chardef\bottomraggedness\plustwo \n@rmalbottomfalse \r@ggedbottomfalse \b@selinebottomtrue \settopskip} \let\normalbottom=\alignbottom % downward compatible % so, the new one will be % % \chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline % % \def\bottomalignlimit{3\lineheight} % will be settable % % \def\raggedbottom {\chardef\bottomraggedness=0 \settopskip} % \def\alignbottom {\chardef\bottomraggedness=1 \settopskip} % \def\baselinebottom{\chardef\bottomraggedness=2 \settopskip} % % \let\normalbottom =\alignbottom % \hyphenpenalty = ( 2.5 * \hsize ) / \raggedness % \tolerance >= 1500 % was 200 % \raggedness = 2 .. 6\bodyfontsize \chardef\raggedstatus=0 % normal left center right \def\leftraggedness {2\bodyfontsize} \def\rightraggedness {2\bodyfontsize} \def\middleraggedness {6\bodyfontsize} \def\middleraggedness {.5\hsize} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{} % oeps, hsize can be 0pt in which case we get a strange division \def\middleraggedness {\ifdim\hsize=\zeropoint6\bodyfontsize\else.5\hsize\fi} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{} %D More hyphenation control, will be combined with align %D setup. \def\nohyphens {\ifx\dohyphens\relax \edef\dohyphens {\hyphenpenalty\the\hyphenpenalty \exhyphenpenalty\the\exhyphenpenalty\relax}% \fi \hyphenpenalty\plustenthousand \exhyphenpenalty\plustenthousand} \let\dohyphens\relax %D To prevent unwanted side effects, we also have to check %D for hyphens here: % \def\setraggedness#1% % {\ifnum\tolerance<1500\relax % small values have % \tolerance1500\relax % unwanted side effects % \fi % \spaceskip2.5\hsize % we misuse these registers % \xspaceskip#1\relax % for temporary storage; % \divide\spaceskip \xspaceskip % they are changed anyway % \ifx\dohyphens\relax % \hyphenpenalty\spaceskip % \else no hyphens is active % \fi} \newskip\@@raggedskipa \newskip\@@raggedskipb \def\setraggedness#1% {\ifnum\tolerance<1500\relax % small values have \tolerance1500\relax % unwanted side effects \fi \ifx\dohyphens\relax % this code will be reconsidered / kind of fuzzy (and old) \@@raggedskipa 2.5\hsize \@@raggedskipb #1\relax \divide\@@raggedskipa \@@raggedskipb \hyphenpenalty\@@raggedskipa \fi} \let\updateraggedskips\relax \def\setraggedskips#1#2#3#4#5#6#7% never change this name {\def\updateraggedskips{\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}{#7}}% \updateraggedskips} \def\dosetraggedskips#1#2#3#4#5#6#7% {\chardef \raggedstatus#1\relax \leftskip 1\leftskip \!!plus#2\relax % zie: Tex By Topic 8.1.3 \rightskip 1\rightskip\!!plus#3\relax % zie: Tex By Topic 8.1.3 \spaceskip #4\relax \xspaceskip #5\relax \parfillskip\zeropoint\!!plus#6\relax \parindent #7\relax} % \def\notragged% % {\setraggedskips{0}{0em}{0em}{0em}{0em}{1fil}{\parindent}} % older (context) names: \let\spaceamount \interwordspace \let\emspaceamount\emwidth % tracing: \def\doshowpardata#1% {\ifx#1\relax\else \hbox{\string#1: \the#1}\endgraf \expandafter\doshowpardata \fi} \def\showpardata {\edef\thepardata {\hbox{font: \fontname\font}\endgraf \doshowpardata \interwordspace \interwordstretch \interwordshrink \emwidth \exheight \extraspace \hsize \vsize \leftskip \rightskip \spaceskip \xspaceskip \parindent \parfillskip \hyphenpenalty \exhyphenpenalty \displaywidowpenalty \widowpenalty \clubpenalty \brokenpenalty \doublehyphendemerits \finalhyphendemerits \adjdemerits \relax}% \begingroup \dontshowcomposition \inleftmargin{\vsmash {\switchtobodyfont[7pt,tt]% \framed[\c!align=\v!right]{\thepardata}}}% \endgroup} \def\startshowpardata {\begingroup \showcomposition \showstruts\tracepositionstrue \tracingparagraphs\maxdimen \appendtoksonce\showpardata\let\showpardata\relax\to\everypar} \def\stopshowpardata {\endgraf \endgroup} % \defineXMLenvironment[showpardata] \startshowpardata \stopshowpardata % \defineXMLsingular [showpardata] \showpardata % defaults \def\raggedfillamount {1fil} \def\raggedhalffillamount{.5fil} \def\raggedspaceamount {\interwordspace} % {.3333em} \def\raggedxspaceamount {.5em} \def\notragged {\chardef\raggedstatus\zerocount \leftskip 1\leftskip \rightskip 1\rightskip \spaceskip \zeropoint \xspaceskip \zeropoint \parfillskip\zeropoint\!!plus\raggedfillamount\relax \let\updateraggedskips\relax} % new \let\forgetragged\notragged \def\raggedleft {\setraggedness\leftraggedness \setraggedskips1\leftraggedness\zeropoint\raggedspaceamount \raggedxspaceamount\zeropoint\zeropoint} \def\raggedcenter {\setraggedness\middleraggedness \setraggedskips2\middleraggedness\middleraggedness\raggedspaceamount \raggedxspaceamount\zeropoint\zeropoint} %D We used to have: %D %D \starttyping %D \def\raggedright %D {\setraggedness\rightraggedness %D \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}} %D \stoptyping %D %D However, the next alternative, suggested by Taco, is better. \def\raggedright {\setraggedness\rightraggedness \setraggedskips3\zeropoint\rightraggedness\raggedspaceamount \raggedxspaceamount\raggedfillamount\parindent} \def\veryraggedleft {\setraggedskips1\raggedfillamount\zeropoint\raggedspaceamount \raggedxspaceamount\zeropoint\zeropoint} %D When we want the last line to have a natural width: %D %D \starttyping %D \def\veryraggedleft% %D {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}} %D \stoptyping %D %D but this one is not accepted by the macros. \def\veryraggedcenter {\setraggedskips2\raggedfillamount\raggedfillamount\raggedspaceamount \raggedxspaceamount\zeropoint\zeropoint} \def\veryraggedright {\setraggedskips3\zeropoint\raggedfillamount\raggedspaceamount \raggedxspaceamount\zeropoint\parindent} \def\ttraggedright {\tttf \setraggedskips3\zeropoint\rightraggedness \zeropoint\zeropoint\zeropoint\parindent} % \ctxparindent %D A bonus one: \def\raggedwidecenter {\setraggedness\middleraggedness \setraggedskips2\raggedhalffillamount\raggedhalffillamount \raggedspaceamount\raggedxspaceamount\zeropoint\zeropoint} \newif\if@@asragged \@@asraggedtrue % old method % todo % % \setuplayout[grid=yes,lines=44] \showgrid % \starttext % test \vfill test \endgraf \strut \endgraf \vskip-\lineheight \removedepth \pagina test % \stoptext % \setupalign[reset,new,right,old] \def\@@align@@rl{\if!!donea\veryraggedleft \else\raggedleft \fi} \def\@@align@@rr{\if!!donea\veryraggedright \else\raggedright \fi} \def\@@align@@rc{\if!!donea\veryraggedcenter\else\raggedcenter\fi} \setvalue{@@ngila@@\v!broad }{\!!doneatrue} \setvalue{@@ngila@@\v!wide }{\!!donebtrue} \def\installalign#1#2{\setvalue{@@align@@#1}{#2}} % can be used for overloads \installalign \v!new {\@@asraggedfalse} \installalign \v!old {\@@asraggedtrue} \installalign \empty {} \installalign \v!line {\baselinebottom} \installalign \v!bottom {\raggedbottom} \installalign \v!height {\normalbottom} \installalign \v!width {\notragged} \installalign \v!normal {\notragged} \installalign \v!yes {\notragged} \installalign \v!no {\raggedright} \installalign \v!inner {\if@@asragged \setraggedparagraphmode\@@align@@rl\@@align@@rr \else \setraggedparagraphmode\@@align@@rr\@@align@@rl \fi} \installalign \v!outer {\if@@asragged \setraggedparagraphmode\@@align@@rr\@@align@@rl \else \setraggedparagraphmode\@@align@@rl\@@align@@rr \fi} \installalign \v!left {\if@@asragged\@@align@@rl\else\@@align@@rr\fi} \installalign \v!right {\if@@asragged\@@align@@rr\else\@@align@@rl\fi} \installalign \v!middle {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi} \installalign \v!flushleft {\if!!donea\veryraggedright \else\raggedright\fi} \installalign \v!flushright {\if!!donea\veryraggedleft \else\raggedleft \fi} \installalign \v!flushouter {\setraggedparagraphmode\raggedleft\raggedright} \installalign \v!flushinner {\setraggedparagraphmode\raggedright\raggedleft} \installalign \v!center {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi} \installalign \v!hanging {\enableprotruding} \installalign \v!nothanging {\disableprotruding} \installalign \v!hz {\enableadjusting} \installalign \v!nohz {\disableadjusting} \installalign \v!spacing {\enablespacehandling \enablekernhandling} \installalign \v!nospacing {\disablespacehandling\disablekernhandling} \installalign \v!hyphenated {\dohyphens} \installalign \v!nothyphenated {\nohyphens} \installalign \v!new {\@@asraggedfalse} % so new will give you consistency \installalign \v!reset {\notragged\normalbottom} \installalign \v!tolerant {\tolerance3000 \relax} \installalign \v!verytolerant {\tolerance4500 \relax} \installalign \v!stretch {\emergencystretch\bodyfontsize} \newcount\hyphenminoffset \ifx\sethyphenationvariables\undefined \let\sethyphenationvariables\relax \fi \def\lesshyphens {\advance\hyphenminoffset\plusone \sethyphenationvariables} \def\morehyphens {\ifcase\hyphenminoffset \else \advance\hyphenminoffset\minusone \fi \sethyphenationvariables} \installalign \v!lesshyphenation {\lesshyphens} \installalign \v!morehyphenation {\morehyphens} \def\dodosetupalign#1{\csname @@align@@#1\endcsname} \def\dodosetupngila#1{\csname @@ngila@@#1\endcsname} \def\setupalign {\dosingleargument\dosetupalign} \def\dosetupalign[#1]% can be made faster by checking for defined #1 {\!!doneafalse \!!donebfalse \processcommacommand[#1]\dodosetupngila \processcommacommand[#1]\dodosetupalign} % \setupalign[flushleft] \input ward \par % lijnlinks % \setupalign[right] \input ward \par % \setupalign[flushright] \input ward \par % lijnrechts % \setupalign[left] \input ward \par % \setupalign[middle] \input ward \par % centreer % \setupalign[center] \input ward \par \def\startalignment {\bgroup \setupalign} \def\stopalignment {\par \egroup} \chardef\alignstrutmode=1 % see later for the real definition, which in the simple case is: \newtoks \everyleftofalignedline \newtoks \everyrightofalignedline \def\shiftalignedline#1#2#3#4% left, right, inner, outer {\rightorleftpageaction {\everyleftofalignedline {\hskip\dimexpr#1+#3\relax}% \everyrightofalignedline{\hskip\dimexpr#2+#4\relax}} {\everyleftofalignedline {\hskip\dimexpr#1+#4\relax}% \everyrightofalignedline{\hskip\dimexpr#2+#3\relax}}} % \def\doalignline#1#2% \\ == newline % {\begingroup % \setlocalhsize % new % \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}% % \dowithnextbox % {\noindentation % was \noindent % \dontleavehmode % added in marrakesch at TUG 2006 % \hbox to \localhsize % {\ifcase\alignstrutmode\or\strut\fi % \the\everyleftofalignedline % #1\unhbox\nextbox#2\relax % \the\everyrightofalignedline}% % \endgroup} % \hbox} \def\doalignline#1#2% \\ == newline {\noindentation % was \noindent \dontleavehmode % added in marrakesch at TUG 2006\begingroup \begingroup \setlocalhsize % new \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}% \dowithnextbox {\hbox to \localhsize {\ifcase\alignstrutmode\or\strut\fi \the\everyleftofalignedline #1\unhbox\nextbox#2\relax \the\everyrightofalignedline}% \endgroup} \hbox} % plain commands \ifx\undefined\line \def\line {\hbox to\hsize} \fi \ifx\undefined\leftline \def\leftline #1{\line{#1\hss}} \fi \ifx\undefined\rightline \def\rightline #1{\line{\hss#1}} \fi \ifx\undefined\centerline \def\centerline#1{\line{\hss#1\hss}} \fi % directe commando's \def\leftaligned {\doalignline \relax \hss } \def\midaligned {\doalignline \hss \hss } \def\rightaligned{\doalignline \hss \relax} \let\centeraligned\midaligned \def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}} % to be translated % indirecte commando's \letvalue{\s!do\v!line\v!left }\leftaligned \letvalue{\s!do\v!line\v!right }\rightaligned \letvalue{\s!do\v!line\v!middle }\midaligned \letvalue{\s!do\v!line\v!flushleft }\rightaligned \letvalue{\s!do\v!line\v!flushright}\leftaligned \letvalue{\s!do\v!line\v!center }\midaligned \def\doalignedline#1{\csname\s!do\v!line#1\endcsname} %D Experimental: % simple version % % \def\doxalignline#1#2% % {\bgroup % \setlocalhsize % \def\\{\egroup\par\doxalignline{#1}{#2}\bgroup}% inefficient % \dowithnextbox % {\noindent\hbox to \localhsize % {\ifcase\alignstrutmode\or\strut\fi % \signalrightpage % \doifrightpageelse{#1\unhbox\nextbox#2}{#2\unhbox\nextbox#1}}% % \egroup} % \hbox} % % \setvalue{\s!do\v!regel\v!binnen}{\doxalignline\relax\hss} % \setvalue{\s!do\v!regel\v!buiten}{\doxalignline\hss\relax} % % more extensive: \def\doxalignline#1#2#3#4#5#6% {\noindentation % was \noindent \dontleavehmode % added in marrakesch at TUG 2006\begingroup \begingroup \setlocalhsize \def\\{\egroup\par\doxalignline#1#2#3#4#5#6\bgroup}% inefficient \dowithnextbox {%\noindent moved up \hbox to \localhsize {#1\hskip\ifdone#2\else#3\fi#4% \hbox to \localhsize {\the\everyleftofalignedline \ifcase\alignstrutmode\or\strut\fi \ifdone#5\unhbox\nextbox#6\else#6\unhbox\nextbox#5\fi \the\everyrightofalignedline}% \hss}% \endgroup} \hbox} \def\doxcheckline {\signalrightpage\doifrightpageelse\donetrue\donefalse} \setvalue{\s!do\v!line\v!inner }{\doxalignline\doxcheckline++\zeropoint \relax\hss } \setvalue{\s!do\v!line\v!outer }{\doxalignline\doxcheckline++\zeropoint \hss \relax} \setvalue{\s!do\v!line\v!innermargin}{\doxalignline\doxcheckline-+\innermargintotal\relax\hss } \setvalue{\s!do\v!line\v!outermargin}{\doxalignline\doxcheckline+-\outermargintotal\hss \relax} \setvalue{\s!do\v!line\v!inneredge }{\doxalignline\doxcheckline-+\inneredgetotal \relax\hss } \setvalue{\s!do\v!line\v!outeredge }{\doxalignline\doxcheckline+-\outeredgetotal \hss \relax} \setvalue{\s!do\v!line\v!backspace }{\doxalignline\doxcheckline-+\backspace \relax\hss } \setvalue{\s!do\v!line\v!cutspace }{\doxalignline\doxcheckline+-\cutspace \hss \relax} \setvalue{\s!do\v!line\v!leftmargin }{\doxalignline\donefalse --\leftmargintotal \hss \relax} \setvalue{\s!do\v!line\v!rightmargin}{\doxalignline\donefalse ++\rightmargintotal\relax\hss } \setvalue{\s!do\v!line\v!leftedge }{\doxalignline\donefalse --\leftedgetotal \hss \relax} \setvalue{\s!do\v!line\v!rightedge }{\doxalignline\donefalse ++\rightedgetotal \relax\hss } % ! ! ! beware, redefining \doalignline gives the wrong results ! ! ! % % \def\doalignline{\doxalignline\donefalse++\zeropoint} %D Better: \def\doalignedline#1{\csname\s!do\v!line#1\endcsname} % \def\alignedline#1#2% setting default % {\csname % \s!do\v!line % \ifundefined{\s!do\v!line#1}#2\else#1\fi % \endcsname} \def\alignedline#1#2% setting default {\csname\s!do\v!line\ifcsname\s!do\v!line#1\endcsname#1\else#2\fi\endcsname} %D ... \def\dosetuptolerance[#1]% {\doifinsetelse\v!vertical{#1}% {\ExpandFirstAfter\processallactionsinset [#1] [ \v!verystrict=>\def\bottomtolerance{}, \v!strict=>\def\bottomtolerance{.050}, \v!tolerant=>\def\bottomtolerance{.075}, \v!verytolerant=>\def\bottomtolerance{.100}]}% {\ExpandFirstAfter\processallactionsinset [#1] [ \v!stretch=>\emergencystretch\bodyfontsize, \v!space=>\spaceskip.5em\!!plus.25em\!!minus.25em\relax, \v!verystrict=>\tolerance 200, \v!strict=>\tolerance1500, \v!tolerant=>\tolerance3000, \v!verytolerant=>\tolerance4500]}} \def\setuptolerance {\dosingleargument\dosetuptolerance} % \def\woordrechts % {\groupedcommand{\hfill\hbox}{\parfillskip\zeropoint}} % beware: \wordright{whatever\kern-\rightskip} should work! % so, no funny boxing here \def\dowordright[#1]% {% don't change \groupedcommand {\removeunwantedspaces \hfill \allowbreak % changed back from \hskip\zeropoint \strut \hfill \quad % decent spacing \hbox} {\doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}% \parfillskip\zeropoint %\finalhyphendemerits\zerocount % yes or no \par}} \def\wordright {\dosingleempty\dowordright} % \dorecurse{5}{something } \wordright{--someone} \endgraf % \dorecurse{6}{something } \wordright{--someone} \endgraf % \dorecurse{7}{something } \wordright{--someone} \endgraf % % \dorecurse{5}{something } \wordright{--someone else entirely} \endgraf % \dorecurse{6}{something } \wordright{--someone else entirely} \endgraf % \dorecurse{7}{something } \wordright{--someone else entirely} \endgraf % % \wordright[\rightskip]{whatever} % \simplealignedbox{2cm}{right}{x} \setvalue{\s!simple\c!align\v!right }#1#2{\hbox to #1{#2\hss}} \setvalue{\s!simple\c!align\v!left }#1#2{\hbox to #1{\hss#2}} \setvalue{\s!simple\c!align\v!flushright }#1#2{\hbox to #1{\hss#2}} \setvalue{\s!simple\c!align\v!flushleft }#1#2{\hbox to #1{#2\hss}} \setvalue{\s!simple\c!align\v!middle }#1#2{\hbox to #1{\hss#2\hss}} \def\simplealignedbox#1{\executeifdefined{\s!simple\c!align#1}{\getvalue{\s!simple\c!align\v!right}}} %D \macros %D {pushindentation,popindentation} %D %D The pushing and popping is done by: \newbox\indentationboxA \newbox\indentationboxB \def\pushindentation {\bgroup \ifhmode \unskip \setbox\indentationboxA\lastbox % get \strut if present \unskip \setbox\indentationboxB\lastbox % get \indent generated box \unskip \else \hskip\zeropoint % switch to horizontal mode \unskip \setbox\indentationboxA\lastbox % get \indent generated box \setbox\indentationboxB\emptybox \fi} \def\popindentation {\box\indentationboxB\box\indentationboxA % put back the boxes \egroup} %D The only complication lays in \type{\strut}. In \PLAIN\ %D \TEX\ a \type{\strut} is defined as: %D %D \starttyping %D \def\strut% %D {\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} %D \stoptyping %D %D But what is a \type{\strut}? Normally it's a rule of width %D zero, but when made visual, it's a rule and a negative skip. %D The mechanism for putting things in the margins described %D here cannot handle this situation very well. One %D characteristic of \type{\strut} is that the \type{\unhcopy} %D results in entering horizontal mode, which in return leads %D to some indentation. %D %D To serve our purpose a bit better, the macro \type{\strut} %D can be redefined as: %D %D \starttyping %D \def\strut %D {\relax\ifmmode\else\hskip0pt\fi\copy\strutbox} %D \stoptyping %D %D Or more compatible: %D %D \starttyping %D \def\strut %D {\relax\ifmmode %D \copy\strutbox %D \else %D \bgroup\setbox\strutbox=\normalhbox{\box\strutbox}\unhcopy\strutbox\egroup %D \fi} %D \stoptyping %D %D In \CONTEXT\ however we save some processing time by putting %D an extra \type{\hbox} around the \type{\strutbox}. % moved from page-lin.tex to here (due to visualization added % in august 2003) % % \unexpanded \def\crlf % {\ifhmode\unskip\else\strut\fi\ifcase\raggedstatus\hfil\fi\break} \unexpanded \def\crlf {\ifhmode \unskip \prewordbreak\crlfplaceholder \ifcase\raggedstatus\hfil\or\or\or\hfil\fi \break \else \crlfplaceholder \endgraf \fi} \def\crlfplaceholder {\strut} \def\settestcrlf {\def\crlfplaceholder {\hbox to \zeropoint {\strut{\infofont\kern.25em}\lohi{\infofont CR}{\infofont LF}\hss}}} %D \starttyping %D % \setuplayout[gridgrid=yes] \showgrid %D %D \startbuffer %D test 1\crlf %D test 2\crlf %D %D \crlf test 3 %D %D test 4\crlf %D test 5 %D %D \crlf %D \crlf %D \crlf %D test 6 %D \stopbuffer %D %D \hbox %D {\hsize5em %D \ruledvtop{\getbuffer}\enspace %D \ruledvtop{\showstruts\getbuffer}\enspace %D \hsize15em \setuptyping[before=,after=]% %D \ruledvtop{\typebuffer}} %D \stoptyping \def\opeenregel % to be used grouped {\def\crlf{\removelastspace\space}\let\\\crlf} \def\showstruts {\setteststrut \settestcrlf} \def\definehspace {\dotripleempty\dodefinehspace} \def\dodefinehspace[#1][#2][#3]% #1 = optional namespace {\ifthirdargument \setvalue{\??hs#1:#2}{#3}% \else \setvalue{\??hs:#1}{#2}% \fi} \unexpanded\def\hspace {\dodoubleempty\dohspace} %\def\dohspace[#1][#2]% % {\ifhmode % \removeunwantedspaces % \hskip % \ifsecondargument % \hspaceamount{#1}{#2}% % \else % \hspaceamount\empty{\iffirstargument#1\else\s!default\fi}% % \fi % \expandafter\ignorespaces % \fi} \def\dohspace[#1][#2]% {\ifsecondargument \dodohspace[#1][#2]% \else\iffirstargument \hspace[][#1]% \else \hspace[][\s!default]% \fi\fi} % \def\dodohspace[#1][#2#3]% % {\ifhmode % \removeunwantedspaces % \doifelse{#2}{-} % {{\scratchskip\hspaceamount{#1}{#3}\hskip-\scratchskip}} % {\hskip\hspaceamount{#1}{#2#3}}% % \expandafter\ignorespaces % \fi} % % not needed, tex handles -- as + \def\dodohspace[#1][#2]% {\ifhmode \removeunwantedspaces \hskip\hspaceamount{#1}{#2}% \expandafter\ignorespaces \fi} \def\hspaceamount#1#2% {\executeifdefined{\??hs#1:#2}{\executeifdefined{\??hs:#2}\zeropoint}} \definehspace [\v!small] [.25\emspaceamount] \definehspace [\v!medium] [.5\emspaceamount] \definehspace [\v!big] [1\emspaceamount] \definehspace [\v!normal] [1\spaceamount] \definehspace [\v!default] [\spaceamount] %D Taken from Taco's math module (cq. \AMS\ macros), but %D adapted to \type {\hspace}: \unexpanded\def\textormathspace#1#2#3% {\ifmmode\mskip#1#2\else\kern#1\hspaceamount\empty{#3}\fi\relax} \newmuskip\hairmuskip \hairmuskip=.15mu \def\hairspace {\textormathspace+\hairmuskip{.5}} \def\thinspace {\textormathspace+\thinmuskip 1} \def\medspace {\textormathspace+\medmuskip 2} \def\thickspace {\textormathspace+\thickmuskip3} \def\neghairspace {\textormathspace-\thinmuskip{.5}} \def\negthinspace {\textormathspace-\thinmuskip 1} \def\negmedspace {\textormathspace-\medmuskip 2} \def\negthickspace{\textormathspace-\thickmuskip3} % needed for unicode: \def\twoperemspace {\hskip\dimexpr\emwidth/2\relax} % == \enspace \def\threeperemspace {\hskip\dimexpr\emwidth/3\relax} \def\fourperemspace {\hskip\dimexpr\emwidth/4\relax} \def\fiveperemspace {\hskip\dimexpr\emwidth/5\relax} % goodie \def\sixperemspace {\hskip\dimexpr\emwidth/6\relax} \def\figurespace {\begingroup\setbox\scratchbox\hbox{0}\hskip\wd\scratchbox\endgroup} % there is a command for this \def\punctuationspace {\begingroup\setbox\scratchbox\hbox{.}\hskip\wd\scratchbox\endgroup} \def\ideographicspace {\hskip\dimexpr\emwidth/1\relax} \def\ideographichalffillspace{\hskip\dimexpr\emwidth/2\relax} %def\nobreakspace {\penalty\plustenthousand\space} \def\nobreakspace {\penalty\plustenthousand\kern\interwordspace} \def\narrownobreakspace {\penalty\plustenthousand\thinspace} %def\zerowidthnobreakspace {\penalty\plustenthousand\hskip\zeropoint} \def\zerowidthnobreakspace {\penalty\plustenthousand\kern\zeropoint} \def\zerowidthspace {\hskip\zeropoint} \definehspace[.5][.1250\emspaceamount] % could also be [.1250\spaceamount] \definehspace[1] [.1667\emspaceamount] \definehspace[2] [.2222\emspaceamount] \definehspace[3] [.2777\emspaceamount] \let \, \thinspace \let \: \medspace \let \; \thickspace \let \! \negthinspace % this will become an alternative bunch of \blank settings % % \startlines % \scratchskip=.23pt plus 10pt minus 4pt \relax \number\scratchskip \space \the\scratchskip % \setsimplifiedskip\scratchskip1 \number\scratchskip \space \the\scratchskip % \setsimplifiedskip\scratchskip2 \number\scratchskip \space \the\scratchskip % \getsimplifiedskip\scratchskip\scratchcounter \number\scratchcounter % \stoplines % % \hrule width10cm \endgraf % \discardedskip{10pt} % \retainedskip {4pt} % \discardedskip {5pt} % \hrule width10cm \endgraf % \blockedskip{0pt} % \discardedskip{10pt} % \retainedskip {4pt} % \discardedskip {5pt} % \hrule width10cm \endgraf % \frozenskip {4cm} % \hrule width10cm \endgraf % \vskip10pt % \hrule width10cm \endgraf % ! ! ! etex only, evt splitskip macro gebruiken (syst-new) \newskip\simplifiedskip \newskip\simplifiedcounter \chardef\@@discardedskip1 \chardef\@@retainedskip 2 \chardef\@@forcedskip 3 \chardef\@@blockedskip 4 \chardef\@@frozenskip 5 % after heads, no break \def\setsimplifiedskip#1#2% {#1\dimexpr(10\dimexpr(#1/10)) plus \gluestretch#1 minus \glueshrink#1\relax \advance#1\numexpr(#2)sp\relax} \def\getsimplifiedskip#1#2% {\simplifiedskip#1\relax \ifzeropt\simplifiedskip % \ifdim\simplifiedskip=\zeropoint #2\zerocount \else \simplifiedcounter\dimexpr10\dimexpr#1/10\relax\relax \advance\simplifiedskip-\simplifiedcounter #2\number\simplifiedskip\relax \fi} \def\conditionalskip#1#2% {\scratchskip#1\relax \setsimplifiedskip\scratchskip#2\relax \vskip\scratchskip\relax} \def\defrostskip {\scratchskip\lastskip\penalty50000\normalvskip-\scratchskip\penalty50000\relax} \def\frozenskip#1% {\endgraf \ifvmode \getsimplifiedskip\lastskip\scratchcounter \ifdim\lastskip>#1\else \defrostskip \conditionalskip{#1}\@@frozenskip \fi \fi} \def\discardedskip#1% {\endgraf \ifvmode \getsimplifiedskip\lastskip\scratchcounter \ifcase\scratchcounter \conditionalskip{#1}\@@discardedskip \or % discard \ifdim\lastskip>#1\else \normalvskip-\lastskip \conditionalskip{#1}\@@discardedskip \fi \or % retain \ifdim\lastskip>#1\else \normalvskip-\lastskip \conditionalskip{#1}\@@discardedskip \fi \or % forced \conditionalskip{#1}\@@discardedskip \or % ignored \or % frozen \ifdim\lastskip>#1\else \defrostskip \conditionalskip{#1}\@@frozenskip \fi \else\ifdim#1=\zeropoint\else \vskip#1\relax \fi\fi \fi} \def\retainedskip#1% {\endgraf \ifvmode \getsimplifiedskip\lastskip\scratchcounter \ifcase\scratchcounter \conditionalskip{#1}\@@retainedskip \or % discard \normalvskip-\lastskip \conditionalskip{#1}\@@retainedskip \or % retain \ifdim\lastskip>#1\else \normalvskip-\lastskip \conditionalskip{#1}\@@retainedskip \fi \or % forced \conditionalskip{#1}\@@retainedskip \or % ignored \or % frozen \ifdim\lastskip>#1\else \defrostskip \conditionalskip{#1}\@@frozenskip \fi \else\ifdim#1=\zeropoint\else \vskip#1\relax \fi\fi \fi} \def\forcedskip#1% {\endgraf \ifvmode \conditionalskip{#1}\@@forcedskip \fi} \def\blockedskip#1% {\endgraf \ifvmode \getsimplifiedskip\lastskip\scratchcounter \ifcase\scratchcounter \conditionalskip{#1}\@@blockedskip \or % discard \conditionalskip{#1}\@@blockedskip \or % retain \conditionalskip{#1}\@@blockedskip \or % forced \conditionalskip{#1}\@@blockedskip \or % ignored \or % frozen \ifdim\lastskip>#1\else \defrostskip \conditionalskip{#1}\@@frozenskip \fi \else\ifdim#1=\zeropoint\else \vskip#1\relax \fi\fi \fi} % beware, changing this will break some code (like pos/backgrounds) \newtoks\everyfirstparagraphintro \newtoks\everynextparagraphintro \newtoks\@@everyparagraphtoks \chardef\everyparagraphintro\zerocount \def\setupparagraphintro {\dodoubleempty\dosetupparagraphintro} \def\dosetupparagraphintro[#1][#2]% {\processallactionsinset [#1] [ \v!reset=>\global\chardef\everyparagraphintro\zerocount \global\everyfirstparagraphintro\emptytoks \global\everynextparagraphintro \emptytoks, \v!first=>\global\chardef\everyparagraphintro\plusone \doglobal\appendtoks#2\to\everyfirstparagraphintro, \v!next=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plusone\fi \doglobal\appendtoks#2\to\everynextparagraphintro, \v!each=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plustwo\fi \doglobal\appendtoks#2\to\everyfirstparagraphintro \doglobal\appendtoks#2\to\everynextparagraphintro]} %D We can say: %D %D \starttyping %D \setupparagraphintro[first][\index{Knuth}] %D \stoptyping %D %D Maybe more convenient is: %D %D \starttyping %D \flushatparagraph{\index{Zapf}} %D \stoptyping \def\flushatparagraph#1% {\global\chardef\everyparagraphintro\plusone \global\appendtoks{#1}\to\everyfirstparagraphintro} % \def\doinsertparagraphintro % {\ifcase\everyparagraphintro\relax % % no data % \@@everyparagraphtoks\emptytoks % \or % % first data % \global\chardef\everyparagraphintro\plustwo % \@@everyparagraphtoks\everyfirstparagraphintro % \global\everyfirstparagraphintro\emptytoks % \or % % next data % \@@everyparagraphtoks\everynextparagraphintro % \fi % \the\@@everyparagraphtoks} \def\doinsertparagraphintro {\begingroup \everypar\emptytoks \ifcase\everyparagraphintro\relax % no data \@@everyparagraphtoks\emptytoks \or % first data \global\chardef\everyparagraphintro\plustwo \@@everyparagraphtoks\everyfirstparagraphintro \global\everyfirstparagraphintro\emptytoks \or % next data \@@everyparagraphtoks\everynextparagraphintro \fi \the\@@everyparagraphtoks \endgroup} \def\insertparagraphintro {\ifcase\everyparagraphintro\else\@EA\doinsertparagraphintro\fi} % \appendtoksonce\insertparagraphintro\to\everypar % should come last %D \starttyping %D \setupparagraphintro[first][\hbox to 3.5em{\tt FIRST \hss}] %D \setupparagraphintro[first][\hbox to 3.5em{\tt TSRIF \hss}] %D \setupparagraphintro[next] [\hbox to 3.5em{\tt NEXT \hss}] %D \setupparagraphintro[next] [\hbox to 3.5em{\tt TXEN \hss}] %D \setupparagraphintro[each] [\hbox to 3.0em{\tt EACH \hss}] %D \setupparagraphintro[each] [\hbox to 3.0em{\tt HCEA \hss}] %D %D some paragraph \par %D some paragraph \par %D some paragraph \par %D %D \definelabel[parnumber] %D %D \setupparagraphintro[reset,each][\inleft{\slxx\parnumber}] %D %D some paragraph \par %D some paragraph \par %D some paragraph \par %D \stoptyping %D \macros %D {flushatnextpar} %D %D This macro collects data that will be flushed at the next paragraph. %D By using this macro you can avoid interfering nodes (writes, etc). \newbox \postponednodedata \def\flushatnextpar {\bgroup \dowithnextbox {\global\setbox\postponednodedata\hbox{\box\postponednodedata\box\nextbox}\egroup}% \hbox} \def\flushpostponednodedata {\ifvoid\postponednodedata\else \hbox{\smashedbox\postponednodedata}% \fi} % Very nasty but needed for margin stuff inside colored % paragraphs. \let\normalvadjust\vadjust % \def\graphicvadjust % bad, those low level color calls here % {\dowithnextbox % {\normalvadjust % {\dostartgraphicgroup % \localstarttextcolor % \unvbox\nextbox % \localstoptextcolor % \dostopgraphicgroup}}% % \vbox} % test this prikkels/pascal margin text before heads (mode % 1) as well as uitwerkingen (mode 2) %chardef\graphicvadjustmode=0 % fake %chardef\graphicvadjustmode=1 % normal \chardef\graphicvadjustmode=2 % normal + compensate (== default) \def\graphicvadjust % bad, those low level color calls here {\dowithnextboxcontent {\forgetall} {\ifcase\graphicvadjustmode \@EA \fakedvadjust \else \@EA\normalvadjust \fi {\dostartgraphicgroup % don't ask \localstarttextcolor \unvbox\nextbox \localstoptextcolor % don't ask \dostopgraphicgroup \ifcase\graphicvadjustmode \or \or % corrects for one line paragraphs \nointerlineskip \kern-\struttotal \nointerlineskip \verticalstrut \fi}}% \vbox} %D This works only in a properly strutted line, and is meant %D for deeply burried operations, like in heads. \def\fakedvadjust {\dowithnextbox {\setbox\nextbox\hbox{\llap{\lower\strutdepth\box\nextbox}}% \smashedbox\nextbox}% \vtop} \def\flexiblespaceamount#1#2#3% {#1\interwordspace \!!plus#2\interwordstretch \!!minus#3\interwordshrink} \def\fixedspaceamount#1% {#1\interwordspace} %D This is a dangerous feature because it makes the \TEX\ source %D less portable, i.e. any parser now needs to apply exactly the %D same algorithm when it wants to interpret the source. We %D strongly recommend not to mention this feature in manuals! It's %D provided for users who are hooked to such a mechanism. %D %D \starttyping %D \setupsorting[logo][next=\autoinsertnextspace] \logo[TEX]{\TeX} %D %D bla bla \TEX bla bla \TEX (bla) bla (\TEX) %D \stoptyping \def\autoinsertnextspace{\futurelet\nexttoken\doautoinsertnextspace} \def\doautoinsertnextspace % slightly extended version of a user supplied macro {\ifx\nexttoken \bgroup\else \ifx\nexttoken\begingroup\else \ifx\nexttoken \egroup\else \ifx\nexttoken \endgroup\else \ifx\nexttoken \/\else \ifx\nexttoken /\else \ifx\nexttoken ~\else \ifx\nexttoken \ \else \ifx\nexttoken \blankspace\else \ifx\nexttoken \space\else \ifx\nexttoken .\else \ifx\nexttoken ,\else \ifx\nexttoken !\else \ifx\nexttoken ?\else \ifx\nexttoken :\else \ifx\nexttoken ;\else \ifx\nexttoken '\else \ifx\nexttoken "\else \ifx\nexttoken )\else \ifx\nexttoken -\else \ifx\nexttoken |\else \ifx\nexttoken \%\else \ifx\nexttoken \&\else \space \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} % moved from page-lin \def\installspacehandler#1#2% needs to set \obeyedspace {\setvalue{\??sr#1}{#2}} \installspacehandler \v!on {\obeyspaces \def\obeyedspace{\mathortext\normalspace{\dontleavehmode{\tt\controlspace}}}% \let\ =\obeyedspace} \installspacehandler \v!yes {\obeyspaces \def\obeyedspace{\mathortext\normalspace{\dontleavehmode \normalspace }}% \let\ =\obeyedspace} \installspacehandler \v!off % == default {\normalspaces \let\obeyedspace\normalspace \let\ =\normalspaceprimitive} % was \normalspace \installspacehandler \v!fixed {\obeyspaces \def\obeyedspace{\mathortext\normalspace{\dontleavehmode\fixedspace}}% \let\ =\obeyedspace} \def\activatespacehandler#1% {\executeifdefined{\??sr#1}{\activatespacehandler\v!off}} % moved from page-lin %D When spacing is active we need to handle commands in %D a special way: %D %D \starttyping %D \setuplines[space=on] %D %D \startlines %D Let's talk about this{\ttsl\gobbleoneargument or}that. %D \stoplines %D %D \startlines %D Let's talk about this{\getvalue{ttsl}or}that. %D \stoplines %D \stoptyping %D %D One can indent in several ways: %D %D \starttyping %D \setupindenting[medium] \setuplines[indenting=odd] % no yes odd even %D %D \startlines %D first %D second %D third %D fourth %D \stoplines %D \stoptyping \def\setuplines {\dodoubleargument\getparameters[\??rg]} \def\startlines {\@@rgbefore \pushmacro\checkindentation \whitespace %\page[\v!preference]} gaat mis na koppen, nieuw: later \nobreak \begingroup \setupindenting[\@@rgindenting]% \typesettinglinestrue \setupwhitespace[\v!none]% \obeylines \ignorespaces \gdef\afterfirstobeyedline % tzt two pass, net als opsomming {\gdef\afterfirstobeyedline {\nobreak \doifnot\@@rgoption\v!packed{\global\let\afterfirstobeyedline\relax}}}% \def\obeyedline {\par \futurelet\next\dobetweenthelines}% \activatespacehandler\@@rgspace \GotoPar} \def\stoplines {\endgroup \popmacro\checkindentation \@@rgafter} \def\dobetweenthelines {\doifmeaningelse\next\obeyedline {\@@rginbetween} {\afterfirstobeyedline}} \setuplines [\c!option=, \c!before=\blank, \c!after=\blank, \c!inbetween=\blank, \c!indenting=\v!no, \c!space=\v!default] \def\emptylines {\dosingleempty\doemptylines} \def\doemptylines[#1]% {\endgraf\dorecurse{\iffirstargument#1\else3\fi}\crlf} \setupwhitespace [\v!none] % still old-fashioned \indenting [\v!never] \setupindenting [\v!none] \setupblank [\v!standard, \v!big] \defineblank[\v!default] [\currentblank] \defineblank[\v!before] [\v!default] \defineblank[\v!inbetween][\v!default] \defineblank[\v!after] [\v!before] \setupinterlinespace [\c!minheight=0pt, % only special purpose \c!mindepth=0pt, % only special purpose \c!height=.72, \c!depth=.28, \c!top=1.0, \c!bottom=0.4, \c!distance=1pt, \c!line=2.8ex, \c!stretch=0] \setupnarrower [\c!before=\endgraf, \c!after=\endgraf, \c!left=1.5em, \c!right=1.5em, \c!middle=1.5em] \setuptolerance [\v!horizontal,\v!verystrict] \setuptolerance [\v!vertical,\v!strict] \setupalign [\v!bottom, \v!width] \setupspacing [\v!packed] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-ctx.mkii0000644000175000017500000000433314536300610024673 0ustar hillehille%D \module %D [ file=lang-ctx, %D version=2005.02.12, %D title=\CONTEXT\ Language Macros, %D subtitle=Generic Patterns, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Generic Patterns} \unprotect %D The \CONTEXT\ specific patterns are more generic and %D are more or less encoding independent. They are generated %D from the ones shipped with distributions using: %D %D \starttyping %D ctxtools --pattern --all %D \stoptyping %D In order to get 8 bit characters hyphenated, we need to load %D patterns under the right circumstances. In some countries, more %D than one font encoding is in use. I can add more defaults here %D if users let me know what encoding they use. % \installlanguage [\s!nl] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}] % \installlanguage [\s!fr] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}] % \installlanguage [\s!de] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}] % \installlanguage [\s!it] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}] % \installlanguage [\s!pt] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}] % \installlanguage [\s!hr] [\s!mapping=ec,\s!encoding=ec] % no il2, misses cacute characters % \installlanguage [\s!pl] [\s!mapping={pl0,ec,qx},\s!encoding={pl0,ec,qx}] % pl0 may go % \installlanguage [\s!cs] [\s!mapping={il2,ec},\s!encoding={il2,ec}] % il2 may go % \installlanguage [\s!sk] [\s!mapping={il2,ec},\s!encoding={il2,ec}] % il2 may go % \installlanguage [\s!sl] [\s!mapping=ec,\s!encoding=ec] % il2 has gone % \installlanguage [\s!vi] [\s!mapping=t5,\s!encoding=t5] % \installlanguage [\s!ru] [\s!mapping=t2a,\s!encoding=t2a] % beware, don't use \setuplanguage here % \installlanguage[\s!gb][\s!lefthyphenmin=3,\s!righthyphenmin=3] % patterns can only handle this % \installlanguage[\s!us][\s!lefthyphenmin=2,\s!righthyphenmin=3] % patterns can only handle this % greek % \installlanguage[\s!agr][\s!mapping=\s!agr,\s!encoding=\s!agr] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/math-cow.mkii0000644000175000017500000000155714536300610024702 0ustar hillehille%D \module %D [ file=math-cow, %D version=2006.06.23, %D title=\CONTEXT\ Math Macros, %D subtitle=Cow Math, %D author={Hans Hagen \& Taco Hoekwater}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \def\COWsqrt {\mthsqrt{\char"7A}{\char"7B}} \def\COWfrac {\mthfrac{\char"7C}{\char"7A}{\char"7B}} \def\COWarrowfill{\mtharrowfill 1001} \startmathcollection [cow] % todo \stopmathcollection \startrawmathcollection[cow] \definemathcommand [frac] {\COWfrac} \definemathcommand [sqrt] {\COWsqrt} %definemathcommand [r@@t] {\COWroot} %definemathcommand [matrix] {\COWmatrix} \stoprawmathcollection \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/type-tmf.mkii0000644000175000017500000000064514536300610024725 0ustar hillehille%D \module %D [ file=type-tmf, %D version=2007.07.30, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Core \TEX\ Fonts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-meh.mkii0000644000175000017500000003325614536300610024676 0ustar hillehille% filtered from html files by Patrick Ion % % ISOTECH Characters Extended % % General Technical \defineMMLentity acd E3A6 {unknown} ac current \defineMMLentity aleph 2135 {\aleph} aleph, Hebrew \defineMMLentity And E374 {unknown} double logical and \defineMMLentity and 2227 {\wedge} logical and \defineMMLentity andand E36E {unknown} two logical and \defineMMLentity andd E394 {unknown} and, horizontal dash \defineMMLentity andslope E50A {unknown} sloping large and \defineMMLentity andv E391 {unknown} and with middle stem \defineMMLentity angrt 221F {unknown} right (90 degree) angle \defineMMLentity angsph 2222 {unknown} angle-spherical \defineMMLentity angst 212B {\Angstrom} Angstrom capital A, ring \defineMMLentity ap 2248 {\approx} approximate \defineMMLentity apacir E38C {unknown} approximate, circumflex accent \defineMMLentity awconint 2233 {unknown} contour integral, anti-clockwise \defineMMLentity awint E39B {unknown} anti clock-wise integration \defineMMLentity becaus 2235 {unknown} because \defineMMLentity bernou 212C {unknown} Bernoulli function (script capital B) \defineMMLentity bne E388 {unknown} reverse not equal \defineMMLentity bnequiv E387 {unknown} reverse not equivalent \defineMMLentity bNot E3AD {unknown} reverse not with two horizontal strokes \defineMMLentity bnot 2310 {unknown} reverse not \defineMMLentity bottom 22A5 {unknown} bottom \defineMMLentity cap 2229 {\cap} intersection \defineMMLentity Cconint 2230 {unknown} triple contour integral operator \defineMMLentity cirfnint E395 {unknown} circulation function \defineMMLentity compfn 2218 {\circ} composite function (small circle) \defineMMLentity cong 2245 {\cong} congruent with \defineMMLentity Conint 222F {unknown} double contour integral operator \defineMMLentity conint 222E {\oint} contour integral operator \defineMMLentity ctdot 22EF {\cdots} three dots, centered \defineMMLentity cup 222A {\cup} union or logical sum \defineMMLentity cwconint 2232 {unknown} contour integral, clockwise \defineMMLentity cwint 2231 {unknown} clockwise integral \defineMMLentity cylcty 232D {unknown} cylindricity \defineMMLentity disin E3A0 {unknown} set membership, long horizontal stroke \defineMMLentity Dot 0308 {unknown} dieresis or umlaut mark \defineMMLentity DotDot 20DC {unknown} four dots above \defineMMLentity dsol E3A9 {unknown} solidus, bar above \defineMMLentity dtdot 22F1 {\ddots} three dots, descending \defineMMLentity dwangle E3AA {unknown} large downward pointing angle \defineMMLentity elinters E3A7 {unknown} electrical intersection \defineMMLentity epar 22D5 {unknown} parallel, equal; equal or parallel \defineMMLentity eparsl E384 {unknown} parallel, slanted, equal; homothetically co \defineMMLentity equiv 2261 {\equiv} identical with \defineMMLentity eqvparsl E386 {unknown} equivalent, equal; congruent and parallel \defineMMLentity exist 2203 {\exists} at least one exists \defineMMLentity fltns E381 {unknown} flatness \defineMMLentity forall 2200 {\forall} for all \defineMMLentity fpartint E396 {unknown} finite part integral \defineMMLentity ge 2265 {\geq} greater-than-or-equal \defineMMLentity hamilt 210B {unknown} Hamiltonian (script capital H) \defineMMLentity iff E365 {unknown} if and only if \defineMMLentity iinfin E372 {unknown} infinity sign, incomplete \defineMMLentity imped E50B {unknown} impedance \defineMMLentity infin 221E {\infty} infinity \defineMMLentity infintie E50C {unknown} tie, infinity \defineMMLentity Int 222C {unknown} double integral operator \defineMMLentity int 222B {\int} integral operator \defineMMLentity intlarhk E39A {unknown} integral, left arrow with hook \defineMMLentity isin 220A {\in} set membership \defineMMLentity isindot E39C {unknown} set membership, dot above \defineMMLentity isinE E39E {unknown} set membership, two horizontal strokes \defineMMLentity isins E3A4 {unknown} set membership, vertical bar on horizontal \defineMMLentity isinsv E3A2 {unknown} large set membership, vertical bar on horiz \defineMMLentity isinv 2208 {unknown} set membership, variant \defineMMLentity lagran 2112 {unknown} Lagrangian (script capital L) \defineMMLentity Lang 300A {unknown} left angle bracket, double \defineMMLentity lang 3008 {\langle} left angle bracket \defineMMLentity lArr 21D0 {\Leftarrow} is implied by \defineMMLentity lbbrk 3014 {unknown} left broken bracket \defineMMLentity le 2264 {\leq} less-than-or-equal \defineMMLentity loang 3018 {unknown} left open angular bracket \defineMMLentity lobrk 301A {unknown} left open bracket \defineMMLentity lopar E379 {unknown} left open parenthesis \defineMMLentity lowast 2217 {unknown} low asterisk \defineMMLentity minus 2212 {unknown} minus sign \defineMMLentity mnplus 2213 {\mp} minus-or-plus sign \defineMMLentity nabla 2207 {\nabla} del, Hamilton operator \defineMMLentity ne 2260 {\ne} not equal \defineMMLentity nedot E38A {unknown} not equal, dot \defineMMLentity nhpar E38D {unknown} not, horizontal, parallel \defineMMLentity ni 220D {unknown} contains \defineMMLentity nis E3A5 {unknown} contains, vertical bar on horizontal stroke \defineMMLentity nisd E3A1 {unknown} contains, long horizontal stroke \defineMMLentity niv 220B {\ni} contains, variant \defineMMLentity Not E3AC {unknown} not with two horizontal strokes \defineMMLentity notin 2209 {\notin} negated set membership \defineMMLentity notindot E39D {unknown} negated set membership, dot above \defineMMLentity notinE E50D {unknown} negated set membership, two horizontal strokes \defineMMLentity notinva E370 {unknown} negated set membership, variant \defineMMLentity notinvb E37B {unknown} negated set membership, variant \defineMMLentity notinvc E37C {unknown} negated set membership, variant \defineMMLentity notni 220C {unknown} negated contains \defineMMLentity notniva 220C {unknown} negated contains, variant \defineMMLentity notnivb E37D {unknown} contains, variant \defineMMLentity notnivc E37E {unknown} contains, variant \defineMMLentity nparsl E389 {unknown} not parallel, slanted \defineMMLentity npart E390 {unknown} not partial differential \defineMMLentity npolint E399 {unknown} line integration, not including the pole \defineMMLentity nvinfin E38E {unknown} not, vert, infinity \defineMMLentity olcross E3A8 {unknown} circle, cross \defineMMLentity Or E375 {unknown} double logical or \defineMMLentity or 2228 {\vee} logical or \defineMMLentity ord E393 {unknown} or, horizontal dash \defineMMLentity order 2134 {unknown} order of (script small o) \defineMMLentity oror E50E {unknown} two logical or \defineMMLentity orslope E3AE {unknown} sloping large or \defineMMLentity orv E392 {unknown} or with middle stem \defineMMLentity par 2225 {\parallel} parallel \defineMMLentity parsl E382 {unknown} parallel, slanted \defineMMLentity part 2202 {\partial} partial differential \defineMMLentity permil 2030 {unknown} per thousand \defineMMLentity perp 22A5 {\perp} perpendicular \defineMMLentity pertenk 2031 {unknown} per 10 thousand \defineMMLentity phmmat 2133 {unknown} physics M-matrix (script capital M) \defineMMLentity pointint E376 {unknown} integral around a point operator \defineMMLentity Prime 2033 {unknown} double prime or second \defineMMLentity prime 2032 {\prime} prime or minute \defineMMLentity profalar 232E {unknown} all-around profile \defineMMLentity profline 2312 {unknown} profile of a line \defineMMLentity profsurf 2313 {unknown} profile of a surface \defineMMLentity prop 221D {\propto} is proportional to \defineMMLentity qint E378 {unknown} quadruple integral operator \defineMMLentity qprime E371 {unknown} quadruple prime \defineMMLentity quatint E377 {unknown} quaternion integral operator \defineMMLentity radic 221A {\surd} radical \defineMMLentity Rang 300B {unknown} right angle bracket, double \defineMMLentity rang 3009 {\rangle} right angle bracket \defineMMLentity rArr 21D2 {\Rightarrow} implies \defineMMLentity rbbrk 3015 {unknown} right broken bracket \defineMMLentity roang 3019 {unknown} right open angular bracket \defineMMLentity robrk 301B {unknown} right open bracket \defineMMLentity ropar E37A {unknown} right open parenthesis \defineMMLentity rppolint E397 {unknown} line integration, rectangular path around pole \defineMMLentity scpolint E398 {unknown} line integration, semi-circular path around pole \defineMMLentity sim 223C {\sim} similar \defineMMLentity simdot E38B {unknown} similar, dot \defineMMLentity sime 2243 {\simeq} similar, equals \defineMMLentity smeparsl E385 {unknown} similar, parallel, slanted, equal \defineMMLentity square 25A1 {\square} square \defineMMLentity squarf 25A0 {unknown} square, filled \defineMMLentity strns E380 {unknown} straightness \defineMMLentity sub 2282 {\subset} subset or is implied by \defineMMLentity sube 2286 {\subseteq} subset, equals \defineMMLentity sup 2283 {\supset} superset or implies \defineMMLentity supe 2287 {\supseteq} superset, equals \defineMMLentity tdot 20DB {unknown} three dots above \defineMMLentity there4 2234 {unknown} therefore \defineMMLentity tint 222D {unknown} triple integral operator \defineMMLentity top 22A4 {\top} top \defineMMLentity topbot 2336 {unknown} top and bottom \defineMMLentity topcir E383 {unknown} top, circle below \defineMMLentity tprime 2034 {unknown} triple prime \defineMMLentity utdot 22F0 {unknown} three dots, ascending \defineMMLentity uwangle E3AB {unknown} large upward pointing angle \defineMMLentity vangrt 22BE {unknown} right angle, variant (with arc) \defineMMLentity veeeq 225A {unknown} logical or, equals \defineMMLentity Verbar 2016 {\Vert} double vertical bar \defineMMLentity wedgeq 2259 {unknown} corresponds to (wedge, equals) \defineMMLentity xnis E3A3 {unknown} large contains, vertical bar on horizontal stroke context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-sec.mkii0000644000175000017500000024106614536300610024707 0ustar hillehille%D \module %D [ file=strc-sec, %D version=1997.03.31, %D title=\CONTEXT\ Structure Macros, %D subtitle=Sectioning, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % start-stop per section en dan combineren met sectieblok; in dat geval % eenvoudiger per-* acties % nummeren per sectieblok implementeren % this module needs a clean up, currently some manipulations % take place multiple times; also, some clever recursive level % thing makes more sense % in manual (zie prikkels) : tussen=\blanko is enige hook om % met kop-in-hoofd een spatiering af te dwingen \writestatus{loading}{ConTeXt Structure Macros / Sectioning} \unprotect % new and to be tested \unexpanded\def\separatorlist#1% {\ifx\sepnumber\undefined\def\sepnumber{0}\fi \increment\sepnumber \getfromcommacommand[#1][\sepnumber]% \ifx\commalistelement\empty \getcommalistsize[#1]% \def\sepnumber{\number\commalistsize}% \getfromcommacommand[#1][\sepnumber]% \fi \commalistelement} % \setuphead[section] [separator=\separatorlist{?,!,*}] % \setuphead[subsection][separator=\separatorlist{??,!!,**}] % % \let\spr\separatorlist % this will enable this feature % % \setuphead[section] [separator={?,!,*}] % \setuphead[subsection][separator={??,!!,**}] % % \setupheads[separator={A,B,C,D,E,F}] % \chapter{test} % \section{test} \subsection{test} \subsection{test} % \section{test} \subsection{test} \subsection{test} % from now on, internaly numbers are separated by a period % and postprocessed on demand; this will change to {} {} {} \def\numberseparator {.} % reasonable default \def\sectionseparator{-} % was : but is now - \def\@@filterfirstpart [#1--#2]{#1} \def\@@filtersecondpart [#1--#2]{#2} \def\@@filterblockpart [#1--#2--#3]{#1} \def\@@filternumberpart [#1--#2--#3]{#2} \def\@@filterpagepart [#1--#2--#3]{#3} \def\@@filterblocknumberpart[#1--#2--#3]{#1--#2} \def\@@filterheadpart[#1]{\@EA\@@dofilterheadpart\@EA[#1-0]} \def\@@filtertailpart[#1]{\@EA\@@dofiltertailpart\@EA[#1-0]} \def\@@dofilterheadpart[#1-#2]{#1} \def\@@dofiltertailpart[#1-#2]{#2} \def\@@filterlevelpart[#1--#2--#3]{\@@dofilterlevelpart[#2-0-0-0-0]} \def\@@dofilterlevelpart[#1-0-0-0-#2]{#1} \def\gobbleuntilrelax#1\relax{} \def\separatednumber #1{\doseparatednumber #1.\empty\relax} \def\removefirstprefix#1{\doremovefirstprefix#1.\empty\relax} \def\removeallprefixes#1{\doremoveallprefixes#1.\empty\relax} \def\doseparatednumber#1.#2% {#1% \ifx#2\empty \@EA\gobbleuntilrelax \else \numberseparator \@EA\doseparatednumber \fi#2} \def\doremoveallprefixes#1.#2% {\ifx#2\empty #1\@EA\gobbleuntilrelax \else \@EA\doremoveallprefixes \fi#2} \def\doremovefirstprefix#1.#2% {\ifx#2\empty #1\@EA\gobbleuntilrelax \else \@EA\noremovefirstprefix \fi#2} \def\noremovefirstprefix#1.\empty\relax {#1} % we need to expand in order to get something separatable \def\dohandleheadnumber#1% {\expanded{\separatednumber{#1}}} \def\dodochecknumber#1#2#3% will become ugly after speed up {\bgroup \doifinstringelse{.0}{.#2} {\doifnot{#3}\v!by {%\debuggerinfo\m!systems{number #1 #3 becomes \getnumbervariable{#1\c!way}}% \setevalue{\@@thenumber{#1}\c!way}{#3}% geen \xdef, gaat mis met \subpage \dochecknumber{#1}}} % tricky and ugly {\doifnotvalue{\@@thenumber{#1}\s!check}{#2} {% new, calculate accumulated number \scratchcounter\getvalue{\@@thenumber{#1}\c!n}\relax \advance\scratchcounter\countervalue{\@@thenumber{#1}}\relax \setxvalue{\@@thenumber{#1}\c!n}{\the\scratchcounter}% % \setcounter{\@@thenumber{#1}}{0\getvalue{\@@thenumber{#1}\c!start}}% \setxvalue{\@@thenumber{#1}\c!way\c!local}{\getvalue{\@@thenumber{#1}\c!way}}% \setxvalue{\@@thenumber{#1}\s!check}{#2}}}% \egroup} \def\dochecknumber#1% {\edef\currentsection{\csname\??by\csname\@@thenumber{#1}\c!way\endcsname\endcsname}% \ifx\currentsection\empty\else \dodochecknumber {#1}% {\csname\currentsection\c!number\endcsname}% {\v!by\previoussection\currentsection}% \fi} \def\checknumber[#1]% {\bgroup %\ifcase\blocklevel\else \ifdoingblocks \doifnotvalue{\@@thenumber{#1}\c!blockway}\v!no\setblockcounters \fi \dochecknumber{#1}% \egroup} \def\rawsectionnumber#1% {\countervalue{\??se#1}} \def\precedingseparator{\@@koseparator} % brrr \def\domakeprecedingsectionnumber[#1]% will become ugly after speed up {\bgroup % added \globallet\precedingsectionnumber\empty \ifsectionnumber \doifvalue{\??sb\@@sectionblock\c!number}\v!yes % added {\doifelsevalue{\@@thenumber{#1}\c!sectionnumber}\v!yes \donetrue\donefalse \doifvalue{\@@thenumber{#1}\c!sectionnumber}\v!number {\donetrue\let\@@sectionconversion\gobbleoneargument}% \ifdone \edef\currentsection {\getvalue{\??by\getvalue{\@@thenumber{#1}\c!way\c!local}}}% \doifnot\currentsection\zerosection {\doifnot{\@@sectionvalue\currentsection}{0} {\xdef\precedingsectionnumber {\getvalue{\currentsection\c!number}% \spr{\precedingseparator}}}}% \fi}% \fi \egroup} \def\makeprecedingsectionnumber[#1]% {\bgroup %\ifnum\blocklevel>0 %\ifcase\blocklevel\else \ifdoingblocks \doifnotvalue{\@@thenumber{#1}\c!blockway}\v!no\setblockcounters \fi \domakeprecedingsectionnumber[#1]% \egroup} % \def\makesectionnumber[#1]% % {\makeprecedingsectionnumber[#1]% % \xdef\composedsectionnumber% % {\precedingsectionnumber\convertednumber[#1]}}% % % hack needed for chinese and oldstyle in normal tex, will change \def\makesectionnumber[#1]% {\bgroup \forceunexpanded % i don't like this hack \makeprecedingsectionnumber[#1]% \xdef\composedsectionnumber% was \xdef maar dat gaat fout met font switches {\precedingsectionnumber\convertednumber[#1]}% \egroup} % \def\preparethenumber#1#2#3% {\??id#1} \number \result % {\doifelsevaluenothing{#1\c!separator} % {\let\numberseparator\empty % \let#3#2} % {% was \unexpanded \edef, but we need it unexpanded ! % \edef\numberseparator{\spr{\getvalue{#1\c!separator}}}% % \doifelsenothing{\executeifdefined{#1\c!suffix}\empty} % {\edef#3% % {\@EA\separatednumber\@EA{#2}% % }}%\stp{\getvalue{#1\c!stopper}}}} % {\edef#3% % {\@EA\separatednumber\@EA{#2}% % \spr{\getvalue{#1\c!separator}}% % \getvalue{#1\c!suffix}% % \stp{\getvalue{#1\c!stopper}}}}}} % % some day we do a real cleanup \def\analyzenumber#1#2#3% {\??id#1} \(precedingsection)number \result {% was \unexpanded \edef, but we need it unexpanded ! \doifelsenothing{\executeifdefined{#1\c!suffix}\empty} {\let \numbersuffix \empty} {\edef\numbersuffix{\spr{\getvalue{#1\c!suffix}}}}% \doifelsenothing{\executeifdefined{#1\c!stopper}\empty} {\let \numberstopper \empty} {\edef\numberstopper{\spr{\getvalue{#1\c!stopper}}}}% \doifelsenothing{\executeifdefined{#1\c!separator}\empty} {\let \numberseparator \empty} {\edef\numberseparator{\spr{\getvalue{#1\c!separator}}}}% \let\numberprefix\empty} \def\preparefullnumber#1#2#3% {\??id#1} \(precedingsection)number \result {\analyzenumber{#1}#2#3% \ifx\numberseparator\empty \edef\numberprefix{#2}% \else \edef\numberprefix{\@EA\separatednumber\@EA{#2}}% \fi \ifx\numbersuffix\empty \ifx\numberprefix\empty \let #3\empty \else \edef#3{\numberprefix\numberstopper}% \fi \else \ifx\numberprefix\empty \edef#3{\numbersuffix\numberstopper}% \else \edef#3{\numberprefix\numberseparator\numbersuffix\numberstopper}% \fi \fi} \def\prepareprefixnumber#1#2#3% {\??id#1} \number \result {\analyzenumber{#1}#2#3% \ifx\numberseparator\empty \edef\numberprefix{#2}% \else \edef\numberprefix{\@EA\separatednumber\@EA{#2}}% \fi \let#3\numberprefix} \def\sectionnumberonly[#1]% {\makesectionnumber[#1]% \composedsectionnumber} % sectioning \newcount\nofsections \let\zerosection \v!text \let\firstsection\empty \let\lastsection \empty \let\@@sectie \empty \let\@@koppeling \empty \makecounter{\??se\v!text} \letvalueempty{\??se\v!text\c!before} \letvalueempty{\??se\v!text\c!after } \setvalue {\v!text\c!number}{0} \letvalueempty{\v!text\s!format} \letvalueempty{\??sk\v!text} \letvalueempty{\??sk } \letvalue{\??by }\v!text \letvalue{\??by\v!text }\v!text \letvalue{\??by\v!all }\v!text \letvalue{\??by\v!by }\v!text \letvalue{\??by\v!by\v!text}\v!text \letvalue{\??by\v!by\v!all }\v!text \letvalue{\??by\v!by\v!page}\v!text % see footnotes \def\sectionofhead#1{\executeifdefined{\??ko#1\c!section}\s!unknown} \def\setupsection {\dotripleempty\dosetupsection} \def\dosetupsection[#1]% {\doifdefinedelse{\??se#1} {\dodosetupsection[#1]}% {\dodosetupsection[\sectionofhead{#1}]}} \def\dodosetupsection[#1][#2][#3]% {\doifdefined{\??se#1} {\ifthirdargument \getparameters[\??se#1#2][#3]% \else \getparameters[\??se#1][#2]% \fi \doifelsevalue{\??se#1\c!previousnumber}\v!yes {\setvalue{#1\c!number}{\@@longsectionnumber {#1}}} {\setvalue{#1\c!number}{\@@shortsectionnumber{#1}}}}} \def\docouplemarking[#1][#2]% {\doifdefinedelse{\??ko#2\c!section} {\docouplemarking[#1][\getvalue{\??ko#2\c!section}]} {\def\donexttrackcommando##1% {\edef\coupledmarkings{\getvalue{\??se##1\c!marking}}% \doifelse{##1}{#2} {\addtocommalist{#1}\coupledmarkings} {\removefromcommalist{#1}\coupledmarkings}% \setevalue{\??se##1\c!marking}{\coupledmarkings}% \donexttracklevel{##1}}% \donexttracklevel{\zerosection}}} % \firstsection \def\couplemarking {\dodoubleargument\docouplemarking} \def\decouplemarking[#1]% {\couplemarking[#1][]} \def\definesection[#1]% {\doifundefined{\??se#1} {\doifelsenothing\firstsection {\def\firstsection{#1}% \setevalue{\??se#1\c!before}{\v!text}% \setevalue{\??se\v!text\c!after}{#1}} {\setevalue{\??se\commalistelement\c!after}{#1}% commalistelement ? \setevalue{\??se#1\c!before}{\lastsection}% \setevalue{\??se\lastsection\c!after}{#1}}% \advance\nofsections \plusone \setevalue{\??se#1\c!level}{\the\nofsections}% \letvalue{\??se#1\c!after}\empty \setvalue{\e!next#1}{\@@nextsectionnumber{#1}}% \setvalue{#1\c!number}{\@@longsectionnumber{#1}}% \setvalue{#1\s!format}{\@@longformatnumber{#1}}% \setevalue{\??by#1}{#1}% \setevalue{\??by\v!by#1}{#1}% \makecounter{\??se#1}% \makecounter{\??se\v!last#1}% GB \edef\lastsection{#1}% \setvalue{\??sk#1}{#1}% \letvalue{\??se#1\c!marking}\empty \setupsection[#1][\c!previousnumber=\v!yes]}}% \def\previoussection#1{\csname\??se#1\c!before\endcsname} \def\nextsection #1{\csname\??se#1\c!after \endcsname} \let\preservedsection\v!unknown % \def\preservedsection{\firstsection} \def\checkpreservevalueafter#1% GB {\ifnum\getvalue{\??se#1\c!level}<\nofsections \edef\preservedsection{\getvalue{\??se#1\c!after}}% \ifconditional\@@resetsubheadnumbers \setcounter{\??se\v!last\preservedsection}\zerocount % {0}% \else \setcounter{\??se\v!last\preservedsection}{\countervalue{\??se\preservedsection}}% \fi \fi} \def\@@setsectionnumber#1#2% {\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean \setcounter{\??se#1}{#2}% \checkpreservevalueafter{#1}% GB \resetsectioncounters{#1}% \checkpagecounter} \def\@@nextsectionnumber#1% patched by GB {\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean \ifnum\countervalue{\??se\v!last#1}>\zerocount \setcounter{\??se#1}{\countervalue{\??se\v!last#1}}% \setcounter{\??se\v!last#1}\zerocount % {0}% \fi \pluscounter{\??se#1}% \checkpreservevalueafter{#1}% \resetsectioncounters{#1}% \checkpagecounter} \def\@@sectionvalue#1% % nog niet overal doorgevoerd {\countervalue{\??se#1}} % zoeken op \??se % suited for chinese too: \def\@@sectionconversion#1#2% a doublure with \@@shortsectionnumber {\ifnum#2=0 0\else % else troubles with \uchar \@EA\ifx\csname\??se#1\@@sectionblock\c!conversion\endcsname\relax \@EA\ifx\csname\??se#1\c!conversion\endcsname\relax #2% \else \convertnumber{\getvalue{\??se#1\c!conversion}}{#2}% \fi \else \convertnumber{\getvalue{\??se#1\@@sectionblock\c!conversion}}{#2}% \fi \fi} % \def\@@sectionlevel#1% % {\ifundefined{\??se#1\c!level}0\else\getvalue{\??se#1\c!level}\fi} \def\@@sectionlevel#1% {\executeifdefined{\??se#1\c!level}0} % Omdat een markering kan worden herdefinieerd moeten we % eerst testen of er wel een keten||afhankelijkheid is. \def\resetsectionmarks#1% can invoke a break {\ifundefined{\??se#1}% \fastresetmarker[\mainmarking{#1}]% % redundant \mainmarking \else \let\donexttrackcommando\doresetsectionmarks \donexttracklevel{#1}% \fi} \def\doresetsectionmarks#1% {\ifundefined{\??se#1\c!marking}\else % skip zero level \fastresetmarkerlist[\csname\??se#1\c!marking\endcsname]% \fi \donexttracklevel{#1}} % I'm not sure if the next one is better: % % \def\doresetsectionmarks#1% % {\ifundefined{\??se#1\c!markering}% skip zero level % \donexttracklevel{#1}% % \else % \fastresetmarkerlist[\csname\??se#1\c!markering\endcsname]% % \fi} % % and indeed, it isn't, actually, it does not work at all, so let's drop it. % packaged: % % \def\resetsectioncounters#1% % {\def\donexttrackcommando##1% % {\resetcounter{\??se##1}% % \donexttracklevel{##1}}% % \donexttracklevel{#1}} % % nicer % % \def\doresetsectioncounters#1% % {\resetcounter{\??se#1}% % \donexttracklevel{#1}} % % obey eigennummer \def\doresetsectioncounters#1% {\resetcounter{\??se#1}% \letgvalue{\??se#1\c!ownnumber}\relax \donexttracklevel{#1}} \def\resetsectioncounters % #1 {\let\donexttrackcommando\doresetsectioncounters \donexttracklevel} % #1 % bij checken kan geen prefix worden bekeken, anders vallen % er titels buiten de inhoudsopgave % evt ook level gaan opslaan tbv snelle selectie % \def\makesectionformat % {\edef\sectionformat % {\@@sectiontype\sectionseparator % \csname\lastsection\s!format\endcsname}} \unprotected \def\makesectionformat % we don't want eigennummers here {\pushmacro\@@shortsectionnumber \let\@@shortsectionnumber\@@sectionvalue \edef\sectionformat {\@@sectiontype\sectionseparator \csname\lastsection\s!format\endcsname}% \popmacro\@@shortsectionnumber} \def\dobacktracklevel#1% {\doifnot{\previoussection{#1}}\zerosection {\dobacktrackcommando{\previoussection{#1}}}} \def\donexttracklevel#1% {\doifnot{#1}\lastsection {\donexttrackcommando{\nextsection{#1}}}} \chardef\alltoclevels\zerocount \let\currentlevel\empty \def\dosetcurrentlevel#1% {\global\chardef\alltoclevels\zerocount \xdef\currentlevel{\getvalue{\lastsection\s!format}}} \def\dosetpreviouslevel#1% {\global\chardef\alltoclevels\plusone \globallet\currentlevel\empty \def\dobacktrackcommando##1% {\ifnum\countervalue{\??se##1}>\zerocount \global\chardef\alltoclevels\zerocount \xdef\currentlevel{\getvalue{\previoussection{##1}\s!format}}% \else \dobacktracklevel{##1}% \fi}% \dobacktrackcommando\lastsection} \def\dosettextlevel#1% {\global\chardef\alltoclevels\plusone \globallet\currentlevel\empty} \def\dosetotherlevel#1% {\doifdefinedelse{\??ko#1\c!section} % beter alteratief: ook {\edef\@@sectie{\getvalue{\??ko#1\c!section}}} % hoofdstuk\c!format {\edef\@@sectie{#1}}% \doifdefinedelse{\??se\@@sectie} {\global\chardef\alltoclevels\zerocount \xdef\currentlevel{\getvalue{\@@sectie\s!format}}} {\global\chardef\alltoclevels\plusone \globallet\currentlevel\empty \def\dobacktrackcommando##1% {\@EA\ifx\csname\??se##1\c!start\endcsname\relax \dobacktracklevel{##1}% \else \ifnum\countervalue{\??se##1}>\zerocount \global\chardef\alltoclevels\zerocount \xdef\currentlevel{\getvalue{##1\s!format}}% \else \dobacktracklevel{##1}% \fi \fi}% \dobacktrackcommando\lastsection}} % \def\ignoresectionconversion % brrr % {\let\@@sectionconversion\secondoftwoarguments} % todo: criterium=appendix|frontmatter|.... \def\dosetfilterlevel#1#2% beware: this one is \let {\bgroup \let\@@shortsectionnumber\@@sectionvalue % \ignoresectionconversion \edef\askedlevel{#1}% \edef\askedfilter{#2}% \ifx\askedlevel\v!current \dosetcurrentlevel\askedlevel \else\ifx\askedlevel\v!previous \dosetpreviouslevel\askedlevel \else\ifx\askedlevel\v!all \global\chardef\alltoclevels\plusone \else\ifx\askedlevel\v!text \global\chardef\alltoclevels\plusone \else \edef\byaskedlevel{\csname\??by\askedlevel\endcsname}% \ifx\byaskedlevel\v!text \dosettextlevel\askedlevel \else \dosetotherlevel\askedlevel \fi \fi\fi\fi\fi % experiment \ifx\askedfilter\empty \else \xdef\currentlevel{\currentlevel\sectionseparator\askedfilter}% \fi \egroup} % \def\dontsetfilterlevel#1#2% % {\let\currentlevel\somesavedlevel % \chardef\alltoclevels\zerocount} \def\dontsetfilterlevel#1#2% {\let\currentlevel\somesavedlevel \let\@@sectiontype\@@tocsectiontype \chardef\alltoclevels\zerocount} \def\honorlocalfilterlevel % local lists will be real local {\let\dosetfilterlevel\dontsetfilterlevel} % cleaner % % \def\doifnextlevelelse[#1::#2]#3#4% % {\ifcase\alltoclevels % \doifelse{\@@sectiontype}{#1} % {\doifinstringelse{=\currentlevel:}{=:#2:} % {\doifinstringelse{=\currentlevel:0}{=:#2:}{#4}{#3}} % {#4}} % {#4}% % \else % #3% % \fi} % % \def\doifprevlevelelse[#1::#2]#3#4% % {\ifcase\alltoclevels % \doifelse{\@@sectiontype}{#1} % {\doifinstringelse{=\currentlevel:}{=:#2:}{#3}{#4}} % {#4}% % \else % #3% % \fi} % % faster % % \def\doifnextlevelelse[#1::#2]% % {\ifcase\alltoclevels % \doifelse{\@@sectiontype}{#1} % {\doifinstringelse{=\currentlevel:}{=:#2:} % {\doifinstringelse{=\currentlevel:0}{=:#2:}\donefalse\donetrue} % \donefalse} % \donefalse % \else % \donetrue % \fi % \ifdone % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi} % % \def\doifprevlevelelse[#1::#2]% % {\ifcase\alltoclevels % \doifelse{\@@sectiontype}{#1} % {\doifinstringelse{=\currentlevel:}{=:#2:}\donetrue\donefalse} % \donefalse % \else % \donetrue % \fi % \ifdone % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi} % % meaner % % \setuplist % [chapter] % [after={\startcolumns\placelist[section]\stopcolumns}] \def\somesavedlevel{0} % \def\dosavesomelevel[#1:0:0:0:#2]% % {\def\somesavedlevel{:#1}} % \def\doifnextlevelelse[#1::#2]% % {\dosavesomelevel[#2:0:0:0:0]% % \ifcase\alltoclevels % \doifelse{\@@sectiontype}{#1} % {\doifinstringelse{=\currentlevel:}{=:#2:} % {\doifinstringelse{=\currentlevel:0}{=:#2:}\donefalse\donetrue} % \donefalse} % \donefalse % \else % \donetrue % \fi % \ifdone % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi} % % \def\doifprevlevelelse[#1::#2]% % {\dosavesomelevel[#2:0:0:0:0]% % \ifcase\alltoclevels % \doifelse{\@@sectiontype}{#1} % {\doifinstringelse{=\currentlevel:}{=:#2:}\donetrue\donefalse} % \donefalse % \else % \donetrue % \fi % \ifdone % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi} % % again faster: % \def\doifnextlevelelse[#1::#2]% beware: this one is \let % {\dosavesomelevel[#2:0:0:0:0]% % \ifcase\alltoclevels % \ifnum\@@sectiontype=#1 % \def\levelstring{=:#2:}% % \doifincsnameelse{=\currentlevel:}\levelstring % {\doifincsnameelse{=\currentlevel:0}\levelstring\donefalse\donetrue} % \donefalse % \else % \donefalse % \fi % \else % \donetrue % \fi % \ifdone % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi} % %\def\doifprevlevelelse[#1::#2]% beware: this one is \let % {\dosavesomelevel[#2:0:0:0:0]% % \ifcase\alltoclevels % \ifnum\@@sectiontype=#1 % \doifinstringelse{=\currentlevel:}{=:#2:}\donetrue\donefalse % \else % \donefalse % \fi % \else % \donetrue % \fi % \ifdone % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi} % % \let\doiftoclevelelse\doifnextlevelelse % \let\doifreglevelelse\doifprevlevelelse % \let\doifblklevelelse\doifprevlevelelse % % we want to be able to overload them globally % This will be reimplemented some day soon % % {nn}{xx}{yy} % % -> \scan{..}{..}{0} met 0 als sentinel % still not perfect % % \def\doifnextlevelelse[#1]% !! this one is \let / uti seperator -- % {\edef\somesavedlevel{\sectionseparator\@@filterlevelpart[#1]}% % \ifcase\alltoclevels % \ifnum\@@sectiontype=\@@filterblockpart[#1]\relax % \edef\levelstring{=\sectionseparator\@@filternumberpart[#1]\sectionseparator}% % \doifincsnameelse{=\currentlevel\sectionseparator}\levelstring % {\doifincsnameelse{=\currentlevel\sectionseparator0}\levelstring % \donefalse % \donetrue} % \donefalse % \else % \donefalse % \fi % \else % \donetrue % \fi % \ifdone % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi} % % \def\doifprevlevelelse[#1]% !! this one is \let / uti seperator -- % {\edef\somesavedlevel{\sectionseparator\@@filterlevelpart[#1]}% % \ifcase\alltoclevels % \ifnum\@@sectiontype=\@@filterblockpart[#1]\relax % \doifinstringelse % {=\currentlevel\sectionseparator} % {=\sectionseparator\@@filternumberpart[#1]\sectionseparator} % \donetrue\donefalse % \else % \donefalse % \fi % \else % \donetrue % \fi % \ifdone % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi} \def\doifnextlevelelse[#1]% !! this one is \let / uti seperator -- {\edef\somesavedlevel{\sectionseparator\@@filterlevelpart[#1]}% \edef\@@tocsectiontype{\@@filterblockpart[#1]}% needed for nested tocs \ifcase\alltoclevels \ifnum\@@sectiontype=\@@tocsectiontype\relax \edef\levelstring{=\sectionseparator\@@filternumberpart[#1]\sectionseparator}% \doifincsnameelse{=\currentlevel\sectionseparator}\levelstring {\doifincsnameelse{=\currentlevel\sectionseparator0}\levelstring \donefalse \donetrue} \donefalse \else \donefalse \fi \else \donetrue \fi \ifdone \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\doifprevlevelelse[#1]% !! this one is \let / uti seperator -- {\edef\somesavedlevel{\sectionseparator\@@filterlevelpart[#1]}% \edef\@@tocsectiontype{\@@filterblockpart[#1]}% needed for nested tocs \ifcase\alltoclevels \ifnum\@@sectiontype=\@@tocsectiontype\relax \doifinstringelse {=\currentlevel\sectionseparator} {=\sectionseparator\@@filternumberpart[#1]\sectionseparator} \donetrue\donefalse \else \donefalse \fi \else \donetrue \fi \ifdone \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} % we need to cover the special case of nested lists in section blocks % % \starttext % % \def\ChapterEntry#1#2#3% % {chapter : \hbox to \hsize{\strut\bf#2\hss#3}\endgraf\placelist[section]} % % \startfrontmatter % optional % \placelist[chapter][alternative=command,command=\ChapterEntry,criterium=text] \page % \stopfrontmatter % optional % % \startbodymatter % optional % \chapter{first} \section{one} test \section{two} test \page % \chapter{second} \section{alpha} test \section{beta} test \page % \stopbodymatter % optional % % \stoptext \def\doiftoclevelelse{\doifnextlevelelse} \def\doifreglevelelse{\doifprevlevelelse} \def\doifblklevelelse{\doifprevlevelelse} \def\@@longformatnumber#1% {\csname\previoussection{#1}\s!format\endcsname \sectionseparator \@@shortsectionnumber{#1}} % \def\@@longsectionnumber#1% % {\ifnum\countervalue{\??se\previoussection{#1}}>\zerocount % \csname\previoussection{#1}\c!nummer\endcsname.% % \fi % \@@shortsectionnumber{#1}} \def\@@longsectionnumber#1% {\ifreversesectionnumbers \@@shortsectionnumber{#1}% \ifnum\countervalue{\??se\previoussection{#1}}>\zerocount .\csname\previoussection{#1}\c!number\endcsname \fi \else \ifnum\countervalue{\??se\previoussection{#1}}>\zerocount \csname\previoussection{#1}\c!number\endcsname.% \fi \@@shortsectionnumber{#1}% \fi} % suited for chinese too: % % \def\@@shortsectionnumber#1% % {\@EA\ifx\csname\??se#1\@@sectionblock\c!conversie\endcsname\relax % \@@sectionvalue{#1}% % \else % \@@sectionconversion{#1}{\@@sectionvalue{#1}}% % \fi} % % obey eigennummer % % \def\@@shortsectionnumber#1% % {\@EA\ifx\csname\??se#1\c!eigennummer\endcsname\relax % \@EA\ifx\csname\??se#1\@@sectionblock\c!conversie\endcsname\relax % \@EA\ifx\csname\??se#1\c!conversie\endcsname\relax % \@@sectionvalue{#1}% % \else % \@@sectionconversion{#1}{\@@sectionvalue{#1}}% % \fi % \else % \@@sectionconversion{#1}{\@@sectionvalue{#1}}% % \fi % \else % \csname\??se#1\c!eigennummer\endcsname % \fi} \def\@@shortsectionnumber#1% {\@EA\ifx\csname\??se#1\c!ownnumber\endcsname\relax \@EA\ifx\csname\??se#1\@@sectionblock\c!conversion\endcsname\relax \@EA\ifx\csname\??se#1\c!conversion\endcsname\relax \@@sectionvalue{#1}% \else \@@sectionconversion{#1}{\@@sectionvalue{#1}}% \fi \else \@@sectionconversion{#1}{\@@sectionvalue{#1}}% \fi \else \csname\??se#1\c!ownnumber\endcsname \fi} \def\dosetlocalsectionblock#1#2#3% new \edef's {\edef\@@sectiontype {#1}% \edef\@@sectionblock {#2}% \edef\@@sectionblocks{#3}} % beware, the \resetsectionmarks generates some nodes that % will result in an additional last page, which needs to be % captured at the end % \def\doaroundsectionblock#1% % {\doifvaluesomething{\??sb#1\c!page} % {\ExpandFirstAfter\page[\getvalue{\??sb#1\c!page}]}% % \resetsectioncounters\zerosection % was firstsection % \resetsectionmarks\zerosection} % \def\dostartsectionblock#1#2% % {\begingroup % \doaroundsectionblock{#1}% % going to a new page or so % \getvalue{\??sb#1}% % set name of section block % \getsectionblockenvironment{#1}% % special settings, grouped % %\expandafter\csname#2true\endcsname % obsolete % \setsystemmode{#1}% % can be used in conditionals % \getvalue{\??sb\@@sectionblock\c!before}% this one is not to be moved! % \showmessage\m!structures1\@@sectionblocks} % \def\dostopsectionblock % {\showmessage\m!structures2\@@sectionblocks % \getvalue{\??sb\@@sectionblock\c!after}% don't move % \doaroundsectionblock\@@sectionblock % \endgroup} \def\doaroundsectionblock {\doifvaluesomething{\??sb\@@sectionblock\c!page} {\page[\getvalue{\??sb\@@sectionblock\c!page}]}% \resetsectioncounters\zerosection % was firstsection \resetsectionmarks\zerosection} \def\dostartsectionblock#1#2% {\begingroup \getvalue{\??sb#1}% \doaroundsectionblock % \doifvaluesomething{\??sb\@@sectionblock\c!page}{\page[\getvalue{\??sb\@@sectionblock\c!page}]}% % \resetsectioncounters\zerosection % was firstsection % \resetsectionmarks\zerosection \getsectionblockenvironment\@@sectionblock \setsystemmode\@@sectionblock \getvalue{\??sb\@@sectionblock\c!before}% \showmessage\m!structures1\@@sectionblocks} \def\dostopsectionblock {\showmessage\m!structures2\@@sectionblocks \getvalue{\??sb\@@sectionblock\c!after}% don't move \doaroundsectionblock % \doifvaluesomething{\??sb\@@sectionblock\c!page}{\page[\getvalue{\??sb\@@sectionblock\c!page}]}% % \resetsectioncounters\zerosection % was firstsection % \resetsectionmarks\zerosection \endgroup} \def\dosetupsectionblock[#1]% [#2] {\getparameters[\??sb#1]} \def\setupsectionblock {\dodoubleargument\dosetupsectionblock} \long\def\setsectionblockenvironment#1#2% {\long\setvalue{\??sb\s!do#1}{\do{#2}}} \def\getsectionblockenvironment#1% {\let\do\firstofoneargument\getvalue{\??sb\s!do#1}} \setvalue{\e!start\v!sectionblockenvironment}% {\dosingleargument\dostartsectionblockenvironment} \def\dostartsectionblockenvironment[#1]% evt \pushendofline \popendofline {\long\def\do##1##2{\setsectionblockenvironment{#1}{##1##2}}% \grabuntil{\e!stop\v!sectionblockenvironment}{\getvalue{\??sb\s!do#1}}} %D \starttyping %D \startsectionblockenvironment[frontpart] %D \setuppagenumbering[conversion=romannumerals] %D \stopsectionblockenvironment %D %D \startsectionblockenvironment[bodypart] %D \setuppagenumber[number=1] %D \stopsectionblockenvironment %D %D \startsectionblockenvironment[frontpart] %D \setuppagenumbering[conversion=character] %D \stopsectionblockenvironment %D %D \starttext %D \startfrontmatter \chapter{test} \stopfrontmatter %D \startbodymatter \chapter{test} \stopbodymatter %D \startappendices \chapter{test} \stopappendices %D \stoptext %D \stoptyping % We used to use the first char as id, but a counter is % better, because in english we get a name clash. \newcounter\currentsectionblock \def\currentsection{\@@sectionblock} \def\dodefinesectionblock[#1][#2][#3]% {\getparameters [\??sb#1] [\c!number=\v!yes, \c!page=\v!right, % anders worden marks te vroeg gereset ! %\c!before=, %\c!after=, #3]% \expandafter\newif\csname if#2\endcsname % better a mode \doglobal\increment\currentsectionblock \setsectionblockenvironment{#1}{}% \setevalue{\??sb #1}{\noexpand\dosetlocalsectionblock{\currentsectionblock}{#1}{#2}}% \setvalue {\e!start#2}{\dostartsectionblock{#1}{#2}}% \setvalue {\e!stop #2}{\dostopsectionblock}} \def\definesectionblock {\dotripleargument\dodefinesectionblock} \def\sectionblocklabel#1#2% {\@EA\ifx\csname\??ko#1\@@sectionblock\c!label\endcsname\relax \labeltexts{#1}{#2}% \else \labeltexts{\getvalue{\??ko#1\@@sectionblock\c!label}}{#2}% \fi} \dosetlocalsectionblock{2}{\v!bodypart}{\v!bodymatter} % hm, dirty \def\setsectiontype[#1]% {\getvalue{\??sb#1}} \def\writesection#1#2#3% #3 -> \asciititle {\bgroup \edef\!!stringa{#1}% \@EA\writestatus\@EA {\!!stringa} {\ifsectionnumber#2\else(#2)\fi\normalspace\asciititle}% \egroup} \def\@@kolevel{1} \def\headlevel{\@@kolevel} \def\dohandlepagebreakAA#1% {\ifnum\lastpenalty>0 \global\pagebreakdisabledtrue \fi} % \setuphead[section][aligntitle=float] % permits title next to sidefloat % % \placefigure[left]{}{} \section{\dorecurse{10}{bagger }} \input tufte % \def\dohandlepagebreakAB#1% will be replaced by a more clever (signaling) mechanism (in beta) % {\doifnotvalue{\??ko#1\c!aligntitle}\v!float\flushsidefloats % \getvalue{\??ko#1\c!before}% % % \whitespace vervangen door \noindent elders % \relax % \ifpagebreakdisabled % \global\pagebreakdisabledfalse % \else % \!!countb\getvalue{\??se\@@sectie\c!level}\relax % \ifnum\!!countb>\@@kolevel\relax % \!!counta20000 % \multiply\!!countb 500 % \advance\!!counta \!!countb % \dosomebreak{\penalty\!!counta}% % \else % \dosomebreak\allowbreak % \fi % \fi % \doifvalue{\??ko#1\c!aligntitle}\v!float\indent % \xdef\@@kolevel{\getvalue{\??se\@@sectie\c!level}}} \chardef\somebreakmethod\plusone \def\dohandlepagebreakAB#1% will be replaced by a more clever (signaling) mechanism (in beta) {\doifnotvalue{\??ko#1\c!aligntitle}\v!float\flushsidefloats \getvalue{\??ko#1\c!before}% % \whitespace vervangen door \noindent elders \relax \ifpagebreakdisabled \global\pagebreakdisabledfalse \else \ifcase\somebreakmethod % 0 = nothing \or % 1 = old weighted version \!!countb\getvalue{\??se\@@sectie\c!level}\relax \ifnum\!!countb>\@@kolevel\relax \!!counta20000 \multiply\!!countb 500 \advance\!!counta \!!countb \dosomebreak{\penalty\!!counta}% \else \dosomebreak\allowbreak % brr \fi \or % 2 = strict version \dosomebreak{\penalty\maxdimen}% \else % nothing \fi \fi \doifvalue{\??ko#1\c!aligntitle}\v!float\indent \xdef\@@kolevel{\getvalue{\??se\@@sectie\c!level}}} \def\dohandlepagebreakBB#1#2#3% {%\doifinsetelse{\getvalue{\??tk#2\c!state}}{\v!normal,\v!start} \doifelselayouttextline{#2} {\doifvaluesomething{\??ko#1#3} {\setuplayouttext[#2][\c!state=\getvalue{\??ko#1#3}]}} \donothing} \def\dohandlepagebreakB#1% {\doifvaluesomething{\??ko#1\c!page} {\def\resetcurrentsectionmarks% toegevoegd, zie \page {\resetsectionmarks{\previoussection\@@sectie}}% \page[\getvalue{\??ko#1\c!page}]% \dohandlepagebreakBB{#1}\v!header\c!header \dohandlepagebreakBB{#1}\v!text \c!text \dohandlepagebreakBB{#1}\v!footer\c!footer}} \def\dohandlepagebreakX#1% zie doordefinieren / boven {\bgroup \!!countb\@@kolevel \advance\!!countb #1 \multiply\!!countb 500 \!!counta20000 \advance\!!counta \!!countb \dosomebreak{\penalty\!!counta}% \egroup} \newconditional\ignorehandlepagebreak \def\handlepagebreak#1% {\ifconditional\ignorehandlepagebreak \setfalse\ignorehandlepagebreak \else \dohandlepagebreakAA{#1}% \ifnum\countervalue{\??se\previoussection\@@sectie}>\zerocount\relax \ifnum\countervalue{\??se\@@sectie}>\zerocount \dohandlepagebreakB{#1}% \else \doifnotvalue{\??ko#1\c!continue}\v!yes{\dohandlepagebreakB{#1}}% \fi \else \dohandlepagebreakB{#1}% \fi \dohandlepagebreakAB{#1}% \fi} \def\handlenopagebreak#1% {\ifconditional\ignorehandlepagebreak \setfalse\ignorehandlepagebreak \else \xdef\@@kolevel{\getvalue{\??se\@@sectie\c!level}}% \nobreak \fi} \def\localheadheight {\strutht} \def\localheaddepth {\strutdp} \def\localheadlineheight{\lineheight} \def\dolocalheadsetup#1% koppeling met standaard kopcommando / engels {\forgetall % traag dus ... \doifvaluesomething{\??ko#1\c!align} % wordt al expanded in spa {\expanded{\setupalign[\getvalue{\??ko#1\c!align}]}}% \doifvaluesomething{\??ko#1\c!tolerance} % wordt al expanded in spa {\expanded{\setuptolerance[\getvalue{\??ko#1\c!tolerance}]}}% \doifvalue{\??ko#1\c!strut}\v!no % wordt al expanded in spa {\setnostrut}% new \def\\{\crlf\strut\ignorespaces}} \def\localkopsetup{\localheadsetup} % kan tzt weg % todo: make them conditionals: \newif\ifincrementnumber \newif\ifreversesectionnumbers % todo: key/val \newif\ifsectionnumber \sectionnumbertrue \newif\ifdisplaysectionhead \displaysectionheadtrue \newif\ifplacehead \newif\ifemptyhead \newif\ifwritetolist \newif\ifheadnumber \newif\ifheadnumbercontent % niet meer wijzigen / wordt mode \newif\ifheadprefix \newif\ifsomeheadconversion % new \newconditional\@@resetsubheadnumbers \def\setsectieenkoppeling#1% {\edef\@@koppeling{\getvalue{\??ko#1\c!coupling}}% \edef\@@sectie{\getvalue{\??ko#1\c!section}}% \doifnothing\@@koppeling {\edef\@@koppeling{#1}}% \doifnothing\@@sectie {\edef\@@sectie{\getvalue{\??ko\@@koppeling\c!section}}}} % \handlepagebreak komt het eerst omdat eventueel % subpaginanummers moeten worden afgehandeld. Vervolgens % worden de nummers opgehoogd en referenties geset, dan % volgt de kop en tot slot de worden de marks en de prefix % geset. % \hoofdstuk {tekst} % \hoofdstuk tekst % \hoofdstuk \let\finalsectionnumber\empty \def\dofinalsectionnumber {\ifundefined{\@@sectie\c!number}\else \ifsomeheadconversion \@@shortsectionnumber\@@sectie \else \getvalue{\@@sectie\c!number}% \fi \fi} \def\findsectionnumber#1#2#3% class file title / uti seperator -- {\begingroup \setsectieenkoppeling{#1}% \xdef\foundsectionnumber{1}% \def\dolistelement##1##2##3##4##5##6% {\doif{##1}{#1} {\ConvertConstantAfter\doif{##4}{#3} {\global\utilitydonetrue \scratchcounter=0\getvalue{\??se\@@sectie\c!level}% % %\advance\scratchcounter 2 %\@EA\def\@EA\do\@EA####\@EA1\sectionseparator####2]% % {\advance\scratchcounter -1 % \ifcase\scratchcounter % \xdef\foundsectionnumber{####1}% % \else % \do####2]% % \fi}% %\do##5]}}}% % \def\do####1\relax % :/- clean {\advance\scratchcounter \minusone \ifcase\scratchcounter \xdef\foundsectionnumber{\@@filterheadpart[####1]}% \else \@EAEAEA\do\@@filtertailpart[####1]\relax \fi}% \@EA\do\@@filternumberpart[##5]\relax}}}% \setbox0\vbox {\doutilities{#1}{#2}{#1}\relax\relax}% \endgroup \doifnumberelse\foundsectionnumber {\doif\foundsectionnumber\!!zerocount {\globallet\foundsectionnumber\!!plusone}} {\globallet\foundsectionnumber\!!plusone}% an appendix or so \setupheadnumber[#1][\foundsectionnumber]% \setupheadnumber[#1][-1]} % deal with eigennummer \def\setsomeheadconversion#1#2% {\someheadconversionfalse \doifelsevalue{\??ko#1\c!ownnumber}\v!yes {\setgvalue{\??se\@@sectie\c!ownnumber}{#2}% \def\someheadconversion{#2}} {\letgvalue{\??se\@@sectie\c!ownnumber}\relax \determineheadnumber[#1]% \@EA\ifx\csname\??se\@@sectie\@@sectionblock\c!headconversion\endcsname\relax \@EA\ifx\csname\??se\@@sectie\c!headconversion\endcsname\relax \def\someheadconversion{#2}% \else \@EA\ifx\csname\??se\@@sectie\c!headconversion\endcsname\empty \def\someheadconversion{#2}% \else \someheadconversiontrue \def\someheadconversion% {\fullsectionnumber{#1}{\getvalue{\??se\@@sectie\c!headconversion}}{#2}}% \fi \fi \else \@EA\ifx\csname\??se\@@sectie\@@sectionblock\c!headconversion\endcsname\empty \def\someheadconversion{#2}% \else \someheadconversiontrue \def\someheadconversion% {\fullsectionnumber{#1}{\getvalue{\??se\@@sectie\@@sectionblock\c!headconversion}}{#2}}% \fi \fi}} \def\writtenfullsectionnumber {\string\fullsectionnumber} \def\ignoredfullsectionnumber#1#2#3% {#3} \let\storedfullsectionnumber\relax \def\expandablefullsectionnumber#1#2#3% {\convertnumber{#2}{#3}} \unexpanded\def\naturalfullsectionnumber#1#2#3% {\sectionblocklabel{#1}{\convertnumber{#2}{#3}}} \unexpanded\def\limitedfullsectionnumber#1#2#3% {\convertnumber{#2}{#3}} \def\setfullsectionnumber#1% {\doifelsevalue{#1\c!headconversion}\v!yes {\doifelsevalue{#1\c!headlabel}\v!yes {\let\fullsectionnumber\naturalfullsectionnumber} {\let\fullsectionnumber\limitedfullsectionnumber}} {\let\fullsectionnumber\ignoredfullsectionnumber}} \let\fullsectionnumber\limitedfullsectionnumber % from cont-new: \def\expandifnonempty#1% {\@EA\ifx\csname#1\endcsname\empty \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi {\csname#1\endcsname}} \def\@@sectiekoppeling#1% {\expandifnonempty{\??ko#1\c!coupling}{#1}} \def\@@sectiesectie#1% {\expandifnonempty{\??ko#1\c!section}{\@@sectiekoppeling{#1}}} \def\sectioncountervalue#1% {\@@sectionvalue{\@@sectiesectie{#1}}} % \dodododoconstructhead IS NON GROUPED, SO WE NEED TO RESTORE !!!! % % dit kan dus beter \everyaroundhead zijn \let\currentheadnumber\empty \let\currentheadtext \empty \def\dodoconstructhead#1[#2]#3% [ref] {title} {\doifelsevalue{\??ko#1\c!ownnumber}\v!yes {\doquadruplegroupempty\dododoconstructhead{#1}{#2}{#3}} {\fourthargumentfalse \dododoconstructhead{#1}{#2}{#3}{}}} \def\dododoconstructhead#1#2#3#4% [ref] {own} {title} {\iffourthargument \def\next{\dodododoconstructhead{#1}[#2]{#3}{#4}}% \else \def\next{\dodododoconstructhead{#1}[#2]{\finalsectionnumber}{#3}}% \fi \next} % pas met \ExpandFirstAfter op bij twee||taligheid \ifx\dohandleheadnumber\undefined \let\dohandleheadnumber\firstofoneargument \fi \unexpanded\def\\{\space} \def\emptyheadcorrection % experimental, should work {\ifemptyhead % well with na=\blank \vskip-\lineheight \dosomebreak\nobreak \kern\zeropoint \prevdepth\strutdepth \fi} \let\localkopprefix\empty \def\headparameter#1% to do: everywhere in core-sec {\executeifdefined{\??ko\currenthead#1}\empty} % todo: write to list etc in both args or in enclosing h/vbox else it gets % lost when no #1 or #2 is typeset % we will use variables here \def\dodododoconstructhead#1[#2]#3#4% [ref] {number} {title} {\def\currenthead{#1}% dus #1 overal vervangen \let\finalsectionnumber\dofinalsectionnumber % overloaded ungrouped -) \unexpanded\def\\{\space}% \edef\numberseparator{\spr{\getvalue{\??ko\currenthead\c!separator}}}% \flushingcolumnfloatsfalse % {number} can be \finalsectionnumber \someheadconversionfalse \let\fullsectionnumber\limitedfullsectionnumber \setsectieenkoppeling{#1}% \doifelsevaluenothing{\??ko#1\c!prefix} \headprefixfalse\headprefixtrue \ifheadprefix \doifelsevalue{\??ko#1\c!prefix}{+} {\doifelsenothing{#2} {\def\localkopprefix{+}} {\def\localkopprefix{#2}}} % eigenlijk alleen eerste {\edef\localkoprefix{\getvalue{\??ko#1\c!prefix}}}% \else \let\localkoprefix\empty \fi \placeheadtrue \processaction [\getvalue{\??ko#1\c!placehead}] [ \v!yes=>\emptyheadfalse, \v!empty=>\emptyheadtrue, \v!no=>\emptyheadtrue\placeheadfalse]% \doifelsevalue{\??ko#1\c!resetnumber}\v!no {\setfalse\@@resetsubheadnumbers}% {\settrue \@@resetsubheadnumbers}% \writetolistfalse \processaction [\getvalue{\??ko#1\c!incrementnumber}] [ \v!yes=>\incrementnumbertrue, \v!no=>\incrementnumberfalse, \v!list=>\incrementnumberfalse % beware, since no numbers are used, no nested lists are % possible here \writetolisttrue, \s!unknown=>{\ifx\currentproduct\empty \findsectionnumber{#1}\commalistelement{#4}% \fi \incrementnumbertrue}]% \edef\numberheaddistance {\getvalue{\??ko#1\c!distance}}% \edef\numberheadalternative{\getvalue{\??ko#1\c!alternative}}% \doifelsevalue{\??ko:\numberheadalternative}\v!horizontal \displaysectionheadfalse \displaysectionheadtrue \ifsectionnumber \doifelsevalue{\??sb\@@sectionblock\c!number}\v!yes {\doifelsevalue{\??ko#1\c!number}\v!yes \headnumbertrue \headnumberfalse} {\headnumberfalse}% \else \headnumberfalse \fi \defconvertexpanded\asciititle{\getvalue{\??ko#1\c!expansion}}{#4}% % \gdef\currentheadtext{#4}% scheelt args \globallet\currentheadnumber\empty % \ifincrementnumber \ifplacehead \checknexthead\handlepagebreak{#1}% \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...] \ifheadprefix %\setupreferencing[\c!prefix=-]% \setupreferenceprefix[-]% \fi \getvalue{\e!next\@@sectie}% \ifheadnumber \setsomeheadconversion{#1}{#3}% \let\fullsectionnumber\expandablefullsectionnumber \xdef\currentheadnumber{\someheadconversion}% \getvalue{\??ko#1\c!inbetween}% \ifsomeheadconversion \let\fullsectionnumber\naturalfullsectionnumber \doplaceheadnumbertext {#1} {\setsectionlistreference{\@@sectie}{#1}% \pagetype[\@@koppeling]% \let\fullsectionnumber\writtenfullsectionnumber \rawreference\s!sec{#2}{{\someheadconversion}{\asciititle}}% \resetsectionmarks\@@sectie \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}% \let\fullsectionnumber\writtenfullsectionnumber \dowritetolist\@@koppeling\someheadconversion{#4}\v!head}% {\dohandleheadnumber\someheadconversion}% handle is new {#4} {\marking[#1]{#4}% \let\fullsectionnumber\storedfullsectionnumber \expanded{\marking[#1\v!number]{\someheadconversion}}}% \let\fullsectionnumber\ignoredfullsectionnumber \writesection{#1}{\someheadconversion}{#4}% \else \doplaceheadnumbertext {#1} {\setsectionlistreference{\@@sectie}{#1}% \pagetype[\@@koppeling]% \rawreference\s!sec{#2}{{#3}{\asciititle}}% \resetsectionmarks\@@sectie \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}% \dowritetolist\@@koppeling{#3}{#4}\v!head} {\sectionblocklabel{#1}{\dohandleheadnumber{#3}}}% handle is new {#4} {\marking[#1]{#4}% \doifelsevalue{\??ko#1\c!ownnumber}\v!yes % rommelig omdat {\edef\finalsectionnumber{#3}} % #3 al is toegekend {\determineheadnumber[#1]}% migreert naar 3e argument \expanded{\marking[#1\v!number]{\finalsectionnumber}}}% \writesection{#1}{#3}{#4}% \fi \else \getvalue{\??ko#1\c!inbetween}% \doplaceheadtext {#1} {\setsectionlistreference{\@@sectie}{#1}% \pagetype[\@@koppeling]% \rawreference\s!sec{#2}{{#3}{\asciititle}}% \resetsectionmarks\@@sectie \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}% \doifelsevalue{\??ko#1\c!ownnumber}\v!yes % brrr, new per 18/1/2005, sometimes we need {\dowritetolist\@@koppeling{#3}{#4}\v!head} % entries in the list (special purpose) but {\dowritetolist\@@koppeling {}{#4}\v!head}% not in the header, ok we could pop in a command }% \dowritetolist\@@koppeling{}{#4}\v!head} {#4} {\marking[#1]{#4}% \doifelsevalue{\??ko#1\c!ownnumber}\v!yes % brrr {\edef\finalsectionnumber{#3}} {\determineheadnumber[#1]}% % todo : geen markering (leeg maken) \expanded{\marking[#1\v!number]{\finalsectionnumber}}}% \writesection{#1}{-}{#4}% \fi \ifheadprefix \setupreferenceprefix[\localkopprefix]% \fi \ifdisplaysectionhead \dosomebreak\nobreak \emptyheadcorrection \getvalue{\??ko#1\c!after}% \fi \else % Whatever future tex's will do with nodes, % we assume a node here, because other \c!after=\blank % will fail! See 'prikkels' % % so, maybe we need an explicit \kern % % do nothing / should be vbox to 0pt % \checknexthead\dohandlepagebreakB{#1}% toegevoegd ivm subpaginanr / tug sheets \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...] \ifheadprefix \setupreferenceprefix[-]% \fi \getvalue{\e!next\@@sectie}% \ifheadnumber \setsomeheadconversion{#1}{#3}% \let\fullsectionnumber\expandablefullsectionnumber \xdef\currentheadnumber{\someheadconversion}% \fi \getvalue{\??ko#1\c!inbetween}% documenteren, is enige hook \bgroup \setsectionlistreference{\@@sectie}{#1}% \resetsectionmarks\@@sectie \marking[#1]{#4}% \doifelsevalue{\??ko#1\c!ownnumber}\v!yes {\edef\finalsectionnumber{#3}} {\determineheadnumber[#1]}% \expanded{\marking[#1\v!number]{\finalsectionnumber}}% \pagetype[\@@koppeling]% % \bgroup \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}% \ifheadnumber \rawreference\s!sec{#2}{{#3}{\asciititle}}% \dowritetolist\@@koppeling{#3}{#4}\v!head \writesection{#1}{#3}{#4}% \else % hm, also no own number \rawreference\s!sec{#2}{{#3}{\asciititle}}% \dowritetolist\@@koppeling{}{#4}\v!head \writesection{#1}{-}{#4}% \fi \egroup \ifheadprefix \setupreferenceprefix[\localkopprefix]% \fi \fi \else % todo : ref prefix \ifplacehead \checknexthead\handlepagebreak{#1}% \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...] \getvalue{\??ko#1\c!inbetween}% \doplaceheadtext {#1} {\forcesectiontolist{#1}{#4}% \rawreference\s!sec{#2}{{#3}{\asciititle}}} % #3 ? {#4} %{}% new: {\marking[#1]{#4}% \marking[#1\v!number]{}}% \writesection{#1}{-}{#4}% \ifdisplaysectionhead \dosomebreak\nobreak \emptyheadcorrection \getvalue{\??ko#1\c!after}% \fi \else % do nothing / should be vbox to 0pt \checknexthead\handlepagebreak{#1}% \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...] \getvalue{\??ko#1\c!inbetween}% \forcesectiontolist{#1}{#4}% \rawreference\s!sec{#2}{{#3}{\asciititle}}% #3 ? \marking[#1]{#4}% \marking[#1\v!number]{}% \writesection{#1}{-}{#4}% \fi \fi \flushingcolumnfloatstrue \someheadconversionfalse \setfalse\ignorehandlepagebreak \let\fullsectionnumber\limitedfullsectionnumber % ignorespaces prevents spaces creeping in when after=\dontleavehmode \ifdisplaysectionhead\ignorespaces\else\expandafter\GotoPar\fi} \def\forcesectiontolist#1#2% {\ifwritetolist % we need to make sure that there is a number set (non % zero) else the list mechanism cannot determine the % level \bgroup \setupheadnumber[#1][+1]% traag, wordt \getvalue{\c!next...} \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}% \dowritetolist\@@koppeling{}{#2}\v!head \setupheadnumber[#1][-1]% traag, wordt \getvalue{\c!previous...} \egroup \fi} \let\previoussectionformat\empty \let\currentsectionformat \empty \let\updatelistreferences \relax \let\updatedlistreferences\empty \def\setsectionlistreference#1#2% {\ifnum\countervalue{\??se\previoussection{#1}}>0\relax \xdef\previoussectionformat{\@@longformatnumber{\previoussection{#1}}}% \else \globallet\previoussectionformat\empty \fi \xdef\currentsectionformat{\@@longformatnumber{#1}}} \def\startlistreferences#1% {\thisissomeinternal{\s!lst}{#1\currentsectionformat}% \setxvalue{\s!lst:#1}{\realfolio}% to be sure \setxvalue{\s!lst:#1\currentsectionformat}{\realfolio}% \setxvalue{\e!previouslocal#1}{\s!lst:#1\previoussectionformat}% \setxvalue{\e!currentlocal#1}{\s!lst:#1\currentsectionformat}% \doifelse{\currentsectionformat}{} {\setglobalcrossreference {\e!previous#1}{}{\realfolio}{}} {\setglobalsystemreference\rt!list {\e!previous#1}{\getvalue{\e!previouslocal#1}}}% \def\stoplistreferences{\dostoplistreferences{#1}}} \def\dostoplistreferences#1% {\ifutilitydone \addtocommalist{#1}\updatedlistreferences % nog global (\doglobal) \globallet\updatedlistreferences\updatedlistreferences % een noodverbandje \gdef\updatelistreferences% {\def\docommand####1% {\setglobalsystemreference\rt!list {\e!previous####1}{\getvalue{\e!currentlocal####1}}}% \processcommacommand[\updatedlistreferences]\docommand \globallet\updatelistreferences\relax \globallet\updatedlistreferences\empty}% \fi} \let\stoplistreferences\relax \appendtoks \updatelistreferences \to\aftereverypage % \prevdepth\strutdp % is belangrijk, vergelijk naast elkaar: % % \subject{test} \input tufte % \subject{test} \strut \input tufte % \subject{test} \placelist[...] % todo: kap % to be documented: \placeheadtext \placeheadnumber \unexpanded\def\placeheadtext {\doquintupleempty\doplaceheadtextornumber [\c!textstyle][\c!textcolor][\empty]} \unexpanded\def\placeheadnumber {\doquintupleempty\doplaceheadtextornumber [\c!numberstyle][\c!numbercolor][\v!number]} \def\doplaceheadtextornumber[#1][#2][#3][#4][#5]% {\bgroup \edef\@@sectie{\??ko\iffifthargument#5\else#4\fi}% \dostartattributes\@@sectie\c!style\c!color\empty \dontconvertfont \dostartattributes\@@sectie{#1}{#2}\empty \setupinterlinespace \begstrut\getmarking[\mainmarking{#4#3}]\endstrut \endgraf \dostopattributes \dostopattributes \egroup} \chardef\headtimingmode=0 % \chardef\headtimingmode=1 % 0 also works ok now too % % Martin Kolarik's problem: % % \setuphead[section][command=\doTitle] % % \def\doTitle#1#2% % {\ruledvbox{\forgetall \hsize=4cm % \ruledhbox{\ruledvtop{#1}\ruledvtop{#2}}}} % % \section{test test test test test test test test test test % test test test test test test test} \newevery \everyheadstart \relax \def\placeheadmargintexts#1% {\the\everyheadstart \doifvalue{\??ko#1\c!margintext}\v!yes\placemargincontent} \def\doplaceheadtext#1#2#3#4% {\beginheadplacement{#1}% \ifemptyhead % = needed \setbox0=\ifvertical\vbox\else\hbox\fi to \zeropoint {\headnumbercontentfalse \resetsystemmode\v!sectionnumber #2}% \makestrutofbox0 \else % = needed \setbox0=\ifvertical\vbox\else\hbox\fi % \vhbox {\headnumbercontentfalse \resetsystemmode\v!sectionnumber % less interfering \ifcase\headtimingmode\or#2\fi % outerside font determines distance \dosetfontattribute{\??ko#1}\c!style % but we don't want color to influence user commands % todo: get the if-else out of it \getvalue{\??ko#1\c!command} {} % no number {\dostartattributes{\??ko#1}\c!style\c!color\empty \dostartattributes{\??ko#1}\c!textstyle\c!textcolor\empty \dontconvertfont \ifdisplaysectionhead \setupinterlinespace \else \setupspacing \fi % \ifcase\headtimingmode#2\fi % can introduce cr \getvalue{\??ko#1\c!commandbefore}% \placeheadmargintexts{#1}% binnen #3? \ifdisplaysectionhead \getvalue{\??ko#1\c!textcommand}% struts can be nilled with \setnostrut {\setstrut \begstrut \ifcase\headtimingmode\hbox{#2}\fi \executeifdefined{\??ko#1\c!deeptextcommand}\firstofoneargument{#3}% \endstrut}% \hbox prevents break \xdef\localheadheight {\the\strutht}% \xdef\localheaddepth {\the\strutdp}% \xdef\localheadlineheight{\the\lineheight}% % == \globallet\localheaddepth\strutdepth \else \ifcase\headtimingmode#2\fi \getvalue{\??ko#1\c!textcommand}% {\executeifdefined{\??ko#1\c!deeptextcommand}\firstofoneargument{#3}}% \fi \getvalue{\??ko#1\c!commandafter}% \ifdisplaysectionhead\endgraf\fi \dostopattributes \dostopattributes}}% \fi \endheadplacement{#1}{#4}} \def\doplaceheadnumbertext#1#2#3#4#5% maybe move modes outside box {\beginheadplacement{#1}% \ifemptyhead % = needed \setbox0=\ifvertical\vbox\else\hbox\fi to \zeropoint {\doiftextelse{#3} {\setsystemmode \v!sectionnumber\headnumbercontenttrue } {\resetsystemmode\v!sectionnumber\headnumbercontentfalse}% #2}% \makestrutofbox0 \else % = needed \setbox0=\ifvertical\vbox\else\hbox\fi % \vhbox {\doiftextelse{#3} {\setsystemmode \v!sectionnumber\headnumbercontenttrue } {\resetsystemmode\v!sectionnumber\headnumbercontentfalse}% % less interfering \ifcase\headtimingmode\or#2\fi % outerside font determines distance \dosetfontattribute{\??ko#1}\c!style % but we don't want color to influence user commands \getvalue{\??ko#1\c!command}% {\dostartattributes{\??ko#1}\c!style\c!color\empty \dostartattributes{\??ko#1}\c!numberstyle\c!numbercolor\empty % \getvalue{\??ko#1\c!commandbefore}% strange, why here? moved 21/11/2005 \placeheadmargintexts{#1}% binnen #3? \ifdisplaysectionhead % can be nilled with \setnostrut \getvalue{\??ko#1\c!numbercommand}% {\setstrut \begstrut \executeifdefined{\??ko#1\c!deepnumbercommand}\firstofoneargument{#3}% \endstrut}% \else \getvalue{\??ko#1\c!numbercommand}% {\executeifdefined{\??ko#1\c!deepnumbercommand}\firstofoneargument{#3}}% \fi \dostopattributes \dostopattributes} {\dostartattributes{\??ko#1}\c!style\c!color\empty \dostartattributes{\??ko#1}\c!textstyle\c!textcolor\empty \dontconvertfont \ifdisplaysectionhead \setupinterlinespace \else \setupspacing \fi % \ifcase\headtimingmode#2\fi % can introduce cr \getvalue{\??ko#1\c!commandbefore}% makes more sense here \placeheadmargintexts{#1}% binnen #3? \ifdisplaysectionhead \getvalue{\??ko#1\c!textcommand}% struts can be nilled with \setnostrut {\setstrut \begstrut \ifcase\headtimingmode\hbox{#2}\fi \executeifdefined{\??ko#1\c!deeptextcommand}\firstofoneargument{#4}% \endstrut}% \hbox prevents break \xdef\localheadheight {\the\strutht}% \xdef\localheaddepth {\the\strutdp}% \xdef\localheadlineheight{\the\lineheight}% % == \globallet\localheaddepth\strutdepth \else \ifcase\headtimingmode#2\fi % inside textcommand ? \getvalue{\??ko#1\c!textcommand}% {\executeifdefined{\??ko#1\c!deeptextcommand}\firstofoneargument{#4}}% \fi \getvalue{\??ko#1\c!commandafter}% \ifdisplaysectionhead\endgraf\fi \dostopattributes \dostopattributes}}% \fi \endheadplacement{#1}{#5}} %D \starttyping %D \def\StretchedBox#1% %D {\framed %D [frame=off,offset=.5em,align=middle,width=broad] %D {\sc\def\stretchedspaceamount{.3em}\stretchednormalcase{#1}}} %D %D \definehead[MySubject][subject] %D \setuphead [MySubject][deeptextcommand=\StretchedBox] %D %D \MySubject{feeling stretched feeling stretched feeling stretched feeling stretched} %D \stoptyping \newsignal\headsignal \let\headlastlinewidth\!!zeropoint \def\beginheadplacement#1% {\bgroup \setsystemmode{#1}% to be documented \ifgridsnapping\iftracegridsnapping\showstruts\fi\fi \xdef\localheadheight {\the\strutht}% \xdef\localheaddepth {\the\strutdp}% \xdef\localheadlineheight{\the\lineheight}% % == \globallet\localheaddepth\strutdp \everypar\emptytoks % needed indeed \noindent % ipv \whitespace elders, na \forgetall ! \bgroup \doifinsetelse{\getvalue{\??ko#1\c!aligntitle}}{\v!yes,\v!float}% new {\skip0 1\leftskip \skip2 1\rightskip \xdef\localheadskip{\the\skip0}% \forgetall \leftskip\skip0 \rightskip\skip2 \setlocalhsize\hsize\localhsize \forgetbothskips} {\globallet\localheadskip\!!zeropoint \forgetall}% \dontcomplain \postponenotes \iflocation\ifdisplaysectionhead\else\noninterferingmarks\fi\fi \resetinteractionparameter\c!style \resetinteractionparameter\c!color \resetinteractionparameter\c!contrastcolor \strictouterreferencestrue % tzt instelling \def\localheadsetup{\dolocalheadsetup{#1}}% \startsynchronization} % \setuphead[chapter] [style=\bfd,after=,hang=line] % fit broad 2 % \setuphead[section] [style=\bfc,after=,hang=line] % \setuphead[subsection] [style=\bfb,after=,hang=line] % \setuphead[subsubsection] [style=\bfa,after=,hang=line] % \setuphead[subsubsubsection][style=\bf ,after=,hang=line] % % \chapter {Test} \input tufte \page % \section {Test} \input tufte \page % \subsection {Test} \input tufte \page % \subsubsection {Test} \input tufte \page % \subsubsubsection{Test} \input tufte \page % % \chapter {Test\\Test} \input tufte \page % \section {Test\\Test} \input tufte \page % \subsection {Test\\Test} \input tufte \page % \subsubsection {Test\\Test} \input tufte \page % \subsubsubsection{Test\\Test} \input tufte \page \def\hangheadplacement {\scratchdimen\localheadlineheight \bgroup \openlineheight\scratchdimen \scratchdimen\ht0 \advance\scratchdimen\dp0 \getnoflines\scratchdimen \advance\noflines\minusone \expanded{\egroup\noflines\the\noflines}% brrr \setbox0\hbox{\lower\noflines\scratchdimen\box0}% \scratchdimen\ht0 \advance\scratchdimen\dp0 \advance\scratchdimen-\localheadheight \advance\scratchdimen+\strutdp \ht0 \strutht \dp0 \strutdp \edef\localheaddepth{\the\strutdp}} \newconditional\continuoussectionhead % oeps, \newif\ifcontinuoushead got lost \def\endheadplacement#1#2% {\doifelsevalue{\??rf#1\c!state}\v!start {\doifvaluenothing{\??ko#1\c!file}{\autocrossdocumentfalse}} {\autocrossdocumentfalse}% % no message needed here, should be a proper switch \noflines\zerocount \ifdisplaysectionhead % new (tod tight == one following line up) \processaction [\getvalue{\??ko#1\c!hang}] [ \v!line=>\hangheadplacement\noflines\zerocount, \v!broad=>\hangheadplacement\getnoflines\scratchdimen, \v!fit=>\hangheadplacement\getrawnoflines\scratchdimen, \v!none=>\noflines\zerocount, \v!default=>\noflines\zerocount, \v!unknown=>\hangheadplacement\noflines0\commalistelement\advance\noflines\minusone]% % so far \let\headlastlinewidth\!!zeropoint \snaptogrid[\getvalue{\??ko#1\c!grid}]\hbox {\hskip\localheadskip \hskip\getvalue{\??ko#1\c!margin}\relax \iflocation \ifautocrossdocument \doifreferencefoundelse{\getvalue{\??ko#1\c!file}::#1} {\edef\currentinnerreference{\s!aut:\currenttextreference}% stored in \gotoouterlocation{}{\box0}} % text slot {\hbox{\box0}}% \else \hbox{\box0}% \fi \else \hbox{\box0}% \fi}% \doflushnotes % new, not really needed \endgraf \ifvmode \ifnum\noflines>\zerocount \dorecurse\noflines{\nointerlineskip\dosomebreak\nobreak\strut\endgraf}% \fi \nointerlineskip \dosomebreak\nobreak \fi #2% \else \strut \doflushnotes % new, here since we're in par mode \iflocation \ifautocrossdocument \hhboxindent=\ifconditional\continuoussectionhead\headlastlinewidth\else\zeropoint\fi \unhhbox0\with{\gotobox{\box\hhbox}[\getvalue{\??ko#1\c!file}::#1]}% \advance\lasthhboxwidth by \numberheaddistance \xdef\headlastlinewidth{\the\lasthhboxwidth}% \else \unhbox0 \globallet\headlastlinewidth\!!zeropoint \fi \else \unhbox0 \globallet\headlastlinewidth\!!zeropoint \fi #2% \dimen0=\numberheaddistance \hskip\dimen0 \!!plus \dimen0 \!!minus .25\dimen0 \hskip\headsignal\ignorespaces \fi \ifdisplaysectionhead \ifvmode \ifgridsnapping % important, font related depth, see comment \prevdepth\strutdp \else \prevdepth\localheaddepth \fi \fi \fi \stopsynchronization \egroup \egroup \ifdisplaysectionhead \dochecknextindentation{\??ko#1}% \else \nonoindentation % recently added, was a bug \fi} \def\checknexthead#1#2% nog optioneel {\ifhmode \scratchcounter=\lastpenalty\unpenalty % no beauty in this \ifdim\lastskip=\headsignal \handlenopagebreak{#1}% \global\settrue\continuoussectionhead \else \penalty\scratchcounter \global\setfalse\continuoussectionhead #1{#2}% \fi \else \global\setfalse\continuoussectionhead #1{#2}% \fi} \def\dosetupheadnumber[#1][#2#3]% todo: = (don't reset) {\bgroup \setsectieenkoppeling{#1}% \doifinstringelse{#2}{+-} {\doifelsenothing{#3} {\@@nextsectionnumber\@@sectie} {\!!counta=#2#3\relax \advance\!!counta \@@sectionvalue\@@sectie \@@setsectionnumber\@@sectie\!!counta}} {\@@setsectionnumber\@@sectie{#2#3}}% \egroup} \def\setupheadnumber {\dodoubleargument\dosetupheadnumber} \def\currentheadnumber{0} \def\determineheadnumber[#1]% {\bgroup \setsectieenkoppeling{#1}% \xdef\currentheadnumber{\@@sectionvalue{\@@sectie}}% \egroup} \def\complexheadnumber[#1]% {\bgroup \edef\currentheadnumber{#1}% \doifinsetelse{-}{#1} % br undocumented {\removefromcommalist{-}\currentheadnumber % br \setsectieenkoppeling\currentheadnumber \setupsection[\@@sectie][\c!previousnumber=\v!no]}% {\setsectieenkoppeling\currentheadnumber}% \xdef\currentheadnumber{\@@sectionvalue{\@@sectie}}% \doifnot{\currentheadnumber}{0}{\finalsectionnumber}% \egroup} \def\simpleheadnumber {\currentheadnumber} \definecomplexorsimple\headnumber \def\alinea {\par} % nice testcase % % \setupheads[aligntitle=yes] % % \startnarrower % \subject{\dorecurse{100}{x }} % \section{\dorecurse{100}{x }} % \input tufte \par % \setupheads[alternative=inmargin] % \subject{\dorecurse{100}{x }} % \section{\dorecurse{100}{x }} % \input tufte \par % \stopnarrower \let\numberheadalternative\v!normal \def\defineheadplacement {\dodoubleargument\dodefineheadplacement} \def\dodefineheadplacement[#1][#2]% #3#4 {\setvalue{\??ko:#1}{#2}% \setvalue{\??ko::#1}} \def\normalplacehead {\executeifdefined {\??ko::\numberheadalternative} {\getvalue{\??ko::\v!normal}}} \defineheadplacement[\v!paragraph][\v!vertical]#1#2% {\vbox {\localheadsetup \begstrut\ifheadnumbercontent#1\hskip\numberheaddistance\fi#2}} % \defineheadplacement[\v!normal][\v!vertical]#1#2% % {\ifheadnumbercontent % \setbox0\hbox{{#1}\hskip\numberheaddistance}% % \vbox % {\localheadsetup % \hangindent 1\wd0 % \hangafter 1 % \noindent % \unhbox0 % don't use \strut's here! % #2}% % \else % \vbox % {\localheadsetup\noindent#2}% % \fi} % % enhanced version: % \setuphead % [chapter] % [numberwidth=2cm,hang=line,after={\blank[3*line]}] % % \chapter{Oeps oeps oeps} \input tufte \section{Oeps} % \chapter{Oeps oeps oeps} \section{Oeps} \input tufte \defineheadplacement[\v!normal][\v!vertical]#1#2% {\vbox {\localheadsetup \edef\headwidth {\headparameter\c!width }% \edef\headnumberwidth{\headparameter\c!numberwidth}% \edef\headtextwidth {\headparameter\c!textwidth }% \ifheadnumbercontent \ifx\headwidth\empty \else \ifx\headnumberwidth\empty \ifx\headtextwidth\empty\else \edef\headnumberwidth{\the\dimexpr\headwidth-\headtextwidth\relax}% \fi \else \ifx\headtextwidth\empty \edef\headtextwidth{\the\dimexpr\headwidth-\headnumberwidth\relax}% \fi \fi \hsize\headwidth \fi \ifx\headnumberwidth\empty\else \let\numberheaddistance\!!zeropoint \fi \setbox\scratchbox\hbox \ifx\headnumberwidth\empty\else to \headnumberwidth\fi{{#1}}% \scratchdimen\dimexpr\wd\scratchbox+\numberheaddistance\relax \ifx\headtextwidth\empty\else \hsize\dimexpr\scratchdimen+\headparameter\c!textwidth\relax \fi \hangindent\scratchdimen \hangafter \plusone \noindent \box\scratchbox\hskip\numberheaddistance \else \ifx\headtextwidth\empty \ifx\headwidth\empty \else \hsize\headwidth \fi \else \hsize\headtextwidth \fi \noindent \fi #2}} \def\placeheadmargin#1#2% {\vbox {\localheadsetup \begstrut % use one \strut here! \dontleavehmode % in case there is no strut, else side effects with llap \ifheadnumbercontent \llap{\hbox to 5em{\hfill{#1}\hskip\localheadskip\hskip\leftmargindistance}}% introduces whitespace % maybe better: % \inleftmargin{\hbox{\hss{#1}\hskip\localheadskip}}% \fi {#2}}} \defineheadplacement[\v!inmargin][\v!vertical]#1#2{\placeheadmargin{#1}{#2}} \defineheadplacement[\v!margin] [\v!vertical]#1#2{\placeheadmargin{#1}{#2}} \defineheadplacement[\v!middle][\v!vertical]#1#2% {\vbox {\localheadsetup \veryraggedcenter \let\\\endgraf \let\crlf\endgraf \ifheadnumbercontent\strut#1\par\fi\begstrut#2}} \defineheadplacement[\v!text][\v!horizontal]#1#2% {\bgroup \localheadsetup % no stretch in distance \ifheadnumbercontent{#1}\kern\numberheaddistance\fi{\begstrut#2}% \egroup} \def\placeheadlohi#1#2#3% {\ifheadnumbercontent \setbox0\hbox{#2} \setbox2=#1{\localheadsetup\advance\hsize-\wd0\relax#3}% \hbox{\box0\hskip\numberheaddistance\box2}% \else #1{\localheadsetup\noindent#3}% \fi} % onder/boven lijnt het nummer op de onderste/bovenste regel % uit van een meerregelige kop \defineheadplacement[\v!bottom][\v!vertical]#1#2{\placeheadlohi\vbox{#1}{#2}} \defineheadplacement[\v!top] [\v!vertical]#1#2{\placeheadlohi\vtop{#1}{#2}} % default == instellingen % koppeling == koppen, breaks, marks, enz. % sectie == nummering \let\@@kolist=\empty \def\dododefinehead#1#2% % don't preset prefix to much {\presetlabeltext[#1=]% \getparameters [\??ko#1] [\c!numberstyle=\getvalue{\??ko#1\c!style}, \c!textstyle=\getvalue{\??ko#1\c!style}, \c!numbercolor=\getvalue{\??ko#1\c!color}, \c!textcolor=\getvalue{\??ko#1\c!color}]% % deeptextcommand and deepnumbercommand are left undefined ! \doifassignmentelse{#2} {\getparameters [\??ko#1] [\c!section=\getvalue{\??ko\getvalue{\??ko#1\c!coupling}\c!section}, \c!default=, \c!coupling=, \c!prefix=, \c!before=, \c!after=, \c!distance=\!!zeropoint, \c!page=, \c!header=, \c!text=, \c!footer=, \c!style=, \c!numbercommand=, \c!textcommand=, \c!ownnumber=\v!no, \c!number=\v!yes, \c!color=, \c!continue=\v!yes, \c!placehead=\v!yes, \c!resetnumber=\v!yes, \c!incrementnumber=\v!yes, \c!alternative=\@@koalternative, \c!command=\normalplacehead, \c!separator=\@@koseparator, \c!stopper=\@@kostopper, \c!align=\@@koalign, \c!aligntitle=\@@koaligntitle, \c!tolerance=\@@kotolerance, \c!indentnext=\@@koindentnext, \c!strut=\@@kostrut, \c!hang=\@@kohang, \c!file=, \c!expansion=, \c!grid=, \c!margintext=, \c!margin=\@@komargin, #2]% \ConvertToConstant\doifnot{#1}{\getvalue{\??ko#1\c!default}} {\doifsomething{\getvalue{\??ko#1\c!default}} {\copyparameters [\??ko#1][\??ko\getvalue{\??ko#1\c!default}] [\c!before,\c!after,\c!command,\c!file,\c!page,\c!continue, \c!header,\c!text,\c!footer,\c!separator,\c!stopper,\c!resetnumber, \c!number,\c!ownnumber,\c!placehead,\c!incrementnumber, \c!style,\c!color,\c!distance,\c!alternative,\c!indentnext, % new per 20/03/3002 (o-pbu-l) / was too confusing % \c!numberstyle,\c!textstyle,\c!expansion, % again too confusing \c!align,\c!aligntitle,\c!tolerance,\c!grid,\c!hang,\c!strut, \c!numbercommand,\c!textcommand,\c!margintext,\c!margin]}}% \getparameters[\??ko#1][#2]% \doifsomething{\getvalue{\??ko#1\c!section}} {\doifelsemarking{#1}% \doifundefined{\??mk#1} {}% marking #1 already defined {\definemarking[#1]% \couplemarking[#1][\getvalue{\??ko#1\c!section}]% \definemarking[#1\v!number]% \couplemarking[#1\v!number][\getvalue{\??ko#1\c!section}]}}% \doifundefined{\??li#1}{\definelist[#1]}} {\ConvertToConstant\doifelse{#1}{#2} {\doifundefined{\??li#1}{\definelist[#1]}} {\copyparameters [\??ko#1][\??ko#2] [\c!level,\c!section,\c!coupling,\c!prefix, \c!before,\c!after,\c!command,\c!file,\c!page,\c!continue, \c!separator,\c!stopper, \c!header,\c!text,\c!footer,\c!resetnumber, \c!number,\c!ownnumber,\c!placehead,\c!incrementnumber, \c!style,\c!color,\c!distance,\c!alternative,\c!indentnext, % new per 20/03/3002 (o-pbu-l) / was too confusing % \c!numberstyle,\c!textstyle,\c!expansion, % again too confusing \c!align,\c!aligntitle,\c!tolerance,\c!grid,\c!hang,\c!strut, \c!numbercommand,\c!textcommand,\c!margintext,\c!margin]% \getparameters[\??ko#1][\c!expansion=]% iig een value, rather fuzzy \definemarking[#1][#2]% \definemarking[#1\v!number][#2\v!number]% \doifundefined{\??li#1}{\definelist[#1][#2]}}}% \addtocommalist{#1}\@@kolist \setevalue{\??sk#1}{\getvalue{\??ko#1\c!coupling}}% \setevalue{\??by#1}{\getvalue{\??ko#1\c!section}}% \setevalue{\??by\v!by#1}{\getvalue{\??ko#1\c!section}}% \setvalue{#1}{\dodoubleempty\doconstructhead[#1]}} \def\dodefinehead[#1][#2]% {\doifelsenothing{#2} {% todo: message that it's an invalid definition \setvalue{#1}{\endgraf[#1]\kern.5em}} {\doifassignmentelse{#2} {\dododefinehead{#1}{#2}} {\doifdefined{\??ko#2\c!section} {\dododefinehead{#1}{#2}}}}} \def\definehead {\dodoubleemptywithset\dodefinehead} \def\doconstructhead[#1][#2]% {\dowithpargument{\dodoconstructhead{#1}[#2]}} \def\dosetuphead[#1][#2]% {\getparameters[\??ko#1][#2]% % The next check prevents hard to trace problems. I once % set \c!command to nothing and (quite natural) got the % wrong references etc. The whole bunch should be boxed! \expandafter\defconvertedcommand\expandafter\ascii\csname\??ko#1\c!command\endcsname \doifnothing\ascii{\setvalue{\??ko#1\c!command}{\normalplacehead}}} \def\setuphead {\dodoubleargumentwithset\dosetuphead} \def\dosetupheads[#1]% {\getparameters[\??ko][#1]% \doifelse{\@@kosectionnumber}\v!yes\sectionnumbertrue\sectionnumberfalse} \def\setupheads {\dosingleargument\dosetupheads} \def\systemsuppliedchapter {\getvalue{\v!chapter}} \def\systemsuppliedtitle {\getvalue{\v!title}} % a left over \def\complexbijlage[#1]#2% {\page[\v!right] \setuppagenumbering[\c!state=\v!stop] \systemsuppliedchapter[#1]{#2} \page[\v!right] \setuppagenumbering[\c!state=\v!start] \setuppagenumbering[\c!number=1]} \setvalue{\v!appendix}% {\complexorsimpleempty\bijlage} \setupheads [\c!alternative=\v!normal, \c!sectionnumber=\v!yes, \c!separator=., \c!stopper=, \c!limittext=\v!yes, \c!align=, \c!aligntitle=, \c!tolerance=, \c!strut=, \c!indentnext=\v!no, \c!margin=\zeropoint, \c!hang=\v!none, \c!command=] \definesectionblock [\v!frontpart] [\v!frontmatter] [\c!number=\v!no] \definesectionblock [\v!bodypart] [\v!bodymatter] [\c!number=\v!yes] \definesectionblock [\v!appendix] [\v!appendices] [\c!number=\v!yes] \definesectionblock [\v!backpart] [\v!backmatter] [\c!number=\v!no] \definesection[\s!section-1] % part \definesection[\s!section-2] % chapter \definesection[\s!section-3] % section \definesection[\s!section-4] % subsection \definesection[\s!section-5] % subsubsection \definesection[\s!section-6] % subsubsubsection \definesection[\s!section-7] % subsubsubsubsection % \c!eigennummer ook hier? \definehead [\v!part] [\c!section=\s!section-1, \c!ownnumber=\v!no] \definehead [\v!chapter] [\c!section=\s!section-2, \c!ownnumber=\v!no] \definehead [\v!section] [\c!section=\s!section-3, \c!ownnumber=\v!no] \definehead [\v!subsection] [\c!section=\s!section-4, \c!default=\v!section, \c!ownnumber=\v!no] \definehead [\v!subsubsection] [\c!section=\s!section-5, \c!default=\v!subsection, \c!ownnumber=\v!no] \definehead [\v!subsubsubsection] [\c!section=\s!section-6, \c!default=\v!subsubsection, \c!ownnumber=\v!no] \definehead [\v!subsubsubsubsection] [\c!section=\s!section-7, \c!default=\v!subsubsubsection, \c!ownnumber=\v!no] \definehead [\v!title] [\c!coupling=\v!chapter, \c!default=\v!chapter, \c!incrementnumber=\v!no] \definehead [\v!subject] [\c!coupling=\v!section, \c!default=\v!section, \c!incrementnumber=\v!no] \definehead [\v!subsubject] [\c!coupling=\v!subsection, \c!default=\v!subsection, \c!incrementnumber=\v!no] \definehead [\v!subsubsubject] [\c!coupling=\v!subsubsection, \c!default=\v!subsubsection, \c!incrementnumber=\v!no] \definehead [\v!subsubsubsubject] [\c!coupling=\v!subsubsubsection, \c!default=\v!subsubsubsection, \c!incrementnumber=\v!no] \definehead [\v!subsubsubsubsubject] [\c!coupling=\v!subsubsubsubsection, \c!default=\v!subsubsubsubsection, \c!incrementnumber=\v!no] \setupsection [\s!section-2] [\v!appendix\c!conversion=\v!Character, \c!previousnumber=\v!no] \setuphead [\v!part] [\c!placehead=\v!no] \setuphead [\v!chapter] [\v!appendix\c!label=\v!appendix, \v!bodypart\c!label=\v!chapter] % bijlageconversie=\Character \setuphead [\v!section] [\v!appendix\c!label=\v!section, \v!bodypart\c!label=\v!section] % bijlageconversie=\Character \setuphead [\v!subsection] [\v!appendix\c!label=\v!subsection, \v!bodypart\c!label=\v!subsection] % bijlageconversie=\Character \setuphead [\v!subsubsection] [\v!appendix\c!label=\v!subsubsection, \v!bodypart\c!label=\v!subsubsection] % bijlageconversie=\Character \setuphead [\v!part,\v!chapter] [%\c!align=, %\c!indentnext=\v!no, \c!continue=\v!no, \c!page=\v!right, \c!header=, \c!style=\tfc, \c!distance=.75em, \c!before={\blank[2*\v!big]}, \c!after={\blank[2*\v!big]}] \setuphead [\v!section] [%\c!align=, %\c!indentnext=\v!no, \c!style=\tfa, \c!distance=.75em, \c!before={\blank[2*\v!big]}, \c!after=\blank] \setuphead % nieuw [\v!subsection] [\c!page=] \definecombinedlist [\v!content] [\v!part, \v!chapter, \v!section, \v!subsection, \v!subsubsection, \v!subsubsubsection, \v!subsubsubsubsection] [\c!level=\v!subsubsubsubsection, \c!criterium=\v!local] \setuplist [\v!part] [\c!before={\blank\page[\v!preference]}, \c!after=\blank, \c!label=\v!yes, \c!separator=:, \c!distance=1em] \setuplist [\v!chapter] [\c!before={\blank\page[\v!preference]}, \c!after=] \setuplist [\v!part] [\c!width=0em] \setuplist [\v!chapter] [\c!width=2em] \setuplist [\v!section] [\c!width=3em] \setuplist [\v!subsection] [\c!width=4em] \setuplist [\v!subsubsection] [\c!width=5em] \setuplist [\v!subsubsubsection] [\c!width=6em] \setuplist [\v!subsubsubsubsection] [\c!width=7em] % hm \setuppagenumbering % na instellen hoofdteksten ! [\c!alternative=\v!singlesided, \c!location={\v!header,\v!middle}, \c!conversion=\v!numbers, \c!width=, % in geval van \v!marginedge \c!left=, \c!right=, \c!way=\v!by\v!part, \c!text=, \v!chapter\v!number=\v!no, % v \v!part\v!number=\v!yes, % v \c!numberseparator=--, \c!textseparator=\tfskip, \c!state=\v!start, \c!command=, \c!strut=\v!yes, % nieuw \c!style=, % \v!normal, % empty, otherwise conflict \c!color=] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-en.mkii0000644000175000017500000032042714567411714024560 0ustar hillehille% this file is auto-generated, don't edit this file % % definitions for interface variables for language en % \setinterfacevariable{Addition}{Addition} \setinterfacevariable{Alphabetic}{Alphabetic} \setinterfacevariable{Balloon}{Balloon} \setinterfacevariable{Camel}{Camel} \setinterfacevariable{Cap}{Cap} \setinterfacevariable{Capital}{Capital} \setinterfacevariable{Character}{Character} \setinterfacevariable{Characters}{Characters} \setinterfacevariable{CloseDocument}{CloseDocument} \setinterfacevariable{ExitViewer}{ExitViewer} \setinterfacevariable{FirstPage}{FirstPage} \setinterfacevariable{FitHeight}{FitHeight} \setinterfacevariable{FitWidth}{FitWidth} \setinterfacevariable{GotoPage}{GotoPage} \setinterfacevariable{Greek}{Greek} \setinterfacevariable{Help}{Help} \setinterfacevariable{HideField}{HideField} \setinterfacevariable{HideLayer}{HideLayer} \setinterfacevariable{Key}{Key} \setinterfacevariable{LastPage}{LastPage} \setinterfacevariable{LoadForm}{LoadForm} \setinterfacevariable{MONTH}{MONTH} \setinterfacevariable{New}{New} \setinterfacevariable{NextJump}{NextJump} \setinterfacevariable{NextPage}{NextPage} \setinterfacevariable{Numbers}{Numbers} \setinterfacevariable{OpenNamedDocument}{OpenNamedDocument} \setinterfacevariable{Ordinal}{Ordinal} \setinterfacevariable{Paragraph}{Paragraph} \setinterfacevariable{PauseMovie}{PauseMovie} \setinterfacevariable{PauseRendering}{PauseRendering} \setinterfacevariable{PauseSound}{PauseSound} \setinterfacevariable{PreviousJump}{PreviousJump} \setinterfacevariable{PreviousPage}{PreviousPage} \setinterfacevariable{PrintDocument}{PrintDocument} \setinterfacevariable{Query}{Query} \setinterfacevariable{QueryAgain}{QueryAgain} \setinterfacevariable{ResetForm}{ResetForm} \setinterfacevariable{ResumeMovie}{ResumeMovie} \setinterfacevariable{ResumeRendering}{ResumeRendering} \setinterfacevariable{ResumeSound}{ResumeSound} \setinterfacevariable{Romannumerals}{Romannumerals} \setinterfacevariable{SaveDocument}{SaveDocument} \setinterfacevariable{SaveForm}{SaveForm} \setinterfacevariable{SaveNamedDocument}{SaveNamedDocument} \setinterfacevariable{SearchAgain}{SearchAgain} \setinterfacevariable{SearchDocument}{SearchDocument} \setinterfacevariable{ShowBookmarks}{ShowBookmarks} \setinterfacevariable{ShowField}{ShowField} \setinterfacevariable{ShowThumbs}{ShowThumbs} \setinterfacevariable{StartMovie}{StartMovie} \setinterfacevariable{StartRendering}{StartRendering} \setinterfacevariable{StartSound}{StartSound} \setinterfacevariable{StopMovie}{StopMovie} \setinterfacevariable{StopRendering}{StopRendering} \setinterfacevariable{StopSound}{StopSound} \setinterfacevariable{SubmitForm}{SubmitForm} \setinterfacevariable{ToggleLayer}{ToggleLayer} \setinterfacevariable{ToggleViewer}{ToggleViewer} \setinterfacevariable{URL}{URL} \setinterfacevariable{VideLayer}{VideLayer} \setinterfacevariable{ViewerHelp}{ViewerHelp} \setinterfacevariable{WEEKDAY}{WEEKDAY} \setinterfacevariable{WORD}{WORD} \setinterfacevariable{WORDS}{WORDS} \setinterfacevariable{Word}{Word} \setinterfacevariable{Words}{Words} \setinterfacevariable{abbreviation}{abbreviation} \setinterfacevariable{abbreviations}{abbreviations} \setinterfacevariable{absolute}{absolute} \setinterfacevariable{action}{action} \setinterfacevariable{after}{after} \setinterfacevariable{all}{all} \setinterfacevariable{alphabetic}{alphabetic} \setinterfacevariable{always}{always} \setinterfacevariable{anchor}{anchor} \setinterfacevariable{and}{and} \setinterfacevariable{answerarea}{answerarea} \setinterfacevariable{append}{append} \setinterfacevariable{appendices}{appendices} \setinterfacevariable{appendix}{appendix} \setinterfacevariable{april}{april} \setinterfacevariable{aside}{aside} \setinterfacevariable{atleftmargin}{atleftmargin} \setinterfacevariable{atmargin}{atmargin} \setinterfacevariable{atpage}{atpage} \setinterfacevariable{atrightmargin}{atrightmargin} \setinterfacevariable{attachment}{attachment} \setinterfacevariable{august}{august} \setinterfacevariable{author}{author} \setinterfacevariable{auto}{auto} \setinterfacevariable{autointro}{autointro} \setinterfacevariable{back}{back} \setinterfacevariable{background}{background} \setinterfacevariable{backmatter}{backmatter} \setinterfacevariable{backpart}{backpart} \setinterfacevariable{backspace}{backspace} \setinterfacevariable{backward}{backward} \setinterfacevariable{bbl}{bbl} \setinterfacevariable{before}{before} \setinterfacevariable{begin}{begin} \setinterfacevariable{bib}{bib} \setinterfacevariable{big}{big} \setinterfacevariable{bigbodyfont}{bigbodyfont} \setinterfacevariable{bigger}{bigger} \setinterfacevariable{bigpreference}{bigpreference} \setinterfacevariable{blank}{blank} \setinterfacevariable{block}{block} \setinterfacevariable{blockquote}{blockquote} \setinterfacevariable{bodymatter}{bodymatter} \setinterfacevariable{bodypart}{bodypart} \setinterfacevariable{bold}{bold} \setinterfacevariable{bolditalic}{bolditalic} \setinterfacevariable{boldslanted}{boldslanted} \setinterfacevariable{bookmark}{bookmark} \setinterfacevariable{both}{both} \setinterfacevariable{bothtext}{bothtext} \setinterfacevariable{bottom}{bottom} \setinterfacevariable{box}{box} \setinterfacevariable{brief}{brief} \setinterfacevariable{broad}{broad} \setinterfacevariable{buffer}{buffer} \setinterfacevariable{by}{by} \setinterfacevariable{calligraphic}{calligraphic} \setinterfacevariable{camel}{camel} \setinterfacevariable{cap}{cap} \setinterfacevariable{capital}{capital} \setinterfacevariable{category}{category} \setinterfacevariable{cd:character}{cd:character} \setinterfacevariable{cd:font}{cd:font} \setinterfacevariable{center}{center} \setinterfacevariable{centerlast}{centerlast} \setinterfacevariable{chapter}{chapter} \setinterfacevariable{character}{character} \setinterfacevariable{characters}{characters} \setinterfacevariable{chemical}{chemical} \setinterfacevariable{chemicals}{chemicals} \setinterfacevariable{chemistry}{chemistry} \setinterfacevariable{cite}{cite} \setinterfacevariable{closed}{closed} \setinterfacevariable{collapsed}{collapsed} \setinterfacevariable{color}{color} \setinterfacevariable{column}{column} \setinterfacevariable{columns}{columns} \setinterfacevariable{combination}{combination} \setinterfacevariable{command}{command} \setinterfacevariable{commands}{commands} \setinterfacevariable{comment}{comment} \setinterfacevariable{component}{component} \setinterfacevariable{compress}{compress} \setinterfacevariable{compressseparator}{compressseparator} \setinterfacevariable{compressstopper}{compressstopper} \setinterfacevariable{concept}{concept} \setinterfacevariable{construction}{construction} \setinterfacevariable{content}{content} \setinterfacevariable{contents}{contents} \setinterfacevariable{continue}{continue} \setinterfacevariable{continued}{continued} \setinterfacevariable{controls}{controls} \setinterfacevariable{conversion}{conversion} \setinterfacevariable{current}{current} \setinterfacevariable{cutspace}{cutspace} \setinterfacevariable{dash}{dash} \setinterfacevariable{dataset}{dataset} \setinterfacevariable{date}{date} \setinterfacevariable{day}{day} \setinterfacevariable{december}{december} \setinterfacevariable{default}{default} \setinterfacevariable{depth}{depth} \setinterfacevariable{description}{description} \setinterfacevariable{disable}{disable} \setinterfacevariable{display}{display} \setinterfacevariable{document}{document} \setinterfacevariable{dot}{dot} \setinterfacevariable{doublesided}{doublesided} \setinterfacevariable{down}{down} \setinterfacevariable{each}{each} \setinterfacevariable{edge}{edge} \setinterfacevariable{effective}{effective} \setinterfacevariable{eight}{eight} \setinterfacevariable{embed}{embed} \setinterfacevariable{empty}{empty} \setinterfacevariable{enable}{enable} \setinterfacevariable{end}{end} \setinterfacevariable{endnote}{endnote} \setinterfacevariable{enumeration}{enumeration} \setinterfacevariable{environment}{environment} \setinterfacevariable{even}{even} \setinterfacevariable{explicit}{explicit} \setinterfacevariable{export}{export} \setinterfacevariable{external}{external} \setinterfacevariable{extremestretch}{extremestretch} \setinterfacevariable{fact}{fact} \setinterfacevariable{fallback}{fallback} \setinterfacevariable{february}{february} \setinterfacevariable{field}{field} \setinterfacevariable{figure}{figure} \setinterfacevariable{figures}{figures} \setinterfacevariable{file}{file} \setinterfacevariable{final}{final} \setinterfacevariable{first}{first} \setinterfacevariable{firstcolumn}{firstcolumn} \setinterfacevariable{firstpage}{firstpage} \setinterfacevariable{firstsubpage}{firstsubpage} \setinterfacevariable{fit}{fit} \setinterfacevariable{five}{five} \setinterfacevariable{fix}{fix} \setinterfacevariable{fixed}{fixed} \setinterfacevariable{flexible}{flexible} \setinterfacevariable{float}{float} \setinterfacevariable{flushbackward}{flushbackward} \setinterfacevariable{flushforward}{flushforward} \setinterfacevariable{flushinner}{flushinner} \setinterfacevariable{flushleft}{flushleft} \setinterfacevariable{flushouter}{flushouter} \setinterfacevariable{flushright}{flushright} \setinterfacevariable{followingpage}{followingpage} \setinterfacevariable{font}{font} \setinterfacevariable{footer}{footer} \setinterfacevariable{footnote}{footnote} \setinterfacevariable{force}{force} \setinterfacevariable{foreground}{foreground} \setinterfacevariable{formula}{formula} \setinterfacevariable{formulas}{formulas} \setinterfacevariable{forward}{forward} \setinterfacevariable{four}{four} \setinterfacevariable{fractions}{fractions} \setinterfacevariable{frame}{frame} \setinterfacevariable{framedtext}{framedtext} \setinterfacevariable{friday}{friday} \setinterfacevariable{frontmatter}{frontmatter} \setinterfacevariable{frontpart}{frontpart} \setinterfacevariable{fullhz}{fullhz} \setinterfacevariable{global}{global} \setinterfacevariable{granular}{granular} \setinterfacevariable{graphic}{graphic} \setinterfacevariable{graphics}{graphics} \setinterfacevariable{gray}{gray} \setinterfacevariable{greek}{greek} \setinterfacevariable{grid}{grid} \setinterfacevariable{halfline}{halfline} \setinterfacevariable{handwritten}{handwritten} \setinterfacevariable{hang}{hang} \setinterfacevariable{hanging}{hanging} \setinterfacevariable{hangingboth}{hangingboth} \setinterfacevariable{hangleft}{hangleft} \setinterfacevariable{hangright}{hangright} \setinterfacevariable{head}{head} \setinterfacevariable{header}{header} \setinterfacevariable{headintext}{headintext} \setinterfacevariable{height}{height} \setinterfacevariable{helptext}{helptext} \setinterfacevariable{hencefore}{hencefore} \setinterfacevariable{here}{here} \setinterfacevariable{hereafter}{hereafter} \setinterfacevariable{hidden}{hidden} \setinterfacevariable{hiddenbar}{hiddenbar} \setinterfacevariable{hiding}{hiding} \setinterfacevariable{high}{high} \setinterfacevariable{horizontal}{horizontal} \setinterfacevariable{hyphenated}{hyphenated} \setinterfacevariable{hz}{hz} \setinterfacevariable{inbetween}{inbetween} \setinterfacevariable{index}{index} \setinterfacevariable{indices}{indices} \setinterfacevariable{inherit}{inherit} \setinterfacevariable{ininner}{ininner} \setinterfacevariable{ininneredge}{ininneredge} \setinterfacevariable{ininnermargin}{ininnermargin} \setinterfacevariable{inleft}{inleft} \setinterfacevariable{inleftedge}{inleftedge} \setinterfacevariable{inleftmargin}{inleftmargin} \setinterfacevariable{inline}{inline} \setinterfacevariable{inmargin}{inmargin} \setinterfacevariable{inner}{inner} \setinterfacevariable{inneredge}{inneredge} \setinterfacevariable{innermargin}{innermargin} \setinterfacevariable{inother}{inother} \setinterfacevariable{inouter}{inouter} \setinterfacevariable{inouteredge}{inouteredge} \setinterfacevariable{inoutermargin}{inoutermargin} \setinterfacevariable{inright}{inright} \setinterfacevariable{inrightedge}{inrightedge} \setinterfacevariable{inrightmargin}{inrightmargin} \setinterfacevariable{interaction}{interaction} \setinterfacevariable{interactionmenu}{interactionmenu} \setinterfacevariable{interactive}{interactive} \setinterfacevariable{intermezzi}{intermezzi} \setinterfacevariable{intermezzo}{intermezzo} \setinterfacevariable{intext}{intext} \setinterfacevariable{intro}{intro} \setinterfacevariable{invertedshort}{invertedshort} \setinterfacevariable{italic}{italic} \setinterfacevariable{italicbold}{italicbold} \setinterfacevariable{item}{item} \setinterfacevariable{itemize}{itemize} \setinterfacevariable{its}{its} \setinterfacevariable{january}{january} \setinterfacevariable{joinedup}{joinedup} \setinterfacevariable{july}{july} \setinterfacevariable{june}{june} \setinterfacevariable{keep}{keep} \setinterfacevariable{keeptogether}{keeptogether} \setinterfacevariable{kerncharacters}{kerncharacters} \setinterfacevariable{knockout}{knockout} \setinterfacevariable{label}{label} \setinterfacevariable{landscape}{landscape} \setinterfacevariable{last}{last} \setinterfacevariable{lastcolumn}{lastcolumn} \setinterfacevariable{lastpage}{lastpage} \setinterfacevariable{lastpagenumber}{lastpagenumber} \setinterfacevariable{lastsubpage}{lastsubpage} \setinterfacevariable{layer}{layer} \setinterfacevariable{left}{left} \setinterfacevariable{leftedge}{leftedge} \setinterfacevariable{lefthanging}{lefthanging} \setinterfacevariable{leftmargin}{leftmargin} \setinterfacevariable{leftpage}{leftpage} \setinterfacevariable{lefttext}{lefttext} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legend} \setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{letterspacing}{letterspacing} \setinterfacevariable{limit}{limit} \setinterfacevariable{line}{line} \setinterfacevariable{linenote}{linenote} \setinterfacevariable{lines}{lines} \setinterfacevariable{linked}{linked} \setinterfacevariable{list}{list} \setinterfacevariable{local}{local} \setinterfacevariable{localenvironment}{localenvironment} \setinterfacevariable{logo}{logo} \setinterfacevariable{logos}{logos} \setinterfacevariable{lohi}{lohi} \setinterfacevariable{long}{long} \setinterfacevariable{loose}{loose} \setinterfacevariable{low}{low} \setinterfacevariable{ls}{ls} \setinterfacevariable{makeup}{makeup} \setinterfacevariable{mar}{mar} \setinterfacevariable{march}{march} \setinterfacevariable{margin}{margin} \setinterfacevariable{marginedge}{marginedge} \setinterfacevariable{margintext}{margintext} \setinterfacevariable{margintitle}{margintitle} \setinterfacevariable{marking}{marking} \setinterfacevariable{math}{math} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathematics}{mathematics} \setinterfacevariable{mathmatrix}{mathmatrix} \setinterfacevariable{mathnote}{mathnote} \setinterfacevariable{max}{max} \setinterfacevariable{maxdepth}{maxdepth} \setinterfacevariable{maxheight}{maxheight} \setinterfacevariable{maxwidth}{maxwidth} \setinterfacevariable{may}{may} \setinterfacevariable{mediaeval}{mediaeval} \setinterfacevariable{medium}{medium} \setinterfacevariable{middle}{middle} \setinterfacevariable{min}{min} \setinterfacevariable{mindepth}{mindepth} \setinterfacevariable{minheight}{minheight} \setinterfacevariable{minwidth}{minwidth} \setinterfacevariable{mirrored}{mirrored} \setinterfacevariable{mixed}{mixed} \setinterfacevariable{monday}{monday} \setinterfacevariable{mono}{mono} \setinterfacevariable{monobold}{monobold} \setinterfacevariable{mononormal}{mononormal} \setinterfacevariable{month}{month} \setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{name} \setinterfacevariable{narrow}{narrow} \setinterfacevariable{negative}{negative} \setinterfacevariable{never}{never} \setinterfacevariable{new}{new} \setinterfacevariable{next}{next} \setinterfacevariable{nextevenpage}{nextevenpage} \setinterfacevariable{nextoddpage}{nextoddpage} \setinterfacevariable{nextpage}{nextpage} \setinterfacevariable{nextsubpage}{nextsubpage} \setinterfacevariable{nine}{nine} \setinterfacevariable{no}{no} \setinterfacevariable{nocheck}{nocheck} \setinterfacevariable{nodepth}{nodepth} \setinterfacevariable{nofit}{nofit} \setinterfacevariable{nogrid}{nogrid} \setinterfacevariable{noheight}{noheight} \setinterfacevariable{nohz}{nohz} \setinterfacevariable{noline}{noline} \setinterfacevariable{nomarking}{nomarking} \setinterfacevariable{nomenubar}{nomenubar} \setinterfacevariable{none}{none} \setinterfacevariable{nonumber}{nonumber} \setinterfacevariable{norepeat}{norepeat} \setinterfacevariable{normal}{normal} \setinterfacevariable{normalshort}{normalshort} \setinterfacevariable{nospacing}{nospacing} \setinterfacevariable{nostopper}{nostopper} \setinterfacevariable{not}{not} \setinterfacevariable{notation}{notation} \setinterfacevariable{notcollapsed}{notcollapsed} \setinterfacevariable{note}{note} \setinterfacevariable{nothanging}{nothanging} \setinterfacevariable{nothyphenated}{nothyphenated} \setinterfacevariable{notjoinedup}{notjoinedup} \setinterfacevariable{november}{november} \setinterfacevariable{nowhere}{nowhere} \setinterfacevariable{nowhite}{nowhite} \setinterfacevariable{number}{number} \setinterfacevariable{numbers}{numbers} \setinterfacevariable{october}{october} \setinterfacevariable{odd}{odd} \setinterfacevariable{off}{off} \setinterfacevariable{offset}{offset} \setinterfacevariable{old}{old} \setinterfacevariable{oldstyle}{oldstyle} \setinterfacevariable{on}{on} \setinterfacevariable{one}{one} \setinterfacevariable{opposite}{opposite} \setinterfacevariable{ordinal}{ordinal} \setinterfacevariable{outer}{outer} \setinterfacevariable{outeredge}{outeredge} \setinterfacevariable{outermargin}{outermargin} \setinterfacevariable{outline}{outline} \setinterfacevariable{outlined}{outlined} \setinterfacevariable{overbar}{overbar} \setinterfacevariable{overbars}{overbars} \setinterfacevariable{overlay}{overlay} \setinterfacevariable{overprint}{overprint} \setinterfacevariable{overstrike}{overstrike} \setinterfacevariable{overstrikes}{overstrikes} \setinterfacevariable{packed}{packed} \setinterfacevariable{page}{page} \setinterfacevariable{pagecomment}{pagecomment} \setinterfacevariable{pagenumber}{pagenumber} \setinterfacevariable{paper}{paper} \setinterfacevariable{paragraph}{paragraph} \setinterfacevariable{part}{part} \setinterfacevariable{positive}{positive} \setinterfacevariable{postponing}{postponing} \setinterfacevariable{postscript}{postscript} \setinterfacevariable{precedingpage}{precedingpage} \setinterfacevariable{preference}{preference} \setinterfacevariable{prepend}{prepend} \setinterfacevariable{preview}{preview} \setinterfacevariable{previous}{previous} \setinterfacevariable{previousevenpage}{previousevenpage} \setinterfacevariable{previousoddpage}{previousoddpage} \setinterfacevariable{previouspage}{previouspage} \setinterfacevariable{previoussubpage}{previoussubpage} \setinterfacevariable{print}{print} \setinterfacevariable{printable}{printable} \setinterfacevariable{process}{process} \setinterfacevariable{product}{product} \setinterfacevariable{profile}{profile} \setinterfacevariable{program}{program} \setinterfacevariable{project}{project} \setinterfacevariable{protected}{protected} \setinterfacevariable{quadruple}{quadruple} \setinterfacevariable{quarterline}{quarterline} \setinterfacevariable{quotation}{quotation} \setinterfacevariable{quote}{quote} \setinterfacevariable{ran}{ran} \setinterfacevariable{random}{random} \setinterfacevariable{readonly}{readonly} \setinterfacevariable{rectangular}{rectangular} \setinterfacevariable{reference}{reference} \setinterfacevariable{referral}{referral} \setinterfacevariable{region}{region} \setinterfacevariable{register}{register} \setinterfacevariable{regular}{regular} \setinterfacevariable{relative}{relative} \setinterfacevariable{repeat}{repeat} \setinterfacevariable{required}{required} \setinterfacevariable{reset}{reset} \setinterfacevariable{reverse}{reverse} \setinterfacevariable{right}{right} \setinterfacevariable{rightedge}{rightedge} \setinterfacevariable{righthanging}{righthanging} \setinterfacevariable{rightmargin}{rightmargin} \setinterfacevariable{rightpage}{rightpage} \setinterfacevariable{righttext}{righttext} \setinterfacevariable{righttoleft}{righttoleft} \setinterfacevariable{roman}{roman} \setinterfacevariable{romannumerals}{romannumerals} \setinterfacevariable{rotate}{rotate} \setinterfacevariable{rotated}{rotated} \setinterfacevariable{round}{round} \setinterfacevariable{row}{row} \setinterfacevariable{rule}{rule} \setinterfacevariable{samepage}{samepage} \setinterfacevariable{sans}{sans} \setinterfacevariable{sansbold}{sansbold} \setinterfacevariable{sansnormal}{sansnormal} \setinterfacevariable{sansserif}{sansserif} \setinterfacevariable{saturday}{saturday} \setinterfacevariable{screen}{screen} \setinterfacevariable{section}{section} \setinterfacevariable{sectionblockenvironment}{sectionblockenvironment} \setinterfacevariable{sectionnumber}{sectionnumber} \setinterfacevariable{see}{see} \setinterfacevariable{selectfont}{selectfont} \setinterfacevariable{separator}{separator} \setinterfacevariable{september}{september} \setinterfacevariable{serif}{serif} \setinterfacevariable{serifbold}{serifbold} \setinterfacevariable{serifnormal}{serifnormal} \setinterfacevariable{serried}{serried} \setinterfacevariable{setups}{setups} \setinterfacevariable{seven}{seven} \setinterfacevariable{sheet}{sheet} \setinterfacevariable{shiftdown}{shiftdown} \setinterfacevariable{shiftup}{shiftup} \setinterfacevariable{short}{short} \setinterfacevariable{simplefonts}{simplefonts} \setinterfacevariable{simplelist}{simplelist} \setinterfacevariable{singlesided}{singlesided} \setinterfacevariable{six}{six} \setinterfacevariable{size}{size} \setinterfacevariable{slanted}{slanted} \setinterfacevariable{slantedbold}{slantedbold} \setinterfacevariable{small}{small} \setinterfacevariable{smallbodyfont}{smallbodyfont} \setinterfacevariable{smallbold}{smallbold} \setinterfacevariable{smallbolditalic}{smallbolditalic} \setinterfacevariable{smallboldslanted}{smallboldslanted} \setinterfacevariable{smallcaps}{smallcaps} \setinterfacevariable{smaller}{smaller} \setinterfacevariable{smallitalic}{smallitalic} \setinterfacevariable{smallitalicbold}{smallitalicbold} \setinterfacevariable{smallnormal}{smallnormal} \setinterfacevariable{smallslanted}{smallslanted} \setinterfacevariable{smallslantedbold}{smallslantedbold} \setinterfacevariable{smalltype}{smalltype} \setinterfacevariable{somewhere}{somewhere} \setinterfacevariable{sorted}{sorted} \setinterfacevariable{sorting}{sorting} \setinterfacevariable{space}{space} \setinterfacevariable{spacing}{spacing} \setinterfacevariable{speech}{speech} \setinterfacevariable{split}{split} \setinterfacevariable{spot}{spot} \setinterfacevariable{spread}{spread} \setinterfacevariable{standard}{standard} \setinterfacevariable{start}{start} \setinterfacevariable{starter}{starter} \setinterfacevariable{sticker}{sticker} \setinterfacevariable{stop}{stop} \setinterfacevariable{stopper}{stopper} \setinterfacevariable{stretch}{stretch} \setinterfacevariable{stretched}{stretched} \setinterfacevariable{strict}{strict} \setinterfacevariable{strong}{strong} \setinterfacevariable{strut}{strut} \setinterfacevariable{sub}{sub} \setinterfacevariable{subbackward}{subbackward} \setinterfacevariable{subformula}{subformula} \setinterfacevariable{subforward}{subforward} \setinterfacevariable{subject}{subject} \setinterfacevariable{subpage}{subpage} \setinterfacevariable{subs}{subs} \setinterfacevariable{subsection}{subsection} \setinterfacevariable{subsubject}{subsubject} \setinterfacevariable{subsubsection}{subsubsection} \setinterfacevariable{subsubsubject}{subsubsubject} \setinterfacevariable{subsubsubsection}{subsubsubsection} \setinterfacevariable{subsubsubsubject}{subsubsubsubject} \setinterfacevariable{subsubsubsubsection}{subsubsubsubsection} \setinterfacevariable{subsubsubsubsubject}{subsubsubsubsubject} \setinterfacevariable{subsubsubsubsubsection}{subsubsubsubsubsection} \setinterfacevariable{subsubsubsubsubsubject}{subsubsubsubsubsubject} \setinterfacevariable{subsubsubsubsubsubsection}{subsubsubsubsubsubsection} \setinterfacevariable{subsubsubsubsubsubsubject}{subsubsubsubsubsubsubject} \setinterfacevariable{subsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsection} \setinterfacevariable{subsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubject} \setinterfacevariable{subsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsection} \setinterfacevariable{subsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubject} \setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsubsection} \setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubsubject} \setinterfacevariable{sunday}{sunday} \setinterfacevariable{support}{support} \setinterfacevariable{sym}{sym} \setinterfacevariable{symbol}{symbol} \setinterfacevariable{synchronize}{synchronize} \setinterfacevariable{synonym}{synonym} \setinterfacevariable{system}{system} \setinterfacevariable{table}{table} \setinterfacevariable{tablehead}{tablehead} \setinterfacevariable{tables}{tables} \setinterfacevariable{tabletail}{tabletail} \setinterfacevariable{tabulate}{tabulate} \setinterfacevariable{tabulatehead}{tabulatehead} \setinterfacevariable{tabulatetail}{tabulatetail} \setinterfacevariable{tall}{tall} \setinterfacevariable{teletype}{teletype} \setinterfacevariable{temporary}{temporary} \setinterfacevariable{test}{test} \setinterfacevariable{text}{text} \setinterfacevariable{textdisplay}{textdisplay} \setinterfacevariable{textnote}{textnote} \setinterfacevariable{three}{three} \setinterfacevariable{thursday}{thursday} \setinterfacevariable{tight}{tight} \setinterfacevariable{title}{title} \setinterfacevariable{toggle}{wissel} \setinterfacevariable{tolerant}{tolerant} \setinterfacevariable{top}{top} \setinterfacevariable{tuesday}{tuesday} \setinterfacevariable{two}{two} \setinterfacevariable{txt}{txt} \setinterfacevariable{type}{type} \setinterfacevariable{typing}{typing} \setinterfacevariable{unavailable}{unavailable} \setinterfacevariable{underbar}{underbar} \setinterfacevariable{underbars}{underbars} \setinterfacevariable{understrike}{understrike} \setinterfacevariable{understrikes}{understrikes} \setinterfacevariable{unframed}{unframed} \setinterfacevariable{unicode}{unicode} \setinterfacevariable{unit}{unit} \setinterfacevariable{units}{units} \setinterfacevariable{unknown}{unknown} \setinterfacevariable{unpacked}{unpacked} \setinterfacevariable{up}{up} \setinterfacevariable{url}{url} \setinterfacevariable{used}{used} \setinterfacevariable{value}{value} \setinterfacevariable{vertical}{vertical} \setinterfacevariable{very}{very} \setinterfacevariable{verystrict}{verystrict} \setinterfacevariable{verytight}{verytight} \setinterfacevariable{verytolerant}{verytolerant} \setinterfacevariable{vfenced}{vfenced} \setinterfacevariable{vulgarfraction}{vulgarfraction} \setinterfacevariable{vz}{vz} \setinterfacevariable{weak}{weak} \setinterfacevariable{wednesday}{wednesday} \setinterfacevariable{week}{week} \setinterfacevariable{weekday}{weekday} \setinterfacevariable{white}{white} \setinterfacevariable{wide}{wide} \setinterfacevariable{width}{width} \setinterfacevariable{word}{word} \setinterfacevariable{words}{words} \setinterfacevariable{xml}{xml} \setinterfacevariable{year}{year} \setinterfacevariable{yes}{yes} % definitions for interface constants for language en % \setinterfaceconstant{action}{action} \setinterfaceconstant{adaptive}{adaptive} \setinterfaceconstant{address}{address} \setinterfaceconstant{after}{after} \setinterfaceconstant{afterhead}{afterhead} \setinterfaceconstant{afterkey}{afterkey} \setinterfaceconstant{aftersection}{aftersection} \setinterfaceconstant{align}{align} \setinterfaceconstant{alignbottom}{alignbottom} \setinterfaceconstant{aligncharacter}{aligncharacter} \setinterfaceconstant{alignmentcharacter}{alignmentcharacter} \setinterfaceconstant{alignmentleftsample}{alignmentleftsample} \setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth} \setinterfaceconstant{alignmentrightsample}{alignmentrightsample} \setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth} \setinterfaceconstant{alignscripts}{alignscripts} \setinterfaceconstant{alignsymbol}{alignsymbol} \setinterfaceconstant{aligntitle}{aligntitle} \setinterfaceconstant{alternative}{alternative} \setinterfaceconstant{anchor}{anchor} \setinterfaceconstant{anchoring}{anchoring} \setinterfaceconstant{andtext}{andtext} \setinterfaceconstant{apa}{apa} \setinterfaceconstant{arguments}{arguments} \setinterfaceconstant{arrow}{arrow} \setinterfaceconstant{artauthor}{artauthor} \setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay} \setinterfaceconstant{artauthoretallimit}{artauthoretallimit} \setinterfaceconstant{artauthoretaltext}{artauthoretaltext} \setinterfaceconstant{artoffset}{artoffset} \setinterfaceconstant{at}{at} \setinterfaceconstant{author}{author} \setinterfaceconstant{authorconversion}{authorconversion} \setinterfaceconstant{authoretaldisplay}{authoretaldisplay} \setinterfaceconstant{authoretallimit}{authoretallimit} \setinterfaceconstant{authoretaltext}{authoretaltext} \setinterfaceconstant{auto}{auto} \setinterfaceconstant{autocase}{autocase} \setinterfaceconstant{autofencing}{autofencing} \setinterfaceconstant{autofile}{autofile} \setinterfaceconstant{autofocus}{autofocus} \setinterfaceconstant{autohang}{autohang} \setinterfaceconstant{autointervals}{autointervals} \setinterfaceconstant{autonumbers}{autonumbers} \setinterfaceconstant{autopunctuation}{autopunctuation} \setinterfaceconstant{autospacing}{autospacing} \setinterfaceconstant{autostrut}{autostrut} \setinterfaceconstant{autowidth}{autowidth} \setinterfaceconstant{availableheight}{availableheight} \setinterfaceconstant{availablewidth}{availablewidth} \setinterfaceconstant{axis}{axis} \setinterfaceconstant{background}{background} \setinterfaceconstant{backgroundcolor}{backgroundcolor} \setinterfaceconstant{backgroundcorner}{backgroundcorner} \setinterfaceconstant{backgrounddepth}{backgrounddepth} \setinterfaceconstant{backgroundoffset}{backgroundoffset} \setinterfaceconstant{backgroundradius}{backgroundradius} \setinterfaceconstant{backgroundscreen}{backgroundscreen} \setinterfaceconstant{backreference}{backreference} \setinterfaceconstant{backspace}{backspace} \setinterfaceconstant{balance}{balance} \setinterfaceconstant{before}{before} \setinterfaceconstant{beforehead}{beforehead} \setinterfaceconstant{beforesection}{beforesection} \setinterfaceconstant{bet}{bet} \setinterfaceconstant{bidi}{bidi} \setinterfaceconstant{big}{big} \setinterfaceconstant{blank}{blank} \setinterfaceconstant{bleedoffset}{bleedoffset} \setinterfaceconstant{blockway}{blockway} \setinterfaceconstant{bodyfont}{bodyfont} \setinterfaceconstant{boffset}{boffset} \setinterfaceconstant{boldfeatures}{boldfeatures} \setinterfaceconstant{boldfont}{boldfont} \setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures} \setinterfaceconstant{bolditalicfont}{bolditalicfont} \setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures} \setinterfaceconstant{boldslantedfont}{boldslantedfont} \setinterfaceconstant{bookmark}{bookmark} \setinterfaceconstant{bottom}{bottom} \setinterfaceconstant{bottomafter}{bottomafter} \setinterfaceconstant{bottomalign}{bottomalign} \setinterfaceconstant{bottombefore}{bottombefore} \setinterfaceconstant{bottomcolor}{bottomcolor} \setinterfaceconstant{bottomcommand}{bottomcommand} \setinterfaceconstant{bottomdistance}{bottomdistance} \setinterfaceconstant{bottomframe}{bottomframe} \setinterfaceconstant{bottomoffset}{bottomoffset} \setinterfaceconstant{bottomspace}{bottomspace} \setinterfaceconstant{bottomstate}{bottomstate} \setinterfaceconstant{bottomstyle}{bottomstyle} \setinterfaceconstant{break}{break} \setinterfaceconstant{buffer}{buffer} \setinterfaceconstant{cache}{cache} \setinterfaceconstant{calculate}{calculate} \setinterfaceconstant{category}{category} \setinterfaceconstant{ccommand}{ccommand} \setinterfaceconstant{character}{character} \setinterfaceconstant{characters}{characters} \setinterfaceconstant{check}{check} \setinterfaceconstant{click}{click} \setinterfaceconstant{clickin}{clickin} \setinterfaceconstant{clickout}{clickout} \setinterfaceconstant{clipoffset}{clipoffset} \setinterfaceconstant{closeaction}{closeaction} \setinterfaceconstant{closecommand}{closecommand} \setinterfaceconstant{closepage}{closepage} \setinterfaceconstant{closepageaction}{closepageaction} \setinterfaceconstant{closesymbol}{closesymbol} \setinterfaceconstant{color}{color} \setinterfaceconstant{column}{column} \setinterfaceconstant{columndistance}{columndistance} \setinterfaceconstant{columns}{columns} \setinterfaceconstant{comma}{comma} \setinterfaceconstant{command}{command} \setinterfaceconstant{commandafter}{commandafter} \setinterfaceconstant{commandbefore}{commandbefore} \setinterfaceconstant{commands}{commands} \setinterfaceconstant{comment}{comment} \setinterfaceconstant{commentchar}{commentchar} \setinterfaceconstant{commentoffset}{commentoffset} \setinterfaceconstant{compact}{compact} \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} \setinterfaceconstant{compressdistance}{compressdistance} \setinterfaceconstant{compressmethod}{compressmethod} \setinterfaceconstant{compressseparator}{compressseparator} \setinterfaceconstant{compressstopper}{compressstopper} \setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{continue} \setinterfaceconstant{contrastcolor}{contrastcolor} \setinterfaceconstant{controls}{controls} \setinterfaceconstant{conversion}{conversion} \setinterfaceconstant{convertfile}{convertfile} \setinterfaceconstant{copies}{copies} \setinterfaceconstant{corner}{corner} \setinterfaceconstant{coupling}{coupling} \setinterfaceconstant{couplingway}{couplingway} \setinterfaceconstant{criterium}{criterium} \setinterfaceconstant{crop}{crop} \setinterfaceconstant{cropoffset}{cropoffset} \setinterfaceconstant{crossreference}{crossreference} \setinterfaceconstant{cssfile}{cssfile} \setinterfaceconstant{current}{current} \setinterfaceconstant{cutspace}{cutspace} \setinterfaceconstant{dash}{dash} \setinterfaceconstant{dashstep}{dashstep} \setinterfaceconstant{dat}{dat} \setinterfaceconstant{database}{database} \setinterfaceconstant{dataset}{dataset} \setinterfaceconstant{date}{date} \setinterfaceconstant{deepnumbercommand}{deepnumbercommand} \setinterfaceconstant{deeptextcommand}{deeptextcommand} \setinterfaceconstant{default}{default} \setinterfaceconstant{defaultheight}{defaultheight} \setinterfaceconstant{defaultwidth}{defaultwidth} \setinterfaceconstant{define}{define} \setinterfaceconstant{delay}{delay} \setinterfaceconstant{depth}{depth} \setinterfaceconstant{depthcorrection}{depthcorrection} \setinterfaceconstant{differentiald}{differentiald} \setinterfaceconstant{direction}{direction} \setinterfaceconstant{directory}{directory} \setinterfaceconstant{display}{display} \setinterfaceconstant{displayfactor}{displayfactor} \setinterfaceconstant{displaythreshold}{displaythreshold} \setinterfaceconstant{distance}{distance} \setinterfaceconstant{domain}{domain} \setinterfaceconstant{dot}{dot} \setinterfaceconstant{doublesided}{doublesided} \setinterfaceconstant{down}{down} \setinterfaceconstant{dummy}{dummy} \setinterfaceconstant{dx}{dx} \setinterfaceconstant{dy}{dy} \setinterfaceconstant{edge}{edge} \setinterfaceconstant{edgedistance}{edgedistance} \setinterfaceconstant{editor}{editor} \setinterfaceconstant{editoretaldisplay}{editoretaldisplay} \setinterfaceconstant{editoretallimit}{editoretallimit} \setinterfaceconstant{editoretaltext}{editoretaltext} \setinterfaceconstant{empty}{empty} \setinterfaceconstant{entities}{entities} \setinterfaceconstant{entries}{entries} \setinterfaceconstant{equalheight}{equalheight} \setinterfaceconstant{equalwidth}{equalwidth} \setinterfaceconstant{escape}{escape} \setinterfaceconstant{etaldisplay}{etaldisplay} \setinterfaceconstant{etallimit}{etallimit} \setinterfaceconstant{etaloption}{etaloption} \setinterfaceconstant{etaltext}{etaltext} \setinterfaceconstant{evenmargin}{evenmargin} \setinterfaceconstant{exact}{exact} \setinterfaceconstant{exitoffset}{exitoffset} \setinterfaceconstant{expansion}{expansion} \setinterfaceconstant{export}{export} \setinterfaceconstant{extradata}{extradata} \setinterfaceconstant{extras}{extras} \setinterfaceconstant{factor}{factor} \setinterfaceconstant{fallback}{fallback} \setinterfaceconstant{fallbacks}{fallbacks} \setinterfaceconstant{family}{family} \setinterfaceconstant{features}{features} \setinterfaceconstant{featureset}{featureset} \setinterfaceconstant{fences}{fences} \setinterfaceconstant{field}{field} \setinterfaceconstant{fieldbackgroundcolor}{fieldbackgroundcolor} \setinterfaceconstant{fieldframecolor}{fieldframecolor} \setinterfaceconstant{fieldlayer}{fieldlayer} \setinterfaceconstant{fieldoffset}{fieldoffset} \setinterfaceconstant{file}{file} \setinterfaceconstant{filler}{filler} \setinterfaceconstant{filter}{filter} \setinterfaceconstant{filtercommand}{filtercommand} \setinterfaceconstant{finalnamesep}{finalnamesep} \setinterfaceconstant{finalpagesep}{finalpagesep} \setinterfaceconstant{finalpubsep}{finalpubsep} \setinterfaceconstant{first}{first} \setinterfaceconstant{firstnamesep}{firstnamesep} \setinterfaceconstant{firstpage}{firstpage} \setinterfaceconstant{focus}{focus} \setinterfaceconstant{focusin}{focusin} \setinterfaceconstant{focusoffset}{focusoffset} \setinterfaceconstant{focusout}{focusout} \setinterfaceconstant{font}{font} \setinterfaceconstant{footer}{footer} \setinterfaceconstant{footerdistance}{footerdistance} \setinterfaceconstant{footerstate}{footerstate} \setinterfaceconstant{force}{force} \setinterfaceconstant{foregroundcolor}{foregroundcolor} \setinterfaceconstant{foregroundstyle}{foregroundstyle} \setinterfaceconstant{format}{format} \setinterfaceconstant{fractions}{fractions} \setinterfaceconstant{frame}{frame} \setinterfaceconstant{framecolor}{framecolor} \setinterfaceconstant{framecorner}{framecorner} \setinterfaceconstant{framedepth}{framedepth} \setinterfaceconstant{frameoffset}{frameoffset} \setinterfaceconstant{frameradius}{frameradius} \setinterfaceconstant{frames}{frames} \setinterfaceconstant{freeregion}{freeregion} \setinterfaceconstant{freezespacing}{freezespacing} \setinterfaceconstant{from}{from} \setinterfaceconstant{functioncolor}{functioncolor} \setinterfaceconstant{functionstyle}{functionstyle} \setinterfaceconstant{get}{get} \setinterfaceconstant{global}{global} \setinterfaceconstant{goodies}{goodies} \setinterfaceconstant{grid}{grid} \setinterfaceconstant{group}{group} \setinterfaceconstant{groupsuffix}{groupsuffix} \setinterfaceconstant{hang}{hang} \setinterfaceconstant{hcompact}{hcompact} \setinterfaceconstant{headalign}{headalign} \setinterfaceconstant{headcolor}{headcolor} \setinterfaceconstant{headcommand}{headcommand} \setinterfaceconstant{headconversion}{headconversion} \setinterfaceconstant{header}{header} \setinterfaceconstant{headerdistance}{headerdistance} \setinterfaceconstant{headerstate}{headerstate} \setinterfaceconstant{headindenting}{headindenting} \setinterfaceconstant{headlabel}{headlabel} \setinterfaceconstant{headnumber}{headnumber} \setinterfaceconstant{headseparator}{headseparator} \setinterfaceconstant{headstyle}{headstyle} \setinterfaceconstant{height}{height} \setinterfaceconstant{hfactor}{hfactor} \setinterfaceconstant{hfil}{hfil} \setinterfaceconstant{hidenumber}{hidenumber} \setinterfaceconstant{hoffset}{hoffset} \setinterfaceconstant{horizontal}{horizontal} \setinterfaceconstant{horoffset}{horoffset} \setinterfaceconstant{hyphen}{hyphen} \setinterfaceconstant{hyphens}{hyphens} \setinterfaceconstant{hz}{hz} \setinterfaceconstant{icommand}{icommand} \setinterfaceconstant{ignore}{ignore} \setinterfaceconstant{in}{in} \setinterfaceconstant{inbetween}{inbetween} \setinterfaceconstant{increment}{increment} \setinterfaceconstant{incrementnumber}{incrementnumber} \setinterfaceconstant{indenting}{indenting} \setinterfaceconstant{indentlist}{indentlist} \setinterfaceconstant{indentnext}{indentnext} \setinterfaceconstant{index}{index} \setinterfaceconstant{indicator}{indicator} \setinterfaceconstant{initialsep}{initialsep} \setinterfaceconstant{inlinefactor}{inlinefactor} \setinterfaceconstant{inlinethreshold}{inlinethreshold} \setinterfaceconstant{inner}{inner} \setinterfaceconstant{innermargin}{innermargin} \setinterfaceconstant{inputfile}{inputfile} \setinterfaceconstant{insidesection}{insidesection} \setinterfaceconstant{instance}{instance} \setinterfaceconstant{integral}{integral} \setinterfaceconstant{intent}{intent} \setinterfaceconstant{interaction}{interaction} \setinterfaceconstant{interlinespace}{interlinespace} \setinterfaceconstant{internalgrid}{internalgrid} \setinterfaceconstant{interscriptfactor}{interscriptfactor} \setinterfaceconstant{italicfeatures}{italicfeatures} \setinterfaceconstant{italicfont}{italicfont} \setinterfaceconstant{itemalign}{itemalign} \setinterfaceconstant{items}{items} \setinterfaceconstant{joiners}{joiners} \setinterfaceconstant{journalconversion}{journalconversion} \setinterfaceconstant{juniorsep}{juniorsep} \setinterfaceconstant{keeptogether}{keeptogether} \setinterfaceconstant{ken}{ken} \setinterfaceconstant{keyexpansion}{keyexpansion} \setinterfaceconstant{keys}{keys} \setinterfaceconstant{keyword}{keyword} \setinterfaceconstant{label}{label} \setinterfaceconstant{labelalternative}{labelalternative} \setinterfaceconstant{labelcolor}{labelcolor} \setinterfaceconstant{labeloffset}{labeloffset} \setinterfaceconstant{labelstyle}{labelstyle} \setinterfaceconstant{language}{language} \setinterfaceconstant{last}{last} \setinterfaceconstant{lastnamesep}{lastnamesep} \setinterfaceconstant{lastpage}{lastpage} \setinterfaceconstant{lastpagesep}{lastpagesep} \setinterfaceconstant{lastpubsep}{lastpubsep} \setinterfaceconstant{lasttextseparator}{lasttextseparator} \setinterfaceconstant{layout}{layout} \setinterfaceconstant{left}{left} \setinterfaceconstant{leftclass}{leftclass} \setinterfaceconstant{leftcolor}{leftcolor} \setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen} \setinterfaceconstant{leftedge}{leftedge} \setinterfaceconstant{leftedgedistance}{leftedgedistance} \setinterfaceconstant{leftframe}{leftframe} \setinterfaceconstant{lefthyphen}{lefthyphen} \setinterfaceconstant{leftmargin}{leftmargin} \setinterfaceconstant{leftmargindistance}{leftmargindistance} \setinterfaceconstant{leftoffset}{leftoffset} \setinterfaceconstant{leftquotation}{leftquotation} \setinterfaceconstant{leftquote}{leftquote} \setinterfaceconstant{leftsample}{leftsample} \setinterfaceconstant{leftsentence}{leftsentence} \setinterfaceconstant{leftsource}{leftsource} \setinterfaceconstant{leftspeech}{leftspeech} \setinterfaceconstant{leftstyle}{leftstyle} \setinterfaceconstant{leftsubsentence}{leftsubsentence} \setinterfaceconstant{lefttext}{lefttext} \setinterfaceconstant{leftwidth}{leftwidth} \setinterfaceconstant{leftwords}{leftwords} \setinterfaceconstant{less}{less} \setinterfaceconstant{level}{level} \setinterfaceconstant{levels}{levels} \setinterfaceconstant{limit}{limit} \setinterfaceconstant{limitstretch}{limitstretch} \setinterfaceconstant{limittext}{limittext} \setinterfaceconstant{line}{line} \setinterfaceconstant{linecorrection}{linecorrection} \setinterfaceconstant{linedirection}{linedirection} \setinterfaceconstant{lines}{lines} \setinterfaceconstant{list}{list} \setinterfaceconstant{listtext}{listtext} \setinterfaceconstant{local}{local} \setinterfaceconstant{location}{location} \setinterfaceconstant{loffset}{loffset} \setinterfaceconstant{logo}{logo} \setinterfaceconstant{logos}{logos} \setinterfaceconstant{marcolor}{marcolor} \setinterfaceconstant{margin}{margin} \setinterfaceconstant{margindistance}{margindistance} \setinterfaceconstant{marginedge}{marginedge} \setinterfaceconstant{marginedgetext}{marginedgetext} \setinterfaceconstant{margintext}{margintext} \setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{marking} \setinterfaceconstant{marstyle}{marstyle} \setinterfaceconstant{mask}{mask} \setinterfaceconstant{mathclass}{mathclass} \setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle} \setinterfaceconstant{mathlimits}{mathlimits} \setinterfaceconstant{mathmeaning}{mathmeaning} \setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle} \setinterfaceconstant{mathstyle}{mathstyle} \setinterfaceconstant{max}{max} \setinterfaceconstant{maxdepth}{maxdepth} \setinterfaceconstant{maxheight}{maxheight} \setinterfaceconstant{maxwidth}{maxwidth} \setinterfaceconstant{maybeyear}{maybeyear} \setinterfaceconstant{menu}{menu} \setinterfaceconstant{metadata}{metadata} \setinterfaceconstant{method}{method} \setinterfaceconstant{middle}{middle} \setinterfaceconstant{middleclass}{middleclass} \setinterfaceconstant{middlecolor}{middlecolor} \setinterfaceconstant{middlecommand}{middlecommand} \setinterfaceconstant{middlesource}{middlesource} \setinterfaceconstant{middlespeech}{middlespeech} \setinterfaceconstant{middlestyle}{middlestyle} \setinterfaceconstant{middletext}{middletext} \setinterfaceconstant{middlewidth}{middlewidth} \setinterfaceconstant{midsentence}{midsentence} \setinterfaceconstant{min}{min} \setinterfaceconstant{mindepth}{mindepth} \setinterfaceconstant{minheight}{minheight} \setinterfaceconstant{minwidth}{minwidth} \setinterfaceconstant{moffset}{moffset} \setinterfaceconstant{monthconversion}{monthconversion} \setinterfaceconstant{more}{more} \setinterfaceconstant{mpdepth}{mpdepth} \setinterfaceconstant{mpheight}{mpheight} \setinterfaceconstant{mpoffset}{mpoffset} \setinterfaceconstant{mpwidth}{mpwidth} \setinterfaceconstant{n}{n} \setinterfaceconstant{name}{name} \setinterfaceconstant{namesep}{namesep} \setinterfaceconstant{nbottom}{nbottom} \setinterfaceconstant{nc}{nc} \setinterfaceconstant{next}{next} \setinterfaceconstant{nextleft}{nextleft} \setinterfaceconstant{nextleftquotation}{nextleftquotation} \setinterfaceconstant{nextright}{nextright} \setinterfaceconstant{nextrightquotation}{nextrightquotation} \setinterfaceconstant{nl}{nl} \setinterfaceconstant{nleft}{nleft} \setinterfaceconstant{nlines}{nlines} \setinterfaceconstant{norm}{norm} \setinterfaceconstant{note}{note} \setinterfaceconstant{notes}{notes} \setinterfaceconstant{nr}{nr} \setinterfaceconstant{nright}{nright} \setinterfaceconstant{ntop}{ntop} \setinterfaceconstant{number}{number} \setinterfaceconstant{numberalign}{numberalign} \setinterfaceconstant{numbercolor}{numbercolor} \setinterfaceconstant{numbercommand}{numbercommand} \setinterfaceconstant{numberconversion}{numberconversion} \setinterfaceconstant{numberconversionset}{numberconversionset} \setinterfaceconstant{numberdistance}{numberdistance} \setinterfaceconstant{numbering}{numbering} \setinterfaceconstant{numberlocation}{numberlocation} \setinterfaceconstant{numbermethod}{numbermethod} \setinterfaceconstant{numberorder}{numberorder} \setinterfaceconstant{numberprefix}{numberprefix} \setinterfaceconstant{numbersegments}{numbersegments} \setinterfaceconstant{numberseparator}{numberseparator} \setinterfaceconstant{numberseparatorset}{numberseparatorset} \setinterfaceconstant{numberset}{numberset} \setinterfaceconstant{numberstarter}{numberstarter} \setinterfaceconstant{numberstopper}{numberstopper} \setinterfaceconstant{numberstrut}{numberstrut} \setinterfaceconstant{numberstyle}{numberstyle} \setinterfaceconstant{numberthreshold}{numberthreshold} \setinterfaceconstant{numberwidth}{numberwidth} \setinterfaceconstant{nx}{nx} \setinterfaceconstant{ny}{ny} \setinterfaceconstant{object}{object} \setinterfaceconstant{obstruction}{obstruction} \setinterfaceconstant{oddmargin}{oddmargin} \setinterfaceconstant{off}{off} \setinterfaceconstant{offset}{offset} \setinterfaceconstant{on}{on} \setinterfaceconstant{openaction}{openaction} \setinterfaceconstant{openpage}{openpage} \setinterfaceconstant{openpageaction}{openpageaction} \setinterfaceconstant{openup}{openup} \setinterfaceconstant{opticalsize}{opticalsize} \setinterfaceconstant{option}{option} \setinterfaceconstant{order}{order} \setinterfaceconstant{orientation}{orientation} \setinterfaceconstant{otherstext}{otherstext} \setinterfaceconstant{outermargin}{outermargin} \setinterfaceconstant{overflow}{overflow} \setinterfaceconstant{overprint}{overprint} \setinterfaceconstant{ownerpassword}{ownerpassword} \setinterfaceconstant{ownnumber}{ownnumber} \setinterfaceconstant{packcriterium}{packcriterium} \setinterfaceconstant{page}{page} \setinterfaceconstant{pageboundaries}{pageboundaries} \setinterfaceconstant{pagecolor}{pagecolor} \setinterfaceconstant{pagecolormodel}{pagecolormodel} \setinterfaceconstant{pagecommand}{pagecommand} \setinterfaceconstant{pageconnector}{pageconnector} \setinterfaceconstant{pageconversion}{pageconversion} \setinterfaceconstant{pageconversionset}{pageconversionset} \setinterfaceconstant{pageleft}{pageleft} \setinterfaceconstant{pagemethod}{pagemethod} \setinterfaceconstant{pagenumber}{pagenumber} \setinterfaceconstant{pageprefix}{pageprefix} \setinterfaceconstant{pageprefixconnector}{pageprefixconnector} \setinterfaceconstant{pageprefixconversion}{pageprefixconversion} \setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset} \setinterfaceconstant{pageprefixsegments}{pageprefixsegments} \setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset} \setinterfaceconstant{pageprefixset}{pageprefixset} \setinterfaceconstant{pageprefixstarter}{pageprefixstarter} \setinterfaceconstant{pageprefixstopper}{pageprefixstopper} \setinterfaceconstant{pageright}{pageright} \setinterfaceconstant{pagesegments}{pagesegments} \setinterfaceconstant{pagesep}{pagesep} \setinterfaceconstant{pageseparatorset}{pageseparatorset} \setinterfaceconstant{pageset}{pageset} \setinterfaceconstant{pagestarter}{pagestarter} \setinterfaceconstant{pagestate}{pagestate} \setinterfaceconstant{pagestopper}{pagestopper} \setinterfaceconstant{pagestyle}{pagestyle} \setinterfaceconstant{palet}{palet} \setinterfaceconstant{paper}{paper} \setinterfaceconstant{paragraph}{paragraph} \setinterfaceconstant{penalties}{penalties} \setinterfaceconstant{period}{period} \setinterfaceconstant{place}{place} \setinterfaceconstant{placehead}{placehead} \setinterfaceconstant{placeholder}{placeholder} \setinterfaceconstant{placestopper}{placestopper} \setinterfaceconstant{position}{position} \setinterfaceconstant{prefix}{prefix} \setinterfaceconstant{prefixconnector}{prefixconnector} \setinterfaceconstant{prefixconversion}{prefixconversion} \setinterfaceconstant{prefixconversionset}{prefixconversionset} \setinterfaceconstant{prefixsegments}{prefixsegments} \setinterfaceconstant{prefixseparatorset}{prefixseparatorset} \setinterfaceconstant{prefixset}{prefixset} \setinterfaceconstant{prefixstarter}{prefixstarter} \setinterfaceconstant{prefixstopper}{prefixstopper} \setinterfaceconstant{preset}{preset} \setinterfaceconstant{preview}{preview} \setinterfaceconstant{previous}{previous} \setinterfaceconstant{previousnumber}{previousnumber} \setinterfaceconstant{print}{print} \setinterfaceconstant{printable}{printable} \setinterfaceconstant{process}{process} \setinterfaceconstant{processors}{processors} \setinterfaceconstant{profile}{profile} \setinterfaceconstant{properties}{properties} \setinterfaceconstant{pubsep}{pubsep} \setinterfaceconstant{quotechar}{quotechar} \setinterfaceconstant{radius}{radius} \setinterfaceconstant{random}{random} \setinterfaceconstant{range}{range} \setinterfaceconstant{reduction}{reduction} \setinterfaceconstant{ref}{ref} \setinterfaceconstant{refcommand}{refcommand} \setinterfaceconstant{reference}{reference} \setinterfaceconstant{referencemethod}{referencemethod} \setinterfaceconstant{referenceprefix}{referenceprefix} \setinterfaceconstant{referencetext}{referencetext} \setinterfaceconstant{referencing}{referencing} \setinterfaceconstant{region}{region} \setinterfaceconstant{regionin}{regionin} \setinterfaceconstant{regionout}{regionout} \setinterfaceconstant{register}{register} \setinterfaceconstant{regularfeatures}{regularfeatures} \setinterfaceconstant{regularfont}{regularfont} \setinterfaceconstant{renderingsetup}{renderingsetup} \setinterfaceconstant{repeat}{repeat} \setinterfaceconstant{reset}{reset} \setinterfaceconstant{resetnumber}{resetnumber} \setinterfaceconstant{resolution}{resolution} \setinterfaceconstant{resources}{resources} \setinterfaceconstant{reverse}{reverse} \setinterfaceconstant{right}{right} \setinterfaceconstant{rightchars}{rightchars} \setinterfaceconstant{rightclass}{rightclass} \setinterfaceconstant{rightcolor}{rightcolor} \setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen} \setinterfaceconstant{rightedge}{rightedge} \setinterfaceconstant{rightedgedistance}{rightedgedistance} \setinterfaceconstant{rightframe}{rightframe} \setinterfaceconstant{righthyphen}{righthyphen} \setinterfaceconstant{rightmargin}{rightmargin} \setinterfaceconstant{rightmargindistance}{rightmargindistance} \setinterfaceconstant{rightoffset}{rightoffset} \setinterfaceconstant{rightquotation}{rightquotation} \setinterfaceconstant{rightquote}{rightquote} \setinterfaceconstant{rightsample}{rightsample} \setinterfaceconstant{rightsentence}{rightsentence} \setinterfaceconstant{rightsource}{rightsource} \setinterfaceconstant{rightspeech}{rightspeech} \setinterfaceconstant{rightstyle}{rightstyle} \setinterfaceconstant{rightsubsentence}{rightsubsentence} \setinterfaceconstant{righttext}{righttext} \setinterfaceconstant{rightwidth}{rightwidth} \setinterfaceconstant{rightwords}{rightwords} \setinterfaceconstant{roffset}{roffset} \setinterfaceconstant{rotation}{rotation} \setinterfaceconstant{rule}{rule} \setinterfaceconstant{rulecolor}{rulecolor} \setinterfaceconstant{rulecommand}{rulecommand} \setinterfaceconstant{rulethickness}{rulethickness} \setinterfaceconstant{samepage}{samepage} \setinterfaceconstant{sample}{sample} \setinterfaceconstant{samplesize}{samplesize} \setinterfaceconstant{saveinlist}{saveinlist} \setinterfaceconstant{scale}{scale} \setinterfaceconstant{scope}{scope} \setinterfaceconstant{screen}{screen} \setinterfaceconstant{section}{section} \setinterfaceconstant{sectionblock}{sectionblock} \setinterfaceconstant{sectionconversion}{sectionconversion} \setinterfaceconstant{sectionconversionset}{sectionconversionset} \setinterfaceconstant{sectionnumber}{sectionnumber} \setinterfaceconstant{sectionresetset}{sectionresetset} \setinterfaceconstant{sectionsegments}{sectionsegments} \setinterfaceconstant{sectionseparatorset}{sectionseparatorset} \setinterfaceconstant{sectionset}{sectionset} \setinterfaceconstant{sectionstarter}{sectionstarter} \setinterfaceconstant{sectionstopper}{sectionstopper} \setinterfaceconstant{separator}{separator} \setinterfaceconstant{separatorcolor}{separatorcolor} \setinterfaceconstant{separatorstyle}{separatorstyle} \setinterfaceconstant{set}{set} \setinterfaceconstant{setups}{setups} \setinterfaceconstant{shrink}{shrink} \setinterfaceconstant{side}{side} \setinterfaceconstant{sidealign}{sidealign} \setinterfaceconstant{sidemethod}{sidemethod} \setinterfaceconstant{sidespaceafter}{sidespaceafter} \setinterfaceconstant{sidespacebefore}{sidespacebefore} \setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween} \setinterfaceconstant{sidethreshold}{sidethreshold} \setinterfaceconstant{sign}{sign} \setinterfaceconstant{simplecommand}{simplecommand} \setinterfaceconstant{size}{size} \setinterfaceconstant{slantedfeatures}{slantedfeatures} \setinterfaceconstant{slantedfont}{slantedfont} \setinterfaceconstant{small}{small} \setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures} \setinterfaceconstant{smallcapsfont}{smallcapsfont} \setinterfaceconstant{snap}{snap} \setinterfaceconstant{snapstep}{snapstep} \setinterfaceconstant{solution}{solution} \setinterfaceconstant{sort}{sort} \setinterfaceconstant{sorttype}{sorttype} \setinterfaceconstant{source}{source} \setinterfaceconstant{space}{space} \setinterfaceconstant{spaceafter}{spaceafter} \setinterfaceconstant{spaceafterside}{spaceafterside} \setinterfaceconstant{spacebefore}{spacebefore} \setinterfaceconstant{spacebeforeside}{spacebeforeside} \setinterfaceconstant{spaceinbetween}{spaceinbetween} \setinterfaceconstant{spacing}{spacing} \setinterfaceconstant{specification}{specification} \setinterfaceconstant{split}{split} \setinterfaceconstant{splitcolor}{splitcolor} \setinterfaceconstant{splitmethod}{splitmethod} \setinterfaceconstant{splitoffset}{splitoffset} \setinterfaceconstant{spot}{spot} \setinterfaceconstant{stack}{stack} \setinterfaceconstant{stacking}{stacking} \setinterfaceconstant{stackname}{stackname} \setinterfaceconstant{start}{start} \setinterfaceconstant{starter}{starter} \setinterfaceconstant{state}{state} \setinterfaceconstant{step}{step} \setinterfaceconstant{stop}{stop} \setinterfaceconstant{stopper}{stopper} \setinterfaceconstant{stretch}{stretch} \setinterfaceconstant{strip}{strip} \setinterfaceconstant{strut}{strut} \setinterfaceconstant{style}{style} \setinterfaceconstant{stylealternative}{stylealternative} \setinterfaceconstant{sub}{sub} \setinterfaceconstant{subtitle}{subtitle} \setinterfaceconstant{suffix}{suffix} \setinterfaceconstant{suffixseparator}{suffixseparator} \setinterfaceconstant{suffixstopper}{suffixstopper} \setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep} \setinterfaceconstant{surnameinitialsep}{surnameinitialsep} \setinterfaceconstant{surnamesep}{surnamesep} \setinterfaceconstant{svgstyle}{svgstyle} \setinterfaceconstant{sx}{sx} \setinterfaceconstant{sy}{sy} \setinterfaceconstant{symalign}{symalign} \setinterfaceconstant{symbol}{symbol} \setinterfaceconstant{symbolcommand}{symbolcommand} \setinterfaceconstant{symbolset}{symbolset} \setinterfaceconstant{symcolor}{symcolor} \setinterfaceconstant{symstyle}{symstyle} \setinterfaceconstant{synchronize}{synchronize} \setinterfaceconstant{synonym}{synonym} \setinterfaceconstant{synonymcolor}{synonymcolor} \setinterfaceconstant{synonymcommand}{synonymcommand} \setinterfaceconstant{synonymstyle}{synonymstyle} \setinterfaceconstant{tab}{tab} \setinterfaceconstant{target}{target} \setinterfaceconstant{text}{text} \setinterfaceconstant{textalign}{textalign} \setinterfaceconstant{textalternative}{textalternative} \setinterfaceconstant{textcolor}{textcolor} \setinterfaceconstant{textcommand}{textcommand} \setinterfaceconstant{textdistance}{textdistance} \setinterfaceconstant{textheight}{textheight} \setinterfaceconstant{textlayer}{textlayer} \setinterfaceconstant{textmargin}{textmargin} \setinterfaceconstant{textmethod}{textmethod} \setinterfaceconstant{textseparator}{textseparator} \setinterfaceconstant{textsize}{textsize} \setinterfaceconstant{textstate}{textstate} \setinterfaceconstant{textstyle}{textstyle} \setinterfaceconstant{textwidth}{textwidth} \setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{time}{time} \setinterfaceconstant{title}{title} \setinterfaceconstant{titlecolor}{titlecolor} \setinterfaceconstant{titlecommand}{titlecommand} \setinterfaceconstant{titledistance}{titledistance} \setinterfaceconstant{titleleft}{titleleft} \setinterfaceconstant{titleright}{titleright} \setinterfaceconstant{titlestrut}{titlestrut} \setinterfaceconstant{titlestyle}{titlestyle} \setinterfaceconstant{to}{to} \setinterfaceconstant{toffset}{toffset} \setinterfaceconstant{tolerance}{tolerance} \setinterfaceconstant{top}{top} \setinterfaceconstant{topalign}{topalign} \setinterfaceconstant{topcolor}{topcolor} \setinterfaceconstant{topcommand}{topcommand} \setinterfaceconstant{topdistance}{topdistance} \setinterfaceconstant{topframe}{topframe} \setinterfaceconstant{topoffset}{topoffset} \setinterfaceconstant{topspace}{topspace} \setinterfaceconstant{topstate}{topstate} \setinterfaceconstant{topstyle}{topstyle} \setinterfaceconstant{totalnumber}{totalnumber} \setinterfaceconstant{transform}{transform} \setinterfaceconstant{translate}{translate} \setinterfaceconstant{trimoffset}{trimoffset} \setinterfaceconstant{type}{type} \setinterfaceconstant{unit}{unit} \setinterfaceconstant{unknownreference}{unknownreference} \setinterfaceconstant{up}{up} \setinterfaceconstant{urlalternative}{urlalternative} \setinterfaceconstant{urlspace}{urlspace} \setinterfaceconstant{userpassword}{userpassword} \setinterfaceconstant{validate}{validate} \setinterfaceconstant{values}{values} \setinterfaceconstant{vcommand}{vcommand} \setinterfaceconstant{vcompact}{vcompact} \setinterfaceconstant{vector}{vector} \setinterfaceconstant{veroffset}{veroffset} \setinterfaceconstant{vertical}{vertical} \setinterfaceconstant{vfactor}{vfactor} \setinterfaceconstant{vfil}{vfil} \setinterfaceconstant{viewerprefix}{viewerprefix} \setinterfaceconstant{voffset}{voffset} \setinterfaceconstant{vonsep}{vonsep} \setinterfaceconstant{vz}{vz} \setinterfaceconstant{way}{way} \setinterfaceconstant{wfactor}{wfactor} \setinterfaceconstant{white}{white} \setinterfaceconstant{width}{width} \setinterfaceconstant{words}{words} \setinterfaceconstant{xanchor}{xanchor} \setinterfaceconstant{xfactor}{xfactor} \setinterfaceconstant{xhtml}{xhtml} \setinterfaceconstant{xmax}{xmax} \setinterfaceconstant{xmlsetup}{xmlsetup} \setinterfaceconstant{xoffset}{xoffset} \setinterfaceconstant{xscale}{xscale} \setinterfaceconstant{xstep}{xstep} \setinterfaceconstant{yanchor}{yanchor} \setinterfaceconstant{yfactor}{yfactor} \setinterfaceconstant{ymax}{ymax} \setinterfaceconstant{yoffset}{yoffset} \setinterfaceconstant{yscale}{yscale} \setinterfaceconstant{ystep}{ystep} % definitions for interface elements for language en % \setinterfaceelement{answerlines}{answerlines} \setinterfaceelement{answerspace}{answerspace} \setinterfaceelement{begin}{begin} \setinterfaceelement{complete}{complete} \setinterfaceelement{coupled}{coupled} \setinterfaceelement{currentlocal}{currentlocal} \setinterfaceelement{end}{end} \setinterfaceelement{endsetup}{} \setinterfaceelement{get}{get} \setinterfaceelement{increment}{increment} \setinterfaceelement{list}{list} \setinterfaceelement{listof}{listof} \setinterfaceelement{load}{load} \setinterfaceelement{local}{local} \setinterfaceelement{makeup}{makeup} \setinterfaceelement{namednotation}{namednotation} \setinterfaceelement{namedtyping}{namedtyping} \setinterfaceelement{next}{next} \setinterfaceelement{place}{place} \setinterfaceelement{previous}{previous} \setinterfaceelement{previouslocal}{previouslocal} \setinterfaceelement{reserve}{reserve} \setinterfaceelement{see}{see} \setinterfaceelement{setup}{setup} \setinterfaceelement{start}{start} \setinterfaceelement{stop}{stop} \setinterfaceelement{text}{text} \setinterfaceelement{type}{type} % definitions for interface commands for language en % \setinterfacecommand{Character}{Character} \setinterfacecommand{Characters}{Characters} \setinterfacecommand{MONTH}{MONTH} \setinterfacecommand{Numbers}{Numbers} \setinterfacecommand{Romannumerals}{Romannumerals} \setinterfacecommand{SmallCapped}{Cap} \setinterfacecommand{SmallCaps}{Caps} \setinterfacecommand{WEEKDAY}{WEEKDAY} \setinterfacecommand{WORD}{WORD} \setinterfacecommand{WORDS}{WORDS} \setinterfacecommand{Word}{Word} \setinterfacecommand{Words}{Words} \setinterfacecommand{about}{about} \setinterfacecommand{adaptfontfeature}{adaptfontfeature} \setinterfacecommand{adaptlayout}{adaptlayout} \setinterfacecommand{addfeature}{addfeature} \setinterfacecommand{alignbottom}{alignbottom} \setinterfacecommand{aligned}{aligned} \setinterfacecommand{alignedbox}{alignedbox} \setinterfacecommand{alignedline}{alignedline} \setinterfacecommand{alignhere}{alignhere} \setinterfacecommand{alignment}{alignment} \setinterfacecommand{alignmentcharacter}{alignmentcharacter} \setinterfacecommand{applytocharacters}{applytocharacters} \setinterfacecommand{applytofirstcharacter}{applytofirstcharacter} \setinterfacecommand{arg}{arg} \setinterfacecommand{at}{at} \setinterfacecommand{atleftmargin}{atleftmargin} \setinterfacecommand{atpage}{atpage} \setinterfacecommand{atrightmargin}{atrightmargin} \setinterfacecommand{background}{background} \setinterfacecommand{backspace}{backspace} \setinterfacecommand{blackrule}{blackrule} \setinterfacecommand{blackrules}{blackrules} \setinterfacecommand{blank}{blank} \setinterfacecommand{bookmark}{bookmark} \setinterfacecommand{bottombox}{bottombox} \setinterfacecommand{bottomdistance}{bottomdistance} \setinterfacecommand{bottomheight}{bottomheight} \setinterfacecommand{bottomleftbox}{bottomleftbox} \setinterfacecommand{bottomrightbox}{bottomrightbox} \setinterfacecommand{bottomspace}{bottomspace} \setinterfacecommand{buildtextbottomdot}{buildtextbottomdot} \setinterfacecommand{but}{but} \setinterfacecommand{button}{button} \setinterfacecommand{bypassblocks}{bypassblocks} \setinterfacecommand{character}{character} \setinterfacecommand{characters}{characters} \setinterfacecommand{chem}{chem} \setinterfacecommand{clip}{clip} \setinterfacecommand{clonefield}{clonefield} \setinterfacecommand{color}{color} \setinterfacecommand{colorbar}{colorbar} \setinterfacecommand{colorvalue}{colorvalue} \setinterfacecommand{column}{column} \setinterfacecommand{comparecolorgroup}{comparecolorgroup} \setinterfacecommand{comparepalet}{comparepalet} \setinterfacecommand{completepagenumber}{completepagenumber} \setinterfacecommand{completeregister}{completeregister} \setinterfacecommand{component}{component} \setinterfacecommand{convertnumber}{convertnumber} \setinterfacecommand{copyfield}{copyfield} \setinterfacecommand{correctwhitespace}{correctwhitespace} \setinterfacecommand{coupledocument}{coupledocument} \setinterfacecommand{couplemarking}{couplemarking} \setinterfacecommand{couplepage}{couplepage} \setinterfacecommand{couplepaper}{couplepaper} \setinterfacecommand{coupleregister}{coupleregister} \setinterfacecommand{crlf}{crlf} \setinterfacecommand{currentdate}{currentdate} \setinterfacecommand{currentheadnumber}{currentheadnumber} \setinterfacecommand{cutspace}{cutspace} \setinterfacecommand{date}{date} \setinterfacecommand{decouplemarking}{decouplemarking} \setinterfacecommand{decrementnumber}{decrementnumber} \setinterfacecommand{define}{define} \setinterfacecommand{defineaccent}{defineaccent} \setinterfacecommand{defineblank}{defineblank} \setinterfacecommand{defineblock}{defineblock} \setinterfacecommand{definebodyfont}{definebodyfont} \setinterfacecommand{definebodyfontenvironment}{definebodyfontenvironment} \setinterfacecommand{definebodyfontswitch}{definebodyfontswitch} \setinterfacecommand{definebuffer}{definebuffer} \setinterfacecommand{definecharacter}{definecharacter} \setinterfacecommand{definecharacterkerning}{definecharacterkerning} \setinterfacecommand{definecharacterspacing}{definecharacterspacing} \setinterfacecommand{definecolor}{definecolor} \setinterfacecommand{definecolorgroup}{definecolorgroup} \setinterfacecommand{definecolumnbreak}{definecolumnbreak} \setinterfacecommand{definecolumnset}{definecolumnset} \setinterfacecommand{definecombination}{definecombination} \setinterfacecommand{definecombinedlist}{definecombinedlist} \setinterfacecommand{definecommand}{definecommand} \setinterfacecommand{defineconversion}{defineconversion} \setinterfacecommand{definedescription}{definedescription} \setinterfacecommand{definedfont}{definedfont} \setinterfacecommand{defineenumeration}{defineenumeration} \setinterfacecommand{definefallbackfamily}{definefallbackfamily} \setinterfacecommand{definefield}{definefield} \setinterfacecommand{definefieldstack}{definefieldstack} \setinterfacecommand{definefiguresymbol}{definefiguresymbol} \setinterfacecommand{definefilefallback}{definefilefallback} \setinterfacecommand{definefirstline}{definefirstline} \setinterfacecommand{definefloat}{definefloat} \setinterfacecommand{definefont}{definefont} \setinterfacecommand{definefontalternative}{definefontalternative} \setinterfacecommand{definefontfallback}{definefontfallback} \setinterfacecommand{definefontfamily}{definefontfamily} \setinterfacecommand{definefontfamilypreset}{definefontfamilypreset} \setinterfacecommand{definefontfeature}{definefontfeature} \setinterfacecommand{definefontfile}{definefontfile} \setinterfacecommand{definefontsize}{definefontsize} \setinterfacecommand{definefontsolution}{definefontsolution} \setinterfacecommand{definefontstyle}{definefontstyle} \setinterfacecommand{definefontsynonym}{definefontsynonym} \setinterfacecommand{defineframed}{defineframed} \setinterfacecommand{defineframedtext}{defineframedtext} \setinterfacecommand{definefrozenfont}{definefrozenfont} \setinterfacecommand{definehbox}{definehbox} \setinterfacecommand{definehead}{definehead} \setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures} \setinterfacecommand{defineindentedtext}{defineindentedtext} \setinterfacecommand{defineinmargin}{defineinmargin} \setinterfacecommand{defineinteractionmenu}{defineinteractionmenu} \setinterfacecommand{defineitemgroup}{defineitemgroup} \setinterfacecommand{defineitems}{defineitems} \setinterfacecommand{definelabel}{definelabel} \setinterfacecommand{definelayer}{definelayer} \setinterfacecommand{definelayout}{definelayout} \setinterfacecommand{definelinenote}{definelinenote} \setinterfacecommand{definelist}{definelist} \setinterfacecommand{definelogo}{definelogo} \setinterfacecommand{definemainfield}{definemainfield} \setinterfacecommand{definemakeup}{definemakeup} \setinterfacecommand{definemarking}{definemarking} \setinterfacecommand{definemathalignment}{definemathalignment} \setinterfacecommand{definemode}{definemode} \setinterfacecommand{definenamedcolor}{definenamedcolor} \setinterfacecommand{definenote}{definenote} \setinterfacecommand{defineoutput}{defineoutput} \setinterfacecommand{defineoverlay}{defineoverlay} \setinterfacecommand{definepagebreak}{definepagebreak} \setinterfacecommand{definepalet}{definepalet} \setinterfacecommand{definepapersize}{definepapersize} \setinterfacecommand{defineparagraphs}{defineparagraphs} \setinterfacecommand{defineperiodkerning}{defineperiodkerning} \setinterfacecommand{defineplacement}{defineplacement} \setinterfacecommand{defineprofile}{defineprofile} \setinterfacecommand{defineprogram}{defineprogram} \setinterfacecommand{definerawfont}{definerawfont} \setinterfacecommand{definereference}{definereference} \setinterfacecommand{definereferenceformat}{definereferenceformat} \setinterfacecommand{definereferencelist}{definereferencelist} \setinterfacecommand{defineregister}{defineregister} \setinterfacecommand{definerule}{definerule} \setinterfacecommand{definesavebuffer}{startsavebuffer} \setinterfacecommand{definesection}{definesection} \setinterfacecommand{definesectionblock}{definesectionblock} \setinterfacecommand{definesorting}{definesorting} \setinterfacecommand{definestartstop}{definestartstop} \setinterfacecommand{definestyle}{definestyle} \setinterfacecommand{definesubfield}{definesubfield} \setinterfacecommand{definesymbol}{definesymbol} \setinterfacecommand{definesynonyms}{definesynonyms} \setinterfacecommand{definetabletemplate}{definetabletemplate} \setinterfacecommand{definetabulate}{definetabulate} \setinterfacecommand{definetext}{definetext} \setinterfacecommand{definetextbackground}{definetextbackground} \setinterfacecommand{definetextnote}{definetextnote} \setinterfacecommand{definetextposition}{definetextposition} \setinterfacecommand{definetextvariable}{definetextvariable} \setinterfacecommand{definetype}{definetype} \setinterfacecommand{definetyping}{definetyping} \setinterfacecommand{defineversion}{defineversion} \setinterfacecommand{depthspanningtext}{depthspanningtext} \setinterfacecommand{determineheadnumber}{determineheadnumber} \setinterfacecommand{determinelistcharacteristics}{determinelistcharacteristics} \setinterfacecommand{determineregistercharacteristics}{determineregistercharacteristics} \setinterfacecommand{dimension}{dimension} \setinterfacecommand{disableinteractionmenu}{disableinteractionmenu} \setinterfacecommand{disablemode}{disablemode} \setinterfacecommand{doaddfeature}{doaddfeature} \setinterfacecommand{domicile}{domicile} \setinterfacecommand{dontconvertfont}{dontconvertfont} \setinterfacecommand{donttest}{donttest} \setinterfacecommand{edgedistance}{edgedistance} \setinterfacecommand{edgewidth}{edgewidth} \setinterfacecommand{emphasisboldface}{emphasisboldface} \setinterfacecommand{emptylines}{emptylines} \setinterfacecommand{enablemode}{enablemode} \setinterfacecommand{environment}{environment} \setinterfacecommand{externalfigure}{externalfigure} \setinterfacecommand{fact}{fact} \setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont} \setinterfacecommand{feature}{feature} \setinterfacecommand{field}{field} \setinterfacecommand{fieldstack}{fieldstack} \setinterfacecommand{fillinfield}{fillinfield} \setinterfacecommand{fillinline}{fillinline} \setinterfacecommand{fillinrules}{fillinrules} \setinterfacecommand{fillintext}{fillintext} \setinterfacecommand{firstcharacter}{firstcharacter} \setinterfacecommand{fitfield}{fitfield} \setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid} \setinterfacecommand{fixedspace}{fixedspace} \setinterfacecommand{fixedspaces}{fixedspaces} \setinterfacecommand{flushnotes}{flushnotes} \setinterfacecommand{followprofile}{followprofile} \setinterfacecommand{followprofileversion}{followprofileversion} \setinterfacecommand{followversion}{followversion} \setinterfacecommand{footerdistance}{footerdistance} \setinterfacecommand{footerheight}{footerheight} \setinterfacecommand{footnote}{footnote} \setinterfacecommand{footnotetext}{footnotetext} \setinterfacecommand{forceblocks}{forceblocks} \setinterfacecommand{forcecharacterstripping}{forcecharacterstripping} \setinterfacecommand{formulanumber}{formulanumber} \setinterfacecommand{fraction}{fraction} \setinterfacecommand{framed}{framed} \setinterfacecommand{from}{from} \setinterfacecommand{fromlinenote}{fromlinenote} \setinterfacecommand{getbuffer}{getbuffer} \setinterfacecommand{getfirstcharacter}{getfirstcharacter} \setinterfacecommand{getmarking}{getmarking} \setinterfacecommand{getnumber}{getnumber} \setinterfacecommand{globaldisablemode}{globaldisablemode} \setinterfacecommand{globalenablemode}{globalenablemode} \setinterfacecommand{globalpreventmode}{globalpreventmode} \setinterfacecommand{godown}{godown} \setinterfacecommand{goto}{goto} \setinterfacecommand{gotobox}{gotobox} \setinterfacecommand{gotopage}{gotopage} \setinterfacecommand{graycolor}{graycolor} \setinterfacecommand{greyvalue}{greyvalue} \setinterfacecommand{grid}{grid} \setinterfacecommand{hairline}{hairline} \setinterfacecommand{head}{head} \setinterfacecommand{headerdistance}{headerdistance} \setinterfacecommand{headerheight}{headerheight} \setinterfacecommand{headlevel}{headlevel} \setinterfacecommand{headnumber}{headnumber} \setinterfacecommand{headsym}{headsym} \setinterfacecommand{headtext}{headtext} \setinterfacecommand{heightspanningtext}{heightspanningtext} \setinterfacecommand{hideblocks}{hideblocks} \setinterfacecommand{high}{high} \setinterfacecommand{hl}{hl} \setinterfacecommand{immediatebetweenlist}{immediatebetweenlist} \setinterfacecommand{immediatetolist}{immediatetolist} \setinterfacecommand{in}{in} \setinterfacecommand{incrementnumber}{incrementnumber} \setinterfacecommand{indenting}{indenting} \setinterfacecommand{inframed}{inframed} \setinterfacecommand{infull}{infull} \setinterfacecommand{ininner}{ininner} \setinterfacecommand{inleft}{inleft} \setinterfacecommand{inleftedge}{inleftedge} \setinterfacecommand{inleftmargin}{inleftmargin} \setinterfacecommand{inline}{inline} \setinterfacecommand{inmargin}{inmargin} \setinterfacecommand{inmframed}{inmaframed} \setinterfacecommand{inneredgedistance}{inneredgedistance} \setinterfacecommand{inneredgewidth}{inneredgewidth} \setinterfacecommand{innermargindistance}{innermargindistance} \setinterfacecommand{innermarginwidth}{innermarginwidth} \setinterfacecommand{inothermargin}{inothermargin} \setinterfacecommand{inouter}{inouter} \setinterfacecommand{inright}{inright} \setinterfacecommand{inrightedge}{inrightedge} \setinterfacecommand{inrightmargin}{inrightmargin} \setinterfacecommand{installlanguage}{installlanguage} \setinterfacecommand{interactionbar}{interactionbar} \setinterfacecommand{interactionbuttons}{interactionbuttons} \setinterfacecommand{interactionmenu}{interactionmenu} \setinterfacecommand{item}{item} \setinterfacecommand{itemgroup}{itemgroup} \setinterfacecommand{items}{items} \setinterfacecommand{itemtag}{itemtag} \setinterfacecommand{its}{its} \setinterfacecommand{keepblocks}{keepblocks} \setinterfacecommand{kerncharacters}{kerncharacters} \setinterfacecommand{label}{label} \setinterfacecommand{labels}{labels} \setinterfacecommand{labeltext}{labeltext} \setinterfacecommand{language}{language} \setinterfacecommand{languageCharacters}{languageCharacters} \setinterfacecommand{languagecharacters}{languagecharacters} \setinterfacecommand{leftaligned}{leftaligned} \setinterfacecommand{leftbottombox}{leftbottombox} \setinterfacecommand{leftedgedistance}{leftedgedistance} \setinterfacecommand{leftedgewidth}{leftedgewidth} \setinterfacecommand{leftline}{leftline} \setinterfacecommand{leftmargindistance}{leftmargindistance} \setinterfacecommand{leftmarginwidth}{leftmarginwidth} \setinterfacecommand{leg}{leg} \setinterfacecommand{linecorrection}{linecorrection} \setinterfacecommand{linenote}{linenote} \setinterfacecommand{linespanningtext}{linespanningtext} \setinterfacecommand{linewidth}{linethickness} \setinterfacecommand{listheight}{listheight} \setinterfacecommand{listlength}{listlength} \setinterfacecommand{listsymbol}{listsymbol} \setinterfacecommand{listwidth}{listwidth} \setinterfacecommand{loadfontgoodies}{loadfontgoodies} \setinterfacecommand{localfootnotes}{localfootnotes} \setinterfacecommand{localnotes}{localnotes} \setinterfacecommand{logfields}{logfields} \setinterfacecommand{lohi}{lohi} \setinterfacecommand{low}{low} \setinterfacecommand{macroname}{name} \setinterfacecommand{mainlanguage}{mainlanguage} \setinterfacecommand{makeupheight}{makeupheight} \setinterfacecommand{makeupwidth}{makeupwidth} \setinterfacecommand{mar}{mar} \setinterfacecommand{marginblock}{marginblock} \setinterfacecommand{margindistance}{margindistance} \setinterfacecommand{marginrule}{marginrule} \setinterfacecommand{margintext}{margintext} \setinterfacecommand{margintitle}{margintitle} \setinterfacecommand{marginwidth}{marginwidth} \setinterfacecommand{marginword}{marginword} \setinterfacecommand{marking}{marking} \setinterfacecommand{markversion}{markversion} \setinterfacecommand{mathematics}{mathematics} \setinterfacecommand{menubutton}{menubutton} \setinterfacecommand{mframed}{maframed} \setinterfacecommand{midaligned}{midaligned} \setinterfacecommand{mirror}{mirror} \setinterfacecommand{month}{month} \setinterfacecommand{moveformula}{moveformula} \setinterfacecommand{moveongrid}{moveongrid} \setinterfacecommand{movesidefloat}{movesidefloat} \setinterfacecommand{namedconstruction}{namedconstruction} \setinterfacecommand{nameddescription}{nameddescription} \setinterfacecommand{namedenumeration}{namedenumeration} \setinterfacecommand{navigating}{navigating} \setinterfacecommand{nodimension}{nodimension} \setinterfacecommand{noheaderandfooterlines}{noheaderandfooterlines} \setinterfacecommand{noindenting}{noindenting} \setinterfacecommand{noitem}{noitem} \setinterfacecommand{nolist}{nolist} \setinterfacecommand{nomarking}{nomarking} \setinterfacecommand{nomoreblocks}{nomoreblocks} \setinterfacecommand{nomorefiles}{nomorefiles} \setinterfacecommand{nop}{nop} \setinterfacecommand{nospace}{nospace} \setinterfacecommand{note}{note} \setinterfacecommand{notesymbol}{notesymbol} \setinterfacecommand{notopandbottomlines}{notopandbottomlines} \setinterfacecommand{notsmallcapped}{nocap} \setinterfacecommand{nowhitespace}{nowhitespace} \setinterfacecommand{numberofsubpages}{numberofsubpages} \setinterfacecommand{numbers}{numbers} \setinterfacecommand{outeredgedistance}{outeredgedistance} \setinterfacecommand{outeredgewidth}{outeredgewidth} \setinterfacecommand{outermargindistance}{outermargindistance} \setinterfacecommand{outermarginwidth}{outermarginwidth} \setinterfacecommand{packed}{packed} \setinterfacecommand{page}{page} \setinterfacecommand{pagebreak}{pagebreak} \setinterfacecommand{pagedepth}{pagedepth} \setinterfacecommand{pagenumber}{pagenumber} \setinterfacecommand{pageoffset}{pageoffset} \setinterfacecommand{pagereference}{pagereference} \setinterfacecommand{paperheight}{paperheight} \setinterfacecommand{paperwidth}{paperwidth} \setinterfacecommand{periods}{periods} \setinterfacecommand{placebookmarks}{placebookmarks} \setinterfacecommand{placecombinedlist}{placecombinedlist} \setinterfacecommand{placefloat}{placefloat} \setinterfacecommand{placefootnotes}{placefootnotes} \setinterfacecommand{placeformula}{placeformula} \setinterfacecommand{placeheadnumber}{placeheadnumber} \setinterfacecommand{placeheadtext}{placeheadtext} \setinterfacecommand{placelegend}{placelegend} \setinterfacecommand{placelist}{placelist} \setinterfacecommand{placelistofsynonyms}{placelistofsynonyms} \setinterfacecommand{placelocalfootnotes}{placelocalfootnotes} \setinterfacecommand{placelocalnotes}{placelocalnotes} \setinterfacecommand{placelogos}{placelogos} \setinterfacecommand{placenamedfloat}{placenamedfloat} \setinterfacecommand{placenotes}{placenotes} \setinterfacecommand{placeongrid}{placeongrid} \setinterfacecommand{placeontopofeachother}{placeontopofeachother} \setinterfacecommand{placepagenumber}{placepagenumber} \setinterfacecommand{placerawlist}{placerawlist} \setinterfacecommand{placereferencelist}{placereferencelist} \setinterfacecommand{placeregister}{placeregister} \setinterfacecommand{placerule}{placerule} \setinterfacecommand{placesidebyside}{placesidebyside} \setinterfacecommand{placesubformula}{placesubformula} \setinterfacecommand{placetextvariable}{placetextvariable} \setinterfacecommand{position}{position} \setinterfacecommand{positiontext}{positiontext} \setinterfacecommand{postponenotes}{postponenotes} \setinterfacecommand{postponingnotes}{postponingnotes} \setinterfacecommand{predefinedfont}{predefinedfont} \setinterfacecommand{predefinefont}{predefinefont} \setinterfacecommand{presetdocument}{presetdocument} \setinterfacecommand{prettyprintbuffer}{prettyprintbuffer} \setinterfacecommand{preventmode}{preventmode} \setinterfacecommand{printpaperheight}{printpaperheight} \setinterfacecommand{printpaperwidth}{printpaperwidth} \setinterfacecommand{processblocks}{processblocks} \setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist} \setinterfacecommand{processpage}{processpage} \setinterfacecommand{product}{product} \setinterfacecommand{program}{program} \setinterfacecommand{project}{project} \setinterfacecommand{publication}{publication} \setinterfacecommand{quotation}{quotation} \setinterfacecommand{quote}{quote} \setinterfacecommand{ran}{ran} \setinterfacecommand{redo}{redo} \setinterfacecommand{redoconvertfont}{redoconvertfont} \setinterfacecommand{ref}{ref} \setinterfacecommand{reference}{reference} \setinterfacecommand{referral}{referral} \setinterfacecommand{referraldate}{referraldate} \setinterfacecommand{referring}{referring} \setinterfacecommand{registerfontclass}{registerfontclass} \setinterfacecommand{registerhyphenationexception}{registerhyphenationexception} \setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern} \setinterfacecommand{remark}{remark} \setinterfacecommand{replacefeature}{replacefeature} \setinterfacecommand{reset}{reset} \setinterfacecommand{resetandaddfeature}{resetandaddfeature} \setinterfacecommand{resetcharacteralign}{resetcharacteralign} \setinterfacecommand{resetcharacterkerning}{resetcharacterkerning} \setinterfacecommand{resetcharacterspacing}{resetcharacterspacing} \setinterfacecommand{resetcharacterstripping}{resetcharacterstripping} \setinterfacecommand{resetfeature}{resetfeature} \setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme} \setinterfacecommand{resetfontfallback}{resetfontfallback} \setinterfacecommand{resetfontsolution}{resetfontsolution} \setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures} \setinterfacecommand{resetlocalfloats}{resetlocalfloats} \setinterfacecommand{resetmarking}{resetmarking} \setinterfacecommand{resetmode}{resetmode} \setinterfacecommand{resetnumber}{resetnumber} \setinterfacecommand{resetpath}{resetpath} \setinterfacecommand{resetperiodkerning}{resetperiodkerning} \setinterfacecommand{resetsystemmode}{resetsystemmode} \setinterfacecommand{resettextcontent}{resettextcontent} \setinterfacecommand{resetvisualizers}{resetvisualizers} \setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont} \setinterfacecommand{retestfeature}{retestfeature} \setinterfacecommand{revivefeature}{revivefeature} \setinterfacecommand{rightaligned}{rightaligned} \setinterfacecommand{rightbottombox}{rightbottombox} \setinterfacecommand{rightedgedistance}{rightedgedistance} \setinterfacecommand{rightedgewidth}{rightedgewidth} \setinterfacecommand{rightline}{rightline} \setinterfacecommand{rightmargindistance}{rightmargindistance} \setinterfacecommand{rightmarginwidth}{rightmarginwidth} \setinterfacecommand{romannumerals}{romannumerals} \setinterfacecommand{rotate}{rotate} \setinterfacecommand{savebuffer}{savebuffer} \setinterfacecommand{scale}{scale} \setinterfacecommand{screen}{screen} \setinterfacecommand{selectblocks}{selectblocks} \setinterfacecommand{selectpaper}{selectpaper} \setinterfacecommand{selectversion}{selectversion} \setinterfacecommand{setbigbodyfont}{setbigbodyfont} \setinterfacecommand{setcharacteralign}{setcharacteralign} \setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail} \setinterfacecommand{setcharactercasing}{setcharactercasing} \setinterfacecommand{setcharactercleaning}{setcharactercleaning} \setinterfacecommand{setcharacterkerning}{setcharacterkerning} \setinterfacecommand{setcharacterspacing}{setcharacterspacing} \setinterfacecommand{setcharacterstripping}{setcharacterstripping} \setinterfacecommand{setcurrentfontclass}{setcurrentfontclass} \setinterfacecommand{setfirstline}{setfirstline} \setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign} \setinterfacecommand{setfont}{setfont} \setinterfacecommand{setfontcolorsheme}{setfontcolorsheme} \setinterfacecommand{setfontfeature}{setfontfeature} \setinterfacecommand{setfontsolution}{setfontsolution} \setinterfacecommand{setfontstrut}{setfontstrut} \setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures} \setinterfacecommand{setmainbodyfont}{setmainbodyfont} \setinterfacecommand{setmode}{setmode} \setinterfacecommand{setnote}{setnote} \setinterfacecommand{setnotetext}{setnotetext} \setinterfacecommand{setnumber}{setnumber} \setinterfacecommand{setperiodkerning}{setperiodkerning} \setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign} \setinterfacecommand{setsmallbodyfont}{setsmallbodyfont} \setinterfacecommand{setsystemmode}{setsystemmode} \setinterfacecommand{settextcontent}{settextcontent} \setinterfacecommand{settextvariable}{settextvariable} \setinterfacecommand{setupalign}{setupalign} \setinterfacecommand{setupanswerarea}{setupanswerarea} \setinterfacecommand{setuparranging}{setuparranging} \setinterfacecommand{setupattachment}{setupattachment} \setinterfacecommand{setupbackground}{setupbackground} \setinterfacecommand{setupbackgrounds}{setupbackgrounds} \setinterfacecommand{setupblackrules}{setupblackrules} \setinterfacecommand{setupblank}{setupblank} \setinterfacecommand{setupblock}{setupblock} \setinterfacecommand{setupbodyfont}{setupbodyfont} \setinterfacecommand{setupbodyfontenvironment}{setupbodyfontenvironment} \setinterfacecommand{setupbottom}{setupbottom} \setinterfacecommand{setupbottomtexts}{setupbottomtexts} \setinterfacecommand{setupbuffer}{setupbuffer} \setinterfacecommand{setupbuttons}{setupbuttons} \setinterfacecommand{setupcapitals}{setupcapitals} \setinterfacecommand{setupcaption}{setupcaption} \setinterfacecommand{setupcaptions}{setupcaptions} \setinterfacecommand{setupcharacteralign}{setupcharacteralign} \setinterfacecommand{setupcharacterkerning}{setupcharacterkerning} \setinterfacecommand{setupcharacterspacing}{setupcharacterspacing} \setinterfacecommand{setupclipping}{setupclipping} \setinterfacecommand{setupcolor}{setupcolor} \setinterfacecommand{setupcolors}{setupcolors} \setinterfacecommand{setupcolumns}{setupcolumns} \setinterfacecommand{setupcolumnset}{setupcolumnset} \setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines} \setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart} \setinterfacecommand{setupcombinations}{setupcombinations} \setinterfacecommand{setupcombinedlist}{setupcombinedlist} \setinterfacecommand{setupcomment}{setupcomment} \setinterfacecommand{setupcounter}{setupcounter} \setinterfacecommand{setupdescription}{setupdescription} \setinterfacecommand{setupdescriptions}{setupdescriptions} \setinterfacecommand{setupenumeration}{setupenumeration} \setinterfacecommand{setupenumerations}{setupenumerations} \setinterfacecommand{setupexternalfigures}{setupexternalfigures} \setinterfacecommand{setupfield}{setupfield} \setinterfacecommand{setupfields}{setupfields} \setinterfacecommand{setupfillinlines}{setupfillinlines} \setinterfacecommand{setupfillinrules}{setupfillinrules} \setinterfacecommand{setupfirstline}{setupfirstline} \setinterfacecommand{setupfloat}{setupfloat} \setinterfacecommand{setupfloats}{setupfloats} \setinterfacecommand{setupfloatsplitting}{setupfloatsplitting} \setinterfacecommand{setupfontexpansion}{setupfontexpansion} \setinterfacecommand{setupfontprotrusion}{setupfontprotrusion} \setinterfacecommand{setupfonts}{setupfonts} \setinterfacecommand{setupfontsolution}{setupfontsolution} \setinterfacecommand{setupfooter}{setupfooter} \setinterfacecommand{setupfootertexts}{setupfootertexts} \setinterfacecommand{setupfootnotedefinition}{setupfootnotedefinition} \setinterfacecommand{setupfootnotes}{setupfootnotes} \setinterfacecommand{setupforms}{setupforms} \setinterfacecommand{setupformula}{setupformula} \setinterfacecommand{setupformulas}{setupformulae} \setinterfacecommand{setupframed}{setupframed} \setinterfacecommand{setupframedtext}{setupframedtext} \setinterfacecommand{setupframedtexts}{setupframedtexts} \setinterfacecommand{setuphead}{setuphead} \setinterfacecommand{setupheader}{setupheader} \setinterfacecommand{setupheadertexts}{setupheadertexts} \setinterfacecommand{setupheadnumber}{setupheadnumber} \setinterfacecommand{setupheads}{setupheads} \setinterfacecommand{setupheadtext}{setupheadtext} \setinterfacecommand{setuphyphenation}{setuphyphenation} \setinterfacecommand{setuphyphenmark}{setuphyphenmark} \setinterfacecommand{setupindentedtext}{setupindentedtext} \setinterfacecommand{setupindenting}{setupindenting} \setinterfacecommand{setupinmargin}{setupinmargin} \setinterfacecommand{setupinteraction}{setupinteraction} \setinterfacecommand{setupinteractionbar}{setupinteractionbar} \setinterfacecommand{setupinteractionmenu}{setupinteractionmenu} \setinterfacecommand{setupinteractionscreen}{setupinteractionscreen} \setinterfacecommand{setupinterlinespace}{setupinterlinespace} \setinterfacecommand{setupitemgroup}{setupitemgroup} \setinterfacecommand{setupitemgroups}{setupitemizations} \setinterfacecommand{setupitems}{setupitems} \setinterfacecommand{setuplabeltext}{setuplabeltext} \setinterfacecommand{setuplanguage}{setuplanguage} \setinterfacecommand{setuplayout}{setuplayout} \setinterfacecommand{setuplegend}{setuplegend} \setinterfacecommand{setuplinenote}{setuplinenote} \setinterfacecommand{setuplinenumbering}{setuplinenumbering} \setinterfacecommand{setuplines}{setuplines} \setinterfacecommand{setuplinewidth}{setuplinewidth} \setinterfacecommand{setuplist}{setuplist} \setinterfacecommand{setupmakeup}{setupmakeup} \setinterfacecommand{setupmarginblock}{setupmarginblock} \setinterfacecommand{setupmarginblocks}{setupmarginblocks} \setinterfacecommand{setupmargindata}{setupmargindata} \setinterfacecommand{setupmarginrules}{setupmarginrules} \setinterfacecommand{setupmarking}{setupmarking} \setinterfacecommand{setupmathalignment}{setupmathalignment} \setinterfacecommand{setupnarrower}{setupnarrower} \setinterfacecommand{setupnotation}{setupnotation} \setinterfacecommand{setupnotations}{setupnotations} \setinterfacecommand{setupnote}{setupnote} \setinterfacecommand{setupnotes}{setupnotes} \setinterfacecommand{setupnumber}{setupnumber} \setinterfacecommand{setupnumbering}{setupnumbering} \setinterfacecommand{setupoppositeplacing}{setupoppositeplacing} \setinterfacecommand{setupoutput}{setupoutput} \setinterfacecommand{setuppagecomment}{setuppagecomment} \setinterfacecommand{setuppagenumber}{setuppagenumber} \setinterfacecommand{setuppagenumbering}{setuppagenumbering} \setinterfacecommand{setuppagetransitions}{setuppagetransitions} \setinterfacecommand{setuppalet}{setuppalet} \setinterfacecommand{setuppaper}{setuppaper} \setinterfacecommand{setuppapersize}{setuppapersize} \setinterfacecommand{setupparagraphnumbering}{setupparagraphnumbering} \setinterfacecommand{setupparagraphs}{setupparagraphs} \setinterfacecommand{setupperiodkerning}{setupperiodkerning} \setinterfacecommand{setupplacement}{setupplacement} \setinterfacecommand{setuppositioning}{setuppositioning} \setinterfacecommand{setupprofiles}{setupprofiles} \setinterfacecommand{setupprograms}{setupprograms} \setinterfacecommand{setuppublications}{setuppublications} \setinterfacecommand{setupquote}{setupquote} \setinterfacecommand{setupreferencelist}{setupreferencelist} \setinterfacecommand{setupreferencing}{setupreferencing} \setinterfacecommand{setupregister}{setupregister} \setinterfacecommand{setuprotate}{setuprotate} \setinterfacecommand{setuprule}{setuprule} \setinterfacecommand{setupscreens}{setupscreens} \setinterfacecommand{setupsection}{setupsection} \setinterfacecommand{setupsectionblock}{setupsectionblock} \setinterfacecommand{setupsorting}{setupsorting} \setinterfacecommand{setupspacing}{setupspacing} \setinterfacecommand{setupstartstop}{setupstartstop} \setinterfacecommand{setupstrut}{setupstrut} \setinterfacecommand{setupsubpagenumber}{setupsubpagenumber} \setinterfacecommand{setupsymbolset}{setupsymbolset} \setinterfacecommand{setupsynchronization}{setupsynchronization} \setinterfacecommand{setupsynchronizationbar}{setupsynchronizationbar} \setinterfacecommand{setupsynonyms}{setupsynonyms} \setinterfacecommand{setupsystem}{setupsystem} \setinterfacecommand{setuptab}{setuptab} \setinterfacecommand{setuptables}{setuptables} \setinterfacecommand{setuptabulate}{setuptabulate} \setinterfacecommand{setuptext}{setuptext} \setinterfacecommand{setuptextbackground}{setuptextbackground} \setinterfacecommand{setuptextnote}{setuptextnote} \setinterfacecommand{setuptextposition}{setuptextposition} \setinterfacecommand{setuptextrules}{setuptextrules} \setinterfacecommand{setuptexttexts}{setuptexttexts} \setinterfacecommand{setuptextvariable}{setuptextvariable} \setinterfacecommand{setupthinrules}{setupthinrules} \setinterfacecommand{setuptolerance}{setuptolerance} \setinterfacecommand{setuptop}{setuptop} \setinterfacecommand{setuptoptexts}{setuptoptexts} \setinterfacecommand{setuptype}{setuptype} \setinterfacecommand{setuptyping}{setuptyping} \setinterfacecommand{setupunderbar}{setupunderbar} \setinterfacecommand{setupurl}{setupurl} \setinterfacecommand{setupversions}{setupversions} \setinterfacecommand{setupwhitespace}{setupwhitespace} \setinterfacecommand{setvisualizerfont}{setvisualizerfont} \setinterfacecommand{showbodyfont}{showbodyfont} \setinterfacecommand{showbodyfontenvironment}{showbodyfontenvironment} \setinterfacecommand{showcolor}{showcolor} \setinterfacecommand{showcolorgroup}{showcolorgroup} \setinterfacecommand{showcounter}{showcounter} \setinterfacecommand{showexternalfigures}{showexternalfigures} \setinterfacecommand{showfields}{showfields} \setinterfacecommand{showfont}{showfont} \setinterfacecommand{showfontdata}{showfontdata} \setinterfacecommand{showfontexpansion}{showfontexpansion} \setinterfacecommand{showfontitalics}{showfontitalics} \setinterfacecommand{showfontkerns}{showfontkerns} \setinterfacecommand{showfontparameters}{showfontparameters} \setinterfacecommand{showfontstrip}{showfontstrip} \setinterfacecommand{showfontstyle}{showfontstyle} \setinterfacecommand{showframe}{showframe} \setinterfacecommand{showgrid}{showgrid} \setinterfacecommand{showhyphenationtrace}{showhyphenationtrace} \setinterfacecommand{showkerning}{showkerning} \setinterfacecommand{showlayout}{showlayout} \setinterfacecommand{showmakeup}{showmakeup} \setinterfacecommand{showminimalbaseline}{showminimalbaseline} \setinterfacecommand{showpalet}{showpalet} \setinterfacecommand{showprint}{showprint} \setinterfacecommand{showsetups}{showsetups} \setinterfacecommand{showstruts}{showstruts} \setinterfacecommand{showsymbolset}{showsymbolset} \setinterfacecommand{smallcapped}{cap} \setinterfacecommand{someline}{someline} \setinterfacecommand{somewhere}{somewhere} \setinterfacecommand{space}{space} \setinterfacecommand{specialitem}{specialitem} \setinterfacecommand{splitfloat}{splitfloat} \setinterfacecommand{startalignment}{startalignment} \setinterfacecommand{startbackground}{startbackground} \setinterfacecommand{startcoding}{startcoding} \setinterfacecommand{startcolor}{startcolor} \setinterfacecommand{startcolumnmakeup}{startcolumnmakeup} \setinterfacecommand{startcolumns}{startcolumns} \setinterfacecommand{startcolumnset}{startcolumnset} \setinterfacecommand{startcombination}{startcombination} \setinterfacecommand{startcomponent}{startcomponent} \setinterfacecommand{startdocument}{startdocument} \setinterfacecommand{startenvironment}{startenvironment} \setinterfacecommand{startfigure}{startfigure} \setinterfacecommand{startframed}{startframed} \setinterfacecommand{startglobal}{startglobal} \setinterfacecommand{startline}{startline} \setinterfacecommand{startlinecorrection}{startlinecorrection} \setinterfacecommand{startlinenote}{startlinenote} \setinterfacecommand{startlinenumbering}{startlinenumbering} \setinterfacecommand{startlines}{startlines} \setinterfacecommand{startlocal}{startlocal} \setinterfacecommand{startlocalfootnotes}{startlocalfootnotes} \setinterfacecommand{startmakeup}{startmakeup} \setinterfacecommand{startmarginblock}{startmarginblock} \setinterfacecommand{startmarginrule}{startmarginrule} \setinterfacecommand{startnamedconstruction}{startnamedconstruction} \setinterfacecommand{startnameddescription}{startnameddescription} \setinterfacecommand{startnamedenumeration}{startnamedenumeration} \setinterfacecommand{startnamedmatrix}{startnamedmatrix} \setinterfacecommand{startnamedsection}{startnamedsection} \setinterfacecommand{startnamedsubformulas}{startnamedsubformulas} \setinterfacecommand{startnamedtyping}{startnamedtyping} \setinterfacecommand{startnarrower}{startnarrower} \setinterfacecommand{startopposite}{startopposite} \setinterfacecommand{startoverlay}{startoverlay} \setinterfacecommand{startoverview}{startoverview} \setinterfacecommand{startpacked}{startpacked} \setinterfacecommand{startpositioning}{startpositioning} \setinterfacecommand{startproduct}{startproduct} \setinterfacecommand{startprofile}{startprofile} \setinterfacecommand{startproject}{startproject} \setinterfacecommand{startquotation}{startquotation} \setinterfacecommand{startraster}{startraster} \setinterfacecommand{startsymbolset}{startsymbolset} \setinterfacecommand{startsynchronization}{startsynchronization} \setinterfacecommand{starttable}{starttable} \setinterfacecommand{starttables}{starttables} \setinterfacecommand{starttext}{starttext} \setinterfacecommand{starttextbackground}{starttextbackground} \setinterfacecommand{starttextrule}{starttextrule} \setinterfacecommand{startunpacked}{startunpacked} \setinterfacecommand{startversion}{startversion} \setinterfacecommand{stopalignment}{stopalignment} \setinterfacecommand{stopbackground}{stopbackground} \setinterfacecommand{stopcoding}{stopcoding} \setinterfacecommand{stopcolor}{stopcolor} \setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup} \setinterfacecommand{stopcolumns}{stopcolumns} \setinterfacecommand{stopcolumnset}{stopcolumnset} \setinterfacecommand{stopcombination}{stopcombination} \setinterfacecommand{stopcomponent}{stopcomponent} \setinterfacecommand{stopdocument}{stopdocument} \setinterfacecommand{stopenvironment}{stopenvironment} \setinterfacecommand{stopframed}{stopframed} \setinterfacecommand{stopglobal}{stopglobal} \setinterfacecommand{stopline}{stopline} \setinterfacecommand{stoplinecorrection}{stoplinecorrection} \setinterfacecommand{stoplinenote}{stoplinenote} \setinterfacecommand{stoplinenumbering}{stoplinenumbering} \setinterfacecommand{stoplines}{stoplines} \setinterfacecommand{stoplocal}{stoplocal} \setinterfacecommand{stoplocalfootnotes}{stoplocalfootnotes} \setinterfacecommand{stopmakeup}{stopmakeup} \setinterfacecommand{stopmarginblock}{stopmarginblock} \setinterfacecommand{stopmarginrule}{stopmarginrule} \setinterfacecommand{stopnamedconstruction}{stopnamedconstruction} \setinterfacecommand{stopnameddescription}{stopnameddescription} \setinterfacecommand{stopnamedenumeration}{stopnamedenumeration} \setinterfacecommand{stopnamedmatrix}{stopnamedmatrix} \setinterfacecommand{stopnamedsection}{stopnamedsection} \setinterfacecommand{stopnamedsubformulas}{stopnamedsubformulas} \setinterfacecommand{stopnamedtyping}{stopnamedtyping} \setinterfacecommand{stopnarrower}{stopnarrower} \setinterfacecommand{stopopposite}{stopopposite} \setinterfacecommand{stopoverlay}{stopoverlay} \setinterfacecommand{stopoverview}{stopoverview} \setinterfacecommand{stoppacked}{stoppacked} \setinterfacecommand{stoppositioning}{stoppositioning} \setinterfacecommand{stopproduct}{stopproduct} \setinterfacecommand{stopprofile}{stopprofile} \setinterfacecommand{stopproject}{stopproject} \setinterfacecommand{stopquotation}{stopquotation} \setinterfacecommand{stopraster}{stopraster} \setinterfacecommand{stopsynchronization}{stopsynchronization} \setinterfacecommand{stoptable}{stoptable} \setinterfacecommand{stoptables}{stoptables} \setinterfacecommand{stoptext}{stoptext} \setinterfacecommand{stoptextbackground}{stoptextbackground} \setinterfacecommand{stoptextrule}{stoptextrule} \setinterfacecommand{stopunpacked}{stopunpacked} \setinterfacecommand{stopversion}{stopversion} \setinterfacecommand{stretched}{stretched} \setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter} \setinterfacecommand{stripcharacter}{stripcharacter} \setinterfacecommand{subformulanumber}{subformulanumber} \setinterfacecommand{subpagenumber}{subpagenumber} \setinterfacecommand{subtractfeature}{subtractfeature} \setinterfacecommand{switchtobodyfont}{switchtobodyfont} \setinterfacecommand{switchtorawfont}{switchtorawfont} \setinterfacecommand{sym}{sym} \setinterfacecommand{symbol}{symbol} \setinterfacecommand{symoffset}{symoffset} \setinterfacecommand{synchronizationbar}{synchronizationbar} \setinterfacecommand{synchronize}{synchronize} \setinterfacecommand{tab}{tab} \setinterfacecommand{testcolumn}{testcolumn} \setinterfacecommand{testfeature}{testfeature} \setinterfacecommand{testfeatureonce}{testfeatureonce} \setinterfacecommand{testpage}{testpage} \setinterfacecommand{tex}{tex} \setinterfacecommand{textbackground}{textbackground} \setinterfacecommand{textcolor}{textcolor} \setinterfacecommand{textheight}{textheight} \setinterfacecommand{textnote}{textnote} \setinterfacecommand{textreference}{textreference} \setinterfacecommand{textrule}{textrule} \setinterfacecommand{textvariable}{textvariable} \setinterfacecommand{textwidth}{textwidth} \setinterfacecommand{thefirstcharacter}{thefirstcharacter} \setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize} \setinterfacecommand{theremainingcharacters}{theremainingcharacters} \setinterfacecommand{thinrule}{thinrule} \setinterfacecommand{thinrules}{thinrules} \setinterfacecommand{tolinenote}{tolinenote} \setinterfacecommand{tooltip}{tooltip} \setinterfacecommand{topdistance}{topdistance} \setinterfacecommand{topheight}{topheight} \setinterfacecommand{topspace}{topspace} \setinterfacecommand{totalnumberofpages}{totalnumberofpages} \setinterfacecommand{translate}{translate} \setinterfacecommand{txt}{txt} \setinterfacecommand{typ}{typ} \setinterfacecommand{type}{type} \setinterfacecommand{typebuffer}{typebuffer} \setinterfacecommand{typedefinedbuffer}{typedefinedbuffer} \setinterfacecommand{typefile}{typefile} \setinterfacecommand{typeinlinebuffer}{typeinlinebuffer} \setinterfacecommand{typing}{typing} \setinterfacecommand{unitmeaning}{unitmeaning} \setinterfacecommand{unknown}{unknown} \setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern} \setinterfacecommand{useJSscripts}{useJSscripts} \setinterfacecommand{useURL}{useURL} \setinterfacecommand{useXMLfilter}{useXMLfilter} \setinterfacecommand{useblocks}{useblocks} \setinterfacecommand{usebodyfont}{usebodyfont} \setinterfacecommand{usebodyfontparameter}{usebodyfontparameter} \setinterfacecommand{usecommands}{usecommands} \setinterfacecommand{useencoding}{useencoding} \setinterfacecommand{useexternaldocument}{useexternaldocument} \setinterfacecommand{useexternalfigure}{useexternalfigure} \setinterfacecommand{useexternalfile}{useexternalfile} \setinterfacecommand{useexternalfiles}{useexternalfiles} \setinterfacecommand{useexternalsoundtrack}{useexternalsoundtrack} \setinterfacecommand{usemodule}{usemodule} \setinterfacecommand{usemodules}{usemodules} \setinterfacecommand{usepath}{usedirectory} \setinterfacecommand{usereferences}{usereferences} \setinterfacecommand{usespecials}{usespecials} \setinterfacecommand{usesymbols}{usesymbols} \setinterfacecommand{usetypescript}{usetypescript} \setinterfacecommand{usetypescriptfile}{usetypescriptfile} \setinterfacecommand{useurl}{useurl} \setinterfacecommand{verbatim}{verbatim} \setinterfacecommand{version}{version} \setinterfacecommand{vl}{vl} \setinterfacecommand{weekday}{weekday} \setinterfacecommand{whitespace}{whitespace} \setinterfacecommand{widthspanningtext}{widthspanningtext} \setinterfacecommand{wordright}{wordright} \setinterfacecommand{writebetweenlist}{writebetweenlist} \setinterfacecommand{writetolist}{writetolist} \setinterfacecommand{writetoreferencelist}{writetoreferencelist} \setinterfacecommand{writetoregister}{writetoregister} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/tabl-nte.mkii0000644000175000017500000000576314536300610024674 0ustar hillehille%D \module %D [ file=core-nte, %D version=2009.03.08, %D title=\CONTEXT\ Table Macros, %D subtitle=Natural Tables Extensions, %D author=Hans Hagen \& Wolfgang Schuster, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Table Module / Natural Tables Extensions} \unprotect %D This module is suggested by Wolfgang Schuster who also prototyped %D it and came up with the rationale: %D %D This module provides an easy way to use natural in a similiar %D way as the older table module (based on the \TABLE\ macros) and %D the newer tabulate module. %D %D You can see the advantage in the following table, once created %D with the new macros and once with the normal macros provided %D with the natural table module. %D %D Let us start with the original macros: %D %D \starttyping %D \bTABLE %D \bTR %D \bTD Text 1 \eTD %D \bTD Text 2 \eTD %D \eTR %D \bTR %D \bTD Text 3 \eTD %D \bTD Text 4 \eTD %D \eTR %D \eTABLE %D \stoptyping %D %D Watch how the new macros use less code: %D %D \starttyping %D \startTABLE %D \NC Text 1 \NC Text 2 \NC\NR %D \NC Text 3 \NC Text 4 \NC\NR %D \stopTABLE %D \stoptyping %D %D The actual code differs from the prototype that it does not need %D to collect whole rows and parse them but looks ahead instead. \def\startTABLE {\dosingleempty\dostartTABLE} \def\dostartTABLE[#1]% {\bgroup \bTABLE[#1]% \let\NC\doTABLENC \let\NR\doTABLENR \let\bTR\relax \let\bTD\relax \let\bTH\relax \let\bTN\relax} \def\stopTABLE {\eTABLE \egroup} \newconditional\inTABLEnc \unexpanded\def\doTABLENR {\eTR \setfalse\inTABLEnc} \unexpanded\def\doTABLENC {\futurelet\next\dodoTABLENC} \def\dodoTABLENC {\ifx\next\doTABLENR \else \expandafter\dododoTABLENC \fi} % \long\def\dododoTABLENC#1\NC % {\ifconditional\inTABLEnc\else\settrue\inTABLEnc\parseTR[][]\fi % \parseTD[][]#1\eTD\NC} \long\def\dododoTABLENC#1\NC {\ifconditional\inTABLEnc\else\settrue\inTABLEnc\parseTR[][]\fi \dodoubleempty\parseTD#1\eTD\NC} %D The related structure commands are also available: \unexpanded\def\startTABLEhead{\dosingleempty\dostartTABLEhead} \let\stopTABLEhead\relax \unexpanded\def\startTABLEnext{\dosingleempty\dostartTABLEnext} \let\stopTABLEnext\relax \unexpanded\def\startTABLEbody{\dosingleempty\dostartTABLEbody} \let\stopTABLEbody\relax \unexpanded\def\startTABLEfoot{\dosingleempty\dostartTABLEfoot} \let\stopTABLEfoot\relax \long\def\dostartTABLEhead[#1]#2\stopTABLEhead{\appendtoks\doTABLEsection[#1]{#2}\to\TBLhead} \long\def\dostartTABLEnext[#1]#2\stopTABLEnext{\appendtoks\doTABLEsection[#1]{#2}\to\TBLnext} \long\def\dostartTABLEbody[#1]#2\stopTABLEbody{\appendtoks\doTABLEsection[#1]{#2}\to\TBLbody} \long\def\dostartTABLEfoot[#1]#2\stopTABLEfoot{\appendtoks\doTABLEsection[#1]{#2}\to\TBLfoot} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-003.mkii0000644000175000017500000001367614536300610024426 0ustar hillehille%D \module %D [ file=unic-003, %D version=2005.01.26, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 3, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startunicodevector 3 \ifcase\numexpr#1-126\relax % special greek \strippedcsname \greekquestionmark \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \greektonos \or \strippedcsname \greekdialytikatonos \or \strippedcsname \greekAlphatonos \or \strippedcsname \greekanoteleia \or \strippedcsname \greekEpsilontonos \or \strippedcsname \greekEtatonos \or \strippedcsname \greekIotatonos \or \strippedcsname \unknownchar \or \strippedcsname \greekOmicrontonos \or \strippedcsname \unknownchar \or \strippedcsname \greekUpsilontonos \or \strippedcsname \greekOmegatonos \or \strippedcsname \greekiotadialytikatonos \or % normal greek \strippedcsname \greekAlpha \or \strippedcsname \greekBeta \or \strippedcsname \greekGamma \or \strippedcsname \greekDelta \or \strippedcsname \greekEpsilon \or \strippedcsname \greekZeta \or \strippedcsname \greekEta \or \strippedcsname \greekTheta \or \strippedcsname \greekIota \or \strippedcsname \greekKappa \or \strippedcsname \greekLambda \or \strippedcsname \greekMu \or \strippedcsname \greekNu \or \strippedcsname \greekXi \or \strippedcsname \greekOmicron \or \strippedcsname \greekPi \or \strippedcsname \greekRho \or \strippedcsname \unknownchar \or \strippedcsname \greekSigma \or \strippedcsname \greekTau \or \strippedcsname \greekUpsilon \or \strippedcsname \greekPhi \or \strippedcsname \greekChi \or \strippedcsname \greekPsi \or \strippedcsname \greekOmega \or % special greek \strippedcsname \greekIotadialytika \or \strippedcsname \greekUpsilondialytika \or \strippedcsname \greekalphatonos \or \strippedcsname \greekepsilontonos \or \strippedcsname \greeketatonos \or \strippedcsname \greekiotatonos \or \strippedcsname \greekupsilondialytikatonos \or % normal greek \strippedcsname \greekalpha \or \strippedcsname \greekbeta \or \strippedcsname \greekgamma \or \strippedcsname \greekdelta \or \strippedcsname \greekepsilon \or \strippedcsname \greekzeta \or \strippedcsname \greeketa \or \strippedcsname \greektheta \or \strippedcsname \greekiota \or \strippedcsname \greekkappa \or \strippedcsname \greeklambda \or \strippedcsname \greekmu \or \strippedcsname \greeknu \or \strippedcsname \greekxi \or \strippedcsname \greekomicron \or \strippedcsname \greekpi \or \strippedcsname \greekrho \or \strippedcsname \greekfinalsigma \or \strippedcsname \greeksigma \or \strippedcsname \greektau \or \strippedcsname \greekupsilon \or \strippedcsname \greekphi \or \strippedcsname \greekchi \or \strippedcsname \greekpsi \or \strippedcsname \greekomega \or % special greek \strippedcsname \greekiotadialytika \or \strippedcsname \greekupsilondialytika \or \strippedcsname \greekomicrontonos \or \strippedcsname \greekupsilontonos \or \strippedcsname \greekomegatonos \or \strippedcsname \unknownchar \or \strippedcsname \greekbetaalt \or \strippedcsname \greekthetaalt \or \strippedcsname \unknownchar \or % upsilon hook \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \greekphialt \or \strippedcsname \greekpialt \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or % Sampi \strippedcsname \unknownchar \or % sampi \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or % kappa alt \strippedcsname \greekrhoalt \or \strippedcsname \greeksigmalunate \or \strippedcsname \unknownchar \or \strippedcsname \unknownchar \or \strippedcsname \greekepsilonalt \else \strippedcsname \unknownchar \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-x5.mkii0000644000175000017500000001226214536300610024434 0ustar hillehille%D \module %D [ file=enco-x5, %D version=1999.12.12, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Vietnamese Encoding, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module is derived from the some files Han The Thanh %D prepared for \LATEX. The dual accent support is still %D preliminary, but works ok. \startencoding[x5] \definecharacter textgrave 0 \definecharacter textacute 1 \definecharacter textcircumflex 2 \definecharacter texttilde 3 \definecharacter textdiaeresis 4 \definecharacter texthungarumlaut 5 \definecharacter textring 6 \definecharacter textcaron 7 \definecharacter textbreve 8 \definecharacter textmacron 9 \definecharacter textdotaccent 10 \definecharacter textcedilla 11 \definecharacter textogonek 12 \definecharacter dotlessi 25 \definecharacter DJ 30 \definecharacter dj 31 \defineaccent ` A 128 \defineaccent ' A 129 \defineaccent ~ A 130 \defineaccent h A 131 \defineaccent d A 132 \defineaccent ^ A 133 \defineaccent ` ^A 134 \defineaccent ' ^A 135 \defineaccent ~ ^A 136 \defineaccent h ^A 137 \defineaccent d ^A 138 \defineaccent u A 139 \defineaccent ` uA 140 \defineaccent ' uA 141 \defineaccent ~ uA 142 \defineaccent h uA 143 \defineaccent d uA 144 \defineaccent ` E 145 \defineaccent ' E 146 \defineaccent ~ E 147 \defineaccent h E 148 \defineaccent d E 149 \defineaccent ^ E 150 \defineaccent ` ^E 151 \defineaccent ' ^E 152 \defineaccent ~ ^E 153 \defineaccent h ^E 154 \defineaccent d ^E 155 \defineaccent ` I 156 \defineaccent ' I 157 \defineaccent ~ I 158 \defineaccent h I 159 \defineaccent d I 192 \defineaccent ` O 193 \defineaccent ' O 194 \defineaccent ~ O 195 \defineaccent h O 196 \defineaccent d O 197 \defineaccent ^ O 198 \defineaccent ` ^O 199 \defineaccent ' ^O 200 \defineaccent ~ ^O 201 \defineaccent h ^O 202 \defineaccent d ^O 203 \defineaccent h O 204 \defineaccent ` hO 205 \defineaccent ' hO 206 \defineaccent ~ hO 207 \defineaccent h hO 208 \defineaccent d hO 209 \defineaccent ` U 210 \defineaccent ' U 211 \defineaccent ~ U 212 \defineaccent h U 213 \defineaccent d U 214 \defineaccent h U 215 \defineaccent ` hU 216 \defineaccent ' hU 217 \defineaccent ~ hU 218 \defineaccent h hU 219 \defineaccent d hU 220 \defineaccent ` Y 221 \defineaccent ' Y 222 \defineaccent ~ Y 223 \defineaccent h Y 26 \defineaccent d Y 28 \defineaccent ` a 160 \defineaccent ' a 161 \defineaccent ~ a 162 \defineaccent h a 163 \defineaccent d a 164 \defineaccent ^ a 165 \defineaccent ` ^a 166 \defineaccent ' ^a 167 \defineaccent ~ ^a 168 \defineaccent h ^a 169 \defineaccent d ^a 170 \defineaccent u a 171 \defineaccent ` ua 172 \defineaccent ' ua 173 \defineaccent ~ ua 174 \defineaccent h ua 175 \defineaccent d ua 176 \defineaccent ` e 177 \defineaccent ' e 178 \defineaccent ~ e 179 \defineaccent h e 180 \defineaccent d e 181 \defineaccent ^ e 182 \defineaccent ` ^e 183 \defineaccent ' ^e 184 \defineaccent ~ ^e 185 \defineaccent h ^e 186 \defineaccent d ^e 187 \defineaccent ` i 188 \defineaccent ' i 189 \defineaccent ~ i 190 \defineaccent h i 191 \defineaccent d i 224 \defineaccent ` o 225 \defineaccent ' o 226 \defineaccent ~ o 227 \defineaccent h o 228 \defineaccent d o 229 \defineaccent ^ o 230 \defineaccent ` ^o 231 \defineaccent ' ^o 232 \defineaccent ~ ^o 233 \defineaccent h ^o 234 \defineaccent d ^o 235 \defineaccent h o 236 \defineaccent ` ho 237 \defineaccent ' ho 238 \defineaccent ~ ho 239 \defineaccent h ho 240 \defineaccent d ho 241 \defineaccent ` u 242 \defineaccent ' u 243 \defineaccent ~ u 244 \defineaccent h u 245 \defineaccent d u 246 \defineaccent h u 247 \defineaccent ` hu 248 \defineaccent ' hu 249 \defineaccent ~ hu 250 \defineaccent h hu 251 \defineaccent d hu 252 \defineaccent ` y 253 \defineaccent ' y 254 \defineaccent ~ y 255 \defineaccent h y 27 \defineaccent d y 29 \stopencoding \endinput % \startencoding [x5] % % \definecharacter aa {\xfiveencodedaa} % \definecharacter AA {\xfiveencodedAA} % % \stopencoding % % \unprotect % % \def\xfiveencodedaa% % {\accent23a} % % \def\xfiveencodedAA% % {\leavevmode % \setbox\zerocount\hbox{h}% % \dimen@\ht\zerocount % \advance\dimen@ -1ex % \rlap{\raise.67\dimen@\hbox{\char23}}A} % % \protect % % \quotesinglbase 13 % \guilsinglleft 14 % \guilsinglright 15 % \textquotedblleft 16 % \textquotedblright 17 % \quotedblbase 18 % \guillemotleft 19 % \guillemotright 20 % \textendash 21 % \textemdash 22 % \textcompwordmark 23 % \textperthousand \% \char 24 % \textpertenthousand \%\char 24\char 24 % \textvisiblespace 32 % \textquotedbl `\" % \textdollar `\$ % \textquoteright `\' % \textless `\< % \textgreater `\> % \textbackslash `\ % \textasciicircum `\^ % \textunderscore 95 % \textquoteleft `\` % \textbraceleft `\{ % \textbar `\| % \textbraceright `\} % \textasciitilde `\~ context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-fil.mkii0000644000175000017500000001053114536300610024666 0ustar hillehille%D \module %D [ file=cont-fil, %D version=1997.11.15, %D title=\CONTEXT\ Miscellaneous Macros, %D subtitle=File Synonyms, %D author=J. Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt File Synonyms} \definefilesynonym [chemie] [chemic] \definefilesynonym [chemics] [chemic] \definefilesynonym [unit] [units] \definefilesynonym [eenheid] [units] \definefilesynonym [einheit] [units] \definefilesynonym [pstric] [pstricks] \definefilesynonym [pstrick] [pstricks] \definefilesynonym [finance] [financ] \definefilesynonym [con-01] [contml] % will go away %definefilesynonym [sch-base] [sch-00] %definefilesynonym [sch-make] [sch-01] \definefilesynonym [dir-make] [dir-01] \definefilesynonym [dir-identify] [dir-05] \definefilesynonym [xml-format] [xml-01] \definefilesynonym [xml-pretty] [xml-02] \definefilesynonym [xml-analyze] [xml-11] \definefilesynonym [int-load] [set-11] \definefilesynonym [int-make] [set-12] \definefilesynonym [fig-base] [fig-00] \definefilesynonym [fig-make] [fig-01] \definefilesynonym [fig-fake] [fig-02] \definefilesynonym [fig-missing] [fig-06] \definefilesynonym [exi-interface] [exi-21] \definefilesynonym [res-make] [res-01] \definefilesynonym [res-base] [res-04] \definefilesynonym [res-crop] [res-07] \definefilesynonym [res-trace] [res-08] \definefilesynonym [res-log] [res-09] \definefilesynonym [res-identify] [res-12] \definefilesynonym [med-show] [res-50] \definefilesynonym [pre-general] [pre-00] \definefilesynonym [pre-original] [pre-01] \definefilesynonym [pre-green] [pre-02] \definefilesynonym [pre-funny] [pre-03] \definefilesynonym [pre-colorful] [pre-04] \definefilesynonym [pre-fuzzy] [pre-05] \definefilesynonym [pre-polish] [pre-06] \definefilesynonym [pre-spider] [pre-07] \definefilesynonym [pre-wonder] [pre-08] \definefilesynonym [pre-windows] [pre-09] \definefilesynonym [pre-grow] [pre-10] \definefilesynonym [pre-stack] [pre-11] \definefilesynonym [pre-arrows] [pre-12] \definefilesynonym [pre-writing] [pre-13] \definefilesynonym [pre-split] [pre-14] \definefilesynonym [pre-balls] [pre-15] \definefilesynonym [pre-knot] [pre-16] \definefilesynonym [pre-weird] [pre-17] \definefilesynonym [pre-shade] [pre-18] \definefilesynonym [pre-organic] [pre-19] \definefilesynonym [pre-speckle] [pre-20] \definefilesynonym [pre-zoom] [pre-21] \definefilesynonym [pre-cycle] [pre-22] \definefilesynonym [pre-super] [pre-23] %definefilesynonym [pre-more] [pre-24] %definefilesynonym [pre-more] [pre-25] \definefilesynonym [pre-more] [pre-26] %definefilesynonym [pre-more] [pre-27] %definefilesynonym [pre-more] [pre-28] %definefilesynonym [pre-more] [pre-29] %definefilesynonym [pre-more] [pre-30] \definefilesynonym [pre-stepwise] [pre-60] \definefilesynonym [pre-stepper] [pre-61] \definefilesynonym [pre-punk] [pre-70] \definefilesynonym [pre-random] [pre-71] \definefilesynonym [abr-pseudocaps] [abr-01] \definefilesynonym [abr-smallcaps] [abr-02] \definefilesynonym [abr-03] [abr-01] \definefilesynonym [abr-04] [abr-01] \definefilesynonym [chinese] [chi-00] \definefilesynonym [japanese] [jap-00] %definefilesynonym [chi-simplified] [chi-01] %definefilesynonym [chi-traditional] [chi-02] \definefilesynonym [greek] [grk-00] \definefilesynonym [unic-chi] [unic-cjk] \definefilesynonym [unic-jap] [unic-cjk] %definefilesynonym [practexjournal] [ptj-01] \definefilesynonym [pracjourn] [ptj-01] \definefilesynonym [maps] [map-10] \definefilesynonym [map-se] [map-10] % for some time \definefilesynonym [mml] [mathml] \definefilesynonym [cml] [chemml] \definefilesynonym [letter] [cor-01] \definefilesynonym [memo] [cor-02] \definefilesynonym [syn-01] [syntax] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-exp.mkii0000644000175000017500000000540414536300610024706 0ustar hillehille%D \module %D [ file=unic-exp, %D version=2002.12.05, %D title=\CONTEXT\ \UNICODE\ Support, %D subtitle=Expansion, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Unicode Support / Expansion)} %D \macros %D {expandunivector} %D %D The \type {\expandunivector} macro can be used to expand %D vectors, which leads to a faster run in case of documents %D with lots of \UTF-8 code. \unprotect \def\expandunivector[#1]% {\processcommalist[#1]\doexpandunivector} \def\doexpandunivector#1% {\ifcsname\@@univector#1\endcsname \ifcsname\@@univector\@@univector#1\endcsname\else \writestatus{unicode}{expanding vector #1}% \setvalue{\@@univector\@@univector#1}{\expandedunivector{#1}}% \dorecurse{255} {\@EA\ifx\csname\csname\@@univector#1\endcsname\recurselevel\endcsname\unknownchar % skip \else \@EA\let\csname\@@univector\@@univector#1:\recurselevel\@EA\endcsname \csname\csname\@@univector#1\endcsname\recurselevel\endcsname \fi}% \letbeundefined{\@@univector#1}% \fi \fi} \def\expandedunivector#1#2% {\ifcsname\@@univector\@@univector#1:\number#2\endcsname \@@univector\@@univector#1:\number#2% \else \@@unknownchar \fi} %D For this purpose, we need to redefine the resolver. \def\doutfunihash#1#2% {\csname \@@univector \ifcsname\@@univector\@@univector#1\endcsname \@@univector#1\else \ifcsname\@@univector #1\endcsname #1\else \s!unknown\fi\fi \endcsname{\utfmod{#2}}} \setvalue{\@@univector\s!unknown}#1% {\@@unknownchar} \def\doutfunihashglyph#1#2#3% div mod raw {\csname utf!\ifnum#3<\utf@i1\else \ifcsname\@@unicommand#1\endcsname2\else \ifcsname\@@univector\@@univector#1\endcsname3\else \ifcsname\@@univector #1\endcsname4\else 5\fi\fi\fi\fi !\endcsname{#1}{#2}} \setvalue{utf!1!}#1{\unicodeasciicharacter} % {#2} \setvalue{utf!2!}#1{\csname\@@unicommand#1\endcsname} % {#2} \setvalue{utf!3!}#1#2{\csname\csname\@@univector\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up \setvalue{utf!4!}#1#2{\csname\csname\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up \setvalue{utf!5!}#1#2{\unicodeunknowncharacter} % \let\utfunihash\utfunihashglyph %D Let's use it: \expandunivector[0,1,2,3,4,5,30,31,32,33,34,37,39] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-ibm.mkii0000644000175000017500000000422114536300610024645 0ustar hillehille%D \module %D [ file=regi-ibm, %D version=1995.01.01, %D title=\CONTEXT\ Encoding Macros, %D subtitle=The Good Old MSDOS IBM codepage, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module activates the \cap{IBM PC} high \ASCII\ %D characters, such as and . \startregime [ibm] \defineactivetoken 145 {\aeligature} % \defineactivetoken 146 {\AEligature} % \defineactivetoken 152 {\ijligature} % \defineactivetoken 225 {\ssharp} % \defineactivetoken 160 {\aacute} % \defineactivetoken 130 {\eacute} % \defineactivetoken 144 {\Eacute} % \defineactivetoken 161 {\iacute} % \defineactivetoken 162 {\oacute} % \defineactivetoken 163 {\uacute} % \defineactivetoken 135 {\ccedilla} % \defineactivetoken 128 {\Ccedilla} % \defineactivetoken 132 {\adiaeresis} % \defineactivetoken 142 {\Adiaeresis} % \defineactivetoken 137 {\ediaeresis} % \defineactivetoken 139 {\idiaeresis} % \defineactivetoken 148 {\odiaeresis} % \defineactivetoken 153 {\Odiaeresis} % \defineactivetoken 129 {\udiaeresis} % \defineactivetoken 154 {\Udiaeresis} % \defineactivetoken 164 {\ntilde} % \defineactivetoken 165 {\Ntilde} % \defineactivetoken 134 {\aring} % \defineactivetoken 143 {\Aring} % \defineactivetoken 131 {\acircumflex} % \defineactivetoken 136 {\ecircumflex} % \defineactivetoken 140 {\icircumflex} % \defineactivetoken 147 {\ocircumflex} % \defineactivetoken 150 {\ucircumflex} % \defineactivetoken 133 {\agrave} % \defineactivetoken 138 {\egrave} % \defineactivetoken 141 {\igrave} % \defineactivetoken 149 {\ograve} % \defineactivetoken 151 {\ugrave} % \stopregime % todo \startregime [ibm] \defineactivetoken {\ifvmode\leavevmode\fi\leftguillemot\prewordbreak} \defineactivetoken {\prewordbreak\rightguillemot} \stopregime \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mxn.mkii0000644000175000017500000000747514536300610024733 0ustar hillehille\defineMMLsynonym gnapprox gnap \defineMMLsynonym gneq gne \defineMMLsynonym gneqq gnE \defineMMLsynonym gvertneqq gvnE \defineMMLsynonym lnapprox lnap \defineMMLsynonym lneq lne \defineMMLsynonym lneqq lnE \defineMMLsynonym lvertneqq lvnE \defineMMLsynonym napprox nap \defineMMLsynonym ngeq nge \defineMMLsynonym ngeqq ngE \defineMMLsynonym ngeqslant nges \defineMMLsynonym ngtr ngt \defineMMLsynonym nleq nle \defineMMLsynonym nleqq nlE \defineMMLsynonym nleqslant nles \defineMMLsynonym nless nlt \defineMMLsynonym NotCongruent nequiv \defineMMLsynonym NotDoubleVerticalBar npar \defineMMLsynonym NotGreater ngt \defineMMLsynonym NotGreaterEqual nge \defineMMLsynonym NotGreaterFullEqual ngE \defineMMLsynonym NotGreaterGreater nGtv \defineMMLsynonym NotGreaterLess ntvgl \defineMMLsynonym NotGreaterSlantEqual nges \defineMMLsynonym NotGreaterTilde ngsim \defineMMLsynonym NotLeftTriangle nltri \defineMMLsynonym NotLeftTriangleEqual nltrie \defineMMLsynonym NotLess nlt \defineMMLsynonym NotLessEqual nle \defineMMLsynonym NotLessFullEqual nlE \defineMMLsynonym NotLessGreater ntvlg \defineMMLsynonym NotLessLess nLtv \defineMMLsynonym NotLessSlantEqual nles \defineMMLsynonym NotLessTilde nlsim \defineMMLsynonym NotPrecedes npr \defineMMLsynonym NotPrecedesEqual npre \defineMMLsynonym NotPrecedesSlantEqual nprcue \defineMMLsynonym NotRightTriangle nrtri \defineMMLsynonym NotRightTriangleEqual nrtrie \defineMMLsynonym NotSquareSubsetEqual nsqsube \defineMMLsynonym NotSquareSupersetEqual nsqsupe \defineMMLsynonym NotSubset vnsub \defineMMLsynonym NotSucceeds nsc \defineMMLsynonym NotSucceedsEqual nsce \defineMMLsynonym NotSucceedsSlantEqual nsccue \defineMMLsynonym NotSuperset vnsup \defineMMLsynonym NotTilde nsim \defineMMLsynonym NotTildeEqual nsime \defineMMLsynonym NotTildeFullEqual ncong \defineMMLsynonym NotTildeTilde nap \defineMMLsynonym NotVerticalBar nmid \defineMMLsynonym nparallel npar \defineMMLsynonym nprec npr \defineMMLsynonym npreceq npre \defineMMLsynonym nshortmid nsmid \defineMMLsynonym nshortparallel nspar \defineMMLsynonym nsimeq nsime \defineMMLsynonym nsubset vnsub \defineMMLsynonym nsubseteq nsube \defineMMLsynonym nsubseteqq nsubE \defineMMLsynonym nsucc nsc \defineMMLsynonym nsucceq nsce \defineMMLsynonym nsupset vnsup \defineMMLsynonym nsupseteq nsupe \defineMMLsynonym nsupseteqq nsupE \defineMMLsynonym ntriangleleft nltri \defineMMLsynonym ntrianglelefteq nltrie \defineMMLsynonym ntriangleright nrtri \defineMMLsynonym ntrianglerighteq nrtrie \defineMMLsynonym precnapprox prnap \defineMMLsynonym precneqq prnE \defineMMLsynonym precnsim prnsim \defineMMLsynonym subsetneq subne \defineMMLsynonym subsetneqq subnE \defineMMLsynonym succnapprox scnap \defineMMLsynonym succneqq scnE \defineMMLsynonym succnsim scnsim \defineMMLsynonym supsetneq supne \defineMMLsynonym supsetneqq supnE \defineMMLsynonym varsubsetneq vsubne \defineMMLsynonym varsubsetneqq vsubnE \defineMMLsynonym varsupsetneq vsupne \defineMMLsynonym varsupsetneqq vsupnE context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-new.mkii0000644000175000017500000006327214567411714024733 0ustar hillehille%D \module %D [ file=cont-new, %D version=1995.10.10, %D title=\CONTEXT\ Miscellaneous Macros, %D subtitle=New Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \newcontextversion{2024.02.27 09:18} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new %D features. \unprotect % it's about time to clean up this file ... \writestatus\m!systems{beware: some patches loaded from cont-new.mkii} % \ifx\pdfmapfile \undefined \else \pdfmapfile{ } \fi % \font\f=dummyfont \rpcode\f0=500 \hbox{..}\char0 % todo: mp-new % caption: grid=top|bottom in xml defs \def\fastscale#1% {\begingroup \ifnum#1=1000\relax \setfalse\scaleboxdone \else \settrue\scaleboxdone \edef\finalscaleboxxscale{\withoutpt\the\dimexpr#1pt/1000\relax}% \let\finalscaleboxyscale\finalscaleboxxscale \fi \dowithnextbox{\doscaleboxindeed\flushnextbox\endgroup}\hbox} % \setupcaption [figure] [align=flushleft] % \setupcaption [figure-1] [align=flushleft,leftmargin=10mm] % \setupcaption [figure-2] [align=flushleft,leftmargin=10mm,rightmargin=-10mm,width=\textwidth] % % \startsetups somefigure % \ifdim\floatsetupwidth>\textwidth % \placesetupfloat[figure-2] % \else % \placesetupfloat[figure-1] % \fi % \stopsetups % % \placefloatwithsetups[somefigure]{}{\externalfigure[dummy][width=5cm,height=2cm]} \def\placefloatwithsetups {\dotripleempty\doplacefloatwithsetups} \long\def\doplacefloatwithsetups[#1][#2][#3]#4% {\def\floatsetupcaption {#4}% \def\floatsetupcontent {\copy\nextbox}% \def\floatsetupwidth {\wd\nextbox}% \def\floatsetupheight {\ht\nextbox}% \def\placesetupfloat[##1]{\placefloat[##1][#2][#3]{#4}{\floatsetupcontent}}% #4 and not \floatsetupcaption (unexpanded) \dowithnextbox{\setups[#1]}\vbox} \def\dividedsize#1#2#3% size gap n {\dimexpr \ifnum\dimexpr#1\relax>\plusone (\dimexpr#1\relax-\numexpr#3-1\relax\dimexpr#2\relax)/#3\else#1% \fi \relax} % \setuplabeltext[\s!itemcount1={{I(},{)}}] % \def\labeledcountervalue#1{\labeltexts{#1}{\countervalue{#1}}} \def\singlewidened #1{\hbox spread 1em{\hss#1\hss}} \def\complexwidened[#1]#2{\hbox spread #1{\hss#2\hss}} \definecomplexorsimple\widened % todo % % \def\definelocation{\dodoubleargument\dodefinelocation} % \def\dodefinelocation[#1][#2]{\setvalue{loc:#1}{#2}} % % \definelocation[lt] [\v!left\v!top] % \definelocation[tl] [\v!left\v!top] % \definelocation[\v!top\v!left][\v!left\v!top] % % \def\getlocation#1{\executeifdefined{loc:#1}{#1}} % just in case we load something from a file (pdfr-ec for instance) \prependtoks \restoreendofline \to \everybeforeshipout % \let\cs\getvalue % no, we want \cs to be czech % experimental so this may change \def\startdescriptions {\dosingleempty\dostartdescriptions} \def\dostartdescriptions[#1]% {\begingroup \def\item{\getvalue{#1}}% \let\dostoppairdescription \donothing \let\@@description \dostartpairdescription \let\@@startsomedescription\dostartsomedescription} \def\stopdescriptions {\dostoppairdescription \endgroup} \def\dostartpairdescription[#1][#2]% {\dostoppairdescription \def\dostoppairdescription{\@@stopdescription{#1}}% \bgroup \def\currentdescription{#1}% \doifelse{\descriptionparameter{\s!do\c!state}}\v!start {\@@makedescription{#1}[#2]{}} {\@@makedescription{#1}[#2]}} \def\dostartsomedescription% #1[#2]#3% {\bgroup \@@makedescription} % {#1}[#2]{#3}} % \starttext % % \definedescription[test] % % \startdescriptions % \test{Foo} Bar bar bar % \test{Foo} Bar bar bar % \test{Foo} Bar bar bar % \stopdescriptions % % \startdescriptions[test] % \item{Foo} Bar bar bar % \item{Foo} Bar bar bar % \item{Foo} Bar bar bar % \stopdescriptions % % \startdescriptions % \starttest{Foo} Bar bar bar \stoptest % \starttest{Foo} Bar bar bar \stoptest % \starttest{Foo} Bar bar bar \stoptest % \stopdescriptions % % \startdescriptions[test] % \item{Foo} Bar bar bar % \item{Foo} Bar bar bar % \item{Foo} Bar bar bar % \stopdescriptions % % \stoptext % to do: % % \def\defineshapesynonym % {\dodoubleargument\dodefineshapesynonym} % % \def\dodefineshapesynonym[#1][#2]% % {\setvalue{shsy:#1}{#2}} % % \def\shapesynonym#1% % {\ifcsname shsy:#1\endcsname % \expandafter\shapesynonym\csname shsy:#1\endcsname\else#1% % \fi} % %\defineshapesynonym[eacute] [e] %\defineshapesynonym[egrave] [e] %\defineshapesynonym[eumlaut [e] %\defineshapesynonym[eogonek][e] % % more reduction % %\defineshapesynonym[e][o] %\defineshapesynonym[w][v] %\defineshapesynonym[m][n] % % \shapesynonym{eacute} % this will be activated when % \newinsert\thispageinsert % <- installinsertion % \def\flushatthispage % {\bgroup % \dowithnextbox{\insert\thispageinsert{\box\nextbox}\egroup}% % \hbox} % \appendtoks % \ifvoid\thispageinsert\else\hbox{\smashedbox\thispageinsert}\fi % \to \everyshipout % \definemarkedpage[nobackgrounds] % \markpage[nobackgrounds] % \doifmarkedpageelse{nobackgrounds} \newcounter\nofmarkedpages \def\definemarkedpage[#1]% {\definetwopasslist{\v!page:#1}} \def\markpage[#1]% looks very much like domarginreference {\iftrialtypesetting\else \doglobal\increment\nofmarkedpages\relax \lazysavetwopassdata{\v!page:#1}{\nofmarkedpages}{\noexpand\realfolio}% \fi} \def\doifmarkedpageelse#1% {\gettwopassdatalist{\v!page:#1}% \expanded{\doifinsetelse{\realfolio}{\twopassdatalist}}} % Just a simple and fast hanger, for usage in macros. \def\setuphanging {\dodoubleempty\getparameters[\??ha]} \setuphanging [\c!distance=.5em] \def\starthanging {\noindent\bgroup \dowithnextbox {\setbox\nextbox\hbox{\flushnextbox\hskip\@@hadistance}% \hangindent\nextboxwd \hangafter\plusone \flushnextbox\ignorespaces} \hbox} \def\stophanging {\endgraf \egroup} % experimental \def\stophangaround {\endgraf \egroup} \def\starthangaround {\noindent\bgroup \dowithnextbox {\ifdim\nextboxht>\strutht\setbox\nextbox\tbox{\flushnextbox}\fi \setbox\nextbox\hbox{\flushnextbox\hskip\@@hadistance}% \getboxheight\scratchdimen\of\box\nextbox \getnoflines\scratchdimen \nextboxht\strutht \nextboxdp\strutdp \hangindent\nextboxwd \hangafter-\noflines \llap{\flushnextbox}\ignorespaces} \hbox} \def\modevalue#1#2#3% {\@EA\ifx\csname\@mode@\systemmodeprefix#1\endcsname\endcsname\enabledmode#2\else#2\fi} \def\systemmodevalue#1% {\modevalue{\systemmodeprefix#1}} % \getmulticolumnlines -> now in cont-loc, to be tested and really needed % \tracefonthandlingtrue % new, still to be improved % % \dorecurse{10} % {\input thuan % \placefigure{}{\framed[height=1.5cm]{test}} % \placefloatplaceholder} \def\placefloatplaceholder {\ifroomforfloat \else \scratchdimen\pagegoal \advance\scratchdimen-\pagetotal \advance\scratchdimen-3\lineheight \ifdim\scratchdimen>\zeropoint \startlinecorrection[blank] \mhbox{\inframed{\labeltexts{placeholder}{\lastcaptiontag}}}% \stoplinecorrection \else \allowbreak \fi \fi} \setuplabeltext [placeholder={, moved}] % etex only, of course we could just parse (scan for \% in string) \newif\ifpercentdimendone \bgroup % usage: \setpercentdimen\somedimen{% or dimen} todo: pct \catcode124=\@@comment \catcode 37=\@@active \gdef\setpercentdimen#1#2| {\xdef\@@expanded{#2}| \ifx\@@expanded\empty\else \bgroup \global\percentdimendonefalse \def\%{\dimexpr#1/100\relax\global\percentdimendonetrue\ignorespaces}| scantokens add's a space \catcode`%=\@@active \catcode`\\=\@@escape \let%\%| \scratchdimen#1| \xdef\@@expanded{\@@expanded\scratchdimen\!!zeropoint}| trick: when 1.2 => .2\scratchdimen and 0pt typeset \startnointerference \global\globalscratchdimen\scantokens\@EA{\@@expanded}| i'm lazy and use etex \stopnointerference \egroup #1\globalscratchdimen \fi} \egroup % TEX alternative, in principle accurate enough and also a bit faster % \bgroup % % \catcode`\%=\@@other % \catcode`\|=\@@comment % % \gdef\setpercentdimen#1#2| % {\beforesplitstring#2\at%\to\ascii % \doifelse\ascii{#2} % {#1=#2} % {\divide#1by100\relax#1=\ascii#1\relax}} | or: {#1=\ascii#1\divide#1by100\relax}} % % \egroup % % \dimen0=1000pt \setpercentdimen{\dimen0}{10%} \the\dimen0 % \dimen0= 100pt \setpercentdimen{\dimen0}{10%} \the\dimen0 % \dimen0= 95pt \setpercentdimen{\dimen0}{10%} \the\dimen0 % \dimen0= 10pt \setpercentdimen{\dimen0}{10%} \the\dimen0 % \dimen0= 1pt \setpercentdimen{\dimen0}{10%} \the\dimen0 \bgroup \obeylines % don't remove %'s ! \gdef\collapsedspace#1% {\ifx#1^^M% \expandafter\collapsedspace \else \space \expandafter#1% \fi} \gdef\collapsespaces {\prependtoksonce\relax\to\everyeof% \ignorelines% \ignoretabs% \let\obeyedspace\collapsedspace% \obeyspaces} \egroup \def\inlinedbox {\bgroup \dowithnextbox {\scratchdimen\nextboxht \advance\scratchdimen\nextboxdp \advance\scratchdimen-\lineheight \divide\scratchdimen\plustwo \advance\scratchdimen\strutdepth \setbox\nextbox\hbox{\lower\scratchdimen\flushnextbox}% \nextboxht\strutht \nextboxdp\strutdp \flushnextbox \egroup}% \hbox} % \readfile{cont-exp}\donothing\donothing % speed up (5-20%) \def\dimenratio#1#2% etex only {\withoutpt\the\dimexpr2\dimexpr(#1)/\dimexpr(#2)/32768\relax\relax} \def\doxprecurse#1#2% {\ifnum#1=\zerocount % no \ifcase \expandafter\gobblethreearguments \else #2\expandafter\expandafter\expandafter\doxprecurse\expandafter \fi\expandafter{\the\numexpr#1-1\relax}{#2}} \def\buttonframed{\dodoubleempty\localframed[\??bt]} % goodie \unexpanded\def\asciistr#1{\dontleavehmode{\defconvertedargument\ascii{#1}\verbatimfont\ascii}} \def\shapefill{\vskip\zeropoint\!!plus\lineheight\!!minus\lineheight\relax} \let\normaltype\type \ifx\scantextokens\undefined \ifx\scantokens\undefined \unexpanded\def\retype#1{\dontleavehmode{\defconvertedargument\ascii{#1}\@EA\normaltype\@EA{\ascii}}} \else \unexpanded\def\retype#1{\dontleavehmode\scantokens{\normaltype{#1}\ignorespaces}\relax} \fi \else \unexpanded\def\retype#1{\dontleavehmode\scantextokens{\normaltype{#1}}} \fi \def\simplifytype{\let\type\retype} % \ruledhbox % {\startignorespaces % \def\oeps{a} % \startignorespaces % \def\oeps{a} % \stopignorespaces % \def\oeps{a} % \stopignorespaces % \oeps} \newsignal\boissignal \newcount \boislevel \long\def\startignorespaces {\advance\boislevel\plusone \ifcase\boislevel\or \ifhmode \hskip\boissignal \fi \fi \ignorespaces} \long\def\stopignorespaces {\ifcase\boislevel\or \ifhmode \doloop {\ifdim\lastskip=\zeropoint \exitloop \else\ifdim\lastskip=\boissignal \unskip \exitloop \else \unskip \fi\fi}% \fi \fi \advance\boislevel\minusone} \def\minimalhbox#1#% {\dowithnextbox {\bgroup \setbox\scratchbox\hbox#1{\hss}% \ifdim\nextboxwd<\wd\scratchbox\nextboxwd\wd\scratchbox\fi \flushnextbox \egroup} \hbox} % \def\dodimchoice#1#2#3% % {\ifx#3\relax % #1\@EA\gobbleuntilrelax % \else\ifdim#1#2% % #3\@EAEAEA\gobbleuntilrelax % \else % \@EAEAEA\dodimchoice % \fi\fi{#1}} % \def\donumchoice#1#2#3% % {\ifx#3\relax % #1\@EA\gobbleuntilrelax % \else\ifnum#1#2% % #3\@EAEAEA\gobbleuntilrelax % \else % \@EAEAEA\dodimchoice % \fi\fi{#1}} % \def\dimchoice#1#2{\dodimchoice{#1}#2\empty\relax} % \def\numchoice#1#2{\donumchoice{#1}#2\empty\relax} \def\gobbleuntilempty#1\empty{} \def\dodimchoice#1#2#3% {\ifdim#1#2% #3\@EA\gobbleuntilempty \else \@EA\dodimchoice \fi{#1}} \def\donumchoice#1#2#3% {\ifnum#1#2% #3\@EA\gobbleuntilempty \else \@EA\dodimchoice \fi{#1}} \def\dimchoice#1#2{\dodimchoice{#1}#2{=#1}{#1}\empty} \def\numchoice#1#2{\donumchoice{#1}#2{=#1}{#1}\empty} % \the\dimexpr(\dimchoice {7pt}{{<10pt}{8pt}{<12pt}{9pt}{<15pt}{10pt}{=11pt}{12pt}}) % \the\dimexpr(\dimchoice{11pt}{{<10pt}{8pt}{<12pt}{9pt}{<15pt}{10pt}{=11pt}{12pt}}) % \the\dimexpr(\dimchoice{14pt}{{<10pt}{8pt}{<12pt}{9pt}{<15pt}{10pt}{=11pt}{12pt}}) \def\showsetupsdefinition[#1]{\showvalue{\??su:#1}} % temp hack for debugging % will be a MyWay % % \setuplayout[grid=yes] \setupcaption[figure][inbetween=] \useMPlibrary[dum] \setupcolors[state=start] % % \starttext \showgrid \showstruts % % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=yes]} % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=fit]} % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=height]} % \input ward % \page % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=yes]} % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=fit]} % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=height]} % \input ward % \page % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=yes]} % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=fit]} % \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=height]} % \input ward % \page % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=yes]} % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=fit]} % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=height]} % \input ward % \page % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=yes]} % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=fit]} % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=height]} % \input ward % \page % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=yes]} % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=fit]} % \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=height]} % \input ward % % \stoptext % funny, as field action with e.g. dissolve ... only the field dissolves, bug? \setglobalsystemreference\rt!exec{Transition}{transition} %def\PDFexecutetransition {/Trans /Trans <>} \def\PDFexecutetransition {/Trans /Trans <<\executeifdefined{PDFpage\argumentA}\PDFpagereplace>>} % new, continuous blocks, \som \par \startdoorlopendblok ... % \startitemize % \item bagger % \item bagger % \item \startdoorlopendblok bagger \stopdoorlopendblok % \item \endgraf \startdoorlopendblok bagger \stopdoorlopendblok % \item \endgraf \startdoorlopendblok \strut bagger \stopdoorlopendblok % \item \startdoorlopendblok % \starttabulate % \NC test \NC test \NC \NR % \NC test \NC test \NC \NR % \NC test \NC test \NC \NR % \stoptabulate % \stopdoorlopendblok % \item test % \stopitemize \def\startdoorlopendblok % for special cases, don't change it too much and don't rely on it {\ifhmode\endgraf\nobreak\fi % don't remove the \nobreak \dowithnextboxcontent {\setlocalhsize \hsize\localhsize \forgetall} {\bgroup \forgeteverypar \forgetparskip \scratchdimen\nextboxht \advance\scratchdimen\nextboxdp \getnoflines\scratchdimen \advance\scratchdimen-\strutheight \setbox\nextbox\hbox{\lower\scratchdimen\box\nextbox}% \ht\nextbox\strutheight \dp\nextbox\strutdepth \setbox\nextbox\vbox {\indent\box\nextbox \endgraf \nobreak \advance\noflines\minusone \dorecurse\noflines{\crlf\nobreak}}% \verticalstrut \endgraf \nobreak \offinterlineskip \kern-2\lineheight % 2\lineheight when no vertical struts in main \vbox \nobreak \unvbox\nextbox \prevdepth\strutdepth % evt (eerst testen) een signal zodat een direct volgend blok goed gaat) \egroup} \vbox\bgroup \vskip-\lineheight \verticalstrut\endgraf \insidefloattrue \doinhibitblank} % beware, no \inhibitblank ! ! ! ! ! ! \def\stopdoorlopendblok {\endgraf\verticalstrut\endgraf\kern-2\lineheight \egroup} \def\tabulaterule % to be redone, not correct {\dotabulaterule {\hrule\!!height.5\scratchdimen\!!depth.5\scratchdimen\relax \doifvalue{\??tt\currenttabulate\c!distance}\v!grid {\kern-\scratchdimen}}} % experimental tm-prikkels % experimental: \synchronizegrid bla bla bla \newcounter\currentgridsync \def\gridsynctag{grs:\currentgridsync} \def\synchronizegrid {\doglobal\increment\currentgridsync \par\prevdepth\zeropoint \nointerlineskip \hpos\gridsynctag{\strut}\par \vskip-\lineheight \nointerlineskip % top of text \scratchdimen\MPy{\v!text:\MPp\gridsynctag}% \advance\scratchdimen\MPh{\v!text:\MPp\gridsynctag}% % move to first baseline \advance\scratchdimen-\topskip % subtract wrong baseline \advance\scratchdimen-\MPy\gridsynctag % get minimal number of lines \advance\scratchdimen\lineheight \getnoflines\scratchdimen % calculate difference \advance\scratchdimen-\noflines\lineheight\relax \scratchdimen-\scratchdimen\relax \ifdim\scratchdimen>\zeropoint \nointerlineskip \advance\scratchdimen-\lineheight \vskip\scratchdimen \dontleavehmode \quad \strut \par %\else % \message{no grid correction: \the\scratchdimen}\wait \fi} % between alignment lines certain rules apply, and even a % simple test can mess up a table, which is why we have a % special test facility % % \ruledvbox % {\starttabulate[|l|p|] % \NC 1test \NC test \NC \NR % \tableifelse{\doifelse{a}{a}}{\NC Xtest \NC test \NC \NR}{}% % \stoptabulate} \long\def\tableifelse#1% {\tablenoalign {#1% {\aftergroup \firstoftwoarguments}% {\aftergroup\secondoftwoarguments}}} \long \def\tableiftextelse#1{\tableifelse{\doiftextelse{#1}}} % experiment, not yet to be used \def\displaybreak {\ifhmode \removeunwantedspaces \ifcase\raggedstatus\hfill\fi \strut\penalty-9999 % \break fails on case (3) \fi} \def\startdisplay{\displaybreak\ignorespaces\startpacked} \def\stopdisplay {\stoppacked\displaybreak\ignorespaces} \def\tightvbox{\dowithnextbox{\nextboxdp\zeropoint\flushnextbox}\vbox} \def\tightvtop{\dowithnextbox{\nextboxht\zeropoint\flushnextbox}\vtop} % what is this stupid macro meant for: \def\hyphenationpoint {\hskip\zeropoint} \def\hyphenated#1% {\bgroup \!!counta\zerocount \def\hyphenated##1{\advance\!!counta\plusone}% \handletokens#1\with\hyphenated \!!countb\plusone \def\hyphenated##1% {##1% \advance\!!countb\plusone\relax \ifnum\!!countb>2 \ifnum\!!countb<\!!counta \hyphenationpoint \fi\fi}% \handletokens#1\with\hyphenated \egroup} \def\obeysupersubletters {\let\super\normalsuper \let\suber\normalsuber \let\normalsuper\letterhat \let\normalsuber\letterunderscore \enablesupersub} \def\obeysupersubmath {\let\normalsuper\letterhat \let\normalsuber\letterunderscore \enablesupersub} %\let\normaltype\type % %\def\type#1% % {\expanded{\normaltype{\detokenize{#1}}}} % {x123 \os x123} {\tfa x123 \os x123} {x123 \tx x123 \os x123} % \definefontsynonym[OldStyle][Serif] % {x123 \os x123} {\tfa x123 \os x123} {x123 \tx x123 \os x123} % testen : % % \appendtoks % \let\registerparoptions\relax % \to \everyforgetall \def\startgridcorrection {\dosingleempty\dostartgridcorrection} \def\dostartgridcorrection[#1]% {\ifgridsnapping \iffirstargument\doifsomething{#1}{\moveongrid[#1]}\fi \snaptogrid\vbox\bgroup \else \startbaselinecorrection \fi} \def\stopgridcorrection {\ifgridsnapping \egroup \else \stopbaselinecorrection \fi} \def\checkgridsnapping {\lineskip\ifgridsnapping\zeropoint\else\normallineskip\fi} \def\startplaatsen {\dosingleempty\dostartplaatsen} \def\dostartplaatsen[#1]% tzt n*links etc {\endgraf \noindent\bgroup \setlocalhsize \hbox to \localhsize\bgroup \doifnot{#1}\v!left\hss \def\stopplaatsen {\unskip\unskip\unskip \doifnot{#1}\v!right\hss \egroup \egroup \endgraf}% \gobblespacetokens} % \startplaatsen[links] bla \stopplaatsen % we don't register the paragraph characteristics, only the % width \appendtoks \setinnerparpositions % see "techniek" for application \to \everytabulate \def\fontclassname#1#2% {\ifcsname\??ff#1#2\endcsname \fontclassname{#1}{\csname\??ff#1#2\endcsname}% \else\ifcsname\??ff#2\endcsname \fontclassname{#1}{\csname\??ff#2\endcsname}% \else #2% \fi\fi} \def\defineclassfontsynonym {\dotripleargument\dodefineclassfontsynonym} \def\dodefineclassfontsynonym[#1][#2][#3]% {\definefontsynonym[#1][\fontclassname{#2}{#3}]} %\definefontsynonym [KopFont] [\fontclassname{officina}{SerifBold}] % %\defineclassfontsynonym [KopFont] [officina] [SerifBold] \def\startcolumnmakeup % don't change {\bgroup \getrawnoflines\textheight % teksthoogte kan topskip hebben, dus raw \scratchdimen\noflines\lineheight \advance\scratchdimen-\lineheight \advance\scratchdimen\topskip \setbox\scratchbox \ifcase\showgridstate\vbox\else\ruledvbox\fi to \scratchdimen\bgroup \forgetall} % ! don't change \def\stopcolumnmakeup {\egroup \dp\scratchbox\zeropoint \wd\scratchbox\textwidth \box\scratchbox \egroup \synchronizehsize} \long\def\startexternalfigure {\dotripleempty\dostartexternalfigure} \long\def\dostartexternalfigure[#1][#2][#3]#4\stopexternalfigure {\gdef\figuredescription{#4}% \externalfigure[#1][#2][#3]% \globallet\figuredescription\empty} \let\figuredescription\empty %% where does this come from, old code probably %% %% %% \newif\ifpagechanged \let\lastchangedpage\empty %% %% \def\checkpagechange#1% %% {\gettwopassdata\s!paragraph %% \pagechangedfalse %% \iftwopassdatafound %% \ifnum\twopassdata>0\getvalue{\s!paragraph:p:#1}\relax %% \pagechangedtrue %% \fi %% \fi %% \ifpagechanged %% \letgvalue{\s!paragraph:p:#1}\twopassdata %% \globallet\lastchangedpage\twopassdata %% \else %% \globallet\lastchangedpage\realfolio %% \fi %% \doparagraphreference} %% %% \def\changedpage#1% %% {\getvalue{\s!paragraph:p:#1}} \newcount\nofprofiled \def\profilemacro#1% {\nofprofiled\zerocount \letvalue{\string#1\string#1}#1% \appendtoks \normalwritestatus\m!systems{profile \string#1: \number\nofprofiled}% \to \everystoptext \unexpanded\def#1% {\global\advance\nofprofiled\plusone \csname\string#1\string#1\endcsname}} % incomplete, will be a special case of float placement \def\startfixed{\dosingleempty\dostartfixed} \def\dostartfixed[#1]% {\expanded{\dowithnextbox{\noexpand\dodofixed{\ifhmode0\else1\fi}{#1}}}% \vbox\bgroup \setlocalhsize} \def\stopfixed {\egroup} \def\dodofixed#1#2% {\ifcase#1\relax \processaction [#2] [ \v!high=>\bbox {\flushnextbox}, \v!low=>\tbox {\flushnextbox}, \v!middle=>\vcenter{\flushnextbox}, \v!lohi=>\vcenter{\flushnextbox}, \s!unknown=>\tbox {\flushnextbox}, \s!default=>\tbox {\flushnextbox}]% \else \startbaselinecorrection \noindent\flushnextbox \stopbaselinecorrection \fi} % \startitemize % % \item \externalfigure[koe][height=2cm] % \item \externalfigure[koe][height=2cm] % \item \externalfigure[koe][height=2cm] % \item \externalfigure[koe][height=2cm] % % \page % % \item \startfixed \externalfigure[koe][height=2cm]\stopfixed % \item \startfixed[high]\externalfigure[koe][height=2cm]\stopfixed % \item \startfixed[low] \externalfigure[koe][height=2cm]\stopfixed % \item \startfixed[lohi]\externalfigure[koe][height=2cm]\stopfixed % % \page % % \item test \startfixed \externalfigure[koe][height=2cm]\stopfixed % \item test \startfixed[high]\externalfigure[koe][height=2cm]\stopfixed % \item test \startfixed[low] \externalfigure[koe][height=2cm]\stopfixed % \item test \startfixed[lohi]\externalfigure[koe][height=2cm]\stopfixed % % \page % % \item test \par \startfixed \externalfigure[koe][height=2cm]\stopfixed % \item test \par \startfixed[high]\externalfigure[koe][height=2cm]\stopfixed % \item test \par \startfixed[low] \externalfigure[koe][height=2cm]\stopfixed % \item test \par \startfixed[lohi]\externalfigure[koe][height=2cm]\stopfixed % % \stopitemize \def\obeyfollowingtoken{{}} % end \cs scanning % \def\comparedimension#1#2% % {\chardef\compresult % \ifdim#1<#2% % \zerocount % \else\ifdim#1<#2% % \plusone % \else % \plustwo % \fi\fi} % \newdimen\roundingeps \roundingeps=10sp % \def\comparedimensioneps#1#2% % {\chardef\compresult % \ifdim\dimexpr(#1-#2)<\roudingeps % \zerocount % \else\ifdim\dimexpr(#2-#1)<\roudingeps % \zerocount % \else\ifdim#1<#2% % \plusone % \else % \plustwo % \fi\fi\fi} %D Next we load a few local optimizations and new features. They %D live on on my machine and are not distributed, but they may end %D up in the distributed files. \enablemode[mkii] \enablemode[*mkii] \long\def\startluacode#1\stopluacode{} \long\def\ctxlua #1{} \def\enabletrackers [#1]{} \def\disabletrackers[#1]{} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-tex.mkii0000644000175000017500000002474514536300610024713 0ustar hillehille%D \module %D [ file=meta-tex, %D version=2006.06.07, %D title=\CONTEXT\ Support Macros, %D subtitle=\METAPOST\ fast text insertion, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Many thanks to Fabrice Popineau and Taco Hoekwater in helping me %D figure out some aspects of the text inclusion method implemented %D here. The following code is derived from a more advanced (and to %D be used) mechanism where \TEX, \METAPOST\ and \LUA\ play together. %D Much of this mechanism was written with running live DVD's of %D the Dave Matthews band in the background (or the corner of my %D screen). % todo: testmacro for empty pic \unprotect \newwrite\TeXtextwrite \def\openTeXtexts {\immediate\openout \TeXtextwrite\currentTeXtext.mpb\relax} \def\closeTeXtexts{\immediate\closeout\TeXtextwrite} \def\currentTeXtext {\jobname-mpgraph} \def\currentTeXstack{mpgtxt} \initializeboxstack\currentTeXstack \newtoks\collectedmptexts \newtoks\everyTeXtexts \chardef\TeXtextsmode\zerocount % no inheritance \long\def\startTeXtexts#1\stopTeXtexts {\global\collectedmptexts\expandafter{\the\collectedmptexts#1}} \def\dostartTeXtexts {\global\setfalse\TeXtextdone \startnointerference \openTeXtexts \ifcase\TeXtextsmode % normally there is no need for this (faster anyway) \or \scantokens\expandafter{\the\everyMPTEXgraphic}% brr \or \the\everyTeXtexts \fi \ifrunMPgraphics \initializeboxstack\currentTeXstack \else \global\let\openTeXtexts\relax \global\let\finishTeXtexts\closeTeXtexts \fi} \def\dostopTeXtexts {\ifrunMPgraphics \closeTeXtexts \fi \stopnointerference} \let\finishTeXtexts\relax \appendtoks \finishTeXtexts \to \everystoptext \newconditional\TeXtextdone % \long\def\TeXtext#1% % {\dowithnextboxcontent % {\setnormalcatcodes} % {\global\settrue\TeXtextdone % \immediate\write\TeXtextwrite{savetxt(#1,\the\wd\nextbox,\the\ht\nextbox,\the\dp\nextbox);}% % \savebox\currentTeXstack{#1}{\box\nextbox}} % \hbox} \long\def\TeXtext {\dosingleempty\doTeXtext} % currently, colors in the converter don't use the color stack % % 0 = nothing, withcolor works ok, but nested colors fail % 1 = local color stack ok % 2 = obey color stack (not yet supported) \chardef\TeXtextcolormode\plusone \def\definetextext[#1]#2{\setvalue{textext@@#1}{#2}} % \definetextext[framed]{\framed} % % \startMPcode % draw \sometxt[framed]{black} rotated 45 ; % \stopMPcode \long\def\doTeXtext[#1]#2#3% {\begingroup \setnormalcatcodes \chardef\activecharactermode\plusone % compensates ** in meta-ini.mkii \endlinechar\minusone \everyeof\emptytoks %\def\ascii{#3}\scantokens\expandafter{\ascii}}% \setbox\nextbox\hbox {\ifcase\TeXtextcolormode \scantokens{\executeifdefined{textext@@#1}\firstofoneargument{#3}}% \else \localcolortrue \startcurrentcolor \scantokens{\executeifdefined{textext@@#1}\firstofoneargument{#3}}% \stopcurrentcolor \fi}% \global\settrue\TeXtextdone \edef\currenttextxt{\number#2}% \executeifdefined{textext::#1}{\getvalue{textext::depth}}% \savebox\currentTeXstack\currenttextxt{\box\nextbox}% \endgroup} \setvalue{textext::depth}{\immediate\write\TeXtextwrite{savetxt(\currenttextxt,\the\nextboxwd,\the\nextboxht,\the\nextboxdp) shifted (0,-\the\nextboxdp);}} \setvalue{textext::nodepth}{\immediate\write\TeXtextwrite{savetxt(\currenttextxt,\the\nextboxwd,\the\nextboxht,\the\nextboxdp);}} \setvalue{textext::d}{\getvalue{textext::depth}} \setvalue{textext::n}{\getvalue{textext::nodepth}} \newbox\mptextbox % \loadmapfile[lm-texnansi.map] % the font is not really used, i.e. nothing ends up in the file \definefontsynonym[MPtxtfont][texnansi-lmtt10] \definefont[localMPtxtfont][MPtxtfont at 10bp] \ifx\getTeXtext\undefined % this took a while to figure out \let\MPtextdata\empty \def\getTeXtext {\ifx\MPtextdata\empty\else \localMPtxtfont \setbox\mptextbox\hbox{\foundbox\currentTeXstack{\number\nofTeXtexts}}% \setbox\scratchbox\hbox{\MPtextdata}% set in meta-pdf.mkii/mkiv \edef\mpwd{\the\dimexpr\MPtextsize\dimexpr\wd\scratchbox/10\relax\relax}% \edef\mpht{\the\dimexpr\MPtextsize\dimexpr\ht\scratchbox/10\relax\relax}% \setbox\mptextbox\hbox{\raise\dp\mptextbox\box\mptextbox}% \dp\mptextbox\zeropoint \scale[\c!width=\mpwd,\c!height=\mpht]{\box\mptextbox}% \fi} \fi \let\nofTeXtexts\!!zerocount \setvalue{handleMPtext00001}% only height in tag (00001) {\setbox\scratchbox\hbox {\obeyMPspecials \edef\nofTeXtexts{\number\MPtextnumber}% \getTeXtext}% \setbox\scratchbox\hbox {\hskip\lastMPmoveX\onebasepoint\raise\lastMPmoveY\onebasepoint \box\scratchbox}% \ht\scratchbox\zeropoint \dp\scratchbox\zeropoint \wd\scratchbox\zeropoint \box\scratchbox} \startMPextensions string txtfile ; txtfile := "\currentTeXtext.mpb" ; string txtfont ; txtfont := "\truefontname{MPtxtfont}" ; string txtpref ; txtpref := "00001::::" ; \stopMPextensions \newcount\metatxtcounter \long\def\dodofiltersometxt#1#2#3% {\ifx#2\empty \else \advance\metatxtcounter\plusone \TeXtext{\the\metatxtcounter}{#1}% \expandafter\filtersometxt \fi#2#3} \long\def\redofiltersometxt[#1]#2% {\advance\metatxtcounter\plusone \TeXtext[#1]{\the\metatxtcounter}{#2}% \filtersometxt} \long\def\filtersometxt#1\sometxt {\doifnextoptionalelse\redofiltersometxt\dodofiltersometxt} % cleaner in mkiv % % \filtersometxt abc\sometxt{def};hij\sometxt{klm};\sometxt{}\empty\relax \long\def\flushTeXtexts#1% {\metatxtcounter\zerocount \dostartTeXtexts \the\collectedmptexts \filtersometxt#1\sometxt{}\empty\relax \dostopTeXtexts \ifconditional\TeXtextdone \immediate\write\MPwrite{loadtxts ; txtnext := 0 ;}% \global\collectedmptexts\emptytoks \fi \metatxtcounter\zerocount} % \long\def\sometxt#1{sometxt(nexttxt)} % to be used in mp definitions, no ; here \long\def\sometxt #1#{\dosometxt} % grab optional [args] \long\def\dosometxt#1{sometxt(nexttxt)} % to be used in mp definitions, no ; here % we redefine the writer: \long\def\writecheckedMPgraphic#1% {\ifforceMPTEXgraphic \global\MPTEXgraphictrue \else \global\MPTEXgraphicfalse \edef\ascii{#1}\defconvertedcommand\MPascii\ascii \the\MPTEXgraphicchecks\relax % \relax is end condition! \fi \flushMPTEXgraphic% % verbatimtex etc \flushTeXtexts{#1}% added \writeMPgraphic{#1}} % potential optimization: pass \ascii \protect \endinput % torture test (will move) \startMPpage numeric a_b_c ; picture p ; pickup pencircle scaled .1pt ; p := \sometxt{Just a \color[blue]{simple} example text.} ; p := image(draw p; draw boundingbox p withcolor red; ) ; p := p rotatedaround(center p, 360*(5/100)) ; draw p ; draw boundingbox p withcolor blue ; currentpicture := currentpicture scaled 20 ; draw boundingbox currentpicture withcolor .5white ; setbounds currentpicture to boundingbox currentpicture enlarged 10pt ; \stopMPpage \startMPpage picture p ; p := \sometxt{\framed[width=fit,align=middle]{\input tufte\relax}} ; draw p rotatedaround(center p, 30) ; \stopMPpage \startMPpage picture p ; p := \sometxt{\framed[width=fit,align=middle]{\input tufte\relax}} ; draw p slanted .5 ; \stopMPpage \dorecurse{10} { \startTeXtexts \TeXtext{\recurselevel}{\ruledhbox{I must be {\green crazy} to implement this}} \stopTeXtexts \startMPpage picture p ; pickup pencircle scaled .1pt ; numeric i ; i := \recurselevel ; p := sometxt(i) ; p := p rotatedaround(center p, 360*(i*5/100)) ; draw p ; draw boundingbox p withcolor blue ; currentpicture := currentpicture scaled 20 ; draw boundingbox currentpicture withcolor .5white ; \stopMPpage } \startTeXtexts \dorecurse{100}{\TeXtext{\recurselevel}{\ruledhbox{\strut interesting \recurselevel}}} \stopTeXtexts \startMPpage picture p ; pickup pencircle scaled .1pt ; for i = 1 upto 100: p := sometxt(i) ; p := p rotatedaround(center p, 360*(i*5/100)) ; draw p ; draw boundingbox p withcolor blue ; endfor ; currentpicture := currentpicture scaled 20 ; draw boundingbox currentpicture withcolor .5white ; \stopMPpage \startTeXtexts \dorecurse{100}{\TeXtext{\recurselevel}{\ruledhbox{\strut interesting \recurselevel}}} \stopTeXtexts \startMPpage picture p ; pickup pencircle scaled .1pt ; for i = 1 step 5 until 100 : p := sometxt(i) ; p := p rotatedaround(center p, 360*(i/100)) ; draw p ; draw boundingbox p withcolor blue ; endfor ; currentpicture := currentpicture scaled 20 ; draw boundingbox currentpicture withcolor .5white ; \stopMPpage \startTeXtexts \dorecurse{20}{\TeXtext{\recurselevel}{\externalfigure[t:/sources/cow.pdf][width=1cm]}} \stopTeXtexts \startMPpage picture p ; pickup pencircle scaled .1pt ; for i = 1 upto 20 : p := sometxt(i) ; p := p shifted (2.5cm,0) rotated (360*(i/20)) ; draw p ; draw boundingbox p withcolor blue ; endfor ; currentpicture := currentpicture scaled 10 ; draw boundingbox currentpicture withcolor .5white ; \stopMPpage \startTeXtexts \dorecurse{200}{\TeXtext{\recurselevel}{\ruledhbox{\strut I must be {\green crazy} \recurselevel}}} \stopTeXtexts \startMPpage picture p ; pickup pencircle scaled .1pt ; numeric i ; i := 100 ; p := sometxt(i) ; p := p rotatedaround(center p, 360*(i*36/100)) ; draw p ; draw boundingbox p withcolor blue ; currentpicture := currentpicture scaled 20 ; draw boundingbox currentpicture withcolor .5white ; \stopMPpage \dorecurse{10}{ \startTeXtexts \dorecurse{200}{\TeXtext{\recurselevel}{\ruledhbox{\strut I must be {\green crazy} \recurselevel}}} \stopTeXtexts \startMPpage picture p ; pickup pencircle scaled .1pt ; j := 10*\recurselevel-9; k := 10*\recurselevel; for i = j upto k: p := sometxt(i) ; p := p rotatedaround(center p, 360*(i/100)) ; draw p ; draw boundingbox p withcolor blue ; endfor ; currentpicture := currentpicture scaled 20 ; draw boundingbox currentpicture withcolor red ; \stopMPpage } context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-ger.mkii0000644000175000017500000006525514536300610024664 0ustar hillehille%D \module %D [ file=lang-ger, %D version=1997.09.03, %D title=\CONTEXT\ Language Macros, %D subtitle=Germanic Languages, %D author=Hans Hagen / Tobias Burnus, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Germanic Languages} %D The framework of this module is set up by Hans Hagen while %D many of the first translations were done by Tobias. Later %D on, corrections were made by users. If you have suggestions, %D or feel that your name missing here, don't hesitate to send %D us an email. %D %D \starttabulate[|lB|l|] %D \NC Norwegian \NC Hans Fredrik Nordhaug \NC \NR %D \NC Danish \NC Arne Jorgensen \NC \NR % check the o %D \NC Afrikaans \NC \NC \NR %D \stoptabulate % Danish, Faeroese, Icelandic, Norwegian, Swedish, German, Yiddish % Afrikaans, Dutch, English, Flemush, Frisian, Plattdeutsch \unprotect \installlanguage [\s!nl] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\lowerleftsingleninequote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\lowerleftdoubleninequote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!day,\ ,\v!month,\ ,\v!year}, \s!mapping={texnansi,ec}, \s!encoding={texnansi,ec}] \installlanguage [\s!en] [\c!spacing=\v!broad, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!month,\ ,\v!day,{,\ },\v!year}, \s!patterns=\s!us, \s!lefthyphenmin=2, \s!righthyphenmin=3] \installlanguage [\s!de] [\c!spacing=\v!packed, \s!lefthyphenmin=3, \s!righthyphenmin=3, \c!leftsentence={\hbox{--~}}, \c!rightsentence={\hbox{~--}}, \c!leftsubsentence={--}, \c!rightsubsentence={--}, \c!leftquote=\lowerleftsingleninequote, \c!rightquote=\upperrightsinglesixquote, \c!leftquotation=\lowerleftdoubleninequote, \c!rightquotation=\upperrightdoublesixquote, \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year}, \s!mapping={texnansi,ec}, \s!encoding={texnansi,ec}] \installlanguage [\s!da] [\c!spacing=\v!packed, \c!leftsentence={\hbox{--\hskip.5em}}, \c!rightsentence={\hbox{\hskip.5em--}}, \c!leftsubsentence={--}, \c!rightsubsentence={--}, \c!leftquote=\lowerleftsingleninequote, \c!rightquote=\upperrightsinglesixquote, \c!leftquotation=\lowerleftdoubleninequote, \c!rightquotation=\upperrightdoublesixquote, \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year}] \installlanguage [\s!sv] [\c!spacing=\v!packed, \c!leftsentence={\hbox{--~}}, \c!rightsentence={\hbox{~--}}, \c!leftsubsentence={--}, \c!rightsubsentence={--}, \c!leftquote=\upperrightsingleninequote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperrightdoubleninequote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!day,\ ,\v!month,\ ,\v!year}] \installlanguage [\s!af] [\c!spacing=\v!packed, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!date={\v!year,\ ,\v!month,\ ,\v!day}, \s!patterns=\s!af] % was nl \installlanguage [\s!nb] [spacing=packed, lefthyphenmin=2, righthyphenmin=2, leftsentence=---, rightsentence=---, leftsubsentence=---, rightsubsentence=---, leftquote=\upperleftsinglesixquote, rightquote=\upperrightsingleninequote, leftquotation=\leftguillemot, rightquotation=\rightguillemot, date={day,{.},\ ,month,\ ,year}, state=stop] \installlanguage [\s!nn] [spacing=packed, lefthyphenmin=2, righthyphenmin=2, leftsentence=---, rightsentence=---, leftsubsentence=---, rightsubsentence=---, leftquote=\upperleftsinglesixquote, rightquote=\upperrightsingleninequote, leftquotation=\leftguillemot, rightquotation=\rightguillemot, date={day,{.},\ ,month,\ ,year}, state=stop] \installlanguage [\s!no] [\s!nb] \installlanguage [\s!norwegian] [\s!nb] \installlanguage [\s!bokmal] [\s!nb] \installlanguage [\s!nynorsk] [\s!nn] %D Extra: % \mainlanguage[en] % \mainlanguage[de] % \mainlanguage[deo] % \mainlanguage[de-de] % \mainlanguage[de-at] % \mainlanguage[de-ch] % % \starttext % Die Herren Meier\index{Meier}, Müller\index{Müller}, Huber\index{Huber} % und Schmidt\index{Schmidt} arbeiten in der gleichen Firma. % % \index{Mass}\index{Mas}\index{Maß}\index{Maße}\index{Masse} % \index{Muller}\index{Mûller} % \index{Hutte}\index{Hütte}\index{Huttf} % \index{paar}\index{Paar} % \index{a}\index{aa}\index{ä}\index{az}\index{aza} % \index{o}\index{oo}\index{ö}\index{oz}\index{oza} % \index{u}\index{uu}\index{ü}\index{uz}\index{uza}\index{üa} % \index{call}\index{chip} % % \subject{Index} \placeindex % \stoptext \installlanguage % old german [deo] [\c!spacing=\v!packed, \c!default=\s!de] \installlanguage [de-de] [\c!spacing=\v!packed, \c!default=\s!de] \installlanguage [de-at] [\c!spacing=\v!packed, \c!default=\s!de, \c!leftquote=\leftguillemot, \c!rightquote=\rightguillemot, \c!leftquotation=\leftguillemot, \c!rightquotation=\rightguillemot] \installlanguage [de-ch] [\c!spacing=\v!packed, \c!default=\s!de] %D And some alternative (but very real) english patterns: \installlanguage [en-gb] [\c!default=\s!en, \s!patterns=\s!gb, \s!lefthyphenmin=3, \s!righthyphenmin=3] \installlanguage [en-us] [\c!default=\s!en, \s!patterns=\s!us] \installlanguage [\s!uk] [\s!en-\s!gb] \installlanguage [\s!us] [\s!en-\s!us] %D For compatibility reasons we also define: %installlanguage [du] [\s!de] % old times context %installlanguage [sp] [\s!es] % old times context /lang-ita \installlanguage [usenglish] [\s!en-\s!us] \installlanguage [ukenglish] [\s!en-\s!gb] \installlanguage [english] [\s!en] \installlanguage [dutch] [\s!nl] \installlanguage [german] [\s!de] \installlanguage [danish] [\s!da] \installlanguage [swedish] [\s!sv] \installlanguage [afrikaans] [\s!af] \setupheadtext [\s!en] [\v!content=Contents] \setupheadtext [\s!nl] [\v!content=Inhoud] \setupheadtext [\s!de] [\v!content=Inhalt] \setupheadtext [\s!da] [\v!content=Indhold] \setupheadtext [\s!sv] [\v!content=Inneh\aring ll] \setupheadtext [\s!af] [\v!content=Inhoud] \setupheadtext [\s!nb] [\v!content=Innhold] \setupheadtext [\s!nn] [\v!content=Innhald] \setupheadtext [\s!en] [\v!tables=Tables] \setupheadtext [\s!nl] [\v!tables=Tabellen] \setupheadtext [\s!de] [\v!tables=Tabellen] \setupheadtext [\s!da] [\v!tables=Tabeller] \setupheadtext [\s!sv] [\v!tables=Tabeller] \setupheadtext [\s!af] [\v!tables=Tabelle] \setupheadtext [\s!nb] [\v!tables=Tabeller] \setupheadtext [\s!nn] [\v!tables=Tabellar] \setupheadtext [\s!en] [\v!figures=Figures] \setupheadtext [\s!nl] [\v!figures=Figuren] \setupheadtext [\s!de] [\v!figures=Abbildungen] \setupheadtext [\s!da] [\v!figures=Figurer] \setupheadtext [\s!sv] [\v!figures=Figurer] \setupheadtext [\s!af] [\v!figures=Figure] \setupheadtext [\s!nb] [\v!figures=Figurer] \setupheadtext [\s!nn] [\v!figures=Figurar] \setupheadtext [\s!en] [\v!graphics=Graphics] \setupheadtext [\s!nl] [\v!graphics=Grafieken] \setupheadtext [\s!de] [\v!graphics=Graphiken] \setupheadtext [\s!da] [\v!graphics=Grafik] \setupheadtext [\s!sv] [\v!graphics=Grafik] \setupheadtext [\s!af] [\v!graphics=Grafieke] \setupheadtext [\s!nb] [\v!graphics=Bilde] \setupheadtext [\s!nn] [\v!graphics=Bilete] \setupheadtext [\s!en] [\v!intermezzi=Intermezzos] \setupheadtext [\s!nl] [\v!intermezzi=Intermezzo's] \setupheadtext [\s!de] [\v!intermezzi=Intermezzi] \setupheadtext [\s!da] [\v!intermezzi=Intermezzoer] \setupheadtext [\s!sv] [\v!intermezzi=Intermezzon] \setupheadtext [\s!af] [\v!intermezzi=Intermezzos] \setupheadtext [\s!nb] [\v!intermezzi=Intermesso] \setupheadtext [\s!nn] [\v!intermezzi=Intermesso] \setupheadtext [\s!en] [\v!index=Index] \setupheadtext [\s!nl] [\v!index=Index] \setupheadtext [\s!de] [\v!index=Index] \setupheadtext [\s!da] [\v!index=Indeks] \setupheadtext [\s!sv] [\v!index=Sakregister] \setupheadtext [\s!af] [\v!index=Indeks] \setupheadtext [\s!nb] [\v!index=Register] \setupheadtext [\s!nn] [\v!index=Register] \setupheadtext [\s!en] [\v!abbreviations=Abbreviations] \setupheadtext [\s!nl] [\v!abbreviations=Afkortingen] \setupheadtext [\s!de] [\v!abbreviations=Abk\uumlaut rzungen] \setupheadtext [\s!da] [\v!abbreviations=Forkortelser] \setupheadtext [\s!sv] [\v!abbreviations=F\oumlaut rkortningar] \setupheadtext [\s!af] [\v!abbreviations=Afkortings] \setupheadtext [\s!nb] [\v!abbreviations=Forkortelser] \setupheadtext [\s!nn] [\v!abbreviations=Forkortingar] \setupheadtext [\s!en] [\v!logos=Logos] \setupheadtext [\s!nl] [\v!logos=Logo's] \setupheadtext [\s!de] [\v!logos=Logos] \setupheadtext [\s!da] [\v!logos=Logoer] \setupheadtext [\s!sv] [\v!logos=Loggor] \setupheadtext [\s!af] [\v!logos=Logos] \setupheadtext [\s!nb] [\v!logos=Logoer] \setupheadtext [\s!nn] [\v!logos=Logoar] \setupheadtext [\s!en] [\v!units=Units] \setupheadtext [\s!nl] [\v!units=Eenheden] \setupheadtext [\s!de] [\v!units=Einheiten] \setupheadtext [\s!da] [\v!units=Enheder] \setupheadtext [\s!sv] [\v!units=Enheter] \setupheadtext [\s!af] [\v!units=Eenhede] \setupheadtext [\s!nb] [\v!units=Enheter] \setupheadtext [\s!nn] [\v!units=Einingar] \setupheadtext [\s!en] [pubs=References] \setupheadtext [\s!nl] [pubs=Literatuur] \setupheadtext [\s!de] [pubs=Literatur] %setupheadtext [\s!da] [pubs=?] %setupheadtext [\s!sv] [pubs=?] %setupheadtext [\s!af] [pubs=?] %setupheadtext [\s!nb] [pubs=?] %setupheadtext [\s!nn] [pubs=?] \setuplabeltext [\s!en] [\v!table=Table ] \setuplabeltext [\s!nl] [\v!table=Tabel ] \setuplabeltext [\s!de] [\v!table=Tabelle ] \setuplabeltext [\s!da] [\v!table=Tabel ] \setuplabeltext [\s!sv] [\v!table=Tabell ] \setuplabeltext [\s!af] [\v!table=Tabel] \setuplabeltext [\s!nb] [\v!table=Tabell ] \setuplabeltext [\s!nn] [\v!table=Tabell ] \setuplabeltext [\s!en] [\v!figure=Figure ] \setuplabeltext [\s!nl] [\v!figure=Figuur ] \setuplabeltext [\s!de] [\v!figure=Abbildung ] \setuplabeltext [\s!da] [\v!figure=Figur ] \setuplabeltext [\s!sv] [\v!figure=Figur ] \setuplabeltext [\s!af] [\v!figure=Figuur ] \setuplabeltext [\s!nb] [\v!figure=Figur ] \setuplabeltext [\s!nn] [\v!figure=Figur ] \setuplabeltext [\s!en] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!nl] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!de] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!da] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!sv] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!af] [\v!intermezzo=Intermezzo ] \setuplabeltext [\s!nb] [\v!intermezzo=Intermesso ] \setuplabeltext [\s!nn] [\v!intermezzo=Intermesso ] \setuplabeltext [\s!en] [\v!graphic=Graphic ] \setuplabeltext [\s!nl] [\v!graphic=Grafiek ] \setuplabeltext [\s!de] [\v!graphic=Graphik ] \setuplabeltext [\s!da] [\v!graphic=Grafik ] \setuplabeltext [\s!sv] [\v!graphic=Grafik ] \setuplabeltext [\s!af] [\v!graphic=Grafiek ] \setuplabeltext [\s!nb] [\v!graphic=Bilde ] \setuplabeltext [\s!nn] [\v!graphic=Bilete ] %D We don't set these here. One can do that in a style. \setuplabeltext [\s!en] [\v!chapter=] % Chapter \setuplabeltext [\s!nl] [\v!chapter=] \setuplabeltext [\s!de] [\v!chapter=] % Kapitel \setuplabeltext [\s!da] [\v!chapter=] \setuplabeltext [\s!sv] [\v!chapter=] \setuplabeltext [\s!af] [\v!chapter=] % Hoofstuk \setuplabeltext [\s!nb] [\v!chapter=] \setuplabeltext [\s!nn] [\v!chapter=] \setuplabeltext [\s!en] [\v!section=] \setuplabeltext [\s!nl] [\v!section=] \setuplabeltext [\s!de] [\v!section=] \setuplabeltext [\s!da] [\v!section=] \setuplabeltext [\s!sv] [\v!section=] \setuplabeltext [\s!af] [\v!section=] % Paragraaf \setuplabeltext [\s!nb] [\v!section=] \setuplabeltext [\s!nn] [\v!section=] \setuplabeltext [\s!en] [\v!subsection=] \setuplabeltext [\s!nl] [\v!subsection=] \setuplabeltext [\s!de] [\v!subsection=] \setuplabeltext [\s!da] [\v!subsection=] \setuplabeltext [\s!sv] [\v!subsection=] \setuplabeltext [\s!af] [\v!subsection=] \setuplabeltext [\s!nb] [\v!subsection=] \setuplabeltext [\s!nn] [\v!subsection=] \setuplabeltext [\s!en] [\v!subsubsection=] \setuplabeltext [\s!nl] [\v!subsubsection=] \setuplabeltext [\s!de] [\v!subsubsection=] \setuplabeltext [\s!da] [\v!subsubsection=] \setuplabeltext [\s!sv] [\v!subsubsection=] \setuplabeltext [\s!af] [\v!subsubsection=] \setuplabeltext [\s!nb] [\v!subsubsection=] \setuplabeltext [\s!nn] [\v!subsubsection=] \setuplabeltext [\s!en] [\v!subsubsubsection=] \setuplabeltext [\s!nl] [\v!subsubsubsection=] \setuplabeltext [\s!de] [\v!subsubsubsection=] \setuplabeltext [\s!da] [\v!subsubsubsection=] \setuplabeltext [\s!sv] [\v!subsubsubsection=] \setuplabeltext [\s!af] [\v!subsubsubsection=] \setuplabeltext [\s!nb] [\v!subsubsubsection=] \setuplabeltext [\s!nn] [\v!subsubsubsection=] \setuplabeltext [\s!en] [\v!appendix=] % Appendix \setuplabeltext [\s!nl] [\v!appendix=] \setuplabeltext [\s!de] [\v!appendix=] % Anhang \setuplabeltext [\s!da] [\v!appendix=] % Bilag \setuplabeltext [\s!sv] [\v!appendix=] \setuplabeltext [\s!af] [\v!appendix=] % Bylae \setuplabeltext [\s!nb] [\v!appendix=] % Tillegg \setuplabeltext [\s!nn] [\v!appendix=] % Tillegg \setuplabeltext [\s!en] [\v!part=Part ] \setuplabeltext [\s!nl] [\v!part=Deel ] \setuplabeltext [\s!de] [\v!part=Teil ] \setuplabeltext [\s!da] [\v!part=Del ] \setuplabeltext [\s!sv] [\v!part=Del ] \setuplabeltext [\s!af] [\v!part=Deel ] \setuplabeltext [\s!nb] [\v!part=Del] \setuplabeltext [\s!nn] [\v!part=Del] \setuplabeltext [\s!en] [\v!line=line ] \setuplabeltext [\s!nl] [\v!line=regel ] \setuplabeltext [\s!de] [\v!line=Zeile ] \setuplabeltext [\s!da] [\v!line=linie ] % or linje \setuplabeltext [\s!sv] [\v!line=rad ] \setuplabeltext [\s!af] [\v!line=re\ediaeresis l ] \setuplabeltext [\s!nb] [\v!line=linje ] \setuplabeltext [\s!nn] [\v!line=linje ] \setuplabeltext [\s!en] [\v!lines=lines ] \setuplabeltext [\s!nl] [\v!lines=regels ] \setuplabeltext [\s!de] [\v!lines=Zeilen ] \setuplabeltext [\s!da] [\v!lines=linier ] % or linjer \setuplabeltext [\s!sv] [\v!lines=rader ] \setuplabeltext [\s!af] [\v!lines=re\ediaeresis ls ] \setuplabeltext [\s!nb] [\v!lines=linjer ] \setuplabeltext [\s!nn] [\v!lines=linjer ] \setuplabeltext [\s!en] [\v!january=January] \setuplabeltext [\s!en] [\v!february=February] \setuplabeltext [\s!en] [\v!march=March] \setuplabeltext [\s!en] [\v!april=April] \setuplabeltext [\s!en] [\v!may=May] \setuplabeltext [\s!en] [\v!june=June] \setuplabeltext [\s!en] [\v!july=July] \setuplabeltext [\s!en] [\v!august=August] \setuplabeltext [\s!en] [\v!september=September] \setuplabeltext [\s!en] [\v!october=October] \setuplabeltext [\s!en] [\v!november=November] \setuplabeltext [\s!en] [\v!december=December] \setuplabeltext [\s!nl] [\v!january=januari] \setuplabeltext [\s!nl] [\v!february=februari] \setuplabeltext [\s!nl] [\v!march=maart] \setuplabeltext [\s!nl] [\v!april=april] \setuplabeltext [\s!nl] [\v!may=mei] \setuplabeltext [\s!nl] [\v!june=juni] \setuplabeltext [\s!nl] [\v!july=juli] \setuplabeltext [\s!nl] [\v!august=augustus] \setuplabeltext [\s!nl] [\v!september=september] \setuplabeltext [\s!nl] [\v!october=oktober] \setuplabeltext [\s!nl] [\v!november=november] \setuplabeltext [\s!nl] [\v!december=december] \setuplabeltext [\s!de] [\v!january=Januar] \setuplabeltext [\s!de] [\v!february=Februar] \setuplabeltext [\s!de] [\v!march=M\aumlaut rz] \setuplabeltext [\s!de] [\v!april=April] \setuplabeltext [\s!de] [\v!may=Mai] \setuplabeltext [\s!de] [\v!june=Juni] \setuplabeltext [\s!de] [\v!july=Juli] \setuplabeltext [\s!de] [\v!august=August] \setuplabeltext [\s!de] [\v!september=September] \setuplabeltext [\s!de] [\v!october=Oktober] \setuplabeltext [\s!de] [\v!november=November] \setuplabeltext [\s!de] [\v!december=Dezember] \setuplabeltext [\s!da] [\v!january=januar] \setuplabeltext [\s!da] [\v!february=februar] \setuplabeltext [\s!da] [\v!march=marts] \setuplabeltext [\s!da] [\v!april=april] \setuplabeltext [\s!da] [\v!may=maj] \setuplabeltext [\s!da] [\v!june=juni] \setuplabeltext [\s!da] [\v!july=juli] \setuplabeltext [\s!da] [\v!august=august] \setuplabeltext [\s!da] [\v!september=september] \setuplabeltext [\s!da] [\v!october=oktober] \setuplabeltext [\s!da] [\v!november=november] \setuplabeltext [\s!da] [\v!december=december] \setuplabeltext [\s!sv] [\v!january=januari] \setuplabeltext [\s!sv] [\v!february=februari] \setuplabeltext [\s!sv] [\v!march=mars] \setuplabeltext [\s!sv] [\v!april=april] \setuplabeltext [\s!sv] [\v!may=maj] \setuplabeltext [\s!sv] [\v!june=juni] \setuplabeltext [\s!sv] [\v!july=juli] \setuplabeltext [\s!sv] [\v!august=augusti] \setuplabeltext [\s!sv] [\v!september=september] \setuplabeltext [\s!sv] [\v!october=oktober] \setuplabeltext [\s!sv] [\v!november=november] \setuplabeltext [\s!sv] [\v!december=december] \setuplabeltext [\s!af] [\v!january=januarie] \setuplabeltext [\s!af] [\v!february=februarie] \setuplabeltext [\s!af] [\v!march=maart] \setuplabeltext [\s!af] [\v!april=april] \setuplabeltext [\s!af] [\v!may=mei] \setuplabeltext [\s!af] [\v!june=junie] \setuplabeltext [\s!af] [\v!july=julie] \setuplabeltext [\s!af] [\v!august=augustus] \setuplabeltext [\s!af] [\v!september=september] \setuplabeltext [\s!af] [\v!october=oktober] \setuplabeltext [\s!af] [\v!november=november] \setuplabeltext [\s!af] [\v!december=desember] \setuplabeltext [\s!nb] [\v!january=januar] \setuplabeltext [\s!nb] [\v!february=februar] \setuplabeltext [\s!nb] [\v!march=mars] \setuplabeltext [\s!nb] [\v!april=april] \setuplabeltext [\s!nb] [\v!may=mai] \setuplabeltext [\s!nb] [\v!june=juni] \setuplabeltext [\s!nb] [\v!july=juli] \setuplabeltext [\s!nb] [\v!august=august] \setuplabeltext [\s!nb] [\v!september=september] \setuplabeltext [\s!nb] [\v!october=oktober] \setuplabeltext [\s!nb] [\v!november=november] \setuplabeltext [\s!nb] [\v!december=desember] \setuplabeltext [\s!nn] [\v!january=januar] \setuplabeltext [\s!nn] [\v!february=februar] \setuplabeltext [\s!nn] [\v!march=mars] \setuplabeltext [\s!nn] [\v!april=april] \setuplabeltext [\s!nn] [\v!may=mai] \setuplabeltext [\s!nn] [\v!june=juni] \setuplabeltext [\s!nn] [\v!july=juli] \setuplabeltext [\s!nn] [\v!august=august] \setuplabeltext [\s!nn] [\v!september=september] \setuplabeltext [\s!nn] [\v!october=oktober] \setuplabeltext [\s!nn] [\v!november=november] \setuplabeltext [\s!nn] [\v!december=desember] \setuplabeltext [\s!en] [\v!sunday=Sunday] \setuplabeltext [\s!en] [\v!monday=Monday] \setuplabeltext [\s!en] [\v!tuesday=Tuesday] \setuplabeltext [\s!en] [\v!wednesday=Wednesday] \setuplabeltext [\s!en] [\v!thursday=Thursday] \setuplabeltext [\s!en] [\v!friday=Friday] \setuplabeltext [\s!en] [\v!saturday=Saturday] \setuplabeltext [\s!nl] [\v!sunday=zondag] \setuplabeltext [\s!nl] [\v!monday=maandag] \setuplabeltext [\s!nl] [\v!tuesday=dinsdag] \setuplabeltext [\s!nl] [\v!wednesday=woensdag] \setuplabeltext [\s!nl] [\v!thursday=donderdag] \setuplabeltext [\s!nl] [\v!friday=vrijdag] \setuplabeltext [\s!nl] [\v!saturday=zaterdag] \setuplabeltext [\s!de] [\v!sunday=Sonntag] \setuplabeltext [\s!de] [\v!monday=Montag] \setuplabeltext [\s!de] [\v!tuesday=Dienstag] \setuplabeltext [\s!de] [\v!wednesday=Mittwoch] \setuplabeltext [\s!de] [\v!thursday=Donnerstag] \setuplabeltext [\s!de] [\v!friday=Freitag] \setuplabeltext [\s!de] [\v!saturday=Samstag] \setuplabeltext [\s!da] [\v!sunday=s\ostroke ndag] \setuplabeltext [\s!da] [\v!monday=mandag] \setuplabeltext [\s!da] [\v!tuesday=tirsdag] \setuplabeltext [\s!da] [\v!wednesday=onsdag] \setuplabeltext [\s!da] [\v!thursday=torsdag] \setuplabeltext [\s!da] [\v!friday=fredag] \setuplabeltext [\s!da] [\v!saturday=l\ostroke rdag] \setuplabeltext [\s!sv] [\v!sunday=s\oumlaut ndag] \setuplabeltext [\s!sv] [\v!monday=m\aring ndag] \setuplabeltext [\s!sv] [\v!tuesday=tisdag] \setuplabeltext [\s!sv] [\v!wednesday=onsdag] \setuplabeltext [\s!sv] [\v!thursday=torsdag] \setuplabeltext [\s!sv] [\v!friday=fredag] \setuplabeltext [\s!sv] [\v!saturday=l\oumlaut rdag] \setuplabeltext [\s!af] [\v!sunday=sondag] \setuplabeltext [\s!af] [\v!monday=maandag] \setuplabeltext [\s!af] [\v!tuesday=dinsdag] \setuplabeltext [\s!af] [\v!wednesday=woensdag] \setuplabeltext [\s!af] [\v!thursday=donderdag] \setuplabeltext [\s!af] [\v!friday=vrydag] \setuplabeltext [\s!af] [\v!saturday=saterdag] \setuplabeltext [\s!nb] [\v!sunday=s\ostroke ndag] \setuplabeltext [\s!nb] [\v!monday=mandag] \setuplabeltext [\s!nb] [\v!tuesday=tirsdag] \setuplabeltext [\s!nb] [\v!wednesday=onsdag] \setuplabeltext [\s!nb] [\v!thursday=torsdag] \setuplabeltext [\s!nb] [\v!friday=fredag] \setuplabeltext [\s!nb] [\v!saturday=l\ostroke rdag] \setuplabeltext [\s!nn] [\v!sunday=sundag] \setuplabeltext [\s!nn] [\v!monday=m\aring ndag] \setuplabeltext [\s!nn] [\v!tuesday=tysdag] \setuplabeltext [\s!nn] [\v!wednesday=onsdag] \setuplabeltext [\s!nn] [\v!thursday=torsdag] \setuplabeltext [\s!nn] [\v!friday=fredag] \setuplabeltext [\s!nn] [\v!saturday=laurdag] %D Rather new ... \setuplabeltext [\s!nl] [\v!page=pagina ] \setuplabeltext [\s!nl] [\v!atpage=op pagina ] \setuplabeltext [\s!nl] [\v!hencefore=hierboven] \setuplabeltext [\s!nl] [\v!hereafter=hieronder] \setuplabeltext [\s!nl] [\v!see=zie ] \setuplabeltext [\s!nl] [\v!and= en ] \setuplabeltext [\s!nl] [\v!continued={ (vervolged)}] \setuplabeltext [\s!en] [\v!page=page ] \setuplabeltext [\s!en] [\v!atpage=at page ] \setuplabeltext [\s!en] [\v!hencefore=as we show above] \setuplabeltext [\s!en] [\v!hereafter=as we show below] \setuplabeltext [\s!en] [\v!see=see ] \setuplabeltext [\s!en] [\v!and= and ] \setuplabeltext [\s!en] [\v!continued={ (continued)}] \setuplabeltext [\s!de] [\v!page=Seite ] \setuplabeltext [\s!de] [\v!atpage=auf Seite ] \setuplabeltext [\s!de] [\v!hencefore=siehe oben] \setuplabeltext [\s!de] [\v!hereafter=siehe unten] \setuplabeltext [\s!de] [\v!see=siehe ] \setuplabeltext [\s!de] [\v!and= und ] \setuplabeltext [\s!da] [\v!page=Side ] \setuplabeltext [\s!da] [\v!atpage=p\aring\ side ] \setuplabeltext [\s!da] [\v!hencefore=se foroven] \setuplabeltext [\s!da] [\v!hereafter=se forneden] \setuplabeltext [\s!da] [\v!see=se ] \setuplabeltext [\s!sv] [\v!page=Sida ] \setuplabeltext [\s!sv] [\v!atpage=p\aring\ sida ] \setuplabeltext [\s!sv] [\v!hencefore=se ovan] \setuplabeltext [\s!sv] [\v!hereafter=se nedan] \setuplabeltext [\s!sv] [\v!see=se ] \setuplabeltext [\s!nb] [\v!page=side ] \setuplabeltext [\s!nb] [\v!atpage=p\aring\ side ] \setuplabeltext [\s!nb] [\v!hencefore=som vist over] \setuplabeltext [\s!nb] [\v!hereafter=som vist under] \setuplabeltext [\s!nb] [\v!see=se ] \setuplabeltext [\s!nn] [\v!page=side ] \setuplabeltext [\s!nn] [\v!atpage=p\aring\ side ] \setuplabeltext [\s!nn] [\v!hencefore=som vist over] \setuplabeltext [\s!nn] [\v!hereafter=som vist under] \setuplabeltext [\s!nn] [\v!see=sj\aring\ ] %D ... and to be completed! %D Next we implement couple of ordinal mumber converters: \def\enordinaldaynumber#1% {#1\ifnum\lasttwodigits{#1}=11 \highordinalstr{th}% \else\ifnum\lasttwodigits{#1}=12 \highordinalstr{th}% \else\ifnum\lasttwodigits{#1}=13 \highordinalstr{th}% \else\ifcase\lastdigit{#1}% \highordinalstr{th}% \or % 1 \highordinalstr{st}% \or % 2 \highordinalstr{nd}% \or % 3 \highordinalstr{rd}% \else \highordinalstr{th}% \fi\fi\fi\fi} % \def\enordinaldaynumber#1% % {#1\ordinalstr{\ifnum\lasttwodigits{#1}=11 th\else\ifcase\lastdigit{#1} % th\or st\or nd\or rd\else th\fi\fi}} \def\nlordinaldaynumber#1% {#1\highordinalstr{e}} %D \ShowAllLanguageValues [\s!en] [english] {English} {horn} % engelse humor %D \ShowAllLanguageValues [\s!nl] [dutch] {Dutch} {treat} % nederlandse zuinigheid %D \ShowAllLanguageValues [\s!de] [german] {German} {beer} % duitse degelijkheid %D \ShowAllLanguageValues [\s!da] [danish] {Danish} {pastry} %D \ShowAllLanguageValues [\s!sv] [swedish] {Swedish} {design} %D \ShowAllLanguageValues [\s!af] [afrikaans] {Afrikaaner} {boer} % afrikaanse gasvryheid %D \ShowAllLanguageValues [\s!nb] [bokmal] {Norwegian} {wood} %D \ShowAllLanguageValues [\s!nn] [nynorsk] {Norwegian} {fish} %D Extra month names: \setuplabeltext [\s!en] [\v!january :\s!mnem=jan] \setuplabeltext [\s!en] [\v!february :\s!mnem=feb] \setuplabeltext [\s!en] [\v!march :\s!mnem=mar] \setuplabeltext [\s!en] [\v!april :\s!mnem=apr] \setuplabeltext [\s!en] [\v!may :\s!mnem=may] \setuplabeltext [\s!en] [\v!june :\s!mnem=jun] \setuplabeltext [\s!en] [\v!july :\s!mnem=jul] \setuplabeltext [\s!en] [\v!august :\s!mnem=aug] \setuplabeltext [\s!en] [\v!september:\s!mnem=sep] \setuplabeltext [\s!en] [\v!october :\s!mnem=oct] \setuplabeltext [\s!en] [\v!november :\s!mnem=nov] \setuplabeltext [\s!en] [\v!december :\s!mnem=dec] \setuplabeltext [\s!nb] [\v!january :\s!mnem=jan.] \setuplabeltext [\s!nb] [\v!february :\s!mnem=feb.] \setuplabeltext [\s!nb] [\v!march :\s!mnem=mars] \setuplabeltext [\s!nb] [\v!april :\s!mnem=april] \setuplabeltext [\s!nb] [\v!may :\s!mnem=mai] \setuplabeltext [\s!nb] [\v!june :\s!mnem=juni] \setuplabeltext [\s!nb] [\v!july :\s!mnem=juli] \setuplabeltext [\s!nb] [\v!august :\s!mnem=aug.] \setuplabeltext [\s!nb] [\v!september:\s!mnem=sep.] \setuplabeltext [\s!nb] [\v!october :\s!mnem=okt.] \setuplabeltext [\s!nb] [\v!november :\s!mnem=nov.] \setuplabeltext [\s!nb] [\v!december :\s!mnem=des.] \setuplabeltext [\s!nn] [\v!january :\s!mnem=jan.] \setuplabeltext [\s!nn] [\v!february :\s!mnem=feb.] \setuplabeltext [\s!nn] [\v!march :\s!mnem=mars] \setuplabeltext [\s!nn] [\v!april :\s!mnem=april] \setuplabeltext [\s!nn] [\v!may :\s!mnem=mai] \setuplabeltext [\s!nn] [\v!june :\s!mnem=juni] \setuplabeltext [\s!nn] [\v!july :\s!mnem=juli] \setuplabeltext [\s!nn] [\v!august :\s!mnem=aug.] \setuplabeltext [\s!nn] [\v!september:\s!mnem=sep.] \setuplabeltext [\s!nn] [\v!october :\s!mnem=okt.] \setuplabeltext [\s!nn] [\v!november :\s!mnem=nov.] \setuplabeltext [\s!nn] [\v!december :\s!mnem=des.] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-031.mkii0000644000175000017500000002041214536300610024411 0ustar hillehille%D \module %D [ file=unic-031, %D version=2005.02.20, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 31, %D author=Thomas A. Schmitz, %D date=\currentdate, %D copyright={Thomas A. Schmitz}] \unprotect \startunicodevector 31 \expandafter\strippedcsname \ifcase\numexpr#1\relax \greekalphapsili \or %1f00 \greekalphadasia \or \greekalphapsilivaria \or \greekalphadasiavaria \or \greekalphapsilitonos \or \greekalphadasiatonos \or \greekalphapsiliperispomeni \or \greekalphadasiaperispomeni \or \greekAlphapsili \or \greekAlphadasia \or \greekAlphapsilivaria \or \greekAlphadasiavaria \or \greekAlphapsilitonos \or \greekAlphadasiatonos \or \greekAlphapsiliperispomeni \or \greekAlphadasiaperispomeni \or \greekepsilonpsili \or %1f10 \greekepsilondasia \or \greekepsilonpsilivaria \or \greekepsilondasiavaria \or \greekepsilonpsilitonos \or \greekepsilondasiatonos \or \unknownchar \or \unknownchar \or \greekEpsilonpsili \or \greekEpsilondasia \or \greekEpsilonpsilivaria \or \greekEpsilondasiavaria \or \greekEpsilonpsilitonos \or \greekEpsilondasiatonos \or \unknownchar \or \unknownchar \or \greeketapsili \or %1f20 \greeketadasia \or \greeketapsilivaria \or \greeketadasiavaria \or \greeketapsilitonos \or \greeketadasiatonos \or \greeketapsiliperispomeni \or \greeketadasiaperispomeni \or \greekEtapsili \or \greekEtadasia \or \greekEtapsilivaria \or \greekEtadasiavaria \or \greekEtapsilitonos \or \greekEtadasiatonos \or \greekEtapsiliperispomeni \or \greekEtadasiaperispomeni \or \greekiotapsili \or %1f30 \greekiotadasia \or \greekiotapsilivaria \or \greekiotadasiavaria \or \greekiotapsilitonos \or \greekiotadasiatonos \or \greekiotapsiliperispomeni \or \greekiotadasiaperispomeni \or \greekIotapsili \or \greekIotadasia \or \greekIotapsilivaria \or \greekIotadasiavaria \or \greekIotapsilitonos \or \greekIotadasiatonos \or \greekIotapsiliperispomeni \or \greekIotadasiaperispomeni \or \greekomicronpsili \or %1f40 \greekomicrondasia \or \greekomicronpsilivaria \or \greekomicrondasiavaria \or \greekomicronpsilitonos \or \greekomicrondasiatonos \or \unknownchar \or \unknownchar \or \greekOmicronpsili \or \greekOmicrondasia \or \greekOmicronpsilivaria \or \greekOmicrondasiavaria \or \greekOmicronpsilitonos \or \greekOmicrondasiatonos \or \unknownchar \or \unknownchar \or \greekupsilonpsili \or %1f50 \greekupsilondasia \or \greekupsilonpsilivaria \or \greekupsilondasiavaria \or \greekupsilonpsilitonos \or \greekupsilondasiatonos \or \greekupsilonpsiliperispomeni \or \greekupsilondasiaperispomeni \or \unknownchar \or \greekUpsilondasia \or \unknownchar \or \greekUpsilondasiavaria \or \unknownchar \or \greekUpsilondasiatonos \or \unknownchar \or \greekUpsilondasiaperispomeni \or \greekomegapsili \or %1f60 \greekomegadasia \or \greekomegapsilivaria \or \greekomegadasiavaria \or \greekomegapsilitonos \or \greekomegadasiatonos \or \greekomegapsiliperispomeni \or \greekomegadasiaperispomeni \or \greekOmegapsili \or \greekOmegadasia \or \greekOmegapsilivaria \or \greekOmegadasiavaria \or \greekOmegapsilitonos \or \greekOmegadasiatonos \or \greekOmegapsiliperispomeni \or \greekOmegadasiaperispomeni \or \greekalphavaria \or %1f70 \greekalphaoxia \or \greekepsilonvaria \or \greekepsilonoxia \or \greeketavaria \or \greeketaoxia \or \greekiotavaria \or \greekiotaoxia \or \greekomicronvaria \or \greekomicronoxia \or \greekupsilonvaria \or \greekupsilonoxia \or \greekomegavaria \or \greekomegaoxia \or \unknownchar \or \unknownchar \or \greekalphaiotasubpsili \or %1f80 \greekalphaiotasubdasia \or \greekalphaiotasubpsilivaria \or \greekalphaiotasubdasiavaria \or \greekalphaiotasubpsilitonos \or \greekalphaiotasubdasiatonos \or \greekalphaiotasubpsiliperispomeni \or \greekalphaiotasubdasiaperispomeni \or \greekAlphaiotasubpsili \or \greekAlphaiotasubdasia \or \greekAlphaiotasubpsilivaria \or \greekAlphaiotasubdasiavaria \or \greekAlphaiotasubpsilitonos \or \greekAlphaiotasubdasiatonos \or \greekAlphaiotasubpsiliperispomeni \or \greekAlphaiotasubdasiaperispomeni \or \greeketaiotasubpsili \or %1f90 \greeketaiotasubdasia \or \greeketaiotasubpsilivaria \or \greeketaiotasubdasiavaria \or \greeketaiotasubpsilitonos \or \greeketaiotasubdasiatonos \or \greeketaiotasubpsiliperispomeni \or \greeketaiotasubdasiaperispomeni \or \greekEtaiotasubpsili \or \greekEtaiotasubdasia \or \greekEtaiotasubpsilivaria \or \greekEtaiotasubdasiavaria \or \greekEtaiotasubpsilitonos \or \greekEtaiotasubdasiatonos \or \greekEtaiotasubpsiliperispomeni \or \greekEtaiotasubdasiaperispomeni \or \greekomegaiotasubpsili \or %1fa0 \greekomegaiotasubdasia \or \greekomegaiotasubpsilivaria \or \greekomegaiotasubdasiavaria \or \greekomegaiotasubpsilitonos \or \greekomegaiotasubdasiatonos \or \greekomegaiotasubpsiliperispomeni \or \greekomegaiotasubdasiaperispomeni \or \greekOmegaiotasubpsili \or \greekOmegaiotasubdasia \or \greekOmegaiotasubpsilivaria \or \greekOmegaiotasubdasiavaria \or \greekOmegaiotasubpsilitonos \or \greekOmegaiotasubdasiatonos \or \greekOmegaiotasubpsiliperispomeni \or \greekOmegaiotasubdasiaperispomeni \or \greekalphavrachy \or %1fb0 \greekalphamacron \or \greekalphaiotasubvaria \or \greekalphaiotasub \or \greekalphaiotasubtonos \or \unknownchar \or \greekalphaperispomeni \or \greekalphaiotasubperispomeni \or \greekAlphavrachy \or \greekAlphamacron \or \greekAlphavaria \or \greekAlphaoxia \or \greekAlphaiotasub \or \greekCoronis \or \greekprosgegrammeni \or \greekpsili \or \greekperispomeni \or %1fc0 \greekdialytikaperispomeni \or \greeketaiotasubvaria \or \greeketaiotasub \or \greeketaiotasubtonos \or \unknownchar \or \greeketaperispomeni \or \greeketaiotasubperispomeni \or \greekEpsilonvaria \or \greekEpsilonoxia \or \greekEtavaria \or \greekEtaoxia \or \greekEtaiotasub \or \greekpsilivaria \or \greekpsilitonos \or \greekpsiliperispomeni \or \greekiotavrachy \or %1fd0 \greekiotamacron \or \greekiotadialytikavaria \or \greekiotadialytikatonos \or \unknownchar \or \unknownchar \or \greekiotaperispomeni \or \greekiotadialytikaperispomeni \or \greekIotavrachy \or \greekIotamacron \or \greekIotavaria \or \greekIotaoxia \or \unknownchar \or \greekdasiavaria \or \greekdasiatonos \or \greekdasiaperispomeni \or \greekupsilonvrachy \or %1fe0 \greekupsilonmacron \or \greekupsilondialytikavaria \or \greekupsilondialytikatonos \or \greekrhopsili \or \greekrhodasia \or \greekupsilonperispomeni \or \greekupsilondialytikaperispomeni \or \greekUpsilonvrachy \or \greekUpsilonmacron \or \greekUpsilonvaria \or \greekUpsilonoxia \or \greekRhodasia \or \greekdialytikavaria \or \greekdialytikaoxia \or \greekvaria \or \unknownchar \or %1ff0 \unknownchar \or \greekomegaiotasubvaria \or \greekomegaiotasub \or \greekomegaiotasubtonos \or \unknownchar \or \greekomegaperispomeni \or \greekomegaiotasubperispomeni \or \greekOmicronvaria \or \greekOmicronoxia \or \greekOmegavaria \or \greekOmegaoxia \or \greekOmegaiotasub \or \greekoxia \or \greekdasia \else \unknownchar \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-var.mkii0000644000175000017500000001420514536300610024673 0ustar hillehille%D \module %D [ file=core-var, %D version=1998.02.21, %D title=\CONTEXT\ Core Macros, %D subtitle=Variables, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Variables} \unprotect %D We introduce a couple of variables that are used all over %D \CONTEXT. Alternatively we could define them in each module %D but as they are part of the bigger picture we prefer to do %D it here. %D \macros %D {every...} %D %D A few every's. Some are only used in \MKII\ or \MKIV. %D Output routine: \newtoks \everybeforeoutput \newtoks \everyafteroutput %D Shipout: \newtoks \everyshipout \newtoks \everybeforeshipout \newtoks \everyaftershipout \newtoks \everyfirstshipout \newtoks \everylastshipout %D End of run: \newtoks \everybye \newtoks \everygoodbye \newtoks \everynotabene %D Document \newtoks \everysetupdocument \newtoks \everyendoftextbody \newtoks \everystarttext \newtoks \everystoptext %D Purity: \newtoks \everyforgetall \newtoks \everycleanupfeatures \def\cleanupfeatures{\the\everycleanupfeatures} \def\forgetall {\the\everyforgetall} %D Page building: \newtoks \everybeforepagebody \newtoks \everyafterpagebody \let \everypagebody \everybeforepagebody % backward compatible %D Multipass: \newtoks \everybeforeutilityread \newtoks \everyafterutilityread %D Floats: \newtoks \everyinsidefloat %D Sectioning: \newtoks \everyheadstart %D Par building (experimental, used in xml

..

) \newtoks \everybeginofpar \newtoks \everyendofpar %newtoks \everyparflush \def\bpar{\the\everybeginofpar\ignorespaces} % may interfere with \everypar \def\epar{\ifhmode\removeunwantedspaces\the\everyendofpar\fi} % test prevents problems with \bpar\epar %D Lists: \newtoks \everylistentry \newtoks \everysavesortkeys %D Marks: \newtoks \everymarking %D Fonts: \newtoks \everyfont \newtoks \everyglobalbodyfont \newtoks \everydefinedfont \newevery \everybodyfont \EveryBodyFont \newevery \everyfontswitch \EveryFontSwitch %D Math: \newtoks \everybeforedisplayformula \newtoks \everymathematics \prependtoks \the\everymathematics \to \everymath \prependtoks \the\everymathematics \to \everydisplay %D Tables \newtoks \everytable %D State mess: \newtoks \everypushsomestate \newtoks \everypopsomestate \def\pushsomestates{\the\everypushsomestate} \def\popsomestates {\the\everypopsomestate } %D More generic (used to be pushcolor etc) \newtoks\everypushproperties \newtoks\everypopproperties \newtoks\everypopsplitproperties \newtoks\everystarttextproperties \newtoks\everystoptextproperties \def\pushproperties {\the\everypushproperties} \def\popproperties {\the\everypopproperties} \def\popsplitproperties {\the\everypopsplitproperties} \def\starttextproperties{\the\everystarttextproperties} \def\stoptextproperties {\the\everystoptextproperties} %D This is pretty important (esp since we now ignore shipouts). %D Actually we should nil all writes, marks, specials. \appendtoks \globallet\popproperties \relax \to \everylastshipout \appendtoks \globallet\popsplitproperties\relax \to \everylastshipout %D \macros %D {defineinputmode,setinputmode} %D %D New. Some work needs to be done. % not in mkiv \def\defineinputmode[#1]{\@EA\newtoks\csname every#1inputmode\endcsname} \def\setinputmode [#1]{\the\executeifdefined{every#1inputmode}\emptytoks} \defineinputmode [TEX] \defineinputmode [XML] \setinputmode [TEX] %D \macros %D {trialtypesetting} %D %D We disable trial typesetting in the output routine, %D just to be sure. \newif\iftrialtypesetting \prependtoks \trialtypesettingfalse \to \everybeforepagebody %D \macros %D {ifinpagebody,ifinsidecolumns,ifdoublesided,ifsinglesided} \newif \ifinpagebody \newif \ifinsidecolumns \newif \ifdoublesided \doublesidedfalse \newif \ifsinglesided \singlesidedtrue \newif \ifinsidefloat \newif \ifdoingblocks \newif \ifgridsnapping %D \macros %D {ifprocessingXML} %D %D We need this one even if no \XML\ is supported. \newif\ifprocessingXML % old way %D \macros %D {ifproductionrun} %D %D This boolean can be used to bypass certain %D initializations. \ifx\protectionlevel\undefined \newcount\protectionlevel \fi \newif\ifproductionrun \appendtoks \productionruntrue \to \everydump \appendtoks \ifcase\protectionlevel\else\reportunprotection\fi \to \everydump %D \macros %D {everyboxedcontent, ifboxedcontent, %D startboxedcontent, stopboxedcontent} %D %D This one is relatively new and will be used as a more %D robust test for inner situations. \newif \ifboxedcontent \newtoks\everyboxedcontent \appendtoks \boxedcontenttrue \to \everyboxedcontent \def\startboxedcontent{\bgroup\the\everyboxedcontent} \let\stopboxedcontent \egroup %D \macros %D {fastmode,silentmode} %D %D These commands are obsolete. \let\fastmode \relax \let\silentmode\relax %D \macros %D {defineselector,setupselector} %D %D \starttyping %D \defineselector[caption][max=2,n=2] %D %D \start %D \setupselector[caption][n=1] %D \placelist[figure][criterium=all] %D \stop %D %D \starttext %D \placefigure %D {\select{caption}{zapf}{\input zapf \relax}} %D {} %D \stoptext %D \stoptyping \def\defineselector{\dodoubleargument\dodefineselector} \def\setupselector {\dodoubleargument\dosetupselector} \def\dodefineselector[#1][#2]{\getparameters[\??sx#1][\c!max=2,\c!n=1,#2]} \def\dosetupselector [#1][#2]{\getparameters[\??sx#1][#2]} \unexpanded\def\select#1% {\filterfromnext {\executeifdefined{\??sx#1\c!max}1} {\executeifdefined{\??sx#1\c!n }1}} %D We store some original meanings, maybe in \type %D {math-ini}. \let\normalat \at \let\normalin \in \let\normalfrom \from %let\normalover \over \let\normalabout\about %D Add-ons: \let\startlayoutcomponent\gobbletwoarguments \let\stoplayoutcomponent \relax %D Concepts: \chardef\conceptmode\zerocount \def\doifconcepttracing {\ifnum\conceptmode>\plustwo \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/font-unk.mkii0000644000175000017500000001520114536300610024713 0ustar hillehille%D \module %D [ file=font-unk, %D version=1998.09.10, %D title=\CONTEXT\ Font Macros, %D subtitle=Unknown Defaults, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module is rather important, because it enables us to %D define and call for not yet defined fonts in a way %D completely independant of real font names. First we map %D some meaningful names onto unknown filenames. \unprotect \definefontsynonym [Serif] [unknown] \definefontsynonym [SerifBold] [unknown] \definefontsynonym [SerifItalic] [unknown] \definefontsynonym [SerifSlanted] [unknown] \definefontsynonym [SerifBoldItalic] [unknown] \definefontsynonym [SerifBoldSlanted] [unknown] \definefontsynonym [SerifCaps] [unknown] \definefontsynonym [Sans] [unknown] \definefontsynonym [SansBold] [unknown] \definefontsynonym [SansItalic] [unknown] \definefontsynonym [SansSlanted] [unknown] \definefontsynonym [SansBoldItalic] [unknown] \definefontsynonym [SansBoldSlanted] [unknown] \definefontsynonym [SansCaps] [unknown] \definefontsynonym [Mono] [unknown] \definefontsynonym [MonoBold] [unknown] \definefontsynonym [MonoItalic] [unknown] \definefontsynonym [MonoSlanted] [unknown] \definefontsynonym [MonoBoldItalic] [unknown] \definefontsynonym [MonoBoldSlanted] [unknown] \definefontsynonym [MonoCaps] [unknown] \definefontsynonym [MathRoman] [unknown] \definefontsynonym [MathExtension] [unknown] \definefontsynonym [MathItalic] [unknown] \definefontsynonym [MathSymbol] [unknown] \definefontsynonym [MathNoName] [unknown] \definefontsynonym [MathAlpha] [unknown] \definefontsynonym [MathBeta] [unknown] \definefontsynonym [MathGamma] [unknown] \definefontsynonym [MathDelta] [unknown] \definefontsynonym [MathRomanBold] [MathRoman] \definefontsynonym [MathExtensionBold] [MathExtension] \definefontsynonym [MathItalicBold] [MathItalic] \definefontsynonym [MathSymbolBold] [MathSymbol] \definefontsynonym [MathAlphaBold] [MathAlpha] \definefontsynonym [MathBetaBold] [MathBeta] \definefontsynonym [MathGammaBold] [MathGamma] \definefontsynonym [MathDeltaBold] [MathDelta] \definefontsynonym [Handwriting] [unknown] \definefontsynonym [Calligraphic] [unknown] %D This permit us to define (use) fonts that refer to the default %D style (so, Bold may expand to SansBold or SerifBold, depending %D on the default style in the typeface). % \def\setfontsynonym[#1]#2[#3]{\setvalue{\??ff\fontclass#1}{#3}} % % \setfontsynonym[\s!Normal] [\fontstringD] % \setfontsynonym[\s!Bold] [\fontstringD\s!Bold] % \setfontsynonym[\s!Italic] [\fontstringD\s!Italic] % \setfontsynonym[\s!Slanted] [\fontstringD\s!Slanted] % \setfontsynonym[\s!BoldItalic] [\fontstringD\s!BoldItalic] % \setfontsynonym[\s!BoldSlanted][\fontstringD\s!BoldSlanted] % \setfontsynonym[\s!Caps] [\fontstringD\s!Caps] \definefontsynonym[\s!Normal] [\noexpand\fontstringD] \definefontsynonym[\s!Bold] [\noexpand\fontstringD\noexpand\s!Bold] \definefontsynonym[\s!Italic] [\noexpand\fontstringD\noexpand\s!Italic] \definefontsynonym[\s!Slanted] [\noexpand\fontstringD\noexpand\s!Slanted] \definefontsynonym[\s!BoldItalic] [\noexpand\fontstringD\noexpand\s!BoldItalic] \definefontsynonym[\s!BoldSlanted][\noexpand\fontstringD\noexpand\s!BoldSlanted] \definefontsynonym[\s!Caps] [\noexpand\fontstringD\noexpand\s!Caps] %D Also handy: \definefontsynonym [Regular] [Serif] \definefontsynonym [RegularBold] [SerifBold] \definefontsynonym [RegularItalic] [SerifItalic] \definefontsynonym [RegularSlanted] [SerifSlanted] \definefontsynonym [RegularBoldItalic] [SerifBoldItalic] \definefontsynonym [RegularBoldSlanted] [SerifBoldSlanted] \definefontsynonym [RegularCaps] [SerifCaps] \definefontsynonym [Support] [Sans] \definefontsynonym [SupportBold] [SansBold] \definefontsynonym [SupportItalic] [SansItalic] \definefontsynonym [SupportSlanted] [SansSlanted] \definefontsynonym [SupportBoldItalic] [SansBoldItalic] \definefontsynonym [SupportBoldSlanted] [SansBoldSlanted] \definefontsynonym [SupportCaps] [SansCaps] %D Well, not that good an idea: \definefontsynonym [Roman] [Serif] \definefontsynonym [RomanBold] [SerifBold] \definefontsynonym [RomanItalic] [SerifItalic] \definefontsynonym [RomanSlanted] [SerifSlanted] \definefontsynonym [RomanBoldItalic] [SerifBoldItalic] \definefontsynonym [RomanBoldSlanted] [SerifBoldSlanted] \definefontsynonym [RomanCaps] [SerifCaps] \definefontsynonym [Type] [Mono] \definefontsynonym [TypeBold] [MonoBold] \definefontsynonym [TypeItalic] [MonoItalic] \definefontsynonym [TypeSlanted] [MonoSlanted] \definefontsynonym [TypeBoldItalic] [MonoBoldItalic] \definefontsynonym [TypeBoldSlanted] [MonoBoldSlanted] \definefontsynonym [TypeCaps] [MonoCaps] %D Next we define roman, sans and monospaced font sets. \definebodyfont [default] [rm] [tf=Serif sa 1, bf=SerifBold sa 1, it=SerifItalic sa 1, sl=SerifSlanted sa 1, bi=SerifBoldItalic sa 1, bs=SerifBoldSlanted sa 1, sc=SerifCaps sa 1] \definebodyfont [default] [ss] [tf=Sans sa 1, bf=SansBold sa 1, it=SansItalic sa 1, sl=SansSlanted sa 1, bi=SansBoldItalic sa 1, bs=SansBoldSlanted sa 1, sc=SansCaps sa 1] \definebodyfont [default] [tt] [tf=Mono sa 1, bf=MonoBold sa 1, it=MonoItalic sa 1, sl=MonoSlanted sa 1, bi=MonoBoldItalic sa 1, bs=MonoBoldSlanted sa 1, sc=MonoCaps sa 1] \definebodyfont [default] [mm] [mr=MathRoman mo 1, ex=MathExtension mo 1, mi=MathItalic mo 1, sy=MathSymbol mo 1, nn=MathNoName mo 1, ma=MathAlpha mo 1, mb=MathBeta mo 1, mc=MathGamma mo 1, md=MathDelta mo 1] \definebodyfont [bfmath] [mm] [mrbf=MathRomanBold mo 1, exbf=MathExtensionBold mo 1, mibf=MathItalicBold mo 1, sybf=MathSymbolBold mo 1, mabf=MathAlphaBold mo 1, mbbf=MathBetaBold mo 1, mcbf=MathGammaBold mo 1, mdbf=MathDeltaBold mo 1] \definebodyfont [default] [hw] [tf=Handwriting sa 1] \definebodyfont [default] [cg] [tf=Calligraphy sa 1] %D These definitions come into action as soon as names are %D mapped onto real file names (or names that themselves are %D mapped). \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/pack-lyr.mkii0000644000175000017500000006107114536300610024702 0ustar hillehille%D \module %D [ file=pack-lyr, %D version=2000.10.20, %D title=\CONTEXT\ Packaging Macros, %D subtitle=Layers, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Packaging Macros / Layers} %D This module is now etex dependent. % todo : first / last / next / +... => page key % test on left/right box when no doublesided option given % use \ifcsname instead of doifvalue \unprotect % When being backgrounds layers get the background offset % displacement. Should be an option, on by default % (compatibility). % positie=forceer == ja maar dan ook in status=herhaal %D The layering mechanism implemented here is independent of %D the output routine, but future extensions may depend on a %D more close cooperation. %D First we overload a macro from \type {core-rul}. From now on %D we accept a (optional) argument: the specific layer it %D will go in. This means that we can move an overlay from one %D background to the other using the dimensions of the parent. %D ! ! ! ! to be documented ! ! ! ! \ifx\undefined\defineoverlay \message{loaded to early} \wait \fi \def\defineoverlay {\dotripleempty\dodefineoverlay} \def\dodefineoverlay[#1][#2][#3]% overlay [layer] content {\ifthirdargument \writestatus{BEWARE}{This (overlay definition) has changed!}% temp \def\docommand##1{\setvalue{\??ov##1}{\setlayer[#2]{\executedefinedoverlay{##1}{#3}}}} \else \def\docommand##1{\setvalue{\??ov##1}{\executedefinedoverlay{##1}{#2}}}% \fi \processcommalist[#1]\docommand} %D When tracing is turned on, a couple of boxes will %D show up as well as the reference point. \newif\iftracelayers % \tracelayerstrue %D This handy constant saved some string memory. \def\@@layerbox{@@layerbox} %D \macros %D {definelayer} %D %D Each layer gets its own (global) box. This also means that %D the data that goes into a layer, is typeset immediately. %D Each layer automatically gets an associated overlay, %D which can be used in any background assignment. % todo : links/rechts \def\definelayer {\dodoubleargument\dodefinelayer} \def\dodefinelayer[#1][#2]% \zeropoint ipv \!!zeropoint {\setuplayer [#1] [\c!doublesided=,\c!preset=, \c!state=\v!start,\c!direction=\v!normal,\c!option=, \c!x=\zeropoint,\c!y=\zeropoint,\c!position=\v!no, \c!line=0,\c!column=0, \c!width=\nextboxwd,\c!height=\nextboxht, \c!offset=\zeropoint,\c!rotation=, % geen 0 ! \c!hoffset=\zeropoint,\c!voffset=\zeropoint, \c!dx=\zeropoint,\c!dy=\zeropoint, \c!location=rb,\c!position=\v!no,\c!page=, \c!method=\v!overlay, \c!sx=1,\c!sy=1,\c!corner=,#2]% \doifvalue{\??ll#1\c!doublesided}\v!yes {\dopresetlayerbox{\v!left #1}% \dopresetlayerbox{\v!right#1}}% \dopresetlayerbox{#1}% \defineoverlay[#1][\composedlayer{#1}]} \def\dopresetlayerbox#1% {\ifundefined{\@@layerbox#1}% \expandafter\newbox\csname\@@layerbox#1\endcsname \else \resetlayer[#1]% \fi} %D \macros %D {setuplayer} %D %D After a layer is defined, you can change its %D characteristics. \def\setuplayer {\dodoubleargument\dosetuplayer} \def\dosetuplayer[#1][#2]% {\def\docommand##1{\getparameters[\??ll##1][#2]}% \processcommalist[#1]\docommand} %D \macros %D {setlayer} %D %D Data is moved into a layer with the following macro. When %D \type {position} is set, relative positioning is used, with %D the current point as reference point. Otherwise the topleft %D corner is used as reference point. %D %D \starttyping %D \setlayer [identifier] [optional parameters] {data} %D \stoptyping \newcount\currentlayerdata \let\currentlayerwidth \!!zeropoint \let\currentlayerheight\!!zeropoint \def\setcurrentlayerdimensions {\dodoubleempty\dosetcurrentlayerdimensions} \def\dosetcurrentlayerdimensions[#1][#2]% name left|right {\edef\currentlayerwidth {\thelayerwidth {#2#1}}% \edef\currentlayerheight{\thelayerheight{#2#1}}} \def\thelayerwidth #1{\the\wd\executeifdefined{\@@layerbox#1}\emptybox} \def\thelayerheight#1{\the\ht\executeifdefined{\@@layerbox#1}\emptybox} \def\setlayer {\dotripleempty\dosetlayer} \def\dosetlayer[#1][#2][#3]% #4 == box do \fi is ok {\doifelsevalue{\??ll#1\c!state}\v!stop {\dowithnextbox\donothing\hbox} {\ifthirdargument \dodosetlayer[#1][#2][#3]% \else \doifassignmentelse{#2} {\dodosetlayer[#1][][#2]}% {\dodosetlayer[#1][#2][]}% \fi}} \def\dodosetlayer[#1][#2][#3]% #2 = links/rechts {\bgroup \recalculatebackgrounds \recalculatelogos \global\advance\currentlayerdata\plusone \forgetall \dontcomplain \doifvalue{\??ll#1\c!option}\v!test\tracelayerstrue \iftracelayers\traceboxplacementtrue\fi \dowithnextbox % sneller als aparte macro {\ifcsname\@@layerbox#1\endcsname % nb: odd/even discard, left/right not \edef\@@layerloc{#2}% \ifx\@@layerloc\v!even \ifodd\realpageno % discard nextbox \else \dododosetlayer[#1][\v!left][#3]% \fi \else\ifx\@@layerloc\v!odd \ifodd\realpageno \dododosetlayer[#1][\v!right][#3]% %\else % discard nextbox \fi \else \dododosetlayer[#1][#2][#3]% \fi\fi \else \writestatus{layer}{unknown layer #1}% \fi \egroup}% \hbox} \newbox\layerbox \newdimen\@@layerxsiz \newdimen\@@layerysiz \newdimen\@@layerxoff \newdimen\@@layeryoff \newdimen\@@layerxpos \newdimen\@@layerypos \let\lastlayerxpos\!!zeropoint \let\lastlayerypos\!!zeropoint \let\lastlayerwd \!!zeropoint \let\lastlayerht \!!zeropoint \let\lastlayerdp \!!zeropoint % todo left/right \def\setlastlayerpos#1% {\edef\layerpage{\MPp{lyr:\the\currentlayerdata}}% \xdef\lastlayerxpos{\the\dimexpr-\MPx{lyr:#1:\layerpage}+\MPx{lyr:\the\currentlayerdata}\relax}% \xdef\lastlayerypos{\the\dimexpr \MPy{lyr:#1:\layerpage}-\MPy{lyr:\the\currentlayerdata}\relax}} \def\definelayerpreset {\dodoubleargument\dodefinelayerpreset} % \def\dodefinelayerpreset[#1][#2]% % {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}} % % more fun: \definelayerpreset[whatever][lefttop] \def\dodefinelayerpreset[#1][#2]% {\doifassignmentelse{#2} {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}} {\setvalue{\??ll\??ll#1}{\getvalue{\??ll\??ll#2}}}} \def\dopresetlayer#1#2#3% #1=list #2=tag #3=list {\getparameters[\??ll#2][#1,#3]} \letempty\currentlayer \def\layerparameter#1{\csname\??ll\currentlayer#1\endcsname} \newdimen\layerwidth \newdimen\layerheight \chardef\@@lacome=1 % LAyerCOnstructionMEthod / temp, will be default \def\dododosetlayer[#1][#2][#3]% will be sped up {% we use the global width, never change this \def\currentlayer{#1}% \@@layerxsiz\layerparameter\c!width \@@layerysiz\layerparameter\c!height \layerwidth \@@layerxsiz \layerheight\@@layerysiz % preroll \getparameters[\??ll\currentlayer][#3]% % presets and real roll % maybe todo: % \doif{\layerparameter\c!method}\v!fit % {\@@layerxsiz\thelayerwidth \currentlayer % \@@layerysiz\thelayerheight\currentlayer % \layerwidth \@@layerxsiz % \layerheight\@@layerysiz % }% % etc \executeifdefined{\??ll\??ll\layerparameter\c!preset}\gobbletwoarguments\currentlayer{#3}% % that was real slow \doif{\layerparameter\c!position}\v!overlay % slow, use \dosetvalue instead {\getparameters[\??ll\currentlayer][\c!width=\zeropoint,\c!height=\zeropoint,\c!position=\v!yes]}% \doifsomething{\layerparameter\c!rotation} {\setbox\nextbox\hbox {\rotate % to be checked with new rotation [\c!location=\v!high,\c!rotation=\layerparameter\c!rotation] {\flushnextbox}}}% % no, not local % \@@layerxsiz\layerparameter\c!width % \@@layerysiz\layerparameter\c!height % never change that \@@layerxpos\layerparameter\c!x \@@layerypos\layerparameter\c!y \doifelse{\layerparameter\c!hoffset}\v!max {\@@layerxoff\@@layerxsiz}{\@@layerxoff\layerparameter\c!hoffset}% \doifelse{\layerparameter\c!voffset}\v!max {\@@layeryoff\@@layerysiz}{\@@layeryoff\layerparameter\c!voffset}% % dx/dy are internal context ones and can be used in preset \advance\@@layerxoff\dimexpr\layerparameter\c!offset+\layerparameter\c!dx\relax \advance\@@layeryoff\dimexpr\layerparameter\c!offset+\layerparameter\c!dy\relax \@@layerxpos\layerparameter\c!sx\@@layerxpos \@@layerypos\layerparameter\c!sy\@@layerypos \@@layerxoff\layerparameter\c!sx\@@layerxoff \@@layeryoff\layerparameter\c!sy\@@layeryoff \doifelse{\layerparameter\c!position}\v!yes % combine ^ {\setlastlayerpos{#2\currentlayer}% todo l/r %%%%%%%%%%%% \@@layerxpos\lastlayerxpos \@@layerypos\lastlayerypos \letgvalue{\??ll\currentlayer\layerpage\c!position}\v!yes \letgvalue{\??ll\currentlayer\c!state}\v!start % needed ? \setbox\layerbox\vbox to \@@layerysiz {\hbox to \@@layerxsiz{\xypos{lyr:\the\currentlayerdata}\hss}\vss}} {\setbox\layerbox\emptybox \globallet\lastlayerxpos\!!zeropoint \globallet\lastlayerypos\!!zeropoint \ExpandBothAfter\doifinset\v!bottom{\layerparameter\c!corner} {\ifnum\layerparameter\c!line=\zerocount\else % can be < 0 \setevalue{\??ll\currentlayer\c!line}% {\the\numexpr-\layerparameter\c!line+\layoutlines+\plusone\relax}% \fi \ifdim\@@layerysiz>\zeropoint \advance\@@layerypos-\@@layerysiz \@@layerypos-\@@layerypos \@@layeryoff-\@@layeryoff \fi}% \ExpandBothAfter\doifinset\v!right{\layerparameter\c!corner} {\ifnum\layerparameter\c!column=\zerocount\else % can be < 0 \setevalue{\??ll\currentlayer\c!column}% {\the\numexpr-\layerparameter\c!column+\layoutcolumns+\plusone\relax}% \fi \ifdim\@@layerxsiz>\zeropoint \advance\@@layerxpos-\@@layerxsiz \@@layerxpos-\@@layerxpos \@@layerxoff-\@@layerxoff \fi}% \ExpandBothAfter\doif\v!middle{\layerparameter\c!corner} {\ifdim\@@layerxsiz>\zeropoint \advance\@@layerxpos.5\@@layerxsiz \fi \ifdim\@@layerysiz>\zeropoint \advance\@@layerypos.5\@@layerysiz \fi}% \edef\layerpage{\layerparameter\c!page}}% \doifsomething\layerpage {\edef\layerpage{:\layerpage}% \doifundefined{\@@layerbox#2\currentlayer\layerpage} {\global\expandafter\newbox\csname\@@layerbox#2\currentlayer\layerpage\endcsname}}% \dontcomplain % more comfortable \mathchardef\layerpagebox\csname\@@layerbox#2\currentlayer\layerpage\endcsname \ifvoid\layerpagebox \gsetboxllx\layerpagebox\zeropoint \gsetboxlly\layerpagebox\zeropoint \fi \global\setbox\layerpagebox\vbox %to \layerparameter\c!height % new, otherwise no negative y possible {\offinterlineskip %postpone, to after nextboxwd correction % \hsize\layerparameter\c!width % new, keep box small %\ifvoid\csname\@@layerbox\currentlayer\layerpage\endcsname\else % why not #2#1 \ifvoid\layerpagebox \let\lastlayerwidth \zeropoint \let\lastlayerheight\zeropoint \else \edef\lastlayerwidth {\the\wd\layerpagebox}% \edef\lastlayerheight{\the\ht\layerpagebox}% \ht\layerpagebox\zeropoint \dp\layerpagebox\zeropoint \wd\layerpagebox\zeropoint \doifnot{\layerparameter\c!direction}\v!reverse{\box\layerpagebox}% \fi % don't move \xdef\lastlayerwd{\the\nextboxwd}% \xdef\lastlayerht{\the\nextboxht}% % not entirely ok when grid ! \xdef\lastlayerdp{\the\nextboxdp}% % not entirely ok when grid ! % this code \doifelse{\layerparameter\c!location}\v!grid\donetrue\donefalse \ifdone \nextboxht\strutheight \nextboxdp\strutdepth \else \setbox\nextbox\hbox{\alignedbox[\layerparameter\c!location]\vbox{\flushnextbox}}% \fi \ifnum\layerparameter\c!line=\zerocount\else % no \ifcase, can be negative \advance\@@layerypos\dimexpr\layerparameter\c!line\lineheight+\topskip-\lineheight-\nextboxht\relax \fi \ifnum\layerparameter\c!column=\zerocount\else % no \ifcase, can be negative \advance\@@layerxpos\layoutcolumnoffset{\layerparameter\c!column}% \fi \ifdone \setbox\nextbox\hbox{\alignedbox[rb]\vbox{\flushnextbox}}% \fi % ll registration \scratchdimen\@@layerxpos \advance\scratchdimen\@@layerxoff \ifdim\scratchdimen<\getboxllx\layerpagebox \gsetboxllx\layerpagebox\scratchdimen \fi \ifcase\@@lacome\or % this test will become obsolete \advance\scratchdimen\nextboxwd \nextboxwd\ifdim\scratchdimen>\lastlayerwidth \scratchdimen \else \lastlayerwidth \fi \fi \scratchdimen\@@layerypos \advance\scratchdimen\@@layeryoff \ifdim\scratchdimen<\getboxlly\layerpagebox \gsetboxlly\layerpagebox\scratchdimen \fi % ll compensation \ifcase\@@lacome\or % this test will become obsolete \advance\scratchdimen\dimexpr\nextboxht+\nextboxdp\relax \nextboxht\ifdim\scratchdimen>\lastlayerheight \scratchdimen \else \lastlayerheight \fi \nextboxdp\zeropoint \fi % placement \hsize\layerparameter\c!width % new, keep box small \vbox to \layerparameter\c!height \bgroup \smashbox\nextbox \vskip\dimexpr\@@layerypos+\@@layeryoff\relax \hskip\dimexpr\@@layerxpos+\@@layerxoff\relax \flushnextbox \ifvoid\layerpagebox % already flushed \else % the reverse case % check ! \vskip-\dimexpr\@@layerypos+\@@layeryoff\relax \box\layerpagebox \fi \egroup}% % when position is true, the layerbox holds the compensation and needs % to be placed; never change this ! \ifvoid\layerbox\else\box\layerbox\fi} %D Given the task to be accomplished, the previous macro is %D not even that complicated. It mainly comes down to skipping %D to the right place and placing a box on top of or below the %D existing content. In the case of position tracking, another %D reference point is chosen. %D \macros %D {doifelselayerdata} %D \def\doifelselayerdata#1% {\ifundefined{\@@layerbox#1}% \@EA\secondoftwoarguments \else\ifvoid\csname\@@layerbox#1\endcsname \@EAEAEA\secondoftwoarguments \else \@EAEAEA\firstoftwoarguments \fi\fi} %D \macros %D {flushlayer} %D %D When we flush a layer, we flush both the main one and the %D page dependent one (when defined). This feature is more %D efficient in \ETEX\ since there testing for an undefined %D macro does not takes hash space. % todo: setups before flush, handy hook \unexpanded\def\flushlayer[#1]% {\doifelsevalue{\??ll#1\c!state}\v!next {\global\letvalue{\??ll#1\c!state}\v!start} % dangerous, stack-built-up {\doifelsevalue{\??ll#1\c!state}\v!continue {\global\letvalue{\??ll#1\c!state}\v!repeat} % dangerous, stack-built-up {\doifelsevalue{\??ll#1\c!doublesided}\v!yes {\doifundefinedelse{\@@layerbox#1}% {\dodoflushlayerA[#1]} {\doifbothsidesoverruled {\dodoflushlayerB\v!left [#1]}% left {\dodoflushlayerB\v!right[#1]}% right {\dodoflushlayerB\v!left [#1]}}}% left {\dodoflushlayerA[#1]}}}} \def\dodoflushlayerA[#1]% {\doifnotvalue{\??ll#1\c!state}\v!stop {\startoverlay {\dodoflushlayer1{#1}{#1}} {\dodoflushlayer0{#1}{#1:\realfolio}} \stopoverlay}} \def\dodoflushlayerB#1[#2]% {\doifnotvalue{\??ll#2\c!state}\v!stop {\startoverlay {\dodoflushlayer1{#2}{#2}} {\dodoflushlayer0{#2}{#2:\realfolio}} {\dodoflushlayer1{#2}{#1#2}} {\dodoflushlayer0{#2}{#1#2:\realfolio}} \stopoverlay}} \def\dodoflushlayer#1#2#3% {\ifundefined{\@@layerbox#3}% \ifcase#1\else\writestatus{layer}{unknown layer #3}\fi \else \bgroup \forgetall \offinterlineskip % needed because we need to handle method \executeifdefined{\??ll\??ll\getvalue{\??ll#2\c!preset}}\gobbletwoarguments{#2}{}% % \doifvalue{\??ll#2\c!option}\v!test\tracelayerstrue \iftracelayers\traceboxplacementtrue\fi \!!doneafalse \!!donebfalse \doifvalue{\??ll#2\c!method}\v!overlay\!!doneatrue \doifvalue{\??ll#2\c!method}\v!fit\!!donebtrue \!!donectrue \ifcase#1\else \doifnotvalue{\??ll#2\c!position}\v!yes {\doifvalue{\??ll#2\c!repeat}\v!yes\!!donecfalse \doifvalue{\??ll#2\c!state}\v!repeat\!!donecfalse}% \fi \mathchardef\layerbox\csname\@@layerbox#3\endcsname % we need to copy in order to retain the negative offsets for a next % stage of additions, i.e. llx/lly accumulate in repeat mode and the % compensation may differ each flush depending on added content \setbox\nextbox \if!!doneb % \vbox % {\scratchdimen\getboxlly\layerbox % \vskip-\scratchdimen % \scratchdimen\getboxllx\layerbox % \hskip-\scratchdimen % \advance\scratchdimen-\wd\layerbox % \hsize-\scratchdimen % \if!!donec\box\else\copy\fi\layerbox}% \vbox {\vskip-\getboxlly\layerbox \hskip-\getboxllx\layerbox \hsize-\dimexpr\getboxllx\layerbox-\wd\layerbox\relax \if!!donec\box\else\copy\fi\layerbox}% \else \if!!donec\box\else\copy\fi\layerbox % sorry for the delay due to copying \fi % todo: method=offset => overlayoffset right/down (handy for backgrounds with offset) \iftracelayers \ruledvbox \else \vbox \fi \if!!donea to \overlayheight \fi {\hbox \if!!donea to \overlaywidth \fi {% klopt dit? #3 en niet #2 ? \doifvalue{\??ll#3\realfolio\c!position}\v!yes{\xypos{lyr:#3:\realfolio}}% \doifoverlayelse{#3} {\box\nextbox} {\startlayoutcomponent{l:#3}{layer #3}\box\nextbox\stoplayoutcomponent}% \hss}% \vss}% \if!!donec \gsetboxllx\layerbox\zeropoint \gsetboxlly\layerbox\zeropoint \fi \egroup \fi} % \definelayer[test][method=fit] \setupcolors[state=start] \tracelayerstrue % % \framed[framecolor=red,offset=overlay]{\setlayer[test]{aa}\setlayer[test][x=10pt]{g}\flushlayer[test]} % \framed[framecolor=red,offset=overlay]{\setlayer[test]{aa}\setlayer[test][x=-10pt]{bb}\flushlayer[test]} % \framed[framecolor=red,offset=overlay]{\setlayer[test][x=-20pt]{cccccc}\flushlayer[test]} % \framed[framecolor=red,offset=overlay]{\setlayer[test]{dd}\setlayer[test][x=-20pt,y=-3pt]{eeeeee}\flushlayer[test]} %D \macros %D {composedlayer,placelayer,tightlayer} %D %D This is a handy shortcut, which saves a couple of braces %D when we use it as parameter. This name also suits better %D to other layering commands. \def\composedlayer#1{\flushlayer[#1]} \let\placelayer\flushlayer \def\tightlayer[#1]% {\hbox {\def\currentlayer{#1}% todo: left/right \setbox\nextbox\emptybox % hoogte/breedte are \wd\nextbox/\ht\nextbox \hsize\layerparameter\c!width % \overlaywidth = \hsize \vsize\layerparameter\c!height % \overlaywheight = \vsize \composedlayer{#1}}} %D \macros %D {resetlayer} %D %D This macro hardly needs an explanation (and is seldom %D needed as well). \def\doresetlayer#1% {\ifundefined{\@@layerbox#1}\else \global\setbox\csname\@@layerbox#1\endcsname\emptybox \fi} \def\resetlayer[#1]% {\doresetlayer{#1}% \doifvalue{\??ll#1\c!doublesided}\v!yes % kind of redundant test {\doresetlayer{\v!left #1}% \doresetlayer{\v!right#1}}% \doresetlayer{#1:\realfolio}} %D \macros %D {setMPlayer} %D %D The following layer macro uses the positions that are %D registered by \METAPOST. %D %D \starttyping %D \definelayer[test] %D %D \setMPlayer [test] [somepos-1] {Whatever we want here!} %D \setMPlayer [test] [somepos-2] {Whatever we need there!} %D \setMPlayer [test] [somepos-3] {\externalfigure[cow.mps][width=2cm]} %D %D \startuseMPgraphic{oeps} %D draw fullcircle scaled 10cm withcolor red ; %D register ("somepos-1",2cm,3cm,center currentpicture) ; %D register ("somepos-2",8cm,5cm,(-1cm,-2cm)) ; %D register ("somepos-3",0cm,0cm,(-2cm,2cm)) ; %D \stopuseMPgraphic %D %D \getMPlayer[test]{\useMPgraphic{oeps}} %D \stoptyping %D %D The last line is equivalent to %D %D \starttyping %D \framed %D [background={foreground,test},offset=overlay] %D {\useMPgraphic{oeps}} %D \stoptyping \def\setMPlayer {\dotripleempty\dosetMPlayer} \def\MPlayerwidth {\hsize} \def\MPlayerheight{\vsize} \def\dosetMPlayer[#1][#2][#3]% {\checkpositions % new, else only support after \starttext \edef\MPlayerwidth {\MPw{#2}}% \edef\MPlayerheight{\MPh{#2}}% \setlayer[#1][\c!x=\MPx{#2},\c!y=\MPy{#2},\c!position=\v!no,#3]} \def\getMPlayer {\dodoubleempty\dogetMPlayer} \def\dogetMPlayer[#1][#2]% {\framed [\c!background={\v!foreground,#1}, \c!frame=\v!off, \c!offset=\v!overlay,#2]} % Some day this (old) mechanism will be combined/integrated % in overlays \newskip\xposition \newskip\yposition \newskip\xdimension \newskip\ydimension \newskip\xoffset \newskip\yoffset % already defined \newbox\positionbox \def\startpositioning {\bgroup \xposition \zeropoint \yposition \zeropoint \xdimension\zeropoint \ydimension\zeropoint \xoffset \zeropoint \yoffset \zeropoint \hfuzz \paperwidth \vfuzz \paperheight \setbox\positionbox\hbox\bgroup} \def\stoppositioning {\doifnot\@@psoffset\v!yes {\global\xoffset\zeropoint \global\yoffset\zeropoint}% \global\advance\xdimension \xoffset \global\advance\ydimension \yoffset \egroup \vbox to \ydimension {\vskip\yoffset \hbox to \xdimension {\hskip\xoffset \box\positionbox \hfill} \vfill}% \egroup} \def\resetpositioning {\getparameters[\??ps] [\c!state=\v!start,% \c!unit=\s!cm,% \c!factor=1,% \c!scale=1,% \c!xfactor=\@@psfactor,% \c!yfactor=\@@psfactor,% \c!xscale=\@@psscale,% \c!yscale=\@@psscale,% \c!xstep=\v!absolute,% \c!ystep=\v!absolute,% \c!xoffset=\!!zeropoint,% \c!yoffset=\!!zeropoint]} \def\setuppositioning {\resetpositioning \dodoubleargument\getparameters[\??ps]} \def\calculateposition#1#2#3#4#5#6#7#8#9% {\setdimensionwithunit\scratchskip{#1}\@@psunit \scratchskip#8\scratchskip \scratchskip#9\scratchskip \advance\scratchskip #4\relax \doif{#2}\v!relative {\advance\scratchskip #3% \let#4\!!zeropoint}% #3\scratchskip\relax \doifnot\@@psstate\v!overlay {\scratchskip#5\relax \advance\scratchskip #3\relax \ifdim#3<-#7\relax \global#7-#3\relax \fi \ifdim\scratchskip>#6\relax \global#6\scratchskip\relax \fi}} \def\position {\dosingleempty\doposition} \def\doposition[#1]#2(#3,#4)% {\dowithnextbox {\bgroup \getparameters[\??ps][#1]% \dontcomplain \calculateposition{#3}\@@psxstep\xposition \@@psxoffset{\nextboxwd}\xdimension\xoffset \@@psxscale\@@psxfactor \scratchdimen\nextboxht \advance\scratchdimen \nextboxdp \calculateposition{#4}\@@psystep\yposition \@@psyoffset\scratchdimen\ydimension\yoffset \@@psyscale\@@psyfactor \vbox to \zeropoint % kan beter. {\vskip\yposition \hbox to \zeropoint {\hskip\xposition \flushnextbox \hss} \vss}% \xdef\dopoppositioning {\xposition\the\xposition \yposition\the\yposition \noexpand\def\noexpand\@@psxoffset{\@@psxoffset}% \noexpand\def\noexpand\@@psyoffset{\@@psyoffset}}% \egroup \dopoppositioning \ignorespaces} \hbox} \resetpositioning \setuppositioning [\c!unit=\s!cm, \c!factor=1, \c!scale=1, \c!xstep=\v!absolute, \c!ystep=\v!absolute, \c!offset=\v!yes, \c!xoffset=\!!zeropoint, \c!yoffset=\!!zeropoint] %D Watch out, a redefinition: \ifx\settextpagecontent\undefined \writestatus\m!systems{error in page-lyr.tex} \wait \fi \let\normalsettextpagecontent\settextpagecontent \definelayer [OTRTEXT] \setuplayer [OTRTEXT] [\c!width=\innermakeupwidth, \c!height=\textheight] % will be overloaded in page-spr \def\settextpagecontent#1#2#3% #2 and #3 will disappear {\doifelselayerdata{OTRTEXT} {\setbox#1\hbox to \makeupwidth {\startoverlay {\tightlayer[OTRTEXT]} % first, otherwise problems with toc {\normalsettextpagecontent{#1}{#2}{#3}\box#1} \stopoverlay}% \dp#1\zeropoint}% {\normalsettextpagecontent{#1}{#2}{#3}}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/font-run.mkii0000644000175000017500000002670314536300610024733 0ustar hillehille%D \module %D [ file=font-run, %D version=1998.09.11, % (second) %D version=2001.02.20, % (third) %D title=\CONTEXT\ Font Macros, %D subtitle=Runtime Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D [This code is hooked into the core macros and saves some %D format space.] \unprotect \gdef\@@onlyenglish#1% {\blank{\tttf \type {#1} is only available in the english interface}\blank} \gdef\dosetshowfonttitle#1% {\tabskip\zeropoint \parindent\zeropoint \setlocalhsize \doifelsenothing{#1} {\def\title{[\the\bodyfontsize]}} {\switchtobodyfont[#1]\def\title{[#1]}} \doifsomething\fontclass {\doifnot{[\fontclass]}\title {\edef\title{[\fontclass]\space\title}}}} \gdef\showbodyfont {\dosingleempty\doshowbodyfont} \gdef\doshowbodyfont[#1]% {\ifinsidefloat\else\startbaselinecorrection\fi \vbox {\dosetshowfonttitle{#1}% \def\bigstrut##1##2% {\hbox{\vrule \!!height##1\strutht \!!depth ##2\strutdp \!!width \zeropoint}} \def\next##1##2##3% {&&##1&&##2\tf##3&&##2\sc##3% &&##2\sl##3&&##2\it##3&&##2\bf##3&&##2\bs##3&&##2\bi##3% &&##2\tfx##3&&##2\tfxx##3% &&##2\tfa##3&&##2\tfb##3&&##2\tfc##3&&##2\tfd##3&\cr}% \halign to \localhsize {\bigstrut{1.5}{2}##&\vrule## \tabskip=\!!zeropoint \!!plus 1fill &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule## &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule## &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule## &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule## &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule## &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule## &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule \tabskip=\!!zeropoint\cr \noalign{\hrule} &\multispan{29}{\vrule\hfil\tttf\strut\title\hfil \llap{\string\mr\hbox to 1em{\hss:\hss}$\mr \languageparameter\c!text$\quad}\vrule}\cr \noalign{\hrule}\next{}{\tt\string}{} \noalign{\hrule}\next{\tt\string\rm}\rm{\languageparameter\c!text} \noalign{\hrule}\next{\tt\string\ss}\ss{\languageparameter\c!text} \noalign{\hrule}\next{\tt\string\tt}\tt{\languageparameter\c!text} \noalign{\hrule}}} \ifinsidefloat\else\stopbaselinecorrection\fi} \gdef\showbodyfontenvironment {\dosingleempty\doshowbodyfontenvironment} \gdef\doshowbodyfontenvironment[#1]% {\ifinsidefloat\else\startbaselinecorrection\fi \vbox {\dosetshowfonttitle{#1}% \def\next##1% {&&\getvalue{\bodyfontvariable{##1\s!text}}% &&\getvalue{\bodyfontvariable{##1\s!script}}% &&\getvalue{\bodyfontvariable{##1\s!scriptscript}}% &&\getvalue{\bodyfontvariable{##1\c!x}}% &&\getvalue{\bodyfontvariable{##1\c!xx}}% &&\getvalue{\bodyfontvariable{##1\interfaced\v!small}}% &&\getvalue{\bodyfontvariable{##1\interfaced\v!big}}% &&\edef\next{\getvalue{\bodyfontvariable{##1\c!interlinespace}}}\ifx\next\empty not set\else\next\fi&\cr \noalign{\hrule}} \halign to \localhsize {##&\vrule##\strut \tabskip=\!!zeropoint \!!plus 1fill &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule## &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule## &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule \tabskip\zeropoint\cr \noalign{\hrule} &\multispan{17}{\vrule\hfil\tttf\strut\title\hfil}\vrule\cr \noalign{\hrule} &&\tttf\tx\s!text&&\tttf\tx\s!script&&\tttf\tx\s!scriptscript &&\tttf\tx\c!x&&\tttf\tx\c!xx&&\tttf\tx\v!small&&\tttf\tx\v!big &&\tttf\tx\c!interlinespace&\cr \noalign{\hrule} \@EA\globalprocesscommalist\@EA[\bodyfontenvironmentlist]\next}} \ifinsidefloat\else\stopbaselinecorrection\fi} \gdef\showfont {\dodoubleempty\doshowfont} \gdef\doshowfont[#1][#2]% {\bgroup \boxrulewidth=.1pt \setupcolors[\c!state=\v!local]% \iffirstargument \definefont[\s!dummy][#1]\dummy \else\ifdim2.5em>.05\hsize \tx \ifdim2.5em>.05\hsize \txx \fi\fi\fi \ifinsidefloat\else\startbaselinecorrection\fi \vbox\bgroup \forgetall \startoverlay {\vbox {\tf \setstrut \dummy \localcolortrue \offinterlineskip \dostepwiserecurse{0}{15}{1} {\let\row\recurselevel \hbox {\red \dostepwiserecurse{0}{15}{1} {\let\col\recurselevel \@EA\scratchcounter\normaldblquote\hexnumber\row\hexnumber\col\relax \edef\rowcol{\the\scratchcounter}% \iffontchar\font\scratchcounter \setbox\scratchbox\ruledhbox{\black\char\scratchcounter}% \ifdim\wd\scratchbox>\zeropoint \donetrue \else \donefalse \fi \else \setbox\scratchbox\hbox{\gray\vrule\!!width1ex\!!height.5ex\!!depth.5ex}% \fi \startoverlay {\tf\vbox to 2.5em {\vss \hbox to 2.5em {\dummy\ifdim\interwordspace=\zeropoint \setbox\scratchbox\hbox {\raise.5\dp\scratchbox\hbox {\lower.5\ht\scratchbox\copy\scratchbox}}% \ht\scratchbox\zeropoint \dp\scratchbox\zeropoint \else \ht\scratchbox\strutht \dp\scratchbox\strutdp \strut \fi \hss\copy\scratchbox\hss} \vss}} {\tf\vbox to 2.3em {\ifdone \hsize2.4em \blue \edef\theshowfontspecs {\ifnum\hyphenchar\font=\rowcol hyph\else \ifnum\skewchar \font=\rowcol skew\fi\fi}% \tinyfont % after \edef, else wrong font analyzed \doifnot\v!unknown{#2}{{\red\theshowfontspecs}}\hfill\number\rowcol \vfill \octnumber\rowcol\hfill\lchexnumbers\rowcol \par \fi}} \stopoverlay}}} \par}} {\tf\basegrid[\c!nx=16,\c!ny=16,\c!dx=2.5,\c!dy=2.5,\c!unit=em]} \stopoverlay \nointerlineskip \vskip2pt % the \noexpand before \blank is needed for non etex \edef\ascii{name: {\noexpand\black\fontname\font}} \def\do##1##2{\ifx##1\undefined\else\ifx##1\empty\else##2\fi\fi}% \doifelse\v!unknown{#2} {\edef\theshowfontspecs {name: {\noexpand\black\fontname\font}}} {\edef\theshowfontspecs {name: {\noexpand\black\fontname\font}\noexpand\quad \do\currentencoding{encoding: {\noexpand\black\currentencoding\noexpand\quad}}% \do\currentmapping {mapping: {\noexpand\black\currentmapping \noexpand\quad}}% \do\fonthandling {handling: {\noexpand\black\fonthandling }}}}% \tf % also sets em \hbox to 40em{\blue\hfill\tinyfont\setstrut\strut\theshowfontspecs} \egroup \ifinsidefloat\else\stopbaselinecorrection\fi \egroup} \gdef\showfontstyle {\dotripleempty\doshowfontstyle} \gdef\doshowfontstyle[#1][#2][#3]% {\ifthirdargument \bgroup \raggedright \switchtobodyfont[#1] \def\dodocommand##1##2% {\starttextrule{\tttf #1 ##1 ##2} \nobreak \getvalue{##2}% \dorecurse{255} {\iffontchar\font\recurselevel\relax \char\recurselevel\relax\space \fi} \par \nobreak \stoptextrule} \def\docommand##1% {\getvalue{##1}\processcommacommand[#3]{\dodocommand{##1}}} \processcommalist[#2]\docommand \egroup \else\ifsecondargument \showfontstyle[#1][#2][\fontalternativelist]% math is gone \else \showfontstyle[#1][\c!rm]\showfontstyle[#1][\c!ss] \showfontstyle[#1][\c!tt]\showfontstyle[#1][\c!mm] \fi\fi} \gdef\showligature#1% {\hbox{\type{#1}\enspace\red\ruledhbox{\black#1}}} \gdef\showligatures[#1]% {\ifx\starttabulate\undefined \@@onlyenglish\showligatures \else \bgroup \setupcolors[\c!state=\v!local]% \def\show##1{\hbox{\red\ruledhbox{\black##1}}}% \definefont[\s!dummy][#1]\dummy \starttabulate[|*{9}{c|}] \NC\type{ff}\NC\type{fi}\NC\type{fl}\NC\type{ffi}\NC\type{ffl}\NC \type{``}\NC\type{''}\NC\type{--}\NC\type{---}\NC\NR \NC\show{ff}\NC\show{fi}\NC\show{fl}\NC\show{ffi}\NC\show{ffl}\NC \show{``}\NC\show{''}\NC\show{--}\NC\show{---}\NC\NR \stoptabulate \egroup \fi} \gdef\showfontstrip {\dosingleempty\doshowfontstrip} \gdef\doshowfontstrip[#1]% {\ifx\starttabulate\undefined \@@onlyenglish\showfontstrip \else \bgroup \def\dofontstripa##1##2% {\tttf\string##1} \def\dofontstripb##1##2% {\ruledhbox{\switchtobodyfont[#1]##1{##2}}} \def\dofontstripc##1##2% {\setbox\scratchbox\hbox{\switchtobodyfont[#1]##1{##2}}% \tt\tfx\the\ht\scratchbox}% \def\dofontstripd##1##2% {\setbox\scratchbox\hbox{\switchtobodyfont[#1]##1{##2}}% \tt\tfx\the\wd\scratchbox}% \def\fontstrip##1##2##3% {\NC##2\rm{##3}\NC ##2\ss{##3}\NC ##2\tt{##3}\NC ##2\mathematics{##3}\NC \tttf##1\NR} \starttabulate[|c|c|c|c|c|] \fontstrip\relax\dofontstripa\empty \TB \fontstrip\relax\dofontstripb{xxxx} \fontstrip\relax\dofontstripb{12345} \fontstrip\relax\dofontstripb{(Agw)} \TB \fontstrip{(x height)}\dofontstripc{x} \fontstrip{(m width)}\dofontstripd{m} \stoptabulate \egroup \fi} \ifx\databox\undefined \newbox\databox \fi \gdef\testminimalbaseline#1% {\setbox\databox\ruledhbox{#1}% \scratchdimen\ht\databox \advance\scratchdimen\dp\databox \scratchtoks{#1}% \expanded {\NC \ruledhbox{\the\scratchtoks} \noexpand \NC -> \noexpand \NC \the\scratchdimen \noexpand \NC = \noexpand \NC \the\ht\databox \noexpand \NC + \noexpand \NC \the\dp\databox \noexpand \NC \ifdim\scratchdimen<\baselineskip < \else\ifdim\scratchdimen=\baselineskip = \else > \fi\fi \noexpand \NC \the\baselineskip \noexpand \NC (\ifdim\scratchdimen>\baselineskip not \fi ok) \noexpand \NC \noexpand \NR }} \gdef\showminimalbaseline {\ifx\starttabulate\undefined \@@onlyenglish\showminimalbaseline \else \starttabulate[||T|T|T|T|T|T|T|T|T|] \testminimalbaseline{\hbox to 1em{\hss\showstruts\strut\hss}}% \testminimalbaseline{(/)}% \testminimalbaseline{$\frac{1}{2}x^2_3$} \stoptabulate \fi} \gdef\showkerning#1% {\bgroup \let\MPfshowcommand\ruledhbox \setMPtext\s!dummy{#1}% \startMPcode draw textext(\MPstring\s!dummy);\stopMPcode \egroup} \gdef\showcharratio {\dowithnextboxcontent {\switchtobodyfont[10pt]}% {(\expanded{\withoutpt\the\nextboxht},% \expanded{\withoutpt\the\nextboxdp})}% \hbox} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-004.mkii0000644000175000017500000003372214536300610024421 0ustar hillehille%D \module %D [ file=unic-004, %D version=2005.01.27, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 4, %D author=Mikael Persson \& Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startunicodevector 4 \expandafter\strippedcsname \ifcase\numexpr#1\relax \cyrillicEgrave \or % 04-00 \uchar0{200} aswell \cyrillicYO \or % 04-01 Capital YO (or IO) \cyrillicDJE \or % 04-02 \cyrillicGJE \or % 04-03 not in enco-uc.tex \cyrillicIE \or % 04-04 Ukrainian IE \cyrillicDZE \or % 04-05 \cyrillicII \or % 04-06 Byelorussian-ukrainian I \cyrillicYI \or % 04-07 \cyrillicJE \or % 04-08 same letter as latin J? \cyrillicLJE \or % 04-09 \cyrillicNJE \or % 04-0A \cyrillicTSHE \or % 04-0B \cyrillicKJE \or % 04-0C \cyrillicIgrave \or % 04-0D I with grave \cyrillicUSHRT \or % 04-0E \cyrillicDZHE \or % 04-0F \cyrillicA \or % 04-10 \cyrillicB \or \cyrillicV \or \cyrillicG \or \cyrillicD \or \cyrillicE \or \cyrillicZH \or \cyrillicZ \or \cyrillicI \or \cyrillicISHRT \or \cyrillicK \or \cyrillicL \or \cyrillicM \or \cyrillicN \or \cyrillicO \or \cyrillicP \or \cyrillicR \or \cyrillicS \or \cyrillicT \or \cyrillicU \or \cyrillicF \or \cyrillicH \or \cyrillicC \or \cyrillicCH \or \cyrillicSH \or \cyrillicSHCH \or \cyrillicHRDSN \or \cyrillicERY \or \cyrillicSFTSN \or \cyrillicEREV \or \cyrillicYU \or \cyrillicYA \or \cyrillica \or % 04-30 \cyrillicb \or \cyrillicv \or \cyrillicg \or \cyrillicd \or \cyrillice \or \cyrilliczh \or \cyrillicz \or \cyrillici \or \cyrillicishrt \or \cyrillick \or \cyrillicl \or \cyrillicm \or \cyrillicn \or \cyrillico \or \cyrillicp \or \cyrillicr \or \cyrillics \or \cyrillict \or \cyrillicu \or \cyrillicf \or \cyrillich \or \cyrillicc \or \cyrillicch \or \cyrillicsh \or \cyrillicshch \or \cyrillichrdsn \or \cyrillicery \or \cyrillicsftsn \or \cyrillicerev \or \cyrillicyu \or \cyrillicya \or % 044F \cyrillicegrave \or % 0450 not i enco-uc.tex but same as \uchar0{232} \cyrillicyo \or % 0451 small yo (or io) \cyrillicdje \or % 0452 serbian letter \cyrillicgje \or % 0453 macedonian letter not in enco-uc.tex \cyrillicie \or % 0454 ukrainian ie \cyrillicdze \or % 0455 macedonian zelo \cyrillicii \or % 0456 byelorussian-ukrainian i. \cyrillicyi \or % 0457 \cyrillicje \or % 0458 not in enco-uc.tex same as latin j? \cyrilliclje \or % 0459 \cyrillicnje \or % 045A \cyrillictshe \or % 045B \cyrillickje \or % 045C macedonian, not in enco-uc.tex \cyrillicigrave \or % 045D macedonian, cyr i with grave not in enco-uc.tex \cyrillicushrt \or % 045E \cyrillicdzhe \or % 045F \cyrillicOMEGA \or % 0460 Omega not in enco-uc.tex \cyrillicomega \or % 0461 omega not in enco-uc.tex \cyrillicYAT \or % 0462 Yat not in enco-uc.tex \cyrillicyat \or % 0463 Yat not in enco-uc.tex \cyrillicEiotified \or % 0464 iotified E not in enco-uc.tex \cyrilliceiotified \or % 0465 iotified e not in enco-uc.tex \cyrillicLITTLEYUS \or % 0466 Little Yus not in enco-enc.tex \cyrilliclittleyus \or % 0467 Little yus not in enco-enc.tex \cyrillicLITTLEYUSiotified \or % 0468 Little Yus iotified not in enco-enc.tex \cyrilliclittleyusiotified \or % 0469 Little yus iotified not in enco-enc.tex \cyrillicBIGYUS \or % 046A Big Yus not in enco-enc.tex \cyrillicbigyus \or % 046B Big yus not in enco-enc.tex \cyrillicBIGYUSiotified \or % 046C Big Yus iotified not in enco-enc.tex \cyrillicbigyusiotified \or % 046D Big yus iotified not in enco-enc.tex \cyrillicKSI \or % 046E Ksi not in enco-enc.tex \cyrillicksi \or % 046F ksi not in enco-enc.tex \cyrillicPSI \or % 0470 Psi not in enco-enc.tex \cyrillicpsi \or % 0471 psi not in enco-enc.tex \cyrillicFITA \or % 0472 Fita not in enco-enc.tex \cyrillicfita \or % 0473 fita not in enco-enc.tex \cyrillicIZHITSA \or % 0474 Izhitsa not in enco-enc.tex \cyrillicizhitsa \or % 0475 izhitsa not in enco-enc.tex \cyrillicIZHITSAdoublegrave \or % 0476 Izhitsa double grave not in enco-enc.tex \cyrillicizhitsadoublegrave \or % 0477 izhitsa double grave not in enco-enc.tex \cyrillicUK \or % 0478 UK not in enco-enc.tex \cyrillicuk \or % 0479 uk not in enco-enc.tex \cyrillicOMEGAround \or % 047A Round Omega not in enco-enc.tex \cyrillicomegaround \or % 047B Round omega not in enco-enc.tex \cyrillicOMEGAtitlo \or % 047C Omega with titlo not in enco-enc.tex \cyrillicomegatitlo \or % 047D omega with titlo not in enco-enc.tex \cyrillicOT \or % 047E OT not in enco-enc.tex \cyrillicot \or % 047F ot not in enco-enc.tex \cyrillicKOPPA \or % 0480 KOPPA not in enco-enc.tex \cyrillickoppa \or % 0481 koppa not in enco-enc.tex \unknownchar \or % 0482 \cyrillicTITLO \or % 0483 TITLO not in enco-enc.tex \cyrillicPALATALIZATION \or % 0484 PALATALIZATION not in enco-enc.tex \cyrillicDASIAPNEUMATA \or % 0485 DASIA PNEUMATA not in enco-enc.tex \cyrillicPSILIPNEUMATA \or % 0486 PSILI PNEUMATA not in enco-enc.tex \unknownchar \or % 0487 \unknownchar \or % 0488 \unknownchar \or % 0489 \cyrillicISHRTtail \or % 048A ISHRT with tail not in enco-enc.tex \cyrillicishrttail \or % 048B ishrt with tail not in enco-enc.tex \cyrillicSEMISOFT \or % 048C SEMISOFT not in enco-enc.tex \cyrillicsemisoft \or % 048D semisoft not in enco-enc.tex \cyrillicERtick \or % 048E ER with tick not in enco-enc.tex \cyrillicertick \or % 048F er with tick not in enco-enc.tex \cyrillicGHEupturn \or % 0490 GHE with upturn not in enco-enc.tex \cyrillicgheupturn \or % 0491 ghe with upturn not in enco-enc.tex \cyrillicGHEstroke \or % 0492 GHE with stroke not in enco-enc.tex \cyrillicghestroke \or % 0493 ghe with stroke not in enco-enc.tex \cyrillicGHEmidhook \or % 0494 GHE with middle hook \cyrillicghemidhook \or % 0495 ghe with middle hook \cyrillicZHEdescender \or % 0496 ZHE with descender \cyrilliczhedescender \or % 0497 zhe with descender \cyrillicZDSC \or % 0498 ZE with descender \cyrilliczdsc \or % 0499 ze with descender \cyrillicKADC \or % 049A KA with descender \cyrillickadc \or % 049B ka with descender \cyrillicKAvertstroke \or % 049C KA with vertical stroke \cyrillickavertstroke \or % 049D ka with vertical stroke \cyrillicKAstroke \or % 049E KA with stroke \cyrillickastroke \or % 049F ka with stroke \cyrillicKAbashkir \or % 04A0 KA bashkir \cyrillickabashkir \or % 04A1 ka bashkir \cyrillicENDC \or % 04A2 EN with descender \cyrillicendc \or % 04A3 en with descender \cyrillicENGHE \or % 04A4 EN GHE \cyrillicenghe \or % 04A5 en ghe \cyrillicPEmidhook \or % 04A6 PE with middle hook \cyrillicpemidhook \or % 04A7 pe with middle hook \cyrillicHA \or % 04A8 Abkhasian HA \cyrillicha \or % 04A9 Abkhasian ha \cyrillicSDSC \or % 04AA S with descender \cyrilliccdsc \or % 04AB s with descender \cyrillicTEDC \or % 04AC TE with descender \cyrillictedc \or % 04AD te with descender \cyrillicYstr \or % 04AE Y straight \cyrillicystr \or % 04AF y straight \cyrillicYstrstroke \or % 04B0 Y straight with stroke \cyrillicystrstroke \or % 04B1 y straight with stroke \cyrillicHADC \or % 04B2 HA with descender \cyrillichadc \or % 04B3 ha with descender \cyrillicTETSE \or % 04B4 TE TSE \cyrillictetse \or % 04B5 te tse \cyrillicCHEDC \or % 04B6 CHE with descender \cyrillicchedc \or % 04B7 che with descender \cyrillicCHEvertstroke \or % 04B8 CHE with vertical stroke \cyrillicchevertstroke \or % 04B9 che with vertical stroke \cyrillicSHHA \or % 04BA SHHA \cyrillicshha \or % 04BB \cyrillicCHEabkhasian \or % 04BC Abkhasian CHE \cyrilliccheabkhasian \or % 04BD Abkhasian che \cyrillicCHEDCabkhasian \or % 04BE Abkhasian CHE with descender \cyrillicchedcabkhasian \or % 04BF Abkhasian che with descender \cyrillicPALOCHKA \or % 04C0 PALOCHKA \cyrillicZHEbreve \or % 04C1 ZHE with breve \cyrilliczhebreve \or % 04C2 zhe with breve \cyrillicKAhook \or % 04C3 KA with hook \cyrillickahook \or % 04C4 ka with hook \cyrillicELtail \or % 04C5 EL with tail \cyrilliceltail \or % 04C6 el with tail \cyrillicENhook \or % 04C7 EN with hook \cyrillicenhook \or % 04C8 en with hook \cyrillicENtail \or % 04C9 EN with tail \cyrillicentail \or % 04CA en with tail \cyrillicCHEkhakassian \or % 04CB Khakassian CHE \cyrillicchekhakassian \or % 04CC Khakassian che \cyrillicEMtail \or % 04CD EM with tail \cyrillicemtail \or % 04CE em with tail \unknownchar \or % 04CF Added to fix off-by-1 error \cyrillicAbreve \or % 04D0 A with breve (\uchar1{2}) \cyrillicabreve \or % 04D1 a with breve (\uchar1{3}) \cyrillicAdiaeresis \or % 04D2 A with diaeresis (\uchar0{196}) \cyrillicadiaeresis \or % 04D3 a with diaeresis (\uchar0{228}) \cyrillicAE \or % 04D4 AE (\uchar0{198}) \cyrillicae \or % 04D5 ae (\uchar0{230}) \cyrillicEbreve \or % 04D6 \cyrillicebreve \or % 04D7 \cyrillicSCHWA \or % 04D8 \cyrillicschwa \or % 04D9 \cyrillicSCHWAdiaeresis \or % 04DA \cyrillicschwadiaeresis \or % 04DB \cyrillicZHEdiaeresis \or % 04DC \cyrilliczhediaeresis \or % 04DD \cyrillicZEdiaeresis \or % 04DE \cyrilliczediaeresis \or % 04DF \cyrillicDZEabkhasian \or % 04E0 \cyrillicdzeabkhasian \or % 04E1 \cyrillicImacron \or % 04E2 \cyrillicimacron \or % 04E3 \cyrillicIdiaeresis \or % 04E4 \cyrillicidiaeresis \or % 04E5 \cyrillicOdiaeresis \or % 04E6 \cyrillicodiaeresis \or % 04E7 \cyrillicObarred \or % 04E8 \cyrillicobarred \or % 04E9 \cyrillicObarreddiaeresis \or % 04EA \cyrillicobarreddiaeresis \or % 04EB \cyrillicEdiaeresis \or % 04EC \cyrillicediaeresis \or % 04ED \cyrillicUmacron \or % 04EE \cyrillicumacron \or % 04EF \cyrillicUdiaeresis \or % 04F0 \cyrillicudiaeresis \or % 04F1 \cyrillicUdoubleacute \or % 04F2 \cyrillicudoubleacute \or % 04F3 \cyrillicCHEdiaeresis \or % 04F4 \cyrillicchediaeresis \or % 04F5 \unknownchar \or % 04F6 \unknownchar \or % 04F7 \cyrillicYERUdiaeresis \or % 04F8 \cyrillicyerudiaeresis \else \unknownchar \fi \stopunicodevector \protect \endinput % \enableregime[utf] % % \definetypeface [russian] [rm] [serif] [computer-modern] [default] [encoding=t2a] % % \setupbodyfont[russian] % % \starttext % % \startbuffer % Мама и Папа % Some russian characters % \stopbuffer % % \utfunicodetracer=0 \blank \getbuffer \blank % \utfunicodetracer=2 \blank \getbuffer \blank % \utfunicodetracer=7 \blank \getbuffer \blank % % \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/page-app.mkii0000644000175000017500000001476314536300610024660 0ustar hillehille%D \module %D [ file=page-app, % from meta-fig %D version=1998.01.15, %D title=\CONTEXT\ Page Macros, %D subtitle=Independent page building, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Page Macros / Applications} %D The fitting page code is moved from \type {meta-fig} to %D here. \unprotect \definepapersize [\??fp\s!dummy] [\c!width=\fittingwd, \c!height=\fittinght] \definelayout [\??fp\s!dummy] [\c!width=\fittingwd,\c!height=\fittinght,\c!location=\v!middle, \c!topspace=\!!zeropoint,\c!backspace=\!!zeropoint, \c!cutspace=\!!zeropoint,\c!bottomspace=\!!zeropoint, \c!textdistance=\!!zeropoint,\c!lines=0,\c!grid=\v!no, \c!top=\!!zeropoint,\c!bottom=\!!zeropoint, \c!margin=\!!zeropoint,\c!edge=\!!zeropoint, \c!leftmargin=\!!zeropoint,\c!leftedge=\!!zeropoint, \c!rightmargin=\!!zeropoint,\c!rightedge=\!!zeropoint, \c!header=\!!zeropoint,\c!footer=\!!zeropoint] \def\dostartfittingpage[#1][#2]% {\page % this is kind of tricky! there can be preceding page refs \autostarttext \bgroup % resulting in a zero height page; test fig-make ! \def\currentfittingpage{#1}% \dontcomplain % runs under current page regime, i.e. page variables passed to mp \getparameters[\currentfittingpage][\c!paper=,#2]% auto or size or nothing \setbox\scratchbox\hbox \bgroup % needed later \getparameters[\currentfittingpage][\c!paper=,#2]% auto or size or nothing \doifvalue{\currentfittingpage\c!margin}\v!page % undocumented {\offsetbox [\c!leftoffset=\backspace, \c!rightoffset=\cutspace, \c!topoffset=\topspace, \c!bottomoffset=\bottomspace]\hbox}% \bgroup \scale[\c!scale=\getvalue{\currentfittingpage\c!scale}]% \bgroup\localframed[\currentfittingpage]% \bgroup} \def\dostopfittingpage {\egroup % localframed \egroup % scale \egroup % offsetbox \egroup % scratchbox \edef\fittingwd{\the\wd\scratchbox}% \edef\fittinght{\the\ht\scratchbox}% \startlocallayout \ifdim\fittinght<\lineheight % write status : too small \setbox\scratchbox\vbox to \lineheight{\vss\box\scratchbox\vss}% \edef\fittinght{\the\lineheight}% \fi \let\checkcurrentlayout\relax % else interference with odd/even layout \processaction [\getvalue{\currentfittingpage\c!paper}] [ \v!auto=>\let\fittingpapersize\printpapersize, \s!unknown=>\let\fittingpapersize\commalistelement, \s!default=>\def\fittingpapersize{\??fp\s!dummy}]% \expanded{\setuppapersize[\??fp\s!dummy][\fittingpapersize]}% \definelayout [\v!page]% [\c!location=\v!middle, \c!width=\fittingwd, \c!height=\fittinght]% \setuplayout [\v!page]% \startmakeup[\v!standard][\c!textstate=\v!empty,\c!doublesided=\v!no,\c!page=]% \centerbox{\box\scratchbox}% \stopmakeup \stoplocallayout \egroup \autostoptext} %D \TEX\ pages (for \METAPOST\ pages, see \type {meta-fig}): \presetlocalframed[\??tg] \def\setupTEXpage {\dodoubleargument\getparameters[\??tg]} \def\startTEXpage {\dosingleempty\dostartTEXpage} \def\dostartTEXpage[#1]% {\dostartfittingpage[\??tg][#1]\gobblespacetokens} \def\stopTEXpage {\removelastspace \dostopfittingpage} \setupTEXpage [\c!scale=1000, \c!strut=\v!no, \c!align=\v!normal, % needed, else problems ! \c!offset=\v!overlay, \c!width=\v!fit, \c!height=\v!fit, \c!frame=\v!off] %D For Mojca: %D %D \starttyping %D \startTEXstream \chapter{Bla} Hello world!\crlf Hello world! \stopTEXstream %D \startTEXpage \chapter{Bla} Hello world!\crlf Hello world! \stopTEXpage %D \stoptyping %D %D maybe I should support stream=yes in framed. \def\startTEXstream {\dosingleempty\dostartTEXstream} \def\dostartTEXstream[#1]% {\page \defineoutputstream[tex]% \enableoutputstream[tex]% \def\stopTEXstream {\disableoutputstream \startTEXpage \outputstreamunvbox[tex]% \stopTEXpage}} %D Application pages (for an example, see \type {m-pstric}): \def\@@texapp{texapp} \def\@@texdim{texdim} \def\saveTEXapplication#1#2% {\immediate\openout\scratchwrite=\bufferprefix\@@texdim.tmp \immediate\write\scratchwrite{\dimen#1=\the\ht\scratchbox}% \immediate\write\scratchwrite{\dimen#2=\the\wd\scratchbox}% \immediate\closeout\scratchwrite} \def\restoreTEXapplication {\readlocfile{\bufferprefix\@@texdim.tmp}\donothing\donothing} \def\startTEXapplication {\dosingleempty\dostartTEXapplication} \long\def\dostartTEXapplication[#1]#2#3\stopTEXapplication {\bgroup \bgroup \let\f!temporaryextension\c!tex \setbuffer[\@@texapp]% \starttext #2% preamble \startTEXpage[#1]% \topskip\zeropoint \setbox\scratchbox\hbox{#3}% \saveTEXapplication02% dimensions \box\scratchbox \stopTEXpage \stoptext \endbuffer \egroup \doifelse\jobsuffix{dvi}\donetrue\donefalse \executesystemcommand{texexec \bufferprefix\@@texapp.tex --once --batch}% \ifdone % eps \executesystemcommand{dvips -E* -o \@@texapp.eps \@@texapp}% \else % pdf \executesystemcommand{dvips \bufferprefix\@@texapp}% \executesystemcommand{ps2pdf \bufferprefix\@@texapp.ps \bufferprefix\@@texapp.pdf}% % \executesystemcommand{texmfstart pstopdf \bufferprefix\@@texapp.ps \bufferprefix\@@texapp.pdf}% \fi \restoreTEXapplication % dimensions \doifelse\jobsuffix{dvi}\donetrue\donefalse \setbox\scratchbox\hbox {\expanded{\externalfigure [\bufferprefix\@@texapp.\ifdone eps\else pdf\fi] [\c!object=\v!no]}}% \setbox\scratchbox\hbox {\lower\ht\scratchbox\hbox{\raise\dimen2\box\scratchbox}}% \wd\scratchbox\dimen0 \ht\scratchbox\dimen2 \dp\scratchbox\zeropoint \box\scratchbox \egroup} %D \macros %D {startpagefigure} %D %D \starttyping %D \starttext \pagefigure[two.1] \stoptext %D \stoptyping \def\startpagefigure {\dodoubleempty\dostartpagefigure} \def\dostartpagefigure[#1][#2]% {\bgroup \getparameters[\??ex][\c!offset=\v!overlay,#2]% \startTEXpage[\c!offset=\@@exoffset]% \externalfigure[#1][#2]\ignorespaces} % so we can put some text below the graphic \def\stoppagefigure {\stopTEXpage \egroup} \def\pagefigure {\dodoubleempty\dopagefigure} \def\dopagefigure[#1][#2]% {\dostartpagefigure[#1][#2]\stoppagefigure} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-tr.mkii0000644000175000017500000000576614536300610024546 0ustar hillehille%D \module %D [ file=spec-tr, %D version=1996.01.25, %D title=\CONTEXT\ Special Macros, %D subtitle=Thomas Rokicki's \DVIPS, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Especially the rotation proved to be incompatible with %D the default \POSTSCRIPT\ special driver. Many thanks to %D Gilbert van den Dobbelsteen for testing and hacking the %D \DVIPS\ source and pinpointing the problem. %D \macros %D {doinsertfile} %D %D We overrule the figure||insertion special. Things should %D be more accurate, but maybe someday \unknown \startspecials[rokicki] \def\@@insertpostscriptliteral {ps: } \def\@@insertpostscriptretain {" } %D Ugly but useful: \definefileinsertion{tr}{eps} {\bgroup \PointsToWholeBigPoints\@@DriverImageWidth \width \PointsToWholeBigPoints\@@DriverImageHeight\height \special {PSfile="\@@DriverImageFile"\space llx=\EPSllx\space lly=\EPSlly\space urx=\EPSurx\space ury=\EPSury\space \ifdim\@@DriverImageWidth >\zeropoint rwi=\width 0\space\fi \ifdim\@@DriverImageHeight>\zeropoint rhi=\height0 \fi}% \egroup} \definefileinsertion{tr}{mps} {\hbox {\convertMPcolors\@@DriverImageFile \dofileinsertion{tr}{eps}}} \definespecial\doinsertfile {\dofileinsertion{tr}\@@DriverImageType} %D Some MP stuff: \definespecial\doinsertMPfile#1% {\doiffileelse{./#1}{\includeMPasEPS{./#1}}{\message{[MP #1]}}} %D \macros %D {dostartrotation} %D %D Because \DVIPS\ uses a reverse rotation scheme, we have %D to add an extra \type{neg} to the default \POSTSCRIPT\ %D rotation definition: \definespecial\dostartrotation#1% straight from the YandY manual / 1st neg added {\special {\@@insertpostscriptliteral gsave currentpoint currentpoint translate \number#1\space\space neg rotate neg exch neg exch translate}} \definespecial\dostoprotation {\special {\@@insertpostscriptliteral currentfont currentpoint grestore moveto setfont}} %D Drawing ovals in \DVIPS\ is complicated by the fact that %D the colors get reset. Therefore we need a more literal %D approach and therefore scale to local units. By redefining %D the retain constant into a macro, we can use the already %D present \POSTSCRIPT\ definition (see \type{spec-ps}). \definespecial\doovalbox#1#2#3#4#5#6#7#8% variant not yet supported {\bgroup \edef\@@insertpostscriptretain gsave% {\@@insertpostscriptliteral gsave Resolution 72 div VResolution 72 div neg scale currentpoint translate}% \dosomeovalbox{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}% \egroup} %D \macros %D {dosetuppaper} %D %D Relatively new: \definespecial\dosetuppaper#1#2#3% {\begingroup \!!dimena#2% \!!dimenb#3% \special{papersize=\the\!!dimena,\the\!!dimenb}% \endgroup} \stopspecials \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-pat.mkii0000644000175000017500000001015314536300610024724 0ustar hillehille%D \module %D [ file=supp-pat, %D version=2005.02.12, %D title=\CONTEXT\ Support Macros, %D subtitle=Patterns, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D We support: %D %D \starttyping %D \patterns { %D ...[namedglyphs]... %D } %D \stoptyping %D %D as well as: %D %D \starttyping %D %D ...&namedglyphs;... %D %D \stoptyping %D %D The \XML\ variant has very limited \XML\ parsing capabilities and %D is meant as an experiment. \ifx\writestatus\undefined \else \writestatus{loading}{ConTeXt Support Macros / Patterns} \fi %D \CONTEXT: \ifx\startmapping\undefined \else \ifx\startencoding\undefined \else \def\fetchpatterntoken#1{\csname#1\endcsname} \fi \fi %D First we define the \ETEX\ variant. We cannot do that inside %D the if statement because normal \TEX\ gets confused over the %D csname test (which it does not see as if but it does see the %D else's and fi's). \def\etexfetchpatterntoken#1% {\csname \ifcsname @pattok@#1\endcsname @pattok@#1% \else\ifcsname#1\endcsname #1% \else @pattok@default% \fi\fi \endcsname} \ifx \fetchpatterntoken \undefined \ifx \eTeXversion \undefined \def\fetchpatterntoken#1% {\csname \expandafter\ifx\csname @pattok@#1\endcsname\relax \expandafter\ifx\csname#1\endcsname\relax @pattok@default% \else #1% \fi \else @pattok@#1% \fi \endcsname} \else \let\fetchpatterntoken\etexfetchpatterntoken \fi \fi \def\definepatterntoken #1 #2 % {\expandafter\def\csname @pattok@#1\endcsname{#2}} %D \TEX\ based: \bgroup \catcode`\[=\active \gdef\enablepatterntokens {\catcode`\[=\active \let[\handlepatterntoken} \egroup \def\handlepatterntoken#1]% {\fetchpatterntoken{#1}} %D \XML\ based: \bgroup \catcode`\<=\active \catcode`\&=\active \gdef\enablepatternxml {\catcode`\<=\active \catcode`\&=\active \let&\handlepatternentity \let<\handlepatternxml} \egroup \def\handlepatternentity#1;% {\fetchpatterntoken{#1}} %D We use a very simple \XML\ parser, and we only trigger on the first %D two characters of the tag name. Consider this feature a playground %D (and a bit of a joke). \def\handlepatternxml#1#2% we only distinguish the first two chars {\csname @patxml@\ifcsname @patxml@#1#2\endcsname#1#2\else de\fi\endcsname} \def\definepatternxml #1#2#3 #4% {\expandafter\def\csname @patxml@#1#2\endcsname{#4}} \def\fetchpatternxml#1#2>% {\bgroup \long\def\next##1>{\egroup}% \catcode`\<=2 % \@@endgroup \afterassignment\next #1\bgroup} \def\gobblepatternxml {\bgroup \catcode`\%=11 \dogobblepatternxml} \long\def\dogobblepatternxml#1>% {\egroup} %D Here are the default definitions. We don't catch empty elements. \definepatternxml patterns {\fetchpatternxml\patterns} \definepatternxml hyphenations {\fetchpatternxml\hyphenation} \definepatternxml pattern {\fetchpatternxml\patterns} \definepatternxml hyphenation {\fetchpatternxml\hyphenation} \definepatternxml default {\gobblepatternxml} \definepatterntoken default x \ifx\pattern \undefined \let\pattern \patterns \fi \ifx\hyphenations\undefined \let\hyphenations\hyphenation \fi %D An example of usage in another format than \CONTEXT: %D %D \starttyping %D \bgroup %D %D \lccode"E4="E4 \definepatterntoken adiaeresis ^^e4 %D \lccode"F6="F6 \definepatterntoken odiaeresis ^^f6 %D \lccode"FC="FC \definepatterntoken ediaeresis ^^fc %D \lccode"FF="FF \definepatterntoken ssharp ^^ff %D %D \enablepatterntokens %D \enablepatternxml %D %D \input lang-de.pat %D \input lang-de.hyp %D %D \egroup %D \stoptyping %D %D This is a minimal example for EC encoding, and of course %D a couple of more language related settings need to take %D place (like uc mappings). \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/type-siz.mkii0000644000175000017500000004115414536300610024744 0ustar hillehille%D \module %D [ file=type-siz, %D version=2001.04.12, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Sizing scripts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \starttypescriptcollection[size] \starttypescript [serif] [default] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [rm] [default] \stoptypescript \starttypescript [sans] [default] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [ss] [default] \stoptypescript \starttypescript [mono] [default] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [tt] [default] \stoptypescript \starttypescript [math,boldmath] [default] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [mm] [default] \stoptypescript \starttypescript [bfmath] [default] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [mm] [bfmath] \stoptypescript \starttypescript [handwriting] [default] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [hw] [default] \stoptypescript \starttypescript [calligraphy] [default] [size] \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [cg] [default] \stoptypescript \starttypescript [casual] [default] [size] % maps onto rm ! \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [rm] [default] \stoptypescript \starttypescript [all] [dtp] [size] \definebodyfontenvironment [4pt] [\s!text=4pt,\s!script=4pt,\s!scriptscript=4pt, \c!x=4pt,\c!xx=4pt,\c!big=6pt,\c!small=4pt] \definebodyfontenvironment [5pt] [\s!text=5pt,\s!script=5pt,\s!scriptscript=5pt, \c!x=5pt,\c!xx=5pt,\c!big=7pt,\c!small=5pt] \definebodyfontenvironment [6pt] [\s!text=6pt,\s!script=5pt,\s!scriptscript=5pt, \c!x=5pt,\c!xx=5pt,\c!big=8pt,\c!small=5pt] \definebodyfontenvironment [7pt] [\s!text=7pt,\s!script=6pt,\s!scriptscript=5pt, \c!x=6pt,\c!xx=5pt,\c!big=9pt,\c!small=5pt] \definebodyfontenvironment [8pt] [\s!text=8pt,\s!script=6pt,\s!scriptscript=5pt, \c!x=6pt,\c!xx=5pt,\c!big=10pt,\c!small=6pt] \definebodyfontenvironment [9pt] [\s!text=9pt,\s!script=7pt,\s!scriptscript=5pt, \c!x=7pt,\c!xx=5pt,\c!big=11pt,\c!small=7pt] \definebodyfontenvironment [10pt] [\s!text=10pt,\s!script=7pt,\s!scriptscript=5pt, \c!x=8pt,\c!xx=6pt,\c!big=12pt,\c!small=8pt] \definebodyfontenvironment [11pt] [\s!text=11pt,\s!script=8pt,\s!scriptscript=6pt, \c!x=9pt,\c!xx=7pt,\c!big=13pt,\c!small=9pt] \definebodyfontenvironment [12pt] [\s!text=12pt,\s!script=9pt,\s!scriptscript=7pt, \c!x=10pt,\c!xx=8pt,\c!big=14pt,\c!small=10pt] \definebodyfontenvironment [13pt] [\s!text=13pt,\s!script=10pt,\s!scriptscript=8pt, \c!x=11pt,\c!xx=9pt,\c!big=16pt,\c!small=11pt] \definebodyfontenvironment [14pt] [\s!text=14pt,\s!script=10pt,\s!scriptscript=7pt, \c!x=12pt,\c!xx=10pt,\c!big=16pt,\c!small=12pt] \definebodyfontenvironment [16pt] [\s!text=16pt,\s!script=12pt,\s!scriptscript=9pt, \c!x=13pt,\c!xx=11pt,\c!big=18pt,\c!small=14pt] % suboptimal math sizes \definebodyfontenvironment [18pt] [\s!text=18pt,\s!script=16pt,\s!scriptscript=14pt, \c!x=16pt,\c!xx=14pt,\c!big=22pt,\c!small=16pt] \definebodyfontenvironment [22pt] [\s!text=22pt,\s!script=22pt,\s!scriptscript=18pt, \c!x=18pt,\c!xx=16pt,\c!big=28pt,\c!small=18pt] \definebodyfontenvironment [28pt] [\s!text=28pt,\s!script=22pt,\s!scriptscript=18pt, \c!x=22pt,\c!xx=18pt,\c!big=28pt,\c!small=22pt] \stoptypescript \starttypescript [serif] [dtp] [size] \definebodyfont [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] [rm] [default] \stoptypescript \starttypescript [sans] [dtp] [size] \definebodyfont [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] [ss] [default] \stoptypescript \starttypescript [mono] [dtp] [size] \definebodyfont [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] [tt] [default] \stoptypescript \starttypescript [math,boldmath] [dtp] [size] \definebodyfont [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] [mm] [default] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[size-mkii] % todo: instead of assuming designsize we will set it explicitly (saves these % -1000 problems at the lua end) % cmr \starttypescript [serif] [computer-modern] [size] \definebodyfont [12pt] [rm] [tf=cmr12, bf=cmbx12, it=cmti12, sl=cmsl12, bi=cmbxti10 at 12pt, bs=cmbxsl10 at 12pt, sc=cmcsc10 at 12pt] \definebodyfont [11pt] [rm] [tf=cmr10 at 11pt, bf=cmbx10 at 11pt, sl=cmsl10 at 11pt, it=cmti10 at 11pt, bi=cmbxti10 at 11pt, bs=cmbxsl10 at 11pt, sc=cmcsc10 at 11pt] \definebodyfont [10pt] [rm] [tf=cmr10, bf=cmbx10, it=cmti10, sl=cmsl10, bi=cmbxti10, bs=cmbxsl10, sc=cmcsc10] \definebodyfont [9pt] [rm] [tf=cmr9, bf=cmbx9, it=cmti9, sl=cmsl9, bi=cmbxti10 at 9pt, bs=cmbxsl10 at 9pt, sc=cmcsc10 at 9pt] \definebodyfont [8pt] [rm] [tf=cmr8, bf=cmbx8, it=cmti8, sl=cmsl8, bi=cmbxti10 at 8pt, bs=cmbxsl10 at 8pt, sc=cmcsc10 at 8pt] \definebodyfont [7pt] [rm] [tf=cmr7, bf=cmbx7, it=cmti10 at 7pt, sl=cmsl10 at 7pt, bi=cmbxti10 at 7pt, bs=cmbxsl10 at 7pt, sc=cmcsc10 at 7pt] \definebodyfont [6pt] [rm] [tf=cmr6, bf=cmbx6, it=cmti10 at 6pt, sl=cmsl10 at 6pt, bi=cmbxti10 at 6pt, bs=cmbxsl10 at 6pt, sc=cmcsc10 at 6pt] \definebodyfont [5pt] [rm] [tf=cmr5, bf=cmbx5, it=cmti10 at 5pt, sl=cmsl10 at 5pt, bi=cmbxti10 at 5pt, bs=cmbxsl10 at 5pt, sc=cmcsc10 at 5pt] \definebodyfont [4pt] [rm] [tf=cmr10 at 4pt, bf=cmbx10 at 4pt, it=cmti10 at 4pt, sl=cmsl10 at 4pt, bi=cmbxti10 at 4pt, bs=cmbxsl10 at 4pt, sc=cmr10 at 4pt] \definebodyfont [14.4pt,17.3pt,20.7pt] [rm] [tf=cmr12 sa 1, bf=cmbx12 sa 1, it=cmti12 sa 1, sl=cmsl12 sa 1, bi=cmbxti10 sa 1, bs=cmbxsl10 sa 1, sc=cmcsc10 sa 1] \stoptypescript \starttypescript [sans] [computer-modern] [size] \definebodyfont [12pt] [ss] [tf=cmss12, bf=cmssbx10 at 12pt, it=cmssi12, sl=cmssi12, bi=cmssbx10 at 12pt, bs=cmssbx10 at 12pt, sc=cmss10 at 12pt] \definebodyfont [11pt] [ss] [tf=cmss10 at 11pt, bf=cmssbx10 at 11pt, it=cmssi10 at 11pt, sl=cmssi10 at 11pt, bi=cmssbx10 at 11pt, bs=cmssbx10 at 11pt, sc=cmss10 at 11pt] \definebodyfont [10pt] [ss] [tf=cmss10, bf=cmssbx10, it=cmssi10, sl=cmssi10, bi=cmssbx10, bs=cmssbx10, sc=cmss10] \definebodyfont [9pt] [ss] [tf=cmss9, bf=cmssbx10 at 9pt, it=cmssi9, sl=cmssi9, bi=cmssbx10 at 9pt, bs=cmssbx10 at 9pt, sc=cmss9] \definebodyfont [8pt] [ss] [tf=cmss8, bf=cmssbx10 at 8pt, it=cmssi8, sl=cmssi8, bi=cmssbx10 at 8pt, bs=cmssbx10 at 8pt, sc=cmss8] \definebodyfont [7pt] [ss] [tf=cmss10 at 7pt, bf=cmssbx10 at 7pt, it=cmssi10 at 7pt, sl=cmssi10 at 7pt, bs=cmssbx10 at 7pt, bi=cmssbx10 at 7pt, sc=cmss10 at 7pt] \definebodyfont [6pt] [ss] [tf=cmss10 at 6pt, bf=cmssbx10 at 6pt, it=cmssi10 at 6pt, sl=cmssi10 at 6pt, bs=cmssbx10 at 6pt, bi=cmssbx10 at 6pt, sc=cmss10 at 6pt] \definebodyfont [5pt] [ss] [tf=cmss10 at 5pt, bf=cmssbx10 at 5pt, it=cmssi10 at 5pt, sl=cmssi10 at 5pt, bs=cmssbx10 at 5pt, bi=cmssbx10 at 5pt, sc=cmss10 at 5pt] \definebodyfont [4pt] [ss] [tf=cmss10 at 4pt, bf=cmssbx10 at 4pt, it=cmssi10 at 4pt, sl=cmssi10 at 4pt, bs=cmssbx10 at 4pt, bi=cmssbx10 at 4pt, sc=cmss10 at 4pt] \definebodyfont [14.4pt,17.3pt,20.7pt] [ss] [tf=cmss12 sa 1, bf=cmssbx10 sa 1, it=cmssi12 sa 1, sl=cmssi12 sa 1, bi=cmssbx10 sa 1, bs=cmssbx10 sa 1, sc=cmss12 sa 1] \stoptypescript \starttypescript [mono] [computer-modern] [size] \definebodyfont [12pt] [tt] [tf=cmtt12, sl=cmsltt10 at 12pt, it=cmitt10 at 12pt, sc=cmtcsc10 at 12pt] \definebodyfont [9pt] [tt] [tf=cmtt9, sl=cmsltt10 at 9pt, it=cmitt10 at 9pt, sc=cmtcsc10 at 9pt] \definebodyfont [8pt] [tt] [tf=cmtt8, sl=cmsltt10 at 8pt, it=cmitt10 at 8pt, sc=cmtcsc10 at 8pt] \definebodyfont [11pt,10pt,7pt,6pt,5pt,4pt] [tt] [tf=cmtt10 sa 1, sl=cmsltt10 sa 1, it=cmitt10 sa 1, sc=cmtcsc10 sa 1] \definebodyfont [14.4pt,17.3pt,20.7pt] [tt] [tf=cmtt12 sa 1, sl=cmsltt10 sa 1, it=cmitt10 sa 1, sc=cmtcsc10 sa 1] \stoptypescript \starttypescript [math] [modern,computer-modern,latin-modern] [size] % hack to prevent mapping of filenames, watch the space! before % latin modern came aroudn we needed this trick to make sure that % we loaded the raw cmr12 etc instead of the ones mapped onto % an encoding (this trick is no longer needed with lm) % % \definefontsynonym[xcmr12][cmr12 ] % \definefontsynonym[xcmr10][cmr10 ] % \definefontsynonym[xcmr9] [cmr9 ] % \definefontsynonym[xcmr8] [cmr8 ] % \definefontsynonym[xcmr7] [cmr7 ] % \definefontsynonym[xcmr6] [cmr6 ] % \definefontsynonym[xcmr5] [cmr5 ] \definefontsynonym[xcmr12][rm-lmr12] \definefontsynonym[xcmr10][rm-lmr10] \definefontsynonym[xcmr9] [rm-lmr9] \definefontsynonym[xcmr8] [rm-lmr8] \definefontsynonym[xcmr7] [rm-lmr7] \definefontsynonym[xcmr6] [rm-lmr6] \definefontsynonym[xcmr5] [rm-lmr5] \definebodyfont [12pt] [mm] [mr=xcmr12, ex=cmex10 at 12pt, mi=cmmi12, sy=cmsy10 at 12pt] \definebodyfont [11pt] [mm] [mr=xcmr10 at 11pt, ex=cmex10 at 11pt, mi=cmmi10 at 11pt, sy=cmsy10 at 11pt] \definebodyfont [10pt] [mm] [mr=xcmr10, ex=cmex10, mi=cmmi10, sy=cmsy10] \definebodyfont [9pt] [mm] [mr=xcmr9, ex=cmex10 at 9pt, mi=cmmi9, sy=cmsy9] \definebodyfont [8pt] [mm] [mr=xcmr8, ex=cmex10 at 8pt, mi=cmmi8, sy=cmsy8] \definebodyfont [7pt] [mm] [mr=xcmr7, ex=cmex10 at 7pt, mi=cmmi7, sy=cmsy7] \definebodyfont [6pt] [mm] [mr=xcmr6, ex=cmex10 at 6pt, mi=cmmi6, sy=cmsy6] \definebodyfont [5pt] [mm] [mr=xcmr5, ex=cmex10 at 5pt, mi=cmmi5, sy=cmsy5] \definebodyfont [4pt] [mm] [mr=xcmr5 at 4pt, ex=cmex10 at 4pt, mi=cmmi5 at 4pt, sy=cmsy5 at 4pt] \definebodyfont [14.4pt,17.3pt,20.7pt] [mm] [mr=xcmr12 sa 1, ex=cmex10 sa 1, mi=cmmi12 sa 1, sy=cmsy10 sa 1] \stoptypescript \starttypescript [boldmath] [modern,computer-modern,latin-modern] [size] % hack to prevent mapping of filenames, watch the space! \definefontsynonym[xcmb12][cmbx12 ] \definefontsynonym[xcmb10][cmbx10 ] \definefontsynonym[xcmb9] [cmbx9 ] \definefontsynonym[xcmb8] [cmbx8 ] \definefontsynonym[xcmb7] [cmbx7 ] \definefontsynonym[xcmb6] [cmbx6 ] \definefontsynonym[xcmb5] [cmbx5 ] \definebodyfont [12pt] [mm] [mr=xcmb12, ex=cmex10 at 12pt, mi=cmmib10 at 12pt, sy=cmbsy10 at 12pt] \definebodyfont [11pt] [mm] [mr=xcmb10 at 11pt, ex=cmex10 at 11pt, mi=cmmib10 at 11pt, sy=cmbsy10 at 11pt] \definebodyfont [10pt] [mm] [mr=xcmb10, ex=cmex10, mi=cmmib10, sy=cmbsy10] \definebodyfont [9pt] [mm] [mr=xcmb9, ex=cmex10 at 9pt, mi=cmmib10 at 9pt, sy=cmbsy10 at 9pt] \definebodyfont [8pt] [mm] [mr=xcmb8, ex=cmex10 at 8pt, mi=cmmib7 at 8pt, sy=cmbsy7 at 8pt] \definebodyfont [7pt] [mm] [mr=xcmb7, ex=cmex10 at 7pt, mi=cmmib7, sy=cmbsy7] \definebodyfont [6pt] [mm] [mr=xcmb6, ex=cmex10 at 6pt, mi=cmmib5 at 6pt, sy=cmbsy5 at 6pt] \definebodyfont [5pt] [mm] [mr=xcmb5, ex=cmex10 at 5pt, mi=cmmib5, sy=cmbsy5] \definebodyfont [4pt] [mm] [mr=xcmb5 at 4pt, ex=cmex10 at 4pt, mi=cmmib5 at 4pt, sy=cmbsy5 at 4pt] \definebodyfont [14.4pt,17.3pt,20.7pt] [mm] [mr=xcmb12 sa 1, ex=cmex10 sa 1, mi=cmmib10 sa 1, sy=cmbsy10 sa 1] \stoptypescript \starttypescript [bfmath] [modern,computer-modern,latin-modern] [size] % hack to prevent mapping of filenames, watch the space! \definefontsynonym[xcmb12][cmbx12 ] \definefontsynonym[xcmb10][cmbx10 ] \definefontsynonym[xcmb9] [cmbx9 ] \definefontsynonym[xcmb8] [cmbx8 ] \definefontsynonym[xcmb7] [cmbx7 ] \definefontsynonym[xcmb6] [cmbx6 ] \definefontsynonym[xcmb5] [cmbx5 ] \definebodyfont [12pt] [mm] [mrbf=xcmb12, exbf=cmex10 at 12pt, mibf=cmmib10 at 12pt, sybf=cmbsy10 at 12pt] \definebodyfont [11pt] [mm] [mrbf=xcmb10 at 11pt, exbf=cmex10 at 11pt, mibf=cmmib10 at 11pt, sybf=cmbsy10 at 11pt] \definebodyfont [10pt] [mm] [mrbf=xcmb10, exbf=cmex10, mibf=cmmib10, sybf=cmbsy10] \definebodyfont [9pt] [mm] [mrbf=xcmb9, exbf=cmex10 at 9pt, mibf=cmmib10 at 9pt, sybf=cmbsy10 at 9pt] \definebodyfont [8pt] [mm] [mrbf=xcmb8, exbf=cmex10 at 8pt, mibf=cmmib7 at 8pt, sybf=cmbsy7 at 8pt] \definebodyfont [7pt] [mm] [mrbf=xcmb7, exbf=cmex10 at 7pt, mibf=cmmib7, sybf=cmbsy7] \definebodyfont [6pt] [mm] [mrbf=xcmb6, exbf=cmex10 at 6pt, mibf=cmmib5 at 6pt, sybf=cmbsy5 at 6pt] \definebodyfont [5pt] [mm] [mrbf=xcmb5, exbf=cmex10 at 5pt, mibf=cmmib5, sybf=cmbsy5] \definebodyfont [4pt] [mm] [mrbf=xcmb5 at 4pt, exbf=cmex10 at 4pt, mibf=cmmib5 at 4pt, sybf=cmbsy5 at 4pt] \definebodyfont [14.4pt,17.3pt,20.7pt] [mm] [mrbf=xcmb12 sa 1, exbf=cmex10 sa 1, mibf=cmmib10 sa 1, sybf=cmbsy10 sa 1] \stoptypescript \starttypescript [serif] [concrete] [size] \definebodyfont [10pt,11pt,12pt,14.4pt,17.3pt] [rm] [tf=ccr10 sa 1, it=ccti10 sa 1, sl=ccsl10 sa 1, sc=cccsc10 sa 1] \definebodyfont [5pt,6pt,7pt,8pt,9pt] [rm] [it=ccr9 sa 1, sl=ccr9 sa 1, sc=ccr9 sa 1] \definebodyfont [9pt] [rm] [tf=ccr9] \definebodyfont [8pt] [rm] [tf=ccr8] \definebodyfont [7pt] [rm] [tf=ccr7] \definebodyfont [6pt] [rm] [tf=ccr6] \definebodyfont [5pt] [rm] [tf=ccr5] \stoptypescript \starttypescript [math] [euler] [size] \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm] [mr=zeurm10 sa 1, ex=zeuex10 sa 1, sy=zeusm10 sa 1, mi=eufm10 sa 1] \definebodyfont [6pt,7pt,8pt] [mm] [mr=zeurm7 sa 1, sy=zeusm7 sa 1, mi=eufm7 sa 1, ex=zeuex10 sa 1] \definebodyfont [5pt] [mm] [mr=zeurm5, sy=zeusm5, mi=eufm5, ex=zeuex10 at 5pt] \stoptypescript \starttypescript [bfmath] [euler] [size] \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm] [mrbf=zeurb10 sa 1, exbf=zeuex10 sa 1, sybf=zeusb10 sa 1, mibf=eufb10 sa 1] \definebodyfont [6pt,7pt,8pt] [mm] [mrbf=zeurb7 sa 1, sybf=zeusb7 sa 1, mibf=eufb7 sa 1, exbf=zeuex10 sa 1] \definebodyfont [5pt] [mm] [mrbf=zeurb5, sybf=zeusb5, mibf=eufb5, exbf=zeuex10 at 5pt] \stoptypescript \starttypescript [boldmath] [euler] [size] \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm] [mr=zeurb10 sa 1, ex=zeuex10 sa 1, sy=zeusb10 sa 1, mi=eufb10 sa 1] \definebodyfont [6pt,7pt,8pt] [mm] [mr=zeurb7 sa 1, sy=zeusb7 sa 1, mi=eufb7 sa 1, ex=zeuex10 sa 1] \definebodyfont [5pt] [mm] [mr=zeurb5, sy=zeusb5, mi=eufb5, ex=zeuex10 at 5pt] \stoptypescript \starttypescript [math] [modern,computer-modern,latin-modern,ams] [size] \definebodyfont [17.3pt,14.4pt,12pt,11pt,10pt,9pt] [mm] [ma=msam10 sa 1, mb=msbm10 sa 1] \definebodyfont [8pt,7pt] [mm] [ma=msam7 sa 1, mb=msbm7 sa 1] \definebodyfont [6pt,5pt,4pt] [mm] [ma=msam5 sa 1, mb=msbm5 sa 1] \stoptypescript \starttypescript [math] [times] [size] \mapfontsize [5pt] [6.0pt] \mapfontsize [6pt] [6.8pt] \mapfontsize [7pt] [7.6pt] \mapfontsize [8pt] [8.4pt] \mapfontsize [9pt] [9.2pt] \mapfontsize [10pt] [10pt] \mapfontsize [11pt] [10.8pt] \mapfontsize [12pt] [11.6pt] \mapfontsize [14.4pt] [13.2pt] \stoptypescript \stoptypescriptcollection \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-cyr.mkii0000644000175000017500000004763514536300610024706 0ustar hillehille%D \module %D [ file=lang-cyr, %D version=2003.01.24, %D title=\CONTEXT\ Language Macros, %D subtitle=Cyrillic Languages, %D author=see below, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Language Macros / Cyrillic Languages} %D The cyrillic languages always use a dedicated input regime. %D Therefore we define the labels using symbolic names. %D Support for cyrillic is initiated by Olga Briginets who %D also layed the base for the language, encoding and font %D definition. Later Alexander Bokovoy and Victor Figurnov %D improved things. I (Hans Hagen) mainly cleaned things up %D a bit. \unprotect \installlanguage [\s!ru] [\s!lefthyphenmin=2, \s!righthyphenmin=2, \c!spacing=\v!packed, \c!leftsentence=\leftguillemot, \c!rightsentence=\rightguillemot, \c!leftsubsentence=\lowerleftdoubleninequote, \c!rightsubsentence=\upperrightdoubleninequote, \c!leftquote=\lowerleftdoubleninequote, \c!rightquote=\upperrightdoubleninequote, \c!leftquotation=\leftguillemot, \c!rightquotation=\rightguillemot, \c!date={\v!day,\ ,\v!month,\ ,\v!year}, \s!mapping=t2a, \s!encoding=t2a] \installlanguage [\s!ua] [\s!lefthyphenmin=2, \s!righthyphenmin=2, \c!spacing=\v!packed, \c!leftsentence=\leftguillemot, \c!rightsentence=\rightguillemot, \c!leftsubsentence=\lowerleftdoubleninequote, \c!rightsubsentence=\upperrightdoubleninequote, \c!leftquote=\lowerleftdoubleninequote, \c!rightquote=\upperrightdoubleninequote, \c!leftquotation=\leftguillemot, \c!rightquotation=\rightguillemot, \c!date={\v!day,\ ,\v!month,\ ,\v!year}, \s!patterns=\s!uk, \s!mapping=t2a, \s!encoding=t2a] \installlanguage [russian] [\s!ru] \installlanguage [ukrainian] [\s!ua] %D Labels and header texts. \setupheadtext [\s!ru] [ \v!content=\cyrillicS \cyrillico \cyrillicd \cyrillice \cyrillicr \cyrilliczh \cyrillica \cyrillicn \cyrillici \cyrillice] \setupheadtext [\s!ua] [\v!content=\cyrillicZ \cyrillicm \cyrillicii \cyrillics \cyrillict] \setupheadtext [\s!ru] [\v!tables=\cyrillicS \cyrillicp \cyrillici \cyrillics \cyrillico \cyrillick \space \cyrillict \cyrillica \cyrillicb \cyrillicl \cyrillici \cyrillicc] \setupheadtext [\s!ua] [\v!tables=\cyrillicP \cyrillice \cyrillicr \cyrillice \cyrillicl \cyrillicii \cyrillick \space \cyrillict \cyrillica \cyrillicb \cyrillicl \cyrillici \cyrillicc \cyrillicsftsn] \setupheadtext [\s!ru] [\v!figures=\cyrillicS \cyrillicp \cyrillici \cyrillics \cyrillico \cyrillick \space \cyrillici \cyrillicl \cyrillicl \cyrillicyu\cyrillics \cyrillict \cyrillicr \cyrillica \cyrillicc \cyrillici \cyrillicishrt] \setupheadtext [\s!ua] [\v!figures=\cyrillicP \cyrillice \cyrillicr \cyrillice \cyrillicl \cyrillicii \cyrillick \space \cyrillicii \cyrillicl \cyrillicyu\cyrillics \cyrillict \cyrillicr \cyrillica \cyrillicc \cyrillicii\cyrillicishrt] \setupheadtext [\s!ru] [\v!graphics=\cyrillicS \cyrillicp \cyrillici \cyrillics \cyrillico \cyrillick \space \cyrillicg \cyrillicr \cyrillica \cyrillicf \cyrillici \cyrillick \cyrillico \cyrillicv] \setupheadtext [\s!ua] [\v!graphics=\cyrillicP \cyrillice \cyrillicr \cyrillice \cyrillicl \cyrillicii \cyrillick \space \cyrillicg \cyrillicr \cyrillica \cyrillicf \cyrillicii\cyrillick \cyrillico \cyrillicv] \setupheadtext [\s!ru] [\v!intermezzi=\cyrillicS \cyrillicp \cyrillici \cyrillics \cyrillico \cyrillick \space \cyrillicv \cyrillics \cyrillict \cyrillica \cyrillicv \cyrillico \cyrillick] \setupheadtext [\s!ua] [\v!intermezzi=\cyrillicP \cyrillice \cyrillicr \cyrillice \cyrillicl \cyrillicii \cyrillick \space \cyrillicv \cyrillics \cyrillict \cyrillica \cyrillicv \cyrillico \cyrillick] \setupheadtext [\s!ru] [\v!index=\cyrillicA \cyrillicl \cyrillicf \cyrillica \cyrillicv \cyrillici \cyrillict \cyrillicn \cyrillicery \cyrillicishrt \space \cyrillicu \cyrillick \cyrillica \cyrillicz \cyrillica \cyrillict \cyrillice \cyrillicl \cyrillicsftsn] \setupheadtext [\s!ua] [\v!index=\cyrillicP \cyrillico \cyrillick \cyrillica \cyrilliczh\cyrillicch \cyrillici \cyrillick] \setupheadtext [\s!ru] [\v!abbreviations=\cyrillicS \cyrillicp \cyrillici \cyrillics \cyrillico \cyrillick \space \cyrillics \cyrillico \cyrillick \cyrillicr \cyrillica \cyrillicshch \cyrillice \cyrillicn \cyrillici \cyrillicishrt] \setupheadtext [\s!ua] [\v!abbreviations=\cyrillicP \cyrillice \cyrillicr \cyrillice \cyrillicl \cyrillicii \cyrillick \space \cyrillics \cyrillick \cyrillico \cyrillicr \cyrillico \cyrillicch\cyrillice \cyrillicn \cyrillicsftsn] \setupheadtext [\s!ru] [\v!logos=\cyrillicL \cyrillico \cyrillicg \cyrillico \cyrillict \cyrillici \cyrillicp \cyrillicery] \setupheadtext [\s!ua] [\v!logos=\cyrillicL \cyrillico \cyrillicg \cyrillico \cyrillict \cyrillici \cyrillicp \cyrillici] \setupheadtext [\s!ru] [\v!units=\cyrillicE \cyrillicd \cyrillici \cyrillicn \cyrillici \cyrillicc \cyrillicery \space \cyrillici \cyrillicz \cyrillicm \cyrillice \cyrillicr \cyrillice \cyrillicn \cyrillici \cyrillicya] \setupheadtext [\s!ua] [\v!units=\cyrillicO \cyrillicd \cyrillici \cyrillicn \cyrillici \cyrillicc \cyrillicii\space \cyrillicv \cyrillici \cyrillicm \cyrillicii \cyrillicr \cyrillicu] \setuplabeltext [\s!ru] [\v!table=\cyrillicT \cyrillica \cyrillicb \cyrillicl \cyrillici \cyrillicc \cyrillica \space] \setuplabeltext [\s!ua] [\v!table=\cyrillicT \cyrillica \cyrillicb \cyrillicl \cyrillici \cyrillicc \cyrillicya\space] \setuplabeltext [\s!ru] [\v!figure=\cyrillicR \cyrillici \cyrillics \cyrillicu \cyrillicn \cyrillico \cyrillick \space] \setuplabeltext [\s!ua] [\v!figure=\cyrillicM \cyrillica \cyrillicl \cyrillicyu\cyrillicn \cyrillico \cyrillick \space] \setuplabeltext [\s!ru] [\v!intermezzo=\cyrillicV \cyrillics \cyrillict \cyrillica \cyrillicv \cyrillick \cyrillica \space] \setuplabeltext [\s!ua] [\v!intermezzo=\cyrillicV \cyrillics \cyrillict \cyrillica \cyrillicv \cyrillick \cyrillica \space] \setuplabeltext [\s!ru] [\v!graphic=\cyrillicG \cyrillicr \cyrillica \cyrillicf \cyrillici \cyrillick \space] \setuplabeltext [\s!ua] [\v!graphic=\cyrillicG \cyrillicr \cyrillica \cyrillicf \cyrillici \cyrillick \space] \setuplabeltext [\s!ru] [\v!chapter=] \setuplabeltext [\s!ua] [\v!chapter=] \setuplabeltext [\s!ru] [\v!section=] \setuplabeltext [\s!ua] [\v!section=] \setuplabeltext [\s!ru] [\v!subsection=] \setuplabeltext [\s!ua] [\v!subsection=] \setuplabeltext [\s!ru] [\v!subsubsection=] \setuplabeltext [\s!ua] [\v!subsubsection=] \setuplabeltext [\s!ru] [\v!subsubsubsection=] \setuplabeltext [\s!ua] [\v!subsubsubsection=] \setuplabeltext [\s!ru] [\v!appendix=] \setuplabeltext [\s!ua] [\v!appendix=] \setuplabeltext [\s!ru] [\v!part=\cyrillicCH\cyrillica \cyrillics \cyrillict \cyrillicsftsn \space] \setuplabeltext [\s!ua] [\v!part=\cyrillicCH\cyrillica \cyrillics \cyrillict \cyrillici \cyrillicn \cyrillica \space] \setuplabeltext [\s!ru] [\v!line=\cyrillics \cyrillict \cyrillicr \cyrillico \cyrillick \cyrillica \space] \setuplabeltext [\s!ua] [\v!line=\cyrillicr \cyrillicya\cyrillicd \cyrillico \cyrillick \space] \setuplabeltext [\s!ru] [\v!lines=\cyrillics \cyrillict \cyrillicr \cyrillico \cyrillick \cyrillici \space] \setuplabeltext [\s!ua] [\v!lines=\cyrillicr \cyrillicya\cyrillicd \cyrillick \cyrillici \space] \setuplabeltext [\s!ru] [\v!page=\cyrillics \cyrillict \cyrillicr \cyrillica \cyrillicn \cyrillici \cyrillicc \cyrillica \space] \setuplabeltext [\s!ua] [\v!page=\cyrillics \cyrillict \cyrillico \cyrillicr \cyrillicii\cyrillicn \cyrillick \cyrillica \space ] \setuplabeltext [\s!ru] [\v!atpage=\cyrillicn \cyrillica \space \cyrillics \cyrillict \cyrillicr \cyrillica \cyrillicn \cyrillici \cyrillicc \cyrillice \space] \setuplabeltext [\s!ua] [\v!atpage=\cyrillicn \cyrillica \space \cyrillics \cyrillict \cyrillico \cyrillicr \cyrillicii\cyrillicn \cyrillicc \cyrillicii\space ] \setuplabeltext [\s!ru] [\v!hencefore=\cyrillics \cyrillicm.\space \cyrillicv \cyrillicery \cyrillicsh \cyrillice] \setuplabeltext [\s!ua] [\v!hencefore=\cyrillicya\cyrillick \space \cyrillicp \cyrillico \cyrillick \cyrillica \cyrillicz \cyrillica \cyrillicn \cyrillico \space \cyrillicv \cyrillici \cyrillicshch \cyrillice] \setuplabeltext [\s!ru] [\v!hereafter=\cyrillics \cyrillicm.\space \cyrillicn \cyrillici \cyrilliczh \cyrillice] \setuplabeltext [\s!ua] [\v!hereafter=\cyrillicya\cyrillick \space \cyrillicp \cyrillico \cyrillick \cyrillica \cyrillicz \cyrillica \cyrillicn \cyrillico \space \cyrillicn \cyrillici \cyrilliczh \cyrillicch\cyrillice] \setuplabeltext [\s!ru] [\v!see=\cyrillics \cyrillicm.\space] \setuplabeltext [\s!ua] [\v!see=\cyrillicd \cyrillici \cyrillicv.\space ] \setuplabeltext [\s!ru] [\v!january=\cyrillicya\cyrillicn \cyrillicv \cyrillica \cyrillicr \cyrillicya] \setuplabeltext [\s!ru] [\v!february=\cyrillicf \cyrillice \cyrillicv \cyrillicr \cyrillica \cyrillicl \cyrillicya] \setuplabeltext [\s!ru] [\v!march=\cyrillicm \cyrillica \cyrillicr \cyrillict \cyrillica] \setuplabeltext [\s!ru] [\v!april=\cyrillica \cyrillicp \cyrillicr \cyrillice \cyrillicl \cyrillicya] \setuplabeltext [\s!ru] [\v!may=\cyrillicm \cyrillica \cyrillicya] \setuplabeltext [\s!ru] [\v!june=\cyrillici \cyrillicyu\cyrillicn \cyrillicya] \setuplabeltext [\s!ru] [\v!july=\cyrillici \cyrillicyu\cyrillicl \cyrillicya] \setuplabeltext [\s!ru] [\v!august=\cyrillica \cyrillicv \cyrillicg \cyrillicu \cyrillics \cyrillict \cyrillica] \setuplabeltext [\s!ru] [\v!september=\cyrillics \cyrillice \cyrillicn \cyrillict \cyrillicya\cyrillicb \cyrillicr \cyrillicya] \setuplabeltext [\s!ru] [\v!october=\cyrillico \cyrillick \cyrillict \cyrillicya\cyrillicb \cyrillicr \cyrillicya] \setuplabeltext [\s!ru] [\v!november=\cyrillicn \cyrillico \cyrillicya \cyrillicb \cyrillicr \cyrillicya] \setuplabeltext [\s!ru] [\v!december=\cyrillicd \cyrillice \cyrillick \cyrillica \cyrillicb \cyrillicr \cyrillicya] \setuplabeltext [\s!ua] [\v!january=\cyrillics \cyrillicii\cyrillicch \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!february=\cyrillicl \cyrillicyu\cyrillict \cyrillico \cyrillicg \cyrillico] \setuplabeltext [\s!ua] [\v!march=\cyrillicb \cyrillice \cyrillicr \cyrillice \cyrillicz \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!april=\cyrillick \cyrillicv \cyrillicii \cyrillict \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!may=\cyrillict \cyrillicr \cyrillica \cyrillicv \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!june=\cyrillicch\cyrillice \cyrillicr \cyrillicv \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!july=\cyrillicl \cyrillici \cyrillicp \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!august=\cyrillics \cyrillice \cyrillicr \cyrillicp \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!september=\cyrillicv \cyrillice \cyrillicr \cyrillice \cyrillics \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!october=\cyrilliczh\cyrillico \cyrillicv \cyrillict \cyrillicn \cyrillicya] \setuplabeltext [\s!ua] [\v!november=\cyrillicl \cyrillici \cyrillics \cyrillict \cyrillico \cyrillicp \cyrillica \cyrillicd \cyrillica] \setuplabeltext [\s!ua] [\v!december=\cyrillicg \cyrillicr \cyrillicu \cyrillicd \cyrillicn \cyrillicya] \setuplabeltext [\s!ru] [\v!sunday=\cyrillicv \cyrillico \cyrillics \cyrillick \cyrillicr \cyrillice \cyrillics \cyrillice \cyrillicn \cyrillicsftsn \cyrillice] \setuplabeltext [\s!ru] [\v!monday=\cyrillicp \cyrillico \cyrillicn \cyrillice \cyrillicd \cyrillice \cyrillicl \cyrillicsftsn \cyrillicn \cyrillici \cyrillick] \setuplabeltext [\s!ru] [\v!tuesday=\cyrillicv \cyrillict \cyrillico \cyrillicr \cyrillicn \cyrillici \cyrillick] \setuplabeltext [\s!ru] [\v!wednesday=\cyrillics \cyrillicr \cyrillice \cyrillicd \cyrillica] \setuplabeltext [\s!ru] [\v!thursday=\cyrillicch\cyrillice \cyrillict \cyrillicv \cyrillice \cyrillicr \cyrillicg] \setuplabeltext [\s!ru] [\v!friday=\cyrillicp \cyrillicya\cyrillict \cyrillicn \cyrillici \cyrillicc \cyrillica] \setuplabeltext [\s!ru] [\v!saturday=\cyrillics \cyrillicu \cyrillicb \cyrillicb \cyrillico \cyrillict \cyrillica] \setuplabeltext [\s!ua] [\v!sunday=\cyrillicn \cyrillice \cyrillicd \cyrillicii\cyrillicl \cyrillicya] \setuplabeltext [\s!ua] [\v!monday=\cyrillicp \cyrillico \cyrillicn \cyrillice \cyrillicd \cyrillicii \cyrillicl \cyrillico \cyrillick] \setuplabeltext [\s!ua] [\v!tuesday=\cyrillicv \cyrillicii\cyrillicv \cyrillict \cyrillico \cyrillicr \cyrillico \cyrillick] \setuplabeltext [\s!ua] [\v!wednesday=\cyrillics \cyrillice \cyrillicr \cyrillice \cyrillicd \cyrillica] \setuplabeltext [\s!ua] [\v!thursday=\cyrillicch\cyrillice \cyrillict \cyrillicv \cyrillice \cyrillicr] \setuplabeltext [\s!ua] [\v!friday=\cyrillicp'\cyrillicya\cyrillict \cyrillicn \cyrillici \cyrillicc \cyrillicya] \setuplabeltext [\s!ua] [\v!saturday=\cyrillics \cyrillicu \cyrillicb \cyrillico \cyrillict \cyrillica] %D \ShowAllLanguageValues [\s!ru] [russian] {Russian} {doll} %D \ShowAllLanguageValues [\s!ua] [ukranian] {Ukranian} {dance} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-033.mkii0000644000175000017500000004150514536300610024421 0ustar hillehille%D \module %D [ file=unic-033, %D version=2006.03.29, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 33, %D author={Nikolai Weibull \& Hans Hagen \& Taco Hoekwater}, %D date=\currentdate, %D copyright={Nikolai Weibull \& Hans Hagen}] \unprotect \startunicodevector 33 \expandafter\strippedcsname \ifcase\numexpr#1\relax \unic@accountof \or % 2100 ACCOUNT OF \unic@addressedtothesubject \or % 2101 ADDRESSED TO THE SUBJECT \unic@doublestruckC \or % 2102 DOUBLE-STRUCK CAPITAL C \unic@degreecelsius \or % 2103 DEGREE CELSIUS \unic@centrelinesymbol \or % 2104 CENTRE LINE SYMBOL \unic@careof \or % 2105 CARE OF \unic@cadauna \or % 2106 CADA UNA \unic@eulerconstant \or % 2107 EULER CONSTANT \unic@scruple \or % 2108 SCRUPLE \unic@degreefahrenheit \or % 2109 DEGREE FAHRENHEIT \unic@scriptg \or % 210A SCRIPT SMALL G \unic@scriptH \or % 210B SCRIPT CAPITAL H \unic@blackletterH \or % 210C BLACK-LETTER CAPITAL H \unic@doublestruckH \or % 210D DOUBLE-STRUCK CAPITAL H \unic@planckconstant \or % 210E PLANCK CONSTANT \unic@planckconstantovertwopi \or % 210F PLANCK CONSTANT OVER TWO PI \unic@scriptI \or % 2110 SCRIPT CAPITAL I \unic@blackletterI \or % 2111 BLACK-LETTER CAPITAL I \unic@scriptL \or % 2112 SCRIPT CAPITAL L \unic@scriptl \or % 2113 SCRIPT SMALL L \unic@lbbarsymbol \or % 2114 L B BAR SYMBOL \unic@doublestruckN \or % 2115 DOUBLE-STRUCK CAPITAL N \unic@numerosign \or % 2116 NUMERO SIGN \unic@soundrecordingcopyright \or % 2117 SOUND RECORDING COPYRIGHT \unic@scriptP \or % 2118 SCRIPT CAPITAL P \unic@doublestruckP \or % 2119 DOUBLE-STRUCK CAPITAL P \unic@doublestruckQ \or % 211A DOUBLE-STRUCK CAPITAL Q \unic@scriptR \or % 211B SCRIPT CAPITAL R \unic@blackletterR \or % 211C BLACK-LETTER CAPITAL R \unic@doublestruckR \or % 211D DOUBLE-STRUCK CAPITAL R \unic@prescriptiontake \or % 211E PRESCRIPTION TAKE \unic@response \or % 211F RESPONSE \unic@servicemark \or % 2120 SERVICE MARK \unic@telephonesign \or % 2121 TELEPHONE SIGN \unic@trademarksign \or % 2122 TRADE MARK SIGN \unic@versickle \or % 2123 VERSICLE \unic@doublestruckZ \or % 2124 DOUBLE-STRUCK CAPITAL Z \unic@ouncesign \or % 2125 OUNCE SIGN \unic@ohmsign \or % 2126 OHM SIGN \unic@invertedohmsign \or % 2127 INVERTED OHM SIGN \unic@blackletterZ \or % 2128 BLACK-LETTER CAPITAL Z \unic@turnedgreekletteriota \or % 2129 TURNED GREEK SMALL LETTER IOTA \unic@kelvinsign \or % 212A KELVIN SIGN \unic@angstromsign \or % 212B ANGSTROM SIGN \unic@scriptB \or % 212C SCRIPT CAPITAL B \unic@blackletterC \or % 212D BLACK-LETTER CAPITAL C \unic@estimatedsymbol \or % 212E ESTIMATED SYMBOL \unic@scripte \or % 212F SCRIPT SMALL E \unic@scriptE \or % 2130 SCRIPT CAPITAL E \unic@scriptF \or % 2131 SCRIPT CAPITAL F \unic@turnedF \or % 2132 TURNED CAPITAL F \unic@scriptM \or % 2133 SCRIPT CAPITAL M \unic@scripto \or % 2134 SCRIPT SMALL O \aleph \or % 2135 ALEF SYMBOL \beth \or % 2136 BET SYMBOL \gimel \or % 2137 GIMEL SYMBOL \daleth \or % 2138 DALET SYMBOL \unic@informationsource \or % 2139 INFORMATION SOURCE \unic@rotatedQ \or % 213A ROTATED CAPITAL Q \unic@facsimilesign \or % 213B FACSIMILE SIGN \unic@doublestruckpi \or % 213C DOUBLE-STRUCK SMALL PI \unic@doublestruckgamma \or % 213D DOUBLE-STRUCK SMALL GAMMA \unic@doublestruckGamma \or % 213E DOUBLE-STRUCK CAPITAL GAMMA \unic@doublestruckPi \or % 213F DOUBLE-STRUCK CAPITAL PI \unic@doublestrucknarysummation \or % 2140 DOUBLE-STRUCK N-ARY SUMMATION \unic@turnedsansserifG \or % 2141 TURNED SANS-SERIF CAPITAL G \unic@turnedsansserifL \or % 2142 TURNED SANS-SERIF CAPITAL L \unic@reversedsansserifL \or % 2143 REVERSED SANS-SERIF CAPITAL L \unic@turnedsansserifY \or % 2144 TURNED SANS-SERIF CAPITAL Y \unic@doublestruckitalicD \or % 2145 DOUBLE-STRUCK ITALIC CAPITAL D \unic@doublestruckitalicd \or % 2146 DOUBLE-STRUCK ITALIC SMALL D \unic@doublestruckitalice \or % 2147 DOUBLE-STRUCK ITALIC SMALL E \unic@doublestruckitalici \or % 2148 DOUBLE-STRUCK ITALIC SMALL I \unic@doublestruckitalicj \or % 2149 DOUBLE-STRUCK ITALIC SMALL J \unic@propertyline \or % 214A PROPERTY LINE \unic@turnedampersand \or % 214B TURNED AMPERSAND \unic@persign \or % 214C PER SIGN \unknownchar \or % 214D \unknownchar \or % 214E \unknownchar \or % 214F \unknownchar \or % 2150 \unknownchar \or % 2151 \unknownchar \or % 2152 \unic@fractiononethird \or % 2153 VULGAR FRACTION ONE THIRD \unic@fractiontwothirds \or % 2154 VULGAR FRACTION TWO THIRDS \unic@fractiononefifth \or % 2155 VULGAR FRACTION ONE FIFTH \unic@fractiontwofifths \or % 2156 VULGAR FRACTION TWO FIFTHS \unic@fractionthreefifths \or % 2157 VULGAR FRACTION THREE FIFTHS \unic@fractionfourfifths \or % 2158 VULGAR FRACTION FOUR FIFTHS \unic@fractiononesixth \or % 2159 VULGAR FRACTION ONE SIXTH \unic@fractionfivesixths \or % 215A VULGAR FRACTION FIVE SIXTHS \unic@fractiononeeighth \or % 215B VULGAR FRACTION ONE EIGHTH \unic@fractionthreeeighths \or % 215C VULGAR FRACTION THREE EIGHTHS \unic@fractionfiveeighths \or % 215D VULGAR FRACTION FIVE EIGHTHS \unic@fractionseveneighths \or % 215E VULGAR FRACTION SEVEN EIGHTHS \unic@fractionnumeratorone \or % 215F FRACTION NUMERATOR ONE \unic@romannumeralOne \or % 2160 ROMAN NUMERAL ONE \unic@romannumeralTwo \or % 2161 ROMAN NUMERAL TWO \unic@romannumeralThree \or % 2162 ROMAN NUMERAL THREE \unic@romannumeralFour \or % 2163 ROMAN NUMERAL FOUR \unic@romannumeralFive \or % 2164 ROMAN NUMERAL FIVE \unic@romannumeralSix \or % 2165 ROMAN NUMERAL SIX \unic@romannumeralSeven \or % 2166 ROMAN NUMERAL SEVEN \unic@romannumeralEight \or % 2167 ROMAN NUMERAL EIGHT \unic@romannumeralNine \or % 2168 ROMAN NUMERAL NINE \unic@romannumeralTen \or % 2169 ROMAN NUMERAL TEN \unic@romannumeralEleven \or % 216A ROMAN NUMERAL ELEVEN \unic@romannumeralTwelve \or % 216B ROMAN NUMERAL TWELVE \unic@romannumeralFifty \or % 216C ROMAN NUMERAL FIFTY \unic@romannumeralOnehundred \or % 216D ROMAN NUMERAL ONE HUNDRED \unic@romannumeralFivehundred \or % 216E ROMAN NUMERAL FIVE HUNDRED \unic@romannumeralOnethousand \or % 216F ROMAN NUMERAL ONE THOUSAND \unic@romannumeralone \or % 2170 SMALL ROMAN NUMERAL ONE \unic@romannumeraltwo \or % 2171 SMALL ROMAN NUMERAL TWO \unic@romannumeralthree \or % 2172 SMALL ROMAN NUMERAL THREE \unic@romannumeralfour \or % 2173 SMALL ROMAN NUMERAL FOUR \unic@romannumeralfive \or % 2174 SMALL ROMAN NUMERAL FIVE \unic@romannumeralsix \or % 2175 SMALL ROMAN NUMERAL SIX \unic@romannumeralseven \or % 2176 SMALL ROMAN NUMERAL SEVEN \unic@romannumeraleight \or % 2177 SMALL ROMAN NUMERAL EIGHT \unic@romannumeralnine \or % 2178 SMALL ROMAN NUMERAL NINE \unic@romannumeralten \or % 2179 SMALL ROMAN NUMERAL TEN \unic@romannumeraleleven \or % 217A SMALL ROMAN NUMERAL ELEVEN \unic@romannumeraltwelve \or % 217B SMALL ROMAN NUMERAL TWELVE \unic@romannumeralfifty \or % 217C SMALL ROMAN NUMERAL FIFTY \unic@romannumeralonehundred \or % 217D SMALL ROMAN NUMERAL ONE HUNDRED \unic@romannumeralfivehundred \or % 217E SMALL ROMAN NUMERAL FIVE HUNDRED \unic@romannumeralonethousand \or % 217F SMALL ROMAN NUMERAL ONE THOUSAND \unic@romannumeralonethousandCD \or % 2180 ROMAN NUMERAL ONE THOUSAND C D \unic@romannumeralfivethousand \or % 2181 ROMAN NUMERAL FIVE THOUSAND \unic@romannumeraltenthousand \or % 2182 ROMAN NUMERAL TEN THOUSAND \unic@romannumeralreversedonehundred\or % 2183 ROMAN NUMERAL REVERSED ONE HUNDRED \unknownchar \or % 2184 \unknownchar \or % 2185 \unknownchar \or % 2186 \unknownchar \or % 2187 \unknownchar \or % 2188 \unknownchar \or % 2189 \unknownchar \or % 218A \unknownchar \or % 218B \unknownchar \or % 218C \unknownchar \or % 218D \unknownchar \or % 218E \unknownchar \or % 218F \leftarrow \or % LEFTWARDS ARROW \uparrow \or % UPWARDS ARROW \rightarrow \or % RIGHTWARDS ARROW \downarrow \or % DOWNWARDS ARROW \leftrightarrow \or % LEFT RIGHT ARROW \updownarrow \or % UP DOWN ARROW \nwarrow \or % NORTH WEST ARROW \nearrow \or % NORTH EAST ARROW \searrow \or % SOUTH EAST ARROW \swarrow \or % SOUTH WEST ARROW \nleftarrow \or % LEFTWARDS ARROW WITH STROKE \nrightarrow \or % RIGHTWARDS ARROW WITH STROKE \unknownchar \or % LEFTWARDS WAVE ARROW \unknownchar \or % RIGHTWARDS WAVE ARROW \twoheadedleftarrow \or % LEFTWARDS TWO HEADED ARROW \unknownchar \or % UPWARDS TWO HEADED ARROW \twoheadedrightarrow \or % RIGHTWARDS TWO HEADED ARROW \unknownchar \or % DOWNWARDS TWO HEADED ARROW \leftarrowtail \or % LEFTWARDS ARROW WITH TAIL \rightarrowtail \or % RIGHTWARDS ARROW WITH TAIL \mapsfrom \or % LEFTWARDS ARROW FROM BAR \unknownchar \or % UPWARDS ARROW FROM BAR \mapsto \or % RIGHTWARDS ARROW FROM BAR \unknownchar \or % DOWNWARDS ARROW FROM BAR \unknownchar \or % UP DOWN ARROW WITH BASE \hookleftarrow \or % LEFTWARDS ARROW WITH HOOK \hookrightarrow \or % RIGHTWARDS ARROW WITH HOOK \loopleftarrow \or % LEFTWARDS ARROW WITH LOOP \looprightarrow \or % RIGHTWARDS ARROW WITH LOOP \unknownchar \or % LEFT RIGHT WAVE ARROW \nleftrightarrow \or % LEFT RIGHT ARROW WITH STROKE \lightning \or % DOWNWARDS ZIGZAG ARROW \Lsh \or % UPWARDS ARROW WITH TIP LEFTWARDS \Rsh \or % UPWARDS ARROW WITH TIP RIGHTWARDS \unknownchar \or % DOWNWARDS ARROW WITH TIP LEFTWARDS \unknownchar \or % DOWNWARDS ARROW WITH TIP RIGHTWARDS \unknownchar \or % RIGHTWARDS ARROW WITH CORNER DOWNWARDS \unknownchar \or % DOWNWARDS ARROW WITH CORNER LEFTWARDS \curveleftarrow \or % ANTICLOCKWISE TOP SEMICIRCLE ARROW \curverightarrow \or % CLOCKWISE TOP SEMICIRCLE ARROW \unknownchar \or % NORTH WEST ARROW TO LONG BAR \unknownchar \or % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR \circlearrowleft \or % ANTICLOCKWISE OPEN CIRCLE ARROW \circlearrowright \or % CLOCKWISE OPEN CIRCLE ARROW \leftharpoonup \or % LEFTWARDS HARPOON WITH BARB UPWARDS \leftharpoondown \or % LEFTWARDS HARPOON WITH BARB DOWNWARDS \upharpoonright \or % UPWARDS HARPOON WITH BARB RIGHTWARDS \upharpoonleft \or % UPWARDS HARPOON WITH BARB LEFTWARDS \rightharpoonup \or % RIGHTWARDS HARPOON WITH BARB UPWARDS \rightharpoondown \or % RIGHTWARDS HARPOON WITH BARB DOWNWARDS \downharpoonright \or % DOWNWARDS HARPOON WITH BARB RIGHTWARDS \downharpoonleft \or % DOWNWARDS HARPOON WITH BARB LEFTWARDS \rightleftarrows \or % RIGHTWARDS ARROW OVER LEFTWARDS ARROW \unknownchar \or % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW \leftrightarrows \or % LEFTWARDS ARROW OVER RIGHTWARDS ARROW \leftleftarrows \or % LEFTWARDS PAIRED ARROWS \upuparrows \or % UPWARDS PAIRED ARROWS \rightrightarrows \or % RIGHTWARDS PAIRED ARROWS \downdownarrows \or % DOWNWARDS PAIRED ARROWS \leftrightharpoons \or % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON \rightleftharpoons \or % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON \nLeftarrow \or % LEFTWARDS DOUBLE ARROW WITH STROKE \nLeftrightarrow \or % LEFT RIGHT DOUBLE ARROW WITH STROKE \nRightarrow \or % RIGHTWARDS DOUBLE ARROW WITH STROKE \Leftarrow \or % LEFTWARDS DOUBLE ARROW \Uparrow \or % UPWARDS DOUBLE ARROW \Rightarrow \or % RIGHTWARDS DOUBLE ARROW \Downarrow \or % DOWNWARDS DOUBLE ARROW \Leftrightarrow \or % LEFT RIGHT DOUBLE ARROW \Updownarrow \or % UP DOWN DOUBLE ARROW \unknownchar \or % NORTH WEST DOUBLE ARROW \unknownchar \or % NORTH EAST DOUBLE ARROW \unknownchar \or % SOUTH EAST DOUBLE ARROW \unknownchar \or % SOUTH WEST DOUBLE ARROW \Lleftarrow \or % LEFTWARDS TRIPLE ARROW \unknownchar \or % RIGHTWARDS TRIPLE ARROW \leftsquidarrow \or % LEFTWARDS SQUIGGLE ARROW \rightsquidarrow \or % RIGHTWARDS SQUIGGLE ARROW \unknownchar \or % UPWARDS ARROW WITH DOUBLE STROKE \unknownchar \or % DOWNWARDS ARROW WITH DOUBLE STROKE \dashleftarrow \or % LEFTWARDS DASHED ARROW \unknownchar \or % UPWARDS DASHED ARROW \dashrightarrow \or % RIGHTWARDS DASHED ARROW \unknownchar \or % DOWNWARDS DASHED ARROW \unic@leftarrowtobar \or % LEFTWARDS ARROW TO BAR \unknownchar \or % RIGHTWARDS ARROW TO BAR \unknownchar \or % LEFTWARDS WHITE ARROW \unknownchar \or % UPWARDS WHITE ARROW \unknownchar \or % RIGHTWARDS WHITE ARROW \unknownchar \or % DOWNWARDS WHITE ARROW \unknownchar \or % UPWARDS WHITE ARROW FROM BAR \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR \unknownchar \or % UPWARDS WHITE DOUBLE ARROW \unknownchar \or % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL \unknownchar \or % RIGHTWARDS WHITE ARROW FROM WALL \unknownchar \or % NORTH WEST ARROW TO CORNER \unknownchar \or % SOUTH EAST ARROW TO CORNER \unknownchar \or % UP DOWN WHITE ARROW \unknownchar \or % RIGHT ARROW WITH SMALL CIRCLE \unknownchar \or % DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW \unknownchar \or % THREE RIGHTWARDS ARROWS \unknownchar \or % LEFTWARDS ARROW WITH VERTICAL STROKE \unknownchar \or % RIGHTWARDS ARROW WITH VERTICAL STROKE \unknownchar \or % LEFT RIGHT ARROW WITH VERTICAL STROKE \unknownchar \or % LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE \unknownchar \or % RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE \unknownchar \or % LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE \leftarrowtriangle \or % LEFTWARDS OPEN-HEADED ARROW \rightarrowtriangle \or % RIGHTWARDS OPEN-HEADED ARROW \leftrightarrowtriangle \else % LEFT RIGHT OPEN-HEADED ARROW \unknowncharacter \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-032.mkii0000644000175000017500000000721514536300610024406 0ustar hillehille%D \module %D [ file=enco-032, %D version=2006.03.30, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Unicode Goodies, %D author={Taco Hoekwater}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect % unicode table 32 (= hex 20) \startencoding [default] \definecommand unic@threeperemspace {\hskip .33333em } \definecommand unic@fourperemspace {\hskip .25em } \definecommand unic@sixperemspace {\hskip .16667em } \definecommand unic@figurespace {\hphantom{0}} \definecommand unic@punctuationspace {\hphantom{,}} \definecommand unic@hairspace {\hskip .08333em } \definecommand unic@zerowidthspace {\hskip 0em plus 1sp } \definecommand unic@zerowidthjoiner {\kern 0em } \definecommand unic@zerowidthnonjoiner {\hskip 0em } \definecommand unic@quotedblleftreversed {\mirror{\quotedblright}} \definecommand unic@quoteleftreversed {\mirror{\quoteright}} \definecommand unic@onedotleader {{\periods[1]}} \definecommand unic@twodotleader {{\periods[2]}} \definecommand unic@hyphenationpoint {.\allowbreak } \definecommand unic@doubleexclamationmark {!!} \definecommand unic@exclamationquestionmark {!?} \definecommand unic@questionexclamationmark {?!} \definecommand unic@doublequestionmark {??} \definecommand unic@reversedpilcrowsign {\mirror{\P}} \definecommand unic@reversedsemicolon {\mirror{;}} \definecommand unic@superscriptzero {\high{0}} \definecommand unic@superscripti {\high{i}} \definecommand unic@superscriptfour {\high{4}} \definecommand unic@superscriptfive {\high{5}} \definecommand unic@superscriptsix {\high{6}} \definecommand unic@superscriptseven {\high{7}} \definecommand unic@superscripteight {\high{8}} \definecommand unic@superscriptnine {\high{9}} \definecommand unic@superscriptplus {\high{+}} \definecommand unic@superscriptminus {\high{\textminus}} \definecommand unic@superscriptequals {\high{=}} \definecommand unic@superscriptleft {\high{(}} \definecommand unic@superscriptright {\high{)}} \definecommand unic@superscriptn {\high{n}} \definecommand unic@subscriptzero {\low{0}} \definecommand unic@subscriptone {\low{1}} \definecommand unic@subscripttwo {\low{2}} \definecommand unic@subscriptthree {\low{3}} \definecommand unic@subscriptfour {\low{4}} \definecommand unic@subscriptfive {\low{5}} \definecommand unic@subscriptsix {\low{6}} \definecommand unic@subscriptseven {\low{7}} \definecommand unic@subscripteight {\low{8}} \definecommand unic@subscriptnine {\low{9}} \definecommand unic@subscriptplus {\low{+}} \definecommand unic@subscriptminus {\low{\textminus}} \definecommand unic@subscriptequals {\low{=}} \definecommand unic@subscriptleft {\low{(}} \definecommand unic@subscriptright {\low{)}} \definecommand unic@subscripta {\low{a}} \definecommand unic@subscripte {\low{e}} \definecommand unic@subscripto {\low{o}} \definecommand unic@subscriptx {\low{x}} \definecommand unic@subscriptschwa {\low{\schwa}} \stopencoding \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-it.mkii0000644000175000017500000032612314567411714024571 0ustar hillehille% this file is auto-generated, don't edit this file % % definitions for interface variables for language it % \setinterfacevariable{Addition}{Aggiunta} \setinterfacevariable{Alphabetic}{Alphabetic} \setinterfacevariable{Balloon}{Pallone} \setinterfacevariable{Camel}{Camel} \setinterfacevariable{Cap}{Cap} \setinterfacevariable{Capital}{Maiuscolo} \setinterfacevariable{Character}{Lettera} \setinterfacevariable{Characters}{Lettere} \setinterfacevariable{CloseDocument}{ChiudiDocumento} \setinterfacevariable{ExitViewer}{EsciVisualizzatore} \setinterfacevariable{FirstPage}{PrimaPagina} \setinterfacevariable{FitHeight}{FitHeight} \setinterfacevariable{FitWidth}{FitWidth} \setinterfacevariable{GotoPage}{VaiAPagina} \setinterfacevariable{Greek}{Greco} \setinterfacevariable{Help}{Aiuto} \setinterfacevariable{HideField}{NascondiCampo} \setinterfacevariable{HideLayer}{HideLayer} \setinterfacevariable{Key}{Tasto} \setinterfacevariable{LastPage}{UltimaPagina} \setinterfacevariable{LoadForm}{CaricaForm} \setinterfacevariable{MONTH}{MESE} \setinterfacevariable{New}{Nuovo} \setinterfacevariable{NextJump}{SaltoSuccessivo} \setinterfacevariable{NextPage}{PaginaSuccessiva} \setinterfacevariable{Numbers}{Numeri} \setinterfacevariable{OpenNamedDocument}{OpenNamedDocument} \setinterfacevariable{Ordinal}{Ordinal} \setinterfacevariable{Paragraph}{Capoverso} \setinterfacevariable{PauseMovie}{PausaFilm} \setinterfacevariable{PauseRendering}{PauseRendering} \setinterfacevariable{PauseSound}{PausaSuono} \setinterfacevariable{PreviousJump}{SaltoPrecedente} \setinterfacevariable{PreviousPage}{PaginaPrecedente} \setinterfacevariable{PrintDocument}{StampaDocumento} \setinterfacevariable{Query}{Richiesta} \setinterfacevariable{QueryAgain}{RinnovaRichiesta} \setinterfacevariable{ResetForm}{ReimpostaForm} \setinterfacevariable{ResumeMovie}{RiprendiFilm} \setinterfacevariable{ResumeRendering}{ResumeRendering} \setinterfacevariable{ResumeSound}{RiprendiSuono} \setinterfacevariable{Romannumerals}{Numeriromani} \setinterfacevariable{SaveDocument}{SalvaDocumento} \setinterfacevariable{SaveForm}{SalvaForm} \setinterfacevariable{SaveNamedDocument}{SaveNamedDocument} \setinterfacevariable{SearchAgain}{CercaAncora} \setinterfacevariable{SearchDocument}{CercaDocumento} \setinterfacevariable{ShowBookmarks}{MostraSegnalibro} \setinterfacevariable{ShowField}{MostraCampo} \setinterfacevariable{ShowThumbs}{MostraThumbs} \setinterfacevariable{StartMovie}{IniziaFilm} \setinterfacevariable{StartRendering}{StartRendering} \setinterfacevariable{StartSound}{IniziaSuono} \setinterfacevariable{StopMovie}{FermaFilm} \setinterfacevariable{StopRendering}{StopRendering} \setinterfacevariable{StopSound}{FermaSuono} \setinterfacevariable{SubmitForm}{MandaForm} \setinterfacevariable{ToggleLayer}{ToggleLayer} \setinterfacevariable{ToggleViewer}{ScambiaVisualizzatore} \setinterfacevariable{URL}{URL} \setinterfacevariable{VideLayer}{VideLayer} \setinterfacevariable{ViewerHelp}{AiutoVisualizzatore} \setinterfacevariable{WEEKDAY}{GIORNOSETTIMANA} \setinterfacevariable{WORD}{PAROLA} \setinterfacevariable{WORDS}{PAROLE} \setinterfacevariable{Word}{Parola} \setinterfacevariable{Words}{Parole} \setinterfacevariable{abbreviation}{abbreviazione} \setinterfacevariable{abbreviations}{abbreviazioni} \setinterfacevariable{absolute}{assoluto} \setinterfacevariable{action}{azione} \setinterfacevariable{after}{dopo} \setinterfacevariable{all}{tutti} \setinterfacevariable{alphabetic}{alphabetic} \setinterfacevariable{always}{sempre} \setinterfacevariable{anchor}{anchor} \setinterfacevariable{and}{and} \setinterfacevariable{answerarea}{answerarea} \setinterfacevariable{append}{append} \setinterfacevariable{appendices}{appendici} \setinterfacevariable{appendix}{appendice} \setinterfacevariable{april}{aprile} \setinterfacevariable{aside}{aside} \setinterfacevariable{atleftmargin}{atleftmargin} \setinterfacevariable{atmargin}{almargine} \setinterfacevariable{atpage}{apagina} \setinterfacevariable{atrightmargin}{atrightmargin} \setinterfacevariable{attachment}{attachment} \setinterfacevariable{august}{agosto} \setinterfacevariable{author}{autore} \setinterfacevariable{auto}{auto} \setinterfacevariable{autointro}{autointro} \setinterfacevariable{back}{dietro} \setinterfacevariable{background}{sfondo} \setinterfacevariable{backmatter}{postambolo} \setinterfacevariable{backpart}{postfazione} \setinterfacevariable{backspace}{backspace} \setinterfacevariable{backward}{indietro} \setinterfacevariable{bbl}{bbl} \setinterfacevariable{before}{prima} \setinterfacevariable{begin}{begin} \setinterfacevariable{bib}{bib} \setinterfacevariable{big}{grande} \setinterfacevariable{bigbodyfont}{grossofontdeltesto} \setinterfacevariable{bigger}{bigger} \setinterfacevariable{bigpreference}{grandepreferenza} \setinterfacevariable{blank}{rigovuoto} \setinterfacevariable{block}{block} \setinterfacevariable{blockquote}{blockquote} \setinterfacevariable{bodymatter}{testiprincipali} \setinterfacevariable{bodypart}{testoprincipale} \setinterfacevariable{bold}{grassetto} \setinterfacevariable{bolditalic}{grassettocorsivo} \setinterfacevariable{boldslanted}{grassettoinclinato} \setinterfacevariable{bookmark}{segnalibro} \setinterfacevariable{both}{entrambi} \setinterfacevariable{bothtext}{bothtext} \setinterfacevariable{bottom}{fondo} \setinterfacevariable{box}{box} \setinterfacevariable{brief}{brief} \setinterfacevariable{broad}{ampio} \setinterfacevariable{buffer}{buffer} \setinterfacevariable{by}{da} \setinterfacevariable{calligraphic}{calligrafico} \setinterfacevariable{camel}{camel} \setinterfacevariable{cap}{cap} \setinterfacevariable{capital}{maiuscolo} \setinterfacevariable{category}{category} \setinterfacevariable{cd:character}{cd:character} \setinterfacevariable{cd:font}{cd:font} \setinterfacevariable{center}{center} \setinterfacevariable{centerlast}{centerlast} \setinterfacevariable{chapter}{capitolo} \setinterfacevariable{character}{lettera} \setinterfacevariable{characters}{lettere} \setinterfacevariable{chemical}{chemical} \setinterfacevariable{chemicals}{chemicals} \setinterfacevariable{chemistry}{chemistry} \setinterfacevariable{cite}{cite} \setinterfacevariable{closed}{closed} \setinterfacevariable{collapsed}{collapsed} \setinterfacevariable{color}{colore} \setinterfacevariable{column}{colonna} \setinterfacevariable{columns}{colonne} \setinterfacevariable{combination}{combination} \setinterfacevariable{command}{comando} \setinterfacevariable{commands}{comandi} \setinterfacevariable{comment}{commento} \setinterfacevariable{component}{componente} \setinterfacevariable{compress}{compress} \setinterfacevariable{compressseparator}{compressseparator} \setinterfacevariable{compressstopper}{compressstopper} \setinterfacevariable{concept}{concetto} \setinterfacevariable{construction}{construction} \setinterfacevariable{content}{indice} \setinterfacevariable{contents}{indici} \setinterfacevariable{continue}{continua} \setinterfacevariable{continued}{continued} \setinterfacevariable{controls}{controlli} \setinterfacevariable{conversion}{coversione} \setinterfacevariable{current}{corrente} \setinterfacevariable{cutspace}{cutspace} \setinterfacevariable{dash}{dash} \setinterfacevariable{dataset}{dataset} \setinterfacevariable{date}{data} \setinterfacevariable{day}{giorno} \setinterfacevariable{december}{dicembre} \setinterfacevariable{default}{implicito} \setinterfacevariable{depth}{profondita} \setinterfacevariable{description}{descrizione} \setinterfacevariable{disable}{disattiva} \setinterfacevariable{display}{schermo} \setinterfacevariable{document}{document} \setinterfacevariable{dot}{punto} \setinterfacevariable{doublesided}{doppiafaccia} \setinterfacevariable{down}{down} \setinterfacevariable{each}{ogni} \setinterfacevariable{edge}{bordo} \setinterfacevariable{effective}{effective} \setinterfacevariable{eight}{eight} \setinterfacevariable{embed}{embed} \setinterfacevariable{empty}{vuoto} \setinterfacevariable{enable}{enable} \setinterfacevariable{end}{end} \setinterfacevariable{endnote}{endnote} \setinterfacevariable{enumeration}{enumerazione} \setinterfacevariable{environment}{ambiente} \setinterfacevariable{even}{pari} \setinterfacevariable{explicit}{explicit} \setinterfacevariable{export}{export} \setinterfacevariable{external}{esterno} \setinterfacevariable{extremestretch}{extremestretch} \setinterfacevariable{fact}{fatto} \setinterfacevariable{fallback}{fallback} \setinterfacevariable{february}{febbraio} \setinterfacevariable{field}{field} \setinterfacevariable{figure}{figura} \setinterfacevariable{figures}{figure} \setinterfacevariable{file}{file} \setinterfacevariable{final}{finale} \setinterfacevariable{first}{primo} \setinterfacevariable{firstcolumn}{firstcolumn} \setinterfacevariable{firstpage}{primapagina} \setinterfacevariable{firstsubpage}{primasottopagina} \setinterfacevariable{fit}{adatta} \setinterfacevariable{five}{cinque} \setinterfacevariable{fix}{fisso} \setinterfacevariable{fixed}{fisso} \setinterfacevariable{flexible}{flessibile} \setinterfacevariable{float}{oggettomobile} \setinterfacevariable{flushbackward}{flushbackward} \setinterfacevariable{flushforward}{flushforward} \setinterfacevariable{flushinner}{flushinner} \setinterfacevariable{flushleft}{flushleft} \setinterfacevariable{flushouter}{flushouter} \setinterfacevariable{flushright}{flushright} \setinterfacevariable{followingpage}{followingpage} \setinterfacevariable{font}{font} \setinterfacevariable{footer}{piedipagina} \setinterfacevariable{footnote}{notapdp} \setinterfacevariable{force}{forza} \setinterfacevariable{foreground}{foreground} \setinterfacevariable{formula}{formula} \setinterfacevariable{formulas}{formule} \setinterfacevariable{forward}{avanti} \setinterfacevariable{four}{quattro} \setinterfacevariable{fractions}{fractions} \setinterfacevariable{frame}{cornice} \setinterfacevariable{framedtext}{testoincorniciato} \setinterfacevariable{friday}{venerdi} \setinterfacevariable{frontmatter}{preambolo} \setinterfacevariable{frontpart}{prefazione} \setinterfacevariable{fullhz}{fullhz} \setinterfacevariable{global}{globale} \setinterfacevariable{granular}{granular} \setinterfacevariable{graphic}{grafico} \setinterfacevariable{graphics}{grafici} \setinterfacevariable{gray}{grigio} \setinterfacevariable{greek}{greco} \setinterfacevariable{grid}{griglia} \setinterfacevariable{halfline}{mezzariga} \setinterfacevariable{handwritten}{grafiamanuale} \setinterfacevariable{hang}{sospendi} \setinterfacevariable{hanging}{sospeso} \setinterfacevariable{hangingboth}{hangingboth} \setinterfacevariable{hangleft}{hangleft} \setinterfacevariable{hangright}{hangright} \setinterfacevariable{head}{testa} \setinterfacevariable{header}{intestazione} \setinterfacevariable{headintext}{headintext} \setinterfacevariable{height}{altezza} \setinterfacevariable{helptext}{testoaiuto} \setinterfacevariable{hencefore}{precedente} \setinterfacevariable{here}{qui} \setinterfacevariable{hereafter}{seguente} \setinterfacevariable{hidden}{nascosto} \setinterfacevariable{hiddenbar}{hiddenbar} \setinterfacevariable{hiding}{nascondere} \setinterfacevariable{high}{alto} \setinterfacevariable{horizontal}{orizzontale} \setinterfacevariable{hyphenated}{sillabato} \setinterfacevariable{hz}{hz} \setinterfacevariable{inbetween}{tra} \setinterfacevariable{index}{indiceanalitico} \setinterfacevariable{indices}{indicianalitici} \setinterfacevariable{inherit}{inherit} \setinterfacevariable{ininner}{ininner} \setinterfacevariable{ininneredge}{ininneredge} \setinterfacevariable{ininnermargin}{ininnermargin} \setinterfacevariable{inleft}{insinistra} \setinterfacevariable{inleftedge}{inlatosinistro} \setinterfacevariable{inleftmargin}{inmarginesinistro} \setinterfacevariable{inline}{inline} \setinterfacevariable{inmargin}{inmargine} \setinterfacevariable{inner}{interno} \setinterfacevariable{inneredge}{bordointerno} \setinterfacevariable{innermargin}{margineinterno} \setinterfacevariable{inother}{inother} \setinterfacevariable{inouter}{inouter} \setinterfacevariable{inouteredge}{inouteredge} \setinterfacevariable{inoutermargin}{inoutermargin} \setinterfacevariable{inright}{indestra} \setinterfacevariable{inrightedge}{inlatodestro} \setinterfacevariable{inrightmargin}{inmarginedestro} \setinterfacevariable{interaction}{interazione} \setinterfacevariable{interactionmenu}{menuinterattivo} \setinterfacevariable{interactive}{interactive} \setinterfacevariable{intermezzi}{intermezzi} \setinterfacevariable{intermezzo}{intermezzo} \setinterfacevariable{intext}{intesto} \setinterfacevariable{intro}{intro} \setinterfacevariable{invertedshort}{invertedshort} \setinterfacevariable{italic}{corsivo} \setinterfacevariable{italicbold}{corsivograssetto} \setinterfacevariable{item}{elemento} \setinterfacevariable{itemize}{elenco} \setinterfacevariable{its}{its} \setinterfacevariable{january}{gennaio} \setinterfacevariable{joinedup}{unito} \setinterfacevariable{july}{luglio} \setinterfacevariable{june}{giugno} \setinterfacevariable{keep}{mantieni} \setinterfacevariable{keeptogether}{keeptogether} \setinterfacevariable{kerncharacters}{kerncharacters} \setinterfacevariable{knockout}{knockout} \setinterfacevariable{label}{etichetta} \setinterfacevariable{landscape}{orizzontale} \setinterfacevariable{last}{ultimo} \setinterfacevariable{lastcolumn}{lastcolumn} \setinterfacevariable{lastpage}{ultimapagina} \setinterfacevariable{lastpagenumber}{lastpagenumber} \setinterfacevariable{lastsubpage}{ultimasottopagina} \setinterfacevariable{layer}{layer} \setinterfacevariable{left}{sinistra} \setinterfacevariable{leftedge}{bordosinistro} \setinterfacevariable{lefthanging}{lefthanging} \setinterfacevariable{leftmargin}{marginesinistro} \setinterfacevariable{leftpage}{paginasinistra} \setinterfacevariable{lefttext}{testosinistro} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legenda} \setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{letterspacing}{letterspacing} \setinterfacevariable{limit}{limit} \setinterfacevariable{line}{riga} \setinterfacevariable{linenote}{linenote} \setinterfacevariable{lines}{righe} \setinterfacevariable{linked}{linked} \setinterfacevariable{list}{elenco} \setinterfacevariable{local}{locale} \setinterfacevariable{localenvironment}{ambientelocale} \setinterfacevariable{logo}{logo} \setinterfacevariable{logos}{loghi} \setinterfacevariable{lohi}{pedap} \setinterfacevariable{long}{long} \setinterfacevariable{loose}{lento} \setinterfacevariable{low}{basso} \setinterfacevariable{ls}{ls} \setinterfacevariable{makeup}{makeup} \setinterfacevariable{mar}{mar} \setinterfacevariable{march}{marzo} \setinterfacevariable{margin}{margine} \setinterfacevariable{marginedge}{bordomargine} \setinterfacevariable{margintext}{testoinmargine} \setinterfacevariable{margintitle}{titoloinmargine} \setinterfacevariable{marking}{marcatura} \setinterfacevariable{math}{math} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathematics}{matematica} \setinterfacevariable{mathmatrix}{mathmatrix} \setinterfacevariable{mathnote}{mathnote} \setinterfacevariable{max}{max} \setinterfacevariable{maxdepth}{maxdepth} \setinterfacevariable{maxheight}{maxheight} \setinterfacevariable{maxwidth}{maxwidth} \setinterfacevariable{may}{maggio} \setinterfacevariable{mediaeval}{medievale} \setinterfacevariable{medium}{medio} \setinterfacevariable{middle}{centro} \setinterfacevariable{min}{min} \setinterfacevariable{mindepth}{mindepth} \setinterfacevariable{minheight}{altezzamin} \setinterfacevariable{minwidth}{ampiezzamin} \setinterfacevariable{mirrored}{riflesso} \setinterfacevariable{mixed}{mixed} \setinterfacevariable{monday}{lunedi} \setinterfacevariable{mono}{mono} \setinterfacevariable{monobold}{monograssetto} \setinterfacevariable{mononormal}{mononormal} \setinterfacevariable{month}{mese} \setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{nome} \setinterfacevariable{narrow}{stretto} \setinterfacevariable{negative}{negativo} \setinterfacevariable{never}{mai} \setinterfacevariable{new}{nuovo} \setinterfacevariable{next}{successivo} \setinterfacevariable{nextevenpage}{paginaparisuccessiva} \setinterfacevariable{nextoddpage}{paginadisparisuccessiva} \setinterfacevariable{nextpage}{paginasuccessiva} \setinterfacevariable{nextsubpage}{sottopaginasuccessiva} \setinterfacevariable{nine}{nine} \setinterfacevariable{no}{no} \setinterfacevariable{nocheck}{nocheck} \setinterfacevariable{nodepth}{nodepth} \setinterfacevariable{nofit}{nofit} \setinterfacevariable{nogrid}{nogrid} \setinterfacevariable{noheight}{noheight} \setinterfacevariable{nohz}{nohz} \setinterfacevariable{noline}{noline} \setinterfacevariable{nomarking}{nomarcature} \setinterfacevariable{nomenubar}{nomenubar} \setinterfacevariable{none}{nessuno} \setinterfacevariable{nonumber}{nonumber} \setinterfacevariable{norepeat}{norepeat} \setinterfacevariable{normal}{normale} \setinterfacevariable{normalshort}{normalshort} \setinterfacevariable{nospacing}{nospacing} \setinterfacevariable{nostopper}{nostopper} \setinterfacevariable{not}{non} \setinterfacevariable{notation}{notation} \setinterfacevariable{notcollapsed}{notcollapsed} \setinterfacevariable{note}{note} \setinterfacevariable{nothanging}{nonsospeso} \setinterfacevariable{nothyphenated}{nonsillabato} \setinterfacevariable{notjoinedup}{notjoinedup} \setinterfacevariable{november}{novembre} \setinterfacevariable{nowhere}{danessunaparte} \setinterfacevariable{nowhite}{nobianco} \setinterfacevariable{number}{numero} \setinterfacevariable{numbers}{numeri} \setinterfacevariable{october}{ottobre} \setinterfacevariable{odd}{dispari} \setinterfacevariable{off}{disattivo} \setinterfacevariable{offset}{offset} \setinterfacevariable{old}{old} \setinterfacevariable{oldstyle}{oldstyle} \setinterfacevariable{on}{attivo} \setinterfacevariable{one}{uno} \setinterfacevariable{opposite}{opposto} \setinterfacevariable{ordinal}{ordinal} \setinterfacevariable{outer}{esterno} \setinterfacevariable{outeredge}{bordoesterno} \setinterfacevariable{outermargin}{margineesterno} \setinterfacevariable{outline}{outline} \setinterfacevariable{outlined}{outlined} \setinterfacevariable{overbar}{sopralinea} \setinterfacevariable{overbars}{sopralinee} \setinterfacevariable{overlay}{sovrapponi} \setinterfacevariable{overprint}{overprint} \setinterfacevariable{overstrike}{sbarrato} \setinterfacevariable{overstrikes}{sbarrati} \setinterfacevariable{packed}{impaccato} \setinterfacevariable{page}{pagina} \setinterfacevariable{pagecomment}{commentopagina} \setinterfacevariable{pagenumber}{numeropagina} \setinterfacevariable{paper}{carta} \setinterfacevariable{paragraph}{capoverso} \setinterfacevariable{part}{parte} \setinterfacevariable{positive}{positivo} \setinterfacevariable{postponing}{posporre} \setinterfacevariable{postscript}{postscript} \setinterfacevariable{precedingpage}{precedingpage} \setinterfacevariable{preference}{preferenza} \setinterfacevariable{prepend}{prepend} \setinterfacevariable{preview}{anteprima} \setinterfacevariable{previous}{precedente} \setinterfacevariable{previousevenpage}{paginapariprecedente} \setinterfacevariable{previousoddpage}{paginadispariprecedente} \setinterfacevariable{previouspage}{paginaprecedente} \setinterfacevariable{previoussubpage}{sottopaginaprecedente} \setinterfacevariable{print}{print} \setinterfacevariable{printable}{stampabile} \setinterfacevariable{process}{process} \setinterfacevariable{product}{prodotto} \setinterfacevariable{profile}{profile} \setinterfacevariable{program}{programma} \setinterfacevariable{project}{progetto} \setinterfacevariable{protected}{protetto} \setinterfacevariable{quadruple}{quadruplo} \setinterfacevariable{quarterline}{quarterline} \setinterfacevariable{quotation}{citazione} \setinterfacevariable{quote}{menzione} \setinterfacevariable{ran}{corse} \setinterfacevariable{random}{casuale} \setinterfacevariable{readonly}{solalettura} \setinterfacevariable{rectangular}{rettangolare} \setinterfacevariable{reference}{riferimento} \setinterfacevariable{referral}{referral} \setinterfacevariable{region}{region} \setinterfacevariable{register}{registro} \setinterfacevariable{regular}{regolare} \setinterfacevariable{relative}{relativo} \setinterfacevariable{repeat}{ripeti} \setinterfacevariable{required}{richiestp} \setinterfacevariable{reset}{reimposta} \setinterfacevariable{reverse}{invertito} \setinterfacevariable{right}{destra} \setinterfacevariable{rightedge}{bordodestro} \setinterfacevariable{righthanging}{righthanging} \setinterfacevariable{rightmargin}{marginedestro} \setinterfacevariable{rightpage}{paginadestra} \setinterfacevariable{righttext}{testodestro} \setinterfacevariable{righttoleft}{righttoleft} \setinterfacevariable{roman}{roman} \setinterfacevariable{romannumerals}{numeriromani} \setinterfacevariable{rotate}{ruota} \setinterfacevariable{rotated}{ruotato} \setinterfacevariable{round}{rotondo} \setinterfacevariable{row}{row} \setinterfacevariable{rule}{linea} \setinterfacevariable{samepage}{stessapagina} \setinterfacevariable{sans}{sans} \setinterfacevariable{sansbold}{sansgrassetto} \setinterfacevariable{sansnormal}{sansnormal} \setinterfacevariable{sansserif}{sansserif} \setinterfacevariable{saturday}{sabato} \setinterfacevariable{screen}{schermo} \setinterfacevariable{section}{capoverso} \setinterfacevariable{sectionblockenvironment}{ambientebloccosezione} \setinterfacevariable{sectionnumber}{numerosezione} \setinterfacevariable{see}{vedi} \setinterfacevariable{selectfont}{selectfont} \setinterfacevariable{separator}{separator} \setinterfacevariable{september}{settembre} \setinterfacevariable{serif}{serif} \setinterfacevariable{serifbold}{serifbold} \setinterfacevariable{serifnormal}{serifnormal} \setinterfacevariable{serried}{vicino} \setinterfacevariable{setups}{setups} \setinterfacevariable{seven}{seven} \setinterfacevariable{sheet}{sheet} \setinterfacevariable{shiftdown}{shiftdown} \setinterfacevariable{shiftup}{shiftup} \setinterfacevariable{short}{short} \setinterfacevariable{simplefonts}{simplefonts} \setinterfacevariable{simplelist}{simplelist} \setinterfacevariable{singlesided}{facciasingola} \setinterfacevariable{six}{six} \setinterfacevariable{size}{dimensione} \setinterfacevariable{slanted}{inclinato} \setinterfacevariable{slantedbold}{inclinatograssetto} \setinterfacevariable{small}{piccolo} \setinterfacevariable{smallbodyfont}{piccolofontdelcorpo} \setinterfacevariable{smallbold}{piccolograssetto} \setinterfacevariable{smallbolditalic}{piccolograssettocorsivo} \setinterfacevariable{smallboldslanted}{piccolograssettoinclinato} \setinterfacevariable{smallcaps}{maiuscoletto} \setinterfacevariable{smaller}{smaller} \setinterfacevariable{smallitalic}{piccolocorsivo} \setinterfacevariable{smallitalicbold}{piccolocorsivograssetto} \setinterfacevariable{smallnormal}{piccolonormale} \setinterfacevariable{smallslanted}{piccoloinclinato} \setinterfacevariable{smallslantedbold}{piccoloinclinatograssetto} \setinterfacevariable{smalltype}{piccolotype} \setinterfacevariable{somewhere}{daqualcheparte} \setinterfacevariable{sorted}{ordinato} \setinterfacevariable{sorting}{sorting} \setinterfacevariable{space}{spazio} \setinterfacevariable{spacing}{spaziatura} \setinterfacevariable{speech}{speech} \setinterfacevariable{split}{separa} \setinterfacevariable{spot}{spot} \setinterfacevariable{spread}{spread} \setinterfacevariable{standard}{standard} \setinterfacevariable{start}{inizia} \setinterfacevariable{starter}{starter} \setinterfacevariable{sticker}{sticker} \setinterfacevariable{stop}{termina} \setinterfacevariable{stopper}{stopper} \setinterfacevariable{stretch}{dilata} \setinterfacevariable{stretched}{stretched} \setinterfacevariable{strict}{rigido} \setinterfacevariable{strong}{strong} \setinterfacevariable{strut}{strut} \setinterfacevariable{sub}{sotto} \setinterfacevariable{subbackward}{sottoindietro} \setinterfacevariable{subformula}{subformula} \setinterfacevariable{subforward}{sottoavanti} \setinterfacevariable{subject}{argomento} \setinterfacevariable{subpage}{sottopagina} \setinterfacevariable{subs}{subs} \setinterfacevariable{subsection}{sottocapoverso} \setinterfacevariable{subsubject}{sottoargomento} \setinterfacevariable{subsubsection}{sottosottocapoverso} \setinterfacevariable{subsubsubject}{sottosottoargomento} \setinterfacevariable{subsubsubsection}{sottosottosottocapoverso} \setinterfacevariable{subsubsubsubject}{sottosottosottoargomento} \setinterfacevariable{subsubsubsubsection}{sottosottosottosottocapoverso} \setinterfacevariable{subsubsubsubsubject}{sottosottosottosottoargomento} \setinterfacevariable{subsubsubsubsubsection}{sottosottosottosottosottocapoverso} \setinterfacevariable{subsubsubsubsubsubject}{sottosottosottosottosottoargomento} \setinterfacevariable{subsubsubsubsubsubsection}{sottosottosottosottosottosottocapoverso} \setinterfacevariable{subsubsubsubsubsubsubject}{sottosottosottosottosottosottoargomento} \setinterfacevariable{subsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottocapoverso} \setinterfacevariable{subsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottoargomento} \setinterfacevariable{subsubsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottosottocapoverso} \setinterfacevariable{subsubsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottosottoargomento} \setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottosottosottocapoverso} \setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottosottosottoargomento} \setinterfacevariable{sunday}{domenica} \setinterfacevariable{support}{supporto} \setinterfacevariable{sym}{sim} \setinterfacevariable{symbol}{simbolo} \setinterfacevariable{synchronize}{synchronize} \setinterfacevariable{synonym}{synonym} \setinterfacevariable{system}{sistema} \setinterfacevariable{table}{tabella} \setinterfacevariable{tablehead}{testatabella} \setinterfacevariable{tables}{tabelle} \setinterfacevariable{tabletail}{codatabella} \setinterfacevariable{tabulate}{tabulato} \setinterfacevariable{tabulatehead}{testatabulato} \setinterfacevariable{tabulatetail}{codatabulato} \setinterfacevariable{tall}{alto} \setinterfacevariable{teletype}{teletype} \setinterfacevariable{temporary}{temporaneo} \setinterfacevariable{test}{test} \setinterfacevariable{text}{testo} \setinterfacevariable{textdisplay}{textdisplay} \setinterfacevariable{textnote}{textnote} \setinterfacevariable{three}{tre} \setinterfacevariable{thursday}{giovedi} \setinterfacevariable{tight}{tight} \setinterfacevariable{title}{titolo} \setinterfacevariable{toggle}{toggle} \setinterfacevariable{tolerant}{tollerante} \setinterfacevariable{top}{cima} \setinterfacevariable{tuesday}{martedi} \setinterfacevariable{two}{due} \setinterfacevariable{txt}{txt} \setinterfacevariable{type}{type} \setinterfacevariable{typing}{typing} \setinterfacevariable{unavailable}{nondisponibile} \setinterfacevariable{underbar}{sottolinea} \setinterfacevariable{underbars}{sottolinee} \setinterfacevariable{understrike}{understrike} \setinterfacevariable{understrikes}{understrikes} \setinterfacevariable{unframed}{unframed} \setinterfacevariable{unicode}{unicode} \setinterfacevariable{unit}{unita} \setinterfacevariable{units}{unita} \setinterfacevariable{unknown}{ignoto} \setinterfacevariable{unpacked}{unpacked} \setinterfacevariable{up}{up} \setinterfacevariable{url}{url} \setinterfacevariable{used}{usato} \setinterfacevariable{value}{valore} \setinterfacevariable{vertical}{verticale} \setinterfacevariable{very}{molto} \setinterfacevariable{verystrict}{moltorigido} \setinterfacevariable{verytight}{verytight} \setinterfacevariable{verytolerant}{moltotollerante} \setinterfacevariable{vfenced}{vfenced} \setinterfacevariable{vulgarfraction}{vulgarfraction} \setinterfacevariable{vz}{vz} \setinterfacevariable{weak}{weak} \setinterfacevariable{wednesday}{mercoledi} \setinterfacevariable{week}{settimana} \setinterfacevariable{weekday}{giornosettimana} \setinterfacevariable{white}{bianco} \setinterfacevariable{wide}{ampio} \setinterfacevariable{width}{ampiezza} \setinterfacevariable{word}{parola} \setinterfacevariable{words}{words} \setinterfacevariable{xml}{xml} \setinterfacevariable{year}{anno} \setinterfacevariable{yes}{si} % definitions for interface constants for language it % \setinterfaceconstant{action}{azione} \setinterfaceconstant{adaptive}{adaptive} \setinterfaceconstant{address}{indirizzo} \setinterfaceconstant{after}{dopo} \setinterfaceconstant{afterhead}{dopotesta} \setinterfaceconstant{afterkey}{dopotasto} \setinterfaceconstant{aftersection}{aftersection} \setinterfaceconstant{align}{allinea} \setinterfaceconstant{alignbottom}{alignbottom} \setinterfaceconstant{aligncharacter}{allineacarattere} \setinterfaceconstant{alignmentcharacter}{carattereallineamento} \setinterfaceconstant{alignmentleftsample}{alignmentleftsample} \setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth} \setinterfaceconstant{alignmentrightsample}{alignmentrightsample} \setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth} \setinterfaceconstant{alignscripts}{alignscripts} \setinterfaceconstant{alignsymbol}{alignsymbol} \setinterfaceconstant{aligntitle}{allineatitolo} \setinterfaceconstant{alternative}{alternativa} \setinterfaceconstant{anchor}{anchor} \setinterfaceconstant{anchoring}{anchoring} \setinterfaceconstant{andtext}{andtext} \setinterfaceconstant{apa}{apa} \setinterfaceconstant{arguments}{arguments} \setinterfaceconstant{arrow}{freccia} \setinterfaceconstant{artauthor}{artauthor} \setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay} \setinterfaceconstant{artauthoretallimit}{artauthoretallimit} \setinterfaceconstant{artauthoretaltext}{artauthoretaltext} \setinterfaceconstant{artoffset}{artoffset} \setinterfaceconstant{at}{ad} \setinterfaceconstant{author}{autore} \setinterfaceconstant{authorconversion}{authorconversion} \setinterfaceconstant{authoretaldisplay}{authoretaldisplay} \setinterfaceconstant{authoretallimit}{authoretallimit} \setinterfaceconstant{authoretaltext}{authoretaltext} \setinterfaceconstant{auto}{auto} \setinterfaceconstant{autocase}{autocase} \setinterfaceconstant{autofencing}{autofencing} \setinterfaceconstant{autofile}{autofile} \setinterfaceconstant{autofocus}{autofocus} \setinterfaceconstant{autohang}{autohang} \setinterfaceconstant{autointervals}{autointervals} \setinterfaceconstant{autonumbers}{autonumbers} \setinterfaceconstant{autopunctuation}{autopunctuation} \setinterfaceconstant{autospacing}{autospacing} \setinterfaceconstant{autostrut}{autostrut} \setinterfaceconstant{autowidth}{autoampiezza} \setinterfaceconstant{availableheight}{availableheight} \setinterfaceconstant{availablewidth}{availablewidth} \setinterfaceconstant{axis}{asse} \setinterfaceconstant{background}{sfondo} \setinterfaceconstant{backgroundcolor}{coloresfondo} \setinterfaceconstant{backgroundcorner}{angolosfondo} \setinterfaceconstant{backgrounddepth}{profonditasfondo} \setinterfaceconstant{backgroundoffset}{offsetsfondo} \setinterfaceconstant{backgroundradius}{raggiosfondo} \setinterfaceconstant{backgroundscreen}{schermosfondo} \setinterfaceconstant{backreference}{backreference} \setinterfaceconstant{backspace}{backspace} \setinterfaceconstant{balance}{bilanciamento} \setinterfaceconstant{before}{prima} \setinterfaceconstant{beforehead}{primaditesta} \setinterfaceconstant{beforesection}{beforesection} \setinterfaceconstant{bet}{bet} \setinterfaceconstant{bidi}{bidi} \setinterfaceconstant{big}{grande} \setinterfaceconstant{blank}{rigovuoto} \setinterfaceconstant{bleedoffset}{bleedoffset} \setinterfaceconstant{blockway}{blockway} \setinterfaceconstant{bodyfont}{fonttesto} \setinterfaceconstant{boffset}{boffset} \setinterfaceconstant{boldfeatures}{boldfeatures} \setinterfaceconstant{boldfont}{boldfont} \setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures} \setinterfaceconstant{bolditalicfont}{bolditalicfont} \setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures} \setinterfaceconstant{boldslantedfont}{boldslantedfont} \setinterfaceconstant{bookmark}{segnalibro} \setinterfaceconstant{bottom}{fondo} \setinterfaceconstant{bottomafter}{bottomafter} \setinterfaceconstant{bottomalign}{bottomalign} \setinterfaceconstant{bottombefore}{bottombefore} \setinterfaceconstant{bottomcolor}{bottomcolor} \setinterfaceconstant{bottomcommand}{bottomcommand} \setinterfaceconstant{bottomdistance}{distanzafondo} \setinterfaceconstant{bottomframe}{cornicefondo} \setinterfaceconstant{bottomoffset}{offsetfondo} \setinterfaceconstant{bottomspace}{spaziofondo} \setinterfaceconstant{bottomstate}{statofondo} \setinterfaceconstant{bottomstyle}{bottomstyle} \setinterfaceconstant{break}{break} \setinterfaceconstant{buffer}{buffer} \setinterfaceconstant{cache}{cache} \setinterfaceconstant{calculate}{calcola} \setinterfaceconstant{category}{category} \setinterfaceconstant{ccommand}{ccomando} \setinterfaceconstant{character}{character} \setinterfaceconstant{characters}{characters} \setinterfaceconstant{check}{check} \setinterfaceconstant{click}{click} \setinterfaceconstant{clickin}{clickdentro} \setinterfaceconstant{clickout}{clickfuori} \setinterfaceconstant{clipoffset}{clipoffset} \setinterfaceconstant{closeaction}{azionechiudi} \setinterfaceconstant{closecommand}{closecommand} \setinterfaceconstant{closepage}{closepage} \setinterfaceconstant{closepageaction}{azionechiudipagina} \setinterfaceconstant{closesymbol}{closesymbol} \setinterfaceconstant{color}{colore} \setinterfaceconstant{column}{colonna} \setinterfaceconstant{columndistance}{distanzacolonne} \setinterfaceconstant{columns}{colonne} \setinterfaceconstant{comma}{comma} \setinterfaceconstant{command}{comando} \setinterfaceconstant{commandafter}{comdandodopo} \setinterfaceconstant{commandbefore}{comandoprima} \setinterfaceconstant{commands}{comandi} \setinterfaceconstant{comment}{comment} \setinterfaceconstant{commentchar}{commentchar} \setinterfaceconstant{commentoffset}{commentoffset} \setinterfaceconstant{compact}{compact} \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} \setinterfaceconstant{compressdistance}{compressdistance} \setinterfaceconstant{compressmethod}{compressmethod} \setinterfaceconstant{compressseparator}{compressseparator} \setinterfaceconstant{compressstopper}{compressstopper} \setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{continua} \setinterfaceconstant{contrastcolor}{colorecontrasto} \setinterfaceconstant{controls}{controlli} \setinterfaceconstant{conversion}{conversione} \setinterfaceconstant{convertfile}{convertifile} \setinterfaceconstant{copies}{copies} \setinterfaceconstant{corner}{angolo} \setinterfaceconstant{coupling}{accoppiamento} \setinterfaceconstant{couplingway}{modoaccoppiamento} \setinterfaceconstant{criterium}{criterio} \setinterfaceconstant{crop}{crop} \setinterfaceconstant{cropoffset}{cropoffset} \setinterfaceconstant{crossreference}{crossreference} \setinterfaceconstant{cssfile}{cssfile} \setinterfaceconstant{current}{corrente} \setinterfaceconstant{cutspace}{cutspace} \setinterfaceconstant{dash}{dash} \setinterfaceconstant{dashstep}{dashstep} \setinterfaceconstant{dat}{dat} \setinterfaceconstant{database}{database} \setinterfaceconstant{dataset}{dataset} \setinterfaceconstant{date}{data} \setinterfaceconstant{deepnumbercommand}{deepnumbercommand} \setinterfaceconstant{deeptextcommand}{deeptextcommand} \setinterfaceconstant{default}{implicito} \setinterfaceconstant{defaultheight}{defaultheight} \setinterfaceconstant{defaultwidth}{defaultwidth} \setinterfaceconstant{define}{define} \setinterfaceconstant{delay}{attesa} \setinterfaceconstant{depth}{profondita} \setinterfaceconstant{depthcorrection}{correzioneprofondita} \setinterfaceconstant{differentiald}{differentiald} \setinterfaceconstant{direction}{direzione} \setinterfaceconstant{directory}{directory} \setinterfaceconstant{display}{display} \setinterfaceconstant{displayfactor}{displayfactor} \setinterfaceconstant{displaythreshold}{displaythreshold} \setinterfaceconstant{distance}{distanza} \setinterfaceconstant{domain}{domain} \setinterfaceconstant{dot}{punto} \setinterfaceconstant{doublesided}{doppiafaccia} \setinterfaceconstant{down}{down} \setinterfaceconstant{dummy}{dummy} \setinterfaceconstant{dx}{dx} \setinterfaceconstant{dy}{dy} \setinterfaceconstant{edge}{bordo} \setinterfaceconstant{edgedistance}{distanzabordo} \setinterfaceconstant{editor}{editor} \setinterfaceconstant{editoretaldisplay}{editoretaldisplay} \setinterfaceconstant{editoretallimit}{editoretallimit} \setinterfaceconstant{editoretaltext}{editoretaltext} \setinterfaceconstant{empty}{vuoto} \setinterfaceconstant{entities}{entities} \setinterfaceconstant{entries}{entries} \setinterfaceconstant{equalheight}{equalheight} \setinterfaceconstant{equalwidth}{equalwidth} \setinterfaceconstant{escape}{escape} \setinterfaceconstant{etaldisplay}{etaldisplay} \setinterfaceconstant{etallimit}{etallimit} \setinterfaceconstant{etaloption}{etaloption} \setinterfaceconstant{etaltext}{etaltext} \setinterfaceconstant{evenmargin}{marginepari} \setinterfaceconstant{exact}{exact} \setinterfaceconstant{exitoffset}{exitoffset} \setinterfaceconstant{expansion}{espansione} \setinterfaceconstant{export}{export} \setinterfaceconstant{extradata}{extradata} \setinterfaceconstant{extras}{extras} \setinterfaceconstant{factor}{fattore} \setinterfaceconstant{fallback}{fallback} \setinterfaceconstant{fallbacks}{fallbacks} \setinterfaceconstant{family}{famiglia} \setinterfaceconstant{features}{features} \setinterfaceconstant{featureset}{featureset} \setinterfaceconstant{fences}{fences} \setinterfaceconstant{field}{field} \setinterfaceconstant{fieldbackgroundcolor}{coloresfondocampo} \setinterfaceconstant{fieldframecolor}{colorecornicecampo} \setinterfaceconstant{fieldlayer}{fieldlayer} \setinterfaceconstant{fieldoffset}{offsetcampo} \setinterfaceconstant{file}{file} \setinterfaceconstant{filler}{filler} \setinterfaceconstant{filter}{filter} \setinterfaceconstant{filtercommand}{filtercommand} \setinterfaceconstant{finalnamesep}{finalnamesep} \setinterfaceconstant{finalpagesep}{finalpagesep} \setinterfaceconstant{finalpubsep}{finalpubsep} \setinterfaceconstant{first}{primo} \setinterfaceconstant{firstnamesep}{firstnamesep} \setinterfaceconstant{firstpage}{primapagina} \setinterfaceconstant{focus}{focus} \setinterfaceconstant{focusin}{focusin} \setinterfaceconstant{focusoffset}{focusoffset} \setinterfaceconstant{focusout}{focusout} \setinterfaceconstant{font}{font} \setinterfaceconstant{footer}{piedipagina} \setinterfaceconstant{footerdistance}{distanzapdp} \setinterfaceconstant{footerstate}{statopdp} \setinterfaceconstant{force}{forza} \setinterfaceconstant{foregroundcolor}{coloreprimopiano} \setinterfaceconstant{foregroundstyle}{foregroundstyle} \setinterfaceconstant{format}{format} \setinterfaceconstant{fractions}{fractions} \setinterfaceconstant{frame}{cornice} \setinterfaceconstant{framecolor}{colorecornice} \setinterfaceconstant{framecorner}{angolocornice} \setinterfaceconstant{framedepth}{profonditacornice} \setinterfaceconstant{frameoffset}{offsetcornice} \setinterfaceconstant{frameradius}{raggiocornice} \setinterfaceconstant{frames}{cornici} \setinterfaceconstant{freeregion}{freeregion} \setinterfaceconstant{freezespacing}{freezespacing} \setinterfaceconstant{from}{da} \setinterfaceconstant{functioncolor}{functioncolor} \setinterfaceconstant{functionstyle}{functionstyle} \setinterfaceconstant{get}{prendi} \setinterfaceconstant{global}{globale} \setinterfaceconstant{goodies}{goodies} \setinterfaceconstant{grid}{griglia} \setinterfaceconstant{group}{group} \setinterfaceconstant{groupsuffix}{groupsuffix} \setinterfaceconstant{hang}{sospendi} \setinterfaceconstant{hcompact}{hcompact} \setinterfaceconstant{headalign}{headalign} \setinterfaceconstant{headcolor}{coloretesta} \setinterfaceconstant{headcommand}{headcommand} \setinterfaceconstant{headconversion}{conversionetesta} \setinterfaceconstant{header}{intestazione} \setinterfaceconstant{headerdistance}{distanzaintestazione} \setinterfaceconstant{headerstate}{statointestazione} \setinterfaceconstant{headindenting}{headindenting} \setinterfaceconstant{headlabel}{etichettatesta} \setinterfaceconstant{headnumber}{numerotesta} \setinterfaceconstant{headseparator}{headseparator} \setinterfaceconstant{headstyle}{stiletesta} \setinterfaceconstant{height}{altezza} \setinterfaceconstant{hfactor}{hfactor} \setinterfaceconstant{hfil}{hfil} \setinterfaceconstant{hidenumber}{hidenumber} \setinterfaceconstant{hoffset}{hoffset} \setinterfaceconstant{horizontal}{orizzontale} \setinterfaceconstant{horoffset}{horoffset} \setinterfaceconstant{hyphen}{hyphen} \setinterfaceconstant{hyphens}{hyphens} \setinterfaceconstant{hz}{hz} \setinterfaceconstant{icommand}{icomando} \setinterfaceconstant{ignore}{ignore} \setinterfaceconstant{in}{in} \setinterfaceconstant{inbetween}{tra} \setinterfaceconstant{increment}{incremento} \setinterfaceconstant{incrementnumber}{incrementanumero} \setinterfaceconstant{indenting}{rientro} \setinterfaceconstant{indentlist}{indentlist} \setinterfaceconstant{indentnext}{rientrasuccessivo} \setinterfaceconstant{index}{index} \setinterfaceconstant{indicator}{indicatore} \setinterfaceconstant{initialsep}{initialsep} \setinterfaceconstant{inlinefactor}{inlinefactor} \setinterfaceconstant{inlinethreshold}{inlinethreshold} \setinterfaceconstant{inner}{interno} \setinterfaceconstant{innermargin}{margineinterno} \setinterfaceconstant{inputfile}{inputfile} \setinterfaceconstant{insidesection}{insidesection} \setinterfaceconstant{instance}{instance} \setinterfaceconstant{integral}{integral} \setinterfaceconstant{intent}{intent} \setinterfaceconstant{interaction}{interazione} \setinterfaceconstant{interlinespace}{interlinea} \setinterfaceconstant{internalgrid}{internalgrid} \setinterfaceconstant{interscriptfactor}{interscriptfactor} \setinterfaceconstant{italicfeatures}{italicfeatures} \setinterfaceconstant{italicfont}{italicfont} \setinterfaceconstant{itemalign}{itemalign} \setinterfaceconstant{items}{elementi} \setinterfaceconstant{joiners}{joiners} \setinterfaceconstant{journalconversion}{journalconversion} \setinterfaceconstant{juniorsep}{juniorsep} \setinterfaceconstant{keeptogether}{keeptogether} \setinterfaceconstant{ken}{ken} \setinterfaceconstant{keyexpansion}{keyexpansion} \setinterfaceconstant{keys}{keys} \setinterfaceconstant{keyword}{parolachiave} \setinterfaceconstant{label}{etichetta} \setinterfaceconstant{labelalternative}{labelalternative} \setinterfaceconstant{labelcolor}{labelcolor} \setinterfaceconstant{labeloffset}{labeloffset} \setinterfaceconstant{labelstyle}{labelstyle} \setinterfaceconstant{language}{language} \setinterfaceconstant{last}{last} \setinterfaceconstant{lastnamesep}{lastnamesep} \setinterfaceconstant{lastpage}{ultimapagina} \setinterfaceconstant{lastpagesep}{lastpagesep} \setinterfaceconstant{lastpubsep}{lastpubsep} \setinterfaceconstant{lasttextseparator}{lasttextseparator} \setinterfaceconstant{layout}{layout} \setinterfaceconstant{left}{sinistra} \setinterfaceconstant{leftclass}{leftclass} \setinterfaceconstant{leftcolor}{coloresinistra} \setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen} \setinterfaceconstant{leftedge}{bordosinistro} \setinterfaceconstant{leftedgedistance}{distanzabordosinistro} \setinterfaceconstant{leftframe}{cornicesinistra} \setinterfaceconstant{lefthyphen}{lefthyphen} \setinterfaceconstant{leftmargin}{marginesinistro} \setinterfaceconstant{leftmargindistance}{distanzamarginesinistro} \setinterfaceconstant{leftoffset}{offsetsinistro} \setinterfaceconstant{leftquotation}{citazionesinistra} \setinterfaceconstant{leftquote}{menzionesinistra} \setinterfaceconstant{leftsample}{leftsample} \setinterfaceconstant{leftsentence}{frasesinistra} \setinterfaceconstant{leftsource}{leftsource} \setinterfaceconstant{leftspeech}{leftspeech} \setinterfaceconstant{leftstyle}{stilesinistra} \setinterfaceconstant{leftsubsentence}{sottofrasesinistra} \setinterfaceconstant{lefttext}{testosinistro} \setinterfaceconstant{leftwidth}{ampiezzasinistra} \setinterfaceconstant{leftwords}{leftwords} \setinterfaceconstant{less}{less} \setinterfaceconstant{level}{livello} \setinterfaceconstant{levels}{livelli} \setinterfaceconstant{limit}{limit} \setinterfaceconstant{limitstretch}{limitstretch} \setinterfaceconstant{limittext}{limittext} \setinterfaceconstant{line}{riga} \setinterfaceconstant{linecorrection}{correzioneriga} \setinterfaceconstant{linedirection}{linedirection} \setinterfaceconstant{lines}{righe} \setinterfaceconstant{list}{elenco} \setinterfaceconstant{listtext}{listtext} \setinterfaceconstant{local}{locale} \setinterfaceconstant{location}{luogo} \setinterfaceconstant{loffset}{loffset} \setinterfaceconstant{logo}{logo} \setinterfaceconstant{logos}{loghi} \setinterfaceconstant{marcolor}{coloremarcatura} \setinterfaceconstant{margin}{margine} \setinterfaceconstant{margindistance}{distanzamargine} \setinterfaceconstant{marginedge}{bordomargine} \setinterfaceconstant{marginedgetext}{testobordomargine} \setinterfaceconstant{margintext}{testomargine} \setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{marcatura} \setinterfaceconstant{marstyle}{stilemarcatura} \setinterfaceconstant{mask}{mask} \setinterfaceconstant{mathclass}{mathclass} \setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle} \setinterfaceconstant{mathlimits}{mathlimits} \setinterfaceconstant{mathmeaning}{mathmeaning} \setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle} \setinterfaceconstant{mathstyle}{mathstyle} \setinterfaceconstant{max}{max} \setinterfaceconstant{maxdepth}{maxdepth} \setinterfaceconstant{maxheight}{altezzamax} \setinterfaceconstant{maxwidth}{ampiezzamax} \setinterfaceconstant{maybeyear}{maybeyear} \setinterfaceconstant{menu}{menu} \setinterfaceconstant{metadata}{metadata} \setinterfaceconstant{method}{metodo} \setinterfaceconstant{middle}{centro} \setinterfaceconstant{middleclass}{middleclass} \setinterfaceconstant{middlecolor}{middlecolor} \setinterfaceconstant{middlecommand}{middlecommand} \setinterfaceconstant{middlesource}{middlesource} \setinterfaceconstant{middlespeech}{middlespeech} \setinterfaceconstant{middlestyle}{middlestyle} \setinterfaceconstant{middletext}{testocentro} \setinterfaceconstant{middlewidth}{middlewidth} \setinterfaceconstant{midsentence}{midsentence} \setinterfaceconstant{min}{min} \setinterfaceconstant{mindepth}{mindepth} \setinterfaceconstant{minheight}{altezzamin} \setinterfaceconstant{minwidth}{ampiezzamin} \setinterfaceconstant{moffset}{moffset} \setinterfaceconstant{monthconversion}{monthconversion} \setinterfaceconstant{more}{more} \setinterfaceconstant{mpdepth}{mpdepth} \setinterfaceconstant{mpheight}{mpheight} \setinterfaceconstant{mpoffset}{mpoffset} \setinterfaceconstant{mpwidth}{mpwidth} \setinterfaceconstant{n}{n} \setinterfaceconstant{name}{nome} \setinterfaceconstant{namesep}{namesep} \setinterfaceconstant{nbottom}{nfondo} \setinterfaceconstant{nc}{nc} \setinterfaceconstant{next}{successivo} \setinterfaceconstant{nextleft}{nextleft} \setinterfaceconstant{nextleftquotation}{nextleftquotation} \setinterfaceconstant{nextright}{nextright} \setinterfaceconstant{nextrightquotation}{nextrightquotation} \setinterfaceconstant{nl}{nl} \setinterfaceconstant{nleft}{nsinistra} \setinterfaceconstant{nlines}{nrighe} \setinterfaceconstant{norm}{norma} \setinterfaceconstant{note}{note} \setinterfaceconstant{notes}{notes} \setinterfaceconstant{nr}{nr} \setinterfaceconstant{nright}{ndestra} \setinterfaceconstant{ntop}{ncima} \setinterfaceconstant{number}{numero} \setinterfaceconstant{numberalign}{numberalign} \setinterfaceconstant{numbercolor}{colorenumero} \setinterfaceconstant{numbercommand}{comandonumero} \setinterfaceconstant{numberconversion}{numberconversion} \setinterfaceconstant{numberconversionset}{numberconversionset} \setinterfaceconstant{numberdistance}{numberdistance} \setinterfaceconstant{numbering}{numerazione} \setinterfaceconstant{numberlocation}{numberlocation} \setinterfaceconstant{numbermethod}{numbermethod} \setinterfaceconstant{numberorder}{numberorder} \setinterfaceconstant{numberprefix}{numberprefix} \setinterfaceconstant{numbersegments}{numbersegments} \setinterfaceconstant{numberseparator}{separatorenumero} \setinterfaceconstant{numberseparatorset}{numberseparatorset} \setinterfaceconstant{numberset}{numberset} \setinterfaceconstant{numberstarter}{numberstarter} \setinterfaceconstant{numberstopper}{numberstopper} \setinterfaceconstant{numberstrut}{numberstrut} \setinterfaceconstant{numberstyle}{stilenumero} \setinterfaceconstant{numberthreshold}{numberthreshold} \setinterfaceconstant{numberwidth}{numberwidth} \setinterfaceconstant{nx}{nx} \setinterfaceconstant{ny}{ny} \setinterfaceconstant{object}{oggetto} \setinterfaceconstant{obstruction}{ostruzione} \setinterfaceconstant{oddmargin}{marginedispari} \setinterfaceconstant{off}{disattivo} \setinterfaceconstant{offset}{offset} \setinterfaceconstant{on}{attivo} \setinterfaceconstant{openaction}{azioneapri} \setinterfaceconstant{openpage}{openpage} \setinterfaceconstant{openpageaction}{azioneapripagina} \setinterfaceconstant{openup}{openup} \setinterfaceconstant{opticalsize}{opticalsize} \setinterfaceconstant{option}{opzione} \setinterfaceconstant{order}{order} \setinterfaceconstant{orientation}{orientation} \setinterfaceconstant{otherstext}{otherstext} \setinterfaceconstant{outermargin}{margineesterno} \setinterfaceconstant{overflow}{overflow} \setinterfaceconstant{overprint}{overprint} \setinterfaceconstant{ownerpassword}{ownerpassword} \setinterfaceconstant{ownnumber}{numeroproprio} \setinterfaceconstant{packcriterium}{packcriterium} \setinterfaceconstant{page}{pagina} \setinterfaceconstant{pageboundaries}{limitipagina} \setinterfaceconstant{pagecolor}{colorepagina} \setinterfaceconstant{pagecolormodel}{pagecolormodel} \setinterfaceconstant{pagecommand}{comandopagina} \setinterfaceconstant{pageconnector}{pageconnector} \setinterfaceconstant{pageconversion}{pageconversion} \setinterfaceconstant{pageconversionset}{pageconversionset} \setinterfaceconstant{pageleft}{pageleft} \setinterfaceconstant{pagemethod}{pagemethod} \setinterfaceconstant{pagenumber}{numeropagina} \setinterfaceconstant{pageprefix}{pageprefix} \setinterfaceconstant{pageprefixconnector}{pageprefixconnector} \setinterfaceconstant{pageprefixconversion}{pageprefixconversion} \setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset} \setinterfaceconstant{pageprefixsegments}{pageprefixsegments} \setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset} \setinterfaceconstant{pageprefixset}{pageprefixset} \setinterfaceconstant{pageprefixstarter}{pageprefixstarter} \setinterfaceconstant{pageprefixstopper}{pageprefixstopper} \setinterfaceconstant{pageright}{pageright} \setinterfaceconstant{pagesegments}{pagesegments} \setinterfaceconstant{pagesep}{pagesep} \setinterfaceconstant{pageseparatorset}{pageseparatorset} \setinterfaceconstant{pageset}{pageset} \setinterfaceconstant{pagestarter}{pagestarter} \setinterfaceconstant{pagestate}{statopagina} \setinterfaceconstant{pagestopper}{pagestopper} \setinterfaceconstant{pagestyle}{stilepagina} \setinterfaceconstant{palet}{tavolozza} \setinterfaceconstant{paper}{carta} \setinterfaceconstant{paragraph}{capoverso} \setinterfaceconstant{penalties}{penalties} \setinterfaceconstant{period}{period} \setinterfaceconstant{place}{metti} \setinterfaceconstant{placehead}{mettitesta} \setinterfaceconstant{placeholder}{placeholder} \setinterfaceconstant{placestopper}{mettistopper} \setinterfaceconstant{position}{posizione} \setinterfaceconstant{prefix}{prefisso} \setinterfaceconstant{prefixconnector}{prefixconnector} \setinterfaceconstant{prefixconversion}{prefixconversion} \setinterfaceconstant{prefixconversionset}{prefixconversionset} \setinterfaceconstant{prefixsegments}{prefixsegments} \setinterfaceconstant{prefixseparatorset}{prefixseparatorset} \setinterfaceconstant{prefixset}{prefixset} \setinterfaceconstant{prefixstarter}{prefixstarter} \setinterfaceconstant{prefixstopper}{prefixstopper} \setinterfaceconstant{preset}{preimpostato} \setinterfaceconstant{preview}{anteprima} \setinterfaceconstant{previous}{precedente} \setinterfaceconstant{previousnumber}{numeroprecedente} \setinterfaceconstant{print}{print} \setinterfaceconstant{printable}{stampabile} \setinterfaceconstant{process}{process} \setinterfaceconstant{processors}{processors} \setinterfaceconstant{profile}{profile} \setinterfaceconstant{properties}{properties} \setinterfaceconstant{pubsep}{pubsep} \setinterfaceconstant{quotechar}{quotechar} \setinterfaceconstant{radius}{raggio} \setinterfaceconstant{random}{casuale} \setinterfaceconstant{range}{range} \setinterfaceconstant{reduction}{riduzione} \setinterfaceconstant{ref}{ref} \setinterfaceconstant{refcommand}{refcommand} \setinterfaceconstant{reference}{riferimento} \setinterfaceconstant{referencemethod}{referencemethod} \setinterfaceconstant{referenceprefix}{referenceprefix} \setinterfaceconstant{referencetext}{referencetext} \setinterfaceconstant{referencing}{referencing} \setinterfaceconstant{region}{region} \setinterfaceconstant{regionin}{entraregione} \setinterfaceconstant{regionout}{esciregione} \setinterfaceconstant{register}{register} \setinterfaceconstant{regularfeatures}{regularfeatures} \setinterfaceconstant{regularfont}{regularfont} \setinterfaceconstant{renderingsetup}{renderingsetup} \setinterfaceconstant{repeat}{ripeti} \setinterfaceconstant{reset}{reset} \setinterfaceconstant{resetnumber}{resetnumber} \setinterfaceconstant{resolution}{risoluzione} \setinterfaceconstant{resources}{resources} \setinterfaceconstant{reverse}{invertito} \setinterfaceconstant{right}{destra} \setinterfaceconstant{rightchars}{rightchars} \setinterfaceconstant{rightclass}{rightclass} \setinterfaceconstant{rightcolor}{coloredestra} \setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen} \setinterfaceconstant{rightedge}{bordodestro} \setinterfaceconstant{rightedgedistance}{distanzabordodestro} \setinterfaceconstant{rightframe}{cornicedestra} \setinterfaceconstant{righthyphen}{righthyphen} \setinterfaceconstant{rightmargin}{marginedestro} \setinterfaceconstant{rightmargindistance}{distanzamarginedestro} \setinterfaceconstant{rightoffset}{offsetdestro} \setinterfaceconstant{rightquotation}{citazionedestra} \setinterfaceconstant{rightquote}{menzionedestra} \setinterfaceconstant{rightsample}{rightsample} \setinterfaceconstant{rightsentence}{frasedestra} \setinterfaceconstant{rightsource}{rightsource} \setinterfaceconstant{rightspeech}{rightspeech} \setinterfaceconstant{rightstyle}{stiledestra} \setinterfaceconstant{rightsubsentence}{sottofrasedestra} \setinterfaceconstant{righttext}{testodestro} \setinterfaceconstant{rightwidth}{ampiezzadestra} \setinterfaceconstant{rightwords}{rightwords} \setinterfaceconstant{roffset}{roffset} \setinterfaceconstant{rotation}{rotazione} \setinterfaceconstant{rule}{linea} \setinterfaceconstant{rulecolor}{colorelinea} \setinterfaceconstant{rulecommand}{rulecommand} \setinterfaceconstant{rulethickness}{spessorelinea} \setinterfaceconstant{samepage}{stessapagina} \setinterfaceconstant{sample}{campione} \setinterfaceconstant{samplesize}{samplesize} \setinterfaceconstant{saveinlist}{saveinlist} \setinterfaceconstant{scale}{scala} \setinterfaceconstant{scope}{scope} \setinterfaceconstant{screen}{schermo} \setinterfaceconstant{section}{sezione} \setinterfaceconstant{sectionblock}{sectionblock} \setinterfaceconstant{sectionconversion}{sectionconversion} \setinterfaceconstant{sectionconversionset}{sectionconversionset} \setinterfaceconstant{sectionnumber}{numerosezione} \setinterfaceconstant{sectionresetset}{sectionresetset} \setinterfaceconstant{sectionsegments}{sectionsegments} \setinterfaceconstant{sectionseparatorset}{sectionseparatorset} \setinterfaceconstant{sectionset}{sectionset} \setinterfaceconstant{sectionstarter}{sectionstarter} \setinterfaceconstant{sectionstopper}{sectionstopper} \setinterfaceconstant{separator}{separatore} \setinterfaceconstant{separatorcolor}{separatorcolor} \setinterfaceconstant{separatorstyle}{separatorstyle} \setinterfaceconstant{set}{set} \setinterfaceconstant{setups}{setups} \setinterfaceconstant{shrink}{shrink} \setinterfaceconstant{side}{lato} \setinterfaceconstant{sidealign}{sidealign} \setinterfaceconstant{sidemethod}{sidemethod} \setinterfaceconstant{sidespaceafter}{spaziolateraledopo} \setinterfaceconstant{sidespacebefore}{spaziolateraleprima} \setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween} \setinterfaceconstant{sidethreshold}{sidethreshold} \setinterfaceconstant{sign}{segno} \setinterfaceconstant{simplecommand}{simplecommand} \setinterfaceconstant{size}{dimensione} \setinterfaceconstant{slantedfeatures}{slantedfeatures} \setinterfaceconstant{slantedfont}{slantedfont} \setinterfaceconstant{small}{piccolo} \setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures} \setinterfaceconstant{smallcapsfont}{smallcapsfont} \setinterfaceconstant{snap}{snap} \setinterfaceconstant{snapstep}{snapstep} \setinterfaceconstant{solution}{solution} \setinterfaceconstant{sort}{sort} \setinterfaceconstant{sorttype}{sorttype} \setinterfaceconstant{source}{source} \setinterfaceconstant{space}{spazio} \setinterfaceconstant{spaceafter}{spaziodopo} \setinterfaceconstant{spaceafterside}{spaceafterside} \setinterfaceconstant{spacebefore}{spazioprima} \setinterfaceconstant{spacebeforeside}{spacebeforeside} \setinterfaceconstant{spaceinbetween}{spaceinbetween} \setinterfaceconstant{spacing}{spaziatura} \setinterfaceconstant{specification}{specification} \setinterfaceconstant{split}{separa} \setinterfaceconstant{splitcolor}{splitcolor} \setinterfaceconstant{splitmethod}{splitmethod} \setinterfaceconstant{splitoffset}{splitoffset} \setinterfaceconstant{spot}{spot} \setinterfaceconstant{stack}{stack} \setinterfaceconstant{stacking}{stacking} \setinterfaceconstant{stackname}{stackname} \setinterfaceconstant{start}{inizia} \setinterfaceconstant{starter}{starter} \setinterfaceconstant{state}{stato} \setinterfaceconstant{step}{passo} \setinterfaceconstant{stop}{termina} \setinterfaceconstant{stopper}{stopper} \setinterfaceconstant{stretch}{dilata} \setinterfaceconstant{strip}{strip} \setinterfaceconstant{strut}{strut} \setinterfaceconstant{style}{stile} \setinterfaceconstant{stylealternative}{stylealternative} \setinterfaceconstant{sub}{sotto} \setinterfaceconstant{subtitle}{sottotitolo} \setinterfaceconstant{suffix}{suffix} \setinterfaceconstant{suffixseparator}{suffixseparator} \setinterfaceconstant{suffixstopper}{suffixstopper} \setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep} \setinterfaceconstant{surnameinitialsep}{surnameinitialsep} \setinterfaceconstant{surnamesep}{surnamesep} \setinterfaceconstant{svgstyle}{svgstyle} \setinterfaceconstant{sx}{sx} \setinterfaceconstant{sy}{sy} \setinterfaceconstant{symalign}{symallinea} \setinterfaceconstant{symbol}{simbolo} \setinterfaceconstant{symbolcommand}{symbolcommand} \setinterfaceconstant{symbolset}{setsimboli} \setinterfaceconstant{symcolor}{coloresimbolo} \setinterfaceconstant{symstyle}{stilesimbolo} \setinterfaceconstant{synchronize}{synchronize} \setinterfaceconstant{synonym}{sinonimo} \setinterfaceconstant{synonymcolor}{coloresinonimi} \setinterfaceconstant{synonymcommand}{synonymcommand} \setinterfaceconstant{synonymstyle}{stilesinonimi} \setinterfaceconstant{tab}{tab} \setinterfaceconstant{target}{target} \setinterfaceconstant{text}{testo} \setinterfaceconstant{textalign}{textalign} \setinterfaceconstant{textalternative}{textalternative} \setinterfaceconstant{textcolor}{coloretesto} \setinterfaceconstant{textcommand}{comandotesto} \setinterfaceconstant{textdistance}{distanzatesto} \setinterfaceconstant{textheight}{altezzatesto} \setinterfaceconstant{textlayer}{textlayer} \setinterfaceconstant{textmargin}{textmargin} \setinterfaceconstant{textmethod}{textmethod} \setinterfaceconstant{textseparator}{separatoretesto} \setinterfaceconstant{textsize}{dimensionetesto} \setinterfaceconstant{textstate}{statotesto} \setinterfaceconstant{textstyle}{stiletesto} \setinterfaceconstant{textwidth}{ampiezzatesto} \setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{time}{time} \setinterfaceconstant{title}{titolo} \setinterfaceconstant{titlecolor}{coloretitolo} \setinterfaceconstant{titlecommand}{titlecommand} \setinterfaceconstant{titledistance}{distanzatitolo} \setinterfaceconstant{titleleft}{titleleft} \setinterfaceconstant{titleright}{titleright} \setinterfaceconstant{titlestrut}{titlestrut} \setinterfaceconstant{titlestyle}{stiletitolo} \setinterfaceconstant{to}{verso} \setinterfaceconstant{toffset}{toffset} \setinterfaceconstant{tolerance}{tolleranza} \setinterfaceconstant{top}{cima} \setinterfaceconstant{topalign}{topalign} \setinterfaceconstant{topcolor}{topcolor} \setinterfaceconstant{topcommand}{topcommand} \setinterfaceconstant{topdistance}{distanzacima} \setinterfaceconstant{topframe}{cornicecima} \setinterfaceconstant{topoffset}{offsetcima} \setinterfaceconstant{topspace}{spaziocima} \setinterfaceconstant{topstate}{statocima} \setinterfaceconstant{topstyle}{topstyle} \setinterfaceconstant{totalnumber}{totalnumber} \setinterfaceconstant{transform}{transform} \setinterfaceconstant{translate}{translate} \setinterfaceconstant{trimoffset}{trimoffset} \setinterfaceconstant{type}{type} \setinterfaceconstant{unit}{unita} \setinterfaceconstant{unknownreference}{riferimentoingoto} \setinterfaceconstant{up}{up} \setinterfaceconstant{urlalternative}{alternativaurl} \setinterfaceconstant{urlspace}{spaziourl} \setinterfaceconstant{userpassword}{userpassword} \setinterfaceconstant{validate}{verifica} \setinterfaceconstant{values}{values} \setinterfaceconstant{vcommand}{vcomando} \setinterfaceconstant{vcompact}{vcompact} \setinterfaceconstant{vector}{vector} \setinterfaceconstant{veroffset}{veroffset} \setinterfaceconstant{vertical}{verticale} \setinterfaceconstant{vfactor}{vfactor} \setinterfaceconstant{vfil}{vfil} \setinterfaceconstant{viewerprefix}{viewerprefix} \setinterfaceconstant{voffset}{voffset} \setinterfaceconstant{vonsep}{vonsep} \setinterfaceconstant{vz}{vz} \setinterfaceconstant{way}{modo} \setinterfaceconstant{wfactor}{wfactor} \setinterfaceconstant{white}{bianco} \setinterfaceconstant{width}{ampiezza} \setinterfaceconstant{words}{words} \setinterfaceconstant{xanchor}{xanchor} \setinterfaceconstant{xfactor}{xfactor} \setinterfaceconstant{xhtml}{xhtml} \setinterfaceconstant{xmax}{xmax} \setinterfaceconstant{xmlsetup}{xmlsetup} \setinterfaceconstant{xoffset}{xoffset} \setinterfaceconstant{xscale}{xscale} \setinterfaceconstant{xstep}{xstep} \setinterfaceconstant{yanchor}{yanchor} \setinterfaceconstant{yfactor}{yfactor} \setinterfaceconstant{ymax}{ymax} \setinterfaceconstant{yoffset}{yoffset} \setinterfaceconstant{yscale}{yscale} \setinterfaceconstant{ystep}{ystep} % definitions for interface elements for language it % \setinterfaceelement{answerlines}{answerlines} \setinterfaceelement{answerspace}{answerspace} \setinterfaceelement{begin}{inizio} \setinterfaceelement{complete}{completo} \setinterfaceelement{coupled}{accoppiato} \setinterfaceelement{currentlocal}{correntelocale} \setinterfaceelement{end}{fine} \setinterfaceelement{endsetup}{} \setinterfaceelement{get}{prendi} \setinterfaceelement{increment}{incrementa} \setinterfaceelement{list}{elenco} \setinterfaceelement{listof}{elencodi} \setinterfaceelement{load}{carica} \setinterfaceelement{local}{locale} \setinterfaceelement{makeup}{makeup} \setinterfaceelement{namednotation}{namednotation} \setinterfaceelement{namedtyping}{namedtyping} \setinterfaceelement{next}{successivo} \setinterfaceelement{place}{metti} \setinterfaceelement{previous}{precedente} \setinterfaceelement{previouslocal}{precedentelocale} \setinterfaceelement{reserve}{riserva} \setinterfaceelement{see}{vedi} \setinterfaceelement{setup}{imposta} \setinterfaceelement{start}{inizia} \setinterfaceelement{stop}{termina} \setinterfaceelement{text}{testo} \setinterfaceelement{type}{type} % definitions for interface commands for language it % \setinterfacecommand{Character}{Lettera} \setinterfacecommand{Characters}{Lettere} \setinterfacecommand{MONTH}{MESE} \setinterfacecommand{Numbers}{Numeri} \setinterfacecommand{Romannumerals}{Numeriromani} \setinterfacecommand{SmallCapped}{Cap} \setinterfacecommand{SmallCaps}{Caps} \setinterfacecommand{WEEKDAY}{GIORNOSETTIMANA} \setinterfacecommand{WORD}{PAROLA} \setinterfacecommand{WORDS}{PAROLE} \setinterfacecommand{Word}{Parola} \setinterfacecommand{Words}{Parole} \setinterfacecommand{about}{intorno} \setinterfacecommand{adaptfontfeature}{adaptfontfeature} \setinterfacecommand{adaptlayout}{adattalayout} \setinterfacecommand{addfeature}{addfeature} \setinterfacecommand{alignbottom}{alignbottom} \setinterfacecommand{aligned}{aligned} \setinterfacecommand{alignedbox}{alignedbox} \setinterfacecommand{alignedline}{alignedline} \setinterfacecommand{alignhere}{alignhere} \setinterfacecommand{alignment}{alignment} \setinterfacecommand{alignmentcharacter}{alignmentcharacter} \setinterfacecommand{applytocharacters}{applytocharacters} \setinterfacecommand{applytofirstcharacter}{applytofirstcharacter} \setinterfacecommand{arg}{arg} \setinterfacecommand{at}{al} \setinterfacecommand{atleftmargin}{atleftmargin} \setinterfacecommand{atpage}{apagina} \setinterfacecommand{atrightmargin}{atrightmargin} \setinterfacecommand{background}{sfondo} \setinterfacecommand{backspace}{spaziodietro} \setinterfacecommand{blackrule}{lineanera} \setinterfacecommand{blackrules}{lineenere} \setinterfacecommand{blank}{rigovuoto} \setinterfacecommand{bookmark}{segnalibro} \setinterfacecommand{bottombox}{bottombox} \setinterfacecommand{bottomdistance}{distanzafondo} \setinterfacecommand{bottomheight}{altezzafondo} \setinterfacecommand{bottomleftbox}{bottomleftbox} \setinterfacecommand{bottomrightbox}{bottomrightbox} \setinterfacecommand{bottomspace}{spaziofondo} \setinterfacecommand{buildtextbottomdot}{buildtextbottomdot} \setinterfacecommand{but}{fondo} \setinterfacecommand{button}{pulsante} \setinterfacecommand{bypassblocks}{saltablocchi} \setinterfacecommand{character}{lettera} \setinterfacecommand{characters}{lettere} \setinterfacecommand{chem}{chim} \setinterfacecommand{clip}{clip} \setinterfacecommand{clonefield}{clonacampo} \setinterfacecommand{color}{colore} \setinterfacecommand{colorbar}{barracolori} \setinterfacecommand{colorvalue}{valorecolore} \setinterfacecommand{column}{colonna} \setinterfacecommand{comparecolorgroup}{confrontagruppocolori} \setinterfacecommand{comparepalet}{confrontatavolozza} \setinterfacecommand{completepagenumber}{numeropaginacompleto} \setinterfacecommand{completeregister}{completeregister} \setinterfacecommand{component}{componenet} \setinterfacecommand{convertnumber}{convertinumero} \setinterfacecommand{copyfield}{copiacampo} \setinterfacecommand{correctwhitespace}{correggispaziobianco} \setinterfacecommand{coupledocument}{accoppiadocumento} \setinterfacecommand{couplemarking}{accoppiamarcatura} \setinterfacecommand{couplepage}{accoppiapagina} \setinterfacecommand{couplepaper}{accoppiacarta} \setinterfacecommand{coupleregister}{accoppiaregistro} \setinterfacecommand{crlf}{crlf} \setinterfacecommand{currentdate}{datadioggi} \setinterfacecommand{currentheadnumber}{numerotestacorrente} \setinterfacecommand{cutspace}{cutspace} \setinterfacecommand{date}{data} \setinterfacecommand{decouplemarking}{separamarcatura} \setinterfacecommand{decrementnumber}{decrementnumber} \setinterfacecommand{define}{definisci} \setinterfacecommand{defineaccent}{definisciaccento} \setinterfacecommand{defineblank}{definiscirigovuoto} \setinterfacecommand{defineblock}{definisciblocco} \setinterfacecommand{definebodyfont}{definiscifontdeltesto} \setinterfacecommand{definebodyfontenvironment}{definisciambientefontdeltesto} \setinterfacecommand{definebodyfontswitch}{definebodyfontswitch} \setinterfacecommand{definebuffer}{definiscibuffer} \setinterfacecommand{definecharacter}{definiscicarattere} \setinterfacecommand{definecharacterkerning}{definecharacterkerning} \setinterfacecommand{definecharacterspacing}{definecharacterspacing} \setinterfacecommand{definecolor}{definiscicolore} \setinterfacecommand{definecolorgroup}{definiscigruppocolori} \setinterfacecommand{definecolumnbreak}{definecolumnbreak} \setinterfacecommand{definecolumnset}{definiscigruppocolonne} \setinterfacecommand{definecombination}{definecombination} \setinterfacecommand{definecombinedlist}{definiscielencocombinato} \setinterfacecommand{definecommand}{definiscicomando} \setinterfacecommand{defineconversion}{definisciconversione} \setinterfacecommand{definedescription}{definiscidescrizione} \setinterfacecommand{definedfont}{definedfont} \setinterfacecommand{defineenumeration}{definiscienumerazione} \setinterfacecommand{definefallbackfamily}{definefallbackfamily} \setinterfacecommand{definefield}{definiscicampo} \setinterfacecommand{definefieldstack}{definiscistackcampi} \setinterfacecommand{definefiguresymbol}{definiscifigurasimbolo} \setinterfacecommand{definefilefallback}{definefilefallback} \setinterfacecommand{definefirstline}{definefirstline} \setinterfacecommand{definefloat}{definiscioggettomobile} \setinterfacecommand{definefont}{definiscifont} \setinterfacecommand{definefontalternative}{definefontalternative} \setinterfacecommand{definefontfallback}{definefontfallback} \setinterfacecommand{definefontfamily}{definefontfamily} \setinterfacecommand{definefontfamilypreset}{definefontfamilypreset} \setinterfacecommand{definefontfeature}{definefontfeature} \setinterfacecommand{definefontfile}{definefontfile} \setinterfacecommand{definefontsize}{definefontsize} \setinterfacecommand{definefontsolution}{definefontsolution} \setinterfacecommand{definefontstyle}{definiscistilefont} \setinterfacecommand{definefontsynonym}{definiscisinonimofont} \setinterfacecommand{defineframed}{definisciincorniciato} \setinterfacecommand{defineframedtext}{definiscitestoincorniciato} \setinterfacecommand{definefrozenfont}{definefrozenfont} \setinterfacecommand{definehbox}{definiscihbox} \setinterfacecommand{definehead}{definiscitesta} \setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures} \setinterfacecommand{defineindentedtext}{defineindentedtext} \setinterfacecommand{defineinmargin}{defineinmargin} \setinterfacecommand{defineinteractionmenu}{definiscimenuinterazione} \setinterfacecommand{defineitemgroup}{defineitemgroup} \setinterfacecommand{defineitems}{defineitems} \setinterfacecommand{definelabel}{definiscietichetta} \setinterfacecommand{definelayer}{definelayer} \setinterfacecommand{definelayout}{definiscilayout} \setinterfacecommand{definelinenote}{definelinenote} \setinterfacecommand{definelist}{definiscielenco} \setinterfacecommand{definelogo}{definiscilogo} \setinterfacecommand{definemainfield}{definiscicampoprincipale} \setinterfacecommand{definemakeup}{definiscimakeup} \setinterfacecommand{definemarking}{definiscimarcatura} \setinterfacecommand{definemathalignment}{definemathalignment} \setinterfacecommand{definemode}{definemode} \setinterfacecommand{definenamedcolor}{definenamedcolor} \setinterfacecommand{definenote}{definenote} \setinterfacecommand{defineoutput}{definiscioutput} \setinterfacecommand{defineoverlay}{definiscisovrapposizione} \setinterfacecommand{definepagebreak}{definepagebreak} \setinterfacecommand{definepalet}{definiscitavolozza} \setinterfacecommand{definepapersize}{definiscidimensionicarta} \setinterfacecommand{defineparagraphs}{definiscicapoversi} \setinterfacecommand{defineperiodkerning}{defineperiodkerning} \setinterfacecommand{defineplacement}{defineplacement} \setinterfacecommand{defineprofile}{definisciprofilo} \setinterfacecommand{defineprogram}{definisciprogramma} \setinterfacecommand{definerawfont}{definiscifontgrezzo} \setinterfacecommand{definereference}{definisciriferimento} \setinterfacecommand{definereferenceformat}{definisciformatoriferimento} \setinterfacecommand{definereferencelist}{definiscilistariferimenti} \setinterfacecommand{defineregister}{definisciregistro} \setinterfacecommand{definerule}{definiscilinea} \setinterfacecommand{definesavebuffer}{startsavebuffer} \setinterfacecommand{definesection}{definiscisezione} \setinterfacecommand{definesectionblock}{definiscibloccosezione} \setinterfacecommand{definesorting}{definisciordinamento} \setinterfacecommand{definestartstop}{definisciiniziatermina} \setinterfacecommand{definestyle}{definiscistile} \setinterfacecommand{definesubfield}{definiscisottocampo} \setinterfacecommand{definesymbol}{definiscisimbolo} \setinterfacecommand{definesynonyms}{definiscisinonimi} \setinterfacecommand{definetabletemplate}{definiscimodellotabella} \setinterfacecommand{definetabulate}{definiscitabulato} \setinterfacecommand{definetext}{definiscitesto} \setinterfacecommand{definetextbackground}{definetextbackground} \setinterfacecommand{definetextnote}{definetextnote} \setinterfacecommand{definetextposition}{definisciposizionetesto} \setinterfacecommand{definetextvariable}{definiscivariabiletesto} \setinterfacecommand{definetype}{definiscitype} \setinterfacecommand{definetyping}{definiscityping} \setinterfacecommand{defineversion}{definisciversion} \setinterfacecommand{depthspanningtext}{depthspanningtext} \setinterfacecommand{determineheadnumber}{determinanumerotesta} \setinterfacecommand{determinelistcharacteristics}{determinacarattersticheelenco} \setinterfacecommand{determineregistercharacteristics}{determinacaratteristicheregistro} \setinterfacecommand{dimension}{dimensione} \setinterfacecommand{disableinteractionmenu}{disabilitamenuinterazione} \setinterfacecommand{disablemode}{disablemode} \setinterfacecommand{doaddfeature}{doaddfeature} \setinterfacecommand{domicile}{domicilio} \setinterfacecommand{dontconvertfont}{dontconvertfont} \setinterfacecommand{donttest}{notest} \setinterfacecommand{edgedistance}{distanzabordo} \setinterfacecommand{edgewidth}{ampiezzabordo} \setinterfacecommand{emphasisboldface}{emphasisboldface} \setinterfacecommand{emptylines}{emptylines} \setinterfacecommand{enablemode}{enablemode} \setinterfacecommand{environment}{ambiente} \setinterfacecommand{externalfigure}{figuraesterna} \setinterfacecommand{fact}{fatto} \setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont} \setinterfacecommand{feature}{feature} \setinterfacecommand{field}{campi} \setinterfacecommand{fieldstack}{stackcampi} \setinterfacecommand{fillinfield}{camporiempimento} \setinterfacecommand{fillinline}{rigariempimento} \setinterfacecommand{fillinrules}{lineeriempimento} \setinterfacecommand{fillintext}{testoriempimento} \setinterfacecommand{firstcharacter}{firstcharacter} \setinterfacecommand{fitfield}{adattacampo} \setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid} \setinterfacecommand{fixedspace}{spaziofisso} \setinterfacecommand{fixedspaces}{spazifissi} \setinterfacecommand{flushnotes}{flushnotes} \setinterfacecommand{followprofile}{seguiprofilo} \setinterfacecommand{followprofileversion}{seguiversioneprofilo} \setinterfacecommand{followversion}{seguiversione} \setinterfacecommand{footerdistance}{distanzapdp} \setinterfacecommand{footerheight}{altezzapdp} \setinterfacecommand{footnote}{notapdp} \setinterfacecommand{footnotetext}{testonotapdp} \setinterfacecommand{forceblocks}{forzablocchi} \setinterfacecommand{forcecharacterstripping}{forcecharacterstripping} \setinterfacecommand{formulanumber}{numeroformula} \setinterfacecommand{fraction}{frazione} \setinterfacecommand{framed}{incorniciato} \setinterfacecommand{from}{da} \setinterfacecommand{fromlinenote}{fromlinenote} \setinterfacecommand{getbuffer}{prendibuffer} \setinterfacecommand{getfirstcharacter}{getfirstcharacter} \setinterfacecommand{getmarking}{prendimarcatura} \setinterfacecommand{getnumber}{getnumber} \setinterfacecommand{globaldisablemode}{globaldisablemode} \setinterfacecommand{globalenablemode}{globalenablemode} \setinterfacecommand{globalpreventmode}{globalpreventmode} \setinterfacecommand{godown}{vaigiu} \setinterfacecommand{goto}{vaia} \setinterfacecommand{gotobox}{vaiabox} \setinterfacecommand{gotopage}{vaiapagina} \setinterfacecommand{graycolor}{coloregrigio} \setinterfacecommand{greyvalue}{valoregrigio} \setinterfacecommand{grid}{griglia} \setinterfacecommand{hairline}{capello} \setinterfacecommand{head}{testa} \setinterfacecommand{headerdistance}{distanzaintestazione} \setinterfacecommand{headerheight}{altezzaintestazione} \setinterfacecommand{headlevel}{livellotesta} \setinterfacecommand{headnumber}{numerotesta} \setinterfacecommand{headsym}{headsym} \setinterfacecommand{headtext}{testoinstestazioni} \setinterfacecommand{heightspanningtext}{heightspanningtext} \setinterfacecommand{hideblocks}{nascondiblocchi} \setinterfacecommand{high}{ap} \setinterfacecommand{hl}{hl} \setinterfacecommand{immediatebetweenlist}{immediatebetweenlist} \setinterfacecommand{immediatetolist}{immediatetolist} \setinterfacecommand{in}{in} \setinterfacecommand{incrementnumber}{incrementanumero} \setinterfacecommand{indenting}{rientro} \setinterfacecommand{inframed}{circondato} \setinterfacecommand{infull}{perlungo} \setinterfacecommand{ininner}{ininner} \setinterfacecommand{inleft}{insinistra} \setinterfacecommand{inleftedge}{inlatosinistro} \setinterfacecommand{inleftmargin}{inmarginesinistro} \setinterfacecommand{inline}{inriga} \setinterfacecommand{inmargin}{inmargine} \setinterfacecommand{inmframed}{inmaframed} \setinterfacecommand{inneredgedistance}{inneredgedistance} \setinterfacecommand{inneredgewidth}{inneredgewidth} \setinterfacecommand{innermargindistance}{innermargindistance} \setinterfacecommand{innermarginwidth}{innermarginwidth} \setinterfacecommand{inothermargin}{inaltromargine} \setinterfacecommand{inouter}{inouter} \setinterfacecommand{inright}{indestra} \setinterfacecommand{inrightedge}{inlatodestro} \setinterfacecommand{inrightmargin}{inmarginedestro} \setinterfacecommand{installlanguage}{installalingua} \setinterfacecommand{interactionbar}{barrainterazione} \setinterfacecommand{interactionbuttons}{pulsantinterazione} \setinterfacecommand{interactionmenu}{menuinterattivo} \setinterfacecommand{item}{elemento} \setinterfacecommand{itemgroup}{itemgroup} \setinterfacecommand{items}{elementi} \setinterfacecommand{itemtag}{itemtag} \setinterfacecommand{its}{el} \setinterfacecommand{keepblocks}{tieniblocchi} \setinterfacecommand{kerncharacters}{kerncharacters} \setinterfacecommand{label}{etichetta} \setinterfacecommand{labels}{etichette} \setinterfacecommand{labeltext}{testoetichetta} \setinterfacecommand{language}{lingua} \setinterfacecommand{languageCharacters}{languageCharacters} \setinterfacecommand{languagecharacters}{languagecharacters} \setinterfacecommand{leftaligned}{allineasinistra} \setinterfacecommand{leftbottombox}{leftbottombox} \setinterfacecommand{leftedgedistance}{distanzabordosinistro} \setinterfacecommand{leftedgewidth}{ampiezzabordosinistro} \setinterfacecommand{leftline}{leftline} \setinterfacecommand{leftmargindistance}{distanzamarginesinistro} \setinterfacecommand{leftmarginwidth}{ampiezzamarginesinistro} \setinterfacecommand{leg}{leg} \setinterfacecommand{linecorrection}{linecorrection} \setinterfacecommand{linenote}{linenote} \setinterfacecommand{linespanningtext}{linespanningtext} \setinterfacecommand{linewidth}{spessoreriga} \setinterfacecommand{listheight}{altezzaelenco} \setinterfacecommand{listlength}{lunghezzaelenco} \setinterfacecommand{listsymbol}{listsymbol} \setinterfacecommand{listwidth}{ampiezzaelenco} \setinterfacecommand{loadfontgoodies}{loadfontgoodies} \setinterfacecommand{localfootnotes}{localfootnotes} \setinterfacecommand{localnotes}{localnotes} \setinterfacecommand{logfields}{logcampi} \setinterfacecommand{lohi}{pedap} \setinterfacecommand{low}{ped} \setinterfacecommand{macroname}{nome} \setinterfacecommand{mainlanguage}{linguaprincipale} \setinterfacecommand{makeupheight}{altezzamakeup} \setinterfacecommand{makeupwidth}{ampiezzamakeup} \setinterfacecommand{mar}{mar} \setinterfacecommand{marginblock}{marginblock} \setinterfacecommand{margindistance}{distanzamargine} \setinterfacecommand{marginrule}{lineamargine} \setinterfacecommand{margintext}{testoinmargine} \setinterfacecommand{margintitle}{titoloinmargine} \setinterfacecommand{marginwidth}{ampiezzamargine} \setinterfacecommand{marginword}{parolainmargine} \setinterfacecommand{marking}{marcatura} \setinterfacecommand{markversion}{marcaversione} \setinterfacecommand{mathematics}{matematica} \setinterfacecommand{menubutton}{pulsantemenu} \setinterfacecommand{mframed}{maframed} \setinterfacecommand{midaligned}{allineacentro} \setinterfacecommand{mirror}{riflessione} \setinterfacecommand{month}{mese} \setinterfacecommand{moveformula}{spostaformula} \setinterfacecommand{moveongrid}{spostaagriglia} \setinterfacecommand{movesidefloat}{movesidefloat} \setinterfacecommand{namedconstruction}{namedconstruction} \setinterfacecommand{nameddescription}{nameddescription} \setinterfacecommand{namedenumeration}{namedenumeration} \setinterfacecommand{navigating}{navigating} \setinterfacecommand{nodimension}{nientedimensioni} \setinterfacecommand{noheaderandfooterlines}{nientelineintestazionepdp} \setinterfacecommand{noindenting}{nienterientro} \setinterfacecommand{noitem}{noitem} \setinterfacecommand{nolist}{nienteelenco} \setinterfacecommand{nomarking}{nientemarcatura} \setinterfacecommand{nomoreblocks}{bastablocchi} \setinterfacecommand{nomorefiles}{bastafile} \setinterfacecommand{nop}{nop} \setinterfacecommand{nospace}{nientespazio} \setinterfacecommand{note}{nota} \setinterfacecommand{notesymbol}{notesymbol} \setinterfacecommand{notopandbottomlines}{nientelineecimafondo} \setinterfacecommand{notsmallcapped}{nocap} \setinterfacecommand{nowhitespace}{nientespaziobianco} \setinterfacecommand{numberofsubpages}{numberofsubpages} \setinterfacecommand{numbers}{numeri} \setinterfacecommand{outeredgedistance}{outeredgedistance} \setinterfacecommand{outeredgewidth}{outeredgewidth} \setinterfacecommand{outermargindistance}{outermargindistance} \setinterfacecommand{outermarginwidth}{outermarginwidth} \setinterfacecommand{packed}{impaccato} \setinterfacecommand{page}{pagina} \setinterfacecommand{pagebreak}{pagebreak} \setinterfacecommand{pagedepth}{pagedepth} \setinterfacecommand{pagenumber}{numeropagina} \setinterfacecommand{pageoffset}{pageoffset} \setinterfacecommand{pagereference}{riferimentopagina} \setinterfacecommand{paperheight}{altezzacarta} \setinterfacecommand{paperwidth}{ampiezzacarta} \setinterfacecommand{periods}{punti} \setinterfacecommand{placebookmarks}{mettisegnalibro} \setinterfacecommand{placecombinedlist}{mettielencocombinato} \setinterfacecommand{placefloat}{placefloat} \setinterfacecommand{placefootnotes}{mettinotepdp} \setinterfacecommand{placeformula}{mettiformula} \setinterfacecommand{placeheadnumber}{posizionanumerotesta} \setinterfacecommand{placeheadtext}{posizionatestotesta} \setinterfacecommand{placelegend}{mettilegenda} \setinterfacecommand{placelist}{mettielenco} \setinterfacecommand{placelistofsynonyms}{placelistofsynonyms} \setinterfacecommand{placelocalfootnotes}{mettinotepdplocali} \setinterfacecommand{placelocalnotes}{placelocalnotes} \setinterfacecommand{placelogos}{mettiloghi} \setinterfacecommand{placenamedfloat}{placenamedfloat} \setinterfacecommand{placenotes}{placenotes} \setinterfacecommand{placeongrid}{mettiingriglia} \setinterfacecommand{placeontopofeachother}{mettiunosullaltro} \setinterfacecommand{placepagenumber}{mettinumeropagina} \setinterfacecommand{placerawlist}{placerawlist} \setinterfacecommand{placereferencelist}{placereferencelist} \setinterfacecommand{placeregister}{mettiregistro} \setinterfacecommand{placerule}{mettilinea} \setinterfacecommand{placesidebyside}{mettifiancoafianco} \setinterfacecommand{placesubformula}{mettisottoformula} \setinterfacecommand{placetextvariable}{mettivariabiletesto} \setinterfacecommand{position}{posizione} \setinterfacecommand{positiontext}{posizionatesto} \setinterfacecommand{postponenotes}{postponenotes} \setinterfacecommand{postponingnotes}{postponingnotes} \setinterfacecommand{predefinedfont}{predefinedfont} \setinterfacecommand{predefinefont}{predefinefont} \setinterfacecommand{presetdocument}{presetdocument} \setinterfacecommand{prettyprintbuffer}{prettyprintbuffer} \setinterfacecommand{preventmode}{preventmode} \setinterfacecommand{printpaperheight}{altezzacartastampa} \setinterfacecommand{printpaperwidth}{ampiezzacartastampa} \setinterfacecommand{processblocks}{elaborablocchi} \setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist} \setinterfacecommand{processpage}{elaborapagina} \setinterfacecommand{product}{prodotto} \setinterfacecommand{program}{programma} \setinterfacecommand{project}{progetto} \setinterfacecommand{publication}{pubblicazione} \setinterfacecommand{quotation}{citazione} \setinterfacecommand{quote}{menzione} \setinterfacecommand{ran}{ran} \setinterfacecommand{redo}{rifai} \setinterfacecommand{redoconvertfont}{redoconvertfont} \setinterfacecommand{ref}{rif} \setinterfacecommand{reference}{riferimento} \setinterfacecommand{referral}{referral} \setinterfacecommand{referraldate}{datareferral} \setinterfacecommand{referring}{referring} \setinterfacecommand{registerfontclass}{registerfontclass} \setinterfacecommand{registerhyphenationexception}{registerhyphenationexception} \setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern} \setinterfacecommand{remark}{commento} \setinterfacecommand{replacefeature}{replacefeature} \setinterfacecommand{reset}{reimposta} \setinterfacecommand{resetandaddfeature}{resetandaddfeature} \setinterfacecommand{resetcharacteralign}{resetcharacteralign} \setinterfacecommand{resetcharacterkerning}{resetcharacterkerning} \setinterfacecommand{resetcharacterspacing}{resetcharacterspacing} \setinterfacecommand{resetcharacterstripping}{resetcharacterstripping} \setinterfacecommand{resetfeature}{resetfeature} \setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme} \setinterfacecommand{resetfontfallback}{resetfontfallback} \setinterfacecommand{resetfontsolution}{resetfontsolution} \setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures} \setinterfacecommand{resetlocalfloats}{resetlocalfloats} \setinterfacecommand{resetmarking}{reimpostamarcatura} \setinterfacecommand{resetmode}{resetmode} \setinterfacecommand{resetnumber}{resetnumber} \setinterfacecommand{resetpath}{resetpath} \setinterfacecommand{resetperiodkerning}{resetperiodkerning} \setinterfacecommand{resetsystemmode}{resetsystemmode} \setinterfacecommand{resettextcontent}{resettextcontent} \setinterfacecommand{resetvisualizers}{resetvisualizers} \setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont} \setinterfacecommand{retestfeature}{retestfeature} \setinterfacecommand{revivefeature}{revivefeature} \setinterfacecommand{rightaligned}{allineadestra} \setinterfacecommand{rightbottombox}{rightbottombox} \setinterfacecommand{rightedgedistance}{distanzabordodestro} \setinterfacecommand{rightedgewidth}{ampiezzabordodestro} \setinterfacecommand{rightline}{rightline} \setinterfacecommand{rightmargindistance}{distanzamarginedestro} \setinterfacecommand{rightmarginwidth}{ampiezzamarginedestro} \setinterfacecommand{romannumerals}{numeriromani} \setinterfacecommand{rotate}{ruota} \setinterfacecommand{savebuffer}{savebuffer} \setinterfacecommand{scale}{scala} \setinterfacecommand{screen}{schermo} \setinterfacecommand{selectblocks}{selezionablocchi} \setinterfacecommand{selectpaper}{selezionacarta} \setinterfacecommand{selectversion}{selezionaversione} \setinterfacecommand{setbigbodyfont}{setbigbodyfont} \setinterfacecommand{setcharacteralign}{setcharacteralign} \setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail} \setinterfacecommand{setcharactercasing}{setcharactercasing} \setinterfacecommand{setcharactercleaning}{setcharactercleaning} \setinterfacecommand{setcharacterkerning}{setcharacterkerning} \setinterfacecommand{setcharacterspacing}{setcharacterspacing} \setinterfacecommand{setcharacterstripping}{setcharacterstripping} \setinterfacecommand{setcurrentfontclass}{setcurrentfontclass} \setinterfacecommand{setfirstline}{setfirstline} \setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign} \setinterfacecommand{setfont}{setfont} \setinterfacecommand{setfontcolorsheme}{setfontcolorsheme} \setinterfacecommand{setfontfeature}{setfontfeature} \setinterfacecommand{setfontsolution}{setfontsolution} \setinterfacecommand{setfontstrut}{setfontstrut} \setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures} \setinterfacecommand{setmainbodyfont}{setmainbodyfont} \setinterfacecommand{setmode}{setmode} \setinterfacecommand{setnote}{setnote} \setinterfacecommand{setnotetext}{setnotetext} \setinterfacecommand{setnumber}{setnumber} \setinterfacecommand{setperiodkerning}{setperiodkerning} \setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign} \setinterfacecommand{setsmallbodyfont}{setsmallbodyfont} \setinterfacecommand{setsystemmode}{setsystemmode} \setinterfacecommand{settextcontent}{settext} \setinterfacecommand{settextvariable}{setvariabiletesto} \setinterfacecommand{setupalign}{impostaallineamento} \setinterfacecommand{setupanswerarea}{setupanswerarea} \setinterfacecommand{setuparranging}{impostaparranging} \setinterfacecommand{setupattachment}{setupattachment} \setinterfacecommand{setupbackground}{impostasfondo} \setinterfacecommand{setupbackgrounds}{impostasfondi} \setinterfacecommand{setupblackrules}{impostalineenere} \setinterfacecommand{setupblank}{impostarigovuoto} \setinterfacecommand{setupblock}{impostablocco} \setinterfacecommand{setupbodyfont}{impostafontdeltesto} \setinterfacecommand{setupbodyfontenvironment}{impostaambientefontdeltesto} \setinterfacecommand{setupbottom}{impostafondo} \setinterfacecommand{setupbottomtexts}{impostatestifondo} \setinterfacecommand{setupbuffer}{impostabuffer} \setinterfacecommand{setupbuttons}{impostapulsanti} \setinterfacecommand{setupcapitals}{impostamaiuscole} \setinterfacecommand{setupcaption}{impostacaption} \setinterfacecommand{setupcaptions}{impostacaptions} \setinterfacecommand{setupcharacteralign}{setupcharacteralign} \setinterfacecommand{setupcharacterkerning}{setupcharacterkerning} \setinterfacecommand{setupcharacterspacing}{setupcharacterspacing} \setinterfacecommand{setupclipping}{impostaclippling} \setinterfacecommand{setupcolor}{impostacolore} \setinterfacecommand{setupcolors}{impostacolori} \setinterfacecommand{setupcolumns}{impostacolonne} \setinterfacecommand{setupcolumnset}{impostagruppocolonne} \setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines} \setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart} \setinterfacecommand{setupcombinations}{impostacombinazioni} \setinterfacecommand{setupcombinedlist}{impostaelencocombinato} \setinterfacecommand{setupcomment}{impostacommento} \setinterfacecommand{setupcounter}{setupcounter} \setinterfacecommand{setupdescription}{setupdescription} \setinterfacecommand{setupdescriptions}{impostadescrizioni} \setinterfacecommand{setupenumeration}{setupenumeration} \setinterfacecommand{setupenumerations}{impostaenumerazioni} \setinterfacecommand{setupexternalfigures}{impostafigureesterne} \setinterfacecommand{setupfield}{impostacampo} \setinterfacecommand{setupfields}{impostacampi} \setinterfacecommand{setupfillinlines}{impostarigheriempimento} \setinterfacecommand{setupfillinrules}{impostalineeriempimento} \setinterfacecommand{setupfirstline}{setupfirstline} \setinterfacecommand{setupfloat}{impostaoggettomobile} \setinterfacecommand{setupfloats}{impostaoggettimobili} \setinterfacecommand{setupfloatsplitting}{impostaspezzamentooggettomobile} \setinterfacecommand{setupfontexpansion}{setupfontexpansion} \setinterfacecommand{setupfontprotrusion}{setupfontprotrusion} \setinterfacecommand{setupfonts}{setupfonts} \setinterfacecommand{setupfontsolution}{setupfontsolution} \setinterfacecommand{setupfooter}{impostapdp} \setinterfacecommand{setupfootertexts}{impostatestipdp} \setinterfacecommand{setupfootnotedefinition}{impostadefinizionenotepdp} \setinterfacecommand{setupfootnotes}{impostanotepdp} \setinterfacecommand{setupforms}{impostaforms} \setinterfacecommand{setupformula}{setupformula} \setinterfacecommand{setupformulas}{impostaformule} \setinterfacecommand{setupframed}{impostaincorniciato} \setinterfacecommand{setupframedtext}{setupframedtext} \setinterfacecommand{setupframedtexts}{impostatestiincorniciati} \setinterfacecommand{setuphead}{impostatesta} \setinterfacecommand{setupheader}{impostainstestazione} \setinterfacecommand{setupheadertexts}{impostatestiintestazioni} \setinterfacecommand{setupheadnumber}{impostanumerotesta} \setinterfacecommand{setupheads}{impostateste} \setinterfacecommand{setupheadtext}{impostatestointestazioni} \setinterfacecommand{setuphyphenation}{setuphyphenation} \setinterfacecommand{setuphyphenmark}{impostasegnosillabazione} \setinterfacecommand{setupindentedtext}{setupindentedtext} \setinterfacecommand{setupindenting}{impostarientro} \setinterfacecommand{setupinmargin}{impostainmargine} \setinterfacecommand{setupinteraction}{impostainterazione} \setinterfacecommand{setupinteractionbar}{impostabarrainterazione} \setinterfacecommand{setupinteractionmenu}{impostamenuinterazione} \setinterfacecommand{setupinteractionscreen}{impostaschermointerazione} \setinterfacecommand{setupinterlinespace}{impostainterlinea} \setinterfacecommand{setupitemgroup}{setupitemgroup} \setinterfacecommand{setupitemgroups}{impostaelencazioni} \setinterfacecommand{setupitems}{impostaelementi} \setinterfacecommand{setuplabeltext}{impostatestoetichette} \setinterfacecommand{setuplanguage}{impostalingua} \setinterfacecommand{setuplayout}{impostalayout} \setinterfacecommand{setuplegend}{impostalegenda} \setinterfacecommand{setuplinenote}{setuplinenote} \setinterfacecommand{setuplinenumbering}{impostanumerazionerighe} \setinterfacecommand{setuplines}{impostarighe} \setinterfacecommand{setuplinewidth}{impostaampiezzariga} \setinterfacecommand{setuplist}{impostaelenco} \setinterfacecommand{setupmakeup}{impostamakeup} \setinterfacecommand{setupmarginblock}{setupmarginblock} \setinterfacecommand{setupmarginblocks}{impostablocchimargine} \setinterfacecommand{setupmargindata}{setupmargindata} \setinterfacecommand{setupmarginrules}{impostalineemargine} \setinterfacecommand{setupmarking}{impostamarcatura} \setinterfacecommand{setupmathalignment}{setupmathalignment} \setinterfacecommand{setupnarrower}{impostapiustretto} \setinterfacecommand{setupnotation}{setupnotation} \setinterfacecommand{setupnotations}{setupnotations} \setinterfacecommand{setupnote}{setupnote} \setinterfacecommand{setupnotes}{setupnotes} \setinterfacecommand{setupnumber}{impostanumerazione} \setinterfacecommand{setupnumbering}{impostanumerazione} \setinterfacecommand{setupoppositeplacing}{impostaposizionamentoopposti} \setinterfacecommand{setupoutput}{impostaoutput} \setinterfacecommand{setuppagecomment}{impostacommentopagina} \setinterfacecommand{setuppagenumber}{impostanumeropagina} \setinterfacecommand{setuppagenumbering}{impostanumerazionepagina} \setinterfacecommand{setuppagetransitions}{impostatransizionepagina} \setinterfacecommand{setuppalet}{impostatavolozza} \setinterfacecommand{setuppaper}{setuppaper} \setinterfacecommand{setuppapersize}{impostadimensionicarta} \setinterfacecommand{setupparagraphnumbering}{impostanumerazionecapoversi} \setinterfacecommand{setupparagraphs}{impostacapoversi} \setinterfacecommand{setupperiodkerning}{setupperiodkerning} \setinterfacecommand{setupplacement}{setupplacement} \setinterfacecommand{setuppositioning}{impostaposizionamento} \setinterfacecommand{setupprofiles}{impostaprofili} \setinterfacecommand{setupprograms}{impostaprogrammi} \setinterfacecommand{setuppublications}{impostapubblicazioni} \setinterfacecommand{setupquote}{impostamenzione} \setinterfacecommand{setupreferencelist}{impostalistariferimenti} \setinterfacecommand{setupreferencing}{impostariferimento} \setinterfacecommand{setupregister}{impostaregistro} \setinterfacecommand{setuprotate}{impostarotazione} \setinterfacecommand{setuprule}{impostalinea} \setinterfacecommand{setupscreens}{impostaschermi} \setinterfacecommand{setupsection}{impostasezione} \setinterfacecommand{setupsectionblock}{impostabloccosezione} \setinterfacecommand{setupsorting}{impostaordinamento} \setinterfacecommand{setupspacing}{impostaspaziatura} \setinterfacecommand{setupstartstop}{impostainiziatermina} \setinterfacecommand{setupstrut}{impostastrut} \setinterfacecommand{setupsubpagenumber}{impostanumerosottopagina} \setinterfacecommand{setupsymbolset}{impostasetsimboli} \setinterfacecommand{setupsynchronization}{impostasincronizzazione} \setinterfacecommand{setupsynchronizationbar}{impostabarrasincronizzazione} \setinterfacecommand{setupsynonyms}{impostasinonimi} \setinterfacecommand{setupsystem}{impostasistema} \setinterfacecommand{setuptab}{impostatab} \setinterfacecommand{setuptables}{impostatabelle} \setinterfacecommand{setuptabulate}{impostatabulato} \setinterfacecommand{setuptext}{impostatesto} \setinterfacecommand{setuptextbackground}{setuptextbackground} \setinterfacecommand{setuptextnote}{setuptextnote} \setinterfacecommand{setuptextposition}{impostaposizionetesto} \setinterfacecommand{setuptextrules}{impostalineetesto} \setinterfacecommand{setuptexttexts}{impostatestotesti} \setinterfacecommand{setuptextvariable}{impostavariabiletesto} \setinterfacecommand{setupthinrules}{impostalineesottili} \setinterfacecommand{setuptolerance}{impostatolleranza} \setinterfacecommand{setuptop}{impostacima} \setinterfacecommand{setuptoptexts}{impostatesticima} \setinterfacecommand{setuptype}{impostatype} \setinterfacecommand{setuptyping}{impostatyping} \setinterfacecommand{setupunderbar}{impostasottolinea} \setinterfacecommand{setupurl}{impostaurl} \setinterfacecommand{setupversions}{impostaversioni} \setinterfacecommand{setupwhitespace}{impostaspaziobianco} \setinterfacecommand{setvisualizerfont}{setvisualizerfont} \setinterfacecommand{showbodyfont}{mostrafontdeltesto} \setinterfacecommand{showbodyfontenvironment}{mostraambientefontdeltesto} \setinterfacecommand{showcolor}{mostracolore} \setinterfacecommand{showcolorgroup}{mostragruppocolori} \setinterfacecommand{showcounter}{showcounter} \setinterfacecommand{showexternalfigures}{mostrafiguresterne} \setinterfacecommand{showfields}{mostracampi} \setinterfacecommand{showfont}{showfont} \setinterfacecommand{showfontdata}{showfontdata} \setinterfacecommand{showfontexpansion}{showfontexpansion} \setinterfacecommand{showfontitalics}{showfontitalics} \setinterfacecommand{showfontkerns}{showfontkerns} \setinterfacecommand{showfontparameters}{showfontparameters} \setinterfacecommand{showfontstrip}{showfontstrip} \setinterfacecommand{showfontstyle}{showfontstyle} \setinterfacecommand{showframe}{mostracornice} \setinterfacecommand{showgrid}{mostragriglia} \setinterfacecommand{showhyphenationtrace}{showhyphenationtrace} \setinterfacecommand{showkerning}{showkerning} \setinterfacecommand{showlayout}{mostralyout} \setinterfacecommand{showmakeup}{mostramakeup} \setinterfacecommand{showminimalbaseline}{showminimalbaseline} \setinterfacecommand{showpalet}{mostratavolozza} \setinterfacecommand{showprint}{mostrastampa} \setinterfacecommand{showsetups}{mostraimpostazioni} \setinterfacecommand{showstruts}{mostrastruts} \setinterfacecommand{showsymbolset}{mostrasetsimboli} \setinterfacecommand{smallcapped}{cap} \setinterfacecommand{someline}{qualcheriga} \setinterfacecommand{somewhere}{daqualcheparte} \setinterfacecommand{space}{spazio} \setinterfacecommand{specialitem}{specialitem} \setinterfacecommand{splitfloat}{spezzaoggettomobile} \setinterfacecommand{startalignment}{iniziaallineamento} \setinterfacecommand{startbackground}{iniziasfondo} \setinterfacecommand{startcoding}{iniziacodifica} \setinterfacecommand{startcolor}{iniziacolore} \setinterfacecommand{startcolumnmakeup}{startcolumnmakeup} \setinterfacecommand{startcolumns}{iniziacolonne} \setinterfacecommand{startcolumnset}{iniziagruppocolonne} \setinterfacecommand{startcombination}{iniziacombinazione} \setinterfacecommand{startcomponent}{iniziacomponente} \setinterfacecommand{startdocument}{iniziadocumento} \setinterfacecommand{startenvironment}{iniziaambiente} \setinterfacecommand{startfigure}{iniziafigura} \setinterfacecommand{startframed}{startframed} \setinterfacecommand{startglobal}{iniziaglobale} \setinterfacecommand{startline}{iniziariga} \setinterfacecommand{startlinecorrection}{iniziacorrezioneriga} \setinterfacecommand{startlinenote}{startlinenote} \setinterfacecommand{startlinenumbering}{inizianumerazionerighe} \setinterfacecommand{startlines}{iniziarighe} \setinterfacecommand{startlocal}{inizialocale} \setinterfacecommand{startlocalfootnotes}{inizianotepdplocali} \setinterfacecommand{startmakeup}{iniziamakeup} \setinterfacecommand{startmarginblock}{iniziabloccomargine} \setinterfacecommand{startmarginrule}{inizialineamargine} \setinterfacecommand{startnamedconstruction}{startnamedconstruction} \setinterfacecommand{startnameddescription}{startnameddescription} \setinterfacecommand{startnamedenumeration}{startnamedenumeration} \setinterfacecommand{startnamedmatrix}{startnamedmatrix} \setinterfacecommand{startnamedsection}{startnamedsection} \setinterfacecommand{startnamedsubformulas}{startnamedsubformulas} \setinterfacecommand{startnamedtyping}{startnamedtyping} \setinterfacecommand{startnarrower}{iniziapiustretto} \setinterfacecommand{startopposite}{iniziaopposto} \setinterfacecommand{startoverlay}{iniziasovrapposizione} \setinterfacecommand{startoverview}{iniziaoverview} \setinterfacecommand{startpacked}{iniziaimpaccato} \setinterfacecommand{startpositioning}{iniziaposizionamento} \setinterfacecommand{startproduct}{iniziaprodotto} \setinterfacecommand{startprofile}{iniziaprofilo} \setinterfacecommand{startproject}{iniziaprogetto} \setinterfacecommand{startquotation}{iniziacitazione} \setinterfacecommand{startraster}{iniziaraster} \setinterfacecommand{startsymbolset}{iniziasetsimboli} \setinterfacecommand{startsynchronization}{iniziasincronizzazione} \setinterfacecommand{starttable}{iniziatabella} \setinterfacecommand{starttables}{iniziatabelle} \setinterfacecommand{starttext}{iniziatesto} \setinterfacecommand{starttextbackground}{starttextbackground} \setinterfacecommand{starttextrule}{inizialineatesto} \setinterfacecommand{startunpacked}{iniziaunpacked} \setinterfacecommand{startversion}{iniziaversione} \setinterfacecommand{stopalignment}{terminaallineamento} \setinterfacecommand{stopbackground}{terminasfondo} \setinterfacecommand{stopcoding}{terminacodifica} \setinterfacecommand{stopcolor}{terminacolore} \setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup} \setinterfacecommand{stopcolumns}{terminacolonne} \setinterfacecommand{stopcolumnset}{terminagruppocolonne} \setinterfacecommand{stopcombination}{terminacombinazione} \setinterfacecommand{stopcomponent}{terminacomponente} \setinterfacecommand{stopdocument}{terminadocumento} \setinterfacecommand{stopenvironment}{terminaambiente} \setinterfacecommand{stopframed}{stopframed} \setinterfacecommand{stopglobal}{terminaglobale} \setinterfacecommand{stopline}{terminariga} \setinterfacecommand{stoplinecorrection}{terminacorrezioneriga} \setinterfacecommand{stoplinenote}{stoplinenote} \setinterfacecommand{stoplinenumbering}{terminanumerazionerighe} \setinterfacecommand{stoplines}{terminarighe} \setinterfacecommand{stoplocal}{terminalocale} \setinterfacecommand{stoplocalfootnotes}{terminanotepdplocali} \setinterfacecommand{stopmakeup}{terminamakeup} \setinterfacecommand{stopmarginblock}{terminabloccomargine} \setinterfacecommand{stopmarginrule}{terminalineamargine} \setinterfacecommand{stopnamedconstruction}{stopnamedconstruction} \setinterfacecommand{stopnameddescription}{stopnameddescription} \setinterfacecommand{stopnamedenumeration}{stopnamedenumeration} \setinterfacecommand{stopnamedmatrix}{stopnamedmatrix} \setinterfacecommand{stopnamedsection}{stopnamedsection} \setinterfacecommand{stopnamedsubformulas}{stopnamedsubformulas} \setinterfacecommand{stopnamedtyping}{stopnamedtyping} \setinterfacecommand{stopnarrower}{terminapiustretto} \setinterfacecommand{stopopposite}{terminaopposto} \setinterfacecommand{stopoverlay}{terminasovrapposizione} \setinterfacecommand{stopoverview}{terminaoverview} \setinterfacecommand{stoppacked}{terminaimpaccato} \setinterfacecommand{stoppositioning}{terminaposizionamento} \setinterfacecommand{stopproduct}{terminaprodotto} \setinterfacecommand{stopprofile}{terminaprofili} \setinterfacecommand{stopproject}{terminaprogetto} \setinterfacecommand{stopquotation}{terminacitazione} \setinterfacecommand{stopraster}{terminaraster} \setinterfacecommand{stopsynchronization}{terminasincronizzazione} \setinterfacecommand{stoptable}{terminatabella} \setinterfacecommand{stoptables}{terminatabelle} \setinterfacecommand{stoptext}{terminatesto} \setinterfacecommand{stoptextbackground}{stoptextbackground} \setinterfacecommand{stoptextrule}{terminalineatesto} \setinterfacecommand{stopunpacked}{terminaunpacked} \setinterfacecommand{stopversion}{terminaversioni} \setinterfacecommand{stretched}{stirato} \setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter} \setinterfacecommand{stripcharacter}{stripcharacter} \setinterfacecommand{subformulanumber}{numerosottoformula} \setinterfacecommand{subpagenumber}{subpagenumber} \setinterfacecommand{subtractfeature}{subtractfeature} \setinterfacecommand{switchtobodyfont}{cambiaafontdeltesto} \setinterfacecommand{switchtorawfont}{passaafontgrezzo} \setinterfacecommand{sym}{sim} \setinterfacecommand{symbol}{simbolo} \setinterfacecommand{symoffset}{symoffset} \setinterfacecommand{synchronizationbar}{barrasincronizzazione} \setinterfacecommand{synchronize}{sincronizza} \setinterfacecommand{tab}{tab} \setinterfacecommand{testcolumn}{testcolumn} \setinterfacecommand{testfeature}{testfeature} \setinterfacecommand{testfeatureonce}{testfeatureonce} \setinterfacecommand{testpage}{testpage} \setinterfacecommand{tex}{tex} \setinterfacecommand{textbackground}{textbackground} \setinterfacecommand{textcolor}{textcolor} \setinterfacecommand{textheight}{altezzatesto} \setinterfacecommand{textnote}{textnote} \setinterfacecommand{textreference}{riferimentotesto} \setinterfacecommand{textrule}{lineatesto} \setinterfacecommand{textvariable}{variabiletesto} \setinterfacecommand{textwidth}{ampiezzatesto} \setinterfacecommand{thefirstcharacter}{thefirstcharacter} \setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize} \setinterfacecommand{theremainingcharacters}{theremainingcharacters} \setinterfacecommand{thinrule}{lineasottile} \setinterfacecommand{thinrules}{lineesottili} \setinterfacecommand{tolinenote}{tolinenote} \setinterfacecommand{tooltip}{tooltip} \setinterfacecommand{topdistance}{distanzacima} \setinterfacecommand{topheight}{altezzacima} \setinterfacecommand{topspace}{spaziocima} \setinterfacecommand{totalnumberofpages}{numerototaledipagine} \setinterfacecommand{translate}{traduci} \setinterfacecommand{txt}{txt} \setinterfacecommand{typ}{typ} \setinterfacecommand{type}{type} \setinterfacecommand{typebuffer}{typebuffer} \setinterfacecommand{typedefinedbuffer}{typedefinedbuffer} \setinterfacecommand{typefile}{typefile} \setinterfacecommand{typeinlinebuffer}{typeinlinebuffer} \setinterfacecommand{typing}{typing} \setinterfacecommand{unitmeaning}{nomeunita} \setinterfacecommand{unknown}{ignoto} \setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern} \setinterfacecommand{useJSscripts}{usaJSscripts} \setinterfacecommand{useURL}{usaURL} \setinterfacecommand{useXMLfilter}{useXMLfilter} \setinterfacecommand{useblocks}{usablocco} \setinterfacecommand{usebodyfont}{usebodyfont} \setinterfacecommand{usebodyfontparameter}{usebodyfontparameter} \setinterfacecommand{usecommands}{usacomandi} \setinterfacecommand{useencoding}{usacodifica} \setinterfacecommand{useexternaldocument}{usadocumentoesterno} \setinterfacecommand{useexternalfigure}{usafiguraesterna} \setinterfacecommand{useexternalfile}{usafileesterno} \setinterfacecommand{useexternalfiles}{usafileesterni} \setinterfacecommand{useexternalsoundtrack}{usacolonnasonoraesterna} \setinterfacecommand{usemodule}{usamodulo} \setinterfacecommand{usemodules}{usamoduli} \setinterfacecommand{usepath}{usacartella} \setinterfacecommand{usereferences}{usariferimenti} \setinterfacecommand{usespecials}{usaspecialita} \setinterfacecommand{usesymbols}{usasimboli} \setinterfacecommand{usetypescript}{usetypescript} \setinterfacecommand{usetypescriptfile}{usetypescriptfile} \setinterfacecommand{useurl}{usaurl} \setinterfacecommand{verbatim}{verbatim} \setinterfacecommand{version}{versione} \setinterfacecommand{vl}{vl} \setinterfacecommand{weekday}{giornosettimana} \setinterfacecommand{whitespace}{spaziobianco} \setinterfacecommand{widthspanningtext}{widthspanningtext} \setinterfacecommand{wordright}{paroladestra} \setinterfacecommand{writebetweenlist}{scrividentroelenco} \setinterfacecommand{writetolist}{scriviinelenco} \setinterfacecommand{writetoreferencelist}{scriviinlistariferimenti} \setinterfacecommand{writetoregister}{scriviinregistro} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/catc-ctx.mkii0000644000175000017500000000531314536300610024663 0ustar hillehille%D \module %D [ file=catc-cys, %D version=2006.09.18, %D title=\CONTEXT\ Catcode Macros, %D subtitle=Extra Tables, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D We prefer to define relevant catcode tables in this file instead %D of everywhere around. \ifdefined \ctxcatcodes \else \newcatcodetable \ctxcatcodes \fi \ifdefined \prtcatcodes \else \newcatcodetable \prtcatcodes \fi \startcatcodetable \ctxcatcodes \catcode\tabasciicode \spacecatcode \catcode\endoflineasciicode \endoflinecatcode \catcode\formfeedasciicode \endoflinecatcode \catcode\spaceasciicode \spacecatcode \catcode\endoffileasciicode \ignorecatcode \catcode\circumflexasciicode\superscriptcatcode \catcode\underscoreasciicode\subscriptcatcode \catcode\ampersandasciicode \alignmentcatcode \catcode\backslashasciicode \escapecatcode \catcode\leftbraceasciicode \begingroupcatcode \catcode\rightbraceasciicode\endgroupcatcode \catcode\dollarasciicode \mathshiftcatcode \catcode\hashasciicode \parametercatcode \catcode\commentasciicode \commentcatcode \catcode\tildeasciicode \activecatcode \catcode\barasciicode \activecatcode \stopcatcodetable \startcatcodetable \prtcatcodes \catcode\tabasciicode \spacecatcode \catcode\endoflineasciicode \endoflinecatcode \catcode\formfeedasciicode \endoflinecatcode \catcode\spaceasciicode \spacecatcode \catcode\endoffileasciicode \ignorecatcode \catcode\circumflexasciicode\superscriptcatcode \catcode\underscoreasciicode\subscriptcatcode \catcode\ampersandasciicode \alignmentcatcode \catcode\backslashasciicode \escapecatcode \catcode\leftbraceasciicode \begingroupcatcode \catcode\rightbraceasciicode\endgroupcatcode \catcode\dollarasciicode \mathshiftcatcode \catcode\hashasciicode \parametercatcode \catcode\commentasciicode \commentcatcode \catcode`\@ \lettercatcode \catcode`\! \lettercatcode \catcode`\? \lettercatcode \catcode\tildeasciicode \activecatcode \catcode\barasciicode \activecatcode \stopcatcodetable \letcatcodecommand \ctxcatcodes \barasciicode \relax \letcatcodecommand \ctxcatcodes \tildeasciicode \relax \catcodetable \ctxcatcodes \let \defaultcatcodetable \ctxcatcodes % for the moment here: \def\starttexcode {\pushcatcodetable \catcodetable\prtcatcodes} \def\stoptexcode {\popcatcodetable} \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-not.mkii0000644000175000017500000013377114536300610024740 0ustar hillehille%D \module %D [ file=strc-not, %D version=2002.05.10, % 1997.09.15 %D title=\CONTEXT\ Structure Macros, %D subtitle=Note Handling, % Footnote Handling %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Structure Macros / Note Handling} %D Unfortunately we cannot force an even number of lines in %D a two column footnote placement. %D There are some (still) dutch core commands used in this %D file. \unprotect % \dochecknote in processnotes % splitskips setten %D Footnotes are can be characterized by three components: %D %D \startitemize[packed] %D \item a small number \footnote {a footnote number} or %D symbol {\setupfootnotes [conversion=set 2]\footnote %D {a footnote}} %D \item and a similar mark at the bottom of the page %D \item followed by some additional text %D \stopitemize %D %D Because footnotes are declared at the location of their %D reference they can be seen as a special kind of %D floating bodies. Their placement is postponed but has to be %D taken into account in the pagebreak calculations. This kind %D of calculations are forced by using \type{\insert}. %D \macros %D {setupnote,setupnotedefinition} %D %D We can influence footnote typesetting with the setup %D command: %D %D \showsetup{setupfootnotes} % ! ! %D %D It's sort of a custom to precede footnotes by a horizontal %D rule and although fancy rules like %D %D \starttyping %D \hbox to 10em{\hskip-3em\dotfill} %D \stoptyping %D %D Are quite ligitimate, we default to a simple one 20\% of the %D text width. %D %D When \type{n} exceeds~1, footnotes are typeset in %D multi||columns, using the algoritm presented on page~397 %D of \TEX book. Footnotes can be places on a per page basis %D or whereever suitable. When we set~\type{n} to~0, we get a %D rearanged paragraph, typeset by the algoritms on pages 398 %D and~389. We definitely did not reinvent that wheel. \newif\ifendnotes \endnotesfalse \newif\ifbottomnotes \bottomnotestrue \chardef\clevernotes=\zerocount % 0=page 1=firstcolumn 2=lastcolumn %D The next definitions indicate that we can frame the footnote %D area. The footnotes themselves are treated as definitions. %D %D \showsetup{setupfootnotes} \let\currentnote\v!footnote \def\noteparameter #1{\csname\??vn \currentnote#1\endcsname} \def\notedefparameter #1{\csname\??vn\??vn\currentnote#1\endcsname} \def\footnoteparameter #1{\csname\??vn \v!footnote#1\endcsname} \def\startnotedef {\resetdescriptions\csname\e!start\??vn\??vn\currentnote\endcsname} \def\stopnotedef {\csname\e!stop \??vn\??vn\currentnote\endcsname} \def\noteinsertion #1{\csname\??vn:#1\endcsname} \def\currentnoteins {\csname\??vn:\currentnote\endcsname} \def\currentsaveins {\csname\??vn-\currentnote\endcsname} \def\localpostponednotes {\csname\??vn+\currentnote\endcsname} \def\backupnoteins #1{\@EA\backupinsertion\csname\??vn:#1\endcsname} \def\currentbackupnoteins{\@EA\backupinsertion\csname\??vn:\currentnote\endcsname} %D The numbers that accompany a footnote are generated using %D the standard \CONTEXT\ numbering mechanism, and thereby can %D be assigned on a per whatever sectioning basis. \ifx\noteinsertions\undefined \let\noteinsertions\empty \fi % permits reload \def\doprocessnotes#1#2% #1 may be { ... } {\def\currentnote{#2}#1} \def\doprocessnotescs#1#2% #1 == \cs that takes arg {\def\currentnote{#2}\@EA#1\csname\??vn:\currentnote\endcsname} \def\processnotes #1{\processcommacommand[\noteinsertions]{\doprocessnotes {#1}}} \def\processnotescs#1{\processcommacommand[\noteinsertions]{\doprocessnotescs#1}} \def\savenotecontent {\processnotescs\saveinsertionbox } \def\erasenotebackup {\processnotescs\eraseinsertionbackup} \def\savenotedata {\processnotescs\saveinsertiondata } \def\restorenotecontent{\processnotescs\restoreinsertionbox } \def\restorenotedata {\processnotescs\restoreinsertiondata} %D ... due to invisibility of inserts ... maybe save them twice %D and split new part ... todo ... \def\doenablenotes % brrr {\global\count\currentnoteins\plusthousand \global\skip \currentnoteins1\baselineskip\relax} \def\dodisablenotes {\global\count\currentnoteins\zerocount \global\skip \currentnoteins\zeropoint} \def\enablenotes {\processnotes\doenablenotes } \def\disablenotes{\processnotes\dodisablenotes} \def\dosavenotes {\global\setbox\currentsaveins\vbox {\ifvoid\currentsaveins\else\unvbox\currentsaveins\fi \box\currentnoteins}} \def\doflushsavednotes {\ifvoid\currentsaveins\else \insert\currentnoteins{\unvbox\currentsaveins}% \fi} \def\savenotes {\processnotes\dosavenotes } \def\flushsavednotes{\processnotes\doflushsavednotes} %D Both these parameters are coupled to the setup command we %D will implement in a moment. This means that, given a %D suitable symbol set, symbols can be used instead of numbers, %D by saying: %D %D \starttyping %D \setupfootnotes[conversion=set 2] %D \stoptyping % experiment: (compare scope=text and scope=page) % % \definenote[mynote][way=bytext,location=text,width=\leftmarginwidth,scope=page,rule=,before=,after=,factor=0] % \setuptexttexts[margin][\vbox to \textheight{\placenotes[mynote]\vfill}][] \def\definenote {\dodoubleempty\dodefinenote} % maybe we should inherit (todo) \def\@@defaultnotedefloc{\v!inleft} \def\@@defaultnotedefdis{\!!zeropoint} \def\dodefinenote[#1][#2]% {\def\currentnote{#1}% \ifundefined{\??vn:\currentnote}% \@EA\installinsertion \csname\??vn:\currentnote\endcsname\relax \@EA\installbackupinsertion\csname\??vn:\currentnote\endcsname\relax % \@EA\newbox\csname\??vn::\currentnote\endcsname % scratch box % needed ? \@EA\newbox\csname\??vn+\currentnote\endcsname % local box \@EA\newbox\csname\??vn-\currentnote\endcsname % local box \doglobal\addtocommalist{#1}\noteinsertions \fi \definedescription [\??vn\??vn\currentnote] [\c!location=\@@defaultnotedefloc, \c!distance=\@@defaultnotedefdis, \c!width=\v!fit, \c!headstyle=\noteparameter\c!style, \c!headcolor=\noteparameter\c!color, \c!before=, \c!after=]% \presetlocalframed [\??vn\currentnote]% \getparameters [\??vn\currentnote] [\c!location=\v!page, \c!way=\v!by\v!part, \c!sectionnumber=\v!no, \c!conversion=, \c!rule=\v!on, \c!before=\blank, \c!bodyfont=\v!small, \c!style=, \c!color=, \c!after=, \c!rulecolor=, \c!rulethickness=\linewidth, \c!frame=\v!off, \c!margindistance=.5em, \c!columndistance=1em, \c!distance=.125em, \c!align=\v!normal, \c!tolerance=\v!tolerant, \c!split=\v!tolerant, %\c!width=\makeupwidth, %\c!width=\ifdim\hsize<\makeupwidth\hsize\else\makeupwidth\fi, \c!width=\defaultnotewidth, \c!height=\textheight, \c!numbercommand=\high, \c!command=\noteparameter\c!numbercommand, % downward compatible \c!separator=\@@koseparator, \c!textcommand=\high, \c!textstyle=\tx, \c!textcolor=, \c!interaction=\v!yes, \c!factor=, \c!scope=, % \v!text \v!page \c!next=\autoinsertnextspace, % new, experimental with startnotes \c!n=1]% \definenumber [\currentnote] [\c!way=\noteparameter\c!way, \c!sectionnumber=\noteparameter\c!way, \c!conversion=\noteparameter\c!conversion]% \letvalue{\??vn\c!rule:\currentnote}\normalnoterule \unexpanded\setvalue{\currentnote }{\setnote[#1]}% \unexpanded\setvalue{\currentnote\v!text }{\setnotetext[#1]}% \unexpanded\setvalue{\e!start\currentnote}{\dodoubleempty\dostartcurrentnote[#1]}% \unexpanded\setvalue{\e!stop\currentnote }{\dostopcurrentnote}% \setupnote[\currentnote][#2]} \def\dostartcurrentnote[#1][#2]{\setnote[#1][#2]\bgroup\ignorespaces} \def\dostopcurrentnote {\removeunwantedspaces\egroup\noteparameter\c!next} \def\setupnotedefinition[#1]% {\setupdescriptions[\??vn\??vn#1]} \def\setupnote {\dodoubleempty\dosetupnote} \def\dosetupnote[#1][#2]% {\edef\currentnote{#1}% \ifsecondargument \ifcase\localnodemode\or \edef\localnode@n{\noteparameter\c!n}% \edef\localnode@l{\noteparameter\c!location}% \fi \getparameters[\??vn\currentnote][#2]% \ifcase\localnodemode\or \letvalue{\??vn\currentnote\c!n }\localnode@n \letvalue{\??vn\currentnote\c!location}\localnode@l \fi \processaction [\noteparameter\c!rule] [ \v!on=>\letvalue{\??vn\c!rule:\currentnote}\normalnoterule, \v!off=>\letvalue{\??vn\c!rule:\currentnote}\relax, \s!default=>\letvalue{\??vn\c!rule:\currentnote}\relax, \s!unknown=>\setvalue{\??vn\c!rule:\currentnote}{\noteparameter\c!rule}]% \processaction % todo [\noteparameter\c!split] [ \v!tolerant=>\notepenalty\zeropoint, \v!strict=>\notepenalty9999, \v!verystrict=>\notepenalty\maxdimen, \s!default=>\notepenalty\zeropoint, \s!unknown=>\notepenalty\commalistelement]% \fi \dochecknote} \def\dolocalsetupnotes#1#2% {\ifsecondargument \edef\noteinsertions{#1}% \processnotes{\setupnote[\currentnote][#2]}% \else\iffirstargument \doifassignmentelse{#1} {\processnotes{\setupnote[\currentnote][#1]}} {\edef\noteinsertions{#1}}% \fi\fi} % redefined: % so that it matches: % todo: make sure less calls, is quite some code \def\dochecknote % only to be called locally, some bools will become class-ones {% for the moment no mixed text/endnotes modes, so we use % \footnoteparameter and not \noteparameter (**) \setnotedistance \count\currentnoteins\plusthousand \expanded{\doifcommonelse{\v!columns,\v!lastcolumn}{\noteparameter\c!location}}% ** {\chardef\clevernotes\plustwo} {\expanded{\doifinsetelse{\v!firstcolumn}{\noteparameter\c!location}}% ** {\chardef\clevernotes\plusone}% {\chardef\clevernotes\zerocount}}% \ifcase\clevernotes\relax % notes not in column areas \ifnum\noteparameter\c!n=\zerocount % no ifcase \settextnotes \scratchcounter\plusone \else \setcolumnnotes \scratchcounter\noteparameter\c!n\relax \divide\count\currentnoteins \scratchcounter \fi \global\endnotesfalse \expanded{\doifinsetelse{\v!page}{\noteparameter\c!location}}% ** {\expanded{\doifinsetelse{\v!high}{\noteparameter\c!location}}% ** {\global\bottomnotesfalse} {\global\bottomnotestrue}} {\global\endnotestrue \global\bottomnotestrue}% not: \postponenotes, else global \else % notes in column areas \ifnum\@@kln=\zerocount % no ifcase / brrr dependency on \??kl \scratchcounter\plusone \else \scratchcounter\footnoteparameter\c!n\relax % ** \fi \global\endnotesfalse \global\bottomnotestrue \setclevernotes \fi \doifsomething{\noteparameter\c!factor} {\ifnum\noteparameter\c!factor<\zerocount\else \count\currentnoteins\noteparameter\c!factor \fi}% \ifnotelimit \dimen\currentnoteins\noteparameter\c!height \multiply\dimen\currentnoteins \scratchcounter \fi \ifendnotes \dimen\currentnoteins\maxdimen \count\currentnoteins\zerocount \skip \currentnoteins\zeropoint \fi} \def\checknotes {\processnotes\dochecknote} % Example of using factor: % % \definenote[mynote][way=bypage,location=text,width=\marginwidth,rule=,before=,factor=0] % \setuplayout[backspace=5cm,margin=3cm,margindistance=.5cm,width=middle] % \setuptexttexts[margin][\vbox to \textheight{\placenotes[mynote]\vfill}][] % \starttext % \dorecurse{10}{test \mynote{one one one one one one} \input zapf \mynote{one one one one one one} } % \stoptext %D The noterule can be a graphic and therefore calling this %D setup macro at every skipswitch is tricky (many many MP %D runs). Let's just reserve a few points, that probably match %D those of the stretch component. \def\placenoterule {\getvalue{\??vn\c!rule:\currentnote}} \def\normalnoterule {\ifvmode \color [\noteparameter\c!rulecolor] {\hrule \!!width .2\hsize \!!height\noteparameter\c!rulethickness \!!depth \zeropoint}% \kern\strutdepth \fi} %D The following switch can be used to disable limiting the %D height of the footnote area, something that is needed in %D multi column balancing. Use this switch with care. \newif\ifnotelimit \notelimittrue \def\setnotedistance {\setbox\scratchbox\vbox {\forgetall \noteparameter\c!before \placenoterule \noteparameter\c!after}% \global\skip\currentnoteins\ht\scratchbox \setbox\scratchbox\emptybox} % scratchbox can be in use \ifx\setnotehsize\undefined \def\setnotehsize{\hsize\noteparameter\c!width} % can be overloaded \fi \def\setclevernotes {\def\startpushnote {\bgroup % wellicht ooit kopuitlijnen \setupinmargin[\c!align=\v!left]% \startnotedef}% \def\stoppushnote {\stopnotedef \egroup}% \let\startpopnotes \donothing \let\stoppopnotes \donothing} \def\setcolumnnotes {\def\startpushnote {\setnotehsize % possibly overloaded \setrigidcolumnhsize\hsize{\noteparameter\c!columndistance}{\noteparameter\c!n}% \bgroup \setupinmargin[\c!align=\v!left]% \startnotedef}% \def\stoppushnote {\stopnotedef \egroup}% \def\startpopnotes {\bgroup \setnotehsize \setrigidcolumnhsize\hsize{\noteparameter\c!columndistance}{\noteparameter\c!n}% \setbox0\vbox\bgroup}% \def\stoppopnotes {\egroup \setbox0\vbox {\unvbox0\setbox0\lastbox \ifvbox0\unvbox\else\box\fi0}% \rigidcolumnbalance0\egroup}} % \def\settextnotes % {\def\startpushnote {\startvboxtohbox % \dostartattributes{\??vn\currentnote}\c!style\c!color\empty}% % \def\stoppushnote {\hskip\noteparameter\c!columndistance % plus.5em minus.5em % \dostopattributes % \stopvboxtohbox}% % \def\startpopnotes {\vbox\bgroup % \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize % \beginofshapebox}% % \def\stoppopnotes {\endofshapebox % \reshapebox{\ifhbox\shapebox\unhbox\else\box\fi\shapebox\endgraf}% % \flushshapebox % \egroup}} % % this was wrong (for ages) % \def\settextnotes % {\def\startpushnote {\startvboxtohbox % \dostartattributes{\??vn\currentnote}\c!style\c!color\empty}% % \def\stoppushnote {\hskip\noteparameter\c!columndistance % plus.5em minus.5em % \dostopattributes % \stopvboxtohbox}% % %\def\startpopnotes {\vbox\bgroup % % \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize} % %\def\stoppopnotes {\convertvboxtohbox % % \egroup}% % \def\startpopnotes {\vbox\bgroup % \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize % \beginofshapebox}% % \def\stoppopnotes {\endofshapebox % \doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc % \innerflushshapebox % \convertvboxtohbox % \egroup}% % } \def\settextnotes {\def\startpushnote {\startvboxtohbox \edef\@@defaultnotedefloc{\ifnum\noteparameter\c!n=\zerocount\v!serried\else\v!inleft \fi}% \edef\@@defaultnotedefdis{\ifnum\noteparameter\c!n=\zerocount .5em\else\!!zeropoint\fi}% \startnotedef}% \def\stoppushnote {\stopnotedef \hskip\noteparameter\c!columndistance % plus.5em minus.5em \stopvboxtohbox}% \def\startpopnotes {\vbox\bgroup % here, else problems in preroll \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize \beginofshapebox}% \def\stoppopnotes {\endofshapebox \doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc \innerflushshapebox \convertvboxtohbox \egroup}} %D The formatting depends on the width of the table, so we %D have to set \type {n} to zero. %D %D \starttyping %D \startbuffer %D \bTABLE %D \bTR \bTD one \footnote{\dorecurse{10}{abcd }} \eTD \bTD two \eTD \eTR %D \bTR \bTD three fout five six seven eight nine \eTD \bTD ten \eTD \eTR %D \eTABLE %D \stopbuffer %D %D \startlocalfootnotes[n=0,location={text,none}] %D \placelegend[n=2]{\getbuffer}{\placelocalfootnotes} %D \stoplocalfootnotes %D \stoptyping %D \macros %D {footnote} %D %D A footnote can have a reference as optional argument and %D therefore its formal specification looks like: %D %D \showsetup{footnote} %D %D This command has one optional command: the reference. By %D saying \type{[-]} the number is omitted. The footnote %D command is not that sensitive to spacing, so it's quite %D legal to say: %D %D \startbuffer %D Users of \CONTEXT\ must keep both feet \footnote{Given they %D have two.} on the ground and not get confused \footnote{Or %D even crazy.} by all those obscure \footnote{But fortunately %D readable.} parameters. %D \stopbuffer %D %D \typebuffer %D %D When setting the \type{conversion} to \type{set 2} we get %D something like: %D %D \bgroup %D \startnarrower %D \setupfootnotes[conversion=set 1] %D \getbuffer %D \stopnarrower %D \egroup %D %D Typesetting footnotes is, at least for the moment, disabled %D when reshaping boxes. %D %D The additional macro \type {\footnotetext} and the %D associated \type {\note} macro were implemented at %D request of users on the mailing list and a suggestion by %D taco to split of the symbol placement. I decided to %D merge this functionality with the existing \type {\note} %D functionality. \newif\ifnotesymbol \unexpanded\def\setnote {\dotripleempty\dosetnote[1]} \unexpanded\def\setnotetext{\dotripleempty\dosetnote[0]} \def\dosetnote[#1][#2][#3]% {\removeunwantedspaces \def\currentnote{#2}% \dochecknote % sometimes needed for local notes \ifcase#1\relax \global\notesymbolfalse \else \global\notesymboltrue \fi \ifvisible % misty feature, make it obsolete \ifreshapingbox \@EAEAEA\gobbletwoarguments \else \@EAEAEA\dodonote \fi \else % todo: \iftrialtypesetting \@EA\gobbletwoarguments \fi{#3}} %D \macros %D {notesenabled} %D %D Before we come to typesetting a footnote, we first check %D if we have to typeset a number. When a \type{-} is passed %D instead of a reference, no number is typeset. We can %D temporary disable footnotes by saying %D %D \starttyping %D \notesenabledfalse %D \stoptyping %D %D which can be handy while for instance typesetting tables %D of contents. The pagewise footnote numbering is dedicated %D to Han The Thanh, who needed it first. \newif\ifnotesenabled \notesenabledtrue \appendtoks \notesenabledfalse \to \everymarking \newconditional\pagewisenotes % saves two hash entries \def\lastnotepage{1} \def\domovednote#1#2% {\ifconditional\pagewisenotes \doifreferencefoundelse{\s!fnt:t:\number\internalnotereference} {\let\savedrealreference\currentrealreference \doifreferencefoundelse{\s!fnt:f:\number\internalnotereference} {\ifnum\savedrealreference<\currentrealreference\relax\symbol[#1]\else \ifnum\savedrealreference>\currentrealreference\relax\symbol[#2]\fi\fi} \donothing} \donothing \fi} % maybe some day % % \newconditional\tracemovednotes % \def\domovednote#1#2% % {\iflocation % \doshowmovednote{#1}{#2}% % \else\ifconditional\tracemovednotes % \doshowtracednote{#1}{#2}% % \fi\fi} % \def\doshowmovednote#1#2% % {\doifreferencefoundelse{\s!fnt:t:\number\internalnotereference} % {\let\savedrealreference\currentrealreference % \doifreferencefoundelse{\s!fnt:f:\number\internalnotereference} % {\ifnum\savedrealreference<\currentrealreference\relax % \symbol[#1]% % \else\ifnum\savedrealreference>\currentrealreference\relax % \symbol[#2]% % \fi\fi} % \donothing} % \donothing} % \def\doshowtracednote#1#2% % {\doifreferencefoundelse{\s!fnt:t:\number\internalnotereference} % {\let\savedrealreference\currentrealreference % \doifreferencefoundelse{\s!fnt:f:\number\internalnotereference} % {\ifnum\savedrealreference<\currentrealreference\relax % \writestatus{NOTE}{forward note reference on real page \currentrealreference}% % \else\ifnum\savedrealreference>\currentrealreference\relax % \writestatus{NOTE}{backward note reference on real page \currentrealreference}% % \fi\fi} % \donothing} % \donothing} \def\dodonote {\ifnotesenabled \iftrialtypesetting \@EAEAEA\nododonote \else \@EAEAEA\dododonote \fi \else \@EA\gobbletwoarguments \fi} % \def\nododonote#1% % {\doifnot{#1}{-}{\kern.5em}% quick hack, approximation % \gobbleoneargument} % % more correct: \long\def\nododonote#1#2% {\doifnot{#1}{-} {\ifconditional\pagewisenotes \doifreferencefoundelse{\s!fnt:t:\number\internalnotereference} {\ifnum\currentrealreference>\lastnotepage\relax \globallet\lastnotepage\currentrealreference \resetnumber[\currentnote]% \fi} {}% \fi \incrementnumber[\currentnote]% \makesectionnumber[\currentnote]% \let\lastnotenumber\composedsectionnumber \dolastnotesymbol \decrementnumber[\currentnote]}} \def\dododonote#1% {\global\advance\internalnotereference\plusone \doifelse{\noteparameter\c!way}{\v!by\v!page} {\settrue\pagewisenotes} {\setfalse\pagewisenotes}% \doifelse{#1}{-} {\let\lastnotenumber\empty} {\ifconditional\pagewisenotes \doifreferencefoundelse{\s!fnt:t:\number\internalnotereference} {\ifnum\currentrealreference>\lastnotepage\relax \globallet\lastnotepage\currentrealreference \resetnumber[\currentnote]% \fi} {}% \fi \incrementnumber[\currentnote]% \makesectionnumber[\currentnote]% \rawreference\s!fnt{#1}\composedsectionnumber \let\lastnotenumber\composedsectionnumber}% \dostartnote} %D The main typesetting routine is more or less the same as the %D \PLAIN\ \TEX\ one, except that we only handle one type while %D \PLAIN\ also has something \type{\v...}. In most cases %D footnotes can be handled by a straight insert, but we do so %D by using an indirect call to the \type{\insert} primitive. \def\dostartlocalnoteinsert {\dochecknote \ifendnotes \global\setbox\localpostponednotes\vbox\bgroup \ifvoid\localpostponednotes\else\unvbox\localpostponednotes\fi \else \insert\currentnoteins\bgroup \fi} \let\startlocalnoteinsert\dostartlocalnoteinsert \let\stoplocalnoteinsert \egroup %D Making footnote numbers active is not always that logical, %D Making footnote numbers active is not always that logical, %D especially when we keep the reference and text at one page. %D On the other hand we need interactivity when we refer to %D previous notes or use end notes. Therefore we support %D interactive footnote numbers in two ways \footnote{This %D feature was implemented years after we were able to do so, %D mainly because endnotes had to be supported.} that is, %D automatically (vise versa) and by user supplied reference. \newcount\internalnotereference \let\startpushnote=\relax \let\stoppushnote =\relax \newsignal\notesignal \newcount \notepenalty \notepenalty=0 % needed in order to split in otrset \newconditional\processingnote \def\footnotereferencefrom {\rawreference\s!fnt{\s!fnt:f:\number\internalnotereference}{}} \def\footnotereferenceto {\global\advance\crossreferencenumber\minusone\relax % else problem, needs further testing \rawreference\s!fnt{\s!fnt:t:\number\internalnotereference}{}} \def\dostartnote% nog gobble als in pagebody {\pushsomestates \bgroup \settrue\processingnote %\restorecatcodes % to be tested first \iftypesettinglines % otherwise problems with \type {xxx} \ignorelines % makes footnotes work in \startlines ... \stoplines \fi \ifnotesymbol \dolastnotesymbol \else \unskip\unskip \globallet\lastnotesymbol\dolastnotesymbol \fi \startlocalnoteinsert \doif{\noteparameter\c!scope}\v!page{\floatingpenalty\maxdimen}% experiment \penalty\notepenalty \forgetall \setnotebodyfont \redoconvertfont % to undo \undo calls in in headings etc \splittopskip\strutht % not actually needed here \splitmaxdepth\strutdp % not actually needed here \leftmargindistance\noteparameter\c!margindistance \rightmargindistance\leftmargindistance \ifnum\noteparameter\c!n=\zerocount % no ifcase new 31-07-99 ; always ? \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize \fi \startpushnote {\ifx\lastnotenumber\empty \else \preparefullnumber{\??vn\currentnote}\lastnotenumber\preparednumber \doifelse{\noteparameter\c!interaction}\v!no {\noteparameter\c!numbercommand {\preparednumber\domovednote\v!nextpage\v!previouspage}}% {\gotobox{\noteparameter\c!command % was \c!numbercommand, but compatible {\preparednumber\domovednote\v!nextpage\v!previouspage}}% [\s!fnt:f:\number\internalnotereference]}% \fi \doifelse{\noteparameter\c!interaction}\v!no {\ifconditional\pagewisenotes \footnotereferenceto \fi}% {\footnotereferenceto}}% \bgroup \postponenotes \aftergroup\dostopnote \begstrut \let\next} \def\dostopnote {\endstrut \stoppushnote \egroup \stoplocalnoteinsert \kern\notesignal\relax % \relax is needed to honor spaces \popsomestates} \def\dolastnotesymbol {\removeunwantedspaces \doifitalicelse\/\donothing % Charles IV \footnote{the fourth} \ifdim\lastkern=\notesignal \dodonotesymbol{\kern\noteparameter\c!distance}% gets the font right, hack ! \fi \nobreak \doifelse{\noteparameter\c!interaction}\v!no {\dodonotesymbol{\lastnotenumber\domovednote\v!previouspage\v!nextpage}% \ifconditional\pagewisenotes \footnotereferencefrom \fi} {\gotobox {\dodonotesymbol{\lastnotenumber\domovednote\v!previouspage\v!nextpage}}% [\s!fnt:t:\number\internalnotereference]% \footnotereferencefrom}% \globallet\lastnotesymbol\relax} \let\lastnotesymbol\relax %D \macros %D {note} %D %D Refering to a note is accomplished by the rather short %D command: %D %D \showsetup{note} %D %D This command is implemented rather straightforward as: \def\notesymbol {\dodoubleempty\donotesymbol} % \def\donotesymbol[#1][#2]% % {\bgroup % \ifnotesenabled % \def\currentnote{#1}% % \ifsecondargument % \ifx\lastnotesymbol\relax % \unskip % \naarbox{\high{\tx\currenttextreference}}[#2]% % \else % \lastnotesymbol % \fi % \else % \lastnotesymbol % \fi % \fi % \egroup} \def\dodonotesymbol#1% {\noteparameter\c!textcommand{\doattributes{\??vn\currentnote}\c!textstyle\c!textcolor{#1}}} % \def\donotesymbol[#1][#2]% % {\bgroup % \ifnotesenabled % \def\currentnote{#1}% % \ifsecondargument % \ifx\lastnotesymbol\relax % bugged % \unskip % \gotobox{\dodonotesymbol\currenttextreference}[#2]% % \else % \lastnotesymbol % \fi % \else % \lastnotesymbol % \fi % \fi % \egroup} \def\donotesymbol[#1][#2]% {\bgroup \ifnotesenabled \def\currentnote{#1}% \ifsecondargument \unskip \gotobox{\dodonotesymbol\currenttextreference}[#2]% \else \lastnotesymbol \fi \fi \egroup} %D Normally footnotes are saved as inserts that are called upon %D as soon as the pagebody is constructed. The footnote %D insertion routine looks just like the \PLAIN\ \TEX\ one, %D except that we check for the end note state. \let\startpopnotes = \relax \let\stoppopnotes = \relax \def\placenoteinserts {\processnotes\doplacenoteinserts} % testcase for split bottom alignment see (a) below % % \dorecurse{6}{\input tufte\footnote{\input ward \input tufte \relax}} \def\doplacenoteinserts {%\ifvoid\currentnoteins \else % unsafe, strange \relax\ifdim\ht\currentnoteins>\zeropoint\relax \dochecknote \ifendnotes \else \noteparameter\c!before \placenoterule % alleen in ..mode \bgroup \setnotebodyfont \setbox0\hbox {\startpopnotes \setnotebodyfont % % this should be checked, smells like a mix-up % % does not split: \ifcase\noteparameter\c!n\unvbox\else\box\fi\currentnoteins \ifcase\noteparameter\c!n\relax \iftrialtypesetting\unvcopy\else\unvbox\fi\currentnoteins % \unvbox\currentnoteins \or \iftrialtypesetting\copy\else\box\fi\currentnoteins % \box\currentnoteins \obeydepth % (a) added , since split footnotes will not align properly \else \iftrialtypesetting\unvcopy\else\unvbox\fi\currentnoteins % \unvbox\currentnoteins \fi % this is too ugly actually \stoppopnotes}% \setbox2\hbox {\localframed [\??vn\currentnote] [\c!width=\v!fit, \c!height=\v!fit, \c!strut=\v!no, \c!offset=\v!overlay] {\ifdim\dp0=\zeropoint % this hack is needed because \vadjust \hbox{\lower\strutdp\box0}% % in margin number placement \else % hides the (always) present depth \box0 \fi}}% \setbox2\hbox{\lower\strutdepth\box2}% \dp2=\strutdepth % so we know that it has the note bodyfont depth \box2 \egroup \noteparameter\c!after \fi \fi} %D Supporting end notes is surprisingly easy. Even better, we %D can combine this feature with solving the common \TEX\ %D problem of disappearing inserts when they're called for in %D deeply nested boxes. The general case looks like: %D %D \starttyping %D \postponenotes %D \.box{whatever we want with footnotes} %D \flushnotes %D \stoptyping %D %D This alternative can be used in headings, captions, tables %D etc. The latter one sometimes calls for notes local to %D the table, which can be realized by saying %D %D \starttyping %D \setlocalfootnotes %D some kind of table with local footnotes %D \placelocalfootnotes %D \stoptyping %D %D Postponing is accomplished by simply redefining the (local) %D insert operation. A not too robust method uses the %D \type{\insert} primitive when possible. This method fails in %D situations where it's not entirely clear in what mode \TEX\ %D is. Therefore the auto method can is to be overruled when %D needed. \newconditional\postponednote \def\autopostponenotes {\def\startlocalnoteinsert % not global {\ifinner %\message{[postponed note]}% \global\setbox\localpostponednotes\vbox\bgroup \global\settrue\postponednote \ifvoid\localpostponednotes\else\unvbox\localpostponednotes\fi \else %\message{[inserted note]}% \expandafter\dostartlocalnoteinsert \fi}} \def\postponenotes {\let\autopostponenotes\postponenotes \let\postponenotes\relax % prevent loops \def\startlocalnoteinsert % not global {%\message{[postponed note]}% \global\setbox\localpostponednotes\vbox\bgroup \global\settrue\postponednote % \unvbox\localpostponednotes}} \ifvoid\localpostponednotes\else\unvbox\localpostponednotes\fi}} \def\dodoflushnotes % per class, todo: handle endnotes here {\ifdim\ht\localpostponednotes>\zeropoint \bgroup \dochecknote \ifendnotes \else % not that accurate when multiple notes \ifdim\dimexpr\pagegoal-\pagetotal\relax<\ht\localpostponednotes \message{[moved note \currentnote]}% \fi \insert\currentnoteins\bgroup\unvbox\localpostponednotes\egroup \fi \egroup \fi} \def\doflushnotes % also called directly, \ifvoid is needed ! {\ifconditional\processingnote \else \ifconditional\postponednote \let\localnoteinsert\normalnoteinsert % not global \processnotes\dodoflushnotes \global\setfalse\postponednote \fi \fi} \def\flushnotes {\ifconditional\processingnote \else \ifconditional\postponednote \ifinner \else \ifinpagebody \else %\ifvmode % less interference, but also less secure \doflushnotes %\fi \fi \fi \fi \fi} %D For old times sake: \def\flushfootnotes {\flushnotes} \def\doflushfootnotes{\doflushnotes} %D This is a nasty and new secondary footnote flusher. It %D can be hooked into \type {\everypar} like: %D %D \starttyping %D \appendtoks \synchronizenotes \to \everypar %D \stoptyping \def\dosynchronizenotes {\ifvoid\currentnoteins\else\insert\currentnoteins{\unvbox\currentnoteins}\fi} \def\synchronizenotes {\processnotes\dosynchronizenotes} %D There are several placement alternatives. \def\placenotesintext#1% {\ifdim\ht#1>\zeropoint \endgraf \ifvmode \whitespace \noteparameter\c!before \fi \snaptogrid\hbox {\setnotebodyfont \setbox0\hbox {\startpopnotes \unvbox#1\endgraf\relax \stoppopnotes}% \doif{\noteparameter\c!width}\v!fit % new, auto width {\setbox0\hbox % uggly but ok. {\beginofshapebox \unhbox0\setbox0=\lastbox\unvbox0 \endofshapebox \reshapebox{\hbox{\unhbox\shapebox}}% \vbox{\flushshapebox}}}% \localframed [\??vn\currentnote] [ \c!width=\v!fit, \c!height=\v!fit, \c!strut=\v!no, \c!offset=\v!overlay] {\ifdim\dp0=\zeropoint % this hack is needed because \vadjust \hbox{\lower\strutdp\box0}% % in margin number placement \else % hides the (always) present depth \box0 \fi}}% \ifvmode \noteparameter\c!after \fi \fi} %D A stupid alternative is also provided: %D %D \starttyping %D \setupfootnotes[location={text,none}] %D \stoptyping \def\placenotesasnone#1% is grouped already {\ifdim\ht#1>\zeropoint \noteparameter\c!before \setnotebodyfont \startpopnotes % make sure that fake height is killed \unvbox#1\endgraf \stoppopnotes % weird \ifhmode \setbox0=\lastbox \ifvbox0 \unvbox0\else\box0\fi % enable columns \fi \noteparameter\c!after \fi} %D \macros %D {startlocalfootnotes,placelocalfootnotes} %D %D The next two macros can be used in for instance tables, as %D we'll demonstrate later on. %D %D \showsetup{startlocalfootnotes} %D \showsetup{placelocalfootnotes} \def\defaultnotewidth{\makeupwidth} % \def\collectlocalnotes % {\def\localnoteinsert##1% was \gdef, but never reset! % {%\message{[local note]}% % \global\setbox\localpostponednotes\vbox\bgroup % \ifvoid\localpostponednotes \else % \unvbox\localpostponednotes % \fi % \let\next}} \def\collectlocalnotes {\def\startlocalnoteinsert% was \gdef, but never reset! {%\message{[local note]}% \global\setbox\localpostponednotes\vbox\bgroup \ifvoid\localpostponednotes\else\unvbox\localpostponednotes\fi}} \def\startlocalnotes {\bgroup % here because we support \vbox\startlocalnotes \dosingleempty\dostartlocalnotes} \chardef\localnodemode\zerocount \def\dostartlocalnotes[#1]% {\let\autopostponenotes\postponenotes \let\postponenotes\collectlocalnotes \chardef\localnodemode\plusone % new \def\defaultnotewidth{\ifdim\hsize<\makeupwidth\hsize\else\makeupwidth\fi}% \processnotes {\doifsomething{#1}{\setupnote[\currentnote][#1]}% \savenumber[\currentnote]% \resetnumber[\currentnote]}% \collectlocalnotes} \def\stoplocalnotes {\processnotes{\restorenumber[\currentnote]}% \egroup \checknotes} % really needed, else wrong main settings \def\placelocalnotes {\dodoubleempty\doplacelocalnotes} \def\doplacelocalnotes[#1][#2]% {\bgroup \chardef\localnodemode\plusone % new \dolocalsetupnotes{#1}{#2}% \processnotes\dodoplacelocalnotes \egroup \checknotes} % probably not needed \def\dodoplacelocalnotes {\dochecknote \expanded{\doifinsetelse{\v!none}{\noteparameter\c!location}} \placenotesasnone\placenotesintext \localpostponednotes} %D These commands can be used like: %D %D \startbuffer %D \startlocalnotes[width=.3\hsize,n=0] %D \placetable %D {Some Table} %D \placeontopofeachother %D {\starttable[|l|r|] %D \HL %D \VL Nota\footnote{Bene} \VL Bene\footnote{Nota} \VL\SR %D \VL Bene\footnote{Nota} \VL Nota\footnote{Bene} \VL\SR %D \HL %D \stoptable} %D {\placelocalnotes} %D \stoplocalnotes %D \stopbuffer %D %D \typebuffer %D %D Because this table placement macro expect box content, and %D thanks to the grouping of the local footnotes, we don't need %D additional braces. %D %D \getbuffer %D \macros %D {placefootnotes} %D %D We still have no decent command for placing footnotes %D somewhere else than at the bottom of the page (for which no %D user action is needed). Footnotes (endnotes) can be %D placed by using %D %D \showsetup{placefootnotes} \def\placebottomnotes {\processnotes\dodoplacenotes} % \definecomplexorsimple\placenotes % \def\simpleplacenotes % {\processnotes\dodoplacenotes} % \def\complexplacenotes[#1]% % {\bgroup % \edef\noteinsertions{#1}% % \simpleplacenotes % \egroup} \def\placenotes {\dodoubleempty\doplacenotes} \def\doplacenotes[#1][#2]% {\bgroup \dolocalsetupnotes{#1}{#2}% \processnotes\dodoplacenotes \egroup} \def\dodoplacenotes {\dochecknote \ifendnotes \ifinpagebody \else \ifdim\ht\localpostponednotes>\zeropoint \expanded{\doifinsetelse{\v!none}{\noteparameter\c!location}} \placenotesasnone\placenotesintext\localpostponednotes \fi \fi \else \ifdim\ht\currentnoteins>\zeropoint \placenoteinserts \fi \fi} %D \macros %D {fakenotes} \def\fakenotes {\ifhmode\endgraf\fi\ifvmode \calculatetotalclevernoteheight \ifdim\totalnoteheight>\zeropoint \kern\totalnoteheight \fi \fi} \def\fakepagenotes {\ifhmode\endgraf\fi\ifvmode \calculatetotalpagenoteheight \ifdim\totalnoteheight>\zeropoint \kern\totalnoteheight \fi \fi} \newdimen\totalnoteheight \def\doaddtototalnoteheight#1% {\ifdim\ht#1>\zeropoint \advance\totalnoteheight\ht #1% \advance\totalnoteheight\skip#1% \fi} \def\docalculatetotalnoteheight {\ifcase\clevernotes % tricky here ! ! ! to be sorted out ! ! ! \doaddtototalnoteheight\currentnoteins \else \doaddtototalnoteheight\currentbackupnoteins \fi} \def\docalculatetotalclevernoteheight {\ifcase\clevernotes \else % tricky here ! ! ! to be sorted out ! ! ! \doaddtototalnoteheight\currentnoteins \fi} \def\docalculatetotalpagenoteheight {\doaddtototalnoteheight\currentnoteins} \def\calculatetotalnoteheight {\totalnoteheight\zeropoint\processnotes\docalculatetotalnoteheight} \def\calculatetotalclevernoteheight{\totalnoteheight\zeropoint\processnotes\docalculatetotalclevernoteheight} \def\calculatetotalpagenoteheight {\totalnoteheight\zeropoint\processnotes\docalculatetotalpagenoteheight} \newif\ifnotespresent \def\dochecknotepresence {\ifdim\ht\currentnoteins>\zeropoint \notespresenttrue \fi} \def\checknotepresence {\notespresentfalse \processnotes\dochecknotepresence} %D Now how can this mechanism be hooked into \CONTEXT\ without %D explictly postponing footnotes? The solution turned out to %D be rather simple: %D %D \starttyping %D \everypar {...\flushnotes...} %D \neverypar {...\postponenotes} %D \stoptyping %D %D and %D %D \starttyping %D \def\ejectinsert% %D {... %D \flushnotes %D ...} %D \stoptyping %D %D We can use \type{\neverypar} because in most commands %D sensitive to footnote gobbling we disable \type{\everypar} %D in favor for \type{\neverypar}. In fact, this footnote %D implementation is the first to use this scheme. %D When typesetting footnotes, we have to return to the %D footnote specific bodyfont size, which is in most cases derived %D from the global document bodyfont size. In the previous macros %D we already used a footnote specific font setting macro. \def\setnotebodyfont {\let\setnotebodyfont\relax \restoreglobalbodyfont \switchtobodyfont[\noteparameter\c!bodyfont]% \setuptolerance[\noteparameter\c!tolerance]% \setupalign[\noteparameter\c!align]} %D The footnote mechanism defaults to a traditional one %D column way of showing them. By default we precede them by %D a small line. \ifx\v!endnote\undefined \def\v!endnote{endnote} \fi \definenote [\v!footnote ] \definenote [\v!endnote ] [\c!location=\v!none] % else no break % \definenote % [mynote] % [way=bypage, % location={page,high}, % factor=0, % width=\leftmarginwidth, % scope=page, % rule=, % before=, % after=] % % \setuptexttexts % [margin] % [\vbox to \textheight{\placenotes[mynote]\vfill}] % [] %D Compatibility macros: \def\setupfootnotedefinition{\setupnotedefinition [\v!footnote]} \def\setupfootnotes {\setupnote [\v!footnote]} \unexpanded \def\footnote {\setnote [\v!footnote]} \unexpanded \def\footnotetext {\setnotetext [\v!footnote]} \def\note {\dodoubleempty\notesymbol [\v!footnote]} % alleen footnote \def\placefootnotes {\dodoubleempty\doplacefootnotes [\v!footnote]} \def\placelocalfootnotes {\dodoubleempty\doplacelocalfootnotes[\v!footnote]} \def\startlocalfootnotes {\startlocalnotes} \def\stoplocalfootnotes {\stoplocalnotes } \def\doplacefootnotes [#1][#2]% {\ifsecondargument\placenotes [#1][#2,\c!height=\textheight]\else\placenotes [#1]\fi} \def\doplacelocalfootnotes[#1][#2]% {\ifsecondargument\placelocalnotes[#1][#2,\c!height=\textheight]\else\placelocalnotes[#1]\fi} %D Backward compatibility command: \def\footins {\noteinsertion\currentnote} \def\postponefootnotes {\postponenotes} \def\autopostponefootnotes{\autopostponenotes} %D New trickery: \def\ownnotesymbol#1% #1 gets number passed {\executeifdefined{\??vn::\currentnote}\empty} \def\setnotesymbol[#1]#2#3% {\prewordbreak % prevent lookback \gdef\lastnotenumber{#2}% \setgvalue{\??vn::#1}{#3} \dolastnotesymbol} \def\ownnote[#1]#2#3#4% {\setnotesymbol[#1]{#2}{#3}% \setnotetext [#1]{#4}} \defineconversion [ownnote] [\ownnotesymbol] %D Usage: % maybe we should predefine this one % \definenote % [glossary] % [way=bypage, % location={page,high}, % factor=0, % width=\leftmarginwidth, % scope=page, % conversion=ownnote, % numbercommand=, % textcommand=, % textstyle=, % rule=, % before=, % after=] % % \setupnotedefinition % [glossary] % [location=left, % width=fit, % distance=.5em, % align={right,tolerant,stretch}, % headstyle=bold, % hang=1] % % \setuplayout % [width=middle, % height=middle, % backspace=5cm, % margin=4cm, % margindistance=.25cm, % cutspace=2cm] % % \setuptexttexts % [margin] % [\setups{glossary}] % [\setups{glossary}] % % \startsetups glossary % \vbox to \textheight {\placenotes[glossary]\vfill} % \stopsetups % % \dorecurse{10} % {\dorecurse{5} % {\ownnote[glossary]{whow}{whatever needs to be glossed:~\recurselevel}% % \input tufte \relax}} \protect \endinput % \def\myfootnote[#1]#2% let's guess that #2 is without catcode problems % {\setgvalue{note:t:#1}% % {\setxvalue{note:l:#1}{\getvalue{note:n:#1}}% % \footnote[note:a:#1:\getvalue{note:l:#1}]{#2}}% % \setgvalue{note:n:#1}% % {1}% % \getvalue{note:t:#1}}% % \def\mynote[#1]% % {\removeunwantedspaces % \scratchcounter\getvalue{note:n:#1}\relax % \edef\NoteNumber{\the\scratchcounter}% % \doglobal\incrementvalue{note:n:#1}\relax % \doifreferencefoundelse{note:a:#1:1} % {\edef\NotePageA{\number\currentrealreference}% % \doifreferencefoundelse{note:a:#1:\getvalue{note:n:#1}} % {\edef\NotePageB{\number\currentrealreference}% % \doifreferencefoundelse{note:a:#1:\NoteNumber} % {\ifnum\currentrealreference=\NotePageB\relax % \pagereference[note:a:#1:\getvalue{note:n:#1}]% % \note[note:a:#1:\getvalue{note:l:#1}]% % \else\ifnum\NotePageA=\NotePageB\relax % \pagereference[note:a:#1:\getvalue{note:n:#1}]% % \note[note:a:#1:\getvalue{note:l:#1}]% % \else % \getvalue{note:t:#1}% % \fi\fi} % {\ifnum\NotePageA=\NotePageB\relax % \pagereference[note:a:#1:\getvalue{note:n:#1}]% % \note[note:a:#1:\getvalue{note:l:#1}]% % \else % \getvalue{note:t:#1}% % \fi}} % {\pagereference[note:a:#1:\getvalue{note:n:#1}]% % \note[note:a:#1:\getvalue{note:l:#1}]}} % {\pagereference[note:a:#1:\getvalue{note:n:#1}]% % \note[note:a:#1:\getvalue{note:l:#1}]}} % \starttext % funny \myfootnote[funny]{funny} funny \mynote[funny] \page % funny \mynote[funny] funny \mynote[funny] funny \mynote[funny] \page % funny \mynote[funny] funny \mynote[funny] \page % funny \mynote[funny] funny \mynote[funny] funny \mynote[funny] \page % \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/catc-act.mkii0000644000175000017500000000420514536300610024633 0ustar hillehille%D \module %D [ file=catc-act, %D version=2006.09.18, %D title=\CONTEXT\ Catcode Macros, %D subtitle=Default Catcode Tables, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module deals with some active character handling. Use %D with care. %D \macros %D {installactivecharacter} \def\installactivecharacter#1 % {\edef\temp{\detokenize{#1}}% \cctcounterc\expandafter`\temp\relax % relax needed \expandafter\startextendcatcodetable \expandafter\ctxcatcodes\expandafter\catcode\the\cctcounterc\activecatcode \stopextendcatcodetable \letcatcodecommand \ctxcatcodes \cctcounterc \temp \relax \ifnum\currentcatcodetable=\ctxcatcodes \setcatcodetable\ctxcatcodes \fi} %D \macros %D {defineactivecharacter} %D %D Use this one with care, esp in combination with catcode %D vectors. There are better ways now. \chardef\activehackcode=`~ \def\defineactivecharacter #1#2 #3% {\cctcounterc\uccode\activehackcode \if#1"\uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1#2}\empty #1#2\else \uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1#2}\empty`#1#2\fi \catcode\uccode\activehackcode\activecatcode \uppercase{\def\next{~}}% \uccode\activehackcode\cctcounterc \expandafter\expandafter\expandafter\def\expandafter\next\expandafter {\expandafter\dohandleactivecharacter\next{#3}}} \chardef\activecharactermode\plusone % overloading still backward compatible \def\dodohandleactivecharacter#1#2{#2} \def\donthandleactivecharacter#1#2{\noexpand#1} \def\dohandleactivecharacter {\ifcase\activecharactermode \expandafter\donthandleactivecharacter \else \expandafter\dodohandleactivecharacter \fi} \def\makecharacteractive #1 {\catcode`#1\active} % \def\installanddefineactivecharacter #1 % #2% % {\normalexpanded{\noexpand\installactivecharacter \utfchar{#1} }% wrong % \defineactivecharacter #1 }% {#2}} \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/font-heb.mkii0000644000175000017500000000014614536300610024656 0ustar hillehille\unprotected \writestatus\m!systems{load ARABTEX as a module instead} \usemodule[arabtex] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-ps.mkii0000644000175000017500000001562214536300610024533 0ustar hillehille%D \module %D [ file=spec-ps, %D version=1996.01.25, %D title=\CONTEXT\ Special Macros, %D subtitle=Adobe PostScript, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D \macros %D {dostartgraymode,dostopgraymode, %D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode, %D dostartrotation,dostoprotation, %D dostartscaling,dostopscaling, %D dostartmirroring,dostopmirroring, %D dostartnegative,dostopnegative, %D dostartoverprint,dostopoverprint, %D doselectfirstpaperbin, %D doselectsecondpaperbin} %D %D This implementation is straightforward and can be used as %D a default with postscript||drivers. We use \type{ps:} as %D opening, because most drivers support this. \startspecials[postscript] \def\@@insertpostscriptliteral {ps: } \def\@@insertpostscriptretain {" } \definespecial\dostartgraymode#1% {\special {\@@insertpostscriptliteral #1\space setgray}} \definespecial\dostopgraymode {\special {\@@insertpostscriptliteral 0 setgray}} \definespecial\dostartrgbcolormode#1#2#3% {\special {\@@insertpostscriptliteral #1\space #2\space #3\space setrgbcolor}} \definespecial\dostartcmykcolormode#1#2#3#4% {\special {\@@insertpostscriptliteral #1\space #2\space #3\space #4\space setcmykcolor}} \definespecial\dostartgraycolormode#1% {\special {\@@insertpostscriptliteral #1\space setgray}} \definespecial\dostopcolormode {\special {\@@insertpostscriptliteral 0 setgray}} \definespecial\doselectfirstpaperbin {\special {\@@insertpostscriptliteral statusdict begin 1 setpapertray end}} % checken \definespecial\doselectsecondpaperbin {\special {\@@insertpostscriptliteral statusdict begin 0 setpapertray end}} % checken \definespecial\dostartrotation#1% straight from the YandY manual {\special {\@@insertpostscriptliteral gsave currentpoint currentpoint translate \number#1\space\space rotate neg exch neg exch translate}} \definespecial\dostoprotation {\special {\@@insertpostscriptliteral currentfont currentpoint grestore moveto setfont}} \definespecial\dostartscaling#1#2% conforming the YandY manual {\special {\@@insertpostscriptliteral gsave currentpoint currentpoint translate #1\space #2\space scale neg exch neg exch translate}} \definespecial\dostopscaling {\special {\@@insertpostscriptliteral currentfont currentpoint grestore moveto setfont}} \definespecial\dostartmirroring % some translate and exch stuff from YandY {\special {\@@insertpostscriptliteral gsave currentpoint currentpoint translate [-1 0 0 1 0 0] concat neg exch neg exch translate}} \definespecial\dostopmirroring {\special {\@@insertpostscriptliteral currentfont currentpoint grestore moveto setfont}} \definespecial\dostartnegative {\special{\@@insertpostscriptliteral gsave {1 exch sub} settransfer}} \definespecial\dostopnegative {\special{\@@insertpostscriptliteral grestore}} \definespecial\dostartoverprint {\special{\@@insertpostscriptliteral true setoverprint}} \definespecial\dostopoverprint {\special{\@@insertpostscriptliteral false setoverprint}} \definespecial\dostartgraphicgroup {\special{\@@insertpostscriptliteral gsave}} \definespecial\dostopgraphicgroup {\special{\@@insertpostscriptliteral grestore}} %D \macros %D {doovalbox} %D %D This implementation is a mixture of several possible %D implementations. We use some constants that may not be %D changed. It took some time to find them, but these values %D offer quite accurate results. The macro calls for %D \type{\forgetall}, which resets indentation, skips and %D \type{\everypar}. %D %D Because a stroke follows the line, we correct for half of %D the linewidth. Furthermore we use scaling to overcome some %D limitations in the precision ($<1$~sp) and to prevent %D rounding errors. We also do some correction for large %D values. We let PostScript compare some arguments with %D \type{a b eq {action} fi}. %D %D The path is based on a macro of J.~Hefferon cs. We also %D tried the D.~Salomon implementation, but this did not work %D well, just like some other alternatives. % #1 = width #2 = height #3 = depth % #4 = linewidth #5 = radius % #5 = stroke (ja,nee) #7 = fill (ja,nee) \def\@@insertpostscriptliteral {ps: } \def\@@insertpostscriptretain {postscript } % unknown \def\dosomeovalcalc#1#2#3% {\dimen2=#1% \advance\dimen2 #2% \PointsToBigPoints{\dimen2}#3} \def\dosomeovalbox#1#2#3#4#5#6#7#8% variant not yet supported {\bgroup \dimen0=#4\divide\dimen0 2 \dosomeovalcalc{0pt}{+\dimen0}\xmin \dosomeovalcalc{#1}{-\dimen0}\xmax \dosomeovalcalc{#2}{-\dimen0}\ymax \dosomeovalcalc{-#3}{+\dimen0}\ymin \dosomeovalcalc{#4}{0pt}\stroke \dosomeovalcalc{#5}{0pt}\radius \edef\dostroke{#6}% \edef\dofill{#7}% \setbox\nextbox\hbox {\ifnum\dostroke\dofill>0 \special {\@@insertpostscriptretain gsave newpath \xmin\space \radius\space add \ymin\space moveto \xmax\space \ymin\space \xmax\space \ymax\space \radius\space arcto \xmax\space \ymax\space \xmin\space \ymax\space \radius\space arcto \xmin\space \ymax\space \xmin\space \ymin\space \radius\space arcto \xmin\space \ymin\space \xmax\space \ymin\space \radius\space arcto \xmin\space \radius\space add \ymin\space moveto 16 {pop} repeat closepath (\dostroke) (1) eq {\stroke\space 0 ne {gsave \stroke\space setlinewidth stroke grestore} if} if (\dofill) (1) eq {fill} if grestore}% \fi}% \nextboxwd#1% \nextboxht#2% \nextboxdp#3% \flushnextbox \egroup} %D The indirect call permits a (rather) dirty hack, needed %D for \DVIPS\ support. \definespecial\doovalbox {\dosomeovalbox} %D \macros %D {dostartclipping,dostopclipping} %D %D These two specials are not yet working as expected. \definespecial\dostartclipping#1#2#3% {\PointsToBigPoints{#2}\width \PointsToBigPoints{#3}\height \grabMPclippath{#1}{0}{\width}{\height} {0 0 moveto \width 0 lineto \width \height lineto 0 \height\space lineto}% \special {\@@insertpostscriptliteral\space save newpath \MPclippath\space closepath clip}} \definespecial\dostopclipping {\special{\@@insertpostscriptliteral\space restore}} %D Some MP stuff: \definespecial\doinsertMPfile#1% {\doiffileelse{./#1}{\includeMPasEPS{./#1}}{\message{[MP #1]}}} \stopspecials \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/mult-mcs.mkii0000644000175000017500000003052714536300610024723 0ustar hillehille\setinterfacemessage{references}{1}{neznama reference --} \setinterfacemessage{references}{30}{neznamy objekt --} \setinterfacemessage{references}{3}{neznamy typ reference --} \setinterfacemessage{references}{2}{duplicitni reference -- na strane --} \setinterfacemessage{references}{5}{number of unknown references: --} \setinterfacemessage{references}{4}{nedovolena reference --} \setinterfacemessage{references}{6}{number of illegal references: --} \setinterfacemessage{references}{25}{references from document '--' are not imported (export again)} \setinterfacemessage{references}{24}{references from document '--' are not exported} \setinterfacemessage{references}{title}{reference} \setinterfacemessage{references}{26}{references from document '--' are imported} \setinterfacemessage{references}{31}{duplicitni object --} \setinterfacemessage{references}{21}{dokument -- nacten} \setinterfacemessage{references}{22}{dokument -- neni interaktivni} \setinterfacemessage{references}{23}{obskurni (nejasna) reference -- (prefix=--)} \setinterfacemessage{documents}{1}{sheet --} \setinterfacemessage{documents}{title}{sheets} \setinterfacemessage{documents}{2}{number --} \setinterfacemessage{handlings}{1}{font handling --} \setinterfacemessage{handlings}{3}{unknown font handling --} \setinterfacemessage{handlings}{2}{font handling -- is loaded} \setinterfacemessage{handlings}{title}{handling} \setinterfacemessage{systems}{title}{system} \setinterfacemessage{systems}{41}{externi soubor -- ve skupine -- neexistuje} \setinterfacemessage{systems}{9}{-- nenalezeno/nezpracovano} \setinterfacemessage{systems}{91}{papertray --} \setinterfacemessage{systems}{8}{nova verze pomocneho souboru, je treba druheho behu} \setinterfacemessage{systems}{21}{pomocny soubor necten} \setinterfacemessage{systems}{20}{vyznam (trideni) -- nacten} \setinterfacemessage{systems}{5}{makra z -- nactena} \setinterfacemessage{systems}{4}{prikaz -- je jiz definovan} \setinterfacemessage{systems}{27}{verze} \setinterfacemessage{systems}{26}{registry} \setinterfacemessage{systems}{25}{reference} \setinterfacemessage{systems}{24}{plovouci bloky} \setinterfacemessage{systems}{1}{nacteni pomocneho souboru odlozeno (typemode)} \setinterfacemessage{systems}{23}{-- upraveno na --} \setinterfacemessage{systems}{22}{pouzijte platny pomocny soubor} \setinterfacemessage{systems}{2}{-- nacteno} \setinterfacemessage{systems}{19}{vyznam (synonyma) -- nacten} \setinterfacemessage{systems}{18}{synonymum -- -- neexistuje} \setinterfacemessage{systems}{7}{makra z -- jsou jiz nactena} \setinterfacemessage{systems}{6}{zadna makra v -- nenalezena} \setinterfacemessage{systems}{14}{vynucena nova stranka v seznamu na --} \setinterfacemessage{systems}{15}{uklada se buffer --} \setinterfacemessage{systems}{16}{sazi se buffer --} \setinterfacemessage{systems}{17}{sazi se doslovny (verbatim) buffer --} \setinterfacemessage{systems}{13}{znacka -- definovana --} \setinterfacemessage{systems}{12}{pomosny soubor neni setriden, pouzijte texutil} \setinterfacemessage{systems}{11}{vytvarim jednoduchy pomocny soubor} \setinterfacemessage{systems}{10}{nepouzivejte em v --} \setinterfacemessage{floatblocks}{1}{-- precislovano / -- => --} \setinterfacemessage{floatblocks}{3}{-- presunuto} \setinterfacemessage{floatblocks}{2}{-- ulozeno} \setinterfacemessage{floatblocks}{5}{poradi prizpusobeno} \setinterfacemessage{floatblocks}{4}{-- umisteno} \setinterfacemessage{floatblocks}{7}{pocet spodnich plovoucich objektu je omezen na --} \setinterfacemessage{floatblocks}{6}{pocet hornich plovoucich objektu je omezen na --} \setinterfacemessage{floatblocks}{9}{poradi naruseno} \setinterfacemessage{floatblocks}{8}{radku je mene nez --} \setinterfacemessage{floatblocks}{title}{plovouciobjekty} \setinterfacemessage{floatblocks}{13}{there is nothing to split} \setinterfacemessage{floatblocks}{12}{nedefinovano} \setinterfacemessage{floatblocks}{11}{nedan zadny blok} \setinterfacemessage{floatblocks}{10}{-- omezeno} \setinterfacemessage{interactions}{1}{pomer -- x -- (s x v)} \setinterfacemessage{interactions}{3}{neaktivni} \setinterfacemessage{interactions}{2}{aktivni} \setinterfacemessage{interactions}{5}{unknown attachment --} \setinterfacemessage{interactions}{4}{zadna strankova synchronizace (--) v hmode} \setinterfacemessage{interactions}{6}{attachment file -- does not exist} \setinterfacemessage{interactions}{title}{interakce} \setinterfacemessage{interactions}{21}{-- kod vlozen} \setinterfacemessage{regimes}{1}{kodovani --} \setinterfacemessage{regimes}{3}{nezname kodovani --} \setinterfacemessage{regimes}{2}{je nacteno kodovani --} \setinterfacemessage{regimes}{title}{kodovani} \setinterfacemessage{structures}{1}{zacatek oddilu (sekce) --} \setinterfacemessage{structures}{title}{struktury} \setinterfacemessage{structures}{2}{konec oddilu (sekce) --} \setinterfacemessage{linguals}{1}{vzory -- pro -- nacteny (n=--,e=--,m=--)} \setinterfacemessage{linguals}{3}{deleni slov -- pro -- nacteno (n=--,e=--,m=--)} \setinterfacemessage{linguals}{2}{zadne vzory -- pro -- (n=--,e=--,m=--) (--,--)} \setinterfacemessage{linguals}{5}{vzory pro -- nenacteny} \setinterfacemessage{linguals}{4}{zadne deleni slov -- pro -- (n=--,e=--,m=--)} \setinterfacemessage{linguals}{7}{specificke volby jazyka [--] zavadeji -- (zavlecenou) mezeru} \setinterfacemessage{linguals}{6}{jazyk -- neni definovan} \setinterfacemessage{linguals}{9}{language -- is active} \setinterfacemessage{linguals}{8}{specificke volby jazyka [--] bez mezer pripojeny} \setinterfacemessage{linguals}{title}{jazyky} \setinterfacemessage{linguals}{10}{vzory -- nacteny} \setinterfacemessage{verbatims}{1}{soubor -- neexistuje} \setinterfacemessage{verbatims}{title}{verbatim} \setinterfacemessage{filters}{1}{filter -- is loaded} \setinterfacemessage{filters}{title}{filter} \setinterfacemessage{filters}{2}{unknown filter --} \setinterfacemessage{textblocks}{1}{nova verze, je treba druhy beh} \setinterfacemessage{textblocks}{3}{ctu bloky z --} \setinterfacemessage{textblocks}{2}{zapisuji bloky do --} \setinterfacemessage{textblocks}{5}{-- neni skryto} \setinterfacemessage{textblocks}{4}{je treba druhy beh} \setinterfacemessage{textblocks}{7}{-- skryto} \setinterfacemessage{textblocks}{6}{-- skryto a zpracovano} \setinterfacemessage{textblocks}{9}{-- nevysazeno} \setinterfacemessage{textblocks}{8}{-- vysazeno} \setinterfacemessage{textblocks}{title}{textovyblok} \setinterfacemessage{textblocks}{12}{-- preskoceno} \setinterfacemessage{textblocks}{11}{-- nacteno a vysazeno} \setinterfacemessage{textblocks}{10}{-- nacteno a zpracovano} \setinterfacemessage{encodings}{1}{kodovani --} \setinterfacemessage{encodings}{3}{nezname kodovani --} \setinterfacemessage{encodings}{2}{je nacteno kodovani --} \setinterfacemessage{encodings}{title}{kodovani} \setinterfacemessage{columns}{1}{je mozno pouze -- sloupcu} \setinterfacemessage{columns}{3}{problem, vypina se vyvazovani} \setinterfacemessage{columns}{2}{pouzijte \string\filbreak\space jako alternativu} \setinterfacemessage{columns}{5}{spodni plovouci objekt jeste neni podporovan} \setinterfacemessage{columns}{4}{horni plovouci objekt jeste neni podporovan} \setinterfacemessage{columns}{7}{vyvazovani ukonceno po 100 krocich} \setinterfacemessage{columns}{6}{-- plovouci objekt(y) odlozeny} \setinterfacemessage{columns}{9}{kontrola nerovnost} \setinterfacemessage{columns}{8}{vyvazeno v -- krocich} \setinterfacemessage{columns}{title}{sloupce} \setinterfacemessage{columns}{13}{siroky plovouci objekt je presunut nad sloupce} \setinterfacemessage{columns}{12}{plovouci objekt je presunut do nasledujiciho sloupce / --} \setinterfacemessage{columns}{11}{plovouci objekt je pro sloupec prilis siroky} \setinterfacemessage{columns}{10}{zbyl (mene nez) 1 radek} \setinterfacemessage{symbols}{1}{nacita se soubor symbolu --} \setinterfacemessage{symbols}{title}{symboly} \setinterfacemessage{files}{1}{synonymum souboru -- je jiz pouzito pro --} \setinterfacemessage{files}{title}{soubory} \setinterfacemessage{versions}{1}{postradam @+} \setinterfacemessage{versions}{3}{oznacene strany: --} \setinterfacemessage{versions}{2}{oznacuji se strany} \setinterfacemessage{versions}{title}{verze} \setinterfacemessage{specials}{1}{-- nacteno} \setinterfacemessage{specials}{3}{-- je resetovano} \setinterfacemessage{specials}{2}{neni dovoleno hlubsi zanoreni --} \setinterfacemessage{specials}{5}{nacita se definicni soubor --} \setinterfacemessage{specials}{4}{prikaz -- neexistuje} \setinterfacemessage{specials}{7}{neznamy ovladac (driver) --} \setinterfacemessage{specials}{6}{zanoreni neni dovoleno} \setinterfacemessage{specials}{title}{speciality} \setinterfacemessage{layouts}{1}{vyska textu prizpusobena s -- na strane --} \setinterfacemessage{layouts}{3}{-- krat text odlozen} \setinterfacemessage{layouts}{2}{-- krat odlozeny text umisten} \setinterfacemessage{layouts}{5}{okrajove bloky neaktivni} \setinterfacemessage{layouts}{4}{okrajove bloky aktivni} \setinterfacemessage{layouts}{7}{pocita se misto pro logo} \setinterfacemessage{layouts}{6}{sada stran -- zpracovana (velikost --)} \setinterfacemessage{layouts}{9}{aktualne ne vice nez -- urovne/urovni vyctu} \setinterfacemessage{layouts}{8}{pocita se pozadi} \setinterfacemessage{layouts}{title}{layout} \setinterfacemessage{layouts}{11}{svisla mezera -- neni povolena v pevnem radkovem rejstriku} \setinterfacemessage{layouts}{10}{-- a -- nedava dohromady 1.0} \setinterfacemessage{fonts}{1}{kodovani --} \setinterfacemessage{fonts}{3}{neznama varianta --} \setinterfacemessage{fonts}{2}{varianta -- je nactena} \setinterfacemessage{fonts}{5}{styl -- neni definovan} \setinterfacemessage{fonts}{4}{zakladni font -- neni definovan} \setinterfacemessage{fonts}{7}{neznamy format --} \setinterfacemessage{fonts}{6}{-- je nacten} \setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)} \setinterfacemessage{fonts}{8}{styl -- definovan} \setinterfacemessage{fonts}{title}{zakladnifont} \setinterfacemessage{fonts}{10}{neznamy font --} \setinterfacemessage{databases}{1}{--} \setinterfacemessage{databases}{3}{global file --} \setinterfacemessage{databases}{2}{local file --} \setinterfacemessage{databases}{4}{unknown file --} \setinterfacemessage{databases}{title}{databases} \setinterfacemessage{publications}{1}{file -- not found, unknown style ignored} \setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux} \setinterfacemessage{publications}{title}{publications} \setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex} \setinterfacemessage{publications}{4}{loading database from --} \setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno} \setinterfacemessage{publications}{6}{loading formatting style from --} \setinterfacemessage{javascript}{1}{nacita se soubor skriptu --} \setinterfacemessage{javascript}{title}{javascript} \setinterfacemessage{javascript}{2}{neznama preambule --} \setinterfacemessage{check}{1}{postradam '=' po '--' na radku --} \setinterfacemessage{check}{3}{-- -- nahrazuje makro, uzijte VERZALKY!} \setinterfacemessage{check}{2}{ocekavam -- argument(y) na radku --} \setinterfacemessage{check}{title}{kontrola} \setinterfacemessage{metapost}{1}{loading metapost library --} \setinterfacemessage{metapost}{title}{metapost} \setinterfacemessage{figures}{1}{obraz -- nelze nalezt} \setinterfacemessage{figures}{3}{dimensions of -- are determined externally} \setinterfacemessage{figures}{2}{obraz -- nepritomen} \setinterfacemessage{figures}{5}{dimensions of -- are unknown} \setinterfacemessage{figures}{4}{dimenze obrazu -- nacteny primo z jeho souboru} \setinterfacemessage{figures}{6}{dimenze obrazu -- spocteny programem rlxtools} \setinterfacemessage{figures}{8}{obrazovy objekt -- je znovu pouzit} \setinterfacemessage{figures}{title}{obrazy} \setinterfacemessage{colors}{1}{system -- je globalne aktivovana} \setinterfacemessage{colors}{3}{-- neni definovana --} \setinterfacemessage{colors}{2}{system -- je lokalne activovana} \setinterfacemessage{colors}{5}{neznamy system --} \setinterfacemessage{colors}{4}{system -- je nacten} \setinterfacemessage{colors}{7}{palette -- neni k dispozici} \setinterfacemessage{colors}{6}{palette -- je k dispozici} \setinterfacemessage{colors}{9}{-- prostor barev neni podporovan} \setinterfacemessage{colors}{8}{specifikace -- v barve -- bude cerna} \setinterfacemessage{colors}{title}{barva} \setinterfacemessage{colors}{12}{-- is registered} \setinterfacemessage{colors}{11}{barva je prevedena na sed} \setinterfacemessage{colors}{10}{-- prostor barev je podporovan} % \endinputcontext-modules-20240428/texmf-dist/tex/context/base/mkii/math-arr.mkii0000644000175000017500000004035514536300610024675 0ustar hillehille%D \module %D [ file=math-ext, %D version=2007.07.19, %D title=\CONTEXT\ Math Macros, %D subtitle=Arrows, %D author={Hans Hagen \& Taco Hoekwater \& Aditya Mahajan}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Math Macros / Arrows} \unprotect %D These will be generalized! Is it still needed in \MKIV? %D We next define extensible arrows. Extensible arrows are arrows that %D change their length according to the width of the text to be placed %D above and below the arrow. Since we need to define a lot of arrows, %D we first define some helper macros. The basic idea is to measure %D the width of the box to be placed above and below the arrow, and %D make the \quotation{body} of the arrow as long as the bigger of the %D two widths. \def\mtharrfactor{1} \def\mtharrextra {0} \def\domthxarr#1#2#3#4#5% hm, looks like we do a double mathrel {\begingroup \def\mtharrfactor{1}% \def\mtharrextra {0}% \processaction[#1] % will be sped up [ \v!none=>\def\mtharrfactor{0}, \v!small=>\def\mtharrextra{10}, \v!medium=>\def\mtharrextra{15}, \v!big=>\def\mtharrextra{20}, \v!normal=>, \v!default=>, \v!unknown=>\doifnumberelse{#1}{\def\mtharrextra{#1}}\donothing]% \mathsurround\zeropoint \muskip0=\thirdoffourarguments #2mu \muskip2=\fourthoffourarguments #2mu \muskip4=\firstoffourarguments #2mu \muskip6=\secondoffourarguments #2mu \muskip0=\mtharrfactor\muskip0 \advance\muskip0 \mtharrextra mu \muskip2=\mtharrfactor\muskip2 \advance\muskip2 \mtharrextra mu \setbox0\hbox{$\scriptstyle \mkern\muskip4\relax \mkern\muskip0\relax #5\relax \mkern\muskip2\relax \mkern\muskip6\relax $}% \setbox4\hbox{#3\displaystyle}% \dimen0\wd0 \ifdim\wd4>\dimen0 \dimen0\wd4 \fi \setbox2\hbox{$\scriptstyle \mkern\muskip4\relax \mkern\muskip0\relax #4\relax \mkern\muskip2\relax \mkern\muskip6\relax $}% \ifdim\wd2>\dimen0 \dimen0\wd2 \fi \setbox4\hbox to \dimen0{#3\displaystyle}% \mathrel{\mathop{\hbox to \dimen0{\hss\copy4\hss}}\limits^{\box0}_{\box2}} \endgroup} \let\domthxarrsingle\domthxarr %D There are some arrows which are created by stacking two arrows. The next %D macro helps in defining such \quotation{double arrows}. \def\domthxarrdouble#1#2#3#4#5#6#7% opt l r sp rs top bot {\mathrel {\scratchdimen.32ex\relax % was .22, todo: make configurable \setbox0\hbox{$\domthxarr{#1}{#2}{#4}{\phantom{#6}}{#7}$}% \setbox2\hbox{$\domthxarr{#1}{#3}{#5}{#6}{\phantom{#7}}$}% \raise\scratchdimen\box0 \kern-\wd2 \lower\scratchdimen\box2}} %D \macros{definematharrow} %D %D Macro for defining new arrows. We can define two types of %D arrows|<|single arrows and double arrows. Single arrows are defined %D as %D %D \starttyping %D \definematharrow [xrightarrow] [0359] [\rightarrowfill] %D \stoptyping %D %D The first argument is the name of the arrow (\tex{xrightarrow} in %D this case.) The second argument consists of a set of 4 numbers and %D specify the spacing correction in math units~\type{mu}. These %D numbers define: %D %D \startlines %D 1st number: arrow||tip correction %D 2nd number: arrow||tip correction %D 3rd number: space (multiplied by \tex{matharrfactor} and advanced by \tex{matharrextra}) %D 4th number: space (multiplied by \tex{matharrfactor} and advanced by \tex{matharrextra}) %D \stoplines %D %D The third argument is the name of the extensible fill. The third %D argument is optional when the arrow is redefined later (this is %D useful for font specific tweaking of the skips.) For example, %D %D \startbuffer %D \math{\xrightarrow{above}} %D \definematharrow[xrightarrow][0000] %D \math{\xrightarrow{above}} %D \definematharrow[xrightarrow][55{50}{50}] %D \math{\xrightarrow{above}} %D \stopbuffer %D \typebuffer gives {\getbuffer} %D %D The double arrows are defined as follows %D %D \starttyping %D \definematharrow [xrightleftharpoons] [3095,0359] %D [\rightharpoonupfill,\leftharpoondownfill] %D \stoptyping %D %D The second and the third set of arguments consist of comma %D separated values. The first element of the second argument %D (\type{3095}) corresponds to the spacing correction of top arrow %D fill (\tex{rightarrowupfill}). Similarly, \type{0359} corresponds %D to bottom arrow fill \tex{leftharpoondownfill}). Stacking them on %D top of each other we get $\xrightleftharpoons[big]{above}{below}$. %D The following math arrows are defined %D %D \placetable[none]{}{\starttable[|l|m|] %D \NC \tex{xrightarrow } \NC \xrightarrow [big] \NC \NR %D \NC \tex{xleftarrow } \NC \xleftarrow [big] \NC \NR %D \NC \tex{xequal } \NC \xequal [big] \NC \NR %D \NC \tex{xRightarrow } \NC \xRightarrow [big] \NC \NR %D \NC \tex{xLeftarrow } \NC \xLeftarrow [big] \NC \NR %D \NC \tex{xLeftrightarrow } \NC \xLeftrightarrow [big] \NC \NR %D \NC \tex{xleftrightarrow } \NC \xleftrightarrow [big] \NC \NR %D \NC \tex{xmapsto } \NC \xmapsto [big] \NC \NR %D \NC \tex{xtwoheadrightarrow } \NC \xtwoheadrightarrow [big] \NC \NR %D \NC \tex{xtwoheadleftarrow } \NC \xtwoheadleftarrow [big] \NC \NR %D \NC \tex{xrightharpoondown } \NC \xrightharpoondown [big] \NC \NR %D \NC \tex{xrightharpoonup } \NC \xrightharpoonup [big] \NC \NR %D \NC \tex{xleftharpoondown } \NC \xleftharpoondown [big] \NC \NR %D \NC \tex{xleftharpoonup } \NC \xleftharpoonup [big] \NC \NR %D \NC \tex{xhookleftarrow } \NC \xhookleftarrow [big] \NC \NR %D \NC \tex{xhookrightarrow } \NC \xhookrightarrow [big] \NC \NR %D \NC \tex{xleftrightharpoons } \NC \xleftrightharpoons [big] \NC \NR %D \NC \tex{xrightleftharpoons } \NC \xrightleftharpoons [big] \NC \NR %D \stoptable} \def\definematharrow {\doquadrupleargument\dodefinematharrow} \def\dodefinematharrow[#1][#2][#3][#4]% name type[none|both] template command {\iffourthargument \executeifdefined{dodefine#2arrow}\gobblethreearguments{#1}{#3}{#4}% \else\ifthirdargument \dodefinebotharrow{#1}{#2}{#3}% \else\ifsecondargument \redefinebotharrow{#1}{#2}{#3}% \fi\fi\fi} \def\redefinebotharrow#1#2#3% real dirty, this overload! {\doifdefined{#1} {\pushmacro\dohandlemtharrow \def\dohandlemtharrow[##1][##2]{\setvalue{#1}{\dohandlemtharrow[#2][##2]}}% % == \def\dohandlemtharrow[##1][##2]{\dodefinebotharrow{#1}{#2}{##2}}% \getvalue{#1}% \popmacro\dohandlemtharrow}} \def\dodefinebotharrow#1#2#3% {\setvalue{#1}{\dohandlemtharrow[#2][#3]}} \def\dohandlemtharrow {\dotripleempty\doxmtharrow} \def\doxmtharrow[#1][#2][#3]% #3 == optional arg {\def\dodoxmtharrow{\dododoxmtharrow[#1,\empty,\empty][#2,\empty,\empty][#3]}% {##1}{##2} \dodoublegroupempty\dodoxmtharrow} \def\dododoxmtharrow[#1,#2,#3][#4,#5,#6][#7]#8#9% [3] is the optional arg {\edef\!!stringa{#2}% \ifx\!!stringa\empty \ifsecondargument \mathrel{\domthxarrsingle{#7}{#1}{#4}{#8}{#9}}% \else \mathrel{\domthxarrsingle{#7}{#1}{#4}{}{#8}}% \fi \else \ifsecondargument \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{#8}{#9}}% \else \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{}{#8}}% \fi \fi} % Adapted from amsmath. %D \macros{mtharrowfill,defaultmtharrowfill} %D %D To extend the arrows we need to define a \quotation{math arrow %D fill}. This command takes 8 arguments: the first four correspond %D the second argument of \tex{definematharrow} explained above. The %D other three specify the tail, body and head of the arrow. The last %D argument specifies the math-mode in which the arrow is drawn. %D \tex{defaultmtharrowfill} has values tweaked to match Latin Modern %D fonts. For fonts that are significantly different (e.g. cows) a %D different set of values need to be determined. \def\mtharrowfill#1#2#3#4#5#6#7#8% {$\mathsurround 0pt \thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip \relax#8#5% \mkern-#1mu \cleaders\hbox{$#8\mkern -#2mu#6\mkern -#3mu$}\hfill \mkern-#4mu#7$} \def\defaultmtharrowfill{\mtharrowfill 7227} %D We now define some arrow fills that will be used for defining the %D arrows. Plain \TEX\ already defines \tex{leftarrowfill} and %D \tex{rightarrowfill}. The \tex{defaultmtharrowfill} command defines an %D arrowfill that takes an argument (so that it can also be used %D with over and under arrows). However the Plain \TEX\ definitions of %D \tex{leftarrowfill} and \tex{rightarrowfill} do not take this extra %D argument. To be backward compatible with Plain \TEX, we define two %D arrowfills: \tex{specrightarrowfill} which takes an extra argument, and %D \tex{rightarrowfill} which does not. \def\specrightarrowfill {\defaultmtharrowfill \relbar \relbar \rightarrow} \def\specleftarrowfill {\defaultmtharrowfill \leftarrow \relbar \relbar} \def\rightarrowfill {\specrightarrowfill \textstyle} \def\leftarrowfill {\specleftarrowfill \textstyle} \def\equalfill {\defaultmtharrowfill \Relbar \Relbar \Relbar} \def\Rightarrowfill {\defaultmtharrowfill \Relbar \Relbar \Rightarrow} \def\Leftarrowfill {\defaultmtharrowfill \Leftarrow \Relbar \Relbar} \def\Leftrightarrowfill {\defaultmtharrowfill \Leftarrow \Relbar \Rightarrow} \def\leftrightarrowfill {\defaultmtharrowfill \leftarrow \relbar \rightarrow} \def\mapstofill {\defaultmtharrowfill{\mapstochar\relbar} \relbar \rightarrow} \def\twoheadrightarrowfill{\defaultmtharrowfill \relbar \relbar \twoheadrightarrow} \def\twoheadleftarrowfill {\defaultmtharrowfill \twoheadleftarrow \relbar \relbar} \def\rightharpoondownfill {\defaultmtharrowfill \relbar \relbar \rightharpoondown} \def\rightharpoonupfill {\defaultmtharrowfill \relbar \relbar \rightharpoonup} \def\leftharpoondownfill {\defaultmtharrowfill \leftharpoondown \relbar \relbar} \def\leftharpoonupfill {\defaultmtharrowfill \leftharpoonup \relbar \relbar} \def\hookleftfill {\defaultmtharrowfill \leftarrow \relbar{\relbar\joinrel\rhook}} \def\hookrightfill {\defaultmtharrowfill{\lhook\joinrel\relbar}\relbar \rightarrow} \def\relfill {\defaultmtharrowfill \relbar \relbar \relbar} \def\triplerelbar {\mathrel\equiv} \def\triplerelfill{\defaultmtharrowfill\triplerelbar\triplerelbar\triplerelbar} \def\singlebond{{\xrel}} % or \def\singlebond{{\xrel[2]}} \def\doublebond{{\xequal}} \def\triplebond{{\xtriplerel}} %D Now we define most commonly used arrows. These include arrows %D defined in \filename{amsmath.sty}, \filename{extarrows.sty}, %D \filename{extpfel.sty} and \filename{mathtools.sty} packages for %D \LATEX\ (plus a few more). \definematharrow [xrightarrow] [0359] [\specrightarrowfill] \definematharrow [xleftarrow] [3095] [\specleftarrowfill] \definematharrow [xequal] [0099] [\equalfill] \definematharrow [xRightarrow] [0359] [\Rightarrowfill] \definematharrow [xLeftarrow] [3095] [\Leftarrowfill] \definematharrow [xLeftrightarrow] [0099] [\Leftrightarrowfill] \definematharrow [xleftrightarrow] [0099] [\leftrightarrowfill] \definematharrow [xmapsto] [3599] [\mapstofill] \definematharrow [xtwoheadrightarrow] [5009] [\twoheadrightarrowfill] \definematharrow [xtwoheadleftarrow] [0590] [\twoheadleftarrowfill] \definematharrow [xrightharpoondown] [0359] [\rightharpoondownfill] \definematharrow [xrightharpoonup] [0359] [\rightharpoonupfill] \definematharrow [xleftharpoondown] [3095] [\leftharpoondownfill] \definematharrow [xleftharpoonup] [3095] [\leftharpoonupfill] \definematharrow [xhookleftarrow] [3095] [\hookleftfill] \definematharrow [xhookrightarrow] [0395] [\hookrightfill] \definematharrow [xrel] [0099] [\relfill] \definematharrow [xtriplerel] [0099] [\triplerelfill] \definematharrow [xrightoverleftarrow] [0359,3095] [\specrightarrowfill,\specleftarrowfill] \definematharrow [xleftrightharpoons] [3399,3399] [\leftharpoonupfill,\rightharpoondownfill] \definematharrow [xrightleftharpoons] [3399,3399] [\rightharpoonupfill,\leftharpoondownfill] %D These arrows can be used as follows: %D %D \startbuffer %D \startformula \xrightarrow{stuff on top}\stopformula %D \startformula \xrightarrow{}{stuff on top}\stopformula %D \startformula \xrightarrow{stuff below}{}\stopformula %D \startformula \xrightarrow{stuff below}{stuff on top}\stopformula %D %D \startformula \xleftarrow [none]{stuff below}{stuff on top}\stopformula %D \startformula \xleftarrow [small]{stuff below}{stuff on top}\stopformula %D \startformula \xleftarrow [medium]{stuff below}{stuff on top}\stopformula %D \startformula \xleftarrow [big]{stuff below}{stuff on top}\stopformula %D \stopbuffer %D %D \typebuffer which gives \getbuffer %D \macros{definemathoverarrow,defineunderarrow} %D %D These macros for define math-overarrows are adapted from %D \filename{amsmath.sty} \def\definemathoverarrow {\dotripleargument\dodefinemathoverarrow} \def\dodefinemathoverarrow[#1][#2][#3]% {\ifthirdargument \setvalue{#1}{\dohandlemathoverarrow[#2][#3]}% \else \setvalue{#1}{\dohandlemathoverarrow[\zeropoint][#2]}% \fi} \def\dohandlemathoverarrow[#1][#2]% {\mathpalette{\dodohandlemathoverarrow{#1}{#2}}} %D Note: \filename{math-pln.tex} has \type{\kern-\onepoint} and %D \filename{amsmath.sty} does not. We keep the kern amount %D configurable. This is useful for harpoons. \def\dodohandlemathoverarrow#1#2#3#4% {\vbox{\ialign{##\crcr #2#3\crcr \noalign{\kern#1\nointerlineskip}% $\mathsurround\zeropoint\hfil#3#4\hfil$\crcr}}} %D Now the under arrows \def\definemathunderarrow {\dotripleargument\dodefinemathunderarrow} %D For underarrows the default kern is 0.3ex \def\dodefinemathunderarrow[#1][#2][#3]% {\ifthirdargument \setvalue{#1}{\dohandlemathunderarrow[#2][#3]}% \else \setvalue{#1}{\dohandlemathunderarrow[0.3ex][#2]}% \fi} \def\dohandlemathunderarrow[#1][#2]% {\mathpalette{\dodohandlemathunderarrow{#1}{#2}}} \def\dodohandlemathunderarrow#1#2#3#4% {\vtop{\ialign{##\crcr $\mathsurround\zeropoint\hfil#3#4\hfil$\crcr \noalign{\nointerlineskip\kern#1}% #2#3\crcr}}} %D Now we define the arrows \definemathoverarrow [overleftarrow] [\specleftarrowfill] \definemathoverarrow [overrightarrow] [\specrightarrowfill] \definemathoverarrow [overleftrightarrow] [\leftrightarrowfill] \definemathoverarrow [overtwoheadrightarrow] [\twoheadrightarrowfill] \definemathoverarrow [overtwoheadleftarrow] [\twoheadleftarrowfill] \definemathoverarrow [overrightharpoondown] [1pt] [\rightharpoondownfill] \definemathoverarrow [overrightharpoonup] [\rightharpoonupfill] \definemathoverarrow [overleftharpoondown] [1pt] [\leftharpoondownfill] \definemathoverarrow [overleftharpoonup] [\leftharpoonupfill] \definemathunderarrow [underleftarrow] [\specleftarrowfill] \definemathunderarrow [underrightarrow] [\specrightarrowfill] \definemathunderarrow [underleftrightarrow] [\leftrightarrowfill] \definemathunderarrow [undertwoheadrightarrow][\twoheadrightarrowfill] \definemathunderarrow [undertwoheadleftarrow] [\twoheadleftarrowfill] \definemathunderarrow [underrightharpoondown] [\rightharpoondownfill] \definemathunderarrow [underrightharpoonup] [\rightharpoonupfill] \definemathunderarrow [underleftharpoondown] [\leftharpoondownfill] \definemathunderarrow [underleftharpoonup] [\leftharpoonupfill] %D These can be used as follows: %D %D \startbuffer %D $\overleftarrow{A}$ $\overleftarrow{ABC}$ %D $a_{\overleftarrow{A}}$ $b_{\overleftarrow{ABC}}$ %D \stopbuffer %D \typebuffer which gives \getbuffer %D TODO: Possibly have a single arrow command define all the arrows. \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/prop-ini.mkii0000644000175000017500000001132614536300610024713 0ustar hillehille%D \module %D [ file=prop-ini, %D version=2003.04.20, %D title=\CONTEXT\ Property Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Property Macros / Initialization} %D Welcome to the third alternative of this yet undocumented module, %D which means that there is no public interface yet! \unprotect \newcount\propertylevel \def\currentpropertylevel {\csname\??py:l:\currentpropertytype\endcsname} % counter \def\previouspropertylevel{\csname\??py:p:\currentpropertytype\endcsname} % counter \def\currentproperty {\csname\??py:c:\number\currentpropertylevel \endcsname} % string \def\previousproperty {\csname\??py:c:\number\previouspropertylevel\endcsname} % string % more efficient: \def\currentproperty {\csname\??py:c:\number\propertylevel\endcsname} % string \def\currentpropertytype {\csname\??py\currentproperty\c!type\endcsname} \def\docheckproperty % watch the s instead of e {\csname\s!check\currentpropertytype property\endcsname \global\expandafter\let\csname\??py\s!check\currentproperty\endcsname\empty} \def\checkproperty[#1]% {\bgroup \def\currentproperty{#1}% \csname\??py\s!check\currentproperty\endcsname \egroup} \unexpanded\def\property[#1]% {\groupedcommand{\dostartproperty{#1}}\dostopproperty} \unexpanded\def\startproperty[#1]% {\dostartproperty{#1}} \unexpanded\def\stopproperty {\dostopproperty} \def\dostartgproperty {\begingroup\dostartproperty} \def\dostopgproperty {\dostopproperty\endgroup} \def\dostartproperty#1% evt pack: {current}{level}{ {\global\advance\propertylevel\plusone \@EAEAEA\xdef\currentproperty{#1}% \global\advance\previouspropertylevel\plusone \global\advance\currentpropertylevel\plusone \csname\??py\s!check\currentproperty\endcsname \csname\s!start\currentpropertytype\s!property\endcsname} \def\dostopproperty {\csname\s!stop\currentpropertytype\s!property\endcsname \global\advance\currentpropertylevel\minusone \global\advance\previouspropertylevel\minusone \global\advance\propertylevel\minusone} \def\defineproperty {\dotripleempty\dodefineproperty} \def\dodefineproperty[#1]% {\ifcsname\??py#1\c!global\endcsname \expandafter\nododefineproperty \else \expandafter\dododefineproperty \fi[#1]} % due to initializations/counters, definitions are always global % % global : yes : ungrouped % no : grouped % method : command : define commands % none : no commands \def\dododefineproperty[#1][#2][#3]% global ! ! ! {\getgparameters[\??py#1][\c!global=\v!no,\c!type=#2,\c!method=\v!none,#3]% global ! ! ! ! \ifcsname\??py:l:#2\endcsname \else \expandafter\newcount\csname\??py:l:#2\endcsname % current level \expandafter\newcount\csname\??py:p:#2\endcsname % previous level \global\csname\??py:p:#2\endcsname\minusone \global\expandafter\expandafter\let\csname\??py:c:0\endcsname\empty \fi \letgvalue{\??py\s!check#1}\docheckproperty \doifelsevalue{\??py#1\c!method}\v!command {\doifelsevalue{\??py#1\c!global}\v!yes {\setgvalue{\e!start#1}{\dostartproperty{#1}}% \letgvalue{\e!stop #1}\dostopproperty}% {\setgvalue{\e!start#1}{\dostartgproperty{#1}}% \letgvalue{\e!stop #1}\dostopgproperty}}% {\doifelsevalue{\??py#1\c!global}\v!yes {\setgvalue{\e!start#2}[##1]{\dostartproperty{##1}}% \letgvalue{\e!stop #2}\dostopproperty}% {\setgvalue{\e!start#2}[##1]{\dostartgproperty{##1}}% \letgvalue{\e!stop #2}\dostopgproperty}}} \def\nododefineproperty[#1][#2][#3]% {} \def\doifelseproperty#1{\doifdefinedelse{\??py#1\c!global}} \def\setupproperty {\dodoubleempty\dosetupproperty} \def\dosetupproperty[#1][#2]% local {\ifsecondargument \getparameters[\??py#1][#2]% \else \getparameters[\??py][#1]% \fi} \letvalue{\??py\s!empty}\empty % beware, normally \*parameter concerns the current one \def\propertyparameter#1#2% expands to #1 when not defined (see \define...) {\csname\??py \ifcsname\??py#1#2\endcsname #1#2% \else\ifcsname\??py\csname\??py#1\c!type\endcsname#2\endcsname \csname\??py#1\c!type\endcsname#2% \else \s!empty \fi\fi \endcsname} \def\currentpropertyparameter % self and class {\propertyparameter\currentproperty} \def\checkedpropertyparameter#1% only self {\executeifdefined{\??py\currentproperty#1}} \def\definepropertyhandler#1{\setvalue{\??py*#1}} \def\propertyhandler #1{\getvalue{\??py*#1}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-pdf.mkii0000644000175000017500000026166114536300610024664 0ustar hillehille%D \module %D [ file=meta-pdf, %D version=2006.06.07, %D title=\METAPOST\ Graphics, %D subtitle=Conversion to \PDF, %D author=Hans Hagen \& others (see text), %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Formerly known as supp-pdf.tex and supp-mpe.tex. %D We will clean up the color mess later. %D These macros are written as generic as possible. Some %D general support macro's are loaded from a small module %D especially made for non \CONTEXT\ use. In this module I %D use a matrix transformation macro written by Tanmoy %D Bhattacharya. Thanks to extensive testing by Sebastian %D Ratz I was able to complete this module within reasonable %D time. This module has support for \METAPOST\ extensions %D built in. %D %D Daniel H. Luecking came up with a better (more precise) %D transformation method. You can recognize his comment by %D his initials. (We keep the old code around because it's a %D nice illustration on how a module like this evolves.) % Beware, we cannot use 0pt here by defaukt since it may be % defined in the range \dimen 0 - 20 which we happen to use % as scratch registers; for this reason we start allocating % scratch registers > 20 %D This module handles some \PDF\ conversion and insertions %D topics. By default, the macros use the \PDFTEX\ primitive %D \type{\pdfliteral} when available. Since \PDFTEX\ is now the %D default engine for \TEX\ distributions, we need a more complex %D test. \writestatus{loading}{MetaPost Graphics / MPS to PDF} \unprotect \ifx\PDFcode \undefined \let\PDFcode \gobbleoneargument \fi \ifx\PDFcomment\undefined \def\PDFcomment#1{\PDFcode{\letterpercent\space#1}} \fi %D First we define a handy constant: \bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup %D \macros %D {pdfimage,pdfimages,pdfclippedimage} %D %D Starting with pdftex version 14, images are included more %D natural to the form embedding. This enables alternative %D images to be embedded. %D %D \starttyping %D \pdfimage {file} %D \pdfimages {high res file} {low res file} %D \stoptyping %D %D The first one replaces the pre||version||14 original, %D while the latter provides alternative images. %D %D The next macro is dedicated to Maarten Gelderman, who %D needed to paste prepared \PDF\ pages into conference %D proceedings. %D %D \starttyping %D \pdfclippedimage {file} {l} {r} {t} {b} %D \stoptyping \ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13 % still relevant? \def\pdfimage#1#% {\dopdfimage{#1}} \def\dopdfimage#1#2% {\immediate\pdfximage#1{#2}% \pdfrefximage\pdflastximage} \def\pdfimages#1#% {\dopdfimages{#1}} \def\dopdfimages#1#2#3% {\immediate\pdfximage#1{#2}% \immediate\pdfobj{[ << /Image \the\pdflastximage\space0 R /DefaultForPrinting true >> ]}% \immediate\pdfximage#1 attr {/Alternates \the\pdflastobj\space0 R}{#3}% \pdfrefximage\pdflastximage} \def\pdfclippedimage#1#% specs {file}{left}{right}{top}{bottom} {\dopdfclippedimage{#1}} \def\dopdfclippedimage#1#2#3#4#5#6% {\bgroup \pdfximage#1{#2}% \setbox\scratchbox\hbox{\pdfrefximage\pdflastximage}% \hsize\dimexpr\wd\scratchbox-#3-#4\relax \vsize\dimexpr\ht\scratchbox-#5-#6\relax \setbox\scratchbox\vbox to \vsize {\vskip-#5\hbox to \hsize{\hskip-#3\box\scratchbox\hss}}% \pdfxform\scratchbox \pdfrefxform\pdflastxform \egroup} \fi \fi %D \macros %D {convertMPtoPDF} %D %D The next set of macros implements \METAPOST\ to \PDF\ %D conversion. The traditional method is in the MkII file. %D The main conversion command is: %D %D \starttyping %D \convertMPtoPDF {filename} {x scale} {y scale} %D \stoptyping %D %D The dimensions are derived from the bounding box. So we %D only have to say: %D %D \starttyping %D \convertMPtoPDF{mp-pra-1.eps}{1}{1} %D \convertMPtoPDF{mp-pra-1.eps}{.5}{.5} %D \stoptyping %D \macros %D {makeMPintoPDFobject,lastPDFMPobject} %D %D For experts there are a few more options. When attributes %D are to be added, the code must be embedded in an object %D accompanied with the appropriate directives. One can %D influence this process with \type {\makeMPintoPDFobject}. %D %D This option defaults to~0, because \CONTEXT\ takes care %D of objects at another level, which saves some bytes. %D %D \starttabulate[|l|l|p|] %D \NC 0 \NC never \NC don't use an object \NC\NR %D \NC 1 \NC always \NC always use an object \NC\NR %D \NC 2 \NC optional \NC use object when needed \NC\NR %D \stoptabulate %D %D The last object number used is avaliable in the macro %D \type {\lastPDFMPobject}. \ifx\makeMPintoPDFobject \undefined \newcount\makeMPintoPDFobject \fi \ifx\blackoutMPgraphic \undefined \chardef\blackoutMPgraphic\plusone \fi \ifx\everyMPtoPDFconversion\undefined \newtoks\everyMPtoPDFconversion \fi \let\lastPDFMPobject \!!zerocount \let\currentPDFresources\empty \let\setMPextensions \relax \def\PDFMPformoffset {\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi} \def\resetMPvariables#1#2#3% {\global\let\MPwidth \!!zeropoint \global\let\MPheight\!!zeropoint \global\let\MPllx \!!zerocount \global\let\MPlly \!!zerocount \global\let\MPurx \!!zerocount \global\let\MPury \!!zerocount \xdef\MPxscale {#2}\ifx\MPxscale\empty\let\MPxscale\!!plusone\fi \xdef\MPyscale {#3}\ifx\MPyscale\empty\let\MPyscale\!!plusone\fi \xdef\MPfilename {#1}} %D The main macro: \def\convertMPtoPDF#1#2#3% {\resetMPvariables{#1}{#2}{#3}% \vbox\bgroup \forgetall \offinterlineskip \ifx\pdfdecimaldigits\undefined\else \pdfdecimaldigits=5 \fi % new \global\let\MPheight\!!zeropoint \global\let\MPwidth \!!zeropoint \setbox\scratchbox\vbox\bgroup \message{[MP to PDF]}% \startMPresources \PDFcomment{mps begin}% \PDFcode{q}% \PDFcode{1 0 0 1 0 0 cm}% \ifcase\blackoutMPgraphic\or\PDFcode{0 g 0 G}\fi \doprocessMPtoPDFfile} \def\processMPtoPDFfile#1#2#3% obsolete {\resetMPvariables{#1}{#2}{#3}% \bgroup \let\finishMPgraphic\egroup \doprocessMPtoPDFfile} \def\doprocessMPtoPDFfile {\setMPspecials \setMPextensions \the\everyMPtoPDFconversion \catcode`\^^M=\@@endofline \startMPscanning \let\do\empty \donefalse \let\handleMPsequence\dohandleMPsequence \input\MPfilename\relax} \def\finishMPgraphic {\PDFcode{Q}% \PDFcomment{mps end}% \stopMPresources \egroup \setbox\scratchbox\hbox\bgroup \hskip-\MPllx\onebasepoint \raise-\MPlly\onebasepoint \box\scratchbox \egroup \setbox\scratchbox\vbox to \MPheight\bgroup \vfill \hsize\MPwidth \smashbox\scratchbox \box\scratchbox \egroup \wd\scratchbox\MPwidth \ht\scratchbox\MPheight \dopackageMPgraphic\scratchbox \egroup \endinput} %D A common hook. \let\MPfshowcommand\empty %D Objects. \def\dopackageMPgraphic#1% #1 = boxregister {\ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else % an existing value of 2 signals object support (set elsewhere) \makeMPintoPDFobject\plusone \fi\fi \ifcase\makeMPintoPDFobject \box#1% \or \scratchdimen\PDFMPformoffset\relax \ifdim\scratchdimen>\zeropoint % compensate for error \setbox#1\vbox spread 2\scratchdimen {\forgetall\vss\hbox spread 2\scratchdimen{\hss\box#1\hss}\vss}% \fi \setMPPDFobject{\currentPDFresources}{#1}% \ifdim\scratchdimen>\zeropoint % compensate for error \vbox to \MPheight {\forgetall\vss\hbox to \MPwidth{\hss\getMPPDFobject\hss}\vss}% \else \getMPPDFobject \fi \global\let\currentPDFresources\empty \else \box#1% \fi} \def\setMPPDFobject#1#2% resources boxnumber {\ifx\pdfxform\undefined \def\getMPPDFobject{\box#2}% \else\ifx\pdftexversion\undefined \def\getMPPDFobject{\box#2}% \else\ifnum\pdftexversion<14 \def\getMPPDFobject{\box#2}% \else \ifx\everyPDFxform\undefined\else\the\everyPDFxform\fi \immediate\pdfxform resources{#1}#2% \edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}% \fi\fi\fi} \let\getMPPDFobject\relax %D \macros %D {deleteMPgraphic, %D startMPresources, %D stopMPresources} \ifx\deleteMPgraphic\undefined \def\deleteMPgraphic#1{} \fi \ifx\startMPresources\undefined \let\startMPresources\relax \let\stopMPresources\relax \fi %D We implement extensions by using the \METAPOST\ special %D mechanism. Opposite to \TEX's specials, the \METAPOST\ ones %D are flushed before or after the graphic data, but thereby %D are no longer connected to a position. %D %D We implement specials by overloading the \type {fill} %D operator. By counting the fills, we can let the converter %D treat the appropriate fill in a special way. The %D specification of the speciality can have two forms, %D determined by the setting of a boolean variable: %D %D \starttyping %D _inline_specials_ := false ; % comment like code (default) %D _inline_specials_ := true ; % command like code %D \stoptyping %D %D When the specification is embedded as comment, it looks %D like: %D %D \starttyping %D %%MetaPostSpecial %D \stoptyping %D %D The in||line alternative is more tuned for \POSTSCRIPT, %D since it permits us to define a macro \type {special}. %D %D \starttyping %D inline : special %D \stoptyping %D %D The \type {identifier} determines what to do, and the data %D can be used to accomplish this. A type~2 shading function %D has identifier~2. Alltogether, the number of parameters is %D specified in \type {size}. The \type {number} is the number %D of the fill that needs the special treatment. For a type~2 %D and~3 shaded fill, the datablock contains the following %D data: %D %D \starttyping %D from to n inner_r g b x y outer_r g b x y %D from to n inner_r g b x y radius outer_r g b x y radius %D \stoptyping \newconditional\manyMPspecials \settrue\manyMPspecials %D In case of \PDF, we need to prepare resourcs. \newtoks\MPstartresources \newtoks\MPstopresources \def\startMPresources {\the\MPstartresources} \def\stopMPresources {\the\MPstopresources} %D Some day we may consider collecting local resources. \appendtoks \global\let\currentPDFresources\empty % kind of redundant \to \MPstartresources % \appendtoks % \collectPDFresources % \global\let\currentPDFresources\collectedPDFresources % \to \MPstopresources \appendtoksonce \the\everyPDFxform \to \MPstopresources %D Since colors are not subjected to transformations, we can %D only use colors as signal. In our case, we use a dummy colored %D path with a red color component of \type {0.n}, so \type %D {0.001} is the first path and \type {0.010} the tenth. Since %D \METAPOST strips trailing zeros, we have to padd the string. \newif\ifMPcmykcolors \newif\ifMPspotcolors \def\dohandleMPrgb #1#2#3{\revokeMPtransparencyspecial\execcolorR #1:#2:#3:0:0\od} \def\dohandleMPcmyk#1#2#3#4{\revokeMPtransparencyspecial\execcolorC#1:#2:#3:#4:0:0\od} \def\dohandleMPgray #1{\revokeMPtransparencyspecial\execcolorS #1:0:0\od} \def\dohandleMPspot#1#2#3#4{\revokeMPtransparencyspecial\execcolorP#1:#2:#3:#4:0:0\od} %D Specials: \settrue \manyMPspecials \newcount\nofMParguments \let\extraMPpathcode\empty \def\@@MP {@@MP} \def\@@MPSK{@MPSK@} \def\MPspecial{\@@MPSK\@@MPSK\gMPs\nofMParguments} \def\defineMPspecial#1#2% {\setvalue{\@@MPSK\@@MPSK#1}{#2}} %D Special number~1 is dedicated to \CMYK\ support. If you %D want to know why: look at this: %D %D \startbuffer[mp] %D fill fullcircle xyscaled (3cm,1cm) withcolor \MPcolor{test} ; %D \stopbuffer %D %D \startbuffer[cmyk] %D \startcombination[4*1] %D {\definecolor[test][c=1,y=.3,k=.3] \processMPbuffer[mp]} {c=1 y=.3 k=.3} %D {\definecolor[test][c=.9,y=.15] \processMPbuffer[mp]} {c=.9 y=.15} %D {\definecolor[test][c=.25,y=.8] \processMPbuffer[mp]} {c=.25 y=.8} %D {\definecolor[test][c=.45,y=.1] \processMPbuffer[mp]} {c=.45 y=.1} %D \stopcombination %D \stopbuffer %D %D \placefigure %D {\CMYK\ support disabled, %D conversion to \RGB.} %D {\setupcolors[cmyk=nee,state=start]\getbuffer[cmyk]} %D %D \placefigure %D {\CMYK\ support enabled, %D no support in \METAPOST.} %D {\setupcolors[cmyk=ja,mpcmyk=nee,state=start]\getbuffer[cmyk]} %D %D \placefigure %D {\CMYK\ support enabled, %D no conversion to \RGB, %D support in \METAPOST} %D {\setupcolors[cmyk=ja,state=start]\getbuffer[cmyk]} \defineMPspecial{1} {\ifMPcmykcolors \setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPcmykcolor{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}}% \fi} \defineMPspecial{2} {\ifMPspotcolors \setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPspotcolor{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}}% % \checkMPspot{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}% \fi} % \def\checkMPspot#1#2#3#4% % {\expanded{\resolveMPspotcolor#1 #2 #3 #4}\end % \ifx\MPspotspace\MPresolvedspace % \edef\MPspotspacespec{/\MPspotspace\space}% % \doifinstringelse\MPspotspacespec\currentMPcolorspaces % \donothing\registerMPcolorspace % \fi} \let\revokeMPtransparencyspecial\relax \def\dohandleMPrgbcolor #1#2#3{\revokeMPtransparencyspecial\execcolorR #1:#2:#3:0:0\od} \def\dohandleMPcmykcolor#1#2#3#4{\revokeMPtransparencyspecial\execcolorC#1:#2:#3:#4:0:0\od} \def\dohandleMPgraycolor #1{\revokeMPtransparencyspecial\execcolorS #1:0:0\od} \def\dohandleMPspotcolor#1#2#3#4{\revokeMPtransparencyspecial\execcolorP#1:#2:#3:#4:0:0\od} %D Transparency support used specials 60 (rgb) and 61 %D (cmyk). %D %D \startbufferFshade %D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0); %D %D fill p rotated 90 withcolor transparent(1,.5,yellow) ; %D fill p rotated 210 withcolor transparent(1,.5,green) ; %D fill p rotated 330 withcolor transparent(1,.5,blue) ; %D \stopbuffer %D %D \typebuffer %D %D \startlinecorrection \processMPbuffer \stoplinecorrection %D %D One can also communicate colors between \CONTEXT\ and %D \METAPOST: %D %D \startbuffer %D \definecolor[tcyan] [c=1,k=.2,t=.5] %D \definecolor[tmagenta][m=1,k=.2,t=.5] %D \definecolor[tyellow] [y=1,k=.2,t=.5] %D \stopbuffer %D %D \typebuffer \getbuffer %D %D \startbuffer %D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0); %D %D fill p rotated 90 withcolor \MPcolor{tcyan} ; %D fill p rotated 210 withcolor \MPcolor{tmagenta} ; %D fill p rotated 330 withcolor \MPcolor{tyellow} ; %D \stopbuffer %D %D \startlinecorrection \processMPbuffer \stoplinecorrection %D %D We save all the three components needed in one macro, %D just to save hash space. \def\dohandleMPrgbtransparency #1#2#3#4#5{\execcolorR #1:#2:#3:#4:#5\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial} \def\dohandleMPcmyktransparency#1#2#3#4#5#6{\execcolorC#1:#2:#3:#4:#5:#6\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial} \def\dohandleMPgraytransparency #1#2#3{\execcolorS #1:#2:#3\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial} \def\dohandleMPspottransparency#1#2#3#4#5#6{\execcolorP#1:#2:#3:#4:#5:#6\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial} \def\dorevokeMPtransparencyspecial {\PDFcode{\PDFtransparencyresetidentifier\space gs}% \let\revokeMPtransparencyspecial\relax} \defineMPspecial{3} % rgb {\setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPrgbtransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs1}{\gMPs2}}} \defineMPspecial{4} % cmyk {\setxvalue{\@@MPSK\gMPs7}{\noexpand\dohandleMPcmyktransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs1}{\gMPs2}}} \defineMPspecial{5} % spot {\setxvalue{\@@MPSK\gMPs7}{\noexpand\dohandleMPspottransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs1}{\gMPs2}}% }%\checkMPspot{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}} %D Shading is an example of a more advanced graphic feature, %D but users will seldom encounter those complications. Here %D we only show a few simple examples, but many other %D alternatives are possible by setting up the functions built %D in \PDF\ in the appropriate way. %D %D Shading has to do with interpolation between two or more %D points or user supplied ranges. In \PDF, the specifications %D of a shade has to be encapsulated in objects and passed on %D as resources. This is a \PDF\ level 1.3. feature. One can %D simulate three dimensional shades as well and define simple %D functions using a limited set of \POSTSCRIPT\ primitives. %D Given the power of \METAPOST\ and these \PDF\ features, we %D can achieve superb graphic effects. %D %D Since everything is hidden in \TEX\ and \METAPOST\ graphics, %D we can stick to high level \CONTEXT\ command, as shown in %D the following exmples. %D %D \startbuffer %D \startuniqueMPgraphic{CircularShade} %D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ; %D circular_shade(p,0,.2red,.9red) ; %D \stopuniqueMPgraphic %D %D \startuniqueMPgraphic{LinearShade} %D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ; %D linear_shade(p,0,.2blue,.9blue) ; %D \stopuniqueMPgraphic %D %D \startuniqueMPgraphic{DuotoneShade} %D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ; %D linear_shade(p,2,.5green,.5red) ; %D \stopuniqueMPgraphic %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D These graphics can be hooked into the overlay mechanism, %D which is available in many commands. %D %D \startbuffer %D \defineoverlay[demo 1][\uniqueMPgraphic{CircularShade}] %D \defineoverlay[demo 2][\uniqueMPgraphic {LinearShade}] %D \defineoverlay[demo 3][\uniqueMPgraphic {DuotoneShade}] %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D These backgrounds can for instance be applied to \type %D {\framed}: %D %D \startbuffer %D \setupframed[width=3cm,height=2cm,frame=off] %D \startcombination[3*1] %D {\framed[backgroundachtergrond=demo 1]{\bfd \white Demo 1}} {} %D {\framed[backgroundachtergrond=demo 2]{\bfd \white Demo 2}} {} %D {\framed[backgroundachtergrond=demo 3]{\bfd \white Demo 3}} {} %D \stopcombination %D \stopbuffer %D %D \typebuffer %D %D \startlinecorrection %D \getbuffer %D \stoplinecorrection %D %D There are a few more alternatives, determined by the second %D parameter passed to \type {circular_shade} and alike. %D %D \def\SomeShade#1#2#3#4#5% %D {\startuniqueMPgraphic{Shade-#1} %D width := \overlaywidth ; %D height := \overlayheight ; %D path p ; p := unitsquare xscaled width yscaled height ; %D #2_shade(p,#3,#4,#5) ; %D \stopuniqueMPgraphic %D \defineoverlay[Shade-#1][\uniqueMPgraphic{Shade-#1}]% %D \framed[backgroundachtergrond=Shade-#1,width=2cm,height=2cm,frame=off]{}} %D %D \startlinecorrection %D \startcombination[5*1] %D {\SomeShade{10}{circular}{0}{.3blue}{.9blue}} {circular 0} %D {\SomeShade{11}{circular}{1}{.3blue}{.9blue}} {circular 1} %D {\SomeShade{12}{circular}{2}{.3blue}{.9blue}} {circular 2} %D {\SomeShade{13}{circular}{3}{.3blue}{.9blue}} {circular 3} %D {\SomeShade{14}{circular}{4}{.3blue}{.9blue}} {circular 4} %D \stopcombination %D \stoplinecorrection %D %D \blank %D %D \startlinecorrection %D \startcombination[5*1] %D {\SomeShade{20}{circular}{0}{.9green}{.3green}} {circular 0} %D {\SomeShade{21}{circular}{1}{.9green}{.3green}} {circular 1} %D {\SomeShade{22}{circular}{2}{.9green}{.3green}} {circular 2} %D {\SomeShade{23}{circular}{3}{.9green}{.3green}} {circular 3} %D {\SomeShade{24}{circular}{4}{.9green}{.3green}} {circular 4} %D \stopcombination %D \stoplinecorrection %D %D \blank %D %D \startlinecorrection %D \startcombination[4*1] %D {\SomeShade{30}{linear}{0}{.3red}{.9red}} {linear 0} %D {\SomeShade{31}{linear}{1}{.3red}{.9red}} {linear 1} %D {\SomeShade{32}{linear}{2}{.3red}{.9red}} {linear 2} %D {\SomeShade{33}{linear}{3}{.3red}{.9red}} {linear 3} %D \stopcombination %D \stoplinecorrection %D %D These macros closely cooperate with the \METAPOST\ module %D \type {mp-spec.mp}, which is part of the \CONTEXT\ %D distribution. %D %D The low level (\PDF) implementation is based on the \TEX\ %D based \METAPOST\ to \PDF\ converter. Shading is supported %D by overloading the \type {fill} operator as implemented %D earlier. In \PDF\ type~2 and~3 shading functions are %D specified in terms of: %D %D \starttabulate[|Tl|l|] %D \NC /Domain \NC sort of meeting range \NC \NR %D \NC /C0 \NC inner shade \NC \NR %D \NC /C1 \NC outer shade \NC \NR %D \NC /N \NC smaller values, bigger inner circles \NC \NR %D \stoptabulate \newcount\currentPDFshade % 0 % global (document wide) counter % \def\dosetMPsomePDFshade#1#2% generic but needs refs % {\global\advance\currentPDFshade \plusone % \doPDFdictionaryobject{FDF}{ftn:Sh:\the\currentPDFshade} % {/FunctionType 2 % /Domain [\gMPs1 \gMPs2] % /C0 [\MPshadeA] % /C1 [\MPshadeB] % /N \gMPs3}% % \doPDFgetobjectreference{FDF}{ftn:Sh:\the\currentPDFshade}\PDFobjectreference % \doPDFdictionaryobject{FDF}{obj:Sh:\the\currentPDFshade} % {/ShadingType #1 % /ColorSpace /\MPresolvedspace % /Function \PDFobjectreference\space % /Coords [\MPshadeC] % /Extend [true true]}% % \doPDFgetobjectreference{FDF}{obj:Sh:\the\currentPDFshade}\PDFobjectreference % \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space\PDFobjectreference}% % \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}} \def\dosetMPsomePDFshade#1#2% {\immediate\pdfobj {<>}% \immediate\pdfobj {<>}% \global\advance\currentPDFshade \plusone \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space\the\pdflastobj\space0 R }% \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}} \def\dosetMPlinearshade {\dosetMPsomePDFshade2}% #1 \def\dosetMPcircularshade{\dosetMPsomePDFshade3}% #1 \defineMPspecial{30} {\expanded{\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA \expanded{\resolveMPrgbcolor{\gMPs{9}}{\gMPs{10}}{\gMPs{11}}}\to\MPshadeB \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs{12} \gMPs{13}}% \dosetMPlinearshade{\gMPs{14}}} \defineMPspecial{31} {\expanded{\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA \expanded{\resolveMPrgbcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}}\to\MPshadeB \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}}% \dosetMPcircularshade{\gMPs{16}}} \defineMPspecial{32} {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA \expanded{\resolveMPcmykcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}% \dosetMPlinearshade{\gMPs{16}}} \defineMPspecial{33} {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA \expanded{\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}% \dosetMPcircularshade{\gMPs{18}}} \defineMPspecial{34} {\expanded{\resolveMPspotcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA \expanded{\resolveMPspotcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}% \dosetMPlinearshade{\gMPs{16}}} \defineMPspecial{35} {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA \expanded{\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}% \dosetMPcircularshade{\gMPs{18}}} \newconditional\ignoreMPpath \def\dohandleMPshade#1% {\revokeMPtransparencyspecial \settrue\ignoreMPpath \def\extraMPpathcode{/Sh#1 sh Q}% \chardef\finiMPpath\zerocount \PDFcode{q /Pattern cs}} %D Figure inclusion is kind of strange to \METAPOST, but when %D Santiago Muelas started discussing this with me, I was able %D to cook up a solution using specials. \defineMPspecial{10} {\setxvalue{\@@MPSK\gMPs8}% {\noexpand\handleMPfigurespecial{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}{\gMPs8}}} \def\handleMPfigurespecial#1#2#3#4#5#6#7#8% todo : combine with ext fig {\global\letvalue{\@@MPSK#8}\empty \vbox to \zeropoint {\vss \hbox to \zeropoint {\ifcase\pdfoutput\or % will be hooked into the special driver \doiffileelse{#7} {\doifundefinedelse{mps:x:#7} {\immediate\pdfximage\!!width\onebasepoint\!!height\onebasepoint{#7}% \setxvalue{mps:x:#7}{\pdfrefximage\the\pdflastximage}}% {\message{[reusing figure #7]}}% \PDFcode{q #1 #2 #3 #4 #5 #6 cm}% \rlap{\getvalue{mps:x:#7}}% \PDFcode{Q}} {\message{[unknown figure #7]}}% \fi \hss}}} %D An example of using both special features is the %D following. %D %D \starttyping %D \startMPpage %D externalfigure "hakker1b.png" scaled 22cm rotated 10 shifted (-2cm,0cm); %D externalfigure "hakker1b.png" scaled 10cm rotated -10 ; %D externalfigure "hakker1b.png" scaled 7cm rotated 45 shifted (8cm,12cm) ; %D path p ; p := unitcircle xscaled 15cm yscaled 20cm; %D path q ; q := p rotatedaround(center p,90) ; %D path r ; r := buildcycle(p,q) ; clip currentpicture to r ; %D path s ; s := boundingbox currentpicture enlarged 5mm ; %D picture c ; c := currentpicture ; currentpicture := nullpicture ; %D circular_shade(s,0,.2red,.9red) ; %D addto currentpicture also c ; %D \stopMPpage %D \stoptyping %D This is some experimental hyperlink driver that I wrote %D for Mark Wicks. \defineMPspecial{20} {\setxvalue{\@@MPSK\gMPs6}% {\noexpand\handleMPhyperlink{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}}} \def\handleMPhyperlink#1#2#3#4#5#6% {\global\letvalue{\@@MPSK#6}\empty \setbox\scratchbox\hbox {\setbox\scratchbox\null \wd\scratchbox\dimexpr-#1\onebasepoint+#3\onebasepoint\relax \ht\scratchbox\dimexpr-#2\onebasepoint+#4\onebasepoint\relax \incolorfalse \gotobox{\box\scratchbox}[#5]}% \setbox\scratchbox\hbox {\hskip\dimexpr\MPxoffset\onebasepoint+#1\onebasepoint\relax \raise\dimexpr\MPyoffset\onebasepoint+#2\onebasepoint\relax \box\scratchbox}% \smashbox\scratchbox \box\scratchbox} %D This special (number 50) passes positions to a tex file. %D This method uses a two||pass approach an (mis|)|used the %D context positioning macros. In \type {core-pos} we will %D implement the low level submacro needed. %D %D \startbuffer %D \definelayer[test] %D %D \setlayer %D [test] %D [x=\MPx{somepos-1},y=\MPy{somepos-1}] %D {Whatever we want here!} %D %D \setlayer %D [test] %D [x=\MPx{somepos-2},y=\MPy{somepos-2}] %D {Whatever we need there!} %D %D \startuseMPgraphic{oeps} %D draw fullcircle scaled 6cm withcolor red ; %D register ("somepos-1",1cm,2cm,center currentpicture) ; %D register ("somepos-2",4cm,3cm,(-1cm,-2cm)) ; %D \stopuseMPgraphic %D %D \framed[background=test,offset=overlay]{\useMPgraphic{oeps}} %D \stopbuffer %D %D \typebuffer %D %D Here the width and height are not realy used, but one can %D imagine situations where tex has to work with values %D calculated by \METAPOST. %D %D \startlinecorrection %D \getbuffer %D \stoplinecorrection %D %D Later we will implement a more convenient macro: %D %D \starttyping %D \setMPlayer [test] [somepos-1] {Whatever we want here!} %D \setMPlayer [test] [somepos-2] {Whatever we need there!} %D \stoptyping \defineMPspecial{50} % x y width height label {\dosavepositionwhd {\gMPs5}% {0}% {\the\dimexpr-\MPllx\onebasepoint+\gMPs1\onebasepoint\relax} {\the\dimexpr\gMPs2\onebasepoint-\scratchdimen+\MPury\onebasepoint\relax}% {\the\dimexpr\gMPs3\onebasepoint\relax}% {\the\dimexpr\gMPs4\onebasepoint\relax}% {0pt}} %D A few auxiliary macros. This will move to colo-ini. \def\MPgrayspace{DeviceGray} \def\MPrgbspace {DeviceRGB} \def\MPcmykspace{DeviceCMYK} \let\MPspotspace\MPgrayspace \def\MPcmykBlack{0 0 0 0} \def\MPcmykWhite{0 0 0 1} \def\startMPcolorresolve {\bgroup \def\dostartgraycolormode##1% {\global\let\MPresolvedspace\MPgrayspace \xdef\MPresolvedcolor{##1}}% \def\dostartrgbcolormode ##1##2##3% {\global\let\MPresolvedspace\MPrgbspace \xdef\MPresolvedcolor{##1 ##2 ##3}}% \def\dostartcmykcolormode##1##2##3##4% {\global\let\MPresolvedspace\MPcmykspace \xdef\MPresolvedcolor{##1 ##2 ##3 ##4}}% \def\dostartspotcolormode##1##2% {\global\let\MPspotspace\empty % left over ? \xdef\MPresolvedspace{##1}% \xdef\MPresolvedcolor{##2}% \global\let\MPspotspace\MPresolvedspace}% signal \dostartgraycolormode\!!zerocount} % kind of hackery initialization \let\stopMPcolorresolve\egroup \def\resolveMPrgbcolor#1#2#3\to#4% {\startMPcolorresolve \execcolorR#1:#2:#3:0:0\od \stopMPcolorresolve \let#4\MPresolvedcolor} \def\resolveMPcmykcolor#1#2#3#4\to#5% {\startMPcolorresolve \execcolorC#1:#2:#3:#4:0:0\od \stopMPcolorresolve \let#5\MPresolvedcolor} \def\resolveMPgraycolor#1\end\to#2% {\startMPcolorresolve \execcolorS#1:0:0\od \stopMPcolorresolve \let#2\MPresolvedcolor} \def\resolveMPspotcolor#1#2#3#4\end\to#5% {\startMPcolorresolve \ifnum#2>\plusone \checkmultitonecolor{#1}% \fi \execcolorP#1:#2:#3:#4:0:0\od \stopMPcolorresolve \let#5\MPresolvedcolor} %D \macros %D {dogetPDFmediabox} %D %D The next macro can be used to find the mediabox of a \PDF\ %D illustration. %D %D \starttyping %D \dogetPDFmediabox %D {filename} %D {new dimen}{new dimen}{new dimen}{new dimen} %D \stoptyping %D %D Beware of dimen clashes: this macro uses the 5~default %D scratch registers! When no file or mediabox is found, the %D dimensions are zeroed. \def\dogetPDFmediabox#1#2#3#4#5% {\bgroup \def\PDFxscale{1}% \def\PDFyscale{1}% \uncatcodespecials \endlinechar\minusone \def\checkPDFtypepage##1/Type /Page##2##3\done% {\ifx##2\relax \else\if##2s% accept /Page and /Pages \let\doprocessPDFline\findPDFmediabox \else \let\doprocessPDFline\findPDFmediabox \fi\fi}% \def\findPDFtypepage {\expandafter\checkPDFtypepage\fileline/Type /Page\relax\done}% \def\checkPDFmediabox##1/MediaBox##2##3\done% {\ifx##2\relax \else \setPDFmediabox##2##3\done \fileprocessedtrue \fi}% \def\findPDFmediabox {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}% \let\doprocessPDFline\findPDFtypepage \doprocessfile\scratchread{#1}\doprocessPDFline \egroup \ifx\PDFxoffset\undefined #2=\zeropoint #3=\zeropoint #4=\zeropoint #5=\zeropoint \else #2=\PDFxoffset\onebasepoint #3=\PDFyoffset\onebasepoint #4=\PDFwidth #5=\PDFheight \fi} \def\setPDFboundingbox#1#2#3#4#5#6% {\dimen0=#1\dimen0=#5\dimen0 \ScaledPointsToBigPoints{\number\dimen0}\PDFxoffset \dimen0=#3\dimen0=#5\dimen0 \xdef\PDFwidth{\the\dimen0}% \dimen0=#2\dimen0=#6\dimen0 \ScaledPointsToBigPoints{\number\dimen0}\PDFyoffset \dimen0=#4\dimen0=#6\dimen0 \xdef\PDFheight{\the\dimen0}% \global\let\PDFxoffset\PDFxoffset \global\let\PDFyoffset\PDFyoffset} \def\setPDFmediabox#1[#2 #3 #4 #5]#6\done {\dimen2=#2\onebasepoint\dimen2=-\dimen2 % \dimen2=-#2\onebasepoint also works since tex handles -- \dimen4=#3\onebasepoint\dimen4=-\dimen4 % \dimen4=-#3\onebasepoint also works since tex handles -- \dimen6=#4\onebasepoint\advance\dimen6 \dimen2 \dimen8=#5\onebasepoint\advance\dimen8 \dimen4 \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale} %D End of soon obsolete code. \startMPinitializations mp_shade_version := 2 ; \stopMPinitializations %D Here comes the traditional \MKII\ converter. %D %D Because we want to test as fast as possible, we first %D define the \POSTSCRIPT\ operators that \METAPOST\ uses. %D We don't define irrelevant ones, because these are %D skipped anyway. %D %D The converter can be made a bit faster by replacing the %D two test macros (the ones with the many \type {\if's}) by %D a call to named branch macros (something \typ {\getvalue %D {xPSmoveto}}. For everyday documents with relatively %D small graphics the gain in speed can be neglected. \def \PScurveto {curveto} \def \PSlineto {lineto} \def \PSmoveto {moveto} \def \PSshowpage {showpage} \def \PSnewpath {newpath} \def \PSfshow {fshow} \def \PSclosepath {closepath} \def \PSfill {fill} \def \PSstroke {stroke} \def \PSclip {clip} \def \PSrlineto {rlineto} \def \PSsetlinejoin {setlinejoin} \def \PSsetlinecap {setlinecap} \def \PSsetmiterlimit {setmiterlimit} \def \PSsetgray {setgray} \def \PSsetrgbcolor {setrgbcolor} \def \PSsetcmykcolor {setcmykcolor} \def \PSsetdash {setdash} \def \PSgsave {gsave} \def \PSgrestore {grestore} \def \PStranslate {translate} \def \PSscale {scale} \def \PSconcat {concat} \def \PSdtransform {dtransform} \def \PSsetlinewidth {setlinewidth} \def \PSpop {pop} \def \PSnfont {nfont} % was needed for TUG98 proceedings \def \PSspecial {special} % extensions to MetaPost %D A previous version set \type {%} to ignore, which %D simplified the following definitions. At the start of %D conversion the percent character was made active again. %D Because the whole graphic is one paragraph (there are no %D empty lines) this does not give the desired effect. This %D went unnoticed untill Scott Pakin sent me a test file %D percent characters in a string. So, from now on we have %D to prefix the following strings with percentages. %D Some day I'll figure out a better solution (line by line reading %D using \ETEX). \edef \PSBoundingBox {\letterpercent\letterpercent BoundingBox:} \edef \PSHiResBoundingBox {\letterpercent\letterpercent HiResBoundingBox:} \edef \PSExactBoundingBox {\letterpercent\letterpercent ExactBoundingBox:} \edef \PSMetaPostSpecial {\letterpercent\letterpercent MetaPostSpecial:} \edef \PSMetaPostSpecials {\letterpercent\letterpercent MetaPostSpecials:} \edef \PSPage {\letterpercent\letterpercent Page:} \edef \PSBeginProlog {\letterpercent\letterpercent BeginProlog} \edef \PSEndProlog {\letterpercent\letterpercent EndProlog} \edef \PSEof {\letterpercent\letterpercent EOF} %D By the way, the \type {setcmykcolor} operator is not %D output by \METAPOST\ but can result from converting the %D \cap{RGB} color specifications, as implemented in %D \type{supp-mps}. %D In \POSTSCRIPT\ arguments precede the operators. Due to the %D fact that in some translations we need access to those %D arguments, and also because sometimes we have to skip them, %D we stack them up. The stack is one||dimensional for non path %D operators and two||dimensional for operators inside a path. %D This is because we have to save the whole path for %D (optional) postprocessing. Values are pushed onto the stack %D by: %D %D \starttyping %D \setMPargument {value} %D \stoptyping %D %D They can be retrieved by the short named macros: %D %D \starttyping %D \gMPa {number} %D \gMPs {number} %D \stoptyping %D %D When scanning a path specification, we also save the %D operator, using %D %D \starttyping %D \setMPkeyword {n} %D \stoptyping %D %D The path drawing operators are coded for speed: \type{clip}, %D \type{stroke}, \type{fill} and \type{fillstroke} become %D 1, 2, 3 and~4. %D %D When processing the path this code can be retrieved %D using %D %D \starttyping %D \getMPkeyword % {n} %D \stoptyping %D %D When setting an argument, the exact position on the stack %D depends on the current value of the \COUNTERS\ %D \type{\nofMPsegments} and \type{\nofMParguments}. \newcount\nofMPsegments \newcount\nofMParguments %D These variables hold the coordinates. The argument part of %D the stack is reset by: %D %D \starttyping %D \resetMPstack %D \stoptyping %D %D We use the prefix \type{@@MP} to keep the stack from %D conflicting with existing macros. To speed up things a bit %D more, we use the constant \type{\@@MP}. \def\@@MP{@@MP} \def\setMPargument% #1% {\advance\nofMParguments \plusone \expandafter\def\csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname} % {#1} \def\letMPargument {\advance\nofMParguments \plusone \expandafter\let\csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname} \def\setMPsequence#1 % {\advance\nofMParguments \plusone \expandafter\def\csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname{#1}% \handleMPsequence} \def\gMPa#1% {\csname\@@MP0\number#1\endcsname} \def\gMPs#1% {\csname\@@MP\the\nofMPsegments\number#1\endcsname} \def\dogMPa#1% {\@EAEAEA\do\csname\@@MP0\number#1\endcsname} \def\setMPkeyword#1 % {\expandafter\def\csname\@@MP\the\nofMPsegments0\endcsname{#1}% \advance\nofMPsegments \plusone \nofMParguments\zerocount} \def\getMPkeyword% #1% {\csname\@@MP\the\nofMPsegments0\endcsname} % {\csname\@@MP#10\endcsname} \def\docleanupMPargument#1% we need this because args can have [ or ] pre/appended {\expandafter\edef\csname\@@MP\the\nofMPsegments\number#1\endcsname {\csname\@@MP\the\nofMPsegments\number#1\endcsname}} %D When we reset the stack, we can assume that all further %D comment is to be ignored and handled in strings. %D By redefining the reset macro after the first call, we %D save some run time. Only use this macro after all %D comments are processed and use the simple alternative %D when dealing with comments. \def\doresetMPstack {\nofMParguments\zerocount} \def\resetMPstack {\let\handleMPgraphic\handleMPendgraphic \let\resetMPstack\doresetMPstack \resetMPstack} %D The arguments are saved with the preceding command %D \type{\do}. By default this command expands to nothing, but %D when we deal with strings it's used to strip off the %D \type{(} and \type{)}. %D %D Strings are kind of tricky, because characters can be %D passed verbatim \type{(hello)}, by octal number %D \type{(\005)} or as command \type{(\()}. We therefore %D cannot simply ignore \type{(} and \type{)}, the way we do %D with \type{[} and \type{]}. Another complication is that %D strings may contain characters that normally have a %D special meaning in \TEX, like \type{$} and \type{{}}. %D %D A previous solution made \type{\} an active character and %D let it look ahead for a number or characters. We had to %D abandon this scheme because of the need for verbatim %D support. The next solution involved some \CATCODE\ %D trickery but works well. \def\octalMPcharacter#1#2#3% {\char'#1#2#3\relax} %D curly braces and squarly brackets are stored in the argument stack %D as part of strings, for instance in: %D %D \starttyping %D /fshow {exch findfont exch scalefont setfont show}bind def %D [3 3 ] 0 setdash %D \stoptyping %D %D but we need to keep them in situation like %D %D \starttyping %D ([bla bla] bla bla) ec-lmr10 9.96265 fshow %D ({bla bla} bla bla) ec-lmr10 9.96265 fshow %D \stoptyping %D %D So, when we store the snippets, we keep the special tokens, and %D when needed we either ignore or obey them %D We could use a catcodetable here. \bgroup \catcode`\|=\@@comment \catcode`\%=\@@active \catcode`\[=\@@active \catcode`\]=\@@active \catcode`\{=\@@active \catcode`\}=\@@active \catcode`B=\@@begingroup \catcode`E=\@@endgroup \gdef\keepMPspecials| B\let%\letterpercent| \def[B\noexpand[E| \def]B\noexpand]E| \def{B\noexpand{E| \def}B\noexpand}EE \gdef\ignoreMPspecials| B\let%\letterpercent| \def[BE| \def]BE| \def{BE| \def}BEE \gdef\obeyMPspecials| B\def%B\char 37\relax E| \def[B\char 91\relax E| \def]B\char 93\relax E| \def{B\char123\relax E| \def}B\char125\relax EE \gdef\setMPspecials| B\setnaturalcatcodes \catcode`\\=\@@escape \catcode`\%=\@@active \catcode`\[=\@@active \catcode`\]=\@@active \catcode`\{=\@@active \catcode`\}=\@@active \lccode`\-=0 | latex sets this to `\- \lccode`\%=`\%| otherwise it's seen as a number \def\(B\char40\relax E| \def\)B\char41\relax E| \def\\B\char92\relax E| \def\0B\octalMPcharacter0E| \def\1B\octalMPcharacter1E| \def\2B\octalMPcharacter2E| \def\3B\octalMPcharacter3E| \def\4B\octalMPcharacter4E| \def\5B\octalMPcharacter5E| \def\6B\octalMPcharacter6E| \def\7B\octalMPcharacter7E| \def\8B\octalMPcharacter8E| \def\9B\octalMPcharacter9EE \egroup %D We use the comment symbol as a sort of trigger. Beware! %D The whole graphic is seen as on eparagraph, which means %D that we cannot change the catcodes in between. \bgroup \catcode`\%=\@@active \gdef\startMPscanning{\let%=\startMPconversion} \egroup %D In earlier versions we used the sequence %D %D \starttyping %D \expandafter\handleMPsequence\input filename\relax %D \stoptyping %D %D Persistent problems in \LATEX\ however forced us to use a %D different scheme. Every \POSTSCRIPT\ file starts with a %D \type{%}, so we temporary make this an active character %D that starts the scanning and redefines itself. (The problem %D originates in the redefinition by \LATEX\ of the %D \type{\input} primitive.) \def\startMPconversion {\keepMPspecials \handleMPsequence} %D Here comes the main loop. Most arguments are numbers. This %D means that they can be recognized by their \type{\lccode}. %D This method saves a lot of processing time. We could %D speed up the conversion by handling the \type{path} %D seperately. \def\dohandleMPsequence#1% {\ifdone \ifcase\lccode`#1\relax \@EAEAEA\dohandleMPsequenceA \else \@EAEAEA\dohandleMPsequenceB \fi \else \@EA\dohandleMPsequenceC \fi#1} \let\dohandleMPsequenceA\setMPsequence \def\installMPSkeywordN#1#2% {\expandafter\def\csname\@@MP:N:#1\endcsname{#2}} \def\installMPSshortcutN#1#2% todo: \let {\expandafter\let\csname\@@MP:N:#1\expandafter\endcsname\csname\@@MP:N:#2\endcsname} \def\dohandleMPsequenceB#1 % {\edef\somestring{#1}% \executeifdefined{\@@MP:N:\somestring}\handleMPgraphic \handleMPsequence} \installMPSkeywordN \PSmoveto {\edef\lastMPmoveX{\gMPa1}% \edef\lastMPmoveY{\gMPa2}% \resetMPstack} \installMPSkeywordN \PSnewpath {\let\handleMPsequence\handleMPpath} \installMPSkeywordN \PSgsave {\PDFcode{q}% \resetMPstack} \installMPSkeywordN \PSgrestore {\PDFcode{Q}% \resetMPstack} \installMPSkeywordN \PSdtransform % == setlinewidth {\let\handleMPsequence\handleMPdtransform} % after that we will encounter more tokens until setlinewidth+pop % or pop+setlinewidth which we catch next; we explicitly need to % reset the stack since [] n setdash may follow; a more clever % approach would be to read on till the condition is met, but it's % the only pop / setlinewidth we will encounter so ... \installMPSkeywordN \PSsetlinewidth {% already handled in dtransform \resetMPstack} \installMPSkeywordN \PSpop {% already handled in dtransform \resetMPstack} \installMPSkeywordN \PSconcat {\cleanupMPconcat \PDFcode{\gMPa1 \gMPa2 \gMPa3 \gMPa4 \gMPa5 \gMPa6 cm}% \resetMPstack} \installMPSkeywordN \PSsetrgbcolor {\handleMPrgbcolor \resetMPstack} \installMPSkeywordN \PSsetcmykcolor {\handleMPcmykcolor \resetMPstack} \installMPSkeywordN \PSsetgray {\handleMPgraycolor \resetMPstack} \installMPSkeywordN \PStranslate {\PDFcode{1 0 0 1 \gMPa1 \gMPa2 cm}% \resetMPstack} \installMPSkeywordN \PSsetdash {\handleMPsetdash \resetMPstack} \installMPSkeywordN \PSsetlinejoin {\PDFcode{\gMPa1 j}% \resetMPstack} \installMPSkeywordN \PSsetmiterlimit {\PDFcode{\gMPa1 M}% \resetMPstack} \installMPSkeywordN \PSfshow {%\PDFcode{n}% removed ! \handleMPfshow \resetMPstack} \installMPSkeywordN \PSsetlinecap {\PDFcode{\gMPa1 J}% \resetMPstack} \installMPSkeywordN \PSrlineto {\flushMPmoveto \PDFcode{\!MP\lastMPmoveX\space\!MP\lastMPmoveY\space l S}% \resetMPmoveto \resetMPstack} \installMPSkeywordN \PSscale {\PDFcode{\gMPa1 0 0 \gMPa2 0 0 cm}% \resetMPstack} \installMPSkeywordN \PSspecial {\handleMPspecialcommand \resetMPstack} \installMPSshortcutN {n} \PSnewpath \installMPSshortcutN {p} \PSclosepath \installMPSshortcutN {l} \PSlineto \installMPSshortcutN {r} \PSrlineto \installMPSshortcutN {m} \PSmoveto \installMPSshortcutN {c} \PScurveto \installMPSshortcutN {C} \PSsetcmykcolor \installMPSshortcutN {G} \PSsetgray \installMPSshortcutN {R} \PSsetrgbcolor \installMPSshortcutN {lj} \PSsetlinejoin \installMPSshortcutN {ml} \PSsetmiterlimit \installMPSshortcutN {lc} \PSsetlinecap \installMPSshortcutN {sd} \PSsetdash \installMPSshortcutN {S} \PSstroke \installMPSshortcutN {F} \PSfill \installMPSshortcutN {W} \PSclip \installMPSshortcutN {q} \PSgsave \installMPSshortcutN {Q} \PSgrestore \installMPSshortcutN {s} \PSscale \installMPSshortcutN {t} \PSconcat \installMPSshortcutN {P} \PSshowpage \installMPSkeywordN {hlw} {\PDFcode{\gMPa1 w}\resetMPstack} \installMPSkeywordN {vlw} {\PDFcode{\gMPa1 w}\resetMPstack} \installMPSkeywordN {rd} {\PDFcode{[] 0 d}\resetMPstack} \def\dohandleMPsequenceC#1 % {\edef\somestring{#1}% \handleMPgraphic \handleMPsequence} %D Since colors are not sensitive to transformations, they %D are sometimes used for signaling. Therefore, we handle them %D separately. The next macro can be redefined if needed. \def\handleMPrgbcolor {\PDFcode{\!MPgMPa1 \!MPgMPa2 \!MPgMPa3 rg \!MPgMPa1 \!MPgMPa2 \!MPgMPa3 RG}} \def\handleMPcmykcolor {\PDFcode{\!MPgMPa1 \!MPgMPa2 \!MPgMPa3 \!MPgMPa4 k \!MPgMPa1 \!MPgMPa2 \!MPgMPa3 \!MPgMPa4 K}} \def\handleMPgraycolor {\PDFcode{\!MPgMPa1 g \!MPgMPa1 G}} \def\handleMPspotcolor {\PDFcode{0 g 0 G}} %D Beginning and ending the graphics is taken care of by the %D macro \type{\handleMPgraphic}, which is redefined when %D the first graphics operator is met. \def\handleMPendgraphic % #1% {\ifx\somestring\PSshowpage \let\handleMPsequence\finishMPgraphic \else\ifx\somestring\PSEof \let\handleMPsequence\finishMPgraphic \else \letMPargument\somestring % {#1}% \fi\fi} \def\handleMPbegingraphic % #1% {\ifx\somestring\PSBoundingBox \def\handleMPsequence{\handleMPboundingbox1}% \else\ifx\somestring\PSHiResBoundingBox \def\handleMPsequence{\handleMPboundingbox2}% \else\ifx\somestring\PSExactBoundingBox \def\handleMPsequence{\handleMPboundingbox3}% \else\ifx\somestring\PSshowpage \let\handleMPsequence\finishMPgraphic \else\ifx\somestring\PSEof \let\handleMPsequence\finishMPgraphic \else\ifx\somestring\PSPage \let\handleMPsequence\handleMPpage \else\ifx\somestring\PSMetaPostSpecials \let\handleMPsequence\handleMPspecialscomment \else\ifx\somestring\PSMetaPostSpecial \let\handleMPsequence\handleMPspecialcomment \else\ifx\somestring\PSBeginProlog \let\handleMPsequence\handleMPprolog \else \letMPargument\somestring % {#1}% \fi\fi\fi\fi\fi\fi\fi\fi\fi} \let\handleMPgraphic=\handleMPbegingraphic %D New: we can best filter the prolog because nowdays it can contain %D quite some code. % hm, catcode mess, so we need to tweak %'s catcode here % \long\expandafter\def\expandafter\handleMPprolog\expandafter#\expandafter1\PSEndProlog% % but today i'm not in the mood for ugly stuff \long\def\handleMPprolog#1EndProlog % {\doresetMPstack \let\handleMPsequence\dohandleMPsequence \handleMPsequence} %D We check for three kind of bounding boxes: the normal one %D and two high precision ones: %D %D \starttyping %D BoundingBox: llx lly ucx ucy %D HiResBoundingBox: llx lly ucx ucy %D ExactBoundingBox: llx lly ucx ucy %D \stoptyping %D %D The original as well as the recalculated dimensions are %D saved for later use. \newif\ifskipemptyMPgraphic \skipemptyMPgraphicfalse \chardef\currentMPboundingbox=0 \def\handleMPboundingbox#1#2 #3 #4 #5 {\ifnum#1>\currentMPboundingbox \chardef\currentMPboundingbox#1\relax \xdef\MPllx {#2}% \xdef\MPlly {#3}% \xdef\MPurx {#4}% \xdef\MPury {#5}% \xdef\MPwidth {\the\dimexpr\MPurx\onebasepoint-\MPllx\onebasepoint\relax}% \xdef\MPheight{\the\dimexpr\MPury\onebasepoint-\MPlly\onebasepoint\relax}% \fi \doresetMPstack \let\handleMPsequence\dohandleMPsequence \let\next\handleMPsequence \ifskipemptyMPgraphic \ifdim\MPheight=\zeropoint\ifdim\MPwidth=\zeropoint \def\next{\endinput\finishMPgraphic}% \fi\fi \fi \next} %D Unless defined otherwise, we simply ignore specialcomments. \def\handleMPspecialcomment {\doresetMPstack \let\handleMPsequence\dohandleMPsequence \handleMPsequence} \let\handleMPspecialscomment\handleMPspecialcomment %D We use the \type{page} comment as a signal that %D stackbuilding can be started. \def\handleMPpage #1 #2 {\doresetMPstack \donetrue \let\handleMPsequence\dohandleMPsequence \handleMPsequence} %D The same applies to the special extensions. \def\handleMPspecialcommand {\doresetMPstack \let\handleMPsequence\dohandleMPsequence \handleMPsequence} %D \METAPOST\ draws its dots by moving to a location and %D invoking \type{0 0 rlineto}. This operator is not %D available in \PDF. Our solution is straightforward: we draw %D a line from $(current\_x, current\_y)$ to itself. This %D means that the arguments of the preceding \type{moveto} have %D to be saved. %D These saved coordinates are also used when we handle the %D texts. Text handling proved to be a bit of a nuisance, but %D finally I saw the light. It proved that we also had to %D take care of \type{(split arguments)}. % \startMPcode % draw btex Ga toch effe f\kern0ptietsen?{}` etex ; % \stopMPcode \newtoks \everyMPshowfont \def\setMPfshowfont#1#2% {\font\temp=#1\space at #2\relax\temp \the\everyMPshowfont} \let\MPfshowcommand\empty \def\dohandleMPfshow {\setbox\scratchbox\hbox {\obeyMPspecials \edef\MPtextsize{\gMPa\nofMParguments}% \def\do(##1){##1}% only works in latest mp \edef\MPtextdata{\dogMPa1}% beware, stack can have more \handleMPtext}% \setbox\scratchbox\hbox {\hskip\lastMPmoveX\onebasepoint \raise\lastMPmoveY\onebasepoint \box\scratchbox}% \smashbox\scratchbox \box\scratchbox} \def\handleMPtext {\handleMPtextnormal} % so we can overload this one later \def\handleMPfshow{\dohandleMPfshow } % so we can overload this one later \def\handleMPtext {\ifnum\nofMParguments>\plusthree \handleMPtextnormal \else \defconvertedcommand\MPtextdata\MPtextdata \expanded{\splitstring\MPtextdata}\at::::\to\MPtexttag\and\MPtextnumber \executeifdefined{handleMPtext\MPtexttag}\handleMPtextnormal \fi} % elsewhere we will implement \handleMPtextmptxt \def\doflushMPtext#1% {\edef\!!stringa{#1}% \@EA\dodoflushMPtext\!!stringa\relax} \def\dodoflushMPtext {\afterassignment\dododoflushMPtext\let\nexttoken=} \def\dododoflushMPtext {\ifx\nexttoken\relax % done \else\ifx\nexttoken\char \@EA\@EA\@EA\dodododoflushMPtext \else {\nexttoken}% \@EA\@EA\@EA\dodoflushMPtext \fi\fi} \def\dodododoflushMPtext {\afterassignment\dododododoflushMPtext\scratchcounter} \def\dododododoflushMPtext {{\char\scratchcounter}\let\next\dodoflushMPtext} \def\handleMPtextnormal {\let\ \relax % mp breaks long lines and appends a \ \ifx\MPtextsize\PSnfont % round font size (to pt) \advance\nofMParguments \minusone \expandafter\scratchdimen\gMPa\nofMParguments\onepoint\relax \ifdim\scratchdimen<\onepoint \def\MPtextsize{1pt}% \else \advance\scratchdimen .5\onepoint \def\MPtextsize##1.##2\relax{\def\MPtextsize{##1pt}}% \expandafter\MPtextsize\the\scratchdimen\relax \fi \else \edef\MPtextsize{\MPtextsize bp}% \fi \advance\nofMParguments \minusone \setMPfshowfont{\gMPa\nofMParguments}\MPtextsize \advance\nofMParguments \minusone \temp \MPfshowcommand {\ifnum\nofMParguments=\plusone \def\do(##1){##1}% \doflushMPtext{\dogMPa1}% \else % can't happen anymore in mp version 1+ % we need to catch ( a ) (a a a) (\123 \123 \123) etc \scratchcounter\plusone \def\dodo##1% Andreas Fieger's bug: (\304...) {\edef\!!stringa{##1\empty\empty}% and another one: ( 11) -> \ifx 11 \ifx\!!stringa\MPspacechar\MPspacechar\else\expandafter##1\fi}% \def\do(##1{\dodo{##1}}% \dogMPa\scratchcounter\MPspacechar \let\do\relax \loop \advance\scratchcounter \plusone \ifnum\scratchcounter<\nofMParguments\relax \gMPa\scratchcounter\MPspacechar \repeat \def\do##1){\dodo{##1}}% \dogMPa\scratchcounter \fi \unskip}} %D You could consider the following definition to be the most %D natural one. % \def\MPspacechar{\space} % normal case \def\MPspacechar{\char32\relax} % old solution does not work with math %D However, the following implementation is more robust, since %D some fonts have funny visible spaces in the space slot. This %D gives a mismatch between the space that \METAPOST\ took into %D account and the \quote {natural} space. This only happens in %D labels, since \type {btex}||\type {etex} thingies don't have %D spaces. This phenomena showed up when preparing the %D \METAFUN\ manual, where Palatino fonts are used. We can %D safely assume that \METAPOST\ considers \type {\char32} to %D be the space. \def\MPspacechar{\setbox\scratchbox\hbox{\char32}\kern\wd\scratchbox} %D Well, this does not work with math fonts, so: \def\MPspacechar{\char32\relax} %D Most operators are just converted and keep their %D arguments. Dashes however need a bit different treatment, %D otherwise \PDF\ viewers complain loudly. Another %D complication is that one argument comes after the \type{]}. %D When reading the data, we simply ignore the array boundary %D characters. We save ourselves some redundant newlines and %D at the same time keep the output readable by packing the %D literals. \def\handleMPsetdash {\bgroup \ignoreMPspecials \let\somestring\empty \scratchcounter\plusone \loop \ifnum\scratchcounter<\nofMParguments \edef\somestring{\somestring\space\gMPa\scratchcounter}% \advance\scratchcounter \plusone \repeat \edef\somestring{[\somestring]\space\gMPa\scratchcounter\space d}% \PDFcode{\somestring}% \egroup} %D The \type{setlinewidth} commands looks a bit complicated. There are %D two alternatives, that result in a similar look in both %D $x$- and $y$-dorection. As John Hobby says: %D %D \startnarrower \switchtobodyfont[ss] %D \starttyping %D x 0 dtransform exch truncate exch idtransform pop setlinewidth %D 0 y dtransform truncate idtransform setlinewidth pop %D \stoptyping %D %D These are just fancy versions of \type{x setlinewidth} and %D \type{y setlinewidth}. The \type{x 0 ...} form is used if %D the path is {\em primarily vertical}. It rounds the width %D so that vertical lines come out an integer number of pixels %D wide in device space. The \type{0 y ...} form does the same %D for paths that are {\em primarily horizontal}. The reason %D why I did this is Knuth insists on getting exactly the %D widths \TEX\ intends for the horizontal and vertical rules %D in \type{btex...etex} output. (Note that PostScript scan %D conversion rules cause a horizontal or vertical line of %D integer width $n$ in device space to come out $n+1$ pixels %D wide, regardless of the phase relative to the pixel grid.) %D \stopnarrower %D %D The common operator in these sequences is \type{dtransform}, %D so we can use this one to trigger setting the linewidth. \def\handleMPdtransform {\ifdim\gMPa1\onepoint>\zeropoint \PDFcode{\gMPa1 w}% \def\next##1 ##2 ##3 ##4 ##5 ##6 {\handleMPsequence}% \else \PDFcode{\gMPa2 w}% \def\next##1 ##2 ##3 ##4 {\handleMPsequence}% \fi \let\handleMPsequence\dohandleMPsequence \resetMPstack \next} %D The most complicated command is \type{concat}. \METAPOST\ %D applies this operator to \type{stroke}. At that moment the %D points set by \type{curveto} and \type{moveto}, are already %D fixed. In \PDF\ however the \type{cm} operator affects the %D points as well as the pen (stroke). Like more \PDF\ %D operators, \type{cm} is defined in a bit ambiguous way. %D The only save route for non||circular penshapes, is saving %D the path, recalculating the points and applying the %D transformation matrix in such a way that we can be sure %D that its behavior is well defined. This comes down to %D inverting the path and applying \type{cm} to that path as %D well as the pen. This all means that we have to save the %D path. %D In \METAPOST\ there are three ways to handle a path $p$: %D %D \starttyping %D draw p; fill p; filldraw p; %D \stoptyping %D %D The last case outputs a \type{gsave fill grestore} before %D \type{stroke}. Handling the path outside the main loops %D saves about 40\% run time.\footnote{We can save some more by %D following the \METAPOST\ output routine, but for the moment %D we keep things simple.} Switching between the main loop and %D the path loop is done by means of the recursely called %D macro \type{\handleMPsequence}. \def\handleMPpath {\chardef\finiMPpath\zerocount \let\closeMPpath\relax \let\flushMPpath\flushnormalMPpath \resetMPstack \nofMPsegments\plusone \let\handleMPsequence\dohandleMPpath \dohandleMPpath} %D Most paths are drawn with simple round pens. Therefore we've %D split up the routine in two. \def\resetMPmoveto {\let\lastMPmoveX\empty \let\lastMPmoveY\empty} \resetMPmoveto \def\flushMPmoveto {\ifx\lastMPmoveX\empty \else \PDFcode{\!MP\lastMPmoveX\space \!MP\lastMPmoveY\space m}% \fi} \def\flushnormalMPsegment {\ifcase\getMPkeyword\relax \flushMPmoveto \resetMPmoveto \PDFcode{\!MPgMPs1 \!MPgMPs2 l}% \or \flushMPmoveto \resetMPmoveto \PDFcode{\!MPgMPs1 \!MPgMPs2 \!MPgMPs3 \!MPgMPs4 \!MPgMPs5 \!MPgMPs6 c}% \or \ifx\lastMPmoveX\empty \else % we assume 0,0 rlineto \flushMPmoveto \PDFcode{\!MP\lastMPmoveX\space \!MP\lastMPmoveY\space l}% \resetMPmoveto \fi \or % \flushMPmoveto % \resetMPmoveto \fi} \def\flushMPconcatmoveto {\ifx\lastMPmoveX\empty\else \doMPconcat\lastMPmoveX\lastMPmoveX\lastMPmoveY\lastMPmoveY \flushMPmoveto \fi} \def\flushconcatMPsegment {\ifcase\getMPkeyword\relax \flushMPconcatmoveto \resetMPmoveto \doMPconcat{\gMPs1}\a{\gMPs2}\b% \PDFcode{\!MP\a\space\!MP\b\space l}% \or \flushMPconcatmoveto \resetMPmoveto \doMPconcat{\gMPs1}\a{\gMPs2}\b% \doMPconcat{\gMPs3}\c{\gMPs4}\d% \doMPconcat{\gMPs5}\e{\gMPs6}\f% \PDFcode{\!MP\a\space\!MP\b\space \!MP\c\space\!MP\d\space \!MP\e\space\!MP\f\space c}% \or % rather mp specific ... rline always has 0,0 \bgroup \noMPtranslate \flushMPconcatmoveto % next should be \lastMPmoveX+\a,\lastMPmoveY+\b but we know it's 0,0 \PDFcode{\!MP\lastMPmoveX\space\!MP\lastMPmoveY\space l S}% \resetMPmoveto \egroup \or % \flushMPconcatmoveto % \resetMPmoveto \fi} \def\doflushsomeMPpath {\dodoflushsomeMPpath \advance\nofMPsegments \plusone \ifnum\nofMPsegments<\scratchcounter \expandafter\doflushsomeMPpath \fi} \def\flushsomeMPpath {\scratchcounter\nofMPsegments \nofMPsegments\plusone \doflushsomeMPpath} \def\flushnormalMPpath{\let\dodoflushsomeMPpath\flushnormalMPsegment\flushsomeMPpath} %OLD \def\flushconcatMPpath{\let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath} %NEW pre-calculate 1/D so it needn't be repeated for each control point. \def\flushconcatMPpath {\MPreciprocaldeterminant \let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath} %D The transformation of the coordinates is handled by one of %D the macros Tanmoy posted to the \PDFTEX\ mailing list. %D I rewrote and optimized the original macro to suit the other %D macros in this module. %D %D \starttyping %D \doMPconcat {x position} \xresult {y position} \yresult %D \stoptyping %D %D By setting the auxiliary \DIMENSIONS\ \type{\dimen0} upto %D \type{\dimen10} only once per path, we save over 20\% run %D time. Some more speed was gained by removing some parameter %D passing. These macros can be optimized a bit more by using %D more constants. There is however not much need for further %D optimization because penshapes usually are round and %D therefore need no transformation. Nevertheless we move the %D factor to the outer level and use a bit different \type{pt} %D removal macro. Although the values represent base points, %D we converted them to pure points, simply because those can %D be converted back. %OLD \mathchardef\MPconcatfactor=256 % beware don't remove spaces before it %OLD \def\doMPreducedimen#1 %OLD {\count0\MPconcatfactor %OLD \advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\count0 %OLD \divide\dimen#1 \count0\relax} %OLD % too inaccurate (see old pragma logo) %OLD %OLD \def\doMPreducedimen#1 %OLD {\count0=\MPconcatfactor %OLD \divide\dimen#1 \count0\relax} %OLD \def\doMPreducedimen#1 %OLD {\advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\MPconcatfactor %OLD \divide\dimen#1 \MPconcatfactor} %D The transformation code is rewritten by Daniel H. Luecking who %D describes his patch as follows: %D %D We would like to divide 1 by $X$, but all divisions are integer so %D for accuracy we want to convert to large integers and make sure the %D integer quotient has as many significant digits as possible. Thus we %D need to replace $1/X$ with $M/N$ where $N$ is as large as possible %D and $M/N$ is as large as possible. Also for simplicity $M$ should be %D a power of 2. So we make $M = 2^{30}$ \footnote{$2^{31} - 1$ is the %D largest legal integer. Using it (and simply ignoring the inaccuracy %D caused by $-1$) turns out to be at least as accurate in all cases, %D and more accurate in some.} (largest legal power of 2) and adjust %D $X$ downward (if necessary) to the the range $1-2^{16}$. This gives %D at least 15 significant binary digits, (almost as accurate as %D \METAPOST\ for numbers near 1) or almost 5 significant figures %D (decimal). \newcount\MPscratchCnt \newdimen\MPscratchDim % will be assigned global \def\MPadjustdimen % sets \MPscratchDim and \MPscratchCnt {\MPscratchCnt\zerocount \doMPadjustdimen} \def\doMPadjustdimen {\ifdim\MPscratchDim>\onepoint \divide \MPscratchDim\plustwo \advance\MPscratchCnt\plusone \expandafter\doMPadjustdimen \fi} %OLD \def\doMPexpanddimen#1 %OLD {\multiply\dimen#1 \MPconcatfactor\relax} %D DHL: When viewed as an integer, $1 \hbox{pt}=2^{16}$ so $2^{32}/X$ %D is the right way to do $(1 \hbox{pt})/(X \hbox{pt})$ and get the %D answer in points. But we are limited to $2^{30}/X$. However, we %D actually do $[ 2^{30} / (X/2^K) ]*2^{2-K}$ where $K$ is the number %D of halvings it takes to bring $X$ below $1 \hbox{pt}$. If $K$ is 0 %D or 1 we readjust by multiplying by 4 or 2, otherwise by halving %D $(K-2)$ times \type {\MPscratchCnt} holds the value of $K$ from %D \type {\MPadjustdimen}. \def\MPreadjustdimen % acts on \MPscratchDim and MPscratchCnt {\ifcase\MPscratchCnt \multiply\scratchdimen \plusfour \or \multiply\scratchdimen \plustwo \else \expandafter\doMPreadjustdimen \fi} \def\doMPreadjustdimen {\ifnum\MPscratchCnt>\plustwo \divide \scratchdimen\plustwo \advance\MPscratchCnt\minusone \expandafter\doMPreadjustdimen \fi} \def\MPreciprocaldeterminant {\scratchdimen\withoutpt\the\dimen0 \dimen6 % s_x*s_y \advance\scratchdimen -\withoutpt\the\dimen2 \dimen4 % s_x*s_y - r_x*r_y \ifdim\scratchdimen<\zeropoint % we need a positive dimension \scratchdimen-\scratchdimen % for \MPadjustdimen (?) \doMPreciprocal \scratchdimen-\scratchdimen \else \doMPreciprocal \fi \edef\MPreciprocal{\withoutpt\the\scratchdimen}} \newcount\MPnumerator \MPnumerator = 1073741824 % 2^{30} % todo: dimexpr \def\doMPreciprocal % replace \scratchdimen with its reciprocal {\ifdim\scratchdimen=\onepoint \else \MPadjustdimen \scratchcounter\MPnumerator \divide\scratchcounter\scratchdimen \scratchdimen1\scratchcounter % 1 needed \MPreadjustdimen \fi} %OLD \def\presetMPconcat %OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0 % r_x %OLD \dimen 2=\gMPs2\onepoint \doMPreducedimen 2 % s_x %OLD \dimen 4=\gMPs3\onepoint \doMPreducedimen 4 % s_y %OLD \dimen 6=\gMPs4\onepoint \doMPreducedimen 6 % r_y %OLD \dimen 8=\gMPs5\onepoint \doMPreducedimen 8 % t_x %OLD \dimen10=\gMPs6\onepoint \doMPreducedimen10 } % t_y %OLD %OLD \def\presetMPscale %OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0 %OLD \dimen 2 \zeropoint %OLD \dimen 4 \zeropoint %OLD \dimen 6=\gMPs2\onepoint \doMPreducedimen 6 %OLD \dimen 8 \zeropoint %OLD \dimen10 \zeropoint} \def\cleanupMPconcat {\ignoreMPspecials \docleanupMPargument1% \docleanupMPargument6% \keepMPspecials} \def\presetMPconcat {\dimen 0=\gMPs1\onepoint % s_x \dimen 2=\gMPs2\onepoint % r_x \dimen 4=\gMPs3\onepoint % r_y \dimen 6=\gMPs4\onepoint % s_y \dimen 8=\gMPs5\onepoint % t_x \dimen10=\gMPs6\onepoint} % t_y \def\presetMPscale {\dimen 0=\gMPs1\onepoint \dimen 2 \zeropoint \dimen 4 \zeropoint \dimen 6=\gMPs2\onepoint \dimen 8 \zeropoint \dimen10 \zeropoint} \def\noMPtranslate % use this one grouped {\dimen 8 \zeropoint % t_x \dimen10 \zeropoint} % t_y %D \starttyping %D \def\doMPconcat#1#2#3#4% %D {\dimen12=#1 pt \doMPreducedimen12 % p_x %D \dimen14=#3 pt \doMPreducedimen14 % p_y %D % %D \dimen16 \dimen 0 %D \multiply \dimen16 \dimen 6 %D \dimen20 \dimen 2 %D \multiply \dimen20 \dimen 4 %D \advance \dimen16 -\dimen20 %D % %D \dimen18 \dimen12 %D \multiply \dimen18 \dimen 6 %D \dimen20 \dimen14 %D \multiply \dimen20 \dimen 4 %D \advance \dimen18 -\dimen20 %D \dimen20 \dimen 4 %D \multiply \dimen20 \dimen10 %D \advance \dimen18 \dimen20 %D \dimen20 \dimen 6 %D \multiply \dimen20 \dimen 8 %D \advance \dimen18 -\dimen20 %D % %D \multiply \dimen12 -\dimen 2 %D \multiply \dimen14 \dimen 0 %D \advance \dimen12 \dimen14 %D \dimen20 \dimen 2 %D \multiply \dimen20 \dimen 8 %D \advance \dimen12 \dimen20 %D \dimen20 \dimen 0 %D \multiply \dimen20 \dimen10 %D \advance \dimen12 -\dimen20 %D % %D \doMPreducedimen16 %D \divide \dimen18 \dimen16 \doMPexpanddimen18 %D \divide \dimen12 \dimen16 \doMPexpanddimen12 %D % %D \edef#2{\withoutpt\the\dimen18}% % p_x^\prime %D \edef#4{\withoutpt\the\dimen12}} % p_y^\prime %D \stoptyping %D The following optimization resulted from some tests by %D and email exchanges with Sanjoy Mahajan. %D %D \starttyping %D \def\doMPconcat#1#2#3#4% %D {\dimen12=#1 pt \doMPreducedimen12 % p_x %D \dimen14=#3 pt \doMPreducedimen14 % p_y %D % %D \dimen16 \dimen 0 %D \multiply \dimen16 \dimen 6 %D \dimen20 \dimen 2 %D \multiply \dimen20 \dimen 4 %D \advance \dimen16 -\dimen20 %D % %D \dimen18 \dimen12 %D \multiply \dimen18 \dimen 6 %D \dimen20 \dimen14 %D \multiply \dimen20 \dimen 4 %D \advance \dimen18 -\dimen20 %D \dimen20 \dimen 4 %D \multiply \dimen20 \dimen10 %D \advance \dimen18 \dimen20 %D \dimen20 \dimen 6 %D \multiply \dimen20 \dimen 8 %D \advance \dimen18 -\dimen20 %D % %D \multiply \dimen12 -\dimen 2 %D \multiply \dimen14 \dimen 0 %D \advance \dimen12 \dimen14 %D \dimen20 \dimen 2 %D \multiply \dimen20 \dimen 8 %D \advance \dimen12 \dimen20 %D \dimen20 \dimen 0 %D \multiply \dimen20 \dimen10 %D \advance \dimen12 -\dimen20 %D % %D %\ifdim\dimen16>\onepoint % oeps, can be < 1pt too %D \ifdim\dimen16=\onepoint \else %D \ifdim\dimen16>\MPconcatfactor pt %D \doMPreducedimen16 %D \divide \dimen18 \dimen16 \doMPexpanddimen18 %D \divide \dimen12 \dimen16 \doMPexpanddimen12 %D \else %D \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18 %D \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12 %D \fi %D \fi %D % %D \edef#2{\withoutpt\the\dimen18}% % p_x^\prime %D \edef#4{\withoutpt\the\dimen12}} % p_y^\prime %D \stoptyping %D %D But, this one is still too inaccurate, so we now have: %D DHL: Ideally, $r_x$, $r_y$, $s_x$, $s_y$ should be in macros, not %D dimensions (they are scalar quantities after all, not lengths). I %D suppose the authors decided to do calculations with integer %D arithmetic instead of using real factors because it's faster. %D However, the actual macros test slower, possibly because I've %D omitted three nested loops. In my test files, my approach is more %D accurate. It is also far simpler and overflow does not seem to be a %D significant concern. The scale factors written by Metapost are (?) %D always $<=1$ (it scales coordinates internally) and coordinates are %D always likely to be less than \type {\maxdimen}. %D %D If this should ever cause problems, the scale factors can be reduced. % the original: % % \def\doMPconcat#1#2#3#4% % {\dimen12=#1\onepoint% p_x % #1\onepoint % \dimen14=#3\onepoint% p_y % #3\onepoint % \advance\dimen12 -\dimen8 % p_x - t_x % \advance\dimen14 -\dimen10 % p_y - t_y % \dimen18=\withoutpt\the\dimen6 \dimen12 % s_y(p_x - t_x) % \advance\dimen18 -\withoutpt\the\dimen4 \dimen14 % - r_y(p_y-t_y) % \dimen14=\withoutpt\the\dimen0 \dimen14 % s_x(p_y-t_y) % \advance\dimen14 -\withoutpt\the\dimen2 \dimen12 % - r_x(p_x-t_x) % % \MPreciprocal contains precomputed 1/D: % \dimen18=\MPreciprocal\dimen18 % \dimen14=\MPreciprocal\dimen14 % \edef#2{\withoutpt\the\dimen18}% % p_x^\prime % \edef#4{\withoutpt\the\dimen14}} % p_y^\prime % % faster but not that often used \def\doMPconcat#1#2#3#4% {\dimen12\dimexpr#1\points-\dimen 8\relax % p_x-t_x \dimen14\dimexpr#3\points-\dimen10\relax % p_y-t_y \dimen18\dimexpr\withoutpt\the\dimen6\dimen12-\withoutpt\the\dimen4\dimen14\relax % s_y(p_x-t_x)-r_y(p_y-t_y) \dimen14\dimexpr\withoutpt\the\dimen0\dimen14-\withoutpt\the\dimen2\dimen12\relax % s_x(p_y-t_y)-r_x(p_x-t_x) \edef#2{\withoutpt\the\dimexpr\MPreciprocal\dimen18\relax}% % p_x^\prime \edef#4{\withoutpt\the\dimexpr\MPreciprocal\dimen14\relax}} % p_y^\prime %D One reason for Daniel to write this patch was that at small sizes %D the accuracy was less than optimal. Here is a test that demonstrates %D that his alternative is pretty good: %D %D \startlinecorrection %D \startMPcode %D for i = 5cm,1cm,5mm,1mm,.5mm,.1mm,.01mm : %D draw fullcircle scaled i withpen pencircle xscaled (i/10) yscaled (i/20) rotated 45 ; %D endfor ; %D \stopMPcode %D \stoplinecorrection %D The following explanation of the conversion process was %D posted to the \PDFTEX\ mailing list by Tanmoy. The original %D macro was part of a set of macro's that included sinus and %D cosinus calculations as well as scaling and translating. The %D \METAPOST\ to \PDF\ conversion however only needs %D transformation. %M \start \switchtobodyfont [ss] %D Given a point $(U_x, U_y)$ in user coordinates, the business %D of \POSTSCRIPT\ is to convert it to device space. Let us say %D that the device space coordinates are $(D_x, D_y)$. Then, in %D \POSTSCRIPT\ $(D_x, D_y)$ can be written in terms of %D $(U_x, U_y)$ in matrix notation, either as %D %D \placeformula %D \startformula %D \pmatrix{D_x&D_y&1\cr} = \pmatrix{U_x&U_y&1\cr} %D \pmatrix{s_x&r_x&0\cr %D r_y&s_y&0\cr %D t_x&t_y&1\cr} %D \stopformula %D %D or %D %D \placeformula %D \startformula %D \pmatrix{D_x\cr D_y\cr 1} = \pmatrix{s_x&r_y&t_x\cr %D r_x&s_y&t_y\cr %D 0 &0 &1 \cr} %D \pmatrix{U_x\cr %D U_y\cr %D 1 \cr} %D \stopformula %D %D both of which is a shorthand for the same set of equations: %D %D \placeformula %D \startformula %D D_x = s_x U_x + r_y U_y + t_x %D \stopformula %D %D \placeformula %D \startformula %D D_y = r_x U_x + s_y U_y + t_y %D \stopformula %D %D which define what is called an `affine transformation'. %D %D \POSTSCRIPT\ represents the `transformation matrix' as a %D six element matrix instead of a $3\times 3$ array because %D three of the elements are always~0, 0 and~1. Thus the above %D transformation is written in postscript as $[s_x\, r_x\, %D r_y\, s_y\, t_x\, t_y]$. However, when doing any %D calculations, it is useful to go back to the original %D matrix notation (whichever: I will use the second) and %D continue from there. %D %D As an example, if the current transformation matrix is %D $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$ and you say \typ{[a b %D c d e f] concat}, this means: %D %D \startnarrower %D Take the user space coordinates and transform them to an %D intermediate set of coordinates using array $[a\, b\, c\, d\, %D e\, f]$ as the transformation matrix. %D %D Take the intermediate set of coordinates and change them to %D device coordinates using array $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$ %D as the transformation matrix. %D \stopnarrower %D %D Well, what is the net effect? In matrix notation, it is %D %D \placeformula %D \startformula %D \pmatrix{I_x\cr I_y\cr 1\cr} = \pmatrix{a&c&e\cr %D b&d&f\cr %D 0&0&1\cr} %D \pmatrix{U_x\cr %D U_y\cr %D 1 \cr} %D \stopformula %D %D \placeformula %D \startformula %D \pmatrix{D_y\cr D_y\cr 1\cr} = \pmatrix{s_x&r_y&t_x\cr %D r_x&s_y&t_y\cr %D 0 &0 &1 \cr} %D \pmatrix{I_x\cr %D I_y\cr %D 1 \cr} %D \stopformula %D %D where $(I_x, I_y)$ is the intermediate coordinate. %D %D Now, the beauty of the matrix notation is that when there is %D a chain of such matrix equations, one can always compose %D them into one matrix equation using the standard matrix %D composition law. The composite matrix from two matrices can %D be derived very easily: the element in the $i$\high{th} %D horizontal row and $j$\high{th} vertical column is %D calculated by`multiplying' the $i$\high{th} row of the first %D matrix and the $j$\high{th} column of the second matrix (and %D summing over the elements). Thus, in the above: %D %D \placeformula %D \startformula %D \pmatrix{D_x\cr D_y\cr 1} = \pmatrix{s_x^\prime&r_y^\prime&t_x^\prime\cr %D r_x^\prime&s_y^\prime&t_y^\prime\cr %D 0 &0 &0 \cr} %D \pmatrix{U_x\cr %D U_y\cr %D 1 \cr} %D \stopformula %D %D with %D %D \placeformula %D \startformula %D \eqalign %D {s_x^\prime & = s_x a + r_y b \cr %D r_x^\prime & = r_x a + s_y b \cr %D r_y^\prime & = s_x c + r_y d \cr %D s_y^\prime & = r_x c + s_y d \cr %D t_x^\prime & = s_x e + r_y f + t_x \cr %D t_y^\prime & = r_x e + s_y f + t_y \cr} %D \stopformula %D In fact, the same rule is true not only when one is going %D from user coordinates to device coordinates, but whenever %D one is composing two `transformations' together %D (transformations are `associative'). Note that the formula %D is not symmetric: you have to keep track of which %D transformation existed before (i.e.\ the equivalent of %D $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$) and which was %D specified later (i.e.\ the equivalent of $[a\, b\, c\, d\, %D e\, f]$). Note also that the language can be rather %D confusing: the one specified later `acts earlier', %D converting the user space coordinates to intermediate %D coordinates, which are then acted upon by the pre||existing %D transformation. The important point is that order of %D transformation matrices cannot be flipped (transformations %D are not `commutative'). %D %D Now what does it mean to move a transformation matrix %D before a drawing? What it means is that given a point %D $(P_x, P_y)$ we need a different set of coordinates %D $(P_x^\prime, P_y^\prime)$ such that if the transformation %D acts on $(P_x^\prime, P_y^\prime)$, they produce $(P_x, %D P_y)$. That is we need to solve the set of equations: %D %D \placeformula %D \startformula %D \pmatrix{P_x\cr P_y\cr 1\cr} = \pmatrix{s_x&r_y&t_x\cr %D r_x&s_y&t_y\cr %D 0 &0 &1 \cr} %D \pmatrix{P_x^\prime\cr %D P_y^\prime\cr %D 1 \cr} %D \stopformula %D %D Again matrix notation comes in handy (i.e. someone has %D already solved the problem for us): we need the inverse %D transformation matrix. The inverse transformation matrix can %D be calculated very easily: %D %D \placeformula %D \startformula %D \pmatrix{P_x^\prime\cr P_y^\prime\cr 1\cr} = %D \pmatrix{s_x^\prime&r_y^\prime&t_x^\prime\cr %D r_x^\prime&s_y^\prime&t_y^\prime\cr %D 0 &0 &1 \cr} %D \pmatrix{P_x\cr %D P_y\cr %D 1 \cr} %D \stopformula %D %D where, the inverse transformation matrix is given by %D %D \placeformula %D \startformula %D \eqalign %D {D & = s_x s_y - r_x r_y \cr %D s_x^\prime & = s_y / D \cr %D s_y^\prime & = s_x / D \cr %D r_x^\prime & = - r_x / D \cr %D r_y^\prime & = - r_y / D \cr %D t_x^\prime & = ( - s_y t_x + r_y t_y ) / D \cr %D t_y^\prime & = ( r_x t_x - s_x t_y ) / D \cr} %D \stopformula %D %D And you can see that when expanded out, this does %D give the formulas: %D %D \placeformula %D \startformula %D P_x^\prime = { { s_y(p_x-t_x) + r_y(t_y-p_y) } \over %D { s_x s_y-r_x r_y } } %D \stopformula %D %D \placeformula %D \startformula %D P_y^\prime = { { s_x(p_y-t_y) + r_x(t_x-p_x) } \over %D { s_x*s_y-r_x*r_y } } %D \stopformula %D %D The code works by representing a real number by converting %D it to a dimension to be put into a \DIMENSION\ register: 2.3 would %D be represented as 2.3pt for example. In this scheme, %D multiplying two numbers involves multiplying the \DIMENSION\ %D registers and dividing by 65536. Accuracy demands that the %D division be done as late as possible, but overflow %D considerations need early division. %D %D Division involves dividing the two \DIMENSION\ registers and %D multiplying the result by 65536. Again, accuracy would %D demand that the numerator be multiplied (and|/|or the %D denominator divided) early: but that can lead to overflow %D which needs to be avoided. %D %D If nothing is known about the numbers to start with (in %D concat), I have chosen to divide the 65536 as a 256 in each %D operand. However, in the series calculating the sine and %D cosine, I know that the terms are small (because I never %D have an angle greater than 45 degrees), so I chose to %D apportion the factor in a different way. %M \stop %D The path is output using the values saved on the stack. If %D needed, all coordinates are recalculated. \def\finishMPpath {\PDFcode{\ifcase\finiMPpath W n\or S\or f\or B\fi}} \def\processMPpath {\checkMPpath \ifcase\nofMPsegments\else \flushMPpath \closeMPpath \finishMPpath \fi \let\handleMPsequence\dohandleMPsequence \resetMPstack \nofMPsegments\zerocount \handleMPsequence} %D The following \METAPOST\ code is quite valid but, when %D processed and converted to \PDF, will make a file %D unprintable on a Hewlett Packard printer (from Acrobat %D $v<=5$). Who is to blame, the driver of the OS layer in %D between, is hard to determine, so we add an additional %D check. %D %D \starttyping %D clip currentpicture to origin -- cycle ; %D setbounds currentpicture to fullsquare scaled 5cm ; %D \stoptyping \def\checkMPpath {\ifcase\finiMPpath \ifnum\nofMPsegments<\plusthree % n is one ahead \message{omitting zero clip path}% \nofMPsegments\zerocount \fi \fi} %D In \PDF\ the \type{cm} operator must precede the path %D specification. We therefore can output the \type{cm} at %D the moment we encounter it. \def\handleMPpathconcat {\presetMPconcat \PDFcode{\gMPs1 \gMPs2 \gMPs3 \gMPs4 \gMPs5 \gMPs6 cm}% \resetMPstack} \def\handleMPpathscale {\presetMPscale \PDFcode{\gMPs1 0 0 \gMPs2 0 0 cm}% \resetMPstack} %D This macro interprets the path and saves it as compact as %D possible. \def\dohandleMPpath#1% {\ifcase\lccode`#1\relax \@EA\dohandleMPpathA \else \@EA\dohandleMPpathB \fi#1} \let\dohandleMPpathA\setMPsequence \def\installMPSkeywordP#1#2% {\expandafter\def\csname\@@MP:P:#1\endcsname{#2}} \def\installMPSshortcutP#1#2% todo: \let {\expandafter\let\csname\@@MP:P:#1\expandafter\endcsname\csname\@@MP:P:#2\endcsname} \def\dohandleMPpathB#1 % {\def\somestring{#1}% \executeifdefined{\@@MP:P:\somestring}\relax \handleMPsequence} \installMPSkeywordP \PSlineto {\setMPkeyword0 } \installMPSkeywordP \PScurveto {\setMPkeyword1 } \installMPSkeywordP \PSrlineto {\setMPkeyword2 } \installMPSkeywordP \PSmoveto {\edef\lastMPmoveX{\gMPs1}% \edef\lastMPmoveY{\gMPs2}% \resetMPstack \setMPkeyword3 } \installMPSkeywordP \PSclip {% \chardef\finiMPpath\zerocount % already \let\handleMPsequence\processMPpath} \installMPSkeywordP \PSgsave {\chardef\finiMPpath\plusthree} \installMPSkeywordP \PSgrestore {} \installMPSkeywordP \PSfill {\ifcase\finiMPpath \chardef\finiMPpath\plustwo \let\handleMPsequence\processMPpath \fi} \installMPSkeywordP \PSstroke {\ifcase\finiMPpath \chardef\finiMPpath\plusone \fi \let\handleMPsequence\processMPpath} \installMPSkeywordP \PSclosepath {\def\closeMPpath{\PDFcode{h}}} \installMPSkeywordP \PSconcat {\cleanupMPconcat \let\flushMPpath\flushconcatMPpath \handleMPpathconcat} \installMPSkeywordP \PSscale {\let\flushMPpath\flushconcatMPpath \handleMPpathscale} \installMPSshortcutP {l} \PSlineto \installMPSshortcutP {r} \PSrlineto \installMPSshortcutP {m} \PSmoveto \installMPSshortcutP {c} \PScurveto \installMPSshortcutP {q} \PSgsave \installMPSshortcutP {Q} \PSgrestore \installMPSshortcutP {S} \PSstroke \installMPSshortcutP {F} \PSfill \installMPSshortcutP {B} \PSgsave \installMPSshortcutP {W} \PSclip \installMPSshortcutP {p} \PSclosepath \installMPSshortcutP {s} \PSscale \installMPSshortcutP {t} \PSconcat %D \macros %D {twodigitMPoutput} %D %D We can limit the precision to two digits after the comma %D by saying: %D %D \starttyping %D \twodigitMPoutput %D \stoptyping %D %D This option only works in \CONTEXT\ combined with \ETEX. \def\twodigitMPoutput {\let\!MP \twodigitrounding \def\!MPgMPs##1{\twodigitrounding{\gMPs##1}}% \def\!MPgMPa##1{\twodigitrounding{\gMPa##1}}} \let\!MP \empty \let\!MPgMPa\gMPa \let\!MPgMPs\gMPs %D Here comes the special-specific code: \def\setMPextensions {\ifconditional\manyMPspecials \def\MPrgbnumber##1{\expandafter\doMPrgbnumber##10000.00000\relax}% \def\doMPrgbnumber##1.##2##3##4##5##6\relax{##2##3##4##5}% \else \def\MPrgbnumber##1{\expandafter\doMPrgbnumber##1000.0000\relax}% \def\doMPrgbnumber##1.##2##3##4##5\relax{##2##3##4}% \fi} % \settrue\manyMPspecials \setMPextensions %D This macro handles the special definitions that are %D passed as comment. %D The implementation below saves the data on the stack in %D a way similar to the macros in \type {supp-pdf.tex}, and %D just overload a few already defined handlers. That way, %D the existing macros are still generic. \footnote {Actually, %D the macros here are just as generic.} %D %D Currently the only extension concerns shading, which is %D accomplished by handling yet another value of \type %D {\finiMPpath}. The recource disctionary is stored and %D later picked up by the general \CONTEXT\ figure inclusion %D macros. %D The \type {%%MetaPostSpecials: version.revision signal} line %D triggers this module into handling color specifications kind %D of special. We need this safeguard for non||special %D usage. %D When defined inline, we use another macro to handle the %D definitions. Actually, this macro is called by the %D previous ones. \chardef\MPspecialversion = 0 % specials when >1 \chardef\MPspecialrevision = 0 % specials when >1 \chardef\MPspecialsignal = 0 % passed on by graphic \chardef\inlineMPspecials = 1 % only needed for stack resetting \def\dohandleMPspecialcomment#1 {\setMPargument{#1}% \advance\scratchcounter \minusone \ifcase\scratchcounter \handleMPspecialcommand \donetrue \doresetMPstack \let\handleMPsequence\dohandleMPsequence \expandafter\handleMPsequence \else \expandafter\dohandleMPspecialcomment \fi} \def\handleMPspecialcomment #1 % number of arguments {\doresetMPstack \scratchcounter#1\relax \ifcase\scratchcounter % when zero, inline shading is used \chardef\inlineMPspecials\plusone \let\handleMPsequence\dohandleMPsequence \expandafter\handleMPsequence \else \chardef\inlineMPspecials\zerocount \expandafter\dohandleMPspecialcomment \fi} %D When defined inline, we use another macro to handle the %D definitions. Actually, this macro is called by the %D previous ones. \def\handleMPspecialcommand {\ifcase\inlineMPspecials\or \advance\nofMParguments \minusone % pop the size \fi \ifundefined\MPspecial % beware, no real \if \message{[unknown \MPspecial]}% \else \csname\MPspecial\endcsname \fi \ifcase\inlineMPspecials \doresetMPstack % 0 \else \resetMPstack % 1 \fi} \def\handleMPspecialscomment #1.#2 #3 % version.revision signal #4=div=1000|10000 {\doresetMPstack \chardef\MPspecialversion #1% \chardef\MPspecialrevision#2% \chardef\MPspecialsignal #3% \let\handleMPsequence\dohandleMPsequence \ifnum#1=\plusone \expandafter\handleMPsequence \else \expandafter\handleMPspecialscommentx \fi} \def\handleMPspecialscommentx #1 % version 2 {\ifnum10000=0#1\relax \settrue \manyMPspecials \else \setfalse\manyMPspecials \fi \setMPextensions \handleMPsequence} \def\handleMPrgbcolor {\edef\lastMPrvalue{\csname\@@MP01\endcsname}%{\gMPs1}% \edef\lastMPgvalue{\csname\@@MP02\endcsname}%{\gMPs2}% \edef\lastMPbvalue{\csname\@@MP03\endcsname}%{\gMPs3}% \ifnum\MPrgbnumber\lastMPrvalue=123\relax \csname\@@MPSK\number\MPrgbnumber\lastMPbvalue\endcsname \else \dohandleMPrgb\lastMPrvalue\lastMPgvalue\lastMPbvalue \fi} \def\handleMPgraycolor{\dohandleMPgray{\gMPs1}} \def\handleMPcmykcolor{\dohandleMPcmyk{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}} \def\handleMPspotcolor{\dohandleMPspot{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}} % \newcontitional\ignoreMPpath \def\finishMPpath {\ifconditional\ignoreMPpath \PDFcode{W n\space}% \else \PDFcode{\ifcase\finiMPpath W n\or S\or f\or B\else W n\fi}% \fi \ifx\extraMPpathcode\empty\else \PDFcode{\extraMPpathcode}% \let\extraMPpathcode\empty \fi \setfalse\ignoreMPpath} \def\processMPpath {\checkMPpath % ! \flushMPpath \closeMPpath \finishMPpath \let\handleMPsequence\dohandleMPsequence \resetMPstack \nofMPsegments\zerocount \handleMPsequence} \protect \endinput % When i'm bored ... % \newcatcodetable\mpscatcodes % \startcatcodetable \mpscatcodes % \catcode`\| \@@comment % \catcode`\% \@@active % \catcode`\[ \@@active % \catcode`\] \@@active % \catcode`\{ \@@active % \catcode`\} \@@active % \stopcatcodetable % \def\keepMPspecials % {\setcatcodecommand \mpscatcodes `\% \letterpercent % \setcatcodecommand \mpscatcodes `\[ \letterleftbracket % \setcatcodecommand \mpscatcodes `\] \letterrightbracket % \setcatcodecommand \mpscatcodes `\{ \letterleftbrace % \setcatcodecommand \mpscatcodes `\} \letterrightbrace} % \def\ignoreMPspecials % {\setcatcodecommand \mpscatcodes `\% \letterpercent % \setcatcodecommand \mpscatcodes `\[ \empty % \setcatcodecommand \mpscatcodes `\] \empty % \setcatcodecommand \mpscatcodes `\{ \empty % \setcatcodecommand \mpscatcodes `\} \empty} % \def\obeyMPspecials % {\setcatcodecommand \mpscatcodes `\% \letterpercent % \setcatcodecommand \mpscatcodes `\[ \letterleftbracket % \setcatcodecommand \mpscatcodes `\] \letterrightbracket % \setcatcodecommand \mpscatcodes `\{ \letterleftbrace % \setcatcodecommand \mpscatcodes `\} \letterrightbrace} % \gdef\setMPspecials| % {\setcatcodetable\mpscatcodes % \lccode`\-=\zerocount % to be sure, it could be a letter % \lccode`\%=`\%% % otherwise it's seen as a number % \def\({\char40\relax }% % \def\){\char41\relax }% % \def\\{\char92\relax }% % \def\0{\octalMPcharacter0}% % \def\1{\octalMPcharacter1}% % \def\2{\octalMPcharacter2}% % \def\3{\octalMPcharacter3}% % \def\4{\octalMPcharacter4}% % \def\5{\octalMPcharacter5}% % \def\6{\octalMPcharacter6}% % \def\7{\octalMPcharacter7}% % \def\8{\octalMPcharacter8}% % \def\9{\octalMPcharacter9}} context-modules-20240428/texmf-dist/tex/context/base/mkii/page-lin.mkii0000644000175000017500000002403514536300610024653 0ustar hillehille%D \module %D [ file=page-lin, % copied from main-001 %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=Line Numbering, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Line Numbering} \unprotect \newif\ifnumberinglines \newif\iftypesettinglines \newcount\linenumber \newcount\linestepper \chardef\linenumberlocation=0 \newtoks\beforeeverylinenumbering \newtoks\aftereverylinenumbering % het gebruik van \setlocalreference scheelt een hash entry \def\dodoshowlinenumber % for use elsewhere, to be extended {\doplacelinenumber \global\advance\linenumber \plusone} \def\completelinenumber {\@@rnleft\convertnumber\@@rnconversion\linenumber\@@rnright} \def\dosetuplinenumbering[#1]% {\getparameters[\??rn][\c!start=1,\c!step=1,#1]% \global\linenumber\plusone} \def\setuplinenumbering {\dosingleargument\dosetuplinenumbering} \def\dostartnummerenLINE {\EveryPar{\placelinenumber}} % why not append to everypar ? better \def\dostopnummerenLINE {\the\aftereverylinenumbering \egroup} \def\dostartnummerenVERB {\EveryLine{\placelinenumber}} \def\dostopnummerenVERB {\the\aftereverylinenumbering \egroup} \newevery \everylinenumber \relax \def\dodoplacelinenumber {% beware of em's, the font is already switched ! \setbox\scratchbox\hbox {\setbox0\hbox{\@@rncommand{\completelinenumber}}\vsmashbox0% \ifcase\linenumberlocation \iftypesettinglines % hack \expandafter\llap \else \expandafter\rlap \fi{\hbox to \@@rnwidth{\box0\hss}}% was \llap, nog testen !! \or \inleftmargin {\forgetall \doifelse\@@rnwidth\v!margin {\hsize\leftmarginwidth}{\hsize\@@rnwidth}% \alignedline\@@rnalign\v!right{\box0\hskip\@@rndistance}}% \else \inrightmargin {\forgetall \doifelse\@@rnwidth\v!margin {\hsize\rightmarginwidth}{\hsize\@@rnwidth}% \alignedline\@@rnalign\v!left{\hskip\@@rndistance\box0}}% \fi}% \vsmashbox\scratchbox \box\scratchbox \the\everylinenumber} \def\complexstartlinenumbering[#1]% {\doifnot{#1}\v!continue {\doifnumberelse{#1} {\global\linenumber#1\relax} {\doifelsenothing\@@rnstart {\global\linenumber\plusone} {\global\linenumber\@@rnstart}}}% \chardef\linenumberlocation\zerocount \processaction [\@@rnlocation] [ \v!inmargin=>\chardef\linenumberlocation\plusone, \v!inleft=>\chardef\linenumberlocation\plusone, \v!inright=>\chardef\linenumberlocation\plustwo, \v!margin=>\chardef\linenumberlocation\plusone]% % \v!text=>\chardef\linenumberlocation\zerocount, %\s!unknown=>\chardef\linenumberlocation\zerocount, %\s!default=>\chardef\linenumberlocation\zerocount]% \doifnot\@@rnwidth\v!margin {\freezedimenmacro\@@rnwidth \ifcase\linenumberlocation % text \advance\leftskip\@@rnwidth\relax \fi}% \freezedimenmacro\@@rndistance \chardef\@@rn@@rnmethod \ifprocessingverbatim\zerocount\else\iftypesettinglines\plusone\else\plustwo\fi\fi \processaction [\@@rnmethod] [ \v!type=>\chardef\@@rn@@rnmethod\zerocount, \v!line=>\chardef\@@rn@@rnmethod\plusone, \v!text=>\chardef\@@rn@@rnmethod\plustwo, \v!file=>\chardef\@@rn@@rnmethod\plusthree]% \ifcase\@@rn@@rnmethod % verbatim, line by line \typesettinglinestrue \let\dostartnummeren\dostartnummerenVERB \let\stoplinenumbering\dostopnummerenVERB \def\placelinenumber {\doplacelinenumber \global\advance\linenumber \plusone}% \or % text, line by line \let\dostartnummeren\dostartnummerenLINE \let\stoplinenumbering\dostopnummerenLINE \def\placelinenumber {\doplacelinenumber \global\advance\linenumber \plusone}% \or % text, whole lot \let\dostartnummeren\dostartnummerenPAR \let\stoplinenumbering\dostopnummerenPAR \def\placelinenumber {\global\advance\linenumber \minusone \doplacelinenumber}% \or % verbatim, selective line by line \typesettinglinestrue \let\dostartnummeren\dostartnummerenVERB \let\stoplinenumbering\dostopnummerenVERB \def\placelinenumber {\global\linenumber\verbatimlinenumber \global\advance\linenumber \minusone \doplacelinenumber}% \fi \dostartnummeren} \def\startlinenumbering {\bgroup \the\beforeeverylinenumbering \numberinglinestrue \complexorsimpleempty\startlinenumbering} \def\donoplacelinenumber {\the\everylinenumber} \def\doplacelinenumber {\ifnum\linenumber<\@@rnstart\relax \donoplacelinenumber \else \ifnum\numexpr(\linenumber/\@@rnstep)*\@@rnstep\relax=\linenumber \doattributes\??rn\c!style\c!color\dodoplacelinenumber \else \donoplacelinenumber \fi \fi} \def\someline[#1]% {\dolinereference0[#1]\ignorespaces} \def\startline[#1]% {\dolinereference1[#1]\ignorespaces} \def\stopline[#1]% {\removelastspace\dolinereference2[#1]} \def\inline#1[#2]% {\doifelsenothing{#1} {\doifinstringelse{--}\currenttextreference {\in{\leftlabeltext\v!lines}{\rightlabeltext\v!lines}[\@@rnprefix#2]} {\in{\leftlabeltext\v!line }{\rightlabeltext\v!line }[\@@rnprefix#2]}} {\in{#1}[\@@rnprefix#2]}} \def\dostartnummerenPAR {\beginofshapebox \doglobal\newcounter\linereference} % localcrossref heroverwegen \def\setlinereference#1#2#3#4% {\setxvalue{lrf:#1}{\noexpand\dogetlinereference{#2}{#3}{#4}}} \def\getlinereference#1% {\getvalue{lrf:#1}} \def\dogetlinereference#1#2#3% {\edef\linereferencename{#1}% \edef\linereferenceline{#2}% \edef\linereferenceplus{#3}} % 1 xxx xxx xxx xxx xxx xxx xxx % 2 xxx yyy yyy yyy yyy yyy yyy <= start y % 3 yyy yyy yyy yyy yyy yyy yyy % 4 yyy yyy yyy yyy yyy xxx xxx <= stop y % 5 xxx xxx xxx xxx xxx xxx xxx \def\dolinereference#1[#2]% {\bgroup \dimen0=\strutdp \doif\@@rnreferencing\v!on {\doglobal\increment\linereference % start 1=>(n=y,l=0,p=1) % stop 2=>(n=y,l=0,p=2) \setlinereference{\linereference}{\@@rnprefix#2}{0}{#1}% \advance\dimen0 \linereference sp}% \prewordbreak \vrule \!!width \zeropoint \!!depth \dimen0 \!!height \zeropoint \prewordbreak \egroup} \def\dostopnummerenPAR % dp's -> openstrutdepth {\endofshapebox \checkreferences \linestepper\zerocount \reshapebox{\global\advance\linestepper \plusone}% \global\advance\linenumber \linestepper \doifelse\@@rnreferencing\v!on {\reshapebox % We are going back! {\global\advance\linenumber \minusone \dimen0=\dp\shapebox \advance\dimen0 -\strutdp\relax \ifdim\dimen0>\zeropoint % 1=>4 | 2=>4 1=>2 % start 1=>(n=y,l=2,p=1) % stop 2=>(n=y,l=4,p=2) \dostepwiserecurse\plusone{\number\dimen0}\plusone {\getlinereference\recurselevel \setlinereference\recurselevel {\linereferencename}{\the\linenumber}{\linereferenceplus}}% \fi}% \global\advance\linenumber \linestepper \ifnum\linereference>\zerocount % anders vreemde loop in paragraphs+recurse \dorecurse\linereference {\getlinereference\recurselevel \ifnum\linereferenceplus=2 % stop % ref y: text = 4 / Kan dit buiten referentie mechanisme om? \expanded{\setlocalcrossreference {\referenceprefix\linereferencename}{}{}{\linereferenceline}}% \fi}% \dorecurse\linereference {\getlinereference\recurselevel \ifnum\linereferenceplus<2 % start / lone \ifnum\linereferenceplus=1 % start \getreferenceelements\linereferencename % text = 4 \ifnum\linereferenceline<0\currenttextreference\relax % 0 prevents error \edef\linereferenceline{\linereferenceline--\currenttextreference}% \fi \fi \expanded{\setlocalcrossreference {\referenceprefix\linereferencename}{}{}{\linereferenceline}}% \fi}% \global\let\scratchline\linenumber % We are going back! \reshapebox {\doglobal\decrement\scratchline \hbox {\dorecurse\linereference {\getlinereference\recurselevel \getreferenceelements\linereferencename \beforesplitstring\currenttextreference--\at--\to\firstline \ifnum\firstline=\scratchline\relax % beter een rawtextreference, i.e. expanded % \textreference[\linereferencename]{\currenttextreference}% \rawtextreference\s!lin\linereferencename\currenttextreference \expanded{\setlocalcrossreference {\referenceprefix\linereferencename}{}{}{0}}% ==done \fi}% \dimen0\dp\shapebox \advance\dimen0 -\strutdp\relax \ifdim\dimen0>\zeropoint \dp\shapebox\strutdp \fi \placelinenumber\box\shapebox}}% no \strut ! \else \reshapebox{\hbox{\placelinenumber\box\shapebox}}% no \strut ! \fi} {\reshapebox{\global\advance\linenumber \minusone}% \global\advance\linenumber \linestepper \reshapebox{\hbox{\placelinenumber\box\shapebox}}}% no \strut ! \global\advance\linenumber \linestepper \flushshapebox \the\aftereverylinenumbering \egroup} \setuplinenumbering [\c!method=, \c!conversion=\v!numbers, \c!start=1, \c!step=1, \c!location=\v!margin, \c!style=, \c!color=, \c!prefix=, \c!referencing=\v!on, \c!width=\ifcase\linenumberlocation2em\else\v!margin\fi, \c!left=, \c!right=, \c!command=, \c!distance=\zeropoint, \c!align=\ifcase\linenumberlocation\v!right\or\v!right\or\v!left\fi] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/symb-was.mkii0000644000175000017500000002235714536300610024726 0ustar hillehille%D \module %D [ file=symb-was, %D version=2005.10.15, %D title=\CONTEXT\ Symbol Libraries, %D subtitle=Roland Waldi's Symbols (wasy-2), %D author=Henning Hraban Ramm, %D date=\currentdate, %D copyright={Public Domain}] %C %C This module is in the public domain. %D This module implements the Roland Waldi Symbole font %D (wasy). The names are derived from the \LATEX\ package %D \type {wasysym} by Axel Kielhorn. The symbols are %D available as Type~1 font and are included in \TEX\ distributions. %D %D This symbol font offers basic sets of astronomical, astrological, %D geometrical, musical and general symbols, plus those needed %D for the APL programming language and some more. %D This module leaves out most of the math stuff, such as operators %D and integrals. %D %D The font was designed by Robert Waldi and is in the public domain. %D The PS Type 1 fonts are by Taco Hoekwater, \hyphenatedurl %D {taco.hoekwater@wkap.nl}, and also in the public domain. %D The wasysym \LATEX\ package is (c) Axel Kielhorn, \hyphenatedurl %D {A.Kielhorn@web.de}, under the LaTeX Project Public License. %D This stuff lives in \hyphenatedurl {http://dante.ctan.org/CTAN/fonts/wasy2/}. %D %D This \CONTEXT\ module is by Henning Hraban Ramm, \hyphenatedurl %D {hraban@fiee.net}, given to the public domain as far as allowed %D (some parts are copied from the \LATEX\ package). %D Slightly patched by HH. \loadmapfile[original-wasy.map] \unprotect % there are also fonts for 6, 7, 8, 9 pt; how can we access these automatically? % how about the bold wasy font? \definefontsynonym [WaldiSymbol] [wasy10] \definefontsynonym [WaldiSymbolBold] [wasyb10] \def\WaldiSymbol#1{\getglyph{WaldiSymbol}{\char#1}} \def\wasy@over#1#2{{\setbox0\hbox{$#2$}\hbox to \wd0{\hss$#1$\hss}\kern-\wd0\box0}} % general symbols \startsymbolset [wasy general] \definesymbol [male] [\WaldiSymbol {26}] \definesymbol [female] [\WaldiSymbol {25}] \definesymbol [currency] [\WaldiSymbol {27}] \definesymbol [cent] [\WaldiSymbol{103}] \definesymbol [lozenge] [\WaldiSymbol {53}] \definesymbol [kreuz] [\WaldiSymbol {54}] \definesymbol [smiley] [\WaldiSymbol {44}] \definesymbol [blacksmiley] [\WaldiSymbol {45}] \definesymbol [frownie] [\WaldiSymbol {47}] \definesymbol [sun] [\WaldiSymbol {46}] \definesymbol [checked] [\WaldiSymbol {8}] \definesymbol [brokenvert] [\WaldiSymbol{124}] \definesymbol [diameter] [\WaldiSymbol {31}] \definesymbol [invdiameter] [\WaldiSymbol {21}] \definesymbol [phone] [\WaldiSymbol {7}] \definesymbol [recorder] [\WaldiSymbol {6}] \definesymbol [clock] [\WaldiSymbol {28}] \definesymbol [permil] [\WaldiSymbol{104}] \definesymbol [bell] [\WaldiSymbol {10}] \definesymbol [ataribox] [\WaldiSymbol{109}] \definesymbol [pointer] [\WaldiSymbol {9}] \definesymbol [lightning] [\WaldiSymbol {18}] \definesymbol [agemO] [\WaldiSymbol {48}] \stopsymbolset \startsymbolset [wasy music] \definesymbol [eighthnote] [\WaldiSymbol{11}] \definesymbol [quarternote] [\WaldiSymbol{12}] \definesymbol [halfnote] [\WaldiSymbol{13}] \definesymbol [fullnote] [\WaldiSymbol{14}] \definesymbol [twonotes] [\WaldiSymbol{15}] \stopsymbolset \startsymbolset [wasy astronomy] \definesymbol [ascnode] [\WaldiSymbol{19}] \definesymbol [descnode] [\WaldiSymbol{20}] \definesymbol [astrosun] [\mathematics{\odot}] \definesymbol [sun] [\WaldiSymbol{46}] % additional \definesymbol [newmoon] [\WaldiSymbol{32}] \definesymbol [fullmoon] [\WaldiSymbol{35}] \definesymbol [rightmoon] [\WaldiSymbol{37}] \definesymbol [leftmoon] [\WaldiSymbol{36}] \definesymbol [vernal] [\WaldiSymbol{23}] \definesymbol [mercury] [\WaldiSymbol{39}] \definesymbol [mars] [\dontleavehmode\lower.2ex\hbox{\WaldiSymbol{26}}] \definesymbol [saturn] [\WaldiSymbol{89}] \definesymbol [neptune] [\WaldiSymbol{91}] \definesymbol [earth] [\dontleavehmode\lower.3ex\hbox{\WaldiSymbol{38}}] \definesymbol [venus] [\dontleavehmode\raise.2ex\hbox{\WaldiSymbol{25}}] \definesymbol [jupiter] [\WaldiSymbol{88}] \definesymbol [uranus] [\WaldiSymbol{90}] \definesymbol [pluto] [\WaldiSymbol{92}] \stopsymbolset \startsymbolset [wasy astrology] \definesymbol [conjunction] [\WaldiSymbol {86}] \definesymbol [opposition] [\WaldiSymbol {87}] \definesymbol [aries] [\WaldiSymbol {23}] \definesymbol [libra] [\WaldiSymbol {97}] \definesymbol [taurus] [\WaldiSymbol {93}] \definesymbol [scorpio] [\WaldiSymbol {98}] \definesymbol [gemini] [\WaldiSymbol {94}] \definesymbol [sagittarius] [\WaldiSymbol {99}] \definesymbol [cancer] [\WaldiSymbol {95}] \definesymbol [capricornus] [\WaldiSymbol{100}] \definesymbol [leo] [\WaldiSymbol {19}] \definesymbol [aquarius] [\WaldiSymbol{101}] \definesymbol [virgo] [\WaldiSymbol {96}] \definesymbol [pisces] [\WaldiSymbol{102}] \stopsymbolset \startsymbolset [wasy geometry] \definesymbol [fivestar] [\WaldiSymbol {69}] % HHR additional \definesymbol [hexstar] [\WaldiSymbol {65}] \definesymbol [varhexstar] [\WaldiSymbol {66}] \definesymbol [davidsstar] [\WaldiSymbol {67}] \definesymbol [Circle] [\WaldiSymbol {35}] \definesymbol [CIRCLE] [\WaldiSymbol {32}] \definesymbol [Leftcircle] [\WaldiSymbol {73}] \definesymbol [LEFTCIRCLE] [\WaldiSymbol {71}] \definesymbol [Rightcircle] [\WaldiSymbol {74}] \definesymbol [RIGHTCIRCLE] [\WaldiSymbol {72}] \definesymbol [LEFTcircle] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol{71}\hss}\WaldiSymbol{35}] \definesymbol [RIGHTcircle] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol{72}\hss}\WaldiSymbol{35}] \definesymbol [LEFTarrow] [\WaldiSymbol {16}] \definesymbol [RIGHTarrow] [\WaldiSymbol {17}] \definesymbol [UParrow] [\WaldiSymbol {75}] \definesymbol [DOWNarrow] [\WaldiSymbol {76}] \definesymbol [Box] [\WaldiSymbol {50}] \definesymbol [APLbox] [\WaldiSymbol{126}] \definesymbol [XBox] [\WaldiSymbol {52}] \definesymbol [Bowtie] [\WaldiSymbol {49}] \definesymbol [Diamond] [\WaldiSymbol {51}] \definesymbol [octagon] [\WaldiSymbol {56}] \definesymbol [hexagon] [\WaldiSymbol {55}] \definesymbol [varhexagon] [\WaldiSymbol {57}] \definesymbol [pentagon] [\WaldiSymbol {68}] \definesymbol [pentastar] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol{68}\hss}\lower.04em\hbox{\WaldiSymbol{69}}] % HHR additional \stopsymbolset \startsymbolset [wasy physics] \definesymbol [varangle] [\WaldiSymbol{30}] \definesymbol [invneg] [\WaldiSymbol{24}] \definesymbol [leftturn] [\WaldiSymbol{34}] \definesymbol [rightturn] [\WaldiSymbol{33}] \definesymbol [diameter] [\WaldiSymbol{31}] \definesymbol [invdiameter] [\WaldiSymbol{21}] % additional \definesymbol [therefore] [\WaldiSymbol {5}] \definesymbol [AC] [\mbox{\kern.05em\WaldiSymbol{58}\kern.05em}] \definesymbol [HF] [\dontleavehmode \lower.09em\hbox to \zeropoint{\kern.05em\WaldiSymbol{58}\hss}% \raise.09em\hbox{\kern.05em\WaldiSymbol{58}\kern.05em}] \definesymbol [VHF] [\WaldiSymbol{64}] \definesymbol [photon] [\hbox{\WaldiSymbol{58}\WaldiSymbol{58}\WaldiSymbol{58}\WaldiSymbol{58}}] \definesymbol [gluon] [\hbox{\WaldiSymbol{80}\WaldiSymbol{80}\WaldiSymbol{80}\WaldiSymbol{80}\WaldiSymbol{80}\WaldiSymbol{80}}] \stopsymbolset \startsymbolset [wasy apl] \definesymbol [APLup] [\WaldiSymbol{0}] \definesymbol [APLdown] [\WaldiSymbol{70}] \definesymbol [APLbox] [\WaldiSymbol{126}] \definesymbol [APLinv] [\dontleavehmode\hbox to \zeropoint{$\div$\hss}\WaldiSymbol{126}] \definesymbol [APLleftarrowbox] [\WaldiSymbol{112}] \definesymbol [APLrightarrowbox][\WaldiSymbol{113}] \definesymbol [APLuparrowbox] [\WaldiSymbol{110}] \definesymbol [APLdownarrowbox] [\WaldiSymbol{111}] \definesymbol [APLinput] [\WaldiSymbol{125}] \definesymbol [APLminus] [\dontleavehmode\raise.7ex\hbox{$-$}] \definesymbol [APLlog] [\WaldiSymbol{22}] \definesymbol [APLstar] [\WaldiSymbol{69}] \definesymbol [APLcomment] [\WaldiSymbol{127}] \definesymbol [notslash] [\wasy@over{/}{-}] \definesymbol [notbackslash] [\wasy@over{\backslash}{-}] % %definesymbol [APLvert] [\WaldiSymbol{}] %definesymbol [APLnot] [\WaldiSymbol{}] %definesymbol [APLcirc] [\WaldiSymbol{}] % % HH: messy, best define all combinations (todo) % \def\APLnot #1{\wasy@over{\sim }{#1}} \def\APLcirc#1{\wasy@over{\circ}{#1}} \def\APLvert#1{\wasy@over{\vert}{#1}} % \stopsymbolset %D \showsymbolset[wasy general] %D \showsymbolset[wasy music] %D \showsymbolset[wasy astronomy] %D \showsymbolset[wasy astrology] %D \showsymbolset[wasy geometry] %D \showsymbolset[wasy physics] %D \showsymbolset[wasy apl] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-ctx.mkii0000644000175000017500000001633614536300610024710 0ustar hillehille%D \module %D [ file=core-ctx, %D version=2006.08.16, % old stuff %D title=\CONTEXT\ Core Macros, %D subtitle=Job Control, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Job Control} \unprotect \chardef\preprocessmethod 2 % 0=no check 1=present_check 2=log_check \chardef\preprocessstate 0 % 1=found 2=not_present (skip) \chardef\preprocesslocal 0 % 0=no 1=yes \def \preprocesssuffix {.prep} \def\loadctxpreplist {\begingroup \chardef\XMLtokensreduction\plusone \ifcase\preprocessmethod % no checking \or % simple checking \or \doiffileexistselse{./\jobname.ctl} {\bgroup \defineXMLenvironment[ctx:preplist][local=no] {\doifelse{\XMLop{local}}{yes} {\global\chardef\preprocesslocal\plusone \writestatus\m!systems{loading ctx log file (local)}}% {\writestatus\m!systems{loading ctx log file (specified)}}} \donothing \defineXMLenvironmentsave[ctx:prepfile][done=no] \donothing {\edef\readfilename{\XMLflush{ctx:prepfile}}% \ifcase\preprocesslocal\else \splitfilename\readfilename \let\readfilename\splitoffbase \fi \writestatus\m!systems{registering \readfilename\space -> \XMLop{done}}% \setxvalue{fp..\readfilename}{\XMLop{done}}}% \processXMLfile{./\jobname.ctl}% \egroup}% {\global\chardef\preprocessmode\plusone}% \fi \global\let\loadctxpreplist\relax \endgroup} \appendtoks\loadctxpreplist\to\everystarttext % will become: \prependtoks\loadctxpreplist\to\everyjob \def\docheckprepfile {\ifcase\preprocessmethod \iftracefiles\writestatus\m!systems{preprocessing - not needed}\fi % no preprocessing \or % only check for existence \iftracefiles\writestatus\m!systems{preprocessing - check existence of \readfilename\preprocesssuffix}\fi \doiffileexistselse{\readfilename\preprocesssuffix} {\chardef\preprocessstate\plusone} \donothing \or % check when in list, otherwise assume normal file \bgroup \splitfilename\readfilename \ifx\splitofftype\empty % saveguard and speed up \iftracefiles\writestatus\m!systems{preprocessing - no suffix}\fi \egroup \else\ifcase\preprocesslocal % also ./ strippen \iftracefiles\writestatus\m!systems{preprocessing - check presence of \readfilename\preprocesssuffix}\fi \doifdefinedelse{fp..\readfilename} {\egroup \doiffileexistselse{\readfilename\preprocesssuffix} {\chardef\preprocessstate\plusone} {\chardef\preprocessstate\plustwo}}% {\doifdefinedelse{fp.../\readfilename} {\egroup \edef\readfilename{./\readfilename}% \doiffileexistselse{\readfilename\preprocesssuffix} {\chardef\preprocessstate\plusone} {\chardef\preprocessstate\plustwo}}% {\doifdefinedelse{fp..\splitoffbase}% {\egroup \doiffileexistselse{\readfilename\preprocesssuffix} {\chardef\preprocessstate\plusone} {\chardef\preprocessstate\plustwo}}% {\egroup}}}% \else % maybe just filecheck, why ctl \iftracefiles\writestatus\m!systems{preprocessing - check local presence of \readfilename\preprocesssuffix}\fi \doifdefinedelse{fp..\readfilename} {\egroup \doiffileexistselse{\readfilename\preprocesssuffix} {\chardef\preprocessstate\plusone} {\chardef\preprocessstate\plustwo}}% {\egroup}% \fi \fi\fi} % beware, \readfilename keeps the original one, but we load and store the % suffixed with .prep file (if present) \def\doreadfile#1#2#3#4% beware, this one already works at format generation time! {\sanitizefilename#2\to\readfilename \ifx\readfilename\empty % silently ignore \else \let\trackedfilename\readfilename \chardef\preprocessstate\zerocount \ifconditional\trackfilenames \doifundefinedelse{fn..\trackedfilename}\donetrue\donefalse \else \donetrue \fi \ifdone \checkfilename\readfilename \ifcase\kindoffile % not a full path or url, check for existence \doifelsenothing{#1} {\iftracefiles\writestatus\m!systems{searching for \readfilename\space on tex path}\fi \def\next{\redoreadfile\readfilename{#3}{#4}}}% {\iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi \def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}% \else % a full path or url, no further checking done \docheckprepfile \ifcase\preprocessstate \doiffileexistselse\readfilename {\iftracefiles\writestatus\m!systems{located \readfilename}\fi \def\next{#3\dodoreadfile}}% {\iftracefiles\writestatus\m!systems{not found \readfilename}\fi \def\next{#4}}% \or \iftracefiles\writestatus\m!systems{located \readfilename\preprocesssuffix}\fi \def\next{#3\dodoreadfile}% \or \iftracefiles\writestatus\m!systems{not found \readfilename\preprocesssuffix}\fi \def\next{#4}% \fi \fi \else \edef\readfilename{\getvalue{fn..\readfilename}}% ??? is done ! \iftracefiles\writestatus\m!systems{already located \readfilename}\fi \def\next{#3\dodoreadfile}% \fi \expandafter\next \fi} \def\redoreadfile#1#2#3% {\docheckprepfile \ifcase\preprocessstate \doiffileexistselse{#1}% {\edef\readfilename{#1}% \iftracefiles\writestatus\m!systems{#1 located}\fi \def\next{#2\dodoreadfile}}% {\iftracefiles\writestatus\m!systems{cannot locate #1}\fi \advance\readlevel\minusone \ifnum\readlevel>\zerocount \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}% \def\next{\redoreadfile\readfilename{#2}{#3}}% \else \def\next{#3}% \fi}% \or \ifcase\preprocesslocal \edef\readfilename{#1}% nor found \else % no path prepending \fi \iftracefiles\writestatus\m!systems{#1\preprocesssuffix\space located}\fi \def\next{#2\dodoreadfile}% \or \def\next{#3}% \fi \next} \def\dodoreadfile % we provide hooks, for instance for \enableXML {\ifconditional\trackfilenames \setxvalue{fn..\trackedfilename}{\readfilename\ifcase\preprocessstate\or\preprocesssuffix\fi}% \fi \the\everybeforereadfile \ifcase\preprocessstate % no checking or not found when using method 1 \def\dodoreadfileindeed{\inputgivenfile\readfilename}% \or % found when using method 1 or 2 \def\dodoreadfileindeed{\inputgivenfile{\readfilename\preprocesssuffix}}% \or % not found when using method 2 \let\dodoreadfileindeed\relax \fi \dodoreadfileindeed \relax \the\everyafterreadfile} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/trac-vis.mkii0000644000175000017500000005445314536300610024716 0ustar hillehille%D \module %D [ file=trac-vis, % was core-vis, %D version=1996.06.01, %D title=\CONTEXT\ Tracking Macros, %D subtitle=Visualization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module adds some more visualization cues to the ones %D supplied in the support module. %D %D %\everypar dual character, \the\everypar and \everypar= %D %\hrule cannot be grabbed in advance, switches mode %D %\vrule cannot be grabbed in advance, switches mode %D % %D %\indent only explicit ones %D %\noindent only explicit ones %D %\par only explicit ones %D %D %\leftskip only if explicit one %D %\rightskip only if explicit one \writestatus{loading}{ConTeXt Tracking Macros / Visualization} \unprotect %D \macros %D {indent, noindent, par} %D %D \TeX\ acts upon paragraphs. In mosts documents paragraphs %D are separated by empty lines, which internally are handled as %D \type{\par}. Paragraphs can be indented or not, depending on %D the setting of \type{\parindent}, the first token of a %D paragraph and/or user suppressed or forced indentation. %D %D Because the actual typesetting is based on both explicit %D user and implicit system actions, visualization is only %D possible for the user supplied \type{\indent}, %D \type{\noindent}, and \type{\par}. Other %D 'clever' tricks will quite certainly lead to more failures %D than successes, so we only support these three explicit %D primitives and one macro: \def\showparagraphcue#1#2#3#4#5% {\bgroup \scratchdimen#1\relax \dontinterfere \dontcomplain \boxrulewidth5\testrulewidth #3#4\relax \setbox\scratchbox\normalhbox to \scratchdimen {#2{\ruledhbox to \scratchdimen {\vrule #5 20\testrulewidth \!!width \zeropoint \normalhss}}}% \smashbox\scratchbox \normalpenalty\!!tenthousand \box\scratchbox \egroup} \def\ruledhanging {\ifdim\hangindent>\zeropoint \ifnum\hangafter<\zerocount \normalhbox {\boxrulewidth5\testrulewidth \setbox\scratchbox\ruledhbox to \hangindent {\scratchdimen\strutht \advance\scratchdimen \strutdp \vrule \!!width \zeropoint \!!height \zeropoint \!!depth -\hangafter\scratchdimen}% \normalhskip-\hangindent \smashbox\scratchbox \raise\strutht\box\scratchbox}% \fi \fi} \def\ruledparagraphcues {\bgroup \dontcomplain \normalhbox to \zeropoint {\ifdim\leftskip>\zeropoint\relax \showparagraphcue\leftskip\llap\relax\relax\!!depth \normalhskip-\leftskip \fi \ruledhanging \normalhskip\hsize \ifdim\rightskip>\zeropoint\relax \normalhskip-\rightskip \showparagraphcue\rightskip\relax\relax\relax\!!depth \fi}% \egroup} \def\ruledpar {\relax \ifhmode \showparagraphcue{40\testrulewidth}\relax\rightrulefalse\relax\!!height \fi \normalpar} \def\rulednoindent {\relax \normalnoindent \ruledparagraphcues \showparagraphcue{40\testrulewidth}\llap\leftrulefalse\relax\!!height} \def\ruledindent {\relax \normalnoindent \ruledparagraphcues \ifdim\parindent>\zeropoint \showparagraphcue\parindent\relax\relax\relax\!!height \else \showparagraphcue{40\testrulewidth}\llap\relax\relax\!!height \fi \normalhskip\parindent} \def\dontshowimplicits {\let\noindent \normalnoindent \let\indent \normalindent \let\par \normalpar} \def\showimplicits {\testrulewidth \defaulttestrulewidth \let\noindent \rulednoindent \let\indent \ruledindent \let\par \ruledpar} %D The next few||line examples show the four cues. Keep in %D mind that we only see them when we explicitly open or close %D a paragraph. %D %D \bgroup %D \def\voorbeeld#1% %D {#1Visualizing some \TeX\ primitives and Plain \TeX\ %D macros can be very instructive, at least it is to me. %D Here we see {\tt\string#1} and {\tt\string\ruledpar} in %D action, while {\tt\string\parindent} equals %D {\tt\the\parindent}.\ruledpar} %D %D \showimplicits %D %D \voorbeeld \indent %D \voorbeeld \noindent %D %D \parindent=60pt %D %D \voorbeeld \indent %D \voorbeeld \noindent %D %D \startnarrower %D \voorbeeld \indent %D \voorbeeld \noindent %D \stopnarrower %D \egroup %D %D These examples also demonstrate the visualization of %D \type {\leftskip} and \type {\rightskip}. The macro %D \type {\nofruledbaselines} determines the number of lines %D shown. \newcounter\ruledbaselines \def\nofruledbaselines{3} \def\debuggertext#1% {\ifx\ttxx\undefined $\scriptscriptstyle#1$% \else {\ttxx#1}% \fi} \def\ruledbaseline {\vrule \!!width \zeropoint \bgroup \dontinterfere \doglobal\increment\ruledbaselines \scratchdimen\nofruledbaselines\baselineskip \setbox\scratchbox\normalvbox to 2\scratchdimen {\leaders \normalhbox {\strut \vrule \!!height \testrulewidth \!!depth \testrulewidth \!!width 120\points} \normalvfill}% \smashbox\scratchbox \advance\scratchdimen \strutheightfactor\baselineskip \setbox\scratchbox\normalhbox {\normalhskip -48\points \normalhbox to 24\points {\normalhss\debuggertext\ruledbaselines\normalhskip6\points}% \raise\scratchdimen\box\scratchbox}% \smashbox\scratchbox \box\scratchbox \egroup} \def\showbaselines {\testrulewidth\defaulttestrulewidth \EveryPar{\ruledbaseline}} %D \macros %D {showpagebuilder} %D %D The next tracing option probaly is only of use to me and a %D few \CONTEXT\ hackers. \def\showpagebuilder {\EveryPar{\doshowpagebuilder}} \def\doshowpagebuilder {\strut\llap {\startcolor[blue]\vl \high{\infofont v:\the\vsize }\vl \high{\infofont g:\the\pagegoal }\vl \high{\infofont t:\the\pagetotal}\vl \stopcolor}} %D \macros %D {makecutbox, cuthbox, cutvbox, cutvtop} %D %D Although mainly used for marking the page, these macros can %D also serve local use. %D %D \startbuffer %D \setbox0=\vbox{a real \crlf vertical box} \makecutbox0 %D \stopbuffer %D %D \typebuffer %D %D This marked \type{\vbox} shows up as: %D %D \startlinecorrection %D \getbuffer %D \stoplinecorrection %D %D The alternative macros are used as: %D %D \startbuffer %D \cuthbox{a made cut box} %D \stopbuffer %D %D \typebuffer %D %D This is typeset as: %D %D \startlinecorrection %D \getbuffer %D \stoplinecorrection %D %D By setting the next macros one can influence the length of %D the marks as well as the horizontal and vertical divisions. \def\cutmarklength {2\bodyfontsize} \chardef\horizontalcutmarks = 2 \chardef\verticalcutmarks = 2 \chardef\cutmarkoffset = 1 \let\cutmarksymbol = \relax \let\cutmarktoptext = \empty \let\cutmarkbottomtext = \empty \def\horizontalcuts {\normalhbox to \ruledwidth {\dorecurse\horizontalcutmarks {\vrule\!!width\boxrulewidth\!!height\cutmarklength\normalhfill}% \unskip}} \def\verticalcuts {\scratchdimen\ruledheight \advance\scratchdimen \ruleddepth \normalvbox to \scratchdimen {\hsize\cutmarklength \dorecurse\verticalcutmarks {\vrule\!!height\boxrulewidth\!!width\hsize\normalvfill}% \unskip}} \def\baselinecuts {\ifdim\ruleddepth>\zeropoint \scratchdimen\ruledheight \advance\scratchdimen \ruleddepth \normalvbox to \scratchdimen {\scratchdimen\cutmarklength \divide\scratchdimen 2 \hsize\scratchdimen \normalvskip\zeropoint\!!plus\ruledheight \vrule\!!height\boxrulewidth\!!width\hsize \normalvskip\zeropoint\!!plus\ruleddepth}% \fi} \def\cutmarksymbols#1% {\normalhbox to \ruledwidth {\setbox\scratchbox\normalhbox to \cutmarklength {\normalhss\infofont\cutmarksymbol\normalhss}% \normalhss \normalvbox to \cutmarklength {\scratchdimen\cutmarklength \divide\scratchdimen \plustwo \normalvss \hbox to \ruledwidth {\llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}% \normalhskip\scratchdimen\hss\infofont#1\hss\normalhskip\scratchdimen \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}}% \normalvss}% \normalhss}} \def\makecutbox#1% simplier with layers, todo {\edef\ruledheight{\the\ht#1}% \edef\ruleddepth {\the\dp#1}% \edef\ruledwidth {\the\wd#1}% \setbox#1\normalhbox {\dontcomplain \forgetall \boxmaxdepth\maxdimen \offinterlineskip \scratchdimen\cutmarklength \divide\scratchdimen \plustwo \hsize\ruledwidth \setbox\scratchbox\normalvbox {\setbox\scratchbox\normalhbox{\horizontalcuts}% \normalvskip-\cutmarkoffset\scratchdimen \normalvskip-2\scratchdimen \copy\scratchbox \normalvskip\cutmarkoffset\scratchdimen \hbox to \ruledwidth {\setbox\scratchbox\normalhbox{\verticalcuts}% \llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}% \bgroup \setbox\scratchbox\normalhbox{\baselinecuts}% \llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}% \normalhfill \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}% \egroup \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}}% \normalvskip\cutmarkoffset\scratchdimen \copy\scratchbox}% \ht\scratchbox\ruledheight \dp\scratchbox\ruleddepth \wd\scratchbox\zeropoint \resetcolorseparation \localstartcolor[\defaulttextcolor]% \box\scratchbox \ifx\cutmarksymbol\relax \else \setbox\scratchbox\normalvbox {\vskip-\cutmarkoffset\scratchdimen \vskip-\cutmarklength \normalhbox{\cutmarksymbols\cutmarktoptext}% \vskip\cutmarkoffset\scratchdimen \vskip\ruledheight \vskip\ruleddepth \vskip\cutmarkoffset\scratchdimen \normalhbox{\cutmarksymbols\cutmarkbottomtext}}% \ht\scratchbox\ruledheight \dp\scratchbox\ruleddepth \wd\scratchbox\zeropoint \box\scratchbox \fi \localstopcolor \box#1}% \wd#1=\ruledwidth \ht#1=\ruledheight \dp#1=\ruleddepth} \def\cuthbox {\normalhbox\bgroup \dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalhbox} \def\cutvbox {\normalvbox\bgroup \dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalvbox} \def\cutvtop {\normalvtop\bgroup \dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalvtop} %D \macros %D {colormarkbox,rastermarkbox} %D %D This macro is used in the pagebody routine. No other use %D is advocated here. %D %D \starttyping %D \colormarkbox0 %D \stoptyping \def\colormarkoffset{\cutmarkoffset} \def\colormarklength{\cutmarklength} \def\colorrangeA#1#2#3#4% {\vbox {\scratchdimen-\colormarklength \multiply\scratchdimen 4 \advance\scratchdimen \ruledheight \advance\scratchdimen \ruleddepth \divide\scratchdimen 21 \def\docommand##1% {\vbox {\hsize3em % \scratchdimen \definecolor [\s!dummy] [\c!c=#2##1\else0\fi, \c!m=#3##1\else0\fi, \c!y=#4##1\else0\fi, \c!k=0]% \localstartcolor[\s!dummy]% \hrule \!!width 3em \!!height \scratchdimen \!!depth \zeropoint \localstopcolor \ifdim\scratchdimen>1ex \vskip-\scratchdimen \vbox to \scratchdimen {\vss \hbox to 3em {\hss \localstartcolor[\s!white]% \ifdim##1\points=\zeropoint#1\else##1\fi \localstopcolor \hss}% \vss}% \fi}}% \offinterlineskip \processcommalist[1.00,0.95,0.75,0.50,0.25,0.05,0.00]\docommand}} \def\colorrangeB {\hbox {\scratchdimen-\colormarklength \multiply\scratchdimen \plustwo \advance\scratchdimen \ruledwidth \divide\scratchdimen 11 \def\docommand ##1 ##2 ##3##4##5##6% {\definecolor [\s!dummy] [\c!c=##3##2\else0\fi, \c!m=##4##2\else0\fi, \c!y=##5##2\else0\fi, \c!k=##6##2\else0\fi]% \localstartcolor[\s!dummy]% \vrule \!!width \scratchdimen \!!height \colormarklength \!!depth \zeropoint \localstopcolor \ifdim\scratchdimen>2em \hskip-\scratchdimen \vbox to \colormarklength {\vss \hbox to \scratchdimen {\hss \localstartcolor[\s!white]% \ifdim##2\points=.5\points##2~\fi##1% \localstopcolor \hss} \vss}% \fi}% \docommand C .5 \iftrue \iffalse\iffalse\iffalse \docommand M .5 \iffalse\iftrue \iffalse\iffalse \docommand Y .5 \iffalse\iffalse\iftrue \iffalse \docommand K .5 \iffalse\iffalse\iffalse\iftrue \docommand C 1 \iftrue \iffalse\iffalse\iffalse \docommand G 1 \iftrue \iffalse\iftrue \iffalse \docommand Y 1 \iffalse\iffalse\iftrue \iffalse \docommand R 1 \iffalse\iftrue \iftrue \iffalse \docommand M 1 \iffalse\iftrue \iffalse\iffalse \docommand B 1 \iftrue \iftrue \iffalse\iffalse \docommand K 1 \iffalse\iffalse\iffalse\iftrue}} \def\colorrangeC {\hbox {\resetcolorseparation \scratchdimen-\colormarklength \multiply\scratchdimen 2 \advance\scratchdimen \ruledwidth \divide\scratchdimen 14 \def\docommand##1% {\definecolor[\s!dummy][\c!s=##1]% \localstartcolor[\s!dummy]% \vrule \!!width \scratchdimen \!!height \colormarklength \!!depth \zeropoint \localstopcolor \ifdim\scratchdimen>2em \hskip-\scratchdimen \vbox to \colormarklength {\vss \localstartcolor[\s!white]% \hbox to \scratchdimen{\hss##1\hss} \localstopcolor \vss}% \fi}% \processcommalist[1,.95,.9,.85,.8,.75,.7,.6,.5,.4,.3,.2,.1,0]\docommand}} \def\docolormarkbox#1#2% {\edef\ruledheight{\the\ht#2}% \edef\ruleddepth {\the\dp#2}% \edef\ruledwidth {\the\wd#2}% \setbox#2\hbox {\scratchdimen\colormarklength \divide\scratchdimen \plustwo \forgetall \ssxx \setbox\scratchbox\vbox {\offinterlineskip \vskip-\colormarkoffset\scratchdimen \vskip-2\scratchdimen\relax % relax needed % beware: no \ifcase, due to nested \iftrue/\iffalse % and lacking \fi's \doifelse{#1}{0}% {\vskip\colormarklength \vskip\colormarkoffset\scratchdimen \vskip\ruledheight} {\hbox to \ruledwidth{\hss\hbox{\colorrangeB}\hss}% \vskip\colormarkoffset\scratchdimen \vbox to \ruledheight {\vss \hbox to \ruledwidth {\llap{\colorrangeA C\iftrue\iffalse\iffalse\hskip\colormarkoffset\scratchdimen}% \hfill \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA R\iffalse\iftrue\iftrue}}% \vss \hbox to \ruledwidth {\llap{\colorrangeA M\iffalse\iftrue\iffalse\hskip\colormarkoffset\scratchdimen}% \hfill \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA G\iftrue\iffalse\iftrue}}% \vss \hbox to \ruledwidth {\llap{\colorrangeA Y\iffalse\iffalse\iftrue\hskip\colormarkoffset\scratchdimen}% \hfill \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA B\iftrue\iftrue\iffalse}}% \vss}}% \vskip\colormarkoffset\scratchdimen \hbox to \ruledwidth {\hss\lower\ruleddepth\hbox{\colorrangeC}\hss}}% \ht\scratchbox\ruledheight \dp\scratchbox\ruleddepth \wd\scratchbox\zeropoint \box\scratchbox \box#2}% \wd#2=\ruledwidth \ht#2=\ruledheight \dp#2=\ruleddepth} \def\colormarkbox % #1 {\ifincolor\@EA\docolormarkbox\else\@EA\gobbletwoarguments\fi1} \def\rastermarkbox % #1 {\ifincolor\@EA\docolormarkbox\else\@EA\gobbletwoarguments\fi0} %D \macros %D {showwhatsits, dontshowwhatsits} %D %D \TEX\ has three so called whatsits: \type {\mark}, \type %D {\write} and \type {\special}. The first one keeps track of %D the current state at page boundaries, the last two are used %D to communicate to the outside world. Due to fact that %D especially \type {\write} is often used in conjunction with %D \type {\edef}, we can only savely support that one in \ETEX. %D %D \bgroup \showwhatsits \setupcolors[state=start] %D %D Whatsits show up \color[blue]{in color} and are %D characterized bij their first character.\footnote [some note] %D {So we may encounter \type {w}, \type {m} and \type{s}.} %D They are \writestatus{dummy}{demo}\color[yellow]{stacked}. %D %D \egroup \newif\ifimmediatewrite \ifx\eTeXversion\undefined \let\showwhatsits \relax \let\dontshowwhatsits\relax \else \let\supernormalmark \normalmark % mark may already been superseded \let\supernormalmarks \normalmarks % mark may already been superseded \def\showwhatsits {\protected\def\normalmark {\visualwhatsit100+m\supernormalmark }% \protected\def\normalmarks{\visualwhatsit100+m\supernormalmarks}% \protected\def\special {\visualwhatsit0100s\normalspecial }% \protected\def\write {\visualwhatsit001-w\normalwrite }% \let\immediate\immediatewhatsit \appendtoks\dontshowwhatsits\to\everystoptext} \def\immediatewhatsit {\bgroup\futurelet\next\doimmediatewhatsit} \def\doimmediatewhatsit {\ifx\next\write \egroup\immediatewritetrue \else \egroup\expandafter\normalimmediate \fi} \def\dontshowwhatsits {\let\immediate \normalimmediate \let\normalmark\supernormalmark \let\special \normalspecial \let\write \normalwrite} \def\visualwhatsit#1#2#3#4#5% {\bgroup \pushwhatsit \dontinterfere \dontcomplain \dontshowcomposition \dontshowwhatsits \ttx \ifvmode\donetrue\else\donefalse\fi \setbox\scratchbox\hbox {\ifdone\dostartgraycolormode0\else\dostartrgbcolormode#1#2#3\fi #5\dostopcolormode}% \setbox\scratchbox\hbox {\ifdone\dostartrgbcolormode#1#2#3\else\dostartgraycolormode0\fi \vrule\!!width\wd\scratchbox\dostopcolormode \hskip-\wd\scratchbox\box\scratchbox}% \scratchdimen1ex \setbox\scratchbox\hbox {\ifdone\hskip\else\raise#4\fi\scratchdimen\box\scratchbox}% \smashbox\scratchbox \ifdone\nointerlineskip\fi \box\scratchbox \ifvmode\nointerlineskip\fi \popwhatsit \egroup \ifimmediatewrite \immediatewritefalse \expandafter\normalimmediate \fi} \def\pushwhatsit {\ifzeropt\lastskip \ifcase\lastpenalty \ifzeropt\lastkern \ifhmode \let\popwhatsit\relax \else \edef\popwhatsit{\prevdepth\the\prevdepth}% \fi \else \ifhmode \edef\popwhatsit{\kern\the\lastkern}\unkern \else \edef\popwhatsit{\kern\the\lastkern\prevdepth\the\prevdepth}% \kern-\lastkern \fi \fi \else \ifhmode \edef\popwhatsit{\the\lastpenalty}% \unpenalty \else \edef\popwhatsit{\penalty\the\lastpenalty\prevdepth\the\prevdepth}% %\nobreak \fi \fi \else \ifhmode \edef\popwhatsit{\hskip\the\lastskip}\unskip \else \edef\popwhatsit{\vskip\the\lastskip\prevdepth\the\prevdepth}% \vskip-\lastskip \fi \fi} \fi %D The next macro can be used to keep track of classes of %D boxes (handy for development cq.\ tracing). \def\dodotagbox#1#2#3% can be reimplemented {\def\next##1##2##3##4% {\vbox to \ht#2{##3\hbox to \wd#2{##1#3##2}##4}}% \processaction [#1] [ l=>\next\relax\hfill\vfill\vfill, r=>\next\hfill\relax\vfill\vfill, t=>\next\hfill\hfill\relax\vfill, b=>\next\hfill\hfill\vfill\relax, lt=>\next\relax\hfill\relax\vfill, lb=>\next\relax\hfill\vfill\relax, rt=>\next\hfill\relax\relax\vfill, rb=>\next\hfill\relax\vfill\relax, tl=>\next\relax\hfill\relax\vfill, bl=>\next\relax\hfill\vfill\relax, tr=>\next\hfill\relax\relax\vfill, br=>\next\hfill\relax\vfill\relax, \s!default=>\next\hfill\hfill\vfill\vfill, \s!unknown=>\next\hfill\hfill\vfill\vfill]} \def\dotagbox[#1]#2% {\bgroup \dowithnextbox {\setbox\scratchbox\flushnextbox \setbox\nextbox\ifhbox\nextbox\hbox\else\vbox\fi \bgroup \startoverlay {\copy\scratchbox} {\dodotagbox{#1}\scratchbox{\framed [\c!background=\v!screen,\c!backgroundscreen=1]{#2}}} \stopoverlay \egroup \nextboxwd\the\wd\scratchbox \nextboxht\the\ht\scratchbox \nextboxdp\the\dp\scratchbox \flushnextbox \egroup}} \def\tagbox {\dosingleempty\dotagbox} %D \macros %D {coloredhbox,coloredvbox,coloredvtop, %D coloredstrut} %D %D The following visualizations are used in some of the manuals: \definecolor[boxcolor:ht][r=.5,g=.75,b=.5] \definecolor[boxcolor:dp][r=.5,g=.5,b=.75] \definecolor[boxcolor:wd][r=.75,g=.5,b=.5] \definecolor[strutcolor] [r=.5,g=.25,b=.25] \def\coloredbox#1% {\dowithnextbox{#1{\hbox {\blackrule[\c!width=\nextboxwd,\c!height=\nextboxht,\c!depth=\zeropoint,\c!color=boxcolor:ht]% \hskip-\nextboxwd \blackrule[\c!width=\nextboxwd,\c!height=\zeropoint,\c!depth=\nextboxdp,\c!color=boxcolor:dp]% \hskip-\nextboxwd \box\nextbox}}}#1} \def\coloredhbox{\coloredbox\hbox} \def\coloredvbox{\coloredbox\vbox} \def\coloredvtop{\coloredbox\vtop} \def\coloredstrut {\color[strutcolor]{\def\strutwidth{2\points}\setstrut\strut}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/page-par.mkii0000644000175000017500000000316514536300610024654 0ustar hillehille%D \module %D [ file=page-par, % copied from page-lin %D version=1997.03.31, %D title=\CONTEXT\ Page Macros, %D subtitle=Line Numbering, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Page Macros / Paragraph Numbering} \unprotect \newcount\internalparagraphnumber \def\setupparagraphnumbering {\dosingleempty\dosetupparagraphnumbering} \def\dosetupparagraphnumbering[#1]% {\getparameters [\??ph][#1]% \processaction [\@@phstate] [\v!start=>\let\showparagraphnumber\doshowparagraphnumberA, \v!stop=>\let\showparagraphnumber\relax, \v!line=>\let\showparagraphnumber\doshowparagraphnumberB, \v!reset=>\global\internalparagraphnumber\zerocount \let\showparagraphnumber\doshowparagraphnumberA]} \def\dodoshowparagraphnumber {\global\advance\internalparagraphnumber \plusone \inleftmargin % \tf normalizes em {\tf{\doattributes\??ph\c!style\c!color{\the\internalparagraphnumber}}% \kern\@@phdistance}} \def\doshowparagraphnumberA {\ifprocessingverbatim \iflinepar\dodoshowparagraphnumber\fi \else \dodoshowparagraphnumber \fi} \def\doshowparagraphnumberB {\ifnumberinglines \doshowparagraphnumberA \fi} \setupparagraphnumbering [\c!state=\v!stop, \c!style=, \c!color=, \c!distance=\ifcase\linenumberlocation2em\else\!!zeropoint\fi] % will change \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-mat.mkii0000644000175000017500000001767614536300610024742 0ustar hillehille%D \module %D [ file=supp-mat, %D version=1998.09.10, %D title=\CONTEXT\ Support Macros, %D subtitle=Math, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D For practical reasons, I decided to move some math things to %D a support module. There is nothing spectacular here. It may move %D back to math-ini. \writestatus{loading}{ConTeXt Support Macros / Math} \unprotect %D \macros %D {mathematics, math, nomathematics, startmathmode} %D %D The \type{$} can be both an begin and end math character. %D This can lead to confusing and errorprone situations when %D macros insert \type{$}. When for instance we have defined: %D %D \starttyping %D \def\MyPlus{$\,+\,$} %D \stoptyping %D %D the sequence \type{$x^2 \MyPlus y^2 = r^2$} will expand to: %D %D \starttyping %D $x^2 $\,+\,$ y^2 = r^2$ %D \stoptyping %D %D Here the \type{\,} are given outside math mode and \TEX\ will %D definitely complain about this. A more save definition would %D have been: %D %D \starttyping %D \def\MyPlus{\mathematics{\,+\,}} %D \stoptyping %D %D Which is implemented as: \long\def\mathematics#1{\relax\ifmmode#1\else $#1$\fi} % lookahead bug reported by brooks \long\def\displaymath#1{\relax\ifmmode#1\else$$#1$$\fi} \long\def\inlinemath #1{\dontleavehmode\relax\ifmmode#1\else $#1$\fi} \let\stopmathmode\relax \def\startmathmode % cannot be used nested {\relax\ifmmode \let\stopmathmode\relax \else $\def\stopmathmode{$}% \let\stopmathmode=$ \fi} \def\startmathmode % nested variant {\relax\ifmmode \begingroup\let\stopmathmode\endgroup \else $\let\stopmathmode$% \fi} \def\nomathematics#1% {\relax\ifmmode\hbox{#1}\else#1\fi} \let\math\mathematics %D \macros %D {displaymathematics,inlinemathematics,automathematics} %D %D An example of usage of the following can be found in the MathML module: \long\def\displaymathematics#1{\relax\ifmmode#1\else\dostartformula{}#1\dostopformula\fi} \def\inlinemathematics {\dontleavehmode\mathematics} \def\automathematics {\relax\ifhmode\@EA\inlinemathematics\else\@EA\displaymathematics\fi} % better, esp when used in bTABLE ... eTABLE \def\automathematics {\relax \ifhmode \expandafter\inlinemathematics \else\ifintable \expandafter\expandafter\expandafter\inlinemathematics \else \expandafter\expandafter\expandafter\displaymathematics \fi\fi} %D \macros %D {dimension, nodimension} %D %D The next few macros are used for typesetting dimensions in %D such a way that spacing is acceptable. I won't spend much %D words on these macros, because they will be overloaded in %D the units module. \newsignal\dimensionsignal \def\dimensiontypeface {\tf} \def\dimensionhalfspace {\,} \unexpanded\def\dimension#1% {\def\dodimensionsignal{\kern\dimensionsignal}% \ifdim\lastskip=\zeropoint\relax \ifdim\lastkern=\zeropoint\relax \ifmmode \mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}% \else \mathematics{\dimensiontypeface#1}% \fi \else\ifdim\lastkern=\dimensionsignal \mathematics{\dimensionhalfspace\dimensiontypeface#1}% \else \unkern\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}% \fi\fi \else \unskip\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}% \fi \dodimensionsignal} \unexpanded\def\nodimension#1% {\unskip#1\global\let\dodimensionsignal\relax} %D \macros %D {super, suber} %D %D \TEX\ uses \type{^} and \type{_} for entering super- and %D subscript mode. We want however a bit more control than %D normally provided, and therefore provide \type {\super} %D and \type{\suber} (\type {\sub} is already taken). \global\let\normalsuper=^ \global\let\normalsuber=_ \newcount\supersubmode \newevery\everysupersub \EverySuperSub \appendtoks \advance\supersubmode 1\relax \to \everysupersub % \def\dodosuper#1{\normalsuper{\the\everysupersub#1}} % \def\dodosuber#1{\normalsuber{\the\everysupersub#1}} % % \def\dosuper{\ifx\next\bgroup\expandafter\dodosuper\else\normalsuper\fi} % \def\dosuber{\ifx\next\bgroup\expandafter\dodosuber\else\normalsuber\fi} % % \def\super{\futurelet\next\dosuper} % \def\suber{\futurelet\next\dosuber} \def\super#1{\normalsuper{\the\everysupersub#1}} \def\suber#1{\normalsuber{\the\everysupersub#1}} %D \macros %D {enablesupsub} %D %D We can let \type {^} and \type {_} act like \type {\super} %D and \type {\suber} by saying \type {\enablesupsub}. \bgroup \catcode`\^=\@@active \catcode`\_=\@@active \gdef\enablesupsub {\catcode`\^=\@@active \def^{\ifmmode\expandafter\super\else\expandafter\normalsuper\fi}% \catcode`\_=\@@active \def_{\ifmmode\expandafter\suber\else\expandafter\normalsuber\fi}} \egroup %D \macros %D {restoremathstyle} %D %D We can pick up the current math style by calling \type %D {\restoremathstyle}. \def\restoremathstyle {\ifmmode \ifcase\supsubmode \textstyle \or \scriptstyle \else \scriptscriptstyle \fi \fi} %D \macros %D {cramped} %D %D \TEX provides no primitive to force in cramped math mode. Here is %D a macro that does so. It is based on a solution by Don Knuth (\useurl %D {http://www.ctan.org/tex-archive/digests/tex-implementors/042}). %D %D \startbuffer %D \ruledhbox{$\left\{{x^2\over y^2}\right\}$} %D \ruledhbox{$\cramped{\left\{ {x^2\over y^2}\right\}}$} %D \stopbuffer %D %D \typebuffer \getbuffer \def\cramped {\mathpalette\docramped} %D We force a cramped style by issuing a non||existing radical (box). %D After that we make sure the height is correct. (Comment taken from %D Morten Høgholm's mathtools package.) Macro suggested by AM and %D cleaned up a bit by HH. % original % % \def\docramped#1#2% % {\setbox\scratchbox\hbox % {\nulldelimiterspace\zeropoint % $\mathsurround\zeropoint#1\radical\zerocount{#2}$}% % \ifx#1\displaystyle % \scratchdimen\fontdimen8\textfont3 % \advance\scratchdimen .25\fontdimen5\textfont2 % \else % \scratchdimen1.25\fontdimen8 % \ifx#1\textstyle\textfont % \else % \ifx#1\scriptstyle\scriptfont\else\scriptscriptfont\fi % \fi % 3 % \fi % \advance\scratchdimen-\ht\scratchbox % \ht\scratchbox-\scratchdimen % \box\scratchbox} \def\docramped#1#2% {\begingroup % added HH, made even more cramped \setbox\scratchbox\hbox {\nulldelimiterspace\zeropoint $\mathsurround\zeropoint#1\radical\zerocount{#2}$}% \ht\scratchbox-\dimexpr \ifx#1\displaystyle \fontdimen8\textfont3 +.25\fontdimen5\textfont2 \else 1.25\fontdimen8 \ifx#1\textstyle \textfont \else\ifx#1\scriptstyle \scriptfont \else \scriptscriptfont \fi \fi \plusthree \fi -\ht\scratchbox \relax \box\scratchbox \endgroup} %D \macros %D {cramedllap, crampedrlap, crampedclap} %D %D In many cases, one wants to use the \tex {clap} macro in %D math mode while using subscripts. Normally, subscripts are %D in cramped mode, and these macros allow you to go to %D cramped mode. For example: %D %D \startbuffer %D \startformula %D \sum_{a^2 < b^2 < c^2} \quad %D \sum_{\clap{a^2 < b^2 < c^2}} \quad %D \sum_{\crampedclap{a^2 < b^2 < c^2}} %D \stopformula %D \stopbuffer %D %D \start %D \typebuffer %D \switchtobodyfont[24pt] %D \getbuffer %D \stop %D %D Notice that \type {\clap{\cramped ... }} would also work, %D but it requires \TEX\ to typeset it arguments 16 times. \def\docrampedllap#1#2{{}\dollap{\docramped #1{#2}}} \def\docrampedrlap#1#2{{}\dorlap{\docramped #1{#2}}} \def\docrampedclap#1#2{{}\doclap{\docramped #1{#2}}} \def\crampedllap{\mathpalette\docrampedllap} \def\crampedrlap{\mathpalette\docrampedrlap} \def\crampedclap{\mathpalette\docrampedclap} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-run.mkii0000644000175000017500000001116114536300610024713 0ustar hillehille%D \module %D [ file=unic-run, %D version=2005.06.22, %D title=\CONTEXT\ \UNICODE\ Support, %D subtitle=Goodies, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D \macros %D {showunicodevector} %D %D Original version by Nikolai Weibull. Adapted a bit (no local count %D definitions, stepwiserecurse instead of -1 calculations, a bit less %D code and such). BTW, this is kind of tricky and somehow we don't %D have align interference. \gdef\doshowunicodevectorrow#1#2% {\NC \ttx\uchexnumber{#2}% \VL \dostepwiserecurse{0}{15}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}% \AR} \gdef\showunicodevector[#1]% {\starttable[|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|] \NC\NC\dostepwiserecurse{0}{15}{1}{\ttx\uchexnumber\recurselevel\NC}\AR \DC\DL[16]\DR \dostepwiserecurse{0}{15}{1} {\expanded{\doshowunicodevectorrow{#1}{\recurselevel}}% \DC\DL[16]\DR} \NC \use{17}{\hfill \ttx unicode table hex:\uchexnumbers{#1} dec:\threedigits{#1}\kern-.25em}\NC \AR \stoptable} %D \starttyping %D \utfunicodetracer=0 %D \utfunicodetracer=7 %D %D \showunicodevector[000] %D \showunicodevector[001] %D \showunicodevector[002] %D \showunicodevector[003] %D \showunicodevector[004] %D \showunicodevector[005] %D \showunicodevector[030] %D \showunicodevector[031] %D \showunicodevector[032] %D \showunicodevector[033] %D \showunicodevector[034] %D \stoptyping %D \macros %D {showunicodetable} %D %D A more verbose variant: \gdef\doshowunicodetablerow#1#2% {\bTR \bTD\uchexnumber{#2}\eTD \dostepwiserecurse{0}{15}{1} {\bTD \edef\entrypoint{\the\numexpr#1*256+#2+##1*16\relax}% \utfunicodetracer\zerocount{\dontleavehmode \strut\unicodechar\entrypoint\endgraf}% \tt \utfunicodetracer\plusseven{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}% \utfunicodetracer\plusthree{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}% \utfunicodetracer\pluseight{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}% \eTD}% \bTD\uchexnumber{#2}\eTD \eTR} \gdef\showunicodetable[#1]% {\vbox\bgroup \setupcolors[\c!state=\v!start]% \setupTABLE[\c!background=\v!screen,\c!backgroundscreen=.90,\c!frame=\v!off,\c!frameoffset=0pt,\c!width=8em,\c!height=6em]% \setupTABLE[c] [\v!each] [\c!align={middle,lohi}]% \setupTABLE[c] [\v!first][\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]% \setupTABLE[c] [\v!last] [\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]% \setupTABLE[r] [\v!first][\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]% \setupTABLE[r] [\v!last] [\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]% \setupTABLE[r] [\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.80]% \setupTABLE[c] [\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.80]% \setupTABLE[\v!odd][\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.90]% \bTABLE \bTR \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD \dostepwiserecurse{0}{15}{1}{\bTD\uchexnumber{##1}\eTD}% \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD \eTR \dostepwiserecurse{0}{15}{1}{\doshowunicodetablerow{#1}{##1}}% \bTR \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD \dostepwiserecurse{0}{15}{1}{\bTD\uchexnumber{##1}\eTD}% \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD \eTR \eTABLE \egroup} \protect \endinput % alternative % % \gdef\doshowunicodevectorrowa#1#2#3#4% % {\NC % \ttx\uchexnumber{#2}% % \VL % \dostepwiserecurse{#3}{#4}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}% % \AR} % % \gdef\doshowunicodevectorrowb#1#2#3#4% % {\NC % \relax % \VL % \dostepwiserecurse{#3}{#4}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}% % \AR} % % \gdef\showunicodevector#1% % {\starttable[|c|c|c|c|c|c|c|c|c|] % \NC\NC\dostepwiserecurse{0}{7}{1}{\ttx\uchexnumber\recurselevel/\uchexnumber{\the\numexpr2*\recurselevel\relax}\NC}\AR\DC\DL[8]\DR % \dostepwiserecurse{0}{15}{1} % {\expanded{\doshowunicodevectorrowa{#1}{\recurselevel}{0} {7}}\DC\DL[8]\DR% % \expanded{\doshowunicodevectorrowb{#1}{\recurselevel}{8}{15}}\DC\DL[8]\DR}% % \NC \use{9}{\hfill \ttx unicode table hex:\uchexnumbers{#1} dec:\threedigits{#1}\kern-.25em}\NC \AR % \stoptable} context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mxa.mkii0000644000175000017500000001151214536300610024701 0ustar hillehille\defineMMLsynonym bkarow rbarr \defineMMLsynonym circlearrowleft olarr \defineMMLsynonym circlearrowright orarr \defineMMLsynonym curvearrowleft cularr \defineMMLsynonym curvearrowright curarr \defineMMLsynonym dbkarow rBarr \defineMMLsynonym DoubleDownArrow dArr \defineMMLsynonym DoubleLeftRightArrow hArr \defineMMLsynonym DoubleLongLeftArrow xlArr \defineMMLsynonym DoubleLongLeftRightArrow xhArr \defineMMLsynonym DoubleLongRightArrow xrArr \defineMMLsynonym DoubleUpArrow uArr \defineMMLsynonym DoubleUpDownArrow vArr \defineMMLsynonym Downarrow dArr \defineMMLsynonym DownArrowUpArrow duarr \defineMMLsynonym downdownarrows ddarr \defineMMLsynonym downharpoonleft dharl \defineMMLsynonym downharpoonright dharr \defineMMLsynonym DownLeftVector lhard \defineMMLsynonym DownRightVector rhard \defineMMLsynonym drbkarow RBarr \defineMMLsynonym Equilibrium rlhar \defineMMLsynonym hksearow searhk \defineMMLsynonym hkswarow swarhk \defineMMLsynonym hookleftarrow larrhk \defineMMLsynonym hookrightarrow rarrhk \defineMMLsynonym LeftArrowRightArrow lrarr \defineMMLsynonym leftarrowtail larrtl \defineMMLsynonym LeftDownVector dharl \defineMMLsynonym leftharpoondown lhard \defineMMLsynonym leftharpoonup lharu \defineMMLsynonym leftleftarrows llarr \defineMMLsynonym LeftRightArrow harr \defineMMLsynonym Leftrightarrow hArr \defineMMLsynonym leftrightarrow harr \defineMMLsynonym leftrightarrows lrarr \defineMMLsynonym leftrightharpoons lrhar \defineMMLsynonym leftrightsquigarrow harrw \defineMMLsynonym LeftUpVector uharl \defineMMLsynonym LeftVector lharu \defineMMLsynonym Lleftarrow lAarr \defineMMLsynonym LongLeftArrow xlarr \defineMMLsynonym Longleftarrow xlArr \defineMMLsynonym longleftarrow xlarr \defineMMLsynonym LongLeftRightArrow xharr \defineMMLsynonym Longleftrightarrow xhArr \defineMMLsynonym longleftrightarrow xharr \defineMMLsynonym longmapsto xmap \defineMMLsynonym LongRightArrow xrarr \defineMMLsynonym Longrightarrow xrArr \defineMMLsynonym longrightarrow xrarr \defineMMLsynonym looparrowleft larrlp \defineMMLsynonym looparrowright rarrlp \defineMMLsynonym LowerLeftArrow swarr \defineMMLsynonym LowerRightArrow searr \defineMMLsynonym Lsh lsh \defineMMLsynonym mapsto map \defineMMLsynonym multimap mumap \defineMMLsynonym nearrow nearr \defineMMLsynonym nLeftarrow nlArr \defineMMLsynonym nleftarrow nlarr \defineMMLsynonym nLeftrightarrow nhArr \defineMMLsynonym nleftrightarrow nharr \defineMMLsynonym nRightarrow nrArr \defineMMLsynonym nrightarrow nrarr \defineMMLsynonym nwarrow nwarr \defineMMLsynonym ReverseEquilibrium lrhar \defineMMLsynonym ReverseUpEquilibrium duhar \defineMMLsynonym RightArrowLeftArrow rlarr \defineMMLsynonym rightarrowtail rarrtl \defineMMLsynonym RightDownVector dharr \defineMMLsynonym rightharpoondown rhard \defineMMLsynonym rightharpoonup rharu \defineMMLsynonym rightleftarrows rlarr \defineMMLsynonym rightleftharpoons rlhar \defineMMLsynonym rightrightarrows rrarr \defineMMLsynonym rightsquigarrow rarrw \defineMMLsynonym RightTeeArrow map \defineMMLsynonym RightUpVector uharr \defineMMLsynonym RightVector rharu \defineMMLsynonym Rrightarrow rAarr \defineMMLsynonym Rsh rsh \defineMMLsynonym searrow searr \defineMMLsynonym ShortLeftArrow slarr \defineMMLsynonym ShortRightArrow srarr \defineMMLsynonym swarrow swarr \defineMMLsynonym toea nesear \defineMMLsynonym tosa seswar \defineMMLsynonym twoheadleftarrow Larr \defineMMLsynonym twoheadrightarrow Rarr \defineMMLsynonym Uparrow uArr \defineMMLsynonym UpArrowDownArrow udarr \defineMMLsynonym UpDownArrow varr \defineMMLsynonym Updownarrow vArr \defineMMLsynonym updownarrow varr \defineMMLsynonym UpEquilibrium udhar \defineMMLsynonym upharpoonleft uharl \defineMMLsynonym upharpoonright uharr \defineMMLsynonym UpperLeftArrow nwarr \defineMMLsynonym UpperRightArrow nearr \defineMMLsynonym upuparrows uuarr context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-mis.mkii0000644000175000017500000001107314536300610024667 0ustar hillehille%D \module %D [ file=enco-mis, %D version=2000.05.07, % 1999.11.11, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Missing Glyphs, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D In this file we collect some definitions that construct %D pseudo characters. Some day we will move some definitions %D from \type {plain.tex} to this file. Some definitions are %D derived from definitions in the \LATEX\ distribution, %D especially Johannes Braams' Babel system. \startmapping[\s!default] \defineuppercasecom \dj \DJ \defineuppercasecom \Dj \dj \defineuppercasecom \DJ \dj \definecharacter dstroke {\pseudoencodeddj} \definecharacter Dstroke {\pseudoencodedDJ} \stopmapping %D We need proper names like in enco-com.tex! \definecharacter dj {\dstroke} % {\pseudoencodeddj} \definecharacter Dj {\Dstroke} % {\pseudoencodedDJ} \definecharacter DJ {\Dstroke} % {\pseudoencodedDJ} \unprotect \def\pseudoencodeddj % like in babel, but safer {\dontleavehmode\hbox\bgroup \setbox\scratchbox\hbox{d}% \scratchdimen\ht\scratchbox \advance\scratchdimen 1ex \scratchdimen.45\scratchdimen \dimen2=\withoutpt\the\slantperpoint\dimen0 \advance\dimen2 .5ex \hbox to \wd\scratchbox {\box\scratchbox\hss \raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}% \egroup} \def\pseudoencodedDJ % design: taco; quality assurance: mojca; cleanup: hans {\dontleavehmode \hbox\bgroup \setbox\scratchbox\hbox{D}% \dimen2=1.1ex \dimen2=\withoutpt\the\slantperpoint\dimen2 \hbox to \wd\scratchbox {\rlap {\raise.52\ht\scratchbox \hbox {\kern\dimen2 \vbox{\hrule\!!height.04ex\!!depth.04ex\!!width.4\wd\scratchbox}}}% \box\scratchbox}% \egroup} % currency \def\fakedollar % pretty cmr dependent {\bgroup \ifnum\fam=\itfam \sl \else\ifnum\fam=\bifam \bs \fi\fi \$% \egroup} \def\fakesterling % pretty cmr dependent {\bgroup \ifnum\fam=\bffam \bi \else\ifnum\fam=\bifam \bi \else\ifnum\fam=\bsfam \bi \else \it \fi\fi\fi \$% \egroup} \def\fakeflorin {\bgroup \ifnum\fam=\bffam \bi \else\ifnum\fam=\bifam \bi \else\ifnum\fam=\bsfam \bi \else \it \fi\fi\fi f% \egroup} % perthings \def\fakepercent {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle0}}} \def\fakeperthousand {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}} \def\fakepermine {\dontleavehmode \bgroup \setbox\scratchbox\hbox {\mathematics{+}}% \hbox to \wd\scratchbox {\hss \mathematics{^{\scriptscriptstyle-}\kern-.4em/\kern-.3em_{\scriptscriptstyle-}}% \hss}% \egroup} % guillemots %D Yes I know, they are ugly: \def\fakeleftguillemot {\dontleavehmode\hbox{\raise.25ex\hbox{$\scriptscriptstyle\ll$}}} \def\fakerightguillemot {\hbox{\raise.25ex\hbox{$\scriptscriptstyle\gg$}}} \def\fakeleftsubguillemot {\dontleavehmode\hbox{\raise.25ex\hbox{$\scriptscriptstyle<$}}} \def\fakerightsubguillemot {\hbox{\raise.25ex\hbox{$\scriptscriptstyle>$}}} %D Needed: \def\fakevisiblespace {\leavevmode\hbox {\setbox\scratchbox\hbox{(}% \scratchdimen.1\dp\scratchbox \setbox\scratchbox\hbox{\space}% \hbox to \wd\scratchbox {\vrule \!!depth 5\scratchdimen \!!width \scratchdimen \!!height \zeropoint \hss \vrule \!!depth 5\scratchdimen \!!width \wd\scratchbox \!!height-4\scratchdimen \hss \vrule \!!depth 5\scratchdimen \!!width \scratchdimen \!!height \zeropoint}}} %\def\fakeunderscore{\leavevmode\kern.06em\vbox{\hrule\!!width.3em}} \def\fakeunderscore {\leavevmode\hbox {\setbox\scratchbox\hbox{(}% \scratchdimen.2\dp\scratchbox \setbox\scratchbox\hbox{\space}% \vrule \!!depth \scratchdimen \!!width \wd\scratchbox \!!height\zeropoint}} \ifx\mathunderscore\undefined \let\mathunderscore\fakeunderscore \fi \ifx\textunderscore\undefined \let\textunderscore\fakeunderscore \fi \unexpanded\def\normalunderscore{\ifmmode\mathunderscore\else\textunderscore\fi} \let\_\normalunderscore % Handy but obsolete, replaced by \unknownchar: % % \def\missingglyph{\ruledhbox{?}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/catc-sym.mkii0000644000175000017500000001516214536300610024700 0ustar hillehille%D \module %D [ file=catc-sym, %D version=1997.01.03, % moved code %D title=\CONTEXT\ Catcode Macros, %D subtitle=Some Handy Constants, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % we now have loaded syst-* so we have all @@catcode constants %D We want to have access to the raw alternatives of the %D special characters. We use a \type {\xdef} instead of %D \type {\let} because we need an expandable token in a %D \type {\write}. \bgroup \catcode`B=\begingroupcatcode \catcode`E=\endgroupcatcode \catcode`.=\escapecatcode .catcode `.{ 12 .xdef .letteropenbrace B.string{E .catcode `.} 12 .xdef .letterclosebrace B.string}E .catcode `.& 12 .xdef .letterampersand B.string&E .catcode `.< 12 .xdef .letterless B.string 12 .xdef .lettermore B.string>E .catcode `.# 12 .xdef .letterhash B.string#E .catcode `." 12 .xdef .letterdoublequote B.string"E .catcode `.' 12 .xdef .lettersinglequote B.string'E .catcode `.$ 12 .xdef .letterdollar B.string$E .catcode `.% 12 .xdef .letterpercent B.string%E .catcode `.^ 12 .xdef .letterhat B.string^E .catcode `._ 12 .xdef .letterunderscore B.string_E .catcode `.| 12 .xdef .letterbar B.string|E .catcode `.~ 12 .xdef .lettertilde B.string~E .catcode `.\ 12 .xdef .letterbackslash B.string\E .catcode `./ 12 .xdef .letterslash B.string/E .catcode `.? 12 .xdef .letterquestionmark B.string?E .catcode `.! 12 .xdef .letterexclamationmark B.string!E .catcode `.@ 12 .xdef .letterat B.string@E .catcode `.: 12 .xdef .lettercolon B.string:E .global .let .letterescape .letterbackslash .global .let .letterbgroup .letteropenbrace .global .let .letteregroup .letterclosebrace .global .let .letterleftbrace .letteropenbrace .global .let .letterrightbrace .letterclosebrace .egroup %D \macros %D {uncatcodespecials,setnaturalcatcodes,setnormalcatcodes, %D uncatcodecharacters,uncatcodeallcharacters, %D uncatcodespacetokens} %D %D The following macros are more or less replaced by switching %D to a catcode table (which we simulate in \MKII) but we keep %D them for convenience and compatibility. Some old engine code %D has been removed. \def\uncatcodespecials {\setcatcodetable\nilcatcodes \uncatcodespacetokens} \def\setnaturalcatcodes {\setcatcodetable\nilcatcodes} \def\setnormalcatcodes {\setcatcodetable\ctxcatcodes} % maybe \texcatcodes \def\uncatcodecharacters {\setcatcodetable\nilcatcodes} % was fast version, gone now \def\uncatcodeallcharacters{\setcatcodetable\nilcatcodes} % was slow one, with restore \def\uncatcodespacetokens {\catcode\spaceasciicode \spacecatcode \catcode\formfeedasciicode \ignorecatcode \catcode\endoflineasciicode\endoflinecatcode \catcode\delasciicode \ignorecatcode} %D \macros %D {setverbosecharacter,setverbosecscharacters} %D %D Next follows a definition that lets some shortcuts expand to %D themselves. This macro is meant for \POSTSCRIPT\ and \PDF\ %D code passed on to the backend. \newtoks\everyverbosechacters \def\setverbosecscharacter#1% {\edef#1{\string#1}} \def\setverbosecscharacters {\the\everyverbosechacters} \bgroup % if used often we can move the code inline \catcode\barasciicode \activecatcode \catcode\tildeasciicode\activecatcode \global \everyverbosechacters = {\setverbosecscharacter |\setverbosecscharacter ~% context specific \setverbosecscharacter\|\setverbosecscharacter\~% \setverbosecscharacter\:\setverbosecscharacter\;% \setverbosecscharacter\+\setverbosecscharacter\-% \setverbosecscharacter\[\setverbosecscharacter\]% \setverbosecscharacter\.\setverbosecscharacter\\% \setverbosecscharacter\)\setverbosecscharacter\(% \setverbosecscharacter\0\setverbosecscharacter\1% \setverbosecscharacter\2\setverbosecscharacter\3% \setverbosecscharacter\4\setverbosecscharacter\5% \setverbosecscharacter\6\setverbosecscharacter\7% \setverbosecscharacter\8\setverbosecscharacter\9% \setverbosecscharacter\n\setverbosecscharacter\s% \setverbosecscharacter\/} \egroup %D (Inspired by a discussion on the \CONTEXT\ mailing list) %D %D In \TEX\ each character can have one of 16 catcodes. This way the %D backslash, dollar, ampersand, hash and some more characters get %D their special meaning. If you want to process tokens under a %D certain catcode regime, passing arguments can interfere badly. %D %D \startbuffer[a] %D \def\whatever#1{[#1]} %D \whatever{whatever \type {\whatever{you want}} $or$ not!} %D \stopbuffer %D %D \typebuffer[a] %D %D Here we pass an argument to \type {\whatever} but part of that %D argument is to be processed under a different catcode regime, i.e.\ %D all characters that need to be typeset verbatim need to get %D the catcode that makes it a letter. This is what we get when we typeset %D the text verbatim: %D %D \starttyping %D whatever \type {\whatever{you want}} $or$ not! %D \stoptyping %D %D However, when passed to \type {\whatever} we get: %D %D \getbuffer[a] %D %D In \ETEX\ one can use \type {\scantokens} to circumvent this problem. %D %D \startbuffer[b] %D \def\rescan#1{\scantokens{#1}} %D \def\whatever#1{[\rescan{#1}]} %D \whatever{whatever \type {\whatever{you want}} $or$ not!} %D \stopbuffer %D %D \getbuffer[b] \typebuffer[b] %D %D This time the \type {\whatever} call gives: %D %D \getbuffer[b] %D %D In this example, two spaces have crept in. The first one, after the %D macro name, is inserted by \TEX\ and cannot be avoided. The last space %D is inserted by \type {\scantokens}, and is the consequence of the fact %D that this macro mimics reading from a file. You can avoid the last %D space by a slightly different definition: %D %D \startbuffer[c] %D \def\rescan#1{\scantokens{#1\ignorespaces}} %D \def\whatever#1{[\rescan{#1}]} %D \whatever{whatever \type {\whatever{you want}} $or$ not!} %D \stopbuffer %D %D \typebuffer[c] %D %D Unfortunately we still keep the first space, but at least it's better than %D a failure: %D %D \getbuffer[c] \long\def\rescan#1{\scantokens{#1\ignorespaces}} \long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantokens{#2\ignorespaces}\endgroup} \ifx\scantextokens\undefined \else \long\def\rescan#1{\scantextokens{#1}} \long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantextokens{#2}\endgroup} \fi \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-con.mkii0000644000175000017500000006755514536300610024702 0ustar hillehille%D \module %D [ file=core-con, %D version=1997.26.08, %D title=\CONTEXT\ Core Macros, %D subtitle=Conversion, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Conversion} \unprotect \ifx\currentlanguage\undefined \let\currentlanguage\empty \fi \ifx\labeltext \undefined \let\labeltext\firstofoneargument \fi %D This module deals with all kind of conversions from numbers %D and dates. I considered splitting this module in a support %D one and a core one, but to keep things simple as well as %D preserve the overview, I decided against splitting. \let\spr\firstofoneargument % separator \let\stp\firstofoneargument % stopper % cleaner, some day: % % \def\isolateseparators % etex only, even works with list separator overloading % {\unexpanded\def\spr##1{{##1}}% % \unexpanded\def\stp##1{{##1}}} % needed for arab : \def\isolateseparators % even works with list separator overloading {\def\spr##1{{##1}}% \def\stp##1{{##1}}} %D \macros %D {numbers} %D %D First we deal with the dummy conversion of numbers using the %D \TEX\ primitive \type{\number}. The uppercase alternative is %D only there for compatibility with the other conversion %D macros. We could do without \type{#1} but this way we get %D rid of unwanted braces. For the savety we also define a %D non||sence uppercase alternative. %D %D \showsetup{numbers} %D %D \starttyping %D \def\numbers#1{\number#1} %D \def\Numbers#1{\number#1} %D \stoptyping %D %D Due to read ahead, as in \type{[\pagenumber\space]} the space will %D disappear, unless we use: \def\numbers#1{\purenumber{#1}} \def\Numbers#1{\purenumber{#1}} %D \macros %D {romannumerals,Romannumerals} %D %D \TEX\ the program uses a rather tricky conversion from %D numbers to their roman counterparts. This conversion could %D of course be programmed in \TEX\ itself, but I guess Knuth %D found the programming trick worth presenting. %D %D \showsetup{romannumerals} %D \showsetup{Romannumerals} %D When upcasing the result, we just follow the text book rules %D of expansion. Later on we'll see some more uppercase tricks. \def\romannumerals#1% {\romannumeral#1} %D For some years we had \unknown %D %D \starttyping %D \def\Romannumerals#1% %D {\uppercase\expandafter{\romannumeral#1}} %D \stoptyping %D %D \unknown but we need to be fully expandable in order to get %D the utility output file right, so now we have the following %D solution. It was Patrick Gundlach who first noticed this %D ommision. \def\Romannumerals#1% {\expandafter\doRomannumerals\number#1\relax} \def\doRomannumerals#1#2\relax % spaces after ifcase prevent \relax {\ifnum#1#2<10 \ifcase0#1#2 \or I\or II\or III\or IV\or V\or VI\or VII\or VIII\or IX\fi \else\ifnum#1#2<100 \ifcase0#1 \or X\or XX\or XXX\or XL\or L\or LX\or LXX\or LXXX\or XC\fi \doRomannumerals#2\relax \else\ifnum#1#2<1000 \ifcase0#1 \or C\or CC\or CCC\or CD\or D\or DC\or DCC\or DCCC\or CM\fi \doRomannumerals#2\relax \else\ifnum#1#2<4000 \ifcase0#1 \or M\or MM\or MMM\fi \doRomannumerals#2\relax \else \uppercase\expandafter{\romannumeral#1#2}% \fi\fi\fi\fi} %D \macros %D {character,Character} %D %D Converting a number into a character can of course only %D be done with numbers less or equal to~26. At the cost of %D much more macros a faster conversion is possible, using: %D %D \starttyping %D \setvalue{char1}{a} \def\character#1{\getvalue{char#1}} %D \stoptyping %D %D But we prefer a simpel \type{\case}. %D %D \showsetup{character} %D \showsetup{Character} \def\unknowncharacter{-} % else in lists \relax %D Big case statements but pretty fast: \def\character#1% {\ifcase#1\unknowncharacter \or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m% \or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z% \else \unknowncharacter \fi} \def\Character#1% {\ifcase#1\unknowncharacter \or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M% \or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z% \else \unknowncharacter \fi} %D \macros %D {characters,Characters} %D %D Converting large numbers is supported by the next two %D macros. This time we just count on: $\cdots$~x, y, z, aa, %D ab, ac~$\cdots$. %D %D \showsetup{characters} %D \showsetup{Characters} %D The fully expandable alternative: \def\dodoconvertcharacters#1#2#3% {\ifcase#3\else \ifnum#3>#1 \expandafter\doconvertcharacters\expandafter#2\expandafter{\the\numexpr(#3+12)/#1-1\relax}% \expandafter#2\expandafter{\the\numexpr#3-((#3+12)/#1-1)*#1\relax}% \else \expandafter#2\expandafter{\number#3}% \fi \fi} \def\doconvertcharacters{\dodoconvertcharacters{26}} \def\characters{\doconvertcharacters\character} \def\Characters{\doconvertcharacters\Character} %D \macros %D {greeknumerals,Greeknumerals} %D %D Why should we only honour the romans, and not the greek? \def\greeknumerals#1% {% no longer needed: \mathematics {\ifcase#1\unknowncharacter\or \alpha \or \beta \or \gamma \or \delta \or \varepsilon \or \zeta \or \eta \or \theta \or \iota \or \kappa \or \lambda \or \mu \or \nu \or \xi \or \omicron \or \pi \or \varrho \or \sigma \or \tau \or \upsilon \or \phi \or \chi \or \psi \or \omega \else \unknowncharacter \fi}} \def\Greeknumerals#1% {% no longer needed: \mathematics {\ifcase#1\unknowncharacter \or \Alpha \or \Beta \or \Gamma \or \Delta \or \Epsilon \or \Zeta \or \Eta \or \Theta \or \Iota \or \Kappa \or \Lambda \or \Mu \or \Nu \or \Xi \or \Omicron \or \Pi \or \Rho \or \Sigma \or \Tau \or \Upsilon \or \Phi \or \Xi \or \Psi \or \Omega \else \unknowncharacter \fi}} %D \macros %D {oldstylenumerals,oldstyleromannumerals} %D %D These conversions are dedicated to Frans Goddijn. \unexpanded\def\oldstylenumerals#1% {{\os\number#1}} \unexpanded\def\oldstyleromannumerals#1% {{\leftrulefalse\rightrulefalse\ss\txx\boxrulewidth.15ex \ruledhbox spread .15em{\hss\uppercased{\romannumerals{#1}}\hss}}} %D \macros %D {protectconversion} %D %D The previous two commands are not robust enough to be %D passed to \type{\write} en \type{\message}. That's why we %D introduce: \def\protectconversion {\def\doconvertcharacters##1{##1}} % was \relax %{\def\doconvertcharacters##1{\ifcase0##1 0\else##1\fi}} more save %D \macros %D {normaltime,normalyear,normalmonth,normalday} %D %D The last part of this module is dedicated to converting %D dates. Because we want to use as meaningful commands as %D possible, and because \TEX\ already uses up some of those, %D we save the original meanings. \savenormalmeaning\time \savenormalmeaning\year \savenormalmeaning\month \savenormalmeaning\day %D \macros %D {month,MONTH} %D %D Converting the month number into a month name is done %D using a case statement, abstact values and the label %D mechanism. This way users can easily redefine a label from %D for instance german into austrian. %D %D \starttyping %D \setuplabeltext [de] [january=J\"anner] %D \stoptyping %D %D Anyhow, the conversion looks like: \def\domonthtag#1% {\ifcase#1% \or \v!january \or \v!february \or \v!march \or \v!april \or \v!may \or \v!june \or \v!july \or \v!august \or \v!september \or \v!october \or \v!november \or \v!december \else \v!unknown \fi} \def\doconvertmonthlong #1{\labeltext{\domonthtag{#1}}} \def\doconvertmonthshort#1{\labeltext{\domonthtag{#1}:\s!mnem}} \let\doconvertmonth\doconvertmonthlong %D We redefine the \TEX\ primitive \type{\month} as: %D %D \showsetup{month} %D \showsetup{MONTH} \def\monthlong {\doconvertmonthlong} \def\monthshort{\doconvertmonthshort} \def\month {\doconvertmonth} \def\MONTH #1{{\let\labeltext\LABELTEXT\month {#1}}} \def\MONTHLONG #1{{\let\labeltext\LABELTEXT\monthlong {#1}}} \def\MONTHSHORT#1{{\let\labeltext\LABELTEXT\monthshort{#1}}} %D We never explicitly needed this, but Tobias Burnus pointed %D out that it would be handy to convert to the day of the %D week. In doing so, we have to calculate the total number of %D days, taking leapyears into account. For those who are %D curious: %D %D \startitemize[packed] %D \item years that can be divided by 4 are leapyears %D \item exept years that can be divided by 100 %D \item unless years can be divided by 400 %D \stopitemize %D %D This makes the year 1900 into a normal year and 1996 and %D 2000 into leap years, right? Well, converting to string %D looks familiar: \def\doconvertday#1% {\labeltext {\ifcase#1 \or \v!sunday \or \v!monday \or \v!tuesday \or \v!wednesday \or \v!thursday \or \v!friday \or \v!saturday \fi}} %D \macros %D {getdayoftheweek, dayoftheweek} %D %D The conversion algoritm is an old one and a translation from %D a procedure written in MODULA~2 back in the 80's. I finaly %D found the 4--100-400 rules in some enclopedia. Look at this %D messy low level routine that takes the day, month and year %D as arguments: \newcount\normalweekday \def\getdayoftheweek#1#2#3% {\bgroup \!!counta#3\relax \advance\!!counta \minusone \!!countb\!!counta \multiply\!!countb 365 \advance\!!countb \ifcase#2\relax 0 \or 0 \or 31 \or 59 \or 90 \or120 \or151 \or 181 \or212 \or243 \or273 \or304 \or334 \or365 \fi \advance\!!countb #1\relax \ifnum#2>2 \doifleapyearelse{#3}{\advance\!!countb 1}{}\relax \fi \!!countc\!!counta \dosetdivision\!!countc4\!!countc \advance\!!countb \!!countc \!!countc\!!counta \dosetdivision\!!countc{100}\!!countc \advance\!!countb -\!!countc \!!countc\!!counta \dosetdivision\!!countc{400}\!!countc \advance\!!countb \!!countc \dosetmodulo\!!countb7\!!countb \advance\!!countb \plusone \@EA\egroup\@EA\normalweekday\the\!!countb\relax} \def\dayoftheweek#1#2#3% {\getdayoftheweek{#1}{#2}{#3}\doconvertday{\normalweekday}} %D Using this macro in %D %D \startbuffer %D monday: \dayoftheweek {4} {5} {1992} %D friday: \dayoftheweek {16} {6} {1995} %D monday: \dayoftheweek {25} {8} {1997} %D saturday: \dayoftheweek {30} {8} {1997} %D tuesday: \dayoftheweek {2} {1} {1996} %D tuesday: \dayoftheweek {7} {1} {1997} %D tuesday: \dayoftheweek {13} {1} {1998} %D friday: \dayoftheweek {1} {1} {2000} %D \stopbuffer %D %D \typebuffer %D %D gives %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D The macro \type {\getdayoftheweek} can be used to calculate %D the number \type {\normalweekday}. %D \macros %D {weekday,WEEKDAY} %D %D The first one is sort of redundant. It takes the day %D number argument. %D %D \showsetup{weekday} %D \showsetup{WEEKDAY} \def\weekday {\doconvertday} \def\WEEKDAY#1% {{\let\labeltext\LABELTEXT\doconvertday{#1}}} %D \macros %D {weekoftheday} %D %D {\em not yet implemented:} %D %D \starttyping %D \def\weekoftheday#1#2#3% %D {} %D \stoptyping %D \macros %D {doifleapyearelse, %D getdayspermonth} %D %D Sometimes we need to know if we're dealing with a %D leapyear, so here is a testmacro: %D %D \starttyping %D \doifleapyearelse{year}{yes}{no} %D \stoptyping %D %D An example of its use can be seen in the macro %D %D \starttyping %D \getdayspermonth{year}{month} %D \stoptyping %D %D The number of days is available in the macro \type %D {\numberofdays}. \def\doifleapyearelse#1% #2#3% {\bgroup \!!doneafalse \!!counta#1% \dosetmodulo\!!counta4\!!countb \ifcase\!!countb \dosetmodulo\!!counta{100}\!!countb \ifcase\!!countb \else \!!doneatrue \fi \dosetmodulo\!!counta{400}\!!countb \ifcase\!!countb \!!doneatrue \fi \fi \if!!donea \egroup\@EA\firstoftwoarguments % \def\next{#2}% \else \egroup\@EA\secondoftwoarguments % \def\next{#3}% \fi} % \next} % untested but cleaner: % % \def\doifleapyearelse#1% #2#3% % {\bgroup % \dosetmodulo{#1}{400}\scratchcounter % \ifcase\scratchcounter % \else % \dosetmodulo{#1}{100}\scratchcounter % \ifcase\scratchcounter % \scratchcounter\plusone % \else % \dosetmodulo{#1}4\scratchcounter % \fi % \fi % \ifcase\scratchcounter % \egroup\@EA\firstoftwoarguments % \else % \egroup\@EA\secondoftwoarguments % \fi} \def\getdayspermonth#1#2% {\doifleapyearelse{#1} {\def\numberofdays{29}} {\def\numberofdays{28}}% \edef\numberofdays {\ifcase#2 \or31\or\numberofdays\or31\or30\or 31\or30\or31\or31\or30\or31\or30\or31\fi}} %D \macros %D {currentdate, date} %D %D We use these conversion macros in the date formatting %D macro: %D %D \showsetup{currentdate} %D %D This macro takes care of proper spacing and delivers for %D instance: %D %D \startbuffer %D \currentdate[weekday,day,month,year] % still dutch example %D \currentdate[WEEKDAY,day,MONTH,year] % still dutch example %D \stopbuffer %D %D \startvoorbeeld %D \startlines %D \getbuffer %D \stoplines %D \stopvoorbeeld %D %D depending of course on the keywords. Here we gave: %D %D \typebuffer %D %D If needed one can also add non||keywords, like in %D %D \startbuffer %D \currentdate[dd,--,mm,--,yy] %D \stopbuffer %D %D \typebuffer %D %D or typeset: \getbuffer. %D %D When no argument is passed, the current date is given as %D specified per language (using \type{\installlanguage}). %D %D \showsetup{currentdate} %D %D \startbuffer %D \date %D \date[d=12,m=12,y=1998][weekday] %D \date[d=12,m=12,y=1998] %D \stopbuffer %D %D We can also typeset arbitrary dates, using the previous %D command. %D %D \typebuffer %D %D The date is specified by one character keys. When no date %D is given, we get the current date. %D %D \startlines %D \getbuffer %D \stoplines \def\kenmerkdatumpatroon{j,mm,dd} % jj,mm,dd changed at januari 1-1-2000 \newsignal\datesignal \def\dobetweendates {\ifdim\lastskip=\datesignal\relax\else \unskip\space \hskip\datesignal\relax \fi} \newtoks \everycurrentdate \def\complexcurrentdate[#1]% {\bgroup \the\everycurrentdate \def\betweendates{\let\betweendates\dobetweendates}% % was \processcommacommandp[#1]\docomplexcurrentdate \safeedef\ascii{\empty#1}% keep encoded chars \@EA\processcommalist\@EA[\ascii]\docomplexcurrentdate \ifdim\lastskip=\datesignal\relax \unskip \fi \egroup} \def\docomplexcurrentdate#1% {\lowercase{\edef\!!stringa{#1}}% permits usage in \smallcapped \expanded{\processaction[\!!stringa]}% [#1] [ \v!day=>\betweendates\the\normalday, %\v!day+=>\betweendates\ordinaldaynumber\normalday, \v!day+=>\betweendates\convertnumber{\v!day+}\normalday, \v!month=>\betweendates\month\normalmonth, \v!year=>\betweendates\the\normalyear, \v!space=>\unskip\ \hskip\datesignal,% optimization -) \ =>\unskip\ \hskip\datesignal,% optimization -) d=>\convertnumber\v!day\normalday, %d+=>\ordinaldaynumber\normalday, d+=>\convertnumber{\v!day+}\normalday, m=>\convertnumber\v!month\normalmonth, j=>\convertnumber\v!year\normalyear, y=>\convertnumber\v!year\normalyear, w=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear, dd=>\ifnum\normalday >9 \else0\fi\the\normalday, %dd+=>\ordinaldaynumber{\ifnum\normalday >9 \else0\fi\the\normalday}, dd+=>\convertnumber{\v!day+}{\ifnum\normalday >9 \else0\fi\the\normalday}, mm=>\ifnum\normalmonth>9 \else0\fi\the\normalmonth, jj=>\expandafter\gobbletwoarguments\the\normalyear, yy=>\expandafter\gobbletwoarguments\the\normalyear, \v!weekday=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear, \v!referral=>\expanded{\complexcurrentdate[\kenmerkdatumpatroon]}, \s!unknown=>\unskip % #1 and not the lowercased \commalistelement, vietnamese has text % {} because #1 can have comma, like: {\ ,} {#1}% \hskip\datesignal \def\betweendates{\let\betweendates\dobetweendates}]} \def\simplecurrentdate {\expanded{\complexcurrentdate[\currentdatespecification]}} \definecomplexorsimple\currentdate \def\dodate[#1][#2]% {\bgroup \iffirstargument \getparameters[\??da][d=\normalday,m=\normalmonth,y=\normalyear,#1]% \normalday \@@dad\relax \normalmonth\@@dam\relax \normalyear \@@day\relax \ifsecondargument \currentdate[#2]% \else \currentdate \fi \else \currentdate \fi \egroup} \def\date {\dodoubleempty\dodate} %D \macros %D {currenttime} %D %D The currenttime is actually the jobtime. You can specify %D a pattern similar to the previous date macro using the %D keys \type {h}, \type {m} and a separator. \def\calculatecurrenttime {\dosetdivision\time{60}\scratchcounter \edef\currenthour {\ifnum\scratchcounter<10 0\fi \the\scratchcounter}% \dosetmodulo \time{60}\scratchcounter \edef\currentminute{\ifnum\scratchcounter<10 0\fi \the\scratchcounter}} \let\currenthour \!!plusone \let\currentminute\!!plusone \def\currenttimespecification{h,:,m} \def\complexcurrenttime[#1]% {\calculatecurrenttime \processallactionsinset[#1] [h=>\currenthour,m=>\currentminute,\s!unknown=>\commalistelement]} \def\simplecurrenttime {\expanded{\complexcurrenttime[\currenttimespecification]}} \definecomplexorsimple\currenttime %D Because we're dealing with dates, we also introduce a few %D day loops: %D %D \starttyping %D \processmonth{year}{month}{command} %D \processyear{year}{command}{before}{after} %D \stoptyping %D %D The counters \type {\normalyear}, \type {\normalmonth} and %D \type{\normalday} can be used for for date manipulations. \long\def\processmonth#1#2#3% year month command {\bgroup \getdayspermonth{#1}{#2}% \dostepwiserecurse1\numberofdays1% {\normalyear #1\relax \normalmonth#2\relax \normalday \recurselevel\relax #3}% \egroup} \def\lastmonth{12} % can be set to e.g. 1 when testing \long\def\processyear#1#2#3#4% year command before after {\bgroup \dorecurse\lastmonth {\normalyear #1\relax \normalmonth\recurselevel\relax #3\processmonth\normalyear\normalmonth{#2}#4}% \egroup} %D \macros %D {defineconversion, convertnumber} %D %D Conversion involves the macros that we implemented earlier %D in this module. %D %D \showsetup{defineconversion} %D \showsetup{convertnumber} %D %D We can feed this command with conversion macros as well as %D a set of conversion symbols. Both need a bit different %D treatment. %D %D \starttyping %D \defineconversion [roman] [\romannumerals] %D \defineconversion [set 1] [$\star$,$\bullet$,$\ast$] %D \stoptyping %D %D You can define a language dependent conversion with: %D %D \starttyping %D \defineconversion [en] [whatever] [\something] %D \stoptyping % \def\dodefineconversion[#1][#2]% % {\ConvertConstantAfter\doifinstringelse{,}{#2} % {\scratchcounter=0 % \def\docommand##1% % {\advance\scratchcounter 1 % \setvalue{\??cv#1\the\scratchcounter}{##1}}% % \processcommalist[#2]\docommand % \setvalue{\??cv#1}##1{\csname\??cv#1##1\endcsname}} % {\setvalue{\??cv#1}{#2}}} % % \def\defineconversion% % {\dodoubleargument\dodefineconversion} \def\defineconversion {\dotripleempty\dodefineconversion} \def\dodefineconversion[#1][#2][#3]% {\ifthirdargument \dododefineconversion[#1][#2][#3]% \else \dododefineconversion[][#1][#2]% \fi} %D \starttyping %D \def\dododefineconversion[#1][#2][#3]% %D {\ConvertConstantAfter\doifinstringelse{,}{#3} %D {\scratchcounter\zerocount %D \def\docommand##1% %D {\advance\scratchcounter \plusone %D \setvalue{\??cv#1#2\the\scratchcounter}{##1}}% %D \processcommalist[#3]\docommand %D \setvalue{\??cv#1#2}##1{\executeifdefined{\??cv#1#2##1}\unknown}} % catch out-of-range numbers %D {\setvalue{\??cv#1#2}{#3}}} %D \stoptyping %D This approach has the disadvantage that when you run out of %D symbols you get unknown results. The following implementation %D permits overloading of the converter: \def\dododefineconversion[#1][#2][#3]% {\ConvertConstantAfter\doifinstringelse{,}{#3} {\scratchcounter\zerocount \def\docommand##1% {\advance\scratchcounter \plusone \setvalue{\??cv#1#2\the\scratchcounter}{##1}}% \processcommalist[#3]\docommand \setevalue{\??cv#1#2}##1% {\noexpand\docheckedconversion{#1#2}{\the\scratchcounter}{##1}}} {\setvalue{\??cv#1#2}{#3}}} \def\docheckedconversion#1#2#3% class maxnumber number {\executeifdefined{\??cv#1#3}\unknown} %D When Gerben reported problems with footnote numbering per page, %D Taco came with the following wrap around solution. So, let's %D overload the checked conversion macro: \def\docheckedconversion#1#2#3% class maxnumber number {\executeifdefined{\??cv#1\modulatednumber{#2}{#3}}\unknown} %D Taco's modulo code is implemented in the system module %D \type {syst-con}. %D If a conversion is just a font switch then we need to make sure %D that the number is indeed end up as number in the input, so we %D need to handle the second argument. \def\convertnumber#1#2% {\csname\??cv \ifcsname\??cv\currentlanguage#1\endcsname \currentlanguage#1% \else\ifcsname\??cv#1\endcsname #1% \else \s!default \fi\fi \endcsname{\number#2}} \def\doifconversiondefinedelse#1% {\ifcsname\??cv\currentlanguage#1\endcsname \@EA\firstoftwoarguments \else\ifcsname\??cv#1\endcsname \@EAEAEA\firstoftwoarguments \else \@EAEAEA\secondoftwoarguments \fi\fi} \def\doifelseconversionnumber#1#2% slow but seldom used {\doifdefinedelse{\??cv#1#2}} %D Handy. \setvalue{\??cv:\c!n:\v!one }{1} \setvalue{\??cv:\c!n:\v!two }{2} \setvalue{\??cv:\c!n:\v!three}{3} \setvalue{\??cv:\c!n:\v!four }{4} \setvalue{\??cv:\c!n:\v!five }{5} \def\wordtonumber#1#2{\ifcsname\??cv:\c!n:#1\endcsname\csname\??cv:\c!n:#1\endcsname\else#2\fi} % \defineconversion[ctx][c,o,n,t,e,x,t] % % \doloop{\doifelseconversionnumber{ctx}{\recurselevel}{[\recurselevel]}{\exitloop}} \defineconversion [\s!default] [\numbers] %D As longs as symbols are linked to levels or numbers, we can %D also use the conversion mechanism, but in for instance the %D itemization macros, we prefer symbols because they can more %D easier be (partially) redefined. Symbols are implemented %D in another module. \defineconversion [] [\numbers] % the default conversion \defineconversion [a] [\characters] \defineconversion [A] [\Characters] \defineconversion [AK] [\smallcapped\characters] \defineconversion [KA] [\smallcapped\characters] \defineconversion [n] [\numbers] \defineconversion [N] [\Numbers] \defineconversion [m] [\mediaeval] \defineconversion [i] [\romannumerals] \defineconversion [I] [\Romannumerals] \defineconversion [r] [\romannumerals] \defineconversion [R] [\Romannumerals] \defineconversion [KR] [\smallcapped\romannumerals] \defineconversion [RK] [\smallcapped\romannumerals] \defineconversion [g] [\greeknumerals] \defineconversion [G] [\Greeknumerals] \defineconversion [o] [\oldstylenumerals] \defineconversion [O] [\oldstylenumerals] \defineconversion [or] [\oldstyleromannumerals] \defineconversion [\v!character] [\character] \defineconversion [\v!Character] [\Character] \defineconversion [\v!characters] [\characters] \defineconversion [\v!Characters] [\Characters] \defineconversion [\v!numbers] [\numbers] \defineconversion [\v!Numbers] [\Numbers] \defineconversion [\v!mediaeval] [\mediaeval] \defineconversion [\v!romannumerals] [\romannumerals] \defineconversion [\v!Romannumerals] [\Romannumerals] \defineconversion [\v!greek] [\greeknumerals] \defineconversion [\v!Greek] [\Greeknumerals] \defineconversion [arabicnumerals] [\arabicnumerals] \defineconversion [persiannumerals] [\arabicnumerals] \defineconversion [month] [\doconvertmonthlong] \defineconversion [month:mnem] [\doconvertmonthshort] % Some bonus ones: \defineconversion [\v!empty] [\gobbleoneargument] \defineconversion [\v!none] [\numbers] \ifx\symbol\undefined \def\symbol[#1]{#1} \fi % todo \defineconversion [set 0] [{\symbol[bullet]}, {\symbol[dash]}, {\symbol[star]}, {\symbol[triangle]}, {\symbol[circle]}, {\symbol[medcircle]}, {\symbol[bigcircle]}, {\symbol[square]}] \defineconversion [set 1] [\mathematics{\star}, \mathematics{\star\star}, \mathematics{\star\star\star}, \mathematics{\ddagger}, \mathematics{\ddagger\ddagger}, \mathematics{\ddagger\ddagger\ddagger}, \mathematics{\ast}, \mathematics{\ast\ast}, \mathematics{\ast\ast\ast}] \defineconversion [set 2] [\mathematics{*}, \mathematics{\dag}, \mathematics{\ddag}, \mathematics{**}, \mathematics{\dag\dag}, \mathematics{\ddag\ddag}, \mathematics{***}, \mathematics{\dag\dag\dag}, \mathematics{\ddag\ddag\ddag}, \mathematics{****}, \mathematics{\dag\dag\dag\dag}, \mathematics{\ddag\ddag\ddag\ddag}] \defineconversion [set 3] [\mathematics{\star}, \mathematics{\star\star}, \mathematics{\star\star\star}, \mathematics{\ddagger}, \mathematics{\ddagger\ddagger}, \mathematics{\ddagger\ddagger\ddagger}, \mathematics{\P}, \mathematics{\P\P}, \mathematics{\P\P\P}, \mathematics{\S}, \mathematics{\S\S}, \mathematics{\S\S\S}, \mathematics{\ast}, \mathematics{\ast\ast}, \mathematics{\ast\ast\ast}] %D \macros %D {defineconversionvector,conversionnumber} % bad names so no danger for clash %D %D For Adam and friends \unknown %D %D \startitemize[persiannummerals] %D \item test \item test \item test \item test %D \stopitemize \def\defineconversionvector#1#2% name base {\bgroup % dirty trick \uccode`\*=`\1 % plain: % \uccode`\0=\numexpr#2+0\relax \uccode`\1=\numexpr#2+1\relax % \uccode`\2=\numexpr#2+2\relax \uccode`\3=\numexpr#2+3\relax % \uccode`\4=\numexpr#2+4\relax \uccode`\5=\numexpr#2+5\relax % \uccode`\6=\numexpr#2+6\relax \uccode`\7=\numexpr#2+7\relax % \uccode`\8=\numexpr#2+8\relax \uccode`\9=\numexpr#2+9\relax % context: \dostepwiserecurse091{\expandafter\uccode\expandafter`\recurselevel=\numexpr#2+\recurselevel}% % prepared macro \uppercase\expandafter{\expandafter\gdef\csname::cvn::#1::\endcsname##*% {\ifcase##* 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\fi}}% \egroup} \def\conversionnumber#1#2% {\ifcsname::cvn::#1::\endcsname \expandafter\doconversionnumber\csname::cvn::#1::\expandafter\endcsname\number#2\relax \else \number#2% \fi} \def\doconversionnumber#1#2% {\ifx#2\relax \expandafter\gobbleoneargument \else #1{#2}% \expandafter\doconversionnumber \fi#1} % actually mkiii code \ifnum\texengine=\xetexengine \defineconversionvector{arabicnumerals} {"0660} \defineconversionvector{persiannumerals} {"06F0} \defineconversionvector{thainumerals} {"0E50} \defineconversionvector{devanagarinumerals}{"0966} \defineconversionvector{gurmurkhinumerals} {"0A66} \defineconversionvector{gujaratinumerals} {"0AE6} \defineconversionvector{tibetannumerals} {"0F20} % also "half numerals?" \defineconversion[arabicnumerals] [\conversionnumber{arabicnumerals}] \defineconversion[persiannumerals] [\conversionnumber{persiannumerals}] \defineconversion[thainumerals] [\conversionnumber{thainumerals}] \defineconversion[devanagarinumerals][\conversionnumber{devanagarinumerals}] \defineconversion[gurmurkhinumerals] [\conversionnumber{gurmurkhinumerals}] \defineconversion[gujaratinumerals] [\conversionnumber{gujaratinumerals}] \defineconversion[tibetannumerals] [\conversionnumber{tibetannumerals}] \fi \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-log.mkii0000644000175000017500000002054714536300610024705 0ustar hillehille%D \module %D [ file=cont-log, %D version=1995.10.10, %D title=\CONTEXT\ Miscellaneous Macros, %D subtitle=\TEX\ Logos, %D author=J. Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt TeX Logos} %D The system that is used to typeset this text is called \TEX, %D typeset with an lowered~E. From te beginning of \TEX, %D authors of macro packages adapted this raising and lowering %D style. In this module we define some of those logos. %D The Computer Modern detection hack is gone as we now have Latin %D Modern which has more kerning pairs. \unprotect \def\Mkern#1% {{\setbox\scratchbox\hbox{M}\kern#1\wd\scratchbox}} \unexpanded\def\TeX {T% \Mkern{-.1667}\lower.5ex\hbox{E}% \Mkern{-.125}X} \unexpanded\def\ConTeXt{Con\TeX t} \unexpanded\def\PPCHTeX{ppch\TeX} \unexpanded\def\PRAGMA {Pragma ADE} \unexpanded\def\LaTeX % requested by erik frambach {{\setbox\scratchbox\hbox{L}% \scratchdimen\ht\scratchbox \setbox\scratchbox\hbox{\txx A}% L\kern-.55\wd\scratchbox \raise\scratchdimen\hbox{\lower\ht\scratchbox\copy\scratchbox}% \kern-.2\wd\scratchbox\TeX}} \unexpanded\def\TaBlE {T% \kern-.27em\lower.5ex\hbox{A}% \kern-.18emB% \kern-.1em\lower.5ex\hbox{L}% \kern-.075emE} \unexpanded\def\PiCTeX {P% \kern-.12em\lower.5ex\hbox{I}% \kern-.075em C% \kern-.11em\TeX} \def\AMSswitch#1% {$\cal\ifdim\bodyfontsize>1.1em\scriptstyle\fi#1$} \unexpanded\def\AmSTeX {\AMSswitch A% \kern-.1667em\lower.5ex\hbox{\AMSswitch M}% \kern-.125em\AMSswitch S% -\TeX} \unexpanded\def\LamSTeX {L% \kern-.4em\raise.3ex\hbox{\AMSswitch A}% \kern-.25em\lower.4ex\hbox{\AMSswitch M}% \kern-.1em{\AMSswitch S}% -\TeX} \unexpanded\def\AmSLaTeX {\AMSswitch A% \kern-.1667em\lower.5ex\hbox{\AMSswitch M}% \kern-.125em\AMSswitch S% -\LaTeX} %D Alternative \CONTEXT\ logo, first Idris S.~Hamid's version: %D %D \def\Context %D {{\sc C\kern -.0667emo\kern -.0667emn\kern -.0549emt\kern %D -.1667em\lower.5ex\hbox {e}\kern -.125emx\kern -.0549emt}} %D %D I changed this into one that adapts itself: \unexpanded\def\Context {{C\kern -.0667em\getscaledglyph{.8}\empty{O\kern -.0667emN\kern -.0549emT\doifitalicelse{\kern-.1em}{\kern-.1667em}\lower.5ex\hbox {E}\doifitalicelse\empty{\kern-.11em}X\kern-.055emT}}} %D The \METAFONT\ and \METAPOST\ logos adapt themselves to the %D current fontsize, an ugly but usefull hack. % rather hard coded % % \loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol] % % \unexpanded\def\setMFPfont % {\font\logofont=logo% % \ifnum\fam=\bffam\c!bf\else % \ifnum\fam=\slfam\c!sl\else % \ifnum\fam=\itfam\c!sl\else % \ifnum\fam=\bsfam\c!bf\else % \ifnum\fam=\bifam\c!bf\else % \fi\fi\fi\fi\fi % 10 at \currentfontscale\bodyfontsize % \logofont} % % or: % % \definefontsynonym [MetaLogo] [logo10] % \definefontsynonym [MetaLogoBold] [logobf10] % \definefontsynonym [MetaLogoSlanted] [logosl10] % \definefontsynonym [MetaLogoItalic] [logosl10] % \definefontsynonym [MetaLogoBoldSlanted] [logobf10] % \definefontsynonym [MetaLogoBoldtalic] [logobf10] % % \loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol] % % \def\setMFPfont{\symbolicfont{MetaLogo}} \let\logofont\nullfont \loadmapfile[original-base.map] \unexpanded\def\setMFPfont% more sensitive for low level changes {\font\logofont=logo% \ifx\fontalternative\c!bf\else \ifx\fontalternative\c!it\else \ifx\fontalternative\c!sl\else \ifx\fontalternative\c!bi\else \ifx\fontalternative\c!bs\else \fi\fi\fi\fi\fi 10 at \currentfontscale\bodyfontsize \logofont} %\unexpanded\def\MetaFont% % {\hbox{\setMFPfont METAFONT}} % %\unexpanded\def\MetaPost% % {\hbox{\setMFPfont METAPOST}} \def\MetaHyphen% there is no hyphenchar in this font {\discretionary{\vrule\!!height.33em\!!depth-.27em\!!width.33em}{}{}} \unexpanded\def\MetaFont {{\setMFPfont META\MetaHyphen FONT}} \unexpanded\def\MetaPost {{\setMFPfont META\MetaHyphen POST}} \unexpanded\def\MetaFun {MetaFun} %D \macros %D {TEX, METAFONT, METAPOST, METAFUN, %D PICTEX, TABLE, %D CONTEXT, PPCHTEX, %D AMSTEX, LATEX, LAMSTEX} %D %D We define the funny written ones as well as the less %D error prone upper case names (in \CONTEXT\ we tend to %D write all user defined commands, like abbreviations, in %D uppercase.) \unexpanded\def\METAFONT {\MetaFont} \unexpanded\def\METAPOST {\MetaPost} \unexpanded\def\PPCHTEX {\PPCHTeX} \unexpanded\def\CONTEXT {\ConTeXt} \unexpanded\def\METAFUN {\MetaFun} \unexpanded\def\TEX {\TeX} \unexpanded\def\LATEX {\LaTeX} \unexpanded\def\PICTEX {\PiCTeX} \unexpanded\def\TABLE {\TaBlE} \unexpanded\def\AMSTEX {\AmSTeX} \unexpanded\def\LAMSTEX {\LamSTeX} \unexpanded\def\INRSTEX {inrs\TeX} %D And this is how they show up: \TeX, \MetaFont, \MetaPost, %D \PiCTeX, \TaBlE, \ConTeXt, \PPCHTeX, \AmSTeX, \LaTeX, %D \LamSTeX. %D Some placeholders: \unexpanded\def\eTeX {\mathematics{\varepsilon}-\TeX} \unexpanded\def\pdfTeX {pdf\TeX} \unexpanded\def\pdfeTeX{pdfe-\TeX} \unexpanded\def\luaTeX {lua\TeX} \unexpanded\def\metaTeX{meta\TeX} \unexpanded\def\XeTeX {X\lower.5ex\hbox{\kern-.15em\mirror{E}}\kern-.1667em\TeX} % Adapted from a patch by Mojca: \def\@XeTeX@ {\setbox\scratchbox\hbox{E}% \raise\dimexpr\ht\scratchbox+\dp\scratchbox\relax\hbox{\rotate[\c!rotation=180]{\box\scratchbox}}} \ifnum\texengine=\pdftexengine \unexpanded\def\XeTeX {X\lower.5ex \hbox {\kern-.15em \ifx\fontalternative\c!bf\mirror{E}\else \ifx\fontalternative\c!it \@XeTeX@\else \ifx\fontalternative\c!sl \@XeTeX@\else \ifx\fontalternative\c!bi \@XeTeX@\else \ifx\fontalternative\c!bs \@XeTeX@\else \mirror{E}\fi\fi\fi\fi\fi}% \kern-.1667em \TeX} \else \unexpanded\def\XeTeX {X\lower.5ex \hbox {\kern-.15em \iffontchar\font"018E\relax \char"018E% \else \ifx\fontalternative\c!bf\mirror{E}\else \ifx\fontalternative\c!it \@XeTeX@\else \ifx\fontalternative\c!sl \@XeTeX@\else \ifx\fontalternative\c!bi \@XeTeX@\else \ifx\fontalternative\c!bs \@XeTeX@\else \mirror{E}\fi\fi\fi\fi\fi \fi}% \kern-.1667em \TeX} \fi \let\ETEX \eTeX \let\PDFTEX \pdfTeX \let\PDFETEX\pdfeTeX \let\LUATEX \luaTeX \let\LuaTeX \luaTeX \let\XETEX \XeTeX \unexpanded\def\MkApproved % joke, not used so it might move {\dontleavehmode\rotate [\c!rotation={\ifnum\texengine=\luatexengine\ctxlua{tex.write(45-45*\the\luatexversion/100)}\else0\fi}, \c!align=\v!middle, \c!foregroundstyle=\v!type, \c!foregroundcolor=darkred, \c!frame=\v!on, \c!offset=1ex, \c!background=\v!color, \c!backgroundcolor=lightgray, \c!framecolor=darkred, \c!rulethickness=2pt] {Mk\ifnum\texengine=\luatexengine IV\else II\fi\\approved}} % \unexpanded\def\luaTeX % {\dontleavehmode\begingroup % Lua% % \setbox0\hbox{oT}% % \setbox2\hbox{o\kern0ptT}% % \ifdim\wd0=\wd2 % \setbox0\hbox dir TRT{To}% % \setbox2\hbox{T\kern0pto}% % \hskip\dimexpr\wd0-\wd2\relax % \fi % \TeX % \endgroup} % % a further iteration from the list, patched again % \ifx\fontalternative\c!it -\else % \ifx\fontalternative\c!sl -\else % \ifx\fontalternative\c!bi -\else % \ifx\fontalternative\c!bs -\fi\fi\fi\fi \def\LuaTeX {\dontleavehmode \begingroup Lua% % hope for kerning, try aT \setbox0\hbox{aT}% \setbox2\hbox{a\kern\zeropoint T}% \ifdim\wd0=\wd2 % kerns can go two ways % no aT kerning, try oT as a is not symmetrical \setbox0\hbox{oT}% \setbox2\hbox{o\kern\zeropoint T}% \ifdim\wd0=\wd2 % kerns can go two ways % no aT and oT kerning, try To \setbox0\hbox{To}% \setbox2\hbox{T\kern\zeropoint o}% % maybe we need to compensate for the angle (sl/it/bs/bi) \fi \ifdim\wd0=\wd2\else \kern\dimexpr\wd0-\wd2\relax \fi \fi \TeX \endgroup} \let\luaTeX \LuaTeX \let\LUATEX \LuaTeX \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-de.mkii0000644000175000017500000000102214536300610024477 0ustar hillehille%D \module %D [ file=cont-de, %D version=1997.08.19, %D title=\CONTEXT, %D subtitle=\CONTEXT\ German Format Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \catcode`\{=1 \catcode`\}=2 \def\defaultinterface {german} \def\defaultlanguagetag{de} \input context.mkii \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-raw.mkii0000644000175000017500000000233414536300610024707 0ustar hillehille%D \module %D [ file=xtag-raw, %D version=2002.03.21, %D title=\CONTEXT\ XML Macros, %D subtitle=Raw Specials, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt XML Macros / Raw Specials} %D Some day this module will be obsolete. \defineXMLentity [tex-hash] {\letterhash} \defineXMLentity [tex-dollar] {\letterdollar} \defineXMLentity [tex-percent] {\letterpercent} \defineXMLentity [tex-backslash] {\letterbackslash} \defineXMLentity [tex-hat] {\letterhat} \defineXMLentity [tex-underscore] {\letterunderscore} \defineXMLentity [tex-leftbrace] {\letterbgroup} \defineXMLentity [tex-rightbrace] {\letteregroup} \defineXMLentity [tex-bar] {\letterbar} \defineXMLentity [tex-tilde] {\lettertilde} \endinput \defineXMLsingular[test][oeps=,whow=,hm=] % {\tttf \input \XMLop{oeps} [\XMLop{whow}] [\XMLop{hm}]} {\tttf \XMLop{oeps} [\XMLop{whow}] [\XMLop{hm}]} \startXMLdata \stopXMLdata context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-rng.mkii0000644000175000017500000000136014536300610024702 0ustar hillehille%D \module %D [ file=xtag-rng, %D version=2002.10.29, %D title=\CONTEXT\ XML Macros, %D subtitle=Relax NG, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D The following commands picks up a named block from the %D given file and pretty prints it. %D %D \starttyping %D \showRNGcomponent [eximple.rng] [request] %D \stoptyping %D %D If needed, you adapt the colors used by redefining the %D \type {xtag} color palet. \fetchruntimecommand\showRNGcomponent {\f!xtagprefix\s!run} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-032.mkii0000644000175000017500000003737414536300610024431 0ustar hillehille%D \module %D [ file=unic-032, %D version=2006.03.30, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 32, %D author={Hans Hagen \& Taco Hoekwater}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startunicodevector 32 \expandafter\strippedcsname \ifcase\numexpr#1\relax \enspace \or % U+2000 EN QUAD \emspace \or % U+2001 EM QUAD \enspace \or % U+2002 EN SPACE \emspace \or % U+2003 EM SPACE \unic@threeperemspace \or % U+2004 THREE-PER-EM SPACE \unic@fourperemspace \or % U+2005 FOUR-PER-EM SPACE \unic@sixperemspace \or % U+2006 SIX-PER-EM SPACE \unic@figurespace \or % U+2007 FIGURE SPACE \unmic@punctiationspace \or % U+2008 PUNCTUATION SPACE \thinspace \or % U+2009 THIN SPACE \unic@hairspace \or % U+200A HAIR SPACE \unic@zerowidthspace \or % U+200B ZERO WIDTH SPACE \unic@zerowidthnonjoiner \or % U+200C ZERO WIDTH NON-JOINER \unic@zerowidthjoiner \or % U+200D ZERO WIDTH JOINER \unknownchar \or % U+200E LEFT-TO-RIGHT MARK \unknownchar \or % U+200F RIGHT-TO-LEFT MARK \breakinghyphen \or % U+2010 HYPHEN \nonbreakinghyphen \or % U+2011 NON-BREAKING HYPHEN \endash \or % U+2012 FIGURE DASH \endash \or % U+2013 EN DASH \emdash \or % U+2014 EM DASH \emdash \or % U+2015 HORIZONTAL BAR \unic@doubleverticalline \or % U+2016 DOUBLE VERTICAL LINE \unic@doublelowline \or % U+2017 DOUBLE LOW LINE \quoteleft \or % U+2018 LEFT SINGLE QUOTATION MARK \quoteright \or % U+2019 RIGHT SINGLE QUOTATION MARK \quotesinglebase \or % U+201A SINGLE LOW-9 QUOTATION MARK \unic@quoteleftreversed \or % U+201B SINGLE HIGH-REVERSED-9 QUOTATION MARK \quotedblleft \or % U+201C LEFT DOUBLE QUOTATION MARK \quotedblright \or % U+201D RIGHT DOUBLE QUOTATION MARK \quotedblbase \or % U+201E DOUBLE LOW-9 QUOTATION MARK \unic@quotedblleftreversed \or % U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK \textdag \or % U+2020 DAGGER \textddag \or % U+2021 DOUBLE DAGGER \textbullet \or % U+2022 BULLET \blacktriangleright \or % U+2023 TRIANGULAR BULLET \unic@onedotleader \or % U+2024 ONE DOT LEADER \unic@twodotleader \or % U+2025 TWO DOT LEADER \periods \or % U+2026 HORIZONTAL ELLIPSIS % was: \textellipsis \unic@hyphenationpoint \or % U+2027 HYPHENATION POINT \crlf \or % U+2028 LINE SEPARATOR \endgraf \or % U+2029 PARAGRAPH SEPARATOR \unknownchar \or % U+202A LEFT-TO-RIGHT EMBEDDING \unknownchar \or % U+202B RIGHT-TO-LEFT EMBEDDING \unknownchar \or % U+202C POP DIRECTIONAL FORMATTING \unknownchar \or % U+202D LEFT-TO-RIGHT OVERRIDE \unknownchar \or % U+202E RIGHT-TO-LEFT OVERRIDE \ \or % U+202F NARROW NO-BREAK SPACE \perthousand \or % U+2030 PER MILLE SIGN \unknownchar \or % U+2031 PER TEN THOUSAND SIGN \prime \or % U+2032 PRIME \unic@doubleprime \or % U+2033 DOUBLE PRIME \unic@tripleprime \or % U+2034 TRIPLE PRIME \backprime \or % U+2035 REVERSED PRIME \unic@reverseddoubleprime \or % U+2036 REVERSED DOUBLE PRIME \unic@reversedtripleprime \or % U+2037 REVERSED TRIPLE PRIME \unknownchar \or % U+2038 CARET \guilsingleleft \or % U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK \guilsingleright \or % U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK \unknownchar \or % U+203B REFERENCE MARK \unic@doubleexclamationmark \or % U+203C DOUBLE EXCLAMATION MARK \unknownchar \or % U+203D INTERROBANG \unknownchar \or % U+203E OVERLINE \unknownchar \or % U+203F UNDERTIE \unknownchar \or % U+2040 CHARACTER TIE \unknownchar \or % U+2041 CARET INSERTION POINT \unknownchar \or % U+2042 ASTERISM \unknownchar \or % U+2043 HYPHEN BULLET \unic@fractionslash \or % U+2044 FRACTION SLASH \unknownchar \or % U+2045 LEFT SQUARE BRACKET WITH QUILL \unknownchar \or % U+2046 RIGHT SQUARE BRACKET WITH QUILL \unic@doublequestionmark \or % U+2047 DOUBLE QUESTION MARK \unic@exclamationquestionmark\or % U+2048 QUESTION EXCLAMATION MARK \unic@questionexclamationmark\or % U+2049 EXCLAMATION QUESTION MARK \unknownchar \or % U+204A TIRONIAN SIGN ET \unic@reversedpilcrowsign \or % U+204B REVERSED PILCROW SIGN \unknownchar \or % U+204C BLACK LEFTWARDS BULLET \unknownchar \or % U+204D BLACK RIGHTWARDS BULLET \unic@lowasterisk \or % U+204E LOW ASTERISK \unic@reversedsemicolon \or % U+204F REVERSED SEMICOLON \unknownchar \or % U+2050 CLOSE UP \unknownchar \or % U+2051 TWO ASTERISKS ALIGNED VERTICALLY \unknownchar \or % U+2052 COMMERCIAL MINUS SIGN \unknownchar \or % U+2053 SWUNG DASH \unknownchar \or % U+2054 INVERTED UNDERTIE \unknownchar \or % U+2055 FLOWER PUNCTUATION MARK \unknownchar \or % U+2056 THREE DOT PUNCTUATION \unknownchar \or % U+2057 QUADRUPLE PRIME \unknownchar \or % U+2058 FOUR DOT PUNCTUATION \unknownchar \or % U+2059 FIVE DOT PUNCTUATION \unknownchar \or % U+205A TWO DOT PUNCTUATION \unknownchar \or % U+205B FOUR DOT MARK \unknownchar \or % U+205C DOTTED CROSS \unknownchar \or % U+205D TRICOLON \unknownchar \or % U+205E VERTICAL FOUR DOTS \thickspace \or % U+205F MEDIUM MATHEMATICAL SPACE \relax \or % U+2060 WORD JOINER \unic@functionapplication \or % U+2061 FUNCTION APPLICATION \unic@invisibletimes \or % U+2062 INVISIBLE TIMES \unic@invisibleseparator \or % U+2063 INVISIBLE SEPARATOR (COMMA) \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \relax \or % U+206A INHIBIT SYMMETRIC SWAPPING \relax \or % U+206B ACTIVATE SYMMETRIC SWAPPING \relax \or % U+206C INHIBIT ARABIC FORM SHAPING \relax \or % U+206D ACTIVATE ARABIC FORM SHAPING \relax \or % U+206E NATIONAL DIGIT SHAPES \relax \or % U+206F NOMINAL DIGIT SHAPES \unic@superscriptzero \or % U+2070 SUPERSCRIPT ZERO \unic@superscripti \or % U+2071 SUPERSCRIPT LATIN SMALL LETTER I \unknownchar \or % U+2072 \unknownchar \or % U+2073 \unic@superscriptfour \or % U+2074 SUPERSCRIPT FOUR \unic@superscriptfive \or % U+2075 SUPERSCRIPT FIVE \unic@superscriptsix \or % U+2076 SUPERSCRIPT SIX \unic@superscriptseven \or % U+2077 SUPERSCRIPT SEVEN \unic@superscripteight \or % U+2078 SUPERSCRIPT EIGHT \unic@superscriptnine \or % U+2079 SUPERSCRIPT NINE \unic@superscriptplus \or % U+207A SUPERSCRIPT PLUS SIGN \unic@superscriptminus \or % U+207B SUPERSCRIPT MINUS \unic@superscriptequals \or % U+207C SUPERSCRIPT EQUALS SIGN \unic@superscriptleft \or % U+207D SUPERSCRIPT LEFT PARENTHESIS \unic@superscriptright \or % U+207E SUPERSCRIPT RIGHT PARENTHESIS \unic@superscriptn \or % U+207F SUBSCRIPT LATIN SMALL LETTER N \unic@subscriptzero \or % U+2080 SUBSCRIPT ZERO \unic@subscriptone \or % U+2081 SUBSCRIPT ONE \unic@subscripttwo \or % U+2082 SUBSCRIPT TWO \unic@subscriptthree \or % U+2083 SUBSCRIPT THREE \unic@subscriptfour \or % U+2084 SUBSCRIPT FOUR \unic@subscriptfive \or % U+2085 SUBSCRIPT FIVE \unic@subscriptsix \or % U+2086 SUBSCRIPT SIX \unic@subscriptseven \or % U+2087 SUBSCRIPT SEVEN \unic@subscripteight \or % U+2088 SUBSCRIPT EIGHT \unic@subscriptnine \or % U+2089 SUBSCRIPT NINE \unic@subscriptplus \or % U+208A SUBSCRIPT PLUS SIGN \unic@subscriptminus \or % U+208B SUBSCRIPT MINUS \unic@subscriptequals \or % U+208C SUBSCRIPT EQUALS SIGN \unic@subscriptleft \or % U+208D SUBSCRIPT LEFT PARENTHESIS \unic@subscriptright \or % U+208E SUBSCRIPT RIGHT PARENTHESIS \unknownchar \or % \unic@subscripta \or % U+2090 LATIN SUBSCRIPT SMALL LETTER A \unic@subscripte \or % U+2091 LATIN SUBSCRIPT SMALL LETTER E \unic@subscripto \or % U+2092 LATIN SUBSCRIPT SMALL LETTER O \unic@subscriptx \or % U+2093 LATIN SUBSCRIPT SMALL LETTER X \unic@subscriptschwa \or % U+2094 LATIN SUBSCRIPT SMALL LETTER SCHWA \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % U+20A0 EURO-CURRENCY SIGN \unknownchar \or % U+20A1 COLON SIGN \unknownchar \or % U+20A2 CRUZEIRO SIGN \unknownchar \or % U+20A3 FRENCH FRANC SIGN \unknownchar \or % U+20A4 LIRA SIGN \unknownchar \or % U+20A5 MILL SIGN \unknownchar \or % U+20A6 NAIRA SIGN \unknownchar \or % U+20A7 PESETA SIGN \unknownchar \or % U+20A8 RUPEE SIGN \unknownchar \or % U+20A9 WON SIGN \unknownchar \or % U+20AA NEW SHEQEL SIGN \textdong \or % U+20AB DONG SIGN \texteuro \or % U+20AC EURO SIGN \unknownchar \or % U+20AD KIP SIGN \unknownchar \or % U+20AE TUGRIK SIGN \unknownchar \or % U+20AF DRACHMA SIGN \unknownchar \or % U+20B0 GERMAN PENNY SIGN \unknownchar \or % U+20B1 PESO SIGN \unknownchar \or % U+20B2 GUARANI SIGN \unknownchar \or % U+20B3 AUSTRAL SIGN \unknownchar \or % U+20B4 HRYVNIA SIGN \unknownchar \or % U+20B5 CEDI SIGN \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % U+20D0 COMBINING LEFT HARPOON ABOVE \unknownchar \or % U+20D1 COMBINING RIGHT HARPOON ABOVE \unknownchar \or % U+20D2 COMBINING LONG VERTICAL LINE OVERLAY \unknownchar \or % U+20D3 COMBINING SHORT VERTICAL LINE OVERLAY \unknownchar \or % U+20D4 COMBINING ANTICLOCKWISE ARROW ABOVE \unknownchar \or % U+20D5 COMBINING CLOCKWISE ARROW ABOVE \unknownchar \or % U+20D6 COMBINING LEFT ARROW ABOVE \unknownchar \or % U+20D7 COMBINING RIGHT ARROW ABOVE \unknownchar \or % U+20D8 COMBINING RING OVERLAY \unknownchar \or % U+20D9 COMBINING CLOCKWISE RING OVERLAY \unknownchar \or % U+20DA COMBINING ANTICLOCKWISE RING OVERLAY \unknownchar \or % U+20DB COMBINING THREE DOTS ABOVE \unknownchar \or % U+20DC COMBINING FOUR DOTS ABOVE \unknownchar \or % U+20DD COMBINING ENCLOSING CIRCLE \unknownchar \or % U+20DE COMBINING ENCLOSING SQUARE \unknownchar \or % U+20DF COMBINING ENCLOSING DIAMOND \unknownchar \or % U+20E0 COMBINING ENCLOSING CIRCLE BACKSLASH \unknownchar \or % U+20E1 COMBINING LEFT RIGHT ARROW ABOVE \unknownchar \or % U+20E2 COMBINING ENCLOSING SCREEN \unknownchar \or % U+20E3 COMBINING ENCLOSING KEYCAP \unknownchar \or % U+20E4 COMBINING ENCLOSING UPWARD POINTING TRIANGLE \unknownchar \or % U+20E5 COMBINING REVERSE SOLIDUS OVERLAY \unknownchar \or % U+20E6 COMBINING DOUBLE VERTICAL STROKE OVERLAY \unknownchar \or % U+20E7 COMBINING ANNUITY SYMBOL \unknownchar \or % U+20E8 COMBINING TRIPLE UNDERDOT \unknownchar \or % U+20E9 COMBINING WIDE BRIDGE ABOVE \unknownchar \or % U+20EA COMBINING LEFTWARDS ARROW OVERLAY \unknownchar \or % U+20EB COMBINING LONG DOUBLE SOLIDUS OVERLAY \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \or % \unknownchar \else % \unknownchar \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-mis.mkii0000644000175000017500000002003614536300610024674 0ustar hillehille%D \module %D [ file=spec-mis, %D version=1997.04.01, %D title=\CONTEXT\ Special Macros, %D subtitle=Miscellaneous Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Quite some modules in this group are dedicated to supporting %D \PDF\ directly by means of \PDFTEX or indirectly by using %D Acrobat Distiller. This module implements some common %D features. \writestatus{loading}{ConTeXt Special Macros / Miscellaneous Macros} \unprotect %D \macros %D {URLhash} %D %D A rather trivial macro: \expandafter\def\expandafter\URLhash\expandafter{\string#} %D \macros %D {ifusepagedestinations} %D %D In \PDF\ version 1.0 only page references were supported, %D while in \DVIWINDO\ 1.N only named references were accepted. %D Therefore \CONTEXT\ supports both methods of referencing. In %D \PDF\ version 1.1 named destinations arrived. Lack of %D continuous support of version 1.1 viewers for \MSDOS\ %D therefore sometimes forces us to prefer page references. As %D a bonus, they are faster too and have no limitations. How %D fortunate we were having both mechanisms available when the %D version 3.0 (\PDF\ version 1.2) viewers proved to be too %D bugged to support named destinations. \newif\ifusepagedestinations %D \macros %D {ifhighlighthyperlinks} %D %D The next switch can be used to make user hyperlinks are %D not highlighted when clicked on. \newif\ifhighlighthyperlinks %D \macros %D {ifgotonewwindow} %D %D To make the {\em goto previous jump} feature more %D convenient when using more than one file, it makes sense %D to force the viewer to open a new window for each file %D opened. \newif\ifgotonewwindow %D \macros %D {ifPDFstrokecolor} %D %D We can reduce the filesize a bit by setting the next switch %D to false. The amount of reduction depends on the use of %D color, but don't expect more than a few percent. Zip %D compression is already rather efficient in itself. \newif\ifPDFstrokecolor \PDFstrokecolortrue %D \macros %D {dofileinsertion,definefileinsertion,doiffileinsertionsupported} %D %D File insertion depend on the driver or \TEX\ variant used. %D All driver modules use the same scheme for file insertion, %D and therefore have the next macro in common (stupified %D per august 2006): \let\supportedfileinsertions\empty \let\supportedfilecheckers \empty \def\definefileinsertion#1#2#3% {\addtocommalist{#2}\supportedfileinsertions \setvalue{do#1insert#2}{#3}} \def\definefilechecker#1#2#3% {\addtocommalist{#2}\supportedfilecheckers \setvalue{do#1check#2}{#3}} \def\dofileinsertion#1#2{\executeifdefined{do#1insert#2}\donothing} \def\dofilechecker #1#2{\executeifdefined{do#1check#2} \donothing} \appendtoks \let\supportedfileinsertions\empty \to \everyresetspecials \appendtoks \let\supportedfilecheckers \empty \to \everyresetspecials % \def\doiffileinsertionsupportedelse#1% % {\expanded{\doifinstringelse{#1}{\c!tex,\c!tmp,\supportedfileinsertions}}} \def\doiffileinsertionsupportedelse#1% lowercasing happens at tex end {\expanded{\doifinstringelse{\truegraphictype{#1}}{\c!tex,\c!tmp,\supportedfileinsertions}}} %D This macro is called with 10 arguments, where the first %D one specifies the driver, like \type{yy} or \type{tr}. The %D second argument is a \type{{type,method}} pair and the %D third the filename. %D Just in case this one is undefined (which can happen if %D this module is used outside \CONTEXT): \ifx\setreferencefilename\undefined \def\setreferencefilename#1\to#2{\edef#2{#1}} \fi %D When submitting forms, we need to communicate the format. \chardef\submitoutputformat=0 % 0=unknown 1=HTML 2=FDF 3=XML \def\setsubmitoutputformat#1% {\doifinsetelse{#1}{FDF,fdf} {\chardef\submitoutputformat2} {\doifinsetelse{#1}{XML,xml} {\chardef\submitoutputformat3} {\chardef\submitoutputformat1}}% \relax} %D \macros %D {escapePSstring} %D %D \starttyping %D \escapePSstring(t\e\1st)))))\to\crap \crap %D \stoptyping % testcase: webschrift met lege regels en unbalanced () \bgroup \catcode`\*=\@@escape \catcode`\\=\@@letter *long*gdef*escapedPSstring#1% {*aftergroup*string *ifnum`#1=12 *aftergroup*n% *else*ifnum`#1=13 *aftergroup*n% *else*if#1(% *aftergroup*(% *else*if#1)% *aftergroup*)% *else*if#1\% *aftergroup*\% *else *aftergroup#1% *fi*fi*fi*fi*fi} *egroup \long\def\escapePSstring#1\to#2% {\defconvertedargument#2{#1}% \bgroup \ifx#2\empty \else \setverbosecscharacters \aftergroup\edef \aftergroup#2% \aftergroup{% \expandafter\handletokens#2\with\escapedPSstring \aftergroup}% \fi \egroup} % \long\def\preservePSpar#1\to#2% % {\bgroup % \def\par{\rawcharacter{12}}% % \expanded{\egroup\noexpand\def\noexpand#2{#1}}} \long\def\preservePSpar#1\to#2% {\bgroup \def\par{\rawcharacter{12}\rawcharacter{12}}% hm, should be one 13 but 12 ff is platform safe \expanded{\egroup\noexpand\def\noexpand#2{#1}}} %D \macros %D {ifPDFunicode} %D %D We can use this switch to signal that content streams has %D to be unicoded. \newif\ifPDFunicode %D \macros %D {makeMPintoPDFobject, handleMPfshow, setMPPDFobject, getMPPDFobject} %D %D \METAPOST\ support. \ifx\makeMPintoPDFobject\undefined \newcount\makeMPintoPDFobject \fi \appendtoks \makeMPintoPDFobject\zerocount \def\setMPPDFobject#1#2{\def\getMPPDFobject{\box#2}}% \to \everyresetspecials \appendtoks \let\handleMPfshow\dohandleMPfshow \to \everyresetspecials %D %D \macros %D {dosetposition, dosetpositionwdh, dosetpositionplus} %D %D Opposite to its \DVI\ counterpart, the \PDFTEX\ backend %D can provide positional information directly. Since %D \CONTEXT\ only uses relative positions, the origin is of %D less importance. Nowadays \XETEX\ also supports this %D feature. \ifx\pdfsavepos\undefined % only for ancient pdftex, less old xetex and current aleph \def\dosetposition #1{\special{pos:pxy "#1"}} \def\dosetpositionwhd #1#2#3#4{\special{pos:pxywhd "#1" #2 #3 #4}} \def\dosetpositionplus#1#2#3#4#5{\special{pos:pxyplus "#1" #2 #3 #4 #5}} \let\flushDVIpositionpapersize\relax \def\dosetpositionpapersize#1#2% {\xdef\flushDVIpositionpapersize {\special{pos:papersize \number#1 \number#2}% \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.dvi }% \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}} % kind of obsolete since nowadays xetex supports \pdfsavepos as well \ifnum\texengine=\xetexengine \def\dosetpositionpapersize#1#2% {\xdef\flushDVIpositionpapersize {\special{pos:papersize \number#1 \number#2}% \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.xdv }% \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}} \fi \prependtoksonce \flushDVIpositionpapersize \to \everyshipout \else \def\dosetposition#1% {\pdfsavepos \dolazysaveposition {#1}% {\noexpand\realfolio}% {\noexpand\the\dimexpr\pdflastxpos\scaledpoint\relax}% {\noexpand\the\dimexpr\pdflastypos\scaledpoint\relax}}% \def\dosetpositionwhd#1#2#3#4% {\pdfsavepos \dolazysavepositionwhd {#1}% {\noexpand\realfolio}% {\noexpand\the\dimexpr\pdflastxpos\scaledpoint\relax}% {\noexpand\the\dimexpr\pdflastypos\scaledpoint\relax}% {#2}{#3}{#4}} \def\dosetpositionplus#1#2#3#4#5% {\pdfsavepos \dolazysavepositionplus {#1}% {\noexpand\realfolio}% {\noexpand\the\dimexpr\pdflastxpos\scaledpoint\relax}% {\noexpand\the\dimexpr\pdflastypos\scaledpoint\relax}% {#2}{#3}{#4}{#5}} \let\dosetpositionpapersize\gobbletwoarguments \fi %D Handy to have this available asap: \ifdefined\everyPDFxform \newtoks\everyPDFxform \fi \ifdefined\everyPDFximage \newtoks\everyPDFximage \fi \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/type-ini.mkii0000644000175000017500000005430514536300610024720 0ustar hillehille%D \module %D [ file=type-ini, %D version=2001.03.05, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Typescript Macros / Initialization} %D The default fontclass is empty. We could demand always using fontclasses, %D and then make the calling macros simplier (always assume fontclass) but %D apart from downward compatibility issues, it would make global, class %D spanning definitions a pain. Some day we will introduce a default class. % torture test : proper typefaces (and namespace) % % \starttext % \usetypescript[modern][default] default: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave % \usetypescript[modern][texnansi] texnansi: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave % \usetypescript[modern][ec] ec: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave % \usetypescript[modern][qx] qx: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave % \usetypescript[modern][t5] t5: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave % \stoptext % % torture test : no typeface, just definitions % % \starttext % {\setupbodyfont[reset] \setupbodyfont[cmr] cmr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} % {\setupbodyfont[reset] \setupbodyfont[plr] plr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} % {\setupbodyfont[reset] \setupbodyfont[csr] csr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} % {\setupbodyfont[reset] \setupbodyfont[vnr] vnr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} % {\setupbodyfont[reset] \setupbodyfont[aer] aer: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} % \stoptext % \usetypescript [modern] [texnansi] % % normal : 1450 ms % exa quit : 1300 ms (150 ms) % preload : 825 ms (635 ms) (40-50%) % % \usetypescript [modern] [texnansi] % \usetypescript [palatino][texnansi] % \usetypescript [times] [texnansi] % % normal : 3200 ms % exa quit : 2700 ms ( 500 ms) % preload : 1300 ms (1900 ms) (60-70%) % \usetypescript [modern][\defaultencoding] % \usetypescript [map] [latin-modern-os] [\defaultencoding] % \setupbodyfont[modern] % test 1234 test \unprotect \def\starttypescriptcollection {\dosingleempty\dostarttypescriptcollection} \def\dostarttypescriptcollection[#1]% {} \def\stoptypescriptcollection {} \let\typescriptfiles\empty \unexpanded\def\usetypescriptfile[#1]% {\doifelse{#1}\v!reset {\let\typescriptfiles\empty} {\splitfiletype{#1}% \addtocommalist\splitoffname\typescriptfiles}} % SO FAR \let\currenttypescripts\empty \newif\iftypescriptfound \let\@@typescriptone \empty \let\typescriptone \empty \let\@@typescripttwo \empty \let\typescripttwo \empty \let\@@typescriptthree\empty \let\typescriptthree\empty % method 2 is for Hans van der Meer \newtoks\documenttypescripts \chardef\typescriptmethod\plusone % 1: empty==all==true 2: empty==false \chardef\typescriptstate \plustwo % 1: process 2: store \unexpanded\def\usetypescript {\chardef\typescriptmethod\plusone\dotripleempty\dousetypescript} \unexpanded\def\usetypescriptexact{\chardef\typescriptmethod\plustwo\dotripleempty\dousetypescript} \def\dousetypescript[#1][#2][#3]% {\expanded{\dodousetypescript[#1][#2][#3]}} \def\dodousetypescript[#1][#2][#3]% also loads type-loc, a user file {\pushmacro\@@typescriptone \edef\@@typescriptone {\truetypescript{#1}}% \pushmacro\@@typescripttwo \edef\@@typescripttwo {\truetypescript{#2}}% \pushmacro\@@typescriptthree\edef\@@typescriptthree{\truetypescript{#3}}% \pushmacro\typescriptone \pushmacro\typescripttwo \pushmacro\typescriptthree \pushmacro\typescriptmethod \pushmacro\typescriptstate \chardef\typescriptstate\plusone % process \pushmacro\stoptypescript \typescriptfoundfalse \iftracetypescripts\writestatus\m!fonts{request: [\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}\fi \processcommacommand[\typescriptfiles]\dododousetypescript \the\documenttypescripts \firsttypescriptpassfalse % testen \popmacro\stoptypescript \popmacro\typescriptstate \popmacro\typescriptmethod \popmacro\typescriptthree \popmacro\typescripttwo \popmacro\typescriptone \popmacro\@@typescriptthree \popmacro\@@typescripttwo \popmacro\@@typescriptone} % simple version: % % \def\dododousetypescript#1% % {\startreadingfile % \pushmacro\currenttypefile % \def\currenttypefile{#1}% % \def\currenttypefile{#1}% % \readfile\currenttypefile\donothing\donothing % \popmacro\currenttypefile % \stopreadingfile} % % tricky version: \newconditional\preloadingtypescripts \def\preloadtypescripts{\ifproductionrun\settrue\preloadingtypescripts\fi} \def\dododousetypescript#1% {\setfalse\quittingtypescript \pushmacro\currenttypefile \def\currenttypefile{#1}% \ifconditional\preloadingtypescripts % load files once, and use saved data \def\loadedtypescripts{\csname\??ts:\c!file:#1\endcsname}% \@EAEAEA\ifx\loadedtypescripts\relax \@EAEAEA\newtoks\loadedtypescripts \bgroup \long\def\starttypescript##1\stoptypescript {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescript##1\stoptypescript}}% \long\def\starttypescriptcollection##1\stoptypescriptcollection {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescriptcollection##1\stoptypescriptcollection}}% \startreadingfile \pushendofline \unprotect \readfile{\currenttypefile.\mksuffix}\donothing{\readfile\currenttypefile\donothing\donothing}% \protect \popendofline \stopreadingfile \egroup \fi %\message{[\space\currenttypefile}% \the\loadedtypescripts %\message{\ifconditional\quittingtypescript quit\space\fi]}% \else % process files each time \startreadingfile \pushendofline \unprotect \readfile{\currenttypefile.\mksuffix}\donothing{\readfile\currenttypefile\donothing\donothing}% \protect \popendofline \stopreadingfile \fi \popmacro\currenttypefile \ifconditional\quittingtypescript \quitcommalist \setfalse\quittingtypescript \fi} % % not faster, unless maybe toks % % \newcount\nofloadedtypescripts % % \def\startloadedtypescript % {\dotripleempty\dostartloadedtypescript} % % \let\stoploadedtypescript\relax % % \long\def\dostartloadedtypescript[#1][#2][#3]#4\stoptypescript % {\global\advance\nofloadedtypescripts\plusone % \long\setgvalue{\??ts=>\the\nofloadedtypescripts}{#4}% % \edef\temp% % {\iffirstargument [#1]\fi % \ifsecondargument[#2]\fi % \ifthirdargument [#3]\fi % \noexpand\csname\??ts=>\the\nofloadedtypescripts\noexpand\endcsname}% % \global\loadedtypescripts\@EA\@EA\@EA{\@EA\the\@EA\loadedtypescripts\@EA\starttypescript\temp\stoptypescript}} % % \def\startloadedtypescriptcollection % {\dosingleempty\dostartloadedtypescriptcollection} % % \def\dostartloadedtypescriptcollection[#1]{} % \def\stoploadedtypescriptcollection {} % % \def\dododousetypescript#1% % {\setfalse\quittingtypescript % \pushmacro\currenttypefile % \def\currenttypefile{#1}% % \ifconditional\preloadingtypescripts % % load files once, and use saved data % \def\loadedtypescripts{\csname\??ts:\c!file:#1\endcsname}% % \@EAEAEA\ifx\loadedtypescripts\relax % \@EAEAEA\newtoks\loadedtypescripts % \bgroup % % % \let\starttypescript \startloadedtypescript % \let\stoptypescript \stoploadedtypescript % \let\starttypescriptcollection\startloadedtypescriptcollection % \let\stoptypescriptcollection \stoploadedtypescriptcollection % % % \startreadingfile % \pushendofline % \unprotect % \readfile\currenttypefile\donothing\donothing % \protect % \popendofline % \stopreadingfile % \egroup % \fi % %\message{[\space\currenttypefile}% % \the\loadedtypescripts % %\message{\ifconditional\quittingtypescript quit\space\fi]}% % \else % % process files each time % \startreadingfile % \pushendofline % \unprotect % \readfile\currenttypefile\donothing\donothing % \protect % \popendofline % \stopreadingfile % \fi % \popmacro\currenttypefile % \ifconditional\quittingtypescript % \quitcommalist % \setfalse\quittingtypescript % \fi} \def\usetypescriptonce {\dotripleempty\dousetypescriptonce} \def\dousetypescriptonce[#1][#2][#3]% {\doifelseflagged{ts:#1:#2:#3}% {\writestatus\m!fonts{once (#1) (#2) (#3)}} {\setflag{ts:#1:#2:#3}% \expanded{\dodousetypescript[#1][#2][#3]}}} % \definetypescriptsynonym[lbr][cmr] \def\definetypescriptsynonym {\dodoubleempty\dodefinetypescriptsynonym} \def\dodefinetypescriptsynonym[#1][#2]% {\ifsecondargument\setevalue{\??tm#1}{#2}\fi} \def\truetypescript#1% {\ifcsname\??tm#1\endcsname \@EA\truetypescript\csname\??tm#1\endcsname\else#1% \fi} % script [serif] [default] [size] % script [serif] [computer-modern] [size] % script [serif] [computer-modern] [ec] % script [serif] [computer-modern] [name] % script [serif] [computer-modern] [special] % todo, make firsttypescriptpass conditional \newif\iffirsttypescriptpass \firsttypescriptpasstrue \prependtoks\firsttypescriptpasstrue\to\everyjob \def\typescript@@all{all} \newif\iftracetypescripts \def\starttypescript {\ifcase\typescriptstate % 0 = skip \@EA\gobbleuntil\@EA\stoptypescript \or % 1 = process \expandafter\dostarttypescript \or % 2 = store \expandafter\nostarttypescript \else % ? = skip \@EA\gobbleuntil\@EA\stoptypescript \fi} \long\def\nostarttypescript#1\stoptypescript {\appendtoks\starttypescript#1\stoptypescript\to\documenttypescripts} \def\dostarttypescript {\let\typescriptone \@@typescriptone \let\typescripttwo \@@typescripttwo \let\typescriptthree\@@typescriptthree \let\typescriptmatch\empty \doifnextoptionalelse\dostarttypescriptone\dostarttypescriptall} \long\def\dostarttypescriptall {\iffirsttypescriptpass \expandafter\doprocesstypescript \else % skip this since it may do unwanted resets, like % setting symbolic font names to unknown, especially % in run time user type scripts \expandafter\noprocesstypescript \fi} \long\def\dostarttypescriptyes {\ifdone \typescriptfoundtrue \iftracetypescripts\writestatus\m!fonts{match:\ifx\currenttypefile\relax\space *\fi \typescriptmatch}\fi \expandafter\doprocesstypescript \else \expandafter\noprocesstypescript \fi} \long\def\dostarttypescriptone {\dochecktypescript\@@typescriptone\typescriptone\redostarttypescriptone} \long\def\dostarttypescripttwo {\dochecktypescript\@@typescripttwo\typescripttwo\redostarttypescripttwo} \long\def\dostarttypescriptthree {\dochecktypescript\@@typescriptthree\typescriptthree\redostarttypescriptthree} \long\def\redostarttypescriptone {\doifnextoptionalelse\dostarttypescripttwo\dostarttypescriptyes} \long\def\redostarttypescripttwo {\doifnextoptionalelse\dostarttypescriptthree\dostarttypescriptyes} \long\def\redostarttypescriptthree {\dostarttypescriptyes} \def\doprocesstypescript {\pushmacro\fontclass} \def\stoptypescript {\popmacro\fontclass} \long\def\noprocesstypescript#1\stoptypescript {} \let\typescriptmatch\empty \def\dochecktypescript#1#2#3[#4]% script use value next {\donefalse \def\@@typescriptcheck{#4}% \ifx\@@typescriptcheck\empty % no longer needed / met \ifcase\typescriptmethod\or\donetrue\else\donefalse\fi \else\ifx#1\typescript@@all \donetrue \else\ifx\@@typescriptcheck\typescript@@all \donetrue \else\expanded{\doifcommonelse{\@@typescriptcheck}{#1}}\donetrue\donefalse\ifdone \let#2\commalistelement \fi\fi\fi\fi \ifdone \edef\typescriptmatch{\typescriptmatch\space[#4]}% \expandafter#3% \else \expandafter\noprocesstypescript \fi} %D Yet another speed up: when issued inside typescript, the call %D %D \starttyping %D \quittypescriptscanning %D \stoptyping %D %D quits further loading. For an example, see type-exa: \newconditional\quittingtypescript \setfalse\quittingtypescript \def\quittypescriptscanning{\settrue\quittingtypescript} % status % % 1 loaded % 2 reported % 3 preloaded % flags ipv \c!state, more flag values \def\dopreloadmapfile#1% {\splitfiletype{#1}% \writestatus\m!fonts{assuming map file: \splitoffname}% \setxvalue{\splitoffname \c!state}{3}% \doglobal\removefromcommalist\splitoffname\allfontmapsfiles} \def\preloadmapfile[#1]{\expanded{\processcommalist[#1]}\dopreloadmapfile} \def\loadmapfile [#1]{\expanded{\processcommalist[#1]}\loadthemapfile} \def\unloadmapfile [#1]{\expanded{\processcommalist[#1]}\unloadthemapfile} % too soon, no driver known, \ifproductionrun \loadallfontmapfiles \fi % temp hack, will become just \addto \ifx\pdftexversion\undefined \def\loadthemapfile#1% {\splitfiletype{#1}% \doglobal\addtocommalist\splitoffname\allfontmapsfiles} \else\ifnum\pdftexversion<120 % no overloading \def\loadthemapfile#1% {\splitfiletype{#1}% \doglobal\pretocommalist\splitoffname\allfontmapsfiles} \else \def\loadthemapfile#1% {\splitfiletype{#1}% \doglobal\addtocommalist\splitoffname\allfontmapsfiles} \fi \fi \def\unloadthemapfile#1% {\splitfiletype{#1}% \doglobal\removefromcommalist\splitoffname\allfontmapsfiles} \let\usedmapfile\gobbletwoarguments \let\usedmapline\gobbletwoarguments \def\doregisterloadedmapfile#1% {\immediatewriteutilitycommand{\usedmapfile{=}{#1}}} \def\doloadfontmapfile#1% {\ifundefined{#1\c!state}% \writestatus\m!fonts{using map file: #1}% \doregisterloadedmapfile{#1}% \doloadmapfile{=}{#1.\f!fontmapextension}% +/add =/replace -/remove \setxvalue{#1\c!state}{1}% \fi} \def\doreportfontmapfile#1% {\ifundefined{#1\c!state}% \writestatus\m!fonts{needs map file: #1}% \setxvalue{#1\c!state}{2}% \fi} \def\loadallfontmapfiles {%\message{[\allfontmapsfiles]}% \ifconditional\resettingmapfile \writestatus\m!fonts{resetting map file list}% \doresetmapfilelist \global\setfalse\resettingmapfile \fi \ifx\allfontmapsfiles\empty \else \ifautoloadmapfiles \processcommacommand[\allfontmapsfiles]\doloadfontmapfile \else \processcommacommand[\allfontmapsfiles]\doreportfontmapfile \fi \forgetmapfiles \fi} \def\loadmapline {\dodoubleempty\dodoloadmapline} \def\dodoloadmapline[#1][#2]% {\loadallfontmapfiles % ! ! ! \ifsecondargument \immediatewriteutilitycommand{\usedmapline{#1}{#2}}% \doloadmapline{#1}{#2}% special \else \loadmapline[=][#1]% %\immediatewriteutilitycommand{\usedmapline{=}{#2}}% %\doloadmapline{=}{#1}% special \fi} % since this is driver dependent, and since we may set map files % before an output format is defined, we need to postpone it; we % cannot use starttext as hook because an output switch can be part % of a style; an alternative is to no longer permit driver switching % after the first \starttext, but that will break compatibility % because \startcomponent ... \environment ... is pretty legal. % the map directives need to end up in the right place in the stream % hm, the timing of when pdftex needs the map file info keeps changing; % it's really time to move to map line support % \appendtoks \loadallfontmapfiles \to \everyPDFximage % \appendtoks \loadallfontmapfiles \to \everystarttext % \appendtoks \loadallfontmapfiles \to \everybeforepagebody \everybeforeshipout \expandafter {\expandafter\appendtoks \expandafter\loadallfontmapfiles \expandafter\to \expandafter\pageboundsettings \the\everybeforeshipout} \newif\ifautoloadmapfiles \let\allfontmapsfiles\empty \def\forgetmapfiles {\globallet\allfontmapsfiles\empty} \newconditional\resettingmapfile \def\resetmapfiles {\global\settrue\resettingmapfile} \def\disablemapfiles {\resetmapfiles \forgetmapfiles} %D A handy shortcut: % \definetypescriptprefix[serif][Serif] % \definetypescriptprefix[sans] [Sans] % \definetypescriptprefix[mono] [Mono] % %\starttypescript [serif,sans,mono] [handling,hanging,hz] [pure,normal,hz,quality] % \setupfontsynonym [\typescriptprefix\typescriptone] [handling=\typescriptthree] % \stoptypescript \def\definetypescriptprefix {\dodoubleargument\dodefinetypescriptprefix} \def\dodefinetypescriptprefix[#1][#2]% {\setgvalue{\??ts::#1}{#2}} % made global % without testing: % % \def\typescriptprefix#1% % {\csname\??ts::#1\endcsname} % % with testing: \def\typescriptprefix#1% {\executeifdefined{\??ts::#1}{#1}} % defining typefaces: % % \definetypeface [#1:joke] [#2:rm] % \definetypeface [#1:joke] [#2:rm] [#3:...] % \definetypeface [#1:joke] [#2:rm] [#3:serif] [#4:lucida] [#5:size] [#6:...] \def\definetypeface {\dosixtupleargument\dodefinetypeface} \def\tsvar#1#2% \executeifdefined{\??ts#1}{#2} {\@EA\ifx\csname\??ts#1\endcsname\empty #2% \else \csname\??ts#1\endcsname \fi} % #1=main #2=rm #3=serif #4=fontname #5=size #6=settings \def\typefaceencoding{\defaultencoding} % we can use \rawgetparameters or \rawgeteparameters \def\dodefinetypeface[#1][#2][#3][#4][#5][#6]% {\dododefinetypeface[#1][#2]% \iffifthargument % sixth is optional % we need to expand since in #6 there can be a \typescripttwo % \expanded{\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!features=,\s!fallbacks=,\s!text=,#6]}% \geteparameters \expanded{\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!features=,\s!text=,#6]}% \geteparameters \pushmacro\relativefontsize \pushmacro\typefaceencoding \pushmacro\fontclass \let\relativefontsize\@@tsrscale \let\typefaceencoding\@@tsencoding \setcurrentfontclass{#1}% % \letvalue{\fontclass\s!features }\@@tsfeatures % new per 16/6/2007 % \letvalue{\fontclass\s!fallbacks}\@@tsfallbacks % new per 12/10/2008 \saverelativefontsize{#2}\relativefontsize % fall back \savemathtextstyle\@@tstext % math text style (new per 28/4/2006) \iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4] / \typefaceencoding}\fi \usetypescript[#3,\t!map][#4][\t!name,\t!default,\typefaceencoding,\t!special]% map is needed for backward cmp \usetypescript[#3][#5][\t!size]% \popmacro\fontclass \popmacro\typefaceencoding \popmacro\relativefontsize \else\iffourthargument \definetypeface[#1][#2][#3][#4][\s!default]% \else\ifthirdargument \getparameters[\??tf#1#2][#3]% \fi\fi\fi} \def\dododefinetypeface[#1][#2]% saveguard against redefinition {\doifsomething{#1} {\ifcsname\??tf#1\s!default\endcsname \else \registerfontclass{#1}% \setgvalue{\??tf#1\s!default}{#2}% \fi \ifcsname#1\endcsname \else \unexpanded\setgvalue{#1}{\switchtotypeface[#1][#2]}% \fi}} \def\setuptypeface% [class] [settings] {\doquadrupleempty\doswitchtotypeface[\setupbodyfont][\fontclass]} \unexpanded\def\switchtotypeface% [class] [settings] {\doquadrupleempty\doswitchtotypeface[\switchtobodyfont][\globalfontclass]} \def\doswitchtotypeface[#1][#2][#3][#4]% {%\doifinsetelse{\s!default,\v!reset}{#3} % {\setcurrentfontclass\empty} % {\setcurrentfontclass{#3}}% \setcurrentfontclass{#3}% \let\globalfontclass#2% \iffourthargument #1[#4]% \else\ifx\fontclass\empty #1[\c!rm]% \else \doifdefinedelse{\??tf\fontclass\s!default} {#1[\getvalue{\??tf\fontclass\s!default}]} {#1[\c!rm]}% \fi \fi \ifmmode\mr\else\tf\fi} % needed ? \def\usetypefile[#1]% recurses on path ! ? {\readfile{\f!typeprefix#1}\donothing\donothing} %D For Taco: %D %D \starttyping %D \inherittypeface[palatino][rm][postscript] %D \inherittypeface[palatino][rm][\fontclass] %D \inherittypeface[palatino][rm] % == \fontclass %D \inherittypeface[palatino] % == [rm,ss,tt,mm] %D \stoptyping \def\inherittypeface {\dotripleempty\doinherittypeface} \def\doinherittypeface[#1][#2][#3]% {\doifelsenothing{#2} {\doinherittypeface[#1][\c!rm,\c!ss,\c!tt,\c!mm][\fontclass]} {\doifnot{#1}{#3} {\def\docommand##1{\setevalue{#1-##1}{#3}}% \processcommalist[#2]\docommand}}} %D This hook sinto the font mechanism with: \def\checkfontclass#1% {\edef\fontclass{\executeifdefined{\fontclass-#1}{\fontclass}}} %D For backward compatibility we reimplement the font file %D loading macro. \ifx\normaldoreadfontdefinitionfile\undefined \let\normaldoreadfontdefinitionfile\doreadfontdefinitionfile \fi % old and obsolete % % \def\doreadfontdefinitionfile#1#2% #1 = set/switch state % {\ifundefined{\??tf#2\c!default}% % \pushmacro\fontclass % \setcurrentfontclass\empty % \pushmacro\@@typescriptone \edef\@@typescriptone {\truetypescript{#2}}% % \pushmacro\@@typescripttwo \let\@@typescripttwo \empty % \pushmacro\@@typescriptthree\let\@@typescriptthree\empty % \typescriptfoundfalse % \dododousetypescript{\f!typeprefix pre}% % \popmacro\@@typescriptthree % \popmacro\@@typescripttwo % \popmacro\@@typescriptone % \iftypescriptfound \else % \normaldoreadfontdefinitionfile{#1}{#2}% % \fi % \setcurrentfontclass\empty % \popmacro\fontclass % \else\ifcase#1\relax % \switchtotypeface[#2]% % \else % \setuptypeface[#2]% % \fi\fi} % % new and obeying fontclasses (but still obsolete) \def\doreadfontdefinitionfile#1#2% #1 = set/switch state {\ifcsname\??tf#2\c!default\endcsname \ifcase#1\relax \switchtotypeface[#2]% \else \setuptypeface[#2]% \fi \else \pushmacro\starttypescript \scratchtoks\emptytoks % locate downward compatibility definitions, one argument ! \long\def\starttypescript[##1]##2\stoptypescript {\doif{##1}{#2}{\scratchtoks{##2}}} \startreadingfile \readfile{\f!typeprefix pre}\donothing\donothing \stopreadingfile \popmacro\starttypescript \the\scratchtoks \fi} \fetchruntimecommand \typetypescript {\f!typeprefix\s!run} % \usetypescript [berry] [ec] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-ini.mkii0000644000175000017500000006047214536300610024662 0ustar hillehille%D \module %D [ file=lang-ini, %D version=1996.01.25, %D title=\CONTEXT\ Language Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module needs a further cleanup (real split between ii/iv). %D This module implements the (for the moment still simple) %D multi||language support of \CONTEXT, which should not be %D confused with the multi||lingual interface. This support %D will be extended when needed. \writestatus{loading}{ConTeXt Language Macros / Initialization} \unprotect \ifx\nonfrenchspacing\undefined \let\nonfrenchspacing\relax \fi \ifx\frenchspacing \undefined \let\frenchspacing \relax \fi %D When loading hyphenation patterns, \TEX\ assign a number to %D each loaded table, starting with~0. Switching to a specific %D table is done by assigning the relevant number to the %D predefined \COUNTER\ \type{\language}. %D We keep track of the last loaded patterns by means of a %D pseudo \COUNTER. This just one of those situations in which %D we don't want to spent a real one. Language zero has no %D patterns, first of all because I like to start numbering %D at one. It may come in handy for special purposes as well. \normallanguage\zerocount \def\loadedlanguage{1} %D \macros %D {currentlanguage, setupcurrentlanguage} %D %D Instead of numbers,we are going to use symbolic names for %D the languages. The current langage is saved in the macro %D \type {\currentlanguage}. The setup macro is mainly used %D for cosmetic purposes. %D %D \starttyping %D \dorecurse{3} %D {\language[nl] %D \startmode[*en] english \stopmode %D \startmode[*nl] dutch \stopmode %D \language[en] %D \startmode[*en] english \stopmode %D \startmode[*nl] dutch \stopmode} %D \stoptyping \let\currentlanguage \empty \let\currentmainlanguage\empty \def\setupcurrentlanguage[#1]{\setcurrentlanguage\currentmainlanguage{#1}} \def\setcurrentlanguage#1#2% sets modes: **id (currentmain) *id (current) {\doifsomething{#1} {\ifx\currentmainlanguage\empty\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi \edef\currentmainlanguage{#1}% \setsystemmode{\systemmodeprefix\currentmainlanguage}}% \doifsomething{#2} {\ifx\currentlanguage\empty\else\resetsystemmode\currentlanguage\fi \edef\currentlanguage{#2}% \setsystemmode\currentlanguage}} %D The internal macros will be defined later. %D \macros %D {installlanguage} %D %D Hyphenation patterns can only be loaded when the format file %D is prepared. The next macro takes care of this loading. A %D language is specified with %D %D \showsetup{installlanguage} %D %D When \type {state} equals \type {start}, both patterns %D and additional hyphenation specifications are loaded. These %D files are seached for on the system path and are to be %D named: %D %D \starttyping %D \f!languageprefix-identifier.\f!patternsextension %D \f!languageprefix-identifier.\f!hyhensextension %D \stoptyping %D %D The \type{spacing} variable specifies how the spaces after %D punctuation has to be handled. English is by tradition more %D tolerant to inter||sentence spacing than other languages. %D %D This macro also defines \type {\identifier} as a shortcut %D switch to the language. Furthermore the command defined as %D being language specific, are executed. With %D \type {default} we can default to another language %D (patterns) at format generation time. This default language %D is overruled when the appropriate patterns are loaded (some %D implementations support run time addition of patterns to a %D preloaded format). \def\dodoinstalllanguage#1#2% #2 added {\doifundefined{#1}{\setvalue{#1}{\complexlanguage[#2]}}% \expanded{\noexpand\uppercase{\noexpand\edef\noexpand\ascii{#1}}}% \doifundefined\ascii{\setvalue\ascii{\complexlanguage[#2]}}} %D \macros %D {preloadlanguages} %D %D We first try to load the files defined as file synonym %D for \type {lang-*.pat} and \type {lang-*.hyp}. After that we %D fall back on those files. The macro \type {\preloadpatterns} %D reports which patterns are loaded and what hyphenmin %D values are set. \let\installedlanguages\empty \def\doiflanguageelse#1{\doifdefinedelse{\??la#1\c!state}} \def\doloadlanguagefiles#1% {\doifelsevalue{\??la#1\c!state}\v!start {\edef\languagesuffix{\specificlanguageparameter{#1}\s!patterns}% \ifx\languagesuffix\empty \edef\languagesuffix{\defaultlanguage{#1}}% \else\ifx\languagesuffix\relax \edef\languagesuffix{\defaultlanguage{#1}}% \fi\fi \ifx\languagesuffix\empty \edef\languagesuffix{#1}% \fi \doifundefinedelse{\??la\??la:\currentencoding:\currentmapping:\languagesuffix} {\doloadpatterns{#1}\languagesuffix} {\bgroup \edef\loadedlanguage{\getvalue{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}}% %\showmessage\m!linguals1{\languagesuffix,#1,\loadedlanguage,*,*}% %\showmessage\m!linguals3{\languagesuffix,#1,\loadedlanguage,*,*}% \egroup}} {\showmessage\m!linguals5{#1}}} \def\doinstalllanguage[#1][#2]% {\doifassignmentelse{#2} {\doiflanguageelse{#1} {\getparameters[\??la#1][#2]} {\setvalue{\l!prefix!#1}{#1}% \addtocommalist{#1}\installedlanguages \dodoinstalllanguage{#1}{#1}% \getparameters[\??la#1][\c!state=\v!start,#2]}% \doloadlanguagefiles{#1}} {\setvalue{\l!prefix!#1}{#2}% \getparameters[\??la#1][\s!default=#2]% \dodoinstalllanguage{#1}{#2}}} \def\reallanguagetag#1% {\ifcsname\l!prefix!#1\endcsname\csname\l!prefix!#1\endcsname\else#1\fi} \let\preloadedpatterns\empty \let\preloadedpmessage\empty \def\doshowpatterns#1#2#3#4% language number encoding mapping {#1->#3:#4->#2->\specificlanguageparameter{#1}\s!lefthyphenmin:\specificlanguageparameter{#1}\s!righthyphenmin\space} \def\preloadlanguages {\doifsomething\preloadedpmessage{\showmessage\m!linguals{10}\preloadedpmessage}} \def\preloadallpatterns {\gdef\preloadallpatterns##1{\installlanguage[##1][\c!state=\v!start]}% \processcommacommand[\installedlanguages]\preloadallpatterns \global\let\preloadallpatterns\relax} % ^^ \language[#1] gave unwanted side effect of loading language specifics \def\installlanguage {\dodoubleargument\doinstalllanguage} %D When the second argument is a language identifier, a %D synonym is created. This feature is present because we %D used dutch mnemonics in the dutch version, but nowadays %D conform a standard. \let \patternencoding \s!default \let \patternmapping \s!default \def\doifpatternselse#1% {\expanded{\doifinsetelse{#1}{\preloadedpatterns}}} \def\doloadpatterns#1#2% {\edef\askedlanguageencoding{\specificlanguageparameter{#1}\s!encoding}% \edef\askedlanguagemapping {\specificlanguageparameter{#1}\s!mapping}% \expanded{\getcommacommandsize[\askedlanguageencoding]}% % slightly faster: \let\unicodechar\utfunihashglyph \ifnum\commalistsize>0 %\message{[nofpatterns #2: \commalistsize/\askedlanguageencoding]}% \dorecurse\commalistsize {\expanded{\getfromcommacommand[\askedlanguageencoding][\recurselevel]}% \let\patternencoding\commalistelement \expanded{\getfromcommacommand[\askedlanguagemapping][\recurselevel]}% \let\patternmapping \commalistelement %\message{[patterns: #1/#2/\patternencoding/\patternmapping]}% \dodoloadpatterns{#1}{#2}\patternencoding\patternmapping}% \else %\message{[patterns: #1/#2]}% \dodoloadpatterns{#1}{#2}{}{}% \fi} \ifnum\texengine=\xetexengine \def\doloadpatterns#1#2% {%\letvalue{\??la#2\s!encoding}\empty %\letvalue{\??la#2\s!mapping }\empty \dodoloadpatterns{#1}{#2}{}{}} \fi \def\setuphyppatencoding {\pathypsettings \enableregime[utf]} \def\dodoloadpatterns#1#2#3#4% beware, loaded language also incr {\normallanguage\loadedlanguage % when not really needed \bgroup \let\synchronizepatterns\relax % needed? \let\enabledmapping \empty % needed? \doifelsenothing{#3}{\enableencoding[\s!default]}{\enableencoding[#3]}% \doifelsenothing{#4}{\enablemapping [\s!default]}{\enablemapping [#4]}% \setuphyppatencoding \ifundefined{\??la\??la:\currentencoding:\currentmapping:#2}% \let\doshowpatterns\relax \edef\alreadyloadedlanguage {\executeifdefined{\??la\??la:\currentencoding:\currentmapping:\truefilename{\f!languageprefix#2.\f!patternsextension}}\empty}% \edef\alreadyloadedlanguage {\executeifdefined{\??la\??la:\currentencoding:\currentmapping:\f!languageprefix#2.\f!patternsextension}\alreadyloadedlanguage}% \ifx\alreadyloadedlanguage\empty \letgvalue{\??la\??la:\currentencoding:\currentmapping:#2}\loadedlanguage \doifundefined{\??la\??la:\s!default:\s!default:#2}{\letgvalue{\??la\??la:\s!default:\s!default:#2}\loadedlanguage}% fall back \startpatternloading{\truefilename{\f!languageprefix#2.\f!patternsextension}}{#3}{#4}% \readsysfile{\truefilename{\f!languageprefix#2.\f!patternsextension}} {\setxvalue{\??la#1\s!patterns}{#2}% \setxvalue{\??la\??la:\currentencoding:\currentmapping:\truefilename{\f!languageprefix#2.\f!patternsextension}}{\number\loadedlanguage}% \xdef\preloadedpmessage{\preloadedpmessage\doshowpatterns{#2}{\number\normallanguage}{\currentencoding}{\currentmapping}}% \doglobal\addtocommalist{#2}\preloadedpatterns \showmessage\m!linguals1{#2,#1,\loadedlanguage,\currentencoding,\currentmapping}} {\showmessage\m!linguals2{#2,#1,\loadedlanguage,\currentencoding,\currentmapping,\f!languageprefix#2.\f!patternsextension,\truefilename{\f!languageprefix#2.\f!patternsextension}}}% \stoppatternloading \startpatternloading{\truefilename{\f!languageprefix#2.\f!hyphensextension}}{#3}{#4}% \readsysfile{\truefilename{\f!languageprefix#2.\f!hyphensextension}} {\showmessage\m!linguals3{#2,#1,\loadedlanguage,\currentencoding,\currentmapping}} {\showmessage\m!linguals4{#2,#1,\loadedlanguage,\currentencoding,\currentmapping}}% \stoppatternloading \doglobal\increment\loadedlanguage % \stopencoding \else % optimization, introduced 2004.08.24, while sorting out changes in tl \letgvalue{\??la\??la:\currentencoding:\currentmapping:#2}\alreadyloadedlanguage \doifundefined{\??la\??la:\s!default:\s!default:#2}{\letgvalue{\??la\??la:\s!default:\s!default:#2}\loadedlanguage}% fall back \setxvalue{\??la#1\s!patterns}{#2}% \xdef\preloadedpmessage{\preloadedpmessage\doshowpatterns{#2}{[\number\alreadyloadedlanguage]}{\currentencoding}{\currentmapping}}% \doglobal\addtocommalist{#2}\preloadedpatterns \showmessage\m!linguals1{#2,#1,[\alreadyloadedlanguage],\currentencoding,\currentmapping}% \fi \fi \egroup} \fetchruntimecommand \showpatterns {\f!languageprefix\s!run} %D Since we can only load patterns in ini\TeX, we nil the %D loading before dumping (which saves a bit of memory, but %D strangely enough not in the format). \appendtoks \gdef\doloadpatterns{\doglobal\increment\loadedlanguage\gobbletwoarguments}% \globallet\dodoloadpatterns\gobblefourarguments \to \everydump %D \macros %D {setuplanguage} %D %D Quick and dirty, but useful: %D %D \showsetup{setuplanguage} %D %D Beware, this command can only be used when a language is installed. \unprotected \def\setuplanguage {\dodoubleempty\dosetuplanguage} \def\dosetuplanguage[#1][#2]% handy patch for testing {\ifsecondargument \getparameters[\??la#1][#2]% \doif{#1}\currentlanguage\docomplexlanguage \else \getparameters[\??la\currentlanguage][#1]% \docomplexlanguage \fi} \setuplanguage [\s!default] [\s!lefthyphenmin=2, \s!righthyphenmin=2, \s!patterns=, \c!spacing=\v!packed, \s!encoding=, \s!mapping=, \c!lefthyphen=, \c!righthyphen=-, \c!hyphen=-, \c!midsentence=---, \c!leftsentence=---, \c!rightsentence=---, \c!leftsubsentence=---, \c!rightsubsentence=---, \c!leftquote=\upperleftsinglesixquote, \c!rightquote=\upperrightsingleninequote, \c!leftquotation=\upperleftdoublesixquote, \c!rightquotation=\upperrightdoubleninequote, \c!leftspeech=\languageparameter\c!leftquotation, \c!middlespeech=, \c!rightspeech=\languageparameter\c!rightquotation, \c!limittext=\unknown, \c!date={\v!year,\ ,\v!month,\ ,\v!day}, \c!text=Ag] % rather new, split and per language \setuplanguage [\s!default] [\c!compoundhyphen=\compoundhyphen, \c!leftcompoundhyphen=\compoundhyphen, \c!rightcompoundhyphen=] %D The values \type {leftsentence} and \type %D {rightsentence} can be (and are) used to implement %D automatic subsentence boundary glyphs, like in {\fr %D |<|french guillemots|>|} or {\de |<|german guillemots|>|} or %D {\nl |<|dutch dashes|>|} like situations. Furthermore \type %D {leftquotation} and \type {leftquote} come into view %D \quotation {when we quote} or \quote {quote} something. %D \macros %D {currentdatespecification} %D %D Just to make things easy we can ask for the current date %D specification by saying: \def\currentdatespecification{\languageparameter\c!date} %D This command is not meant for users. %D Carefull reading of these macros shows that it's legal to %D say %D %D \starttyping %D \installlanguage [du] [de] %D \stoptyping %D \macros %D {language,mainlanguage} %D %D Switching to another language (actually another hyphenation %D pattern) is done with: %D %D \starttyping %D \language[identifier] %D \stoptyping %D %D or with \type{\identifier}. Just to be compatible with %D \PLAIN\ \TEX, we still support the original meaning, so %D %D \starttyping %D \language=1 %D \stoptyping %D %D is a valid operation, where the relation between number %D and language depends on the order in installing languages. %D %D \showsetup{language} %D \showsetup{mainlanguage} %D %D Both commands take a predefined language identifier as %D argument. We can use \type{\mainlanguage[identifier]} for %D setting the (indeed) main language. This is the language %D used for translating labels like {\em figure} and {\em %D table}. The main language defaults to the current language. %D %D We take care of local as well as standardized language %D switching (fr and fa, de and du, but nl and nl). \ifx\synchronizepatterns \undefined \let\synchronizepatterns\relax \fi \ifx\synchronizepatternswithfont\undefined \def\synchronizepatternswithfont{\synchronizepatterns} \fi \def\setnormallanguage#1#2% current default {% called quite often, so we use \csname % \def\synchronizepatterns{\setnormallanguage % {\csname\??la\currentlanguage\s!patterns\endcsname}}% called often % of even better pre-expand in an ugly way: \ifnum\normallanguage<\zerocount % we've blocked hyphenation (e.g. verbatim) \else \edef\synchronizepatterns{\noexpand\dosetnormallanguage{\languageparameter\s!patterns}}% \donefalse \synchronizepatterns \ifdone\else \def\synchronizepatterns{\dosetnormallanguage\currentlanguage}% \synchronizepatterns \ifdone\else \ifx\currentdefaultlanguage\empty\else \edef\synchronizepatterns{\noexpand\dosetnormallanguage{\specificlanguageparameter\currentdefaultlanguage\s!patterns}}% \synchronizepatterns \ifdone\else \dosetnormallanguage\currentdefaultlanguage \synchronizepatterns \fi \fi \fi \fi \fi} \normallanguage\zerocount \def\dosetnormallanguage#1% #1 == \cs (no longer) {\ifnum\normallanguage<\zerocount % we've blocked hyphenation (e.g. verbatim) \else \dodosetnormallanguage{:\currentencoding:\currentmapping:}{#1}{% \dodosetnormallanguage{:\currentencoding:\s!default :}{#1}{% \dodosetnormallanguage{:\s!default :\currentmapping:}{#1}{% \dodosetnormallanguage{:\s!default :\s!default :}{#1}\empty}}}% \fi} \def\dodosetnormallanguage#1#2% {\ifcsname\??la\??la#1#2\endcsname \edef\thenormallanguage{\csname\??la\??la#1#2\endcsname}% can be \chardef \ifx\thenormallanguage\empty \@EAEAEA\firstofoneargument \else \donetrue \@EA\xdef\csname\??la\currentlanguage\s!patterns\endcsname{#2}% \normallanguage\thenormallanguage\relax % \relax is needed for lookahead problems \@EAEAEA\gobbleoneargument \fi \else \@EA\firstofoneargument \fi} \newevery \everylanguage \relax \def\disablelanguagespecifics {\ignorecompoundcharacter} \def\sethyphenationvariables {\lefthyphenmin 0\languageparameter\s!lefthyphenmin \relax \righthyphenmin0\languageparameter\s!righthyphenmin\relax \lefthyphenmin \numexpr\lefthyphenmin +\hyphenminoffset\relax \righthyphenmin\numexpr\righthyphenmin+\hyphenminoffset\relax} \def\docomplexlanguage% assumes that \currentlanguage is set {\edef\currentdefaultlanguage{\defaultlanguage\currentlanguage}% \setnormallanguage\currentlanguage\currentdefaultlanguage \the\everylanguage \enablelanguagespecifics[\currentlanguage]% \sethyphenationvariables \relax % will be definable and move to core-spa ! \doifelse{\languageparameter\c!spacing}\v!broad\nonfrenchspacing\frenchspacing} \ifx\enablelanguagespecifics\undefined \def\enablelanguagespecifics[#1]{} \fi % The following may be a solution for the fact that one cannot % change catcodes of characters like : and ; inside an environment. \appendtoks \enablelanguagespecifics[\currentlanguage]% \to \everystarttext \def\complexlanguage[#1]% {\edef\askedlanguage{#1}% \ifx\askedlanguage\empty \else \ifcsname\l!prefix!\askedlanguage\endcsname \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}% \ifx\currentlanguage\askedlanguage \else \setcurrentlanguage\currentmainlanguage\askedlanguage \docomplexlanguage \fi \else \showmessage\m!linguals6{#1}% \fi \fi} \let\simplelanguage\normallanguage \definecomplexorsimple\language \def\mainlanguage[#1]% {\edef\askedlanguage{#1}% \ifx\askedlanguage\empty \else \ifcsname\l!prefix!\askedlanguage\endcsname \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}% \ifx\currentlanguage\askedlanguage \ifx\currentmainlanguage\askedlanguage \else \setcurrentlanguage\askedlanguage\askedlanguage \docomplexlanguage \fi \else \setcurrentlanguage\askedlanguage\askedlanguage \docomplexlanguage \fi \fi \fi} %D \macros %D {defaultlanguage,languageparameter,specificlanguageparameter} \def\defaultlanguage#1% {\ifcsname\??la#1\s!default\endcsname \expandafter\defaultlanguage\csname\??la#1\s!default\endcsname \else #1% \fi} \def\languageparameter#1% {\ifcsname\??la\currentlanguage#1\endcsname \csname\??la\currentlanguage#1\endcsname \else\ifcsname\??la\currentlanguage\s!default\endcsname \expandafter\specificlanguageparameter\csname\??la\currentlanguage\s!default\endcsname{#1}% \else\ifcsname\??la\s!default#1\endcsname \csname\??la\s!default#1\endcsname \fi\fi\fi} \def\specificlanguageparameter#1#2% {\ifcsname\??la#1#2\endcsname \csname\??la#1#2\endcsname \else\ifcsname\??la#1\s!default\endcsname \expandafter\specificlanguageparameter\csname\??la#1\s!default\endcsname{#2}% \else\ifcsname\??la\s!default#2\endcsname \csname\??la\s!default#2\endcsname \fi\fi\fi} %D New (see nomarking and nolist): \def\splitsequence#1#2% {\doifelse{#1}\v!no{#2}{\doifelse{#1}\v!yes{\languageparameter\c!limittext}{#1}}} \def\splitsymbol#1% {\splitsequence{#1}{\languageparameter\c!limittext}} %D Just like with subsentence boundary symbols, quotes %D placement depends on the current language, therefore we show %D the defaults here. %D %D \def\ShowLanguageValues [#1] [#2] #3 #4 %D {\blank %D \startlinecorrection %D \vbox\bgroup %D \language[#1]% %D \setbox0=\hbox to \hsize{\hss\bf#2 subsentence symbol and quotes\hss} %D \dp0=0pt %D \box0 %D \vskip.5em %D \hrule %D \vskip.5em %D \let\normalbar=| %D \hbox to \hsize %D {\hfil\quotation{#3 #4}\hfil\quote{#2}\hfil %D \let|=\normalbar\strut|<||<|#3|>|#4|>|\hfil} %D \vskip.5em %D \hrule %D \egroup %D \stoplinecorrection %D \blank} %D %D \ShowLanguageValues [af] [afrikaans] afrikaanse ... %D \ShowLanguageValues [ca] [catalan] catalan ... %D \ShowLanguageValues [cs] [czech] tjechisch tex %D \ShowLanguageValues [cs] [slovak] slowaakse ... %D \ShowLanguageValues [da] [danish] deense ... %D \ShowLanguageValues [de] [german] duitse degelijkheid %D \ShowLanguageValues [en] [english] engelse humor %D \ShowLanguageValues [fi] [finnish] finse ... %D \ShowLanguageValues [fr] [french] franse slag %D \ShowLanguageValues [it] [italian] italiaanse ... %D \ShowLanguageValues [la] [latin] latijnse missen %D \ShowLanguageValues [nl] [dutch] nederlandse zuinigheid %D \ShowLanguageValues [nb] [bokmal] noorse zalm %D \ShowLanguageValues [nn] [nnynorsk] noorse zalm %D \ShowLanguageValues [pl] [polish] poolse vlag %D \ShowLanguageValues [pt] [portuguese] portugese ... %D \ShowLanguageValues [es] [spanish] spaans benauwd %D \ShowLanguageValues [sv] [swedish] zweedse ... %D \ShowLanguageValues [tr] [turkish] turks fruit %D We support a lot of languages. These are specified and %D loaded in separate files, according to their roots. Here %D we only take care of (postponed) setting of the current %D language. %D %D \unprotect %D \placetable{The germanic languages (\type{lang-ger})} %D \starttable[||||] %D \HL %D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR %D \HL %D \NC \s!nl \NC dutch \NC germanic \NC\FR %D \NC \s!en \NC english \NC germanic \NC\MR %D \NC \s!de \NC german \NC germanic \NC\MR %D \NC \s!da \NC danish \NC germanic \NC\MR %D \NC \s!sv \NC swedish \NC germanic \NC\MR %D \NC \s!af \NC afrikaans \NC germanic \NC\MR %D \NC \s!nb \NC bokmal \NC germanic \NC\LR %D \NC \s!nn \NC nynorsk \NC germanic \NC\LR %D \HL %D \stoptable %D \protect %D %D \unprotect %D \placetable{The italic languages (\type{lang-ita})} %D \starttable[||||] %D \HL %D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR %D \HL %D \NC \s!fr \NC french \NC italic \NC\FR %D \NC \s!ca \NC catalan \NC italic \NC\MR %D \NC \s!es \NC spanish \NC italic \NC\MR %D \NC \s!it \NC italian \NC italic \NC\MR %D \NC \s!la \NC latin \NC italic \NC\MR %D \NC \s!pt \NC portuguese \NC italic \NC\LR %D \HL %D \stoptable %D \protect %D %D \unprotect %D \placetable{The slavic languages (\type{lang-sla})} %D \starttable[||||] %D \HL %D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR %D \HL %D \NC \s!pl \NC polish \NC slavic \NC\FR %D \NC \s!cs \NC czech \NC slavic \NC\MR %D \NC \s!sk \NC slavik \NC slavic \NC\LR %D \HL %D \stoptable %D \protect %D \unprotect %D %D \placetable{The altaic languages (\type{lang-alt})} %D \starttable[||||] %D \HL %D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR %D \HL %D \NC \s!tr \NC turkish \NC altaic \NC\SR %D \HL %D \stoptable %D %D \placetable{The uralic languages (\type{lang-ura})} %D \starttable[||||] %D \HL %D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR %D \HL %D \NC \s!fi \NC finnish \NC uralic \NC\SR %D \HL %D \stoptable %D \protect % \bgroup \normallanguage255 \patterns{} \egroup % \def\nopatterns{\normallanguage255 } \def\nopatterns{\normallanguage\minusone} %D \XETEX\ (and also \LUATEX) are \UNICODE: \ifnum\texengine>\pdftexengine \def\synchronizepatternswithfont{} \def\doloadpatterns #1#2{\dodoloadpatterns{#1}{#2}\s!default\s!default} \def\dosetnormallanguage #1{\dodosetnormallanguage{:\s!default:\s!default:}{#1}\empty} \def\setuphyppatencoding {\pathypsettings} \fi %D We default to the language belonging to the interface. This %D is one of the few places outside the interface modules where %D \type{\startinterface} is used. %D We default to english: \setupcurrentlanguage[\s!en] \def\initializemainlanguage {\mainlanguage[\currentlanguage]% \showmessage\m!linguals9\currentlanguage} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/type-one.mkii0000644000175000017500000054722014536300610024725 0ustar hillehille%D \module %D [ file=type-one, %D version=2007.07.30, %D title=\CONTEXT\ Typescript Macros, %D subtitle=Type One Definitions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This file merges the traditional enc, syn and map files into one. If %D you think that it looks messy you're right. It shows some history of %D \TEX\ fonts and the development towards latin modern. % texfont --ven=public --col=antt --enc=ec --sou=auto % texfont --ven=public --col=antp --enc=ec --sou=auto % texfont --ven=urw --col=palatino --enc=ec --sou=auto % texfont --ven-lucas --col=sun --enc=ec --sou=. % \usetypescript [all] [modern] [texnansi] % \setupbodyfont[reset] \setupbodyfont[cmr] % \starttext \showfont[Serif] \stoptext \starttypescriptcollection[latinmodern] \starttypescript [map] [all] \loadmapfile[original-base.map] \loadmapfile[original-ams-base.map] \stoptypescript \starttypescript[all][modern,latin-modern][all] % fallbacks, no math in latin modern \definefontsynonym[lmdunh10][cmdunh10] \definefontsynonym[lmff10] [cmff10] \definefontsynonym[lmfi10] [cmfi10] \definefontsynonym[lmfib8] [cmfib8] \definefontsynonym[lmtex10] [cmtex10] \definefontsynonym[lmtex8] [cmtex8] \definefontsynonym[lmtex9] [cmtex9] \loadmapfile[original-public-lm.map] \stoptypescript \starttypescript [serif] [modern,latin-modern] [texnansi,ec,qx,t5] \definefontsynonym [LMRoman5-Regular] [\typescriptthree-lmr5] [encoding=\typescriptthree] \definefontsynonym [LMRoman6-Regular] [\typescriptthree-lmr6] [encoding=\typescriptthree] \definefontsynonym [LMRoman7-Regular] [\typescriptthree-lmr7] [encoding=\typescriptthree] \definefontsynonym [LMRoman8-Regular] [\typescriptthree-lmr8] [encoding=\typescriptthree] \definefontsynonym [LMRoman9-Regular] [\typescriptthree-lmr9] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-Regular] [\typescriptthree-lmr10] [encoding=\typescriptthree] \definefontsynonym [LMRoman12-Regular] [\typescriptthree-lmr12] [encoding=\typescriptthree] \definefontsynonym [LMRoman17-Regular] [\typescriptthree-lmr17] [encoding=\typescriptthree] \definefontsynonym [LMRoman5-Bold] [\typescriptthree-lmbx5] [encoding=\typescriptthree] \definefontsynonym [LMRoman6-Bold] [\typescriptthree-lmbx6] [encoding=\typescriptthree] \definefontsynonym [LMRoman7-Bold] [\typescriptthree-lmbx7] [encoding=\typescriptthree] \definefontsynonym [LMRoman8-Bold] [\typescriptthree-lmbx8] [encoding=\typescriptthree] \definefontsynonym [LMRoman9-Bold] [\typescriptthree-lmbx9] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-Bold] [\typescriptthree-lmbx10] [encoding=\typescriptthree] \definefontsynonym [LMRoman12-Bold] [\typescriptthree-lmbx12] [encoding=\typescriptthree] \definefontsynonym [LMRoman7-Italic] [\typescriptthree-lmri7] [encoding=\typescriptthree] \definefontsynonym [LMRoman8-Italic] [\typescriptthree-lmri8] [encoding=\typescriptthree] \definefontsynonym [LMRoman9-Italic] [\typescriptthree-lmri9] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-Italic] [\typescriptthree-lmri10] [encoding=\typescriptthree] \definefontsynonym [LMRoman12-Italic] [\typescriptthree-lmri12] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-BoldItalic] [\typescriptthree-lmbxi10] [encoding=\typescriptthree] \definefontsynonym [LMRoman8-Oblique] [\typescriptthree-lmro8] [encoding=\typescriptthree] \definefontsynonym [LMRoman9-Oblique] [\typescriptthree-lmro9] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-Oblique] [\typescriptthree-lmro10] [encoding=\typescriptthree] \definefontsynonym [LMRoman12-Oblique] [\typescriptthree-lmro12] [encoding=\typescriptthree] \definefontsynonym [LMRoman17-Oblique] [\typescriptthree-lmro17] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-BoldOblique] [\typescriptthree-lmbxo10] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-Demi] [\typescriptthree-lmb10] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-DemiOblique] [\typescriptthree-lmbo10] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-CapsRegular] [\typescriptthree-lmcsc10] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-CapsOblique] [\typescriptthree-lmcsco10] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-Dunhill] [\typescriptthree-lmdunh10] [encoding=\typescriptthree] \definefontsynonym [LMRoman10-DunhillOblique] [\typescriptthree-lmduno10] [encoding=\typescriptthree] \loadmapfile[lm-\typescriptthree.map] \stoptypescript \starttypescript [sans] [modern,latin-modern] [texnansi,ec,qx,t5] \definefontsynonym [LMSans8-Regular] [\typescriptthree-lmss8] [encoding=\typescriptthree] \definefontsynonym [LMSans9-Regular] [\typescriptthree-lmss9] [encoding=\typescriptthree] \definefontsynonym [LMSans10-Regular] [\typescriptthree-lmss10] [encoding=\typescriptthree] \definefontsynonym [LMSans12-Regular] [\typescriptthree-lmss12] [encoding=\typescriptthree] \definefontsynonym [LMSans17-Regular] [\typescriptthree-lmss17] [encoding=\typescriptthree] \definefontsynonym [LMSans10-Bold] [\typescriptthree-lmssbx10] [encoding=\typescriptthree] \definefontsynonym [LMSans8-Oblique] [\typescriptthree-lmsso8] [encoding=\typescriptthree] \definefontsynonym [LMSans9-Oblique] [\typescriptthree-lmsso9] [encoding=\typescriptthree] \definefontsynonym [LMSans10-Oblique] [\typescriptthree-lmsso10] [encoding=\typescriptthree] \definefontsynonym [LMSans12-Oblique] [\typescriptthree-lmsso12] [encoding=\typescriptthree] \definefontsynonym [LMSans17-Oblique] [\typescriptthree-lmsso17] [encoding=\typescriptthree] \definefontsynonym [LMSans10-BoldOblique] [\typescriptthree-lmssbo10] [encoding=\typescriptthree] \definefontsynonym [LMSans10-DemiCondensed] [\typescriptthree-lmssdc10] [encoding=\typescriptthree] \definefontsynonym [LMSans10-DemiCondensedOblique] [\typescriptthree-lmssdo10] [encoding=\typescriptthree] \definefontsynonym [LMSansQuotation8-Regular] [\typescriptthree-lmssq8] [encoding=\typescriptthree] \definefontsynonym [LMSansQuotation8-Bold] [\typescriptthree-lmssqbx8] [encoding=\typescriptthree] \definefontsynonym [LMSansQuotation8-Oblique] [\typescriptthree-lmssqo8] [encoding=\typescriptthree] \definefontsynonym [LMSansQuotation8-BoldOblique] [\typescriptthree-lmssqbo8] [encoding=\typescriptthree] \loadmapfile[lm-\typescriptthree.map] \stoptypescript \starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond] [texnansi,ec,qx,t5] \definefontsynonym [LMTypewriter8-Regular] [\typescriptthree-lmtt8] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter9-Regular] [\typescriptthree-lmtt9] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-Regular] [\typescriptthree-lmtt10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter12-Regular] [\typescriptthree-lmtt12] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-Italic] [\typescriptthree-lmtti10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-Oblique] [\typescriptthree-lmtto10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-CapsRegular] [\typescriptthree-lmtcsc10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-CapsOblique] [\typescriptthree-lmtcso10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-Light] [\typescriptthree-lmtl10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-LightOblique] [\typescriptthree-lmtlo10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-LightCondensed] [\typescriptthree-lmtlc10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-LightCondensedOblique] [\typescriptthree-lmtlco10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-Dark] [\typescriptthree-lmtk10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-DarkOblique] [\typescriptthree-lmtko10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriter10-Unslanted] [\typescriptthree-lmu10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriterVarWd10-Regular] [\typescriptthree-lmvtt10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriterVarWd10-Oblique] [\typescriptthree-lmvtto10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriterVarWd10-Light] [\typescriptthree-lmvtl10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriterVarWd10-LightOblique] [\typescriptthree-lmvtlo10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriterVarWd10-Dark] [\typescriptthree-lmvtk10] [encoding=\typescriptthree] \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [\typescriptthree-lmvtko10] [encoding=\typescriptthree] \loadmapfile[lm-\typescriptthree.map] \stoptypescript \starttypescript [math] [modern,latin-modern] \definefontsynonym [LMMathRoman5-Regular] [rm-lmr5] \definefontsynonym [LMMathRoman6-Regular] [rm-lmr6] \definefontsynonym [LMMathRoman7-Regular] [rm-lmr7] \definefontsynonym [LMMathRoman8-Regular] [rm-lmr8] \definefontsynonym [LMMathRoman9-Regular] [rm-lmr9] \definefontsynonym [LMMathRoman10-Regular] [rm-lmr10] \definefontsynonym [LMMathRoman12-Regular] [rm-lmr12] \definefontsynonym [LMMathRoman17-Regular] [rm-lmr17] \definefontsynonym [LMMathRoman5-Bold] [rm-lmbx5] \definefontsynonym [LMMathRoman6-Bold] [rm-lmbx6] \definefontsynonym [LMMathRoman7-Bold] [rm-lmbx7] \definefontsynonym [LMMathRoman8-Bold] [rm-lmbx8] \definefontsynonym [LMMathRoman9-Bold] [rm-lmbx9] \definefontsynonym [LMMathRoman10-Bold] [rm-lmbx10] \definefontsynonym [LMMathRoman12-Bold] [rm-lmbx12] \definefontsynonym [LMMathSymbols5-BoldItalic] [lmbsy5] \definefontsynonym [LMMathSymbols7-BoldItalic] [lmbsy7] \definefontsynonym [LMMathSymbols10-BoldItalic][lmbsy10] \definefontsynonym [LMMathSymbols5-Italic] [lmsy5] \definefontsynonym [LMMathSymbols6-Italic] [lmsy6] \definefontsynonym [LMMathSymbols7-Italic] [lmsy7] \definefontsynonym [LMMathSymbols8-Italic] [lmsy8] \definefontsynonym [LMMathSymbols9-Italic] [lmsy9] \definefontsynonym [LMMathSymbols10-Italic] [lmsy10] \definefontsynonym [LMMathExtension10-Regular] [lmex10] \definefontsynonym [LMMathItalic5-Italic] [lmmi5] \definefontsynonym [LMMathItalic6-Italic] [lmmi6] \definefontsynonym [LMMathItalic7-Italic] [lmmi7] \definefontsynonym [LMMathItalic8-Italic] [lmmi8] \definefontsynonym [LMMathItalic9-Italic] [lmmi9] \definefontsynonym [LMMathItalic10-Italic] [lmmi10] \definefontsynonym [LMMathItalic12-Italic] [lmmi12] \definefontsynonym [LMMathItalic5-BoldItalic] [lmmib5] \definefontsynonym [LMMathItalic7-BoldItalic] [lmmib7] \definefontsynonym [LMMathItalic10-BoldItalic] [lmmib10] \usemathcollection[default] \loadmapfile[lm-math.map] \loadmapfile[lm-rm.map] \stoptypescript %D {\em Comments by Victor Figurnov:} the wcmb10, wcmbx10, %D \unknown\ fonts below are taken from the Paradissa %D collection by Basil Malyshev. These fonts don't conform t2a %D encoding but are in MS Windows Cyrillic codepage 1251 %D encoding. These fonts contain only 33 russian letters in %D upper and lower case, the number sign, and guillemots. But %D even among these characters only the basic 32 russian %D letters (in upper and lower case) will be typeset correctly %D with this definition. The letters cyrillicYO and %D cyrillicyo, as well as number sign (textnumero) and %D guillemots won't be typeset properly, because these symbols %D have different positions in t2a and MS CP1251 encodings. %D %D I think that the russian lh fonts and|/|or cm-super provide %D better alternatives (type1). Therefore, the names below %D match those of cm-super (\type {0NNN} instead of \type %D {NNN}, i.e.\ four digit numbers). \starttypescript [serif] [computer-modern] [cyr] \definefontsynonym [cmb10] [wcmb10] [encoding=t2a] \definefontsynonym [cmbsy10] [wcmbsy10] [encoding=t2a] \definefontsynonym [cmbx10] [wcmbx10] [encoding=t2a] \definefontsynonym [cmbx12] [wcmbx12] [encoding=t2a] \definefontsynonym [cmbx5] [wcmbx5] [encoding=t2a] \definefontsynonym [cmbx6] [wcmbx6] [encoding=t2a] \definefontsynonym [cmbx7] [wcmbx7] [encoding=t2a] \definefontsynonym [cmbx8] [wcmbx8] [encoding=t2a] \definefontsynonym [cmbx9] [wcmbx9] [encoding=t2a] \definefontsynonym [cmbxsl10] [wcmbxsl10] [encoding=t2a] \definefontsynonym [cmbxti10] [wcmbxti10] [encoding=t2a] \definefontsynonym [cmcsc10] [wcmcsc10] [encoding=t2a] %definefontsynonym [cmdunh10] [wcmdunh10] [encoding=t2a] \definefontsynonym [cminch] [wcminch] [encoding=t2a] \definefontsynonym [cmr10] [wcmr10] [encoding=t2a] \definefontsynonym [cmr12] [wcmr12] [encoding=t2a] \definefontsynonym [cmr17] [wcmr17] [encoding=t2a] \definefontsynonym [cmr5] [wcmr5] [encoding=t2a] \definefontsynonym [cmr6] [wcmr6] [encoding=t2a] \definefontsynonym [cmr7] [wcmr7] [encoding=t2a] \definefontsynonym [cmr8] [wcmr8] [encoding=t2a] \definefontsynonym [cmr9] [wcmr9] [encoding=t2a] \definefontsynonym [cmsl10] [wcmsl10] [encoding=t2a] \definefontsynonym [cmsl12] [wcmsl12] [encoding=t2a] \definefontsynonym [cmsl8] [wcmsl8] [encoding=t2a] \definefontsynonym [cmsl9] [wcmsl9] [encoding=t2a] \definefontsynonym [cmti10] [wcmti10] [encoding=t2a] \definefontsynonym [cmti12] [wcmti12] [encoding=t2a] \definefontsynonym [cmti7] [wcmti7] [encoding=t2a] \definefontsynonym [cmti8] [wcmti8] [encoding=t2a] \definefontsynonym [cmti9] [wcmti9] [encoding=t2a] \definefontsynonym [cmu10] [wcmu10] [encoding=t2a] \stoptypescript \starttypescript [sans] [computer-modern] [cyr] \definefontsynonym [cmss10] [wcmss10] [encoding=t2a] \definefontsynonym [cmss12] [wcmss12] [encoding=t2a] \definefontsynonym [cmss17] [wcmss17] [encoding=t2a] \definefontsynonym [cmss8] [wcmss8] [encoding=t2a] \definefontsynonym [cmss9] [wcmss9] [encoding=t2a] %definefontsynonym [cmssbi10] [wcmssbi10] [encoding=t2a] \definefontsynonym [cmssbx10] [wcmssbx10] [encoding=t2a] \definefontsynonym [cmssdc10] [wcmssdc10] [encoding=t2a] \definefontsynonym [cmssi10] [wcmssi10] [encoding=t2a] \definefontsynonym [cmssi12] [wcmssi12] [encoding=t2a] \definefontsynonym [cmssi17] [wcmssi17] [encoding=t2a] \definefontsynonym [cmssi8] [wcmssi8] [encoding=t2a] \definefontsynonym [cmssi9] [wcmssi9] [encoding=t2a] \definefontsynonym [cmssq8] [wcmssq8] [encoding=t2a] \definefontsynonym [cmssqi8] [wcmssqi8] [encoding=t2a] \stoptypescript \starttypescript [mono] [computer-modern] [cyr] \definefontsynonym [cmitt10] [wcmitt10] [encoding=t2a] \definefontsynonym [cmsltt10] [wcmsltt10] [encoding=t2a] \definefontsynonym [cmtt10] [wcmtt10] [encoding=t2a] \definefontsynonym [cmtt12] [wcmtt12] [encoding=t2a] \definefontsynonym [cmtt8] [wcmtt8] [encoding=t2a] \definefontsynonym [cmtt9] [wcmtt9] [encoding=t2a] %definefontsynonym [cmvtt10] [wcmvtt10] [encoding=t2a] \stoptypescript \definetypescriptprefix [c:t2a] [la] \definetypescriptprefix [c:t2b] [lb] \definetypescriptprefix [c:t2c] [lc] \definetypescriptprefix [c:x2] [rx] \starttypescript [all] [computer-modern] [t2a,t2b,t2c,x2] \loadmapfile[subset-cmsuper-\typescriptthree.map] \loadmapfile[subset-cmsuper-\typescriptthree.map] \loadmapfile[cm-super-\typescriptthree.map] \stoptypescript \starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2] \definefontsynonym [cmb10] [\typescriptprefix{c:\typescriptthree}rb1000] [encoding=\typescriptthree] \definefontsynonym [cmbx10] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree] \definefontsynonym [cmbx12] [\typescriptprefix{c:\typescriptthree}bx1200] [encoding=\typescriptthree] \definefontsynonym [cmbx5] [\typescriptprefix{c:\typescriptthree}bx0500] [encoding=\typescriptthree] \definefontsynonym [cmbx6] [\typescriptprefix{c:\typescriptthree}bx0600] [encoding=\typescriptthree] \definefontsynonym [cmbx7] [\typescriptprefix{c:\typescriptthree}bx0700] [encoding=\typescriptthree] \definefontsynonym [cmbx8] [\typescriptprefix{c:\typescriptthree}bx0800] [encoding=\typescriptthree] \definefontsynonym [cmbx9] [\typescriptprefix{c:\typescriptthree}bx0900] [encoding=\typescriptthree] \definefontsynonym [cmbxsl10] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree] \definefontsynonym [cmbxti10] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree] \definefontsynonym [cmcsc10] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree] \definefontsynonym [cmdunh10] [\typescriptprefix{c:\typescriptthree}dh1000] [encoding=\typescriptthree] \definefontsynonym [cmff10] [\typescriptprefix{c:\typescriptthree}ff1000] [encoding=\typescriptthree] \definefontsynonym [cmfi10] [\typescriptprefix{c:\typescriptthree}fi1000] [encoding=\typescriptthree] \definefontsynonym [cmfib8] [\typescriptprefix{c:\typescriptthree}fb0800] [encoding=\typescriptthree] %\definefontsynonym [cminch] [\typescriptprefix{c:\typescriptthree}inch00] [encoding=\typescriptthree] \definefontsynonym [cmr10] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree] \definefontsynonym [cmr12] [\typescriptprefix{c:\typescriptthree}rm1200] [encoding=\typescriptthree] \definefontsynonym [cmr17] [\typescriptprefix{c:\typescriptthree}rm1700] [encoding=\typescriptthree] \definefontsynonym [cmr5] [\typescriptprefix{c:\typescriptthree}rm0500] [encoding=\typescriptthree] \definefontsynonym [cmr6] [\typescriptprefix{c:\typescriptthree}rm0600] [encoding=\typescriptthree] \definefontsynonym [cmr7] [\typescriptprefix{c:\typescriptthree}rm0700] [encoding=\typescriptthree] \definefontsynonym [cmr8] [\typescriptprefix{c:\typescriptthree}rm0800] [encoding=\typescriptthree] \definefontsynonym [cmr9] [\typescriptprefix{c:\typescriptthree}rm0900] [encoding=\typescriptthree] \definefontsynonym [cmsl10] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree] \definefontsynonym [cmsl12] [\typescriptprefix{c:\typescriptthree}sl1200] [encoding=\typescriptthree] \definefontsynonym [cmsl8] [\typescriptprefix{c:\typescriptthree}sl0800] [encoding=\typescriptthree] \definefontsynonym [cmsl9] [\typescriptprefix{c:\typescriptthree}sl0900] [encoding=\typescriptthree] \definefontsynonym [cmtcsc10] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree] \definefontsynonym [cmti10] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree] \definefontsynonym [cmti12] [\typescriptprefix{c:\typescriptthree}ti1200] [encoding=\typescriptthree] \definefontsynonym [cmti7] [\typescriptprefix{c:\typescriptthree}ti0700] [encoding=\typescriptthree] \definefontsynonym [cmti8] [\typescriptprefix{c:\typescriptthree}ti0800] [encoding=\typescriptthree] \definefontsynonym [cmti9] [\typescriptprefix{c:\typescriptthree}ti0900] [encoding=\typescriptthree] \definefontsynonym [cmu10] [\typescriptprefix{c:\typescriptthree}ui1000] [encoding=\typescriptthree] \stoptypescript \starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2] \definefontsynonym [cmss10] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree] \definefontsynonym [cmss12] [\typescriptprefix{c:\typescriptthree}ss1200] [encoding=\typescriptthree] \definefontsynonym [cmss17] [\typescriptprefix{c:\typescriptthree}ss1700] [encoding=\typescriptthree] \definefontsynonym [cmss8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree] \definefontsynonym [cmss9] [\typescriptprefix{c:\typescriptthree}ss0900] [encoding=\typescriptthree] \definefontsynonym [cmssbx10] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree] %\definefontsynonym [cmssdc10] [\typescriptprefix{c:\typescriptthree}ssdc1000] [encoding=\typescriptthree] \definefontsynonym [cmssi10] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree] \definefontsynonym [cmssi12] [\typescriptprefix{c:\typescriptthree}si1200] [encoding=\typescriptthree] \definefontsynonym [cmssi17] [\typescriptprefix{c:\typescriptthree}si1700] [encoding=\typescriptthree] \definefontsynonym [cmssi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree] \definefontsynonym [cmssi9] [\typescriptprefix{c:\typescriptthree}si0900] [encoding=\typescriptthree] \definefontsynonym [cmssq8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree] \definefontsynonym [cmssqi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree] \stoptypescript \starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2] \definefontsynonym [cmitt10] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree] \definefontsynonym [cmsltt10] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree] \definefontsynonym [cmtt10] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree] \definefontsynonym [cmtt12] [\typescriptprefix{c:\typescriptthree}tt1200] [encoding=\typescriptthree] \definefontsynonym [cmtt8] [\typescriptprefix{c:\typescriptthree}tt0800] [encoding=\typescriptthree] \definefontsynonym [cmtt9] [\typescriptprefix{c:\typescriptthree}tt0900] [encoding=\typescriptthree] \definefontsynonym [cmvtt10] [\typescriptprefix{c:\typescriptthree}vt1000] [encoding=\typescriptthree] \stoptypescript \starttypescript [serif] [computer-modern] [lcy] \definefontsynonym [cmb10] [lhb10] [encoding=lcy] \definefontsynonym [cmbx10] [lhbx10] [encoding=lcy] \definefontsynonym [cmbx12] [lhbx12] [encoding=lcy] \definefontsynonym [cmbx5] [lhbx5] [encoding=lcy] \definefontsynonym [cmbx6] [lhbx6] [encoding=lcy] \definefontsynonym [cmbx7] [lhbx7] [encoding=lcy] \definefontsynonym [cmbx8] [lhbx8] [encoding=lcy] \definefontsynonym [cmbx9] [lhbx9] [encoding=lcy] \definefontsynonym [cmbxsl10] [lhbxsl10] [encoding=lcy] \definefontsynonym [cmbxti10] [lhbxti10] [encoding=lcy] \definefontsynonym [cmcsc10] [lhcsc10] [encoding=lcy] \definefontsynonym [cmdunh10] [lhdunh10] [encoding=lcy] \definefontsynonym [cmff10] [lhff10] [encoding=lcy] \definefontsynonym [cmfi10] [lhfi10] [encoding=lcy] \definefontsynonym [cmfib8] [lhfib8] [encoding=lcy] \definefontsynonym [cminch] [lhinch] [encoding=lcy] \definefontsynonym [cmr10] [lhr10] [encoding=lcy] \definefontsynonym [cmr12] [lhr12] [encoding=lcy] \definefontsynonym [cmr17] [lhr17] [encoding=lcy] \definefontsynonym [cmr5] [lhr5] [encoding=lcy] \definefontsynonym [cmr6] [lhr6] [encoding=lcy] \definefontsynonym [cmr7] [lhr7] [encoding=lcy] \definefontsynonym [cmr8] [lhr8] [encoding=lcy] \definefontsynonym [cmr9] [lhr9] [encoding=lcy] \definefontsynonym [cmsl10] [lhsl10] [encoding=lcy] \definefontsynonym [cmsl12] [lhsl12] [encoding=lcy] \definefontsynonym [cmsl8] [lhsl8] [encoding=lcy] \definefontsynonym [cmsl9] [lhsl9] [encoding=lcy] \definefontsynonym [cmtcsc10] [lhtcsc10] [encoding=lcy] \definefontsynonym [cmtex10] [lhtex10] [encoding=lcy] \definefontsynonym [cmtex8] [lhtex8] [encoding=lcy] \definefontsynonym [cmtex9] [lhtex9] [encoding=lcy] \definefontsynonym [cmti10] [lhti10] [encoding=lcy] \definefontsynonym [cmti12] [lhti12] [encoding=lcy] \definefontsynonym [cmti7] [lhti7] [encoding=lcy] \definefontsynonym [cmti8] [lhti8] [encoding=lcy] \definefontsynonym [cmti9] [lhti9] [encoding=lcy] \definefontsynonym [cmu10] [lhu10] [encoding=lcy] \stoptypescript \starttypescript [sans] [computer-modern] [lcy] \definefontsynonym [cmss10] [lhss10] [encoding=lcy] \definefontsynonym [cmss12] [lhss12] [encoding=lcy] \definefontsynonym [cmss17] [lhss17] [encoding=lcy] \definefontsynonym [cmss8] [lhss8] [encoding=lcy] \definefontsynonym [cmss9] [lhss9] [encoding=lcy] \definefontsynonym [cmssbi10] [lhssbi10] [encoding=lcy] \definefontsynonym [cmssbx10] [lhssbx10] [encoding=lcy] \definefontsynonym [cmssdc10] [lhssdc10] [encoding=lcy] \definefontsynonym [cmssi10] [lhssi10] [encoding=lcy] \definefontsynonym [cmssi12] [lhssi12] [encoding=lcy] \definefontsynonym [cmssi17] [lhssi17] [encoding=lcy] \definefontsynonym [cmssi8] [lhssi8] [encoding=lcy] \definefontsynonym [cmssi9] [lhssi9] [encoding=lcy] \definefontsynonym [cmssq8] [lhssq8] [encoding=lcy] \definefontsynonym [cmssqi8] [lhssqi8] [encoding=lcy] \stoptypescript \starttypescript [mono] [computer-modern] [lcy] \definefontsynonym [cmitt10] [lhitt10] [encoding=lcy] \definefontsynonym [cmsltt10] [lhsltt10] [encoding=lcy] \definefontsynonym [cmtt10] [lhtt10] [encoding=lcy] \definefontsynonym [cmtt12] [lhtt12] [encoding=lcy] \definefontsynonym [cmtt8] [lhtt8] [encoding=lcy] \definefontsynonym [cmtt9] [lhtt9] [encoding=lcy] \definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy] \stoptypescript % \starttypescript [math] [modern,computer-modern,latin-modern] % [default] % watch the space, it prevents remapping \definefontsynonym [ComputerModernMath-Roman] [rm-lmr10]% [lmr10 ] \definefontsynonym [ComputerModernMath-Extension] [lmex10] \definefontsynonym [ComputerModernMath-Italic] [lmmi10] \definefontsynonym [ComputerModernMath-Symbol] [lmsy10] \stoptypescript \starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern] % [default] % watch the space, it prevents remapping \definefontsynonym [ComputerModernMath-Roman-Bold] [rm-lmb10] % [lmb10 ] \definefontsynonym [ComputerModernMath-Extension] [lmex10] \definefontsynonym [ComputerModernMath-Italic-Bold] [lmmib10] \definefontsynonym [ComputerModernMath-Symbol-Bold] [lmbsy10] \stoptypescript % Till we have cyrilic in lm: % \usetypescript[modern-base][t2a] % \setupbodyfont[modern,10pt] \starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2] \definefontsynonym [Serif] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree] \definefontsynonym [SerifItalic] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree] \definefontsynonym [SerifSlanted] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree] \definefontsynonym [SerifBold] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree] \definefontsynonym [SerifBoldItalic] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree] \definefontsynonym [SerifBoldSlanted] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree] \definefontsynonym [SerifCaps] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree] \definefontsynonym [SerifCapsSlanted] [\typescriptprefix{c:\typescriptthree}sc1000] [encoding=\typescriptthree] \stoptypescript \starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2] \definefontsynonym [Sans] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree] \definefontsynonym [SansItalic] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree] \definefontsynonym [SansSlanted] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree] \definefontsynonym [SansBold] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree] \definefontsynonym [SansBoldItalic] [\typescriptprefix{c:\typescriptthree}so1000] [encoding=\typescriptthree] \definefontsynonym [SansBoldSlanted] [\typescriptprefix{c:\typescriptthree}so1000] [encoding=\typescriptthree] \definefontsynonym [SansCaps] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree] \definefontsynonym [SansCapsSlanted] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree] \stoptypescript \starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2] \definefontsynonym [Mono] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree] \definefontsynonym [MonoItalic] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree] \definefontsynonym [MonoSlanted] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree] \definefontsynonym [MonoBold] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree] \definefontsynonym [MonoBoldItalic] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree] \definefontsynonym [MonoBoldSlanted] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree] \definefontsynonym [MonoCaps] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree] \definefontsynonym [MonoCapsSlanted] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree] \stoptypescript % Computer Concrete (AMS) \starttypescript [serif] [concrete] [default] \definefontsynonym [ComputerConcrete] [ccr10] \definefontsynonym [ComputerConcrete-Italic] [ccti10] \definefontsynonym [ComputerConcrete-Slanted] [ccsl10] \definefontsynonym [ComputerConcrete-Bold] [ComputerConcrete] \definefontsynonym [ComputerConcrete-BoldItalic] [ComputerConcrete-Italic] \definefontsynonym [ComputerConcrete-BoldSlanted] [ComputerConcrete-Slanted] \definefontsynonym [ComputerConcrete-Caps] [cccsc10] \stoptypescript \starttypescript [serif] [modern,computer-modern,latin-modern] [name] \definefontsynonym [Serif] [LMRoman-Regular] \definefontsynonym [SerifBold] [LMRoman-Bold] \definefontsynonym [SerifItalic] [LMRoman-Italic] \definefontsynonym [SerifSlanted] [LMRoman-Oblique] \definefontsynonym [SerifBoldItalic] [LMRoman-BoldItalic] \definefontsynonym [SerifBoldSlanted] [LMRoman-BoldOblique] \definefontsynonym [SerifCaps] [LMRoman-CapsRegular] \definefontsynonym [SerifCapsSlanted] [LMRoman-CapsOblique] \stoptypescript \starttypescript [sans] [modern,computer-modern,latin-modern] [name] \definefontsynonym [Sans] [LMSans-Regular] \definefontsynonym [SansBold] [LMSans-Bold] \definefontsynonym [SansItalic] [LMSans-Oblique] \definefontsynonym [SansSlanted] [LMSans-Oblique] \definefontsynonym [SansBoldItalic] [LMSans-BoldOblique] \definefontsynonym [SansBoldSlanted] [LMSans-BoldOblique] \definefontsynonym [SansCaps] [LMSans-Regular] \definefontsynonym [SansCapsSlanted] [LMSans-Oblique] \stoptypescript \starttypescript [mono] [modern,computer-modern,latin-modern] [name] \definefontsynonym [Mono] [LMTypewriter-Regular] \definefontsynonym [MonoBold] [LMTypewriter-Dark] \definefontsynonym [MonoItalic] [LMTypewriter-Italic] \definefontsynonym [MonoSlanted] [LMTypewriter-Oblique] \definefontsynonym [MonoBoldItalic] [LMTypewriter-DarkOblique] \definefontsynonym [MonoBoldSlanted] [LMTypewriter-DarkOblique] \definefontsynonym [MonoCaps] [LMTypewriter-CapsRegular] \definefontsynonym [MonoCapsSlanted] [LMTypewriter-CapsOblique] \definefontsynonym [MonoVariable] [LMTypewriterVarWd-Regular] \stoptypescript \starttypescript [math] [modern,computer-modern,latin-modern] [name] \definefontsynonym [MathRoman] [LMMathRoman-Regular] \definefontsynonym [MathExtension] [LMMathExtension-Regular] \definefontsynonym [MathItalic] [LMMathItalic-Italic] \definefontsynonym [MathSymbol] [LMMathSymbols-Italic] \stoptypescript \starttypescript [boldmath] [modern,computer-modern,latin-modern] [name] \definefontsynonym [MathRoman] [LMMathRoman-Bold] \definefontsynonym [MathExtension] [LMMathExtension-Regular] \definefontsynonym [MathItalic] [LMMathItalic-BoldItalic] \definefontsynonym [MathSymbol] [LMMathSymbols-BoldItalic] \stoptypescript \starttypescript [bfmath] [modern,computer-modern,latin-modern] [name] \definefontsynonym [MathRomanBold] [LMMathRoman-Bold] \definefontsynonym [MathExtension] [LMMathExtension-Regular] \definefontsynonym [MathItalicBold] [LMMathItalic-BoldItalic] \definefontsynonym [MathSymbolBold] [LMMathSymbols-BoldItalic] \stoptypescript \starttypescript [math,boldmath,bfmath] [modern,computer-modern,latin-modern] [name] \usemathcollection[default] \stoptypescript \starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] [name] \definefontsynonym [Serif] [LMTypewriterVarWd-Regular] \definefontsynonym [SerifBold] [LMTypewriterVarWd-Oblique] \definefontsynonym [SerifItalic] [LMTypewriterVarWd-Oblique] \definefontsynonym [SerifSlanted] [LMTypewriterVarWd-Dark] \definefontsynonym [SerifBoldItalic] [LMTypewriterVarWd-DarkOblique] \definefontsynonym [SerifBoldSlanted] [LMTypewriterVarWd-DarkOblique] \definefontsynonym [SerifCaps] [LMTypewriterVarWd-Regular] \definefontsynonym [SerifCapsSlanted] [LMTypewriterVarWd-Oblique] \stoptypescript \starttypescript [mono] [modern-cond,computer-modern-cond,latin-modern-cond,modern-lightcond,computer-modern-lightcond,latin-modern-lightcond] [name] \definefontsynonym [Mono] [LMTypewriter-LightCondensed] \definefontsynonym [MonoBold] [LMTypewriter-LightCondensed] \definefontsynonym [MonoItalic] [LMTypewriter-LightCondensedOblique] \definefontsynonym [MonoSlanted] [LMTypewriter-LightCondensedOblique] \definefontsynonym [MonoBoldItalic] [LMTypewriter-LightCondensed] \definefontsynonym [MonoBoldSlanted] [LMTypewriter-LightCondensed] \definefontsynonym [MonoCaps] [LMTypewriter-LightCondensed] \definefontsynonym [MonoCapsSlanted] [LMTypewriter-LightCondensed] \stoptypescript \starttypescript [mono] [modern-light,computer-modern-light,latin-modern-light] [name] \definefontsynonym [Mono] [LMTypewriter-Light] \definefontsynonym [MonoBold] [LMTypewriter-Light] \definefontsynonym [MonoItalic] [LMTypewriter-LightOblique] \definefontsynonym [MonoSlanted] [LMTypewriter-LightOblique] \definefontsynonym [MonoBoldItalic] [LMTypewriter-Light] \definefontsynonym [MonoBoldSlanted] [LMTypewriter-Light] \definefontsynonym [MonoCaps] [LMTypewriter-Light] \definefontsynonym [MonoCapsSlanted] [LMTypewriter-Light] \stoptypescript % Later we will map the real fonts, here we just map synonyms. \starttypescript [serif] [modern,latin-modern] \definefontsynonym [LMRoman-DemiOblique] [LMRoman10-DemiOblique] \definefontsynonym [LMRoman-Bold] [LMRoman10-Bold] \definefontsynonym [LMRoman-BoldItalic] [LMRoman10-BoldItalic] \definefontsynonym [LMRoman-BoldOblique] [LMRoman10-BoldOblique] \definefontsynonym [LMRoman-CapsRegular] [LMRoman10-CapsRegular] \definefontsynonym [LMRoman-CapsOblique] [LMRoman10-CapsOblique] \definefontsynonym [LMRoman-Regular] [LMRoman10-Regular] \definefontsynonym [LMRoman-Italic] [LMRoman10-Italic] \definefontsynonym [LMRoman-Oblique] [LMRoman10-Oblique] \stoptypescript \starttypescript [sans] [modern,latin-modern] \definefontsynonym [LMSans-Regular] [LMSans10-Regular] \definefontsynonym [LMSans-BoldOblique] [LMSans10-BoldOblique] \definefontsynonym [LMSans-Bold] [LMSans10-Bold] \definefontsynonym [LMSans-DemiCondensed] [LMSans10-DemiCondensed] \definefontsynonym [LMSans-DemiCondensedOblique] [LMSans10-DemiCondensedOblique] \definefontsynonym [LMSans-Oblique] [LMSans10-Oblique] \stoptypescript \starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond] \definefontsynonym [LMTypewriter-CapsRegular] [LMTypewriter10-CapsRegular] \definefontsynonym [LMTypewriter-CapsOblique] [LMTypewriter10-CapsOblique] \definefontsynonym [LMTypewriter-Light] [LMTypewriter10-Light] \definefontsynonym [LMTypewriter-LightOblique] [LMTypewriter10-LightOblique] \definefontsynonym [LMTypewriter-LightCondensed] [LMTypewriter10-LightCondensed] \definefontsynonym [LMTypewriter-LightCondensedOblique] [LMTypewriter10-LightCondensedOblique] \definefontsynonym [LMTypewriter-Dark] [LMTypewriter10-Dark] \definefontsynonym [LMTypewriter-DarkOblique] [LMTypewriter10-DarkOblique] \definefontsynonym [LMTypewriter-Regular] [LMTypewriter10-Regular] \definefontsynonym [LMTypewriter-Italic] [LMTypewriter10-Italic] \definefontsynonym [LMTypewriter-Oblique] [LMTypewriter10-Oblique] \definefontsynonym [LMTypewriterVarWd-Regular] [LMTypewriterVarWd10-Regular] \definefontsynonym [LMTypewriterVarWd-Oblique] [LMTypewriterVarWd10-Oblique] \definefontsynonym [LMTypewriterVarWd-Light] [LMTypewriterVarWd10-Light] \definefontsynonym [LMTypewriterVarWd-LightOblique] [LMTypewriterVarWd10-LightOblique] \definefontsynonym [LMTypewriterVarWd-Dark] [LMTypewriterVarWd10-Dark] \definefontsynonym [LMTypewriterVarWd-DarkOblique] [LMTypewriterVarWd10-DarkOblique] \stoptypescript \starttypescript [serif] [modern,computer-modern,latin-modern] \definefontsynonym [ComputerModern] [LMRoman-Regular] \definefontsynonym [ComputerModern-Italic] [LMRoman-Italic] \definefontsynonym [ComputerModern-Slanted] [LMRoman-Oblique] \definefontsynonym [ComputerModern-Bold] [LMRoman-Bold] \definefontsynonym [ComputerModern-BoldItalic] [LMRoman-BoldItalic] \definefontsynonym [ComputerModern-BoldSlanted] [LMRoman-BoldOblique] \definefontsynonym [ComputerModern-Caps] [LMRoman-CapsRegular] \definefontsynonym [ComputerModern-CapsSlanted] [LMRoman-CapsOblique] \stoptypescript \starttypescript [sans] [modern,computer-modern,latin-modern] \definefontsynonym [ComputerModernSans] [LMSans-Regular] \definefontsynonym [ComputerModernSans-Italic] [LMSans-Oblique] \definefontsynonym [ComputerModernSans-Slanted] [LMSans-Oblique] \definefontsynonym [ComputerModernSans-Bold] [LMSans-Bold] \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldOblique] \definefontsynonym [ComputerModernSans-BoldSlanted] [LMSans-BoldOblique] \definefontsynonym [ComputerModernSans-Caps] [LMSans-Regular] % [LMSans-CapsRegular] \definefontsynonym [ComputerModernSans-CapsSlanted] [LMSans-Oblique] % [LMSans-CapsOblique] \stoptypescript \starttypescript [mono] [modern,computer-modern,latin-modern] \definefontsynonym [ComputerModernMono] [LMTypewriter-Regular] \definefontsynonym [ComputerModernMono-Italic] [LMTypewriter-Italic] \definefontsynonym [ComputerModernMono-Slanted] [LMTypewriter-Oblique] \definefontsynonym [ComputerModernMono-Bold] [LMTypewriter-Dark] \definefontsynonym [ComputerModernMono-BoldItalic] [LMTypewriter-DarkOblique] % ! \definefontsynonym [ComputerModernMono-BoldSlanted] [LMTypewriter-DarkOblique] \definefontsynonym [ComputerModernMono-Caps] [LMTypewriter-CapsRegular] \definefontsynonym [ComputerModernMono-CapsSlanted] [LMTypewriter-CapsOblique] \definefontsynonym [ComputerModernMono-Variable] [LMTypewriterVarWd-Regular] \stoptypescript \starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] \definefontsynonym [ComputerModernVariable] [LMTypewriterVarWd-Regular] \definefontsynonym [ComputerModernVariable-Italic] [LMTypewriterVarWd-Oblique] \definefontsynonym [ComputerModernVariable-Slanted] [LMTypewriterVarWd-Oblique] \definefontsynonym [ComputerModernVariable-Bold] [LMTypewriterVarWd-Dark] \definefontsynonym [ComputerModernVariable-BoldItalic] [LMTypewriterVarWd-DarkOblique] \definefontsynonym [ComputerModernVariable-BoldSlanted] [LMTypewriterVarWd-DarkOblique] \definefontsynonym [ComputerModernVariable-Caps] [LMTypewriterVarWd-Regular] \definefontsynonym [ComputerModernVariable-CapsSlanted] [LMTypewriterVarWd-Oblique] \stoptypescript \starttypescript [math] [modern,latin-modern] \definefontsynonym [LMMathRoman-Regular] [LMMathRoman10-Regular] \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold] \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic] \definefontsynonym [LMMathSymbols-Italic] [LMMathSymbols10-Italic] \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular] \definefontsynonym [LMMathItalic-Italic] [LMMathItalic10-Italic] \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic] \stoptypescript % can boldmath and bfmath be joined? \starttypescript [boldmath] [modern,computer-modern,latin-modern] [name] \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold] \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular] \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic] \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic] \stoptypescript \starttypescript [bfmath] [modern,computer-modern,latin-modern] [name] \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold] \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular] \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic] \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic] \stoptypescript \starttypescript [serif] [modern,latin-modern,computer-modern] \definefontsynonym [cmr5] [LMRoman5-Regular] \definefontsynonym [cmr6] [LMRoman6-Regular] \definefontsynonym [cmr7] [LMRoman7-Regular] \definefontsynonym [cmr8] [LMRoman8-Regular] \definefontsynonym [cmr9] [LMRoman9-Regular] \definefontsynonym [cmr10] [LMRoman10-Regular] \definefontsynonym [cmr12] [LMRoman12-Regular] \definefontsynonym [cmr17] [LMRoman17-Regular] \definefontsynonym [cmbx5] [LMRoman5-Bold] \definefontsynonym [cmbx6] [LMRoman6-Bold] \definefontsynonym [cmbx7] [LMRoman7-Bold] \definefontsynonym [cmbx8] [LMRoman8-Bold] \definefontsynonym [cmbx9] [LMRoman9-Bold] \definefontsynonym [cmbx10] [LMRoman10-Bold] \definefontsynonym [cmbx12] [LMRoman12-Bold] \definefontsynonym [cmsl10] [LMRoman10-Oblique] \definefontsynonym [cmsl12] [LMRoman12-Oblique] \definefontsynonym [cmsl17] [LMRoman17-Oblique] \definefontsynonym [cmsl8] [LMRoman8-Oblique] \definefontsynonym [cmsl9] [LMRoman9-Oblique] \definefontsynonym [cmti7] [LMRoman7-Italic] \definefontsynonym [cmti8] [LMRoman8-Italic] \definefontsynonym [cmti9] [LMRoman9-Italic] \definefontsynonym [cmti10] [LMRoman10-Italic] \definefontsynonym [cmti12] [LMRoman12-Italic] \definefontsynonym [cmbsl10] [LMRoman10-DemiOblique] \definefontsynonym [cmbxsl10] [LMRoman10-BoldOblique] \definefontsynonym [cmbxti10] [LMRoman10-BoldItalic] \definefontsynonym [cmcsc10] [LMRoman10-CapsRegular] \definefontsynonym [cmcscsl10][LMRoman10-CapsOblique] %definefontsynonym [cmb10] \stoptypescript \starttypescript [sans] [modern,latin-modern,computer-modern] \definefontsynonym [cmss8] [LMSans8-Regular] \definefontsynonym [cmss9] [LMSans9-Regular] \definefontsynonym [cmss10] [LMSans10-Regular] \definefontsynonym [cmss12] [LMSans12-Regular] \definefontsynonym [cmss17] [LMSans17-Regular] \definefontsynonym [cmssi10] [LMSans10-Oblique] \definefontsynonym [cmssi12] [LMSans12-Oblique] \definefontsynonym [cmssi17] [LMSans17-Oblique] \definefontsynonym [cmssi8] [LMSans8-Oblique] \definefontsynonym [cmssi9] [LMSans9-Oblique] \definefontsynonym [cmssq8] [LMSansQuotation8-Regular] \definefontsynonym [cmssqb8] [LMSansQuotation8-Bold] \definefontsynonym [cmssqbi8] [LMSansQuotation8-BoldOblique] \definefontsynonym [cmssqi8] [LMSansQuotation8-Oblique] \definefontsynonym [cmssbx10] [LMSans10-Bold] \definefontsynonym [cmssdc10] [LMSans10-DemiCondensed] \definefontsynonym [cmssbi10] [LMSans10-BoldOblique] \definefontsynonym [cmssdi10] [LMSans10-DemiCondensedOblique] \stoptypescript \starttypescript [mono] [modern,latin-modern,computer-modern] \definefontsynonym [cmtt8] [LMTypewriter8-Regular] \definefontsynonym [cmtt9] [LMTypewriter9-Regular] \definefontsynonym [cmtt10] [LMTypewriter10-Regular] \definefontsynonym [cmtt12] [LMTypewriter12-Regular] \definefontsynonym [cmitt10] [LMTypewriter10-Italic] \definefontsynonym [cmsltt10] [LMTypewriter10-Oblique] \definefontsynonym [cmvtt10] [LMTypewriterVarWd10-Regular] \definefontsynonym [cmvtti10] [LMTypewriterVarWd10-Oblique] \definefontsynonym [cmtcsc10] [LMTypewriter10-CapsRegular] \stoptypescript \starttypescript [math] [modern,latin-modern,computer-modern] \definefontsynonym [cmbsy5] [LMMathSymbols5-BoldItalic] \definefontsynonym [cmbsy7] [LMMathSymbols7-BoldItalic] \definefontsynonym [cmbsy10] [LMMathSymbols10-BoldItalic] \definefontsynonym [cmsy5] [LMMathSymbols5-Italic] \definefontsynonym [cmsy6] [LMMathSymbols6-Italic] \definefontsynonym [cmsy7] [LMMathSymbols7-Italic] \definefontsynonym [cmsy8] [LMMathSymbols8-Italic] \definefontsynonym [cmsy9] [LMMathSymbols9-Italic] \definefontsynonym [cmsy10] [LMMathSymbols10-Italic] \definefontsynonym [cmex10] [LMMathExtension10-Regular] \definefontsynonym [cmmi5] [LMMathItalic5-Italic] \definefontsynonym [cmmi6] [LMMathItalic6-Italic] \definefontsynonym [cmmi7] [LMMathItalic7-Italic] \definefontsynonym [cmmi8] [LMMathItalic8-Italic] \definefontsynonym [cmmi9] [LMMathItalic9-Italic] \definefontsynonym [cmmi10] [LMMathItalic10-Italic] \definefontsynonym [cmmi12] [LMMathItalic12-Italic] \definefontsynonym [cmmib5] [LMMathItalic5-BoldItalic] \definefontsynonym [cmmib7] [LMMathItalic7-BoldItalic] \definefontsynonym [cmmib10] [LMMathItalic10-BoldItalic] \stoptypescript % This will change some day. \starttypescript [math] [modern,computer-modern,latin-modern] [name] \definefontsynonym [OldStyle] [MathItalic] \definefontsynonym [Fraktur] [eufm10] \definefontsynonym [Blackboard] [msbm10] \definefontsynonym [Gothic] [eufm10] \definefontsynonym [Calligraphic] [cmsy10] \stoptypescript \starttypescript [fallback] [texnansi,ec,qx,t5,default] \definetypeface [] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo] \definetypeface [] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo] \definetypeface [] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo] \definetypeface [] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo] \quittypescriptscanning \stoptypescript \starttypescript [modern] [texnansi,ec,qx,t5,default] \definetypeface [modern] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo] \definetypeface [modern] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo] \definetypeface [modern] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo] \definetypeface [modern] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo] \quittypescriptscanning \stoptypescript \starttypescript [modern-base] [texnansi,ec,qx,t5,default] \definetypeface [modern] [rm] [serif] [modern] [default] [encoding=\typescripttwo] \definetypeface [modern] [ss] [sans] [modern] [default] [encoding=\typescripttwo] \definetypeface [modern] [tt] [mono] [modern] [default] [encoding=\typescripttwo] \definetypeface [modern] [mm] [math] [modern] [default] [encoding=\typescripttwo] \quittypescriptscanning \stoptypescript \starttypescript [modern-base] [t2a,t2b,t2c,x2] \definetypeface [modern] [rm] [serif] [computer-modern] [default] [encoding=\typescripttwo] \definetypeface [modern] [ss] [sans] [computer-modern] [default] [encoding=\typescripttwo] \definetypeface [modern] [tt] [mono] [computer-modern] [default] [encoding=\typescripttwo] \definetypeface [modern] [mm] [math] [computer-modern] [default] [encoding=\typescripttwo] \quittypescriptscanning \stoptypescript \starttypescript [modernvariable] [texnansi,ec,qx,8r,t5] \definetypeface [modernvariable] [rm] [serif] [simple] [default] [encoding=\typescripttwo] \definetypeface [modernvariable] [ss] [sans] [modern] [default] [encoding=\typescripttwo] \definetypeface [modernvariable] [tt] [mono] [modern] [default] [encoding=\typescripttwo] \definetypeface [modernvariable] [mm] [math] [modern] [default] \quittypescriptscanning \stoptypescript \starttypescript [serif] [simple] [name] % bad, will be changed but in sycn with manuals that use it \definefontsynonym [Simple] [cmvtt10] \setupfontsynonym [Simple] [handling=pure] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[concrete] \starttypescript [serif] [concrete] [name] \definefontsynonym [Serif] [ComputerConcrete] \definefontsynonym [SerifBold] [ComputerConcrete] \definefontsynonym [SerifItalic] [ComputerConcrete-Italic] \definefontsynonym [SerifSlanted] [ComputerConcrete-Slanted] \definefontsynonym [SerifBoldItalic] [ComputerConcrete-Italic] \definefontsynonym [SerifBoldSlanted] [ComputerConcrete-Slanted] \definefontsynonym [SerifCaps] [ComputerConcrete-Caps] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[euler] \starttypescript [math] [euler] [default] \definefontsynonym [Euler-Roman] [zeurm10] \definefontsynonym [Euler-Extension] [zeuex10] \definefontsynonym [Euler-Symbol] [zeusm10] \definefontsynonym [Euler-Fraktur] [eufm10] \usemathcollection[eul] \loadmapfile[original-ams-euler.map] \stoptypescript \starttypescript [boldmath,bfmath] [euler] [default] \definefontsynonym [Euler-Roman-Bold] [zeurb10] \definefontsynonym [Euler-Extension] [zeuex10] \definefontsynonym [Euler-Symbol-Bold] [zeusb10] \definefontsynonym [Euler-Fraktur-Bold] [eufb10] \usemathcollection[eul] \loadmapfile[original-ams-euler.map] \stoptypescript \starttypescript [math] [euler] [name] \definefontsynonym [MathRoman] [Euler-Roman] % mr \definefontsynonym [MathItalic] [Euler-Fraktur] % mi \definefontsynonym [MathExtension] [Euler-Extension] % ex \definefontsynonym [MathSymbol] [Euler-Symbol] % sy \stoptypescript \starttypescript [boldmath] [euler] [name] \definefontsynonym [MathRoman] [Euler-Roman-Bold] % mr \definefontsynonym [MathItalic] [Euler-Fraktur-Bold] % mi \definefontsynonym [MathExtension] [Euler-Extension] % ex \definefontsynonym [MathSymbol] [Euler-Symbol-Bold] % sy \stoptypescript \starttypescript [bfmath] [euler] [name] \definefontsynonym [MathRomanBold] [Euler-Roman-Bold] % mr \definefontsynonym [MathItalicBold] [Euler-Fraktur-Bold] % mi \definefontsynonym [MathExtension] [Euler-Extension] % ex \definefontsynonym [MathSymbolBold] [Euler-Symbol-Bold] % sy \stoptypescript \starttypescript [math] [euler] [name] \definefontsynonym [OldStyle] [MathItalic] \definefontsynonym [Fraktur] [MathItalic] \definefontsynonym [Gothic] [MathItalic] \definefontsynonym [Calligraphic] [MathSymbol] \stoptypescript \starttypescript [boldmath] [euler] [name] \definefontsynonym [OldStyle] [MathItalicBold] \definefontsynonym [Fraktur] [MathItalicBold] \definefontsynonym [Gothic] [MathItalicBold] \definefontsynonym [Calligraphic] [MathSymbolBold] \stoptypescript \starttypescript [math,boldmath,bfmath] [euler] [name] \usemathcollection[eul] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[amssymbols] \starttypescript [math] [modern,computer-modern,latin-modern,ams] [default] \definefontsynonym [AMS-SymbolA] [msam10] \definefontsynonym [AMS-SymbolB] [msbm10] \usemathcollection[default] \stoptypescript \starttypescript [math] [modern,computer-modern,latin-modern,ams] [name] \definefontsynonym [MathAlpha] [AMS-SymbolA] \definefontsynonym [MathBeta] [AMS-SymbolB] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[utopia] \starttypescript [math] [fourier] [default,ec] \definefontsynonym [Fourier-Math-Letters] [futr8t] [encoding=ec] %definefontsynonym [Fourier-Math-Letters] [futmi] \definefontsynonym [Fourier-Math-Letters-Italic] [futmii] \definefontsynonym [Fourier-Math-Symbols] [futsy] \definefontsynonym [Fourier-Math-Extension] [fourier-mex] \usemathcollection[fou] \loadmapfile[fourier.map] \stoptypescript \starttypescript [serif] [utopia] [name] \definefontsynonym [Serif] [Utopia-Regular] \definefontsynonym [SerifItalic] [Utopia-Italic] \definefontsynonym [SerifBold] [Utopia-Bold] \definefontsynonym [SerifBoldItalic] [Utopia-BoldItalic] \definefontsynonym [SerifSlanted] [Utopia-Slanted] \definefontsynonym [SerifBoldSlanted] [Utopia-BoldSlanted] \definefontsynonym [SerifCaps] [Utopia-Regular-Caps] \stoptypescript \starttypescript [serif] [fourier] [ec] \definefontsynonym [Fourier-Regular] [futr8t] [encoding=ec] \definefontsynonym [Fourier-Slanted] [futro8t] [encoding=ec] \definefontsynonym [Fourier-Italic] [futri8t] [encoding=ec] \definefontsynonym [Fourier-RegularCaps] [futrc8t] [encoding=ec] \definefontsynonym [Fourier-Bold] [futb8t] [encoding=ec] \definefontsynonym [Fourier-BoldSlanted] [futbo8t] [encoding=ec] \definefontsynonym [Fourier-BoldItalic] [futbi8t] [encoding=ec] \definefontsynonym [Fourier-BoldCaps] [futbc8t] [encoding=ec] \definefontsynonym [Fourier-Regular-Expert] [futr9e] [encoding=ec] \definefontsynonym [Fourier-Slanted-Expert] [futro9e] [encoding=ec] \definefontsynonym [Fourier-Italic-Expert] [futri9e] [encoding=ec] \definefontsynonym [Fourier-RegularCaps-Expert] [futrc9e] [encoding=ec] \definefontsynonym [Fourier-Semi-Expert] [futs9e] [encoding=ec] \definefontsynonym [Fourier-SemiSlanted-Expert] [futso9e] [encoding=ec] \definefontsynonym [Fourier-SemiItalic-Expert] [futsi9e] [encoding=ec] \definefontsynonym [Fourier-SemiCaps-Expert] [futsc9e] [encoding=ec] \definefontsynonym [Fourier-Bold-Expert] [futb9e] [encoding=ec] \definefontsynonym [Fourier-BoldSlanted-Expert] [futbo9e] [encoding=ec] \definefontsynonym [Fourier-BoldItalic-Expert] [futbi9e] [encoding=ec] \definefontsynonym [Fourier-Black-Expert] [futc9e] [encoding=ec] \definefontsynonym [Fourier-Regular-OldStyle] [futr9d] [encoding=ec] \definefontsynonym [Fourier-Slanted-OldStyle] [futro9d] [encoding=ec] \definefontsynonym [Fourier-Italic-OldStyle] [futri9d] [encoding=ec] \definefontsynonym [Fourier-RegularCaps-OldStyle] [futrc9d] [encoding=ec] \definefontsynonym [Fourier-Semi-OldStyle] [futs9d] [encoding=ec] \definefontsynonym [Fourier-SemiSlanted-OldStyle] [futso9d] [encoding=ec] \definefontsynonym [Fourier-SemiItalic-OldStyle] [futsi9d] [encoding=ec] \definefontsynonym [Fourier-SemiCaps-OldStyle] [futsc9d] [encoding=ec] \definefontsynonym [Fourier-Bold-OldStyle] [futb9d] [encoding=ec] \definefontsynonym [Fourier-BoldSlanted-OldStyle] [futbo9d] [encoding=ec] \definefontsynonym [Fourier-BoldItalic-OldStyle] [futbi9d] [encoding=ec] \definefontsynonym [Fourier-Black-OldStyle] [futc9d] [encoding=ec] \loadmapfile[fourier.map] \loadmapfile[fourier-utopia-expert.map] \stoptypescript \starttypescript [serif] [fourier] [name] \definefontsynonym [Serif] [Fourier-Regular] \definefontsynonym [SerifSlanted] [Fourier-Slanted] \definefontsynonym [SerifItalic] [Fourier-Italic] \definefontsynonym [SerifCaps] [Fourier-RegularCaps] \definefontsynonym [SerifBold] [Fourier-Bold] \definefontsynonym [SerifBoldSlanted] [Fourier-BoldSlanted] \definefontsynonym [SerifBoldItalic] [Fourier-BoldItalic] \definefontsynonym [SerifBoldCaps] [Fourier-BoldCaps] \definefontsynonym [Serif-Expert] [Fourier-Regular-Expert] \definefontsynonym [SerifSlanted-Expert] [Fourier-Slanted-Expert] \definefontsynonym [SerifItalic-Expert] [Fourier-Italic-Expert] \definefontsynonym [SerifCaps-Expert] [Fourier-RegularCaps-Expert] \definefontsynonym [SerifSemiBold-Expert] [Fourier-Semi-Expert] \definefontsynonym [SerifSemiSlanted-Expert] [Fourier-SemiSlanted-Expert] \definefontsynonym [SerifSemiItalic-Expert] [Fourier-SemiItalic-Expert] \definefontsynonym [SerifSemiCaps-Expert] [Fourier-SemiCaps-Expert] \definefontsynonym [SerifBold-Expert] [Fourier-Bold-Expert] \definefontsynonym [SerifBoldSlanted-Expert] [Fourier-BoldSlanted-Expert] \definefontsynonym [SerifBoldItalic-Expert] [Fourier-BoldItalic-Expert] \definefontsynonym [SerifBlack-Expert] [Fourier-Black-Expert] \definefontsynonym [Serif-OldStyle] [Fourier-Regular-OldStyle] \definefontsynonym [SerifSlanted-OldStyle] [Fourier-Slanted-OldStyle] \definefontsynonym [SerifItalic-OldStyle] [Fourier-Italic-OldStyle] \definefontsynonym [SerifCaps-OldStyle] [Fourier-RegularCaps-OldStyle] \definefontsynonym [SerifSemiBold-OldStyle] [Fourier-Semi-OldStyle] \definefontsynonym [SerifSemiSlanted-OldStyle] [Fourier-SemiSlanted-OldStyle] \definefontsynonym [SerifSemiItalic-OldStyle] [Fourier-SemiItalic-OldStyle] \definefontsynonym [SerifSemiCaps-OldStyle] [Fourier-SemiCaps-OldStyle] \definefontsynonym [SerifBold-OldStyle] [Fourier-Bold-OldStyle] \definefontsynonym [SerifBoldSlanted-OldStyle] [Fourier-BoldSlanted-OldStyle] \definefontsynonym [SerifBoldItalic-OldStyle] [Fourier-BoldItalic-OldStyle] \definefontsynonym [SerifBlack-OldStyle] [Fourier-Black-OldStyle] \definefontsynonym [SerifBlackSlanted-OldStyle] [Fourier-BlackSlanted-OldStyle] \stoptypescript \starttypescript [math] [fourier] [name] \definefontsynonym [MathRoman] [Fourier-Math-Letters] \definefontsynonym [MathItalic] [Fourier-Math-Letters-Italic] \definefontsynonym [MathSymbol] [Fourier-Math-Symbols] \definefontsynonym [MathExtension] [Fourier-Math-Extension] \stoptypescript \starttypescript [math] [fourier] [name] % todo \definefontsynonym [OldStyle] [Serif-OldStyle] % strange, no oldstyles \definefontsynonym [Fraktur] [eufm10] \definefontsynonym [Blackboard] [msbm10] \definefontsynonym [Gothic] [eufm10] \definefontsynonym [Calligraphic] [eusm10] \stoptypescript \starttypescript [serif] [utopia] [ec,texnansi] \definefontsynonym [Utopia-Regular] [\typescriptthree-putr8a] [encoding=\typescriptthree] \definefontsynonym [Utopia-Italic] [\typescriptthree-putri8a] [encoding=\typescriptthree] \definefontsynonym [Utopia-Bold] [\typescriptthree-putb8a] [encoding=\typescriptthree] \definefontsynonym [Utopia-BoldItalic] [\typescriptthree-putbi8a] [encoding=\typescriptthree] \definefontsynonym [Utopia-Slanted] [\typescriptthree-putr8a-slanted-167] [encoding=\typescriptthree] \definefontsynonym [Utopia-BoldSlanted] [\typescriptthree-putb8a-slanted-167] [encoding=\typescriptthree] \definefontsynonym [Utopia-Regular-Caps][\typescriptthree-putr8a-capitalized-800] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-adobe-utopia.map] \stoptypescript \starttypescript [fourier] [ec] \definetypeface [fourier] [rm] [serif] [fourier] [default] [encoding=ec] \definetypeface [fourier] [ss] [sans] [modern] [default] [encoding=ec,rscale=1.07] \definetypeface [fourier] [tt] [mono] [modern] [default] [encoding=ec,rscale=1.07] \definetypeface [fourier] [mm] [math] [fourier] [default] [encoding=default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \starttypescriptcollection[antykwa] % Antykwa Torunska (GUST) % \starttypescript [serif] [antykwa-torunska] [texnansi,ec,8r] % \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree] % \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree] % \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree] % \stoptypescript \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec,t2a,t2b,t2c,greek] \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-BoldItalic] [\typescriptthree-anttbi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-Light] [\typescriptthree-anttl] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-LightItalic] [\typescriptthree-anttli] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-Medium] [\typescriptthree-anttm] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-MedItalic] [\typescriptthree-anttmi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondRegular] [\typescriptthree-anttcr] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondItalic] [\typescriptthree-anttcri] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondBold] [\typescriptthree-anttcb] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondBoldItalic] [\typescriptthree-anttcbi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondLight] [\typescriptthree-anttcl] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondLightItalic][\typescriptthree-anttcli] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondMedium] [\typescriptthree-anttcm] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondMedItalic] [\typescriptthree-anttcmi] [encoding=\typescriptthree] \loadmapfile[antt-\typescriptthree.map] \stoptypescript \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec] \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttrcap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttricap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttbcap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbicap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttlcap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttlicap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttmcap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmicap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcrcap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcricap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcbcap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbicap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttclcap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttclicap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcmcap] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmicap] [encoding=\typescriptthree] \loadmapfile[antt-\typescriptthree.map] \stoptypescript % duplicates ? ? % atl: no: fallbacks for the named variants \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c,greek] \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree] \loadmapfile[antt-\typescriptthree.map] \stoptypescript \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c] \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree] \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree] \loadmapfile[antt-\typescriptthree.map] \stoptypescript % mabye no -Regular etc % dunny reverse of condlight lightcond \starttypescript [math] [antykwa-torunska] [default] \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr] \definefontsynonym [AntykwaTorunska-Math-Letters-Italic] [mi-anttri] \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz] \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr] \stoptypescript \starttypescript [math] [antykwa-torunska-light] [default] \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl] \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli] \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz] \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl] \stoptypescript \starttypescript [math] [antykwa-torunska-cond] [default] \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr] \definefontsynonym [AntykwaTorunska-Math-Letters-CondItalic] [mi-anttcri] \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz] \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr] \stoptypescript \starttypescript [math] [antykwa-torunska-lightcond] [default] \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl] \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli] \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz] \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl] \stoptypescript \starttypescript [math] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [default] \usemathcollection[default] \loadmapfile[antt-rm.map] \loadmapfile[antt-mi.map] \loadmapfile[antt-sy.map] \loadmapfile[antt-ex.map] \stoptypescript \starttypescript [serif] [antykwa-torunska] [name] \definefontsynonym [Serif] [AntykwaTorunska-Regular] \definefontsynonym [SerifBold] [AntykwaTorunska-Bold] \definefontsynonym [SerifItalic] [AntykwaTorunska-Italic] \definefontsynonym [SerifSlanted] [AntykwaTorunska-Italic] \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-BoldItalic] \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-BoldItalic] \definefontsynonym [SerifCaps] [AntykwaTorunska-Cap] \stoptypescript \starttypescript [serif] [antykwa-torunska-light] [name] \definefontsynonym [Serif] [AntykwaTorunska-Light] \definefontsynonym [SerifBold] [AntykwaTorunska-Medium] \definefontsynonym [SerifItalic] [AntykwaTorunska-LightItalic] \definefontsynonym [SerifSlanted] [AntykwaTorunska-LightItalic] \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-MedItalic] \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-MedItalic] \definefontsynonym [SerifCaps] [AntykwaTorunska-LightCap] \stoptypescript \starttypescript [serif] [antykwa-torunska-cond] [name] \definefontsynonym [Serif] [AntykwaTorunska-CondRegular] \definefontsynonym [SerifBold] [AntykwaTorunska-CondBold] \definefontsynonym [SerifItalic] [AntykwaTorunska-CondItalic] \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondItalic] \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondBoldItalic] \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondBoldItalic] \definefontsynonym [SerifCaps] [AntykwaTorunska-CondCap] \stoptypescript \starttypescript [serif] [antykwa-torunska-lightcond] [name] \definefontsynonym [Serif] [AntykwaTorunska-CondLight] \definefontsynonym [SerifBold] [AntykwaTorunska-CondMedium] \definefontsynonym [SerifItalic] [AntykwaTorunska-CondLightItalic] \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondLightItalic] \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondMedItalic] \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondMedItalic] \definefontsynonym [SerifCaps] [AntykwaTorunska-CondLightCap] \stoptypescript \starttypescript [serif] [antykwa-torunska] [name] \definefontsynonym [SerifRegular] [Serif] \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-Cap] \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-BoldCap] \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-ItalicCap] \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-ItalicCap] \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-BoldItalicCap] \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-BoldItalicCap] \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-Cap] \definefontvariant [Serif][osf][Caps] \definefontvariant [Serif][sc] [Caps] \definefontsynonym [SerifRegularLight] [AntykwaTorunska-Light] \definefontsynonym [SerifBoldLight] [AntykwaTorunska-Medium] \definefontsynonym [SerifItalicLight] [AntykwaTorunska-LightItalic] \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-LightItalic] \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-MedItalic] \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-MedItalic] \definefontsynonym [SerifCapsLight] [AntykwaTorunska-LightCap] \definefontvariant [Serif][lt][Light] \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondRegular] \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondBold] \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondItalic] \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondItalic] \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondBoldItalic] \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondBoldItalic] \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondCap] \definefontvariant [Serif][cond][Cond] \stoptypescript \starttypescript [serif] [antykwa-torunska-light] [name] \definefontsynonym [SerifRegular] [Serif] \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-LightCap] \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-MediumCap] \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-LightItalicCap] \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-LightItalicCap] \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-MedItalicCap] \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-MedItalicCap] \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-LightCap] \definefontvariant [Serif][osf][Caps] \definefontvariant [Serif][sc] [Caps] \definefontsynonym [SerifRegularDark] [AntykwaTorunska-Regular] \definefontsynonym [SerifBoldDark] [AntykwaTorunska-Bold] \definefontsynonym [SerifItalicDark] [AntykwaTorunska-Italic] \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-Italic] \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-BoldItalic] \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-BoldItalic] \definefontsynonym [SerifCapsDark] [AntykwaTorunska-Cap] \definefontvariant [Serif][dk][Dark] \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondLight] \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondMedium] \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondLightItalic] \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondLightItalic] \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondMedItalic] \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondMedItalic] \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondLightCap] \definefontvariant [Serif][cond][Cond] \stoptypescript \starttypescript [serif] [antykwa-torunska-cond] [name] \definefontsynonym [SerifRegular] [Serif] \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondCap] \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondBoldCap] \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondItalicCap] \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondItalicCap] \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondBoldItalicCap] \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondBoldItalicCap] \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondCap] \definefontvariant [Serif][osf][Caps] \definefontvariant [Serif][sc] [Caps] \definefontsynonym [SerifRegularLight] [AntykwaTorunska-CondLight] \definefontsynonym [SerifBoldLight] [AntykwaTorunska-CondMedium] \definefontsynonym [SerifItalicLight] [AntykwaTorunska-CondLightItalic] \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-CondLightItalic] \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-CondMedItalic] \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-CondMedItalic] \definefontsynonym [SerifCapsLight] [AntykwaTorunska-CondLightCap] \definefontvariant [Serif][lt][Light] \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Regular] \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Bold] \definefontsynonym [SerifItalicExp] [AntykwaTorunska-Italic] \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-Italic] \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-BoldItalic] \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-BoldItalic] \definefontsynonym [SerifCapsExp] [AntykwaTorunska-Cap] \definefontvariant [Serif][exp][Exp] \stoptypescript \starttypescript [serif] [antykwa-torunska-lightcond] [name] \definefontsynonym [SerifRegular] [Serif] \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondLightCap] \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondMediumCap] \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondLightItalicCap] \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondLightItalicCap] \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondMedItalicCap] \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondMedItalicCap] \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondLightCap] \definefontvariant [Serif][osf][Caps] \definefontvariant [Serif][sc] [Caps] \definefontsynonym [SerifRegularDark] [AntykwaTorunska-CondRegular] \definefontsynonym [SerifBoldDark] [AntykwaTorunska-CondBold] \definefontsynonym [SerifItalicDark] [AntykwaTorunska-CondItalic] \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-CondItalic] \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-CondBoldItalic] \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-CondBoldItalic] \definefontsynonym [SerifCapsDark] [AntykwaTorunska-CondCap] \definefontvariant [Serif][dk][Dark] \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Light] \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Medium] \definefontsynonym [SerifItalicExp] [AntykwaTorunska-LightItalic] \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-LightItalic] \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-MedItalic] \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-MedItalic] \definefontsynonym [SerifCapsExp] [AntykwaTorunska-LightCap] \definefontvariant [Serif][exp][Exp] \stoptypescript % maybe no -Regular etc \starttypescript [math] [antykwa-torunska-light] [name] \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Light] \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-LightItalic] \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Light] \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Light] \stoptypescript \starttypescript [math] [antykwa-torunska] [name] \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Regular] \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-Italic] \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Regular] \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Regular] \stoptypescript \starttypescript [math] [antykwa-torunska-cond] [name] \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondRegular] \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondItalic] \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondRegular] \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondRegular] \stoptypescript \starttypescript [math] [antykwa-torunska-lightcond] [name] \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondLight] \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondLightItalic] \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondLight] \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondLight] \stoptypescript \starttypescript [antykwa-torunska] [texnansi,ec,8r,uc,t5,t2a] \definetypeface[antykwa][rm][serif][antykwa-torunska] [default][encoding=\typescripttwo] \definetypeface[antykwa][ss][sans] [modern] [default][encoding=\typescripttwo,rscale=1.05] \definetypeface[antykwa][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1] \definetypeface[antykwa][mm][math] [antykwa-torunska] [default][encoding=\typescripttwo] \quittypescriptscanning \stoptypescript % Antykwa Poltawskiego (GUST) \starttypescript [serif] [antykwa-poltawskiego,antykwa-poltawskiego-light] [ec,texnansi,qx,t5] \definefontsynonym [AntykwaPoltawskiego-Condensed-Light] [\typescriptthree-antpl17] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-LightItalic] [\typescriptthree-antpli17] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-Regular] [\typescriptthree-antpr17] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-Italic] [\typescriptthree-antpri17] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-Medium] [\typescriptthree-antpm17] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-MediumItalic] [\typescriptthree-antpmi17] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-Bold] [\typescriptthree-antpb17] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-BoldItalic] [\typescriptthree-antpbi17] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLight] [\typescriptthree-antpl17-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLightItalic] [\typescriptthree-antpli17-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsRegular] [\typescriptthree-antpr17-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsItalic] [\typescriptthree-antpri17-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMedium] [\typescriptthree-antpm17-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMediumItalic] [\typescriptthree-antpmi17-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBold] [\typescriptthree-antpb17-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBoldItalic] [\typescriptthree-antpbi17-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\typescriptthree-antpl12] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\typescriptthree-antpli12] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\typescriptthree-antpr12] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\typescriptthree-antpri12] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Medium] [\typescriptthree-antpm12] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-MediumItalic] [\typescriptthree-antpmi12] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Bold] [\typescriptthree-antpb12] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-BoldItalic] [\typescriptthree-antpbi12] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\typescriptthree-antpl12-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\typescriptthree-antpli12-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\typescriptthree-antpr12-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\typescriptthree-antpri12-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMedium] [\typescriptthree-antpm12-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMediumItalic] [\typescriptthree-antpmi12-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBold] [\typescriptthree-antpb12-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBoldItalic] [\typescriptthree-antpbi12-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Light] [\typescriptthree-antpl10] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-LightItalic] [\typescriptthree-antpli10] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Regular] [\typescriptthree-antpr10] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Italic] [\typescriptthree-antpri10] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Medium] [\typescriptthree-antpm10] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-MediumItalic] [\typescriptthree-antpmi10] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Bold] [\typescriptthree-antpb10] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\typescriptthree-antpbi10] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-CapsLight] [\typescriptthree-antpl10-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-CapsLightItalic] [\typescriptthree-antpli10-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-CapsRegular] [\typescriptthree-antpr10-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-CapsItalic] [\typescriptthree-antpri10-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-CapsMedium] [\typescriptthree-antpm10-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-CapsMediumItalic] [\typescriptthree-antpmi10-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-CapsBold] [\typescriptthree-antpb10-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-CapsBoldItalic] [\typescriptthree-antpbi10-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Light] [\typescriptthree-antpl8] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-LightItalic] [\typescriptthree-antpli8] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Regular] [\typescriptthree-antpr8] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Italic] [\typescriptthree-antpri8] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Medium] [\typescriptthree-antpm8] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-MediumItalic] [\typescriptthree-antpmi8] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Bold] [\typescriptthree-antpb8] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-BoldItalic] [\typescriptthree-antpbi8] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsLight] [\typescriptthree-antpl8-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsLightItalic] [\typescriptthree-antpli8-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsRegular] [\typescriptthree-antpr8-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsItalic] [\typescriptthree-antpri8-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsMedium] [\typescriptthree-antpm8-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsMediumItalic] [\typescriptthree-antpmi8-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsBold] [\typescriptthree-antpb8-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsBoldItalic] [\typescriptthree-antpbi8-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-Light] [\typescriptthree-antpl6] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-LightItalic] [\typescriptthree-antpli6] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-Regular] [\typescriptthree-antpr6] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-Italic] [\typescriptthree-antpri6] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-Medium] [\typescriptthree-antpm6] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-MediumItalic] [\typescriptthree-antpmi6] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-Bold] [\typescriptthree-antpb6] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-BoldItalic] [\typescriptthree-antpbi6] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsLight] [\typescriptthree-antpl6-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsLightItalic] [\typescriptthree-antpli6-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsRegular] [\typescriptthree-antpr6-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsItalic] [\typescriptthree-antpri6-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsMedium] [\typescriptthree-antpm6-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsMediumItalic] [\typescriptthree-antpmi6-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsBold] [\typescriptthree-antpb6-sc] [encoding=\typescriptthree] \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsBoldItalic] [\typescriptthree-antpbi6-sc] [encoding=\typescriptthree] % \loadmapfile[poltawski-\typescriptthree.map] \loadmapfile[ap-\typescriptthree.map] \stoptypescript \starttypescript [serif] [antykwa-poltawskiego] [name] \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular] \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold] \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic] \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic] \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-BoldItalic] \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-BoldItalic] \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsRegular] \stoptypescript \starttypescript [serif] [antykwa-poltawskiego-light] [name] \definefontsynonym [Serif] [AntykwaPoltawskiego-Light] \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Medium] \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-LightItalic] \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-LightItalic] \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-MediumItalic] \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-MediumItalic] \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsLight] \stoptypescript % condensed and extended variants are still missing \starttypescript [antykwa-poltawskiego,antykwa-poltawskiego-light] [ec,texnansi,qx,t5] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling? \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling? \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling? \quittypescriptscanning \stoptypescript \stoptypescriptcollection \starttypescriptcollection[iwona] % maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic \starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond] [texnansi,ec,el,qx,t5] \definefontsynonym[Iwona-Regular] [\typescriptthree-iwonar] [encoding=\typescriptthree] \definefontsynonym[Iwona-Italic] [\typescriptthree-iwonari] [encoding=\typescriptthree] \definefontsynonym[Iwona-Bold] [\typescriptthree-iwonab] [encoding=\typescriptthree] \definefontsynonym[Iwona-BoldItalic] [\typescriptthree-iwonabi] [encoding=\typescriptthree] \definefontsynonym[Iwona-Light-Regular] [\typescriptthree-iwonal] [encoding=\typescriptthree] \definefontsynonym[Iwona-Light-Italic] [\typescriptthree-iwonali] [encoding=\typescriptthree] \definefontsynonym[Iwona-Medium-Regular] [\typescriptthree-iwonam] [encoding=\typescriptthree] \definefontsynonym[Iwona-Medium-Italic] [\typescriptthree-iwonami] [encoding=\typescriptthree] \definefontsynonym[Iwona-Heavy-Regular] [\typescriptthree-iwonah] [encoding=\typescriptthree] \definefontsynonym[Iwona-Heavy-Italic] [\typescriptthree-iwonahi] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsRegular] [\typescriptthree-iwonar-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsItalic] [\typescriptthree-iwonari-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsBold] [\typescriptthree-iwonab-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsBoldItalic] [\typescriptthree-iwonabi-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsLight-Regular] [\typescriptthree-iwonal-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsLight-Italic] [\typescriptthree-iwonali-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsMedium-Regular] [\typescriptthree-iwonam-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsMedium-Italic] [\typescriptthree-iwonami-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsHeavy-Regular] [\typescriptthree-iwonah-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsHeavy-Italic] [\typescriptthree-iwonahi-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondRegular] [\typescriptthree-iwonacr] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondItalic] [\typescriptthree-iwonacri] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondBold] [\typescriptthree-iwonacb] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondBoldItalic] [\typescriptthree-iwonacbi] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondLight-Regular] [\typescriptthree-iwonacl] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondLight-Italic] [\typescriptthree-iwonacli] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondMedium-Regular] [\typescriptthree-iwonacm] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondMedium-Italic] [\typescriptthree-iwonacmi] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondHeavy-Regular] [\typescriptthree-iwonach] [encoding=\typescriptthree] \definefontsynonym[Iwona-CondHeavy-Italic] [\typescriptthree-iwonachi] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondRegular] [\typescriptthree-iwonacr-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondItalic] [\typescriptthree-iwonacri-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondBold] [\typescriptthree-iwonacb-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondBoldItalic] [\typescriptthree-iwonacbi-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondLight-Regular] [\typescriptthree-iwonacl-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondLight-Italic] [\typescriptthree-iwonacli-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondMedium-Regular][\typescriptthree-iwonacm-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondMedium-Italic] [\typescriptthree-iwonacmi-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondHeavy-Regular] [\typescriptthree-iwonach-sc] [encoding=\typescriptthree] \definefontsynonym[Iwona-CapsCondHeavy-Italic] [\typescriptthree-iwonachi-sc] [encoding=\typescriptthree] \loadmapfile[iwona-\typescriptthree.map] \stoptypescript \starttypescript [math] [iwona] [default] \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar] \definefontsynonym [Iwona-Math-Letters-Italic] [mi-iwonari] \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonarz] \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar] \stoptypescript \starttypescript [math] [iwona-light] [default] \definefontsynonym [Iwona-Math-Letters-Light-Regular] [rm-iwonal] \definefontsynonym [Iwona-Math-Letters-Light-Italic] [mi-iwonali] \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonalz] \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal] \stoptypescript \starttypescript [math] [iwona-medium] [default] \definefontsynonym [Iwona-Math-Letters-Medium-Regular][rm-iwonam] \definefontsynonym [Iwona-Math-Letters-Medium-Italic] [mi-iwonami] \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonamz] \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam] \stoptypescript \starttypescript [math] [iwona-heavy] [default] \definefontsynonym [Iwona-Math-Letters-Heavy-Regular] [rm-iwonah] \definefontsynonym [Iwona-Math-Letters-Heavy-Italic] [mi-iwonahi] \definefontsynonym [Iwona-Math-Symbols-Heavy] [sy-iwonahz] \definefontsynonym [Iwona-Math-Extension-Heavy] [ex-iwonah] \stoptypescript \starttypescript [math] [iwona,iwona-light,iwona-medium,iwona-heavy] [default] \usemathcollection[default] \loadmapfile[iwona-rm.map] \loadmapfile[iwona-mi.map] \loadmapfile[iwona-sy.map] \loadmapfile[iwona-ex.map] \stoptypescript \starttypescript [sans] [iwona-light] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-Light-Regular] \definefontsynonym [SansItalic] [Iwona-Light-Italic] \definefontsynonym [SansBold] [Iwona-Medium-Regular] \definefontsynonym [SansBoldItalic] [Iwona-Medium-Italic] \definefontsynonym [SansCaps] [Iwona-CapsLight] \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic] \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium] \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic] \stoptypescript \starttypescript [sans] [iwona-light-caps] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CapsLight-Regular] \definefontsynonym [SansItalic] [Iwona-CapsLight-Italic] \definefontsynonym [SansBold] [Iwona-CapsMedium-Regular] \definefontsynonym [SansBoldItalic] [Iwona-CapsMedium-Italic] \stoptypescript \starttypescript [sans] [iwona] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-Regular] \definefontsynonym [SansItalic] [Iwona-Italic] \definefontsynonym [SansBold] [Iwona-Bold] \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic] \definefontsynonym [SansCaps] [Iwona-CapsRegular] \definefontsynonym [SansItalicCaps] [Iwona-CapsItalic] \definefontsynonym [SansBoldCaps] [Iwona-CapsBold] \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic] \stoptypescript \starttypescript [sans] [iwona-caps] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CapsRegular] \definefontsynonym [SansItalic] [Iwona-CapsItalic] \definefontsynonym [SansBold] [Iwona-CapsBold] \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic] \stoptypescript \starttypescript [sans] [iwona-medium] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-Medium-Regular] \definefontsynonym [SansItalic] [Iwona-Medium-Italic] \definefontsynonym [SansBold] [Iwona-Heavy-Regular] \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic] \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular] \definefontsynonym [SansItalicCaps] [Iwona-CapsMedium-Italic] \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular] \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic] \stoptypescript \starttypescript [sans] [iwona-medium-caps] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CapsHeavy-Regular] \definefontsynonym [SansItalic] [Iwona-CapsMedium-Italic] \definefontsynonym [SansBold] [Iwona-CapsHeavy-Regular] \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavy-Italic] \stoptypescript \starttypescript [sans] [iwona-heavy] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-Heavy-Regular] \definefontsynonym [SansItalic] [Iwona-Heavy-Italic] \definefontsynonym [SansBold] [Iwona-Heavy-Regular] \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic] \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular] \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic] \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular] \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic] \stoptypescript \starttypescript [sans] [iwona-heavy-caps] [name] \setups[font:fallback:sans] \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular] \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic] \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular] \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic] \stoptypescript \starttypescript [sans] [iwona-light-cond] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CondLight-Regular] \definefontsynonym [SansItalic] [Iwona-CondLight-Italic] \definefontsynonym [SansBold] [Iwona-CondMedium-Regular] \definefontsynonym [SansBoldItalic] [Iwona-CondMedium-Italic] \definefontsynonym [SansCaps] [Iwona-CapsCondLight-Regular] \definefontsynonym [SansItalicCaps] [Iwona-CapsCondLight-Italic] \definefontsynonym [SansBoldCaps] [Iwona-CapsCondMedium-Regular] \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondMedium-Italic] \stoptypescript \starttypescript [sans] [iwona-light-cond-caps,iwona-light-caps-cond] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CapsCondLight-Regular] \definefontsynonym [SansItalic] [Iwona-CapsCondLight-Italic] \definefontsynonym [SansBold] [Iwona-CapsCondMedium-Regular] \definefontsynonym [SansBoldItalic] [Iwona-CapsCondMedium-Italic] \stoptypescript \starttypescript [sans] [iwona-cond] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CondRegular] \definefontsynonym [SansItalic] [Iwona-CondItalic] \definefontsynonym [SansBold] [Iwona-CondBold] \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic] \definefontsynonym [SansCaps] [Iwona-CapsCondRegular] \definefontsynonym [SansItalicCaps] [Iwona-CapsCondItalic] \definefontsynonym [SansBoldCaps] [Iwona-CapsCondBold] \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondBoldItalic] \stoptypescript \starttypescript [sans] [iwona-cond-caps,iwona-caps-cond] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CapsCondRegular] \definefontsynonym [SansItalic] [Iwona-CapsCondItalic] \definefontsynonym [SansBold] [Iwona-CapsCondBold] \definefontsynonym [SansBoldItalic] [Iwona-CapsCondBoldItalic] \stoptypescript \starttypescript [sans] [iwona-medium-cond] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CondMedium-Regular] \definefontsynonym [SansItalic] [Iwona-CondMedium-Italic] \definefontsynonym [SansBold] [Iwona-CondHeavy-Regular] \definefontsynonym [SansBoldItalic] [Iwona-CondHeavy-Italic] \definefontsynonym [SansCaps] [Iwona-CapsCondHeavy-Regular] \definefontsynonym [SansItalicCaps] [Iwona-CapsCondMedium-Italic] \definefontsynonym [SansBoldCaps] [Iwona-CapsCondHeavy-Regular] \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondHeavy-Italic] \stoptypescript \starttypescript [sans] [iwona-medium-cond-caps,iwona-medium-caps-cond] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Iwona-CapsCondHeavy-Regular] \definefontsynonym [SansItalic] [Iwona-CapsCondMedium-Italic] \definefontsynonym [SansBold] [Iwona-CapsCondHeavy-Regular] \definefontsynonym [SansBoldItalic] [Iwona-CapsCondHeavy-Italic] \stoptypescript \starttypescript [math] [iwona-light] [name] \definefontsynonym [MathRoman] [Iwona-Math-Letters-Light-Regular] \definefontsynonym [MathItalic] [Iwona-Math-Letters-Light-Italic] \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Light] \definefontsynonym [MathExtension] [Iwona-Math-Extension-Light] \stoptypescript \starttypescript [math] [iwona] [name] \definefontsynonym [MathRoman] [Iwona-Math-Letters-Regular] \definefontsynonym [MathItalic] [Iwona-Math-Letters-Italic] \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Regular] \definefontsynonym [MathExtension] [Iwona-Math-Extension-Regular] \stoptypescript \starttypescript [math] [iwona-medium] [name] \definefontsynonym [MathRoman] [Iwona-Math-Letters-Medium-Regular] \definefontsynonym [MathItalic] [Iwona-Math-Letters-Medium-Italic] \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Medium] \definefontsynonym [MathExtension] [Iwona-Math-Extension-Medium] \stoptypescript \starttypescript [math] [iwona-heavy] [name] \definefontsynonym [MathRoman] [Iwona-Math-Letters-Heavy-Regular] \definefontsynonym [MathItalic] [Iwona-Math-Letters-Heavy-Italic] \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Heavy] \definefontsynonym [MathExtension] [Iwona-Math-Extension-Heavy] \stoptypescript \starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium] [texnansi,ec,8r,uc,t2a] \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default][encoding=\typescripttwo] \definetypeface[\typescriptone][rm][serif][modern] [default][encoding=\typescripttwo] \definetypeface[\typescriptone][tt][mono] [modern] [default][encoding=\typescripttwo] \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo,text=ss] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \starttypescriptcollection[kurier] \starttypescript [sans] [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5] \definefontsynonym[Kurier-Regular] [\typescriptthree-kurierr] [encoding=\typescriptthree] \definefontsynonym[Kurier-Italic] [\typescriptthree-kurierri] [encoding=\typescriptthree] \definefontsynonym[Kurier-RegularItalic] [Kurier-Italic] \definefontsynonym[Kurier-Bold] [\typescriptthree-kurierb] [encoding=\typescriptthree] \definefontsynonym[Kurier-BoldItalic] [\typescriptthree-kurierbi] [encoding=\typescriptthree] \definefontsynonym[Kurier-Light] [\typescriptthree-kurierl] [encoding=\typescriptthree] \definefontsynonym[Kurier-LightItalic] [\typescriptthree-kurierli] [encoding=\typescriptthree] \definefontsynonym[Kurier-Medium] [\typescriptthree-kurierm] [encoding=\typescriptthree] \definefontsynonym[Kurier-MediumItalic] [\typescriptthree-kuriermi] [encoding=\typescriptthree] \definefontsynonym[Kurier-Heavy] [\typescriptthree-kurierh] [encoding=\typescriptthree] \definefontsynonym[Kurier-HeavyItalic] [\typescriptthree-kurierhi] [encoding=\typescriptthree] \loadmapfile[kurier-\typescriptthree.map] \stoptypescript \starttypescript [math] [kurier] [default] \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr] \definefontsynonym [Kurier-Math-Letters-Italic] [mi-kurierri] \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz] \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr] \stoptypescript \starttypescript [math] [kurier-light] [default] \definefontsynonym [Kurier-Math-Letters-Light-Regular] [rm-kurierl] \definefontsynonym [Kurier-Math-Letters-Light-Italic] [mi-kurierli] \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz] \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl] \stoptypescript \starttypescript [math] [kurier-medium] [default] \definefontsynonym [Kurier-Math-Letters-Medium-Regular][rm-kurierm] \definefontsynonym [Kurier-Math-Letters-Medium-Italic] [mi-kuriermi] \definefontsynonym [Kurier-Math-Symbols-Medium] [sy-kuriermz] \definefontsynonym [Kurier-Math-Extension-medium] [ex-kurierm] \stoptypescript \starttypescript [math] [kurier,kurier-light,kurier-medium] [default] \usemathcollection[default] \loadmapfile[kurier-rm.map] \loadmapfile[kurier-mi.map] \loadmapfile[kurier-sy.map] \loadmapfile[kurier-ex.map] \stoptypescript \starttypescript [sans] [kurier-light] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Kurier-Light-Regular] \definefontsynonym [SansItalic] [Kurier-Light-Italic] \definefontsynonym [SansBold] [Kurier-Medium-Regular] \definefontsynonym [SansBoldItalic] [Kurier-Medium-Italic] \stoptypescript \starttypescript [sans] [kurier] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Kurier-Regular] \definefontsynonym [SansItalic] [Kurier-Italic] \definefontsynonym [SansBold] [Kurier-Bold] \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic] \stoptypescript \starttypescript [sans] [kurier-medium] [name] \setups[font:fallback:sans] \definefontsynonym [Sans] [Kurier-Medium-Regular] \definefontsynonym [SansItalic] [Kurier-Medium-Italic] \definefontsynonym [SansBold] [Kurier-Heavy-Regular] \definefontsynonym [SansBoldItalic] [Kurier-Heavy-Italic] \stoptypescript \starttypescript [math] [kurier-light] [name] \definefontsynonym [MathRoman] [Kurier-Math-Letters-Light-Regular] \definefontsynonym [MathItalic] [Kurier-Math-Letters-Light-Italic] \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Light] \definefontsynonym [MathExtension] [Kurier-Math-Extension-Light] \stoptypescript \starttypescript [math] [kurier] [name] \definefontsynonym [MathRoman] [Kurier-Math-Letters-Regular] \definefontsynonym [MathItalic] [Kurier-Math-Letters-Italic] \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Regular] \definefontsynonym [MathExtension] [Kurier-Math-Extension-Regular] \stoptypescript \starttypescript [math] [kurier-medium] [name] \definefontsynonym [MathRoman] [Kurier-Math-Letters-Medium-Regular] \definefontsynonym [MathItalic] [Kurier-Math-Letters-Medium-Italic] \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Medium] \definefontsynonym [MathExtension] [Kurier-Math-Extension-Medium] \stoptypescript \starttypescript [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5] \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default][encoding=\typescripttwo] \definetypeface[\typescriptone][rm][serif][modern] [default][encoding=\typescripttwo] \definetypeface[\typescriptone][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.05] \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo,text=ss] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \starttypescriptcollection[charter] \starttypescript [serif] [charter] [ec,texnansi,8r] \definefontsynonym [Charter-Roman] [\typescriptthree-bchr8a] [encoding=\typescriptthree] \definefontsynonym [Charter-Italic] [\typescriptthree-bchri8a] [encoding=\typescriptthree] \definefontsynonym [Charter-Bold] [\typescriptthree-bchb8a] [encoding=\typescriptthree] \definefontsynonym [Charter-BoldItalic] [\typescriptthree-bchbi8a] [encoding=\typescriptthree] \definefontsynonym [Charter-Slanted] [\typescriptthree-bchr8a-slanted-167] [encoding=\typescriptthree] \definefontsynonym [Charter-BoldSlanted][\typescriptthree-bchb8a-slanted-167] [encoding=\typescriptthree] \definefontsynonym [Charter-Roman-Caps] [\typescriptthree-bchr8a-capitalized-800] [encoding=\typescriptthree] \loadmapfile[\typescriptthree-bitstrea-charter.map] \stoptypescript \starttypescript [serif] [charter] [name] \definefontsynonym [Serif] [Charter-Roman] \definefontsynonym [SerifItalic] [Charter-Italic] \definefontsynonym [SerifBold] [Charter-Bold] \definefontsynonym [SerifBoldItalic] [Charter-BoldItalic] \definefontsynonym [SerifSlanted] [Charter-Slanted] \definefontsynonym [SerifBoldSlanted] [Charter-BoldSlanted] \definefontsynonym [SerifCaps] [Charter-Roman-Caps] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[symbols] \starttypescript \definefontsynonym [ZapfDingbats] [uzdr] \definefontsynonym [RalfSmithFormalScript] [rsfs10] \definefontsynonym [MartinVogel] [umvs] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[texgyre] \definetypescriptprefix [f:pagella] [pl] \definetypescriptprefix [f:palatino] [pl] \definetypescriptprefix [f:termes] [tm] \definetypescriptprefix [f:times] [tm] \definetypescriptprefix [f:heros] [hv] \definetypescriptprefix [f:helvetica] [hv] \definetypescriptprefix [f:bonum] [bk] \definetypescriptprefix [f:bookman] [bk] \definetypescriptprefix [f:schola] [cs] \definetypescriptprefix [f:schoolbook] [cs] \definetypescriptprefix [f:adventor][ag] %definetypescriptprefix [f:adventor] [ag] \definetypescriptprefix [f:cursor] [cr] \definetypescriptprefix [f:courier] [cr] \definetypescriptprefix [f:chorus] [zc] \definetypescriptprefix [f:chancery] [zc] % not the full set \starttypescript [serif,sans,mono] [pagella,palatino,termes,times,adventor,bonum,bookman,cursor,courier,heros,helvetica,schola,schoolbook] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}r] [encoding=\typescriptthree] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}ri] [encoding=\typescriptthree] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}b] [encoding=\typescriptthree] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}bi] [encoding=\typescriptthree] \loadmapfile[q\typescriptprefix{f:\typescripttwo}-\typescriptthree.map] \stoptypescript \starttypescript [serif,sans,mono] [pagella,palatino,termes,times,adventor,bonum,bookman,cursor,courier,heros,helvetica,schola,schoolbook] [ec,texnansi,cs,qx,rm,t5,l7x] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Caps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}r-sc] [encoding=\typescriptthree] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}ri-sc] [encoding=\typescriptthree] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}b-sc] [encoding=\typescriptthree] \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}bi-sc] [encoding=\typescriptthree] \loadmapfile[q\typescriptprefix{f:\typescripttwo}-\typescriptthree.map] \stoptypescript \starttypescript [serif,calligraphy] [chorus,chancery] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definefontsynonym [TeXGyreChorus-MediumItalic] [\typescriptthree-qzcmi] [encoding=\typescriptthree] \loadmapfile[qzc-\typescriptthree.map] \stoptypescript \definetypescriptprefix [n:pagella] [TeXGyrePagella] \definetypescriptprefix [n:palatino] [TeXGyrePagella] \definetypescriptprefix [n:termes] [TeXGyreTermes] \definetypescriptprefix [n:times] [TeXGyreTermes] \definetypescriptprefix [n:heros] [TeXGyreHeros] \definetypescriptprefix [n:helvetica] [TeXGyreHeros] \definetypescriptprefix [n:bonum] [TeXGyreBonum] \definetypescriptprefix [n:bookman] [TeXGyreBonum] \definetypescriptprefix [n:schola] [TeXGyreSchola] \definetypescriptprefix [n:schoolbook] [TeXGyreSchola] \definetypescriptprefix [n:adventor] [TeXGyreAdventor] %definetypescriptprefix [n:adventor] [TeXGyreAdventor] \definetypescriptprefix [n:cursor] [TeXGyreCursor] \definetypescriptprefix [n:courier] [TeXGyreCursor] \definetypescriptprefix [n:chorus] [TeXGyreChorus] \definetypescriptprefix [n:chancery] [TeXGyreChorus] % not the full set \starttypescript [serif] [pagella,palatino,termes,times,bonum,bookman,schola,schoolbook] [name] \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular] \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic] \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold] \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] \definefontsynonym [SerifSlanted] [SerifItalic] \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic] \definefontsynonym [SerifCaps] [\typescriptprefix{n:\typescripttwo}-Caps] \definefontvariant [Serif][osf][Caps] \definefontvariant [Serif][sc] [Caps] \definefontsynonym [SerifRegular] [Serif] \definefontsynonym [SerifRegularCaps] [SerifCaps] \definefontsynonym [SerifItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps] \definefontsynonym [SerifBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps] \definefontsynonym [SerifBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] \definefontsynonym [SerifSlantedCaps] [SerifItalicCaps] \definefontsynonym [SerifBoldSlantedCaps] [SerifBoldItalicCaps] \definefontsynonym [SerifCapsCaps] [SerifCaps] \stoptypescript \starttypescript [serif] [chorus,chancery] [name] \definefontsynonym [SerifMediumItalic] [TeXGyreChorus-MediumItalic] \definefontsynonym [Serif] [SerifMediumItalic] \definefontsynonym [SerifItalic] [SerifMediumItalic] \definefontsynonym [SerifBold] [SerifMediumItalic] \definefontsynonym [SerifBoldItalic] [SerifMediumItalic] \definefontsynonym [SerifSlanted] [SerifMediumItalic] \definefontsynonym [SerifBoldSlanted] [SerifMediumItalic] \definefontsynonym [SerifCaps] [SerifMediumItalic] \stoptypescript \starttypescript [calligraphy] [chorus,chancery] [name] \definefontsynonym [Calligraphy] [TeXGyreChorus-MediumItalic] \stoptypescript \starttypescript [sans] [heros,helvetica,adventor] [name] \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular] \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic] \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold] \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] \definefontsynonym [SansSlanted] [SansItalic] \definefontsynonym [SansBoldSlanted] [SansBoldItalic] \definefontsynonym [SansCaps] [\typescriptprefix{n:\typescripttwo}-Caps] \definefontvariant [Sans][osf][Caps] \definefontvariant [Sans][sc] [Caps] \definefontsynonym [SansRegular] [Sans] \definefontsynonym [SansRegularCaps] [SansCaps] \definefontsynonym [SansItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps] \definefontsynonym [SansBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps] \definefontsynonym [SansBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] \definefontsynonym [SansSlantedCaps] [SansItalicCaps] \definefontsynonym [SansBoldSlantedCaps] [SansBoldItalicCaps] \definefontsynonym [SansCapsCaps] [SansCaps] \stoptypescript \starttypescript [mono] [cursor,courier] [name] \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular] \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic] \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold] \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] \definefontsynonym [MonoSlanted] [MonoItalic] \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic] \definefontvariant [Mono][osf][Caps] \definefontvariant [Mono][sc] [Caps] \definefontsynonym [MonoRegular] [Mono] \definefontsynonym [MonoRegularCaps] [MonoCaps] \definefontsynonym [MonoItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps] \definefontsynonym [MonoBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps] \definefontsynonym [MonoBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] \definefontsynonym [MonoSlantedCaps] [MonoItalicCaps] \definefontsynonym [MonoBoldSlantedCaps] [MonoBoldItalicCaps] \definefontsynonym [MonoCapsCaps] [MonoCaps] \stoptypescript % bonus definitions % when these fonts are in tex live ... % % \definefontsynonym [Palatino-Caps] [TeXPalladioL-SC] [encoding=\typescriptthree] % % \starttypescript [serif] [palatino] [ec,texnansi] % \definefontsynonym[TeXPalladioL-BoldItalicOsF][\typescriptthree-fplbij8a][encoding=\typescriptthree] % \definefontsynonym[TeXPalladioL-BoldOsF] [\typescriptthree-fplbj8a] [encoding=\typescriptthree] % \definefontsynonym[TeXPalladioL-SC] [\typescriptthree-fplrc8a] [encoding=\typescriptthree] % \definefontsynonym[TeXPalladioL-ItalicOsF] [\typescriptthree-fplrij8a][encoding=\typescriptthree] % \loadmapfile[\typescriptthree-urw-palatino.map] % \stoptypescript % Faces: \starttypescript [times,termes] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo,rscale=0.9] \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.05] \definetypeface [\typescriptone] [mm] [math] [times] [default] [encoding=\typescripttwo] \quittypescriptscanning \stoptypescript \starttypescript [palatino,pagella] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo,rscale=1.075] \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.075] \definetypeface [\typescriptone] [mm] [math] [palatino] [default] [encoding=default] \quittypescriptscanning \stoptypescript \starttypescript [schoolbook,schola] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default] \quittypescriptscanning \stoptypescript \starttypescript [bookman,bonum] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default] \quittypescriptscanning \stoptypescript \starttypescript [chancery,chorus] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default] \quittypescriptscanning \stoptypescript \starttypescript [helvetica,heros] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo,rscale=1.15] \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.15] \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default,rscale=1.15] \quittypescriptscanning \stoptypescript \starttypescript [avantgarde,adventor] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [\typescriptone] [ss] [sans] [adventor] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo,rscale=1.15] \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.15] \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default] \quittypescriptscanning \stoptypescript \starttypescript [courier,cursor] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo] \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \starttypescriptcollection[xmath] \starttypescript [math] [palatino] [all] \definefontsynonym [Palatino-Roman-Upright] [pxr] \definefontsynonym [Palatino-Roman-Italic] [pxi] \definefontsynonym [Palatino-Roman-Slanted] [pxsl] \definefontsynonym [Palatino-Roman-Caps] [pxsc] \definefontsynonym [Palatino-Companion-Upright] [pcxr] \definefontsynonym [Palatino-Companion-Italic] [pcxi] \definefontsynonym [Palatino-Companion-Slanted] [pcxsl] \definefontsynonym [Palatino-Math-Italic] [pxmi] \definefontsynonym [Palatino-Math-Symbols] [pxsy] \definefontsynonym [Palatino-Math-Extension] [pxex] \definefontsynonym [Palatino-Math-SymbolsA] [pxsya] \definefontsynonym [Palatino-Math-SymbolsB] [pxsyb] \definefontsynonym [Palatino-Math-SymbolsC] [pxsyc] \definefontsynonym [Palatino-Math-Italic-A] [pxmia] \definefontsynonym [Palatino-Math-Extension-A] [pxexa] \usemathcollection[default] \loadmapfile[original-youngryu-px.map] \stoptypescript \starttypescript [math] [times] [all] \definefontsynonym [Times-Roman-Upright] [txr] \definefontsynonym [Times-Roman-Italic] [txi] \definefontsynonym [Times-Roman-Slanted] [txsl] \definefontsynonym [Times-Roman-Caps] [txsc] \definefontsynonym [Times-Companion-Upright] [tcxr] \definefontsynonym [Times-Companion-Italic] [tcxi] \definefontsynonym [Times-Companion-Slanted] [tcxsl] \definefontsynonym [Times-Math-Italic] [txmi] \definefontsynonym [Times-Math-Symbols] [txsy] \definefontsynonym [Times-Math-Extension] [txex] \definefontsynonym [Times-Math-SymbolsA] [txsya] \definefontsynonym [Times-Math-SymbolsB] [txsyb] \definefontsynonym [Times-Math-SymbolsC] [txsyc] \definefontsynonym [Times-Math-Italic-A] [txmia] \definefontsynonym [Times-Math-Extension-A] [txexa] \usemathcollection[default] \loadmapfile[original-youngryu-tx.map] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[pregyre] %D These are just fallbacks in case anyone stil uses the %D old names (might also be removed?). % TeXGyrePagella \starttypescript [serif] [palatino] \definefontsynonym [Palatino] [TeXGyrePagella-Regular] \definefontsynonym [Palatino-Italic] [TeXGyrePagella-Italic] \definefontsynonym [Palatino-Bold] [TeXGyrePagella-Bold] \definefontsynonym [Palatino-BoldItalic] [TeXGyrePagella-BoldItalic] \definefontsynonym [Palatino-Slanted] [TeXGyrePagella-Italic] \definefontsynonym [Palatino-BoldSlanted] [TeXGyrePagella-BoldItalic] \definefontsynonym [Palatino-Caps] [TeXGyrePagella-Caps] \stoptypescript \starttypescript [serif] [palatino] [name] \definefontsynonym [Serif] [Palatino] \definefontsynonym [SerifBold] [Palatino-Bold] \definefontsynonym [SerifItalic] [Palatino-Italic] \definefontsynonym [SerifSlanted] [Palatino-Slanted] \definefontsynonym [SerifBoldItalic] [Palatino-BoldItalic] \definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted] \definefontsynonym [SerifCaps] [Palatino-Caps] \stoptypescript \starttypescript [math] [palatino] [name] \definefontsynonym [MathRoman] [Palatino-Roman-Upright] \definefontsynonym [MathExtension] [Palatino-Math-Extension] \definefontsynonym [MathItalic] [Palatino-Math-Italic] \definefontsynonym [MathSymbol] [Palatino-Math-Symbols] \definefontsynonym [MathAlpha] [Palatino-Math-SymbolsA] \definefontsynonym [MathBeta] [Palatino-Math-SymbolsB] \stoptypescript \starttypescript [math] [palatino] [name] \definefontsynonym [OldStyle] [MathItalic] \definefontsynonym [Fraktur] [eufm10] \definefontsynonym [Blackboard] [MathBeta] \definefontsynonym [Gothic] [eufm10] \definefontsynonym [Calligraphic] [eusm10] \stoptypescript % TeXGyreTermes \starttypescript [serif] [times] \definefontsynonym [Times-Roman] [TeXGyreTermes-Regular] \definefontsynonym [Times-Italic] [TeXGyreTermes-Italic] \definefontsynonym [Times-Bold] [TeXGyreTermes-Bold] \definefontsynonym [Times-BoldItalic] [TeXGyreTermes-BoldItalic] \definefontsynonym [Times-Slanted] [TeXGyreTermes-Italic] \definefontsynonym [Times-BoldSlanted] [TeXGyreTermes-BoldItalic] \definefontsynonym [Times-Caps] [TeXGyreTermes-Caps] \stoptypescript \starttypescript [serif] [times] [name] \definefontsynonym [Serif] [Times-Roman] \definefontsynonym [SerifBold] [Times-Bold] \definefontsynonym [SerifItalic] [Times-Italic] \definefontsynonym [SerifSlanted] [Times-Italic] \definefontsynonym [SerifBoldItalic] [Times-BoldItalic] \definefontsynonym [SerifBoldSlanted] [Times-BoldItalic] \definefontsynonym [SerifCaps] [Times-Caps] \stoptypescript \starttypescript [math] [times] [name] \definefontsynonym [MathRoman] [Times-Roman-Upright] \definefontsynonym [MathExtension] [Times-Math-Extension] \definefontsynonym [MathItalic] [Times-Math-Italic] \definefontsynonym [MathSymbol] [Times-Math-Symbols] \definefontsynonym [MathAlpha] [Times-Math-SymbolsA] \definefontsynonym [MathBeta] [Times-Math-SymbolsB] \stoptypescript \starttypescript [math] [times] [name] \definefontsynonym [OldStyle] [MathItalic] \definefontsynonym [Fraktur] [eufm10] \definefontsynonym [Blackboard] [MathBeta] \definefontsynonym [Gothic] [eufm10] \definefontsynonym [Calligraphic] [eusm10] \stoptypescript % TeXGyreHeros \starttypescript [sans] [helvetica] \definefontsynonym [Helvetica] [TeXGyreHeros-Regular] \definefontsynonym [Helvetica-Oblique] [TeXGyreHeros-Italic] \definefontsynonym [Helvetica-Bold] [TeXGyreHeros-Bold] \definefontsynonym [Helvetica-BoldOblique] [TeXGyreHeros-BoldItalic] \definefontsynonym [Helvetica-Caps] [TeXGyreHeros-Caps] \stoptypescript \starttypescript [sans] [helvetica] [name] \definefontsynonym [Sans] [Helvetica] \definefontsynonym [SansBold] [Helvetica-Bold] \definefontsynonym [SansItalic] [Helvetica-Oblique] \definefontsynonym [SansSlanted] [Helvetica-Oblique] \definefontsynonym [SansBoldItalic] [Helvetica-BoldOblique] \definefontsynonym [SansBoldSlanted] [Helvetica-BoldOblique] \definefontsynonym [SansCaps] [Helvetica-Caps] \stoptypescript \starttypescript [math] [helvetica] [name] \definefontsynonym [MathRoman] [Helvetica-MathRoman] \definefontsynonym [MathExtension] [Helvetica-MathExtendedSymbols] \definefontsynonym [MathItalic] [Helvetica-MathItalics] \definefontsynonym [MathSymbol] [Helvetica-MathSymbols] \stoptypescript % TeXGyreBonum \starttypescript [serif] [bookman] \definefontsynonym [Bookman-Light] [TeXGyreBonum-Regular] \definefontsynonym [Bookman-LightItalic] [TeXGyreBonum-Italic] \definefontsynonym [Bookman-DemiBold] [TeXGyreBonum-Bold] \definefontsynonym [Bookman-DemiBoldItalic] [TeXGyreBonum-BoldItalic] \definefontsynonym [Bookman-LightSlanted] [TeXGyreBonum-Italic] \definefontsynonym [Bookman-DemiBoldSlanted] [TeXGyreBonum-BoldItalic] \definefontsynonym [Bookman-Light-Caps] [TeXGyreBonum-Caps] \stoptypescript \starttypescript [serif] [bookman] [name] \definefontsynonym [Serif] [Bookman-Light] \definefontsynonym [SerifItalic] [Bookman-LightItalic] \definefontsynonym [SerifBold] [Bookman-DemiBold] \definefontsynonym [SerifBoldItalic] [Bookman-DemiBoldItalic] \definefontsynonym [SerifSlanted] [Bookman-LightSlanted] \definefontsynonym [SerifBoldSlanted] [Bookman-DemiBoldSlanted] \definefontsynonym [SerifCaps] [Bookman-Light-Caps] \stoptypescript % TeXGyreScola \starttypescript [serif] [schoolbook] \definefontsynonym [Schoolbook-Roman] [TeXGyreScola-Regular] \definefontsynonym [Schoolbook-Italic] [TeXGyreScola-Italic] \definefontsynonym [Schoolbook-Bold] [TeXGyreScola-Bold] \definefontsynonym [Schoolbook-BoldItalic] [TeXGyreScola-BoldItalic] \definefontsynonym [Schoolbook-Slanted] [TeXGyreScola-Italic] \definefontsynonym [Schoolbook-BoldSlanted] [TeXGyreScola-BoldItalic] \definefontsynonym [Schoolbook-Roman-Caps] [TeXGyreScola-Caps] \stoptypescript \starttypescript [serif] [schoolbook] [name] \definefontsynonym [Serif] [Schoolbook-Roman] \definefontsynonym [SerifItalic] [Schoolbook-Italic] \definefontsynonym [SerifBold] [Schoolbook-Bold] \definefontsynonym [SerifBoldItalic] [Schoolbook-BoldItalic] \definefontsynonym [SerifSlanted] [Schoolbook-RomanSlanted] \definefontsynonym [SerifBoldSlanted] [Schoolbook-BoldSlanted] \definefontsynonym [SerifCaps] [Schoolbook-Roman-Caps] \stoptypescript % TeXGyreAdventor % TeXGyreCursor \starttypescript [mono] [courier] \definefontsynonym [Courier] [TeXGyreCursor-Regular] \definefontsynonym [Courier-Bold] [TeXGyreCursor-Bold] \definefontsynonym [Courier-Oblique] [TeXGyreCursor-Italic] \definefontsynonym [Courier-BoldOblique] [TeXGyreCursor-BoldItalic] \fakecontrolspace \stoptypescript \starttypescript [mono] [courier] [name] \definefontsynonym [Mono] [Courier] \definefontsynonym [MonoBold] [Courier-Bold] \definefontsynonym [MonoItalic] [Courier-Oblique] \definefontsynonym [MonoSlanted] [Courier-Oblique] \definefontsynonym [MonoBoldItalic] [Courier-BoldOblique] \definefontsynonym [MonoBoldSlanted] [Courier-BoldOblique] \definefontsynonym [MonoCaps] [Courier] \stoptypescript % TeXGyreChorus \starttypescript [calligraphy] [chancery] \definefontsynonym [Chancery] [TeXGyreChorus-MediumItalic] \stoptypescript \starttypescript [calligraphy] [chancery] [name] \definefontsynonym [Calligraphy] [Chancery] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[Lucida] % We can remove the intermediate names as no one will use them. \definetypescriptprefix [e:ec] [8t] \definetypescriptprefix [e:texnansi] [8y] \definetypescriptprefix [e:8r] [8r] % Lucida Bright \starttypescript [serif] [lucida] [ec,texnansi,8r] \definefontsynonym [\typescriptthree-lbr] [hlhr\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright \definefontsynonym [\typescriptthree-lbd] [hlhb\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright-Demi \definefontsynonym [\typescriptthree-lbi] [hlhri\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright-Italic \definefontsynonym [\typescriptthree-lbdi] [hlhbi\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright-DemiItalic \definefontsynonym [\typescriptthree-lbsl] [hlhro\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright-Oblique \definefontsynonym [\typescriptthree-lbrsc] [hlhrc\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBrightSmallcaps \definefontsynonym [\typescriptthree-lbdsc] [hlhbc\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBrightSmallcaps-Demi \definefontsynonym [LucidaBright] [\typescriptthree-lbr] [encoding=\typescriptthree] \definefontsynonym [LucidaBright-Demi] [\typescriptthree-lbd] [encoding=\typescriptthree] \definefontsynonym [LucidaBright-Italic] [\typescriptthree-lbi] [encoding=\typescriptthree] \definefontsynonym [LucidaBright-DemiItalic] [\typescriptthree-lbdi] [encoding=\typescriptthree] \definefontsynonym [LucidaBright-Oblique] [\typescriptthree-lbsl] [encoding=\typescriptthree] \definefontsynonym [LucidaBrightSmallcaps] [\typescriptthree-lbrsc] [encoding=\typescriptthree] \definefontsynonym [LucidaBrightSmallcaps-Demi] [\typescriptthree-lbdsc] [encoding=\typescriptthree] \loadmapfile[lucida.map] \stoptypescript % Lucida Bright Sans \starttypescript [sans] [lucida] [ec,texnansi,8r] \definefontsynonym [\typescriptthree-lsr] [hlsr\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans \definefontsynonym [\typescriptthree-lsd] [hlsb\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-Demi \definefontsynonym [\typescriptthree-lsb] [hlsu\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-Bold \definefontsynonym [\typescriptthree-lsi] [hlsri\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-Italic \definefontsynonym [\typescriptthree-lsdi] [hlsbi\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-DemiItalic \definefontsynonym [\typescriptthree-lsbi] [hlsui\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-BoldItalic \definefontsynonym [LucidaSans] [\typescriptthree-lsr] [encoding=\typescriptthree] \definefontsynonym [LucidaSans-Demi] [\typescriptthree-lsd] [encoding=\typescriptthree] \definefontsynonym [LucidaSans-Bold] [\typescriptthree-lsb] [encoding=\typescriptthree] \definefontsynonym [LucidaSans-Italic] [\typescriptthree-lsi] [encoding=\typescriptthree] \definefontsynonym [LucidaSans-DemiItalic] [\typescriptthree-lsdi] [encoding=\typescriptthree] \definefontsynonym [LucidaSans-BoldItalic] [\typescriptthree-lsbi] [encoding=\typescriptthree] \loadmapfile[lucida.map] \stoptypescript % Lucida Bright Typewriter \starttypescript [mono] [lucida] [ec,texnansi,8r] \definefontsynonym [\typescriptthree-lbtr] [hlcrt\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaTypewriter \definefontsynonym [\typescriptthree-lbtb] [hlcbt\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaTypewriterBold \definefontsynonym [\typescriptthree-lbto] [hlcrot\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaTypewriterOblique \definefontsynonym [\typescriptthree-lbtbo] [hlcbot\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaTypewriterBoldOblique \definefontsynonym [LucidaTypewriter] [\typescriptthree-lbtr] [encoding=\typescriptthree] \definefontsynonym [LucidaTypewriterBold] [\typescriptthree-lbtb] [encoding=\typescriptthree] \definefontsynonym [LucidaTypewriterOblique] [\typescriptthree-lbto] [encoding=\typescriptthree] \definefontsynonym [LucidaTypewriterBoldOblique] [\typescriptthree-lbtbo] [encoding=\typescriptthree] \loadmapfile[lucida.map] \stoptypescript % Lucida Bright Sans Typewriter \starttypescript [mono] [lucida] [ec,texnansi,8r] \definefontsynonym [\typescriptthree-lstr] [hlsrt\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-Typewriter \definefontsynonym [\typescriptthree-lstb] [hlsbt\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-TypewriterBold \definefontsynonym [\typescriptthree-lsto] [hlsrot\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-TypewriterOblique \definefontsynonym [\typescriptthree-lstbo] [hlsbot\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-TypewriterBoldOblique \definefontsynonym [LucidaSans-Typewriter] [\typescriptthree-lstr] [encoding=\typescriptthree] \definefontsynonym [LucidaSans-TypewriterBold] [\typescriptthree-lstb] [encoding=\typescriptthree] \definefontsynonym [LucidaSans-TypewriterOblique] [\typescriptthree-lsto] [encoding=\typescriptthree] \definefontsynonym [LucidaSans-TypewriterBoldOblique] [\typescriptthree-lstbo] [encoding=\typescriptthree] \loadmapfile[lucida.map] \stoptypescript % Lucida Calligraphy \starttypescript [calligraphy] [lucida] [texnansi,ec,8r] \definefontsynonym [\typescriptthree-lbc] [hlcrie\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaCalligraphy-Italic \definefontsynonym [LucidaCalligraphy-Italic] [\typescriptthree-lbc] [encoding=\typescriptthree] \loadmapfile[lucida.map] \stoptypescript % Lucida Casual \starttypescript [casual] [lucida] [texnansi,ec,8r] \definefontsynonym [\typescriptthree-lbkr] [hlcrn\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaCasual \definefontsynonym [\typescriptthree-lbki] [hlcrin\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaCasual-Italic \definefontsynonym [LucidaCasual] [\typescriptthree-lbkr] [encoding=\typescriptthree] \definefontsynonym [LucidaCasual-Italic] [\typescriptthree-lbki] [encoding=\typescriptthree] \loadmapfile[lucida.map] \stoptypescript % Lucida Handwriting \starttypescript [handwriting] [lucida] [texnansi,ec,8r] \definefontsynonym [\typescriptthree-lbh] [hlcriw\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaHandwriting-Italic \definefontsynonym [LucidaHandwriting-Italic] [\typescriptthree-lbh] [encoding=\typescriptthree] \loadmapfile[lucida.map] \stoptypescript % Lucida Fax \starttypescript [fax] [lucida] [texnansi,ec,8r] \definefontsynonym [\typescriptthree-lfr] [hlxr\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaFax \definefontsynonym [\typescriptthree-lfd] [hlxb\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaFax-Demi \definefontsynonym [\typescriptthree-lfi] [hlxri\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaFax-Italic \definefontsynonym [\typescriptthree-lfdi] [hlxbi\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaFax-DemiItalic \definefontsynonym [LucidaFax] [\typescriptthree-lfr] [encoding=\typescriptthree] % LucidaFax \definefontsynonym [LucidaFax-Demi] [\typescriptthree-lfd] [encoding=\typescriptthree] % LucidaFax-Demi \definefontsynonym [LucidaFax-Italic] [\typescriptthree-lfi] [encoding=\typescriptthree] % LucidaFax-Italic \definefontsynonym [LucidaFax-DemiItalic] [\typescriptthree-lfdi] [encoding=\typescriptthree] % LucidaFax-DemiItalic \loadmapfile[lucida.map] \stoptypescript \starttypescript [blackletter] [lucida] [texnansi,ec,8r] \definefontsynonym [\typescriptthree-lbl] [hlcrf\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBlackletter \definefontsynonym [LucidaBlackletter] [\typescriptthree-lbl] [encoding=\typescriptthree] \loadmapfile[lucida.map] \stoptypescript \starttypescript [lucida,lucidabfm,lucidaboldmath] [texnansi,ec,8r] \definetypeface [lucida] [rm] [serif] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [ss] [sans] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [tt] [mono] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo] \loadmapfile[lucida.map] \stoptypescript \starttypescript [math] [lucida] [default] \definefontsynonym [LucidaNewMath-AltItalic] [hlcrima] \definefontsynonym [LucidaNewMath-Arrows] [hlcra] \definefontsynonym [LucidaNewMath-Extension] [hlcrv] \definefontsynonym [LucidaNewMath-Roman] [hlcrm] \definefontsynonym [LucidaNewMath-Italic] [hlcrim] \definefontsynonym [LucidaNewMath-Symbol] [hlcry] \definefontsynonym [LucidaBlackletter] [hlcrf8y] % what a mess \usemathcollection[lbr] \loadmapfile [lucida.map] \stoptypescript \starttypescript [boldmath,bfmath] [lucida] [default] \definefontsynonym [LucidaNewMath-AltDemiItalic] [hlcdima] \definefontsynonym [LucidaNewMath-Arrows-Demi] [hlcda] \definefontsynonym [LucidaNewMath-Extension] [hlcrv] \definefontsynonym [LucidaNewMath-Demi] [hlcdm] \definefontsynonym [LucidaNewMath-DemiItalic] [hlcdim] \definefontsynonym [LucidaNewMath-Symbol-Demi] [hlcdy] \loadmapfile [lucida.map] \stoptypescript % Lucida Bright \starttypescript [serif] [lucida] [name] \definefontsynonym [Serif] [LucidaBright] \definefontsynonym [SerifBold] [LucidaBright-Demi] \definefontsynonym [SerifItalic] [LucidaBright-Italic] \definefontsynonym [SerifBoldItalic] [LucidaBright-DemiItalic] \definefontsynonym [SerifSlanted] [LucidaBright-Oblique] \definefontsynonym [SerifBoldSlanted] [LucidaBright-DemiItalic] \definefontsynonym [SerifCaps] [LucidaBrightSmallcaps] \definefontsynonym [SerifBoldCaps] [LucidaBrightSmallcaps-Demi] \stoptypescript % Lucida Bright Sans \starttypescript [sans] [lucida] [name] \definefontsynonym [Sans] [LucidaSans] \definefontsynonym [SansBold] [LucidaSans-Demi] \definefontsynonym [SansItalic] [LucidaSans-Italic] \definefontsynonym [SansBoldItalic] [LucidaSans-DemiItalic] \definefontsynonym [SansSlanted] [LucidaSans-Italic] \definefontsynonym [SansBoldSlanted] [LucidaSans-DemiItalic] \definefontsynonym [SansCaps] [LucidaSans] \stoptypescript % Lucida Bright Typewriter % only one family may be used as mono; sans used to be that since the beginning, % so we keep using that as default % \starttypescript [mono] [lucida] [name] % \definefontsynonym [Mono] [LucidaTypewriter] % \definefontsynonym [MonoBold] [LucidaTypewriterBold] % \definefontsynonym [MonoItalic] [LucidaTypewriterOblique] % \definefontsynonym [MonoBoldItalic] [LucidaTypewriterBoldOblique] % \definefontsynonym [MonoSlanted] [LucidaTypewriterOblique] % \definefontsynonym [MonoBoldSlanted] [LucidaTypewriterBoldOblique] % \definefontsynonym [MonoCaps] [LucidaTypewriter] % \stoptypescript % Lucida Bright Sans Typewriter \starttypescript [mono] [lucida] [name] \definefontsynonym [Mono] [LucidaSans-Typewriter] \definefontsynonym [MonoBold] [LucidaSans-TypewriterBold] \definefontsynonym [MonoItalic] [LucidaSans-TypewriterOblique] \definefontsynonym [MonoBoldItalic] [LucidaSans-TypewriterBoldOblique] \definefontsynonym [MonoSlanted] [LucidaSans-TypewriterOblique] \definefontsynonym [MonoBoldSlanted] [LucidaSans-TypewriterBoldOblique] \definefontsynonym [MonoCaps] [LucidaSans-Typewriter] \stoptypescript % Lucida Calligraphy \starttypescript [calligraphy] [lucida] [name] \definefontsynonym [Calligraphy] [LucidaCalligraphy-Italic] \stoptypescript % Lucida Casual % \starttypescript [casual] [lucida] [name] % % LucidaCasual % % LucidaCasual-Italic % \stoptypescript % Lucida Handwriting \starttypescript [handwriting] [lucida] [name] \definefontsynonym [Handwriting] [LucidaHandwriting-Italic] \stoptypescript % Lucida Fax % % \starttypescript [fax] [lucida] [name] % \definefontsynonym [FaksRegular] [LucidaFax] % \definefontsynonym [FaksBold] [LucidaFax-Demi] % \definefontsynonym [FaksItalic] [LucidaFax-Italic] % \definefontsynonym [FaksBoldItalic] [LucidaFax-DemiItalic] % \stoptypescript % Lucida Black Letter % % \starttypescript [blackletter] [lucida] [name] % \definefontsynonym [Blackletter] [LucidaBlackletter] % \stoptypescript % Lucida Math \starttypescript [math] [lucida] [name] % \definefontsynonym [MathRoman] [LucidaBright] \definefontsynonym [MathRoman] [LucidaNewMath-Roman] \definefontsynonym [MathExtension] [LucidaNewMath-Extension] \definefontsynonym [MathItalic] [LucidaNewMath-AltItalic] \definefontsynonym [MathSymbol] [LucidaNewMath-Symbol] \definefontsynonym [MathAlpha] [LucidaNewMath-Arrows] \definefontsynonym [MathBeta] [LucidaNewMath-Roman] \stoptypescript \starttypescript [math] [lucida] [name] \definefontsynonym [OldStyle] [MathItalic] \definefontsynonym [Fraktur] [eufm10] \definefontsynonym [Blackboard] [MathAlpha] \definefontsynonym [Gothic] [eufm10] \definefontsynonym [Calligraphic] [MathSymbol] % math caligraphic ! \stoptypescript \starttypescript [boldmath] [lucida] [name] \definefontsynonym [MathRoman] [LucidaBright-Demi] \definefontsynonym [MathExtension] [LucidaNewMath-Extension] \definefontsynonym [MathItalic] [LucidaNewMath-AltDemiItalic] \definefontsynonym [MathSymbol] [LucidaNewMath-Symbol-Demi] \definefontsynonym [MathAlpha] [LucidaNewMath-Arrows-Demi] \definefontsynonym [MathBeta] [LucidaNewMath-Demi] \stoptypescript \starttypescript [bfmath] [lucida] [name] \definefontsynonym [MathRomanBold] [LucidaNewMath-Demi] \definefontsynonym [MathExtensionBold] [LucidaNewMath-Extension] \definefontsynonym [MathItalicBold] [LucidaNewMath-AltDemiItalic] \definefontsynonym [MathSymbolBold] [LucidaNewMath-Symbol-Demi] \definefontsynonym [MathAlphaBold] [LucidaNewMath-Arrows-Demi] \definefontsynonym [MathBetaBold] [LucidaNewMath-Demi] \stoptypescript \starttypescript [lucida,lucidabfm,lucidaboldmath] [texnansi,ec,8r,uc] \definetypeface [lucida] [rm] [serif] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [ss] [sans] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [tt] [mono] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo] \loadmapfile [lucida.map] \stoptypescript \starttypescript [lucida] [texnansi,ec,8r] \definetypeface [lucida] [mm] [math] [lucida] [default] [encoding=\typescripttwo] \stoptypescript \starttypescript [lucidabfm] [texnansi,ec,8r] \definetypeface [lucida] [mm] [bfmath] [lucida] [default] [encoding=\typescripttwo] \stoptypescript \starttypescript [lucidaboldmath] [texnansi,ec,8r] \definetypeface [lucida] [mm] [boldmath] [lucida] [default] [encoding=\typescripttwo] \stoptypescript \starttypescript [lucidabfm] [texnansi,ec,8r,uc] \definetypeface [lucidabfm] [rm] [serif] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidabfm] [ss] [sans] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidabfm] [tt] [mono] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidabfm] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidabfm] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidabfm] [mm] [bfmath] [lucida] [default] [encoding=\typescripttwo] \loadmapfile [lucida.map] \stoptypescript \starttypescript [lucidaboldmath] [texnansi,ec,8r,uc] \definetypeface [lucidaboldmath] [rm] [serif] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidaboldmath] [ss] [sans] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidaboldmath] [tt] [mono] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidaboldmath] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidaboldmath] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucidaboldmath] [mm] [boldmath] [lucida] [default] [encoding=\typescripttwo] \loadmapfile [bh-lucida.map] \stoptypescript \starttypescript [lucida,lucidabfm,lucidaboldmath] [texnansi,ec,8r] \usemathcollection[lbr] \quittypescriptscanning % last in the row \stoptypescript \stoptypescriptcollection \starttypescriptcollection[postscript] \starttypescript [postscript] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x] \definetypeface [postscript] [rm] [serif] [times] [default] [encoding=\typescripttwo] \definetypeface [postscript] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo,rscale=0.9] \definetypeface [postscript] [tt] [mono] [courier] [default] [encoding=\typescripttwo,rscale=1.1] \definetypeface [postscript] [mm] [math] [times] [default] [encoding=\typescripttwo] \quittypescriptscanning \stoptypescript \stoptypescriptcollection \starttypescriptcollection[libertine] \starttypescript [serif] [libertine] [ec] \definefontsynonym [Libertine-Regular] [fxlr-t1] [encoding=ec] \definefontsynonym [Libertine-Italic] [fxlri-t1] [encoding=ec] \definefontsynonym [Libertine-Bold] [fxlb-t1] [encoding=ec] \definefontsynonym [Libertine-BoldItalic] [fxlbi-t1] [encoding=ec] \definefontsynonym [Libertine-SmallCaps] [fxlrc-t1] %[encoding=ec] \loadmapfile [libertine.map] \stoptypescript \starttypescript [serif] [libertine] [name] \definefontsynonym [Serif] [Libertine-Regular] \definefontsynonym [SerifItalic] [Libertine-Italic] \definefontsynonym [SerifSlanted] [Libertine-Italic] \definefontsynonym [SerifBold] [Libertine-Bold] \definefontsynonym [SerifBoldItalic] [Libertine-BoldItalic] \definefontsynonym [SerifBoldSlanted][Libertine-BoldItalic] \definefontsynonym [SerifCaps] [Libertine-SmallCaps] \stoptypescript \starttypescript [libertine] [ec] \definetypeface [libertine] [tt] [mono] [default] [default] [encoding=ec] \definetypeface [libertine] [ss] [sans] [default] [default] [encoding=ec] \definetypeface [libertine] [rm] [serif] [libertine] [default] [encoding=ec] \stoptypescript \stoptypescriptcollection \starttypescriptcollection[inconsolata] \starttypescript [mono] [inconsolata] [ec] \definefontsynonym [Inconsolata] [ec-inconsolata] [encoding=ec] \pdfmapline{ec-inconsolata Inconsolata "fi4ECEncoding ReEncodeFont" <[fi4-ec.enc 1, dan in geval van rek tussenruimte berekenen en optellen % bij breedte, dus: nx nog niet gebruiken in combinatie met rek ! ! ! ! ! % This module is experimental, undocumented, and currently only set up % eTeX. It provides a mechanism for typesetting very large tables, % spanning many pages horizontally and vertically, with repeated % header lines and (entry) columns, tab tracking, color, etc. In does % two passes over a table, which is why the table goes into a % buffer or file. As said, tables can be real huge. % \BH \BC .. \EC \BC .. \EC \EH % append % \BR \BC .. \EC \BC .. \EC \ER % % or % % \NC .. \NC .. \NC \NR (todo: optional last \NC) % alternative: % % (1) direct run, save content in macro, but only if needed % % todo % % (2) buffered table content % % \startbuffer % \startlinetablehead % \stoplinetablehead % \startlinetablebody % \stoplinetablebody % \stopbuffer % % \processlinetablebuffer[buffer] % % in buffer : head and body % % (3) unbuffered run, multipass % % - run with starting width zero / prev run % - clip on prev run % - flush real widths \writestatus{loading}{ConTeXt Table Macros / Line Tables} \unprotect \chardef\linetablesplitstate\zerocount \chardef\linetableheadstate \zerocount \edef\??ler{\??le:r:} \edef\??lec{\??le:c:} \edef\??lew{\??le:w:} \edef\??leh{\??le:h:} \edef\??led{\??le:d:} \newif\iflinetablepreroll \newif\ifinlinetable \newcount\linetablecolumn \newcount\linetablesubcol \newdimen\linetablewidth \newdimen\linetableheight \newbox \linetablecell \let\noflinetablecolumns\!!zerocount \let\noflinetablerows \!!zerocount \let\noflinetablelines \!!zerocount \let\noflinetableparts \!!zerocount \let\linetablepart \!!plusone \let\linetablestep \!!plusone \let\linetableline \!!zerocount \let\linetablerow \!!zerocount \let\linetablerows \!!zerocount \initializetablebox \zerocount % holds repeater \chardef\linetablehmode \zerocount \chardef\linetablepage \zerocount \chardef\linetablerepeat\zerocount \def\setuplinetable {\dotripleempty\dosetuplinetable} \def\dosetuplinetable[#1][#2][#3]% {\ifthirdargument \getparameters[\??le:#1:#2][#3]% \else\ifsecondargument \getparameters[\??lec#1][#2]% \else \getparameters[\??le][#1]% \fi\fi} \setuplinetable [\c!n=\!!maxcard, \c!lines=\!!maxcard, \c!nx=\plusone, \c!nleft=0, \c!repeat=\v!yes, % when \c!nleft>0, repeat on both pages \c!before=, \c!after=, \c!inbetween=\page, \c!distance=\zeropoint, \c!stretch=\v!no, \c!align=\c!right, \c!leftoffset=.25ex, \c!rightoffset=\linetableparameter\c!leftoffset, \c!maxwidth=\zeropoint, \c!width=5em, \c!height=\v!fit, % \v!line = faster \c!background=, \c!backgroundcolor=] \def\linetableparameter#1% {\csname\??le#1\endcsname} \def\doifelselinetablecparameter#1% {\ifcsname\??lec\number\linetablecolumn#1\endcsname \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\linetablecparameter#1% {\csname \ifcsname\??lec\number\linetablecolumn#1\endcsname \??lec\number\linetablecolumn \else \??le \fi #1\endcsname} \def\linetablerparameter#1% faster, leaner and meaner {\csname \ifnum\linetablerow=\zerocount % geen ifcase \ifcsname\??ler\v!header#1\endcsname \??ler\v!header#1% \else\ifcsname\??ler0#1\endcsname \??ler0#1% \else \s!empty \fi\fi \else \ifcsname\??ler\number\linetablerow#1\endcsname \??ler\number\linetablerow#1% \else\ifcsname\??ler\v!oddeven\linetablerow#1\endcsname \??ler\v!oddeven\linetablerow#1% \else \s!empty \fi\fi \fi \endcsname} \def\setnoftableslines {\doifelse{\linetableparameter\c!lines}\v!fit {% whitespace already added by vertical strut \ifdim\pagegoal<\maxdimen \scratchdimen\pagegoal \advance\scratchdimen -\pagetotal \else \scratchdimen\textheight \fi \getrawnoflines\scratchdimen \xdef\noflinetablelines{\the\noflines} \iflinetablepreroll \else \ifnum\noflinetablelines<\plustwo \page \setnoftableslines \fi \fi } {\xdef\noflinetablelines{\linetableparameter\c!lines}}} \def\startlinetablecell {\dosingleempty\dostartlinetablecell} \def\dostartlinetablecell[#1]% {\global\setbox\linetablecell\hbox\bgroup \iffirstargument \getparameters[\??lec\number\linetablecolumn][#1]% \fi \xdef\linetablestep{\linetablecparameter\c!nx}% \ifcase\linetablestep\or \scratchdimen\linetablecparameter\c!width \scratchskip \linetablecparameter\c!distance \else \scratchdimen \zeropoint \scratchskip \zeropoint \scratchcounter\linetablecolumn \dorecurse\linetablestep {\advance\scratchdimen\linetablecparameter\c!width %\advance\scratchskip \linetablecparameter\c!distance \global\advance \linetablecolumn\plusone \advance\scratchskip \linetablecparameter\c!distance }% \global\linetablecolumn\scratchcounter \fi \chardef\linetablemode \iflinetablepreroll \ifdim\scratchdimen>\zeropoint \zerocount \else \plustwo \fi \else \zerocount \fi \ifcase\linetablemode \ifcase\linetablehmode % nothing \or % fit, keep it simple \or \chardef\linetablemode\plusone % line \else % some already calculated height \fi \fi \setbox\scratchbox\hbox \bgroup \dontcomplain \hskip\linetablecparameter\c!leftoffset\relax % 0 = width, unknown height % 1 = width, fixed height % 2 = no width, auto hsize \ifnum\linetablemode<\plustwo \advance\scratchdimen-\linetablecparameter\c!leftoffset \advance\scratchdimen-\linetablecparameter\c!rightoffset \fi \ifcase\linetablemode \dosetraggedcommand{\linetablecparameter\c!align}% \vtop \ifdim\linetableheight>\zeropoint to\linetableheight \fi \bgroup \hsize\scratchdimen \raggedcommand \else \setalignmentswitch{\linetablecparameter\c!align}% \hbox \ifcase\linetablemode \or to\scratchdimen \fi \bgroup \ifcase\alignmentswitch\hss\or\hss\fi \fi \dostartattributes{\??lec\number\linetablecolumn}\c!style\c!color\empty \begstrut \ignorespaces} % \def\stoplinetablecell % {\unskip \endstrut % \dostopattributes % \ifcase\linetablemode % \endgraf % \else % \ifcase\alignmentswitch\else\hss\fi % \fi % \egroup % \hskip\linetablecparameter\c!rightoffset % \egroup % \iflinetablepreroll % \box\scratchbox % \else % \doif{\linetablecparameter\c!background}\v!color % {\backgroundline[\linetablecparameter\c!backgroundcolor]}% % {\box\scratchbox}% % \fi % \egroup} \newconditional\linetableautoheight \settrue\linetableautoheight \def\stoplinetablecell {\unskip \endstrut \dostopattributes \ifcase\linetablemode \endgraf \else \ifcase\alignmentswitch\else\hss\fi \fi \egroup \hskip\linetablecparameter\c!rightoffset \egroup \iflinetablepreroll \box\scratchbox \else \doifelse{\linetablecparameter\c!background}\v!color {\ifconditional\linetableautoheight \hbox{\blackrule [ \c!color=\linetablecparameter\c!backgroundcolor, \c!height=\linetablerparameter{x\c!height}, \c!depth=\linetablerparameter{x\c!depth}, \c!width=\wd\scratchbox]% \hskip-\wd\scratchbox\box\scratchbox}% \else \backgroundline[\linetablecparameter\c!backgroundcolor]{\box\scratchbox}% \fi}% {\box\scratchbox}% \fi \egroup} % \def\stoplinetablecell % {\unskip \endstrut % \dostopattributes % \ifcase\linetablemode % \endgraf % \else % \ifcase\alignmentswitch\else\hss\fi % \fi % \egroup % \hskip\linetablecparameter\c!rightoffset % \egroup % \iflinetablepreroll % \box\scratchbox % \else % \doifelse{\linetablecparameter\c!background}\v!color % {\ifconditional\linetableautoheight % % \hbox{\blackrule % % [ \c!color=\linetablecparameter\c!backgroundcolor, % % \c!height=\linetablerparameter{x\c!height}, % % \c!depth=\linetablerparameter{x\c!depth}, % % \c!width=\wd\scratchbox]% % % \hskip-\wd\scratchbox\box\scratchbox}% % \dp\scratchbox\linetablerparameter{x\c!depth}% % \ht\scratchbox\linetablerparameter{x\c!height}% % \framed % [\c!offset=\v!overlay, % \c!frameoffset=.5\linewidth, % \c!leftframe=\v!off,\c!rightframe=\v!off, % \c!background=\v!color, % \c!backgroundcolor=\linetablecparameter\c!backgroundcolor% % ]{\box\scratchbox}% % \else % \backgroundline[\linetablecparameter\c!backgroundcolor]{\box\scratchbox}% % \fi}% % {\box\scratchbox}% % \fi % \egroup} \def\savelinetablepart {\global\setbox\tablebox\linetablepart \ifnum\linetablepart=\zerocount \box\scratchbox % just storing \else \vbox {\ifvoid\tablebox\linetablepart\else\unvbox\tablebox\linetablepart\fi \doif{\linetablerparameter\c!background}\v!color {\backgroundline[\linetablerparameter\c!backgroundcolor]}% {\box\scratchbox}% is also arg to \backgroundline \endgraf \linetablerparameter\c!after}% \fi} \def\flushlinetableparts {\doglobal\increment\linetableline \ifnum\linetableline<\noflinetablelines % keep collecting \else \iflinetablepreroll % forget about them \else \dorecurse\noflinetableparts {\let\linetablepart\recurselevel \dp\tablebox\linetablepart\strutdepth % noindent en endgraf needed else whitespace mess-up! \whitespace % here not after verticalstrut \ifdim\topskipgap=\zeropoint\else \verticalstrut\nobreak\kern-\struttotal\kern-\parskip\nobreak\nointerlineskip % fix topskip \fi \noindent\strut\hbox to \hsize{\box\tablebox\linetablepart\hss}\endgraf \ifnum\linetablepart<\noflinetableparts\relax \linetableparameter\c!inbetween \fi}% \ifnum\linetablerows<\noflinetablerows\relax \linetableparameter\c!inbetween \else % after, later \fi \chardef\linetableheadstate\plusthree \global\setbox\tablebox\zerocount\emptybox % here \fi % reset \linetablerow will be an option, currently % starts at zero after split \globallet\linetablerow\!!zerocount \globallet\linetableline\!!zerocount \global\chardef\linetablepage\zerocount \global\linetablewidth\zeropoint \setnoftableslines \fi} \def\startlinetablepart {\global\linetablesubcol\zerocount \setbox\scratchbox\hbox\bgroup \doconvertfont{\linetablerparameter\c!style}% \startcolor[\linetablerparameter\c!color]% \ignorespaces} \def\stoplinetablepart {\ifnum\linetablepart>\zerocount \unskip \unskip % remove last intercolumn skip (distance+fill) \fi \stopcolor \egroup \iflinetablepreroll \else \ifcase\linetablepart % we're collecting the repeater \else \scratchdimen\hsize \advance\scratchdimen-\wd\scratchbox\relax \ifdim\scratchdimen>\linetableparameter\c!stretch\else \setbox\scratchbox\hbox to \hsize{\unhbox\scratchbox}% \fi \fi \fi} \def\checklinetablepart {\global\advance\linetablewidth\wd\linetablecell \global\advance\linetablecolumn\linetablestep \global\advance\linetablesubcol\linetablestep \relax %\message{\the\linetablecolumn,\the\linetablesubcol}\wait % from now on the column counter is already incremented \ifcase\linetablesplitstate \iflinetablepreroll \else \box\linetablecell % the columncounter is one ahead ! % \hskip\linetablecparameter\c!afstand \hskip\scratchskip \fi %%% \donefalse \ifcase\linetablerepeat\else % van te voren berekenen \scratchcounter\linetablecolumn\advance\scratchcounter-\plustwo \ifnum\linetablerepeat=\scratchcounter \donetrue % collecting repeater \fi \fi %%%% \ifdone % collecting repeater \else \ifnum\linetablecolumn>\getvalue{\??le::\linetablepart}\relax \donetrue \fi \fi \ifdone \stoplinetablepart \iflinetablepreroll \else \savelinetablepart \fi \ifcase\linetablepage \or \global\chardef\linetablepage \plustwo \else \global\chardef\linetablepage \plusone \fi \doglobal\increment\linetablepart \global\linetablewidth\wd\tablebox\zerocount \startlinetablepart \fi \else \donefalse \!!doneafalse \ifcase\linetablerepeat\else % van te voren berekenen \scratchcounter\linetablecolumn \advance\scratchcounter-\plustwo \ifnum\linetablerepeat=\scratchcounter \donetrue % collecting repeater \fi \fi \ifdone \!!doneatrue % collecting repeater \else\ifdim\linetablewidth>\hsize \donetrue \else % \global\advance\linetablewidth\linetablecparameter\c!afstand\relax \global\advance\linetablewidth\scratchskip \ifdim\linetablewidth>\hsize % ? \donetrue \fi \fi\fi \ifdone \stoplinetablepart \savelinetablepart \ifcase\linetablepage \or \global\chardef\linetablepage \plustwo \else \global\chardef\linetablepage \plusone \fi \doglobal\increment\linetablepart \ifnum\linetablepart>\noflinetableparts \globallet\noflinetableparts\linetablepart \initializetablebox\linetablepart \fi \global\linetablewidth\wd\linetablecell \startlinetablepart \if!!doneb \else \ifcase\linetablerepeat \else % check for left/right page \ifcase\linetablepage\donetrue\or\donetrue\or\donefalse\fi\ifdone % insert repeater \global\advance\linetablewidth\wd\tablebox\zerocount \iflinetablepreroll\kern\wd\else\unhcopy\fi\tablebox\zerocount \fi \fi \fi \fi \iflinetablepreroll \else \box\linetablecell % the columncounter is one ahead ! % \hskip\linetablecparameter\c!afstand % \hskip\scratchskip \dorecurse\linetablestep{\strut\hfil}% \hskip\scratchskip \fi \fi} % \linetableparameter\c!var -> \@@levar (when no classes) \def\startlinetablerun % to do: quit when nested {\bgroup \inlinetabletrue % autowidth \doif{\linetableparameter\c!maxwidth}\v!fit {\setuplinetable[\c!maxwidth=\zeropoint]}% \processaction [\linetableparameter\c!stretch] [ \v!no=>{\setuplinetable[\c!stretch=\maxdimen]},% no stretch \v!yes=>{\setuplinetable[\c!stretch=\zeropoint]}]% max stretch \chardef\linetablerepeat\linetableparameter\c!nleft \chardef\linetablesplitstate % = \ifdim\linetableparameter\c!maxwidth>\zeropoint \zerocount \else \plusone \fi % optional prevdepth correction \iflinetablepreroll \globallet\noflinetablerows\!!zerocount \else \linetableparameter\c!before \fi \globallet\linetablerows\!!zerocount \globallet\noflinetablecolumns\!!zerocount \globallet\noflinetableparts\!!zerocount \!!counta\zerocount \def\docommand##1% {\doglobal\increment\noflinetableparts \advance\!!counta##1% \setxvalue{\??le::\noflinetableparts}{\the\!!counta}}% \processcommacommand[\linetableparameter\c!n]\docommand \initializetableboxes\noflinetableparts \ifcase\linetablerepeat \globallet\linetablepart\!!plusone \else \globallet\linetablepart\!!zerocount % repeater \fi \globallet\linetablestep\!!plusone \globallet\linetableline\!!zerocount \globallet\linetablerow \!!zerocount \global\linetablecolumn \zerocount \global\linetablesubcol \zerocount \global\linetablewidth \zeropoint \iflinetablepreroll \else \ifdim\pagetotal>\zeropoint \verticalstrut\kern-\struttotal \fi \fi \setnoftableslines \checklinetablepage \let\BR\linetableBR \let\ER\linetableER \let\BH\linetableBR \let\EH\linetableER \let\BC\linetableBC \let\EC\linetableEC \let\NC\linetableNC \let\NR\linetableNR \flushlinetablehead} \def\stoplinetablerun {\globallet\linetableline\!!maxcard \chardef\linetableheadstate\zerocount % blocked \flushlinetableparts \iflinetablepreroll \else \linetableparameter\c!after \fi \globallet\linetablepart \!!zerocount \globallet\noflinetableparts\!!zerocount \egroup} % \def\checklinecolumnwidth % {\ifundefined{\??lew\number\linetablecolumn}% % \donetrue % \else\ifdim\getvalue{\??lew\number\linetablecolumn}<\wd\linetablecell % \donetrue % \else % \donefalse % \fi\fi % \ifdone % \setxvalue{\??lew\number\linetablecolumn}{\the\wd\linetablecell}% % \fi} % % \def\checklinecolumnwidth % {\ifcsname\??lew\number\linetablecolumn\endcsname % \ifdim\csname\??lew\number\linetablecolumn\endcsname<\wd\linetablecell % \donetrue % \else % \donefalse % \fi % \else % \donetrue % \fi % \ifdone % \setxvalue{\??lew\number\linetablecolumn}{\the\wd\linetablecell}% % \fi} % \def\checklinecolumnwidth % {\expandafter\xdef\csname\??lew\number\linetablecolumn\endcsname % {\expandafter\ifx\csname\??lew\number\linetablecolumn\endcsname\relax % \the\wd\linetablecell % \else\ifdim\csname\??lew\number\linetablecolumn\endcsname<\wd\linetablecell % \the\wd\linetablecell % \else % \csname\??lew\number\linetablecolumn\endcsname % \fi\fi}} \def\checklinecolumndimension#1#2#3% {\expandafter\xdef\csname#1\number#3\endcsname {\expandafter\ifx\csname#1\number#3\endcsname\relax \the#2\linetablecell \else\ifdim\csname#1\number#3\endcsname<#2\linetablecell \the#2\linetablecell \else \csname#1\number#3\endcsname \fi\fi}} \def\checklinecolumnwidth {\checklinecolumndimension\??lew\wd\linetablecolumn} \def\checklinecolumnheight{\checklinecolumndimension\??leh\ht\linetablerow} \def\checklinecolumndepth {\checklinecolumndimension\??led\dp\linetablerow} \def\linetableBR {\dosingleempty\dolinetableBR} \def\dolinetableBR[#1]% #1 not yet implemented {\ifnum\linetableheadstate=1\else \doglobal\increment\linetablerow \doglobal\increment\linetablerows \fi \global\linetablecolumn\plusone \global\linetablesubcol\plusone % \linetableheight\linetablerparameter\c!height % % \ifx\linetableheight\empty % % nothing % \else\ifx\linetableheight\v!fit % % keep it simple % \else\ifx\linetableheight\v!line % \chardef\linetablemode\plusone % \else % \!!heighta\linetableheight % \advance\!!heighta-\strutdepth % \fi\fi\fi % \linetableheight\zeropoint \edef\!!stringa{\linetablerparameter\c!height}% \ifx\!!stringa\empty \chardef\linetablehmode\zerocount \else\ifx\!!stringa\v!fit \chardef\linetablehmode\plusone \else\ifx\!!stringa\v!line \chardef\linetablehmode\plustwo \else \linetableheight\!!stringa \advance\linetableheight-\strutdepth \fi\fi\fi % \startlinetablepart} \def\linetableBC {\startlinetablecell} \def\linetableEC {\stoplinetablecell \iflinetablepreroll \checklinecolumnwidth \checklinecolumnheight \checklinecolumndepth \fi \checklinetablepart} \def\linetableER {% \stoplinetablecell % no \box\linetablecell, i.e. dummy columnn, last \NC \NR \stoplinetablepart \savelinetablepart \advance\linetablecolumn \minusone \ifnum\linetablecolumn>\noflinetablecolumns \xdef\noflinetablecolumns{\number\linetablecolumn}% \fi \flushlinetableparts \global\linetablecolumn\zerocount \global\linetablewidth \zeropoint \ifcase\linetablerepeat \globallet\linetablepart\!!plusone \else \globallet\linetablepart\!!zerocount % repeater \fi \checklinetablepage \flushlinetablehead} \def\checklinetablepage {\global\chardef\linetablepage\zerocount \ifcase\linetablerepeat \else \ifcase\linetablepage \doif{\linetableparameter\c!repeat}\v!no {\global\chardef\linetablepage\doifoddpageelse\plusone\plustwo}% \fi \fi} \def\flushlinetablehead {\ifcase\linetableheadstate % 0 blocked \or % 1 doing head \or % 2 head done \or % 3 trigger flush \chardef\linetableheadstate\plusone \the\@@linetablehead\relax \chardef\linetableheadstate\plustwo \fi} \def\linetableNC % first time special treatment {\relax \ifcase\linetablecolumn \linetableBR \else \linetableEC \fi \linetableBC} % beware, this will result in BR BC EC BC NR \def\linetableNR {\stoplinetablecell % dummy \linetableER} \def\startlinetable {\startlinetablerun} \def\stoplinetable {\stoplinetablerun} \def\startlinetableanalysis {\bgroup \linetableprerolltrue \trialtypesettingtrue \startlinetablerun} \def\stoplinetableanalysis {\stoplinetablerun \egroup \globallet\noflinetablerows\linetablerows \dorecurse\noflinetablerows % global, from last run {\linetableparameter\c!n} {%\writestatus{linetable}{\recurselevel->\getvalue{\??lew\recurselevel}}% \setevalue{\??ler\recurselevel x\c!height}{\getvalue{\??leh\recurselevel}}% \setevalue{\??ler\recurselevel x\c!depth }{\getvalue{\??led\recurselevel}}% \letgvalue{\??leh\recurselevel}\!!zeropoint \letgvalue{\??led\recurselevel}\!!zeropoint} \dorecurse\noflinetablecolumns % global, from last run {\linetableparameter\c!n} {%\writestatus{linetable}{\recurselevel->\getvalue{\??lew\recurselevel}}% \setevalue{\??lec\recurselevel\c!width}{\getvalue{\??lew\recurselevel}}% \letgvalue{\??lew\recurselevel}\!!zeropoint}} % init next table % todo: store in box instead of macro \newtoks \@@linetablehead \long\def\startlinetablehead#1\stoplinetablehead {\ifinlinetable \@@linetablehead\emptytoks \fi \chardef\linetableheadstate3 % full \@@linetablehead{#1}% \ifinlinetable \flushlinetablehead \fi} \def\linetableBH {\ifx\EC\relax % signal, grabbing lines \else \@@linetablehead\emptytoks \fi \pushmacro\BC \pushmacro\EC \def\BC##1\EC{\appendtoks##1\to\@@linetablehead}% \let\EC\relax} % signal \def\linetableEH {\popmacro\EC \popmacro\BC \@EA\startlinetablehead\the\@@linetablehead\stoplinetablehead} \let\startlinetablebody\donothing \let\stoplinetablebody \donothing \def\processlinetablebuffer {\dosingleempty\doprocesslinetablebuffer} \def\doprocesslinetablebuffer[#1]% {\bgroup \let\startlinetable\donothing \let\stoplinetable \donothing \startlinetableanalysis\getbuffer[#1]\stoplinetableanalysis \startlinetablerun \getbuffer[#1]\stoplinetablerun \egroup} \def\processlinetablefile#1% {\bgroup \let\startlinetable\donothing \let\stoplinetable \donothing \startlinetableanalysis\readfile{#1}\donothing\donothing\stoplinetableanalysis \startlinetablerun \readfile{#1}\donothing\donothing\stoplinetablerun \egroup} % will go away: \def\processlinetableXMLfile#1% {\bgroup \let\startlinetable\donothing \let\stoplinetable \donothing \startlinetableanalysis\processXMLfile{#1}\stoplinetableanalysis \startlinetablerun \processXMLfile{#1}\stoplinetablerun \egroup} \protect \endinput \doifnotmode{demo}{\endinput} \setuplinetable[n=6,m={2,2,2},lines=25] % m ? \setuplinetable[c][1] [width=2cm,background=color,backgroundcolor=red] \setuplinetable[c][4] [width=3cm,background=color,backgroundcolor=yellow] \setuplinetable[c][6] [width=3cm,background=color,backgroundcolor=magenta] \setuplinetable[r][odd] [background=color,backgroundcolor=gray] \setuplinetable[r][even][background=color,backgroundcolor=green] \starttext \showframe \showstruts \setupcolors[state=start] \setuppagenumbering[alternative=doublesided]\page[left] \startlinetable \NC aaa\crlf aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR \dorecurse{100}{\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR} \stoplinetable \startlinetable \NC[style=slanted,color=green,background=color,backgroundcolor=darkred,nx=2,uitlijnen=middle] xxx \NC yy \NC ddddd \NC eeee \NC ff \NC \NR \dorecurse{100}{\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR} \stoplinetable % \startbuffer[lt] % \NC aaa\crlf aaa \NC bb \NC c \NC ddddd \NC ee \NC ff \NC \NR % \NC aaa\crlf aaa \NC b \NC cc \NC ddd \NC eeee \NC f \NC \NR % \stopbuffer % % \processlinetablebuffer[lt] \stoptext context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-fro.mkii0000644000175000017500000000202514536300610024662 0ustar hillehille%D \module %D [ file=enco-fro, %D version=2000.08.20, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Romanian Input Filter, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D These definitions used to be part of lang-ita.tex. \unprotect \installactivecharacter " \startlanguagespecifics[\s!ro] \installcompoundcharacter "a {\acircumflex} \installcompoundcharacter "i {\icircumflex} \installcompoundcharacter "s {\scedilla} \installcompoundcharacter "t {\tcedilla} \installcompoundcharacter "A {\Acircumflex} \installcompoundcharacter "I {\Icircumflex} \installcompoundcharacter "S {\Scedilla} \installcompoundcharacter "T {\Tcedilla} \installcompoundcharacter "` {\startdelimitedtext[\v!quotation]} \installcompoundcharacter "' {\stopdelimitedtext} \stoplanguagespecifics \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/math-frc.mkii0000644000175000017500000001601114536300610024653 0ustar hillehille%D \module %D [ file=math-frc, %D version=2007.07.19, %D title=\CONTEXT\ Math Macros, %D subtitle=Fractions, %D author={Hans Hagen \& Taco Hoekwater \& Aditya Mahajan}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Math Macros / Fractions} \unprotect \unexpanded\def\exmthfont#1% {\symbolicsizedfont#1\plusone{MathExtension}} \def\domthfrac#1#2#3#4#5#6#7% {\begingroup \mathsurround\zeropoint \setbox0\hbox{$#1 #6$}% \setbox2\hbox{$#1 #7$}% \dimen0\wd0 \ifdim\wd2>\dimen0 \dimen0\wd2 \fi \setbox4\hbox to \dimen0{\exmthfont#2#3\leaders\hbox{#4}\hss#5}% \mathord{\vcenter{{\offinterlineskip \hbox to \dimen0{\hss\box0\hss}% \kern \ht4% \hbox to \dimen0{\hss\copy4\hss}% \kern \ht4% \hbox to \dimen0{\hss\box2\hss}}}}% \endgroup} \def\domthsqrt#1#2#3#4#5% {\begingroup \mathsurround\zeropoint \setbox0\hbox{$#1 #5$}% \dimen0=1.05\ht0 \advance\dimen0 1pt \ht0 \dimen0 \dimen0=1.05\dp0 \advance\dimen0 1pt \dp0 \dimen0 \dimen0\wd0 \setbox4\hbox to \dimen0{\exmthfont#2\leaders\hbox{#3}\hfill#4}% \delimitershortfall=0pt \nulldelimiterspace=0pt \setbox2\hbox{$\left\delimiter"0270370 \vrule height\ht0 depth \dp0 width0pt \right.$}% \mathord{\vcenter{\hbox{\copy2 \rlap{\raise\dimexpr\ht2-\ht4\relax\copy4}\copy0}}}% \endgroup} \unexpanded\def\mthfrac#1#2#3#4#5{\mathchoice {\domthfrac\displaystyle \textface {#1}{#2}{#3}{#4}{#5}} {\domthfrac\textstyle \textface {#1}{#2}{#3}{#4}{#5}} {\domthfrac\scriptstyle \scriptface {#1}{#2}{#3}{#4}{#5}} {\domthfrac\scriptscriptstyle\scriptscriptface{#1}{#2}{#3}{#4}{#5}}} \unexpanded\def\mthsqrt#1#2#3{\mathchoice {\domthsqrt\displaystyle \textface {#1}{#2}{#3}} {\domthsqrt\textstyle \textface {#1}{#2}{#3}} {\domthsqrt\scriptstyle \textface {#1}{#2}{#3}} {\domthsqrt\scriptscriptstyle\textface {#1}{#2}{#3}}} %D Moved from math-new.tex (not that new anyway: %D \macros %D {genfrac} %D %D [TH] The definition of \type {\genfrac} \& co. is not %D trivial, because it allows some flexibility. This is %D supposed to be a user||level command, but will fail quite %D desparately if called outside math mode (\CONTEXT\ redefines %D \type {\over}) %D %D [HH] We clean up this macro a bit and (try) to make it %D understandable. The expansion is needed for generating %D the second argument to \type {\dogenfrac}, which is to %D be a control sequence like \type {\over}. \unexpanded\def\genfrac#1#2#3#4% {\edef\!!stringa {#1#2}% \expanded {\dogenfrac{#4}% \csname \ifx @#3@% \ifx\!!stringa\empty \strippedcsname\normalover \else \strippedcsname\normaloverwithdelims \fi \else \ifx\!!stringa\empty \strippedcsname\normalabove \else \strippedcsname\normalabovewithdelims \fi \fi \endcsname}% {#1#2#3}} \def\dogenfrac#1#2#3#4#5% {{#1{\begingroup#4\endgroup#2#3\relax#5}}} %D \macros %D {dfrac, tfrac, frac, dbinom, tbinom, binom} %D %D \startbuffer %D $\dfrac {1}{2} \tfrac {1}{2} \frac {1}{2}$ %D $\dbinom{1}{2} \tbinom{1}{2} \binom{1}{2}$ %D \stopbuffer %D %D \typebuffer %D %D \getbuffer \unexpanded\def\dfrac {\genfrac\empty\empty{}\displaystyle} \unexpanded\def\tfrac {\genfrac\empty\empty{}\textstyle} \unexpanded\def\frac {\genfrac\empty\empty{}\donothing} \unexpanded\def\dbinom{\genfrac()\zeropoint\displaystyle} \unexpanded\def\tbinom{\genfrac()\zeropoint\textstyle} \unexpanded\def\binom {\genfrac()\zeropoint\donothing} \unexpanded\def\xfrac {\genfrac\empty\empty{}\scriptstyle} \unexpanded\def\xxfrac{\genfrac\empty\empty{}\scriptscriptstyle} \unexpanded\def\frac#1#2{\mathematics{\genfrac\empty\empty{}\donothing{#1}{#2}}} %D \macros %D {cfrac} %D %D \startbuffer %D $\cfrac{12}{3} \cfrac[l]{12}{3} \cfrac[c]{12}{3} \cfrac[r]{12}{3}$ %D $\cfrac{1}{23} \cfrac[l]{1}{23} \cfrac[c]{1}{23} \cfrac[r]{1}{23}$ %D \stopbuffer %D %D \typebuffer %D %D \getbuffer %D %D Now we can align every combination we want: %D %D \startbuffer %D $\cfrac{12}{3} \cfrac[l]{12}{3} \cfrac[c]{12}{3} \cfrac[r]{12}{3}$ %D $\cfrac{1}{23} \cfrac[l]{1}{23} \cfrac[c]{1}{23} \cfrac[r]{1}{23}$ %D $\cfrac[cl]{12}{3} \cfrac[cc]{12}{3} \cfrac[cr]{12}{3}$ %D $\cfrac[lc]{1}{23} \cfrac[cc]{1}{23} \cfrac[rc]{1}{23}$ %D \stopbuffer %D %D \typebuffer %D %D \getbuffer \definecomplexorsimple\cfrac \def\simplecfrac {\docfrac[cc]} \def\complexcfrac[#1]{\docfrac[#1cc]} \def\docfrac[#1#2#3]#4#5% {{\displaystyle \frac {\strut \ifx r#1\hfill\fi#4\ifx l#1\hfill\fi}% {\ifx r#2\hfill\fi#5\ifx l#2\hfill\fi}% \kern-\nulldelimiterspace}} %D \macros %D {splitfrac, splitdfrac} %D %D Occasionally one needs to typeset multi||line fractions. %D These commands use \tex{genfrac} to create such fractions. %D %D \startbuffer %D \startformula %D a=\frac{ %D \splitfrac{xy + xy + xy + xy + xy} %D {+ xy + xy + xy + xy} %D } %D {z} %D =\frac{ %D \splitdfrac{xy + xy + xy + xy + xy} %D {+ xy + xy + xy + xy} %D } %D {z} %D \stopformula %D \stopbuffer %D %D \typebuffer \getbuffer %D %D These macros are based on Michael J.~Downes posting on %D comp.text.tex on 2001/12/06 \unexpanded\def\splitfrac#1#2% {\genfrac\empty\empty\zeropoint\textstyle% {\textstyle#1\quad\hfill}% {\textstyle\hfill\quad\mathstrut#2}} \unexpanded\def\splitdfrac#1#2% {\genfrac\empty\empty\zeropoint\displaystyle% {#1\quad\hfill} {\hfill\quad\mathstrut #2}} %D For thee moment here, but it might move: %D \macros %D {qedsymbol} %D %D [HH] The general Quod Erat Domonstrandum symbol is defined %D in such a way that we can configure it. Because this symbol %D is also used in text mode, we make it a normal text symbol %D with special behavior. \unexpanded\def\qedsymbol#1% {\ifhmode \unskip~\hfill#1\par \else\ifmmode \eqno#1\relax % Do we really need the \eqno here? \else \leavevmode\hbox{}\hfill#1\par \fi\fi} \definesymbol [qed] [\qedsymbol{\mathematics{\square}}] %D \macros %D {QED} %D %D [HH] For compatbility reasons we also provide the \type %D {\QED} command. In case this command is overloaded, we still %D have the symbol available. \symbol[qed] \unexpanded\def\QED{\symbol[qed]} %D \macros %D {mathhexbox} %D %D [TH] \type {\mathhexbox} is also user||level (already %D defined in Plain \TEX). It allows to get a math character %D inserted as if it was a text character. \unexpanded\def\mathhexbox#1#2#3% {\mathtext{$\mathsurround\zeropoint\mathchar"#1#2#3$}} %D \macros %D {boxed} %D %D [HH] Another macro that users expect (slightly adapted): \unexpanded\def\boxed {\ifmmode\expandafter\mframed\else\expandafter\framed\fi} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-syn.mkii0000644000175000017500000003170214536300610024740 0ustar hillehille%D \module %D [ file=strc-syn, %D version=1997.03.31, %D title=\CONTEXT\ Structure Macros, %D subtitle=Synonyms and Sorts, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Structure Macros / Synonyms and Sorts} \unprotect % \checkdefined kan hierheen % Formaat tex-utility-input-file : % % synonym entry {tag} {pure} {text} {synonym} % % Deze file wordt met het programma TeXUtil omgezet in een % in te lezen TeXFile met de commando's: % % \synonymentry {tag} {pure} {text} {synonym} \newif\ifsynonymmeaning % todo: \def\synonymparameter#1{\csname\??sm\currentsynonym#1\endcsname} \def\dosetupsynonyms[#1][#2]% {\getparameters[\??sm#1][#2]} \def\setupsynonyms {\dodoubleargument\dosetupsynonyms} \def\doresetsynonym#1% {\letvalue{#1\s!entry}\gobblethreearguments} \def\dohandlesynonymentry#1#2#3#4% {\bgroup \global\utilitydonetrue \syndef {\doattributes{\??sm#1}\c!textstyle\c!textcolor{#3}} \ConvertToConstant\doifelse{#4}{}{\unknown}{#4}\par \egroup} \def\synonymentry#1% {\executeifdefined{#1\s!entry}\gobblethreearguments} \def\dosetsynonym#1% {\doifdefinedelse{\??sm#1\c!command} {\setvalue{#1\s!entry}{\getvalue{\??sm#1\c!command}}} % 3 argumenten {\setvalue{#1\s!entry}{\dohandlesynonymentry{#1}}}} \def\synonymparameter#1{\csname\??sm\currentsynonym#1\endcsname} \def\doplacelistofsynonyms#1#2% {\whitespace \begingroup \def\currentsynonym{#1}% \definedescription % nog eens een class van maken, net als framed [syndef] [\c!location=\synonymparameter\c!location, \c!width=\synonymparameter\c!width, \c!distance=\synonymparameter\c!distance, \c!sample=\synonymparameter\c!sample, \c!hang=\synonymparameter\c!hang, \c!align=\synonymparameter\c!align, \c!before=\synonymparameter\c!before, \c!inbetween=\synonymparameter\c!inbetween, \c!after=\synonymparameter\c!after, \c!indentnext=\synonymparameter\c!indentnext, \c!headstyle=\synonymparameter\c!headstyle, \c!headcolor=\synonymparameter\c!headcolor, \c!style=, \c!color=]% \setupwhitespace[\v!none]% %doutilities{#1}\jobname{#2}\relax\par % no longer \par \doutilities{#1}\jobname{#1}\relax\relax \endgroup \ifutilitydone\else\nowhitespace\fi} \def\docompletelistofsynonyms#1#2% expansion needed to avoid v! (due to french active !) {\expanded{\systemsuppliedchapter[#1]{\noexpand\headtext{#2}}}% \doplacelistofsynonyms{#1}{#2}% \page[\v!yes]} \def\processsynonym#1#2#3% {\begingroup % anders in mathmode lege \hbox, zie eenheden \ifsynonymmeaning \synonymmeaningfalse \doattributes{\??sm#1}\c!synonymstyle\c!synonymcolor{#3}% \else \dontleavehmode \doattributes{\??sm#1}\c!textstyle\c!textcolor{#2}% \fi \endgroup} \def\getsynonymmeaning#1#2#3% {\bgroup \doifundefined{#2#3} {\setgvalue{#2#3}{{\tt[#3]}}% \showmessage\m!systems{18}{#1,#3}}% \synonymmeaningtrue \getvalue{#2#3}% \egroup} \def\dowritesynonym#1#2#3#4% {\begingroup % anders in mathmode lege \hbox \defconvertexpanded\asciisynonym{\getvalue{\??sm#1\c!expansion}}{#3}% \defconvertexpanded\asciimeaning{\getvalue{\??sm#1\c!expansion}}{#4}% \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {\asciimeaning}}% \endgroup} \def\reprocesssynonym#1#2#3% {\processsynonym{#1}{#2}{#3}% \getvalue{\??sm#1\c!next}} % not formally documented \def\preexecutesynonym#1#2#3#4% {\ifdoinpututilities \else \dowritesynonym{#1}{#2}{#3}{#4}% \unexpanded\setgvalue{#2}{\reprocesssynonym{#1}{#3}{#4}}% \fi} \def\executesynonym#1#2#3#4% {\preexecutesynonym{#1}{#2}{#3}{#4}% \processsynonym{#1}{#3}{#4}% \getvalue{\??sm#1\c!next}} % not formally documented \def\expandsynonym#1#2#3#4% {{\synonymmeaningtrue \processsynonym{#1}{#3}{#4}}} \def\dodoloadsynonym#1#2#3#4% {\setgvalue{#2}{\executesynonym{#1}{#2}{#3}{#4}}} \def\doloadsynonym#1% {\setvalue{#1\s!entry}##1##2##3% {\doifelsenothing{##1} {\dodoloadsynonym{#1}{##2}{##2}{##3}} {\dodoloadsynonym{#1}{##1}{##2}{##3}}% \global\utilitydonetrue}} \def\doloadsynonyms#1#2% {\bgroup \let\dosetsynonym\doloadsynonym \showmessage\m!systems{19}{#2}% \doutilities{#1}\jobname{#1}\relax\relax \egroup \setvalue{\s!check#1}##1{}} \def\dodocomplexsynonym[#1][#2]#3#4% {\doifsomething{#2} {\getvalue{\s!check#1}{#2}% \doglobal\appendtoks\setvalue{#2}{#2}\to\simplifiedcommands \doifelsevalue{\??sm#1\c!conversion}\v!yes {\unexpanded\setgvalue{#2}{\expandsynonym{#1}{#2}{#3}{#4}}} {\doifelsevalue{\??sm#1\c!state}\v!start {\doifelsevalue{\??sm#1\c!criterium}\v!all {\preexecutesynonym{#1}{#2}{#3}{#4}} {\unexpanded\setgvalue{#2}{\executesynonym{#1}{#2}{#3}{#4}}}} {\unexpanded\setgvalue{#2}{\processsynonym{#1}{#3}{#4}}}}}} \def\docomplexsynonym[#1][#2][#3]#4#5% {\ifthirdargument \dodocomplexsynonym[#2][#1#3]{#4}{#5}% \else \dodocomplexsynonym[#2][#1#4]{#4}{#5}% \fi} \def\doregistersynonymlanguage#1% {\savesortlanguage{\getvalue{\??sm#1\s!language}}% \immediatewriteutility{s l {#1} {\getvalue{\??sm#1\s!language}}}} \def\dodefinesynonyms[#1][#2][#3][#4]% {\iffourthargument \unexpanded\def#4##1{\getsynonymmeaning{#1}{\??sm:#1:}{##1}}% \ifthirdargument \unexpanded\def#3##1{\getvalue{\??sm:#1:##1}}% \fi \setvalue{#1}{\dotripleempty\docomplexsynonym[\??sm:#1:][#1]}% \else \ifthirdargument \unexpanded\def#3##1{\getsynonymmeaning{#1}{}{##1}}% \fi \setvalue{#1}{\dotripleempty\docomplexsynonym[][#1]}% \fi \dosetupsynonyms [#1]% [\c!synonymstyle=,\c!textstyle=, \c!headstyle=,\c!headcolor=, \c!state=\v!start,\c!criterium=, \c!location=\v!left,\c!width=5em,\c!distance=0pt, \c!sample=,\c!hang=,\c!align=, \c!before=,\c!inbetween=,\c!after=, \c!indentnext=\v!no, \c!expansion=, \s!language=\currentmainlanguage]% \doglobal\appendtoksonce \doregistersynonymlanguage{#1}% \to \everysavesortkeys \presetheadtext[#2=\Word{#2}]% changes the \if...argument \addutilityreset{#1}% \setvalue{\e!setup #2\e!endsetup}{\dodoubleargument\getparameters[\??sm#1]}% to be obsolete \setvalue{\s!set #1}{\dosetsynonym{#1}}% \setvalue{\s!reset #1}{\doresetsynonym{#1}}% \setvalue{\s!check #1}##1{\checkdefined{synonym}{#1}{##1}}% \setvalue{\e!load #2}{\doloadsynonyms{#1}{#2}}% \setvalue{\e!place\e!listof #2}{\doplacelistofsynonyms{#1}{#2}}% \setvalue{\e!complete\e!listof#2}{\docompletelistofsynonyms{#1}{#2}}} \def\definesynonyms {\doquadrupleempty\dodefinesynonyms} % Formaat tex-utility-input-file : % % synonym entry {tag} {pure} {text} {} % % Deze file wordt met het programma TeXUtil omgezet in een % in te lezen TeXFile met de commando's: % % \synonymentry {tag} {pure} {text} {} \def\dosetupsorting[#1][#2]% {\getparameters[\??so#1][#2]} \def\setupsorting {\dodoubleargument\dosetupsorting} \def\doresetsort#1% {\letvalue{#1\s!entry}\gobblethreearguments} \def\dosetsort#1% {\setvalue{#1\s!entry}##1##2##3% {\let\dowritesort\gobblethreearguments \global\utilitydonetrue \bgroup \doifdefinedelse{\??so#1\c!command} {\getvalue{\??so#1\c!command}{##2}} % 1 argument {\getvalue{\??so#1\c!before}% \doattributes{\??so#1}\c!style\c!color{##2}% \getvalue{\??so#1\c!after}}% \egroup}} \def\doplacelistofsorts#1% NOG EEN RUWE VERSIE MAKEN {\whitespace % ZONDER WITRUIMTE ETC ETC \begingroup \setupwhitespace[\v!none]% \doutilities{#1}\jobname{#1}\relax\relax \endgroup \ifutilitydone\else\nowhitespace\fi} % to be tested % % \def\doplacelistofsorts#1% NOG EEN RUWE VERSIE MAKEN % {\startpacked % %doutilities{#1}\jobname{#1}\relax\par % \doutilities{#1}\jobname{#1}\relax\relax % \stoppacked} \def\docompletelistofsorts#1#2% {\expanded{\systemsuppliedchapter[#1]{\noexpand\headtext{#2}}}% \doplacelistofsorts{#1}% \page[\v!yes]} % todo: % % \def\placelistofsorts[#1]% % {\doplacelistofsorts{#1}} \def\processsort#1#2#3% {\dontleavehmode \begingroup % was \bgroup \doattributes{\??so#1}\c!style\c!color{#2}% \endgroup} % was \egroup \def\dowritesort#1#2#3% {\bgroup \defconvertexpanded\asciisynonym{\getvalue{\??so#1\c!expansion}}{#3}% \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {}}% \egroup} \def\synonymentry#1% {\executeifdefined{#1\s!entry}\gobblethreearguments} \def\reprocesssort#1#2#3% {\processsort{#1}{#2}{#3}% \getvalue{\??so#1\c!next}} \def\preexecutesort#1#2#3% {\ifdoinpututilities \else \dowritesort{#1}{#2}{#3}% \unexpanded\setgvalue{#2}{\reprocesssort{#1}{#3}{#2}}% \fi} \def\executesort#1#2#3% {\begingroup \let\executesort\thirdofthreearguments % Trick needed for nested logo's. \preexecutesort{#1}{#2}{#3}% \processsort{#1}{#3}{#2}% \endgroup \getvalue{\??so#1\c!next}} % not formally documented \def\doloadsort#1% {\setvalue{#1\s!entry}##1##2##3% {\setgvalue{##1}{##2}% \global\utilitydonetrue}} \def\doloadsort#1#2% {\bgroup \let\dosetsort\doloadsort \showmessage\m!systems{20}{#2}% \doutilities{#1}\jobname{#1}\relax\relax \egroup \setvalue{\s!check#1}##1{}} \def\dodocomplexsort[#1][#2]#3% {\doifsomething{#2} {\getvalue{\s!check#1}{#2}% \doglobal\appendtoks\setvalue{#2}{#2}\to\simplifiedcommands \doifelsevalue{\??so#1\c!state}\v!start {\doifelsevalue{\??so#1\c!criterium}\v!all {\preexecutesort{#1}{#2}{#3}} {\unexpanded\setgvalue{#2}{\executesort{#1}{#2}{#3}}}} {\unexpanded\setgvalue{#2}{\processsort{#1}{#3}{#2}}}}} \def\docomplexsort[#1][#2][#3]#4% {\ifthirdargument \dodocomplexsort[#2][#1#3]{#4}% \else \dowritesort{#2}{#4}{#4}% \fi} % if #3=\relax or \v!none, then no command but still protected \def\doregistersortinglanguage#1% {\savesortlanguage{\getvalue{\??so#1\s!language}}% \immediatewriteutility{s l {#1} {\getvalue{\??so#1\s!language}}}} \def\dodefinesorting[#1][#2][#3]% {\getparameters[\??so#1] [%\c!command=, % we test for defined ! \c!state=\v!start, \c!criterium=, \c!style=, \c!before=, \c!after=\endgraf, \c!expansion=, \s!language=\currentmainlanguage]% \doglobal\appendtoksonce \doregistersortinglanguage{#1}% \to \everysavesortkeys \ifthirdargument \ConvertConstantAfter\doifnot{#3}\v!none {\ifx#3\relax \else \def#3##1{\getvalue{\??so:#1:##1}} \fi}% \setvalue{#1}{\dotripleempty\docomplexsort[\??so:#1:][#1]}% \else \setvalue{#1}{\dotripleempty\docomplexsort[][#1]}% \fi \addutilityreset{#1}% \presetheadtext[#2=\Word{#2}]% after \ifthirdargument -) \setvalue{\e!setup#2\e!endsetup}[##1]{\getparameters[\??so#1][##1]}% to be obsolete \setvalue{\s!set#1}{\dosetsort{#1}}% \setvalue{\s!reset#1}{\doresetsort{#1}}% \setvalue{\e!load#2}{\doloadsort{#1}{#2}}% \setvalue{\s!check#1}##1{\checkdefined{sort}{#1}{##1}}% \setvalue{\e!place\e!listof#2}{\doplacelistofsorts{#1}}% \setvalue{\e!complete\e!listof#2}{\docompletelistofsorts{#1}{#2}}} \def\definesorting {\dotripleempty\dodefinesorting} %D Here we define a support macro that can sort simple comma %D separated lists. It's a multi-list variant of a prototype %D written by Taco. \def\processlistofsorts[#1]% {\doutilities{#1}\jobname{#1}\relax\relax} \newcounter\nofsortedalphalists \def\sortalphacommacommand#1% {\begingroup \doglobal\increment\nofsortedalphalists \edef\currentsortedalphalist{alpha:\nofsortedalphalists}% \definesorting[\currentsortedalphalist][\currentsortedalphalist]% \processcommacommand[#1]{\getvalue\currentsortedalphalist}% \global\let\sortedcommalist\empty \def\makesortedlist##1{\doglobal\appendtocommalist{##1}\sortedcommalist}% \setupsorting[\currentsortedalphalist][\c!criterium=\v!all,\c!command=\makesortedlist]% \processlistofsorts[\currentsortedalphalist]% \endgroup \dodoglobal\let#1\sortedcommalist} % \starttext % \def\whatever{a,b,q,d,r,f} \sortalphacommacommand\whatever \whatever \endgraf % \def\whatever{ax,bx,qx,dx,rx,fx} \sortalphacommacommand\whatever \whatever \endgraf % \stoptext %D Presets. \definesynonyms [\v!abbreviation] [\v!abbreviations] [\infull] \setupsynonyms [\v!abbreviation] [\c!textstyle=\v!capital, \c!textcolor=, \c!synonymstyle=, \c!synonymcolor=, \c!headstyle=, \c!headcolor=, \c!location=\v!left, \c!width=5em, \c!state=\v!start] \definesorting [\v!logo] [\v!logos] % no [\logogram] \definesynonyms [\v!unit] [\v!units] [\unitmeaning] \setupsynonyms [\v!unit] [\c!textstyle=\dimension] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/norm-xtx.mkii0000644000175000017500000000073114536300610024750 0ustar hillehille%D \module %D [ file=norm-xtx, %D version=2009.03.19, %D title=\CONTEXT\ Norm Macros, %D subtitle=\XETEX, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % xetex primitives % nothing yet (also defined pdftex primitives) \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-037.mkii0000644000175000017500000007534014536300610024417 0ustar hillehille%D \module %D [ file=enco-037, %D version=2006.02.13, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Encoding for vector 37, %D author=Luigi Scarso, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \startencoding[default] \definecharacter UnicodeLightHorizontal {\uchar{37}{000}} %%BOX DRAWINGS LIGHT HORIZONTAL \definecharacter UnicodeHeavyHorizontal {\uchar{37}{001}} %%BOX DRAWINGS HEAVY HORIZONTAL \definecharacter UnicodeLightVertical {\uchar{37}{002}} %%BOX DRAWINGS LIGHT VERTICAL \definecharacter UnicodeHeavyVertical {\uchar{37}{003}} %%BOX DRAWINGS HEAVY VERTICAL \definecharacter UnicodeLightTripleDashHorizontal {\uchar{37}{004}} %%BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL \definecharacter UnicodeHeavyTripleDashHorizontal {\uchar{37}{005}} %%BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL \definecharacter UnicodeLightTripleDashVertical {\uchar{37}{006}} %%BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL \definecharacter UnicodeHeavyTripleDashVertical {\uchar{37}{007}} %%BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL \definecharacter UnicodeLightQuadrupleDashHorizontal {\uchar{37}{008}} %%BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL \definecharacter UnicodeHeavyQuadrupleDashHorizontal {\uchar{37}{009}} %%BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL \definecharacter UnicodeLightQuadrupleDashVertical {\uchar{37}{010}} %%BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL \definecharacter UnicodeHeavyQuadrupleDashVertical {\uchar{37}{011}} %%BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL \definecharacter UnicodeLightDownAndRight {\uchar{37}{012}} %%BOX DRAWINGS LIGHT DOWN AND RIGHT \definecharacter UnicodeDownLightAndRightHeavy {\uchar{37}{013}} %%BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY \definecharacter UnicodeDownHeavyAndRightLight {\uchar{37}{014}} %%BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT \definecharacter UnicodeHeavyDownAndRight {\uchar{37}{015}} %%BOX DRAWINGS HEAVY DOWN AND RIGHT \definecharacter UnicodeLightDownAndLeft {\uchar{37}{016}} %%BOX DRAWINGS LIGHT DOWN AND LEFT \definecharacter UnicodeDownLightAndLeftHeavy {\uchar{37}{017}} %%BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY \definecharacter UnicodeDownHeavyAndLeftLight {\uchar{37}{018}} %%BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT \definecharacter UnicodeHeavyDownAndLeft {\uchar{37}{019}} %%BOX DRAWINGS HEAVY DOWN AND LEFT \definecharacter UnicodeLightUpAndRight {\uchar{37}{020}} %%BOX DRAWINGS LIGHT UP AND RIGHT \definecharacter UnicodeUpLightAndRightHeavy {\uchar{37}{021}} %%BOX DRAWINGS UP LIGHT AND RIGHT HEAVY \definecharacter UnicodeUpHeavyAndRightLight {\uchar{37}{022}} %%BOX DRAWINGS UP HEAVY AND RIGHT LIGHT \definecharacter UnicodeHeavyUpAndRight {\uchar{37}{023}} %%BOX DRAWINGS HEAVY UP AND RIGHT \definecharacter UnicodeLightUpAndLeft {\uchar{37}{024}} %%BOX DRAWINGS LIGHT UP AND LEFT \definecharacter UnicodeUpLightAndLeftHeavy {\uchar{37}{025}} %%BOX DRAWINGS UP LIGHT AND LEFT HEAVY \definecharacter UnicodeUpHeavyAndLeftLight {\uchar{37}{026}} %%BOX DRAWINGS UP HEAVY AND LEFT LIGHT \definecharacter UnicodeHeavyUpAndLeft {\uchar{37}{027}} %%BOX DRAWINGS HEAVY UP AND LEFT \definecharacter UnicodeLightVerticalAndRight {\uchar{37}{028}} %%BOX DRAWINGS LIGHT VERTICAL AND RIGHT \definecharacter UnicodeVerticalLightAndRightHeavy {\uchar{37}{029}} %%BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY \definecharacter UnicodeUpHeavyAndRightDownLight {\uchar{37}{030}} %%BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT \definecharacter UnicodeDownHeavyAndRightUpLight {\uchar{37}{031}} %%BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT \definecharacter UnicodeVerticalHeavyAndRightLight {\uchar{37}{032}} %%BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT \definecharacter UnicodeDownLightAndRightUpHeavy {\uchar{37}{033}} %%BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY \definecharacter UnicodeUpLightAndRightDownHeavy {\uchar{37}{034}} %%BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY \definecharacter UnicodeHeavyVerticalAndRight {\uchar{37}{035}} %%BOX DRAWINGS HEAVY VERTICAL AND RIGHT \definecharacter UnicodeLightVerticalAndLeft {\uchar{37}{036}} %%BOX DRAWINGS LIGHT VERTICAL AND LEFT \definecharacter UnicodeVerticalLightAndLeftHeavy {\uchar{37}{037}} %%BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY \definecharacter UnicodeUpHeavyAndLeftDownLight {\uchar{37}{038}} %%BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT \definecharacter UnicodeDownHeavyAndLeftUpLight {\uchar{37}{039}} %%BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT \definecharacter UnicodeVerticalHeavyAndLeftLight {\uchar{37}{040}} %%BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT \definecharacter UnicodeDownLightAndLeftUpHeavy {\uchar{37}{041}} %%BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY \definecharacter UnicodeUpLightAndLeftDownHeavy {\uchar{37}{042}} %%BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY \definecharacter UnicodeHeavyVerticalAndLeft {\uchar{37}{043}} %%BOX DRAWINGS HEAVY VERTICAL AND LEFT \definecharacter UnicodeLightDownAndHorizontal {\uchar{37}{044}} %%BOX DRAWINGS LIGHT DOWN AND HORIZONTAL \definecharacter UnicodeLeftHeavyAndRightDownLight {\uchar{37}{045}} %%BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT \definecharacter UnicodeRightHeavyAndLeftDownLight {\uchar{37}{046}} %%BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT \definecharacter UnicodeDownLightAndHorizontalHeavy {\uchar{37}{047}} %%BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY \definecharacter UnicodeDownHeavyAndHorizontalLight {\uchar{37}{048}} %%BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT \definecharacter UnicodeRightLightAndLeftDownHeavy {\uchar{37}{049}} %%BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY \definecharacter UnicodeLeftLightAndRightDownHeavy {\uchar{37}{050}} %%BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY \definecharacter UnicodeHeavyDownAndHorizontal {\uchar{37}{051}} %%BOX DRAWINGS HEAVY DOWN AND HORIZONTAL \definecharacter UnicodeLightUpAndHorizontal {\uchar{37}{052}} %%BOX DRAWINGS LIGHT UP AND HORIZONTAL \definecharacter UnicodeLeftHeavyAndRightUpLight {\uchar{37}{053}} %%BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT \definecharacter UnicodeRightHeavyAndLeftUpLight {\uchar{37}{054}} %%BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT \definecharacter UnicodeUpLightAndHorizontalHeavy {\uchar{37}{055}} %%BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY \definecharacter UnicodeUpHeavyAndHorizontalLight {\uchar{37}{056}} %%BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT \definecharacter UnicodeRightLightAndLeftUpHeavy {\uchar{37}{057}} %%BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY \definecharacter UnicodeLeftLightAndRightUpHeavy {\uchar{37}{058}} %%BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY \definecharacter UnicodeHeavyUpAndHorizontal {\uchar{37}{059}} %%BOX DRAWINGS HEAVY UP AND HORIZONTAL \definecharacter UnicodeLightVerticalAndHorizontal {\uchar{37}{060}} %%BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL \definecharacter UnicodeLeftHeavyAndRightVerticalLight {\uchar{37}{061}} %%BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT \definecharacter UnicodeRightHeavyAndLeftVerticalLight {\uchar{37}{062}} %%BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT \definecharacter UnicodeVerticalLightAndHorizontalHeavy {\uchar{37}{063}} %%BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY \definecharacter UnicodeUpHeavyAndDownHorizontalLight {\uchar{37}{064}} %%BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT \definecharacter UnicodeDownHeavyAndUpHorizontalLight {\uchar{37}{065}} %%BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT \definecharacter UnicodeVerticalHeavyAndHorizontalLight {\uchar{37}{066}} %%BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT \definecharacter UnicodeLeftUpHeavyAndRightDownLight {\uchar{37}{067}} %%BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT \definecharacter UnicodeRightUpHeavyAndLeftDownLight {\uchar{37}{068}} %%BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT \definecharacter UnicodeLeftDownHeavyAndRightUpLight {\uchar{37}{069}} %%BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT \definecharacter UnicodeRightDownHeavyAndLeftUpLight {\uchar{37}{070}} %%BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT \definecharacter UnicodeDownLightAndUpHorizontalHeavy {\uchar{37}{071}} %%BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY \definecharacter UnicodeUpLightAndDownHorizontalHeavy {\uchar{37}{072}} %%BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY \definecharacter UnicodeRightLightAndLeftVerticalHeavy {\uchar{37}{073}} %%BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY \definecharacter UnicodeLeftLightAndRightVerticalHeavy {\uchar{37}{074}} %%BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY \definecharacter UnicodeHeavyVerticalAndHorizontal {\uchar{37}{075}} %%BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL \definecharacter UnicodeLightDoubleDashHorizontal {\uchar{37}{076}} %%BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL \definecharacter UnicodeHeavyDoubleDashHorizontal {\uchar{37}{077}} %%BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL \definecharacter UnicodeLightDoubleDashVertical {\uchar{37}{078}} %%BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL \definecharacter UnicodeHeavyDoubleDashVertical {\uchar{37}{079}} %%BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL \definecharacter UnicodeDoubleHorizontal {\uchar{37}{080}} %%BOX DRAWINGS DOUBLE HORIZONTAL \definecharacter UnicodeDoubleVertical {\uchar{37}{081}} %%BOX DRAWINGS DOUBLE VERTICAL \definecharacter UnicodeDownSingleAndRightDouble {\uchar{37}{082}} %%BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE \definecharacter UnicodeDownDoubleAndRightSingle {\uchar{37}{083}} %%BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE \definecharacter UnicodeDoubleDownAndRight {\uchar{37}{084}} %%BOX DRAWINGS DOUBLE DOWN AND RIGHT \definecharacter UnicodeDownSingleAndLeftDouble {\uchar{37}{085}} %%BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE \definecharacter UnicodeDownDoubleAndLeftSingle {\uchar{37}{086}} %%BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE \definecharacter UnicodeDoubleDownAndLeft {\uchar{37}{087}} %%BOX DRAWINGS DOUBLE DOWN AND LEFT \definecharacter UnicodeUpSingleAndRightDouble {\uchar{37}{088}} %%BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE \definecharacter UnicodeUpDoubleAndRightSingle {\uchar{37}{089}} %%BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE \definecharacter UnicodeDoubleUpAndRight {\uchar{37}{090}} %%BOX DRAWINGS DOUBLE UP AND RIGHT \definecharacter UnicodeUpSingleAndLeftDouble {\uchar{37}{091}} %%BOX DRAWINGS UP SINGLE AND LEFT DOUBLE \definecharacter UnicodeUpDoubleAndLeftSingle {\uchar{37}{092}} %%BOX DRAWINGS UP DOUBLE AND LEFT SINGLE \definecharacter UnicodeDoubleUpAndLeft {\uchar{37}{093}} %%BOX DRAWINGS DOUBLE UP AND LEFT \definecharacter UnicodeVerticalSingleAndRightDouble {\uchar{37}{094}} %%BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE \definecharacter UnicodeVerticalDoubleAndRightSingle {\uchar{37}{095}} %%BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE \definecharacter UnicodeDoubleVerticalAndRight {\uchar{37}{096}} %%BOX DRAWINGS DOUBLE VERTICAL AND RIGHT \definecharacter UnicodeVerticalSingleAndLeftDouble {\uchar{37}{097}} %%BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE \definecharacter UnicodeVerticalDoubleAndLeftSingle {\uchar{37}{098}} %%BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE \definecharacter UnicodeDoubleVerticalAndLeft {\uchar{37}{099}} %%BOX DRAWINGS DOUBLE VERTICAL AND LEFT \definecharacter UnicodeDownSingleAndHorizontalDouble {\uchar{37}{100}} %%BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE \definecharacter UnicodeDownDoubleAndHorizontalSingle {\uchar{37}{101}} %%BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE \definecharacter UnicodeDoubleDownAndHorizontal {\uchar{37}{102}} %%BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL \definecharacter UnicodeUpSingleAndHorizontalDouble {\uchar{37}{103}} %%BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE \definecharacter UnicodeUpDoubleAndHorizontalSingle {\uchar{37}{104}} %%BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE \definecharacter UnicodeDoubleUpAndHorizontal {\uchar{37}{105}} %%BOX DRAWINGS DOUBLE UP AND HORIZONTAL \definecharacter UnicodeVerticalSingleAndHorizontalDouble {\uchar{37}{106}} %%BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE \definecharacter UnicodeVerticalDoubleAndHorizontalSingle {\uchar{37}{107}} %%BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE \definecharacter UnicodeDoubleVerticalAndHorizontal {\uchar{37}{108}} %%BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL \definecharacter UnicodeLightArcDownAndRight {\uchar{37}{109}} %%BOX DRAWINGS LIGHT ARC DOWN AND RIGHT \definecharacter UnicodeLightArcDownAndLeft {\uchar{37}{110}} %%BOX DRAWINGS LIGHT ARC DOWN AND LEFT \definecharacter UnicodeLightArcUpAndLeft {\uchar{37}{111}} %%BOX DRAWINGS LIGHT ARC UP AND LEFT \definecharacter UnicodeLightArcUpAndRight {\uchar{37}{112}} %%BOX DRAWINGS LIGHT ARC UP AND RIGHT \definecharacter UnicodeLightDiagonalUpperRightToLowerLeft {\uchar{37}{113}} %%BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT \definecharacter UnicodeLightDiagonalUpperLeftToLowerRight {\uchar{37}{114}} %%BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT \definecharacter UnicodeLightDiagonalCross {\uchar{37}{115}} %%BOX DRAWINGS LIGHT DIAGONAL CROSS \definecharacter UnicodeLightLeft {\uchar{37}{116}} %%BOX DRAWINGS LIGHT LEFT \definecharacter UnicodeLightUp {\uchar{37}{117}} %%BOX DRAWINGS LIGHT UP \definecharacter UnicodeLightRight {\uchar{37}{118}} %%BOX DRAWINGS LIGHT RIGHT \definecharacter UnicodeLightDown {\uchar{37}{119}} %%BOX DRAWINGS LIGHT DOWN \definecharacter UnicodeHeavyLeft {\uchar{37}{120}} %%BOX DRAWINGS HEAVY LEFT \definecharacter UnicodeHeavyUp {\uchar{37}{121}} %%BOX DRAWINGS HEAVY UP \definecharacter UnicodeHeavyRight {\uchar{37}{122}} %%BOX DRAWINGS HEAVY RIGHT \definecharacter UnicodeHeavyDown {\uchar{37}{123}} %%BOX DRAWINGS HEAVY DOWN \definecharacter UnicodeLightLeftAndHeavyRight {\uchar{37}{124}} %%BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT \definecharacter UnicodeLightUpAndHeavyDown {\uchar{37}{125}} %%BOX DRAWINGS LIGHT UP AND HEAVY DOWN \definecharacter UnicodeHeavyLeftAndLightRight {\uchar{37}{126}} %%BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT \definecharacter UnicodeHeavyUpAndLightDown {\uchar{37}{127}} %%BOX DRAWINGS HEAVY UP AND LIGHT DOWN \definecharacter UnicodeUpperHalfBlock {\uchar{37}{128}} %%UPPER HALF BLOCK \definecharacter UnicodeLowerOneEighthBlock {\uchar{37}{129}} %%LOWER ONE EIGHTH BLOCK \definecharacter UnicodeLowerOneQuarterBlock {\uchar{37}{130}} %%LOWER ONE QUARTER BLOCK \definecharacter UnicodeLowerThreeEighthsBlock {\uchar{37}{131}} %%LOWER THREE EIGHTHS BLOCK \definecharacter UnicodeLowerHalfBlock {\uchar{37}{132}} %%LOWER HALF BLOCK \definecharacter UnicodeLowerFiveEighthsBlock {\uchar{37}{133}} %%LOWER FIVE EIGHTHS BLOCK \definecharacter UnicodeLowerThreeQuartersBlock {\uchar{37}{134}} %%LOWER THREE QUARTERS BLOCK \definecharacter UnicodeLowerSevenEighthsBlock {\uchar{37}{135}} %%LOWER SEVEN EIGHTHS BLOCK \definecharacter UnicodeFullBlock {\uchar{37}{136}} %%FULL BLOCK \definecharacter UnicodeLeftSevenEighthsBlock {\uchar{37}{137}} %%LEFT SEVEN EIGHTHS BLOCK \definecharacter UnicodeLeftThreeQuartersBlock {\uchar{37}{138}} %%LEFT THREE QUARTERS BLOCK \definecharacter UnicodeLeftFiveEighthsBlock {\uchar{37}{139}} %%LEFT FIVE EIGHTHS BLOCK \definecharacter UnicodeLeftHalfBlock {\uchar{37}{140}} %%LEFT HALF BLOCK \definecharacter UnicodeLeftThreeEighthsBlock {\uchar{37}{141}} %%LEFT THREE EIGHTHS BLOCK \definecharacter UnicodeLeftOneQuarterBlock {\uchar{37}{142}} %%LEFT ONE QUARTER BLOCK \definecharacter UnicodeLeftOneEighthBlock {\uchar{37}{143}} %%LEFT ONE EIGHTH BLOCK \definecharacter UnicodeRightHalfBlock {\uchar{37}{144}} %%RIGHT HALF BLOCK \definecharacter UnicodeLightShade {\uchar{37}{145}} %%LIGHT SHADE \definecharacter UnicodeMediumShade {\uchar{37}{146}} %%MEDIUM SHADE \definecharacter UnicodeDarkShade {\uchar{37}{147}} %%DARK SHADE \definecharacter UnicodeUpperOneEighthBlock {\uchar{37}{148}} %%UPPER ONE EIGHTH BLOCK \definecharacter UnicodeRightOneEighthBlock {\uchar{37}{149}} %%RIGHT ONE EIGHTH BLOCK \definecharacter UnicodeQuadrantLowerLeft {\uchar{37}{150}} %%[Unassigned U+2596] \definecharacter UnicodeQuadrantLowerRight {\uchar{37}{151}} %%[Unassigned U+2597] \definecharacter UnicodeQuadrantUpperLeft {\uchar{37}{152}} %%[Unassigned U+2598] \definecharacter UnicodeQuadrantUpperLeftAndLowerLeftAndLowerRight {\uchar{37}{153}} %%[Unassigned U+2599] \definecharacter UnicodeQuadrantUpperLeftAndLowerRight {\uchar{37}{154}} %%[Unassigned U+259A] \definecharacter UnicodeQuadrantUpperLeftAndUpperRightandLowerLeft {\uchar{37}{155}} %%[Unassigned U+259B] \definecharacter UnicodeQuadrantUpperLeftAndUpperRightAndLowerRight {\uchar{37}{156}} %%[Unassigned U+259C] \definecharacter UnicodeQuadrantUpperRight {\uchar{37}{157}} %%[Unassigned U+259D] \definecharacter UnicodeQuadrantUpperRightAndLowerLeft {\uchar{37}{158}} %%[Unassigned U+259E] \definecharacter UnicodeQuadrantUpperRightAndLowerLeftAndLowerRight {\uchar{37}{159}} %%[Unassigned U+259F] \definecharacter UnicodeBlackSquare {\uchar{37}{160}} %%BLACK SQUARE \definecharacter UnicodeWhiteSquare {\uchar{37}{161}} %%WHITE SQUARE \definecharacter UnicodeWhiteSquareWithRoundedCorners {\uchar{37}{162}} %%WHITE SQUARE WITH ROUNDED CORNERS \definecharacter UnicodeWhiteSquareContainingBlackSmallSquare {\uchar{37}{163}} %%WHITE SQUARE CONTAINING BLACK SMALL SQUARE \definecharacter UnicodeSquareWithHorizontalFill {\uchar{37}{164}} %%SQUARE WITH HORIZONTAL FILL \definecharacter UnicodeSquareWithVerticalFill {\uchar{37}{165}} %%SQUARE WITH VERTICAL FILL \definecharacter UnicodeSquareWithOrthogonalCrosshatchFill {\uchar{37}{166}} %%SQUARE WITH ORTHOGONAL CROSSHATCH FILL \definecharacter UnicodeSquareWithUpperLeftToLowerRightFill {\uchar{37}{167}} %%SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL \definecharacter UnicodeSquareWithUpperRightToLowerLeftFill {\uchar{37}{168}} %%SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL \definecharacter UnicodeSquareWithDiagonalCrosshatchFill {\uchar{37}{169}} %%SQUARE WITH DIAGONAL CROSSHATCH FILL \definecharacter UnicodeBlackSmallSquare {\uchar{37}{170}} %%BLACK SMALL SQUARE \definecharacter UnicodeWhiteSmallSquare {\uchar{37}{171}} %%WHITE SMALL SQUARE \definecharacter UnicodeBlackRectangle {\uchar{37}{172}} %%BLACK RECTANGLE \definecharacter UnicodeWhiteRectangle {\uchar{37}{173}} %%WHITE RECTANGLE \definecharacter UnicodeBlackVerticalRectangle {\uchar{37}{174}} %%BLACK VERTICAL RECTANGLE \definecharacter UnicodeWhiteVerticalRectangle {\uchar{37}{175}} %%WHITE VERTICAL RECTANGLE \definecharacter UnicodeBlackParallelogram {\uchar{37}{176}} %%BLACK PARALLELOGRAM \definecharacter UnicodeWhiteParallelogram {\uchar{37}{177}} %%WHITE PARALLELOGRAM \definecharacter UnicodeBlackUpPointingTriangle {\uchar{37}{178}} %%BLACK UP-POINTING TRIANGLE \definecharacter UnicodeWhiteUpPointingTriangle {\uchar{37}{179}} %%WHITE UP-POINTING TRIANGLE \definecharacter UnicodeBlackUpPointingSmallTriangle {\uchar{37}{180}} %%BLACK UP-POINTING SMALL TRIANGLE \definecharacter UnicodeWhiteUpPointingSmallTriangle {\uchar{37}{181}} %%WHITE UP-POINTING SMALL TRIANGLE \definecharacter UnicodeBlackRightPointingTriangle {\uchar{37}{182}} %%BLACK RIGHT-POINTING TRIANGLE \definecharacter UnicodeWhiteRightPointingTriangle {\uchar{37}{183}} %%WHITE RIGHT-POINTING TRIANGLE \definecharacter UnicodeBlackRightPointingSmallTriangle {\uchar{37}{184}} %%BLACK RIGHT-POINTING SMALL TRIANGLE \definecharacter UnicodeWhiteRightPointingSmallTriangle {\uchar{37}{185}} %%WHITE RIGHT-POINTING SMALL TRIANGLE \definecharacter UnicodeBlackRightPointingPointer {\uchar{37}{186}} %%BLACK RIGHT-POINTING POINTER \definecharacter UnicodeWhiteRightPointingPointer {\uchar{37}{187}} %%WHITE RIGHT-POINTING POINTER \definecharacter UnicodeBlackDownPointingTriangle {\uchar{37}{188}} %%BLACK DOWN-POINTING TRIANGLE \definecharacter UnicodeWhiteDownPointingTriangle {\uchar{37}{189}} %%WHITE DOWN-POINTING TRIANGLE \definecharacter UnicodeBlackDownPointingSmallTriangle {\uchar{37}{190}} %%BLACK DOWN-POINTING SMALL TRIANGLE \definecharacter UnicodeWhiteDownPointingSmallTriangle {\uchar{37}{191}} %%WHITE DOWN-POINTING SMALL TRIANGLE \definecharacter UnicodeBlackLeftPointingTriangle {\uchar{37}{192}} %%BLACK LEFT-POINTING TRIANGLE \definecharacter UnicodeWhiteLeftPointingTriangle {\uchar{37}{193}} %%WHITE LEFT-POINTING TRIANGLE \definecharacter UnicodeBlackLeftPointingSmallTriangle {\uchar{37}{194}} %%BLACK LEFT-POINTING SMALL TRIANGLE \definecharacter UnicodeWhiteLeftPointingSmallTriangle {\uchar{37}{195}} %%WHITE LEFT-POINTING SMALL TRIANGLE \definecharacter UnicodeBlackLeftPointingPointer {\uchar{37}{196}} %%BLACK LEFT-POINTING POINTER \definecharacter UnicodeWhiteLeftPointingPointer {\uchar{37}{197}} %%WHITE LEFT-POINTING POINTER \definecharacter UnicodeBlackDiamond {\uchar{37}{198}} %%BLACK DIAMOND \definecharacter UnicodeWhiteDiamond {\uchar{37}{199}} %%WHITE DIAMOND \definecharacter UnicodeWhiteDiamondContainingBlackSmallDiamond {\uchar{37}{200}} %%WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND \definecharacter UnicodeFisheye {\uchar{37}{201}} %%FISHEYE \definecharacter UnicodeLozenge {\uchar{37}{202}} %%LOZENGE \definecharacter UnicodeWhiteCircle {\uchar{37}{203}} %%WHITE CIRCLE \definecharacter UnicodeDottedCircle {\uchar{37}{204}} %%DOTTED CIRCLE \definecharacter UnicodeCircleWithVerticalFill {\uchar{37}{205}} %%CIRCLE WITH VERTICAL FILL \definecharacter UnicodeBullseye {\uchar{37}{206}} %%BULLSEYE \definecharacter UnicodeBlackCircle {\uchar{37}{207}} %%BLACK CIRCLE \definecharacter UnicodeCircleWithLeftHalfBlack {\uchar{37}{208}} %%CIRCLE WITH LEFT HALF BLACK \definecharacter UnicodeCircleWithRightHalfBlack {\uchar{37}{209}} %%CIRCLE WITH RIGHT HALF BLACK \definecharacter UnicodeCircleWithLowerHalfBlack {\uchar{37}{210}} %%CIRCLE WITH LOWER HALF BLACK \definecharacter UnicodeCircleWithUpperHalfBlack {\uchar{37}{211}} %%CIRCLE WITH UPPER HALF BLACK \definecharacter UnicodeCircleWithUpperRightQuadrantBlack {\uchar{37}{212}} %%CIRCLE WITH UPPER RIGHT QUADRANT BLACK \definecharacter UnicodeCircleWithAllButUpperLeftQuadrantBlack {\uchar{37}{213}} %%CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK \definecharacter UnicodeLeftHalfBlackCircle {\uchar{37}{214}} %%LEFT HALF BLACK CIRCLE \definecharacter UnicodeRightHalfBlackCircle {\uchar{37}{215}} %%RIGHT HALF BLACK CIRCLE \definecharacter UnicodeInverseBullet {\uchar{37}{216}} %%INVERSE BULLET \definecharacter UnicodeInverseWhiteCircle {\uchar{37}{217}} %%INVERSE WHITE CIRCLE \definecharacter UnicodeUpperHalfInverseWhiteCircle {\uchar{37}{218}} %%UPPER HALF INVERSE WHITE CIRCLE \definecharacter UnicodeLowerHalfInverseWhiteCircle {\uchar{37}{219}} %%LOWER HALF INVERSE WHITE CIRCLE \definecharacter UnicodeUpperLeftQuadrantCircularArc {\uchar{37}{220}} %%UPPER LEFT QUADRANT CIRCULAR ARC \definecharacter UnicodeUpperRightQuadrantCircularArc {\uchar{37}{221}} %%UPPER RIGHT QUADRANT CIRCULAR ARC \definecharacter UnicodeLowerRightQuadrantCircularArc {\uchar{37}{222}} %%LOWER RIGHT QUADRANT CIRCULAR ARC \definecharacter UnicodeLowerLeftQuadrantCircularArc {\uchar{37}{223}} %%LOWER LEFT QUADRANT CIRCULAR ARC \definecharacter UnicodeUpperHalfCircle {\uchar{37}{224}} %%UPPER HALF CIRCLE \definecharacter UnicodeLowerHalfCircle {\uchar{37}{225}} %%LOWER HALF CIRCLE \definecharacter UnicodeBlackLowerRightTriangle {\uchar{37}{226}} %%BLACK LOWER RIGHT TRIANGLE \definecharacter UnicodeBlackLowerLeftTriangle {\uchar{37}{227}} %%BLACK LOWER LEFT TRIANGLE \definecharacter UnicodeBlackUpperLeftTriangle {\uchar{37}{228}} %%BLACK UPPER LEFT TRIANGLE \definecharacter UnicodeBlackUpperRightTriangle {\uchar{37}{229}} %%BLACK UPPER RIGHT TRIANGLE \definecharacter UnicodeWhiteBullet {\uchar{37}{230}} %%WHITE BULLET \definecharacter UnicodeSquareWithLeftHalfBlack {\uchar{37}{231}} %%SQUARE WITH LEFT HALF BLACK \definecharacter UnicodeSquareWithRightHalfBlack {\uchar{37}{232}} %%SQUARE WITH RIGHT HALF BLACK \definecharacter UnicodeSquareWithUpperLeftDiagonalHalfBlack {\uchar{37}{233}} %%SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK \definecharacter UnicodeSquareWithLowerRightDiagonalHalfBlack {\uchar{37}{234}} %%SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK \definecharacter UnicodeWhiteSquareWithVerticalBisectingLine {\uchar{37}{235}} %%WHITE SQUARE WITH VERTICAL BISECTING LINE \definecharacter UnicodeWhiteUpPointingTriangleWithDot {\uchar{37}{236}} %%WHITE UP-POINTING TRIANGLE WITH DOT \definecharacter UnicodeUpPointingTriangleWithLeftHalfBlack {\uchar{37}{237}} %%UP-POINTING TRIANGLE WITH LEFT HALF BLACK \definecharacter UnicodeUpPointingTriangleWithRightHalfBlack {\uchar{37}{238}} %%UP-POINTING TRIANGLE WITH RIGHT HALF BLACK \definecharacter UnicodeLargeCircle {\uchar{37}{239}} %%LARGE CIRCLE \definecharacter UnicodeWhiteSquareWithUpperLeftQuadrant {\uchar{37}{240}} %%WHITE SQUARE WITH UPPER LEFT QUADRANT \definecharacter UnicodeWhiteSquareWithLowerLeftQuadrant {\uchar{37}{241}} %%WHITE SQUARE WITH LOWER LEFT QUADRANT \definecharacter UnicodeWhiteSquareWithLowerRightQuadrant {\uchar{37}{242}} %%WHITE SQUARE WITH LOWER RIGHT QUADRANT \definecharacter UnicodeWhiteSquareWithUpperRightQuadrant {\uchar{37}{243}} %%WHITE SQUARE WITH UPPER RIGHT QUADRANT \definecharacter UnicodeWhiteCircleWithUpperLeftQuadrant {\uchar{37}{244}} %%WHITE CIRCLE WITH UPPER LEFT QUADRANT \definecharacter UnicodeWhiteCircleWithLowerLeftQuadrant {\uchar{37}{245}} %%WHITE CIRCLE WITH LOWER LEFT QUADRANT \definecharacter UnicodeWhiteCircleWithLowerRightQuadrant {\uchar{37}{246}} %%WHITE CIRCLE WITH LOWER RIGHT QUADRANT \definecharacter UnicodeWhiteCircleWithUpperRightQuadrant {\uchar{37}{247}} %%WHITE CIRCLE WITH UPPER RIGHT QUADRANT \definecharacter UnicodeUpperLeftTriangle {\uchar{37}{248}} %%[Unassigned U+25F8] \definecharacter UnicodeUpperRightTriangle {\uchar{37}{249}} %%[Unassigned U+25F9] \definecharacter UnicodeLowerLeftTriangle {\uchar{37}{250}} %%[Unassigned U+25FA] \definecharacter UnicodeWhiteMediumSquare {\uchar{37}{251}} %%[Unassigned U+25FB] \definecharacter UnicodeBlackMediumSquare {\uchar{37}{252}} %%[Unassigned U+25FC] \definecharacter UnicodeWhiteMediumSmallSquare {\uchar{37}{253}} %%[Unassigned U+25FD] \definecharacter UnicodeBlackMediumSmallSquare {\uchar{37}{254}} %%[Unassigned U+25FE] \definecharacter UnicodeLowerRightTriangle {\uchar{37}{255}} %%[Unassigned U+25FF] \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/verb-pl.mkii0000644000175000017500000003710614536300610024531 0ustar hillehille%D \module %D [ file=verb-pl, %D version=1997.12.22, %D title=\CONTEXT\ Verbatim Macros, %D subtitle=Pretty \PERL\ Verbatim, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Verbatim Macros / Pretty PERL Verbatim} %D When I rewrote \TEXUTIL\ in \PERL\ I decided to write a %D pretty \PERL\ interpreter too. In fact, this was the main %D reason for rewriting the pretty verbatim mechanisms to %D handle more that \TEX. %D %D \startPL %D $alfa = $beta{gamma}; %D if ($alfa="delta") %D { print "epsilon" } %D \stopPL %D %D When looking at the macros, watch the \type{\doglobal}'s! %D They're something \CONTEXT\ specific. \unprotect %D \macros %D {prettyPLvariables} %D %D Identifiers and system variables get a special treatment. %D One can disable this option for the variables by resetting %D the next switch. \doglobal\newif\ifprettyPLvariables \global\prettyPLvariablestrue %D As said before, the global assignment is needed in %D \CONTEXT\ (for once||only loading on demand). \doglobal\newif\ifinPLsingle \doglobal\newif\ifinPLdouble \doglobal\newif\ifinPLcomment \doglobal\newif\ifinPLdoc % only used in java filter \doglobal\newif\ifPLdocdone % only used in java filter \doglobal\newif\ifPLverbose \newcount\PLverboseskipped \gdef\PLverbosecorrection% {\ifnum\PLverboseskipped>0 \obeyedspace \advance\PLverboseskipped -1 \@EA\PLverbosecorrection \fi} \gdef\PLsetcontrols% {\saveprettycontrols \def\obeyedspace% {\endPLtypesix \ifPLverbose \advance\PLverboseskipped 1 \else \oldobeyedspace \fi}% \def\flushrestofverbatimline% {\endPLtypesix \global\inPLcommentfalse}% \def\obeyedline% {\PLverbosefalse \PLverboseskipped=0 \PLdocdonefalse \oldobeyedline}% \let\obeytabs=\ignoretabs} \gdef\JVsetcontrols% {\PLsetcontrols {\endPLtypesix \ifcase\JVcommentlevel \inPLcommentfalse \fi \PLverbosefalse \PLverboseskipped=0}} \gdef\setupprettyPLtype% {\def\prettyidentifier{PL}% \PLsetvariables \PLsetcontrols \PLsethandlers \PLsetspecials \PLsetdiagnostics} \gdef\PLsetvariables% {\global\inPLsinglefalse \global\inPLdoublefalse \global\inPLcommentfalse \global\let\PLsequence=\empty \global\let\PLprefix=\empty} \gdef\PLsetspecials% {\setpretty`\{=10 \setpretty`\}=10 \setpretty`\$=21 \setpretty`\@=21 \setpretty`\%=22 \setpretty`\[=31 \setpretty`\]=31 \setpretty`\(=32 \setpretty`\)=32 \setpretty`\==32 \setpretty`\~=32 \setpretty`\<=32 \setpretty`\>=32 \setpretty`\-=41 \setpretty`\+=41 \setpretty`\/=41 \setpretty`\*=41 \setpretty`\|=41 \setpretty`\`=41 \setpretty`\!=41 \setpretty`\?=41 \setpretty`\^=41 \setpretty`\&=42 \setpretty`\\=50 \setpretty`\1=61 \setpretty`\2=61 \setpretty`\3=61 \setpretty`\4=61 \setpretty`\5=61 \setpretty`\6=61 \setpretty`\7=61 \setpretty`\8=61 \setpretty`\9=61 \setpretty`\0=61 \setpretty`\_=61 \setpretty`\A=62 \setpretty`\B=62 \setpretty`\C=62 \setpretty`\D=62 \setpretty`\E=62 \setpretty`\F=62 \setpretty`\G=62 \setpretty`\H=62 \setpretty`\I=62 \setpretty`\J=62 \setpretty`\K=62 \setpretty`\L=62 \setpretty`\M=62 \setpretty`\N=62 \setpretty`\O=62 \setpretty`\P=62 \setpretty`\Q=62 \setpretty`\R=62 \setpretty`\S=62 \setpretty`\T=62 \setpretty`\U=62 \setpretty`\V=62 \setpretty`\W=62 \setpretty`\X=62 \setpretty`\Y=62 \setpretty`\Z=62 \setpretty`\a=62 \setpretty`\b=62 \setpretty`\c=62 \setpretty`\d=62 \setpretty`\e=62 \setpretty`\f=62 \setpretty`\g=62 \setpretty`\h=62 \setpretty`\i=62 \setpretty`\j=62 \setpretty`\k=62 \setpretty`\l=62 \setpretty`\m=62 \setpretty`\n=62 \setpretty`\o=62 \setpretty`\p=62 \setpretty`\q=62 \setpretty`\r=62 \setpretty`\s=62 \setpretty`\t=62 \setpretty`\u=62 \setpretty`\v=62 \setpretty`\w=62 \setpretty`\x=62 \setpretty`\y=62 \setpretty`\z=62 \setpretty`\;=71 \setpretty`\:=72 \setpretty`\,=71 \setpretty`\.=71 \setpretty`\'=80 \setpretty`\"=90 \setpretty`\#= 0 } \gdef\PLsethandlers% {\installprettyhandler 10 \PLtypeone \installprettyhandler 21 \PLtypetwo \installprettyhandler 22 \PLtypetwo \installprettyhandler 31 \PLtypethree \installprettyhandler 32 \PLtypethree \installprettyhandler 41 \PLtypefourone \installprettyhandler 42 \PLtypefourtwo \installprettyhandler 50 \PLtypefive \installprettyhandler 61 \PLtypesixone \installprettyhandler 62 \PLtypesixtwo \installprettyhandler 71 \PLtypesevenone \installprettyhandler 72 \PLtypeseventwo \installprettyhandler 80 \PLtypeeight \installprettyhandler 90 \PLtypenine \installprettyhandler 0 \PLtypezero} \gdef\PLtypeone#1% {\ifinPLdouble \PLverbosefalse \ifinPLcomment \endPLtypesix \getpretty{#1}% \else\ifx\PLprefix\empty \endPLtypesix \getpretty{#1}% \else \endPLtypesix \xdef\PLprefix{\getpretty{#1}}% \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty \fi\fi \else \endPLtypesix \ifinPLcomment \getpretty{#1}% \else\ifinPLsingle \getpretty{#1}% \else \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty \fi\fi \fi} % \gdef\PLtypetwo#1% % {\endPLtypesix % \xdef\PLprefix{\getpretty{#1}}% % \ifinPLcomment % \getpretty{#1}% % \else\ifinPLsingle % \getpretty{#1}% % \else\ifinPLdouble % \getprettydata{#1}% % \ifnum\prettytype=21 % \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty % \else % \getpretty{#1}% % \fi % \else % \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty % \fi\fi\fi} \gdef\PLtypetwo#1% {\endPLtypesix \ifinPLdoc \xdef\PLsequence{\PLsequence\getpretty{#1}}% \else\ifinPLcomment \getpretty{#1}% \else\ifinPLsingle \getpretty{#1}% \else\ifinPLdouble \getprettydata{#1}% \ifnum\prettytype=21 \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty \else \getpretty{#1}% \fi \else \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty \fi\fi\fi\fi} \gdef\PLtypethree#1% {\endPLtypesix \ifinPLcomment \getpretty{#1}% \else\ifinPLsingle \getpretty{#1}% \else\ifinPLdouble \getprettydata{#1}% \ifnum\prettytype=31 \ifx\PLprefix\empty \getpretty{#1}% \else \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty \fi \else \getpretty{#1}% \fi \else \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty \fi\fi\fi} \gdef\PLtypefourone#1% {\endPLtypesix \ifinPLcomment \getpretty{#1}% \else\ifinPLsingle \getpretty{#1}% \else\ifinPLdouble \getpretty{#1}% \else \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \fi\fi\fi} \gdef\doPLtypefourtwo#1#2% {\PLverbosefalse \getprettydata{#2}% \ifnum\prettytype=62 \expandafter\PLtypetwo \else \expandafter\PLtypefourone \fi {#1}#2} \gdef\PLtypefourtwo% {\handlenextnextpretty\doPLtypefourtwo\PLtypefourone} \gdef\doPLtypefiveA#1#2% {\endPLtypesix \ifinPLcomment \getpretties{#1}{#2}% \else\ifinPLsingle \getprettydata{#2}% \ifnum\prettytype=50 \beginofpretty[\!!prettytwo]\getpretties{#1}{#2}\endofpretty \else\ifnum\prettytype=80 \beginofpretty[\!!prettytwo]\getpretties{#1}{#2}\endofpretty \else \getpretties{#1}{#2}% \fi\fi \else \beginofpretty[\!!prettytwo]\getpretties{#1}{#2}\endofpretty \fi\fi} \gdef\doPLtypefiveB#1% {\endPLtypesix \ifinPLcomment \getpretty{#1}% \else\ifinPLsingle \getpretty{#1}% \else \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty \fi\fi} \gdef\PLtypefive% {\ifPLverbose \expandafter\PLtypesixtwo \else \expandafter\handlenextnextpretty\expandafter\doPLtypefiveA\expandafter\doPLtypefiveB \fi} % \gdef\endPLtypesix% % {\ifx\PLsequence\empty\else % \ifinPLcomment % \PLsequence % \else\ifinPLsingle % \PLsequence % \else\ifinPLdouble % \PLsequence % \else\ifPLverbose % \beginofpretty[\!!prettytwo]\PLsequence\endofpretty % \PLverbosefalse % \else\ifx\PLprefix\empty % \doifprettyidentifierelse{\PLsequence}{\PLverboses} % {\PLverbosetrue\PLverboseskipped=3 } % {\doifprettyidentifierelse{\PLsequence}{\PLidentifiers} % {\beginofpretty[\!!prettytwo]% % {\prettyidentifierfont\PLsequence}% % \endofpretty} % {\ifprettyPLvariables % \doifprettyidentifierelse{\PLsequence}{\PLvariables} % {\beginofpretty[\!!prettytwo]% % {\prettyvariablefont\PLsequence}% % \endofpretty} % {\PLsequence}% % \else % \PLsequence % \fi}}% % \else\ifprettyPLvariables % \doifprettyidentifierelse{\PLprefix\PLsequence}{\PLvariables} % {\beginofpretty[\!!prettytwo]% % {\prettyvariablefont\PLsequence}% % \endofpretty} % {\PLsequence}% % \else % \PLsequence % \fi\fi\fi\fi\fi\fi % \global\let\PLsequence=\empty % \global\let\PLprefix=\empty % \fi} \gdef\endPLtypesix {\ifx\PLsequence\empty\else \ifinPLdoc \doendPLtypesixvar\!!prettythree \else\ifinPLcomment \PLsequence \else\ifinPLsingle \PLsequence \else\ifinPLdouble \PLsequence \else\ifPLverbose \beginofpretty[\!!prettytwo]\PLsequence\endofpretty \PLverbosefalse \else\ifx\PLprefix\empty \doendPLtypesix\!!prettytwo \else\ifprettyPLvariables \doendPLtypesixvar\!!prettytwo \else \PLsequence \fi\fi\fi\fi\fi\fi\fi \global\let\PLsequence\empty \global\let\PLprefix\empty \fi} \gdef\doendPLtypesix#1% {\doifprettyidentifierelse{\PLsequence}{\PLverboses} {\PLverbosetrue\PLverboseskipped=3 } {\doifprettyidentifierelse{\PLsequence}{\PLidentifiers} {\beginofpretty[#1]% {\prettyidentifierfont\PLsequence}% \endofpretty} {\ifprettyPLvariables \doifprettyidentifierelse{\PLsequence}{\PLvariables} {\beginofpretty[#1]% {\prettyvariablefont\PLsequence}% \endofpretty} {\PLsequence}% \else \PLsequence \fi}}} \gdef\doendPLtypesixvar#1% {\doifprettyidentifierelse{\PLprefix\PLsequence}{\PLvariables} {\beginofpretty[#1]% {\prettyvariablefont\PLsequence}% \endofpretty} {\PLsequence}} \gdef\PLtypesixone {\ifx\PLsequence\empty \expandafter\getpretty \else \expandafter\PLtypesixtwo \fi} % \gdef\PLtypesixtwo#1% % {\ifinPLcomment % \getpretty{#1}% % \else\ifinPLsingle % \getpretty{#1}% % \else\ifinPLdouble % \ifx\PLprefix\empty % \getpretty{#1}% % \else % \xdef\PLsequence{\PLsequence\getpretty{#1}}% % \fi % \else % \xdef\PLsequence{\PLsequence\getpretty{#1}}% % \fi\fi\fi} \gdef\PLtypesixtwo#1% {\ifinPLdoc \xdef\PLsequence{\PLsequence\getpretty{#1}}% \else\ifinPLcomment \getpretty{#1}% \else\ifinPLsingle \getpretty{#1}% \else\ifinPLdouble \ifx\PLprefix\empty \getpretty{#1}% \else \xdef\PLsequence{\PLsequence\getpretty{#1}}% \fi \else \xdef\PLsequence{\PLsequence\getpretty{#1}}% \fi\fi\fi\fi} \gdef\PLtypesevenone#1% {\endPLtypesix \getpretty{#1}} \gdef\PLtypeseventwo% {\handlenextnextpretty\doPLtypeseventwo\PLtypesevenone} \gdef\doPLtypeseventwo#1#2% {\getprettydata{#2}% \ifnum\prettytype=72 \PLtypesixtwo{#1}\PLtypesixtwo{#1}% \else \PLtypesevenone{#1}\expandafter#2% \fi} \gdef\PLtypeeight#1% single quote {\endPLtypesix \ifinPLcomment \getpretty{#1}% \else\ifinPLdouble \getpretty{#1}% \else\ifinPLsingle \global\inPLsinglefalse \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \else \global\inPLsingletrue \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \fi\fi\fi} \gdef\PLtypenine#1% double quote {\endPLtypesix \ifinPLcomment \getpretty{#1}% \else\ifinPLsingle \getpretty{#1}% \else\ifinPLdouble \global\inPLdoublefalse \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty \else \global\inPLdoubletrue \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty \fi\fi\fi} \gdef\PLtypezero% {\endPLtypesix \ifnewpretty\expandafter\handlenewpretty\fi\doPLtypezero} \gdef\doPLtypezero#1% {\ifinPLcomment \getpretty{#1}% \else \global\inPLcommenttrue \PLverbosecorrection \ifnaturaltextext % non tested yet \let\next\naturaltextext \else \def\next{\beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}% \fi \expandafter\next \fi} \gdef\doreportprettyPLtype#1#2#3#4% {#1% [PERL \string#2 typing conflict, use \string#3 instead] \writestatus {PERL typing} {use \string#3 instead of \string#2 to enable propper visualization}% \global#4% \expandafter\doemptyverbatimline \fi} \gdef\reportprettyPLtype% {\doreportprettyPLtype\ifinPLsingle'\'\inPLsinglefalse \doreportprettyPLtype\ifinPLdouble"\"\inPLdoublefalse} \gdef\PLsetdiagnostics% {\let\normaldoemptyverbatimline=\doemptyverbatimline \def\doemptyverbatimline% {\normaldoemptyverbatimline \reportprettyPLtype}} %D The official \PERL\ version 5 keywords: \useprettyidentifiers \PLidentifiers \PLsetspecials abs accept alarm and atan atan2 bind binmode bless caller chdir chmod chomp chop chown chr chroot close closedir cmp connect continue cos crypt dbmclose dbmopen defined delete die do dump each echo else elsif endgrent endhostent endnetent endprotoend endpwent endservent eof eq eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt glob gmtime goto grep gt hex if import index int integer ioctl join keys kill last lc lcfirst le length lib link listen local localtime log lstat lt map method mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord pack package pipe pop pos print printf process prompt push quotemeta rand read readdir readlink recv redo ref rename require reset return reverse rewinddir rindex rmdir scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat strict study sub subs substr symlink syscall sysopen sysread system syswrite tell telldir tie tied time times times truncate uc ucfirst ucmask umask unary undef unless unlink unpack unshift untie until use utime values vars vec wait waitpid wantarray warn warn while write xor %D Additional module keywords (still incomplete): \useprettyidentifiers \PLvariables \PLsetspecials Getopt::Long $Getopt::Long::passthrough $Getopt::Long::autoabbrev &GetOptions %D A funny hack. When prefixes by \type{TEX}, a \type{\csname} %D is typeset as \TEX\ sequence. \useprettyidentifiers \PLverboses \PLsetspecials TEX \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-stg.mkii0000644000175000017500000000427614536300610024707 0ustar hillehille%D \module %D [ file=core-stg, %D version=2006.08.16, %D title=\CONTEXT\ Core Macros, %D subtitle=Strategies, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This is a prelude to strategies. It is rather old code %D used in a project many years ago. Use with care since I %D will pick up this thread. (moved from cont-new) \unprotect \def\s!strategy{strategy} \def\currentstrategypass {1} \def\currentstrategyvariable{0} \def\maximumstrategypass {8} \newconditional\strategypassneeded \newconditional\strategypassforced \definetwopasslist{\s!strategy} \def\registerstrategypass {\ifnum\currentstrategypass>\maximumstrategypass \else \ifconditional\strategypassforced \doglobal\increment\currentstrategypass \else%\ifconditional\strategypassneeded %\doglobal\increment\currentstrategypass \fi%\fi \fi \savecurrentvalue\currentstrategypass{\currentstrategypass}} \appendtoks \registerstrategypass \to \everybye % \everylastshipout \def\setstrategyvariable#1#2% key value {%\doifnotstrategyvariable{#1}{\global\settrue\strategypassneeded}% \doglobal\increment\currentstrategyvariable \savetaggedtwopassdata{\s!strategy}{\currentstrategyvariable}{#1}{#2}} \def\doifstrategyvariableelse#1#2#3% {\getstrategyvariable{#1}\iftwopassdatafound#2\else#3\fi} \def\getstrategyvariable#1% key {\findtwopassdata{\s!strategy}{#1}% \setxvalue{\s!strategy:#1}{\twopassdata}} \def\retainstrategyvariable#1% key {\expanded{\setstrategyvariable{#1}{\strategyvariable{#1}}}} \def\strategyvariable#1% key {\csname\s!strategy:#1\endcsname} \let\stratvar\strategyvariable \def\forcestrategy{\global\settrue \strategypassforced} \def\abortstrategy{\global\setfalse\strategypassforced} \def\doifstrategyvariableelse#1#2#3% {\getstrategyvariable{#1}\iftwopassdatafound#2\else#3\fi} \def\doifstrategyvariable #1#2{\doifstrategyvariableelse{#1}{#2}{}} \def\doifnotstrategyvariable#1#2{\doifstrategyvariableelse{#1}{}{#2}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/bibl-tra.mkii0000644000175000017500000017054314536300610024661 0ustar hillehille%D \module %D [ file=bibl-tra, %D version=2009.08.13, %D title=\CONTEXT\ Publication Module, %D subtitle=Publications, %D author=Taco Hoekwater, %D date=\currentdate, %D copyright={Public Domain}] %C %C Donated to the public domain. %D This used to be module \type {t-bib} but due to the number of differences %D in handling structure between \MKII\ and \MKIV\ we now have \BIBTEX\ support %D in the kernel. The only patches concerns some namespace issues. Also, %D constants and variables are now predefined. When the \MKIV\ code is well %D tested I might backport a couple of adaptions to this \MKII\ variant. \writestatus{loading}{ConTeXt Bibliography Support / BibTeX} \definefilesynonym[bib][obsolete] % here starts t-bib.tex %D The original was developed independantly by Taco Hoekwater while still working for Kluwer %D Academic publishers (it still used the dutch interface then). Development continued after %D he left Kluwer, and in Januari 2005, the then already internationalized file was merged %D with the core distribution by Hans Hagen. The current version is once again by Taco. %D %D More documentation and additional resources can be found on the contextgarden: %D \hyphenatedurl{http://wiki.contextgarden.net//Bibliography}. %D \subject{DONE (dd/mm/yyyy)} %D %D \startitemize %D \item add author definition (and associated system variable) (26/05/2005) %D \item add finalnamesep support for Oxford comma (17/09/2005) %D \item add \type{\insert...} for: doi, eprint, howpublished (19/09/2005) %D \item allow a defaulted \type{\setupcite} (19/11/2005) %D \item renamed citation type 'number' to 'serial' (19/11/2005) %D \item better definition of \type{\inverted...author} (19/11/2005) %D \item don't reset [numbercommand] in \type {\setuppublication} by default (20/11/2005) %D \item don't disable other \type {\setuppublication} keys if alternative is present (20/11/2005) %D \item drop \type{\sanitizeaccents} (20/11/2005) %D \item added \type{\nocite} and \type{\cite[none]} (21/11/2005) %D \item added headtext for it (23/11/2005) %D \item make \type{\cite[url]} and \type{\cite[doi]} interactive (23/11/2005) %D \item make right-aligned labels in the list work even when autohang=no %D \item use 'et al.' instead of 'et.al.'. Pointed out by Peter M�nster (30/12/2005) %D \item added headtext for cz (31/12/2005) %D \item Keep whitespace after \type{\cite} with single argument (31/12/2005) %D \item Fix broken \type{\cite{}} support (31/12/2005) %D \item Use \type{\readfile} inside \type{\usepublications} instead of \type{\readsysfile} (12/01/2006) %D \item Use \type{\currentbibyear} and \type{\currentbibauthor} instead of \type{\YR} and \type{\AU} (05/02/2006) %D \item Fix compressed version of authoryear style (05/02/2006) %D \item Rename the clashing data fields \type{\url} and \type{\type} to \type{\biburl} and \type{\bibtype} (05/02/2006) %D \item Added two french bibl files from Renaud Aubin (06/02/2006) %D \item Five new bib class and eight extra bib fields, for IEEEtran (07/02/2006) %D \item French keyword translation, provided by Renaud (08/02/2006) %D \item fix underscores in undefined keys (22/02/2006) %D \item Destroy interactivity in labels of the publication list (13/03/2006) %D \item fix multi-cite list compression (11/4/2006) %D \item fix \type{\getcitedata} (11/4/2006) %D \item magic for chapter bibs (18-25/4/2006) %D \item language setting (25/4/2006) %D \item use \type{\hyphenatedurl} for \type{\inserturl} (25/4/2006) %D \item Add \type{\docitation} to \type{\nocite}(26/4/2006) %D \item patents can have numbers, added to bst files (26/4/2006) %D \item \type{\docitation} needs a \type{\iftrialtypesetting} (27/4/2006) %D \item \type{\filllocalpublist}'s loop is bound by definedness, not resolvedness (27/4/2006) %D \item \type{\setuppublications[monthconversion=]} added (15/5/2006) %D \item use \type{\undefinedreference} instead of bare question marks (15/5/2006) %D \item add grouping around \type{\placepublications} commands (16/5/2006) %D \item fix a bug in \type{\cite{}} (17/5/2006) %D \item support \type{\cite[authornum]} (18/5/2006) %D \item make \type{\cite} unexpandable (20/6/2006) %D \item allow hyperlinks in author\&year combo's %D (cite list compression has to be off) (20/6/2006) %D \item fix duplicate labels for per-chapter style (20/6/2006) %D \item allow \type{\setupcite[interaction=(start|stop)]} %D \item fix the item number in the publication list with 'numbering=yes' (22/6/2006) %D \item make the default criterium for \type{\placepublications} be \type{previous} (23/6/2006) %D \item fix \type{\normalauthor} and \type{\normalshortauthor} spacing (29/6/2006) %D \item do not typeset empty arguments to \type{\typesetapublication} (29/6/2006) %D \item add \type{symbol=none} to \type{\setuplist} in unnumbered %D mode to prevent typesetting of bare numbers (29/6/2006) %D \item remove two incorrect spaces from bibl-num.tex (1/7/2006) %D \item reset font styles within \type{\cite}, so that font switches %D in \type{left} stay in effect (12/7/2006) %D \item guard added against loading bbl files multiple times (13/7/2006) %D \item fix \type{\cite[num]} with compression is on. (14/7/2006) %D \item test \type{\iflocation} before deciding to use the %D interactive version of cite (18/7/2006) %D \item support \type{\setupcite[authoretallimit=1]} (18/7/2006) %D \item support use of \type{\cite} within titles and captions by %D saveguarding the list item extraction and reference placement %D code (19/7/2006) %D \item support \type{\setuppublicationlist[title=\chapter]} (4/8/2006) %D \item use the expansion of \type{\headtext{pubs}} (4/8/2006) %D \item hook added for repeated authors in publication list %D \type{\setuppublicationlist[artauthorcommand=\mythreeargscommand]} %D (4/8/2006) %D \item make the bracketed arguments of \type{\artauthor}, \type{\author} %D and \type{\editor} (bbl commands) optional (4/8/2006) %D \item the constants \type{sorttype}, \type{compress} and %D \type{autohang} have moved to the core (8/8/2006) %D \item bibtex is now registered as a program to be run by texexec (8/8/2006) %D \item fix a bug in \type{\setupcite[authoretallimit=1]} (9/8/2006) %D \item fix a bug inside citations that prevented lastpubsep from ever being %D used due to a volatile \type{\commalistsize} (25/8/2006). %D \item added the possibility of \type{\placepublications[option=continue]} %D (6/9/2006) %D \item Mojca translated Master's Thesis to Masterarbeit (bibl-apa-de.tex) %D (12/9/2006) %D \item Added \type{\setuppublicationlist[maybeyear=off]} by request from %D Thomas Schmitz (15/9/2006) %D \item Removed some spurious spaces pointed out by willi egger (19/9/2006) %D \item Add configuration of bibtex executable name (4/11/2006) %D \item Fix numbering=short and numbering=bib (spotted by Matthias W�chter) (4/11/2006) %D \item third attempt to get a correct release (5/11/2006) %D \item fix a few missing dots in bibl-num.tex (7/12/2006) %D \item Patch for DOI's by Tobias Burnus (17/4/2007) %D \item Patch for \type{\insertbiburl} and \type{\insertdoi} for Tobias Burnus (18/4/2007) %D \item Added a missing \type{\relax} in \type{\dospecialbibinsert}, %D that made the space before the {\it et al.} text disappear. (18/4/2007) %D \item Attempt to fix percent signs in bbl files. As a side-effect, %D this prohibits comments in \tex{startpublication} blocks! (17/4/2008) %D \item Patch from Matthias W\"achter that allows arbitrary .bst %D files to be used with \tex{setupbibtex} (25/9/2008) %D \item Extended for the new multilingual setups for the Oct 2008 current of ConTeXt (23/10/2008) %D \item Multilingual setups needed another fix (27/10/2008) %D \item Two fixes for bibl-apa by Michael Green (27/10/2008) %D \item Catalan translation of 'References' (10/11/2008) %D \item 'chapter' -> 'chapitre' in bibl-apa-fr (27/11/2008) %D \item Run bibtex via os.execute in mkiv modee (01/12/2008) %D \item Small correction in bibl-apa's placement of volume %D information in articles (05/01/2009) %D \item Handle multi-author (more than two) cases in \type{\cite} %D (02/03/2009) %D \item Suppress a syntax error in \type{cont-xp} mode. The output is %D probably not right, though (02/03/2009) %D \item Added a \tex{loadmarkfile} at the end, and two new files %D from Hans. The \type{t-bib.mkiv} is needed to make the module %D work with the new structure code (17/04/2009) %D \item Added a patch to \type{t-bib.mkiv} from Hans to make the %D cross referencing between multiple citations an %D bibliographies work (27/04/2009) %D \item Remove a superfluous \type{\unprotect} in t-bib.mkiv (11/05/2009). %D \item Patch of incollection in bibl-ams.tex from Xan (08/06/2009). %D \item Patch of unpublished in bibl-ams.tex from Xan (22/07/2009). %D \item Modified \type{\bibdogetupsometextprefix} so it works for undefined %D language labels, from Hans (13/08/2009). %D \item Removed some \MKIV\ hacks as well as some things that are in the %D core like variables, constants and messages (HH:22/08/2009). %D \item Added \type{bib} in front of \type {insert} macros and initialize %D then later on (HH:22/08/2009). %D \item Removed test for type {\currentlocationreference} plus associated %D code (HH:22/08/2009). %D \stopitemize %D %D \subject{WISHLIST} %D %D \startitemize %D \item link back from publication list to citation %D \item export \type {\citation{}} %D \item support mlbibtex %D \item don't load the whole lot, but filter entries instead %D \stopitemize \unprotect %D Variables, constants and messages are removed as they are now in the %D multilingual interface modules. \def\biblistname{pubs} % for compatibility % \newif\ifeditedbook %D how to load the references. There is some new stuff here %D to support Idris' (incorrect :-)) use of projects % \let\preloadbiblist\relax % % \ifx\currentcomponent\v!text % % single file % \edef\temp{\the\everystarttext}% % \ifx\temp\empty % % post-starttext % \def\preloadbiblist{\dousepublications\jobname }% % \else % % pre-starttext % \appendtoks \dousepublications\jobname \to \everystarttext % \fi % % % \else \ifx\currentcomponent\v!project % % a project file, have to set up the partial products! % \def\startproduct #1 % % {\doateverystarttext % \dousepublications{#1}% % \donextlevel\v!product\currentproduct % \doexecutefileonce\doexecutefileonce % \donotexecutefile\doexecutefile#1\\}% % % % \else \ifx\currentcomponent\v!product % % a product file % \def\preloadbiblist{\dousepublications\jobname }% % % % \else % % a component? not sure what to do % \def\preloadbiblist{\dousepublications\jobname }% % % % \fi \fi \fi \def\preloadbiblist {\globallet\preloadbiblist\relax \dousepublications\jobname} \definelist[pubs] \setuplist[pubs][\c!width=] %D \macros{bibdoif,bibdoifnot,bibdoifelse} %D %D Here are a few small helpers that are used a lot %D in all the typesetting commands %D (\type{\insert...}) we will encounter later. \long\def\bibdoifelse#1% {\@EA\def\@EA\!!stringa\@EA{#1}% \ifx\!!stringa\empty \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} \long\def\bibdoifnot#1% {\@EA\def\@EA\!!stringa\@EA{#1}% \ifx\!!stringa\empty \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \long\def\bibdoif#1% {\@EA\def\@EA\!!stringa\@EA{#1}% \ifx\!!stringa\empty \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} %D Bibtex settings separated out %D No point in writing the aux file if there is no database... \def\setupbibtex{\dosingleempty\dosetupbibtex} \def\dosetupbibtex[#1]% {\let\@@pbdatabase\empty \getparameters[\??pb][\c!sort=\s!default,#1]% \expanded{\processaction[\@@pbsort]} [ \v!no=>\def\bibstyle{cont-no}, \v!author=>\def\bibstyle{cont-au}, \v!title=>\def\bibstyle{cont-ti}, \v!short=>\def\bibstyle{cont-ab}, \s!default=>\def\bibstyle{cont-no}, \s!unknown=>\def\bibstyle{\@@pbsort}]% \ifx\@@pbdatabase\empty\else \writeauxfile \fi} \dosetupbibtex[bibtex=bibtex] %D \macros{writeauxfile} %D %D Unfortunately, \BIBTEX\ is not the best configurable program %D around. The names of the commands it parses as well as the \type{.aux} %D extension to the file name are both hardwired. %D %D This means \CONTEXT\ has to write a \LATEX-style auxiliary file, yuk! %D The good news is that it can be rather short. We'll just ask %D \BIBTEX\ to output the entire database(s) into the \type{bbl} file. %D %D The \type{\bibstyle} command controls how the \type{bbl} file will %D be sorted. The possibilities are: %D %D \startitemize[packed] %D \item by author (+year, title): cont-au.bst %D \item by title (+author, year): cont-ti.bst %D \item by short key as in abbrev.bst: cont-ab.bst %D \item not sorted at all: cont-no.bst %D \stopitemize \def\writeauxfile {\doifmode{*\v!first} {\openout \scratchwrite \jobname.aux \write \scratchwrite {\string\citation{*}}% \write \scratchwrite {\string\bibstyle{\bibstyle}}% \write \scratchwrite {\string\bibdata{\@@pbdatabase}}% \closeout\scratchwrite \showmessage\m!publications{3}{}% \expanded{\installprogram{\@@pbbibtex\space\jobname}}}} %D \macros{ifsortbycite,iftypesetall,ifautohang,ifbibcitecompress} %D %D The module needs some new \type{\if} statements. %D Default sort order of the reference list is by citation. \newif\ifsortbycite \sortbycitetrue %D By default, only referenced publications are typeset \newif\iftypesetall \typesetallfalse %D Hanging indentation of the publication list %D will not adjust itself according to the width of the label. \newif\ifautohang \autohangfalse %D Cite lists are compressed, if possible. \newif\ifbibcitecompress \bibcitecompresstrue \def\setuppublications {\dosingleargument\dosetuppublications} \def\bibleftnumber#1% {#1\hfill~} \def\dosetuppublications[#1]% {\getparameters [\??pb] [\c!alternative=,#1]% \doifsomething\@@pbalternative {\readsysfile {bibl-\@@pbalternative.tex} {\showmessage\m!publications{6}{bibl-\@@pbalternative}\let\@@pbalternative\empty} {\showmessage\m!publications{1}{bibl-\@@pbalternative}\let\@@pbalternative\empty}}% \getparameters [\??pb] [#1]% \processaction [\@@pbcriterium] [ \v!all=>\typesetalltrue, \s!unknown=>\typesetallfalse]% \processaction [\@@pbautohang] [ \v!yes=>\autohangtrue, \s!unknown=>\autohangfalse]% \processaction [\@@pbsorttype] [ \v!cite=>\sortbycitetrue, \v!bbl=>\sortbycitefalse, \s!default=>\sortbycitetrue, \s!unknown=>\sortbycitefalse]% \processaction [\@@pbnumbering] [ \v!yes=>\let\@@pbinumbercommand\firstofoneargument, \v!no=>\let\@@pbinumbercommand\gobbleoneargument, \v!short=>\def\@@pbinumbercommand##1{\getvalue{pbds-\@@pbk}}, \v!bib=>\def\@@pbinumbercommand##1{\getvalue{pbdn-\@@pbk}}, \s!unknown=>\let\@@pbinumbercommand\firstofoneargument]% \processaction [\@@pbrefcommand] [\s!default=>\edef\@@citedefault{\@@pbrefcommand}, \s!unknown=>\edef\@@citedefault{\@@pbrefcommand}]} % initialize \def\@@pbrefcommand{num} \def\@@pbnumbercommand{\bibleftnumber} %D \macros{usepublications} %D %D We need \type{\usereferences} so that it is possible to %D refer to page and/or appearance number for publications %D in the other document. \def\usepublications[#1]% {\usereferences[#1]\processcommalist[#1]\dousepublications} \def\dousepublications#1% {\doonlyonce {#1.\f!bibextension} {\readfile{#1.\f!bibextension} {\showmessage\m!publications{4}{#1.\f!bibextension}} {\showmessage\m!publications{2}{#1.\f!bibextension}}}} %D \macros{setuppublicationlist} %D %D This will be the first command in (\BIBTEX-generated) \type{bbl} %D files. `samplesize' is a sample value (in case of \BIBTEX-generated %D files, this will be the longest `short' key). `totalnumber' %D is the total number of entries that will follow in this %D file. %D Both values are only needed for the label calculation %D if `autohang' is `true', so by default the command is %D not even needed, and therefore I saw no need to give %D it it's own system variable and it just re-uses \type{pb}. \def\setuppublicationlist {\dosingleempty\dosetuppublicationlist} \def\dosetuppublicationlist[#1]% {\getparameters[\??pv data][#1]% \setuplist [pubs] [\c!samplesize={AA99},\c!totalnumber={99}, \c!alternative=a,\c!interaction=,\c!pagenumber=\v!no,#1]} \def\setuppublicationlayout[#1]#2% {\setvalue{\??pv data#1}{#2\unskip}} %D \macros{bibalternative} %D %D A nice little shorthand that will be used so we don't have to %D key in the weird \type{\@@pv} parameter names all the time. \def\bibalternative#1% {\getvalue{\??pv\@@currentalternative#1}} %D \macros{simplebibdef,bibcommandlist} %D %D \type{\simplebibdef} defines \type{bib@#1}, which in turn will %D use one argument that is stored in \type{@@pb@#1}. %D %D \type{\simplebibdef} also defines \type{insert#1}, which can be %D used in the argument of \type{\setuppublicationlayout} to fetch %D one of the \type{@@pb@} data entries. \type{insert#1} then has %D three arguments: \type{#1} are commands to be executed before the %D data, \type{#2} are commands to be executed after the data, and %D \type{#3} are commands to be executed if the data is not found. %D \type{\bibcommandlist} is the list of commands that is affected %D by this approach. Later on, it will be used to do a series %D of assignments from \type{#1} to \type{bib@#1}: e.g %D \type{\title} becomes \type{\bib@title} when used within %D a publication. \newtoks\initializebibdefinitions % we need to prevent clashes (HH) % \def\simplebibdef#1% hh: funny expansion ? % {\@EA\long\@EA\def\csname bib@#1\endcsname##1% % {\setvalue{\??pb @#1}{##1}% % \ignorespaces}% % \@EA\def\csname insert#1\endcsname##1##2##3% % {\@EA\bibdoifelse % \@EA{\csname @@pb@#1\endcsname}% % {##1\csname @@pb@#1\endcsname##2}% % {##3}% % }} \def\simplebibdef#1% hh: funny expansion ? {\@EA\long\@EA\def\csname bib@#1\endcsname##1% {\setvalue{\??pb @#1}{##1}\ignorespaces}% \expandafter \appendtoks \expandafter\let\csname insert#1\expandafter\endcsname\csname bibinsert#1\endcsname \to \initializebibdefinitions \@EA\unexpanded\@EA\def\csname bibinsert#1\endcsname##1##2##3% {\@EA\bibdoifelse\@EA{\csname\??pb @#1\endcsname}{##1\csname\??pb @#1\endcsname##2}{##3}}} \def\bibcommandlist {abstract, annotate, arttitle, assignee, bibnumber, bibtype, biburl, chapter, city, comment, country, day, dayfiled, doi, edition, eprint, howpublished, isbn, issn, issue, journal, keyword, keywords, lastchecked, month, monthfiled, names, nationality, note, notes, organization, pages, pubname, pubyear, revision, series, size, thekey, title, volume, yearfiled} \processcommacommand[\bibcommandlist]\simplebibdef \def\bibinsertdoi#1#2#3% {{\bibdoifelse{\@@pb@doi}% {\edef\ascii{\@EA\detokenize\@EA{\@@pb@doi}}% #1\expanded{\gotoDOI{\@@pb@thekey}{\ascii}}#2}{#3}}} \def\bibinsertbiburl#1#2#3% {{\bibdoifelse{\@@pb@biburl}% {\edef\ascii{\@EA\detokenize\@EA{\@@pb@biburl}}% #1\expanded{\gotoURL{\@@pb@thekey}{\ascii}}#2}{#3}}} \def\bibinsertmonth#1#2#3% {\bibdoifelse{\@@pb@month}% {#1\doifnumberelse{\@@pb@month}% {\doifconversiondefinedelse\@@pbmonthconversion {\convertnumber\@@pbmonthconversion{\@@pb@month}}{\@@pb@month}}% {\@@pb@month}#2}{#3}} \appendtoks \let\inserturl \bibinsertbiburl % for backward compat. \let\inserttype\bibinsertbibtype % for backward compat. \to\initializebibdefinitions \def\newbibfield[#1]% {\simplebibdef{#1}% \edef\bibcommandlist{\bibcommandlist,#1}} %D \macros{bib@crossref} %D %D \type{\crossref} is used in database files to point to another %D entry. Because of this special situation, it has to be defined %D separately. Since this command will not be seen until at %D \type{\placepublications}, it may force extra runs. The same is %D true for \type{\cite} commands inside of publications. \def\bib@crossref#1% {\setvalue{\??pb @crossref}{#1}\ignorespaces} \def\bibinsertcrossref#1#2#3% {\bibdoifelse{\@@pb@crossref} {#1\@EA\cite\@EA[\@@pb@crossref]#2} {#3}} \let\insertcrossref\gobblethreearguments \appendtoks\let\insertcrossref\bibinsertcrossref\to\initializebibdefinitions %D \macros{complexbibdef,specialbibinsert} %D %D The commands \type{\artauthor}, \type{\author} and %D \type{\editor} are more complex than the other commands. %D Their argument lists have this form: %D %D \type{\author[junior]{firstnames}[inits]{von}{surname}} %D %D (bracketed stuff is optional) %D %D And not only that, but there also might be more than one of each of %D these commands. This is why a special command is needed to insert %D them, as well as one extra counter for each command. %D All of these \type{\@EA}'s and \type{\csnames} make this code %D look far more complex than it really is. For example, the argument %D \type{author} defines the macro \type{\bib@author} to do two %D things: increment the counter \type{\author@num} (let's say to 2) %D and next store it's arguments in the macro \type{\@@pb@author2}. %D And it defines \type{\insertauthors} to expand into %D \starttyping %D \specialbibinsert{author}{\author@num}{}{}{} %D \stoptyping \def\docomplexbibdef#1% {\def\currentype{#1}% \dosingleempty\dodocomplexbibdef} \def\dodocomplexbibdef[#1]#2% {\def\firstarg{#1}\def\secondarg{#2}% \dosingleempty\dododocomplexbibdef} \def\dododocomplexbibdef[#1]#2#3% {\@EA\increment\csname \currentype @num\endcsname \setevalue{\??pb @\currentype\csname \currentype @num\endcsname}% {{\secondarg}{#2}{#3}{#1}{\firstarg}}\ignorespaces}% % \def\complexbibdef#1% % {\@EA\newcounter\csname #1@num\endcsname % \@EA\def\csname bib@#1\endcsname{\docomplexbibdef{#1}}% % \@EA\def\csname insert#1s\endcsname##1##2##3% % {\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{\unskip ##2}{##3}}} \def\complexbibdef#1% {\@EA\newcounter\csname #1@num\endcsname \@EA\def\csname bib@#1\endcsname{\docomplexbibdef{#1}}% \expandafter \appendtoks \expandafter\let\csname insert#1s\expandafter\endcsname\csname bibinsert#1s\endcsname \to \initializebibdefinitions \@EA\def\csname bibinsert#1s\endcsname##1##2##3{\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{\unskip ##2}{##3}}} \processcommalist[author,artauthor,editor]\complexbibdef %D Another level of indirection is needed to control the %D typesetting of all of these arguments. %D Btw, there is a conflict between `author' and the predefined interface %D variable `auteur'. The old version is overruled `auteur' is %D overruled by the systemconstant definition at the top of this file! \newcount\etallimitcounter \newcount\etaldisplaycounter \newcount\todocounter \def\specialbibinsert#1#2#3#4#5% {\bgroup \ifnum#2>\zerocount \etallimitcounter =0\bibalternative{#1etallimit}\relax \etaldisplaycounter=0\bibalternative{#1etaldisplay}\relax \ifnum #2>\etallimitcounter \todocounter\etaldisplaycounter % just in case ... \ifnum\todocounter>\etallimitcounter \todocounter\etallimitcounter \fi \else \todocounter#2\relax \fi \ifnum\todocounter>\zerocount % find the current author list \let\templist\empty \dorecurse{#2} {\toks0=\@EA\@EA\@EA{\csname @@pb@#1\recurselevel\endcsname}% \ifx\templist\empty \edef\templist{\the\toks0}% \else \edef\templist{\templist,\the\toks0}\fi }% \doifdefinedelse {\??pv data#1\c!command} {\doifemptyelsevalue {\??pv data#1\c!command} {#3\dospecialbibinsert{#1}{\todocounter}{\templist}#4}% {#3\getvalue{\??pv data#1\c!command}{#1}{\todocounter}{\templist}#4}}% {#3\dospecialbibinsert{#1}{\todocounter}{\templist}#4}% \else #5% \fi \else #5% \fi \egroup} %D This macro does the hard work of inserting a list of people in the %D output, with proper regard of all the inbetween strings that can %D arise depending on length of the list of people. %D \#1 = type %D \#2 = number of items to be typeset %D \#3 = commacommand containing authors \def\dospecialbibinsert#1#2#3% {\getcommacommandsize[#3]% \scratchcounter 0 \def\processauthoritem##1% {\advance\scratchcounter1 \ifnum \numexpr\scratchcounter-1\relax<#2\relax \getvalue{\??pv data#1}##1% \ifnum \scratchcounter=#2\relax \ifnum\etallimitcounter<\commalistsize\relax \bibalternative{#1etaltext}\fi \else \ifnum\numexpr\scratchcounter+1 = #2\relax \ifnum \commalistsize > \plustwo \bibalternative\c!finalnamesep \else \bibalternative\c!lastnamesep \fi \else \bibalternative\c!namesep \fi \fi \fi}% \processcommacommand[#3]\processauthoritem } %D \macros{invertedauthor,normalauthor,invertedshortauthor,normalshortauthor} %D %D Just some commands that can be used in \type{\setuppublicationparameters} %D If you want to write an extension to the styles, you might %D as well define some of these commands yourself. %D %D The argument list has been reordered here, and the meanings are: %D %D {\obeylines\parskip0pt %D \type{#1} firstnames %D \type{#2} von %D \type{#3} surname %D \type{#4} inits %D \type{#5} junior %D } %D \def\normalauthor#1#2#3#4#5% {\bibdoif{#1}{#1\bibalternative\c!firstnamesep}% \bibdoif{#2}{#2\bibalternative\c!vonsep}% #3% \bibdoif{#5}{\bibalternative\c!surnamesep#5\unskip}} \def\normalshortauthor#1#2#3#4#5% {\bibdoif{#4}{#4\bibalternative\c!firstnamesep}% \bibdoif{#2}{#2\bibalternative\c!vonsep}% #3% \bibdoif{#5}{\bibalternative\c!surnamesep#5\unskip}} \def\invertedauthor#1#2#3#4#5% {\bibdoif{#2}{#2\bibalternative\c!vonsep}% #3% \bibdoif{#5}{\bibalternative\c!juniorsep #5}% \bibdoif{#1}{\bibalternative\c!surnamesep #1\unskip}} \def\invertedshortauthor#1#2#3#4#5% {\bibdoif{#2}{#2\bibalternative\c!vonsep}% #3% \bibdoif{#5}{\bibalternative\c!juniorsep #5}% \bibdoif{#4}{\bibalternative\c!surnamesep #4\unskip}} %D \macros{clearbibitem,clearbibitemtwo,bibitemdefs} %D %D These are used in \type{\typesetapublication} to do %D initializations and cleanups. \def\clearbibitem#1{\setvalue{\??pb @#1}{}}% \def\clearbibitemtwo#1% {\letvalue{#1@num}\!!zerocount \scratchcounter\plusone \doloop {\doifdefinedelse{\??pb @#1\the\scratchcounter} {\letvalue{\??pb @#1\the\scratchcounter}\empty \advance\scratchcounter\plusone}% {\exitloop}}} \def\bibitemdefs#1% {\@EA\let\@EA\tempa \csname bib@#1\endcsname \@EA\let\csname #1\endcsname \tempa } %D \macros{startpublication} %D %D We are coming to the end of this module, to the macros that %D do typesetting and read the \type{bbl} file. \newcounter\bibcounter %D Just a \type{\dosingleempty} is the most friendly %D of doing this: there need not even be an argument %D to \type{\startpublication}. Of course, then there %D is no key either, and it had better be an %D article (otherwise the layout will be all screwed up). %D %D Now prohibits comments, so % can be used for urls \def\startpublication {\edef\bibmodsavedpercent{\the\catcode`\%}% \catcode`\%=12 \dosingleempty\dostartpublication} \def\stoppublication {} % the \catcode of % is reset below %D Only specifying the key in the argument is also %D legal. In storing this stuff into macros, some trickery with %D token registers is needed to fix the expansion problems. Even so, %D this appears to not always be 100\% safe, so people are %D urgently advised to use \ETEX\ instead of traditional \TEX. %D %D In \ETEX, all expansion problems are conviniently solved by %D the primitive \type{\protected}. To put that another way: %D %D It's not a bug in this module if it does not appear in \ETEX! \long\def\dostartpublication[#1]#2\stoppublication% {\increment\bibcounter \bgroup \doifassignmentelse{#1}% {\getparameters[\??pb][k=,t=article,n=,s=,a=,y=,o=,u=,#1]}% {\getparameters[\??pb][k=#1,t=article,n=,s=,a=,y=,o=,u=]}% \@EA\toks\@EA2\@EA{\@@pba}% \@EA\toks\@EA4\@EA{\@@pbs}% \toks0={\ignorespaces #2}% \setxvalue{pbdk-\@@pbk}{\@@pbk} \setxvalue{pbda-\@@pbk}{\the\toks2} \setxvalue{pbdy-\@@pbk}{\@@pby} \setxvalue{pbds-\@@pbk}{\the\toks4} \setxvalue{pbdn-\@@pbk}{\@@pbn} \setxvalue{pbdt-\@@pbk}{\@@pbt} \setxvalue{pbdo-\@@pbk}{\@@pbo} \setxvalue{pbdu-\@@pbk}{\@@pbu} \setxvalue{pbdd-\@@pbk}{\the\toks0} \xdef\allrefs{\allrefs,\@@pbk}% \egroup \catcode`\%=\bibmodsavedpercent\relax } % intialization of the order-list: \let\allrefs\empty %D The next macro is needed because the number command of the %D publist sometimes needs to fetch something from the current %D item (like the 'short' key). For this, the ID of the current %D item is passed in the implict parameter \type{\@@pbk} \def\makepbkvalue#1{\def\@@pbk{#1}} \newif\ifinpublist % from Hans \def\ignoresectionconversion {\let\@@sectionconversion\secondoftwoarguments} \let\normaldosetfilterlevel\dosetfilterlevel \def\patcheddosetfilterlevel#1#2% beware: this one is \let {\bgroup \ignoresectionconversion \edef\askedlevel{#1}% \edef\askedfilter{#2}% % \message{ASKD: \meaning\askedlevel}% % \message{PREV: \meaning\v!previous}% \ifx\askedlevel\v!current \dosetcurrentlevel\askedlevel \else\ifx\askedlevel\v!previous \dosetpreviouslevel\askedlevel \else\ifx\askedlevel\v!all \global\chardef\alltoclevels\plusone \else\ifx\askedlevel\v!text \global\chardef\alltoclevels\plusone \else \edef\byaskedlevel{\csname\??by\askedlevel\endcsname}% \ifx\byaskedlevel\v!text \dosettextlevel\askedlevel \else \dosetotherlevel\askedlevel \fi \fi\fi\fi\fi % experiment \ifx\askedfilter\empty \else \xdef\currentlevel{\currentlevel\sectionseparator\askedfilter}% \fi \egroup} \def\filllocalpublist% {\doifdefinedelse{\alltoclevels} {\let\dosetfilterlevel\patcheddosetfilterlevel \dosettoclevel\??li{pubs}% \let\dosetfilterlevel\normaldosetfilterlevel }% {\dosettoclevel\??li{pubs}}% \global\let\glocalpublist\empty \doloop {\doifdefinedelse {\r!cross cite-\jobname-\recurselevel} {\doifreferencefoundelse {cite-\jobname-\recurselevel} {\@EA\doifreglevelelse\@EA[\currentlocationreference] {\@EA\doglobal\@EA\addtocommalist\@EA {\currenttextreference}\glocalpublist}{}} {}}% {\exitloop}}% \let\localpublist\glocalpublist} \def\typesetpubslist {\dobeginoflist % \the\initializebibdefinitions \edef\askedlevel{\csname \??li pubs\c!criterium\endcsname}% \ifx\askedlevel\v!all \def\bibrefprefix{}% \else % \preparebibrefprefix \fi \ifsortbycite \filllocalpublist \iftypesetall \let\localallrefs\allrefs \processcommacommand[\localpublist]\typesetapublication \def\removefromallrefs##1% {\removefromcommalist{##1}\localallrefs }% \processcommacommand[\localpublist]\removefromallrefs \processcommacommand[\localallrefs]\typesetapublication \else \processcommacommand[\localpublist]\typesetapublication \fi \else \iftypesetall \processcommacommand[\allrefs]\typesetapublication \else % \filllocalpublist \processcommacommand[\allrefs]\maybetypesetapublication \fi \fi \doendoflist} \newif\ifinpublist \def\maybetypesetapublication#1% {\global\inpublistfalse \def\test{#1}% \def\runtest##1% {\def\tempa{##1}\ifx \test\tempa \global\inpublisttrue \fi}% \processcommacommand[\localpublist]\runtest \ifinpublist \typesetapublication{#1}\fi} \def\initializepubslist {\edef\@@pbnumbering{\@@pbnumbering}% \ifautohang \ifx\@@pbnumbering\v!short \setbox\scratchbox\hbox{\@@pbnumbercommand{\getvalue{\??li pubs\c!samplesize}}}% \else\iftypesetall \setbox\scratchbox\hbox{\@@pbnumbercommand{\getvalue{\??li pubs\c!totalnumber}}}% \else \setbox\scratchbox\hbox{\@@pbnumbercommand{\numreferred}}% \fi\fi \edef\samplewidth{\the\wd\scratchbox}% \setuplist[pubs][\c!width=\samplewidth,\c!distance=0pt]% \ifx\@@pbnumbering\v!short \def\@@pblimitednumber##1{\hbox to \samplewidth {\@@pbnumbercommand{\getvalue{pbds-\@@pbk}}}}% \else \ifx \@@pbnumbering\v!bib \def\@@pblimitednumber##1{\hbox to \samplewidth {\@@pbnumbercommand{\getvalue{pbdn-\@@pbk}}}}% \else \def\@@pblimitednumber##1{\hbox to \samplewidth{\@@pbnumbercommand{##1}}}% \fi \fi \else \ifx\@@pbnumbering\v!short \doifemptyelse {\getvalue{\??li pubs\c!width}} {\def\@@pblimitednumber##1{\hbox {\@@pbnumbercommand{\getvalue{pbds-\@@pbk}}}}}% {\def\@@pblimitednumber##1{\hbox to \getvalue{\??li pubs\c!width}% {\@@pbnumbercommand{\getvalue{pbds-\@@pbk}}}}}% \else \ifx \@@pbnumbering\v!bib \doifemptyelse {\getvalue{\??li pubs\c!width}} {\def\@@pblimitednumber##1{\hbox {\@@pbnumbercommand{\getvalue{pbdn-\@@pbk}}}}}% {\def\@@pblimitednumber##1{\hbox to \getvalue{\??li pubs\c!width}% {\@@pbnumbercommand{\getvalue{pbdn-\@@pbk}}}}}% \else \doifemptyelse {\getvalue{\??li pubs\c!width}} {\def\@@pblimitednumber##1{\hbox{\@@pbnumbercommand{##1}}}}% {\def\@@pblimitednumber##1{\hbox to \getvalue{\??li pubs\c!width}{\@@pbnumbercommand{##1}}}}% \fi \fi \fi \ifx\@@pbnumbering\v!no \setuplist[pubs][\c!numbercommand=,\c!symbol=\v!none,\c!textcommand=\outdented]% \else \setuplist[pubs][\c!numbercommand=\@@pblimitednumber]% \fi \doifelsevalue {\??pv data\c!maybeyear}{\v!off}{\def\maybeyear##1{}}{\def\maybeyear##1{##1}}% \forgetall} % bugfix 2005/03/18 \def\outdented#1% move to supp-box ? {\hskip -\hangindent #1} %D The full list of publications \def\completepublications {\dosingleempty\docompletepublications} \def\bibdogetupsometextprefix#1#2#3% {\ifcsname#2#1#3\endcsname \csname#2#1#3\endcsname \else\ifcsname\??la#1\c!default\endcsname \@EA\ifx\csname\??la#1\c!default\endcsname\empty \ifcsname#2#3\endcsname \csname#2#3\endcsname \else\ifcsname#2\s!en#3\endcsname \csname#2\s!en#3\endcsname \fi\fi \else \expandafter\bibdogetupsometextprefix \csname\??la#1\c!default\endcsname{#2}{#3}% \fi \else \ifcsname#2#3\endcsname \csname#2#3\endcsname \else\ifcsname#2\s!en#3\endcsname \csname#2\s!en#3\endcsname \fi\fi \fi\fi} \def\docompletepublications[#1]% {\begingroup \setuplist[pubs][\c!criterium=\v!previous,#1] \begingroup \let\handletextprefix\firstoftwoarguments \edef\headtextpubs{\bibdogetupsometextprefix\headlanguage\c!title{pubs}}% \doifdefinedelse {\??pv data\v!title} {\doifemptyelsevalue {\??pv data\v!title} {\expanded{\systemsuppliedtitle[pubs]{\headtextpubs}}}% {\expanded{\getvalue{\??pv data\v!title}{\headtextpubs}}}% }% {\expanded{\systemsuppliedtitle[pubs]{\headtextpubs}}}% \endgroup \dodoplacepublications } %D And the portion with the entries only. \def\placepublications {\dosingleempty\doplacepublications} \def\doplacepublications[#1]% {%\getparameters[\??pv data][#1] \begingroup \setuplist[pubs][\c!criterium=\v!previous,#1]% \dodoplacepublications }% \def\dodoplacepublications% {\initializepubslist \doifelsevalue {\??li pubs\c!option}{\v!continue}% {}% {\global\let\bibcounter\!!zerocount }% \inpublisttrue \typesetpubslist \inpublistfalse \endgroup} %D \subsubject{What's in a publication} \unexpanded\def\typesetapublication#1% {\doifsomething{#1} {\doglobal\increment\bibcounter \bgroup \the\initializebibdefinitions \makepbkvalue{#1}% \ifgridsnapping \snaptogrid\vbox{\dodolistelement{pubs}{}{\bibcounter}% {\expanded{\reference[\bibrefprefix#1]{\bibcounter}}% \strut \dotypesetapublication{#1}\strut }{}{}}% \else \dodolistelement{pubs}{}{\bibcounter}% {\expanded{\reference[\bibrefprefix#1]{\bibcounter}}% \strut \dotypesetapublication{#1}\strut }{}{}% \fi \egroup}} \def\dotypesetapublication#1% {\bgroup \def\@@currentalternative{data}% \processcommacommand[\bibcommandlist,crossref]\clearbibitem \processcommalist [artauthor,author,editor]\clearbibitemtwo \processcommacommand[\bibcommandlist]\bibitemdefs \processcommalist [artauthor,author,editor,crossref]\bibitemdefs \let\biblanguage\empty \getvalue{pbdd-#1}% \ifcsname pbdt-#1\endcsname \bibalternative{\getvalue{pbdt-#1}}\fi \egroup } %D An afterthought: \def\maybeyear#1{} %D An another: \def\noopsort#1{} %D This is the result of bibtex's `language' field. \def\setbiblanguage#1#2{\setvalue{\??pb @lang@#1}{#2}} \def\lang#1% {\def\biblanguage{#1}% \ifcsname \??pb @lang@#1\endcsname \expanded{\language[\getvalue{\??pb @lang@#1}]}% \fi \ignorespaces} %D \subject{Citations} %D %D \macros{cite,bibref} %D %D The indirection with \type{\dobibref} allows \LATEX\ style %D \type{\cite} commands with a braced argument (these might appear %D in included data from the \type{.bib} file). % \unexpanded\def\cite % {\doifnextcharelse{[} % {\dodocite} % {\dobibref}} % \def\dobibref#1% % {\docite[#1][]} % \def\dodocite[#1]% % {\startstrictinspectnextcharacter % \dodoubleempty\dododocite[#1]} % \def\dododocite[#1][#2]{% % \stopstrictinspectnextcharacter % \docite[#1][#2]} \unexpanded\def\cite {\strictdoifnextoptionalelse\dodocite\dobibref} \def\dobibref#1% {\docite[#1][]} \def\dodocite[#1]% {\strictdoifnextoptionalelse{\docite[#1]}{\docite[#1][]}} \def\docite[#1][#2]% {\begingroup \setupinteraction[\c!style=]% \edef\temp{#2}% \ifx\empty\temp \secondargumentfalse \else \secondargumenttrue \fi \ifsecondargument \processcommalist[#2]\docitation \doifassignmentelse {#1}% {\getparameters[LO][\c!alternative=,\c!extras=,#1]% \edef\@@currentalternative{\LOalternative}% \ifx\@@currentalternative\empty \edef\@@currentalternative{\@@citedefault}% \fi \ifx\LOextras\empty \setupcite[\@@currentalternative][#1]% \else \expandafter\ifx\csname LOright\endcsname \relax \edef\LOextras{{\LOextras\bibalternative\c!right}}% \else \edef\LOextras{{\LOextras\LOright}}% \fi \expanded{\setupcite[\@@currentalternative][#1,\c!right=\LOextras]}% \fi }% {\def\@@currentalternative{#1}}% \expanded{% \processaction[\csname @@pv\@@currentalternative \c!compress\endcsname]} [ \v!yes=>\bibcitecompresstrue, \v!no=>\bibcitecompressfalse, \s!default=>\bibcitecompresstrue, \s!unknown=>\bibcitecompresstrue]% \getvalue{bib\@@currentalternative ref}[#2]% \else \processcommalist[#1]\docitation \expanded{\processaction[\csname @@pv\@@citedefault \c!compress\endcsname]} [ \v!yes=>\bibcitecompresstrue, \v!no=>\bibcitecompressfalse, \s!default=>\bibcitecompresstrue, \s!unknown=>\bibcitecompresstrue]% \edef\@@currentalternative{\@@citedefault}% \getvalue{bib\@@citedefault ref}[#1]% \fi \endgroup} %D \macros{nocite} \def\nocite[#1]% {\processcommalist[#1]\addthisref \processcommalist[#1]\docitation } %D \macros{setupcite} \def\setupcite{\dodoubleempty\dosetupcite} \def\dosetupcite[#1][#2]% {\ifsecondargument \def\dodosetupcite##1{\getparameters[\??pv##1][#2]}% \processcommalist[#1]\dodosetupcite \else % default case \getparameters[\??pv\@@citedefault][#1]% \fi } %D Low-level stuff \def\getcitedata#1[#2]#3[#4]#5to#6% {\bgroup \addthisref{#4}% \dofetchapublication{#4}% \doifdefinedelse{@@pb@bib#2}% {\xdef#6{\getvalue{@@pb@bib#2}}}% {\xdef#6{\getvalue{@@pb@#2}}}% \egroup} \def\dofetchapublication#1% {\makepbkvalue{#1}% \processcommacommand[\bibcommandlist,crossref]\clearbibitem \processcommalist [artauthor,author,editor]\clearbibitemtwo \processcommacommand[\bibcommandlist]\bibitemdefs \processcommalist [artauthor,author,editor,crossref]\bibitemdefs \getvalue{pbdd-#1}} %D This new version writes a reference out to the tui file for every %D \type{\cite}. This will allow backlinking. %D %D Some special care is needed so that references are not added from %D weird locations like in the TOC or within a \type{\setbox} command. \newcounter\citationnumber \def\docitation#1{% \iftrialtypesetting \else \ifdoinpututilities\else \doglobal\increment\citationnumber \expanded{\rawreference{}{cite-\jobname-\citationnumber}{#1}}% \fi \fi } %D \macros{numreferred,doifreferredelse,addthisref,publist} %D %D The interesting command here is \type{\addthisref}, which maintains %D the global list of references. %D %D \type{\numreferred} is needed to do automatic calculations on %D the label width, and \type{\doifreferredelse} will be used %D to implement \type{criterium=cite}. \newcounter\numreferred \long\def\doifreferredelse#1{\doifdefinedelse{pbr-#1}} \def\addthisref#1% {\doifundefinedelse{pbr-#1} {\setxvalue{pbr-#1}{\citationnumber}% \doglobal\increment\numreferred \ifx\publist\empty \gdef\publist{#1}\else\appended\gdef\publist{,#1}\fi} {\setxvalue{pbr-#1}{\getvalue{pbr-#1},\citationnumber}}} \let\publist\empty %D \macros{doifbibreferencefoundelse} %D %D Some macros to fetch the information provided by %D \type{\startpublication}. \def\doifbibreferencefoundelse#1% {\preloadbiblist \doifdefinedelse{pbdk-#1} {\firstoftwoarguments} {\showmessage\m!publications{5}{#1 is unknown}% \secondoftwoarguments}} %D \macros{ixbibauthoryear,thebibauthors,thebibyears} %D %D If compression of \type{\cite}'s argument expansion is on, %D the macros that deal with authors and years call this internal %D command to do the actual typesetting. %D %D Two entries with same author but with different years may %D be condensed into ``Author (year1,year2)''. This is about the %D only optimization that makes sense for the (author,year) %D style of citations (years within one author have to be unique %D anyway so no need to test for that, and ``Author1, Author2 (year)'' %D creates more confusion than it does good). %D %D In the code below, %D the macro \type{\thebibauthors} holds the names of the alternative %D author info fields for the current list. This is a commalist, %D and \type{\thebibyears} holds the (collection of) year(s) that go with %D this author (possibly as a nested commalist). %D %D There had better be an author for all cases, but there %D does not have to be year info always. \type{\thebibyears} is %D pre-initialized because this makes the insertion macros simpler. %D %D In `normal' \TeX, of course there are expansion problems again. \def\ixbibauthoryear#1#2#3#4% {\bgroup \gdef\ixlastcommand {#4}% \gdef\ixsecondcommand{#3}% \gdef\ixfirstcommand {#2}% \glet\thebibauthors \empty \glet\thebibyears \empty \getcommalistsize[#1]% \ifbibcitecompress \dorecurse\commalistsize{\xdef\thebibyears{\thebibyears,}}% \processcommalist[#1]\docompressbibauthoryear \else \processcommalist[#1]\donormalbibauthoryear \fi \egroup \dobibauthoryear} %D \macros{dodobibauthoryear} %D %D This macro only has to make sure that the lists %D \type{\thebibauthors} and \type{\thebibyears} are printed. \def\dobibauthoryear {\scratchcounter\zerocount \getcommacommandsize[\thebibauthors]% \edef\authorcount{\commalistsize}% \@EA\processcommalist\@EA[\thebibauthors]\dodobibauthoryear} \def\dodobibauthoryear#1% {\advance\scratchcounter\plusone \edef\wantednumber{\the\scratchcounter}% \getfromcommacommand[\thebibyears][\wantednumber]% \@EA\def\@EA\currentbibyear\@EA{\commalistelement}% \setcurrentbibauthor{#1}% \ifnum\scratchcounter=\plusone \ixfirstcommand \else\ifnum \scratchcounter=\authorcount\relax \ixlastcommand \else \ixsecondcommand \fi\fi} \def\setcurrentbibauthor#1% {\getcommacommandsize[#1]% \ifcase\commalistsize % anonymous? \def\currentbibauthor{}% \or \def\currentbibauthor{#1}% \or \expanded{\docurrentbibauthor#1}% \else \handlemultiplebibauthors{\commalistsize}{#1}% \fi } \newcount\citescratchcounter \def\handlemultiplebibauthors#1#2% {\citescratchcounter 0 \def\currentbibauthor{}% \def\bibprocessauthoritem##1% {\advance\citescratchcounter1 \ifnum \citescratchcounter=#1\relax \edef\currentbibauthor{\currentbibauthor##1}% \else \ifnum\numexpr\citescratchcounter+1 = #1\relax \edef\currentbibauthor{\currentbibauthor ##1\bibalternative{andtext}}% \else \edef\currentbibauthor{\currentbibauthor ##1\bibalternative{namesep}}% \fi \fi }% \processcommalist[#2]\bibprocessauthoritem } \setupcite [author,authoryear,authoryears] [\c!namesep={, }] %D This discovery of authoretallimit is not the best one, %D but it will do for now. \def\docurrentbibauthor#1,#2% {\doifemptyelse{#2} {\def\currentbibauthor{#1\bibalternative{otherstext}}} {\@EA \ifx\csname \??pv\@@currentalternative authoretallimit\endcsname\relax \edef\currentbibauthor{#1\bibalternative{andtext}#2}% \else \edef\currentbibauthor{#1% \ifcase0\bibalternative{authoretallimit}\relax\or \bibalternative{otherstext}\else\bibalternative{andtext}#2\fi}% \fi}} %D This is not the one Hans made for me, because I need a global %D edef, and the \type{\robustdoifinsetelse} doesn't listen to %D \type{\doglobal } \def\robustaddtocommalist#1#2% {item} \cs {\robustdoifinsetelse{#1}#2\resetglobal {\dodoglobal\xdef#2{\ifx#2\empty\else#2,\fi#1}}} %D \macros{donormalbibauthoryear} %D %D Now we get to the macros that fill the two lists. %D The `simple' one really is quite simple. \def\donormalbibauthoryear#1% {\addthisref{#1}% \def\myauthor{Xxxxxxxxxx}% \def\myyear{0000}% \doifbibreferencefoundelse{#1} {\def\myauthor{{\getvalue{pbda-#1}}}% \def\myyear {\getvalue{pbdy-#1}}}% {}% \@EA\doglobal\@EA\appendtocommalist\@EA{\myauthor}\thebibauthors \@EA\doglobal\@EA\appendtocommalist\@EA{\myyear }\thebibyears} %D \macros{docompressbibauthoryear} %D %D So much for the easy parts. Nothing at all will be done if %D the reference is not found or the reference does not contain %D author data. No questions marks o.s.s. (to be fixed later) \def\docompressbibauthoryear#1% {\addthisref{#1}% \def\myauthor{Xxxxxxxxxx}% \def\myyear {0000}% \doifbibreferencefoundelse{#1} {\xdef\myauthor{\csname pbda-#1\endcsname }% \xdef\myyear {\csname pbdy-#1\endcsname }} {}% \ifx\myauthor\empty\else \checkifmyauthoralreadyexists \findmatchingyear \fi} %D two temporary counters. One of these two can possibly be replaced %D by \type{\scratchcounter}. \newcount\bibitemcounter \newcount\bibitemwanted %D The first portion is simple enough: if this is the very first author %D it is quite straightforward to add it. \type{\bibitemcounter} and %D \type{\bibitemwanted} are needed later to insert the year %D information in the correct item of \type{\thebibyears} \def\checkifmyauthoralreadyexists {\doifemptyelsevalue{thebibauthors} {\global\bibitemwanted \plusone \global\bibitemcounter \plusone \xdef\thebibauthors{{\myauthor}}} {% the next weirdness is because according to \getcommalistsize, % the length of \type{[{{},{}}]} is 2. \@EA\getcommalistsize\@EA[\thebibauthors,]% \global\bibitemcounter\commalistsize \global\advance\bibitemcounter\minusone \global\bibitemwanted \zerocount \processcommacommand[\thebibauthors]\docomparemyauthor}} %D The outer \type{\ifnum} accomplishes the addition of %D a new author to \type{\thebibauthors}. The messing about with %D the two counters is again to make sure that \type{\thebibyears} %D will be updated correctly.If the author {\it was} found, %D the counters will stay at their present values and everything %D will be setup properly to insert the year info. \def\docomparemyauthor#1% {\global\advance\bibitemwanted \plusone \def\mytempc{#1}% % \message{authors: \myauthor <=>\mytempc \ifx\mytempc\myauthor :Y \else :N % \meaning \myauthor, \meaning\mytempc\fi (\the\bibitemwanted = \the\bibitemcounter)}% \ifx\mytempc\myauthor \quitcommalist \else \ifnum\bibitemwanted = \bibitemcounter\relax \global\advance\bibitemwanted \plusone \global\bibitemcounter\bibitemwanted\relax \@EA\doglobal\@EA\robustaddtocommalist\@EA{{\myauthor}}\thebibauthors \fi \fi} %D This macro should be clear now. \def\findmatchingyear {\edef\wantednumber{\the\bibitemwanted}% \getfromcommacommand[\thebibyears][\wantednumber]% \ifx\commalistelement\empty \edef\myyear{{\myyear}}% \else \edef\myyear{{\commalistelement, \myyear}}% \fi \edef\newcommalistelement{\myyear}% \doglobal\replaceincommalist \thebibyears \wantednumber} %D \macros{preparebibrefprefix} %D %D The reference list only writes bare references when the criterium %D is `all'. Otherwise, a prefix is added to make sure that pdfTeX %D does not encounter duplicate named references. On the generation %D side, this is not a big problem. \type{\preparebibrefprefix} %D creates a suitable string to prepend if a prefix is needed. %D %D Because this macro is used within \type{\cite } that itself %D can be used within lists like the table of contents, it needs %D to save and restore \type{\savedalltoclevels} and %D \type{\currentlevel} (\type{\dosetfilterlevel} needs to change %D their values globally). \def\preparebibrefprefix {\chardef\savedalltoclevels \alltoclevels \let\savedcurrentlevel\currentlevel \let\dosetfilterlevel\patcheddosetfilterlevel \dosettoclevel\??li{pubs}% \edef\bibrefprefix{\@@sectiontype\currentlevel\sectionseparator}% \let\dosetfilterlevel\normaldosetfilterlevel \global\let\currentlevel\savedcurrentlevel \global\chardef\alltoclevels \savedalltoclevels } %D \macros{preparebibreflist} %D %D But this optional prefixing is a bit of a problem on the %D other side. We would like to do \type{\goto{}[article-full]} %D but can't do it like that, because the actual label may be %D \type{1:2:0:3:4:article-full]} or so. The problem is solved %D by building a commalist that looks like this: %D \starttyping %D \def\bibreflist% %D {1:2:0:3:4:article-full, %D 1:2:0:3:article-full, %D 1:2:0:article-full, %D 1:2:article-full, %D 1:article-full, %D article-full} %D \stoptyping \def\preparebibreflist#1% {\let\bibreflist\empty \def\storeitem##1% {\ifx\bibreflist\empty \edef\prefix{##1\sectionseparator}% \edef\bibreflist{\prefix#1,#1}% \else \edef\prefix{\prefix##1\sectionseparator}% \edef\bibreflist{\prefix#1,\bibreflist}% \fi}% \expanded{\processseparatedlist[\bibrefprefix][\sectionseparator]}\storeitem } %D \macros{gotobiblink,inbiblink,atbiblink} %D %D The final task is looping over that list until a match is found. \newif\ifbibreffound \def\gotobiblink#1[#2]% {\bgroup \preparebibrefprefix \preparebibreflist{#2}% \global\bibreffoundfalse \def\setuplink##1% {\ifbibreffound\else \doifreferencefoundelse {##1} {\global\bibreffoundtrue \goto{#1}[##1]}% {}\fi}% \processcommacommand[\bibreflist]\setuplink \ifbibreffound \else \unknownreference{#2}\fi \egroup } \def\atbiblink[#1]% {\bgroup \preparebibrefprefix \preparebibreflist{#1}% \global\bibreffoundfalse \def\setuplink##1% {\ifbibreffound\else \doifreferencefoundelse {##1} {\global\bibreffoundtrue \at[##1]}% {}\fi}% \processcommacommand[\bibreflist]\setuplink \ifbibreffound \else \unknownreference{#1}\fi \egroup } \def\inbiblink[#1]% {\bgroup \preparebibrefprefix \preparebibreflist{#1}% \global\bibreffoundfalse \def\setuplink##1% {\ifbibreffound\else \doifreferencefoundelse {##1} {\global\bibreffoundtrue \in[##1]}% {}\fi}% \processcommacommand[\bibreflist]\setuplink \ifbibreffound \else \unknownreference{#1}\fi \egroup } %D \macros{bibauthoryearref,bibauthoryearsref,bibauthorref,bibyearref} %D %D Now that all the hard work has been done, these are simple. %D \type{\ixbibauthoryearref} stores the data in the macros %D \type{\currentbibauthor} and \type{\currentbibyear}. \def\ifbibinteractionelse% {\iflocation \edef\test{\bibalternative\c!interaction}% \ifx\test\v!stop \@EA\@EA\@EA\secondoftwoarguments \else \@EA\@EA\@EA\firstoftwoarguments \fi \else \@EA\secondoftwoarguments \fi } \def\bibmaybeinteractive#1#2% {\ifbibcitecompress #2\else \ifbibinteractionelse{\gotobiblink{#2}[#1]}{#2}\fi } \def\bibauthoryearref[#1]% {\ixbibauthoryear{#1}% {\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween \bibalternative\v!left{\currentbibyear}\bibalternative\v!right}} {\bibalternative\c!pubsep \bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween \bibalternative\v!left {\currentbibyear}\bibalternative\v!right}} {\bibalternative\c!lastpubsep \bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween \bibalternative\v!left {\currentbibyear}\bibalternative\v!right}}} \def\bibauthoryearsref[#1]% {\bibalternative\v!left \ixbibauthoryear{#1} {\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}} {\bibalternative\c!pubsep \bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}} {\bibalternative\c!lastpubsep \bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}% \bibalternative\v!right} \def\bibauthorref[#1]% {\bibalternative\v!left \ixbibauthoryear{#1}% {\bibmaybeinteractive{#1}{{\currentbibauthor}}} {\bibalternative\c!pubsep \bibmaybeinteractive{#1}{{\currentbibauthor}}} {\bibalternative\c!lastpubsep\bibmaybeinteractive{#1}{{\currentbibauthor}}}% \bibalternative\v!right} \def\bibyearref[#1]% {\bibalternative\v!left \ixbibauthoryear{#1}% {\bibmaybeinteractive{#1}{{\currentbibyear}}} {\bibalternative\c!pubsep \bibmaybeinteractive{#1}{{\currentbibyear}}} {\bibalternative\c!lastpubsep\bibmaybeinteractive{#1}{{\currentbibyear}}}% \bibalternative\v!right} %D ML problems: %D \macros{bibshortref,bibkeyref,bibpageref,bibtyperef,bibserialref} %D %D There is hardly any point in trying to compress these. The only %D thing that needs to be done is making sure that %D the separations are inserted correctly. And that is %D what \type{\refsep} does. \newif\iffirstref \def\refsep{\iffirstref\firstreffalse\else\bibalternative\c!pubsep\fi} \def\bibshortref[#1]% {\bibalternative\v!left \firstreftrue\processcommalist[#1]\dobibshortref \bibalternative\v!right} \def\dobibshortref#1% {\addthisref{#1}\refsep \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbds-#1}}[#1]} {\unknownreference{#1}}} \def\bibserialref[#1]% {\bibalternative\v!left \firstreftrue\processcommalist[#1]\dobibserialref \bibalternative\v!right} \def\dobibserialref#1% {\addthisref{#1}\refsep \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbdn-#1}}[#1]} {\unknownreference{#1}}} \def\bibkeyref[#1]% {\bibalternative\v!left \firstreftrue\processcommalist[#1]\dobibkeyref \bibalternative\v!right} \def\dobibkeyref#1% {\addthisref{#1}\refsep\gotobiblink{#1}[#1]} \def\gotoDOI#1#2% {\ifbibinteractionelse {\useURL[bibfooDoi#1][#2]% \useURL[bibfoo#1][http://dx.doi.org/#2]% \goto{\url[bibfooDoi#1]}[url(bibfoo#1)]} {\hyphenatedurl{#2}}} \def\bibdoiref[#1]% {\bibalternative\v!left \firstreftrue\processcommalist[#1]\dobibdoiref \bibalternative\v!right} \def\dobibdoiref#1% {\addthisref{#1}\refsep \doifbibreferencefoundelse{#1}{\expanded{\gotoDOI{#1}{\getvalue{pbdo-#1}}}} {\unknownreference{#1}}} \def\biburlref[#1]% {\bibalternative\v!left \firstreftrue\processcommalist[#1]\dobiburlref \bibalternative\v!right} \def\gotoURL#1#2% {\ifbibinteractionelse {\useURL[bibfoo#1][#2]\goto{\url[bibfoo#1]}[url(bibfoo#1)]} {\hyphenatedurl{#2}}} \def\dobiburlref#1% {\addthisref{#1}\refsep \doifbibreferencefoundelse{#1}{\expanded{\gotoURL{#1}{\getvalue{pbdu-#1}}}} {\unknownreference{#1}}} \def\bibtyperef[#1]% {\bibalternative\v!left \firstreftrue\processcommalist[#1]\dobibtyperef \bibalternative\v!right} \def\dobibtyperef#1% {\addthisref{#1}\refsep \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbdt-#1}}[#1]} {\unknownreference{#1}}} \def\bibpageref[#1]% {\bibalternative\v!left \firstreftrue\processcommalist[#1]\dobibpageref \bibalternative\v!right} \def\dobibpageref#1% {\addthisref{#1}\refsep \ifbibinteractionelse{\atbiblink[#1]}{{\referencingfalse\at[#1]}}} \def\bibdataref[#1]% {\bibalternative\v!left \firstreftrue\processcommalist[#1]\dobibdata \bibalternative\v!right} \def\dobibdata#1% {\addthisref{#1}\refsep \doifbibreferencefoundelse{#1}{\dotypesetapublication{#1}} {\unknownreference{#1}}} \let\bibnoneref\nocite %D \macros{bibnumref} %D %D It makes sense to try and compress the argument list of %D \type{\bibnumref}. There are two things involved: the actual %D compression, and a sort routine. The idea is to store the %D found values in a new commalist called \type{\therefs}. %D But that is not too straight-forward, because \type{\in} is %D not expandable, %D so that the macro \type{\expandrefs} is needed. \def\expandrefs#1% {\bgroup \preparebibrefprefix \preparebibreflist{#1}% \global\bibreffoundfalse \def\setuplink##1% {\ifbibreffound\else \doifreferencefoundelse {##1} {\global\bibreffoundtrue \@EA\doglobal\@EA\addtocommalist\@EA{\reftypet}\therefs }% {}\fi}% \processcommacommand[\bibreflist]\setuplink \ifbibreffound \else \showmessage\m!publications{5}{#1 unknown}% \doglobal\addtocommalist{0}\therefs\fi \egroup } %D But at least the actual sorting code is simple (note that sorting %D a list with exactly one entry fails to return anything, which %D is why the \type{\ifx} is needed). \def\bibnumref[#1]% {\bibalternative\v!left \penalty\!!tenthousand \processcommalist[#1]\addthisref \firstreftrue \ifbibcitecompress \glet\therefs\empty \processcommalist[#1]\expandrefs \sortcommacommand[\therefs]\donumericcompare \ifx\empty\sortedcommalist\else \let\therefs\sortedcommalist \fi \compresscommacommandnrs[\therefs]% \processcommacommand[\compressedlist]\verysimplebibnumref \else \processcommalist[#1]\dosimplebibnumref \fi \bibalternative\v!right} \def\dosimplebibnumref #1% {\refsep\ifbibinteractionelse {\inbiblink[#1]}{{\referencingfalse\inbiblink[#1]}}} \def\verysimplebibnumref#1{\doverysimplebibnumref#1} \def\doverysimplebibnumref#1#2% {\refsep \ifcase#1\relax \unknownreference{#1}\else \def\tempa{#2}\ifx\empty\tempa#1\else#1\bibalternative\c!inbetween#2\fi \fi} %D By request from Sanjoy. This makes it easier to implement %D \type{\citeasnoun}. \def\bibauthornumref[#1]% {\getcommalistsize[#1]% \global\bibitemcounter\commalistsize \firstreftrue \processcommalist[#1]\dobibauthornumref } \def\dobibauthornumref#1% {\addthisref{#1}\refsep \doifbibreferencefoundelse{#1} {\getvalue{pbda-#1}% \bibalternative\c!inbetween \bibalternative\v!left \ifbibinteractionelse{\inbiblink[#1]} {{\referencingfalse\inbiblink[#1]}}% \bibalternative\v!right} {\unknownreference{#1}}} %D And some defaults are loaded from bibl-apa: \setuppublications [\v!month\v!conversion=, \c!alternative=apa] \appendtoks \preloadbiblist \to \everystarttext \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-nl.mkii0000644000175000017500000000102014536300610024516 0ustar hillehille%D \module %D [ file=cont-nl, %D version=1997.08.19, %D title=\CONTEXT, %D subtitle=\CONTEXT\ Dutch Format Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \catcode`\{=1 \catcode`\}=2 \def\defaultinterface {dutch} \def\defaultlanguagetag{nl} \input context.mkii \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/xtag-mer.mkii0000644000175000017500000003253214536300610024704 0ustar hillehille% filtered from html files by Patrick Ion % % ISOAMSR Characters Extended % % Added Math Symbols: Relations \defineMMLentity apE E315 {unknown} approximately equal or equal to \defineMMLentity ape 224A {unknown} approximate, equals \defineMMLentity apid 224B {unknown} approximately identical to \defineMMLentity asymp 224D {\asymp} asymptotically equal to \defineMMLentity Barv E311 {unknown} vert, double bar (over) \defineMMLentity bcong 224C {unknown} reverse congruent \defineMMLentity bepsi E420 {unknown} such that \defineMMLentity bowtie 22C8 {unknown} bowtie \defineMMLentity bsim 223D {unknown} reverse similar \defineMMLentity bsime 22CD {unknown} reverse similar, equals \defineMMLentity bsolhsub E34D {unknown} reverse solidus, subset \defineMMLentity bump 224E {unknown} bumpy equals \defineMMLentity bumpe 224F {unknown} bumpy equals, equals \defineMMLentity cire 2257 {unknown} circle, equals \defineMMLentity Colon 2237 {unknown} two colons \defineMMLentity Colone E30E {unknown} double colon, equals \defineMMLentity colone 2254 {unknown} colon, equals \defineMMLentity congdot E314 {unknown} congruent, dot \defineMMLentity csub E351 {unknown} subset, closed \defineMMLentity csube E353 {unknown} subset, closed, equals \defineMMLentity csup E352 {unknown} superset, closed \defineMMLentity csupe E354 {unknown} superset, closed, equals \defineMMLentity cuepr 22DE {unknown} curly equals, precedes \defineMMLentity cuesc 22DF {unknown} curly equals, succeeds \defineMMLentity Dashv E30F {unknown} double dash, vertical \defineMMLentity dashv 22A3 {\dashv} dash, vertical \defineMMLentity easter 225B {unknown} equal, asterisk above \defineMMLentity ecir 2256 {unknown} circle on equals sign \defineMMLentity ecolon 2255 {unknown} equals, colon \defineMMLentity eDDot E309 {unknown} equal with four dots \defineMMLentity eDot 2251 {unknown} equals, even dots \defineMMLentity efDot 2252 {unknown} equals, falling dots \defineMMLentity eg E328 {unknown} equal-or-greater \defineMMLentity egs 22DD {unknown} equal-or-gtr, slanted \defineMMLentity egsdot E324 {unknown} equal-or-greater, slanted, dot inside \defineMMLentity el E327 {unknown} equal-or-less \defineMMLentity els 22DC {unknown} eq-or-less, slanted \defineMMLentity elsdot E323 {unknown} equal-or-less, slanted, dot inside \defineMMLentity equest 225F {unknown} equal with questionmark \defineMMLentity equivDD E318 {unknown} equivalent, four dots above \defineMMLentity erDot 2253 {unknown} equals, rising dots \defineMMLentity esdot 2250 {unknown} equals, single dot above \defineMMLentity Esim E317 {unknown} equal, similar \defineMMLentity esim 2242 {unknown} equals, similar \defineMMLentity fork 22D4 {unknown} pitchfork \defineMMLentity forkv E31B {unknown} fork, variant \defineMMLentity frown 2322 {\frown} down curve \defineMMLentity gap 2273 {unknown} greater, approximate \defineMMLentity gE 2267 {unknown} greater, double equals \defineMMLentity gEl 22DB {unknown} gt, double equals, less \defineMMLentity gel 22DB {unknown} greater, equals, less \defineMMLentity ges E421 {unknown} gt-or-equal, slanted \defineMMLentity gescc E358 {unknown} greater than, closed by curve, equal, slanted \defineMMLentity gesdot E31E {unknown} greater-than-or-equal, slanted, dot inside \defineMMLentity gesdoto E320 {unknown} greater-than-or-equal, slanted, dot above \defineMMLentity gesdotol E322 {unknown} greater-than-or-equal, slanted, dot above left \defineMMLentity gesl E32C {unknown} greater, equal, slanted, less \defineMMLentity gesles E332 {unknown} greater, equal, slanted, less, equal, slanted \defineMMLentity Gg 22D9 {unknown} triple gtr-than \defineMMLentity gl 2277 {unknown} greater, less \defineMMLentity gla E330 {unknown} greater, less, apart \defineMMLentity glE E32E {unknown} greater, less, equal \defineMMLentity glj E32F {unknown} greater, less, overlapping \defineMMLentity gsim 2273 {unknown} greater, similar \defineMMLentity gsime E334 {unknown} greater, similar, equal \defineMMLentity gsiml E336 {unknown} greater, similar, less \defineMMLentity Gt 226B {unknown} double greater-than sign \defineMMLentity gtcc E356 {unknown} greater than, closed by curve \defineMMLentity gtcir E326 {unknown} greater than, circle inside \defineMMLentity gtdot 22D7 {unknown} greater than, with dot \defineMMLentity gtquest E32A {unknown} greater than, questionmark above \defineMMLentity gtrarr E35F {unknown} greater than, right arrow \defineMMLentity homtht 223B {unknown} homothetic \defineMMLentity lap 2272 {unknown} less, approximate \defineMMLentity lat E33A {unknown} larger than \defineMMLentity late E33C {unknown} larger than or equal \defineMMLentity lates E33E {unknown} larger than or equal, slanted \defineMMLentity lE 2266 {unknown} less, double equals \defineMMLentity lEg 22DA {unknown} less, double equals, greater \defineMMLentity leg 22DA {unknown} less, equals, greater \defineMMLentity les E425 {unknown} less-than-or-equals, slant \defineMMLentity lescc E357 {unknown} less than, closed by curve, equal, slanted \defineMMLentity lesdot E31D {unknown} less-than-or-equal, slanted, dot inside \defineMMLentity lesdoto E31F {unknown} less-than-or-equal, slanted, dot above \defineMMLentity lesdotor E321 {unknown} less-than-or-equal, slanted, dot above right \defineMMLentity lesg E32B {unknown} less, equal, slanted, greater \defineMMLentity lesges E331 {unknown} less, equal, slanted, greater, equal, slanted \defineMMLentity lg 2276 {unknown} less, greater \defineMMLentity lgE E32D {unknown} less, greater, equal \defineMMLentity Ll 22D8 {unknown} triple less-than \defineMMLentity lsim 2272 {unknown} less, similar \defineMMLentity lsime E333 {unknown} less, similar, equal \defineMMLentity lsimg E335 {unknown} less, similar, greater \defineMMLentity Lt 226A {unknown} double less-than sign \defineMMLentity ltcc E355 {unknown} less than, closed by curve \defineMMLentity ltcir E325 {unknown} less than, circle inside \defineMMLentity ltdot 22D6 {unknown} less than, with dot \defineMMLentity ltlarr E35E {unknown} less than, left arrow \defineMMLentity ltquest E329 {unknown} less than, questionmark above \defineMMLentity ltrie 22B4 {unknown} left triangle, equals \defineMMLentity mcomma E31A {unknown} minus, comma above \defineMMLentity mDDot 223A {unknown} minus with four dots, geometric properties \defineMMLentity mid 2223 {\mid} mid \defineMMLentity mlcp E30A {unknown} transversal intersection \defineMMLentity models 22A7 {\models} models \defineMMLentity mstpos 223E {unknown} most positive \defineMMLentity Pr E35C {unknown} double precedes \defineMMLentity pr 227A {\prec} precedes \defineMMLentity prap 227E {unknown} precedes, approximate \defineMMLentity prcue 227C {unknown} precedes, curly equals \defineMMLentity prE 227C {unknown} precedes, double equals \defineMMLentity pre 227C {\preceq} precedes, equals \defineMMLentity prsim 227E {unknown} precedes, similar \defineMMLentity prurel 22B0 {unknown} element precedes under relation \defineMMLentity ratio 2236 {unknown} ratio \defineMMLentity rtrie 22B5 {unknown} right triangle, equals \defineMMLentity rtriltri E359 {unknown} right triangle above left triangle \defineMMLentity Sc E35D {unknown} double succeeds \defineMMLentity sc 227B {\succ} succeeds \defineMMLentity scap 227F {unknown} succeeds, approximate \defineMMLentity sccue 227D {unknown} succeeds, curly equals \defineMMLentity scE 227E {unknown} succeeds, double equals \defineMMLentity sce 227D {\succeq} succeeds, equals \defineMMLentity scsim 227F {unknown} succeeds, similar \defineMMLentity sdote E319 {unknown} equal, dot below \defineMMLentity sfrown E426 {unknown} small down curve \defineMMLentity simg E30C {unknown} similar, greater \defineMMLentity simgE E338 {unknown} similar, greater, equal \defineMMLentity siml E30B {unknown} similar, less \defineMMLentity simlE E337 {unknown} similar, less, equal \defineMMLentity smid E301 {unknown} shortmid \defineMMLentity smile 2323 {\smile} up curve \defineMMLentity smt E339 {unknown} smaller than \defineMMLentity smte E33B {unknown} smaller than or equal \defineMMLentity smtes E33D {unknown} smaller than or equal, slanted \defineMMLentity spar E302 {unknown} short parallel \defineMMLentity sqsub 228F {unknown} square subset \defineMMLentity sqsube 2291 {\sqsubseteq} square subset, equals \defineMMLentity sqsup 2290 {unknown} square superset \defineMMLentity sqsupe 2292 {\sqsupseteq} square superset, equals \defineMMLentity ssmile E303 {unknown} small up curve \defineMMLentity Sub 22D0 {unknown} double subset \defineMMLentity subE 2286 {unknown} subset, double equals \defineMMLentity subedot E34F {unknown} subset, equals, dot \defineMMLentity submult E343 {unknown} subset, multiply \defineMMLentity subplus E341 {unknown} subset, plus \defineMMLentity subrarr E33F {unknown} subset, right arrow \defineMMLentity subsim E345 {unknown} subset, similar \defineMMLentity subsub E349 {unknown} subset above subset \defineMMLentity subsup E347 {unknown} subset above superset \defineMMLentity Sup 22D1 {unknown} double superset \defineMMLentity supdsub E34C {unknown} superset, subset, dash joining them \defineMMLentity supE 2287 {unknown} superset, double equals \defineMMLentity supedot E350 {unknown} superset, equals, dot \defineMMLentity suphsol E34E {unknown} superset, solidus \defineMMLentity suphsub E34B {unknown} superset, subset \defineMMLentity suplarr E340 {unknown} superset, left arrow \defineMMLentity supmult E344 {unknown} superset, multiply \defineMMLentity supplus E342 {unknown} superset, plus \defineMMLentity supsim E346 {unknown} superset, similar \defineMMLentity supsub E348 {unknown} superset above subset \defineMMLentity supsup E34A {unknown} superset above superset \defineMMLentity thkap E306 {unknown} thick approximate \defineMMLentity thksim E429 {unknown} thick similar \defineMMLentity topfork E31C {unknown} fork with top \defineMMLentity trie 225C {unknown} triangle, equals \defineMMLentity twixt 226C {unknown} between \defineMMLentity Vbar E30D {unknown} double vert, bar (under) \defineMMLentity vBar E310 {unknown} vert, double bar (under) \defineMMLentity vBarv E312 {unknown} double bar, vert over and under \defineMMLentity VDash 22AB {unknown} double vert, double dash \defineMMLentity Vdash 22A9 {unknown} double vertical, dash \defineMMLentity vDash 22A8 {unknown} vertical, double dash \defineMMLentity vdash 22A2 {\vdash} vertical, dash \defineMMLentity Vdashl E313 {unknown} vertical, dash (long) \defineMMLentity vltri 22B2 {\triangleleft} left triangle, open, variant \defineMMLentity vprop 221D {unknown} proportional, variant \defineMMLentity vrtri 22B3 {\triangleright} right triangle, open, variant \defineMMLentity Vvdash 22AA {unknown} triple vertical, dash context-modules-20240428/texmf-dist/tex/context/base/mkii/math-run.mkii0000644000175000017500000001004114536300610024702 0ustar hillehille%D \module %D [ file=math-run, %D version=2001.23.04, %D title=\CONTEXT\ Math Macros, %D subtitle=Runtime Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Math Macros / Runtime Macros} \unprotect \ifx\showmathmodern\undefined \global\chardef\showmathmodern\zerocount \fi \gdef\showmathcharacters% nearly \showcharacters {\par \bgroup \ifcase\showmathmodern\or\ifx\modern\undefined\chardef\showmathmodern\zerocount\fi\fi \setuptextrules[\c!bodyfont=,\c!style=] \starttextrule{math characters -- \currentmathcollection} \whitespace \dontcomplain \forgetall \def\startmathcollection[##1]{} \let\stopmathcollection\relax \dimen0\zeropoint \dimen2\zeropoint \def\definemathsymbol {\dosixtupleempty\dodefinemathsymbol} \def\definemathcharacter{\dosixtupleempty\dodefinemathcharacter} \def\definemathcommand {\dotripleempty \dodefinemathcommand} %\newcounter\mathcolor \def\dodefinemathsymbol[##1][##2][##3][##4][##5][##6]% {%\doifcolorelse{math \purefamilyhex{##3}}{} % {\increment\mathcolor % \definecolor[math \purefamilyhex{##3}][\mathcolor]}% \setbox0\hbox spread 1em{\mathematics{\getvalue{##1}{}{}{}}}% \ifdim\wd0>\dimen0 \dimen0=\wd0 \fi \setbox2\hbox spread 1em{\hbox to 1em{\tttf\purefamilyhex{##3}\hss}\box0 ##1}% \ifdim\wd2>\dimen2 \dimen2=\wd2 \fi} \def\dodefinemathcharacter[##1][##2][##3][##4][##5][##6]{} \def\dodefinemathcommand [##1][##2][##3]##4{} \readsysfile{\f!mathprefix tex.mkii}\!!doneatrue\!!doneafalse \readsysfile{\f!mathprefix ams.mkii}\!!donebtrue\!!donebfalse \if!!donea \if!!doneb \edef\encwidth{\the\dimen0} \dimen0=\hsize \advance\dimen0 2em \advance\dimen2 2em \ifcase\showmathmodern\or\advance\dimen2 4em\fi \divide \dimen0 by \dimen2 \advance\dimen0 1sp \edef\enccols{\number\dimen0} \startcolumns[\c!n=\enccols,\c!distance=2em] \def\dodefinemathsymbol[##1][##2][##3][##4][##5][##6]% {%\localcolortrue %\color % [math \purefamilyhex{##3}] {\hbox {\ifcase\showmathmodern\or \hbox to \encwidth{\modern\let\mathcollection\nomathcollection\mathematics{\getvalue{##1}{}{}{}}\hss}% \fi \hbox to \encwidth{\mathematics{\getvalue{##1}{}{}{}}\hss}% \hbox to 1em{\tttf\purefamilyhex{##3}\hss}##1}\par}} \readsysfile{\f!mathprefix tex.mkii}\donothing\donothing \readsysfile{\f!mathprefix ams.mkii}\donothing\donothing \stopcolumns \else \par \tttf no chars in \f!mathprefix ams\par \fi \else \par \tttf no chars in \f!mathprefix tex\par \fi \stoptextrule \egroup} % \definecolor[math \purefamilyhex{mr}] [darkred] % \definecolor[math \purefamilyhex{mi}] [darkgreen] % \definecolor[math \purefamilyhex{sy}] [darkblue] % \definecolor[math \purefamilyhex{ex}] [darkmagenta] % \definecolor[math \purefamilyhex{nn}] [darkyellow] % \definecolor[math \purefamilyhex{ma}] [lightred] % \definecolor[math \purefamilyhex{mb}] [lightgreen] % \definecolor[math \purefamilyhex{mc}] [lightblue] % \definecolor[math \purefamilyhex{md}] [lightmagenta] \gdef\showmathtoken#1% {\starttabulate[|lT|lT|lT|l|] \NC token \NC #1 \NC \NR \NC collection \NC \ifcsname\@mt@\mathcollection#1\endcsname \mathcollection \else\ifcsname\@mt@\nomathcollection#1\endcsname \nomathcollection \else ?% \fi\fi \NC \NR \NC visualization \NC \mathematics{\getvalue{#1}} \NC \NR \NC definition \NC \tttf \@EA\defconvertedcommand\@EA\ascii\csname\@mt@\mathcollection#1\endcsname \ascii \NC \NR \stoptabulate} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/colo-rgb.mkii0000644000175000017500000003311414536300610024661 0ustar hillehille%D \module %D [ file=colo-rgb, %D version=1995.01.01, %D title=\CONTEXT\ Color Macros, %D subtitle=RGB, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Just to give users a start we define some colors. While %D switching fonts is as international as can be, thanks to the %D mnemonics, naming colors is very interface dependant. To %D support international setups, we define both english and %D interface dependant colors. We use the color inheritance %D mechanisms to implement the interface dependant ones. %D First we define some simple primary \cap{RGB} and \cap{CMYK} %D colors. All colors are defined in \cap{RGB} color space. \definecolor [red] [r=1, g=0, b=0] \definecolor [green] [r=0, g=1, b=0] \definecolor [blue] [r=0, g=0, b=1] \definecolor [cyan] [r=0, g=1, b=1] \definecolor [magenta] [r=1, g=0, b=1] \definecolor [yellow] [r=1, g=1, b=0] \definecolor [white] [s=1] % [r=1, g=1, b=1] \definecolor [black] [s=0] \definecolor [gray] [s=.9] \definecolor [darkred] [r=.8, g=0, b=0] \definecolor [middlered] [r=.9, g=0, b=0] \definecolor [lightred] [r=1, g=0, b=0] \definecolor [darkgreen] [r=0, g=.6, b=0] \definecolor [middlegreen] [r=0, g=.8, b=0] \definecolor [lightgreen] [r=0, g=1, b=0] \definecolor [darkblue] [r=0, g=0, b=.8] \definecolor [middleblue] [r=0, g=0, b=.9] \definecolor [lightblue] [r=0, g=0, b=1] \definecolor [darkcyan] [r=.6, g=.8, b=.8] \definecolor [middlecyan] [r=0, g=.8, b=.8] \definecolor [darkmagenta] [r=.8, g=.6, b=.8] \definecolor [middlemagenta] [r=1, g=0, b=.6] \definecolor [darkyellow] [r=.8, g=.8, b=.6] \definecolor [middleyellow] [r=1, g=1, b=.2] \definecolor [darkgray] [s=.5] \definecolor [middlegray] [s=.7] \definecolor [lightgray] [s=.9] %D These colors are mapped to interface dependant colornames. \startinterface dutch \definecolor [rood] [red] \definecolor [groen] [green] \definecolor [blauw] [blue] \definecolor [cyaan] [cyan] \definecolor [magenta] [magenta] \definecolor [geel] [yellow] \definecolor [wit] [white] \definecolor [grijs] [gray] \definecolor [zwart] [black] \definecolor [donkerrood] [darkred] \definecolor [middelrood] [middlered] \definecolor [lichtrood] [lightred] \definecolor [donkergroen] [darkgreen] \definecolor [middelgroen] [middlegreen] \definecolor [lichtgroen] [lightgreen] \definecolor [donkerblauw] [darkblue] \definecolor [middelblauw] [middleblue] \definecolor [lichtblauw] [lightblue] \definecolor [donkercyaan] [darkcyan] \definecolor [middelcyaan] [middlecyan] \definecolor [donkermagenta] [darkmagenta] \definecolor [middelmagenta] [middlemagenta] \definecolor [donkergeel] [darkyellow] \definecolor [middelgeel] [middleyellow] \definecolor [donkergrijs] [darkgray] \definecolor [middengrijs] [middlegray] \definecolor [lichtgrijs] [lightgray] \stopinterface \startinterface german \definecolor [rot] [red] \definecolor [gruen] [green] \definecolor [blau] [blue] \definecolor [cyan] [cyan] \definecolor [magenta] [magenta] \definecolor [gelb] [yellow] \definecolor [weiss] [white] \definecolor [grau] [gray] \definecolor [schwarz] [black] \definecolor [dunkelrot] [darkred] \definecolor [mittelrot] [middlered] \definecolor [hellrot] [lightred] \definecolor [dunkelgruen] [darkgreen] \definecolor [mittelgruen] [middlegreen] \definecolor [hellgruen] [lightgreen] \definecolor [dunkelblau] [darkblue] \definecolor [mittelblau] [middleblue] \definecolor [hellblau] [lightblue] \definecolor [dunkelcyan] [darkcyan] \definecolor [mittelcyan] [middlecyan] \definecolor [dunkelmagenta] [darkmagenta] \definecolor [mittelmagenta] [middlemagenta] \definecolor [dunkelgelb] [darkyellow] \definecolor [mittelgelb] [middleyellow] \definecolor [dunkelgrau] [darkgray] \definecolor [mittelgrau] [middlegray] \definecolor [hellgrau] [lightgray] \stopinterface \startinterface czech \definecolor [cervena] [red] \definecolor [zelena] [green] \definecolor [modra] [blue] \definecolor [azurova] [cyan] \definecolor [fialova] [magenta] \definecolor [zluta] [yellow] \definecolor [bila] [white] \definecolor [cerna] [black] \definecolor [tmavecervena] [darkred] \definecolor [strednecervena] [middlered] \definecolor [svetlecervena] [lightred] \definecolor [tmavezelena] [darkgreen] \definecolor [strednezelena] [middlegreen] \definecolor [svetlezelena] [lightgreen] \definecolor [tmavemodra] [darkblue] \definecolor [strednemodra] [middleblue] \definecolor [svetlemodra] [lightblue] \definecolor [tmaveazurova] [darkcyan] \definecolor [stredneazurova] [middlecyan] \definecolor [tmavefialova] [darkmagenta] \definecolor [strednefialova] [middlemagenta] \definecolor [tmavezluta] [darkyellow] \definecolor [strednezluta] [middleyellow] \definecolor [tmaveseda] [darkgray] \definecolor [stredneseda] [middlegray] \definecolor [svetleseda] [lightgray] \stopinterface \startinterface italian \definecolor [rosso] [red] \definecolor [verde] [green] \definecolor [blu] [blue] \definecolor [azzurro] [cyan] \definecolor [turchino] [cyan] \definecolor [ciano] [cyan] \definecolor [cremisi] [magenta] \definecolor [giallo] [yellow] \definecolor [bianco] [white] \definecolor [grigio] [gray] \definecolor [nero] [black] \definecolor [rossoscuro] [darkred] \definecolor [rossomedio] [middlered] \definecolor [rossochiaro] [lightred] \definecolor [verdescuro] [darkgreen] \definecolor [verdemedio] [middlegreen] \definecolor [verdechiaro] [lightgreen] \definecolor [bluscuro] [darkblue] \definecolor [blumedio] [middleblue] \definecolor [bluchiaro] [lightblue] \definecolor [azzurroscuro] [darkcyan] \definecolor [azzurrochiaro] [middlecyan] \definecolor [cremisiscuro] [darkmagenta] \definecolor [cremisichiaro] [middlemagenta] \definecolor [gialloscuro] [darkyellow] \definecolor [giallomedio] [middleyellow] \definecolor [grigioscuro] [darkgray] \definecolor [grigiomedio] [middlegray] \definecolor [grigiochiaro] [lightgray] \stopinterface \startinterface romanian \definecolor [rosu] [red] \definecolor [verde] [green] \definecolor [albastru] [blue] \definecolor [cian] [cyan] \definecolor [magenta] [magenta] \definecolor [galben] [yellow] \definecolor [alb] [white] \definecolor [gri] [gray] \definecolor [negru] [black] \definecolor [rosuinchis] [darkred] \definecolor [rosumediu] [middlered] \definecolor [rosudeschis] [lightred] \definecolor [verdeinchis] [darkgreen] \definecolor [verdemediu] [middlegreen] \definecolor [verdedeschis] [lightgreen] \definecolor [albastruinchis] [darkblue] \definecolor [albastrumediu] [middleblue] \definecolor [albastrudeschis] [lightblue] \definecolor [cianinchis] [darkcyan] \definecolor [cianmediu] [middlecyan] \definecolor [magentainchis] [darkmagenta] \definecolor [magentamediu] [middlemagenta] \definecolor [galbeninchis] [darkyellow] \definecolor [galbenmediu] [middleyellow] \definecolor [griinchis] [darkgray] \definecolor [grimediu] [middlegray] \definecolor [grideschis] [lightgray] \stopinterface %D Like colors, we first define the english colorgroups. These %D colorgroups are tuned for distinctive gray scale printing. % todo : more efficient and real gray \definecolorgroup [gray] [0.95:0.95:0.95, 0.90:0.90:0.90, 0.80:0.80:0.80, 0.70:0.70:0.70, 0.60:0.60:0.60, 0.50:0.50:0.50, 0.40:0.40:0.40, 0.30:0.30:0.30, 0.20:0.20:0.20, 0.10:0.10:0.10, 0.00:0.00:0.00] \definecolorgroup [red] [1.00:0.90:0.90, 1.00:0.80:0.80, 1.00:0.70:0.70, 1.00:0.55:0.55, 1.00:0.40:0.40, 1.00:0.25:0.25, 1.00:0.15:0.15, 0.90:0.00:0.00] \definecolorgroup [green] [0.90:1.00:0.90, 0.70:1.00:0.70, 0.50:1.00:0.50, 0.30:1.00:0.30, 0.15:0.90:0.15, 0.00:0.80:0.00, 0.00:0.65:0.00, 0.00:0.50:0.00] \definecolorgroup [blue] [0.90:0.95:1.00, 0.80:0.90:1.00, 0.55:0.85:1.00, 0.30:0.80:1.00, 0.15:0.75:1.00, 0.00:0.70:1.00, 0.00:0.55:1.00, 0.00:0.40:1.00] \definecolorgroup [cyan] [0.80:1.00:1.00, 0.60:1.00:1.00, 0.30:1.00:1.00, 0.00:0.95:0.95, 0.00:0.85:0.85, 0.00:0.75:0.75, 0.00:0.60:0.60, 0.00:0.50:0.50] \definecolorgroup [magenta] [1.00:0.90:1.00, 1.00:0.80:1.00, 1.00:0.65:1.00, 1.00:0.50:1.00, 1.00:0.35:1.00, 1.00:0.15:1.00, 0.90:0.05:0.90, 0.80:0.00:0.80] \definecolorgroup [yellow] [1.00:1.00:0.70, 1.00:1.00:0.00, 1.00:0.85:0.05, 1.00:0.70:0.00, 1.00:0.55:0.00, 0.95:0.40:0.00, 0.80:0.30:0.00, 0.60:0.30:0.00] \definecolorgroup [red*] [1.00:0.95:0.95, 1.00:0.90:0.90, 1.00:0.80:0.80, 1.00:0.70:0.70, 1.00:0.60:0.60, 1.00:0.50:0.50, 1.00:0.40:0.40, 1.00:0.30:0.30] \definecolorgroup [green*] [0.95:1.00:0.95, 0.90:1.00:0.90, 0.80:1.00:0.80, 0.70:1.00:0.70, 0.60:1.00:0.60, 0.50:1.00:0.50, 0.40:1.00:0.40, 0.30:1.00:0.30] \definecolorgroup [blue*] [0.95:0.95:1.00, 0.90:0.90:1.00, 0.80:0.80:1.00, 0.70:0.70:1.00, 0.60:0.60:1.00, 0.50:0.50:1.00, 0.40:0.40:1.00, 0.30:0.30:1.00] \definecolorgroup [yellow*] [1.00:1.00:0.10, 1.00:1.00:0.00, 0.90:0.90:0.00, 0.80:0.80:0.00, 0.70:0.70:0.00, 0.60:0.60:0.00, 0.50:0.50:0.00, 0.40:0.40:0.00] %D For the sake of implementing interface dependant color %D groups we support colorgroup duplication. \startinterface dutch \definecolorgroup [grijs] [gray] \definecolorgroup [rood] [red] \definecolorgroup [groen] [green] \definecolorgroup [blauw] [blue] \definecolorgroup [cyaan] [cyan] \definecolorgroup [magenta] [magenta] \definecolorgroup [geel] [yellow] \definecolorgroup [rood*] [red*] \definecolorgroup [groen*] [green*] \definecolorgroup [blauw*] [blue*] \definecolorgroup [geel*] [yellow*] \stopinterface \startinterface german \definecolorgroup [grau] [gray] \definecolorgroup [rot] [red] \definecolorgroup [gruen] [green] \definecolorgroup [blau] [blue] \definecolorgroup [cyan] [cyan] \definecolorgroup [magenta] [magenta] \definecolorgroup [gelb] [yellow] \definecolorgroup [rot*] [red*] \definecolorgroup [gruen*] [green*] \definecolorgroup [blau*] [blue*] \definecolorgroup [gelb*] [yellow*] \stopinterface \startinterface czech \definecolorgroup [seda] [gray] \definecolorgroup [cervena] [red] \definecolorgroup [zelena] [green] \definecolorgroup [modra] [blue] \definecolorgroup [azurova] [cyan] \definecolorgroup [fialova] [magenta] \definecolorgroup [zluta] [yellow] \definecolorgroup [cervena*] [red*] \definecolorgroup [zelena*] [green*] \definecolorgroup [modra*] [blue*] \definecolorgroup [zluta*] [yellow*] \stopinterface \startinterface italian \definecolorgroup [grigio] [gray] \definecolorgroup [rosso] [red] \definecolorgroup [verde] [green] \definecolorgroup [blu] [blue] \definecolorgroup [ciano] [cyan] \definecolorgroup [azzurro] [cyan] \definecolorgroup [turchino][cyan] \definecolorgroup [magenta] [magenta] \definecolorgroup [cremisi] [magenta] \definecolorgroup [giallo] [yellow] \definecolorgroup [rosso*] [red*] \definecolorgroup [verde*] [green*] \definecolorgroup [blu*] [blue*] \definecolorgroup [giallo*] [yellow*] \stopinterface %D The next set of color palets is quite language independant. %D These palets are meant as examples. \definepalet [alfa] [ top=red:7, bottom=green:6, up=blue:5, down=cyan:4, strange=magenta:3, charm=yellow:2] \definepalet [beta] [ top=red:7, bottom=green:5, up=blue:3, down=cyan:6, strange=magenta:2, charm=yellow:1] \definepalet [gamma] [ top=red:2, bottom=green:5, up=blue:3, down=cyan:6, strange=magenta:7, charm=yellow:4] \definepalet [delta] [ top=yellow*:5, bottom=yellow*:3, up=yellow*:2, down=magenta:6, strange=blue:4, charm=blue:1] \definepalet [epsilon] [ top=cyan:7, bottom=cyan:5, up=blue:3, down=yellow:6, strange=yellow:4, charm=yellow:2] \definepalet [zeta] [ top=red:6, bottom=green:5, up=blue:7, down=cyan:4, strange=magenta:3, charm=yellow:2] %D The next four colors are used for typesetting verbatim \TEX\ %D in color. \definecolor [texcolorone] [middlered] \definecolor [texcolortwo] [middlegreen] \definecolor [texcolorthree] [middleblue] \definecolor [texcolorfour] [darkyellow] %D Bonus (needed for FO test): \definecolor [orange] [r=1,g=.5] \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/syst-ext.mkii0000644000175000017500000042231414536300610024761 0ustar hillehille%D \module %D [ file=syst-ext, %D version=1995.10.10, %D title=\CONTEXT\ System Macros, %D subtitle=Extras, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt System Macros / Extras} %D In this second system module, we continue the definition of %D some handy commands. \unprotect %D \macros %D {rawgetparameters} %D %D A raw and dirty alternative for \type {\getparameters}; no %D checking is done! % \def\rawgetparameters[#1][#2]% scheelt 5\% % {\def\rawparameterprefix{#1}% % \expandafter\rawsetparameter#2,]=,} \def\rawsetparameter#1=#2,% {\if]#1\else \expandafter\def\csname\rawparameterprefix#1\endcsname{#2}% \expandafter\rawsetparameter \fi} % the next one handles empty #1 okay: \def\rawgetparameters[#1][#2% some 5-10% faster {\ifx#2]% test is needed, else bomb on [#1][] \expandafter\gobbleoneargument \else \def\rawparameterprefix{#1}% \expandafter\dorawgetparameters \fi#2} \def\dorawgetparameters#1]% {\expandafter\rawsetparameter#1,]=,} %D \macros %D {doglobal, %D redoglobal,dodoglobal,resetglobal} %D %D The two macros \type {\redoglobal} and \type{\dodoglobal} are %D used in this and some other modules to enforce a user %D specified \type {\doglobal} action. The last and often only %D global assignment in a macro is done with %D \type {\dodoglobal}, but all preceding ones with %D \type {\redoglobal}. When using only alternatives, one can %D reset this mechanism with \type {\resetglobal}. \def\doglobal {\let\redoglobal\global \def\dodoglobal{\resetglobal\global}} \def\resetglobal {\let\redoglobal\relax \let\dodoglobal\relax} \resetglobal %D New: \def\doglobal {\ifx\redoglobal\relax \let\redoglobal\global \let\dodoglobal\@@dodoglobal %\else % \writestatus{system}{global not reset, warn me!}% \fi} \def\@@dodoglobal {\resetglobal\global} \def\saveglobal {\let\@@dodoglobal\dodoglobal \let\@@redoglobal\redoglobal} \def\restoreglobal {\let\redoglobal\@@redoglobal \let\dodoglobal\@@dodoglobal} %D A very useful application of this macro is \type {\newif}, %D \TEX's fake boolean type. Not being a primitive, %D \type {\global} hopelessly fails here. But a slight %D adaption of Knuth's original macro permits: %D %D \starttyping %D \doglobal\newif\iftest %D \stoptyping %D %D Of course one can still say: %D %D \starttyping %D \global\testtrue %D \global\testfalse %D \stoptyping %D %D Apart from the prefixes, a few more \type{\expandafters} %D are needed: \def\newif#1% {\scratchcounter\escapechar \escapechar\minusone \expandafter\expandafter\expandafter \redoglobal\expandafter\expandafter\expandafter \edef\@if#1{true}{\let\noexpand#1\noexpand\iftrue}% \expandafter\expandafter\expandafter \redoglobal\expandafter\expandafter\expandafter \edef\@if#1{false}{\let\noexpand#1\noexpand\iffalse}% \dodoglobal\@if#1{false}% \escapechar\scratchcounter} %D Also: \def\define#1% {\ifx#1\undefined \expandafter\long\expandafter\def \else \message{[\noexpand#1is already defined]}% \expandafter\long\expandafter\def\expandafter\gobbleddefinition \fi#1} \def\redefine#1% {\ifx#1\undefined\else \message{[\noexpand#1is redefined]}% \fi \long\def#1} % \define\hans{hans} % \redefine\hans{hans} % \define\hans#1[]#2#3{hans} %D The next variant fits nicely in the setups syntax: %D %D \starttyping %D \starttexdefinition bagger [#1] #2 %D oeps %D #1 %D oeps %D \stoptexdefinition %D %D \bagger [a] {b} %D \stoptyping \bgroup \obeylines \gdef\starttexdefinition% {\bgroup% \obeylines% \dostarttexdefinition} \gdef\dostarttexdefinition #1 {\catcode13=\@@ignore% \doifinstringelse\letterhash{\detokenize{#1}}\dodostarttexdefinition\nonostarttexdefinition#1 } \long\gdef\dodostarttexdefinition#1 #2 {\dododostarttexdefinition{#1}{#2}} \long\gdef\dododostarttexdefinition#1#2#3\stoptexdefinition% {\egroup% \long\setvalue{#1}#2{#3}} \long\gdef\nonostarttexdefinition#1 {\nononostarttexdefinition{#1}{}} \long\gdef\nononostarttexdefinition#1#2#3\stoptexdefinition% {\egroup% \long\setvalue{#1}{#3}} \egroup %D \macros %D {newcounter, %D increment,decrement} %D %D Unfortunately the number of \COUNTERS\ in \TEX\ is limited, %D but fortunately we can store numbers in a macro. We can %D increment such pseudo \COUNTERS\ with \type{\increment}. %D %D \starttyping %D \increment(\counter,20) %D \increment(\counter,-4) %D \increment(\counter) %D \increment\counter %D \stoptyping %D %D After this sequence of commands, the value of %D \type{\counter} is 20, 16, 17 and~18. Of course there is %D also the complementary command \type{\decrement}. %D %D Global assignments are possible too, using \type{\doglobal}: %D %D \starttyping %D \doglobal\increment\counter %D \stoptyping %D %D When \type{\counter} is undefined, it's value is initialized %D at~0. It is nevertheless better to define a \COUNTER\ %D explicitly. One reason could be that the \COUNTER\ can be %D part of a test with \type{\ifnum} and this conditional does %D not accept undefined macro's. The \COUNTER\ in our example %D can for instance be defined with: %D %D \starttyping %D \newcounter\counter %D \stoptyping %D %D The command \type{\newcounter} must not be confused with %D \type{\newcount}! Of course this mechanism is much slower %D than using \TEX's \COUNTERS\ directly. In practice %D \COUNTERS\ (and therefore our pseudo counters too) are %D seldom the bottleneck in the processing of a text. Apart %D from some other incompatilities we want to mention a pitfal %D when using \type{\ifnum}. %D %D \starttyping %D \ifnum\normalcounter=\pseudocounter \doif \else \doelse \fi %D \ifnum\pseudocounter=\normalcounter \doif \else \doelse \fi %D \stoptyping %D %D In the first test, \TEX\ continues it's search for the %D second number after reading \type{\pseudocounter}, while %D in the second test, it stops reading after having %D encountered a real one. Tests like the first one therefore %D can give unexpected results, for instance execution %D of \type{\doif} even if both numbers are unequal. \def\zerocountervalue{0} \def\newcounter#1% {\dodoglobal\let#1\zerocountervalue} % This is the original implementation: % % \def\dodododoincrement(#1,#2)% % {\ifx#1\undefined % \redoglobal\let#1\zerocountervalue % \else\ifx#1\relax % \csname...\endcsname % \redoglobal\let#1\zerocountervalue % \fi\fi % \scratchcounter=#2\relax % \scratchcounter=\incrementsign\scratchcounter % \advance\scratchcounter #1\relax % \dodoglobal\edef#1{\the\scratchcounter}} % % \def\dododoincrement#1% % {\dodododoincrement(#1,1)} % % \def\dodoincrement(#1% % {\doifnextcharelse,% % {\dodododoincrement(#1}{\dodododoincrement(#1,1}} % % \def\doincrement#1% % {\def\incrementsign{#1}% % \doifnextcharelse(\dodoincrement\dododoincrement} % % \def\increment{\doincrement+} % \def\decrement{\doincrement-} % % And this is the one optimized for speed: % maxcounter = 2\maxdimen=1 \def\!!zerocount {0} % alongside \zerocount \def\!!minusone {-1} % alongside \minusone \def\!!plusone {1} % alongside \plusone \beginTEX \def\dodoindecrement#1(#2,#3)% {\ifx#2\undefined \redoglobal\let#2\zerocountervalue \else\ifx#2\relax % \csname...\endcsname \redoglobal\let#2\zerocountervalue \fi\fi \scratchcounter#3\relax \scratchcounter#1\scratchcounter \advance\scratchcounter#2\relax \dodoglobal\edef#2{\the\scratchcounter}} \def\dodoincrement(#1% {\doifnextcharelse,{\dodoindecrement+(#1}{\dodoindecrement+(#1,1}} \def\dododecrement(#1% {\doifnextcharelse,{\dodoindecrement-(#1}{\dodoindecrement-(#1,1}} \def\doincrement#1% 10% faster alternative {\ifx#1\undefined \dodoglobal\let#1\!!plusone \else\ifx#1\relax % \csname...\endcsname \dodoglobal\let#1\!!plusone \else \fastincrement#1% \fi\fi} \def\dodecrement#1% 10% faster alternative {\ifx#1\undefined \dodoglobal\let#1\!!minusone \else\ifx#1\relax % \csname...\endcsname \dodoglobal\let#1\!!minusone \else \fastdecrement#1% \fi\fi} \def\fastdecrement#1% 50% faster alternative {\scratchcounter#1\advance\scratchcounter\minusone \dodoglobal\edef#1{\the\scratchcounter}} \def\fastincrement#1% 50% faster alternative {\scratchcounter#1\advance\scratchcounter\plusone \dodoglobal\edef#1{\the\scratchcounter}} \endTEX \beginETEX \numexpr % \def\doindecrement#1#2% % {\dodoglobal\edef#2% % {\the\numexpr(\ifx#2\undefined\else\ifx#2\relax\else#2\fi\fi#11)}} % % \def\doincrement{\doindecrement+} % \def\dodecrement{\doindecrement-} % % some 3\% faster: \def\doindecrement#1#2% {\dodoglobal\edef#2% {\the\numexpr\ifx#2\undefined\else\ifx#2\relax\else#2\fi\fi+#1\relax}} \def\doincrement{\doindecrement\plusone } \def\dodecrement{\doindecrement\minusone} \def\dodoindecrement#1#2,#3)% {\dodoglobal\edef#2% {\the\numexpr\ifx#2\undefined\else\ifx#2\relax\else#2\fi\fi#1#3\relax}} \def\dodoincrement(#1% {\doifnextcharelse,{\dodoindecrement+#1}{\dodoindecrement+#1,\plusone}} \def\dododecrement(#1% {\doifnextcharelse,{\dodoindecrement-#1}{\dodoindecrement-#1,\plusone}} \def\fastincrement#1{\dodoglobal\edef#1{\the\numexpr#1+\plusone \relax}} \def\fastdecrement#1{\dodoglobal\edef#1{\the\numexpr#1+\minusone\relax}} \endETEX \def\increment{\doifnextcharelse(\dodoincrement\doincrement} \def\decrement{\doifnextcharelse(\dododecrement\dodecrement} \def\incrementvalue#1{\expandafter\increment\csname#1\endcsname} \def\decrementvalue#1{\expandafter\decrement\csname#1\endcsname} %D \macros %D {newsignal} %D %D When writing advanced macros, we cannot do without %D signaling. A signal is a small (invisible) kern or penalty %D that signals the next macro that something just happened. %D This macro can take any action depending on the previous %D signal. Signals must be unique and the next macro takes care %D of that. %D %D \starttyping %D \newsignal\somesignal %D \stoptyping %D %D Signals old dimensions and can be used in skips, kerns and %D tests like \type{\ifdim}. \newdimen\maximumsignal % step is about 0.00025pt \def\newsignal#1% {\ifx#1\undefined \advance\maximumsignal 2sp % to be save in rounding \edef#1{\the\maximumsignal}% \fi} %D \macros %D {newskimen} %D %D \TEX\ offers 256 \DIMENSIONS\ and \SKIPS. Unfortunately this %D amount is too small to suit certain packages. Therefore when %D possible one should use: %D %D \starttyping %D \newskimen\tempskimen %D \stoptyping %D %D This commands allocates a \DIMENSION\ or a \SKIP, depending %D on the availability. One should be aware of the difference %D between both. When searching for some glue \TEX\ goes on %D searching till it's sure that no other glue component if %D found. This search can be canceled by using \type{\relax} %D when possible and needed. %D %D \starttyping %D \def\newskimen#1% %D {\ifx#1\undefined %D \ifnum\count11>\count12 %D \newskip#1\relax %D \else %D \newdimen#1\relax %D \fi %D \fi} %D \stoptyping %D %D In order to make this macro work in plain \TEX\ too, we %D use the following alternative, which fools \TEX\ about %D the new commands being \type {\outer} ones. % \def\newskimen#1% % {\ifx#1\undefined % \csname new\ifnum\count11>\count12 skip\else dimen\fi\endcsname#1% % \fi} \let\newskimen\newdimen % it's all etex or later now %D \macros %D {strippedcsname} %D %D The next macro can be very useful when using \type{\csname} %D like in: %D %D \starttyping %D \csname if\strippedcsname\something\endcsname %D \stoptyping %D %D This expands to \type{\ifsomething}. %D %D \starttyping %D \def\strippedcsname %D {\expandafter\gobbleoneargument\string} %D \stoptyping %D %D Slower but better: \ifx\letterbackslash\undefined {\catcode`.=0 .catcode`.\ 12 .xdef.letterbackslash{.string\}} % hack \fi \def\strippedcsname#1% this permits \strippedcsname{\xxx} and \strippedcsname{xxx} {\expandafter\dostrippedcsname\string#1} \def\dostrippedcsname#1% {\if\noexpand#1\letterbackslash\else#1\fi} %D \macros %D {savenormalmeaning} %D %D We will use this one in: \def\savenormalmeaning#1% {\ifundefined{normal\strippedcsname#1}% \letvalue{normal\strippedcsname#1}#1% \fi} %D \macros %D {newconditional, %D settrue, setfalse, %D ifconditional,then} %D %D \TEX's lacks boolean variables, although the \PLAIN\ format %D implements \type{\newif}. The main disadvantage of this %D scheme is that it takes three hash table entries. A more %D memory saving alternative is presented here. A conditional %D is defined by: %D %D \starttyping %D \newconditional\doublesided %D \setfalse %D \stoptyping %D Setting a conditional is done by \type{\settrue} and %D \type{\setfalse}: %D %D \starttyping %D \settrue\doublesided %D \setfalse %D \stoptyping %D while testing is accomplished by: %D %D \starttyping %D \ifconditional\doublesided ... \else ... \fi %D \setfalse %D \stoptyping %D We cannot use the simple scheme: %D %D \starttyping %D \def\settrue #1{\let#1=\iftrue} %D \def\setfalse#1{\let#1=\iffalse} %D \stoptyping %D %D Such an implementation gives problems with nested %D conditionals. The next implementation is abaou as fast %D and just as straightforward: \def\settrue #1{\chardef#1\zerocount} \def\setfalse#1{\chardef#1\plusone} \let\newconditional = \setfalse \let\ifconditional = \ifcase \let\then\relax % so that we can say \ifnum1>2\then -) %D \macros %D {ifzeropt} %D %D The next macro is both cosmetic and byte saving. It is %D pretty \type{\if}||safe too. It can be used in cases %D like: %D %D \starttyping %D \ifzeropt \somedimen ... \else ... \fi %D \stoptyping \let\ifzeropt\ifcase %D \macros %D {dorecurse,recurselevel,recursedepth, %D dostepwiserecurse, %D for} %D %D \TEX\ does not offer us powerfull for||loop mechanisms. On %D the other hand its recursion engine is quite unique. We %D therefore identify the for||looping macros by this method. %D The most simple alternative is the one that only needs a %D number. %D %D \starttyping %D \dorecurse {n} {whatever we want} %D \stoptyping %D %D This macro can be nested without problems and therefore be %D used in situations where \PLAIN\ \TEX's \type{\loop} macro %D ungracefully fails. The current value of the counter is %D available in \type{\recurselevel}, before as well as after %D the \typ{whatever we wat} stuff. %D %D \starttyping %D \dorecurse % inner loop %D {10} %D {\recurselevel: % outer value %D \dorecurse % inner loop %D {\recurselevel} % outer value %D {\recurselevel} % inner value %D \dorecurse % inner loop %D {\recurselevel} % outer value %D {\recurselevel} % inner value %D \endgraf} %D \stoptyping %D %D In this example the first, second and fourth %D \type{\recurselevel} concern the outer loop, while the third %D and fifth one concern the inner loop. The depth of the %D nesting is available for inspection in \type{\recursedepth}. %D %D Both \type{\recurselevel} and \type{\recursedepth} are %D macros. The real \COUNTERS\ are hidden from the user because %D we don't want any interference. \newcount\outerrecurse \newcount\innerrecurse \def\recursedepth{\the\outerrecurse} \def\recurselevel{0} \let\nextrecurse\relax %D Acceptable: %D %D \starttyping %D \long\def\dostepwiserecurse#1#2#3% %D {\let\nextrecurse\gobblefourarguments %D \ifnum#3>0\relax\ifnum#2<#1\relax\else %D \def\nextrecurse{\dosetstepwiserecurse>}% %D \fi\fi %D \ifnum#3<0\relax\ifnum#1<#2\relax\else %D \def\nextrecurse{\dosetstepwiserecurse<}% %D \fi\fi %D \nextrecurse{#1}{#2}{#3}} %D \stoptyping %D %D Better: %D %D \starttyping %D \long\def\dostepwiserecurse#1#2#3% %D {\let\nextrecurse\gobblefourarguments %D \ifnum#3>0\relax \ifnum#2<#1\relax \else %D \def\nextrecurse{\dosetstepwiserecurse>}% %D \fi \else \ifnum#3<0\relax \ifnum#1<#2\relax \else %D \def\nextrecurse{\dosetstepwiserecurse<}% %D \fi \fi \fi %D \nextrecurse{#1}{#2}{#3}} %D %D \def\@@irecurse{@@irecurse} % stepper %D \def\@@nrecurse{@@nrecurse} % number of steps %D \def\@@srecurse{@@srecurse} % step %D \def\@@drecurse{@@drecurse} % direction, < or > %D \def\@@arecurse{@@arecurse} % action %D %D \long\def\dosetstepwiserecurse#1#2#3#4#5% %D {\global\advance\outerrecurse 1 %D \setevalue{\@@drecurse\recursedepth}{#1}% %D \setevalue{\@@irecurse\recursedepth}{\number#2}% %D \setevalue{\@@nrecurse\recursedepth}{\number#3}% %D \setevalue{\@@srecurse\recursedepth}{\number#4}% %D \long\setvalue{\@@arecurse\recursedepth}{#5}% %D \dodorecurse} %D %D \def\donorecurse %D {} %D %D \def\dododorecurse %D {\edef\recurselevel{\csname\@@irecurse\recursedepth\endcsname}% %D \getvalue{\@@arecurse\recursedepth}% %D \edef\recurselevel{\csname\@@irecurse\recursedepth\endcsname}% %D \innerrecurse\recurselevel %D \advance\innerrecurse \csname\@@srecurse\recursedepth\endcsname %D \setevalue{\@@irecurse\recursedepth}{\the\innerrecurse}% %D \dodorecurse} %D %D \def\dodorecurse %D {\ifnum\csname\@@irecurse\recursedepth\endcsname %D \csname\@@drecurse\recursedepth\endcsname %D \csname\@@nrecurse\recursedepth\endcsname\relax %D \expandafter\nododorecurse %D \else %D \expandafter\dododorecurse %D \fi} %D %D \def\nododorecurse %D {\global\advance\outerrecurse -1 %D \edef\recurselevel{\csname\@@irecurse\recursedepth\endcsname}} %D \stoptyping %D %D Cleaner and much faster: \def\@@irecurse{@@ir@@} % ecurse} % stepper \def\@@arecurse{@@ar@@} % ecurse} % action % \mathchardef \long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4 {\global\advance\outerrecurse \plusone \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#4}% \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel \ifnum#3>0\relax \ifnum#2<#1\relax \let\nextrecurse\exitstepwiserecurse \else \let\nextrecurse\dodostepwiserecurse \fi \else \ifnum#3<0\relax \ifnum#1<#2\relax \let\nextrecurse\exitstepwiserecurse \else \let\nextrecurse\dodostepwisereverse \fi \else \let\nextrecurse\exitstepwiserecurse \fi \fi\expanded{\nextrecurse{\number#1}{\number#2}{\number#3}}} \beginETEX \numexpr \long\def\dodostepwiserecurse#1#2#3% from to step {\ifnum#1>#2\relax \@EA\nodostepwiserecurse \else \def\recurselevel{#1}% \@EAEAEA\redostepwiserecurse\@EA \fi\@EA{\the\numexpr\recurselevel+#3\relax}{#2}{#3}} \endETEX \beginTEX \long\def\dodostepwiserecurse#1#2#3% from to step {\ifnum#1>#2\relax \@EA\nodostepwiserecurse \else \def\recurselevel{#1}% \innerrecurse#1\advance\innerrecurse#3\relax \@EAEAEA\redostepwiserecurse\@EA \fi\@EA{\the\innerrecurse}{#2}{#3}} \endTEX \def\expandrecursecontent {\csname\@@arecurse\recursedepth\endcsname} \def\redostepwiserecurse {\expandrecursecontent\dodostepwiserecurse} \beginETEX \numexpr \long\def\dodostepwisereverse#1#2#3% from to step {\ifnum#1<#2\relax \@EA\nodostepwiserecurse \else \def\recurselevel{#1}% \@EAEAEA\redostepwisereverse\@EA \fi\@EA{\the\numexpr\recurselevel#3\relax}{#2}{#3}} \endETEX \beginTEX \long\def\dodostepwisereverse#1#2#3% from to step {\ifnum#1<#2\relax \@EA\nodostepwiserecurse \else \def\recurselevel{#1}% \innerrecurse#1\relax \advance\innerrecurse#3\relax \@EAEAEA\redostepwisereverse\@EA \fi\@EA{\the\innerrecurse}{#2}{#3}} \endTEX \def\redostepwisereverse {\expandrecursecontent\dodostepwisereverse} \def\exitstepwiserecurse {\nodostepwiserecurse\relax} \def\nodostepwiserecurse#1#2#3#4% {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname \global\advance\outerrecurse \minusone} \def\nonostepwiserecurse#1#2#3% {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname \global\advance\outerrecurse \minusone} \def\dorecurse#1% {\dostepwiserecurse1{#1}1} %D As we can see here, the simple command \type{\dorecurse} is %D a special case of the more general: %D %D \starttyping %D \dostepwiserecurse {from} {to} {step} {action} %D \stoptyping %D %D This commands accepts positive and negative steps. Illegal %D values are handles as good as possible and the macro accepts %D numbers and \COUNTERS. %D %D \starttyping %D \dostepwiserecurse {1} {10} {2} {...} %D \dostepwiserecurse {10} {1} {-2} {...} %D \stoptyping %D %D Because the simple case is used often, we implement it %D more efficiently: \long\def\dorecurse#1% {\ifcase#1\relax \expandafter\gobbletwoarguments \or \expandafter\ydorecurse \else \expandafter\xdorecurse \fi{#1}} \long\def\xdorecurse#1#2% {\global\advance\outerrecurse \plusone \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#2}% \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel \@EA\dodorecurse\@EA1\@EA{\number#1}} \long\def\ydorecurse#1#2% {\global\advance\outerrecurse \plusone \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel \let\recurselevel\!!plusone #2% \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname \global\advance\outerrecurse \minusone} \beginETEX \numexpr \long\def\dodorecurse#1#2% from to {\ifnum#1>#2\relax \@EA\nodorecurse \else \def\recurselevel{#1}% \@EAEAEA\redorecurse \fi\@EA{\the\numexpr\recurselevel+\plusone\relax}{#2}} \endETEX \beginTEX \long\def\dodorecurse#1#2% from to {\ifnum#1>#2\relax \@EA\nodorecurse \else \def\recurselevel{#1}% \innerrecurse#1\advance\innerrecurse\plusone \@EAEAEA\redorecurse \fi\@EA{\the\innerrecurse}{#2}} \endTEX \def\redorecurse {\expandrecursecontent\dodorecurse} \def\nodorecurse#1#2#3% {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname \global\advance\outerrecurse \minusone } %D \macros %D {doloop,exitloop} %D %D Sometimes loops are not determined by counters, but by %D (a combinations of) conditions. We therefore implement a %D straightforward loop, which can only be left when we %D explictly exit it. Nesting is supported. First we present %D a more extensive alternative. %D %D \starttyping %D \doloop %D {Some kind of typesetting punishment \par %D \ifnum\pageno>100 \exitloop \fi} %D \stoptyping %D %D When needed, one can call for \type{\looplevel} and %D \type{\loopdepth}. %D %D If we write this macros from scratch, we end up with %D something like the ones described above: %D %D \starttyping %D \def\@@eloop{@@eloop} % exit %D \def\@@iloop{@@iloop} % stepper %D \def\@@aloop{@@aloop} % action %D %D \newcount\outerloop %D %D \def\loopdepth% %D {\the\outerloop} %D %D \def\exitloop% %D {\setevalue{\@@eloop\loopdepth}{0}} %D %D \long\def\doloop#1% %D {\global\advance\outerloop by 1 %D \setevalue{\@@iloop\loopdepth}{1}% %D \setevalue{\@@eloop\loopdepth}{1}% %D \long\setvalue{\@@aloop\loopdepth}{#1}% %D \dodoloop} %D %D \def\dodonoloop% %D {\global\advance\outerloop by -1\relax} %D %D \def\dododoloop% %D {\edef\looplevel{\getvalue{\@@iloop\loopdepth}}% %D \innerrecurse=\looplevel %D \advance\innerrecurse by 1 %D \setevalue{\@@iloop\loopdepth}{\the\innerrecurse}% %D \getvalue{\@@aloop\loopdepth}% %D \edef\looplevel{\getvalue{\@@iloop\loopdepth}}% %D \dodoloop} %D %D \def\dodoloop% %D {\ifnum\getvalue{\@@eloop\loopdepth}=0 %D \expandafter\dodonoloop %D \else %D \expandafter\dododoloop %D \fi} %D %D \def\doloop% %D {\dostepwiserecurse{1}{\maxdimen}{1}} %D %D \def\exitloop %D {\setvalue{\@@irecurse\recursedepth}{\maxdimen}} %D %D \def\looplevel{\recurselevel} %D \def\loopdepth{\recursedepth} %D \stoptyping %D %D We don't have to declare new counters for \type{\looplevel} %D and \type{\loopdepth} because we can use \type{\recurselevel} %D and \type{\recursedepth}. %D %D We prefer however a more byte saving implementation, that %D executes of course a bit slower. %D %D \starttyping %D \def\doloop% %D {\dostepwiserecurse1\maxdimen1} %D %D \def\exitloop% %D {\letvalue{\@@irecurse\recursedepth}\maxdimen} %D \stoptyping %D %D Although, the next version is faster because it used the %D simple loop. \let\endofloop\donothing \long\def\doloop#1% {\global\advance\outerrecurse \plusone \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#1}% \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel \let\endofloop\dodoloop \dodoloop1} % no \plusone else \recurselevel wrong \beginETEX \numexpr \long\def\dodoloop#1% {\def\recurselevel{#1}% \@EA\redoloop\@EA{\the\numexpr\recurselevel+\plusone\relax}} \endETEX \beginTEX \long\def\dodoloop#1% {\def\recurselevel{#1}% \innerrecurse#1\advance\innerrecurse\plusone \@EA\redoloop\@EA{\the\innerrecurse}} \endTEX \def\redoloop {\expandrecursecontent\endofloop} \def\nodoloop#1% {\let\endofloop\dodoloop % new, permits nested \doloop's \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname \global\advance\outerrecurse\minusone} \def\exitloop % \exitloop quits at end {\let\endofloop\nodoloop} \long\def\exitloopnow#1\endofloop % \exitloopnow quits directly {\nodoloop} %D The loop is executed at least once, so beware of situations %D like: %D %D \starttyping %D \doloop {\exitloop some commands} %D \stoptyping %D %D It's just a matter of putting the text into the \type{\if} %D statement that should be there anyway, like in: %D %D \starttyping %D \doloop {\ifwhatever \exitloop \else some commands\fi} %D \stoptyping %D %D You can also quit a loop immediately, by using \type %D {\exitloopnow} instead. Beware, this is more sensitive %D for conditional errors. %D Krzysztof Leszczynski suggested to provide access to the level by %D means of a \type {#1}. I decided to pass the more frequently used %D level as \type {#1} and the less favoured depth as \type {#2}. The %D intended usage is: %D %D \starttyping %D \dorecurse{3}{\definesymbol[test-#1][xx-#1]} %D %D \def\test{\dorecurse{3}{\definesymbol[test-##1][xx-##1]}} \test %D %D \symbol[test-1]\quad\symbol[test-2]\quad\symbol[test-3] %D \stoptyping %D %D Since the hashed arguments are expanded, we don't need tricky %D expansion here. %D %D \starttyping %D \dorecurse{3}{\expanded{\definesymbol[test-\recurselevel][xx-\recurselevel]}} %D \stoptyping \def\expandrecursecontent {\csname\@@arecurse\recursedepth\@EA\@EA\@EA\endcsname\@EA\@EA\@EA{\@EA\recurselevel\@EA}\@EA{\recursedepth}} \long\def\xdorecurse#1#2% {\global\advance\outerrecurse \plusone \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}% \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel \@EA\dodorecurse\@EA1\@EA{\number#1}} \long\def\ydorecurse#1#2% {\global\advance\outerrecurse \plusone \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel \let\recurselevel\!!plusone \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}% \expandrecursecontent \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname \global\advance\outerrecurse \minusone} \long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4 {\global\advance\outerrecurse \plusone \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}% \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel \ifnum#3>0\relax \ifnum#2<#1\relax \let\nextrecurse\exitstepwiserecurse \else \let\nextrecurse\dodostepwiserecurse \fi \else \ifnum#3<0\relax \ifnum#1<#2\relax \let\nextrecurse\exitstepwiserecurse \else \let\nextrecurse\dodostepwisereverse \fi \else \let\nextrecurse\exitstepwiserecurse \fi \fi\expanded{\nextrecurse{\number#1}{\number#2}{\number#3}}} \long\def\doloop#1% {\global\advance\outerrecurse \plusone \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#1}% \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel \let\endofloop\dodoloop \dodoloop1} % no \plusone else \recurselevel wrong %D For special purposes: \newcount\fastrecursecounter \newcount\lastrecursecounter \newcount\steprecursecounter \def\dofastrecurse#1#2#3#4% {\def\fastrecursebody{#4}% \fastrecursecounter#1\relax \lastrecursecounter#2\relax \steprecursecounter#3\relax \def\recurselevel{\number\fastrecursecounter}% \dodofastrecurse} \def\resetrecurselevel{\let\recurselevel\!!zerocount} \def\dodofastrecurse {\ifnum\fastrecursecounter>\lastrecursecounter % \resetrecurselevel % slows down \else \fastrecursebody \advance\fastrecursecounter\steprecursecounter \expandafter\dodofastrecurse \fi} % \appendtoks \resetrecurselevel \to \everydump \everydump\expandafter{\the\everydump\resetrecurselevel} %D This alternative looks a bit different and uses a %D pseudo counter. When this macro is nested, we have to use %D different counters. This time we use keywords. %D %D \starttyping %D \def\alfa{2} \def\beta{100} \def\gamma{3} %D %D \for \n=55 \to 100 \step 1 \do {... \n ...} %D \for \n=\alfa \to \beta \step \gamma \do {... \n ...} %D \for \n=\n \to 120 \step 1 \do {... \n ...} %D \for \n=120 \to 100 \step -3 \do {... \n ...} %D \for \n=55 \to 100 \step 2 \do {... \n ...} %D \stoptyping %D %D Only in the third example we need to predefine \type{\n}. %D The use of \type{\od} as a dilimiter would have made nested %D use more problematic. %D Don't use this one, it's kind of obsolete. \def\for#1=#2\to#3\step#4\do#5% {\dostepwiserecurse{#2}{#3}{#4} {\let#1\recurselevel#5\let#1\recurselevel}} %D \macros %D {newevery,everyline,EveryLine,EveryPar} %D %D Lets skip to something quite different. It's common use %D to use \type{\everypar} for special purposes. In \CONTEXT\ %D we use this primitive for locating sidefloats. This means %D that when user assignments to \type{\everypar} can interfere %D with those of the package. We therefore introduce %D \type{\EveryPar}. %D %D The same goes for \type{\EveryLine}. Because \TEX\ offers %D no \type{\everyline} primitive, we have to call for %D \type{\everyline} when we are working on a line by line %D basis. Just by calling \type{\EveryPar{}} and %D \type{\EveryLine{}} we restore the old situation. %D %D The definition command \type{\DoWithEvery} will be quite %D unreadable, so let's first show an implementation that %D shows how things are done: %D %D \starttyping %D \newtoks \everyline %D \newtoks \oldeveryline %D \newif \ifeveryline %D %D \def\DoWithEvery#1#2#3#4% %D {#3\else\edef\next{\noexpand#2={\the#1}}\next\fi %D \edef\next{\noexpand#1={\the#2\the\scratchtoks}}\next %D #4} %D %D \def\doEveryLine% %D {\DoWithEvery\everyline\oldeveryline\ifeveryline\everylinetrue} %D %D \def\EveryLine% %D {\afterassignment\doEveryLine\scratchtoks} %D \stoptyping %D %D The real implementation is a bit more complicated but we %D prefer something more versatile. % the old one % % \def\DoWithEvery#1% % {\csname if\strippedcsname#1\endcsname \else % \edef\next% % {\@EA\noexpand\csname old\strippedcsname#1\endcsname= % {\the#1}}% % \next % \fi % \edef\next% % {\noexpand#1= % {\@EA\the\csname old\strippedcsname#1\endcsname\the\scratchtoks}}% % \next % \csname\strippedcsname#1true\endcsname} % % \def\dowithevery#1% % {\@EA\afterassignment\csname do\strippedcsname#1\endcsname\scratchtoks} % % \def\newevery#1#2% % {\ifx#1\undefined\newtoks#1\fi % \ifx#2\relax\else\ifx#2\undefined % \@EA\newtoks\csname old\strippedcsname#1\endcsname % \@EA\newif \csname if\strippedcsname#1\endcsname % \@EA\def \csname do\strippedcsname#2\endcsname{\DoWithEvery#1}% % \def#2{\dowithevery#2}% % \fi\fi} % % cleaner and more efficient %\def\dowithevery#1% % {\def\dodowithevery% % {\ifcase\csname c\strippedcsname#1\endcsname \expandafter\chardef % \csname c\strippedcsname#1\endcsname=1 % \csname t\strippedcsname#1\endcsname=#1% % \fi % \edef\next% % {#1={\the\csname t\strippedcsname#1\endcsname\the\scratchtoks}}% % \next}% % \afterassignment\dodowithevery\scratchtoks} % % more efficient: \def\dodowithevery#1% {\ifcase\csname c\strippedcsname#1\endcsname \expandafter\chardef \csname c\strippedcsname#1\endcsname1 \csname t\strippedcsname#1\endcsname#1% \fi \edef\next% {#1{\the\csname t\strippedcsname#1\endcsname\the\scratchtoks}}% \next} \def\dowithevery#1% {\def\next{\dodowithevery#1}% \afterassignment\next\scratchtoks} \bgroup \let\newtoks\relax % plain safe (\outer) \gdef\newevery#1#2% {\ifx#1\undefined\csname newtoks\endcsname#1\fi % plain safe (\outer) \ifx#2\relax\else\ifx#2\undefined \expandafter\newtoks\csname t\strippedcsname#1\endcsname \expandafter\chardef\csname c\strippedcsname#1\endcsname\zerocount \def#2{\dowithevery#1}% \fi\fi} \egroup %D The first \type {\outer} hack is needed to trick \TEX\ %D into thinking that \type {\newtoks} is no outer macro, %D the second hack is needed due to some funny interaction %D between outer macros and \type {\if} at expansion time. %D This one permits definitions like: \newevery \everypar \EveryPar \newevery \everyline \EveryLine %D and how about: \newevery \neverypar \NeveryPar %D Which we're going to use indeed! When the second argument %D equals \type {\relax}, the first token list is created %D unless it is already defined. %D Technically spoken we could have used the method we are %D going to present in the visual debugger. First we save %D the primitive \type{\everypar}: %D %D \starttyping %D \let\normaleverypar=\everypar %D \stoptyping %D %D Next we allocate a \TOKENLIST\ named \type{\everypar}, %D which means that \type{\everypar} is no longer a primitive %D but something like \type{\toks44}. %D %D \starttyping %D \newtoks\everypar %D \stoptyping %D %D Because \TEX\ now executes \type{\normaleverypar} instead %D of \type{\everypar}, we are ready to assign some tokens to %D this internally known and used \TOKENLIST. %D %D \starttyping %D \normaleverypar={all the things the system wants to do \the\everypar} %D \stoptyping %D %D Where the user can provide his own tokens to be expanded %D every time he expects them to expand. %D %D \starttyping %D \everypar={something the user wants to do} %D \stoptyping %D %D We don't use this method because it undoubtly leads to %D confusing situations, especially when other packages are %D used, but it's this kind of tricks that make \TEX\ so %D powerful. %D \macros %D {convertargument,convertcommand,convertvalue} %D %D Some persistent experimenting led us to the next macro. This %D macro converts a parameter or an expanded macro to it's %D textual meaning. %D %D \starttyping %D \convertargument ... \to \command %D \stoptyping %D %D For example, %D %D \starttyping %D \convertargument{one \two \three{four}}\to\ascii %D \stoptyping %D %D The resulting macro \type{\ascii} can be written to a file %D or the terminal without problems. In \CONTEXT\ we use this %D macro for generating registers and tables of contents. %D %D The second conversion alternative accepts a command: %D %D \starttyping %D \convertcommand\command\to\ascii %D \stoptyping %D %D Both commands accept the prefix \type{\doglobal} for global %D assignments. \beginTEX \def\doconvertargument#1>{} \def\convertedcommand {\expandafter\doconvertargument\meaning} \long\def\convertargument#1\to#2% {\long\def#2{#1}% saves a restore \dodoglobal\edef#2{\convertedcommand#2}} \long\def\convertcommand#1\to#2% {\dodoglobal\edef#2{\convertedcommand#1}} % no dodoglobal ! \long\def\defconvertedargument#1#2% less sensitive for \to {\long\def#1{#2}% saves a restore \edef#1{\convertedcommand#1}} \long\def\defconvertedcommand#1#2% less sensitive for \to {\edef#1{\convertedcommand#2}} \long\def\gdefconvertedargument#1#2% less sensitive for \to {\long\gdef#1{#2}% saves a restore \xdef#1{\convertedcommand#1}} \long\def\gdefconvertedcommand#1#2% less sensitive for \to {\xdef#1{\convertedcommand#2}} \endTEX \def\convertvalue#1\to {\expandafter\convertcommand\csname#1\endcsname\to} \def\defconvertedvalue#1#2% less sensitive for \to {\@EA\defconvertedcommand\@EA#1\csname#2\endcsname} %D \macros %D {doifassignmentelse} %D %D A lot of \CONTEXT\ commands take optional arguments, for %D instance: %D %D \starttyping %D \dothisorthat[alfa,beta] %D \dothisorthat[first=foo,second=bar] %D \dothisorthat[alfa,beta][first=foo,second=bar] %D \stoptyping %D %D Although a combined solution is possible, we prefer a %D seperation. The next command takes care of propper %D handling of such multi||faced commands. %D %D \starttyping %D \doifassignmentelse {...} {then ...} {else ...} %D \stoptyping % not robust % % \def\doifassignmentelse% % {\doifinstringelse{=}} % % readable % % \def\doifassignmentelse#1% % {\convertargument#1\to\ascii % \doifinstringelse{=}{\ascii}} \def\doifassignmentelse#1% {\convertargument#1\to\ascii \doifinstringelse=\ascii} %D \macros %D {convertasciiafter} %D %D Sometimes we need to convert an argument to a string (letters %D only), for instance when we compare it with another string: %D %D \starttyping %D \convertasciiafter\doifinstringelse{em}{\ascii}{...} %D \stoptyping \def\convertasciiafter#1#2% {\convertargument#2\to\asciiafter \@EA#1\@EA{\asciiafter}} %D In \ETEX\ we can use \type {\detokenize} and gain some %D speed, but in general far less that 1\% for \type %D {\convertargument} and nil for \type {\convertcommand}. %D This macro is more robust than the pure \TEX\ one, %D something I found out when primitives like \type %D {\jobname} were fed (or something undefined). % command variant: one level expansion ! \beginETEX \detokenize \long\def\convertargument#1\to#2{\dodoglobal\edef#2{\detokenize{#1}}} \long\def\convertcommand #1\to#2{\dodoglobal\edef#2{\@EA\detokenize\@EA{#1}}} % hm, only second is also ok \long\def\defconvertedargument #1#2{\edef#1{\detokenize {#2}}} \long\def\defconvertedcommand #1#2{\edef#1{\detokenize\@EA{#2}}} \long\def\edefconvertedargument#1#2{\edef#1{#2}% \edef#1{\detokenize\@EA{#1}}} \long\def\gdefconvertedargument#1#2{\xdef#1{\detokenize {#2}}} \long\def\gdefconvertedcommand #1#2{\xdef#1{\detokenize\@EA{#2}}} \long\def\xdefconvertedargument#1#2{\xdef#1{#2}% \xdef#1{\detokenize\@EA{#1}}} \endETEX %D When you try to convert a primitive command, you'll find %D out that the \ETEX\ method fails on for instance \type %D {\jobname} in the sense that it returns the filename %D instead of just \type {\jobname}. So far this does not %D give real problems. %D This is typically a macro that one comes to after reading %D the \TEX book carefully. Even then, the definite solution %D was found after rereading the \TEX book. The first %D implementation was: %D %D \starttyping %D \def\doconvertargument#1->#2\\\\{#2} %D \stoptyping %D %D The \type{-}, the delimiter \type{\\\\} and the the second %D argument are completely redundant. %D \macros %D {showvalue,showargument} %D %D Two handy macros for testing purposes only: \def\showvalue#1% {\expandafter\show\csname#1\endcsname} \beginETEX \def\showvalue#1% {\ifcsname#1\endcsname \expandafter\show\csname#1\endcsname \else \show\undefined \fi} \endETEX \long\def\showargument#1% {\defconvertedargument\ascii{#1}\ascii} %D \macros %D {doifmeaningelse} %D %D We can use both commands in testing, but alas, not all %D meanings expand to something \type {->}. This is no problem %D in the \ETEX\ implementation, but since we want %D compatibility, we need: %D %D \starttyping %D \doifmeaningelse {\next} {\something} {true} {false} %D \stoptyping %D %D Watch the one level expansion of the second argument. \def\doifmeaningelse#1#2% {\edef\!!stringa{\meaning#1}% \def\!!stringb{#2}\edef\!!stringb{\meaning\!!stringb}% \ifx\!!stringa\!!stringb \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} %D \macros %D {doifsamestringselse,doifsamestring,doifnotsamestring} %D %D The next comparison macro converts the arguments into %D expanded strings. This command can be used to compare for %D instance \type {\jobname} with a name stored in a macro. \def\@@doifsamestringelse#1#2% {\edef\!!stringa{#1}% \edef\!!stringb{#2}% \convertcommand\!!stringa\to\!!stringa \convertcommand\!!stringb\to\!!stringb \ifx\!!stringa\!!stringb} \def\doifsamestringelse#1#2% {\@@doifsamestringelse{#1}{#2}% \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\doifsamestring#1#2% {\@@doifsamestringelse{#1}{#2}% \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \def\doifnotsamestring#1#2% {\@@doifsamestringelse{#1}{#2}% \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} %D \macros %D {ExpandFirstAfter,ExpandSecondAfter,ExpandBothAfter} %D %D These three commands support expansion of arguments before %D executing the commands that uses them. We can best %D illustrate this with an example. %D %D \starttyping %D \def\first {alfa,beta,gamma} %D \def\second {alfa,epsilon,zeta} %D %D \ExpandFirstAfter \doifcommon {\first} {alfa} {\message{OK}} %D \ExpandSecondAfter \doifcommon {alfa} {\second} {\message{OK}} %D \ExpandBothAfter \doifcommon {\first} {\second} {\message{OK}} %D %D \ExpandFirstAfter\processcommalist[\first]\message %D %D \ExpandAfter \doifcommon {\first} {alfa} {\message{OK}} %D \stoptyping %D %D The first three calls result in the threefold message %D \type{OK}, the fourth one shows the three elements of %D \type{\first}. The command \type{\ExpandFirstAfter} takes %D care of (first) arguments that are delimited by \type{[ ]}, %D but the faster \type{\ExpandAfter} does not. \def\simpleExpandFirstAfter#1% {\long\xdef\@@expanded{\noexpand\ExpandCommand{#1}}\@@expanded} \def\complexExpandFirstAfter[#1]% {\long\xdef\@@expanded{\noexpand\ExpandCommand[#1]}\@@expanded} \def\ExpandFirstAfter#1% {\let\ExpandCommand#1% \doifnextoptionalelse\complexExpandFirstAfter\simpleExpandFirstAfter} \def\ExpandSecondAfter#1#2#3% {\scratchtoks{#2}% \long\xdef\@@expanded{\noexpand#1{\the\scratchtoks}{#3}}\@@expanded} \def\ExpandBothAfter#1#2#3% {\long\xdef\@@expanded{\noexpand#1{#2}{#3}}\@@expanded} \def\ExpandAfter#1#2% {\long\xdef\@@expanded{\noexpand#1{#2}}\@@expanded} %D Now we can for instance define \type{\ifinstringelse} as: \def\ifinstringelse {\ExpandBothAfter\p!doifinstringelse} %D \macros %D {ConvertToConstant,ConvertConstantAfter} %D %D When comparing arguments with a constant, we can get into %D trouble when this argument consists of tricky expandable %D commands. One solution for this is converting the %D argument to a string of unexpandable characters. To make %D comparison possible, we have to convert the constant too %D %D \starttyping %D \ConvertToConstant\doifelse {...} {...} {then ...} {else ...} %D \stoptyping %D %D This construction is only needed when the first argument %D can give troubles. Misuse can slow down processing. %D %D \starttyping %D \ConvertToConstant\doifelse{\c!alfa} {\c!alfa}{...}{...} %D \ConvertToConstant\doifelse{alfa} {\c!alfa}{...}{...} %D \ConvertToConstant\doifelse{alfa} {alfa} {...}{...} %D \ConvertToConstant\doifelse{alfa \alfa test}{\c!alfa}{...}{...} %D \stoptyping %D %D In examples~2 and~3 both arguments equal, in~1 and~4 %D they differ. \beginTEX \long\def\ConvertToConstant#1#2#3% {\expandafter\defconvertedargument\expandafter\!!stringa\expandafter{#2}% \expandafter\defconvertedargument\expandafter\!!stringb\expandafter{#3}% #1{\!!stringa}{\!!stringb}} \endTEX \beginETEX \detokenize \long\def\ConvertToConstant#1#2#3% {\edef\!!stringa{\expandafter\detokenize\expandafter{#2}}% \edef\!!stringb{\expandafter\detokenize\expandafter{#3}}% #1{\!!stringa}{\!!stringb}} \endETEX %D When the argument \type{#1} consists of commands, we had %D better use %D %D \starttyping %D \ConvertConstantAfter\processaction[#1][...] %D \ConvertConstantAfter\doifelse{#1}{\v!something}{}{} %D \stoptyping %D %D This commands accepts things like: %D %D \starttyping %D \v!constant %D constant %D \hbox to \hsize{\rubish} %D \stoptyping %D %D As we will see in the core modules, this macro permits %D constructions like: %D %D \starttyping %D \setupfootertexts[...][...] %D \setupfootertexts[margin][...][...] %D \setupfootertexts[\v!margin][...][...] %D \stoptyping %D %D where \type{...} can be anything legally \TEX. \def\CheckConstantAfter#1#2% {\@EA\convertargument\v!prefix!\to\ascii \convertargument#1\to#2\relax \doifinstringelse\ascii{#2} {\expandafter\convertargument#1\to#2} {}} \def\ConvertConstantAfter#1#2#3% {\CheckConstantAfter{#2}\asciia \CheckConstantAfter{#3}\asciib #1{\asciia}{\asciib}} %D \macros %D {assignifempty} %D %D We can assign a default value to an empty macro using: %D %D \starttyping %D \assignifempty \macros {default value} %D \stoptyping %D %D We don't explicitly test if the macro is defined. \def\assignifempty#1#2% can be sped up {\doifsomething{#1}{\def#1{#2}}} % {\doifnot{#1}{}{\def#1{#2}}} %D \macros %D {gobbleuntil,grabuntil,gobbleuntilrelax, %D processbetween,processuntil} %D %D In \TEX\ gobbling usually stand for skipping arguments, so %D here are our gobbling macros. %D %D In \CONTEXT\ we use a lot of \type{\start}||\type{\stop} %D like constructions. Sometimes, the \type{\stop} is used as a %D hard coded delimiter like in: %D %D \starttyping %D \def\startcommand#1\stopcommand% %D {... #1 ...} %D \stoptyping %D %D In many cases the \type{\start}||\type{\stop} pair is %D defined at format generation time or during a job. This %D means that we cannot hardcode the \type{\stop} criterium. %D Only after completely understanding \type{\csname} and %D \type{\expandafter} I was able to to implement a solution, %D starting with: %D %D \starttyping %D \grabuntil{stop}\command %D \stoptyping %D %D This commands executes, after having encountered %D \type {\stop} the command \type {\command}. This command %D receives as argument the text preceding the \type {\stop}. %D This means that: %D %D \starttyping %D \def\starthello% %D {\grabuntil{stophello}\message} %D %D \starthello Hello world!\stophello %D \stoptyping %D %D results in: \type{\message{Hello world!}}. \def\dograbuntil#1#2% {\long\def\next##1#1{#2{##1}}\next} \def\grabuntil#1% {\expandafter\dograbuntil\expandafter{\csname#1\endcsname}} %D The next command build on this mechanism: %D %D \starttyping %D \processbetween{string}\command %D \stoptyping %D %D Here: %D %D \starttyping %D \processbetween{hello}\message %D \starthello Hello again!\stophello %D \stoptyping %D %D leads to: \type{\message{Hello again!}}. The command %D %D \starttyping %D \gobbleuntil{sequence} %D \stoptyping %D %D is related to these commands. This one simply throws away %D everything preceding \type{\command}. \long\def\processbetween#1#2% {\setvalue{\s!start#1}{\grabuntil{\s!stop#1}{#2}}} \def\gobbleuntil#1% {\long\def\next##1#1{}\next} \def\gobbleuntilrelax#1\relax {} %D The next one simply expands the pickup up tokens. %D %D \starttyping %D \processuntil{sequence} %D \stoptyping \def\processuntil#1% {\long\def\next##1#1{##1}\next} %D \macros %D {groupedcommand} %D %D Commands often manipulate argument as in: %D %D \starttyping %D \def\doezomaarwat#1{....#1....} %D \stoptyping %D %D A disadvantage of this approach is that the tokens that %D form \type{#1} are fixed the the moment the argument is read %D in. Normally this is no problem, but for instance verbatim %D environments adapt the \CATCODES\ of characters and therefore %D are not always happy with already fixed tokens. %D %D Another problem arises when the argument is grouped not by %D \type{{}} but by \type{\bgroup} and \type{\egroup}. Such an %D argument fails, because the \type{\bgroup} is een as the %D argument (which is quite normal). %D %D The next macro offers a solution for both unwanted %D situations: %D %D \starttyping %D \groupedcommand {before} {after} %D \stoptyping %D %D Which can be used like: %D %D \starttyping %D \def\cite% %D {\groupedcommand{\rightquote\rightquote}{\leftquote\leftquote}} %D \stoptyping %D %D This command is equivalent to, but more 'robust' than: %D %D \starttyping %D \def\cite#1% %D {\rightquote\rightquote#1\leftquote\leftquote} %D \stoptyping %D %D One should say that the next implementation would suffice: %D %D \starttyping %D \def\groupedcommand#1#2% %D {\def\BeforeGroup{#1\ignorespaces}% %D \def\AfterGroup{\unskip#2\egroup}% %D \bgroup\bgroup %D \aftergroup\AfterGroup %D \afterassignment\BeforeGroup %D \let\next=} %D \stoptyping %D %D It did indeed, but one day we decided to support the %D processing of boxes too: %D %D \starttyping %D \def\rightword% %D {\groupedcommand{\hfill\hbox}{\parfillskip\!!zeropoint}} %D %D .......... \rightword{the right way} %D \stoptyping %D %D Here \TEX\ typesets \type{\bf the right way} unbreakable %D at the end of the line. The solution mentioned before does %D not work here. %D %D \starttyping %D \long\unexpanded\def\groupedcommand#1#2% %D {\bgroup %D \long\def\BeforeGroup% %D {\bgroup#1\bgroup\aftergroup\AfterGroup}% %D \long\def\AfterGroup% %D {#2\egroup\egroup}% %D \afterassignment\BeforeGroup %D \let\next=} %D \stoptyping %D %D We used this method some time until the next alternative %D was needed. From now on we support both %D %D \starttyping %D to be \bold{bold} or not, that's the question %D \stoptyping %D %D and %D %D \starttyping %D to be {\bold bold} or not, that's the question %D \stoptyping %D %D This alternative checks for a \type{\bgroup} token first. %D The internal alternative does not accept the box handling %D mentioned before, but further nesting works all right. The %D extra \type{\bgroup}||\type{\egroup} is needed to keep %D \type{\AfterGroup} both into sight and local. \long\def\HandleGroup#1#2% {\bgroup \long\def\BeforeGroup{\bgroup#1\bgroup\aftergroup\AfterGroup}% \long\def\AfterGroup {#2\egroup\egroup}% \afterassignment\BeforeGroup \let\next=} \long\def\HandleSimpleGroup#1#2% no inner group (so no kerning interference) {\bgroup %long\def\BeforeGroup{\bgroup#1\aftergroup\AfterGroup}% interferes \long\def\BeforeGroup{\bgroup\aftergroup\AfterGroup#1}% \long\def\AfterGroup {#2\egroup}% \afterassignment\BeforeGroup \let\next=} \long\def\HandleNoGroup#1#2% {\long\def\AfterGroup{#2\egroup}% \bgroup\aftergroup\AfterGroup#1} %D These macros come together in: %D %D \starttyping %D \long\unexpanded\def\groupedcommand#1#2% %D {\def\dogroupedcommand% %D {\ifx\next\bgroup %D \let\next=\HandleGroup %D \else %D \let\next=\HandleNoGroup %D \fi %D \next{#1}{#2}}% %D \futurelet\next\dogroupedcommand} %D \stoptyping %D %D From the missing paragraph number one can deduce that the %D last macro is not the real one yet. I considered it a %D nuisance that %D %D \starttyping %D \color[green] %D {as grass} %D \stoptyping %D %D was not interpreted as one would expect. This is due to the %D fact that \type{\futurelet} obeys blank spaces, and a %D line||ending token is treated as a blank space. So the final %D implementation became: %\long\unexpanded\def\groupedcommand#1#2% % {\bgroup % \def\dogroupedcommand% % {\ifx\next\bgroup % \def\\{\egroup\HandleGroup{#1}{#2}}% % \else\ifx\next\blankspace % \def\\ {\egroup\groupedcommand{#1}{#2}}% % \else % \def\\{\egroup\HandleNoGroup{#1}{#2}}% % \fi\fi % \\}% % \futurelet\next\dogroupedcommand} % % compatible ? \long\unexpanded\def\groupedcommand#1#2% {\doifnextbgroupelse{\HandleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}} \long\unexpanded\def\simplegroupedcommand#1#2% {\doifnextbgroupelse{\HandleSimpleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}} %D Users should be aware of the fact that grouping can %D interfere with ones paragraph settings that are executed %D after the paragraph is closed. One should therefore %D explictly close the paragraph with \type{\par}, else the %D settings will be forgotten and not applied. So it's: %D %D \starttyping %D \def\BoldRaggedCenter% %D {\groupedcommand{\raggedcenter\bf}{\par}} %D \stoptyping %D \macros %D {checkdefined} %D %D The bigger the system, the greater the change that %D user defined commands collide with those that are part of %D the system. The next macro gives a warning when a command is %D already defined. We considered blocking the definition, but %D this is not always what we want. %D %D \starttyping %D \checkdefined {category} {class} {command} %D \stoptyping %D %D The user is warned with the suggestion to use %D \type{CAPITALS}. This suggestion is feasible, because %D \CONTEXT only defines lowcased macros. \def\showdefinederror#1#2% {\writestatus\m!systems{#1 #2 replaces a macro, use CAPITALS!}} \def\checkdefined#1#2#3% {\doifdefined{#3}{\showdefinederror{#2}{#3}}} %D \macros %D {GotoPar,GetPar} %D %D Typesetting a paragraph in a special way can be done by %D first grabbing the contents of the paragraph and processing %D this contents grouped. The next macro for instance typesets %D a paragraph in boldface. %D %D \starttyping %D \def\remark#1\par% %D {\bgroup\bf#1\egroup} %D \stoptyping %D %D This macro has to be called like %D %D \starttyping %D \remark some text ... ending with \par %D \stoptyping %D %D Instead of \type{\par} we can of course use an empty line. %D When we started typesetting with \TEX, we already had %D produced lots of text in plain \ASCII. In producing such %D simple formatted texts, we adopted an open layout, and when %D switching to \TEX, we continued this open habit. Although %D \TEX\ permits a cramped and badly formatted source, it adds %D to confusion and sometimes introduces errors. So we prefer: %D %D \starttyping %D \remark %D %D some text ... ending with an empty line %D \stoptyping %D %D We are going to implement a mechanism that allows such open %D specifications. The definition of the macro handling %D \type{\remark} becomes: %D %D \starttyping %D \def\remark% %D {\BeforePar{\bgroup\bf}% %D \AfterPar{\egroup}% %D \GetPar} %D \stoptyping %D %D A macro like \type{\GetPar} can be defined in several %D ways. The recent version, the fourth one in a row, %D originally was far more complicated, but some functionality %D has been moved to other macros. %D %D We start with the more simple but in some cases more %D appropriate alternative is \type{\GotoPar}. This one leaves %D \type{\par} unchanged and is therefore more robust. On the %D other hand, \type{\AfterPar} is not supported. \newtoks\BeforePar \newtoks\AfterPar \let\endoflinetoken=^^M %D The original definition was: %D %D \starttyping %D \def\doGotoPar %D {\ifx\nextchar\blankspace %D \@EA\GotoPar %D \else\ifx\nextchar\endoflinetoken %D \@EAEAEA\GotoPar %D \else %D \@EAEAEA\dodoGotoPar %D \fi\fi} %D %D \def\dodoGotoPar %D {\the\BeforePar %D \BeforePar\emptytoks %D \nextchar} %D %D \def\GotoPar %D {\afterassignment\doGotoPar\let\nextchar=} %D \stoptyping %D Its big brother \type{\GetPar} redefines the \type{\par} %D primitive, which can lead to unexpected results, depending %D in the context. %D %D \starttyping %D \def\GetPar %D {\expanded %D {\BeforePar %D {\the\BeforePar %D \BeforePar\emptytoks %D \bgroup %D \def\par %D {\egroup %D \par %D \the\AfterPar %D \BeforePar\emptytoks %D \AfterPar\emptytoks}}}% %D \GotoPar} %D \stoptyping %D However, we can implement a better alternative by using: %D %D \starttyping %D \def\dowithpar#1#2% %D {\def\handlepar##1\par{#1##1#2}% %D \def\gobblepar\par{\dowithpar{#1}{#2}}% %D \doifnextcharelse\par\gobblepar\handlepar} %D \stoptyping %D %D Or, nicer \def\redowithpar\par {\doifnextcharelse\par\redowithpar\dodowithpar}% \def\dowithpar#1#2% {\def\dodowithpar##1\par{#1##1#2}% \redowithpar\par} \def\redogotopar\par {\doifnextcharelse\par\redogotopar\dodogotopar}% \def\dogotopar#1% {\def\dodogotopar{#1}% \redogotopar\par} %D The previosuly defined macros now become: \def\GetPar {\expanded {\dowithpar {\the\BeforePar \BeforePar\emptytoks} {\the\AfterPar \BeforePar\emptytoks \AfterPar\emptytoks}}} \def\GotoPar {\expanded {\dogotopar {\the\BeforePar \BeforePar\emptytoks}}} %D \macros %D {dowithpargument,dowithwargument} %D %D The next macros are a variation on \type{\GetPar}. When %D macros expect an argument, it interprets a grouped sequence %D of characters a one token. While this adds to robustness and %D less ambiguous situations, we sometimes want to be a bit %D more flexible, or at least want to be a bit more tolerant %D to user input. %D %D We start with a commands that acts on paragraphs. This %D command is called as: %D %D \starttyping %D \dowithpargument\command %D \dowithpargument{\command ... } %D \stoptyping %D %D In \CONTEXT\ we use this one to read in the titles of %D chapters, sections etc. The commands responsible for these %D activities accept several alternative ways of argument %D passing. In these examples, the \type{\par} can be omitted %D when an empty line is present. %D %D \starttyping %D \command{...} %D \command ... \par %D \command %D {...} %D \command %D ... \par %D \stoptyping %D %D We show two implementations, of which for the moment the %D we prefier to use the second one: %D %D \starttyping %D \def\dowithpargument#1% %D {\def\dodowithpargument% %D {\ifx\next\bgroup %D \def\next{#1}% %D \else %D \def\next####1 \par{#1{####1}}% %D \fi %D \next}% %D \futurelet\next\dodowithpargument} %D \stoptyping %D %D A second and better implementation was: %D %D \starttyping %D \def\dowithpargument#1% %D {\def\nextpar##1 \par{#1{##1}}% %D \def\nextarg##1{#1{##1}}% %D \doifnextcharelse\bgroup %D {\nextarg} %D {\nextpar}} %D \stoptyping %D %D We ended up with an alternative that also accepts en empty %D argument. This command permits for instance chapters to %D have no title. %\def\dowithpargument#1% % {\def\nextpar##1 \par{#1{##1}}% % \def\nextarg##1{#1{##1}}% % \doifnextcharelse\bgroup % {\nextarg} % {\doifnextcharelse{\par} % {#1{}} % {\nextpar}}} \def\dowithpargument#1% {\def\nextpar##1 \par{#1{##1}}% \def\nextarg##1{#1{##1}}% \doifnextbgroupelse\nextarg{\doifnextcharelse\par{#1{}}\nextpar}} %D The \type{p} in the previous command stands for paragraph. %D When we want to act upon words we can use the \type{w} %D alternative. %D %D \starttyping %D \dowithwargument\command %D \dowithwargument{... \command ...} %D \stoptyping %D %D The main difference bwteen two alternatives is in the %D handling of \type{\par}'s. This time the space token acts %D as a delimiter. %D %D \starttyping %D \command{...} %D \command ... %D \command %D {...} %D \command %D ... %D \stoptyping %D %D Again there are two implementations possible: %D %D \starttyping %D \def\dowithwargument#1% %D {\def\dodowithwargument% %D {\ifx\next\bgroup %D \def\next{#1}% %D \else %D \def\next####1 {#1{####1}}% %D \fi %D \next}% %D \futurelet\next\dodowithwargument} %D \stoptyping %D %D We've chosen: %\def\dowithwargument#1% % {\def\nextwar##1 {#1{##1}}% % \def\nextarg##1{#1{##1}}% % \doifnextcharelse\bgroup % {\nextarg} % {\nextwar}} \def\dowithwargument#1% {\def\nextwar##1 {#1{##1}}% \def\nextarg##1{#1{##1}}% \doifnextbgroupelse\nextarg\nextwar} %D \macros %D {dorepeat,dorepeatwithcommand} %D %D When doing repetitive tasks, we stromgly advice to use %D \type{\dorecurse}. The next alternative however, suits %D better some of the \CONTEXT\ interface commands. %D %D \starttyping %D \dorepeat[n*\command] %D \stoptyping %D %D The value of the used \COUNTER\ can be called within %D \type{\command} by \type{\repeater}. %D %D A slightly different alternative is: %D %D \starttyping %D \dorepeatwithcommand[n*{...}]\command %D \stoptyping %D %D When we call for something like: %D %D \starttyping %D \dorepeatwithcommand[3*{Hello}]\message %D \stoptyping %D %D we get ourselves three \type{\message{Hello}} messages in %D a row. In both commands, the \type{n*} is optional. When this %D specification is missing, the command executes once. % this one is obsolete: \def\dorepeat[#1]% {\dodorepeat#1*\empty*\relax} \long\def\dodorepeat#1*#2#3*#4\relax {\ifx#2\empty#1\else\dorecurse{#1}{#2#3}\fi} \def\repeater {\recurselevel} % this one will be kept \def\dorepeatwithcommand[#1]% {\dodorepeatwithcommand#1*\empty*\relax} % \long\def\dodorepeatwithcommand#1*#2#3*#4\relax#5% % {\ifx#2\empty % #5{#1}% % \else % \dorecurse{#1}{#5{#2#3}}% % \fi} % % more complex but better: % \long\def\dodorepeatwithcommand#1*#2#3*#4\relax#5% % {\ifx#2\empty % #5{#1}% % \else\ifnum#1<\zerocount % % a la etex % % \dorecurse{-\numexpr(#1)}{#5{-#2#3}}% % % indirect % %\innerrecurse#1% % %\expanded{\dorecurse{\number-\innerrecurse}}{#5{-#2#3}}% % % safer: % \bgroup\scratchcounter#1% % \expanded{\egroup\noexpand\dorecurse{\number-\scratchcounter}}{#5{-#2#3}}% % \else\ifx#2+% % \dorecurse{#1}{#5{#3}}% % \else % \dorecurse{#1}{#5{#2#3}}% % \fi\fi\fi} \def\dorepeatwithcommand[#1]% {\dodorepeatwithcommand#1*\empty*\relax} \long\def\dodorepeatwithcommand#1*#2#3*#4\relax#5% {\ifx#2\empty\redorepeatwithcommand[#1]#5\else\dododorepeatwithcommand{#1}{#2}{#3}#5\fi} \long\def\dododorepeatwithcommand#1#2#3#4% {\ifx#2\empty % redundant but gives cleaner extensions #4{#1}% \else\ifnum#1<\zerocount \bgroup\scratchcounter#1% \expanded{\egroup\noexpand\dorecurse{\number-\scratchcounter}}{#4{-#2#3}}% \else\ifx#2+% \dorecurse{#1}{#4{#3}}% \else \dorecurse{#1}{#4{#2#3}}% \fi\fi\fi} \def\redorepeatwithcommand[#1]#2% {#2{#1}} %D The extension hook permits something like: %D %D \starttyping %D \bgroup %D %D \catcode`\*=\@@superscript %D %D \gdef\redorepeatwithcommand[#1]% %D {\redodorepeatwithcommand#1*\empty*\relax} %D %D \long\gdef\redodorepeatwithcommand#1*#2#3*#4\relax#5% %D {\dododorepeatwithcommand{#1}{#2}{#3}#5} %D %D \egroup %D \stoptyping %D %D although one may wonder if changing the catcode of \type {*} is wise. %D \macros %D {normalbgroup,normalgroup} %D %D No comment. \let\normalbgroup\bgroup \let\normalegroup\egroup %D \macros %D {doifstringinstringelse} %D %D The next macro is meant for situations where both strings %D are macros. This save some unneeded expansion. %D %D \starttyping %D \long\def\doifstringinstringelse#1#2% %D {\p!doifinstringelse#1#2% %D \@EA\firstoftwoarguments %D \else %D \@EA\secondoftwoarguments %D \fi} %D \stoptyping %D %D A bit faster is: \def\pp!doifstringinstringelse#1% {\if#1@% \@EA\secondoftwoarguments \else \@EA\firstoftwoarguments \fi} \long\def\doifstringinstringelse#1#2% {\long\@EA\def\@EA\p!doifstringinstringelse\@EA##\@EA1#1##2##3\war {\pp!doifstringinstringelse##2}% \@EA\@EA\@EA\p!doifstringinstringelse\@EA#2#1@@\war} %D \macros %D {appendtoks,prependtoks,appendtoksonce,prependtoksonce, %D doifintokselse,flushtoks,dotoks} %D %D We use \TOKENLISTS\ sparsely within \CONTEXT, because the %D comma separated lists are more suitable for the user %D interface. Nevertheless we have: %D %D \starttyping %D (\doglobal) \appendtoks ... \to\tokenlist %D (\doglobal) \prependtoks ... \to\tokenlist %D (\doglobal) \flushtoks\tokenlist %D \dotoks\tokenlist %D \stoptyping %D %D Er worden eerst enkele klad||registers gedefinieerd. These %D macros are clones of the ones implemented in page~378 of %D Knuth's \TeX book. %D %D A simple implementation, one that does not handle braces %D at the outer level, is: %D %D \starttyping %D \def\appendtoks#1\to#2% %D {\scratchtoks={#1}% %D \expanded{\dodoglobal\noexpand#2{\the#2\the\scratchtoks}}} %D %D \def\prependtoks#1\to#2% %D {\scratchtoks={#1}% %D \expanded{\dodoglobal\noexpand#2{\the\scratchtoks\the#2}}} %D \stoptyping %D %D But here we prefer: \newtoks\@@scratchtoks % before we had the once only alternatives, we had: % % \def\appendtoks {\doappendtoks \relax} % \def\prependtoks{\doprependtoks\relax} % % \long\def\doappendtoks#1\to#2% % {\@@scratchtoks\@EA{\gobbleoneargument#1}% % \expanded{\dodoglobal\noexpand#2{\the#2\the\@@scratchtoks}}} % % \long\def\doprependtoks#1\to#2% % {\@@scratchtoks\@EA{\gobbleoneargument#1}% % \expanded{\dodoglobal\noexpand#2{\the\@@scratchtoks\the#2}}} \def\appendtoks {\doappendtoks \relax} \def\prependtoks {\doprependtoks \relax} \def\appendtoksonce {\doappendtoksonce \relax} \def\prependtoksonce{\doprependtoksonce\relax} % \def\dodoappendtoks#1% % {\expanded{\dodoglobal\noexpand#1{\the#1\the\@@scratchtoks}}} % % \def\dodoprependtoks#1% % {\expanded{\dodoglobal\noexpand#1{\the\@@scratchtoks\the#1}}} % % \long\def\doappendtoks#1\to% % {\@@scratchtoks\@EA{\gobbleoneargument#1}\dodoappendtoks} % % \long\def\doprependtoks#1\to% % {\@@scratchtoks\@EA{\gobbleoneargument#1}\dodoprependtoks} % % \long\def\doappendtoksonce#1\to#2% % {\@@scratchtoks\@EA{\gobbleoneargument#1}% % \doifintokselse\@@scratchtoks{#2}{}{\dodoappendtoks{#2}}} % % \long\def\doprependtoksonce#1\to#2% % {\@@scratchtoks\@EA{\gobbleoneargument#1}% % \doifintokselse\@@scratchtoks{#2}{}{\dodoprependtoks{#2}}} % % A slightly (but in the case of large arguments % significantly) faster alternative is given below: \newtoks\@@toks \def\dodoappendtoks {\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@toks\the\@@scratchtoks}} \def\dodoprependtoks {\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@scratchtoks\the\@@toks}} \long\def\doappendtoks#1\to#2% {\def\@@toks{#2}% \@@scratchtoks\@EA{\gobbleoneargument#1}\dodoappendtoks} \long\def\doprependtoks#1\to#2% {\def\@@toks{#2}% \@@scratchtoks\@EA{\gobbleoneargument#1}\dodoprependtoks} \long\def\doappendtoksonce#1\to#2% {\def\@@toks{#2}% \@@scratchtoks\@EA{\gobbleoneargument#1}% \doifintokselse\@@scratchtoks\@@toks\donothing\dodoappendtoks} \long\def\doprependtoksonce#1\to#2% {\def\@@toks{#2}% \@@scratchtoks\@EA{\gobbleoneargument#1}% \doifintokselse\@@scratchtoks\@@toks\donothing\dodoprependtoks} %D The test macro: %D %D \starttyping %D \def\doifintokselse#1#2% #1 en #2 zijn toks %D {\edef\!!stringa{\the#1}\convertcommand\!!stringa\to\asciia %D \edef\!!stringb{\the#2}\convertcommand\!!stringb\to\asciib %D \doifinstringelse\asciia\asciib} %D \stoptyping %D %D Better: %D %D \starttyping %D \def\doifintokselse#1#2% #1 en #2 zijn toks %D {\edef\!!stringa{\the#1}\convertcommand\!!stringa\to\asciia %D \edef\!!stringb{\the#2}\convertcommand\!!stringb\to\asciib %D \doifstringinstringelse\asciia\asciib} %D \stoptyping %D %D Even better: \beginETEX \def\doifintokselse#1#2% #1 en #2 zijn toks {\@EA\convertargument\the#1\to\asciia \@EA\convertargument\the#2\to\asciib \doifstringinstringelse\asciia\asciib} \endETEX \beginTEX \def\doifintokselse#1#2% #1 en #2 zijn toks {\edef\asciia{\the#1}\convertcommand\asciia\to\asciia \edef\asciib{\the#2}\convertcommand\asciib\to\asciib \doifstringinstringelse\asciia\asciib} \endTEX %D Also: \def\appendetoks #1\to{\expanded{\appendtoks #1}\to} \def\prependetoks#1\to{\expanded{\prependtoks#1}\to} %D Hm. \def\flushtoks#1% nb: can reassing to #1 again, hence the indirectness {\@@scratchtoks#1\relax \dodoglobal#1\emptytoks \the\@@scratchtoks\relax} \let\dotoks\the %D \macros %D {makecounter,pluscounter,minuscounter, %D resetcounter,setcounter,countervalue} %D %D Declaring, setting and resetting \COUNTERS\ can be doen %D with the next set of commands. %D %D \starttyping %D \makecounter {name} %D \pluscounter {name} %D \minuscounter {name} %D \resetcounter {name} %D \setcounter {name} {value} %D \countervalue {name} %D \stoptyping %D %D We prefer the use of global counters. This means that we %D have to load \PLAIN\ \TEX\ in a bit different way: %D %D \starttyping %D \let\oldouter=\outer %D \let\outer=\relax %D \input plain.tex %D \let\outer=\oldouter %D %D \def\newcount% %D {\alloc@0\count\countdef\insc@unt} %D \stoptyping %D %D First we show a solution in which we use real \COUNTERS. %D Apart from some expansion, nothing special is done. %D %D \starttyping %D \def\makecounter#1% %D {\expandafter\newcount\csname#1\endcsname} %D %D \def\pluscounter#1% %D {\global\advance\csname#1\endcsname by 1 } %D %D \def\minuscounter#1% %D {\global\advance\csname#1\endcsname by -1 } %D %D \def\resetcounter#1% %D {\expandafter\global\csname#1\endcsname=0 } %D %D \def\setcounter#1#2% %D {\expandafter\global\csname#1\endcsname=#2 } %D %D \def\countervalue#1% %D {\the\getvalue{#1}} %D \stoptyping %D %D Because these macros are already an indirect way of working %D with counters, there is no harm in using pseudo \COUNTERS\ %D here: \def\makecounter#1% {\letgvalue{#1}\zerocountervalue} % see earlier % \def\countervalue#1% % {\getvalue{#1}} \let\countervalue\getvalue \def\pluscounter#1% {\scratchcounter\getvalue{#1}% \advance\scratchcounter \plusone \setxvalue{#1}{\the\scratchcounter}} \def\minuscounter#1% {\scratchcounter\getvalue{#1}% \advance\scratchcounter \minusone \setxvalue{#1}{\the\scratchcounter}} \def\resetcounter#1% {\letgvalue{#1}\zerocountervalue} \def\setcounter#1#2% or: \setxvalue{#1}{\number#2} {\scratchcounter#2% \setxvalue{#1}{\the\scratchcounter}} \def\incrementcounter#1#2% #1 name #2 value {\setxvalue{#1}{\the\numexpr\csname#1\endcsname+#2\relax}} \def\decrementcounter#1#2% #1 name #2 value {\setxvalue{#1}{\the\numexpr\csname#1\endcsname-#2\relax}} %D \macros %D {savecounter,restorecounter} %D %D These two commands can be used to save and restore counter %D values. Only one level is saved. \def\savecounter#1% {{\scratchcounter\getvalue {#1}\setxvalue{!#1}{\the\scratchcounter}}} \def\restorecounter#1% {{\scratchcounter\getvalue{!#1}\setxvalue {#1}{\the\scratchcounter}}} % == {\setxvalue{#1}{\getvalue{!#1}}} %D The next \ETEX\ based solution is some 15\% faster, which %D goes unnoticed in any normal run, simply because these %D macros are not used milions of times. \beginETEX \numexpr \def\makecounter#1% {\global\@EA\let\csname#1\endcsname\zerocountervalue} % see earlier \def\countervalue#1% {\ifcsname#1\endcsname\csname#1\endcsname\fi} \def\pluscounter#1% {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname+\plusone\relax}} \def\minuscounter#1% {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname-\plusone\relax}} \def\resetcounter#1% {\global\@EA\let\csname#1\endcsname\zerocountervalue} \def\setcounter#1#2% {\@EA\xdef\csname#1\endcsname{\the\numexpr#2\relax}} \def\savecounter#1% {\@EA\xdef\csname !#1\endcsname{\the\numexpr\csname#1\endcsname\relax}} \def\restorecounter#1% {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname !#1\endcsname\relax}} \endETEX %D \macros %D {beforesplitstring,aftersplitstring} %D %D These both commands split a string at a given point in two %D parts, so \type{x.y} becomes \type{x} or \type{y}. %D %D \starttyping %D \beforesplitstring test.tex\at.\to\filename %D \aftersplitstring test.tex\at.\to\extension %D \stoptyping %D %D The first routine looks (and is indeed) a bit simpler than %D the second one. The alternative looking more or less like %D the first one did not always give the results we needed. %D Both implementations show some insight in the manipulation %D of arguments. \def\beforesplitstring#1\at#2\to#3% {\def\dosplitstring##1#2##2#2##3\\% {\def#3{##1}}% \@EA\dosplitstring#1#2#2\\} \def\aftersplitstring#1\at#2\to#3% {\def\dosplitstring##1#2##2@@@##3\\% {\def#3{##2}}% \@EA\dosplitstring#1@@@#2@@@\\} %D \macros %D {splitstring,greedysplitstring} %D %D A bonus macro. \def\splitstring#1\at#2\to#3\and#4% {\def\dosplitstring##1#2##2\empty\empty\empty##3\\% {\def#3{##1}% \def\dosplitstring{##3}% \ifx\dosplitstring\empty \let#4\empty \else \def#4{##2}% \fi}% \@EA\dosplitstring#1\empty\empty\empty#2\empty\empty\empty\\} % Ok, but not for all cases: % % \def\greedysplitstring#1\at#2\to#3\and#4% % {\edef\asciib{#1}% % \let\asciic\asciib % \let#3\empty % \let#4\empty % \doloop % {\expandafter\splitstring\asciib\at#2\to\asciia\and\asciib % \ifx\asciib\empty % \exitloop % \else % \edef#3{\ifx#3\empty\else#3#2\fi\asciia}% % \let#4\asciib % \fi}% % \ifx#3\empty\let#3\asciic\fi} % % The next one is some 25\% faster, but it hardly matters because % we seldom use this macro. % % \def\greedysplitstring#1\at#2\to#3\and#4% % {\edef\asciib{#1}% % \let\asciic\asciib % \let#3\empty % \let#4\empty % \def\dogreedysplitstring % {\expandafter\splitstring\asciib\at#2\to\asciia\and\asciib % \ifx\asciib\empty % \expandafter\dogreedysplitstring % \else % \edef#3{\ifx#3\empty\else#3#2\fi\asciia}% % \let#4\asciib % \fi}% % \dogreedysplitstring % \ifx#3\empty\let#3\asciic\fi} % % The better alternative: \def\greedysplitstring#1\at#2\to#3\and#4% {\edef\asciib{#1}% \let\asciic\asciib \let#3\empty \let#4\empty \doloop {\expandafter\splitstring\asciib\at#2\to\asciia\and\asciib \ifx\asciib\empty \exitloop \else % not \edef#3{\ifx#3\empty\else#3#2\fi\asciia} else % /root/path fails because then #3==empty \edef#3{\ifcase\recurselevel\or\else#3#2\fi\asciia}% \let#4\asciib \fi}% \ifx#3\empty\let#3\asciic\fi} %D \macros %D {beforetestandsplitstring, %D aftertestandsplitstring, %D testandsplitstring} %D %D The next alternatives are for Simon Pepping. This time %D the result is empty when no split is done. % \def\beforetestandsplitstring#1\at#2\to#3% % {\def\dosplitstring##1#2##2#2##3\\{\doifelsenothing % {##3}{\let#3\empty}{\def#3{##1}}}% % \@EA\dosplitstring#1#2#2\\} % % \def\aftertestandsplitstring#1\at#2\to#3% % {\def\dosplitstring ##1#2##2@@@##3\\{\doifelsenothing % {##3}{\let#3\empty}{\def#3{##2}}}% % \@EA\dosplitstring #1@@@#2@@@\\} % % \def\testandsplitstring#1\at#2\to#3\and#4% % {\def\dosplitstring##1#2##2#2##3\\{\doifelsenothing % {##3}{\let#3\empty\let#4\empty}{\def#3{##1}\def#4{##2}}}% % \@EA\dosplitstring#1#2#2\\} % % faster: \def\beforetestandsplitstring#1\at#2\to#3% {\def\dosplitstring##1#2##2#2##3##4\\% {\ifx##3\empty\let#3\empty\else\def#3{##1}\fi}% \@EA\dosplitstring#1#2#2\empty\\} \def\aftertestandsplitstring#1\at#2\to#3% {\def\dosplitstring ##1#2##2@@@##3##4\\% {\ifx##3\empty\let#3\empty\else\def#3{##2}\fi}% \@EA\dosplitstring #1@@@#2@@@\empty\\} \def\testandsplitstring#1\at#2\to#3\and#4% {\def\dosplitstring##1#2##2#2##3##4\\% {\ifx##3\empty\let#3\empty\let#4\empty\else\def#3{##1}\def#4{##2}\fi}% \@EA\dosplitstring#1#2#2\empty\\} %D \macros %D {removesubstring} %D %D A first application of the two routines defined above is: %D %D \starttyping %D \removesubstring-\from first-last\to\nothyphenated %D \stoptyping %D %D Which in terms of \TEX\ looks like: %\def\removesubstring#1\from#2\to#3% % {\doifinstringelse{#1}{#2} % {\beforesplitstring#2\at#1\to\!!stringa % \aftersplitstring #2\at#1\to\!!stringb % \edef#3{\!!stringa\!!stringb}% % \removesubstring#1\from#3\to#3} % {}} \def\removesubstring#1\from#2\to#3% {\splitstring#2\to\!!stringa\and\!!stringb \dodoglobal#3{\!!stringa\!!stringb}} %D \macros %D {appendtocommalist,prependtocommalist, %D addtocommalist,removefromcommalist} %D %D When working with comma separated lists, one sooner or %D later want the tools to append or remove items from such a %D list. When we add an item, we first check if it's already %D there. This means that every item in the list is unique. %D %D \starttyping %D \addtocommalist {alfa} \name %D \addtocommalist {beta} \name %D \addtocommalist {gamma} \name %D \removefromcommalist {beta} \name %D \stoptyping %D %D These commands can be prefixed with \type{\doglobal}. The %D implementation of the second command is more complecated, %D because we have to take leading spaces into account. Keep in %D mind that users may provide lists with spaces after the %D commas. When one item is left, we also have to get rid of %D trailing spaces. %D %D \starttyping %D \def\words{alfa, beta, gamma, delta} %D \def\words{alfa,beta,gamma,delta} %D \stoptyping %D %D Removing an item takes more time than adding one. %D %D A fast appending alternative, without any testing, is %D also provided: %D %D \starttyping %D \appendtocommalist {something} \name %D \prependtocommalist {something} \name %D \stoptyping %D %D This can be implemented as follows: %D %D \starttyping %D \def\appendtocommalist#1#2% %D {\ifx#2\empty %D \dodoglobal\edef#2{#1}% %D \else % no test on empty %D \dodoglobal\edef#2{#2,#1}% %D \fi} %D %D \def\prependtocommalist#1#2% %D {\ifx#2\empty %D \dodoglobal\edef#2{#1}% %D \else % no test on empty %D \dodoglobal\edef#2{#1,#2}% %D \fi} %D \stoptyping %D %D The faster alternatives are: \def\appendtocommalist#1#2% {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}} \def\prependtocommalist#1#2% {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}} %D The old ones are: %D %D \starttyping %D \def\addtocommalist#1#2% %D {\ifx#2\empty %D \dodoglobal\edef#2{#1}% %D \else %D \edef\!!stringa{#2,,}% %D \beforesplitstring#2\at,,\to#2\relax %D \ExpandBothAfter\doifinsetelse{#1}{#2} %D {\resetglobal} %D {\dodoglobal\edef#2{#2,#1}}% %D \fi} %D %D \def\pretocommalist#1#2% %D {\ifx#2\empty %D \dodoglobal\edef#2{#1}% %D \else %D \edef\!!stringa{#2,,}% %D \beforesplitstring#2\at,,\to#2\relax %D \ExpandBothAfter\doifinsetelse{#1}{#2} %D {\resetglobal} %D {\dodoglobal\edef#2{#1,#2}}% %D \fi} %D %D \def\doremovefromcommalist#1#2#3% nog \doglobal %D {\edef\!!stringa{,,#3,,}% %D \beforesplitstring\!!stringa\at,#1#2,\to\!!stringb %D \aftersplitstring\!!stringa\at,#1#2,\to\!!stringc %D \edef#3{\!!stringb,\!!stringc}% %D \aftersplitstring#3\at,,\to#3\relax %D \beforesplitstring#3\at,,\to#3} %D %D \def\removefromcommalist#1#2% %D {\doremovefromcommalist{ }{#1}{#2}% %D \doremovefromcommalist{}{#1}{#2}% %D \dofrontstrip#2% %D \dodoglobal\edef#2{#2}} %D \stoptyping %D %D Significantly faster (especially for longer lists): \def\addtocommalist#1#2% {item} \cs {\rawdoifinsetelse{#1}#2\resetglobal {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}} \def\pretocommalist#1#2% {item} \cs {\rawdoifinsetelse{#1}#2\resetglobal {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}} \def\robustdoifinsetelse#1#2% {\expanded{\convertargument#1}\to\!!stringa \expanded{\convertargument#2}\to\!!stringb \rawdoifinsetelse\!!stringa\!!stringb} \def\robustaddtocommalist#1#2% {item} \cs {\robustdoifinsetelse{#1}#2\resetglobal {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}} \def\robustpretocommalist#1#2% {item} \cs {\robustdoifinsetelse{#1}#2\resetglobal {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}} \def\xsplitstring#1#2% \cs {str} {\def\dosplitstring##1,#2,##2,#2,##3\\% {\edef\!!stringa{\bcleanedupcommalist##1\empty\empty\relax}% \edef\!!stringb{\acleanedupcommalist##2,,\relax}}% \@EA\dosplitstring\@EA,#1,,#2,,#2,\\} \def\bcleanedupcommalist#1#2#3\relax{\if#1,\else#1\fi\if#2,\else#2\fi#3} \def\bcleanedupcommalist#1#2\relax{\if#1,\else#1\fi#2} \def\acleanedupcommalist#1,,#2\relax{#1} % \def\removefromcommalist#1#2% % {\expanded{\xsplitstring\noexpand#2{#1}}% % \dodoglobal\edef#2% % {\ifx\!!stringa\empty % \!!stringb % \else % \@EA\acleanedupcommalist\!!stringa,,\relax % \ifx\!!stringb\empty\else,\!!stringb\fi % \fi}} \def\removefromcommalist#1#2% {\rawdoifinsetelse{#1}#2% {\expanded{\xsplitstring\noexpand#2{#1}}% \dodoglobal\edef#2% {\ifx\!!stringa\empty \!!stringb \else \!!stringa\ifx\!!stringb\empty\else,\!!stringb\fi \fi}} \resetglobal} %D \macros %D {substituteincommalist} %D %D Slow but seldom used, so for the moment we stick to this %D implementation. %D %D \starttyping %D \substituteincommalist{old}{new}{list} %D \stoptyping \def\substituteincommalist#1#2#3% old, new, list (slooow) {\edef\!!stringb{#1}% \edef\!!stringd{#2}% \let\!!stringa#3% \let#3\empty \def\dosubstituteincommalist##1% {\edef\!!stringc{##1}% \ifx\!!stringb\!!stringc \ifx\!!stringd\empty\else \edef#3{#3\ifx#3\empty\else,\fi\!!stringd}% \fi \def\docommand####1{\edef#3{#3,####1}}% \else \edef#3{#3\ifx#3\empty\else,\fi##1}% \fi}% \@EA\rawprocesscommacommand\@EA[\!!stringa]\dosubstituteincommalist} %D A not so useful macro: \def\dodofrontstrip[#1#2]#3% {\ifx#1\space \def#3{#2}% \else \def#3{#1#2}% \fi} \def\dofrontstrip#1% {\edef\!!stringa{#1}% \ifx\!!stringa\empty \else \@EA\dodofrontstrip\@EA[#1]#1% \fi} %D \macros %D {replaceincommalist} %D %D The next macro can be used to replace an indexed element %D in a commalist: %D %D \starttyping %D \replaceincommalist\MyList{2} %D \stoptyping %D %D Element~2 will be replaced by the current meaning of the macro %D \type {\newcommalistelement}. The old meaning is saved in %D \type {\commalistelement}. The replacement honors grouped items, %D like in: %D %D \starttyping %D \def\MyList{a,b,c,d,e,f} \replaceincommalist\MyList{3} %D \def\MyList{a,b,c,d,e,f} \replaceincommalist\MyList{3} %D \def\MyList{a,{b,c},d,e,f} \replaceincommalist\MyList{3} %D \def\MyList{a,b,c,{d,e,f}} \replaceincommalist\MyList{3} %D \stoptyping \let\newcommalistelement\empty \def\replaceincommalist#1#2% #1 = commalistelement #2 = position starts at 1 {\def\doreplaceincommalist##1% {\ifnum\commalistcounter=#2\relax \ifx\newcommalistelement\empty\else \ifx\newcommalist\empty \let\newcommalist\newcommalistelement \else \@EA\@EA\@EA\def\@EA\@EA\@EA\newcommalist\@EA\@EA\@EA {\@EA\newcommalist\@EA,\newcommalistelement}% \fi \fi \def\commalistelement{##1}% \else \ifx\newcommalist\empty \ifx\nexttoken\bgroup % is known -) \def\newcommalist{{##1}}% \else \def\newcommalist{##1}% \fi \else \ifx\nexttoken\bgroup % is known -) \@EA\def\@EA\newcommalist\@EA{\newcommalist,{##1}}% \else \@EA\def\@EA\newcommalist\@EA{\newcommalist,##1}% \fi \fi \fi \advance\commalistcounter\plusone}% \let\commalistelement\empty \let\newcommalist\empty \commalistcounter\plusone \@EA\processcommalist\@EA[#1]\doreplaceincommalist \dodoglobal\let#1\newcommalist} %D \macros %D {globalprocesscommalist} %D %D The commalist processing commands are characterized by the %D fact that the way they handle expansion as well as the fact %D that they can be nested. This makes them kind of useless for %D handling comma lists in alignments. In these situations the %D next macro can be of use. \def\globalprocesscommaitem#1,% {\if]#1\else \globalcommacommand{#1}% \expandafter\globalprocesscommaitem \fi} \def\globalprocesscommalist[#1]#2% {\global\let\globalcommacommand#2% \expandafter\globalprocesscommaitem#1,],} %D \macros %D {startprocesscommalist,startprocesscommacommand} %D %D Two more: \long\def\startprocesscommalist[#1]#2\stopprocesscommalist {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}% \processcommalist[#1]\currentcommalistcommand} \long\def\startprocesscommacommand[#1]#2\stopprocesscommacommand {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}% \processcommacommand[#1]\currentcommalistcommand} %D \macros %D {withoutpt,PtToCm, %D numberofpoints,dimensiontocount} %D %D We can convert point into centimeters with: %D %D \starttyping %D \PtToCm{dimension} %D \stoptyping {\catcode`\.=\@@other \catcode`\p=\@@other \catcode`\t=\@@other \gdef\WITHOUTPT#1pt{#1}} \def\withoutpt#1% {\expandafter\WITHOUTPT#1} %D The capitals are needed because \type{p} and \type{t} have %D \CATCODE~12, while macronames only permit tokens with the %D \CATCODE~11. As a result we cannot use the \type{.group} %D primitives. Those who want to know more about this kind of %D manipulations, we advice to study the \TEX book in detail. %D Because this macro does not do any assignment, we can use it %D in the following way too. \def\PtToCm#1% {\begingroup \scratchdimen#1\relax \scratchdimen0.0351459804\scratchdimen % 2.54/72.27 \withoutpt\the\scratchdimen cm% \endgroup} %D We also support: %D %D \starttyping %D \numberofpoints {dimension} %D \dimensiontocount {dimension} {\count} %D \stoptyping %D %D Both macros return a rounded number. % \dimensiontocount{10.49pt}\scratchcounter \the\scratchcounter / \numberofpoints{10.49pt} % \dimensiontocount{10.51pt}\scratchcounter \the\scratchcounter / \numberofpoints{10.51pt} \def\dimensiontocount#1#2{#2\numexpr\dimexpr#1\relax/\maxcard\relax} \def\numberofpoints #1{\the\numexpr\dimexpr#1\relax/\maxcard\relax} %D \macros %D {swapdimens,swapmacros} %D %D Simple but effective are the next two macros. There name %D exactly states their purpose. The \type{\scratchdimen} and %D \type{\!!stringa} can only be swapped when being the first %D argument. \def\swapdimens#1#2% {\scratchdimen #1\redoglobal #1#2\dodoglobal #2\scratchdimen} \def\swapmacros#1#2% {\let\!!stringa#1\redoglobal\let#1#2\dodoglobal\let#2\!!stringa} %D \macros %D {pushmacro,popmacro} %D %D Premature and a bit of beta, we offer: %D %D \starttyping %D \pushmacro\macro %D \popmacro\macro %D \stoptyping %D %D Beware: global! % \def\@s@{@s@} % % \beginTEX % % \def\globalpushmacro#1% we can use a faster incement here % {\@EA\doglobal\@EA\increment\csname\@s@*\string#1\endcsname % \global\@EA\let\csname\csname\@s@*\string#1\endcsname*\string#1\endcsname#1} % % \def\globalpopmacro#1% \global\let % {\global\@EA\let\@EA#1\csname\csname\@s@*\string#1\endcsname*\string#1\endcsname % \@EA\doglobal\@EA\decrement\csname\@s@*\string#1\endcsname} % % \def\localpushmacro#1% this one can be used to push a value over an \egroup % {\@EA\doglobal\@EA\increment\csname\@s@**\string#1\endcsname % \global\@EA\let\csname\csname\@s@**\string#1\endcsname**\string#1\endcsname#1} % % \def\localpopmacro#1% \local\let % {\@EA\let\@EA#1\csname\csname\@s@**\string#1\endcsname**\string#1\endcsname % \global\@EA\decrement\csname\@s@**\string#1\endcsname} % % \endTEX % % \beginETEX \newcount % % \def\globalpushmacro#1% % {\ifcsname\@s@*\string#1\endcsname \else % \@EA\newcount\csname\@s@*\string#1\endcsname % \fi % \global\advance\csname\@s@*\string#1\endcsname \plusone % \global\@EA\let\csname\the\csname\@s@*\string#1\endcsname*\string#1\endcsname#1} % % \def\globalpopmacro#1% \global\let % {\global\@EA\let\@EA#1\csname\the\csname\@s@*\string#1\endcsname*\string#1\endcsname % \global\advance\csname\@s@*\string#1\endcsname \minusone} % % \def\localpushmacro#1% this one can be used to push a value over an \egroup % {\ifcsname\@s@**\string#1\endcsname \else % \@EA\newcount\csname\@s@**\string#1\endcsname % \fi % \global\advance\csname\@s@**\string#1\endcsname \plusone % \global\@EA\let\csname\the\csname\@s@**\string#1\endcsname**\string#1\endcsname#1} % % \def\localpopmacro#1% \local\let % {\@EA\let\@EA#1\csname\the\csname\@s@**\string#1\endcsname**\string#1\endcsname % \global\advance\csname\@s@**\string#1\endcsname \minusone } % % \endETEX % % some 5% faster (used a lot in typescripts, so ...) \def\@sl@{@sl@} \def\@sg@{@sg@} \let\@@pushedmacro\empty \beginTEX \def\globalpushmacro#1% we can use a faster incement here {\xdef\@@pushedmacro{\string#1}% \@EA\doglobal\@EA\increment\csname\@sg@\@@pushedmacro\endcsname \global\@EA\let\csname\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1} \def\globalpopmacro#1% {\xdef\@@pushedmacro{\string#1}% \global\@EA\let\@EA#1\csname\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname \@EA\doglobal\@EA\decrement\csname\@sg@\@@pushedmacro\endcsname} \def\localpushmacro#1% this one can be used to push a value over an \egroup {\xdef\@@pushedmacro{\string#1}% \@EA\doglobal\@EA\increment\csname\@sl@\@@pushedmacro\endcsname \global\@EA\let\csname\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1} \def\localpopmacro#1% {\xdef\@@pushedmacro{\string#1}% \@EA\let\@EA#1\csname\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname \global\@EA\decrement\csname\@sl@\@@pushedmacro\endcsname} \endTEX \beginETEX \def\globalpushmacro#1% {\xdef\@@pushedmacro{\string#1}% \ifcsname\@sg@\@@pushedmacro\endcsname \else \@EA\newcount\csname\@sg@\@@pushedmacro\endcsname \fi \global\advance\csname\@sg@\@@pushedmacro\endcsname \plusone \global\@EA\let\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1} \def\globalpopmacro#1% {\xdef\@@pushedmacro{\string#1}% \global\@EA\let\@EA#1\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname \global\advance\csname\@sg@\@@pushedmacro\endcsname \minusone} \def\localpushmacro#1% this one can be used to push a value over an \egroup {\xdef\@@pushedmacro{\string#1}% \ifcsname\@sl@\@@pushedmacro\endcsname \else \@EA\newcount\csname\@sl@\@@pushedmacro\endcsname \fi \global\advance\csname\@sl@\@@pushedmacro\endcsname \plusone \global\@EA\let\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1} \def\localpopmacro#1% {\xdef\@@pushedmacro{\string#1}% \@EA\let\@EA#1\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname \global\advance\csname\@sl@\@@pushedmacro\endcsname \minusone } \endETEX % \let\pushmacro\globalpushmacro % \let\popmacro \globalpopmacro \let\pushmacro\localpushmacro \let\popmacro \localpopmacro %D \macros %D {setlocalhsize} %D %D Sometimes we need to work with the \type{\hsize} that is %D corrected for indentation and left and right skips. The %D corrected value is available in \type{\localhsize}, which %D needs to be calculated with \type{\setlocalhsize} first. %D %D \starttyping %D \setlocalhsize \hbox to \localhsize{...} %D \setlocalhsize[-1em] \hbox to \localhsize{...} %D \setlocalhsize[.5ex] \hbox to \localhsize{...} %D \stoptyping %D %D These examples show us that an optional can be used. The %D value provided is added to \type{\localhsize}. \newdimen\localhsize \def\complexsetlocalhsize[#1]% don't change ! {\localhsize\hsize \ifnum\hangafter<\zerocount \advance\localhsize\ifdim\hangindent>\zeropoint-\fi\hangindent \fi \advance\localhsize -\leftskip \advance\localhsize -\rightskip \advance\localhsize #1\relax} \def\simplesetlocalhsize {\complexsetlocalhsize[\zeropoint]} \definecomplexorsimple\setlocalhsize %D \macros %D {doifvalue,doifnotvalue,doifelsevalue, %D doifnothing,doifsomething,doifelsenothing, %D doifvaluenothing,doifvaluesomething,doifelsevaluenothing} %D %D These long named \type{\if} commands can be used to access %D macros (or variables) that are normally accessed by using %D \type{\getvalue}. Using these alternatives safes us three %D tokens per call. Anyone familiar with the not||values %D ones, can derive their meaning from the definitions. \def\doifvalue#1{\doif {\csname#1\endcsname}} \def\doifnotvalue#1{\doifnot {\csname#1\endcsname}} \def\doifelsevalue#1{\doifelse{\csname#1\endcsname}} \def\doifnothing#1{\doif {#1}{}} \def\doifsomething#1{\doifnot {#1}{}} \def\doifelsenothing#1{\doifelse{#1}{}} \def\doifvaluenothing#1{\doif {\csname#1\endcsname}{}} \def\doifvaluesomething#1{\doifnot {\csname#1\endcsname}{}} \def\doifelsevaluenothing#1{\doifelse{\csname#1\endcsname}{}} %D Faster but spoiling inheritance (copying parameters): %D %D \starttyping %D \def\doifelsevaluesomething#1#2#3% %D {\expandafter\ifx\csname#1\endcsname\empty#3\else#2\fi} %D %D \def\doifvaluesomething#1#2% %D {\expandafter\ifx\csname#1\endcsname\empty\else#2\fi} %D %D \def\doifvaluenothing#1#2% %D {\expandafter\ifx\csname#1\endcsname\empty#2\fi} %D \stoptyping %D %D Slightly more efficient: \def\doifnothing{\doif \empty} \def\doifsomething{\doifnot \empty} \def\doifelsenothing{\doifelse\empty} %D The somewhat faster alternatives are: \long\def\doifvalue#1#2% {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}% \ifx\!!stringa\!!stringb \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \long\def\doifnotvalue#1#2% {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}% \ifx\!!stringa\!!stringb \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} \long\def\doifelsevalue#1#2% {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}% \ifx\!!stringa\!!stringb \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \long\def\doifnothing#1% {\edef\!!stringa{#1}% \ifx\!!stringa\empty \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \long\def\doifsomething#1% {\edef\!!stringa{#1}% \ifx\!!stringa\empty \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} \long\def\doifelsenothing#1% {\edef\!!stringa{#1}% \ifx\!!stringa\empty \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \long\def\doifsomethingelse#1% {\edef\!!stringa{#1}% \ifx\!!stringa\empty \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} \long\def\doifvaluenothing#1% {\edef\!!stringa{\csname#1\endcsname}% \ifx\!!stringa\empty \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \long\def\doifvaluesomething#1% {\edef\!!stringa{\csname#1\endcsname}% \ifx\!!stringa\empty \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} \long\def\doifelsevaluenothing#1% {\edef\!!stringa{\csname#1\endcsname}% \ifx\!!stringa\empty \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} %D \macros %D {doifemptyelsevalue, doifemptyvalue, doifnotemptyvalue} %D %D Also handy: \def\doifemptyelsevalue#1% {\@EA\ifx\csname#1\endcsname\empty \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\doifemptyvalue#1% {\@EA\ifx\csname#1\endcsname\empty \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \def\doifnotemptyvalue#1% {\@EA\ifx\csname#1\endcsname\empty \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} %D \macros %D {doifallcommonelse} %D %D A complete match of two sets can be tested with %D \type {\doifallcommonelse}, where the first two %D arguments are sets. %\def\doifallcommonelse#1#2#3#4% % {\def\p!docommoncheck##1% % {\doifnotinset{##1}{#2}{\donefalse}% % \ifdone\else\quitcommalist\fi}% % \donetrue % \processcommalist[#1]\p!docommoncheck % \ifdone#3\else#4\fi} \def\@@doifallcommonelse#1#2#3#4% slow {\def\p!docommoncheck##1% {\doifnotinset{##1}{#4}\donefalse \ifdone\else\expandafter\quitcommalist\fi}% \donetrue \processcommalist[#3]\p!docommoncheck \ifdone\expandafter#1\else\expandafter#2\fi} \def\doifallcommonelse {\@@doifallcommonelse\firstoftwoarguments\secondoftwoarguments} \def\doifallcommon {\@@doifallcommonelse\firstofonearguments\gobbleoneargument} \def\doifnotallcommon {\@@doifallcommonelse\gobbleoneargument\firstofonearguments} %D \macros %D {DOIF,DOIFELSE,DOIFNOT} %D %D \TEX\ is case sensitive. When comparing arguments, this %D feature sometimes is less desirable, for instance when we %D compare filenames. The next three alternatives upcase their %D arguments before comparing them. %D %D \starttyping %D \DOIF {string1} {string2} {...} %D \DOIFNOT {string1} {string2} {...} %D \DOIFELSE {string1} {string2} {then ...}{else ...} %D \stoptyping %D %D We have to use a two||step implementation, because the %D expansion has to take place outside \type{\uppercase}. \def\p!DOIF#1#2% {\uppercase{\ifinstringelse{$#1$}{$#2$}}% \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \def\p!DOIFNOT#1#2% {\uppercase{\ifinstringelse{$#1$}{$#2$}}% \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} \def\p!DOIFELSE#1#2% {\uppercase{\ifinstringelse{$#1$}{$#2$}}% \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\p!DOIFINSTRINGELSE#1#2% {\uppercase{\ifinstringelse{#1}{#2}}% \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\DOIF {\ExpandBothAfter\p!DOIF} \def\DOIFNOT {\ExpandBothAfter\p!DOIFNOT} \def\DOIFELSE {\ExpandBothAfter\p!DOIFELSE} \def\DOIFINSTRINGELSE {\ExpandBothAfter\p!DOIFINSTRINGELSE} %D \macros %D {dosingleargumentwithset, %D dodoubleargumentwithset,dodoubleemptywithset, %D dotripleargumentwithset,dotripleemptywithset} %D %D These maybe too mysterious macros enable us to handle more %D than one setup at once. %D %D \starttyping %D \dosingleargumentwithset \command[#1] %D \dodoubleargumentwithset \command[#1][#2] %D \dotripleargumentwithset \command[#1][#2][#3] %D \dodoubleemptywithset \command[#1][#2] %D \dotripleemptywithset \command[#1][#2][#3] %D \stoptyping %D %D The first macro calls \type{\command[##1]} for each string %D in the set~\type{#1}. The second one calls for %D \type{\commando[##1][#2]} and the third, well one may guess. %D These commands support constructions like: %D %D \starttyping %D \def\dodefinesomething[#1][#2]% %D {\getparameters[\??xx#1][#2]} %D %D \def\definesomething% %D {\dodoubleargumentwithset\dodefinesomething} %D \stoptyping %D %D Which accepts calls like: %D %D \starttyping %D \definesomething[alfa,beta,...][variable=...,...] %D \stoptyping %D %D Now a whole bunch of variables like \type{\@@xxalfavariable} %D and \type{\@@xxbetavariable} is defined. \def\dodoublewithset#1#2% {\def\dododoublewithset[##1][##2]% {\doifsomething{##1} {\def\dodododoublewithset####1{#2[####1][##2]}% \processcommalist[##1]\dodododoublewithset}}% #1\dododoublewithset} \def\dodoubleemptywithset {\dodoublewithset\dodoubleempty} \def\dodoubleargumentwithset{\dodoublewithset\dodoubleargument} \def\dotriplewithset#1#2% {\def\dodotriplewithset[##1][##2][##3]% {\doifsomething{##1} {\def\dododotriplewithset####1{#2[####1][##2][##3]}% \processcommalist[##1]\dododotriplewithset}}% #1\dodotriplewithset} \def\dotripleemptywithset {\dotriplewithset\dotripleempty} \def\dotripleargumentwithset{\dotriplewithset\dotripleargument} %D \macros %D {stripcharacters,stripspaces} %D %D The next command was needed first when we implemented %D the \CONTEXT\ interactivity macros. When we use labeled %D destinations, we often cannot use all the characters we %D want. We therefore strip some of the troublemakers, like %D spaces, from the labels before we write them to the %D \DVI||file, which passes them to for instance a PostScript %D file. %D %D \starttyping %D \stripspaces\from\one\to\two %D \stoptyping %D %D Both the old string \type{\one} and the new one \type{\two} %D are expanded. This command is a special case of: %D %D \starttyping %D \stripcharacter\char\from\one\to\two %D \stoptyping %D %D As we can see below, spaces following a control sequence are %D to enclosed in \type{{}}. % keep this one: % % \def\stripcharacter#1\from#2\to#3% % {\def\dostripcharacter##1#1##2\end % {\edef\!!strippedstring{\!!strippedstring##1}% % \doifnotempty{##2}{\dostripcharacter##2\end}}% % \let\!!strippedstring\empty % \edef\!!stringa{#2}% % \@EA\dostripcharacter\!!stringa#1\end % \dodoglobal\let#3\!!strippedstring} % % the following is better (comes from syst-loc): \def\stripcharacter#1\from#2\to#3% {\def\dostripcharacter##1#1##2\end {\edef\!!strippedstring{\!!strippedstring##1}% \doifnotempty{##2}{\dostripcharacter##2\end}}% \let\!!strippedstring\empty \edef\!!stringa{#2}% \@EA\dostripcharacter\!!stringa#1\end \dodoglobal\let#3\!!strippedstring} \def\stripspaces\from#1\to#2% will become \unspacestring#1\from#2 {\stripcharacter{ }\from#1\to#2} %D \macros %D {unspacestring} %D %D The next macro does the same but is more compatible with other macros, %D like \type {\convert...}. \def\unspacestring#1\to#2% {\stripcharacter{ }\from#1\to#2} %D \macros %D {executeifdefined} %D %D \CONTEXT\ uses one auxiliary file for all data concerning %D tables of contents, references, two||pass optimizations, %D sorted lists etc. This file is loaded as many times as %D needed. During such a pass we skip the commands thate are of %D no use at that moment. Because we don't want to come into %D trouble with undefined auxiliary commands, we call the %D macros in a way similar to \type{\getvalue}. The next macro %D take care of such executions and when not defined, gobbles %D the unwanted arguments. %D %D \starttyping %D \executeifdefined{name}\gobbleoneargument %D \stoptyping %D %D We can of course gobble more arguments using the %D appropriate gobbling command. \newif\ifexecuted % general purpose \def\executeifdefined#1#2% {\ifundefined{#1}% \def\next{#2}% \else \def\next{\getvalue{#1}}% \fi \next} %D Just for fun I times the next alternative: it was roughly %D timed about 15\% faster than the default (10+ sec to 9 sec)! \beginTEX \def\executeifdefined#1% #2 / never change this one again {\ifundefined{#1}% \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi {\csname#1\endcsname}} \endTEX \beginETEX % \def\executeifdefined#1% #2 / never change this one again % {\ifcsname#1\endcsname % \expandafter\firstoftwoarguments % \else % \expandafter\secondoftwoarguments % \fi % {\csname#1\endcsname}} \def\executeifdefined#1% #2 / never change this one again {\ifcsname#1\endcsname \csname#1\expandafter\expandafter\expandafter\endcsname\expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} \endETEX % \letvalue{f }\firstofoneargument \def\executeifdefined#1{\csname\ifcsname#1\endcsname#1\else f \fi\endcsname} %D This one also has the advantage that it is fully %D expandable and that it can be used after an assignment. %D \macros %D {executeifdefinedcs} %D %D An also fully expandable variant is the following: %D %D \starttyping %D \executeifdefinedcs{a}{b} %D \stoptyping %D %D In dit geval zijn beide argumenten csnames. \def\executeifdefinedcs#1#2% {\csname\ifundefined{#1}#2\else#1\fi\endcsname} %D We considered an alternative implementation accepting %D commands directly, like: %D %D \starttyping %D \executeifdefined\name\gobblefivearguments %D \stoptyping %D %D For the moment we don't need this one, so we stick to the %D faster one. %D \macros %D {executeandforget} %D %D The following macros were requested by Simon. Watch the %D global variant. %D %D \starttyping %D \executeandforget\SomeCommand %D \doglobal\executeandforget\AnotherCommand %D \stoptyping \def\executeandforget#1% {\global\let\@@expanded#1% \dodoglobal\let#1\relax \@@expanded} %D \macros %D {doifsomespaceelse} %D %D The next command checks a string on the presence of a space %D and executed a command accordingly. %D %D \starttyping %D \doifsomespaceelse {tekst} {then ...} {else ...} %D \stoptyping %D %D We use this command in \CONTEXT\ for determing if an %D argument must be broken into words when made interactive. %D Watch the use of \type{\noexpand}. %D Is this one still needed? % \long\def\doifsomespaceelse#1#2#3% % {\def\p!doifsomespaceelse##1 ##2##3\war% % {\if\noexpand##2@#3\else#2\fi}% % \p!doifsomespaceelse#1 @ @\war} \def\p!doifsomespaceelse#1 #2#3\war{\if\noexpand#2@} \long\def\doifsomespaceelse#1% % #2#3% {\p!doifsomespaceelse#1 @ @\war % #3\else#2\fi} \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} %D \macros %D {adaptdimension,balancedimensions} %D %D Again we introduce some macros that are closely related to %D an interface aspect of \CONTEXT. The first command can be %D used to adapt a \DIMENSION. %D %D \starttyping %D \adaptdimension {dimension} {value} %D \stoptyping %D %D When the value is preceed by a \type{+} or minus, the %D dimension is advanced accordingly, otherwise it gets the %D value. % \def\doadaptdimension#1#2\\#3\\% % {\if#1+% % \dodoglobal\advance#3 #1#2\relax % \else\if#1-% % \dodoglobal\advance#3 #1#2\relax % \else % \dodoglobal#3=#1#2\relax % \fi\fi} % % more fuzzy but also more efficient \def\doadaptdimension#1#2\\#3\\% {\if#1+% \dodoglobal\advance \else\if#1-% \dodoglobal\advance \else \dodoglobal \fi\fi #3 #1#2\relax} \def\adaptdimension#1#2% {\expandafter\doadaptdimension#2\\#1\\} %D A second command takes two \DIMENSIONS. Both are adapted, %D depending on the sign of the given value. %D maat. This time we take the value as it is, and don't look %D explicitly at the preceding sign. %D %D \starttyping %D \balancedimensions {dimension 1} {dimension 2} {value} %D \stoptyping %D %D When a positive value is given, the first dimension is %D incremented, the second ond is decremented. A negative value %D has the opposite result. \def\balancedimensions#1#2#3% {\scratchdimen#3\relax \redoglobal\advance#1 \scratchdimen \dodoglobal\advance#2 -\scratchdimen} %D Both commands can be preceded by \type{\doglobal}. Here we %D use \type{\redo} first, because \type{\dodo} resets the %D global character. %D \macros %D {processseparatedlist} %D %D Maybe a bit late, but here is a more general version of the %D \type{\processcommalist} command. This time we don't handle %D nesting but accept arbitrary seperators. %D %D \starttyping %D \processseparatedlist[list][separator]\command %D \stoptyping %D %D One can think of things like: %D %D \starttyping %D \processseparatedlist[alfa+beta+gamma][+]\message %D \stoptyping %D First we show the simple alternative: %D %D \starttyping %D \def\processseparatedlist[#1][#2]#3% %D {\def\doprocessseparatedlist##1##2#2% %D {\if]##1% %D \let\next=\relax %D \else\if]##2% %D \let\next=\relax %D \else\ifx\blankspace##2% %D #3{##1}% %D \let\next=\doprocessseparatedlist %D \else %D #3{##1##2}% %D \let\next=\doprocessseparatedlist %D \fi\fi\fi %D \next}% %D \doprocessseparatedlist#1#2]#2} %D \stoptyping %D %D However, we want to handle all situations, like: %D %D \startbuffer %D \processseparatedlist[{aap noot}] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii} %D \processseparatedlist[{aap} {noot}][ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii} %D \processseparatedlist[aap {noot}] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii} %D \processseparatedlist[aap noot] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii} %D \stopbuffer %D %D \typebuffer \getbuffer %D %D Therefore we smuggle a \type {\relax} in front of the %D argument, which we remove afterwards. % \def\doprocessseparatedlist#1]#2[#3]#4% % {\def\dodoprocessseparatedlist##1##2#3% % {\if]##1% % \let\dodoprocessseparatedlist\relax % \else\if]##2% % \let\dodoprocessseparatedlist\relax % \else\ifx\blankspace##2% % #4{##1}% % \else % #4{##1##2}% % \fi\fi\fi % \dodoprocessseparatedlist}% % \@EA\dodoprocessseparatedlist\gobbleoneargument#1#3]#3} % testcase Vit Zyka: % % \def\Do#1{(#1)} % 1\processseparatedlist[{aap noot}] [ ]\Do \par % 2\processseparatedlist[{aap} {noot}][ ]\Do \par % 3\processseparatedlist[aap {noot}] [ ]\Do \par % 4\processseparatedlist[aap noot] [ ]\Do \par % 5\processseparatedlist[aap;noot;a noot;noot a; noot a noot][;]\Do \par % 6\processseparatedlist[][;]\Do \par % 7\processseparatedlist[;][;]\Do \par \def\doprocessseparatedlist#1]#2[#3]#4% {\def\dodoprocessseparatedlist##1##2#3% {\def\!!stringa{##2}% suggested by VZ \if]##1% \let\dodoprocessseparatedlist\relax \else\ifx\blankspace\!!stringa #4{##1}% \else\if]##2% \let\dodoprocessseparatedlist\relax \else #4{##1##2}% \fi\fi\fi \dodoprocessseparatedlist}% \@EA\dodoprocessseparatedlist\gobbleoneargument#1#3]#3} \def\processseparatedlist[% {\doprocessseparatedlist\relax} %D \macros %D {processlist} %D %D An even more general list processing macro is the %D following one: %D %D \starttyping %D \processlist{beginsym}{endsym}{separator}\docommand list %D \stoptyping %D %D This one supports arbitrary open and close symbols as well %D as user defined separators. %D %D \starttyping %D \processlist(){=>}\docommand(a=>b=>c=>d) %D \stoptyping \long\def\processlist#1#2#3#4% no blank skipping ! {\def\doprocesslist##1#2% {\def\dodoprocesslist####1####2#3% {\ifx#2####1% \let\dodoprocesslist\relax \else\ifx#2####2% \let\dodoprocesslist\relax \else #4{####1####2}% \fi\fi \dodoprocesslist}% \expandafter\dodoprocesslist\gobbleoneargument##1#3#2#3}% \def\dodoprocesslist#1% {\doprocesslist\relax}% \dodoprocesslist} % %D \macros % %D {dohonorgroupedargument} % %D % %D The previous macro uses yet another auxiliary macro to % %D handle the special case. % % \def\dohonorgroupedargument#1[% % {\doifnextbgroupelse{\dodohonorgroupedargument#1}{#1[}} % % \def\dodohonorgroupedargument#1#2% % {#1[{{#2}}} %D \macros %D {processassignlist} %D %D Is possible to combine an assignment list with one %D containing keywords. Assignments are treated accordingly, %D keywords are treated by \type{\command}. %D %D \starttyping %D \processassignlist[...=...,...=...,...]\commando %D \stoptyping %D %D This command can be integrated in \type{\getparameters}, but %D we decided best not to do so. \def\processassignlist#1[#2]#3% {\def\p!dodogetparameter[##1=##2=##3]% {\doifnot{##3}\relax{#3{##1}}}% \def\p!dogetparameter##1% {\p!dodogetparameter[##1==\relax]}% \processcommalist[#2]\p!dogetparameter} % too ugly % % %D \macros % %D {DoAfterFi,DoAfterFiFi} % %D % %D Sometimes \type{\fi}'s can get into the way. We can reach % %D over such a troublemaker with: % %D % %D \starttyping % %D \DoAfterFi{some commands} % %D \DoAfterFiFi{some commands} % %D \stoptyping % %D % %D It saves us a \type{\next} construction. Skipping % %D \type{\else...\fi} is more tricky, so this one is not % %D provided. % % \def\DoAfterFi#1\fi{\fi#1} % \def\DoAfterFiFi#1\fi#2\fi{\fi\fi#1} %D \macros %D {untextargument %D untexcommand} %D %D When manipulating data(bases) and for instance generating %D index entries, the next three macros can be of help: %D %D \starttyping %D \untextargument{...}\to\name %D \untexcommand {...}\to\name %D \stoptyping %D %D They remove braces and backslashes and give us something to %D sort. \def\untexsomething {\begingroup \catcode`\{=\@@ignore \catcode`\}=\@@ignore \escapechar\minusone \dountexsomething} \long\def\dountexsomething#1#2\to#3% {\doglobal#1#2\to\untexedargument \endgroup \let#3\untexedargument} \def\untexargument{\untexsomething\convertargument} \def\untexcommand {\untexsomething\convertcommand} %D \macros %D {ScaledPointsToBigPoints,ScaledPointsToWholeBigPoints} %D %D One characteristic of \POSTSCRIPT\ and \PDF\ is that both %D used big points (\TEX's bp). The next macros convert points %D and scaled points into big points. %D %D \starttyping %D \ScaledPointsToBigPoints {number} \target %D \ScaledPointsToWholeBigPoints {number} \target %D \stoptyping %D %D The magic factor $72/72.27$ can be found in most \TEX\ %D related books. % \def\ScaledPointsToBigPoints #1{\PointsToBigPoints {#1sp}} % \def\ScaledPointsToWholeBigPoints#1{\PointsToWholeBigPoints{#1sp}} % % \def\PointsToBigPoints#1#2% % {\scratchdimen#1% % \scratchdimen.996264\scratchdimen % \edef#2{\withoutpt\the\scratchdimen}} % % \def\PointsToWholeBigPoints#1#2% % {\scratchdimen#1% % \scratchdimen.996264\scratchdimen % \scratchcounter\scratchdimen % \advance\scratchcounter \medcard % \divide\scratchcounter \maxcard % \edef#2{\the\scratchcounter}} % \PointsToBigPoints{10.53940pt}\test \test % \PointsToBigPoints{10.53941pt}\test \test % \PointsToBigPoints{10.53942pt}\test \test % \PointsToWholeBigPoints{10.53940pt}\test \test % \PointsToWholeBigPoints{10.53941pt}\test \test % \PointsToWholeBigPoints{10.53942pt}\test \test \beginTEX \def\PointsToBigPoints#1#2% {\scratchdimen#1% \scratchdimen.996264\scratchdimen \edef#2{\withoutpt\the\scratchdimen}} \def\PointsToWholeBigPoints#1#2% {\scratchdimen#1% \scratchdimen.996264\scratchdimen \scratchcounter\scratchdimen \advance\scratchcounter \medcard \divide\scratchcounter \maxcard \edef#2{\the\scratchcounter}} \endTEX \beginETEX \dimexpr \numexpr % \def\PointsToBigPoints#1#2% % {\edef#2{\withoutpt\the\dimexpr(.996264\dimexpr(#1))}} % \def\PointsToWholeBigPoints#1#2% % {\edef#2{\the\numexpr(\numexpr(\dimexpr(.996264\dimexpr(#1)))/\maxcard)}} \def\PointsToBigPoints#1#2% {\edef#2{\withoutpt\the\dimexpr.996264\dimexpr#1\relax\relax}} \def\PointsToWholeBigPoints#1#2% {\edef#2{\the\numexpr\dimexpr.996264\dimexpr#1\relax\relax/\maxcard\relax}} \endETEX \def\ScaledPointsToBigPoints #1{\PointsToBigPoints {\number#1\scaledpoint}} \def\ScaledPointsToWholeBigPoints#1{\PointsToWholeBigPoints{\number#1\scaledpoint}} %D \macros %D {PointsToReal} %D %D Points can be stripped from their suffix by using %D \type{\withoutpt}. The next macro enveloppes this macro. %D %D \starttyping %D \PointsToReal {dimension} \target %D \stoptyping \def\PointsToReal#1#2% {\scratchdimen#1% \edef#2{\withoutpt\the\scratchdimen}} %D \macros %D {dontleavehmode} %D %D Sometimes when we enter a paragraph with some command, the %D first token gets the whole first line. We can prevent this %D by saying: %D %D \starttyping %D \dontleavehmode %D \stoptyping %D %D This command is used in for instance the language module %D \type{lang-ini}. The first version was: %D %D \starttyping %D \def\dontleavehmode{\ifhmode\else\ifmmode\else$ $\fi\fi} %D \stoptyping %D %D Next, Taco came with a better alternative (using mathsurround): %D %D \starttyping %D \def\dontleavehmode %D {\ifhmode\else \ifmmode\else %D {\mathsurround\zeropoint\everymath\emptytoks$ $}% %D \fi \fi} %D \stoptyping %D %D And finaly we got the following alternative, one that avoids %D interfering grouping at the cost of a box. \newbox\@@dlhbox \unexpanded \def\dontleavehmode {\ifhmode\else \ifmmode\else \setbox\@@dlhbox\hbox{\mathsurround\zeropoint\everymath\emptytoks$ $}\unhbox\@@dlhbox \fi \fi} % Also ok, but more sensitive to lookahead expansion is: % % \def\dontleavehmode{\ifvmode \indent \fi} % % which assumes indent is kept unchanged. Protecting the macro is only % possible in etex (watch out: \unexpanded in context is eq to \protected). % % \unexpanded \def\dontleavehmode{\ifvmode \indent \fi} % functional spec TH %D But, if you run a recent version of \TEX, we can use the new %D primitive: \ifx\normalquitvmode\undefined \else \let\dontleavehmode\normalquitvmode \fi %D \macros %D {uppercasestring,lowercasestring} %D %D The names tell what they do: %D %D \starttyping %D \uppercasestring somestring\to\somestring %D \lowercasestring somestring\to\somestring %D \stoptyping %D %D the first argument may be a \type{\macro}. \def\uppercasestring#1\to#2% first @EA redundant {\edef#2{#1}\@EA\uppercase\@EA{\@EA\dodoglobal\@EA\edef\@EA#2\@EA{#2}}} \def\lowercasestring#1\to#2% first @EA redundant {\edef#2{#1}\@EA\lowercase\@EA{\@EA\dodoglobal\@EA\edef\@EA#2\@EA{#2}}} %D \macros %D {handletokens} %D %D With the next macro we enter a critical area of macro %D expansion. What we want is a macro that looks like: %D %D \starttyping %D \handletokens some tokens\with \somemacro %D \stoptyping %D %D At first sight the next implementation will suffice, but %D running this one shows that we loose the spaces. This is no %D surprise because we grab arguments and spaces preceding those %D are just ignored. %D %D \starttyping %D \def\nohandletokens#1\end% %D {} %D %D \def\dohandletokens#1#2\end% %D {\ifx#1\endoftoken %D \expandafter\nohandletokens %D \else %D \docommand{#1}% %D \expandafter\dohandletokens %D \fi %D #2\end} %D %D \long\def\handletokens#1\with#2% %D {\let\docommand=#2\relax %D \dohandletokens#1\endoftoken\end} %D \stoptyping %D %D A second approach therefore grabs the individual characters %D by using \type{\afterassignment}, in which case the space is %D read in as space. %D %D \starttyping %D \def\dodohandletokens% %D {\ifx\next\end \else %D \docommand{\next}% %D \expandafter\dohandletokens %D \fi} %D %D \def\dohandletokens %D {\afterassignment\dodohandletokens\let\next= } %D %D \long\def\handletokens#1\with#2% %D {\let\docommand=#2% %D \dohandletokens#1\end} %D \stoptyping %D A bonus example: %D %D \starttyping %D \hbox{\handletokens tekst en meer tekst\with\ruledhbox} %D %D \def\weetikveel#1{\if#1\blankspace\space\else\ruledhbox{#1}\fi} %D %D \hbox{\handletokens tekst en meer tekst\with\weetikveel} %D \stoptyping %D \macros %D {counttoken,counttokens} %D %D For the few occasions that we want to know the number of %D specific tokens in a string, we can use: %D %D \starttyping %D \counttoken token\in string\to \count %D \counttokens string\to \count %D \stoptyping %D %D This macro, that for instance is used in \type{cont-tab}, %D takes a real counter. The macro can be preceded by \type %D {\doglobal}. \def\counttoken#1\in#2\to#3% {\redoglobal#3\zerocount \def\!!stringa{#1}% \def\!!stringb{\end}% \def\docounttoken##1% obeys {} {\def\!!stringc{##1}% \ifx\!!stringb\!!stringc \else \ifx\!!stringa\!!stringc \dodoglobal\advance#3 \plusone \fi \expandafter\docounttoken \fi}% \docounttoken#2\end \resetglobal} % \def\counttoken#1\in#2\to#3% % {\redoglobal#3\zerocount % \def\!!stringa{#1}% % \def\docounttoken##1% obeys {} % {\def\!!stringb{##1}% % \ifx\!!stringa\!!stringb % \dodoglobal\advance#3\plusone % \fi}% % \handletokens#1\with\docounttoken % \resetglobal} \def\counttokens#1\to#2% {\redoglobal#2\zerocount \def\docounttoken##1{\dodoglobal\advance#2\plusone}% \handletokens#1\with\docounttoken \resetglobal} %D \macros %D {splitofftokens} %D %D Running this one not always gives the expected results. %D Consider for instance the macro for which I originally %D wrote this token handler. \long\def\splitofftokens#1\from#2\to#3% {\ifnum#1>\zerocount \scratchcounter#1\relax \def\dosplitofftokens##1% {\ifnum\scratchcounter>\zerocount \advance\scratchcounter \minusone \edef#3{#3##1}% \fi}% % \let#3\empty % #3 can be #2, so: \@EA\let\@EA#3\@EA\empty \@EA\handletokens#2\with\dosplitofftokens \else \edef#3{#2}% \fi} %D This macro can be called like: %D %D \startbuffer[example] %D \splitofftokens10\from01234567 890123456789\to\test [\test] %D \stopbuffer %D %D However, the characters that we expect to find in %D \type{\test} just don;t show up there. The reason for this %D is not that logical but follows from \TEX's sometimes %D mysterious way of expanding. Look at this: %D %D \startbuffer[next] %D \def\next{a} \edef\test{\next} [\test] %D \let\next=b \edef\test{\test\next} [\test] %D \let\next=c \edef\test{\next} [\test] %D \let\next=d \edef\test{\test\next} [\test] %D \let\next=e \@EA\edef\@EA\test\@EA{\test\next} [\test] %D \stopbuffer %D %D \typebuffer[next] %D %D Careful reading shows that inside an \type{\edef} macro's %D that are \type{\let} are not expanded! %D %D \unprotect\getbuffer[next]\protect %D %D That's why we finally end up with a macro that looks %D ahead by using an assignment, this time by using \type %D {\futurelet}, and grabbing an argument as well. That %D way we can handle the sentinal, a blank space and grouped %D tokens. \def\dohandletokens % \nexthandledtoken is part of interface {\futurelet\nexthandledtoken\dodohandletokens} \long\def\handletokens#1\with#2% {\gdef\dododohandletokens{#2}% permits more complex #2's \dohandletokens#1\end} %D A previous version said \type{\docommand=#2}, but to enable %D use in alignments, I decided to use another placeholder, one %D that is not sensitive to the global assignment. %D This alternatives does not handle grouped tokens well, so %D next we had (for a short moment): %D %D \starttyping %D \def\dodohandletokens#1% %D {\ifx\nexthandledtoken\blankspace %D \dododohandletokens{ }% %D \fi %D \ifx#1\end \else %D \dododohandletokens{#1}% %D \expandafter\dohandletokens %D \fi} %D \stoptyping %D %D This one failed on a trailing space, something we %D encounter in \JAVASCRIPT\ cleaning. %D %D \starttyping %D \def\dodohandletokens#1% %D {\ifx\nexthandledtoken\blankspace %D \dododohandletokens{ }% %D \fi %D \ifx\nexthandledtoken\end \else %D \dododohandletokens{#1}% %D \expandafter\dohandletokens %D \fi} %D \stoptyping %D %D So, now we have: \def\dodohandletokens % can be sped up {\ifx\nexthandledtoken\blankspace \def\next * {\dododohandletokens{ }\dohandletokens}% \else\ifx\nexthandledtoken\end \let\next\gobbletwoarguments \else \long\def\next *##1{\dododohandletokens{##1}\dohandletokens}% \fi\fi \next *} %D This macro is tested on: %D %D \def\xxx#1{[#1]} %D %D \startlines %D \handletokens abc\with\xxx %D \handletokens a b c\with\xxx %D \handletokens a b c\with\xxx %D \handletokens a{bc}d\with\xxx %D \handletokens a\space bc \with\xxx %D \stoplines %D %D And our previous example shows up as: %D %D \getbuffer[example] %D \macros %D {iftrialtypesetting, ifvisible} %D %D The next boolean is at first sight a strange one. Sometimes %D one does a trial typesetting run, for instance to determine %D dimensions. Some mechanisms, like object inclusion, can fail %D on such trials. Temporary setting the next boolean to true, %D helps a lot. The second boolena can be used to inhibit %D processing completely. \newif\iftrialtypesetting \trialtypesettingfalse \newif\ifvisible \visibletrue %D \macros %D {startlocal, startglobal} %D %D The next four macros are rather self explaining: %D %D \starttyping %D \startlocal %D whatever assignments %D \stoplocal %D %D \startglobal %D whatever assignments %D \stopglobal %D \stoptyping %D %D These macros are meant for those who know the difference %D between local and global assignments and are aware of the %D possible unwanted side effect \def\dostartglobaldefs#1#2% {\edef\!!stringa{\the\globaldefs}% \ifnum\globaldefs#10 \globaldefs-\globaldefs \fi \advance\globaldefs#21 \letvalue{@gd@\the\globaldefs}\!!stringa} \def\dostopglobaldefs% {\doifdefinedelse{@gd@\the\globaldefs} {\globaldefs\getvalue{@gd@\the\globaldefs}\relax} {\globaldefs\zerocount}} \def\startlocal {\dostartglobaldefs>-} \def\stoplocal {\dostopglobaldefs} \def\startglobal {\dostartglobaldefs<+} \def\stopglobal {\dostopglobaldefs} %D \macros %D {twodigitrounding} %D %D When using \type {\special}s or \type {\pdfliteral}s, it %D sometimes makes sense to limit the precission. The next %D macro rounds a real number to two digits. It takes one %D argument and only works in \ETEX. \beginTEX \let\integerrounding \firstofoneargument \let\onedigitrounding \firstofoneargument \let\twodigitrounding \firstofoneargument \let\threedigitrounding\firstofoneargument \endTEX \beginETEX \dimexpr \def\dointegerrounding #1.#2\relax {#1} \def\doonedigitrounding #1.#2#3\relax {\ifx#2*#1\else#1.#2\fi} \def\dotwodigitrounding #1.#2#3#4\relax {\ifx#2*#1\else#1.#2#3\fi} \def\dothreedigitrounding#1.#2#3#4#5\relax{\ifx#2*#1\else#1.#2#3#4\fi} \def\integerrounding#1% {\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.5\points \relax .\relax} \def\onedigitrounding#1% {\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.05\points \relax 00.*0\relax} \def\twodigitrounding#1% {\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.005\points \relax 000.*00\relax} \def\threedigitrounding#1% {\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax0000.*00\relax} % \def\dointegerrounding #1.#2\relax {#1} % \def\doonedigitrounding #1.#2#3\relax {#1.#2} % \def\dotwodigitrounding #1.#2#3#4\relax {#1.#2#3} % \def\dothreedigitrounding#1.#2#3#4#5\relax{#1.#2#3#4} % \def\integerrounding #1{\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.5\points\relax \relax} % \def\onedigitrounding #1{\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.05\points\relax 0\relax} % \def\twodigitrounding #1{\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.005\points\relax 00\relax} % \def\threedigitrounding#1{\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax000\relax} % \def\integerroundeddimen #1{\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr #1+.5\points\relax \relax} % \def\onedigitroundeddimen #1{\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr #1+.05\points\relax 0\relax} % \def\twodigitroundeddimen #1{\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr #1+.005\points\relax 00\relax} % \def\threedigitroundeddimen#1{\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1+.0005\points\relax000\relax} \endETEX %D \macros %D {processcontent} %D %D This is the first occasion where \TEX\ and \ETEX\ are no %D longer compatible, although in many cases things go ok. %D Beware of verbatim, i.e. catcode changes. %D %D \starttyping %D \def\starthans% %D {\processcontent{stophans}\test{\message{\test}\wait}} %D \stoptyping %D %D This macro is first used in the tabulation macros. \def\processcontent#1% {\begingroup\@EA\doprocesscontent\csname#1\endcsname} %\beginTEX \def\doprocesscontent#1#2#3% {\long\def\doprocesscontent##1#1% {\endgroup\long\def#2{##1}#3}% \doprocesscontent} %\endTEX % Hm. Side effect, spaces after \type{\test} in verbatim. % must set eof token %\beginETEX \scantokens % %\def\doprocesscontent#1#2#3% % {\long\def\doprocesscontent##1#1% % {\egroup\long\def#2{\scantokens{##1}}#3}% % \doprocesscontent} % %\endETEX %D \macros %D {dogobblesingleempty, dogobbledoubleempty} %D %D These two macros savely grab and dispose two arguments. \def\dogobblesingleempty{\dosingleempty\dodogobblesingleempty} \def\dogobbledoubleempty{\dodoubleempty\dodogobbledoubleempty} \def\dodogobblesingleempty [#1]{} \def\dodogobbledoubleempty[#1][#2]{} \let\gobblesingleempty\dogobblesingleempty % also used \let\gobbledoubleempty\dogobbledoubleempty % also used %D \macros %D {sortcommalist,sortcommacommand, %D donumericcompare,comparedresult} %D %D Sometimes we need to sort a commalist, so here is Taco's %D solution. This will in many cases be a list that is stored %D in a \type{\csname}, so both commalist and commacommands are %D supported. The sorting algorithm is very simple, so the list %D should not be too long or sorting will be very slow. %D %D \starttyping %D \sortcommalist[10,2,4,5,6,1,2,3,4,10,20]\donumericcompare %D %D \def\test{10,2,4,5,6,1,2,3,4,10,20} %D %D \sortcommacommand[\test]\donumericcompare %D \stoptyping %D %D In both cases, the result is available in the macro \type %D {\sortedcommalist}. %D %D Parameter \type{#2} is a macro that should accept two %D parameters, and it has to decide which one is larger, by %D setting the counter \type{\comparedresult} to~0 (for equal), %D 1~(if it's first argument is larger), or~2 (if it's second %D argument is larger). %D %D As said, these macro are largely written by Taco, and are %D (maybe therefore) also the first application of \type %D {\replaceincommalist}. \newcount\comparedresult \def\sortcommacommand[#1]% {\@EA\sortcommalist\@EA[#1]} \def\sortcommalist[#1]#2% {\getcommalistsize[#1]% \ifnum\commalistsize>1 \let\sortedcommalist\empty \let\comparecommand#2% \processcommalist[#1]\dosortcommacommand \else \def\sortedcommalist{#1}% \fi} \def\dosortcommacommand#1% {\ifx\sortedcommalist\empty \def\sortedcommalist{#1}% \else \def\!!tempa{#1}% \ifx\!!tempa\empty\else \scratchcounter\plusone \@EA\getcommalistsize\@EA[\sortedcommalist]% \@EA\processcommalist\@EA[\sortedcommalist]\docompareitems \fi \fi} %D All those \type{\expandafter}'s are there because I do not %D want to use \type{\edef}. \def\docompareitems#1% {\doifnotempty{#1} {\@EA\comparecommand\@EA{\!!tempa}{#1}\relax %\ifcase\compareresult % equal \ifnum\comparedresult<2 \ifnum\scratchcounter=\commalistsize \@EA\@EA\@EA\def\@EA\@EA\@EA\sortedcommalist \@EA\@EA\@EA{\@EA\sortedcommalist\@EA,\!!tempa}% \fi %\or % new element larger % \ifnum\scratchcounter=\commalistsize % \@EA\@EA\@EA\def\@EA\@EA\@EA\sortedcommalist % \@EA\@EA\@EA{\@EA\sortedcommalist\@EA,\!!tempa}% % \fi \else % old element larger \@EA\def\@EA\newcommalistelement\@EA{\!!tempa,#1}% \replaceincommalist\sortedcommalist\scratchcounter \expandafter\quitcommalist \fi}% \advance\scratchcounter \plusone} % bug, was \minusone %D The macro \type{\donumericcompare} considers everything %D that is not a number to be larger than any number. \def\donumericcompare#1#2% {\doifnumberelse{#1} {\doifnumberelse{#2} {\ifnum#1>#2\relax \comparedresult\plusone % #1 is larger \else\ifnum#1<#2\relax \comparedresult\plustwo % #2 is larger \else \comparedresult\zerocount % both are equal \fi\fi} {\comparedresult\plustwo}} {\comparedresult\plusone}} %D \macros %D {@True, @False, @Not, @And} %D %D Some predicate logic functions, used in for instance the %D math module. \def\@True {00} \def\@False {01} \def\@Not #1{0\ifcase#11 \or\@EA 1\else \@EA 0\fi} \def\@And #1#2{0\ifcase#1#2 \@EA 0\else \@EA 1\fi} %D \macros %D {setdimensionwithunit, freezedimensionwithunit} %D %D The next assignments are all valid: %D %D \starttyping %D \setdimensionwithunit\scratchdimen{10} {cm} %D \setdimensionwithunit\scratchdimen{10cm}{cm} %D \setdimensionwithunit\scratchdimen{10cm}{} %D \freezedimensionwithunit\SomeWidth{\textwidth} %D \freezedimensionwithunit\SomeDepth{\dp\strutbox} %D \stoptyping %D %D As an alternative for the next macro we can use a global %D assignment inside a box. The \type{\empty}'s permits %D gobbling while preventing spurious \type{\relax}'s. \def\setdimensionwithunit#1#2#3% number unit dimension / nice trick {\afterassignment\gobblefourarguments#1=#2#3pt\relax\empty\empty\empty\empty} \def\freezedimensionwithunit#1#2% {\setdimensionwithunit\scratchdimen#1{#2}\edef#1{\the\scratchdimen}} %D \macros %D {doifsometokselse} %D %D Not that fast I guess, but here's a way to test for token %D registers being empty. \def\doifsometokselse#1% % #2#3% {\edef\!!stringa{\the#1}% \ifx\!!stringa\empty % #3\else#2\fi} \expandafter\secondoftwoarguments \else \expandafter\firstoftwoarguments \fi} %D \macros %D {startstrictinspectnextcharacter} %D %D This one if for Taco's bibliography module: \let\normalinspectnextcharacter\inspectnextcharacter \def\strictinspectnextcharacter% no user macro ! {\ifx\nexttoken\charactertoken \expandafter\!!stringa \else \expandafter\!!stringb \fi} % better: push/pop \def\startstrictinspectnextcharacter {\let\inspectnextcharacter\strictinspectnextcharacter} \def\stopstrictinspectnextcharacter {\let\inspectnextcharacter\normalinspectnextcharacter} \def\strictdoifnextoptionalelse#1#2% {\startstrictinspectnextcharacter \doifnextcharelse[{\stopstrictinspectnextcharacter#1}{\stopstrictinspectnextcharacter#2}} %D \macros %D {gobblespacetokens} %D %D This macro needs a speed-up! %\def\gobblespacetokens % {\doifnextcharelse\empty\donothing\donothing} % no {}\do\do ! \def\gobblespacetokens {\afterassignment\nexttoken\let\nexttoken=} %D \macros %D {verbatimargument} %D %D As the name says, this macro converts its argument to a %D (rather safe) string. \def\verbatimstring#1% {\convertargument#1\to\ascii\ascii} %D These are needed in ordinal number conversions: \def\lastdigit#1% {\@EA\thelastdigit\number#1\relax} \def\thelastdigit#1#2% {\ifx#2\relax#1\else\@EA\thelastdigit\@EA#2\fi} \def\lasttwodigits#1% {\@EA\thelasttwodigits\@EA0\number#1\relax} \def\thelasttwodigits#1#2#3% 0 dig ... \relax {\ifx#3\relax#1#2\else\@EA\thelasttwodigits\@EA#2\@EA#3\fi} %D \macros %D {serializecommalist} %D %D Concatenate commalists: \def\serializecommalist[#1]% {\let\serializedcommalist\empty \def\docommand##1{\edef\serializedcommalist{\serializedcommalist##1}}% \processcommacommand[#1]\docommand} %D \macros %D {purenumber} %D %D Sometimes we need control over when \TEX\ stops reading a %D number, especially in full expandable macros where using %D \type {\relax} would lead to disasters. %D %D \starttyping %D \ifodd\purenumber{...}\space ... \else ... \fi %D \stoptyping %D %D Here we use a space as number delimiter in combination %D with a space- and relax-less \type {\purenumber}. This %D macro works ok with \type {\the}, \type {\number} as well %D as \ETEX's \type {\numexpr}. \def\purenumber#1{\@EA\firstofoneargument\@EA{\number#1}} %D \macros %D {filterfromvalue} %D %D \starttyping %D \setvalue{xx}{{A}{B}{C}} %D %D \filterfromvalue{xx}{3}{3} %D \filterfromvalue{xx}{3}{2} %D \filterfromvalue{xx}{3}{1} %D \stoptyping %D %D An alternative is to store 'max' in the list, say: %D %D \starttyping %D \setvalue{xx}{3{A}{B}{C}} %D %D \filterfromvalues{3}{xx}{3} %D \filterfromvalues{3}{xx}{2} %D \filterfromvalues{3}{xx}{1} %D \stoptyping %D %D I'll implement this when I'm in \quotation {writing dirty %D macros mood}. \def\dofilterfromstr#1#2% max n {\ifcase#1\or \ifcase#2\or \strippedcsname\firstofoneargument \else \strippedcsname\gobbleoneargument \fi \or \ifcase#2\or \strippedcsname\firstoftwoarguments \or \strippedcsname\secondoftwoarguments \else \strippedcsname\gobbletwoarguments \fi \or \ifcase#2\or \strippedcsname\firstofthreearguments \or \strippedcsname\secondofthreearguments \or \strippedcsname\thirdofthreearguments \else \strippedcsname\gobblethreearguments \fi \or \ifcase#2\or \strippedcsname\firstoffourarguments \or \strippedcsname\secondoffourarguments \or \strippedcsname\thirdoffourarguments \or \strippedcsname\fourthoffourarguments \else \strippedcsname\gobblefourarguments \fi \or \ifcase#2\or \strippedcsname\firstoffivearguments \or \strippedcsname\secondoffivearguments \or \strippedcsname\thirdoffivearguments \or \strippedcsname\fourthoffivearguments \or \strippedcsname\fifthoffivearguments \else \strippedcsname\gobblefivearguments \fi \fi} \def\filterfromvalue#1#2#3% value max n {\@EA\@EAEAEA\csname % we use the fact that an \@EA\ifx\csname#1\endcsname\relax % undefined cs has become \relax \strippedcsname\gobbleoneargument % which we then gobble here \else \dofilterfromstr{#2}{#3}% \fi \endcsname\csname#1\endcsname} \def\filterfromnext#1#2% max n {..}{..}{..}{..} {\csname\dofilterfromstr{#1}{#2}\endcsname} %D \macros %D {definemeasure} %D %D \starttyping %D \definemeasure[mywidth][\dimexpr(\textwidth-1cm)] %D %D ... \measure{mywidth} ... %D \stoptyping \def\??dm{@@dm} % brrr \def\definemeasure {\dodoubleargument\dodefinemeasure} \def\dodefinemeasure[#1][#2]% {\setvalue{\??dm#1}{#2}} % #2 could be omitted, but we want to support spaces % % \setmeasure {x} {1cm} % \setmeasure {xx} {1cm} % \setmeasure {xxx}{1cm} \def\setmeasure #1#2{\setvalue{\??dm#1}{#2}} % quick way \def\setemeasure#1#2{\setevalue{\??dm#1}{#2}} % quick way \def\setgmeasure#1#2{\setgvalue{\??dm#1}{#2}} % quick way \def\setxmeasure#1#2{\setxvalue{\??dm#1}{#2}} % quick way \def\measure#1% {\ifcsname\??dm#1\endcsname\csname\??dm#1\endcsname\else\zeropoint\fi} %D \macros %D {doifdimensionelse} %D %D This is a dirty one: we simply append a unit and discard it when needed. \def\doifdimensionelse#1% {\afterassignment\dodoifdimensionelse\scratchdimen#1pt\relax} \def\dodoifdimensionelse#1% {\ifx#1\relax \expandafter\secondoftwoarguments \else % #1=p ... t\relax \expandafter\thirdoffourarguments \fi} %D \macros %D {comparedimension,comparedimensioneps} %D %D This is a dirty one: we simply append a unit and discard it when needed. \newdimen\roundingeps \roundingeps=10sp \def\comparedimension#1#2% {\chardef\compresult \ifdim#1<#2% \zerocount \else\ifdim#1<#2% \plusone \else \plustwo \fi\fi} \beginETEX \def\comparedimensioneps#1#2% {\chardef\compresult \ifdim\dimexpr#1-#2\relax<\roudingeps \zerocount \else\ifdim\dimexpr#2-#1\relax<\roudingeps \zerocount \else\ifdim#1<#2% \plusone \else \plustwo \fi\fi\fi} \endETEX \beginTEX \newdimen\comparedimen \def\comparedimensioneps#1#2% {\comparedimen#1\advance\comparedimen-#2\relax \chardef\compresult \ifdim\comparedimen<\roudingeps \zerocount \else\ifdim-\comparedimen<\roudingeps \zerocount \else\ifdim#1<#2% \plusone \else \plustwo \fi\fi\fi} \endTEX \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-cp1250.mkii0000644000175000017500000002720314536300610025015 0ustar hillehille%D \module %D [ file=regi-cp1250, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=cp1250 (East European), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for cp1250 input encoding (regime) for Central European languages, %D see also iso-8859-2. %D %D Usage: %D \type{\enableregime[cp1250]} or \type{\enablereregime[windows-1250]} \startregime[cp1250] \defineactivetoken 128 {\texteuro} % 20AC EURO SIGN \defineactivetoken 129 {\unknownchar} % \defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK \defineactivetoken 131 {\unknownchar} % \defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK \defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS \defineactivetoken 134 {\textdag} % 2020 DAGGER \defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER \defineactivetoken 136 {\unknownchar} % \defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN \defineactivetoken 138 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON \defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK \defineactivetoken 140 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE \defineactivetoken 141 {\Tcaron} % 0164 LATIN CAPITAL LETTER T WITH CARON \defineactivetoken 142 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON \defineactivetoken 143 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE \defineactivetoken 144 {\unknownchar} % \defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK \defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK \defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK \defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK \defineactivetoken 149 {\textbullet} % 2022 BULLET \defineactivetoken 150 {\endash} % 2013 EN DASH \defineactivetoken 151 {\emdash} % 2014 EM DASH \defineactivetoken 152 {\unknownchar} % \defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN \defineactivetoken 154 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON \defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK \defineactivetoken 156 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE \defineactivetoken 157 {\tcaron} % 0165 LATIN SMALL LETTER T WITH CARON \defineactivetoken 158 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON \defineactivetoken 159 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\textcaron} % 02C7 CARON \defineactivetoken 162 {\textbreve} % 02D8 BREVE \defineactivetoken 163 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE \defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN \defineactivetoken 165 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK \defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR \defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS \defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN \defineactivetoken 170 {\Scedilla} % 015E LATIN CAPITAL LETTER S WITH CEDILLA \defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 172 {\textlognot} % 00AC NOT SIGN \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN \defineactivetoken 175 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE \defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN \defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN \defineactivetoken 178 {\textogonek} % 02DB OGONEK \defineactivetoken 179 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE \defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT \defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN \defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN \defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT \defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA \defineactivetoken 185 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK \defineactivetoken 186 {\scedilla} % 015F LATIN SMALL LETTER S WITH CEDILLA \defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \defineactivetoken 188 {\Lcaron} % 013D LATIN CAPITAL LETTER L WITH CARON \defineactivetoken 189 {\texthungarumlaut} % 02DD DOUBLE ACUTE ACCENT \defineactivetoken 190 {\lcaron} % 013E LATIN SMALL LETTER L WITH CARON \defineactivetoken 191 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE \defineactivetoken 192 {\Racute} % 0154 LATIN CAPITAL LETTER R WITH ACUTE \defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE \defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX \defineactivetoken 195 {\Abreve} % 0102 LATIN CAPITAL LETTER A WITH BREVE \defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS \defineactivetoken 197 {\Lacute} % 0139 LATIN CAPITAL LETTER L WITH ACUTE \defineactivetoken 198 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE \defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA \defineactivetoken 200 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON \defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE \defineactivetoken 202 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK \defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS \defineactivetoken 204 {\Ecaron} % 011A LATIN CAPITAL LETTER E WITH CARON \defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE \defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX \defineactivetoken 207 {\Dcaron} % 010E LATIN CAPITAL LETTER D WITH CARON \defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE \defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH ACUTE \defineactivetoken 210 {\Ncaron} % 0147 LATIN CAPITAL LETTER N WITH CARON \defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE \defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX \defineactivetoken 213 {\Ohungarumlaut} % 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE \defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS \defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN \defineactivetoken 216 {\Rcaron} % 0158 LATIN CAPITAL LETTER R WITH CARON \defineactivetoken 217 {\Uring} % 016E LATIN CAPITAL LETTER U WITH RING ABOVE \defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE \defineactivetoken 219 {\Uhungarumlaut} % 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE \defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS \defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE \defineactivetoken 222 {\Tcedilla} % 0162 LATIN CAPITAL LETTER T WITH CEDILLA \defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S \defineactivetoken 224 {\racute} % 0155 LATIN SMALL LETTER R WITH ACUTE \defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE \defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX \defineactivetoken 227 {\abreve} % 0103 LATIN SMALL LETTER A WITH BREVE \defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS \defineactivetoken 229 {\lacute} % 013A LATIN SMALL LETTER L WITH ACUTE \defineactivetoken 230 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE \defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA \defineactivetoken 232 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON \defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE \defineactivetoken 234 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK \defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS \defineactivetoken 236 {\ecaron} % 011B LATIN SMALL LETTER E WITH CARON \defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE \defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX \defineactivetoken 239 {\dcaron} % 010F LATIN SMALL LETTER D WITH CARON \defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE \defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE \defineactivetoken 242 {\ncaron} % 0148 LATIN SMALL LETTER N WITH CARON \defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE \defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX \defineactivetoken 245 {\ohungarumlaut} % 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE \defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS \defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN \defineactivetoken 248 {\rcaron} % 0159 LATIN SMALL LETTER R WITH CARON \defineactivetoken 249 {\uring} % 016F LATIN SMALL LETTER U WITH RING ABOVE \defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE \defineactivetoken 251 {\uhungarumlaut} % 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE \defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS \defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE \defineactivetoken 254 {\tcedilla} % 0163 LATIN SMALL LETTER T WITH CEDILLA \defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/page-mar.mkii0000644000175000017500000007266214536300610024661 0ustar hillehille%D \module %D [ file=page-mar, % moved here from main-001 %D version=1997.03.31, %D title=\CONTEXT\ Page Macros, %D subtitle=Marginal Things, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for margin words is one of the reasons for writing %D \CONTEXT. Over time support for marginal content has been %D extended en enhanced. Therefore it's always good to watch %D out for unexpected side effects. \writestatus{loading}{ConTeXt Page Macros / Maginal Things} \unprotect %D There are three categories and their historically grown meaning is %D as follows: %D %D marginlines: these are flushed relative to the start of a line and %D need to be invoked there. %D %D marginwords: these can be issued in the text flow and will migrate %D sidewards; in spite of the name, it can be a paragraph of text as %D well, but normally it's words. %D %D margintexts: these can be set beforehand and are flushed at the %D next paragraph of text (of header) %D %D While these mechanisms were rather separated, they now are slightly %D more integrated. Instead of low level instances we now have a mechanism %D for defining additional ones. %D \macros %D {inleftedge,inleftmargin,inrightmargin,inrightedge} %D %D The fast and clean way of putting things in the margin is %D using \type{\rlap} or \type{\llap}. Unfortunately these %D macro's don't handle indentation, left and right skips. We %D therefore embed them in some macro's that (force and) %D remove the indentation and restore it afterwards. \def\definemarginline {\dodoubleargument\dodefinemarginline} \def\dodefinemarginline[#1][#2]% {\getparameters [\??im\??im#1] [\c!location=\v!left, \c!distance=\zeropoint, \c!width=\leftmarginwidth, \c!hoffset=\leftmargindistance, \c!command=, #2]% \unexpanded\setvalue{#1}{\dohandlemarginline{#1}}} \def\marginlineparameter #1{\csname\??im\??im\currentmarginline#1\endcsname} \def\marginlineexecuter #1#2{\executeifdefined{\??im\??im\currentmarginline#1}{#2}} \def\dohandlemarginline#1% #2 {\def\currentmarginline{#1}% \csname\s!do\??im\??im\executeifdefined{\??im\??im#1\c!location}\v!left\endcsname{#1}} % {#2} \def\doleftmarginline#1#2% #1 is redundant (we can remove it when we group dohandlemarginline; maybe ... {\pushindentation \llap {\def\currentmarginline{#1}% \postsignalrightpage \hsize\marginlineparameter\c!width\relax \marginlineexecuter\c!command\firstofoneargument{#2}\relax \hskip\dimexpr +\leftskip +\compensatedinnermakeupmargin +\marginlineparameter\c!hoffset +\marginlineparameter\c!distance \relax}% \popindentation \ignorespaces} \def\dorightmarginline#1#2% #1 is redundant {\pushindentation \rlap {\def\currentmarginline{#1}% \postsignalrightpage \hskip\dimexpr +\hsize -\rightskip +\compensatedinnermakeupmargin +\marginlineparameter\c!hoffset +\marginlineparameter\c!distance \relax \hsize\marginlineparameter\c!width \marginlineexecuter\c!command\firstofoneargument{#2}}% \popindentation \ignorespaces} \long\def\installmarginlinehandler#1#2{\setvalue{\s!do\??im\??im#1}{#2}} \installmarginlinehandler \v!left {\doleftmarginline} \installmarginlinehandler \v!right {\dorightmarginline} \installmarginlinehandler \v!inner {\presignalrightpage\doifrightpageelse\doleftmarginline \dorightmarginline} \installmarginlinehandler \v!outer {\presignalrightpage\doifrightpageelse\dorightmarginline\doleftmarginline } \definemarginline[inleftmargin] [\c!location=\v!left, \c!width=\leftmarginwidth, \c!distance=\leftmargindistance, \c!hoffset=\zeropoint] \definemarginline[inrightmargin][\c!location=\v!right,\c!width=\rightmarginwidth,\c!distance=\rightmargindistance,\c!hoffset=\zeropoint] \definemarginline[inleftedge] [\c!location=\v!left, \c!width=\leftedgewidth, \c!distance=\leftedgedistance, \c!hoffset=\leftmargintotal] \definemarginline[inrightedge] [\c!location=\v!right,\c!width=\rightedgewidth, \c!distance=\rightedgedistance, \c!hoffset=\rightmargintotal] \definemarginline[inoutermargin][\c!location=\v!outer,\c!width=\outermarginwidth,\c!distance=\outermargindistance,\c!hoffset=\zeropoint] \definemarginline[ininnermargin][\c!location=\v!inner,\c!width=\innermarginwidth,\c!distance=\innermargindistance,\c!hoffset=\zeropoint] \definemarginline[inouteredge] [\c!location=\v!outer,\c!width=\outeredgewidth, \c!distance=\outeredgedistance, \c!hoffset=\outermargintotal] \definemarginline[ininneredge] [\c!location=\v!inner,\c!width=\inneredgewidth, \c!distance=\inneredgedistance, \c!hoffset=\innermargintotal] \definemarginline[atleftmargin] [\c!location=\v!left, \c!command=\lrlap,\c!width=\zeropoint,\c!distance=\zeropoint,\c!hoffset=\zeropoint] \definemarginline[atrightmargin][\c!location=\v!right,\c!command=\rllap,\c!width=\zeropoint,\c!distance=\zeropoint,\c!hoffset=\zeropoint] \ifx\lrlap\undefined \def\lrlap#1{\llap{\rlap{#1}}} \fi \ifx\rllap\undefined \def\rllap#1{\rlap{\llap{#1}}} \fi \def\lrlap#1{\llap{\rlap{#1}}} \def\rllap#1{\rlap{\hskip\hsize\llap{#1}}} %D We want to keep things efficient and therefore only handle %D situations like: %D %D \startbuffer %D \inleftedge {fine} some text \par %D \strut \inleftmargin {fine} some text \par %D \noindent \inrightmargin {fine} some text \par %D \noindent \strut \inrightedge {fine} some text \par %D \stopbuffer %D %D \typebuffer %D %D which looks like: %D %D \bgroup %D \getbuffer %D \parindent 30pt %D \getbuffer %D \egroup %D %D A torture test: %D %D \starttyping %D \def\TestLine#1#2{\backgroundline[#1]{\strut\white\tttf#2~\recurselevel}} %D %D \startbuffer %D \inleftmargin {\TestLine{red} {lm}} test test test \par %D \inrightmargin{\TestLine{green} {rm}} test test test \par %D \inleftedge {\TestLine{red} {le}} test test test \par %D \inrightedge {\TestLine{green} {re}} test test test \par %D \inoutermargin{\TestLine{blue} {om}} test test test \par %D \ininnermargin{\TestLine{yellow}{im}} test test test \par %D \inouteredge {\TestLine{blue} {oe}} test test test \par %D \ininneredge {\TestLine{yellow}{ie}} test test test \par %D \atleftmargin {\TestLine{red} {alm}} \hfill test \par %D \atrightmargin{\TestLine{green} {arm}} test \hfill \par %D \stopbuffer %D %D \dorecurse{40}\getbuffer \page %D \stoptyping %D New, yet undocumented: %D %D used for pascal: %D %D \starttyping %D \index {test} test \index {west} west \index {rest} rest %D %D \startnarrower %D \placeregister[index][alternative=b,command=\atleftmargin] %D \stopnarrower %D \stoptyping % todo: compensate distance when setuplayout[textwidth=..] % todo: generalize margin/edge model, now too much duplication %D The next bunch of macros looks messy which is due to its %D multi-purpose character. \chardef\margincontentdisplacement \zerocount \let \margincontentdistance \!!zeropoint \let \margincontenthoffset \!!zeropoint \def \margincontentlines {1} \def \margincontenttag {0} \let \margincontentseparator \empty \def \margincontentstrutheight {\strutht} \newcount\margincontentlevel \newdimen\margincontentheight \def\setupinmargin {\dodoubleempty\dosetupinmargin} \def\dosetupinmargin[#1][#2]% {\ifsecondargument \processcommalist[#1]{\dodosetupinmargin[#2]}% becomes [#2]{##1} \else \getparameters[\??im][#1]% \fi} % \def\dodosetupinmargin[#1]#2% [settings]{class} % {\checkinmargin[#2]% % \getparameters[\??im#2][#1]} \def\dodosetupinmargin[#1]#2% [settings]{class} {\checkinmargin[#2]% \getparameters[\??im#2][#1]% % will become an \everyinmarginsetup thing \ifcase\executeifdefined{\??im#2\c!sidemethod}{0}\else \enableparpositions \fi} \def\checkinmargin[#1]% {\ifundefined{\??im#1\c!offset}% this offset is related to framed ! \addtocommalist{#1}\inmargintaglist \presetmargintext[#1]% \fi} \def\presetmargintext[#1]% {\presetlocalframed [\??im#1]% \getparameters [\??im#1] [\c!frame=\v!off, \c!offset=\v!overlay, \c!line=1, \c!separator=, \c!width=\v!broad, \c!distance=, % empty = signal \c!hoffset=\zeropoint, \c!style=\@@imstyle, \c!color=\@@imcolor, \c!strut=\@@imstrut, \c!location=\@@imlocation, \c!align=\@@imalign, \c!before=\@@imbefore, \c!after=\@@imafter]} \newdimen\naturalmargincontentheight \def\makemargintextblock#1#2#3% width l r content {\bgroup \forgetall % added, else problems with 'center' and nested itemize \dontcomplain \hsize\getvalue{\??im#1\c!width}\relax \doifnumberelse\margincontenttag {\ifcase\margincontenttag\relax \edef\margincontenttag{#1}% first one is setups id as well \fi} \donothing \doifnumberelse\margincontenttag {\ifnum\margincontenttag>25 % to be translated \writestatus\m!systems{potential margin stack overflow (\margincontenttag)}% \fi} \donothing % we need to preserve {a,b,c} kind of settings \let\margincontentalign#1% \processallactionsinset [\getvalue{\??im\margincontenttag\c!align}] [ \v!yes=>\let\margincontentalign#1, \v!no=>\let\margincontentalign\v!normal, \v!inner=>\let\margincontentalign#1, \v!outer=>\let\margincontentalign#2, \v!left=>\let\margincontentalign\v!left, \v!middle=>\let\margincontentalign\v!middle, \v!right=>\let\margincontentalign\v!right]% \doifvaluesomething{\??im\margincontenttag\c!align} % watch {} around set {\edef\margincontentalign{{\getvalue{\??im\margincontenttag\c!align},\margincontentalign}}}% % \expanded{\getparameters[\??im\margincontenttag][\c!align=\margincontentalign]}% % \edef\margincontentstrut{\getvalue{\??im\margincontenttag\c!strut}}% \savestrut % \setbox\scratchbox\vbox\localframed [\??im\margincontenttag] [\c!strut=\v!no,\c!offset=\v!overlay] % strut handled internally {\decrement\margincontentlines \dorecurse\margincontentlines{\savedstrut\endgraf\nointerlineskip}% ! savedstrut \@@imbefore \dostartattributes{\??im\margincontenttag}\c!style\c!color\empty \dosetupstrut[\margincontentstrut]% was: \setstrut % yes or no \begstrut#3\endstrut\endgraf \xdef\margincontentstrutheight{\the\strutht}% so that it's known outside the framed \dostopattributes \@@imafter}% \global \naturalmargincontentheight\ht\scratchbox \global\advance\naturalmargincontentheight\dp\scratchbox \doif\@@imstack\v!yes {\def\overlappingmargin{-20\scaledpoint}% test value, maybe .25\strutboxdp, maybe configurable \setbox\scratchbox\vbox{\stackeddown\vbox{\box\scratchbox}}}% new \ht\scratchbox\strutht \dp\scratchbox\strutdp % nieuw \box\scratchbox \egroup} %D The stacker permits constructs like: %D %D \starttyping %D \setupinmargin[stack=yes] %D %D \inleft{test 1}test\break %D \inleft{test 2}test\break %D \inleft{test 1} %D \input tufte %D \inleft{test 1} %D \inleft{test 2} %D \inleft{test 3} %D \input tufte %D \inleft{test 1} %D \inleft{test 2\endgraf test 3} %D \inleft{test 4} %D \input tufte %D \inleft{test 1} %D \inleft{test 2\endgraf test 3} %D \inleft{test 4\endgraf test 5\endgraf test 6} %D \inleft{test 7\endgraf test 8\endgraf test 9} %D \input tufte %D \stoptyping %D This approach permits us to implement a better mechanism %D later. We need the \type {\graphicvadjust} in order to %D handle: %D %D \starttyping %D \inleft{test} {\red \dorecurse{40}{test }\par} %D {\red \inleft{test} \dorecurse{40}{test }\par} %D \stoptyping %D %D The outer margin color is either black or color set as %D main text color. \newif\ifrightmargin % documenteren \ifx\dopositionmarginbox\undefined \def\dopositionmarginbox#1{\graphicvadjust{\box#1}} \fi % watch out, margin dimensions are swapped locally (\swapmargins) % with \margincontentmethod one can control pagebreaks % % 0 no break % 1 each entry is one line % 2 only natural height % 3 also stack height \chardef\margincontentmethod \plusthree % beware: 1 = old method \chardef\marginpagecheckmethod\plusone \def\margincontentextralines{1} % old method, play safe \def\nofmargincontentlines {0} \def\doplacemargintext#1#2#3#4% {\dontcomplain \strut \doifsomething{#1} {\def\margincontenttag{#1}}% \doifinsetelse{\margincontenttag}{\v!left,\v!right} % ugly hack {\let \margincontentdistance \empty % signal \let \margincontenthoffset \zeropoint} {\edef\margincontentdistance{\executeifdefined{\??im\margincontenttag\c!distance }\empty }% signal \edef\margincontenthoffset {\executeifdefined{\??im\margincontenttag\c!hoffset }\zeropoint}}% \edef\margincontentlines {\executeifdefined{\??im\margincontenttag\c!line }\plusone }% \edef\margincontentseparator {\executeifdefined{\??im\margincontenttag\c!separator}\donothing}% \setbox\scratchbox\hbox{#4}% % todo: make sure that color stack works \ifcase\margincontentmethod \scratchdimen\zeropoint \or % old method \scratchdimen\ht\scratchbox \advance\scratchdimen\dp\scratchbox \or \scratchdimen\naturalmargincontentheight \or \scratchdimen\naturalmargincontentheight \ifx\laststackvmove\undefined\else\global\advance\scratchdimen\laststackvmove\fi \fi \ifdim\scratchdimen>\margincontentheight \global\margincontentheight\scratchdimen \fi \setbox\scratchbox\hbox {#2{\hskip#3\strut \ifcase\margincontentdisplacement % normal, move strutheight up \scratchdimen\strutdp \advance\scratchdimen \margincontentstrutheight \advance\scratchdimen -\strutht \raise\scratchdimen \or % low, obey vadjust \fi \box\scratchbox}}% \ht\scratchbox\zeropoint \dp\scratchbox\zeropoint \gdef\margincontentstrutheight{\the\strutht}% %\graphicvadjust{\box\scratchbox}} % fails in high math lines, let it be %\hbox{\lower\strutdp\box\scratchbox}} % alas, wrong lapping, therefore useless \dopositionmarginbox\scratchbox} % \def\domarginblockskip#1% % {\hskip\margincontenthoffset % \hskip\compensatedinnermakeupmargin\relax % \doifelsenothing\margincontentdistance % {\hskip\getvalue{\??im#1\c!distance}} % {\hskip\margincontentdistance}% % \relax} \def\domarginblockskip#1% {\doifelsenothing\margincontentdistance {\hskip\dimexpr +\margincontenthoffset +\compensatedinnermakeupmargin +\csname\??im#1\c!distance\endcsname \relax} {\dimexpr +\margincontenthoffset +\compensatedinnermakeupmargin +\margincontentdistance \relax}% \relax} \def\doleftmarginblock#1#2% {\doplacemargintext{#1}\llap\zeropoint {\llap{\placemargincontentseparator}% \makemargintextblock\v!left\v!right{#2}% \domarginblockskip\v!left}} \def\dorightmarginblock#1#2% {\doplacemargintext{#1}\rlap\hsize {\hskip\textwidth\hskip-\hsize % new: hsize correction \domarginblockskip\v!right \makemargintextblock\v!right\v!left{#2}% \rlap{\placemargincontentseparator}}} \def\placemargincontentseparator {\ifnum\margincontentlevel>\zerocount \ifx\margincontentseparator\empty\else \bgroup \scratchdimen\margincontentlines\lineheight \advance\scratchdimen -\lineheight \lower\scratchdimen\hbox{\margincontentseparator}% \egroup \fi \fi} \newbox\marginconstructbox \def\doinmarginswapped#1#2#3#4% {\iffirstsidefloatparagraph\nowhitespace\fi % zo laat mogelijk \setbox\marginconstructbox\hbox\bgroup % prevents page break in the middle of construction \startsignalrightpage \doifswappedrightpageelse {\rightmargintrue #2} {\rightmarginfalse#1} {#3}% setups {#4}% content \stopsignalrightpage \egroup \unhbox\marginconstructbox} % history made this a bit complicated, the +/- was needed before % we had enough mem/hash to do the page correction \edef\inmargintaglist{+,-,\v!low,\v!left,\v!right,\v!inner,\v!outer} % the old one: % % \def\doinmargin[#1][#2][#3][#4][#5]% #6 #7 % {\doifcommonelse{+,-,\v!laag}{#4} % {\dodoinmargin[#1][#2][#3][#4][#5]} % {\dodoinmargin[#1][#2][#3][][#4]}} % % an alternative: % % \letvalue{\??im\v!laag\c!offset}\empty % \letvalue{\??im +\c!offset}\empty % \letvalue{\??im -\c!offset}\empty % % \def\doinmargin[#1][#2][#3][#4][#5]% #6 #7 % {\doifnumberelse{#4} % {\dodoinmargin[#1][#2][#3][#4][#5]} % {\doifdefinedelse{\??im#4\c!offset} % {\dodoinmargin[#1][#2][#3][#4][#5]} % {\dodoinmargin[#1][#2][#3][][#4]}}} % % the problem is that we need to keep downward compatibility % with respect to the first argument thing a reference or a % directive; the alternative is to force users to pass a % directive along with a reference; anyhow, as long as one % does not use references that have the same name as a % directive we can use the (slow) alternative \def\doinmargin[#1][#2][#3][#4][#5]% #6 #7 {\expanded{\doifinsetelse{#4}{\inmargintaglist}} {\dodoinmargin[#1][#2][#3][#4][#5]} {\dodoinmargin[#1][#2][#3][][#4]}} \def\defineinmargin {\doquadrupleempty\dodefineinmargin} \def\dodefineinmargin[#1][#2][#3][#4]% {\doifassignmentelse{#4} {\setupinmargin[#1][#4]% \setvalue{#1}{\indentation\doquintupleempty\doinmargin[#2][#3][#1]}} {\setvalue{#1}{\indentation\doquintupleempty\doinmargin[#2][#3][#4]}}} \defineinmargin [inleft] [\v!left] [\v!normal] % takes left settings \defineinmargin [inright] [\v!right] [\v!normal] % takes right settings \defineinmargin [ininner] [\v!inner] [\v!normal] % takes left/right settings \defineinmargin [inouter] [\v!outer] [\v!normal] % takes left/right settings \defineinmargin [inmargin] [\@@imlocation] [\v!normal] % takes left/right settings \defineinmargin [inother] [\@@imlocation] [\v!reverse] % takes left/right settings \def\inothermargin{\inother} %D This permits definitions like: %D %D \starttyping %D \defineinmargin [SomePlace] [inner] [normal] [distance=1cm] %D \defineinmargin [SomePlace] [inner] [normal] [SomePlace] \setupinmargin[SomePlace][distance=1cm] %D \defineinmargin [MyPlace] [inner] [normal] [SomePlace] %D \defineinmargin [YourPlace] [inner] [normal] [SomePlace] %D \stoptyping %D %D A torture test: %D %D \starttyping %D \startbuffer %D \inleft {\TestLine{red} {l}} test test test \par %D \inright {\TestLine{green} {r}} test test test \par %D \inmargin {\TestLine{blue} {m}} test test test \par %D \inothermargin{\TestLine{yellow} {x}} test test test \par %D \ininner {\TestLine{cyan} {i}} test test test \par %D \inouter {\TestLine{magenta}{o}} test test test \par %D \stopbuffer %D %D \dorecurse{80}\getbuffer \page %D \stoptyping %D %D and %D %D \starttyping %D \defineinmargin [InOuterA] [outer] [normal] [distance=0cm] %D \defineinmargin [InOuterB] [outer] [normal] [distance=1cm] %D \defineinmargin [InOuterC] [outer] [normal] [distance=2cm,line=2] %D %D \startbuffer %D \InOuterA{\TestLine{red} {A}} test test test \par %D \InOuterB{\TestLine{green}{B}} test test test \par %D \InOuterC{\TestLine{blue} {C}} test test test \par %D \stopbuffer %D %D \dorecurse{80}\getbuffer \page %D %D \dorecurse{10}{\inleft {one} test \inleft {two} test } \page %D %D \start %D \margintext {one} \margintext {two} \input thuan \par %D \setupinmargin[1][line=3,distance=1cm] %D \margintext [1]{one} %D \margintext [2]{two} %D \input thuan \page %D \stop %D %D \setupinmargin[3][location=inner,distance=1cm] %D \setupinmargin[4][location=outer,distance=2cm] %D %D % \setupinmargin[left] [line=2] %D % \setupinmargin[right][line=2] %D %D \dorecurse %D {10} %D {\margintext {\kern3cm\TestLine{blue}{none}} %D \margintext[3] {\TestLine{darkgray}{3}} %D \margintext[4] {\TestLine{darkgray}{4}} %D \margintext[left] {\TestLine{red} {left}} %D \margintext[right]{\TestLine{green} {right}} %D \margintext[inner]{\TestLine{cyan} {inner}} %D \margintext[outer]{\TestLine{magenta} {outer}} %D \input thuan \endgraf} %D %D \dorecurse{10}{\margintext{test\\test\\test} \input thuan \endgraf} %D \stoptyping % Test case: % % \setuppagenumbering[alternative=doublesided] \setupwhitespace[medium] % % \placefigure[right]{}{\externalfigure[dummy][width=2cm]} % \input tufte \inothermargin{test} \input tufte % \def\dodoinmargin[#1][#2][#3][#4][#5]#6% % {\bgroup % \forgetall % otherwise sidefloat problems, added 2005/07/20, maybe dangerous % \postponenotes % group is (somehow) needed % \doifinsetelse\v!low{#4} % {\chardef\margincontentdisplacement\plusone} % {\chardef\margincontentdisplacement\zerocount}% % \doif\v!reverse{#2} % {\swapmacros\dorightmarginblock\doleftmarginblock}% % \processaction % [#1] % [ \v!left=>\let\next\doleftmarginblock, % no swapping % \v!right=>\let\next\dorightmarginblock, % no swapping % \v!inner=>\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock }, % \v!outer=>\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock}, % \s!unknown=>\ifdoublesided % \doifcommonelse{+,-}{#4} % {\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock }} % {\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock}}% % \else % \let\next\doleftmarginblock % \fi]% % \next{#3}{#6}% % \rawpagereference\s!mar{#5}% naar binnen ! ! ! ! % \flushnotes % \egroup % don't forget the group % \ignorespaces} % test first % % setupsystem[random=1235] % % \setupinmargin[left][sidemethod=3] % \dorecurse{10}{test \fakewords{20}{40} test \inleft{test\\test} test \fakewords{20}{40} \par} % \page % \setupinmargin[left][sidemethod=4] % \dorecurse{40}{test \fakewords{50}{80} test \inleft{test\\test} \par} % \page \def\dodoinmargin[#1][#2][#3][#4][#5]#6% {\bgroup % \tracingall % old stuff, a bit tricky, but now interfaced \edef\currentmargincontent{#1}% \chardef\marginrepositionmethod\executeifdefined{\??im\currentmargincontent\c!sidemethod }\plusone \chardef\margincontentmethod \executeifdefined{\??im\currentmargincontent\c!textmethod }\plusthree \chardef\marginpagecheckmethod \executeifdefined{\??im\currentmargincontent\c!splitmethod}\plusone % so far \forgetall % otherwise sidefloat problems, added 2005/07/20, maybe dangerous \postponenotes % group is (somehow) needed \doifinsetelse\v!low{#4} {\chardef\margincontentdisplacement\plusone} {\chardef\margincontentdisplacement\zerocount}% \doif\v!reverse{#2} {\swapmacros\dorightmarginblock\doleftmarginblock}% \processaction [#1] [ \v!left=>\let\next\doleftmarginblock, % no swapping \v!right=>\let\next\dorightmarginblock, % no swapping \v!inner=>\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock }, \v!outer=>\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock}, \s!unknown=>\ifdoublesided \doifcommonelse{+,-}{#4} {\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock }} {\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock}}% \else \let\next\doleftmarginblock \fi]% \next{#3}{#6}% \rawpagereference\s!mar{#5}% naar binnen ! ! ! ! \flushnotes \egroup % don't forget the group \ignorespaces} % dit zijn voorlopig lokale commando's / vervallen % % \def\woordinmarge {\indentation\doquintupleempty\doinmargin[\@@implaats][\inleftmargin][\inrightmarge]} % % \def\woordinlinker {\inleftmargin } % vervallen % \def\woordinrechter{\inrechtermarge} % vervallen % Some day: \definemarking[\v!margetitel] %D Now come the margin text collectors. The collected content is %D flushed at every paragraph by the following macro. Note for %D myself: here the location (plaats) is no longer a tag (number). % gone: \def\doflushmargincontent{\doinmargin[\@@implaats][\v!normaal][]} % + [#1][#2]{#3}} %D These are now all the same (long ago they had different %D implementations, somewhere in Sork time if I remember %D right). \def\margintext {\dodoubleempty\domargincontent} \def\marginword {\margintext} \def\margintitle{\margintext} % txt mark as well \newtoks\collectedmargintexts % so .. delayed! \chardef\margintextcollected \zerocount \def\domargincontent[#1][#2]#3% we used to check for #2/#1 being number, no longer now {\global\chardef\margintextcollected\plusone \edef\margincontenttag{#1}% \ifx\margincontenttag\empty \global\advance\margincontentlevel\plusone \edef\margincontenttag{\number\margincontentlevel}% \fi \checkinmargin[\margincontenttag]% \doglobal \appendetoks \noexpand \checkinmargin[\margincontenttag]% \noexpand \doinmargin[\executeifdefined{\??im\margincontenttag\c!location}\@@imlocation][\v!normal][\margincontenttag][\margincontenttag][#2]% \to \collectedmargintexts \doglobal \appendtoks {#3}% \to \collectedmargintexts} \let\restoreinterlinepenalty\relax \def\flushmargincontents % plural {\restoreinterlinepenalty % here? \ifcase\margintextcollected\else % called quite often, so we \expandafter\doflushmargincontents % speed up the \fi scan by \fi} % using a \do.. \def\doflushmargincontents % links + rechts {\bgroup \forgetall \global\margincontentheight\zeropoint \startsignalrightpage \the\collectedmargintexts \signalrightpage \stopsignalrightpage \resetmargincontent % dirty tricks \ifcase\margincontentmethod \donefalse \else\ifinsidecolumns % brrrr \donetrue % how fuzzy \else\ifdim\margincontentheight>\lineheight\relax \donetrue % how dirty \else \donefalse % how needed \fi\fi\fi \savemargincontentlines \ifdone \advance\margincontentheight \margincontentextralines\lineheight \ifdim\pagegoal>\pagetotal \bgroup % preserve \margincontentheight \advance\margincontentheight \pagetotal \ifdim\margincontentheight>\pagegoal \egroup \ifcase\marginpagecheckmethod % disabled \or \setmargincontentpenalties \or % potentially dangerous, maybe better a \goodbreak; the problem is that % there can be a penalty there, which we then overload and we also introduce % nasty side effects, so, we drop this option % \vadjust pre {\page}% \fi \else \egroup \fi \fi \else % We need the above because interlinepenalties overrule vadjusted \nobreaks. % a bit dangerous \vadjust{\nobreak}% \fi \egroup} \def\setmargincontentpenalties {\getnoflines\margincontentheight \keeplinestogether\noflines} \def\savemargincontentlines {\bgroup \advance\margincontentheight \margincontentextralines\lineheight % 1 by default \getnoflines\margincontentheight \xdef\nofmargincontentlines{\the\noflines}% \egroup} \def\fillupmargincontentlines % etex ! ! ! {\endgraf \begingroup \scratchcounter\numexpr\nofmargincontentlines-\prevgraf\relax\relax \ifnum\scratchcounter>\zerocount \forgetall\dorecurse\scratchcounter{\nobreak\crlf}% \fi \endgroup} % Yet undocumented, for a manual flush in for instance headers. \def\resetmargincontent {\global\margincontentlevel\zerocount \global\chardef\margintextcollected\zerocount \global\collectedmargintexts\emptytoks} % \def\placemargincontent % {\ifcase\margintextcollected\else % \bgroup % \chardef\graphicvadjustmode\zerocount % \doflushmargincontents % \egroup % \fi} % % font fix: \def\placemargincontent {\ifcase\margintextcollected\else % was level check \bgroup \redoconvertfont % !! \chardef\graphicvadjustmode\zerocount \doflushmargincontents \egroup \fi} % For old times sake (i use it in project styles) we provide \def\placemargintexts {\placemargincontent} \def\resetmargetitels {\resetmargincontent} \def\margewoordpositie{\margewoord} % obsolete, now no longer range % but never use them yourself since they may disappear. \def\oplinker#1% {\strut \graphicvadjust {\dontcomplain \setbox\scratchbox\vtop{\forgetall\strut#1}% \getboxheight\scratchdimen\of\box\scratchbox \vskip-\scratchdimen % waarom stond hier een \ ? \box\scratchbox}} \setupinmargin [\c!style=\v!bold, \c!color=, \c!strut=\v!auto, \c!location=\v!both, \c!align=\v!inner, \c!stack=\v!no, \c!before=, \c!after=] \setupinmargin [\v!left] [\c!distance=\leftmargindistance, \c!width=\leftmarginwidth, %\c!align=\v!left, % no \c!location=\v!left] \setupinmargin [\v!right] [\c!distance=\rightmargindistance, \c!width=\rightmarginwidth, %\c!align=\v!right, % no \c!location=\v!right] % bonus needed when [inner/outer] is used as tag \setupinmargin[\v!inner][\c!location=\v!inner,\c!align=\v!inner] \setupinmargin[\v!outer][\c!location=\v!outer,\c!align=\v!inner] % more efficient (5K less fotmat file) % % \letvalue{\??im\v!inner\c!location}\v!inner \letvalue{\??im\v!inner\c!align}\v!inner % \letvalue{\??im\v!outer\c!location}\v!outer \letvalue{\??im\v!outer\c!align}\v!inner \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/math-fou.mkii0000644000175000017500000001624514536300610024703 0ustar hillehille%D \module %D [ file=math-fou, %D version=2001.04.12, %D title=\CONTEXT\ Math Macros, %D subtitle=Fourier Specials, %D author={Michel Biovani \& Hans Hagen}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % see end of file for todo \unprotect \startmathcollection [fou] \definemathsymbol [Gamma] [alpha] [mi] ["00] \definemathsymbol [Delta] [alpha] [mi] ["01] \definemathsymbol [Theta] [alpha] [mi] ["02] \definemathsymbol [Lambda] [alpha] [mi] ["03] \definemathsymbol [Xi] [alpha] [mi] ["04] \definemathsymbol [Pi] [alpha] [mi] ["05] \definemathsymbol [Sigma] [alpha] [mi] ["06] \definemathsymbol [Upsilon] [alpha] [mi] ["07] \definemathsymbol [Phi] [alpha] [mi] ["08] \definemathsymbol [Psi] [alpha] [mi] ["09] \definemathsymbol [Omega] [alpha] [mi] ["0A] \stopmathcollection \startmathcollection [fou] \definemathcharacter [+] [bin] [sy] ["80] \definemathcharacter [=] [rel] [sy] ["81] \definemathcharacter [<] [rel] [sy] ["82] \definemathcharacter [>] [rel] [sy] ["83] \stopmathcollection \startmathcollection [fou] \definemathsymbol [leqslant] [rel] [sy] ["84] \definemathsymbol [geqslant] [rel] [sy] ["85] \definemathsymbol [parallelslant] [rel] [sy] ["86] \definemathsymbol [thething] [ord] [sy] ["87] \definemathsymbol [vDash] [rel] [sy] ["88] \definemathsymbol [blacktriangleleft] [rel] [sy] ["89] \definemathsymbol [blacktriangleright] [rel] [sy] ["8A] \definemathsymbol [nleqslant] [rel] [sy] ["8B] \definemathsymbol [ngeqslant] [rel] [sy] ["8C] \definemathsymbol [parallel] [rel] [sy] ["8D] \definemathsymbol [nparallel] [rel] [sy] ["8E] \definemathsymbol [nparallelslant] [rel] [sy] ["8F] \definemathsymbol [nvDash] [rel] [sy] ["90] \definemathsymbol [intercal] [bin] [sy] ["91] \definemathsymbol [hslash] [ord] [sy] ["92] \definemathsymbol [nexists] [ord] [sy] ["93] \definemathsymbol [varsubsetneq] [rel] [sy] ["93] \stopmathcollection \startmathcollection [fou] \definemathcharacter [(] [nothing] [mr] ["28] [ex] ["A1] \definemathcharacter [)] [nothing] [mr] ["29] [ex] ["A2] \definemathcharacter [91] [nothing] [mr] ["5B] [ex] ["A3] % [ \definemathcharacter [93] [nothing] [mr] ["5D] [ex] ["A4] % ] \definemathcharacter [/] [nothing] [mr] ["2F] [ex] ["B1] \definemathcharacter [124] [nothing] [sy] ["6A] [ex] ["AF] % | \definemathcharacter [92] [nothing] [sy] ["6E] [ex] ["B2] % \ \stopmathcollection \startmathcollection [fou] \definemathsymbol [Vert] [nothing] [sy] ["6B] [ex] ["B0] \definemathsymbol [vert] [nothing] [sy] ["6A] [ex] ["AF] \definemathsymbol [VERT] [nothing] [sy] ["98] [ex] ["93] \definemathsymbol [Downarrow] [rel] [sy] ["2B] [ex] ["C4] \definemathsymbol [backslash] [nothing] [sy] ["6E] [ex] ["B2] \definemathsymbol [rangle] [close] [sy] ["69] [ex] ["AE] \definemathsymbol [langle] [open] [sy] ["68] [ex] ["AD] \definemathsymbol [rbrace] [close] [sy] ["67] [ex] ["AA] \definemathsymbol [lbrace] [open] [sy] ["66] [ex] ["A9] \definemathsymbol [rceil] [close] [sy] ["65] [ex] ["A8] \definemathsymbol [lceil] [open] [sy] ["64] [ex] ["A7] \definemathsymbol [rfloor] [close] [sy] ["63] [ex] ["A6] \definemathsymbol [lfloor] [open] [sy] ["62] [ex] ["A5] \definemathsymbol [dblbrackleft] [open] [sy] ["99] [ex] ["85] \definemathsymbol [dblbrackright] [close] [sy] ["9A] [ex] ["86] \stopmathcollection \startmathcollection [fou] \definemathsymbol [varkappa] [ord] [mi] ["80] % check this \definemathsymbol [varvarrho] [ord] [mi] ["81] % check this \definemathsymbol [xswordsup] [ord] [sy] ["96] \definemathsymbol [xswordsdown] [ord] [sy] ["97] \definemathsymbol [notowns] [rel] [sy] ["9C] \definemathsymbol [hbar] [ord] [sy] ["9D] \definemathsymbol [smallsetminus] [bin] [sy] ["9E] \stopmathcollection \startmathcollection [fou] \definemathsymbol [notin] [rel] [sy] ["9B] \stopmathcollection \startmathcollection [fou] \definemathsymbol [iintop] [op] [ex] ["CE] \definemathsymbol [iiintop] [op] [ex] ["D0] \definemathsymbol [oiintop] [op] [ex] ["D2] \definemathsymbol [oiiintop] [op] [ex] ["D4] \definemathsymbol [slashintop] [op] [ex] ["D6] \stopmathcollection \startmathcollection [fou] \definemathcommand [iint] {\iintop \nolimits} \definemathcommand [iiint] {\iiintop \nolimits} \definemathcommand [oiint] {\oiintop \nolimits} \definemathcommand [oiiint] {\oiiintop \nolimits} \definemathcommand [slashint] {\slashintop\nolimits} \stopmathcollection \startmathcollection [fou] \definemathsymbol [acute] [accent] [mr] ["1] \definemathsymbol [grave] [accent] [mr] ["0] \definemathsymbol [ddot] [accent] [mr] ["4] \definemathsymbol [tilde] [accent] [mr] ["3] \definemathsymbol [bar] [accent] [mr] ["9] \definemathsymbol [breve] [accent] [mr] ["8] \definemathsymbol [check] [accent] [mr] ["7] \definemathsymbol [hat] [accent] [mr] ["2] \definemathsymbol [dot] [accent] [mr] ["A] \definemathsymbol [mathring] [accent] [mr] ["6] \stopmathcollection \startmathcollection [fou] \definemathsymbol [otheralpha] [ord] [mi] ["0B] \definemathsymbol [otherbeta] [ord] [mi] ["0C] \definemathsymbol [othergamma] [ord] [mi] ["0D] \definemathsymbol [otherdelta] [ord] [mi] ["0E] \definemathsymbol [otherepsilon] [ord] [mi] ["0F] \definemathsymbol [otherzeta] [ord] [mi] ["10] \stopmathcollection \protect \endinput % from a mail of Michel B / todo % \definemathsymbol [acute] [accent] [operators] ["1] % \definemathsymbol [grave] [accent] [operators] ["0] % \definemathsymbol [ddot] [accent] [operators] ["4] % \definemathsymbol [tilde] [accent] [operators] ["3] % \definemathsymbol [bar] [accent] [operators] ["9] % \definemathsymbol [breve] [accent] [operators] ["8] % \definemathsymbol [check] [accent] [operators] ["7] % \definemathsymbol [hat] [accent] [operators] ["2] % \definemathsymbol [dot] [accent] [operators] ["A] % \definemathsymbol [mathring] [accent] [operators] ["6] % \definemathsymbol [wideparen] [ord] [largesymbols] ["94] % \definemathsymbol [widearc] [accent] [largesymbols] ["D8] % check for definition of \overset (ams) % \def\FOUwidering#1% % {\overset{\smash{\vbox to .2ex{\hbox{$\mathring{}$}}}}{\wideparen{#1}}} % \startmathcollection [default] % [ams] % % \definemathcommand [widering] {\FOUwidering} % % \stopmathcollection % \definemathsymbol [otheralpha] [ord] [otherletters] ["0B] % \definemathsymbol [otherbeta] [ord] [otherletters] ["0C] % \definemathsymbol [othergamma] [ord] [otherletters] ["0D] % \definemathsymbol [otherdelta] [ord] [otherletters] ["0E] % \definemathsymbol [otherepsilon] [ord] [otherletters] ["0F] % \definemathsymbol [otherzeta] [ord] [otherletters] ["10] context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-uni.mkii0000644000175000017500000000126114536300610024672 0ustar hillehille%D \module %D [ file=enco-uni, %D version=1998.10.18, %D title=\CONTEXT\ Encoding Macros, %D subtitle=Unicode, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module activates all characters in the upper range %D and sets them to the basic unicodehandler. Beware, this is %D a special purpose handler (esp for chinese encodings). \startregime[unicode] \defineactivedecimals 128 to 255 as {\handleunicodeflowglyph} \stopregime \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-run.mkii0000644000175000017500000001172214536300610024704 0ustar hillehille%D \module %D [ file=enco-run, %D version=2000.27.12, % moved to runtime module %D title=\CONTEXT\ Encoding Macros, %D subtitle=Runtime Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \gdef\visualizecharacters% {}'s needed {\def\uchar##1##2{\hbox to 2.5em {\ifcase##1\relax\red\or\blue\else\green\fi##1\hss##2}}% \let\normalbuildtextaccent\buildtextaccent \let\normalbottomaccent \bottomaccent %\def\char{\green\normalchar}% \def\char % can be used in \oalign {\bgroup\def\char{\green\normalchar\scratchcounter\egroup}% \afterassignment\char\scratchcounter}% \def\buildtextaccent{\let\green\empty\blue\normalbuildtextaccent}% \def\bottomaccent{\let\green\empty\red\normalbottomaccent}} \unexpanded\gdef\visualizecharacterslegend {\hbox {\edef\banner{\currentencoding\space\fontname\font}% \tttf\banner:\space {\blue composed}\space{\red bottom}\space{\green char}\space raw}} \gdef\showaccents {\bgroup \savefont \setuptextrules[\c!bodyfont=,\c!style=] \starttextrule{\visualizecharacterslegend} \whitespace \restorefont\setupinterlinespace \visualizecharacters \def\do##1% {{\def\dodo####1% {\hss\hbox to 1em{\hss\expanded{##1####1\recurselevel}\hss}}% \hbox to \hsize {\strut \localcolortrue \hbox to 2em{\tttf\string##1\hss}% \dorecurse{26}{\dodo\character}}% \hbox to \hsize {\strut \localcolortrue \hskip2em \dorecurse{26}{\dodo\Character}}}% \par} \do\'\do\`\do\^\do\~\do\" \do\H\do\r\do\v\do\u\do\= \do\.\do\b\do\d\do\k\do\c \stoptextrule \egroup} \gdef\showcharacters {\bgroup \savefont \setuptextrules[\c!bodyfont=,\c!style=] \starttextrule{\visualizecharacterslegend} \whitespace \dontcomplain \forgetall \def\startencoding[##1]{} \def\stopencoding{\endinput} \dimen0=\zeropoint \dimen2=\zeropoint \def\definecharacter ##1 ##2 % {\setbox0=\hbox spread 1em{\getvalue{##1}}% \ifdim\wd0>\dimen0 \dimen0=\wd0 \fi \setbox2=\hbox spread 1em{\box0 \tttf##1} \ifdim\wd2>\dimen2 \dimen2=\wd2 \fi}% \readsysfile{\f!encodingprefix def}{}{} \edef\encwidth{\the\dimen0} \dimen0=\hsize \advance\dimen0 2em \advance\dimen2 2em \divide \dimen0 by \dimen2 \advance\dimen0 1sp \edef\enccols{\number\dimen0} \visualizecharacters \startcolumns[\c!n=\enccols,\c!distance=2em] \restorefont\setupinterlinespace \def\definecharacter ##1 ##2 % {\setbox0=\hbox to \hsize{\localcolortrue\hbox to \encwidth{\getvalue{##1}\hss}\tttf##1}% \ht0\strutheight \dp0\strutdepth \box0 \allowbreak} \readsysfile{\f!encodingprefix def}{}{} \stopcolumns \stoptextrule \egroup} % \hbox % {\font\test=uplr8t \test \ruledhbox{t} % \font\test=uplr8r \test \ruledhbox{t}} \ifnum\texengine=\pdftexengine \gdef\showhyphenations#1% {\starttabulate[|le|l|] \NC language \NC \currentlanguage\ (internal code:\the\normallanguage) \NC \NR \NC font \NC \fontname\font \NC \NR \NC encoding \NC \ifx\@@fontencoding\empty not set\else\@@fontencoding\fi \NC \NR \NC mapping \NC \ifx\@@fontmapping \empty not set\else\@@fontmapping \fi \NC \NR \NC handling \NC \ifx\@@fonthandling\empty not set\else\@@fonthandling\fi \NC \NR \NC sample \NC \hyphenatedword{#1} \NC \NR \stoptabulate} \gdef\showmapping {\dostepwiserecurse{128}{255}{1} {\hbox\bgroup \hbox to 2em{\hss\recurselevel}% \hbox to 2em{\hss\char\recurselevel\hss}% \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \lccode\recurselevel\fi}% \hbox to 2em{\hss\ifcase\lccode\recurselevel\else\char\lccode\recurselevel\fi\hss}% \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \uccode\recurselevel\fi}% \hbox to 2em{\hss\ifcase\uccode\recurselevel\else\char\uccode\recurselevel\fi\hss}% \egroup \endgraf}} \gdef\showcharacterbounds {\bgroup \localcolortrue \dorecurse{255} {\ifdim\fontcharwd\font\recurselevel>\zeropoint \noindent\ruledhbox{\darkgray\char\recurselevel}\space \fi}\unskip \egroup} \else \gdef\showhyphenations#1% {\starttabulate[|le|l|] \NC language \NC \currentlanguage\ (internal code:\the\normallanguage) \NC \NR \NC font \NC \fontname\font \NC \NR \NC sample \NC \hyphenatedword{#1} \NC \NR \stoptabulate} \globallet\showmapping\relax \globallet\showcharacterbounds\relax \fi \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/verb-c.mkii0000644000175000017500000003206414536300610024336 0ustar hillehille%D \module %D [ file=verb-c, %D version=2006.04.17, %D title=\CONTEXT\ Verbatim Macros, %D subtitle=Pretty C Verbatim, %D author=Nikolai Weibull, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Verbatim Macros / Pretty C Verbatim} % HH: % % - extra !!pretty definitions moved to verb-ini % - added a c! % - did a few small cosmetic things \unprotect \doglobal\newif\ifinCsingle \doglobal\newif\ifinCdouble \doglobal\newif\ifinCcomment \doglobal\newif\ifinCsinglelinecomment \doglobal\newif\ifinCmultilinecomment \doglobal\newif\ifcontinueCsinglelinecomment \gdef\Csetcontrols {\saveprettycontrols \def\obeyedspace {\endCtypesix \oldobeyedspace}% \def\flushrestofverbatimline {\endCtypesix \ifinCsinglelinecomment \ifcontinueCsinglelinecomment \continueCsinglelinecommentfalse \else \tttf \endofpretty \global\inCsinglelinecommentfalse \global\inCcommentfalse \fi \fi}% \def\obeyedline {\oldobeyedline}% \let\obeytabs\ignoretabs} \gdef\setupprettyCtype {\def\prettyidentifier{C}% \Csetvariables \Csetcontrols \Csethandlers \Csetspecials \Csetdiagnostics} \gdef\Csetvariables {\global\inCsinglefalse \global\inCdoublefalse \global\inCcommentfalse \global\continueCsinglelinecommentfalse \global\naturaltextexttrue \global\let\Csequence\empty \global\let\Cprefix\empty} % TODO: should handle -> as well \gdef\Csetspecials {\setpretty`\{=10 \setpretty`\}=10 \setpretty`\$=20 \setpretty`\@=20 \setpretty`\[=30 \setpretty`\]=30 \setpretty`\(=30 \setpretty`\)=30 \setpretty`\==30 \setpretty`\~=30 \setpretty`\<=30 \setpretty`\>=30 \setpretty`\%=30 \setpretty`\-=41 \setpretty`\+=41 \setpretty`\|=41 \setpretty`\`=41 \setpretty`\!=41 \setpretty`\?=41 \setpretty`\^=41 \setpretty`\&=41 \setpretty`\/=43 \setpretty`\*=44 \setpretty`\#=45 \setpretty`\\=50 \setpretty`\1=61 \setpretty`\2=61 \setpretty`\3=61 \setpretty`\4=61 \setpretty`\5=61 \setpretty`\6=61 \setpretty`\7=61 \setpretty`\8=61 \setpretty`\9=61 \setpretty`\0=61 \setpretty`\A=62 \setpretty`\B=62 \setpretty`\C=62 \setpretty`\D=62 \setpretty`\E=62 \setpretty`\F=62 \setpretty`\G=62 \setpretty`\H=62 \setpretty`\I=62 \setpretty`\J=62 \setpretty`\K=62 \setpretty`\L=62 \setpretty`\M=62 \setpretty`\N=62 \setpretty`\O=62 \setpretty`\P=62 \setpretty`\Q=62 \setpretty`\R=62 \setpretty`\S=62 \setpretty`\T=62 \setpretty`\U=62 \setpretty`\V=62 \setpretty`\W=62 \setpretty`\X=62 \setpretty`\Y=62 \setpretty`\Z=62 \setpretty`\a=62 \setpretty`\b=62 \setpretty`\c=62 \setpretty`\d=62 \setpretty`\e=62 \setpretty`\f=62 \setpretty`\g=62 \setpretty`\h=62 \setpretty`\i=62 \setpretty`\j=62 \setpretty`\k=62 \setpretty`\l=62 \setpretty`\m=62 \setpretty`\n=62 \setpretty`\o=62 \setpretty`\p=62 \setpretty`\q=62 \setpretty`\r=62 \setpretty`\s=62 \setpretty`\t=62 \setpretty`\u=62 \setpretty`\v=62 \setpretty`\w=62 \setpretty`\x=62 \setpretty`\y=62 \setpretty`\z=62 \setpretty`\_=62 \setpretty`\;=70 \setpretty`\:=70 \setpretty`\,=70 \setpretty`\.=70 \setpretty`\'=80 \setpretty`\"=90 } \gdef\Csethandlers {\installprettyhandler 10 \Ctypeone \installprettyhandler 20 \Ctypetwo \installprettyhandler 30 \Ctypethree \installprettyhandler 41 \Ctypefourone \installprettyhandler 43 \Ctypefourthree \installprettyhandler 44 \Ctypefourfour \installprettyhandler 45 \Ctypefourfive \installprettyhandler 50 \Ctypefive \installprettyhandler 61 \Ctypesixone \installprettyhandler 62 \Ctypesixtwo \installprettyhandler 70 \Ctypeseven \installprettyhandler 80 \Ctypeeight \installprettyhandler 90 \Ctypenine} \gdef\Ctypeone#1% {\ifinCdouble \ifinCcomment \endCtypesix \getpretty{#1}% \else\ifx\Cprefix\empty \endCtypesix \getpretty{#1}% \else \endCtypesix \xdef\Cprefix{\getpretty{#1}}% \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty \fi\fi \else \endCtypesix \ifinCcomment \getpretty{#1}% \else\ifinCsingle \getpretty{#1}% \else \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty \fi\fi \fi} \gdef\Ctypetwo#1% {\endCtypesix \getpretty{#1}} \gdef\Ctypethree#1% {\endCtypesix \ifinCcomment \getpretty{#1}% \else\ifinCsingle \getpretty{#1}% \else\ifinCdouble \getprettydata{#1}% \ifx\Cprefix\empty \getpretty{#1}% \else \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty \fi \else \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty \fi\fi\fi} \gdef\Ctypefourone#1% {\endCtypesix \ifinCcomment \getpretty{#1}% \else\ifinCsingle \getpretty{#1}% \else\ifinCdouble \getpretty{#1}% \else \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \fi\fi\fi} \gdef\doCtypefourtwo#1#2% {\getprettydata{#2}% \ifnum\prettytype=62 \expandafter\Ctypetwo \else \expandafter\Ctypefourone \fi {#1}#2} \gdef\Ctypefourtwo {\handlenextnextpretty\doCtypefourtwo\Ctypefourone} \gdef\Ctypefourthree {\handlenextnextpretty\doCtypefourthree\Ctypefourtwo} \gdef\doCtypefourthree#1#2% {\getprettydata{#2}% \ifnum\prettytype=43 \let\next\dodoCtypefourthree \else\ifnum\prettytype=44 \global\inCcommenttrue \global\inCmultilinecommenttrue \let\next\Cstartcomment \else \let\next\Ctypefourtwo \fi\fi \next{#1}#2} \gdef\Cstartcomment#1#2% {\beginofpretty[\!!prettyfourthree]\ttsl\getpretties{#1}{#2}} \gdef\dodoCtypefourthree% #1% {\endCtypesix \handlenextnextpretty\dododoCtypefourthree\dodododoCtypefourthree} \gdef\dododoCtypefourthree {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoCtypefourthree} \gdef\dodododoCtypefourthree#1#2% {\ifinCcomment \getpretties{#1}{#2}% \else \global\inCcommenttrue \global\inCsinglelinecommenttrue \def\next{\beginofpretty[\!!prettyfourthree]\ttsl\getpretties{#1}{#2}}% \expandafter\next \fi} \gdef\Ctypefourfour {\handlenextnextpretty\doCtypefourfour\Ctypefourtwo} \gdef\doCtypefourfour#1#2% {\getprettydata{#2}% \ifnum\prettytype=44 % \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \ifinCcomment \getpretty{#1}% \else \endCtypesix \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \fi \expandafter#2% \else\ifnum\prettytype=43 \getpretties{#1}{#2}% \tttf \endofpretty \global\inCcommentfalse \global\inCmultilinecommentfalse \else\ifinCcomment \getpretty{#1}% \expandafter#2% \else\ifinCsingle \getpretty{#1}% \expandafter#2% \else\ifinCdouble \getpretty{#1}% \expandafter#2% \else \endCtypesix \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \expandafter#2% \fi\fi\fi\fi\fi} \gdef\Ctypefourfive#1% {\ifinCcomment \getpretty{#1}% \else\ifinCsingle \getpretty{#1}% \else\ifinCdouble \getpretty{#1}% \else \endCtypesix \global\inCcommenttrue \global\inCsinglelinecommenttrue \def\next{\beginofpretty[\!!prettyfourthree]\ttsl\getpretty{#1}}% \expandafter\next \fi\fi\fi} \gdef\doCtypefiveA#1#2% {\endCtypesix \ifinCcomment \getpretties{#1}{#2}% \else\ifinCsingle \getprettydata{#2}% \ifnum\prettytype=50 \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty\beginofpretty[\!!prettyeight]% \else\ifnum\prettytype=80 \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty\beginofpretty[\!!prettyeight]% \else \getpretties{#1}{#2}% \fi\fi \else\ifinCdouble \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty\beginofpretty[\!!prettynine]% \else \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty \fi\fi\fi} \gdef\doCtypefiveB#1% {\endCtypesix \ifinCcomment \ifcat#1\relax \continueCsinglelinecommenttrue \getpretty{#1}% \else \getpretty{#1}% \fi \else\ifinCsingle \getpretty{#1}% \else\ifinCdouble \beginofpretty[\!!prettyfive]\getpretty{#1}\endofpretty\beginofpretty[\!!prettynine]% \else \beginofpretty[\!!prettyfive]\getpretty{#1}\endofpretty \fi\fi\fi} \gdef\Ctypefive {\expandafter\handlenextnextpretty\expandafter\doCtypefiveA\expandafter\doCtypefiveB} \gdef\endCtypesix {\ifx\Csequence\empty\else \ifinCcomment \Csequence \else\ifinCsingle \Csequence \else\ifinCdouble \Csequence \else\ifx\Cprefix\empty \doendCtypesix\!!prettytwo \else \doendCtypesixtype\!!prettytwo \fi\fi\fi\fi \global\let\Csequence\empty \global\let\Cprefix\empty \fi} \gdef\doendCtypesix#1% {\doifprettyidentifierelse{\Csequence}{\Ckeywords} {\beginofpretty[#1]% {\prettyidentifierfont\Csequence}% \endofpretty} {\doifprettyidentifierelse{\Csequence}{\Ctypes} {\beginofpretty[\!!prettytwoone]% {\prettyvariablefont\Csequence}% \endofpretty} {\Csequence}}} \gdef\doendCtypesixtype#1% {\doifprettyidentifierelse{\Cprefix\Csequence}{\Ctypes} {\beginofpretty[#1]% {\prettyvariablefont\Csequence}% \endofpretty} {\Csequence}} \gdef\Ctypesixone#1% {\ifinCcomment \def\next{\getpretty{#1}}% \else\ifinCsingle \def\next{\getpretty{#1}}% \else\ifinCdouble \def\next{\getpretty{#1}}% \else\ifx\Csequence\empty \def\next{\beginofpretty[\!!prettyeight]\getpretty{#1}\endofpretty}% \else \def\next{\Ctypesixtwo{#1}}% \fi\fi\fi\fi \expandafter\next} \gdef\Ctypesixtwo#1% {\ifinCcomment \getpretty{#1}% \else\ifinCsingle \getpretty{#1}% \else\ifinCdouble \ifx\Cprefix\empty \getpretty{#1}% \else \xdef\Csequence{\Csequence\getpretty{#1}}% \fi \else \xdef\Csequence{\Csequence\getpretty{#1}}% \fi\fi\fi} \gdef\Ctypeseven#1% {\endCtypesix \getpretty{#1}} \gdef\Ctypeeight#1% single quote {\endCtypesix \ifinCcomment \getpretty{#1}% \else\ifinCdouble \getpretty{#1}% \else\ifinCsingle \global\inCsinglefalse \getpretty{#1}% \endofpretty \else \global\inCsingletrue \beginofpretty[\!!prettyeight]\getpretty{#1} \fi\fi\fi} \gdef\Ctypenine#1% double quote {\endCtypesix \ifinCcomment \getpretty{#1}% \else\ifinCsingle \getpretty{#1}% \else\ifinCdouble \global\inCdoublefalse \getpretty{#1}% \endofpretty \else \global\inCdoubletrue \beginofpretty[\!!prettynine]\getpretty{#1} \fi\fi\fi} \gdef\doreportprettyCtype#1#2#3#4% {#1% [C \string#2 typing conflict, use \string#3 instead] \writestatus {C typing} {use \string#3 instead of \string#2 to enable propper visualization}% \global#4% \expandafter\doemptyverbatimline \fi} \gdef\reportprettyCtype {\doreportprettyCtype\ifinCsingle'\'\inCsinglefalse \doreportprettyCtype\ifinCdouble"\"\inCdoublefalse} \gdef\Csetdiagnostics {\let\normaldoemptyverbatimline\doemptyverbatimline \def\doemptyverbatimline {\normaldoemptyverbatimline \reportprettyCtype}} \useprettyidentifiers \Ckeywords \Csetspecials break case continue default do else for goto if return sizeof switch while \useprettyidentifiers \Ctypes \Csetspecials auto char const double enum extern float int long register restrict short signed static struct typedef union unsigned void volatile bool \installprettytype [C] [C] \definetyping[C][\c!option=C] \definecolor [colorprettyone] [black] \definecolor [colorprettytwo] [r=.46, g=.38, b=.13] \definecolor [colorprettytwoone] [r=.38, g=.18, b=.5] \definecolor [colorprettythree] [black] \definecolor [colorprettyfour] [black] \definecolor [colorprettyfourthree] [r=.15, g=.45, r=.15] \definecolor [colorprettyfive] [r=.94, g=.15, b=.15] \definecolor [colorprettyeight] [r=.58, g=.09, b=.09] \definecolor [colorprettynine] [r=.58, g=.09, b=.09] \definecolor [grayprettyone] [s=.30] \definecolor [grayprettytwo] [s=.45] \definecolor [grayprettythree] [s=.60] \definecolor [grayprettyfour] [s=.75] \definecolor [grayprettyfourthree] [s=.70] \definepalet [colorpretty] [ prettyone=colorprettyone, prettytwo=colorprettytwo, prettytwoone=colorprettytwoone, prettythree=colorprettythree, prettyfour=colorprettyfour, prettyfourthree=colorprettyfourthree, prettyfive=colorprettyfive, prettyeight=colorprettyeight, prettynine=colorprettynine] \definepalet [graypretty] [ prettyone=grayprettyone, prettytwo=grayprettytwo, prettythree=grayprettythree, prettyfour=grayprettyfour, prettyfourthree=grayprettyfourthree] \definepalet [Ccolorpretty] [colorpretty] \definepalet [Cgraypretty] [graypretty] \setuptyping [C] [\c!icommand=\tttf] \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/regi-8859-5.mkii0000644000175000017500000002574514536300610024673 0ustar hillehille%D \module %D [ file=regi-8859-5, %D version=2005.12.26, %D title=\CONTEXT\ Encoding Macros, %D subtitle=iso-8859-5 (Cyrillic), %D author=script-generated, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D Support for iso-8859-5 input encoding (regime) for Cyrillic, %D see also regi-cyr and regi-cyp. %D %D Usage: \type{\enableregime[8859-5]} (see \type {regi-syn} for %D alternatives calls). \startregime[8859-5] \defineactivetoken 128 {\unknownchar} % 0080 \defineactivetoken 129 {\unknownchar} % 0081 \defineactivetoken 130 {\unknownchar} % 0082 \defineactivetoken 131 {\unknownchar} % 0083 \defineactivetoken 132 {\unknownchar} % 0084 \defineactivetoken 133 {\unknownchar} % 0085 \defineactivetoken 134 {\unknownchar} % 0086 \defineactivetoken 135 {\unknownchar} % 0087 \defineactivetoken 136 {\unknownchar} % 0088 \defineactivetoken 137 {\unknownchar} % 0089 \defineactivetoken 138 {\unknownchar} % 008A \defineactivetoken 139 {\unknownchar} % 008B \defineactivetoken 140 {\unknownchar} % 008C \defineactivetoken 141 {\unknownchar} % 008D \defineactivetoken 142 {\unknownchar} % 008E \defineactivetoken 143 {\unknownchar} % 008F \defineactivetoken 144 {\unknownchar} % 0090 \defineactivetoken 145 {\unknownchar} % 0091 \defineactivetoken 146 {\unknownchar} % 0092 \defineactivetoken 147 {\unknownchar} % 0093 \defineactivetoken 148 {\unknownchar} % 0094 \defineactivetoken 149 {\unknownchar} % 0095 \defineactivetoken 150 {\unknownchar} % 0096 \defineactivetoken 151 {\unknownchar} % 0097 \defineactivetoken 152 {\unknownchar} % 0098 \defineactivetoken 153 {\unknownchar} % 0099 \defineactivetoken 154 {\unknownchar} % 009A \defineactivetoken 155 {\unknownchar} % 009B \defineactivetoken 156 {\unknownchar} % 009C \defineactivetoken 157 {\unknownchar} % 009D \defineactivetoken 158 {\unknownchar} % 009E \defineactivetoken 159 {\unknownchar} % 009F \defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE \defineactivetoken 161 {\cyrillicYO} % 0401 CYRILLIC CAPITAL LETTER IO \defineactivetoken 162 {\cyrillicDJE} % 0402 CYRILLIC CAPITAL LETTER DJE \defineactivetoken 163 {\cyrillicGJE} % 0403 CYRILLIC CAPITAL LETTER GJE \defineactivetoken 164 {\cyrillicIE} % 0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE \defineactivetoken 165 {\cyrillicDZE} % 0405 CYRILLIC CAPITAL LETTER DZE \defineactivetoken 166 {\cyrillicII} % 0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I \defineactivetoken 167 {\cyrillicYI} % 0407 CYRILLIC CAPITAL LETTER YI \defineactivetoken 168 {\cyrillicJE} % 0408 CYRILLIC CAPITAL LETTER JE \defineactivetoken 169 {\cyrillicLJE} % 0409 CYRILLIC CAPITAL LETTER LJE \defineactivetoken 170 {\cyrillicNJE} % 040A CYRILLIC CAPITAL LETTER NJE \defineactivetoken 171 {\cyrillicTSHE} % 040B CYRILLIC CAPITAL LETTER TSHE \defineactivetoken 172 {\cyrillicKJE} % 040C CYRILLIC CAPITAL LETTER KJE \defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN \defineactivetoken 174 {\cyrillicUSHRT} % 040E CYRILLIC CAPITAL LETTER SHORT U \defineactivetoken 175 {\cyrillicDZHE} % 040F CYRILLIC CAPITAL LETTER DZHE \defineactivetoken 176 {\cyrillicA} % 0410 CYRILLIC CAPITAL LETTER A \defineactivetoken 177 {\cyrillicB} % 0411 CYRILLIC CAPITAL LETTER BE \defineactivetoken 178 {\cyrillicV} % 0412 CYRILLIC CAPITAL LETTER VE \defineactivetoken 179 {\cyrillicG} % 0413 CYRILLIC CAPITAL LETTER GHE \defineactivetoken 180 {\cyrillicD} % 0414 CYRILLIC CAPITAL LETTER DE \defineactivetoken 181 {\cyrillicE} % 0415 CYRILLIC CAPITAL LETTER IE \defineactivetoken 182 {\cyrillicZH} % 0416 CYRILLIC CAPITAL LETTER ZHE \defineactivetoken 183 {\cyrillicZ} % 0417 CYRILLIC CAPITAL LETTER ZE \defineactivetoken 184 {\cyrillicI} % 0418 CYRILLIC CAPITAL LETTER I \defineactivetoken 185 {\cyrillicISHRT} % 0419 CYRILLIC CAPITAL LETTER SHORT I \defineactivetoken 186 {\cyrillicK} % 041A CYRILLIC CAPITAL LETTER KA \defineactivetoken 187 {\cyrillicL} % 041B CYRILLIC CAPITAL LETTER EL \defineactivetoken 188 {\cyrillicM} % 041C CYRILLIC CAPITAL LETTER EM \defineactivetoken 189 {\cyrillicN} % 041D CYRILLIC CAPITAL LETTER EN \defineactivetoken 190 {\cyrillicO} % 041E CYRILLIC CAPITAL LETTER O \defineactivetoken 191 {\cyrillicP} % 041F CYRILLIC CAPITAL LETTER PE \defineactivetoken 192 {\cyrillicR} % 0420 CYRILLIC CAPITAL LETTER ER \defineactivetoken 193 {\cyrillicS} % 0421 CYRILLIC CAPITAL LETTER ES \defineactivetoken 194 {\cyrillicT} % 0422 CYRILLIC CAPITAL LETTER TE \defineactivetoken 195 {\cyrillicU} % 0423 CYRILLIC CAPITAL LETTER U \defineactivetoken 196 {\cyrillicF} % 0424 CYRILLIC CAPITAL LETTER EF \defineactivetoken 197 {\cyrillicH} % 0425 CYRILLIC CAPITAL LETTER HA \defineactivetoken 198 {\cyrillicC} % 0426 CYRILLIC CAPITAL LETTER TSE \defineactivetoken 199 {\cyrillicCH} % 0427 CYRILLIC CAPITAL LETTER CHE \defineactivetoken 200 {\cyrillicSH} % 0428 CYRILLIC CAPITAL LETTER SHA \defineactivetoken 201 {\cyrillicSHCH} % 0429 CYRILLIC CAPITAL LETTER SHCHA \defineactivetoken 202 {\cyrillicHRDSN} % 042A CYRILLIC CAPITAL LETTER HARD SIGN \defineactivetoken 203 {\cyrillicERY} % 042B CYRILLIC CAPITAL LETTER YERU \defineactivetoken 204 {\cyrillicSFTSN} % 042C CYRILLIC CAPITAL LETTER SOFT SIGN \defineactivetoken 205 {\cyrillicEREV} % 042D CYRILLIC CAPITAL LETTER E \defineactivetoken 206 {\cyrillicYU} % 042E CYRILLIC CAPITAL LETTER YU \defineactivetoken 207 {\cyrillicYA} % 042F CYRILLIC CAPITAL LETTER YA \defineactivetoken 208 {\cyrillica} % 0430 CYRILLIC SMALL LETTER A \defineactivetoken 209 {\cyrillicb} % 0431 CYRILLIC SMALL LETTER BE \defineactivetoken 210 {\cyrillicv} % 0432 CYRILLIC SMALL LETTER VE \defineactivetoken 211 {\cyrillicg} % 0433 CYRILLIC SMALL LETTER GHE \defineactivetoken 212 {\cyrillicd} % 0434 CYRILLIC SMALL LETTER DE \defineactivetoken 213 {\cyrillice} % 0435 CYRILLIC SMALL LETTER IE \defineactivetoken 214 {\cyrilliczh} % 0436 CYRILLIC SMALL LETTER ZHE \defineactivetoken 215 {\cyrillicz} % 0437 CYRILLIC SMALL LETTER ZE \defineactivetoken 216 {\cyrillici} % 0438 CYRILLIC SMALL LETTER I \defineactivetoken 217 {\cyrillicishrt} % 0439 CYRILLIC SMALL LETTER SHORT I \defineactivetoken 218 {\cyrillick} % 043A CYRILLIC SMALL LETTER KA \defineactivetoken 219 {\cyrillicl} % 043B CYRILLIC SMALL LETTER EL \defineactivetoken 220 {\cyrillicm} % 043C CYRILLIC SMALL LETTER EM \defineactivetoken 221 {\cyrillicn} % 043D CYRILLIC SMALL LETTER EN \defineactivetoken 222 {\cyrillico} % 043E CYRILLIC SMALL LETTER O \defineactivetoken 223 {\cyrillicp} % 043F CYRILLIC SMALL LETTER PE \defineactivetoken 224 {\cyrillicr} % 0440 CYRILLIC SMALL LETTER ER \defineactivetoken 225 {\cyrillics} % 0441 CYRILLIC SMALL LETTER ES \defineactivetoken 226 {\cyrillict} % 0442 CYRILLIC SMALL LETTER TE \defineactivetoken 227 {\cyrillicu} % 0443 CYRILLIC SMALL LETTER U \defineactivetoken 228 {\cyrillicf} % 0444 CYRILLIC SMALL LETTER EF \defineactivetoken 229 {\cyrillich} % 0445 CYRILLIC SMALL LETTER HA \defineactivetoken 230 {\cyrillicc} % 0446 CYRILLIC SMALL LETTER TSE \defineactivetoken 231 {\cyrillicch} % 0447 CYRILLIC SMALL LETTER CHE \defineactivetoken 232 {\cyrillicsh} % 0448 CYRILLIC SMALL LETTER SHA \defineactivetoken 233 {\cyrillicshch} % 0449 CYRILLIC SMALL LETTER SHCHA \defineactivetoken 234 {\cyrillichrdsn} % 044A CYRILLIC SMALL LETTER HARD SIGN \defineactivetoken 235 {\cyrillicery} % 044B CYRILLIC SMALL LETTER YERU \defineactivetoken 236 {\cyrillicsftsn} % 044C CYRILLIC SMALL LETTER SOFT SIGN \defineactivetoken 237 {\cyrillicerev} % 044D CYRILLIC SMALL LETTER E \defineactivetoken 238 {\cyrillicyu} % 044E CYRILLIC SMALL LETTER YU \defineactivetoken 239 {\cyrillicya} % 044F CYRILLIC SMALL LETTER YA \defineactivetoken 240 {\textnumero} % 2116 NUMERO SIGN \defineactivetoken 241 {\cyrillicyo} % 0451 CYRILLIC SMALL LETTER IO \defineactivetoken 242 {\cyrillicdje} % 0452 CYRILLIC SMALL LETTER DJE \defineactivetoken 243 {\cyrillicgje} % 0453 CYRILLIC SMALL LETTER GJE \defineactivetoken 244 {\cyrillicie} % 0454 CYRILLIC SMALL LETTER UKRAINIAN IE \defineactivetoken 245 {\cyrillicdze} % 0455 CYRILLIC SMALL LETTER DZE \defineactivetoken 246 {\cyrillicii} % 0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I \defineactivetoken 247 {\cyrillicyi} % 0457 CYRILLIC SMALL LETTER YI \defineactivetoken 248 {\cyrillicje} % 0458 CYRILLIC SMALL LETTER JE \defineactivetoken 249 {\cyrilliclje} % 0459 CYRILLIC SMALL LETTER LJE \defineactivetoken 250 {\cyrillicnje} % 045A CYRILLIC SMALL LETTER NJE \defineactivetoken 251 {\cyrillictshe} % 045B CYRILLIC SMALL LETTER TSHE \defineactivetoken 252 {\cyrillickje} % 045C CYRILLIC SMALL LETTER KJE \defineactivetoken 253 {\sectionmark} % 00A7 SECTION SIGN \defineactivetoken 254 {\cyrillicushrt} % 045E CYRILLIC SMALL LETTER SHORT U \defineactivetoken 255 {\cyrillicdzhe} % 045F CYRILLIC SMALL LETTER DZHE \stopregime context-modules-20240428/texmf-dist/tex/context/base/mkii/lang-jap.mkii0000644000175000017500000003466514536300610024662 0ustar hillehille%D \module %D [ file=lang-jap, %D version=2006.01.13, %D title=\CONTEXT\ Language Macros, %D subtitle=Japanese, %D author={Richard Gabriel}, %D date=\currentdate, %D copyright={Richard Gabriel \& Hans Hagen}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % rgabriel@kerio.com \writestatus{loading}{ConTeXt Language Macros / Japanese} \unprotect \definesystemconstant {japanese} \definesystemconstant {ja} \installlanguage [\s!ja] [\c!leftsentence=\jaencoding\jaleftsentence, \c!rightsentence=\jaencoding\jarightsentence, \c!leftsubsentence=\jaencoding\jaleftsubsentence, \c!rightsubsentence=\jaencoding\jarightsubsentence, \c!leftquote=\jaencoding\jaencodedsinglestartquote, \c!rightquote=\jaencoding\jaencodedsingleendquote, \c!leftquotation=\jaencoding\jaencodedstartquote, \c!rightquotation=\jaencoding\jaencodedendquote, \c!date={\jaencodedchristiandate,\v!year,\jaencodedyear,\v!month,\jaencodedmonth,\v!day,\jaencodedday}] \setupheadtext [\s!ja] [\v!content={\jaencoding\jaencodedtableofcontents}] \setupheadtext [\s!ja] [\v!tables={\jaencoding\jaencodedtables}] \setupheadtext [\s!ja] [\v!figures={\jaencoding\jaencodedfigures}] \setupheadtext [\s!ja] [\v!graphics={\jaencoding\jaencodedgraphics}] \setupheadtext [\s!ja] [\v!intermezzi={\jaencoding\jaencodedintermezzos}] \setupheadtext [\s!ja] [\v!index={\jaencoding\jaencodedindex}] \setupheadtext [\s!ja] [\v!abbreviations={\jaencoding\jaencodedabbreviations}] \setupheadtext [\s!ja] [\v!logos={\jaencoding\jaencodedlogos}] \setupheadtext [\s!ja] [\v!units={\jaencoding\jaencodedunits}] \setuplabeltext [\s!ja] [\v!table={\jaencoding\jaencodedtable}] \setuplabeltext [\s!ja] [\v!figure={\jaencoding\jaencodedfigure}] \setuplabeltext [\s!ja] [\v!intermezzo={\jaencoding\jaencodedintermezzo}] \setuplabeltext [\s!ja] [\v!graphic={\jaencoding\jaencodedillustration}] \setuplabeltext [\s!ja] [\v!appendix={\jaencoding\jaencodedappendix}] \setuplabeltext [\s!ja] [\v!part={\jaencoding\jaencodedintro,\jaencoding\jaencodedpart}] \setuplabeltext [\s!ja] [\v!chapter={\jaencoding\jaencodedintro,\jaencoding\jaencodedchapter}] \setuplabeltext [\s!ja] [\v!section={\jaencoding\jaencodedintro,\jaencoding\jaencodedsection}] \setuplabeltext [\s!ja] [\v!line={\jaencoding\jaencodedline}] \setuplabeltext [\s!ja] [\v!lines={\jaencoding\jaencodedline}] \setuplabeltext [\s!ja] [\v!subsection=] \setuplabeltext [\s!ja] [\v!subsubsection=] \setuplabeltext [\s!ja] [\v!subsubsubsection=] %D Why are these languagespecifics ? \setuplabeltext [\s!ja] [\v!january=1] \setuplabeltext [\s!ja] [\v!february=2] \setuplabeltext [\s!ja] [\v!march=3] \setuplabeltext [\s!ja] [\v!april=4] \setuplabeltext [\s!ja] [\v!may=5] \setuplabeltext [\s!ja] [\v!june=6] \setuplabeltext [\s!ja] [\v!july=7] \setuplabeltext [\s!ja] [\v!august=8] \setuplabeltext [\s!ja] [\v!september=9] \setuplabeltext [\s!ja] [\v!october=10] \setuplabeltext [\s!ja] [\v!november=11] \setuplabeltext [\s!ja] [\v!december=12] \setuplabeltext [\s!ja] [\v!sunday=\jaencoding\jaencodedsunday ] \setuplabeltext [\s!ja] [\v!monday=\jaencoding\jaencodedmonday ] \setuplabeltext [\s!ja] [\v!tuesday=\jaencoding\jaencodedtuesday ] \setuplabeltext [\s!ja] [\v!wednesday=\jaencoding\jaencodedwednesday] \setuplabeltext [\s!ja] [\v!thursday=\jaencoding\jaencodedthursday ] \setuplabeltext [\s!ja] [\v!friday=\jaencoding\jaencodedfriday ] \setuplabeltext [\s!ja] [\v!saturday=\jaencoding\jaencodedsaturday ] % Hardcoded - \japaneseencoding should be defined similarly to \chineseencoding \unexpanded\def\jaencoding{\enableencoding[cjk-uni]} %D This list is taken from DocBook XSL stylesheets (http://docbook.sourceforge.net/). \startencoding[cjk-uni] \definecommand jaencodedabstract {\uchar{105}{130}\uchar{137}{129}} \definecommand jaencodedand {\uchar{48}{1}} \definecommand jaencodedanswer {\uchar{123}{84}\uchar{255}{26}} \definecommand jaencodedappendix {\uchar{78}{216}\uchar{147}{50}} \definecommand jaencodedarticle {\uchar{152}{5}\uchar{118}{238}} \definecommand jaencodedbibliography {\uchar{83}{194}\uchar{128}{3}\uchar{101}{135}\uchar{115}{46}} \definecommand jaencodedbook {\uchar{48}{214}\uchar{48}{195}\uchar{48}{175}} \definecommand jaencodedbridgehead {\uchar{152}{5}} \definecommand jaencodedbullet {\uchar{37}{207}} \definecommand jaencodedby {\uchar{255}{26}} \definecommand jaencodedcaution {\uchar{108}{232}\uchar{97}{15}} \definecommand jaencodedcolophon {\uchar{89}{101}\uchar{78}{216}} \definecommand jaencodedcopyright {\uchar{136}{253}\uchar{79}{92}\uchar{132}{87}\uchar{79}{92}} \definecommand jaencodeddedication {\uchar{139}{29}\uchar{143}{158}} \definecommand jaencodededited {\uchar{125}{232}\uchar{128}{5}} \definecommand jaencodededitedby {\uchar{125}{232}\uchar{128}{5}\uchar{255}{26}} \definecommand jaencodededition {\uchar{125}{232}\uchar{150}{198}} \definecommand jaencodedendquote {\uchar{48}{13}} \definecommand jaencodedequation {\uchar{95}{15}} \definecommand jaencodedexample {\uchar{79}{139}} \definecommand jaencodedfigure {\uchar{86}{243}} \definecommand jaencodedglossary {\uchar{117}{40}\uchar{138}{158}\uchar{150}{198}} \definecommand jaencodedglosssee {\uchar{83}{194}\uchar{113}{103}} \definecommand jaencodedglossseealso {\uchar{83}{194}\uchar{113}{103}} \definecommand jaencodedchapter {\uchar{122}{224}} \definecommand jaencodedimportant {\uchar{145}{205}\uchar{137}{129}\uchar{152}{5}\uchar{118}{238}} \definecommand jaencodedindex {\uchar{118}{238}\uchar{107}{33}} \definecommand jaencodedindexsymbols {\uchar{48}{183}\uchar{48}{243}\uchar{48}{220}\uchar{48}{235}} \definecommand jaencodedintro {\uchar{123}{44}} \definecommand jaencodedlistofequations {\uchar{95}{15}\uchar{118}{238}\uchar{107}{33}} \definecommand jaencodedlistofexamples {\uchar{79}{139}\uchar{118}{238}\uchar{107}{33}} \definecommand jaencodedlistoffigures {\uchar{86}{243}\uchar{118}{238}\uchar{107}{33}} \definecommand jaencodedlistoftables {\uchar{136}{104}\uchar{118}{238}\uchar{107}{33}} \definecommand jaencodedlistofunknown {\uchar{78}{13}\uchar{102}{14}\uchar{118}{238}\uchar{107}{33}} \definecommand jaencodedmsgaud {\uchar{91}{254}\uchar{140}{97}\uchar{128}{5}} \definecommand jaencodedmsglevel {\uchar{48}{236}\uchar{48}{217}\uchar{48}{235}} \definecommand jaencodedmsgorig {\uchar{118}{122}\uchar{79}{225}\uchar{81}{67}} \definecommand jaencodednavhome {\uchar{48}{219}\uchar{48}{252}\uchar{48}{224}} \definecommand jaencodednavnext {\uchar{107}{33}\uchar{48}{110}\uchar{48}{218}\uchar{48}{252}\uchar{48}{184}} \definecommand jaencodednavnextsibling {\uchar{101}{233}\uchar{144}{1}\uchar{48}{138}} \definecommand jaencodednavprev {\uchar{82}{77}\uchar{48}{110}\uchar{48}{218}\uchar{48}{252}\uchar{48}{184}} \definecommand jaencodednavprevsibling {\uchar{93}{251}\uchar{98}{59}\uchar{48}{87}} \definecommand jaencodednavup {\uchar{78}{10}\uchar{48}{107}\uchar{98}{59}\uchar{48}{139}} \definecommand jaencodednestedendquote {\uchar{48}{15}} \definecommand jaencodednestedstartquote {\uchar{48}{14}} \definecommand jaencodednonexistantelement {\uchar{137}{129}\uchar{125}{32}\uchar{48}{76}\uchar{91}{88}\uchar{87}{40}\uchar{48}{87}\uchar{48}{126}\uchar{48}{91}\uchar{48}{147}} \definecommand jaencodednote {\uchar{108}{232}\uchar{97}{15}} \definecommand jaencodednotes {\uchar{108}{232}\uchar{97}{15}} \definecommand jaencodedpages {\uchar{80}{103}\uchar{115}{46}} \definecommand jaencodedpart {\uchar{48}{209}\uchar{48}{252}\uchar{48}{200}} \definecommand jaencodedpreface {\uchar{94}{143}\uchar{101}{135}} \definecommand jaencodedprocedure {\uchar{98}{75}\uchar{152}{6}} \definecommand jaencodedprocedureformal {\uchar{98}{75}\uchar{152}{6}} \definecommand jaencodedproductionset {\uchar{48}{215}\uchar{48}{237}\uchar{48}{192}\uchar{48}{175}\uchar{48}{183}\uchar{48}{231}\uchar{48}{243}} \definecommand jaencodedproductionsetformal {\uchar{48}{215}\uchar{48}{237}\uchar{48}{192}\uchar{48}{175}\uchar{48}{183}\uchar{48}{231}\uchar{48}{243}} \definecommand jaencodedpublished {\uchar{118}{122}\uchar{136}{76}} \definecommand jaencodedqandadiv {\uchar{85}{79}\uchar{255}{26}\uchar{48}{1}\uchar{123}{84}\uchar{255}{26}} \definecommand jaencodedqandaentry {\uchar{85}{79}\uchar{255}{26}} \definecommand jaencodedquestion {\uchar{85}{79}\uchar{255}{26}} \definecommand jaencodedreference {\uchar{83}{194}\uchar{113}{103}} \definecommand jaencodedrefname {\uchar{84}{13}\uchar{82}{77}} \definecommand jaencodedrefsection {\uchar{152}{5}} \definecommand jaencodedrefsynopsisdiv {\uchar{105}{130}\uchar{137}{129}} \definecommand jaencodedrevhistory {\uchar{101}{57}\uchar{138}{2}\uchar{92}{101}\uchar{107}{116}} \definecommand jaencodedrevision {\uchar{101}{57}\uchar{138}{2}} \definecommand jaencodedsection {\uchar{152}{5}} \definecommand jaencodedsee {\uchar{83}{194}\uchar{113}{103}} \definecommand jaencodedseealso {\uchar{83}{194}\uchar{113}{103}} \definecommand jaencodedseparator {\uchar{48}{1}} \definecommand jaencodedset {\uchar{138}{45}\uchar{91}{154}} \definecommand jaencodedsetindex {\uchar{118}{238}\uchar{107}{33}\uchar{138}{45}\uchar{91}{154}} \definecommand jaencodedsidebar {\uchar{48}{181}\uchar{48}{164}\uchar{48}{201}\uchar{48}{208}\uchar{48}{252}} \definecommand jaencodedsimplesect {\uchar{152}{5}} \definecommand jaencodedsingleendquote {\uchar{32}{25}} \definecommand jaencodedsinglestartquote {\uchar{32}{24}} \definecommand jaencodedstartquote {\uchar{48}{12}} \definecommand jaencodedstep {\uchar{48}{185}\uchar{48}{198}\uchar{48}{195}\uchar{48}{215}} \definecommand jaencodedtable {\uchar{136}{104}} \definecommand jaencodedtablenotes {\uchar{108}{232}\uchar{97}{15}} \definecommand jaencodedtableofcontents {\uchar{118}{238}\uchar{107}{33}} \definecommand jaencodedtip {\uchar{48}{198}\uchar{48}{163}\uchar{48}{195}\uchar{48}{215}} \definecommand jaencodedunexpectedelementname {\uchar{78}{13}\uchar{102}{14}\uchar{48}{106}\uchar{137}{129}\uchar{125}{32}\uchar{84}{13}} \definecommand jaencodedunsupported {\uchar{48}{181}\uchar{48}{221}\uchar{48}{252}\uchar{48}{200}\uchar{48}{87}\uchar{48}{126}\uchar{48}{91}\uchar{48}{147}} \definecommand jaencodedwarning {\uchar{139}{102}\uchar{84}{74}} \definecommand jaencodedyear {\uchar{94}{116}} \definecommand jaencodedmonth {\uchar{103}{8}} \definecommand jaencodedday {\uchar{101}{229}} \stopencoding %D Taken from Chinese (will be investigated yet...) \startencoding[cjk-uni] \definecommand jaencodedleftsentence {\uchar{32}{20}\uchar{32}{20}} \definecommand jaencodedrightsentence {\uchar{32}{20}\uchar{32}{20}} \definecommand jaencodedleftsubsentence {\uchar{32}{20}\uchar{32}{20}} \definecommand jaencodedrightsubsentence {\uchar{32}{20}\uchar{32}{20}} \stopencoding %D Special thanxx to Eizo Tsuchihashi (eizo@arcbrain.jp) for the following stuff \startencoding[cjk-uni] \definecommand jaencodedchristiandate {\uchar{137}{127}\uchar{102}{166}} \definecommand jaencodedtables {\uchar{103}{58}} \definecommand jaencodedfigures {\uchar{86}{243}} \definecommand jaencodedabbreviations {\uchar{117}{101}\uchar{138}{158}} \definecommand jaencodedlogos {\uchar{116}{6}\uchar{96}{39}} \definecommand jaencodedunits {\uchar{48}{230}\uchar{48}{203}\uchar{48}{195}\uchar{48}{196}} \definecommand jaencodedgraphics {\uchar{48}{176}\uchar{48}{233}\uchar{48}{213}} \definecommand jaencodedintermezzo {\uchar{149}{147}\uchar{89}{79}\uchar{102}{242}} \definecommand jaencodedintermezzos {\uchar{149}{147}\uchar{89}{79}\uchar{102}{242}} \definecommand jaencodedillustration {\uchar{48}{164}\uchar{48}{233}\uchar{48}{185}\uchar{48}{200}} \definecommand jaencodedline {\uchar{125}{218}} \definecommand jaencodedlines {\uchar{125}{218}} \definecommand jaencodedjanuary {\uchar{78}{0}\uchar{103}{8}} \definecommand jaencodedfebruary {\uchar{78}{140}\uchar{103}{8}} \definecommand jaencodedmarch {\uchar{78}{9}\uchar{103}{8}} \definecommand jaencodedapril {\uchar{86}{219}\uchar{103}{8}} \definecommand jaencodedmay {\uchar{78}{148}\uchar{103}{8}} \definecommand jaencodedjune {\uchar{81}{109}\uchar{103}{8}} \definecommand jaencodedjuly {\uchar{78}{3}\uchar{103}{8}} \definecommand jaencodedaugust {\uchar{81}{107}\uchar{103}{8}} \definecommand jaencodedseptember {\uchar{78}{93}\uchar{103}{8}} \definecommand jaencodedoctober {\uchar{83}{65}\uchar{103}{8}} \definecommand jaencodednovember {\uchar{83}{65}\uchar{78}{0}\uchar{103}{8}} \definecommand jaencodeddecember {\uchar{83}{65}\uchar{78}{140}\uchar{103}{8}} \definecommand jaencodedsunday {\uchar{103}{8}\uchar{102}{220}\uchar{101}{229}} \definecommand jaencodedmonday {\uchar{112}{107}\uchar{102}{220}\uchar{101}{229}} \definecommand jaencodedtuesday {\uchar{108}{52}\uchar{102}{220}\uchar{101}{229}} \definecommand jaencodedwednesday {\uchar{103}{40}\uchar{102}{220}\uchar{101}{229}} \definecommand jaencodedthursday {\uchar{145}{209}\uchar{102}{220}\uchar{101}{229}} \definecommand jaencodedfriday {\uchar{87}{31}\uchar{102}{220}\uchar{101}{229}} \definecommand jaencodedsaturday {\uchar{101}{229}\uchar{102}{220}\uchar{101}{229}} \stopencoding \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/strc-swd.mkii0000644000175000017500000001061514536300610024724 0ustar hillehille%D \module %D [ file=strc-swd, %D version=2007.08.14, %D title=\CONTEXT\ Structure Macros, %D subtitle=Section Worlds, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This is a prelude to a rewrite of sectioning. % options : before after setups page text number label bookmark % dodo : listtext % % \startsectionworld[chapter][text={Test}] % \stopsectionworld \writestatus{loading}{ConTeXt Structure Macros / Sectionworlds} \unprotect \ifx\pushvalue\undefined \def\pushvalue#1{\expandafter\pushmacro\csname#1\endcsname} \def\popvalue #1{\expandafter\popmacro \csname#1\endcsname} \fi % brrr \def\csnameexpanded#1#2% {\@EA\@EA\@EA\@EA\@EA\@EA\@EA#1\@EA\@EA\@EA\@EA\@EA\@EA\@EA#2\@EA\@EA\@EA\@EA\@EA\@EA\@EA} \def\csnameexpandedoneargument#1#2% {\csnameexpanded\def\csexpandeda{#2}% \@EA#1\@EA{\csexpandeda}} \def\csnameexpandedtwoarguments#1#2#3% {\csnameexpanded\def\csexpandeda{#2}% \csnameexpanded\def\csexpandedb{#3}% \@EA\@EA\@EA#1\@EA\@EA\@EA{\@EA\csexpandeda\@EA}\@EA{\csexpandedb}} \def\csnameexpandedthreearguments#1#2#3#4% {\csnameexpanded\def\csexpandeda{#2}% \csnameexpanded\def\csexpandedb{#3}% \csnameexpanded\def\csexpandedc{#4}% \@EA\@EA\@EA\@EA\@EA\@EA\@EA#1\@EA\@EA\@EA\@EA\@EA\@EA\@EA{\@EA\@EA\@EA\csexpandeda\@EA\@EA\@EA}\@EA\@EA\@EA{\@EA\csexpandedb\@EA}\@EA{\csexpandedc}} % \def\xx{XX}\setvalue{xx:yy}{abc \xx def}\def\param#1{\csname xx:#1\endcsname} % \def\testa #1{\defconvertedargument\ascii{#1}{\tttf\ascii}} % \def\testb #1#2{\defconvertedargument\ascii{#1 #2}{\tttf\ascii}} % \def\testc#1#2#3{\defconvertedargument\ascii{#1 #2 #3}{\tttf\ascii}} % \noindent 1 \csnameexpandedoneargument \testa{\param{yy}} % \noindent 2 \csnameexpandedtwoarguments \testb{\param{yy}}{\param{yy}} % \noindent 3 \csnameexpandedthreearguments\testc{\param{yy}}{\param{yy}}{\param{yy}} % rewrite the sectioning to use the variables, a bit tricky because then % we need a special expansion trick \def\sectionworldparameter #1{\csname\??sw\currentsectionworldname#1\endcsname} \def\pushsectionworldparameter#1{\expandafter\pushmacro\csname\??sw\currentsectionworldname#1\endcsname} \def\popsectionworldparameter #1{\expandafter\popmacro \csname\??sw\currentsectionworldname#1\endcsname} \def\setupsectionworld {\dodoubleargument\dosetupsectionworld} \def\dosetupsectionworld[#1][#2]% {\getparameters[\??sw#1][#2]} % maybe some extra things \def\dochecksectionworld#1% {\ifcsname\??sw\currentsectionworldname\endcsname\else \getparameters [\??sw\currentsectionworldname] [\c!before=, \c!after=, \c!setups=, \c!page=]% \fi} \def\startsectionworld {\dodoubleargument\dostartsectionworld} \def\dostartsectionworld[#1][#2]% {\pushmacro\currentsectionworldname \def\currentsectionworldname{#1}% \dochecksectionworld\currentsectionworldname \pushsectionworldparameter\c!before \pushsectionworldparameter\c!after \pushsectionworldparameter\c!setups \getparameters [\??sw\currentsectionworldname] [\c!text=,\c!number=\finalsectionnumber,\c!label=,\c!bookmark=,#2]% \doifsomething{\sectionworldparameter\c!page} {\setsectieenkoppeling\currentsectionworldname %\handlepagebreak\currentsectionworldname \checknexthead\handlepagebreak\currentsectionworldname}% \sectionworldparameter\c!before \begingroup \doifsomething{\sectionworldparameter\c!page} {\settrue\ignorehandlepagebreak}% \doifsomething{\sectionworldparameter\c!setups} {\setups[\sectionworldparameter\c!setups]}% \csnameexpandedthreearguments \doconstructheadwithvars {\sectionworldparameter\c!label }% {\sectionworldparameter\c!number}% {\sectionworldparameter\c!text }% \doifsomething{\sectionworldparameter\c!bookmark} {\expanded{\bookmark[\sectionworldparameter\c!bookmark]}}% \ignorespaces} % for inline heads \def\doconstructheadwithvars#1%#2#3% {\dodododoconstructhead\currentsectionworldname[#1]}% {#2}{#3}} \def\stopsectionworld {\endgraf \endgroup \sectionworldparameter\c!after \popsectionworldparameter\c!setups \popsectionworldparameter\c!after \popsectionworldparameter\c!before \popmacro\currentsectionworldname} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-ran.mkii0000644000175000017500000000637014536300610024726 0ustar hillehille%D \module %D [ file=supp-ran, %D version=1998.01.21, %D title=\CONTEXT\ Support Macros, %D subtitle=Random Number Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Support Macros / Random Number Generation} %D \macros %D {getrandomcount, getrandomdimen, %D getrandomfloat, getrandomnumber, %D setrandomseed, getrandomseed} %D %D This module load Donald Arseneau's generic file %D \type{random.tex}. A small shell is needed because we %D redefine some \TEX\ primitives. We also use different names %D for the two generators and add an extra one. %D %D \starttyping %D \getrandomcount \countregister {minimum} {maximum} %D \getrandomdimen \dimenregister {minimum} {maximum} %D \getrandomnumber \macroname {minimum} {maximum} %D \getrandomfloat \macroname {minimum} {maximum} %D \stoptyping %D %D Of course the file \type{random.tex} needs to be present. %D To prevent name clashes, the \CONTEXT\ distribution %D contains a copy in \type {thrd-ran.tex}. %D %D The randomseed can be set by: %D %D \starttyping %d \setrandomseed{number>0} %D \stoptyping %D %D and get by: %D %D \starttyping %D \getrandomseed\randomseed %D \stoptyping \input thrd-ran.mkii \ifx\uniformdeviate\undefined \let\verynormalnextrandom\nextrandom \def\normalnextrandom {\bgroup \let\time \normaltime \let\day \normalday \let\month\normalmonth \let\year \normalyear \verynormalnextrandom \egroup} \else \writestatus{loading}{using TeX's built in randomizer (overloading macro)} % For the meaning of the magic number, see \type {thrd-ran.tex}. % % Taco suggested to use the following alternative because \type % {\uniformdeviate} can return a zero (as expected) while % Donalds Arseneau's alternative has a minimum of~1. \def\nextrandom {\normalsetrandomseed\randomi\relax \global\randomi\numexpr\normaluniformdeviate2147483646+1\relax} \let\normalnextrandom\nextrandom \fi \def\nextrandom {\bgroup \normalnextrandom \gdef\nextrandom{\ifcase\randomseedfrozen\normalnextrandom\fi}% \egroup} \chardef\randomseedfrozen\zerocount \def\freezerandomseed {\ifcase\randomseedfrozen \nextrandom \global\chardef\randomseedfrozen\plusone \fi} \def\defrostrandomseed {\ifcase\randomseedfrozen\else \global\chardef\randomseedfrozen\zerocount \nextrandom \fi} \let\getrandomcount\setrannum \let\getrandomdimen\setrandim \def\getrandomnumber#1#2#3% {\getrandomcount\scratchcounter{#2}{#3}% \edef#1{\the\scratchcounter}} \def\getrandomfloat#1#2#3% {\getrandomdimen\scratchdimen{#2\points}{#3\points}% \edef#1{\withoutpt\the\scratchdimen}} \unexpanded \def\setrandomseed#1% {\global\randomi#1\relax} % global added \unexpanded \def\getrandomseed#1% {\edef#1{\number\randomi}} \def\getnewrandomseed#1% {\setrandomseed\minusone % signals thrd-ran to auto reseed \nextrandom % this signal is needed for the #1\randomi} % pseudo randomizer (see: third-ran) \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-251.mkii0000644000175000017500000000171714536300610024424 0ustar hillehille%D \module %D [ file=unic-251, %D version=2006.04.20, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 251, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] \unprotect \def\ffligature {ff} \def\filigature {fi} \def\flligature {fl} \def\ffiligature {ffi} \def\fflligature {ffl} \def\ftligature {ft} \def\stligature {st} \startunicodevector 251 \expandafter\strippedcsname \ifcase\numexpr#1\relax \ffligature \or % LATIN SMALL LIGATURE FF \filigature \or % LATIN SMALL LIGATURE FI \flligature \or % LATIN SMALL LIGATURE FL \ffiligature \or % LATIN SMALL LIGATURE FFI \fflligature \or % LATIN SMALL LIGATURE FFL \ftligature \or % LATIN SMALL LIGATURE FT \stligature \else % LATIN SMALL LIGATURE ST \unknownchar \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/math-ams.mkii0000644000175000017500000004110414536300610024662 0ustar hillehille%D \module %D [ file=math-ams, %D version=2001.04.12, %D title=\CONTEXT\ Math Macros, %D subtitle=AMS Specials, %D author={Hans Hagen \& Taco Hoekwater}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect % maybe we should just include these into the default tex one \definefamilysynonym [default] [blackboard] [mb] \startmathcollection [default] \definemathsymbol [varGamma] [ord] [letters] ["00] \definemathsymbol [varDelta] [ord] [letters] ["01] \definemathsymbol [varTheta] [ord] [letters] ["02] \definemathsymbol [varLambda] [ord] [letters] ["03] \definemathsymbol [varXi] [ord] [letters] ["04] \definemathsymbol [varPi] [ord] [letters] ["05] \definemathsymbol [varSigma] [ord] [letters] ["06] \definemathsymbol [varUpsilon] [ord] [letters] ["07] \definemathsymbol [varPhi] [ord] [letters] ["08] \definemathsymbol [varPsi] [ord] [letters] ["09] \definemathsymbol [varOmega] [ord] [letters] ["0A] \stopmathcollection \startmathcollection[default] \definemathsymbol [internalAnd] [rel] [operators] ["26] \stopmathcollection \startmathcollection [default] \definemathsymbol [boxdot] [bin] [ma] ["00] \definemathsymbol [boxplus] [bin] [ma] ["01] \definemathsymbol [boxtimes] [bin] [ma] ["02] \definemathsymbol [square] [ord] [ma] ["03] \definemathsymbol [Box] [ord] [ma] ["03] % square \definemathsymbol [blacksquare] [ord] [ma] ["04] \definemathsymbol [centerdot] [bin] [ma] ["05] \definemathsymbol [Diamond] [ord] [ma] ["06] \definemathsymbol [lozenge] [ord] [ma] ["06] % Diamond \definemathsymbol [blacklozenge] [ord] [ma] ["07] \definemathsymbol [circlearrowright] [rel] [ma] ["08] \definemathsymbol [circlearrowleft] [rel] [ma] ["09] \definemathsymbol [rightleftharpoons] [rel] [ma] ["0A] \definemathsymbol [leftrightharpoons] [rel] [ma] ["0B] \definemathsymbol [boxminus] [bin] [ma] ["0C] \definemathsymbol [Vdash] [rel] [ma] ["0D] \definemathsymbol [Vvdash] [rel] [ma] ["0E] \definemathsymbol [vDash] [rel] [ma] ["0F] \definemathsymbol [twoheadrightarrow] [rel] [ma] ["10] \definemathsymbol [twoheadleftarrow] [rel] [ma] ["11] \definemathsymbol [leftleftarrows] [rel] [ma] ["12] \definemathsymbol [rightrightarrows] [rel] [ma] ["13] \definemathsymbol [upuparrows] [rel] [ma] ["14] \definemathsymbol [downdownarrows] [rel] [ma] ["15] \definemathsymbol [upharpoonright] [rel] [ma] ["16] \definemathsymbol [restriction] [rel] [ma] ["16] \definemathsymbol [downharpoonright] [rel] [ma] ["17] \definemathsymbol [upharpoonleft] [rel] [ma] ["18] \definemathsymbol [downharpoonleft] [rel] [ma] ["19] \definemathsymbol [rightarrowtail] [rel] [ma] ["1A] \definemathsymbol [leftarrowtail] [rel] [ma] ["1B] \definemathsymbol [leftrightarrows] [rel] [ma] ["1C] \definemathsymbol [rightleftarrows] [rel] [ma] ["1D] \definemathsymbol [Lsh] [rel] [ma] ["1E] \definemathsymbol [Rsh] [rel] [ma] ["1F] \definemathsymbol [rightsquigarrow] [rel] [ma] ["20] \definemathsymbol [leadsto] [rel] [ma] ["20] % rightsquigarrow \definemathsymbol [leftrightsquigarrow] [rel] [ma] ["21] \definemathsymbol [looparrowleft] [rel] [ma] ["22] \definemathsymbol [looparrowright] [rel] [ma] ["23] \definemathsymbol [circeq] [rel] [ma] ["24] \definemathsymbol [succsim] [rel] [ma] ["25] \definemathsymbol [gtrsim] [rel] [ma] ["26] \definemathsymbol [gtrapprox] [rel] [ma] ["27] \definemathsymbol [multimap] [rel] [ma] ["28] \definemathsymbol [therefore] [rel] [ma] ["29] \definemathsymbol [because] [rel] [ma] ["2A] \definemathsymbol [doteqdot] [rel] [ma] ["2B] \definemathsymbol [Doteq] [rel] [ma] ["2B] % doteqdot \definemathsymbol [triangleq] [rel] [ma] ["2C] \definemathsymbol [precsim] [rel] [ma] ["2D] \definemathsymbol [lesssim] [rel] [ma] ["2E] \definemathsymbol [lessapprox] [rel] [ma] ["2F] \definemathsymbol [eqslantless] [rel] [ma] ["30] \definemathsymbol [eqslantgtr] [rel] [ma] ["31] \definemathsymbol [curlyeqprec] [rel] [ma] ["32] \definemathsymbol [curlyeqsucc] [rel] [ma] ["33] \definemathsymbol [preccurlyeq] [rel] [ma] ["34] \definemathsymbol [leqq] [rel] [ma] ["35] \definemathsymbol [leqslant] [rel] [ma] ["36] \definemathsymbol [lessgtr] [rel] [ma] ["37] \definemathsymbol [backprime] [ord] [ma] ["38] \definemathsymbol [dabar@] [ord] [ma] ["39] % @ \definemathsymbol [risingdotseq] [rel] [ma] ["3A] \definemathsymbol [fallingdotseq] [rel] [ma] ["3B] \definemathsymbol [succcurlyeq] [rel] [ma] ["3C] \definemathsymbol [geqq] [rel] [ma] ["3D] \definemathsymbol [geqslant] [rel] [ma] ["3E] \definemathsymbol [gtrless] [rel] [ma] ["3F] \definemathsymbol [sqsubset] [rel] [ma] ["40] \definemathsymbol [sqsupset] [rel] [ma] ["41] \definemathsymbol [vartriangleright] [rel] [ma] ["42] \definemathsymbol [rhd] [bin] [ma] ["42] \definemathsymbol [lhd] [bin] [ma] ["43] \definemathsymbol [vartriangleleft] [rel] [ma] ["43] \definemathsymbol [trianglerighteq] [rel] [ma] ["44] \definemathsymbol [unrhd] [bin] [ma] ["44] % trianglerighteq \definemathsymbol [trianglelefteq] [rel] [ma] ["45] \definemathsymbol [unlhd] [bin] [ma] ["45] % trianglelefteq \definemathsymbol [bigstar] [ord] [ma] ["46] \definemathsymbol [between] [rel] [ma] ["47] \definemathsymbol [blacktriangledown] [ord] [ma] ["48] \definemathsymbol [blacktriangleright] [rel] [ma] ["49] \definemathsymbol [blacktriangleleft] [rel] [ma] ["4A] \definemathsymbol [vartriangle] [rel] [ma] ["4D] \definemathsymbol [triangleup] [ord] [ma] ["4D] % vartriangle \definemathsymbol [blacktriangle] [ord] [ma] ["4E] \definemathsymbol [triangledown] [ord] [ma] ["4F] \definemathsymbol [eqcirc] [rel] [ma] ["50] \definemathsymbol [lesseqgtr] [rel] [ma] ["51] \definemathsymbol [gtreqless] [rel] [ma] ["52] \definemathsymbol [lesseqqgtr] [rel] [ma] ["53] \definemathsymbol [gtreqqless] [rel] [ma] ["54] \definemathsymbol [Rrightarrow] [rel] [ma] ["56] \definemathsymbol [Lleftarrow] [rel] [ma] ["57] \definemathsymbol [veebar] [bin] [ma] ["59] \definemathsymbol [barwedge] [bin] [ma] ["5A] \definemathsymbol [doublebarwedge] [bin] [ma] ["5B] \definemathsymbol [angle] [ord] [ma] ["5C] \definemathsymbol [measuredangle] [ord] [ma] ["5D] \definemathsymbol [sphericalangle] [ord] [ma] ["5E] \definemathsymbol [varpropto] [rel] [ma] ["5F] \definemathsymbol [smallsmile] [rel] [ma] ["60] \definemathsymbol [smallfrown] [rel] [ma] ["61] \definemathsymbol [Subset] [rel] [ma] ["62] \definemathsymbol [Supset] [rel] [ma] ["63] \definemathsymbol [Cup] [bin] [ma] ["64] \definemathsymbol [doublecup] [bin] [ma] ["64] % Cup \definemathsymbol [Cap] [bin] [ma] ["65] \definemathsymbol [doublecap] [bin] [ma] ["65] \definemathsymbol [curlywedge] [bin] [ma] ["66] \definemathsymbol [curlyvee] [bin] [ma] ["67] \definemathsymbol [leftthreetimes] [bin] [ma] ["68] \definemathsymbol [rightthreetimes] [bin] [ma] ["69] \definemathsymbol [subseteqq] [rel] [ma] ["6A] \definemathsymbol [supseteqq] [rel] [ma] ["6B] \definemathsymbol [bumpeq] [rel] [ma] ["6C] \definemathsymbol [Bumpeq] [rel] [ma] ["6D] \definemathsymbol [llless] [rel] [ma] ["6E] \definemathsymbol [lll] [rel] [ma] ["6E] % llless \definemathsymbol [gggtr] [rel] [ma] ["6F] \definemathsymbol [ggg] [rel] [ma] ["6F] % gggtr \definemathsymbol [ulcorner] [open] [ma] ["70] [ma] ["70] \definemathsymbol [urcorner] [close] [ma] ["71] [ma] ["71] \definemathsymbol [circledS] [ord] [ma] ["73] \definemathsymbol [pitchfork] [rel] [ma] ["74] \definemathsymbol [dotplus] [bin] [ma] ["75] \definemathsymbol [backsim] [rel] [ma] ["76] \definemathsymbol [backsimeq] [rel] [ma] ["77] \definemathsymbol [llcorner] [open] [ma] ["78] [ma] ["78] \definemathsymbol [lrcorner] [close] [ma] ["79] [ma] ["79] \definemathsymbol [complement] [ord] [ma] ["7B] \definemathsymbol [intercal] [bin] [ma] ["7C] \definemathsymbol [circledcirc] [bin] [ma] ["7D] \definemathsymbol [circledast] [bin] [ma] ["7E] \definemathsymbol [circleddash] [bin] [ma] ["7F] \stopmathcollection \startmathcollection [default] \definemathcommand [integers] {\blackboard{Z}} \definemathcommand [reals] {\blackboard{R}} \definemathcommand [rationals] {\blackboard{Q}} \definemathcommand [naturalnumbers] {\blackboard{N}} \definemathcommand [complexes] {\blackboard{C}} \definemathcommand [primes] {\blackboard{P}} \stopmathcollection \startmathcollection [default] \definemathsymbol [lvertneqq] [rel] [mb] ["00] \definemathsymbol [gvertneqq] [rel] [mb] ["01] \definemathsymbol [nleq] [rel] [mb] ["02] \definemathsymbol [ngeq] [rel] [mb] ["03] \definemathsymbol [nless] [rel] [mb] ["04] \definemathsymbol [ngtr] [rel] [mb] ["05] \definemathsymbol [nprec] [rel] [mb] ["06] \definemathsymbol [nsucc] [rel] [mb] ["07] \definemathsymbol [lneqq] [rel] [mb] ["08] \definemathsymbol [gneqq] [rel] [mb] ["09] \definemathsymbol [nleqslant] [rel] [mb] ["0A] \definemathsymbol [ngeqslant] [rel] [mb] ["0B] \definemathsymbol [lneq] [rel] [mb] ["0C] \definemathsymbol [gneq] [rel] [mb] ["0D] \definemathsymbol [npreceq] [rel] [mb] ["0E] \definemathsymbol [nsucceq] [rel] [mb] ["0F] \definemathsymbol [precnsim] [rel] [mb] ["10] \definemathsymbol [succnsim] [rel] [mb] ["11] \definemathsymbol [lnsim] [rel] [mb] ["12] \definemathsymbol [gnsim] [rel] [mb] ["13] \definemathsymbol [nleqq] [rel] [mb] ["14] \definemathsymbol [ngeqq] [rel] [mb] ["15] \definemathsymbol [precneqq] [rel] [mb] ["16] \definemathsymbol [succneqq] [rel] [mb] ["17] \definemathsymbol [precnapprox] [rel] [mb] ["18] \definemathsymbol [succnapprox] [rel] [mb] ["19] \definemathsymbol [lnapprox] [rel] [mb] ["1A] \definemathsymbol [gnapprox] [rel] [mb] ["1B] \definemathsymbol [nsim] [rel] [mb] ["1C] \definemathsymbol [ncong] [rel] [mb] ["1D] \definemathsymbol [diagup] [ord] [mb] ["1E] \definemathsymbol [diagdown] [ord] [mb] ["1F] \definemathsymbol [varsubsetneq] [rel] [mb] ["20] \definemathsymbol [varsupsetneq] [rel] [mb] ["21] \definemathsymbol [nsubseteqq] [rel] [mb] ["22] \definemathsymbol [nsupseteqq] [rel] [mb] ["23] \definemathsymbol [subsetneqq] [rel] [mb] ["24] \definemathsymbol [supsetneqq] [rel] [mb] ["25] \definemathsymbol [varsubsetneqq] [rel] [mb] ["26] \definemathsymbol [varsupsetneqq] [rel] [mb] ["27] \definemathsymbol [subsetneq] [rel] [mb] ["28] \definemathsymbol [supsetneq] [rel] [mb] ["29] \definemathsymbol [nsubseteq] [rel] [mb] ["2A] \definemathsymbol [nsupseteq] [rel] [mb] ["2B] \definemathsymbol [nparallel] [rel] [mb] ["2C] \definemathsymbol [nmid] [rel] [mb] ["2D] \definemathsymbol [nshortmid] [rel] [mb] ["2E] \definemathsymbol [nshortparallel] [rel] [mb] ["2F] \definemathsymbol [nvdash] [rel] [mb] ["30] \definemathsymbol [nVdash] [rel] [mb] ["31] \definemathsymbol [nvDash] [rel] [mb] ["32] \definemathsymbol [nVDash] [rel] [mb] ["33] \definemathsymbol [ntrianglerighteq] [rel] [mb] ["34] \definemathsymbol [ntrianglelefteq] [rel] [mb] ["35] \definemathsymbol [ntriangleleft] [rel] [mb] ["36] \definemathsymbol [ntriangleright] [rel] [mb] ["37] \definemathsymbol [nleftarrow] [rel] [mb] ["38] \definemathsymbol [nrightarrow] [rel] [mb] ["39] \definemathsymbol [nLeftarrow] [rel] [mb] ["3A] \definemathsymbol [nRightarrow] [rel] [mb] ["3B] \definemathsymbol [nLeftrightarrow] [rel] [mb] ["3C] \definemathsymbol [nleftrightarrow] [rel] [mb] ["3D] \definemathsymbol [divideontimes] [bin] [mb] ["3E] \definemathsymbol [varnothing] [ord] [mb] ["3F] \definemathsymbol [nexists] [ord] [mb] ["40] \definemathsymbol [Finv] [ord] [mb] ["60] \definemathsymbol [Game] [ord] [mb] ["61] \definemathsymbol [mho] [ord] [mb] ["66] \definemathsymbol [eth] [ord] [mb] ["67] \definemathsymbol [eqsim] [rel] [mb] ["68] \definemathsymbol [beth] [ord] [mb] ["69] \definemathsymbol [gimel] [ord] [mb] ["6A] \definemathsymbol [daleth] [ord] [mb] ["6B] \definemathsymbol [lessdot] [bin] [mb] ["6C] \definemathsymbol [gtrdot] [bin] [mb] ["6D] \definemathsymbol [ltimes] [bin] [mb] ["6E] \definemathsymbol [rtimes] [bin] [mb] ["6F] \definemathsymbol [shortmid] [rel] [mb] ["70] \definemathsymbol [shortparallel] [rel] [mb] ["71] \definemathsymbol [smallsetminus] [bin] [mb] ["72] \definemathsymbol [thicksim] [rel] [mb] ["73] \definemathsymbol [thickapprox] [rel] [mb] ["74] \definemathsymbol [approxeq] [rel] [mb] ["75] \definemathsymbol [succapprox] [rel] [mb] ["76] \definemathsymbol [precapprox] [rel] [mb] ["77] \definemathsymbol [curvearrowleft] [rel] [mb] ["78] \definemathsymbol [curvearrowright] [rel] [mb] ["79] \definemathsymbol [digamma] [ord] [mb] ["7A] \definemathsymbol [varkappa] [ord] [mb] ["7B] \definemathsymbol [Bbbk] [ord] [mb] ["7C] \definemathsymbol [hslash] [ord] [mb] ["7D] \definemathsymbol [hbar] [ord] [mb] ["7E] \definemathsymbol [backepsilon] [rel] [mb] ["7F] \stopmathcollection \startmathcollection [default] \definemathcommand [yen] [nothing] {\mathhexbox{\hexmafam}55} \definemathcommand [checkmark] [nothing] {\mathhexbox{\hexmafam}58} \definemathcommand [circledR] [nothing] {\mathhexbox{\hexmafam}72} \definemathcommand [maltese] [nothing] {\mathhexbox{\hexmafam}7A} \stopmathcollection \startmathcollection [default] \definemathcommand [dashrightarrow] [rel] {\dabar@\dabar@ \mathchar"0C4B} \definemathcommand [dashleftarrow] [rel] {\mathchar"0C4C\dabar@ \dabar@} \definemathcommand [dasharrow] [rel] {\dabar@\dabar@ \mathchar"0C4B} \definemathcommand [Join] [rel] {\mathchar"0D6F\mkern-13.8mu\mathchar"0D6E} \definemathcommand [implies] [rel] {\;\Longrightarrow\;} \definemathcommand [impliedby] [rel] {\;\Longleftarrow\;} \definemathcommand [And] [rel] {\;\internalAnd\;} \stopmathcollection \def\AMSwidehat#1% {\setbox\scratchbox\hbox{$\mathsurround\zeropoint#1$}% \ifdim\wd\scratchbox>2em \mathaccent"0\purefamilyhex{mb}5B{#1}% \else \mathaccent"0\purefamilyhex{ex}62{#1}% \fi} \def\AMSwidetilde#1% {\setbox\scratchbox\hbox{$\mathsurround\zeropoint#1$}% \ifdim\wd\scratchbox>2em \mathaccent"0\purefamilyhex{mb}5D{#1}% \else \mathaccent"0\purefamilyhex{ex}65{#1}% \fi} \startmathcollection [default] \definemathcommand [widehat] {\AMSwidehat} \definemathcommand [widetilde] {\AMSwidetilde} \stopmathcollection \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/supp-fil.mkii0000644000175000017500000005300414536300610024714 0ustar hillehille%D \module %D [ file=supp-fil, %D version=1995.10.10, %D title=\CONTEXT\ Support Macros, %D subtitle=Files, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D \TEX\ operates on files, so one wouldn't wonder that there %D is a separate module for file support. In \CONTEXT\ files %D are used for several purposes: %D %D \startitemize[packed] %D \item general textual input %D \item logging status information %D \item saving registers, lists and references %D \item buffering defered textual input %D \stopitemize %D %D When dealing with files we can load them as a whole, using %D the \type{\input} primitive or load them on a line||by||line %D basis, using \type{\read}. Writing is always done line by %D line, using \type{\write}. \writestatus{loading}{ConTeXt Support Macros / Files} \unprotect \ifx\undefined\f!pathseparator \def\f!pathseparator{/} \def\f!currentpath {.} \def\f!parentpath {..} \fi \ifnum\texengine=\luatexengine \def\openinputfile #1#2{\openin #1{#2}\relax} \def\openoutputfile#1#2{\immediate\openout#1{#2}\relax} \else \def\openinputfile #1#2{\openin #1 "#2"\relax} \def\openoutputfile#1#2{\immediate\openout#1 "#2"\relax} \fi \def\closeinputfile #1{\immediate\closein #1} \def\closeoutputfile#1{\immediate\closeout#1} %D \macros %D {pushendofline,popendofline} %D %D When we are loading files in the middle of the typesetting %D process, for instance when we load references, we have to be %D sure that the reading process does not generate so called %D 'spurious spaces'. This can be prevented by assigning the %D line ending character the \CATCODE\ comment. This is %D accomplished by %D %D \starttyping %D \pushendofline %D ... reading ... %D \popendofline %D \stoptyping %D %D Just to be sure, we save the current meaning of \type{^^M} %D in \type{\poppedendofline}. % \chardef\poppedendofline\catcode`\^^M % % \def\pushendofline % {\chardef\poppedendofline\catcode`\^^M\relax % \catcode`\^^M\@@comment\relax} % % \def\popendofline % {\catcode`\^^M\poppedendofline} % % support for nested usage: \newcount \endoflinelevel \ifx\newlinecode\undefined \chardef\newlinecode=`\^^M \fi \def\pushendofline {\advance\endoflinelevel\plusone \expandafter\chardef\csname :eol:\number\endoflinelevel\endcsname\catcode\newlinecode \catcode\newlinecode\@@comment\relax} \def\popendofline {\catcode\newlinecode\csname :eol:\number\endoflinelevel\endcsname \advance\endoflinelevel\minusone} \def\restoreendofline {\catcode\newlinecode\@@endofline} %D \macros %D {scratchread, scratchwrite} %D %D We define a scratch file for reading. Keep in mind that %D the number of files is limited to~16, so use this one when %D possible. We also define a scratch output file. \ifx\undefined\scratchread \newread \scratchread \fi \ifx\undefined\scratchwrite \newwrite\scratchwrite \fi %D \macros %D {unlinkfile} %D %D Sometimes we want to make sure a file is deleted, so here %D is a macro that does the job. It's named after the \PERL\ %D one. \def\unlinkfile#1% {\openoutputfile \scratchwrite{#1}% \closeoutputfile\scratchwrite} %D \macros %D {writeln} %D %D This saves a few tokens: \def\writeln#1{\write#1{}} \def\doiffileexistselse#1% {\doifelsenothing{#1} {\secondoftwoarguments} {\openinputfile\scratchread{#1}% \ifeof\scratchread \closeinputfile\scratchread \expandafter\secondoftwoarguments \else \closeinputfile\scratchread \expandafter\firstoftwoarguments \fi}} %D \macros %D {doprocessfile,fileline,fileprocessedtrue,dofinishfile} %D %D The next macro offers a framework for processing files on a %D line by line basis. %D %D \starttyping %D \doprocessfile \identifier {name} \action %D \stoptyping %D %D The first argument can for instance be \type{\scratchread}. %D The action must do something with \type{\fileline}, which %D holds the current line. One can halfway step out using %D \type{\dofinishfile} and ise \type{\iffileprocessed} to %D see if indeed some content was found. \newif\iffileprocessed \let\fileline\empty \def\doprocessfile#1#2#3% {\openinputfile{#1}{#2}% \ifeof#1% \fileprocessedfalse \closeinputfile#1% \else \fileprocessedtrue \gdef\dofinishfile {\closeinputfile#1% \global\let\doprocessline\relax}% \gdef\doprocessline {\ifeof#1% \expandafter\dofinishfile \else \global\read#1 to \fileline #3\relax \expandafter\doprocessline \fi}% \expandafter\doprocessline \fi} %D \macros %D {pathplusfile,assignfullfilename,sanitizefilename} %D %D Use \type{\pathplusfile} to compose a full file name, like %D in: %D %D \starttyping %D \pathplusfile{path}{file} %D \stoptyping %D %D By default, this expands into {\tt \pathplusfile{path}{file}}. \def\pathplusfile#1#2{#1\f!pathseparator#2} %D This one constructs a filename from a (possible empty) %D path and filename. \def\assignfullfilename#1#2\to#3% {\doifelsenothing{#1} {\edef#3{#2}} {\edef#3{#1\f!pathseparator#2}}} %D For the moment, we limit sanitizing to taking care of %D active \type {/}. \bgroup % todo: _ cleanup \catcode`\/=\@@active \catcode`\:=\@@active \catcode`\~=\@@active \catcode`\_=\@@active \gdef\sanitizefilename#1\to#2% {\bgroup \edef/{\string/}% \edef:{\string:}% \edef~{\string~}% \edef_{\string_}% \retainlccodes \lccode`\\=`\/ \lowercase{\expanded{\xdef\noexpand\sanitizedfilename{#1}}}% \egroup \let#2\sanitizedfilename} \egroup %D NEW: \chardef\kindoffile=0 % 0=normal 1=full path spec (or http) \def\checkfilename#1% {\doifinstringelse{@@/}{@@#1}% unix: /full/path {\chardef\kindoffile\plusone} {\doifinstringelse{:/}{#1}% windows: e:/full/path or http:// {\chardef\kindoffile\plusone} {\chardef\kindoffile\zerocount}}} %D \macros %D {input, normalinput} %D %D Sometimes we run into troubles when \type {\input} wants to get %D expanded, e.g. in a \type {\write} (which happens in the metafun %D manual when we permit long MP lines). So, instead of fixing that, %D we go for a redefinition of \type {\input}. Of course it's better %D to use \type {\readfile} or \type {\processfile}. \unexpanded\def\input{\normalinput} \ifnum\texengine=\luatexengine \def\inputgivenfile#1{\normalinput{#1}\relax} \else \def\inputgivenfile#1{\normalinput"#1"\relax} \fi %D \macros %D {readfile,ReadFile,maxreadlevel} %D %D One cannot be sure if a file exists. When no file can be %D found, the \type{\input} primitive gives an error message %D and switches to interactive mode. The macro \type{\readfile} %D takes care of non||existing files. This macro has two faces. %D %D \starttyping %D \ReadFile {filename} %D \readfile {filename} {before loading} {not found} %D \stoptyping %D %D Many \TEX\ implementations have laid out some strategy for %D locating files. This can lead to unexpected results, %D especially when one loads files that are not found in the %D current directory. Let's give an example of this. In %D \CONTEXT\ illustrations can be defined in an external file. %D The resizing macro first looks if an illustration is defined %D in the local definitions file. When no such file is found, %D it searches for a global file and when this file is not %D found either, the illustration itself is scanned for %D dimensions. One can imagine what happens if an adapted, %D localy stored illustration, is scaled according to %D dimensions stored somewhere else. %D %D When some \TEX\ implementation starts looking for a file, it %D normally first looks in the current directory. When no file %D is found, \TEX\ starts searching on the path where format %D and|/|or style files are stored. Depending on the implementation %D this can considerably slow down processing speed. %D %D In \CONTEXT, we support a project||wise ordening of files. %D In such an approach it seems feasible to store common files %D in a lower directory. When for instance searching for a %D general layout file, we therefore have to backtrack. %D %D These three considerations have lead to a more advanced %D approach for loading files. %D %D We first present an earlier implementation of %D \type{\readfile}. This command backtracks parent %D directories, upto a predefined level. Users can change this %D level, but we default to~3. %D %D \starttyping %D \def\maxreadlevel {3} %D \stoptyping %D %D This is a pseudo \COUNTER. %D %D We use \type{\normalinput} instead of \type{\input} %D because we want to be able to redefine the original %D \type{\input} when needed, for instance when loading third %D party libraries. \newevery \everybeforereadfile \EveryBeforeReadFile \newevery \everyafterreadfile \EveryAfterReadFile \let \everyreadfile \everybeforereadfile \newif\iftracefiles \newcount\readlevel \def\maxreadlevel{3} \newconditional\trackfilenames \let\trackedfilename\empty % We need to postpone loading, else we got frozen type-* files and so when % a format is generated on a source path. \def\doreadfile#1#2#3#4% {\sanitizefilename#2\to\readfilename \ifx\readfilename\empty % silently ignore \else \let\trackedfilename\readfilename \ifconditional\trackfilenames \doifundefinedelse{fn..\trackedfilename}\donetrue\donefalse \else \donetrue \fi \ifdone \checkfilename\readfilename \ifcase\kindoffile \iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi % not a full path or url, check for existence \doifelsenothing{#1} {\def\next{\redoreadfile\readfilename{#3}{#4}}}% {\def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}% \else % a full path or url, no further checking done \doiffileexistselse\readfilename {\iftracefiles\writestatus\m!systems{located \readfilename}\fi \def\next{#3\dodoreadfile}}% {\iftracefiles\writestatus\m!systems{not found \readfilename}\fi \def\next{#4}}% \fi \else \edef\readfilename{\getvalue{fn..\readfilename}}% \iftracefiles\writestatus\m!systems{already located \readfilename}\fi \def\next{#3\dodoreadfile}% \fi \expandafter\next \fi} \def\redoreadfile#1#2#3% {\doiffileexistselse{#1}% {\edef\readfilename{#1}% \iftracefiles\writestatus\m!systems{#1 located}\fi \def\next{#2\dodoreadfile}}% {\iftracefiles\writestatus\m!systems{cannot locate #1}\fi \advance\readlevel\minusone \ifnum\readlevel>\zerocount \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}% \def\next{\redoreadfile\readfilename{#2}{#3}}% \else \def\next{#3}% \fi}% \next} \def\dodoreadfile % we provide hooks, for instance for \enableXML {\ifconditional\trackfilenames \setxvalue{fn..\trackedfilename}{\readfilename}% \fi \the\everybeforereadfile % \normalinput\readfilename\relax \relax\inputgivenfile\readfilename\relax \the\everyafterreadfile} % too less: % % \unexpanded\def\readfile% #1% % {\readlevel\maxreadlevel % \doreadfile\empty} % {#1} % % too much: % % \unexpanded\def\readfile#1#2#3% % {\readlocfile{#1}{#2} % {\readjobfile{#1}{#2} % {\readsysfile{#1}{#2}{#3}}}} % % just ok: \unexpanded\def\readfile#1#2#3% {\readlocfile{#1}{#2}{\readsysfile{#1}{#2}{#3}}} \def\readtexfile#1#2#3% {\pushcatcodetable \catcodetable \ctxcatcodes \readfile{#1}{#2}{#3}% \popcatcodetable} \ifdefined\xmlcatcodes \else \let\xmlcatcodes\xmlcatcodesn \fi \def\readxmlfile#1#2#3% {\pushcatcodetable \catcodetable \xmlcatcodes \readfile{#1}{#2}{#3}% \popcatcodetable} \unexpanded\def\ReadFile#1% {\readfile{#1}\donothing\donothing} %D \macros %D {readjobfile,readlocfile,readsysfile, %D readfixfile,readsetfile} %D %D This implementation honnors the third situation, but we %D still can get unwanted files loaded and/or can get involved %D in extensive searching. %D %D Due to different needs, we decided to offer four alternative %D loading commands. With \type{\readjobfile} we load a local %D file and do no backtracking, while \type{\readlocfile} %D backtracks~\number\readlevel\ directories, including the current %D one. \unexpanded\def\readjobfile % #1% current path, no backtracking {\readlevel\zerocount \doreadfile\f!currentpath} % {#1}} \unexpanded\def\readlocfile % #1% current path, backtracking {\readlevel\maxreadlevel \doreadfile\f!currentpath} % {#1}} %D System files can be anywhere and therefore %D \type{\readsysfile} is not bound to the current directory %D and obeys the \TEX\ implementation. \unexpanded\def\readsysfile % #1% current path, obeys tex search {\readlevel\zerocount \doreadfile\empty} % {#1}} %D Of the last two, \type{\readfixfile} searches on the %D directory specified and backtracks too, while %D \type{\readsetfile} does only search on the specified path. \unexpanded\def\readfixfile % #1#2% specified path, backtracking {\readlevel\maxreadlevel \doreadfile} % {#1}{#2}} \unexpanded\def\readsetfile % #1#2% specified path, no backtracking {\readlevel\zerocount \doreadfile} % {#1}{#2}} %D After having defined this commands, we reconsidered the %D previously defined \type{\readfile}. This time we more or %D less impose the search order. \unexpanded\def\readfile#1#2#3% {\readlocfile{#1}{#2} {\readjobfile{#1}{#2} {\readsysfile{#1}{#2}{#3}}}} %D So now we've got ourselves five file loading commands: %D %D \starttyping %D \readfile {filename} {before loading} {not found} %D %D \readjobfile {filename} {before loading} {not found} %D \readlocfile {filename} {before loading} {not found} %D \readfixfile {filename} {before loading} {not found} %D \readsysfile {directory} {filename} {before loading} {not found} %D \stoptyping %D \macros %D {readjobfile,readlocfile,readsysfile,readfixfile} %D %D The next four alternatives can be used for opening files %D for reading on a line||by||line basis. These commands get %D an extra argument, the filetag. Explicit closing is done %D in the normal way by \type{\closein}. \def\doopenin#1#2% {\sanitizefilename#2\to\readfilename \checkfilename\readfilename \ifcase\kindoffile \advance\readlevel\plusone \openinputfile{#1}\readfilename \ifeof#1% \relax \ifnum\readlevel>\maxreadlevel % \relax \else \closeinputfile#1% \relax \doopenin{#1}{\pathplusfile\f!parentpath{#2}}% \fi \fi \fi} \def\openjobin#1#2% {\readlevel\zerocount \doopenin{#1}{\pathplusfile\f!currentpath{#2}}} \def\opensysin % #1#2% {\readlevel\maxreadlevel \doopenin} % {#1}{#2}} \def\openlocin#1#2% {\readlevel\maxreadlevel \doopenin{#1}{\pathplusfile\f!currentpath{#2}}} \def\openfixin#1#2#3% {\readlevel\maxreadlevel \doopenin{#1}{\pathplusfile{#2}{#3}}} %D \macros %D {doiffileelse,doiflocfileelse} %D %D The next alternative only looks if a file is present. No %D loading is done. This one obeys the standard \TEX\ %D implementation method. %D %D \starttyping %D \doiffileelse {filename} {found} {not found} %D \stoptyping %D %D \starttyping %D \doiflocfileelse {filename} {before loading} {not found} %D \stoptyping \def\doiffileelse {\doiffileexistselse} \def\doiffile #1{\doiffileexistselse{#1}\firstofoneargument\gobbleoneargument} \def\doifnotfile #1{\doiffileexistselse{#1}\gobbleoneargument\firstofoneargument} \def\doiflocfileelse#1% {\makelocreadfilename{#1}% \doiffileelse\readfilename} \def\makelocreadfilename#1% {\sanitizefilename#1\to\readfilename \checkfilename\readfilename \ifcase\kindoffile \edef\readfilename{\pathplusfile\f!currentpath{#1}}% \fi} %D \macros %D {doonlyonce, doinputonce, doendinputonce} %D %D Especially macropackages need only be loaded once. %D Repetitive loading not only costs time, relocating registers %D often leads to abortion of the processing because \TEX's %D capacity is limited. One can prevent multiple execution and %D loading by using one of both: %D %D \starttyping %D \doonlyonce{actions} %D \doinputonce{filename} %D \doendinputonce{filename} %D \stoptyping %D %D This command obeys the standard method for locating files. \long\def\doonlyonce#1% {\doifundefinedelse{@@@#1@@@} {\letgvalue{@@@#1@@@}\empty \firstofoneargument} {\gobbleoneargument}} \def\doinputonce#1% % {\doonlyonce{#1}{\doiffileelse{#1}{\normalinput#1\relax}\donothing}} {\doonlyonce{#1}{\doiffileelse{#1}{\inputgivenfile{#1}}\donothing}} \def\doendinputonce#1% {\doifdefined{@@@#1@@@}\endinput} \def\forgetdoingonce#1% {\global\letbeundefined{@@@#1@@@}} %D \macros %D {doifparentfileelse} %D %D The test \type{\doifelse{\jobname}{filename}} does not give %D the desired result, simply because \type{\jobname} expands %D to characters with \CATCODE~12, while the characters in %D \type{filename} have \CATCODE~11. So we can better use: %D %D \starttyping %D \doifparentfileelse{filename}{yes}{no} %D \stoptyping %D %D Since \TEXEXEC\ (and thereby \CONTEXT) supports renaming of %D the outputfile, we also need to check on that alternative %D name. \ifx\outputfilename\undefined \def\outputfilename{\jobname} \fi \def\doifparentfileelse#1% {\doifsamestringelse{#1}{\jobname }\firstoftwoarguments {\doifsamestringelse{#1}{\jobname.\c!tex}\firstoftwoarguments {\doifsamestringelse{#1}{\outputfilename}\firstoftwoarguments\secondoftwoarguments}}} \def\normalless {<} % geen \let ! \def\normalmore {>} % geen \let ! \def\normalequal {=} % geen \let ! \def\normaldblquote{"} % geen \let ! \newcount\readingfilelevel \def\popfilecharacter#1#2% {\ifnum\catcode`#1=\@@other \ifnum#2=\@@other \else %\message{[popping catcode #1 to #2]}% \catcode`#1=#2\relax \fi \fi} \ifx\\\undefined \let\\\relax \fi %D This changing catcodes is a direct result from the fact %D that we support some long standing conventions with %D regards to active characters (german ", polish /, %D french : and ;). %D We need to redo this: catcode sets and such \newtoks \everystartreadingfile \newtoks \everystopreadingfile \def\startreadingfile% beter een every en \setnormalcatcodes {\global\advance\readingfilelevel\plusone \the\everystartreadingfile \beginrestorecatcodes \setcatcodetable\prtcatcodes} \def\stopreadingfile {\endrestorecatcodes \the\everystopreadingfile \global\advance\readingfilelevel\minusone} \let\normalstartreadingfile\startreadingfile \let\normalstopreadingfile \stopreadingfile %D \macros %D {splitfilename} %D %D I should have made this one sooner. This macro was first needed when %D ran into graphic with a period in the pathpart. %D %D \startbuffer %D \def\showfilesplit %D {\bgroup \tttf %D \hbox{(full: \splitofffull)}\space %D \hbox{(path: \splitoffpath)}\space %D \hbox{(base: \splitoffbase)}\space %D \hbox{(name: \splitoffname)}\space %D \hbox{(type: \splitofftype)}\space %D \egroup} %D %D \splitfilename{c:/aa/bb/cc/dd.ee.ff} \showfilesplit \endgraf %D \splitfilename{c:/aa/bb/cc/dd.ee} \showfilesplit \endgraf %D \splitfilename{c:/aa/bb/cc/dd} \showfilesplit \endgraf %D %D \splitfilename{dd.ee.ff} \showfilesplit \endgraf %D \splitfilename{dd.ee} \showfilesplit \endgraf %D \splitfilename{dd} \showfilesplit \endgraf %D \stopbuffer %D %D \start \typebuffer \getbuffer \stop \def\splitoffroot{.} \chardef\splitoffkind\zerocount \let\splitofffull\empty \let\splitoffpath\empty \let\splitoffbase\empty \let\splitoffname\empty \let\splitofftype\empty % \def\splitfilename#1% % {\edef\splitofffull{#1}% normally outside this call: \sanitizefilename#1\to\sanitizedfilename % \greedysplitstring\splitofffull\at/\to\splitoffpath\and\splitoffbase % \ifx\splitoffbase\empty % \let\splitoffpath\empty % \let\splitoffbase\splitofffull % \fi % \greedysplitstring\splitoffbase\at.\to\splitoffname\and\splitofftype % \chardef\splitoffkind % can be used to test if pathpart was empty % \ifx\splitoffpath\empty \zerocount \else % \ifx\splitoffpath\splitoffroot \plusone \else % \plustwo \fi\fi % \ifx\splitoffname\empty\let\splitoffname\splitoffbase\fi % \ifx\splitoffpath\empty\let\splitoffpath\splitoffroot\fi} % % better, since it also handles leading /'s % % \splitfilename{oeps/test.pdf} [\splitoffpath\quad\splitoffname\quad\splitofftype] % \splitfilename{/oeps/test.pdf} [\splitoffpath\quad\splitoffname\quad\splitofftype] % \splitfilename{/test.pdf} [\splitoffpath\quad\splitoffname\quad\splitofftype] \def\splitfilename#1% {\edef\splitofffull{#1}% normally outside this call: \sanitizefilename#1\to\sanitizedfilename \greedysplitstring\splitofffull\at/\to\splitoffpath\and\splitoffbase \ifx\splitoffpath\splitofffull \let\splitoffpath\empty \fi \ifx\splitoffbase\empty \let\splitoffpath\empty \let\splitoffbase\splitofffull \fi \greedysplitstring\splitoffbase\at.\to\splitoffname\and\splitofftype \chardef\splitoffkind % can be used to test if pathpart was empty \ifx\splitoffpath\empty \zerocount \else \ifx\splitoffpath\splitoffroot \plusone \else \plustwo \fi\fi \ifx\splitoffname\empty\let\splitoffname\splitoffbase\fi \ifx\splitoffpath\empty\let\splitoffpath\splitoffroot\fi} \def\splitfiletype#1% {\edef\splitofffull{#1}% normally outside this call: \sanitizefilename#1\to\sanitizedfilename \let\splitoffpath\empty \greedysplitstring\splitofffull\at.\to\splitoffname\and\splitofftype} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/verb-js.mkii0000644000175000017500000001137114536300610024526 0ustar hillehille%D \module %D [ file=verb-js, %D version=1998.02.07, %D title=\CONTEXT\ Verbatim Macros, %D subtitle=Pretty \JAVASCRIPT\ Verbatim, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Verbatim Macros / Pretty JavaScript Verbatim} %D In \CONTEXT\ we support \JAVASCRIPT\ inclusion in \PDF\ %D documents and thereby enter the field of authoring. Of %D course we also want to pretty print such scripts, that look %D like: %D %D \startJS %D alfa = beta*2 ; // both alfa and beta are numbers // indeed %D if (odd(alfa)) %D { do_something() } %D else %D { do_nothing() } /* As we can see /* in this example */ there %D how_about(alfa) ; is no fi needed. Also no semicolons are %D or_about(beta) ; needed after a right brace. */ %D \stopJS %D %D Because \JAVASCRIPT\ looks much like \PERL, we will use %D a slightly adapted \PERL\ visualization. First we load the %D \PERL\ module: \ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi \unprotect %D The main difference between the \JAVASCRIPT\ and \PERL\ %D interpreters concern comments. Where \TEX, \METAPOST\ and %D \PERL\ have one comment symbol (\type{%}, \type{%} and %D \type{#}), \JAVA\ has the one line comment sequence %D \type{//} and the multi line comment delimiters \type{/*} %D and \type{*/}. %D %D We need a counter to keep track of multi line comment %D nesting. \newcount\JScommentlevel %D We handle both \type{%} and \type{#} a bit different: \gdef\JSsetspecials% {\PLsetspecials \setpretty`\#=32 \setpretty`\%=41 \setpretty`\/=43 \setpretty`\*=44 } %D We also need a few more handlers: one for \type{//} and %D \type{/*} and one for \type{*/}. \gdef\JSsethandlers% {\PLsethandlers \installprettyhandler 43 \JStypefourthree \installprettyhandler 44 \JStypefourfour } %D We can inherit most of the settings: \gdef\JSsetcontrols% {\PLsetcontrols \def\flushrestofverbatimline% {\endPLtypesix \ifcase\JScommentlevel \inPLcommentfalse \fi \PLverbosefalse \PLverboseskipped=0}} \gdef\JSsetvariables {\PLsetvariables \global\JScommentlevel=0 } \gdef\setupprettyJStype% {\def\prettyidentifier{JS}% \let\PLidentifiers=\JSidentifiers \let\PLvariables=\JSvariables \JSsetvariables \JSsetcontrols \JSsethandlers \JSsetspecials \PLsetdiagnostics} %D The main complication is that we have to look upto four %D characters ahead. Such macros are hard to understand but %D they do work! \gdef\JStypefourthree% {\handlenextnextpretty\doJStypefourthree\PLtypefourtwo} \gdef\doJStypefourthree#1#2% {\getprettydata{#2}% \ifnum\prettytype=43 \let\next=\dodoJStypefourthree \else\ifnum\prettytype=44 \global\advance\JScommentlevel by 1 \global\inPLcommenttrue \PLverbosecorrection \let\next=\JStogglecomment \else \let\next=\PLtypefourtwo \fi\fi \next{#1}#2} \gdef\JStogglecomment#1#2% {\ifnum\JScommentlevel=1 \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty \else \getpretties{#1}{#2}% \fi} \gdef\dodoJStypefourthree% #1% {\endPLtypesix \handlenextnextpretty\dododoJStypefourthree\dodododoPLtypefourthree} \gdef\dododoJStypefourthree% {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoJStypefourthree} \gdef\dodododoJStypefourthree#1#2% {\ifinPLcomment \getpretties{#1}{#2}% \else \global\inPLcommenttrue \PLverbosecorrection \ifnaturaltextext \let\next\naturaltextext \else \def\next{\beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty}% \fi \expandafter\next \fi} \gdef\JStypefourfour% {\handlenextnextpretty\doJStypefourfour\PLtypefourtwo} \gdef\doJStypefourfour#1#2% {\getprettydata{#2}% \ifnum\prettytype=43 \JStogglecomment{#1}#2% \global\advance\JScommentlevel by -1 \ifcase\JScommentlevel \global\inPLcommentfalse \fi \else \endPLtypesix \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty \expandafter#2% \fi} %D We need different (less) reserved words. This list replaces %D the \PERL\ one. \useprettyidentifiers \JSidentifiers \JSsetspecials abstract boolean break byte case catch char class const continue default delete do double else extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try var void while with \useprettyidentifiers \JSvariables \JSsetspecials not-yet-defined \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/spec-fdf.mkii0000644000175000017500000035041014536300610024645 0ustar hillehille%D \module %D [ file=spec-fdf, %D version=1998.05.18, %D title=\CONTEXT\ \PDF\ Macros, %D subtitle=Support Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D The name of this module is a bit strange but it started with fields %D so we keep the name. %D When dealing with resources, we share the resource dictionaries %D between all xforms. This is inefficent in the sense that when no %D resources are used, redundant entries take space, but on the other %D hand we save redundant dictionaries so it's a nice compromise. Maybe %D that in \LUATEX\ I will reimplement most of the code here anyway. %D We need to check if we can use \type {\driverreferenced} %D object in more places. %D Initialization of fields is tricky. If a field has no %D value, it is kind of not there. If ResetForm is used, the %D default is assigned, but pushbuttons are spoiled. Adding a %D \type {/MK} dictionary helps, but gives ugly down %D appearances (displaced with background). What a mess. %D Also, in order to get at least something, the \type {/AS} %D key should be provided. % to do : /IF << /SW /N >> == no scaling / clipping of widget \unprotect %D \macros %D {PDFobjref} %D %D Just a shortcut. % Watch out, \def\PDFobjref#1{\purenumber#1 0 R} also works, but not when % #1 == \the\whatever \def\PDFobjref#1{\purenumber{#1} 0 R} %D \macros %D {PDFswapdir} \let\PDFswapdir\empty \def\PDFswapdir{\ifcase\inlinedirection\or\or-\fi} % the pdf spec changed cq. viewers started behaving differently / 5+ \chardef\overcomePDFpage\plusone % page numbers/ beware: optimizers remove this one \chardef\overcomePDFpage\plustwo % page:number %chardef\overcomePDFpage\plusthree % pdftex page ref feature \ifx\pdfpageref\undefined \else \chardef\overcomePDFpage\plusthree \fi %D \macros %D {setPDFdestination} %D %D \PDF\ destinations should obey the specifications laid down %D in the \PDF\ reference manual. The next macro strips illegal %D characters from the destination name. %D %D The \ACROBAT\ programs are not bug free. By setting the next %D switches, we will at least try to prevent problems. \newif\ifovercomePDFbugs \overcomePDFbugsfalse % dest sort problem / 3- \newif\ifovercomePDFspace \overcomePDFspacetrue % dest sort problem / 3- \let\setPDFdestination\gobbleoneargument % a MK specific definition %D \macros %D {sanitizePDFstring} %D %D This macro at least tries to convert a arbitrary string %D into a sequence of characters valid for \PDF\ bookmarks and %D alike. \def\sanitizePDFstring#1\to#2{} %D \macros %D {doPDFdestination, %D doPDFaction, %D doPDFannotation, %D doPDFannotationobject, %D doPDFdictionaryobject, %D doPDFarrayobject, %D doPDFaddtocatalog, %D doPDFaddtoinfo, %D doPDFpageattribute, %D doPDFpageresource, %D doPDFpagesattribute, %D doPDFbookmark, %D defaultobjectreference, %D doPDFgetobjectreference} %D %D This module deals with \PDF\ support, including fill||in %D forms. Before we present the largely unreadable bunch of %D macros, we introduce the here||not||defined low level %D interface macros. These must be provided by the special %D drivers \type{pdf} (\ACROBAT) and \type{tpd} (\PDFTEX). %D %D \starttyping %D \doPDFdestination #1 name %D \doPDFaction #1#2#3 width height action %D \doPDFannotation #1#2#3 width height data %D \doPDFannotationobject #1#2#3#4#5 class name width height data %D \doPDFdictionaryobject #1#2#3 class name data %D \doPDFarrayobject #1#2#3 class name data %D \doPDFaddtocatalog #1 %D \doPDFaddtoinfo #1 %D \doPDFpageattribute #1 %D \doPDFpageresource #1 %D \doPDFpagesattribute #1 %D \doPDFbookmark #1#2#3#4#5 level n text page open %D %D \defaultobjectreference #1#2 class name %D \doPDFgetobjectreference #1#2#3 class name \PDFobjectreference %D \doPDFgetobjectpagereference #1#2#3 class name \PDFobjectreference %D \stoptyping %D %D The keywords reflect their use. For the moment we stick to %D keywords, because that way at we get an indication of what %D we're doing. \startspecials[fdf] %D Common: % \def\doPDFgetobjectreference#1#2#3% % {\def#3{..}} \def\doPDFgetobjectpage#1#2#3% {\dogetobjectreferencepage{#1}{#2}#3% \ifx#3\empty\def#3{\realfolio}\fi} \def\doPDFgetobjectpagereference#1#2#3% {\dogetobjectreferencepage{#1}{#2}#3% \ifx#3\empty \doPDFgetpagereference\realfolio#3% \else \doPDFgetpagereference#3#3% we assume that #3 gets expanded \fi} % \def\doPDFgetpagereference#1#2%%%%%%%%%%%%%%% % {\def#2{...}} %D Due to the fact that \PDFTEX\ has a different concept of %D page attributes, we need: \let\doPDFresetpageattributes\relax \let\doPDFresetpageresources \relax \appendtoksonce \doPDFresetpageattributes \doPDFresetpageresources \to \everyaftershipout \ifx\PDFcode\undefined \ifx\pdfliteral\undefined \def\PDFcode#1{\message{[ignored pdfliteral: #1]}} \else \let\PDFcode\pdfliteral \fi \fi %D For special (\METAPOST) effects, we need to build %D resource dictionaries. Here is the framework. \let\docuPDFextgstates\empty %let\pagePDFextgstates\empty \def\checkPDFextgstates {\ifx\docuPDFextgstates\empty \else \ifnum\realpageno=\lastpage\relax %\doPDFreserveddictionaryobject{FDF}{docuextgstates}{\docuPDFextgstates}% \doPDFdictionaryobject{FDF}{docuextgstates}{\docuPDFextgstates}% \fi \doPDFgetobjectreference{FDF}{docuextgstates}\PDFobjectreference \doPDFpageresource{/ExtGState \PDFobjectreference}% \fi} \appendtoksonce \checkPDFextgstates \to \everyshipout \def\appendtoPDFdocumentextgstates#1% {\xdef\docuPDFextgstates{\docuPDFextgstates\space#1}} %D Patterns (for tikz) \let\docuPDFpatterns\empty \def\checkPDFpatterns {\ifx\docuPDFpatterns\empty \else \ifnum\realpageno=\lastpage\relax \doPDFdictionaryobject{FDF}{docupatterns}{\docuPDFpatterns}% \fi \doPDFgetobjectreference{FDF}{docupatterns}\PDFobjectreference \doPDFpageresource{/Pattern \PDFobjectreference}% \fi} \appendtoksonce \checkPDFpatterns \to \everyshipout \def\appendtoPDFdocumentpatterns#1% {\xdef\docuPDFpatterns{\docuPDFpatterns\space#1}} %D Another special mechanism (needed for color separation): \let\docuPDFcolorspaces\empty \def\checkPDFcolorspaces {\ifx\docuPDFcolorspaces\empty \else \ifnum\realpageno=\lastpage\relax %\doPDFreserveddictionaryobject{FDF}{colorspaces}{\docuPDFcolorspaces}% \doPDFdictionaryobject{FDF}{colorspaces}{\docuPDFcolorspaces}% \fi \doPDFgetobjectreference{FDF}{colorspaces}\PDFobjectreference \doPDFpageresource{/ColorSpace \PDFobjectreference}% \fi} \appendtoksonce \checkPDFcolorspaces \to \everyshipout \def\appendtoPDFdocumentcolorspaces#1% {\xdef\docuPDFcolorspaces{\docuPDFcolorspaces\space#1}} %D And another one (used to be in spec-pdf) \let\docuPDFshades\empty \def\checkPDFshades {\ifx\docuPDFshades\empty \else \ifnum\realpageno=\lastpage\relax %\doPDFreserveddictionaryobject{FDF}{docushades}{\docuPDFshades}% \doPDFdictionaryobject{FDF}{docushades}{\docuPDFshades}% \fi \doPDFgetobjectreference{FDF}{docushades}\PDFobjectreference \doPDFpageresource{/Shading \PDFobjectreference}% \fi} \appendtoksonce \checkPDFshades \to \everyshipout \def\appendtoPDFdocumentshades#1% {\xdef\docuPDFshades{\docuPDFshades\space#1}} %D \macros %D {doPDFsetupscreen,doPDFsetupidentity} %D %D Opposite to \DVI\ drivers, \PDF\ ones must know which what %D page dimensions they are dealing. We also use the %D opportunity to launch full screen (1) or show bookmarks (2). \let\currentPDFpagemode \empty % document catalog \let\currentPDFviewerprefs\empty % document catalog \let\currentPDFcropbox \empty % page attributes \let\currentPDFbleedbox \empty % page attributes \let\currentPDFartbox \empty % page attributes \let\currentPDFtrimbox \empty % page attributes \def\doPDFsetupscreen#1#2#3#4#5#6% watch the extra argument {\bgroup % \!!widtha#4% % \advance\!!widtha#2% % \!!heighta-#5% % \!!heightb#1% extra argument % \advance\!!heightb -#3% % \advance\!!heighta \!!heightb % % sometimes whole values give better results % % \PointsToWholeBigPoints{#2}\left % % \PointsToWholeBigPoints\!!heighta\bottom % % \PointsToWholeBigPoints\!!widtha \width % % \PointsToWholeBigPoints\!!heightb\height % % but since pdf/x does not round when checking if % % the boxes fit inside the media box ... % \PointsToBigPoints{#2}\left % \PointsToBigPoints\!!heighta\bottom % \PointsToBigPoints\!!widtha \width % \PointsToBigPoints\!!heightb\height % \xdef\currentPDFcropboxspec % {[\left\space\bottom\space\width\space\height]}% % \global\let\currentPDFtrimboxspec\currentPDFcropboxspec % % \xdef\currentPDFpagemode % {/PageMode \ifcase#6 % /UseNone\or/FullScreen\or/UseOutlines\else/UseNone\fi}% % \xdef\currentPDFpagemode {\ifnum#6=4 /PageLayout /TwoColumnRight \else /PageMode \ifcase#6 /UseNone\or/FullScreen\or/UseOutlines\else/UseNone\fi \fi}% \xdef\currentPDFviewerprefs % space after #6 needed, else \relax {\ifcase#6 \or\or\else /ViewerPreferences << /FitWindow true >>\fi}% \egroup} % not that good if we switch drivers \def\addPDFdocumentinfo {\doPDFaddtocatalog{\currentPDFpagemode\currentPDFviewerprefs}% \doPDFaddtocatalog{/Version /\PDFversion}% \doPDFaddtoinfo{/Trapped /False}% \doPDFaddtoinfo{/ConTeXt.Version (\contextversion)}% \doPDFaddtoinfo{/ConTeXt.Time (\number\normalyear.\twodigits\normalmonth.\twodigits\normalday\space \twodigits\currenthour:\twodigits\currentminute)}% \doPDFaddtoinfo{/ConTeXt.Jobname (\jobname)}% \doPDFaddtoinfo{/ConTeXt.Url (www.pragma-ade.com)}} \appendtoksonce % hack to prevent duplicates \addPDFdocumentinfo \to \everyfirstshipout \ifx\pdfminorversion\undefined \ifx\pdfoptionpdfminorversion\undefined \newcount\pdfminorversion \else \let\pdfminorversion\pdfoptionpdfminorversion \fi \fi \pdfminorversion=5 \def\PDFversion{1.\number\pdfminorversion} \appendtoksonce \def\PDFversion{1.\the\pdfminorversion}% \let\addPDFdocumentinfo\relax \to \everyresetspecials \def\doPDFsetupwhateverbox#1#2#3#4#5#6% watch the extra arguments {\bgroup \!!widtha \dimexpr#5+#3\relax \!!heightb\dimexpr#2-#4\relax \!!heighta\dimexpr\!!heightb-#6\relax % sometimes whole values give better results % \PointsToWholeBigPoints{#3}\left % \PointsToWholeBigPoints\!!heighta\bottom % \PointsToWholeBigPoints\!!widtha \width % \PointsToWholeBigPoints\!!heightb\height % but since pdf/x does not round when checking if % the boxes fit inside the media box ... \PointsToBigPoints{#3}\left \PointsToBigPoints\!!heighta\bottom \PointsToBigPoints\!!widtha \width \PointsToBigPoints\!!heightb\height \xdef#1{[\left\space\bottom\space\width\space\height]}% \egroup} \def\doPDFsetupartbox {\doPDFsetupwhateverbox\currentPDFartbox } \def\doPDFsetupcropbox {\doPDFsetupwhateverbox\currentPDFcropbox } \def\doPDFsetupbleedbox{\doPDFsetupwhateverbox\currentPDFbleedbox} \def\doPDFsetuptrimbox {\doPDFsetupwhateverbox\currentPDFtrimbox } \gdef\currentPDFtrimbox{\currentPDFcropbox} % default, needed for pdf/x \def\flushPDFwhateverbox#1#2% {\doifsomething{#1}{\doPDFpageattribute{/#2Box #1}}} \def\flushPDFpageboxes {\flushPDFwhateverbox\currentPDFartbox {Art}% \flushPDFwhateverbox\currentPDFcropbox {Crop}% \flushPDFwhateverbox\currentPDFbleedbox{Bleed}% \flushPDFwhateverbox\currentPDFtrimbox {Trim}} \appendtoksonce \flushPDFpageboxes \to \everyshipout % \def\doPDFsetupidentity#1#2#3#4#5#6% % {\bgroup % \enablePDFdocencoding % \edef\!!stringa{#5}% % \ifx\!!stringa\empty \ifx\pdfdate\undefined\else % \edef\!!stringa{D:\pdfdate}% % \fi \fi % \expanded{\doPDFaddtoinfo % {/Title (#1) % /Subject (#2) % /Author (#3) % /Creator (#4) % /ModDate (\!!stringa) % /ID (\jobname.\!!stringa) % needed for pdf/x % /Keywords (#6)}}% % \egroup} \def\doPDFsetupidentity#1#2#3#4#5#6% {\bgroup \enablePDFdocencoding \sanitizePDFencoding#1\to\idtitle \stripstring\idtitle \sanitizePDFencoding#2\to\idsubject\stripstring\idsubject \sanitizePDFencoding#3\to\idauthor \stripstring\idauthor \sanitizePDFencoding#4\to\idcreator\stripstring\idcreator \sanitizePDFencoding#6\to\idkeyword\stripstring\idkeyword \expanded{\doPDFaddtoinfo {/Title \ifPDFunicode<\idtitle >\else(\idtitle )\fi /Subject \ifPDFunicode<\idsubject>\else(\idsubject)\fi /Author \ifPDFunicode<\idauthor >\else(\idauthor )\fi /Creator \ifPDFunicode<\idcreator>\else(\idcreator)\fi /ModDate (#4) /ID (\jobname.#5) % needed for pdf/x /Keywords \ifPDFunicode<\idkeyword>\else(\idkeyword)\fi}}% \egroup} %D \macros %D {doPDFsetupopenaction,doPDFsetupcloseaction, %D doPDFsetupopenpageaction,doPDFsetupclosepageaction} %D %D Setting the open and close actions is kind of fuzzy %D because action chains are derived from the reference %D mechanism. %D Starting with version~5 viewers, when the open actions %D started yto give problems, for testing purposes we %D decided use indirect actions. % \definespecial\dosetupopenaction {\doPDFsetupopenaction} % \definespecial\dosetupcloseaction {\doPDFsetupcloseaction} % \definespecial\dosetupopenpageaction {\doPDFsetupopenpageaction} % \definespecial\dosetupclosepageaction{\doPDFsetupclosepageaction} \let\lastPDFaction\empty %D We can safe a couple of references by moving this code %D to the specific drivers. %D %D The following code used to work okay, but as with any %D update of Acrobat Viewers, upward compatibility was %D just a dream. \definespecial\dosetupopenaction {\doPDFaddtocatalog{/OpenAction <<\lastPDFaction>>}} \definespecial\dosetupcloseaction{\doPDFaddtocatalog{/CloseAction <<\lastPDFaction>>}} % todo: /AA << dictionary in catalog >> % \globalletempty\PDFdocumentclose % \globalletempty\PDFwillsave % \globalletempty\PDFdidsave % \globalletempty\PDFwillprint % \globalletempty\PDFdidprint % \definespecial\dosetupdocumentcloseaction {\global\let\PDFdocumentclose\lastPDFaction} % \definespecial\dosetupwillsaveaction {\global\let\PDFwillsave \lastPDFaction} % \definespecial\dosetupdidsaveaction {\global\let\PDFdidsave \lastPDFaction} % \definespecial\dosetupwillprintaction {\global\let\PDFwillprint \lastPDFaction} % \definespecial\dosetupdidprintaction {\global\let\PDFdidprint \lastPDFaction} % \def\checkPDFdocumentactions % {\iflocation % \doPDFpageattribute % {/AA <<\ifx\PDFdocumentclose\empty \else /DC <<\PDFdocumentclose>> \fi % \ifx\PDFwillsave \empty \else /WS <<\PDFwillsave >> \fi % \ifx\PDFdidsave \empty \else /DS <<\PDFdidsave >> \fi % \ifx\PDFwillprint \empty \else /WP <<\PDFwillprint >> \fi % \ifx\PDFdidprint \empty \else /DP <<\PDFdidprint >> \fi>>}% % % \globalletempty\PDFdocumentclose % % \globalletempty\PDFwillsave % % \globalletempty\PDFdidsave % % \globalletempty\PDFwillprint % % \globalletempty\PDFdidprint % \global\let\checkPDFdocumentactions\relax % \fi} % \appendtoksonce % \checkPDFdocumentactions % \to \everylastshipout %\def\doPDFsetupopenaction% % {\doPDFdictionaryobject{FDF}{local:openaction}\lastPDFaction % \doPDFgetobjectreference{FDF}{local:openaction}\PDFobjectreference % \doPDFaddtocatalog{/OpenAction \PDFobjectreference}} % %\def\doPDFsetupcloseaction% % {\doPDFdictionaryobject{FDF}{local:closeaction}\lastPDFaction % \doPDFgetobjectreference{FDF}{local:closeaction}\PDFobjectreference % \doPDFaddtocatalog{/CloseAction \PDFobjectreference}} \let\PDFopenpageaction \empty \let\PDFclosepageaction\empty \definespecial\dosetupopenpageaction {\global\let\PDFopenpageaction \lastPDFaction} \definespecial\dosetupclosepageaction{\global\let\PDFclosepageaction\lastPDFaction} \def\checkPDFpageactions {\iflocation % important since direct -) \donefalse \ifx\PDFopenpageaction \empty\!!doneafalse\else\donetrue\!!doneatrue\fi \ifx\PDFclosepageaction\empty\!!donebfalse\else\donetrue\!!donebtrue\fi \ifdone \doPDFpageattribute {/AA <<\if!!donea/O <<\PDFopenpageaction >> \fi \if!!doneb/C <<\PDFclosepageaction>> \fi>>}% \fi \global\let\PDFopenpageaction \empty \global\let\PDFclosepageaction\empty \fi} \appendtoksonce \checkPDFpageactions \to \everyshipout %D \macros %D {doPDFstartthisislocation} %D %D Next we define the macros that deal with hyperreferencing, %D graphic inclusion and general document features. These are %D the olderst ones. I won't comment much because one needs %D knowledge of \PDF\ itself, and explaning \PDF\ is beyond %D this documentation. \def\doPDFstartthisislocation#1% {\bgroup \setPDFdestination{#1}% \ifx\PDFdestination\empty \else \doPDFdestination{\PDFdestination}% \fi \egroup} %D \macros %D {doPDFstartgotolocation, %D doPDFstartgotorealpage, %D doPDFstartgotoJS} %D %D The goto macros use the switch \type{\ifsecondaryreference} %D to determine if actions should be linked. \def\locationfilesuffix{pdf} % \def\preparePDFlocationfile#1#2% % {\setreferencefilename#1\to#2% % \expanded{\doifnotinstring{.\locationfilesuffix}{#2}} % {\edef#2{#2.\locationfilesuffix}}} % % \def\preparePDFlocationfile#1\to#2% % {\setreferencefilename#1\to#2% % \expanded{\doifnotinstring{.pdf}{#2}}{\edef#2{#2.pdf}}} \def\doPDFstartgotolocation#1#2#3#4#5#6% {\bgroup \doifelsenothing{#3} {\setPDFdestination{#5}% \doifelsenothing\PDFdestination {\let\action\empty} {\doifelsenothing{#4} {\let\PDFfile\empty} {\expanded{\beforesplitstring#4}\at.\to\PDFfile \doifparentfileelse\PDFfile % {#4} {\let\PDFfile\empty} %{\setreferencefilename#4.\locationfilesuffix\to\PDFfile {\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile \edef\PDFfile {R /F (\PDFfile)\ifgotonewwindow\space/NewWindow true \fi}}}% \edef\action% {/S /GoTo\PDFfile\space /D (\PDFdestination)}}} {\doifelsenothing{#4} {\let\PDFfile\empty \let\PDFdestination\empty} {\setreferencefilename/#4\to\PDFfile \setPDFdestination{#5}% \doifsomething\PDFdestination {\edef\PDFdestination{\URLhash\PDFdestination}}}% \edef\action{/S /URI /URI (#3\PDFfile\PDFdestination)}}% \ifx\action\empty\else \ifsecondaryreference \savesecondaryPDFreference\action \else \getsecondaryPDFreferences \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}% \fi \fi \egroup} \def\PDFgotonewwindow{\ifgotonewwindow\space/NewWindow true \fi} % optimization in tpd driver % % \edef\PDFdestination{(page:\the\scratchcounter)}% % % ==> % % \advance\scratchcounter 1 % \edef\PDFdestination{[\pdfpageref \PDFobjref\scratchcounter\PDFpageviewwrd]}% % % \doPDFgetpagedestination#1#2% pagenumber macro % % fuzzy hack \def\doPDFstartgotorealpage#1#2#3#4#5% watch the R append trick {\bgroup \doifelsenothing{#3}% #1 = url {\scratchcounter0#5\relax \ifnum\scratchcounter>0 \doifelsenothing{#4} {\let\PDFfile\empty} {\expanded{\beforesplitstring#4}\at.\to\PDFfile \doifparentfileelse\PDFfile % {#4} {\let\PDFfile\empty} %{\setreferencefilename#4.\locationfilesuffix\to\PDFfile {\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile \edef\PDFfile{R /F (\PDFfile)\PDFgotonewwindow}}}% \ifx\PDFfile\empty \ifcase\overcomePDFpage \or % pdf starts numbering at zero \advance\scratchcounter \minusone \edef\PDFdestination{[\the\scratchcounter\space\PDFpageviewwrd]}% \or % pdf starts numbering at zero \advance\scratchcounter \minusone \edef\PDFdestination{(page:\the\scratchcounter)}% \or % pdftex starts numbering at one \edef\PDFdestination{[\pdfpageref\scratchcounter\space0 R \PDFpageviewwrd]}% \fi \else % across files it's a page number / pdf starts numbering at zero \advance\scratchcounter \minusone \edef\PDFdestination{[\the\scratchcounter\space\PDFpageviewwrd]}% \fi \edef\action{/S /GoTo\PDFfile\space /D \PDFdestination}% \else \let\action\empty \fi} {\doifelsenothing{#4} {\let\PDFfile\empty} {\setreferencefilename/#4\to\PDFfile}% \edef\action{/S /URI /URI (#3\PDFfile)}}% \ifx\action\empty\else \ifsecondaryreference \savesecondaryPDFreference\action \else \getsecondaryPDFreferences \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}% \fi \fi \egroup} \let\lastfakedPDFpage\!!zerocount \def\fakePDFpagedestination % as in pdf, we start numbering at zero {\iflocation \ifarrangingpages \else \ifnum\overcomePDFpage=\plustwo \ifnum\lastfakedPDFpage<\realpageno \bgroup \xdef\lastfakedPDFpage{\realfolio}% \advance\realpageno \minusone % is \expanded needed ? \expanded{\doPDFdestination{page:\realfolio}}% \egroup \fi \fi \fi \fi} \appendtoksonce \fakePDFpagedestination \to \everyshipout \def\doPDFstartgotoJS#1#2#3% {\bgroup \doPSsanitizeJScode#3\to\sanitizedJScode \edef\action {/S /JavaScript /JS (\sanitizedJScode)}% \ifsecondaryreference \savesecondaryPDFreference\action \else \getsecondaryPDFreferences \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}% \fi \egroup} %D \macros %D {doPDFstartexecutecommand} %D %D At the cost of much auxiliary placeholders, we can pretty %D fast convert the command asked for. This is how the \PDF\ %D code looks like. \def\PDFmoviecode#1#2#3% {/Movie /T (\ifcase#1movie \else sound \fi\ifx\argumentA\empty#2\else\argumentA\fi) /Operation /\ifcase#3Play\or Stop\or Pause\or Resume\fi\space} \def\PDFexecutestartmovie {\PDFmoviecode0\currentmovie0} \def\PDFexecutestopmovie {\PDFmoviecode0\currentmovie1} \def\PDFexecutepausemovie {\PDFmoviecode0\currentmovie2} \def\PDFexecuteresumemovie {\PDFmoviecode0\currentmovie3} \def\PDFexecutestartsound {\PDFmoviecode1\currentsound0} \def\PDFexecutestopsound {\PDFmoviecode1\currentsound1} \def\PDFexecutepausesound {\PDFmoviecode1\currentsound2} \def\PDFexecuteresumesound {\PDFmoviecode1\currentsound3} \def\PDFformcode#1% {\doFDFiffieldset{#1}{/Field [\doFDFgetfieldset{#1}]}} % bit 3 = html % bit 6 = xml % bit 4 = get \ifx\PDFsubmitfiller\undefined \let\PDFsubmitfiller\empty \fi \chardef\PDFformmethod=1 % 0=GET 1=POST \def\PDFformflag#1#2{\ifcase\PDFformmethod#1\else#2\fi} \def\PDFexecuteimportform {/Named /N /AcroForm:ImportFDF} \def\PDFexecuteexportform {/Named /N /AcroForm:ExportFDF} \def\PDFexecuteresetform {/ResetForm \PDFformcode\argumentA} \def\PDFexecutesubmitform {/SubmitForm \PDFformcode\argumentB /Flags \ifcase\submitoutputformat\space \PDFformflag{12} {4} % 0=unknown \or \PDFformflag{12} {4} % 1=HTML \or \PDFformflag {8} {0} % 2=FDF \or \PDFformflag{40}{32} % 3=XML \else \PDFformflag{12} {4} % ?=unknown \fi /F (\argumentA)\PDFsubmitfiller} % urifill permits url substitution \def\PDFexecutehide {/Hide /T (\argumentA) /H true} \def\PDFexecuteshow {/Hide /T (\argumentA) /H false} \def\PDFexecutefirst {/Named /N /FirstPage} \def\PDFexecuteprevious {/Named /N /PrevPage} \def\PDFexecutenext {/Named /N /NextPage} \def\PDFexecutelast {/Named /N /LastPage} \def\PDFexecutebackward {/Named /N /GoBack} \def\PDFexecuteforward {/Named /N /GoForward} \def\PDFexecuteprint {/Named /N /Print} \def\PDFexecuteexit {/Named /N /Quit} \def\PDFexecuteclose {/Named /N /Close} \def\PDFexecutesave {/Named /N /Save} \def\PDFexecutesavenamed {/Named /N /SaveAs} \def\PDFexecuteopennamed {/Named /N /Open} \def\PDFexecutehelp {/Named /N /HelpUserGuide} \def\PDFexecutetoggle {/Named /N /FullScreen} \def\PDFexecutesearch {/Named /N /Find} \def\PDFexecutesearchagain {/Named /N /FindAgain} \def\PDFexecutegotopage {/Named /N /GoToPage} \def\PDFexecutequery {/Named /N /AcroSrch:Query} \def\PDFexecutequeryagain {/Named /N /AcroSrch:NextHit} \def\PDFexecutefitwidth {/Named /N /FitWidth} \def\PDFexecutefitheight {/Named /N /FitHeight} \let\PDFobjectclass\empty \let\PDFobjectname \empty \def\doPDFstartexecutecommand#1#2#3#4% {\doifdefined{PDFexecute#3} {\bgroup \edef\argument{#4}% \ifx\argument\empty \let\argumentA\empty \let\argumentB\empty \else \@EA\dogetcommalistelement\@EA1\@EA\from#4\to\argumentA \@EA\dogetcommalistelement\@EA2\@EA\from#4\to\argumentB \fi \edef\action% {/S \getvalue{PDFexecute#3}}% \ifsecondaryreference \savesecondaryPDFreference\action \else \getsecondaryPDFreferences % \ifx\PDFobjectclass\empty % \let\next\doPDFaction % \else % \edef\next{\doPDFactionobject{\PDFobjectclass}{\PDFobjectname}}% % \globalletempty\PDFobjectclass % \globalletempty\PDFobjectname % \fi % \next \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}% \fi \egroup}} %D \macros %D {doPDFstartrunprogram} %D %D Running programs is possible, but is non that portable, and %D therefore dangerous. \def\doPDFstartrunprogram#1#2#3#4% new: #3 => #3#4 {\bgroup %\edef\string{#3}% %\@EA\beforesplitstring\string\at{ }\to\program %\@EA\aftersplitstring \string\at{ }\to\parameters %\edef\action% % {/S /Launch /F (\program) /P (\parameters) /D (.)}% \edef\action {/S /Launch /F (#3) /P (#4) /D (.)}% \ifsecondaryreference \savesecondaryPDFreference\action \else \getsecondaryPDFreferences \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}% \fi \egroup} %D \macros %D {doPDFstartgotoprofile} %D %D Far from perfect, but nevertheless present, is the profile %D handler. We want to misuse article threads for reder %D profiles. \def\doPDFstartgotoprofile#1#2#3% to be done: file {\bgroup \setPDFdestination{#3}% \doifsomething\PDFdestination {\edef\action {/S /Thread /D (\PDFdestination)}% \ifsecondaryreference \savesecondaryPDFreference\action \else \getsecondaryPDFreferences \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}% \fi}% \egroup} %D \macros %D {doPDFsetpagetransition} %D %D This array holds a reasonable selection of transitions %D (watch out: \type{replace} is not in this list). Most of %D the transitions look awful anyway. By the way, \CONTEXT\ is %D able to select transitions randomly. % some day, when 1.5 is on linux and apple, we will add: % % \def\pagetransitions % {{split,in,vertical},{split,in,horizontal}, % {split,out,vertical},{split,out,horizontal}, % {blinds,horizontal},{blinds,vertical}, % {box,in},{box,out}, % {wipe,east},{wipe,west},{wipe,north},{wipe,south}, % dissolve, % {glitter,east},{glitter,south}, % {fly,in,east},{fly,in,west},{fly,in,north},{fly,in,south}, % {fly,out,east},{fly,out,west},{fly,out,north},{fly,out,south}, % {push,east},{push,west},{push,north},{push,south}, % {cover,east},{cover,west},{cover,north},{cover,south}, % {uncover,east},{uncover,west},{uncover,north},{uncover,south}, % fade} \def\pagetransitions {{split,in,vertical},{split,in,horizontal}, {split,out,vertical},{split,out,horizontal}, {blinds,horizontal},{blinds,vertical}, {box,in},{box,out}, {wipe,east},{wipe,west},{wipe,north},{wipe,south}, dissolve, {glitter,east},{glitter,south}} %D Again, we use macros as placeholders for \PDF\ key||value %D pairs. \def\PDFpagesplit {/S /Split } \def\PDFpageblinds {/S /Blinds } \def\PDFpagebox {/S /Box } \def\PDFpagewipe {/S /Wipe } \def\PDFpagedissolve {/S /Dissolve } \def\PDFpageglitter {/S /Glitter } \def\PDFpagereplace {/S /R } \def\PDFpagefly {/S /Fly } % 1.5 \def\PDFpagepush {/S /Push } % 1.5 \def\PDFpagecover {/S /Cover } % 1.5 \def\PDFpageuncover {/S /Uncover } % 1.5 \def\PDFpagefade {/S /Fade } % 1.5 \def\PDFpagehorizontal {/Dm /H } \def\PDFpagevertical {/Dm /V } \def\PDFpagein {/M /I } \def\PDFpageout {/M /O } \def\PDFpageeast {/Di 0 } \def\PDFpagenorth {/Di 90 } \def\PDFpagewest {/Di 180 } \def\PDFpagesouth {/Di 270 } \def\dodoPDFsetpagetransition#1% {\doifdefined{PDFpage#1} {\edef\PDFpagetransitions{\PDFpagetransitions\getvalue{PDFpage#1}}}} \def\doPDFsetpagetransition#1#2% {\let\PDFpagetransitions\empty \processcommalist[#1]\dodoPDFsetpagetransition \doPDFpageattribute %{\ifnum#2>0 /Dur #2 \fi {\ifnum0<0#2 /Dur #2 \fi \ifx\PDFpagetransitions\empty\else/Trans <<\PDFpagetransitions>>\fi}} % \ifx\PDFpagetransitions\empty\else/Trans <>\fi}} %D \macros %D {doPDFinsertmov} %D %D Most of the annotations we use here are of type {\em %D link}, but here is another one: the {\em movie} annotation. %D The driver module must implement \type {setcurrentmovie}. %D Great: this will become an obsolete pdf feature; why did we have to %D keep up with the bugs ... and by the time acrobat gets better in %D handling it have to drop it. \let\currentmovie\s!unknown \def\doPDFinsertmov {\bgroup \xdef\currentmovie{\@@DriverImageLabel}% \PointsToBigPoints\@@DriverImageWidth \width \PointsToBigPoints\@@DriverImageHeight\height \let\pdf@@options\empty \let\pdf@@actions\empty \donefalse \expanded{\processallactionsinset[\@@DriverImageOptions]} [\v!controls=>\donetrue, \v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat }, \v!preview=>\edef\pdf@@options{\pdf@@options /Poster true }]% \edef\pdf@@actions{\pdf@@actions /ShowControls \ifdone true\else false\fi}% \doPDFannotation\@@DriverImageWidth\@@DriverImageHeight {/Subtype /Movie /Border [0 0 0] /T (movie \currentmovie) /Movie << /F (\@@DriverImageFile) /Aspect [\width\space\height] \pdf@@options >> /A << \pdf@@actions >>}% \egroup} %D \macros %D {doPDFinsertsoundtrack} %D %D In \PDF\ sounds can be embedded like movies. \ifx\everygoto\undefined \newtoks\everygoto \fi \let\currentsound\s!unknown \def\doPDFinsertsoundtrack#1#2#3% {\bgroup \xdef\currentsound{#2}% \let\pdf@@actions\empty \@EA\processallactionsinset\@EA [#3] [\v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat }]% \collectdriverresource %\flushatshipout % since it can be buried in a chained box {\doPDFannotation{0pt}{0pt} {/Subtype /Movie /Border [0 0 0] /T (sound \currentsound) /Movie <>% \ifx\pdf@@actions\empty\else/A << \pdf@@actions >>\fi}}% \egroup} %D \macros %D {doPDFattachfile} \def\doPDFfilestreamobject#1#2#3#4% {} \def\doPDFfilestreamidentifier#1% {0} \def\doPDFgetfilestreamreference#1#2% {0 0 R} \def\doPDFattachfile#1#2#3#4#5#6#7#8% {\bgroup % title width height color symbol file \edefconvertedargument\PDFfile{#8}% % beware: the symbol may (indirectly) use the file % reference when typesetting the object number; \presetPDFsymbolappearance{#5}{#6}{#2}{#3}{#4}% sets width/height \startPDFsymbolappearance \doPDFembedfile\PDFfile{#7}{#8}% \doPDFgetembeddedfilereference\PDFfile\PDFobjectreference \setFDFlayer\@@DriverAttachmentLayer \doPDFannotation{\width}{\totalheight} {/Subtype /FileAttachment /FS \PDFobjectreference\space /Contents (#1) \PDFsymbol \FDFlayer \PDFattributes}% \stopPDFsymbolappearance \egroup} % semi-public \def\doPDFembedfile#1#2#3% symbolic name | filename | user name {\edefconvertedargument\PDFfile{#1}% \doifnotflagged{a:\PDFfile}% {\doPDFfilestreamobject{PDFEF}{\PDFfile}{#2}{#3}% \doglobal\setflag{a:\PDFfile}}} \def\doPDFgetembeddedfilereference#1#2% {\edefconvertedargument\PDFfile{#1}% \doPDFgetobjectreference{PDFEF}\PDFfile#2} \def\doPDFgetembeddedfilestreamreference#1#2% {\edefconvertedargument\PDFfile{#1}% \doPDFgetfilestreamreference\PDFfile#2} % == \doPDFgetobjectreference{PDFFS}\PDFfile#2 \definespecial \doattachfile {\doPDFattachfile} % requested by Jens-Uwe Morawski: permits usage of pdftosrc % in viewers that don't support attachments: % % \definesymbol % [ObjectNumber] % % [object number {\PDFattachmentnumber[xx]}] % named % [object number \PDFattachmentnumber] % current % % \useattachment[test][xx][test.tex] % \setupattachments[symbol=ObjectNumber] % \attachment[test] \def\PDFattachmentnumber {\dosingleargument\doPDFattachmentnumber} \def\doPDFattachmentnumber[#1]% {\iffirstargument \doPDFfilestreamidentifier{#1}% \else \doPDFfilestreamidentifier\PDFfile \fi} %D \macros %D {...} %D %D Rather preliminary. We have to wait till the complete specs %D show up. As usual, we cannot really check it (Acrobat 6.0 %D has a bug that inhibits us to make a test file). Half a day %D of testing made clear that trying to control the plugin fails %D in most cases (we need plugin specs -). We also miss a feature %D to let acrobat wait with proceeding (action processing) till %D the media clip is ready. % aiff audio/aiff % au audio/basic % avi video/avi % mid audio/midi % mov video/quicktime % mp3 audio/x-mp3 (mpeg) % mp4 audio/mp4 % mp4 video/mp4 % mpeg video/mpeg % smil application/smil % swf application/x-shockwave-flash % beware, this is preliminary code, should be improved \def\PDFrenderingspecs#1{\executeifdefined{PDFMR:#1}\empty} \def\PDFexecutestartrendering {/Rendition /OP 0 \PDFrenderingspecs\argumentA} \def\PDFexecutestoprendering {/Rendition /OP 1 \PDFrenderingspecs\argumentA} \def\PDFexecutepauserendering {/Rendition /OP 2 \PDFrenderingspecs\argumentA} \def\PDFexecuteresumerendering {/Rendition /OP 3 \PDFrenderingspecs\argumentA} % todo : sub files % % \doPDFembedfile{pier-39.png}{pier-39.png}{pier-39.png}% % \doPDFgetembeddedfilestreamreference{pier-39.png}\xPDFobjectreference % \edef\xxxx{/RF [(pier-39.png) \xPDFobjectreference]}% % todo: alternative renderings % % object_1 -> <> >> % object_2 -> <> >> % % rendering -> <> % todo: embedded files (too buggy) % % \let\PDFattribute\empty % % /D \PDFobjectreference % % test one, no error, but ignored % \doifinset\v!file{#4} % {\doPDFembedfile{#3}{#3}{#3}% % \doPDFgetembeddedfilestreamreference{#3}\PDFobjectreference % \edef\PDFattribute{/EF \PDFobjectreference}}% % % official, does not work either % \doifinset\v!file{#4} % {\doPDFembedfile{#3}{#3}{#3}% % \doPDFgetembeddedfilereference{#3}\PDFobjectreference} % % do we play the game as follows \definespecial\doinsertrendering#1#2#3#4% tag mime file options {\ifundefined{PDFMR:#1}% \doifinstringelse{://}{#3}\donetrue\donefalse % evt url as keyword \doPDFdictionaryobject{PDFMF}{#1} {/Type /Rendition /S /MR % does not work: /SP << /Type /MediaScreenParam /BE << /B [1 0 0] /O 0.5 >> >> /C << /Type /MediaClip /S /MCD /N (#1) /Alt [() (file not found)] % language id + message /D << /Type /Filespec /F (#3) \ifdone/FS /URL\fi >> /CT (#2) >>}% % common code \doifobjectreferencefoundelse{PDFMS}{#1} {\doPDFgetobjectreference{PDFMS}{#1}\PDFobjectreferenceB} {\doPDFgetobjectreference{PDFMU}{#1}\PDFobjectreferenceB}% \doPDFgetobjectreference{PDFMF}{#1}\PDFobjectreferenceA \setxvalue{PDFMR:#1}% needed /AA actions in /Screen {/R \PDFobjectreferenceA /AN \PDFobjectreferenceB}% \doifobjectreferencefoundelse{PDFMS}{#1}\donothing {\dodoinsertrenderingwindow{PDFMU}{#1}\zeropoint\zeropoint{#4}}% \fi} \definespecial\doinsertrenderingobject#1#2#3#4% tag class objectname options {\ifundefined{PDFMR:#1}% \doPDFgetobjectreference{#2}{#3}\PDFobjectreference \doPDFdictionaryobject{PDFMF}{#1} {/Type /Rendition /S /MR /C << /Type /MediaClip /S /MCD /N (#1) /D \PDFobjectreference>>}% % common code \doifobjectreferencefoundelse{PDFMS}{#1} {\doPDFgetobjectreference{PDFMS}{#1}\PDFobjectreferenceB} {\doPDFgetobjectreference{PDFMU}{#1}\PDFobjectreferenceB}% \doPDFgetobjectreference{PDFMF}{#1}\PDFobjectreferenceA \setxvalue{PDFMR:#1}% needed /AA actions in /Screen {/R \PDFobjectreferenceA /AN \PDFobjectreferenceB}% \doifobjectreferencefoundelse{PDFMS}{#1}\donothing {\dodoinsertrenderingwindow{PDFMU}{#1}\zeropoint\zeropoint{#4}}% \fi} \definespecial\doinsertrenderingwindow {\dodoinsertrenderingwindow{PDFMS}} \def\dodoinsertrenderingwindow#1#2#3#4#5% {\vbox to #4 \bgroup \checkPDFscreenactions{#2}{#5}% \doPDFgetobjectpagereference{PDFMF}{#2}\PDFobjectreferenceA \doPDFgetobjectreference {PDFMF}{#2}\PDFobjectreferenceB \vss \hbox to #3 \bgroup \doPDFannotationobject{#1}{#2}{#3}{#4} {/Subtype /Screen /P \PDFobjectreferenceA /A \PDFobjectreferenceB \PDFattributes /Border [0 0 0]}% \hss \egroup \egroup} \global\let\PDFrenderingopenpageaction \empty \global\let\PDFrenderingclosepageaction\empty \def\checkPDFscreenactions#1#2% {\let\PDFattributes\empty \iflocation % important since direct -) % the action can either (already) be set by the window handler % or (normally when no window [i.e a zero dimensions one] is present) by keyword \doifinset\v!auto{#2} {% brrr, here instead of in navigation module, must move and become special % now two sided dependency \let\checkrendering\gobbleoneargument \ifx\PDFrenderingopenpageaction \empty \handlereferenceactions{\v!StartRendering{#1}}\dosetuprenderingopenpageaction \fi \ifx\PDFrenderingclosepageaction\empty \handlereferenceactions{\v!StopRendering {#1}}\dosetuprenderingclosepageaction \fi }% \donefalse \ifx\PDFrenderingopenpageaction \empty\!!doneafalse\else\donetrue\!!doneatrue\fi \ifx\PDFrenderingclosepageaction\empty\!!donebfalse\else\donetrue\!!donebtrue\fi \ifdone \edef\PDFattributes {/AA <<\if!!donea/PO <<\PDFrenderingopenpageaction >> \fi \if!!doneb/PC <<\PDFrenderingclosepageaction>> \fi>>}% \fi \global\let\PDFrenderingopenpageaction \empty \global\let\PDFrenderingclosepageaction\empty \fi} \definespecial\dosetuprenderingopenpageaction {\global\let\PDFrenderingopenpageaction \lastPDFaction} \definespecial\dosetuprenderingclosepageaction{\global\let\PDFrenderingclosepageaction\lastPDFaction} %D \macros %D {doPDFinsertbookmark} %D %D Well, here is the dreadfull bookmark, rather useless because %D only standard encoding is possible, no typography is done, %D and a maximum of 32~characters is advized. \def\doPDFinsertbookmark#1#2#3#4#5% level sublevels text page open=1 {\bgroup \sanitizePDFencoding#3\to\bookmarktext % uses scratchcounter \stripstring\bookmarktext \doPDFbookmark{#1}{#2}{\bookmarktext}{#4}{#5}% \egroup} %D The next section of this module is dedicated to form %D support. These macros are complicated by the fact that %D cloning is possible. %D \macros %D {FDFflag...,FDFplus...} %D %D The \type{/FT} key determines the type of field: text, %D button or choice. The latter two come in several disguises, %D which are set by flipping bits in the \type{/Ff}. Other bits %D are used to set states. Personally I hate this bitty way of %D doing things. The next six bit determine the field sub type: \def\FDFflagMultiLine {4096} % 13 \def\FDFflagNoToggleToOff {16384} % 15 \def\FDFflagRadio {32768} % 16 (not used as such) \def\FDFflagPushButton {65536} % 17 \def\FDFflagPopUp {131072} % 18 \def\FDFflagEdit {262144} % 19 % bugged anyway, so we need to drop it: \def\FDFflagRadiosInUnison {33554432} % 26 %D A few more (pdf 1.4) flags, what the spell check one: for %D obscure reasons for Adobe downward compatibility means %D enabling features that harm old applications like testing. \def\FDFflagDoNotSpellCheck {4194304} % 23 \def\FDFflagDoNotScroll {8388608} % 24 %D The next bits (watch how strange the bits are organized) %D take care of the states: \def\FDFflagReadOnly {1} % 1 \def\FDFflagRequired {2} % 2 \def\FDFflagNoExport {4} % 3 \def\FDFflagPassword {8192} % 14 \def\FDFflagSort {524288} % 20 \def\FDFflagFileSelect {1048576} % 21 %D There is a second, again bitset oriented, \type{/F} flag: \def\FDFplusInvisible {1} % 1 \def\FDFplusHidden {2} % 2 \def\FDFplusPrintable {4} % 3 %def\FDFplusNoView {32} % 6 %def\FDFplusToggleNoView {256} % 9 \def\FDFplusAutoView {256} % {288} % 6+9 %D \macros %D {setFDFswitches} %D %D The non||type bits are mapped onto user||interface %D swithes, to be used later on: \def\@@FDFflag{FDFflag} \def\@@FDFplus{FDFplus} \letvalue {\@@FDFflag\v!readonly}=\FDFflagReadOnly \letvalue {\@@FDFflag\v!required}=\FDFflagRequired \letvalue {\@@FDFflag\v!protected}=\FDFflagPassword \letvalue {\@@FDFflag\v!sorted}=\FDFflagSort \letvalue {\@@FDFflag\v!unavailable}=\FDFflagNoExport \letvalue {\@@FDFflag\v!nocheck}=\FDFflagDoNotSpellCheck \letvalue {\@@FDFflag\v!fixed}=\FDFflagDoNotScroll \letvalue {\@@FDFflag\v!file}=\FDFflagFileSelect \letvalue {\@@FDFplus\v!hidden}=\FDFplusHidden \letvalue {\@@FDFplus\v!printable}=\FDFplusPrintable \letvalue {\@@FDFplus\v!auto}=\FDFplusAutoView %D A set of switches is collected into the flags we mentioned %D before by the next macro (we don't handle negations yet, %D but do take care of redundancy): \def\FDFflag{0} \def\FDFplus{0} \def\setFDFswitches[#1]% {\bgroup \!!counta\zerocount \!!countb\zerocount \def\docommand##1% {\doifsomething{##1} {\advance\!!counta 0\getvalue{\@@FDFflag##1}% \setvalue{\@@FDFflag##1}{0}% \advance\!!countb 0\getvalue{\@@FDFplus##1}% \setvalue{\@@FDFplus##1}{0}}}% \processcommacommand[#1]\docommand \xdef\FDFflag{\the\!!counta}% \xdef\FDFplus{\the\!!countb}% \egroup} %D \macros %D {setFDFvalues} %D %D Menu items are passed as an array of \type{(string)}'s and %D the content of this array is build with: \let\FDFvalues \empty \let\FDFfirstvalues \empty \let\FDFsecondvalues\empty \let\FDFkidlist \empty \let\FDFdefaultindex\!!zerocount \let\FDFdefaultvalue\empty % Why do we need to tweak this mechanism each time acrobat updates ... % it would make sense to have version specific sections in pdf files % since my guess is that it never will be done right since each year % new programmers have new ideas about what is supposed to happen with % kids. So .. best is not to trust this feature esp not for radio % widgets. (new flags, different interpretation of AS etc etc) \def\setFDFvalues[#1][#2]% #1 = list (item=>value) #2 = default {\let\FDFvalues \empty %when radio opt works ok %\let\FDFfirstvalues \empty %\let\FDFsecondvalues\empty \let\FDFkidlist \empty %\let\FDFdefaultindex\!!zerocount %\let\FDFdefaultvalue\empty %\scratchcounter\zerocount \def\dodocommand##1=>##2=>##3\end {\addtocommalist{##1}\FDFkidlist %\edef\FDFfirstvalues{\FDFfirstvalues(##1)}% %\doif{##1}{#2}{\edef\FDFdefaultindex{\the\scratchcounter}}% %\advance\scratchcounter\plusone \doifelsenothing{##2} {\doif{##1}{#2}{\edef\FDFdefaultvalue{##1}}% %\edef\FDFsecondvalues{\FDFsecondvalues(##1)}% \edef\FDFvalues{\FDFvalues [(##1)(##1)] }} {\doif{##1}{#2}{\edef\FDFdefaultvalue{##2}}% %\edef\FDFsecondvalues{\FDFsecondvalues(##2)}% \edef\FDFvalues{\FDFvalues [(##2)(##1)] }}}% ! ##1 is shown \def\docommand##1% {\dodocommand##1=>=>\end}% \expanded{\processcommalist[#1]}\docommand} %D This macro accepts comma separated \type{visual=>result} %D pairs. %D \macros %D {setFDFalignment} %D %D Text and line fields can be entered and showed in three %D alternative alingments, indicated by a digit: \def\FDFalign{0} \def\setFDFalignment[#1]% {\processaction [#1] [ \v!left=>\edef\FDFalign{2}, % raggedleft \v!middle=>\edef\FDFalign{1}, % raggedcenter \v!right=>\edef\FDFalign{0}]} % raggedright %D \macros %D {setFDFattributes} %D %D The weak part of (at least version 2.1 \PDF) is that only %D default fonts are handled well. Another restriction is that %D the encoding vector must be the standard \PDF\ document one. %D Although the \PDF\ reference explictly states that one could %D use the normal text operators, leading is not yet handled. %D %D For the moment the current \CONTEXT\ font is mapped onto %D one best suitable default font. The color attribute is %D less problematic and is directly derived from the \CONTEXT\ %D color. \def\FDFattributes{/Helv 12 Tf 0 g 14.4 TL} \def\FDFrm {TiRo} \def\FDFss {Helv} \def\FDFtt {Cour} \def\FDFrmtf{TiRo} \def\FDFsstf{Helv} \def\FDFtttf{Cour} \def\FDFrmbf{TiBo} \def\FDFssbf{HeBo} \def\FDFttbf{CoBo} \def\FDFrmit{TiIt} \def\FDFssit{HeOb} \def\FDFttit{CoOb} \def\FDFrmsl{TiIt} \def\FDFsssl{HeOb} \def\FDFttsl{CoOb} \def\FDFrmbi{TiBI} \def\FDFssbi{HeBO} \def\FDFttbi{CoBO} \def\FDFrmbs{TiBI} \def\FDFssbs{HeBO} \def\FDFttbs{CoBO} \let\FDFusedfonts=\FDFsstf \def\setFDFattributes[#1,#2,#3,#4]% style, color, backgroundcolor, framecolor {\bgroup % nog interlinie: n TL \setbox\scratchbox\hbox \bgroup \doconvertfont{#1}{}% \PointsToBigPoints\bodyfontsize\size % x/xx, so better the actual size \doifdefinedelse{FDF\fontstyle\fontalternative} {\xdef\FDFattributes{\getvalue{FDF\fontstyle\fontalternative}}} {\doifdefinedelse{FDF\fontstyle} {\xdef\FDFattributes{\getvalue{FDF\fontstyle}}} {\xdef\FDFattributes{\FDFrm}}}% \doglobal\addtocommalist\FDFattributes\FDFusedfonts \xdef\FDFattributes% move up with "x.y Ts" {/\FDFattributes\space\size\space Tf\space\PDFcolor{#2}}% \doifelsenothing{#3} {\global\let\FDFsurroundings\empty} {\xdef\FDFsurroundings{/BG \FDFcolor{#3}}}% \doifsomething{#4} {\xdef\FDFsurroundings{\FDFsurroundings\space /BC \FDFcolor{#4}}}% \ifx\FDFsurroundings\empty \else \xdef\FDFsurroundings{/MK << \FDFsurroundings\space>>}% \fi \egroup \egroup} %D \macros %D {setFDFactions} %D %D Depending on the type of the field, one can assign %D \JAVASCRIPT\ code to a mouse event or keystroke. The next %D preparation macro shows what events are handled. \let\FDFactions\empty \def\setFDFactions[#1,#2,#3,#4,#5,#6,#7,#8,% {\global\let\FDFactions\empty \setFDFaction D#1\relax% mousedown \setFDFaction U#2\relax% mouseup \setFDFaction E#3\relax% enterregion \setFDFaction X#4\relax% exitregion \setFDFaction K#5\relax% afterkeystroke \setFDFaction F#6\relax% formatresult \setFDFaction V#7\relax% validateresult \setFDFaction C#8\relax% calculatewhatever \setFDFactionsmore} \def\setFDFactionsmore#1,#2]% {\setFDFaction{Fo}#1\relax% focusin \setFDFaction{Bl}#2\relax% focusout % was I (now pdf ref manual explicitly talks about lowercase l) \ifx\FDFactions\empty\else \xdef\FDFactions{/AA << \FDFactions >>}% since 1.3 no longer inherited \fi} % todo, when new var scheme is implemented % % \setFDFaction{PO}\@@DriverFieldPageOpen\relax % \setFDFaction{PC}\@@DriverFieldPageClose\relax % \setFDFaction{PV}\@@DriverFieldPageVisible\relax % \setFDFaction{PI}\@@DriverFieldPageInVisible\relax %D The event handler becomes something: %D %D \starttyping %D /AA << /D << /S ... >> ... /C << /S ... >> %D /A << /S /JavaScript /JS (...) >> %D \stoptyping % \def\setFDFaction#1#2\relax% % {\bgroup % \global\let\sanitizedJScode\empty % \def\setFDFaction##1% % {\doifreferencefoundelse{##1} % {\doifelse{\currentreferencespecial}{JS} % filter non-js % {\presetJScode % \currentreferenceoperation % \currentreferencearguments % \doPSsanitizeJScode\JScode\to\JScode % \xdef\sanitizedJScode{\sanitizedJScode\space\JScode}} % {\illegalreference{##1}}} % {\unknownreference{##1}}}% % \@EA\processcommalist\@EA[#2]\setFDFaction % one level expansion % \ifx\sanitizedJScode\empty \else % \xdef\FDFactions% % {\FDFactions /#1 << /S /JavaScript /JS (\sanitizedJScode) >> }% % \fi % \egroup} % % acrobat 5 supports other that JS actions too \def\setFDFaction#1#2\relax% {\bgroup \def\docommand{\xdef\FDFactions{\FDFactions /#1 << \lastPDFaction >> }}% \@EA\handlereferenceactions\@EA{#2}\docommand % one level expansion \egroup} %D \macros %D {testFDFactions} %D %D This rather confusion prone series of script can be tested %D with: %D %D \starttyping %D \testFDFactions %D \stoptyping %D %D which simply redefined the previous macro to one that prints %D a message to the console. \def\testFDFactions {\def\setFDFaction##1##2\relax% {\doPSsanitizeJScode console.show();console.println("executing:##1"); \to\sanitizedJScode \edef\FDFactions{\FDFactions /##1 << /S /JavaScript /JS (\sanitizedJScode) >> }}} %D \macros %D {doFDFregistercalculationset} %D %D There is at most one calculation order list, which defines %D the order in which fields are calculated. \let\PDFcalculationset\empty \def\doFDFregistercalculationset#1% {\def\PDFcalculationset{#1}} %D \macros %D {registerFDFobject,everylastshipout} %D %D Officially one needs to embed some general datastructures %D that tell the viewer what fields are present in the file, as %D well as what resources they use. The next mechanism does that %D job automatically when one registers the field. \def\flushFDFnames {\ifbuildFDFdictionary \ifx\FDFcollection\empty\else \ifbuildFDFencodingvector \doPDFdictionaryobject{FDF}{local:encodingvector}{\FDFencodingvector}% \fi \defineFDFfonts \doPDFarrayobject{FDF}{local:fields}{\FDFcollection}% \doPDFgetobjectreference{FDF}{local:fields}\PDFobjectreference % The /NeedAppearances is pretty important because % otherwise Acrobat 5 blows up on cloned radio widgets \doPDFdictionaryobject{FDF}{local:acroform} {/Fields \PDFobjectreference\space /NeedAppearances true \doFDFiffieldset\PDFcalculationset{/CO [\doFDFgetfieldset\PDFcalculationset]} /DR << /Font << \FDFfonts >> >> /DA (/Helv 10 Tf 0 g)}% \doPDFgetobjectreference{FDF}{local:acroform}\PDFobjectreference \doPDFaddtocatalog {/AcroForm \PDFobjectreference}% \global\let\FDFcollection\empty \global\let\flushFDFnames\relax \fi \fi} \let\FDFcollection\empty \def\registerFDFobject#1% {\ifbuildFDFdictionary \ifx\flushFDFnames\relax \writestatus{FDF}{second run needed for field list (#1)}% \fi \doPDFgetobjectreference{FDF}{#1}\PDFobjectreference \xdef\FDFcollection{\FDFcollection\space\PDFobjectreference}% \fi} \appendtoksonce \flushFDFnames \to \everylastshipout % test \everybye / was \prependtoksonce %D \macros %D {defineFDFfonts, %D ifbuildFDFdictionary, %D ifbuildFDFencodingvector} %D %D Another datastruture concerns the fonts used. We only %D define the fonts we use. \newif\ifbuildFDFdictionary \buildFDFdictionarytrue \newif\ifbuildFDFencodingvector \buildFDFencodingvectortrue \def\defineFDFfonts {\let\FDFfonts\empty \processcommacommand[\FDFusedfonts]\defineFDFfont} \def\defineFDFfont#1% {\ifbuildFDFencodingvector \doPDFgetobjectreference{FDF}{local:encodingvector}\PDFobjectreference \fi \doPDFdictionaryobject{FDF}{local:#1} {/Type /Font /Subtype /Type1 /Name /#1 \ifbuildFDFencodingvector /Encoding \PDFobjectreference\space\fi /BaseFont /\getvalue{FDFname#1}}% \doPDFgetobjectreference{FDF}{local:#1}\PDFobjectreference \edef\FDFfonts{\FDFfonts \space/#1 \PDFobjectreference}} %D Another list of constants: \def\FDFnameTiRo {Times-Roman} \def\FDFnameTiBo {Times-Bold} \def\FDFnameTiIt {Times-Italic} \def\FDFnameTiBI {Times-BoldItalic} \def\FDFnameHelv {Helvetica} \def\FDFnameHeBo {Helvetica-Bold} \def\FDFnameHeOb {Helvetica-Oblique} \def\FDFnameHeBO {Helvetica-BoldOblique} \def\FDFnameCour {Courier} \def\FDFnameCoBo {Courier-Bold} \def\FDFnameCoOb {Courier-Oblique} \def\FDFnameCoBO {Courier-BoldOblique} %D And a big one: (should be run time loaded (spec-run or %D so)). \def\FDFencodingvector {/Type /Encoding /Differences [ 24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde 39 /quotesingle 96 /grave 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction /guilsinglleft /guilsinglright /minus /perthousand /quotedblbase /quotedblleft /quotedblright /quoteleft /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron 164 /currency 166 /brokenbar 168 /dieresis /copyright /ordfeminine 172 /logicalnot /.notdef /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu 183 /periodcentered /cedilla /onesuperior /ordmasculine 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ]} %D \macros %D {currentFDFmode,currentFDFparent,currentFDFkids,currenrFDFroot} %D %D There are three more quasi global interfacing variables %D that need to be set. \let\currentFDFmode =\fieldlonermode \let\currentFDFkids =\empty \let\currentFDFparent=\empty \let\currentFDFroot =\empty %D \macros %D {dosetfieldstatus} %D %D And here comes the special that deals with them. \definespecial\dosetfieldstatus#1#2#3#4% {\chardef\currentFDFmode #1% \edef\currentFDFparent {#2}% \edef\currentFDFkids {#3}% \edef\currentFDFroot {#4}} %D \macros %D {dosetuppageview} %D %D Because this command will seldom be called, we can permit %D slow action processing. We need three settings, one for %D direct \PDF\ inclusion, the other as \PDFTEX\ keyword, an %D a last one for form. All determine in what way the %D screen is adapted when going to a destination. Watch the %D space. \def\PDFpageviewkey{fit} \def\PDFpageviewwrd{/Fit} \def\PDFpageview {/View [\PDFpageviewwrd] } \let\PDFpagexyzspec\relax % 0 0 0 hack, pdftex does handle this, for dvipdfmx we need height \def\dosetuppageview#1% watch the v-h swapping here {\processaction [#1] [ \v!fit=>\def\PDFpageviewkey {fit}\def\PDFpageviewwrd{/Fit}, \v!width=>\def\PDFpageviewkey {fith}\def\PDFpageviewwrd{/FitH}, \v!height=>\def\PDFpageviewkey {fitv}\def\PDFpageviewwrd{/FitV}, \v!minwidth=>\def\PDFpageviewkey{fitbh}\def\PDFpageviewwrd{/FitBH}, \v!minheight=>\def\PDFpageviewkey{fitbv}\def\PDFpageviewwrd{/FitBV}, \v!standard=>\ifx\PDFpagexyzspec\relax % empty does not work too wel with dpx \def\PDFpageviewkey{fit}% \def\PDFpageviewwrd{/Fit}% \else \edef\PDFpageviewkey{xyz \PDFpagexyzspec}% \edef\PDFpageviewwrd{/XYZ \PDFpagexyzspec}% \fi, \s!unknown=>\def\PDFpageviewkey {fit}\def\PDFpageviewwrd{/Fit}]% \edef\PDFpageview{\ifx\PDFpageviewwrd\empty\else/View [\PDFpageviewwrd]\fi}} %D \macros %D {setFDFkids} %D %D Clones as well as radiofields (which themselves can have %D cloned components) need a list of kids. The next macro %D builds one. \def\setFDFkids[#1][#2]% tag commalist {\let\FDFkids\empty \def\docommand##1% {\doPDFgetobjectreference{FDF}{#1##1}\PDFobjectreference \edef\FDFkids{\FDFkids\PDFobjectreference\space}}% \@EA\processcommalist\@EA[#2]\docommand \ifx\FDFkids\empty\else\edef\FDFkids{/Kids [\FDFkids]}\fi % \edef\FDFkids{/Kids [\FDFkids]}% } %D \macros %D {doFDFpresetlinefield,doFDFpresettextfield, %D doFDFpresetchoicefield,doFDFpresetpopupfield,doFDFpresetcombofield, %D doFDFpresetpushfield,doFDFpresetcheckfield, %D doFDFpresetfield,doFDFpresetradiorecord} %D %D I would say: read the \PDF\ reference manual first and see %D what happens here next. Lucky us that they have so much in %D common. \def\doFDFpresetlinefield#1#2#3#4#5#6#7#8#9% {\bgroup \setFDFlayer\@@DriverFieldLayer \setFDFswitches[#7]% \setFDFattributes[#6]% \setFDFalignment[#8]% \setFDFactions[#9]% \expanded{\escapePSstring#4}\to\FDFtext \ifcase\currentFDFmode \doPDFannotationobject{FDF}{#1}{#2}{#3} {/Subtype /Widget /T (#1) /FT /Tx /MaxLen \ifcase0#5 1000 \else#5 \fi %/DV (#4) /V (#4) % value added /DV (\FDFtext) /V (\FDFtext) % value added /Ff \FDFflag\space /F \FDFplus\space /DA (\FDFattributes) \FDFlayer\space \FDFsurroundings\space /Q \FDFalign\space \FDFactions}% \registerFDFobject{#1}% \or \setFDFkids[kids:][\currentFDFkids]% \doPDFdictionaryobject{FDF}{#1} {/T (#1) /FT /Tx /MaxLen \ifcase0#5 1000 \else#5 \fi \FDFkids\space %/DV (#4) /V (#4) % value added /DV (\FDFtext) /V (\FDFtext) % value added /Ff \FDFflag\space /F \FDFplus\space /DA (\FDFattributes) \FDFlayer\space \FDFsurroundings\space /Q \FDFalign\space \FDFactions}% \registerFDFobject{#1}% \or \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference %\global\objectreferencingtrue \doPDFannotationobject{FDF}{kids:#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference /Ff \FDFflag\space /F \FDFplus\space /DA (\FDFattributes) \FDFlayer\space \FDFsurroundings\space /Q \FDFalign\space \FDFactions}% \or \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference %\global\objectreferencingtrue \doPDFannotationobject{FDF}{kids:#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference /F \FDFplus \FDFactions}% \fi \egroup} \def\doFDFpresettextfield#1#2#3#4#5#6#7#8#9% {\doFDFpresetlinefield{#1}{#2}{#3}{#4}{#5}{#6}{MultiLine,#7}{#8}{#9}} \def\doFDFpresetchoicefield#1#2#3#4#5#6#7#8% {\bgroup \setFDFlayer\@@DriverFieldLayer \setFDFswitches[#6]% \setFDFattributes[#5]% \setFDFvalues[#7][#4]% \setFDFactions[#8]% \ifcase\currentFDFmode \doPDFannotationobject{FDF}{#1}{#2}{#3} {/Subtype /Widget /T (#1) /FT /Ch /DV (#4) /V (#4) /Ff \FDFflag\space /F \FDFplus\space /DA (\FDFattributes) \FDFlayer\space \FDFsurroundings\space /Opt [\FDFvalues] \FDFactions}% \registerFDFobject{#1}% \or \setFDFkids[kids:][\currentFDFkids]% \doPDFdictionaryobject{FDF}{#1} {/T (#1) /FT /Ch \FDFkids\space /DV (#4) /V (#4) /Ff \FDFflag\space /F \FDFplus\space /DA (\FDFattributes) \FDFlayer\space \FDFsurroundings\space /Opt [\FDFvalues] \FDFactions}% \registerFDFobject{#1}% \or \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference %\global\objectreferencingtrue \doPDFannotationobject{FDF}{kids:#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference /Ff \FDFflag\space /F \FDFplus\space /DA (\FDFattributes) \FDFlayer\space \FDFsurroundings\space \FDFactions}% \or \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference %\global\objectreferencingtrue \doPDFannotationobject{FDF}{kids:#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference /F \FDFplus \FDFactions}% \fi \egroup} \def\doFDFpresetpopupfield#1#2#3#4#5#6#7#8% {\doFDFpresetchoicefield{#1}{#2}{#3}{#4}{#5}{PopUp,#6}{#7}{#8}} \def\doFDFpresetcombofield#1#2#3#4#5#6#7#8% {\doFDFpresetchoicefield{#1}{#2}{#3}{#4}{#5}{PopUp,Edit,#6}{#7}{#8}} \newif\ifFDFvalues \def\doFDFpresetpushcheckfield#1#2#3#4#5#6#7#8% in acro<5 (\FDFdefault) {\bgroup % in acro>5 /\FDFdefault \setFDFlayer\@@DriverFieldLayer \ifcase#8\relax\FDFvaluesfalse\else\FDFvaluestrue\fi \setFDFswitches[#5]% \setFDFactions[#7]% \doifelse{#4}{1} {\def\FDFdefault{On}} {\def\FDFdefault{Off}}% \ifcase\currentFDFmode \doFDFappearance{On}{#6}{#8}% \doPDFannotationobject{FDF}{#1}{#2}{#3} {/Subtype /Widget /T (#1) /FT /Btn \ifFDFvalues /DV /\FDFdefault\space /V /\FDFdefault\space /AS /\FDFdefault\space \fi \FDFlayer /Ff \FDFflag\space /F \FDFplus\space \FDFlayer\space \FDFappearance\space % /IF << /SW /N >> % strange, only works for stupid buttons \FDFactions}% \registerFDFobject{#1}% \or % no appearance and layer ? \setFDFkids[kids:][\currentFDFkids]% \doPDFdictionaryobject{FDF}{#1} {/T (#1) /FT /Btn \FDFkids\space \ifFDFvalues /DV /\FDFdefault\space /V /\FDFdefault\space /AS /\FDFdefault\space \fi /Ff \FDFflag\space /F \FDFplus\space \FDFactions}% \registerFDFobject{#1}% \or \doFDFappearance{On}{#6}{#8}% \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference %\global\objectreferencingtrue \doPDFannotationobject{FDF}{kids:#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference\space \ifFDFvalues /DV /\FDFdefault\space /V /\FDFdefault\space /AS /\FDFdefault\space \fi /Ff \FDFflag\space /F \FDFplus\space \FDFlayer\space \FDFappearance\space \FDFactions}% \or \doFDFappearance{On}{#6}{#8}% \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference %\global\objectreferencingtrue \doPDFannotationobject{FDF}{kids:#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference\space /F \FDFplus\space \ifFDFvalues /DV /\FDFdefault\space /V /\FDFdefault\space /AS /\FDFdefault\space \fi \FDFlayer\space \FDFappearance \FDFactions}% \fi \egroup} \def\doFDFpresetpushfield#1#2#3#4#5#6#7% {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{PushButton,#5}{#6}{#7}{0}} \def\doFDFpresetcheckfield#1#2#3#4#5#6#7% {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{#5}{#6}{#7}{1}} % As pdf widgets are rather consistently upward incompatible % especially with regards to inheritance, the following code is not % quite okay. I've decided no longer to bother about in it in MkII % and use a flat model in MkIV which somehow seems to work better. \def\doFDFpresetradiofield#1#2#3#4#5#6#7#8% {\bgroup \setFDFlayer\@@DriverFieldLayer \FDFvaluestrue \setFDFswitches[#5]% \setFDFactions[#8]% \doifelsenothing{#4} {\def\FDFdefault{Off}} {\def\FDFdefault{#4}}% \@EA\aftersplitstring\FDFdefault\at=>\to\FDFdefaultvalue \ifx\FDFdefaultvalue\empty\else\let\FDFdefault\FDFdefaultvalue\fi \ifcase\currentFDFmode \doFDFappearance{#1}{#7}{1}% \doPDFgetobjectreference{FDF}{#6}\PDFobjectreference \doPDFannotationobject{FDF}{#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference\space /F \FDFplus\space /AS /\FDFdefault\space \FDFlayer\space \FDFappearance\space \FDFactions}% \registerFDFobject{#1}% \or \setFDFkids[kids:][\currentFDFkids]% \doPDFgetobjectreference{FDF}{#6}\PDFobjectreference \doPDFdictionaryobject{FDF}{#1} {/Parent \PDFobjectreference\space \FDFkids\space /F \FDFplus\space \FDFactions}% \registerFDFobject{#1}% \or %\doFDFappearance{#1}{#7}{1}% \doFDFappearance{\currentFDFparent}{#7}{1}% \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference %\global\objectreferencingtrue % nb \doPDFannotationobject{FDF}{kids:#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference\space /AS /\FDFdefault\space /F \FDFplus\space \FDFlayer\space \FDFappearance\space \FDFactions}% \or %\doFDFappearance{#1}{#7}{1}% \doFDFappearance{\currentFDFparent}{#7}{1}% \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference %\global\objectreferencingtrue \doPDFannotationobject{FDF}{kids:#1}{#2}{#3} {/Subtype /Widget /Parent \PDFobjectreference\space /AS /\FDFdefault\space /F \FDFplus\space \FDFlayer\space \FDFappearance\space \FDFactions}% \fi \egroup} %D \macros %D {setFDFstrings} %D %D This one creates a string array. %\def\setFDFstrings[#1]% % {\let\FDFstrings\empty % \def\docommand##1{\edef\FDFstrings{\FDFstrings(##1)}}% % \processcommacommand[#1]\docommand} % Beware, RadiosInUnison is really needed in the pre 1.5/6 time this % was the default but out of a sudden it's no longer the case. Also % the NoToggleToOff interferes with kids of kids and both it will % break older documents, i.e. so much for pdf as standard. With % features like widgets we can probably best wait till adobe tools % themselves support it because that's probably the moment that % functionality gets frozen/becomes definitive. Actually, acrobat % flattens the kids tree, so that's yet another situation. The % interesting thing is that it worked ok in acrobat 2/3 but got bugged % in later versions. [The rationale is in html compatibility, which % seems to be more important than compatibility of documents, which in % turn renders acrobat useless for forms.] Anyway, synchronization is % broken or not depending on the combination pdfversion/acrobatversion. % % Hm, nowadays Radio will overload RadiosInUnison so we need to use only one % of them. \def\doFDFpresetradiorecord#1#2#3#4#5% {\bgroup % < pdf 1.5 (1.5 was broken) % \setFDFswitches[Radio,NoToggleToOff,RadiosInUnison,#3]% % > pdf 1.5 % \setFDFswitches[Radio,RadiosInUnison,#3]% % > pdf 1.6 \setFDFswitches[RadiosInUnison,#3]% %setFDFswitches[PushButton,RadiosInUnison,#3]% this is what acrobat itself does % older, else fatal error % \setFDFkids[#4][]% % newer \setFDFvalues[#4][#2]% inits kidlist \expanded{\setFDFkids[][\FDFkidlist]}% % \setFDFactions[#5]% \doPDFdictionaryobject{FDF}{#1} {%/Subtype /Widget /FT /Btn /T (#1) /Rect [0 0 0 0] % used to be this % /V (#2) % then this % /DV (#2) % since this bomded in 5 % /V (#2) % and now finally this works /H /N % /opt is buggy in 5.05, only works once, sigh %\ifx\FDFfirstvalues\FDFsecondvalues /V /#2 %\else % /V /\FDFdefaultindex\space % /Opt [\FDFsecondvalues] %\fi /Ff \FDFflag\space /F \FDFplus\space \FDFkids\space \FDFactions}% \egroup} %D At the cost of some more references, we can save bytes, %D by sharing appearance dictionaries. This code needs more %D documentation. Surprise: \def\dodoFDFappearance#1#2% {\ifx#2\empty\else \dogetcommacommandelement1\from#2\to\commalistelement \ifx\commalistelement\empty\else \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference \edef\N{\ifFDFvalues\N /#1 \fi\PDFobjectreference\space}% \fi \dogetcommacommandelement2\from#2\to\commalistelement \ifx\commalistelement\empty\else \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference \edef\R{\ifFDFvalues\R /#1 \fi\PDFobjectreference\space}% \fi \dogetcommacommandelement3\from#2\to\commalistelement \ifx\commalistelement\empty\else \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference \edef\D{\ifFDFvalues\D /#1 \fi\PDFobjectreference\space}% \def\FDFappearance{/H /P }% \fi \fi} \def\redoFDFappearance#1% {\ifx#1\empty\else \dogetcommacommandelement3\from#1\to\commalistelement \ifx\commalistelement\empty\else \def\FDFappearance{/H /P }% \fi \fi} \def\doFDFappearance#1#2#3% {\ifcase#3\relax % push only field \edef\yes{#2}% \let\no\empty \else % on / off field \dogetcommacommandelement1\from#2,\to\yes \dogetcommacommandelement2\from#2,\to\no \fi \def\FDFappearance{/H /N}% \doifobjectfoundelse{FDF}{ap:#1:\yes:\no} {\redoFDFappearance\yes \redoFDFappearance\no} {\presetobject{FDF}{ap:#1:\yes:\no}% funny hack \let\N\empty\let\R\empty\let\D\empty \dodoFDFappearance{#1}\yes \dodoFDFappearance{Off}\no \doPDFdictionaryobject{FDF}{ap:#1:\yes:\no} {\ifx\N\empty\else/N \ifFDFvalues<<\N>>\else\N\fi\fi \ifx\R\empty\else/R \ifFDFvalues<<\R>>\else\R\fi\fi \ifx\D\empty\else/D \ifFDFvalues<<\D>>\else\D\fi\fi}}% \doPDFgetobjectreference{FDF}{ap:#1:\yes:\no}\PDFobjectreference \edef\FDFappearance{\FDFappearance /AP \PDFobjectreference}} %\def\doFDFdefault#1#2% % {\dogetcommacommandelement1\from#1,\to\commalistelement % \dogetcommacommandelement1\from\commalistelement\to\commalistelement % \doifelse{\commalistelement}{#2} % kan ook met \ifx % {\def\FDFdefault{On}}{\def\FDFdefault{Off}}} \def\doFDFdefault#1#2% {\doifelse{#2}{1}{\def\FDFdefault{On}}{\def\FDFdefault{Off}}} %D Layer support: \def\setFDFlayer#1% todo : \ifx\PDFobjectreference\noPDFobjectreference ipv found {\letempty\FDFlayer \doifsomething{#1}% {\checkproperty[#1]% == \dodocheckproperty\@@DriverFieldLayer \doifobjectreferencefoundelse{PDLN}{#1} {\doPDFgetobjectreference{PDLN}{#1}\!!stringa % we need to avoid a clash with other macros \edef\FDFlayer{/OC \!!stringa}}% \donothing}} %D The three appearances {\em normal}, \type{roll over} and %D \type{push down} are passed as comma separated triplets, %D that is, the second argument can look like: %D %D \starttyping %D {yes,ok,fine},{no,rubish,awful} %D \stoptyping %D \macros %D {doFDFdefinefieldset,doFDFgetfieldset,doFDFiffieldset} %D %D Field sets, the ones we use in submitting and resetting %D fields, are implemented using the next low level specials: %D %D \starttyping %D \doFDFdefinefieldset{TAG}{name,name,...} %D \doFDFgetfieldset{TAG} %D \doFDFiffieldset{TAG}{sequence} %D \stoptyping \def\doFDFdefinefieldset#1#2% tag commalist {\let\FDFfieldset\empty \def\docommand##1% {\doPDFgetobjectreference{FDF}{##1}\PDFobjectreference \edef\FDFfieldset{\FDFfieldset\PDFobjectreference\space}}% \processcommacommand[#2]\docommand % nb: command \setevalue{FDF:set:#1}{\FDFfieldset}} \def\doFDFgetfieldset#1% {\getvalue{FDF:set:#1}} \def\doFDFiffieldset#1#2% {\ifundefined{FDF:set:#1}\else#2\fi} %D In the goto specials we took care of secondary references. %D Here we define the macros used. \def\doPDFresetgotowhereever {\global\let\secondaryPDFreferences\empty} \doPDFresetgotowhereever % just to be sure % we can (in etex) share more by testing on this \def\savesecondaryPDFreference#1% {\@EA\xdef\csname PDF-SR:\the\nofsecondaryreferences\endcsname{#1}} \def\savesecondaryPDFreference % #1 == \action {\global\@EA\let\csname PDF-SR:\the\nofsecondaryreferences\endcsname} %\def\getsecondaryPDFreferences% % {\ifcase\nofsecondaryreferences\else % %\doifdefined{PDF-SR:\the\nofsecondaryreferences} % \xdef\secondaryPDFreferences% % {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space % \secondaryPDFreferences >>}% % \global\advance\nofsecondaryreferences \minusone % \expandafter\getsecondaryPDFreferences % \fi} % test should happen in core-ref \def\getsecondaryPDFreferences {\ifcase\nofsecondaryreferences\else \ifcsname PDF-SR:\the\nofsecondaryreferences\endcsname \xdef\secondaryPDFreferences {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space \secondaryPDFreferences >>}% \fi \global\advance\nofsecondaryreferences \minusone \expandafter\getsecondaryPDFreferences \fi} %D \macros %D {loadFDFfields, showFDFfields, %D getFDFfield, setFDFfield} %D %D Once filled in, we can export or submit the field in the %D \FDF\ file format. Such a file can be loaded by %D %D \starttyping %D \loadFDFfields{fiel-ini} %D \stoptyping %D %D or inspected by %D %D \starttyping %D \showFDFfields{fiel-ini} %D \stoptyping %D %D After both commands, one can use %D %D \starttyping %D \getFDFfield{name} %D \setFDFfield{name}{value} %D \stoptyping %D %D to inspect and overrule the data. %D %D By default \CONTEXT\ calls the perl script \type{fdf2tex}. %D This script reads the \type{fdf} file and produces a file %D named \type{filename.fdt}. If one disables the call to this %D script, by saying: %D %D \starttyping %D \runFDFconverterfalse %D \stoptyping %D %D or when \CONTEXT\ cannot find the \type{fdt} file, it tries %D to interpret the \type{fdf} file directly. Both mechanisms %D are rather crude. \newif\ifrunFDFconverter \runFDFconvertertrue %D The \PERL\ script produces a file formatted as: %D %D \starttyping %D \beginFDFobject %D \beginFDFdata %D \beginFDFfields %D \FDFfield[name=,value=] %D \endFDFfields %D \endFDFdata %D \endFDFobject %D \stoptyping %D %D One reason for using key value pairs is that we cannot be %D sure or the order in which the name and value are given %D (actually the reverse). \def\PERLloadFDFfields#1% will become obsolete soon {\bgroup \global\let\allFDFfields\empty \ifrunFDFconverter \executesystemcommand{fdf2tex #1}% \let\beginFDFobject\relax \let\endFDFobject\relax \let\beginFDFdata \relax \let\endFDFdata \relax \let\beginFDFfields\relax \let\endFDFfields\relax \def\FDFfield[##1]% {\getparameters[FDF][##1]% \doglobal\addtocommalist\FDFname\allFDFfields \global\setFDFfield{\FDFname}{\FDFvalue}}% \ReadFile{#1.fdt}% \fi \egroup} %D The next macro does the same job, but now in the \TEX\ way %D of doing things. Easy eh? Will become obsolete! \bgroup \catcode`\/=\@@other \global\let\normalslash=/ \catcode`\/=\@@escape \gdef\TEXloadFDFfields#1% will become obsolete due to XFDF {\bgroup \setbox0=\hbox {\global\let\allFDFfields\empty \scratchcounter=0 \escapechar=-1 \catcode`\/=\@@escape \catcode`\(=\@@begingroup \catcode`\)=\@@endgroup \catcode`\%=\@@letter \let/A =\relax \let/AS =\relax \let/Kids=\relax \let/Fields=\relax \let/F =\relax \let/ID =\relax \let/SetF=\relax \let/setFf =\relax \let/Ff=\relax \let/Opt=\relax \let/ClrF=\relax \let/ClrFf =\relax \let/AP=\relax \let/FDF=\relax \let/Root=\relax \def/T##1{\check\Title{##1}} \def/V{\bgroup\catcode`\/=\@@other\futurelet\next/doV} \def/doV{\ifx\next\normalslash\@EA/doVb\else\@EA/doVa\fi} \def/doVa##1{\egroup\check\Value{##1}} \def/doVb##1##2 {\egroup\check\Value{##2}} % watch the space \def\check##1##2% {\def##1{##2} \advance\scratchcounter\plusone\relax \ifodd\scratchcounter \else \defconvertedcommand\asciia\Title \global\setFDFfield{\asciia}{\Value} \doglobal\addtocommalist\Title\allFDFfields \fi} \ReadFile{#1.fdf}}% \egroup} \egroup %D Whatever mechanism is used, the next macros can be used to %D fetch the values. \def\getFDFfield #1{\getvalue {FDFfield::#1}} \def\setFDFfield#1#2{\setevalue{FDFfield::#1}{#2}} %D Of course the fields are only present when the file is %D loaded. \def\loadFDFfields#1% {\PERLloadFDFfields{#1}% \ifx\allFDFfields\empty \TEXloadFDFfields{#1}% \fi} \def\showFDFfields#1% {\bgroup \loadFDFfields{#1} \def\docommand##1{\par##1 = \getFDFfield{##1}\par}% \processcommacommand[\allFDFfields]\docommand \egroup} %D \macros %D {sanitizePDFencoding,sanitizePDFdocencoding} %D %D We already dealt with the encoding vector. Conversion from %D \TEX\ \ASCII\ encoding to the other one, is accomplished by %D the next few macros. Wach out: we don't group here. %D This will be reimplemented using the mapping mechanism. % \def\enablePDFdocencoding % {\reducetocoding[pdfdoc]\simplifycommands} \def\enablePDFdocencoding {\enablecoding[pdfdoc]% \enablelanguagespecifics[\currentlanguage]% redundant ? \simplifycommands} \long\def\sanitizePDFdocencoding#1\to#2% {\enablePDFcrlf \enablePDFdocencoding %\honorunexpanded % otherwise problems with "e etc in de \edef#2{#1}} \bgroup \catcode`\^^M=\@@active \gdef\enablePDFcrlf% {\def\\{\string\r}% \def\par{\\\\}% \def\endgraf{\\\\}% \catcode`\^^M=\@@active% \let^^M=\\} \egroup % \let\sanitizePDFencoding\sanitizePDFdocencoding %D The conversions comes down to (for the sake of speed the %D implementation combines steps): %D %D \startitemize %D \item we expand the \UTF\ sequences into \type {\unicodechar}'s %D \item spaces become character 255's (so that they are not %D gobbled in argument fetching %D \item normal \ASCII\ chars are unchanged %D \item \par's and alike are converted to \type {\unicodechar}'s %D \stopitemize %D %D This happens by expansion; next we convert the resulting %D sequence by interpreting the stream. \long\def\sanitizePDFuniencoding#1\to#2% {\enablePDFunicrlf \simplifycommands % added due to Dohyun Kim \let\unicodechar\relax % prevent further expansion \retainlccodes\lccode32=255 % slooow \lowercasestring\PDFunicodetrigger#1\to#2% \edef#2{\expandafter\doPDFuni#2\empty\empty}} % slooow %D Handling of empty lines: \bgroup \catcode`\^^M=\@@active \gdef\enablePDFunicrlf% {\def\\{\unicodechar{13}}% \def\par{\\\\}% \catcode`\^^M=\@@active% \let^^M=\\} \egroup %D Conversion to 16 bit \UNICODE: \def\PDFunicodechar#1% {\@EA\lchexnumbers\@EA{\number\utfdiv{#1}}% \@EA\lchexnumbers\@EA{\number\utfmod{#1}}} \def\PDFunicodetrigger {\unicodechar{65279}} %D The postprocessor: \def\doPDFuni#1% {\ifx#1\relax \@EA\dodoPDFuni \else\ifx#1\empty % quit \else \@EAEAEA\nodoPDFuni \fi\fi#1} \def\nodoPDFuni#1% {\PDFunicodechar{\ifnum`#1=255 32\else`#1\fi}\doPDFuni} \def\dodoPDFuni#1#2% {\PDFunicodechar{#2}\doPDFuni} \def\sanitizePDFencoding {\doifelse\currentregime{utf}{\PDFunicodetrue\sanitizePDFuniencoding}\sanitizePDFdocencoding} %D A bit out of place, but useful: \ifdefined\everysetfield \else \newtoks\everysetfield \fi \appendtoksonce \enablePDFdocencoding \enablePDFcrlf \to \everysetfield %D \macros %D {doPDFinsertcomment} %D %D An example its use is the next special, one that deals with %D text annotations. % starting point (keep this) % % \long\def\doPDFinsertcomment#1#2#3#4#5#6#7#8% % {\bgroup % title width height color open symbol collect data % \doifelsenothing{#1} % {\let\PDFidentifier\empty} % {\def\PDFidentifier{/T (#1)}}% % \doifelsenothing{#4} % {\let\PDFattributes\empty} % {\def\PDFattributes{/C \FDFcolor{#4}}}% % \doifundefinedelse{PDFsymbol#6} % {\let\PDFsymbol\empty} % {\def\PDFsymbol{/Name \getvalue{PDFsymbol#6} }}% % \sanitizePDFencoding#8\to\PDFdata % \setbox\scratchbox\vbox to #3 % {\vfill % \doPDFannotation{#2}{#3} % {/Subtype /Text % \ifcase#5 \else/Open true\fi % /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi % \PDFsymbol % \PDFidentifier % \PDFattributes}}% % \wd\scratchbox\zeropoint % \ht\scratchbox\zeropoint % \dp\scratchbox\zeropoint % \box\scratchbox % \egroup} \newcounter\nofFDFcomments \newif\ifPDFpopupcomments \PDFpopupcommentstrue \def\doPDFflushcomments {\box\PDFsymbolbox} \long\def\doPDFinsertcomment#1#2#3#4#5#6#7#8% % \@@DriverCommentLayer set otherwise {\bgroup % title width height color open symbol collect data \presetPDFsymbolappearance{#4}{#6}{#2}{#3}\!!zeropoint% sets width/height % \doifelsenothing{#1} % {\let\PDFidentifier\empty} % {\def\PDFidentifier{/T (#1)}}% \doifelsenothing{#1} {\let\PDFidentifier\empty} {\sanitizePDFencoding#1\to\PDFcommenttitle \def\PDFidentifier{/T \ifPDFunicode <\PDFcommenttitle>\else (\PDFcommenttitle)\fi}}% \sanitizePDFencoding#8\to\PDFdata \setFDFlayer\@@DriverCommentLayer \startPDFsymbolappearance \ifPDFpopupcomments \doglobal\increment\nofFDFcomments \doifobjectreferencefoundelse{FDF}{c:\nofFDFcomments} {\doPDFgetobjectreference{FDF}{c:\nofFDFcomments}\PDFobjectreference \donetrue} \donefalse \ifdone \setbox\scratchbox\hbox {\doPDFannotationobject{FDF}{c::\nofFDFcomments}{#2}{#3}% text window, size does not work {/Subtype /Popup /Parent \PDFobjectreference}}% \ifcase#7\relax \vbox to \height{\forgetall\vskip#3\box\scratchbox\vss}% \else % incredible trial and error hack % it's quite a mess, the annot width cannot be set, well, it can % but the appearance and text sizes get mixed up % \setbox\scratchbox\vbox to \height{\forgetall\vskip#3\box\scratchbox\vss}% % \global\setbox\PDFsymbolbox\vbox % {\hsize#2% % \forgetall % \vsmash{\box\PDFsymbolbox} % \box\scratchbox}% % this may change when acrobat gets less bugged \setbox\scratchbox\vbox to #3{\forgetall\vss\box\scratchbox}% \wd\scratchbox#2% \global\setbox\PDFsymbolbox\vbox {\startoverlay{\box\PDFsymbolbox}{\box\scratchbox}\stopoverlay}% \fi \fi % generic \doifobjectreferencefoundelse{FDF}{c::\nofFDFcomments} {\doPDFgetobjectreference{FDF}{c::\nofFDFcomments}\PDFobjectreference \donetrue} \donefalse \doPDFannotationobject{FDF}{c:\nofFDFcomments}{\width}{\height} {/Subtype /Text \ifcase#5 \else/Open true\fi % pdftex (efficient) % \ifdone /Popup \PDFobjref\pdflastannot\fi % generic (less efficient) \ifdone /Popup \PDFobjectreference\fi /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi \PDFidentifier \FDFlayer \PDFsymbol \PDFattributes}% \else \doPDFannotation{#2}{#3} {/Subtype /Text \ifcase#5 \else/Open true\fi /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi \FDFlayer \PDFsymbol \PDFidentifier \PDFattributes}% \fi \stopPDFsymbolappearance \egroup} % symbols with a reasonable default of 18/24 pt \newbox\PDFsymbolbox \def\PDFsymbolNew {/Insert} \def\PDFsymbolBalloon {/Comment} \def\PDFsymbolAddition {/NewParagraph} \def\PDFsymbolHelp {/Help} \def\PDFsymbolParagraph {/Paragraph} \def\PDFsymbolKey {/Key } \def\PDFsymbolGraph {/Graph} \def\PDFsymbolPaperclip {/Paperclip} \def\PDFsymbolAttachment{/Attachment} \def\PDFsymbolTag {/Tag} \def\startPDFsymbolappearance {\setbox\scratchbox\vbox to \totalheight \bgroup \vfill} \def\stopPDFsymbolappearance {\egroup \setbox\scratchbox\hbox{\lower\depth\box\scratchbox}% \wd\scratchbox\width \ht\scratchbox\height \dp\scratchbox\depth \box\scratchbox} \def\presetPDFsymbolappearance#1#2#3#4#5% symbol color width height depth {\doifelsenothing{#1} {\let\PDFattributes\empty} {\def\PDFattributes{/C \FDFcolor{#1}}}% \scratchdimen#3\edef\width {\the\scratchdimen}% \scratchdimen#4\edef\height{\the\scratchdimen}% \scratchdimen#5\edef\depth {\the\scratchdimen}% \advance\scratchdimen\height\edef\totalheight{\the\scratchdimen}% \doifelsenothing{#2} {\let\PDFsymbol\empty} {\ifundefined{PDFsymbol#2}% \getfromcommacommand[#2][1]\let\PDFsymbolnormalsymbol\commalistelement \getfromcommacommand[#2][2]\let\PDFsymboldownsymbol \commalistelement \doifsymboldefinedelse\PDFsymbolnormalsymbol {\doifsymboldefinedelse\PDFsymboldownsymbol {\dopresetPDFsymbolappearance \PDFsymbolnormalsymbol\PDFsymboldownsymbol} {\dopresetPDFsymbolappearance \PDFsymbolnormalsymbol\PDFsymbolnormalsymbol}} {\doifsymboldefinedelse\PDFsymboldownsymbol {\dopresetPDFsymbolappearance \PDFsymboldownsymbol\PDFsymboldownsymbol} {\let\PDFsymbol\empty}}% \else \def\PDFsymbol{/Name \getvalue{PDFsymbol#2} }% \fi}} \def\dopresetPDFsymbolappearance#1#2% {\dopresetfieldsymbol{#1}% \dopresetfieldsymbol{#2}% \setbox\scratchbox\hbox{\symbol[#1]}% \edef\width {\the\wd\scratchbox}% \edef\height{\the\ht\scratchbox}% \edef\depth {\the\dp\scratchbox}% \scratchdimen\height \advance\scratchdimen\depth \edef\totalheight{\the\scratchdimen}% \doPDFgetobjectreference{SYM}{#1}\FDFsymbolNappearance \doPDFgetobjectreference{SYM}{#2}\FDFsymbolDappearance \edef\PDFsymbol {/AP <>}} %D Hooked into \CONTEXT, this special supports %D %D \starttyping %D \startcomment %D hello beautiful\\world %D \stopcomment %D %D \startcomment[hello] %D de \'e\'erste keer %D the f\'irst time %D \stopcommen %D %D \startcommentaar[hallo][color=green,width=4cm,height=3cm] %D first %D %D second %D \stopcommentaar %D \stoptyping %D %D So, special characters, forced linebreaks using \type{\\} %D and \type{\par} are handled in the appropriate way. %D \macros %D {doPDFovalbox} %D %D For drawing ovals we use quite raw \PDF\ code. The next %D implementation does not differ that much from the one %D implemented in the \POSTSCRIPT\ driver. \def\doPDFovalcalc#1#2#3% {\dimen2=#1% \advance\dimen2 #2\relax \PointsToBigPoints{\dimen2}#3} \def\doPDFovalbox#1#2#3#4#5#6#7#8% todo: \scratchdimen/\scatchbox {\forcecolorhack \bgroup \dimen0=#4\divide\dimen0 \plustwo \doPDFovalcalc{0pt}{+\dimen0}\xmin \doPDFovalcalc{#1}{-\dimen0}\xmax \doPDFovalcalc{#2}{-\dimen0}\ymax \doPDFovalcalc{-#3}{+\dimen0}\ymin \advance\dimen0 by #5% \doPDFovalcalc{0pt}{+\dimen0}\xxmin \doPDFovalcalc{#1}{-\dimen0}\xxmax \doPDFovalcalc{#2}{-\dimen0}\yymax \doPDFovalcalc{-#3}{+\dimen0}\yymin \doPDFovalcalc{#4}{\zeropoint}\stroke \doPDFovalcalc{#5}{\zeropoint}\radius \edef\dostroke{#6}% \edef\dofill{#7}% \edef\mode{\number#8 \space}% % no \ifcase, else \relax in pdfcode \setbox\scratchbox\hbox {\ifnum\dostroke\dofill>\zerocount \ifPDFstrokecolor\else\ifnum\dostroke=\plusone \writestatus\m!colors{pdf stroke color will fail}\wait \fi\fi \PDFcode {q \stroke\space w \ifcase\mode \xxmin\space \ymin \space m \xxmax\space \ymin \space l \xmax \space \ymin \space \xmax \space \yymin\space y \xmax \space \yymax\space l \xmax \space \ymax \space \xxmax\space \ymax \space y \xxmin\space \ymax \space l \xmin \space \ymax \space \xmin \space \yymax\space y \xmin \space \yymin\space l \xmin \space \ymin \space \xxmin\space \ymin \space y h \or % 1 \xxmin\space \ymin \space m \xxmax\space \ymin \space l \xmax \space \ymin \space \xmax \space \yymin\space y \xmax \space \ymax \space l \xmin \space \ymax \space l \xmin \space \yymin\space l \xmin \space \ymin \space \xxmin\space \ymin \space y h \or % 2 \xxmin\space \ymin \space m \xmax \space \ymin \space l \xmax \space \ymax \space l \xxmin\space \ymax \space l \xmin \space \ymax \space \xmin \space \yymax\space y \xmin \space \yymin\space l \xmin \space \ymin \space \xxmin\space \ymin \space y h \or % 3 \xmin \space \ymin \space m \xmax \space \ymin \space l \xmax \space \yymax\space l \xmax \space \ymax \space \xxmax\space \ymax \space y \xxmin\space \ymax \space l \xmin \space \ymax \space \xmin \space \yymax\space y \xmin \space \ymin \space l h \or % 4 \xmin \space \ymin \space m \xxmax\space \ymin \space l \xmax \space \ymin \space \xmax \space \yymin\space y \xmax \space \yymax\space l \xmax \space \ymax \space \xxmax\space \ymax \space y \xmin \space \ymax \space l \xmin \space \ymin\space l h \or % 5 \xmin \space \ymin \space m \xmax \space \ymin \space l \xmax \space \yymax\space l \xmax \space \ymax \space \xxmax\space \ymax \space y \xmin \space \ymax \space l \xmin \space \ymin \space l h \or % 6 \xmin \space \ymin \space m \xxmax\space \ymin \space l \xmax \space \ymin \space \xmax \space \yymin\space y \xmax \space \ymax \space l \xmin \space \ymax \space l \xmin \space \ymin \space l h \or \xxmin\space \ymin \space m \xmax \space \ymin \space l \xmax \space \ymax \space l \xmin \space \ymax \space l \xmin \space \yymin\space l \xmin \space \ymin \space \xxmin\space \ymin \space y h \or \xmin \space \ymin \space m \xmax \space \ymin \space l \xmax \space \ymax \space l \xxmin\space \ymax \space l \xmin \space \ymax \space \xmin \space \yymax\space y \xmin \space \ymin \space l h \or % 9 top open \xmin \space \ymax \space m \xmin \space \yymin\space l \xmin \space \ymin \space \xxmin\space \ymin \space y \xxmax\space \ymin \space l \xmax \space \ymin \space \xmax \space \yymin\space y \xmax \space \ymax \space l \or % 10 right open \xmax \space \ymax \space m \xxmin\space \ymax \space l \xmin \space \ymax \space \xmin \space \yymax\space y \xmin \space \yymin\space l \xmin \space \ymin \space \xxmin\space \ymin \space y \xmax\space \ymin \space l \or % 11 bottom open \xmax \space \ymin \space m \xmax \space \yymax\space l \xmax \space \ymax \space \xxmax \space \ymax\space y \xxmin\space \ymax \space l \xmin \space \ymax \space \xmin \space \yymax\space y \xmin \space \ymin \space l \or % 12 left open \xmin \space \ymax \space m \xxmax\space \ymax \space l \xmax \space \ymax \space \xmax \space \yymax\space y \xmax \space \yymin\space l \xmax \space \ymin \space \xxmax\space \ymin \space y \xmin \space \ymin \space l \or % 13 \xmin \space \ymax \space m \xxmax\space \ymax \space l \xmax \space \ymax \space \xmax \space \yymax\space y \xmax\space \ymin \space l \or % 14 \xmax \space \ymax \space m \xmax \space \yymin\space l \xmax \space \ymin \space \xxmax\space \ymin \space y \xmin \space \ymin \space l \or % 15 \xmax \space \ymin \space m \xxmin\space \ymin \space l \xmin \space \ymin \space \xmin \space \yymin\space y \xmin \space \ymax \space l \or % 16 \xmin \space \ymin \space m \xmin \space \yymax\space l \xmin \space \ymax \space \xxmin\space \ymax \space y \xmax \space \ymax \space l \or % 17 \xxmax\space \ymax \space m \xmax \space \ymax \space \xmax \space \yymax\space y \or % 18 \xmax \space \yymin\space m \xmax \space \ymin \space \xxmax\space \ymin \space y \or % 19 \xxmin\space \ymin \space m \xmin \space \ymin \space \xmin \space \yymin\space y \or % 20 \xmin \space \yymax\space m \xmin \space \ymax \space \xxmin\space \ymax \space y \or % 21 \xxmax\space \ymax \space m \xmax \space \ymax \space \xmax \space \yymax\space y \xmin \space \yymax\space m \xmin \space \ymax \space \xxmin\space \ymax \space y \or % 22 \xxmax\space \ymax \space m \xmax \space \ymax \space \xmax \space \yymax\space y \xmax \space \yymin\space m \xmax \space \ymin \space \xxmax\space \ymin \space y \or % 23 \xmax \space \yymin\space m \xmax \space \ymin \space \xxmax\space \ymin \space y \xxmin\space \ymin \space m \xmin \space \ymin \space \xmin \space \yymin\space y \or % 24 \xxmin\space \ymin \space m \xmin \space \ymin \space \xmin \space \yymin\space y \xmin \space \yymax\space m \xmin \space \ymax \space \xxmin\space \ymax \space y \or % 25 \xxmax\space \ymax \space m \xmax \space \ymax \space \xmax \space \yymax\space y \xmax \space \yymin\space m \xmax \space \ymin \space \xxmax\space \ymin \space y \xxmin\space \ymin \space m \xmin \space \ymin \space \xmin \space \yymin\space y \xmin \space \yymax\space m \xmin \space \ymax \space \xxmin\space \ymax \space y \or % 26 \xmax \space \yymin\space m \xmax \space \ymin \space \xxmax\space \ymin \space y \xmin \space \yymax\space m \xmin \space \ymax \space \xxmin\space \ymax \space y \or % 27 \xxmax\space \ymax \space m \xmax \space \ymax \space \xmax \space \yymax\space y \xxmin\space \ymin \space m \xmin \space \ymin \space \xmin \space \yymin\space y \or % 28 \fi \ifnum\mode>8 S \else \ifnum\dostroke=\plusone S \fi \ifnum\dofill =\plusone f \fi \fi Q}% \fi}% \wd\scratchbox#1\ht\scratchbox#2\dp\scratchbox#3\box\scratchbox \egroup} %D \macros %D {doPDFstartgraymode,doPDFstopgraymode, %D doPDFstartrgbcolormode,doPDFstartcmykcolormode,doPDFstartgraycolormode, %D doPDFstopcolormode} %D %D In \PDF\ there are two color states, one for strokes and one %D for fills. This means that we have to set the color in a %D rather redundant looking way. Unfortunately this makes the %D \PDF\ file much larger than needed. We can save few bytes %D by not setting the stroke color. Due to zip compression we %D only save a few percent. % \newif\ifPDFstrokecolor \PDFstrokecolortrue \def\doPDFstartgraymode#1% % {\PDFdirectcode{#1 g\ifPDFstrokecolor\space#1 G\fi}} {\PDFcode{#1 g\ifPDFstrokecolor\space#1 G\fi}} \def\doPDFstopgraymode % {\PDFdirectcode{0 g\ifPDFstrokecolor\space0 G\fi}} {\PDFcode{0 g\ifPDFstrokecolor\space0 G\fi}} \def\doPDFstartrgbcolormode#1#2#3% % {\PDFdirectcode{#1 #2 #3 rg\ifPDFstrokecolor\space#1 #2 #3 RG\fi}} {\PDFcode{#1 #2 #3 rg\ifPDFstrokecolor\space#1 #2 #3 RG\fi}} \def\doPDFstartcmykcolormode#1#2#3#4% % {\PDFdirectcode{#1 #2 #3 #4 k\ifPDFstrokecolor\space#1 #2 #3 #4 K\fi}} {\PDFcode{#1 #2 #3 #4 k\ifPDFstrokecolor\space#1 #2 #3 #4 K\fi}} \def\doPDFstartgraycolormode#1% % {\PDFdirectcode{#1 g\ifPDFstrokecolor\space#1 G\fi}} {\PDFcode{#1 g\ifPDFstrokecolor\space#1 G\fi}} \def\doPDFstartspotcolormode#1#2% redefining spotcolors is not possible anyway {\ifundefined{pdf:scs:#2}% \bgroup \getcommacommandsize[#2]% \ifcase\commalistsize\or \setxvalue{pdf:scs:#2}{#2 SCN #2 scn}% \setxvalue{pdf:scs:#2}{#2 SC #2 sc}% \else \let\PDFspotcolorspecs\empty \def\dospotcolorcommand##1{\edef\PDFspotcolorspecs{\PDFspotcolorspecs##1\space}}% \processcommacommand[#2]\dospotcolorcommand \setxvalue{pdf:scs:#2}{\PDFspotcolorspecs SCN \PDFspotcolorspecs scn}% \fi \egroup \fi % \PDFdirectcode{/#1 cs /#1 CS \PDFgetspotcolorspec{#2}}} \PDFcode{/#1 cs /#1 CS \PDFgetspotcolorspec{#2}}} \def\PDFgetspotcolorspec#1% {\executeifdefined{pdf:scs:#1}\empty} % better no default than one with too less args \def\doPDFstartnonecolormode % {\PDFdirectcode{/None CS 1 SC /None cs 1 sc}} {\PDFcode{/None CS 1 SC /None cs 1 sc}} \def\doPDFstopcolormode % {\PDFdirectcode{0 g\ifPDFstrokecolor\space0 G\fi}} {\PDFcode{0 g\ifPDFstrokecolor\space0 G\fi}} %D We need to register the spot colors and their fallbacks. % we cannot use /DeviceN since GS <=7.21 breaks on it % and Jaws does not handle it at all {[/DeviceN [/All|/None] % /Device#2 \PDFobjref\pdflastobj]} so we use separation % colors that work and print ok \def\doPDFregistersomespotcolor#1#2#3#4% implemented in the driver {\writestatus\m!systems{missing spot color definition}\wait} \def\doPDFregisternonecolor % internal command {\doPDFregistergrayspotcolor{None}{1}% \globallet\doPDFregisternonecolor\relax} \def\doPDFregisterspotcolorname#1#2% implemented in the driver {} \definespecial\doregisterspotcolorname{\doPDFregisterspotcolorname} \def\dodoPDFregisterrgbspotcolor#1#2#3#4#5#6#7% name noffractions names p's r g b {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{RGB}{0.0 1.0 0.0 1.0 0.0 1.0}% {\ifcase#2\or dup #5 mul exch dup #6 mul exch #7 mul\else#5 #6 #7\fi}} \def\dodoPDFregistercmykspotcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{CMYK}{0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0}% {\ifcase#2\or dup #5 mul exch dup #6 mul exch dup #7 mul exch #8 mul\else #5 #6 #7 #8\fi}} \def\dodoPDFregistergrayspotcolor#1#2#3#4#5% name noffractions names p's s {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{Gray}{0.0 1.0}% {\ifcase#2\or #5 mul\else #5\fi}} % \let\doPDFregisterrgbspotcolor \dodoPDFregisterrgbspotcolor % \let\doPDFregistercmykspotcolor\dodoPDFregistercmykspotcolor % \let\doPDFregistergrayspotcolor\dodoPDFregistergrayspotcolor \def\doPDFregisterrgbspotcolor#1#2#3#4#5#6#7% name noffractions names p's r g b {\ifRGBsupported \dodoPDFregisterrgbspotcolor{#1}{#2}{#3}{#4}{#5}{#6}{#7}% \else \edef\@@cl@@r{#5}\edef\@@cl@@g{#6}\edef\@@cl@@b{#7}% \ifCMYKsupported \convertRGBtoCMYK\@@cl@@r\@@cl@@g\@@cl@@b \dodoPDFregistercmykspotcolor{#1}{#2}{#3}{#4}\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k \else \convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b \dodoPDFregistergrayspotcolor{#1}{#2}{#3}{#4}\@@cl@@s \fi \fi} \def\doPDFregistercmykspotcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k {\ifCMYKsupported \dodoPDFregistercmykspotcolor{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}% \else \edef\@@cl@@c{#5}\edef\@@cl@@m{#6}\edef\@@cl@@y{#7}\edef\@@cl@@k{#8}% \ifRGBsupported \convertCMYKtoRGB\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k \dodoPDFregisterrgbspotcolor{#1}{#2}{#3}{#4}\@@cl@@r\@@cl@@g\@@cl@@b \else \convertCMYKtoGRAY\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k \dodoPDFregistergrayspotcolor{#1}{#2}{#3}{#4}\@@cl@@s \fi \fi} \def\doPDFregistergrayspotcolor{\dodoPDFregistergrayspotcolor} %D New and very experimental. \def\doPDFregistercmykindexcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{CMYK}{0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0}% {dup #5 mul exch dup #6 mul exch dup #7 mul exch #8 mul}} \def\doPDFregisterrgbindexcolor#1#2#3#4#5#6#7% name noffractions names p's r g b {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{RGB}{0.0 1.0 0.0 1.0 0.0 1.0}% {dup #5 mul exch dup #6 mul exch #7 mul}} \def\doPDFregistergrayindexcolor#1#2#3#4#5% name noffractions names p's s {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{Gray}{0.0 1.0}% {pop}} \let\checkpredefinedcolor\predefineindexcolor % we need an index in order to negate bitmaps \def\doPDFregisterfigurecolor#1% always an index color {\dogetobjectreference {PDFIX} {\internalspotcolorname{#1}} \PDFimagecolorreference} %D \macros %D {doPDFstartrotation,doPDFstoprotation} %D %D Rotating some text can be accomplished by setting the first %D four elements of the transform matrix. We only support some %D fixed angles. The \type{q}'s take care of grouping. % The original: % % \def\doPDFstartrotation#1% % {\PDFcode{q}% % \processaction % [#1] % [ 90=>\PDFcode{ 0 1 -1 0 0 0 cm}, % 180=>\PDFcode{-1 0 0 -1 0 0 cm}, % 270=>\PDFcode{ 0 -1 1 0 0 0 cm}, % 360=>\PDFcode{ 1 0 0 1 0 0 cm}]} % % We cannot directly pass an angle, but have to calculate % factors (rx and ry). As in the \METAPOST\ to \PDF\ % converter module we need to compensate the deformation % by setting (sx and sy). % % Optimized but bigger: % % \def\doPDFstartrotation#1% % {\PDFcode{q}% % \processaction % [#1] % [ 0=>\PDFcode{ 1 0 0 1 0 0 cm}, % 90=>\PDFcode{ 0 1 -1 0 0 0 cm}, % 180=>\PDFcode{-1 0 0 -1 0 0 cm}, % 270=>\PDFcode{ 0 -1 1 0 0 0 cm}, % 360=>\PDFcode{ 1 0 0 1 0 0 cm}, % #1=>\setcalculatedcos\cos{#1}% % \setcalculatedsin\sin{#1}% % \PDFcode{\cos \space % cos % \sin \space % sin % \negated\sin\space % -sin % \cos \space % cos % 0 0 cm}]} % % Since the sine and cosine values are preset and rounded we % can use the next alternative without running into inaccuracies. \def\doPDFstartrotation#1% grouped {\setcalculatedcos\cos{#1}% \setcalculatedsin\sin{#1}% \forcecolorhack \PDFcode{q \cos\space\sin\space\negated\sin\space\cos\space0 0 cm}} \def\doPDFstoprotation {\PDFcode{Q}} %D \macros %D {doPDFstartscaling,doPDFstopscaling} %D %D Scaling is rather straightforward: \def\@@PDFzeroscale{.0001} \def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged! {\forcecolorhack \PDFcode{q \ifdim#1\points=\zeropoint\@@PDFzeroscale\else#1\fi\space 0 0 \ifdim#2\points=\zeropoint\@@PDFzeroscale\else#2\fi\space 0 0 cm}} % \def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged! % {\PDFcode{q\ifdim#1\points=\zeropoint\else\ifdim#2\points=\zeropoint\else % \space#1\space 0 0 #2\space 0 0 cm\fi\fi}} \def\doPDFstopscaling {\PDFcode{Q}} %D \macros %D {doPDFstartmirroring,doPDFstopmirroring} %D %D Mirroring is implemented in a similar way: \def\doPDFstartmirroring {\PDFcode{-1 0 0 1 0 0 cm}} \def\doPDFstopmirroring {\PDFcode{-1 0 0 1 0 0 cm}} %D \macros %D {doPDFstartnegative,doPDFstopnegative} %D %D When producing output for an image setter, sometimes negative %D output is needed. \def\doPDFstartnegative {\ifx\initializePDFnegative\undefined\else \initializePDFnegative % \PDFdirectcode{/GSnegative gs}% \PDFcode{/GSnegative gs}% \fi} \def\doPDFstopnegative {\ifx\initializePDFnegative\undefined\else \initializePDFnegative % \PDFdirectcode{/GSpositive gs}% \PDFcode{/GSpositive gs}% \fi} %D \macros %D {doPDFstartoverprint,doPDFstopoverprint} %D %D Some printers like overprint more than knockout. \def\doPDFstartoverprint {\ifx\initializePDFoverprint\undefined\else \initializePDFoverprint % \PDFdirectcode{/GSoverprint gs}% \PDFcode{/GSoverprint gs}% \fi} \def\doPDFstopoverprint {\ifx\initializePDFoverprint\undefined\else \initializePDFoverprint % \PDFdirectcode{/GSknockout gs}% \PDFcode{/GSknockout gs}% wrong \fi} %D Transparency support: \newif\ifPDFtransparencysupported \def\PDFtransparancydictionary#1#2#3% type fraction extras {<>} \def\dodoPDFstarttransparency#1#2% {\presetPDFtransparency{#1}{#2}% \PDFcode{\PDFtransparencyidentifier\space gs }} \def\dodoPDFstoptransparency {\PDFcode{/Tr0 gs }} \def\doPDFstarttransparency {\ifPDFtransparencysupported \global\let\doPDFstarttransparency\dodoPDFstarttransparency \global\let\doPDFstoptransparency \dodoPDFstoptransparency \initializetransparency \expandafter\doPDFstarttransparency \else \expandafter\gobbletwoarguments \fi} % \let\doPDFstoptransparency\relax % % This is tricky: because a text stream is handled before % the page body is built, we can run into stops that will % match an outer start; however, the stop is needed in case % of a text color: [text color text] [other color text] on a % first page combined with color splitting will go wrong if % we stick to the relaxing method. \def\doPDFstoptransparency {\ifPDFtransparencysupported \initializetransparency \dodoPDFstoptransparency \fi} %D These use: \let\PDFtransparencyresetreference \empty \let\PDFtransparencyresetidentifier\empty \let\PDFtransparencyreference \empty \let\PDFtransparencyidentifier\empty \let\presetPDFtransparency \gobbletwoarguments \let\initializetransparency\relax %D New trickery: \definespecial\dostartgraphicgroup{\PDFcode{q}} \definespecial\dostopgraphicgroup {\PDFcode{Q}} %D Even newer trickery: \definespecial\dostartviewerlayer {\doPDFstartlayer} \definespecial\dostopviewerlayer {\doPDFstoplayer} \definespecial\dodefineviewerlayer{\doPDFdefinelayer} \let\PDFtextlayers\empty \let\PDFpagelayers\empty \let\PDFhidelayers\empty \let\PDFvidelayers\empty % \def\doPDFstartlayer#1{\PDFdirectcode{/OC /#1 BDC}} % \def\doPDFstoplayer {\PDFdirectcode {EMC}} \def\doPDFstartlayer#1{\PDFcode{/OC /#1 BDC}} \def\doPDFstoplayer {\PDFcode {EMC}} % resource -> prop -> mc's -> OCG|OCMD (nested) % ocg: % /Intent/Design % ocmd % /P /AllOn % kan zelf ocmd bevatten \def\doPDFdefinelayer#1#2#3#4#5% tag title visible type printable {\doPDFdictionaryobject{PDLN}{#1} {/Type /OCG \ifcase#4 \or /Intent /Design % disable layer hiding by user \fi \ifnum#5=\zerocount /Usage << /Print << /PrintState /OFF >> >> % printable or not \fi /Name (#2)}% \doPDFgetobjectreference{PDLN}{#1}\PDFobjectreference \xdef\PDFtextlayers{\PDFtextlayers\space\PDFobjectreference}% \doifelse{#3}\v!start {\xdef\PDFvidelayers{\PDFvidelayers\space\PDFobjectreference}}% {\xdef\PDFhidelayers{\PDFhidelayers\space\PDFobjectreference}}% \doPDFdictionaryobject{PDLD}{#1} {/Type /OCMD /OCGs [\PDFobjectreference]}% \doPDFgetobjectreference{PDLD}{#1}\PDFobjectreference \xdef\PDFpagelayers{\PDFpagelayers\space /#1 \PDFobjectreference}} \def\flushPDFtextlayers {\ifx\PDFtextlayers\empty \else \driverreferenced \doPDFarrayobject{PDF}{textlayers}{\PDFtextlayers}% \doPDFgetobjectreference{PDF}{textlayers}\!!stringa \ifx\PDFvidelayers\empty \def\!!stringb{[null]}% \else \driverreferenced \doPDFarrayobject{PDF}{videlayers}{\PDFvidelayers}% \doPDFgetobjectreference{PDF}{videlayers}\!!stringb \fi \ifx\PDFhidelayers\empty \def\!!stringc{[null]}% \else \driverreferenced \doPDFarrayobject{PDF}{hidelayers}{\PDFhidelayers}% \doPDFgetobjectreference{PDF}{hidelayers}\!!stringc \fi \doPDFaddtocatalog {/OCProperties << % display in menu /D << /Order \!!stringa /ON \!!stringb /OFF \!!stringc >> % used properties /OCGs \!!stringa >>}% \globallet\flushPDFtextlayers\relax \fi} \def\flushPDFpagelayers {\ifx\PDFpagelayers\empty \else \doPDFpageresource{/Properties <<\PDFpagelayers>>}% \fi} \prependtoksonce \flushPDFpagelayers \to \everyshipout \prependtoksonce \flushPDFtextlayers \to \everylastshipout \def\PDFlayeractionlist{null} \def\PDFexecutehidelayer {/SetOCGState /State [/OFF \PDFlayeractionlist]} \def\PDFexecutevidelayer {/SetOCGState /State [/ON \PDFlayeractionlist]} \def\PDFexecutetogglelayer {/SetOCGState /State [/Toggle \PDFlayeractionlist]} \def\domakeviewerlayerlist#1% {\bgroup \globallet\PDFlayeractionlist\empty \def\docommand##1% {\doPDFgetobjectreference{PDLN}{##1}\PDFobjectreference \xdef\PDFlayeractionlist{\PDFlayeractionlist\space\PDFobjectreference}}% \processcommalist[#1]\docommand \egroup} %D Something rather pdf dependent: % #1 => 1=fill 2=stroke 3=strokedfill 4=invisible % #2 => linewidth % #3 => spacing (beware, one needs to set the hsize as well) \def\doPDFstartfonteffect#1#2#3% {\ifdim#2>\zeropoint \PointsToBigPoints{#2}\ascii % \PDFdirectcode{\ascii\space w}% \PDFcode{\ascii\space w}% \fi \ifdim#3\points=\onepoint\else \scratchdimen#3\points % \PDFdirectcode{\withoutpt{\the\scratchdimen}\space Tc}% \PDFcode{\withoutpt{\the\scratchdimen}\space Tc}% \fi % \PDFdirectcode{\purenumber#1 Tr}} \PDFcode{\purenumber#1 Tr}} \def\doPDFstopfonteffect % {\PDFdirectcode{1 w 0 Tc 0 Tr}} {\PDFcode{1 w 0 Tc 0 Tr}} %D Handy for the \METAPOST\ to \PDF\ converter: \ifdefined\everyPDFximage \else \newtoks\everyPDFximage \fi \ifdefined\everyPDFxform \else \newtoks\everyPDFxform \fi \appendtoksonce \collectPDFresources \global\let\currentPDFresources\collectedPDFresources \to \everyPDFxform \let\collectedPDFresources\empty \def\collectPDFresources % suboptimal {\doifobjectreferencefoundelse{FDF}{docushades} % redundant, we have an reserved object now {\doPDFgetobjectreference{FDF}{docushades}\PDFobjectreference \xdef\collectedPDFresources{\collectedPDFresources/Shading \PDFobjectreference}}\donothing \doifobjectreferencefoundelse{FDF}{docuextgstates} {\doPDFgetobjectreference{FDF}{docuextgstates}\PDFobjectreference \xdef\collectedPDFresources{\collectedPDFresources/ExtGState \PDFobjectreference}}\donothing \doifobjectreferencefoundelse{FDF}{docupatterns} {\doPDFgetobjectreference{FDF}{docupatterns}\PDFobjectreference \xdef\collectedPDFresources{\collectedPDFresources/Pattern \PDFobjectreference}}\donothing \doifobjectreferencefoundelse{FDF}{colorspaces} {\doPDFgetobjectreference{FDF}{colorspaces}\PDFobjectreference \xdef\collectedPDFresources{\collectedPDFresources/ColorSpace \PDFobjectreference}}\donothing \global\let\collectPDFresources\relax} %D And that was about all. \stopspecials \ifx\fullytransparentcolor\undefined \else \def\fullytransparentcolor {\doPDFregisternonecolor \doPDFstartnonecolormode} \let\doPDFstarttransparency\gobbletwoarguments \let\doPDFstoptransparency\relax \fi %D Temporary hack: \def\TransparencyHack % png: /CS /DeviceRGB /I true {\appendtoks \doPDFpageattribute{/Group << /S /Transparency /I true /K true>>}% \to \everyPDFxform \appendtoks \doPDFpageattribute{/Group << /S /Transparency /I true /K true>>}% \to \everyshipout} %D We still need to implement a few helpers: \chardef\safePDFcode=`- \def\setPDFdestination#1% {\bgroup \retainlccodes \lccode`\/\safePDFcode \lccode`\#\safePDFcode \lccode`\<\safePDFcode \lccode`\>\safePDFcode \lccode`\[\safePDFcode \lccode`\]\safePDFcode \lccode`\(\safePDFcode \lccode`\)\safePDFcode \ifovercomePDFspace \lccode`\ \safePDFcode \fi \ifovercomePDFbugs \xdef\PDFdestination{'#1'}% \else \xdef\PDFdestination{#1}% \fi % nicer \xdef\PDFdestination{\ifovercomePDFbugs'\fi#1\ifovercomePDFbugs'\fi}% \lowercase\@EA{\@EA\xdef\@EA\PDFdestination\@EA{\PDFdestination}}% \egroup} %D This is much faster since we don't have to set the full %D range of lc-codes; about 5 sec on a 1000mhz PIII for %D 20K named destinations "x(x) x"). Of course when you use %D page destinations, the saving is nil. % \doifnotmode{atpragma}{\let\next\setPDFdestination} % experimental % % \catcode`\/=\@@active \catcode`\#=\@@active % \catcode`\<=\@@active \catcode`\>=\@@active % \catcode`\[=\@@active \catcode`\]=\@@active % \catcode`\(=\@@active \catcode`\)=\@@active % % \gdef\PDFrepchar{-} % % \gdef\setPDFdcharacters % {\catcode`\/=\@@active \let/\PDFrepchar % \catcode`\#=\@@active \let#\PDFrepchar % \catcode`\<=\@@active \let<\PDFrepchar % \catcode`\>=\@@active \let>\PDFrepchar % \catcode`\[=\@@active \let[\PDFrepchar % \catcode`\]=\@@active \let]\PDFrepchar % \catcode`\(=\@@active \let(\PDFrepchar % \catcode`\)=\@@active \let)\PDFrepchar} % % \egroup % % \def\setPDFdestination#1% expansion is needed, otherwise embedded % {\bgroup % macros will not expand under the new % \setPDFdcharacters % catcode regime % \ifovercomePDFspace % \catcode32=\@@ignore % \fi % \xdef\PDFdestination{\ifovercomePDFbugs'\fi#1\ifovercomePDFbugs'\fi}% % \scantokens\@EA{\@EA\xdef\@EA\PDFdestination\@EA{\PDFdestination}}% % \egroup} % % \doifnotmode{atpragma}{\let\setPDFdestination\next} % experimental %D This is a slow one, that uses \type{\lccode}'s to %D change the glyph as well as converts sensisitve ones into a %D \PDF\ command sequence, so \type{(} becomes \type{\(}. In %D fact we translate the string to lowercase inactive and non %D special characters, limit their number and finaly convert %D some of the characters to save ones. \chardef\maxPDFstringsize=60 \def\sanitizePDFstring#1\to#2% bugged {\bgroup \retainlccodes \lccode`( \zerocount \lccode`) \zerocount \lccode`< \zerocount \lccode`> \zerocount \lccode`[ \zerocount \lccode`] \zerocount \lccode`\\\zerocount \lccode`/ \zerocount \lowercase{\defconvertedargument\ascii{#1}}% % by integrating the split in the loop below % \splitofftokens\maxPDFstringsize\from\ascii\to\ascii % we diminish the processing time considerably \scratchcounter\maxPDFstringsize \def\docommand##1% {\ifcase\scratchcounter\else \advance\scratchcounter \minusone \ifcase\lccode`##1\relax \xdef#2{#2\expandafter\string\csname##1\endcsname}% \else \xdef#2{#2##1}% \fi \fi}% %\global\let#2=\empty % or to permit #2 to be \ascii too: \global\@EA\let\@EA#2\@EA\empty \@EA\handletokens\ascii\with\docommand \egroup} % \doifnotmode{atpragma}{\let\next\sanitizePDFstring} % experimental % % \bgroup % % \catcode`\.=\@@escape % % .catcode`./=.@@active % .catcode`.<=.@@active .catcode`.>=.@@active % .catcode`.[=.@@active .catcode`.]=.@@active % .catcode`.(=.@@active .catcode`.)=.@@active % % .gdef.setPDFscharacters% % {.catcode`.\=.@@other % .catcode`./=.@@active .def/{.noexpand./}% % .catcode`.<=.@@active .def<{.noexpand.<}% % .catcode`.>=.@@active .def>{.noexpand.>}% % .catcode`.[=.@@active .def[{.noexpand.[}% % .catcode`.]=.@@active .def]{.noexpand.]}% % .catcode`.(=.@@active .def({.noexpand.(}% % .catcode`.)=.@@active .def){.noexpand.)}} % % .gdef.sanitizePDFstring#1.to#2% % {.bgroup % .setPDFscharacters % .catcode`=.@@escape % .edef.next{.strippedcsname#2}% % .scantokens{setxvalue{next}{#1}}% % .egroup} % % .egroup % % \doifnotmode{atpragma}{\let\sanitizePDFstring\next} % experimental % % There is an unicode variant in spec-tst! \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-ro.mkii0000644000175000017500000000102714536300610024534 0ustar hillehille%D \module %D [ file=cont-ro, %D version=2000.01.09, %D title=\CONTEXT, %D subtitle=\CONTEXT\ Romanian Format Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \catcode`\{=1 \catcode`\}=2 \def\defaultinterface {romanian} \def\defaultlanguagetag{ro} \input context.mkii \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/thrd-trg.mkii0000644000175000017500000001077414536300610024717 0ustar hillehille%D In order to support rotation over arbitrary angles, we need a sine %D and cosine calculator. For this purpose we borrow a few macros by %D David Carlisle (his trig package). Because local variables are %D used, I patched the macros a bit. Also, I used a few different names %D for variabels and macros and use existing auxiliary macros. \unprotect % compare: \number 0.5 \number -0.5 \number 1.5 \number -1.5 % % so we need: \def\realnumber#1{\withoutpt\the\dimexpr#1\points\relax} % brrr \chardef \@iv = 4 \chardef \@xc = 90 % was \nin@ty \chardef \@clxx = 180 \chardef \@lxxi = 71 \mathchardef \@mmmmlxviii = 4068 \mathchardef \@xvi@k = 16384 \chardef \tr@coeffz = 72 \chardef \tr@coefb = 42 \mathchardef \tr@coefc = 840 \mathchardef \tr@coefd = 5040 \def\tg@series {\!!dimena\@lxxi\!!dimena \divide\!!dimena\@mmmmlxviii \edef\!!stringa{\withoutpt\the\!!dimena}% \!!dimena\!!stringa\!!dimena \edef\!!stringb{\withoutpt\the\!!dimena}% \divide\!!dimena\tr@coeffz \advance\!!dimena\minusone\onepoint \!!dimena\!!stringb\!!dimena \advance\!!dimena \tr@coefb\onepoint \!!dimena\!!stringb\!!dimena \advance\!!dimena -\tr@coefc\onepoint \!!dimena\!!stringb\!!dimena \advance\!!dimena \tr@coefd\onepoint \!!dimena\!!stringa\!!dimena \divide\!!dimena \tr@coefd} \def\tg@reduce#1#2% {\!!dimena#1#2\@xc\onepoint \advance\!!dimena#2-\@clxx\onepoint \!!dimena-\!!dimena \tg@@sin} \def\tg@@sin {\ifdim\tg@reduce>+\else\ifdim\tg@reduce<-\else \tg@series \fi\fi} %D Calculating a sine is a two step process: first a value is %D calculated, and afterwards it can be used. This saves redundant %D calculations. \def\calculatesin#1% {{\expandafter\ifx\csname sin \realnumber{#1}\endcsname\relax \!!dimena#1\onepoint \tg@@sin \expandafter\xdef\csname sin \realnumber{#1}\endcsname{\withoutpt\the\!!dimena}% \fi}} \def\calculatecos#1% {{\expandafter\ifx\csname cos \realnumber{#1}\endcsname\relax \!!dimena\@xc\onepoint \advance\!!dimena-#1\onepoint \tg@@sin \expandafter\xdef\csname cos \realnumber{#1}\endcsname{\withoutpt\the\!!dimena}% \fi}} \def\calculatetan#1% {{\expandafter\ifx\csname tan \realnumber{#1}\endcsname\relax \calculatesin{#1}% \calculatecos{#1}% \!!dimena\calculatedcos{#1}\onepoint \divide\!!dimena\@iv \!!dimenb\calculatedsin{#1}\onepoint \!!dimenb\@xvi@k\!!dimenb \divide\!!dimenb\!!dimena \expandafter\xdef\csname tan \realnumber{#1}\endcsname{\withoutpt\the\!!dimenb}% \fi}} %D The results are accessed with: \def\calculatedsin#1{\csname sin \realnumber{#1}\endcsname} \def\calculatedcos#1{\csname cos \realnumber{#1}\endcsname} \def\calculatedtan#1{\csname tan \realnumber{#1}\endcsname} %D A more save implementation would be: \def\calculatedsin#1{\executeifdefined{sin \realnumber{#1}}\!!zerocount} \def\calculatedcos#1{\executeifdefined{cos \realnumber{#1}}\!!plusone } \def\calculatedtan#1{\executeifdefined{tan \realnumber{#1}}\!!zerocount} %D The following permits cleaner overloading (\MKIV\ will only have %D these): \def\setcalculatedsin#1#2{\calculatesin{#2}\edef#1{\calculatedsin{#2}}} \def\setcalculatedcos#1#2{\calculatecos{#2}\edef#1{\calculatedcos{#2}}} \def\setcalculatedtan#1#2{\calculatetan{#2}\edef#1{\calculatedtan{#2}}} %D A few values are predefined, although, on todays systems there %D is no real reason for that. I've added the 270 ones and changed %D the -90 tan. Also, I prefer text (\type {\!!..} instead of %D counters \type {\..}. \expandafter\let\csname sin \realnumber{ 0}\endcsname\!!zerocount \expandafter\let\csname cos \realnumber{ 0}\endcsname\!!plusone \expandafter\let\csname sin \realnumber{ 90}\endcsname\!!plusone \expandafter\let\csname cos \realnumber{ 90}\endcsname\!!zerocount \expandafter\let\csname sin \realnumber{180}\endcsname\!!zerocount \expandafter\let\csname cos \realnumber{180}\endcsname\!!minusone \expandafter\let\csname sin \realnumber{270}\endcsname\!!minusone \expandafter\let\csname cos \realnumber{270}\endcsname\!!zerocount \expandafter\let\csname sin \realnumber{-90}\endcsname\!!minusone \expandafter\let\csname cos \realnumber{-90}\endcsname\!!zerocount \expandafter\def\csname tan \realnumber{ 90}\endcsname{\writestatus\m!systems{infinite tan +90}} \expandafter\def\csname tan \realnumber{-90}\endcsname{\writestatus\m!systems{infinite tan -90}} %D Usage: \type {\calculatesin{10}} and \type {\calculatedsin{10}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/math-uni.mkii0000644000175000017500000003164714536300610024710 0ustar hillehille%D \module %D [ file=math-uni, %D version=2005.06.11, %D title=\CONTEXT\ Math Macros, %D subtitle=unicode support, %D author={Nikolai Weibull \& Taco Hoekwater}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] \unprotect % needed for unic-032 % TH \startmathcollection[default] \definemathcommand [unic@doubleverticalline] {\mathord{\parallel}} \definemathcommand [unic@doublelowline] {\underline{\textunderscore}} \definemathcommand [unic@doubleprime] {''} \definemathcommand [unic@tripleprime] {'''} \definemathcommand [unic@reverseddoubleprime] {\mathord{\backprime\backprime}} \definemathcommand [unic@reversedtripleprime] {\mathord{\backprime\backprime\backprime}} \definemathcommand [unic@fractionslash] {\vulgarfraction{}{}} \definemathcommand [unic@lowasterisk] {\mathord{\lower-.2em\hbox{$\ast$}}} \definemathcommand [unic@functionapplication] {\mathop{}} \definemathcommand [unic@invisibletimes] {\mathbin{}} \definemathcommand [unic@invisibleseparator] {\mathpunct{}} \stopmathcollection % needed for unic-033 % TH \def\unic@vulgarfraction#1#2% {\hbox {\high{{\tfx\it #1}\kern -.2em}% \symbol[vulgarfraction]% \kern -.2em\low{{\tfx\it #2}}}} \startmathcollection[default] \definemathcommand [unic@accountof] {\unic@vulgarfraction{a}{c}} \definemathcommand [unic@addressedtothesubject] {\unic@vulgarfraction{a}{s}} \definemathcommand [unic@doublestruckC] {{\Bbb C}} \definemathcommand [unic@degreecelsius] {{\textdegree \tf C}} \definemathcommand [unic@centrelinesymbol] {\unknownchar} \definemathcommand [unic@careof] {\unic@vulgarfraction{c}{o}} \definemathcommand [unic@cadauna] {\unic@vulgarfraction{c}{u}} \definemathcommand [unic@eulerconstant] {{\rm e}} \definemathcommand [unic@scruple] {\unknownchar} \definemathcommand [unic@degreefahrenheit] {{\textdegree \tf F}} \definemathcommand [unic@scriptg] {\unknownchar} \definemathcommand [unic@scriptH] {{\cal H}} \definemathcommand [unic@blackletterH] {{\fraktur H}} \definemathcommand [unic@doublestruckH] {{\Bbb H}} \definemathcommand [unic@planckconstant] {h} \definemathcommand [unic@planckconstantovertwopi] {\hslash} \definemathcommand [unic@scriptI] {{\cal I}} \definemathcommand [unic@blackletterI] {{\fraktur I}} \definemathcommand [unic@scriptL] {{\cal L}} \definemathcommand [unic@scriptl] {\ell} \definemathcommand [unic@lbbarsymbol] {\unknownchar} \definemathcommand [unic@doublestruckN] {{\Bbb N}} \definemathcommand [unic@numerosign] {\hbox{\symbol[numero]}} \definemathcommand [unic@soundrecordingcopyright] {\encircled{{\tfx P}}} \definemathcommand [unic@scriptP] {{\cal P}} \definemathcommand [unic@doublestruckP] {{\Bbb P}} \definemathcommand [unic@doublestruckQ] {{\Bbb Q}} \definemathcommand [unic@scriptR] {{\cal R}} \definemathcommand [unic@blackletterR] {{\fraktur R}} \definemathcommand [unic@doublestruckR] {{\Bbb R}} \definemathcommand [unic@prescriptiontake] {\unknownchar} \definemathcommand [unic@response] {\unknownchar} \definemathcommand [unic@servicemark] {\high{\txx SM}} \definemathcommand [unic@telephonesign] {\high{\txx TEL}} \definemathcommand [unic@trademarksign] {\trademark} \definemathcommand [unic@versickle] {\unknownchar} \definemathcommand [unic@doublestruckZ] {{\Bbb Z}} \definemathcommand [unic@ouncesign] {\unknownchar} \definemathcommand [unic@ohmsign] {\Omega} \definemathcommand [unic@invertedohmsign] {\rotate[\c!rotation=180]{\Omega}} \definemathcommand [unic@blackletterZ] {{\fraktur Z}} \definemathcommand [unic@turnedgreekletteriota] {\rotate[\c!rotation=180]{\iota}} \definemathcommand [unic@kelvinsign] {{\tf K}} \definemathcommand [unic@angstromsign] {\Angstrom} \definemathcommand [unic@scriptB] {{\cal B}} \definemathcommand [unic@blackletterC] {{\fraktur C}} \definemathcommand [unic@estimatedsymbol] {\unknownchar} \definemathcommand [unic@scripte] {\unknownchar} \definemathcommand [unic@scriptE] {{\cal E}} \definemathcommand [unic@scriptF] {{\cal F}} \definemathcommand [unic@turnedF] {\rotate[\c!rotation=180]{{\tf F}}} \definemathcommand [unic@scriptM] {{\cal M}} \definemathcommand [unic@scripto] {\unknownchar} \definemathcommand [unic@informationsource] {{\bf i}} \definemathcommand [unic@rotatedQ] {\rotate[\c!rotation=90]{{\tf Q}}} \definemathcommand [unic@facsimilesign] {\unknownchar} \definemathcommand [unic@doublestruckpi] {\pi}%{\unknownchar} \definemathcommand [unic@doublestruckgamma] {\gamma}%{\unknownchar} \definemathcommand [unic@doublestruckGamma] {\Gamma}%{\unknownchar} \definemathcommand [unic@doublestruckPi] {\Pi}%{\unknownchar} \definemathcommand [unic@doublestrucknarysummation] {\unknownchar} \definemathcommand [unic@turnedsansserifG] {\rotate[\c!rotation=180]{{\ss G}}} \definemathcommand [unic@turnedsansserifL] {\rotate[\c!rotation=180]{{\ss L}}} \definemathcommand [unic@reversedsansserifL] {\mirror{{\ss L}}} \definemathcommand [unic@turnedsansserifY] {\rotate[\c!rotation=180]{{\ss Y}}} \definemathcommand [unic@doublestruckitalicD] {D}%{\unknownchar} \definemathcommand [unic@doublestruckitalicd] {d}%{\unknownchar} \definemathcommand [unic@doublestruckitalice] {e}%{\unknownchar} \definemathcommand [unic@doublestruckitalici] {i}%{\unknownchar} \definemathcommand [unic@doublestruckitalicj] {j}%{\unknownchar} \definemathcommand [unic@propertyline] {\unknownchar} \definemathcommand [unic@turnedampersand] {\rotate[\c!rotation=180]{\&}} \definemathcommand [unic@persign] {\unknownchar} \definemathcommand [unic@fractiononethird] {\vulgarfraction{1}{3}} \definemathcommand [unic@fractiontwothirds] {\vulgarfraction{2}{3}} \definemathcommand [unic@fractiononefifth] {\vulgarfraction{1}{5}} \definemathcommand [unic@fractiontwofifths] {\vulgarfraction{2}{5}} \definemathcommand [unic@fractionthreefifths] {\vulgarfraction{3}{5}} \definemathcommand [unic@fractionfourfifths] {\vulgarfraction{4}{5}} \definemathcommand [unic@fractiononesixth] {\vulgarfraction{1}{6}} \definemathcommand [unic@fractionfivesixths] {\vulgarfraction{5}{6}} \definemathcommand [unic@fractiononeeighth] {\vulgarfraction{1}{8}} \definemathcommand [unic@fractionthreeeighths] {\vulgarfraction{3}{8}} \definemathcommand [unic@fractionfiveeighths] {\vulgarfraction{5}{8}} \definemathcommand [unic@fractionseveneighths] {\vulgarfraction{7}{8}} \definemathcommand [unic@fractionnumeratorone] {\vulgarfraction{1}{}} \definemathcommand [unic@romannumeralOne] {{\tf I}} \definemathcommand [unic@romannumeralTwo] {{\tf II}} \definemathcommand [unic@romannumeralThree] {{\tf III}} \definemathcommand [unic@romannumeralFour] {{\tf IV}} \definemathcommand [unic@romannumeralFive] {{\tf V}} \definemathcommand [unic@romannumeralSix] {{\tf VI}} \definemathcommand [unic@romannumeralSeven] {{\tf VII}} \definemathcommand [unic@romannumeralEight] {{\tf VIII}} \definemathcommand [unic@romannumeralNine] {{\tf IX}} \definemathcommand [unic@romannumeralTen] {{\tf X}} \definemathcommand [unic@romannumeralEleven] {{\tf XI}} \definemathcommand [unic@romannumeralTwelve] {{\tf XII}} \definemathcommand [unic@romannumeralFifty] {{\tf L}} \definemathcommand [unic@romannumeralOnehundred] {{\tf C}} \definemathcommand [unic@romannumeralFivehundred] {{\tf D}} \definemathcommand [unic@romannumeralOnethousand] {{\tf M}} \definemathcommand [unic@romannumeralone] {{\tf i}} \definemathcommand [unic@romannumeraltwo] {{\tf ii}} \definemathcommand [unic@romannumeralthree] {{\tf iii}} \definemathcommand [unic@romannumeralfour] {{\tf iv}} \definemathcommand [unic@romannumeralfive] {{\tf v}} \definemathcommand [unic@romannumeralsix] {{\tf vi}} \definemathcommand [unic@romannumeralseven] {{\tf vii}} \definemathcommand [unic@romannumeraleight] {{\tf viii}} \definemathcommand [unic@romannumeralnine] {{\tf ix}} \definemathcommand [unic@romannumeralten] {{\tf x}} \definemathcommand [unic@romannumeraleleven] {{\tf xi}} \definemathcommand [unic@romannumeraltwelve] {{\tf xii}} \definemathcommand [unic@romannumeralfifty] {{\tf l}} \definemathcommand [unic@romannumeralonehundred] {{\tf c}} \definemathcommand [unic@romannumeralfivehundred] {{\tf d}} \definemathcommand [unic@romannumeralonethousand] {{\tf m}} \definemathcommand [unic@romannumeralonethousandCD] {\unknownchar} \definemathcommand [unic@romannumeralfivethousand] {\unknownchar} \definemathcommand [unic@romannumeraltenthousand] {\unknownchar} \definemathcommand [unic@romannumeralreversedonehundred] {\mirror{C}} \stopmathcollection % needed for unic-033 % NW \startmathcollection[default] \definemathcommand [unic@leftarrowtobar] {\mapstochar\leftarrow} \stopmathcollection % needed for unic-034 % NW \startmathcollection[default] \definemathcommand [unic@in] {\in} \definemathcommand [unic@nin] {\not\in} \definemathcommand [unic@nni] {\not\ni} \definemathcommand [unic@minus] {-} \definemathcommand [unic@divisionslash] {/} \definemathcommand [unic@sqrt] {\sqrt{}} \definemathcommand [unic@cubesqrt] {\root 3 \of {}} \definemathcommand [unic@fourthsqrt] {\root 4 \of {}} \definemathcommand [unic@divides] [op] {|} % TODO \definemathcommand [unic@ndivides] [rel] {\mathop{\not|}} % TODO: horrible \definemathcommand [unic@cap] {\cap} \definemathcommand [unic@dblint] {\int\!\!\!\int} \definemathcommand [unic@triint] {\int\!\!\!\int\!\!\!\int} \definemathcommand [unic@ratio] [rel] {:} \definemathcommand [unic@proportion] [rel] {::} \definemathcommand [unic@excess] [op] {-\!\!:} \definemathcommand [unic@geomprop] [op] {:\!\!\!-\!\!\!:} \definemathcommand [unic@homothetic] [op] {\sim\!\!\!:} \definemathcommand [unic@nsimeq] {\not\simeq} \definemathcommand [unic@cong] {\cong} \definemathcommand [unic@napproxeq] {\not\approxeq} \definemathcommand [unic@napprox] {\not\approx} \definemathcommand [unic@doteq] {\doteq} \definemathcommand [unic@correspondsto] {\buildrel \frown \over =} \definemathcommand [unic@estimates] {\buildrel \wedge \over =} \definemathcommand [unic@equiangularto] {\buildrel \vee \over =} \definemathcommand [unic@stareq] {\buildrel \star \over =} \definemathcommand [unic@eqbydef] {\buildrel \rm def \over =} \definemathcommand [unic@measuredby] {\buildrel \rm m \over =} \definemathcommand [unic@questionedeq] {\buildrel \rm ? \over =} \definemathcommand [unic@nequiv] {\not\equiv} \definemathcommand [unic@nasymp] {\not\asymp} \definemathcommand [unic@nlesssim] {\not\lesssim} \definemathcommand [unic@ngtrsim] {\not\gtrsim} \definemathcommand [unic@nlessgtr] {\not\lessgtr} \definemathcommand [unic@ngtrless] {\not\gtrless} \definemathcommand [unic@nsubset] {\not\subset} \definemathcommand [unic@nsupset] {\not\supset} \definemathcommand [unic@nsqsubseteq] {\not\sqsubseteq} \definemathcommand [unic@nsqsupseteq] {\not\sqsupseteq} \stopmathcollection % needed for unic-039 % NW \startmathcollection[default] \definemathcommand [unic@Lbracket] [open] {[\![} \definemathcommand [unic@Rbracket] [close] {]\!]} \definemathcommand [unic@Langle] [open] {\langle\!\langle} \definemathcommand [unic@Rangle] [close] {\rangle\!\rangle} \stopmathcollection \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/verb-raw.mkii0000644000175000017500000000023214536300610024675 0ustar hillehille\ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi \gdef\setupprettyRAWtype% {\setupprettyTEXtype \def\prettyidentifier{RAW}} \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/enco-ec.mkii0000644000175000017500000003145014536300610024467 0ustar hillehille%D \module %D [ file=enco-ec, %D version=2000.05.07, % 1999.16.07, %D title=\CONTEXT\ Encoding Macros, %D subtitle=\LATEX\ EC Encoding, %D author={Patrick Gundlach, Hans Hagen, Taco Hoekwater, Mojca Miklavec}, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This is \LATEX2e's T1 encoding vector. All standard \LATEX\ %D accents will work, including \type{\k}. The only accent that %D does not work is \type{\t} (there is no tie in T1 encoding). %D %D Annoyingly, most \POSTSCRIPT\ fonts do not have \type %D {\dotlessj}, and T1 encoding does not make the various %D prebuilts with \type {j} available. When this is the case: %D %D \starttyping %D \startencoding[ec] %D \definecharacter dotlessj {j} %D \stopencoding %D \stoptyping %D %D is a way out. %D There is hardly a point in supporting TS1 encoding. \startmapping[ec] % a problem is that the uppercase of dstroke (158) and eth (240) % is the same glyph (208) so we cannot do lowercase mapping there \definecasemaps 128 to 156 lc +32 uc 0 \definecasemap 157 `i 157 % Idotaccent i \definecasemap 158 158 208 % dstroke Eth \definecasemap 159 159 159 % sectionmark \definecasemaps 160 to 187 lc 0 uc -32 \resetcaserange 189 to 191 % exclamdown, questiondown, textsterling \definecasemaps 192 to 223 lc +32 uc 0 \definecasemaps 224 to 254 lc 0 uc -32 \definecaseswap 255 223 % ssharp (else patterns fail) \definecaseswap 25 `I % dotless i % 156 vs. 188 IJligature %D Some languages need this: % \definecaseself 34 % quotedbl % \definecaseself 18 % quotedblbase % \definecaseself 16 % quotedblleft % \definecaseself 17 % quotedblright % \definecaseself 39 % quotesingle % \definecaseself 13 % quotesinglebase % \definecaseself 96 % quoteleft \definecaseself 39 % quoteright %D So far for the mapping. %D The following characters are kind of dangerous, %D that is, they are normally not part of fonts, unless %D explicitly constructed. %D %D \startitemize[columns,two] %D \item \type{\dotlessj} - but then it may not be defined!!!! %D \item \type{\IJligature} %D \item \type{\ijligature} %D \item \type{\Ssharp} %D \item \type{\perthousand} %D \item \type{\compoundwordmark} % \item \type{\textvisiblespace} %D \stopitemize %D So, for the moment we nil them; we can always create %D another vector if needed. \stopmapping \startencoding[ec][ec] % second arg defines auto regime, needed here ? \definecharacter textgrave 0 \definecharacter textacute 1 \definecharacter textcircumflex 2 \definecharacter texttilde 3 \definecharacter textdiaeresis 4 \definecharacter texthungarumlaut 5 \definecharacter textring 6 \definecharacter textcaron 7 \definecharacter textbreve 8 \definecharacter textmacron 9 \definecharacter textdotaccent 10 \definecharacter textcedilla 11 \definecharacter textogonek 12 \definecharacter quotesinglebase 13 \definecharacter guilsingleleft 14 \definecharacter guilsingleright 15 \definecharacter quotedblleft 16 \definecharacter quotedblright 17 \definecharacter quotedblbase 18 \definecharacter leftguillemot 19 \definecharacter rightguillemot 20 \definecharacter endash 21 \definecharacter emdash 22 %definecharacter compoundwordmark 23 %definecharacter perthousand 24 \definecharacter dotlessi 25 % or when missing: {j} \definecharacter dotlessj 26 % ff 27 % fi 28 % fl 29 % ffi 30 % ffl 31 %definecharacter textvisiblespace 32 % exclam ! 33 \definecharacter quotedbl 34 % numbersign # 35 % dollar $ 36 \definecharacter percent 37 % ampersand & 38 %definecharacter quotesingle 39 % fake 'm TODO:enco-def!!!! \definecharacter quoteright 39 % parenleft ( 40 % parenright ) 41 % asterisk * 42 % plus + 43 % comma , 44 \definecharacter softhyphen 45 % period . 46 % slash / 47 % 0-9 48-57 % colon : 58 % semicolon ; 59 % less < 60 % equal = 61 % greater > 62 % question ? 63 % at @ 64 % A-Z 65-90 % bracketleft [ 91 \definecharacter textbackslash 92 % bracketright ] 93 \definecharacter textasciicircum 94 \definecharacter textunderscore 95 \definecharacter quoteleft 96 % a-z 97-122 \definecharacter textbraceleft 123 \definecharacter textbraceright 125 \definecharacter textasciitilde 126 %definecharacter softhyphen 127 % -> 45 (127 often undefined) \definecharacter Abreve 128 % abreve 160 \definecharacter Aogonek 129 % aogonek 161 \definecharacter Cacute 130 % cacute 162 \definecharacter Ccaron 131 % ccaron 163 \definecharacter Dcaron 132 % dcaron 164 \definecharacter Ecaron 133 % ecaron 165 \definecharacter Eogonek 134 % eogonek 166 \definecharacter Gbreve 135 % gbreve 167 \definecharacter Lacute 136 % lacute 168 \definecharacter Lcaron 137 % lcaron 169 \definecharacter Lstroke 138 % lstroke 170 \definecharacter Nacute 139 % nacute 171 \definecharacter Ncaron 140 % ncaron 172 \definecharacter Eng 141 % eng 173 \definecharacter Neng 141 % Neng 173 \definecharacter Ohungarumlaut 142 % ohungarumlaut 174 \definecharacter Racute 143 % racute 175 \definecharacter Rcaron 144 % rcaron 176 \definecharacter Sacute 145 % sacute 177 \definecharacter Scaron 146 % scaron 178 \definecharacter Scedilla 147 % scedilla 179 \definecharacter Tcaron 148 % tcaron 180 \definecharacter Tcedilla 149 % tcedilla 181 \definecharacter Uhungarumlaut 150 % uhungarumlaut 182 \definecharacter Uring 151 % uring 183 \definecharacter Ydiaeresis 152 % ydiaeresis 184 \definecharacter Zacute 153 % zacute 185 \definecharacter Zcaron 154 % zcaron 186 \definecharacter Zdotaccent 155 % zdotaccent 187 \definecharacter IJligature 156 % ijligature 188 \definecharacter Idotaccent 157 \definecharacter dstroke 158 % Dstroke 208 \definecharacter sectionmark 159 \definecharacter abreve 160 % Abreve 128 \definecharacter aogonek 161 % Aogonek 129 \definecharacter cacute 162 % Cacute 130 \definecharacter ccaron 163 % Ccaron 131 \definecharacter dcaron 164 % Dcaron 132 \definecharacter ecaron 165 % Ecaron 133 \definecharacter eogonek 166 % Eogonek 134 \definecharacter gbreve 167 % Gbreve 135 \definecharacter lacute 168 % Lacute 136 \definecharacter lcaron 169 % Lcaron 137 \definecharacter lstroke 170 % Lstroke 138 \definecharacter nacute 171 % Nacute 139 \definecharacter ncaron 172 % Ncaron 140 \definecharacter eng 173 % Eng 141 \definecharacter ohungarumlaut 174 % Ohungarumlaut 142 \definecharacter racute 175 % Racute 143 \definecharacter rcaron 176 % Rcaron 144 \definecharacter sacute 177 % Sacute 145 \definecharacter scaron 178 % Scaron 146 \definecharacter scedilla 179 % Scedilla 147 \definecharacter tcaron 180 % Tcaron 148 \definecharacter tcedilla 181 % Tcedilla 149 \definecharacter uhungarumlaut 182 % Uhungarumlaut 150 \definecharacter uring 183 % Uring 151 \definecharacter ydiaeresis 184 % Ydiaeresis 152 \definecharacter zacute 185 % Zacute 153 \definecharacter zcaron 186 % Zcaron 154 \definecharacter zdotaccent 187 % Zdotaccent 155 \definecharacter ijligature 188 % IJligature 156 \definecharacter exclamdown 189 \definecharacter questiondown 190 \definecharacter textsterling 191 \definecharacter Agrave 192 % agrave 224 \definecharacter Aacute 193 % aacute 225 \definecharacter Acircumflex 194 % acircumflex 226 \definecharacter Atilde 195 % atilde 227 \definecharacter Adiaeresis 196 % adiaeresis 228 \definecharacter Aring 197 % aring 229 \definecharacter AEligature 198 % aeligature 230 \definecharacter Ccedilla 199 % ccedilla 231 \definecharacter Egrave 200 % egrave 232 \definecharacter Eacute 201 % eacute 233 \definecharacter Ecircumflex 202 % ecircumflex 234 \definecharacter Ediaeresis 203 % ediaeresis 235 \definecharacter Igrave 204 % igrave 236 \definecharacter Iacute 205 % iacute 237 \definecharacter Icircumflex 206 % icircumflex 238 \definecharacter Idiaeresis 207 % idiaeresis 239 \definecharacter Eth 208 % eth 240 \definecharacter Dstroke 208 % dstroke 158 \definecharacter Ntilde 209 % ntilde 241 \definecharacter Ograve 210 % ograve 242 \definecharacter Oacute 211 % oacute 243 \definecharacter Ocircumflex 212 % ocircumflex 244 \definecharacter Otilde 213 % otilde 245 \definecharacter Odiaeresis 214 % odiaeresis 246 \definecharacter OEligature 215 % oeligature 247 \definecharacter Ostroke 216 % ostroke 248 \definecharacter Ugrave 217 % ugrave 249 \definecharacter Uacute 218 % uacute 250 \definecharacter Ucircumflex 219 % ucircumflex 251 \definecharacter Udiaeresis 220 % udiaeresis 252 \definecharacter Yacute 221 % yacute 253 \definecharacter Thorn 222 % thorn 254 \definecharacter Ssharp 223 % ssharp 255 \definecharacter agrave 224 % Agrave 192 \definecharacter aacute 225 % Aacute 193 \definecharacter acircumflex 226 % Acircumflex 194 \definecharacter atilde 227 % Atilde 195 \definecharacter adiaeresis 228 % Adiaeresis 196 \definecharacter aring 229 % Aring 197 \definecharacter aeligature 230 % AEligature 198 \definecharacter ccedilla 231 % Ccedilla 199 \definecharacter egrave 232 % Egrave 200 \definecharacter eacute 233 % Eacute 201 \definecharacter ecircumflex 234 % Ecircumflex 202 \definecharacter ediaeresis 235 % Ediaeresis 203 \definecharacter igrave 236 % Igrave 204 \definecharacter iacute 237 % Iacute 205 \definecharacter icircumflex 238 % Icircumflex 206 \definecharacter idiaeresis 239 % Idiaeresis 207 \definecharacter eth 240 % Eth 208 \definecharacter ntilde 241 % Ntilde 209 \definecharacter ograve 242 % Ograve 210 \definecharacter oacute 243 % Oacute 211 \definecharacter ocircumflex 244 % Ocircumflex 212 \definecharacter otilde 245 % Otilde 213 \definecharacter odiaeresis 246 % Odiaeresis 214 \definecharacter oeligature 247 % OEligature 215 \definecharacter ostroke 248 % Ostroke 216 \definecharacter ugrave 249 % Ugrave 217 \definecharacter uacute 250 % Uacute 218 \definecharacter ucircumflex 251 % Ucircumflex 219 \definecharacter udiaeresis 252 % Udiaeresis 220 \definecharacter yacute 253 % Yacute 221 \definecharacter thorn 254 % Thorn 222 \definecharacter ssharp 255 % Ssharp 223 \stopencoding \startencoding[ec] \definecharacter Scommaaccent {\Scedilla} \definecharacter scommaaccent {\scedilla} \definecharacter Tcommaaccent {\Tcedilla} \definecharacter tcommaaccent {\tcedilla} \stopencoding \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/cont-gb.mkii0000644000175000017500000000102414536300610024501 0ustar hillehille%D \module %D [ file=cont-uk, %D version=1997.08.19, %D title=\CONTEXT, %D subtitle=\CONTEXT\ English Format Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \catcode`\{=1 \catcode`\}=2 \def\defaultinterface {english} \def\defaultlanguagetag{gb} \input context.mkii \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/unic-001.mkii0000644000175000017500000001241514536300610024412 0ustar hillehille%D \module %D [ file=unic-001, %D version=2002.12.03, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 1, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect %D Readable: %D %D \starttyping %D \startunicodevector 1 %D \ifcase#1\or %D unknownchar\or Abreve\or abreve\or %D .... %D Zcaron\or zcaron\else unknownchar\fi %D \stopunicodevector %D %D \stoptyping %D But we can speed things up, watch how we avoid zero and \TEX's %D automatically added \type {\relax}. % remark: % - gcommaaccent, kcomaaccent, lcomaaccent, ncomaaccent, rcomaaccent % bear the name "WITH CEDILLA" in Unicode % - scomaaccent and tcomaaccent point to the "WITH CEDILLA" in the % Adobe Glyph List \startunicodevector 1 \expandafter\strippedcsname \ifcase\numexpr#1\relax \Amacron \or \amacron \or \Abreve \or \abreve \or \Aogonek \or \aogonek \or \Cacute \or \cacute \or \Ccircumflex \or \ccircumflex \or \Cdotaccent \or \cdotaccent \or \Ccaron \or \ccaron \or \Dcaron \or \dcaron \or \Dstroke \or \dstroke \or \Emacron \or \emacron \or \Ebreve \or \ebreve \or \Edotaccent \or \edotaccent \or \Eogonek \or \eogonek \or \Ecaron \or \ecaron \or \Gcircumflex \or \gcircumflex \or \Gbreve \or \gbreve \or \Gdotaccent \or \gdotaccent \or \Gcommaaccent \or % WITH CEDILLA \gcommaaccent \or % WITH CEDILLA \Hcircumflex \or \hcircumflex \or \Hstroke \or \hstroke \or \Itilde \or \itilde \or \Imacron \or \imacron \or \Ibreve \or \ibreve \or \Iogonek \or \iogonek \or \Idotaccent \or \dotlessi \or \IJligature \or \ijligature \or \Jcircumflex \or \jcircumflex \or \Kcommaaccent \or % WITH CEDILLA \kcommaaccent \or % WITH CEDILLA \kkra \or % \kkra \or \Lacute \or \lacute \or \Lcommaaccent \or % WITH CEDILLA \lcommaaccent \or % WITH CEDILLA \Lcaron \or \lcaron \or \Ldotmiddle \or % \Ldotmiddle \or \ldotmiddle \or % \ldotmiddle \or \Lstroke \or \lstroke \or \Nacute \or \nacute \or \Ncommaaccent \or % WITH CEDILLA \ncommaaccent \or % WITH CEDILLA \Ncaron \or \ncaron \or \napostrophe \or \Neng \or \neng \or \Omacron \or \omacron \or \Obreve \or \obreve \or \Ohungarumlaut \or \ohungarumlaut \or \OEligature \or \oeligature \or \Racute \or \racute \or \Rcommaaccent \or % WITH CEDILLA \rcommaaccent \or % WITH CEDILLA \Rcaron \or \rcaron \or \Sacute \or \sacute \or \Scircumflex \or \scircumflex \or \Scedilla \or \scedilla \or \Scaron \or \scaron \or \Tcedilla \or \tcedilla \or \Tcaron \or \tcaron \or \Tstroke \or \tstroke \or \Utilde \or \utilde \or \Umacron \or \umacron \or \Ubreve \or \ubreve \or \Uring \or \uring \or \Uhungarumlaut \or \uhungarumlaut \or \Uogonek \or \uogonek \or \Wcircumflex \or \wcircumflex \or \Ycircumflex \or \ycircumflex \or \Ydiaeresis \or \Zacute \or \zacute \or \Zdotaccent \or \zdotaccent \or \Zcaron \or \zcaron \or \slong \or % 127 \slong \else \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \textflorin \or % 146 \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \Ohorn \or % 160 \ohorn \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \unknownchar \or \Uhorn \or % 175 \uhorn \else \unknownchar \fi \stopunicodevector \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/meta-txt.mkii0000644000175000017500000002331114536300610024716 0ustar hillehille%D \module %D [ file=meta-txt, %D version=2000.07.06, %D title=\METAPOST\ Graphics, %D subtitle=Text Tricks, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D In this library some handy text manipulations are %D defined. Some can and will be improved as soon as the %D \TEX||\METAPOST\ interface is stable. Some of the %D solutions may look weird, which is entirely my fault, %D since I implemented them in the process of getting grip %D on this kind of manipulations. Undoubtly better %D \METAPOST\ code is possible, but my way of learning %D this kind of trickery happens to be by \quote {trial %D and error} and \quote {look and feel} (as well as %D identifying tricks in Hobby's code). % textext ipv btex ... etex % we need a proper prefix here \unprotect \startMPextensions if unknown context_text: input mp-text; fi; \stopMPextensions %%%%%%% % \def\newchar#1{\chardef#1=0 } \ifdefined\MPtoks \else \newtoks\MPtoks \fi \ifdefined\MPbox \else \newbox \MPbox \fi \ifdefined\parwidth \else \newdimen\parwidth \fi \ifdefined\parheight \else \newdimen\parheight \fi \ifdefined\parvoffset \else \newdimen\parvoffset \fi \ifdefined\parhoffset \else \newdimen\parhoffset \fi \ifdefined\parlines \else \newcount\parlines \fi \ifdefined\partoks \else \newtoks \partoks \fi \ifdefined\shapetextbox \else \newbox \shapetextbox \fi \newif \ifparseries \ifdefined\parfirst \else \chardef \parfirst=0 \fi \def\startshapetext[#1]% {\global\newcounter\currentshapetext \global\setbox\shapetextbox\vbox\bgroup \expanded{\switchtobodyfont[\@@shbodyfont]}% \dontcomplain \hsize\parwidth \setuptolerance[\v!verytolerant,\v!stretch]% \!!counta\zerocount \!!toksa\emptytoks \def\docommand##1% {\setbox\scratchbox\hbox{\useMPgraphic{##1}}% \global\chardef\parfirst\zerocount \getMPdata % \readlocfile{\MPdatafile}{}{}% \setshapecharacteristics \advance\!!counta by \parlines \expandafter\appendtoks\the\partoks\to\!!toksa}% \processcommalist[#1]\docommand \global\parseriestrue \xdef\totalparlines{\the\!!counta}% \global\partoks\!!toksa %\ifx\partoks\emptytoks\else % safeguard \expanded{\parshape \the\!!counta \the\!!toksa}% %\fi \setshapecharacteristics % extra dummy \ifparseries\def\par{\endgraf\adaptparshape}\fi \EveryPar{\begstrut}} \def\stopshapetext {\endstrut %\removebottomthings \egroup \global\newcounter\currentshapetext \getshapecharacteristics} \def\adaptparshape% {\def\docommand##1% {\ifcase\!!counta \expandafter\appendtoks\space##1 \to\!!toksa \else \advance\!!counta \minusone \fi}% \!!counta\prevgraf \doglobal\decrement(\totalparlines,\!!counta)% \multiply\!!counta \plustwo \!!toksa\emptytoks \expanded{\processseparatedlist[\the\partoks][\space]}\docommand \global\partoks\!!toksa %\ifx\partoks\emptytoks\else % safeguard \expanded{\parshape\totalparlines\the\partoks}% }%\fi} \def\getshapecharacteristics% {\doglobal\increment\currentshapetext \doifdefinedelse{parlines:\currentshapetext} {\global\parlines \getvalue{parlines:\currentshapetext}% \global\chardef\parfirst \getvalue{parfirst:\currentshapetext}% \global\parvoffset \getvalue{parvoffset:\currentshapetext}% \global\parhoffset \getvalue{parhoffset:\currentshapetext}% \global\parwidth \getvalue{parwidth:\currentshapetext}% \global\parheight \getvalue{parheight:\currentshapetext}} {\global\parlines \plusone \global\chardef\parfirst \zerocount \global\parvoffset \zeropoint \global\parhoffset \zeropoint \global\parwidth \hsize \global\parheight \vsize}} \def\setshapecharacteristics% {\doglobal\increment\currentshapetext \setxvalue{parlines:\currentshapetext }{\the\parlines}% \setxvalue{parfirst:\currentshapetext }{\the\parfirst}% \setxvalue{parvoffset:\currentshapetext}{\the\parvoffset}% \setxvalue{parhoffset:\currentshapetext}{\the\parhoffset}% \setxvalue{parwidth:\currentshapetext }{\the\parwidth}% \setxvalue{parheight:\currentshapetext }{\the\parheight}} \def\getshapetext% option: unvbox {\vbox\bgroup \forgetall \setbox\scratchbox\vbox to \parheight {\expanded{\switchtobodyfont[\@@shbodyfont]}% evt strutheight en \splittopskip\strutheight % lineheight opslaan \vskip\parvoffset % scheelt switch en \ifcase\parfirst\or\vskip\lineheight\fi % is ook veiliger \hskip\parhoffset \hbox{\vsplit\shapetextbox to \parlines\lineheight}}% \wd\scratchbox\parwidth \ht\scratchbox\parheight \dp\scratchbox\zeropoint \box\scratchbox \getshapecharacteristics \egroup} \def\setupshapetexts% {\dodoubleempty\getparameters[\??sh]} \setupshapetexts% [\c!bodyfont=] %%%%%%% rotfont nog definieren \doifundefined{RotFont}{\definefont[RotFont][RegularBold]} \def\processfollowingtoken#1% strut toegevoegd {\appendtoks#1\to\MPtoks \setbox\MPbox=\hbox{\RotFont\setstrut\strut\the\MPtoks}% \startMPdrawing n := n + 1 ; len[n] := \the\wd\MPbox ; \stopMPdrawing \startMPdrawing[-] % pic[n] := textext{\RotFont\setstrut\strut#1} ; % btex \RotFont\setstrut\strut#1 etex ; pic[n] := btex \RotFont\setstrut\strut#1 etex ; pic[n] := pic[n] shifted - llcorner pic[n] ; \stopMPdrawing} \startuseMPgraphic{followtokens} % we default to nothing \stopuseMPgraphic \def\followtokens#1% {\vbox\bgroup \forgetall \dontcomplain \startMPenvironment \doifundefined{RotFont}{\definefont[RotFont][RegularBold]} \stopMPenvironment \MPtoks\emptytoks \resetMPdrawing \startMPdrawing \includeMPgraphic{followtokens} ; picture pic[] ; numeric len[], n ; n := 0 ; \stopMPdrawing \handletokens#1\with\processfollowingtoken \startMPdrawing if unknown RotPath : path RotPath ; RotPath := origin ; fi ; if unknown RotColor : color RotColor ; RotColor := black ; fi ; if unknown TraceRot : boolean TraceRot ; TraceRot := false ; fi ; if unknown ExtraRot : numeric ExtraRot ; ExtraRot := 0 ; fi ; numeric al, at, pl, wid, pos ; pair ap, ad ; al := arclength RotPath ; if al=0 : al := len[n] + ExtraRot ; RotPath := origin -- (al,0) ; fi ; if al1 : (n-1) else : 1 fi) ; if TraceRot : draw RotPath withpen pencircle scaled 1pt withcolor blue ; fi ; for i=1 upto n : wid := abs(xpart urcorner pic[i] - xpart llcorner pic[i]) ; pos := len[i]-wid/2 + (i-1)*pl ; at := arctime pos of RotPath ; ap := point at of RotPath ; ad := direction at of RotPath ; draw pic[i] shifted (-wid/2,0) rotated(angle(ad)) shifted ap withcolor RotColor ; if TraceRot : draw boundingbox pic[i] shifted (-wid/2,0) rotated(angle(ad)) shifted ap withpen pencircle scaled .25pt withcolor red ; draw ap withpen pencircle scaled .50pt withcolor green ; fi ; endfor ; \stopMPdrawing \MPdrawingdonetrue \getMPdrawing \resetMPdrawing \egroup} % \followtokens % {This is just a dummy text, kerned by T{\kern % -.1667em\lower .5ex\hbox {E}}{\kern -.125emX} and typeset % in a circle using {\setMFPfont M}{\setMFPfont % E}{\setMFPfont T}{\setMFPfont A}{\setMFPfont % P}{\setMFPfont O}{\setMFPfont S}{\setMFPfont T}.\quad} \startuseMPgraphic{fuzzycount} begingroup save height, span, drift, d, cp ; height := 3/ 5 * \baselinedistance ; span := 1/ 3 * height ; drift := 1/10 * height ; pickup pencircle scaled (1/12 * height) ; def d = (uniformdeviate drift) enddef ; for i := 1 upto \MPvar{n} : draw if (i mod 5)=0 : ((-d-4.5span,d)--(+d-0.5span,height-d)) else : ((-d,+d)--(+d,height-d)) fi shifted (span*i,d-drift) ; endfor; picture cp ; cp := currentpicture ; % for readability setbounds currentpicture to (llcorner cp shifted (0,-ypart llcorner cp) -- lrcorner cp shifted (0,-ypart lrcorner cp) -- urcorner cp -- ulcorner cp -- cycle) ; endgroup ; \stopuseMPgraphic \setupMPvariables [fuzzycount] [n=10] \def\fuzzycount#1% {{\tx\useMPgraphic{fuzzycount}{n=#1}}} \defineconversion[fuzzy][\fuzzycount] %%%%%%% \setupMPvariables [EnglishRule] [height=1ex, width=\the\localhsize, % without \the, problems in non e-tex color=darkgray] \defineblank [EnglishRule] [medium] \startuniqueMPgraphic{EnglishRule}{height,width,color} height = \MPvar{height} ; x1 = 0 ; x3 = \MPvar{width} ; x2 = x4 = .5x3 ; y1 = y3 = 0 ; y2 = -y4 = height/2 ; fill z1..z2..z3 & z3..z4..z1 & cycle withcolor \MPvar{color} ; \stopuniqueMPgraphic \def\EnglishRule% {\startlinecorrection[EnglishRule] \setlocalhsize \noindent \reuseMPgraphic{EnglishRule} \stoplinecorrection} %D The following macro returns a tight bound character %D sequence. %D %D \useMPlibrary[txt] %D %D \startlinecorrection %D \TightText{\ss\bf 123}{0cm}{3cm}{red} %D \stoplinecorrection \def\TightText#1#2#3#4% {\hbox % \ruledhbox {\startMPcode picture p ; p := image (graphictext "#1" withfillcolor red) ; draw p xsized #2 ysized #3 withcolor \MPcolor{#4} ; \stopMPcode}} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/core-env.mkii0000644000175000017500000004067614536300610024706 0ustar hillehille%D \module %D [ file=core-env, % was core-new %D version=1995.01.01, % wrong %D title=\CONTEXT\ Core Macros, %D subtitle=New ones, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Core Macros / Environments} \unprotect % Clean labels: \bgroup % some day this will go away / we could use detokenize as well % actually we should handle all discretionaries here \catcode`:=\@@active \gdef\cleanuplabel#1% {\begingroup \let:\lettercolon \xdef\cleanlabel{#1}% \endgroup} \gdef\cleanupprefixedlabel#1#2% {\begingroup \let:\lettercolon \xdef\cleanprefix{#1}% \xdef\cleanlabel {#2}% \endgroup} \gdef\protectlabels {\let:\lettercolon} \global\def\blabelgroup {\begingroup \let:\lettercolon} \global\let\elabelgroup \endgroup \gdef\labelcsname {\begingroup\let:\lettercolon \expandafter\endgroup\csname} \gdef\labelvalue#1% {\labelcsname#1\endcsname} \egroup %D Modes: %D %D \starttyping %D \enablemode[screen,paper,bound] %D %D \doifmodeelse {paper} {this} {that} %D \doifmode {paper,screen} {this} %D \doifnotmode {paper,bound} {that} %D %D \startmode [list] %D \stopmode %D %D \startnotmode [list] %D \stopnotmode %D \stoptyping %D %D system modes have a * as prefix %D %D Sometimes, we want to prevent a mode for being set. Think %D of situations where a style enables a mode, but an outer %D level style does not want that. Preventing can be %D considered a permanent disabling on forehand. \def\@mode@{@md@} \def\systemmodeprefix{*} \def\disabledmode {0} \def\enabledmode {1} \def\preventedmode {2} % fast internal ones \def\setmode #1{\@EA\let\csname\@mode@#1\endcsname\enabledmode } \def\resetmode#1{\@EA\let\csname\@mode@#1\endcsname\disabledmode} \def\setsystemmode #1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\enabledmode } \def\resetsystemmode#1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\disabledmode} % user ones \def\preventmode{\unprotect\dopreventmode} \def\enablemode {\unprotect\doenablemode } \def\disablemode{\unprotect\dodisablemode} \def\dopreventmode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodopreventmode} \def\doenablemode [#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodoenablemode } \def\dodisablemode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dododisablemode} \def\dodopreventmode#1% {\@EA\let\csname\@mode@#1\endcsname\preventedmode} \def\dodoenablemode#1% mode can be relax {\ifcase0\csname\@mode@#1\endcsname\relax \@EA\let\csname\@mode@#1\endcsname\enabledmode \fi} \def\dododisablemode#1% {\ifcase0\csname\@mode@#1\endcsname\or \@EA\let\csname\@mode@#1\endcsname\disabledmode \fi} % handy for mp \def\booleanmodevalue#1% can be \relax {\expandafter\ifx\csname\@mode@#1\endcsname\relax fals% \else\ifnum0\csname\@mode@#1\endcsname=0 fals% \else tru% \fi\fi e} % check macros \newif\ifcheckedmode \def\dodocheckformode#1% {\ifcase0\csname\@mode@#1\endcsname\or\checkedmodetrue\fi} \def\docheckformode#1#2#3% will be sped up with a quit {\cleanuplabel{#3}% \protect\checkedmodefalse\rawprocesscommacommand[\cleanlabel]\dodocheckformode \ifcheckedmode\@EA#1\else\@EA#2\fi} \def\dodocheckforallmodes#1% {\ifcase0\csname\@mode@#1\endcsname\relax\checkedmodefalse\or\or\checkedmodefalse\fi} \def\docheckforallmodes#1#2#3% will be sped up with a quit {\cleanuplabel{#3}% \protect\checkedmodetrue\rawprocesscommacommand[\cleanlabel]\dodocheckforallmodes \ifcheckedmode\@EA#1\else\@EA#2\fi} % simple ones \def\doifmodeelse{\unprotect\dodoifmodeelse} \def\doifmode {\unprotect\dodoifmode} \def\doifnotmode {\unprotect\dodoifnotmode} \def\startmode {\unprotect\dostartmode} \def\startnotmode{\unprotect\dostartnotmode} \def\dodoifmodeelse {\docheckformode\firstoftwoarguments\secondoftwoarguments} \def\dodoifmode {\docheckformode\firstofoneargument\gobbleoneargument} \def\dodoifnotmode {\docheckformode\gobbleoneargument\firstofoneargument} \long\def\dostartmode[#1]% {\docheckformode\donothing\dostopmode{#1}} \long\def\dostartnotmode[#1]% {\docheckformode\dostopnotmode\donothing{#1}} \let\stopmode \donothing \let\stopnotmode\donothing \long\def\dostopmode #1\stopmode {} \long\def\dostopnotmode#1\stopnotmode{} \def\doifallmodeselse{\unprotect\dodoifallmodeselse} \def\doifallmodes {\unprotect\dodoifallmodes} \def\doifnotallmodes {\unprotect\dodoifnotallmodes} \def\startallmodes {\unprotect\dostartallmodes} \def\startnotallmodes{\unprotect\dostartnotallmodes} \def\dodoifallmodeselse {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments} \def\dodoifallmodes {\docheckforallmodes\firstofoneargument\gobbleoneargument} \def\dodoifnotallmodes {\docheckforallmodes\gobbleoneargument\firstofoneargument} \long\def\dostartallmodes[#1]% {\docheckforallmodes\donothing\dostopallmodes{#1}} \long\def\dostartnotallmodes[#1]% {\docheckforallmodes\dostopnotallmodes\donothing{#1}} \let\stopallmodes \donothing \let\stopnotallmodes\donothing \long\def\dostopallmodes #1\stopallmodes {} \long\def\dostopnotallmodes#1\stopnotallmodes{} % Setups \let\startsetups\relax % to please dep checker \let\stopsetups \relax % to please dep checker \expanded {\long\def\@EA\noexpand\csname\e!start\v!setups\endcsname {\begingroup\noexpand\doifnextoptionalelse {\noexpand\startsetupsA\@EA\noexpand\csname\e!stop\v!setups\endcsname} {\noexpand\startsetupsB\@EA\noexpand\csname\e!stop\v!setups\endcsname}}} \letvalue{\e!stop\v!setups}\relax \unexpanded \def\setups{\doifnextbgroupelse\dosetupsA\dosetupsB} % {..} or [..] \unexpanded \def\setup {\doifnextbgroupelse\dosetups \dosetupsC} % {..} or [..] \def\dosetupsA #1{\cleanuplabel{#1}\processcommacommand[\cleanlabel]\dosetups} % {..} \def\dosetupsB[#1]{\cleanuplabel{#1}\processcommacommand[\cleanlabel]\dosetups} % [..] \def\dosetupsC[#1]{\cleanuplabel{#1}\dosetups\cleanlabel} % [..] % \def\dosetups#1% the grid option will be extended to other main modes % {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1} % {\executeifdefined{\??su :#1}\gobbleoneargument}\empty} % takes one argument % % \def\setupwithargument#1% the grid option will be extended to other main modes % {\executeifdefined{\??su:#1}\gobbleoneargument} % better: % \def\dosetups#1% the grid option will be extended to other main modes % {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1} % {\executeifdefined{\??su :#1}\gobbleoneargument}\empty} % takes one argument % % \def\setupwithargument#1% the grid option will be extended to other main modes % {\executeifdefined{\??su:#1}\gobbleoneargument} % faster: \letvalue{\??su:\letterpercent}\gobbleoneargument \def\dosetups#1% the grid option will be extended to other main modes {\csname\??su \ifgridsnapping \ifcsname\??su\v!grid:#1\endcsname\v!grid:#1\else\ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi\fi \else \ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi \fi \endcsname\empty} % takes one argument \def\setupwithargument#1% the grid option will be extended to other main modes {\csname\??su:\ifcsname\??su:#1\endcsname#1\else\letterpercent\fi\endcsname} \let\directsetup\dosetups % somehow fails ... % % \letvalue{\??su:..}\gobbleoneargument % % \def\dosetups#1% the grid option will be extended to other main modes % {\csname \??su % \ifcsname\??su\ifgridsnapping\v!grid\fi:#1\endcsname\v!grid:#1\else % \ifcsname\??su :#1\endcsname :#1\else % :..\fi\fi % \endcsname\empty} % takes one argument % % \def\setupwithargument#1% the grid option will be extended to other main modes % {\csname\??su:\ifcsname\??su:#1\endcsname#1\else..\fi\endcsname} \let\directsetup\dosetups \def\doifsetupselse#1% to be done: grid {\doifdefinedelse{\??su:#1}} \chardef\setupseolmode\plusone \def\startsetups {\xxstartsetups\plusone \stopsetups } \let\stopsetups \relax \def\startlocalsetups{\xxstartsetups\plusone \stoplocalsetups} \let\stoplocalsetups\relax \def\startrawsetups {\xxstartsetups\zerocount\stoprawsetups } \let\stoprawsetups \relax \def\startxmlsetups {\xxstartsetups\plustwo \stopxmlsetups } \let\stopxmlsetups \relax \def\xxstartsetups#1#2% {\begingroup\chardef\setupseolmode#1\doifnextoptionalelse{\startsetupsA#2}{\startsetupsB#2}} \def\startsetupsA#1% [ ] delimited {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi \dotripleempty\dostartsetups[#1]} \def\startsetupsB#1#2 % space delimited {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi \dodostartsetups#1\empty{#2}} \def\startsetupsC[#1][#2][#3]{\dodostartsetups#1{#2}{#3}} % [..] [..] \def\startsetupsD[#1][#2][#3]{\dodostartsetups#1\empty{#2}} % [..] \def\dostartsetups {\ifthirdargument\@EA\startsetupsC\else\@EA\startsetupsD\fi} % \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil % {\dograbuntil#1{\endgroup\dodoglobal\long\setvalue{\??su#2:#3}}} % \doglobal % % better: % \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil % {\cleanuplabel{\??su#2:#3}\dograbuntil#1{\endgroup\dodoglobal\long\setvalue\cleanlabel}} % \doglobal % \long\def\dodostartsetups#1#2#3% % {\cleanuplabel{\??su#2:#3}% % \long\def\dododostartsetups##1#1{\endgroup\dodoglobal\long\setvalue\cleanlabel####1{##1}}\dododostartsetups} \long\def\dodostartsetups#1#2#3% {\cleanuplabel{\??su#2:#3}% \long\def\dododostartsetups##1#1% {\endgroup \dodoglobal % bah \long\expandafter\setvalue\expandafter\cleanlabel\expandafter####\expandafter1\expandafter{##1}}% \dododostartsetups\empty} % the empty trick prevents the { } in {arg} from being eaten up \def\systemsetupsprefix{*} \def\systemsetups#1{\dosetups{\systemsetupsprefix#1}} \def\resetsetups[#1]% see x-fo for usage {\ifundefined{\??su\ifgridsnapping\v!grid\fi:#1}% \dodoglobal\letbeundefined{\??su:#1}% \else \dodoglobal\letbeundefined{\??su\ifgridsnapping\v!grid\fi:#1}% \fi} % or % % \def\resetsetups[#1]% % {\letbeundefined % {\??su:% % \ifundefined{\??su\ifgridsnapping\v!grid\fi:#1}#1\else\ifgridsnapping\v!grid\fi% % #1}} %D new and beta and will become a module instead \def\defineshortcut {\dotripleargument\dodefineshortcut} \def\dodefineshortcut[#1][#2][#3]% {\ifthirdargument \doifelsenothing{#1} {\dododefineshortcut[<>][#2][#3]} {\dododefineshortcut[#1][#2][#3]}% \else\ifsecondargument \dododefineshortcut[<>][#1][#2]% \else \dododefineshortcut[<>][][#1]% \fi\fi} \def\dododefineshortcut[#1#2][#3][#4]% #1 is the trigger, #2 the delimiter/tag {\doifundefined{\??te\??te\string#2}{\letvalue{\??te\??te\string#2}=#1}% \defineactivecharacter #1 {\@EA\doshortcut\string#2} % \getparameters [\??te\string#2#3] [\c!commands=,\c!command=,\c!style=,\c!color=,#4]} \def\doshortcut#1% {\ifmmode \getvalue{\??te\??te#1}% \else \bgroup \catcode`#1=\@@other \def\dodoshortcut##1#1% {\def\shorttag{\??te#1}% \def\shortcut{##1}% \dododoshortcut##1:\end}% \@EA\dodoshortcut \fi} \def\dododoshortcut#1:#2\end {\doifelsenothing{#2} {\doifundefinedelse{\shorttag\c!commands} {\shortcut} {\@EA\dodododoshortcut\@EA\shorttag\@EA:\shortcut:\end}} {\doifundefinedelse{\shorttag#1\c!commands} {\shortcut} {\dodododoshortcut\shorttag#1:#2\end}}% \egroup} \def\dodododoshortcut#1:#2:\end {\getvalue{#1\c!commands}% \doattributes{#1}\c!style\c!color{\getvalue{#1\c!command}{#2}}} %D \defineshortcut [style=type] %D \defineshortcut [b] [style=bold] %D \defineshortcut [e] [style=\em] %D \defineshortcut [t] [style=type] %D \defineshortcut [c] [style=cap] %D \defineshortcut [k] [style=cap] %D \defineshortcut [u] [style=type,command=\hyphenatedurl] %D %D \startlines %D test test %D test test %D test test %D test test %D zus<>zo zus<:>zo zus<::>zo %D test test dat (ziezo) %D test test dat (:ziezo) %D test test dat (ziezo:) %D test test dat (zi:ezo:) %D well, looks fuzzy %D $10<20$ %D \stoplines %D %D \defineshortcut [<>] [i] [style=\it] %D \defineshortcut [()] [b] [style=\bf] %D \defineshortcut [++] [s] [style=\sl] %D \defineshortcut [//] [u] [style=\underbars] %D \defineshortcut [--] [a] [style=\overstrike] %D %D \startlines %D it seems well %D it seems (b:to work) well %D it seems +s:to work+ well %D it seems /u:to work/ well %D it seems -a:to work- well %D \stoplines %D \macros %D {setvariables,getvariable,getvariabledefault} %D %D \starttyping %D \setvariables[xx][title=] %D \setvariables[xx][title=test test] %D \setvariables[xx][title=test $x=1$ test] % fatal error reported %D \setvariables[xx][title=test {$x=1$} test] %D \setvariables[xx][title] % fatal error reported %D \setvariables[xx][titletitel=e] %D \stoptyping \def\??vars{@@vars} \def\setvariables {\dotripleargument\dosetvariables[\getrawparameters ]} \def\setevariables{\dotripleargument\dosetvariables[\getraweparameters]} \def\setgvariables{\dotripleargument\dosetvariables[\getrawgparameters]} \def\setxvariables{\dotripleargument\dosetvariables[\getrawxparameters]} \def\globalsetvariables % obsolete {\dotripleargument\dosetvariables[\globalgetrawparameters]} \long\def\dosetvariables[#1][#2][#3]% tricky, test on s-pre-60 {\errorisfataltrue \doifelse{#2}\currentvariableclass {#1[\??vars:#2:][#3]}% {\pushmacro\currentvariableclass \def\currentvariableclass{#2}% \getvariable{#2}\s!reset #1[\??vars:#2:][#3]% \getvariable{#2}\s!set \popmacro\currentvariableclass}% \errorisfatalfalse} \long\def\setvariable #1#2#3{\long\setvalue {\??vars:#1:#2}{#3}} \long\def\setevariable#1#2#3{\long\setevalue{\??vars:#1:#2}{#3}} \long\def\setgvariable#1#2#3{\long\setgvalue{\??vars:#1:#2}{#3}} \long\def\setxvariable#1#2#3{\long\setxvalue{\??vars:#1:#2}{#3}} \def\getvariable#1#2% to be sped up {\csname \ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi \endcsname} \def\showvariable#1#2% {\showvalue{\ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi}} \let\currentvariableclass\empty %D \macros %D {doifelsevariable,doifvariable,doifnotvariable} %D %D A few trivial macros: \def\doifelsevariable#1#2% {\ifcsname\??vars:#1:#2\endcsname \expandafter\firstoftwoarguments \else \expandafter\secondoftwoarguments \fi} \def\doifvariable#1#2% {\ifcsname\??vars:#1:#2\endcsname \expandafter\firstofoneargument \else \expandafter\gobbleoneargument \fi} \def\doifnotvariable#1#2% {\ifcsname\??vars:#1:#2\endcsname \expandafter\gobbleoneargument \else \expandafter\firstofoneargument \fi} \def\getvariabledefault#1#2% #3% can be command, so no ifcsname here {\executeifdefined{\??vars:#1:#2}}% {#3} %D \macros %D {checkvariables} %D %D I'll probably forget that this on exists. \def\checkvariables {\dodoubleargument\docheckvariables} \def\docheckvariables {\dogetparameters\docheckrawvalue} \def\docheckrawvalue#1#2#3% {\doifundefined {\??vars:#1:#2}{\setvalue{\??vars:#1:#2}{#3}} {\doifvaluenothing{\??vars:#1:#2}{\setvalue{\??vars:#1:#2}{#3}}}} % \def\setupenv{\dodoubleargument\rawgetparameters[\??en]} % % \def\doifenvelse#1{\doifdefinedelse{\??en#1}} % speed up % \def\doifenv #1{\doifdefined {\??en#1}} % speed up % \def\doifnotenv #1{\doifundefined {\??en#1}} % speed up % % \def\env#1{\csname\??en#1\endcsname} % % \def\envvar#1#2% % {\ifcsname\??en#1\endcsname % \csname\??en#1\endcsname\else#2% % \fi} % low level change, now also accessible as \getvariable{environment}{...}; the % next macros will become obsolete some day in favor of normal variables \def\s!environment{environment} \def\setupenv {\dotripleargument\dosetvariables[\getrawparameters][\s!environment]} \def\doifenvelse{\doifelsevariable \s!environment} \def\doifenv {\doifvariable \s!environment} \def\doifnotenv {\doifnotvariable \s!environment} \def\env {\getvariable \s!environment} \def\envvar {\getvariabledefault\s!environment} \protect \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/sort-def.mkii0000644000175000017500000004350414536300610024704 0ustar hillehille%D \module %D [ file=sort-def, %D version=2005.08.08, %D title=\CONTEXT\ Sort Macros, %D subtitle=Defaults, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module replaces existing sort key handling and is meant to be %D used with the new texutil functionality. Here we define the default %D mappings \exportsortexpansion{aeligature} {ae} \exportsortexpansion{AEligature} {AE} \exportsortexpansion{ijligature} {ij} \exportsortexpansion{IJligature} {IJ} \exportsortexpansion{oeligature} {oe} \exportsortexpansion{OEligature} {OE} \exportsortexpansion{ssharp} {ss} \exportsortexpansion{Ssharp} {SS} \exportsortexpansion{thorn} {} \exportsortexpansion{Thorn} {} \exportsortexpansion{eth} {} \exportsortexpansion{Eth} {} \exportsortexpansion{dj} {dstroke} \exportsortexpansion{Dj} {Dstroke} \exportsortexpansion{Acircumflex} {} \exportsortexpansion{acircumflex} {} \exportsortexpansion{Ccircumflex} {} \exportsortexpansion{ccircumflex} {} \exportsortexpansion{Ecircumflex} {} \exportsortexpansion{ecircumflex} {} \exportsortexpansion{Gcircumflex} {} \exportsortexpansion{gcircumflex} {} \exportsortexpansion{Hcircumflex} {} \exportsortexpansion{hcircumflex} {} \exportsortexpansion{Icircumflex} {} \exportsortexpansion{icircumflex} {} \exportsortexpansion{Jcircumflex} {} \exportsortexpansion{jcircumflex} {} \exportsortexpansion{Ocircumflex} {} \exportsortexpansion{ocircumflex} {} \exportsortexpansion{Scircumflex} {} \exportsortexpansion{scircumflex} {} \exportsortexpansion{Ucircumflex} {} \exportsortexpansion{ucircumflex} {} \exportsortexpansion{Wcircumflex} {} \exportsortexpansion{wcircumflex} {} \exportsortexpansion{Ycircumflex} {} \exportsortexpansion{ycircumflex} {} \exportsortexpansion{Agrave} {} \exportsortexpansion{agrave} {} \exportsortexpansion{Egrave} {} \exportsortexpansion{egrave} {} \exportsortexpansion{Igrave} {} \exportsortexpansion{igrave} {} \exportsortexpansion{Ograve} {} \exportsortexpansion{ograve} {} \exportsortexpansion{Ugrave} {} \exportsortexpansion{ugrave} {} \exportsortexpansion{Ygrave} {} \exportsortexpansion{ygrave} {} \exportsortexpansion{Atilde} {} \exportsortexpansion{atilde} {} \exportsortexpansion{Itilde} {} \exportsortexpansion{itilde} {} \exportsortexpansion{Ntilde} {} \exportsortexpansion{ntilde} {} \exportsortexpansion{Otilde} {} \exportsortexpansion{otilde} {} \exportsortexpansion{Utilde} {} \exportsortexpansion{utilde} {} \exportsortexpansion{Ytilde} {} \exportsortexpansion{ytilde} {} \exportsortexpansion{Adiaeresis} {} \exportsortexpansion{adiaeresis} {} \exportsortexpansion{Ediaeresis} {} \exportsortexpansion{ediaeresis} {} \exportsortexpansion{Idiaeresis} {} \exportsortexpansion{idiaeresis} {} \exportsortexpansion{Odiaeresis} {} \exportsortexpansion{odiaeresis} {} \exportsortexpansion{Udiaeresis} {} \exportsortexpansion{udiaeresis} {} \exportsortexpansion{Ydiaeresis} {} \exportsortexpansion{ydiaeresis} {} \exportsortexpansion{Aacute} {} \exportsortexpansion{aacute} {} \exportsortexpansion{Cacute} {} \exportsortexpansion{cacute} {} \exportsortexpansion{Eacute} {} \exportsortexpansion{eacute} {} \exportsortexpansion{Iacute} {} \exportsortexpansion{iacute} {} \exportsortexpansion{Lacute} {} \exportsortexpansion{lacute} {} \exportsortexpansion{Nacute} {} \exportsortexpansion{nacute} {} \exportsortexpansion{Oacute} {} \exportsortexpansion{oacute} {} \exportsortexpansion{Racute} {} \exportsortexpansion{racute} {} \exportsortexpansion{Sacute} {} \exportsortexpansion{sacute} {} \exportsortexpansion{Uacute} {} \exportsortexpansion{uacute} {} \exportsortexpansion{Yacute} {} \exportsortexpansion{yacute} {} \exportsortexpansion{Zacute} {} \exportsortexpansion{zacute} {} \exportsortexpansion{dstroke} {} \exportsortexpansion{Dstroke} {} \exportsortexpansion{Hstroke} {} \exportsortexpansion{hstroke} {} \exportsortexpansion{Tstroke} {} \exportsortexpansion{tstroke} {} \exportsortexpansion{Cdotaccent} {} \exportsortexpansion{cdotaccent} {} \exportsortexpansion{Edotaccent} {} \exportsortexpansion{edotaccent} {} \exportsortexpansion{Gdotaccent} {} \exportsortexpansion{gdotaccent} {} \exportsortexpansion{Idotaccent} {} \exportsortexpansion{idotaccent} {} \exportsortexpansion{Zdotaccent} {} \exportsortexpansion{zdotaccent} {} \exportsortexpansion{Amacron} {} \exportsortexpansion{amacron} {} \exportsortexpansion{Emacron} {} \exportsortexpansion{emacron} {} \exportsortexpansion{Imacron} {} \exportsortexpansion{imacron} {} \exportsortexpansion{Omacron} {} \exportsortexpansion{omacron} {} \exportsortexpansion{Umacron} {} \exportsortexpansion{umacron} {} \exportsortexpansion{Ccedilla} {} \exportsortexpansion{ccedilla} {} \exportsortexpansion{Kcedilla} {} \exportsortexpansion{kcedilla} {} \exportsortexpansion{Lcedilla} {} \exportsortexpansion{lcedilla} {} \exportsortexpansion{Ncedilla} {} \exportsortexpansion{ncedilla} {} \exportsortexpansion{Rcedilla} {} \exportsortexpansion{rcedilla} {} \exportsortexpansion{Scedilla} {} \exportsortexpansion{scedilla} {} \exportsortexpansion{Tcedilla} {} \exportsortexpansion{tcedilla} {} \exportsortexpansion{Ohungarumlaut} {} \exportsortexpansion{ohungarumlaut} {} \exportsortexpansion{Uhungarumlaut} {} \exportsortexpansion{uhungarumlaut} {} \exportsortexpansion{Aogonek} {} \exportsortexpansion{aogonek} {} \exportsortexpansion{Eogonek} {} \exportsortexpansion{eogonek} {} \exportsortexpansion{Iogonek} {} \exportsortexpansion{iogonek} {} \exportsortexpansion{Uogonek} {} \exportsortexpansion{uogonek} {} \exportsortexpansion{Aring} {} \exportsortexpansion{aring} {} \exportsortexpansion{Uring} {} \exportsortexpansion{uring} {} \exportsortexpansion{Abreve} {} \exportsortexpansion{abreve} {} \exportsortexpansion{Ebreve} {} \exportsortexpansion{ebreve} {} \exportsortexpansion{Gbreve} {} \exportsortexpansion{gbreve} {} \exportsortexpansion{Ibreve} {} \exportsortexpansion{ibreve} {} \exportsortexpansion{Obreve} {} \exportsortexpansion{obreve} {} \exportsortexpansion{Ubreve} {} \exportsortexpansion{ubreve} {} \exportsortexpansion{Ccaron} {} \exportsortexpansion{ccaron} {} \exportsortexpansion{Dcaron} {} \exportsortexpansion{dcaron} {} \exportsortexpansion{Ecaron} {} \exportsortexpansion{ecaron} {} \exportsortexpansion{Lcaron} {} \exportsortexpansion{lcaron} {} \exportsortexpansion{Ncaron} {} \exportsortexpansion{ncaron} {} \exportsortexpansion{Rcaron} {} \exportsortexpansion{rcaron} {} \exportsortexpansion{Scaron} {} \exportsortexpansion{scaron} {} \exportsortexpansion{Tcaron} {} \exportsortexpansion{tcaron} {} \exportsortexpansion{Ycaron} {} \exportsortexpansion{ycaron} {} \exportsortexpansion{Zcaron} {} \exportsortexpansion{zcaron} {} \exportsortexpansion{Lstroke} {} \exportsortexpansion{lstroke} {} \exportsortexpansion{Ostroke} {} \exportsortexpansion{ostroke} {} \exportsortexpansion{aumlaut} {} \exportsortexpansion{eumlaut} {} \exportsortexpansion{iumlaut} {} \exportsortexpansion{oumlaut} {} \exportsortexpansion{uumlaut} {} \exportsortexpansion{Aumlaut} {} \exportsortexpansion{Eumlaut} {} \exportsortexpansion{Iumlaut} {} \exportsortexpansion{Oumlaut} {} \exportsortexpansion{Uumlaut} {} \exportsortexpansion{scommaaccent} {} \exportsortexpansion{Scommaaccent} {} \exportsortexpansion{tcommaaccent} {} \exportsortexpansion{Tcommaaccent} {} \exportsortexpansion{Etilde} {} \exportsortexpansion{etilde} {} \exportsortexpansion{Ahook} {} \exportsortexpansion{ahook} {} \exportsortexpansion{Ehook} {} \exportsortexpansion{ehook} {} \exportsortexpansion{Ihook} {} \exportsortexpansion{ihook} {} \exportsortexpansion{Ohook} {} \exportsortexpansion{ohook} {} \exportsortexpansion{Uhook} {} \exportsortexpansion{uhook} {} \exportsortexpansion{Yhook} {} \exportsortexpansion{yhook} {} \exportsortexpansion{Acircumflexgrave} {} \exportsortexpansion{Acircumflexacute} {} \exportsortexpansion{Acircumflextilde} {} \exportsortexpansion{Acircumflexhook} {} \exportsortexpansion{acircumflexgrave} {} \exportsortexpansion{acircumflexacute} {} \exportsortexpansion{acircumflextilde} {} \exportsortexpansion{acircumflexhook} {} \exportsortexpansion{Ecircumflexgrave} {} \exportsortexpansion{Ecircumflexacute} {} \exportsortexpansion{Ecircumflextilde} {} \exportsortexpansion{Ecircumflexhook} {} \exportsortexpansion{ecircumflexgrave} {} \exportsortexpansion{ecircumflexacute} {} \exportsortexpansion{ecircumflextilde} {} \exportsortexpansion{ecircumflexhook} {} \exportsortexpansion{Ocircumflexgrave} {} \exportsortexpansion{Ocircumflexacute} {} \exportsortexpansion{Ocircumflextilde} {} \exportsortexpansion{Ocircumflexhook} {} \exportsortexpansion{ocircumflexgrave} {} \exportsortexpansion{ocircumflexacute} {} \exportsortexpansion{ocircumflextilde} {} \exportsortexpansion{ocircumflexhook} {} \exportsortexpansion{Abrevegrave} {} \exportsortexpansion{Abreveacute} {} \exportsortexpansion{Abrevetilde} {} \exportsortexpansion{Abrevehook} {} \exportsortexpansion{abrevegrave} {} \exportsortexpansion{abreveacute} {} \exportsortexpansion{abrevetilde} {} \exportsortexpansion{abrevehook} {} \exportsortexpansion{Adotbelow} {} \exportsortexpansion{adotbelow} {} \exportsortexpansion{Edotbelow} {} \exportsortexpansion{edotbelow} {} \exportsortexpansion{Idotbelow} {} \exportsortexpansion{idotbelow} {} \exportsortexpansion{Odotbelow} {} \exportsortexpansion{odotbelow} {} \exportsortexpansion{Udotbelow} {} \exportsortexpansion{udotbelow} {} \exportsortexpansion{Ydotbelow} {} \exportsortexpansion{ydotbelow} {} \exportsortexpansion{Ohorndotbelow} {} \exportsortexpansion{ohorndotbelow} {} \exportsortexpansion{Uhorndotbelow} {} \exportsortexpansion{uhorndotbelow} {} \exportsortexpansion{Acircumflexdotbelow} {} \exportsortexpansion{acircumflexdotbelow} {} \exportsortexpansion{Ecircumflexdotbelow} {} \exportsortexpansion{ecircumflexdotbelow} {} \exportsortexpansion{Ocircumflexdotbelow} {} \exportsortexpansion{ocircumflexdotbelow} {} \exportsortexpansion{Abrevedotbelow} {} \exportsortexpansion{abrevedotbelow} {} \exportsortexpansion{Ohorn} {} \exportsortexpansion{Ohorngrave} {} \exportsortexpansion{Ohornacute} {} \exportsortexpansion{Ohorntilde} {} \exportsortexpansion{Ohornhook } {} \exportsortexpansion{ohorn} {} \exportsortexpansion{ohorngrave} {} \exportsortexpansion{ohornacute} {} \exportsortexpansion{ohorntilde} {} \exportsortexpansion{ohornhook } {} \exportsortexpansion{Uhorn} {} \exportsortexpansion{Uhorngrave} {} \exportsortexpansion{Uhornacute} {} \exportsortexpansion{Uhorntilde} {} \exportsortexpansion{Uhornhook } {} \exportsortexpansion{uhorn} {} \exportsortexpansion{uhorngrave} {} \exportsortexpansion{uhornacute} {} \exportsortexpansion{uhorntilde} {} \exportsortexpansion{uhornhook} {} \exportsortexpansion{eszett} {ssharp} \exportsortexpansion{Eszett} {Ssharp} \exportsortexpansion{lslash} {lstroke} \exportsortexpansion{Lslash} {Lstroke} \exportsortexpansion{dslash} {dstroke} \exportsortexpansion{Dslash} {Dstroke} \exportsortexpansion{oslash} {ostroke} \exportsortexpansion{Oslash} {Ostroke} \exportsortexpansion{dcroat} {dstroke} \exportsortexpansion{Dcroat} {Dstroke} % more \exportsortshortcut{\^ A} {\Acircumflex} \exportsortshortcut{\^ a} {\acircumflex} \exportsortshortcut{\^ C} {\Ccircumflex} \exportsortshortcut{\^ c} {\ccircumflex} \exportsortshortcut{\^ E} {\Ecircumflex} \exportsortshortcut{\^ e} {\ecircumflex} \exportsortshortcut{\^ G} {\Gcircumflex} \exportsortshortcut{\^ g} {\gcircumflex} \exportsortshortcut{\^ H} {\Hcircumflex} \exportsortshortcut{\^ h} {\hcircumflex} \exportsortshortcut{\^ I} {\Icircumflex} \exportsortshortcut{\^ i} {\icircumflex} \exportsortshortcut{\^\i} {\icircumflex} \exportsortshortcut{\^ J} {\Jcircumflex} \exportsortshortcut{\^ j} {\jcircumflex} \exportsortshortcut{\^\j} {\jcircumflex} \exportsortshortcut{\^ O} {\Ocircumflex} \exportsortshortcut{\^ o} {\ocircumflex} \exportsortshortcut{\^ S} {\Scircumflex} \exportsortshortcut{\^ s} {\scircumflex} \exportsortshortcut{\^ U} {\Ucircumflex} \exportsortshortcut{\^ u} {\ucircumflex} \exportsortshortcut{\^ W} {\Wcircumflex} \exportsortshortcut{\^ w} {\wcircumflex} \exportsortshortcut{\^ Y} {\Ycircumflex} \exportsortshortcut{\^ y} {\ycircumflex} \exportsortshortcut{\` A} {\Agrave} \exportsortshortcut{\` a} {\agrave} \exportsortshortcut{\` E} {\Egrave} \exportsortshortcut{\` e} {\egrave} \exportsortshortcut{\` I} {\Igrave} \exportsortshortcut{\` i} {\igrave} \exportsortshortcut{\`\i} {\igrave} \exportsortshortcut{\` O} {\Ograve} \exportsortshortcut{\` o} {\ograve} \exportsortshortcut{\` U} {\Ugrave} \exportsortshortcut{\` u} {\ugrave} \exportsortshortcut{\` Y} {\Ygrave} \exportsortshortcut{\` y} {\ygrave} \exportsortshortcut{\~ A} {\Atilde} \exportsortshortcut{\~ a} {\atilde} \exportsortshortcut{\~ I} {\Itilde} \exportsortshortcut{\~ i} {\itilde} \exportsortshortcut{\~\i} {\itilde} \exportsortshortcut{\~ O} {\Otilde} \exportsortshortcut{\~ o} {\otilde} \exportsortshortcut{\~ U} {\Utilde} \exportsortshortcut{\~ u} {\utilde} \exportsortshortcut{\" A} {\Adiaeresis} \exportsortshortcut{\" a} {\adiaeresis} \exportsortshortcut{\" E} {\Ediaeresis} \exportsortshortcut{\" e} {\ediaeresis} \exportsortshortcut{\" I} {\Idiaeresis} \exportsortshortcut{\" i} {\idiaeresis} \exportsortshortcut{\"\i} {\idiaeresis} \exportsortshortcut{\" O} {\Odiaeresis} \exportsortshortcut{\" o} {\odiaeresis} \exportsortshortcut{\" U} {\Udiaeresis} \exportsortshortcut{\" u} {\udiaeresis} \exportsortshortcut{\" Y} {\Ydiaeresis} \exportsortshortcut{\" y} {\ydiaeresis} \exportsortshortcut{\' A} {\Aacute} \exportsortshortcut{\' a} {\aacute} \exportsortshortcut{\' C} {\Cacute} \exportsortshortcut{\' c} {\cacute} \exportsortshortcut{\' E} {\Eacute} \exportsortshortcut{\' e} {\eacute} \exportsortshortcut{\' I} {\Iacute} \exportsortshortcut{\' i} {\iacute} \exportsortshortcut{\'\i} {\iacute} \exportsortshortcut{\' L} {\Lacute} \exportsortshortcut{\' l} {\lacute} \exportsortshortcut{\' N} {\Nacute} \exportsortshortcut{\' n} {\nacute} \exportsortshortcut{\' O} {\Oacute} \exportsortshortcut{\' o} {\oacute} \exportsortshortcut{\' R} {\Racute} \exportsortshortcut{\' r} {\racute} \exportsortshortcut{\' S} {\Sacute} \exportsortshortcut{\' s} {\sacute} \exportsortshortcut{\' U} {\Uacute} \exportsortshortcut{\' u} {\uacute} \exportsortshortcut{\' Y} {\Yacute} \exportsortshortcut{\' y} {\yacute} \exportsortshortcut{\' Z} {\Zacute} \exportsortshortcut{\' z} {\zacute} \exportsortshortcut{\. C} {\Cdotaccent} \exportsortshortcut{\. c} {\cdotaccent} \exportsortshortcut{\. E} {\Edotaccent} \exportsortshortcut{\. e} {\edotaccent} \exportsortshortcut{\. G} {\Gdotaccent} \exportsortshortcut{\. g} {\gdotaccent} \exportsortshortcut{\. I} {\Idotaccent} \exportsortshortcut{\. i} {\idotaccent} \exportsortshortcut{\.\i} {\idotaccent} \exportsortshortcut{\. Z} {\Zdotaccent} \exportsortshortcut{\. z} {\zdotaccent} \exportsortshortcut{\= A} {\Amacron} \exportsortshortcut{\= a} {\amacron} \exportsortshortcut{\= E} {\Emacron} \exportsortshortcut{\= e} {\emacron} \exportsortshortcut{\= I} {\Imacron} \exportsortshortcut{\= i} {\imacron} \exportsortshortcut{\=\i} {\imacron} \exportsortshortcut{\= O} {\Omacron} \exportsortshortcut{\= o} {\omacron} \exportsortshortcut{\= U} {\Umacron} \exportsortshortcut{\= u} {\umacron} \exportsortshortcut{\c C} {\Ccedilla} \exportsortshortcut{\c c} {\ccedilla} \exportsortshortcut{\c K} {\Kcedilla} \exportsortshortcut{\c k} {\kcedilla} \exportsortshortcut{\c L} {\Lcedilla} \exportsortshortcut{\c l} {\lcedilla} \exportsortshortcut{\c N} {\Ncedilla} \exportsortshortcut{\c n} {\ncedilla} \exportsortshortcut{\c R} {\Rcedilla} \exportsortshortcut{\c r} {\rcedilla} \exportsortshortcut{\c S} {\Scedilla} \exportsortshortcut{\c s} {\scedilla} \exportsortshortcut{\c T} {\Tcedilla} \exportsortshortcut{\c t} {\tcedilla} \exportsortshortcut{\H O} {\Ohungarumlaut} \exportsortshortcut{\H o} {\ohungarumlaut} \exportsortshortcut{\H u} {\uhungarumlaut} \exportsortshortcut{\H U} {\Uhungarumlaut} \exportsortshortcut{\k A} {\Aogonek} \exportsortshortcut{\k a} {\aogonek} \exportsortshortcut{\k E} {\Eogonek} \exportsortshortcut{\k e} {\eogonek} \exportsortshortcut{\k I} {\Iogonek} \exportsortshortcut{\k i} {\iogonek} \exportsortshortcut{\k U} {\Uogonek} \exportsortshortcut{\k u} {\uogonek} \exportsortshortcut{\r A} {\Aring} \exportsortshortcut{\r a} {\aring} \exportsortshortcut{\r U} {\Uring} \exportsortshortcut{\r u} {\uring} \exportsortshortcut{\u A} {\Abreve} \exportsortshortcut{\u a} {\abreve} \exportsortshortcut{\u E} {\Ebreve} \exportsortshortcut{\u e} {\ebreve} \exportsortshortcut{\u G} {\Gbreve} \exportsortshortcut{\u g} {\gbreve} \exportsortshortcut{\u I} {\Ibreve} \exportsortshortcut{\u i} {\ibreve} \exportsortshortcut{\u\i} {\ibreve} \exportsortshortcut{\u O} {\Obreve} \exportsortshortcut{\u o} {\obreve} \exportsortshortcut{\u U} {\Ubreve} \exportsortshortcut{\u u} {\ubreve} \exportsortshortcut{\v C} {\Ccaron} \exportsortshortcut{\v c} {\ccaron} \exportsortshortcut{\v D} {\Dcaron} \exportsortshortcut{\v d} {\dcaron} \exportsortshortcut{\v E} {\Ecaron} \exportsortshortcut{\v e} {\ecaron} \exportsortshortcut{\v L} {\Lcaron} \exportsortshortcut{\v l} {\lcaron} \exportsortshortcut{\v N} {\Ncaron} \exportsortshortcut{\v n} {\ncaron} \exportsortshortcut{\v R} {\Rcaron} \exportsortshortcut{\v r} {\rcaron} \exportsortshortcut{\v S} {\Scaron} \exportsortshortcut{\v s} {\scaron} \exportsortshortcut{\v T} {\Tcaron} \exportsortshortcut{\v t} {\tcaron} \exportsortshortcut{\v Z} {\Zcaron} \exportsortshortcut{\v z} {\zcaron} \endinput context-modules-20240428/texmf-dist/tex/context/base/mkii/thrd-tab.mkii0000644000175000017500000016170614536300610024673 0ustar hillehille% Since this file is not available in every distribution, we % have copied the original in this file. The manuals to % Wichura's PiCTeX and TaBlE packages are not available on % line and are distributed by respectively the TeX Users Group % and Personal TeX Inc. Many macros of TaBlE are overloaded % and/or extended in core-tab.tex. The extensions concern % splitting over pages, color and consistent spacing. % We've patched this file for catcode ! because in luatex we use % catcode tables and using unprotect/protect is cleaner. Late % 2007 we also decided no longer to treat quotes and bars the % TaBLe way and instead of messy pushing and popping of catcodes % we commented a couple of lines here. We just assume that the % template has no active bar and quote. Inside tables we now % have the regular meaning of active bars in ConTeXt. More % drastic extensions and patched can be found in core-tab.tex. % TABLE 1.0 % Copyright Michael J. Wichura August 1988 (patched by Hans Hagen) % The TABLE macros are divided into sections, roughly according to % function: % Section Name Function % a Allocation Allocates storage registers for parameters. % f Format Reads format section; builds preamble for \halign; % processes \ReFormat command. % g Get Value Converts "spec"'s (as in spec_{LT}) to % corresponding "values"'s (as in value_{LT}). % h Hacks Utility macros; error messages; miscellaneous commands. % k Keys Definition and scanning of format keys. % n Numeric Macros for TABLE's numeric format. % s Struts Macros for struts. % t Tables Sets up \halign for table; end-of-row processing; % alternate vertical rules; spanning; horizontal % lines; stretching and shrinking; repositioning % commands. % The name of each internal macro begins with the prefix "\!t", the % "!" having category code 11, followed by the letter of the section % in which the macro is defined. For example, a macro beginning "\!th" % is defined in Section h (Hacks). There a few exceptions: % the general purpose macros "\!ttemp", "\!ttempa", "\!ttempb", and % "\!tnext" are repeatedly defined on the spot as the need arises. % External macros (and active characters) are defined in the following % sections: % Macro Section % " t % \- t % \= t % \ActivateBarAndQuote h % \AugmentedTableStrut s % \BackSpace h % \BeginFormat f % \BeginTable t % \BeginTableParBox a % \Center t % \ColumnWidthFactor a % \ColumnWidthUnit a % \DQuote h % \EndFormat k (\EndFormat is actually a key) % \EndTable t % \EndTableParBox a % \Enlarge s % \enlarge s % \EveryTable a % \EveryTableParBox a % \Expand t % \InterColumnSpaceFactor a % \InterColumnSpaceUnit a % \JustCenter t % \JustLeft t % \JustRight t % \KernFactor a % \KernUnit a % \Left t % \LeftTabskip a % \LineThicknessFactor a % \LineThicknessUnit a % \LongLines t % \Lower h % \MakeStrut s % \NewFormatKey k % \NormalCWU a % \NormalICSU a % \NormalKU a % \NormalLTU a % \NormalSU a % \NormalTableUnits a % \OpenUp s % \PseudoVrule t % \Raise h % \ReadFormatKeys k % \ReFormat f % \Right t % \RightTabskip a % \SetTableToWidth t % \Smash h % \StandardTableStrut s % \StrutDepthFactor a % \StrutHeightFactor a % \StrutUnit a % \TaBlE h % \TracingFormats a % \TracingKeys a % \Use t % \use t % \VBar h % \Vspace h % \VspaceFactor a % \WidenTableBy t % \\ t % \_ t % \| t % | t % ~ t \unprotect % \catcode `\!=11 % \catcode `\@=11 \newif\ifh@ % normally in plain tex \newif\ifv@ % normally in plain tex % Don't try to read the TABLE macros until after you've read the % TABLE manual. The internal documentation of the macros is % sketchy; you need the manual to understand what's going on. % You should also review the material on \halign s in the TeXbook, % since TABLE uses an \halign to perform its alignments. % In studying the TABLE macros, you should start by skimming the % macros in the "miscellaneous hacks", "error messages", and "loops" % subsections of Section h, as well as the "\GetValue" macro in % Section g; these macros are called many times by the other macros. % To continue with a "bottom-up" approach, read next Sections k, % f, and t. (Top-downers should reverse the order.) The other % Sections can be looked at as the need arises. % ********************************************************************* % SECTION A: ALLOCATION % ********************************************************************* \let\!tacr=\\ % Save meaning of \\ (Needed if TABLE is used with LaTeX % ********************************************************************* % TABLE PARAMETERS: Units % ********************************************************************* \newdimen\LineThicknessUnit \newdimen\StrutUnit \newskip \InterColumnSpaceUnit \newdimen\ColumnWidthUnit \newdimen\KernUnit \let\!taLTU=\LineThicknessUnit % Used in preamble \let\!taCWU=\ColumnWidthUnit % Used in preamble \let\!taKU =\KernUnit % Used in preamble \newtoks\NormalTLTU \newtoks\NormalTSU \newtoks\NormalTICSU \newtoks\NormalTCWU \newtoks\NormalTKU % NOTE: The user should modify the following DEFAULTS to suit his/her % taste, and output device: %\def\PixelsPerInch{300} \NormalTLTU={1in \divide \LineThicknessUnit by 300 } \NormalTSU ={\normalbaselineskip \divide \StrutUnit by 11 } % 11 = 8+3 = NormalT Height+Depth Factors \NormalTICSU={.5em plus 1fil minus .25em} % .5em = width of a digit \NormalTCWU ={.5em} \NormalTKU ={.5em} \def\NormalTableUnits{% \LineThicknessUnit =\the\NormalTLTU \StrutUnit =\the\NormalTSU \InterColumnSpaceUnit=\the\NormalTICSU \ColumnWidthUnit =\the\NormalTCWU \KernUnit =\the\NormalTKU} \NormalTableUnits % The user should issue \NormalTableUnits when setting a table % in a different point size, since the Table...Units themselves % are static while the Normal...Units vary with the point size. % ********************************************************************* % TABLE PARAMETERS: Factors % ********************************************************************* \newcount\LineThicknessFactor \newcount\StrutHeightFactor \newcount\StrutDepthFactor \newcount\InterColumnSpaceFactor \newcount\ColumnWidthFactor \newcount\KernFactor \newcount\VspaceFactor % DEFAULTS: \LineThicknessFactor =2 \StrutHeightFactor =8 \StrutDepthFactor =3 \InterColumnSpaceFactor =3 \ColumnWidthFactor =10 \KernFactor =1 \VspaceFactor =2 % ********************************************************************* % DIAGNOSTIC PARAMETERS % ********************************************************************* \newcount\TracingKeys % >=1 reports new keys, >=2 reports key usage \newcount\TracingFormats % >=1 reports templates for columns % >=2 reports \halign preamble % ********************************************************************* % PARBLOCK PARAMETERS % ********************************************************************* \def\BeginTableParBox#1{% \vtop\bgroup \hsize=#1 \normalbaselines \let~=\!ttTie \let\-=\!ttDH \the\EveryTableParBox} \def\EndTableParBox{% \MakeStrut{0pt}{\StrutDepthFactor\StrutUnit} \egroup} % finishes the \vtop begun by \BeginTableParbox \newtoks\EveryTableParBox \EveryTableParBox={% \parindent=0pt \raggedright \rightskip=0pt plus 4em % Provide more stretch \relax} % ********************************************************************* % EVERY TABLE TOKENS % ********************************************************************* \newtoks\EveryTable \newtoks\!taTableSpread % ********************************************************************* % Extreme left- and right- tabskips % ********************************************************************* \newskip\LeftTabskip \newskip\RightTabskip % ********************************************************************* % INTERNAL VARIABLES % ********************************************************************* \newcount\!taCountA \newcount\!taColumnNumber \newcount\!taRecursionLevel % (Initially 0) \newdimen\!taDimenA % used by \Enlarge \newdimen\!taDimenB % used by \Enlarge \newdimen\!taDimenC % used by numeric.tex \newdimen\!taMinimumColumnWidth \newtoks\!taToksA \newtoks\!taPreamble \newtoks\!taDataColumnTemplate \newtoks\!taRuleColumnTemplate \newtoks\!taOldRuleColumnTemplate \newtoks\!taLeftGlue \newtoks\!taRightGlue \newskip\!taLastRegularTabskip \newif\if!taDigit \newif\if!taBeginFormat \newif\if!taOnceOnlyTabskip % ********************************************************************* % SECTION H: HACKS % ********************************************************************* % **************************************************************** % TABLE LOGO % **************************************************************** \def\TaBlE{% T\kern-.27em\lower.5ex\hbox{A}\kern-.18em B\kern-.1em \lower.5ex\hbox{L}\kern-.075em E} % **************************************************************** % ACTIVE CHARACTERS % **************************************************************** % ACTIVATE BAR AND QUOTE: Makes | and " active if they aren't % already active (in which case the user will probably have given % them special meanings); definitions are provided which effectively % undoes the activeness outside a Table. {\catcode`\|=13 \catcode`\"=13 \gdef\ActivateBarAndQuote{% \ifnum \catcode`\|=13 \else \catcode`\|=13 \def|{% \ifmmode \vert \else \char`\| \fi}% \fi \ifnum \catcode`\"=13 \else \catcode`\"=13 \def"{\char`\"}% \fi}} % **************************************************************** % Macros for | and " having category code 12. % **************************************************************** {\catcode `\|=12 \catcode `\"=12 \gdef\VBar{|} \gdef\DQuote{"}} % **************************************************************** % MISCELANEOUS HACKS % **************************************************************** % MESSAGE : Writes out to terminal and log file. \def\!thMessage#1{\immediate\write16{#1}\ignorespaces} % X: Abbreviation for expandafter \let\!thx=\expandafter % GOBBLE: Eats next token \def\!thGobble#1{} % SPACE TOKEN \def\\{\let\!thSpaceToken= }\\ % HEIGHT, DEPTH, AND WIDTH \def\!thHeight{height} \def\!thDepth{depth} \def\!thWidth{width} % TOKSEDEF =: Places , fully expanded a la \edef, in the specified . \def\!thToksEdef#1=#2{% \edef\!ttemp{#2}% #1\!thx{\!ttemp}% \ignorespaces} % **************************************************************** % ERROR MESSAGES % **************************************************************** % STORE ERROR MSG % Replacement text of is a macro with Message % as its name. E.g., after \StoreErrorMsg\Help{Type }, % \Help expands to "\Type " \def\!thStoreErrorMsg#1#2{% \toks0 =\!thx{\csname #2\endcsname}% \edef#1{\the\toks0 }} % READ ERROR MSG % Continuing the above example, \ReadErrorMsg\Help produces "Type " \def\!thReadErrorMsg#1{% \!thx\!thx\!thx\!thGobble\!thx\string #1} % ERROR \def\!thError#1#2{% \begingroup \newlinechar=`\^^J% \edef\!ttemp{#2}% \errhelp=\!thx{\!ttemp}% \!thMessage{% ^^J\!thReadErrorMsg\!thErrorMsgA ^^J\!thReadErrorMsg\!thErrorMsgB}% \errmessage{#1}% \endgroup} % TEXT FOR ERROR MESSAGE \!thStoreErrorMsg\!thErrorMsgA{% TABLE error; see manual for explanation.} \!thStoreErrorMsg\!thErrorMsgB{% Type \space H \space for immediate help.} % GET REPLACEMENT % must be a control sequence \def\!thGetReplacement#1#2{% \begingroup \!thMessage{#1} \endlinechar=-1 \global\read16 to#2% \endgroup} % **************************************************************** % LOOP MACRO % **************************************************************** % LOOP ... REPEAT macro from TUGboat Vol 8 #2: 1987 % Syntax is like that of plain TeX's \loop ... \repeat macro \def\!thLoop#1\repeat{% \def\!thIterate{% #1% \!thx \!thIterate \fi}% \!thIterate \let\!thIterate\relax} % *************************************************************** % VERTICALLY-CENTERED SMASH % *************************************************************** % SMASH: Like TeX's \smash, only the argument % is centered vertically before its height and depth are smashed to 0pt. \def\Smash{% \relax \ifmmode \expandafter\mathpalette \expandafter\!thDoMathVCS \else \expandafter\!thDoVCS \fi} % DO VCS \def\!thDoVCS#1{% \setbox\zerocount\hbox{#1}% \!thFinishVCS} % DO MATH VCS \def\!thDoMathVCS#1#2{% \setbox\zerocount\hbox{$\mathsurround\zeropoint#1{#2}$}% \!thFinishVCS} % FINISH VCS \def\!thFinishVCS{% \vbox to\zeropoint{\vss\box\zerocount\vss}} % *************************************************************** % RAISE AND LOWER % *************************************************************** % Like TeX's \raise and \lower, except: (1) The first argument % to these commands is a dimension expressed in TABLE's usual conventions; % the default is (StrutHeightFactor+StrutDepthFactor)*StrutUnit/2 % (2) like \smash, these commands function in math mode as well % as horizontal mode; (3) again like \smash, the result is declared % to have height and depth 0pt % Examples \Raise2{Stuff}: "Stuff" is raised 2*StrutUnit % \Raise {Stuff}: "Stuff" is raised a half-line % $\Lower(10pt){\alpha}$: "$\alpha$" is lowered 10 points % RAISE \def\Raise{% \def\!thSign{+}% \!tgGetValue\!thSetDimen} % LOWER \def\Lower{% \def\!thSign{-}% \!tgGetValue\!thSetDimen} % SET DIMEN \def\!thSetDimen{% \ifnum \!tgCode=1 \ifx \!tgValue\empty \!taDimenA \StrutHeightFactor\StrutUnit \advance \!taDimenA \StrutDepthFactor\StrutUnit \divide \!taDimenA 2 \else \!taDimenA \!tgValue\StrutUnit \fi \else \!taDimenA \!tgValue \fi \!taDimenA=\!thSign\!taDimenA\relax % % BRANCH ON MODE \ifmmode \expandafter\mathpalette \expandafter\!thDoMathRaise \else \expandafter\!thDoSimpleRaise \fi} % DO SIMPLE RAISE \def\!thDoSimpleRaise#1{% \setbox\zerocount\hbox{\raise \!taDimenA\hbox{#1}}% \!thFinishRaise} % From Plain TeX: \ht0=0pt \dp0=0pt \box0 % DO MATH RAISE \def\!thDoMathRaise#1#2{% \setbox\zerocount\hbox{\raise \!taDimenA\hbox{$\mathsurround\zeropoint#1{#2}$}}% \!thFinishRaise} % FINISH RAISE. This is the same as Plain's \finsm@sh; some macro % packages redefine \finsm@sh. \def\!thFinishRaise{% \ht\zerocount\zeropoint \dp\zerocount\zeropoint \box\zerocount} % *************************************************************** % BACK SPACE % *************************************************************** \def\BackSpace{% \!tgGetValue\!thKernBack} \def\!thKernBack{% \kern - \ifnum \!tgCode=1 \ifx \!tgValue\empty \the\KernFactor \else \!tgValue % user-specified integer \fi \KernUnit \else \!tgValue % user-specified dimension \fi \ignorespaces}% % *************************************************************** % Vspace % *************************************************************** \def\Vspace{% \noalign \bgroup \!tgGetValue\!thVspace} \def\!thVspace{% \vskip \ifnum \!tgCode=1 \ifx \!tgValue\empty \the\VspaceFactor \else \!tgValue % user-specified integer \fi \StrutUnit \else \!tgValue % user-specified skip \fi \egroup} % Ends the \noalign % ********************************************************************* % SECTION F: FORMAT % ********************************************************************* % As explained in Section 3.3 of the manual, TABLE alternates each % of the user's "data" columns with a "rule" column; moreover, TABLE % places a "dummy data" column at the left and right of a table. % A table with n nominal data columns therefore actually has a % total of % n (nominal data columns) % +(n+1) (rule columns) % + 2 (dummy data columns) % ____ % 2n+3 % columns. % FORMATs job is to create an \halign preamble for the alignment % of these (2n+3) columns. The preamble consists of templates % for the various columns, strung together with &'s and interlaced % with \tabskip glue specifications. % FORMAT constructs the template for a nomimal data column according % to the user-specified format keys. As the keys are read from left % to right, the template is built up "from the inside out" (as % illustrated in Section 3.1.9 of the manual), the inner-most part % being the "#" sign. A "|" in the format terminates template % building; the completed template is adjoined to preamble along % with the template for the following rule column. % Minimum column widths, if specified, are implemented by creating % an "artificial row" with data entries of the form % \hskip . % This row has zero height and depth and is completely invisible. % BEGIN FORMAT \def\BeginFormat{% %catcode`\|=12 % Inhibit expansion if | immediately follows a %catcode`\"=12 % read by \getvalue. \!taPreamble={}% \!taColumnNumber=0 \skip0 =\InterColumnSpaceUnit \multiply\skip0 \InterColumnSpaceFactor \divide\skip0 2 \!taRuleColumnTemplate=\!thx{% \!thx\tabskip\the\skip0 }% \!taLastRegularTabskip=\skip0 \!taOnceOnlyTabskipfalse \!taBeginFormattrue % Used to intercept key "]" \def\!tfRowOfWidths{}% Artificial Table Row with horizontal struts % to enforce specified minimum column widths \ReadFormatKeys} % SET (MINIMUM COLUMN) WIDTH: Invoked by the key "w". \def\!tfSetWidth{% \ifx \!tfRowOfWidths \empty % true if no prior "w" keys \ifnum \!taColumnNumber>0 % true if "w" key is to right of first "|" \begingroup % RowOfWidths={&\omit || n copies of % &\omit&\omit}, where n = number of columns \!taCountA=1 % to the left of this one \aftergroup \edef \aftergroup \!tfRowOfWidths \aftergroup {% \aftergroup &\aftergroup \omit \!thLoop \ifnum \!taCountA<\!taColumnNumber \advance\!taCountA 1 \aftergroup \!tfAOAO \repeat \aftergroup }% \endgroup \fi \fi \ifx [\!ttemp % \!tgGetValue sets \!ttemp = token after w \!thx\!tfSetWidthText \else \!thx\!tfSetWidthValue \fi} % AOAO = (Apersand Omit Ampersand Omit) \def\!tfAOAO{% &\omit&\omit} % SET WIDTH TEXT \def\!tfSetWidthText [#1]{% #1 = specified text \def\!tfWidthText{#1}% \ReadFormatKeys} % SET WIDTH VALUE \def\!tfSetWidthValue{% \!taMinimumColumnWidth = \ifnum \!tgCode=1 \ifx\!tgValue\empty % Use default multiplier if user didn't specify one \ColumnWidthFactor \else \!tgValue \fi \ColumnWidthUnit \else \!tgValue \fi \def\!tfWidthText{}% Override possible prior `w[sample entry]' \ReadFormatKeys} % SET TABSKIP: Invoked by the tabskip keys "t" and "o" \def\!tfSetTabskip{% \ifnum \!tgCode=1 \skip0 =\InterColumnSpaceUnit \multiply\skip0 \ifx \!tgValue\empty \InterColumnSpaceFactor % Default integer \else \!tgValue % User-specified integer \fi \else \skip0 =\!tgValue % User-specified \fi \divide\skip0 by 2 \ifnum\!taColumnNumber=0 \!thToksEdef\!taRuleColumnTemplate={% \the\!taRuleColumnTemplate \tabskip \the\skip0 } \else \!thToksEdef\!taDataColumnTemplate={% \the\!taDataColumnTemplate \tabskip \the\skip0 } \fi \if!taOnceOnlyTabskip % % Tabskip used at right of this col only \else \!taLastRegularTabskip=\skip0 % Remember this Tabskip, for possible \fi % restoration after a subsequent"OnceOnly" \ReadFormatKeys} % SET VRULE: Invoked by the key "|" \def\!tfSetVrule{% \!thToksEdef\!taRuleColumnTemplate={% \noexpand\hfil \noexpand\vrule \noexpand\!thWidth \ifnum \!tgCode=1 \ifx \!tgValue\empty \the\LineThicknessFactor % Default integer \else \!tgValue % User-specified integer \fi \!taLTU % \LineThicknessUnit \else \!tgValue % User-specified dimension \fi ####% \noexpand\hfil \the\!taRuleColumnTemplate} % has \tabskips, when column number=0 \!tfAdjoinPriorColumn} % SET ALTERNATE VRULE: Invoked by the key "\|", in the form % \|{

sTqۦPf0D! #1,>w(7;Sȕ$xCWn QA#!حhbosIG$O5uiHa1:?yuM/Qa u[~n4>3A ;-]H# 'bP0üLFF=b8X3HR }8fKtU?~Q%npA\4Q8kؙҊ{Ǟ2 Ae(E%R*OYJ2bPmr B@`Ur `ڙS7wԹwo~,Oo@^z 5t{CWS:R>XIYhGś@J6J*Y`l0g'`˰͢ly'^#:lHIxm㏏3ҕ>|W h֋} k2~,}qի)k彰il٬²>1VKky.mX 4pp`6e=&5T5ٱ+Jmŷ-O$1ﲓiv? _rH{:wYcQa'n!#Oyef 8 E4R 1@Zl5cnF?ZeV~$vQ >yzvoc ~k<[0 .ŕlF* Q%>G@cMe4߂N&BKT\vP址ng dQ PWJa{HJ=tk ƻQůSA&%3 Εq)~ѱI`zw 7;!ٗ+ D?gg:K>Yz.uyx0F"j\SBB?#9.?xU4yƽmfo >׫Gh[F[|ٍ)x*B\x9w^}qo\23{K?{(섷m1TD1/5|>=bJ>&ꂹFɿ}u#MQ qe@Z.)Gz3]B(D@;XPQk&mըYo`G$dȳTWMS`].?]9Oڨ=/YU4Q~, NN *#sS҅(1F%TIz|sLka6O[ ZCD&KzVT>A(=WTˇ/A*rkC.mC8X `S{]bP!\ߡ+^p/$WɝEh]u3iȉ֭V%<`!Tm}gRVe;l1$X_gu:)K .om&ch ,2n<>f%ڮPpR~ ) 1tꄮY]DyA(CumdF~f_i0o>kypZ |]sW 4*ᗁV٤à-UlJ{Vrڽo y`U5jemBbrWll_pX'*l0M+w*'_6KΦ[ ;3Ͽ#ƛ10֩XڅQt2xwiPy 1}VHup]ϟ/Y3kW?/Ϟbx&;NHx9sOO#p*U:q$CR~?(|h㮙w/4v~jt! ߑйgzi ~B aYwuttQ Gv3Qᬠu$JnPx:S3l?Z Q9kX C !i$ 8Ǹa4.v.6NqXm1usP  XxrI YBC7Q7-ۗdͦ)3EM bcs4SiU!3KX}=5uˀau(T uFOi5[m^PG|F7p5.ind:gi030bIJ@{دƄ9FiF^]Yh -5TDm)_n\ȉ--W4S c70Cı?/æ Lew rLJZ3#/O?$tg%a_p "]Yٓ sE2Yep+ =Zg؁zZ] C)=85h?|zN r?/{s!(=f$SddG4^8%fFÈqL6)!*s^=E8l%3ais#\ox;8=]:L6p`N,jmsb=aALژ.hk4z͂(WWN|0dcƷ*^lä2DW 20. Q$A*_w&N5oTL76Дw w$NyWYιƽ/gJH |CPI{ΕwwY)^օjW6 OBcRƓgE5&fH?' j#R0B"H^;WSqjXa<7Msb4AtT⩥ צnx̻+ 95o5u-) ]!̛Ͱ+2q4aMAl ;N|tN_uǛR?}_4Rtqp;W9ws n~ Q{O^w퐀Hwn!(9E_RGqrcU=F 0>q|R@Vɇaſ;S; 4tAG.m)p*Ha7 wj%aU1`z|#yUPY/H{Q@(Ig{+;&i8q ^0,qҚ+QG\ccҶKߎ?Z<#ināqک9K+k3ZB˖4_2ןvэMCP+U)DFrXt X4EHUP9ΏM'f[iyyVlR[qĹceȯ[90nuDq|K7GMgrVO,o㣶v0YV$0Z:VMYH^m47^qƟ\\;WB9IXe>߫=ʯ)doiu;w)Kbz>֥"(4AZ?:U_@.),$4@dܫvams|.mUڒPcbHH:z?9[@: *Ob`ԥ@Cē+HןxSTE1E@zG}}&I媠W&Vķ _C{Y;Wp]G0#-st{yP 0FW:V S$0apkSBN1P XJ1}`Y>}׮SWOtͥ=ԨޑhJ=/U,ؐEi<}%7ﮒ giJ2;Ve,OyVl>ecn(%ɘE华Q-.;\ߐٸH(_IDH~'  -9UO+npL2~5wȜGql]EH4#i6ѧG>F٧jGܔtg%{/t̬V\<|^ /Sc,q3 6` h/<oL[N.8!b'WT lfjCP*K:Օ4D|V >rڸwٳIoMW)qC.L!`lrù9 (8:FwVc8X't~o#&NjtjR5j,vݒ)p_NtkZEw8@o $D;zO`,`>{Y1O-lʬ< Ě*ںZGswINɥb;yיb?**S!቗xk.'Yu>'Α(xtZFvԥ̽_ 2y1m,b)껓Ss8<꙳嶞J1)l*_c1b.啋2ǦvU,:O#_;*c9ν:!_ Kdr&p_rmh#byyn! غ ǐC‰$ZN(G_ֿ7Nt d@-Y?+XbϿ~Mr;mU)p7~H@tX0DEu0"?V<JfKzb*04Efi.H-Xch;¯MW ~.džrGVuavԶȓhT6E,Vhm|ߢe"~Tq|ㅔ/eO̭͉]]@(Q0a#Bk9 c3K3=Z3PϮwm嬱) 635zosi akbIجIC!FPmcvc =[_;9i}E}%I4FNտ,|ǬwIhxsV=pzOT|z!< }Gl+[!T}dxy`AО Sd'-~/,*&,,B|`6٠$OcNXmRZ|]~رc?#O lx5"P\ Xf1TX s0 ka$[\Iȸax>} a!a^U6폨¡u_Gs|.ytH&6~?+ ;2%3]Jpuv耄ikQEr@>Uzf[[[F0l"{`}r@"deF4t+DIyp,š=uu:C"(O+'+}+շip|RYCl&s׭Ys}Ӽeǭb&.~28ػa +~ZO*   au9AÖ 9KK.hˈ@{QEې]h!Jǯg(<9l5Pu(kl1g#k**daC2F mk endstream endobj 96 0 obj << /Length1 2274 /Length2 5092 /Length3 0 /Length 6393 /Filter /FlateDecode >> stream x^V<ԏ߯leFh=ٔ=Jss^WeBYYE$"[E(xW}ޟ10WFl8,QPttuD5"K@ q#$ DBG‰$HND*P(hnp'#i(JPi$\"Fl~H/$Bg] '7Sҹ xjH3F ~zDh \4h$:ÊHM( YOYUG i԰ٙ55U4=D sz h,)6Ţ]ݐO3 I$+s0tAd1,& cH_=FM@DwoY#𮉵ɟrR(c Џ&--x==XG$k%ׅwF x&R5G CHh?s$I˦Ea>WC{Mm8DJ_J9a I rB_!@cQ)x'iHҀ7Ǐ) ,H2\܈=-p,OH"iOEPd0wd['n)-<-ワш_ﮈ.R92CғRA3p{x-)Rd.pq+_IrI/;QHx;8HI"6@!2㹌@\0p_Tm%"I 7H$HcHZ2L ײh bL㜐hws#%g(BZ~Nµ{PW]?V( Q\6n=*Gs=co5IamR}U6Yދ+5C$LŞ] W8WiH|w3^?µcY˓Cc@Vo+[Y^+d'섳BQe\llwgi%[C0=~4S[qIy~٭> )]mW}?'.;nx4Ec4=}B'B'QOx36KVn6f~2<<ڗu{euʅR@)uqv)9l@q~J]f$KXR.}Zn?LK7.JC#O}ͱ\M3g~# /k;YR:P5'^)B%o.r nM!&](qQ)Ky~&7xRtkeyA1 &] %m qVh|nT"˄wvf>$ͨRLJ_ı,\_ yv*Z[[-uZ}~ `ʢĽ/1[Ts@YmI7!ET4-=>PbC{}~(TmߧcrazO`> {~?7h#`[zsӵf\Cu9tZυ:]臘g[RTwi-"l?DQOW@"r}̼ ӚPsj,dv,)J [bw=W ~{UwW-KEHWA z<7tߤܹ}3 RonDX\[5g,mpluV;OQt t2VzA>| ':(c>$/E5X&Ƃbw.֦;KB%y,i͎k Iw(',8IE:˳6_җL˫L&$)L9 p/ze tr}qjX|,ݐOuWN<;/ƙI  _h0 Mt V =]Dۮ:+]̽:5^0Y:zI~JL%CcK}Wjܑ/[G/=;[w.`\Ë}ĩ9+ڳ{Jgyģr8'FL%pq>n f0=7boBʙ7=fדNE!`"_{gr+}^Qd}|,rΑ|ZhL 3xqn1,jh_JOl=Iy Kjnotd5/CZwԸS"ẉhwʡ zuHT*!a҂l}DzqML1Mcu(7 uS,'A"XCژZzUm>} 2z&4\/kх'[BrhG]܋Zl8G`HIU[!$XfdupLR;=abވ XqY?& |ZjW?;IZx'.pp:vTOui']6gI%f݄iTȮ9k]mq3Mkˣ ͨ<8D:<4AR+ kҎ7ˡ糷Om;{l)|0$(NM=K7f?nXNߨs\C\~547fIQ+)܄ߙ~7p>彜bX_֘iPT8ı9E]zr(M6fLZ.]3#2ZŽ% 74>/W)]BJz;XgΎ(lHy;J'{Iw.kH$];kgZX>ZTje@爏.!+TΑfᯨofxH 28m6ebNbW] ]|=z4XqEM- WJt!  +;F`uK/DEޞe(C@>7 XX"luY8x;b?iu=y,yqZIVBD)*æ j} .ۉ 0>&Jڻx1_+GMd.Vr7qVxuF;L,tlV]㦺L9%Ua 43m_`.;T]5F`o}O~켦7!0Cs@MBYіJ,0S)Q͠JkwvĎg5R>Y$sVp0GVv}rT'9 KE۽pwW>2_2{_]tD a#JIiӋ×;-ҷg\5pϗ\ehS}aX2[wfGGSMNcލ=%WO:Y igힻ0kw?AxVJhnZOa!@dR> \*y{q>֓MkX[݀!5YoP8/-m{و(=m*:xMƒȾ{g ;YiYҥ{g>'wO{9 B2'=CKY5t >:zF<^R𮒱>")Ho >l W!TxY/+z L~2t_cp9p_t3ֽ8Uξ-i|'˻y*Lξfs#wϏe4ܠNz-"̪N ;#}}VSsstai6@r+іk7UoX|r 0TW{\vV28֠^[47_x xCS;N,Q,Q@f@iQ]˧L=y:NGuƍx ^/w]t >bL{AW1maO`%op],5N#[tº. #bÐc;* J;3A@O;lEo?82zx?({e"o_ډ<{*7+{|o:[3?M׸ڸHKu/j]uYNl:;־Vh6/W 8)yʋ:Fritidu?n<␩-Ssz4^cJ1ZI|%XzA -w˷L-?uD/昑VИPp??ޓD|8c84~l@mٝi,e*ۼ]_WZ9t؈4rNn$< #Mi5|x؄|N- ^{t'O{9U#-]5+M_Bh; Ni5lLWOnDW ߼7ɾU7UHѴB.JR[wVcOx)3߼a*L|0 ; *S1YNM=n+x: esJhM,҂醜 N2"x ʿz7K72yt;]&id.*̶WC)|9&Ƣ<@ݚh&!+vD{7 .]">ؔXE;/X?S2n+nPi~eRAWFXȈ*K_8Meg, d2ʆ 4IIa(} W՞q1Y/^b7V QRi W"B=!^v^*BקiQ,M}9o, տ.o[?&O Q>D92r<:6!D39xDpeя#@z:0G-M|ΗYl=1+ 0 > fY. 8-(oiZR^ŗ{2u1[{V^BQ10.:ZTv߳&sp!2f{ endstream endobj 98 0 obj << /Length1 1955 /Length2 5959 /Length3 0 /Length 7191 /Filter /FlateDecode >> stream x^xT}߿t(҂ pHHwwȄ FlN -t (4* ҥ"<}9gڵϷߺ3.vcA%Gttu!gM ",hur!a r..e#* TE8Z K$t'SDX JsH?s.&&(x. n \>hW89&+!}pD8N@!n0 L1noj`+1@0Ps{&*5MMοM;Pg{ 8р (ƙB8BQp@EJjLw$S17eƅ5<@TS#9A10Πs&~P,rNƵ\PA 8 !P'\Dp;`pG!t\( y~M,/n\7? #!1? wKMOi;9|!Qh5/qpߧ̔NnP@P,$,&!cz>n7@k/nA8"h4łz^_NUHG8  (ď\"@z ! `-p^f qtN$Э0R II ?HYqV$A8;!09&Я~ ",Dd_Q\FAqs(z8Hb@!T1"t(7 *ff󶄲A߷1VC+;It?]13]OS(~s'l<o?l>祿\ qڼ" \Q#͹?R}˂<׳ajlh#.JgB5jkheuY\ظL[sݢՎỳk,qڳ8"Eyh휡|ң?5əXB5CHQ}CQHH%m$[)jjuY()rySjuSF=ES*&4O K'"Hͬb̪w{Su/j\/Ij#&x+F*8nPk:>Vuq/gmâ[c&"{&mv>Ӌi{aLeڙE^D !s96}ӣ-qUvV m M$9 y}./ ]ٯCiu{[dkjwD՗|u!mv >(8BwbŦBXKx4͙Ry#Ӄo;{|ֈvZڹ;RqsO*dϠHOt'bVK̲>[ḭ#{:d5,R7|'a@@"*ZOh/)vS^\}#7nYO=Rܝ_`TӨqו] 2n5 S/_zR_9 ߎbLd|@rIe K O-gTsJOZ&xM Ӎ>y]9K ~\.֪KyKQ"m]֩y摠YǪˆ#d.Z/~z?n}1#HE[{^6}PUwDn fjpҔ.KV ʤq=gT>~ւXn[hgD8IC15Y,fA ?s~~ H=SrP ŧX紺h9=7i26ڻE _#OQm핅wٺ" c Jjkdw8CUI֤'9RMogi#FfUo'f~cL(CըZk'8c"9 J Ki,& S X\7{lh͙pV$Tq)b `0fKBNVF1a y4=wN_ہrEZ#Yg8%!ľL1dN,;(~f\CͥtI>GndrgƙSK+wHZ*y87B8ZG)T4?mW)s;Ҟ~w"\[wO7hy:j{([ٽ\5W"vbJP>;<3r'G-[-w2Ny_߱n9gRv'nM>{O߲=63yi;^aukh?-, j4Cm*q\_bqTa LFiwCJCw5}E*FŽfgީX6R 99L3V*1(,, 3E[go1_-Ձ۲CGR)svxNU;=m^DeR`:* kq| =_]#frw#/-+m,NM>mwSWjrn@/"]gԝɿ^|R_`Pȗxr ˏ^ߧH`S)i!W[S/}e5VTC2sw+ml'P(\WL2iޢC[8zudkE^FVc:уcy96YVd4IMg4ll)i%@,7[GMfyr8cS#𵰢^ʒ-gW]WC%(>ng >i=ǿiIy \Ê%"GNpE4 ^bqhzT:&d'GǓb+g[,mǎz/VAvwA>o WS۾/hQt(K=o@|+jgSZl$6,WO]Wמ\yom~ qS|ƞQuRt=z}oc{ ,^*}5\*?-rG)TRb{1~tUF3 k"4F48rc-g>ĝ<t_,?H FP3'IշA2\,pϪ(B:\O~&q#pHr۷{07YvPA{ء) YuI1Eޮ!']ƥ73(2>i$Q[L!|Toodrrt8lxta2E[mdL '2EQ?f3h2[/[=$Ry}a?-,ITa֕gu<KY ;hGbze s9]*gZB脲:8iCzXrY45F|=ITPc~(/(0ɑil HGn'G7B%'q9l#cJ5t=l KV|#L$LZ 8J]2 dZvdfo>0/z7$h@ʻ_ M=l:'0(u{a׻5CVT,uyCb^9HoИFc ])d-Q7e# oi|MF;rÃ"_s[xe VO؟Q 1*S~N+\8>i}c|kɋP^7vJ6$,XBMJ`̗K]<|L[J^>?QnC] %=I"M;'JdTYQ֎) #P|N#Q}#ʥ2; R%mUi,($;CS.um.3DZ|(_N §v->D+K]_9c6 VG65R}OuڋrTJW}}ZT&>nOt!k|4vOzaڪJ}Ǎ gPAKDqPoV,b=RD6(?3E3{={4KFq//K'嗅Xhh}SwD8m³Tt؍{(P+a"Wގ4wik7Y֩/cϧi-?RfwTH4izU6|5vІtvg|/Mb[D9ң2v6?TdN4}}OfV/SpB>3syLJŀ@+_-O: a}T /n[{3"m2g\4 t :Gl_0pVCIU273% &Io/1xٺDWnצMZDbaIH jƢCff;P3%"sJ/3ncZik;57v{+ endstream endobj 100 0 obj << /Length1 1786 /Length2 4036 /Length3 0 /Length 5166 /Filter /FlateDecode >> stream x^U 8K*!Yf/Yf![0f`d+e)ʾ%dW=Ȓ, !o[>ٿs>猤9R^Ct TyFTVQdAU@p2E ((01" PԇraP%@QIp"ɟss2΀? ǣ=~Obd3]I w%BY Vȓ` ҇D"X #iie  t,``d\d79̒ngT;2-qHd,S0X2@u&&84@2?^D DS_,BGN*#'?;@bT*IP`" LC\)?\)F1yf&Fp=3JD >nS/ݹ(O6177P8K@QQT ༫b1R?qp2њ&_.ގ> IyA=_F J Xh$q]:DP0t& STD#`D//) 8xD??ۓ@#FWØ!A8oBWֹazX(lO 5.(D$(<s?@/}A4*` Gf7"=ӟJIb? fD*U__}x3V?ogfei3" GѰs=c:7<)* ?-V nN'nF?hOBvð+i0@l:&f6g5h"GpUAPPV`tc]0H$jJ?ы0T?%ur/Ins[IJJt4N!wSoQ @haWusY9'SFRDO Cu CP(/$ޯ%a2<* PUyv>12hX, "5AȁoF -"&U";Y&rךHYk'ƒ=&8x_`=˧ c==~D6Mȳ)7Q+jRlc7>4z} ¬4MΎӒXrǰ43h $EVrdsJaAoWNB(Y.( jUӀ̖SxuVї$s{Wlq giSg~d>nh9{dZ pL(ߝlA쌒2f xƁVj;+[&k&>rlRPraY 㤮wX{ĵT+JfoGl甀΃ Aűg|;B/Ƴ n8__'nsN*M@8M93v'D,x*O}dGzU};}VrqiyLo:~dӹӂ˫Py2Cv޺v{3pNY *6/ /Ϯ73 2Ruɺ;nJmWY ,/2ŭ(ɟINb*j\Gڸ !_@|PAq;R,~r1^6E.r:H\NmXY܋*<(RL,~/ [2gֱEỾlV. cM(f)*Բ9/~fCbGosD9ٯ;Ѓym;n-{!O 9?B,EO>M7ĵIw}5]sNjk':dG^ #teIؙ!v2g|j`o-zk|GM7ӭz?Pkapek9ėy~$w;{k) 3Spxx|eL)q!)<- 62bdm[((ڥ9^d >v'R ]4'l1!iz^StX ff,h{ n'^WwՠUYȤˡ)Z5hr[B @f0O4ud%e^q|8t%C/=]\0&jW{<]s;TmeZjtՠT p%ojpNUIY,qIsJ?zꝾ㣂2$ﹹVfbm:5Y{6^#bk*l5Yr|zJHn|i<Ǥ˱jGVC+L!JN] hG7çR%ԕCG3+JШR8+h)A]}h(T93Hyb|v :ܻ@ ,*ض-^O(Y">ң09b>K:z} ~JwQ4-#[f  \v=S%'юq,=,vr9~*QW[C~ a+ ZT:NֳkX n`[ۄZxךIA@-SvUJ}(8z=͏V²-&z7.U4{L.{=5{gI-~]4/uZm$_ma.-c@G6ʓj.ŋȖT#2WytW֠|sB'.mwKP뗙燻Dlggy.ڔE^OSC3I6ȗy0]!#^YoQ5E%WG{2&'bo,f =0^ts9oսlrXRvCy_sfzz$ꂝsw>) D`v8$ZMr9- Lpvr "c簞_a|Wا'$s1]-0|,Gɮh9( fSu_(ө}*̻7=`U+ods^/ż;k! mQo%o%y2ڎ;溷[iq-hl (O'II7͉ IKRK͔b1Cʳ;":(93M5UJRlFINCW}a$e]noG MIN`Kw!͏v{zќ\1fc=hcS8E.xEҦ8ᇻx ͫ{>U1XY_dspH2dْۅ˖h+_\^$B;^?x%#jlL)d(~b'iY5ΡԢvl/{ɽӶc1Z]:Ppa]*tx"01iHAJNg+gr&p>bO>|c;Zps˱~Xa\yA j{hk-0u R{ntB{eV&e=d ʑG?.slv[uvj0dÙ_qwv-twI=7Bq _uZ7161,v 8)"z횋MN`E@suy9ןkLZJm@gb}{FlDdzuI}`X}~ݤ~~(g 'G5ȪAjCsԧ%%HbU 40ۋ\ Mg}9 {S$!gqe}cئnkɊJ Go*U\,>LH=پRۛ/y@U{sWH:Z|򫘾Y~ojn9&CP+]]LeQpS MF]vz׆|R"r|0uS *9=Gʐ/b7M5XwIm"&]SsPK&9Z9C█V@io[ :ojFܥvR!.>ql9q{o Ƒg6xVNi|`vy{g'|TnQgƅ9u/_J'v EمM+mpsy&vqd< r͟ՑYMm2tSߧs-n,kƳa[fr;YΌ%@7t6z;1]kY.gV*3SE k"6Z 8b2ˈXermlAQG~Tuﳤ; Y2(#щݔ/E%`!@"K"sl ^>˾uZ`GsdyCx'Vc 6%mD7Ӕg9v@_G: y2[FݕqS(ϐl'Uc P]pݹAZrtl= endstream endobj 102 0 obj << /Length1 2611 /Length2 30828 /Length3 0 /Length 32343 /Filter /FlateDecode >> stream x^{eT˶-'иKwwI Bpuds7k֪  1H΅W523(]m@F 3"N`a3ٹ9yX) ;Xk 0ȃ\T=@@_@مٙ[ځh.N.c20[`;<#@,PAF6f{3*H"TVTSRaVqupwZDUT$b :=@RMEOU1ɜ 6./*$dp99_Q+) jdoW; 9_ZX:희W' /b\LAN ~/ @d $aL% ,wwa`"\~Ǵ G #|唔Fv. ;#;3/dJw R94*]ܙx8mbolwDzkfiL^XAZB\EAq;{SK;s ;< ,o xMA ppu;!^Pvo߈$qD . `7d0IA&?Aǔ1 pL#.pL?Sb0A j?O߈ pv?߈3/߿a4o?@fp62L?u5R8wt5 ~ 3?!MY ۻ:#\şXx:Xtddo_?YYglhnOnݟҁ@p`_#io28_ҿS.diPpR{?`!L;l-s.ΖJlcl OV\,@X-XJz)g 6z#&ъb3>sg_ޭ?ij"kX4O$8dy>aAI~0c(U!cFyOQgY 59KUÊj\mz(*ڒZxtQޭ[}X0ZHw!/$ϔ?B9W}&VeDX.)gB&Bv2~Hv5 FVn*JUP@-f))!6͵5{5^b% bjܢxdgvl˫\v'7u08s>NU=ы?[BڄI%0aZܳ?CρbXQ| pLmŞtoj"_^8 c]CWHIoFy!Srh ;rIS;u_'@3D7(jXrȭ晁B2̓J.WLPzg$nұra 9ySTV}v-GVa &Uq ̹B ~V;N7u΄3u+5Jr3lߎ+B:7?=¦l6WL&L2U6/Ry|/Y/%ˀ-򹠰ͣ3fKąK$d{z0(o)vRuWh JF e!PyсFeԅeoUǛ}֮/QrvOL!)_eiѽLH~@3h:\OyUUf VG\Oυ8KCs$}^yLx$s" , k}% !{#Ӟ4"Ƭ8ЯPxJNۄ~,X^a Za8+`fm#@l7[[E6%`(-a+&WRz&jm[p'o+3y9 2F: _]49.TNϭz+t± SV\=r=#Gsg'=9ZLɹDy- ++qޕSKUո-^t %zCK1Ϛ7G?SJK亟@aHpd i˝DOĐFg42}1W0핖!-}]j1~Mٱ{ƐߛeSOJڵۜғJ`d$E ڢ?m<ӵ7soSב9^gwYʖV" 'G^Y]GFq_x9C+/$^: 6eslXqU-c 5/RwԊH?R忒 ΄Dx#˗qe+xblE$$P-ZeCT a]+d隊Ssw6;(66Gh>x?7|"ٞ1u+O @k:8б0?jJĚSc]o+cnsh 9zXF~631wﱞHKRdlw,6Xz,d`6~0u{3cݴBCAe?- J1{+"L<.\}!(z ~ bׯRRR6̘I= G"۞S[#٦mz^yUSgU93fc9Η$@ק{U , ԰\eZp`sfK=="%2Mfa!:ʃ-Oh|Xf mCzHñ1D $O4{Ӈ).S{^U A娎(k.|<:p"Lj؇anQ2E')f( Uܩ[Mgp\d5{@BQN2I! D|Ӕ2߹cŘJ;,ي]t]T665dGg)4K~)% !|W4ۈGZL@;~߾l?9}cr4m ه[3=Nх>4 p'RPa*Z^˫@ uK)ږ9VL[wI}KGei!͂7c&#S1aN5\P㌯ܵa%OTe4Xij]n PpI}~,O8z+cEжVjYGk bc-N.|&WpeIÂlPWpjh8E؅\7 OASOq<-aMFjK6 ^myQC^|lMw^=Xhڅ5VE)1AwWH R7 w w w$($~o}YBBДoBfp=2} ,}K#XAZ>4^2A"ɦX˓1ʤ-0"OAM{P-4| C.MJKjݱ\CU.Z12QƼu/aJ3m38UZs3L :Xxƣ>FPkTH@e(&{=T=\4NCC]m=By|xG?wsh]U4}s ׎g,H{ Xl1n ͈@%ZvtWe@+lOa%-%?ew{GYт؅^x^b#eM3Qy],= 䱎}8%,IH_vIZ~C8'ŠHIe/i,oFvQ2QL[OXDM;&*1^ONCJ?hLDVF0gsPfceC&Nq1{dNp@jZe_54>hOmgB@z%j-\dJ'",a]|΁-:>N˨pAY0772fy0OR_|ج>['" ':rHb(UhORfiDU]CuW Q@bU.ގ>V_5hLNU<+YqӮ'IBNj(~-ube0._ ʕ3He jB9$b𳣐JJ_Q\*Zr46j@J Y܃fu+d|x>M񕸸g"WLI&s5c"̽~J⬎|,& ѷ⮆e)f~ms^}rq0Q npldGnT:(aPzGI6R6.e*@NjCu(OQH04g&zk @,BU)f,&3>kk#o`"!N )>FDgA/نdolW }ul?!'UKuj/)KKTa7y@uB{A~" Ӷbg2:J74enM*eGƌpC*Ee8=FJi4ջG";i'bK}9'U=g^d)c΅G(aT>l2{ B,էfDEzf{ڮ!Dqnu!Gq]Ba.gq|ZY˓7`(B84:88sAK/dOb+l rSJ6"q(~O30`WL̹d-"pIDw6ץvF#8d۾"A}L>2YYc2xƧL@yU9QDr){JAX4tf< ӂH7DֈLHPc<iX[:ԑ:#ڵkNQ`OD/1B8@{5n'CB\.n뺪 '(w%Vq\3'pV9VI79*r5[ęфӛ9&V՟-?K FerKY^g-u uOʿoR}Ϸ=aa$`wDJ4@H7P|O:"RL]yu_F^O`Ch[h꽞@0*&O]\^Q~(}7\ǬzQ H<)ۙl^E#ʡJڮsyEYA%\\Ͽ37xO"W(_kyoI#. DI .D`}f@"+՞Ɉԓ`ţ9<?}hsEFfjm#.D}d:m8Hwi\5lPEݜB(R#H3jH&i)Q! dYI+A_}PݽØ?3)|e[uo0F= )1WnKp##tż *(WVtFyAӓ_'J"mU]|wI;q%w>&Ժ TnYi+VH |W>^U4d]"伜g\d)$Cx* 9t< !{NW߼wpP7Wۚ[bu" bw% aۑA!;SWQ WlO/6ۄz+NO>]r}V$ eMݴ~Ex R! `jBJ-U+Wh+r>P] u$jX][h=R_Xzyh25srbcژ,UxCb$7^ߵ ҥ#1}q>\ry>vmV4u+!&7pek6@HJ,@pjsᛩTX+ٜ\:R }H(BeJuq+&} 1D#^9㐪rϫV_ݽUzfJI>E _"{g5&$#m՗޻%\QzsO俯#6-РNqDŽ˖I8<HQ?+,ٿ{wUCRf1m-|py{;tQDY9_%'RNd=?z-J2CM! T7ZL,Nn& xS#}[76/mNH 7BfqbVcgQpmS@W7.%t\\',(Qb[F[`y܁kۆE6|G3{VܼuJ# :MQbX jbKM{MF޵vujSȥߤ',R @'ԓ>kBw5Fػ::|6}[X9@-)si.Y8[Mg1?_-X~PJ.J{,0gxXK>*.6 μ"fCpT2óc3T4$JSZaDoyPeF;I7mAh~_v<}f>{t!}A+lKbFeK!>n.euu]K-hoeZBfb_Yk`/*)y[Oe}"C“#,e ̇3G뚦nE98BIo`Gy)G `fz 5bqXVY}Z bȑax&}xnߋX ;{|6+^cg[`-yd X`<|>%&V/؃ us#=UV<%{EqүGCX6/} XN*w47UduӾQgGO6Tdە~zw]օk6aY⎃.͡ПL8'{An&%Լ\k[<r&_(_c).A5, յw7 Ti! Ӭs]鈹{ .C8#W 2 2-*~[c-@}'YH8́fW#DX~ۓ7&Ư$?󪘳MFHl2".kNS>Dj78y)$unsVM|ieU,+ c\"| `29,>Iҿdhh bb1B3& (ziIPүadNATVZnky=uvqhqR-|E\0'^FdwCtGŻŨn4nSHxzQfoLorrɅPU@۽A}&>h5y|g+˜a9ߢ%#;7?V:Ww@UK^\> m&|چ{ʀR7j2l! B:T.JT;wN^8Rzъ_pX%:Hqu; L%r^{{O*;n+2Z4kH˰0$_(+weRtj]/O"vD&6XztV1?.9 } {/V4t?LD-gc#WwX9\# aJ ]$d3rimq{2_cިar?úYea scXd1Q61`7!yX ka$6-7KaNL#(o||ɕDvױbP^mFx~ -Iѷ Ǭ6q_Fܴ#H?_2@7d~'jbrȱeQ"u8,}u$GT3fVJ ]SmE^qfymbةn ֗[ _BWKvf{fsoDB2m-oYIW*\**[U,y7: ,- '@sH¤3~enЮ1 ڀ}sȥ\ `tiͳV|)BH~SݐYvjP7-3o{m#2E(jKr:$s GwajzL|W,OqEv"$ϑ73]Q9om(vs aqkpȐ!XMKV}qąث"Y%yRc3H s sq0 \)W R"_5p{K{3}D9s7<4'w;v=>./) H5.1@qz )4Г-)7/f&ϾsN_Zt^+WV" K8%3XL9˜M08B =[@B/UgL?\jBxr_B?_m)w I{~( (gz#-:4tx6о⯛"MlJx fH 74+Ns+iȢn_ vMMvRf˾y@).Ev5E#E@kYO^y"(|!qڹñsӒz++ݔPo%C dg;%+RȌnulrkLz<*x֠~ڨ:AabD ˠ[C"e'1~za8`ZgQ^ TN{D OܐRWެJ! ,B8͸˰M Pg.Gr0p4/۱Z`eEZ(tr.wUqae۫82E4T'B$M^=q|J:]rssBkh$cD`HLSGcҙQ611*曽$?QVPhi$K@:n e朗:pFA8|g,zDVP_P]J^#ڹ3&Qȟ^FM4)͐0VaSVtBIcl2>U]J4 ?Yndlp6ze=Q}j{tX~B*Y03kXwRMi&&$Ȇ{&)6VLxUzKI2C>4nw0;:Y"m Y+l3ItA!'-qS +=_tǜ#@NfS4 jg >~PCY.n9گq&ep{Ôaf/lk 0W y:O a.K#]~U|1K5u\j<l>4}u^JI)pbiXUA0|%>-ۑ' _ZH2 .,3C<֨ڴj6yZdpBP6`+XIhV@zd-210 e%`rM['IQ!׎kJZV&"4ޗ[øp#ByM7g `{ b EFy͑Gy2?0h9T ,eudja%$kj;WF捡xm9VͦUT▃iڛcX~1[k".sg>W--%! ,{38F:wh#*oL"AW:PX{OAd/dT1 Υ;!dvV¹y~EE|N>Y3߹ y`rzWJт(Detws<ǻm5d%손g4'j[]ޓna '<2sJ&m?۵Z&e"Q5%j.[GWxqzQyϊB4Pz, B|բD4 ,3HUU,mNn?;TY yB-Ęh Tndݎ?tkL:4o2S_axwJMzj%2)QJ~0&7mgoKd TO&\*q c(z{]JlDX/ us6k|a=H@wiFHg[] QA)X7dڼ<~ ɑ׷~R2ayRqyu0DCmy@ϳ͗!,u |bn\ Zȅ?ߊ 6ȸNUXSsaLhUMlqJV\=J] 1oHBR32P,~ ޾ե%G܃KVM&!_gawܧ}FwN<zg #NΌP$֫M϶+F͖.;Z~IpLeuMSp554ZY8rkTuϫXf%KO)Z^0ct,oXԓWԅObluT^\eV)/!3Dmm5j#U^aKrO9rN18լ-'izDޞ|l!"x}QQ{Mo{ fVW#{Eop+r*AFmQh͚{'%7%1H̓c625D~>I ^l _tVغT}R5re#@|MbC)w{Y%Jcc[Q:l9&b%J '#* pPhV)4Vd&T'8"cYFErA{X2 -i_Be",5Z,l w?Fek]_]bjȏޫ$%kTbg0j&YHRX~:W\nT2cD<(h I$N^2*ؠܒ{/Oz 8Ց[BޣC-MUЮnb=ƹa(ìO /8B{/z #B b%N9"Vo;A(@Qp+w(u2֛fwrkt6l矵T>䑴O 2݈;x.ފH~OxYH>lq/iƀ?BcW 2R!4 s3G4Abެ}eC UWp_ J?lSk"*yQ媮JEMf@p{CyۗXOTt7.} Oq?Sd] }f#P:zThfy>G,·?hR֒!ehm2%~@-Wls Ӡw}Vb^tYPPR:|8 l TO1- mKSgZ74'>Y%p&{kk+-L%Q[U ;H7Fiw+A'(nRؓK^C"k p$ t؄ƸVUkabU^5& bI뺲/aJ5t^daԗ{lbYK&wrpK ?~kKfϓ vsP!85ПǴ5kv5G -_BP b;"zjbg[򻕏z%Z‰R_Rh,Eq;h*V%yCx?*~.{bXdNh|zඪ+mӒ(JE۶mm۶m۶m۶m۶=ei""w*$qSy +}>UXmPOS+ke*gBa٠=ߞQ-kY9"|>dB676Mc^RN,Tf[ n.tIAJFEW4L;tU |_}aG&G_BNIr8}p6R1]HD;9&28Ȧ!ϓR+4:874F5'rHS6-lIsQ6>{Wwƕ]eAk}A̜`{ Ay(.yHqJ,f7u:UbH}y߭隫-|' &> m1C_Yzl<)}E.1$a *gs0uO pc"YI;(7ǢtXB2 ]3::=LDؙim}IQ I m@BW۝PWgrKT]i'/p^"&^pu QRJ(Pόx(9i8mUؚcS)|}H6 ?}1!8yK_?!("];"MV<0IURST4Qܕo}"ڋu*78jjK$:]!ұSJ-d֞4Tp:(^$,L=Η1' 0ğ]?،o ǴvQd*D¯<IWO : ?+ݿ+Wj%l%RkB$>UJ1\8 }i`R@xd;-wлk%20}ZVn71 aܵh1<Ǎ0Dld;.^轹Tr)! C,e5ͼЋ)y3-.]Gh $wс8ı2o=NBmiR}_@ P ?^zBF̷A@ո:FA]9d'9R U>Gn(+s͂`qO{!cb:jGۄl\  ٿqnَ̆k@Ğl¸OCP'p9go[ѳ.:o 7WԾJ7̧DM E$D cω#::73ə:tz#'*!ef##$tGvT5s#ZsAFǏAН勵_8[ї4Cx|l'r"hd$B0 G4UNOł=N7~W"[P%Mcc [ԂKbG;c/cȨ=NyRHWwRO;{Q%(k;DP—ʕ,r-Rot<=L)02eCmRW_\9-W{퐞s@OXxWU-jnXO>J}I?8Iv7(7."$"[5%ֺX!JS(Z^婠kzO#!~fGP HzE}\pˑab<=iL˧FQds@c|ƟӔ(PlqsTZa=}~CQ{\!Z,4VX60!YF^܎'m݂$-<.‡J,,Jt)wlNK+"}ؓ|`܎f5ބLDr}RDb7R2FYl}ډ|ɕ,XX0|LGϏk1zaX&{{Qm&"@)x 0;=\?Tn:Z_+fи~J^7AyF<)p}T~2wR!Q;ȖTE*vlf\PEAYDž×éi;Oiu`;!U"P>ws5yVNJ jKj\!,mTC(xFҗ,T.~0,Dō# Nq@LmNP:Ee31?I>wK8'5e"T6hIOlIؔ#]+tB lQYE< %jA y3O!)d8rBk;&o) {'1] mVVń5b )5̜ rLYDJ K\9=?uUTuwURe߻ rg&>χ3֡?\=ُYKkˁ~~p^*jn !itHf[i,1L옘б? .d*`>ϞY7OGm?rkfhZ9sv6ڑ72226adrס*\eIFHRtî1$ }{ 4]R\B"vӭSMC+ Q5ǻGq+n۱"]l.{HNz\DRڔJ>:GDS=C# zg=\P]v-2eUtnT `LC􃓩2^[ `#O""u HzxP*e? o44e[_\% $ҧ4kaunp58cO?_|7/ ݑ׮صԎB6 }+/{݆.q8NO_8MI: Plj1uk :q;{q~bTXUp'r"5wVC#rE,~ⳮ+c*8C_2|BbIlm@K}BN"sq[> (>bjEw^ /ń`\R($@nQW0u>4}1Ѝ`qWMO Kvѭ0Z2!u\̚myۃ( 鐹6 ^?x=+~.T[Y}oY @ YiGudWPyRҾ^ V@uģ)nuz~JsZ!HW\%~5Íqd"Y '\ ّLHG#NjȢf%WyYG`!w1:3,YRetl)"*a2eLBE%*/sk~ 2W[LQTҋJ"*?OO0T#PIYa{UϐK M6"D[4'´e $_%HXS'Ul`7vȨ'aEo=`¢\p |%늖";4~>>&"%o>+Ngvf+ŖfIe~bb>Rӑ(0!kȷ3Ey| >(x,8"4} 'EfUb.{3 6x6$gyׇ\p`K`ΚqDn3@qɏr#@xcFNQ-PaiV V\vT , w%SM:XݹN;Q=^q{+@GVEI5hncoSq;ַU[L_k:$gٔ#? DŽ܄e]5k(bbƱĐ^qpW\F. XƨU/GJ&'~n=V\tB6Ju6)hup"aw`fJ@ͦ a4(/D؛4=5hj ^3rFB;,{x36|5E O-\[7E$p,Zӄ!9 ;ÊsrNnUb.Jq ?orZo!玲_K:EnCƝp|7UQ`։fȈp]+JG1K$1RH;2֭Nlj4yĸITau+)gKVbYhauEl>D&kPEZtTA&܊V|&-ED)Z]MT9MH3<['|jP%F\m'R]q_4 ݠz2\wtw^s^sʳ|o훩~l&x!QF+i(>\bE*{V"3jTR̼-|_zb0QwJBF6 ;5HC'cl3rNjƲ";c&-i<PPw묻RjBB H4aGcf(,&Ma3 +*Ōʎn.~gOrh۞{wkFؗ;r 4O'WѲ=[F[.@׍y0 ˮ2}ǓՈGbbI%kiܯ$ގLTؤ!}7}m}. d{Rp3C/ ~eo}aWC"\wG\VTQ3lzPZ0\kjNޗ>L0PcK$g^LkȠ{WuXhcڙ^z!T,{5A==)E($AH:=uʒR/Vl/^ʊ8~=^`C@{SVnkxzuĚݠZdwA~-оh%3^i`ϔz}ҋ^‹erN6WMؖ^+-rhp~c^=6=l1pafq1g5"YvׅEmnI* #A1Aa `oD-;6o{r4f;:kӢ'0 \E\5*KX%Z3wyZ#rxzKJ 'yvp8 qx/g >/e҈y_[S<|qqzFu\<`!H cY?$!~Wr|i? TBqSCN&8o .9J%,-8>ٻI\nȗC &V=}\F☻`y%59\/][G{{=F2B*ټAuF4D+|G~V<٭AQk9.Usܐk0Zѯ+2Ơ׮!aKH^]uJtڏ_=M_K ޚZW'O/9CO޽x;qTG}]MϞ\{ۥ<9TV:Ľ0PWؠVc' f۶[czp{~uTI"W9' )3h6G`^>*sKtU1Ǟ #fr$YM&,{ZQdL~xDv@"\jLi9mCW_ ,$oM(mгF"ړ r\GHO3U3>[:fS.ثlB5$@ hix nPͲՀ˯)YfSÐ Dƫ٤Xbl [0,,ib}1 ѕ&7ÞZ=&V6bwISpȶ%갓}N!9c :g_G~IsqP(_R.@f mk,|S;{F<#4s>zV6w>+(16v}xTO]eݱ)T }{XŪsFqL hв#;%֎zF'(Uބ sUkM݆z(EI&7j&Q~yhRd##'=pXRB/07/ݩ c)SNqlk-RQ<1 x4e =[D d"chffG, =dN[gSgJߓ{duvCmہo%KU7x_ <_ b2rb AE*жb=5(E1~"@h'߸Sil(Hir, )L"Jz:'#&<^LہFZm}:V<k ϟcV{iT;ki:Qian=68f ,n,{x;(÷1cYuZX w&~z(FUl3kē䷥"҈t[jƧ?JFIP :d -YE)Bp _w4kYc\MN@O8|ny"CsySg*q6pҮc%@Zmw=2ط08F+YeʦH-%D&m3uen<<ΰ$ |8m&J/#uR/%!vcD~Y)1pŢ &OZ8xq?pd- 7)aQZͪзI[6wQETJ,ohVխK+՚0W7,9A篯<8'fa EB!m6@fn2rYZ1+N /ˏv%½c&ѠEmsm᱑~&3c%. 3tp3%kO N!pmrqnp(՞y*4nwB*U ġQ5BT~JŖȄ5 %sm`=10fcBei]_^':HCkWQ`ziVN2`Knf@JJ衅d_ Wsh[pa7fZ1p[$Jc6GwDxQHR)"X J,LC1FKZsysA ٷ@n^xA]#&,DDd:=X5(RMB)Q7a xp?̓$a+HXLeK#3.8:jK t^nrD$|}4ț?/N^tfZVೣzƚVCN)Pr@Q7 ?vۻZk2Dg=yB/pS gI/QfEti<%mHå5g $RJ \iAM!_#0B N>ЄqyxaHAdQN|fXYExnMv8)T1T}D9lWF#j>%HY[7^?^9%OD Ԇ5Qu47~W?Ƹrc-΃-%[4B}ҰؐKrW t^7$wYN8\zv#)239&9@y܄p&EFY9:$ ssP6)# DU J{(ߛ$ Ӌ,MI$6ҵj2XJ @ /ħ\`Jt +|G]Wnk;?LUzTvjr,!khoK 4j;ԢU>*"?R=Om4Qg<+0;M._н.`~ME aneǚQ62 O!kR1xw)g'8EdN?D[cUz }_ /;пn}J2,E)oQ#M^"$,oda'8hQ&g{Ԇ&D;+c|w`_bǒ gz萈h#~~s4"4¤EEmɪ`Ҁe /1Nog]< >7MN_5Y7  *gg zq~@TN 5OXf+dΙ.e_"3^x躼g=1(K"f5Rxe ɾi. I1tpysAb]\& Q}'3cT,y=A|ߵH,E`+3:5ߔbαyVoJ57Fb:, [a_- ZlO&SQ'I#DEnO| ^:eؕKlZ>W@ ojC |n9ZVV־t̻SmyoJj)Ϧŀ %[2Bk}fx^ɻLyU"<8FpUx/k`_E#MaAK= Lxtyh52/Gw9'3-7o- ȩlفr#;2]v5ph!i,`vc &!wR\㺟rZ,-یbO HC i<.p8͵gdӫ`4HܲXnߪ MLbтF*7Vkd`4 9/'6)5Ri@2VRE_%͵jp fR<%6cA]8u707 +3U]AB!~Ӗ}i zI 2,jcL yg!s 3ѫNtH](xYS'u7K0/MmKWp62X)pSHxqFԂ wܹ#H92y({1޲r0Aw/{&a5|>zPt s6dwf<ᔁ@F" {h+4TV 0/}6/=o4g2:|HWSn x〡V }G*J6ǟq%q PX+޸ke?Zq=*q0:m- ̃\X gmėtsx F\ctYg4,xڹtЫeP;D+bq z- M>4G9qr#8^ZAxkJ"Z:xHkYyVZ9g7(aaA]нFXk9N!9+xn'ѻQGC5?64gP\[ L%.-fν)dh}4oo&e'-Uқ[1Aւ[Ǥg<܏Ĕ [OnOd^~I9isYx*0$/}M,ƴ ;T;+*:,^zvfJyPIUd+/YO܎lHk NBo{6}8Sq[4V7͵B\kC R%_5ytq2Ax9.ܵ[o 2TL!}7"P\U?̱ tG;\'WV2M99ʙ( ,w;8`JMRS6˜ߵ :3l?_; Ni+O=MҊE ʍrvz z Ing~֦,`Yi0r/0ŌM"YgJCa{g<>ǡ}^]?6"Hv& IH~ZFT_h&2Ww\J‘~yM RApg6a˰Unj+hK2/*Mlbgj 6sqȬo<`xQQ,`;ț 0sDLn._gW;|vxzY!v mKS4QB-XYYo~fo /G11;7&.6.;/o&: !n; d`g"h\-Y0UOXG.n9};D6HЯ7NA;\CkњX㏩7Xoy'ݡ\Nn LF[\)@sH{}+e2~yZ;ע9fG,% h=NL$Wt~K~0ޘ}O C ,i\lݰ^QF;[ƙT"TJTk-O)ʘ뗭`lb2~阺w)U k\SS+^_<6qXk:W!9|Ӊd2d`>kki3;äQMqaR߈YO#όeeĔ֞`FxpQh!#?!'пHx G#eJ;x7:ic+}|iZTxno4[K E;Z/.L9O+6LI`9o\",R0 )O܎kvPw*ȞSo߿Gp+yhKyTLsW `d z|zEO9:鲻xZ|\Hb(P[l) o[h9g]Ig>}zTU+8R k&xwXm[eWQ;iZUc8.hAg}8u,]> (m@E>!*PaZMf4Q|GQ%G3x'ſ/Ig*-Xݬqa  ;r$#_ 1`f]d3:dVXE|Ɓ_&c5 6STǯ[Nla. %Ri }<(Q fHՀK4_7-)C!McM'^ Q `X2ZxM4B/fKy\CMZErް롄΃Y.(6ŷ>צv[R"R1b+dnʨr⥙iҠ['~O\ (B\)(ƏoZ(.=:5[WC4-gqDճjtOkgJq.#?dT5l!--wYQhco٥΋##XfF©MQIE|c;4pA;pfO)fs--I9LYa PDSM@EP6:ǝE̳P ]63?Z ($-Uk=8I78G췕NҫCH"Ue-Ѝڶc_ʭ)wqheOlD[ vˠiu2m-735C:񧎨RrEˮe_"/-;<=#Wx^縠ǸLȬCqO'mż٦%aDbE=#z\6NJͬ!K}u5T-Wʭs61V]1ۇ!({QS裸YDnpa\ElXI bZHݜ@9S}3꛷0&ţ ߫p(k7:,[zѤIJ™qub5c|2p37AK>FK 1}*?dž- {VxM&Q'b!Pu 7Q4)ɁЕy;loUl6MEW"&Z'/8jV)ud췭k& d P 'OFHy6blYjo}зwǨ,vPN i,?QP 64ՏCl=?oZ(%[% ֬(6g_`Z|δU`B,*2'eu!$G 4X&L!0R DP>8c1S^: M(\/8-<Nlkz̀RC$WI73Ja{4:g]MzqT~֜Qtu|/ h(Hj ȝp*a%5N'QԾ*EX`yװ{J" 9–Q9.%Re,$ByDXهmߠe_Z3hlBug^ss3(=InffD8#9M'X::&@ذ_5Mwm,E“-1޸&bj.x11Òx9_l!^8A| JQ[+VoۜeK]O 쪃ϐ#^i }Wr 9Kw+DG)1ns7OԻ-zlǤ?jϋ7i((‰9MULx2HUx? ) nd9 ß:0.s[Q:$ηHUa0K<)e8jk94m=h/-yx[1i2Oh҂t.6C2r+莽Dcz; hJOZo6_7~yaZ%iԲٽTnW66 ,LOu|'DՃ鋫2^xȧQ7̪Q<>B!o#6wHNS{'l[Tu 5o1ާ~_7+ˮaDM6yV8 b;SiL>Dڃ/HnC'RS2Izani1Ɖާ4)ܳx[WWp-D2ZbeW1}n黾ܣ;s_ćU*%QI7ֻil~BS ЇFv~{"|6I5{(v)ކ!)^5ƥLpOGgmo)`pss0Xb6.oIB^ IR/c/dƣg#Ċk\,x_lk#N7-2y`>0>_./a'z-)(caOt`%O& GMmMb/]yT s1+HBKDJzĀaPv\:8k SN<%̴.p{*g4ZåYOzrC|S BE`<z tī _r. \H;IV(ƜV}oi]cI(rN]dm@HIE&#B 4S(,<ٵR>6<={{ܲs)6ONJ=}Zg;$4M6ONuյuk9 Ԥ6[F'*k%L4T *=4cʑoD~6#/eO.ξ{G:⋚W3*dY辷!rYl 9 j6EGܶn湿ͮݯ:1+H(s^?\Ѳ$1FlԨOwBi3evw;۱!n-|h߈`m(B-S'4UǙve^}L>{2=jyVJ 5G͘w t(:0F4%y SCedFvx ^^~.iB>8`o3NQ aj8'e&*mA3Q ea,q29zlv?% HÜT ):N/#LSQݷFyIQDRњE}ʟGHm/ނ~X n\8JtCZ5o"SFw=4nh6Y:s|l9ˆpwj}:X쀦dH55^~. ػy0ݿ]4>Ʋd|gDG;6mʅldYT;]d-'ol0q")`w!˱0!+E.V )jZbD Y-;ק$ 7c& u! _Nmϛz`+.iz`~iSH1'w^>W,ߧz'wc]7*E3l/KTV/Z],83t߁[sQ݌APJJ7k\L`~Wf'DR 5VY-|J(.pWhq'/.4!V&3ҲVy R9^p~:}+ h޶ƕIg[BuJ&b<'YfÞ6ϤB.Ă:Ahx:{.teX C_:L'cz@ CF=kweWmIe#̍_SswDYξ <>ncF^7鿒ϻ6|$0MJ3YF? g\7l`ql![Lݿ>#ioI2+'2gk[8ʢepYV ͣ6aB\j\L!'J9MhFi\%e3f:ybz ousCiOl61 _.ޟ[4jc;Cܭ ̹lŹS(ĜQ7Cv$l/CEF0ܗ9N35I`[8DN`bxTˎ=|=fl;)Hy :oႲ I[0{V-;0_z4bZEW0!|ϔ\-7\,IU?JZS(H nPLw@vqcG-^ڮ\XL3\!=:f8yjcI$ D5typ(.Aםz0GRr gVO\ ;G`O"AA%k]/~ kaߚsR|D-Qnv]5-_ENòzҫw Ԙ~ jʆ".y/J(󸫩=zii{y^ *L?@qI4I5v_%^Uh;Iڗݿ%Zb(vC(a$KQ^[@yhoR]RbZK1fFQa`n yC u"}{=$ϘNXORQ="u[l8j*'Y7 rE 7FCͣ/mn 0¤w+?RsBf!4X7yx/De>~C#Scc6pZң0^=0{/s2hZP2db|d-Uۧ~= ATٹHJzO, CQQ9vk%qc4]gϵdP~#BuPlCs7.cA; U0E κ`1%}ޒ 'V8" q׌:P|.Y q!m(;~Ņ=P5Gzw;3rf OkBoNm\ljBV5Nrf^MM ^T-ҵ6B$JއY7֌z q]\X)5;16x˧ kSBŜ{GW.8m˄RӔ/Bx2L:lyMbB/C`.U'QX6ko-xSW4S3"VJT}$7z9pHb,V'}/ ̓?@cS-*F2!($&ً9u>%~8Hb"u' XjnF(D!upj֢R Nc`\CZhsy`cVeMʀJ*SŞukǑҮ?swCD;?>T/!Fc~Np`8: mQr7flj1!io^'6Bxm[f܊}\= &ӭoe#`|b.n+c< Ly 􇃗dMp/xlBP8lz>QדnS0fbb|הKaweiviwwq>fT"4 CmmaZx?ړt ?ӵHJ*Z*4fS5ѷPZEŞdy]-+·- d\ FseTZ|},Sm1nd'Y'~v!}.?[E뀥Y2GmM&ZveӐȄ맋E%ϩ x(40,t5jO⼹%Ş"dG XRCC[[N@'ϭ7,ޓIDm[IbK"<X wWuI35Ã!nOD )=D!#Ä"Tҹi?Н ~cw(j6L! *xϔBM?*+:i@ ی8,<ƥzc r,t:j%)p0avBȧ{(f>jډWm=^Yir2*A6Lҩ\(JW9>.#EzQ(Ȏtwsmze9lե]6ZxI6h?Vx 盼|eCxfRuY^ 61ѣslRhb/K Zº>/ Z/Aڟn6ДHpCs/o><VCVp(Sn(Vw&ڦ~0{uxd Ƨu c#&umID~@ܦ8k2<c7Fif`t>}AGvlh][&I(:MWPGY֒9ntAsN(:e|S~h%cF@6Q>!v) = KyJlR$YJ84&H)0cǒD_ѱWh0sr,GYM<+{L& *Za;F_}&I{gOUF5 ˵VkzқwQI'?{pgTc^D&8S[zMHt6 ̶ ~_W8czOⵚS/dGcR%i~Μѣ̀L¨^Ie4aMf̢c ;XH-M˜lIWab\ʫw#{fU k+Nx79;B2$m&PճF,' Dr-.9_mDթdL̹o 3L/aS=m*3,@'Db7'Dߌ[6]+k^pT6C>9:QZᏔ'P; n/J)X'Dv&n_whz',,ΉI/*Rʬڏ\ 3ѹ CgX\1k o$ Y)GK^BsL6O/αCmDn mذڣZ:bP@/p >%B>pI?@.)vU5~]b ͡y#6AXN]\ 14Kⲷ2MH+H]'˫S]aj  l>S'>u3wTFU;&*$Sf}yY^>"V62/C(y`ШyJyDI3N*=4#˷D}}Ty&E EO =2NO+Z\;p%ݥ 7 iр*1 (:mz&2ԏ 4 Q#qSĖ`|o[x^s". +:z@YsxSUn\/M}tc0{ZdV\CᐍƱIW:*Sȵ4mx/HGdsОAN:"6覀[Ah, 5!qFy5vgR~ouy}v0}˹o[5C= ɾq [ajjf9 ViT5QY+_Hy%N> stream x^eP\ݶ. B-K@t#kp@p.ݝ .y9^g̪5ȔEL_` 5q3͝lL,\TTb@c%$n @Yc ޴n X 5Aaj-A@71o vFƿz278Z[bR`(]ބZ0halcԁ 5 U5[`5';;"!QT5Rj@W9@QM7ϛ_w uue V=X@ǷWmo_iof`h- ;>ff&s'G-,.`kh')+U[AN)mߠ|szCoao@@ƴ94Ǝ++l-A df189}4*srpCU'. ~L?Wo rt8+"`fi[5#SQPSgcQ o<qy> R jG[;1/b[. -7EɎYdiMd@]M,-Ŭǒm^f3qpzyOſ?!rL-M oDˀ*oqI{SS0 ` 4CfVCAϜG.I'Ec[ Bvƶ6nfZ{"?t@SeKſW27moH8ټQmwYYC6& #mwb\ťIL s' l7N]a  ^3d0C\_CjR_ͨA@-KS4Q08X0>KP?J`WFv#/o&#rw@@+yilh\-?WP[6n)m_ AxxTix~<94+m$NDzŀIV&[i|~3gXMEJۭ,5s^XFtw6 }LtCTNqsgU=x܍"w||ZX:\{hTG0LsW$UY/4죒|*Z@}ByEvdZH3/?ceӶ$ϑ@`'"˧֨/{ID7duA Hw[ 7p2-xHm8YQр&g$U| 9Y \lJ%-:~jAC!ޢ 6sMظ{,N!毓[]MLxC- MLͶ'M a=(WwfȗQu,'NVK^tk򳫗YyӋJ5Ȟ̿k=yQ}o|2/YhG8ia K]]wvhN軷If>tڥB%=lH5l#tYqIA5zf巣y0LOX]c*n(>NG75"G(L9-ϐu9&1&'#I:x,Hаyʑ o_\_^?]MKuB b64r( ?h9t1 4fL')bqGkbJ2CIq*-n^u yN?^EPm1"jY:"i BH*pV .yHo;[X]?`v ^w6s5W/0BJ~m6! N{y9d>GhHYԦG?:|K?9EǨԗq*hcl0`#H=[EF˟Ɏ`fto;+~G &$ p*:5L~ 3+|q;.gIz^y π3ۮ&ҷ=䁉{H-Vƙ+U|%O\ÒM?Y:7!J8R/ONqDn5mx=<{tI'N'tg=^QL$߮4"Xm)ZJo^|KAmP-4\(3;$q+>r/[_k:Tvǽͩjs;#S~و-b2žUָ.p-:Gma Rb) )$o8A">t,w%rp+c8? p1߿<E%KQ-jeݚh1sEJe>?;8 78wǬcƿ3%uDXKo8}n`VGv2 mhF{ W~hU2p^}kIԵT)z+ceRg@ĺGQYY1}.q$@"zN,I8_Қ*v'XApU$:,bA\@KPWŸā Gnjdv? ?~wRr2|ĆmKY@r6B<8WYu?z k45H./̻|Ѵ랎^ kݩLdڸ8 gw]M0*a>Uϒ^[79Y(&p{ ]F{UQ=`qԪ.%mo Rwh N(:WШ󍟉^px.t8-}LM^:qX|pb!̎X%}{鈞L6RW-4$^)7P6 .Z}Krۯ"zFo MPh6fL-='Hjp3!3Pn$[yƹ՗5@Pꃇ}E^sZG^؃GggF-Hap2B yA]ya$x=&)5HRq i z-؛FIoT5_8~YW˾l:쒨2͑ 8F .Žڤr@gեd&cF =)Ag7tm%t#íÈ"iu $Ws]\r1P',0CUoK]#jgzYTW&.,TSxPh'̀M~?MZ7"%7QԹ|1[ 3-J*p]iBqQ\FW~O^7jߖ-h]rT9ZŜ\;\ԜL;1g]|R)(4dΡ=KQַ\u% s [ bTmc[&yE<*Dp)_ey?r{?L`v! 940v. "2c;#@™KsG6mf߽} R팢 㘶Dl )[@}gYDA_ 22U[k{gKanKǶXd E"DO"-0(kd\K8EJX]՛D\* Y5'z]qD@{ tM΍ll틵3qRqe%%c⠻h)vtLJ2YqR+ו;y>O$1̅VaLQP|UwqiÊ֍ə[ 'b8:G&Z0K eG"|kmu8719>Ԗo^: [?]5.=7̏e*򄌞e|~tXV$1wʻJ6lte)#᱑{Ri?b ,2n-&7r=u3!P< G"{{Gi Oî v\ă/SB%ykaO*hM9\tp+2e2OK;(g䦸Oq vO+*1>8>@ ]IW3I}aMS,S`p&$h!c K44N=c c6V /AqZ,>OD vl+= ^#<j=UUt/FbC #\6ࡼŵ}hȪV#Rq8پmc53@/T3]f1Mz<5Ȧ#NZG\HkM J㟧J?2 OlvGhMm!jrsϹd.K iܑP.gX^O\!2h*ejONqg(qO `xPG10f?Yb*(Murq={ȵ㷻g5I0^1:Z6*]ie0+PJwMj,aQ:WQ϶9ԳC'h$D [^/"&a㟶w@瘰FS}(xcl|=-Ռ*5itip KlBf1ZιKcK)W`B"PL v"yXw H_ݼF{I9*NF%=|YW'WÜp,#]{12z=ڥEU[F&_ruF N9"bHiO9 rcY۲*)}KaOϨ褰",H !;˼;ȽV(G@'2JY?;׉HfZ̶ VT.8 8ر!'kOЕR68Aݡ LiI^[}9;>M&=t+?ZFrݩ$cuS|Yw $Hn%3$>(D&g')j9R.Se^.,t>_XV^aqը rK*+kד)-W $wq]PkU:H# '`fM;]HͷD 3ʗ`[]=@|Չ#.C=Xbxoa7nA~%q|ᚘ)|WXՔ{_לiɁ*[Ilv&u<1qdpA5CO"YwQ+tUz&K>֪iF1VNlm fʟMu_.juA%;=p*4*yyՙu9[co釋h]*)醖c1"_3$ ` VhȷChu-t̂f2'Zl7lh?_i`eV`tk 7ıG޿nd"FW'aІH$*ɫr[`McQ1C-dヤOzڄf6*bl^O܋@q9<_ӚqbzPRd 73 C{깛xB<.l熊-yBȕI^gq`$W "sZ.rEhrx&C{Y٣?ǗHTӧ]-@Wɬ Z8#T1VPC;MR~XUm;+.e2]dB+8aQ"o}XŗEpL9a7b2 ˵R9d=_^?$Z,eTc?VS6nQW/=C(cܨIJS?OEqDLESicbm1w0C. HcUQ>=DA؄9ܲpN 2zRSb'c^?dSB)F]"b/vAHTŔswp2וlT\}3+~xH~yס>##%3^zh#T/!: :lGbDM/񅨐PxyW]\'*DC_xJɖxSLa.Ic{%OM,h%%,.sh' W?6RSE_< F V UzSeBU?jC="~:N$򌯬Ьo1k/^"1P$W?}[>jR~~N)bۦBLUkkAQWţY*o>%Do[zb?"r fO](: +&u$=Ugq76q5aۍ|`9 ܫm/0G瓥CGmsoQUv(b3^wf3óeM@]hԱ2-=(FB%~inqbKJVQ&?.I-( qYElePs ! //fDl2cRs_J=Q_@OF|^AUB,Ь^vvGfGy?4V/JIТ?p#(R`\#wy&o}P~*YpፉDs1=WmD%r /'GwxO}1,IEп*GWʡ+&0vVgY* k;AH,T(ίj&m$O%ՐR!,I6uxLܰQwRX u[qTVDg-mC%G#*~lgY EU>XsD r-e⏋}xգ(./R]l~8>^g`I$3+/', ᇯ׿[""}D2Dd +3/=1{9{"xv#$inGf.#PnTZIXO+^ZEf blI0| !ԓb Sz-A*7T(!UB"v2%_YQ`ýjyzU(n;57ёXu#[b ю Mg: GO %yX~D+|ߜۀے HiCҥu$* fp$ EW~%&wF2pqVҨl6(7Sg,rNKoY8PVHUAg$pM.p,SD ɻ;;tI~1v詍oQݟCOkt kGٜF 黆bu&sѽ2MWORTn>F&ƚ ˟coaidW3=#zh| (wIG'x;ՌFzlOXwi Q,NL䬑s8@YK/Gǚ?49w|V`tTzy`q]u/K1z Ibs3ײ Qa(]a=n/G7d#nULa%G8ꑊrf[P}|$s?UfΆW[3%%ɼGsTG-`048:cx|n 䅓%R&A/Ukס:f <ޒiQ(:SW_1&T  ;cd„~{W#5{ԨC#_w"AvN*%7{wҪD%Gjq`i]TB籭_i;& [J!'}dfi :YR*ERgcr t:s&ī/H>.v6X(Ɓְ0|.opmzXIN( 2rS* vHE^hd2Qq:2wyLV U4H+R$~J(J3a@e{vs7~Q#T!!M q֧ub&^C ݄Tc"肁v@epS~5ÀfY)-ȩxZC zlMt>o~b>}P-e$q@ < b~3IJ{.:ɥ:SA>'5m9mG!>)ϞYk 3v9,r%\P.X2q?>0YH$ߝn@%hQ?؜xle00?Tݏu":bi4Y>ވ4K =)#ҨxI3LWڑzEZi1 Ӛa&x&Ƚ_#7x2 Kі:rG=M CZdqxåƦ2/HqL_}]@RUJH~a-`ZUJ^Kb\=9Lr,+Y}QJDY0}5\/_GTѤbAF6!1V\>JE/:bJ2^l5= koe/T0_l~ sdc,j ˠG",PL:9CΔEVU.% ,rcW0hr|4@QkLZRj*ro1cWo-Dϡ5\nYX+//YU[XXED9vlxmKc467djV>kd*b 9q@S 8zRF4ߓyydNavOͩ͆rC  UUϋ65\ crZgFj V$ WFZ#qu-2A!\L2dQW*IJ>!4sa2H|Y@p_ %r0*3o Y# ~ߖ8 ]A9/igr&t;19`𛋚w1! 5=Wh'0Q7n0'>Rkry#d H92аEyPөku E̻Me-jVSPo< `*4򷗩)y1ͫ֗M1=|./בiPykL=Jx7~ $`1100s Z)fwG*# 6N1Ӕ6' 9Qal3p<艾*K1+1 Zvm`(h =\ a|ӸVC Ƙ7-Ψꂯx%KFڬ5l VYwob̲3vCdcr4$vsoMmɣJ%Е>y5fQHFhϾ՞N`s̍kݏ{8V UK,i_{6Mmf"ZI0mIScNRDmZ-pjsBMj Ck;UuHy~+^n0eɪVs4ghM7\ެ&82#d^Z>~rbDxCwh]$os>-.d'VL./0zdL hkۥ+u -q)r)EiI>2WWn}~ghȑbf2)ژe>\ҢöbvZX[d KjA ]e" gt|7cj8ЋbP\?%cծ'1LGQu,+u,Ѽ)ӄj>h(Ex7YL?DzcI4 34Wתrnv-ٮM^USII*ܲLWHG-ǰ {LZ endstream endobj 108 0 obj << /Length1 1720 /Length2 19784 /Length3 0 /Length 20926 /Filter /FlateDecode >> stream x^eX[]6; wwwwKqw-~n{+Y IȂXA^(fkgf`*Zp+M  Lp@`a1H88X@Ç` T*[Ghcjnss075JO7h!F.dr.Js hf`e55ʢJq%yUejNvvы8@DPNET*}VLr*u>ˊh*23] tpX3j`kOd`bu0e?3sG%12+]Șmle#C>i/w#oe QPXۀ66F #@И_ Nk/օl?Vcew_#_s+?:YA9I1Qez~cr7 ``G׎p1 dmicb&6&7vcT1wJo)`@W#3ƿa_5_&`8Ŀm&+**%FOJQ#[csS ; ,N]a syLl&'Q_7Q$NK\F>KoRe2b)P ъo W>њ@P[1'ܚb58[Л#sΐtN!Cdxz4#F1JY"a D6*ݭufS[_Yg3SH$|-H7et7KD*q} Nh ?5Q*bb0-Ce2vg >xãXգ\mOHŤ%M?g2fW?@B;~~V*olwM[Qc6A['zᕐgC0J> 482,O"p4'˰Ld&hh +)΋1qa?i^L'q!r_8b-jg>FzEPRJzDU_>2%h qfnݖdXqXUimE)!aVisWAWzWhgE2N@tJs +ϼ|JU"Ġ@RY)=dl?$d4Xmģ>(ג$,"ZgtDֱqJ)iU˘N kۭoٟsl65j9`o/Lp=nA'< DOh=!C#/fU33jIC~5L?FeJI֡`bWÇ#7`&YQ&]e6rl puS?K='Po$YlN ҧ{bǒ?1ɛKFrMluE~hn5uq1iH.:3Dj>CiKjj|dHTD9 kLf nj?1}}!ZF)ءkOj/R KsۏdhJ6,L/p ^1>, qva}Yi8Qv 3h0> o'p6PdwX(={.M%. Blpgb9zb$,#}M.fGQ,2vźNFSxg*?I]+N݁hѵDT'u/ɨv\Q~3v _[Y1G@)IM)J&fDg,!l_o( d5 u hπdv`s<.~_7I7xCVlw݂ QG%FE pjw0ZV1eH-5Y+L4d6wň?{tEKC[#MC#e~*pҭoJZS+h]7ӥN%;٘[1!eUU$Ls(#F=qq.8w Dȁ_0݈W(® 6 pĄA)BqvHK(3Ley~Xt㚅NT57sN8~! w5C&u5f+EGVsC;dTфvuu]vK7ZinCNb2h9ZWd6V#3ᨦc\V/`92WrV8Bu;CLhu~b--{0^Mlb v4IN\_oL}R zvtq s/Hj+OC1K(}2Q)ѷFי@'<]wƏ9Op/&3J[>U5'6DT=Gm"[. cCJt=} +WmOnM;MHQJxGۂr^iuz^HeYf-Hc4tsW\U$E&eeFʴBhBC?1.q$SA qne7RuV /v3Jui7;EkU=Qf§ᶭ2^sis(桑 PZI4$VBxp NRX?\=MWӓJZ)B rx٨bY?[.$/Jt 2"JZ+ d}(W_毢y╏b p` u.QBI@e/E|{!'Dq]i߿el 1&b/Sj=s qr<e<*Ďb^L24S| \0y[CF*h^>"Ѝ~Mh:$B&c;Lkl#Vl dI" DžnBfi~5$ѨvgtZOuHC :ONG|UqVW#W8ʳa&t=Q*Q?R 4usVML_jog5i\Iܑ;Sҷᕷɨ^`צ>[h" i<>:7wEHsX\_̓8cIsq~/ qmv-28x駱\f A|ͫ`S cm,bDTJ1Hf#PCgeU#3Ipj$o}i?Hg: x`7/}2ģObH:f0"Mmj؜PUTy 笙+TK4/'sK}۱@ǡ Jh$XK!@JXG\$5^CDlߤaOgIkA'^3j#1#z4++3W*a>b\.Gz}r_LC)a~_AX^k(2 -q:&r1(۰/ػBv.Ҕ5'#32eW@B@j"P֙_3Ouvv3LDlV5mǠ:={,TqI3B3%)riF=f*#,LWjBυTKnus8-3H1ms #acgfB8 U;bo.CJՠJH{ƧaV*N] CY)뗘Eɫ@=qLzL[~gc J!YۊYѲO/fO CHվ$ |>6\}OQP#^W%*n}KiP@ΨKM">te 5,tY>ކGP>Jq>/’+oY3U}snB+5/ey[O, :4(0]ߍs2͈2jc S(qCj GʐKD͗ .xDFZe]_ XPLÌH 9 O]KKQpBܩT+\8YX]&JC8{)8>'R<UI}2stnuzQIZ˜EDz.wM:Z/LƇ&s<ޜ+^}g&Vvh鈴A7 9[܉ xԘǐ:Q}_ \eHn h׳OM;x5ԂXճ8>JE.g~IbNhxSWN?0"]jeFZNRꓼt7$l:tM$3H)XzUI,֟Q8iSxVkZ,6uteN44#O.%C4l*~ \哇8!%N-V,a7ޟHEpF"梸Xo~!Q bZAIaQ>J2(}R.Mj&733S $a;~d.<|SPC6IerǾ'Dω&o<*0F_T:RctAHDZJ~y45"{ Qp۾Fs`5ΪgjcUd-ԄE-x>Gb_bW_0v`w 9$}یAG-c+!оa N@x6ҭx2Ae lSSvGjTF؃ann:ro Vj#69_K:P!:eFı>d^v}3Jdo|wy])r5˱֎@&8x4#l(tOl"cH݂Lp!ʟNQ5>hGj~|D_6yw 3u{y/o\dcjr,̭n~@9] I50>,8 e& GH8sN쁅{u[k LMI?|3DMoc&,zd?Y2<f"C^yt]y.ؑ4crzmEEod|&wnq!#׃-$7\03Bk @e:?~|U)aBj_VcHPźB]8mD6(kGm[V1jJ*^叞rɰ]Z?EWM޹ '&\_1`;3jIB9Ǻ'nv{4l 9g?u yH? L0G#dR{2q_I; xb]߳XŷS(_[?r pL3c&|Z5G&tD;ҩʯ&so΢}(,6^f1c`Gl"۹~l;7cύ~V Xq)zy$MQ1 Ay,C8w7<’eX«HBz+Q[?OߧBeGGRP2a^{ CkEH:W,9(۫7e ⲁb!8>?UC=*xFe o̮{솴K ͧ 9THW)0<CZzy%7Qٗ5 Vm`.+R^5o42;SZs8-nPŖ&vUH\٦ )l |ڭ4&x$UE+<%>[)zû#xw;ٸS1Ɂ<[\+J(FB.үiexV+8B dߖ>,i>nb4hxhBahx9 ΋E%N ` 8f3VEy(53{wu:NwS!έs[Q^[9h<0jS4n9n M-RQY5X.h- 䃧^FmlDW8Vtt%3=l7C2ך )L`//t=ďR)X!" ;</PPiu&>9Md,wNh-Uږpi2fzwlzUF& 3zN?Qg9_ Ij BR^}EnL5KQt|\MLQC :44ǿ hnl_;x șzMc'o5uj5-TPX$bbyJn̻7!eD;#\逭n_BX*AVp]R̈C.1% 7`+@ġd"G:;Lf J_bK>6ym BXw 302iS3IF{!YQ5f;7׵]_G+Np?[K޽bJV|u Tw+`rQhˤ$͢5=]ʖ1dC4Y!?ߧB<ZwAV '(@[I܃t_ׂ~j1xyV;V?0[װbI?6A'ʑs#1%[ـLL1$Ԑ%̪/enΏG\D0D y,$}"1&bߕ YS=L^,RJ| މdi-9y{ 8sKNveH:'̠2^^Y2+PD&!Ѕ,FEh0^ء:"j;ꑓeuN[s׳!e O**ߍ?s6dqIFdCtq{E*{ZRouqegDE=}"%\>J+߻Y~&nSH\nR{jvA DWh0 (sI#;=wg명&uY:!ݮZ* ZH&St:A&qb҂6>%7sVb]30.diTJ #3X~*d8 F8\u3T?01 1n;4H0a%+qwq:l2C,A^+st0vG ƧH4{ҴQb+/Iy)Aԓ_ T'z|B\Ac}7HӵF~4$ imK/>eœM!/AO𐩬\؟>~vBM(\_B4Ke{p%67gv$:n<㠣ƚ,V@r~,Ob#Wp,bhAtsoލRҾW;ח-MÃ(L;)&j;BfU>xUy^7d;4,k@pc> ,DALVhӺmT-SIU8#{txG@}wc4GvJӇ#1X UsSXT6'Q8T6g1ͯ I-)Ki؊{lat#\8֬wȍ* _\nKy]̂LĪl3\Gp$TIJ;%vXrM~}j;5 GSm4(2!vst)sTnc;AG!9m`a!D?#Ў0$Vk p!*84~5B>O8̢Y(; 4lHw^55Lgu?k˲Ԫh6tt  @SA{)jΣYigxH'ɓd= w8D]ۡEev9o9Nڹ߶w"g= vhJB(hpu`{ΩqcWAh|:eu1%rz#'-9ObP>i?2ϙ0Ԉx<4.(2:,uhhaod!ҳ Q2en~+!:}zeCͅ /):4] }]{ůΟpjcE<eד2̺-TnX5/2*Q!|rUUP]VBcb05!Ǿ?amC%Te[!$B}l[[~UatmN 5Q7 XYI/+;(WѕT-*"&7} "&ɦ^ 4wrfyՙ5\$Y0xʌhL.|ʩd@(q3Y6|D%m)xN}JYu;E{2 582`,tv֨_ނPl ytw؛x!d"DQTH`ѩCI.?D"Jaa;Q=.K+b{pRV1ӯYmK³?76j>8H:6L;7V nƝA{/" ƐRR sѐEͬqb+is ڧkQkrh@es̉_9b1Qj}vXEv*X`ُj9GHVrNm6%6n[W9}ѬZK:$`~f5 f5:8"5:9ÑH8&Lf}w<,5xaü J;h.&Ci~3Rut)]V`!F5nss#` 9lymh XfޏI&+ ~C*vF:͔_"cv7& &)_7}h={kn:)bi/<\uaoS3JZK>Cm:u wCCb|ws 3W.wλ1ٰ8<&'QDI$"i0ͣ၂T 霕eyW%} _Stqt5L:ꗧp3ԬLQhfIP~$ZN#YCs'hSF=_&6/Ma%\>?b#%Z^S9CѶJJy7X^|o& =r,W }[k; #8S"^ruՃ8Ta֭ßɂ^=*c]R.HǞs@FQ-?giSh 5uQǙӬ^KW.9 1Ka%mGrͻD5Fn$ qHoÙho<Em=8A% (\sgSU|zkװvhXt!I8ZQB)TlsT%dFsۭH"yoIYE#4!^,!qSOnAM˵ھl3sZBe]@EgĐۭ_`;szC dt,Ƨfb}G/.6q^\`L҉wX5sOήyL#FS;W3&m kXXSqd%YzE*4 jZ"K`RwyHK[. 0&\R }q2l!B̌9&cQ23XHϐuo~D4(dR -ߖL>HI5~[R.ۣHcX8?!rpanOlyQbi> h $Wk4wd7&P3.jf-]mQMʩs]Cvz.ZUwէkC|r^4 @YcNz ]'G4g(/ $eZ@؜r[+5?-\v_faƤ>ˀR\#0I `MVT @ÀKKV BQWzҔkÎ 4Fj"sCTf#HߔaQKWA<m붪 󛿷[- N}MhrӨ$Qq;nNg)p) Pe )IHs/mDcg>$*.]?%xqo]"K ͱ*(GH! rjK*,A:̭-b޷ 㦗d{&/\""M̻zS{b|i3 @9X'>yA5LI$a8'I0w4RqXZ9nc7YECc1v^|Kl_npniaBNId18U4{eVx֧vwE.FR/Ϊ-޷obB!e]+eub L(+_Y^ q2W5=0gQi+> *;d3ږB<8ⶲTaa{IΧ'L,#Ddh[7.ZK':Uطw UƁŵn yE)^oκ5rJPTJ $2_B#(mp5[_[ H&2 &m8FTݸEIOa(Mt986׵vwuvFy`͎Cdעp[@bI|B iWfKx~&5?E#1~р7/`܂MŠ5,0`/MV<`y& ?y f:C A.2gNn)ݵp0XuJ,dV+J?D|}vgܱ߿䬿M]u“> :}L8wlb+g9-oH__aթlTľ A ٘miE6%dFBXlIyRѪgVp7q_eo(6sAw( )!a3S>-j]O $u,t7BNtt ɻ+de?e0(]"iK"{1Q!}$O˔"bBȎWk鏮Qܹ rh<4)8x@vMD P6OA]V'ƴ,->^#X L(EP0> TX*gkr4!o}0g40"Z>yw*xvt"JN=]u8}R͔'ZEgjCFBqPr]X\=*EAS(y6r0RFQ X/U_3k>Ev[plD@X=g&>#%A/!}LR}Ӟ^& ~嚉CFdSQ TΚ9F;]ǂJ/jrtiC=cevs(tOw2kZ_7CF+!s\&`tVIL*CX.8pCۡ!FlYEaYqj\T@yklLڡqνy@Iqp%)xr` ϯ[x^5Ӱ=,YLJ+%?j 4˧<7͗q.ѰmD? DJyv$Nę]J_Ьݼ.mqwEIB1%,ؕg1m$ee2sܩv0H!}$ ㈿xp*ň I5p&Tː7~?Dn,q*r7ƫz[,x]&9 }q VS\H/XDAԲP jiEv`>4[%5ETrKOJYFZ#;n/VQtnZ(o֟Nji 8; i(=آfԁC}bNYbw5)*kL*>ҾaDzFob#XЏ~0# ޕ* w5tp<7+˜.pnwȠKRD3L6zE-O| ЙibI:"纎T$Ш!I h#1{MONHJGZ+*d׭|]gBaT%c:I{yTHhҕD~Sq̋v0"Ȫ L}ѯX4f5X'?x{5YYVO+ꘞ 50 {&( ,cY4X(2p3=h EJSwYOڰCew'L@sx֟\PeEilB`\j5Rv Tk#pg*EQWY^I)]e \+ s,UnO7pm-[țڣ(0;ؙ= *RE8tOJ[[KwIqQQLfk CG[LDUP$wZJX,fblc>ItseVVٚ7C lBK[2Np1,) 2玡݂> 7 _HrTI_瘜񄅰ݰ{{VХa8AV&a_NDvTtq_uO Yft5eH]t_CWn| І/\ ʝ0\|Qהkƿ6Qy%?j[%rFc*J~K'V񧄣ͮhǭIG'ހArG ~+#Ŷ)gtˊ<r;ii9'8YZT: t_hFsk|F9p]Z_/@xCVi ۘ/UFi3$KϘPi~ ylZGIUZ<͔" (t guiF#)J{JH IC[R_&Qy2\1*:IÅX*Ů'1N)]i<4C1KH^`&YҭW,dϭ$ki ռz-gɵqx3aĤWpdIN-H'mim"M2"+L1ìw!#ҚV5'"ßY ]- f[pmv=VPsTuo#$VY"#R5u>jEMq1+=w%x}U[{3aȒT:q}r^ I&ytRK2Pf<=6d5yb3Lj\iZ7w!;6_]ɧ) SQ?>zJcYzr?됐yYQ%/T.Y@mU@qi0:4?6Q@n-2l LY4~բ\pW1# f8>T4쭆}2ʳ/$?}J% e{fG3̞C)ؑ*ЌY9ܘ̬_DFaݬu{q~ \x+2>M'\<؛~} E3|֙HZ~ n#b=Rΐ6.UL2a\_$\#|Fj12:N1Sٸ 9C$s~ٕ ]W csT5Vph9=^Z*}OVJ/v2g^bIJ$p9^M~]ד12Z|a:dRW3ODO &uoضv!W HOq` uFH<:Wɤ%?%|2S=*O0 #a;02FSV4$d'iz+_b~6䪲#obrEXɊ|amL';<1UٶxL}GIh'?i%MUo8MK Q/e#YQqM魅sFLTzx*{l =O4UZdFIE{oH;OceU6NV eKpmG:QWaG<|;1Ck'E)?w;fZZe1e!Pɶ`QJsP;SCgk9 UΏxuxsWi);rYG b2]]Vf$"u/h< Ws/Ldu=fjU :=>Ei.&C>c!=HuD!DKU.tAU%m+x)9" 5Pp0N%r%pE}i~~_H3[NvGĀzXKSP[KCwWs"i|DԫOW34fP5ΟxX{uV&ݵ] fOMdNl0ma G"fVzF| @__(Nx꯮oH<JS|r*ˁU=]f^iA \&wǡ"kbX8q#3`6#) hJϖ:m6P) A?_8ғGv hYbɮ1'L^ _ "G_G~X8!tyZ`oz!r*I<~tU{ Z먇tU﫴62=*?*u3firN׏_ހRVi4}qƥ.}E!/ $Sd)åtCW%J'4^mFTQcRug|dעt  ޅagbCW;>brw/kܰ'P/ǥ%ϡ딲sj;hJnmِ`ߠK7P5ҙ,uwHGde^;rlhIf2{(֊8⑗eA]x :6btAP4Sz=etI`B-fVMn-&rI<즲']ݹK`-˔c wmi,>AXs-I,+׊M7s) endstream endobj 110 0 obj << /Length1 1931 /Length2 14141 /Length3 0 /Length 15387 /Filter /FlateDecode >> stream x^zeT[6^\[pwwwR( Kšxq>=sod$+s>ik$cQ(1$mmXy @f'Bt2:x6Y3 OـQc;@TwʶN @wdcjnyWsw075scᏥ?ڢƍ,m]-?Ls d2ؚAjj)U% e5wjvv=@\DQ]ҤHiTL?$EԵ%Xp98Fߡ8Z@mdhh`hgW|fW[Kd+16 o778(I Z]'8@ <hn : cĜP'W袶'ӵwޛc8;:9m01Om)(HJ3ȿw {vlܜcOD\ `a0w{Ԏ'n''[wؖ66obncl'vL6 q,LANfr32cnf~o(oO;[; mnz{:]@'g?YFN>,Y1~_&_J>ƶ6Vc <{CP%leQw[hmn%mV;J͝G{_ؘZ ,l#꽵w/}",m@v :dL2OON :8 :hcsv:* 7`2_d7.lbdOݑ?Pn?w[&Y|wldoݑ^3q]?0QydVsri;SD`ۗp@QQ[7Ovn+{ٸw +H@n #[# ԆS%1z,:vB[ڲ Z0 m iclGdv /kTƮc<@9z!G$H+G`f B7&98J# :fm:~R4 0Ŏpxvmp:h"4|xfZr2OyRߟPVGq^"'c*؄57VQy=C=SκZ`y>/^pAi!w#Z]|)kn)DeA﫤qyI"<ВA oYk:h3 }ק( $i*}+A W /a-u'af<6+\<:OԚO˭~ zSwͻz.-GK'sBJv{[d+r*GQC8̸Cm`%=$m90(atNם+84z\^z?w[ޙ77ۓ<`7("4`6Ӻʻ. @H3ЌutŎz"# MŇ|Y%WS΢)06$KqGX27nD`Pps;4zL׮ 1UcF8 &wqIF*[~?V7venHZ0eӲ)[olCG|9h0=iZ;ɸPԄD6k/yjWbH)9[CG28 SV#Fug=8S[#=`xfx".@'5;h41>{|ڪW))s*נz3|=!sUAP`k+_f8\s $$Ȇ*39M08Ͱqd,nEi{k 􅔖$b鑀 y{z +e=`<{Պ .E3e1+TCovE굹VoΓ?ej`ѡ{{W̉ och_i(Z4V7g"ʖ3_dUЍD"D MN&W5&  BqWU?1̮ _wڶTRz: 2ve]ċ븖C<6(W(2/G6a!j7qVC.:vMjxq72Mx ^`L/tE?Ke.wy=j΢}Jx1#TCHFha/hjfQT[PLAZ2sњ*[~qn}$XO`!~Z'TT84Zezz%#16 ExܝMb6?:L?.>@/^8ؾg"ʹvB4GqPT05٪dV;p3؁"S˹Uyc'ѵGv$˕4S>wC=e0.[yLE&VƜ/ĈZԌn\ʤ0EZ8Wn!ԌԂ+ہ,NܵVAJ>Us^wgSkCvNhGY]@=7:Hs"Je,IZxM8"Ig$#g=FM?6^|ƌ_=_FF'<$<]dzb[;6Gî=7u@+6Q6S͞O~'lU ,YmD*ji:G#]c%{6Q)M:3ڨ7O(8b9s<=ɞ*l;ր:jl)eA>XRk~R) V,n2M-<WU=v޾͖E8cq$ܯ9] lx4X˦jfDEB{OPk2I@3DO'^1*_Ufv6#eȈKT>^ ;[L\%o'X,uy&f@F <y_> Zቄ$k\nOVhBRGg)lܴ lvZ:R} :rgI@I~EV} sg5L*փUTFZ`?6fPX|չ ŻfWӔa7Okd䍿ۀ~Y-ua(?uܤȮCs?h۹TDJšFX%VPBzLNr{)~jr- *16s>1^(3B!VX>KP'_A(5l-2-޺  I>dEyZvZ̰tl{ uC}4Q':Xzf̄H^մZf֧w?'17!V6~F+g3:?;RS׸ER ı[|D>[ ǻ;=7N`7a^ԫ绻ڧv6_ٱMΝ RҟN ü\d73bOYb{unĔd8_W}rt$p##Zi팾yC\}rqỳk9*L.D_+17 ֌H>G*.C[-t> %5;f (| 8|r Oh%ENܔ%&o2`/9G̏ik`}:/Vb{M7Tw?%-iNEobf7}qG#RaFnHCU@ddJd!(c=)u7JlӊfzY+jzn0ُeO"VT+r &^v< 3o |OOEK-cV%T#SCWklxgL:UU@*/!ic’^E (Ϙ~Hw{y NhͧؒT32U`bcnTM&M|x"I1\BE ²,^[}3I( $,Pt>}e'Ctiۖpɚd5t؅>3'2ޯqL0K4g* %rrj. 'p\GҊ~zAtsQw͜ϵf̼5O!d 4IoNأ1`QN>0n7M4Wa}a D~q΢mL믁U0xtΠ[_)$M\l&[ʼnbɤ9sֶ>zvBQt)c(PƉ&OAوT`_\?xhR&qJQ&BbCC~F`/7qQpnL)y"[Zw Pq+s[鉧OeS.׹e U}Jo7#%m3:|.91 NfQ/%"{&?uVvxRYz HyHW/YI2}{Q+YjAü̎2]Fc9esCu9 ?sZ^R5 T ]T6KdIQ}NUڢ~ٴyG둧6,i DŪ9#Q3ʞAC(K:ǰn;o10xV߼qVn{A7_whf+{ZO7kE[MGZYPQ|A j2_X5x]U.<--h OsX[QL­_&I#**$k]p %GƝ-t-O2ȁjOBf^ތ]#Hy]xDUxq$R<4|'Vm~NO*:!nme91)#[oKKJӿi+Sxx7PI'N "si1n%pu{nv<ȬMC>u'ICGyohM}HSTrd=?3؉:U/>gx1E޼ޭ.pY|*WoɼD=ثBϋ+-uV"3}?]| V:<6_O MRLAN8kқyuCdޚJ.>sVO,o˜/uH~@'_8vӻd]sKtsQY~ɑ_B댎ZߕGR+dx?#;WyHg*"N9YJVS~. ?ꀠdn:im19z,i"Kuڎ".suqȜ_!$TU]- & pd4j#1߻ \7vb<(oI$Gc-WM2Jbtl7 ܃Mٶb jȇ7lvBln>2)XZ6*5Ro-ht.D)- ۸7$uMsKFI/5v-/<95Y:/BopO1qxzrkdhZm3HHCS_ 5CS~v_R}0ҎO]U/o"q>Bo0+2L^ddj5!B.`=wRhZm­ o7 ےz)Fo4c7/#Sߛ`+Ѭ92Z.V>|o˝Bӭj=ՑU'KƐ4 f$ԃ19¶0Yv y{n9;,Ŋf2z;!oU h-BC>m]XϢ,`+ T>pWqR~mCYr.Ф9ݴQgyKJ%!G"lSэSt~ 8U]E~h&)a!tB-ZTIKoTLZXz9`QD*фÑpt 05-IÝ֨ Bjđ'WZ+*T͛8sĕaVP:ȤZYk yQ[px1(ɪknEF+H8Fi!'W-B g~`1|h1Et_`Cz?pZmКCuɏ-X@WW. MA OLQXff;Jue30W' bxnAF.&%ޭ8M3BnHJ?DS#E)XI'%zTXh%5Bܡ 3w6Eխ1i)9oИ&{,GM6zN=bCj>"΄OqFBٗ gBe:3 $i/C25 baI'^jbNYN/LkMINmVl2]sP\@[*&aհČ;PႵ}Ì/axQca_/6V8 W%Hu˝]O=${'dʘ Rf3ln2CR,%ROXo|srh=$7<=07de?K-(nz[Zau{} J==/vy䩨+PIɿ`"]8X/X =0,I%rq0( j|IA|4efXU u =cf5Aތqy&em,I/0OXfo`5䣟!9:b+meoVGTf3]VnJv2hҪǴIkfyG?#( .& ԰$o3_}f ]M1whX* =; rl?xf59Zo!eQU>FA+E5#*fUH\D}Jߝz'&ls xn JEYdzqv߆<_eݤlZ> \ ިQ AQ%r*cDbt,!|Z-eLʂ⑵W`9.1epu*Sx%Ս @l]H,@}YaqxA_xGkO<14Ì07Q#kC)_,YW|GzdЮ)HXZb0bӮB~cWZҧuӹ)AY2:3ݗjZ/ fA?CkP{H|dO.[=|*vn(]鱋Pa^rCvrClMox5JUG/;J̷i2d7-%1Fᐓ!ýRu|*6l Qͮ$p:E1k1u_Yh.DhF0` IQ+YqΠYi2]Q,&OR:lp8$|NMy8PK2ܮ}6[gp=mMn/f@ #^t~6eMϐWLjGW \f."Wx8HGps{%w#Q*wj[~3&[7 ̪ʎ<>WooQ̝EZ- o߸{#BFGZ垼2Wy -J?hYAP^ΆP[ZٶS!Eo1ܥ^U2R#;X jN:IGb?4滛+ZTq -]@Il,ˍߓvP ɡGm06E$P۬ϓOȈT6`坐 Td&qX2'|<%9?;ܝ|.aX!4hf^uXJR ϥݠ~%ŏÃ_ s-u` %o/˸Ic>pSLRM1X$%bW0#}cd}re>[#.G |aeOo fޔ!#lS {rT!{PM:;Jypvg۲k031rKv>^g5{czߚ MkJT4(` * ^Q#IzAÕV+ұUy=GQ6^eFtWw]p"gx'ѪoV9\_5}Ɔ xwlI;up6#sv8xȆ ckQ3jIңL ڋ^pC (^Z& { ! ԰in(Hg]N!*Ɖy,ץX-RxAl#ob4^Ws&VX.鐔}kK/?V:ޒ&/͙ȹj_l Bxk cFμ>Z"Z/"rW21L oYɟtV9?;uNvAIއ}&V0\Ec9 TM/gpQB( C3pS ,t$Ys:jh!PS ecX5B4ثr7  ]A^ $ [%͛ H\WK걐ݻ-6^6\{hċ-] ]*;yq&EwH:buSȇ٨MN0㖽sBF9-dKJ%k,mFp #L20A-_\ޟmZD{Z1`3w[.C|6Ln﹪- =.f 'G&, søvN+v-/6T2LW,N7vc8^P3\KÈP'i]\)1&u8s;Aβwlw%C֡p;golRo&[=,L)t6\;!-Nfhvؕ\|jAZRn!v m"CȜ|dz+lD!)űc8c\?G(@"/9AЧB%b02+ǓnIϞ /CqY8*+/im;( ݅wMTEkĭr ۛW5A?g t Q+ɶ걾rD'U*{uDv4w?tc-^a<65XUD80tIF1*)#%9iD:q&Jfs;llO,#SE:{lMJ;*ƈM$$⫺EJPsw"{;(;g;&űNVQIyI^\Y|YS^|~9Wc5m󻔖,Z7CPl,jK77D=ϨY;(O4><5xiYu~'4-O/l㤏ௗԩID`>˻݆iK&Lhe2@B%,iP@`HV 8?8ذQ $ m2j'H+ HU,x{,{;P8 2b HH4_Yk`f(D;:/*`yz4o \iSR(.OwW^FE:{unƆ-(^ݰoc_hqWlj!ʞR͉|\Qd>ͅ(F6f'tġ$ #.Ppr3N*EĒ3 -/+I*mzR$Āc찐7P\kO(s-{=ʹV:F/T: =d2JΡc03QPnp`0 u*8rL(jm伋YvgD2sJc(VC$HqA/gN 6M ~dEA̟L$7FBTAg'$Iz"LzcTMZ؀H%c)*I6Мx1JXś>8xIDQS pE&9N6nҺ̻@z""_@0xWCil0]N5+A<FeDVFA@;d+snO(64sʅnGNMɢg#AB ]}8ˮWHHO2pB4d;fEO^^|?b7Βg|6QT? E"rD`6}>Lt7d%8%ȄLif{r#h$%UѢV󸰂vd<u_{|>OE)c5K~7RCK9>rFIϣyJX8m|HAL[pҞv_oȿ'Y~Ьx1ͅ:g- k zh.Xa=Zџ}ud!p4]]}ѸeNqq3,F0%ºQd?.p?Rp"ӊȚ:͇g 4gQ%-V9y(Wu".Q#=i\_^]cSmbL}?SRbI!%!3o\E^fX_L;;?Moli~)U"*4c"(8W0#+c'ΉCMx M9|AF='CTFﻓDV;Z h5ǘ6xFN3F9[ziVР:oѤ'W;%ZdijJ_0h)l>-nk> Ea ʵ3\7 a2l=j jmƖqpbIXB1D:mUWƅ%0;2; ³tJ}]B 7Q}WD8 YC^(~r{^T'`/n|"aD(D{|2.]mRUү>\ZOEW$܇Mk"5 CLzI(`cpgښ܈yU0vR4ĢoKBד |$+H"mٜP]E7JCVs Cw2!D:MyW7w 5hT>YY@żv;-H8dL?A4g ګs=G8+mM!h!&|n?#)TG]>D\hOevWڞZV$ Sn=L,ĸ endstream endobj 112 0 obj << /Length1 1698 /Length2 21303 /Length3 0 /Length 22392 /Filter /FlateDecode >> stream x^eT[]6 ݂Kn ݊{"-P\{Κ9vFƦ$URe67J؃\YXxr*v U[c + OI)4vyll 31 O NZ3'@bdPwva41vPAV 퇋쌌#anjclc0I `!؃&@Kc[s9@ PWWQH(+2}Vuupw?XDU%b j@R]Udt`(}0./&$wVclT K^ffwww& Wg&{' &YZ9lW'-¸̀NK ge 9:I(ӇQ1m58-?rJJr;c+ d 20t1vqu#xͨ:9!*'@ؙ9KmMAV.F̭l;@1xc7/ ``8L3Y}ɓBo;5킙:(-C2 t=L-9Ŭvw:}́xogc7 _}`feA'4OiZڏ5z̀ .gG. W[[c; ^imlge;M߳F謜%\.s{']0;[yf0X:H;.S EdwdoԴ2s&.NV,L,,|o (%7#g#8>J{ޏ߱@S{/!i-a~EsP4F&[cWז.sr^^ocAgJ:_h7ɃDW" R95+fm1EX XŘ͞40YM[as˦ZGL}:0RCSnskU|2YasE.L>,aVKL1J^O-R 6|[?1]Yt5GzTk)4/^(Iԋr0M&1#)?\> &މ[)VHܦVTΫ%]MAĝ,(ٍu`uZrGUZ6W缑ܮE"Zn aPȻ~BfREc̕w2w>dNk3x[4 \$'%8SL0?%p%Uwd\O/7la ! ܣNP^9? 쏁?+k[ٔ>Q9Sm0,cV '&@7AA!'tFk ^FCҿd d\'nmZPN4[dRY12m1&F^fݱ^r*X,ׇpVֻ7^)u?P +s&X|*sͼi!Wt'g06^SR|8uZ)/Z;J sD>GuW1ѯE4Hy쀢*%WL*:$?)BWwd/uż*'\]P'^u(Ũ,L50Nȋpl3Z*K)W:U "oVe5geo z U+H6 %\˖KhC߼!P%;XBP[!vs0n>9jdiӢke:2?17(Eׁa0;So6ONAy3Uje@Pby2GqHwr&di'j7Ij]3xb%\@Q.'5?g{_8=fJzfhQ:8*Fv㬝 ;>SCzc`$,sK/55QtQ g$cFVN>J:' !ۂ{ŎmLbk`fHQHR[ֽ .r076J|-/E[ŗ/rȤ!׼]]T)qՖGs5#eX8OIދĉLqf|4!p5SV5>x8To4U\YTjDs1)J<͉>te]Bv[d!foms[8ԅ~|:24W *}6[ωݚ(Ǫ]>AAe!6o6)$%grW%^9mM@mɫ7-42d dg 1YB5Ps9 g ~> .6sZ fJeW{$mTP\ X5:̕og@Q昉 89p.nJ82P-|Hb n[{e SچEo6⟑f&}JCy:3mtUd5T2u}V<*b3?P̰vo¶C?A"9G_^ ;2\{5Yd|-Ds͞x|(] uR" (lƍrf%%(5tR~79Mv8j/CEO`X}Z%SoࢨU߹*p$>&7yBS\c~H q(UM=,?7`َJl较K]/t)@_1.( /gD{-/\cJsà>3vEZ(")ȑ\5%sپ:f Ï;ůYsdA˿~<ҵ`Lq VYB4?֢=\v5ni/Q,G{ QW>lk>eX`%doDy4;hD9czk4+OoA#s$<<ĹKj;W-.Qm*DVxs:4ZIbA}<+PzjpX:&txa,E߹0"cuZؼp okCXׅ Ct7[KWzxW"P|ǵ$;  b0aVN*fT$;1jcCy? m$O D7%%>EЗ"=hLf<1k'/~@֕%ZApIZC H30wIl(+ t杓)|z뜦;ZO=,F|M4MD=^LqgIߗuB-M NLa8L&> qWAժ̽ r@Bۆ,9p a]3gVyճ[rit!a]Yi "pIl1>F}*K *1'I<ЃDQ 餕+7 j0bJ! |M*ƒ)|~4YY݃೷A=Dql$ٗ RoO0y?pDir-&Ll;+ @6/|$cLjGL{A 3FB5ƽAVcR\bpPm_YeѾJH8'* z|[7CsFL0q!lC'؏;+NJϢAU _Chyg"畷U"8&~bj-B%U>De|_tǺ'dB_'1%:yEr(nhp)f!o+/tڤq*QPSxQ[ogm 5qډGT:KɩSqzZ8aQV"x0xz 2} ˓BܱvuaRge# O}tg=@8߸jq76Hnr5f; xivXۥ7[FN3 2lwF :)/5h%8YhhK}[bOuPaâжi i\4,XlH{tf\jBcIMҷt,~[;Y ^#HQԋ5tL Vy8g QVQo¬4 h :$+7ʊ0YȪ]]E¦y&21D c%mkg1ݓEw2X^=4pH;@nK i8am'O T w8{<-?EX( \Kld%r+jc/xO R#3CHɧ`8n jnYL9w;N`q`fN_Ju9{ XT^fT܌<5+GI=RJ6wB&tADpE9nyw8'<;JǛEʟ7*^Khk$Ub2$f~Q;^|m݅!gNt&Ddvq[s3Yud>uiꇖߌvԁUhim&:G*C29JA&!}oHLJ39 EK"U9W΂і8u/P`E/+dΞ)& f|TUdvHhT/[ͣFE3.?Ctu_uq=ufh挾G>vsm]H = ~빨WPfC!ڣC}PBY"g6p{ZuþO8Ҽ%㩚;lB]1S'E}'ݶv:P0n@v.ENM5 yg-nA7 "!d-6)M^gMv9dY}T:_pYM(J!Ӷa4և.[%wf_:0d9~;#Hb#}?L.|AJ-/sH&bt#Ӳ!λ;z(w|r4}|'+wj3{8^[_xggGD(47,):/;"Au-:y4V<ǿ3 :`ei.|5mrbԉ7}a\slUXa%.7Y{66" hrI Vo]@O T gh<&A3bfefɋSfu&Z(8h0b˗;fЄuc5@engulӰK=<& K$$%ď?vy KQFgm|̨I#%sZ{dBU2O<)g>WvޤUq}_!}\='.MBfI<`K-bUS~kAg6q茂v>iW^GNv Q\yFtYwz=#sӗ H%dC]pgx[*֪54: Sf/OfW/Oq Z=K~&`1S}q= um ~z~Xw< ԱU7-t d&.rZbQ.R4\,9\%\SHu95)z,ҁb/aVvWK0/PAekA?|DxlE:LΦ9?z\44c ']ߏySC.- dG4xIArP䄣IQ}hA$\~;vk<VPKi0v|yNЇ`aX3:GFh͢[#Xs.}~>d}3n?7q+'@8f(Er7' YۭBdD#,?q gl1F`"K9b4+iNrb5 2<<; ۑDfowD3jet(w-݉jT~<9|F)F;Jh@fI2w[)o_+uy5Vz1fqԭER=J)m|<3@(0=[B谼eZO":&;띸`?~_^tDzp5 Ҧx&SaBۘr?aֺnTm(>?%tw|&uUu]1+T-N&=JӉ/8GaDǗkU5)t~+d"Kϥ+HZ>`c"+k+_gZcOĠFA))L[剴lͳDhngɂ {#;"9 ~ _8a e$,"mWtPXZD,y++oUI\ޮH R\n橠@J'Hx47!bt;*iFEpҋ(g[-{",%߆TxUW;|4i`ݪ5}O`Ҙ48br(.$Zk JK)ɜ2n#k\i DRO l7E=>Fattau|t3lEwv(J NR[SNI94eQ[Y@zG) Ղh?Y$jxz*_2]]1shvO%Y/`ofDaSt;dˈY͢tayjqbWh$;Jv85MAѹ;NE\SκU]p]jdtgq {ɣ\<8ιҌWrտ)=Ƽ(Sx-48A'd9Sym NCiJPHYc< [~Bp9Lw|u: W!C %Dkz<ֶqmRF$%S `a3(Vb]VR+aFA1Q- ݂K:^Opք$T0ENkf{;|m@λvKNƓ.wh$ 9P3DFp$l4`-g%9YeB[c|vT.L?4߯uiPCAY_#<:d hzq&Mo0ilH%ɴS}ɠY2 u`𕚞]8G0x.J~>С 3zc6z_]T0IaIh J펆Dkӻ{cFÜ6.acr}Pcw7+W#¶IPz~G5lJԸ.fI$@2@ .RLۺoM(I#떽*ڱ35 :e a9*Q>~L62TY/oHR4)@Ī?1@$8b*K\,*$ hUxïpk.uX=@y0NO}P2P*s!7V}LgЊq P-,鶓$ k~PڷkP\zGq%DF&N)q|6}X/q q콙ם8]E8_F%0N5{"#oot]!;(ޥe%DH;Q^r !P?/ %慬VF†o ,`$SfvO/ fjUaioj3&wS%!sgCh=ZKlS.rL|sE7;#b:[._rwހrgc:u(TkJ` %)]X.UQ6^N8sf~ů$4 mׯhlF3p+3/n4w.])fu'^|Ȣkɷ‘X4GP(>+!q!DoXvf2-v(P6pw?+s͕-e-SaI./R>ޜ(vߑϸ~@~]&PG{+$[ޖ -OĞDy@M\ʹ"b^썟|?.N.G: GӲ;qgA1_B.HSM1!`Qf˼ O o+XM0V~`giO}8X ĸ 0b0۝NuG[.j2 8r8!wʪv5IqΌa>e=Vjxc ȯJ0X i4+'@yX]{0w2~_\uc^ !#K_ut.F. HŖޤ,D7M$(ϥn8h`*ѦUxo //awz_Q z3r?ڈKMਿ^WX;A~,HKr"!=8JR?a")NfD~:T1?Kyˬ: fpLOf.?>JB=%ɹ<HJ63p b4#`%/d ihi^_5Pؤ)I:P(LIb=lNaI8dxrFal 'ý6T;1shB(Ҕ'ճ5[ p$\,pp9$y=Aʚ?"q[u&:@vo+#AG6\m7#eEa)yѕG7Z7Iv]cGQ?@y-c* @v|df2{8R;vcVz6XpWy'`A˔ܡ^q@aASo"Jv!}sn[XBĘIW63ǔS{Oxl ־#lDS?m{.:6)ɕ s߸ppy r,Jo9q~]غB:ٸa;c1.%aۅa:Jfw?bNBdbƙN`WH|ܼ:jJ\[a [N !ZTY笳tl. _0$olҵkО\l R.ѷjd78)rKYh>?q͉D̊? Eh7lZA[ׯS~WS(mڜ59jXI\Nz+X=a7V6nJQ0-R@8bo\p6:F;  $u2dnj,Ef=-g =P]2)Ka$EŃ+yjq-Lvz0ɺu sxc]|&#]*<Sn3) N[ÞinL"0>-u{ܑ? !ꆊ7V5.\ e~\0GBF!1FB8j!?Qsc|pZODEƥmb/6ػqA`SgW="wT7/a܍u8z*D=KKnhH5KǻodlRm_ڢI(+uf2/؁UDb )՝q{Di}Ķ9\jΗgܢsĀ]\v.4LVM0HtC-#ýZS9F.U_rwjE9 J*v)MghS+NT"Y^Zn3W-SzQ!{FȴYgA1Dr.EF^؃ ZGT'+*Z4 ܭ/jЯIm25-9P7j6-B˟'l3v4:ȥA܂j!4G2 G'Co 3}0%)G"XdṈиd5%~)8^t+ ~I&uʬSIfxӞt)kH5Y|złXTpztb7o1uH9edH4CJ 0ʘ+xė3wXjMYlt9x끭fKF!6>Sl| ~ËCEj\z+?1i_HüaztRCtW^ he'&(x96~}*nEr<{f~LKEcszWoU?S Sw}>E0 &wW\,ދ{O+G##YK j >~uléŻBB[ݯ^S_1VKPuulj3;fLzh3"/z`<:OGNC6Ln4z< JjΫi,Òx8A a.aWӹżjK I$Ơqd}5s>heH$vw}z+qOe}zm3oPbO@L,` p,uj& گU,]481RHU;ZJs%3D6H2Ⱦ(R!Ά`[jmb[Orޔ,dg"q: g='a7>Bv,BLI;B}fi?Hw.,K]p4}?8TL.,bNs5aHpLhǘGb\~ -9Y,'ʼnu;f>xK7W=F\^]fל*2MӜ)cO\D Ґ6Q4lOFõ_g,63ȱ dj/;#%SA%y{EM06y!I 'nTt: P޼߰{!Ç~晲 |QéEmUn qF5$:WY癟L^w̱%8Vj0TPjӀ ]G8EP!T߻XX< F>]D?dÒ(%vYӟTnO+ zOxZP~ $.uz8APɦf >csf=;#?p2sij:0<4L)z5CNZ}8Z[7"l6,z?mU[ u)i:@fNJCy;{c9X+;Gi9 ;+řVDݷkSk837L"Ʀբ3v 4k9 OAFoD8lOUC(fr=ң;KNz!/s[`?7#查cx6,WoF¸*s)|6gάoBpH9kBwܮӲ)EBV~6@aB/-|.UၻwR=fafuږSSweamU*aa֍2f!S-@g) ?3gFe4QViGE1q?iq F`* fOrމ `7֞VeаQ V|mYI5GU_>^Ш- 2PUx#8iA30x3?gXt2uDYB[6#Gj1##i1۳12RSv6qu|b`̮GiR5w%Ssh'KWgF1#mߥP^}uB n)SY}g iy/=Xj'Ct%tp&Ĵa*VsBӶ闪襲_%"fpdϋtoUNz͡]Я?$IcHE&[j}p4!~[/!=̟C,/ѩ8z+-2B̟ou#<5bHB {!QPŵE,, ABwU+`)`HJ/pt_n!)?JaD=ro@{cmp!MsWikq]d8$-O"ŵW?uM}W &ǺXV{+t:GU> 5?i(%Yv G=Z{#߱<Ѳ- $r}*IJDR tHו@4_(_#[cVK2Rv ѴX"?Vb^XX-2@F: 3& k& =Poa"8v16xG%{%8'J+bx֓aO ,? ͣ`0ɛmKv`.EDT`򿶓4՚ƞnO~)dtM):gǤ<e7l ɉn7!ξf 4HU_u6C Yt~KӜ IK^HІ6U-]m'VKyܮXzgl0s)9V~'o :FƥfYqֽ _Ǐ[yy4N7Hqy[%.OHrP.{AtjeOx.o\/8;5S~"5adHpe X*j~Q;ڗޠ@18q^tOx!橧*f杩 E96##rژ:R5~9dZ߬;JP8`Jmt; :#7bX؈CSfsTLGǤԒWr1M464K;F70JD:),]]*iD7 %#4RL-( 9OQ>wϏoOߪ$v?jj|6.R}_xMAǒpRQQ(iW}.7UPՌ^ql8ݕymGZK T0ԙK]ܫސ +:i}:{21J0rDO U WNvB7}l-H'/O8˹%)xd's?;R}Ԫqca/;jKӸy dp<ϒ(rL#=6tHYYX}T]n4s#7ac R-0@x|60?#Gkkxsҕt]'֙rߺxU3ыw{ !>TEp.bFQ3ֲ#$ޒz4ғgE]icP⥷C0j*[܎Ws#{8 c MlW#C3rf^ UiW9Oإz(n-^উCި 4pLmܢÆƻC"qgxN4ݴW ڨL>?/lmm ޙ5V[M|Wqԋ(Bq@vĂN/7Z,}~ M J|N&^K#PF+KK1X'-1*c7$LLK3^Y}tL=l[*K[U#|b _oʌUSj0YGW3" |\Vu#KK5 U"KXtY=7d6jT` zcGx$}٧mkSl720QT&2)bB_6#qGʳc 9,[7.C^$CޙM%$>[$},4>,ViP-iCוXN ǖu/*Z9O&}wa9sn?i i[#Al&:j?7-1>۹ÊOPvN`nLiDy󮆣0a 1%Lf ؿ6;Tʋ5Q<"a8(`7hC-ADj+ KN]/~쬤X)`?& ƁOCjjFt=cY3|VqX:.8)9J&N&ˬՈ5oì~P+^+Q:dS)IK_0Vl^v8;T/uU#PK< >zk^uTFܦFp eYG%=iKOxa!U="m(Qaf&H(̯ֈ:d}FX?.&d_VY*C~evpH*HT4%Z }3K(5.-lU=,[\ \sC }TA@fԐ/@ƌ]4c"'\*N@> stream x^yeT\[5Kݽp(-@$8www{7P,{8*( wa`adɫ;03-\m,,̜bN@c+ jo5w5v23s#P@w t1Vt@. &f==D dea'ßLEߓڀܝmJ13@J+5`45j@-*@JEQ]I=KE$@ zڟj@{=@Aλpy 55m% ?g܀N?(ߑ = dW/; #ɂ/|jVw h 1f@'%n ge w m{o{л_'g ?X;+$3wۛ;:ҽͨ:9!&?BLo^dlwF ;K'/ #) <{y{w]<\OD\ `a0TL dgOĭrd?Ķ{_Λ:0[9e{@GԒOGGN(_oke|@v6v\\402uy' ][MM&}L@39jI*glge @Nvƶer)YZؿO*b}{ [R3N~=Vvlhjctv|_?$,)JW9 {S`dNV7;̀1hry8ANn $G``Riod/d[^Ꝑ[]ruGw&Ь!rl!;8пDw_Cq{by/o$9ݝ<~'o<,#WA>kh}ɥjZXEC]Gyx32ؘy,l,v5{g#ޙ? =s S?‰Rh Ɠr,A-D̉V|-RPQπ,"4_j7-kM)f~~"ùAY 4SY͉D#1֎Xֱ74R|h3,N xm m.o1ƿDi °ea:0vc =-q`Bcu|}8I ;km,SSKp`ӿNz[AxC' l0tZx7I0[أa=$yn8w! Lhz+k$ e6e 8|PKRg阅? .H-T)k_)PՔVxlP%TG]cΑ<9~L3k*[jo?R^-0Jpy8 >/ e \44II1Q.6>re!\ 6%|Iٔ8 6gX=`ʙ3:9^``{3a-f 'ߔqIybe`v%˹_h>D |'0$*„ϱW! Qp~/AAѐ-sOFR Eg \L0дYp]Fj8vПOMBm%^nrwY mRػOzlVx3kZЖcd3o#D fxoJVw|ĢVfEysQDU+9ugڣB,׏.\~Pu>m& '7I@t_Pċ.0\vt^6ZDC)O'6jVq{eY 1G^3ib&;Dd{0~#GX֫ܞܟG7|!лYi@"}ܳoğkL䢡r򈘓g| f;'nV$d``78IT|kˠS/SFO5ib!Ke :0¨#HsJPDO&rdH*I ^]'[I`#2&7Urݼ)iXzJrlK:+EɷL^NL0^cx \WBVRWŔt rc[vU5f5ǧY"7YQb<*ou[j$Wolt5^lHfir镫ϕx%z7)=Dх4CZ0y/5-n7 - +N. ܸ@}.ZU>k{:׌o*s Wa2\/yzo.|hmذ.Az5$|Uv,;~ڙyDl~¥;>ȟt Z87eG!d疤 !)Gh1#(eR7A>eyCWBcV{y P 1WoMI,fĪj z4Cf9Ze ЛTDs^.tI("Aqfeϳ^;Mz7ΡɄPf'Ԓޗ񪠖=>/9N * tQnu0JsVYjaQD*U.Nme}\EBҶt Ul??f8}]m!7ׄnhZqMӯPe*Kk^qhf;G(Ůܳ.sM2(#0vA'Ǎɇ9edbs4KMʏzmԎyҐhղj_&W  :/@0ܗ{稁9b_dVW, k1=m`XiNk͑E,h 1H{F"2M?] 7W'WDMmlr,PSj#On,| `hKt_!VH[_Inz{do?2,k)ď m.f&{6ji#HO ݸø^7MDj*~j2PvŋϺ,ٿVryFό9;!T\1IeI_dl&z DnI6[cTM)iڈ5)#^`_(1㘼` r<Z{nW,٪ԷŻ==ڼᰂ[Z*^CzMjeS`EQ޺-7 qw'GjSF}Y֫T#Um+!4|TLmEv=m,}(V煹&\ H[*yu;.bô۟M+it8#U]-yE?_u1$7LXpϩ h1 VU5[bz=T]69ӳC(N@S.d[^oᵶiC}'BRRΦq|S/KGq#lD}}kP$Vf\-%(9B |qZ?PxhxX(D5կ_&ŴD#Fv>*j)8@EyԓYvoF\ʹ&xoܢsK=5+8*I5NfܨVK@`ß'6W ʐӍ=qOOh; ~ l!FXND4MC87t{F/h?'hU] ųF,Y%xӴ$~~ N}V\,9Jp<Xу,`#B`M'kXsoX2E8Y 5JVA'}nC27QD L ֿ2B6āeJE-B(*f%޿C'7 5LUm`vCH2*MD$B;S>+iv JM椶/;z}Y0y7 ^SE"AcFYcF`$KFMGA!=el߫{'f7*pnE6jq|@J+"O0& QR4>ȷq/eIQV,䏊RR_p'V; ׏Oj0 Z;K6;wcDA|hj:h] "A=%(I@=RMyBfAJJ0dg} s[熥iX5EtY{/+Z@m5vDfjW4.m0賤'I4y>e?Ԫy,KD=K{^jkΖacq{ 2IWy+c 8NZ&0Y|jSÐ7xr 8ò+u;=(Md0q`Pch̢ (!Vu\JK|`t-dkY* 2?£돶.\ _b7j\@EP8|Bfz jkV=ĀroA%#^.^<{pjOdys"N39$`N+6 XCP@y)FK0Dʫc ʫ_<8ćRr[esCž_=.E;.3 PcGTr5,>d4F V Q0PS9"Ф廀xt'A;gZVtt\ # ENg|!տDrwh[H̃mM^:8h[o! Hbk"p C̞_Ec䙐)Y7СY^uz8O|*P];2B% 32>։l=`RlaKxzKdo>)oG>pfy<c{ j ^n{瓡3'_9v: .H!ͧO llqȖve:*mҚ}aMJkx&u!5t9<"9tOab8؜2 H*tMǵ?dBo:m₶ )T$_Onۙ%ʃZ{AU VEp[] JgԴI9m' /ː{?͕Hey^jB[T:pS?+bTm;OwR ^| @ ;l``zbvi) Jf8rJ= Mά 'dnep>c7u+CϺ6l},݀`(z u1p^ZGRFZn;?^f3ym2vi%5tQF+MD#]( >xB).3d)[/ Fќ(w; W=d$j W?ƊtJ! '+miࡄ`UoZ=Br'RO$G*tDY:ZA钫')%'Kqq׼lG9:QOt .3ÝB*vn;.-CoRMmm*= 0%8wYvޠU8)' aR۫#\c=6̪@ lgXq%E8‡MFYE+fBQQM{8@㡼Wɥ[bG|GW.Ric,NE ɱjV Oǡ9;tY"/ M;-C $]j#\y閺7-׫EBXI&zvbTHKA0Qr5(~W|5iD'^ilF 4l̗mŰ7cՇ2>)RH}csVۙu݇LU 'Sd~J&^^s3]JT'5J`^DJdUl>sB(֊Z:0Bq9@[拃DqT(o19"E$g+6qs$DD;\uyH}˘Dۥ1jo2:i{MĦJ;9oj#qgyCYʞΉ!\ Yḩ-sWX?8_^CPҴ&Vͮk¿}>:a.D[%NHLӯ*}=(s ŪwT 9L( /29ՙ=WvUS|_ 4?V1D~*ȎbbΪV0V--]nT)wC"akH3oqߝ<( ˈTw}vDm+Q.A~Ogv㯈s3RaRS\h7 `2n2^>!QE u!, ׄ+<ӐΪy;z#j??0 kq" q+[Ho࡮.t>P fqV@'mbpvTN,n) g1@|4}Kh3WFb3Rxк\,W-U?14*`$zi9 >(|p=C (H,H4/{"į? <1k6+)PM, ~oIO;7t?)(;<9|8UQfwK!y9~?_f9mrf:E2T w1 ye Zf]hR)Ϣ3?@6#Zg\@2I!1QF&IBf'21QÃ}f-QJ "gTF 3zl~ӉO,iĘFfb`~j>+!Xw%T'&7xYW^֫k[)oo"mwM,dt8aUߌCф{kv־<?H;ɀI'y'Ze.q]fԎVtk`Uk5!!H~[a p޹Ο\7 .|L parmp~i\" ,] jV] BFP. ڦu6xa Ҩ¬Ί7arC:GRo!ǚI%P#G= lL]T2\m KEN:[U?el "L*b0O;'>@ULt(m =t+ȅ`<0KQ"=_+#J>>:n3-$Z> `sXϴCb3#tI@ˏtލ{ƥL {83yA,)hQttv->y tPPr,/5pM"_ʩ 6sLpuz-D/> O >#>NS'u@pѥӇ+x:7wQv(Si9!!\9[yr'U~~(fzN)>O?Xâw&MlH%(%-Z0ò=(?u(cL>; uw;<(C J+h-AAIM7/d0?K1@P9"SPm8@{69whQ߂f -2 /ɱ =;̢jw\6kLzʓX ލ+ŷfRJQg''nXU7L/s!dDT ᲌J0x[HjL8"bs"GڵFgVeP|MS 'jMdq} Z%L?,"cdaf9>d7,ue-_{f:PSjaQoniKO]/ʱ.ɴdnQ \ga0{|IkKs?{&PtH7ʄjwwviJ]OrFi k4ˢ\UmJP}g(zg#x#Mtd~q(=K]/xZQ$.+(OgGC Ϧ-[*Ex|+ْJ@Of[^L{T*(3] '|OϺ}M *0 ~Iᑂ\6SMD!/Kl)i`kod Vlea᫆$;SFmkNc񱰂T{8_2g#|͢v%=O8WʰnlJjˊPYfiB6$Vi]I6~J=oOZ')jE k8Dnv :+PBFZiIx,XC aR^r7\tBNH"mf6wA('1+?IÐ&&V2L+58sqGL  d3_ScfwoN S=a+B(ʩ.xG GמmBFHbg:qz!@9hn|dq }-:|GxG5?G^:+(3V Vꕣ"j(vb5O*|/ mJ=xN6`xwAMh_qʜ)GfjLܭtn b, AFK/cGo1}] [N%6[|Zd=v"KbXN־x΄=,u{5xXҁh+G.2q~ D.49X 7hX̓{~`]PS}Y?f}غ8^jF|E1ɸs%p1,,hDXQ;(~Ek*w-Ԑ'y:gdMN$JI4h%px\JBOeB1$#P39ٚ! (*8;[_mEw՚c~?Ӏ>9;kVaC 8L 3F+?RnI 6:0$`Kc$ Pd7p+vzTC%xבF~]pYO[E(ʋgȦ pt@lSl|ѝKEī׊eAgrE9l[_ 'jFON]ڽ%v$O>1qc‰3t@ŚSA9i—C?9- DGQJ2GAa"NROjͿgOS7\WQɮX]mxynag a+C|vB6o\,ZE?)~9ק|_qE &^{(߳W0jbe%a bVp2U+ҟq 4Kh;#uSZXe!Kl..|UeIۘ yH=&*J*.!dunO~i|Y&te^QɷrTܳa3ugʧ;WKu-MNk{_Da<)!1y=noW bDۊX*(Ҋst ؤ)c Ƣ; [l>,*~s cH`Q7rnh-fUEadƜ#G5N~T!.98զf ;Nn_U9Q4X|L'`=dGKQxqwԊhˠ˚wx.)^raGΈW%ӵyPH~A Fb`y;/?-]-`YdKW f&^/;Mٜa [YwE EB)3"7OV6FIoxb!~V5|1z `A'A[8Eof'8a()).60yIk\s8>&UOҎF1p>dU#5̵xb ;IT=,;HUKqH"߰P>%nƊl<y{C3%i_B|sr@kJIfl&P繊pweP0L3J&PZ (uw"ބߪkhY1$etRp12(ʼpc`xSdا״v3"T?"vMH1P/g;M*mUG !xaW-$حB%/yWZ%"Pu{,f6<[ n "נ8nGL]qn(7jF˶t$*ʗ3^:`~&VS;QrP'5f^4O۫؞xbY;b {esH͏اʂvʂmW%mӤMvkP{$2 :%Na.{YIȼ=aso;F[E׼0@$ ؽViF2z^|@,F= a-BQ65Lշ,ejl,/50acCuTQ5aRD] +dW՘ ] 3`^s 1:'Giq%~UmZϠ$lZå%'{ 7Doq'?"£~Jr'xzƨ`8r k5\+N!2%k)ΐ­ 'O6 ye@,5SXgf0b(9bcJt:k2QFV~[뗊sBSFuq"m=4lS0\}HOϑ{wґBRh¿Y2$~С+"jHP7m(pAf4f킺M^ײ4Pn%57YPP.gɼF=rY]U;o?o!]JwRo9"/KCv'Cܨ:A,C=vb%cg>=&tkWtNXqY+MƏљQ4+z*P9,4!c(]ʨNk_h|~bpy:懒߃rHڴ4b.sPύt H}ΚjsMw&?rOiAp}_83M2G>edd'KMPE`~.e8$y`UQ]U)$̜BŇ2rAOEL 잌qvjVs-,^@j9bDVګJ,\7F]r+hgњA_(|BguE))h-ikc|80 U~z&6Vc Yik 6H?6O8 S%-D YH梆JCiZ|侄>pB]~[ьŬWH^Qi#+_:sdxy:L)UR t5bPzܠ!.S\B~&ywf-‰떑.aZ}c īA/0?jg#υŎ4RΜ \wF"8;t!/j.e غY ^MRQݭwzQ憍`~o? ՘J{?M"үHdCƘO(TftiAgbϱf_>dCd՟LkZj`Xt2=,\v=2y-^ïsɺ> >hx%&bPmGq,yGMP1FׁK$Kd%/}A#A|/Ó%Ъj]י|zz}z O)]6V3S?1JA> m9RmDF 9'0-Ȉsvd%pi|\q.*VnE HlB1 ;|TaY4fW 2Wb÷aaq:uX9Tzޢ]ݐ(2SCGZc-<)"~Rԥ>16Rs%g$ϼz@*Db}# )PQVjCZ+ѴAN^w%U%3vR&P&oer $JC[\4x75kK" O0mJ@ *J=N:Ϻ 1 bA,D9#d*>ZM](,e+8a 0 ^b|萓쉹up{ tR)".s2hF"oo@EӋCymlwUĮ*y)>϶ՄUP7M n64| .:ЮbV= {X΋icw:;v"@/Y${k[[qؽ~x)G:}Sx)=\cf4s8ƔUuK_$VƲB!׽ #ɯԞ&hnOqh AFVgIJ/3kD㚻P4_vK6z‚v܌xHđȚ⩭.:[rf$9&*fꉎ^icɩ Ub$]X{5~?XҿiVgIVx0K:"·_1sD%?ytW#μhk͡[ .p܄(Ne# szx)yGꪵ[Ej[}qWppw=tv@hr9#hKi,>xu`y#FaUʁ&g)8K]fsB i)ˢ(B =p4F+b\XK6x_qq1SwJb.9zbٻX| !8*l1\B֜shlvKoL/BԃxҿݤiI25ґ)W VS}![sac˭ %١sx2]0a6rUa_\غRӮ\fщ.((ܨ"C/-v{0@]\OS&s`-):˷ԤMN ,e8z7/D]&XwAe[TD=GEr)S-W;qo3|&.$+Gfdž*cF tq=yg i~pFjgx;y'V֚5, xzl*K$kfvt 3{ ~/ N!G+QiՓ+M.:P7xo[Lj4Z8b731&^j}@>BV^񎿆h?ѪFU&\qXOkd3%=1etWm+ 1pyTf~Ҥ˥ٶ<~kCQKU %9 (Cj6b@k:|9#gjH_J}h=3s8oP@Tb\Şs endstream endobj 116 0 obj << /Length1 1700 /Length2 9108 /Length3 0 /Length 10247 /Filter /FlateDecode >> stream x^yuX>Ғ;St l. TPRNi~;v<{ގZS]jB`\"U5 Y]dbtpsps `800" D<<K2tpq a@ӣ`P n u 5b~ :x8m`O9xٟ2=EKs<&9ۂRjuۣ `B jtu z:u\NEFGWO ++b(> 'k6ΣSkM9nΧ5 ';P+'&A͍upӟ u<ޝ@v?@,AN OP[ Π y_FG(4)_goelbU55U@0!0 Y2  TC&'wǕycpll ( s+#`=ug`.# jGt 0w|R"!.0둥rKcOɂqA<8k[ V`.z HI :k 9@6OpI~`s@7 /g+srx l{`ɮR?voӿgN X08աG:0ԒwSڃ?݀`;u><`R:a;˃A`_N%Rk;Q=#ӹ`~o)L#>!-SAGZ!?y'j Xx@''# x^܏t =\`>+V 8eTINHBNJ6HB|NJ/Ai|p_sڂ0uQœF\\\܏׿LV3?^||v^n>7?#"|>CG1%?7rY`ZMi )+*G8 7PGOj'#]I7e0BUEL|!Av-Z@_5_2l9ќWzjs~4̻9KdƷRFdۻy&&.!p78vMu bR,oCFQz+Lmx(TSDp9L;B Pnf:Gv\,efj7b 4W7"6{A'ފd6 wkR ,ean34sT}2qm?Ҕ'^ؽׁ)fՌF@TH ̈o(X# 8{f@7 yig <1Xrwc)IF)p*{ƅذwFD^֪J??\az d.ӹHO]`%6^8 -8Mi1/Nϑo ~~ReN[vY݆Ĩ"~]@ӹ,`y~g>>;Aza {\VjK_dwA!ioR7ZY(NE|9=SA'CArqJ}BFw/bc5/9Bk+2֯-渑`hA Zti^bz0)QᨏZ >#ԼL7mFpmH?@[ 2U:t7Ӛ6&RȐx@$j=%]E-nMX2T_Znxi⠍3L]/e}cW5FY^H2`mQՓiaed[KEBDF,x4E ȅ߬+s?A$7vL`]9Y+=D-}1Qg@D _[0oXNBbreP5hXBS㬊 Vc HݮmP'75Dgl %&_jR SCō}9δ-HK@?EvX5~c=306q3[3b":X+Zrj"1\mă 4t+&bo`avvqҸeO}=ggbgԂ?o}oaR%VJ+pέ)Ue)3yDN.<;v-W۸aTrW6;4t;~ B+t1uYb(x<88xp@ ]:f*$4y{ْ<+haR!c 79qe_ܣ%$K3+\@VyY?֠3p  9r&@ eb6LahpҼ*t5H-)#s/a߲+tRV8ڐBBsČ!Gф܋=1ِUY3ʠ"h%UW >'ULŵƢ?f8#.ɑ{}t PU,u\Seոp{ra !ɷ%|^q΋Jorl N:ʖM/ӟ.)ԔaW|(kJJ_{HlD?[߿9R&,ݤcl Q- 64ɋ)q 2-nMC+]CÖ2ѐ?jB,U C57Xt?_c?r(nUk |ScGқ] xxOZƝGS^\t傗n-Mݖ~GPZ:^!AcgA*)t+_4B,G3KC9dhA/ 8u_,r9~2h8 \uw9A W{CMBk)o3"ͼ=sh̽3r_š0I͋}]-#jU'EEyey6kIc_A](wl͆ңQ9%9Fnޮ)nδ#%u)ǥ!2:jX% uKec ,-csKiCr?L$0)%=%g2 V$`["P9D 6ͮ`.ֶgci1Lˢ`%)"5]X738ޝ)ר]Ӊќ+{KK& 5Qw ))M ¶L/lP}xy˙Up5"/׃+Ҿ_>"innf1a_PټSU ϩx'>̲qQ |zzu4=$IZtnE(tr:3cX`hF+AWfU6vc*|&J֖jw-q+ {ӘP5K8ÝN~8wb<&yj_s=u $ iAr7#b4_V^5^REL:n2v2KPNR^LNI '!Q;N$a@UmJۊSCPtdƌL&P̸0j=~yr%ςOt|eHG=Z~q{)#XF-"#DKKM:b.LԬFW.=3_B&e=_̓E!7gU׺2 WEAflR m+ȴܺv;A&lg>.pi]%@a|79VpմɨpVP`ԝe1eXEFXϦׁ ~ѤnW0Sw.8p.y?JkB孢(5sPpr'OWL Yak&;^/_}(LܬD=%_-Nc Ws]kIF5ܷ 7ƍ ܞh~ǩsGN}TTPr )BjskDaDQG(iܕnOhs}o"GC"!0eGI2oӞ!(h$6|JA[7Ix V6r1 Iqn,ɢ8-Lטr)Km\tE!Qq˥yBqV]pގ">ɡG9$2Y d`_돟cIm#>C@w8cHΟ#wtk9#Rga0 9UQv]+ޏyƙ*RntӒ=WCLLJP/M}ڲi ?K𰠴 ^ AK[E ׂ>CXݯ Ut0i'1cpyS<ߍD)5pb+okB{Hz&!O֗>QY5dR- ބa+w~ ^X'PQpMEQyR8Jf;yGM!MVIT!u2#|r3>a "[\,? w&:0)T8YW5d`ޱħTJ+ƿlRo?q'.e5@roR KtJ(P]M#L,@͔OÏ_κ+ZSzuD_H,k%>rݐq@Çۇ䷍5 :s=B_@7$ҹ=aתK%_4}MV]:/yffB5t~<>򺫬$VB1ǎ팊oEϨvhDU>g,@h6yR^+k:&Iuq61/?-Y!ZaJܳf#>JA֪Fv &+5ZS69Hr!n Zxk\O,te3t]EYzq"bH;Et0$(e#ϗ̗=3M7JYHOJ1{[7W| ;LxU3(rJ|%a tt4 ÿ.} c8۽H p;Y ۉuoM!m Qn&7W}<`wIeū,yZi|y譚j89?&*/͐lظ yf9ot׏N( QsbiD. tO\5{)Ll/$紧FhЩZr4{YÝ,p)4[=IY}\7&%ŀ@j2ċo#~%wV?dM!aq204iKMˀj(FAi>oy/SfqptK(Vsi⑺ %%|mjR?.o7My!ty䯄_E[ X%WɈv3nKTʶ#FtM59,x@6;p`MOӼ5Īsx!O\_%َSlњV!PDOt󎛨m(/ڈ~%Qs-^IĦrX Z-pBN$]̿w)0M|!vŗ n˜b#?bſ>=K<3g]w|x< ~ml8fȉ kB`GWXqY;kk@KK>`VYH |OZ+g|٪>{E4Z{ٕ$OFy_(trmć$v[Ȉ3UnǓ49u-EO^+v~CEGq;i;^h5-4޿>9 F!Z*yBR˥Wpը2s!Pc"DQ6n7>^1ɟj3.BVKusAjӗl9ʭSI8\v_e7t/Ņ8[$L$}Zq5[/c̐WVv_T˶{ǮIX~{OM 6roH(Ad72B樂}8YJWM|,6+Kd*bQŊ1Z ͔JW AF2ݶ/|m3g9a ؇DbcS04/㚍+ ?/x Q]X`D9<<@ĊAե54#(-%2-Sb& /xEŷnN=kMA&L]z/'qO ސ}'fN&p;&?lL<2j 1_S R q@وnF*^EA:KXp!/n,DVzM&$%:ÑT/q4yZq:k˸;H/{)0B؅wTD[2L4!R&p)(,(merkqJwi))}Ґ ZM?!QsR@0Y\Xs YΦP4,*cmAƘцj%=ZJ1;ՎvKy |ic)Q9.^Ǐ+w}_gj^ Pՠg*T_CYT ^޶Oq1|9&;wb͞\^!:{";>!|kD8g% 7tAr 'Rr:% _!pܐ5f/ZqMSԾ8 bL2u8Lr䐚sVqZK~)dުVOOC5ػV 9Xr(To]H辷:fja<A}Ť$yoC孮?"(j9qA.B7wczsv.8I_9~!F.{pƘ8^\IiXHo|YSUڼ1Ƹ5—Ohһ̭Ѩq-Sg@vak MxTlMKDgKs-g bйhkWm;i,/6; \rm6=\VҨ^= 35'cF~W*^8-rkL9-o)~V4[Y+Ӿ%>ΑsΚۜM@Nl=a(eB5)-(XS$M>c2ő2R~^%GCW3C.CDX2u?ծ8ݱa N zg(_٭+j}JMR)۸/ EOKΦ}yTi="0*:j"ΐDHI B I6Lp{o~[^ ED A{ hzhB0FX1HocĎT1썥PD𤺗X5#E6xE?O~]SM|vj8r` !>TCh+N32gݸs QInREF;mB!Ǹ'x>'W-?;X3LCs$`bP ϷlQ|λ, \^I|k_4VlAFa9቞) '>sJ;.F c-H2%mRYyY7dQuR01/ kfd;/#>iP 9Z"|^Vn_mMTJ7ʇݥP6RI&) ;(Epɸ5%(qrkFM$ րkXK,/"w?_+'N2KjƷF ׫Vӏ#+ana Ul}"rB,&f_$~n\ZGdsⲟ-ݰbfUeyT>mո ܖDO2oҐ ZnK8o4ߋ}2cdDw$i{ !${yaQĄK1 })X$ 1Rh}{0EVa~g ,E׭5sd!+\ݨ_k[ž$C6.=/ G(@`NN8bLE "5٥s"_Qtk3~+a gTdsYߵ̂GG)![>ο!؍濐L`b*pCIdP8> stream x^eT[ӸCpwҸ;Ip%@pwwwz9̙{ł)}vս^ %UaS{c  #3/@N^ΙA GA!4r3rXYL2FvFNVffn8 $5{.Fj@_@مC 3|;x:Y['oƏ&֖? BKhadc7*IEu%UƏNETUM] &&j$UU j?y> ˋ i+09tr83?>\͜mJpqqebrwwg4wuvaw2gt3UW;Sw?W498I(Ӈ> 'g X9+$5sٙ|: }M&:9!/ӟz_E?Nkc7_6}l{;gKg#f6?ܙ_2yai qU5γc_ 9,<.3` |burwd﮶wٟ:0Y:~]#ab'_}GGJ>^3#g pqrx ?vfLkFi>` 4cRwh&rI(kddki_fc X:KXzM,]L,߇v1hxa;s}%R3C6}p,,, ;> fKߟ! `R+9`d /.6z!&F;{ -rrF\&7I`778?og>2q|Lm>/vqM>&ff XYL"p~6"0_eah?~,,LC?G^y݀?H?O8֏ܞT_J_[[fUuqjZX3#G?J@϶""^ ֏v`dߋu1pl]4[7 Jk -/,a<ВIXʜl& 4gQIؕjQcڼ$WMܚ* # i0f/wjejMh%waGN%-o]-t/eipAXD_uym+D;cX5"Ӆ ]"DQ7Јa=+ m (ZPL3,&#g؋h'ӥib+ӆ,J6;Zݞ" Ƣz] QX湬ɕVO®zB~اv2Fņ ա00,"G(mʭdKSG/ CxıO w7"8aQό5O;,* wlr₯kMrV.WȯOo-}?L\nj3wPU{d-쏧UсᩈڃTxQĞH'Κs*9 skVO; EྨA [f*?f#}kZA~;֜:FM6,zx:%vkKr &u.>·L[mSnzhZp%k*s6ILuzOu\(ԆdW9l<e>5+|)R5gXh継'|8KQ~J'D3'HW&y |9$"Ê Ujv%`LߞXaL,o/nrۣesL:wMg6ZZ?[艎ZV({"&Z_8\d<ݐnΓ"3;" Ne,,4պz0ewuyWy?,H~KO|AVv}FgMPȉ߹S k J@N[q֫ֈ(!M`+%7N?vG H_(= VLSb\ #iW̼tRpn9T˥::P?k:AFVwIOѨ~~:dtΊ:"eCۍ׈)?WN5 ZW-u gn/Q!77ggkկቇ]*ns)R.yvME+nऄ/{%KMX _e4LbJ3j*z=*0 4:yQR"=>㐫j"k8~驿̤ksGݦwN>CB}S,oYPn'&S^T+bBt' d-\DqZ 3:iZJ?'5۱N)sAqⲱtfim VE ;_ο3Z1ayF\b_DS1( {@x~3n@fWJB瓿jTB3oi*Ӷ/Wm&Ezx歀?capdLsR1~C]-o^ %RzZ_ex,>ȧlq({ЮfȪvA Z \.)J9v]Vfйx/T=5a{؝"c&P/QĜP־tqf怷zf݁="!]{6gQ@F/jAoZ"ɴ$~ʞ&Ibi|jYkX~8 g!}jӂokm&8l.RB"$^+#ZAǣu[4eQʏ*-ȚR!) S PKhcM_t:WVEuT#2-fCCVT%3B @WPy`.['ʊB2R6 1͎}^%ǝ !W Ķj}U-$C7DsTP5SHi1% SuKX'.' {Şv<;W퓱`MEܹ< v٩ SC0Uy MI@+,)r nJckmAS2b)d`?9Ɨ_0J{Ӛ] C!1;EVQ)`PdJiRV' BF`v"P45N7A%-;ؾJ /28| i>Z}t1`2&%ҭV\=6L$\綨Gk6)EVƶȗWc9X|NqWK-5F z熥$jAAY:0HFamh<;rrqIhsSK^EbK:|q"^68k'v sNVFui@ 3jCŃ! զ j}k)vTM(TypgTy kz"!>c [g)Rs [ o^AX3S.pX@!["6B"ld )%̷lp#C%*(Z ^#zQ7NF5$ߺgxuQBtXk SW3tNl.V`JeϿ%ۼ%gx&օN0^4Ns,lY[ ηC~o>j^,̟QmkBЮ$ fz oP/eq*aMnssoNF3Hd Jf59U55HUjq{F1Wo[6Et}n dJibSKԹM,sFeړ)αjP<N`3YųHor޻iGϽБ&YAA8 Kr+K)JI:qhzm7сo9>afinT&fm%nK%yEţ~ h=O,oda[|eןqQSyt"}I+26 ?ӋvP/⵹13#zSR+n"JSa#haGgw<,\/ˏ\^$E0~bY+7?pc5*;ʐ|#.^oe0(L9AF|է݅DXr@굠10as0(A|^|bq V'Qu@~~# 7UpQhw`ү8bM!)wpG۟xIf;Շ]Fvĺ1gf߷^Ak*ĵf3KL-*(gў wcIxnp'Z'W}D :4jivV9QmP~bOO^0 |+/YU_oN#!()/p\w!]zH8)f$ch}NF@e(UzcXRw5{|Y[T&&s[g1Nh9Y֋l~~O񱣫MYJ`i}S9WZTtPy h 67YD /Jwd| yef^/6zK{er3D9dMDHgXX:Rh AiiT 9e>9~xڢLѪw~k?W-&FGU['K+;S*7qH`#g6# 6( @f) erRxwv9d` yo0y$އFO.۲R?A M&~2r'!Ed㔁o͹bWTP\;<8[>So4}gcc@ m L5w[M7՝ H'X7~ GUXtG!2jP 8h 1kގᒐU8t":2^\k0 H@,sr.PAKP_ŅG p xNDF/ڧ{Uٱ79o[#[l;sk `\ow& 5ᷥo6(Op8}/d3KɗMs*Bt.)8h_֓Pp3S^=";C-8N|Ax%0,Ilw$ʓvܮ0Ypw" !qCyS [~Z-ho{0ẖTy0ju cɶ4]ǣ{l|F "?) w>Ӈ:N_Mxw~Pt˷r0$ilzM/NxMp'Ar=| >Kq#Z0}9_7ܣrZj6J ^/bWA 9tN6,'ď]`Ds .潢Q Q@tKA&ev ?O6DtfYJޛ[ܛ#xQUy^iGڃ|cBe>"9{RD\ein[E|Ԛ(Ť503F@W'J P],}gd2OVV?Cj3?*bF1a#qѮq٬8r%ZCS{"F غlOcmU8.;T삞5Їư]BjF$ KwE'cfɓ QmfyIF3Yˀ4@ɧqqOn:Yybk? Hn0q)Rޚ-s~ Q0A+؎ ik '{b*=e18[D8ޯ]TbSJU+~qDFt(.~ -_.p#@Vo!tmJ?Ӟ ䷯t̜oTU֍rs97AYa W/WC'ˆ|ر1I"A1J;!S gdWǗDdFEJ:6osZa0߭ſBV]Hm@TE&6H '))ʂ;B&x"H4 !Ψ[PdIN.?MDg^w#eˌyj@;6D2n<9ttx^y$1^\9*$"ͥb}0awG!о=AGZFVtBmhcc5W/C.˖[yYaDK$Ŝ6Y`/z[3¯f eZƴ#!2'_DlM{p2ǎ:%ڋMfBj7T*ݛCF؁'渖/boNQ!Nps.3)(SC*%*rIw,^WG`"o<s]Jz\Gm|^9l\tt@r#Nje&%A+lw@ qgE%Jwhg]FÍX(qNW+g3co$< wT!&o+E[IMN[dٗt}Ï=RN& KӐE6-~^ C+Bfz:p`XnQY;˅m#aC$!MfGP|]:.;%Z+?_ 锘$7]JxGu+QSU.ͳb3Stɑ`7- Opj'C8d+4CDD-( '8ŧfXV` `ɛyIK+cH59F@U˼!,f{^t+[*'M_z/˯衉>4<7]a%}1B}q1J7Ӑ:NZ?FQVd_lQば"qTOM7_6dta NÊfq 6#WwZQA}&4\ &-CQzy!.-/2J3=wlOWCrA_?ų5|[y֢Аh5YM24*΍"AO@j[:d qD']RK 3k&/s苵Emɫ^mQT09.K3nCe;ж`t(RR_^S}wfT˴DcVIH+p7eJiG)'}"wmJiJJ'g5`EEDM"J%Qʩ.F H*/&v K=j>R|ɵkPr(VPU(KqtfR&]ueΛg8Pɯ3Bș4ĵlwy̯B6=g[i[xtl ;ʫr}rɪ>ES~.0IF"T+iz@ϭChe!;;s E}2ވixO)IY4i1ҖJ3sEr 7sy,,OUt(XPc 5Z57 3OwvJ{"O.HYȸzV;FyM 9Mَ;=Tv|i!MF%h,e*mખ]5sD@$)и-we^Rv;B_dЋr3w^cuMJnY۵{w\~L='40d\88,sf H8/3-OFlaz,xr߈ooRSlO˛:e)2xyo.i珀ʇiu;D8#p_ۻt0ӧ ʚ¾(YU5%ʶ鵙nIkngzUpjCNdH&i|syC=l$b)jfFDyH+{vhD׮`Zƛ2X.U%[t̝xp5dB-=ϕ|o8ȿ9k<ʻ?U AB"TO4n+er,`&Ξ#f@0x\yHn3i+fKYrǘqBȱ %rx ƸWwDS"8"f KTyw8tOByrFn9;f:sÄ%vRYjSF"AR-g bί"vxq~ i9ǘbP@7^|#BoVIva`QDJ9RzkEE(K FǑga&F+dhomkC3d_S 0#~>]3 z}k͡>Q( ˜`mFWa"H2q.㟹lZ#hҔdz_<@2%%oZ$UOHQȽ c֔X q^Ϫ N6ɢ9̪ýl_ڞE(EL.L ~  !Z#:yuDZ6cMoX?v"_c:k}u 0{L Z8{;qREMh`=3C _z;]L$-o&Π> ' qkFz>]I4űo} n]8{3.{%eqٴ  ĩIhY]KI-a&PoV0X%azA| S/NG#mO23q% w£ ĩs8fV oeszF}'q_uOz!) uvQQ @jt,ƃ'\-esNl_%[I+;'j@aR'剌 ]{t'ťϿڑhy{^;4!yD[4GOC0N5KȚ~OБ וn࿻oBϰV5rmqD/o[ ,L}F@pCCLzeDYz50]]sܰIs@mu䉛k&=؏O (*:/͑X/6$ oR5 aڰ,g\ʟh*oW7> =J:PeV. Pڻk6oӘ"94HZUVn/yVsAwv>ˇ/\K Kb)8mъQGHmN: ~LR Zk _V҆뿊/hHw@,]@ m\/Qzt#eG ,g&!_.d}/Y}cY_YFTŸ/ pRfw>[R6 YjS'c)<͝8 rGۙUyOItH7u 4lw?:!iF%K4Vo+Ef\?zN92PZ& }CT*q+fdVc<=VR|ݙ%qBC,!CBCL懋na<{Uu1,EM2aGB#p-f7Gw,֪m)39o[o_SfYbfz1D$eNW(i{W{ys"ϛ7D 6$qvAL:)+ ̾{W!va%Ok=?έ5YɔnaV]Kvl8{x:U}]3>k wO (C}Ї)GvK, &b#B8GxFTݮ-5r$.7}C? tJB9QqЧK^GelD\YP ^VءuRVus|+'-u`g˷P*Oz{ΟS1u͋{.), 3ΗSN=XB{ `88|:TݳioбJ xq/Mq@`r;:{t9Jrb4~[1aǾbN \ )gsϢ5+j`;q"_kl a)7hS8Gh&mZ;`ztՓPڃ:9|yLVʜ6 0*er6wV7tfZ\E3 ӾBu:UZdLy|3 U9MqBuiGQqC/(BbZ r&NնlR[ߞz9eV$2zI[PǢB>63ZB>XR>ne?M7bCUb!p-1ȕkf_ ,HYa켷uش}q B8EqyTx4W)˖3!2t I)WNqs pjB)HA땈8zntAڶֽ@7AQ *ƂŭKi{A3F^KCp=W)>_ͺ [CbLz0HiuAs7l$5{+"Xʔ[*hbZ/[@?N^UF-`;͒ Zsw1UfgQM60_/S m!}Oӿi?-dexm6_A{5Hmc_#p\0y*l//ij!ܮ5O,CbR(<] *~]y䌘q[ e2,=w턇Y}/y>Ǵ$dq?U^M< ==+ʎ]{ gqIH=2v;\hj6q޻3Wx&^5 9oQv|P^ n! (LT(_jg˷g}=э5zaM%8q+RW[ /PB&35' U:n^纇frfw?|z$|'7# 3t= i DuF7% ΢Qc|~%kwONd巆% ɥΙO+ĒГsND/b!Iߑyߜ^oЉrtD13FZyqlO 8,_$/uY%JH`=áM<ʆ9mݎ$ۨI1*7NAt\hv3`11ZG%w= l(狴2XJ!Br_˜ǍĐ% 6CE3 RLeZ%~F\37S׸`!Is@­ຈP``)O[e«-R}ܰBs4)x1>w<.Rw!X4j{-8R´reҧ"> eBO*Zvnq:^-mMHK \ǣIuHέgR'@-u nB7 t?6"g.$'V(lNmd O Q*,\$/MTKkQ]5tIa&4/=l5_ŗ=I t[W3 lg# SWbPv|]?}ӣgpYnGx%BL7%%݃2Zb1 bc38qunC}. ű ]kTO#}?FU5I4eC桰A,LcA@MTIo+mswX^;I(0z-pG\A cE'b {  GN4r)Q4]9ٌ$I[:e֨=øGu^ѡEk4hؤ;2+NH hkxB K $&!Rv:P;AL|i-uaA6+fNeLFe 8 'vq2iGo':"U>_hCHZ"i w\{6MeL/هș1:tÅV#@GVkƯkBhrj=ŪE27b? "h;z̒#}"]f|RL\_ ^PT!1GIe{3c6`,+j\dk!-dְ:d5y{ac)rgU<腖~Q@]ý2396.`WDK b:J6TН[<N8c# h :*skXƌ7ja-aqXFh#v>lgCtgm^hYPÎ55· QI V_ ,(Οh|*{my׆(WNC֑k;La]&\H[IGB}Á} Fy|oD 9d k?n;klF+['`l_xDcAFtyɑYusW"0XtbjZ@Tߜ]`1cݣQqME`čf@o鑱Ju&-ΕvW6p;\wĜ* |#?i Auq3^CSד"J$fᨃfSfhFOH38ƈo9gֆ .:'݉Neu`j?zO ]b$$G$4VZ?6% =1 xԔ"m) j ’R\pA9_%+41qwf`"Ҳ6=k~ QoIǵ-LԫIJLD:71YtK9k<:Ǡk1<_fwt;OYFZ? 30Hd#XXltЖAt[݉0#[8$:<V4=o-{Pxyt!|M}rWtuUDNީ3kFmbuI6/W42ץbDŽ@"SYպӕNI rӼu\u$~f%n"O/">ES<{EcCl<}iHͼ>"#N, `?۟7N9uN w>ɲuj6ڙh '턀_6 C%1]FЯ*B!L Lָ 5G.a:ꊺ~9%O[ɥ祧L?8Zs C!N`({~GtVσH@bPkjP>,%MVשI0k;0`r.j*vcMb?;5 bh>^];Q2sp L7l8Qp"f}!2¢0 Uz^5_|E5I"fJSv!q?2}tWjq5cf>RIKF׭?OYmjXͼl(TX?lO+$'7="*ºa%o!t!v -r=]5 2{f8i{=6Pt-VKƵ}:?ձSB,;"[| ,*0Yn3}@fb}W p+ja8GͿ(sZ !K3{U Mr.]fΒ!?<3LYCxqEYd΂a1}Nlx^ QwGO>XKYoQ9آA-ɳzS솫Cigҍllo39Ķ8Zs65#3_W ـ~?RͶݞEBfXOtnht,Զ&uxA5c c'Y9o>IӼHMI'.񾆾-nۚ&-ܳy3BR:Ʉ5.+(i>Lx&&Q8 W {S5{3_=Έi32SG%I)H"%4fRIAF!GRD>Fh7o':'N8AI[qG6v]g.lW"D"l`T)/[B, 곣_Vu"YӸ-?W*o|@(3uw/DgNj%J+tK:,nb9̖8dx9~`QAp$B.eH yTZ{kZ2? `ae#-cFtnЏ cyb) 5-5K3J҉E7wuЎUvӧ :k'SuCكՈf"Dpzac?0C0ypN;z`xr@^7"1 9OC\Ս 7nL.+H@UCr5VA~Qn Y*;uY2HtHB_2QN4BuSѐltҍJ9rɴJ҇ _uG.> xi"Z|wž?IhNڬVVPItm XuVx?r>P7ct3E@{K `GǧU Gry o<];\p&H \ri/)5rx2=T{n]y4K(邻`8M ~aG*6l.އf_pݥJ2 dϴtnHg5,_<.ur{o䦵tI n-7KKM$LҀ>v`2^WABЦRW2"ˌ100sڭZ+.ud,7d*t0srJp)E;Obc'9?Q:1H/.kbI_YddGYCRD?-ţ eRHsښ rp5dZ& RܘiPxuQw ԅŰ18tHYi(F=i}7 ޅ|@kjrJ Ե\@~y8_C@.ʷW-pc-iLJ(h׉*q5^A4yzJnؽ>FFr5gfKWԖƓheD 5 UP j#kCJ/6i kDeJ?1ێa{7+{CHYyx T`m-S1}BUS{Ӡ ^)j}ak#!Էnf+$"Lp[VVD\ ) ]-dUf^VꏯN%3o/j?rB&1orJfΗ-4u:'pT}WBΕa3Q C"ZW߃b [W2 X'IG! 2ARe*Jᦢ)5}H1]E>+19&dG%#OjW{tK588*II/cUgUwu{RM&:aD`{IJOm|>Ili.\tZ;]d4Jm?Mrw Day0.ӟ2%_ԭ(4{$ndL>13c zoZ̈aZS.\ 9 N~]ol=OCb5aJy_S'LQ{ʈ{cLFdA5mΕ~ 8_#. +[:37mDͬnv䲌*Y57M7i696[_T6mRHw2DK[LBQitC#:E57Ys s`ɴͤt0ܦT2΀e\NzҲnт~T zykE8뚛0t4* ll7BA\ch#e+( ' ?`o"C|Pj\3FЮvۤK(kWZUrNi͹k/v??˩죇.N۝wo5'&xZ܈H`coYsZ~F%k4l}gF^`ܱZ:׻(1ש a qY@Sf5['[< NK_K: 3 XIrx>m̡ňdb? Ÿ(@]ٹ~"C Jho5L d&~E8f(q 32i),}ScO# 'U;4\bZ#ێa3z%_PnSڤI%'m"mTe2L_B\4ЈpƷCOqµafVn(PRh2w=~r47]xC[U󕙏&U,i|;١xj#j=tYCIZvq܃tE#.oQchD4 endstream endobj 120 0 obj << /Length1 1790 /Length2 2673 /Length3 0 /Length 3790 /Filter /FlateDecode >> stream x^U 8T/Y+fҏ!3˜9df3gBvF\d)BD(J**q #]n[>9sy~wPHh3ZAlnl()18,1)P3 %x<좰yNb7#v<.x}olË ( jzh@ u{?g7];]! ӄ؀GaAWDp$֎N$-]D 80H uK3":,&lɈ\ Q\ ț2A qc@ A[dsA(dA\1BprHeyEu  l`t}y\X01t1*#'Ѷ6"  lO?Ώ]H`QldST$?< mb]@f]v+f! Iv\m*20w#LPP4 fgF" %EHFAHS %h Yn `4 B f@C̿Q۟ CULgi.4^Ɖ6|A` S08.<4 & gA%ʥC)$3h * /-݆M"]5fV Xf4.!B0BK8K,+I@? &(_d #90`bmS!3c2A%NIg"w j !K\@ se$`cOt7o|[J`S!  C ",840xFF : !e]z ͇7!BE,P 1#=C[A|g^X bU~x&ta` 1FV!8kOP?͡P4@"E ##,ka4^u AXc5v髇#]%"(cɋkw:.ܗU$o\4)(lwn.rEŮa~=Uta`v7Y)&ˮ7人nfSNX7$;ߦ) *|0e{z3r)f}gK4Q=9tIC3!/o>sj&&I.lv3AG6 eFzŵm27*^ѯ+ ,#3;FvUrWYJ٤Uz,]ySZj@Hvs&+f3_/V=!8X.c+\7/;9Fe=/=杕_}O/02P:%"m|S6k{5v܉,jw˝#7I+ۏ>.ңa>ÞT6JS"2*sL7>j1XZ"s1m;\¢kυSUw7ZsTԲ,m/?(5(Ug<$k$zEmEӊ3}*Ӛ>$/a?E\ɔġcgȯv5ﵕyT΄*{wvM.ɡYM N[,_ZFHb<zq&2(R5H%nq2zJZ$N?{/y%O(5afS]$ ۱|6uӤs<5 7b-ge뷷"9FFzcrJ>{21P/nuǕ(wirEՎuuդ%<儚v6_QRc .a)kYE#gSᾓ_=0(y)AD) ޵-fCM-`%rȻi kI{^ Ԉdtxv._(!6ufz wq6<=E7`,cDhO\bKJ|7i]+.֝ w90v`ʆ x60z5n,ۖ{gjJHګzOJ3dr ﱎIsU{fI:>q&ėt +9$TR%f/ӳx%)+ϷRo9OuX@|atNӲ=u_ߦ%:єrs63MfVk~~kcCi4alӝLp1>fyu[i.RS]'*/(}U_~*\qZgV%+ˍm;Zsju8F!شz[ϲ%b-*OGu 8mnԑ.!F{n1kGUPrGUԆ<;o^oY岖3W o_#.İ5uҔ׭$=FK?;?~ݸeM|I&k^}Y;,k<愗@%/Ien1':;eY ϗg`r--4n™{ФR%{? kmC;OԚmG:o[KDΌFm߯=qc\Ih ?u*?zyxSNVJ‰pÑli y\*B8a<ۭLrxҾi`5rΎG+,bK)|ojteA@fjis4#$#46o^ aV➰x<D~SQ5s/sV\jw'\oBܥf>Yߕ.yٷ0u7XS7l!ۼ[]4}jl xQePЈPH(1ߝ/Z)iϢ 7]I)+*gl:uWgVi767P6Ze23:eڷ^C kv.y'/W8(gO5ʿ%}4agjF1^&PK/S"Q> stream x^V 8TyZ"T{Qh\93s9ga ]UXm)[)[Tڮne&Qa۶g.}{3ȮdFB>3F A.@>,/pr`-"&,Hq#`y8{;7o'FBa1yzy$Pc G[ `#\I,x<|6`䈎+( BHX} " EJTT'p2*E pQ4(`$Gw7oәr R/p O_Uac)3=<@F MC!c2 s X,/JWu; % BQN nQc86\7 O\ܜ0 !$W 2ܟ=ZRs@%pPHdȧf'ƃb_QH̿i|#HDA;ۃq !R"8x0S|w9`w+˗xе).#Ҫ[ ;U(F?kӥMsjtL? k.5/n9U떋F|qq]N__}S˺Tקyr4hv E'wMA2,t.*=[ZpvL] o9zb6jRo1l75S?=_-ۻ+ ]"j7{F"zTu+k֞;Y8'dowhT [i@|=;Tux烄q1i#l}Fsd|/Najwuw,*}#Ε;gnli;V^a/ގ:hR~UVqQ]p3W߆Y,ͥ3Tznh?LS{BVB}/j!OǪ-w׽w)jQvbD[?ŪI ?oSQZLkm|ԄNޘfD+״s-=oDf dciA{0ynBS?dzPfwA2G(űMg*N9E*yo7tmK'ӃCiLܾEEQ5&m[s?Z>ۭ~{xsFvVԟCFܟ;aH7SLOAGuXVtcY__VSWUR6̶iΎSHپt r' JRM=LT?nda|ADnkB8z &}iB+jS+{.H.Ps6zkthmhvm„ǠM&kNsϝgj4ytd#FEn, ]2j:ϳ'깒ҹv}m4߄ha/Iۦ4x5M[maF=93W!JtNx;-4u pYC슳IJ)X]KGd׃T J@a eolFcV&Bo.9a CO-߄B NA]pX䲚 (MV?Gg!ݤArղ>|:#4?ڲāٚz1vwqޓeHt\5~Ҥx0\7F5'h7CIOڼc"){mCG2/-峒}ϤklA]`GVdZKfFgj}op`_bj9loq(a:!!s5E 6EDǧ[w2q endstream endobj 124 0 obj << /Length1 2830 /Length2 28512 /Length3 0 /Length 30138 /Filter /FlateDecode >> stream x^eP6Lpw >!{`][ -7>gg`hY-W *2u&QsSȕr`ceRZٙ8ؘXĝ& W ?d38{YYy@,5z&@6oBŕ,,A@:qGOgkK+_68~YuZl`"3@̴:@+; @ TTSH)k1 9::8'qu MiF$TS2:[24_~+JjjHxtv'bGoZ+WWG~wwwfK7WfgKfGiXYmOg70n s3 _U(XA._ڃ] /v\2q}VAEE`ob rL@f`EWW7ohNW@/9.L+n`@...Y,퀿wU3ko@L`t@̮P RI=8j_IXqrupd?m rpy_5n, k'7/m0  `@3+_~w/6/6|&v.@k "˂ۺ,EM7|M@vs"+!hgKNHP4G-LUrp7\7%*jn}Q\,_cktظKf ,XOc _Xu$etO+6) 2s0Yع&&>`x[Q, WW1,XQ?E`aHVPs(^/8,(pdZ(M?82)>?8?ئ>؞ )xؙXec6 n1acgj!s_Y>ajKfb 8pؙ#\` k,KO`?Nr_kdDNز1\5 6xjCF@2ك768w?M8$lU:N#oœ`뗶¸ekvXD'h'\lre#D?c;"݉ː}t^6L2ˉ!J$Kg4bȬ|W.ylS&+XKI멗UՈIPu !7 ßې3trO paVu&q fwfڼ*)"Ȯ}M43ͦ#D6_=L۩8TS޼ GY  hI[R]OI)kg$KNd23/%>PYTjyb|b)*T 6Nڅ?/!B CZ)jmM\r} \lhckt7;.QCĥB8Y/ڶjǐcWf;Lg5n o y Ah0'΃%%Nb^JUˌg}ٷC8q۝pt/JAIRĒi D'VV/_JLO:J,{0[*`< ͓YyaqpL4}<N$~:#NodݝDI.-/6Mv\x4(~f;ۉEsfbA2(b$jBVG~kw"U쐎u ^3? Dfp|,B޽"?1Ãe Vi9. # P cw2j#f9}ś["j+ͱ tHkhV#2#OiuZ)8ҭ$n8[loadE`;]>H>J -qM_G~23<σA6_y>=iM|EٍBA NA~?lӧ%ueࡺ6cUC@zAQKQd?x=o0&Agmiƃ*Tfgjn'= 야3?3")AL DžcPt$0Q$tCX Cju5B`s}!k17zs9 RtE_v0 LD&b+"~aCXi+).m QxxVeng66[4K5pճB(?cMZMK bME>SۥKJ {i_&OѬ.6'ƴ̞<2S>|Qasue&x7΄A҂-Av:Kҳ3Jݮ3IWjCplؑPg56b"5Wo$7J lkPS>KVC bK}ЫZ ld;hxAҐWxuS2ʬ‹d"!ŮFɼ:e5KU:uA]eAzǏ?"AG`eT6 "`﬒޽ܘ(VڗfпR"m.}q[KfǛ(. IջM#w҃*~ l i$!ڎhqsǽ)_Y*b7j^Φ),(z- HXU+j7S?_ :]M1ڶ,AcKLTZi*9Qs# F0LiLq;ѤeC^n{y) S㋇ =WR 3XK.TG8m0 3ڱP< G!TYPd1tZYN+S7*2DŔs v!~31n>erQLt1͡hv5R`h&ߴ/ &s L=Qqwc>{xJo7l)?4{9r8Y"5q^6 r?_؋RmC:" 3`,DG!K˨xUO:$f6] fjhQg Ek;7G~GK kX ɖ%6 <Nӗ=j8.KwH?nє*;j*~̴]|ƨDmGI˿rL19ZR++&b 6}LLLL!yٴ5`UQLНQCO,Ȕ0Md+i=rد:"o9\V3ĊEv@zO/FkS!!xq=2~.{FHfoG>f_0}37%n%c@\H K%"X{aJHxx &N;21Z@{Tj'Tb 4CU,7݇QAٚADA9] w,U;&W&7h9vH:bxLTAI gð*AYJ u;('1Myc2;RJn1vޏN_L-51.}bb80p&*6{ Q ! 4ؽ'N^HnՇsQ$~ l9y=8m oEWPHϱ"%mwe?-C0uOVb xY(sh?F},ߖC&NK@9o`xoqHxrZT`떟u;GM͖7Jm]?ҦFZ>{ ϰg&+NBJ NfʞLstveDLl+:;)suʑy߬FdGW9i`^kAZuk+*Ez>*q6;'u dbg}nm >ZU]F{.(>zin|OuhEU׍fݶɰƧpP} ߆9poQ7*IZ6E_=7Lo`V0kA[Ns]iH}(aUR/L6`8Mv{=-!kdFbX՟U4Pr ca^FA l-CA|mOH 'l })J9E_ ӘMk')oTY7kO)V7_w\wRgvy6jeTé`8UfjH6]WB4<2/ՊdE$5y0~P9v!L4O <\I٬MD``j[  KF"z I gj&Q9Ń\;%*EL2gr۫}L+ʉ?4>-[ET˹-2g+kG6_i" @2Dذ(>`; Ot$)M;3Z\_dzag0aY׳SKjwux6W8v>7ESpoKu9[evzDambbtL I6·1B~v) 1 p@gƯ>W#.p˱:H&/ !B*}Ms,R&"T8 :ƹK_cH#+BRof'x}ֆ .'B!tty>OR$qPd3HߊāS; B&*mYlφ-C E[Ee̼s-iޓOBgٴO@yGIl>e".۶٬Z.@WV y.t>`M7#N s]oufCq)V~g%:چ^<<zVTZ8Pm[^+gd n@"$b1e>0#]ȤIRYS~}P| x-I(|h/;ޡr$Od7n(fa1u=Z=xOfb˔ӗuФFWwS::_+uG`}Ȫ2Lx.|Z,>uV%5 x-@󮱴h)LSDus̈> &_KIgQ Qf#ӛ0 yUYZxiSwN?msx "9nN,6>gcYQ._^n3Gne8VI9Ab\)H5gEО3Wڣ "X>Ӽ(e4O@27FHzy8 y3 /sv!P苃WuVPi^ž=v)J8/t7/Y2'#B^nUi@uF7w!7S^̭X6\鐕CX^UH#FOofCDW /"5cD$j0J ?B wx9NڭCHsCg(v>_j>Z3KAϲIk.Iq"F)#ReCX5,kG}͏S'~cլ|[~;KɃHQr"eH v)$d+!M;;sOoe8h_p}/\F%(Qxu; 9Ƈ1CӘh BH5'x/K\O![mckz{\> E8Z5Ne4AKf.+s*W3FGlHjOKQt X$ ,a{oR$<Ǹfqk]ٔƈ<(H+ڽ (xaAuA8pY| C%W"ckEÈzk;|.d?'LZ-cd-w"6xKY7qD::|C/ >ONF9 >A[ }Cb ~`Mgq]f]dYEvM2b>  uxZ2^9=nHڏҮPJ"[4Y*/m .νyIHE{ j HT<~+>QٺrsD$)W'_=v :_PbvO =[>7ϥtf^"h ӕE2ߵ:6t )E# :j}:T  wX{>iWPgZ]fb&Y5 ݤ"ǡUy *2/%xw=cc2mu%~Q-ϯc!b;c)sSdO1i!bsHwJ(=rQq|h5+2ة!glPh髊xW>>PbNwV4̊Gzd㈂$m'H+8;˵ё_K-]x+z0P[:Vx8;>AZvi\F>&^>DM=|>DګnK[H4R-c*!qŹz,˾A3wP(c$̰ﲊ0%}iKY r$Pԥ3B!B ҃Oq?nM?.K9Mie}vzpΥŏJgH>IRzT^E0n-yKEAdln }mfN_jz3HAAб]{Py\O V:=82nDm}?Ә0ʱZ^G涸-j+4~nmúdcoV 5 T3K;gs^CBy3B!3->#fUʃ}m4^P/uQzITUPk"Gڠ.s!Y^D GHV#cdN*Nc3ǎ\z MB!|U.1o2{r &?  2LPc4?x)Mv%ȿJ 1=(Q?6$efdHj֙gĠ˅,/-N϶b&˥J-,g`%9`~Ƽ!C:@a-AXIJJCX5Nj#? ʽ!ֈ/i!G#aA<}ovP}}'-KFsI7Ü',?bOɧ²>fվ  R"\c0C.X⺢B7,FPif.٪B;s5Љ_Ʃ| ?$.BɁ*]U# =.jݚ`X }wEm2" qGXty:ϰOӟcXzacYK{[0Hq}^92tiލ"G0 ne ;׸Td$"(7yˮ J8}Z  J6\_ d)13AJh_[]ѷ[G Zq4UݰE;Cs {)jo +%/(_[1A1={(OTF L=3<}~8(NMN12dy ڬ,w~Bǎ:#fҟ48m% 4K@d`/D%uc[,iI;M=9#V2GS>G zJ8( ey2ׂj 扢d DI[}+DXf)h=?ko,Fj̟}׫Q\#JǮ]F8Ow o֟]-Qp2>5V }$OX!Mָԕfp;葖+p7עbJQ嵸+1H۴F{1]D |zY%ʵAQiE| a 37v1Flf2f,9"Erc;Jd`nW%C[|!G=C<^~lԑZS'؍I˧ot~Pwc~hẀ&l/d40xގzŴBVds.OwEt\E[EdG4TJ_&RO+]h gTN=/7h' nȸ#G K uDD՘H UzPڦ$0{ZJn?l1#Ƚ6C]1%H-3XEF2o\v{sIO(NG['P-(/k}1Y($&d1(AL|>w$oе0gᕠ7^ ej]%2%虛`$Ȯ.y>☹yQHv..6ʺÂׂq?˱YGiSS|f0z*NQ2#ˑ݁&듲iE;8zs~m?䋧$R(㽾8D?o ŁVqBڂ k7Po֦,ye1:9OYI[1Ug0wIRWs[Jߓf?( TmeLQ_{ϱ)a*$!a0^93yzIt$M:CNjR"|rjee|*zXro 0*%3v 6Gf,YPҜw"z)%]|rנg7{AG6u =Bf M9w`⛛롘!Yb]wEI؇U˲)$"~Gjgu4GK&m[Hk1HoD2U9Z->o{-!VR]ثC8۷͞ x_c# ^iUYkj좤y-&%ãvj^ `T*!wN)!mBI /F_(~#+Gʨ{N1aC?an覭i|)cOVyuZrݘjnqr[iJ5IdmaaGy7kMV_uWrX\ʩ =l~|gbPzM"٘aw>qk2Xw8-ܐ8B}LT5KٓeEm8.E^1\|AB 5tVnGomnayErڱY0pPB;gyթbZ$g44pyeF6P`> F\@φM2-NĖKd',SW nM{[51!͍'tNVRR͘pgWшE3vi #=e7y吥b61?etxsoXD2Rj3&bb d$L3F-@HD CHY.("s,TTG˽F^oDP\`y?waŗ#4%x.kvdK]$X|$+"eUt:~ AдS 76-IA}^DV5 iJx$P>pN02nؑJ2$*+/ENʜ7/ w摤g_-FY)_*Nr84-JjmR10} wdˍϜjfFs~r&' O?:A}q]V[_ny=N1 l5ex4١|P@akFvgqUQK(ZN&:e%>][eN數&s\nB[L V9wð RBYr֧gqwB#Q岂=gG?c {Z!EN:g:_YOTh ϡǧ C[^cL: s@Nga/ZX4t]$2+n}^_u9LKWx?e="odP< PgD-cBr,Lqq@'\m+r@`)ҬE c?gQ |bSY^} c 5nedӄJ1lݧK宖2 TRL^o`_)gZ\Z"5 hzTX}ć 酭~zOVeThic8[A/!0 u6+ьwq ju(~pmjbA{q@zӣ\C~97Ӭ)LOO{tnąK+4Z9 $D=yzR?R$ X%E Pk#ׁ7^>΢eO 9)! #MkJxIh?GE(gD뉍46Gn)W[r WrxcmtTO"r;>G#54)F{?YN٥/Տ i0BK@gpA|hoYM2mHy Jhcګ:$byG,>'_톷m0~!xR?&ڋK7]&#۵z<`/gi|.ѵͨϊdFښHudzr-\D!ȘT˾X@ ̰&k;w\mt&="Q 1.;,BL2e{T W8'PFH-/i"'W7e:s=!פ4~Ӵ Y58PAFϳ.ڑ 8`\N-Zqy%7~ # "k(F 9??'OQ&N T]%CH*{ ͺEG ~)μ )g~ vnGgw!}԰a 7NП\ln\mMxYa䗪{є3Lcn+kX{3]xc?4u$dZ8Ĥ9˭T ~!'M{֊qSc u32LǼ)=xo.05 )Ibk{P_`VmKM$bRyBY)Ze+ͤ29u, 7]zWqDQ`6T,]f0]kf*PI BB.YBKhڎ%X`LY/ݯ5Jid F8_2ƝAwV *2ws^¨C}*=_/iw45f%z'SWXxDϩ{k6cp SOo`JcZb^W6#"uu|67QY4pٸ;+M~Fa,uo'1>z}GY8G 8Nci!TdHOv2>kGW?-m[i7?<` /,%fgR%n>wLEHh3}/IBVD唈FJl:\Av#;ȗ촸4$RDDvh@b@QWP|I2j˛HcJR`*J@ll8rbBHԍCu +<M>jǭAh3J=hЭ!@ T_ɹ7@loWΠ$  BS"6sWI~(NvèA:>_p5)?JȤݲ%9 9S8EFu'}Cw atw^ ם %LbzoWZcE짹"uQO 0L1{PX1X:V F!YSPL\U]^ hXzs+,9}@Kn5,#ʉzJ<@é 8+w&p9bW[6t?ݜwHd-܋_Or^ldWMJOI ѪIEv$~qƻvVj ;SV3H9A5L:AHX֕YV l5k[`W(rKB$t}iZLQ~ ۔4:g焊i}:/ݛ tO3sek&-c,BDo%]\Dc#0REdl90j*P1$5A6vBHyx>r('&gu2*%X E غ-[,Z,خ{{ 5,`KDƷ6gb\K8 `>4N;)ݓij#Yȶ t/| U|5:=N q(o\''dKdzGIf2+ tg+5]!Plև'qNڋ6tԔ2WMqb\q?ˁ,Ccgz8f`G-͊)߾5ח)@܎gq3SdO(׵%LU!buސrWPhj BF.ľEN'77gAQ܌?}ǧDeY0-;Q_7 {qL&p%-74(paaa S "GEmX> -PR ͘xq`f IԸ :B=mgC4ɻiQw9e8,,I|1_՞ 2~e‰z.:"%DJpq Mus.:P@V[jNhUS/k)rMõM7idt H3b '!@/`LUF U}#I8PʬtK%@P[s>fn"v`W"R2RX뀼~+YwNۤLz:̰zF\!1V iJ!՚G6?':`x0V:1P3 sl3ԌI(#Sě@61(vD}%|>#4 #ƫ2C ty ·BAH6:1*ӃWT;=ʔo.Qv5al,h dS'8!?XNFgg[y\9'~Bt6fՓu-EiZ} Y:ډ  +,g֋V5) g\>ݳ{KKe).K'>PPȬkB`Uh u ^\ZT6+"vhnNYgJ&1ϱ>3TA4)m aksυN)Y,U<%+JsD|qBEQ~A"g4'%gxpfb(tM/2XZƒ~!$$t,VՐsȰ I!D&`d·Q\ rOn<6+̍>5!` @0--k Eh9l5>,>h} bfKIP:qxi_*GhaO01Y`Q#r;hSߟwt5У3'irj(m aU{/|AP $c $}XFV h7<;omX ;|K^?(-1Ӷ%ƋJD GϽ{ h~zE{Ǽ`<٦fV| {YM Hyؽys:q|yKl*)W1@4'a͎=F>.#q2z1N}2 ԍnK^j*JEނH7% mAV +̵\x[H&.8'-R ֚g>98#NQ^(.FoxeovFIP e ,2Yuڋ^(PH/&mp+9  mh*tx=C"x^6q C`)^%%8x-g [GQQsj'Z PclLa֐ 㴗G4sw9\fXagM05s#+ݼ}xLBamQwY?q75`30az٢1"v2OJDpE5z{A#,Z b*bKgͼg20WTqlzr^\i(#\`"k;<^S?Î|BOOG6(f4$ ʹHl` y:&V+FE.5 69-$+&<.AF}3p2H-.!)^e`QJQ6㭉K}Ȩ֊p7 'xdjO֧QZ+f )'8Y!vx>Ƨw͗3ny~,Xo=qD-O=6M\}jILh҆-+g KLIza($R%/1' 38}>fyx>V>_*(wz T}Ȣ'$Do{ fG&5ՕJg0`qd6عpwnixo/D` El=2 wT8b' &25fƲouoM4K9 E799lQ3˩Mҙ]ٶ*O)gk'"]d?^z|20ty`;m#_#Kc~~AdOBkB&I l ! U>p:Ov9}-**oF;_Jl2̛PNjv1-4a_]8phP}@{Yxg^y~=i A@x46ߢQe"?11p.D\5M k.&2%yTRm0v&X:~ퟬR^Qƛ 7cY)#+T5R2Ll"3:*ncsb} \~D}#q&Dz >fpg?XNN-@ UfI 傄!4\WW'fVev /BPUo*z{z䒬!<|?[Y7=s (dm^viՋY_a /KR Iu95D&w*.gGrvz,k߄l$L~A4*}PDnC<~.M]X{#/rD`R:\釡]a`=P#|=^JY 4n觾1wH4Jhb ʿc9 +[ϲXk H7NJy届l?_% Z0H6\Q;g'`@yFXR!%#l$^$R3uq~)t%ՎDzMW+%x8>p}=:I,/r噿9 !3Ybz#X5h H}'m+мFœqMt%B u,-5-z6\ߛj2B0x  ':߯F81ɂ_FITהG`Buܲ d (YbПfnKod OF]".UlBd.2?h)@yHmfCcz c#sWy$ɛ^R9w9 vç~a7J0fgF")/P'tٓwY@GGaѰߋLO$wʟgqF|¦Ʒr`| T_4ϯZr]o, j|DFOf07&KdJ~*&wE'#fCrI2IX<,||S. Īn? m3=zǫ^Qߥv`AT',|N;@$|Fy! ; I͞ 9uDp: J"_AYru_IU|kOY~douQR*tkT56 8VČ.!!/I"H-5{Q:ì9 =cB3a9ldhjG o.'RI87xܳ/Hl|ر֕&'?ua#FR?o-ZQrL[ja@f%D1%_ȁ3FLduv8\kH:YϓoFr (,PsϢ)\Xur:=$|hj%]`/}E wL aO' vӜǭG"(!t }xw?x&NDR>-V~}rϠ!*_#7Jrhvɘ.T K(P1BRsa!?0JWױ.Tn2ڛP;5斁0cTjmr!Cp v0fV޵@s*/{MdLrjk̇屪+a9s bP,X6ܝDu*O0x5G&*w=ឃ3S`@MS.r q1el)z^vܒو e8\}4.>" Z'bw>C,PNMP%;dj>2^[7Y+ !J$M/m_If~2{Y)N{uKbl y^NW&l?")b3=GѤB=Q'C/Vd֥E{S? W%#xƪ93b \ĭntа!E Dڄe]E)1GH u5$W#μ^2NFf\t]1lZŁ2'n|vӬmNw;/)`͏[0ymFP Jb+p%)Ώ`f5Ѩfc!RU@l %fUaL"JPt];Ӻ+mezjS k,h&؂ٽ@դ^',<n (%XL7WwSwSeQ| <8@~d[EBHdL3啮edƗ g{!(ђUb55|6 TUDf3XPlt.~/>cVT'c5o)bAhO>xLa_xa+q5h1y("8 ;kT?j izf+<؈5?v|83c$L^>HEm>=NYGCaWَL)nYI| lt ɠt:A\W]튪M1AsU$qM 4^ 8EKIy*X$SH^ ˮ ;tT'(HB#>YӦY|GAbELBbѮ !P*M-3d4y S*[NI))sX_ɅaCJ߫(I\# =qOg7I$فLv^{FEIJْ%ʇD=ryq1&P_,}3sukKk·H| I Ũ˄0_ԄYeߋrО߰pqKM2+N*'y]{ OłS_R`g i`'wx5Lٱ &"u}G4f]6tV[Xj`[J^y+^Y|eyMn@EE4݇f[C41H7a.\g_RFJ5Oj\JrUϧށ@tV:sNg\6_y9^H)pRΓΰk,l[0w3-43[yN#) gl-7/) 翴 2&V) R1iv/bt 򦂜Ii~i+,s``4B>IGNLBJ-Nߕl^Ԩ%Bț1@T8BVzB{i'u!+ؐ3+Rr~6Wvl.xGؿ$N$sRyf_L;.lĴ/ 9@IYHp @7 A?(tny';qGE1q)yCU&Ѓи a鲑qTSK6xmjl0o kP~@1[ .X#K"3Dm8j\L~2uV$@Ցp ][T&uj_;OQ捻$~ zF+pݩpדlR+>#C_V6-s"DFZtޝ -U=HZ>~SI:z(^z8 0FGw ughsȧLN'c*{ud4 R;;ߥb1Nig:\-W`? endstream endobj 126 0 obj << /Length1 1757 /Length2 17605 /Length3 0 /Length 18780 /Filter /FlateDecode >> stream x^sto?M5ضm9mMոm ~w͚g{_n̐+ %xrv,*@s#\4r3rXXL2Fv.F  9@h}HMy@edLol!ڙ[?LD<@}Zù%o(y@eo0Z٘j@-*@REQ]Iñ=?rUUS +tIuUj@;c Ȝ!C񯹼835@On;S3?TG!: 0FN))l,휁vFv&F.Nxo)D]@1S[g"+ӵ1r;'Q_ӿ<f6;3Kx jrȳ? 89>`@GN'fQ'g{Yڙ PZ /́&t7`e3e`fd4~\g  B`Z8Y.mgf#6T65?AOX.66 F@]gdkioKCw&P)؃llIhdlbOPig ۙ?n@;}4 f)5[55UUDh 'ngbojig`a@FL8`agx1@P v&g=frsEqbfb0k_$7o f6#FA~X87T *:쭁SEd#ooG{w/z666=+33~n35h>v ?sMMxҚBLAs3U` h$@-gNC, hϢ(M +"lњ\9yk,k+E\x4WA=0K~ɿX&7_m&->z"2~J[ֶV4܌ 侄ei3.ڨWxf0?kTơ M4lԋ8߽nbgd1yFYO;6W$v/*8F׭A0mw~\궐cIiHɀDb(b*3}t{ 7I* !@".ϳVk6]\+iMSJɻ 1+!KKrwL)2:"zm|ȯt+hpXg&+J ;alw`h}P:#Dh`ٗ@xng]S5͋; |aA1jKv˾8^ tO)*pkMkIMÅ{̜.@géu!,k]1[L:u-HZy76L]&~h̳{TXU3گ ca%X.AS@ALpNCx]ZޞDz*}Do-.[2ac#Y0*#a({ѫz)}yb 㘝￘^QksR[~130! (JfGx5N5XRF(1LjP8jH/sHyq/3Wx`~i2 <6$ ׫2= ixzBgnA]p=, )ts0Xm$UE;ߗһw}1]cwc5/@##{ڦf5wej;h+:5dlOh HA(oẈ2FX嬃~P@]mA"&XMN G!NVq3UY3[~}ίPvܒVzZ0 2$MNo6)ÁcV3[ԛziDA{>#ƣ@/ԪOS> sH m= SǥdhF!w:dQm1mIE% VW"IBs.Xph>nX&N-}q=|ǣkG^F"bDOd)zN݈9mnfMLJXG9&2(S5i)N$/6g3sãA\SIf|12^ٓtGO) eMti?tZ'.dDv&b+yRg]A(!rϗ"6^a ܞ"rcOz,֊%/cr2W34S8tމTn/N+z],jV[HxLԬP=¿ Ȕi)ҜXXMq~wk N}) f~B-!LT_3etfg8x[BLϛ~۳-7drK$趽hJ؀(GmgUo +Javǟog1t(!jenƥ@RpH,J2a."{fk"J 2u ADzރpQCǃ{&`N[:ҵ2A/p;|crk5FhgW散075{yrU}ܯƊ核Z(y?u4-sb8!,ʉPr{[T. 0܎n&.u+׷l|̎kp =tfqT+)z-Wm T Tv XZ|18`6Z$r{(*(NeUz,2^4Vࢷ-YbOgnNG^1M7"E.6hZITehě'T3sda3} \OD,cڵ.**\/hx8gG(K$\+mh!j+#!_tXIXUff-XgKB{wkxW{άGBsY'ϓѢ̑`=q+/o ],>_Q!ݵw &c.v$4L{"a5c%T* &B ]<%{ 䕜1ϫP~|ZF>QCECRmL^N]AWN%xB4@™ zZbļU3d 8Q M Dܬup}pgӂ4]t$۶ 3]^¾-4uY_6k2 eu^ Ӟ;*=SfXLXJ( /cג9P˿ZaAr%t'y!Im]@:b+*#weJ;U`†sѰ:MQx 'y .Q7Iuo8/YeOw f.Ns~kKMJs-%IkLؚ*SnoDpFՐx:ўzFJoN`%,Hp%1=z&o7`]u5NI {U8XGSj+mS vS:P\_#u2Bʔ\^IWA%o̷iWAUg UAI>s/0R4.Yb#I܂~"uHxQAxL/3X98 q=7>;ENBQwz 5Eq]{PX,zq %YL%uZE8xSF2IF^\i>AK)v z<t:.7 XR3_ZN͡}n1O22Q"Oi^LV"τ{iqׇ/1+Zt1joS5׍̡{7Y taYP+|laAl/ @hHe0KT8kO37 R!ۘBGmGNRfOQ(cdhP!PǡMl+ Z'](;ѐN n-;xYCmF ^EWD)^ l 2kb0Gz; 9*(UФ;Y1V6G5T7gExaco8JGG\'vc\O++lɴRݰ vrwEK 89l~%ƺA9}ݐɚhyy!@sx+o|ٟO97һ&Sȅv>5E RqdvԔ CY١ e[WI46\AUn'.з)Ջkg<ֶSdՉ'\u~7ܔn :h9Azl.iP|~7]WFωGi]mSX@oht=+D^Pqo[/oEgsnĤޣBu8o!{ޝpOov<4BK_[ agC-|ؖ_Z 'hBmr#\6s:d}/n]+}]x7)8Ju.Cn 3&k&~{D[Y?Aȵ<-"h%l}~m73Ap7 CWTJ]`?oδ9m0&۸%m0b9 iXnޮIJ]HR- G]^a}2p47WJ~ MrDn{ES}"HoCAfo2@iX ZGgŨ_*arVA5ưI%;_,5z@;*N?G`x{b[Z9J(׷6Y2OaUgA2:2ن 0.{1u ܢoy%>0N2ҠY%ލX!*YM/Oha]oE'd>e\.c˅&Rn?w`x^|.rdH!71tzyպ9/xo49F^nE J)w8〺OhLfXTHWêMU߰3}Z -;+ Ti}ikhy##q6]Jd 2)&6k+Rn,vޣَ1#1`'ӀÃMDUc:fBaM}j.1ڟrR܆Mٔ<).yԇ5Z$fc%Hǵ| V_RҚ,FNO!{- WOt:Z7BNCiĶX J]l"CGtei}@O9APikEqcc8E@}^m~ːc9_o͢A\eZkQO?5 ]f],>Q]`s4'&*A7|??l9-Qi>MRh*Tr[ , ~a$C/ `(d_Ǎøs! Cs'`q̨MNa|e"M/Q8hN z̢Yf!ҧEN>QגY*q{Liʌk=}-!^ \n&Xk "|ȟRL)caO7gv >+qm/U u0ظN6,c٭H(Y|!oŰLy4=Ms|J&I?h&9E$A2j_eRY#9V$Ze Ma2b}QYqf=sW0S.#Z͗p//fHf>&ޘZ.%-s8!bT+n0xVjFP9B~@˧-tDNU_|QT u34'+#25>J-:mÀr<7Jk 2^df%0^= ȇ;CWWL[kcWzrl;S;Fzb+q$Eox']Bf5Զna#JåR6%f ji.@lPğ(g9*8,-;<~ƻ%~}ĔZGp}֟NXa?$RD3 Rq]:8F\g)5{Ajь;!RgL_Nۦgc!d>JBd{<0l֭st}ağ7TX'\n8 >PM\m:#T dϱ*F%re=$H%v^2tCwV=XΚ%8Rc%}C Xi! LN K |L5n ͱuCCHx9 D&&/dY0eCUrʧqz?9  &0Qx1aG {>+7%/È8F$a^!f0evr,[vwaXh[*匎-RHniޕ"06)ERT{_ئ&W^y~9UbR];<V3V)dMKõytwӢ>d~vv/+Pܶk(c`@#ZvU{dVFnз Xlo'ZB{ͫ!գ(4Bt ڨ4ɿX6QW+^\ΖeHύ4x]- KMQS^Y] G-)veM(!ќm)>:qya 9l?+kQ1  +$L}! 8kU#fϑj1 hvKq!Q]g5 :zu 9jeN"lfBsI&K*Ew', 9k26'G\Go-:L|XZ%WdOf퇶LhC#qz%pHj2ߧdU4KԈþjغ5ǫGI$|~1$]!lCJMc3jII3.~ˉ$8 BWz`/6Z WA9k0芭;4c\5DqI`ͱϦREl7d ̳QGdZ 涑YqzSjJԖ5}Οs?{ pm- '5 !BnmKTo4 =vzԉ#j>f'Ze'pq4=H1ssxS(yAz}Xha7k޺W#d/7ʦs0X2.jr.T_qKk4EmFkul4>C;]PvJʮG>MKQt;ua9q4 n pZjIg@d ea.1F Z$L4SL>rDuJj_\Sqk`w$ g{Q LO!GMg|m# @:VUK{W K#Ԃ$wj~^kfSI-8w = Yy]N^hFa2ǡ\Һ즟?d,p=GLp>ӄ@J)#6Y!/p8< YJԉ*$-IDYRɹSY@8\Umz'*/{/52XG TԶݳthЂ(] $czAGtRIϜJb=fEM{70M=-rBbP%]ay({Qnf6fCӌ"L kJ(+r oT[:#lb1CAjo=-›[NuT;*Ll Xkun@!6 `_ 6\Q1w6 `G0W]-A >a;UF6x[{ wfTs$="x٬qmpX|^% F,Ͷܓ1ô&P3V1ۏ*m8n}“0޴ޱCdw5jmףiKcPDJ*JfZ/~0kLZFGvRXvM[j"0Ҩ9[s:D!)o&f^Ŧ?PC7H d35RP%mծ ~=£nk/l[Ȗ֠c}bm l9\B֑ پ< Ҡ7 7AS2pjfĬ5ns|#DZQg]5/2RvwĐJRJ4@fKUz2 AŶ?'>\ {6ī\"5 +ČT[:.SSMiҹE{/9R::W#{CG`͘HP9#{ KCqZ3*ΦuHy tPP7O&y3bz3d37fvX F =؜o?P_zzRR^d6I;!D 729Ym{SڞvI>xy,i<#lz㋐~Xo-xm] ^Y.)p$!z}DӨ!˟!MR}F9P0켞L3~ne}o^b/Ju/V$HCG| xZ>Ũdze~ %Ny’(nܙ ,%vtygQTb N#?&b߅N L&}|]51:y;#C2Ltsቘ~f0ɦ³rBp6*k*(PUCt-t+wl<Zs]sU\ՆVE:qHߓW&#e51w2I Y'0kHa/ݭsJQH߻= *FS͛vI DZ)Ặlv,9ψ>WZs WrxY_w*l_(H.@]#Erfzx{),8z%;r2"\}Np8,fzZ9V=R#K : = +Sd|7gWR͍$Tzgrk]r81 Cg.' ߽W;keO5<Ƌ.7jKCF;C\H ԐUl\#!mp~Zbp/2Zou%Y. BcIS햚9՚,O9`V.eKLNDަzҎ-&n "Mzӊ [聨oG3=0{(T|"Fuщmt:ck-k }c1֔꒓/q+ B7^/]"e /<;7KbXBv:3IːV;9<<yDRhgVlg &B v^2v/g5IJKGg3XIoHdϤKTdw 흶k_[;ٓa:T/b AXm\_:qK6V KJKJT==&g-ظ]q_J{2Rp6o^HG{0[sAqN4 w4ppX׆) ˋgClP,@4&5sRH`A$}W> seuv }uB/mȘdAi#;/9v@aSZtޤ99jU4)Yy*ڂ@įyM*W<xUoCޤ99jU4)6}Ah` ql> ƕ>*Rv64 H$cI/3lOI{;&ZI\(-c'{[rKb _%yW r>` 3lb{s/Ok5Q3 b^p.H9UAGn-bX+~߱R\tcAn;rAE$Zp햾#6#YZxZU=K: r|7oE2`~ hG7 [NtY]ۖHI4Tm$GSCt-B:M帠65><@ԓ6Vz:.jݐiPZSz~7hmtz&9Ulc&â`߮1K_g$y?YV`%!w ͽ U:;kY&zyO޾A(OpsDcA[m&#FQ-[M t&5&z$C#^[hpDRY6F1yk?/ JWN{~am Hg"a@*L.؝P>zzvW3F= d\䛆[[rhOf8K۲ OV%xQ^ǎXf󯧗z/CV"m֣m"{_`'QF;nCmݸEfEd/_42Q)^~Ws ;C}"JkY#E^>,(c6C\%(v[I$7MBEŞLn 56L⪪77GLij<yWA ;s;@*ַH_eY)%e3߰Z$B0V@Xy.:Zż[YDa=Z4d#Fsy~^W*Ϩ vq endstream endobj 128 0 obj << /Length1 1878 /Length2 19767 /Length3 0 /Length 21006 /Filter /FlateDecode >> stream x^eT6ܵwwwwBqw)ŵx)R8#oe%W9fVrLYI(`WPpwaRZٚ8ؘXĜ& {qW  kbf`geAHRs@jdКC(;2| { ݇3OLL=epnfb Ŭ Pt`ShIT4?9::8W.bjRqEu P Uho td(Pk ., 6;On7S gh\]XX<<<-\\-mO pp|\ fotZoS 3 𯑤ÿv0Obp_ 2qV^YY`gwڛ؛}(}<4JssvCEON]d>~&ٱpx[m]@..Xlw3?<EI 5u&3)8|TǞD<xd~T\#k}ً?qmca-@nȢarrʈB_% :fV,l88:8,Ll]~ puvRls?F2?2o!9Rs{[/9ELĒtU4GSdhLlCry͕AfV_ǔq5-#4N?0}!4?6M%0'90qv6B`;''@P`awp08,vb/b\lM\ `1bo$o䇋b㐍X9,~x_ó?$t9[*l#˿F~]g3^j P dj* & O=VfVVT;@TӇ㣇LY>jL w#@OڲuZKhD\4/Ygmos]xy{@/E|)%Tضoճ*& ("A _*z~r,dv$t4&OxzcgѯS+:6=b9bxtu?bE /L8=UpF|EZoɅ,ݪieI֯}hZpe~;Ȁ`_t)b`i7xl59{1:}1xo;/'<`(k]~DFkj(F̃:q>8q1 ~J3SYxN_;6ӂTn2okBɅ\1`mO]p%< ;hdgaWnCɭԻZ ӣ|ѐg[;'LQ}[]dbH\oS Y$NjyѢRlMຐ^O]/CEl`cCln&tap6Y%6ƺ86/DNuŷq&8rz8,VYw1Lיl$aĀ_Z E\#7c O F+BEb Ǵ.ě33҇ڥkLe90W?9мW;JJ|yi8UڙGVc܆@*}3:VB8T7as[۲C&n}.6͛z8ҞP"g^G]th`yF^ ձJ5ާ~H#.-[RY}ejo~ mjفsf8vjj5̩xK weo ,-^|AQAiݼ1+r"Qj|~iS#l"uo2-RxϷ8ISʾnl(0Ϗ*,)e|x2Z" <[vR!!^Yn=g&Vp_%_O&EaZTL0Q熌C%pr&[iF0tvUVG(DAcU[a[W{JBaOgM-"d23Y6M7s1ڊM>3C"c pǠnwFyNv8@?aTĜ>+al v[]~h!k)P 6O%+AwBcWJF8~5}E3>砅C0 :bU1uMܑzb^ XmH&_fd@ҙY]ĸQ먾A`;)C`_+Pk`lV-Tи*NEΉyh8,g'+sՌϮ + `@1K'?İ[SHDyv wW k}q'5i~iIұ=|ԎR||^‰|9C RV.UW-ƚPALEj5/>ZYOG CUa~|_==xDQUĂ}@y >{ܰe| u*m(i{+5MVxW"S{c,EH`iϺۥ`<:&'rX#Cc#,`I??kkdE:^<3>:V6-ugO>_=ޗ9bZ"ʨUbe3i$-޵M'֕V0WzWCV-Co!BwX|{-D ,f/J_A~sBGLSH!T<+u4 iAqBS!/>˽OfA@TʾGt=AʔB`#JR5ֲM7 ge5֟#ZAmpHft~aJR>wNiF NUpN]u4IcyPf9><zXrm. ͛Vc'R(=zNM6jCW`DS@iҀHwJm 8Iʫ:^LG]&\ރ<tdƜW# 9rxs;bd8+GL<q'=IPIAd)bի1 axv? 0XT9Z~2ESWH>uWQPojru#l D7fѧ+X3 Cꬒ.9w"|)&B19z ­UzT5'saK鄘\`S,SX&M3 }XMpZ:S՗p0Ċ $պ TNuIMA LomA2Kb1n0K&߂8 >^zSQskwL9^jD]$j. B&SEK.Im &qovW4T3rB.Mךo!I/Bauf4QTLy-a^SUk16%94 ԧAn jFVAhZp?a&j'K2k]f55|#:CĔ2Aj6$u.>j6v" V>CD4t=IVO iTqt1Jv*LRF>{{7޻E,[;LTn.a6/˵!z^x@]na?gXdyàgBX0L?Y~Ba=qN;9 z_mQ'$4ffJ,2r?P0 l͘oR S(:Xˊ!o~71Ç#f~˃˜F0=r.O,}tiCO&+e{$!E(^'\5V+)i;q>>dOe[%CJ`ayF^f_l؝7_OQP窎娴ao2 ~3'o&8ht0W~du@x]@)?ⶩ 1EZsR G5\eqKF`Fx|Z'甀'< ~'<90XY=I?q>gOoُͦ9*KQx(Rns_h),Ä\Ԑ|ؒvaBeX$*~zyPܔWHyď^p[Ib8}Gd]X,4yVpȝvBMqti;rzTW)3}"q/i+`,w8`*KesFu@](-ujx [dԸ(, Rqwᬑԋ.֐W6xA+/bfLcd!s#&s=.J:c8tr򕈶݀ow 3 k„?N/rqn`3S< 5ua\d*vgrԋaWIG|U3#tѣʇQOf"/YAcal U`5|{)z!,}@)hY8`?1r?G6>FP/L}^>:~5W*\d{Ƕiٞf~:Ԓln‹+Z7,<mv<5 Kb/[ik,vp1}b[=31EX5|`{`]4!wt ?_j<_b iN@Ko GGK L Cn6OKK|ʳmxJq >E=,"+H tBD=6V%a LVӨv~du#AIa@t&Z%g+@"zbS!^{V 0{my5=S{([Mjd.H 7V4qs2iѨY?6RӺO1czD8&)"k0Do?}L>[/yV2DEL=LR3wP/r !V--R @)@s?_cn"\Q?J&o0RSpr *s: щ2&t4`w `R`1P*Vg(o>-d2#~A; E"2,FNbg[N%ZLAʐξktLZNٗ>Ԑ}6 @pOv0rJ SM/M[/T<0˜.7+ٍnK=9- YtEON7mB(hDQ5ĻsK6`įp5'#T(#?F9)P , 5yb}KX^r՜"$Zr=/ﵒawa);.Y` } ]M8j,?e GђX|nޒUZVk =kҘ{ ;Z*܆2FhZ X3JAÁ GaWMZ>qS 4L:S(`LE"@ì ?ϟVhsD>|:Xu6ZBInKI:6Zq;\m9x#% 0d/֦"X=67ݜ4RnnP{ӡ&-\/}, Pla̮OWMQLxQF@+hmֹ !/Ccz6;%50vv*){3Jm<ɷ3{{Xas~ּX'IL>a?FwI2?ӫtX*rH!lI1g7E3ajm94~ Ɣ}IO V ?2BlU}AAқy7-=2DţH7dJƓN-r>⏉r+O@)&?,v Q.inƽ7Eq}IY!-v;2v_g@RD 2Qk-9\,q#xOZZWSfYQXLޗ躅Kik&s^(kmn?plsY.䛗  7S?ܜE|Dor#B3E!eUI >L³˳HDJ5Ʊ~&:? ` igH0@b{)W- Xb,면#g8wb@^MLϼXS0 *JKFVLB7F--oU$fW=8|z_yWZ)ф}ߖ1DnuaԱe?nT`HE_A8 iߺD\$]dV7=Ehr2Psg^= w>mCU<{wgVdK{gJd8]X sr٧SFws =5hj^x#\o5i^–%El 738& } VQf-SA%ȑʄGXNLLI0Ĕ*-ֳ۫o3~yϹ:!-2Y]|\%v2ll'((ڱn+x nMiND)ຑ wѿKM5GHgzs)?XNVQW .,܅x|4(܏,~'&S+'bbƔT'eMEg8TB gڐ+Bj9M~ew.+X{UqWAA}r KJ$hWqO, ,u'xZWh?fr̚4̟mu=7yښJyKy^r ^;MhugKs*f%tڤ d-#dFfBKR.X6OΏMcpR)SwP'g\]FD'H]W>苧]5c],47!_*gZJ3&E\xUNZ^SD!`je*8~>/; +Ӵ\+{wJ;p5* P68G٠fVmsi3mk2os_;sXYG2m9Z(6_sE̫{8]Ag]OXS OѣEFr4M3{ն1E?&$>gd} vԒE)LjOmOM# u(dg; KuUJ`hUnސݑ~KX^ȔDTU=(`1v[^^17wш5q]QH9BNdx<27ȥ*".tip3gm_P;Q=?#G|ps\״vpC_?&$e /Nc߅[MZ+X;`}pPr:7\\$_UW/]h0%T򱇴lBey甉ONTK%9٠Sg]A(y/-C C- f~ zbm9jF3̒tdN|OD4LUEu&d`cF c~\3\^O+6k{,@{\1e¶Ԭ`i'+oN4{aªLƗ0+`uk0n37(T8pq?9yZKMHۍEBNlɰAvpvVٻ항d\njZ|Qo+'"v$..-=Դ>]C:X;@~b$%J+ܷZ1ka4s`.wܝQSRrY45 e-![@Ғ/Љ+ZzJ[( J_SF7PvzRN( 'p-_OCO* S#I>3eg|+Pڐ~}g'eF,|hS6 'J9)| 6]xz‡F]k{12|Y|K*Ae_h6ruPu%$YcDRhC*0pNAT/-3nS:Op·xGVB ~ E '͞7/joODDfrcBIDM^jX޺syFP'azݰA[]xk/|`뙧LjH_z7E(\\ ~E4݇ZAB, !Z"Ox!BY6rhk]3mN]0H FɣR |k8HT\I32Ks$#s =^9$\ V߉XkxLg KFi![H?lzgQTDy!0|Hmdb8ʃt=V<- @/LɝwkmWO?:,ͰRV vt~uR&B|oC|*/d6&y|㚷eqFL1ut(M\O?:nm(~[8w=}ZN-X.ALHor=Kߜ/#z1y}{>PWdxwx n]!TZYT& l«0h3NtWFxoyԲ]Qۦ4onk'~a1`,q%SX8DyIXnNH[+x*g(=ϵ^ĿQ+O4=y`}ʷ\92L`pp=iV!mm[庩m6u{0:{+%  ]MA=]/q$Y1n0u.z1ލyt] oBm5B*"/<*+&c)9uNs)LIR5Y&ϯ";"ߎ1Ȏ;>*Sc@NtwNͭv\|%:OsND@K}FU#D@`#F y48tQ41BWcҟFh),=3 ~캟.kqj#wyӵHm~io hѥyiv υ-?H8uzRÁRUM\[ p_`,#gl ^aUfݸ9a8&3U R(bgJMŊNLeJ-[o=a?z{2XK͛PyNF 3ێGk;s\5jǵ֎;g^^ ivga747 MꞖ\ 1͑$,)ʱ2MJWH'Y k_\~VnS]Y;CL` ܉ mY]ݡ B'Tfֆkcx4'PRhT}(e孰'؆q֙pgUX& pVbND/豟7l*}w4t?]ˋօo]mG,ǰDsퟱrV;r/%]ø\Y&plh*>;:^"%5~xNQ=[YąyN,JU0BEﰵ>A}t`x1R~ zPZ~Tq2⧭ceTE>B+#hjZ˛+6bfPB!7ߝ׀ie=x)]'G !hq #>\<}xUC65s3 C0JW"mf&FL+yx_Yа)p\E݊, So)Bח(A T_d6 1'ߖ a$X Tc9'0{>Oh eBafNιڬD/j̿4i9U&뇡؅VRߴaT#yT5mt#9KɷNhd5 S;Oލֆu1BB0lGrۺ,o꾁ʯp0vbmг,uDJ%xj.4thIw3D?~,k$}qCϤ I!6MwfvJ5+3^݈½Ra}ͯ8ɤ]Mj@@ \72ʁ/[.GG۫: pP:1(5(w(E㍏!"G -:m$ez⚸(߶YGݰ"jy($\`_w%7Mk.3;)BV|,xఉ ZUFV"zd!k?6ĭF{Ur5\]aӆާg}y 6?M}:E.sgFYMɊ~8Rk=ӆ=3F7LՏ*Dd걋 ^jkqm5IM]XV+Sęagkwj6 yPu Uul9RE}Y}򯽳ύW;'L fG#k%r'@Z"h CqAYWSTsGVP)̓0iJ Dutpu7C?Lnm:jukB5Izݱw곋8Em<9橮ڍ9%)Jk_B[qoCr{h14yPΉciRe=s:YgfzK=-0ݗ|$zP'_r)_q@@֋PW.7y`p-HS;R/[ۨ htpoImAsq=ϱ>Fɺ~}ƄJʼnN>׺B489TwXC/_Ѻ"F_&lU%w5F%Z=};F#0=+&wlɤxx\zXT]6vxPNca,Lz[-.![|kdfAs11"p'}ЭbYi8_=>c3Z4)uA6׻p eegIfC2@~=*/)`6̡̍֏AЬ|zW&)6vySݸ  K#)78lgv4:r*IZX #ˁ~ 3Nw8SslrW?1{bƕ) Uu1 ɬqg`NQLynyB2ƽ-<#V1#A(BaaSJt<%&Tc^\YODm ӦPhkauȦ0)`)B5~VɄ,p *{|2vL]2Ŕ7 >1`fn}[쌅'1d?R5_wkæ1l&UQٽUt-eU*9-2 18̢}+K3|:Z9[]lDsh(DXP~>D/U\ = I4~L!=l?|XFFܟف< ,u^co'IAW9︛R_{EieN)饾%w3GFZ˕|33qɀS8wHFAUC;L-' \~}UDWqM:Ja#:*zlϘy*‘>ՋÝycA:Qv-MJWɺ޹F%cs 7t J~elꏂS7А:Ux<ʴ R@.C{Qҗ8'Rq2r4zKN"6s2/6WR m"zp6_1YBQG'v2$cU592@HtߔT;@ Ky+!RLSߜD (SȘw4dHbO\3jyoT:'@: q?{ tyY>&;38Eb#{8B}tX^k ­ 7ǝ+=RHI[8"|.lIAOY]= F}5Q _uq3i/MaC4VPк*m53֑E0T,q8pAzϞroK9^8&FWXw Z !\lDq^dm2}G%(LF\֍qDY)kåac/S7Dq^~2A /#I1tū_wVHߛ&/Nd^U*^O:hmKt6aB C'kG4|VN,V{pܾ/({u$&}/uGgƽ SWtq~#e+-p1U&ɰiIqW@ԐUl\#!mpzc!G`S̞x)Tp:'|1W1KM ݋;x`.™ic~6vw:jm 54cƸa dK0߳X쒻SDz QɭC珴FK\1o&6zv: @MxZFMvyu\L-p&y.ErR@d4ÐiSZFP-P++с'}7es _5{lIh@t\K'K?r݄i7Y#mã&--WX 7Hz)DD: ]x[$TP{` sщr *IhN'Ǚy:BeQ\ '̚e؊zvސw\\L?Z ͻ-50ˌ(#qDo_mEʋO8bRWb[WxXZwDXϟ\1VLƓk%}f#!Clˍ|*a.oa}lrj5~]GL c#:)RYÕ3ć^KCeћr8{#وoeMJqXOp199aE4;@{7 DA/B4^,\(SM*:!wbXA@8Crf ?!2ЃPd lʡ%Fʋ_תspSk/JN5xL'(эڅ^<ԦRp3XV8Vlj?/3^Ǧb5ҹHK7Ԍ߶EV,3['nžvhe J\y&Ο[x;jP8xTZuFA~2o7qPZ/gv&PGɊ{>=*~3zhamre'>ʭ6eK0k(NXYoEIp`x她 w:n '$'ZVcn n8~H C8Z>JmDΘHV ze8| A_v1K6ac,ljolH땍_DE)Nb,=8gTX-NeiՃ<^ (P%B.?Kbܲh-ҡR(xj1S4o/ĹȬ.E ؟uV9 OW{y*D=/_hLcMF7ssK7YԪ> R&FOSRnx +e Mt0d$cpirh0dJtϴ-_h>tAǟea}_vYfjL}tgU8C1H C 2& nSr  JHpSPi4y!H.B|}!GJfiϔR)OiK\hӸJ#=<%>巷7郎@ m}7TI}aAk@VJR51pr#9=OaO3\ J\L%C:+VR@ :ۺqd(18]фȌCTF#%ʷIW UÒ/ _U1EarbsOmFGڨW w5dm25Ei$Y,UurHJJE9]e=]DL(7J5\<43a"|A3'r%;VS?)auz"˿0boH4W ׍a@]6j/a$PvD=ٛަaƄ %P5v6> stream x^UX\-{=@pw-R(ZHq-nš8~^yDxu9yRUYb]YJJ0DvagcVY,l<(N , t 88y  `cCȀ 7rjz: gf3B$ N6V.sp237Z-[E qm 0 d @, ]@F]EKU-#"%S֔2Z_5A`3@YΛp%)M1M=U)vֿ{@Noz{ _Z:A)`vqq`euwwgruva8Y8ӟ3dx{wك!lrXmA`g iȿoT..s [k? ].'Ȃ_ NNk(/!o;3{߷m;88+#`ic۽3))IKih2+)̬yc|b^^7=rT*88u>I7\ Nwla ,\Y6\ArA(Y\l'ܚotf I;|m,Aoo(@7 BaXؘImlP.uRfm`- `{OU& &ԒvW:W3un:2h?l66 Usז\o Yx8xe;goZl^jfv76v`37~wNz**wW l[8y@''' ۛ88oy+ ptuXBP[? pX-mqu/ ~\V[fuxךboUwz;=_`kXXw% OFVxx3s9y|<v6v 5+]W eib165Ox多@XW>n)kH` $RMWQ0K ֥ YRBMtG!%6͢PP>Hk&#5v$s1}FeXٱZ^ cdq/>'~ִ(`L["Mݣ^\(9uy$fYdyEQ6vS&#ޕ)-tj-dwP"H m)*qN qc1ԩseVpI׉ΰH0SO.OgQ}$#^Aa{ =n<+h҃ /{2AAD`5a,ᖳ{"`+M=VR$BPݰHSϘ_G];: i=#x_-s֗)*]L@1zUCi9"XB OC̍$C@w[V\*cQPFwO N xV]!8"HS mݴ 7\ iJz'Kλ62vN Ό CH>}z3$xmK)34k2:Rm=J j#&:Lz(|P\w |8kDoτK5FՑiG`3CbێbbtE>M$yokEv2MY֣>N.M'im&ˑ]^ƛ\}%7.6XS(C-34lKb%i0nطCf0N]"~"`$i.uvBqybA- ь`WgP;\Xu@ls۱]]0C'@-M܍Wb7iU9- riG{A <*NRW9 K32r^fͅLc0soܱ #\Og:=sL&úIMzM¬P9t v8&QȘkoap S-o!f:V4S/q 0*n7M~|5U-.&fǿǸaf#RRF^la!=ׁي:%*!Dc t5Kؾ'%/P Fp2uU u>`v|pψ"/l2Y?!~781uz:6 `/\% )=PǕ~|ۨ.z 26+d13dr Wif{?q>b5|Y8C៎ g|9.ʍ),LXZ<ٰrTV!Kxn^3RZǚDPcrbzueFv =2{{n*tIpX\p:W2#)/E5v6p A&ֈrF(Z2Υ&ֶRe"pY5;Qq0ԣ, ppǞId'5]V9 QCB'_wo[AO6jT= 0 K:lV1ftC;ؽdDw{\>%O1# h i1f@Nvd1|"֗t;1@ɼr/_(G%I0e/?쑴&HkC8c,GSG1 -D'1 h Q|7i36yhv7oX[ŝq%ZSJV q͛mMT۸Ż>Nq:ZVj&fGfD.T,; C}4k(<񋯤R~35'J-s8;L~$ALeO;40ҨץU z´uR7CF7qYip5'(?[#Wg3~/>F%EjwݸUsq& u_;9Z< 3bxAc=bg <fFmb#A}{=2#* *R~ ٨_gExV[b({jTN=p)aȹ@1> pdugP}vUE b3{Y~!8dSR/_ECtAT &E&wt\MK?e[0hPy\7||8 (E#~[%&/OO[@?9U6L AqozWeG{P-˭EVF5& O'׾~=Zӷۺ7#+iVPe.C5Lbcv7!;gX5=NܮD'a]IyKN. FA Q_YpAQ)ڊغ0l/μczF~i>θJq'5Hы'D#)O&g_`w ʴr@Qc2AJƬ^+._(..e\wc61'}!0R4Y6pn~Vl\BgVΌ`Fa u:!(HȮN)'1M}ߜ ɭ3qbXӸN=ŸNZ'lqIKy]9+Y1i9{X~3kRze[o+;*;UY-zGmCX^0s/MK?c6.-DH[ d{yEXMTv*e.˘ueU2/SxMvgݲ0d uBvFh6m5v5L, h—e}(ajjҞ>3i=(ze<^-la:Fdo?ʌgtЋ5U%p\*/ ñ.^@ 2ܰ0uElEF5*Lu?Ru/whKs;o`?X{ _g$*~JƓ&z/ pl=]myqt<iWtI70M,U KN\W.]Dl5NBJ8u=v>#swh%l^>'K]{lf?"/Aߣ}!-\]^6;Pp݃ZCDZ#h(RkqVS4n΋q`ĩs/2 d9%A}1Kv3֊Y.c2yNF7X$?M[m_[(k_(QrÏnUnQz=Wbfދ{F"#v=MjJ;z)=͵/^DžU_qo-{Nsp:#epC,zrDGۭ~0r}޶nRХ+F_nш= 1ߠWU O)Y^iW(7i]˙3׶a.jagk+Y5Փ*>skl ]75Q6pçrT|b6د$| E:t5 !o=9Le-FnnMQ[=DʄGcm]_T 0kS_P֜UkC(27^._'C밪7,޼lPv0 HR"Cr2D i6pʑD9OmI[F|8fu ^&3̏bn& lbgEkt~a;Ҝ gz"0gE(gO&@I?Bۓ}\R|b!׎"mzi_>8HĻoO+x&]8=y /^EwM8w >Hb98> Mrb^`"?-RG&ЯŮz܅]_?NUq$\M5-ҚcLދO'2/&NЋ d(ͽ bz_{1"Q٬@RiY,/4+Rhk̃Ðg^ Bc;S&0mUZs2d>hCE˔ȖO2E'<h1T fƕLl5뎦8\D~2|}09*wj"ZUƋD[mh<;AiuQUI)'ҙꖈSe\ dڄOM`C{Yyv6,ʸCt&j7l".O=ìI?J6-q%Uso{雕LŌ鄾w3:i5IQ,LsO22OZm[; ⷃv:j_\3:2{qh<կ(l!7pƲdͤ-&"N[qU/&t]Мqa7l=7 0\{֓{\3’&0hxmՃ%M? &]dm?>rJW{e)SuAT尟Bokd2n2kBƱ߃K8+&ac=Sd%{jV/r~/}| t>5wpp@ǒOA͔YMAXwMǿJ1 D(ܳ^!k#'fe,-i>F6FOkF[\e!_6by?qK, *h%k]Hr+ySUu9ϬS]m=%@تĖe)r:MP ʼBv=ђɀ>w#@G)حLԧ/y1c~ ;gUOʿqJ+b ZycVR@v_lƹ`5-}UY )\RcQ} 4o%UHMЄK1Z((+?+ڜG^͂N&$>@|6lf ;i`.Ч?DZX2gTk?)V:7\k?- oѩ4Y˟'%[kt H% PCB iW.H%֛ͼ/=2^,كzdдD;& kјaUV2W+e1]Lz}C^ГNl\tp}04#ǚ)UVt#9N-X$LWڻdR!*qr2È|IIMUl'PH:&Fwd$T؅N cw6n}LC%@L0Y+^^ggzcW{kD2hW~)T;*Ջ4%LȋK#JtdFHM:V'S=4zIb;ϲ֤LItk|>LSpL5)'cx R2OreYIfj-U?=j/6?Ĺ:{tOL!@`Me!Ww{:ف/ق[t$=9f:-jjU.@\ f[8t9ݶg_iA(6?w`XNp ?tF8Bd/ᚮa~!qډ؏Cn!tdD8lMr1XoT=̍!&xdat mQ;%d {Jd#}7 NB̖rlb> ƕ3)$sCYS9 }n-n@ U!6.7M l쫁hѸàGl.0^ "nMN0Q8*@-:Cde1n}(ܞRm%^9z{jZߓti#h3wrjN.@ e٫7W:Ђrhݍf۫v7˚~/ j|Χg謒Ww!~5mBQFT?o'͌tzwx%#&_d񄃤.EGkYm=*(IO(;$b fj.kRt0,P-0sۖe5ԺDk,TDD/ZDKz/Ey ?Ft;Zؘ-z#O\?f)fvj{)nvAZivdf:&b&#kH aL;[I^$7 #˚+n!+b;>W-}CerQKQ̺2i69\> |a/q@bE{&EG#MIN ͖MIPcU*SqO5;ciNHdUXD2`$/y@n E,k3V Ow?D[j;V}~AUE.Xk)vpL&RcVy ?ܑ~axnY0FBoԜJ:.^nM03msc8#rD}L˪29k=0`%9,&i?ڑ$唌Ǘ,9kfYW[?DIBTR㒧9%gs E &e Ų8GGH|`vW;PW[>`:ۄa tN3'{^$ƲD*gBo4"A,Kb+PRcXOK W(R:hğvϧ^wL /KP<ٌq·{rSTNOSlMen]N$˲k+Kn4Ux : =-s1h#iBj߱?s Z̾q9u\f߬ў9&cjđE s?k!oV/dQtm%Lw{B߃wuڕ;3s\CKFTi~h=/ҲD,SK϶5ӊEܷ㣶3?zP{|lNq\HL/g2 AnyJ-Z׶Ə׭sV s?!;ОNHxJ3WU*:ҩS#ItI󒮔WyAB 5ƘYўՎJcK)8{>`BFv'\Kpķw̋$r>Kşy(R.~)<~͋2] xFթ*ly~(z[ؘpSlBhNdRኖck%b-g:FS grt Dž0[zNwE9>6zo8=S ;\oxօܽAi[*=: :WP|48=&g~!r>@a,GzIu7t %D]/,w*xEpwV #G]rץ"R RN}C+ ݕLN!DžEٜo aqŷBvY-M 5U@vאʎ!R\\Gv\w-톤:x& D>iŅakc{0ٮ90#DV:a0үu6YoW׎;_.}0BOG/[7P#P+:{EX2ӆ[9#2{c$ ɥxv>'.M\u5,}m ˂Ő,õ o0=׵Ȕ{J(N5&e eFq/A`syjOy '>4ty xF0죾]CU3줟_O)nWG_i+Mأx,H[<9xYNH лrJ;*+ 2}1Vf:|B?FRvwVZ Yd`IthuÜ}u]C' SoBygYb[+RK 5 !iҵ8tm`?0onةzsRs=s/~N3@U˷55ˁ}G[|A͟[yVM8;OP6Wi͋+ 'K']9O7ցy.j? ƣb`_9Zz.B>X2'TIAc]^ўyjH=g'>~mW5Z[ENm +y^ێǁ]<횁iP`>5 ,,ڟJ4Pfy5>hvG8 MZSF鄦eU%Iܸc- B %ƚL3xȋjvռ=iSe8\G_(XGgw0]):IIN2d0\bAV\ oL XWO #V{KWt"uy^CDP3wlw{u8b_44mQTZ-hS==ä~ahR>C7JG`jM='aܿ?-{/Ac,BD"Bsd$qg΋QmW/7E̵zűak⤃G;M4#Ӥ_ "X 伣_Rdwڭa2htYcoL̆8gJoAüh;a+V'L{YT3n#Ep$vGHhD.Е9#,>s M#tك@]@!+tT;;KھDBg8ngX:]Ќ2-Pһ[On3O|ץ뭟2%>DbZ(Hm Ctc:pqX͞[6{VkQ#L2=./)GxnW$wRwD> .'KG= $fb6ir;_ƭ:~1)sHj.=OOćQm7>5,t&…,c6?ru/'#'H%j:PӍ?6v=f8G?)/xٝ.=-TC?\ "sWR\C PkKO<'@5ODgOfԅw>k6Hh>*)nKy>k\dW4E.^yq_h( 658ܤCA­89BhGЊXt$mi"~괖H^V{Z{O/xIF<?&ܠ;>?@팠m45 ȅYz,ꩯZ-Uk؇Ϥ:iwݿu LyrhvmiK}Fi4[~hwj=Y.c;|B&ݵz= omS/aG@FQϙw<8. ӥWln4qT;'hktaE҉KU] ^ppY$9~+Y~ESp3Pհ5U9C䶚.j "f2/2cL$'lrW=3!2[f ȉ[8:ٶnleۮ]˾ٶ[n\ilk-99>CfeڣQ- ?zER%x Zs͈:3pnE ~/;GdDЕj#pܔj9wшy"D3tjIJR$Vw"BHsTڐi heh-tD՛`j r_.53D(.8|`g JR޲{YeB<&{#CyXFD'? I LXDߢpʽ~TJ=_+k;Z X9ݙ5yc]NGP̡!ěTߺ-C2xQ[^Aů)րaЋN㝻:SSW/{pE6_31 7qak)sRo1Қ 2 '4ABdˊk] 2`° fEa [tTkb% ORE$_ ;2]~O GLӒ &] ]+*=ns*u 0Hth/BB~N Sgn7g2Օ#[Ճg|:LL^n;.13 v8dT2kfʝv8-n\Mk=c]͘t:F4S0UϝlAا'C!Teg\r'ZNEM%uS|/z>Yt(P>}x8R{dr!@{L*_rwh&+ngW=ߌb'K1>xh|i׬7ʛo{+S AM&|@#,V"Q/*!1|!e@s'qeRRMH,u;ȉ";X}`M|@0d@yyOʋ|4x H֖~GN|3.L6 1Wx|CٔE`u-a}dݼ8a(b MT8U5y~"Af ,lzVI*QDٳ$D):ʲQIM="{Ude  t%\w[E.4YtDG3m]€Ki*8Rϔ2KYt ֬3*ڣ窙7{~W[ƙ}V y#gXu"N^ zՈ96 Tj*V\;3o'Q-io\[ak-z&#/uJPRDet,XPGgXm;ɋƖ2`H^Hj=ݽ)T @xى $XOO/ >Ǵϐo#"J'`rs>;`~8l `a]΁dyk mDHC{w-;,΂>TJ~^M+OkB;tzcmS=EBEU;e% ]Ը}S((U7dA_. 9}H/k%FF iN&41>Smb zB.lxJ0% D%$]*4iArj_0ץO#SOLr+Av#| BrIWde ;g]t#ubA[T@Hu*NQ=dg$q7uDX k+Z$T/7||ݨSeE{5KWN7}~ɛ|k'bwџ(-gV}+%5& ?~ynb09r^Q9.XUj-) mkyW% 7qO4Ym'wIzc9K`0YE;`J${^+;uCl>*YI.bx!.4tQˣ8U 5Q95JD':c>a~ǯVB,EEo)b&"5}?{bND&&@@4IDLn%{vE@ueuC&\KS_Xf4e7SMTa0x5Ef1fnMO班[0=g1g zZ7œ9@?`Ќ$ba<{>@;۔j[m< Z5qNC|`n |v$dc=n&,o# -`AClL2k%=)@ 漺(B<E5]VsړZXً|Y(_JoH\_c^g⪆$9\|2&r閗O/%kϘh|.ys<.d'L$Un^0roZoFXcV>!_nbROJɷ@`%bm~O֦K1Bu2'n,[?No"e0]ђGiwqOWï O$,M{mDܨfT@-~M&iB. HYN,Yl>CbpfGY}'rAZW[YaNn0^T7LPP`b䃱Pӆ*laXXP)@ ;r w6^9$/Oc|L*S-5>h Y 0KYE(I`tVT **|HÇU|.;i~ PAV@k_mo߲~h%'Mȃ+(} FUjjx/Z xDnŔ:a"X*jk,d᷶J@oyT%:ŃlsP.LF}lľROz~3# Řq3c9}b1B1%OVer!ۄ;.DY# q YHl>)WY*%4Pt#Q6ZOٲFĈJ&L-g]T͌j0Nr/R(Ҡc ?s`Ŀ6!D>mk: -蘳<3LMy8/\wOr А$: ϮEE%ClM,mYx\rAecEϱz;-lF|,,( PT^"X6e/"LoK$}-b (>:e #ne [91h+ '|k 1̧W m)+pu<–*`zvr-RUgKBol r(Zü-}džIx.iv5թN<6{%7]LVO@ `S%t Jkv%b6#t_$'%j֣,cώ1ɽ9Hyck,3Ya۬'ϫ"x(>gc9)(V]ZWa$չ"`K(e>ddWGmcc %?@촎i^bܻm2zĜ479EM75&i\MtĞOK#k/Ɛ/gI1R|XLs_m脸eBo(J¤W$`N8~qzlѷg]g螷o 3&U7\S" nrU[Ja!*߶f_ ,of= v .+IP~p-l7$-Q4M2'4}+[_ӤB-I@x 7[&zF׆KRkWF5UgQnYF@`07E0SA\u~eÈj>(vB{_7bWT{y mt6>/߲xtCq4K}3F%OH0;&EnqxE .:rEz9֢yH;:f'1#)[gR,'W$ PSJ`j|R!y?'~Vo 6 {CozxO]Vz"Y!&2ջ82@QAL|N"+9rr 40(# >p[]ý n6H'[t> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 133 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 134 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 135 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 136 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 137 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 138 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 139 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 140 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 141 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 142 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 143 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 144 0 obj << /Length 814 /Filter /FlateDecode >> stream x^mUn@+HɁ1# iAʡIW!y3CV=$z̼X/7^#0y 2a9F77U__;?Є`^^].:reB%p%Ib&ɽ;P2b{d1f7tf[G_G_G6.GR.gױ:_~L^Й_7 د" ~ |\%c.\'؛\zr?^ќ2G4Ϙ#RE[ls#\+WClk ff5[-29-zf t@8C--l#gff ~ق_jC/ gȽ-s4[f+(R3~:Ȝ9[#Ò5[%dW+ŨB+m% ڬ/@7*|ly#+~j, endstream endobj 145 0 obj << /Length 324 /Filter /FlateDecode >> stream x^mk0+jvRtBS2vɫ)~Ij+8}?I>u/wO)՝e*C&fD嶈K[Jt0]B 7pXq#'id"+w߄ˎ5GaD!h[sJ/|*2x$ B:(Bq{NA,^ nXc .CYZ,k4tg9Z0|i0%yku[I{|/Eo4T mH2Js6Ovl h:ktF *B8/M88WnC'4 endstream endobj 146 0 obj << /Length 520 /Filter /FlateDecode >> stream x^mSMo@ ϯ= C|RPD8l[kH D&$k{=$yy~<;.Z"tVFYS\jp+@ 7z9NU8_JT%pܗΑ=uTgG !RyJU[HBbʴw'&7r2X>V>mdY퍹PPoݱq,'zegbK;K۞H%KYay r߯ڂD3(Mєеy>w'RKo6KqP^fW%&L$ M4DP)IFĜ"jdJ!Y 13SaEi( 8!lN?&XLbu؛]q.0pQ MƄYG!7j8mF1t*Ngo[·}QjKgHo4N?L'B_6;{\+^W(Z}ۦ,W~6z{ۈ endstream endobj 147 0 obj << /Length 520 /Filter /FlateDecode >> stream x^mSMo@ ϯ= C|RPD8l[kH D&$k{=$yy~<;.Z"tVFYS\jp+@ 7z9NU8_JT%pܗΑ=uTgG !RyJU[HBbʴw'&7r2X>V>mdY퍹PPoݱq,'zegbK;K۞H%KYay r߯ڂD3(Mєеy>w'RKo6KqP^fW%&L$ M4DP)IFĜ"jdJ!Y 13SaEi( 8!lN?&XLbu؛]q.0pQ MƄYG!7j8mF1t*Ngo[·}QjKgHo4N?L'B_6;{\+^W(Z}ۦ,W~6z{ۈ endstream endobj 148 0 obj << /Length 622 /Filter /FlateDecode >> stream x^mOo0R{HEH@@mUj!14$;oLflw}?\fRMjI q^ [vf6W۹zoto;Ż2ټ+5=;">ېPw;تV%?i+BDؔٺ*z;ȧ̚{Oiw% yk;[SE}b57!{FoMf<G׺X( ^_ªѷ~*av4iٶNR$zBE³emm2Uj3 ^L$X"r#n،Z1cz<"^4 &@8caȐHc#IsoeD+ Ţ]Z4ȈM3@f&͓ ^{ ]1):Ǡy 9-#kձx$WǍFǬ}@K-kmvs^wDw5cCOg-ƃ`Y+i~fEi|R`58G{1[. 3-q- o\b> stream x^mOo0R{HEH@@mUj!14$;oLflw}?\fRMjI q^ [vf6W۹zoto;Ż2ټ+5=;">ېPw;تV%?i+BDؔٺ*z;ȧ̚{Oiw% yk;[SE}b57!{FoMf<G׺X( ^_ªѷ~*av4iٶNR$zBE³emm2Uj3 ^L$X"r#n،Z1cz<"^4 &@8caȐHc#IsoeD+ Ţ]Z4ȈM3@f&͓ ^{ ]1):Ǡy 9-#kձx$WǍFǬ}@K-kmvs^wDw5cCOg-ƃ`Y+i~fEi|R`58G{1[. 3-q- o\b> stream x^mUMoJ+C0"d -D:0ɳC'OTTWͧ,b4^_w o~=?{pv}gһ+I{>߳l: =ϯp J,J,/7p/6CzAT<|z(!IsOv:_\M#Tg?I̒8 L+bHk@V.H,*K0X7KfAZc}5}UiѺǏau5#Q4`YeErzSsB͘dKL Hk䤾&4ԓ]&'L&2Q}jOZsoY':s؀bTj||s,䳅ejB>[X,mJm걐v >.8BBϜ{!6ϸng^ 6SzKz͹8^R {m8^[JJ-UfK~lpyž0da^uV-ת;u[qR:x~-~yEM6[-Mzpro玷kՄ 97s&xNQ؟-998m\Zנts_ayqq]Ț8Go ] 4;|V{cy}m/8 endstream endobj 151 0 obj << /Length 952 /Filter /FlateDecode >> stream x^mUMoJ+C0"d -D:0ɳC'OTTWͧ,b4^_w o~=?{pv}gһ+I{>߳l: =ϯp J,J,/7p/6CzAT<|z(!IsOv:_\M#Tg?I̒8 L+bHk@V.H,*K0X7KfAZc}5}UiѺǏau5#Q4`YeErzSsB͘dKL Hk䤾&4ԓ]&'L&2Q}jOZsoY':s؀bTj||s,䳅ejB>[X,mJm걐v >.8BBϜ{!6ϸng^ 6SzKz͹8^R {m8^[JJ-UfK~lpyž0da^uV-ת;u[qR:x~-~yEM6[-Mzpro玷kՄ 97s&xNQ؟-998m\Zנts_ayqq]Ț8Go ] 4;|V{cy}m/8 endstream endobj 6 0 obj << /Type /ObjStm /N 100 /First 836 /Length 5445 /Filter /FlateDecode >> stream x^[SG҆}|± Y``fߓ5= 䈽0tWWWe̬N8J()RIu%IiQgQE%8jQ;iYe\dM+81(Ҋ,J>8*(K*NUec,kʢfdj*Wԫl)($!Դ+ClJX NI KIʚ]0X[UUSTECՄFj# *iR$"pZC$$q8ῤ$F@qe;I :HZr$L4LC Hi,I1$DvfڜH=A\Iy!I^B* Ej)i N+eV4u@2K))S"D ';;^ܳDE8r{?w+)l~;>㻯xkӔT 5C쁜#(q1qB S%Ёz  sEE-Ǡ96rr[`nVOۻ/; ,دw"-| ffI+ɔV ? !ܑ.+H2RŻuKtRWiƱ]r)[PIr*q“eC%*uT$!S˹ԨsZXبcEDnc6fX6Z$ <+6ᖕz~hiIdMQ]ܬ+w^1Ւ{%9_$&)IhѫRbֲ^`4uYBBD *5`GZ4 P]$_f-T!Wy{>ؠJJU7 ğr|Z1ə,Oi E1Id~k{2XS=V!v t3A!2ǙQTQF?.{(3Pt?|wz +xH#D $G)P R$&.pqQ7 4nXm 1UCzb+b% um#肶%wem;+D<ԁIp-*hDqduJjd9z4]Y(Q9` K.#?h,T:hEk21(\Hω8@31 썝0UY&-p +2$:VAfx5( ץ /BL7WUrN#G/burq#AMwd]FE`?5¯TO8/%HG XR':%QYB101uf w~()P sY EmDL%sB%^3f$;J6OKMT4 f$? ]9Scf)ϘWkU,[ )6ė53#t7ϽKۖ`'6DB/bMpUc&ڄ예S H"@Lbvnhϋ"ndqmTU؀"کJceoTھW$67_4T 05hc<߰:V}Yͬ`xWpi (}q f-J8m} . ."Ve15" ñ Y,GYGB!x8NOA8j f3tLa7aط(WE#py*BmcpJB;F1F;cci J)w-1-e!538uFR@+x6+(Fv ԯV铋ͳ0djyF ]ncvOoq@d ا4 7Ok>h<Ьl 4)X|ؤ.`-x]Js?Yq5K[O{,*u4攴?Ө!jWq}UMK-O5S*QEk'vG6/c}Z]lQ/+YNNoG7mz=bWoW$~l|yF$ʭ3v9 }eK.#NNuUkppt~/C-`;rtrl$wCGq1XpOݞ;p߻nNܩ;_] i17r]ݸh|ndMF_v8t?;u06̶k^<vL/em2 .{8G~tU1.߸q &`ZL\NN/'s L Ƴ{'Ӯ謻ع׵k.}z1kDhFvy2 bvf#mv7O=MP):Mn.Y~wHsN;lEo Z^{~j1y~ɘͮx8f*@9LXU)lj^=gԱ}4Rp2vNG˳bnu_jb 2xR6ijD3:xV0pv?(ԕȐhd$WXY3L]">Jrݡ{;{>̠r|l( @]?o.ܑ[C,owÉ&'㩡8~5: )u wgISl#?~xaYZ; h"22adDddiPeĴY*n5Y{ً˰H "^z䰪?hV=a_G^zfq+^#6,xPw/5`)^pw~c&,Szh1~Io8\Oͬ9[ry=+pVph^-܇_>h*"#@e/ʓd?:hCJ㕞gU̜?20/ ~8|+:_DxqXT*3mKd>:N.)p+9P<+81 ;%6ADqb~x[ዟ፯kaAaWP1Nxucx.^P1M MRuŝ6g 1k09NGwW'ǪnQRtʛGf@TC/~9\{>ˌz6Kk'ɒ뻫dtNd.9Wî ww׼$69a_tMުNk\@^l@'&8aw̵MfR.7щ厀C|.GRʦCǭ}cya3N9!LQ7R`*7gi6n.'<l>| {3珝5?:o ݡHGޗ\U퍸ymؿ>BD$cdUOi\依=]C j6kBo|N qv85nPޫ!ЭۂpͿ*hΞB9cYcYПM $|g {Pe`7WTX+Hvfu5!c\H&L^t@({bt>H*\|sϝy:#]ˉnf}IYŌ%i KrmXi31+=_Mf_|]h]On&L'_34' ^EI=\( ;TX\2lIEm(K7m˖ڌ> 5-W mPr^/g6'54fʖ/lò{#uwۣ@M%W l00KW斦 v2m ;_eat6'&jkd-x7ِ|Gs+2$zĦć˗k-DV̌VhK[%*Rgwh;(Cָh-JRm[quyG}:!TW>h@BiK5`cRc}tfzP`m-6U/rI]ٙWVnK|U.M7I^eҮWV*$qԧs+_YKˣжTOdzZVL]ei]NtLJzZ0m- .Uw=s=#!s.AE|j=y1 ꐐ]C0y>S߉/Rl"]ЉfP"m_'<l :QM Ⱥfilmow $'.[w0)^pABOki1θo!l"Elgt껀9a\|~뫂&_Ug8 I>I.\/)+# endstream endobj 159 0 obj << /Producer (pdfTeX-1.40.9) /Trapped /False/ConTeXt.Version (2008.11.10 21:40)/ConTeXt.Time (2008.12.07 13:05)/ConTeXt.Jobname (texexec)/ConTeXt.Url (www.pragma-ade.com)/Title (texexec) /Subject () /Author () /Creator (ConTeXt - 2008.11.10 21:40) /ModDate (20081207) /ID (texexec.20081207) /Keywords () /CreationDate (D:20081207130540-05'00') /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.9-2.2 (Web2C 7.5.7) kpathsea version 3.5.7) >> endobj 153 0 obj << /Type /ObjStm /N 7 /First 52 /Length 264 /Filter /FlateDecode >> stream x^uQj0+X]"e!B(%҃"DU*#̎4A8ЖЃi5b [&>gX.zvPT.B=smxi@< endstream endobj 160 0 obj << /Type /XRef /Index [0 160] /Size 160 /W [1 3 1] /Root 158 0 R /Info 159 0 R /ID [<17CF5F8E504FCAC8AA892C3A0A8AB12D> <17CF5F8E504FCAC8AA892C3A0A8AB12D>] /Length 440 /Filter /FlateDecode >> stream x^%o a7gf:ڣ:Z(JZu׺_jɆ!iDaq5K"i,$ G%P3w&Efd7j*q@${ۯ%B@,{ȧcpN<8U0U"prpjZ8 נ|C-4@KwayMX6Y%Q,hL*NaX 0 VC @' ZXC`lM a lnlKfvH/xޖv)ڭkW/*|Q>e&{Wkի8wc^}'z){˫_@׀^J?5%OjM=@a Wy( Ū@D%h}h tJ<9ZJƽ"xWbdWRatx)K' endstream endobj startxref 412889 %%EOF context-modules-20240428/doc/context/third/mathsets/VERSION0000644000175000017500000000001313255060277022333 0ustar hillehille2011-01-22 context-modules-20240428/doc/context/third/sudoku/0000755000175000017500000000000014613513621020746 5ustar hillehillecontext-modules-20240428/doc/context/third/sudoku/LICENSE0000644000175000017500000000206614432226052021755 0ustar hillehilleMIT License Copyright (c) 2021-2023 Jairo A. del Rio Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. context-modules-20240428/doc/context/third/sudoku/VERSION0000644000175000017500000000001314437166222022015 0ustar hillehille2023-06-03 context-modules-20240428/doc/context/third/sudoku/README.md0000644000175000017500000000261214437166222022233 0ustar hillehille# sudoku This is a ConTeXt port of a famous sudoku solver by Peter Norvig. It provides five commands, as well as a command handler: 1. `\sudoku` typesets a sudoku if valid. 2. `\sudokufile` typesets a sudoku from a file if valid. 3. `\solvesudoku` solves a sudoku if valid. 4. `\solvesudokufile` solves a sudoku from a file if valid. 5. `\randomsudoku` creates a random, unsolved sudoku. 6. `\sudokubuffer` typesets a sudoku from a buffer. 7. `\solvesudokubuffer` solves a sudoku from a buffer if valid. 8. `\setupsudoku` is the command handler for commands above. `\setupsudoku` understands the following parameters: ```tex \setupsudoku [size=2em, align={middle,lohi}, evenbackground=color, oddbackground=color, evenbackgroundcolor=darkred, oddbackgroundcolor=darkblue, n=17] % for random sudokus ``` As you might notice, sudokus are just `TABLE`'s in disguise, but only certain parameters are passed in order to enforce constraints and keep a sudoku in square shape. If an invalid sudoku or sudoku file is provided, a placeholder with an error message is printed instead. To change message errors, set something like this: ```tex \setupsudoku [placeholdercommand=\inframed, placeholderlabela=First error, placeholderlabelb=Second error, placeholderlabelc=Third error, placeholderlabeld=Number too low] ``` For actual examples, check `t-sudoku.mkvi`. context-modules-20240428/doc/context/third/typescripts/0000755000175000017500000000000014613513621022025 5ustar hillehillecontext-modules-20240428/doc/context/third/typescripts/README0000644000175000017500000000112111216266717022707 0ustar hillehilleWolfgang wrote this in http://news.gmane.org/find-root.php?message_id=%3cloom.20090331T223114%2d61%40post.gmane.org%3e == Installing Typescripts == Put the typescript in texmf-local/tex/context/third/typescrips/ or in the current directory. == Updating Typescripts == == Installing Fonts == Put the fonts in ~/.fonts/ or in the current directory. == Usage == \usetypescriptfile[type-...] % load the typescript file \usetypescript[...] % load the typescript \setupbodyfont[...] == Example == \usetypescriptfile[type-asana] \usetypescript[asana] \setupbodyfont[asana,11pt] context-modules-20240428/doc/context/third/typescripts/VERSION0000644000175000017500000000001314114515277023074 0ustar hillehille2021.09.02 context-modules-20240428/doc/context/third/squares/0000755000175000017500000000000014613513621021117 5ustar hillehillecontext-modules-20240428/doc/context/third/squares/LICENSE0000644000175000017500000000206614566451643022144 0ustar hillehilleMIT License Copyright (c) 2023-2024 Jairo A. del Rio Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. context-modules-20240428/doc/context/third/squares/VERSION0000644000175000017500000000001114566451643022173 0ustar hillehille20240223 context-modules-20240428/doc/context/third/squares/CHANGELOG.md0000644000175000017500000000050614566451643022745 0ustar hillehille# Changelog ## [20240223 ("Авдеевка — это Россия!")] - 2024-02-23 ### Added - CHANGELOG added. Previous versions won't have a CHANGELOG entry. ### Changed - VERSION is now a decimal integer in the format YYYYMMDD. - My ConTeXt modules are now mirrored from Gitlab due to personal concerns with Github. context-modules-20240428/doc/context/third/squares/README.md0000644000175000017500000000252114566451643022412 0ustar hillehille# squares This module only provides two commands: 1. `\magicsquare` typesets a magic square. 2. `\latinsquare` typesets a Latin square. Both `\magicsquare` and `\latinsquare` understand the same set of parameters: ```tex \setupmagicsquare [size=2em, align={middle,lohi}, renderingsetup=none, n=5] % and \setupTABLE parameters... ``` Magic and Latin squares are typesets via natural tables, i.e., by using a `\bTABLE` ... `\eTABLE` environment. I'd rather use `setups`, but it'd clash with another key already taken by `\setupTABLE`. Currently only two rendering setups are available: `none` (it does nothing), and `color` (cells colorfully painted across the HSV hue range). I promise more setups will be available soon, though. You might be more impatient and want to define your own. So, this is how: ```tex \unprotect \startsetups[\????magicsquare:\c!renderingsetup:mysetup] % Idk, something like this? % \setupTABLE[r][odd][background=color,backgroundcolor=red] % For natural table tuning, see https://wiki.contextgarden.net/TABLE % etc. \stopsetups \protect \magicsquare[n=7,renderingsetup=mysetup] ``` _Caveat emptor_: this module is only for ConTeXt LMTX. I no longer use ConTeXt MKIV, so no support is provided, sorry. Moreover, I'm using cutting-edge features, such as new macro extensions. An updated distribution is recommended. context-modules-20240428/doc/context/third/context-notes-zh-cn/0000755000175000017500000000000014613513621023263 5ustar hillehillecontext-modules-20240428/doc/context/third/context-notes-zh-cn/ctxnotes.pdf0000644000175000017500000760740114411653175025651 0ustar hillehille%PDF-1.7 % 6 0 obj << /BBox [ 0 0 358.242467213 219.344161664 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 607 >> stream xڽn1)|ěǿ@%$.(UI/x}f30V/9d o0W  e!yU<,ӳ>=|c>o 0oi/FyY=D˥l3_E ȰY1ڒ(;"Y6wh@EY;Tw fcssɱ^)z땘s\K/1-f\z,Xhv:KR W JIeLu67^%@J1DcpC3r2|zۛKs,> stream xڍKvMsͿ_'O ,j@93Fjmϟ/ϝm̟=fs5VgY:a:??rgB/9ZZfD:Ympg:}!(z6[ҀWBS̫6nV3nc'/s֬riwi88^y渹R+<YAde)Y}5Wxt+ϖ44E{]{ť4]^4d4Yp<ߑq+73{_ݶ֍mZ ~>koT1w2y^_c`{lyx7H$uLa~n ?TL%k dxm?5&+`dds\Kb46 f_`1[I}z-*MC4]3Oic`Y`~1JZ<ֹ~YN >4c}4Cg}kUxg_qG+dvYϸ1Um>;VjFi̛ܳ/߭i/@YütoߕdQүwfL['FhNz]謞caWn",[9#k-K*kdF {͞毻&63숥g}Ύ݄UỲkp}l ߩzwd-KYq gȕK{i=,?5ҚC#k m;R_ӴT&l+oR5eXAֵ}!Sąd=dkߓʆ6>8},H[Lܙ $G{dGci׏̸CW J_ʌ]|Od\5x~iM bĐoݖ~41]LZV[g1m~X_beek/tK{Q3ŧ 4nVu,DE ocdiũutoFZty5F9_fɺ@LlRe;PW e<\Z"=ؚEfq^/߹>](imOǫʃ9o7d5o>>|c7T]c5d1ei[Nj ׸>|Dԙ4W9k[+|.gW!L&hYkh]GS^=-ʾpjf c8]y(M'zм^.Zg0\hi3ϛexbeYz,p~5a7Lrh_4_bp4N2_.32 eFnmbkO?ٲ&'fRci{Qbork/FWb444-x_}.N/k5CxЬgY5zՊRoŐܘ9 l~R{t/QJnzy\GVngµ)ƍp^R`50fZ/d~܎ |D8Ar,{ Gwl4C/lxC4޾$_A=|г*[(Tv2Q+K; ȇ_>s٘8]TaA\HTQa.=3Cf@/m p*\(hw:F4hgoxvrXZg|Y/%GFOw1>&7T׫i7X/xWr4>%p) 2Zbhl5z}7mx\mA_41z@.j?0v2ϣ-9CpX $SsFZ'3swC8k8i~[m ,qH zY!58VW]Vx6qu ^c't ){E?] CClZ#c-y5{ mά%=eƲhy] E)VZ8#xP+nξ@/mMFW)Z\2\fM0Z)ZM[5o-,0jG8)u ϙ hîh *~/P^ّu5;x*pg7rjCZ k@UцNWɦ5듗o/>;=V{k4r)#WA.IHF |yi{۴hVoX䚐_Z7Ub(d?u3365y׳/1:Yqe?L+r b_W [o;EP d7ȱV;$VԒeO祍FJY-.=,摞d9p#:F} C2KIjE;_IBi;`z#Sm`׷D7FIqhyٵڦޔ5ƙൌ2"33"|Y!LWvl g 'C<+sLo֦tky0 I%~.z"fyg+ LŇA긫Bk{w,I_̀5\qz5&C1H R5hŲfE5 k\pyQ?K$|\9G>|@ ?(g|m-.n6fs_q@IX%r5PLw{HwٰRqLs,[ zn0ے P'\zWB-# 5eˇj!n/bTAx["Ûl [.< O熈)oٝ(^ F;Glַb1,!㲧 l`<S tw&'(Lb\kfZcT\*{Nep|`Be/7\|+ڹY,Av_4wv~W^+n/%QO_p:F$ |=ǫ\i@۱pxN- gޣCח!54Y>^}$O7}T/ꜻm_d cdfd?7[% < j3>$]Px.Y'F L?ٛ3(x~63d{2אxV27yz/a(zSo7A(Lج)0 <y]zu7\I;U/_E).!bƨ 1"}9M*ZNے2!xۃrG&22,<wDv8Ό6ICр]=ߜ$y2LZcd:x;{<4[I _4=ͧ2N%ﳊLX/2y ÁrLW?lLYz&9+5 m6Kᛍ1ޥ8I51sW05ڜx-ofMa[ U#"tzBCqmA_ ْfii Amo&q{eF!CE !˷)Ĕ*rFIkd[iCYofV`X2M /z: *=v1^TWFmLH}H~Pq;%q G1B7`[l$}= 7|!`W'ziIa2 ~sA >$74lj=ó{ =H;8K Cm֧ǒOpM<|2eG7'FJFf2`W pljbojJ)dtp:t-j>0`On<v} dwa| 9&%*;)M$^H?;˝qs?qQ3#!!{N]CD5I'٬KZuyN+`f){ƶ^gpOu }Vyk1y-D>v}pk4rx]8e^gz2>k) -',lYggTO%vWA,ŀJġ+$,f wTb2$:W~HbBM dzt/"8p)YnV-gb.+@ƭ6%OJ%˕݅Sd]b)K"BBfNx1&6R6}@/|ǧ_v@HZMKjj2g[uoeBJßE`_V_oFwr1OK5~Xnj+ UemVȃnHi/}tiGDKMB &|Jyd点ȉsط&ܮK9[ &DZ?h_rİp5Hq}S:&&lxi+&{":̙0ĩYh 8dsP.DAL{+ӍU,sC0p Z _\-B7UGbzZK"l_/tV۳bp% ZbZK f7ylmr=yM#+=Y/^k?ɬE?*0HĞ20TJ|SSt(T=~#+*D>܊ii`\@W+Vg#)؀BG[7X>~U]X8JB҅8ӈqhC;`5s켙hSLJԐcfK L\IƗ[$)/Txzj=(eR5}j9Z5e0݋._v#9YjB>T&0pȹ+a|X rW5va z9#,>H9DȂWo-YQ.`N]%D;СR]1u \zmLoK,t(n&\^$$ްs&q&հGjCW*3jQŮTJ"/+ z 0eO-KtcI;{{:~k#1o}=3悿%jT3#*Ìב8=vuPQɰDE&j2ɦNzNk0K79z8ÕQeimim'x,ڛ"3e3Gl>;[YIz*串)Q|,aYN9sU ꑱqf:j.xd,lX/VGs3a#ߨ'A#er~PxaހGzKjHz|bDO2INVð}cNt_ 6s\r܏)Zz速֡*9 9a.AxR=iHPuhXpateZT#d QSd(LG"!Mɍ~ﳻH] 0?XWɃ? kҴAߏO/Լ|/8@7A# Rv/QvVAHG=r8 V 683Lgˠ{*z"8ؔ! }+uGs٩-k9)wƲ<6`OCAy.HhOjm9uWo'tcǃY >COղGBǡAa3D n C9,퀪Wߞ!'ֹ6'ة1,t4d*2fos! Qkg+9*k {sk;nkz Õv3Jd N&v)BzC̓(+pxl2vڻo:?Xǧ i6CO+5pnb&՞! _} eXNJ\EL|/z*Ki0 _Pǜ,(^itj|m/ 8aF8󴘆tzUC. rwG m5XQ C;ո/ y3EC\pӈf ?z^_`Pyd}x7x8DŒ웇Kz tJ3a) nbkBat)SТnZXeU?Z {i&LǵIj{:FK_?g8pgCbK>R LJ-0X.%2 =ϴF ﺖߘдFh1Bwi it<%}o[.ܟNoTNX|}jp8XS7U*ٲrBm? 5fwa8]bZ}K)lvpj`I_? )Wsݞici$Fqr󨌧Bɺy 1H#Qo}HwY=h\b(Xl'{so*V#F &xY4g5_FLV?+˒DX%922g.j%cGC:_1=%?'S^QWvYW42Bjssq%c?вΚZsqYW <BZǥ-KQEzk{:wч:ʪ1_ݚ5-h`֑&x(0tN _%h \2ߝd~wf y6ԇ72,P)J-Rѱ{ѻFcY b^P~|TP-0f͑eQ2-CC Dz?5_qFNx&ؐrWYkh-\-3b%T{!f=_EVl6TEHGoR)> q?#EW)ɰ!MPO~n$8?]c5lVZaЖ|v cd2_&qy߼%N>  ]117 ?G6hnY=h za?e|- օR' ۫] Gwb=ϩ ;~Πlī^=ÂAz$*ldq uSChLNȓ$~__1~~[GW`OSٯlLa؝;$0W市ia"?aMhwF f<~W'ke^; }=&,ѭ;"%+II>mZY@l7S5ZjuRnaW(aFznI! !nuO:`#&^cTtTCٳbI8t@[#m#W4 @k*ABμZ+fPb>Cj-pk_${1fr /z׬6 ,[cSf @/oǨRپbFQo<|ϋPm f|Pf^X`dUJ\q&||Bdyi:6׊97:WNߗ80+(]ֻ_Rάi)C%c4% xs}# L&+nK1@[sI]7⻤O`Dm)~t.6۳?|RB,9d0XRwFOpLs8PhHjefHSLCBi.e.lϒJἫQ=Qq J/+G+K#$ϒ e'1K%ŭ^C\e{eL!_TsVv֨*Ե!_6hvOfK"*?Wm1eLć^n~IZ2es8<)s,&U7H>2."D@fAq7DFR󃆞& pFwS{3]j=B,ca 7ebdH;qX[~A2FHmjcR6sE_\H YQI+ʾp[ߘð czF' 0FX{5mޤm*ς\@_xHyZɉ؛ J2]]yf yb=ako}W҂!#bЖѶ_v0"NJkg(T?afD6LF, `?:4+͇ LiuPnh"V KE ~j!óv+vtd`>1aHZ) (\%;yA9=\E<9y{)v)/3C`Z#9XI툳;îPg3;dQ⸽ qOaJO$sjA;f|Fa2s*&*ٗ{TBsolLqЊjQŃ[>u;C:mYwFYnݗ#FRE+q:|>i:VdAvhY9;\0#ÖF5{JRI TMZF.Π|-&/{Muzq,F&My+UL[X Kn9,3t$4bL:7rx.<+sh8n€ry'Ur^zWJu 6l `F={V*c`?w-߱AH|$sϯr{7 ԰N"fضLڗ-@$ r /# Ź7"Uz\N|A)b]:e])`z|xm^}~%zX }*LTb/Њr6QvVGhA߷tv?)|jɍOMP_ (yNF%)"p-A9F|Z}‚Y;uOM7O&7܏JMR&#`TR?X~12iJo 0ch1h$&a؈_~pH#%!@)@J3UI<@/}:XG3~!؁|Bq;QQ]L?(#֗!pۗ}Bµ=5}?ԓ<4>~4 dLo 5>oXUh.5*=)j2t Ɍ\y^lnѓ Љٳf/=)83hdF\GS 7_%BMt^A-=a A3ܢLH̭>ӄDO;cVGE =,m 1cټRB~~_ɣlЛ(퓨W :ZayPJF}޽Ѧ> if'3e'"눞"{"lfN~(#YRXP!:FQrէ{0'."R)3qv*[~~*ݧV9 m^vѫZq (KBc-=M#?JS桄pMot<*"8W HAX) ъ ϭVi@NZƳJiW FrI>u(u-; P2Wn5NJd@'ND h}/56MO鬺iVB^_YSϳt9H\곶fV}6Xf]ce5 8ȍ4BxmkO?kxHzxH׀DJ%%7?ȯn >'ѳ[ͽ5Y#s<0|yg\FJ8y8G>`g29g&-N wc[+px 4b4W .IiCV$0ZVn!c.EStUpI,gV2e|h5qㄉsߎaR)K̦r/F\ V܄kW0\nzP'(A:<h<@X|~z aJ+Љ ew:򍳌h+7`,@5 @ žާV=,2LM399P~%_R #Vq1OX֘.^\(`b1 RaBZ'*{ٓRx0;tVJ{<$dfu孻 O0˶r`  m~6?d B"E y/L%r7BWMMI'R w $qC',ߖ6X9֋'gfPsQHw|vq~`N;-9Z"+EGlZmFIkY1P1Șgt1]mPR E_AЧES`9>ttɳ8pnA$ƨKdB3^sKHWsW~t"g2(I%e(O:&5FC㙤n*5$\-i[d} ˔u0;X7d|v?1BK:_RP0L88Ϥ[gә8.8|'3rxXچwXaAD)RRz>ORlA%6 ^\6X9C2BbEm7R#U ]NܰFiBg &"?G_x>4s2kWߓWBytR>M4@1s3lVpwZrpA"9oohX;Ȳ8SnJ{7rfղlG^ɑy4Z.{vƪe|b{.L&p" h$-Bږe.wêseʜrbM:{1pʹoC=3[JkOaVck22.FEHޗsŷÓ|'VK)W+(OYźSxZݳ>kfLXADx6Z~Nx-u|+(cnB! D=XN֊F/Yo.^&/ʯf9]Lb'W;k trCUA&! e#Pկ\iJw ǯ(ϚVS'ɰPyCj(o[wv>^Xg'=o䱝XhjA<蝷Ay%xגA:8 (>Ajw-/Z^~xIg<:=cX^RM$'"F |\CHpS- \ŐY/lHT8ASJloO?sP6@J`R M'` ;[>5{|S.1.5WcHaIj\} ƥp=4鏃SK E3@uK-{yƴB3҆WAnfl0e:/zt (D)+h8-וЪz?=( 7k%?tLpfO /,wZecج-vƃCD_\ ^O۝U,aF0mkQHa񈋁^?CT=+b=*5( x9uL Q?Ph8|E`ڳʺquۘ#ϧ%\i16? {hLMv2h0C"V=ZU{!Otʔ˼̏6<oniѨ Oy@ 8rD甗'oZ ,'hj$0{mr$4 o6 /ey/VWD@XN7"6"M<+kXoy^WhzJG0u _'j.}Fmq=am8eeA̓Z葫2zꚝiP R߳=C(ǝViهIaMPE&L!_@M F2*.jZaw`$RúGй^Ϳ>!(1W"}I[l<[͠Ɉ\.0O}-4ǖf?Bqzz+XEҸԥ12 inMn{9m.+F!VJ T ۦC76ZmԿjix8{e4ӝ>]I ߨγ|s"]p<ۏ]9es q$<$hA"8)=z'oȀ kpeJt tJVm$xlo 5^XKh]/v \ HF VW$Rv`r.WtǮaG1'&U_=g'9Hx1Xֆة&;MHH7ha%8ǂ[~WT!&/{Q@moYtgdSxb I4+7 3; ʕ~bWNaK]eFjZ}দWMyen<߲[JWYn'RVw@ӲX\/W_Pȹ-@Bds84 bU"zD`FMd*嚋AEF跫H;3@fJOhz_:QԜl$m!u#p,o')[J2nuْ[t[&i?s~=Gmaɖp3o-f4vs\PP7qrUkV#mZ;rѩ Y5P10xiy }"^^WTE9:Ք}N u1͛ㅗ4^p[(Vט6{?a^lGzr3V4юCHMvbv0 g"KoNlR0QH:P+4 |oif$5)q.)l`= 6n%H"&=*=JvY ˁ)E$L&5 X[_z7RwP }FZl+O!׆+t֬*bl;9CkLEQţBqsW& e D%1}ezgLeR'cÙ0 `GWɔmosth܏ Ug?A@1秣 +\TW calL8b6_s Fk&n̤ J<;Sg4xѿYe$gpq(&GB: z$RRzNba-\Z&!tiQ5ZK+ynvY4wB(i%7\Of_G5^f.SbL[MT@/+/_Ϳ]s&j>+N;eLӵ~~f abĪȨ2AgT=ZJoVDE GÕLXߪ -YcoP>dMbv-|Fw]B-q<)Ls%ѝAIyu^5veIOH,arI_x%Sby$/BO; EYiQR/\N4ȩN1&O_-NR+ xJ@u@3+#Z4qZ^фujov$[ ;ᙲNSG}"41XDGX]k'TaTI)Tfl̔!P 5 *ĎC I)k3CMi6>!5xzȉ.MjᫎtЩh\խ"klw+9[i-*^\{+(Fy'q;)~He0SlUi',N ɱ(u/OfF-2Qs!/F9u-šj9h-'uAloj(3UgfNL"?tuu)'q2 Zţ(4h=]HA4O^r2KZ; koiuB3YSw<ۗ@lT5w:"Klz[)@q\_`Dv_ Ip x@ִu6ktrIf*3x]0;&at9х WlJh[l'ukӁ|,k*FE 6qu;2 -fMQֆBb8:zTVpR T V PM|^ʡ̨^XQZ@&iLde}J0(7b.~{pgd,@-UA8%+@^ݐɇ[7勤Ul8H̽,3at6H3ǿuaa: RTKɪ"y{Jzm $*kZX>f11i复ygDXN :Ж3Fez<ܰN '@ W-ou #p?GK;tPrb k1q1TyWG 00HLMs07kE 7zzb1q\*au) FfGE.~ 4l@H` ه=o~0,4rI[cC"+ ֚~: }u?D=} ۮv2M) 5JnAEb" 0pGQrAb߯jʮS=_7sÊZ<+ZQSbi_ǔXߐn VX$5 _ =: goګvv6;ę*jadDWl@Vr:f8ּLpםgFwoʫa܀vxZү/EN}7P|z{jiw,/~SzgZRp̼kaVAqyO53ITώ8i/ 䒹xеq̏0Mx4R*}\ik?/+6Ajdž^"0KuEjs?RLrKS k-FՃ&޺)?p/&ʽc";E۔4iBF߅7tðFjv|>r Z ?i0t} 4#JXP#PeI#N;'tdo@AJ3 ;v"ݟXbno@LB@2'e 8FĴ\F\ZӘCB0{}lߐ"iܭ,!^zaj*jׂ3^)r-zw:}3?i 5-@䃚ġKX +ɹtsƹx4 24z1}7*7Q*ZCB#| r 贸ӃTP̵@l߲ugڃmr{/~SF33%)/Y~$>[KDBs gӴ9n ospѯ~VrƁZd?Z#q+{R& =lwε SR>(M,o)$ٮ崝E9,+IXGÃsú)Eaү%+h쏍\#Flu>V:udCZe'/^>K nUq$o+'<z$w{*!HR:˦ 5mY^F7s_!91bwrکюE dVu5t&ijx[5G}&}<]-'`,Z5Mu7mIعم)AzИ}aw{@o̚[u3X.\ӳ< s%E.8&PSWp]c„RÃl5-F}7ge櫋dhk&l1%ɹYmT1c!Bw=֯Hϴ<;qb[dA/0U _y]2Zc)Fիrhg**7Be6 d{ C@ҶORAO}).nvl/eA6C 6/;}fYocMYl]ւz⸡q,I2곕VFꣿ`_g f;k#t%d^\|+~bF䬻/kD*حw 1D :Vre,f7}٣:>zT!rt_NTfe~RצR}[t2vTd1-dk#&Zu67^:,GυRD 'f=O8k+0D3އ9LE+0#(U m߲gJS1K#.7#.g+n1"ǯ%|biGn{aqLjwc2+Nr'uDh-$u>9[5M,7/ ܶڹRy@>C]RYM줌EXx)s+.CqrR03RWXiaj#YVmlUI@k$|9mM} XHœ =)X91}'$Q ^gÃVʴ ۢw)#I ;,'sGc@f8Fo*oIS&C-$)=+ҴneE}rԤ֣2KnP9M.p-4 bp B59f_ X%7eL$I_)7Z=絭*%[9戾3j6䞓N,gn&TD}93"zbiyZW$%{CG6]Q`#u tJ"i#@<Arq3X`=}}Ct" a Ѷ/Ru >ۍE@%W֦5МA&x/m=͘:U?9y&B4LjJueHBf"?ߢ.n41oZcYEB᭰j7M{XH{g+=Á'_FMOg8@\cضP):%GfP\V|nZw:4zmiBgEL7Zg`=+uh9ȯצe :Chߪcb%^O6)ڣݞ. Xo5TV 7rI=.0E/5$omg%j/d|XSr_Ghik}&-4ρӒ 5x\8}4)Xolш{ fQ-PX216_p!׋8J왕A;sZxۧ̊n&lm$ٔD7o: 70q!-}afINuUy\tÃPZq θ1FY͆-w5'x/QHۍdK ӚGslj'Zql}2a tZ<~X0/(|2Xz%R^  Zh88q\Q9?nG`Zl{tKs,ZKR :"-…`LXi`g-Mj\͞Gjn :k6hN ̴'EKx@\;0 ^EX.kI6y[1Z8:5d9u9=ߟ84X7HQ92Ad@+_ jv .1 ÌY^ԨtQ7JGt0dblCΔ3 |W8۽TPC}oDYSgӑuxHײ` L!j ')Ǻuk\wF'XB "Q6.s;WXWN7iکi[NN5uoqړBEL_Sh(Ա+`b3~SC~(ܛ(iHJ-\OKv$~Ȉf{T8(Y7:[;8ݹf>c-Y~0_-+*WF2DW4gdX־*[nWw-!Gl T wOo=TʣtpdI:A&`6e5>լ_,'ӿYNMռ+^?&L*뜾F:V#Ȏweysg/bO3܉yO!e^#QMP_g0 ٠v)$  d.Ly[ gOMV;IRׂA^źKMEEFy{\ #[聳.%..\xD-Z?V_}qi"q2p:Wq\4)BY *E"}crE f 5~!MG#ta`YKY:?:ǒ.H&ܲ!N/m|`oo*ET3%6<,5 \7WBmPH H rԐ.9 8ځ5,v)GI<&*ۦuxWu/dgY)Qy8tg~Hnv0dvf6 x 5F+؅86+]=irCJ}0A|!4Ķ,[bl k2$uНcKI{zuj㷁MڣV! A`|]/ ىk3Nf 7zץ4M0vhF.e(;+>0EƌA46ϝUl$daf* Y8Sg;ۑKZvOXG Vq'F@(YF>.È.]gZ  lzCɶZlM[EZ>vWZedkyGộz,<]w̥34L[ L s>%q ,Y>%n|cu2K%ˤ(wxدظYE>}*[8EuIwLТ c8jc^ukcrwZnehHd\4dـ36u&P4\3ߍLi{7G0)b+9|XYA'mgBQŴjF!ڭ 3O8 4&3* $A%c(?:iR4femckMB6^u> xqDz+Zt>)4!G6RfZ*."(ɤfNȍ`7HD5c3 '_d]H>C^ưf[/z: No"}ҋ~٥%}Xо?={2l㱛iӞF}'.jl2>JZڮv.|Y4kuL 'nnk9]wʭ Mq,?ts~+ϼ,Urպj߀]6̛sa\v ˝By\#v" jՍ5>)5%.3]gy%F8-/1#3zʴBoS{Ko亷+>yf (?sTYK[:WOvg[ac)HP;jȫvz4X '@%F{@nx ia77:-Kv/E]L`:ZqJD$sKk9!;+@KOþr A0i g`W]ϻM,Bb*cнX $ûж9,Ԛ@<ŤwHw 4Ű#"S(mhG:PĚFUDU\y;  \K!kўm1 xbf =5,7` 2ZepgMd;ڎݡSqlYga?Y q>|hǹL=v6).Aw `9F<}[盜g[ ᾟȶv7mUp1&X䴍l-{qF"VT9kχeNX6 F vtj34^O➩XCXu7sr01b(\+.k 2HNlq ៤i qi+7C(š6gQrftCgp! ڧ-5djj Z0J%E]#f"Q.0%s̰))))'nxI_nbJtӻV>aU\; i~['bR;A6Axi]E; n7ݕ]vh.""ݏSP 9?wKhKkv $zzhfJ"7MU7{! Md i_A'xHr.jz AG u5g~ZGQrܺ&- tA(ơ9ɘ ]N1ho-XzwZjw]c8'0m. #d4Wb݊>DzTGln|9I$d@W0!rt+/.Q)M2moq`f iDzE FUQZl=7챣@Ⱦћ2/ `ŒLF$E; z7T7:?:{&;^K! t\2cVۀI UVB)@Ã\V]/i]aH&}fJIV<~Z.~iMYc[:lASp" Zæcf>>!\ Jg ۭ6'ގNkLũ!fVueWW4RVgƅNo#:' Ry*^7{|za~O^)OV]"PNٳx|T4E#ecU"Ei5\7 ALSgknx) `>Jݘ ˨zӒקLjή4HUZ ,qG`RYL0f=1]W}Amnb;KGܹYp ;k~K_φDiDq_gku~§c/ N~Zc+;Mx ٖE*`E6{lf֯YvܚVͳ>.]S3MzV]k =06jʽJ%E?R^_kr㝍˷-`&f9$|іc)S, >ܵ}g 5Gi8w8[j0mBOIٻmQ5WpMr TOqr ֻ$iakB#Ӛ 4~jP]ShXϭd)!Z< ˤ2:913ac[#ru#Il'@SOZC6G2x4/rԽXNU7Fw6_ݖM7Mj 绊`jj3SUPX}ku@_8u!X4 ;_mz n-pH opvUScF=/U,)7+#9P T g2aUQM|> "I?iӐo?+^)"cC >5nxtLiTn `40 ґQ<9O9Yh(].zSq4 )Si ˘Egnm^N>Q^&ᾭңYfSx")e{bT̑)LaIe]s'b%GXO addSt3B̭ZDkw |UZ¾^5௤u"!Q%-DЮc<&0Ue淸W#R\܂kPգ?o"t?Dk$y|{(TiHK4ld]5zC}Vb9[yDM}* @,Y6 ;& ;{v?N[ R f7z~7=-v7ίabŊ݇2#䴟:GjQ 0 !O͟+Z sb¦bO|o/D*<ЉJakխk Q@=[F{wk%lIK:JP";M8mK^? ;yGDw5ejN|#ZY3 .q\IA]*2퓁!W.> ?eP53UݚR&yxQFl; d;㵟ktocM0msoyr('A$}tI֨ߏlۿ)?_O?/?_?UNJ> o뚿6YЭI) NoA`o?tZ!b?_wFܥ\QX勤$\_joIKBJ`Ag^'BKtjޟdL 6#p-')Zb$/w=nS]͂/|I/{vV$i3E-/l endstream endobj 20 0 obj << /Filter /FlateDecode /Length 661 >> stream xڍU1 ć$  ؾs mJ/BI])h["9}ηەw}@EP7H!$2'_Ctk>rJ KRYRԒ==I#+(x\iz1ز nZ)ty2 }ɝÓx/9С}nֽu[e2 d9N@}{}Si9#c>(&كH*&\z`n9еh Q=Ư<۷l-Bzlbe9oK4]/X `YdyN=0cvN=mo"^fNi~q.ps'fc"li>{xQ:_+h}]Pt6ăҴbGɴa+n -2{ԋbBB1$0״vsӖ h4E1m}a+VY8}",5xvW;>67*TE0|!r4|9F"#I endstream endobj 26 0 obj << /BBox [ 0 0 175.23301292 76.554184625 ] /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /ProcSet 7 0 R /Resources << /ExtGState 3 0 R /ExtGState 3 0 R >> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 264 >> stream xmQKNC1 ް_b TBbU[V,>Γ@壱fP~v!=;˩p\@m?g# jŦ> /Subtype /Form /Type /XObject /Filter /FlateDecode /Length 264 >> stream xmQJCA WdҐh-mZܨ 3899!>> stream xڵ\ͮ:nS((. f "H6y|HWN}f%?}o?}h}?|)K }\*G\>~ T\2_T ۱\z_z 3JX"G=<{aGx s@sN#oR\b `.HH"@Rdw1#ߦZB)!.z]osKiR࿨v5%:Υ L<>?p}t&bK*btbN'UW1*~JCr@AD:)ǡQ%9ˡr M}kz<lOBR1\ *@[@8pG̀̀ OW!ٞ@ݹΈH=bSpKBG]0C^c*BļZ{H cďc^O>KCXKxa< ~D'F & ;p; L0 &23 ~t+Tf׸`Q qqم0EzrRW>0& g]Å$le ^{'8|]jG)k'yQEKt *7xS@ܭ>D6tJ΁KbZ%r0 <P<`0c#>#S0bw\OZEhO /ѠID=s5IZ$XJ IJ!$|Kd7`jׄ3Mu/ѻXEHl'[)M 2EIv͘1O<ҊQ7Iـb@5@R5L^%8vk [36F.)vFS>ps035r;u7 + nK,BS; {FWO,KҜpġ@N \pXbh7 ) nW `ƒN#;Gejie`d;EB "M f$,pek4f~}ClѕW ~SXѕ '>S 5#$ 6Τ.T?@񣸝 "r$橰]ޙrtR%H4IR#RyR`Q{T{$wkD}ˡ>0&o<lʅlv>QZP@l8Y7~]Ϧ/݁MVl)[Gp]%*\v'S \ XKGہj{7 `#Cݱ~*l~ėTuMXF*40 L>cjq!hnwzwi_6@"F|ì;{<$(sh b]\lـd$Zh5h:E֊؜f (أ6ݖ"#} V'1Ⱦm"=&S}IlVh7`F)0'PGGh!2,Mg5JH9H@`* I N) Mkv0r ARKB2[4z%WVV4#kZGSiw SnKEh?F'-a6_"70bpDs3ތLހ[;^^涾kո%D٦Ia4>nחm(4@uj)R*q"; tn)a hK Z8 g͚rW`n{O̕3MHqG dq'.\lQ)誌:["|n("璦~!$=Vx܃jWN1wPc(wq0nr1ɻk;=HenwSA E`Z=e s5 ^UTU m.]HEv'e?%Zw.'ҟ0rhsODǎ(vg=.we]7~~CZgƲu{á]H0yy*7 vޡwJwְ4@y"O"ˤ,kd4VUCZSꆼ(I^o2‹z! US7&ů!׫;.r 9i]EBZ$ޱ:$;\:Q+X=atS,HńUN 85䬘5pk3`?w{`ReJf\)XəDVZ_LrIĉ3:cZ W?ISF9%')rj)_g+.V݌w.HoE ,l2z e da qN'%_TFeR{S*/H Ƭ;iQ bu@,u@*IIڣZs]ėDSv)dIc΍E $a#JÕ}ŀBF|+.r0Kw/LfRDTk&?3ݧe0*~*ҴDDf>1"o;6M_5-G?dǷ"th.}2u֟ MWݗΜXۡpeF#3'&T*@ ,Mx-NO8GK;KJɚ?`)z^yO[+[l-/ORRE~,Y~xJU wHFƋd{~o=X`z6J]{׎͛"~ZxM k+lqG6le}l/O=^N"I1/@4 )-~n4р&2ۺ9` 2P~5sGlQ5P8yr#t5ih5&VLݹL֜SkJvο 6ۛufgC8}!2<7&[L̗F+׷_(m ,H{`&XX+xtl3KIT0qC%I (2 aCMy5xkϤ7qƮ7aSrrBky͊~>@٠Vp%׼`F`bWWj>#<#G!*J%30cjeFM`]ךHƠK H`8[Oz{M_N""7fNW̪{+*^LP=SE|dkņ9Ɨ@ɀ|@hm:JgM> F 3"~/!Y Hғl_(쏓Y ޒ2R30=Xe~ŏjV2 gےlҨ˷^44#2hȋ4t0ʏc8BKXfހ[rn5iq^b$+"Qwxef\j8zH21u&$5O=IV_ +_XÀ?8Cp.פ\PIpu1fyOh~4o>ZMlL=ܥ CȽRZ{N~BB" q\$J;&\XII!tQF#b.UO!8(䔚ι8_]<_%TR#YF5pd hRjP%/ft-%w⊲Z5#> Z=f/[Uo^ex'҅w%C*쫖Ug9;wFt8 WE,7-jW ڮlzW-ihʥ^Ivrޑ@|JJMkE\e܁.eqa+,Q2E;Trg#avM={^#e'oT4039P endstream endobj 208 0 obj << /Filter /FlateDecode /Length 4323 >> stream xڵ]K)MgD0OdNʆ VAjAkꉨ{N/o_' oB]*5ԄkQ SQ/ !\uO_޿}QХN -s ]͙$I?0FOi:?/=!0R-E?(](_~^ZeΧB%osǗ/b݆+w-T.ZPs[05\VHz,Xә|3Q+96/# ;3`̏.)|̭u$Tɚ+\%{ 0 }tJf(U :'G)~"_R{z}C*Q7\`KF\SJa4HIe,]?MelՒzRS)lƳ3wkJy7 kNb߆I,1<}$p(BTӴtA2a(M stq "O$_5ǿiRMk R-oXCָl$D=FLِm}wTAC_*Uf!?|'F`F^pDi$ixQ2BkS@C&Za7P{0DNWrQkxrҲU\]312#`>jB0^n;zoDǮ{􊇿s##YQ' ˊ, rYcE\>-!DyjS)l6'RG.m B[iu_Ɖa Buoih8o9 s.H16` xm=_`gӽ}\5,ȣB_g,P+L5&3 "F/x`bCxpsIC~h in "]Vip"u _Tv%\e/ivyh:2%P-\L$ji7(nv6:@NE9TP5[U %r:Gn^&6k-41%'Ru݃c}ct[ce}9(֟4KN[TH* I:cnI@=F+D跭k="I456k,Z}1vY(1L_UJ օݾ+ە%'c1mQ@"Va"u H׺"~/Ew"2{*CjY'i\-QSD0N޳g #)¬P]sM^;. D %p>͉"Um Z˨XHamrug\Zvs g\<dm<%E-xdi+nhO_;{ޤ߳+\*b. P&R.tThcxt Ql@jP%lUOOkYϜ˺ԑp]΍CM 7$".0k5:X" ,$o-LdFY1L >A0lt`2.:DHDH=Y͹|^`s)K5˰)>(ƃ7 D8 ΀޿N\զIwyw,u$ꌥ)OP"b,{ι]/ ƒ܋7.G ";ϙ&y* ֪[2/w 9>x}o#oS $Z=o~0ְm?!Ubl iFt*VƲq)2<+F% cΕRu|,${к)Tz7 WIzP^Ӏ<6e1jIIg Zvz0ƂB]NQXϡi!^KGRG2P|ag/#ZTBRj]c⧠ sUډQ7OEbZENH;={f _b xr/pz5 ~W/Q1WOò g-f-+׍Y\Ѱl>ߺojoXG?8yƩ*uhхz( ߜ9Aq7U,-_PFi+Vލ ִk߹P0^*ucVl sXHḤ-O0w:>e_} \F77ntxh4 :D A */7%tg|\D煋RDb=lp+mcxΦ҃!U@bˀzUTZ^!5:- Қ`T-+8/@S,jfn^ĵ)c ԡWT"oHQ0_y<\Y4EHs4zl UJhhz;ec#ym79w`Z#w5"ʢ >佗!hZB>wE^ϔ-Lum]:6z2I+Śrh ^ǣ(tӉh Ӳ(.c)**s5<Gio3TQxN~T1܋bˏ*hb۴)DKyH8^$# HKt"Ök!nJŚ%zЍ. ݼ7'hV;:{0"e=% N eoTm Ak/Aͭ/O/eqg$7_ ݧD/ӧlomBT2Le6#PLl[wƸBAFYtskG[OYw D`t{z@ޘOH$`t:xF)R\z3:n c3bywX0”БvB{_W}˨^3y;E; 3//C9xkA}Q*X5$: ߼]DАj |muzÈL _Oͱs)W ^硝`g*zެHsmC9gBM%Gƴ."- &6v錆W[gBneFBGbNZ- -'M3mۊIQz~G2GB V IhG endstream endobj 2 0 obj << /First 2274 /N 255 /Type /ObjStm /Filter /FlateDecode /Length 4197 >> stream xڵ\ێ }W4;@z{`%6$A`9Ake# w ysjjkl6*O]HdLn S,SDݔ'e* >餹N&%N^H/yR )KqI)4i_uJ_)UpSx$|*٧I<0%:;K *(F@=r,Bs^P8/YɕA!V:O)}U$M c eMJ B+aQJyn!UhdMUfx(ᤁA)P@6N2 SIRJ7ō]4SkmCOmIUYA%!D:(NӪI8Ri<Ś&k3^i,ME:29~lTFGM.S]FÀ[fdqE|!Q|it(6:bFGx95ԤƕmTG:fFG=FQAQQCc3D@ OTt1|#Fht#4:bDQ@OMy fG_tGmH <"ByQbC0FtZZy4U&`%㚇Fj6&uP8Tȅ xh&oqEYM@g=M7e6o>k\z3t?L^ af,NG#d.+<$C=?/_Oׯ~z./8ϯЊI7}Q_:ϯQ÷/ngi3n1NL fpN? qh$>H?iӰ{w^]z9_y#ѱ>_s\osI>@Ni.pt|Yd샟rZM(3(m?㰣9zns`aHfqipGR EtX`ͨZ*P.LS-#f̰ͨ@fB.Q ΃+IW|qs{s|*t wOَ6!9U8n@)p<<]M?j?"G} =a(v\oo`/5vWݘ7OHF1h71hFc'h7pA_cg5WƼ!'VG:,VVbaH:a)ᖊ#R`uXT [}: kT%9=FLQV-=nEl.lV5d#YHp-ˉka 2p"~6փ<(3EFT;㯆xP?FЄ_Q4WgP&~rĤ\k9{ 9"nT܎f ^2_P^&[Wnm=R:ȒN bڛqD8 4ͻ:_P}@ YW]]/͈zUw,~"=Zat-ʌBl=?f2p~&h~Yeg_0hN²5R5g9Ve\wFȴ+K[], 9/-Y#xTkqp#6NR$Yc/Ԍ Fi࿠j.C,Բ=b_Pue@U)KŦVmTO'gbA Y e.af RPݡA;x7e+P7ۥdVAavrwtukaK0[T뷊Ia44۠p7,uG v?#+P*d)X2[׹Kk`e{ Pp`)袴fs]bn7RvM؂w,p_#(R|ϚGH"dFaΚXdzjsia7*ؼ`˩UݞlؐS~vmX` ΡTV fzj/-r,{dΠPu*jG8 OԄG>>-P6V\_׀ǜՏ-MU Wn/Az?7:om! RA xG\^+k@ (2kG ͥ~USSg؟?;?e5|z!=ܽ endstream endobj 301 0 obj << /Filter /FlateDecode /Length 2820 >> stream xڵ\ˎW\؛-dþxſH&E1IAT)S<Ő4O~/?'F!T/%3J5S~9ӏ_^x9Dzzy*'ss}Z(w Lo1JHs0nǩ[Lu??62*gPɁ)XֶLl)W#[^b nC,kQeų8Q|cY66Bj\v" 7"Gc?G$5,K;O_ %@ո$SlCoW'|%H5g|n5cRjZ7M3IfrT1tye (ЎI*|LsI=#) JHD['r NkkRJ Z~zh%T#;xqV7}nD()Sn {*R`wEvGi-Uj NW$"y m\Ɣj}n=Bρ)S h笳їdHWWyqsmRޢh UjFSd #I`@H~B9jk,TBkOz,$ _%*SENK^::yHFm nUDH*sCḫ̂m-OD^EBi(ln䑗CW]9uC Z^XZduX@[nFFkQ O ^oNDQzK+Kت )cР"J-ϗv!djaOnBzT;Aۈy 4:tdǐAG 5Uh*N2=~oM\Ώ?;I[ҶDZWC[IJPM+KXjR^L\IH*l_:;SZ@xbu$:XvQZ!~<^_{\.ц4D) Y~ָD^YRRǨHyR&Pʅ-k]|em##qkATK@ NY{kK du,-K}ZRP.ZRy:47=q3a!/>g据=*]o-z ]-]m]*V QV:H-=j;(dVpJ@ Zu}%g` :E\ WL$!(X5%15B|jb#a/Lx"*n \*gbu$,S n2\\\J 5G-L$/4˘nBrM !9&VMEnb8/d|t8d"菲5n\oՆ>9S kwiuf[acqQ9&5#UȘovK͙5}:ޔhdY]0C?z|l$BՑ,0 Df!-cܺv11|*w wз[&6W\0:,HwW8 AJKtBǦU!7//޺wdu$Rh<wgJCs{8(o:w\gSDZ; u[^Ԛ e|uν] LJť>/p:\4"SomIr[):D[/y6ir%d|}-Cˆ^{@9@j2:FhHw"E3:5Bq#>wwowyhD[]BH%ېj ռ,.Z7p3B-8-OD_}Өm7AX+XV/O袞I5~wpߟ/-^˝7mNnĪ[؃hD*ܗvi]הz.F:OHp븻3 cqU"7 ?:y Rȳi'ȻQ7sGqeݔ|W$[̭nZ 9k}=`jD{8iQѱѡM{q׈v&k`1cྩU./ߓA'VG"oS-ݐ Vɞ[w<ǩw๡!y\3 16}&#p*sGE*yٟ#ܱm)99|K2>6ϼvTT~;_-Ic#{NtٺUl+7 Ξ>F"7K][8״ww= -DriW`ɩu%&1T()*©O@[Xuso r2wkIRɶ͑ث Ǵ{™(ZP3u)pt2 +_7 `a>A/?dyL_wG<&\#Vumzl=4t8ieR(RM]Md$;)u}<ݘP/}WkaS;>gcN) UPj՞/@ 5| JrTBfK%oʄbz~_xG!1<#v}`V;Î a@;h, sO endstream endobj 308 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 533 /Length 150002 /Subtype /Image /Type /XObject /Width 600 >> stream JFIFHH0ExifII*  (1 2i%XiaomiRedmi 3SHHGIMP 2.10.322023:03:13 17:59:19,4"' 0220<P dl t  |&0100@$  d2023:03:13 17:53:512023:03:13 17:53:51;dd146261146261146261{"sensor_type":"rear","mirror":false}  512023:03:13 v|M-JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|i_ss^\l3݇z"h94 #fjQ C4FF|ڬ'YyYZ}*cM{?-KbHi:޳sbZh/fsΣrַZ{n6c^y>䐍Zg-ч@3Ɣx힕3F(B\G֨b4Qƥ*Izͼ2\Sӯ#!]иqw3Ij:mkݷ9֓c3e7 "LW<ʽGKVx>Kw1 yK2ݸs^sb1T8;IKp=+cc,JAT=G}iA~4wCүcˋ,<9[+4/Ҷ5։I|'چJ \U+Ɩ~mv̲`9aj:mk8(_9bOC+=7ⷈ4MeC HQo9wl?>^h{BRzӃSYKK rNj(}+_CSJR[:hϾHT*+)RȠD[ uZnfIIe֟$'1>W<7GkC=Zl6;4vfL׋ wNe/'8l'Zv>ϭ"2 ՈdLV恓=h)}xb+51wv >0)Xe}j6~wqT~cTֶ=ȍ` `ȷnJI?J(}.W2h#:<j^ڦvcT<|?X-qdRAb%Wzmx=YZ!erC}ь DjbG(k [o+0(Xw.YJw({G<2đEm*p҆ bط%@u=5(@ʻM7]桡Yjk:=LKu3#uQV̖ڞ}Ac@Zs/J!O+?HH'`/4rkҒDti*`(*Oy qt0X]´ѹ tNٿ3FB[9~HSVXJ4(Ox=Y*F"Ot<*h*u+h uZ~ߋ+' e1K{~B&O:ypsFau)G r(Ρc{=@xO+BTJ(kR-븏XpaJR.jt'8R%{އt +0jFկ*"zG'+}/Ķ_#2DYk#¿C~G5Qºx_H!|Em\ {Lxy5mcnf;?YPMxyާpb:[FV^. +M6X)V^:[oº |F^9-  g~M> kvz&Mr09$Vdv ITXV-vZ"lWtA?rZP'P\vL ێ+X|[j$$9 rHOaج4F:(&s,|ߥq_O 7N_xku>"{gW{ *'*/Ue:$D"MZVRq@>T˦m> gO. ?: |(xK!o)B#9gywo޸qĥ~7X.-ezWY-K!EՎme򧸔ȫ'3n.7+ Re23NrxQ O4iH 8-EF?q, \F3 gKtnvO/Í,|qjy?CZ㞕,! =֑d⻏DsOT :P(9-286G\6"g?wWEgid-cRI5ˌLOFr)T/D+1#M0 i =^~I'׊63/Gkh,GZQ V7:GBߝMseYpqU>Ejg!8 nV'#htD`=*6<*.r +Y̐,)DGRG+lըGrsX(}OEFfPʑIkF3aL-ڱyg'3Ee"oYAC5SZFuIYz;kz XxI#$}Z6n JX7~tX ^ڣڤ2&l}k(3EMϖ iXw5巁1AS&%C4>2A$%bJ!yD#¢s 5'SwRQzM4eQwĊ*li8'5ͣj>ԡƪ T@#?Z .:i8?aZج?崜\]=._ Nf](þ}xJA9b,~ڛ"O-=2)!Kȭi.bUJmbED$a_]367x8+5]R{[-7LGuG 1mGP楤]چx3ȬPR|6V*Wۡ٧|m+c3+[JÚ]WӦ?JaP@=i .9\SqGo'V[b9!Lk2$U:Է RĐq9"8AC3$ 2jL[ 1?WcVX5Y|!Ewqȋ rzj8Fq(yDaj-d2JOkkT/>ƱF@?yk׊7'ϊlMYcb0AQ4ĸJZ k 5'ze/ k?;Ζpy9?'5n_@8g5GÇ т5OYGo="'Q㵞9W ~T WWQi| kIY 6:gy"Fgf܈r3n|{?He$՚C* D uf^+ ]{RҜ) (i>_Mj>(Y~3+ރ?e)mG5 ׭zƹqrj,wyǎTy#_?^{߆ڕͿ#?l1>_Ƽ7-Nj r8|[.<1i 0a 1^+5C1Qa#953(ZaP*I!h~KsQ1E+$4x {hP]0=AGOm|MLj5m/!c5o$3FdM::)>*x>m.QBA܎y ^sH9ӉM߮[H;Q$kǮ ܱTN kB&) b \p)Ƭ\ɴH-av hi{MT\l|#8Bz ;)2I+v&RsU*2 PD\c,jsW5_OXǜ M Ƒ[HX/ke׼+=|!w8D¹bkB+{9c% D!=/F/u<+U_=׆p6ONtsUKFƲ׃uwQ< P:e>a'U;)m)0F2k[)%EYsҮhjN\ JYC-եo+=JEPS6)FoM q@¨{Ա铱ZmF*jn9'Rm,^#8*ˆG@+;'5kq?0+"Xҙ-FEC*iuO 1By!o躲]P)V@qk̥$-+}Zjku^+:<{CA$ xzLN D n2zWw7ѺZ["NG'iEZaQ rt>ҒoU:jJRlxf9#VL chCi>Q~aQ#k Q]} +Kb !_\q]1+պoFIֺPȞ!?sݜ&{bGNqYm?Z FS$taFKTY60 &_)Bcߥnj{o/qaSx⼫W{vօm+ +``Vpb22c]^~}m%tk\6?V,V." p*J~Ž3Q]Fy`Ftcdz/!Kyoʱfז9jŇgkKc{C~#][xq#`#szsok[{<2@r3ZVY\Onń,:2CŒ w~7|5vC}+3])hs=GpDLg&%Ba58A=|f3Ov[65F㍎G>?N{nKr8 <-uȕ9d>W_¼Qo$1-#tQ{W|]I>k w6GQc fI z `$b{aҥ#i` S^xR(`"?p뎴-SWL4 wbW澔~#!'tOLSgιq>E8n[(-}/ne7JZEtNSNa{\#Xv+Frsp+%du)$A;`jYW> 0:9@ ҷ|D6ht:h?JQ5 ي̣dr?B)09S'›(B9#Q`0=i( F(5eݪL8Jz# }J\~ K@i099jFm'< E \]Nyt1ڞ(_jpZk>=JL[i15oi6ltjHD+gp4d-vh:q=(l '-N k:;G$Sߕ/G?J.Mgg%"ffS3 qr}Jue6\8Skcwk-^H۔D =`uH}!>GW%ZpkFߪ<ջ^K|UĻf DdQ&Bž5)౱f"1ׂ¹\g7+O5lsw/Yʞ2SS|^LeG*/]ⶖ; JI@Է~ӭ͘H,]ɪKToe 5K.>w(Yb>ӖK]DXM W&G*8=B_(2IPN5O?:O~td[wp{ а[']}+ RPG݈)$p!p۳ ūg9sQ]9j͜gE؊)9( { (ލ4pD6ʧK! $TֆYn#𾖺.9\cPǿnnrMzݰƙ0|θh# _<(+B$+o۵VC~Wqs~0 (Ѯ;ϱA-3sFHg?(WJ.4t6+=M$kS2w On=| З%!KCZܻSkCncQ.zs\&kTsh7lDJP<>bHp3W@j Eٯm]*w3?4{{Tď?0mK|ȶVYڜWꖺSϪ5Ŷiha qɁ^f'uGe q1MW8hNDPM *Ќk4$ys3zɦt-b 0<5sc% HY!aJdHBJH=\W'5T4$>bf,Ae*QmiJaby#!_zFl}) YK$2"L+yK'ރڣ)gb+sZabr) BxV[Ŏ$^:#h p=-GjzƠdsБעr5[;kvr8 rn7h?:5%ri_ ]G)0@ >q^k5蛇101рU>>O[J[QB?)biv#X8|]oh~_b9j͸j󦯀YV7Ϳp3 i 'wÌj=/ nA*?1 ߃9?JTݩI,A nl8u:5I,m|N uo[[}?frn寊Zt29ҍ7v3!x2񚇁VͧIyTzU,|%s'!~TQTYlOʞ--~QH?SkKpOJ([K+>Lyj m"Oʊ)`!'oC#1EƄX"'y1d-*(Ÿ-qJ giQE hU/柕;c>RuC{4;8Nݢ [ !?tMXϔPm?t oQE:Kh~T" 簢} [ kPaקP c http://ns.adobe.com/xap/1.0/ ICC_PROFILElcms0mntrRGB XYZ  7/acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBCCX    o?GemthLɏ,>l52..r~@9<]UAO9=4`MՖYپ_3Q \5'wx4{eǮgW!`Ej"o ǏB87=Y{-+&]sߚV7.qu7{2PK+#ǖf|]|gq>pw/ILrtkT0 T LrbLZUa"q:f%q}H̩v.oV]*J9K㹸1ܢRkzr4NBD9YU3ėCw./1tdj+Ck%Ҕҥ3cY>?&GIf/Zձp7)8~;{E'p⬊e HIظ-yUs#9%q]KTXnP;5۬/LcLql:*0,W :"&o:|. oWclR:nJ]-:.a󳯋jj:kc;WWKFwaU-QfUk,Ԝ'(2$mg|5m閭KΦnu 9OzvRccZzEBk$\Lo/}fc&8j urW/\V'2˼\a|r7AP6kꩉ9`I{~%#OQ3}:%՞(Ú4UR,]y>Xo}9Y =-|kh3(QGiN&&㕛(mL~pqwGK\i1gM)jÞkj{5ȓ+H;%4Gm3@rTIZKcR-uxE` 7MϞE4Jh),L4t[%3>D%<4{+s5]\HNGA jN_l/Cnrqy#[pW^Z]>c:}{#-W@e ,fEP!Ԍm꧍RQvVGnVVhN%.)ҩMLȧLl8m \o#/1w_﷝|}Hҝ|2@ hJN^jrҲyT=82 jinBF%̴Q 'Q#Y<~xwjKΕFuHe 4̢oyKrQ4cJPVlևMяK7Ӭ6K:K%|zaAsGȵg͊V xDۇLlChߩBj#ԑ\&9:&R&{A !H%Kk+3${,UAhE; LL}W}zkG֥Ω:*,q.w;ut)o_5zP:*>2Tk[O\pZoHCGE8!Kԗw-Mt5>E,jUyx23?ByտvJ5Mi.]t;*I$?au n`tT r<<pՋVpYasFMKN'Niю؈ C4ץU\o&u3M9/_Ts1Nqy&leMꃘFg[$|Lw b1? ٦$Kn>>t3Ӿzgǹiف(2~+Rz$achxk h6y]epc=s\ϚhgVvyryަ(6`AC1N˝]&etC_6ЙTldHOb5'PWggsMeKgQF3رtd|o>QF;YlYCҁC6U)IdrsVj>uXՎM@hz՛n rs4z 4 ]UP@͸nv fA`hFY exJ`r8tc cp6u~[^i}~EhL!iZڻבM[ Mj*@,A@1~d W!Hbm$@7^TA[,V,+35V-:yL`8k:_I }c)5 -%B\&QsnXU ISH6q=4%.O2>iДX0z:+D]_sLyMJP4^iȌWѨ2XKh^{3]kn|6]gGCydC3M4u`iGikq*e.y3C`'Ft>:L"y:؝cO|e_j7Tr[qiZiyiս~@&:l]|}Wf_ϱ^XbLpEvȉXRk?j 6{ C Gi*8aC8Or+W㿽M_4x]xNo:8z? xCW;3ǯϧߐ|!/i\<0=C0^AInj*J&rbk~;*PK="r IPKmGO[~mAyޠoW,>Ͽ ּ߰ze"> !!xW N:!sSqT_ꮃ) ϰ={Ӛؽ-˼ =}'4-@;kɠ,M[Hf ?Ii)Gʹik qSJMhW{(WL UEWI|(o/uEm^Sn远<g7~N/?_??pW#cmo8a]W} p" ~erO Q- dzWv"L6 +w^΢!QH栉{Adl*];Xn"τ3+7Nig;>wڰA'V&m29![9bᷫg)9|-L܋<0 !n'3&Iq.KGxn蛕 6HJG[v{9z}_`;97a_1=}Ԛ}2vg:{\{9|^L =tΫ\.@ pu{:Ke!RrSbmEt\k.38Ue!TKO&C=AT>~b\lk4MQA@$ 'a/N}I, H94)T'$)r jqZANp,,S4IȓE qIZ}CI)xjVvq)|t$R¡Q9E[̕x9 |*^]uNzE I-')¯_ɢmOϓz7 ^~hgd y*/5w5gog ;)0=OT@ngsfwr1=q-ukbb%!b΅ 5PC̓tVҺUY2W̮e>yLKH"͈뎧^=C9OlҭDr)Q]CAVާܭ1=T{&'W2@|U[jLcS -y2cl$%˕T] h'Eĝ[&TDN=\ N,7''.a Qk>_?Dho}z(MLSL֠4dzAbl:6Wѹ9NA`{h++\xқR5@Pmu5e 'RR9_B2i*8`@7H(zӇ\MR4 4{ vf(R*ulex'ܢe`tQmʼna6$4QdH\hF E48)P -s&Z#5).Z8 AFʘ%iMF i2^쫝mp$|g_pI5Qe!15-jJCߘٞM.B(=Mb}̻hR`f&A^9=ߚ^V;*r"a "uȑ4 ų4=6.%&*8AhڐD@.*NBl|դ= 7|#D'R 4jRA"yw:ӔLoFekm0Zb?%NVw2٣ァ.o:ҡI9rUڹXꚷk$>3a1)T;%Fu9[U1"[2V ][(Hw꧐=L1]hk4VAXRhI"Tױ^!GpUltͭghT rNÆ>(\C!.5pm(HfXbQ AgD)ǩIs93PҁȕOjТIKD.h}4OGq[3:\S!,E^xwc>#/ hwJU5$iHeD&Nr14YJ2d)^Tx~%TR;D`QZmI55IabE ^*Fm%p-`(,ڪ@I`cEt7T2Z4p({p$\/"x}٬5^(EV΋ZPyMNxk^5/<H&tP{Ggv6ȹBIγl(THPEMCշݠzĂnͷa ՃZtmnxWn )gG}K;xQvd}^LFzZFMez4Zn:z'U ~n>E%za`ئZRT:ZovсE}9y8fHRGAq,RRwQn4K87Mk3rMiոr׉2Ҍu}Ԙ{)q]cꟉٍ3Eŭg#j7 G?l_O6YZuͬNX<;`#k:21t2zG2J7A^) xÌIOS\[7ĵi4khMpjRzz[\F n%toQiƸ̮.:D"xy/}m~m1ǿc{ 0s|֬mH* d"Rr\ eA`IP(ձ!8@=hE^71̛vuLg{0&BPEf+:)h}GK3'Ofo,I;? ,K}[(t>ջruhzvÿ<73:΅PhL) *Ņޘ-W9,..rڎԥQy4)-PB]Ldhܻl)c\(Sҥ]5|7<^%Nk\t&E)4CvLαx.vc k;gPIvfĈ:gsBdLcm/o( VR ܹ|b@SmSr$XҚ1Юl~yٸ{lrSMS*D霨ACcYW7_~nsמMطycmBO$O Jg{d%HŚ +HKwfJft4M$8jŔCR͞!ޘQ8[l Q!m-b .zjc*G~ײl&.aPzC'-Bi2]ΩBe'8Dz]9.hJY+]QgpR4:bo+4$RD?(5fܴ hGr) qtuѰ*ͧ+;-ImžƖNg:Fx4rpa}ɠ~WObll S::wȀjӚN2S! $bp.,(ƴViw Gwh;D[I=;$cÜP˗eV;-[ 4 MPs"5r4rQu2FOvj\(7:mJd ؀.x/i f ܦLCi}=G:KWI֎ksngJjtbH/6ɝuY_<()S3G姝ϒpڝ/08W{MaMr¡Cdͥ6*YJɁ5Nh' ƫCMkD4sވ }#$lvnU+VsӺSԾSެRUVcnFqtRNcTOEyXP2۩Paar%1F^f2†B-`y:E"]5M,aI0l|"9нPRL[jq@}:8S҅ :r% p:L¥-M OrۊJhEM=$?4G=iO/zy~"j_,+EITrG4w`:@ %VfM^O\˄UK&k5QWsZ//hqOBwwX=yzUlc7YDzԋ'(^LK֪#sugj@)Sj#Nޥ)/zz@srV ׯe2׻mj:q5SaO&2}v\.E槐U#y&j ؛gj:bvi$2sUsiٳeyNWXB]Mʻ&,8p(QLGSdd RFWnE;}< c^^": J%*Jx=7?66cŸME\NeTުME[+FVAAv֭8&\Z8UkR^t[ڍ]QZxv*k)4n:xSD'?i!# `vO@Uw/ISTȬctCX# j3ݳ{u֌6+-_IJ^3ϰw[ |SOF[{팪lZ}%;; -džQ^mQSƢ*lS߹.\Z]#rܫHq]GB~sUnM_\C49py4/u{+cLZˇw4oa1aZWÆv]uEv! 9+U]"~][Vntܔ| >F7gtaُ,H!GoF޾^\zIgL˵'[Tx5N!/PJ%l}?g&GqhpOrj~Xv+~+'I;>u-/GwMJڻ:cn3jd܍̭ѻyRs9|!8mĆu ᨼ66w)[Trߺsŗ=߻Arxy-yUGn=w'B8=AWI~_O@%NK+y0Z`2];|RKxUݫ᪭SM=O-;qۭǾmrj]~"ufiKX1AٖdV9o-7{kW;02^SUzݍe|r{k+``u]Hݵ+"wvc,uP?yg=]fq5rLNt޵j(+f#Pz'I҇e'~鿶,,WYA Lъew%|."82\xh?{h˒pX_(;ɠ(݅ws_:=.,M7l6CS q˽с&r þ1(:7bڻJ韧3!ZC~2@{K˘ҡ̜!$ (;iv֎΢?ܩX;#V;,gӵoF= ϐ(\L|ޡw$ɰ:~TL?QNǷih_mk{4(]{a夿jj~2r|!|";;鰺-X|1Sja 3u=3򱏡 C6 >D羬ͿwO+Amlk"ĒB?A8JX+5>ҽ? -,,=Q`C `1[n-˳CΓ5(YE9D|QqچM;Iմ5J3hݙ]N X@\L=HofNK*$TRw%e|0j'\xm?9_Uo$GG4BfI'5grߧ;>Z]w[wS[2hwӘ]SRdJ$юV[uLHYfrO .dP1 NX3Z"!&VOWi/QA^4I2(,TT"Q ZJixZik)1gd5ܙC\-YQZ)XzXnZ`~.i&Ghu!Tmv)Y: wWYݷ 6qj!nkE#j4>Ū )z^j"j8R[cɵ(jmU/smu('&jA"PA<}/(%4#' V<[U/2||y"쬄w2/FsCJ5CZAmkLØt йOrjeHZ2Alԟpy_ptGpp?q4p_qtr6 `1?C/ } n}GYMYs GG)LQWrip&FJ *3k7$ښQ Dܺj|ʌ5 '#Tںj7Qj.רztΘ,6I T.R'^~!]XԵ̪r3Ygk櫺CBm~em?Sj5~-5pq&"Y'vq?KnܽQw?Ee[5 s/' o]}vj)Ƕeitgt}-G kBo<яmNx0 û>(Fj=P]t<\S;+`-7 ѴRq;v3ƻũ?oDwS>cܾP$&|muj^XȈ4U%U[rƅr W`w.ݪ$s]Gܞ~f;M],G$ {-ݫ*زLc9;NmXo~}ǸufK]M邸q\S~qq<"H_%,m^KH/pAegbϧZ - n@σj:[wNw>zFlUAo>v505S܋#^{ ~P< j nij;Vܫ£}Lg-nMsjɶ*O#tzޭMW$lZԕ}2/* ~5Hnx{C<3nηƢiݷ{{f'i¯z*KSW\D xX5f*q'F9UAĢXVvurڮ~M|q6Ky,9|wY..[x_p行#}<]1&Ǩn~{W%+Ȣy'M+sčm'k ~P:Kٯ.Wk' =݌tyj|K)T<:-XNnK+. Pr) ܖE7bEMTnٴv~ :Pd,) }nKltN=c74WawSrQYZne٩`|.ev7'sTTnE˻\VJ2m?g͎'C$:DS09c nc_"5LBu[P+rE/$\0ߛdm#<~v 9CX8 nY-`Y& ~{ˏfE6;};~"5[R`+ut5mmK;qMҕ-n`#,Ҵa56OX"O!JۉZ=:CUzcRJS]9{.韪K qTa ,e+m>fb E+ Y#msm^ `u1A_OYG-gj 纚[U./8'F 6MwRS\[*,}\1 \NKֵj*IJwJ5mש~jZi誊 (h9+' nu\\;N{ Mod{'?JJkFԐOѺi]kQ8?G|14")gm%Woe<.yٻPMKڷum٭C.7^oo?R-/JAM.ϝ?e[/Wp쎙 蝰>h"V8ceգ&䎢TmV8>vEz`JCD L[UXj]ڊfU#4{dOoM+]tfG ,9ɚ`krq \,k4a6JV &m Lasb\'Dž%H%:Vp¢k|X&'5˦J 9@T`sBG"&0.+xa OM{5K^*7{,8&>2|,eEO,8,4ZM9ozjwv6ҳm5g}՛ ;f,A%5nh qcT4W۝l6d>"6J.v~?qa~̕Ym%7Tx6I}f=6>T٪`)~ %SVV0sQōqH19ژ4u}wvp A.MQi%ٽ_W].vLPSLy\6=#|߈͸ _hٍt2rܹnDrgWxQS]7n\dOo::r W$O=lU?N.|9+ޢPg*tƪs6ʤ9?@3; $MD(B'*2B3J/I.Cdvz@a,lR߷Q؁6 FfjZy%[aڛC I!n]d*Hhw ٺFFѓ_p!\3G-z-x6wŎK޲3Ç˒p9n~4B쿖̨ pKev&ךT wǔD"Gts8STu=WEz6m(Qqo U5~"]Rg mCk}muYN~ji[jZCRVKd;icL[|Wo~i-'%~ZQ9w/{rҼCSOU-ZA_KV %d>>d8v&#18>z=Ot~jM[~puU|עA[Yf}[ضHrC]i\fYZ;.zOgb(N#eo5}EZUS>w9rVGѡi8̻YN=!PBec秔>p{q"d'?+f ";uA=6 Q)ǰl6R,zެۛ}q7RSue~,|;O[2ΰFG.ܾw_{{f(?Fr?,4 d,aIWpq*2px-Octcj3 \JG4['ͽaR]>@FSB:ͣݲ:<0T;}ܱG}mdAT~p4 L1IkIBed- xf4e1ܸ85v!$ ;YM)L (šg+j잭&l K{mZJI[# }ང3+ZrцĠd,>> [2T^ʚ[n=<ಢJš#ƞYKY茷*ƞ*zrIsIXs@ew {Վz՗hU.$ v>riITVz#cvN^%Q) × vEUUGmҖE<Fh%2E4Vʙ_lbN>'9ĂKR(Y_Oim54BG_mZm%]֭yڽwSڝ{Z;j5CjuOmQTjJ}ܶs}4ʚ).} Tc&2{J"l3„*\IuT斖8e8cmUFۅlsRW&J04@sj.ZkgciDOr"}}ig[-4>aOļڶj+_+S)QLs .in<#m[\U}99r ^X5=~KBZa-upC_i"<}+_pt]WMw G7GGzj+ෘjKyu#/!JShic.w6,1|W$zeR)\|2m;Scc ]M,Bz@>Fe \])w6oq~mCJdHU^N.PL_ ^z>ot:WԣˮHԮFHʶHvLY:^N)xr2x!6.S96OY+iɆO-0s5OM5n0=Xtp. e׉|:ȶ&ՐG%-F=Xդ\۫2iHS/w9/&ݜ[ޤj7 .rmZ'^SoڌB~sHOs׽'2'r*#s9c 纎icv{5MD&[om$BAGѡc_~~ov|TcPmB7NwŸrocܫ_HԼk~ 7DoF.mxseZq?S2nhT [)#s$I-^~ѹgK[;LWt;"I0χ+]T߯;U3mIß5w=C LM_4WZsޣPUP:6Gm*ljmuu\9^&?/ 2K.) xis$4Ɇn]{{ܜ`r\Y =o]=aќ2$G%֔e(|#q ⁥ikq˸80W]~)cs?A RKj^[q+a4d;8@Wd~2OǍ"F=lL%t6!4FpGQcퟒO9؉B9G cd,`ܜa &._qC{c?68uC݊sZ@%g.8nrJcҭ/,ƴ\V0#ŭGx&\62:F-KxE'E8q!*`q1,'HoCL:o'ҜޘH4H$IfdxX2PEerҁw\~;FYvۄ;cۑo}F1 f%rqqT+ ޘey۪)CH﷫xXSZVFs˚r㆞?#rYj++7P7T]k[裢n&#ÑyRDešƾ<`\x#(-04"عa<Ǐ$#DS@@gɽ2[1:*wrFm[r/]of61dEX&M,[gζe- ^b |4׋ЦK7E&Z'+i0DcGZ֯햘(de=V0s FWQՔ5zeՏ0ُ=C]m OhtZe6koIkHx,|pckf_-F*EISlr14wYԴU.kikXM\!pZ V ]vH b(Zh_ںDnבо^vRIWu_S'(l(l!V[;[f]cn/`m}s9T[h^=S,tz2paCgbe4 cxm8^`ND  tT+ctͷi{_OD)nc ڋ Z[G5%i1hkm%>? ZYmmhgWY>WJ i|OҖn yM^KeP .ִ{ΡaCPZDЎiU_|4>i5J/W?{ݥ޽.P,P0Q.wLA} V_z¼jۿin]nm&u%[tגTrK1uD}-Qo_uQ^8so]oxE}Wc[]|Nj`R뮢Q/uvsESK7J}k֥uO!-HScELZr4傎)AKS84[i9 R6|0{-`696Si`%t X1<H8l4ZX84iؤI_ kZIjx/68c x`;̈́>&豊 Xyc+c *hq&9B.Lyvqlm ״pY  !1"67ATqs2QSUar&'0R#BCDb35cdt%4E?DH'"L4pOVq@BTi(2̉BvrkS  (BJ `$( BGwS0Czrz  #J4"ḂRRD(("!ȕN%YCE6!BxNv%%FfМ@("iP!M&C( '"BQ EJjk^D d(V+J5Ѝ "bZE454nE:4@9 Ve2)lrM'dQ6"&-  RUʃPjEșFFMYَ.qwqܽ`,>|a!0WZrPs' g9 u!a||a|1FlFl #O[gG`,>a/o8+ g9qPsb['1A kT@AMF*pSBVDEB 8:ހA͊؄\؅+]mY_<*rtXͥւI 66>^ѱTjOWLo}ZsW\m}ZsWlm}?Ӛ㏓ӚcӚӚӚӚco|oO{ {Z {I˓j"Tf B.Dj )XB@#ABVef@ͻhSѠ*VeMeJiZa||769'P!9ы2s(Ls׶p#G .M^eˢm%gCz*T2!J@S0R"(!BR6'ʱjSvn~Sz%JIRZxP#\s׶?:?YzvZ@ %JJiRJuB̥6)SG9HP5kZsn+1A(SѠ4Xm!}w, V^hx"],ġ;J ހMjM8 4*Q'(!CAI@-(T ]}ObԿdW+Hʙ!o<=偺j˅ b6Ee@N@M(PYdDN u!4RTPF\*F-uv4y>UR~SzUQurb{ ( Ag u|=(G6\SP (J%B(5eD!HYQ@J悜B Lnl",*555Bwbl֪tX}%3ɂblѹ$v׆{nGk]:]ݾטvj}1vjû=1ujû}1tՏvz;^bի.vӣV}yFNXg.:GkM^GkC]GkXuxy3gikhA߿°'X;XmN ̈́E` Pp%qQ(i!MB`Nj-k4tD-3C9,quFy.2c>+r))ĩC&SNc-A NB) 6wj@.wʜ:Z6 4<E'2uJ@HMMMJ]{@(E {WZd46V6VW{&ٰCZ w> A(A]R( E#d5 T(Q(+IR *h)9{^Yr8/c}}O6*v3)ہXݴT(kEfB5M(TSY8BVO 9VC>=H @o(lNĔTQHQ6oX odǷ6w*b-,̵WG͵8]۶bpф;CMhm o;g$-4.\r90L-cOn>,Arx۶#6n<7RhHG!"{y?(X}k9a+ ]//g}q5+z<*v؄ l*TZmcѺٍwKO|w.3z`_lm ] 3Lf=hq&rKw#Ɛ:LD+^N0̳/O5 uYb/ taZ}:Sb-3nqu]9}z2wGTUwF[cp?1* (hHEv F#OdV}Ḵ'-WKWˁ?h=WP_Masu$' Z_0N!kTܵ1j'3'wc1 <-XWD 8fƃߎ핬}it z '1X{wкTDf%te'Ώzn'67rbz1 | hɰVB؏x{eP6GEJ4oXxN#sitZ½Y؈iOJor.?u(j,P(xP4"`!AGP&أ")_, ;꿤x֦4`6fhn,3rn8Z`2[`_T-sv-^첼~Ƀ$cVz~ ޯsqJ! Wz ot#8s)\eQߦG[7iꕣY]?c0Npmp=^7Xެdq"?w³i]s]<s{_:{/BцZ dDnN}m*QZYYb+aђO3(Зw8^ESHtX3[[sGkGx@X?@Xkɳnw$ŽF& 9v-E50 TqE+ er )va]if}w.Vvm,6?i PZ$sKX̟W+%pZ{FV/֘sYv6Vβw| ?[oT~ܫ顿 7&eIz!{#w?Yj~+UV ?Ů&X2aXf}]6z[QҺ'FYFF?:zuo ;g>yOWӯWZUz/F6\&~n)B4¹\t=xI1{y֟vV1{͖k!9|ZbE^_2NR{Y`(fVRӝ)ȠPlTQjʲ hEB%@4Gu v51ԟTxD]nٿs6g7k颿כj&qȭj\pֳ-lKjJ#zbgdfͶA;Mj]#yw쎤"|h/d2髙CeVoޱ3?&cR8ʹw9Z||?7OgꅟzQ:޵_!B M#L2*.RllFZwx-f \ee"]N{kV ^]MeNj;2)YYt* :/YxYdJ.YMBT@z'qyo^6ꅫm\;y}YpG/;07+{H[4ˡ֏Z) ݮc6507_;1gXv+OTNU˾Q\gY'1aIOgꅙfYr 0Zdx-V V`Ѵ+.!Yּ0Dُo,i_ ?3~c,t@hJ4e. RؓBCJsG iqC|pgt|{0S]=gݦlp~(\np`pwR@2~Z;PX/G_ŎA0㫎-[7>ge o BefX33?cXh }yZZ4قB~kš;Qqγ b7K-!p4"Ԟnakjm,fs#Fp,ӖBkj-747x\.VZ:gwfٴ4O74*L-zNnӢFfe͛7LOeJJt ^lkii3*BvW*m.͓002wvf.l{k6ɤT ⳕ3XD"E JEJ'r:uChp?U?c]gEhJ&*jPPPhMDRT( )܍(FoRגvWō[C h$YkGϴ/=G 2qPBjҥ(RKۍXPc@vRu!B(RT;'k2TO#iu~>}{{{ƒx7wlt!ISp(o4+}w ɦ*v" h P%Mf#z(*(ZtqlU0 XToO lB#`joxN;9m4"VHPDQN)Qm/ֶI+AƗֶΎAv EBbw J1C*(k~(:Z@! |# \kOWm 58u ;yvӣV]yFNZwg!Zwg,m ptj-G;| Ssa=%m{7Vw&Cwp]:5gݞטuj˻=1t՟vz;^bՏvz;^b۫vq]bf4!A߿őeAB"0J- €,ePQ(ZBDB4ei'1h]WE|ݳؾ` qpIWOhŕ%=/'|Mϼ^|6k>d> 5xMϼ^L6k>{0_y_mB`Y{!pXg!Co5x8'-}El{O=x-?XHiEzkhq"x N\P怈ʲ Ơ)Ek(!'4"P ] t2 D@P*nN (YVUY9O}kd,2qtc[aG½8|:ݯs49v8|(/, /g7a~epL|W/,1_xϊ t/g|½6G^e;{;Őcx#M%(pAv+2&QU ZuQqYʒQE$TRTУ\*VO-W[n,X^'LS~S;_|=_51GCLS~S;_|=_51GCLQ~St;_|_51GCLS~S;_ZZZgjw>rHR6Ր"aBŜxOl$[")*SJh S RY6lWS@*Sxme (DFù 6uP^gj`yun@T,M{eaj\U}@QFQ 54zr coF(`aJ ;+0W>b|xŪ~|v8oEJo.h`D1g:6+R8!ƍSDQ! C* i*hxDPB܃PBJ֠CyU|]ޙsm=Tx?`#%} {]`T/r,D"С;@ D(QZZoRoM)!ŜxOl%KD(M0v8"*'fTŒBՔA6QB-"JEu+יWۯB%e26 R8[Ϋ獴<Թx?`U²PrP$ Js(-7lޜfP(#)Ch-jO;יXc]|v)vvLYΫ獴<Թx?`T-ݰB"pR45(4aXPlx-js {-V"8H,M{ea~jܼU) ehh(T׎jB 24S 5;י[ϻ܀&!nX7i필yrV~P+ ۅRw)4vFmB#a+;δz=VyvۓOtq,M{ea8RQƎ(HTY x b*) (wS]^qy#y=Vc܃3Ea+M{eaF?`VdJsN(9&)4!C@aJ(N(J Tؔs8{ƭYo?ݹ5Y/Yp"|XIߪ?g =PT•(@P|.ʻ"gf 8]gEЂTpE:VrhQq(YJ\d^|xՁClۚNŎUrOi\nZuW*XUʖ>UrzOiCZxzUʮ>UrOiN֦?}KN:'Դ꣬}KN:'ϩiZzc}ӗk3,{GVn*(:~#h;"ՕJ@TE!e+$(AQCHPF!eXDߴ]`H߁.KF˒uѽ{>to^Ϭ0=׳.L1F˒uѽ{>j\ζ$|?ZAi\Az;< @\c%z}en;޽Yr[7g\c%z}eɆ9޽Yraz7gXzoqWkQmT( "ҡJkY PK%eܡEIE +",+r֬A@((1e (YB, &听!YHZҟ'~Z Ԧ6w[kvɼDPaY ȋVU T[  Y QMXPHqCrEg`j vbVP"Qd&PRSwЅGq&kJ#epo,Ɔ{Y>o>%NÚIY :hEeѾPaBk](#yf+2dl  M I<(Mj{,`l.?doFCnM(lP"Sb܍6fv&BNPZ$`b?i!KV G?A(PerwǸ W:3@P55i߳;qK.*{ni ]c߬n-;3 ~kW+|bOϝՍ*E)vU &#(hL.5o;ODJJ7BSHuh#pB h7ZIEo " ⢀D",ABࠅe)P BȀNXK/D nL4K~.J-6J  wm Ž*v(R*Scl5o4/n 98?E{$TTpDlv%Dѽ((i4.ޤ*hva˝Y/h#JavXq$R16 ;;ݓwIBT"[E覃ymZPѭir:<0V:'̻Օ8'q/ /"'7m3an^3⛋p?/gX\9nw2 Rh'2} \j*bTqh1weXv-W_pe'Tr_pʮ ŝwCB6[^J)NͳwVt_xTۑj?XW=/VVv<>V _4(NJ Vh*v/÷m8n&19&ɄSa`MȦ*/KIi؃?g—>W[ͅk3,px("5oNVB8E%NZݛEcZ|?+R:N?IQ+]O;evug/ h`7x]Z)`;"I56. xj?AX]b242ΰe쬿GXJ؛f+NF+k|b 5et7\vI>bmt].6GYB?ϐ !7^87mceu ev;qœ~K05 KOqVa o˅GcK,4üjO D̋2);*w,U9Ҧ5"ar;L!yCs7gM2w>X|=hR8X.h2--r~kl%j3IכOXIƘX#F|.$H'u'Z[~ۖyoJm{mmXSW ܚf--N+M.b _p^*9?!Y2=މ@tȴȁqJesa7ae)#K8w|?/Gb[e[WnnX_D.}7IOm\Rנ 0ʝi)B)ِӜ̓_m!{V/J;0ɘyGk3vcɤOkJl7?^>!j6g˸zе˥EWCw*ԎjF6^ndkSoraZe5)SZcl?At%d)A4Zv8ksyFZWK7gߜӚ|Z-X?u(N˜͚!Q "T+lI'/KNK ُi<= TA]4ZصN.,Ov@;9EFrYz%f}6gS4 P+9YyYe(B]ph>QڟZOmTXXn]ρ,R;kk7GM5vxѝ-+[rKi+,h,ÿeZџ^FWJׇ;?ߴ姌KVD{˔ϛϙ5h/wdlJ%iAX"̳2*VaZY2̱Zxo_10?Grbl>rDIRJMa&9*ʲ]z3h e8(-wSڂOA`}^Ywpm;7̫[k{dZG nhP74w+?3[KVc{.-h{> 셔B XH[(Yw,hsf "ʵ[ÆكKx?z77Z|X쭻SYVUQj *ʡ kh𲬡v4PT")-?nXE>o983ACRXTulz8]ȟ\5.W[;) l{AbQuZ8[ڷ4ް$Z/6eDp&촼@@V,1E'^bzw- =н$8Gy~ZY{K@lnw~\n]` z,5eyVi6f#+1@+omevu5O-ck/'Pt+I (( uNFA i韒0Z{{^_qGh\w};ҎT0B;Np0Pp;`(q j {z)ҡk4b"aBV7;gro !; WhL'aeN(DSJoB4(#ᾒMqt"Rw (B΄ HKC@TR5X'֏.?g(x'EJS;IRA8YN (%SDLB9HAЃuD-)0:yhؑ爞HP֎>UrzOi\`nZuP֦}KNWRӪU'ԴUpJ-:l}KN[RӨfp× Gkh?B~nky[/>gjx雋o7k n98!r_7g\c%z}ev:޽Yr]7g\c%z}en;޽Yr[7g\c%z}e~:޽Yr]7g\coq>CH#a^kU(B )wCL)4}E* ,ZUƻy R `PbtWӌYΫ獴 |Թx?`l5`AJ4v lP({lB߲vZmZ%`SqXWi필yrV~RvgbQ-@%@B 6"Vy=VyuI;,ȹf@ŋ}XG/gYQ۞4h7mL%JN 6blZ%Mf hɣbu|mVY 6Հ *J,>t "-js{-V6p@ (ަP8PPXwi필yrV~)AɎ(Vl6aBi CAGJ P)ThJ(N.}|vժa]|xhQ4iA7h70w:6+KIRd'j*(sw"Ҁ@oMl M'`NZmZBr"SP ›.]{ea.j\U(APA {(QCFh@Ț@#x&RיڵW+'Y²0bu|mVYV@ B`6 6!B bEе^vŪa|x)!9e&6 [λ<Թx?`&E!Gp*PJϽ;(P (S֗>>gjco?9J$mHLYΛ獴<Թx?`l);YPढ"n`"+\6 "DXi필Y5SI/^Qr&ԔL]4wY+6/ރܳ,P(?Y`,!E<4֏>>gj8{ ٚ`67.YZC\X3ekg]r݅κ Uuv_C:-Vuf?g]rׅκ Uu^_C:떬/Vu-8[} Z0ZZneͽ៳h8O.'z|ֹ?`Prγ(8ТT*PyYJ5=fRfYRJ4!f*SL*TB숾Ve*Ve4Z[_,m,3Ni>Ȧ*/KLU^"l/.EOz_\b?[eQr+~[mEȶ)/KlS^"اl/.EOz_\b?[eQr-~[mE.V7CX]VlkLp7(RJS2p@E2̥J\T. T!J0R%IDRTT"YTDN嚀QEJ.@*T¤Tԩ4s :iw*T %f%Og !1A"2Qaq# 3BRb$5Crs0ctv%46Su&DTdUVefEFG?U̙G8j]c̿_B$3761"U4*LF?C^h_9|_\ٯe=m}LՕu52Ǽmeڰz"{)+48u`UD<] v⨶3l:\/j+dhŨdNoR":NUՑvvzQ2zoמ*r*畤M4B],l5Tv79U4U9yI'Tdyq7ym +SaܼgsmE?=)fWvġs_Ұ{Lhk"7C#{@e1epގ]i m$-Ubg_fxcpJ /{3np+̒Np<l֯P{y4PY+@v/gD=`e{&][ 4D.eD +HZܣm:G;M]UKanM>D3x.uފӂM!w٩p T& #wj5N?c:,R6!Qw>Y= ob|bl7Y=MY!-i!%ڷww\i+=79:bfsG(ͣcoX;+ZEYH -ﭗޮ Z5CymL&,.^UQcAm!WrYe.ixVky#;ЫPMNъ?)-l4nHui=8Mѻw+^m6;\H]3]iM5`;2tZ-ⅆgTzsT7!]ڪ`9_.fxtgNG]_|8+4{VF/zś5d/#|wЀu؝358$୕tXOYoW=|.ҝHڙHr_nwݫ]R˞t|oȥjFQM~n$FZl7_o;%ch&ǘ{ MOd5N'Z`ä⾜>O̞`'`:8f6ssAЌ*O̿э?c ~ne@Y{Xw.Z-蛋_%n€7ԽHYUÓ^(pF17 YK~\[tYcU @-h N.54ZRȘ׷,?`z}ETAQ(cIV7i󯻸7kqu{7}'ZcAģ%_v(:ǎ'_w_H:hddJ襍kwV=j9wº,oXnWpׅ9G~vy t4<Z|^{<طqV {_j=u7a{UҎkʭ[҉{3N{ձ]KfīejbW@^ö́ޜ-Yw=b_֛Vl^<V]Ucеed\`M|q?68][k{MjoV o]z"@.!n87ہ}VЗj9T?\rv6]{-=#rv[Eܗ͸&_k[r[* =hz V#N`b uYKjW8؝RիՁu[h.rX4.>*YǺ7e<<4[.zc¿6= jWQܚ.B6<ٖXE+Ѻ"ob:@8G3Z[+|ԺMotXգG~GuZ0K}l f4DմFXƹXɭ ir']AW@V-^ԺJꕚYӷ7ԑ|؍ BԻDZtPC%MMC8[rW(*6'#p"DS2Y5 jx&wM95\W_ 캤R{1ڧC)HzL^GCP^h#3HARl".0c@ac~#;s16╍L||A.Y҆B#kiɍaO!⊨F.q6һd0spu/lxZ7_/w.N: lV;?(3MlB6LќH#fXs{#nw6xzk?GM[Kg) Eۇb=\Eײ\X^\*aQ*u/;9mL-qՂb5-hox,T4oa}4s."B۬ZVRLש0}vGh;} /c)8U&ӚFc%B7yA^4;{Q>^L5یu^Db1DQ4n5R1vGUQPy7H wOeJO-Sh?pͿ!JJ<&7ſ/YOtpG`';Ӓ㖃.aP~d⊥yw'i%tRV7ݶ#**n:O 栧k^NxSۜpT8E)M-O=ݽEsY[U_sp6Nbtz6XfC-7M8{{xF[/~>O'10͵)fye/ݤߓZ.+oE۲]Ⱥܧ<*SHwHW|ogCR_kCqcqTuUFl:'2IVh-%{.aՁ_?/j-o9İڙ)+STDzLxT3m65[IJsV;VWYP>ueIn-7C%~K"䲷.[ndx*sKo˻`p88j=oصQ^V5zy>{(D>dMSkr&iicl~蚶K[DBܴ%²a>RZ2tǽ3Frdgv[^NMxvd "e+w5RoN e|s ufֱ%?(ʱA`hޥxmKl5=Jƙ r[Est_6衯%>1uI5hXdX)8H3[n>Oi9EMrѶO"vym^>0 䴆_Cl~H?򚶔8aAnE9{u\"y49ϿTꪜ37f9d{qriwFY5Ҽnmdٹ:kt_{VW+(VrXq]' ; hdiB',cǚ\8ذdB+zetCvݜSb#ޱL< crT dBx\{^Ffmr RTse9fE%頜l> XK~q͞Ƚb÷f'N6o؟%MS⌾o'd`n kֵ,phYctl^"rfqrކ魀S0\isa$fjapAلS}X'Ra=!;Y;N0+>R 7؛yx AIβḵ96&9oes,s8A>%L׹4n !k#nPNn-XW朲<~UN=2۵Y;nT_\;^3D97KV\l[f,E#'0tkt֎.v+;&q ~!Iͼq,(rD2͋'CKN%ouEsݧ5a>>dqW x .N3s:%]4z?/U4qss\Yoiw/l_]#I~{~\8dǑcq\ÖMB簙17GSe\0*YR *1KM.vl0!k*: .|s v.bl-ѵt޼ 롟 w(Al﯇롗 k-~˞'" %@+}Zzι*fo,.]~g + v R/q\'҅zAf ٬j˝5YoߓUE]Z]fq Vf]W&u+-\Pna=$<;.R^'y ?M0/Fo`/_j*d &Mxf/V:gJ׹uxgEuEuE8EqfβfLmQ[٘8y$Ubu<>|BWٚ\H(/hZ!do4+L(;zY\f=78ܺ[[[޷{{޵ђD+.COMֆsqylϧ.bt]oR°{Fj*=gɛ֏\w.-iᄏo}U|\:fVsr8u qZ]p[-ޮYIcw/+MM=h=^ښf nwQ#M-94 wJ!b7fQ֬ܜUZ,ޫ)LI,yF;]J\9]o.u}[ ~:-[+M{&y3^ئcQAUݢ`]~'%mtz1 i!|rnM--Ow̾M3)N܀>5b5x\&% 9߽OyQu3&$fWɧ'z7干ٿ6c#gňiBTXVNB8lW죴S11)i;ixi#q$xl9t φb2̞?p{9Bڼnv Z7|ĵNƸOUV3-W1϶4)pwQII+r'uYǶiBw8ό>Om~I𚗊zq HE]WK5/#y|8/*4ecGS8[ w+ YA#}4bU/"Y؎qccs`xd yrYɁF7[Ɇtgp4#78^y![1d]詶cgpJjU&ˏGlɆNoNNxH>{uSk$jt5 dayٺFwRw8ޠ}+JwO}iXceˁ`LSdijMT-Xy:O3CiذL3f%vݺ*,QؖTY:7hwx,pC{娬rs@zB}ذB0>yϽ˘uDDnLlÚH/3w2G5ٍ{Ga4sQ&cċ;_a2 ħ.Gr]LFk ]Q0wcwXaXj.Ǥ*E7IVԲO)ԫ+YUGVac&̇=V-$BhTC&|+{+,z.fl./-4IWֿ(ݧ]@;GQOq{x*]o$lXfqВ>w[9ikh\x# U.oζ]CrmsSUR^5i] ]e|Jc@13=+zqZoW0αU#4&lʟ)0F(fG9Hl}J٭y0uVM:x+ZN cb,"J58f!fZ- є|oyZ@z\'x{悦v-+)q7KU# UVlS`]0P? vA~ G~gEl֒J>-UFltprk&?p] vOLxE1`XF%ut5Bs2s.npQ[fi)KUI+o6/_<m M,2GY]H]$;$Aݳ8r!ErMܯ4tࢷO*dq]oBm$1hcGTyjq;~tƅeEwrn(_0`Ӟq+uf Zt+USVBǺ6"1l.sMPO8rښ[B:QGRQܬ7[lrn풣"ݿzS|U%j'N!EAcyLVR֎P;N h0u5v+[UV:U^}F3hvQ#P#ޛmlukڽ~mG ,XT2Wnז#v X:~s-Mq>q*jue6EOZ,&@s 8WZ[acԍw:GG.ky rE]%EuKI俶דP[*J2d"{t+w~kUn nrߝᜭ k[]N.xS[:6yrGF\TC5%-57\:trrYwMQr5w4#/n<&>Ks*GH7ey@pR:דC+d*0#͔l PZ;–|S!lJ̮kG5=B[C&Y#'CRnrj:-MɈe (s(ńP1od;,*oas9l- ~1^A8yޯ D4W}^cDfGqwG[EGY90*lnf^v'Nus}{o\8MNyiu:x*(64ؿj>U+i1ljPgf:9i޵։|&acn ܇r;O(togqhaU6נٿ]t{ii cvoi*fs&PG-ΜC"5uL&;V Yiq /o(ˆOd%sjYq~ek["Shcp{`Oha}H'+K]_#$[ߡ[*f='k0o) [RKV1#7eG<1qX>Јy#fhğNUyxV,CYՓQɩZ-e:職9FJfA Gí;,{ R>FD-q8דUZJcA8^pjƺ"aŪ|ҿb+]%Zpz_.M|W6G;oA1iqXngDIO3~\5`XZ ӻgq`^\V~nƻ{h;7>N~W+,{_S ֦@ΗK7-Ԯƒȥ'C۬U=e!U DÜs8vca{v9 FS˸=u亢ŷui}SU%E4ϺW*IC kZ.I-Y[[~dș@Zg;Y[3QaT~m/>$ UVLm#Qї ׊9 ;(EELW3U=$"Xi;T;( .+ukX_yL*0_[9IQ9w79x'egecI@ cG3F}?Dx, qR Xr >xi՚{2SYX_ ;6&}Eϧʲtndn Bdž6%a}-g17reYXk߱Q QϿ{YGO-68[^h 큲T1u<^f]Z$ʭ)=Ϙ C7/`F 3_ #w'!#vTKXsŔvv eZ4ZH}+@LJ{Ȇioܭ!h~x.LM߇>=H{XW69|3ðz4t']IK0kI(:6-3+Tb[/Bu06D7gwI-V8ٳWD-Baw9qJr/acV(?޵]e`gW\hJ7U](Cts7hU"?Wqr]0zֽ/J=&93WGo}0/{<=^m6Ev3C3nZ2 @m!XF5G#o-4r{Kr7ۓntZZe1eZ8[=Eb@ܚ.2>E@nґ̬ݨҷ⍜nZ9C޽٨qę]3'ԆzHǿⴒtLg ct]֧kbI<\K}dB{ٟYݏ]Pnm}X(UÜB +M)?z#! V 5s՜u;!uJե_!*ã4򲥤C#9lt6k*swuJ~)CM,t.79WD S>'MMK(mޤRI*%@&UQ82Q,lȪY(|';,VEK CkKiC,U-lMΎsMf YC2>A Ũ+wʩ0: ZZ.s !r$\x*Y"8ۻU~U/\=hQlG)2nBw\uW׽Aӎv>1\-o7cgL^ήGuڴuw:(IUq2a,&t[U2Z ӊEkmÖv"yx+[y^+h%| )nXF{T4V֙C23H2m/m?QSC+*&xl0APqXa9@* xmmt; WMTj)o$Nf(jdൎ9:~n=ښYd|?8c.5Gbv ee\ ݧzחE'Ë.;׷~wH4NEa CKvO}E/:זxx۴aX)f)R?d20aWO?}[YtZrj[6o Ӹoʦ \Y$CUaxU}-5n~H#{:3FoQ:;KxE'IMG6Vf=?[ISQaH%"8YkUmˢ~My5גPɳv]~bM޵)cw)dOZ3-+tZG_q#Ol7v~@7VЪ9$nz|-\\u>>s|kH`#Uu%5P . VDmZ{XV%E,T\KTEKP4wUIT׺C'wqNy.V^3Q,AeR_ۣ[4l\"i7HH`?* {;K =,YzKA[~TN1 C$ag۵(k~MBL5(%ea1+6ޕ/:\LO a},ƿ37Pb2GOX688Tˉ'Kr9z-Ax Z1r> ݶS&Z(6i)|>aD.X5@t}|FwrnÙsNXG.kNc郇}+hKC?7, 66<8U)qV6Y]"c{@Pv}`l~v=}E2q2ǷIj!V{ަ=qjzgxO´`Ψ棛۹,/tY$vZ.ηDtnw,iy|j].|E1Gd1wc)C V!==ݧ؎NKZ,iٮ7mwoOfڪRmʥ旚if^:x?8~A>Zg:ǵ8gqMBW;W)MoyѸVm}MX}1ܒ}+hqݚJ:,+\M}rŎpY|T)9|&7îʏp /i}U&mN!_Je~V/`O]D٣`Q?Yj*=р*]]BPn ܢj9Cڜv lN`à$l9$jg׆bǴ /eO%^}Sp{GWhȇ%ajf7^9`hʪ{koucsC zPU瓵;+@_o%w.kɪG&\R[#@]_7-RqZNXG^8"=ϥlIU!q7,L>]&RwoZo'2kgũ!m7d?lX0~ ST7$9pleo ,XVtymشܷĎznE>&I>t[s+GS6n6-ڛoZugu<&`10qtov!JjGj)59s,2(pIY۹7+ Ihi%4tL޽T\tӿ ,uSQ!q̬jԵai[p!#reW;fVBNjX=2e7Tpw I-n3E*15-l%GȲ5 |Rwv5t͐ XѶJ (Ў+ ?W)+f/=H\\jBoſQ}7_uM3}Eof?M>o`-1}E_ Qk`/& wT ~[]cO5?HP=U~ F^m/rjZ0ouonM,Esӿjrt\нž*&E݈ݢ[Ekء\Sf+ nun۳෍UD\0eW|,@e^сr豺q ,,ibߍ啧7bD։7lGY]}ftYY%EuX;>˜@Mh_ZI7[ʾ[B[+ Yg3{sH׊ہ}V7O{Yn M JU|WQ\N}{ۮ~T:&üIZEvZ-pESڅe+VYKr[#@YH>[8qKը&se.jlkZf07@mVWE?;<%Nw7kDƜroVukiq y|9oDjh+WUZzԴaZܴi lDմ\uwuJܴ*K;ܷۘ-B+qDn*.5\X.P9rbB:Xu x i@.EpVW5jˬ] zw#;Gbp\=IĺT-n#Dʊb>+?MӸȃ](5մt -sXGyY}H|ە u:*6)rُеmM̀r><˱h=_a}>!`8}iʅtwJB,9mbEYfukή>F ɡޏ!TsslG .STi#ǹJ*D2X~G٩|&^Y)jY.Anu5Ί7Y#ro >O-Md&6n%VaUmWAT MQ~u}+WҶW2,pw~OB91 g&pTIu ֱC/E+h &c7jI\ڰ?*Skchv[1br>*8i|5hJd]W=M5ΰc䟞9ĶĨjWK0a0nnm)lw/.H@# 8 Gr ⻊ BV3#woWVvpYN X! Z [q[՝;/]ê lnig͖3l?i]E rINVֈehp6J6n.v>:Jx''ăŵ^ ak9io{%ļ=dXߍ7bYf= ͠7 FR5nwnXdqO˿l,aD"۲u!fY`G? ۷[D~EaNjζc=E-[Og/,9"(p]~dp>&왂m,p`8ָ/E5UGMWO$V4i~5 ;)&y\٪jic|r!rhvw-!9ݽl;]vZ`¿(cK᫉,3qZY\[B{}Շ0d_qp>V{0tNǹxW'+swȞէ_Q-'u?Noxrf˛gFWIĮw&uEK4|8,m)А]SIp޴>O޵[;ݸu<9Xqlgsʷ>DTBHZQRnAz6.˪nXRnýlT[`¿)c~Oށ**\3 lq]?(ﺪfclӽ̬6ax~!KC-5q>V0]_1)#_6G1~bxOp+ͼ?[1ULZioma/`4)oMG}۔w겁q gs`lQ47pDWi[TwT+_tNy/q6nG.`U~+Cg&lPj+!eCsa l|f ԬW2,l OXV\ ڳ`X+W$ŕm\Jٟеm?vW+ rא ~8o[U!`.+.;v,u؇=].)ur\ipn8rZAis4\$qubg/E].ג09Ϫ`nQgnL8 eZDIw!h'r͵Zf\ [ܣ')"u$n>IuyuǓ2N _y޲|V/\Ke:ܧsqfz癈;+mcSf;iLX˧Xۺj/L4@sw: .V35E oi^-⵨wKq؜m#-MCdzG񫎨mn%0zMFj7,IR})ÁҢSp 3dDk](}GoFͩveNۧ~y+,ꀒA0j"snSw}?mۜgTn-5=RE]|{ZuR7ɨ2/ݹpqBH²bGdUq3 vs +1B#u7@BozKjo_Zu[EKWVI C7@ܯ?nrZY 4_f%aユZSl;F ^O-NDf»ҳ ԶO54²:Oo٤p~b2}EwVPH~5CL#ο+2l WXXQ+Ͽ* I LQG!ahصE)^[uЌD-@'x &ͯW.9J17N{Erވ8DU,'_L^c }Ν;=97f,=\;̘m$G;dLﻵ%x eK.R2=!"0'fk+o{\ߟ̳sogAυθ_9n6mP(EtP#~KmRkxeMcŭG%uKr|n xt]za%Q Y'y7^c$-WY|{VcD20 ;_ܘ4+'5~ELvb=~*qq^&棷fU<ef3^&{4;6.LooE;Gb&n(Uoyv<زofctX-XӧBߪclafn@@TMP, ڋ+ioԺ׹{n\8 \p@ n܃l˚,qZi{8^.(ݭ⫑pGWk@+puE޲_ 9;Q;{p[޷/&!1AQaq?!En"U &5~R s`\N=ĥ 'pxxK%6mAbx>!OvKh0[SX?ZƯ:Ø&9%m \S .1(&Ra& y_fw]bNWZuΦ7ǥh,,k"\32C8"an(V:s \ƑgJTBc7"AJb9"pEqi% C q2 `3wRq+$kО=x{A\M%ȻeIWpvYEMx PhUXc}F?8A c~="SVN?kûr.,0;3DzG+~y{UZT]1Ogq˗rrbi,$R`Ni ^eIBG#Q裈2MRt9/l{Os`Z*?jg[nl[xBlHk\Pe.WC0*A;2Am5D}7]*Rb3Y5r@}UbKa{}/h"S8 cN2#! 0ݕ svE"lCHc$TQ?Ge x.|V7 F0*J0nW{(#B rBi+<1*.4 ۘ x7`:FPMnfUsB%W ˥p|* ,Los1`8 4)]f8 3j_SŪx}Ҡ9c4쌻q8l"%jaV4p\_/j+/0&T`h˚8@9Ʀ`L#ӸSU.g|ՠa|3M£Aw+(f(Yu&e*,CXsn9TH .qqYM]٬y†ޡe(4 Pv(c|ZH AJGQ1P-Cv጗6rQp[JAg3"}L"LTX EU![)l[N6&ݖ^䳥3ɝ;f} t@;Ǹn~d eDr3UDLh\'(e{ݳ!U:L$R88eh"`_D ;bE)0&D(np0C FHLT2&#,5y#d!HzE`!76cgXa]a㋝p[)6b5P%cRpe;-eKg&*g<`5#G?`2?ُ -jٟg?#Y(^]=!vl4 Dl)zPTr}RbR8@rrbYu3 -p gv^a.E CW0?]׋Lm-T, 3tB,miv%|u Z\ \ jEl8x#]xd]~cӼ}n`#3oYzSIخ-L|LѼEAX$vte݄1nXjUz/$ܮ(cW{uv m77exyi:. 05[pz EV _ņ=]&¸[ 0/B`>Qn]h@;n8Թ68=͐PFYU/H1Pֹr6ܢ4MŘyf2"j:ieFxJ!QD@@*,-"@ Zay5+; *(Vۇ@m&"nl>o7%_Yc!2y Qw?ӊeԯb~+md6؝\DGkUa'-znDycC<'dz대{gűg9ig. "XGcwWTޣ FhǸ)^ WlVd4\H%Q ˊ҅/qG̻NF:Ա@\*c.eVo8>Dg+!Ò>3P;T ܨ ˺lrCݴF\nD']7S)Q: x-Z#X 1MKG,_2kwb+-K_zTYPMPfpj|ڨR(,.j{Buqp7yI> Fq%)Fyq+aR/qp!¦]'LUdMu}w2<+9.(Q S]͉Д|&TY+e|.YGDB- )]6=!KNߓܹP'pzSL昛N[ gSwyŻË~9ِio5b/)2+rP]#ԛ|%c-eαf_POf@NP_)v-\%@࡬RySp4SG9bh `2N'mr [5dl&"|"Ejpޥ\ 2XpVKc3=8-^-R';/ b]>/ <q:蚏m5*EfR`cFXQ}Jն'A5VH[Y\be@䄳憩ˉ+7̺^fcjyNOL6> <(;$gdsZk2U>:% `WR7TqX$b=:9yao4ˏ Yw#88J3A+@3֝(05XH*[N7h!Ft`Ԣnh.% > 5.Uҕ.w2oP[0zUO+ qw`] LGo5e$H!ZDPsWfOScF q܅9Mxصy,hTs~. AlZPJq!g4N>bdJ ^l1 %-,wd,¥1+-|V C}EYAָha>Au({=EZ{gQI#nDvf \W9cvRvs1q4ĩMx'X僢$2w /3јopжXGWA(5MjVWz af^G,]r*i2+eRեןdGfrQse9MY lQ{iU(6G`aQPEV"͘MFJ>dGV"O˸u-UD0iL  i/1,-|keJݔz.^zJJo3Fݯd!'ܸ cPhSLʟf.{fan 6Dzv gLanVyjN@ FR!&B e+>&fi͂%h8^lb#^cyJ-/s7ܖ]c^#t͕4ضzU,sĵyF7K2QDJ+_92u[cdQĨ:~%H(ٶXɨʰ\|FyW*х\q4Si`VK3SќHEɳ>s0|@s7 -8?|Pט: E2c<ؒ~-Z<9t07F >1]8E[p0.#\2ݘ߯CYXZTj]sī[y0t.u5PVI@oY}gE4ZTW .gf )P C|$9pj\o(Ө.^Űm?f\0er-Cǐ"0w73jm5) >y:vp:K`OcyzdR@o˴RkP,DVcaPKe7:KFqiPI>t&QPɝL(OS%,iTcĹ+` /jd,bc3C[+\1`xE1وX!Rɋ @nZMX`n,RY|K[9Eչj.;ODqZ2B[e@t #]Amʼn`N̡c`M]+F 6SF7h MZ\ʛZHr #AD񁔲zRc1]20-?"2YP"teq&.h録iԮ2 )P$^jguLXcPq'1--bN6#x &bR҂ED+q}n_Qq\t"`*1YZK\ 04Xp/g'|LS;j]CބA D@%fЪ9fg2$9:NPjHxXZ<[g2bKXLf\)U)Kf? ǁ׸ۢrv#QsQ SdE d+KY5wH(PfT<*HdTn" e*ͷ.gYw_l&4-/]ЅˇWSuZ /6r-2 X $ۏbق XSIeʰxRSfh8\ ^-mr?lAy`;6qxTŘr:U +F5mڽfgj\tC> k"őUpɨX 3 ;tP@̠LssO(%y@(t)o`"$_hS'J!Rp ĨEJ9MM`uWަPr* 5n,072d'lbVKh|F"0(w,e`|t@txU*h& K7㬪ł(rz&w Y5vs% 1q\,l j1h"4? /L.S@C.-t)~&L`PgI+ ?pp7vhۈ%c0 2wV0ٷR8S&>VqG ӘsP^G1u2|U*BEeWp n̮JNA `Regd!w |χmsj7TYP\EOIG*s\ؠPPq,ۗwBA4J7yoRX:Wٙqݔ ZT=`6HTAL c3eעhKp6jR!QYXLJ@!̘yT(oAA(7CA>qYF-G9Hg}"֠j #pxb: >+4Al=`GKWj~.msF i.E5**!jL@=ck, rz^Ogw Os DXArm^tW%=%'(pB>P)b&j+{s/tUZf2dk[%4y4Ӏ3$@,гbMFkܶÏ!VV>3=QɊpy &(+pss eRJ(J(XrCM+Q ^Nw6Ò}npT!^ v`aE2wKvW05*Mm|YE% Ons7+Jg0ubYq#GҒAޟ̺ORL/Ḍ1\Ȋ%^BoOX&J3xrQ;X rF"ȷ rG98X: -XkB8$9"/⺻똃 gbO3 7OB㹃Np Q8o{lv6EU)`yQ́S5Ɂ/my]M1°)ߢgX'"+*v7{n^#d Vd1FW2++Qێ*`w('L[3 YNeTaU0˙zlZbRuBQqf(/|ƭeFS, .>ʅXʪ`Nhӥ5@ò:R]%y/2µ02esiet T~¢a#~a׏-9MKwgm&䲯g2˓Υڊ%V8RrkPm7khF%&1A5nfHDc,8傊i|b u.!*]BXY\ِ-G]f͘-6ҁ*c+u-ps^&eS 0c]UoD@x )WUxPޥ B#= g3dz`K  5t Ƃ}Ml9(.8.䟙ȪS YL1_YWTo;eq(/heC]n#-d%SUe| U|TuWZB.`p,J2)j,]Mʞd~Dpvx!r#)ܩe`@@n@ѨV=eA=Jf0 س19hTmyK1b%3tԲZ(ahY[,y,Tj8PQV2΃.. l5PеD kv%>SRBKZ3dGI6\~#l  ł9ˡЭgJ%\ϭpʬAKc|5qXG~㧴t0[5p܆鎯S\or(Y%sh}=L#D'iV8nU431pok%1LG\tNp>xeasiyfn'+AŔa\҉A>cSv^"Z{r79 y5IUfϖRDVvRg!'<}w*y(F*7Jl;U|I[)i;XAz!rtB.+Ԣ͟eYG"A}WeAmMXHY?1C0{k%b_ ꥏ;Y* ^Q4"iY`bicdd_'ﻆ؆NJ^!A߸`T^j48xʼ`"󾬥&,{ 4icL"pΥG3bvp5-h. TBZk n෿dxj:l~ E`U_pBҠ~DWwO>cdtnsN#:@ep(d?iesfa/JJHW#Q{ f,3ʅ,bVyg6UXoP:Tk6@<0FZiR2 ŧ 8Z x%ѳ8]0 Jf J%%]Y]/<`UxNtY=_E{|Sx\Vpϔ0bfM 鋲ZEbܡP< WV-f~i%xSErmtVQ2m6_0t akxӺ/oI#%»rkחj6 nMk1 Ϋy[A9@\YKKE:ܶjj5ܿ$F ]8}Y*Rx6#y\L ʑ[2)CMVE[leť #]ҕ[{ہ[nKaDŽIh'b*@(Wܿ`"s?,  z?U+3ўhw~W;jhu*v3)4㨸MZ:'u@Oq# 8F 'ba \K? L3ϚL;q؋ܹ~_z2TKi'%Yxi-BK%, !Dޮ {Q棩_lo 4 Fg\r&x6vjW-Idf UmtOCNJ7j3&_'wt? QXa8@-,BAa+ċ3SVt"/>Z"[q^`j%+ı0^"`,yE (,pdD/%/:nl[Yj)@>T[Xn-tTqs` HRS 7cUiV4ȴo2˹ĕ}O`8@cGNRAػA.agQp 2[8pz`0=%氺-xYvE|نUR'2..]GlnbqRp@/L;wXOmCNaPs210W*+4HѬx:|.W7љf̾B^#6U*x1ObQ8 -CmL+&o@YeJ)ÉXmqƵhnRWH9w'Kx1lf٥aOl)b4Tn]#'$7K)y%,ߩpk9OQD%6^鄬6At]4S_@2J5:1<2PfD,(ZRּu/掛B Uӈcqv's k%,Ĩ9Xo0w8^M,hQKbiW!\dA//dʾ G'<0,mԩЋA, tKXT|K>7U(4+}K--+HӸ(c%]Ѐ;QYG(Nj`V?GPT읩 Z!cU?.2NmosJZ{ĸ7@x4+v4q::PyLfH \[帕8&p6 msRo b9kh7>HkZ' A)M;mT91"o3g`YAAN9u4 *fQ&JwK -m(K.:e ZyRsX8p,\\.[8; 7gܢ 1 M1ǐ@ʶy>F2q"܇&N%}|܈՚?$Z 9 MPUAjwa# KxU k=ZF"klHA%]ZeZJFLN*UR"\kˉ*"KBQ_3Pǩvr`eq"״n˙n5#^e.jv airQ`=9juTVsk-iU1bTɢYvc[4γDfp^ $ئP+ַ1e^q8bʇZbUY5`1:(U2 } m{qB9a,j N\ 5[1J~~F殼\"ˊb;S47Vnvfʰ4Q2V [`KkVZCոnd*:Sc4/ lDY<KeW&N$p n $z| iU[+T`lo} P R7ZS%.+KnhD#.ڙ惇1BhV_!QSe|7g,K"[Y E{bjgRQT@M;Mۺ"m3 %-7'@|2Lf^ք f%|oR ))%>J .Lm Z` Tu1ҡ);@^ 'QVRl)aULp5 tX fcYT7'M^VS噽ַqA@8u^fPlN!gY+@'R5B0;QH؈i!AGL!-*WcApe-Y$ HmQaϞb[Kv"Y{l#uѦԑ;K`͸a.}17bp=-78 ;_ )}oK%߀ULEPw;ckzKrTQ?JRG 8/p+ Z i/Q.XT+%>@8cY+ɈJ!_;U\\:v<6s'b)]/3Nk&0"YQЪNAS[SZnJֳDTji{J"ӌ ].cqZS1)˓x@z0%`(:4?#@hZ/rJ@K(oJLCtn/31L7.?nrW2_ޢU\:CsAoV<ʐl J3[+K8#"E,>Վ|sk g2otLyY̛rjKYPYX@[`eC̘5'71,@긐l˸@hPY()AU-3~`c\%'k`@02n+U%lD~{K4W- -ɵ7Ң Z2:J<֌428& S :1e3~YĴ'6X PGQW[%?J2Ƌ^B6C0iXw2)7 7WP ;N i 'ܼs݃9elXѲٹ"՘)s%sa-0C iMolts 稴7a@}֢yp0-#3-b+psj4M.+87+cӅQTs@t1ө'yDd,:]b]\`|mw~Yoa.&NJU2͹%V4b6f&3N{&!p\vC0tNe(ܪYcjSjT1nn-p:NV94UƷ#23mZmVSP,PQ Mâ93 7SH=0,w**X5FZ\o3^yůZߔ{z[IxTj_iBZ%hT[[_5AGx'o!1Ot?0NAXwvPoqxGzB.s @ZG7qr0JܫЯAU(7/X ĥ7rؠ0*Cփٲ u} |AK hPVJZlgZmV;NTrJF. ~n`Ԙ\O8\x)F#"lw48u7<ᔣB`q]@-hi!ۚ`仇hZxAao7+^=vՅ d0&eH a=c 68dp-gC+$j$kW=dUobN}1FJfwstq,q @J*Ca]3u:#2!3tܵZ*Tr`f *ookpe/S$rES`zSZogCUEq ۿ_%{ULP-"n%* yaoaF*_Q*-وk8DF@@WkGpn_TF4tj X 2+bs # gZX-X=EyA1=c=Er|Z_`X}F5/E5R6G/V-Qc1bSf7j7( q-z&.<ǔ^)0xWXR+,Z{ vBˢAqcUeEmF^[F0`nFr/X99yG|#&bTeɬ+tK0k[# yzKyk(aI3[9XK8Zk}ɷYmR/(SmI Z&?aqOMз gqe$hAj,*ȿ&8x}ͽ^o0o!pU̪V>u*_Bq,PDf (E]63p4y! ;/+ u]g,SS|}A5dkdu4T3xz! ,>&QC%gD7\e A69_ZJ44q U1ܭ>VE:@36\sr3;885HX{c1,5c4[확)h~%0¿X2|&n'f5#D-=j0.ʱ{r֚3gKwF>'E3d=L 2&Yr(0nJ~-oS%CT2cYYWnF1səF3fmdB9 "k-"z.{ īsld5Eƺl31i<_* a1QM_@@v49} 0ym8^$x5IEU"4FR$Mk=|Mu)dB',J<3H2rˮҁ'tPqC]D VU{ 13Gx`h _L&9ϙ UWFPTy6ڙх!ň:X=avJ[c4U UMNPxaҐl25D p2k ׁ8[d+GYmYQ҇zpFLjH͖$"pƲ?riusx"f&(P3րJF\gMȣ*!pZ3GYV9o~OsY?V!Ee]Id14ڠ+4^7 @!wѩd!bYFPJ &- O%Q Į $.RfJ@%C 01ס+l'a-y<ôޟ@nhHy/_L+Tʙ] ς< }h@F'4LH$Q:cpX5`(9eF7 I%$$Q>d0gZF'H 查.PAh)4&B4Ey0l ($F&h32?T3OMt4,#8h}RNA"Y]IƢjblthPiAYإ&M1EXt-1 0:.7 fҵb$7~eoHZM 2. g%>LRMB{ŖS +{@V8n -iҸ>s'hҥoi\%uI>MPR|V&0P3P/ST+bPIAH` Wۨ)6 ȹdI3G dh)K:b!$@@,.Qr MfDI,tLٚRb,?#tr(O{=A>PUg^ȾDW$.C# (.A|m Hq >o$Z hlVQDE >bt2)a!7B*;M+:UT"PRd0 x8k}w{* (d֯LcKFO#i JM2Jҁ9r 9hRahu:tΥtVoXo_'!1AQ aq0?QmhX;v nDM k---,E_YN#g:E;uΘ;1R!SPM%;b\'J[.ùoS3m#o^Y5BKYǃggeeRa6͏,wN[ ܶ`~OR]JF@;Aٰremo"G͉bCHwůœNԡ$=LRԖqr^d, `G3V?Rc>KΡNX:-A܂XZ+SM,oPdtXANO!tݬ_76u!#2nIP Vȣ ic^2u9eƖ0-;",2x.6$Nsեo 唬Ԍ=&Wvw8Yg&b>/m%G#XIDX;g@:Oi o\ Zd9ǴUp4ՍpcݍvIÜ'嶖%ria '[8 MY,*%s%Z[hO&o=)}KۦDeDGklpg&=g Xc}F%è:`Hl,x TE  (|@I!-ps`ZBM&q)8Me[6]ŤI7hfݏ8M9hZvXn;a&D# Xm20*] wgh;YGe:8 2; d4=ylo8^ Y8n-Ź ]Y6X 8 O2ޡY9dI 뎍}JoVv8.v^ԸFuh٣_$v63[,,K-2șw s£;?z[K3eY݆&Mx2egŌ6Ld-Wofcl. ko`O8<$]2Pk'lgdo.`:Nn 9 Sz˪ط~7 ?BǢp'=D-_) ڏ0˻03Or v@Lެëyh6 رfoY8sﮔzPl^W^ jP;x*{Nji°&sE."Fp,XOY6:cI ڐ~l϶P&w-`{jpvP0{5poQ=D)XاM6${|ۂ~\ R\'}7Wa|%[o%>xǎs-夏]?RJy8@B)d~'Eͦ6u^>cϐyNR^n v<0':A[c.,e#og!Kr:ۢj]A/ #~:ϻ%Gy" =;<>IZ϶oR BܢFp3rrb(a^N9#+ -:QCz@dN 2tߟ{γatF_|YX!^@9q?6P k Iuj6FK;k"H?'hOqW<{np&A;㣏Xoh9]i `>^J BȓvOlyȉx)pM`, d[x= rv`sG @1XD>}^^`w2׆vrPnwV/Ko@Xp9nβW0|Nwa8~-BLoaDq_> *#`m\(K`Bk A1 wfszy{ `i4fn齝/Q2v`c, `IVʘt.'> ϗv#`r$8cr]El&} y\,@B $hHvG ߈˂voLpR9.:3}Ds&@Sssqc_پ97o>ZS2a-[nDk3c<`ξ ?7`:ǹ5zS49l,`su|VO,GŸci?A?^HyyZ?74w9ܙ'__HkCz =}, lxAC[> {?#{g۫N|$L!.k  Ljyx\:z0S_3wS=zDenׅCrulZ}X(l&oں=}d|5?[}hܫg0w~"g;թmiSJkMHgf̷翵xo3َnffU^nJpDѺdRV6vL)Z^d0. gMSy.OUܐ/~/ \jKO 3gy wǞIi8I=C:QBïҌOš>|/0Ō>qb0>}Xvg_C7kS;l#4=>zg}R>E%TAu <i`N4t?DCxH:8B>Gmot*p^\@띍#ךЦ`D4~>vY c0uFNX,KxFtt"xqKbwi θDwI݁oy=#lGDAýQ@*Kw\:ߗ1H?u=N>Ux)LeoǮ78.żvЏ\>\*^zАQfxg2@0lz`ijG\b`Erj$wo?wn.ݶ{Sn`Ì:GLY= =u&ΏA<gy8;z퍽cws>xFy/qY!<$p{aNc1x\v[ ##C l’ۓ8YjsP'.B1&M`1egxq2/y˼Z^:]k/FںYglš߃IYǑ>! `I, Y>p8dcݲwAb-a,'] [{b9mVla}a>Ẏn8&).ߏZ0iw1D45 sw/LL@=]qbm,m6z˾`e`B!k̿ X=~0>moQ'K[!D["]^0_ ||zqb%Bi!udl~^>%d0Be2(tw۵{V/IZĴ͇Jazg,j$2%|b{HaKUNl.8.JbBK`Ke _Su[yVYxpi :0_\8A0 Il]a̙{R ]9@pܻmg"t=ogz}Mo6l Q1%>#3R՘$̘dp,`m_s@Bd mgcoe&Gx`X8ݶeg ;:Bl-‹7eKk+\#8C@lKIՔы2I&Ā,:H0F=liy"xtw/ 7l(}h4>)݉F{`;ػ`RM&î{3l0׉6Y0@}"C oP2};g2'h33.q荎s>tnَa[`ԩi"RCՄapьG?rE%vv[#2M%ޥBݰс@,,u2$  8R A#j(!1 AQaq0? 2nÌy{GUя _)~,-8GRB9y{.5\, ;Omٌ{u/ݐbH:ldϝ@ @&$0D = $<%0@;2ؑrXckFKnѩޣ^sR9*SocXC$,n؛:{:>y73 Րo3/E۠-IR .bG 10mM67C[JK>IzxYul!F㥏Q,9z]͹(ݽZw@T8A%DFu@'op(A嚉ul a `%XͷueM@ǃpB,lNiEs+hFqb˻0d5=OU!B9ٕb @5@׵^4Se֋YEG/vpImJ*8'HvJweg>෫ dri`],f!}O%IrCiũj]I%`W/1NYW\pÚ6r(v6r(PB͗^8c5;ԦMI:CnSuð$ 㳨7a:f:7mل9^!F}}HYId9f1wI!&<+" /X܃M=m